var Kc = Object.defineProperty var qc = (e, t, n) => (t in e ? Kc(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : (e[t] = n)) var Qo = (e, t, n) => qc(e, typeof t != 'symbol' ? t + '' : t, n) import { i as _c, a as cn, g as $i, r as Pt, d as Xo, b as $c, c as Dr, e as eu, f as un, h as es, j as tu, k as Zr, l as Ut, S as kn, L as ao, M as Wi, m as Sr, t as zn, n as nu, o as Nr, p as ro, q as jr, s as en, u as Gr, v as iu, w as q, x as ts, y as su, z as kr, A as ze, B as C, C as ou, D as Bs, E as Br, F as au, G as Ne, H as ru, I as tt, J as ye, K as ee, N as Q, O as he, P as M, Q as Vt, R as T, T as Z, U as $, V as dn, W as h, X as dt, Y, Z as di, _ as Ys, $ as Nt, a0 as Yr, a1 as lu, a2 as de, a3 as Be, a4 as ht, a5 as cu, a6 as uu, a7 as Nn, a8 as Oe, a9 as Ee, aa as du, ab as pi, ac as ns, ad as X, ae as je, af as B, ag as _, ah as x, ai as Fe, aj as P, ak as Ze, al as Fi, am as ce, an as Ue, ao as vt, ap as xe, aq as We, ar as bn, as as at, at as it, au as lt, av as pu, aw as Ur, ax as Au, ay as Tr, az as gu, aA as Yt, aB as fu, aC as Jr, aD as Tt, aE as Ye, aF as bu, aG as is, aH as hu, aI as vu, aJ as Le, aK as mu, aL as Wn, aM as Us, aN as Ts, aO as Li, aP as xi, aQ as Fn, aR as lo, aS as yu, aT as ms, aU as wu, aV as Ru, aW as Iu, aX as Eu, aY as Mu, aZ as Du, a_ as $t, a$ as Zu, b0 as Jt, b1 as _n, b2 as Su, b3 as Nu, b4 as ju, b5 as Gu, b6 as ku, b7 as Et, b8 as Cr, b9 as Po, ba as Bu, bb as Yu, bc as co, } from './index-DmgdtqYn.js' var Uu = /\s/ function Tu(e) { for (var t = e.length; t-- && Uu.test(e.charAt(t)); ); return t } var Ju = /^\s+/ function Cu(e) { return e && e.slice(0, Tu(e) + 1).replace(Ju, '') } var Ho = NaN, Ou = /^[-+]0x[0-9a-f]+$/i, zu = /^0b[01]+$/i, Wu = /^0o[0-7]+$/i, Fu = parseInt function Ko(e) { if (typeof e == 'number') return e if (_c(e)) return Ho if (cn(e)) { var t = typeof e.valueOf == 'function' ? e.valueOf() : e e = cn(t) ? t + '' : t } if (typeof e != 'string') return e === 0 ? e : +e e = Cu(e) var n = zu.test(e) return n || Wu.test(e) ? Fu(e.slice(2), n ? 2 : 8) : Ou.test(e) ? Ho : +e } function Or(e) { return e } var Js = $i(Pt, 'WeakMap'), qo = Object.create, Lu = (function () { function e() {} return function (t) { if (!cn(t)) return {} if (qo) return qo(t) e.prototype = t var n = new e() return (e.prototype = void 0), n } })() function xu(e, t, n) { switch (n.length) { case 0: return e.call(t) case 1: return e.call(t, n[0]) case 2: return e.call(t, n[0], n[1]) case 3: return e.call(t, n[0], n[1], n[2]) } return e.apply(t, n) } function Vu(e, t) { var n = -1, i = e.length for (t || (t = Array(i)); ++n < i; ) t[n] = e[n] return t } var Qu = 800, Xu = 16, Pu = Date.now function Hu(e) { var t = 0, n = 0 return function () { var i = Pu(), s = Xu - (i - n) if (((n = i), s > 0)) { if (++t >= Qu) return arguments[0] } else t = 0 return e.apply(void 0, arguments) } } function Ku(e) { return function () { return e } } var qu = Xo ? function (e, t) { return Xo(e, 'toString', { configurable: !0, enumerable: !1, value: Ku(t), writable: !0 }) } : Or, _u = Hu(qu) function $u(e, t) { for (var n = -1, i = e == null ? 0 : e.length; ++n < i && t(e[n], n, e) !== !1; ); return e } function ed(e, t, n, i) { e.length for (var s = n + 1; s--; ) if (t(e[s], s, e)) return s return -1 } function ss(e, t, n, i) { var s = !n n || (n = {}) for (var a = -1, o = t.length; ++a < o; ) { var r = t[a], l = void 0 l === void 0 && (l = e[r]), s ? $c(n, r, l) : Dr(n, r, l) } return n } var _o = Math.max function td(e, t, n) { return ( (t = _o(t === void 0 ? e.length - 1 : t, 0)), function () { for (var i = arguments, s = -1, a = _o(i.length - t, 0), o = Array(a); ++s < a; ) o[s] = i[t + s] s = -1 for (var r = Array(t + 1); ++s < t; ) r[s] = i[s] return (r[t] = n(o)), xu(e, this, r) } ) } var nd = 9007199254740991 function uo(e) { return typeof e == 'number' && e > -1 && e % 1 == 0 && e <= nd } function zr(e) { return e != null && uo(e.length) && !eu(e) } var id = Object.prototype function po(e) { var t = e && e.constructor, n = (typeof t == 'function' && t.prototype) || id return e === n } function sd(e, t) { for (var n = -1, i = Array(e); ++n < e; ) i[n] = t(n) return i } var od = '[object Arguments]' function $o(e) { return un(e) && es(e) == od } var Wr = Object.prototype, ad = Wr.hasOwnProperty, rd = Wr.propertyIsEnumerable, Ao = $o( (function () { return arguments })() ) ? $o : function (e) { return un(e) && ad.call(e, 'callee') && !rd.call(e, 'callee') } function ld() { return !1 } var Fr = typeof exports == 'object' && exports && !exports.nodeType && exports, ea = Fr && typeof module == 'object' && module && !module.nodeType && module, cd = ea && ea.exports === Fr, ta = cd ? Pt.Buffer : void 0, ud = ta ? ta.isBuffer : void 0, Vi = ud || ld, dd = '[object Arguments]', pd = '[object Array]', Ad = '[object Boolean]', gd = '[object Date]', fd = '[object Error]', bd = '[object Function]', hd = '[object Map]', vd = '[object Number]', md = '[object Object]', yd = '[object RegExp]', wd = '[object Set]', Rd = '[object String]', Id = '[object WeakMap]', Ed = '[object ArrayBuffer]', Md = '[object DataView]', Dd = '[object Float32Array]', Zd = '[object Float64Array]', Sd = '[object Int8Array]', Nd = '[object Int16Array]', jd = '[object Int32Array]', Gd = '[object Uint8Array]', kd = '[object Uint8ClampedArray]', Bd = '[object Uint16Array]', Yd = '[object Uint32Array]', me = {} me[Dd] = me[Zd] = me[Sd] = me[Nd] = me[jd] = me[Gd] = me[kd] = me[Bd] = me[Yd] = !0 me[dd] = me[pd] = me[Ed] = me[Ad] = me[Md] = me[gd] = me[fd] = me[bd] = me[hd] = me[vd] = me[md] = me[yd] = me[wd] = me[Rd] = me[Id] = !1 function Ud(e) { return un(e) && uo(e.length) && !!me[es(e)] } function go(e) { return function (t) { return e(t) } } var Lr = typeof exports == 'object' && exports && !exports.nodeType && exports, ii = Lr && typeof module == 'object' && module && !module.nodeType && module, Td = ii && ii.exports === Lr, ys = Td && tu.process, Bn = (function () { try { var e = ii && ii.require && ii.require('util').types return e || (ys && ys.binding && ys.binding('util')) } catch {} })(), na = Bn && Bn.isTypedArray, xr = na ? go(na) : Ud, Jd = Object.prototype, Cd = Jd.hasOwnProperty function Vr(e, t) { var n = Ut(e), i = !n && Ao(e), s = !n && !i && Vi(e), a = !n && !i && !s && xr(e), o = n || i || s || a, r = o ? sd(e.length, String) : [], l = r.length for (var d in e) (t || Cd.call(e, d)) && !( o && (d == 'length' || (s && (d == 'offset' || d == 'parent')) || (a && (d == 'buffer' || d == 'byteLength' || d == 'byteOffset')) || Zr(d, l)) ) && r.push(d) return r } function Qr(e, t) { return function (n) { return e(t(n)) } } var Od = Qr(Object.keys, Object), zd = Object.prototype, Wd = zd.hasOwnProperty function Fd(e) { if (!po(e)) return Od(e) var t = [] for (var n in Object(e)) Wd.call(e, n) && n != 'constructor' && t.push(n) return t } function fo(e) { return zr(e) ? Vr(e) : Fd(e) } function Ld(e) { var t = [] if (e != null) for (var n in Object(e)) t.push(n) return t } var xd = Object.prototype, Vd = xd.hasOwnProperty function Qd(e) { if (!cn(e)) return Ld(e) var t = po(e), n = [] for (var i in e) (i == 'constructor' && (t || !Vd.call(e, i))) || n.push(i) return n } function Xd(e) { return zr(e) ? Vr(e, !0) : Qd(e) } function bo(e, t) { for (var n = -1, i = t.length, s = e.length; ++n < i; ) e[s + n] = t[n] return e } var ia = kn ? kn.isConcatSpreadable : void 0 function Pd(e) { return Ut(e) || Ao(e) || !!(ia && e && e[ia]) } function Hd(e, t, n, i, s) { var a = -1, o = e.length for (n || (n = Pd), s || (s = []); ++a < o; ) { var r = e[a] n(r) ? bo(s, r) : (s[s.length] = r) } return s } function Kd(e) { var t = e == null ? 0 : e.length return t ? Hd(e) : [] } function qd(e) { return _u(td(e, void 0, Kd), e + '') } var Xr = Qr(Object.getPrototypeOf, Object) function ft() { if (!arguments.length) return [] var e = arguments[0] return Ut(e) ? e : [e] } function _d() { ;(this.__data__ = new ao()), (this.size = 0) } function $d(e) { var t = this.__data__, n = t.delete(e) return (this.size = t.size), n } function ep(e) { return this.__data__.get(e) } function tp(e) { return this.__data__.has(e) } var np = 200 function ip(e, t) { var n = this.__data__ if (n instanceof ao) { var i = n.__data__ if (!Wi || i.length < np - 1) return i.push([e, t]), (this.size = ++n.size), this n = this.__data__ = new Sr(i) } return n.set(e, t), (this.size = n.size), this } function Mt(e) { var t = (this.__data__ = new ao(e)) this.size = t.size } Mt.prototype.clear = _d Mt.prototype.delete = $d Mt.prototype.get = ep Mt.prototype.has = tp Mt.prototype.set = ip function sp(e, t) { return e && ss(t, fo(t), e) } function op(e, t) { return e && ss(t, Xd(t), e) } var Pr = typeof exports == 'object' && exports && !exports.nodeType && exports, sa = Pr && typeof module == 'object' && module && !module.nodeType && module, ap = sa && sa.exports === Pr, oa = ap ? Pt.Buffer : void 0, aa = oa ? oa.allocUnsafe : void 0 function rp(e, t) { var n = e.length, i = aa ? aa(n) : new e.constructor(n) return e.copy(i), i } function lp(e, t) { for (var n = -1, i = e == null ? 0 : e.length, s = 0, a = []; ++n < i; ) { var o = e[n] t(o, n, e) && (a[s++] = o) } return a } function Hr() { return [] } var cp = Object.prototype, up = cp.propertyIsEnumerable, ra = Object.getOwnPropertySymbols, ho = ra ? function (e) { return e == null ? [] : ((e = Object(e)), lp(ra(e), function (t) { return up.call(e, t) })) } : Hr function dp(e, t) { return ss(e, ho(e), t) } var pp = Object.getOwnPropertySymbols, Ap = pp ? function (e) { for (var t = []; e; ) bo(t, ho(e)), (e = Xr(e)) return t } : Hr function gp(e, t) { return ss(e, Ap(e), t) } function fp(e, t, n) { var i = t(e) return Ut(e) ? i : bo(i, n(e)) } function Cs(e) { return fp(e, fo, ho) } var Os = $i(Pt, 'DataView'), zs = $i(Pt, 'Promise'), Ws = $i(Pt, 'Set'), la = '[object Map]', bp = '[object Object]', ca = '[object Promise]', ua = '[object Set]', da = '[object WeakMap]', pa = '[object DataView]', hp = zn(Os), vp = zn(Wi), mp = zn(zs), yp = zn(Ws), wp = zn(Js), gt = es ;((Os && gt(new Os(new ArrayBuffer(1))) != pa) || (Wi && gt(new Wi()) != la) || (zs && gt(zs.resolve()) != ca) || (Ws && gt(new Ws()) != ua) || (Js && gt(new Js()) != da)) && (gt = function (e) { var t = es(e), n = t == bp ? e.constructor : void 0, i = n ? zn(n) : '' if (i) switch (i) { case hp: return pa case vp: return la case mp: return ca case yp: return ua case wp: return da } return t }) var Rp = Object.prototype, Ip = Rp.hasOwnProperty function Ep(e) { var t = e.length, n = new e.constructor(t) return t && typeof e[0] == 'string' && Ip.call(e, 'index') && ((n.index = e.index), (n.input = e.input)), n } var Qi = Pt.Uint8Array function Mp(e) { var t = new e.constructor(e.byteLength) return new Qi(t).set(new Qi(e)), t } function Dp(e, t) { var n = e.buffer return new e.constructor(n, e.byteOffset, e.byteLength) } var Zp = /\w*$/ function Sp(e) { var t = new e.constructor(e.source, Zp.exec(e)) return (t.lastIndex = e.lastIndex), t } var Aa = kn ? kn.prototype : void 0, ga = Aa ? Aa.valueOf : void 0 function Np(e) { return ga ? Object(ga.call(e)) : {} } function jp(e, t) { var n = e.buffer return new e.constructor(n, e.byteOffset, e.length) } var Gp = '[object Boolean]', kp = '[object Date]', Bp = '[object Map]', Yp = '[object Number]', Up = '[object RegExp]', Tp = '[object Set]', Jp = '[object String]', Cp = '[object Symbol]', Op = '[object ArrayBuffer]', zp = '[object DataView]', Wp = '[object Float32Array]', Fp = '[object Float64Array]', Lp = '[object Int8Array]', xp = '[object Int16Array]', Vp = '[object Int32Array]', Qp = '[object Uint8Array]', Xp = '[object Uint8ClampedArray]', Pp = '[object Uint16Array]', Hp = '[object Uint32Array]' function Kp(e, t, n) { var i = e.constructor switch (t) { case Op: return Mp(e) case Gp: case kp: return new i(+e) case zp: return Dp(e) case Wp: case Fp: case Lp: case xp: case Vp: case Qp: case Xp: case Pp: case Hp: return jp(e) case Bp: return new i() case Yp: case Jp: return new i(e) case Up: return Sp(e) case Tp: return new i() case Cp: return Np(e) } } function qp(e) { return typeof e.constructor == 'function' && !po(e) ? Lu(Xr(e)) : {} } var _p = '[object Map]' function $p(e) { return un(e) && gt(e) == _p } var fa = Bn && Bn.isMap, eA = fa ? go(fa) : $p, tA = '[object Set]' function nA(e) { return un(e) && gt(e) == tA } var ba = Bn && Bn.isSet, iA = ba ? go(ba) : nA, sA = 2, Kr = '[object Arguments]', oA = '[object Array]', aA = '[object Boolean]', rA = '[object Date]', lA = '[object Error]', qr = '[object Function]', cA = '[object GeneratorFunction]', uA = '[object Map]', dA = '[object Number]', _r = '[object Object]', pA = '[object RegExp]', AA = '[object Set]', gA = '[object String]', fA = '[object Symbol]', bA = '[object WeakMap]', hA = '[object ArrayBuffer]', vA = '[object DataView]', mA = '[object Float32Array]', yA = '[object Float64Array]', wA = '[object Int8Array]', RA = '[object Int16Array]', IA = '[object Int32Array]', EA = '[object Uint8Array]', MA = '[object Uint8ClampedArray]', DA = '[object Uint16Array]', ZA = '[object Uint32Array]', be = {} be[Kr] = be[oA] = be[hA] = be[vA] = be[aA] = be[rA] = be[mA] = be[yA] = be[wA] = be[RA] = be[IA] = be[uA] = be[dA] = be[_r] = be[pA] = be[AA] = be[gA] = be[fA] = be[EA] = be[MA] = be[DA] = be[ZA] = !0 be[lA] = be[qr] = be[bA] = !1 function Yi(e, t, n, i, s, a) { var o, r = t & sA if (o !== void 0) return o if (!cn(e)) return e var l = Ut(e) if (l) return (o = Ep(e)), Vu(e, o) var d = gt(e), c = d == qr || d == cA if (Vi(e)) return rp(e) if (d == _r || d == Kr || (c && !s)) return (o = c ? {} : qp(e)), r ? gp(e, op(o, e)) : dp(e, sp(o, e)) if (!be[d]) return s ? e : {} ;(o = Kp(e, d)), a || (a = new Mt()) var A = a.get(e) if (A) return A a.set(e, o), iA(e) ? e.forEach(function (u) { o.add(Yi(u, t, n, u, e, a)) }) : eA(e) && e.forEach(function (u, p) { o.set(p, Yi(u, t, n, p, e, a)) }) var g = Cs, b = l ? void 0 : g(e) return ( $u(b || e, function (u, p) { b && ((p = u), (u = e[p])), Dr(o, p, Yi(u, t, n, p, e, a)) }), o ) } var SA = 4 function ha(e) { return Yi(e, SA) } var NA = '__lodash_hash_undefined__' function jA(e) { return this.__data__.set(e, NA), this } function GA(e) { return this.__data__.has(e) } function Xi(e) { var t = -1, n = e == null ? 0 : e.length for (this.__data__ = new Sr(); ++t < n; ) this.add(e[t]) } Xi.prototype.add = Xi.prototype.push = jA Xi.prototype.has = GA function kA(e, t) { for (var n = -1, i = e == null ? 0 : e.length; ++n < i; ) if (t(e[n], n, e)) return !0 return !1 } function BA(e, t) { return e.has(t) } var YA = 1, UA = 2 function $r(e, t, n, i, s, a) { var o = n & YA, r = e.length, l = t.length if (r != l && !(o && l > r)) return !1 var d = a.get(e), c = a.get(t) if (d && c) return d == t && c == e var A = -1, g = !0, b = n & UA ? new Xi() : void 0 for (a.set(e, t), a.set(t, e); ++A < r; ) { var u = e[A], p = t[A] if (i) var v = o ? i(p, u, A, t, e, a) : i(u, p, A, e, t, a) if (v !== void 0) { if (v) continue g = !1 break } if (b) { if ( !kA(t, function (f, w) { if (!BA(b, w) && (u === f || s(u, f, n, i, a))) return b.push(w) }) ) { g = !1 break } } else if (!(u === p || s(u, p, n, i, a))) { g = !1 break } } return a.delete(e), a.delete(t), g } function TA(e) { var t = -1, n = Array(e.size) return ( e.forEach(function (i, s) { n[++t] = [s, i] }), n ) } function JA(e) { var t = -1, n = Array(e.size) return ( e.forEach(function (i) { n[++t] = i }), n ) } var CA = 1, OA = 2, zA = '[object Boolean]', WA = '[object Date]', FA = '[object Error]', LA = '[object Map]', xA = '[object Number]', VA = '[object RegExp]', QA = '[object Set]', XA = '[object String]', PA = '[object Symbol]', HA = '[object ArrayBuffer]', KA = '[object DataView]', va = kn ? kn.prototype : void 0, ws = va ? va.valueOf : void 0 function qA(e, t, n, i, s, a, o) { switch (n) { case KA: if (e.byteLength != t.byteLength || e.byteOffset != t.byteOffset) return !1 ;(e = e.buffer), (t = t.buffer) case HA: return !(e.byteLength != t.byteLength || !a(new Qi(e), new Qi(t))) case zA: case WA: case xA: return nu(+e, +t) case FA: return e.name == t.name && e.message == t.message case VA: case XA: return e == t + '' case LA: var r = TA case QA: var l = i & CA if ((r || (r = JA), e.size != t.size && !l)) return !1 var d = o.get(e) if (d) return d == t ;(i |= OA), o.set(e, t) var c = $r(r(e), r(t), i, s, a, o) return o.delete(e), c case PA: if (ws) return ws.call(e) == ws.call(t) } return !1 } var _A = 1, $A = Object.prototype, eg = $A.hasOwnProperty function tg(e, t, n, i, s, a) { var o = n & _A, r = Cs(e), l = r.length, d = Cs(t), c = d.length if (l != c && !o) return !1 for (var A = l; A--; ) { var g = r[A] if (!(o ? g in t : eg.call(t, g))) return !1 } var b = a.get(e), u = a.get(t) if (b && u) return b == t && u == e var p = !0 a.set(e, t), a.set(t, e) for (var v = o; ++A < l; ) { g = r[A] var f = e[g], w = t[g] if (i) var R = o ? i(w, f, g, t, e, a) : i(f, w, g, e, t, a) if (!(R === void 0 ? f === w || s(f, w, n, i, a) : R)) { p = !1 break } v || (v = g == 'constructor') } if (p && !v) { var I = e.constructor, y = t.constructor I != y && 'constructor' in e && 'constructor' in t && !(typeof I == 'function' && I instanceof I && typeof y == 'function' && y instanceof y) && (p = !1) } return a.delete(e), a.delete(t), p } var ng = 1, ma = '[object Arguments]', ya = '[object Array]', Ii = '[object Object]', ig = Object.prototype, wa = ig.hasOwnProperty function sg(e, t, n, i, s, a) { var o = Ut(e), r = Ut(t), l = o ? ya : gt(e), d = r ? ya : gt(t) ;(l = l == ma ? Ii : l), (d = d == ma ? Ii : d) var c = l == Ii, A = d == Ii, g = l == d if (g && Vi(e)) { if (!Vi(t)) return !1 ;(o = !0), (c = !1) } if (g && !c) return a || (a = new Mt()), o || xr(e) ? $r(e, t, n, i, s, a) : qA(e, t, l, n, i, s, a) if (!(n & ng)) { var b = c && wa.call(e, '__wrapped__'), u = A && wa.call(t, '__wrapped__') if (b || u) { var p = b ? e.value() : e, v = u ? t.value() : t return a || (a = new Mt()), s(p, v, n, i, a) } } return g ? (a || (a = new Mt()), tg(e, t, n, i, s, a)) : !1 } function os(e, t, n, i, s) { return e === t ? !0 : e == null || t == null || (!un(e) && !un(t)) ? e !== e && t !== t : sg(e, t, n, i, os, s) } var og = 1, ag = 2 function rg(e, t, n, i) { var s = n.length, a = s if (e == null) return !a for (e = Object(e); s--; ) { var o = n[s] if (o[2] ? o[1] !== e[o[0]] : !(o[0] in e)) return !1 } for (; ++s < a; ) { o = n[s] var r = o[0], l = e[r], d = o[1] if (o[2]) { if (l === void 0 && !(r in e)) return !1 } else { var c = new Mt(), A if (!(A === void 0 ? os(d, l, og | ag, i, c) : A)) return !1 } } return !0 } function el(e) { return e === e && !cn(e) } function lg(e) { for (var t = fo(e), n = t.length; n--; ) { var i = t[n], s = e[i] t[n] = [i, s, el(s)] } return t } function tl(e, t) { return function (n) { return n == null ? !1 : n[e] === t && (t !== void 0 || e in Object(n)) } } function cg(e) { var t = lg(e) return t.length == 1 && t[0][2] ? tl(t[0][0], t[0][1]) : function (n) { return n === e || rg(n, e, t) } } function ug(e, t) { return e != null && t in Object(e) } function dg(e, t, n) { t = Nr(t, e) for (var i = -1, s = t.length, a = !1; ++i < s; ) { var o = ro(t[i]) if (!(a = e != null && n(e, o))) break e = e[o] } return a || ++i != s ? a : ((s = e == null ? 0 : e.length), !!s && uo(s) && Zr(o, s) && (Ut(e) || Ao(e))) } function nl(e, t) { return e != null && dg(e, t, ug) } var pg = 1, Ag = 2 function gg(e, t) { return jr(e) && el(t) ? tl(ro(e), t) : function (n) { var i = en(n, e) return i === void 0 && i === t ? nl(n, e) : os(t, i, pg | Ag) } } function fg(e) { return function (t) { return t == null ? void 0 : t[e] } } function bg(e) { return function (t) { return Gr(t, e) } } function hg(e) { return jr(e) ? fg(ro(e)) : bg(e) } function vg(e) { return typeof e == 'function' ? e : e == null ? Or : typeof e == 'object' ? (Ut(e) ? gg(e[0], e[1]) : cg(e)) : hg(e) } var Rs = function () { return Pt.Date.now() }, mg = 'Expected a function', yg = Math.max, wg = Math.min function Rg(e, t, n) { var i, s, a, o, r, l, d = 0, c = !1, A = !1, g = !0 if (typeof e != 'function') throw new TypeError(mg) ;(t = Ko(t) || 0), cn(n) && ((c = !!n.leading), (A = 'maxWait' in n), (a = A ? yg(Ko(n.maxWait) || 0, t) : a), (g = 'trailing' in n ? !!n.trailing : g)) function b(E) { var m = i, j = s return (i = s = void 0), (d = E), (o = e.apply(j, m)), o } function u(E) { return (d = E), (r = setTimeout(f, t)), c ? b(E) : o } function p(E) { var m = E - l, j = E - d, U = t - m return A ? wg(U, a - j) : U } function v(E) { var m = E - l, j = E - d return l === void 0 || m >= t || m < 0 || (A && j >= a) } function f() { var E = Rs() if (v(E)) return w(E) r = setTimeout(f, p(E)) } function w(E) { return (r = void 0), g && i ? b(E) : ((i = s = void 0), o) } function R() { r !== void 0 && clearTimeout(r), (d = 0), (i = l = s = r = void 0) } function I() { return r === void 0 ? o : w(Rs()) } function y() { var E = Rs(), m = v(E) if (((i = arguments), (s = this), (l = E), m)) { if (r === void 0) return u(l) if (A) return clearTimeout(r), (r = setTimeout(f, t)), b(l) } return r === void 0 && (r = setTimeout(f, t)), o } return (y.cancel = R), (y.flush = I), y } function Ig(e, t, n) { var i = e == null ? 0 : e.length if (!i) return -1 var s = i - 1 return ed(e, vg(t), s) } function jn(e, t) { return os(e, t) } function Eg(e) { return e === void 0 } function Mg(e, t, n) { for (var i = -1, s = t.length, a = {}; ++i < s; ) { var o = t[i], r = Gr(e, o) n(r, o) && iu(a, Nr(o, e), r) } return a } function Dg(e, t) { return Mg(e, t, function (n, i) { return nl(e, i) }) } var il = qd(function (e, t) { return e == null ? {} : Dg(e, t) }) function Bt(e) { var t const n = Br(e) return (t = n == null ? void 0 : n.$el) != null ? t : n } const as = ze ? window : void 0 function Dt(...e) { let t, n, i, s if ((su(e[0]) || Array.isArray(e[0]) ? (([n, i, s] = e), (t = as)) : ([t, n, i, s] = e), !t)) return kr Array.isArray(n) || (n = [n]), Array.isArray(i) || (i = [i]) const a = [], o = () => { a.forEach((c) => c()), (a.length = 0) }, r = (c, A, g, b) => (c.addEventListener(A, g, b), () => c.removeEventListener(A, g, b)), l = q( () => [Bt(t), Br(s)], ([c, A]) => { o(), c && a.push(...n.flatMap((g) => i.map((b) => r(c, g, b, A)))) }, { immediate: !0, flush: 'post' } ), d = () => { l(), o() } return ts(d), d } let Ra = !1 function Zg(e, t, n = {}) { const { window: i = as, ignore: s = [], capture: a = !0, detectIframe: o = !1 } = n if (!i) return Bs && !Ra && ((Ra = !0), Array.from(i.document.body.children).forEach((g) => g.addEventListener('click', kr))) let r = !0 const l = (g) => s.some((b) => { if (typeof b == 'string') return Array.from(i.document.querySelectorAll(b)).some((u) => u === g.target || g.composedPath().includes(u)) { const u = Bt(b) return u && (g.target === u || g.composedPath().includes(u)) } }), c = [ Dt( i, 'click', (g) => { const b = Bt(e) if (!(!b || b === g.target || g.composedPath().includes(b))) { if ((g.detail === 0 && (r = !l(g)), !r)) { r = !0 return } t(g) } }, { passive: !0, capture: a } ), Dt( i, 'pointerdown', (g) => { const b = Bt(e) b && (r = !g.composedPath().includes(b) && !l(g)) }, { passive: !0 } ), o && Dt(i, 'blur', (g) => { var b const u = Bt(e) ;((b = i.document.activeElement) == null ? void 0 : b.tagName) === 'IFRAME' && !(u != null && u.contains(i.document.activeElement)) && t(g) }), ].filter(Boolean) return () => c.forEach((g) => g()) } function sl(e, t = !1) { const n = C(), i = () => (n.value = !!e()) return i(), ou(i, t), n } const Ia = typeof globalThis < 'u' ? globalThis : typeof window < 'u' ? window : typeof global < 'u' ? global : typeof self < 'u' ? self : {}, Ea = '__vueuse_ssr_handlers__' Ia[Ea] = Ia[Ea] || {} var Ma = Object.getOwnPropertySymbols, Sg = Object.prototype.hasOwnProperty, Ng = Object.prototype.propertyIsEnumerable, jg = (e, t) => { var n = {} for (var i in e) Sg.call(e, i) && t.indexOf(i) < 0 && (n[i] = e[i]) if (e != null && Ma) for (var i of Ma(e)) t.indexOf(i) < 0 && Ng.call(e, i) && (n[i] = e[i]) return n } function bt(e, t, n = {}) { const i = n, { window: s = as } = i, a = jg(i, ['window']) let o const r = sl(() => s && 'ResizeObserver' in s), l = () => { o && (o.disconnect(), (o = void 0)) }, d = q( () => Bt(e), (A) => { l(), r.value && s && A && ((o = new ResizeObserver(t)), o.observe(A, a)) }, { immediate: !0, flush: 'post' } ), c = () => { l(), d() } return ts(c), { isSupported: r, stop: c } } var Da = Object.getOwnPropertySymbols, Gg = Object.prototype.hasOwnProperty, kg = Object.prototype.propertyIsEnumerable, Bg = (e, t) => { var n = {} for (var i in e) Gg.call(e, i) && t.indexOf(i) < 0 && (n[i] = e[i]) if (e != null && Da) for (var i of Da(e)) t.indexOf(i) < 0 && kg.call(e, i) && (n[i] = e[i]) return n } function Yg(e, t, n = {}) { const i = n, { window: s = as } = i, a = Bg(i, ['window']) let o const r = sl(() => s && 'MutationObserver' in s), l = () => { o && (o.disconnect(), (o = void 0)) }, d = q( () => Bt(e), (A) => { l(), r.value && s && A && ((o = new MutationObserver(t)), o.observe(A, a)) }, { immediate: !0 } ), c = () => { l(), d() } return ts(c), { isSupported: r, stop: c } } var Za ;(function (e) { ;(e.UP = 'UP'), (e.RIGHT = 'RIGHT'), (e.DOWN = 'DOWN'), (e.LEFT = 'LEFT'), (e.NONE = 'NONE') })(Za || (Za = {})) var Ug = Object.defineProperty, Sa = Object.getOwnPropertySymbols, Tg = Object.prototype.hasOwnProperty, Jg = Object.prototype.propertyIsEnumerable, Na = (e, t, n) => (t in e ? Ug(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : (e[t] = n)), Cg = (e, t) => { for (var n in t || (t = {})) Tg.call(t, n) && Na(e, n, t[n]) if (Sa) for (var n of Sa(t)) Jg.call(t, n) && Na(e, n, t[n]) return e } const Og = { easeInSine: [0.12, 0, 0.39, 0], easeOutSine: [0.61, 1, 0.88, 1], easeInOutSine: [0.37, 0, 0.63, 1], easeInQuad: [0.11, 0, 0.5, 0], easeOutQuad: [0.5, 1, 0.89, 1], easeInOutQuad: [0.45, 0, 0.55, 1], easeInCubic: [0.32, 0, 0.67, 0], easeOutCubic: [0.33, 1, 0.68, 1], easeInOutCubic: [0.65, 0, 0.35, 1], easeInQuart: [0.5, 0, 0.75, 0], easeOutQuart: [0.25, 1, 0.5, 1], easeInOutQuart: [0.76, 0, 0.24, 1], easeInQuint: [0.64, 0, 0.78, 0], easeOutQuint: [0.22, 1, 0.36, 1], easeInOutQuint: [0.83, 0, 0.17, 1], easeInExpo: [0.7, 0, 0.84, 0], easeOutExpo: [0.16, 1, 0.3, 1], easeInOutExpo: [0.87, 0, 0.13, 1], easeInCirc: [0.55, 0, 1, 0.45], easeOutCirc: [0, 0.55, 0.45, 1], easeInOutCirc: [0.85, 0, 0.15, 1], easeInBack: [0.36, 0, 0.66, -0.56], easeOutBack: [0.34, 1.56, 0.64, 1], easeInOutBack: [0.68, -0.6, 0.32, 1.6], } Cg({ linear: au }, Og) class zg extends Error { constructor(t) { super(t), (this.name = 'ElementPlusError') } } function ol(e, t) { throw new zg(`[${e}] ${t}`) } const $e = 'update:modelValue', al = 'change' var ge = (e, t) => { const n = e.__vccOpts || e for (const [i, s] of t) n[i] = s return n } function pn(e, t = 'px') { if (!e) return '' if (Ne(e) || ru(e)) return `${e}${t}` if (tt(e)) return e } function Wg(e, t) { if (!ze) return if (!t) { e.scrollTop = 0 return } const n = [] let i = t.offsetParent for (; i !== null && e !== i && e.contains(i); ) n.push(i), (i = i.offsetParent) const s = t.offsetTop + n.reduce((l, d) => l + d.offsetTop, 0), a = s + t.offsetHeight, o = e.scrollTop, r = o + e.clientHeight s < o ? (e.scrollTop = s) : a > r && (e.scrollTop = a - e.clientHeight) } const Fg = ye({ size: { type: ee([Number, String]) }, color: { type: String } }), Lg = Q({ name: 'ElIcon', inheritAttrs: !1 }), xg = Q({ ...Lg, props: Fg, setup(e) { const t = e, n = he('icon'), i = M(() => { const { size: s, color: a } = t return !s && !a ? {} : { fontSize: Vt(s) ? void 0 : pn(s), '--color': a } }) return (s, a) => (Z(), T('i', dn({ class: h(n).b(), style: h(i) }, s.$attrs), [$(s.$slots, 'default')], 16)) }, }) var Vg = ge(xg, [['__file', 'icon.vue']]) const ot = dt(Vg) /*! Element Plus Icons Vue v2.3.1 */ var Qg = Q({ name: 'ArrowDown', __name: 'arrow-down', setup(e) { return (t, n) => ( Z(), T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [ Y('path', { fill: 'currentColor', d: 'M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z', }), ]) ) }, }), Xg = Qg, Pg = Q({ name: 'CircleCheck', __name: 'circle-check', setup(e) { return (t, n) => ( Z(), T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [ Y('path', { fill: 'currentColor', d: 'M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896', }), Y('path', { fill: 'currentColor', d: 'M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z', }), ]) ) }, }), Hg = Pg, Kg = Q({ name: 'CircleCloseFilled', __name: 'circle-close-filled', setup(e) { return (t, n) => ( Z(), T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [ Y('path', { fill: 'currentColor', d: 'M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z', }), ]) ) }, }), qg = Kg, _g = Q({ name: 'CircleClose', __name: 'circle-close', setup(e) { return (t, n) => ( Z(), T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [ Y('path', { fill: 'currentColor', d: 'm466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z', }), Y('path', { fill: 'currentColor', d: 'M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896', }), ]) ) }, }), vo = _g, $g = Q({ name: 'Close', __name: 'close', setup(e) { return (t, n) => ( Z(), T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [ Y('path', { fill: 'currentColor', d: 'M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z', }), ]) ) }, }), Fs = $g, ef = Q({ name: 'Hide', __name: 'hide', setup(e) { return (t, n) => ( Z(), T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [ Y('path', { fill: 'currentColor', d: 'M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z', }), Y('path', { fill: 'currentColor', d: 'M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z', }), ]) ) }, }), tf = ef, nf = Q({ name: 'InfoFilled', __name: 'info-filled', setup(e) { return (t, n) => ( Z(), T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [ Y('path', { fill: 'currentColor', d: 'M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z', }), ]) ) }, }), sf = nf, of = Q({ name: 'Loading', __name: 'loading', setup(e) { return (t, n) => ( Z(), T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [ Y('path', { fill: 'currentColor', d: 'M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z', }), ]) ) }, }), rl = of, af = Q({ name: 'SuccessFilled', __name: 'success-filled', setup(e) { return (t, n) => ( Z(), T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [ Y('path', { fill: 'currentColor', d: 'M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z', }), ]) ) }, }), rf = af, lf = Q({ name: 'View', __name: 'view', setup(e) { return (t, n) => ( Z(), T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [ Y('path', { fill: 'currentColor', d: 'M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160', }), ]) ) }, }), cf = lf, uf = Q({ name: 'WarningFilled', __name: 'warning-filled', setup(e) { return (t, n) => ( Z(), T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [ Y('path', { fill: 'currentColor', d: 'M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4', }), ]) ) }, }), df = uf const An = ee([String, Object, Function]), pf = { Close: Fs }, ja = { success: rf, warning: df, error: qg, info: sf }, ll = { validating: rl, success: Hg, error: vo }, Af = () => ze && /firefox/i.test(window.navigator.userAgent) let Xe const gf = { height: '0', visibility: 'hidden', overflow: Af() ? '' : 'hidden', position: 'absolute', 'z-index': '-1000', top: '0', right: '0', }, ff = [ 'letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing', ] function bf(e) { const t = window.getComputedStyle(e), n = t.getPropertyValue('box-sizing'), i = Number.parseFloat(t.getPropertyValue('padding-bottom')) + Number.parseFloat(t.getPropertyValue('padding-top')), s = Number.parseFloat(t.getPropertyValue('border-bottom-width')) + Number.parseFloat(t.getPropertyValue('border-top-width')) return { contextStyle: ff.map((o) => [o, t.getPropertyValue(o)]), paddingSize: i, borderSize: s, boxSizing: n } } function Ga(e, t = 1, n) { var i Xe || ((Xe = document.createElement('textarea')), document.body.appendChild(Xe)) const { paddingSize: s, borderSize: a, boxSizing: o, contextStyle: r } = bf(e) r.forEach(([A, g]) => (Xe == null ? void 0 : Xe.style.setProperty(A, g))), Object.entries(gf).forEach(([A, g]) => (Xe == null ? void 0 : Xe.style.setProperty(A, g, 'important'))), (Xe.value = e.value || e.placeholder || '') let l = Xe.scrollHeight const d = {} o === 'border-box' ? (l = l + a) : o === 'content-box' && (l = l - s), (Xe.value = '') const c = Xe.scrollHeight - s if (Ne(t)) { let A = c * t o === 'border-box' && (A = A + s + a), (l = Math.max(A, l)), (d.minHeight = `${A}px`) } if (Ne(n)) { let A = c * n o === 'border-box' && (A = A + s + a), (l = Math.min(A, l)) } return (d.height = `${l}px`), (i = Xe.parentNode) == null || i.removeChild(Xe), (Xe = void 0), d } const cl = (e) => e, hf = ye({ ariaLabel: String, ariaOrientation: { type: String, values: ['horizontal', 'vertical', 'undefined'] }, ariaControls: String, }), hn = (e) => il(hf, e), vf = ye({ id: { type: String, default: void 0 }, size: di, disabled: Boolean, modelValue: { type: ee([String, Number, Object]), default: '' }, maxlength: { type: [String, Number] }, minlength: { type: [String, Number] }, type: { type: String, default: 'text' }, resize: { type: String, values: ['none', 'both', 'horizontal', 'vertical'] }, autosize: { type: ee([Boolean, Object]), default: !1 }, autocomplete: { type: String, default: 'off' }, formatter: { type: Function }, parser: { type: Function }, placeholder: { type: String }, form: { type: String }, readonly: Boolean, clearable: Boolean, showPassword: Boolean, showWordLimit: Boolean, suffixIcon: { type: An }, prefixIcon: { type: An }, containerRole: { type: String, default: void 0 }, tabindex: { type: [String, Number], default: 0 }, validateEvent: { type: Boolean, default: !0 }, inputStyle: { type: ee([Object, Array, String]), default: () => cl({}) }, autofocus: Boolean, rows: { type: Number, default: 2 }, ...hn(['ariaLabel']), }), mf = { [$e]: (e) => tt(e), input: (e) => tt(e), change: (e) => tt(e), focus: (e) => e instanceof FocusEvent, blur: (e) => e instanceof FocusEvent, clear: () => !0, mouseleave: (e) => e instanceof MouseEvent, mouseenter: (e) => e instanceof MouseEvent, keydown: (e) => e instanceof Event, compositionstart: (e) => e instanceof CompositionEvent, compositionupdate: (e) => e instanceof CompositionEvent, compositionend: (e) => e instanceof CompositionEvent, }, yf = ['class', 'style'], wf = /^on[A-Z]/, Rf = (e = {}) => { const { excludeListeners: t = !1, excludeKeys: n } = e, i = M(() => ((n == null ? void 0 : n.value) || []).concat(yf)), s = Nt() return s ? M(() => { var a return Ys( Object.entries((a = s.proxy) == null ? void 0 : a.$attrs).filter( ([o]) => !i.value.includes(o) && !(t && wf.test(o)) ) ) }) : M(() => ({})) }, Ln = Symbol('formContextKey'), gn = Symbol('formItemContextKey'), ka = { prefix: Math.floor(Math.random() * 1e4), current: 0 }, If = Symbol('elIdInjection'), ul = () => (Nt() ? de(If, ka) : ka), Ai = (e) => { const t = ul(), n = Yr() return lu(() => h(e) || `${n.value}-id-${t.prefix}-${t.current++}`) }, xn = () => { const e = de(Ln, void 0), t = de(gn, void 0) return { form: e, formItem: t } }, rs = (e, { formItemContext: t, disableIdGeneration: n, disableIdManagement: i }) => { n || (n = C(!1)), i || (i = C(!1)) const s = C() let a const o = M(() => { var r return !!(!(e.label || e.ariaLabel) && t && t.inputIds && ((r = t.inputIds) == null ? void 0 : r.length) <= 1) }) return ( Be(() => { a = q( [ht(e, 'id'), n], ([r, l]) => { const d = r ?? (l ? void 0 : Ai().value) d !== s.value && (t != null && t.removeInputId && (s.value && t.removeInputId(s.value), !(i != null && i.value) && !l && d && t.addInputId(d)), (s.value = d)) }, { immediate: !0 } ) }), cu(() => { a && a(), t != null && t.removeInputId && s.value && t.removeInputId(s.value) }), { isLabeledByFormItem: o, inputId: s } ) }, dl = (e) => { const t = Nt() return M(() => { var n, i return (i = (n = t == null ? void 0 : t.proxy) == null ? void 0 : n.$props) == null ? void 0 : i[e] }) }, Xt = (e, t = {}) => { const n = C(void 0), i = t.prop ? n : dl('size'), s = t.global ? n : uu(), a = t.form ? { size: void 0 } : de(Ln, void 0), o = t.formItem ? { size: void 0 } : de(gn, void 0) return M(() => i.value || h(e) || (o == null ? void 0 : o.size) || (a == null ? void 0 : a.size) || s.value || '') }, ls = (e) => { const t = dl('disabled'), n = de(Ln, void 0) return M(() => t.value || h(e) || (n == null ? void 0 : n.disabled) || !1) } function pl(e, { beforeFocus: t, afterFocus: n, beforeBlur: i, afterBlur: s } = {}) { const a = Nt(), { emit: o } = a, r = Nn(), l = C(!1), d = (g) => { ;(Oe(t) && t(g)) || l.value || ((l.value = !0), o('focus', g), n == null || n()) }, c = (g) => { var b ;(Oe(i) && i(g)) || (g.relatedTarget && (b = r.value) != null && b.contains(g.relatedTarget)) || ((l.value = !1), o('blur', g), s == null || s()) }, A = () => { var g, b ;((g = r.value) != null && g.contains(document.activeElement) && r.value !== document.activeElement) || (b = e.value) == null || b.focus() } return ( q(r, (g) => { g && g.setAttribute('tabindex', '-1') }), Dt(r, 'focus', d, !0), Dt(r, 'blur', c, !0), Dt(r, 'click', A, !0), { isFocused: l, wrapperRef: r, handleFocus: d, handleBlur: c } ) } const Ef = (e) => /([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(e) function Al({ afterComposition: e, emit: t }) { const n = C(!1), i = (r) => { t == null || t('compositionstart', r), (n.value = !0) }, s = (r) => { var l t == null || t('compositionupdate', r) const d = (l = r.target) == null ? void 0 : l.value, c = d[d.length - 1] || '' n.value = !Ef(c) }, a = (r) => { t == null || t('compositionend', r), n.value && ((n.value = !1), Ee(() => e(r))) } return { isComposing: n, handleComposition: (r) => { r.type === 'compositionend' ? a(r) : s(r) }, handleCompositionStart: i, handleCompositionUpdate: s, handleCompositionEnd: a, } } function Mf(e) { let t function n() { if (e.value == null) return const { selectionStart: s, selectionEnd: a, value: o } = e.value if (s == null || a == null) return const r = o.slice(0, Math.max(0, s)), l = o.slice(Math.max(0, a)) t = { selectionStart: s, selectionEnd: a, value: o, beforeTxt: r, afterTxt: l } } function i() { if (e.value == null || t == null) return const { value: s } = e.value, { beforeTxt: a, afterTxt: o, selectionStart: r } = t if (a == null || o == null || r == null) return let l = s.length if (s.endsWith(o)) l = s.length - o.length else if (s.startsWith(a)) l = a.length else { const d = a[r - 1], c = s.indexOf(d, r - 1) c !== -1 && (l = c + 1) } e.value.setSelectionRange(l, l) } return [n, i] } const Df = Q({ name: 'ElInput', inheritAttrs: !1 }), Zf = Q({ ...Df, props: vf, emits: mf, setup(e, { expose: t, emit: n }) { const i = e, s = du(), a = Rf(), o = pi(), r = M(() => [ i.type === 'textarea' ? p.b() : u.b(), u.m(g.value), u.is('disabled', b.value), u.is('exceed', ie.value), { [u.b('group')]: o.prepend || o.append, [u.m('prefix')]: o.prefix || i.prefixIcon, [u.m('suffix')]: o.suffix || i.suffixIcon || i.clearable || i.showPassword, [u.bm('suffix', 'password-clear')]: V.value && ne.value, [u.b('hidden')]: i.type === 'hidden', }, s.class, ]), l = M(() => [u.e('wrapper'), u.is('focus', j.value)]), { form: d, formItem: c } = xn(), { inputId: A } = rs(i, { formItemContext: c }), g = Xt(), b = ls(), u = he('input'), p = he('textarea'), v = Nn(), f = Nn(), w = C(!1), R = C(!1), I = C(), y = Nn(i.inputStyle), E = M(() => v.value || f.value), { wrapperRef: m, isFocused: j, handleFocus: U, handleBlur: K, } = pl(E, { beforeFocus() { return b.value }, afterBlur() { var J i.validateEvent && ((J = c == null ? void 0 : c.validate) == null || J.call(c, 'blur').catch((ue) => void 0)) }, }), H = M(() => { var J return (J = d == null ? void 0 : d.statusIcon) != null ? J : !1 }), N = M(() => (c == null ? void 0 : c.validateState) || ''), k = M(() => N.value && ll[N.value]), F = M(() => (R.value ? cf : tf)), L = M(() => [s.style]), O = M(() => [i.inputStyle, y.value, { resize: i.resize }]), G = M(() => (ns(i.modelValue) ? '' : String(i.modelValue))), V = M(() => i.clearable && !b.value && !i.readonly && !!G.value && (j.value || w.value)), ne = M(() => i.showPassword && !b.value && !!G.value && (!!G.value || j.value)), re = M( () => i.showWordLimit && !!i.maxlength && (i.type === 'text' || i.type === 'textarea') && !b.value && !i.readonly && !i.showPassword ), Ie = M(() => G.value.length), ie = M(() => !!re.value && Ie.value > Number(i.maxlength)), we = M(() => !!o.suffix || !!i.suffixIcon || V.value || i.showPassword || re.value || (!!N.value && H.value)), [ve, fe] = Mf(v) bt(f, (J) => { if ((W(), !re.value || i.resize !== 'both')) return const ue = J[0], { width: st } = ue.contentRect I.value = { right: `calc(100% - ${st + 15 + 6}px)` } }) const Re = () => { const { type: J, autosize: ue } = i if (!(!ze || J !== 'textarea' || !f.value)) if (ue) { const st = vt(ue) ? ue.minRows : void 0, zt = vt(ue) ? ue.maxRows : void 0, Wt = Ga(f.value, st, zt) ;(y.value = { overflowY: 'hidden', ...Wt }), Ee(() => { f.value.offsetHeight, (y.value = Wt) }) } else y.value = { minHeight: Ga(f.value).minHeight } }, W = ((J) => { let ue = !1 return () => { var st if (ue || !i.autosize) return ;((st = f.value) == null ? void 0 : st.offsetParent) === null || (J(), (ue = !0)) } })(Re), se = () => { const J = E.value, ue = i.formatter ? i.formatter(G.value) : G.value !J || J.value === ue || (J.value = ue) }, le = async (J) => { ve() let { value: ue } = J.target if ((i.formatter && (ue = i.parser ? i.parser(ue) : ue), !ke.value)) { if (ue === G.value) { se() return } n($e, ue), n('input', ue), await Ee(), se(), fe() } }, Ae = (J) => { n('change', J.target.value) }, { isComposing: ke, handleCompositionStart: Ve, handleCompositionUpdate: vn, handleCompositionEnd: mn, } = Al({ emit: n, afterComposition: le }), yn = () => { ve(), (R.value = !R.value), setTimeout(fe) }, wn = () => { var J return (J = E.value) == null ? void 0 : J.focus() }, Ot = () => { var J return (J = E.value) == null ? void 0 : J.blur() }, Rn = (J) => { ;(w.value = !1), n('mouseleave', J) }, Qe = (J) => { ;(w.value = !0), n('mouseenter', J) }, Rt = (J) => { n('keydown', J) }, In = () => { var J ;(J = E.value) == null || J.select() }, _t = () => { n($e, ''), n('change', ''), n('clear'), n('input', '') } return ( q( () => i.modelValue, () => { var J Ee(() => Re()), i.validateEvent && ((J = c == null ? void 0 : c.validate) == null || J.call(c, 'change').catch((ue) => void 0)) } ), q(G, () => se()), q( () => i.type, async () => { await Ee(), se(), Re() } ), Be(() => { !i.formatter && i.parser, se(), Ee(Re) }), t({ input: v, textarea: f, ref: E, textareaStyle: O, autosize: ht(i, 'autosize'), isComposing: ke, focus: wn, blur: Ot, select: In, clear: _t, resizeTextarea: Re, }), (J, ue) => ( Z(), T( 'div', { class: B([ h(r), { [h(u).bm('group', 'append')]: J.$slots.append, [h(u).bm('group', 'prepend')]: J.$slots.prepend }, ]), style: Ue(h(L)), onMouseenter: Qe, onMouseleave: Rn, }, [ X(' input '), J.type !== 'textarea' ? (Z(), T( je, { key: 0 }, [ X(' prepend slot '), J.$slots.prepend ? (Z(), T('div', { key: 0, class: B(h(u).be('group', 'prepend')) }, [$(J.$slots, 'prepend')], 2)) : X('v-if', !0), Y( 'div', { ref_key: 'wrapperRef', ref: m, class: B(h(l)) }, [ X(' prefix slot '), J.$slots.prefix || J.prefixIcon ? (Z(), T( 'span', { key: 0, class: B(h(u).e('prefix')) }, [ Y( 'span', { class: B(h(u).e('prefix-inner')) }, [ $(J.$slots, 'prefix'), J.prefixIcon ? (Z(), _( h(ot), { key: 0, class: B(h(u).e('icon')) }, { default: x(() => [(Z(), _(Fe(J.prefixIcon)))]), _: 1 }, 8, ['class'] )) : X('v-if', !0), ], 2 ), ], 2 )) : X('v-if', !0), Y( 'input', dn({ id: h(A), ref_key: 'input', ref: v, class: h(u).e('inner') }, h(a), { minlength: J.minlength, maxlength: J.maxlength, type: J.showPassword ? (R.value ? 'text' : 'password') : J.type, disabled: h(b), readonly: J.readonly, autocomplete: J.autocomplete, tabindex: J.tabindex, 'aria-label': J.ariaLabel, placeholder: J.placeholder, style: J.inputStyle, form: J.form, autofocus: J.autofocus, role: J.containerRole, onCompositionstart: h(Ve), onCompositionupdate: h(vn), onCompositionend: h(mn), onInput: le, onChange: Ae, onKeydown: Rt, }), null, 16, [ 'id', 'minlength', 'maxlength', 'type', 'disabled', 'readonly', 'autocomplete', 'tabindex', 'aria-label', 'placeholder', 'form', 'autofocus', 'role', 'onCompositionstart', 'onCompositionupdate', 'onCompositionend', ] ), X(' suffix slot '), h(we) ? (Z(), T( 'span', { key: 1, class: B(h(u).e('suffix')) }, [ Y( 'span', { class: B(h(u).e('suffix-inner')) }, [ !h(V) || !h(ne) || !h(re) ? (Z(), T( je, { key: 0 }, [ $(J.$slots, 'suffix'), J.suffixIcon ? (Z(), _( h(ot), { key: 0, class: B(h(u).e('icon')) }, { default: x(() => [(Z(), _(Fe(J.suffixIcon)))]), _: 1 }, 8, ['class'] )) : X('v-if', !0), ], 64 )) : X('v-if', !0), h(V) ? (Z(), _( h(ot), { key: 1, class: B([h(u).e('icon'), h(u).e('clear')]), onMousedown: Ze(h(Fi), ['prevent']), onClick: _t, }, { default: x(() => [P(h(vo))]), _: 1 }, 8, ['class', 'onMousedown'] )) : X('v-if', !0), h(ne) ? (Z(), _( h(ot), { key: 2, class: B([h(u).e('icon'), h(u).e('password')]), onClick: yn }, { default: x(() => [(Z(), _(Fe(h(F))))]), _: 1 }, 8, ['class'] )) : X('v-if', !0), h(re) ? (Z(), T( 'span', { key: 3, class: B(h(u).e('count')) }, [ Y( 'span', { class: B(h(u).e('count-inner')) }, ce(h(Ie)) + ' / ' + ce(J.maxlength), 3 ), ], 2 )) : X('v-if', !0), h(N) && h(k) && h(H) ? (Z(), _( h(ot), { key: 4, class: B([ h(u).e('icon'), h(u).e('validateIcon'), h(u).is('loading', h(N) === 'validating'), ]), }, { default: x(() => [(Z(), _(Fe(h(k))))]), _: 1 }, 8, ['class'] )) : X('v-if', !0), ], 2 ), ], 2 )) : X('v-if', !0), ], 2 ), X(' append slot '), J.$slots.append ? (Z(), T('div', { key: 1, class: B(h(u).be('group', 'append')) }, [$(J.$slots, 'append')], 2)) : X('v-if', !0), ], 64 )) : (Z(), T( je, { key: 1 }, [ X(' textarea '), Y( 'textarea', dn( { id: h(A), ref_key: 'textarea', ref: f, class: [h(p).e('inner'), h(u).is('focus', h(j))] }, h(a), { minlength: J.minlength, maxlength: J.maxlength, tabindex: J.tabindex, disabled: h(b), readonly: J.readonly, autocomplete: J.autocomplete, style: h(O), 'aria-label': J.ariaLabel, placeholder: J.placeholder, form: J.form, autofocus: J.autofocus, rows: J.rows, role: J.containerRole, onCompositionstart: h(Ve), onCompositionupdate: h(vn), onCompositionend: h(mn), onInput: le, onFocus: h(U), onBlur: h(K), onChange: Ae, onKeydown: Rt, } ), null, 16, [ 'id', 'minlength', 'maxlength', 'tabindex', 'disabled', 'readonly', 'autocomplete', 'aria-label', 'placeholder', 'form', 'autofocus', 'rows', 'role', 'onCompositionstart', 'onCompositionupdate', 'onCompositionend', 'onFocus', 'onBlur', ] ), h(re) ? (Z(), T( 'span', { key: 0, style: Ue(I.value), class: B(h(u).e('count')) }, ce(h(Ie)) + ' / ' + ce(J.maxlength), 7 )) : X('v-if', !0), ], 64 )), ], 38 ) ) ) }, }) var Sf = ge(Zf, [['__file', 'input.vue']]) const gl = dt(Sf), Mn = 4, Nf = { vertical: { offset: 'offsetHeight', scroll: 'scrollTop', scrollSize: 'scrollHeight', size: 'height', key: 'vertical', axis: 'Y', client: 'clientY', direction: 'top', }, horizontal: { offset: 'offsetWidth', scroll: 'scrollLeft', scrollSize: 'scrollWidth', size: 'width', key: 'horizontal', axis: 'X', client: 'clientX', direction: 'left', }, }, jf = ({ move: e, size: t, bar: n }) => ({ [n.size]: t, transform: `translate${n.axis}(${e}%)` }), mo = Symbol('scrollbarContextKey'), Gf = ye({ vertical: Boolean, size: String, move: Number, ratio: { type: Number, required: !0 }, always: Boolean }), kf = 'Thumb', Bf = Q({ __name: 'thumb', props: Gf, setup(e) { const t = e, n = de(mo), i = he('scrollbar') n || ol(kf, 'can not inject scrollbar context') const s = C(), a = C(), o = C({}), r = C(!1) let l = !1, d = !1, c = ze ? document.onselectstart : null const A = M(() => Nf[t.vertical ? 'vertical' : 'horizontal']), g = M(() => jf({ size: t.size, move: t.move, bar: A.value })), b = M( () => s.value[A.value.offset] ** 2 / n.wrapElement[A.value.scrollSize] / t.ratio / a.value[A.value.offset] ), u = (E) => { var m if ((E.stopPropagation(), E.ctrlKey || [1, 2].includes(E.button))) return ;(m = window.getSelection()) == null || m.removeAllRanges(), v(E) const j = E.currentTarget j && (o.value[A.value.axis] = j[A.value.offset] - (E[A.value.client] - j.getBoundingClientRect()[A.value.direction])) }, p = (E) => { if (!a.value || !s.value || !n.wrapElement) return const m = Math.abs(E.target.getBoundingClientRect()[A.value.direction] - E[A.value.client]), j = a.value[A.value.offset] / 2, U = ((m - j) * 100 * b.value) / s.value[A.value.offset] n.wrapElement[A.value.scroll] = (U * n.wrapElement[A.value.scrollSize]) / 100 }, v = (E) => { E.stopImmediatePropagation(), (l = !0), document.addEventListener('mousemove', f), document.addEventListener('mouseup', w), (c = document.onselectstart), (document.onselectstart = () => !1) }, f = (E) => { if (!s.value || !a.value || l === !1) return const m = o.value[A.value.axis] if (!m) return const j = (s.value.getBoundingClientRect()[A.value.direction] - E[A.value.client]) * -1, U = a.value[A.value.offset] - m, K = ((j - U) * 100 * b.value) / s.value[A.value.offset] n.wrapElement[A.value.scroll] = (K * n.wrapElement[A.value.scrollSize]) / 100 }, w = () => { ;(l = !1), (o.value[A.value.axis] = 0), document.removeEventListener('mousemove', f), document.removeEventListener('mouseup', w), y(), d && (r.value = !1) }, R = () => { ;(d = !1), (r.value = !!t.size) }, I = () => { ;(d = !0), (r.value = l) } xe(() => { y(), document.removeEventListener('mouseup', w) }) const y = () => { document.onselectstart !== c && (document.onselectstart = c) } return ( Dt(ht(n, 'scrollbarElement'), 'mousemove', R), Dt(ht(n, 'scrollbarElement'), 'mouseleave', I), (E, m) => ( Z(), _( at, { name: h(i).b('fade'), persisted: '' }, { default: x(() => [ We( Y( 'div', { ref_key: 'instance', ref: s, class: B([h(i).e('bar'), h(i).is(h(A).key)]), onMousedown: p }, [ Y( 'div', { ref_key: 'thumb', ref: a, class: B(h(i).e('thumb')), style: Ue(h(g)), onMousedown: u }, null, 38 ), ], 34 ), [[bn, E.always || r.value]] ), ]), _: 1, }, 8, ['name'] ) ) ) }, }) var Ba = ge(Bf, [['__file', 'thumb.vue']]) const Yf = ye({ always: { type: Boolean, default: !0 }, minSize: { type: Number, required: !0 } }), Uf = Q({ __name: 'bar', props: Yf, setup(e, { expose: t }) { const n = e, i = de(mo), s = C(0), a = C(0), o = C(''), r = C(''), l = C(1), d = C(1) return ( t({ handleScroll: (g) => { if (g) { const b = g.offsetHeight - Mn, u = g.offsetWidth - Mn ;(a.value = ((g.scrollTop * 100) / b) * l.value), (s.value = ((g.scrollLeft * 100) / u) * d.value) } }, update: () => { const g = i == null ? void 0 : i.wrapElement if (!g) return const b = g.offsetHeight - Mn, u = g.offsetWidth - Mn, p = b ** 2 / g.scrollHeight, v = u ** 2 / g.scrollWidth, f = Math.max(p, n.minSize), w = Math.max(v, n.minSize) ;(l.value = p / (b - p) / (f / (b - f))), (d.value = v / (u - v) / (w / (u - w))), (r.value = f + Mn < b ? `${f}px` : ''), (o.value = w + Mn < u ? `${w}px` : '') }, }), (g, b) => ( Z(), T( je, null, [ P(Ba, { move: s.value, ratio: d.value, size: o.value, always: g.always }, null, 8, [ 'move', 'ratio', 'size', 'always', ]), P(Ba, { move: a.value, ratio: l.value, size: r.value, vertical: '', always: g.always }, null, 8, [ 'move', 'ratio', 'size', 'always', ]), ], 64 ) ) ) }, }) var Tf = ge(Uf, [['__file', 'bar.vue']]) const Jf = ye({ height: { type: [String, Number], default: '' }, maxHeight: { type: [String, Number], default: '' }, native: { type: Boolean, default: !1 }, wrapStyle: { type: ee([String, Object, Array]), default: '' }, wrapClass: { type: [String, Array], default: '' }, viewClass: { type: [String, Array], default: '' }, viewStyle: { type: [String, Array, Object], default: '' }, noresize: Boolean, tag: { type: String, default: 'div' }, always: Boolean, minSize: { type: Number, default: 20 }, tabindex: { type: [String, Number], default: void 0 }, id: String, role: String, ...hn(['ariaLabel', 'ariaOrientation']), }), Cf = { scroll: ({ scrollTop: e, scrollLeft: t }) => [e, t].every(Ne) }, Of = 'ElScrollbar', zf = Q({ name: Of }), Wf = Q({ ...zf, props: Jf, emits: Cf, setup(e, { expose: t, emit: n }) { const i = e, s = he('scrollbar') let a, o, r = 0, l = 0 const d = C(), c = C(), A = C(), g = C(), b = M(() => { const y = {} return i.height && (y.height = pn(i.height)), i.maxHeight && (y.maxHeight = pn(i.maxHeight)), [i.wrapStyle, y] }), u = M(() => [i.wrapClass, s.e('wrap'), { [s.em('wrap', 'hidden-default')]: !i.native }]), p = M(() => [s.e('view'), i.viewClass]), v = () => { var y c.value && ((y = g.value) == null || y.handleScroll(c.value), (r = c.value.scrollTop), (l = c.value.scrollLeft), n('scroll', { scrollTop: c.value.scrollTop, scrollLeft: c.value.scrollLeft })) } function f(y, E) { vt(y) ? c.value.scrollTo(y) : Ne(y) && Ne(E) && c.value.scrollTo(y, E) } const w = (y) => { Ne(y) && (c.value.scrollTop = y) }, R = (y) => { Ne(y) && (c.value.scrollLeft = y) }, I = () => { var y ;(y = g.value) == null || y.update() } return ( q( () => i.noresize, (y) => { y ? (a == null || a(), o == null || o()) : (({ stop: a } = bt(A, I)), (o = Dt('resize', I))) }, { immediate: !0 } ), q( () => [i.maxHeight, i.height], () => { i.native || Ee(() => { var y I(), c.value && ((y = g.value) == null || y.handleScroll(c.value)) }) } ), it(mo, lt({ scrollbarElement: d, wrapElement: c })), pu(() => { c.value && ((c.value.scrollTop = r), (c.value.scrollLeft = l)) }), Be(() => { i.native || Ee(() => { I() }) }), Ur(() => I()), t({ wrapRef: c, update: I, scrollTo: f, setScrollTop: w, setScrollLeft: R, handleScroll: v }), (y, E) => ( Z(), T( 'div', { ref_key: 'scrollbarRef', ref: d, class: B(h(s).b()) }, [ Y( 'div', { ref_key: 'wrapRef', ref: c, class: B(h(u)), style: Ue(h(b)), tabindex: y.tabindex, onScroll: v }, [ (Z(), _( Fe(y.tag), { id: y.id, ref_key: 'resizeRef', ref: A, class: B(h(p)), style: Ue(y.viewStyle), role: y.role, 'aria-label': y.ariaLabel, 'aria-orientation': y.ariaOrientation, }, { default: x(() => [$(y.$slots, 'default')]), _: 3 }, 8, ['id', 'class', 'style', 'role', 'aria-label', 'aria-orientation'] )), ], 46, ['tabindex'] ), y.native ? X('v-if', !0) : (Z(), _(Tf, { key: 0, ref_key: 'barRef', ref: g, always: y.always, 'min-size': y.minSize }, null, 8, [ 'always', 'min-size', ])), ], 2 ) ) ) }, }) var Ff = ge(Wf, [['__file', 'scrollbar.vue']]) const Lf = dt(Ff), yo = Symbol('popper'), fl = Symbol('popperContent'), xf = ['dialog', 'grid', 'group', 'listbox', 'menu', 'navigation', 'tooltip', 'tree'], bl = ye({ role: { type: String, values: xf, default: 'tooltip' } }), Vf = Q({ name: 'ElPopper', inheritAttrs: !1 }), Qf = Q({ ...Vf, props: bl, setup(e, { expose: t }) { const n = e, i = C(), s = C(), a = C(), o = C(), r = M(() => n.role), l = { triggerRef: i, popperInstanceRef: s, contentRef: a, referenceRef: o, role: r } return t(l), it(yo, l), (d, c) => $(d.$slots, 'default') }, }) var Xf = ge(Qf, [['__file', 'popper.vue']]) const hl = ye({ arrowOffset: { type: Number, default: 5 } }), Pf = Q({ name: 'ElPopperArrow', inheritAttrs: !1 }), Hf = Q({ ...Pf, props: hl, setup(e, { expose: t }) { const n = e, i = he('popper'), { arrowOffset: s, arrowRef: a, arrowStyle: o } = de(fl, void 0) return ( q( () => n.arrowOffset, (r) => { s.value = r } ), xe(() => { a.value = void 0 }), t({ arrowRef: a }), (r, l) => ( Z(), T( 'span', { ref_key: 'arrowRef', ref: a, class: B(h(i).e('arrow')), style: Ue(h(o)), 'data-popper-arrow': '' }, null, 6 ) ) ) }, }) var Kf = ge(Hf, [['__file', 'arrow.vue']]) const vl = ye({ virtualRef: { type: ee(Object) }, virtualTriggering: Boolean, onMouseenter: { type: ee(Function) }, onMouseleave: { type: ee(Function) }, onClick: { type: ee(Function) }, onKeydown: { type: ee(Function) }, onFocus: { type: ee(Function) }, onBlur: { type: ee(Function) }, onContextmenu: { type: ee(Function) }, id: String, open: Boolean, }), ml = Symbol('elForwardRef'), qf = (e) => { it(ml, { setForwardRef: (n) => { e.value = n }, }) }, _f = (e) => ({ mounted(t) { e(t) }, updated(t) { e(t) }, unmounted() { e(null) }, }), Ls = (e) => { if (e.tabIndex > 0 || (e.tabIndex === 0 && e.getAttribute('tabIndex') !== null)) return !0 if (e.tabIndex < 0 || e.hasAttribute('disabled') || e.getAttribute('aria-disabled') === 'true') return !1 switch (e.nodeName) { case 'A': return !!e.href && e.rel !== 'ignore' case 'INPUT': return !(e.type === 'hidden' || e.type === 'file') case 'BUTTON': case 'SELECT': case 'TEXTAREA': return !0 default: return !1 } }, $f = 'ElOnlyChild', eb = Q({ name: $f, setup(e, { slots: t, attrs: n }) { var i const s = de(ml), a = _f((i = s == null ? void 0 : s.setForwardRef) != null ? i : Fi) return () => { var o const r = (o = t.default) == null ? void 0 : o.call(t, n) if (!r || r.length > 1) return null const l = yl(r) return l ? We(Au(l, n), [[a]]) : null } }, }) function yl(e) { if (!e) return null const t = e for (const n of t) { if (vt(n)) switch (n.type) { case gu: continue case Tr: case 'svg': return Ya(n) case je: return yl(n.children) default: return n } return Ya(n) } return null } function Ya(e) { const t = he('only-child') return P('span', { class: t.e('content') }, [e]) } const tb = Q({ name: 'ElPopperTrigger', inheritAttrs: !1 }), nb = Q({ ...tb, props: vl, setup(e, { expose: t }) { const n = e, { role: i, triggerRef: s } = de(yo, void 0) qf(s) const a = M(() => (r.value ? n.id : void 0)), o = M(() => { if (i && i.value === 'tooltip') return n.open && n.id ? n.id : void 0 }), r = M(() => { if (i && i.value !== 'tooltip') return i.value }), l = M(() => (r.value ? `${n.open}` : void 0)) let d const c = ['onMouseenter', 'onMouseleave', 'onClick', 'onKeydown', 'onFocus', 'onBlur', 'onContextmenu'] return ( Be(() => { q( () => n.virtualRef, (A) => { A && (s.value = Bt(A)) }, { immediate: !0 } ), q( s, (A, g) => { d == null || d(), (d = void 0), Yt(A) && (c.forEach((b) => { var u const p = n[b] p && (A.addEventListener(b.slice(2).toLowerCase(), p), (u = g == null ? void 0 : g.removeEventListener) == null || u.call(g, b.slice(2).toLowerCase(), p)) }), Ls(A) && (d = q( [a, o, r, l], (b) => { ;['aria-controls', 'aria-describedby', 'aria-haspopup', 'aria-expanded'].forEach((u, p) => { ns(b[p]) ? A.removeAttribute(u) : A.setAttribute(u, b[p]) }) }, { immediate: !0 } ))), Yt(g) && Ls(g) && ['aria-controls', 'aria-describedby', 'aria-haspopup', 'aria-expanded'].forEach((b) => g.removeAttribute(b) ) }, { immediate: !0 } ) }), xe(() => { if ((d == null || d(), (d = void 0), s.value && Yt(s.value))) { const A = s.value c.forEach((g) => { const b = n[g] b && A.removeEventListener(g.slice(2).toLowerCase(), b) }), (s.value = void 0) } }), t({ triggerRef: s }), (A, g) => A.virtualTriggering ? X('v-if', !0) : (Z(), _( h(eb), dn({ key: 0 }, A.$attrs, { 'aria-controls': h(a), 'aria-describedby': h(o), 'aria-expanded': h(l), 'aria-haspopup': h(r), }), { default: x(() => [$(A.$slots, 'default')]), _: 3 }, 16, ['aria-controls', 'aria-describedby', 'aria-expanded', 'aria-haspopup'] )) ) }, }) var ib = ge(nb, [['__file', 'trigger.vue']]) const Is = 'focus-trap.focus-after-trapped', Es = 'focus-trap.focus-after-released', sb = 'focus-trap.focusout-prevented', Ua = { cancelable: !0, bubbles: !1 }, ob = { cancelable: !0, bubbles: !1 }, Ta = 'focusAfterTrapped', Ja = 'focusAfterReleased', ab = Symbol('elFocusTrap'), wo = C(), cs = C(0), Ro = C(0) let Ei = 0 const wl = (e) => { const t = [], n = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, { acceptNode: (i) => { const s = i.tagName === 'INPUT' && i.type === 'hidden' return i.disabled || i.hidden || s ? NodeFilter.FILTER_SKIP : i.tabIndex >= 0 || i === document.activeElement ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP }, }) for (; n.nextNode(); ) t.push(n.currentNode) return t }, Ca = (e, t) => { for (const n of e) if (!rb(n, t)) return n }, rb = (e, t) => { if (getComputedStyle(e).visibility === 'hidden') return !0 for (; e; ) { if (t && e === t) return !1 if (getComputedStyle(e).display === 'none') return !0 e = e.parentElement } return !1 }, lb = (e) => { const t = wl(e), n = Ca(t, e), i = Ca(t.reverse(), e) return [n, i] }, cb = (e) => e instanceof HTMLInputElement && 'select' in e, Gt = (e, t) => { if (e && e.focus) { const n = document.activeElement let i = !1 Yt(e) && !Ls(e) && !e.getAttribute('tabindex') && (e.setAttribute('tabindex', '-1'), (i = !0)), e.focus({ preventScroll: !0 }), (Ro.value = window.performance.now()), e !== n && cb(e) && t && e.select(), Yt(e) && i && e.removeAttribute('tabindex') } } function Oa(e, t) { const n = [...e], i = e.indexOf(t) return i !== -1 && n.splice(i, 1), n } const ub = () => { let e = [] return { push: (i) => { const s = e[0] s && i !== s && s.pause(), (e = Oa(e, i)), e.unshift(i) }, remove: (i) => { var s, a ;(e = Oa(e, i)), (a = (s = e[0]) == null ? void 0 : s.resume) == null || a.call(s) }, } }, db = (e, t = !1) => { const n = document.activeElement for (const i of e) if ((Gt(i, t), document.activeElement !== n)) return }, za = ub(), pb = () => cs.value > Ro.value, Mi = () => { ;(wo.value = 'pointer'), (cs.value = window.performance.now()) }, Wa = () => { ;(wo.value = 'keyboard'), (cs.value = window.performance.now()) }, Ab = () => ( Be(() => { Ei === 0 && (document.addEventListener('mousedown', Mi), document.addEventListener('touchstart', Mi), document.addEventListener('keydown', Wa)), Ei++ }), xe(() => { Ei--, Ei <= 0 && (document.removeEventListener('mousedown', Mi), document.removeEventListener('touchstart', Mi), document.removeEventListener('keydown', Wa)) }), { focusReason: wo, lastUserFocusTimestamp: cs, lastAutomatedFocusTimestamp: Ro } ), Di = (e) => new CustomEvent(sb, { ...ob, detail: e }), on = { tab: 'Tab', enter: 'Enter', space: 'Space', esc: 'Escape', delete: 'Delete', numpadEnter: 'NumpadEnter' } let Sn = [] const Fa = (e) => { e.code === on.esc && Sn.forEach((t) => t(e)) }, gb = (e) => { Be(() => { Sn.length === 0 && document.addEventListener('keydown', Fa), ze && Sn.push(e) }), xe(() => { ;(Sn = Sn.filter((t) => t !== e)), Sn.length === 0 && ze && document.removeEventListener('keydown', Fa) }) }, fb = Q({ name: 'ElFocusTrap', inheritAttrs: !1, props: { loop: Boolean, trapped: Boolean, focusTrapEl: Object, focusStartEl: { type: [Object, String], default: 'first' }, }, emits: [Ta, Ja, 'focusin', 'focusout', 'focusout-prevented', 'release-requested'], setup(e, { emit: t }) { const n = C() let i, s const { focusReason: a } = Ab() gb((u) => { e.trapped && !o.paused && t('release-requested', u) }) const o = { paused: !1, pause() { this.paused = !0 }, resume() { this.paused = !1 }, }, r = (u) => { if ((!e.loop && !e.trapped) || o.paused) return const { code: p, altKey: v, ctrlKey: f, metaKey: w, currentTarget: R, shiftKey: I } = u, { loop: y } = e, E = p === on.tab && !v && !f && !w, m = document.activeElement if (E && m) { const j = R, [U, K] = lb(j) if (U && K) { if (!I && m === K) { const N = Di({ focusReason: a.value }) t('focusout-prevented', N), N.defaultPrevented || (u.preventDefault(), y && Gt(U, !0)) } else if (I && [U, j].includes(m)) { const N = Di({ focusReason: a.value }) t('focusout-prevented', N), N.defaultPrevented || (u.preventDefault(), y && Gt(K, !0)) } } else if (m === j) { const N = Di({ focusReason: a.value }) t('focusout-prevented', N), N.defaultPrevented || u.preventDefault() } } } it(ab, { focusTrapRef: n, onKeydown: r }), q( () => e.focusTrapEl, (u) => { u && (n.value = u) }, { immediate: !0 } ), q([n], ([u], [p]) => { u && (u.addEventListener('keydown', r), u.addEventListener('focusin', c), u.addEventListener('focusout', A)), p && (p.removeEventListener('keydown', r), p.removeEventListener('focusin', c), p.removeEventListener('focusout', A)) }) const l = (u) => { t(Ta, u) }, d = (u) => t(Ja, u), c = (u) => { const p = h(n) if (!p) return const v = u.target, f = u.relatedTarget, w = v && p.contains(v) e.trapped || (f && p.contains(f)) || (i = f), w && t('focusin', u), !o.paused && e.trapped && (w ? (s = v) : Gt(s, !0)) }, A = (u) => { const p = h(n) if (!(o.paused || !p)) if (e.trapped) { const v = u.relatedTarget !ns(v) && !p.contains(v) && setTimeout(() => { if (!o.paused && e.trapped) { const f = Di({ focusReason: a.value }) t('focusout-prevented', f), f.defaultPrevented || Gt(s, !0) } }, 0) } else { const v = u.target ;(v && p.contains(v)) || t('focusout', u) } } async function g() { await Ee() const u = h(n) if (u) { za.push(o) const p = u.contains(document.activeElement) ? i : document.activeElement if (((i = p), !u.contains(p))) { const f = new Event(Is, Ua) u.addEventListener(Is, l), u.dispatchEvent(f), f.defaultPrevented || Ee(() => { let w = e.focusStartEl tt(w) || (Gt(w), document.activeElement !== w && (w = 'first')), w === 'first' && db(wl(u), !0), (document.activeElement === p || w === 'container') && Gt(u) }) } } } function b() { const u = h(n) if (u) { u.removeEventListener(Is, l) const p = new CustomEvent(Es, { ...Ua, detail: { focusReason: a.value } }) u.addEventListener(Es, d), u.dispatchEvent(p), !p.defaultPrevented && (a.value == 'keyboard' || !pb() || u.contains(document.activeElement)) && Gt(i ?? document.body), u.removeEventListener(Es, d), za.remove(o) } } return ( Be(() => { e.trapped && g(), q( () => e.trapped, (u) => { u ? g() : b() } ) }), xe(() => { e.trapped && b(), n.value && (n.value.removeEventListener('keydown', r), n.value.removeEventListener('focusin', c), n.value.removeEventListener('focusout', A), (n.value = void 0)) }), { onKeydown: r } ) }, }) function bb(e, t, n, i, s, a) { return $(e.$slots, 'default', { handleKeydown: e.onKeydown }) } var hb = ge(fb, [ ['render', bb], ['__file', 'focus-trap.vue'], ]), Pe = 'top', ct = 'bottom', ut = 'right', He = 'left', Io = 'auto', gi = [Pe, ct, ut, He], Yn = 'start', ri = 'end', vb = 'clippingParents', Rl = 'viewport', $n = 'popper', mb = 'reference', La = gi.reduce(function (e, t) { return e.concat([t + '-' + Yn, t + '-' + ri]) }, []), us = [].concat(gi, [Io]).reduce(function (e, t) { return e.concat([t, t + '-' + Yn, t + '-' + ri]) }, []), yb = 'beforeRead', wb = 'read', Rb = 'afterRead', Ib = 'beforeMain', Eb = 'main', Mb = 'afterMain', Db = 'beforeWrite', Zb = 'write', Sb = 'afterWrite', Nb = [yb, wb, Rb, Ib, Eb, Mb, Db, Zb, Sb] function St(e) { return e ? (e.nodeName || '').toLowerCase() : null } function yt(e) { if (e == null) return window if (e.toString() !== '[object Window]') { var t = e.ownerDocument return (t && t.defaultView) || window } return e } function Un(e) { var t = yt(e).Element return e instanceof t || e instanceof Element } function rt(e) { var t = yt(e).HTMLElement return e instanceof t || e instanceof HTMLElement } function Eo(e) { if (typeof ShadowRoot > 'u') return !1 var t = yt(e).ShadowRoot return e instanceof t || e instanceof ShadowRoot } function jb(e) { var t = e.state Object.keys(t.elements).forEach(function (n) { var i = t.styles[n] || {}, s = t.attributes[n] || {}, a = t.elements[n] !rt(a) || !St(a) || (Object.assign(a.style, i), Object.keys(s).forEach(function (o) { var r = s[o] r === !1 ? a.removeAttribute(o) : a.setAttribute(o, r === !0 ? '' : r) })) }) } function Gb(e) { var t = e.state, n = { popper: { position: t.options.strategy, left: '0', top: '0', margin: '0' }, arrow: { position: 'absolute' }, reference: {}, } return ( Object.assign(t.elements.popper.style, n.popper), (t.styles = n), t.elements.arrow && Object.assign(t.elements.arrow.style, n.arrow), function () { Object.keys(t.elements).forEach(function (i) { var s = t.elements[i], a = t.attributes[i] || {}, o = Object.keys(t.styles.hasOwnProperty(i) ? t.styles[i] : n[i]), r = o.reduce(function (l, d) { return (l[d] = ''), l }, {}) !rt(s) || !St(s) || (Object.assign(s.style, r), Object.keys(a).forEach(function (l) { s.removeAttribute(l) })) }) } ) } var Il = { name: 'applyStyles', enabled: !0, phase: 'write', fn: jb, effect: Gb, requires: ['computeStyles'] } function Zt(e) { return e.split('-')[0] } var an = Math.max, Pi = Math.min, Tn = Math.round function Jn(e, t) { t === void 0 && (t = !1) var n = e.getBoundingClientRect(), i = 1, s = 1 if (rt(e) && t) { var a = e.offsetHeight, o = e.offsetWidth o > 0 && (i = Tn(n.width) / o || 1), a > 0 && (s = Tn(n.height) / a || 1) } return { width: n.width / i, height: n.height / s, top: n.top / s, right: n.right / i, bottom: n.bottom / s, left: n.left / i, x: n.left / i, y: n.top / s, } } function Mo(e) { var t = Jn(e), n = e.offsetWidth, i = e.offsetHeight return ( Math.abs(t.width - n) <= 1 && (n = t.width), Math.abs(t.height - i) <= 1 && (i = t.height), { x: e.offsetLeft, y: e.offsetTop, width: n, height: i } ) } function El(e, t) { var n = t.getRootNode && t.getRootNode() if (e.contains(t)) return !0 if (n && Eo(n)) { var i = t do { if (i && e.isSameNode(i)) return !0 i = i.parentNode || i.host } while (i) } return !1 } function Ct(e) { return yt(e).getComputedStyle(e) } function kb(e) { return ['table', 'td', 'th'].indexOf(St(e)) >= 0 } function Ht(e) { return ((Un(e) ? e.ownerDocument : e.document) || window.document).documentElement } function ds(e) { return St(e) === 'html' ? e : e.assignedSlot || e.parentNode || (Eo(e) ? e.host : null) || Ht(e) } function xa(e) { return !rt(e) || Ct(e).position === 'fixed' ? null : e.offsetParent } function Bb(e) { var t = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1, n = navigator.userAgent.indexOf('Trident') !== -1 if (n && rt(e)) { var i = Ct(e) if (i.position === 'fixed') return null } var s = ds(e) for (Eo(s) && (s = s.host); rt(s) && ['html', 'body'].indexOf(St(s)) < 0; ) { var a = Ct(s) if ( a.transform !== 'none' || a.perspective !== 'none' || a.contain === 'paint' || ['transform', 'perspective'].indexOf(a.willChange) !== -1 || (t && a.willChange === 'filter') || (t && a.filter && a.filter !== 'none') ) return s s = s.parentNode } return null } function fi(e) { for (var t = yt(e), n = xa(e); n && kb(n) && Ct(n).position === 'static'; ) n = xa(n) return n && (St(n) === 'html' || (St(n) === 'body' && Ct(n).position === 'static')) ? t : n || Bb(e) || t } function Do(e) { return ['top', 'bottom'].indexOf(e) >= 0 ? 'x' : 'y' } function si(e, t, n) { return an(e, Pi(t, n)) } function Yb(e, t, n) { var i = si(e, t, n) return i > n ? n : i } function Ml() { return { top: 0, right: 0, bottom: 0, left: 0 } } function Dl(e) { return Object.assign({}, Ml(), e) } function Zl(e, t) { return t.reduce(function (n, i) { return (n[i] = e), n }, {}) } var Ub = function (e, t) { return ( (e = typeof e == 'function' ? e(Object.assign({}, t.rects, { placement: t.placement })) : e), Dl(typeof e != 'number' ? e : Zl(e, gi)) ) } function Tb(e) { var t, n = e.state, i = e.name, s = e.options, a = n.elements.arrow, o = n.modifiersData.popperOffsets, r = Zt(n.placement), l = Do(r), d = [He, ut].indexOf(r) >= 0, c = d ? 'height' : 'width' if (!(!a || !o)) { var A = Ub(s.padding, n), g = Mo(a), b = l === 'y' ? Pe : He, u = l === 'y' ? ct : ut, p = n.rects.reference[c] + n.rects.reference[l] - o[l] - n.rects.popper[c], v = o[l] - n.rects.reference[l], f = fi(a), w = f ? (l === 'y' ? f.clientHeight || 0 : f.clientWidth || 0) : 0, R = p / 2 - v / 2, I = A[b], y = w - g[c] - A[u], E = w / 2 - g[c] / 2 + R, m = si(I, E, y), j = l n.modifiersData[i] = ((t = {}), (t[j] = m), (t.centerOffset = m - E), t) } } function Jb(e) { var t = e.state, n = e.options, i = n.element, s = i === void 0 ? '[data-popper-arrow]' : i s != null && ((typeof s == 'string' && ((s = t.elements.popper.querySelector(s)), !s)) || !El(t.elements.popper, s) || (t.elements.arrow = s)) } var Cb = { name: 'arrow', enabled: !0, phase: 'main', fn: Tb, effect: Jb, requires: ['popperOffsets'], requiresIfExists: ['preventOverflow'], } function Cn(e) { return e.split('-')[1] } var Ob = { top: 'auto', right: 'auto', bottom: 'auto', left: 'auto' } function zb(e) { var t = e.x, n = e.y, i = window, s = i.devicePixelRatio || 1 return { x: Tn(t * s) / s || 0, y: Tn(n * s) / s || 0 } } function Va(e) { var t, n = e.popper, i = e.popperRect, s = e.placement, a = e.variation, o = e.offsets, r = e.position, l = e.gpuAcceleration, d = e.adaptive, c = e.roundOffsets, A = e.isFixed, g = o.x, b = g === void 0 ? 0 : g, u = o.y, p = u === void 0 ? 0 : u, v = typeof c == 'function' ? c({ x: b, y: p }) : { x: b, y: p } ;(b = v.x), (p = v.y) var f = o.hasOwnProperty('x'), w = o.hasOwnProperty('y'), R = He, I = Pe, y = window if (d) { var E = fi(n), m = 'clientHeight', j = 'clientWidth' if ( (E === yt(n) && ((E = Ht(n)), Ct(E).position !== 'static' && r === 'absolute' && ((m = 'scrollHeight'), (j = 'scrollWidth'))), (E = E), s === Pe || ((s === He || s === ut) && a === ri)) ) { I = ct var U = A && E === y && y.visualViewport ? y.visualViewport.height : E[m] ;(p -= U - i.height), (p *= l ? 1 : -1) } if (s === He || ((s === Pe || s === ct) && a === ri)) { R = ut var K = A && E === y && y.visualViewport ? y.visualViewport.width : E[j] ;(b -= K - i.width), (b *= l ? 1 : -1) } } var H = Object.assign({ position: r }, d && Ob), N = c === !0 ? zb({ x: b, y: p }) : { x: b, y: p } if (((b = N.x), (p = N.y), l)) { var k return Object.assign( {}, H, ((k = {}), (k[I] = w ? '0' : ''), (k[R] = f ? '0' : ''), (k.transform = (y.devicePixelRatio || 1) <= 1 ? 'translate(' + b + 'px, ' + p + 'px)' : 'translate3d(' + b + 'px, ' + p + 'px, 0)'), k) ) } return Object.assign({}, H, ((t = {}), (t[I] = w ? p + 'px' : ''), (t[R] = f ? b + 'px' : ''), (t.transform = ''), t)) } function Wb(e) { var t = e.state, n = e.options, i = n.gpuAcceleration, s = i === void 0 ? !0 : i, a = n.adaptive, o = a === void 0 ? !0 : a, r = n.roundOffsets, l = r === void 0 ? !0 : r, d = { placement: Zt(t.placement), variation: Cn(t.placement), popper: t.elements.popper, popperRect: t.rects.popper, gpuAcceleration: s, isFixed: t.options.strategy === 'fixed', } t.modifiersData.popperOffsets != null && (t.styles.popper = Object.assign( {}, t.styles.popper, Va( Object.assign({}, d, { offsets: t.modifiersData.popperOffsets, position: t.options.strategy, adaptive: o, roundOffsets: l, }) ) )), t.modifiersData.arrow != null && (t.styles.arrow = Object.assign( {}, t.styles.arrow, Va( Object.assign({}, d, { offsets: t.modifiersData.arrow, position: 'absolute', adaptive: !1, roundOffsets: l }) ) )), (t.attributes.popper = Object.assign({}, t.attributes.popper, { 'data-popper-placement': t.placement })) } var Sl = { name: 'computeStyles', enabled: !0, phase: 'beforeWrite', fn: Wb, data: {} }, Zi = { passive: !0 } function Fb(e) { var t = e.state, n = e.instance, i = e.options, s = i.scroll, a = s === void 0 ? !0 : s, o = i.resize, r = o === void 0 ? !0 : o, l = yt(t.elements.popper), d = [].concat(t.scrollParents.reference, t.scrollParents.popper) return ( a && d.forEach(function (c) { c.addEventListener('scroll', n.update, Zi) }), r && l.addEventListener('resize', n.update, Zi), function () { a && d.forEach(function (c) { c.removeEventListener('scroll', n.update, Zi) }), r && l.removeEventListener('resize', n.update, Zi) } ) } var Nl = { name: 'eventListeners', enabled: !0, phase: 'write', fn: function () {}, effect: Fb, data: {} }, Lb = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' } function Ui(e) { return e.replace(/left|right|bottom|top/g, function (t) { return Lb[t] }) } var xb = { start: 'end', end: 'start' } function Qa(e) { return e.replace(/start|end/g, function (t) { return xb[t] }) } function Zo(e) { var t = yt(e), n = t.pageXOffset, i = t.pageYOffset return { scrollLeft: n, scrollTop: i } } function So(e) { return Jn(Ht(e)).left + Zo(e).scrollLeft } function Vb(e) { var t = yt(e), n = Ht(e), i = t.visualViewport, s = n.clientWidth, a = n.clientHeight, o = 0, r = 0 return ( i && ((s = i.width), (a = i.height), /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || ((o = i.offsetLeft), (r = i.offsetTop))), { width: s, height: a, x: o + So(e), y: r } ) } function Qb(e) { var t, n = Ht(e), i = Zo(e), s = (t = e.ownerDocument) == null ? void 0 : t.body, a = an(n.scrollWidth, n.clientWidth, s ? s.scrollWidth : 0, s ? s.clientWidth : 0), o = an(n.scrollHeight, n.clientHeight, s ? s.scrollHeight : 0, s ? s.clientHeight : 0), r = -i.scrollLeft + So(e), l = -i.scrollTop return ( Ct(s || n).direction === 'rtl' && (r += an(n.clientWidth, s ? s.clientWidth : 0) - a), { width: a, height: o, x: r, y: l } ) } function No(e) { var t = Ct(e), n = t.overflow, i = t.overflowX, s = t.overflowY return /auto|scroll|overlay|hidden/.test(n + s + i) } function jl(e) { return ['html', 'body', '#document'].indexOf(St(e)) >= 0 ? e.ownerDocument.body : rt(e) && No(e) ? e : jl(ds(e)) } function oi(e, t) { var n t === void 0 && (t = []) var i = jl(e), s = i === ((n = e.ownerDocument) == null ? void 0 : n.body), a = yt(i), o = s ? [a].concat(a.visualViewport || [], No(i) ? i : []) : i, r = t.concat(o) return s ? r : r.concat(oi(ds(o))) } function xs(e) { return Object.assign({}, e, { left: e.x, top: e.y, right: e.x + e.width, bottom: e.y + e.height }) } function Xb(e) { var t = Jn(e) return ( (t.top = t.top + e.clientTop), (t.left = t.left + e.clientLeft), (t.bottom = t.top + e.clientHeight), (t.right = t.left + e.clientWidth), (t.width = e.clientWidth), (t.height = e.clientHeight), (t.x = t.left), (t.y = t.top), t ) } function Xa(e, t) { return t === Rl ? xs(Vb(e)) : Un(t) ? Xb(t) : xs(Qb(Ht(e))) } function Pb(e) { var t = oi(ds(e)), n = ['absolute', 'fixed'].indexOf(Ct(e).position) >= 0, i = n && rt(e) ? fi(e) : e return Un(i) ? t.filter(function (s) { return Un(s) && El(s, i) && St(s) !== 'body' }) : [] } function Hb(e, t, n) { var i = t === 'clippingParents' ? Pb(e) : [].concat(t), s = [].concat(i, [n]), a = s[0], o = s.reduce( function (r, l) { var d = Xa(e, l) return ( (r.top = an(d.top, r.top)), (r.right = Pi(d.right, r.right)), (r.bottom = Pi(d.bottom, r.bottom)), (r.left = an(d.left, r.left)), r ) }, Xa(e, a) ) return (o.width = o.right - o.left), (o.height = o.bottom - o.top), (o.x = o.left), (o.y = o.top), o } function Gl(e) { var t = e.reference, n = e.element, i = e.placement, s = i ? Zt(i) : null, a = i ? Cn(i) : null, o = t.x + t.width / 2 - n.width / 2, r = t.y + t.height / 2 - n.height / 2, l switch (s) { case Pe: l = { x: o, y: t.y - n.height } break case ct: l = { x: o, y: t.y + t.height } break case ut: l = { x: t.x + t.width, y: r } break case He: l = { x: t.x - n.width, y: r } break default: l = { x: t.x, y: t.y } } var d = s ? Do(s) : null if (d != null) { var c = d === 'y' ? 'height' : 'width' switch (a) { case Yn: l[d] = l[d] - (t[c] / 2 - n[c] / 2) break case ri: l[d] = l[d] + (t[c] / 2 - n[c] / 2) break } } return l } function li(e, t) { t === void 0 && (t = {}) var n = t, i = n.placement, s = i === void 0 ? e.placement : i, a = n.boundary, o = a === void 0 ? vb : a, r = n.rootBoundary, l = r === void 0 ? Rl : r, d = n.elementContext, c = d === void 0 ? $n : d, A = n.altBoundary, g = A === void 0 ? !1 : A, b = n.padding, u = b === void 0 ? 0 : b, p = Dl(typeof u != 'number' ? u : Zl(u, gi)), v = c === $n ? mb : $n, f = e.rects.popper, w = e.elements[g ? v : c], R = Hb(Un(w) ? w : w.contextElement || Ht(e.elements.popper), o, l), I = Jn(e.elements.reference), y = Gl({ reference: I, element: f, placement: s }), E = xs(Object.assign({}, f, y)), m = c === $n ? E : I, j = { top: R.top - m.top + p.top, bottom: m.bottom - R.bottom + p.bottom, left: R.left - m.left + p.left, right: m.right - R.right + p.right, }, U = e.modifiersData.offset if (c === $n && U) { var K = U[s] Object.keys(j).forEach(function (H) { var N = [ut, ct].indexOf(H) >= 0 ? 1 : -1, k = [Pe, ct].indexOf(H) >= 0 ? 'y' : 'x' j[H] += K[k] * N }) } return j } function Kb(e, t) { t === void 0 && (t = {}) var n = t, i = n.placement, s = n.boundary, a = n.rootBoundary, o = n.padding, r = n.flipVariations, l = n.allowedAutoPlacements, d = l === void 0 ? us : l, c = Cn(i), A = c ? r ? La : La.filter(function (u) { return Cn(u) === c }) : gi, g = A.filter(function (u) { return d.indexOf(u) >= 0 }) g.length === 0 && (g = A) var b = g.reduce(function (u, p) { return (u[p] = li(e, { placement: p, boundary: s, rootBoundary: a, padding: o })[Zt(p)]), u }, {}) return Object.keys(b).sort(function (u, p) { return b[u] - b[p] }) } function qb(e) { if (Zt(e) === Io) return [] var t = Ui(e) return [Qa(e), t, Qa(t)] } function _b(e) { var t = e.state, n = e.options, i = e.name if (!t.modifiersData[i]._skip) { for ( var s = n.mainAxis, a = s === void 0 ? !0 : s, o = n.altAxis, r = o === void 0 ? !0 : o, l = n.fallbackPlacements, d = n.padding, c = n.boundary, A = n.rootBoundary, g = n.altBoundary, b = n.flipVariations, u = b === void 0 ? !0 : b, p = n.allowedAutoPlacements, v = t.options.placement, f = Zt(v), w = f === v, R = l || (w || !u ? [Ui(v)] : qb(v)), I = [v].concat(R).reduce(function (ve, fe) { return ve.concat( Zt(fe) === Io ? Kb(t, { placement: fe, boundary: c, rootBoundary: A, padding: d, flipVariations: u, allowedAutoPlacements: p, }) : fe ) }, []), y = t.rects.reference, E = t.rects.popper, m = new Map(), j = !0, U = I[0], K = 0; K < I.length; K++ ) { var H = I[K], N = Zt(H), k = Cn(H) === Yn, F = [Pe, ct].indexOf(N) >= 0, L = F ? 'width' : 'height', O = li(t, { placement: H, boundary: c, rootBoundary: A, altBoundary: g, padding: d }), G = F ? (k ? ut : He) : k ? ct : Pe y[L] > E[L] && (G = Ui(G)) var V = Ui(G), ne = [] if ( (a && ne.push(O[N] <= 0), r && ne.push(O[G] <= 0, O[V] <= 0), ne.every(function (ve) { return ve })) ) { ;(U = H), (j = !1) break } m.set(H, ne) } if (j) for ( var re = u ? 3 : 1, Ie = function (ve) { var fe = I.find(function (Re) { var pe = m.get(Re) if (pe) return pe.slice(0, ve).every(function (W) { return W }) }) if (fe) return (U = fe), 'break' }, ie = re; ie > 0; ie-- ) { var we = Ie(ie) if (we === 'break') break } t.placement !== U && ((t.modifiersData[i]._skip = !0), (t.placement = U), (t.reset = !0)) } } var $b = { name: 'flip', enabled: !0, phase: 'main', fn: _b, requiresIfExists: ['offset'], data: { _skip: !1 } } function Pa(e, t, n) { return ( n === void 0 && (n = { x: 0, y: 0 }), { top: e.top - t.height - n.y, right: e.right - t.width + n.x, bottom: e.bottom - t.height + n.y, left: e.left - t.width - n.x, } ) } function Ha(e) { return [Pe, ut, ct, He].some(function (t) { return e[t] >= 0 }) } function e0(e) { var t = e.state, n = e.name, i = t.rects.reference, s = t.rects.popper, a = t.modifiersData.preventOverflow, o = li(t, { elementContext: 'reference' }), r = li(t, { altBoundary: !0 }), l = Pa(o, i), d = Pa(r, s, a), c = Ha(l), A = Ha(d) ;(t.modifiersData[n] = { referenceClippingOffsets: l, popperEscapeOffsets: d, isReferenceHidden: c, hasPopperEscaped: A, }), (t.attributes.popper = Object.assign({}, t.attributes.popper, { 'data-popper-reference-hidden': c, 'data-popper-escaped': A, })) } var t0 = { name: 'hide', enabled: !0, phase: 'main', requiresIfExists: ['preventOverflow'], fn: e0 } function n0(e, t, n) { var i = Zt(e), s = [He, Pe].indexOf(i) >= 0 ? -1 : 1, a = typeof n == 'function' ? n(Object.assign({}, t, { placement: e })) : n, o = a[0], r = a[1] return (o = o || 0), (r = (r || 0) * s), [He, ut].indexOf(i) >= 0 ? { x: r, y: o } : { x: o, y: r } } function i0(e) { var t = e.state, n = e.options, i = e.name, s = n.offset, a = s === void 0 ? [0, 0] : s, o = us.reduce(function (c, A) { return (c[A] = n0(A, t.rects, a)), c }, {}), r = o[t.placement], l = r.x, d = r.y t.modifiersData.popperOffsets != null && ((t.modifiersData.popperOffsets.x += l), (t.modifiersData.popperOffsets.y += d)), (t.modifiersData[i] = o) } var s0 = { name: 'offset', enabled: !0, phase: 'main', requires: ['popperOffsets'], fn: i0 } function o0(e) { var t = e.state, n = e.name t.modifiersData[n] = Gl({ reference: t.rects.reference, element: t.rects.popper, placement: t.placement }) } var kl = { name: 'popperOffsets', enabled: !0, phase: 'read', fn: o0, data: {} } function a0(e) { return e === 'x' ? 'y' : 'x' } function r0(e) { var t = e.state, n = e.options, i = e.name, s = n.mainAxis, a = s === void 0 ? !0 : s, o = n.altAxis, r = o === void 0 ? !1 : o, l = n.boundary, d = n.rootBoundary, c = n.altBoundary, A = n.padding, g = n.tether, b = g === void 0 ? !0 : g, u = n.tetherOffset, p = u === void 0 ? 0 : u, v = li(t, { boundary: l, rootBoundary: d, padding: A, altBoundary: c }), f = Zt(t.placement), w = Cn(t.placement), R = !w, I = Do(f), y = a0(I), E = t.modifiersData.popperOffsets, m = t.rects.reference, j = t.rects.popper, U = typeof p == 'function' ? p(Object.assign({}, t.rects, { placement: t.placement })) : p, K = typeof U == 'number' ? { mainAxis: U, altAxis: U } : Object.assign({ mainAxis: 0, altAxis: 0 }, U), H = t.modifiersData.offset ? t.modifiersData.offset[t.placement] : null, N = { x: 0, y: 0 } if (E) { if (a) { var k, F = I === 'y' ? Pe : He, L = I === 'y' ? ct : ut, O = I === 'y' ? 'height' : 'width', G = E[I], V = G + v[F], ne = G - v[L], re = b ? -j[O] / 2 : 0, Ie = w === Yn ? m[O] : j[O], ie = w === Yn ? -j[O] : -m[O], we = t.elements.arrow, ve = b && we ? Mo(we) : { width: 0, height: 0 }, fe = t.modifiersData['arrow#persistent'] ? t.modifiersData['arrow#persistent'].padding : Ml(), Re = fe[F], pe = fe[L], W = si(0, m[O], ve[O]), se = R ? m[O] / 2 - re - W - Re - K.mainAxis : Ie - W - Re - K.mainAxis, le = R ? -m[O] / 2 + re + W + pe + K.mainAxis : ie + W + pe + K.mainAxis, Ae = t.elements.arrow && fi(t.elements.arrow), ke = Ae ? (I === 'y' ? Ae.clientTop || 0 : Ae.clientLeft || 0) : 0, Ve = (k = H == null ? void 0 : H[I]) != null ? k : 0, vn = G + se - Ve - ke, mn = G + le - Ve, yn = si(b ? Pi(V, vn) : V, G, b ? an(ne, mn) : ne) ;(E[I] = yn), (N[I] = yn - G) } if (r) { var wn, Ot = I === 'x' ? Pe : He, Rn = I === 'x' ? ct : ut, Qe = E[y], Rt = y === 'y' ? 'height' : 'width', In = Qe + v[Ot], _t = Qe - v[Rn], J = [Pe, He].indexOf(f) !== -1, ue = (wn = H == null ? void 0 : H[y]) != null ? wn : 0, st = J ? In : Qe - m[Rt] - j[Rt] - ue + K.altAxis, zt = J ? Qe + m[Rt] + j[Rt] - ue - K.altAxis : _t, Wt = b && J ? Yb(st, Qe, zt) : si(b ? st : In, Qe, b ? zt : _t) ;(E[y] = Wt), (N[y] = Wt - Qe) } t.modifiersData[i] = N } } var l0 = { name: 'preventOverflow', enabled: !0, phase: 'main', fn: r0, requiresIfExists: ['offset'] } function c0(e) { return { scrollLeft: e.scrollLeft, scrollTop: e.scrollTop } } function u0(e) { return e === yt(e) || !rt(e) ? Zo(e) : c0(e) } function d0(e) { var t = e.getBoundingClientRect(), n = Tn(t.width) / e.offsetWidth || 1, i = Tn(t.height) / e.offsetHeight || 1 return n !== 1 || i !== 1 } function p0(e, t, n) { n === void 0 && (n = !1) var i = rt(t), s = rt(t) && d0(t), a = Ht(t), o = Jn(e, s), r = { scrollLeft: 0, scrollTop: 0 }, l = { x: 0, y: 0 } return ( (i || (!i && !n)) && ((St(t) !== 'body' || No(a)) && (r = u0(t)), rt(t) ? ((l = Jn(t, !0)), (l.x += t.clientLeft), (l.y += t.clientTop)) : a && (l.x = So(a))), { x: o.left + r.scrollLeft - l.x, y: o.top + r.scrollTop - l.y, width: o.width, height: o.height } ) } function A0(e) { var t = new Map(), n = new Set(), i = [] e.forEach(function (a) { t.set(a.name, a) }) function s(a) { n.add(a.name) var o = [].concat(a.requires || [], a.requiresIfExists || []) o.forEach(function (r) { if (!n.has(r)) { var l = t.get(r) l && s(l) } }), i.push(a) } return ( e.forEach(function (a) { n.has(a.name) || s(a) }), i ) } function g0(e) { var t = A0(e) return Nb.reduce(function (n, i) { return n.concat( t.filter(function (s) { return s.phase === i }) ) }, []) } function f0(e) { var t return function () { return ( t || (t = new Promise(function (n) { Promise.resolve().then(function () { ;(t = void 0), n(e()) }) })), t ) } } function b0(e) { var t = e.reduce(function (n, i) { var s = n[i.name] return ( (n[i.name] = s ? Object.assign({}, s, i, { options: Object.assign({}, s.options, i.options), data: Object.assign({}, s.data, i.data), }) : i), n ) }, {}) return Object.keys(t).map(function (n) { return t[n] }) } var Ka = { placement: 'bottom', modifiers: [], strategy: 'absolute' } function qa() { for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n] return !t.some(function (i) { return !(i && typeof i.getBoundingClientRect == 'function') }) } function jo(e) { e === void 0 && (e = {}) var t = e, n = t.defaultModifiers, i = n === void 0 ? [] : n, s = t.defaultOptions, a = s === void 0 ? Ka : s return function (o, r, l) { l === void 0 && (l = a) var d = { placement: 'bottom', orderedModifiers: [], options: Object.assign({}, Ka, a), modifiersData: {}, elements: { reference: o, popper: r }, attributes: {}, styles: {}, }, c = [], A = !1, g = { state: d, setOptions: function (p) { var v = typeof p == 'function' ? p(d.options) : p u(), (d.options = Object.assign({}, a, d.options, v)), (d.scrollParents = { reference: Un(o) ? oi(o) : o.contextElement ? oi(o.contextElement) : [], popper: oi(r), }) var f = g0(b0([].concat(i, d.options.modifiers))) return ( (d.orderedModifiers = f.filter(function (w) { return w.enabled })), b(), g.update() ) }, forceUpdate: function () { if (!A) { var p = d.elements, v = p.reference, f = p.popper if (qa(v, f)) { ;(d.rects = { reference: p0(v, fi(f), d.options.strategy === 'fixed'), popper: Mo(f) }), (d.reset = !1), (d.placement = d.options.placement), d.orderedModifiers.forEach(function (j) { return (d.modifiersData[j.name] = Object.assign({}, j.data)) }) for (var w = 0; w < d.orderedModifiers.length; w++) { if (d.reset === !0) { ;(d.reset = !1), (w = -1) continue } var R = d.orderedModifiers[w], I = R.fn, y = R.options, E = y === void 0 ? {} : y, m = R.name typeof I == 'function' && (d = I({ state: d, options: E, name: m, instance: g }) || d) } } } }, update: f0(function () { return new Promise(function (p) { g.forceUpdate(), p(d) }) }), destroy: function () { u(), (A = !0) }, } if (!qa(o, r)) return g g.setOptions(l).then(function (p) { !A && l.onFirstUpdate && l.onFirstUpdate(p) }) function b() { d.orderedModifiers.forEach(function (p) { var v = p.name, f = p.options, w = f === void 0 ? {} : f, R = p.effect if (typeof R == 'function') { var I = R({ state: d, name: v, instance: g, options: w }), y = function () {} c.push(I || y) } }) } function u() { c.forEach(function (p) { return p() }), (c = []) } return g } } jo() var h0 = [Nl, kl, Sl, Il] jo({ defaultModifiers: h0 }) var v0 = [Nl, kl, Sl, Il, s0, $b, l0, Cb, t0], m0 = jo({ defaultModifiers: v0 }) const y0 = ['fixed', 'absolute'], w0 = ye({ boundariesPadding: { type: Number, default: 0 }, fallbackPlacements: { type: ee(Array), default: void 0 }, gpuAcceleration: { type: Boolean, default: !0 }, offset: { type: Number, default: 12 }, placement: { type: String, values: us, default: 'bottom' }, popperOptions: { type: ee(Object), default: () => ({}) }, strategy: { type: String, values: y0, default: 'absolute' }, }), Bl = ye({ ...w0, id: String, style: { type: ee([String, Array, Object]) }, className: { type: ee([String, Array, Object]) }, effect: { type: ee(String), default: 'dark' }, visible: Boolean, enterable: { type: Boolean, default: !0 }, pure: Boolean, focusOnShow: { type: Boolean, default: !1 }, trapping: { type: Boolean, default: !1 }, popperClass: { type: ee([String, Array, Object]) }, popperStyle: { type: ee([String, Array, Object]) }, referenceEl: { type: ee(Object) }, triggerTargetEl: { type: ee(Object) }, stopPopperMouseEvent: { type: Boolean, default: !0 }, virtualTriggering: Boolean, zIndex: Number, ...hn(['ariaLabel']), }), R0 = { mouseenter: (e) => e instanceof MouseEvent, mouseleave: (e) => e instanceof MouseEvent, focus: () => !0, blur: () => !0, close: () => !0, }, I0 = (e, t) => { const n = C(!1), i = C() return { focusStartRef: i, trapped: n, onFocusAfterReleased: (d) => { var c ;((c = d.detail) == null ? void 0 : c.focusReason) !== 'pointer' && ((i.value = 'first'), t('blur')) }, onFocusAfterTrapped: () => { t('focus') }, onFocusInTrap: (d) => { e.visible && !n.value && (d.target && (i.value = d.target), (n.value = !0)) }, onFocusoutPrevented: (d) => { e.trapping || (d.detail.focusReason === 'pointer' && d.preventDefault(), (n.value = !1)) }, onReleaseRequested: () => { ;(n.value = !1), t('close') }, } }, E0 = (e, t = []) => { const { placement: n, strategy: i, popperOptions: s } = e, a = { placement: n, strategy: i, ...s, modifiers: [...D0(e), ...t] } return Z0(a, s == null ? void 0 : s.modifiers), a }, M0 = (e) => { if (ze) return Bt(e) } function D0(e) { const { offset: t, gpuAcceleration: n, fallbackPlacements: i } = e return [ { name: 'offset', options: { offset: [0, t ?? 12] } }, { name: 'preventOverflow', options: { padding: { top: 2, bottom: 2, left: 5, right: 5 } } }, { name: 'flip', options: { padding: 5, fallbackPlacements: i } }, { name: 'computeStyles', options: { gpuAcceleration: n } }, ] } function Z0(e, t) { t && (e.modifiers = [...e.modifiers, ...(t ?? [])]) } const S0 = (e, t, n = {}) => { const i = { name: 'updateState', enabled: !0, phase: 'write', fn: ({ state: l }) => { const d = N0(l) Object.assign(o.value, d) }, requires: ['computeStyles'], }, s = M(() => { const { onFirstUpdate: l, placement: d, strategy: c, modifiers: A } = h(n) return { onFirstUpdate: l, placement: d || 'bottom', strategy: c || 'absolute', modifiers: [...(A || []), i, { name: 'applyStyles', enabled: !1 }], } }), a = Nn(), o = C({ styles: { popper: { position: h(s).strategy, left: '0', top: '0' }, arrow: { position: 'absolute' } }, attributes: {}, }), r = () => { a.value && (a.value.destroy(), (a.value = void 0)) } return ( q( s, (l) => { const d = h(a) d && d.setOptions(l) }, { deep: !0 } ), q([e, t], ([l, d]) => { r(), !(!l || !d) && (a.value = m0(l, d, h(s))) }), xe(() => { r() }), { state: M(() => { var l return { ...(((l = h(a)) == null ? void 0 : l.state) || {}) } }), styles: M(() => h(o).styles), attributes: M(() => h(o).attributes), update: () => { var l return (l = h(a)) == null ? void 0 : l.update() }, forceUpdate: () => { var l return (l = h(a)) == null ? void 0 : l.forceUpdate() }, instanceRef: M(() => h(a)), } ) } function N0(e) { const t = Object.keys(e.elements), n = Ys(t.map((s) => [s, e.styles[s] || {}])), i = Ys(t.map((s) => [s, e.attributes[s]])) return { styles: n, attributes: i } } const j0 = 0, G0 = (e) => { const { popperInstanceRef: t, contentRef: n, triggerRef: i, role: s } = de(yo, void 0), a = C(), o = C(), r = M(() => ({ name: 'eventListeners', enabled: !!e.visible })), l = M(() => { var f const w = h(a), R = (f = h(o)) != null ? f : j0 return { name: 'arrow', enabled: !Eg(w), options: { element: w, padding: R } } }), d = M(() => ({ onFirstUpdate: () => { u() }, ...E0(e, [h(l), h(r)]), })), c = M(() => M0(e.referenceEl) || h(i)), { attributes: A, state: g, styles: b, update: u, forceUpdate: p, instanceRef: v } = S0(c, n, d) return ( q(v, (f) => (t.value = f)), Be(() => { q( () => { var f return (f = h(c)) == null ? void 0 : f.getBoundingClientRect() }, () => { u() } ) }), { attributes: A, arrowRef: a, contentRef: n, instanceRef: v, state: g, styles: b, role: s, forceUpdate: p, update: u, } ) }, k0 = (e, { attributes: t, styles: n, role: i }) => { const { nextZIndex: s } = fu(), a = he('popper'), o = M(() => h(t).popper), r = C(Ne(e.zIndex) ? e.zIndex : s()), l = M(() => [a.b(), a.is('pure', e.pure), a.is(e.effect), e.popperClass]), d = M(() => [{ zIndex: h(r) }, h(n).popper, e.popperStyle || {}]), c = M(() => (i.value === 'dialog' ? 'false' : void 0)), A = M(() => h(n).arrow || {}) return { ariaModal: c, arrowStyle: A, contentAttrs: o, contentClass: l, contentStyle: d, contentZIndex: r, updateZIndex: () => { r.value = Ne(e.zIndex) ? e.zIndex : s() }, } }, B0 = Q({ name: 'ElPopperContent' }), Y0 = Q({ ...B0, props: Bl, emits: R0, setup(e, { expose: t, emit: n }) { const i = e, { focusStartRef: s, trapped: a, onFocusAfterReleased: o, onFocusAfterTrapped: r, onFocusInTrap: l, onFocusoutPrevented: d, onReleaseRequested: c, } = I0(i, n), { attributes: A, arrowRef: g, contentRef: b, styles: u, instanceRef: p, role: v, update: f } = G0(i), { ariaModal: w, arrowStyle: R, contentAttrs: I, contentClass: y, contentStyle: E, updateZIndex: m, } = k0(i, { styles: u, attributes: A, role: v }), j = de(gn, void 0), U = C() it(fl, { arrowStyle: R, arrowRef: g, arrowOffset: U }), j && it(gn, { ...j, addInputId: Fi, removeInputId: Fi }) let K const H = (k = !0) => { f(), k && m() }, N = () => { H(!1), i.visible && i.focusOnShow ? (a.value = !0) : i.visible === !1 && (a.value = !1) } return ( Be(() => { q( () => i.triggerTargetEl, (k, F) => { K == null || K(), (K = void 0) const L = h(k || b.value), O = h(F || b.value) Yt(L) && (K = q( [v, () => i.ariaLabel, w, () => i.id], (G) => { ;['role', 'aria-label', 'aria-modal', 'id'].forEach((V, ne) => { ns(G[ne]) ? L.removeAttribute(V) : L.setAttribute(V, G[ne]) }) }, { immediate: !0 } )), O !== L && Yt(O) && ['role', 'aria-label', 'aria-modal', 'id'].forEach((G) => { O.removeAttribute(G) }) }, { immediate: !0 } ), q(() => i.visible, N, { immediate: !0 }) }), xe(() => { K == null || K(), (K = void 0) }), t({ popperContentRef: b, popperInstanceRef: p, updatePopper: H, contentStyle: E }), (k, F) => ( Z(), T( 'div', dn({ ref_key: 'contentRef', ref: b }, h(I), { style: h(E), class: h(y), tabindex: '-1', onMouseenter: (L) => k.$emit('mouseenter', L), onMouseleave: (L) => k.$emit('mouseleave', L), }), [ P( h(hb), { trapped: h(a), 'trap-on-focus-in': !0, 'focus-trap-el': h(b), 'focus-start-el': h(s), onFocusAfterTrapped: h(r), onFocusAfterReleased: h(o), onFocusin: h(l), onFocusoutPrevented: h(d), onReleaseRequested: h(c), }, { default: x(() => [$(k.$slots, 'default')]), _: 3 }, 8, [ 'trapped', 'focus-trap-el', 'focus-start-el', 'onFocusAfterTrapped', 'onFocusAfterReleased', 'onFocusin', 'onFocusoutPrevented', 'onReleaseRequested', ] ), ], 16, ['onMouseenter', 'onMouseleave'] ) ) ) }, }) var U0 = ge(Y0, [['__file', 'content.vue']]) const T0 = dt(Xf), Go = Symbol('elTooltip') function _a() { let e const t = (i, s) => { n(), (e = window.setTimeout(i, s)) }, n = () => window.clearTimeout(e) return ts(() => n()), { registerTimeout: t, cancelTimeout: n } } const J0 = ye({ showAfter: { type: Number, default: 0 }, hideAfter: { type: Number, default: 200 }, autoClose: { type: Number, default: 0 }, }), C0 = ({ showAfter: e, hideAfter: t, autoClose: n, open: i, close: s }) => { const { registerTimeout: a } = _a(), { registerTimeout: o, cancelTimeout: r } = _a() return { onOpen: (c) => { a(() => { i(c) const A = h(n) Ne(A) && A > 0 && o(() => { s(c) }, A) }, h(e)) }, onClose: (c) => { r(), a(() => { s(c) }, h(t)) }, } }, ko = ye({ ...J0, ...Bl, appendTo: { type: ee([String, Object]) }, content: { type: String, default: '' }, rawContent: Boolean, persistent: Boolean, visible: { type: ee(Boolean), default: null }, transition: String, teleported: { type: Boolean, default: !0 }, disabled: Boolean, ...hn(['ariaLabel']), }), Yl = ye({ ...vl, disabled: Boolean, trigger: { type: ee([String, Array]), default: 'hover' }, triggerKeys: { type: ee(Array), default: () => [on.enter, on.numpadEnter, on.space] }, }), O0 = Jr({ type: ee(Boolean), default: null }), z0 = Jr({ type: ee(Function) }), W0 = (e) => { const t = `update:${e}`, n = `onUpdate:${e}`, i = [t], s = { [e]: O0, [n]: z0 } return { useModelToggle: ({ indicator: o, toggleReason: r, shouldHideWhenRouteChanges: l, shouldProceed: d, onShow: c, onHide: A, }) => { const g = Nt(), { emit: b } = g, u = g.props, p = M(() => Oe(u[n])), v = M(() => u[e] === null), f = (m) => { o.value !== !0 && ((o.value = !0), r && (r.value = m), Oe(c) && c(m)) }, w = (m) => { o.value !== !1 && ((o.value = !1), r && (r.value = m), Oe(A) && A(m)) }, R = (m) => { if (u.disabled === !0 || (Oe(d) && !d())) return const j = p.value && ze j && b(t, !0), (v.value || !j) && f(m) }, I = (m) => { if (u.disabled === !0 || !ze) return const j = p.value && ze j && b(t, !1), (v.value || !j) && w(m) }, y = (m) => { Tt(m) && (u.disabled && m ? p.value && b(t, !1) : o.value !== m && (m ? f() : w())) }, E = () => { o.value ? I() : R() } return ( q(() => u[e], y), l && g.appContext.config.globalProperties.$route !== void 0 && q( () => ({ ...g.proxy.$route }), () => { l.value && o.value && I() } ), Be(() => { y(u[e]) }), { hide: I, show: R, toggle: E, hasUpdateHandler: p } ) }, useModelToggleProps: s, useModelToggleEmits: i, } }, { useModelToggleProps: F0, useModelToggleEmits: L0, useModelToggle: x0 } = W0('visible'), V0 = ye({ ...bl, ...F0, ...ko, ...Yl, ...hl, showArrow: { type: Boolean, default: !0 } }), Q0 = [...L0, 'before-show', 'before-hide', 'show', 'hide', 'open', 'close'], X0 = (e, t) => (Ye(e) ? e.includes(t) : e === t), Dn = (e, t, n) => (i) => { X0(h(e), t) && n(i) }, kt = (e, t, { checkForDefaultPrevented: n = !0 } = {}) => (s) => { const a = e == null ? void 0 : e(s) if (n === !1 || !a) return t == null ? void 0 : t(s) }, P0 = Q({ name: 'ElTooltipTrigger' }), H0 = Q({ ...P0, props: Yl, setup(e, { expose: t }) { const n = e, i = he('tooltip'), { controlled: s, id: a, open: o, onOpen: r, onClose: l, onToggle: d } = de(Go, void 0), c = C(null), A = () => { if (h(s) || n.disabled) return !0 }, g = ht(n, 'trigger'), b = kt(A, Dn(g, 'hover', r)), u = kt(A, Dn(g, 'hover', l)), p = kt( A, Dn(g, 'click', (I) => { I.button === 0 && d(I) }) ), v = kt(A, Dn(g, 'focus', r)), f = kt(A, Dn(g, 'focus', l)), w = kt( A, Dn(g, 'contextmenu', (I) => { I.preventDefault(), d(I) }) ), R = kt(A, (I) => { const { code: y } = I n.triggerKeys.includes(y) && (I.preventDefault(), d(I)) }) return ( t({ triggerRef: c }), (I, y) => ( Z(), _( h(ib), { id: h(a), 'virtual-ref': I.virtualRef, open: h(o), 'virtual-triggering': I.virtualTriggering, class: B(h(i).e('trigger')), onBlur: h(f), onClick: h(p), onContextmenu: h(w), onFocus: h(v), onMouseenter: h(b), onMouseleave: h(u), onKeydown: h(R), }, { default: x(() => [$(I.$slots, 'default')]), _: 3 }, 8, [ 'id', 'virtual-ref', 'open', 'virtual-triggering', 'class', 'onBlur', 'onClick', 'onContextmenu', 'onFocus', 'onMouseenter', 'onMouseleave', 'onKeydown', ] ) ) ) }, }) var K0 = ge(H0, [['__file', 'trigger.vue']]) const q0 = ye({ to: { type: ee([String, Object]), required: !0 }, disabled: Boolean }), _0 = Q({ __name: 'teleport', props: q0, setup(e) { return (t, n) => t.disabled ? $(t.$slots, 'default', { key: 0 }) : (Z(), _(bu, { key: 1, to: t.to }, [$(t.$slots, 'default')], 8, ['to'])) }, }) var $0 = ge(_0, [['__file', 'teleport.vue']]) const eh = dt($0), Ul = () => { const e = Yr(), t = ul(), n = M(() => `${e.value}-popper-container-${t.prefix}`), i = M(() => `#${n.value}`) return { id: n, selector: i } }, th = (e) => { const t = document.createElement('div') return (t.id = e), document.body.appendChild(t), t }, nh = () => { const { id: e, selector: t } = Ul() return ( is(() => { ze && (document.body.querySelector(t.value) || th(e.value)) }), { id: e, selector: t } ) }, ih = Q({ name: 'ElTooltipContent', inheritAttrs: !1 }), sh = Q({ ...ih, props: ko, setup(e, { expose: t }) { const n = e, { selector: i } = Ul(), s = he('tooltip'), a = C() let o const { controlled: r, id: l, open: d, trigger: c, onClose: A, onOpen: g, onShow: b, onHide: u, onBeforeShow: p, onBeforeHide: v, } = de(Go, void 0), f = M(() => n.transition || `${s.namespace.value}-fade-in-linear`), w = M(() => n.persistent) xe(() => { o == null || o() }) const R = M(() => (h(w) ? !0 : h(d))), I = M(() => (n.disabled ? !1 : h(d))), y = M(() => n.appendTo || i.value), E = M(() => { var G return (G = n.style) != null ? G : {} }), m = C(!0), j = () => { u(), O() && Gt(document.body), (m.value = !0) }, U = () => { if (h(r)) return !0 }, K = kt(U, () => { n.enterable && h(c) === 'hover' && g() }), H = kt(U, () => { h(c) === 'hover' && A() }), N = () => { var G, V ;(V = (G = a.value) == null ? void 0 : G.updatePopper) == null || V.call(G), p == null || p() }, k = () => { v == null || v() }, F = () => { b(), (o = Zg( M(() => { var G return (G = a.value) == null ? void 0 : G.popperContentRef }), () => { if (h(r)) return h(c) !== 'hover' && A() } )) }, L = () => { n.virtualTriggering || A() }, O = (G) => { var V const ne = (V = a.value) == null ? void 0 : V.popperContentRef, re = (G == null ? void 0 : G.relatedTarget) || document.activeElement return ne == null ? void 0 : ne.contains(re) } return ( q( () => h(d), (G) => { G ? (m.value = !1) : o == null || o() }, { flush: 'post' } ), q( () => n.content, () => { var G, V ;(V = (G = a.value) == null ? void 0 : G.updatePopper) == null || V.call(G) } ), t({ contentRef: a, isFocusInsideContent: O }), (G, V) => ( Z(), _( h(eh), { disabled: !G.teleported, to: h(y) }, { default: x(() => [ P( at, { name: h(f), onAfterLeave: j, onBeforeEnter: N, onAfterEnter: F, onBeforeLeave: k }, { default: x(() => [ h(R) ? We( (Z(), _( h(U0), dn({ key: 0, id: h(l), ref_key: 'contentRef', ref: a }, G.$attrs, { 'aria-label': G.ariaLabel, 'aria-hidden': m.value, 'boundaries-padding': G.boundariesPadding, 'fallback-placements': G.fallbackPlacements, 'gpu-acceleration': G.gpuAcceleration, offset: G.offset, placement: G.placement, 'popper-options': G.popperOptions, strategy: G.strategy, effect: G.effect, enterable: G.enterable, pure: G.pure, 'popper-class': G.popperClass, 'popper-style': [G.popperStyle, h(E)], 'reference-el': G.referenceEl, 'trigger-target-el': G.triggerTargetEl, visible: h(I), 'z-index': G.zIndex, onMouseenter: h(K), onMouseleave: h(H), onBlur: L, onClose: h(A), }), { default: x(() => [$(G.$slots, 'default')]), _: 3 }, 16, [ 'id', 'aria-label', 'aria-hidden', 'boundaries-padding', 'fallback-placements', 'gpu-acceleration', 'offset', 'placement', 'popper-options', 'strategy', 'effect', 'enterable', 'pure', 'popper-class', 'popper-style', 'reference-el', 'trigger-target-el', 'visible', 'z-index', 'onMouseenter', 'onMouseleave', 'onClose', ] )), [[bn, h(I)]] ) : X('v-if', !0), ]), _: 3, }, 8, ['name'] ), ]), _: 3, }, 8, ['disabled', 'to'] ) ) ) }, }) var oh = ge(sh, [['__file', 'content.vue']]) const ah = Q({ name: 'ElTooltip' }), rh = Q({ ...ah, props: V0, emits: Q0, setup(e, { expose: t, emit: n }) { const i = e nh() const s = Ai(), a = C(), o = C(), r = () => { var f const w = h(a) w && ((f = w.popperInstanceRef) == null || f.update()) }, l = C(!1), d = C(), { show: c, hide: A, hasUpdateHandler: g } = x0({ indicator: l, toggleReason: d }), { onOpen: b, onClose: u } = C0({ showAfter: ht(i, 'showAfter'), hideAfter: ht(i, 'hideAfter'), autoClose: ht(i, 'autoClose'), open: c, close: A, }), p = M(() => Tt(i.visible) && !g.value) it(Go, { controlled: p, id: s, open: hu(l), trigger: ht(i, 'trigger'), onOpen: (f) => { b(f) }, onClose: (f) => { u(f) }, onToggle: (f) => { h(l) ? u(f) : b(f) }, onShow: () => { n('show', d.value) }, onHide: () => { n('hide', d.value) }, onBeforeShow: () => { n('before-show', d.value) }, onBeforeHide: () => { n('before-hide', d.value) }, updatePopper: r, }), q( () => i.disabled, (f) => { f && l.value && (l.value = !1) } ) const v = (f) => { var w return (w = o.value) == null ? void 0 : w.isFocusInsideContent(f) } return ( vu(() => l.value && A()), t({ popperRef: a, contentRef: o, isFocusInsideContent: v, updatePopper: r, onOpen: b, onClose: u, hide: A }), (f, w) => ( Z(), _( h(T0), { ref_key: 'popperRef', ref: a, role: f.role }, { default: x(() => [ P( K0, { disabled: f.disabled, trigger: f.trigger, 'trigger-keys': f.triggerKeys, 'virtual-ref': f.virtualRef, 'virtual-triggering': f.virtualTriggering, }, { default: x(() => [f.$slots.default ? $(f.$slots, 'default', { key: 0 }) : X('v-if', !0)]), _: 3 }, 8, ['disabled', 'trigger', 'trigger-keys', 'virtual-ref', 'virtual-triggering'] ), P( oh, { ref_key: 'contentRef', ref: o, 'aria-label': f.ariaLabel, 'boundaries-padding': f.boundariesPadding, content: f.content, disabled: f.disabled, effect: f.effect, enterable: f.enterable, 'fallback-placements': f.fallbackPlacements, 'hide-after': f.hideAfter, 'gpu-acceleration': f.gpuAcceleration, offset: f.offset, persistent: f.persistent, 'popper-class': f.popperClass, 'popper-style': f.popperStyle, placement: f.placement, 'popper-options': f.popperOptions, pure: f.pure, 'raw-content': f.rawContent, 'reference-el': f.referenceEl, 'trigger-target-el': f.triggerTargetEl, 'show-after': f.showAfter, strategy: f.strategy, teleported: f.teleported, transition: f.transition, 'virtual-triggering': f.virtualTriggering, 'z-index': f.zIndex, 'append-to': f.appendTo, }, { default: x(() => [ $(f.$slots, 'content', {}, () => [ f.rawContent ? (Z(), T('span', { key: 0, innerHTML: f.content }, null, 8, ['innerHTML'])) : (Z(), T('span', { key: 1 }, ce(f.content), 1)), ]), f.showArrow ? (Z(), _(h(Kf), { key: 0, 'arrow-offset': f.arrowOffset }, null, 8, ['arrow-offset'])) : X('v-if', !0), ]), _: 3, }, 8, [ 'aria-label', 'boundaries-padding', 'content', 'disabled', 'effect', 'enterable', 'fallback-placements', 'hide-after', 'gpu-acceleration', 'offset', 'persistent', 'popper-class', 'popper-style', 'placement', 'popper-options', 'pure', 'raw-content', 'reference-el', 'trigger-target-el', 'show-after', 'strategy', 'teleported', 'transition', 'virtual-triggering', 'z-index', 'append-to', ] ), ]), _: 3, }, 8, ['role'] ) ) ) }, }) var lh = ge(rh, [['__file', 'tooltip.vue']]) const ch = dt(lh), uh = ye({ value: { type: [String, Number], default: '' }, max: { type: Number, default: 99 }, isDot: Boolean, hidden: Boolean, type: { type: String, values: ['primary', 'success', 'warning', 'info', 'danger'], default: 'danger' }, showZero: { type: Boolean, default: !0 }, color: String, badgeStyle: { type: ee([String, Object, Array]) }, offset: { type: ee(Array), default: [0, 0] }, badgeClass: { type: String }, }), dh = Q({ name: 'ElBadge' }), ph = Q({ ...dh, props: uh, setup(e, { expose: t }) { const n = e, i = he('badge'), s = M(() => n.isDot ? '' : Ne(n.value) && Ne(n.max) ? (n.max < n.value ? `${n.max}+` : `${n.value}`) : `${n.value}` ), a = M(() => { var o, r, l, d, c return [ { backgroundColor: n.color, marginRight: pn(-((r = (o = n.offset) == null ? void 0 : o[0]) != null ? r : 0)), marginTop: pn((d = (l = n.offset) == null ? void 0 : l[1]) != null ? d : 0), }, (c = n.badgeStyle) != null ? c : {}, ] }) return ( t({ content: s }), (o, r) => ( Z(), T( 'div', { class: B(h(i).b()) }, [ $(o.$slots, 'default'), P( at, { name: `${h(i).namespace.value}-zoom-in-center`, persisted: '' }, { default: x(() => [ We( Y( 'sup', { class: B([ h(i).e('content'), h(i).em('content', o.type), h(i).is('fixed', !!o.$slots.default), h(i).is('dot', o.isDot), h(i).is('hide-zero', !o.showZero && n.value === 0), o.badgeClass, ]), style: Ue(h(a)), }, [$(o.$slots, 'content', { value: h(s) }, () => [Le(ce(h(s)), 1)])], 6 ), [[bn, !o.hidden && (h(s) || o.isDot || o.$slots.content)]] ), ]), _: 3, }, 8, ['name'] ), ], 2 ) ) ) }, }) var Ah = ge(ph, [['__file', 'badge.vue']]) const gh = dt(Ah), Tl = Symbol('buttonGroupContextKey'), Ti = ({ from: e, replacement: t, scope: n, version: i, ref: s, type: a = 'API' }, o) => { q( () => h(o), (r) => {}, { immediate: !0 } ) }, fh = (e, t) => { Ti( { from: 'type.text', replacement: 'link', version: '3.0.0', scope: 'props', ref: 'https://element-plus.org/en-US/component/button.html#button-attributes', }, M(() => e.type === 'text') ) const n = de(Tl, void 0), i = mu('button'), { form: s } = xn(), a = Xt(M(() => (n == null ? void 0 : n.size))), o = ls(), r = C(), l = pi(), d = M(() => e.type || (n == null ? void 0 : n.type) || ''), c = M(() => { var u, p, v return (v = (p = e.autoInsertSpace) != null ? p : (u = i.value) == null ? void 0 : u.autoInsertSpace) != null ? v : !1 }), A = M(() => e.tag === 'button' ? { ariaDisabled: o.value || e.loading, disabled: o.value || e.loading, autofocus: e.autofocus, type: e.nativeType, } : {} ), g = M(() => { var u const p = (u = l.default) == null ? void 0 : u.call(l) if (c.value && (p == null ? void 0 : p.length) === 1) { const v = p[0] if ((v == null ? void 0 : v.type) === Tr) { const f = v.children return new RegExp('^\\p{Unified_Ideograph}{2}$', 'u').test(f.trim()) } } return !1 }) return { _disabled: o, _size: a, _type: d, _ref: r, _props: A, shouldAddSpace: g, handleClick: (u) => { if (o.value || e.loading) { u.stopPropagation() return } e.nativeType === 'reset' && (s == null || s.resetFields()), t('click', u) }, } }, bh = ['default', 'primary', 'success', 'warning', 'info', 'danger', 'text', ''], hh = ['button', 'submit', 'reset'], Vs = ye({ size: di, disabled: Boolean, type: { type: String, values: bh, default: '' }, icon: { type: An }, nativeType: { type: String, values: hh, default: 'button' }, loading: Boolean, loadingIcon: { type: An, default: () => rl }, plain: Boolean, text: Boolean, link: Boolean, bg: Boolean, autofocus: Boolean, round: Boolean, circle: Boolean, color: String, dark: Boolean, autoInsertSpace: { type: Boolean, default: void 0 }, tag: { type: ee([String, Object]), default: 'button' }, }), vh = { click: (e) => e instanceof MouseEvent } function Te(e, t) { mh(e) && (e = '100%') var n = yh(e) return ( (e = t === 360 ? e : Math.min(t, Math.max(0, parseFloat(e)))), n && (e = parseInt(String(e * t), 10) / 100), Math.abs(e - t) < 1e-6 ? 1 : (t === 360 ? (e = (e < 0 ? (e % t) + t : e % t) / parseFloat(String(t))) : (e = (e % t) / parseFloat(String(t))), e) ) } function Si(e) { return Math.min(1, Math.max(0, e)) } function mh(e) { return typeof e == 'string' && e.indexOf('.') !== -1 && parseFloat(e) === 1 } function yh(e) { return typeof e == 'string' && e.indexOf('%') !== -1 } function Jl(e) { return (e = parseFloat(e)), (isNaN(e) || e < 0 || e > 1) && (e = 1), e } function Ni(e) { return e <= 1 ? ''.concat(Number(e) * 100, '%') : e } function tn(e) { return e.length === 1 ? '0' + e : String(e) } function wh(e, t, n) { return { r: Te(e, 255) * 255, g: Te(t, 255) * 255, b: Te(n, 255) * 255 } } function $a(e, t, n) { ;(e = Te(e, 255)), (t = Te(t, 255)), (n = Te(n, 255)) var i = Math.max(e, t, n), s = Math.min(e, t, n), a = 0, o = 0, r = (i + s) / 2 if (i === s) (o = 0), (a = 0) else { var l = i - s switch (((o = r > 0.5 ? l / (2 - i - s) : l / (i + s)), i)) { case e: a = (t - n) / l + (t < n ? 6 : 0) break case t: a = (n - e) / l + 2 break case n: a = (e - t) / l + 4 break } a /= 6 } return { h: a, s: o, l: r } } function Ms(e, t, n) { return ( n < 0 && (n += 1), n > 1 && (n -= 1), n < 1 / 6 ? e + (t - e) * (6 * n) : n < 1 / 2 ? t : n < 2 / 3 ? e + (t - e) * (2 / 3 - n) * 6 : e ) } function Rh(e, t, n) { var i, s, a if (((e = Te(e, 360)), (t = Te(t, 100)), (n = Te(n, 100)), t === 0)) (s = n), (a = n), (i = n) else { var o = n < 0.5 ? n * (1 + t) : n + t - n * t, r = 2 * n - o ;(i = Ms(r, o, e + 1 / 3)), (s = Ms(r, o, e)), (a = Ms(r, o, e - 1 / 3)) } return { r: i * 255, g: s * 255, b: a * 255 } } function er(e, t, n) { ;(e = Te(e, 255)), (t = Te(t, 255)), (n = Te(n, 255)) var i = Math.max(e, t, n), s = Math.min(e, t, n), a = 0, o = i, r = i - s, l = i === 0 ? 0 : r / i if (i === s) a = 0 else { switch (i) { case e: a = (t - n) / r + (t < n ? 6 : 0) break case t: a = (n - e) / r + 2 break case n: a = (e - t) / r + 4 break } a /= 6 } return { h: a, s: l, v: o } } function Ih(e, t, n) { ;(e = Te(e, 360) * 6), (t = Te(t, 100)), (n = Te(n, 100)) var i = Math.floor(e), s = e - i, a = n * (1 - t), o = n * (1 - s * t), r = n * (1 - (1 - s) * t), l = i % 6, d = [n, o, a, a, r, n][l], c = [r, n, n, o, a, a][l], A = [a, a, r, n, n, o][l] return { r: d * 255, g: c * 255, b: A * 255 } } function tr(e, t, n, i) { var s = [tn(Math.round(e).toString(16)), tn(Math.round(t).toString(16)), tn(Math.round(n).toString(16))] return i && s[0].startsWith(s[0].charAt(1)) && s[1].startsWith(s[1].charAt(1)) && s[2].startsWith(s[2].charAt(1)) ? s[0].charAt(0) + s[1].charAt(0) + s[2].charAt(0) : s.join('') } function Eh(e, t, n, i, s) { var a = [tn(Math.round(e).toString(16)), tn(Math.round(t).toString(16)), tn(Math.round(n).toString(16)), tn(Mh(i))] return s && a[0].startsWith(a[0].charAt(1)) && a[1].startsWith(a[1].charAt(1)) && a[2].startsWith(a[2].charAt(1)) && a[3].startsWith(a[3].charAt(1)) ? a[0].charAt(0) + a[1].charAt(0) + a[2].charAt(0) + a[3].charAt(0) : a.join('') } function Mh(e) { return Math.round(parseFloat(e) * 255).toString(16) } function nr(e) { return _e(e) / 255 } function _e(e) { return parseInt(e, 16) } function Dh(e) { return { r: e >> 16, g: (e & 65280) >> 8, b: e & 255 } } var Qs = { aliceblue: '#f0f8ff', antiquewhite: '#faebd7', aqua: '#00ffff', aquamarine: '#7fffd4', azure: '#f0ffff', beige: '#f5f5dc', bisque: '#ffe4c4', black: '#000000', blanchedalmond: '#ffebcd', blue: '#0000ff', blueviolet: '#8a2be2', brown: '#a52a2a', burlywood: '#deb887', cadetblue: '#5f9ea0', chartreuse: '#7fff00', chocolate: '#d2691e', coral: '#ff7f50', cornflowerblue: '#6495ed', cornsilk: '#fff8dc', crimson: '#dc143c', cyan: '#00ffff', darkblue: '#00008b', darkcyan: '#008b8b', darkgoldenrod: '#b8860b', darkgray: '#a9a9a9', darkgreen: '#006400', darkgrey: '#a9a9a9', darkkhaki: '#bdb76b', darkmagenta: '#8b008b', darkolivegreen: '#556b2f', darkorange: '#ff8c00', darkorchid: '#9932cc', darkred: '#8b0000', darksalmon: '#e9967a', darkseagreen: '#8fbc8f', darkslateblue: '#483d8b', darkslategray: '#2f4f4f', darkslategrey: '#2f4f4f', darkturquoise: '#00ced1', darkviolet: '#9400d3', deeppink: '#ff1493', deepskyblue: '#00bfff', dimgray: '#696969', dimgrey: '#696969', dodgerblue: '#1e90ff', firebrick: '#b22222', floralwhite: '#fffaf0', forestgreen: '#228b22', fuchsia: '#ff00ff', gainsboro: '#dcdcdc', ghostwhite: '#f8f8ff', goldenrod: '#daa520', gold: '#ffd700', gray: '#808080', green: '#008000', greenyellow: '#adff2f', grey: '#808080', honeydew: '#f0fff0', hotpink: '#ff69b4', indianred: '#cd5c5c', indigo: '#4b0082', ivory: '#fffff0', khaki: '#f0e68c', lavenderblush: '#fff0f5', lavender: '#e6e6fa', lawngreen: '#7cfc00', lemonchiffon: '#fffacd', lightblue: '#add8e6', lightcoral: '#f08080', lightcyan: '#e0ffff', lightgoldenrodyellow: '#fafad2', lightgray: '#d3d3d3', lightgreen: '#90ee90', lightgrey: '#d3d3d3', lightpink: '#ffb6c1', lightsalmon: '#ffa07a', lightseagreen: '#20b2aa', lightskyblue: '#87cefa', lightslategray: '#778899', lightslategrey: '#778899', lightsteelblue: '#b0c4de', lightyellow: '#ffffe0', lime: '#00ff00', limegreen: '#32cd32', linen: '#faf0e6', magenta: '#ff00ff', maroon: '#800000', mediumaquamarine: '#66cdaa', mediumblue: '#0000cd', mediumorchid: '#ba55d3', mediumpurple: '#9370db', mediumseagreen: '#3cb371', mediumslateblue: '#7b68ee', mediumspringgreen: '#00fa9a', mediumturquoise: '#48d1cc', mediumvioletred: '#c71585', midnightblue: '#191970', mintcream: '#f5fffa', mistyrose: '#ffe4e1', moccasin: '#ffe4b5', navajowhite: '#ffdead', navy: '#000080', oldlace: '#fdf5e6', olive: '#808000', olivedrab: '#6b8e23', orange: '#ffa500', orangered: '#ff4500', orchid: '#da70d6', palegoldenrod: '#eee8aa', palegreen: '#98fb98', paleturquoise: '#afeeee', palevioletred: '#db7093', papayawhip: '#ffefd5', peachpuff: '#ffdab9', peru: '#cd853f', pink: '#ffc0cb', plum: '#dda0dd', powderblue: '#b0e0e6', purple: '#800080', rebeccapurple: '#663399', red: '#ff0000', rosybrown: '#bc8f8f', royalblue: '#4169e1', saddlebrown: '#8b4513', salmon: '#fa8072', sandybrown: '#f4a460', seagreen: '#2e8b57', seashell: '#fff5ee', sienna: '#a0522d', silver: '#c0c0c0', skyblue: '#87ceeb', slateblue: '#6a5acd', slategray: '#708090', slategrey: '#708090', snow: '#fffafa', springgreen: '#00ff7f', steelblue: '#4682b4', tan: '#d2b48c', teal: '#008080', thistle: '#d8bfd8', tomato: '#ff6347', turquoise: '#40e0d0', violet: '#ee82ee', wheat: '#f5deb3', white: '#ffffff', whitesmoke: '#f5f5f5', yellow: '#ffff00', yellowgreen: '#9acd32', } function Zh(e) { var t = { r: 0, g: 0, b: 0 }, n = 1, i = null, s = null, a = null, o = !1, r = !1 return ( typeof e == 'string' && (e = jh(e)), typeof e == 'object' && (jt(e.r) && jt(e.g) && jt(e.b) ? ((t = wh(e.r, e.g, e.b)), (o = !0), (r = String(e.r).substr(-1) === '%' ? 'prgb' : 'rgb')) : jt(e.h) && jt(e.s) && jt(e.v) ? ((i = Ni(e.s)), (s = Ni(e.v)), (t = Ih(e.h, i, s)), (o = !0), (r = 'hsv')) : jt(e.h) && jt(e.s) && jt(e.l) && ((i = Ni(e.s)), (a = Ni(e.l)), (t = Rh(e.h, i, a)), (o = !0), (r = 'hsl')), Object.prototype.hasOwnProperty.call(e, 'a') && (n = e.a)), (n = Jl(n)), { ok: o, format: e.format || r, r: Math.min(255, Math.max(t.r, 0)), g: Math.min(255, Math.max(t.g, 0)), b: Math.min(255, Math.max(t.b, 0)), a: n, } ) } var Sh = '[-\\+]?\\d+%?', Nh = '[-\\+]?\\d*\\.\\d+%?', Qt = '(?:'.concat(Nh, ')|(?:').concat(Sh, ')'), Ds = '[\\s|\\(]+('.concat(Qt, ')[,|\\s]+(').concat(Qt, ')[,|\\s]+(').concat(Qt, ')\\s*\\)?'), Zs = '[\\s|\\(]+('.concat(Qt, ')[,|\\s]+(').concat(Qt, ')[,|\\s]+(').concat(Qt, ')[,|\\s]+(').concat(Qt, ')\\s*\\)?'), At = { CSS_UNIT: new RegExp(Qt), rgb: new RegExp('rgb' + Ds), rgba: new RegExp('rgba' + Zs), hsl: new RegExp('hsl' + Ds), hsla: new RegExp('hsla' + Zs), hsv: new RegExp('hsv' + Ds), hsva: new RegExp('hsva' + Zs), hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, } function jh(e) { if (((e = e.trim().toLowerCase()), e.length === 0)) return !1 var t = !1 if (Qs[e]) (e = Qs[e]), (t = !0) else if (e === 'transparent') return { r: 0, g: 0, b: 0, a: 0, format: 'name' } var n = At.rgb.exec(e) return n ? { r: n[1], g: n[2], b: n[3] } : ((n = At.rgba.exec(e)), n ? { r: n[1], g: n[2], b: n[3], a: n[4] } : ((n = At.hsl.exec(e)), n ? { h: n[1], s: n[2], l: n[3] } : ((n = At.hsla.exec(e)), n ? { h: n[1], s: n[2], l: n[3], a: n[4] } : ((n = At.hsv.exec(e)), n ? { h: n[1], s: n[2], v: n[3] } : ((n = At.hsva.exec(e)), n ? { h: n[1], s: n[2], v: n[3], a: n[4] } : ((n = At.hex8.exec(e)), n ? { r: _e(n[1]), g: _e(n[2]), b: _e(n[3]), a: nr(n[4]), format: t ? 'name' : 'hex8' } : ((n = At.hex6.exec(e)), n ? { r: _e(n[1]), g: _e(n[2]), b: _e(n[3]), format: t ? 'name' : 'hex' } : ((n = At.hex4.exec(e)), n ? { r: _e(n[1] + n[1]), g: _e(n[2] + n[2]), b: _e(n[3] + n[3]), a: nr(n[4] + n[4]), format: t ? 'name' : 'hex8', } : ((n = At.hex3.exec(e)), n ? { r: _e(n[1] + n[1]), g: _e(n[2] + n[2]), b: _e(n[3] + n[3]), format: t ? 'name' : 'hex', } : !1))))))))) } function jt(e) { return !!At.CSS_UNIT.exec(String(e)) } var Gh = (function () { function e(t, n) { t === void 0 && (t = ''), n === void 0 && (n = {}) var i if (t instanceof e) return t typeof t == 'number' && (t = Dh(t)), (this.originalInput = t) var s = Zh(t) ;(this.originalInput = t), (this.r = s.r), (this.g = s.g), (this.b = s.b), (this.a = s.a), (this.roundA = Math.round(100 * this.a) / 100), (this.format = (i = n.format) !== null && i !== void 0 ? i : s.format), (this.gradientType = n.gradientType), this.r < 1 && (this.r = Math.round(this.r)), this.g < 1 && (this.g = Math.round(this.g)), this.b < 1 && (this.b = Math.round(this.b)), (this.isValid = s.ok) } return ( (e.prototype.isDark = function () { return this.getBrightness() < 128 }), (e.prototype.isLight = function () { return !this.isDark() }), (e.prototype.getBrightness = function () { var t = this.toRgb() return (t.r * 299 + t.g * 587 + t.b * 114) / 1e3 }), (e.prototype.getLuminance = function () { var t = this.toRgb(), n, i, s, a = t.r / 255, o = t.g / 255, r = t.b / 255 return ( a <= 0.03928 ? (n = a / 12.92) : (n = Math.pow((a + 0.055) / 1.055, 2.4)), o <= 0.03928 ? (i = o / 12.92) : (i = Math.pow((o + 0.055) / 1.055, 2.4)), r <= 0.03928 ? (s = r / 12.92) : (s = Math.pow((r + 0.055) / 1.055, 2.4)), 0.2126 * n + 0.7152 * i + 0.0722 * s ) }), (e.prototype.getAlpha = function () { return this.a }), (e.prototype.setAlpha = function (t) { return (this.a = Jl(t)), (this.roundA = Math.round(100 * this.a) / 100), this }), (e.prototype.isMonochrome = function () { var t = this.toHsl().s return t === 0 }), (e.prototype.toHsv = function () { var t = er(this.r, this.g, this.b) return { h: t.h * 360, s: t.s, v: t.v, a: this.a } }), (e.prototype.toHsvString = function () { var t = er(this.r, this.g, this.b), n = Math.round(t.h * 360), i = Math.round(t.s * 100), s = Math.round(t.v * 100) return this.a === 1 ? 'hsv('.concat(n, ', ').concat(i, '%, ').concat(s, '%)') : 'hsva('.concat(n, ', ').concat(i, '%, ').concat(s, '%, ').concat(this.roundA, ')') }), (e.prototype.toHsl = function () { var t = $a(this.r, this.g, this.b) return { h: t.h * 360, s: t.s, l: t.l, a: this.a } }), (e.prototype.toHslString = function () { var t = $a(this.r, this.g, this.b), n = Math.round(t.h * 360), i = Math.round(t.s * 100), s = Math.round(t.l * 100) return this.a === 1 ? 'hsl('.concat(n, ', ').concat(i, '%, ').concat(s, '%)') : 'hsla('.concat(n, ', ').concat(i, '%, ').concat(s, '%, ').concat(this.roundA, ')') }), (e.prototype.toHex = function (t) { return t === void 0 && (t = !1), tr(this.r, this.g, this.b, t) }), (e.prototype.toHexString = function (t) { return t === void 0 && (t = !1), '#' + this.toHex(t) }), (e.prototype.toHex8 = function (t) { return t === void 0 && (t = !1), Eh(this.r, this.g, this.b, this.a, t) }), (e.prototype.toHex8String = function (t) { return t === void 0 && (t = !1), '#' + this.toHex8(t) }), (e.prototype.toHexShortString = function (t) { return t === void 0 && (t = !1), this.a === 1 ? this.toHexString(t) : this.toHex8String(t) }), (e.prototype.toRgb = function () { return { r: Math.round(this.r), g: Math.round(this.g), b: Math.round(this.b), a: this.a } }), (e.prototype.toRgbString = function () { var t = Math.round(this.r), n = Math.round(this.g), i = Math.round(this.b) return this.a === 1 ? 'rgb('.concat(t, ', ').concat(n, ', ').concat(i, ')') : 'rgba('.concat(t, ', ').concat(n, ', ').concat(i, ', ').concat(this.roundA, ')') }), (e.prototype.toPercentageRgb = function () { var t = function (n) { return ''.concat(Math.round(Te(n, 255) * 100), '%') } return { r: t(this.r), g: t(this.g), b: t(this.b), a: this.a } }), (e.prototype.toPercentageRgbString = function () { var t = function (n) { return Math.round(Te(n, 255) * 100) } return this.a === 1 ? 'rgb('.concat(t(this.r), '%, ').concat(t(this.g), '%, ').concat(t(this.b), '%)') : 'rgba('.concat(t(this.r), '%, ').concat(t(this.g), '%, ').concat(t(this.b), '%, ').concat(this.roundA, ')') }), (e.prototype.toName = function () { if (this.a === 0) return 'transparent' if (this.a < 1) return !1 for (var t = '#' + tr(this.r, this.g, this.b, !1), n = 0, i = Object.entries(Qs); n < i.length; n++) { var s = i[n], a = s[0], o = s[1] if (t === o) return a } return !1 }), (e.prototype.toString = function (t) { var n = !!t t = t ?? this.format var i = !1, s = this.a < 1 && this.a >= 0, a = !n && s && (t.startsWith('hex') || t === 'name') return a ? t === 'name' && this.a === 0 ? this.toName() : this.toRgbString() : (t === 'rgb' && (i = this.toRgbString()), t === 'prgb' && (i = this.toPercentageRgbString()), (t === 'hex' || t === 'hex6') && (i = this.toHexString()), t === 'hex3' && (i = this.toHexString(!0)), t === 'hex4' && (i = this.toHex8String(!0)), t === 'hex8' && (i = this.toHex8String()), t === 'name' && (i = this.toName()), t === 'hsl' && (i = this.toHslString()), t === 'hsv' && (i = this.toHsvString()), i || this.toHexString()) }), (e.prototype.toNumber = function () { return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b) }), (e.prototype.clone = function () { return new e(this.toString()) }), (e.prototype.lighten = function (t) { t === void 0 && (t = 10) var n = this.toHsl() return (n.l += t / 100), (n.l = Si(n.l)), new e(n) }), (e.prototype.brighten = function (t) { t === void 0 && (t = 10) var n = this.toRgb() return ( (n.r = Math.max(0, Math.min(255, n.r - Math.round(255 * -(t / 100))))), (n.g = Math.max(0, Math.min(255, n.g - Math.round(255 * -(t / 100))))), (n.b = Math.max(0, Math.min(255, n.b - Math.round(255 * -(t / 100))))), new e(n) ) }), (e.prototype.darken = function (t) { t === void 0 && (t = 10) var n = this.toHsl() return (n.l -= t / 100), (n.l = Si(n.l)), new e(n) }), (e.prototype.tint = function (t) { return t === void 0 && (t = 10), this.mix('white', t) }), (e.prototype.shade = function (t) { return t === void 0 && (t = 10), this.mix('black', t) }), (e.prototype.desaturate = function (t) { t === void 0 && (t = 10) var n = this.toHsl() return (n.s -= t / 100), (n.s = Si(n.s)), new e(n) }), (e.prototype.saturate = function (t) { t === void 0 && (t = 10) var n = this.toHsl() return (n.s += t / 100), (n.s = Si(n.s)), new e(n) }), (e.prototype.greyscale = function () { return this.desaturate(100) }), (e.prototype.spin = function (t) { var n = this.toHsl(), i = (n.h + t) % 360 return (n.h = i < 0 ? 360 + i : i), new e(n) }), (e.prototype.mix = function (t, n) { n === void 0 && (n = 50) var i = this.toRgb(), s = new e(t).toRgb(), a = n / 100, o = { r: (s.r - i.r) * a + i.r, g: (s.g - i.g) * a + i.g, b: (s.b - i.b) * a + i.b, a: (s.a - i.a) * a + i.a } return new e(o) }), (e.prototype.analogous = function (t, n) { t === void 0 && (t = 6), n === void 0 && (n = 30) var i = this.toHsl(), s = 360 / n, a = [this] for (i.h = (i.h - ((s * t) >> 1) + 720) % 360; --t; ) (i.h = (i.h + s) % 360), a.push(new e(i)) return a }), (e.prototype.complement = function () { var t = this.toHsl() return (t.h = (t.h + 180) % 360), new e(t) }), (e.prototype.monochromatic = function (t) { t === void 0 && (t = 6) for (var n = this.toHsv(), i = n.h, s = n.s, a = n.v, o = [], r = 1 / t; t--; ) o.push(new e({ h: i, s, v: a })), (a = (a + r) % 1) return o }), (e.prototype.splitcomplement = function () { var t = this.toHsl(), n = t.h return [this, new e({ h: (n + 72) % 360, s: t.s, l: t.l }), new e({ h: (n + 216) % 360, s: t.s, l: t.l })] }), (e.prototype.onBackground = function (t) { var n = this.toRgb(), i = new e(t).toRgb(), s = n.a + i.a * (1 - n.a) return new e({ r: (n.r * n.a + i.r * i.a * (1 - n.a)) / s, g: (n.g * n.a + i.g * i.a * (1 - n.a)) / s, b: (n.b * n.a + i.b * i.a * (1 - n.a)) / s, a: s, }) }), (e.prototype.triad = function () { return this.polyad(3) }), (e.prototype.tetrad = function () { return this.polyad(4) }), (e.prototype.polyad = function (t) { for (var n = this.toHsl(), i = n.h, s = [this], a = 360 / t, o = 1; o < t; o++) s.push(new e({ h: (i + o * a) % 360, s: n.s, l: n.l })) return s }), (e.prototype.equals = function (t) { return this.toRgbString() === new e(t).toRgbString() }), e ) })() function Lt(e, t = 20) { return e.mix('#141414', t).toString() } function kh(e) { const t = ls(), n = he('button') return M(() => { let i = {}, s = e.color if (s) { const a = s.match(/var\((.*?)\)/) a && (s = window.getComputedStyle(window.document.documentElement).getPropertyValue(a[1])) const o = new Gh(s), r = e.dark ? o.tint(20).toString() : Lt(o, 20) if (e.plain) (i = n.cssVarBlock({ 'bg-color': e.dark ? Lt(o, 90) : o.tint(90).toString(), 'text-color': s, 'border-color': e.dark ? Lt(o, 50) : o.tint(50).toString(), 'hover-text-color': `var(${n.cssVarName('color-white')})`, 'hover-bg-color': s, 'hover-border-color': s, 'active-bg-color': r, 'active-text-color': `var(${n.cssVarName('color-white')})`, 'active-border-color': r, })), t.value && ((i[n.cssVarBlockName('disabled-bg-color')] = e.dark ? Lt(o, 90) : o.tint(90).toString()), (i[n.cssVarBlockName('disabled-text-color')] = e.dark ? Lt(o, 50) : o.tint(50).toString()), (i[n.cssVarBlockName('disabled-border-color')] = e.dark ? Lt(o, 80) : o.tint(80).toString())) else { const l = e.dark ? Lt(o, 30) : o.tint(30).toString(), d = o.isDark() ? `var(${n.cssVarName('color-white')})` : `var(${n.cssVarName('color-black')})` if ( ((i = n.cssVarBlock({ 'bg-color': s, 'text-color': d, 'border-color': s, 'hover-bg-color': l, 'hover-text-color': d, 'hover-border-color': l, 'active-bg-color': r, 'active-border-color': r, })), t.value) ) { const c = e.dark ? Lt(o, 50) : o.tint(50).toString() ;(i[n.cssVarBlockName('disabled-bg-color')] = c), (i[n.cssVarBlockName('disabled-text-color')] = e.dark ? 'rgba(255, 255, 255, 0.5)' : `var(${n.cssVarName('color-white')})`), (i[n.cssVarBlockName('disabled-border-color')] = c) } } } return i }) } const Bh = Q({ name: 'ElButton' }), Yh = Q({ ...Bh, props: Vs, emits: vh, setup(e, { expose: t, emit: n }) { const i = e, s = kh(i), a = he('button'), { _ref: o, _size: r, _type: l, _disabled: d, _props: c, shouldAddSpace: A, handleClick: g } = fh(i, n), b = M(() => [ a.b(), a.m(l.value), a.m(r.value), a.is('disabled', d.value), a.is('loading', i.loading), a.is('plain', i.plain), a.is('round', i.round), a.is('circle', i.circle), a.is('text', i.text), a.is('link', i.link), a.is('has-bg', i.bg), ]) return ( t({ ref: o, size: r, type: l, disabled: d, shouldAddSpace: A }), (u, p) => ( Z(), _( Fe(u.tag), dn({ ref_key: '_ref', ref: o }, h(c), { class: h(b), style: h(s), onClick: h(g) }), { default: x(() => [ u.loading ? (Z(), T( je, { key: 0 }, [ u.$slots.loading ? $(u.$slots, 'loading', { key: 0 }) : (Z(), _( h(ot), { key: 1, class: B(h(a).is('loading')) }, { default: x(() => [(Z(), _(Fe(u.loadingIcon)))]), _: 1 }, 8, ['class'] )), ], 64 )) : u.icon || u.$slots.icon ? (Z(), _( h(ot), { key: 1 }, { default: x(() => [ u.icon ? (Z(), _(Fe(u.icon), { key: 0 })) : $(u.$slots, 'icon', { key: 1 }), ]), _: 3, } )) : X('v-if', !0), u.$slots.default ? (Z(), T('span', { key: 2, class: B({ [h(a).em('text', 'expand')]: h(A) }) }, [$(u.$slots, 'default')], 2)) : X('v-if', !0), ]), _: 3, }, 16, ['class', 'style', 'onClick'] ) ) ) }, }) var Uh = ge(Yh, [['__file', 'button.vue']]) const Th = { size: Vs.size, type: Vs.type }, Jh = Q({ name: 'ElButtonGroup' }), Ch = Q({ ...Jh, props: Th, setup(e) { const t = e it(Tl, lt({ size: ht(t, 'size'), type: ht(t, 'type') })) const n = he('button') return (i, s) => (Z(), T('div', { class: B(h(n).b('group')) }, [$(i.$slots, 'default')], 2)) }, }) var Cl = ge(Ch, [['__file', 'button-group.vue']]) const Ol = dt(Uh, { ButtonGroup: Cl }) Wn(Cl) const zl = { modelValue: { type: [Number, String, Boolean], default: void 0 }, label: { type: [String, Boolean, Number, Object], default: void 0 }, value: { type: [String, Boolean, Number, Object], default: void 0 }, indeterminate: Boolean, disabled: Boolean, checked: Boolean, name: { type: String, default: void 0 }, trueValue: { type: [String, Number], default: void 0 }, falseValue: { type: [String, Number], default: void 0 }, trueLabel: { type: [String, Number], default: void 0 }, falseLabel: { type: [String, Number], default: void 0 }, id: { type: String, default: void 0 }, border: Boolean, size: di, tabindex: [String, Number], validateEvent: { type: Boolean, default: !0 }, ...hn(['ariaControls']), }, Wl = { [$e]: (e) => tt(e) || Ne(e) || Tt(e), change: (e) => tt(e) || Ne(e) || Tt(e) }, Vn = Symbol('checkboxGroupContextKey'), Oh = ({ model: e, isChecked: t }) => { const n = de(Vn, void 0), i = M(() => { var a, o const r = (a = n == null ? void 0 : n.max) == null ? void 0 : a.value, l = (o = n == null ? void 0 : n.min) == null ? void 0 : o.value return (!Vt(r) && e.value.length >= r && !t.value) || (!Vt(l) && e.value.length <= l && t.value) }) return { isDisabled: ls(M(() => (n == null ? void 0 : n.disabled.value) || i.value)), isLimitDisabled: i } }, zh = (e, { model: t, isLimitExceeded: n, hasOwnLabel: i, isDisabled: s, isLabeledByFormItem: a }) => { const o = de(Vn, void 0), { formItem: r } = xn(), { emit: l } = Nt() function d(u) { var p, v, f, w return [!0, e.trueValue, e.trueLabel].includes(u) ? (v = (p = e.trueValue) != null ? p : e.trueLabel) != null ? v : !0 : (w = (f = e.falseValue) != null ? f : e.falseLabel) != null ? w : !1 } function c(u, p) { l('change', d(u), p) } function A(u) { if (n.value) return const p = u.target l('change', d(p.checked), u) } async function g(u) { n.value || (!i.value && !s.value && a.value && (u.composedPath().some((f) => f.tagName === 'LABEL') || ((t.value = d([!1, e.falseValue, e.falseLabel].includes(t.value))), await Ee(), c(t.value, u)))) } const b = M(() => (o == null ? void 0 : o.validateEvent) || e.validateEvent) return ( q( () => e.modelValue, () => { b.value && (r == null || r.validate('change').catch((u) => void 0)) } ), { handleChange: A, onClickRoot: g } ) }, Wh = (e) => { const t = C(!1), { emit: n } = Nt(), i = de(Vn, void 0), s = M(() => Vt(i) === !1), a = C(!1), o = M({ get() { var r, l return s.value ? (r = i == null ? void 0 : i.modelValue) == null ? void 0 : r.value : (l = e.modelValue) != null ? l : t.value }, set(r) { var l, d s.value && Ye(r) ? ((a.value = ((l = i == null ? void 0 : i.max) == null ? void 0 : l.value) !== void 0 && r.length > (i == null ? void 0 : i.max.value) && r.length > o.value.length), a.value === !1 && ((d = i == null ? void 0 : i.changeEvent) == null || d.call(i, r))) : (n($e, r), (t.value = r)) }, }) return { model: o, isGroup: s, isLimitExceeded: a } }, Fh = (e, t, { model: n }) => { const i = de(Vn, void 0), s = C(!1), a = M(() => (Us(e.value) ? e.label : e.value)), o = M(() => { const c = n.value return Tt(c) ? c : Ye(c) ? vt(a.value) ? c.map(Ts).some((A) => jn(A, a.value)) : c.map(Ts).includes(a.value) : c != null ? c === e.trueValue || c === e.trueLabel : !!c }), r = Xt( M(() => { var c return (c = i == null ? void 0 : i.size) == null ? void 0 : c.value }), { prop: !0 } ), l = Xt( M(() => { var c return (c = i == null ? void 0 : i.size) == null ? void 0 : c.value }) ), d = M(() => !!t.default || !Us(a.value)) return { checkboxButtonSize: r, isChecked: o, isFocused: s, checkboxSize: l, hasOwnLabel: d, actualValue: a } }, Fl = (e, t) => { const { formItem: n } = xn(), { model: i, isGroup: s, isLimitExceeded: a } = Wh(e), { isFocused: o, isChecked: r, checkboxButtonSize: l, checkboxSize: d, hasOwnLabel: c, actualValue: A, } = Fh(e, t, { model: i }), { isDisabled: g } = Oh({ model: i, isChecked: r }), { inputId: b, isLabeledByFormItem: u } = rs(e, { formItemContext: n, disableIdGeneration: c, disableIdManagement: s, }), { handleChange: p, onClickRoot: v } = zh(e, { model: i, isLimitExceeded: a, hasOwnLabel: c, isDisabled: g, isLabeledByFormItem: u, }) return ( (() => { function w() { var R, I Ye(i.value) && !i.value.includes(A.value) ? i.value.push(A.value) : (i.value = (I = (R = e.trueValue) != null ? R : e.trueLabel) != null ? I : !0) } e.checked && w() })(), Ti( { from: 'label act as value', replacement: 'value', version: '3.0.0', scope: 'el-checkbox', ref: 'https://element-plus.org/en-US/component/checkbox.html', }, M(() => s.value && Us(e.value)) ), Ti( { from: 'true-label', replacement: 'true-value', version: '3.0.0', scope: 'el-checkbox', ref: 'https://element-plus.org/en-US/component/checkbox.html', }, M(() => !!e.trueLabel) ), Ti( { from: 'false-label', replacement: 'false-value', version: '3.0.0', scope: 'el-checkbox', ref: 'https://element-plus.org/en-US/component/checkbox.html', }, M(() => !!e.falseLabel) ), { inputId: b, isLabeledByFormItem: u, isChecked: r, isDisabled: g, isFocused: o, checkboxButtonSize: l, checkboxSize: d, hasOwnLabel: c, model: i, actualValue: A, handleChange: p, onClickRoot: v, } ) }, Lh = Q({ name: 'ElCheckbox' }), xh = Q({ ...Lh, props: zl, emits: Wl, setup(e) { const t = e, n = pi(), { inputId: i, isLabeledByFormItem: s, isChecked: a, isDisabled: o, isFocused: r, checkboxSize: l, hasOwnLabel: d, model: c, actualValue: A, handleChange: g, onClickRoot: b, } = Fl(t, n), u = he('checkbox'), p = M(() => [ u.b(), u.m(l.value), u.is('disabled', o.value), u.is('bordered', t.border), u.is('checked', a.value), ]), v = M(() => [ u.e('input'), u.is('disabled', o.value), u.is('checked', a.value), u.is('indeterminate', t.indeterminate), u.is('focus', r.value), ]) return (f, w) => ( Z(), _( Fe(!h(d) && h(s) ? 'span' : 'label'), { class: B(h(p)), 'aria-controls': f.indeterminate ? f.ariaControls : null, onClick: h(b) }, { default: x(() => { var R, I, y, E return [ Y( 'span', { class: B(h(v)) }, [ f.trueValue || f.falseValue || f.trueLabel || f.falseLabel ? We( (Z(), T( 'input', { key: 0, id: h(i), 'onUpdate:modelValue': (m) => (Li(c) ? (c.value = m) : null), class: B(h(u).e('original')), type: 'checkbox', indeterminate: f.indeterminate, name: f.name, tabindex: f.tabindex, disabled: h(o), 'true-value': (I = (R = f.trueValue) != null ? R : f.trueLabel) != null ? I : !0, 'false-value': (E = (y = f.falseValue) != null ? y : f.falseLabel) != null ? E : !1, onChange: h(g), onFocus: (m) => (r.value = !0), onBlur: (m) => (r.value = !1), onClick: Ze(() => {}, ['stop']), }, null, 42, [ 'id', 'onUpdate:modelValue', 'indeterminate', 'name', 'tabindex', 'disabled', 'true-value', 'false-value', 'onChange', 'onFocus', 'onBlur', 'onClick', ] )), [[xi, h(c)]] ) : We( (Z(), T( 'input', { key: 1, id: h(i), 'onUpdate:modelValue': (m) => (Li(c) ? (c.value = m) : null), class: B(h(u).e('original')), type: 'checkbox', indeterminate: f.indeterminate, disabled: h(o), value: h(A), name: f.name, tabindex: f.tabindex, onChange: h(g), onFocus: (m) => (r.value = !0), onBlur: (m) => (r.value = !1), onClick: Ze(() => {}, ['stop']), }, null, 42, [ 'id', 'onUpdate:modelValue', 'indeterminate', 'disabled', 'value', 'name', 'tabindex', 'onChange', 'onFocus', 'onBlur', 'onClick', ] )), [[xi, h(c)]] ), Y('span', { class: B(h(u).e('inner')) }, null, 2), ], 2 ), h(d) ? (Z(), T( 'span', { key: 0, class: B(h(u).e('label')) }, [ $(f.$slots, 'default'), f.$slots.default ? X('v-if', !0) : (Z(), T(je, { key: 0 }, [Le(ce(f.label), 1)], 64)), ], 2 )) : X('v-if', !0), ] }), _: 3, }, 8, ['class', 'aria-controls', 'onClick'] ) ) }, }) var Vh = ge(xh, [['__file', 'checkbox.vue']]) const Qh = Q({ name: 'ElCheckboxButton' }), Xh = Q({ ...Qh, props: zl, emits: Wl, setup(e) { const t = e, n = pi(), { isFocused: i, isChecked: s, isDisabled: a, checkboxButtonSize: o, model: r, actualValue: l, handleChange: d, } = Fl(t, n), c = de(Vn, void 0), A = he('checkbox'), g = M(() => { var u, p, v, f const w = (p = (u = c == null ? void 0 : c.fill) == null ? void 0 : u.value) != null ? p : '' return { backgroundColor: w, borderColor: w, color: (f = (v = c == null ? void 0 : c.textColor) == null ? void 0 : v.value) != null ? f : '', boxShadow: w ? `-1px 0 0 0 ${w}` : void 0, } }), b = M(() => [ A.b('button'), A.bm('button', o.value), A.is('disabled', a.value), A.is('checked', s.value), A.is('focus', i.value), ]) return (u, p) => { var v, f, w, R return ( Z(), T( 'label', { class: B(h(b)) }, [ u.trueValue || u.falseValue || u.trueLabel || u.falseLabel ? We( (Z(), T( 'input', { key: 0, 'onUpdate:modelValue': (I) => (Li(r) ? (r.value = I) : null), class: B(h(A).be('button', 'original')), type: 'checkbox', name: u.name, tabindex: u.tabindex, disabled: h(a), 'true-value': (f = (v = u.trueValue) != null ? v : u.trueLabel) != null ? f : !0, 'false-value': (R = (w = u.falseValue) != null ? w : u.falseLabel) != null ? R : !1, onChange: h(d), onFocus: (I) => (i.value = !0), onBlur: (I) => (i.value = !1), onClick: Ze(() => {}, ['stop']), }, null, 42, [ 'onUpdate:modelValue', 'name', 'tabindex', 'disabled', 'true-value', 'false-value', 'onChange', 'onFocus', 'onBlur', 'onClick', ] )), [[xi, h(r)]] ) : We( (Z(), T( 'input', { key: 1, 'onUpdate:modelValue': (I) => (Li(r) ? (r.value = I) : null), class: B(h(A).be('button', 'original')), type: 'checkbox', name: u.name, tabindex: u.tabindex, disabled: h(a), value: h(l), onChange: h(d), onFocus: (I) => (i.value = !0), onBlur: (I) => (i.value = !1), onClick: Ze(() => {}, ['stop']), }, null, 42, [ 'onUpdate:modelValue', 'name', 'tabindex', 'disabled', 'value', 'onChange', 'onFocus', 'onBlur', 'onClick', ] )), [[xi, h(r)]] ), u.$slots.default || u.label ? (Z(), T( 'span', { key: 2, class: B(h(A).be('button', 'inner')), style: Ue(h(s) ? h(g) : void 0) }, [$(u.$slots, 'default', {}, () => [Le(ce(u.label), 1)])], 6 )) : X('v-if', !0), ], 2 ) ) } }, }) var Ll = ge(Xh, [['__file', 'checkbox-button.vue']]) const Ph = ye({ modelValue: { type: ee(Array), default: () => [] }, disabled: Boolean, min: Number, max: Number, size: di, fill: String, textColor: String, tag: { type: String, default: 'div' }, validateEvent: { type: Boolean, default: !0 }, ...hn(['ariaLabel']), }), Hh = { [$e]: (e) => Ye(e), change: (e) => Ye(e) }, Kh = Q({ name: 'ElCheckboxGroup' }), qh = Q({ ...Kh, props: Ph, emits: Hh, setup(e, { emit: t }) { const n = e, i = he('checkbox'), { formItem: s } = xn(), { inputId: a, isLabeledByFormItem: o } = rs(n, { formItemContext: s }), r = async (d) => { t($e, d), await Ee(), t('change', d) }, l = M({ get() { return n.modelValue }, set(d) { r(d) }, }) return ( it(Vn, { ...il(Fn(n), ['size', 'min', 'max', 'disabled', 'validateEvent', 'fill', 'textColor']), modelValue: l, changeEvent: r, }), q( () => n.modelValue, () => { n.validateEvent && (s == null || s.validate('change').catch((d) => void 0)) } ), (d, c) => { var A return ( Z(), _( Fe(d.tag), { id: h(a), class: B(h(i).b('group')), role: 'group', 'aria-label': h(o) ? void 0 : d.ariaLabel || 'checkbox-group', 'aria-labelledby': h(o) ? ((A = h(s)) == null ? void 0 : A.labelId) : void 0, }, { default: x(() => [$(d.$slots, 'default')]), _: 3 }, 8, ['id', 'class', 'aria-label', 'aria-labelledby'] ) ) } ) }, }) var xl = ge(qh, [['__file', 'checkbox-group.vue']]) const Vl = dt(Vh, { CheckboxButton: Ll, CheckboxGroup: xl }) Wn(Ll) Wn(xl) const _h = (e = '') => e.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&').replace(/-/g, '\\x2d'), Xs = ye({ type: { type: String, values: ['primary', 'success', 'info', 'warning', 'danger'], default: 'primary' }, closable: Boolean, disableTransitions: Boolean, hit: Boolean, color: String, size: { type: String, values: lo }, effect: { type: String, values: ['dark', 'light', 'plain'], default: 'light' }, round: Boolean, }), $h = { close: (e) => e instanceof MouseEvent, click: (e) => e instanceof MouseEvent }, ev = Q({ name: 'ElTag' }), tv = Q({ ...ev, props: Xs, emits: $h, setup(e, { emit: t }) { const n = e, i = Xt(), s = he('tag'), a = M(() => { const { type: d, hit: c, effect: A, closable: g, round: b } = n return [ s.b(), s.is('closable', g), s.m(d || 'primary'), s.m(i.value), s.m(A), s.is('hit', c), s.is('round', b), ] }), o = (d) => { t('close', d) }, r = (d) => { t('click', d) }, l = (d) => { var c, A, g ;(g = (A = (c = d == null ? void 0 : d.component) == null ? void 0 : c.subTree) == null ? void 0 : A.component) != null && g.bum && (d.component.subTree.component.bum = null) } return (d, c) => d.disableTransitions ? (Z(), T( 'span', { key: 0, class: B(h(a)), style: Ue({ backgroundColor: d.color }), onClick: r }, [ Y('span', { class: B(h(s).e('content')) }, [$(d.$slots, 'default')], 2), d.closable ? (Z(), _( h(ot), { key: 0, class: B(h(s).e('close')), onClick: Ze(o, ['stop']) }, { default: x(() => [P(h(Fs))]), _: 1 }, 8, ['class', 'onClick'] )) : X('v-if', !0), ], 6 )) : (Z(), _( at, { key: 1, name: `${h(s).namespace.value}-zoom-in-center`, appear: '', onVnodeMounted: l }, { default: x(() => [ Y( 'span', { class: B(h(a)), style: Ue({ backgroundColor: d.color }), onClick: r }, [ Y('span', { class: B(h(s).e('content')) }, [$(d.$slots, 'default')], 2), d.closable ? (Z(), _( h(ot), { key: 0, class: B(h(s).e('close')), onClick: Ze(o, ['stop']) }, { default: x(() => [P(h(Fs))]), _: 1 }, 8, ['class', 'onClick'] )) : X('v-if', !0), ], 6 ), ]), _: 3, }, 8, ['name'] )) }, }) var nv = ge(tv, [['__file', 'tag.vue']]) const iv = dt(nv), xt = new Map() if (ze) { let e document.addEventListener('mousedown', (t) => (e = t)), document.addEventListener('mouseup', (t) => { if (e) { for (const n of xt.values()) for (const { documentHandler: i } of n) i(t, e) e = void 0 } }) } function ir(e, t) { let n = [] return ( Ye(t.arg) ? (n = t.arg) : Yt(t.arg) && n.push(t.arg), function (i, s) { const a = t.instance.popperRef, o = i.target, r = s == null ? void 0 : s.target, l = !t || !t.instance, d = !o || !r, c = e.contains(o) || e.contains(r), A = e === o, g = (n.length && n.some((u) => (u == null ? void 0 : u.contains(o)))) || (n.length && n.includes(r)), b = a && (a.contains(o) || a.contains(r)) l || d || c || A || g || b || t.value(i, s) } ) } const sv = { beforeMount(e, t) { xt.has(e) || xt.set(e, []), xt.get(e).push({ documentHandler: ir(e, t), bindingFn: t.value }) }, updated(e, t) { xt.has(e) || xt.set(e, []) const n = xt.get(e), i = n.findIndex((a) => a.bindingFn === t.oldValue), s = { documentHandler: ir(e, t), bindingFn: t.value } i >= 0 ? n.splice(i, 1, s) : n.push(s) }, unmounted(e) { xt.delete(e) }, }, ov = ye({ size: { type: String, values: lo }, disabled: Boolean }), av = ye({ ...ov, model: Object, rules: { type: ee(Object) }, labelPosition: { type: String, values: ['left', 'right', 'top'], default: 'right' }, requireAsteriskPosition: { type: String, values: ['left', 'right'], default: 'left' }, labelWidth: { type: [String, Number], default: '' }, labelSuffix: { type: String, default: '' }, inline: Boolean, inlineMessage: Boolean, statusIcon: Boolean, showMessage: { type: Boolean, default: !0 }, validateOnRuleChange: { type: Boolean, default: !0 }, hideRequiredAsterisk: Boolean, scrollToError: Boolean, scrollIntoViewOptions: { type: [Object, Boolean] }, }), rv = { validate: (e, t, n) => (Ye(e) || tt(e)) && Tt(t) && tt(n) } function lv() { const e = C([]), t = M(() => { if (!e.value.length) return '0' const a = Math.max(...e.value) return a ? `${a}px` : '' }) function n(a) { const o = e.value.indexOf(a) return o === -1 && t.value, o } function i(a, o) { if (a && o) { const r = n(o) e.value.splice(r, 1, a) } else a && e.value.push(a) } function s(a) { const o = n(a) o > -1 && e.value.splice(o, 1) } return { autoLabelWidth: t, registerLabelWidth: i, deregisterLabelWidth: s } } const ji = (e, t) => { const n = ft(t) return n.length > 0 ? e.filter((i) => i.prop && n.includes(i.prop)) : e }, cv = 'ElForm', uv = Q({ name: cv }), dv = Q({ ...uv, props: av, emits: rv, setup(e, { expose: t, emit: n }) { const i = e, s = [], a = Xt(), o = he('form'), r = M(() => { const { labelPosition: R, inline: I } = i return [o.b(), o.m(a.value || 'default'), { [o.m(`label-${R}`)]: R, [o.m('inline')]: I }] }), l = (R) => s.find((I) => I.prop === R), d = (R) => { s.push(R) }, c = (R) => { R.prop && s.splice(s.indexOf(R), 1) }, A = (R = []) => { i.model && ji(s, R).forEach((I) => I.resetField()) }, g = (R = []) => { ji(s, R).forEach((I) => I.clearValidate()) }, b = M(() => !!i.model), u = (R) => { if (s.length === 0) return [] const I = ji(s, R) return I.length ? I : [] }, p = async (R) => f(void 0, R), v = async (R = []) => { if (!b.value) return !1 const I = u(R) if (I.length === 0) return !0 let y = {} for (const E of I) try { await E.validate(''), E.validateState === 'error' && E.resetField() } catch (m) { y = { ...y, ...m } } return Object.keys(y).length === 0 ? !0 : Promise.reject(y) }, f = async (R = [], I) => { const y = !Oe(I) try { const E = await v(R) return E === !0 && (await (I == null ? void 0 : I(E))), E } catch (E) { if (E instanceof Error) throw E const m = E return ( i.scrollToError && w(Object.keys(m)[0]), await (I == null ? void 0 : I(!1, m)), y && Promise.reject(m) ) } }, w = (R) => { var I const y = ji(s, R)[0] y && ((I = y.$el) == null || I.scrollIntoView(i.scrollIntoViewOptions)) } return ( q( () => i.rules, () => { i.validateOnRuleChange && p().catch((R) => void 0) }, { deep: !0, flush: 'post' } ), it( Ln, lt({ ...Fn(i), emit: n, resetFields: A, clearValidate: g, validateField: f, getField: l, addField: d, removeField: c, ...lv(), }) ), t({ validate: p, validateField: f, resetFields: A, clearValidate: g, scrollToField: w, fields: s }), (R, I) => (Z(), T('form', { class: B(h(r)) }, [$(R.$slots, 'default')], 2)) ) }, }) var pv = ge(dv, [['__file', 'form.vue']]) function nn() { return ( (nn = Object.assign ? Object.assign.bind() : function (e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t] for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i]) } return e }), nn.apply(this, arguments) ) } function Av(e, t) { ;(e.prototype = Object.create(t.prototype)), (e.prototype.constructor = e), ci(e, t) } function Ps(e) { return ( (Ps = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (n) { return n.__proto__ || Object.getPrototypeOf(n) }), Ps(e) ) } function ci(e, t) { return ( (ci = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (i, s) { return (i.__proto__ = s), i }), ci(e, t) ) } function gv() { if (typeof Reflect > 'u' || !Reflect.construct || Reflect.construct.sham) return !1 if (typeof Proxy == 'function') return !0 try { return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0 } catch { return !1 } } function Ji(e, t, n) { return ( gv() ? (Ji = Reflect.construct.bind()) : (Ji = function (s, a, o) { var r = [null] r.push.apply(r, a) var l = Function.bind.apply(s, r), d = new l() return o && ci(d, o.prototype), d }), Ji.apply(null, arguments) ) } function fv(e) { return Function.toString.call(e).indexOf('[native code]') !== -1 } function Hs(e) { var t = typeof Map == 'function' ? new Map() : void 0 return ( (Hs = function (i) { if (i === null || !fv(i)) return i if (typeof i != 'function') throw new TypeError('Super expression must either be null or a function') if (typeof t < 'u') { if (t.has(i)) return t.get(i) t.set(i, s) } function s() { return Ji(i, arguments, Ps(this).constructor) } return ( (s.prototype = Object.create(i.prototype, { constructor: { value: s, enumerable: !1, writable: !0, configurable: !0 }, })), ci(s, i) ) }), Hs(e) ) } var bv = /%[sdj%]/g, hv = function () {} function Ks(e) { if (!e || !e.length) return null var t = {} return ( e.forEach(function (n) { var i = n.field ;(t[i] = t[i] || []), t[i].push(n) }), t ) } function et(e) { for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), i = 1; i < t; i++) n[i - 1] = arguments[i] var s = 0, a = n.length if (typeof e == 'function') return e.apply(null, n) if (typeof e == 'string') { var o = e.replace(bv, function (r) { if (r === '%%') return '%' if (s >= a) return r switch (r) { case '%s': return String(n[s++]) case '%d': return Number(n[s++]) case '%j': try { return JSON.stringify(n[s++]) } catch { return '[Circular]' } break default: return r } }) return o } return e } function vv(e) { return e === 'string' || e === 'url' || e === 'hex' || e === 'email' || e === 'date' || e === 'pattern' } function Ge(e, t) { return !!(e == null || (t === 'array' && Array.isArray(e) && !e.length) || (vv(t) && typeof e == 'string' && !e)) } function mv(e, t, n) { var i = [], s = 0, a = e.length function o(r) { i.push.apply(i, r || []), s++, s === a && n(i) } e.forEach(function (r) { t(r, o) }) } function sr(e, t, n) { var i = 0, s = e.length function a(o) { if (o && o.length) { n(o) return } var r = i ;(i = i + 1), r < s ? t(e[r], a) : n([]) } a([]) } function yv(e) { var t = [] return ( Object.keys(e).forEach(function (n) { t.push.apply(t, e[n] || []) }), t ) } var or = (function (e) { Av(t, e) function t(n, i) { var s return (s = e.call(this, 'Async Validation Error') || this), (s.errors = n), (s.fields = i), s } return t })(Hs(Error)) function wv(e, t, n, i, s) { if (t.first) { var a = new Promise(function (g, b) { var u = function (f) { return i(f), f.length ? b(new or(f, Ks(f))) : g(s) }, p = yv(e) sr(p, n, u) }) return ( a.catch(function (g) { return g }), a ) } var o = t.firstFields === !0 ? Object.keys(e) : t.firstFields || [], r = Object.keys(e), l = r.length, d = 0, c = [], A = new Promise(function (g, b) { var u = function (v) { if ((c.push.apply(c, v), d++, d === l)) return i(c), c.length ? b(new or(c, Ks(c))) : g(s) } r.length || (i(c), g(s)), r.forEach(function (p) { var v = e[p] o.indexOf(p) !== -1 ? sr(v, n, u) : mv(v, n, u) }) }) return ( A.catch(function (g) { return g }), A ) } function Rv(e) { return !!(e && e.message !== void 0) } function Iv(e, t) { for (var n = e, i = 0; i < t.length; i++) { if (n == null) return n n = n[t[i]] } return n } function ar(e, t) { return function (n) { var i return ( e.fullFields ? (i = Iv(t, e.fullFields)) : (i = t[n.field || e.fullField]), Rv(n) ? ((n.field = n.field || e.fullField), (n.fieldValue = i), n) : { message: typeof n == 'function' ? n() : n, fieldValue: i, field: n.field || e.fullField } ) } } function rr(e, t) { if (t) { for (var n in t) if (t.hasOwnProperty(n)) { var i = t[n] typeof i == 'object' && typeof e[n] == 'object' ? (e[n] = nn({}, e[n], i)) : (e[n] = i) } } return e } var Ql = function (t, n, i, s, a, o) { t.required && (!i.hasOwnProperty(t.field) || Ge(n, o || t.type)) && s.push(et(a.messages.required, t.fullField)) }, Ev = function (t, n, i, s, a) { ;(/^\s+$/.test(n) || n === '') && s.push(et(a.messages.whitespace, t.fullField)) }, Gi, Mv = function () { if (Gi) return Gi var e = '[a-fA-F\\d:]', t = function (I) { return I && I.includeBoundaries ? '(?:(?<=\\s|^)(?=' + e + ')|(?<=' + e + ')(?=\\s|$))' : '' }, n = '(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}', i = '[a-fA-F\\d]{1,4}', s = ( ` (?: (?:` + i + ':){7}(?:' + i + `|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8 (?:` + i + ':){6}(?:' + n + '|:' + i + `|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4 (?:` + i + ':){5}(?::' + n + '|(?::' + i + `){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4 (?:` + i + ':){4}(?:(?::' + i + '){0,1}:' + n + '|(?::' + i + `){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4 (?:` + i + ':){3}(?:(?::' + i + '){0,2}:' + n + '|(?::' + i + `){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4 (?:` + i + ':){2}(?:(?::' + i + '){0,3}:' + n + '|(?::' + i + `){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4 (?:` + i + ':){1}(?:(?::' + i + '){0,4}:' + n + '|(?::' + i + `){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4 (?::(?:(?::` + i + '){0,5}:' + n + '|(?::' + i + `){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4 )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1 ` ) .replace(/\s*\/\/.*$/gm, '') .replace(/\n/g, '') .trim(), a = new RegExp('(?:^' + n + '$)|(?:^' + s + '$)'), o = new RegExp('^' + n + '$'), r = new RegExp('^' + s + '$'), l = function (I) { return I && I.exact ? a : new RegExp('(?:' + t(I) + n + t(I) + ')|(?:' + t(I) + s + t(I) + ')', 'g') } ;(l.v4 = function (R) { return R && R.exact ? o : new RegExp('' + t(R) + n + t(R), 'g') }), (l.v6 = function (R) { return R && R.exact ? r : new RegExp('' + t(R) + s + t(R), 'g') }) var d = '(?:(?:[a-z]+:)?//)', c = '(?:\\S+(?::\\S*)?@)?', A = l.v4().source, g = l.v6().source, b = '(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)', u = '(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*', p = '(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))', v = '(?::\\d{2,5})?', f = '(?:[/?#][^\\s"]*)?', w = '(?:' + d + '|www\\.)' + c + '(?:localhost|' + A + '|' + g + '|' + b + u + p + ')' + v + f return (Gi = new RegExp('(?:^' + w + '$)', 'i')), Gi }, lr = { email: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/, hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i, }, ni = { integer: function (t) { return ni.number(t) && parseInt(t, 10) === t }, float: function (t) { return ni.number(t) && !ni.integer(t) }, array: function (t) { return Array.isArray(t) }, regexp: function (t) { if (t instanceof RegExp) return !0 try { return !!new RegExp(t) } catch { return !1 } }, date: function (t) { return ( typeof t.getTime == 'function' && typeof t.getMonth == 'function' && typeof t.getYear == 'function' && !isNaN(t.getTime()) ) }, number: function (t) { return isNaN(t) ? !1 : typeof t == 'number' }, object: function (t) { return typeof t == 'object' && !ni.array(t) }, method: function (t) { return typeof t == 'function' }, email: function (t) { return typeof t == 'string' && t.length <= 320 && !!t.match(lr.email) }, url: function (t) { return typeof t == 'string' && t.length <= 2048 && !!t.match(Mv()) }, hex: function (t) { return typeof t == 'string' && !!t.match(lr.hex) }, }, Dv = function (t, n, i, s, a) { if (t.required && n === void 0) { Ql(t, n, i, s, a) return } var o = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'], r = t.type o.indexOf(r) > -1 ? ni[r](n) || s.push(et(a.messages.types[r], t.fullField, t.type)) : r && typeof n !== t.type && s.push(et(a.messages.types[r], t.fullField, t.type)) }, Zv = function (t, n, i, s, a) { var o = typeof t.len == 'number', r = typeof t.min == 'number', l = typeof t.max == 'number', d = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g, c = n, A = null, g = typeof n == 'number', b = typeof n == 'string', u = Array.isArray(n) if ((g ? (A = 'number') : b ? (A = 'string') : u && (A = 'array'), !A)) return !1 u && (c = n.length), b && (c = n.replace(d, '_').length), o ? c !== t.len && s.push(et(a.messages[A].len, t.fullField, t.len)) : r && !l && c < t.min ? s.push(et(a.messages[A].min, t.fullField, t.min)) : l && !r && c > t.max ? s.push(et(a.messages[A].max, t.fullField, t.max)) : r && l && (c < t.min || c > t.max) && s.push(et(a.messages[A].range, t.fullField, t.min, t.max)) }, Zn = 'enum', Sv = function (t, n, i, s, a) { ;(t[Zn] = Array.isArray(t[Zn]) ? t[Zn] : []), t[Zn].indexOf(n) === -1 && s.push(et(a.messages[Zn], t.fullField, t[Zn].join(', '))) }, Nv = function (t, n, i, s, a) { if (t.pattern) { if (t.pattern instanceof RegExp) (t.pattern.lastIndex = 0), t.pattern.test(n) || s.push(et(a.messages.pattern.mismatch, t.fullField, n, t.pattern)) else if (typeof t.pattern == 'string') { var o = new RegExp(t.pattern) o.test(n) || s.push(et(a.messages.pattern.mismatch, t.fullField, n, t.pattern)) } } }, ae = { required: Ql, whitespace: Ev, type: Dv, range: Zv, enum: Sv, pattern: Nv }, jv = function (t, n, i, s, a) { var o = [], r = t.required || (!t.required && s.hasOwnProperty(t.field)) if (r) { if (Ge(n, 'string') && !t.required) return i() ae.required(t, n, s, o, a, 'string'), Ge(n, 'string') || (ae.type(t, n, s, o, a), ae.range(t, n, s, o, a), ae.pattern(t, n, s, o, a), t.whitespace === !0 && ae.whitespace(t, n, s, o, a)) } i(o) }, Gv = function (t, n, i, s, a) { var o = [], r = t.required || (!t.required && s.hasOwnProperty(t.field)) if (r) { if (Ge(n) && !t.required) return i() ae.required(t, n, s, o, a), n !== void 0 && ae.type(t, n, s, o, a) } i(o) }, kv = function (t, n, i, s, a) { var o = [], r = t.required || (!t.required && s.hasOwnProperty(t.field)) if (r) { if ((n === '' && (n = void 0), Ge(n) && !t.required)) return i() ae.required(t, n, s, o, a), n !== void 0 && (ae.type(t, n, s, o, a), ae.range(t, n, s, o, a)) } i(o) }, Bv = function (t, n, i, s, a) { var o = [], r = t.required || (!t.required && s.hasOwnProperty(t.field)) if (r) { if (Ge(n) && !t.required) return i() ae.required(t, n, s, o, a), n !== void 0 && ae.type(t, n, s, o, a) } i(o) }, Yv = function (t, n, i, s, a) { var o = [], r = t.required || (!t.required && s.hasOwnProperty(t.field)) if (r) { if (Ge(n) && !t.required) return i() ae.required(t, n, s, o, a), Ge(n) || ae.type(t, n, s, o, a) } i(o) }, Uv = function (t, n, i, s, a) { var o = [], r = t.required || (!t.required && s.hasOwnProperty(t.field)) if (r) { if (Ge(n) && !t.required) return i() ae.required(t, n, s, o, a), n !== void 0 && (ae.type(t, n, s, o, a), ae.range(t, n, s, o, a)) } i(o) }, Tv = function (t, n, i, s, a) { var o = [], r = t.required || (!t.required && s.hasOwnProperty(t.field)) if (r) { if (Ge(n) && !t.required) return i() ae.required(t, n, s, o, a), n !== void 0 && (ae.type(t, n, s, o, a), ae.range(t, n, s, o, a)) } i(o) }, Jv = function (t, n, i, s, a) { var o = [], r = t.required || (!t.required && s.hasOwnProperty(t.field)) if (r) { if (n == null && !t.required) return i() ae.required(t, n, s, o, a, 'array'), n != null && (ae.type(t, n, s, o, a), ae.range(t, n, s, o, a)) } i(o) }, Cv = function (t, n, i, s, a) { var o = [], r = t.required || (!t.required && s.hasOwnProperty(t.field)) if (r) { if (Ge(n) && !t.required) return i() ae.required(t, n, s, o, a), n !== void 0 && ae.type(t, n, s, o, a) } i(o) }, Ov = 'enum', zv = function (t, n, i, s, a) { var o = [], r = t.required || (!t.required && s.hasOwnProperty(t.field)) if (r) { if (Ge(n) && !t.required) return i() ae.required(t, n, s, o, a), n !== void 0 && ae[Ov](t, n, s, o, a) } i(o) }, Wv = function (t, n, i, s, a) { var o = [], r = t.required || (!t.required && s.hasOwnProperty(t.field)) if (r) { if (Ge(n, 'string') && !t.required) return i() ae.required(t, n, s, o, a), Ge(n, 'string') || ae.pattern(t, n, s, o, a) } i(o) }, Fv = function (t, n, i, s, a) { var o = [], r = t.required || (!t.required && s.hasOwnProperty(t.field)) if (r) { if (Ge(n, 'date') && !t.required) return i() if ((ae.required(t, n, s, o, a), !Ge(n, 'date'))) { var l n instanceof Date ? (l = n) : (l = new Date(n)), ae.type(t, l, s, o, a), l && ae.range(t, l.getTime(), s, o, a) } } i(o) }, Lv = function (t, n, i, s, a) { var o = [], r = Array.isArray(n) ? 'array' : typeof n ae.required(t, n, s, o, a, r), i(o) }, Ss = function (t, n, i, s, a) { var o = t.type, r = [], l = t.required || (!t.required && s.hasOwnProperty(t.field)) if (l) { if (Ge(n, o) && !t.required) return i() ae.required(t, n, s, r, a, o), Ge(n, o) || ae.type(t, n, s, r, a) } i(r) }, xv = function (t, n, i, s, a) { var o = [], r = t.required || (!t.required && s.hasOwnProperty(t.field)) if (r) { if (Ge(n) && !t.required) return i() ae.required(t, n, s, o, a) } i(o) }, ai = { string: jv, method: Gv, number: kv, boolean: Bv, regexp: Yv, integer: Uv, float: Tv, array: Jv, object: Cv, enum: zv, pattern: Wv, date: Fv, url: Ss, hex: Ss, email: Ss, required: Lv, any: xv, } function qs() { return { default: 'Validation error on field %s', required: '%s is required', enum: '%s must be one of %s', whitespace: '%s cannot be empty', date: { format: '%s date %s is invalid for format %s', parse: '%s date could not be parsed, %s is invalid ', invalid: '%s date %s is invalid', }, types: { string: '%s is not a %s', method: '%s is not a %s (function)', array: '%s is not an %s', object: '%s is not an %s', number: '%s is not a %s', date: '%s is not a %s', boolean: '%s is not a %s', integer: '%s is not an %s', float: '%s is not a %s', regexp: '%s is not a valid %s', email: '%s is not a valid %s', url: '%s is not a valid %s', hex: '%s is not a valid %s', }, string: { len: '%s must be exactly %s characters', min: '%s must be at least %s characters', max: '%s cannot be longer than %s characters', range: '%s must be between %s and %s characters', }, number: { len: '%s must equal %s', min: '%s cannot be less than %s', max: '%s cannot be greater than %s', range: '%s must be between %s and %s', }, array: { len: '%s must be exactly %s in length', min: '%s cannot be less than %s in length', max: '%s cannot be greater than %s in length', range: '%s must be between %s and %s in length', }, pattern: { mismatch: '%s value %s does not match pattern %s' }, clone: function () { var t = JSON.parse(JSON.stringify(this)) return (t.clone = this.clone), t }, } } var _s = qs(), bi = (function () { function e(n) { ;(this.rules = null), (this._messages = _s), this.define(n) } var t = e.prototype return ( (t.define = function (i) { var s = this if (!i) throw new Error('Cannot configure a schema with no rules') if (typeof i != 'object' || Array.isArray(i)) throw new Error('Rules must be an object') ;(this.rules = {}), Object.keys(i).forEach(function (a) { var o = i[a] s.rules[a] = Array.isArray(o) ? o : [o] }) }), (t.messages = function (i) { return i && (this._messages = rr(qs(), i)), this._messages }), (t.validate = function (i, s, a) { var o = this s === void 0 && (s = {}), a === void 0 && (a = function () {}) var r = i, l = s, d = a if ((typeof l == 'function' && ((d = l), (l = {})), !this.rules || Object.keys(this.rules).length === 0)) return d && d(null, r), Promise.resolve(r) function c(p) { var v = [], f = {} function w(I) { if (Array.isArray(I)) { var y v = (y = v).concat.apply(y, I) } else v.push(I) } for (var R = 0; R < p.length; R++) w(p[R]) v.length ? ((f = Ks(v)), d(v, f)) : d(null, r) } if (l.messages) { var A = this.messages() A === _s && (A = qs()), rr(A, l.messages), (l.messages = A) } else l.messages = this.messages() var g = {}, b = l.keys || Object.keys(this.rules) b.forEach(function (p) { var v = o.rules[p], f = r[p] v.forEach(function (w) { var R = w typeof R.transform == 'function' && (r === i && (r = nn({}, r)), (f = r[p] = R.transform(f))), typeof R == 'function' ? (R = { validator: R }) : (R = nn({}, R)), (R.validator = o.getValidationMethod(R)), R.validator && ((R.field = p), (R.fullField = R.fullField || p), (R.type = o.getType(R)), (g[p] = g[p] || []), g[p].push({ rule: R, value: f, source: r, field: p })) }) }) var u = {} return wv( g, l, function (p, v) { var f = p.rule, w = (f.type === 'object' || f.type === 'array') && (typeof f.fields == 'object' || typeof f.defaultField == 'object') ;(w = w && (f.required || (!f.required && p.value))), (f.field = p.field) function R(E, m) { return nn({}, m, { fullField: f.fullField + '.' + E, fullFields: f.fullFields ? [].concat(f.fullFields, [E]) : [E], }) } function I(E) { E === void 0 && (E = []) var m = Array.isArray(E) ? E : [E] !l.suppressWarning && m.length && e.warning('async-validator:', m), m.length && f.message !== void 0 && (m = [].concat(f.message)) var j = m.map(ar(f, r)) if (l.first && j.length) return (u[f.field] = 1), v(j) if (!w) v(j) else { if (f.required && !p.value) return ( f.message !== void 0 ? (j = [].concat(f.message).map(ar(f, r))) : l.error && (j = [l.error(f, et(l.messages.required, f.field))]), v(j) ) var U = {} f.defaultField && Object.keys(p.value).map(function (N) { U[N] = f.defaultField }), (U = nn({}, U, p.rule.fields)) var K = {} Object.keys(U).forEach(function (N) { var k = U[N], F = Array.isArray(k) ? k : [k] K[N] = F.map(R.bind(null, N)) }) var H = new e(K) H.messages(l.messages), p.rule.options && ((p.rule.options.messages = l.messages), (p.rule.options.error = l.error)), H.validate(p.value, p.rule.options || l, function (N) { var k = [] j && j.length && k.push.apply(k, j), N && N.length && k.push.apply(k, N), v(k.length ? k : null) }) } } var y if (f.asyncValidator) y = f.asyncValidator(f, p.value, I, p.source, l) else if (f.validator) { try { y = f.validator(f, p.value, I, p.source, l) } catch (E) { console.error == null, l.suppressValidatorError || setTimeout(function () { throw E }, 0), I(E.message) } y === !0 ? I() : y === !1 ? I( typeof f.message == 'function' ? f.message(f.fullField || f.field) : f.message || (f.fullField || f.field) + ' fails' ) : y instanceof Array ? I(y) : y instanceof Error && I(y.message) } y && y.then && y.then( function () { return I() }, function (E) { return I(E) } ) }, function (p) { c(p) }, r ) }), (t.getType = function (i) { if ( (i.type === void 0 && i.pattern instanceof RegExp && (i.type = 'pattern'), typeof i.validator != 'function' && i.type && !ai.hasOwnProperty(i.type)) ) throw new Error(et('Unknown rule type %s', i.type)) return i.type || 'string' }), (t.getValidationMethod = function (i) { if (typeof i.validator == 'function') return i.validator var s = Object.keys(i), a = s.indexOf('message') return ( a !== -1 && s.splice(a, 1), s.length === 1 && s[0] === 'required' ? ai.required : ai[this.getType(i)] || void 0 ) }), e ) })() bi.register = function (t, n) { if (typeof n != 'function') throw new Error('Cannot register a validator by type, validator is not a function') ai[t] = n } bi.warning = hv bi.messages = _s bi.validators = ai const Vv = ['', 'error', 'validating', 'success'], Qv = ye({ label: String, labelWidth: { type: [String, Number], default: '' }, labelPosition: { type: String, values: ['left', 'right', 'top', ''], default: '' }, prop: { type: ee([String, Array]) }, required: { type: Boolean, default: void 0 }, rules: { type: ee([Object, Array]) }, error: String, validateStatus: { type: String, values: Vv }, for: String, inlineMessage: { type: [String, Boolean], default: '' }, showMessage: { type: Boolean, default: !0 }, size: { type: String, values: lo }, }), cr = 'ElLabelWrap' var Xv = Q({ name: cr, props: { isAutoWidth: Boolean, updateAll: Boolean }, setup(e, { slots: t }) { const n = de(Ln, void 0), i = de(gn) i || ol(cr, 'usage: ') const s = he('form'), a = C(), o = C(0), r = () => { var c if ((c = a.value) != null && c.firstElementChild) { const A = window.getComputedStyle(a.value.firstElementChild).width return Math.ceil(Number.parseFloat(A)) } else return 0 }, l = (c = 'update') => { Ee(() => { t.default && e.isAutoWidth && (c === 'update' ? (o.value = r()) : c === 'remove' && (n == null || n.deregisterLabelWidth(o.value))) }) }, d = () => l('update') return ( Be(() => { d() }), xe(() => { l('remove') }), Ur(() => d()), q(o, (c, A) => { e.updateAll && (n == null || n.registerLabelWidth(c, A)) }), bt( M(() => { var c, A return (A = (c = a.value) == null ? void 0 : c.firstElementChild) != null ? A : null }), d ), () => { var c, A if (!t) return null const { isAutoWidth: g } = e if (g) { const b = n == null ? void 0 : n.autoLabelWidth, u = i == null ? void 0 : i.hasLabel, p = {} if (u && b && b !== 'auto') { const v = Math.max(0, Number.parseInt(b, 10) - o.value), w = (i.labelPosition || n.labelPosition) === 'left' ? 'marginRight' : 'marginLeft' v && (p[w] = `${v}px`) } return P('div', { ref: a, class: [s.be('item', 'label-wrap')], style: p }, [ (c = t.default) == null ? void 0 : c.call(t), ]) } else return P(je, { ref: a }, [(A = t.default) == null ? void 0 : A.call(t)]) } ) }, }) const Pv = Q({ name: 'ElFormItem' }), Hv = Q({ ...Pv, props: Qv, setup(e, { expose: t }) { const n = e, i = pi(), s = de(Ln, void 0), a = de(gn, void 0), o = Xt(void 0, { formItem: !1 }), r = he('form-item'), l = Ai().value, d = C([]), c = C(''), A = yu(c, 100), g = C(''), b = C() let u, p = !1 const v = M(() => n.labelPosition || (s == null ? void 0 : s.labelPosition)), f = M(() => { if (v.value === 'top') return {} const W = pn(n.labelWidth || (s == null ? void 0 : s.labelWidth) || '') return W ? { width: W } : {} }), w = M(() => { if (v.value === 'top' || (s != null && s.inline)) return {} if (!n.label && !n.labelWidth && K) return {} const W = pn(n.labelWidth || (s == null ? void 0 : s.labelWidth) || '') return !n.label && !i.label ? { marginLeft: W } : {} }), R = M(() => [ r.b(), r.m(o.value), r.is('error', c.value === 'error'), r.is('validating', c.value === 'validating'), r.is('success', c.value === 'success'), r.is('required', L.value || n.required), r.is('no-asterisk', s == null ? void 0 : s.hideRequiredAsterisk), (s == null ? void 0 : s.requireAsteriskPosition) === 'right' ? 'asterisk-right' : 'asterisk-left', { [r.m('feedback')]: s == null ? void 0 : s.statusIcon, [r.m(`label-${v.value}`)]: v.value }, ]), I = M(() => (Tt(n.inlineMessage) ? n.inlineMessage : (s == null ? void 0 : s.inlineMessage) || !1)), y = M(() => [r.e('error'), { [r.em('error', 'inline')]: I.value }]), E = M(() => (n.prop ? (tt(n.prop) ? n.prop : n.prop.join('.')) : '')), m = M(() => !!(n.label || i.label)), j = M(() => n.for || (d.value.length === 1 ? d.value[0] : void 0)), U = M(() => !j.value && m.value), K = !!a, H = M(() => { const W = s == null ? void 0 : s.model if (!(!W || !n.prop)) return ms(W, n.prop).value }), N = M(() => { const { required: W } = n, se = [] n.rules && se.push(...ft(n.rules)) const le = s == null ? void 0 : s.rules if (le && n.prop) { const Ae = ms(le, n.prop).value Ae && se.push(...ft(Ae)) } if (W !== void 0) { const Ae = se.map((ke, Ve) => [ke, Ve]).filter(([ke]) => Object.keys(ke).includes('required')) if (Ae.length > 0) for (const [ke, Ve] of Ae) ke.required !== W && (se[Ve] = { ...ke, required: W }) else se.push({ required: W }) } return se }), k = M(() => N.value.length > 0), F = (W) => N.value .filter((le) => (!le.trigger || !W ? !0 : Ye(le.trigger) ? le.trigger.includes(W) : le.trigger === W)) .map(({ trigger: le, ...Ae }) => Ae), L = M(() => N.value.some((W) => W.required)), O = M(() => { var W return A.value === 'error' && n.showMessage && ((W = s == null ? void 0 : s.showMessage) != null ? W : !0) }), G = M(() => `${n.label || ''}${(s == null ? void 0 : s.labelSuffix) || ''}`), V = (W) => { c.value = W }, ne = (W) => { var se, le const { errors: Ae, fields: ke } = W V('error'), (g.value = Ae ? (le = (se = Ae == null ? void 0 : Ae[0]) == null ? void 0 : se.message) != null ? le : `${n.prop} is required` : ''), s == null || s.emit('validate', n.prop, !1, g.value) }, re = () => { V('success'), s == null || s.emit('validate', n.prop, !0, '') }, Ie = async (W) => { const se = E.value return new bi({ [se]: W }) .validate({ [se]: H.value }, { firstFields: !0 }) .then(() => (re(), !0)) .catch((Ae) => (ne(Ae), Promise.reject(Ae))) }, ie = async (W, se) => { if (p || !n.prop) return !1 const le = Oe(se) if (!k.value) return se == null || se(!1), !1 const Ae = F(W) return Ae.length === 0 ? (se == null || se(!0), !0) : (V('validating'), Ie(Ae) .then(() => (se == null || se(!0), !0)) .catch((ke) => { const { fields: Ve } = ke return se == null || se(!1, Ve), le ? !1 : Promise.reject(Ve) })) }, we = () => { V(''), (g.value = ''), (p = !1) }, ve = async () => { const W = s == null ? void 0 : s.model if (!W || !n.prop) return const se = ms(W, n.prop) ;(p = !0), (se.value = ha(u)), await Ee(), we(), (p = !1) }, fe = (W) => { d.value.includes(W) || d.value.push(W) }, Re = (W) => { d.value = d.value.filter((se) => se !== W) } q( () => n.error, (W) => { ;(g.value = W || ''), V(W ? 'error' : '') }, { immediate: !0 } ), q( () => n.validateStatus, (W) => V(W || '') ) const pe = lt({ ...Fn(n), $el: b, size: o, validateState: c, labelId: l, inputIds: d, isGroup: U, hasLabel: m, fieldValue: H, addInputId: fe, removeInputId: Re, resetField: ve, clearValidate: we, validate: ie, }) return ( it(gn, pe), Be(() => { n.prop && (s == null || s.addField(pe), (u = ha(H.value))) }), xe(() => { s == null || s.removeField(pe) }), t({ size: o, validateMessage: g, validateState: c, validate: ie, clearValidate: we, resetField: ve }), (W, se) => { var le return ( Z(), T( 'div', { ref_key: 'formItemRef', ref: b, class: B(h(R)), role: h(U) ? 'group' : void 0, 'aria-labelledby': h(U) ? h(l) : void 0, }, [ P( h(Xv), { 'is-auto-width': h(f).width === 'auto', 'update-all': ((le = h(s)) == null ? void 0 : le.labelWidth) === 'auto', }, { default: x(() => [ h(m) ? (Z(), _( Fe(h(j) ? 'label' : 'div'), { key: 0, id: h(l), for: h(j), class: B(h(r).e('label')), style: Ue(h(f)) }, { default: x(() => [$(W.$slots, 'label', { label: h(G) }, () => [Le(ce(h(G)), 1)])]), _: 3, }, 8, ['id', 'for', 'class', 'style'] )) : X('v-if', !0), ]), _: 3, }, 8, ['is-auto-width', 'update-all'] ), Y( 'div', { class: B(h(r).e('content')), style: Ue(h(w)) }, [ $(W.$slots, 'default'), P( wu, { name: `${h(r).namespace.value}-zoom-in-top` }, { default: x(() => [ h(O) ? $(W.$slots, 'error', { key: 0, error: g.value }, () => [ Y('div', { class: B(h(y)) }, ce(g.value), 3), ]) : X('v-if', !0), ]), _: 3, }, 8, ['name'] ), ], 6 ), ], 10, ['role', 'aria-labelledby'] ) ) } ) }, }) var Xl = ge(Hv, [['__file', 'form-item.vue']]) const Pl = dt(pv, { FormItem: Xl }), Hl = Wn(Xl) function Kv() { const e = Nn(), t = C(0), n = 11, i = M(() => ({ minWidth: `${Math.max(t.value, n)}px` })) return ( bt(e, () => { var a, o t.value = (o = (a = e.value) == null ? void 0 : a.getBoundingClientRect().width) != null ? o : 0 }), { calculatorRef: e, calculatorWidth: t, inputStyle: i } ) } const Kl = Symbol('ElSelectGroup'), ps = Symbol('ElSelect') function qv(e, t) { const n = de(ps), i = de(Kl, { disabled: !1 }), s = M(() => c(ft(n.props.modelValue), e.value)), a = M(() => { var b if (n.props.multiple) { const u = ft((b = n.props.modelValue) != null ? b : []) return !s.value && u.length >= n.props.multipleLimit && n.props.multipleLimit > 0 } else return !1 }), o = M(() => e.label || (vt(e.value) ? '' : e.value)), r = M(() => e.value || e.label || ''), l = M(() => e.disabled || t.groupDisabled || a.value), d = Nt(), c = (b = [], u) => { if (vt(e.value)) { const p = n.props.valueKey return b && b.some((v) => Ts(en(v, p)) === en(u, p)) } else return b && b.includes(u) }, A = () => { !e.disabled && !i.disabled && (n.states.hoveringIndex = n.optionsArray.indexOf(d.proxy)) }, g = (b) => { const u = new RegExp(_h(b), 'i') t.visible = u.test(o.value) || e.created } return ( q( () => o.value, () => { !e.created && !n.props.remote && n.setSelected() } ), q( () => e.value, (b, u) => { const { remote: p, valueKey: v } = n.props if ( ((p ? b !== u : !jn(b, u)) && (n.onOptionDestroy(u, d.proxy), n.onOptionCreate(d.proxy)), !e.created && !p) ) { if (v && vt(b) && vt(u) && b[v] === u[v]) return n.setSelected() } } ), q( () => i.disabled, () => { t.groupDisabled = i.disabled }, { immediate: !0 } ), { select: n, currentLabel: o, currentValue: r, itemSelected: s, isDisabled: l, hoverItem: A, updateOption: g } ) } const _v = Q({ name: 'ElOption', componentName: 'ElOption', props: { value: { required: !0, type: [String, Number, Boolean, Object] }, label: [String, Number], created: Boolean, disabled: Boolean, }, setup(e) { const t = he('select'), n = Ai(), i = M(() => [t.be('dropdown', 'item'), t.is('disabled', h(r)), t.is('selected', h(o)), t.is('hovering', h(g))]), s = lt({ index: -1, groupDisabled: !1, visible: !0, hover: !1 }), { currentLabel: a, itemSelected: o, isDisabled: r, select: l, hoverItem: d, updateOption: c } = qv(e, s), { visible: A, hover: g } = Fn(s), b = Nt().proxy l.onOptionCreate(b), xe(() => { const p = b.value, { selected: v } = l.states, f = v.some((w) => w.value === b.value) Ee(() => { l.states.cachedOptions.get(p) === b && !f && l.states.cachedOptions.delete(p) }), l.onOptionDestroy(p, b) }) function u() { r.value || l.handleOptionSelect(b) } return { ns: t, id: n, containerKls: i, currentLabel: a, itemSelected: o, isDisabled: r, select: l, hoverItem: d, updateOption: c, visible: A, hover: g, selectOptionClick: u, states: s, } }, }) function $v(e, t, n, i, s, a) { return We( (Z(), T( 'li', { id: e.id, class: B(e.containerKls), role: 'option', 'aria-disabled': e.isDisabled || void 0, 'aria-selected': e.itemSelected, onMousemove: e.hoverItem, onClick: Ze(e.selectOptionClick, ['stop']), }, [$(e.$slots, 'default', {}, () => [Y('span', null, ce(e.currentLabel), 1)])], 42, ['id', 'aria-disabled', 'aria-selected', 'onMousemove', 'onClick'] )), [[bn, e.visible]] ) } var Bo = ge(_v, [ ['render', $v], ['__file', 'option.vue'], ]) const em = Q({ name: 'ElSelectDropdown', componentName: 'ElSelectDropdown', setup() { const e = de(ps), t = he('select'), n = M(() => e.props.popperClass), i = M(() => e.props.multiple), s = M(() => e.props.fitInputWidth), a = C('') function o() { var r a.value = `${(r = e.selectRef) == null ? void 0 : r.offsetWidth}px` } return ( Be(() => { o(), bt(e.selectRef, o) }), { ns: t, minWidth: a, popperClass: n, isMultiple: i, isFitInputWidth: s } ) }, }) function tm(e, t, n, i, s, a) { return ( Z(), T( 'div', { class: B([e.ns.b('dropdown'), e.ns.is('multiple', e.isMultiple), e.popperClass]), style: Ue({ [e.isFitInputWidth ? 'width' : 'minWidth']: e.minWidth }), }, [ e.$slots.header ? (Z(), T('div', { key: 0, class: B(e.ns.be('dropdown', 'header')) }, [$(e.$slots, 'header')], 2)) : X('v-if', !0), $(e.$slots, 'default'), e.$slots.footer ? (Z(), T('div', { key: 1, class: B(e.ns.be('dropdown', 'footer')) }, [$(e.$slots, 'footer')], 2)) : X('v-if', !0), ], 6 ) ) } var nm = ge(em, [ ['render', tm], ['__file', 'select-dropdown.vue'], ]) const im = (e, t) => { const { t: n } = Ru(), i = Ai(), s = he('select'), a = he('input'), o = lt({ inputValue: '', options: new Map(), cachedOptions: new Map(), optionValues: [], selected: [], selectionWidth: 0, collapseItemWidth: 0, selectedLabel: '', hoveringIndex: -1, previousQuery: null, inputHovering: !1, menuVisibleOnFocus: !1, isBeforeHide: !1, }), r = C(null), l = C(null), d = C(null), c = C(null), A = C(null), g = C(null), b = C(null), u = C(null), p = C(null), v = C(null), f = C(null), { isComposing: w, handleCompositionStart: R, handleCompositionUpdate: I, handleCompositionEnd: y, } = Al({ afterComposition: (D) => Wt(D) }), { wrapperRef: E, isFocused: m, handleBlur: j, } = pl(A, { beforeFocus() { return O.value }, afterFocus() { e.automaticDropdown && !U.value && ((U.value = !0), (o.menuVisibleOnFocus = !0)) }, beforeBlur(D) { var z, oe return ( ((z = d.value) == null ? void 0 : z.isFocusInsideContent(D)) || ((oe = c.value) == null ? void 0 : oe.isFocusInsideContent(D)) ) }, afterBlur() { ;(U.value = !1), (o.menuVisibleOnFocus = !1) }, }), U = C(!1), K = C(), { form: H, formItem: N } = xn(), { inputId: k } = rs(e, { formItemContext: N }), { valueOnClear: F, isEmptyValue: L } = Iu(e), O = M(() => e.disabled || (H == null ? void 0 : H.disabled)), G = M(() => (Ye(e.modelValue) ? e.modelValue.length > 0 : !L(e.modelValue))), V = M(() => { var D return (D = H == null ? void 0 : H.statusIcon) != null ? D : !1 }), ne = M(() => e.clearable && !O.value && o.inputHovering && G.value), re = M(() => (e.remote && e.filterable && !e.remoteShowSuffix ? '' : e.suffixIcon)), Ie = M(() => s.is('reverse', re.value && U.value)), ie = M(() => (N == null ? void 0 : N.validateState) || ''), we = M(() => ll[ie.value]), ve = M(() => (e.remote ? 300 : 0)), fe = M(() => e.remote && !o.inputValue && o.options.size === 0), Re = M(() => e.loading ? e.loadingText || n('el.select.loading') : e.filterable && o.inputValue && o.options.size > 0 && pe.value === 0 ? e.noMatchText || n('el.select.noMatch') : o.options.size === 0 ? e.noDataText || n('el.select.noData') : null ), pe = M(() => W.value.filter((D) => D.visible).length), W = M(() => { const D = Array.from(o.options.values()), z = [] return ( o.optionValues.forEach((oe) => { const Se = D.findIndex((qe) => qe.value === oe) Se > -1 && z.push(D[Se]) }), z.length >= D.length ? z : D ) }), se = M(() => Array.from(o.cachedOptions.values())), le = M(() => { const D = W.value.filter((z) => !z.created).some((z) => z.currentLabel === o.inputValue) return e.filterable && e.allowCreate && o.inputValue !== '' && !D }), Ae = () => { ;(e.filterable && Oe(e.filterMethod)) || (e.filterable && e.remote && Oe(e.remoteMethod)) || W.value.forEach((D) => { var z ;(z = D.updateOption) == null || z.call(D, o.inputValue) }) }, ke = Xt(), Ve = M(() => (['small'].includes(ke.value) ? 'small' : 'default')), vn = M({ get() { return U.value && !fe.value }, set(D) { U.value = D }, }), mn = M(() => { if (e.multiple && !Vt(e.modelValue)) return ft(e.modelValue).length === 0 && !o.inputValue const D = Ye(e.modelValue) ? e.modelValue[0] : e.modelValue return e.filterable || Vt(D) ? !o.inputValue : !0 }), yn = M(() => { var D const z = (D = e.placeholder) != null ? D : n('el.select.placeholder') return e.multiple || !G.value ? z : o.selectedLabel }), wn = M(() => (Bs ? null : 'mouseenter')) q( () => e.modelValue, (D, z) => { e.multiple && e.filterable && !e.reserveKeyword && ((o.inputValue = ''), Ot('')), Qe(), !jn(D, z) && e.validateEvent && (N == null || N.validate('change').catch((oe) => void 0)) }, { flush: 'post', deep: !0 } ), q( () => U.value, (D) => { D ? Ot(o.inputValue) : ((o.inputValue = ''), (o.previousQuery = null), (o.isBeforeHide = !0)), t('visible-change', D) } ), q( () => o.options.entries(), () => { ze && (Qe(), e.defaultFirstOption && (e.filterable || e.remote) && pe.value && Rn()) }, { flush: 'post' } ), q( () => o.hoveringIndex, (D) => { Ne(D) && D > -1 ? (K.value = W.value[D] || {}) : (K.value = {}), W.value.forEach((z) => { z.hover = K.value === z }) } ), Eu(() => { o.isBeforeHide || Ae() }) const Ot = (D) => { o.previousQuery === D || w.value || ((o.previousQuery = D), e.filterable && Oe(e.filterMethod) ? e.filterMethod(D) : e.filterable && e.remote && Oe(e.remoteMethod) && e.remoteMethod(D), e.defaultFirstOption && (e.filterable || e.remote) && pe.value ? Ee(Rn) : Ee(In)) }, Rn = () => { const D = W.value.filter((qe) => qe.visible && !qe.disabled && !qe.states.groupDisabled), z = D.find((qe) => qe.created), oe = D[0], Se = W.value.map((qe) => qe.value) o.hoveringIndex = Lo(Se, z || oe) }, Qe = () => { if (e.multiple) o.selectedLabel = '' else { const z = Ye(e.modelValue) ? e.modelValue[0] : e.modelValue, oe = Rt(z) ;(o.selectedLabel = oe.currentLabel), (o.selected = [oe]) return } const D = [] Vt(e.modelValue) || ft(e.modelValue).forEach((z) => { D.push(Rt(z)) }), (o.selected = D) }, Rt = (D) => { let z const oe = Mu(D) for (let En = o.cachedOptions.size - 1; En >= 0; En--) { const Ft = se.value[En] if (oe ? en(Ft.value, e.valueKey) === en(D, e.valueKey) : Ft.value === D) { z = { value: D, currentLabel: Ft.currentLabel, get isDisabled() { return Ft.isDisabled }, } break } } if (z) return z const Se = oe ? D.label : (D ?? '') return { value: D, currentLabel: Se } }, In = () => { o.hoveringIndex = W.value.findIndex((D) => o.selected.some((z) => wi(z) === wi(D))) }, _t = () => { o.selectionWidth = l.value.getBoundingClientRect().width }, J = () => { o.collapseItemWidth = v.value.getBoundingClientRect().width }, ue = () => { var D, z ;(z = (D = d.value) == null ? void 0 : D.updatePopper) == null || z.call(D) }, st = () => { var D, z ;(z = (D = c.value) == null ? void 0 : D.updatePopper) == null || z.call(D) }, zt = () => { o.inputValue.length > 0 && !U.value && (U.value = !0), Ot(o.inputValue) }, Wt = (D) => { if (((o.inputValue = D.target.value), e.remote)) zo() else return zt() }, zo = Rg(() => { zt() }, ve.value), Kn = (D) => { jn(e.modelValue, D) || t(al, D) }, jc = (D) => Ig(D, (z) => { const oe = o.cachedOptions.get(z) return oe && !oe.disabled && !oe.states.groupDisabled }), Gc = (D) => { if (e.multiple && D.code !== on.delete && D.target.value.length <= 0) { const z = ft(e.modelValue).slice(), oe = jc(z) if (oe < 0) return const Se = z[oe] z.splice(oe, 1), t($e, z), Kn(z), t('remove-tag', Se) } }, kc = (D, z) => { const oe = o.selected.indexOf(z) if (oe > -1 && !O.value) { const Se = ft(e.modelValue).slice() Se.splice(oe, 1), t($e, Se), Kn(Se), t('remove-tag', z.value) } D.stopPropagation(), yi() }, Wo = (D) => { D.stopPropagation() const z = e.multiple ? [] : F.value if (e.multiple) for (const oe of o.selected) oe.isDisabled && z.push(oe.value) t($e, z), Kn(z), (o.hoveringIndex = -1), (U.value = !1), t('clear'), yi() }, Fo = (D) => { var z if (e.multiple) { const oe = ft((z = e.modelValue) != null ? z : []).slice(), Se = Lo(oe, D) Se > -1 ? oe.splice(Se, 1) : (e.multipleLimit <= 0 || oe.length < e.multipleLimit) && oe.push(D.value), t($e, oe), Kn(oe), D.created && Ot(''), e.filterable && !e.reserveKeyword && (o.inputValue = '') } else t($e, D.value), Kn(D.value), (U.value = !1) yi(), !U.value && Ee(() => { mi(D) }) }, Lo = (D = [], z) => Vt(z) ? -1 : vt(z.value) ? D.findIndex((oe) => jn(en(oe, e.valueKey), wi(z))) : D.indexOf(z.value), mi = (D) => { var z, oe, Se, qe, En const Ft = Ye(D) ? D[0] : D let Ri = null if (Ft != null && Ft.value) { const qn = W.value.filter((Hc) => Hc.value === Ft.value) qn.length > 0 && (Ri = qn[0].$el) } if (d.value && Ri) { const qn = (qe = (Se = (oe = (z = d.value) == null ? void 0 : z.popperRef) == null ? void 0 : oe.contentRef) == null ? void 0 : Se.querySelector) == null ? void 0 : qe.call(Se, `.${s.be('dropdown', 'wrap')}`) qn && Wg(qn, Ri) } ;(En = f.value) == null || En.handleScroll() }, Bc = (D) => { o.options.set(D.value, D), o.cachedOptions.set(D.value, D) }, Yc = (D, z) => { o.options.get(D) === z && o.options.delete(D) }, Uc = M(() => { var D, z return (z = (D = d.value) == null ? void 0 : D.popperRef) == null ? void 0 : z.contentRef }), Tc = () => { ;(o.isBeforeHide = !1), Ee(() => { var D ;(D = f.value) == null || D.update(), mi(o.selected) }) }, yi = () => { var D ;(D = A.value) == null || D.focus() }, Jc = () => { var D if (U.value) { ;(U.value = !1), Ee(() => { var z return (z = A.value) == null ? void 0 : z.blur() }) return } ;(D = A.value) == null || D.blur() }, Cc = (D) => { Wo(D) }, Oc = (D) => { if (((U.value = !1), m.value)) { const z = new FocusEvent('focus', D) Ee(() => j(z)) } }, zc = () => { o.inputValue.length > 0 ? (o.inputValue = '') : (U.value = !1) }, xo = () => { O.value || (Bs && (o.inputHovering = !0), o.menuVisibleOnFocus ? (o.menuVisibleOnFocus = !1) : (U.value = !U.value)) }, Wc = () => { if (!U.value) xo() else { const D = W.value[o.hoveringIndex] D && !D.isDisabled && Fo(D) } }, wi = (D) => (vt(D.value) ? en(D.value, e.valueKey) : D.value), Fc = M(() => W.value.filter((D) => D.visible).every((D) => D.isDisabled)), Lc = M(() => (e.multiple ? (e.collapseTags ? o.selected.slice(0, e.maxCollapseTags) : o.selected) : [])), xc = M(() => (e.multiple ? (e.collapseTags ? o.selected.slice(e.maxCollapseTags) : []) : [])), Vo = (D) => { if (!U.value) { U.value = !0 return } if (!(o.options.size === 0 || pe.value === 0 || w.value) && !Fc.value) { D === 'next' ? (o.hoveringIndex++, o.hoveringIndex === o.options.size && (o.hoveringIndex = 0)) : D === 'prev' && (o.hoveringIndex--, o.hoveringIndex < 0 && (o.hoveringIndex = o.options.size - 1)) const z = W.value[o.hoveringIndex] ;(z.isDisabled || !z.visible) && Vo(D), Ee(() => mi(K.value)) } }, Vc = () => { if (!l.value) return 0 const D = window.getComputedStyle(l.value) return Number.parseFloat(D.gap || '6px') }, Qc = M(() => { const D = Vc() return { maxWidth: `${v.value && e.maxCollapseTags === 1 ? o.selectionWidth - o.collapseItemWidth - D : o.selectionWidth}px`, } }), Xc = M(() => ({ maxWidth: `${o.selectionWidth}px` })), Pc = (D) => { t('popup-scroll', D) } return ( bt(l, _t), bt(u, ue), bt(E, ue), bt(p, st), bt(v, J), Be(() => { Qe() }), { inputId: k, contentId: i, nsSelect: s, nsInput: a, states: o, isFocused: m, expanded: U, optionsArray: W, hoverOption: K, selectSize: ke, filteredOptionsCount: pe, updateTooltip: ue, updateTagTooltip: st, debouncedOnInputChange: zo, onInput: Wt, deletePrevTag: Gc, deleteTag: kc, deleteSelected: Wo, handleOptionSelect: Fo, scrollToOption: mi, hasModelValue: G, shouldShowPlaceholder: mn, currentPlaceholder: yn, mouseEnterEventName: wn, needStatusIcon: V, showClose: ne, iconComponent: re, iconReverse: Ie, validateState: ie, validateIcon: we, showNewOption: le, updateOptions: Ae, collapseTagSize: Ve, setSelected: Qe, selectDisabled: O, emptyText: Re, handleCompositionStart: R, handleCompositionUpdate: I, handleCompositionEnd: y, onOptionCreate: Bc, onOptionDestroy: Yc, handleMenuEnter: Tc, focus: yi, blur: Jc, handleClearClick: Cc, handleClickOutside: Oc, handleEsc: zc, toggleMenu: xo, selectOption: Wc, getValueKey: wi, navigateOptions: Vo, dropdownMenuVisible: vn, showTagList: Lc, collapseTagList: xc, popupScroll: Pc, tagStyle: Qc, collapseTagStyle: Xc, popperRef: Uc, inputRef: A, tooltipRef: d, tagTooltipRef: c, prefixRef: g, suffixRef: b, selectRef: r, wrapperRef: E, selectionRef: l, scrollbarRef: f, menuRef: u, tagMenuRef: p, collapseItemRef: v, } ) } var sm = Q({ name: 'ElOptions', setup(e, { slots: t }) { const n = de(ps) let i = [] return () => { var s, a const o = (s = t.default) == null ? void 0 : s.call(t), r = [] function l(d) { Ye(d) && d.forEach((c) => { var A, g, b, u const p = (A = (c == null ? void 0 : c.type) || {}) == null ? void 0 : A.name p === 'ElOptionGroup' ? l( !tt(c.children) && !Ye(c.children) && Oe((g = c.children) == null ? void 0 : g.default) ? (b = c.children) == null ? void 0 : b.default() : c.children ) : p === 'ElOption' ? r.push((u = c.props) == null ? void 0 : u.value) : Ye(c.children) && l(c.children) }) } return ( o.length && l((a = o[0]) == null ? void 0 : a.children), jn(r, i) || ((i = r), n && (n.states.optionValues = r)), o ) } }, }) const om = ye({ name: String, id: String, modelValue: { type: [Array, String, Number, Boolean, Object], default: void 0 }, autocomplete: { type: String, default: 'off' }, automaticDropdown: Boolean, size: di, effect: { type: ee(String), default: 'light' }, disabled: Boolean, clearable: Boolean, filterable: Boolean, allowCreate: Boolean, loading: Boolean, popperClass: { type: String, default: '' }, popperOptions: { type: ee(Object), default: () => ({}) }, remote: Boolean, loadingText: String, noMatchText: String, noDataText: String, remoteMethod: Function, filterMethod: Function, multiple: Boolean, multipleLimit: { type: Number, default: 0 }, placeholder: { type: String }, defaultFirstOption: Boolean, reserveKeyword: { type: Boolean, default: !0 }, valueKey: { type: String, default: 'value' }, collapseTags: Boolean, collapseTagsTooltip: Boolean, maxCollapseTags: { type: Number, default: 1 }, teleported: ko.teleported, persistent: { type: Boolean, default: !0 }, clearIcon: { type: An, default: vo }, fitInputWidth: Boolean, suffixIcon: { type: An, default: Xg }, tagType: { ...Xs.type, default: 'info' }, tagEffect: { ...Xs.effect, default: 'light' }, validateEvent: { type: Boolean, default: !0 }, remoteShowSuffix: Boolean, showArrow: { type: Boolean, default: !0 }, offset: { type: Number, default: 12 }, placement: { type: ee(String), values: us, default: 'bottom-start' }, fallbackPlacements: { type: ee(Array), default: ['bottom-start', 'top-start', 'right', 'left'] }, tabindex: { type: [String, Number], default: 0 }, appendTo: String, ...Du, ...hn(['ariaLabel']), }), ur = 'ElSelect', am = Q({ name: ur, componentName: ur, components: { ElSelectMenu: nm, ElOption: Bo, ElOptions: sm, ElTag: iv, ElScrollbar: Lf, ElTooltip: ch, ElIcon: ot, }, directives: { ClickOutside: sv }, props: om, emits: [$e, al, 'remove-tag', 'clear', 'visible-change', 'focus', 'blur', 'popup-scroll'], setup(e, { emit: t }) { const n = M(() => { const { modelValue: l, multiple: d } = e, c = d ? [] : void 0 return Ye(l) ? (d ? l : c) : d ? c : l }), i = lt({ ...Fn(e), modelValue: n }), s = im(i, t), { calculatorRef: a, inputStyle: o } = Kv() it( ps, lt({ props: i, states: s.states, optionsArray: s.optionsArray, handleOptionSelect: s.handleOptionSelect, onOptionCreate: s.onOptionCreate, onOptionDestroy: s.onOptionDestroy, selectRef: s.selectRef, setSelected: s.setSelected, }) ) const r = M(() => (e.multiple ? s.states.selected.map((l) => l.currentLabel) : s.states.selectedLabel)) return { ...s, modelValue: n, selectedLabel: r, calculatorRef: a, inputStyle: o } }, }) function rm(e, t, n, i, s, a) { const o = $t('el-tag'), r = $t('el-tooltip'), l = $t('el-icon'), d = $t('el-option'), c = $t('el-options'), A = $t('el-scrollbar'), g = $t('el-select-menu'), b = Zu('click-outside') return We( (Z(), T( 'div', { ref: 'selectRef', class: B([e.nsSelect.b(), e.nsSelect.m(e.selectSize)]), [Nu(e.mouseEnterEventName)]: (u) => (e.states.inputHovering = !0), onMouseleave: (u) => (e.states.inputHovering = !1), }, [ P( r, { ref: 'tooltipRef', visible: e.dropdownMenuVisible, placement: e.placement, teleported: e.teleported, 'popper-class': [e.nsSelect.e('popper'), e.popperClass], 'popper-options': e.popperOptions, 'fallback-placements': e.fallbackPlacements, effect: e.effect, pure: '', trigger: 'click', transition: `${e.nsSelect.namespace.value}-zoom-in-top`, 'stop-popper-mouse-event': !1, 'gpu-acceleration': !1, persistent: e.persistent, 'append-to': e.appendTo, 'show-arrow': e.showArrow, offset: e.offset, onBeforeShow: e.handleMenuEnter, onHide: (u) => (e.states.isBeforeHide = !1), }, { default: x(() => { var u return [ Y( 'div', { ref: 'wrapperRef', class: B([ e.nsSelect.e('wrapper'), e.nsSelect.is('focused', e.isFocused), e.nsSelect.is('hovering', e.states.inputHovering), e.nsSelect.is('filterable', e.filterable), e.nsSelect.is('disabled', e.selectDisabled), ]), onClick: Ze(e.toggleMenu, ['prevent']), }, [ e.$slots.prefix ? (Z(), T( 'div', { key: 0, ref: 'prefixRef', class: B(e.nsSelect.e('prefix')) }, [$(e.$slots, 'prefix')], 2 )) : X('v-if', !0), Y( 'div', { ref: 'selectionRef', class: B([ e.nsSelect.e('selection'), e.nsSelect.is('near', e.multiple && !e.$slots.prefix && !!e.states.selected.length), ]), }, [ e.multiple ? $(e.$slots, 'tag', { key: 0 }, () => [ (Z(!0), T( je, null, Jt( e.showTagList, (p) => ( Z(), T( 'div', { key: e.getValueKey(p), class: B(e.nsSelect.e('selected-item')) }, [ P( o, { closable: !e.selectDisabled && !p.isDisabled, size: e.collapseTagSize, type: e.tagType, effect: e.tagEffect, 'disable-transitions': '', style: Ue(e.tagStyle), onClose: (v) => e.deleteTag(v, p), }, { default: x(() => [ Y( 'span', { class: B(e.nsSelect.e('tags-text')) }, [ $( e.$slots, 'label', { label: p.currentLabel, value: p.value }, () => [Le(ce(p.currentLabel), 1)] ), ], 2 ), ]), _: 2, }, 1032, ['closable', 'size', 'type', 'effect', 'style', 'onClose'] ), ], 2 ) ) ), 128 )), e.collapseTags && e.states.selected.length > e.maxCollapseTags ? (Z(), _( r, { key: 0, ref: 'tagTooltipRef', disabled: e.dropdownMenuVisible || !e.collapseTagsTooltip, 'fallback-placements': ['bottom', 'top', 'right', 'left'], effect: e.effect, placement: 'bottom', teleported: e.teleported, }, { default: x(() => [ Y( 'div', { ref: 'collapseItemRef', class: B(e.nsSelect.e('selected-item')) }, [ P( o, { closable: !1, size: e.collapseTagSize, type: e.tagType, effect: e.tagEffect, 'disable-transitions': '', style: Ue(e.collapseTagStyle), }, { default: x(() => [ Y( 'span', { class: B(e.nsSelect.e('tags-text')) }, ' + ' + ce(e.states.selected.length - e.maxCollapseTags), 3 ), ]), _: 1, }, 8, ['size', 'type', 'effect', 'style'] ), ], 2 ), ]), content: x(() => [ Y( 'div', { ref: 'tagMenuRef', class: B(e.nsSelect.e('selection')) }, [ (Z(!0), T( je, null, Jt( e.collapseTagList, (p) => ( Z(), T( 'div', { key: e.getValueKey(p), class: B(e.nsSelect.e('selected-item')) }, [ P( o, { class: 'in-tooltip', closable: !e.selectDisabled && !p.isDisabled, size: e.collapseTagSize, type: e.tagType, effect: e.tagEffect, 'disable-transitions': '', onClose: (v) => e.deleteTag(v, p), }, { default: x(() => [ Y( 'span', { class: B(e.nsSelect.e('tags-text')) }, [ $( e.$slots, 'label', { label: p.currentLabel, value: p.value }, () => [Le(ce(p.currentLabel), 1)] ), ], 2 ), ]), _: 2, }, 1032, ['closable', 'size', 'type', 'effect', 'onClose'] ), ], 2 ) ) ), 128 )), ], 2 ), ]), _: 3, }, 8, ['disabled', 'effect', 'teleported'] )) : X('v-if', !0), ]) : X('v-if', !0), Y( 'div', { class: B([ e.nsSelect.e('selected-item'), e.nsSelect.e('input-wrapper'), e.nsSelect.is('hidden', !e.filterable), ]), }, [ We( Y( 'input', { id: e.inputId, ref: 'inputRef', 'onUpdate:modelValue': (p) => (e.states.inputValue = p), type: 'text', name: e.name, class: B([e.nsSelect.e('input'), e.nsSelect.is(e.selectSize)]), disabled: e.selectDisabled, autocomplete: e.autocomplete, style: Ue(e.inputStyle), tabindex: e.tabindex, role: 'combobox', readonly: !e.filterable, spellcheck: 'false', 'aria-activedescendant': ((u = e.hoverOption) == null ? void 0 : u.id) || '', 'aria-controls': e.contentId, 'aria-expanded': e.dropdownMenuVisible, 'aria-label': e.ariaLabel, 'aria-autocomplete': 'none', 'aria-haspopup': 'listbox', onKeydown: [ _n( Ze((p) => e.navigateOptions('next'), ['stop', 'prevent']), ['down'] ), _n( Ze((p) => e.navigateOptions('prev'), ['stop', 'prevent']), ['up'] ), _n(Ze(e.handleEsc, ['stop', 'prevent']), ['esc']), _n(Ze(e.selectOption, ['stop', 'prevent']), ['enter']), _n(Ze(e.deletePrevTag, ['stop']), ['delete']), ], onCompositionstart: e.handleCompositionStart, onCompositionupdate: e.handleCompositionUpdate, onCompositionend: e.handleCompositionEnd, onInput: e.onInput, onClick: Ze(e.toggleMenu, ['stop']), }, null, 46, [ 'id', 'onUpdate:modelValue', 'name', 'disabled', 'autocomplete', 'tabindex', 'readonly', 'aria-activedescendant', 'aria-controls', 'aria-expanded', 'aria-label', 'onKeydown', 'onCompositionstart', 'onCompositionupdate', 'onCompositionend', 'onInput', 'onClick', ] ), [[Su, e.states.inputValue]] ), e.filterable ? (Z(), T( 'span', { key: 0, ref: 'calculatorRef', 'aria-hidden': 'true', class: B(e.nsSelect.e('input-calculator')), textContent: ce(e.states.inputValue), }, null, 10, ['textContent'] )) : X('v-if', !0), ], 2 ), e.shouldShowPlaceholder ? (Z(), T( 'div', { key: 1, class: B([ e.nsSelect.e('selected-item'), e.nsSelect.e('placeholder'), e.nsSelect.is( 'transparent', !e.hasModelValue || (e.expanded && !e.states.inputValue) ), ]), }, [ e.hasModelValue ? $( e.$slots, 'label', { key: 0, label: e.currentPlaceholder, value: e.modelValue }, () => [Y('span', null, ce(e.currentPlaceholder), 1)] ) : (Z(), T('span', { key: 1 }, ce(e.currentPlaceholder), 1)), ], 2 )) : X('v-if', !0), ], 2 ), Y( 'div', { ref: 'suffixRef', class: B(e.nsSelect.e('suffix')) }, [ e.iconComponent && !e.showClose ? (Z(), _( l, { key: 0, class: B([e.nsSelect.e('caret'), e.nsSelect.e('icon'), e.iconReverse]) }, { default: x(() => [(Z(), _(Fe(e.iconComponent)))]), _: 1 }, 8, ['class'] )) : X('v-if', !0), e.showClose && e.clearIcon ? (Z(), _( l, { key: 1, class: B([e.nsSelect.e('caret'), e.nsSelect.e('icon'), e.nsSelect.e('clear')]), onClick: e.handleClearClick, }, { default: x(() => [(Z(), _(Fe(e.clearIcon)))]), _: 1 }, 8, ['class', 'onClick'] )) : X('v-if', !0), e.validateState && e.validateIcon && e.needStatusIcon ? (Z(), _( l, { key: 2, class: B([ e.nsInput.e('icon'), e.nsInput.e('validateIcon'), e.nsInput.is('loading', e.validateState === 'validating'), ]), }, { default: x(() => [(Z(), _(Fe(e.validateIcon)))]), _: 1 }, 8, ['class'] )) : X('v-if', !0), ], 2 ), ], 10, ['onClick'] ), ] }), content: x(() => [ P( g, { ref: 'menuRef' }, { default: x(() => [ e.$slots.header ? (Z(), T( 'div', { key: 0, class: B(e.nsSelect.be('dropdown', 'header')), onClick: Ze(() => {}, ['stop']) }, [$(e.$slots, 'header')], 10, ['onClick'] )) : X('v-if', !0), We( P( A, { id: e.contentId, ref: 'scrollbarRef', tag: 'ul', 'wrap-class': e.nsSelect.be('dropdown', 'wrap'), 'view-class': e.nsSelect.be('dropdown', 'list'), class: B([e.nsSelect.is('empty', e.filteredOptionsCount === 0)]), role: 'listbox', 'aria-label': e.ariaLabel, 'aria-orientation': 'vertical', onScroll: e.popupScroll, }, { default: x(() => [ e.showNewOption ? (Z(), _(d, { key: 0, value: e.states.inputValue, created: !0 }, null, 8, ['value'])) : X('v-if', !0), P(c, null, { default: x(() => [$(e.$slots, 'default')]), _: 3 }), ]), _: 3, }, 8, ['id', 'wrap-class', 'view-class', 'class', 'aria-label', 'onScroll'] ), [[bn, e.states.options.size > 0 && !e.loading]] ), e.$slots.loading && e.loading ? (Z(), T( 'div', { key: 1, class: B(e.nsSelect.be('dropdown', 'loading')) }, [$(e.$slots, 'loading')], 2 )) : e.loading || e.filteredOptionsCount === 0 ? (Z(), T( 'div', { key: 2, class: B(e.nsSelect.be('dropdown', 'empty')) }, [$(e.$slots, 'empty', {}, () => [Y('span', null, ce(e.emptyText), 1)])], 2 )) : X('v-if', !0), e.$slots.footer ? (Z(), T( 'div', { key: 3, class: B(e.nsSelect.be('dropdown', 'footer')), onClick: Ze(() => {}, ['stop']) }, [$(e.$slots, 'footer')], 10, ['onClick'] )) : X('v-if', !0), ]), _: 3, }, 512 ), ]), _: 3, }, 8, [ 'visible', 'placement', 'teleported', 'popper-class', 'popper-options', 'fallback-placements', 'effect', 'transition', 'persistent', 'append-to', 'show-arrow', 'offset', 'onBeforeShow', 'onHide', ] ), ], 16, ['onMouseleave'] )), [[b, e.handleClickOutside, e.popperRef]] ) } var lm = ge(am, [ ['render', rm], ['__file', 'select.vue'], ]) const cm = Q({ name: 'ElOptionGroup', componentName: 'ElOptionGroup', props: { label: String, disabled: Boolean }, setup(e) { const t = he('select'), n = C(null), i = Nt(), s = C([]) it(Kl, lt({ ...Fn(e) })) const a = M(() => s.value.some((d) => d.visible === !0)), o = (d) => { var c, A return ((c = d.type) == null ? void 0 : c.name) === 'ElOption' && !!((A = d.component) != null && A.proxy) }, r = (d) => { const c = ft(d), A = [] return ( c.forEach((g) => { var b, u o(g) ? A.push(g.component.proxy) : (b = g.children) != null && b.length ? A.push(...r(g.children)) : (u = g.component) != null && u.subTree && A.push(...r(g.component.subTree)) }), A ) }, l = () => { s.value = r(i.subTree) } return ( Be(() => { l() }), Yg(n, l, { attributes: !0, subtree: !0, childList: !0 }), { groupRef: n, visible: a, ns: t } ) }, }) function um(e, t, n, i, s, a) { return We( (Z(), T( 'ul', { ref: 'groupRef', class: B(e.ns.be('group', 'wrap')) }, [ Y('li', { class: B(e.ns.be('group', 'title')) }, ce(e.label), 3), Y('li', null, [Y('ul', { class: B(e.ns.b('group')) }, [$(e.$slots, 'default')], 2)]), ], 2 )), [[bn, e.visible]] ) } var ql = ge(cm, [ ['render', um], ['__file', 'option-group.vue'], ]) const _l = dt(lm, { Option: Bo, OptionGroup: ql }), $l = Wn(Bo) Wn(ql) const ec = ['success', 'info', 'warning', 'error'], Je = cl({ customClass: '', center: !1, dangerouslyUseHTMLString: !1, duration: 3e3, icon: void 0, id: '', message: '', onClose: void 0, showClose: !1, type: 'info', plain: !1, offset: 16, zIndex: 0, grouping: !1, repeatNum: 1, appendTo: ze ? document.body : void 0, }), dm = ye({ customClass: { type: String, default: Je.customClass }, center: { type: Boolean, default: Je.center }, dangerouslyUseHTMLString: { type: Boolean, default: Je.dangerouslyUseHTMLString }, duration: { type: Number, default: Je.duration }, icon: { type: An, default: Je.icon }, id: { type: String, default: Je.id }, message: { type: ee([String, Object, Function]), default: Je.message }, onClose: { type: ee(Function), default: Je.onClose }, showClose: { type: Boolean, default: Je.showClose }, type: { type: String, values: ec, default: Je.type }, plain: { type: Boolean, default: Je.plain }, offset: { type: Number, default: Je.offset }, zIndex: { type: Number, default: Je.zIndex }, grouping: { type: Boolean, default: Je.grouping }, repeatNum: { type: Number, default: Je.repeatNum }, }), pm = { destroy: () => !0 }, mt = ju([]), Am = (e) => { const t = mt.findIndex((s) => s.id === e), n = mt[t] let i return t > 0 && (i = mt[t - 1]), { current: n, prev: i } }, gm = (e) => { const { prev: t } = Am(e) return t ? t.vm.exposed.bottom.value : 0 }, fm = (e, t) => (mt.findIndex((i) => i.id === e) > 0 ? 16 : t), bm = Q({ name: 'ElMessage' }), hm = Q({ ...bm, props: dm, emits: pm, setup(e, { expose: t }) { const n = e, { Close: i } = pf, { ns: s, zIndex: a } = Gu('message'), { currentZIndex: o, nextZIndex: r } = a, l = C(), d = C(!1), c = C(0) let A const g = M(() => (n.type ? (n.type === 'error' ? 'danger' : n.type) : 'info')), b = M(() => { const m = n.type return { [s.bm('icon', m)]: m && ja[m] } }), u = M(() => n.icon || ja[n.type] || ''), p = M(() => gm(n.id)), v = M(() => fm(n.id, n.offset) + p.value), f = M(() => c.value + v.value), w = M(() => ({ top: `${v.value}px`, zIndex: o.value })) function R() { n.duration !== 0 && ({ stop: A } = ku(() => { y() }, n.duration)) } function I() { A == null || A() } function y() { d.value = !1 } function E({ code: m }) { m === on.esc && y() } return ( Be(() => { R(), r(), (d.value = !0) }), q( () => n.repeatNum, () => { I(), R() } ), Dt(document, 'keydown', E), bt(l, () => { c.value = l.value.getBoundingClientRect().height }), t({ visible: d, bottom: f, close: y }), (m, j) => ( Z(), _( at, { name: h(s).b('fade'), onBeforeLeave: m.onClose, onAfterLeave: (U) => m.$emit('destroy'), persisted: '' }, { default: x(() => [ We( Y( 'div', { id: m.id, ref_key: 'messageRef', ref: l, class: B([ h(s).b(), { [h(s).m(m.type)]: m.type }, h(s).is('center', m.center), h(s).is('closable', m.showClose), h(s).is('plain', m.plain), m.customClass, ]), style: Ue(h(w)), role: 'alert', onMouseenter: I, onMouseleave: R, }, [ m.repeatNum > 1 ? (Z(), _(h(gh), { key: 0, value: m.repeatNum, type: h(g), class: B(h(s).e('badge')) }, null, 8, [ 'value', 'type', 'class', ])) : X('v-if', !0), h(u) ? (Z(), _( h(ot), { key: 1, class: B([h(s).e('icon'), h(b)]) }, { default: x(() => [(Z(), _(Fe(h(u))))]), _: 1 }, 8, ['class'] )) : X('v-if', !0), $(m.$slots, 'default', {}, () => [ m.dangerouslyUseHTMLString ? (Z(), T( je, { key: 1 }, [ X( " Caution here, message could've been compromised, never use user's input as message " ), Y('p', { class: B(h(s).e('content')), innerHTML: m.message }, null, 10, ['innerHTML']), ], 2112 )) : (Z(), T('p', { key: 0, class: B(h(s).e('content')) }, ce(m.message), 3)), ]), m.showClose ? (Z(), _( h(ot), { key: 2, class: B(h(s).e('closeBtn')), onClick: Ze(y, ['stop']) }, { default: x(() => [P(h(i))]), _: 1 }, 8, ['class', 'onClick'] )) : X('v-if', !0), ], 46, ['id'] ), [[bn, d.value]] ), ]), _: 3, }, 8, ['name', 'onBeforeLeave', 'onAfterLeave'] ) ) ) }, }) var vm = ge(hm, [['__file', 'message.vue']]) let mm = 1 const tc = (e) => { const t = !e || tt(e) || Cr(e) || Oe(e) ? { message: e } : e, n = { ...Je, ...t } if (!n.appendTo) n.appendTo = document.body else if (tt(n.appendTo)) { let i = document.querySelector(n.appendTo) Yt(i) || (i = document.body), (n.appendTo = i) } return ( Tt(Et.grouping) && !n.grouping && (n.grouping = Et.grouping), Ne(Et.duration) && n.duration === 3e3 && (n.duration = Et.duration), Ne(Et.offset) && n.offset === 16 && (n.offset = Et.offset), Tt(Et.showClose) && !n.showClose && (n.showClose = Et.showClose), n ) }, ym = (e) => { const t = mt.indexOf(e) if (t === -1) return mt.splice(t, 1) const { handler: n } = e n.close() }, wm = ({ appendTo: e, ...t }, n) => { const i = `message_${mm++}`, s = t.onClose, a = document.createElement('div'), o = { ...t, id: i, onClose: () => { s == null || s(), ym(c) }, onDestroy: () => { Po(null, a) }, }, r = P(vm, o, Oe(o.message) || Cr(o.message) ? { default: Oe(o.message) ? o.message : () => o.message } : null) ;(r.appContext = n || On._context), Po(r, a), e.appendChild(a.firstElementChild) const l = r.component, c = { id: i, vnode: r, vm: l, handler: { close: () => { l.exposed.visible.value = !1 }, }, props: r.component.props, } return c }, On = (e = {}, t) => { if (!ze) return { close: () => {} } const n = tc(e) if (n.grouping && mt.length) { const s = mt.find(({ vnode: a }) => { var o return ((o = a.props) == null ? void 0 : o.message) === n.message }) if (s) return (s.props.repeatNum += 1), (s.props.type = n.type), s.handler } if (Ne(Et.max) && mt.length >= Et.max) return { close: () => {} } const i = wm(n, t) return mt.push(i), i.handler } ec.forEach((e) => { On[e] = (t = {}, n) => { const i = tc(t) return On({ ...i, type: e }, n) } }) function Rm(e) { for (const t of mt) (!e || e === t.props.type) && t.handler.close() } On.closeAll = Rm On._context = null const Im = Bu(On, '$message') function Em(e) { Yu.emit('callUE', e) } function Mm({ RealTime: e = !1, UpdateTime: t = '2025-02-21 8:00:00', WeatherType: n }) { Em({ ModuleName: 'Weather', ActionName: 'Update', Params: { RealTime: e, UpdateTime: t, WeatherType: n } }) } const nc = co('panel', { state: () => ({ sjwg: {}, fcky: {}, sgzy: {}, kypm: {}, weather: 'Clear Skies' }), getters: {}, actions: { setSjwg(e) { this.sjwg = e }, setFcky(e) { this.fcky = e }, setSgzy(e) { this.sgzy = e }, setKypm(e) { this.kypm = e }, setWeather(e) { ;(this.weather = e), Mm({ WeatherType: e }) }, }, }), Dm = '/low_altitude_interface/assets/alert-dl-h-BvrYMMjx.png', Zm = '/low_altitude_interface/assets/alert-dl-BZTlgzoZ.png', Sm = '/low_altitude_interface/assets/alert-ky-h-CFjAOj8V.png', Nm = '/low_altitude_interface/assets/alert-ky-CqDOU9i3.png', jm = '/low_altitude_interface/assets/alert-ph-h-DXrewdxZ.png', Gm = '/low_altitude_interface/assets/alert-ph-C42Ik3er.png', km = '/low_altitude_interface/assets/alert-pz-h-8KR8KYCm.png', Bm = '/low_altitude_interface/assets/alert-pz-B4piqmd5.png', Ym = '/low_altitude_interface/assets/alert-tq-h-BGS-OrD_.png', Um = '/low_altitude_interface/assets/alert-tq-cyO9batw.png', Tm = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRDQxMzgxNkYyNzgxMUVGOTZDQ0RCMkZCMUNDQTM4RSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRDQxMzgxN0YyNzgxMUVGOTZDQ0RCMkZCMUNDQTM4RSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZENDEzODE0RjI3ODExRUY5NkNDREIyRkIxQ0NBMzhFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZENDEzODE1RjI3ODExRUY5NkNDREIyRkIxQ0NBMzhFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+beTDTgAABSJJREFUeNqsWFtsVEUY/mb27LalN0u5WAERrPVSL1UUg4m38oDxrcFoUArR6Eu1YggRExLeDGKl2lc1pqax8RIhwQdjIqLhwRhCQANNTKzWErQpBell293u7oz/nD2zzM7OObsSTzK7c87cvvP9///NP4e17JBwXMz6R8h92CVD7mXYAC9icR7U7RIGSlr1qFICynOA4MY/t+5ZBazoxYTxL6x7GcwjwxgxF48FRdeZ0accEL1YLqjnjDqMdicjNoBY0O4ZgJjFnnTUTUY0gGzQJ2esLWxGmPW2GkDcKDGDFW6AkZZpo0DYpmPmC9iMmCASVKqDumeZijuAhIFYjHBiuBgxgfggtj2Cx25ZhX3xGNbhGq5sDmO/T+Dg0HF8YzkuK8dIESt3rkU/Z2jANV4ex023r8Z7DUvQMTOPjBWFCHNWZjtqwsuDGDyGp6dmsCglYtKYiF11Phb8CvWMMeSWNyCxoxOH6WlVSxOWEJD5CE0qYcQ0UcyL5RvPjWPaYIoblGrP55Z/ZCf+wZwenxMlYulkhDkih5tAVjWj4cIlpFX/5Y2oI2YYvbUtTj5Dk9OYVc/XLEO9Hh/jbnNESXyRrOuJLs3k7dv3PN6uq0Fr1ITzaYztHcTLl2eR4dw3h2JElPWnkOdFQITMv3UijoR+FnZVxVFFDo5kGpm3vkAX9V84P4WFSoE4aYsHi668DgmaLLXrfewyhA3VpDCNtX6o+7qSyiA9nfQXVfohaMyceuyS9EoZ8QVHA1FREEyu/cJ3TlpYpK74vhMzZFs0U8SQOdNlUoiiyPGiNi9thovTvq3lh70YqK9Bm+5A9I+9MIBX1YQ7O7HhwVvxxNJ63EuzsytJnBw5jyMDR3HMUmTuSCdkFBDEg1aZ9xFUJ5CIGyOqRD6c92/D1o51eM4cS9G18VEq66/HEJn0kLV5lgCKBhIwckMzqkmqF7YfQg+Fcq2ehEJ6vvtx3PVAax4E6c2Xn3yPrwl4trsTm+9Yg+71K9G9pws/vnMEx639ymkapyMVokZcTWpo8aS56T15P55V/UbGcfiNj/GpFjUK4c/f7MbsfTej56Hb8Bo9O+HYOAv7DY/IsHxnVYWc1dxRVVG6klnRiBhJebvqs38Yw1byg31D+Eq10V7TtnoZakJAlJhGWlu58IJWzpxpnmIsp/vkcj4IOx9lut3jzhy4EE3cAaBQ14yMTvjmKAH612UsLKRxTvXpfxFbrfE4sBNbVFtqEWfHJv28JDQB9xx5ps4ZctpHNt+DpvGLSKs9Rhp2Hf0byR/OYrBrE/o2tGL7uy9hbvBbnFBKTOG86eF29Krxp37DkCsZKhIVOtdwKzWsCkrNyX6cov2i1jWQFss8dQBb/pxE+rO96GltKQ5f86IU4Myej9BDgKboVilvOiiLgb8JbjEijBQv89Ov2E0Rc4HsC7vEOWRTnd8v9cxBDHz3M16fT+E0tQnVTvVfTo+iL72IkaV16PjgFRzV0m+bUDPCrKw9buSsihlvYxvqySxcKNMEKQA5sDzzB5KZbCEf8cvaFaimbZ+R7vgS334jEkO7MUxmbry7Fx0BC5qJrAangdhpognIC5FmaYRq1CFMaIYdALKBBXyJl44M3FwsF7KAtLL4sDRQWGCyhokK4e453s4+n7gEyHV+dQGRBhjziCFcBywX1TaQsDOvjNraHXMLx1lY2jpiJsR2nVXwCaKSLwUi7JDlhXzDYP/xewgq/I4iw76ZeGUGSPw/Fys3378CDAB0DhbF4i5xlQAAAABJRU5ErkJggg==', Jm = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3RTg4QThBQkZFMUYxMUVGODVBMURCQUFDNDI1OTMxMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3RTg4QThBQ0ZFMUYxMUVGODVBMURCQUFDNDI1OTMxMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdFODhBOEE5RkUxRjExRUY4NUExREJBQUM0MjU5MzEwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdFODhBOEFBRkUxRjExRUY4NUExREJBQUM0MjU5MzEwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+heW3eAAABSBJREFUeNrsWE2IHEUU/qqnu2c2G9Flyc+aVWGJCRhUIognhWgkEcEfcvIgsjmoCIp6EcRVEERRcxLB4IKoCQSEeFAxeBTJIRcvwaiIEEyWmJgNUbPZme6u8lV31fi2tmqmZ8bDHmx4dFV3VdfX3/utEkoprOUrwhq/1jzA2Dauf2KgecK597tUoN3zWviYARwClGAaEB6wioGRHmBqIAZrArOg3HbkjHWBSQbYtoXzEwMBdEFZEBZQg/UbzjjOnpbCgHLFBe5lNQ6AE8yJOKBGQIRHzRZAERDpjPOqPg4wB8ZQZMY1zN3XjgIMWoA5u+esDwZOMgyqDoOCsWbBJExiJpGHQckAZgZUxn4oM+NyZpN9GYTjoRxgaqRpQe6/H4/etBEvRALrA7El//0S5t//Ch8aQB0jPltVdW0QHvYSA4xLfPMU5vICi2f+wDxjsVyYMqicmsC905N4mvqHmDkIx/akmStd9YZskEsJ8PmH8HAzwXYpkVzN0O7kUONNTMf0NiOAFy5jQYjut8pFaGy+8VpcpDEzL+3DK4t/44eExq9rotWIkBcSp9/9HIeZw4i6NrhKxVsm8SwtdIs7SCp0rhnD1rt34NVQHNNjNk9grxb+nACepdsRQ0IeykqxJ7q7NIt3jmLfDRuw6coy0tndOEAs3HrwGGb/WkIuIsRi5cftfEFqVgSwIMbki4/gU2L+3Pw3mB1L0V5YxPkAqL5OsspQz19GRnKJmmMkV7VqT57GRebBcDyRh6zSk2mOItY6p37Dn9RfMs4SSo19qxl3cNc+khiJBjjeQkqqX7/nDmy3JrFzBlN3bcO07d93O7Zu24JJrUY9hyQKxNyhy61V7h/TDG3spG75+C48+Ng9eGPHjdigv/XkXrz81AN4WwNKY8T0/s39u6HrpMgAFIHCIlg8RD0AKV+e1OC06EVaCVq6fd041ukHzRhNEh2SBIFp6HcENDXzlJmHPmuougwq38caFRNVrKMoY0JNUbIisEzhpm1eKjOutLWSwagnCapuNeP7o24VQoyopJol9aK6TV5ajktMv6RXVG3TL+eQRyunmhk6k4QmV6CMqqzahOj2u+wyc+iCl3LVTw9dDwaLV60mA0JQDta2BhMHG0yNsXWMKKo8Wj8vhtgBxTW8eMWdOQksm0JUnkmqFswRKgajf+c5DGJYGww5SWk7MdlgXM0qWimxRu1WavpNJJSztRdLYjfS79K0XEPPQ6G824CRGVzhJEncDRc5qa+j20ttXNHlVFqFFf22oz1bv6Owo+dn1BbGSXhFrfrZYTwAuLIiTk0m0SAOfo2ju27DyeOnysSPD47hdYqNms9Om6q/I99i7sezWNB97cWqqidzD0D8FwDLUp0W6liA3/+KCySLNjt89h1+Nu3S2t77Eifsj+ksQjZYOCV/0U/VcR/74+D02OynMzhM+fbOEwdwiCqS4xSQIxJhSqvyTvbXXZAcSG6awE7txb9cwCes/K+lZmEPj5yTBcE2S7aituV+64s5PDOzGc8NcnRCVfdHe17DW9RcJmmbDJMZsWwq92ShF0DBtpV8w2T3JqFtp3CDO9vRZQZcxpjMnexS6+iDF652AXcv0XA286LHyUIR2HbKUeOgZEafezY6/Y4+lHOawIHKOp5cJ9X5Erv0MCd6/KQPaK1gXSeT+LKKCKhW9CrV+lQyI+ViOPtW4WwVETh+q10Ij6JiH5Oix5lOrzJ+4IPMQcqtoU5JR73E/6f8I17/CDAA8BVFtpqXAbsAAAAASUVORK5CYII=', Cm = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAHCAYAAAAxrNxjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNDA2NzUwQ0YyNzgxMUVGOTBGNEQ2MzcyMjVEQUZBMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNDA2NzUwREYyNzgxMUVGOTBGNEQ2MzcyMjVEQUZBMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM0MDY3NTBBRjI3ODExRUY5MEY0RDYzNzIyNURBRkEzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM0MDY3NTBCRjI3ODExRUY5MEY0RDYzNzIyNURBRkEzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jSwKAQAAAGFJREFUeNpi+P//vxcQzwJiBhx4BhBHgBhX/kNALxZFzVC5lyCOGRD/gwoUIilK/I8AzjBBMyRBFyC2RuJ7gNQgW+P2HxMEweTR3ZSApKgYWY4RrBoVzANiHiAOQxYECDAA1iHPjsP3lu0AAAAASUVORK5CYII=', Om = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCNEM1RTNGOEYyNzgxMUVGOTVCRTkwRDlEQ0FBQTRCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCNEM1RTNGOUYyNzgxMUVGOTVCRTkwRDlEQ0FBQTRCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkI0QzVFM0Y2RjI3ODExRUY5NUJFOTBEOURDQUFBNEJCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkI0QzVFM0Y3RjI3ODExRUY5NUJFOTBEOURDQUFBNEJCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+btGhQgAAAO5JREFUeNpi+P//PwMenA/E/4DYEV0On6bq/xBwCUp7EaNxMlRxOJQ/G8p3xadxBVRRAJp4O1TcBZvGA1BJCzRxDiA+CcRvgdgEXeMFqCYNNE0GUPG7QMyN7FSQaU+hkuJomoKh4ruxheptqBN40CRroJq6sAUgA46AWAYVT8AVXSwMECABpYWBeB8Q6wGxAxAfBGIzIJYB4l9Q/AeIP4J0/4Ga/g1KvwdiKSTTN/7HBI8YgYQ60ARRqK0/gHgLAxGAEexRiBOZoFgWiAWR+N+B+CdILRL+wQL1w34gZgPiv1AD/yMZjs4GabwOEGAAA3fkRNhlaaMAAAAASUVORK5CYII=', zm = '/low_altitude_interface/assets/btn-main-BhN8Qa_S.png', Wm = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFRUY0Njc2REYyNzgxMUVGQjlGMUZDQUI4NTUyNDZEOSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFRUY0Njc2RUYyNzgxMUVGQjlGMUZDQUI4NTUyNDZEOSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVFRjQ2NzZCRjI3ODExRUZCOUYxRkNBQjg1NTI0NkQ5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVFRjQ2NzZDRjI3ODExRUZCOUYxRkNBQjg1NTI0NkQ5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VxzamQAABRdJREFUeNq0WGtoHUUU/mbv3t37aJ634SbRpg+laooU9Yc/BP0h/hCJYgQrQk0K/dXiI5BSUtQfYmNDkSoKSaFKRQIWiw8iIijqD+sLRatQq7RpU2PSJk3amNd97npmnSmTydy9t7EunLt7z+zMfHO+M+ecWbvpCR8VXAz/7So7iV3BxKwCMH6FC/FL9bFDOsm7JZ5ZCBi/DBjfAIKpOtsAQoqlPUdKWMYvA8ZXxNP+X+lvG0BYikSEWModIUBMZvcUKWr/lwFhhtVHRLsqlmaRMGuoVigKKSh3iOeAIp0a1RJRIY5yV+nxDROaAMqJ8wan9UzUyAmkJfjkLpe4g3h3O45Qo7v/PWxdzAWD49ktOGwxOC+8g0c1IIhFwXY9grd5O/VpW8hiUQPiqdYNo0ZawaWJ3YSDW/iL9Bzj793YhNqki5u5bvM6rD9+FudVejJ5+NSnlT8TiKiyepUqZqJGBSJ9ItrSgLqaBBpsQcp1KaSTMTid9+Ll6Vl8SiMXHrsbBxMx7B4+jwk5cH0V4rLPbRuw5qdhnNN8ZYm/MYqsTKGEI48JSfR1Ysix/121fk3O4Nved3GAr5Ao6k5V4c6wiJYrYHj3YTzADcQNS5IVkjc5qwrKjkYQk6vSL88PTJzgK2QMVqn3FO91tXCgBk5ftwj3ibiYIEmyqrke6Wqi5ukH8Sbv9fwgumqTiD3Zhj1jU/iZQKA5hTsGv8DeU+O4IHESNU7XQxjgf/o/xpZfzgbUzJHMC4ssKhbx7DL5gY1NI0MyI1dMlGS5vP4R+na140Wue20Ie2iiMTVyXvwbi7IPtU2VS6BWKQBqp3QtEkQTuNBKuf/gj78wLXU00UVTPpLtlVxWJSXAhctYlIPSTskYJloGYkMjqmX77TcgdbVlANPjyvUpJGqSSEkzU/youTSHbN0quIqufmae+GfB1vTXNiD5VBt6iNLPKaBlux/GIaLy8a9PBj5izPLSWWUQc4WzBo462I2jFFU3rqQSGr+EH3f2o4/Htre60FsVx6b2XmwW23dBc9ZimLPyMJ2olGODo+WkVeknQ+OEVnm6RRxl63KpWtOAxrok0hTc+nmHZw6hh/wkS07rvrIdL6k6xqMm0bOxGVW0o3rOTeIb0mXXpXHfwU/QOfQ9TortW5FFlhQtf05igWRaWub3UcyIbZzRdDLTehOXMZ/J4bl9HXiVt+87io7PjmN0JTWrnso92/CmpltSff1wClOynUCMaZXZsjrGLlNjeuvTiBENtXL1rS2ooWCVXV0NV+o2taB6ajYwucc4IKKnsRZJ2X5XK+qPnQh2jF+iojP6SEz4SeLLXnwQd3ETrsFFVA3f04M2xT8yphCvVlmyXii4UTh2BNfkoizuKmWAp1Zn0iJqiWjLqkxYJn7rWjQ01WP1/m14n7+4ox/bRqeQoWSYGNiBN7hu5wA6KAHOBgMzyqQsCGqxA9txRCTK+z/8Lkh6qiVyQgp6GeBrNWYQB34dwSTJ3N6tGLYsuMd+wxmuH5kAy+ZxJkK6r04EuiXOenocXqGI09THIRAjyuQFpYi+4i/SIsxQr8pS0REWckSbnldM5xWd5ryQnLjLYlpStawwUmtKpmxLOVikBBBfO6foYAqaFHUfCQOin0tUIDAA8UucdTzNSYva+EuA6Ccz3Wcs7Qgadgg3AfI00emEXWKwonLuYErdEgbEr+AA7peIsEZq9JM603xmxd9ArvazBMp9Qvg/PtT8I8AASnUf5diQqE4AAAAASUVORK5CYII=', Fm = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAAArCAYAAABhLkbTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2REU0QUYzMUYyNzkxMUVGQTVGQUVFMEE0NjYyOUE1QyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2REU0QUYzMkYyNzkxMUVGQTVGQUVFMEE0NjYyOUE1QyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZERTRBRjJGRjI3OTExRUZBNUZBRUUwQTQ2NjI5QTVDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZERTRBRjMwRjI3OTExRUZBNUZBRUUwQTQ2NjI5QTVDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+mRmuzQAAAtVJREFUeNrsnDtvE0EUhXdm9uG111YcxwSE0wCCioICGkKDKOj5EbT8CXo6/gYSHQUddZCQIISAiJBsOcQPMH57d7hD7sASucuStcQ58tE6493mfjlzx/aOxZUHz50lEmxJVilLHodOL01OyDF5wUfzt3aXnGxB+PVaudrYrGz7nryqpKgL4fioZXYSblhRwVqj1e4+3Nv78JmGZgbQSSgGhkcOr187fycqevekEAHK9291cHDwmg63yO9MYtwTCTFJiAjI/UrJ30a5zlQlDsRMpnqIGShd2qrdJCC3UaMzV0g2IREyNW2FNFXVNqrhXTTzXOTzbPV7NWVSEjUuVG94riyjPrlIpaHYXlIphd5l1CZ/WShmhVWmZe8aSrJaUCIhsfxdJSimpwRaL30zCeUARdg3jVpj1bVKUISDz7VWCgq0wlCQEiQFAhRAgQAFUCBAARQIUCBAARQIUAAFAhRAgQDlf5Y4/n5RAsrKECEYQrrmmCSJ5aABJVcmSjnSDZLECebzhblHYsxQNKDkhMSRXiCUH3W7fXOv3Zx8hKTkCIRmLV+qQkVIv9xsteo0+JbBxICSExDhFdeEG64fdfr1Xq8f0QvPyBPneEcXbr47GxZScQ8p0KMsVFgdjmYbu7vvtzglL8gjhuL8BYUuKEqvgC10WfcPoVxKSEFIr0S9pNQ+7Jzb3/94MY7jLp3wmNzlRh+noZgNkDOCuC6DqIZCZiutHTWeTMNer1Ntt79WB4NBkYZ3yU/Ie+Q+T1+JhZJwkxnt7Lx5ScdH5C2UMns2nIYv5FdkU+tP5Db5BzPQaShT8jdyk/yUvEk2DUihlqeW/acfciIOuc5Nft7n+if2ApfnsRGvkyWfVCEXsDrLJB2aG/gkBcZ6yOOxTcnJpPSZaM853q/ya1Mk6ppJUmxapjyFjfn5gl/T6QtcHpjbZk/+7vzZtwJll5b0r0sky2BY/RRgAPdhujr4TJA6AAAAAElFTkSuQmCC', Lm = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1QkVDRkI2QkZFMUYxMUVGOUQ4MkQ5NzRERjJFQUNFQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1QkVDRkI2Q0ZFMUYxMUVGOUQ4MkQ5NzRERjJFQUNFQyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjVCRUNGQjY5RkUxRjExRUY5RDgyRDk3NERGMkVBQ0VDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjVCRUNGQjZBRkUxRjExRUY5RDgyRDk3NERGMkVBQ0VDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8++Qt7aAAAAQhJREFUeNpi/P//PwMtAeOoBQNuARMOcW4kthgQvwHiAmr64BMQLwLifiC+A8SfgdgUiBWBuA6kD039YyAOI8UHTUCcDTX8ARALAvFNIOYEYiEoHxnz4/QCyAc4cCYQb8MjTxQmNpKtgPgbEF+gViRnQ70OAplAfBRqCQgIYAkiTlKD6A8QvwXiuv8Q0AUVj/mPHTwhNYhEgfg5EDMDcQ0Qt0LFlYDYGUsqAiXjdaRmNFD6Nwbi7RTlNCJTwzIgjqNmKjoDzWRLgfgsEBsBsTsQPwHiaCxB9AKIJ5Hig+3QyHsNpfWh4pE4Ivk2Lh/g895iIP4GxKpY5BjRMMUZbbTCGbUANwAIMAD0z8lbj1vA2AAAAABJRU5ErkJggg==', xm = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAAAjCAYAAAA+NeykAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NzI5RTBDRDAwODAxMUYwQjdCRTk3OTNBOEFBNTA4OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NzI5RTBDRTAwODAxMUYwQjdCRTk3OTNBOEFBNTA4OCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc3MjlFMENCMDA4MDExRjBCN0JFOTc5M0E4QUE1MDg4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc3MjlFMENDMDA4MDExRjBCN0JFOTc5M0E4QUE1MDg4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+TvdLDwAAB/JJREFUeNrUmt1uG0UU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', Vm = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAAAjCAYAAAA+NeykAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1N0QyQjlFOTAwODAxMUYwOURDNkVBMDdCMjExMjZDNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1N0QyQjlFQTAwODAxMUYwOURDNkVBMDdCMjExMjZDNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU3RDJCOUU3MDA4MDExRjA5REM2RUEwN0IyMTEyNkM2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU3RDJCOUU4MDA4MDExRjA5REM2RUEwN0IyMTEyNkM2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+aI/hEQAACPNJREFUeNrUmttuJEkR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', Qm = '/low_altitude_interface/assets/tool-dtqh-h-ChMQvbbm.png', Xm = '/low_altitude_interface/assets/tool-dtqh-k0d8YJPn.png', Pm = '/low_altitude_interface/assets/tool-fcky-h-g2pPx-nX.png', Hm = '/low_altitude_interface/assets/tool-fcky-DoR3VSKp.png', Km = '/low_altitude_interface/assets/tool-hxhs-h-D0SoT_bl.png', qm = '/low_altitude_interface/assets/tool-hxhs-BTLFAKSM.png', _m = '/low_altitude_interface/assets/tool-kyhs-h-COekEC6l.png', $m = '/low_altitude_interface/assets/tool-kyhs-DTj2leqD.png', ey = '/low_altitude_interface/assets/tool-kysg-h-DuVHg_gi.png', ty = '/low_altitude_interface/assets/tool-kysg-C223R-4D.png', ny = '/low_altitude_interface/assets/tool-kytc-h-Dq9LwJ2G.png', iy = '/low_altitude_interface/assets/tool-kytc-CdEh1eO-.png', sy = '/low_altitude_interface/assets/tool-qjchs-h-CEfchBME.png', oy = '/low_altitude_interface/assets/tool-qjchs-D0-7IAV_.png', ay = '/low_altitude_interface/assets/tool-qjll-h-NqfESu16.png', ry = '/low_altitude_interface/assets/tool-qjll-D9b7AnW2.png', ly = '/low_altitude_interface/assets/tool-sgzy-h-t_jjxgVM.png', cy = '/low_altitude_interface/assets/tool-sgzy-BjwAxV2S.png', uy = '/low_altitude_interface/assets/tool-tsjs-h-CO9Cq-mF.png', dy = '/low_altitude_interface/assets/tool-tsjs-hA57rgjS.png', py = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozRTI3OUFBQ0YyQTExMUVGQjQ4Nzg0QkFBQjNBNTM1OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozRTI3OUFBREYyQTExMUVGQjQ4Nzg0QkFBQjNBNTM1OSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNFMjc5QUFBRjJBMTExRUZCNDg3ODRCQUFCM0E1MzU5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNFMjc5QUFCRjJBMTExRUZCNDg3ODRCQUFCM0E1MzU5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+JMEDJQAAAqNJREFUeNrUVl1IVFEQ3isLifsjPZS2xi61KVRGIEEZ/UBEyW5GIVJQkPjgU1AEvgS+FPSQRBBBEFEKsS+FVFtKYAlWJD0URZaRi7jl5l+pe3WDrt7Td2TWZu/Pbkg+dOFj5nwzZ845c84MVxFCOJbyy3Ms8efMZkzNjLZC5Be4Vh6xsYcgbgIFBpOKOSVSUexSNDOdaIE4QcN3QJ3L7XvD7DUQd+02B1/FdoHpZDwKccBi3im3138FdmmLZjm8Cj+vaQF1KrYM4imwPcvkl0BljtSrnsKgN+MOpib6iiC6gPU5Jlcu6pKF/kvubM0/ejyKaQFd16yCq4BnEQu4rU5gDDYCbKSUXQPKLQJdBboBeXergAkgCcyaTyC0jFcq07WieNdPyOfAprHh7pOQ54DlFKAK9ifSGTYn9FnS86DrC7lKv6KRROckRCHx8sK/A1uA10CwyLe3j/yaINow7oV+GfppoAPjEMa3ZL0Acxg7jSlKB99cvDo0Ovy1XaZoG6XoLca3ZTDYzksnjHsgttKcCMUIGy954QSJ+D2pHPP5D0Wgf4JeBl2B3gj9oqF/rQX6GSc3lwLSeVYx15vR7ITQDsrgQ4N3HkAvA5qJ3wc4CAPwwZ60KsZ9A5eEPMw4cx2UBGqjXwYisv9UE9VGz3cH2+kN4uoZ94y4UNZCi8daLrHmJvzBuh5wsiPmM/9WynUF4x4StztXJZ9h/EfijjJuMlDaMDT4+XrYEOMROMWuC/y5A11LAQ5CJ3F7GPeYuOOMG8eiPyDDjJuHVaHNsYXvE7fTmB5w+xn3grjqv2h2Gm8TXbEPzQHeOoIbGjvAlVIlp792mltjiOuxWiBBht515WdF//sLYWp28ntFPrWMmz8p/GQfchl41VRo/+1fxW8BBgBiW3D/dN2sHwAAAABJRU5ErkJggg==', Ay = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2QTVEQUJGQkYyQTExMUVGOUVGN0YyNzFFQzZDMjRCNSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2QTVEQUJGQ0YyQTExMUVGOUVGN0YyNzFFQzZDMjRCNSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZBNURBQkY5RjJBMTExRUY5RUY3RjI3MUVDNkMyNEI1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZBNURBQkZBRjJBMTExRUY5RUY3RjI3MUVDNkMyNEI1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+m34f8gAAAp5JREFUeNrUVl1IFFEUnpEFRdOISEtBqSUpsoIQaiMLJFJ2MwyTgiKXHnqKiMDHXhJ6SKKXIAipFWJfWkTTFMEf0MJ9CKOHyECLVhxzyzJHN2jGvX03ztZxZneGIh+68PGd8517z505Z+7dVYUQylqOLGWNh8cpGJ9PtINyCjfmns4Q94PuA7mWkI41JY4baPHlEOg82TtAweLCvBcs3gCKZFie71iimLbUbZqiCVAIe4Bx6Jcpfhx+hMWt0FO5VN7kqZieDRoCDjpUbgzwuZRe95bmF6wq0cTbr0WgYWCny2LfXzX5uynkk239Rx+PatvAMJPpkuu8YX8w1tnfwBDWZHPALirZXaAiTaI7wAgge7cF+AIsAqb9DYwkX7gsy3W4ctM38FNg98jzj5fA14ENlKAW8UE5GTEPbJPsLNhJ21c0MDa3AFpPumz4PFAJjAPeo76iCZp3DdQB/xXs27CvAH3w/fAfyPMCrMD3WJucSr7XX7U53jv6QZboAJXoJfyHMhliLXIS/ChoP60JU46Atcm/3qBzSJPG2frq4jDsN7DLYauwm2HftNxf24BJpsmHS8hKpz4OrC1YdZINQ5yQyR/1zzyGXQ60kn4MUAjvMEeAa5k2C20RfJJp9nPQWFPSHe6ZlvdPHUkd1PxD7EnbSLvAtFHS/I4HLdQZuwVqIlcE60uj0OSNmMPmt1Ot9zGth7Qjbif5KtNfk3aGaQsXT5XN3Iu8D1hyPIGmZroFfvfAFAlAIQyQVs20ftLOMe0TNv0MDjDtJ9JdFSts4y7SqqzlgVbDtGek1bledtiVXxPDraGpMn51NAe9fdC200lOjV5a2+D6g4NJGqADUSQT9No6YZDmNDJNoutG22Q2OM+ia2l/cP7LfxU/BBgAAp3E9kXmPqgAAAAASUVORK5CYII=', gy = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5ODcyRUU3RUYyQTExMUVGODQyMjg3N0I4OTEyNjZBRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5ODcyRUU3RkYyQTExMUVGODQyMjg3N0I4OTEyNjZBRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk4NzJFRTdDRjJBMTExRUY4NDIyODc3Qjg5MTI2NkFGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjk4NzJFRTdERjJBMTExRUY4NDIyODc3Qjg5MTI2NkFGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Sa6bOQAAAvFJREFUeNq0ll9I01EUx7dMa5tambPNNRc6IUlCiKSMwqK/lA9BQWAPCWFpUEYRQk2ChvggRtQyfMiH6KWHiqxgGpb9j9hDZaGuDffHOadZaW7l5n59T92t37bftGRd+HDO795z77n3nnPPJuY4TvQ/21z+h887kgKxEawDK4EayIEMJIMA8IJR4AQ94A14KpFmWoQciEMn8E64T0HUAOUsN9sBdFKZ4lWMg4lxpwF6dYJuZassbWlHhINvY7Yg6QlycC81XbMrIgbBoN8HIU2Qg0BMkDnOPy+BiTMV6yDo10HUJ2DxMaAXzKLRYdN2ygJQMouFXeAOOJchX+WKcfDJ83LD4qw1j6kDOuX+FlAEVCCTxYf/Dr4AM6A5LzDXE8/zLwfD7id0jLeUqnLF+mf/snXMpXcjxjxXXAceV+dX6Omsrxs8Aq+BldZgu56flb2Jdk32+yDqQAFvrRFwFjYGoSxK4vUVMqLbAbqWoQFjK9NDr7cPaADl/iWMly5RbdsbcYJBRxv/BELtu1JdJoHdcehNwE0Los8UMsAYxe4+29wVjFVR/5zfJwhsBj4gisNpZtfEvlfzF6eGbwf6S4AXHHbZby0LO8BL7gMqoANWIIrirrP/RgHTr2Xn7HYKHRP94xhvZnZ7+A+NAmlQ55bTFegd1utpkGtZEOnoA+AQW6dzuqzCWs8hTgAtL8iTlKY1dktrOeR50JKTV9EO2R6aiDE5UzOmdcBNpjLVyz/BD4gU9uNCJaPeZm4ZhBxij6oMNINaUMUCHe8ER5hq/BPkYCAZiKJQgiJQCuo0+ZV2SBPQ9vdebhRaHP0nMV4M3sHeGE5Ta8+FCuhXZ3i0EuDnleM2cBHYKL6Arvcgrzbtz11+7GG42Fk+NFKROwqo6C0QcOBjQV8EbrPHFd0+s/FQ2yGO/lfx8X3DQohi9qMfKnbkMA90aVfUVsOGXn4l2AkUVD3AAxYn2uDNmHL9t83crU/KLzwzNYMNXXkD6P0pwAArdo8TOH0gvAAAAABJRU5ErkJggg==', fy = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4N0I1MkE3RUYyQTExMUVGQTQwRkQ0ODlFRDkyQTU0QSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4N0I1MkE3RkYyQTExMUVGQTQwRkQ0ODlFRDkyQTU0QSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjg3QjUyQTdDRjJBMTExRUZBNDBGRDQ4OUVEOTJBNTRBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjg3QjUyQTdERjJBMTExRUZBNDBGRDQ4OUVEOTJBNTRBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vRiR6QAAAu1JREFUeNq0lm1Ik1EUx7dMa9qbtpXTzCj7YIQIkpVSWdgbKRQYBPohKSwN0ihCqEnQED+IEbWMQUlUEBElKeFULCsriX3IIkpTUtd8TXuhrdozn/5nnM3H7ZmWrAs/znnu27nnnnvOphRFUfE/20zpx/CoPQRiM0gFCSAGaEAYCAYCsIERYAHvwCvwVB2u6pQzoHR70D9sOwlRBLTTPGwD0EWqQ1t9DFj6fxigFwToVrYtiQxrmHBFTqeYH8BrL2Rvxg04nGN2iNAAGRB8guwQxFkB9MApZ0AHURqAzb8BvewrMr8d2UGvAKRMY2MruA/OJq2KsPoYeNH2eeO6hIWPqQM6vf2tIBFEAzXHR5oHX0AHoDXPsXbQn2WXgSfmIXKjjZ7qhiRNy78cHWspb5RYZ/VroKl18Cv0edz3BjwCL0EXGOJTz96ydhGdmubvgygB8dJCAM5gjkEuyEGSvtWMd9tP12JqGahi3Z297SAWZICLGE/bnrp47wQPapr7pB7ItZ+Zm7QqzDsGvYIqC22IPrN7AsYodg/4cJcx5kreGa7McIjpwA4UfjjF8yr4e410c2r47kV/CrCBw/carcs8BhzCWDuIBjrQBRRe1N6us8Szfn1PepRFzk30f8d4Jc/LksaAAmnIzoihK9DfrO2dC7meg0iufwKHeJ+myV4V9noGcRzEeQz8FlzZVlRV3ZMNeQ4Yc3cvrYesdy/EmIbViMkMYK85rNqkHvyCCOEfFyoZpcY73X2QA5xUmaASFIN8DrQ/D46wahoPsiAGA4UXWpAI0kBJXlZsD6QZxF269bFcbnP0n8B4MniN+SbPMz1/oysX+tUpklZFB5SU4xpwAXSDKEDXe1BSm3IKc5Y/9BS78mudVOSOAip682UM2Dno4aCak8u7jfK4u+1Uev+rKLvyYQFEMv/ou4sdGVwBmosPxBVgDmV+HtgFIgEVu0aOEx3wrk+5/tumN3YEnc5b6ZxiDl15GXj/R4ABAFF4ijehs+LkAAAAAElFTkSuQmCC', by = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAAYCAYAAAACqyaBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGQUE4NDM1RkYyNzYxMUVGQjAwMThDQUEwRTZDMDI2MyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGQUE4NDM2MEYyNzYxMUVGQjAwMThDQUEwRTZDMDI2MyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZBQTg0MzVERjI3NjExRUZCMDAxOENBQTBFNkMwMjYzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZBQTg0MzVFRjI3NjExRUZCMDAxOENBQTBFNkMwMjYzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+7rq8cgAAA5lJREFUeNqUVs1rU0EQ33l5JtpWU2MrYlW8FPQm9GRv/gGe/A+8iPQuilBzU1I8KCLoRfGkJ714EK9G0BxbFAVBqG3tJ0lMm7Rp3/rbfbv7dvflpbphMrsz82b2Y+a3S0+f10LGWB5E+HEmWvwfN5Lj5F837ugTrmVMeuPGazyy204YBLSLTgDlsDJlhjPnczcUGc6MW3KmwMxkba/xJBoY74a5nLTYAdVBY6ADwpzDBamPebIfROSsnSy9tEefEyV7ZOvUN4ugjpCLlWuPYgK/QOdBg97m92u0j63WR5zzb+AtrcDKAxkcCsG7kH0BTYBGICPHC5ETROjVt3GH2V3bjHch+wzesHVhGAbeATGRAzXQRcjGM1IrdahpmbFtg72Lj9WZlApuu4z7EXhV+Zo0Gm6llOJmZtRzy0VivVH5lJq63PY+rapy4YqsiKR8/iUJlsFeot/kGQkSLq+00it3N7l28sThDs5qCmdWsM5f5omXE8Rj4U90nywsNlv9JhqaYDzjCCFf/P1n9vRYcQaKO4hZ4qqu42C6r81pDn+V+YVGO1UH3liUWg68YICD9zBEf2GpuXR8dLBcyIf3EOiM1gRBXNtq/Kleb1darR3IaUBKAwvt3BwFwuVoT2V4EepAKl3cMm1tbWtzaCh/u3jk4F04v6C3XWBFFPH3K6utSrcb5THO94Bbe3djhAsEHGEW8NOggJ0SCKfQTTI7D4Ss3e4yBCiPHBuYRpBLQry3F71eWd18iMkMYjHk1aSCEIN+EuG8OpdZPQ86BxpiCWKkklnI19a3HpSOHtrGuLu+sfUMEylayeKcrooudvi7g3AWvDKFRF/BJ8BHvfxnCvFMstUbnVfCMXyUlA+vkk3bVsDVSIOMi044f1IIx8bdvPd3lPFMeEkaEI59MECTFVzfZOAReFXJJol6r8m/wbIQDnZ18pJO3mr/iXCpJO5RxlosEQ7UNHYqsB6HuYAyL0iFYjXIOpBNYVzQ5WXdhA5XTSKcTC6xysh6XyCeHqdWrrbdz4NZsBlMoAynw0npkId00nYOVEG3bZYVkOszJ8vbT7i+7QfoBug+6GzGCXwElVV279tkqTnYnH4+2W0Juuvgj6GbUN+pRwR7i/5N8N2eNx2ln1X6Dcf828o+Q+88RQZfBT0CXVYrfgGbW7CJ+t16qZXLMzfpnwSTCwrsiTgT3Ib8Grob6ItqmGbJ59Yrk7zS5Dagsb8CDABI/cmg52Q33gAAAABJRU5ErkJggg==', hy = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAZCAYAAAC/zUevAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowQzBBQjY0MUYyNzcxMUVGODdDN0Q0RDFCNDE2QjNENCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowQzBBQjY0MkYyNzcxMUVGODdDN0Q0RDFCNDE2QjNENCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjBDMEFCNjNGRjI3NzExRUY4N0M3RDREMUI0MTZCM0Q0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBDMEFCNjQwRjI3NzExRUY4N0M3RDREMUI0MTZCM0Q0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+A8lNIgAAA/xJREFUeNqkVktrVTEQTu6j7b32qVX6wAq+qKAoFutGsaj1B7jQpYIbXakL0RaKglRcqIg77aprf4I7N278D4K46+3t+33uGb8kc3Imp+dW0RyGzEySySQz853or99+qP9oBdAb0BZo4l+NlOKYAoXWWimjMh2RlZPeNMPzvDZ0M5Bv8poqKXoMXZy3Jrve74fPO5EsdB7IRnYiaZIGuqGfRX8RtML2b4HKoIdxHO8Ye+hz7YYOkSo1GsZLeULDp73TpQagG8TYDNij4BeTcV5zDeIH8I8wc0uOZQ+2Zzj+0E6C3rqbUHUXNG814c+B3oGegNb/KieiRmxXp6fO8LwF+PPQP2PdPDoNmXwaOV7xTQ+BXkL3woQrzDl/o+ImGiSTzSVkTCKWtl0C3TUng35NzuHY2rRxzmonK7Uf9NRUD3SLdpBUYDdZ72/CHZgHBY82DroO3YIzQzoNajbTQxtoLZDuY9tP5MKXWeN4JGbsr0eL1YwBNzDvNPqaEgkrklResa9oa4UCW7dBn60d4gTSaSaVoijOyxVTaldAfXZh8xZutVuWzdzolzx71gktjofjtKK7AF0r+DkZd+1q1Z8BQ7qrs+0e+O3Fpc3ZTGRCb901jYD9DpoPnDDhEE5UQMOgBpbV3WaUhlvEs1gstPR0VyYKRT1m1N1dbaq+sPEem8XCURXyNp+OGVQFLSTOMU7YdKpgxqCpAOjXZazlyYxQrZQ7sOk0nD8LxaoZL5UKV3sPVKO52to0DhYRrxIVaevH3B7kXiga4Jf5JqyTrRjqQL+aKZTwTGg9PZV+OPEaDhzBKRZlqaEbPdi770ltfn1qazvaVnEAZipjsQraAW2YmyhBXbQnSs/sqj6Zzvq+Q+0nyuXiK0jtWFdLgI1xIQGrYdzI1PLK1uTS8ub6nqnqKrBciokieBztSqkMmg8d7rKIaWKOvmYDrMVUxi78s4w40NHeMgl6/vPX0oqKm9hmuTTY3+kQTNStIpX5s6rLCNsd8GuMmiRPnw0ah8ci5kBfh0PMJr9zo7OI2aw5xLH1PY7o1NOdSDWvgGC8BfQA8kcIdVKUCzUeMcOatrEtsANnMG+OVICWaaSzCJg8QMKWImbuX7Q5Yo7lIObeabZ3a46YXKLyCWaQctQgJiNbiBNuHvm/p01QThL+g3LP1eLuiOeOQMxHTHHQCiafAhNhci0/3nk54WQDls5BSpwVL5LEFh2XiOmdYHRLEHMV8po7G/9YU1MJ4iWPGJ15qGCcNAV1q7wd8bDpJfNroCxiKtXJr6Cck+/SaU5AJSAtlFSG88Xm7VSh2YHEiAlnoFgRlbn7tZIDMn5L8q93kgib865NkVjZoBiu/FuAAQCifEm49tLj9QAAAABJRU5ErkJggg==', vy = '/low_altitude_interface/assets/bg-footer-deco-left-B-baEonq.png', my = '/low_altitude_interface/assets/bg-footer-deco-right-DYuUvCDA.png', yy = '/low_altitude_interface/assets/bg-footer-deco-mRGOjjVn.png', wy = '/low_altitude_interface/assets/bg-footer-B5yEudHl.png', Ry = '/low_altitude_interface/assets/bg-footer_large-Cfs0YNZ5.png', Iy = '/low_altitude_interface/assets/bg-header-D4zkbBcb.png', Ey = '/low_altitude_interface/assets/bg-header_large-a9_B8Rfz.png', My = '/low_altitude_interface/assets/bg-home-BUOUZhFJ.jpg', Dy = '/low_altitude_interface/assets/bg-login-form-BFD6qJ36.png', Zy = '/low_altitude_interface/assets/bg-login-8YzRAXMa.jpg', Sy = '/low_altitude_interface/assets/bg-masking-C_XrNjNJ.png', Ny = '/low_altitude_interface/assets/bg-text-line-BeXdSvvQ.png', jy = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGoAAAAlCAIAAAAlTet5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNjYzQjU5RUMwRTAxMUVGQTI2RjhEOTQ4ODVBODExNyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNjYzQjU5RkMwRTAxMUVGQTI2RjhEOTQ4ODVBODExNyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM2NjNCNTlDQzBFMDExRUZBMjZGOEQ5NDg4NUE4MTE3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM2NjNCNTlEQzBFMDExRUZBMjZGOEQ5NDg4NUE4MTE3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+l4NLmwAAA7JJREFUeNrsmk2S1DAMhSU7ncwhYMOCJReguBon4iSchTUMnbbFe5KdpKkpqOpZgZNKuZTEnZp88yT/SPru601MeGyt2X55NPzQ1u3QR0WqG9V4B5fFW38V+9feufoPYRTDc7QST6so2uJ39svekze9G+waffqvrL/h+HLr99vn9M+4/5D2p770jfcfvLXaDD9NFe2EX377/OXw0mp1FZ7AWnhpVUY9VJPwzJImSRdNF172482HTxP/mRu68lPKVerVyip26wTtj/+d/5meS8zZ6aT5YmmWPGte2vOEux2f3Z6lPLOtILg2gg3fmAKE7hxfsKsXSataMUSk6SmeT4w4TXdg911uP63Cpv/Si+G5VmRc7wW7BJ8luwznZdxlVFelBqE+j9AVPkvdgV35QRs0PQLa8PgQ/gwhD4HPFsvODtjo0fBlmfRmPlZ4yKPurk4Q0rsy9jH81WFjn5AdRteiVrvuktYsFXqcu/oi0gEiqNGL0T7H4GsN37CxLymjP+LdUXfEpXmVDHw3c4ndGsEaulspQ8a+0kePEactcF5z6UnoDrOWGuzcLzOcdzUCCoLbjK92e+Cpn0/6YgYfNoYRDqfap3Tm6qtteN1INZ910Q4c+4iCwy6sBA5wW+MAsrOi8+rVfHg1P/uD1qkbww4dvgy7Z1KClQU+xr59RSq7HT1i0Tho7HMJYtBoC4cNQrNtgjjXcZe0rz2AT1Y7OTx4ZKjvduJ7dGyh+k58r3PeM/adzns676m+AWNfOfG9xnnPkePhgwvieqrvNc57qu9h51UArFuuOx3WykwycZufuwa6p5OH2zNQ3+kLOBuFbnPHxbgX6AnNSMpl2XLD3CwMpuPmOjqKzcgOyrEmx3d4kDyxNHk2swCfbxaOvNvcyCirDCa9g5g8z0v59UQ6k2+X2BT03BI3Wt0eN9fh7C5epLHVabhNaF7jshch1EhoNrlRiWembQc3SyR8cyOIiDd5t0tjlz0Z3BOaniTOg+d5Q3dkBzh5QdsIUoauPvfZmQUcqRwS6YmJpfDlYQ+vMuiiW1gflBYhq1kbPvGhAw+s7Il0iK5GUu6scUke+6LGZZFpYX1Qnn0MCedlt4WFQ6G72hPpZ4XVocLKNTg7u6dWo5Zk2kFPTywcUi/g2BLpY9f3yX19n/xW3ycHfKFBFg7VmQUcZ3Xp36pLG7637z/+2yurO/uFCmRfhSrXWknNW6y3cFrmwgsLV5uiZcUZDb+5G5j74lH2mSBmIvFzf+0vAQYA9Nag3aL92YEAAAAASUVORK5CYII=', Gy = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNzdEMTQ3RUMwREUxMUVGQjYwMjk0RUYyM0NEREU0NSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNzdEMTQ3RkMwREUxMUVGQjYwMjk0RUYyM0NEREU0NSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkE3N0QxNDdDQzBERTExRUZCNjAyOTRFRjIzQ0RERTQ1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkE3N0QxNDdEQzBERTExRUZCNjAyOTRFRjIzQ0RERTQ1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+kYAhVgAAAeNJREFUeNrslssrhFEYxmckhYWNUVgoRW5RlBIlhZKFOxuUsrPwH4iF7KSULGZFyTAKJQlFIaaE3GLBQjZCTYSVz+/UOzV9jbk0cxppTv16Ot/lPE/fubyf1TAMSzRbnCXKLeoB4kN9odFpWJE2aIdseIMDmF5rtz6GOp41lDWAeSrihGoftz+hjxAOLQEwV9O1C1VyaRn2QYXqgQz4hnpCbOuYgm4xVyadmCx5hRtD1qECJqFAxyLsEp3zNleNvhvpl24+gYp1BMgR3fB1kxBXyIN083QESBB99/PMq2hS7CD6lwG+RFP8PJMm6tYR4Fy06ZeDqgxJl+6ljgAzoi2YDZjMM5FZ6R6yJW911YIFpEO6LtgDG7RCstSDSgKcRDSAVMAiaIBRP0e4+vR22IEzghhhBcC4XApNm9f8BtvUqbgIDoK4QgqAsfqkQ1BiunUvn/0I7uBZipOqiLlQCjWQZXrvAobNNcRnAMybpNR62inMq2sMcBPkWlHT1Qi9psrYzBgrgQJsIrVS6wd54Ticg0amcVwtTthivLpA29Amag/XXKqkSxam99ixWvC3f8s9PxxTLKCJCPl4fmZeggkwAquQKESqfcgpGtRBpFZrYQTNlck1O+IprGIU2wU62o8AAwAw0abQB4JjSQAAAABJRU5ErkJggg==', ky = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5MEZBMkQ0RUYyNzcxMUVGQTc3NUQwQUI0NUY2QTcxQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5MEZBMkQ0RkYyNzcxMUVGQTc3NUQwQUI0NUY2QTcxQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjkwRkEyRDRDRjI3NzExRUZBNzc1RDBBQjQ1RjZBNzFCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjkwRkEyRDRERjI3NzExRUZBNzc1RDBBQjQ1RjZBNzFCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vCdAlQAABR1JREFUeNrMWE9oHFUYf9+bN7OZ2WQ3arO1TZAmIdZEhdhCQlCMUkRthGBKL72ICPXgwerBP4iXqBfx4qWtIoJQtVU8aD14EkRCJUg8pRWRqljdHBKxaXY3O/Pe93yzedO+jjO7s5seOvDtm3n77Xu/932/788OSCnJzXSx8OO195e2swbEnjs+4VtH920B6nBzaKIjOwXIOgADKffm5rJTUO1aiGoA0QhHHyvtK3jWmwGXn7371cpHag41AOwEFGvDMlSLZY4WlQeFwIeV0oh6Pq2BiNiIWUHRNsGEB7CV5JR0KfGEkKMBR6IEdt9q36Lnc1qPGdZsxru2LQTaIqG+E8qhqeJsr2c9C1KOB0Hj4P0z+wsL61Vx/MzCvx+qZz/GJ3kjLEQMzjQA9bjUe2q6+E2xC05IRAVGkEgEF7vyDnnj6Yd6f50ccYe1lSyTc62sxDJYxrSQ7TBwOZeDdcRfaoFctij0eQ48wFGWK5vyO3U/ajMYsykpKf0/lHDNJchioawusyJAa1cE+XhhfVrd50MOPTHuzdsABCXpObtUCaOspqSiZENbKNCgaBa30Yz8iVxmaw41CD0x5MzaVE7WfQw4x+4DY7mX1LybQGwri7uyusyMMDY1ZB/6bVUsr6xjffGi/72a+1FvGIb2ZgiEAgkmB+1Hz10MThkcoloHmqUAliErU1MowXv2lujhgV5YFmp5FfEiAmQpbWYR5trQD0SGrvsk9ntoxSWWIbpMUFb5Mn7d7ZAVRZsdqlFo5CQ1UvUsFY+4ygBBwMn5qk9+UnOW+s6KgcJmoFiLMLeMZGjfXcK5vE2e+3kVjq3Xwdd8yRku8zWpqxP9+N59t5PppTJ9Va/Bjawt00DRJqFuErkhygR3qYy8a6eHBw0eRCUiKhOkz8M9Su8OVVLGjEAwCU7TSE5bWKgBpODgbSO9wSsExawfILFBPLmnhx9W5LVipyYD3fzAjhx/PdRTkXfn3t7gnZIrhjSoOKD/lRPWwjpswK0/6Fp4OjR4cE23YBNxZDgfHPl703m+wq3V8EfD3bWTaizwa4rhgWaKFpnxPJj/vdp13LBmIsFZk0TYCPNNTrgU8qwv6Tkb5P0McEbdf8klvWQD3qsiLeQND1et+GRRSPhLEPgnT/kLSOBCTVgfdFExxSWsaYBcry+SEiVLcddVC60GufNqnA8z80668fKWb3BiFd0wK39rmrzsuyfCr/to9UVfNPYarUqnvMZzb4dEjw6pszckdZgtXVbEyjOXaf4LRwa7K5yeUhFeUxFeoFTmQKLjyfrjV6j3eQ9W53ywF+tgX6pxOC8J+0HpMQmiSIDZBazMrdP8pwl56bqIYym98lVLcS72e2TDkwB+ANbaFlBYdUTtESqxJIjsUXRFwVFRpT7rgv+n0itvuQSqIMWISzbGhcRBpXcmIUmSVi67ruWsOIVjupC6Rn0CI7IaUnW6TyZsFPKlHuWm7VT7aKMoIgKjQGISoFjPHQk3qr2ZGDFrpjY3wAQwMgbM1IcEETp71w1g2Ekti6wTnZAac1ZKawoJXWG0hq+FGxk9sTdKshAaC0ULowbGYtERXzROVNPKgQYVmGUmDZCM5QTUgMyFrVijJRP6GkixtDB4xBPcLVtZKP7M2+lpEn6PsSIs0rjEUl4UoDFirPYAyX7FgyT+r7YpoHiPgjEXknb+8CW4VKa4SWaNMhMkaQMIafJ6RqaMLV3Wag7aBJL5O3ajF9zuBTfbK73/BBgAFzlTEArW/Y8AAAAASUVORK5CYII=', By = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2MzM2RDJFMEYyNzcxMUVGOEIyRUY5RTAzRDZBOEM0NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2MzM2RDJFMUYyNzcxMUVGOEIyRUY5RTAzRDZBOEM0NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjYzMzZEMkRFRjI3NzExRUY4QjJFRjlFMDNENkE4QzQ3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjYzMzZEMkRGRjI3NzExRUY4QjJFRjlFMDNENkE4QzQ3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+lD3xMQAABZZJREFUeNrMWHtsFEUYv9nHLXe93vVdWtqmFVspYIM00igktBpA0LRSaf+wFW1RpCFRgVhKfCTykAglVf4oRUlDTVOLMVIsiX9IDOK7RKXGtgnUKH2H9HGUe/Tu9maduc7iMO7eC/9gk6/TnZv95jff4/d9u0BRFMO9dAn4T0z+C3ejAzD3UZ/QOXB6HlCUm4Mga5RoAQpRgAE6/9ObK9GCitRCHAGgjqDjWM3K1ETbQad77tPSupY2NAcJABgNKCECy3BEeHq0WkybOB6UxJikXHTfSYD4mRGGC4qLEAw+gIhEQrIAiZkDIB8vgFABBUsy4sm8RNYJlDWDxd2/G+K0D5JlgHKRCsaIpfXw1rLMhXEvG0VhBUQ6FKgYZBmOj9ywN9fu+7gVrfES8SGRibWUYFbCWRYOINU9ATCLUuMs7UdrzosiX4BBYDAqIAghthS+d3dd6C1p6fx2ED3joUApwUBhQFwId9ESAGWLNZlEgc+Z8/iujk/Onp20O7/Diz1eeXx43N7p9vp60XIhzmpOIYfgGbdF7bI7gJC4MGMepcR8pmnb/tQkW5HXJzvW1x6vQHNufFgkDjK6kMwRK/k1si9sC7ExxFMxFAjod155qiw1yVqE3OQTeM5y6lB1PZo3aQQ2r8FZEVuIziwjsY7l5IGqqo7unr5veq55iJVMZENILOE0irzj0K6y4tePfN6O7m8RK3lCBXew0gGYoL4tSfGW5Q3bN1RUblzZ53L7DA6Xx+/3QwRIgZJRNJhNRmFhonURxwHsug7meaBRWsImRsAwc8BtF3++ej4vO2WC57kklPJibAyQ/BByaAsFEaSMFvsmpmb7h8ZmfhMEnpdlP8+AgsFACSFSnaf4R/zoYHV5bnbKzj2HP3vtl74hL3GXRLnMS4La9UVz3cnCZZlrt+5t20d0yBRrK3qguCCpTgdyQOJt5iWSUUh7sWL1JqoUqCVCzSBD6WMF2YinslA5WUolAh3gnF6Qc2GQoVhclJfY1byjIS3ZVoYXLL0/bfMHb1ZWmCSRZ05teGPHE4/Xbnn0LYC0LJDEPESijdWlq+4joAQNXgJ6WcaWiUB6f3igquShZZmd86yMdsWsrBgCrIzHhsazr37/65+TKF4M3S11JwSOswaYGzM4nBd8jd2w79/+dkczyTaVvSGdcXpZBqjYEaZnXfK03dXdOzDyY3ZG4uqs9IQn+wdHz41M2EcWZyY/6PH6cNzIGODIxEzP5LRj9KZjbrp4Ve4ulIEDPb9fP7U8N+0R+6x7ilhcJvo105+10B3WIUEbYGWUVTEX23efQ2XDdsvhHl9Xc3ynToOmtL773O70FNsabJ2m018/+9UPA4OEi5wk6N0UL6lx+B+m1gpo4ZOm2m34ZCVFeek/XfmrvevClcbLfwx1J9jM0uKsZAuKpS1Y6dH68s3r1+Rn4Of/Hp3q//JSX+Oly9fej7OabPj59/Y8XU61I5xeHAk6vfJt7klJsBa2HXnePHPT5b0+Nj2FSdDp9EzWv7RhXVJcTIokibH4hKhRs1VuLCxb+3De8PDEzDj0Qz8qwK4HclJzj+19ZkVyfGwOWndGgyQ1SwdgYkei3UWVCLU+ASYgFabFVTeSiWvcxGUOMrqZghvQEax0qJuo/OKjCiQMExAggNReiCZGGC5T0xtADTAKA4xeDzTET9ibbtJgNLVMtY56Qo6a4zXAawEyUDrUdlZmeiIlHAtBSpGqGBJgdNOu1Y6ygUpb2Uf12H7qTUQTkMK8dUICiFbMM42WovFqA3Qs7afiSNZwtxLKQuy9HElPo/E8ZIqwbisr6HwogNSoKgLhtqFBkoR9qw0KiO1RIONCQyQvfBouVXTcpISbZTRIQwRADEE+zyg6Y0iXhZoDEQIJ+zfh/1Z4txe41z7p/SPAALMUlTpa7HdRAAAAAElFTkSuQmCC', Yy = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowNEFBRTA1OEMwRTAxMUVGQTQ5OEM3NUQ1RDUxREEzNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowNEFBRTA1OUMwRTAxMUVGQTQ5OEM3NUQ1RDUxREEzNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA0QUFFMDU2QzBFMDExRUZBNDk4Qzc1RDVENTFEQTM2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA0QUFFMDU3QzBFMDExRUZBNDk4Qzc1RDVENTFEQTM2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+q08ipAAABsZJREFUeNrkV2mIlWUU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', Uy = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NDAxNDY5OEYyNzcxMUVGQjg1RUREMjM0NzY3NDVBQSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NDAxNDY5OUYyNzcxMUVGQjg1RUREMjM0NzY3NDVBQSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU0MDE0Njk2RjI3NzExRUZCODVFREQyMzQ3Njc0NUFBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU0MDE0Njk3RjI3NzExRUZCODVFREQyMzQ3Njc0NUFBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5HDgnAAABYpJREFUeNrMWFuMFFUQvY+entfuLOzOzgoqyCoJcQVxFYyRD8NDEbKR+IkJMUb8MCF+gCbin4l//hAjKjE+IsYPH8QfEAQ1ED9IxBc+eEhA3Ud0F5YZd6a3+z7K6km3Xu72zM6YYOik0re7btU9t6puVXVTACDX0sXINXY58eC5PV8n8elVWjfRLS88MfgvoAZAqEE2QEgY0wabAeMOEQ+SgDkNwMTEIqLGnVjKoYm8OVcn3GdYy2mgLAbCI2JbHygNFbJ8G6VkkQb44fKU2vXG4fGjFqi6/JbVxcFiwdnJGR3UmvxWC9SeV/b/+S7ylEEkCRRrAohHgN1H7utZn0/TvUrru6XSJa1hdSHHPn74nrkrkZ826f47Cku6O/gRnLNGSD0XZW5PO/Tlx9YWt4S6kFKRXpZg9SsAUePdP2DCRToz7HlUTgKhyzVffR+OQ+rp5M8gP2vSgqL7bMz3fHXSF3o8HGdSdCfyM5FOJ1pjRmwmWSgGlIqEM1qpfiEU8abl8J6DE4+PXfR3hc+g9VLkdyDlI+rAdytD3vjl4O3XcG61Jk+Fz1KqUgKgGRZqFEOmhbJTnjrlOjRc/NaNgx1PfnS8svehFZ3zOKUh6C4jJvjFivgcY6frw+OVd9Yty29mFO4NBBClYTgCpK1YorMlxti3Tmyln4andwe4SyTalaWPPrg8v/3EOe/Tqi9VXxdfEIHqmpNj13mBcr694B1cuzS3tbeTPYUyLJQ9O+a/FMVZyrIObfeU4QL+Gc/XOxb28E1oqZIQkOrv5Rs7XbJp1eL0kC/hl3DnyFvEKOlYVORFLbVfqcKZQMIfI5Pqkx9HxDeGqxLd1SgPJeaj02PiHNLueIcOI6n1SzPrEEAeNQ+EAlJCeH7ViQvB/smqvhS5RCB5jSzSDiCwyAx4Fw+OU67K83mX3mYKobWGEYwXAa/jtDIzNCodSYDAyKJJRIz4cvFIM8fary/ri7vRYxy0th5op3SYoOKTIKN7DAoTNklx0DcFwQz5+dkUmeMJMmFkY2WRDawtQHUwpRxcX8rrzRg7C3xFR+t5UkAuFAgUGUUBcDkphUAXFugGDWQym4KblSajFz32wdgU/craGLQTQ6ZJdV9O9Zdy+tV6xKoweOnEaJUfxRPkjNfYdzVJK6FQmkN2Xl6tnPTpie6MHkgz6EeA/cWMXsUJ2zY8xT+bzWUtNWgFLp8O0AwhlT04cPay81aXI+/UUrkIphy7ES1X8wVMFxx51/mys+9SjbwXy2Wp2NFWg9bsyAupltUjFOi536fd93tSwRqXyHXY/WIEuYeijdWtmQK5nGnoLrkwMVJL77shI29xKKxA3o1WQaWt5qEZFR9P0yi+mI8r9vbx2nYM5oEAs4sENmIc67qra4L86lLd7RA91OfIxUqSHk3q+ak8W1Js5DJq9ULOlOCv+wFGcaALUsiBcBxSRTpHkD8dJb6QpsvKPRTzZaCWoLt6w3FVsDetotpW6biihPxFs8eyCnZzLYcogW6gdEIw9wufuSetAGWC8FqFZF50lb+BAvThu4pizkHPyR34ry5LBIcKD+P9S6vBInZ+Ci2AYE8j/Ry5U0RWpE2AxJl81tJBrMwdZ16VkPTM5o4l8HWTsgGtlg5l7NKPex5jblw848W4FbixriAimQCwpdKhjcV8Y56wdi+NRcw6Z54kbbjNj8aq1dJhgzEVyyh+qGGd2ILacpkpF8/1I1BBAqiWAMlImBhm58YidnwQo/21AcVWsl3XFBBYO6JWYAorbyW1E2a3ac+NdZhuhlaCWhuNlWkJexGwvkST8hht0M7YLUhTl9lflOZxT/qUtj+H2/mUbrkfMkHpJr0wzJJYG/1sIO10jEl/Kf6X3zGzZWpylcA0vei19kvvbwEGAC7xDSkG3qw/AAAAAElFTkSuQmCC', Ty = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowQjFDNDg5NkYyNzgxMUVGOTQ3NEEwRkFGMUJENTNBOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowQjFDNDg5N0YyNzgxMUVGOTQ3NEEwRkFGMUJENTNBOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjBCMUM0ODk0RjI3ODExRUY5NDc0QTBGQUYxQkQ1M0E4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBCMUM0ODk1RjI3ODExRUY5NDc0QTBGQUYxQkQ1M0E4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Du3D/QAABgZJREFUeNrMWHtsFEUY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', Jy = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGOTU1MkVFREMwREYxMUVGQkE5QkYyQkUxQzQzQkYzMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGOTU1MkVFRUMwREYxMUVGQkE5QkYyQkUxQzQzQkYzMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY5NTUyRUVCQzBERjExRUZCQTlCRjJCRTFDNDNCRjMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY5NTUyRUVDQzBERjExRUZCQTlCRjJCRTFDNDNCRjMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/7vDTgAAAYVJREFUeNpi/P//P8NAAiaGAQajDmAhVYP3mv8KQKociH2BWBqIvwHxCSCeDsRrt4YwkpSoGElJhEDL/YHUMiDmwqFkLRBHAx3xk+pRALTcFEitglp+AYhDgVgFiM2AeDIQ/wPiYCCeRpMQADrgGJCyBOK9IC66L4HyoVAHgoAZUP401UIAaLgS1HKQa9OwBTFQbDWQ2gTlxlA7CnSg9DWgRffwqNsKpbWp7QAhKP2GgLpXUFpktCAiOxcAExwvkKqCZi9mqLAEEKsD8UdoFsQFRKDx/xWIz0DF/gLxKSBuA6afz8SUhB1AnIXDAn4gtifCY9xo6pyAmA+Is4lxgCWUngfEl6kQyrpAnIRkLkEHwNLFZmCQbaDUdmCUBkAdwESVygjJYHlokE4FOvThQOQCkOWl2OKVXg5gQ6NHW0R0d8BfNJo+TTIksACIxaE0/R0AzHqXSan3yXGAOTCvUyOazUl1wCUg1gfiCiqnt0vEOqAESutR2fISipvlo+XAsHQAQIABADaTZKN0zPqsAAAAAElFTkSuQmCC', Cy = '/low_altitude_interface/assets/logo-U542v5cr.png', Oy = '/low_altitude_interface/assets/module-aid-Bw8qh3iw.png', zy = '/low_altitude_interface/assets/module-area-B1n7Qz4I.png', Wy = '/low_altitude_interface/assets/module-flight-BCitDKmg.png', Fy = '/low_altitude_interface/assets/module-info-CtAUYRHk.png', Ly = '/low_altitude_interface/assets/module-monitor-CC6MnDQl.png', xy = '/low_altitude_interface/assets/module-scene-DWutJJwJ.png', Vy = '/low_altitude_interface/assets/user-bg-CR5-MoDt.png', Qy = '/low_altitude_interface/assets/bg-uav-CWYU6i_C.webm', Xy = '/low_altitude_interface/assets/alert-bg-dl-CafDf2Kq.png', Py = '/low_altitude_interface/assets/alert-bg-ky-DiCvAlB-.png', Hy = '/low_altitude_interface/assets/alert-bg-ph-M5eBTqpG.png', Ky = '/low_altitude_interface/assets/alert-bg-pz-afXq_Fxv.png', qy = '/low_altitude_interface/assets/alert-bg-tq-CDH2j944.png', _y = '/low_altitude_interface/assets/basemap-dark-h-CTlAwCE7.png', $y = '/low_altitude_interface/assets/basemap-dark-Dw8xSkea.png', ew = '/low_altitude_interface/assets/basemap-light-h-fUxeO3T4.png', tw = '/low_altitude_interface/assets/basemap-light-TAOSJTze.png', nw = '/low_altitude_interface/assets/basemap-rs-h-B2l6S6B-.png', iw = '/low_altitude_interface/assets/basemap-rs-BjNVzNuN.png', sw = '/low_altitude_interface/assets/bg-chart-title-Dbvi_gbJ.png', ow = '/low_altitude_interface/assets/bg-des-BVoElkIM.png', aw = '/low_altitude_interface/assets/bg-dialog-l-p830com7.png', rw = '/low_altitude_interface/assets/bg-dialog-s-Ekpi1P4n.png', lw = '/low_altitude_interface/assets/bg-dialog-wide-CuwsgkqW.png', cw = '/low_altitude_interface/assets/bg-dialog-B9h4t3Rk.png', uw = '/low_altitude_interface/assets/bg-fxjhzs-rLgfJ7mr.png', dw = '/low_altitude_interface/assets/bg-gjzs-DxhxYXDI.png', pw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGkAAAAcCAYAAABibZFIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMEFFRTkzQkYyNzMxMUVGOUQ4MTk3NDMwNDRDQzk4RiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMEFFRTkzQ0YyNzMxMUVGOUQ4MTk3NDMwNDRDQzk4RiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkIwQUVFOTM5RjI3MzExRUY5RDgxOTc0MzA0NENDOThGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkIwQUVFOTNBRjI3MzExRUY5RDgxOTc0MzA0NENDOThGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+iEaBZgAAAo9JREFUeNrsms9rE0EUx+dNo0Isil5ExTaSFIRaBQ8iCCIKm5NH/wLx6sGreBBvPfkv+B94rSJ6KyIIhR6EWhEjKlJYmm6yu9nNjt+pbEjS2RFB+kTeg/kR8nYZ3ifvO292Q3eW3ytrNOrU6PP5+fwuhsdoJ5TYflsf7cm924sPqArS0ny+WBi12tmaeRrF9EMps/s9jVEs5zQOl9TY/cxef8d1BL/xNdDEd+OjmbyH09dMraHqfsax3unRONZa5W9+EwvX3OyJ5eg6Q3WV1e5jVq95SN7qp7S+A0Akv+r9N6Pq6L8ik4ba49aOEvog0WKyQrfQr9ipExKkbhaJeDmM9CeJFlcmkYX0vBIS7Pogo2/DQmUSLRarAdIZjC99kNrxQG1KrNikbg79O+xH2z5IQbevNyRabJCapdQ5IWE/ahSFOtXt27JbjKmyW/BCslKXZLS56yrGUTDMoh3A7K0PUtBLSaSOyeiX1L2y5yMnJEjdDIYbYURSNPwDpXdVJl3JhipOM+pJtHgSCZCa5SG2ClIQD+QpA2NVZx9kf4HUffZCimKBxJZGhhampW4C0lIjP2aMuhj2dEfCxbYfNb2QYDfTnDo4I+USLRY7CEhW7l77IAX9VKSOcT9qoH+D/ajng9Te7gkkxvNRyyV1I0gXGvm5YaGORAltSbhYz0crlZCs1CVSenMCOmoFD23NC0newrJL3QvsR87npRpSdwjjtTDSHyVcbOejSqkrM+nqIKcwy1Ui4WIxDbk7azPJBymIU3kLy5dF+jSGDUjddx+kdjfWsh+xnY/8UldCmksztSPRYqnqjiOTLmH2zOdm/xy53Do5fIjx8H8iIH/Z708DXzF3W4j2CFK36nP6KcAAwkXP/o83u1cAAAAASUVORK5CYII=', Aw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAAAcCAYAAACNr/p2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCOERFRjMxMUYyNzMxMUVGQkZGN0Q2MEUyRkJCMjFGRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCOERFRjMxMkYyNzMxMUVGQkZGN0Q2MEUyRkJCMjFGRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkI4REVGMzBGRjI3MzExRUZCRkY3RDYwRTJGQkIyMUZGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkI4REVGMzEwRjI3MzExRUZCRkY3RDYwRTJGQkIyMUZGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+cXLbLAAAAotJREFUeNrsWs1qFEEQrupkx6BBJAY9SCT+IngInjwoepDoA4gP4At48KQHbx68Kh59AvUFkiAE8eJNFsWDxp+AIBLdZTczuzM9M+03ie5OJt2rSJj2UB90VzFbMwz1bX9V3bt8//HrW0R0B2M3CerGGsbtG9dOP3IFMAiKqJE+JDbd4oIxww/NYCoMDy6aUsBvf8t95XvM8DnV2GFcMfHWOGs8b7vfHsvumEEsb38P6/PY8q7V3JTe35mLajzR5ARNz0xn15Wi8yCpaSNIYXzGwyfly1w/1vu8Fsb8Cu5VV0xB0CLlfFzS5QfdHr+HuTyaICME+UI7VKuQwbkHT95MuQhaBkEHoImBpKt+5IayOOVVuJfsBAU6hH1JuZqVdPlBFLtlTv2ykDklMucJnehvCJJGwWc39z3LaS/q0CkXQUWrl6MW7ZN0+UE/sa+iTYICXeydllCHZBV5QtgfRdAmFiBzxyRVftAK1QeYC5C5XS6CliBxRyrXBDVBp1C5lFtwz9kJCvRXzO8gc4ckXX7QS2ilKnPV1bLAcqrgDd1IFXXoyiiCimMfqUOe0I74izF0EnXooIugFyBoCmNC0lU/QE7e1/wR7rydoEDHmJ+DoKOSLj+IYl4py5ytY1vkXInM+ZK5cGM/NA+ZYydBWEEnJFXeVlA7zWgM7pyVINPQb2E6IGm/pMsPUIcG3ZxrU1rInLTbnrBe+pXVSZD8yuoPrVB9MkRnUYf2uAh6BoIOw45JuuoHalCSaP4G96KVINShHzBNyNyMpMsPegltyNyog1GROY/ohOqPBD3FCjrD0s15QZxS8UfS2XHnsUNDN1k3bnI2fg87pn8niSv2v4HZ4bid3xJh3P0pwAAachoXQBH3cgAAAABJRU5ErkJggg==', gw = '/low_altitude_interface/assets/bg-plan-h-BWrXvpO2.png', fw = '/low_altitude_interface/assets/bg-plan-BYgZdbxv.png', bw = '/low_altitude_interface/assets/bg-plate-BQPsxBPA.png', hw = '/low_altitude_interface/assets/bg-rank-1-DNlHjgIH.png', vw = '/low_altitude_interface/assets/bg-rank-2-BJdSA4h3.png', mw = '/low_altitude_interface/assets/bg-rank-3-DEuyfWgu.png', yw = '/low_altitude_interface/assets/bg-table-row-DDA4tILq.png', ww = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKMAAAAtCAYAAADC1tsoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDQkE4MzI1M0YyNzMxMUVGOUVBMkQ0OUIxMTk5RERGNSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDQkE4MzI1NEYyNzMxMUVGOUVBMkQ0OUIxMTk5RERGNSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkNCQTgzMjUxRjI3MzExRUY5RUEyRDQ5QjExOTlEREY1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNCQTgzMjUyRjI3MzExRUY5RUEyRDQ5QjExOTlEREY1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+LW4YkgAABZpJREFUeNrsXUuL1EAQzuqsL8QXuCDIiqiwILP4M7z5S7z4Nxa9ehM8evCgHtx/4WEQBfGBelHRgwiyzk7Kykx60ulnddIzmc5UsGaSdHeSyXypqq/6c3bj0cvvmWfZRBugbUj7QNoGx1hfPzAcV23zHb9JG6Xd2wfE6/xfNQLEJlS9QToazDbK13q7aIH54eVjSf1AOpPoB+r4ens1Vj+maXztnIZ95jHVvuo8huvEfXt3b83vycDzZRxFO4b2Fy3PeMkkCGUSzuaAIQBQ+1LCAAhkILrGVv3NwNH3mQFY9fUA0PJwyMuA4BXzdQYiKAgzAhBkF6p7OBmgdQDKAFK2PV5MHW/tYwMB6KDUz2f2ZrqnVc5XA67iMcU1AmhhhwLGfwxADwClGyvFXYP3Uo4JShsFgODzhmGgNAKQNKYEW8OQXY8gNDAeL0P0WgEQlAYdgO7wawIgKH1dbWDN/3zh1eyRzGFbB5PPm5nApHlWh7edH1d5AChgLMjDCbTJ+uV/qncjArBp/ucAWkwCQh9DJyBNQ3ZomN4MYJ39Cb8UAFLzv4UREPM4MpmwjHGeJ1bIbpgznuwDcYmb/+kkoxUBka4pKNezhO3WYKqFURoBcTJ07/XRwXgK7bD/AIQaGCkERAOuJ/8zh6n4BMSUk4XkjDFDNpmhE8F4Bu1bWgAExcvVC9AxCQiACci+AjTFUxAL0JHYrI2AOB8GEkHyPSBhYDyH9mldCtDtCUhaBWgTMEJYNp0g+WeDfGAsyMtptIO1LkAvk4AQQLnoAjTpASGkFVSvmREJzNlVKXYvlIBYSysNC9CkWl5gAbohm7UCsEHIdqUV1Lpn1qLofaHLYncoAamH3y4ISKQCdAgBcYoWqAVoWsgmTytmlPCuPvR+MG6h/Vw1ArLY/M8fdlddAdO2AO0bYydpjofRQ+goYLyE9iElAsIKmObTfKH5H+VhNKVETT3jNtrz5AnImilgQgiIL2cMeRjD8mjz7IsNjOfRjsRi0qyAoYyJXDMMqGs2JSDO8Esog1EJzGW037EAyAqYbGkKmGAC4rkXITNHuic0TBBYopoLjFfQfrECJj0FzEIISFD+ZyeEtpTLB8ZraK9YAZOeAiY6AaHMMBEqEtoxAqYDd9BesAImPQVMWwJCjUL2emwAAAlsupgGvIH2hRUwCSpgnKGWTtyc+Z+jqmHkCuCvE9vAeLXIF7HfmBUwCSpgWhagfQQEVBy4plU9aZppfnqgEJAiRH9lBUy6CphlEpCQOrEaKU3LAOrh9yauvGcFTJoKmJA82lkbDCUgLQBYB2P9wEN8e8wKmDQVMKEF6DgERJ/aCwGg7hmrA+/i5ltWwCSqgOmQgJj0iY3AWB6n+G8GF3H7Mytg0lTABOV/1mlVYvi1FK5bgnH+oYf4+m52TlbApKmAiVCAjpT/NQJjns8/xi6+vGYFTLoKmCgFaEVPsGgA6mF6dtYhvo5YAZO2AqZJ/qcTkG5+t2GQVzelAOMTVsCkq4Ax539+oUqXABTLnXv7GxKBgSG+j1gBk64CpmsCEitn3MYb92c6FcgKmLQVMB0SkDZeUS7tYIiGEStgUlfAxCtAL3t59uA2TD0jTGdeYMQKmH4oYABWH3zKMv3t9hmBgaLGCPusgOmPAibFpcwZp+RljxUw/VHAJAlGvOGbaNdx/Q0rYPqjgEllKckLlJ4x38EP+RHXD1gB0x8FTKphupiTHrEChglIl+RFzMCUxW5WwPRJAZMmGHPYwi/qBytguADdERCnNUaRMz7Etad4X+6zAkYrQIthRTU2LxuL+kNetID462Ez2V1eInZSXmLRR6xPpuNmH2AitrOqrbBDyeTt4ncyx+U+sS5MbMt9D6V9Y6V9rJxjrJzP9C6uNbdsg/RZxLu6L5P2g/QU1v762n8BBgADwkWhn2vPhAAAAABJRU5ErkJggg==', Rw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKMAAAAtCAYAAADC1tsoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEMzQzRkMzN0YyNzMxMUVGQjI1OEI5QUI1N0U4NUZFRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEMzQzRkMzOEYyNzMxMUVGQjI1OEI5QUI1N0U4NUZFRSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQzNDNGQzM1RjI3MzExRUZCMjU4QjlBQjU3RTg1RkVFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQzNDNGQzM2RjI3MzExRUZCMjU4QjlBQjU3RTg1RkVFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EpEU6QAABARJREFUeNrsnc9r1EAUxyeb7CrFinhQULyoiL/x0L/AkwdB8ODZ/0DQP8G7B/Eo/gviQezBP8C7IiIqQlusgkKVtrTdzfM7mUnyki67W22S/fF9dGbeTN7MZGY/neZlm0zw7NUPQ9klgc5IEkmue0XSXKLbOpKauWJdx0e+KBBfSXRbkvcl/hxEpI9NEgWi+1DtoyzYVZa3H4irFIgUytJzlqRv0X1LbuOa0/a5TToPrkyS8/Bjgt5FsuPbz+wfP1jI5isid31FRgRQAyZDADQjAGiGAGgGAGgGAGg0PP3Ksv6KAA6xzwAcZm9/cQ5A6aBoqzxewtiPwL0DaAjgSPa2dAfxHNItbU8YCWAdAJbtYygddZmQ1ZtpGAlgbQBq+/Q6NUTaFT3fswYjAWwEwOIcur/YHRzsyqxdMxLAsQAwH4NID8lB6BvS56IxIoAEsGIA9Zx0ER1B+ktk92cXEUACWDGAWYribZTOF8c/BTASwIkBUNfZRjKHXIi0N9EODAGcSADL4+8hOgR1zUzarR0COBUA6vndRnoYmbWJWBkJ4NQBqOtvIjoKdcmMK4wEcKoB1J/fOg6dGTsHhgDODICqDVwrGjkxFrd2COBMAqjzW9AiZOeR/VM7jARw5gEs2Zl1HDheG4wEkACWANRtWE/6JLRPlcFIAAngAAA1Bz+hXdj3a0YCSABHBFDdyJFVmNzcFxgJIAH8BwA1CxbG0/ZrQei9PcNIAAngfwKYtWfsIwjOeTmF8HUkGAkgAdxHAMuyinB2IIwEkABWCKCWZYTzCK8LMBJAAlgTgFrsinin4MAUnkUggASwWgC1fEa4rAuCpy+/E0ACWBeAWlr+pve1F49u/C6tjASQAFYOoJYY4QvCRYQ3CYyx6pUAEsCKASzLR4RLGYwEkADWDKCWDwhXlQNDAAlgrQBqeYdwu+RNE0AC2Ii8RbiSedNPni8H7lwJIAFsRL4hLMCjXokkTl8Omb8TigASwAZWx5XMmyaABLBhGBcdjASQADYL43XnwMRCAAlg0zDey256+8kOUi+GABLAGuU9wrlb9xejKI6FKyABbEzgRW8CxCULJGCMCSABHAsnxt30dj+tdE4IIAFsBMY4Fq6ABHAcYLybOzDF3ZMIIAFsaGUs7mQkBJAA1iwbCMcSB8bPlf1iMBT7XIyD0vi93wK/YqZ72bX814ct8ceML7PHvH2Y6Ma0fJuht295Pekn2RNEkDp7+zxOmrZhG/oXBFm7tjsvayttpG17DDZt/88eHZfaZ3rE1u3kdrCx24Ql/Sb1Or7PyL/ON1J1bT40bm8/OxZ37vkYQze+5HnfbKzG7RuYzIdx/8HsdTcHfsJTPTClvQlnWeBJpzA+/CvAANFKI/Dj3Gb7AAAAAElFTkSuQmCC', Iw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACcAAAAnCAYAAACMo1E1AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpENDI2NEJGQkYyNjkxMUVGQTcyRUE4NzUxOEM0NjJDMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpENDI2NEJGQ0YyNjkxMUVGQTcyRUE4NzUxOEM0NjJDMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ0MjY0QkY5RjI2OTExRUZBNzJFQTg3NTE4QzQ2MkMzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ0MjY0QkZBRjI2OTExRUZBNzJFQTg3NTE4QzQ2MkMzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+MvnURQAACYhJREFUeNrMWM9vJEcV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', Ew = '/low_altitude_interface/assets/bg-title-DIx-zQBE.png', Mw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAAAxCAYAAABznEEcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4RjkxQkRGMUYyNjkxMUVGOUEwRUFDQjZGQ0M3RTUzNyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4RjkxQkRGMkYyNjkxMUVGOUEwRUFDQjZGQ0M3RTUzNyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjhGOTFCREVGRjI2OTExRUY5QTBFQUNCNkZDQzdFNTM3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjhGOTFCREYwRjI2OTExRUY5QTBFQUNCNkZDQzdFNTM3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+E9dLMwAAB69JREFUeNqsWltvG0UU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', Dw = '/low_altitude_interface/assets/icon-cube-1-xizbgil2.png', Zw = '/low_altitude_interface/assets/icon-cube-2-yg8Q6nz5.png', Sw = '/low_altitude_interface/assets/icon-cube-3-pcM6u2wP.png', Nw = '/low_altitude_interface/assets/icon-cube-4-BS6eLMgd.png', jw = '/low_altitude_interface/assets/icon-cube-5-DNapFerj.png', Gw = '/low_altitude_interface/assets/icon-cube-6-CKysJ3Ds.png', kw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAAAvCAYAAABKQCL3AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMzFGRjU0MkYyNjkxMUVGQThBNUYyQ0Y1MTk0MTUyRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMzFGRjU0M0YyNjkxMUVGQThBNUYyQ0Y1MTk0MTUyRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEzMUZGNTQwRjI2OTExRUZBOEE1RjJDRjUxOTQxNTJGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEzMUZGNTQxRjI2OTExRUZBOEE1RjJDRjUxOTQxNTJGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NBK3ZgAACDlJREFUeNrMWt1vFccV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', Bw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1RDE0QzY1QkYyQTAxMUVGOURFMUFCMjM0MDk5MzBBOSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1RDE0QzY1Q0YyQTAxMUVGOURFMUFCMjM0MDk5MzBBOSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjVEMTRDNjU5RjJBMDExRUY5REUxQUIyMzQwOTkzMEE5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjVEMTRDNjVBRjJBMDExRUY5REUxQUIyMzQwOTkzMEE5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Rx+HgQAAAMVJREFUeNpi+P//PwMBzA/E64D4JLI4AxEapf4jwH6YOBMDftABxIZA7AzlOwDxeiBmxWdTDpJNIL47Ep+LBYdN8UA8GYn/FohloS54D8TfsNkU9B83wBk4jng0dQExKzaNFng01aC7DMZQAuLfODRNwxZ4IEIViN/g0DQHV6iDiDs4NK3DlzAYgcQXYPByo0XHdiD2gooLAfE/NPmnIN2/0Gw6DjXVEk9g3QYlgEtALAk16T40WYGAIBB/BmJsyfIdQIABAEPv8EzRXYnWAAAAAElFTkSuQmCC', Yw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3QTQ5QzlCMkMwRjkxMUVGOTBBOUE2RjQxODVBRjFFRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3QTQ5QzlCM0MwRjkxMUVGOTBBOUE2RjQxODVBRjFFRSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdBNDlDOUIwQzBGOTExRUY5MEE5QTZGNDE4NUFGMUVFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdBNDlDOUIxQzBGOTExRUY5MEE5QTZGNDE4NUFGMUVFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+4TnsbAAABDxJREFUeNrcmVtsDGEUx78Z06JIUF11TUjKgzaVRlXbp23CQ0sibhG8ShqXkJCUSLwg1Qiiuk/0BXWLBw+8IC4PlBKJlgf3hLYujVVVe2lnO/6nPdOM1dr5ZndncZLfS2em33/PnDnfOedTekVCbBrIA3PAZDCW/94NPoEXoAW0RT+oGYbUQkocgovBBrAYeMBbFuQHIb5nFJjIP2gW+AyugzOg0Q3BGlgHdoFx4CZ4CN6BWCsrYCYoBGXgOzgIzkK0ngzBXlAH+sAF8CTOMMoHa9gJmyH6VqIE02s9BNaCE+arTKBRaG1kJ+yE8FA8grPBVRBk7/4QybExYAvIABUQ/cGJ4Nn8gdwDF4U7RiFSSh8yRL+WETwV3OGP6opw1yr4o/RCdJsdwSM5TilvXhKpsVWc14shOmy9oA5x8xEQSKFYwWuThqPRF9QhUtdqcFyk3kjDSl1RvMOFBOXDZnA5CanLqS0CKyg8zM1Fs1ykHUy3K1Z79Giv8HjmxSlIEeGwX8/JqRzm+n2wjLWdsgqmbbMKnLO9lMezICE+DIdDMe6glFqF0DgNLxuqZbcZJ7XdBgJdohcBFQ+trY/13NztMVZ6wtqKrR5eD25LeaanB+WO4dyzHz826V7vfpt332KN90zBS8AxyVeJMqjPkVajvb0xUl5eLfEIVYTbTA9PB1lcItq3EEIvEpFX6/c/lRQrWFsW4ni6yjvKGxv17O+CnaCq2WplZb7sS+EGIY88nAPaHXzdzjwsxCR1+fJ9Ij39QF9t7QOJ56iuyNG4vfFLLxsMKkLT6MMzhKIoso+rXu8e/ODqPp/P7ib1lfpFjVNG0IFg0S94IIc7MrW0dDcePhzx+e7YWZGaW83xgsFghAXHt9UVFOzgUtZ2U9nFzaFsDI+B6IDR0nLSuVpFMTo77YbjaNChces9X3qxUCgNu9W3SH39DZcKoQmUjymtveQOQz6Gg8ERLlZupPGVxp3FbI5lQ0qwrrslVmGNzeThVooN6Tge8LBbgmf2x69htJrV2jWeyMjvdO5YIWscbJEauD2SExwOuyXYyxoHBTfyrCv/L/Qwaeo2OyHVUlzU8CDDfi3hjodJUw11G9Fd81mQBopsF/CRyPgkiy1iTQ3Wnc40ylGbwHlOdYEYIfEJgjuSKJbmbDQkXGsdxw41+fFx3NSkuMWnprgZYjf9d6MqumEpd6kVKRBbwWsvixY7nIdNo62QCpu74h8Yt5o2RQwMtAM86wok8QPbKmwMtNUY/4geLOFhRh3PupKRuup4rlfyJ7F2PGy1Mv7HOodIog5lKM/SocxNW2Wbg2MvmsDQsRcdHtIiTeC9sHfsNQMs5B9P2y0dezUk69grenHzYJGmRpk8N6BxwRfONGaKzOTiexZfo6rLPFg03DwJtRp5jkavc8XAyVMG/51Onejo9jl4xm/i11cmKfinAAMA9QmudzoC8G4AAAAASUVORK5CYII=', Uw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxODJGNEY3MUYyNzkxMUVGQURCRURCMjg0MzU1OTEzMSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxODJGNEY3MkYyNzkxMUVGQURCRURCMjg0MzU1OTEzMSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4MkY0RjZGRjI3OTExRUZBREJFREIyODQzNTU5MTMxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4MkY0RjcwRjI3OTExRUZBREJFREIyODQzNTU5MTMxIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+khPTRAAAAbVJREFUeNrslcsrRFEYwGc8xjupaYoQGaSR10YeiTJ2ZKMszQILG1ngH5AVsZaFLCw1YaWJRk2xUdSERJTyKilZyLh+p446TefOrTtNWcytX9853znf85wz4zQMw5HKz5kOkJIAOxGHCzEPQ+CGKGwOdjq2kg6A8xLECXg1y2sEmVAVGTaqXlecb8MCXMj5OAmM2K4AYw/iSU43yHZM6jNlm+rgCH2P3QoqlXHwb4DDmAwgvvJkWnSvjBfJvFpWMIwYkPoH1SDLpBUFiCZwyT05kE2mQdaOGbdDPVwyv0Y2KOa7lmeA0RJiRhO7D+7gxqTCL/CQyLtVi0ZN9OKu3yJDJutzqnNtBWTfgYgkOIdpnKyyL770M/TN8Zt1FXRbHPQKzv1Iv6IzhHP0Xii0qqAFkQ8xmYAY50IeCGPxFmpwOMneKREQGqEUDsDHWlQbAIMyxCGIPj/CK7xJRG8/oQj24QUqoBiHp9iGGVdBgHnI7Jr2Q63E7PuGNnkdfRDGuajwCvbgI9E7CFj0X5TbBcvQqiSlnt25fEPaAG5Zuu4HSpzJLPRKp8+aPcLfT/of7X8F+BVgAAeim7Tts/SdAAAAAElFTkSuQmCC', Tw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAAAuCAYAAACBHPFSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3RDg4N0E4N0YyNjkxMUVGOTkzM0I3MjgxMjQ3MThEQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3RDg4N0E4OEYyNjkxMUVGOTkzM0I3MjgxMjQ3MThEQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdEODg3QTg1RjI2OTExRUY5OTMzQjcyODEyNDcxOERCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdEODg3QTg2RjI2OTExRUY5OTMzQjcyODEyNDcxOERCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+AoNh7AAABuRJREFUeNq0WstvG0UY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', Jw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4RTA2OUM3NkMwRjkxMUVGQTRFQkIwNjQxRTMzNzNBRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4RTA2OUM3N0MwRjkxMUVGQTRFQkIwNjQxRTMzNzNBRCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjhFMDY5Qzc0QzBGOTExRUZBNEVCQjA2NDFFMzM3M0FEIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjhFMDY5Qzc1QzBGOTExRUZBNEVCQjA2NDFFMzM3M0FEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NtURzwAABw9JREFUeNrUmQ1MFEcU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', Cw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OTM2NjAzRUYyNjgxMUVGOUU1RUMxNTc2RUQ2QkQ4OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OTM2NjAzRkYyNjgxMUVGOUU1RUMxNTc2RUQ2QkQ4OSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5MzY2MDNDRjI2ODExRUY5RTVFQzE1NzZFRDZCRDg5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5MzY2MDNERjI2ODExRUY5RTVFQzE1NzZFRDZCRDg5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ZW5kdwAABgVJREFUeNrsWntMU1cY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', Ow = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxODY0NzUwNkYyNjgxMUVGQjk0RjlDRDNEMDdGQTQ5QSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxODY0NzUwN0YyNjgxMUVGQjk0RjlDRDNEMDdGQTQ5QSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4NjQ3NTA0RjI2ODExRUZCOTRGOUNEM0QwN0ZBNDlBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4NjQ3NTA1RjI2ODExRUZCOTRGOUNEM0QwN0ZBNDlBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+3Dgx6AAAB6hJREFUeNrsWnlwFFUe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', zw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEQzIxNzYzREYyNjcxMUVGQkE5RjhCODZCMjVGRjE2MyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEQzIxNzYzRUYyNjcxMUVGQkE5RjhCODZCMjVGRjE2MyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkRDMjE3NjNCRjI2NzExRUZCQTlGOEI4NkIyNUZGMTYzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRDMjE3NjNDRjI2NzExRUZCQTlGOEI4NkIyNUZGMTYzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Y8BRiQAABhxJREFUeNrsWntMU2cU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', Ww = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFQzU5NDhGRUYyNjcxMUVGQUMxQTlBOTE4RTM3QUIyRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFQzU5NDhGRkYyNjcxMUVGQUMxQTlBOTE4RTM3QUIyRSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVDNTk0OEZDRjI2NzExRUZBQzFBOUE5MThFMzdBQjJFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVDNTk0OEZERjI2NzExRUZBQzFBOUE5MThFMzdBQjJFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+P/n8FwAACTBJREFUeNrsWgtUk9cd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', Fw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowNzU4OTc5REYyNjgxMUVGQTBGQUU0QTIwNDIwOTlENSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowNzU4OTc5RUYyNjgxMUVGQTBGQUU0QTIwNDIwOTlENSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA3NTg5NzlCRjI2ODExRUZBMEZBRTRBMjA0MjA5OUQ1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA3NTg5NzlDRjI2ODExRUZBMEZBRTRBMjA0MjA5OUQ1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+fa+UBAAACMJJREFUeNrsWmlQW9cV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', Lw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNjUzQjcxMkYyNjgxMUVGOTYyMjkzODI5OTNDM0ZDMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyNjUzQjcxM0YyNjgxMUVGOTYyMjkzODI5OTNDM0ZDMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI2NTNCNzEwRjI2ODExRUY5NjIyOTM4Mjk5M0MzRkMzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI2NTNCNzExRjI2ODExRUY5NjIyOTM4Mjk5M0MzRkMzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+FTuAVwAABixJREFUeNrsWm1sU1UY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', xw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5ODUzMDcwMEYyNzkxMUVGODdERTk4MDIxNzVBMkNDQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5ODUzMDcwMUYyNzkxMUVGODdERTk4MDIxNzVBMkNDQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk4NTMwNkZFRjI3OTExRUY4N0RFOTgwMjE3NUEyQ0NCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjk4NTMwNkZGRjI3OTExRUY4N0RFOTgwMjE3NUEyQ0NCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+lDaacAAAB4tJREFUeNq0WFtsVNcV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', Vw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNUQyMTQ2RkYyNzkxMUVGODQwM0MyMTA0MENFNDBFOSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNUQyMTQ3MEYyNzkxMUVGODQwM0MyMTA0MENFNDBFOSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkE1RDIxNDZERjI3OTExRUY4NDAzQzIxMDQwQ0U0MEU5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkE1RDIxNDZFRjI3OTExRUY4NDAzQzIxMDQwQ0U0MEU5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+hMPtcQAAB2dJREFUeNq0WFtsFFUY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', Qw = '/low_altitude_interface/assets/icon-uav-SqkKgs5o.png', Xw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGQjY3QzlFOUYyQTAxMUVGODNDNTlEN0U0QTUwQUM2OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGQjY3QzlFQUYyQTAxMUVGODNDNTlEN0U0QTUwQUM2OSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZCNjdDOUU3RjJBMDExRUY4M0M1OUQ3RTRBNTBBQzY5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZCNjdDOUU4RjJBMDExRUY4M0M1OUQ3RTRBNTBBQzY5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+upPRfAAAAXJJREFUeNrMlL8vBFEQx29lE3tZQXFCEAmFUFLpLqJTSCQiEQqhUmhEScMfoNBo/A9Xi4S7CxoRBXqJAhE/7sRFwfOd5Lsxed7ebnGFST7Z926+M7M38/Z5xphMI60p02BLSrgMLoAhV2ClboT8ZQdZcGZ+7RScqP0laHfFxiU8Z+Am8C3fOn03aRMuMWAjppiwSs2a7fMcU74HOeAn9PcFZEFQbygi6ASlFAM9BM2gxZWwHxyAD+5rVvAW2LbnyWcVHIOhaMp9oMaelMAeWFB9mVPTXVS/z1J7pPwD4ihzM+Jo/pT5a9MO3TB91xkuig5RXiV5BE/gm/sJh74gjqiHgdWfLvZFbAzccaqjaiA9VkwQ9bDAqpNWxR0wz3WVGlnPgF1LO05/Wc5hG7/RXvBAXkFeVa/weOhjVgQS2wG6wTMYjCq0cmIVVvoEoXqDN/Cl9iE1Yu9gH+TivhTnHcKnlyT0U15ztyBMI/T+/Y39I8AA56FGFjWH/fMAAAAASUVORK5CYII=', Pw = '/low_altitude_interface/assets/slider-bg-CtKEfNTR.png', Hw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAA5CAYAAADgHtGAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowREM3RjIzNEYyNkExMUVGODVFMkMzODA4OTY2RDA5NSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowREM3RjIzNUYyNkExMUVGODVFMkMzODA4OTY2RDA5NSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjBEQzdGMjMyRjI2QTExRUY4NUUyQzM4MDg5NjZEMDk1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBEQzdGMjMzRjI2QTExRUY4NUUyQzM4MDg5NjZEMDk1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+zngZkAAAAgBJREFUeNq0lb9LHEEUx3f2xh9XnKIeqWKR4kDwzxDSJlWagPGKNLFNm15QENKnsFUL/TcUDEZCIAkaJSRCNJrTO3O7s7t+3rlXeO7FfZB98OXNznzn+968+bEmSRJPbGnTGe/GTAoxGUxeP7EdkhFySvRLpdK0MeYl7SlwBjajKFqHEzIhNosbYYdorX2Of8vACn4XjDOxjj+M4/gZaPkij2INtwxxFqVVcAS2wRz9g77vv5EshIyAeQFRSCeDA7Y2WbXzEyN2hr4xFBfg1LtksUfgAxh6MOI9rpS9p9WKJ7mXIR/jA6KPdcn7Eg64xpX3vtHyArDNd5uoA/hvRLkQciIp4EfBRaPldnY+/Tg7+Hm5xvcp+Vbx74gQWpEl14+EkdINS9gQc859R/Wc4b/0bYmonxYcfrRHhC+0fzMYYFLnE9pfwWWHLMpScMmXznMm/GJi0Gw2/9BugDZjcUdUdrAXr5Y/74GHvf3datwyBlxWfyaZhUVJ94TdR8ZCJnh5yVF6PPMp585ZrVzYAp0mjSA3WS6oZgdDjXL+nFFuazYl1FRDVbp2xgb2Lx15J/+/dKoFpjc6/w7mPqLwgtwLVNdZk7PTXivVTblj9h83pZjtDoo5/OSc+XzZPjmr0nDFPAWq91l7Nlxh/xSnKZ1KOVJtStbz1e9HX8rqvxZgAIVWgHNFK5i/AAAAAElFTkSuQmCC', Kw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAABrCAYAAAChWHh8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxODE5RTkwNUYyNkExMUVGQjE0QUEzNjM4MkU0QUQ3MyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxODE5RTkwNkYyNkExMUVGQjE0QUEzNjM4MkU0QUQ3MyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4MTlFOTAzRjI2QTExRUZCMTRBQTM2MzgyRTRBRDczIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4MTlFOTA0RjI2QTExRUZCMTRBQTM2MzgyRTRBRDczIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vHKgCgAAAmlJREFUeNrMV79LHEEU3h9TbKKHh6gIolgJaQKp8jekChb5B1LaiCiWgoVdIJ3Y2FxjF5CUaULQ3ggWMU0wUbngXcKBp+ftzPi9c0+OZFfmYzOQhce8mfnm8d6b783MhtbaoP+92U3DTJX2fmLlperpoYAzUBTH8UgYhvPQn0B+Y+691voIusECE2WLBfgcwEPorwDSkBn0PyilNjAWw2CkxCqA45h4B8AaLH3GZAJJMVbD3BYWnKRpuiWWMRa+RvsRwEPosxNVNT+UqGdY/AiyjrllwfXdeIrBfbSPJ6vxi7FKsDg1GqyiPwwDX9BWJJ4+uJ5Fb250cKZNYDrd4CxzRYI/hbHrHliiRjMKaTVa6d7ewXnj+MflNvq/gB1Du2OM6SjBQvkURVEMSaB/73a7N5CTJEkuAB6BsZrgIkm4pEoWYOAbFrSga4CbYhn6Efz+KS72fTZY0MFEHe050qTb7XYTegNylW2KFX//koW3x18h03+OqyDns4OEGfhywQhK541HjOVcsAQ0SNEHwXCDtuzsszs4c8M6pa7IclGe3cFCLNays8+WyQbFDXNXeh64YRhu6LwYi8DW2Q2x7Bxg0Q4WBpi3MYWpY/JMZcPk1WH5GpRzmS1Y64Wi3KZQ3PDmBkdR5+0WN1giWdcTSTPc8JRninW0G0xZ5eZZlSY/dSJRfKYoSuX5Pymr7DXmh3VcWVH3IFXdzq8C6oaFZY/bXbqs/s2dQl2aFOuYG5Y+Rctxo7xl9qlGnUiUG9zD1c97w+9/ircXI/fYZsCBt4veUG9+b9mwfsqKdoPKxubSnHMNlv9JvxVgAJE1zFXMgHLcAAAAAElFTkSuQmCC', qw = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAA5CAYAAADgHtGAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxRUY4QTExRUYyNkExMUVGODI2QUVFRUQ4MjVDMDk2MiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxRUY4QTExRkYyNkExMUVGODI2QUVFRUQ4MjVDMDk2MiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFFRjhBMTFDRjI2QTExRUY4MjZBRUVFRDgyNUMwOTYyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFFRjhBMTFERjI2QTExRUY4MjZBRUVFRDgyNUMwOTYyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+2p6cCQAAAgRJREFUeNq0lb9LHEEUx2d35wQlCiae2AQC8R/IfyBYhwRSB4JglZQp/QcEC1NbpEklWlikU8s0B0mKhHgELPwVUQ/FO7nbm93ZfN4xJ0KOZIbLDrx7s2++73vf92Z2NiqKQslY2coiXN9kFM7U22e65yMBA4yjKKokSfKC2HNsEttjbS3P8+/MrSQk954sxYwxgJsEnwL4iK9h0xC8Y+3YWvvtU90qLewElvAVWF4BHmMu8ToEuyS8x9dY24udxgWylwFOPpjQ8w+n9JuRip4FcEFsnYSXgtNk3WeSAz7FP54aV4tJrGYopX3UUAfEvmJzUmBM5jX+jOwRfHrRVPVmW7Wu2+oLz5nrzE/50TAaNK9hj/jbw/3Dxna32x2tVqufWReiBMINaaNoLkj4gG/AnhpjzrMsu+H5BIIUvwPJj54MB25iNcCnAFssdpifw/iL+b7UJH2O3e5YFjokNNI0vYS9w/MV1hLdYKxy/exvZ29LX69aKcoQ6xd3O2L155CkfEB8MJjhD6Y4PzCs1lsGrCIj82X2lwHQ3jkT/yzQhrbODN0NPazmIrTALERzELMJ0WzK2UHvgyRg2LP/r/lvfdal9Xm4g+Rk+G9KSJ/DjijsJmS781KYi9DWBd11/vdGyF1XlPN2O+Y85Ih6fybCvlblgF2BtpRT138PvTUPBP8WYAAi4l367JvB4QAAAABJRU5ErkJggg==', _w = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAABzCAYAAABO3fiKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyODZDMUYyM0YyNkExMUVGQjQ0QTlBRjU2QzAzNjc0MSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyODZDMUYyNEYyNkExMUVGQjQ0QTlBRjU2QzAzNjc0MSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI4NkMxRjIxRjI2QTExRUZCNDRBOUFGNTZDMDM2NzQxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI4NkMxRjIyRjI2QTExRUZCNDRBOUFGNTZDMDM2NzQxIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jKOpdgAAAcxJREFUeNrsl79KQzEUxk/SCtVi/YODizi6SBF0Eze3Igg+g/gIOvgCPoJOTk6uTioOCjqom5OLFnXR1oKtba9t4ncgt1yqFIPE5qqB371pOPfLyZebc6ko71K0Cfq8ab4kI0HS/F4AM6AJDsGx6Wtpgvk+Ds7AKkiAfrAJeO4BFhRIg1V7wCk4Ajugz4jUwDp4Bsuh8rxR48AxOTydE5mJOfRHwQZY5H6YcxacgF45mJ2SI7NrpFXQqORXqFl9xPg5x4TKJRAApYNikZq1OjXKBVJBncdAAZRD5QMwyQ/o17trmd+6Uor2YdiTceoWXErj4Y3JNwMepKAKuOe+Ud4G1VCZBy7AEEghsAYzS2Z6dqTCotHgN8CLSQhBdUz5YoKVmV0lI1uqzJ13q8EPGIFWk53ehfbWKVg7C/7QkumltvE90VpsOoVLTncxZ2VrnQc+K2dpWCkrpwv0xI3/NChSleK23cppGh6cbo82RbeHdw4WX18gOVFWPllHNm50MQ1tEyx+4AxauaEc+Kxt3g3hS0VyV2TcHSvLWqdtchY+fIDcFvNf/9G0Kl/kpHzFcVPi+NdDO3WDYqOsbdwQ9j6THzuo/4Ly94LfBRgAe0QWmW8vFSgAAAAASUVORK5CYII=', $w = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAA5CAYAAADgHtGAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyRjE1M0VCQ0YyNkExMUVGOTJDQTlCNTFGN0JFQzZENyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyRjE1M0VCREYyNkExMUVGOTJDQTlCNTFGN0JFQzZENyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJGMTUzRUJBRjI2QTExRUY5MkNBOUI1MUY3QkVDNkQ3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJGMTUzRUJCRjI2QTExRUY5MkNBOUI1MUY3QkVDNkQ3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+7Y9N4gAAAhJJREFUeNq0VUsvBEEQnkeLjFfsRoTETdxcHHHxA4SLEOLgysnBT5AQBImIq8TFRfADxMlZ4uAVEoR4s8uyO9vdM74auwlrWqbDdlKpnnp8/VVN14zp+75Ba2ZTmFCW8blo7+f23lg3C/ZWLpA0wxqE7EDuICeQedu2a+G3A4TpDU4oNhwT0J04acrzvAPTNKssyxqArR22DinlNaMMZLdC9cPQA4eDfRyaI2kBvgwSJ2EbouOxN/vgXIGwCoc1N9ax8foY64WvBgnLdCJOYfmC4pBzSEms3GgrLTFaKh2jC8+lAEhBJwNaueA9SBnEvX8xti4ejPRt0ljHM1EgWvs4IUHBSPZXiToc75msODw9u0rcPqa2YbvH8dXwL0G8oEAUdolC1uCIAeFRCOFyzq8dx0kSBdhuCNTKNRzx8gLGI0JDMHdd94n2BATUDOK8gHM+AcZ3yDMkm06nX6HfYOcUGFRGr7tQRuaOd4dnjxoK7flufFtwSBTrF9pDg7FEmFEVLL/cut+DQYFrIfv5ix4hmOsUGEqDKVonwgpk/1Egj4xMI6XT56wWjcitU3XjX2hkdV63COOs1TrVG3R1OIvInGm6I/eZWhcCrETmOsi8OGNFBf758qs4Cx3O1Oci0NCaQdVHRlmgFrLWpESmQdOte5EiI8s/f59VNKRO62TRfkBaffYiX1EqcHG06QeNDwEGAKvTZjUj0zIvAAAAAElFTkSuQmCC', eR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTI4QzVFRjA0QTExMUYwQjBCREFFMUE2RkE3RDRFOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RTI4QzVGMDA0QTExMUYwQjBCREFFMUE2RkE3RDRFOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRFMjhDNUVEMDRBMTExRjBCMEJEQUUxQTZGQTdENEU4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRFMjhDNUVFMDRBMTExRjBCMEJEQUUxQTZGQTdENEU4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+AsWZSwAAAdVJREFUeNrklUsoRGEUgO9IWUhZkQUhrBQpGyRJmtSERLIyysqKhZomFkohCwsWFhoxpbzKmM2Ux8IzxFpmLIg8FhINRa7vrzN1m0xzb5mFTH2dx/z/Of895/z3Jum6riWSJC3Bv7+fIDnegvV9rRnRB1UG9xFMOCq0hXj7baoRMQKnIfahGO5gBS4gFxohD4JQSaIHSwkInooIQaYKRgDfD2tqEJvwrpLFShKrRLsSPJ2Nz1KmcciHK3Dj9+JPQf+AE8gx1WQ2VSNKoUWCj6KvwgvMwCPM45/i/0/pTTZ2049Hjb4Yvj19C8Ki14MOzqg1beJ3iH0D52YvmqptpObTqrGc1MMJq2AZ7NiL+E9hTtZ5ocjsPbBJgzWZmE3Rh1TZYEzsgOqR6EGrFy1yGtXQWtHd0oNusRvg3nAQ0xdtWzZrEixAWeooywb6gWFES8Ah69rh0myCQdghSCtBl5BO7GsJPIm4hTXo5H8/vjIZ3w4rF+1MRrWAICHxeRBh7B7DOtWDJzW6+DOs9MAuk/QlgfzqxKLPwnBkysFvKJX5d1HUE5Uj3qAXumCEE7t+7XVNsGPEKxTKDXf92utaniALMQD9BD+08j0wVaL//clMeIJvAQYAy8QgaR4LlwMAAAAASUVORK5CYII=', tR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFQzQ0QTdGMDA0QTAxMUYwODNEMEJGMUY5OEQzOTRCNyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFQzQ0QTdGMTA0QTAxMUYwODNEMEJGMUY5OEQzOTRCNyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVDNDRBN0VFMDRBMDExRjA4M0QwQkYxRjk4RDM5NEI3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVDNDRBN0VGMDRBMDExRjA4M0QwQkYxRjk4RDM5NEI3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+6f1AcgAAAZhJREFUeNpi+v//PwMtMRMDjcHQt4AFl8TmYwzhQGoCEHMD8R8gFgbi5UD8GojzgfgTEP8D4vtAXO1rxbCFaB8ADQeJzwViCSDmBeLfQAP+A2mQpYFA9j+oxSA5PZAWoB4pUoLIBGoADByB0iBLF0HZl9D0hJMSRJZo/GcgAujyFCSxB1DXw4AxKT5wRePfhAbdBSDeBRU7i6bGligLgAYwAilrNOF7UFofiB2h7FtoauSAelWI8YEWEAugiV2H0qCI/ogUROhAnxgL3ND4X4Bhfx/KZkSK/LtY9FoRYwF6WD6ABh0zlM8BjfDXSL6BAXtiLDBB4z+BGvgX6kLk+LmMplYb6BAOnBYAJUHJThZN02OoHDuQeg5KskA2K1rkMyD5Th+fD1yw+Og2lFaEFgv3oTkcBB4RSuLoFphj0QDLsaxoLsVlgTU+CyyxaIAlR3YkMRj7Phb1OvgsEMWi4QmU5kUS44HSV7Col8FnQSnUVc+g+AAw9XxFkv8MxYzQlPUCSJ1EUv8UiCchG8gIqjdHq8wBtQAgwAAAaKPhlF14LwAAAABJRU5ErkJggg==', nR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDRUM3MzY3RTA0QTExMUYwQkY3MkMwRjhCMjc1MUQ3MSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDRUM3MzY3RjA0QTExMUYwQkY3MkMwRjhCMjc1MUQ3MSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkNFQzczNjdDMDRBMTExRjBCRjcyQzBGOEIyNzUxRDcxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNFQzczNjdEMDRBMTExRjBCRjcyQzBGOEIyNzUxRDcxIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+H98iVwAAAWFJREFUeNpi/P//PwMtAeOoBTSxYPMxBh0gxeNrxXCCkFomMh1WC8QriVFIrgXeQCwH9Ak/RRYADZgKxEVoYilAihvKrafUB1lAnI4mVobELgRayE2WBUCNYVCmGpAtCxUzA1KqaEoTyfVBKRIb5osKLOqKSE6mQJdqAqlrSEL3gdgViK8CMTsWc2yBSfYIKT7IR+MrArEfEO8gwrf4fQB0PTOQ+gLEHOgeA+K1QLwASQzky5dA7AjEIkBfvCXGB9VYDAcBXyD+CcSXkMRWAHE3lD2V2CAqwxNnekC8FMq+BcQSQFwM9Uk40PdceC0AKghCykTYQBIQn4OyzwOxOhA7A/FpqFgqIR+UEch44kAsDcQ5QCwMxCZQcVC8fYYGL3YLoJnInIhyaB4QL4OyYWWRPTQRiALN8UdWzILETgDib0D8l4AFvNDSlA2IP0DFRKCp6TUQZwLxxtEqc/BYABBgAHBXZySmLq53AAAAAElFTkSuQmCC', iR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDMUFEMjQ0MjA0QTAxMUYwQkIzOTg1Mzk4NEE1MDhENCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDMUFEMjQ0MzA0QTAxMUYwQkIzOTg1Mzk4NEE1MDhENCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkMxQUQyNDQwMDRBMDExRjBCQjM5ODUzOTg0QTUwOEQ0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkMxQUQyNDQxMDRBMDExRjBCQjM5ODUzOTg0QTUwOEQ0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+shX4ZwAAAcVJREFUeNrslc8rw2Ecx/dlRf4BOThQiIObYmWhlBi1XYgWDpwopfzYHXHYRVEctMKBNUUSOWBZmZOQkHB1oSgO8vV69FHC9mzTlPLUq/fz2fM8n8/z4/P9zDBN05LMlmJJcvv7Aay6CSshSwHSChWQDwacwhb46m1v/YjNiPbIOB9GBjV7GCGIJ+4AOA8gTjEXYA5OwJSTNIFbxpcI4oo5AM5HkT4xHSxejbCJSmQN0sDLvF5tABblIWdiVrNoU/NGJUhYTDvzg7os6hFdfHeOExdsfHBqh23VZ84+ot7qGmpiOcEFkguZLL7BTqf/KMNdMAEPkKGuhzm1cWURDl8kFZvhHtR7ZENA0lWlpUpd9S51MA5+eJIThXVXZIjOq3hQBMUsbENvxbkb24GOQTeo69oTtB/aAGRJ8FRYx9mVjKnUdGLPym77OfE5XRu0w+UXb+qKfsryrukBE3yfx6zfpF26ZNIdBNnlsSZNS5EhMb2xFLtnaIBJOMSBI4rzKrl/1WbYzEE8pWIHKRfTL49+JKWiEBqhRcbVSe2JFLsppENT7KZx3plQNZUgNsn/MsiRn1VWhaRchxIu1/9/mb8S4FWAAQDBdeHDEVv+sgAAAABJRU5ErkJggg==', sR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMkZBQ0M3MDA0QTExMUYwQTRFQkJBQkJENDM3QTY4OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMkZBQ0M3MTA0QTExMUYwQTRFQkJBQkJENDM3QTY4OCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyRkFDQzZFMDRBMTExRjBBNEVCQkFCQkQ0MzdBNjg4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyRkFDQzZGMDRBMTExRjBBNEVCQkFCQkQ0MzdBNjg4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+l6bRzgAAAe9JREFUeNrs1U8o5GEcx/EZDVlj/RlMWMPaYonWwUUoUv6kpEQcsAeKgwOOcnCS4bAu3OSi1G5JlIOryMVBaKPdkj8lf1uSsIz3U5+DNIxEDky9ep5nPL/n+3y/z/MzVo/HY3nJj5/lhT9vKMDknKUS82h59gAsWkfThWPUM257tgAsVkxjQxPO0Yp/fB/75AA8/A1xGjpgFqtRoFJkIuJJAVi4gWYA5fSTab9gDyO4wDiW4HpMANudxRNo+jEF8wYWYhX7aEcwGhGNGTOPZ0wmZSZoWbZlwVcG6VrETLzEV1QjBoOm9uhTP5TF7bQm4zy4Gaf6ChCK/9rxCZLwEyuohBPdKFDQDwr6C+Eo8RUgRgFC1DdB8nXQY1jXjk0JPyFHpfTHoTb4YACnHjjS5EWdiRVVOtgOnd0fZGFH61zjo68ADgUIw1/EoxcpmMAGhhTApTOzawOPyiBCZbHr7psb1IlZ5CIR31XGUdX9TBkfeHs3bHfGkbrr60o3Q9+Zg1xGFIZV+wpt0KEM7V7W85rBnuoboLR/cL/dKkOWbtAkanXbotQeegtgvf2Lxj3epAnSm3qFaXxGs6aY65qmvpl7it96DwJNKdlM0UMl2tJNMg+soefW346VmVNlcemf367G2+rfn8H7T+arBLgRYADsIoVIgIjHNAAAAABJRU5ErkJggg==', oR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpENURFMjI4NzA0QTAxMUYwQkQxNkY5QzYwMDczMTc3NSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpENURFMjI4ODA0QTAxMUYwQkQxNkY5QzYwMDczMTc3NSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ1REUyMjg1MDRBMDExRjBCRDE2RjlDNjAwNzMxNzc1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ1REUyMjg2MDRBMDExRjBCRDE2RjlDNjAwNzMxNzc1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+6VpyoQAAAjFJREFUeNrs1V9IU1EcwPHNTRQTg/mgD0YxGFNCE2TSJBoaSCYiiCOTAqXpS/6J9CGhJfiyFKqBESENy4eEfNEJPUQYUYyC+abUgxQhSgXlnwftH6zvD34PI7a4Vwh82ODD+e3s3N+555zfvbMmEgnL//xYMxPsaYL5mMVK8xolaMEYNptqLM38tkT8BkO4hwh6UCtjGfPknxOQwE6zgmKcwm0cRCXe4gua8QiTmtwjfSSP/n2zWSlWNYvDOIQwvnKhm3YVMeJq2nU8RLkmd6RKnm6CRgTQj10ubGBVO8QzuEAsSx6j/wHtIAaIN9KdgT1Nfyva8EITXsM4fuOKTEa/l/aHriDtJ9UKOnAax1CHEUxgC37M6Xa9xxm5ESY7Z7aKwrpFOXqHr3AceVjAUd3KnyhEEEfYqo9GVmBh4GUNZY/ParIiTe5ElZZunLHXdWy70S2SFTg03CFBn979nK5IzmYKLnxjbK2OXTNzyIv4QPIwCe4TX0Q2bqEXBejCJ90eST5taAUknNb9dBJLabYRW7VM/Ro/hw0VKJXngf5fhg5Zy7Ib+QhxYS59z+ThI3YRyyvERuzRsVeJR82UqXxO4il8JHkn1aPJPxNvw0vs1rFus8/BJZzXAy2Tg8QJEm7SRpmonla244BMhE5+8xuegAR3aW7qQbv4XkP7XStnOOnJljetT8v1Mf1BU/8HXBCS94xWThwvsQy5gRu6VXfkmUmqtADfI5m/zP01wR8BBgB+MMizqVuf/wAAAABJRU5ErkJggg==', aR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyRkM0QTRFM0YyNzkxMUVGQjcwREIzOUI0MDM4RjBGQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyRkM0QTRFNEYyNzkxMUVGQjcwREIzOUI0MDM4RjBGQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJGQzRBNEUxRjI3OTExRUZCNzBEQjM5QjQwMzhGMEZCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJGQzRBNEUyRjI3OTExRUZCNzBEQjM5QjQwMzhGMEZCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+F56cIgAAAWlJREFUeNpi/P//PwMtARMDjcHQt4AFm+DmYwxCQGoOEGsA8TYgrvS1YvhNNQuAYDUQO0HZmkB8H2gpyCJzIP4LxIxADEodj4EWnyDHAic0vi4Q8wNxKxbfngJSHkCL3pNiwX4gdkTiXwbinUD8EE2dDhBXQNUbkGJBOBDPB2IlIN4LxLOgcXAHiw++A6lGIG0JVHOcKAuACl8DKR8i43EzyAJogjhOi2Q6GUrvJCWIYN4HRW4BNCUxQ1MOCPyD8s2g/Eagr5+RZAHQcFAk7yPg+vtA3A40fDYuBYzYCjug4aCg+wpN72ZAAy5RNSdDvc4BxDmUGI4vkr9AaUkCcVQNxA341DDiqg+AGm8BKVUgTgLiU9CIRQfXoPRMIM4H+vYnKanIFYiPAfE8IkIiHYgVgdidaAuArnkI9IUckBkPxMpoyZQByq6Esp8C8SSSgoioLHyMYSOQkgD5FuigT1S3YLROpgoACDAARqVi+Y6Zd/EAAAAASUVORK5CYII=', rR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGQUE2Nzk3MTA0OUYxMUYwODRCN0U5ODJBMUM5RTU4NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGQUE2Nzk3MjA0OUYxMUYwODRCN0U5ODJBMUM5RTU4NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZBQTY3OTZGMDQ5RjExRjA4NEI3RTk4MkExQzlFNTg2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZBQTY3OTcwMDQ5RjExRjA4NEI3RTk4MkExQzlFNTg2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+qmBugwAAAe9JREFUeNrslVsopGEYx2fWMUY2wuaKksONUm4cQikl3KyIrEMuXLpUXCApJRk37oSQbVNbiHW6IJmr3axSpBR7IcdyY8hp/J56tqZpZr6Pmi21X/36z7zzf57ne97TWF0ulyWQzwdLgJ/3XyDYyDDvsBQg7ZAD4WCFO/gF/RW5lqU3d0DyUWQDPkEvlEMpdEEE/MAz4i+H1dcuInAfSYUs3nLHhydMu7nAE2+6AwInkTSI9JVcn3S4hFhipkwVwJiNfIFkkt/6mb5q5Dc061rWMVZmZpEH4ZDkRwTI7yFSSKejBB7hI0xDD7/Na0EHMgQLRgWk7W8ENKCyQDfwHWTaqtx89fATX5P6FqHVzBpEQx88QTdkkqTDI/lfX6V0AVFg1y1sWEC6csrOgCTVAy++UDiBBLhiqpze8nkrIG9RRsAKOocOo6sennvG7TDG5zX0K13maVeGBbahRT/PEliDXkMnFEGxLCbj3erZU5X5PzM8aAQWIus6BTFwClu8Zb6bxyYFGWvT7xG6GaoZmzE8yQRMILUyt9INQXMGV4qs0zG+7NdcFedIHAQR+OzDk4hs6l1lw+cyXUATjCONsKwHaxekWIacXNkMIAesiOQPr7rs3Ip81us6Rc+GPEHwBwZIPPmm2/T/X+Y/K/AiwAD8A6W3pVuneQAAAABJRU5ErkJggg==', lR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFODg5MzZGRDA0OUYxMUYwQUQ1REIwODkzMDY4MTBCMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFODg5MzZGRTA0OUYxMUYwQUQ1REIwODkzMDY4MTBCMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU4ODkzNkZCMDQ5RjExRjBBRDVEQjA4OTMwNjgxMEIyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU4ODkzNkZDMDQ5RjExRjBBRDVEQjA4OTMwNjgxMEIyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EFX7LwAAAbRJREFUeNrslU8oREEcx9/blIs4apNN688eSORA3OQgWclByomDXNyUxcFFWeWobC6kPSmSdaVcRKn17yJbav3P0UGhXZ9Xv1fTa/ftaNukTH36vZn5zfc3b+Y3M2Y6nTYKWTxGgcvfD1CUyyF2ZDRgBqEbApCCW+gIthvveQVAPIyZytBVoSPuGgDxXUxQqi+wApewBBfiU415dAvmySK+oIhb352QhBYogyg+xdgEDP3oDxjox4Skas12Dk6gWXE7hE8YgQ0ZV4d542+ecv3BmNgHCZBwiH8h8gopWKfeivg29hpmdfagV+wy9IBP6bOCriFojeuHUagCr/S36QSoFRuX1LTLHTP2yXJsYQakfR524BQq8zlo6mS6lO8SQTtNb6Aemux0lOJl5s/YDyhV2uPKHt3rBNiTABOSlkllH8odvpZgDM6lvq+zRKv2aYVJqJFZOssZ+OWk22sfcTqZmd4DOWgh5aBFJUMC0mal5DEMw4y0hUmCaa0AWa6KiLInjTCuLFkM8b5MOqbbi+Zy2allEfFQtk4z15OpXNedymZbG38Am4hfuY03/9/kXw/wLcAAhrl8BEMfNVoAAAAASUVORK5CYII=', cR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1MDQyQzU4RDA0QTAxMUYwQjgwRURBQ0VFMUM2REEzRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1MDQyQzU4RTA0QTAxMUYwQjgwRURBQ0VFMUM2REEzRSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjUwNDJDNThCMDRBMDExRjBCODBFREFDRUUxQzZEQTNFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjUwNDJDNThDMDRBMDExRjBCODBFREFDRUUxQzZEQTNFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+mgcXdgAAAW9JREFUeNpi/P//PwMtARMDjcHQt4CFVA2bjzHwA6nJQJzha8XwjSoWAA3NB1J/gAZOBdJLgdgbiPmAOICQXkZCqQhouCGQOgfErkAsDcQLkKRrgJa2kh0HQMPVgNRRIM4EGrQHSE9DU1IBVKNFSSQ7AzEnEM+B8q+hyV8G4puUWPAGSrMBXZoIpE3Q5C2BuICsOAAaCArvJ0DsBsT3gPgOHnPcgUG4i2gfAA1XAlJXgLgYqHE3kD5LwKdrgHrUSQkiAWjwPIbyNxCwYC0QPyTFgttArAjEckCXgSLZloAFNkDMS4oFr4B4NTB4eoH0DSBWImCBChCfBzqGjaAFQEWg9P4XaHgkkL0C5AsiSxFpaFARLCoWAbEflL0MiPuA+CcoxQExM7R4qAHiRpB7oGIMUHl+kosKqK+mgyIc6Ks2IBuU+UC+tAfyD1GruM4A4iIoWxFKK1OzuI4B4k9Q9gtoBnxKjEbG0Tp5wC0ACDAAzV9fQgXi5YcAAAAASUVORK5CYII=', uR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3QjVGRTJBRkZBMzYxMUVGQTQ4OUQ5NTUzQjlDMzYxMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3QjVGRTJCMEZBMzYxMUVGQTQ4OUQ5NTUzQjlDMzYxMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNUZFMkFERkEzNjExRUZBNDg5RDk1NTNCOUMzNjEyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdCNUZFMkFFRkEzNjExRUZBNDg5RDk1NTNCOUMzNjEyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1TcbjAAAAkRJREFUeNrslTtoFkEUhXeTX4yKID4RFXw1ghpQRAg2Fj4a7UQiFoJgq6VgY5VORAsbLcQgQgqbP5DEziJiEQULQTFCwEfU+A5GxWTX78D5YTLsw+bvHDjcPbN37p29c+5smud50s7RkbR5tD1BIyTNB0mn7JGeZC7kdSP2b3GNtOgMcFyF+Y3jd3NtJINn5vryDvis+VLMIviHONa8BDiexyj4FiUAL8EzFt4q2jn+vZgdYDNYAp6Dz/j3FZaIMQG0qwVgGkyCrw52AtNrvwGC9GO/2Ue7XAHemyd1JXriRV1euNgIxwz4CT6BX659d6WKCJz68Q3odtCPThSPhWDK73aC11GMQpm2eL/tQXa1DbsMXAE3wHVwVXN+t9++d4tiNgrKI4cB0x/+dJ3HuRKVSgwntcZrk8oEOhfr+E4g0TzQut7ngVRVzttlfVOUII+aaFZBgcrUBX/H80qsziaL1mZ1JdJOMwJIpkeBGmiUuRfMDfN8DagnmvDj2D/gsMs0qMZkPq+UKQ6nMH1umpvgntU0DobAK3DGB63GVKLTVtJFklyu6uS1mLfgKY7bg3lpfTnY445VAjXeavym7DOG2Q02MTdRVqIZf/Y6FhzCccTzF8Bj+Jj5fd4PBcEPYDb6DKbrSrQX89BUrd+0oibd1eE45hKtMd9H0tGqEnVKjtgN0LNGo+a2nvN5XJJkWzHKEszTvOd2YbaC9e5oXQVffJ2M4/so+p+krWu88Atiyf7LD8dNl8Y/oNLb9P9PPxx/BRgAd9LrGXv+r2oAAAAASUVORK5CYII=', dR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCODhGNzI0RDA0QTExMUYwQjE3ODg4Nzc4M0MyMUMzMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCODhGNzI0RTA0QTExMUYwQjE3ODg4Nzc4M0MyMUMzMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkI4OEY3MjRCMDRBMTExRjBCMTc4ODg3NzgzQzIxQzMwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkI4OEY3MjRDMDRBMTExRjBCMTc4ODg3NzgzQzIxQzMwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+GVKT4wAAATpJREFUeNpi/P//PwMtARMDjcHQt4CFVA2bjzGoAqlJQGwNxA+AON/XimE/NX1gAMQeQMwLxLpAHEjtIPqMxn9JUhABg+A8kDoNxFOAXr9EizjQhwZDKtCyI0B6HhBvAlr2llqp6BkS2wZqwV2gZWK0TKb8QMwJZf+nVT74C6XfUCsfvAPiA0D8B4h/A+PgCTCY/IBsXyD+juQjZnJ9sA+Ij0GT5Xeg4cuA9FpoIviOpO4FuT5gA+I8IJZDE78CxEZAfB2Ie4H4LdByQ5BPgb68TIoFIN89R7MAFFzs0GC5DcTGoOQMNQfkKy5qFnYgi1SQHPmH2qUpIxD/ROJ/JzYOhJHSviAW9XxI8r+Q5ESIteAuEMsA8VMg/gHEokiZ6y80Xt4D8RNQ8gXiD1D511i9OVonD7gFAAEGAN03TNqMKOapAAAAAElFTkSuQmCC', pR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxODIyNEQ3ODA0QTAxMUYwOTlDRjgxQUE2MTEzQjA3OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxODIyNEQ3OTA0QTAxMUYwOTlDRjgxQUE2MTEzQjA3OSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4MjI0RDc2MDRBMDExRjA5OUNGODFBQTYxMTNCMDc5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4MjI0RDc3MDRBMDExRjA5OUNGODFBQTYxMTNCMDc5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+N7SMlAAAAYFJREFUeNrslU0oRFEUx98gSSkf2VsikYXyURaEKErW06ysZ6GkJCvJjh0bxW4iypRsLHw0WSlpbHysFJqFUKaE53frTN00973urbdQXv06c8599/zvOe/eOzHf970onxIv4ufvC5QFDaYzXjtmBZogB0uj3d6GjUDM9JFJXo95LFJlL2SgFd4QvHFt0ZRhfB7q4ByuWciyq8CQId4v807FTyIy4CJQHjD2AlnNH3MRuDLEc/Q9j23RYl8uAquG+IzYHi12aS3AKg8xO7/CWeLr9DylxdRO27Leptp2VUJ9kCd5JX6S34Wd8w01xF+dTjLJGjDV4pbiq7bsQ0qbP2h90EjUjJmGRJE5u1LBg5zyYbiAOSpJh1ZA8gXZggnDosbhCCZJOCJibbDH3NnACnhhExO3uGrOEOli3kHhYOLHgiqIW16WnSRXCbfFfwpr0YmlwK36+KAqmIDGsOta9XQROqAWqqBCxj7gHZ7hDo5hjZZ8Yu8F+3Pw/5cZucCPAAMA+XhrhLwXB4MAAAAASUVORK5CYII=', AR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEOUQyRjdFOTA0OUYxMUYwOEJDOUNGNTIzNDlGQUI0QiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEOUQyRjdFQTA0OUYxMUYwOEJDOUNGNTIzNDlGQUI0QiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ5RDJGN0U3MDQ5RjExRjA4QkM5Q0Y1MjM0OUZBQjRCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ5RDJGN0U4MDQ5RjExRjA4QkM5Q0Y1MjM0OUZBQjRCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+k4hEqQAAAg9JREFUeNrslU9IVGEQwN+zlfXUrhQE4ZI3PaQguhAdAttAow3p1EKrF/Eg6cHo0lnolIZEELUguAm1kEFpLUJ/1fUfXkq9BbVgLWRF4goW+foNzMI7+HbfChsEPvgxb+bNfDPf7HzfmpZlGaV8yowSP/9/Ak8hh6cp4wCiH0Lgg9+wA58hdv6k8ShfvJnvR2bxc4j78BHGIQnrUA/y7SwskiTsuIgk2I0nM1YULLjq5KN+ryDj9N3jUHkNIg4RqnuoNmlPFxzSqsfU/Qcc4XscW7urFuG8hPiS2zq6BN6GZfgJVfAJAvAOeuAbtBEzkTcBix1FzOMYUL1Fe38RW0JtBzWRgc1UWwzRgN5YaExvgtem39DKEiwyDK/RJdGA7Ag9qn4JnbKCY3oaDhO4isyC/B5h9GvIEzknErZiS/ParZO2Ar/cHLRn0iLo1MBtSDsUY+qZkOeP25P8Ab5S4SwM6dy/5T2IfAlr0Ku+V+C5vtdCuZsWPYbLbN/LolK9tOYNejN6yDYMcoJ92K6r6QJsFkxAwHuCZeTuQQf6A52sSeQLZAaCOgjHbaGyq4jbc9AkhwlOkWBKbccQfeCHOex3bP7Tups613cRQbLYIEQJHM1zXyV18irxyxZ72ckk3YIUyJWxAFtQDWfgkg6B7HSj6NtUk/j1UEnbKmwj+R1GWPjunq/r/b/Mf5LgrwADAAcQ+3h5YZPyAAAAAElFTkSuQmCC', gR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMjcxRTQxRTA0QTAxMUYwQjYwMUIyRDcxODI5RUVFQSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMjcxRTQxRjA0QTAxMUYwQjYwMUIyRDcxODI5RUVFQSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyNzFFNDFDMDRBMDExRjBCNjAxQjJENzE4MjlFRUVBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyNzFFNDFEMDRBMDExRjBCNjAxQjJENzE4MjlFRUVBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+0KWlwAAAAaFJREFUeNrs1U8oREEcwPH3UEgWpeSEEilpS7Hk/8lhXRwlKSmllZTaEkcHly1FTi4ODkhykD9FyRIXlJWi5KI4SJzWan2nfur1WtubV6uUqU/zmjf7m5nfvJk14/G4kcqSZqS4/P0BMpx02gwbI1QDqJGmaywi1NVofCb7rZlskwlcT7WPbISFWnWDUMFbGCSsnSKCe6lOcA8fFuBBLmal7RJHMhHnK+AH6VSvuFMzxAZabd0O4ccW6tQqWUnM6QoCyEEvtiV4NwFMRT2jWc0e/bKXQZ0UBWWGFVDL7yPw+vdLee5BtbzfwZjOAEXYRacEXLJ3oG1ZHv2y+QW65yCKQgdfcT5ibs9BsdpoNj2TugPHeJc9ucCtTCLqZoA8XGEFe2jCOV7QjhtMSRo9bq6KMgyhSoKr4pXgqlTKYRtGuZsBImzkB/W0pW0Ok9bPmT4qZaduUhQh94PUWZa2WrzZDuUM1ZnuAAeS61Vbuy9B33FJ05pOigI/nMx5TCRoH5V3jlegvu02PFnvLTzgEc+wXmKlKNG+rv//Mn9lgC8BBgD7sGVcKi5W/gAAAABJRU5ErkJggg==', fR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3OTkyNDg4NzA0QTExMUYwOEQ2QzgyQ0MwNTI4NDdDOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3OTkyNDg4ODA0QTExMUYwOEQ2QzgyQ0MwNTI4NDdDOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc5OTI0ODg1MDRBMTExRjA4RDZDODJDQzA1Mjg0N0M4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc5OTI0ODg2MDRBMTExRjA4RDZDODJDQzA1Mjg0N0M4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+6RV6OQAAAcRJREFUeNrslU8oRGEQwB8RJUUtByeEEmIvaDn4c5FQykYkUQ6kyEVycJEr8ie5+FMIBySHvThJDnJxcWIVuQmlrGL9pka9nl2PbddBtn7NzPfNm5k3831vo/1+vxFJoo0I//5ggr0jYx/OfxIE/204s02AUxWiFjbU7oOyIEEzoVfNLcjHHrd7g3l4qncZozhXo09DlgashE3oVt8kmMUewX8N/RSG7RJkw6rqK3DDw8sESUM/ADcsSDLWJeAujJmK+9aQX1QmgE/1OItPkspH05rvOwluoU31HpA+u6n2Er0VjqVibBlqHno7LKl/R6AEMRa7H6TPAwSZ1CAPsoG9jli3vOkE64P4VaDLAZmyJoiS62w5HUcIBw/mWNYPEbGQCHXsX5j2dhBFrKXbzgAnF6LQErwcIcc1GXKhxfKYtCojUIs+vUGQMy/nvEmDnMAbhaSG5VNB8HgN7iWoFzkHKaw7w/UtalT5SlC5SCVqd4YrQZfKexmuDtkIMAfjxzOgYhnqHTxDM1zpJVvUedTQNs9XCWJsChgy6TNavST7qGoUPCG1iOplrwGuoRSc+uHLh2K91QX4OUJu0f9f5q8keBdgACaT0d0bEwOJAAAAAElFTkSuQmCC', bR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozQTYyMUZBMzA0QTAxMUYwQTBCQUYyQUNCMDJDN0Q3RCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozQTYyMUZBNDA0QTAxMUYwQTBCQUYyQUNCMDJDN0Q3RCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNBNjIxRkExMDRBMDExRjBBMEJBRjJBQ0IwMkM3RDdEIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNBNjIxRkEyMDRBMDExRjBBMEJBRjJBQ0IwMkM3RDdEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8aVySAAAASRJREFUeNpi+v//PwMtMRMDjcHQt4CFVA2bjzF0AKlyKPeGrxWDJlUtAIKvQLwLiH8A8W2q+wAIvgBd7U6TOAAGTzWQ6gHSu4FYkhg9jKC0SoTBskBqFhB7IAl/BuI0IF4F9NE/Sn2wCWr4HSCuA+J9QMwLxMuBWJkacQALDluga18A6Wagr/5CHchGjTh4D6XtoUGmDQpeqNhPaljwBUqvABp+DEifR7LgNcmRDDRkJZDiB2JY5NlAwxwbOAx1AMixr4FBGEtMHISRkHpt0fixxATRGzwGfsYj95TSwq4FiEF5Ip0WORkUH/XAMP4IxLOQUhZZFojgUCsBTQSgtC+ARY0osRntBhALoYmBMhYsyYGS6E0sap6TVRaN7CqT5hYABBgAr0OP0Hwa9vgAAAAASUVORK5CYII=', hR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNkI2QzBEMDA0OUYxMUYwQjZBOTg0NkE2N0M2QTI2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNkI2QzBEMTA0OUYxMUYwQjZBOTg0NkE2N0M2QTI2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkE2QjZDMENFMDQ5RjExRjBCNkE5ODQ2QTY3QzZBMjY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkE2QjZDMENGMDQ5RjExRjBCNkE5ODQ2QTY3QzZBMjY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+DfcCfwAAAVJJREFUeNpi/P//PwMtAeOoBVSzYPMxhlIg1QHETEB8C4iTfa0YjhDSx0Sk4QuBVBcQbwHiSUDMDsSHgeJuBDWDfIAPbzr63xqI/wNxHJr4WZA4If3E+KAYiP8Ag2MRmngy1HcGlAbRdyBmxiLOA6V/UWpBJygxAF1ahSa+HIi/AH12jeJUBDS8AUjVA3ETEPcB8TEg1gJiA6AFF6mVTP8Cqa1AHA3En4A4HGj4KmolUxuo2jKgoZ+hwnJkZzSggRXQVCILxCCXcwHxB6DhglB5ULhrAvE3aAJ4CcQrgPLl6Gax4LC4HRoMS6Au/whlw0AkEEcBsSgQ/wNiUIYrA+JyojIaNGPVEMpESOqDcWU6FjzBVwoMClki4gnkAw9ckrgsSANiXyA2IbLQBMVJLykW7IbGASMoFAklFCi+RYoFoEiOILHovwTE+qNV5uCzACDAAAyA+O0wNkyeAAAAAElFTkSuQmCC', vR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNThFQzM5MzA0QTAxMUYwOUM4OEVDRTg0NDNGMTVFRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyNThFQzM5NDA0QTAxMUYwOUM4OEVDRTg0NDNGMTVFRCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI1OEVDMzkxMDRBMDExRjA5Qzg4RUNFODQ0M0YxNUVEIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI1OEVDMzkyMDRBMDExRjA5Qzg4RUNFODQ0M0YxNUVEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pP6Z1wAAActJREFUeNrslU0oRFEUgGc0SZSyEgslyQJlwcKoiRhZmITISspGfrYkKZGSiPwmKwvT2FDYTLEQMYqNRFnIhq2FUtOk8R2dqZum9ybGQtz6Or1z3vm55517nzMajTp+cjn/RoK9U4cb0QXb0Ax+n9txlJQEBC9CnEGWoX4BN0muv5WA4OWIQ8iMY36FWpKErBKk2BQwbARfg0FY0ud0mPzSDqi8GNELy7Au7YBUqo2oXZxuoB16YAPbRUI7wLkQcaoJ5qENTsCn9hrEJbTCOPTDMfoS2wS8VIc4N9riFTUMwa3qHqEPVqBFdWkQwr/Bbge9xrRIeypgCh5owUcC5B1CmINStcvKgAHLb0AFHkRsvn0E20/gjFRqS2U14BM07a5P75sVuHGWXudJxTg+G0Fll2WyM6g3fOR7BK1a5IewMaJPsAA5BC3Q4PmIbB3Rexgz/DctvwFV7iCqIKKqK+iAGa1YliRYhE6drtjy4B9I9BxU6qRIldPQKJNCgLBxDiR4N4zqOTj4ylWxpYfJYbQkFyZUd0Bgr9UQuGyGZFVnXd4biWOfTcZtKhfesR6m2HqDaqo/Sdb/oF77Lf+DJggQfPf/l/k7ErwLMAD7ZaivKPmX5QAAAABJRU5ErkJggg==', mR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMjY5ODg3NzA0QTAxMUYwODZCMjhGNzk0OUU0MjE4QiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMjY5ODg3ODA0QTAxMUYwODZCMjhGNzk0OUU0MjE4QiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjEyNjk4ODc1MDRBMDExRjA4NkIyOEY3OTQ5RTQyMThCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjEyNjk4ODc2MDRBMDExRjA4NkIyOEY3OTQ5RTQyMThCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+xq8E1gAAAbpJREFUeNrslU0rRVEUhu/lyvfIQEgGGBAjRRkYSCmfExnL4JZiLkyI/+APGFCKJIWRgSIMTCT5FiFfxXUJx7NqqdWJc06kDJx62vus+5797r3W3vuGHccJ/eYT/jf4scHMcmiYphSuoArWIR0umqtD3X4GkQCT2Id+816u7UCQFSQE0GxouwANMAGOiQdfAenopakzoRGo1v44KZlD80y/HRrp39EOGf0qmr4va8AH7oJIOqLQA2cwBzVQJHIYhDX7AQZhrxQduN5lYCnyKORApw4+Bl3Q5tKf+hX5xfUe1YElVfOQBZKWQzXucOlf/QyS4A0ezAqbFSnyJhRDi/4eM4OmQaKfQT4cQ5mJbUGupiRTzSsgD7KNbhEq/QxkxjEKdW8KH6eJE9s1sWsxcOluZNN4nmRE53pKZ42mCZJh0sTkPGTomfh4amWCmGZ5GezoLvnuc4RBgdc2LdStmgKp2p7Ak64sXYu5p/pUo1vRGnrWQHL4yCyezKqkHyEWM7GPQxU3sdvPavDZZVeCeErFjq4q9sVNO60aoT7IbbokBtBqYpfu60DuHE1Li4nJCrb//zL/nsG7AAMAXYSTZ/6msQ8AAAAASUVORK5CYII=', yR = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20fill='white'%20d='M195.2%20195.2a64%2064%200%200%201%2090.496%200L512%20421.504%20738.304%20195.2a64%2064%200%200%201%2090.496%2090.496L602.496%20512%20828.8%20738.304a64%2064%200%200%201-90.496%2090.496L512%20602.496%20285.696%20828.8a64%2064%200%200%201-90.496-90.496L421.504%20512%20195.2%20285.696a64%2064%200%200%201%200-90.496z'%3e%3c/path%3e%3c/svg%3e", wR = '/low_altitude_interface/assets/alert-haze-D4NH_G_e.png', RR = '/low_altitude_interface/assets/alert-rain-xrlzTbsn.png', IR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFUAAABVCAYAAAA49ahaAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QTZBQzY4NEZFNUQxMUVGQkFBMERCNEU1RDYwQkNDNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QTZBQzY4NUZFNUQxMUVGQkFBMERCNEU1RDYwQkNDNCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRBNkFDNjgyRkU1RDExRUZCQUEwREI0RTVENjBCQ0M0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRBNkFDNjgzRkU1RDExRUZCQUEwREI0RTVENjBCQ0M0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+e6XqAgAADEBJREFUeNrsnX+MXFUV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', ER = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFQzI3ODBGRDAzQkUxMUYwQUEwNjg3MTk4RDY3RDQxMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFQzI3ODBGRTAzQkUxMUYwQUEwNjg3MTk4RDY3RDQxMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVDMjc4MEZCMDNCRTExRjBBQTA2ODcxOThENjdENDEzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVDMjc4MEZDMDNCRTExRjBBQTA2ODcxOThENjdENDEzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+E8QPagAAB7pJREFUeNrsWFuIXVcZ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', MR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NjdBRjEzQTAzQkYxMUYwQTRBMDgxNzg5M0U4MkZFRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NjdBRjEzQjAzQkYxMUYwQTRBMDgxNzg5M0U4MkZFRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc2N0FGMTM4MDNCRjExRjBBNEEwODE3ODkzRTgyRkVGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc2N0FGMTM5MDNCRjExRjBBNEEwODE3ODkzRTgyRkVGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+36ueCAAABv5JREFUeNrsWEuIJVcZ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', DR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowNkUyREI5RDAzQkYxMUYwQUM4ODg5NUNGMDFBMTFEQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowNkUyREI5RTAzQkYxMUYwQUM4ODg5NUNGMDFBMTFEQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA2RTJEQjlCMDNCRjExRjBBQzg4ODk1Q0YwMUExMURCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA2RTJEQjlDMDNCRjExRjBBQzg4ODk1Q0YwMUExMURCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+2rQZqwAACPNJREFUeNrsWFuMXWUV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', ZR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGM0Q1MTREQTAzQkUxMUYwODI2OTk4RTVBNTQzMjRFRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGM0Q1MTREQjAzQkUxMUYwODI2OTk4RTVBNTQzMjRFRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkYzRDUxNEQ4MDNCRTExRjA4MjY5OThFNUE1NDMyNEVGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkYzRDUxNEQ5MDNCRTExRjA4MjY5OThFNUE1NDMyNEVGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+yOqAiQAAB2dJREFUeNrsWEuMHFcV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', SR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxNzBENzVGRTAzQkYxMUYwOUM5NDgyNEY2OUM0MzQ3NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxNzBENzVGRjAzQkYxMUYwOUM5NDgyNEY2OUM0MzQ3NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE3MEQ3NUZDMDNCRjExRjA5Qzk0ODI0RjY5QzQzNDc2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE3MEQ3NUZEMDNCRjExRjA5Qzk0ODI0RjY5QzQzNDc2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1yx2WAAAB5hJREFUeNrsWG2IXFcZ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', NR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRTQyM0U5ODAzQkUxMUYwQTk5QUZBOEM4RjQ1OEQzQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRTQyM0U5OTAzQkUxMUYwQTk5QUZBOEM4RjQ1OEQzQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZFNDIzRTk2MDNCRTExRjBBOTlBRkE4QzhGNDU4RDNCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZFNDIzRTk3MDNCRTExRjBBOTlBRkE4QzhGNDU4RDNCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+OZfBwwAABtlJREFUeNrsWM2vXVMU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', jR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2RTFDN0FGQTAzQkYxMUYwQkU2QjhBMEQ3QzEzQkM0MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2RTFDN0FGQjAzQkYxMUYwQkU2QjhBMEQ3QzEzQkM0MCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZFMUM3QUY4MDNCRjExRjBCRTZCOEEwRDdDMTNCQzQwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZFMUM3QUY5MDNCRjExRjBCRTZCOEEwRDdDMTNCQzQwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+tXvG2AAAB1RJREFUeNrsWFuIXVcZ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', GR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NjJBN0M1QjAzQkYxMUYwQkEwREJBRjQzQkU3MkIwOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NjJBN0M1QzAzQkYxMUYwQkEwREJBRjQzQkU3MkIwOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY2MkE3QzU5MDNCRjExRjBCQTBEQkFGNDNCRTcyQjA4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY2MkE3QzVBMDNCRjExRjBCQTBEQkFGNDNCRTcyQjA4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+PP4rBwAABq1JREFUeNrsWEuMFFUU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', kR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEOTY0NzQ5MjAzQkUxMUYwOUEzOEJFRjUyMUQwQjMzRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEOTY0NzQ5MzAzQkUxMUYwOUEzOEJFRjUyMUQwQjMzRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ5NjQ3NDkwMDNCRTExRjA5QTM4QkVGNTIxRDBCMzNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ5NjQ3NDkxMDNCRTExRjA5QTM4QkVGNTIxRDBCMzNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+di2m1wAABlpJREFUeNrsWF+IVFUc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', BR = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowRTJFNURFQTAzQkYxMUYwQkM0RDlFQUI2RTRBNkQ1MiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowRTJFNURFQjAzQkYxMUYwQkM0RDlFQUI2RTRBNkQ1MiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjBFMkU1REU4MDNCRjExRjBCQzREOUVBQjZFNEE2RDUyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBFMkU1REU5MDNCRjExRjBCQzREOUVBQjZFNEE2RDUyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+W6VGZwAABxVJREFUeNrsWFtsXNUV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', YR = '/low_altitude_interface/assets/MoveCar-CrFAlbrg.json', UR = 'data:application/json;base64,Ww0KICB7DQogICAgInRpdGxlIjogIuWFqOW4gueZveaooSIsDQogICAgIkRfQ09ERSI6ICJEODUwMzAxMDMyMDI0MDkiLA0KICAgICJpZCI6ICJEODUwMzAxMDMyMDI0MDkwMSIsDQogICAgInZpc2libGUiOiBmYWxzZSwNCiAgICAib3BhY2l0eSI6IDEsDQogICAgInR5cGUiOiAic2NlbmUiDQogIH0sDQogIHsNCiAgICAidGl0bGUiOiAi5b2x5YOP5bqV5Zu+IiwNCiAgICAiRF9DT0RFIjogIjUwMTE1MDM2IiwNCiAgICAiaWQiOiAiNTAxMTUwMzYiLA0KICAgICJ1cmwiOiAiIiwNCiAgICAidmlzaWJsZSI6IGZhbHNlLA0KICAgICJvcGFjaXR5IjogMSwNCiAgICAidHlwZSI6ICJ0aWxlIg0KICB9DQpdDQo=', TR = '/low_altitude_interface/assets/shifei-DT3q3x2E.json' function Yo(e) { return new URL( Object.assign({ '/src/assets/images/buttons/alert-dl-h.png': Dm, '/src/assets/images/buttons/alert-dl.png': Zm, '/src/assets/images/buttons/alert-ky-h.png': Sm, '/src/assets/images/buttons/alert-ky.png': Nm, '/src/assets/images/buttons/alert-ph-h.png': jm, '/src/assets/images/buttons/alert-ph.png': Gm, '/src/assets/images/buttons/alert-pz-h.png': km, '/src/assets/images/buttons/alert-pz.png': Bm, '/src/assets/images/buttons/alert-tq-h.png': Ym, '/src/assets/images/buttons/alert-tq.png': Um, '/src/assets/images/buttons/btn-check.png': Tm, '/src/assets/images/buttons/btn-delete.png': Jm, '/src/assets/images/buttons/btn-dropdown.png': Cm, '/src/assets/images/buttons/btn-edit.png': Om, '/src/assets/images/buttons/btn-main.png': zm, '/src/assets/images/buttons/btn-mesh.png': Wm, '/src/assets/images/buttons/btn-secondary.png': Fm, '/src/assets/images/buttons/btn-selectall.png': Lm, '/src/assets/images/buttons/switch-off.png': xm, '/src/assets/images/buttons/switch-on.png': Vm, '/src/assets/images/buttons/tool-dtqh-h.png': Qm, '/src/assets/images/buttons/tool-dtqh.png': Xm, '/src/assets/images/buttons/tool-fcky-h.png': Pm, '/src/assets/images/buttons/tool-fcky.png': Hm, '/src/assets/images/buttons/tool-hxhs-h.png': Km, '/src/assets/images/buttons/tool-hxhs.png': qm, '/src/assets/images/buttons/tool-kyhs-h.png': _m, '/src/assets/images/buttons/tool-kyhs.png': $m, '/src/assets/images/buttons/tool-kysg-h.png': ey, '/src/assets/images/buttons/tool-kysg.png': ty, '/src/assets/images/buttons/tool-kytc-h.png': ny, '/src/assets/images/buttons/tool-kytc.png': iy, '/src/assets/images/buttons/tool-qjchs-h.png': sy, '/src/assets/images/buttons/tool-qjchs.png': oy, '/src/assets/images/buttons/tool-qjll-h.png': ay, '/src/assets/images/buttons/tool-qjll.png': ry, '/src/assets/images/buttons/tool-sgzy-h.png': ly, '/src/assets/images/buttons/tool-sgzy.png': cy, '/src/assets/images/buttons/tool-tsjs-h.png': uy, '/src/assets/images/buttons/tool-tsjs.png': dy, '/src/assets/images/buttons/tool2-kypm-h.png': py, '/src/assets/images/buttons/tool2-kypm.png': Ay, '/src/assets/images/buttons/tool2-sgzy-h.png': gy, '/src/assets/images/buttons/tool2-sgzy.png': fy, '/src/assets/images/layout/arrow-down.png': by, '/src/assets/images/layout/arrow-up.png': hy, '/src/assets/images/layout/bg-footer-deco-left.png': vy, '/src/assets/images/layout/bg-footer-deco-right.png': my, '/src/assets/images/layout/bg-footer-deco.png': yy, '/src/assets/images/layout/bg-footer.png': wy, '/src/assets/images/layout/bg-footer_large.png': Ry, '/src/assets/images/layout/bg-header.png': Iy, '/src/assets/images/layout/bg-header_large.png': Ey, '/src/assets/images/layout/bg-home.jpg': My, '/src/assets/images/layout/bg-login-form.png': Dy, '/src/assets/images/layout/bg-login.jpg': Zy, '/src/assets/images/layout/bg-masking.png': Sy, '/src/assets/images/layout/bg-text-line.png': Ny, '/src/assets/images/layout/btn-link.png': jy, '/src/assets/images/layout/icon-account.png': Gy, '/src/assets/images/layout/icon-bdby-h.png': ky, '/src/assets/images/layout/icon-bdby.png': By, '/src/assets/images/layout/icon-code.png': Yy, '/src/assets/images/layout/icon-csps-h.png': Uy, '/src/assets/images/layout/icon-csps.png': Ty, '/src/assets/images/layout/icon-password.png': Jy, '/src/assets/images/layout/logo.png': Cy, '/src/assets/images/layout/module-aid.png': Oy, '/src/assets/images/layout/module-area.png': zy, '/src/assets/images/layout/module-flight.png': Wy, '/src/assets/images/layout/module-info.png': Fy, '/src/assets/images/layout/module-monitor.png': Ly, '/src/assets/images/layout/module-scene.png': xy, '/src/assets/images/layout/user-bg.png': Vy, '/src/assets/images/motion/bg-uav.webm': Qy, '/src/assets/images/page/alert-bg-dl.png': Xy, '/src/assets/images/page/alert-bg-ky.png': Py, '/src/assets/images/page/alert-bg-ph.png': Hy, '/src/assets/images/page/alert-bg-pz.png': Ky, '/src/assets/images/page/alert-bg-tq.png': qy, '/src/assets/images/page/basemap-dark-h.png': _y, '/src/assets/images/page/basemap-dark.png': $y, '/src/assets/images/page/basemap-light-h.png': ew, '/src/assets/images/page/basemap-light.png': tw, '/src/assets/images/page/basemap-rs-h.png': nw, '/src/assets/images/page/basemap-rs.png': iw, '/src/assets/images/page/bg-chart-title.png': sw, '/src/assets/images/page/bg-des.png': ow, '/src/assets/images/page/bg-dialog-l.png': aw, '/src/assets/images/page/bg-dialog-s.png': rw, '/src/assets/images/page/bg-dialog-wide.png': lw, '/src/assets/images/page/bg-dialog.png': cw, '/src/assets/images/page/bg-fxjhzs.png': uw, '/src/assets/images/page/bg-gjzs.png': dw, '/src/assets/images/page/bg-label.png': pw, '/src/assets/images/page/bg-label2.png': Aw, '/src/assets/images/page/bg-plan-h.png': gw, '/src/assets/images/page/bg-plan.png': fw, '/src/assets/images/page/bg-plate.png': bw, '/src/assets/images/page/bg-rank-1.png': hw, '/src/assets/images/page/bg-rank-2.png': vw, '/src/assets/images/page/bg-rank-3.png': mw, '/src/assets/images/page/bg-table-row.png': yw, '/src/assets/images/page/bg-text-line.png': ww, '/src/assets/images/page/bg-text-line2.png': Rw, '/src/assets/images/page/bg-title-2.png': Iw, '/src/assets/images/page/bg-title.png': Ew, '/src/assets/images/page/icon-clock.png': Mw, '/src/assets/images/page/icon-cube-1.png': Dw, '/src/assets/images/page/icon-cube-2.png': Zw, '/src/assets/images/page/icon-cube-3.png': Sw, '/src/assets/images/page/icon-cube-4.png': Nw, '/src/assets/images/page/icon-cube-5.png': jw, '/src/assets/images/page/icon-cube-6.png': Gw, '/src/assets/images/page/icon-distance.png': kw, '/src/assets/images/page/icon-draw.png': Bw, '/src/assets/images/page/icon-flag.png': Yw, '/src/assets/images/page/icon-location.png': Uw, '/src/assets/images/page/icon-plane.png': Tw, '/src/assets/images/page/icon-rule.png': Jw, '/src/assets/images/page/icon-sta-cky.png': Cw, '/src/assets/images/page/icon-sta-hkq.png': Ow, '/src/assets/images/page/icon-sta-hx.png': zw, '/src/assets/images/page/icon-sta-ky.png': Ww, '/src/assets/images/page/icon-sta-qjd.png': Fw, '/src/assets/images/page/icon-sta-qy.png': Lw, '/src/assets/images/page/icon-step-h.png': xw, '/src/assets/images/page/icon-step.png': Vw, '/src/assets/images/page/icon-uav.png': Qw, '/src/assets/images/page/icon-upload.png': Xw, '/src/assets/images/page/slider-bg.png': Pw, '/src/assets/images/page/stick-1.png': Hw, '/src/assets/images/page/stick-2.png': Kw, '/src/assets/images/page/stick-3.png': qw, '/src/assets/images/page/stick-4.png': _w, '/src/assets/images/page/stick-5.png': $w, '/src/assets/images/resources/dcgrao.png': eR, '/src/assets/images/resources/dlu.png': tR, '/src/assets/images/resources/dxing.png': nR, '/src/assets/images/resources/gdjtong.png': iR, '/src/assets/images/resources/gjdmxing.png': sR, '/src/assets/images/resources/hliu.png': oR, '/src/assets/images/resources/hxian.png': aR, '/src/assets/images/resources/jfqu.png': rR, '/src/assets/images/resources/jkqu.png': lR, '/src/assets/images/resources/lhua.png': cR, '/src/assets/images/resources/qjchang.png': uR, '/src/assets/images/resources/qsjzwu.png': dR, '/src/assets/images/resources/rkou.png': pR, '/src/assets/images/resources/sfqu.png': AR, '/src/assets/images/resources/tlu.png': gR, '/src/assets/images/resources/wxtxjzhan.png': fR, '/src/assets/images/resources/xxiao.png': bR, '/src/assets/images/resources/ypfkyu.png': hR, '/src/assets/images/resources/yyuan.png': vR, '/src/assets/images/resources/zfbmen.png': mR, '/src/assets/images/svg/close.svg': yR, '/src/assets/images/weather/alert-haze.png': wR, '/src/assets/images/weather/alert-rain.png': RR, '/src/assets/images/weather/alert-wind.png': IR, '/src/assets/images/weather/cloudy.png': ER, '/src/assets/images/weather/foggy.png': MR, '/src/assets/images/weather/haze.png': DR, '/src/assets/images/weather/rain-l.png': ZR, '/src/assets/images/weather/rain-m.png': SR, '/src/assets/images/weather/rain-s.png': NR, '/src/assets/images/weather/snow-l.png': jR, '/src/assets/images/weather/snow-s.png': GR, '/src/assets/images/weather/sunny.png': kR, '/src/assets/images/weather/windy.png': BR, })[`/src/assets/images/${e}`], import.meta.url ).href } async function JR(e) { return await ( await fetch( new URL( Object.assign({ '/src/data/MoveCar.json': YR, '/src/data/resources.json': UR, '/src/data/shifei.json': TR })[ `/src/data/${e}` ], import.meta.url ).href ) ).json() } const Kt = (e, t) => { const n = e.__vccOpts || e for (const [i, s] of t) n[i] = s return n }, CR = { uav: ['fcky', 'cube', 'kysg', 'tsjs_gis', 'layers_legend'], kysg: ['uav', 'tsjs_gis', 'layers_legend'], fcky: ['uav', 'cube'], cube: ['uav', 'fcky'], tsjs_gis: ['uav', 'kysg', 'layers_legend'], layers_legend: ['kysg', 'uav', 'tsjs_gis'], } let ki = {} const Qn = co('layout', { state: () => ({ globalLoading: !1, sceneLoading: !1, leftCollapse: !0, rightCollapse: !0, footerCollapse: !0, sceneType: 'gis', mapScene: 'rs', leftPanelType: 'default', floatPanels: { uav: !1, kysg: !1, fcky: !1, cube: !1, tsjs_gis: !1, layers_legend: !1 }, uavMonitorOn: !1, toolsActive: {}, }), getters: {}, actions: { toggleGlobalLoading(e) { this.globalLoading = e }, toggleAside(e, t) { ;['left', 'right'].includes(e) && (e === 'left' ? (this.leftCollapse = t) : (this.rightCollapse = t)) }, toggleFooter(e) { this.footerCollapse = e }, toggleScene(e) { e && ['ue', 'gis'].includes(e) ? (this.sceneType = e) : (this.sceneType = this.sceneType === 'ue' ? 'gis' : 'ue') }, setMapScene(e) { this.mapScene = e }, setLeftPanel(e) { this.leftPanelType = e }, toggleFloatPanel(e, t) { ;(this.floatPanels[e] = t), t && CR[e].forEach((n) => { this.floatPanels[n] = !1 }) }, toggleUavMonitor(e) { e ? ((ki.left = this.leftCollapse), (ki.right = this.rightCollapse), (this.uavMonitorOn = this.leftCollapse = this.rightCollapse = !0)) : ((this.uavMonitorOn = !1), (this.leftCollapse = ki.left), (this.rightCollapse = ki.right)) }, }, }) let Uo = { bridgeContent: {} } function ic(e, t) { return function () { return e.apply(t, arguments) } } const { toString: OR } = Object.prototype, { getPrototypeOf: To } = Object, As = ((e) => (t) => { const n = OR.call(t) return e[n] || (e[n] = n.slice(8, -1).toLowerCase()) })(Object.create(null)), wt = (e) => ((e = e.toLowerCase()), (t) => As(t) === e), gs = (e) => (t) => typeof t === e, { isArray: Xn } = Array, ui = gs('undefined') function zR(e) { return ( e !== null && !ui(e) && e.constructor !== null && !ui(e.constructor) && nt(e.constructor.isBuffer) && e.constructor.isBuffer(e) ) } const sc = wt('ArrayBuffer') function WR(e) { let t return ( typeof ArrayBuffer < 'u' && ArrayBuffer.isView ? (t = ArrayBuffer.isView(e)) : (t = e && e.buffer && sc(e.buffer)), t ) } const FR = gs('string'), nt = gs('function'), oc = gs('number'), fs = (e) => e !== null && typeof e == 'object', LR = (e) => e === !0 || e === !1, Ci = (e) => { if (As(e) !== 'object') return !1 const t = To(e) return ( (t === null || t === Object.prototype || Object.getPrototypeOf(t) === null) && !(Symbol.toStringTag in e) && !(Symbol.iterator in e) ) }, xR = wt('Date'), VR = wt('File'), QR = wt('Blob'), XR = wt('FileList'), PR = (e) => fs(e) && nt(e.pipe), HR = (e) => { let t return ( e && ((typeof FormData == 'function' && e instanceof FormData) || (nt(e.append) && ((t = As(e)) === 'formdata' || (t === 'object' && nt(e.toString) && e.toString() === '[object FormData]')))) ) }, KR = wt('URLSearchParams'), [qR, _R, $R, eI] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(wt), tI = (e) => (e.trim ? e.trim() : e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '')) function hi(e, t, { allOwnKeys: n = !1 } = {}) { if (e === null || typeof e > 'u') return let i, s if ((typeof e != 'object' && (e = [e]), Xn(e))) for (i = 0, s = e.length; i < s; i++) t.call(null, e[i], i, e) else { const a = n ? Object.getOwnPropertyNames(e) : Object.keys(e), o = a.length let r for (i = 0; i < o; i++) (r = a[i]), t.call(null, e[r], r, e) } } function ac(e, t) { t = t.toLowerCase() const n = Object.keys(e) let i = n.length, s for (; i-- > 0; ) if (((s = n[i]), t === s.toLowerCase())) return s return null } const sn = typeof globalThis < 'u' ? globalThis : typeof self < 'u' ? self : typeof window < 'u' ? window : global, rc = (e) => !ui(e) && e !== sn function $s() { const { caseless: e } = (rc(this) && this) || {}, t = {}, n = (i, s) => { const a = (e && ac(t, s)) || s Ci(t[a]) && Ci(i) ? (t[a] = $s(t[a], i)) : Ci(i) ? (t[a] = $s({}, i)) : Xn(i) ? (t[a] = i.slice()) : (t[a] = i) } for (let i = 0, s = arguments.length; i < s; i++) arguments[i] && hi(arguments[i], n) return t } const nI = (e, t, n, { allOwnKeys: i } = {}) => ( hi( t, (s, a) => { n && nt(s) ? (e[a] = ic(s, n)) : (e[a] = s) }, { allOwnKeys: i } ), e ), iI = (e) => (e.charCodeAt(0) === 65279 && (e = e.slice(1)), e), sI = (e, t, n, i) => { ;(e.prototype = Object.create(t.prototype, i)), (e.prototype.constructor = e), Object.defineProperty(e, 'super', { value: t.prototype }), n && Object.assign(e.prototype, n) }, oI = (e, t, n, i) => { let s, a, o const r = {} if (((t = t || {}), e == null)) return t do { for (s = Object.getOwnPropertyNames(e), a = s.length; a-- > 0; ) (o = s[a]), (!i || i(o, e, t)) && !r[o] && ((t[o] = e[o]), (r[o] = !0)) e = n !== !1 && To(e) } while (e && (!n || n(e, t)) && e !== Object.prototype) return t }, aI = (e, t, n) => { ;(e = String(e)), (n === void 0 || n > e.length) && (n = e.length), (n -= t.length) const i = e.indexOf(t, n) return i !== -1 && i === n }, rI = (e) => { if (!e) return null if (Xn(e)) return e let t = e.length if (!oc(t)) return null const n = new Array(t) for (; t-- > 0; ) n[t] = e[t] return n }, lI = ( (e) => (t) => e && t instanceof e )(typeof Uint8Array < 'u' && To(Uint8Array)), cI = (e, t) => { const i = (e && e[Symbol.iterator]).call(e) let s for (; (s = i.next()) && !s.done; ) { const a = s.value t.call(e, a[0], a[1]) } }, uI = (e, t) => { let n const i = [] for (; (n = e.exec(t)) !== null; ) i.push(n) return i }, dI = wt('HTMLFormElement'), pI = (e) => e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function (n, i, s) { return i.toUpperCase() + s }), dr = ( ({ hasOwnProperty: e }) => (t, n) => e.call(t, n) )(Object.prototype), AI = wt('RegExp'), lc = (e, t) => { const n = Object.getOwnPropertyDescriptors(e), i = {} hi(n, (s, a) => { let o ;(o = t(s, a, e)) !== !1 && (i[a] = o || s) }), Object.defineProperties(e, i) }, gI = (e) => { lc(e, (t, n) => { if (nt(e) && ['arguments', 'caller', 'callee'].indexOf(n) !== -1) return !1 const i = e[n] if (nt(i)) { if (((t.enumerable = !1), 'writable' in t)) { t.writable = !1 return } t.set || (t.set = () => { throw Error("Can not rewrite read-only method '" + n + "'") }) } }) }, fI = (e, t) => { const n = {}, i = (s) => { s.forEach((a) => { n[a] = !0 }) } return Xn(e) ? i(e) : i(String(e).split(t)), n }, bI = () => {}, hI = (e, t) => (e != null && Number.isFinite((e = +e)) ? e : t) function vI(e) { return !!(e && nt(e.append) && e[Symbol.toStringTag] === 'FormData' && e[Symbol.iterator]) } const mI = (e) => { const t = new Array(10), n = (i, s) => { if (fs(i)) { if (t.indexOf(i) >= 0) return if (!('toJSON' in i)) { t[s] = i const a = Xn(i) ? [] : {} return ( hi(i, (o, r) => { const l = n(o, s + 1) !ui(l) && (a[r] = l) }), (t[s] = void 0), a ) } } return i } return n(e, 0) }, yI = wt('AsyncFunction'), wI = (e) => e && (fs(e) || nt(e)) && nt(e.then) && nt(e.catch), cc = ((e, t) => e ? setImmediate : t ? ((n, i) => ( sn.addEventListener( 'message', ({ source: s, data: a }) => { s === sn && a === n && i.length && i.shift()() }, !1 ), (s) => { i.push(s), sn.postMessage(n, '*') } ))(`axios@${Math.random()}`, []) : (n) => setTimeout(n))(typeof setImmediate == 'function', nt(sn.postMessage)), RI = typeof queueMicrotask < 'u' ? queueMicrotask.bind(sn) : (typeof process < 'u' && process.nextTick) || cc, S = { isArray: Xn, isArrayBuffer: sc, isBuffer: zR, isFormData: HR, isArrayBufferView: WR, isString: FR, isNumber: oc, isBoolean: LR, isObject: fs, isPlainObject: Ci, isReadableStream: qR, isRequest: _R, isResponse: $R, isHeaders: eI, isUndefined: ui, isDate: xR, isFile: VR, isBlob: QR, isRegExp: AI, isFunction: nt, isStream: PR, isURLSearchParams: KR, isTypedArray: lI, isFileList: XR, forEach: hi, merge: $s, extend: nI, trim: tI, stripBOM: iI, inherits: sI, toFlatObject: oI, kindOf: As, kindOfTest: wt, endsWith: aI, toArray: rI, forEachEntry: cI, matchAll: uI, isHTMLForm: dI, hasOwnProperty: dr, hasOwnProp: dr, reduceDescriptors: lc, freezeMethods: gI, toObjectSet: fI, toCamelCase: pI, noop: bI, toFiniteNumber: hI, findKey: ac, global: sn, isContextDefined: rc, isSpecCompliantForm: vI, toJSONObject: mI, isAsyncFn: yI, isThenable: wI, setImmediate: cc, asap: RI, } function te(e, t, n, i, s) { Error.call(this), Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : (this.stack = new Error().stack), (this.message = e), (this.name = 'AxiosError'), t && (this.code = t), n && (this.config = n), i && (this.request = i), s && ((this.response = s), (this.status = s.status ? s.status : null)) } S.inherits(te, Error, { toJSON: function () { return { message: this.message, name: this.name, description: this.description, number: this.number, fileName: this.fileName, lineNumber: this.lineNumber, columnNumber: this.columnNumber, stack: this.stack, config: S.toJSONObject(this.config), code: this.code, status: this.status, } }, }) const uc = te.prototype, dc = {} ;[ 'ERR_BAD_OPTION_VALUE', 'ERR_BAD_OPTION', 'ECONNABORTED', 'ETIMEDOUT', 'ERR_NETWORK', 'ERR_FR_TOO_MANY_REDIRECTS', 'ERR_DEPRECATED', 'ERR_BAD_RESPONSE', 'ERR_BAD_REQUEST', 'ERR_CANCELED', 'ERR_NOT_SUPPORT', 'ERR_INVALID_URL', ].forEach((e) => { dc[e] = { value: e } }) Object.defineProperties(te, dc) Object.defineProperty(uc, 'isAxiosError', { value: !0 }) te.from = (e, t, n, i, s, a) => { const o = Object.create(uc) return ( S.toFlatObject( e, o, function (l) { return l !== Error.prototype }, (r) => r !== 'isAxiosError' ), te.call(o, e.message, t, n, i, s), (o.cause = e), (o.name = e.name), a && Object.assign(o, a), o ) } const II = null function eo(e) { return S.isPlainObject(e) || S.isArray(e) } function pc(e) { return S.endsWith(e, '[]') ? e.slice(0, -2) : e } function pr(e, t, n) { return e ? e .concat(t) .map(function (s, a) { return (s = pc(s)), !n && a ? '[' + s + ']' : s }) .join(n ? '.' : '') : t } function EI(e) { return S.isArray(e) && !e.some(eo) } const MI = S.toFlatObject(S, {}, null, function (t) { return /^is[A-Z]/.test(t) }) function bs(e, t, n) { if (!S.isObject(e)) throw new TypeError('target must be an object') ;(t = t || new FormData()), (n = S.toFlatObject(n, { metaTokens: !0, dots: !1, indexes: !1 }, !1, function (p, v) { return !S.isUndefined(v[p]) })) const i = n.metaTokens, s = n.visitor || c, a = n.dots, o = n.indexes, l = (n.Blob || (typeof Blob < 'u' && Blob)) && S.isSpecCompliantForm(t) if (!S.isFunction(s)) throw new TypeError('visitor must be a function') function d(u) { if (u === null) return '' if (S.isDate(u)) return u.toISOString() if (!l && S.isBlob(u)) throw new te('Blob is not supported. Use a Buffer instead.') return S.isArrayBuffer(u) || S.isTypedArray(u) ? l && typeof Blob == 'function' ? new Blob([u]) : Buffer.from(u) : u } function c(u, p, v) { let f = u if (u && !v && typeof u == 'object') { if (S.endsWith(p, '{}')) (p = i ? p : p.slice(0, -2)), (u = JSON.stringify(u)) else if ((S.isArray(u) && EI(u)) || ((S.isFileList(u) || S.endsWith(p, '[]')) && (f = S.toArray(u)))) return ( (p = pc(p)), f.forEach(function (R, I) { !(S.isUndefined(R) || R === null) && t.append(o === !0 ? pr([p], I, a) : o === null ? p : p + '[]', d(R)) }), !1 ) } return eo(u) ? !0 : (t.append(pr(v, p, a), d(u)), !1) } const A = [], g = Object.assign(MI, { defaultVisitor: c, convertValue: d, isVisitable: eo }) function b(u, p) { if (!S.isUndefined(u)) { if (A.indexOf(u) !== -1) throw Error('Circular reference detected in ' + p.join('.')) A.push(u), S.forEach(u, function (f, w) { ;(!(S.isUndefined(f) || f === null) && s.call(t, f, S.isString(w) ? w.trim() : w, p, g)) === !0 && b(f, p ? p.concat(w) : [w]) }), A.pop() } } if (!S.isObject(e)) throw new TypeError('data must be an object') return b(e), t } function Ar(e) { const t = { '!': '%21', "'": '%27', '(': '%28', ')': '%29', '~': '%7E', '%20': '+', '%00': '\0' } return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g, function (i) { return t[i] }) } function Jo(e, t) { ;(this._pairs = []), e && bs(e, this, t) } const Ac = Jo.prototype Ac.append = function (t, n) { this._pairs.push([t, n]) } Ac.toString = function (t) { const n = t ? function (i) { return t.call(this, i, Ar) } : Ar return this._pairs .map(function (s) { return n(s[0]) + '=' + n(s[1]) }, '') .join('&') } function DI(e) { return encodeURIComponent(e) .replace(/%3A/gi, ':') .replace(/%24/g, '$') .replace(/%2C/gi, ',') .replace(/%20/g, '+') .replace(/%5B/gi, '[') .replace(/%5D/gi, ']') } function gc(e, t, n) { if (!t) return e const i = (n && n.encode) || DI S.isFunction(n) && (n = { serialize: n }) const s = n && n.serialize let a if ((s ? (a = s(t, n)) : (a = S.isURLSearchParams(t) ? t.toString() : new Jo(t, n).toString(i)), a)) { const o = e.indexOf('#') o !== -1 && (e = e.slice(0, o)), (e += (e.indexOf('?') === -1 ? '?' : '&') + a) } return e } class gr { constructor() { this.handlers = [] } use(t, n, i) { return ( this.handlers.push({ fulfilled: t, rejected: n, synchronous: i ? i.synchronous : !1, runWhen: i ? i.runWhen : null, }), this.handlers.length - 1 ) } eject(t) { this.handlers[t] && (this.handlers[t] = null) } clear() { this.handlers && (this.handlers = []) } forEach(t) { S.forEach(this.handlers, function (i) { i !== null && t(i) }) } } const fc = { silentJSONParsing: !0, forcedJSONParsing: !0, clarifyTimeoutError: !1 }, ZI = typeof URLSearchParams < 'u' ? URLSearchParams : Jo, SI = typeof FormData < 'u' ? FormData : null, NI = typeof Blob < 'u' ? Blob : null, jI = { isBrowser: !0, classes: { URLSearchParams: ZI, FormData: SI, Blob: NI }, protocols: ['http', 'https', 'file', 'blob', 'url', 'data'], }, Co = typeof window < 'u' && typeof document < 'u', to = (typeof navigator == 'object' && navigator) || void 0, GI = Co && (!to || ['ReactNative', 'NativeScript', 'NS'].indexOf(to.product) < 0), kI = typeof WorkerGlobalScope < 'u' && self instanceof WorkerGlobalScope && typeof self.importScripts == 'function', BI = (Co && window.location.href) || 'http://localhost', YI = Object.freeze( Object.defineProperty( { __proto__: null, hasBrowserEnv: Co, hasStandardBrowserEnv: GI, hasStandardBrowserWebWorkerEnv: kI, navigator: to, origin: BI, }, Symbol.toStringTag, { value: 'Module' } ) ), Ce = { ...YI, ...jI } function UI(e, t) { return bs( e, new Ce.classes.URLSearchParams(), Object.assign( { visitor: function (n, i, s, a) { return Ce.isNode && S.isBuffer(n) ? (this.append(i, n.toString('base64')), !1) : a.defaultVisitor.apply(this, arguments) }, }, t ) ) } function TI(e) { return S.matchAll(/\w+|\[(\w*)]/g, e).map((t) => (t[0] === '[]' ? '' : t[1] || t[0])) } function JI(e) { const t = {}, n = Object.keys(e) let i const s = n.length let a for (i = 0; i < s; i++) (a = n[i]), (t[a] = e[a]) return t } function bc(e) { function t(n, i, s, a) { let o = n[a++] if (o === '__proto__') return !0 const r = Number.isFinite(+o), l = a >= n.length return ( (o = !o && S.isArray(s) ? s.length : o), l ? (S.hasOwnProp(s, o) ? (s[o] = [s[o], i]) : (s[o] = i), !r) : ((!s[o] || !S.isObject(s[o])) && (s[o] = []), t(n, i, s[o], a) && S.isArray(s[o]) && (s[o] = JI(s[o])), !r) ) } if (S.isFormData(e) && S.isFunction(e.entries)) { const n = {} return ( S.forEachEntry(e, (i, s) => { t(TI(i), s, n, 0) }), n ) } return null } function CI(e, t, n) { if (S.isString(e)) try { return (t || JSON.parse)(e), S.trim(e) } catch (i) { if (i.name !== 'SyntaxError') throw i } return (n || JSON.stringify)(e) } const vi = { transitional: fc, adapter: ['xhr', 'http', 'fetch'], transformRequest: [ function (t, n) { const i = n.getContentType() || '', s = i.indexOf('application/json') > -1, a = S.isObject(t) if ((a && S.isHTMLForm(t) && (t = new FormData(t)), S.isFormData(t))) return s ? JSON.stringify(bc(t)) : t if (S.isArrayBuffer(t) || S.isBuffer(t) || S.isStream(t) || S.isFile(t) || S.isBlob(t) || S.isReadableStream(t)) return t if (S.isArrayBufferView(t)) return t.buffer if (S.isURLSearchParams(t)) return n.setContentType('application/x-www-form-urlencoded;charset=utf-8', !1), t.toString() let r if (a) { if (i.indexOf('application/x-www-form-urlencoded') > -1) return UI(t, this.formSerializer).toString() if ((r = S.isFileList(t)) || i.indexOf('multipart/form-data') > -1) { const l = this.env && this.env.FormData return bs(r ? { 'files[]': t } : t, l && new l(), this.formSerializer) } } return a || s ? (n.setContentType('application/json', !1), CI(t)) : t }, ], transformResponse: [ function (t) { const n = this.transitional || vi.transitional, i = n && n.forcedJSONParsing, s = this.responseType === 'json' if (S.isResponse(t) || S.isReadableStream(t)) return t if (t && S.isString(t) && ((i && !this.responseType) || s)) { const o = !(n && n.silentJSONParsing) && s try { return JSON.parse(t) } catch (r) { if (o) throw r.name === 'SyntaxError' ? te.from(r, te.ERR_BAD_RESPONSE, this, null, this.response) : r } } return t }, ], timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, env: { FormData: Ce.classes.FormData, Blob: Ce.classes.Blob }, validateStatus: function (t) { return t >= 200 && t < 300 }, headers: { common: { Accept: 'application/json, text/plain, */*', 'Content-Type': void 0 } }, } S.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (e) => { vi.headers[e] = {} }) const OI = S.toObjectSet([ 'age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent', ]), zI = (e) => { const t = {} let n, i, s return ( e && e .split( ` ` ) .forEach(function (o) { ;(s = o.indexOf(':')), (n = o.substring(0, s).trim().toLowerCase()), (i = o.substring(s + 1).trim()), !(!n || (t[n] && OI[n])) && (n === 'set-cookie' ? (t[n] ? t[n].push(i) : (t[n] = [i])) : (t[n] = t[n] ? t[n] + ', ' + i : i)) }), t ) }, fr = Symbol('internals') function ei(e) { return e && String(e).trim().toLowerCase() } function Oi(e) { return e === !1 || e == null ? e : S.isArray(e) ? e.map(Oi) : String(e) } function WI(e) { const t = Object.create(null), n = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g let i for (; (i = n.exec(e)); ) t[i[1]] = i[2] return t } const FI = (e) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()) function Ns(e, t, n, i, s) { if (S.isFunction(i)) return i.call(this, t, n) if ((s && (t = n), !!S.isString(t))) { if (S.isString(i)) return t.indexOf(i) !== -1 if (S.isRegExp(i)) return i.test(t) } } function LI(e) { return e .trim() .toLowerCase() .replace(/([a-z\d])(\w*)/g, (t, n, i) => n.toUpperCase() + i) } function xI(e, t) { const n = S.toCamelCase(' ' + t) ;['get', 'set', 'has'].forEach((i) => { Object.defineProperty(e, i + n, { value: function (s, a, o) { return this[i].call(this, t, s, a, o) }, configurable: !0, }) }) } let Ke = class { constructor(t) { t && this.set(t) } set(t, n, i) { const s = this function a(r, l, d) { const c = ei(l) if (!c) throw new Error('header name must be a non-empty string') const A = S.findKey(s, c) ;(!A || s[A] === void 0 || d === !0 || (d === void 0 && s[A] !== !1)) && (s[A || l] = Oi(r)) } const o = (r, l) => S.forEach(r, (d, c) => a(d, c, l)) if (S.isPlainObject(t) || t instanceof this.constructor) o(t, n) else if (S.isString(t) && (t = t.trim()) && !FI(t)) o(zI(t), n) else if (S.isHeaders(t)) for (const [r, l] of t.entries()) a(l, r, i) else t != null && a(n, t, i) return this } get(t, n) { if (((t = ei(t)), t)) { const i = S.findKey(this, t) if (i) { const s = this[i] if (!n) return s if (n === !0) return WI(s) if (S.isFunction(n)) return n.call(this, s, i) if (S.isRegExp(n)) return n.exec(s) throw new TypeError('parser must be boolean|regexp|function') } } } has(t, n) { if (((t = ei(t)), t)) { const i = S.findKey(this, t) return !!(i && this[i] !== void 0 && (!n || Ns(this, this[i], i, n))) } return !1 } delete(t, n) { const i = this let s = !1 function a(o) { if (((o = ei(o)), o)) { const r = S.findKey(i, o) r && (!n || Ns(i, i[r], r, n)) && (delete i[r], (s = !0)) } } return S.isArray(t) ? t.forEach(a) : a(t), s } clear(t) { const n = Object.keys(this) let i = n.length, s = !1 for (; i--; ) { const a = n[i] ;(!t || Ns(this, this[a], a, t, !0)) && (delete this[a], (s = !0)) } return s } normalize(t) { const n = this, i = {} return ( S.forEach(this, (s, a) => { const o = S.findKey(i, a) if (o) { ;(n[o] = Oi(s)), delete n[a] return } const r = t ? LI(a) : String(a).trim() r !== a && delete n[a], (n[r] = Oi(s)), (i[r] = !0) }), this ) } concat(...t) { return this.constructor.concat(this, ...t) } toJSON(t) { const n = Object.create(null) return ( S.forEach(this, (i, s) => { i != null && i !== !1 && (n[s] = t && S.isArray(i) ? i.join(', ') : i) }), n ) } [Symbol.iterator]() { return Object.entries(this.toJSON())[Symbol.iterator]() } toString() { return Object.entries(this.toJSON()).map(([t, n]) => t + ': ' + n).join(` `) } get [Symbol.toStringTag]() { return 'AxiosHeaders' } static from(t) { return t instanceof this ? t : new this(t) } static concat(t, ...n) { const i = new this(t) return n.forEach((s) => i.set(s)), i } static accessor(t) { const i = (this[fr] = this[fr] = { accessors: {} }).accessors, s = this.prototype function a(o) { const r = ei(o) i[r] || (xI(s, o), (i[r] = !0)) } return S.isArray(t) ? t.forEach(a) : a(t), this } } Ke.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']) S.reduceDescriptors(Ke.prototype, ({ value: e }, t) => { let n = t[0].toUpperCase() + t.slice(1) return { get: () => e, set(i) { this[n] = i }, } }) S.freezeMethods(Ke) function js(e, t) { const n = this || vi, i = t || n, s = Ke.from(i.headers) let a = i.data return ( S.forEach(e, function (r) { a = r.call(n, a, s.normalize(), t ? t.status : void 0) }), s.normalize(), a ) } function hc(e) { return !!(e && e.__CANCEL__) } function Pn(e, t, n) { te.call(this, e ?? 'canceled', te.ERR_CANCELED, t, n), (this.name = 'CanceledError') } S.inherits(Pn, te, { __CANCEL__: !0 }) function vc(e, t, n) { const i = n.config.validateStatus !n.status || !i || i(n.status) ? e(n) : t( new te( 'Request failed with status code ' + n.status, [te.ERR_BAD_REQUEST, te.ERR_BAD_RESPONSE][Math.floor(n.status / 100) - 4], n.config, n.request, n ) ) } function VI(e) { const t = /^([-+\w]{1,25})(:?\/\/|:)/.exec(e) return (t && t[1]) || '' } function QI(e, t) { e = e || 10 const n = new Array(e), i = new Array(e) let s = 0, a = 0, o return ( (t = t !== void 0 ? t : 1e3), function (l) { const d = Date.now(), c = i[a] o || (o = d), (n[s] = l), (i[s] = d) let A = a, g = 0 for (; A !== s; ) (g += n[A++]), (A = A % e) if (((s = (s + 1) % e), s === a && (a = (a + 1) % e), d - o < t)) return const b = c && d - c return b ? Math.round((g * 1e3) / b) : void 0 } ) } function XI(e, t) { let n = 0, i = 1e3 / t, s, a const o = (d, c = Date.now()) => { ;(n = c), (s = null), a && (clearTimeout(a), (a = null)), e.apply(null, d) } return [ (...d) => { const c = Date.now(), A = c - n A >= i ? o(d, c) : ((s = d), a || (a = setTimeout(() => { ;(a = null), o(s) }, i - A))) }, () => s && o(s), ] } const Hi = (e, t, n = 3) => { let i = 0 const s = QI(50, 250) return XI((a) => { const o = a.loaded, r = a.lengthComputable ? a.total : void 0, l = o - i, d = s(l), c = o <= r i = o const A = { loaded: o, total: r, progress: r ? o / r : void 0, bytes: l, rate: d || void 0, estimated: d && r && c ? (r - o) / d : void 0, event: a, lengthComputable: r != null, [t ? 'download' : 'upload']: !0, } e(A) }, n) }, br = (e, t) => { const n = e != null return [(i) => t[0]({ lengthComputable: n, total: e, loaded: i }), t[1]] }, hr = (e) => (...t) => S.asap(() => e(...t)), PI = Ce.hasStandardBrowserEnv ? ((e, t) => (n) => ( (n = new URL(n, Ce.origin)), e.protocol === n.protocol && e.host === n.host && (t || e.port === n.port) ))(new URL(Ce.origin), Ce.navigator && /(msie|trident)/i.test(Ce.navigator.userAgent)) : () => !0, HI = Ce.hasStandardBrowserEnv ? { write(e, t, n, i, s, a) { const o = [e + '=' + encodeURIComponent(t)] S.isNumber(n) && o.push('expires=' + new Date(n).toGMTString()), S.isString(i) && o.push('path=' + i), S.isString(s) && o.push('domain=' + s), a === !0 && o.push('secure'), (document.cookie = o.join('; ')) }, read(e) { const t = document.cookie.match(new RegExp('(^|;\\s*)(' + e + ')=([^;]*)')) return t ? decodeURIComponent(t[3]) : null }, remove(e) { this.write(e, '', Date.now() - 864e5) }, } : { write() {}, read() { return null }, remove() {}, } function KI(e) { return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(e) } function qI(e, t) { return t ? e.replace(/\/?\/$/, '') + '/' + t.replace(/^\/+/, '') : e } function mc(e, t, n) { let i = !KI(t) return (e && i) || n == !1 ? qI(e, t) : t } const vr = (e) => (e instanceof Ke ? { ...e } : e) function fn(e, t) { t = t || {} const n = {} function i(d, c, A, g) { return S.isPlainObject(d) && S.isPlainObject(c) ? S.merge.call({ caseless: g }, d, c) : S.isPlainObject(c) ? S.merge({}, c) : S.isArray(c) ? c.slice() : c } function s(d, c, A, g) { if (S.isUndefined(c)) { if (!S.isUndefined(d)) return i(void 0, d, A, g) } else return i(d, c, A, g) } function a(d, c) { if (!S.isUndefined(c)) return i(void 0, c) } function o(d, c) { if (S.isUndefined(c)) { if (!S.isUndefined(d)) return i(void 0, d) } else return i(void 0, c) } function r(d, c, A) { if (A in t) return i(d, c) if (A in e) return i(void 0, d) } const l = { url: a, method: a, data: a, baseURL: o, transformRequest: o, transformResponse: o, paramsSerializer: o, timeout: o, timeoutMessage: o, withCredentials: o, withXSRFToken: o, adapter: o, responseType: o, xsrfCookieName: o, xsrfHeaderName: o, onUploadProgress: o, onDownloadProgress: o, decompress: o, maxContentLength: o, maxBodyLength: o, beforeRedirect: o, transport: o, httpAgent: o, httpsAgent: o, cancelToken: o, socketPath: o, responseEncoding: o, validateStatus: r, headers: (d, c, A) => s(vr(d), vr(c), A, !0), } return ( S.forEach(Object.keys(Object.assign({}, e, t)), function (c) { const A = l[c] || s, g = A(e[c], t[c], c) ;(S.isUndefined(g) && A !== r) || (n[c] = g) }), n ) } const yc = (e) => { const t = fn({}, e) let { data: n, withXSRFToken: i, xsrfHeaderName: s, xsrfCookieName: a, headers: o, auth: r } = t ;(t.headers = o = Ke.from(o)), (t.url = gc(mc(t.baseURL, t.url), e.params, e.paramsSerializer)), r && o.set( 'Authorization', 'Basic ' + btoa((r.username || '') + ':' + (r.password ? unescape(encodeURIComponent(r.password)) : '')) ) let l if (S.isFormData(n)) { if (Ce.hasStandardBrowserEnv || Ce.hasStandardBrowserWebWorkerEnv) o.setContentType(void 0) else if ((l = o.getContentType()) !== !1) { const [d, ...c] = l ? l .split(';') .map((A) => A.trim()) .filter(Boolean) : [] o.setContentType([d || 'multipart/form-data', ...c].join('; ')) } } if (Ce.hasStandardBrowserEnv && (i && S.isFunction(i) && (i = i(t)), i || (i !== !1 && PI(t.url)))) { const d = s && a && HI.read(a) d && o.set(s, d) } return t }, _I = typeof XMLHttpRequest < 'u', $I = _I && function (e) { return new Promise(function (n, i) { const s = yc(e) let a = s.data const o = Ke.from(s.headers).normalize() let { responseType: r, onUploadProgress: l, onDownloadProgress: d } = s, c, A, g, b, u function p() { b && b(), u && u(), s.cancelToken && s.cancelToken.unsubscribe(c), s.signal && s.signal.removeEventListener('abort', c) } let v = new XMLHttpRequest() v.open(s.method.toUpperCase(), s.url, !0), (v.timeout = s.timeout) function f() { if (!v) return const R = Ke.from('getAllResponseHeaders' in v && v.getAllResponseHeaders()), y = { data: !r || r === 'text' || r === 'json' ? v.responseText : v.response, status: v.status, statusText: v.statusText, headers: R, config: e, request: v, } vc( function (m) { n(m), p() }, function (m) { i(m), p() }, y ), (v = null) } 'onloadend' in v ? (v.onloadend = f) : (v.onreadystatechange = function () { !v || v.readyState !== 4 || (v.status === 0 && !(v.responseURL && v.responseURL.indexOf('file:') === 0)) || setTimeout(f) }), (v.onabort = function () { v && (i(new te('Request aborted', te.ECONNABORTED, e, v)), (v = null)) }), (v.onerror = function () { i(new te('Network Error', te.ERR_NETWORK, e, v)), (v = null) }), (v.ontimeout = function () { let I = s.timeout ? 'timeout of ' + s.timeout + 'ms exceeded' : 'timeout exceeded' const y = s.transitional || fc s.timeoutErrorMessage && (I = s.timeoutErrorMessage), i(new te(I, y.clarifyTimeoutError ? te.ETIMEDOUT : te.ECONNABORTED, e, v)), (v = null) }), a === void 0 && o.setContentType(null), 'setRequestHeader' in v && S.forEach(o.toJSON(), function (I, y) { v.setRequestHeader(y, I) }), S.isUndefined(s.withCredentials) || (v.withCredentials = !!s.withCredentials), r && r !== 'json' && (v.responseType = s.responseType), d && (([g, u] = Hi(d, !0)), v.addEventListener('progress', g)), l && v.upload && (([A, b] = Hi(l)), v.upload.addEventListener('progress', A), v.upload.addEventListener('loadend', b)), (s.cancelToken || s.signal) && ((c = (R) => { v && (i(!R || R.type ? new Pn(null, e, v) : R), v.abort(), (v = null)) }), s.cancelToken && s.cancelToken.subscribe(c), s.signal && (s.signal.aborted ? c() : s.signal.addEventListener('abort', c))) const w = VI(s.url) if (w && Ce.protocols.indexOf(w) === -1) { i(new te('Unsupported protocol ' + w + ':', te.ERR_BAD_REQUEST, e)) return } v.send(a || null) }) }, e1 = (e, t) => { const { length: n } = (e = e ? e.filter(Boolean) : []) if (t || n) { let i = new AbortController(), s const a = function (d) { if (!s) { ;(s = !0), r() const c = d instanceof Error ? d : this.reason i.abort(c instanceof te ? c : new Pn(c instanceof Error ? c.message : c)) } } let o = t && setTimeout(() => { ;(o = null), a(new te(`timeout ${t} of ms exceeded`, te.ETIMEDOUT)) }, t) const r = () => { e && (o && clearTimeout(o), (o = null), e.forEach((d) => { d.unsubscribe ? d.unsubscribe(a) : d.removeEventListener('abort', a) }), (e = null)) } e.forEach((d) => d.addEventListener('abort', a)) const { signal: l } = i return (l.unsubscribe = () => S.asap(r)), l } }, t1 = function* (e, t) { let n = e.byteLength if (n < t) { yield e return } let i = 0, s for (; i < n; ) (s = i + t), yield e.slice(i, s), (i = s) }, n1 = async function* (e, t) { for await (const n of i1(e)) yield* t1(n, t) }, i1 = async function* (e) { if (e[Symbol.asyncIterator]) { yield* e return } const t = e.getReader() try { for (;;) { const { done: n, value: i } = await t.read() if (n) break yield i } } finally { await t.cancel() } }, mr = (e, t, n, i) => { const s = n1(e, t) let a = 0, o, r = (l) => { o || ((o = !0), i && i(l)) } return new ReadableStream( { async pull(l) { try { const { done: d, value: c } = await s.next() if (d) { r(), l.close() return } let A = c.byteLength if (n) { let g = (a += A) n(g) } l.enqueue(new Uint8Array(c)) } catch (d) { throw (r(d), d) } }, cancel(l) { return r(l), s.return() }, }, { highWaterMark: 2 } ) }, hs = typeof fetch == 'function' && typeof Request == 'function' && typeof Response == 'function', wc = hs && typeof ReadableStream == 'function', s1 = hs && (typeof TextEncoder == 'function' ? ( (e) => (t) => e.encode(t) )(new TextEncoder()) : async (e) => new Uint8Array(await new Response(e).arrayBuffer())), Rc = (e, ...t) => { try { return !!e(...t) } catch { return !1 } }, o1 = wc && Rc(() => { let e = !1 const t = new Request(Ce.origin, { body: new ReadableStream(), method: 'POST', get duplex() { return (e = !0), 'half' }, }).headers.has('Content-Type') return e && !t }), yr = 64 * 1024, no = wc && Rc(() => S.isReadableStream(new Response('').body)), Ki = { stream: no && ((e) => e.body) } hs && ((e) => { ;['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((t) => { !Ki[t] && (Ki[t] = S.isFunction(e[t]) ? (n) => n[t]() : (n, i) => { throw new te(`Response type '${t}' is not supported`, te.ERR_NOT_SUPPORT, i) }) }) })(new Response()) const a1 = async (e) => { if (e == null) return 0 if (S.isBlob(e)) return e.size if (S.isSpecCompliantForm(e)) return (await new Request(Ce.origin, { method: 'POST', body: e }).arrayBuffer()).byteLength if (S.isArrayBufferView(e) || S.isArrayBuffer(e)) return e.byteLength if ((S.isURLSearchParams(e) && (e = e + ''), S.isString(e))) return (await s1(e)).byteLength }, r1 = async (e, t) => { const n = S.toFiniteNumber(e.getContentLength()) return n ?? a1(t) }, l1 = hs && (async (e) => { let { url: t, method: n, data: i, signal: s, cancelToken: a, timeout: o, onDownloadProgress: r, onUploadProgress: l, responseType: d, headers: c, withCredentials: A = 'same-origin', fetchOptions: g, } = yc(e) d = d ? (d + '').toLowerCase() : 'text' let b = e1([s, a && a.toAbortSignal()], o), u const p = b && b.unsubscribe && (() => { b.unsubscribe() }) let v try { if (l && o1 && n !== 'get' && n !== 'head' && (v = await r1(c, i)) !== 0) { let y = new Request(t, { method: 'POST', body: i, duplex: 'half' }), E if ((S.isFormData(i) && (E = y.headers.get('content-type')) && c.setContentType(E), y.body)) { const [m, j] = br(v, Hi(hr(l))) i = mr(y.body, yr, m, j) } } S.isString(A) || (A = A ? 'include' : 'omit') const f = 'credentials' in Request.prototype u = new Request(t, { ...g, signal: b, method: n.toUpperCase(), headers: c.normalize().toJSON(), body: i, duplex: 'half', credentials: f ? A : void 0, }) let w = await fetch(u) const R = no && (d === 'stream' || d === 'response') if (no && (r || (R && p))) { const y = {} ;['status', 'statusText', 'headers'].forEach((U) => { y[U] = w[U] }) const E = S.toFiniteNumber(w.headers.get('content-length')), [m, j] = (r && br(E, Hi(hr(r), !0))) || [] w = new Response( mr(w.body, yr, m, () => { j && j(), p && p() }), y ) } d = d || 'text' let I = await Ki[S.findKey(Ki, d) || 'text'](w, e) return ( !R && p && p(), await new Promise((y, E) => { vc(y, E, { data: I, headers: Ke.from(w.headers), status: w.status, statusText: w.statusText, config: e, request: u, }) }) ) } catch (f) { throw ( (p && p(), f && f.name === 'TypeError' && /fetch/i.test(f.message) ? Object.assign(new te('Network Error', te.ERR_NETWORK, e, u), { cause: f.cause || f }) : te.from(f, f && f.code, e, u)) ) } }), io = { http: II, xhr: $I, fetch: l1 } S.forEach(io, (e, t) => { if (e) { try { Object.defineProperty(e, 'name', { value: t }) } catch {} Object.defineProperty(e, 'adapterName', { value: t }) } }) const wr = (e) => `- ${e}`, c1 = (e) => S.isFunction(e) || e === null || e === !1, Ic = { getAdapter: (e) => { e = S.isArray(e) ? e : [e] const { length: t } = e let n, i const s = {} for (let a = 0; a < t; a++) { n = e[a] let o if (((i = n), !c1(n) && ((i = io[(o = String(n)).toLowerCase()]), i === void 0))) throw new te(`Unknown adapter '${o}'`) if (i) break s[o || '#' + a] = i } if (!i) { const a = Object.entries(s).map( ([r, l]) => `adapter ${r} ` + (l === !1 ? 'is not supported by the environment' : 'is not available in the build') ) let o = t ? a.length > 1 ? `since : ` + a.map(wr).join(` `) : ' ' + wr(a[0]) : 'as no adapter specified' throw new te('There is no suitable adapter to dispatch the request ' + o, 'ERR_NOT_SUPPORT') } return i }, adapters: io, } function Gs(e) { if ((e.cancelToken && e.cancelToken.throwIfRequested(), e.signal && e.signal.aborted)) throw new Pn(null, e) } function Rr(e) { return ( Gs(e), (e.headers = Ke.from(e.headers)), (e.data = js.call(e, e.transformRequest)), ['post', 'put', 'patch'].indexOf(e.method) !== -1 && e.headers.setContentType('application/x-www-form-urlencoded', !1), Ic.getAdapter(e.adapter || vi.adapter)(e).then( function (i) { return Gs(e), (i.data = js.call(e, e.transformResponse, i)), (i.headers = Ke.from(i.headers)), i }, function (i) { return ( hc(i) || (Gs(e), i && i.response && ((i.response.data = js.call(e, e.transformResponse, i.response)), (i.response.headers = Ke.from(i.response.headers)))), Promise.reject(i) ) } ) ) } const Ec = '1.8.1', vs = {} ;['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((e, t) => { vs[e] = function (i) { return typeof i === e || 'a' + (t < 1 ? 'n ' : ' ') + e } }) const Ir = {} vs.transitional = function (t, n, i) { function s(a, o) { return '[Axios v' + Ec + "] Transitional option '" + a + "'" + o + (i ? '. ' + i : '') } return (a, o, r) => { if (t === !1) throw new te(s(o, ' has been removed' + (n ? ' in ' + n : '')), te.ERR_DEPRECATED) return n && !Ir[o] && (Ir[o] = !0), t ? t(a, o, r) : !0 } } vs.spelling = function (t) { return (n, i) => !0 } function u1(e, t, n) { if (typeof e != 'object') throw new te('options must be an object', te.ERR_BAD_OPTION_VALUE) const i = Object.keys(e) let s = i.length for (; s-- > 0; ) { const a = i[s], o = t[a] if (o) { const r = e[a], l = r === void 0 || o(r, a, e) if (l !== !0) throw new te('option ' + a + ' must be ' + l, te.ERR_BAD_OPTION_VALUE) continue } if (n !== !0) throw new te('Unknown option ' + a, te.ERR_BAD_OPTION) } } const zi = { assertOptions: u1, validators: vs }, It = zi.validators let rn = class { constructor(t) { ;(this.defaults = t), (this.interceptors = { request: new gr(), response: new gr() }) } async request(t, n) { try { return await this._request(t, n) } catch (i) { if (i instanceof Error) { let s = {} Error.captureStackTrace ? Error.captureStackTrace(s) : (s = new Error()) const a = s.stack ? s.stack.replace(/^.+\n/, '') : '' try { i.stack ? a && !String(i.stack).endsWith(a.replace(/^.+\n.+\n/, '')) && (i.stack += ` ` + a) : (i.stack = a) } catch {} } throw i } } _request(t, n) { typeof t == 'string' ? ((n = n || {}), (n.url = t)) : (n = t || {}), (n = fn(this.defaults, n)) const { transitional: i, paramsSerializer: s, headers: a } = n i !== void 0 && zi.assertOptions( i, { silentJSONParsing: It.transitional(It.boolean), forcedJSONParsing: It.transitional(It.boolean), clarifyTimeoutError: It.transitional(It.boolean), }, !1 ), s != null && (S.isFunction(s) ? (n.paramsSerializer = { serialize: s }) : zi.assertOptions(s, { encode: It.function, serialize: It.function }, !0)), n.allowAbsoluteUrls !== void 0 || (this.defaults.allowAbsoluteUrls !== void 0 ? (n.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls) : (n.allowAbsoluteUrls = !0)), zi.assertOptions(n, { baseUrl: It.spelling('baseURL'), withXsrfToken: It.spelling('withXSRFToken') }, !0), (n.method = (n.method || this.defaults.method || 'get').toLowerCase()) let o = a && S.merge(a.common, a[n.method]) a && S.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (u) => { delete a[u] }), (n.headers = Ke.concat(o, a)) const r = [] let l = !0 this.interceptors.request.forEach(function (p) { ;(typeof p.runWhen == 'function' && p.runWhen(n) === !1) || ((l = l && p.synchronous), r.unshift(p.fulfilled, p.rejected)) }) const d = [] this.interceptors.response.forEach(function (p) { d.push(p.fulfilled, p.rejected) }) let c, A = 0, g if (!l) { const u = [Rr.bind(this), void 0] for (u.unshift.apply(u, r), u.push.apply(u, d), g = u.length, c = Promise.resolve(n); A < g; ) c = c.then(u[A++], u[A++]) return c } g = r.length let b = n for (A = 0; A < g; ) { const u = r[A++], p = r[A++] try { b = u(b) } catch (v) { p.call(this, v) break } } try { c = Rr.call(this, b) } catch (u) { return Promise.reject(u) } for (A = 0, g = d.length; A < g; ) c = c.then(d[A++], d[A++]) return c } getUri(t) { t = fn(this.defaults, t) const n = mc(t.baseURL, t.url, t.allowAbsoluteUrls) return gc(n, t.params, t.paramsSerializer) } } S.forEach(['delete', 'get', 'head', 'options'], function (t) { rn.prototype[t] = function (n, i) { return this.request(fn(i || {}, { method: t, url: n, data: (i || {}).data })) } }) S.forEach(['post', 'put', 'patch'], function (t) { function n(i) { return function (a, o, r) { return this.request( fn(r || {}, { method: t, headers: i ? { 'Content-Type': 'multipart/form-data' } : {}, url: a, data: o }) ) } } ;(rn.prototype[t] = n()), (rn.prototype[t + 'Form'] = n(!0)) }) let d1 = class Mc { constructor(t) { if (typeof t != 'function') throw new TypeError('executor must be a function.') let n this.promise = new Promise(function (a) { n = a }) const i = this this.promise.then((s) => { if (!i._listeners) return let a = i._listeners.length for (; a-- > 0; ) i._listeners[a](s) i._listeners = null }), (this.promise.then = (s) => { let a const o = new Promise((r) => { i.subscribe(r), (a = r) }).then(s) return ( (o.cancel = function () { i.unsubscribe(a) }), o ) }), t(function (a, o, r) { i.reason || ((i.reason = new Pn(a, o, r)), n(i.reason)) }) } throwIfRequested() { if (this.reason) throw this.reason } subscribe(t) { if (this.reason) { t(this.reason) return } this._listeners ? this._listeners.push(t) : (this._listeners = [t]) } unsubscribe(t) { if (!this._listeners) return const n = this._listeners.indexOf(t) n !== -1 && this._listeners.splice(n, 1) } toAbortSignal() { const t = new AbortController(), n = (i) => { t.abort(i) } return this.subscribe(n), (t.signal.unsubscribe = () => this.unsubscribe(n)), t.signal } static source() { let t return { token: new Mc(function (s) { t = s }), cancel: t, } } } function p1(e) { return function (n) { return e.apply(null, n) } } function A1(e) { return S.isObject(e) && e.isAxiosError === !0 } const so = { Continue: 100, SwitchingProtocols: 101, Processing: 102, EarlyHints: 103, Ok: 200, Created: 201, Accepted: 202, NonAuthoritativeInformation: 203, NoContent: 204, ResetContent: 205, PartialContent: 206, MultiStatus: 207, AlreadyReported: 208, ImUsed: 226, MultipleChoices: 300, MovedPermanently: 301, Found: 302, SeeOther: 303, NotModified: 304, UseProxy: 305, Unused: 306, TemporaryRedirect: 307, PermanentRedirect: 308, BadRequest: 400, Unauthorized: 401, PaymentRequired: 402, Forbidden: 403, NotFound: 404, MethodNotAllowed: 405, NotAcceptable: 406, ProxyAuthenticationRequired: 407, RequestTimeout: 408, Conflict: 409, Gone: 410, LengthRequired: 411, PreconditionFailed: 412, PayloadTooLarge: 413, UriTooLong: 414, UnsupportedMediaType: 415, RangeNotSatisfiable: 416, ExpectationFailed: 417, ImATeapot: 418, MisdirectedRequest: 421, UnprocessableEntity: 422, Locked: 423, FailedDependency: 424, TooEarly: 425, UpgradeRequired: 426, PreconditionRequired: 428, TooManyRequests: 429, RequestHeaderFieldsTooLarge: 431, UnavailableForLegalReasons: 451, InternalServerError: 500, NotImplemented: 501, BadGateway: 502, ServiceUnavailable: 503, GatewayTimeout: 504, HttpVersionNotSupported: 505, VariantAlsoNegotiates: 506, InsufficientStorage: 507, LoopDetected: 508, NotExtended: 510, NetworkAuthenticationRequired: 511, } Object.entries(so).forEach(([e, t]) => { so[t] = e }) function Dc(e) { const t = new rn(e), n = ic(rn.prototype.request, t) return ( S.extend(n, rn.prototype, t, { allOwnKeys: !0 }), S.extend(n, t, null, { allOwnKeys: !0 }), (n.create = function (s) { return Dc(fn(e, s)) }), n ) } const De = Dc(vi) De.Axios = rn De.CanceledError = Pn De.CancelToken = d1 De.isCancel = hc De.VERSION = Ec De.toFormData = bs De.AxiosError = te De.Cancel = De.CanceledError De.all = function (t) { return Promise.all(t) } De.spread = p1 De.isAxiosError = A1 De.mergeConfig = fn De.AxiosHeaders = Ke De.formToJSON = (e) => bc(S.isHTMLForm(e) ? new FormData(e) : e) De.getAdapter = Ic.getAdapter De.HttpStatusCode = so De.default = De const { Axios: EE, AxiosError: ME, CanceledError: DE, isCancel: ZE, CancelToken: SE, VERSION: NE, all: jE, Cancel: GE, isAxiosError: kE, spread: BE, toFormData: YE, AxiosHeaders: UE, HttpStatusCode: TE, formToJSON: JE, getAdapter: CE, mergeConfig: OE, } = De, Hn = (e) => { const t = De.create({ timeout: 12e4, ...e }) return ( t.interceptors.response.use( (n) => n, (n) => { let { message: i } = n return ( i == 'Network Error' ? (i = '后端接口连接异常') : i.includes('timeout') ? (i = '系统接口请求超时') : i.includes('Request failed with status code') && (i = '系统接口' + i.substr(i.length - 3) + '异常'), Im({ message: i, type: 'error', offset: 90 }), Promise.reject(n) ) } ), t ) } Hn({ baseURL: 'https://cimweb.zjw.sh.cegn.cn:2008/', method: 'post' }) Hn({ baseURL: 'https://cimweb.zjw.sh.cegn.cn:2008/', method: 'get' }) Hn({ baseURL: 'https://cimweb.zjw.sh.cegn.cn:2007/data-business-prod/', method: 'post' }) Hn({ baseURL: 'https://cimweb.zjw.sh.cegn.cn:2007/data-business-prod/', method: 'get' }) Hn({ baseURL: 'http://58.34.215.19:8095/low-altitude/', method: 'post' }) Hn({ baseURL: 'http://10.90.9.143:9252/', method: 'post' }) function qt(e, t) { Uo.bridgeContent.Invoke({ ActionName: e, Parameters: { ...t } }) } function g1(e, t, n, i, s, a = !0) { qt('SetLocation', { x: e, y: t, z: n, heading: i, tilt: s, isfly: a }) } function Zc() { qt('AddBaseMapAnSeLayer', { id: 'BaseMap', title: 'BaseMap', visible: !0, opacity: 1 }) } function f1() { qt('AddBaseMapSuSeLayer', { id: 'BaseMap', title: 'BaseMap', visible: !0, opacity: 1 }) } function b1(e) { qt('AddYaoGanLayer', { id: 'YaoGan', title: 'YaoGan', type: 'tile', visible: e, opacity: 1 }) } async function h1(e) { e.title == '影像底图' && b1(e.visible), e.title == '全市白模' && qt('AddWhiteMoldLayer', { id: 'WhiteMold', title: 'WhiteMold', type: 'scene', visible: e.visible, opacity: 1 }) } function Sc() { qt('Draw', { status: 'hide' }) } function Nc(e) { qt('Draw', { type: 'polygon', clear: !0, hasZ: (e == null ? void 0 : e.hasZ) || !1, token: '' }) } function qi(e) { qt(e.evaluation ? 'GetPowerCube' : 'GetOccupyCube', { id: e.id || 'QueryCube', status: e.show ? 'show' : 'hide', deepShow: e.deepShow ? e.deepShow : !1, level: e.level, minZ: e.minZ, maxZ: e.maxZ, rings: e.rings, token: '', }) } const v1 = ['onClick'], m1 = ['src'], y1 = { __name: 'BaseMap', emits: ['mouseMove'], setup(e, { emit: t }) { const n = Qn(), i = C([ { id: 'dark', title: '深色', pic: 'basemap-dark' }, { id: 'light', title: '浅色', pic: 'basemap-light' }, ]) function s(r) { if (r !== n.mapScene) switch ((n.setMapScene(r), r)) { case 'dark': Zc() break case 'light': f1() break } } const a = t function o(r) { a('mouseMove', r) } return (r, l) => ( Z(), T( 'ul', { class: 'base-map', onMouseleave: l[0] || (l[0] = (d) => o('leave')), onMouseenter: l[1] || (l[1] = (d) => o('enter')), }, [ (Z(!0), T( je, null, Jt( i.value, (d) => ( Z(), T( 'li', { onClick: Ze((c) => s(d.id), ['stop']) }, [ Y( 'img', { src: h(Yo)('page/' + d.pic + (h(n).mapScene === d.id ? '-h.png' : '.png')), alt: '' }, null, 8, m1 ), Y('span', null, ce(d.title), 1), ], 8, v1 ) ) ), 256 )), ], 32 ) ) }, }, w1 = Kt(y1, [['__scopeId', 'data-v-e0d026d1']]), R1 = [ [2793.864599595192, 901.658704419662, 0], [2793.6509009229326, 901.0123508696659, 100], [2798.557835382849, 960.97592212866, 100], [2847.499187535616, 1003.583154753295, 100], [2912.552128329501, 1039.626331293216, 99.99999999906868], [3071.1961524066214, 1107.577257156012, 100.00000000209548], [3278.347727182615, 1176.6387484848105, 99.99999999860302], [3400.2541650048834, 1200.4015748868385, 100.00000000093132], [3481.377674740545, 1212.9278557111718, 99.99999999720603], [3572.9939249743356, 1214.6717122521584, 100.00000000279397], [3662.1252360307035, 1229.9645778602462, 100], [3749.04097395513, 1229.9309347879573, 100.00000000093132], [3823.7009391081147, 1221.990974433195, 99.99999999906868], [3899.681462008697, 1225.7976213664222, 99.99999999813735], [4059.050414990652, 1171.4603758058506, 99.99999999906868], [4029.8655992358576, 1097.8677174668455, 100], [4028.35425303478, 1099.2525115894166, 0], ], I1 = [ [1402.1217227804018, 348.37421585662935, 0], [1401.9080241081424, 347.72786230663326, 100.00000000279397], [1418.0720522801462, 411.97922736945713, 100.00000000186265], [1455.7563107208257, 450.29866619026245, 100.00000000279397], [1520.809251514711, 486.34184273018343, 100.00000000186265], [1679.4532755918312, 554.2927685929793, 100.00000000488944], [1886.6048503678248, 623.3542599217783, 100.00000000139698], [2008.5112881900932, 647.1170863238062, 100.00000000372529], [2089.634797925755, 659.6433671481394, 100], [2181.251048159546, 661.387223689126, 100.00000000558794], [2270.3823592159138, 676.6800892972137, 100.00000000279397], [2357.29809714034, 676.6464462249247, 100.00000000372529], [2431.958062293325, 668.7064858701631, 100.00000000186265], [2507.9385851939073, 672.5131328033896, 100.00000000093132], [2667.307538175862, 618.1758872428185, 100.00000000186265], [2638.1227224210675, 544.5832289038129, 100.00000000279397], [2636.61137621999, 545.968023026384, 0], ], E1 = [ [2430.7350154096725, 217.2340145229527, 0], [2430.521316737413, 216.5876609729566, 99.99999999906868], [2434.961072770454, 189.01877223989482, 99.99999999906868], [2439.400828803495, 161.44988350683306, 99.99999999906868], [2454.0950554082074, 134.0376967409726, 99.99999999953434], [2468.78928201292, 106.62550997511212, 100], [2490.6404054209615, 84.35878527660374, 99.99999999860302], [2512.4915288290035, 62.09206057809536, 99.99999999720603], [2543.3158266027954, 30.306075153252795, 99.9999999977299], [2574.140124376587, -1.479910271589763, 99.99999999825377], [2604.871802260764, -31.858519253953876, 99.99999999877764], [2635.603480144941, -62.23712823631799, 99.99999999930151], [2668.5979849326986, -94.42764964160654, 100.0000000007567], [2699.988639087573, -125.46742031636052, 100.00000000034925], [2732.411532140508, -153.27240439923366, 99.99999999994179], [2764.8344251934423, -181.07738848210684, 99.99999999953434], [2802.369345797033, -207.4924932534358, 99.99999999959255], [2839.904266400624, -233.90759802476478, 99.99999999965075], [2875.5872352358456, -260.8085492725266, 99.99999999970896], [2911.270204071067, -287.7095005202884, 99.99999999976717], [2948.325552706232, -313.00456930892733, 99.99999999982538], [2985.380901341397, -338.29963809756623, 99.99999999988358], [3022.436249976562, -363.59470688620513, 99.99999999994179], [3059.491598611727, -388.88977567484403, 100], [3159.917209343701, -502.68096557465793, 99.99999999906868], [3195.5171432122784, -551.7791554054247, 99.99999999906868], [3253.5378259417926, -614.2565144157488, 100], [3310.431345031931, -707.9072436123589, 100], [3238.0301298849827, -774.4059018377725, 99.9999999976717], [3189.043279460794, -822.3702496583892, 99.99999999930151], [3138.5608017623194, -862.4484319194032, 99.99999999877764], [3073.4600531235665, -926.408580346081, 100.00000000011642], [3027.5815529370266, -964.6293646970702, 100.00000000145519], [2997.7406895326567, -992.6158518535822, 100.00000000119326], [2972.542023831212, -1015.2126689856104, 100.00000000013097], [2941.6197549998237, -1042.7275903900004, 99.99999999906868], [2921.002776521226, -1060.334465348369, 100.00000000093132], [2868.70642126298, -1103.2681344438438, 99.99999999906868], [2840.758029417479, -1130.526485005527, 99.99999999813735], [2792.617140809583, -1175.7973589421463, 99.99999999906868], [2716.364720491846, -1309.8712829404642, 103.78167193662375], [2715.2061671086435, -1311.0999558706123, 0], ], Gn = { paths1: R1, paths2: I1, paths3: E1 } function ln(e, t) { Uo.bridgeContent.Invoke({ ActionName: e, Parameters: { ...t } }) } async function _i(e) { ln('GeometryMeshEffect', { status: e.status, id: e.id, data: e.data }) } async function M1(e) { ln('GetFixedFlyPoint', { id: 'wrj1', status: e.status ? 'show' : 'hide', paths: Gn.paths1 }), ln('GetFixedFlyPoint', { id: 'wrj2', status: e.status ? 'show' : 'hide', paths: Gn.paths2 }), ln('GetFixedFlyPoint', { id: 'wrj3', status: e.status ? 'show' : 'hide', paths: Gn.paths3 }) } async function D1(e) { ln('PathPipe', { id: 'wrj1', status: e.status ? 'show' : 'hide', paths: [Gn.paths1], color: '#438EDB', intensity: 1.2, pipeRadius: 10, }), ln('PathPipe', { id: 'wrj2', status: e.status ? 'show' : 'hide', paths: [Gn.paths2], color: '#438EDB', intensity: 1.2, pipeRadius: 10, }), ln('PathPipe', { id: 'wrj3', status: e.status ? 'show' : 'hide', paths: [Gn.paths3], color: '#438EDB', intensity: 1.2, pipeRadius: 10, }) } const Z1 = ['onClick', 'title'], S1 = ['src', 'onMouseenter'], N1 = ['onMouseleave', 'onMouseenter'], j1 = ['onClick'], G1 = { __name: 'ToolList', setup(e) { const t = Qn() is(() => { const c = n.value.findIndex((A) => A.id === t.leftPanelType) c !== -1 && (n.value[c].active = !0) }) const n = C([ { id: 'dtqh', name: '底图切换', icon: 'tool-dtqh', active: !1 }, { id: 'kytc', name: '空域图层', icon: 'tool-kytc', active: !1, leftPanel: !0 }, { name: '栅格占用', icon: 'tool-sgzy', showSub: !1, children: [{ id: 'sgzy', name: '网格查询', active: !1, leftPanel: !0 }], }, { id: 'tsjs', name: '态势监视', icon: 'tool-tsjs', active: !1 }, ]) q( n, (c) => { let A = {} c.forEach((g) => { A[g.id] = g.active }), (t.toolsActive = A) }, { deep: !0 } ), q( () => t.uavMonitorOn, (c) => { n.value[0].disabled = c } ) function i(c) { t.toggleAside('left', !!(c === 'default' && t.rightCollapse)), t.setLeftPanel(c) const A = (g) => { if ((g.leftPanel && g.id !== c && (g.active = !1), g.children)) { for (const b of g.children) A(b) g.children.every((b) => !b.active) && (g.active = !1) } } for (const g of n.value) A(g) } function s(c, A) { if (!c.disabled) if (A != null) { const g = c.children[A], b = g.active switch ( (c.children.forEach((u) => { u.active = !1 }), (g.active = !b), g.id) ) { case 'sgzy': case 'kypm': i(g.active ? g.id : 'default') break } } else if (c.children) { if (c.children.some((g) => g.active)) { c.children.forEach((g) => { g.active = !1 }), c.name === '栅格占用' && i('default') return } n.value.forEach((g) => { g.showSub = g.name === c.name ? !c.showSub : !1 }) } else switch (((c.active = !c.active), c.id)) { case 'qjll': { t.toggleAside('right', c.active), t.leftPanelType === 'default' && t.toggleAside('left', c.active), (t.floatPanels.kysg && c.active) || t.toggleFooter(c.active) break } case 'kyhs': case 'qjchs': case 'hxhs': case 'kytc': i(c.active ? c.id : 'default') break case 'kysg': c.active && t.footerCollapse && t.toggleFooter(!1) case 'fcky': t.toggleFloatPanel(c.id, c.active) break case 'tsjs': M1({ status: c.active }), D1({ status: c.active }) } } q( t.floatPanels, (c) => { for (let [A, g] of Object.entries(c)) if (!g) { const b = n.value.find((u) => u.id === A) b && b.active && (b.active = !1) } }, { deep: !0 } ) function a(c) { c.children && c.children.some((A) => A.active) && (c.showSub = !0) } let o function r(c, A = !1) { if (A) { clearTimeout(o) return } o = setTimeout(() => { c.showSub = !1 }, 800) } let l function d(c) { if (c === 'enter') { clearTimeout(l) return } l = setTimeout(() => { n.value.find((A) => A.id === 'dtqh').active = !1 }, 800) } return (c, A) => ( Z(), T( 'ul', { class: B(['tool-list', { 'to-right': h(t).rightCollapse }]) }, [ (Z(!0), T( je, null, Jt(n.value, (g) => { var b return ( Z(), T( 'li', { onClick: (u) => s(g), title: g.name, class: B({ disabled: g.disabled }) }, [ Y( 'img', { src: h(Yo)( 'buttons/' + g.icon + (g.active || ((b = g.children) != null && b.some((u) => u.active)) ? '-h.png' : '.png') ), alt: '', onMouseenter: (u) => a(g), }, null, 40, S1 ), P( at, { name: 'emerge-right' }, { default: x(() => [ g.id === 'dtqh' && g.active ? (Z(), _(w1, { key: 0, class: 'base-map', onMouseMove: d })) : X('', !0), ]), _: 2, }, 1024 ), P( at, { name: 'emerge-right' }, { default: x(() => [ g.children && g.showSub ? (Z(), T( 'ul', { key: 0, class: 'sub-wrapper', onMouseleave: (u) => r(g), onMouseenter: (u) => r(g, !0), }, [ (Z(!0), T( je, null, Jt( g.children, (u, p) => ( Z(), T( 'li', { onClick: Ze((v) => s(g, p), ['stop']) }, [Y('span', { class: B({ active: u.active }) }, ce(u.name), 3)], 8, j1 ) ) ), 256 )), ], 40, N1 )) : X('', !0), ]), _: 2, }, 1024 ), ], 10, Z1 ) ) }), 256 )), ], 2 ) ) }, }, k1 = Kt(G1, [['__scopeId', 'data-v-5f2f0e97']]), Oo = co('map', { state: () => ({ scale: null, camera: { heading: null, tilt: null, position: { x: null, y: null, z: null } }, center: null, extent: null, draw_geometry: null, gridCode: null, uavId: null, flyInfo: null, currentUavInfo: null, realTimeUAVList: [], isFollow: !1, queryResult: [], cubeResult: {}, }), persist: !0, actions: {}, }), B1 = { class: 'flex flex-col aside-left-inner' }, Y1 = { class: 'table-default stripe mb-6' }, U1 = { style: { 'max-height': '580px' } }, T1 = { class: 'w-16' }, J1 = { class: 'w-24' }, C1 = { class: 'text-center' }, O1 = { __name: 'PanelSgzy', setup(e) { const t = Oo(), n = nc() is(() => { i() }) function i() { const u = n.sgzy Object.keys(u).length && ((s.value = u.form), (l.value = u.tableData)) } const s = C({ level: '23', minZ: '0', maxZ: '120', evaluation: !1 }), a = [] function o() { Nc({ hasZ: !0 }) } let r = [] const l = C([]) q( () => t.draw_geometry, (u) => { ;(r = u == null ? void 0 : u.rings), (l.value = r.flat()) }, { deep: !0 } ) function d(u) { Sc(), c('hide'), u && (l.value = []), qi({ show: !1 }) } function c(u) { if (u == 'hide') { _i({ id: 'sgzy_mesh', status: 'hide' }) return } let p = s.value.maxZ * 1 - s.value.minZ * 1, v = [] for (let f = 0; f < r[0].length; f++) v.push([r[0][f][0], r[0][f][1], s.value.minZ * 1]) _i({ id: 'sgzy_mesh', status: 'show', data: [{ type: 'polygon', shape: { height: p, rings: [v], color: [0, 255, 0, 0.2] } }], }) } const A = lt({ calc: !1 }) function g() { const { maxZ: u, minZ: p } = s.value r && (!p || !u || (d(), c('show'), setTimeout(() => { qi({ ...s.value, show: !0, level: Number(s.value.level), rings: r }) }, 300))) } function b() { if (!l.value.length) { n.setSgzy({}) return } n.setSgzy({ form: s.value, tableData: l.value }) } return ( xe(() => { b() }), (u, p) => { const v = $l, f = _l, w = Hl, R = gl, I = Ol, y = Vl, E = Pl return ( Z(), T('div', B1, [ p[11] || (p[11] = Y('div', { class: 'title-main' }, '网格查询', -1)), P( E, { ref: 'formRef', class: 'p-form mt-7', model: s.value, rules: a, 'label-position': 'left', size: 'large', }, { default: x(() => [ P( w, { label: '计算层级', prop: 'level' }, { default: x(() => [ P( f, { modelValue: s.value.level, 'onUpdate:modelValue': p[0] || (p[0] = (m) => (s.value.level = m)), placeholder: '', }, { default: x(() => [ P(v, { label: '12级', value: '12' }), P(v, { label: '13级', value: '13' }), P(v, { label: '14级', value: '14' }), P(v, { label: '15级', value: '15' }), ]), _: 1, }, 8, ['modelValue'] ), ]), _: 1, } ), P( w, { label: '高度', prop: 'height' }, { default: x(() => [ P( R, { modelValue: s.value.minZ, 'onUpdate:modelValue': p[1] || (p[1] = (m) => (s.value.minZ = m)), max: s.value.maxZ, type: 'number', class: 'flex-1', }, null, 8, ['modelValue', 'max'] ), p[6] || (p[6] = Y('div', { class: 'mx-2' }, '--', -1)), P( R, { modelValue: s.value.maxZ, 'onUpdate:modelValue': p[2] || (p[2] = (m) => (s.value.maxZ = m)), min: s.value.minZ, type: 'number', class: 'flex-1', }, null, 8, ['modelValue', 'min'] ), P( I, { class: 'btn-secondary ml-3 -mb-1', onClick: o }, { default: x(() => p[5] || (p[5] = [Le('绘制区域')])), _: 1 } ), ]), _: 1, } ), P( w, { label: '评价系数' }, { default: x(() => [ P( y, { modelValue: s.value.evaluation, 'onUpdate:modelValue': p[3] || (p[3] = (m) => (s.value.evaluation = m)), }, { default: x(() => p[7] || (p[7] = [Le('展示')])), _: 1 }, 8, ['modelValue'] ), ]), _: 1, } ), ]), _: 1, }, 8, ['model'] ), Y('table', Y1, [ p[8] || (p[8] = Y( 'thead', null, [ Y('tr', null, [ Y('th', { class: 'w-16' }, '序号'), Y('th', null, '经度'), Y('th', null, '纬度'), Y('th', { class: 'w-24' }, '海拔高/m'), ]), ], -1 )), Y('tbody', U1, [ (Z(!0), T( je, null, Jt( l.value, (m, j) => ( Z(), T('tr', null, [ Y('td', T1, ce(j + 1), 1), Y('td', null, ce(m[0]), 1), Y('td', null, ce(m[1]), 1), Y('td', J1, ce(m[2]), 1), ]) ) ), 256 )), ]), ]), Y('div', C1, [ P( I, { class: 'btn-main', onClick: g, loading: A.calc }, { default: x(() => p[9] || (p[9] = [Le('开始计算')])), _: 1 }, 8, ['loading'] ), P( I, { class: 'btn-main', onClick: p[4] || (p[4] = (m) => d(!0)) }, { default: x(() => p[10] || (p[10] = [Le('清空结果')])), _: 1 } ), ]), ]) ) } ) }, }, z1 = Kt(O1, [['__scopeId', 'data-v-0db935d1']]), W1 = { class: 'flex flex-col aside-left-inner' }, F1 = { class: 'table-default stripe mb-6' }, L1 = { style: { 'max-height': '580px' } }, x1 = { class: 'w-16' }, V1 = { class: 'w-24' }, Q1 = { class: 'text-center' }, X1 = { __name: 'PanelKypm', setup(e) { const t = nc(), n = Oo() is(() => { i() }) function i() { const u = t.kypm Object.keys(u).length && ((s.value = u.form), (l.value = u.tableData)) } const s = C({ level: '23', height: '50', evaluation: !1 }), a = [] function o() { Nc({ hasZ: !0 }) } let r = [] const l = C([]) q( () => n.draw_geometry, (u) => { ;(r = u == null ? void 0 : u.rings), (l.value = r.flat()) }, { deep: !0 } ) function d(u) { Sc(), c('hide'), u && (l.value = []), qi({ show: !1 }) } function c(u) { if (u == 'hide') { _i({ id: 'sgzy_mesh', status: 'hide' }) return } let p = 0.02, v = [] for (let f = 0; f < r[0].length; f++) v.push([r[0][f][0], r[0][f][1], Number(s.value.height) - 0.01]) _i({ id: 'sgzy_mesh', status: 'show', data: [{ type: 'polygon', shape: { height: p, rings: [v], color: [0, 255, 0, 0.1] } }], }) } const A = lt({ calc: !1 }) function g() { r && s.value.height && (d(), c('show'), setTimeout(() => { qi({ ...s.value, minZ: Number(s.value.height) - 0.01, maxZ: Number(s.value.height) + 0.01, show: !0, level: Number(s.value.level), rings: r, }) }, 300)) } function b() { if (!l.value.length) { t.setKypm({}) return } t.setKypm({ form: s.value, tableData: l.value }) } return ( xe(() => { b() }), (u, p) => { const v = $l, f = _l, w = Hl, R = gl, I = Ol, y = Vl, E = Pl return ( Z(), T('div', W1, [ p[9] || (p[9] = Y('div', { class: 'title-main' }, '空域剖面分析', -1)), P( E, { ref: 'formRef', class: 'p-form mt-7', model: s.value, rules: a, 'label-position': 'left', size: 'large', }, { default: x(() => [ P( w, { label: '计算层级', prop: 'level' }, { default: x(() => [ P( f, { modelValue: s.value.level, 'onUpdate:modelValue': p[0] || (p[0] = (m) => (s.value.level = m)), placeholder: '', }, { default: x(() => [ P(v, { label: '23级', value: '23' }), P(v, { label: '24级', value: '24' }), ]), _: 1, }, 8, ['modelValue'] ), ]), _: 1, } ), P( w, { label: '高度', prop: 'height' }, { default: x(() => [ P( R, { modelValue: s.value.height, 'onUpdate:modelValue': p[1] || (p[1] = (m) => (s.value.height = m)), type: 'number', class: 'flex-1', }, null, 8, ['modelValue'] ), P( I, { class: 'btn-secondary ml-3 -mb-1', onClick: o }, { default: x(() => p[4] || (p[4] = [Le('绘制剖面')])), _: 1 } ), ]), _: 1, } ), P( w, { label: '评价系数' }, { default: x(() => [ P( y, { modelValue: s.value.evaluation, 'onUpdate:modelValue': p[2] || (p[2] = (m) => (s.value.evaluation = m)), }, { default: x(() => p[5] || (p[5] = [Le('展示')])), _: 1 }, 8, ['modelValue'] ), ]), _: 1, } ), ]), _: 1, }, 8, ['model'] ), Y('table', F1, [ p[6] || (p[6] = Y( 'thead', null, [ Y('tr', null, [ Y('th', { class: 'w-16' }, '序号'), Y('th', null, '经度'), Y('th', null, '纬度'), Y('th', { class: 'w-24' }, '海拔高/m'), ]), ], -1 )), Y('tbody', L1, [ (Z(!0), T( je, null, Jt( l.value, (m, j) => ( Z(), T('tr', null, [ Y('td', x1, ce(j + 1), 1), Y('td', null, ce(m[0]), 1), Y('td', null, ce(m[1]), 1), Y('td', V1, ce(m[2]), 1), ]) ) ), 256 )), ]), ]), Y('div', Q1, [ P( I, { class: 'btn-main', onClick: g, loading: A.calc }, { default: x(() => p[7] || (p[7] = [Le('开始计算')])), _: 1 }, 8, ['loading'] ), P( I, { class: 'btn-main', onClick: p[3] || (p[3] = (m) => d(!0)) }, { default: x(() => p[8] || (p[8] = [Le('清空结果')])), _: 1 } ), ]), ]) ) } ) }, }, P1 = Kt(X1, [['__scopeId', 'data-v-32d9a9f0']]), H1 = { class: 'panel-sjwg flex flex-col aside-left-inner' }, K1 = { class: 'title-sub my-4 shrink-0' }, q1 = { key: 0, class: 'pr-1', style: { flex: '2' } }, _1 = { class: 'title-shade' }, $1 = ['onClick'], eE = ['onClick'], tE = { key: 0 }, nE = ['src'], iE = ['onClick'], sE = { __name: 'PanelSjwg', setup(e) { const t = Qn() function n(c) { ;(c.active = !c.active), c.children.forEach((A) => { ;(A.active = !c.active), a(A) }) } const i = C([ { label: '服务', show: !0, children: [ { label: '影像', alias: '影像底图', icon: 'dxing', active: !1 }, { label: '全市建筑物', alias: '全市白模', icon: 'qsjzwu', active: !1 }, ], }, ]) let s async function a(c) { if (((c.active = !c.active), c.alias)) { const A = Array.isArray(c.alias) ? c.alias : [c.alias] s || (s = await JR('resources.json')) const g = s.filter((b) => A.some((u) => u === b.title)) if (g.length === 0) return g.forEach((b) => { h1({ ...b, visible: c.active }) }) } } function o(c) { const A = i.value.find((g) => g.label === c.label) ;(A.show = !A.show), i.value.forEach((g) => { g.show && g.label !== c.label && (g.show = !1) }) } const r = lt({ b1: !0, b2: !0 }) function l(c) { r[c] = !r[c] } xe(() => { t.toggleFloatPanel('layers_legend', !1) }) const d = { beforeMount(c, A) { ;(c.style.height = '0'), (c.style.overflow = A.value === 'scroll' ? 'auto' : 'hidden'), (c.style.transition = 'height 0.5s ease') }, mounted(c) { const A = c.scrollHeight c.style.height = `${A}px` }, beforeUnmount(c) { c.style.height = '0' }, } return (c, A) => ( Z(), T('div', H1, [ Y('div', K1, [ A[1] || (A[1] = Le(' 基础数据 ')), Y('i', { onClick: A[0] || (A[0] = (g) => l('b1')), class: B(['drop-down', { reverse: r.b1 }]) }, null, 2), ]), P(at, null, { default: x(() => [ r.b1 ? We( (Z(), T('div', q1, [ (Z(!0), T( je, null, Jt( i.value, (g) => ( Z(), T( je, null, [ Y('div', _1, [ Y('span', null, ce(g.label), 1), 'active' in g ? (Z(), T( 'i', { key: 0, class: B(['btn-selectall', { active: g.active }]), onClick: (b) => n(g), }, null, 10, $1 )) : X('', !0), Y( 'i', { class: B(['drop-down', { reverse: g.show }]), onClick: (b) => o(g) }, null, 10, eE ), ]), P( at, null, { default: x(() => [ g.show ? We( (Z(), T('ul', tE, [ (Z(!0), T( je, null, Jt( g.children, (b) => ( Z(), T( 'li', { class: B(['list-item', { disabled: b.disabled }]) }, [ Y( 'img', { src: h(Yo)(`resources/${b.icon}.png`), alt: '' }, null, 8, nE ), Y('span', null, ce(b.label), 1), Y( 'i', { title: '查看', onClick: (u) => a(b), class: B({ active: b.active }), }, null, 10, iE ), ], 2 ) ) ), 256 )), ])), [[d]] ) : X('', !0), ]), _: 2, }, 1024 ), ], 64 ) ) ), 256 )), ])), [[d, 'scroll']] ) : X('', !0), ]), _: 1, }), ]) ) }, }, oE = Kt(sE, [['__scopeId', 'data-v-533a778a']]), aE = { class: 'home-wrapper' }, rE = { __name: 'Home', setup(e) { const t = Qn() return ( Be(() => {}), (n, i) => ( Z(), T('div', aE, [ Y( 'div', { class: B(['aside aside-left', { collapse: h(t).leftCollapse }]) }, [ P( at, { name: 'emerge-left' }, { default: x(() => [h(t).leftPanelType === 'sgzy' ? (Z(), _(z1, { key: 0 })) : X('', !0)]), _: 1 } ), P( at, { name: 'emerge-left' }, { default: x(() => [h(t).leftPanelType === 'kypm' ? (Z(), _(P1, { key: 0 })) : X('', !0)]), _: 1 } ), P( at, { name: 'emerge-left' }, { default: x(() => [h(t).leftPanelType === 'kytc' ? (Z(), _(oE, { key: 0 })) : X('', !0)]), _: 1 } ), ], 2 ), P(k1), ]) ) ) }, }, lE = Kt(rE, [['__scopeId', 'data-v-f9ca384f']]), cE = '10.1.80.227:3000', ti = { Backspace: 8, ShiftLeft: 16, ControlLeft: 17, AltLeft: 18, ShiftRight: 253, ControlRight: 254, AltRight: 255 }, Er = { MainButton: 0 }, uE = { 1: 0, 2: 2, 4: 1, 8: 3, 16: 4 }, pt = { QualityControlOwnership: 0, Response: 1, Command: 2, FreezeFrame: 3, UnfreezeFrame: 4, VideoEncoderAvgQP: 5, LatencyTest: 6, InitialSettings: 7, FileExtension: 8, FileMimeType: 9, FileContents: 10, InputControlOwnership: 12, CompositionStart: 64, Protocol: 255, }, Me = { IFrameRequest: 0, RequestQualityControl: 1, FpsRequest: 2, AverageBitrateRequest: 3, StartStreaming: 4, StopStreaming: 5, LatencyTest: 6, RequestInitialSettings: 7, UIInteraction: 50, Command: 51, KeyDown: 60, KeyUp: 61, KeyPress: 62, FindFocus: 63, CompositionEnd: 64, MouseEnter: 70, MouseLeave: 71, MouseDown: 72, MouseUp: 73, MouseMove: 74, MouseWheel: 75, TouchStart: 80, TouchEnd: 81, TouchMove: 82, GamepadButtonPressed: 90, GamepadButtonReleased: 91, GamepadAnalog: 92, } let ks class dE extends HTMLVideoElement { constructor() { super() Qo(this, 'keysDown', new Set()) ;(window.ps = this), (this.ws = { send() {}, close() {} }), (this.pc = { close() {} }), this.setupVideo(), this.registerKeyboardEvents(), this.registerMouseHoverEvents(), this.registerFakeMouseEvents(), (this.sceneId = this.dataset.sceneId), (this.viewMode = this.dataset.viewMode), (this.token = this.dataset.token), (this._onClose = null), (this._onOpen = null), (this._onMessage = null), document.addEventListener( 'pointerlockchange', () => { document.pointerLockElement === this ? this.registerPointerLockEvents() : this.registerMouseHoverEvents() }, !1 ), this.addEventListener('loadeddata', (n) => { this.style['aspect-ratio'] = this.videoWidth / this.videoHeight }) } set onclose(n) { typeof n == 'function' && (this._onClose = n) } set onopen(n) { typeof n == 'function' && (this._onOpen = n) } set onmessage(n) { typeof n == 'function' && (this._onMessage = n) } checkWebRTCSupport() { const n = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection if (!n) return !1 let i = !1, s = null if (n) { try { s = new n() const a = s.createDataChannel('test') ;(i = !!a), a.close(), s.close() } catch { return !1 } if (!i) return !1 } return !0 } async connectedCallback() { if (this.checkWebRTCSupport() == !1) { const i = document.createElement('div') ;(i.innerHTML = '你的浏览器版本过低!
推荐使用谷歌100以上版本浏览器!!'), (i.style.position = 'absolute'), (i.style.top = '50%'), (i.style.left = '50%'), (i.style.transform = 'translate(-50%, -50%)'), (i.style.background = 'rgba(255, 255, 255, 0.8)'), (i.style.padding = '10px'), (i.style.borderRadius = '5px'), (i.style.display = 'block'), this.parentNode.appendChild(i) } if (!this.isConnected) return if (this.pc.connectionState === 'connected' && this.dc.readyState === 'open' && this.ws.readyState === 1) { this.play() return } ;(this.ws.onclose = null), this.ws.close(1e3), (this.sceneId = this.dataset.sceneId), (this.viewMode = this.dataset.viewMode), (this.token = this.dataset.token) const n = 'ws:' + cE + `?sceneId=${this.sceneId}&token=${this.token}&&view_mode=${this.viewMode}` ;(this.ws = new WebSocket(n, 'peer-stream')), this.ws.onerror, (this.ws.onopen = () => {}), (this.ws.onmessage = (i) => { this.onWebSocketMessage(i.data) }), (this.ws.onclose = (i) => { this.dispatchEvent(new CustomEvent('playerdisconnected', {})), this.dispatchEvent(new CustomEvent('disConnected', {})) }) } static get observedAttributes() { return ['sceneId', 'token', 'viewMode'] } disconnectedCallback() { this._onClose && this._onClose(), setTimeout(() => { this.isConnected || (this.ws.close(1e3), this.pc.close(), this.dc && this.dc.close()) }, 100) } adoptedCallback() {} attributeChangedCallback(n, i, s) { this.isConnected && (this.ws.close(1e3), n === 'viewMode' ? (this.viewMode = s) : n === 'sceneId' ? (this.sceneId = s) : n === 'token' && (this.token = s)) } async onWebSocketMessage(n) { try { n = JSON.parse(n) } catch { return } if (n.type === 'offer') { this.setupPeerConnection() const i = new RTCSessionDescription(n) await this.pc.setRemoteDescription(i), this.pc.addTransceiver('video', { direction: 'recvonly' }) const s = await this.pc.createAnswer() await this.pc.setLocalDescription(s), this.ws.send(JSON.stringify(s)) for (let a of this.pc.getReceivers()) a.playoutDelayHint = 0 } else if (n.type === 'iceCandidate') { const i = new RTCIceCandidate(n.candidate) await this.pc.addIceCandidate(i) } else if (n.type === 'answer') { const i = new RTCSessionDescription(n) await this.pc.setRemoteDescription(i) for (const s of this.pc.getReceivers()) s.playoutDelayHint = 0 } else n.type === 'playerqueue' ? this.dispatchEvent(new CustomEvent('playerqueue', { detail: n })) : n.type === 'setIceServers' ? (ks = n.iceServers) : n.type === 'playerConnected' ? (this.setupPeerConnection_ue4(), this.setupDataChannel_ue4()) : n.type === 'ping' ? ((n.type = 'pong'), this.ws.send(JSON.stringify(n)), this.mouseReleaseTime && new Date() - this.lastmouseTime > this.mouseReleaseTime * 1e3 && ((n.type = 'mouseRelease'), this.ws.send(JSON.stringify(n)))) : n.type === 'ueDisConnected' ? this.dispatchEvent(new CustomEvent('ueDisConnected', { detail: n })) : n.type === 'setmouseReleaseTime' ? ((this.mouseReleaseTime = n.mouseReleaseTime), (this.lastmouseTime = new Date())) : n.type === 'getStatus' && this.handleGetStatus(n) } handleGetStatus(n) { if (!(this.pc instanceof RTCPeerConnection)) { ;(n.videoencoderqp = null), (n.netrate = null), this.ws.send(JSON.stringify(n)) return } let i = 0 this.pc.getStats(null).then((a) => { a.forEach((o) => { o.type === 'transport' && (i = o.bytesReceived) }) }) let s = 0.2 setTimeout(() => { this.pc.getStats(null).then((a) => { a.forEach((o) => { if (o.type === 'transport') { const d = (((o.bytesReceived - i) / s) * 8) / 1e3 / 1e3 ;(n.videoencoderqp = this.VideoEncoderQP), (n.netrate = d.toFixed(2)), this.ws.send(JSON.stringify(n)) } }) }) }, s * 1e3) } onDataChannelMessage(n) { n = new Uint8Array(n) const i = new TextDecoder('utf-16') switch (n[0]) { case pt.VideoEncoderAvgQP: { this.VideoEncoderQP = +i.decode(n.slice(1)) break } case pt.Response: { const s = i.decode(n.slice(1)) this.dispatchEvent(new CustomEvent('message', { detail: s })) break } case pt.Command: { const s = JSON.parse(i.decode(n.slice(1))) if (s.command === 'onScreenKeyboard' && s.showOnScreenKeyboard && this.enableChinese) { let a = document.createElement('input') ;(a.style.position = 'fixed'), (a.style.zIndex = -1), (a.autofocus = !0), document.body.append(a), a.focus(), a.addEventListener('compositionend', (o) => { this.emitMessage(o.data, Me.CompositionEnd) }), a.addEventListener('blue', (o) => { a.remove() }), a.addEventListener('keydown', (o) => { this.onkeydown(o) }), a.addEventListener('keyup', (o) => { this.onkeyup(o) }), a.addEventListener('keypress', (o) => { this.onkeypress(o) }) } break } case pt.FreezeFrame: { new DataView(n.slice(1, 5).buffer).getInt32(0, !0) const s = n.slice(5) break } case pt.UnfreezeFrame: break case pt.LatencyTest: { const s = JSON.parse(i.decode(n.slice(1))) break } case pt.QualityControlOwnership: { this.QualityControlOwnership = n[1] !== 0 break } case pt.InitialSettings: { this.InitialSettings = JSON.parse(i.decode(n.slice(1))) break } case pt.InputControlOwnership: { this.InputControlOwnership = n[1] !== 0 break } case pt.Protocol: { let s = JSON.parse(i.decode(n.slice(1))) if (s.Direction === 0) for (let a in s) Me[a] = s[a].id else if (s.Direction === 1) for (let a in s) pt[a] = s[a].id this.dc.send(new Uint8Array([Me.RequestInitialSettings])), this.dc.send(new Uint8Array([Me.RequestQualityControl])) break } default: } } setupVideo() { ;(this.tabIndex = 0), (this.playsInline = !0), (this.disablepictureinpicture = !0), (this.muted = !0), (this.autoplay = !0), (this.style['pointer-events'] = 'none'), (this.style['object-fit'] = 'fill') } setupDataChannel(n) { ;(this.dc = n.channel), (this.dc.binaryType = 'arraybuffer'), (this.dc.onopen = (i) => { this.style.pointerEvents = 'auto' }), (this.dc.onclose = (i) => { ;(this.style.pointerEvents = 'none'), this.blur() }), this.dc.onerror, (this.dc.onmessage = (i) => { this.onDataChannelMessage(i.data) }) } setupDataChannel_ue4(n = 'hello') { ;(this.dc = this.pc.createDataChannel(n, { ordered: !0 })), (this.dc.binaryType = 'arraybuffer'), (this.dc.onopen = (i) => { ;(this.style.pointerEvents = 'auto'), this.dc.send(new Uint8Array([Me.RequestInitialSettings])), this.dc.send(new Uint8Array([Me.RequestQualityControl])) }), (this.dc.onclose = (i) => { this.style.pointerEvents = 'none' }), (this.dc.onmessage = (i) => { this.onDataChannelMessage(i.data) }) } setupPeerConnection() { this.pc.close(), (this.pc = new RTCPeerConnection({ sdpSemantics: 'unified-plan', bundlePolicy: 'balanced', iceServers: ks })), (this.pc.ontrack = (n) => { n.track.kind === 'video' ? (this.srcObject = n.streams[0]) : n.track.kind === 'audio' && ((this.audio = document.createElement('audio')), (this.audio.autoplay = !0), (this.audio.srcObject = n.streams[0])) }), (this.pc.onicecandidate = (n) => { var i ;(i = n.candidate) != null && i.candidate && this.ws.send(JSON.stringify({ type: 'iceCandidate', candidate: n.candidate })) }), (this.pc.ondatachannel = (n) => { this.setupDataChannel(n) }) } setupPeerConnection_ue4() { this.pc.close(), (this.pc = new RTCPeerConnection({ sdpSemantics: 'unified-plan', bundlePolicy: 'balanced', iceServers: ks })), (this.pc.ontrack = (n) => { n.track.kind === 'video' ? (this.srcObject = n.streams[0]) : n.track.kind === 'audio' && ((this.audio = document.createElement('audio')), (this.audio.autoplay = !0), (this.audio.srcObject = n.streams[0])) }), (this.pc.onicecandidate = (n) => { var i ;(i = n.candidate) != null && i.candidate && this.ws.send(JSON.stringify({ type: 'iceCandidate', candidate: n.candidate })) }), (this.pc.onnegotiationneeded = (n) => { this.setupOffer() }) } async setupOffer() { const n = await this.pc.createOffer({ offerToReceiveAudio: +this.hasAttribute('audio'), offerToReceiveVideo: 1, voiceActivityDetection: !1, }) ;(n.sdp = n.sdp.replace('useinbandfec=1', 'useinbandfec=1;stereo=1;sprop-maxcapturerate=48000')), this.pc.setLocalDescription(n), this.ws.send(JSON.stringify(n)) } registerKeyboardEvents() { ;(this.onkeydown = (n) => { const i = ti[n.code] || n.keyCode this.dc.send(new Uint8Array([Me.KeyDown, i, n.repeat])), this.keysDown.add(i), n.keyCode === ti.Backspace && this.onkeypress({ keyCode: ti.Backspace }) }), (this.onkeyup = (n) => { const i = ti[n.code] || n.keyCode this.dc.send(new Uint8Array([Me.KeyUp, i])), this.keysDown.delete(i) }), (this.onkeypress = (n) => { const i = new DataView(new ArrayBuffer(3)) i.setUint8(0, Me.KeyPress), i.setUint16(1, ti[n.code] || n.keyCode, !0), this.dc.send(i) }), (this.onblur = (n) => { this.keysDown.forEach((i) => { this.dc.send(new Uint8Array([Me.KeyUp, i])) }), this.keysDown.clear() }) } registerTouchEvents() { const n = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], i = {} ;(this.ontouchstart = (s) => { for (const a of s.changedTouches) { const o = n.pop() i[a.identifier] = o } this.emitTouchData(Me.TouchStart, s.changedTouches, i), s.preventDefault() }), (this.ontouchend = (s) => { this.emitTouchData(Me.TouchEnd, s.changedTouches, i) for (const a of s.changedTouches) n.push(i[a.identifier]), delete i[a.identifier] s.preventDefault() }), (this.ontouchmove = (s) => { this.emitTouchData(Me.TouchMove, s.touches, i), s.preventDefault() }) } registerFakeMouseEvents() { let n const { left: i, top: s } = this.getBoundingClientRect() ;(this.ontouchstart = (a) => { if (n === void 0) { const o = a.changedTouches[0] ;(n = { id: o.identifier, x: o.clientX - i, y: o.clientY - s }), this.onmouseenter(a), this.emitMouseDown(Er.MainButton, n.x, n.y) } a.preventDefault() }), (this.ontouchend = (a) => { if (n) { for (const o of a.changedTouches) if (o.identifier === n.id) { const r = o.clientX - i, l = o.clientY - s this.emitMouseUp(Er.MainButton, r, l), this.onmouseleave(a), (n = void 0) break } } a.preventDefault() }), (this.ontouchmove = (a) => { if (n) { for (const o of a.touches) if (o.identifier === n.id) { const r = o.clientX - i, l = o.clientY - s this.emitMouseMove(r, l, r - n.x, l - n.y), (n.x = r), (n.y = l) break } } a.preventDefault() }) } registerMouseHoverEvents() { this.registerMouseEnterAndLeaveEvents(), (this.onmousemove = (n) => { this.emitMouseMove(n.offsetX, n.offsetY, n.movementX, n.movementY), n.preventDefault() }), (this.onmousedown = (n) => { this.emitMouseDown(n.button, n.offsetX, n.offsetY) }), (this.onmouseup = (n) => { this.emitMouseUp(n.button, n.offsetX, n.offsetY) }), (this.oncontextmenu = (n) => { this.emitMouseUp(n.button, n.offsetX, n.offsetY), n.preventDefault() }), (this.onwheel = (n) => { this.emitMouseWheel(n.wheelDelta, n.offsetX, n.offsetY), n.preventDefault() }) } registerPointerLockEvents() { this.registerMouseEnterAndLeaveEvents() const { clientWidth: n, clientHeight: i } = this let s = n / 2, a = i / 2 ;(this.onmousemove = (o) => { ;(s += o.movementX), (a += o.movementY), (s = (s + n) % n), (a = (a + i) % i), this.emitMouseMove(s, a, o.movementX, o.movementY) }), (this.onmousedown = (o) => { this.emitMouseDown(o.button, s, a) }), (this.onmouseup = (o) => { this.emitMouseUp(o.button, s, a) }), (this.onwheel = (o) => { this.emitMouseWheel(o.wheelDelta, s, a) }) } registerMouseEnterAndLeaveEvents() { ;(this.onmouseenter = (n) => { this.dc.send(new Uint8Array([Me.MouseEnter])) }), (this.onmouseleave = (n) => { this.dc.readyState === 'open' && this.dc.send(new Uint8Array([Me.MouseLeave])) for (let i = 1; i <= 16; i *= 2) n.buttons & i && this.emitMouseUp(uE[i], 0, 0) }) } emitMouseMove(n, i, s, a) { const o = this.normalize(n, i) ;(s = (s * 65536) / this.clientWidth), (a = (a * 65536) / this.clientHeight) const r = new DataView(new ArrayBuffer(9)) r.setUint8(0, Me.MouseMove), r.setUint16(1, o.x, !0), r.setUint16(3, o.y, !0), r.setInt16(5, s, !0), r.setInt16(7, a, !0), this.dc.send(r), (this.lastmouseTime = new Date()) } emitMouseDown(n, i, s) { const a = this.normalize(i, s), o = new DataView(new ArrayBuffer(6)) o.setUint8(0, Me.MouseDown), o.setUint8(1, n), o.setUint16(2, a.x, !0), o.setUint16(4, a.y, !0), this.dc.send(o), this.enableChinese && this.dc.send(new Uint8Array([Me.FindFocus])) } emitMouseUp(n, i, s) { const a = this.normalize(i, s), o = new DataView(new ArrayBuffer(6)) o.setUint8(0, Me.MouseUp), o.setUint8(1, n), o.setUint16(2, a.x, !0), o.setUint16(4, a.y, !0), this.dc.send(o) } emitMouseWheel(n, i, s) { const a = this.normalize(i, s), o = new DataView(new ArrayBuffer(7)) o.setUint8(0, Me.MouseWheel), o.setInt16(1, n, !0), o.setUint16(3, a.x, !0), o.setUint16(5, a.y, !0), this.dc.send(o) } emitTouchData(n, i, s) { const a = new DataView(new ArrayBuffer(2 + 6 * i.length)) a.setUint8(0, n), a.setUint8(1, i.length) let o = 2 for (const r of i) { const l = r.clientX - this.offsetLeft, d = r.clientY - this.offsetTop, c = this.normalize(l, d) a.setUint16(o, c.x, !0), (o += 2), a.setUint16(o, c.y, !0), (o += 2), a.setUint8(o, s[r.identifier], !0), (o += 1), a.setUint8(o, 255 * r.force, !0), (o += 1) } this.dc.send(a) } emitMessage(n, i = Me.UIInteraction) { typeof n != 'string' && (n = JSON.stringify(n)) const s = new DataView(new ArrayBuffer(3 + 2 * n.length)) let a = 0 s.setUint8(a, i), a++, s.setUint16(a, n.length, !0), (a += 2) for (let o = 0; o < n.length; o++) s.setUint16(a, n.charCodeAt(o), !0), (a += 2) return this.dc.send(s), new Promise((o) => this.addEventListener('message', (r) => o(r.detail), { once: !0 })) } normalize(n, i) { const s = n / this.clientWidth, a = i / this.clientHeight return s < 0 || s > 1 || a < 0 || a > 1 ? { inRange: !1, x: 65535, y: 65535 } : { inRange: !0, x: s * 65536, y: a * 65536 } } } customElements.define('peer-stream', dE, { extends: 'video' }) let Bi = function () { return (function (e) { var t = {} function n(i) { if (t[i]) return t[i].exports var s = (t[i] = { i, l: !1, exports: {} }) return e[i].call(s.exports, s, s.exports, n), (s.l = !0), s.exports } return ( (n.m = e), (n.c = t), (n.d = function (i, s, a) { n.o(i, s) || Object.defineProperty(i, s, { enumerable: !0, get: a }) }), (n.r = function (i) { typeof Symbol < 'u' && Symbol.toStringTag && Object.defineProperty(i, Symbol.toStringTag, { value: 'Module' }), Object.defineProperty(i, '__esModule', { value: !0 }) }), (n.t = function (i, s) { if ((1 & s && (i = n(i)), 8 & s || (4 & s && typeof i == 'object' && i && i.__esModule))) return i var a = Object.create(null) if ( (n.r(a), Object.defineProperty(a, 'default', { enumerable: !0, value: i }), 2 & s && typeof i != 'string') ) for (var o in i) n.d( a, o, function (r) { return i[r] }.bind(null, o) ) return a }), (n.n = function (i) { var s = i && i.__esModule ? function () { return i.default } : function () { return i } return n.d(s, 'a', s), s }), (n.o = function (i, s) { return Object.prototype.hasOwnProperty.call(i, s) }), (n.p = ''), n((n.s = 0)) ) })([ function (e, t, n) { ;(function (i) { var s, a function o(g, b) { return b - g } var r, l = (function () { var g, b function u() { var N = arguments[0], k = arguments[1], F = arguments[2], L = arguments[3] return new f((O, G) => { var V = new XMLHttpRequest() ;(V.onreadystatechange = function () { if (V.readyState === 4) if ((V.status >= 200 && V.status < 300) || V.status === 304) if (typeof V.responseText == 'string' && L == 'json') try { O(JSON.parse(V.responseText)) } catch { O(V.responseText) } else O(V.responseText) else G(V.status) }), V.open(N, k, !0), N == 'get' ? (V.setRequestHeader('content-type', 'text/plain;charset=UTF-8'), V.setRequestHeader('content-type', 'application/json')) : V.setRequestHeader('content-Type', 'application/x-www-form-urlencoded'), V.send(F) }) } function p(N, k, F, L) { return v(N).then(k, F, L) } function v(N) { var k, F, L return ( N instanceof f ? (k = N) : I(N) ? ((F = R()), N.then( function (O) { F.resolve(O) }, function (O) { F.reject(O) }, function (O) { F.progress(O) } ), (k = F.promise)) : ((L = N), (k = new f(function (O) { try { return v(O ? O(L) : L) } catch (G) { return w(G) } }))), k ) } function f(N) { this.then = N } function w(N) { return new f(function (k, F) { try { return F ? v(F(N)) : w(N) } catch (L) { return w(L) } }) } function R() { var N, k, F, L, O, G return ( (N = new f(V)), (k = []), (F = []), (L = function (ie, we, ve) { var fe, Re return ( (fe = R()), (Re = typeof ve == 'function' ? function (pe) { try { fe.progress(ve(pe)) } catch (W) { fe.progress(W) } } : function (pe) { fe.progress(pe) }), k.push(function (pe) { pe.then(ie, we).then(fe.resolve, fe.reject, Re) }), F.push(Re), fe.promise ) }), (O = function (ie) { return j(F, ie), ie }), (G = function (ie) { return (ie = v(ie)), (L = ie.then), (G = v), (O = K), j(k, ie), (F = k = void 0), ie }), { then: V, resolve: ne, reject: re, progress: Ie, promise: N, resolver: { resolve: ne, reject: re, progress: Ie }, } ) function V(ie, we, ve) { return L(ie, we, ve) } function ne(ie) { return G(ie) } function re(ie) { return G(w(ie)) } function Ie(ie) { return O(ie) } } function I(N) { return N && typeof N.then == 'function' } function y(N, k, F, L, O) { return ( U(2, arguments), p(N, function (G) { var V, ne, re, Ie, ie, we, ve, fe, Re, pe if ( ((Re = G.length >>> 0), (V = Math.max(0, Math.min(k, Re))), (re = []), (ne = Re - V + 1), (Ie = []), (ie = R()), V) ) for ( fe = ie.progress, ve = function (le) { Ie.push(le), --ne || ((we = ve = K), ie.reject(Ie)) }, we = function (le) { re.push(le), --V || ((we = ve = K), ie.resolve(re)) }, pe = 0; pe < Re; ++pe ) pe in G && p(G[pe], se, W, fe) else ie.resolve(re) return ie.then(F, L, O) function W(le) { ve(le) } function se(le) { we(le) } }) ) } function E(N, k, F, L) { return U(1, arguments), m(N, H).then(k, F, L) } function m(N, k) { return p(N, function (F) { var L, O, G, V, ne, re if (((G = O = F.length >>> 0), (L = []), (re = R()), G)) for ( V = function (Ie, ie) { p(Ie, k).then(function (we) { ;(L[ie] = we), --G || re.resolve(L) }, re.reject) }, ne = 0; ne < O; ne++ ) ne in F ? V(F[ne], ne) : --G else re.resolve(L) return re.promise }) } function j(N, k) { for (var F, L = 0; (F = N[L++]); ) F(k) } function U(N, k) { for (var F, L = k.length; L > N; ) if ((F = k[--L]) != null && typeof F != 'function') throw new Error('arg ' + L + ' must be a function') } function K() {} function H(N) { return N } return ( (p.defer = R), (p.resolve = v), (p.reject = function (N) { return p(N, w) }), (p.join = function () { return m(arguments, H) }), (p.all = E), (p.map = m), (p.reduce = function (N, k) { var F = b.call(arguments, 1) return p(N, function (L) { var O return ( (O = L.length), (F[0] = function (G, V, ne) { return p(G, function (re) { return p(V, function (Ie) { return k(re, Ie, ne, O) }) }) }), g.apply(L, F) ) }) }), (p.any = function (N, k, F, L) { return y( N, 1, function (O) { return k ? k(O[0]) : O[0] }, F, L ) }), (p.some = y), (p.chain = function (N, k, F) { var L = arguments.length > 2 return p( N, function (O) { return (O = L ? F : O), k.resolve(O), O }, function (O) { return k.reject(O), w(O) }, k.progress ) }), (p.isPromise = I), (p.getJSON = function (N) { return u('get', N, null, 'json') }), (p.postJSON = function (N, k) { return ( typeof k == 'object' && (k = (function (F) { if (!F) return '' var L = [] for (var O in F) if (F.hasOwnProperty(O) && typeof F[O] != 'function') { var G = F[O] != null ? F[O].toString() : '' ;(O = encodeURIComponent(O.replace('%20', '+'))), (G = encodeURIComponent(G.replace('%20', '+'))), L.push(O + '=' + G) } return L.join('&') })(k)), u('post', N, k || null, 'json') ) }), (f.prototype = { always: function (N, k) { return this.then(N, N, k) }, otherwise: function (N) { return this.then(void 0, N) }, yield: function (N) { return this.then(function () { return N }) }, spread: function (N) { return this.then(function (k) { return E(k, function (F) { return N.apply(void 0, F) }) }) }, }), (b = [].slice), (g = [].reduce || function (N) { var k, F, L, O, G if (((G = 0), (O = (k = Object(this)).length >>> 0), (F = arguments).length <= 1)) for (;;) { if (G in k) { L = k[G++] break } if (++G >= O) throw new TypeError() } else L = F[1] for (; G < O; ++G) G in k && (L = N(L, k[G], G, k)) return L }), p ) })() class d { constructor(b) { return ( (this._create = function (u) { var p = this ;(u = Object.assign( { host: '192.168.29.100', port: 59001, clientId: 'testmap', group: 'groupA', onMessage: function (v) {}, }, u )), (this.ready = new l.defer()) try { ;(this.client = new msc.Client({ host: u.host, port: u.port }, u.clientId)), this.client.connect(), this.client.onConnect(function () { p.ready.resolve(this) }), this.client.join(u.group), this.client.onMessage(u.onMessage) } catch (v) { p.ready.reject(v.message) } return this }), (this.send = function (u) { var p = this this.ready.then(function () { p.client.pub({ sceneId: u.sceneId, targetClientIds: u.targetClientIds, data: u.data }) }) }), (this.broadcast = function (u) { var p = this this.ready.then(function () { p.client.pub({ sceneId: u.sceneId, data: u.data }, u.group) }) }), this._create(b) ) } } class c extends class { constructor() { ;(this._listeners = []), (this._scopes = []), (this._toRemove = []), (this._insideRaiseEvent = !1) } get numberOfListeners() { return this._listeners.length - this._toRemove.length } addEventListener(b, u) { if (typeof b == 'function') { this._listeners.push(b), this._scopes.push(u) var p = this return function () { p.removeEventListener(b, u) } } } removeEventListener(b, u) { if (typeof b == 'function') { for (var p = this._listeners, v = this._scopes, f = -1, w = 0; w < p.length; w++) if (p[w] === b && v[w] === u) { f = w break } if (f !== -1) return ( this._insideRaiseEvent ? (this._toRemove.push(f), (p[f] = void 0), (v[f] = void 0)) : (p.splice(f, 1), v.splice(f, 1)), !0 ) } return !1 } raiseEvent() { var b this._insideRaiseEvent = !0 var u = this._listeners, p = this._scopes, v = u.length for (b = 0; b < v; b++) { var f = u[b] f && f != null && u[b].apply(p[b], arguments) } var w = this._toRemove if ((v = w.length) > 0) { for (w.sort(o), b = 0; b < v; b++) { var R = w[b] u.splice(R, 1), p.splice(R, 1) } w.length = 0 } this._insideRaiseEvent = !1 } } { constructor(b) { super(), (this.commandQueue = []) var u = this, p = b.id, v = b.url function f(w) { if (w && w.data) try { var R = w.data if (typeof w.data == 'string') { var I = w.data.replace(/^\s+|\s+$/g, '') R = JSON.parse(I) } R.action && R.action !== '' && (R.action == 'MapReady' && u._onReady ? u._onReady.call(u) : (R.action == 'Camera' && u._cameraDeferred && u._cameraDeferred.resolve(R.data), R.action == 'QueryService' && ((u.QueryServiceInfo = R.data), u._queryDeferred && u._queryDeferred.resolve()), R.action == 'QueryLocalTask' && u._queryLocalTaskDeferred && u._queryLocalTaskDeferred.resolve(R.data), u.raiseEvent(R))) } catch {} } return ( (this._onReady = b.onReady), window.attachEvent ? window.attachEvent('message', f) : window.addEventListener && window.addEventListener('message', f, !1), (this._iframeEle = document.getElementById(p)), new Promise((w, R) => { this._iframeEle ? w(this._iframeEle) : (window.onload = function () { ;(this._iframeEle = document.getElementById(p)), this._iframeEle || ((this._iframeEle = document.createElement('iframe')), this._iframeEle.setAttribute('id', p), this._iframeEle.setAttribute('scrolling', 'no'), this._iframeEle.setAttribute('allowtransparency', 'true'), this._iframeEle.setAttribute('allowfullscreen', 'true'), this._iframeEle.setAttribute('webkitallowfullscreen', 'true'), this._iframeEle.setAttribute('mozallowfullscreen', 'true'), document.body.appendChild(this._iframeEle)), w(this._iframeEle) }.bind(this)) }) .then(function (w) { return new Promise(function (R, I) { ;(w.onload = function () { var y = w.contentWindow, E = w.src ? w.src : '*' R({ iframe: y, domain: E }) }.bind(this)), w.setAttribute('src', v.toString()) }) }) .then( function (w) { ;(this.iframe = w.iframe), (this.domain = w.domain), this.commandQueue.length > 0 && (this.Invoke(this.commandQueue), (this.commandQueue = [])) }.bind(this) ), this ) } Invoke(b) { if (b != null) { var u = Array.isArray(b) ? b : [b] this.iframe !== void 0 ? u.forEach( function (p) { p.hasOwnProperty('ActionName') && (p.Parameters && typeof p.Parameters != 'string' && (p.Parameters = JSON.stringify(p.Parameters)), this.iframe.postMessage(JSON.stringify(p), this.domain)) }.bind(this) ) : (this.commandQueue = this.commandQueue.concat(u)) } } getCamera() { return ( (this._cameraDeferred = new l.defer()), this.Invoke({ ActionName: 'getCamera' }), this._cameraDeferred ) } QueryTask(b) { return ( (this._queryDeferred = new l.defer()), this.QueryServiceInfo && this._queryDeferred.resolve(), this._queryDeferred.then( function () { return ( (this._taskjob && !this._taskjob.checkUpdate(this.QueryServiceInfo)) || (this._taskjob = new A(this.QueryServiceInfo)), l.all([this._taskjob.QueryTask(b), this.QueryLocalTask(b)]).then( function (u) { var p = u .filter(function (v) { return v != null }) .map(function (v) { return v }) return p.length > 0 ? p[0] : void 0 }, function (u) {} ) ) }.bind(this) ) ) } QueryLocalTask(b) { return ( (this._queryLocalTaskDeferred = new l.defer()), this.Invoke({ ActionName: 'QueryLocalTask', Parameters: b }), this._queryLocalTaskDeferred ) } } class A { constructor(b) { var u = [5, 6, 4, 2, 3, 1] function p(y, E) { for ( var m = '', j = y.length, U = Math.floor(E.length / j), K = E.length % j, H = [], N = 0; N < j; N++ ) H[y[N] - 1] = U + (K-- > 0 ? 1 : 0) for (var k = [], F = 0, L = 0; L < H.length; L++) { var O = E.substr(F, H[L]) k.push(O.split('')), (F += H[L]) } for (var G = f(y), V = 0; V < U + 1; V++) for (var ne = 0; ne < j; ne++) m += k[v(G, ne + 1)].shift() || '' return m } var v = function (y, E) { for (var m = y.length - 1; m >= 0; m--) if (y[m] == E) return m return null }, f = function (y) { for (var E = y.length, m = [], j = 0; j < E; j++) m[y[j] - 1] = j + 1 return m } ;(this._optionslayers = b.data), b && (this.layers = b.data.map(function (y) { var E = {} for (var m in y) typeof y[m] == 'string' ? (E[m] = p(u, y[m])) : (E[m] = y[m]) return E })), (this.layerinfo = void 0), (this.code = b.code), (this.filter = b.filter), (this._loaded = !1), (this.checkUpdate = function (y) { if (this.code != y.code) return !0 var E = 0 return ( y.data.forEach( function (m) { this._optionslayers.find(function (j) { return m.url == j.url }) == null && E++ }.bind(this) ), E > 0 ) }) var w = function () { var y = l.defer() if (this._loaded) y.resolve() else { if (!this.layers) return void y.reject() var E = [] this.layers.forEach(function (m) { m.layerinfo || E.push( ((j = m), (U = l.defer()), l.getJSON(j.url + '?f=pjson').then(function (K) { K.error ? U.reject() : ((j.layerinfo = K), U.resolve(j)) }), U) ) var j, U }), l.all(E).then( function () { ;(this._loaded = this.layers.filter(function (m) { return m.layerinfo == null }).length == 0), y.resolve() }.bind(this) ) } return y }, R = function (y, E) { var m = l.defer(), j = this.layers .map(function (N) { return N.layerinfo && N.layerinfo.layers ? { url: N.url, currentVersion: Number(N.layerinfo.currentVersion), spatialReference: N.layerinfo.spatialReference, layer: N.layerinfo.layers.find(function (k) { return k.name == y }), } : {} }) .filter(function (N) { return N.layer != null }) if (j.length == 0) return m.reject(void 0), m var U = (j = j[0]).layer if ( U.defaultVisibility == 0 && ((U.subLayerIds && U.subLayerIds.length > 0) || U.type == 'Group Layer') ) { var K = this.layers.find(function (N) { return N.url == j.url }), H = U.subLayerIds.map( function (N) { return K.layerinfo.layers.find(function (k) { return k.id == N && k.minScale == 0 }) }.bind(this) ) ;(H = H.filter(function (N) { return N != null })), j.currentVersion >= 10.7 ? ((E = E || H[0].geometryType.toLowerCase().replace('esrigeometry', '')), (U = H.find(function (N) { return ( N != null && N.geometryType.toLowerCase().replace('esrigeometry', '') == E.toLowerCase() ) }))) : (U = H.length > 0 ? H[0] : void 0) } return (j.layer = U), m.resolve(j), m }, I = function (y, E) { var m = l.defer() if (E) { var j = Object.assign({}, y) delete j.name, delete j.type var U = this.filter ;(j.where || j.geometry) && U && (j.where = j.where ? U + ' and ' + j.where : U), j.geometry && typeof j.geometry != 'string' && ((j.geometryType = 'esriGeometryPoint'), j.geometry.hasOwnProperty('rings') && (j.geometryType = 'esriGeometryPolygon'), j.geometry.hasOwnProperty('paths') && (j.geometryType = 'esriGeometryPolyline'), delete j.geometry, (j.geometry = JSON.stringify(y.geometry).replace(/"/g, ''))) var K = E.url + '/' + E.layer.id + '/query' l.postJSON(K, j).then( function (H) { var N = { geometryType: E.layer.geometryType || H.geometryType, spatialReference: E.spatialReference, name: y.name, features: H.features, } m.resolve(N) }.bind(this), function (H) { m.reject(void 0) } ) } else m.reject() return m } return ( (this.QueryTask = function (y) { if ( (y = Object.assign( { name: void 0, where: void 0, geometry: void 0, returnGeometry: !1, outFields: '*', f: 'pjson', type: void 0, distance: 0, }, y )).name && (y.where || y.geometry) ) return w .call(this) .then( function () { return R.call(this, y.name, y.type) }.bind(this) ) .then( function (m) { return I.call(this, y, m) }.bind(this) ) var E = l.defer() return E.reject('查询参数不正确'), E }), this ) } } ;(r = function () { return { MapSocket: d, Bridge: c, Task: A } }), i && i.exports ? (i.exports = r()) : (a = typeof (s = r) == 'function' ? s.call(t, n, t, i) : s) === void 0 || (i.exports = a) }).call(this, n(1)(e)) }, function (e, t) { e.exports = function (n) { return ( n.webpackPolyfill || ((n.deprecate = function () {}), (n.paths = []), n.children || (n.children = []), Object.defineProperty(n, 'loaded', { enumerable: !0, get: function () { return n.l }, }), Object.defineProperty(n, 'id', { enumerable: !0, get: function () { return n.i }, }), (n.webpackPolyfill = 1)), n ) } }, ]) }, pE = window, oo = {} typeof exports == 'object' && typeof module == 'object' ? typeof define == 'function' && define.amd ? define([], Bi) : typeof exports == 'object' ? (oo.CityGis = Bi()) : (pE.CityGis = Bi()) : (oo = Bi()) let Mr const AE = { name: 'Map', setup() { const e = Oo(), t = Qn() Be(() => { t.toggleGlobalLoading(!0), setTimeout(() => { t.toggleGlobalLoading(!1) }, 2500), (Uo.bridgeContent = Mr = new oo.Bridge({ id: 'i_map', url: 'http://192.168.2.140:9250/map-tool-widget-interface/#/jk_map', onReady: function () {}, })), Zc(), g1(1990, -1185, 1412, 13, 54), Mr.addEventListener((n) => { switch (n.action) { case 'MapExtentChanged': let i = n.data.scale ;(e.extent = n.data.extent), (e.center = n.data.center), (e.camera = n.data.camera), (e.scale = i) break case 'SelectedCubeInfo': let s = n.data.grid ;(e.gridCode = s), t.toggleFloatPanel('cube', !0) break case 'SelectedUAVInfo': e.uavId = n.data.uavId break case 'DrawComplete': let a = n.data.geometry e.draw_geometry = a break case 'CurrentUavInfo': e.currentUavInfo = n.data.message break case 'RealTimeUAVList': e.realTimeUAVList = n.data.message break case 'ReturnResult': e.queryResult = n.data.message break case 'CubeResult': e.cubeResult = n.data.message break case 'CurrentCubeLevel': e.currentCubeLevel = n.data.level break } }) }) }, }, gE = { id: 'map' } function fE(e, t, n, i, s, a) { return Z(), T('div', gE, t[0] || (t[0] = [Y('iframe', { id: 'i_map', name: 'i_map' }, null, -1)])) } const bE = Kt(AE, [ ['render', fE], ['__scopeId', 'data-v-65f5e18d'], ]), hE = { key: 0, class: 'global-loader' }, vE = { class: 'masking' }, mE = { __name: 'Index', setup(e) { const t = C(Qn()) return ( (document.oncontextmenu = new Function('event.returnValue=false;')), (document.onselectstart = new Function('event.returnValue=false;')), (n, i) => ( Z(), T( 'div', { id: 'layout', class: B({ loading: t.value.globalLoading, 'scene-loading': t.value.sceneLoading }) }, [ t.value.globalLoading || t.value.sceneLoading ? (Z(), T('div', hE)) : X('', !0), Y('div', vE, [ Y('div', { class: B(['m-left', { collapse: t.value.leftCollapse }]) }, null, 2), Y('div', { class: B(['m-right', { collapse: t.value.rightCollapse }]) }, null, 2), ]), i[0] || (i[0] = Y('header', { class: 'header' }, null, -1)), P(lE, { class: 'page' }), t.value.sceneType === 'gis' ? (Z(), _(bE, { key: 1, class: 'scene' })) : X('', !0), ], 2 ) ) ) }, }, zE = Kt(mE, [['__scopeId', 'data-v-46392ffc']]) export { zE as default }