From 5c6f8a75247d1ffe8b83994041b93090151dae77 Mon Sep 17 00:00:00 2001 From: Mateusz Bolewski <mateusz.bolewski@appunite.com> Date: Thu, 21 Dec 2023 10:38:12 +0100 Subject: [PATCH] feat(map): molart --- package.json | 3 +- public/molart.js | 120287 +++++++++++++++ .../ContextMenu/ContextMenu.component.tsx | 21 +- .../FunctionalArea/Modal/Modal.component.tsx | 2 + .../MolArtModal/MolArtModal.component.tsx | 43 + .../FunctionalArea/Modal/MolArtModal/index.ts | 1 + .../MapAdditionalOptions.component.test.tsx | 4 +- .../reactionsLayer/useOlMapReactionsLayer.ts | 3 +- .../mapRightClick/handleBioEntityResults.ts | 1 - src/redux/map/map.constants.ts | 2 + src/redux/modal/modal.constants.ts | 5 +- src/redux/modal/modal.mock.ts | 5 +- src/redux/modal/modal.reducers.ts | 12 + src/redux/modal/modal.selector.ts | 7 +- src/redux/modal/modal.slice.ts | 5 +- src/redux/modal/modal.types.ts | 5 + src/types/modal.ts | 2 +- yarn.lock | 1692 +- 18 files changed, 121362 insertions(+), 738 deletions(-) create mode 100644 public/molart.js create mode 100644 src/components/FunctionalArea/Modal/MolArtModal/MolArtModal.component.tsx create mode 100644 src/components/FunctionalArea/Modal/MolArtModal/index.ts diff --git a/package.json b/package.json index 6d2d8529..93132b52 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "check-types": "tsc --pretty --noEmit", "prepare": "husky install", "postinstall": "husky install", - "test": "jest --config ./jest.config.ts --transformIgnorePatterns 'node_modules/(?!(ol|geotiff|quick-lru|.*\\.mjs$))'", + "test": "jest --config ./jest.config.ts --transformIgnorePatterns 'node_modules/(?!@toolz/allow-react)/'", "test:watch": "jest --watch --config ./jest.config.ts --transformIgnorePatterns 'node_modules/(?!(ol|geotiff|quick-lru|.*\\.mjs$))'", "test:ci": "jest --config ./jest.config.ts --collectCoverage --coverageDirectory=\"./coverage\" --ci --reporters=default --reporters=jest-junit --watchAll=false --passWithNoTests --transformIgnorePatterns 'node_modules/(?!(ol|geotiff|quick-lru|.*\\.mjs$))'", "test:coverage": "jest --watchAll --coverage --config ./jest.config.ts --transformIgnorePatterns 'node_modules/(?!(ol|geotiff|quick-lru|.*\\.mjs$))'", @@ -34,6 +34,7 @@ "axios-hooks": "^5.0.0", "downshift": "^8.2.3", "eslint-config-next": "13.4.19", + "molart": "github:davidhoksza/MolArt", "next": "13.4.19", "ol": "^8.1.0", "postcss": "8.4.29", diff --git a/public/molart.js b/public/molart.js new file mode 100644 index 00000000..2c125dd8 --- /dev/null +++ b/public/molart.js @@ -0,0 +1,120287 @@ +!(function (t) { + 'object' == typeof exports && 'undefined' != typeof module + ? (module.exports = t()) + : 'function' == typeof define && define.amd + ? define([], t) + : (('undefined' != typeof window + ? window + : 'undefined' != typeof global + ? global + : 'undefined' != typeof self + ? self + : this + ).MolArt = t()); +})(function () { + return (function r(i, o, a) { + function s(e, t) { + if (!o[e]) { + if (!i[e]) { + var n = 'function' == typeof require && require; + if (!t && n) return n(e, !0); + if (l) return l(e, !0); + throw (((t = new Error("Cannot find module '" + e + "'")).code = 'MODULE_NOT_FOUND'), t); + } + (n = o[e] = { exports: {} }), + i[e][0].call( + n.exports, + function (t) { + return s(i[e][1][t] || t); + }, + n, + n.exports, + r, + i, + o, + a, + ); + } + return o[e].exports; + } + for (var l = 'function' == typeof require && require, t = 0; t < a.length; t++) s(a[t]); + return s; + })( + { + 1: [ + function (t, e, n) { + var r, i; + (r = 'undefined' != typeof window ? window : this), + (i = function (w, U) { + function N(t, e) { + return e.toUpperCase(); + } + var t = [], + E = w.document, + c = t.slice, + P = t.concat, + L = t.push, + i = t.indexOf, + Y = {}, + O = Y.toString, + d = Y.hasOwnProperty, + f = {}, + e = '2.2.4', + B = function (t, e) { + return new B.fn.init(t, e); + }, + G = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + z = /^-ms-/, + H = /-([\da-z])/gi; + function j(t) { + var e = !!t && 'length' in t && t.length, + n = B.type(t); + return ( + 'function' !== n && + !B.isWindow(t) && + ('array' === n || 0 === e || ('number' == typeof e && 0 < e && e - 1 in t)) + ); + } + (B.fn = B.prototype = + { + jquery: e, + constructor: B, + selector: '', + length: 0, + toArray: function () { + return c.call(this); + }, + get: function (t) { + return null != t ? (t < 0 ? this[t + this.length] : this[t]) : c.call(this); + }, + pushStack: function (t) { + t = B.merge(this.constructor(), t); + return (t.prevObject = this), (t.context = this.context), t; + }, + each: function (t) { + return B.each(this, t); + }, + map: function (n) { + return this.pushStack( + B.map(this, function (t, e) { + return n.call(t, e, t); + }), + ); + }, + slice: function () { + return this.pushStack(c.apply(this, arguments)); + }, + first: function () { + return this.eq(0); + }, + last: function () { + return this.eq(-1); + }, + eq: function (t) { + var e = this.length, + t = +t + (t < 0 ? e : 0); + return this.pushStack(0 <= t && t < e ? [this[t]] : []); + }, + end: function () { + return this.prevObject || this.constructor(); + }, + push: L, + sort: t.sort, + splice: t.splice, + }), + (B.extend = B.fn.extend = + function () { + var t, + e, + n, + r, + i, + o = arguments[0] || {}, + a = 1, + s = arguments.length, + l = !1; + for ( + 'boolean' == typeof o && ((l = o), (o = arguments[a] || {}), a++), + 'object' == typeof o || B.isFunction(o) || (o = {}), + a === s && ((o = this), a--); + a < s; + a++ + ) + if (null != (t = arguments[a])) + for (e in t) + (i = o[e]), + o !== (n = t[e]) && + (l && n && (B.isPlainObject(n) || (r = B.isArray(n))) + ? ((i = r + ? ((r = !1), i && B.isArray(i) ? i : []) + : i && B.isPlainObject(i) + ? i + : {}), + (o[e] = B.extend(l, i, n))) + : void 0 !== n && (o[e] = n)); + return o; + }), + B.extend({ + expando: 'jQuery' + (e + Math.random()).replace(/\D/g, ''), + isReady: !0, + error: function (t) { + throw new Error(t); + }, + noop: function () {}, + isFunction: function (t) { + return 'function' === B.type(t); + }, + isArray: Array.isArray, + isWindow: function (t) { + return null != t && t === t.window; + }, + isNumeric: function (t) { + var e = t && t.toString(); + return !B.isArray(t) && 0 <= e - parseFloat(e) + 1; + }, + isPlainObject: function (t) { + if ('object' !== B.type(t) || t.nodeType || B.isWindow(t)) return !1; + if ( + t.constructor && + !d.call(t, 'constructor') && + !d.call(t.constructor.prototype || {}, 'isPrototypeOf') + ) + return !1; + for (var e in t); + return void 0 === e || d.call(t, e); + }, + isEmptyObject: function (t) { + for (var e in t) return !1; + return !0; + }, + type: function (t) { + return null == t + ? t + '' + : 'object' == typeof t || 'function' == typeof t + ? Y[O.call(t)] || 'object' + : typeof t; + }, + globalEval: function (t) { + var e, + n = eval; + (t = B.trim(t)) && + (1 === t.indexOf('use strict') + ? (((e = E.createElement('script')).text = t), + E.head.appendChild(e).parentNode.removeChild(e)) + : n(t)); + }, + camelCase: function (t) { + return t.replace(z, 'ms-').replace(H, N); + }, + nodeName: function (t, e) { + return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase(); + }, + each: function (t, e) { + var n, + r = 0; + if (j(t)) for (n = t.length; r < n && !1 !== e.call(t[r], r, t[r]); r++); + else for (r in t) if (!1 === e.call(t[r], r, t[r])) break; + return t; + }, + trim: function (t) { + return null == t ? '' : (t + '').replace(G, ''); + }, + makeArray: function (t, e) { + e = e || []; + return ( + null != t && + (j(Object(t)) ? B.merge(e, 'string' == typeof t ? [t] : t) : L.call(e, t)), + e + ); + }, + inArray: function (t, e, n) { + return null == e ? -1 : i.call(e, t, n); + }, + merge: function (t, e) { + for (var n = +e.length, r = 0, i = t.length; r < n; r++) t[i++] = e[r]; + return (t.length = i), t; + }, + grep: function (t, e, n) { + for (var r = [], i = 0, o = t.length, a = !n; i < o; i++) + !e(t[i], i) != a && r.push(t[i]); + return r; + }, + map: function (t, e, n) { + var r, + i, + o = 0, + a = []; + if (j(t)) + for (r = t.length; o < r; o++) null != (i = e(t[o], o, n)) && a.push(i); + else for (o in t) null != (i = e(t[o], o, n)) && a.push(i); + return P.apply([], a); + }, + guid: 1, + proxy: function (t, e) { + var n, r; + if (('string' == typeof e && ((r = t[e]), (e = t), (t = r)), B.isFunction(t))) + return ( + (n = c.call(arguments, 2)), + ((r = function () { + return t.apply(e || this, n.concat(c.call(arguments))); + }).guid = t.guid = + t.guid || B.guid++), + r + ); + }, + now: Date.now, + support: f, + }), + 'function' == typeof Symbol && (B.fn[Symbol.iterator] = t[Symbol.iterator]), + B.each( + 'Boolean Number String Function Array Date RegExp Object Error Symbol'.split(' '), + function (t, e) { + Y['[object ' + e + ']'] = e.toLowerCase(); + }, + ); + function r(t, e, n) { + for (var r = [], i = void 0 !== n; (t = t[e]) && 9 !== t.nodeType; ) + if (1 === t.nodeType) { + if (i && B(t).is(n)) break; + r.push(t); + } + return r; + } + function V(t, e) { + for (var n = []; t; t = t.nextSibling) 1 === t.nodeType && t !== e && n.push(t); + return n; + } + var e = (function (U) { + function A(t, e, n) { + var r = '0x' + e - 65536; + return r != r || n + ? e + : r < 0 + ? String.fromCharCode(65536 + r) + : String.fromCharCode((r >> 10) | 55296, (1023 & r) | 56320); + } + function N() { + E(); + } + var t, + d, + y, + o, + P, + f, + L, + Y, + w, + l, + u, + E, + B, + e, + C, + g, + r, + i, + m, + x = 'sizzle' + +new Date(), + v = U.document, + I = 0, + O = 0, + G = ut(), + z = ut(), + b = ut(), + H = function (t, e) { + return t === e && (u = !0), 0; + }, + j = {}.hasOwnProperty, + n = [], + V = n.pop, + q = n.push, + M = n.push, + W = n.slice, + D = function (t, e) { + for (var n = 0, r = t.length; n < r; n++) if (t[n] === e) return n; + return -1; + }, + J = + 'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped', + a = '[\\x20\\t\\r\\n\\f]', + s = '(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+', + K = + '\\[' + + a + + '*(' + + s + + ')(?:' + + a + + '*([*^$|!~]?=)' + + a + + '*(?:\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)"|(' + + s + + '))|)' + + a + + '*\\]', + Z = + ':(' + + s + + ')(?:\\(((\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|' + + K + + ')*)|.*)\\)|)', + X = new RegExp(a + '+', 'g'), + S = new RegExp('^' + a + '+|((?:^|[^\\\\])(?:\\\\.)*)' + a + '+$', 'g'), + $ = new RegExp('^' + a + '*,' + a + '*'), + tt = new RegExp('^' + a + '*([>+~]|' + a + ')' + a + '*'), + et = new RegExp('=' + a + '*([^\\]\'"]*?)' + a + '*\\]', 'g'), + nt = new RegExp(Z), + rt = new RegExp('^' + s + '$'), + h = { + ID: new RegExp('^#(' + s + ')'), + CLASS: new RegExp('^\\.(' + s + ')'), + TAG: new RegExp('^(' + s + '|[*])'), + ATTR: new RegExp('^' + K), + PSEUDO: new RegExp('^' + Z), + CHILD: new RegExp( + '^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(' + + a + + '*(even|odd|(([+-]|)(\\d*)n|)' + + a + + '*(?:([+-]|)' + + a + + '*(\\d+)|))' + + a + + '*\\)|)', + 'i', + ), + bool: new RegExp('^(?:' + J + ')$', 'i'), + needsContext: new RegExp( + '^' + + a + + '*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(' + + a + + '*((?:-\\d)?\\d*)' + + a + + '*\\)|)(?=[^-]|$)', + 'i', + ), + }, + it = /^(?:input|select|textarea|button)$/i, + ot = /^h\d$/i, + c = /^[^{]+\{\s*\[native \w/, + at = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + st = /[+~]/, + lt = /'|\\/g, + p = new RegExp('\\\\([\\da-f]{1,6}' + a + '?|(' + a + ')|.)', 'ig'); + try { + M.apply((n = W.call(v.childNodes)), v.childNodes), + n[v.childNodes.length].nodeType; + } catch (t) { + M = { + apply: n.length + ? function (t, e) { + q.apply(t, W.call(e)); + } + : function (t, e) { + for (var n = t.length, r = 0; (t[n++] = e[r++]); ); + t.length = n - 1; + }, + }; + } + function k(t, e, n, r) { + var i, + o, + a, + s, + l, + u, + c, + A, + h = e && e.ownerDocument, + p = e ? e.nodeType : 9; + if ( + ((n = n || []), + 'string' != typeof t || !t || (1 !== p && 9 !== p && 11 !== p)) + ) + return n; + if (!r && ((e ? e.ownerDocument || e : v) !== B && E(e), (e = e || B), C)) { + if (11 !== p && (u = at.exec(t))) + if ((i = u[1])) { + if (9 === p) { + if (!(a = e.getElementById(i))) return n; + if (a.id === i) return n.push(a), n; + } else if (h && (a = h.getElementById(i)) && m(e, a) && a.id === i) + return n.push(a), n; + } else { + if (u[2]) return M.apply(n, e.getElementsByTagName(t)), n; + if ((i = u[3]) && d.getElementsByClassName && e.getElementsByClassName) + return M.apply(n, e.getElementsByClassName(i)), n; + } + if (d.qsa && !b[t + ' '] && (!g || !g.test(t))) { + if (1 !== p) (h = e), (A = t); + else if ('object' !== e.nodeName.toLowerCase()) { + for ( + (s = e.getAttribute('id')) + ? (s = s.replace(lt, '\\$&')) + : e.setAttribute('id', (s = x)), + o = (c = f(t)).length, + l = rt.test(s) ? '#' + s : "[id='" + s + "']"; + o--; + + ) + c[o] = l + ' ' + T(c[o]); + (A = c.join(',')), (h = (st.test(t) && ht(e.parentNode)) || e); + } + if (A) + try { + return M.apply(n, h.querySelectorAll(A)), n; + } catch (t) { + } finally { + s === x && e.removeAttribute('id'); + } + } + } + return Y(t.replace(S, '$1'), e, n, r); + } + function ut() { + var n = []; + function r(t, e) { + return ( + n.push(t + ' ') > y.cacheLength && delete r[n.shift()], (r[t + ' '] = e) + ); + } + return r; + } + function F(t) { + return (t[x] = !0), t; + } + function Q(t) { + var e = B.createElement('div'); + try { + return !!t(e); + } catch (t) { + return !1; + } finally { + e.parentNode && e.parentNode.removeChild(e); + } + } + function ct(t, e) { + for (var n = t.split('|'), r = n.length; r--; ) y.attrHandle[n[r]] = e; + } + function At(t, e) { + var n = e && t, + r = + n && + 1 === t.nodeType && + 1 === e.nodeType && + (~e.sourceIndex || 1 << 31) - (~t.sourceIndex || 1 << 31); + if (r) return r; + if (n) for (; (n = n.nextSibling); ) if (n === e) return -1; + return t ? 1 : -1; + } + function _(a) { + return F(function (o) { + return ( + (o = +o), + F(function (t, e) { + for (var n, r = a([], t.length, o), i = r.length; i--; ) + t[(n = r[i])] && (t[n] = !(e[n] = t[n])); + }) + ); + }); + } + function ht(t) { + return t && void 0 !== t.getElementsByTagName && t; + } + for (t in ((d = k.support = {}), + (P = k.isXML = + function (t) { + t = t && (t.ownerDocument || t).documentElement; + return !!t && 'HTML' !== t.nodeName; + }), + (E = k.setDocument = + function (t) { + var t = t ? t.ownerDocument || t : v; + return ( + t !== B && + 9 === t.nodeType && + t.documentElement && + ((e = (B = t).documentElement), + (C = !P(B)), + (t = B.defaultView) && + t.top !== t && + (t.addEventListener + ? t.addEventListener('unload', N, !1) + : t.attachEvent && t.attachEvent('onunload', N)), + (d.attributes = Q(function (t) { + return (t.className = 'i'), !t.getAttribute('className'); + })), + (d.getElementsByTagName = Q(function (t) { + return ( + t.appendChild(B.createComment('')), + !t.getElementsByTagName('*').length + ); + })), + (d.getElementsByClassName = c.test(B.getElementsByClassName)), + (d.getById = Q(function (t) { + return ( + (e.appendChild(t).id = x), + !B.getElementsByName || !B.getElementsByName(x).length + ); + })), + d.getById + ? ((y.find.ID = function (t, e) { + if (void 0 !== e.getElementById && C) + return (e = e.getElementById(t)) ? [e] : []; + }), + (y.filter.ID = function (t) { + var e = t.replace(p, A); + return function (t) { + return t.getAttribute('id') === e; + }; + })) + : (delete y.find.ID, + (y.filter.ID = function (t) { + var e = t.replace(p, A); + return function (t) { + t = void 0 !== t.getAttributeNode && t.getAttributeNode('id'); + return t && t.value === e; + }; + })), + (y.find.TAG = d.getElementsByTagName + ? function (t, e) { + return void 0 !== e.getElementsByTagName + ? e.getElementsByTagName(t) + : d.qsa + ? e.querySelectorAll(t) + : void 0; + } + : function (t, e) { + var n, + r = [], + i = 0, + o = e.getElementsByTagName(t); + if ('*' !== t) return o; + for (; (n = o[i++]); ) 1 === n.nodeType && r.push(n); + return r; + }), + (y.find.CLASS = + d.getElementsByClassName && + function (t, e) { + if (void 0 !== e.getElementsByClassName && C) + return e.getElementsByClassName(t); + }), + (r = []), + (g = []), + (d.qsa = c.test(B.querySelectorAll)) && + (Q(function (t) { + (e.appendChild(t).innerHTML = + "<a id='" + + x + + "'></a><select id='" + + x + + "-\r\\' msallowcapture=''><option selected=''></option></select>"), + t.querySelectorAll("[msallowcapture^='']").length && + g.push('[*^$]=' + a + '*(?:\'\'|"")'), + t.querySelectorAll('[selected]').length || + g.push('\\[' + a + '*(?:value|' + J + ')'), + t.querySelectorAll('[id~=' + x + '-]').length || g.push('~='), + t.querySelectorAll(':checked').length || g.push(':checked'), + t.querySelectorAll('a#' + x + '+*').length || g.push('.#.+[+~]'); + }), + Q(function (t) { + var e = B.createElement('input'); + e.setAttribute('type', 'hidden'), + t.appendChild(e).setAttribute('name', 'D'), + t.querySelectorAll('[name=d]').length && + g.push('name' + a + '*[*^$|!~]?='), + t.querySelectorAll(':enabled').length || + g.push(':enabled', ':disabled'), + t.querySelectorAll('*,:x'), + g.push(',.*:'); + })), + (d.matchesSelector = c.test( + (i = + e.matches || + e.webkitMatchesSelector || + e.mozMatchesSelector || + e.oMatchesSelector || + e.msMatchesSelector), + )) && + Q(function (t) { + (d.disconnectedMatch = i.call(t, 'div')), + i.call(t, "[s!='']:x"), + r.push('!=', Z); + }), + (g = g.length && new RegExp(g.join('|'))), + (r = r.length && new RegExp(r.join('|'))), + (t = c.test(e.compareDocumentPosition)), + (m = + t || c.test(e.contains) + ? function (t, e) { + var n = 9 === t.nodeType ? t.documentElement : t, + e = e && e.parentNode; + return ( + t === e || + !( + !e || + 1 !== e.nodeType || + !(n.contains + ? n.contains(e) + : t.compareDocumentPosition && + 16 & t.compareDocumentPosition(e)) + ) + ); + } + : function (t, e) { + if (e) for (; (e = e.parentNode); ) if (e === t) return !0; + return !1; + }), + (H = t + ? function (t, e) { + if (t === e) return (u = !0), 0; + var n = !t.compareDocumentPosition - !e.compareDocumentPosition; + return ( + n || + (1 & + (n = + (t.ownerDocument || t) === (e.ownerDocument || e) + ? t.compareDocumentPosition(e) + : 1) || + (!d.sortDetached && e.compareDocumentPosition(t) === n) + ? t === B || (t.ownerDocument === v && m(v, t)) + ? -1 + : e === B || (e.ownerDocument === v && m(v, e)) + ? 1 + : l + ? D(l, t) - D(l, e) + : 0 + : 4 & n + ? -1 + : 1) + ); + } + : function (t, e) { + if (t === e) return (u = !0), 0; + var n, + r = 0, + i = t.parentNode, + o = e.parentNode, + a = [t], + s = [e]; + if (!i || !o) + return t === B + ? -1 + : e === B + ? 1 + : i + ? -1 + : o + ? 1 + : l + ? D(l, t) - D(l, e) + : 0; + if (i === o) return At(t, e); + for (n = t; (n = n.parentNode); ) a.unshift(n); + for (n = e; (n = n.parentNode); ) s.unshift(n); + for (; a[r] === s[r]; ) r++; + return r ? At(a[r], s[r]) : a[r] === v ? -1 : s[r] === v ? 1 : 0; + })), + B + ); + }), + (k.matches = function (t, e) { + return k(t, null, null, e); + }), + (k.matchesSelector = function (t, e) { + if ( + ((t.ownerDocument || t) !== B && E(t), + (e = e.replace(et, "='$1']")), + d.matchesSelector && + C && + !b[e + ' '] && + (!r || !r.test(e)) && + (!g || !g.test(e))) + ) + try { + var n = i.call(t, e); + if (n || d.disconnectedMatch || (t.document && 11 !== t.document.nodeType)) + return n; + } catch (t) {} + return 0 < k(e, B, null, [t]).length; + }), + (k.contains = function (t, e) { + return (t.ownerDocument || t) !== B && E(t), m(t, e); + }), + (k.attr = function (t, e) { + (t.ownerDocument || t) !== B && E(t); + var n = y.attrHandle[e.toLowerCase()], + n = n && j.call(y.attrHandle, e.toLowerCase()) ? n(t, e, !C) : void 0; + return void 0 !== n + ? n + : d.attributes || !C + ? t.getAttribute(e) + : (n = t.getAttributeNode(e)) && n.specified + ? n.value + : null; + }), + (k.error = function (t) { + throw new Error('Syntax error, unrecognized expression: ' + t); + }), + (k.uniqueSort = function (t) { + var e, + n = [], + r = 0, + i = 0; + if ( + ((u = !d.detectDuplicates), (l = !d.sortStable && t.slice(0)), t.sort(H), u) + ) { + for (; (e = t[i++]); ) e === t[i] && (r = n.push(i)); + for (; r--; ) t.splice(n[r], 1); + } + return (l = null), t; + }), + (o = k.getText = + function (t) { + var e, + n = '', + r = 0, + i = t.nodeType; + if (i) { + if (1 === i || 9 === i || 11 === i) { + if ('string' == typeof t.textContent) return t.textContent; + for (t = t.firstChild; t; t = t.nextSibling) n += o(t); + } else if (3 === i || 4 === i) return t.nodeValue; + } else for (; (e = t[r++]); ) n += o(e); + return n; + }), + ((y = k.selectors = + { + cacheLength: 50, + createPseudo: F, + match: h, + attrHandle: {}, + find: {}, + relative: { + '>': { dir: 'parentNode', first: !0 }, + ' ': { dir: 'parentNode' }, + '+': { dir: 'previousSibling', first: !0 }, + '~': { dir: 'previousSibling' }, + }, + preFilter: { + ATTR: function (t) { + return ( + (t[1] = t[1].replace(p, A)), + (t[3] = (t[3] || t[4] || t[5] || '').replace(p, A)), + '~=' === t[2] && (t[3] = ' ' + t[3] + ' '), + t.slice(0, 4) + ); + }, + CHILD: function (t) { + return ( + (t[1] = t[1].toLowerCase()), + 'nth' === t[1].slice(0, 3) + ? (t[3] || k.error(t[0]), + (t[4] = +(t[4] + ? t[5] + (t[6] || 1) + : 2 * ('even' === t[3] || 'odd' === t[3]))), + (t[5] = +(t[7] + t[8] || 'odd' === t[3]))) + : t[3] && k.error(t[0]), + t + ); + }, + PSEUDO: function (t) { + var e, + n = !t[6] && t[2]; + return h.CHILD.test(t[0]) + ? null + : (t[3] + ? (t[2] = t[4] || t[5] || '') + : n && + nt.test(n) && + (e = f(n, !0)) && + (e = n.indexOf(')', n.length - e) - n.length) && + ((t[0] = t[0].slice(0, e)), (t[2] = n.slice(0, e))), + t.slice(0, 3)); + }, + }, + filter: { + TAG: function (t) { + var e = t.replace(p, A).toLowerCase(); + return '*' === t + ? function () { + return !0; + } + : function (t) { + return t.nodeName && t.nodeName.toLowerCase() === e; + }; + }, + CLASS: function (t) { + var e = G[t + ' ']; + return ( + e || + ((e = new RegExp('(^|' + a + ')' + t + '(' + a + '|$)')) && + G(t, function (t) { + return e.test( + ('string' == typeof t.className && t.className) || + (void 0 !== t.getAttribute && t.getAttribute('class')) || + '', + ); + })) + ); + }, + ATTR: function (e, n, r) { + return function (t) { + t = k.attr(t, e); + return null == t + ? '!=' === n + : !n || + ((t += ''), + '=' === n + ? t === r + : '!=' === n + ? t !== r + : '^=' === n + ? r && 0 === t.indexOf(r) + : '*=' === n + ? r && -1 < t.indexOf(r) + : '$=' === n + ? r && t.slice(-r.length) === r + : '~=' === n + ? -1 < (' ' + t.replace(X, ' ') + ' ').indexOf(r) + : '|=' === n && + (t === r || t.slice(0, r.length + 1) === r + '-')); + }; + }, + CHILD: function (d, t, e, f, g) { + var m = 'nth' !== d.slice(0, 3), + v = 'last' !== d.slice(-4), + b = 'of-type' === t; + return 1 === f && 0 === g + ? function (t) { + return !!t.parentNode; + } + : function (t, e, n) { + var r, + i, + o, + a, + s, + l, + u = m != v ? 'nextSibling' : 'previousSibling', + c = t.parentNode, + A = b && t.nodeName.toLowerCase(), + h = !n && !b, + p = !1; + if (c) { + if (m) { + for (; u; ) { + for (a = t; (a = a[u]); ) + if (b ? a.nodeName.toLowerCase() === A : 1 === a.nodeType) + return !1; + l = u = 'only' === d && !l && 'nextSibling'; + } + return !0; + } + if (((l = [v ? c.firstChild : c.lastChild]), v && h)) { + for ( + p = + (s = + (r = + (i = + (o = (a = c)[x] || (a[x] = {}))[a.uniqueID] || + (o[a.uniqueID] = {}))[d] || [])[0] === I && r[1]) && + r[2], + a = s && c.childNodes[s]; + (a = (++s && a && a[u]) || (p = s = 0) || l.pop()); + + ) + if (1 === a.nodeType && ++p && a === t) { + i[d] = [I, s, p]; + break; + } + } else if ( + !1 === + (p = h + ? (s = + (r = + (i = + (o = (a = t)[x] || (a[x] = {}))[a.uniqueID] || + (o[a.uniqueID] = {}))[d] || [])[0] === I && r[1]) + : p) + ) + for ( + ; + (a = (++s && a && a[u]) || (p = s = 0) || l.pop()) && + ((b ? a.nodeName.toLowerCase() !== A : 1 !== a.nodeType) || + !++p || + (h && + ((i = + (o = a[x] || (a[x] = {}))[a.uniqueID] || + (o[a.uniqueID] = {}))[d] = [I, p]), + a !== t)); + + ); + return (p -= g) === f || (p % f == 0 && 0 <= p / f); + } + }; + }, + PSEUDO: function (t, o) { + var e, + a = + y.pseudos[t] || + y.setFilters[t.toLowerCase()] || + k.error('unsupported pseudo: ' + t); + return a[x] + ? a(o) + : 1 < a.length + ? ((e = [t, t, '', o]), + y.setFilters.hasOwnProperty(t.toLowerCase()) + ? F(function (t, e) { + for (var n, r = a(t, o), i = r.length; i--; ) + t[(n = D(t, r[i]))] = !(e[n] = r[i]); + }) + : function (t) { + return a(t, 0, e); + }) + : a; + }, + }, + pseudos: { + not: F(function (t) { + var r = [], + i = [], + s = L(t.replace(S, '$1')); + return s[x] + ? F(function (t, e, n, r) { + for (var i, o = s(t, null, r, []), a = t.length; a--; ) + (i = o[a]) && (t[a] = !(e[a] = i)); + }) + : function (t, e, n) { + return (r[0] = t), s(r, null, n, i), (r[0] = null), !i.pop(); + }; + }), + has: F(function (e) { + return function (t) { + return 0 < k(e, t).length; + }; + }), + contains: F(function (e) { + return ( + (e = e.replace(p, A)), + function (t) { + return -1 < (t.textContent || t.innerText || o(t)).indexOf(e); + } + ); + }), + lang: F(function (n) { + return ( + rt.test(n || '') || k.error('unsupported lang: ' + n), + (n = n.replace(p, A).toLowerCase()), + function (t) { + var e; + do { + if ( + (e = C + ? t.lang + : t.getAttribute('xml:lang') || t.getAttribute('lang')) + ) + return (e = e.toLowerCase()) === n || 0 === e.indexOf(n + '-'); + } while ((t = t.parentNode) && 1 === t.nodeType); + return !1; + } + ); + }), + target: function (t) { + var e = U.location && U.location.hash; + return e && e.slice(1) === t.id; + }, + root: function (t) { + return t === e; + }, + focus: function (t) { + return ( + t === B.activeElement && + (!B.hasFocus || B.hasFocus()) && + !!(t.type || t.href || ~t.tabIndex) + ); + }, + enabled: function (t) { + return !1 === t.disabled; + }, + disabled: function (t) { + return !0 === t.disabled; + }, + checked: function (t) { + var e = t.nodeName.toLowerCase(); + return ('input' === e && !!t.checked) || ('option' === e && !!t.selected); + }, + selected: function (t) { + return t.parentNode && t.parentNode.selectedIndex, !0 === t.selected; + }, + empty: function (t) { + for (t = t.firstChild; t; t = t.nextSibling) + if (t.nodeType < 6) return !1; + return !0; + }, + parent: function (t) { + return !y.pseudos.empty(t); + }, + header: function (t) { + return ot.test(t.nodeName); + }, + input: function (t) { + return it.test(t.nodeName); + }, + button: function (t) { + var e = t.nodeName.toLowerCase(); + return ('input' === e && 'button' === t.type) || 'button' === e; + }, + text: function (t) { + return ( + 'input' === t.nodeName.toLowerCase() && + 'text' === t.type && + (null == (t = t.getAttribute('type')) || 'text' === t.toLowerCase()) + ); + }, + first: _(function () { + return [0]; + }), + last: _(function (t, e) { + return [e - 1]; + }), + eq: _(function (t, e, n) { + return [n < 0 ? n + e : n]; + }), + even: _(function (t, e) { + for (var n = 0; n < e; n += 2) t.push(n); + return t; + }), + odd: _(function (t, e) { + for (var n = 1; n < e; n += 2) t.push(n); + return t; + }), + lt: _(function (t, e, n) { + for (var r = n < 0 ? n + e : n; 0 <= --r; ) t.push(r); + return t; + }), + gt: _(function (t, e, n) { + for (var r = n < 0 ? n + e : n; ++r < e; ) t.push(r); + return t; + }), + }, + }).pseudos.nth = y.pseudos.eq), + { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 })) + y.pseudos[t] = (function (e) { + return function (t) { + return 'input' === t.nodeName.toLowerCase() && t.type === e; + }; + })(t); + for (t in { submit: !0, reset: !0 }) + y.pseudos[t] = (function (n) { + return function (t) { + var e = t.nodeName.toLowerCase(); + return ('input' === e || 'button' === e) && t.type === n; + }; + })(t); + function pt() {} + function T(t) { + for (var e = 0, n = t.length, r = ''; e < n; e++) r += t[e].value; + return r; + } + function dt(a, t, e) { + var s = t.dir, + l = e && 'parentNode' === s, + u = O++; + return t.first + ? function (t, e, n) { + for (; (t = t[s]); ) if (1 === t.nodeType || l) return a(t, e, n); + } + : function (t, e, n) { + var r, + i, + o = [I, u]; + if (n) { + for (; (t = t[s]); ) + if ((1 === t.nodeType || l) && a(t, e, n)) return !0; + } else + for (; (t = t[s]); ) + if (1 === t.nodeType || l) { + if ( + (r = (i = + (i = t[x] || (t[x] = {}))[t.uniqueID] || (i[t.uniqueID] = {}))[ + s + ]) && + r[0] === I && + r[1] === u + ) + return (o[2] = r[2]); + if (((i[s] = o)[2] = a(t, e, n))) return !0; + } + }; + } + function ft(i) { + return 1 < i.length + ? function (t, e, n) { + for (var r = i.length; r--; ) if (!i[r](t, e, n)) return !1; + return !0; + } + : i[0]; + } + function R(t, e, n, r, i) { + for (var o, a = [], s = 0, l = t.length, u = null != e; s < l; s++) + !(o = t[s]) || (n && !n(o, r, i)) || (a.push(o), u && e.push(s)); + return a; + } + function gt(p, d, f, g, m, t) { + return ( + g && !g[x] && (g = gt(g)), + m && !m[x] && (m = gt(m, t)), + F(function (t, e, n, r) { + var i, + o, + a, + s = [], + l = [], + u = e.length, + c = + t || + (function (t, e, n) { + for (var r = 0, i = e.length; r < i; r++) k(t, e[r], n); + return n; + })(d || '*', n.nodeType ? [n] : n, []), + A = !p || (!t && d) ? c : R(c, s, p, n, r), + h = f ? (m || (t ? p : u || g) ? [] : e) : A; + if ((f && f(A, h, n, r), g)) + for (i = R(h, l), g(i, [], n, r), o = i.length; o--; ) + (a = i[o]) && (h[l[o]] = !(A[l[o]] = a)); + if (t) { + if (m || p) { + if (m) { + for (i = [], o = h.length; o--; ) (a = h[o]) && i.push((A[o] = a)); + m(null, (h = []), i, r); + } + for (o = h.length; o--; ) + (a = h[o]) && -1 < (i = m ? D(t, a) : s[o]) && (t[i] = !(e[i] = a)); + } + } else + (h = R(h === e ? h.splice(u, h.length) : h)), + m ? m(null, e, h, r) : M.apply(e, h); + }) + ); + } + function mt(g, m) { + function t(t, e, n, r, i) { + var o, + a, + s, + l = 0, + u = '0', + c = t && [], + A = [], + h = w, + p = t || (b && y.find.TAG('*', i)), + d = (I += null == h ? 1 : Math.random() || 0.1), + f = p.length; + for (i && (w = e === B || e || i); u !== f && null != (o = p[u]); u++) { + if (b && o) { + for ( + a = 0, e || o.ownerDocument === B || (E(o), (n = !C)); + (s = g[a++]); + + ) + if (s(o, e || B, n)) { + r.push(o); + break; + } + i && (I = d); + } + v && ((o = !s && o) && l--, t && c.push(o)); + } + if (((l += u), v && u !== l)) { + for (a = 0; (s = m[a++]); ) s(c, A, e, n); + if (t) { + if (0 < l) for (; u--; ) c[u] || A[u] || (A[u] = V.call(r)); + A = R(A); + } + M.apply(r, A), + i && !t && 0 < A.length && 1 < l + m.length && k.uniqueSort(r); + } + return i && ((I = d), (w = h)), c; + } + var v = 0 < m.length, + b = 0 < g.length; + return v ? F(t) : t; + } + return ( + (pt.prototype = y.filters = y.pseudos), + (y.setFilters = new pt()), + (f = k.tokenize = + function (t, e) { + var n, + r, + i, + o, + a, + s, + l, + u = z[t + ' ']; + if (u) return e ? 0 : u.slice(0); + for (a = t, s = [], l = y.preFilter; a; ) { + for (o in ((n && !(r = $.exec(a))) || + (r && (a = a.slice(r[0].length) || a), s.push((i = []))), + (n = !1), + (r = tt.exec(a)) && + ((n = r.shift()), + i.push({ value: n, type: r[0].replace(S, ' ') }), + (a = a.slice(n.length))), + y.filter)) + !(r = h[o].exec(a)) || + (l[o] && !(r = l[o](r))) || + ((n = r.shift()), + i.push({ value: n, type: o, matches: r }), + (a = a.slice(n.length))); + if (!n) break; + } + return e ? a.length : a ? k.error(t) : z(t, s).slice(0); + }), + (L = k.compile = + function (t, e) { + var n, + r = [], + i = [], + o = b[t + ' ']; + if (!o) { + for (n = (e = e || f(t)).length; n--; ) + ((o = (function t(e) { + for ( + var r, + n, + i, + o = e.length, + a = y.relative[e[0].type], + s = a || y.relative[' '], + l = a ? 1 : 0, + u = dt( + function (t) { + return t === r; + }, + s, + !0, + ), + c = dt( + function (t) { + return -1 < D(r, t); + }, + s, + !0, + ), + A = [ + function (t, e, n) { + return ( + (t = + (!a && (n || e !== w)) || + ((r = e).nodeType ? u : c)(t, e, n)), + (r = null), + t + ); + }, + ]; + l < o; + l++ + ) + if ((n = y.relative[e[l].type])) A = [dt(ft(A), n)]; + else { + if ((n = y.filter[e[l].type].apply(null, e[l].matches))[x]) { + for (i = ++l; i < o && !y.relative[e[i].type]; i++); + return gt( + 1 < l && ft(A), + 1 < l && + T( + e + .slice(0, l - 1) + .concat({ value: ' ' === e[l - 2].type ? '*' : '' }), + ).replace(S, '$1'), + n, + l < i && t(e.slice(l, i)), + i < o && t((e = e.slice(i))), + i < o && T(e), + ); + } + A.push(n); + } + return ft(A); + })(e[n]))[x] + ? r + : i + ).push(o); + (o = b(t, mt(i, r))).selector = t; + } + return o; + }), + (Y = k.select = + function (t, e, n, r) { + var i, + o, + a, + s, + l, + u = 'function' == typeof t && t, + c = !r && f((t = u.selector || t)); + if (((n = n || []), 1 === c.length)) { + if ( + 2 < (o = c[0] = c[0].slice(0)).length && + 'ID' === (a = o[0]).type && + d.getById && + 9 === e.nodeType && + C && + y.relative[o[1].type] + ) { + if (!(e = (y.find.ID(a.matches[0].replace(p, A), e) || [])[0])) + return n; + u && (e = e.parentNode), (t = t.slice(o.shift().value.length)); + } + for ( + i = h.needsContext.test(t) ? 0 : o.length; + i-- && ((a = o[i]), !y.relative[(s = a.type)]); + + ) + if ( + (l = y.find[s]) && + (r = l( + a.matches[0].replace(p, A), + (st.test(o[0].type) && ht(e.parentNode)) || e, + )) + ) { + if ((o.splice(i, 1), (t = r.length && T(o)))) break; + return M.apply(n, r), n; + } + } + return ( + (u || L(t, c))(r, e, !C, n, !e || (st.test(t) && ht(e.parentNode)) || e), + n + ); + }), + (d.sortStable = x.split('').sort(H).join('') === x), + (d.detectDuplicates = !!u), + E(), + (d.sortDetached = Q(function (t) { + return 1 & t.compareDocumentPosition(B.createElement('div')); + })), + Q(function (t) { + return ( + (t.innerHTML = "<a href='#'></a>"), + '#' === t.firstChild.getAttribute('href') + ); + }) || + ct('type|href|height|width', function (t, e, n) { + if (!n) return t.getAttribute(e, 'type' === e.toLowerCase() ? 1 : 2); + }), + (d.attributes && + Q(function (t) { + return ( + (t.innerHTML = '<input/>'), + t.firstChild.setAttribute('value', ''), + '' === t.firstChild.getAttribute('value') + ); + })) || + ct('value', function (t, e, n) { + if (!n && 'input' === t.nodeName.toLowerCase()) return t.defaultValue; + }), + Q(function (t) { + return null == t.getAttribute('disabled'); + }) || + ct(J, function (t, e, n) { + if (!n) + return !0 === t[e] + ? e.toLowerCase() + : (n = t.getAttributeNode(e)) && n.specified + ? n.value + : null; + }), + k + ); + })(w), + q = + ((B.find = e), + (B.expr = e.selectors), + (B.expr[':'] = B.expr.pseudos), + (B.uniqueSort = B.unique = e.uniqueSort), + (B.text = e.getText), + (B.isXMLDoc = e.isXML), + (B.contains = e.contains), + B.expr.match.needsContext), + W = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/, + J = /^.[^:#\[\.,]*$/; + function K(t, n, r) { + if (B.isFunction(n)) + return B.grep(t, function (t, e) { + return !!n.call(t, e, t) !== r; + }); + if (n.nodeType) + return B.grep(t, function (t) { + return (t === n) !== r; + }); + if ('string' == typeof n) { + if (J.test(n)) return B.filter(n, t, r); + n = B.filter(n, t); + } + return B.grep(t, function (t) { + return -1 < i.call(n, t) !== r; + }); + } + (B.filter = function (t, e, n) { + var r = e[0]; + return ( + n && (t = ':not(' + t + ')'), + 1 === e.length && 1 === r.nodeType + ? B.find.matchesSelector(r, t) + ? [r] + : [] + : B.find.matches( + t, + B.grep(e, function (t) { + return 1 === t.nodeType; + }), + ) + ); + }), + B.fn.extend({ + find: function (t) { + var e, + n = this.length, + r = [], + i = this; + if ('string' != typeof t) + return this.pushStack( + B(t).filter(function () { + for (e = 0; e < n; e++) if (B.contains(i[e], this)) return !0; + }), + ); + for (e = 0; e < n; e++) B.find(t, i[e], r); + return ( + ((r = this.pushStack(1 < n ? B.unique(r) : r)).selector = this.selector + ? this.selector + ' ' + t + : t), + r + ); + }, + filter: function (t) { + return this.pushStack(K(this, t || [], !1)); + }, + not: function (t) { + return this.pushStack(K(this, t || [], !0)); + }, + is: function (t) { + return !!K(this, 'string' == typeof t && q.test(t) ? B(t) : t || [], !1).length; + }, + }); + var Z, + X = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + $ = + (((B.fn.init = function (t, e, n) { + if (!t) return this; + if (((n = n || Z), 'string' != typeof t)) + return t.nodeType + ? ((this.context = this[0] = t), (this.length = 1), this) + : B.isFunction(t) + ? void 0 !== n.ready + ? n.ready(t) + : t(B) + : (void 0 !== t.selector && + ((this.selector = t.selector), (this.context = t.context)), + B.makeArray(t, this)); + if ( + !(r = + '<' === t[0] && '>' === t[t.length - 1] && 3 <= t.length + ? [null, t, null] + : X.exec(t)) || + (!r[1] && e) + ) + return (!e || e.jquery ? e || n : this.constructor(e)).find(t); + if (r[1]) { + if ( + ((e = e instanceof B ? e[0] : e), + B.merge( + this, + B.parseHTML(r[1], e && e.nodeType ? e.ownerDocument || e : E, !0), + ), + W.test(r[1]) && B.isPlainObject(e)) + ) + for (var r in e) B.isFunction(this[r]) ? this[r](e[r]) : this.attr(r, e[r]); + return this; + } + return ( + (n = E.getElementById(r[2])) && + n.parentNode && + ((this.length = 1), (this[0] = n)), + (this.context = E), + (this.selector = t), + this + ); + }).prototype = B.fn), + (Z = B(E)), + /^(?:parents|prev(?:Until|All))/), + tt = { children: !0, contents: !0, next: !0, prev: !0 }; + function et(t, e) { + for (; (t = t[e]) && 1 !== t.nodeType; ); + return t; + } + B.fn.extend({ + has: function (t) { + var e = B(t, this), + n = e.length; + return this.filter(function () { + for (var t = 0; t < n; t++) if (B.contains(this, e[t])) return !0; + }); + }, + closest: function (t, e) { + for ( + var n, + r = 0, + i = this.length, + o = [], + a = q.test(t) || 'string' != typeof t ? B(t, e || this.context) : 0; + r < i; + r++ + ) + for (n = this[r]; n && n !== e; n = n.parentNode) + if ( + n.nodeType < 11 && + (a ? -1 < a.index(n) : 1 === n.nodeType && B.find.matchesSelector(n, t)) + ) { + o.push(n); + break; + } + return this.pushStack(1 < o.length ? B.uniqueSort(o) : o); + }, + index: function (t) { + return t + ? 'string' == typeof t + ? i.call(B(t), this[0]) + : i.call(this, t.jquery ? t[0] : t) + : this[0] && this[0].parentNode + ? this.first().prevAll().length + : -1; + }, + add: function (t, e) { + return this.pushStack(B.uniqueSort(B.merge(this.get(), B(t, e)))); + }, + addBack: function (t) { + return this.add(null == t ? this.prevObject : this.prevObject.filter(t)); + }, + }), + B.each( + { + parent: function (t) { + t = t.parentNode; + return t && 11 !== t.nodeType ? t : null; + }, + parents: function (t) { + return r(t, 'parentNode'); + }, + parentsUntil: function (t, e, n) { + return r(t, 'parentNode', n); + }, + next: function (t) { + return et(t, 'nextSibling'); + }, + prev: function (t) { + return et(t, 'previousSibling'); + }, + nextAll: function (t) { + return r(t, 'nextSibling'); + }, + prevAll: function (t) { + return r(t, 'previousSibling'); + }, + nextUntil: function (t, e, n) { + return r(t, 'nextSibling', n); + }, + prevUntil: function (t, e, n) { + return r(t, 'previousSibling', n); + }, + siblings: function (t) { + return V((t.parentNode || {}).firstChild, t); + }, + children: function (t) { + return V(t.firstChild); + }, + contents: function (t) { + return t.contentDocument || B.merge([], t.childNodes); + }, + }, + function (r, i) { + B.fn[r] = function (t, e) { + var n = B.map(this, i, t); + return ( + (e = 'Until' !== r.slice(-5) ? t : e) && + 'string' == typeof e && + (n = B.filter(e, n)), + 1 < this.length && (tt[r] || B.uniqueSort(n), $.test(r) && n.reverse()), + this.pushStack(n) + ); + }; + }, + ); + var nt, + C = /\S+/g; + function rt() { + E.removeEventListener('DOMContentLoaded', rt), + w.removeEventListener('load', rt), + B.ready(); + } + (B.Callbacks = function (r) { + var t, n; + r = + 'string' == typeof r + ? ((t = r), + (n = {}), + B.each(t.match(C) || [], function (t, e) { + n[e] = !0; + }), + n) + : B.extend({}, r); + function i() { + for (s = r.once, a = o = !0; u.length; c = -1) + for (e = u.shift(); ++c < l.length; ) + !1 === l[c].apply(e[0], e[1]) && r.stopOnFalse && ((c = l.length), (e = !1)); + r.memory || (e = !1), (o = !1), s && (l = e ? [] : ''); + } + var o, + e, + a, + s, + l = [], + u = [], + c = -1, + A = { + add: function () { + return ( + l && + (e && !o && ((c = l.length - 1), u.push(e)), + (function n(t) { + B.each(t, function (t, e) { + B.isFunction(e) + ? (r.unique && A.has(e)) || l.push(e) + : e && e.length && 'string' !== B.type(e) && n(e); + }); + })(arguments), + e && !o && i()), + this + ); + }, + remove: function () { + return ( + B.each(arguments, function (t, e) { + for (var n; -1 < (n = B.inArray(e, l, n)); ) + l.splice(n, 1), n <= c && c--; + }), + this + ); + }, + has: function (t) { + return t ? -1 < B.inArray(t, l) : 0 < l.length; + }, + empty: function () { + return (l = l && []), this; + }, + disable: function () { + return (s = u = []), (l = e = ''), this; + }, + disabled: function () { + return !l; + }, + lock: function () { + return (s = u = []), e || (l = e = ''), this; + }, + locked: function () { + return !!s; + }, + fireWith: function (t, e) { + return ( + s || ((e = [t, (e = e || []).slice ? e.slice() : e]), u.push(e), o || i()), + this + ); + }, + fire: function () { + return A.fireWith(this, arguments), this; + }, + fired: function () { + return !!a; + }, + }; + return A; + }), + B.extend({ + Deferred: function (t) { + var o = [ + ['resolve', 'done', B.Callbacks('once memory'), 'resolved'], + ['reject', 'fail', B.Callbacks('once memory'), 'rejected'], + ['notify', 'progress', B.Callbacks('memory')], + ], + i = 'pending', + a = { + state: function () { + return i; + }, + always: function () { + return s.done(arguments).fail(arguments), this; + }, + then: function () { + var i = arguments; + return B.Deferred(function (r) { + B.each(o, function (t, e) { + var n = B.isFunction(i[t]) && i[t]; + s[e[1]](function () { + var t = n && n.apply(this, arguments); + t && B.isFunction(t.promise) + ? t.promise().progress(r.notify).done(r.resolve).fail(r.reject) + : r[e[0] + 'With']( + this === a ? r.promise() : this, + n ? [t] : arguments, + ); + }); + }), + (i = null); + }).promise(); + }, + promise: function (t) { + return null != t ? B.extend(t, a) : a; + }, + }, + s = {}; + return ( + (a.pipe = a.then), + B.each(o, function (t, e) { + var n = e[2], + r = e[3]; + (a[e[1]] = n.add), + r && + n.add( + function () { + i = r; + }, + o[1 ^ t][2].disable, + o[2][2].lock, + ), + (s[e[0]] = function () { + return s[e[0] + 'With'](this === s ? a : this, arguments), this; + }), + (s[e[0] + 'With'] = n.fireWith); + }), + a.promise(s), + t && t.call(s, s), + s + ); + }, + when: function (t) { + function e(e, n, r) { + return function (t) { + (n[e] = this), + (r[e] = 1 < arguments.length ? c.call(arguments) : t), + r === i ? u.notifyWith(n, r) : --l || u.resolveWith(n, r); + }; + } + var i, + n, + r, + o = 0, + a = c.call(arguments), + s = a.length, + l = 1 !== s || (t && B.isFunction(t.promise)) ? s : 0, + u = 1 === l ? t : B.Deferred(); + if (1 < s) + for (i = new Array(s), n = new Array(s), r = new Array(s); o < s; o++) + a[o] && B.isFunction(a[o].promise) + ? a[o] + .promise() + .progress(e(o, n, i)) + .done(e(o, r, a)) + .fail(u.reject) + : --l; + return l || u.resolveWith(r, a), u.promise(); + }, + }), + (B.fn.ready = function (t) { + return B.ready.promise().done(t), this; + }), + B.extend({ + isReady: !1, + readyWait: 1, + holdReady: function (t) { + t ? B.readyWait++ : B.ready(!0); + }, + ready: function (t) { + (!0 === t ? --B.readyWait : B.isReady) || + ((B.isReady = !0) !== t && 0 < --B.readyWait) || + (nt.resolveWith(E, [B]), + B.fn.triggerHandler && (B(E).triggerHandler('ready'), B(E).off('ready'))); + }, + }), + (B.ready.promise = function (t) { + return ( + nt || + ((nt = B.Deferred()), + 'complete' === E.readyState || + ('loading' !== E.readyState && !E.documentElement.doScroll) + ? w.setTimeout(B.ready) + : (E.addEventListener('DOMContentLoaded', rt), + w.addEventListener('load', rt))), + nt.promise(t) + ); + }), + B.ready.promise(); + function A(t, e, n, r, i, o, a) { + var s = 0, + l = t.length, + u = null == n; + if ('object' === B.type(n)) for (s in ((i = !0), n)) A(t, e, s, n[s], !0, o, a); + else if ( + void 0 !== r && + ((i = !0), + B.isFunction(r) || (a = !0), + (e = u + ? a + ? (e.call(t, r), null) + : ((u = e), + function (t, e, n) { + return u.call(B(t), n); + }) + : e)) + ) + for (; s < l; s++) e(t[s], n, a ? r : r.call(t[s], s, e(t[s], n))); + return i ? t : u ? e.call(t) : l ? e(t[0], n) : o; + } + function g(t) { + return 1 === t.nodeType || 9 === t.nodeType || !+t.nodeType; + } + function n() { + this.expando = B.expando + n.uid++; + } + (n.uid = 1), + (n.prototype = { + register: function (t, e) { + e = e || {}; + return ( + t.nodeType + ? (t[this.expando] = e) + : Object.defineProperty(t, this.expando, { + value: e, + writable: !0, + configurable: !0, + }), + t[this.expando] + ); + }, + cache: function (t) { + if (!g(t)) return {}; + var e = t[this.expando]; + return ( + e || + ((e = {}), + g(t) && + (t.nodeType + ? (t[this.expando] = e) + : Object.defineProperty(t, this.expando, { + value: e, + configurable: !0, + }))), + e + ); + }, + set: function (t, e, n) { + var r, + i = this.cache(t); + if ('string' == typeof e) i[e] = n; + else for (r in e) i[r] = e[r]; + return i; + }, + get: function (t, e) { + return void 0 === e ? this.cache(t) : t[this.expando] && t[this.expando][e]; + }, + access: function (t, e, n) { + var r; + return void 0 === e || (e && 'string' == typeof e && void 0 === n) + ? void 0 !== (r = this.get(t, e)) + ? r + : this.get(t, B.camelCase(e)) + : (this.set(t, e, n), void 0 !== n ? n : e); + }, + remove: function (t, e) { + var n, + r, + i, + o = t[this.expando]; + if (void 0 !== o) { + if (void 0 === e) this.register(t); + else { + n = (r = B.isArray(e) + ? e.concat(e.map(B.camelCase)) + : ((i = B.camelCase(e)), + e in o ? [e, i] : (r = i) in o ? [r] : r.match(C) || [])).length; + for (; n--; ) delete o[r[n]]; + } + (void 0 !== e && !B.isEmptyObject(o)) || + (t.nodeType ? (t[this.expando] = void 0) : delete t[this.expando]); + } + }, + hasData: function (t) { + t = t[this.expando]; + return void 0 !== t && !B.isEmptyObject(t); + }, + }); + var m = new n(), + l = new n(), + it = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + ot = /[A-Z]/g; + function at(t, e, n) { + var r; + if (void 0 === n && 1 === t.nodeType) + if ( + ((r = 'data-' + e.replace(ot, '-$&').toLowerCase()), + 'string' == typeof (n = t.getAttribute(r))) + ) { + try { + n = + 'true' === n || + ('false' !== n && + ('null' === n + ? null + : +n + '' === n + ? +n + : it.test(n) + ? B.parseJSON(n) + : n)); + } catch (t) {} + l.set(t, e, n); + } else n = void 0; + return n; + } + B.extend({ + hasData: function (t) { + return l.hasData(t) || m.hasData(t); + }, + data: function (t, e, n) { + return l.access(t, e, n); + }, + removeData: function (t, e) { + l.remove(t, e); + }, + _data: function (t, e, n) { + return m.access(t, e, n); + }, + _removeData: function (t, e) { + m.remove(t, e); + }, + }), + B.fn.extend({ + data: function (r, t) { + var e, + n, + i, + o = this[0], + a = o && o.attributes; + if (void 0 !== r) + return 'object' == typeof r + ? this.each(function () { + l.set(this, r); + }) + : A( + this, + function (e) { + var t, n; + if (o && void 0 === e) + return void 0 !== + (t = l.get(o, r) || l.get(o, r.replace(ot, '-$&').toLowerCase())) + ? t + : ((n = B.camelCase(r)), + void 0 !== (t = l.get(o, n)) || + void 0 !== (t = at(o, n, void 0)) + ? t + : void 0); + (n = B.camelCase(r)), + this.each(function () { + var t = l.get(this, n); + l.set(this, n, e), + -1 < r.indexOf('-') && void 0 !== t && l.set(this, r, e); + }); + }, + null, + t, + 1 < arguments.length, + null, + !0, + ); + if ( + this.length && + ((i = l.get(o)), 1 === o.nodeType && !m.get(o, 'hasDataAttrs')) + ) { + for (e = a.length; e--; ) + a[e] && + 0 === (n = a[e].name).indexOf('data-') && + ((n = B.camelCase(n.slice(5))), at(o, n, i[n])); + m.set(o, 'hasDataAttrs', !0); + } + return i; + }, + removeData: function (t) { + return this.each(function () { + l.remove(this, t); + }); + }, + }), + B.extend({ + queue: function (t, e, n) { + var r; + if (t) + return ( + (r = m.get(t, (e = (e || 'fx') + 'queue'))), + n && + (!r || B.isArray(n) ? (r = m.access(t, e, B.makeArray(n))) : r.push(n)), + r || [] + ); + }, + dequeue: function (t, e) { + e = e || 'fx'; + var n = B.queue(t, e), + r = n.length, + i = n.shift(), + o = B._queueHooks(t, e); + 'inprogress' === i && ((i = n.shift()), r--), + i && + ('fx' === e && n.unshift('inprogress'), + delete o.stop, + i.call( + t, + function () { + B.dequeue(t, e); + }, + o, + )), + !r && o && o.empty.fire(); + }, + _queueHooks: function (t, e) { + var n = e + 'queueHooks'; + return ( + m.get(t, n) || + m.access(t, n, { + empty: B.Callbacks('once memory').add(function () { + m.remove(t, [e + 'queue', n]); + }), + }) + ); + }, + }), + B.fn.extend({ + queue: function (e, n) { + var t = 2; + return ( + 'string' != typeof e && ((n = e), (e = 'fx'), t--), + arguments.length < t + ? B.queue(this[0], e) + : void 0 === n + ? this + : this.each(function () { + var t = B.queue(this, e, n); + B._queueHooks(this, e), + 'fx' === e && 'inprogress' !== t[0] && B.dequeue(this, e); + }) + ); + }, + dequeue: function (t) { + return this.each(function () { + B.dequeue(this, t); + }); + }, + clearQueue: function (t) { + return this.queue(t || 'fx', []); + }, + promise: function (t, e) { + function n() { + --i || o.resolveWith(a, [a]); + } + var r, + i = 1, + o = B.Deferred(), + a = this, + s = this.length; + for ('string' != typeof t && ((e = t), (t = void 0)), t = t || 'fx'; s--; ) + (r = m.get(a[s], t + 'queueHooks')) && r.empty && (i++, r.empty.add(n)); + return n(), o.promise(e); + }, + }); + function v(t, e) { + return 'none' === B.css((t = e || t), 'display') || !B.contains(t.ownerDocument, t); + } + var t = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + h = new RegExp('^(?:([+-])=|)(' + t + ')([a-z%]*)$', 'i'), + s = ['Top', 'Right', 'Bottom', 'Left']; + function st(t, e, n, r) { + var i, + o = 1, + a = 20, + s = r + ? function () { + return r.cur(); + } + : function () { + return B.css(t, e, ''); + }, + l = s(), + u = (n && n[3]) || (B.cssNumber[e] ? '' : 'px'), + c = (B.cssNumber[e] || ('px' !== u && +l)) && h.exec(B.css(t, e)); + if (c && c[3] !== u) + for ( + u = u || c[3], n = n || [], c = +l || 1; + (c /= o = o || '.5'), + B.style(t, e, c + u), + o !== (o = s() / l) && 1 !== o && --a; + + ); + return ( + n && + ((c = +c || +l || 0), + (i = n[1] ? c + (n[1] + 1) * n[2] : +n[2]), + r && ((r.unit = u), (r.start = c), (r.end = i))), + i + ); + } + var lt = /^(?:checkbox|radio)$/i, + ut = /<([\w:-]+)/, + ct = /^$|\/(?:java|ecma)script/i, + b = { + option: [1, "<select multiple='multiple'>", '</select>'], + thead: [1, '<table>', '</table>'], + col: [2, '<table><colgroup>', '</colgroup></table>'], + tr: [2, '<table><tbody>', '</tbody></table>'], + td: [3, '<table><tbody><tr>', '</tr></tbody></table>'], + _default: [0, '', ''], + }; + function y(t, e) { + var n = + void 0 !== t.getElementsByTagName + ? t.getElementsByTagName(e || '*') + : void 0 !== t.querySelectorAll + ? t.querySelectorAll(e || '*') + : []; + return void 0 === e || (e && B.nodeName(t, e)) ? B.merge([t], n) : n; + } + function At(t, e) { + for (var n = 0, r = t.length; n < r; n++) + m.set(t[n], 'globalEval', !e || m.get(e[n], 'globalEval')); + } + (b.optgroup = b.option), + (b.tbody = b.tfoot = b.colgroup = b.caption = b.thead), + (b.th = b.td); + var ht = /<|&#?\w+;/; + function pt(t, e, n, r, i) { + for ( + var o, a, s, l, u, c = e.createDocumentFragment(), A = [], h = 0, p = t.length; + h < p; + h++ + ) + if ((o = t[h]) || 0 === o) + if ('object' === B.type(o)) B.merge(A, o.nodeType ? [o] : o); + else if (ht.test(o)) { + for ( + a = a || c.appendChild(e.createElement('div')), + s = (ut.exec(o) || ['', ''])[1].toLowerCase(), + s = b[s] || b._default, + a.innerHTML = s[1] + B.htmlPrefilter(o) + s[2], + u = s[0]; + u--; + + ) + a = a.lastChild; + B.merge(A, a.childNodes), ((a = c.firstChild).textContent = ''); + } else A.push(e.createTextNode(o)); + for (c.textContent = '', h = 0; (o = A[h++]); ) + if (r && -1 < B.inArray(o, r)) i && i.push(o); + else if ( + ((l = B.contains(o.ownerDocument, o)), + (a = y(c.appendChild(o), 'script')), + l && At(a), + n) + ) + for (u = 0; (o = a[u++]); ) ct.test(o.type || '') && n.push(o); + return c; + } + (e = E.createDocumentFragment().appendChild(E.createElement('div'))), + (k = E.createElement('input')).setAttribute('type', 'radio'), + k.setAttribute('checked', 'checked'), + k.setAttribute('name', 't'), + e.appendChild(k), + (f.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked), + (e.innerHTML = '<textarea>x</textarea>'), + (f.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue); + var dt = /^key/, + ft = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + gt = /^([^.]*)(?:\.(.+)|)/; + function mt() { + return !0; + } + function u() { + return !1; + } + function vt() { + try { + return E.activeElement; + } catch (t) {} + } + function bt(t, e, n, r, i, o) { + var a, s; + if ('object' == typeof e) { + for (s in ('string' != typeof n && ((r = r || n), (n = void 0)), e)) + bt(t, s, n, r, e[s], o); + return t; + } + if ( + (null == r && null == i + ? ((i = n), (r = n = void 0)) + : null == i && + ('string' == typeof n + ? ((i = r), (r = void 0)) + : ((i = r), (r = n), (n = void 0))), + !1 === i) + ) + i = u; + else if (!i) return t; + return ( + 1 === o && + ((a = i), + ((i = function (t) { + return B().off(t), a.apply(this, arguments); + }).guid = a.guid || (a.guid = B.guid++))), + t.each(function () { + B.event.add(this, e, i, r, n); + }) + ); + } + (B.event = { + global: {}, + add: function (e, t, n, r, i) { + var o, + a, + s, + l, + u, + c, + A, + h, + p, + d = m.get(e); + if (d) + for ( + n.handler && ((n = (o = n).handler), (i = o.selector)), + n.guid || (n.guid = B.guid++), + (s = d.events) || (s = d.events = {}), + (a = d.handle) || + (a = d.handle = + function (t) { + return void 0 !== B && B.event.triggered !== t.type + ? B.event.dispatch.apply(e, arguments) + : void 0; + }), + l = (t = (t || '').match(C) || ['']).length; + l--; + + ) + (A = p = (h = gt.exec(t[l]) || [])[1]), + (h = (h[2] || '').split('.').sort()), + A && + ((u = B.event.special[A] || {}), + (A = (i ? u.delegateType : u.bindType) || A), + (u = B.event.special[A] || {}), + (p = B.extend( + { + type: A, + origType: p, + data: r, + handler: n, + guid: n.guid, + selector: i, + needsContext: i && B.expr.match.needsContext.test(i), + namespace: h.join('.'), + }, + o, + )), + (c = s[A]) || + (((c = s[A] = []).delegateCount = 0), + (u.setup && !1 !== u.setup.call(e, r, h, a)) || + (e.addEventListener && e.addEventListener(A, a))), + u.add && (u.add.call(e, p), p.handler.guid || (p.handler.guid = n.guid)), + i ? c.splice(c.delegateCount++, 0, p) : c.push(p), + (B.event.global[A] = !0)); + }, + remove: function (t, e, n, r, i) { + var o, + a, + s, + l, + u, + c, + A, + h, + p, + d, + f, + g = m.hasData(t) && m.get(t); + if (g && (l = g.events)) { + for (u = (e = (e || '').match(C) || ['']).length; u--; ) + if ( + ((p = f = (s = gt.exec(e[u]) || [])[1]), + (d = (s[2] || '').split('.').sort()), + p) + ) { + for ( + A = B.event.special[p] || {}, + h = l[(p = (r ? A.delegateType : A.bindType) || p)] || [], + s = s[2] && new RegExp('(^|\\.)' + d.join('\\.(?:.*\\.|)') + '(\\.|$)'), + a = o = h.length; + o--; + + ) + (c = h[o]), + (!i && f !== c.origType) || + (n && n.guid !== c.guid) || + (s && !s.test(c.namespace)) || + (r && r !== c.selector && ('**' !== r || !c.selector)) || + (h.splice(o, 1), + c.selector && h.delegateCount--, + A.remove && A.remove.call(t, c)); + a && + !h.length && + ((A.teardown && !1 !== A.teardown.call(t, d, g.handle)) || + B.removeEvent(t, p, g.handle), + delete l[p]); + } else for (p in l) B.event.remove(t, p + e[u], n, r, !0); + B.isEmptyObject(l) && m.remove(t, 'handle events'); + } + }, + dispatch: function (t) { + t = B.event.fix(t); + var e, + n, + r, + i, + o, + a = c.call(arguments), + s = (m.get(this, 'events') || {})[t.type] || [], + l = B.event.special[t.type] || {}; + if ( + (((a[0] = t).delegateTarget = this), + !l.preDispatch || !1 !== l.preDispatch.call(this, t)) + ) { + for ( + o = B.event.handlers.call(this, t, s), e = 0; + (r = o[e++]) && !t.isPropagationStopped(); + + ) + for ( + t.currentTarget = r.elem, n = 0; + (i = r.handlers[n++]) && !t.isImmediatePropagationStopped(); + + ) + (t.rnamespace && !t.rnamespace.test(i.namespace)) || + ((t.handleObj = i), + (t.data = i.data), + void 0 !== + (i = ((B.event.special[i.origType] || {}).handle || i.handler).apply( + r.elem, + a, + )) && + !1 === (t.result = i) && + (t.preventDefault(), t.stopPropagation())); + return l.postDispatch && l.postDispatch.call(this, t), t.result; + } + }, + handlers: function (t, e) { + var n, + r, + i, + o, + a = [], + s = e.delegateCount, + l = t.target; + if (s && l.nodeType && ('click' !== t.type || isNaN(t.button) || t.button < 1)) + for (; l !== this; l = l.parentNode || this) + if (1 === l.nodeType && (!0 !== l.disabled || 'click' !== t.type)) { + for (r = [], n = 0; n < s; n++) + void 0 === r[(i = (o = e[n]).selector + ' ')] && + (r[i] = o.needsContext + ? -1 < B(i, this).index(l) + : B.find(i, this, null, [l]).length), + r[i] && r.push(o); + r.length && a.push({ elem: l, handlers: r }); + } + return s < e.length && a.push({ elem: this, handlers: e.slice(s) }), a; + }, + props: + 'altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which'.split( + ' ', + ), + fixHooks: {}, + keyHooks: { + props: 'char charCode key keyCode'.split(' '), + filter: function (t, e) { + return ( + null == t.which && (t.which = null != e.charCode ? e.charCode : e.keyCode), t + ); + }, + }, + mouseHooks: { + props: + 'button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement'.split( + ' ', + ), + filter: function (t, e) { + var n, + r, + i = e.button; + return ( + null == t.pageX && + null != e.clientX && + ((n = (r = t.target.ownerDocument || E).documentElement), + (r = r.body), + (t.pageX = + e.clientX + + ((n && n.scrollLeft) || (r && r.scrollLeft) || 0) - + ((n && n.clientLeft) || (r && r.clientLeft) || 0)), + (t.pageY = + e.clientY + + ((n && n.scrollTop) || (r && r.scrollTop) || 0) - + ((n && n.clientTop) || (r && r.clientTop) || 0))), + t.which || void 0 === i || (t.which = 1 & i ? 1 : 2 & i ? 3 : 4 & i ? 2 : 0), + t + ); + }, + }, + fix: function (t) { + if (t[B.expando]) return t; + var e, + n, + r, + i = t.type, + o = t, + a = this.fixHooks[i]; + for ( + a || + (this.fixHooks[i] = a = + ft.test(i) ? this.mouseHooks : dt.test(i) ? this.keyHooks : {}), + r = a.props ? this.props.concat(a.props) : this.props, + t = new B.Event(o), + e = r.length; + e--; + + ) + t[(n = r[e])] = o[n]; + return ( + t.target || (t.target = E), + 3 === t.target.nodeType && (t.target = t.target.parentNode), + a.filter ? a.filter(t, o) : t + ); + }, + special: { + load: { noBubble: !0 }, + focus: { + trigger: function () { + if (this !== vt() && this.focus) return this.focus(), !1; + }, + delegateType: 'focusin', + }, + blur: { + trigger: function () { + if (this === vt() && this.blur) return this.blur(), !1; + }, + delegateType: 'focusout', + }, + click: { + trigger: function () { + if ('checkbox' === this.type && this.click && B.nodeName(this, 'input')) + return this.click(), !1; + }, + _default: function (t) { + return B.nodeName(t.target, 'a'); + }, + }, + beforeunload: { + postDispatch: function (t) { + void 0 !== t.result && + t.originalEvent && + (t.originalEvent.returnValue = t.result); + }, + }, + }, + }), + (B.removeEvent = function (t, e, n) { + t.removeEventListener && t.removeEventListener(e, n); + }), + (B.Event = function (t, e) { + if (!(this instanceof B.Event)) return new B.Event(t, e); + t && t.type + ? ((this.originalEvent = t), + (this.type = t.type), + (this.isDefaultPrevented = + t.defaultPrevented || + (void 0 === t.defaultPrevented && !1 === t.returnValue) + ? mt + : u)) + : (this.type = t), + e && B.extend(this, e), + (this.timeStamp = (t && t.timeStamp) || B.now()), + (this[B.expando] = !0); + }), + (B.Event.prototype = { + constructor: B.Event, + isDefaultPrevented: u, + isPropagationStopped: u, + isImmediatePropagationStopped: u, + isSimulated: !1, + preventDefault: function () { + var t = this.originalEvent; + (this.isDefaultPrevented = mt), t && !this.isSimulated && t.preventDefault(); + }, + stopPropagation: function () { + var t = this.originalEvent; + (this.isPropagationStopped = mt), t && !this.isSimulated && t.stopPropagation(); + }, + stopImmediatePropagation: function () { + var t = this.originalEvent; + (this.isImmediatePropagationStopped = mt), + t && !this.isSimulated && t.stopImmediatePropagation(), + this.stopPropagation(); + }, + }), + B.each( + { + mouseenter: 'mouseover', + mouseleave: 'mouseout', + pointerenter: 'pointerover', + pointerleave: 'pointerout', + }, + function (t, i) { + B.event.special[t] = { + delegateType: i, + bindType: i, + handle: function (t) { + var e, + n = t.relatedTarget, + r = t.handleObj; + return ( + (n && (n === this || B.contains(this, n))) || + ((t.type = r.origType), + (e = r.handler.apply(this, arguments)), + (t.type = i)), + e + ); + }, + }; + }, + ), + B.fn.extend({ + on: function (t, e, n, r) { + return bt(this, t, e, n, r); + }, + one: function (t, e, n, r) { + return bt(this, t, e, n, r, 1); + }, + off: function (t, e, n) { + var r, i; + if (t && t.preventDefault && t.handleObj) + return ( + (r = t.handleObj), + B(t.delegateTarget).off( + r.namespace ? r.origType + '.' + r.namespace : r.origType, + r.selector, + r.handler, + ), + this + ); + if ('object' != typeof t) + return ( + (!1 !== e && 'function' != typeof e) || ((n = e), (e = void 0)), + !1 === n && (n = u), + this.each(function () { + B.event.remove(this, t, n, e); + }) + ); + for (i in t) this.off(i, e, t[i]); + return this; + }, + }); + var yt = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, + wt = /<script|<style|<link/i, + Et = /checked\s*(?:[^=]|=\s*.checked.)/i, + Bt = /^true\/(.*)/, + Ct = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; + function xt(t, e) { + return B.nodeName(t, 'table') && + B.nodeName(11 !== e.nodeType ? e : e.firstChild, 'tr') + ? t.getElementsByTagName('tbody')[0] || + t.appendChild(t.ownerDocument.createElement('tbody')) + : t; + } + function It(t) { + return (t.type = (null !== t.getAttribute('type')) + '/' + t.type), t; + } + function Mt(t) { + var e = Bt.exec(t.type); + return e ? (t.type = e[1]) : t.removeAttribute('type'), t; + } + function Dt(t, e) { + var n, r, i, o, a, s; + if (1 === e.nodeType) { + if (m.hasData(t) && ((o = m.access(t)), (a = m.set(e, o)), (s = o.events))) + for (i in (delete a.handle, (a.events = {}), s)) + for (n = 0, r = s[i].length; n < r; n++) B.event.add(e, i, s[i][n]); + l.hasData(t) && ((o = l.access(t)), (a = B.extend({}, o)), l.set(e, a)); + } + } + function x(n, r, i, o) { + r = P.apply([], r); + var t, + e, + a, + s, + l, + u, + c = 0, + A = n.length, + h = A - 1, + p = r[0], + d = B.isFunction(p); + if (d || (1 < A && 'string' == typeof p && !f.checkClone && Et.test(p))) + return n.each(function (t) { + var e = n.eq(t); + d && (r[0] = p.call(this, t, e.html())), x(e, r, i, o); + }); + if ( + A && + ((e = (t = pt(r, n[0].ownerDocument, !1, n, o)).firstChild), + 1 === t.childNodes.length && (t = e), + e || o) + ) { + for (s = (a = B.map(y(t, 'script'), It)).length; c < A; c++) + (l = t), + c !== h && ((l = B.clone(l, !0, !0)), s && B.merge(a, y(l, 'script'))), + i.call(n[c], l, c); + if (s) + for (u = a[a.length - 1].ownerDocument, B.map(a, Mt), c = 0; c < s; c++) + (l = a[c]), + ct.test(l.type || '') && + !m.access(l, 'globalEval') && + B.contains(u, l) && + (l.src + ? B._evalUrl && B._evalUrl(l.src) + : B.globalEval(l.textContent.replace(Ct, ''))); + } + return n; + } + function St(t, e, n) { + for (var r, i = e ? B.filter(e, t) : t, o = 0; null != (r = i[o]); o++) + n || 1 !== r.nodeType || B.cleanData(y(r)), + r.parentNode && + (n && B.contains(r.ownerDocument, r) && At(y(r, 'script')), + r.parentNode.removeChild(r)); + return t; + } + B.extend({ + htmlPrefilter: function (t) { + return t.replace(yt, '<$1></$2>'); + }, + clone: function (t, e, n) { + var r, + i, + o, + a, + s, + l, + u, + c = t.cloneNode(!0), + A = B.contains(t.ownerDocument, t); + if ( + !(f.noCloneChecked || (1 !== t.nodeType && 11 !== t.nodeType) || B.isXMLDoc(t)) + ) + for (a = y(c), r = 0, i = (o = y(t)).length; r < i; r++) + (s = o[r]), + (l = a[r]), + (u = void 0), + 'input' === (u = l.nodeName.toLowerCase()) && lt.test(s.type) + ? (l.checked = s.checked) + : ('input' !== u && 'textarea' !== u) || + (l.defaultValue = s.defaultValue); + if (e) + if (n) + for (o = o || y(t), a = a || y(c), r = 0, i = o.length; r < i; r++) + Dt(o[r], a[r]); + else Dt(t, c); + return 0 < (a = y(c, 'script')).length && At(a, !A && y(t, 'script')), c; + }, + cleanData: function (t) { + for (var e, n, r, i = B.event.special, o = 0; void 0 !== (n = t[o]); o++) + if (g(n)) { + if ((e = n[m.expando])) { + if (e.events) + for (r in e.events) + i[r] ? B.event.remove(n, r) : B.removeEvent(n, r, e.handle); + n[m.expando] = void 0; + } + n[l.expando] && (n[l.expando] = void 0); + } + }, + }), + B.fn.extend({ + domManip: x, + detach: function (t) { + return St(this, t, !0); + }, + remove: function (t) { + return St(this, t); + }, + text: function (t) { + return A( + this, + function (t) { + return void 0 === t + ? B.text(this) + : this.empty().each(function () { + (1 !== this.nodeType && + 11 !== this.nodeType && + 9 !== this.nodeType) || + (this.textContent = t); + }); + }, + null, + t, + arguments.length, + ); + }, + append: function () { + return x(this, arguments, function (t) { + (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || + xt(this, t).appendChild(t); + }); + }, + prepend: function () { + return x(this, arguments, function (t) { + var e; + (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || + (e = xt(this, t)).insertBefore(t, e.firstChild); + }); + }, + before: function () { + return x(this, arguments, function (t) { + this.parentNode && this.parentNode.insertBefore(t, this); + }); + }, + after: function () { + return x(this, arguments, function (t) { + this.parentNode && this.parentNode.insertBefore(t, this.nextSibling); + }); + }, + empty: function () { + for (var t, e = 0; null != (t = this[e]); e++) + 1 === t.nodeType && (B.cleanData(y(t, !1)), (t.textContent = '')); + return this; + }, + clone: function (t, e) { + return ( + (t = null != t && t), + (e = null == e ? t : e), + this.map(function () { + return B.clone(this, t, e); + }) + ); + }, + html: function (t) { + return A( + this, + function (t) { + var e = this[0] || {}, + n = 0, + r = this.length; + if (void 0 === t && 1 === e.nodeType) return e.innerHTML; + if ( + 'string' == typeof t && + !wt.test(t) && + !b[(ut.exec(t) || ['', ''])[1].toLowerCase()] + ) { + t = B.htmlPrefilter(t); + try { + for (; n < r; n++) + 1 === (e = this[n] || {}).nodeType && + (B.cleanData(y(e, !1)), (e.innerHTML = t)); + e = 0; + } catch (t) {} + } + e && this.empty().append(t); + }, + null, + t, + arguments.length, + ); + }, + replaceWith: function () { + var n = []; + return x( + this, + arguments, + function (t) { + var e = this.parentNode; + B.inArray(this, n) < 0 && + (B.cleanData(y(this)), e && e.replaceChild(t, this)); + }, + n, + ); + }, + }), + B.each( + { + appendTo: 'append', + prependTo: 'prepend', + insertBefore: 'before', + insertAfter: 'after', + replaceAll: 'replaceWith', + }, + function (t, a) { + B.fn[t] = function (t) { + for (var e, n = [], r = B(t), i = r.length - 1, o = 0; o <= i; o++) + (e = o === i ? this : this.clone(!0)), B(r[o])[a](e), L.apply(n, e.get()); + return this.pushStack(n); + }; + }, + ); + var kt, + Ft = { HTML: 'block', BODY: 'block' }; + function Qt(t, e) { + (t = B(e.createElement(t)).appendTo(e.body)), (e = B.css(t[0], 'display')); + return t.detach(), e; + } + function _t(t) { + var e = E, + n = Ft[t]; + return ( + n || + (('none' !== (n = Qt(t, e)) && n) || + ((e = (kt = ( + kt || B("<iframe frameborder='0' width='0' height='0'/>") + ).appendTo(e.documentElement))[0].contentDocument).write(), + e.close(), + (n = Qt(t, e)), + kt.detach()), + (Ft[t] = n)), + n + ); + } + function Tt(t) { + var e = t.ownerDocument.defaultView; + return (e = e && e.opener ? e : w).getComputedStyle(t); + } + function Rt(t, e, n, r) { + var i, + o = {}; + for (i in e) (o[i] = t.style[i]), (t.style[i] = e[i]); + for (i in ((n = n.apply(t, r || [])), e)) t.style[i] = o[i]; + return n; + } + var Ut, + o, + Nt, + Pt, + a, + p, + Lt = /^margin/, + Yt = new RegExp('^(' + t + ')(?!px)[a-z%]+$', 'i'), + I = E.documentElement; + function Ot() { + (p.style.cssText = + '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%'), + (p.innerHTML = ''), + I.appendChild(a); + var t = w.getComputedStyle(p); + (Ut = '1%' !== t.top), + (Pt = '2px' === t.marginLeft), + (o = '4px' === t.width), + (p.style.marginRight = '50%'), + (Nt = '4px' === t.marginRight), + I.removeChild(a); + } + function M(t, e, n) { + var r, + i, + o = t.style; + return ( + ('' !== (i = (n = n || Tt(t)) ? n.getPropertyValue(e) || n[e] : void 0) && + void 0 !== i) || + B.contains(t.ownerDocument, t) || + (i = B.style(t, e)), + n && + !f.pixelMarginRight() && + Yt.test(i) && + Lt.test(e) && + ((t = o.width), + (e = o.minWidth), + (r = o.maxWidth), + (o.minWidth = o.maxWidth = o.width = i), + (i = n.width), + (o.width = t), + (o.minWidth = e), + (o.maxWidth = r)), + void 0 !== i ? i + '' : i + ); + } + function Gt(t, e) { + return { + get: function () { + if (!t()) return (this.get = e).apply(this, arguments); + delete this.get; + }, + }; + } + (a = E.createElement('div')), + (p = E.createElement('div')).style && + ((p.style.backgroundClip = 'content-box'), + (p.cloneNode(!0).style.backgroundClip = ''), + (f.clearCloneStyle = 'content-box' === p.style.backgroundClip), + (a.style.cssText = + 'border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute'), + a.appendChild(p), + B.extend(f, { + pixelPosition: function () { + return Ot(), Ut; + }, + boxSizingReliable: function () { + return null == o && Ot(), o; + }, + pixelMarginRight: function () { + return null == o && Ot(), Nt; + }, + reliableMarginLeft: function () { + return null == o && Ot(), Pt; + }, + reliableMarginRight: function () { + var t, + e = p.appendChild(E.createElement('div')); + return ( + (e.style.cssText = p.style.cssText = + '-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0'), + (e.style.marginRight = e.style.width = '0'), + (p.style.width = '1px'), + I.appendChild(a), + (t = !parseFloat(w.getComputedStyle(e).marginRight)), + I.removeChild(a), + p.removeChild(e), + t + ); + }, + })); + var zt = /^(none|table(?!-c[ea]).+)/, + Ht = { position: 'absolute', visibility: 'hidden', display: 'block' }, + jt = { letterSpacing: '0', fontWeight: '400' }, + Vt = ['Webkit', 'O', 'Moz', 'ms'], + qt = E.createElement('div').style; + function Wt(t) { + if (t in qt) return t; + for (var e = t[0].toUpperCase() + t.slice(1), n = Vt.length; n--; ) + if ((t = Vt[n] + e) in qt) return t; + } + function Jt(t, e, n) { + var r = h.exec(e); + return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || 'px') : e; + } + function Kt(t, e, n, r, i) { + for ( + var o = n === (r ? 'border' : 'content') ? 4 : 'width' === e ? 1 : 0, a = 0; + o < 4; + o += 2 + ) + 'margin' === n && (a += B.css(t, n + s[o], !0, i)), + r + ? ('content' === n && (a -= B.css(t, 'padding' + s[o], !0, i)), + 'margin' !== n && (a -= B.css(t, 'border' + s[o] + 'Width', !0, i))) + : ((a += B.css(t, 'padding' + s[o], !0, i)), + 'padding' !== n && (a += B.css(t, 'border' + s[o] + 'Width', !0, i))); + return a; + } + function Zt(t, e, n) { + var r = !0, + i = 'width' === e ? t.offsetWidth : t.offsetHeight, + o = Tt(t), + a = 'border-box' === B.css(t, 'boxSizing', !1, o); + if (i <= 0 || null == i) { + if ((((i = M(t, e, o)) < 0 || null == i) && (i = t.style[e]), Yt.test(i))) + return i; + (r = a && (f.boxSizingReliable() || i === t.style[e])), (i = parseFloat(i) || 0); + } + return i + Kt(t, e, n || (a ? 'border' : 'content'), r, o) + 'px'; + } + function Xt(t, e) { + for (var n, r, i, o = [], a = 0, s = t.length; a < s; a++) + (r = t[a]).style && + ((o[a] = m.get(r, 'olddisplay')), + (n = r.style.display), + e + ? (o[a] || 'none' !== n || (r.style.display = ''), + '' === r.style.display && + v(r) && + (o[a] = m.access(r, 'olddisplay', _t(r.nodeName)))) + : ((i = v(r)), + ('none' === n && i) || + m.set(r, 'olddisplay', i ? n : B.css(r, 'display')))); + for (a = 0; a < s; a++) + !(r = t[a]).style || + (e && 'none' !== r.style.display && '' !== r.style.display) || + (r.style.display = e ? o[a] || '' : 'none'); + return t; + } + function D(t, e, n, r, i) { + return new D.prototype.init(t, e, n, r, i); + } + B.extend({ + cssHooks: { + opacity: { + get: function (t, e) { + if (e) return '' === (e = M(t, 'opacity')) ? '1' : e; + }, + }, + }, + cssNumber: { + animationIterationCount: !0, + columnCount: !0, + fillOpacity: !0, + flexGrow: !0, + flexShrink: !0, + fontWeight: !0, + lineHeight: !0, + opacity: !0, + order: !0, + orphans: !0, + widows: !0, + zIndex: !0, + zoom: !0, + }, + cssProps: { float: 'cssFloat' }, + style: function (t, e, n, r) { + if (t && 3 !== t.nodeType && 8 !== t.nodeType && t.style) { + var i, + o, + a, + s = B.camelCase(e), + l = t.style; + if ( + ((e = B.cssProps[s] || (B.cssProps[s] = Wt(s) || s)), + (a = B.cssHooks[e] || B.cssHooks[s]), + void 0 === n) + ) + return a && 'get' in a && void 0 !== (i = a.get(t, !1, r)) ? i : l[e]; + 'string' === (o = typeof n) && + (i = h.exec(n)) && + i[1] && + ((n = st(t, e, i)), (o = 'number')), + null != n && + n == n && + ('number' === o && (n += (i && i[3]) || (B.cssNumber[s] ? '' : 'px')), + f.clearCloneStyle || + '' !== n || + 0 !== e.indexOf('background') || + (l[e] = 'inherit'), + (a && 'set' in a && void 0 === (n = a.set(t, n, r))) || (l[e] = n)); + } + }, + css: function (t, e, n, r) { + var i, + o = B.camelCase(e); + return ( + (e = B.cssProps[o] || (B.cssProps[o] = Wt(o) || o)), + 'normal' === + (i = + void 0 === + (i = + (o = B.cssHooks[e] || B.cssHooks[o]) && 'get' in o ? o.get(t, !0, n) : i) + ? M(t, e, r) + : i) && + e in jt && + (i = jt[e]), + '' === n || n ? ((o = parseFloat(i)), !0 === n || isFinite(o) ? o || 0 : i) : i + ); + }, + }), + B.each(['height', 'width'], function (t, i) { + B.cssHooks[i] = { + get: function (t, e, n) { + if (e) + return zt.test(B.css(t, 'display')) && 0 === t.offsetWidth + ? Rt(t, Ht, function () { + return Zt(t, i, n); + }) + : Zt(t, i, n); + }, + set: function (t, e, n) { + var r = n && Tt(t), + n = n && Kt(t, i, n, 'border-box' === B.css(t, 'boxSizing', !1, r), r); + return ( + n && + (r = h.exec(e)) && + 'px' !== (r[3] || 'px') && + ((t.style[i] = e), (e = B.css(t, i))), + Jt(0, e, n) + ); + }, + }; + }), + (B.cssHooks.marginLeft = Gt(f.reliableMarginLeft, function (t, e) { + if (e) + return ( + (parseFloat(M(t, 'marginLeft')) || + t.getBoundingClientRect().left - + Rt(t, { marginLeft: 0 }, function () { + return t.getBoundingClientRect().left; + })) + 'px' + ); + })), + (B.cssHooks.marginRight = Gt(f.reliableMarginRight, function (t, e) { + if (e) return Rt(t, { display: 'inline-block' }, M, [t, 'marginRight']); + })), + B.each({ margin: '', padding: '', border: 'Width' }, function (i, o) { + (B.cssHooks[i + o] = { + expand: function (t) { + for ( + var e = 0, n = {}, r = 'string' == typeof t ? t.split(' ') : [t]; + e < 4; + e++ + ) + n[i + s[e] + o] = r[e] || r[e - 2] || r[0]; + return n; + }, + }), + Lt.test(i) || (B.cssHooks[i + o].set = Jt); + }), + B.fn.extend({ + css: function (t, e) { + return A( + this, + function (t, e, n) { + var r, + i, + o = {}, + a = 0; + if (B.isArray(e)) { + for (r = Tt(t), i = e.length; a < i; a++) o[e[a]] = B.css(t, e[a], !1, r); + return o; + } + return void 0 !== n ? B.style(t, e, n) : B.css(t, e); + }, + t, + e, + 1 < arguments.length, + ); + }, + show: function () { + return Xt(this, !0); + }, + hide: function () { + return Xt(this); + }, + toggle: function (t) { + return 'boolean' == typeof t + ? t + ? this.show() + : this.hide() + : this.each(function () { + v(this) ? B(this).show() : B(this).hide(); + }); + }, + }), + (((B.Tween = D).prototype = { + constructor: D, + init: function (t, e, n, r, i, o) { + (this.elem = t), + (this.prop = n), + (this.easing = i || B.easing._default), + (this.options = e), + (this.start = this.now = this.cur()), + (this.end = r), + (this.unit = o || (B.cssNumber[n] ? '' : 'px')); + }, + cur: function () { + var t = D.propHooks[this.prop]; + return (t && t.get ? t : D.propHooks._default).get(this); + }, + run: function (t) { + var e, + n = D.propHooks[this.prop]; + return ( + this.options.duration + ? (this.pos = e = + B.easing[this.easing]( + t, + this.options.duration * t, + 0, + 1, + this.options.duration, + )) + : (this.pos = e = t), + (this.now = (this.end - this.start) * e + this.start), + this.options.step && this.options.step.call(this.elem, this.now, this), + (n && n.set ? n : D.propHooks._default).set(this), + this + ); + }, + }).init.prototype = D.prototype), + ((D.propHooks = { + _default: { + get: function (t) { + return 1 !== t.elem.nodeType || + (null != t.elem[t.prop] && null == t.elem.style[t.prop]) + ? t.elem[t.prop] + : (t = B.css(t.elem, t.prop, '')) && 'auto' !== t + ? t + : 0; + }, + set: function (t) { + B.fx.step[t.prop] + ? B.fx.step[t.prop](t) + : 1 !== t.elem.nodeType || + (null == t.elem.style[B.cssProps[t.prop]] && !B.cssHooks[t.prop]) + ? (t.elem[t.prop] = t.now) + : B.style(t.elem, t.prop, t.now + t.unit); + }, + }, + }).scrollTop = D.propHooks.scrollLeft = + { + set: function (t) { + t.elem.nodeType && t.elem.parentNode && (t.elem[t.prop] = t.now); + }, + }), + (B.easing = { + linear: function (t) { + return t; + }, + swing: function (t) { + return 0.5 - Math.cos(t * Math.PI) / 2; + }, + _default: 'swing', + }), + (B.fx = D.prototype.init), + (B.fx.step = {}); + var S, + $t, + k, + te = /^(?:toggle|show|hide)$/, + ee = /queueHooks$/; + function ne() { + return ( + w.setTimeout(function () { + S = void 0; + }), + (S = B.now()) + ); + } + function re(t, e) { + var n, + r = 0, + i = { height: t }; + for (e = e ? 1 : 0; r < 4; r += 2 - e) + i['margin' + (n = s[r])] = i['padding' + n] = t; + return e && (i.opacity = i.width = t), i; + } + function ie(t, e, n) { + for ( + var r, i = (F.tweeners[e] || []).concat(F.tweeners['*']), o = 0, a = i.length; + o < a; + o++ + ) + if ((r = i[o].call(n, e, t))) return r; + } + function F(i, t, e) { + var n, + o, + r, + a, + s, + l, + u, + c = 0, + A = F.prefilters.length, + h = B.Deferred().always(function () { + delete p.elem; + }), + p = function () { + if (o) return !1; + for ( + var t = S || ne(), + t = Math.max(0, d.startTime + d.duration - t), + e = 1 - (t / d.duration || 0), + n = 0, + r = d.tweens.length; + n < r; + n++ + ) + d.tweens[n].run(e); + return h.notifyWith(i, [d, e, t]), e < 1 && r ? t : (h.resolveWith(i, [d]), !1); + }, + d = h.promise({ + elem: i, + props: B.extend({}, t), + opts: B.extend(!0, { specialEasing: {}, easing: B.easing._default }, e), + originalProperties: t, + originalOptions: e, + startTime: S || ne(), + duration: e.duration, + tweens: [], + createTween: function (t, e) { + e = B.Tween(i, d.opts, t, e, d.opts.specialEasing[t] || d.opts.easing); + return d.tweens.push(e), e; + }, + stop: function (t) { + var e = 0, + n = t ? d.tweens.length : 0; + if (!o) { + for (o = !0; e < n; e++) d.tweens[e].run(1); + t + ? (h.notifyWith(i, [d, 1, 0]), h.resolveWith(i, [d, t])) + : h.rejectWith(i, [d, t]); + } + return this; + }, + }), + f = d.props, + g = f, + m = d.opts.specialEasing; + for (r in g) + if ( + ((s = m[(a = B.camelCase(r))]), + (l = g[r]), + B.isArray(l) && ((s = l[1]), (l = g[r] = l[0])), + r !== a && ((g[a] = l), delete g[r]), + (u = B.cssHooks[a]) && 'expand' in u) + ) + for (r in ((l = u.expand(l)), delete g[a], l)) + r in g || ((g[r] = l[r]), (m[r] = s)); + else m[a] = s; + for (; c < A; c++) + if ((n = F.prefilters[c].call(d, i, f, d.opts))) + return ( + B.isFunction(n.stop) && + (B._queueHooks(d.elem, d.opts.queue).stop = B.proxy(n.stop, n)), + n + ); + return ( + B.map(f, ie, d), + B.isFunction(d.opts.start) && d.opts.start.call(i, d), + B.fx.timer(B.extend(p, { elem: i, anim: d, queue: d.opts.queue })), + d + .progress(d.opts.progress) + .done(d.opts.done, d.opts.complete) + .fail(d.opts.fail) + .always(d.opts.always) + ); + } + (B.Animation = B.extend(F, { + tweeners: { + '*': [ + function (t, e) { + var n = this.createTween(t, e); + return st(n.elem, t, h.exec(e), n), n; + }, + ], + }, + tweener: function (t, e) { + for ( + var n, r = 0, i = (t = B.isFunction(t) ? ((e = t), ['*']) : t.match(C)).length; + r < i; + r++ + ) + (n = t[r]), (F.tweeners[n] = F.tweeners[n] || []), F.tweeners[n].unshift(e); + }, + prefilters: [ + function (e, t, n) { + var r, + i, + o, + a, + s, + l, + u, + c = this, + A = {}, + h = e.style, + p = e.nodeType && v(e), + d = m.get(e, 'fxshow'); + for (r in (n.queue || + (null == (s = B._queueHooks(e, 'fx')).unqueued && + ((s.unqueued = 0), + (l = s.empty.fire), + (s.empty.fire = function () { + s.unqueued || l(); + })), + s.unqueued++, + c.always(function () { + c.always(function () { + s.unqueued--, B.queue(e, 'fx').length || s.empty.fire(); + }); + })), + 1 === e.nodeType && + ('height' in t || 'width' in t) && + ((n.overflow = [h.overflow, h.overflowX, h.overflowY]), + 'inline' === + ('none' === (u = B.css(e, 'display')) + ? m.get(e, 'olddisplay') || _t(e.nodeName) + : u) && + 'none' === B.css(e, 'float') && + (h.display = 'inline-block')), + n.overflow && + ((h.overflow = 'hidden'), + c.always(function () { + (h.overflow = n.overflow[0]), + (h.overflowX = n.overflow[1]), + (h.overflowY = n.overflow[2]); + })), + t)) + if (((i = t[r]), te.exec(i))) { + if ((delete t[r], (o = o || 'toggle' === i), i === (p ? 'hide' : 'show'))) { + if ('show' !== i || !d || void 0 === d[r]) continue; + p = !0; + } + A[r] = (d && d[r]) || B.style(e, r); + } else u = void 0; + if (B.isEmptyObject(A)) + 'inline' === ('none' === u ? _t(e.nodeName) : u) && (h.display = u); + else + for (r in (d + ? 'hidden' in d && (p = d.hidden) + : (d = m.access(e, 'fxshow', {})), + o && (d.hidden = !p), + p + ? B(e).show() + : c.done(function () { + B(e).hide(); + }), + c.done(function () { + for (var t in (m.remove(e, 'fxshow'), A)) B.style(e, t, A[t]); + }), + A)) + (a = ie(p ? d[r] : 0, r, c)), + r in d || + ((d[r] = a.start), + p && + ((a.end = a.start), + (a.start = 'width' === r || 'height' === r ? 1 : 0))); + }, + ], + prefilter: function (t, e) { + e ? F.prefilters.unshift(t) : F.prefilters.push(t); + }, + })), + (B.speed = function (t, e, n) { + var r = + t && 'object' == typeof t + ? B.extend({}, t) + : { + complete: n || (!n && e) || (B.isFunction(t) && t), + duration: t, + easing: (n && e) || (e && !B.isFunction(e) && e), + }; + return ( + (r.duration = B.fx.off + ? 0 + : 'number' == typeof r.duration + ? r.duration + : r.duration in B.fx.speeds + ? B.fx.speeds[r.duration] + : B.fx.speeds._default), + (null != r.queue && !0 !== r.queue) || (r.queue = 'fx'), + (r.old = r.complete), + (r.complete = function () { + B.isFunction(r.old) && r.old.call(this), r.queue && B.dequeue(this, r.queue); + }), + r + ); + }), + B.fn.extend({ + fadeTo: function (t, e, n, r) { + return this.filter(v) + .css('opacity', 0) + .show() + .end() + .animate({ opacity: e }, t, n, r); + }, + animate: function (e, t, n, r) { + function i() { + var t = F(this, B.extend({}, e), a); + (o || m.get(this, 'finish')) && t.stop(!0); + } + var o = B.isEmptyObject(e), + a = B.speed(t, n, r); + return ( + (i.finish = i), o || !1 === a.queue ? this.each(i) : this.queue(a.queue, i) + ); + }, + stop: function (i, t, o) { + function a(t) { + var e = t.stop; + delete t.stop, e(o); + } + return ( + 'string' != typeof i && ((o = t), (t = i), (i = void 0)), + t && !1 !== i && this.queue(i || 'fx', []), + this.each(function () { + var t = !0, + e = null != i && i + 'queueHooks', + n = B.timers, + r = m.get(this); + if (e) r[e] && r[e].stop && a(r[e]); + else for (e in r) r[e] && r[e].stop && ee.test(e) && a(r[e]); + for (e = n.length; e--; ) + n[e].elem !== this || + (null != i && n[e].queue !== i) || + (n[e].anim.stop(o), (t = !1), n.splice(e, 1)); + (!t && o) || B.dequeue(this, i); + }) + ); + }, + finish: function (a) { + return ( + !1 !== a && (a = a || 'fx'), + this.each(function () { + var t, + e = m.get(this), + n = e[a + 'queue'], + r = e[a + 'queueHooks'], + i = B.timers, + o = n ? n.length : 0; + for ( + e.finish = !0, + B.queue(this, a, []), + r && r.stop && r.stop.call(this, !0), + t = i.length; + t--; + + ) + i[t].elem === this && + i[t].queue === a && + (i[t].anim.stop(!0), i.splice(t, 1)); + for (t = 0; t < o; t++) n[t] && n[t].finish && n[t].finish.call(this); + delete e.finish; + }) + ); + }, + }), + B.each(['toggle', 'show', 'hide'], function (t, r) { + var i = B.fn[r]; + B.fn[r] = function (t, e, n) { + return null == t || 'boolean' == typeof t + ? i.apply(this, arguments) + : this.animate(re(r, !0), t, e, n); + }; + }), + B.each( + { + slideDown: re('show'), + slideUp: re('hide'), + slideToggle: re('toggle'), + fadeIn: { opacity: 'show' }, + fadeOut: { opacity: 'hide' }, + fadeToggle: { opacity: 'toggle' }, + }, + function (t, r) { + B.fn[t] = function (t, e, n) { + return this.animate(r, t, e, n); + }; + }, + ), + (B.timers = []), + (B.fx.tick = function () { + var t, + e = 0, + n = B.timers; + for (S = B.now(); e < n.length; e++) + (t = n[e])() || n[e] !== t || n.splice(e--, 1); + n.length || B.fx.stop(), (S = void 0); + }), + (B.fx.timer = function (t) { + B.timers.push(t), t() ? B.fx.start() : B.timers.pop(); + }), + (B.fx.interval = 13), + (B.fx.start = function () { + $t = $t || w.setInterval(B.fx.tick, B.fx.interval); + }), + (B.fx.stop = function () { + w.clearInterval($t), ($t = null); + }), + (B.fx.speeds = { slow: 600, fast: 200, _default: 400 }), + (B.fn.delay = function (r, t) { + return ( + (r = (B.fx && B.fx.speeds[r]) || r), + this.queue((t = t || 'fx'), function (t, e) { + var n = w.setTimeout(t, r); + e.stop = function () { + w.clearTimeout(n); + }; + }) + ); + }), + (k = E.createElement('input')), + (e = E.createElement('select')), + (t = e.appendChild(E.createElement('option'))), + (k.type = 'checkbox'), + (f.checkOn = '' !== k.value), + (f.optSelected = t.selected), + (e.disabled = !0), + (f.optDisabled = !t.disabled), + ((k = E.createElement('input')).value = 't'), + (k.type = 'radio'), + (f.radioValue = 't' === k.value); + var oe, + Q = B.expr.attrHandle, + ae = + (B.fn.extend({ + attr: function (t, e) { + return A(this, B.attr, t, e, 1 < arguments.length); + }, + removeAttr: function (t) { + return this.each(function () { + B.removeAttr(this, t); + }); + }, + }), + B.extend({ + attr: function (t, e, n) { + var r, + i, + o = t.nodeType; + if (3 !== o && 8 !== o && 2 !== o) + return void 0 === t.getAttribute + ? B.prop(t, e, n) + : ((1 === o && B.isXMLDoc(t)) || + ((e = e.toLowerCase()), + (i = B.attrHooks[e] || (B.expr.match.bool.test(e) ? oe : void 0))), + void 0 !== n + ? null === n + ? void B.removeAttr(t, e) + : i && 'set' in i && void 0 !== (r = i.set(t, n, e)) + ? r + : (t.setAttribute(e, n + ''), n) + : !(i && 'get' in i && null !== (r = i.get(t, e))) && + null == (r = B.find.attr(t, e)) + ? void 0 + : r); + }, + attrHooks: { + type: { + set: function (t, e) { + var n; + if (!f.radioValue && 'radio' === e && B.nodeName(t, 'input')) + return (n = t.value), t.setAttribute('type', e), n && (t.value = n), e; + }, + }, + }, + removeAttr: function (t, e) { + var n, + r, + i = 0, + o = e && e.match(C); + if (o && 1 === t.nodeType) + for (; (n = o[i++]); ) + (r = B.propFix[n] || n), + B.expr.match.bool.test(n) && (t[r] = !1), + t.removeAttribute(n); + }, + }), + (oe = { + set: function (t, e, n) { + return !1 === e ? B.removeAttr(t, n) : t.setAttribute(n, n), n; + }, + }), + B.each(B.expr.match.bool.source.match(/\w+/g), function (t, e) { + var o = Q[e] || B.find.attr; + Q[e] = function (t, e, n) { + var r, i; + return ( + n || + ((i = Q[e]), + (Q[e] = r), + (r = null != o(t, e, n) ? e.toLowerCase() : null), + (Q[e] = i)), + r + ); + }; + }), + /^(?:input|select|textarea|button)$/i), + se = /^(?:a|area)$/i, + le = + (B.fn.extend({ + prop: function (t, e) { + return A(this, B.prop, t, e, 1 < arguments.length); + }, + removeProp: function (t) { + return this.each(function () { + delete this[B.propFix[t] || t]; + }); + }, + }), + B.extend({ + prop: function (t, e, n) { + var r, + i, + o = t.nodeType; + if (3 !== o && 8 !== o && 2 !== o) + return ( + (1 === o && B.isXMLDoc(t)) || + ((e = B.propFix[e] || e), (i = B.propHooks[e])), + void 0 !== n + ? i && 'set' in i && void 0 !== (r = i.set(t, n, e)) + ? r + : (t[e] = n) + : i && 'get' in i && null !== (r = i.get(t, e)) + ? r + : t[e] + ); + }, + propHooks: { + tabIndex: { + get: function (t) { + var e = B.find.attr(t, 'tabindex'); + return e + ? parseInt(e, 10) + : ae.test(t.nodeName) || (se.test(t.nodeName) && t.href) + ? 0 + : -1; + }, + }, + }, + propFix: { for: 'htmlFor', class: 'className' }, + }), + f.optSelected || + (B.propHooks.selected = { + get: function (t) { + t = t.parentNode; + return t && t.parentNode && t.parentNode.selectedIndex, null; + }, + set: function (t) { + t = t.parentNode; + t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex); + }, + }), + B.each( + [ + 'tabIndex', + 'readOnly', + 'maxLength', + 'cellSpacing', + 'cellPadding', + 'rowSpan', + 'colSpan', + 'useMap', + 'frameBorder', + 'contentEditable', + ], + function () { + B.propFix[this.toLowerCase()] = this; + }, + ), + /[\t\r\n\f]/g); + function _(t) { + return (t.getAttribute && t.getAttribute('class')) || ''; + } + B.fn.extend({ + addClass: function (e) { + var t, + n, + r, + i, + o, + a, + s = 0; + if (B.isFunction(e)) + return this.each(function (t) { + B(this).addClass(e.call(this, t, _(this))); + }); + if ('string' == typeof e && e) + for (t = e.match(C) || []; (n = this[s++]); ) + if ( + ((a = _(n)), (r = 1 === n.nodeType && (' ' + a + ' ').replace(le, ' '))) + ) { + for (o = 0; (i = t[o++]); ) r.indexOf(' ' + i + ' ') < 0 && (r += i + ' '); + a !== (a = B.trim(r)) && n.setAttribute('class', a); + } + return this; + }, + removeClass: function (e) { + var t, + n, + r, + i, + o, + a, + s = 0; + if (B.isFunction(e)) + return this.each(function (t) { + B(this).removeClass(e.call(this, t, _(this))); + }); + if (!arguments.length) return this.attr('class', ''); + if ('string' == typeof e && e) + for (t = e.match(C) || []; (n = this[s++]); ) + if ( + ((a = _(n)), (r = 1 === n.nodeType && (' ' + a + ' ').replace(le, ' '))) + ) { + for (o = 0; (i = t[o++]); ) + for (; -1 < r.indexOf(' ' + i + ' '); ) r = r.replace(' ' + i + ' ', ' '); + a !== (a = B.trim(r)) && n.setAttribute('class', a); + } + return this; + }, + toggleClass: function (i, e) { + var o = typeof i; + return 'boolean' == typeof e && 'string' == o + ? e + ? this.addClass(i) + : this.removeClass(i) + : B.isFunction(i) + ? this.each(function (t) { + B(this).toggleClass(i.call(this, t, _(this), e), e); + }) + : this.each(function () { + var t, e, n, r; + if ('string' == o) + for (e = 0, n = B(this), r = i.match(C) || []; (t = r[e++]); ) + n.hasClass(t) ? n.removeClass(t) : n.addClass(t); + else + (void 0 !== i && 'boolean' != o) || + ((t = _(this)) && m.set(this, '__className__', t), + this.setAttribute && + this.setAttribute( + 'class', + (!t && !1 !== i && m.get(this, '__className__')) || '', + )); + }); + }, + hasClass: function (t) { + for (var e, n = 0, r = ' ' + t + ' '; (e = this[n++]); ) + if (1 === e.nodeType && -1 < (' ' + _(e) + ' ').replace(le, ' ').indexOf(r)) + return !0; + return !1; + }, + }); + var ue = /\r/g, + ce = /[\x20\t\r\n\f]+/g, + Ae = + (B.fn.extend({ + val: function (e) { + var n, + t, + r, + i = this[0]; + return arguments.length + ? ((r = B.isFunction(e)), + this.each(function (t) { + 1 === this.nodeType && + (null == (t = r ? e.call(this, t, B(this).val()) : e) + ? (t = '') + : 'number' == typeof t + ? (t += '') + : B.isArray(t) && + (t = B.map(t, function (t) { + return null == t ? '' : t + ''; + })), + ((n = + B.valHooks[this.type] || B.valHooks[this.nodeName.toLowerCase()]) && + 'set' in n && + void 0 !== n.set(this, t, 'value')) || + (this.value = t)); + })) + : i + ? (n = B.valHooks[i.type] || B.valHooks[i.nodeName.toLowerCase()]) && + 'get' in n && + void 0 !== (t = n.get(i, 'value')) + ? t + : 'string' == typeof (t = i.value) + ? t.replace(ue, '') + : null == t + ? '' + : t + : void 0; + }, + }), + B.extend({ + valHooks: { + option: { + get: function (t) { + var e = B.find.attr(t, 'value'); + return null != e ? e : B.trim(B.text(t)).replace(ce, ' '); + }, + }, + select: { + get: function (t) { + for ( + var e, + n = t.options, + r = t.selectedIndex, + i = 'select-one' === t.type || r < 0, + o = i ? null : [], + a = i ? r + 1 : n.length, + s = r < 0 ? a : i ? r : 0; + s < a; + s++ + ) + if ( + ((e = n[s]).selected || s === r) && + (f.optDisabled ? !e.disabled : null === e.getAttribute('disabled')) && + (!e.parentNode.disabled || !B.nodeName(e.parentNode, 'optgroup')) + ) { + if (((e = B(e).val()), i)) return e; + o.push(e); + } + return o; + }, + set: function (t, e) { + for (var n, r, i = t.options, o = B.makeArray(e), a = i.length; a--; ) + ((r = i[a]).selected = -1 < B.inArray(B.valHooks.option.get(r), o)) && + (n = !0); + return n || (t.selectedIndex = -1), o; + }, + }, + }, + }), + B.each(['radio', 'checkbox'], function () { + (B.valHooks[this] = { + set: function (t, e) { + if (B.isArray(e)) return (t.checked = -1 < B.inArray(B(t).val(), e)); + }, + }), + f.checkOn || + (B.valHooks[this].get = function (t) { + return null === t.getAttribute('value') ? 'on' : t.value; + }); + }), + /^(?:focusinfocus|focusoutblur)$/), + T = + (B.extend(B.event, { + trigger: function (t, e, n, r) { + var i, + o, + a, + s, + l, + u, + c = [n || E], + A = d.call(t, 'type') ? t.type : t, + h = d.call(t, 'namespace') ? t.namespace.split('.') : [], + p = (o = n = n || E); + if ( + 3 !== n.nodeType && + 8 !== n.nodeType && + !Ae.test(A + B.event.triggered) && + (-1 < A.indexOf('.') && ((A = (h = A.split('.')).shift()), h.sort()), + (s = A.indexOf(':') < 0 && 'on' + A), + ((t = t[B.expando] + ? t + : new B.Event(A, 'object' == typeof t && t)).isTrigger = r ? 2 : 3), + (t.namespace = h.join('.')), + (t.rnamespace = t.namespace + ? new RegExp('(^|\\.)' + h.join('\\.(?:.*\\.|)') + '(\\.|$)') + : null), + (t.result = void 0), + t.target || (t.target = n), + (e = null == e ? [t] : B.makeArray(e, [t])), + (u = B.event.special[A] || {}), + r || !u.trigger || !1 !== u.trigger.apply(n, e)) + ) { + if (!r && !u.noBubble && !B.isWindow(n)) { + for ( + a = u.delegateType || A, Ae.test(a + A) || (p = p.parentNode); + p; + p = p.parentNode + ) + c.push(p), (o = p); + o === (n.ownerDocument || E) && + c.push(o.defaultView || o.parentWindow || w); + } + for (i = 0; (p = c[i++]) && !t.isPropagationStopped(); ) + (t.type = 1 < i ? a : u.bindType || A), + (l = (m.get(p, 'events') || {})[t.type] && m.get(p, 'handle')) && + l.apply(p, e), + (l = s && p[s]) && + l.apply && + g(p) && + ((t.result = l.apply(p, e)), !1 === t.result && t.preventDefault()); + return ( + (t.type = A), + r || + t.isDefaultPrevented() || + (u._default && !1 !== u._default.apply(c.pop(), e)) || + !g(n) || + (s && + B.isFunction(n[A]) && + !B.isWindow(n) && + ((o = n[s]) && (n[s] = null), + n[(B.event.triggered = A)](), + (B.event.triggered = void 0), + o && (n[s] = o))), + t.result + ); + } + }, + simulate: function (t, e, n) { + n = B.extend(new B.Event(), n, { type: t, isSimulated: !0 }); + B.event.trigger(n, null, e); + }, + }), + B.fn.extend({ + trigger: function (t, e) { + return this.each(function () { + B.event.trigger(t, e, this); + }); + }, + triggerHandler: function (t, e) { + var n = this[0]; + if (n) return B.event.trigger(t, e, n, !0); + }, + }), + B.each( + 'blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu'.split( + ' ', + ), + function (t, n) { + B.fn[n] = function (t, e) { + return 0 < arguments.length ? this.on(n, null, t, e) : this.trigger(n); + }; + }, + ), + B.fn.extend({ + hover: function (t, e) { + return this.mouseenter(t).mouseleave(e || t); + }, + }), + (f.focusin = 'onfocusin' in w), + f.focusin || + B.each({ focus: 'focusin', blur: 'focusout' }, function (n, r) { + function i(t) { + B.event.simulate(r, t.target, B.event.fix(t)); + } + B.event.special[r] = { + setup: function () { + var t = this.ownerDocument || this, + e = m.access(t, r); + e || t.addEventListener(n, i, !0), m.access(t, r, (e || 0) + 1); + }, + teardown: function () { + var t = this.ownerDocument || this, + e = m.access(t, r) - 1; + e ? m.access(t, r, e) : (t.removeEventListener(n, i, !0), m.remove(t, r)); + }, + }; + }), + w.location), + he = B.now(), + pe = /\?/, + de = + ((B.parseJSON = function (t) { + return JSON.parse(t + ''); + }), + (B.parseXML = function (t) { + var e; + if (!t || 'string' != typeof t) return null; + try { + e = new w.DOMParser().parseFromString(t, 'text/xml'); + } catch (t) { + e = void 0; + } + return ( + (e && !e.getElementsByTagName('parsererror').length) || + B.error('Invalid XML: ' + t), + e + ); + }), + /#.*$/), + fe = /([?&])_=[^&]*/, + ge = /^(.*?):[ \t]*([^\r\n]*)$/gm, + me = /^(?:GET|HEAD)$/, + ve = /^\/\//, + be = {}, + ye = {}, + we = '*/'.concat('*'), + Ee = E.createElement('a'); + function Be(o) { + return function (t, e) { + 'string' != typeof t && ((e = t), (t = '*')); + var n, + r = 0, + i = t.toLowerCase().match(C) || []; + if (B.isFunction(e)) + for (; (n = i[r++]); ) + '+' === n[0] + ? ((n = n.slice(1) || '*'), (o[n] = o[n] || []).unshift(e)) + : (o[n] = o[n] || []).push(e); + }; + } + function Ce(e, r, i, o) { + var a = {}, + s = e === ye; + function l(t) { + var n; + return ( + (a[t] = !0), + B.each(e[t] || [], function (t, e) { + e = e(r, i, o); + return 'string' != typeof e || s || a[e] + ? s + ? !(n = e) + : void 0 + : (r.dataTypes.unshift(e), l(e), !1); + }), + n + ); + } + return l(r.dataTypes[0]) || (!a['*'] && l('*')); + } + function xe(t, e) { + var n, + r, + i = B.ajaxSettings.flatOptions || {}; + for (n in e) void 0 !== e[n] && ((i[n] ? t : (r = r || {}))[n] = e[n]); + return r && B.extend(!0, t, r), t; + } + (Ee.href = T.href), + B.extend({ + active: 0, + lastModified: {}, + etag: {}, + ajaxSettings: { + url: T.href, + type: 'GET', + isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test( + T.protocol, + ), + global: !0, + processData: !0, + async: !0, + contentType: 'application/x-www-form-urlencoded; charset=UTF-8', + accepts: { + '*': we, + text: 'text/plain', + html: 'text/html', + xml: 'application/xml, text/xml', + json: 'application/json, text/javascript', + }, + contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, + responseFields: { + xml: 'responseXML', + text: 'responseText', + json: 'responseJSON', + }, + converters: { + '* text': String, + 'text html': !0, + 'text json': B.parseJSON, + 'text xml': B.parseXML, + }, + flatOptions: { url: !0, context: !0 }, + }, + ajaxSetup: function (t, e) { + return e ? xe(xe(t, B.ajaxSettings), e) : xe(B.ajaxSettings, t); + }, + ajaxPrefilter: Be(be), + ajaxTransport: Be(ye), + ajax: function (t, e) { + 'object' == typeof t && ((e = t), (t = void 0)); + var l, + u, + c, + n, + A, + h, + r, + p = B.ajaxSetup({}, (e = e || {})), + d = p.context || p, + f = p.context && (d.nodeType || d.jquery) ? B(d) : B.event, + g = B.Deferred(), + m = B.Callbacks('once memory'), + v = p.statusCode || {}, + i = {}, + o = {}, + b = 0, + a = 'canceled', + y = { + readyState: 0, + getResponseHeader: function (t) { + var e; + if (2 === b) { + if (!n) for (n = {}; (e = ge.exec(c)); ) n[e[1].toLowerCase()] = e[2]; + e = n[t.toLowerCase()]; + } + return null == e ? null : e; + }, + getAllResponseHeaders: function () { + return 2 === b ? c : null; + }, + setRequestHeader: function (t, e) { + var n = t.toLowerCase(); + return b || ((t = o[n] = o[n] || t), (i[t] = e)), this; + }, + overrideMimeType: function (t) { + return b || (p.mimeType = t), this; + }, + statusCode: function (t) { + if (t) + if (b < 2) for (var e in t) v[e] = [v[e], t[e]]; + else y.always(t[y.status]); + return this; + }, + abort: function (t) { + t = t || a; + return l && l.abort(t), s(0, t), this; + }, + }; + if ( + ((g.promise(y).complete = m.add), + (y.success = y.done), + (y.error = y.fail), + (p.url = ((t || p.url || T.href) + '') + .replace(de, '') + .replace(ve, T.protocol + '//')), + (p.type = e.method || e.type || p.method || p.type), + (p.dataTypes = B.trim(p.dataType || '*') + .toLowerCase() + .match(C) || ['']), + null == p.crossDomain) + ) { + t = E.createElement('a'); + try { + (t.href = p.url), + (t.href = t.href), + (p.crossDomain = + Ee.protocol + '//' + Ee.host != t.protocol + '//' + t.host); + } catch (t) { + p.crossDomain = !0; + } + } + if ( + (p.data && + p.processData && + 'string' != typeof p.data && + (p.data = B.param(p.data, p.traditional)), + Ce(be, p, e, y), + 2 !== b) + ) { + for (r in ((h = B.event && p.global) && + 0 == B.active++ && + B.event.trigger('ajaxStart'), + (p.type = p.type.toUpperCase()), + (p.hasContent = !me.test(p.type)), + (u = p.url), + p.hasContent || + (p.data && + ((u = p.url += (pe.test(u) ? '&' : '?') + p.data), delete p.data), + !1 === p.cache && + (p.url = fe.test(u) + ? u.replace(fe, '$1_=' + he++) + : u + (pe.test(u) ? '&' : '?') + '_=' + he++)), + p.ifModified && + (B.lastModified[u] && + y.setRequestHeader('If-Modified-Since', B.lastModified[u]), + B.etag[u] && y.setRequestHeader('If-None-Match', B.etag[u])), + ((p.data && p.hasContent && !1 !== p.contentType) || e.contentType) && + y.setRequestHeader('Content-Type', p.contentType), + y.setRequestHeader( + 'Accept', + p.dataTypes[0] && p.accepts[p.dataTypes[0]] + ? p.accepts[p.dataTypes[0]] + + ('*' !== p.dataTypes[0] ? ', ' + we + '; q=0.01' : '') + : p.accepts['*'], + ), + p.headers)) + y.setRequestHeader(r, p.headers[r]); + if (p.beforeSend && (!1 === p.beforeSend.call(d, y, p) || 2 === b)) + return y.abort(); + for (r in ((a = 'abort'), { success: 1, error: 1, complete: 1 })) y[r](p[r]); + if ((l = Ce(ye, p, e, y))) { + if (((y.readyState = 1), h && f.trigger('ajaxSend', [y, p]), 2 === b)) + return y; + p.async && + 0 < p.timeout && + (A = w.setTimeout(function () { + y.abort('timeout'); + }, p.timeout)); + try { + (b = 1), l.send(i, s); + } catch (t) { + if (!(b < 2)) throw t; + s(-1, t); + } + } else s(-1, 'No Transport'); + } + return y; + function s(t, e, n, r) { + var i, + o, + a, + s = e; + 2 !== b && + ((b = 2), + A && w.clearTimeout(A), + (l = void 0), + (c = r || ''), + (y.readyState = 0 < t ? 4 : 0), + (r = (200 <= t && t < 300) || 304 === t), + n && + (a = (function (t, e, n) { + for (var r, i, o, a, s = t.contents, l = t.dataTypes; '*' === l[0]; ) + l.shift(), + void 0 === r && + (r = t.mimeType || e.getResponseHeader('Content-Type')); + if (r) + for (i in s) + if (s[i] && s[i].test(r)) { + l.unshift(i); + break; + } + if (l[0] in n) o = l[0]; + else { + for (i in n) { + if (!l[0] || t.converters[i + ' ' + l[0]]) { + o = i; + break; + } + a = a || i; + } + o = o || a; + } + if (o) return o !== l[0] && l.unshift(o), n[o]; + })(p, y, n)), + (a = (function (t, e, n, r) { + var i, + o, + a, + s, + l, + u = {}, + c = t.dataTypes.slice(); + if (c[1]) for (a in t.converters) u[a.toLowerCase()] = t.converters[a]; + for (o = c.shift(); o; ) + if ( + (t.responseFields[o] && (n[t.responseFields[o]] = e), + !l && r && t.dataFilter && (e = t.dataFilter(e, t.dataType)), + (l = o), + (o = c.shift())) + ) + if ('*' === o) o = l; + else if ('*' !== l && l !== o) { + if (!(a = u[l + ' ' + o] || u['* ' + o])) + for (i in u) + if ( + (s = i.split(' '))[1] === o && + (a = u[l + ' ' + s[0]] || u['* ' + s[0]]) + ) { + !0 === a + ? (a = u[i]) + : !0 !== u[i] && ((o = s[0]), c.unshift(s[1])); + break; + } + if (!0 !== a) + if (a && t.throws) e = a(e); + else + try { + e = a(e); + } catch (t) { + return { + state: 'parsererror', + error: a ? t : 'No conversion from ' + l + ' to ' + o, + }; + } + } + return { state: 'success', data: e }; + })(p, a, y, r)), + r + ? (p.ifModified && + ((n = y.getResponseHeader('Last-Modified')) && + (B.lastModified[u] = n), + (n = y.getResponseHeader('etag')) && (B.etag[u] = n)), + 204 === t || 'HEAD' === p.type + ? (s = 'nocontent') + : 304 === t + ? (s = 'notmodified') + : ((s = a.state), (i = a.data), (r = !(o = a.error)))) + : ((o = s), (!t && s) || ((s = 'error'), t < 0 && (t = 0))), + (y.status = t), + (y.statusText = (e || s) + ''), + r ? g.resolveWith(d, [i, s, y]) : g.rejectWith(d, [y, s, o]), + y.statusCode(v), + (v = void 0), + h && f.trigger(r ? 'ajaxSuccess' : 'ajaxError', [y, p, r ? i : o]), + m.fireWith(d, [y, s]), + h && + (f.trigger('ajaxComplete', [y, p]), + --B.active || B.event.trigger('ajaxStop'))); + } + }, + getJSON: function (t, e, n) { + return B.get(t, e, n, 'json'); + }, + getScript: function (t, e) { + return B.get(t, void 0, e, 'script'); + }, + }), + B.each(['get', 'post'], function (t, i) { + B[i] = function (t, e, n, r) { + return ( + B.isFunction(e) && ((r = r || n), (n = e), (e = void 0)), + B.ajax( + B.extend( + { url: t, type: i, dataType: r, data: e, success: n }, + B.isPlainObject(t) && t, + ), + ) + ); + }; + }), + (B._evalUrl = function (t) { + return B.ajax({ + url: t, + type: 'GET', + dataType: 'script', + async: !1, + global: !1, + throws: !0, + }); + }), + B.fn.extend({ + wrapAll: function (e) { + var t; + return B.isFunction(e) + ? this.each(function (t) { + B(this).wrapAll(e.call(this, t)); + }) + : (this[0] && + ((t = B(e, this[0].ownerDocument).eq(0).clone(!0)), + this[0].parentNode && t.insertBefore(this[0]), + t + .map(function () { + for (var t = this; t.firstElementChild; ) t = t.firstElementChild; + return t; + }) + .append(this)), + this); + }, + wrapInner: function (n) { + return B.isFunction(n) + ? this.each(function (t) { + B(this).wrapInner(n.call(this, t)); + }) + : this.each(function () { + var t = B(this), + e = t.contents(); + e.length ? e.wrapAll(n) : t.append(n); + }); + }, + wrap: function (e) { + var n = B.isFunction(e); + return this.each(function (t) { + B(this).wrapAll(n ? e.call(this, t) : e); + }); + }, + unwrap: function () { + return this.parent() + .each(function () { + B.nodeName(this, 'body') || B(this).replaceWith(this.childNodes); + }) + .end(); + }, + }), + (B.expr.filters.hidden = function (t) { + return !B.expr.filters.visible(t); + }), + (B.expr.filters.visible = function (t) { + return 0 < t.offsetWidth || 0 < t.offsetHeight || 0 < t.getClientRects().length; + }); + var Ie = /%20/g, + Me = /\[\]$/, + De = /\r?\n/g, + Se = /^(?:submit|button|image|reset|file)$/i, + ke = /^(?:input|select|textarea|keygen)/i; + (B.param = function (t, e) { + function n(t, e) { + (e = B.isFunction(e) ? e() : null == e ? '' : e), + (i[i.length] = encodeURIComponent(t) + '=' + encodeURIComponent(e)); + } + var r, + i = []; + if ( + (void 0 === e && (e = B.ajaxSettings && B.ajaxSettings.traditional), + B.isArray(t) || (t.jquery && !B.isPlainObject(t))) + ) + B.each(t, function () { + n(this.name, this.value); + }); + else + for (r in t) + !(function n(r, t, i, o) { + if (B.isArray(t)) + B.each(t, function (t, e) { + i || Me.test(r) + ? o(r, e) + : n( + r + '[' + ('object' == typeof e && null != e ? t : '') + ']', + e, + i, + o, + ); + }); + else if (i || 'object' !== B.type(t)) o(r, t); + else for (var e in t) n(r + '[' + e + ']', t[e], i, o); + })(r, t[r], e, n); + return i.join('&').replace(Ie, '+'); + }), + B.fn.extend({ + serialize: function () { + return B.param(this.serializeArray()); + }, + serializeArray: function () { + return this.map(function () { + var t = B.prop(this, 'elements'); + return t ? B.makeArray(t) : this; + }) + .filter(function () { + var t = this.type; + return ( + this.name && + !B(this).is(':disabled') && + ke.test(this.nodeName) && + !Se.test(t) && + (this.checked || !lt.test(t)) + ); + }) + .map(function (t, e) { + var n = B(this).val(); + return null == n + ? null + : B.isArray(n) + ? B.map(n, function (t) { + return { name: e.name, value: t.replace(De, '\r\n') }; + }) + : { name: e.name, value: n.replace(De, '\r\n') }; + }) + .get(); + }, + }), + (B.ajaxSettings.xhr = function () { + try { + return new w.XMLHttpRequest(); + } catch (t) {} + }); + var Fe = { 0: 200, 1223: 204 }, + R = B.ajaxSettings.xhr(), + Qe = + ((f.cors = !!R && 'withCredentials' in R), + (f.ajax = R = !!R), + B.ajaxTransport(function (i) { + var o, a; + if (f.cors || (R && !i.crossDomain)) + return { + send: function (t, e) { + var n, + r = i.xhr(); + if ((r.open(i.type, i.url, i.async, i.username, i.password), i.xhrFields)) + for (n in i.xhrFields) r[n] = i.xhrFields[n]; + for (n in (i.mimeType && + r.overrideMimeType && + r.overrideMimeType(i.mimeType), + i.crossDomain || + t['X-Requested-With'] || + (t['X-Requested-With'] = 'XMLHttpRequest'), + t)) + r.setRequestHeader(n, t[n]); + (o = function (t) { + return function () { + o && + ((o = + a = + r.onload = + r.onerror = + r.onabort = + r.onreadystatechange = + null), + 'abort' === t + ? r.abort() + : 'error' === t + ? 'number' != typeof r.status + ? e(0, 'error') + : e(r.status, r.statusText) + : e( + Fe[r.status] || r.status, + r.statusText, + 'text' !== (r.responseType || 'text') || + 'string' != typeof r.responseText + ? { binary: r.response } + : { text: r.responseText }, + r.getAllResponseHeaders(), + )); + }; + }), + (r.onload = o()), + (a = r.onerror = o('error')), + void 0 !== r.onabort + ? (r.onabort = a) + : (r.onreadystatechange = function () { + 4 === r.readyState && + w.setTimeout(function () { + o && a(); + }); + }), + (o = o('abort')); + try { + r.send((i.hasContent && i.data) || null); + } catch (t) { + if (o) throw t; + } + }, + abort: function () { + o && o(); + }, + }; + }), + B.ajaxSetup({ + accepts: { + script: + 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript', + }, + contents: { script: /\b(?:java|ecma)script\b/ }, + converters: { + 'text script': function (t) { + return B.globalEval(t), t; + }, + }, + }), + B.ajaxPrefilter('script', function (t) { + void 0 === t.cache && (t.cache = !1), t.crossDomain && (t.type = 'GET'); + }), + B.ajaxTransport('script', function (n) { + var r, i; + if (n.crossDomain) + return { + send: function (t, e) { + (r = B('<script>') + .prop({ charset: n.scriptCharset, src: n.url }) + .on( + 'load error', + (i = function (t) { + r.remove(), + (i = null), + t && e('error' === t.type ? 404 : 200, t.type); + }), + )), + E.head.appendChild(r[0]); + }, + abort: function () { + i && i(); + }, + }; + }), + []), + _e = /(=)\?(?=&|$)|\?\?/, + Te = + (B.ajaxSetup({ + jsonp: 'callback', + jsonpCallback: function () { + var t = Qe.pop() || B.expando + '_' + he++; + return (this[t] = !0), t; + }, + }), + B.ajaxPrefilter('json jsonp', function (t, e, n) { + var r, + i, + o, + a = + !1 !== t.jsonp && + (_e.test(t.url) + ? 'url' + : 'string' == typeof t.data && + 0 === + (t.contentType || '').indexOf('application/x-www-form-urlencoded') && + _e.test(t.data) && + 'data'); + if (a || 'jsonp' === t.dataTypes[0]) + return ( + (r = t.jsonpCallback = + B.isFunction(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback), + a + ? (t[a] = t[a].replace(_e, '$1' + r)) + : !1 !== t.jsonp && + (t.url += (pe.test(t.url) ? '&' : '?') + t.jsonp + '=' + r), + (t.converters['script json'] = function () { + return o || B.error(r + ' was not called'), o[0]; + }), + (t.dataTypes[0] = 'json'), + (i = w[r]), + (w[r] = function () { + o = arguments; + }), + n.always(function () { + void 0 === i ? B(w).removeProp(r) : (w[r] = i), + t[r] && ((t.jsonpCallback = e.jsonpCallback), Qe.push(r)), + o && B.isFunction(i) && i(o[0]), + (o = i = void 0); + }), + 'script' + ); + }), + (B.parseHTML = function (t, e, n) { + if (!t || 'string' != typeof t) return null; + 'boolean' == typeof e && ((n = e), (e = !1)), (e = e || E); + var r = W.exec(t), + n = !n && []; + return r + ? [e.createElement(r[1])] + : ((r = pt([t], e, n)), + n && n.length && B(n).remove(), + B.merge([], r.childNodes)); + }), + B.fn.load); + function Re(t) { + return B.isWindow(t) ? t : 9 === t.nodeType && t.defaultView; + } + (B.fn.load = function (t, e, n) { + if ('string' != typeof t && Te) return Te.apply(this, arguments); + var r, + i, + o, + a = this, + s = t.indexOf(' '); + return ( + -1 < s && ((r = B.trim(t.slice(s))), (t = t.slice(0, s))), + B.isFunction(e) + ? ((n = e), (e = void 0)) + : e && 'object' == typeof e && (i = 'POST'), + 0 < a.length && + B.ajax({ url: t, type: i || 'GET', dataType: 'html', data: e }) + .done(function (t) { + (o = arguments), a.html(r ? B('<div>').append(B.parseHTML(t)).find(r) : t); + }) + .always( + n && + function (t, e) { + a.each(function () { + n.apply(this, o || [t.responseText, e, t]); + }); + }, + ), + this + ); + }), + B.each( + ['ajaxStart', 'ajaxStop', 'ajaxComplete', 'ajaxError', 'ajaxSuccess', 'ajaxSend'], + function (t, e) { + B.fn[e] = function (t) { + return this.on(e, t); + }; + }, + ), + (B.expr.filters.animated = function (e) { + return B.grep(B.timers, function (t) { + return e === t.elem; + }).length; + }), + (B.offset = { + setOffset: function (t, e, n) { + var r, + i, + o, + a, + s = B.css(t, 'position'), + l = B(t), + u = {}; + 'static' === s && (t.style.position = 'relative'), + (o = l.offset()), + (r = B.css(t, 'top')), + (a = B.css(t, 'left')), + (s = + ('absolute' === s || 'fixed' === s) && -1 < (r + a).indexOf('auto') + ? ((i = (s = l.position()).top), s.left) + : ((i = parseFloat(r) || 0), parseFloat(a) || 0)), + null != (e = B.isFunction(e) ? e.call(t, n, B.extend({}, o)) : e).top && + (u.top = e.top - o.top + i), + null != e.left && (u.left = e.left - o.left + s), + 'using' in e ? e.using.call(t, u) : l.css(u); + }, + }), + B.fn.extend({ + offset: function (e) { + if (arguments.length) + return void 0 === e + ? this + : this.each(function (t) { + B.offset.setOffset(this, e, t); + }); + var t, + n = this[0], + r = { top: 0, left: 0 }, + i = n && n.ownerDocument; + return i + ? ((t = i.documentElement), + B.contains(t, n) + ? ((r = n.getBoundingClientRect()), + (n = Re(i)), + { + top: r.top + n.pageYOffset - t.clientTop, + left: r.left + n.pageXOffset - t.clientLeft, + }) + : r) + : void 0; + }, + position: function () { + var t, e, n, r; + if (this[0]) + return ( + (n = this[0]), + (r = { top: 0, left: 0 }), + 'fixed' === B.css(n, 'position') + ? (e = n.getBoundingClientRect()) + : ((t = this.offsetParent()), + (e = this.offset()), + ((r = B.nodeName(t[0], 'html') ? r : t.offset()).top += B.css( + t[0], + 'borderTopWidth', + !0, + )), + (r.left += B.css(t[0], 'borderLeftWidth', !0))), + { + top: e.top - r.top - B.css(n, 'marginTop', !0), + left: e.left - r.left - B.css(n, 'marginLeft', !0), + } + ); + }, + offsetParent: function () { + return this.map(function () { + for (var t = this.offsetParent; t && 'static' === B.css(t, 'position'); ) + t = t.offsetParent; + return t || I; + }); + }, + }), + B.each({ scrollLeft: 'pageXOffset', scrollTop: 'pageYOffset' }, function (e, i) { + var o = 'pageYOffset' === i; + B.fn[e] = function (t) { + return A( + this, + function (t, e, n) { + var r = Re(t); + if (void 0 === n) return r ? r[i] : t[e]; + r ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) : (t[e] = n); + }, + e, + t, + arguments.length, + ); + }; + }), + B.each(['top', 'left'], function (t, n) { + B.cssHooks[n] = Gt(f.pixelPosition, function (t, e) { + if (e) return (e = M(t, n)), Yt.test(e) ? B(t).position()[n] + 'px' : e; + }); + }), + B.each({ Height: 'height', Width: 'width' }, function (o, a) { + B.each({ padding: 'inner' + o, content: a, '': 'outer' + o }, function (r, t) { + B.fn[t] = function (t, e) { + var n = arguments.length && (r || 'boolean' != typeof t), + i = r || (!0 === t || !0 === e ? 'margin' : 'border'); + return A( + this, + function (t, e, n) { + var r; + return B.isWindow(t) + ? t.document.documentElement['client' + o] + : 9 === t.nodeType + ? ((r = t.documentElement), + Math.max( + t.body['scroll' + o], + r['scroll' + o], + t.body['offset' + o], + r['offset' + o], + r['client' + o], + )) + : void 0 === n + ? B.css(t, e, i) + : B.style(t, e, n, i); + }, + a, + n ? t : void 0, + n, + null, + ); + }; + }); + }), + B.fn.extend({ + bind: function (t, e, n) { + return this.on(t, null, e, n); + }, + unbind: function (t, e) { + return this.off(t, null, e); + }, + delegate: function (t, e, n, r) { + return this.on(e, t, n, r); + }, + undelegate: function (t, e, n) { + return 1 === arguments.length ? this.off(t, '**') : this.off(e, t || '**', n); + }, + size: function () { + return this.length; + }, + }), + (B.fn.andSelf = B.fn.addBack); + var Ue = w.jQuery, + Ne = w.$; + return ( + (B.noConflict = function (t) { + return w.$ === B && (w.$ = Ne), t && w.jQuery === B && (w.jQuery = Ue), B; + }), + U || (w.jQuery = w.$ = B), + B + ); + }), + 'object' == typeof e && 'object' == typeof e.exports + ? (e.exports = r.document + ? i(r, !0) + : function (t) { + if (t.document) return i(t); + throw new Error('jQuery requires a window with a document'); + }) + : i(r); + }, + {}, + ], + 2: [ + function (t, e, n) { + 'use strict'; + var u = t('d3'), + c = t('./FeatureFactory'), + A = t('./NonOverlappingLayout'), + h = t('./ViewerHelper'), + p = t('./Constants'); + e.exports = function (n, t, e, r) { + function i(t) { + t.each(function (t) { + (o = u.select(this)), + (o = o.selectAll('.up_pftv_feature').data(t)) + .enter() + .append('path') + .attr('name', function (t, e) { + return ( + (t.internalId = void 0 === t.internalId ? n + '_' + e : t.internalId), + t.internalId + ); + }) + .attr('class', function (t) { + return 'up_pftv_feature up_pftv_' + t.type.toLowerCase(); + }) + .filter(function (t) { + return t.color || p.getTrackInfo(t.type).color; + }) + .style('fill', function (t) { + return ( + t.color || + (p.getTrackInfo(t.type).color ? p.getTrackInfo(t.type).color : 'black') + ); + }) + .style('stroke', function (t) { + return ( + t.color || + (p.getTrackInfo(t.type).color ? p.getTrackInfo(t.type).color : 'black') + ); + }), + o + .attr('d', function (t) { + return c.getFeature( + t.type, + r.xScale(2) - r.xScale(1), + a.layout.getFeatureHeight(), + t.end ? t.end - t.begin + 1 : 1, + ); + }) + .attr('transform', function (t) { + return 'translate(' + r.xScale(t.begin) + ',' + a.layout.getYPos(t) + ')'; + }), + h.addEventsClassAndTitle(n, o, r, e), + o.exit().remove(); + }); + } + var o, + a = this, + s = ((a.height = 40), r.width), + l = + ((a.layout = new A(t, a.height)), + a.layout.calculate(), + h + .createSVG(e, s, a.height, r) + .append('g') + .classed('up_pftv_category-viewer-group', !0) + .datum(t) + .call(i)); + return ( + (this.update = function () { + l.call(i), h.updateHighlight(r); + }), + (this.updateData = function (t) { + (this.layout = new A(t, this.height)), + this.layout.calculate(), + l.datum(t), + this.update(); + }), + this + ); + }; + }, + { + './Constants': 5, + './FeatureFactory': 10, + './NonOverlappingLayout': 13, + './ViewerHelper': 20, + d3: 33, + }, + ], + 3: [ + function (t, e, n) { + 'use strict'; + function o(t, e, n, r, i) { + var o = this, + t = + ((o.name = t), + (o.tracks = []), + (o.data = e), + (o.viewerType = n.visualizationType), + (o.fv = r), + (o.categoryViewer = void 0), + (o.categoryContainer = i.append('div').attr('class', 'up_pftv_category')), + o.categoryContainer + .append('div') + .style('display', 'table-caption') + .append('div') + .style('display', 'table') + .style('width', '100%')); + (o.header = t + .append('a') + .attr('class', 'up_pftv_category-name up_pftv_arrow-right') + .attr('title', o.name) + .text(n.label) + .on('click', function () { + o.toggle(), o.propagateSelection(); + })), + (o.viewerContainer = t.append('div').attr('class', 'up_pftv_category-viewer')), + (o.tracksContainer = o.categoryContainer + .append('div') + .style('display', 'table-row') + .append('div') + .attr('class', 'up_pftv_category-tracks') + .style('display', 'none')); + } + function r(t, i, e) { + l.each(t[e].variants, function (e) { + var t, + n, + r = l.find(i.variants, function (t) { + return ( + t.begin === e.begin && + t.end === e.end && + t.wildType === e.wildType && + t.alternativeSequence === e.alternativeSequence + ); + }); + r + ? ((t = e), + (r = r).sourceType || t.sourceType + ? r.sourceType + ? t.sourceType || (n = r.sourceType) + : (n = t.sourceType) + : (n = void 0), + s.extend(!0, r, t), + (r.sourceType = n)) + : i.variants.push(e); + }); + } + function i(t) { + return new c(t.name, t.data, t.viewerContainer, t.fv); + } + var a = t('d3'), + s = t('jquery'), + l = t('underscore'), + u = t('./TrackFactory'), + c = (t('./FeatureFactory'), t('./NonOverlappingLayout'), t('./BasicViewer')), + A = (t('./ViewerHelper'), t('./Constants')), + h = (t('./Evidence'), t('./VariantCategoryViewer')); + (o.prototype.reset = function () { + l.each(this.tracks, function (t) { + t.reset && t.reset(); + }); + }), + (o.prototype.repaint = function (n) { + var t = this, + e = + (t.viewerType === A.getVisualizationTypes().basic + ? (t.data = l.union(t.data, n)) + : l.each(t.data, function (t, e) { + 0 !== n[e].variants.length && 0 !== t.variants.length + ? r(n, t, e) + : 0 !== n[e].variants.length && (t.variants = n[e].variants); + }), + a.select('.up_pftv_category_' + t.name)), + e = + (e.select('.up_pftv_category-viewer-group').selectAll('*').remove(), + t.categoryViewer.updateData(t.data), + e.select('.up_pftv_category-tracks')); + e.selectAll('*').remove(), e.html(''), (t.tracks = []), t.buildTracks(); + }), + (o.prototype.addTrack = function (t) { + this.tracks.push(t); + }), + (o.prototype.buildTracks = function () { + var n = this, + r = l.groupBy(n.data, function (t) { + if (t.type) return t.type; + }), + i = this; + l.each(r, function (t, e) { + i.addTrack(u.createTrack(r[e], n.viewerType, n)); + }); + }), + (o.prototype.toggle = function () { + var t = this; + 'none' === t.tracksContainer.style('display') + ? (t.tracksContainer.style('display', 'block'), + t.viewerContainer + .select('.up_pftv_category-viewer-group') + .style('display', 'none'), + t.header.attr('class', 'up_pftv_category-name up_pftv_arrow-down')) + : (t.tracksContainer.style('display', 'none'), + t.viewerContainer + .select('.up_pftv_category-viewer-group') + .style('display', 'block'), + t.header.attr('class', 'up_pftv_category-name up_pftv_arrow-right')); + }), + (o.prototype.propagateSelection = function () { + this.fv.selectedFeature && + this.fv.globalContainer + .selectAll('svg path[name=' + this.fv.selectedFeature.internalId + ']') + .classed('up_pftv_activeFeature', !0); + }), + (o.prototype.setDisabled = function () { + this.categoryContainer.attr('class', 'up_pftv_category up_pftv_category-disabled'), + this.viewerContainer.style('display', 'none'), + this.header.on('click', function () {}); + }), + (o.prototype.update = function () { + this.categoryViewer.update(), + l.each(this.tracks, function (t) { + t.update(); + }); + }); + (o.basic = function () { + this.categoryViewer = new i(this); + }), + (o.variant = function () { + this.categoryViewer = new h(this); + }), + (e.exports = { + createCategory: function (t, e, n, r, i) { + return ( + 'function' != typeof o[n.visualizationType] && + console.log( + 'WARNING: Category viewer type ' + n.visualizationType + " doesn't exist", + ), + (o[n.visualizationType].prototype = new o(t, e, n, r, i)), + (t = new o[n.visualizationType]()), + 0 < e.length ? t.buildTracks() : t.setDisabled(), + t + ); + }, + }); + }, + { + './BasicViewer': 2, + './Constants': 5, + './Evidence': 9, + './FeatureFactory': 10, + './NonOverlappingLayout': 13, + './TrackFactory': 15, + './VariantCategoryViewer': 16, + './ViewerHelper': 20, + d3: 33, + jquery: 1, + underscore: 70, + }, + ], + 4: [ + function (t, e, n) { + 'use strict'; + function r(t, e) { + var r, + i, + o, + n = e + .append('div') + .attr('class', 'up_pftv_popupDialog-container') + .style('left', a.mouse(e.node())[0] + 10 + 'px') + .style('top', a.mouse(e.node())[1] + 5 + 'px') + .on('mousedown', function () { + t.overCatFilterDialog = !0; + }) + .on('mouseup', function () { + t.overCatFilterDialog = !1; + }); + return ( + n + .append('span') + .text('x') + .attr('class', 'up_pftv_tooltip-close') + .on('click', function () { + (t.overCatFilterDialog = !1), + n.transition(20).style('opacity', 0).style('display', 'none'); + }), + (r = t), + (i = n), + (o = 0), + s.each(l.getCategoryNamesInOrder(), function (t) { + var e = t.name, + n = s.find(r.data, function (t) { + return t[0] === e; + }); + n && + 0 !== n[1].length && + ((n = i.append('div')) + .append('input') + .attr('type', 'checkbox') + .property('checked', !0) + .attr('index', o) + .on('click', function () { + var t = a.select(this), + e = +t.attr('index'), + n = r.globalContainer.selectAll('.up_pftv_category'); + t.property('checked') + ? (a.select(n[0][e]).style('display', 'block'), + i.selectAll('input:disabled').attr('disabled', null)) + : (a.select(n[0][e]).style('display', 'none'), + 1 === (t = i.selectAll('input:checked'))[0].length && + t.attr('disabled', !0)); + }), + n.append('label').text(t.label), + o++); + }), + n + ); + } + var a = t('d3'), + s = t('underscore'), + l = (t('./ViewerHelper'), t('./Constants')); + e.exports = { + displayDialog: function (t, e) { + t.categoryFilterDialog || (t.categoryFilterDialog = r(t, e)), + t.categoryFilterDialog.transition(20).style('opacity', 1).style('display', 'block'); + }, + closeDialog: function (t) { + t.categoryFilterDialog && + t.categoryFilterDialog.transition(20).style('opacity', 0).style('display', 'none'); + }, + }; + }, + { './Constants': 5, './ViewerHelper': 20, d3: 33, underscore: 70 }, + ], + 5: [ + function (t, e, n) { + 'use strict'; + var r, + i = t('underscore'), + o = t('./config.json'), + a = { basic: 'basic', variant: 'variant' }, + s = 'uniprot', + l = [ + { + url: 'https://www.ebi.ac.uk/proteins/api/features/', + source: s, + category: 'FEATURES', + }, + { + url: 'https://www.ebi.ac.uk/proteins/api/proteomics/', + source: s, + category: 'PROTEOMICS', + }, + { + url: 'https://www.ebi.ac.uk/proteins/api/variation/', + source: s, + category: 'VARIATION', + }, + { + url: 'https://www.ebi.ac.uk/proteins/api/antigen/', + source: s, + category: 'ANTIGEN', + }, + ], + u = l.slice(0), + c = o.categories.slice(0), + A = o.trackNames, + h = [ + { text: 'JSON', type: 'json', all: !0 }, + { text: 'XML', type: 'xml', all: !1 }, + { text: 'GFF', type: 'gff', all: !1 }, + ], + p = [], + d = { + getBlastURL: function () { + return 'http://www.uniprot.org/blast/?about='; + }, + getNoBlastTypes: function () { + return ['helix', 'strand', 'turn', 'disulfid', 'crosslnk', 'variant']; + }, + getVisualizationTypes: function () { + return a; + }, + getDownloadFormats: function () { + return h; + }, + getDataSources: function () { + return u; + }, + getUniProtDataSources: function () { + return l; + }, + getExternalDataSource: function () { + return r; + }, + getUniProtSource: function () { + return s; + }, + addSource: function (t) { + u.push(t), (r = t); + }, + initSources: function () { + (u = l.slice(0)), (c = o.categories.slice(0)), (p = []), (r = void 0); + }, + addConsequenceType: function (t) { + p.push(t); + }, + getConsequenceTypes: function () { + return i.uniq(p); + }, + clearDataSources: function () { + u = []; + }, + getCategoryNamesInOrder: function () { + return c; + }, + setCategoryNamesInOrder: function (t) { + c = t; + }, + setOrderForCategoryNames: function (t) { + var e = []; + i.each(t, function (n) { + var r = 0, + t = i.find(c, function (t, e) { + return (r = e), t.name.toUpperCase() === n.toUpperCase(); + }); + t && (e.push(t), c.splice(r, 1)); + }), + (c = e.concat(c)); + }, + convertNameToLabel: function (t) { + t = t.replace(/_/g, ' '); + return (t = t.charAt(0).toUpperCase() + t.slice(1).toLowerCase()); + }, + getCategoryInfo: function (e) { + var t = i.find(c, function (t) { + return t.name === e; + }); + return ( + t || { + name: e, + label: d.convertNameToLabel(e), + visualizationType: d.getVisualizationTypes().basic, + } + ); + }, + addCategories: function (t) { + var n = 0; + i.each(t, function (e) { + var t = i.find(c, function (t) { + return t.name === e.name; + }); + t + ? ((t.label = e.label), (t.visualizationType = e.visualizationType)) + : (c.splice(n, 0, e), n++); + }); + }, + getTrackNames: function () { + return A; + }, + setTrackNames: function (t) { + A = t; + }, + addTrackTypes: function (t) { + i.each(t, function (t, e) { + (e = e.toLowerCase()), (A[e] = t); + }); + }, + getTrackInfo: function (t) { + t = t.toLowerCase(); + return this.getTrackNames()[t] + ? this.getTrackNames()[t] + : { label: d.convertNameToLabel(t), tooltip: '' }; + }, + }; + e.exports = d; + }, + { './config.json': 21, underscore: 70 }, + ], + 6: [ + function (t, e, n) { + 'use strict'; + function u(t) { + return ( + c.each(t, function (t) { + var e; + t.evidences && + ((e = {}), + c.each(t.evidences, function (t) { + e[t.code] ? e[t.code].push(t.source) : (e[t.code] = [t.source]); + }), + (t.evidences = e)); + }), + t + ); + } + function a(t, e) { + var n = {}; + return ( + t && t !== A.getUniProtSource() + ? ((n.begin = e.begin), + delete e.begin, + (n.end = e.end), + delete e.end, + (n.wildType = e.wildType), + delete e.wildType, + (n.alternativeSequence = e.alternativeSequence), + delete e.alternativeSequence, + (n.sourceType = e.sourceType), + delete e.sourceType, + (n.type = e.type), + delete e.type, + (n.externalData = {}), + (n.externalData[t] = e)) + : (n = e), + n + ); + } + var i = t('jquery'), + c = t('underscore'), + A = (t('./Evidence'), t('./Constants')), + h = { + get: function (t) { + return 0 == t.indexOf('data:') + ? i.Deferred().resolve(JSON.parse(decodeURI(t).replace(/[^,]*,/, ''))) + : i.getJSON(t); + }, + post: function (t, e, n, r) { + t = { url: t, data: e }; + return ( + void 0 !== n && (t.contentType = n), + i.post(t).then(function (t) { + return void 0 === r ? i.Deferred().resolve(t) : r(t); + }) + ); + }, + groupFeaturesByCategory: function (t, e, n, r) { + t = u(t); + var i, + o = c.groupBy(t, function (t) { + return t.category; + }), + a = + (n && n !== A.getUniProtSource() && !0 === r + ? ((i = o.VARIATION), delete o.VARIATION) + : delete o.VARIANTS, + []), + s = A.getCategoryNamesInOrder(), + s = c.pluck(s, 'name'), + l = []; + return ( + c.each(o, function (t, e) { + c.contains(s, e) || + l.push({ + name: e, + label: A.convertNameToLabel(e), + visualizationType: A.getVisualizationTypes().basic, + }); + }), + 0 !== l.length && + (A.addCategories(l), + (s = A.getCategoryNamesInOrder()), + (s = c.pluck(s, 'name'))), + c.each(s, function (t) { + o[t] && a.push([t, o[t]]); + }), + i && ((t = h.processVariants(i, e, n, !0)), a.push(t[0])), + a + ); + }, + processProteomics: function (t) { + return ( + (t = u(t)), + [ + [ + 'PROTEOMICS', + c.map(t, function (t) { + return t.unique ? (t.type = 'unique') : (t.type = 'non_unique'), t; + }), + ], + ] + ); + }, + processUngroupedFeatures: function (t) { + return [[(t = u(t))[0].type, t]]; + }, + processVariants: function (t, e, n, r) { + t.forEach(function (e) { + e.predictions && + e.predictions.forEach(function (t) { + 'PolyPhen' == t.predAlgorithmNameType + ? ((e.polyphenPrediction = t.predictionValType), + (e.polyphenScore = t.score)) + : 'SIFT' == t.predAlgorithmNameType && + ((e.siftPrediction = t.predictionValType), (e.siftScore = t.score)); + }), + void 0 === e.alternativeSequence && + ((e.alternativeSequence = '*'), + console.warn( + 'Variant alternative sequence changed to * as no alternative sequence provided by the API', + e, + )); + }), + n && + n !== A.getUniProtSource() && + c.each(t, function (t) { + delete t.category; + }), + r || (t = u(t)); + var i = [], + o = + (i.push({ type: 'VARIANT', normal: 'del', pos: 0, variants: [] }), e.split('')); + return ( + c.each(o, function (t, e) { + i.push({ type: 'VARIANT', normal: o[e], pos: e + 1, variants: [] }); + }), + i.push({ type: 'VARIANT', normal: 'del', pos: o.length + 1, variants: [] }), + c.each(t, function (t) { + (t.begin = +t.begin), + (t.end = t.end ? +t.end : t.begin), + (t.wildType = t.wildType || e.substring(t.begin, t.end + 1)), + (t.sourceType = t.sourceType && t.sourceType.toLowerCase()), + 1 <= t.begin && t.begin <= o.length + ? i[t.begin].variants.push(a(n, t)) + : o.length + 1 === t.begin && i[t.begin - 1].variants.push(a(n, t)), + t.consequence && A.addConsequenceType(t.consequence); + }), + [['VARIATION', i]] + ); + }, + }; + e.exports = h; + }, + { './Constants': 5, './Evidence': 9, jquery: 1, underscore: 70 }, + ], + 7: [ + function (t, e, n) { + 'use strict'; + function l(t, e, n) { + return ( + e.source + '_' + t + (e.category ? '_' + e.category.toLowerCase() : '') + '.' + n + ); + } + var u = t('jquery'), + r = t('underscore'), + c = t('./Constants'), + A = t('jszip'), + h = t('file-saver'); + e.exports = { + get: function (i, o, t) { + var a = new A(), + s = []; + r.each(c.getDataSources(), function () { + var t = u.Deferred(); + s.push(t); + }), + r.each(c.getDataSources(), function (e, t) { + var n = e.source === c.getUniProtSource() ? '' : '.' + o, + r = u + .ajax({ + accepts: { + gff: 'text/x-gff', + json: 'application/json', + xml: 'application/xml', + }, + converters: { + 'text gff': function (t) { + return t; + }, + 'text json': function (t) { + return t; + }, + 'text xml': function (t) { + return t; + }, + }, + dataType: o, + url: e.url + i + n, + }) + .done(function (t) { + -1 !== r.getResponseHeader('Content-type').indexOf(o) + ? a.file(l(i, e, o), t) + : a.file( + l(i, e, o), + 'Unable to retrieve the data in the requiredformat ' + o + '.', + ); + }) + .fail(function (t) { + a.file( + l(i, e, o), + 'Unable to retrieve the data at this time. Please try again later.', + ); + }) + .always(function () { + s[t].resolve(); + }); + }), + u.when.apply(null, s).always(function () { + t + ? a.generateAsync({ type: 'base64' }).then( + function (t) { + window.location = 'data:application/zip;base64,' + t; + }, + function (t) { + console.log('Error: ', t); + }, + ) + : a.generateAsync({ type: 'blob' }).then(function (t) { + h.saveAs(t, 'protVistaData.zip'); + }); + }); + }, + }; + }, + { './Constants': 5, 'file-saver': 36, jquery: 1, jszip: 41, underscore: 70 }, + ], + 8: [ + function (t, e, n) { + 'use strict'; + function r(t, e) { + var n, + r, + i, + o, + a = e + .append('div') + .attr('class', 'up_pftv_popupDialog-container') + .style('left', s.mouse(e.node())[0] + 10 + 'px') + .style('top', s.mouse(e.node())[1] + 5 + 'px') + .on('mousedown', function () { + t.overDownloadDialog = !0; + }) + .on('mouseup', function () { + t.overDownloadDialog = !1; + }); + return ( + a + .append('span') + .text('x') + .attr('class', 'up_pftv_tooltip-close') + .on('click', function () { + (t.overDownloadDialog = !1), + a.transition(20).style('opacity', 0).style('display', 'none'); + }), + (n = t), + (r = a), + (i = + 0 === navigator.vendor.indexOf('Apple') && /\sSafari\//.test(navigator.userAgent)), + (o = !0), + (e = + void 0 === u.getExternalDataSource() + ? u.getDownloadFormats() + : l.filter(u.getDownloadFormats(), function (t) { + return t.all; + })), + l.each(e, function (t) { + var e = r.append('div'); + e + .append('input') + .attr('type', 'radio') + .attr('name', 'upfv_radio_format') + .attr('value', t.type) + .property('checked', o), + e.append('label').text(t.text), + (o = !1); + }), + i && + ((e = r.append('div').classed('up_pftv_message_wrapper', !0)) + .append('span') + .attr('class', 'up_pftv_icon up_pftv_warning'), + e.append('span').text(' Please add the extension .zip to the downloaded file.')), + r + .append('div') + .style('text-align', 'right') + .append('button') + .text('Download') + .on('click', function () { + var t = r.selectAll('input').filter(function () { + return s.select(this).property('checked'); + }); + c.get(n.uniprotacc, t.attr('value'), i); + }), + a + ); + } + var s = t('d3'), + l = t('underscore'), + u = (t('./ViewerHelper'), t('./Constants')), + c = t('./DownloadDataLoader'); + e.exports = { + displayDialog: function (t, e) { + t.downloadDialog || (t.downloadDialog = r(t, e)), + t.downloadDialog.transition(20).style('opacity', 1).style('display', 'block'); + }, + closeDialog: function (t) { + t.downloadDialog && + t.downloadDialog.transition(20).style('opacity', 0).style('display', 'none'); + }, + }; + }, + { + './Constants': 5, + './DownloadDataLoader': 7, + './ViewerHelper': 20, + d3: 33, + underscore: 70, + }, + ], + 9: [ + function (t, e, n) { + 'use strict'; + var r = t('underscore'), + i = { + manual: [ + 'ECO:0000269', + 'ECO:0000303', + 'ECO:0000305', + 'ECO:0000250', + 'ECO:0000255', + 'ECO:0000244', + 'ECO:0000312', + ], + automatic: ['ECO:0000256', 'ECO:0000213', 'ECO:0000313', 'ECO:0000259'], + acronym: { + 'ECO:0000269': 'EXP', + 'ECO:0000303': 'NAS', + 'ECO:0000305': 'IC', + 'ECO:0000250': 'ISS', + 'ECO:0000255': 'ISM', + 'ECO:0000244': 'MIXM', + 'ECO:0000312': 'MI', + 'ECO:0000256': 'AA', + 'ECO:0000213': 'MIXA', + 'ECO:0000313': 'AI', + 'ECO:0000259': 'AA', + }, + text: { + 'ECO:0000269': 'Manual assertion based on experiment', + 'ECO:0000303': 'Manual assertion based on opinion', + 'ECO:0000305': 'Manual assertion inferred by curator', + 'ECO:0000250': 'Manual assertion inferred from sequence similarity', + 'ECO:0000255': 'Manual assertion according to rules', + 'ECO:0000244': + 'Manual assertion inferred from combination of experimental and computational evidence', + 'ECO:0000312': 'Manual assertion inferred from database entries', + 'ECO:0000256': 'Automatic assertion according to rules', + 'ECO:0000259': 'Automatic assertion inferred from signature match', + 'ECO:0000213': + 'Automatic assertion inferred from combination of experimental and computational evidence', + 'ECO:0000313': 'Automatic assertion inferred from database entries', + }, + isLSS: function (t) { + return r.some(t, function (t) { + return r.contains(i.automatic, t.code); + }); + }, + variantSourceType: { uniprot: 'uniprot', lss: 'large_scale_study', mixed: 'mixed' }, + existAssociation: function (t) { + return ( + !!t && + 0 !== t.length && + !!((t[0].moreInfo && 0 !== t[0].moreInfo.length) || t[0].name || t[0].description) + ); + }, + }; + e.exports = i; + }, + { underscore: 70 }, + ], + 10: [ + function (t, e, n) { + 'use strict'; + t('d3'), t('underscore'); + function o() { + return this; + } + function a(t, e) { + return ( + 'M' + + (t + l) + + ',' + + t + + 'L' + + (e / 2 + l) + + ',' + + t + + 'M' + + (-t + l) + + ',' + + t + + 'L' + + (-e / 2 + l) + + ',' + + t + ); + } + function r(t, e, n) { + for (var r = 'M ', i = 0; i < t; i++) + r += + 5 * Math.cos((2 * Math.PI * i) / t) + + l + + ',' + + (5 * Math.sin((2 * Math.PI * i) / t) + 5) + + ' '; + return 1 !== n + ? r + ' ' + (5 * Math.cos(0) + l) + ',' + (5 * Math.sin(0) + 5) + ' ' + a(5, e) + 'Z' + : r + 'Z'; + } + var s = 0, + l = 0, + u = { + chain: 'rectangle', + transit: 'rectangle', + init_met: 'arrow', + propep: 'rectangle', + peptide: 'rectangle', + signal: 'rectangle', + helix: 'rectangle', + strand: 'rectangle', + turn: 'rectangle', + region: 'rectangle', + coiled: 'rectangle', + motif: 'rectangle', + repeat: 'rectangle', + ca_bind: 'rectangle', + dna_bind: 'rectangle', + domain: 'rectangle', + zn_fing: 'rectangle', + np_bind: 'rectangle', + metal: 'diamond', + site: 'chevron', + binding: 'catFace', + act_site: 'circle', + mod_res: 'triangle', + lipid: 'wave', + carbohyd: 'hexagon', + disulfid: 'bridge', + crosslnk: 'bridge', + compbias: 'rectangle', + conflict: 'rectangle', + non_cons: 'doubleBar', + non_ter: 'doubleBar', + unsure: 'rectangle', + non_std: 'pentagon', + mutagen: 'rectangle', + topo_dom: 'rectangle', + transmem: 'rectangle', + intramem: 'rectangle', + var_seq: 'variant', + variant: 'variant', + missense: 'variant', + ms_del: 'variant', + insdel: 'variant', + stop_lost: 'variant', + stop_gained: 'variant', + init_codon: 'variant', + unique: 'rectangle', + non_unique: 'rectangle', + }, + t = { + getFeature: function (t, e, n, r) { + var t = u[t.toLowerCase()], + i = e * r; + return ( + (l = 1 === r ? 0 : i / r / 2), + (s = e / 2), + (o[(t = 'function' != typeof o[t] ? 'rectangle' : t)].prototype = new o()), + o[t](i, n, r) + ); + }, + isContinuous: function (t) { + return 'disulfid' !== (t = t.toLowerCase()) && 'crosslnk' !== t; + }, + }; + (o.rectangle = function (t, e) { + return ( + 'M' + -s + ',0L' + (t - s) + ',0L' + (t - s) + ',' + e + 'L' + -s + ',' + e + 'Z' + ); + }), + (o.bridge = function (t, e, n) { + return 1 !== n + ? 'M' + + -s + + ',' + + e + + 'L' + + -s + + ',0L' + + (t - s) + + ',0L' + + (t - s) + + ',' + + e + + 'L' + + (t - s) + + ',2L' + + -s + + ',2Z' + : 'M' + + -s + + ',' + + e + + 'L' + + -s + + ',' + + e / 2 + + 'L0,' + + e / 2 + + 'L0,0L0,' + + e / 2 + + 'L' + + (t - s) + + ',' + + e / 2 + + 'L' + + (t - s) + + ',' + + e + + 'Z'; + }), + (o.diamond = function (t, e, n) { + var r = 'M' + l + ',0L' + (5 + l) + ',5L' + l + ',10L' + (-5 + l) + ',5'; + return 1 !== n ? r + 'L' + l + ',0Z' + a(5, t) : r + 'Z'; + }), + (o.chevron = function (t, e, n) { + var r = + 'M' + + l + + ',5L' + + (5 + l) + + ',0L' + + (5 + l) + + ',5L' + + l + + ',10L' + + (-5 + l) + + ',5L' + + (-5 + l) + + ',0'; + return 1 !== n ? r + 'L' + l + ',5' + a(5, t) + 'Z' : r + 'Z'; + }), + (o.catFace = function (t, e, n) { + var r = + 'M' + + (-5 + l) + + ',0L' + + (-5 + l) + + ',6L' + + (-2 + l) + + ',10L' + + (2 + l) + + ',10L' + + (5 + l) + + ',6L' + + (5 + l) + + ',0L' + + (2 + l) + + ',4L' + + (-2 + l) + + ',4'; + return 1 !== n ? r + 'M' + (-5 + l) + ',0' + a(5, t) + 'Z' : r + 'Z'; + }), + (o.triangle = function (t, e, n) { + var r = 'M' + l + ',0L' + (5 + l) + ',10L' + (-5 + l) + ',10'; + return 1 !== n ? r + 'L' + l + ',0' + a(5, t) + 'Z' : r + 'Z'; + }), + (o.wave = function (t, e, n) { + var r = 'M' + (-5 + l) + ',5A2.5,5 0 1,1 ' + l + ',5A2.5,5 0 1,0 ' + (5 + l) + ',5'; + return 1 !== n ? r + a(5, t) + 'Z' : r + 'Z'; + }); + (o.hexagon = function (t, e, n) { + return r(6, t, n); + }), + (o.pentagon = function (t, e, n) { + return r(5, t, n); + }), + (o.circle = function (t, e, n) { + var r = Math.sqrt(10 / Math.PI), + r = + 'M' + + l + + ',0A' + + r + + ',' + + r + + ' 0 1,1 ' + + l + + ',10A' + + r + + ',' + + r + + ' 0 1,1 ' + + l + + ',0'; + return 1 !== n ? r + a(5, t) + 'Z' : r + 'Z'; + }), + (o.arrow = function (t, e, n) { + e = + 'M' + + l + + ',0L' + + (-1 + l) + + ',0L' + + (-5 + l) + + ',4L' + + (-1 + l) + + ',' + + e + + 'L' + + l + + ',' + + e + + 'L' + + (4 + l) + + ',4'; + return 1 !== n ? e + 'L' + l + ',0' + a(5, t) + 'Z' : e + 'Z'; + }), + (o.doubleBar = function (t, e, n) { + var r = 'M' + l + ',0L' + (-5 + l) + ',10L' + l + ',10L' + (5 + l) + ',0'; + return 1 !== n ? r + 'L' + l + ',0' + a(5, t) + 'Z' : r + 'Z'; + }), + (o.variant = function () {}), + (e.exports = t); + }, + { d3: 33, underscore: 70 }, + ], + 11: [ + function (t, e, n) { + function i(t) { + t.xScale.domain([1, t.maxZoomSize]), + m.centerToHighlightedSelection(t), + x(t), + C(t), + B(t), + I(t, 'up_pftv_icon-zoom-in', 'up_pftv_icon-zoom-out', 'Zoom out to overview'); + } + function o(t) { + t.xScale.domain([1, t.maxPos]), + M(t), + I(t, 'up_pftv_icon-zoom-out', 'up_pftv_icon-zoom-in', 'Zoom in to sequence view'); + } + function c(t) { + t.overFeature || + t.overTooltip || + t.globalContainer + .selectAll('.up_pftv_tooltip-container') + .transition(20) + .style('opacity', 0) + .style('display', 'none') + .remove(), + t.overCatFilterDialog || v.closeDialog(t), + t.overDownloadDialog || b.closeDialog(t), + t.overHighlightRegionDialog || y.closeDialog(t); + } + function A(e, t, n) { + var r = n.append('div').attr('class', 'up_pftv_buttons'); + r + .append('a') + .attr('class', 'up_pftv_icon-button up_pftv_icon-download') + .attr('title', 'Download data') + .attr('href', '#') + .on('click', function () { + b.displayDialog(e, r); + }), + r + .append('a') + .attr('class', 'up_pftv_icon-button up_pftv_icon-location') + .attr('title', 'Highlight region') + .attr('href', '#') + .on('click', function () { + y.displayDialog(e, r); + }), + r + .append('a') + .attr('class', 'up_pftv_icon-button up_pftv_icon-reset') + .attr('title', 'Reset') + .attr('href', '#') + .on('click', function () { + var t; + (t = e).xScale.domain([1, t.maxPos]), + m.deselectFeature(t), + m.resetHighlight(t), + M(t), + I( + t, + 'up_pftv_icon-zoom-out', + 'up_pftv_icon-zoom-in', + 'Zoom in to sequence view', + ), + d.each(t.categories, function (t) { + t.reset(); + }); + }), + r + .append('a') + .attr('class', 'up_pftv_icon-button up_pftv_icon-zoom-in') + .attr('title', 'Zoom in to sequence view') + .attr('href', '#') + .on('click', function () { + (f.select(this).classed('up_pftv_icon-zoom-in') ? i : o)(e); + }); + } + function h(n, t, e) { + function r(t) { + t.each(function (t) { + (o = f.select(this)), + (o = o.selectAll('.up_pftv_amino_acid_selector').data(t)).enter().append('path'), + o + .attr('d', function (t) { + return m.highlightPath(t.feature, n, 30); + }) + .attr('transform', function (t) { + return 'translate(' + n.xScale(t.feature.begin) + ',0)'; + }) + .classed('up_pftv_amino_acid_selector', !0), + o.exit().remove(); + }); + } + function i(t) { + t.each(function (t) { + (a = f.select(this)), + (a = a.selectAll('.up_pftv_amino-acid').data(t)) + .enter() + .append('text') + .style('text-anchor', 'middle') + .attr('y', 15) + .text(function (t) { + return t.toUpperCase(); + }) + .attr('title', function (t, e) { + return e + 1; + }) + .attr('class', 'up_pftv_amino-acid'), + a.attr('x', function (t, e) { + return n.xScale(e + 1); + }), + a.exit().remove(); + }); + } + var o, + a, + s = {}; + n.width; + var l = (t = t + .append('div') + .attr('class', 'up_pftv_aaviewer') + .append('svg') + .attr('width', '100%') + .attr('height', 30)) + .append('g') + .attr('clip-path', 'url(#aaSelectorViewClip)') + .style('opacity', 1), + u = + (l.datum([{ feature: { begin: -10, end: -10 } }]).call(r), + f.svg.axis().scale(n.xScale)), + c = t + .append('g') + .attr('class', 'x axis') + .attr('transform', 'translate(0, -7)') + .call(u), + A = t + .append('g') + .attr('class', 'up_pftv_aa-text') + .attr('clip-path', 'url(#aaViewClip)') + .attr('transform', 'translate(0,6)') + .style('opacity', 0); + return ( + A.datum(e.split('')).call(i), + (s.update = function () { + c.call(u), + l.call(r), + 70 < n.xScale.domain()[1] - n.xScale.domain()[0] + ? A.transition(50).style('opacity', 0) + : (A.call(i), A.transition(50).style('opacity', 1)); + }), + (s.updateFeatureHighlightSelector = function (t, e) { + l.datum([{ feature: { begin: t, end: e, type: 'continuous' } }]).call(r); + }), + s + ); + } + function a(r, t, i, o, a) { + a.initLayout(r), + d.each(t, function (n, t) { + var e; + d.contains(r.exclusions, n.category) + ? o[t].resolve() + : ((e = n.url), + (e = + null == n.payload + ? (0 != e.indexOf('data:') && (e += r.uniprotacc), + (e = !0 === n.useExtension ? e + '.json' : e), + u.get(e)) + : u.post(n.url, n.payload, n.contentType, n.unpack)), + i.push(e), + e + .done(function (t) { + t instanceof Array && (t = t[0]), + a.sequence || a.loadZoom(t), + !a.accession && t.accession && (a.accession = t.accession); + var e = t.features; + 0 < e.length && d.has(e[0], 'category') + ? ((e = u.groupFeaturesByCategory( + e, + t.sequence, + n.source, + !d.contains(r.exclusions, 'VARIATION'), + )), + (e = d.filter(e, function (t) { + return !d.contains(r.exclusions, t[0]); + }))) + : 0 < e.length && 'VARIANT' === e[0].type + ? (e = d.contains(r.exclusions, 'VARIATION') + ? [] + : u.processVariants(e, t.sequence, n.source)) + : 0 < e.length && 'PROTEOMICS' === e[0].type + ? (e = d.contains(r.exclusions, 'PROTEOMICS') + ? [] + : u.processProteomics(e)) + : 0 < e.length && (e = u.processUngroupedFeatures(e)), + 0 <= e.length && + (a.drawCategories(e, a), + (a.data = a.data.concat(e)), + a.dispatcher.ready()); + }) + .fail(function (t) { + console.log(t); + }) + .always(function () { + o[t].resolve(); + })); + }); + } + function r(t) { + if (t.fixedWidth) return t.fixedWidth; + 0 === D && (D = 198); + var e = (t = E(t.parentElement)).children('.up_pftv_container'); + return 0 < e.length ? e.width() - D : t.width() - D; + } + function p(t, e) { + return e ? [t.padding.left, t.width - t.padding.right] : [0, t.width]; + } + function s(i) { + var o = this; + (o.dispatcher = f.dispatch( + 'featureSelected', + 'featureDeselected', + 'ready', + 'noDataAvailable', + 'noDataRetrieved', + 'notFound', + 'notConfigRetrieved', + 'regionHighlighted', + 'variantDataUpdated', + )), + (o.parentElement = i.el), + (o.minWidth = i.minWidth || 0), + (o.width = r(o)), + (o.maxZoomSize = 30), + (o.selectedFeature = void 0), + (o.selectedFeatureElement = void 0), + (o.sequence = ''), + (o.categories = []), + (o.filterCategories = []), + (o.padding = { top: 2, right: 10, bottom: 2, left: 10 }), + (o.data = []), + (o.uniprotacc = i.uniprotacc), + (o.overwritePredictions = i.overwritePredictions), + (o.defaultSource = void 0 === i.defaultSources || i.defaultSources), + (o.variantFilterDefaultBehavior = + void 0 === i.variantFilterDefaultBehavior || i.variantFilterDefaultBehavior), + (o.load = function () { + (t = i), + l.initSources(), + !1 === t.defaultSources && l.clearDataSources(), + t.customDataSource && l.addSource(t.customDataSource), + t.customDataSources && + d.each(t.customDataSources, function (t) { + l.addSource(t); + }); + var t, + e = l.getDataSources(), + r = [], + n = []; + d.each(e, function () { + var t = E.Deferred(); + n.push(t); + }), + i.categoryOrder && l.setOrderForCategoryNames(i.categoryOrder), + i.customConfig + ? u + .get(i.customConfig) + .done(function (t) { + l.setCategoryNamesInOrder(t.categories), + l.setTrackNames(t.trackNames), + a(i, e, r, n, o); + }) + .fail(function (t) { + f + .select(i.el) + .text( + 'The configuration file provided by external sources could not be retrieved', + ), + o.dispatcher.notConfigRetrieved({ config: i.customConfig }), + console.log(t); + }) + : a(i, e, r, n, o), + E.when.apply(null, n).done(function () { + var t, + e, + n = d.filter(r, function (t) { + return 'rejected' === t.state(); + }); + return ( + n.length === r.length || 0 === o.data.length + ? (f.select(i.el).selectAll('*').remove(), + f.select(i.el).html(''), + n.length === r.length + ? (f + .select(i.el) + .text( + 'Sorry, data could not be retrieved at this time, please try again later.', + ), + o.dispatcher.noDataRetrieved()) + : 0 === o.data.length && + (f + .select(i.el) + .text('There are no features available for this protein.'), + o.dispatcher.noDataAvailable())) + : i.selectedFeature && o.selectFeature(i.selectedFeature), + (n = i), + (t = o), + ((e = document.createElement('iframe')).class = 'pv-resize-listener'), + (e.style.cssText = + 'height: 0; background-color: transparent; margin: 0; padding: 0; overflow: hidden; border-width: 0; position: absolute; width: 100%;'), + (e.onload = function () { + e.contentWindow.addEventListener('resize', function () { + t.resize(); + }); + }), + E(n.el).children('.up_pftv_container').append(e), + t.resize(), + o + ); + }); + }), + o.load(); + } + var d = t('underscore'), + f = t('d3'), + l = t('./Constants'), + u = t('./DataLoader'), + g = t('./CategoryFactory'), + m = t('./ViewerHelper'), + v = (t('./FeatureFactory'), t('./CategoryFilterDialog')), + b = t('./DownloadDialog'), + y = t('./HighlightRegionDialog'), + w = t('./TooltipFactory'), + E = t('jquery'), + B = function (t) { + t.zoom.x(t.xScale); + var e = t.maxPos - 1, + e = (t.xScale.domain()[1] - t.xScale.domain()[0]) / e, + n = e * Math.floor(t.sequence.length / t.maxZoomSize); + t.zoom.scaleExtent([e, n]); + }, + C = function (t) { + t.viewport.extent(t.xScale.domain()), + t.globalContainer.select('.up_pftv_viewport').call(t.viewport), + t.viewport.updateTrapezoid(); + }, + x = function (t) { + t.aaViewer.update(), + t.aaViewer2.update(), + d.each(t.categories, function (t) { + t.update(); + }); + }, + I = function (t, e, n, r) { + try { + var i = t.globalContainer.select('.' + e); + i.classed(e, !1), i.classed(n, !0), i.attr('title', r); + } catch (t) { + console.log('updateZoomButton error: ' + t); + } + }, + M = function (t) { + x(t), C(t), B(t); + }, + D = 0; + (s.prototype.getCategoryTitle = function (e) { + var t = d.find(this.data, function (t) { + return d.find(t[1], function (t) { + return t.type === e; + }); + }); + return t ? t[0] : void 0; + }), + (s.prototype.updateFeatureHighlightSelector = function (t, e) { + this.aaViewer.updateFeatureHighlightSelector(t, e), + this.aaViewer2.updateFeatureHighlightSelector(t, e); + }), + (s.prototype.getDispatcher = function () { + return this.dispatcher; + }), + (s.prototype.deselectFeature = function () { + m.deselectFeature(this); + }), + (s.prototype.resetHighlight = function () { + m.resetHighlight(this); + }), + (s.prototype.selectFeature = function (t) { + var n, + e, + r, + i, + o, + a, + s, + l = this, + u = + ((t.type = t.type.toUpperCase()), + (t.alternativeSequence = + t.alternativeSequence && t.alternativeSequence.toUpperCase()), + l.getCategoryTitle(t.type)), + c = d.find(l.categories, function (t) { + return t.name === u; + }), + A = + ((n = t), + d.find(l.data, function (t) { + return (e = d.find(t[1], function (t) { + var e = t.end || t.begin; + return t.variants && 'VARIANT' === t.type && t.type === n.type + ? (r = d.find(t.variants, function (t) { + var e = t.end || t.begin; + return ( + +t.begin == +n.begin && + +e == +n.end && + t.alternativeSequence === n.alternativeSequence + ); + })) + : 'CONFLICT' === t.type || 'MUTAGEN' === t.type + ? +t.begin == +n.begin && + +e == +n.end && + t.alternativeSequence === n.alternativeSequence && + t.type === n.type + : t.type === n.type && +t.begin == +n.begin && +e == +n.end; + })); + }), + r || e); + { + if (A) + return ( + (s = l.globalContainer.select('[name="' + A.internalId + '"]')), + c && A && s && !s.classed('up_pftv_variant_hidden') + ? ((i = + 'none' === c.viewerContainer.style('display') + ? c.tracksContainer + : c.viewerContainer), + s.classed('up_pftv_variant') && + l.globalContainer + .select('.up_pftv_category-name[title="' + u + '"]') + .classed('up_pftv_arrow-right') && + c.toggle(), + (c = s.node().getBoundingClientRect()), + (o = i.node().getBoundingClientRect()), + ((a = { x: c.x - o.x, y: c.y - o.y + c.height }).x = isNaN(a.x) + ? c.left - o.left + : a.x), + (a.y = isNaN(a.y) ? c.top - o.top + c.height : a.y), + !l.selectedFeature || l.selectedFeature.internalId !== A.internalId + ? m.selectFeature(A, s.node(), l) + : l.dispatcher.featureSelected({ + feature: l.selectedFeature, + color: s.style('fill'), + }), + w.createTooltip(l, u, A, i, a), + A) + : void l.dispatcher.notFound(t) + ); + l.dispatcher.notFound(t); + } + }), + (s.prototype.highlightRegion = function (t, e, n) { + var r = this; + (t = t < 1 ? 1 : t), + (e = e ? (e > r.sequence.length ? r.sequence.length : e) : t), + 1 <= t && + t <= e && + e <= r.sequence.length && + (r.deselectFeature(), + (r.highlight = { begin: t, end: e, type: 'continuous' }), + n && + (r.xScale(r.xScale.domain()[0]) > r.xScale(t) || + r.xScale(e) > r.xScale(r.xScale.domain()[1])) && + o(r), + m.updateHighlight(r), + r.dispatcher.regionHighlighted({ begin: t, end: e })); + }), + (s.prototype.initLayout = function (t, e) { + var n = this, + t = + ((n.globalContainer = f.select(t.el).text('')), + n.globalContainer + .append('div') + .attr('class', 'up_pftv_container') + .on('mousedown', function () { + c(n); + })); + (n.header = t.append('div')), + (n.container = t.append('div').attr('class', 'up_pftv_category-container')), + (n.ontheFlyContainer = n.container + .append('div') + .classed('up_pftv_category_on_the_fly', !0)), + d.each(l.getCategoryNamesInOrder(), function (t) { + n.container.append('div').classed('up_pftv_category_' + t.name, !0); + }), + (n.footer = t.append('div').attr('class', 'bottom-aa-container')); + }), + (s.prototype.loadZoom = function (t) { + var n, + e, + r, + i, + o, + a, + s, + l, + u = this; + (u.sequence = t.sequence), + (u.accession = t.accession), + (u.maxPos = t.sequence.length), + (u.xScale = f.scale + .linear() + .domain([1, t.sequence.length + 1]) + .range(p(u, !0))), + (u.viewport = + ((e = (n = u).header), + (r = f.scale.linear().domain([1, n.maxPos]).range(p(n, !0))), + (e = e + .append('div') + .attr('class', 'up_pftv_navruler') + .append('svg') + .attr('id', 'up_pftv_svg-navruler') + .attr('width', '100%') + .attr('height', 50)), + (i = f.svg + .axis() + .scale(f.scale.linear().domain(n.xScale.domain()).range(p(n, !0))) + .orient('bottom')), + (o = e.append('g').attr('class', 'x axis')).call(i), + ((a = f.svg + .brush() + .x(r) + .on('brush', function () { + var t = f.event.target.extent(); + t[1] - t[0] < n.maxZoomSize && + (f.event.target.extent([t[0], t[0] + n.maxZoomSize]), + f.event.target(f.select(this))), + n.xScale.domain(a.empty() ? r.domain() : a.extent()), + x(n), + a.updateTrapezoid(); + })).xAxis = o), + (a.navXAxis = i), + a.on('brushstart', function () { + c(n); + }), + a.on('brushend', function () { + B(n), + +n.globalContainer.select('.up_pftv_navruler .extent').attr('width') >= + n.width - n.padding.left - n.padding.right && + I( + n, + 'up_pftv_icon-zoom-out', + 'up_pftv_icon-zoom-in', + 'Zoom in to sequence view', + ); + }), + (o = f.svg + .arc() + .outerRadius(10) + .startAngle(0) + .endAngle(function (t, e) { + return e ? -Math.PI : Math.PI; + })), + e + .append('g') + .attr('class', 'up_pftv_viewport') + .call(a) + .selectAll('rect') + .attr('height', 40), + (a.trapezoid = e + .append('g') + .selectAll('path') + .data([0]) + .enter() + .append('path') + .classed('up_pftv_trapezoid', !0)), + (a.domainStartLabel = e + .append('text') + .attr('class', 'domain-label') + .attr('x', 0) + .attr('y', 40)), + (a.domainEndLabel = e + .append('text') + .attr('class', 'domain-label') + .attr('x', n.width) + .attr('y', 40) + .attr('text-anchor', 'end')), + e + .selectAll('.resize') + .append('path') + .attr('transform', 'translate(0,15)') + .attr('class', 'handle') + .attr('d', o), + (a.updateTrapezoid = function () { + var t = n.globalContainer.select('.up_pftv_navruler .extent').attr('x'), + e = +t + +n.globalContainer.select('.up_pftv_navruler .extent').attr('width'), + t = + 'M0,50L0,50L' + + t + + ',28L' + + t + + ',40L' + + e + + ',40L' + + e + + ',28L' + + n.width + + ',48L' + + n.width + + ',50Z'; + this.trapezoid.attr('d', t), + this.domainStartLabel.text(Math.round(n.xScale.domain()[0])), + this.domainEndLabel.text( + Math.min(Math.round(n.xScale.domain()[1]), n.maxPos), + ); + }), + (a.clearTrapezoid = function () { + this.trapezoid.attr('d', 'M0,0'); + }), + a)), + (u.header = u.header + .append('div') + .style('display', 'table') + .style('width', '100%') + .append('div') + .style('display', 'table-row')), + A(u, 0, u.header), + (u.aaViewer = h(u, u.header, t.sequence)), + (u.zoom = + ((s = u), + (l = f.behavior + .zoom() + .x(s.xScale) + .on('zoom', function () { + var t; + s.xScale.domain()[0] < 1 + ? ((t = l.translate()[0] - s.xScale(1) + s.xScale.range()[0]), + l.translate([t, 0])) + : s.xScale.domain()[1] > s.maxPos && + ((t = l.translate()[0] - s.xScale(s.maxPos) + s.xScale.range()[1]), + l.translate([t, 0])), + x(s), + C(s); + })))), + u.footer + .append('div') + .attr('class', 'up_pftv_credit_container') + .append('a') + .attr('title', 'Help page') + .attr('href', 'http://ebi-uniprot.github.io/ProtVista/') + .attr('target', '_blank') + .attr('class', 'up_pftv_credit') + .text('ProtVista'), + (u.aaViewer2 = h(u, u.footer, t.sequence)), + C(u), + B(u); + }), + (s.prototype.drawCategories = function (t, r) { + d.each(t, function (e) { + var t, + n = d.find(r.categories, function (t) { + return t.name === e[0]; + }); + n + ? n.repaint(e[1]) + : ((n = l.getCategoryInfo(e[0])), + (t = r.container.select('.up_pftv_category_' + e[0]))[0][0] || + (t = r.ontheFlyContainer + .append('div') + .classed('up_pftv_category_' + e[0], !0)), + (n = g.createCategory(e[0], e[1], n, r, t)), + r.categories.push(n)); + }); + }), + (s.prototype.zoomIn = function () { + i(this); + }), + (s.prototype.resize = function () { + var t = this, + e = t.width; + (t.width = Math.max(r(t), t.minWidth)), + t.width <= t.minWidth || + e === t.width || + (t.xScale.range(p(t, !0)), + t.viewport.x().range(p(t, !0)), + t.viewport.domainEndLabel.attr('x', t.width), + t.viewport.xAxis.selectAll('*').remove(), + t.viewport.navXAxis.scale().range(p(t, !0)), + t.viewport.xAxis.call(t.viewport.navXAxis), + x(t), + B(t), + C(t)); + }), + (e.exports = s); + }, + { + './CategoryFactory': 3, + './CategoryFilterDialog': 4, + './Constants': 5, + './DataLoader': 6, + './DownloadDialog': 8, + './FeatureFactory': 10, + './HighlightRegionDialog': 12, + './TooltipFactory': 14, + './ViewerHelper': 20, + d3: 33, + jquery: 1, + underscore: 70, + }, + ], + 12: [ + function (t, e, n) { + 'use strict'; + function s(t) { + t.select('#up_pftv_highlight_start').property('value', ''), + t.select('#up_pftv_highlight_end').property('value', ''), + t.select('.up_pftv_popupDialog-warning').text(''); + } + function r(t, e) { + var n, + r, + i, + o, + a = e + .append('div') + .attr('class', 'up_pftv_popupDialog-container') + .style('left', l.mouse(e.node())[0] + 10 + 'px') + .style('top', l.mouse(e.node())[1] + 5 + 'px') + .on('mousedown', function () { + t.overHighlightRegionDialog = !0; + }) + .on('mouseup', function () { + t.overHighlightRegionDialog = !1; + }); + return ( + a + .append('span') + .text('x') + .attr('class', 'up_pftv_tooltip-close') + .on('click', function () { + (t.overHighlightRegionDialog = !1), + a.transition(20).style('opacity', 0).style('display', 'none'); + }), + (n = t), + (i = 'Invalid sequence positions.'), + (o = (r = a).append('div').style('display', 'table').append('table')), + u(o, 'Begin: ', 'up_pftv_highlight_start', 'e.g., 1'), + u(o, 'End: ', 'up_pftv_highlight_end', 'e.g., ' + n.sequence.length), + o + .append('tr') + .append('td') + .attr('colspan', '2') + .classed('up_pftv_popupDialog-warning', !0), + o + .append('tr') + .append('td') + .attr('colspan', '2') + .style('text-align', 'right') + .append('button') + .text('Apply') + .on('click', function () { + var t = r.select('#up_pftv_highlight_start').property('value'), + e = r.select('#up_pftv_highlight_end').property('value'); + 0 === t.length + ? o.select('.up_pftv_popupDialog-warning').text(i) + : ((t = +t), + (e = 0 === e.length ? t : +e), + !isNaN(t) && !isNaN(e) && !(t < 1 || e > n.sequence.length) && t <= e + ? (n.highlightRegion(t, e), c.closeDialog(n)) + : o.select('.up_pftv_popupDialog-warning').text(i)); + }), + s(a), + a + ); + } + var l = t('d3'), + u = + (t('underscore'), + t('./ViewerHelper'), + function (t, e, n, r) { + t = t.append('tr'); + t.append('td').append('label').text(e), + t + .append('td') + .append('input') + .attr('id', n) + .attr('type', 'text') + .attr('placeholder', r); + }), + c = { + displayDialog: function (t, e) { + t.highlightRegionDialog + ? s(t.highlightRegionDialog) + : (t.highlightRegionDialog = r(t, e)), + t.highlightRegionDialog + .transition(20) + .style('opacity', 1) + .style('display', 'block'); + }, + closeDialog: function (t) { + t.highlightRegionDialog && + t.highlightRegionDialog + .transition(20) + .style('opacity', 0) + .style('display', 'none'); + }, + }; + e.exports = c; + }, + { './ViewerHelper': 20, d3: 33, underscore: 70 }, + ], + 13: [ + function (t, e, n) { + 'use strict'; + function r() { + var i = this; + (i.rowFeatures = []), + (i.featureOverlap = function (t, e, n, r) { + (t = Number(t.begin) >= Number(e.begin) && Number(t.begin) <= Number(r)), + (e = Number(n) >= Number(e.begin) && Number(n) <= Number(r)); + return t || e; + }), + (i.dOverlap = function (t, e, n, r) { + (e = Number(e.begin) >= Number(t.begin) && Number(e.begin) <= Number(n)), + (t = Number(r) >= Number(t.begin) && Number(r) <= Number(n)); + return e || t; + }), + (i.containsOverlap = function (r) { + return a.some(i.rowFeatures, function (t) { + var e = r.end || r.begin, + n = t.end || t.begin; + return i.featureOverlap(r, t, e, n) || i.dOverlap(r, t, e, n); + }); + }), + (i.addFeature = function (t) { + i.rowFeatures.push(t); + }); + } + function i(t, e) { + var n = this; + (n.padding = 1), + (n.minHeight = 15), + (n.rowHeight = 0), + (n.rows = []), + (n.totalHeight = e), + (n.calculate = function () { + n.rowHeight = + (n.totalHeight / n.rows.length < n.minHeight + ? n.totalHeight / n.rows.length + : n.minHeight) - + 2 * n.padding; + }), + a.each(t, function (e) { + var t; + a.some(n.rows, function (t) { + if (!t.containsOverlap(e)) return t.addFeature(e), !0; + }) || ((t = new r()).addFeature(e), n.rows.push(t)); + }); + } + var a = t('underscore'); + (i.prototype.getYPos = function (n) { + var r, + i = this, + o = + i.totalHeight / i.rows.length > i.minHeight + ? (i.totalHeight - i.rows.length * i.minHeight) / 2 + : 0; + return ( + a.each(i.rows, function (t, e) { + a.each(t.rowFeatures, function (t) { + t === n && (r = e * (i.rowHeight + 2 * i.padding) + o); + }); + }), + r + ); + }), + (i.prototype.getRows = function () { + return this.rows; + }), + (i.prototype.getFeatureHeight = function () { + return this.rowHeight; + }), + (e.exports = i); + }, + { underscore: 70 }, + ], + 14: [ + function (t, e, n) { + 'use strict'; + function a(t, e, n, r, i) { + var o, + a, + s, + l, + u = this, + n = + ((u.data = n), + (u.sequence = t.sequence), + (u.accession = t.accession), + (u.tooltipViewer = void 0), + (n = r), + t.globalContainer.select('.up_pftv_tooltip-container').remove(), + (o = n.append('div').attr('class', 'up_pftv_tooltip-container')) + .append('span') + .text('x') + .attr('class', 'up_pftv_tooltip-close') + .on('click', function () { + o.transition(20).style('opacity', 0).style('display', 'none'), o.remove(); + }), + o), + i = + ((i + ? n.style('left', i.x + 10 + 'px').style('top', i.y + 'px') + : n + .style('left', c.mouse(r.node())[0] + 10 + 'px') + .style('top', c.mouse(r.node())[1] + 'px') + ) + .transition(200) + .style('opacity', 1) + .style('display', 'block'), + t.globalContainer.select('.up_pftv_tooltip-container table').remove(), + (u.table = t.globalContainer.select('.up_pftv_tooltip-container').append('table')), + u.table + .on('mousedown', function () { + t.overTooltip = !0; + }) + .on('mouseup', function () { + t.overTooltip = !1; + }), + u.table.append('tr')), + n = + u.data.type + + ' ' + + u.data.begin + + (u.data.end && u.data.end !== u.data.begin ? '-' + u.data.end : ''); + i.append('th').attr('colspan', 2).text(n), + (r = u.data.externalData ? A.keys(u.data.externalData).join(', ') : void 0) || + void 0 !== u.data.sourceType + ? ((i = u.table.append('tr')).append('td').text('Source'), + (n = ''), + (s = a = !1), + (n = + u.data.sourceType === h.variantSourceType.mixed + ? r + ? 'UniProt, large scale studies and custom data (' + r + ')' + : 'UniProt and large scale studies' + : u.data.sourceType === h.variantSourceType.uniprot + ? ((a = !0), r ? 'UniProt and custom data (' + r + ')' : 'UniProt') + : u.data.sourceType === h.variantSourceType.lss + ? ((s = !0), + r + ? 'Large scale studies and custom data (' + r + ')' + : 'Large scale studies') + : 'Custom data (' + r + ')'), + i.append('td').text(n), + (l = u.data).description && + ((r = l.description.split(/\[LSS_|\[SWP]: /g)), + (r = A.groupBy(r, function (t) { + return 0 === t.length ? 'NOTHING' : -1 !== t.indexOf(']: ') ? 'LSS' : 'UP'; + })), + (l.up_description = r.UP ? r.UP.join('; ') : void 0), + (l.lss_description = r.LSS ? r.LSS.join('; ').replace(/]: /g, ': ') : void 0)), + h.existAssociation(l.association) && + A.each(l.association, function (t) { + var e; + t.description && + -1 !== (e = t.description.indexOf('Ftid: ')) && + ((l.ftId = t.description.substr(e + 6, 10)), + (t.description = ( + t.description.slice(0, e) + t.description.slice(e + 16) + ).trim())); + }), + a + ? (d(u, u.data.ftId), g(u, u.data.up_description, 'up_description')) + : s && g(u, u.data.lss_description, 'lss_description')) + : (d(u, u.data.ftId), g(u, u.data.description, 'description')); + } + function r(t) { + t.addEvidences(t.data.evidences), w(t, t.data.xrefs), t.addBlast(); + } + function i(t) { + var e; + t.data.matchScore && + ((e = t.table.append('tr')).append('td').text('Alignment score'), + e.append('td').text(function () { + return t.data.matchScore + '%'; + })), + t.addEvidences(t.data.evidences), + w(t, t.data.xrefs), + t.addBlast(); + } + function o(e, t, n) { + var r; + e.data[n] && + ((r = e.table.append('tr')).append('td').text(t), + r.append('td').text(function () { + var t = e.data.end || e.data.begin; + return e.sequence.substring(+e.data.begin - 1, +t) + ' > ' + e.data[n]; + })), + e.addEvidences(e.data.evidences), + w(e, e.data.xrefs), + e.addBlast(); + } + function l(t) { + var e = t.table.append('tr'), + t = + (e.append('td').text('Variant'), + ('del' === t.data.wildType + ? t.sequence.substring(+t.data.begin, +t.data.end + 1) + : t.data.wildType) + + ' > ' + + t.data.alternativeSequence); + e.append('td').text(t); + } + function u(t, e, n, r, i, o, a) { + var s = i && 0 !== A.keys(i).length; + (o = o || []), + (e.ftId || r || s || b(e) || 0 !== o.length || e.consequence) && + (t.table + .append('tr') + .classed('up_pftv_section', !0) + .append('td') + .attr('colspan', 2) + .text(a), + d(t, n), + g(t, r), + f(t, e.consequence), + v(t, e), + t.addEvidences(i), + w(t, o)); + } + function s(n) { + var r, i, e, o, t, a, s; + n.data.sourceType === h.variantSourceType.mixed + ? ((r = {}), + (i = {}), + A.each(n.data.evidences, function (t, e) { + A.contains(h.manual, e) + ? (r[e] = n.data.evidences[e]) + : (i[e] = n.data.evidences[e]); + }), + (e = []), + (o = []), + A.each(n.data.xrefs, function (t) { + (!0 === t.reviewed ? e : o).push(t); + }), + l(n), + (a = r), + (s = e), + ((t = n).data.ftId || + t.data.up_description || + 0 !== a.length || + t.data.association) && + (t.table + .append('tr') + .classed('up_pftv_section', !0) + .append('td') + .attr('colspan', 2) + .text('UniProt'), + d(t, t.data.ftId), + g(t, t.data.up_description, 'up_description'), + t.addEvidences(a), + w(t, s), + y(t)), + u(n, n.data, void 0, n.data.lss_description, i, o, 'Large Scale Studies')) + : (l(n), v(n, n.data), n.addEvidences(n.data.evidences), w(n, n.data.xrefs), y(n)), + A.each(n.data.externalData, function (t, e) { + u(n, t, t.ftId, t.description, t.evidences, t.xrefs, e); + }); + } + var c = t('d3'), + A = t('underscore'), + h = t('./Evidence'), + p = t('./Constants'), + d = function (t, e) { + e && + ((t = t.table.append('tr')).append('td').text('Feature ID'), + t.append('td').text(e)); + }, + f = function (t, e) { + e && + ((t = t.table.append('tr')).append('td').text('Consequence'), + t.append('td').text(e)); + }, + g = function (t, e) { + e && + ((t = t.table.append('tr')).append('td').text('Description'), + t.append('td').text(e)); + }, + m = function (t, e, r) { + e || + (e = t.table.append('tr').attr('class', 'up_pftv_evidence-source')) + .append('td') + .text(''); + var i = e.append('td').text(r.index + ' '); + A.each(r.elem, function (t, e) { + var n = !0 === r.alternative ? t.alternativeUrl : t.url; + i + .append('span') + .append('a') + .attr('href', n) + .attr('target', '_blank') + .text(function () { + return r.textAttr ? t[r.textAttr] : t.id; + }), + e !== r.elem.length - 1 && i.append('span').text(' | '); + }); + }, + v = + ((a.prototype.addEvidences = function (t) { + var r = this; + A.each(t, function (t, e) { + t = A.filter(t, function (t) { + return void 0 !== t; + }); + var n = r.table.append('tr').attr('class', 'up_pftv_evidence-col'), + e = + (n.append('td').text('Evidence'), + (function (e, t, n) { + var r, + i = h.acronym[t], + o = A.where(n, { name: 'PubMed' }).length; + o += A.where(n, { name: 'Citation' }).length; + return ( + ('EXP' === i || 'NAS' === i + ? (o += A.filter(n, function (t) { + return ( + !(!t.id || 0 !== t.id.indexOf('ref.')) && + ((t.name = 'Citation'), + (t.url = + 'http://www.uniprot.org/uniprot/' + + e.accession + + '#ref' + + t.id.slice(4)), + !0) + ); + }).length) + (1 < o ? ' Publications' : ' Publication') + : 'IC' === i + ? 0 === o + ? 'Curated' + : o + (1 < o ? ' Publications' : ' Publication') + : 'ISS' === i + ? 'By similarity' + : 'ISM' === i + ? n && 0 !== n.length + ? n[0].name + ' annotation' + : 'Sequence Analysis' + : 'MIXM' === i || 'MIXA' === i + ? 'Combined sources' + : 'MI' === i || 'AI' === i + ? 'Imported' + : 'AA' === i + ? ((o = + !!n && + A.find(n, function (t) { + return t.url && -1 !== t.url.indexOf('unirule'); + })), + (i = + !!n && + A.find(n, function (t) { + return t.url && -1 !== t.url.indexOf('SAAS'); + })), + (r = + !!n && + A.find(n, function (t) { + return 'Pfam' === t.name; + })), + o + ? 'UniRule annotation' + : i + ? 'SAAS annotation' + : r + ? 'InterPro annotation' + : n + ? n[0].name + ' annotation' + : 'Automatic annotation') + : t) + (h.text[t] ? ' (' + h.text[t] + ')' : '') + ); + })(r, e, t)), + n = (n.append('td').text(e), A.groupBy(t, 'name')); + delete n[void 0], + A.each(n, function (t, e) { + m(r, void 0, { elem: t, index: e }), + 'PubMed' === e && + m(r, void 0, { elem: t, index: 'EuropePMC', alternative: !0 }); + }); + }); + }), + (a.prototype.addBlast = function () { + var t, + e, + n = this, + r = n.data.end || n.data.begin, + i = n.data.type.toLowerCase(); + 3 <= r - n.data.begin && + !A.contains(p.getNoBlastTypes(), i) && + ((t = n.table.append('tr')).append('td').text('Tools'), + (e = p.getBlastURL() + n.accession + '[' + n.data.begin), + (e = (e += '-') + r + ']&key=' + p.getTrackInfo(i).label), + n.data.ftId && (e += '&id=' + n.data.ftId), + t + .append('td') + .append('span') + .append('a') + .attr('href', e) + .attr('target', '_blank') + .text('BLAST')); + }), + function (t, e) { + var n, r; + e.frequency && + 0 !== e.frequency && + ((n = t.table.append('tr')) + .append('td') + .append('span') + .append('a') + .attr( + 'href', + 'http://www.ncbi.nlm.nih.gov/projects/SNP/docs/rs_attributes.html#gmaf', + ) + .attr('target', '_blank') + .text('Frequency (MAF)'), + n.append('td').text(e.frequency)), + e.polyphenPrediction && + 'del' !== e.polyphenPrediction && + !1 !== e.polyphenInUse && + ((n = t.table.append('tr')) + .append('td') + .append('span') + .append('a') + .attr('href', 'http://genetics.bwh.harvard.edu/pph2/dokuwiki/about') + .attr('target', '_blank') + .text('Polyphen'), + (r = e.polyphenPrediction + ', score ' + e.polyphenScore), + n.append('td').text(r)), + e.siftPrediction && + 'del' !== e.siftPrediction && + !1 !== e.siftInUse && + ((n = t.table.append('tr')) + .append('td') + .append('span') + .append('a') + .attr('href', 'http://sift.jcvi.org/') + .attr('target', '_blank') + .text('SIFT'), + (r = e.siftPrediction + ', score ' + e.siftScore), + n.append('td').text(r)); + }), + b = function (t) { + var e = !1; + return ( + t.frequency && 0 !== t.frequency && (e = !0), + t.polyphenPrediction && + 'del' !== t.polyphenPrediction && + 'unknown' !== t.polyphenPrediction && + !1 !== t.polyphenInUse && + (e = !0), + (e = + t.siftPrediction && + 'del' !== t.siftPrediction && + 'unknown' !== t.siftPrediction && + !1 !== t.siftInUse + ? !0 + : e) + ); + }, + y = function (i) { + h.existAssociation(i.data.association) && + (i.table + .append('tr') + .append('td') + .attr('colspan', 2) + .classed('up_pftv_subsection', !0) + .text('Disease Association'), + A.each(i.data.association, function (t) { + var e; + t.name && + ((e = i.table.append('tr')).append('td').text('Disease'), + e + .append('td') + .append('span') + .append('a') + .attr('href', 'http://www.uniprot.org/diseases/?query=' + t.name) + .attr('target', '_blank') + .text(t.name)), + t.description && + ((e = i.table.append('tr')).append('td').text('Description'), + e.append('td').text(t.description)), + t.xrefs && + ((e = A.groupBy(t.xrefs, 'name')), + A.each(e, function (n, t) { + var e = i.table.append('tr'), + r = (e.append('td'), e.append('td').text(t + ' ')); + A.each(n, function (t, e) { + r + .append('span') + .append('a') + .attr('href', t.url) + .attr('target', '_blank') + .text(t.id), + e + 1 !== n.length && r.append('span').text(' | '); + }); + })); + })); + }, + w = function (n, t) { + var r, i; + t && + 0 !== t.length && + ((r = n.table.append('tr').attr('class', 'up_pftv_evidence-source')) + .append('td') + .text('Cross-references'), + delete (t = A.groupBy(t, 'id'))[void 0], + (i = !0), + A.each(t, function (t, e) { + i + ? (m(n, r, { elem: t, index: e, textAttr: 'name' }), (i = !1)) + : m(n, void 0, { elem: t, index: e, textAttr: 'name' }); + })); + }; + (a.basic = function () { + this.tooltipViewer = new r(this); + }), + (a.antigen = function () { + this.tooltipViewer = new i(this); + }), + (a.mutagen = function () { + this.tooltipViewer = new o(this, 'Mutation', 'alternativeSequence'); + }), + (a.conflict = function () { + this.tooltipViewer = new o(this, 'Conflict', 'alternativeSequence'); + }), + (a.missense = function () { + this.tooltipViewer = new s(this); + }), + (a.ms_del = function () { + this.tooltipViewer = new s(this); + }), + (a.insdel = function () { + this.tooltipViewer = new s(this); + }), + (a.stop_lost = function () { + this.tooltipViewer = new s(this); + }), + (a.stop_gained = function () { + this.tooltipViewer = new s(this); + }), + (a.init_codon = function () { + this.tooltipViewer = new s(this); + }), + (a.variant = function () { + this.tooltipViewer = new s(this); + }), + (e.exports = { + createTooltip: function (t, e, n, r, i) { + var o = n.type.toLowerCase(), + t = + 'function' != typeof a[o] + ? ((a.basic.prototype = new a(t, 0, n, r, i)), new a.basic()) + : ((a[o].prototype = new a(t, 0, n, r, i)), new a[o]()); + return t; + }, + }); + }, + { './Constants': 5, './Evidence': 9, d3: 33, underscore: 70 }, + ], + 15: [ + function (t, e, n) { + 'use strict'; + t('d3'), t('underscore'), t('./FeatureFactory'), t('./NonOverlappingLayout'); + function r(t, e) { + var n = this; + (n.data = t), + (n.type = t[0].type), + (n.label = t[0].type), + (n.category = e), + (n.id = n.type + '_track'), + (t = e.tracksContainer + .append('div') + .style('display', 'table') + .style('width', '100%') + .append('div') + .style('display', 'table-row')), + (n.titleContainer = t.append('div').style('display', 'table-cell')), + (n.trackContainer = t.append('div').attr('class', 'up_pftv_track')); + } + function i(t) { + return new a(t.category.name, t.data, t.trackContainer, t.category.fv); + } + function o(t) { + return new s( + t.category.name, + t.data, + t.trackContainer, + t.category.fv, + t.category, + t.variantHeight, + t.titleContainer, + ); + } + var a = t('./BasicViewer'), + s = t('./VariantViewer'), + l = t('./Constants'); + r.prototype.update = function () { + this.trackViewer.update(); + }; + (r.basic = function () { + var t = l.getTrackInfo(this.type.toLowerCase()); + this.titleContainer + .attr('class', 'up_pftv_track-header') + .attr('title', t.label.toUpperCase() + '\n' + t.tooltip) + .text(t.label), + (this.trackViewer = new i(this)); + }), + (r.variant = function () { + (this.variantHeight = 430), + this.titleContainer + .attr('class', 'up_pftv_track-header') + .attr('style', 'height:' + this.variantHeight + 'px'), + (this.trackViewer = new o(this)), + (this.reset = function () { + this.trackViewer.reset(); + }); + }), + (e.exports = { + createTrack: function (t, e, n) { + return ( + 'function' != typeof r[e] && + console.log('WARNING: Track viewer type ' + e + " doesn't exist"), + (r[e].prototype = new r(t, n)), + new r[e]() + ); + }, + }); + }, + { + './BasicViewer': 2, + './Constants': 5, + './FeatureFactory': 10, + './NonOverlappingLayout': 13, + './VariantViewer': 19, + d3: 33, + underscore: 70, + }, + ], + 16: [ + function (t, e, n) { + 'use strict'; + var a = t('d3'), + s = t('underscore'), + l = t('./ViewerHelper'); + e.exports = function (e) { + var n = this, + t = ((n.features = e.data), e.viewerContainer), + r = e.fv.xScale, + i = e.fv.width, + o = + (e.fv.zoom, + (n.varChart = l.createSVG(t, i, 40, e.fv, 'up_pftv_variation-chart')), + (n.variationCountArray = s.map(n.features, function (t) { + return t.variants.length; + })), + (n.yScale = a.scale.linear().range([40, 0])), + (this.updateYScaleDomain = function () { + (n = this).yScale.domain([0, a.max(n.variationCountArray)]); + }), + this.updateYScaleDomain(), + a.svg + .line() + .x(function (t, e) { + return r(e); + }) + .y(function (t) { + return n.yScale(t); + }) + .interpolate('linear')); + return ( + (this.init = function () { + var t = this; + t.updateYScaleDomain(), + t.varChart + .append('path') + .data(t.features) + .attr('class', 'up_pftv_block-area') + .attr('d', o(t.variationCountArray)) + .on('click', function () { + e.toggle(); + }) + .append('title') + .text('Number of variants per position'), + t.varChart + .append('path') + .data(t.features) + .attr('class', 'up_pftv_line') + .attr('d', o(t.variationCountArray)) + .on('click', function () { + e.toggle(); + }) + .append('title') + .text('Number of variants per position'); + }), + this.init(), + (this.update = function () { + var t = this; + t.varChart + .selectAll('.up_pftv_block-area') + .data(t.features) + .attr('class', 'up_pftv_block-area') + .attr('d', o(t.variationCountArray)), + t.varChart + .selectAll('.up_pftv_line') + .data(t.features) + .attr('class', 'up_pftv_line') + .attr('d', o(t.variationCountArray)); + }), + (this.updateData = function (t) { + var e = this; + (e.features = t), + (e.variationCountArray = s.map(e.features, function (t) { + return t.variants.length; + })), + e.varChart.selectAll('.up_pftv_block-area').remove(), + e.varChart.selectAll('.up_pftv_line').remove(), + this.init(); + }), + this + ); + }; + }, + { './ViewerHelper': 20, d3: 33, underscore: 70 }, + ], + 17: [ + function (t, e, n) { + 'use strict'; + t('d3'); + function r(t) { + return t.colorRange + ? 'background:' + (t.on ? 'linear-gradient(' + t.colorRange + ');' : '#ffffff') + : 'background-color:' + (t.on ? t.color : '#ffffff'); + } + var c = t('underscore'), + A = t('jquery'), + i = t('./Evidence'), + o = t('./Constants'), + a = t('./VariantLegendDialog'), + h = !1, + p = { + label: 'Disease (reviewed)', + on: !0, + properties: { + association: function (t) { + return c.some(t.association, function (t) { + return !0 === t.disease; + }); + }, + }, + color: a.UPDiseaseColor, + }, + d = { + label: ['Predicted deleterious', 'Predicted benign'], + on: !0, + properties: { + alternativeSequence: /[^*]/, + sourceType: [i.variantSourceType.lss, null], + externalData: function (t) { + return ( + !!t.sourceType || + c.some(t.externalData, function (t) { + return ( + (t.polyphenPrediction && 'del' !== t.polyphenPrediction) || + (t.siftPrediction && 'del' !== t.siftPrediction) + ); + }) + ); + }, + }, + colorRange: [a.deleteriousColor, a.benignColor], + }, + f = { + label: 'Non-disease (reviewed)', + on: !0, + properties: { + association: function (t) { + return ( + c.every(t.association, function (t) { + return !0 !== t.disease; + }) || !t.association + ); + }, + sourceType: [i.variantSourceType.uniprot, i.variantSourceType.mixed], + }, + color: a.UPNonDiseaseColor, + }, + g = { + label: 'Init, stop loss or gain', + on: !0, + properties: { alternativeSequence: '*' }, + color: a.othersColor, + }, + m = { + label: 'Unknown', + on: !0, + properties: { + type: function (t) { + return ( + void 0 === t.siftPrediction && + void 0 === t.polyphenPrediction && + void 0 === t.association + ); + }, + alternativeSequence: /[^*]/, + sourceType: i.variantSourceType.lss, + }, + color: a.unknownColor, + }, + v = { label: 'Filter consequence', cases: [] }, + b = { + label: 'UniProt reviewed', + on: !0, + properties: { sourceType: [i.variantSourceType.uniprot, i.variantSourceType.mixed] }, + color: 'grey', + }, + y = { + label: 'Large scale studies', + on: !0, + properties: { sourceType: [i.variantSourceType.lss, i.variantSourceType.mixed] }, + color: 'grey', + }, + w = { label: 'Filter data source', cases: [] }, + E = []; + e.exports = function (s, l, t) { + (e = s), + h || + (!0 === e.defaultSource + ? (v.cases.push(p), + v.cases.push(d), + v.cases.push(f), + v.cases.push(g), + v.cases.push(m), + E.push(v), + w.cases.push(b), + w.cases.push(y)) + : (v.cases.push(d), E.push(v)), + E.push(w), + (h = !0)), + c.each(o.getConsequenceTypes(), function (n, t) { + c.find(E[0].cases, function (t) { + return t.label === n; + }) || + E[0].cases.push({ + label: n, + on: !0, + properties: { + consequence: function (t) { + var e = c.keys(t.externalData); + return 0 < e.length && t.externalData[e[0]].consequence === n; + }, + }, + color: a.consequenceColors[t % a.consequenceColors.length], + }); + }), + c.each(o.getDataSources(), function (e) { + e.source === o.getUniProtSource() || + c.find(E[1].cases, function (t) { + return t.label === e.source; + }) || + E[1].cases.push({ + label: e.source, + on: !0, + properties: { + externalData: function (t, e) { + var n = t.externalData && 0 !== c.keys(t.externalData).length; + return e ? n && t.externalData[e] : n; + }, + }, + color: 'grey', + }); + }); + var e, + u = this; + return ( + (u.variantViewer = t), + (u.filters = A.extend(!0, [], E)), + l + .append('div') + .attr('class', 'up_pftv_buttons') + .append('span') + .style('visibility', 'hidden') + .classed('up_pftv_inner-icon-container', !0) + .append('a') + .attr('class', 'up_pftv_icon-button up_pftv_icon-reset') + .attr('title', 'Reset all filters') + .attr('href', '#') + .on('click', function () { + u.reset(), u.variantViewer.updateData(u.variantViewer.features); + }), + c.each(u.filters, function (o, t) { + var e = l.append('h4').text(o.label); + 0 === t && e.classed('up_pftv_keepWithPrevious', !0); + var n = l + .append('ul') + .attr('class', 'up_pftv_dialog-container') + .selectAll('li') + .data(o.cases) + .enter() + .append('li') + .append('a') + .on('click', function (t) { + if (!0 === t.on) + s.variantFilterDefaultBehavior + ? ((n = t), + c.each(o.cases, function (t) { + t.on = n.label === t.label; + })) + : (t.on = !1), + l.select('.up_pftv_inner-icon-container').style('visibility', 'visible'); + else { + t.on = !0; + var t = u.filters, + e = l; + if ( + c.every(t, function (t) { + return c.every(t.cases, function (t) { + return t.on === true; + }); + }) === true + ) + e.select('.up_pftv_inner-icon-container').style('visibility', 'hidden'); + } + a(), + (r = u.filters), + (t = u.variantViewer.features), + (i = []), + c.each(t, function (t) { + var e = c.filter(t.variants, function (n) { + return c.every(r, function (t) { + var e = c.filter(t.cases, 'on'); + return ( + e.length === t.cases.length || + c.some(e, function (t) { + return c.every(c.keys(t.properties), function (e) { + return t.properties[e] instanceof Array + ? c.some(t.properties[e], function (t) { + return n[e] == t; + }) + : 'string' == typeof t.properties[e] + ? t.properties[e] === n[e] + : t.properties[e] instanceof RegExp + ? t.properties[e].test(n[e]) + : t.properties[e] instanceof Function + ? t.properties[e](n, t.label) + : n[e] === t.properties[e]; + }); + }) + ); + }); + }), + t = A.extend(!0, {}, t); + (t.variants = e), i.push(t); + }); + var n, + r, + i, + e = i; + u.variantViewer.updateData(e); + }), + a = + (n + .append('div') + .attr('class', function (t) { + return t.label instanceof Array + ? 'up_pftv_legend up_pftv_legend_double' + : 'up_pftv_legend'; + }) + .attr('style', r), + n + .append('span') + .attr('class', 'up_pftv_legend_text') + .html(function (t) { + return t.label instanceof Array ? t.label.join('<br/>') : t.label; + }), + function () { + n.select('div').attr('style', r); + }); + }), + (u.reset = function () { + c.each(u.filters, function (t) { + c.each(t.cases, function (t) { + t.on = !0; + }); + }), + l.select('.up_pftv_inner-icon-container').style('visibility', 'hidden'), + l.selectAll('.up_pftv_legend').attr('style', r); + }), + u + ); + }; + }, + { + './Constants': 5, + './Evidence': 9, + './VariantLegendDialog': 18, + d3: 33, + jquery: 1, + underscore: 70, + }, + ], + 18: [ + function (t, e, n) { + 'use strict'; + var r = t('d3'), + t = + (t('underscore'), + { + UPDiseaseColor: '#990000', + deleteriousColor: '#002594', + benignColor: '#8FE3FF', + UPNonDiseaseColor: '#99cc00', + othersColor: '#FFCC00', + unknownColor: '#808080', + consequenceColors: [ + '#66c2a5', + '#8da0cb', + '#e78ac3', + '#e5c494', + '#fc8d62', + '#ffd92f', + '#a6d854', + '#b3b3b3', + ], + getPredictionColor: r.scale.linear().domain([0, 1]).range(['#002594', '#8FE3FF']), + createLegendDialog: function (t, e) { + var n; + return ( + (this.dialog = t.append('div').attr('class', 'up_pftv_dialog-container')), + i((n = this), n.UPDiseaseColor, 'Disease (UniProt)'), + i(n, n.getPredictionColor(0), 'Deleterious (Large scale studies)'), + n.dialog + .append('div') + .selectAll('div') + .data([0.2, 0.4, 0.6, 0.8]) + .enter() + .append('div') + .classed('up_pftv_legend', !0) + .append('span') + .classed('up_pftv_legendRect', !0) + .style('background-color', function (t) { + return n.getPredictionColor(t); + }), + i(n, n.getPredictionColor(1), 'Benign (Large scale studies)'), + i(n, n.UPNonDiseaseColor, 'Non-disease (UniProt)'), + i(n, n.othersColor, 'Init codon, stop lost & gained'), + i(n, n.unknownColor, 'Unknown'), + this.dialog + ); + }, + }); + function i(t, e, n) { + (t = t.dialog.append('div').classed('up_pftv_legend', !0)) + .append('span') + .classed('up_pftv_legendRect', !0) + .style('background-color', e), + t.append('span').classed('up_pftv_legendTitle', !0).text(n); + } + e.exports = t; + }, + { d3: 33, underscore: 70 }, + ], + 19: [ + function (t, e, n) { + 'use strict'; + function o(t, e, n, r) { + var i = !1, + o = void 0 !== r && 'unknown' !== r ? void 0 !== n : !1; + return (i = void 0 !== e ? void 0 !== t : i) && o + ? (t + (1 - n)) / 2 + : i && !o + ? t + : !i && o + ? 1 - n + : 'unknown' === r + ? 1 + : void 0; + } + var m = t('d3'), + v = t('underscore'), + b = t('./ViewerHelper'), + y = t('./VariantLegendDialog'), + w = t('./VariantFilterDialog'), + a = t('./Evidence'), + E = t('./Constants'), + B = [ + 'G', + 'A', + 'V', + 'L', + 'I', + 'S', + 'T', + 'C', + 'M', + 'D', + 'N', + 'E', + 'Q', + 'R', + 'K', + 'H', + 'F', + 'Y', + 'W', + 'P', + 'd', + '*', + ], + C = function (t, e) { + if ('*' === t.alternativeSequence || t.begin > e.maxPos) return y.othersColor; + if ( + t.sourceType === a.variantSourceType.uniprot || + t.sourceType === a.variantSourceType.mixed + ) + return a.existAssociation(t.association) ? y.UPDiseaseColor : y.UPNonDiseaseColor; + if (t.sourceType === a.variantSourceType.lss && a.existAssociation(t.association)) + return y.UPDiseaseColor; + var n = {}, + r = + (t.externalData && + ((i = v.keys(t.externalData)), + (n = t.externalData[i[0]]), + (i = o(n.siftScore, n.siftPrediction, n.polyphenScore, n.polyphenPrediction)), + (n.siftInUse = !1), + (n.polyphenInUse = !1)), + o(t.siftScore, t.siftPrediction, t.polyphenScore, t.polyphenPrediction)); + if (t.sourceType === a.variantSourceType.lss && void 0 === r) return y.unknownColor; + var i; + if (!0 === e.overwritePredictions) { + if (void 0 !== i) + return ( + (t.siftInUse = !1), + (t.polyphenInUse = !1), + (n.siftInUse = !0), + (n.polyphenInUse = !0), + y.getPredictionColor(i) + ); + if (void 0 !== r) return y.getPredictionColor(r); + } else { + if (void 0 !== r) return y.getPredictionColor(r); + if (void 0 !== i) + return ( + (t.siftInUse = !1), + (t.polyphenInUse = !1), + (n.siftInUse = !0), + (n.polyphenInUse = !0), + y.getPredictionColor(i) + ); + } + return t.externalData + ? n.consequence && -1 !== (e = E.getConsequenceTypes().indexOf(n.consequence)) + ? y.consequenceColors[e % y.consequenceColors.length] + : 'black' + : y.othersColor; + }, + x = function (t) { + return t.width - 20; + }, + I = function (t) { + return t.width - 18; + }; + e.exports = function (l, t, u, c, e, n, r) { + var i, + o, + A, + h = this, + a = + ((h.height = n), + (h.width = c.width), + (h.showManual = !0), + (h.showAutomatic = !0), + (h.xScale = c.xScale), + (h.margin = { top: 20, bottom: 10 }), + (h.features = t), + (h.filter = new w(c, r, h)), + (h.yScale = m.scale + .ordinal() + .domain(B) + .rangePoints([0, h.height - h.margin.top - h.margin.bottom])), + (h.svg = b.createSVG(u, h.width, h.height, c, 'up_pftv_variants-svg')), + (i = m.scale.ordinal()), + (o = m.scale.linear()), + (A = m.scale.pow().exponent(0.001).domain([0, 1]).range([5, 10])), + (s.xScale = function (t) { + return arguments.length ? ((i = t), s) : i; + }), + (s.yScale = function (t) { + return arguments.length ? ((o = t), s) : o; + }), + s.xScale(h.xScale).yScale(h.yScale)); + function s(t) { + var s; + t.each(function (t) { + s = m.select(this); + var e, + n, + r, + i, + o, + a, + t = v.filter(t, function (t) { + return 0 !== t.variants.length; + }); + (s = s.selectAll('.up_pftv_var-series').data(t, function (t) { + return t.pos; + })) + .enter() + .append('g') + .transition() + .duration(250) + .attr('class', 'up_pftv_var-series'), + (e = h), + (r = A), + (i = c), + (t = u), + (o = l), + (n = (n = s).selectAll('circle').data(function (t) { + return t.variants; + })), + (a = n + .enter() + .append('circle') + .attr('r', function (t) { + return r(0); + })), + n + .attr('class', function (t) { + return t === i.selectedFeature + ? 'up_pftv_variant up_pftv_activeFeature' + : 'up_pftv_variant'; + }) + .attr('cx', function (t) { + return e.xScale(Math.min(t.begin, i.sequence.length)); + }) + .attr('cy', function (t) { + return e.yScale(t.alternativeSequence.charAt(0)); + }) + .attr('name', function (t) { + var e = '*' === t.alternativeSequence ? 'STOP' : t.alternativeSequence; + return (t.internalId = 'var_' + t.wildType + t.begin + e), t.internalId; + }) + .attr('fill', function (t) { + return C(t, i); + }) + .attr('stroke', function (t) { + var e; + return t.externalData + ? ((e = v.keys(t.externalData)), + (t = t.externalData[e[0]]).consequence && + -1 !== (e = E.getConsequenceTypes().indexOf(t.consequence)) + ? y.consequenceColors[e % y.consequenceColors.length] + : 'black') + : 'none'; + }), + b.addEventsClassAndTitle(o, a, i, t), + n.exit().remove(), + s.exit().transition().duration(250).remove(); + }); + } + (n = c), + (r = t), + (t = a), + (d = (p = h).svg.append('g').attr('transform', 'translate(0,' + p.margin.top + ')')), + (f = d.append('g').attr('clip-path', 'url(#plotAreaClip)')), + d + .append('clipPath') + .attr('id', 'plotAreaClip') + .append('rect') + .attr({ width: x(p), height: p.height }) + .attr('transform', 'translate(10, -10)'), + (f = f.datum(r).call(t)), + (r = m.svg.axis().scale(p.yScale).tickSize(-p.width).orient('left')), + (t = m.svg.axis().scale(p.yScale).orient('right')), + d + .append('g') + .attr('transform', 'translate(12 ,0)') + .attr('class', 'variation-y axis left') + .call(r), + d + .append('g') + .attr('transform', 'translate(' + I(p) + ', 0)') + .attr('class', 'variation-y axis right') + .call(t), + n.globalContainer.selectAll('g.variation-y g.tick').attr('class', function (t) { + return 'tick up_pftv_aa_' + ('*' === t ? 'loss' : 'del' === t ? 'deletion' : t); + }); + var p, + d, + f, + g = f; + return ( + (this.update = function () { + var t; + (h.width = c.width), + (t = h).svg.select('#plotAreaClip rect').attr('width', function () { + return x(t); + }), + t.svg.selectAll('.variation-y.axis.left line').attr('x2', I(t)), + t.svg + .selectAll('.variation-y.axis.right') + .attr('transform', 'translate(' + I(t) + ', 0)'), + g.call(a), + (c.selectedFeature || c.highlight) && b.updateHighlight(c); + }), + (this.updateData = function (t) { + g.datum(t), + e.categoryViewer.updateData(t), + this.update(), + c.dispatcher.variantDataUpdated(); + }), + (this.reset = function () { + this.filter.reset(), this.updateData(this.features); + }), + this + ); + }; + }, + { + './Constants': 5, + './Evidence': 9, + './VariantFilterDialog': 17, + './VariantLegendDialog': 18, + './ViewerHelper': 20, + d3: 33, + underscore: 70, + }, + ], + 20: [ + function (t, e, n) { + 'use strict'; + var o, + a, + s = t('d3'), + l = t('./TooltipFactory'), + u = t('./FeatureFactory'), + c = + ((o = { x: -1, y: -1 }), + (a = { x: -2, y: -2 }), + { + createSVG: function (t, e, n, r, i) { + t = t + .append('svg') + .attr('width', '100%') + .attr('height', n) + .on('mousedown', function () { + (o = { x: s.event.pageX, y: s.event.pageY }), (a = { x: -2, y: -2 }); + }) + .on('mouseup', function () { + (a = { x: s.event.pageX, y: s.event.pageY }), + o.x !== a.x || + o.y !== a.y || + r.overFeature || + (r.selectedFeature + ? c.selectFeature(r.selectedFeature, r.selectedFeatureElement, r) + : r.highlight && c.resetHighlight(r)), + (o = { x: -1, y: -1 }); + }) + .call(r.zoom); + return ( + i && t.attr('class', i), + t + .append('g') + .append('path') + .classed('up_pftv_highlight', !0) + .attr('d', 'M-1,-1') + .attr('transform', 'translate(-1,-1)') + .attr('height', n), + t + ); + }, + }); + (c.highlightPath = function (t, e, n) { + var e = e.xScale(2) - e.xScale(1), + r = e / 2, + i = e * (t.end ? t.end - t.begin + 1 : 1), + t = t.type + ? u.isContinuous(t.type) + ? 'M' + + -r + + ',0L' + + (i - r) + + ',0L' + + (i - r) + + ',' + + n + + 'L' + + -r + + ',' + + n + + 'Z' + : 'M' + + -r + + ',0L' + + (i - r) + + ',0L' + + (i - r) + + ',' + + n + + 'L' + + (i - r - e) + + ',' + + n + + 'L' + + (i - r - e) + + ',0L' + + (e - r) + + ',0L' + + (e - r) + + ',' + + n + + 'L' + + -r + + ',' + + n + + 'Z' + : 'M-1,-1'; + return t; + }), + (c.updateFeatureHighlightSelector = function (t) { + t.selectedFeature + ? t.updateFeatureHighlightSelector(t.selectedFeature.begin, t.selectedFeature.end) + : t.highlight + ? t.updateFeatureHighlightSelector(t.highlight.begin, t.highlight.end) + : t.updateFeatureHighlightSelector(-10, -10); + }), + (c.updateHighlight = function (e) { + var n; + if (e.selectedFeature) n = e.selectedFeature; + else { + if (!e.highlight) return; + n = e.highlight; + } + var t = e.xScale(n.begin); + e.globalContainer + .selectAll('.up_pftv_highlight') + .attr('d', function () { + var t = s.select(this).attr('height'); + return c.highlightPath(n, e, t); + }) + .attr('transform', 'translate(' + t + ',0)'), + this.updateFeatureHighlightSelector(e); + }), + (c.resetHighlight = function (t) { + (t.highlight = void 0), + t.globalContainer + .selectAll('.up_pftv_highlight') + .attr('d', 'M-1,-1') + .attr('transform', 'translate(-1,-1)'), + this.updateFeatureHighlightSelector(t); + }), + (c.deselectFeature = function (t) { + this.selectFeature(t.selectedFeature, t.selectedFeatureElement, t); + }), + (c.selectFeature = function (t, e, n) { + var r, i; + t && + e && + ((n.highlight = void 0), + (r = s.select(e)), + (i = { feature: n.selectedFeature, elem: n.selectedFeatureElement }), + t === n.selectedFeature + ? ((n.selectedFeature = void 0), + (n.selectedFeatureElement = void 0), + this.resetHighlight(n)) + : ((n.selectedFeature = t), + (n.selectedFeatureElement = e), + this.updateHighlight(n)), + (e = r.classed('up_pftv_activeFeature')), + n.globalContainer + .selectAll('svg path.up_pftv_activeFeature') + .classed('up_pftv_activeFeature', !1), + r.classed('up_pftv_activeFeature', !e), + i.feature && + n.dispatcher.featureDeselected({ + feature: i.feature, + color: s.select(i.elem).style('fill'), + }), + t !== i.feature && + (i.elem && s.select(i.elem).classed('up_pftv_activeFeature', !1), + n.dispatcher.featureSelected({ + feature: n.selectedFeature, + color: r.style('fill'), + }))); + }), + (c.centerToHighlightedSelection = function (t) { + var e, n; + t.selectedFeature ? (n = t.selectedFeature) : t.highlight && (n = t.highlight), + n && + ((e = (e = t.xScale.domain())[e.length - 1]), + (n = + (n = +n.begin + (n.end ? Math.floor((+n.end - +n.begin) / 2) : 0)) - e / 2 < 1 + ? 1 + : n - e / 2) + + e > + t.sequence.length && (n = t.sequence.length - e), + t.xScale.domain([n, n + e])); + }), + (c.addEventsClassAndTitle = function (n, t, r, i) { + t.classed('up_pftv_activeFeature', function (t) { + return t === r.selectedFeature; + }) + .on('click', function (t) { + var e = s.select(this); + e.classed('up_pftv_variant_hidden') || + (e.classed('up_pftv_activeFeature') + ? r.globalContainer + .selectAll('.up_pftv_tooltip-container') + .transition(20) + .style('opacity', 0) + .style('display', 'none') + .remove() + : l.createTooltip(r, n, t, i), + c.selectFeature(t, this, r)); + }) + .on('mouseover', function (t) { + (r.overFeature = !0), + s.select(this).classed('up_pftv_variant') && + ((t = + '*' === (t = t.alternativeSequence.charAt(0)) + ? 'loss' + : 'del' === t + ? 'deletion' + : t), + r.globalContainer + .selectAll('g.up_pftv_aa_' + t + ' line') + .style('opacity', 1)); + }) + .on('mouseout', function (t) { + (r.overFeature = !1), + s.select(this).classed('up_pftv_variant') && + ((t = + '*' === (t = t.alternativeSequence.charAt(0)) + ? 'loss' + : 'del' === t + ? 'deletion' + : t), + r.globalContainer + .selectAll('g.up_pftv_aa_' + t + ' line') + .style('opacity', 0.4)); + }); + }), + (e.exports = c); + }, + { './FeatureFactory': 10, './TooltipFactory': 14, d3: 33 }, + ], + 21: [ + function (t, e, n) { + e.exports = { + categories: [ + { name: 'DOMAINS_AND_SITES', label: 'Domains & sites', visualizationType: 'basic' }, + { + name: 'MOLECULE_PROCESSING', + label: 'Molecule processing', + visualizationType: 'basic', + }, + { name: 'PTM', label: 'PTM', visualizationType: 'basic' }, + { + name: 'SEQUENCE_INFORMATION', + label: 'Sequence information', + visualizationType: 'basic', + }, + { name: 'STRUCTURAL', label: 'Structural features', visualizationType: 'basic' }, + { name: 'TOPOLOGY', label: 'Topology', visualizationType: 'basic' }, + { name: 'MUTAGENESIS', label: 'Mutagenesis', visualizationType: 'basic' }, + { name: 'PROTEOMICS', label: 'Proteomics', visualizationType: 'basic' }, + { name: 'ANTIGEN', label: 'Antigenic sequences', visualizationType: 'basic' }, + { name: 'VARIATION', label: 'Variants', visualizationType: 'variant' }, + ], + trackNames: { + chain: { + label: 'Chain', + tooltip: + '(aka mature region). This describes the extent of a polypeptide chain in the mature protein following processing', + }, + transit: { + label: 'Transit peptide', + tooltip: 'This describes the extent of a transit peptide', + }, + init_met: { + label: 'Initiator methionine', + tooltip: + 'This indicates that the initiator methionine is cleaved from the mature protein', + }, + propep: { + label: 'Propeptide', + tooltip: 'Part of a protein that is cleaved during maturation or activation', + }, + peptide: { + label: 'Peptide', + tooltip: 'The position and length of an active peptide in the mature protein', + }, + signal: { label: 'Signal peptide', tooltip: 'N-terminal signal peptide' }, + helix: { + label: 'Helix', + tooltip: 'The positions of experimentally determined helical regions', + }, + strand: { + label: 'Beta strand', + tooltip: 'The positions of experimentally determined beta strands', + }, + turn: { + label: 'Turn', + tooltip: 'The positions of experimentally determined hydrogen-bonded turns', + }, + disulfid: { + label: 'Disulfide bond', + tooltip: 'The positions of cysteine residues participating in disulphide bonds', + }, + crosslnk: { + label: 'Cross-link', + tooltip: + 'Covalent linkages of various types formed between two proteins or between two parts of the same protein', + }, + region: { + label: 'Region', + tooltip: + 'Regions in multifunctional enzymes or fusion proteins, or characteristics of a region, e.g., protein-protein interactions mediation', + }, + coiled: { + label: 'Coiled coil', + tooltip: + 'Coiled coils are built by two or more alpha-helices that wind around each other to form a supercoil', + }, + motif: { + label: 'Motif', + tooltip: 'Short conserved sequence motif of biological significance', + }, + repeat: { + label: 'Repeat', + tooltip: 'Repeated sequence motifs or repeated domains within the protein', + }, + ca_bind: { + label: 'Calcium binding', + tooltip: 'Calcium-binding regions, such as the EF-hand motif', + }, + dna_bind: { + label: 'DNA binding', + tooltip: + 'DNA-binding domains such as AP2/ERF domain, the ETS domain, the Fork-Head domain, the HMG box and the Myb domain', + }, + domain: { + label: 'Domain', + tooltip: + 'Specific combination of secondary structures organized into a characteristic three-dimensional structure or fold', + }, + zn_fing: { + label: 'Zinc finger', + tooltip: + 'Small, functional, independently folded domain that coordinates one or more zinc ions', + }, + np_bind: { + label: 'Nucleotide binding', + tooltip: + '(aka flavin-binding). Region in the protein which binds nucleotide phosphates', + }, + metal: { label: 'Metal binding', tooltip: 'Binding site for a metal ion' }, + site: { + label: 'Site', + tooltip: 'Any interesting single amino acid site on the sequence', + }, + binding: { + label: 'Binding site', + tooltip: 'Binding site for any chemical group (co-enzyme, prosthetic group, etc.)', + }, + act_site: { + label: 'Active site', + tooltip: 'Amino acid(s) directly involved in the activity of an enzyme', + }, + mod_res: { + label: 'Modified residue', + tooltip: + 'Modified residues such as phosphorylation, acetylation, acylation, methylation', + }, + lipid: { label: 'Lipidation', tooltip: 'Covalently attached lipid group(s)' }, + carbohyd: { label: 'Glycosylation', tooltip: 'Covalently attached glycan group(s)' }, + compbias: { + label: 'Compositional bias', + tooltip: + 'Position of regions of compositional bias within the protein and the particular amino acids that are over-represented within those regions', + }, + conflict: { + label: 'Sequence conflict', + tooltip: 'Sequence discrepancies of unknown origin', + }, + non_cons: { + label: 'Non-adjacent residues', + tooltip: + 'Indicates that two residues in a sequence are not consecutive and that there is an undetermined number of unsequenced residues between them', + }, + non_ter: { + label: 'Non-terminal residue', + tooltip: + 'The sequence is incomplete. The residue is not the terminal residue of the complete protein', + }, + unsure: { + label: 'Sequence uncertainty', + tooltip: + 'Regions of a sequence for which the authors are unsure about the sequence assignment', + }, + non_std: { + label: 'Non-standard residue', + tooltip: 'Non-standard amino acids (selenocysteine and pyrrolysine)', + }, + mutagen: { + label: 'Mutagenesis', + tooltip: 'Site which has been experimentally altered by mutagenesis', + }, + topo_dom: { + label: 'Topological domain', + tooltip: 'Location of non-membrane regions of membrane-spanning proteins', + }, + transmem: { label: 'Transmembrane', tooltip: 'Extent of a membrane-spanning region' }, + intramem: { + label: 'Intramembrane', + tooltip: 'Extent of a region located in a membrane without crossing it', + }, + variant: { + label: 'Natural variant', + tooltip: + 'Natural variant of the protein, including polymorphisms, variations between strains, isolates or cultivars, disease-associated mutations and RNA editing events', + }, + unique: { label: 'Unique peptide', tooltip: '' }, + non_unique: { label: 'Non-unique peptide', tooltip: '' }, + antigen: { label: 'Antibody binding sequences', tooltip: '' }, + }, + }; + }, + {}, + ], + 22: [ + function (t, e, n) { + 'use strict'; + (n.byteLength = function (t) { + var t = c(t), + e = t[0], + t = t[1]; + return (3 * (e + t)) / 4 - t; + }), + (n.toByteArray = function (t) { + var e, + n, + r = c(t), + i = r[0], + r = r[1], + o = new u( + (function (t, e) { + return (3 * (t + e)) / 4 - e; + })(i, r), + ), + a = 0, + s = 0 < r ? i - 4 : i; + for (n = 0; n < s; n += 4) + (e = + (l[t.charCodeAt(n)] << 18) | + (l[t.charCodeAt(n + 1)] << 12) | + (l[t.charCodeAt(n + 2)] << 6) | + l[t.charCodeAt(n + 3)]), + (o[a++] = (e >> 16) & 255), + (o[a++] = (e >> 8) & 255), + (o[a++] = 255 & e); + 2 === r && + ((e = (l[t.charCodeAt(n)] << 2) | (l[t.charCodeAt(n + 1)] >> 4)), + (o[a++] = 255 & e)); + 1 === r && + ((e = + (l[t.charCodeAt(n)] << 10) | + (l[t.charCodeAt(n + 1)] << 4) | + (l[t.charCodeAt(n + 2)] >> 2)), + (o[a++] = (e >> 8) & 255), + (o[a++] = 255 & e)); + return o; + }), + (n.fromByteArray = function (t) { + for (var e, n = t.length, r = n % 3, i = [], o = 0, a = n - r; o < a; o += 16383) + i.push( + (function (t, e, n) { + for (var r, i = [], o = e; o < n; o += 3) + (r = + ((t[o] << 16) & 16711680) + ((t[o + 1] << 8) & 65280) + (255 & t[o + 2])), + i.push( + (function (t) { + return ( + s[(t >> 18) & 63] + s[(t >> 12) & 63] + s[(t >> 6) & 63] + s[63 & t] + ); + })(r), + ); + return i.join(''); + })(t, o, a < o + 16383 ? a : o + 16383), + ); + 1 == r + ? ((e = t[n - 1]), i.push(s[e >> 2] + s[(e << 4) & 63] + '==')) + : 2 == r && + ((e = (t[n - 2] << 8) + t[n - 1]), + i.push(s[e >> 10] + s[(e >> 4) & 63] + s[(e << 2) & 63] + '=')); + return i.join(''); + }); + for ( + var s = [], + l = [], + u = 'undefined' != typeof Uint8Array ? Uint8Array : Array, + r = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', + i = 0, + o = r.length; + i < o; + ++i + ) + (s[i] = r[i]), (l[r.charCodeAt(i)] = i); + function c(t) { + var e = t.length; + if (0 < e % 4) throw new Error('Invalid string. Length must be a multiple of 4'); + (t = t.indexOf('=')), (e = (t = -1 === t ? e : t) === e ? 0 : 4 - (t % 4)); + return [t, e]; + } + (l['-'.charCodeAt(0)] = 62), (l['_'.charCodeAt(0)] = 63); + }, + {}, + ], + 23: [function (t, e, n) {}, {}], + 24: [ + function (t, e, n) { + 'use strict'; + function a(t, e) { + var n = document.head || document.getElementsByTagName('head')[0], + r = i[i.length - 1]; + if ((((e = e || {}).insertAt = e.insertAt || 'bottom'), 'top' === e.insertAt)) + r + ? r.nextSibling + ? n.insertBefore(t, r.nextSibling) + : n.appendChild(t) + : n.insertBefore(t, n.firstChild), + i.push(t); + else { + if ('bottom' !== e.insertAt) + throw new Error( + "Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.", + ); + n.appendChild(t); + } + } + var i = []; + e.exports = { + createLink: function (t, e) { + var n, + r, + i = document.head || document.getElementsByTagName('head')[0], + o = document.createElement('link'); + for (n in ((o.href = t), (o.rel = 'stylesheet'), e)) + e.hasOwnProperty(n) && ((r = e[n]), o.setAttribute('data-' + n, r)); + i.appendChild(o); + }, + createStyle: function (t, e, n) { + n = n || {}; + var r, + i, + o = document.createElement('style'); + for (r in ((o.type = 'text/css'), e)) + e.hasOwnProperty(r) && ((i = e[r]), o.setAttribute('data-' + r, i)); + o.sheet + ? ((o.innerHTML = t), (o.sheet.cssText = t), a(o, { insertAt: n.insertAt })) + : o.styleSheet + ? (a(o, { insertAt: n.insertAt }), (o.styleSheet.cssText = t)) + : (o.appendChild(document.createTextNode(t)), a(o, { insertAt: n.insertAt })); + }, + }; + }, + {}, + ], + 25: [ + function (t, e, n) { + e.exports = { + bitwise: !0, + camelcase: !0, + curly: !0, + eqeqeq: !0, + es3: !0, + forin: !0, + immed: !0, + indent: 4, + latedef: !0, + newcap: !0, + noarg: !0, + noempty: !0, + nonew: !0, + plusplus: !0, + quotmark: !0, + undef: !0, + unused: !0, + strict: !0, + trailing: !0, + asi: !1, + boss: !1, + debug: !1, + eqnull: !1, + esnext: !1, + evil: !1, + expr: !1, + funcscope: !1, + globalstrict: !0, + iterator: !1, + lastsemic: !1, + laxbreak: !1, + laxcomma: !1, + loopfunc: !1, + moz: !1, + multistr: !1, + proto: !1, + scripturl: !1, + smarttabs: !1, + shadow: !1, + sub: !0, + supernew: !1, + validthis: !1, + browser: !0, + globals: { + __dirname: !0, + process: !0, + exports: !0, + module: !0, + console: !0, + define: !0, + require: !0, + JSON: !0, + }, + }; + }, + {}, + ], + 26: [ + function (_, t, T) { + !function (t) { + !function () { + 'use strict'; + var C = _('base64-js'), + o = _('ieee754'), + t = + 'function' == typeof Symbol && 'function' == typeof Symbol.for + ? Symbol.for('nodejs.util.inspect.custom') + : null, + e = + ((T.Buffer = A), + (T.SlowBuffer = function (t) { + +t != t && (t = 0); + return A.alloc(+t); + }), + (T.INSPECT_MAX_BYTES = 50), + 2147483647); + function s(t) { + if (e < t) + throw new RangeError('The value "' + t + '" is invalid for option "size"'); + t = new Uint8Array(t); + return Object.setPrototypeOf(t, A.prototype), t; + } + function A(t, e, n) { + if ('number' != typeof t) return r(t, e, n); + if ('string' == typeof e) + throw new TypeError( + 'The "string" argument must be of type string. Received type number', + ); + return a(t); + } + function r(t, e, n) { + if ('string' == typeof t) { + var r = t, + i = e; + if (!A.isEncoding((i = 'string' == typeof i && '' !== i ? i : 'utf8'))) + throw new TypeError('Unknown encoding: ' + i); + var o = 0 | h(r, i), + a = s(o); + return (a = (r = a.write(r, i)) !== o ? a.slice(0, r) : a); + } + if (ArrayBuffer.isView(t)) + return k((i = t), Uint8Array) + ? u((o = new Uint8Array(i)).buffer, o.byteOffset, o.byteLength) + : l(i); + if (null != t) { + if (k(t, ArrayBuffer) || (t && k(t.buffer, ArrayBuffer))) return u(t, e, n); + if ( + 'undefined' != typeof SharedArrayBuffer && + (k(t, SharedArrayBuffer) || (t && k(t.buffer, SharedArrayBuffer))) + ) + return u(t, e, n); + if ('number' == typeof t) + throw new TypeError( + 'The "value" argument must not be of type number. Received type number', + ); + r = t.valueOf && t.valueOf(); + if (null != r && r !== t) return A.from(r, e, n); + a = (function (t) { + { + var e, n; + if (A.isBuffer(t)) + return ( + (e = 0 | c(t.length)), 0 !== (n = s(e)).length && t.copy(n, 0, 0, e), n + ); + } + if (void 0 !== t.length) + return 'number' != typeof t.length || F(t.length) ? s(0) : l(t); + if ('Buffer' === t.type && Array.isArray(t.data)) return l(t.data); + })(t); + if (a) return a; + if ( + 'undefined' != typeof Symbol && + null != Symbol.toPrimitive && + 'function' == typeof t[Symbol.toPrimitive] + ) + return A.from(t[Symbol.toPrimitive]('string'), e, n); + } + throw new TypeError( + 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + + typeof t, + ); + } + function i(t) { + if ('number' != typeof t) + throw new TypeError('"size" argument must be of type number'); + if (t < 0) + throw new RangeError('The value "' + t + '" is invalid for option "size"'); + } + function a(t) { + return i(t), s(t < 0 ? 0 : 0 | c(t)); + } + function l(t) { + for (var e = t.length < 0 ? 0 : 0 | c(t.length), n = s(e), r = 0; r < e; r += 1) + n[r] = 255 & t[r]; + return n; + } + function u(t, e, n) { + if (e < 0 || t.byteLength < e) + throw new RangeError('"offset" is outside of buffer bounds'); + if (t.byteLength < e + (n || 0)) + throw new RangeError('"length" is outside of buffer bounds'); + t = + void 0 === e && void 0 === n + ? new Uint8Array(t) + : void 0 === n + ? new Uint8Array(t, e) + : new Uint8Array(t, e, n); + return Object.setPrototypeOf(t, A.prototype), t; + } + function c(t) { + if (e <= t) + throw new RangeError( + 'Attempt to allocate Buffer larger than maximum size: 0x' + + e.toString(16) + + ' bytes', + ); + return 0 | t; + } + function h(t, e) { + if (A.isBuffer(t)) return t.length; + if (ArrayBuffer.isView(t) || k(t, ArrayBuffer)) return t.byteLength; + if ('string' != typeof t) + throw new TypeError( + 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + + typeof t, + ); + var n = t.length, + r = 2 < arguments.length && !0 === arguments[2]; + if (!r && 0 === n) return 0; + for (var i = !1; ; ) + switch (e) { + case 'ascii': + case 'latin1': + case 'binary': + return n; + case 'utf8': + case 'utf-8': + return M(t).length; + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return 2 * n; + case 'hex': + return n >>> 1; + case 'base64': + return D(t).length; + default: + if (i) return r ? -1 : M(t).length; + (e = ('' + e).toLowerCase()), (i = !0); + } + } + function n(t, e, n) { + var r, + i = !1; + if ((e = void 0 === e || e < 0 ? 0 : e) > this.length) return ''; + if ((n = void 0 === n || n > this.length ? this.length : n) <= 0) return ''; + if ((n >>>= 0) <= (e >>>= 0)) return ''; + for (t = t || 'utf8'; ; ) + switch (t) { + case 'hex': + var o = this, + a = e, + s = n, + l = o.length; + (!s || s < 0 || l < s) && (s = l); + for (var u = '', c = (a = !a || a < 0 ? 0 : a); c < s; ++c) u += Q[o[c]]; + return u; + case 'utf8': + case 'utf-8': + return x(this, e, n); + case 'ascii': + var A = this, + l = e, + h = n, + p = ''; + h = Math.min(A.length, h); + for (var d = l; d < h; ++d) p += String.fromCharCode(127 & A[d]); + return p; + case 'latin1': + case 'binary': + var f = this, + a = e, + g = n, + m = ''; + g = Math.min(f.length, g); + for (var v = a; v < g; ++v) m += String.fromCharCode(f[v]); + return m; + case 'base64': + return ( + (b = this), + (r = n), + 0 === (y = e) && r === b.length + ? C.fromByteArray(b) + : C.fromByteArray(b.slice(y, r)) + ); + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + for ( + var b = e, y = n, w = this.slice(b, y), E = '', B = 0; + B < w.length - 1; + B += 2 + ) + E += String.fromCharCode(w[B] + 256 * w[B + 1]); + return E; + default: + if (i) throw new TypeError('Unknown encoding: ' + t); + (t = (t + '').toLowerCase()), (i = !0); + } + } + function p(t, e, n) { + var r = t[e]; + (t[e] = t[n]), (t[n] = r); + } + function d(t, e, n, r, i) { + if (0 === t.length) return -1; + if ( + ('string' == typeof n + ? ((r = n), (n = 0)) + : 2147483647 < n + ? (n = 2147483647) + : n < -2147483648 && (n = -2147483648), + (n = (n = F((n = +n)) ? (i ? 0 : t.length - 1) : n) < 0 ? t.length + n : n) >= + t.length) + ) { + if (i) return -1; + n = t.length - 1; + } else if (n < 0) { + if (!i) return -1; + n = 0; + } + if (('string' == typeof e && (e = A.from(e, r)), A.isBuffer(e))) + return 0 === e.length ? -1 : f(t, e, n, r, i); + if ('number' == typeof e) + return ( + (e &= 255), + 'function' == typeof Uint8Array.prototype.indexOf + ? (i ? Uint8Array.prototype.indexOf : Uint8Array.prototype.lastIndexOf).call( + t, + e, + n, + ) + : f(t, [e], n, r, i) + ); + throw new TypeError('val must be string, number or Buffer'); + } + function f(t, e, n, r, i) { + var o = 1, + a = t.length, + s = e.length; + if ( + void 0 !== r && + ('ucs2' === (r = String(r).toLowerCase()) || + 'ucs-2' === r || + 'utf16le' === r || + 'utf-16le' === r) + ) { + if (t.length < 2 || e.length < 2) return -1; + (a /= o = 2), (s /= 2), (n /= 2); + } + function l(t, e) { + return 1 === o ? t[e] : t.readUInt16BE(e * o); + } + if (i) + for (var u = -1, c = n; c < a; c++) + if (l(t, c) === l(e, -1 === u ? 0 : c - u)) { + if (c - (u = -1 === u ? c : u) + 1 === s) return u * o; + } else -1 !== u && (c -= c - u), (u = -1); + else + for (c = n = a < n + s ? a - s : n; 0 <= c; c--) { + for (var A = !0, h = 0; h < s; h++) + if (l(t, c + h) !== l(e, h)) { + A = !1; + break; + } + if (A) return c; + } + return -1; + } + function g(t, e, n, r) { + return S( + (function (t) { + for (var e = [], n = 0; n < t.length; ++n) e.push(255 & t.charCodeAt(n)); + return e; + })(e), + t, + n, + r, + ); + } + function m(t, e, n, r) { + return S( + (function (t, e) { + for (var n, r, i = [], o = 0; o < t.length && !((e -= 2) < 0); ++o) + (r = t.charCodeAt(o)), (n = r >> 8), (r = r % 256), i.push(r), i.push(n); + return i; + })(e, t.length - n), + t, + n, + r, + ); + } + function x(t, e, n) { + n = Math.min(t.length, n); + for (var r = [], i = e; i < n; ) { + var o, + a, + s, + l, + u = t[i], + c = null, + A = 239 < u ? 4 : 223 < u ? 3 : 191 < u ? 2 : 1; + if (i + A <= n) + switch (A) { + case 1: + u < 128 && (c = u); + break; + case 2: + 128 == (192 & (o = t[i + 1])) && + 127 < (l = ((31 & u) << 6) | (63 & o)) && + (c = l); + break; + case 3: + (o = t[i + 1]), + (a = t[i + 2]), + 128 == (192 & o) && + 128 == (192 & a) && + 2047 < (l = ((15 & u) << 12) | ((63 & o) << 6) | (63 & a)) && + (l < 55296 || 57343 < l) && + (c = l); + break; + case 4: + (o = t[i + 1]), + (a = t[i + 2]), + (s = t[i + 3]), + 128 == (192 & o) && + 128 == (192 & a) && + 128 == (192 & s) && + 65535 < + (l = + ((15 & u) << 18) | ((63 & o) << 12) | ((63 & a) << 6) | (63 & s)) && + l < 1114112 && + (c = l); + } + null === c + ? ((c = 65533), (A = 1)) + : 65535 < c && + ((c -= 65536), r.push(((c >>> 10) & 1023) | 55296), (c = 56320 | (1023 & c))), + r.push(c), + (i += A); + } + var h = r, + p = h.length; + if (p <= v) return String.fromCharCode.apply(String, h); + for (var d = '', f = 0; f < p; ) + d += String.fromCharCode.apply(String, h.slice(f, (f += v))); + return d; + } + (T.kMaxLength = e), + (A.TYPED_ARRAY_SUPPORT = (function () { + try { + var t = new Uint8Array(1), + e = { + foo: function () { + return 42; + }, + }; + return ( + Object.setPrototypeOf(e, Uint8Array.prototype), + Object.setPrototypeOf(t, e), + 42 === t.foo() + ); + } catch (t) { + return !1; + } + })()) || + 'undefined' == typeof console || + 'function' != typeof console.error || + console.error( + 'This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.', + ), + Object.defineProperty(A.prototype, 'parent', { + enumerable: !0, + get: function () { + if (A.isBuffer(this)) return this.buffer; + }, + }), + Object.defineProperty(A.prototype, 'offset', { + enumerable: !0, + get: function () { + if (A.isBuffer(this)) return this.byteOffset; + }, + }), + (A.poolSize = 8192), + (A.from = r), + Object.setPrototypeOf(A.prototype, Uint8Array.prototype), + Object.setPrototypeOf(A, Uint8Array), + (A.alloc = function (t, e, n) { + return ( + (e = e), + (n = n), + i((t = t)), + !(t <= 0) && void 0 !== e + ? 'string' == typeof n + ? s(t).fill(e, n) + : s(t).fill(e) + : s(t) + ); + }), + (A.allocUnsafe = a), + (A.allocUnsafeSlow = a), + (A.isBuffer = function (t) { + return null != t && !0 === t._isBuffer && t !== A.prototype; + }), + (A.compare = function (t, e) { + if ( + (k(t, Uint8Array) && (t = A.from(t, t.offset, t.byteLength)), + k(e, Uint8Array) && (e = A.from(e, e.offset, e.byteLength)), + !A.isBuffer(t) || !A.isBuffer(e)) + ) + throw new TypeError( + 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array', + ); + if (t === e) return 0; + for (var n = t.length, r = e.length, i = 0, o = Math.min(n, r); i < o; ++i) + if (t[i] !== e[i]) { + (n = t[i]), (r = e[i]); + break; + } + return n < r ? -1 : r < n ? 1 : 0; + }), + (A.isEncoding = function (t) { + switch (String(t).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return !0; + default: + return !1; + } + }), + (A.concat = function (t, e) { + if (!Array.isArray(t)) + throw new TypeError('"list" argument must be an Array of Buffers'); + if (0 === t.length) return A.alloc(0); + if (void 0 === e) for (i = e = 0; i < t.length; ++i) e += t[i].length; + for (var n = A.allocUnsafe(e), r = 0, i = 0; i < t.length; ++i) { + var o = t[i]; + if (k(o, Uint8Array)) + r + o.length > n.length + ? A.from(o).copy(n, r) + : Uint8Array.prototype.set.call(n, o, r); + else { + if (!A.isBuffer(o)) + throw new TypeError('"list" argument must be an Array of Buffers'); + o.copy(n, r); + } + r += o.length; + } + return n; + }), + (A.byteLength = h), + (A.prototype._isBuffer = !0), + (A.prototype.swap16 = function () { + var t = this.length; + if (t % 2 != 0) throw new RangeError('Buffer size must be a multiple of 16-bits'); + for (var e = 0; e < t; e += 2) p(this, e, e + 1); + return this; + }), + (A.prototype.swap32 = function () { + var t = this.length; + if (t % 4 != 0) throw new RangeError('Buffer size must be a multiple of 32-bits'); + for (var e = 0; e < t; e += 4) p(this, e, e + 3), p(this, e + 1, e + 2); + return this; + }), + (A.prototype.swap64 = function () { + var t = this.length; + if (t % 8 != 0) throw new RangeError('Buffer size must be a multiple of 64-bits'); + for (var e = 0; e < t; e += 8) + p(this, e, e + 7), + p(this, e + 1, e + 6), + p(this, e + 2, e + 5), + p(this, e + 3, e + 4); + return this; + }), + (A.prototype.toLocaleString = A.prototype.toString = + function () { + var t = this.length; + return 0 === t + ? '' + : 0 === arguments.length + ? x(this, 0, t) + : n.apply(this, arguments); + }), + (A.prototype.equals = function (t) { + if (A.isBuffer(t)) return this === t || 0 === A.compare(this, t); + throw new TypeError('Argument must be a Buffer'); + }), + (A.prototype.inspect = function () { + var t = '', + e = T.INSPECT_MAX_BYTES, + t = this.toString('hex', 0, e) + .replace(/(.{2})/g, '$1 ') + .trim(); + return this.length > e && (t += ' ... '), '<Buffer ' + t + '>'; + }), + t && (A.prototype[t] = A.prototype.inspect), + (A.prototype.compare = function (t, e, n, r, i) { + if ((k(t, Uint8Array) && (t = A.from(t, t.offset, t.byteLength)), !A.isBuffer(t))) + throw new TypeError( + 'The "target" argument must be one of type Buffer or Uint8Array. Received type ' + + typeof t, + ); + if ( + (void 0 === n && (n = t ? t.length : 0), + void 0 === r && (r = 0), + void 0 === i && (i = this.length), + (e = void 0 === e ? 0 : e) < 0 || n > t.length || r < 0 || i > this.length) + ) + throw new RangeError('out of range index'); + if (i <= r && n <= e) return 0; + if (i <= r) return -1; + if (n <= e) return 1; + if (this === t) return 0; + for ( + var o = (i >>>= 0) - (r >>>= 0), + a = (n >>>= 0) - (e >>>= 0), + s = Math.min(o, a), + l = this.slice(r, i), + u = t.slice(e, n), + c = 0; + c < s; + ++c + ) + if (l[c] !== u[c]) { + (o = l[c]), (a = u[c]); + break; + } + return o < a ? -1 : a < o ? 1 : 0; + }), + (A.prototype.includes = function (t, e, n) { + return -1 !== this.indexOf(t, e, n); + }), + (A.prototype.indexOf = function (t, e, n) { + return d(this, t, e, n, !0); + }), + (A.prototype.lastIndexOf = function (t, e, n) { + return d(this, t, e, n, !1); + }), + (A.prototype.write = function (t, e, n, r) { + if (void 0 === e) (r = 'utf8'), (n = this.length), (e = 0); + else if (void 0 === n && 'string' == typeof e) + (r = e), (n = this.length), (e = 0); + else { + if (!isFinite(e)) + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported', + ); + (e >>>= 0), + isFinite(n) + ? ((n >>>= 0), void 0 === r && (r = 'utf8')) + : ((r = n), (n = void 0)); + } + var i = this.length - e; + if ( + ((void 0 === n || i < n) && (n = i), + (0 < t.length && (n < 0 || e < 0)) || e > this.length) + ) + throw new RangeError('Attempt to write outside buffer bounds'); + r = r || 'utf8'; + for (var o, a, s, l = !1; ; ) + switch (r) { + case 'hex': + var u = this, + c = t, + A = e, + h = n, + p = ((A = Number(A) || 0), u.length - A); + (!h || p < (h = Number(h))) && (h = p), + (p = c.length) / 2 < h && (h = p / 2); + for (var d = 0; d < h; ++d) { + var f = parseInt(c.substr(2 * d, 2), 16); + if (F(f)) return d; + u[A + d] = f; + } + return d; + case 'utf8': + case 'utf-8': + return (p = e), (s = n), S(M(t, (a = this).length - p), a, p, s); + case 'ascii': + case 'latin1': + case 'binary': + return g(this, t, e, n); + case 'base64': + return (a = this), (s = e), (o = n), S(D(t), a, s, o); + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return m(this, t, e, n); + default: + if (l) throw new TypeError('Unknown encoding: ' + r); + (r = ('' + r).toLowerCase()), (l = !0); + } + }), + (A.prototype.toJSON = function () { + return { type: 'Buffer', data: Array.prototype.slice.call(this._arr || this, 0) }; + }); + var v = 4096; + function b(t, e, n) { + if (t % 1 != 0 || t < 0) throw new RangeError('offset is not uint'); + if (n < t + e) throw new RangeError('Trying to access beyond buffer length'); + } + function y(t, e, n, r, i, o) { + if (!A.isBuffer(t)) + throw new TypeError('"buffer" argument must be a Buffer instance'); + if (i < e || e < o) throw new RangeError('"value" argument is out of bounds'); + if (n + r > t.length) throw new RangeError('Index out of range'); + } + function w(t, e, n, r) { + if (n + r > t.length) throw new RangeError('Index out of range'); + if (n < 0) throw new RangeError('Index out of range'); + } + function E(t, e, n, r, i) { + return (e = +e), (n >>>= 0), i || w(t, 0, n, 4), o.write(t, e, n, r, 23, 4), n + 4; + } + function B(t, e, n, r, i) { + return (e = +e), (n >>>= 0), i || w(t, 0, n, 8), o.write(t, e, n, r, 52, 8), n + 8; + } + (A.prototype.slice = function (t, e) { + var n = this.length, + n = + ((t = ~~t) < 0 ? (t += n) < 0 && (t = 0) : n < t && (t = n), + (e = void 0 === e ? n : ~~e) < 0 ? (e += n) < 0 && (e = 0) : n < e && (e = n), + e < t && (e = t), + this.subarray(t, e)); + return Object.setPrototypeOf(n, A.prototype), n; + }), + (A.prototype.readUintLE = A.prototype.readUIntLE = + function (t, e, n) { + (t >>>= 0), (e >>>= 0), n || b(t, e, this.length); + for (var r = this[t], i = 1, o = 0; ++o < e && (i *= 256); ) + r += this[t + o] * i; + return r; + }), + (A.prototype.readUintBE = A.prototype.readUIntBE = + function (t, e, n) { + (t >>>= 0), (e >>>= 0), n || b(t, e, this.length); + for (var r = this[t + --e], i = 1; 0 < e && (i *= 256); ) + r += this[t + --e] * i; + return r; + }), + (A.prototype.readUint8 = A.prototype.readUInt8 = + function (t, e) { + return (t >>>= 0), e || b(t, 1, this.length), this[t]; + }), + (A.prototype.readUint16LE = A.prototype.readUInt16LE = + function (t, e) { + return (t >>>= 0), e || b(t, 2, this.length), this[t] | (this[t + 1] << 8); + }), + (A.prototype.readUint16BE = A.prototype.readUInt16BE = + function (t, e) { + return (t >>>= 0), e || b(t, 2, this.length), (this[t] << 8) | this[t + 1]; + }), + (A.prototype.readUint32LE = A.prototype.readUInt32LE = + function (t, e) { + return ( + (t >>>= 0), + e || b(t, 4, this.length), + (this[t] | (this[t + 1] << 8) | (this[t + 2] << 16)) + 16777216 * this[t + 3] + ); + }), + (A.prototype.readUint32BE = A.prototype.readUInt32BE = + function (t, e) { + return ( + (t >>>= 0), + e || b(t, 4, this.length), + 16777216 * this[t] + ((this[t + 1] << 16) | (this[t + 2] << 8) | this[t + 3]) + ); + }), + (A.prototype.readIntLE = function (t, e, n) { + (t >>>= 0), (e >>>= 0), n || b(t, e, this.length); + for (var r = this[t], i = 1, o = 0; ++o < e && (i *= 256); ) r += this[t + o] * i; + return (i *= 128) <= r && (r -= Math.pow(2, 8 * e)), r; + }), + (A.prototype.readIntBE = function (t, e, n) { + (t >>>= 0), (e >>>= 0), n || b(t, e, this.length); + for (var r = e, i = 1, o = this[t + --r]; 0 < r && (i *= 256); ) + o += this[t + --r] * i; + return (i *= 128) <= o && (o -= Math.pow(2, 8 * e)), o; + }), + (A.prototype.readInt8 = function (t, e) { + return ( + (t >>>= 0), + e || b(t, 1, this.length), + 128 & this[t] ? -1 * (255 - this[t] + 1) : this[t] + ); + }), + (A.prototype.readInt16LE = function (t, e) { + (t >>>= 0), e || b(t, 2, this.length); + e = this[t] | (this[t + 1] << 8); + return 32768 & e ? 4294901760 | e : e; + }), + (A.prototype.readInt16BE = function (t, e) { + (t >>>= 0), e || b(t, 2, this.length); + e = this[t + 1] | (this[t] << 8); + return 32768 & e ? 4294901760 | e : e; + }), + (A.prototype.readInt32LE = function (t, e) { + return ( + (t >>>= 0), + e || b(t, 4, this.length), + this[t] | (this[t + 1] << 8) | (this[t + 2] << 16) | (this[t + 3] << 24) + ); + }), + (A.prototype.readInt32BE = function (t, e) { + return ( + (t >>>= 0), + e || b(t, 4, this.length), + (this[t] << 24) | (this[t + 1] << 16) | (this[t + 2] << 8) | this[t + 3] + ); + }), + (A.prototype.readFloatLE = function (t, e) { + return (t >>>= 0), e || b(t, 4, this.length), o.read(this, t, !0, 23, 4); + }), + (A.prototype.readFloatBE = function (t, e) { + return (t >>>= 0), e || b(t, 4, this.length), o.read(this, t, !1, 23, 4); + }), + (A.prototype.readDoubleLE = function (t, e) { + return (t >>>= 0), e || b(t, 8, this.length), o.read(this, t, !0, 52, 8); + }), + (A.prototype.readDoubleBE = function (t, e) { + return (t >>>= 0), e || b(t, 8, this.length), o.read(this, t, !1, 52, 8); + }), + (A.prototype.writeUintLE = A.prototype.writeUIntLE = + function (t, e, n, r) { + (t = +t), + (e >>>= 0), + (n >>>= 0), + r || y(this, t, e, n, Math.pow(2, 8 * n) - 1, 0); + var i = 1, + o = 0; + for (this[e] = 255 & t; ++o < n && (i *= 256); ) this[e + o] = (t / i) & 255; + return e + n; + }), + (A.prototype.writeUintBE = A.prototype.writeUIntBE = + function (t, e, n, r) { + (t = +t), + (e >>>= 0), + (n >>>= 0), + r || y(this, t, e, n, Math.pow(2, 8 * n) - 1, 0); + var i = n - 1, + o = 1; + for (this[e + i] = 255 & t; 0 <= --i && (o *= 256); ) + this[e + i] = (t / o) & 255; + return e + n; + }), + (A.prototype.writeUint8 = A.prototype.writeUInt8 = + function (t, e, n) { + return ( + (t = +t), + (e >>>= 0), + n || y(this, t, e, 1, 255, 0), + (this[e] = 255 & t), + e + 1 + ); + }), + (A.prototype.writeUint16LE = A.prototype.writeUInt16LE = + function (t, e, n) { + return ( + (t = +t), + (e >>>= 0), + n || y(this, t, e, 2, 65535, 0), + (this[e] = 255 & t), + (this[e + 1] = t >>> 8), + e + 2 + ); + }), + (A.prototype.writeUint16BE = A.prototype.writeUInt16BE = + function (t, e, n) { + return ( + (t = +t), + (e >>>= 0), + n || y(this, t, e, 2, 65535, 0), + (this[e] = t >>> 8), + (this[e + 1] = 255 & t), + e + 2 + ); + }), + (A.prototype.writeUint32LE = A.prototype.writeUInt32LE = + function (t, e, n) { + return ( + (t = +t), + (e >>>= 0), + n || y(this, t, e, 4, 4294967295, 0), + (this[e + 3] = t >>> 24), + (this[e + 2] = t >>> 16), + (this[e + 1] = t >>> 8), + (this[e] = 255 & t), + e + 4 + ); + }), + (A.prototype.writeUint32BE = A.prototype.writeUInt32BE = + function (t, e, n) { + return ( + (t = +t), + (e >>>= 0), + n || y(this, t, e, 4, 4294967295, 0), + (this[e] = t >>> 24), + (this[e + 1] = t >>> 16), + (this[e + 2] = t >>> 8), + (this[e + 3] = 255 & t), + e + 4 + ); + }), + (A.prototype.writeIntLE = function (t, e, n, r) { + (t = +t), (e >>>= 0), r || y(this, t, e, n, (r = Math.pow(2, 8 * n - 1)) - 1, -r); + var i = 0, + o = 1, + a = 0; + for (this[e] = 255 & t; ++i < n && (o *= 256); ) + t < 0 && 0 === a && 0 !== this[e + i - 1] && (a = 1), + (this[e + i] = (((t / o) >> 0) - a) & 255); + return e + n; + }), + (A.prototype.writeIntBE = function (t, e, n, r) { + (t = +t), (e >>>= 0), r || y(this, t, e, n, (r = Math.pow(2, 8 * n - 1)) - 1, -r); + var i = n - 1, + o = 1, + a = 0; + for (this[e + i] = 255 & t; 0 <= --i && (o *= 256); ) + t < 0 && 0 === a && 0 !== this[e + i + 1] && (a = 1), + (this[e + i] = (((t / o) >> 0) - a) & 255); + return e + n; + }), + (A.prototype.writeInt8 = function (t, e, n) { + return ( + (t = +t), + (e >>>= 0), + n || y(this, t, e, 1, 127, -128), + (this[e] = 255 & (t = t < 0 ? 255 + t + 1 : t)), + e + 1 + ); + }), + (A.prototype.writeInt16LE = function (t, e, n) { + return ( + (t = +t), + (e >>>= 0), + n || y(this, t, e, 2, 32767, -32768), + (this[e] = 255 & t), + (this[e + 1] = t >>> 8), + e + 2 + ); + }), + (A.prototype.writeInt16BE = function (t, e, n) { + return ( + (t = +t), + (e >>>= 0), + n || y(this, t, e, 2, 32767, -32768), + (this[e] = t >>> 8), + (this[e + 1] = 255 & t), + e + 2 + ); + }), + (A.prototype.writeInt32LE = function (t, e, n) { + return ( + (t = +t), + (e >>>= 0), + n || y(this, t, e, 4, 2147483647, -2147483648), + (this[e] = 255 & t), + (this[e + 1] = t >>> 8), + (this[e + 2] = t >>> 16), + (this[e + 3] = t >>> 24), + e + 4 + ); + }), + (A.prototype.writeInt32BE = function (t, e, n) { + return ( + (t = +t), + (e >>>= 0), + n || y(this, t, e, 4, 2147483647, -2147483648), + (this[e] = (t = t < 0 ? 4294967295 + t + 1 : t) >>> 24), + (this[e + 1] = t >>> 16), + (this[e + 2] = t >>> 8), + (this[e + 3] = 255 & t), + e + 4 + ); + }), + (A.prototype.writeFloatLE = function (t, e, n) { + return E(this, t, e, !0, n); + }), + (A.prototype.writeFloatBE = function (t, e, n) { + return E(this, t, e, !1, n); + }), + (A.prototype.writeDoubleLE = function (t, e, n) { + return B(this, t, e, !0, n); + }), + (A.prototype.writeDoubleBE = function (t, e, n) { + return B(this, t, e, !1, n); + }), + (A.prototype.copy = function (t, e, n, r) { + if (!A.isBuffer(t)) throw new TypeError('argument should be a Buffer'); + if ( + ((n = n || 0), + r || 0 === r || (r = this.length), + e >= t.length && (e = t.length), + (r = 0 < r && r < n ? n : r) === n) + ) + return 0; + if (0 === t.length || 0 === this.length) return 0; + if ((e = e || 0) < 0) throw new RangeError('targetStart out of bounds'); + if (n < 0 || n >= this.length) throw new RangeError('Index out of range'); + if (r < 0) throw new RangeError('sourceEnd out of bounds'); + r > this.length && (r = this.length); + var i = (r = t.length - e < r - n ? t.length - e + n : r) - n; + return ( + this === t && 'function' == typeof Uint8Array.prototype.copyWithin + ? this.copyWithin(e, n, r) + : Uint8Array.prototype.set.call(t, this.subarray(n, r), e), + i + ); + }), + (A.prototype.fill = function (t, e, n, r) { + if ('string' == typeof t) { + if ( + ('string' == typeof e + ? ((r = e), (e = 0), (n = this.length)) + : 'string' == typeof n && ((r = n), (n = this.length)), + void 0 !== r && 'string' != typeof r) + ) + throw new TypeError('encoding must be a string'); + if ('string' == typeof r && !A.isEncoding(r)) + throw new TypeError('Unknown encoding: ' + r); + var i; + 1 === t.length && + ((i = t.charCodeAt(0)), + (('utf8' === r && i < 128) || 'latin1' === r) && (t = i)); + } else + 'number' == typeof t ? (t &= 255) : 'boolean' == typeof t && (t = Number(t)); + if (e < 0 || this.length < e || this.length < n) + throw new RangeError('Out of range index'); + var o; + if (!(n <= e)) + if ( + ((e >>>= 0), + (n = void 0 === n ? this.length : n >>> 0), + 'number' == typeof (t = t || 0)) + ) + for (o = e; o < n; ++o) this[o] = t; + else { + var a = A.isBuffer(t) ? t : A.from(t, r), + s = a.length; + if (0 === s) + throw new TypeError( + 'The value "' + t + '" is invalid for argument "value"', + ); + for (o = 0; o < n - e; ++o) this[o + e] = a[o % s]; + } + return this; + }); + var I = /[^+/0-9A-Za-z-_]/g; + function M(t, e) { + e = e || 1 / 0; + for (var n, r = t.length, i = null, o = [], a = 0; a < r; ++a) { + if (55295 < (n = t.charCodeAt(a)) && n < 57344) { + if (!i) { + if (56319 < n) { + -1 < (e -= 3) && o.push(239, 191, 189); + continue; + } + if (a + 1 === r) { + -1 < (e -= 3) && o.push(239, 191, 189); + continue; + } + i = n; + continue; + } + if (n < 56320) { + -1 < (e -= 3) && o.push(239, 191, 189), (i = n); + continue; + } + n = 65536 + (((i - 55296) << 10) | (n - 56320)); + } else i && -1 < (e -= 3) && o.push(239, 191, 189); + if (((i = null), n < 128)) { + if (--e < 0) break; + o.push(n); + } else if (n < 2048) { + if ((e -= 2) < 0) break; + o.push((n >> 6) | 192, (63 & n) | 128); + } else if (n < 65536) { + if ((e -= 3) < 0) break; + o.push((n >> 12) | 224, ((n >> 6) & 63) | 128, (63 & n) | 128); + } else { + if (!(n < 1114112)) throw new Error('Invalid code point'); + if ((e -= 4) < 0) break; + o.push( + (n >> 18) | 240, + ((n >> 12) & 63) | 128, + ((n >> 6) & 63) | 128, + (63 & n) | 128, + ); + } + } + return o; + } + function D(t) { + return C.toByteArray( + (function (t) { + if ((t = (t = t.split('=')[0]).trim().replace(I, '')).length < 2) return ''; + for (; t.length % 4 != 0; ) t += '='; + return t; + })(t), + ); + } + function S(t, e, n, r) { + for (var i = 0; i < r && !(i + n >= e.length || i >= t.length); ++i) + e[i + n] = t[i]; + return i; + } + function k(t, e) { + return ( + t instanceof e || + (null != t && + null != t.constructor && + null != t.constructor.name && + t.constructor.name === e.name) + ); + } + function F(t) { + return t != t; + } + var Q = (function () { + for (var t = '0123456789abcdef', e = new Array(256), n = 0; n < 16; ++n) + for (var r = 16 * n, i = 0; i < 16; ++i) e[r + i] = t[n] + t[i]; + return e; + })(); + }.call(this); + }.call(this, _('buffer').Buffer); + }, + { 'base64-js': 22, buffer: 26, ieee754: 37 }, + ], + 27: [ + function (t, e, n) { + e.exports = { + 100: 'Continue', + 101: 'Switching Protocols', + 102: 'Processing', + 200: 'OK', + 201: 'Created', + 202: 'Accepted', + 203: 'Non-Authoritative Information', + 204: 'No Content', + 205: 'Reset Content', + 206: 'Partial Content', + 207: 'Multi-Status', + 208: 'Already Reported', + 226: 'IM Used', + 300: 'Multiple Choices', + 301: 'Moved Permanently', + 302: 'Found', + 303: 'See Other', + 304: 'Not Modified', + 305: 'Use Proxy', + 307: 'Temporary Redirect', + 308: 'Permanent Redirect', + 400: 'Bad Request', + 401: 'Unauthorized', + 402: 'Payment Required', + 403: 'Forbidden', + 404: 'Not Found', + 405: 'Method Not Allowed', + 406: 'Not Acceptable', + 407: 'Proxy Authentication Required', + 408: 'Request Timeout', + 409: 'Conflict', + 410: 'Gone', + 411: 'Length Required', + 412: 'Precondition Failed', + 413: 'Payload Too Large', + 414: 'URI Too Long', + 415: 'Unsupported Media Type', + 416: 'Range Not Satisfiable', + 417: 'Expectation Failed', + 418: "I'm a teapot", + 421: 'Misdirected Request', + 422: 'Unprocessable Entity', + 423: 'Locked', + 424: 'Failed Dependency', + 425: 'Unordered Collection', + 426: 'Upgrade Required', + 428: 'Precondition Required', + 429: 'Too Many Requests', + 431: 'Request Header Fields Too Large', + 451: 'Unavailable For Legal Reasons', + 500: 'Internal Server Error', + 501: 'Not Implemented', + 502: 'Bad Gateway', + 503: 'Service Unavailable', + 504: 'Gateway Timeout', + 505: 'HTTP Version Not Supported', + 506: 'Variant Also Negotiates', + 507: 'Insufficient Storage', + 508: 'Loop Detected', + 509: 'Bandwidth Limit Exceeded', + 510: 'Not Extended', + 511: 'Network Authentication Required', + }; + }, + {}, + ], + 28: [ + function (t, e, n) { + var o = t('./helpers'); + function a(t, e, n, r, i, o) { + return (1 - e / n) * r + (e / n) * Math.round((1 - t) * i + t * o); + } + var s = { unitInput: !1, unitOutput: !1, roundOutput: !0 }; + function r(t, e, n, r) { + s.unitInput && ((t = o.convertFromUnit(t)), (e = o.convertFromUnit(e))), + (t = o.restrictColor(t)); + var i = (e = o.restrictColor(e)).a + t.a - e.a * t.a, + r = r(t, e, n), + r = o.restrictColor({ + r: a(t.a, e.a, i, t.r, e.r, r.r), + g: a(t.a, e.a, i, t.g, e.g, r.g), + b: a(t.a, e.a, i, t.b, e.b, r.b), + a: i, + }); + return (r = s.unitOutput + ? o.convertToUnit(r) + : s.roundOutput + ? o.roundChannels(r) + : o.roundChannelsForSanity(r)); + } + var i = t('./separable'), + l = t('./non-separable'); + e.exports = { + options: s, + normal: function (t, e) { + return r(t, e, 'normal', i); + }, + multiply: function (t, e) { + return r(t, e, 'multiply', i); + }, + screen: function (t, e) { + return r(t, e, 'screen', i); + }, + overlay: function (t, e) { + return r(t, e, 'overlay', i); + }, + darken: function (t, e) { + return r(t, e, 'darken', i); + }, + lighten: function (t, e) { + return r(t, e, 'lighten', i); + }, + colorDodge: function (t, e) { + return r(t, e, 'colorDodge', i); + }, + colorBurn: function (t, e) { + return r(t, e, 'colorBurn', i); + }, + hardLight: function (t, e) { + return r(t, e, 'hardLight', i); + }, + softLight: function (t, e) { + return r(t, e, 'softLight', i); + }, + difference: function (t, e) { + return r(t, e, 'difference', i); + }, + exclusion: function (t, e) { + return r(t, e, 'exclusion', i); + }, + hue: function (t, e) { + return r(t, e, 'hue', l); + }, + saturation: function (t, e) { + return r(t, e, 'saturation', l); + }, + color: function (t, e) { + return r(t, e, 'color', l); + }, + luminosity: function (t, e) { + return r(t, e, 'luminosity', l); + }, + }; + }, + { './helpers': 29, './non-separable': 30, './separable': 31 }, + ], + 29: [ + function (t, e, n) { + function r(t, e, n) { + return Math.min(Math.max(t, e), n); + } + e.exports = { + restrictColor: function (t) { + return { r: r(t.r, 0, 255), g: r(t.g, 0, 255), b: r(t.b, 0, 255), a: r(t.a, 0, 1) }; + }, + convertFromUnit: function (t) { + return { r: 255 * t.r, g: 255 * t.g, b: 255 * t.b, a: t.a }; + }, + convertToUnit: function (t) { + return { r: t.r / 255, g: t.g / 255, b: t.b / 255, a: t.a }; + }, + roundChannels: function (t, e) { + null == e && (e = 0); + e = Math.pow(10, e); + return { + r: Math.round(t.r * e) / e, + g: Math.round(t.g * e) / e, + b: Math.round(t.b * e) / e, + a: t.a, + }; + }, + roundChannelsForSanity: function (t) { + return this.roundChannels(t, 9); + }, + }; + }, + {}, + ], + 30: [ + function (t, e, n) { + var r = t('./helpers'), + i = { + lum: function (t) { + return 0.3 * t.r + 0.59 * t.g + 0.11 * t.b; + }, + clipColor: function (t) { + var e = this.lum(t), + n = Math.min(t.r, t.g, t.b), + r = Math.max(t.r, t.g, t.b), + t = { r: t.r, g: t.g, b: t.b }; + return ( + n < 0 && + ((t.r = e + ((t.r - e) * e) / (e - n)), + (t.g = e + ((t.g - e) * e) / (e - n)), + (t.b = e + ((t.b - e) * e) / (e - n))), + 1 < r && + ((t.r = e + ((t.r - e) * (1 - e)) / (r - e)), + (t.g = e + ((t.g - e) * (1 - e)) / (r - e)), + (t.b = e + ((t.b - e) * (1 - e)) / (r - e))), + t + ); + }, + setLum: function (t, e) { + e -= this.lum(t); + return this.clipColor({ r: t.r + e, g: t.g + e, b: t.b + e }); + }, + sat: function (t) { + return Math.max(t.r, t.g, t.b) - Math.min(t.r, t.g, t.b); + }, + setSat: function (n, t) { + var e = Object.keys(n).sort(function (t, e) { + return n[t] - n[e]; + }), + r = e[0], + i = e[1], + e = e[2], + o = { r: n.r, g: n.g, b: n.b }; + return ( + o[e] > o[r] + ? ((o[i] = ((o[i] - o[r]) * t) / (o[e] - o[r])), (o[e] = t)) + : (o[i] = o[e] = 0), + (o[r] = 0), + o + ); + }, + }, + o = { + hue: function (t, e) { + return i.setLum(i.setSat(e, i.sat(t)), i.lum(t)); + }, + saturation: function (t, e) { + return i.setLum(i.setSat(t, i.sat(e)), i.lum(t)); + }, + color: function (t, e) { + return i.setLum(e, i.lum(t)); + }, + luminosity: function (t, e) { + return i.setLum(t, i.lum(e)); + }, + }; + e.exports = function (t, e, n) { + return r.convertFromUnit(o[n](r.convertToUnit(t), r.convertToUnit(e))); + }; + }, + { './helpers': 29 }, + ], + 31: [ + function (t, e, n) { + var r = { + normal: function (t, e) { + return e; + }, + multiply: function (t, e) { + return t * e; + }, + screen: function (t, e) { + return t + e - t * e; + }, + overlay: function (t, e) { + return this.hardLight(e, t); + }, + darken: function (t, e) { + return Math.min(t, e); + }, + lighten: function (t, e) { + return Math.min(Math.max(t, e), 1); + }, + colorDodge: function (t, e) { + return 0 === t ? 0 : 1 === e ? 1 : Math.min(1, t / (1 - e)); + }, + colorBurn: function (t, e) { + return 1 === t ? 1 : 0 === e ? 0 : 1 - Math.min(1, (1 - t) / e); + }, + hardLight: function (t, e) { + return e <= 0.5 ? this.multiply(t, 2 * e) : this.screen(t, 2 * e - 1); + }, + softLight: function (t, e) { + return e <= 0.5 + ? t - (1 - 2 * e) * t * (1 - t) + : t + (2 * e - 1) * ((t <= 0.25 ? ((16 * t - 12) * t + 4) * t : Math.sqrt(t)) - t); + }, + difference: function (t, e) { + return Math.abs(t - e); + }, + exclusion: function (t, e) { + return t + e - 2 * t * e; + }, + }; + e.exports = function (t, e, n) { + return { + r: 255 * r[n](t.r / 255, e.r / 255), + g: 255 * r[n](t.g / 255, e.g / 255), + b: 255 * r[n](t.b / 255, e.b / 255), + }; + }; + }, + {}, + ], + 32: [ + function (t, e, n) { + function r(t) { + return Object.prototype.toString.call(t); + } + (n.isArray = function (t) { + return Array.isArray ? Array.isArray(t) : '[object Array]' === r(t); + }), + (n.isBoolean = function (t) { + return 'boolean' == typeof t; + }), + (n.isNull = function (t) { + return null === t; + }), + (n.isNullOrUndefined = function (t) { + return null == t; + }), + (n.isNumber = function (t) { + return 'number' == typeof t; + }), + (n.isString = function (t) { + return 'string' == typeof t; + }), + (n.isSymbol = function (t) { + return 'symbol' == typeof t; + }), + (n.isUndefined = function (t) { + return void 0 === t; + }), + (n.isRegExp = function (t) { + return '[object RegExp]' === r(t); + }), + (n.isObject = function (t) { + return 'object' == typeof t && null !== t; + }), + (n.isDate = function (t) { + return '[object Date]' === r(t); + }), + (n.isError = function (t) { + return '[object Error]' === r(t) || t instanceof Error; + }), + (n.isFunction = function (t) { + return 'function' == typeof t; + }), + (n.isPrimitive = function (t) { + return ( + null === t || + 'boolean' == typeof t || + 'number' == typeof t || + 'string' == typeof t || + 'symbol' == typeof t || + void 0 === t + ); + }), + (n.isBuffer = t('buffer').Buffer.isBuffer); + }, + { buffer: 26 }, + ], + 33: [ + function (t, $s, e) { + !(function () { + var _ = { version: '3.5.17' }, + S = [].slice, + h = function (t) { + return S.call(t); + }, + T = this.document; + function P(t) { + return t && (t.ownerDocument || t.document || t).documentElement; + } + function L(t) { + return ( + t && + ((t.ownerDocument && t.ownerDocument.defaultView) || + (t.document && t) || + t.defaultView) + ); + } + if (T) + try { + h(T.documentElement.childNodes)[0].nodeType; + } catch (t) { + h = function (t) { + for (var e = t.length, n = new Array(e); e--; ) n[e] = t[e]; + return n; + }; + } + if ( + (Date.now || + (Date.now = function () { + return +new Date(); + }), + T) + ) + try { + T.createElement('DIV').style.setProperty('opacity', 0, ''); + } catch (t) { + var e = this.Element.prototype, + Y = e.setAttribute, + O = e.setAttributeNS, + n = this.CSSStyleDeclaration.prototype, + G = n.setProperty; + (e.setAttribute = function (t, e) { + Y.call(this, t, e + ''); + }), + (e.setAttributeNS = function (t, e, n) { + O.call(this, t, e, n + ''); + }), + (n.setProperty = function (t, e, n) { + G.call(this, t, e + '', n); + }); + } + function z(t, e) { + return t < e ? -1 : e < t ? 1 : e <= t ? 0 : NaN; + } + function H(t) { + return null === t ? NaN : +t; + } + function j(t) { + return !isNaN(t); + } + function t(o) { + return { + left: function (t, e, n, r) { + for ( + arguments.length < 3 && (n = 0), arguments.length < 4 && (r = t.length); + n < r; + + ) { + var i = (n + r) >>> 1; + o(t[i], e) < 0 ? (n = 1 + i) : (r = i); + } + return n; + }, + right: function (t, e, n, r) { + for ( + arguments.length < 3 && (n = 0), arguments.length < 4 && (r = t.length); + n < r; + + ) { + var i = (n + r) >>> 1; + 0 < o(t[i], e) ? (r = i) : (n = 1 + i); + } + return n; + }, + }; + } + (_.ascending = z), + (_.descending = function (t, e) { + return e < t ? -1 : t < e ? 1 : t <= e ? 0 : NaN; + }), + (_.min = function (t, e) { + var n, + r, + i = -1, + o = t.length; + if (1 === arguments.length) { + for (; ++i < o; ) + if (null != (r = t[i]) && r <= r) { + n = r; + break; + } + for (; ++i < o; ) null != (r = t[i]) && r < n && (n = r); + } else { + for (; ++i < o; ) + if (null != (r = e.call(t, t[i], i)) && r <= r) { + n = r; + break; + } + for (; ++i < o; ) null != (r = e.call(t, t[i], i)) && r < n && (n = r); + } + return n; + }), + (_.max = function (t, e) { + var n, + r, + i = -1, + o = t.length; + if (1 === arguments.length) { + for (; ++i < o; ) + if (null != (r = t[i]) && r <= r) { + n = r; + break; + } + for (; ++i < o; ) null != (r = t[i]) && n < r && (n = r); + } else { + for (; ++i < o; ) + if (null != (r = e.call(t, t[i], i)) && r <= r) { + n = r; + break; + } + for (; ++i < o; ) null != (r = e.call(t, t[i], i)) && n < r && (n = r); + } + return n; + }), + (_.extent = function (t, e) { + var n, + r, + i, + o = -1, + a = t.length; + if (1 === arguments.length) { + for (; ++o < a; ) + if (null != (r = t[o]) && r <= r) { + n = i = r; + break; + } + for (; ++o < a; ) null != (r = t[o]) && (r < n && (n = r), i < r && (i = r)); + } else { + for (; ++o < a; ) + if (null != (r = e.call(t, t[o], o)) && r <= r) { + n = i = r; + break; + } + for (; ++o < a; ) + null != (r = e.call(t, t[o], o)) && (r < n && (n = r), i < r && (i = r)); + } + return [n, i]; + }), + (_.sum = function (t, e) { + var n, + r = 0, + i = t.length, + o = -1; + if (1 === arguments.length) for (; ++o < i; ) j((n = +t[o])) && (r += n); + else for (; ++o < i; ) j((n = +e.call(t, t[o], o))) && (r += n); + return r; + }), + (_.mean = function (t, e) { + var n, + r = 0, + i = t.length, + o = -1, + a = i; + if (1 === arguments.length) for (; ++o < i; ) j((n = H(t[o]))) ? (r += n) : --a; + else for (; ++o < i; ) j((n = H(e.call(t, t[o], o)))) ? (r += n) : --a; + if (a) return r / a; + }), + (_.quantile = function (t, e) { + var e = (t.length - 1) * e + 1, + n = Math.floor(e), + r = +t[n - 1], + e = e - n; + return e ? r + e * (t[n] - r) : r; + }), + (_.median = function (t, e) { + var n, + r = [], + i = t.length, + o = -1; + if (1 === arguments.length) for (; ++o < i; ) j((n = H(t[o]))) && r.push(n); + else for (; ++o < i; ) j((n = H(e.call(t, t[o], o)))) && r.push(n); + if (r.length) return _.quantile(r.sort(z), 0.5); + }), + (_.variance = function (t, e) { + var n, + r, + i = t.length, + o = 0, + a = 0, + s = -1, + l = 0; + if (1 === arguments.length) + for (; ++s < i; ) j((n = H(t[s]))) && (a += (r = n - o) * (n - (o += r / ++l))); + else + for (; ++s < i; ) + j((n = H(e.call(t, t[s], s)))) && (a += (r = n - o) * (n - (o += r / ++l))); + if (1 < l) return a / (l - 1); + }), + (_.deviation = function () { + var t = _.variance.apply(this, arguments); + return t && Math.sqrt(t); + }); + e = t(z); + function V(t) { + return t.length; + } + (_.bisectLeft = e.left), + (_.bisect = _.bisectRight = e.right), + (_.bisector = function (n) { + return t( + 1 === n.length + ? function (t, e) { + return z(n(t), e); + } + : n, + ); + }), + (_.shuffle = function (t, e, n) { + (o = arguments.length) < 3 && ((n = t.length), o < 2 && (e = 0)); + for (var r, i, o = n - e; o; ) + (i = (Math.random() * o--) | 0), + (r = t[o + e]), + (t[o + e] = t[i + e]), + (t[i + e] = r); + return t; + }), + (_.permute = function (t, e) { + for (var n = e.length, r = new Array(n); n--; ) r[n] = t[e[n]]; + return r; + }), + (_.pairs = function (t) { + for (var e = 0, n = t.length - 1, r = t[0], i = new Array(n < 0 ? 0 : n); e < n; ) + i[e] = [r, (r = t[++e])]; + return i; + }), + (_.transpose = function (t) { + if (!(i = t.length)) return []; + for (var e = -1, n = _.min(t, V), r = new Array(n); ++e < n; ) + for (var i, o = -1, a = (r[e] = new Array(i)); ++o < i; ) a[o] = t[o][e]; + return r; + }), + (_.zip = function () { + return _.transpose(arguments); + }), + (_.keys = function (t) { + var e, + n = []; + for (e in t) n.push(e); + return n; + }), + (_.values = function (t) { + var e, + n = []; + for (e in t) n.push(t[e]); + return n; + }), + (_.entries = function (t) { + var e, + n = []; + for (e in t) n.push({ key: e, value: t[e] }); + return n; + }), + (_.merge = function (t) { + for (var e, n, r, i = t.length, o = -1, a = 0; ++o < i; ) a += t[o].length; + for (n = new Array(a); 0 <= --i; ) + for (e = (r = t[i]).length; 0 <= --e; ) n[--a] = r[e]; + return n; + }); + var F = Math.abs; + function q(t, e) { + for (var n in e) + Object.defineProperty(t.prototype, n, { value: e[n], enumerable: !1 }); + } + function W() { + this._ = Object.create(null); + } + (_.range = function (t, e, n) { + if ( + (arguments.length < 3 && ((n = 1), arguments.length < 2 && ((e = t), (t = 0))), + (e - t) / n == 1 / 0) + ) + throw new Error('infinite range'); + var r, + i = [], + o = (function (t) { + var e = 1; + for (; (t * e) % 1; ) e *= 10; + return e; + })(F(n)), + a = -1; + if (((t *= o), (e *= o), (n *= o) < 0)) for (; (r = t + n * ++a) > e; ) i.push(r / o); + else for (; (r = t + n * ++a) < e; ) i.push(r / o); + return i; + }), + (_.map = function (t, e) { + var n = new W(); + if (t instanceof W) + t.forEach(function (t, e) { + n.set(t, e); + }); + else if (Array.isArray(t)) { + var r, + i = -1, + o = t.length; + if (1 === arguments.length) for (; ++i < o; ) n.set(i, t[i]); + else for (; ++i < o; ) n.set(e.call(t, (r = t[i]), i), r); + } else for (var a in t) n.set(a, t[a]); + return n; + }); + var J = '__proto__', + K = '\0'; + function Z(t) { + return (t += '') === J || t[0] === K ? K + t : t; + } + function X(t) { + return (t += '')[0] === K ? t.slice(1) : t; + } + function $(t) { + return Z(t) in this._; + } + function tt(t) { + return (t = Z(t)) in this._ && delete this._[t]; + } + function et() { + var t, + e = []; + for (t in this._) e.push(X(t)); + return e; + } + function nt() { + var t, + e = 0; + for (t in this._) ++e; + return e; + } + function rt() { + for (var t in this._) return !1; + return !0; + } + function it() { + this._ = Object.create(null); + } + function k(t) { + return t; + } + function ot(t, e) { + if (e in t) return e; + e = e.charAt(0).toUpperCase() + e.slice(1); + for (var n = 0, r = at.length; n < r; ++n) { + var i = at[n] + e; + if (i in t) return i; + } + } + q(W, { + has: $, + get: function (t) { + return this._[Z(t)]; + }, + set: function (t, e) { + return (this._[Z(t)] = e); + }, + remove: tt, + keys: et, + values: function () { + var t, + e = []; + for (t in this._) e.push(this._[t]); + return e; + }, + entries: function () { + var t, + e = []; + for (t in this._) e.push({ key: X(t), value: this._[t] }); + return e; + }, + size: nt, + empty: rt, + forEach: function (t) { + for (var e in this._) t.call(this, X(e), this._[e]); + }, + }), + (_.nest = function () { + var A, + h, + p = {}, + d = [], + e = []; + function f(n, t, r) { + if (r >= d.length) return h ? h.call(p, t) : A ? t.sort(A) : t; + for (var e, i, o, a, s = -1, l = t.length, u = d[r++], c = new W(); ++s < l; ) + (a = c.get((e = u((i = t[s]))))) ? a.push(i) : c.set(e, [i]); + return ( + (o = n + ? ((i = n()), + function (t, e) { + i.set(t, f(n, e, r)); + }) + : ((i = {}), + function (t, e) { + i[t] = f(n, e, r); + })), + c.forEach(o), + i + ); + } + return ( + (p.map = function (t, e) { + return f(e, t, 0); + }), + (p.entries = function (t) { + return (function n(t, r) { + if (r >= d.length) return t; + var i = [], + o = e[r++]; + return ( + t.forEach(function (t, e) { + i.push({ key: t, values: n(e, r) }); + }), + o + ? i.sort(function (t, e) { + return o(t.key, e.key); + }) + : i + ); + })(f(_.map, t, 0), 0); + }), + (p.key = function (t) { + return d.push(t), p; + }), + (p.sortKeys = function (t) { + return (e[d.length - 1] = t), p; + }), + (p.sortValues = function (t) { + return (A = t), p; + }), + (p.rollup = function (t) { + return (h = t), p; + }), + p + ); + }), + (_.set = function (t) { + var e = new it(); + if (t) for (var n = 0, r = t.length; n < r; ++n) e.add(t[n]); + return e; + }), + q(it, { + has: $, + add: function (t) { + return (this._[Z((t += ''))] = !0), t; + }, + remove: tt, + values: et, + size: nt, + empty: rt, + forEach: function (t) { + for (var e in this._) t.call(this, X(e)); + }, + }), + (_.behavior = {}), + (_.rebind = function (t, e) { + for (var n, r = 1, i = arguments.length; ++r < i; ) + t[(n = arguments[r])] = (function (e, n, r) { + return function () { + var t = r.apply(n, arguments); + return t === n ? e : t; + }; + })(t, e, e[n]); + return t; + }); + var at = ['webkit', 'ms', 'moz', 'Moz', 'o', 'O']; + function l() {} + function st() {} + function lt(i) { + var o = [], + r = new W(); + function t() { + for (var t, e = o, n = -1, r = e.length; ++n < r; ) + (t = e[n].on) && t.apply(this, arguments); + return i; + } + return ( + (t.on = function (t, e) { + var n = r.get(t); + return arguments.length < 2 + ? n && n.on + : (n && + ((n.on = null), + (o = o.slice(0, (n = o.indexOf(n))).concat(o.slice(n + 1))), + r.remove(t)), + e && o.push(r.set(t, { on: e })), + i); + }), + t + ); + } + function ut() { + _.event.preventDefault(); + } + function ct() { + for (var t, e = _.event; (t = e.sourceEvent); ) e = t; + return e; + } + function At(i) { + for (var o = new st(), t = 0, e = arguments.length; ++t < e; ) + o[arguments[t]] = lt(o); + return ( + (o.of = function (n, r) { + return function (t) { + try { + var e = (t.sourceEvent = _.event); + (t.target = i), (_.event = t), o[t.type].apply(n, r); + } finally { + _.event = e; + } + }; + }), + o + ); + } + (_.dispatch = function () { + for (var t = new st(), e = -1, n = arguments.length; ++e < n; ) + t[arguments[e]] = lt(t); + return t; + }), + (st.prototype.on = function (t, e) { + var n = t.indexOf('.'), + r = ''; + if ((0 <= n && ((r = t.slice(n + 1)), (t = t.slice(0, n))), t)) + return arguments.length < 2 ? this[t].on(r) : this[t].on(r, e); + if (2 === arguments.length) { + if (null == e) for (t in this) this.hasOwnProperty(t) && this[t].on(r, null); + return this; + } + }), + (_.event = null), + (_.requote = function (t) { + return t.replace(ht, '\\$&'); + }); + var ht = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g, + pt = {}.__proto__ + ? function (t, e) { + t.__proto__ = e; + } + : function (t, e) { + for (var n in e) t[n] = e[n]; + }; + function dt(t) { + return pt(t, r), t; + } + var ft = function (t, e) { + return e.querySelector(t); + }, + gt = function (t, e) { + return e.querySelectorAll(t); + }, + mt = function (t, e) { + var n = t.matches || t[ot(t, 'matchesSelector')]; + return (mt = function (t, e) { + return n.call(t, e); + })(t, e); + }, + r = + ('function' == typeof Sizzle && + ((ft = function (t, e) { + return Sizzle(t, e)[0] || null; + }), + (mt = (gt = Sizzle).matchesSelector)), + (_.selection = function () { + return _.select(T.documentElement); + }), + (_.selection.prototype = [])); + function vt(t) { + return 'function' == typeof t + ? t + : function () { + return ft(t, this); + }; + } + function bt(t) { + return 'function' == typeof t + ? t + : function () { + return gt(t, this); + }; + } + (r.select = function (t) { + var e, + n, + r, + i, + o = []; + t = vt(t); + for (var a = -1, s = this.length; ++a < s; ) { + o.push((e = [])), (e.parentNode = (r = this[a]).parentNode); + for (var l = -1, u = r.length; ++l < u; ) + (i = r[l]) + ? (e.push((n = t.call(i, i.__data__, l, a))), + n && '__data__' in i && (n.__data__ = i.__data__)) + : e.push(null); + } + return dt(o); + }), + (r.selectAll = function (t) { + var e, + n, + r = []; + t = bt(t); + for (var i = -1, o = this.length; ++i < o; ) + for (var a = this[i], s = -1, l = a.length; ++s < l; ) + (n = a[s]) && + (r.push((e = h(t.call(n, n.__data__, s, i)))), (e.parentNode = n)); + return dt(r); + }); + var yt = 'http://www.w3.org/1999/xhtml', + wt = { + svg: 'http://www.w3.org/2000/svg', + xhtml: yt, + xlink: 'http://www.w3.org/1999/xlink', + xml: 'http://www.w3.org/XML/1998/namespace', + xmlns: 'http://www.w3.org/2000/xmlns/', + }; + function Et(e, n) { + return ( + (e = _.ns.qualify(e)), + null == n + ? e.local + ? function () { + this.removeAttributeNS(e.space, e.local); + } + : function () { + this.removeAttribute(e); + } + : 'function' == typeof n + ? e.local + ? function () { + var t = n.apply(this, arguments); + null == t + ? this.removeAttributeNS(e.space, e.local) + : this.setAttributeNS(e.space, e.local, t); + } + : function () { + var t = n.apply(this, arguments); + null == t ? this.removeAttribute(e) : this.setAttribute(e, t); + } + : e.local + ? function () { + this.setAttributeNS(e.space, e.local, n); + } + : function () { + this.setAttribute(e, n); + } + ); + } + function Bt(t) { + return t.trim().replace(/\s+/g, ' '); + } + function Ct(t) { + return new RegExp('(?:^|\\s+)' + _.requote(t) + '(?:\\s+|$)', 'g'); + } + function xt(t) { + return (t + '').trim().split(/^|\s+/); + } + function It(n, r) { + var i = (n = xt(n).map(Mt)).length; + return 'function' == typeof r + ? function () { + for (var t = -1, e = r.apply(this, arguments); ++t < i; ) n[t](this, e); + } + : function () { + for (var t = -1; ++t < i; ) n[t](this, r); + }; + } + function Mt(r) { + var i = Ct(r); + return function (t, e) { + if ((n = t.classList)) return e ? n.add(r) : n.remove(r); + var n = t.getAttribute('class') || ''; + e + ? ((i.lastIndex = 0), i.test(n) || t.setAttribute('class', Bt(n + ' ' + r))) + : t.setAttribute('class', Bt(n.replace(i, ' '))); + }; + } + function Dt(e, n, r) { + return null == n + ? function () { + this.style.removeProperty(e); + } + : 'function' == typeof n + ? function () { + var t = n.apply(this, arguments); + null == t ? this.style.removeProperty(e) : this.style.setProperty(e, t, r); + } + : function () { + this.style.setProperty(e, n, r); + }; + } + function St(e, n) { + return null == n + ? function () { + delete this[e]; + } + : 'function' == typeof n + ? function () { + var t = n.apply(this, arguments); + null == t ? delete this[e] : (this[e] = t); + } + : function () { + this[e] = n; + }; + } + function kt(n) { + return 'function' == typeof n + ? n + : (n = _.ns.qualify(n)).local + ? function () { + return this.ownerDocument.createElementNS(n.space, n.local); + } + : function () { + var t = this.ownerDocument, + e = this.namespaceURI; + return e === yt && t.documentElement.namespaceURI === yt + ? t.createElement(n) + : t.createElementNS(e, n); + }; + } + function Ft() { + var t = this.parentNode; + t && t.removeChild(this); + } + function Qt(t) { + return { __data__: t }; + } + function _t(t) { + return function () { + return mt(this, t); + }; + } + function Tt(t, e) { + for (var n = 0, r = t.length; n < r; n++) + for (var i, o = t[n], a = 0, s = o.length; a < s; a++) (i = o[a]) && e(i, a, n); + return t; + } + function Rt(t) { + return pt(t, Ut), t; + } + (_.ns = { + prefix: wt, + qualify: function (t) { + var e = t.indexOf(':'), + n = t; + return ( + 0 <= e && 'xmlns' !== (n = t.slice(0, e)) && (t = t.slice(e + 1)), + wt.hasOwnProperty(n) ? { space: wt[n], local: t } : t + ); + }, + }), + (r.attr = function (t, e) { + if (arguments.length < 2) { + var n; + if ('string' == typeof t) + return ( + (n = this.node()), + (t = _.ns.qualify(t)).local + ? n.getAttributeNS(t.space, t.local) + : n.getAttribute(t) + ); + for (e in t) this.each(Et(e, t[e])); + return this; + } + return this.each(Et(t, e)); + }), + (r.classed = function (t, e) { + if (arguments.length < 2) { + if ('string' == typeof t) { + var n = this.node(), + r = (t = xt(t)).length, + i = -1; + if ((e = n.classList)) { + for (; ++i < r; ) if (!e.contains(t[i])) return !1; + } else + for (e = n.getAttribute('class'); ++i < r; ) if (!Ct(t[i]).test(e)) return !1; + return !0; + } + for (e in t) this.each(It(e, t[e])); + return this; + } + return this.each(It(t, e)); + }), + (r.style = function (t, e, n) { + var r = arguments.length; + if (r < 3) { + if ('string' != typeof t) { + for (n in (r < 2 && (e = ''), t)) this.each(Dt(n, t[n], e)); + return this; + } + if (r < 2) + return L((r = this.node())) + .getComputedStyle(r, null) + .getPropertyValue(t); + n = ''; + } + return this.each(Dt(t, e, n)); + }), + (r.property = function (t, e) { + if (arguments.length < 2) { + if ('string' == typeof t) return this.node()[t]; + for (e in t) this.each(St(e, t[e])); + return this; + } + return this.each(St(t, e)); + }), + (r.text = function (e) { + return arguments.length + ? this.each( + 'function' == typeof e + ? function () { + var t = e.apply(this, arguments); + this.textContent = null == t ? '' : t; + } + : null == e + ? function () { + this.textContent = ''; + } + : function () { + this.textContent = e; + }, + ) + : this.node().textContent; + }), + (r.html = function (e) { + return arguments.length + ? this.each( + 'function' == typeof e + ? function () { + var t = e.apply(this, arguments); + this.innerHTML = null == t ? '' : t; + } + : null == e + ? function () { + this.innerHTML = ''; + } + : function () { + this.innerHTML = e; + }, + ) + : this.node().innerHTML; + }), + (r.append = function (t) { + return ( + (t = kt(t)), + this.select(function () { + return this.appendChild(t.apply(this, arguments)); + }) + ); + }), + (r.insert = function (t, e) { + return ( + (t = kt(t)), + (e = vt(e)), + this.select(function () { + return this.insertBefore( + t.apply(this, arguments), + e.apply(this, arguments) || null, + ); + }) + ); + }), + (r.remove = function () { + return this.each(Ft); + }), + (r.data = function (t, d) { + var e, + n, + r = -1, + i = this.length; + if (!arguments.length) { + for (t = new Array((i = (e = this[0]).length)); ++r < i; ) + (n = e[r]) && (t[r] = n.__data__); + return t; + } + function o(t, e) { + var n, + r, + i = t.length, + o = e.length, + a = Math.min(i, o), + s = new Array(o), + l = new Array(o), + u = new Array(i); + if (d) { + for (var c, A = new W(), h = new Array(i), p = -1; ++p < i; ) + (n = t[p]) && + (A.has((c = d.call(n, n.__data__, p))) ? (u[p] = n) : A.set(c, n), + (h[p] = c)); + for (p = -1; ++p < o; ) + (n = A.get((c = d.call(e, (r = e[p]), p)))) + ? !0 !== n && ((s[p] = n).__data__ = r) + : (l[p] = Qt(r)), + A.set(c, !0); + for (p = -1; ++p < i; ) p in h && !0 !== A.get(h[p]) && (u[p] = t[p]); + } else { + for (p = -1; ++p < a; ) + (n = t[p]), (r = e[p]), n ? ((n.__data__ = r), (s[p] = n)) : (l[p] = Qt(r)); + for (; p < o; ++p) l[p] = Qt(e[p]); + for (; p < i; ++p) u[p] = t[p]; + } + (l.update = s), + (l.parentNode = s.parentNode = u.parentNode = t.parentNode), + f.push(l), + g.push(s), + m.push(u); + } + var f = Rt([]), + g = dt([]), + m = dt([]); + if ('function' == typeof t) + for (; ++r < i; ) o((e = this[r]), t.call(e, e.parentNode.__data__, r)); + else for (; ++r < i; ) o((e = this[r]), t); + return ( + (g.enter = function () { + return f; + }), + (g.exit = function () { + return m; + }), + g + ); + }), + (r.datum = function (t) { + return arguments.length ? this.property('__data__', t) : this.property('__data__'); + }), + (r.filter = function (t) { + var e, + n, + r, + i = []; + 'function' != typeof t && (t = _t(t)); + for (var o = 0, a = this.length; o < a; o++) { + i.push((e = [])), (e.parentNode = (n = this[o]).parentNode); + for (var s = 0, l = n.length; s < l; s++) + (r = n[s]) && t.call(r, r.__data__, s, o) && e.push(r); + } + return dt(i); + }), + (r.order = function () { + for (var t = -1, e = this.length; ++t < e; ) + for (var n, r = this[t], i = r.length - 1, o = r[i]; 0 <= --i; ) + (n = r[i]) && + (o && o !== n.nextSibling && o.parentNode.insertBefore(n, o), (o = n)); + return this; + }), + (r.sort = function (t) { + t = function (n) { + arguments.length || (n = z); + return function (t, e) { + return t && e ? n(t.__data__, e.__data__) : !t - !e; + }; + }.apply(this, arguments); + for (var e = -1, n = this.length; ++e < n; ) this[e].sort(t); + return this.order(); + }), + (r.each = function (r) { + return Tt(this, function (t, e, n) { + r.call(t, t.__data__, e, n); + }); + }), + (r.call = function (t) { + var e = h(arguments); + return t.apply((e[0] = this), e), this; + }), + (r.empty = function () { + return !this.node(); + }), + (r.node = function () { + for (var t = 0, e = this.length; t < e; t++) + for (var n = this[t], r = 0, i = n.length; r < i; r++) { + var o = n[r]; + if (o) return o; + } + return null; + }), + (r.size = function () { + var t = 0; + return ( + Tt(this, function () { + ++t; + }), + t + ); + }); + var Ut = []; + function Nt(i, e, n) { + var r = '__on' + i, + t = i.indexOf('.'), + o = Lt, + a = (0 < t && (i = i.slice(0, t)), Pt.get(i)); + function s() { + var t = this[r]; + t && (this.removeEventListener(i, t, t.$), delete this[r]); + } + return ( + a && ((i = a), (o = Yt)), + t + ? e + ? function () { + var t = o(e, h(arguments)); + s.call(this), this.addEventListener(i, (this[r] = t), (t.$ = n)), (t._ = e); + } + : s + : e + ? l + : function () { + var t, + e, + n, + r = new RegExp('^__on([^.]+)' + _.requote(i) + '$'); + for (e in this) + (t = e.match(r)) && + ((n = this[e]), this.removeEventListener(t[1], n, n.$), delete this[e]); + } + ); + } + (_.selection.enter = Rt), + ((_.selection.enter.prototype = Ut).append = r.append), + (Ut.empty = r.empty), + (Ut.node = r.node), + (Ut.call = r.call), + (Ut.size = r.size), + (Ut.select = function (t) { + for (var e, n, r, i, o, a = [], s = -1, l = this.length; ++s < l; ) { + (r = (i = this[s]).update), a.push((e = [])), (e.parentNode = i.parentNode); + for (var u = -1, c = i.length; ++u < c; ) + (o = i[u]) + ? (e.push((r[u] = n = t.call(i.parentNode, o.__data__, u, s))), + (n.__data__ = o.__data__)) + : e.push(null); + } + return dt(a); + }), + (Ut.insert = function (t, e) { + var a, s, l; + return ( + arguments.length < 2 && + ((a = this), + (e = function (t, e, n) { + var r, + i = a[n].update, + o = i.length; + for ( + n != l && ((l = n), (s = 0)), s <= e && (s = e + 1); + !(r = i[s]) && ++s < o; + + ); + return r; + })), + r.insert.call(this, t, e) + ); + }), + (_.select = function (t) { + var e; + return ( + 'string' == typeof t + ? ((e = [ft(t, T)]).parentNode = T.documentElement) + : ((e = [t]).parentNode = P(t)), + dt([e]) + ); + }), + (_.selectAll = function (t) { + var e; + return ( + 'string' == typeof t + ? ((e = h(gt(t, T))).parentNode = T.documentElement) + : ((e = h(t)).parentNode = null), + dt([e]) + ); + }), + (r.on = function (t, e, n) { + var r = arguments.length; + if (r < 3) { + if ('string' != typeof t) { + for (n in (r < 2 && (e = !1), t)) this.each(Nt(n, t[n], e)); + return this; + } + if (r < 2) return (r = this.node()['__on' + t]) && r._; + n = !1; + } + return this.each(Nt(t, e, n)); + }); + var Pt = _.map({ mouseenter: 'mouseover', mouseleave: 'mouseout' }); + function Lt(n, r) { + return function (t) { + var e = _.event; + (_.event = t), (r[0] = this.__data__); + try { + n.apply(this, r); + } finally { + _.event = e; + } + }; + } + function Yt(t, e) { + var n = Lt(t, e); + return function (t) { + var e = t.relatedTarget; + (e && (e === this || 8 & e.compareDocumentPosition(this))) || n.call(this, t); + }; + } + T && + Pt.forEach(function (t) { + 'on' + t in T && Pt.remove(t); + }); + var Ot, + Gt = 0; + function zt(t) { + var n, + r, + i = '.dragsuppress-' + ++Gt, + o = 'click' + i, + a = _.select(L(t)) + .on('touchmove' + i, ut) + .on('dragstart' + i, ut) + .on('selectstart' + i, ut); + return ( + (Ot = null == Ot ? !('onselectstart' in t) && ot(t.style, 'userSelect') : Ot) && + ((n = P(t).style), (r = n[Ot]), (n[Ot] = 'none')), + function (t) { + var e; + a.on(i, null), + Ot && (n[Ot] = r), + t && + ((e = function () { + a.on(o, null); + }), + a.on( + o, + function () { + ut(), e(); + }, + !0, + ), + setTimeout(e, 0)); + } + ); + } + _.mouse = function (t) { + return jt(t, ct()); + }; + var Ht = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0; + function jt(t, e) { + e.changedTouches && (e = e.changedTouches[0]); + var n, + r = t.ownerSVGElement || t; + if (r.createSVGPoint) + return ( + (n = r.createSVGPoint()), + Ht < 0 && + ((i = L(t)).scrollX || i.scrollY) && + ((i = (r = _.select('body').append('svg').style( + { + position: 'absolute', + top: 0, + left: 0, + margin: 0, + padding: 0, + border: 'none', + }, + 'important', + ))[0][0].getScreenCTM()), + (Ht = !(i.f || i.e)), + r.remove()), + Ht ? ((n.x = e.pageX), (n.y = e.pageY)) : ((n.x = e.clientX), (n.y = e.clientY)), + [(n = n.matrixTransform(t.getScreenCTM().inverse())).x, n.y] + ); + var i = t.getBoundingClientRect(); + return [e.clientX - i.left - t.clientLeft, e.clientY - i.top - t.clientTop]; + } + function Vt() { + return _.event.changedTouches[0].identifier; + } + (_.touch = function (t, e, n) { + if ((arguments.length < 3 && ((n = e), (e = ct().changedTouches)), e)) + for (var r, i = 0, o = e.length; i < o; ++i) + if ((r = e[i]).identifier === n) return jt(t, r); + }), + (_.behavior.drag = function () { + var f = At(n, 'drag', 'dragstart', 'dragend'), + g = null, + t = r(l, _.mouse, L, 'mousemove', 'mouseup'), + e = r(Vt, _.touch, k, 'touchmove', 'touchend'); + function n() { + this.on('mousedown.drag', t).on('touchstart.drag', e); + } + function r(c, A, h, p, d) { + return function () { + var r, + t = _.event.target.correspondingElement || _.event.target, + i = this.parentNode, + o = f.of(this, arguments), + a = 0, + s = c(), + e = '.drag' + (null == s ? '' : '-' + s), + n = _.select(h(t)) + .on(p + e, function () { + var t, + e, + n = A(i, s); + n && + ((t = n[0] - u[0]), + (e = n[1] - u[1]), + (a |= t | e), + o({ + type: 'drag', + x: (u = n)[0] + r[0], + y: n[1] + r[1], + dx: t, + dy: e, + })); + }) + .on(d + e, function () { + A(i, s) && + (n.on(p + e, null).on(d + e, null), l(a), o({ type: 'dragend' })); + }), + l = zt(t), + u = A(i, s); + (r = g ? [(r = g.apply(this, arguments)).x - u[0], r.y - u[1]] : [0, 0]), + o({ type: 'dragstart' }); + }; + } + return ( + (n.origin = function (t) { + return arguments.length ? ((g = t), n) : g; + }), + _.rebind(n, f, 'on') + ); + }), + (_.touches = function (n, t) { + return (t = arguments.length < 2 ? ct().touches : t) + ? h(t).map(function (t) { + var e = jt(n, t); + return (e.identifier = t.identifier), e; + }) + : []; + }); + var Q = 1e-6, + qt = Q * Q, + R = Math.PI, + x = 2 * R, + Wt = x - Q, + U = R / 2, + C = R / 180, + I = 180 / R; + function Jt(t) { + return 0 < t ? 1 : t < 0 ? -1 : 0; + } + function Kt(t, e, n) { + return (e[0] - t[0]) * (n[1] - t[1]) - (e[1] - t[1]) * (n[0] - t[0]); + } + function Zt(t) { + return 1 < t ? 0 : t < -1 ? R : Math.acos(t); + } + function Xt(t) { + return 1 < t ? U : t < -1 ? -U : Math.asin(t); + } + function $t(t) { + return ((t = Math.exp(t)) + 1 / t) / 2; + } + function te(t) { + return (t = Math.sin(t / 2)) * t; + } + var ee, + ne, + re = Math.SQRT2, + ie = + ((_.interpolateZoom = function (t, e) { + var r, + i, + o, + a = t[0], + s = t[1], + l = t[2], + t = e[0], + n = e[1], + e = e[2], + u = t - a, + c = n - s, + t = u * u + c * c; + return ( + ((e = + t < qt + ? ((o = Math.log(e / l) / re), + function (t) { + return [a + t * u, s + t * c, l * Math.exp(re * t * o)]; + }) + : ((r = Math.sqrt(t)), + (n = (e * e - l * l + 4 * t) / (2 * l * 2 * r)), + (t = (e * e - l * l - 4 * t) / (2 * e * 2 * r)), + (i = Math.log(Math.sqrt(n * n + 1) - n)), + (o = (Math.log(Math.sqrt(t * t + 1) - t) - i) / re), + function (t) { + var t = t * o, + e = $t(i), + n = + (l / (2 * r)) * + (e * ((n = re * t + i), ((n = Math.exp(2 * n)) - 1) / (n + 1)) - + ((n = i), ((n = Math.exp(i)) - 1 / n) / 2)); + return [a + n * u, s + n * c, (l * e) / $t(re * t + i)]; + })).duration = 1e3 * o), + e + ); + }), + (_.behavior.zoom = function () { + var e, + s, + n, + r, + v, + i, + o, + a, + l, + b = { x: 0, y: 0, k: 1 }, + u = [960, 500], + c = ie, + A = 250, + h = 0, + y = 'mousedown.zoom', + p = 'mousemove.zoom', + d = 'mouseup.zoom', + w = 'touchstart.zoom', + E = At(f, 'zoomstart', 'zoom', 'zoomend'); + function f(t) { + t.on(y, k) + .on(ne + '.zoom', m) + .on('dblclick.zoom', Q) + .on(w, F); + } + function B(t) { + return [(t[0] - b.x) / b.k, (t[1] - b.y) / b.k]; + } + function C(t) { + b.k = Math.max(c[0], Math.min(c[1], t)); + } + function x(t, e) { + var n; + (e = [(n = e)[0] * b.k + b.x, n[1] * b.k + b.y]), + (b.x += t[0] - e[0]), + (b.y += t[1] - e[1]); + } + function I(t, e, n, r) { + (t.__chart__ = { x: b.x, y: b.y, k: b.k }), + C(Math.pow(2, r)), + x((s = e), n), + (t = _.select(t)), + (t = 0 < A ? t.transition().duration(A) : t).call(f.event); + } + function g() { + o && + o.domain( + i + .range() + .map(function (t) { + return (t - b.x) / b.k; + }) + .map(i.invert), + ), + l && + l.domain( + a + .range() + .map(function (t) { + return (t - b.y) / b.k; + }) + .map(a.invert), + ); + } + function M(t) { + h++ || t({ type: 'zoomstart' }); + } + function D(t) { + g(), t({ type: 'zoom', scale: b.k, translate: [b.x, b.y] }); + } + function S(t) { + --h || (t({ type: 'zoomend' }), (s = null)); + } + function k() { + var t = this, + e = E.of(t, arguments), + n = 0, + r = _.select(L(t)) + .on(p, function () { + (n = 1), x(_.mouse(t), i), D(e); + }) + .on(d, function () { + r.on(p, null).on(d, null), o(n), S(e); + }), + i = B(_.mouse(t)), + o = zt(t); + xs.call(t), M(e); + } + function F() { + var l, + u = this, + c = E.of(u, arguments), + A = {}, + h = 0, + i = '.zoom-' + _.event.changedTouches[0].identifier, + a = 'touchmove' + i, + s = 'touchend' + i, + p = [], + o = _.select(u), + d = zt(u); + function f() { + var t = _.touches(u); + return ( + (l = b.k), + t.forEach(function (t) { + t.identifier in A && (A[t.identifier] = B(t)); + }), + t + ); + } + function t() { + for ( + var t = _.event.target, + e = (_.select(t).on(a, g).on(s, m), p.push(t), _.event.changedTouches), + n = 0, + r = e.length; + n < r; + ++n + ) + A[e[n].identifier] = null; + var i, + t = f(), + o = Date.now(); + 1 === t.length + ? (o - v < 500 && + ((i = t[0]), + I(u, i, A[i.identifier], Math.floor(Math.log(b.k) / Math.LN2) + 1), + ut()), + (v = o)) + : 1 < t.length && + ((i = t[0]), + (o = t[1]), + (t = i[0] - o[0]), + (i = i[1] - o[1]), + (h = t * t + i * i)); + } + function g() { + var t, + e, + n = _.touches(u); + xs.call(u); + for (var r, i, o, a = 0, s = n.length; a < s; ++a, e = null) + if (((t = n[a]), (e = A[t.identifier]))) { + if (o) break; + (i = t), (o = e); + } + e && + ((r = (r = t[0] - i[0]) * r + (r = t[1] - i[1]) * r), + (r = h && Math.sqrt(r / h)), + (i = [(i[0] + t[0]) / 2, (i[1] + t[1]) / 2]), + (o = [(o[0] + e[0]) / 2, (o[1] + e[1]) / 2]), + C(r * l)), + (v = null), + x(i, o), + D(c); + } + function m() { + if (_.event.touches.length) { + for (var t, e = _.event.changedTouches, n = 0, r = e.length; n < r; ++n) + delete A[e[n].identifier]; + for (t in A) return void f(); + } + _.selectAll(p).on(i, null), o.on(y, k).on(w, F), d(), S(c); + } + t(), M(c), o.on(y, null).on(w, t); + } + function m() { + var t = E.of(this, arguments); + r ? clearTimeout(r) : (xs.call(this), (e = B((s = n || _.mouse(this)))), M(t)), + (r = setTimeout(function () { + (r = null), S(t); + }, 50)), + ut(), + C(Math.pow(2, 0.002 * ee()) * b.k), + x(s, e), + D(t); + } + function Q() { + var t = _.mouse(this), + e = Math.log(b.k) / Math.LN2; + I(this, t, B(t), _.event.shiftKey ? Math.ceil(e) - 1 : Math.floor(e) + 1); + } + return ( + (ne = + ne || + ('onwheel' in T + ? ((ee = function () { + return -_.event.deltaY * (_.event.deltaMode ? 120 : 1); + }), + 'wheel') + : 'onmousewheel' in T + ? ((ee = function () { + return _.event.wheelDelta; + }), + 'mousewheel') + : ((ee = function () { + return -_.event.detail; + }), + 'MozMousePixelScroll'))), + (f.event = function (t) { + t.each(function () { + var a = E.of(this, arguments), + e = b; + Ds + ? _.select(this) + .transition() + .each('start.zoom', function () { + (b = this.__chart__ || { x: 0, y: 0, k: 1 }), M(a); + }) + .tween('zoom:zoom', function () { + var n = u[0], + t = u[1], + r = s ? s[0] : n / 2, + i = s ? s[1] : t / 2, + o = _.interpolateZoom( + [(r - b.x) / b.k, (i - b.y) / b.k, n / b.k], + [(r - e.x) / e.k, (i - e.y) / e.k, n / e.k], + ); + return function (t) { + var t = o(t), + e = n / t[2]; + (this.__chart__ = b = { x: r - t[0] * e, y: i - t[1] * e, k: e }), + D(a); + }; + }) + .each('interrupt.zoom', function () { + S(a); + }) + .each('end.zoom', function () { + S(a); + }) + : ((this.__chart__ = b), M(a), D(a), S(a)); + }); + }), + (f.translate = function (t) { + return arguments.length + ? ((b = { x: +t[0], y: +t[1], k: b.k }), g(), f) + : [b.x, b.y]; + }), + (f.scale = function (t) { + return arguments.length + ? ((b = { x: b.x, y: b.y, k: null }), C(+t), g(), f) + : b.k; + }), + (f.scaleExtent = function (t) { + return arguments.length ? ((c = null == t ? ie : [+t[0], +t[1]]), f) : c; + }), + (f.center = function (t) { + return arguments.length ? ((n = t && [+t[0], +t[1]]), f) : n; + }), + (f.size = function (t) { + return arguments.length ? ((u = t && [+t[0], +t[1]]), f) : u; + }), + (f.duration = function (t) { + return arguments.length ? ((A = +t), f) : A; + }), + (f.x = function (t) { + return arguments.length + ? ((i = (o = t).copy()), (b = { x: 0, y: 0, k: 1 }), f) + : o; + }), + (f.y = function (t) { + return arguments.length + ? ((a = (l = t).copy()), (b = { x: 0, y: 0, k: 1 }), f) + : l; + }), + _.rebind(f, E, 'on') + ); + }), + [0, 1 / 0]); + function oe() {} + function ae(t, e, n) { + return this instanceof ae + ? ((this.h = +t), (this.s = +e), void (this.l = +n)) + : arguments.length < 2 + ? t instanceof ae + ? new ae(t.h, t.s, t.l) + : we('' + t, Ee, ae) + : new ae(t, e, n); + } + (_.color = oe).prototype.toString = function () { + return this.rgb() + ''; + }; + n = (_.hsl = ae).prototype = new oe(); + function se(t, e, n) { + var r, i; + function o(t) { + return Math.round( + 255 * + (360 < (t = t) ? (t -= 360) : t < 0 && (t += 360), + t < 60 + ? r + ((i - r) * t) / 60 + : t < 180 + ? i + : t < 240 + ? r + ((i - r) * (240 - t)) / 60 + : r), + ); + } + return ( + (t = isNaN(t) ? 0 : (t %= 360) < 0 ? t + 360 : t), + (e = isNaN(e) || e < 0 ? 0 : 1 < e ? 1 : e), + (r = + 2 * (n = n < 0 ? 0 : 1 < n ? 1 : n) - + (i = n <= 0.5 ? n * (1 + e) : n + e - n * e)), + new a(o(t + 120), o(t), o(t - 120)) + ); + } + function i(t, e, n) { + return this instanceof i + ? ((this.h = +t), (this.c = +e), void (this.l = +n)) + : arguments.length < 2 + ? t instanceof i + ? new i(t.h, t.c, t.l) + : de((t instanceof o ? t : (t = Be((t = _.rgb(t)).r, t.g, t.b))).l, t.a, t.b) + : new i(t, e, n); + } + (n.brighter = function (t) { + return ( + (t = Math.pow(0.7, arguments.length ? t : 1)), new ae(this.h, this.s, this.l / t) + ); + }), + (n.darker = function (t) { + return ( + (t = Math.pow(0.7, arguments.length ? t : 1)), new ae(this.h, this.s, t * this.l) + ); + }), + (n.rgb = function () { + return se(this.h, this.s, this.l); + }); + e = (_.hcl = i).prototype = new oe(); + function le(t, e, n) { + return ( + isNaN(t) && (t = 0), + isNaN(e) && (e = 0), + new o(n, Math.cos((t *= C)) * e, Math.sin(t) * e) + ); + } + function o(t, e, n) { + return this instanceof o + ? ((this.l = +t), (this.a = +e), void (this.b = +n)) + : arguments.length < 2 + ? t instanceof o + ? new o(t.l, t.a, t.b) + : t instanceof i + ? le(t.h, t.c, t.l) + : Be((t = a(t)).r, t.g, t.b) + : new o(t, e, n); + } + (e.brighter = function (t) { + return new i(this.h, this.c, Math.min(100, this.l + ue * (arguments.length ? t : 1))); + }), + (e.darker = function (t) { + return new i(this.h, this.c, Math.max(0, this.l - ue * (arguments.length ? t : 1))); + }), + (e.rgb = function () { + return le(this.h, this.c, this.l).rgb(); + }), + (_.lab = o); + var ue = 18, + ce = 0.95047, + Ae = 1, + he = 1.08883, + n = (o.prototype = new oe()); + function pe(t, e, n) { + (t = (t + 16) / 116), (n = t - n / 200); + return new a( + me( + 3.2404542 * (e = fe(t + e / 500) * ce) - + 1.5371385 * (t = fe(t) * Ae) - + 0.4985314 * (n = fe(n) * he), + ), + me(-0.969266 * e + 1.8760108 * t + 0.041556 * n), + me(0.0556434 * e - 0.2040259 * t + 1.0572252 * n), + ); + } + function de(t, e, n) { + return 0 < t + ? new i(Math.atan2(n, e) * I, Math.sqrt(e * e + n * n), t) + : new i(NaN, NaN, t); + } + function fe(t) { + return 0.206893034 < t ? t * t * t : (t - 4 / 29) / 7.787037; + } + function ge(t) { + return 0.008856 < t ? Math.pow(t, 1 / 3) : 7.787037 * t + 4 / 29; + } + function me(t) { + return Math.round( + 255 * (t <= 0.00304 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - 0.055), + ); + } + function a(t, e, n) { + return this instanceof a + ? ((this.r = ~~t), (this.g = ~~e), void (this.b = ~~n)) + : arguments.length < 2 + ? t instanceof a + ? new a(t.r, t.g, t.b) + : we('' + t, a, se) + : new a(t, e, n); + } + function ve(t) { + return new a(t >> 16, (t >> 8) & 255, 255 & t); + } + function be(t) { + return ve(t) + ''; + } + (n.brighter = function (t) { + return new o(Math.min(100, this.l + ue * (arguments.length ? t : 1)), this.a, this.b); + }), + (n.darker = function (t) { + return new o(Math.max(0, this.l - ue * (arguments.length ? t : 1)), this.a, this.b); + }), + (n.rgb = function () { + return pe(this.l, this.a, this.b); + }); + e = (_.rgb = a).prototype = new oe(); + function ye(t) { + return t < 16 ? '0' + Math.max(0, t).toString(16) : Math.min(255, t).toString(16); + } + function we(t, e, n) { + var r, + i = 0, + o = 0, + a = 0, + s = /([a-z]+)\((.*)\)/.exec((t = t.toLowerCase())); + if (s) + switch (((r = s[2].split(',')), s[1])) { + case 'hsl': + return n(parseFloat(r[0]), parseFloat(r[1]) / 100, parseFloat(r[2]) / 100); + case 'rgb': + return e(xe(r[0]), xe(r[1]), xe(r[2])); + } + return (s = Ie.get(t)) + ? e(s.r, s.g, s.b) + : (null == t || + '#' !== t.charAt(0) || + isNaN((s = parseInt(t.slice(1), 16))) || + (4 === t.length + ? ((i = (3840 & s) >> 4), + (i |= i >> 4), + (o = 240 & s), + (o |= o >> 4), + (a = 15 & s), + (a |= a << 4)) + : 7 === t.length && + ((i = (16711680 & s) >> 16), (o = (65280 & s) >> 8), (a = 255 & s))), + e(i, o, a)); + } + function Ee(t, e, n) { + var r, + i, + o = Math.min((t /= 255), (e /= 255), (n /= 255)), + a = Math.max(t, e, n), + s = a - o, + l = (a + o) / 2; + return ( + s + ? ((i = l < 0.5 ? s / (a + o) : s / (2 - a - o)), + (r = + t == a + ? (e - n) / s + (e < n ? 6 : 0) + : e == a + ? (n - t) / s + 2 + : (t - e) / s + 4), + (r *= 60)) + : ((r = NaN), (i = 0 < l && l < 1 ? 0 : r)), + new ae(r, i, l) + ); + } + function Be(t, e, n) { + var r = ge( + (0.4124564 * (t = Ce(t)) + 0.3575761 * (e = Ce(e)) + 0.1804375 * (n = Ce(n))) / + ce, + ), + i = ge((0.2126729 * t + 0.7151522 * e + 0.072175 * n) / Ae); + return o( + 116 * i - 16, + 500 * (r - i), + 200 * (i - ge((0.0193339 * t + 0.119192 * e + 0.9503041 * n) / he)), + ); + } + function Ce(t) { + return (t /= 255) <= 0.04045 ? t / 12.92 : Math.pow((t + 0.055) / 1.055, 2.4); + } + function xe(t) { + var e = parseFloat(t); + return '%' === t.charAt(t.length - 1) ? Math.round(2.55 * e) : e; + } + (e.brighter = function (t) { + t = Math.pow(0.7, arguments.length ? t : 1); + var e = this.r, + n = this.g, + r = this.b; + return e || n || r + ? (e && e < 30 && (e = 30), + n && n < 30 && (n = 30), + r && r < 30 && (r = 30), + new a(Math.min(255, e / t), Math.min(255, n / t), Math.min(255, r / t))) + : new a(30, 30, 30); + }), + (e.darker = function (t) { + return new a( + (t = Math.pow(0.7, arguments.length ? t : 1)) * this.r, + t * this.g, + t * this.b, + ); + }), + (e.hsl = function () { + return Ee(this.r, this.g, this.b); + }), + (e.toString = function () { + return '#' + ye(this.r) + ye(this.g) + ye(this.b); + }); + var Ie = _.map({ + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + rebeccapurple: 6697881, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074, + }); + function N(t) { + return 'function' == typeof t + ? t + : function () { + return t; + }; + } + function Me(r) { + return function (t, e, n) { + return ( + 2 === arguments.length && 'function' == typeof e && ((n = e), (e = null)), + De(t, e, r, n) + ); + }; + } + function De(i, o, a, t) { + var n, + s = {}, + l = _.dispatch('beforesend', 'progress', 'load', 'error'), + u = {}, + c = new XMLHttpRequest(), + A = null; + function e() { + var t, + e, + n, + r = c.status; + if ( + (!r && + ((n = (e = c).responseType) && 'text' !== n ? e.response : e.responseText)) || + (200 <= r && r < 300) || + 304 === r + ) { + try { + t = a.call(s, c); + } catch (t) { + return void l.error.call(s, t); + } + l.load.call(s, t); + } else l.error.call(s, c); + } + return ( + 'onload' in + (c = + !this.XDomainRequest || 'withCredentials' in c || !/^(http(s)?:)?\/\//.test(i) + ? c + : new XDomainRequest()) + ? (c.onload = c.onerror = e) + : (c.onreadystatechange = function () { + 3 < c.readyState && e(); + }), + (c.onprogress = function (t) { + var e = _.event; + _.event = t; + try { + l.progress.call(s, c); + } finally { + _.event = e; + } + }), + (s.header = function (t, e) { + return ( + (t = (t + '').toLowerCase()), + arguments.length < 2 ? u[t] : (null == e ? delete u[t] : (u[t] = e + ''), s) + ); + }), + (s.mimeType = function (t) { + return arguments.length ? ((o = null == t ? null : t + ''), s) : o; + }), + (s.responseType = function (t) { + return arguments.length ? ((A = t), s) : A; + }), + (s.response = function (t) { + return (a = t), s; + }), + ['get', 'post'].forEach(function (t) { + s[t] = function () { + return s.send.apply(s, [t].concat(h(arguments))); + }; + }), + (s.send = function (t, e, n) { + if ( + (2 === arguments.length && 'function' == typeof e && ((n = e), (e = null)), + c.open(t, i, !0), + null == o || 'accept' in u || (u.accept = o + ',*/*'), + c.setRequestHeader) + ) + for (var r in u) c.setRequestHeader(r, u[r]); + return ( + null != o && c.overrideMimeType && c.overrideMimeType(o), + null != A && (c.responseType = A), + null != n && + s.on('error', n).on('load', function (t) { + n(null, t); + }), + l.beforesend.call(s, c), + c.send(null == e ? null : e), + s + ); + }), + (s.abort = function () { + return c.abort(), s; + }), + _.rebind(s, l, 'on'), + null == t + ? s + : s.get( + 1 === (n = t).length + ? function (t, e) { + n(null == t ? e : null); + } + : n, + ) + ); + } + Ie.forEach(function (t, e) { + Ie.set(t, ve(e)); + }), + (_.functor = N), + (_.xhr = Me(k)), + (_.dsv = function (i, o) { + var e = new RegExp('["' + i + '\n]'), + h = i.charCodeAt(0); + function a(t, e, n) { + arguments.length < 3 && ((n = e), (e = null)); + var r = De(t, o, null == e ? s : l(e), n); + return ( + (r.row = function (t) { + return arguments.length ? r.response(null == (e = t) ? s : l(t)) : e; + }), + r + ); + } + function s(t) { + return a.parse(t.responseText); + } + function l(e) { + return function (t) { + return a.parse(t.responseText, e); + }; + } + function n(t) { + return t.map(u).join(i); + } + function u(t) { + return e.test(t) ? '"' + t.replace(/\"/g, '""') + '"' : t; + } + return ( + (a.parse = function (t, r) { + var i; + return a.parseRows(t, function (t, e) { + if (i) return i(t, e - 1); + var n = new Function( + 'd', + 'return {' + + t + .map(function (t, e) { + return JSON.stringify(t) + ': d[' + e + ']'; + }) + .join(',') + + '}', + ); + i = r + ? function (t, e) { + return r(n(t), e); + } + : n; + }); + }), + (a.parseRows = function (i, t) { + var e, + o, + a = {}, + s = {}, + n = [], + l = i.length, + u = 0, + r = 0; + function c() { + if (l <= u) return s; + if (o) return (o = !1), a; + var t = u; + if (34 === i.charCodeAt(t)) { + for (var e = t; e++ < l; ) + if (34 === i.charCodeAt(e)) { + if (34 !== i.charCodeAt(e + 1)) break; + ++e; + } + return ( + (u = e + 2), + 13 === (n = i.charCodeAt(e + 1)) + ? ((o = !0), 10 === i.charCodeAt(e + 2) && ++u) + : 10 === n && (o = !0), + i.slice(t + 1, e).replace(/""/g, '"') + ); + } + for (; u < l; ) { + var n, + r = 1; + if (10 === (n = i.charCodeAt(u++))) o = !0; + else if (13 === n) (o = !0), 10 === i.charCodeAt(u) && (++u, ++r); + else if (n !== h) continue; + return i.slice(t, u - r); + } + return i.slice(t); + } + for (; (e = c()) !== s; ) { + for (var A = []; e !== a && e !== s; ) A.push(e), (e = c()); + (t && null == (A = t(A, r++))) || n.push(A); + } + return n; + }), + (a.format = function (t) { + if (Array.isArray(t[0])) return a.formatRows(t); + var n = new it(), + r = []; + return ( + t.forEach(function (t) { + for (var e in t) n.has(e) || r.push(n.add(e)); + }), + [r.map(u).join(i)] + .concat( + t.map(function (e) { + return r + .map(function (t) { + return u(e[t]); + }) + .join(i); + }), + ) + .join('\n') + ); + }), + (a.formatRows = function (t) { + return t.map(n).join('\n'); + }), + a + ); + }), + (_.csv = _.dsv(',', 'text/csv')), + (_.tsv = _.dsv('\t', 'text/tab-separated-values')); + var Se, + ke, + Fe, + Qe, + _e = + this[ot(this, 'requestAnimationFrame')] || + function (t) { + setTimeout(t, 17); + }; + function Te(t, e, n) { + var r = arguments.length; + r < 2 && (e = 0); + r = { c: t, t: (n = r < 3 ? Date.now() : n) + e, n: null }; + return ( + ke ? (ke.n = r) : (Se = r), + (ke = r), + Fe || ((Qe = clearTimeout(Qe)), (Fe = 1), _e(Re)), + r + ); + } + function Re() { + var t = Ue(), + t = Ne() - t; + 24 < t + ? (isFinite(t) && (clearTimeout(Qe), (Qe = setTimeout(Re, t))), (Fe = 0)) + : ((Fe = 1), _e(Re)); + } + function Ue() { + for (var t = Date.now(), e = Se; e; ) + t >= e.t && e.c(t - e.t) && (e.c = null), (e = e.n); + return t; + } + function Ne() { + for (var t, e = Se, n = 1 / 0; e; ) + e = e.c ? (e.t < n && (n = e.t), (t = e).n) : t ? (t.n = e.n) : (Se = e.n); + return (ke = t), n; + } + function Pe(t, e) { + return e - (t ? Math.ceil(Math.log(t) / Math.LN10) : 1); + } + (_.timer = function () { + Te.apply(this, arguments); + }), + (_.timer.flush = function () { + Ue(), Ne(); + }), + (_.round = function (t, e) { + return e ? Math.round(t * (e = Math.pow(10, e))) / e : Math.round(t); + }); + var Le = [ + 'y', + 'z', + 'a', + 'f', + 'p', + 'n', + 'µ', + 'm', + '', + 'k', + 'M', + 'G', + 'T', + 'P', + 'E', + 'Z', + 'Y', + ].map(function (t, e) { + var n = Math.pow(10, 3 * F(8 - e)); + return { + scale: + 8 < e + ? function (t) { + return t / n; + } + : function (t) { + return t * n; + }, + symbol: t, + }; + }); + _.formatPrefix = function (t, e) { + var n = 0; + return ( + (t = +t) && + (t < 0 && (t *= -1), + e && (t = _.round(t, Pe(t, e))), + (n = 1 + Math.floor(1e-12 + Math.log(t) / Math.LN10)), + (n = Math.max(-24, Math.min(24, 3 * Math.floor((n - 1) / 3))))), + Le[8 + n / 3] + ); + }; + var Ye = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i, + Oe = _.map({ + b: function (t) { + return t.toString(2); + }, + c: function (t) { + return String.fromCharCode(t); + }, + o: function (t) { + return t.toString(8); + }, + x: function (t) { + return t.toString(16); + }, + X: function (t) { + return t.toString(16).toUpperCase(); + }, + g: function (t, e) { + return t.toPrecision(e); + }, + e: function (t, e) { + return t.toExponential(e); + }, + f: function (t, e) { + return t.toFixed(e); + }, + r: function (t, e) { + return (t = _.round(t, Pe(t, e))).toFixed( + Math.max(0, Math.min(20, Pe(t * (1 + 1e-15), e))), + ); + }, + }); + function Ge(t) { + return t + ''; + } + var E = (_.time = {}), + B = Date; + function ze() { + this._ = new Date( + 1 < arguments.length ? Date.UTC.apply(this, arguments) : arguments[0], + ); + } + ze.prototype = { + getDate: function () { + return this._.getUTCDate(); + }, + getDay: function () { + return this._.getUTCDay(); + }, + getFullYear: function () { + return this._.getUTCFullYear(); + }, + getHours: function () { + return this._.getUTCHours(); + }, + getMilliseconds: function () { + return this._.getUTCMilliseconds(); + }, + getMinutes: function () { + return this._.getUTCMinutes(); + }, + getMonth: function () { + return this._.getUTCMonth(); + }, + getSeconds: function () { + return this._.getUTCSeconds(); + }, + getTime: function () { + return this._.getTime(); + }, + getTimezoneOffset: function () { + return 0; + }, + valueOf: function () { + return this._.valueOf(); + }, + setDate: function () { + He.setUTCDate.apply(this._, arguments); + }, + setDay: function () { + He.setUTCDay.apply(this._, arguments); + }, + setFullYear: function () { + He.setUTCFullYear.apply(this._, arguments); + }, + setHours: function () { + He.setUTCHours.apply(this._, arguments); + }, + setMilliseconds: function () { + He.setUTCMilliseconds.apply(this._, arguments); + }, + setMinutes: function () { + He.setUTCMinutes.apply(this._, arguments); + }, + setMonth: function () { + He.setUTCMonth.apply(this._, arguments); + }, + setSeconds: function () { + He.setUTCSeconds.apply(this._, arguments); + }, + setTime: function () { + He.setTime.apply(this._, arguments); + }, + }; + var He = Date.prototype; + function je(r, o, a) { + function t(t) { + var e = r(t), + n = i(e, 1); + return t - e < n - t ? e : n; + } + function s(t) { + return o((t = r(new B(t - 1))), 1), t; + } + function i(t, e) { + return o((t = new B(+t)), e), t; + } + function l(t, e, n) { + var r = s(t), + i = []; + if (1 < n) for (; r < e; ) a(r) % n || i.push(new Date(+r)), o(r, 1); + else for (; r < e; ) i.push(new Date(+r)), o(r, 1); + return i; + } + ((r.floor = r).round = t), (r.ceil = s), (r.offset = i), (r.range = l); + var e = (r.utc = Ve(r)); + return ( + ((e.floor = e).round = Ve(t)), + (e.ceil = Ve(s)), + (e.offset = Ve(i)), + (e.range = function (t, e, n) { + try { + var r = new (B = ze)(); + return (r._ = t), l(r, e, n); + } finally { + B = Date; + } + }), + r + ); + } + function Ve(r) { + return function (t, e) { + try { + var n = new (B = ze)(); + return (n._ = t), r(n, e)._; + } finally { + B = Date; + } + }; + } + function qe(t) { + var e = t.dateTime, + n = t.date, + r = t.time, + i = t.periods, + o = t.days, + a = t.shortDays, + s = t.months, + l = t.shortMonths; + function u(s) { + var l = s.length; + function t(t) { + for (var e, n, r, i = [], o = -1, a = 0; ++o < l; ) + 37 === s.charCodeAt(o) && + (i.push(s.slice(a, o)), + null != (n = We[(e = s.charAt(++o))]) && (e = s.charAt(++o)), + (r = y[e]) && (e = r(t, null == n ? ('e' === e ? ' ' : '0') : n)), + i.push(e), + (a = o + 1)); + return i.push(s.slice(a, o)), i.join(''); + } + return ( + (t.parse = function (t) { + var e = { y: 1900, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0, Z: null }; + if (c(e, s, t, 0) != t.length) return null; + 'p' in e && (e.H = (e.H % 12) + 12 * e.p); + var t = null != e.Z && B !== ze, + n = new (t ? ze : B)(); + return ( + 'j' in e + ? n.setFullYear(e.y, 0, e.j) + : 'W' in e || 'U' in e + ? ('w' in e || (e.w = 'W' in e ? 1 : 0), + n.setFullYear(e.y, 0, 1), + n.setFullYear( + e.y, + 0, + 'W' in e + ? ((e.w + 6) % 7) + 7 * e.W - ((n.getDay() + 5) % 7) + : e.w + 7 * e.U - ((n.getDay() + 6) % 7), + )) + : n.setFullYear(e.y, e.m, e.d), + n.setHours(e.H + ((e.Z / 100) | 0), e.M + (e.Z % 100), e.S, e.L), + t ? n._ : n + ); + }), + (t.toString = function () { + return s; + }), + t + ); + } + function c(t, e, n, r) { + for (var i, o, a = 0, s = e.length, l = n.length; a < s; ) { + if (l <= r) return -1; + if (37 === (i = e.charCodeAt(a++))) { + if ( + ((o = e.charAt(a++)), + !(o = w[o in We ? e.charAt(a++) : o]) || (r = o(t, n, r)) < 0) + ) + return -1; + } else if (i != n.charCodeAt(r++)) return -1; + } + return r; + } + u.multi = (u.utc = function (t) { + var n = u(t); + function e(t) { + try { + var e = new (B = ze)(); + return (e._ = t), n(e); + } finally { + B = Date; + } + } + return ( + (e.parse = function (t) { + try { + B = ze; + var e = n.parse(t); + return e && e._; + } finally { + B = Date; + } + }), + (e.toString = n.toString), + e + ); + }).multi = dn; + var A = _.map(), + h = Ke(o), + p = Ze(o), + d = Ke(a), + f = Ze(a), + g = Ke(s), + m = Ze(s), + v = Ke(l), + b = Ze(l), + y = + (i.forEach(function (t, e) { + A.set(t.toLowerCase(), e); + }), + { + a: function (t) { + return a[t.getDay()]; + }, + A: function (t) { + return o[t.getDay()]; + }, + b: function (t) { + return l[t.getMonth()]; + }, + B: function (t) { + return s[t.getMonth()]; + }, + c: u(e), + d: function (t, e) { + return M(t.getDate(), e, 2); + }, + e: function (t, e) { + return M(t.getDate(), e, 2); + }, + H: function (t, e) { + return M(t.getHours(), e, 2); + }, + I: function (t, e) { + return M(t.getHours() % 12 || 12, e, 2); + }, + j: function (t, e) { + return M(1 + E.dayOfYear(t), e, 3); + }, + L: function (t, e) { + return M(t.getMilliseconds(), e, 3); + }, + m: function (t, e) { + return M(t.getMonth() + 1, e, 2); + }, + M: function (t, e) { + return M(t.getMinutes(), e, 2); + }, + p: function (t) { + return i[+(12 <= t.getHours())]; + }, + S: function (t, e) { + return M(t.getSeconds(), e, 2); + }, + U: function (t, e) { + return M(E.sundayOfYear(t), e, 2); + }, + w: function (t) { + return t.getDay(); + }, + W: function (t, e) { + return M(E.mondayOfYear(t), e, 2); + }, + x: u(n), + X: u(r), + y: function (t, e) { + return M(t.getFullYear() % 100, e, 2); + }, + Y: function (t, e) { + return M(t.getFullYear() % 1e4, e, 4); + }, + Z: hn, + '%': function () { + return '%'; + }, + }), + w = { + a: function (t, e, n) { + d.lastIndex = 0; + e = d.exec(e.slice(n)); + return e ? ((t.w = f.get(e[0].toLowerCase())), n + e[0].length) : -1; + }, + A: function (t, e, n) { + h.lastIndex = 0; + e = h.exec(e.slice(n)); + return e ? ((t.w = p.get(e[0].toLowerCase())), n + e[0].length) : -1; + }, + b: function (t, e, n) { + v.lastIndex = 0; + e = v.exec(e.slice(n)); + return e ? ((t.m = b.get(e[0].toLowerCase())), n + e[0].length) : -1; + }, + B: function (t, e, n) { + g.lastIndex = 0; + e = g.exec(e.slice(n)); + return e ? ((t.m = m.get(e[0].toLowerCase())), n + e[0].length) : -1; + }, + c: function (t, e, n) { + return c(t, y.c.toString(), e, n); + }, + d: an, + e: an, + H: ln, + I: ln, + j: sn, + L: An, + m: on, + M: un, + p: function (t, e, n) { + e = A.get(e.slice(n, (n += 2)).toLowerCase()); + return null == e ? -1 : ((t.p = e), n); + }, + S: cn, + U: $e, + w: Xe, + W: tn, + x: function (t, e, n) { + return c(t, y.x.toString(), e, n); + }, + X: function (t, e, n) { + return c(t, y.X.toString(), e, n); + }, + y: nn, + Y: en, + Z: rn, + '%': pn, + }; + return u; + } + (E.year = je( + function (t) { + return (t = E.day(t)).setMonth(0, 1), t; + }, + function (t, e) { + t.setFullYear(t.getFullYear() + e); + }, + function (t) { + return t.getFullYear(); + }, + )), + (E.years = E.year.range), + (E.years.utc = E.year.utc.range), + (E.day = je( + function (t) { + var e = new B(2e3, 0); + return e.setFullYear(t.getFullYear(), t.getMonth(), t.getDate()), e; + }, + function (t, e) { + t.setDate(t.getDate() + e); + }, + function (t) { + return t.getDate() - 1; + }, + )), + (E.days = E.day.range), + (E.days.utc = E.day.utc.range), + (E.dayOfYear = function (t) { + var e = E.year(t); + return Math.floor( + (t - e - 6e4 * (t.getTimezoneOffset() - e.getTimezoneOffset())) / 864e5, + ); + }), + [ + 'sunday', + 'monday', + 'tuesday', + 'wednesday', + 'thursday', + 'friday', + 'saturday', + ].forEach(function (t, n) { + n = 7 - n; + var e = (E[t] = je( + function (t) { + return (t = E.day(t)).setDate(t.getDate() - ((t.getDay() + n) % 7)), t; + }, + function (t, e) { + t.setDate(t.getDate() + 7 * Math.floor(e)); + }, + function (t) { + var e = E.year(t).getDay(); + return Math.floor((E.dayOfYear(t) + ((e + n) % 7)) / 7) - (e !== n); + }, + )); + (E[t + 's'] = e.range), + (E[t + 's'].utc = e.utc.range), + (E[t + 'OfYear'] = function (t) { + var e = E.year(t).getDay(); + return Math.floor((E.dayOfYear(t) + ((e + n) % 7)) / 7); + }); + }), + (E.week = E.sunday), + (E.weeks = E.sunday.range), + (E.weeks.utc = E.sunday.utc.range), + (E.weekOfYear = E.sundayOfYear); + var We = { '-': '', _: ' ', 0: '0' }, + s = /^\s*\d+/, + Je = /^%/; + function M(t, e, n) { + var r = t < 0 ? '-' : '', + t = (r ? -t : t) + '', + i = t.length; + return r + (i < n ? new Array(n - i + 1).join(e) + t : t); + } + function Ke(t) { + return new RegExp('^(?:' + t.map(_.requote).join('|') + ')', 'i'); + } + function Ze(t) { + for (var e = new W(), n = -1, r = t.length; ++n < r; ) e.set(t[n].toLowerCase(), n); + return e; + } + function Xe(t, e, n) { + s.lastIndex = 0; + e = s.exec(e.slice(n, n + 1)); + return e ? ((t.w = +e[0]), n + e[0].length) : -1; + } + function $e(t, e, n) { + s.lastIndex = 0; + e = s.exec(e.slice(n)); + return e ? ((t.U = +e[0]), n + e[0].length) : -1; + } + function tn(t, e, n) { + s.lastIndex = 0; + e = s.exec(e.slice(n)); + return e ? ((t.W = +e[0]), n + e[0].length) : -1; + } + function en(t, e, n) { + s.lastIndex = 0; + e = s.exec(e.slice(n, n + 4)); + return e ? ((t.y = +e[0]), n + e[0].length) : -1; + } + function nn(t, e, n) { + s.lastIndex = 0; + e = s.exec(e.slice(n, n + 2)); + return e ? ((t.y = (t = +e[0]) + (68 < t ? 1900 : 2e3)), n + e[0].length) : -1; + } + function rn(t, e, n) { + return /^[+-]\d{4}$/.test((e = e.slice(n, n + 5))) ? ((t.Z = -e), n + 5) : -1; + } + function on(t, e, n) { + s.lastIndex = 0; + e = s.exec(e.slice(n, n + 2)); + return e ? ((t.m = e[0] - 1), n + e[0].length) : -1; + } + function an(t, e, n) { + s.lastIndex = 0; + e = s.exec(e.slice(n, n + 2)); + return e ? ((t.d = +e[0]), n + e[0].length) : -1; + } + function sn(t, e, n) { + s.lastIndex = 0; + e = s.exec(e.slice(n, n + 3)); + return e ? ((t.j = +e[0]), n + e[0].length) : -1; + } + function ln(t, e, n) { + s.lastIndex = 0; + e = s.exec(e.slice(n, n + 2)); + return e ? ((t.H = +e[0]), n + e[0].length) : -1; + } + function un(t, e, n) { + s.lastIndex = 0; + e = s.exec(e.slice(n, n + 2)); + return e ? ((t.M = +e[0]), n + e[0].length) : -1; + } + function cn(t, e, n) { + s.lastIndex = 0; + e = s.exec(e.slice(n, n + 2)); + return e ? ((t.S = +e[0]), n + e[0].length) : -1; + } + function An(t, e, n) { + s.lastIndex = 0; + e = s.exec(e.slice(n, n + 3)); + return e ? ((t.L = +e[0]), n + e[0].length) : -1; + } + function hn(t) { + var t = t.getTimezoneOffset(), + e = 0 < t ? '-' : '+', + n = (F(t) / 60) | 0, + t = F(t) % 60; + return e + M(n, '0', 2) + M(t, '0', 2); + } + function pn(t, e, n) { + Je.lastIndex = 0; + e = Je.exec(e.slice(n, n + 1)); + return e ? n + e[0].length : -1; + } + function dn(r) { + for (var t = r.length, e = -1; ++e < t; ) r[e][0] = this(r[e][0]); + return function (t) { + for (var e = 0, n = r[e]; !n[1](t); ) n = r[++e]; + return n[0](t); + }; + } + _.locale = function (t) { + return { + numberFormat: + ((w = t.decimal), + (s = t.thousands), + (l = t.grouping), + (n = t.currency), + (E = + l && s + ? function (t, e) { + for ( + var n = t.length, r = [], i = 0, o = l[0], a = 0; + 0 < n && + 0 < o && + (e < a + o + 1 && (o = Math.max(1, e - a)), + r.push(t.substring((n -= o), n + o)), + !((a += o + 1) > e)); + + ) + o = l[(i = (i + 1) % l.length)]; + return r.reverse().join(s); + } + : k), + function (t) { + var t = Ye.exec(t), + s = t[1] || ' ', + l = t[2] || '>', + u = t[3] || '-', + e = t[4] || '', + c = t[5], + A = +t[6], + h = t[7], + p = t[8], + d = t[9], + f = 1, + g = '', + m = '', + v = !1, + b = !0, + p = p && +p.substring(1); + switch (((c || ('0' === s && '=' === l)) && ((c = s = '0'), (l = '=')), d)) { + case 'n': + (h = !0), (d = 'g'); + break; + case '%': + (f = 100), (m = '%'), (d = 'f'); + break; + case 'p': + (f = 100), (m = '%'), (d = 'r'); + break; + case 'b': + case 'o': + case 'x': + case 'X': + '#' === e && (g = '0' + d.toLowerCase()); + case 'c': + b = !1; + case 'd': + (v = !0), (p = 0); + break; + case 's': + (f = -1), (d = 'r'); + } + '$' === e && ((g = n[0]), (m = n[1])), + 'r' != d || p || (d = 'g'), + null != p && + ('g' == d + ? (p = Math.max(1, Math.min(21, p))) + : ('e' != d && 'f' != d) || (p = Math.max(0, Math.min(20, p)))); + var d = Oe.get(d) || Ge, + y = c && h; + return function (t) { + var e = m; + if (v && t % 1) return ''; + var n, + r, + i = t < 0 || (0 === t && 1 / t < 0) ? ((t = -t), '-') : '-' === u ? '' : u, + o = + (f < 0 + ? ((t = (o = _.formatPrefix(t, p)).scale(t)), (e = o.symbol + m)) + : (t *= f), + (t = d(t, p)).lastIndexOf('.')), + o = + ((r = + o < 0 + ? (r = b ? t.lastIndexOf('e') : -1) < 0 + ? ((n = t), '') + : ((n = t.substring(0, r)), t.substring(r)) + : ((n = t.substring(0, o)), w + t.substring(o + 1))), + !c && h && (n = E(n, 1 / 0)), + g.length + n.length + r.length + (y ? 0 : i.length)), + a = o < A ? new Array((o = A - o + 1)).join(s) : ''; + return ( + y && (n = E(a + n, a.length ? A - r.length : 1 / 0)), + (i += g), + (t = n + r), + ('<' === l + ? i + t + a + : '>' === l + ? a + i + t + : '^' === l + ? a.substring(0, (o >>= 1)) + i + t + a.substring(o) + : i + (y ? t : a + t)) + e + ); + }; + }), + timeFormat: qe(t), + }; + var w, s, l, n, E; + }; + n = _.locale({ + decimal: '.', + thousands: ',', + grouping: [3], + currency: ['$', ''], + dateTime: '%a %b %e %X %Y', + date: '%m/%d/%Y', + time: '%H:%M:%S', + periods: ['AM', 'PM'], + days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + months: [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December', + ], + shortMonths: [ + 'Jan', + 'Feb', + 'Mar', + 'Apr', + 'May', + 'Jun', + 'Jul', + 'Aug', + 'Sep', + 'Oct', + 'Nov', + 'Dec', + ], + }); + function fn() {} + (_.format = n.numberFormat), + (_.geo = {}), + (fn.prototype = { + s: 0, + t: 0, + add: function (t) { + mn(t, this.t, gn), + mn(gn.s, this.s, this), + this.s ? (this.t += gn.t) : (this.s = gn.t); + }, + reset: function () { + this.s = this.t = 0; + }, + valueOf: function () { + return this.s; + }, + }); + var gn = new fn(); + function mn(t, e, n) { + var r = (n.s = t + e), + i = r - t; + n.t = t - (r - i) + (e - i); + } + function vn(t, e) { + t && yn.hasOwnProperty(t.type) && yn[t.type](t, e); + } + _.geo.stream = function (t, e) { + t && bn.hasOwnProperty(t.type) ? bn[t.type](t, e) : vn(t, e); + }; + var bn = { + Feature: function (t, e) { + vn(t.geometry, e); + }, + FeatureCollection: function (t, e) { + for (var n = t.features, r = -1, i = n.length; ++r < i; ) vn(n[r].geometry, e); + }, + }, + yn = { + Sphere: function (t, e) { + e.sphere(); + }, + Point: function (t, e) { + (t = t.coordinates), e.point(t[0], t[1], t[2]); + }, + MultiPoint: function (t, e) { + for (var n = t.coordinates, r = -1, i = n.length; ++r < i; ) + (t = n[r]), e.point(t[0], t[1], t[2]); + }, + LineString: function (t, e) { + wn(t.coordinates, e, 0); + }, + MultiLineString: function (t, e) { + for (var n = t.coordinates, r = -1, i = n.length; ++r < i; ) wn(n[r], e, 0); + }, + Polygon: function (t, e) { + En(t.coordinates, e); + }, + MultiPolygon: function (t, e) { + for (var n = t.coordinates, r = -1, i = n.length; ++r < i; ) En(n[r], e); + }, + GeometryCollection: function (t, e) { + for (var n = t.geometries, r = -1, i = n.length; ++r < i; ) vn(n[r], e); + }, + }; + function wn(t, e, n) { + var r, + i = -1, + o = t.length - n; + for (e.lineStart(); ++i < o; ) (r = t[i]), e.point(r[0], r[1], r[2]); + e.lineEnd(); + } + function En(t, e) { + var n = -1, + r = t.length; + for (e.polygonStart(); ++n < r; ) wn(t[n], e, 1); + e.polygonEnd(); + } + _.geo.area = function (t) { + return (Bn = 0), _.geo.stream(t, g), Bn; + }; + var Bn, + u, + c, + A, + p, + Cn, + xn, + In, + Mn, + Dn, + Sn, + kn, + d, + Fn, + Qn, + _n, + Tn, + Rn, + Un, + Nn, + f, + Pn, + Ln, + Yn, + On = new fn(), + g = { + sphere: function () { + Bn += 4 * R; + }, + point: l, + lineStart: l, + lineEnd: l, + polygonStart: function () { + On.reset(), (g.lineStart = Gn); + }, + polygonEnd: function () { + var t = 2 * On; + (Bn += t < 0 ? 4 * R + t : t), (g.lineStart = g.lineEnd = g.point = l); + }, + }; + function Gn() { + var n, r, s, l, u; + function i(t, e) { + e = (e * C) / 2 + R / 4; + var n = (t *= C) - s, + r = 0 <= n ? 1 : -1, + n = r * n, + i = Math.cos(e), + e = Math.sin(e), + o = u * e, + a = l * i + o * Math.cos(n), + o = o * r * Math.sin(n); + On.add(Math.atan2(o, a)), (s = t), (l = i), (u = e); + } + (g.point = function (t, e) { + (g.point = i), + (s = (n = t) * C), + (l = Math.cos((e = ((r = e) * C) / 2 + R / 4))), + (u = Math.sin(e)); + }), + (g.lineEnd = function () { + i(n, r); + }); + } + function zn(t) { + var e = t[0], + t = t[1], + n = Math.cos(t); + return [n * Math.cos(e), n * Math.sin(e), Math.sin(t)]; + } + function Hn(t, e) { + return t[0] * e[0] + t[1] * e[1] + t[2] * e[2]; + } + function jn(t, e) { + return [ + t[1] * e[2] - t[2] * e[1], + t[2] * e[0] - t[0] * e[2], + t[0] * e[1] - t[1] * e[0], + ]; + } + function Vn(t, e) { + (t[0] += e[0]), (t[1] += e[1]), (t[2] += e[2]); + } + function qn(t, e) { + return [t[0] * e, t[1] * e, t[2] * e]; + } + function Wn(t) { + var e = Math.sqrt(t[0] * t[0] + t[1] * t[1] + t[2] * t[2]); + (t[0] /= e), (t[1] /= e), (t[2] /= e); + } + function Jn(t) { + return [Math.atan2(t[1], t[0]), Xt(t[2])]; + } + function Kn(t, e) { + return F(t[0] - e[0]) < Q && F(t[1] - e[1]) < Q; + } + function Zn(t, e) { + Sn.push((kn = [(u = t), (A = t)])), e < c && (c = e), p < e && (p = e); + } + function Xn(t, e) { + var n, + r, + i, + o, + a, + s = zn([t * C, e * C]); + Mn + ? ((n = jn(Mn, s)), + Wn((n = jn([n[1], -n[0], 0], n))), + (n = Jn(n)), + (o = t - Cn), + (i = n[0] * I * (r = 0 < o ? 1 : -1)), + (o = 180 < F(o)) ^ (r * Cn < i && i < r * t) + ? ((a = n[1] * I), p < a && (p = a)) + : o ^ (r * Cn < (i = ((i + 360) % 360) - 180) && i < r * t) + ? (a = -n[1] * I) < c && (c = a) + : (e < c && (c = e), p < e && (p = e)), + o + ? t < Cn + ? m(u, t) > m(u, A) && (A = t) + : m(t, A) > m(u, A) && (u = t) + : u <= A + ? (t < u && (u = t), A < t && (A = t)) + : Cn < t + ? m(u, t) > m(u, A) && (A = t) + : m(t, A) > m(u, A) && (u = t)) + : Zn(t, e), + (Mn = s), + (Cn = t); + } + function $n() { + d.point = Xn; + } + function tr() { + (kn[0] = u), (kn[1] = A), (d.point = Zn), (Mn = null); + } + function er(t, e) { + var n; + Mn + ? (Dn += 180 < F((n = t - Cn)) ? n + (0 < n ? 360 : -360) : n) + : ((xn = t), (In = e)), + g.point(t, e), + Xn(t, e); + } + function nr() { + g.lineStart(); + } + function rr() { + er(xn, In), + g.lineEnd(), + F(Dn) > Q && (u = -(A = 180)), + (kn[0] = u), + (kn[1] = A), + (Mn = null); + } + function m(t, e) { + return (e -= t) < 0 ? e + 360 : e; + } + function ir(t, e) { + return t[0] - e[0]; + } + function or(t, e) { + return e[0] <= e[1] ? e[0] <= t && t <= e[1] : t < e[0] || e[1] < t; + } + (_.geo.bounds = + ((d = { + point: Zn, + lineStart: $n, + lineEnd: tr, + polygonStart: function () { + (d.point = er), (d.lineStart = nr), (d.lineEnd = rr), (Dn = 0), g.polygonStart(); + }, + polygonEnd: function () { + g.polygonEnd(), + (d.point = Zn), + (d.lineStart = $n), + (d.lineEnd = tr), + On < 0 + ? ((u = -(A = 180)), (c = -(p = 90))) + : Q < Dn + ? (p = 90) + : Dn < -Q && (c = -90), + (kn[0] = u), + (kn[1] = A); + }, + }), + function (t) { + if (((p = A = -(u = c = 1 / 0)), (Sn = []), _.geo.stream(t, d), (i = Sn.length))) { + Sn.sort(ir); + for (var e = 1, n = [(s = Sn[0])]; e < i; ++e) + or((o = Sn[e])[0], s) || or(o[1], s) + ? (m(s[0], o[1]) > m(s[0], s[1]) && (s[1] = o[1]), + m(o[0], s[1]) > m(s[0], s[1]) && (s[0] = o[0])) + : n.push((s = o)); + for ( + var r, i, o, a = -1 / 0, e = 0, s = n[(i = n.length - 1)]; + e <= i; + s = o, ++e + ) + (o = n[e]), (r = m(s[1], o[0])) > a && ((a = r), (u = o[0]), (A = s[1])); + } + return ( + (Sn = kn = null), + u === 1 / 0 || c === 1 / 0 + ? [ + [NaN, NaN], + [NaN, NaN], + ] + : [ + [u, c], + [A, p], + ] + ); + })), + (_.geo.centroid = function (t) { + (Fn = Qn = _n = Tn = Rn = Un = Nn = f = Pn = Ln = Yn = 0), _.geo.stream(t, v); + var t = Pn, + e = Ln, + n = Yn, + r = t * t + e * e + n * n; + return r < qt && + ((t = Un), + (e = Nn), + (n = f), + Qn < Q && ((t = _n), (e = Tn), (n = Rn)), + (r = t * t + e * e + n * n) < qt) + ? [NaN, NaN] + : [Math.atan2(e, t) * I, Xt(n / Math.sqrt(r)) * I]; + }); + var v = { + sphere: l, + point: ar, + lineStart: lr, + lineEnd: ur, + polygonStart: function () { + v.lineStart = cr; + }, + polygonEnd: function () { + v.lineStart = lr; + }, + }; + function ar(t, e) { + t *= C; + var n = Math.cos((e *= C)); + sr(n * Math.cos(t), n * Math.sin(t), Math.sin(e)); + } + function sr(t, e, n) { + (_n += (t - _n) / ++Fn), (Tn += (e - Tn) / Fn), (Rn += (n - Rn) / Fn); + } + function lr() { + var i, o, a; + function r(t, e) { + t *= C; + var n = Math.cos((e *= C)), + r = n * Math.cos(t), + n = n * Math.sin(t), + t = Math.sin(e), + e = Math.atan2( + Math.sqrt( + (e = o * t - a * n) * e + (e = a * r - i * t) * e + (e = i * n - o * r) * e, + ), + i * r + o * n + a * t, + ); + (Qn += e), + (Un += e * (i + (i = r))), + (Nn += e * (o + (o = n))), + (f += e * (a + (a = t))), + sr(i, o, a); + } + v.point = function (t, e) { + t *= C; + var n = Math.cos((e *= C)); + (i = n * Math.cos(t)), + (o = n * Math.sin(t)), + (a = Math.sin(e)), + (v.point = r), + sr(i, o, a); + }; + } + function ur() { + v.point = ar; + } + function cr() { + var r, i, u, c, A; + function o(t, e) { + t *= C; + var n = Math.cos((e *= C)), + r = n * Math.cos(t), + n = n * Math.sin(t), + t = Math.sin(e), + e = c * t - A * n, + i = A * r - u * t, + o = u * n - c * r, + a = Math.sqrt(e * e + i * i + o * o), + s = u * r + c * n + A * t, + l = a && -Zt(s) / a, + a = Math.atan2(a, s); + (Pn += l * e), + (Ln += l * i), + (Yn += l * o), + (Qn += a), + (Un += a * (u + (u = r))), + (Nn += a * (c + (c = n))), + (f += a * (A + (A = t))), + sr(u, c, A); + } + (v.point = function (t, e) { + (r = t), (i = e), (v.point = o), (t *= C); + var n = Math.cos((e *= C)); + (u = n * Math.cos(t)), (c = n * Math.sin(t)), (A = Math.sin(e)), sr(u, c, A); + }), + (v.lineEnd = function () { + o(r, i), (v.lineEnd = ur), (v.point = ar); + }); + } + function Ar(n, r) { + function t(t, e) { + return (t = n(t, e)), r(t[0], t[1]); + } + return ( + n.invert && + r.invert && + (t.invert = function (t, e) { + return (t = r.invert(t, e)) && n.invert(t[0], t[1]); + }), + t + ); + } + function hr() { + return !0; + } + function pr(t, e, n, r, s) { + var l = [], + u = []; + if ( + (t.forEach(function (t) { + if (!((e = t.length - 1) <= 0)) { + var e, + n = t[0], + r = t[e]; + if (Kn(n, r)) { + s.lineStart(); + for (var i = 0; i < e; ++i) s.point((n = t[i])[0], n[1]); + s.lineEnd(); + } else { + var o = new fr(n, t, null, !0), + a = new fr(n, null, o, !1); + (o.o = a), + l.push(o), + u.push(a), + (o = new fr(r, t, null, !1)), + (a = new fr(r, null, o, !0)), + (o.o = a), + l.push(o), + u.push(a); + } + } + }), + u.sort(e), + dr(l), + dr(u), + l.length) + ) { + for (var i = 0, o = n, a = u.length; i < a; ++i) u[i].e = o = !o; + for (var c, A = l[0]; ; ) { + for (var h = A, p = !0; h.v; ) if ((h = h.n) === A) return; + (d = h.z), s.lineStart(); + do { + if (((h.v = h.o.v = !0), h.e)) { + if (p) for (i = 0, a = d.length; i < a; ++i) s.point((c = d[i])[0], c[1]); + else r(h.x, h.n.x, 1, s); + h = h.n; + } else { + if (p) + for (var d, i = (d = h.p.z).length - 1; 0 <= i; --i) + s.point((c = d[i])[0], c[1]); + else r(h.x, h.p.x, -1, s); + h = h.p; + } + } while (((d = (h = h.o).z), (p = !p), !h.v)); + s.lineEnd(); + } + } + } + function dr(t) { + if ((e = t.length)) { + for (var e, n, r = 0, i = t[0]; ++r < e; ) (i.n = n = t[r]), (n.p = i), (i = n); + (i.n = n = t[0]), (n.p = i); + } + } + function fr(t, e, n, r) { + (this.x = t), + (this.z = e), + (this.o = n), + (this.e = r), + (this.v = !1), + (this.n = this.p = null); + } + function gr(v, b, y, w) { + return function (r, a) { + var s, + n = b(a), + e = r.invert(w[0], w[1]), + i = { + point: o, + lineStart: l, + lineEnd: u, + polygonStart: function () { + (i.point = f), (i.lineStart = g), (i.lineEnd = m), (s = []), (c = []); + }, + polygonEnd: function () { + (i.point = o), (i.lineStart = l), (i.lineEnd = u), (s = _.merge(s)); + var t = (function (t, e) { + var n = t[0], + r = t[1], + i = [Math.sin(n), -Math.cos(n), 0], + o = 0, + a = 0; + On.reset(); + for (var s = 0, l = e.length; s < l; ++s) { + var u = e[s], + c = u.length; + if (c) + for ( + var A = u[0], + h = A[0], + p = A[1] / 2 + R / 4, + d = Math.sin(p), + f = Math.cos(p), + g = 1; + ; + + ) { + var m = (t = u[(g = g === c ? 0 : g)])[0], + v = t[1] / 2 + R / 4, + b = Math.sin(v), + v = Math.cos(v), + y = m - h, + w = 0 <= y ? 1 : -1, + E = w * y, + B = R < E, + C = d * b; + if ( + (On.add(Math.atan2(C * w * Math.sin(E), f * v + C * Math.cos(E))), + (o += B ? y + w * x : y), + B ^ (n <= h) ^ (n <= m) && + (Wn((C = jn(zn(A), zn(t)))), + Wn((E = jn(i, C))), + ((w = (B ^ (0 <= y) ? -1 : 1) * Xt(E[2])) < r || + (r === w && (C[0] || C[1]))) && + (a += B ^ (0 <= y) ? 1 : -1)), + !g++) + ) + break; + (h = m), (d = b), (f = v), (A = t); + } + } + return (o < -Q || (o < Q && On < -Q)) ^ (1 & a); + })(e, c); + s.length + ? (d || (a.polygonStart(), (d = !0)), pr(s, br, t, y, a)) + : t && + (d || (a.polygonStart(), (d = !0)), + a.lineStart(), + y(null, null, 1, a), + a.lineEnd()), + d && (a.polygonEnd(), (d = !1)), + (s = c = null); + }, + sphere: function () { + a.polygonStart(), + a.lineStart(), + y(null, null, 1, a), + a.lineEnd(), + a.polygonEnd(); + }, + }; + function o(t, e) { + var n = r(t, e); + v((t = n[0]), (e = n[1])) && a.point(t, e); + } + function t(t, e) { + t = r(t, e); + n.point(t[0], t[1]); + } + function l() { + (i.point = t), n.lineStart(); + } + function u() { + (i.point = o), n.lineEnd(); + } + var c, + A, + h = vr(), + p = b(h), + d = !1; + function f(t, e) { + A.push([t, e]); + t = r(t, e); + p.point(t[0], t[1]); + } + function g() { + p.lineStart(), (A = []); + } + function m() { + f(A[0][0], A[0][1]), p.lineEnd(); + var t = p.clean(), + e = h.buffer(), + n = e.length; + if ((A.pop(), c.push(A), (A = null), n)) + if (1 & t) { + var r, + i, + o = -1; + if (0 < (n = (r = e[0]).length - 1)) { + for (d || (a.polygonStart(), (d = !0)), a.lineStart(); ++o < n; ) + a.point((i = r[o])[0], i[1]); + a.lineEnd(); + } + } else + 1 < n && 2 & t && e.push(e.pop().concat(e.shift())), s.push(e.filter(mr)); + } + return i; + }; + } + function mr(t) { + return 1 < t.length; + } + function vr() { + var n, + e = []; + return { + lineStart: function () { + e.push((n = [])); + }, + point: function (t, e) { + n.push([t, e]); + }, + lineEnd: l, + buffer: function () { + var t = e; + return (e = []), (n = null), t; + }, + rejoin: function () { + 1 < e.length && e.push(e.pop().concat(e.shift())); + }, + }; + } + function br(t, e) { + return ( + ((t = t.x)[0] < 0 ? t[1] - U - Q : U - t[1]) - + ((e = e.x)[0] < 0 ? e[1] - U - Q : U - e[1]) + ); + } + var yr = gr( + hr, + function (u) { + var c, + A = NaN, + h = NaN, + p = NaN; + return { + lineStart: function () { + u.lineStart(), (c = 1); + }, + point: function (t, e) { + var n, + r, + i, + o, + a, + s = 0 < t ? R : -R, + l = F(t - A); + F(l - R) < Q + ? (u.point(A, (h = 0 < (h + e) / 2 ? U : -U)), + u.point(p, h), + u.lineEnd(), + u.lineStart(), + u.point(s, h), + u.point(t, h), + (c = 0)) + : p !== s && + R <= l && + (F(A - p) < Q && (A -= p * Q), + F(t - s) < Q && (t -= s * Q), + (l = A), + (n = h), + (r = t), + (i = e), + (a = Math.sin(l - r)), + (h = + F(a) > Q + ? Math.atan( + (Math.sin(n) * (o = Math.cos(i)) * Math.sin(r) - + Math.sin(i) * (r = Math.cos(n)) * Math.sin(l)) / + (r * o * a), + ) + : (n + i) / 2), + u.point(p, h), + u.lineEnd(), + u.lineStart(), + u.point(s, h), + (c = 0)), + u.point((A = t), (h = e)), + (p = s); + }, + lineEnd: function () { + u.lineEnd(), (A = h = NaN); + }, + clean: function () { + return 2 - c; + }, + }; + }, + function (t, e, n, r) { + var i; + null == t + ? ((i = n * U), + r.point(-R, i), + r.point(0, i), + r.point(R, i), + r.point(R, 0), + r.point(R, -i), + r.point(0, -i), + r.point(-R, -i), + r.point(-R, 0), + r.point(-R, i)) + : F(t[0] - e[0]) > Q + ? ((t = t[0] < e[0] ? R : -R), + (i = (n * t) / 2), + r.point(-t, i), + r.point(0, i), + r.point(t, i)) + : r.point(e[0], e[1]); + }, + [-R, -R / 2], + ); + function wr(i) { + var p = Math.cos(i), + A = 0 < p, + h = F(p) > Q; + return gr( + d, + function (o) { + var a, s, l, u, c; + return { + lineStart: function () { + (u = l = !1), (c = 1); + }, + point: function (t, e) { + var n, + r = [t, e], + i = d(t, e), + t = A ? (i ? 0 : g(t, e)) : i ? g(t + (t < 0 ? R : -R), e) : 0; + !a && (u = l = i) && o.lineStart(), + i !== l && + ((n = f(a, r)), + (Kn(a, n) || Kn(r, n)) && + ((r[0] += Q), (r[1] += Q), (i = d(r[0], r[1])))), + i !== l + ? ((c = 0), + i + ? (o.lineStart(), (n = f(r, a)), o.point(n[0], n[1])) + : ((n = f(a, r)), o.point(n[0], n[1]), o.lineEnd()), + (a = n)) + : h && + a && + A ^ i && + (t & s || + !(e = f(r, a, !0)) || + ((c = 0), + A + ? (o.lineStart(), + o.point(e[0][0], e[0][1]), + o.point(e[1][0], e[1][1]), + o.lineEnd()) + : (o.point(e[1][0], e[1][1]), + o.lineEnd(), + o.lineStart(), + o.point(e[0][0], e[0][1])))), + !i || (a && Kn(a, r)) || o.point(r[0], r[1]), + (a = r), + (l = i), + (s = t); + }, + lineEnd: function () { + l && o.lineEnd(), (a = null); + }, + clean: function () { + return c | ((u && l) << 1); + }, + }; + }, + ni(i, 6 * C), + A ? [0, -i] : [-R, i - R], + ); + function d(t, e) { + return Math.cos(t) * Math.cos(e) > p; + } + function f(t, e, n) { + var r = [1, 0, 0], + i = jn(zn(t), zn(e)), + o = Hn(i, i), + a = i[0], + s = o - a * a; + if (!s) return !n && t; + var l = jn(r, i), + r = qn(r, (p * o) / s), + o = (Vn(r, qn(i, (-p * a) / s)), l), + i = Hn(r, o), + a = Hn(o, o), + s = i * i - a * (Hn(r, r) - 1); + if (!(s < 0)) { + (l = Math.sqrt(s)), (s = qn(o, (-i - l) / a)); + if ((Vn(s, r), (s = Jn(s)), !n)) return s; + var u, + n = t[0], + c = e[0], + t = t[1], + e = e[1], + A = (c < n && ((u = n), (n = c), (c = u)), c - n), + h = F(A - R) < Q; + return ( + !h && e < t && ((u = t), (t = e), (e = u)), + ( + h || A < Q + ? h + ? (0 < t + e) ^ (s[1] < (F(s[0] - n) < Q ? t : e)) + : t <= s[1] && s[1] <= e + : (R < A) ^ (n <= s[0] && s[0] <= c) + ) + ? (Vn((u = qn(o, (-i + l) / a)), r), [s, Jn(u)]) + : void 0 + ); + } + } + function g(t, e) { + var n = A ? i : R - i, + r = 0; + return ( + t < -n ? (r |= 1) : n < t && (r |= 2), e < -n ? (r |= 4) : n < e && (r |= 8), r + ); + } + } + function Er(l, u, c, A) { + return function (t) { + var e = t.a, + n = t.b, + r = e.x, + e = e.y, + i = 0, + o = 1, + a = n.x - r, + n = n.y - e, + s = l - r; + if (a || !(0 < s)) { + if (((s /= a), a < 0)) { + if (s < i) return; + s < o && (o = s); + } else if (0 < a) { + if (o < s) return; + i < s && (i = s); + } + if (((s = c - r), a || !(s < 0))) { + if (((s /= a), a < 0)) { + if (o < s) return; + i < s && (i = s); + } else if (0 < a) { + if (s < i) return; + s < o && (o = s); + } + if (((s = u - e), n || !(0 < s))) { + if (((s /= n), n < 0)) { + if (s < i) return; + s < o && (o = s); + } else if (0 < n) { + if (o < s) return; + i < s && (i = s); + } + if (((s = A - e), n || !(s < 0))) { + if (((s /= n), n < 0)) { + if (o < s) return; + i < s && (i = s); + } else if (0 < n) { + if (s < i) return; + s < o && (o = s); + } + return ( + 0 < i && (t.a = { x: r + i * a, y: e + i * n }), + o < 1 && (t.b = { x: r + o * a, y: e + o * n }), + t + ); + } + } + } + } + }; + } + var Br = 1e9; + function Cr(y, w, E, B) { + return function (i) { + var r, + c, + o, + a, + s, + l, + u, + A, + h, + p, + d, + f = i, + t = vr(), + g = Er(y, w, E, B), + e = { + point: n, + lineStart: function () { + (e.point = b), c && c.push((o = [])); + (p = !0), (h = !1), (u = A = NaN); + }, + lineEnd: function () { + r && (b(a, s), l && h && t.rejoin(), r.push(t.buffer())); + (e.point = n), h && i.lineEnd(); + }, + polygonStart: function () { + (i = t), (r = []), (c = []), (d = !0); + }, + polygonEnd: function () { + (i = f), (r = _.merge(r)); + var t = (function (t) { + for (var e = 0, n = c.length, r = t[1], i = 0; i < n; ++i) + for (var o, a = 1, s = c[i], l = s.length, u = s[0]; a < l; ++a) + (o = s[a]), + u[1] <= r + ? o[1] > r && 0 < Kt(u, o, t) && ++e + : o[1] <= r && Kt(u, o, t) < 0 && --e, + (u = o); + return 0 !== e; + })([y, B]), + e = d && t, + n = r.length; + (e || n) && + (i.polygonStart(), + e && (i.lineStart(), m(null, null, 1, i), i.lineEnd()), + n && pr(r, x, t, m, i), + i.polygonEnd()), + (r = c = o = null); + }, + }; + function m(t, e, n, r) { + var i = 0, + o = 0; + if (null == t || (i = C(t, n)) !== (o = C(e, n)) || (I(t, e) < 0) ^ (0 < n)) + for ( + ; + r.point(0 === i || 3 === i ? y : E, 1 < i ? B : w), + (i = (i + n + 4) % 4) !== o; + + ); + else r.point(e[0], e[1]); + } + function v(t, e) { + return y <= t && t <= E && w <= e && e <= B; + } + function n(t, e) { + v(t, e) && i.point(t, e); + } + function b(t, e) { + var n, + r = v( + (t = Math.max(-Br, Math.min(Br, t))), + (e = Math.max(-Br, Math.min(Br, e))), + ); + c && o.push([t, e]), + p + ? ((a = t), (s = e), (p = !1), (l = r) && (i.lineStart(), i.point(t, e))) + : r && h + ? i.point(t, e) + : g((n = { a: { x: u, y: A }, b: { x: t, y: e } })) + ? (h || (i.lineStart(), i.point(n.a.x, n.a.y)), + i.point(n.b.x, n.b.y), + r || i.lineEnd(), + (d = !1)) + : r && (i.lineStart(), i.point(t, e), (d = !1)), + (u = t), + (A = e), + (h = r); + } + return e; + }; + function C(t, e) { + return F(t[0] - y) < Q + ? 0 < e + ? 0 + : 3 + : F(t[0] - E) < Q + ? 0 < e + ? 2 + : 1 + : F(t[1] - w) < Q + ? 0 < e + ? 1 + : 0 + : 0 < e + ? 3 + : 2; + } + function x(t, e) { + return I(t.x, e.x); + } + function I(t, e) { + var n = C(t, 1), + r = C(e, 1); + return n !== r + ? n - r + : 0 === n + ? e[1] - t[1] + : 1 === n + ? t[0] - e[0] + : 2 === n + ? t[1] - e[1] + : e[0] - t[0]; + } + } + function xr(t) { + var e = 0, + n = R / 3, + r = Wr(t), + t = r(e, n); + return ( + (t.parallels = function (t) { + return arguments.length + ? r((e = (t[0] * R) / 180), (n = (t[1] * R) / 180)) + : [(e / R) * 180, (n / R) * 180]; + }), + t + ); + } + function Ir(t, e) { + var t = Math.sin(t), + n = (t + Math.sin(e)) / 2, + r = 1 + t * (2 * n - t), + i = Math.sqrt(r) / n; + function o(t, e) { + e = Math.sqrt(r - 2 * n * Math.sin(e)) / n; + return [e * Math.sin((t *= n)), i - e * Math.cos(t)]; + } + return ( + (o.invert = function (t, e) { + e = i - e; + return [Math.atan2(t, e) / n, Xt((r - (t * t + e * e) * n * n) / (2 * n))]; + }), + o + ); + } + (_.geo.clipExtent = function () { + var e, + n, + r, + i, + o, + a, + s = { + stream: function (t) { + return o && (o.valid = !1), ((o = a(t)).valid = !0), o; + }, + extent: function (t) { + return arguments.length + ? ((a = Cr((e = +t[0][0]), (n = +t[0][1]), (r = +t[1][0]), (i = +t[1][1]))), + o && ((o.valid = !1), (o = null)), + s) + : [ + [e, n], + [r, i], + ]; + }, + }; + return s.extent([ + [0, 0], + [960, 500], + ]); + }), + ((_.geo.conicEqualArea = function () { + return xr(Ir); + }).raw = Ir), + (_.geo.albers = function () { + return _.geo + .conicEqualArea() + .rotate([96, 0]) + .center([-0.6, 38.7]) + .parallels([29.5, 45.5]) + .scale(1070); + }), + (_.geo.albersUsa = function () { + var n, + i, + o, + a, + s = _.geo.albers(), + l = _.geo + .conicEqualArea() + .rotate([154, 0]) + .center([-2, 58.5]) + .parallels([55, 65]), + u = _.geo.conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), + c = { + point: function (t, e) { + n = [t, e]; + }, + }; + function A(t) { + var e = t[0], + t = t[1]; + return (n = null), i(e, t), n || (o(e, t), n) || a(e, t), n; + } + return ( + (A.invert = function (t) { + var e = s.scale(), + n = s.translate(), + r = (t[0] - n[0]) / e, + n = (t[1] - n[1]) / e; + return ( + 0.12 <= n && n < 0.234 && -0.425 <= r && r < -0.214 + ? l + : 0.166 <= n && n < 0.234 && -0.214 <= r && r < -0.115 + ? u + : s + ).invert(t); + }), + (A.stream = function (t) { + var n = s.stream(t), + r = l.stream(t), + i = u.stream(t); + return { + point: function (t, e) { + n.point(t, e), r.point(t, e), i.point(t, e); + }, + sphere: function () { + n.sphere(), r.sphere(), i.sphere(); + }, + lineStart: function () { + n.lineStart(), r.lineStart(), i.lineStart(); + }, + lineEnd: function () { + n.lineEnd(), r.lineEnd(), i.lineEnd(); + }, + polygonStart: function () { + n.polygonStart(), r.polygonStart(), i.polygonStart(); + }, + polygonEnd: function () { + n.polygonEnd(), r.polygonEnd(), i.polygonEnd(); + }, + }; + }), + (A.precision = function (t) { + return arguments.length + ? (s.precision(t), l.precision(t), u.precision(t), A) + : s.precision(); + }), + (A.scale = function (t) { + return arguments.length + ? (s.scale(t), l.scale(0.35 * t), u.scale(t), A.translate(s.translate())) + : s.scale(); + }), + (A.translate = function (t) { + if (!arguments.length) return s.translate(); + var e = s.scale(), + n = +t[0], + r = +t[1]; + return ( + (i = s + .translate(t) + .clipExtent([ + [n - 0.455 * e, r - 0.238 * e], + [n + 0.455 * e, r + 0.238 * e], + ]) + .stream(c).point), + (o = l + .translate([n - 0.307 * e, r + 0.201 * e]) + .clipExtent([ + [n - 0.425 * e + Q, r + 0.12 * e + Q], + [n - 0.214 * e - Q, r + 0.234 * e - Q], + ]) + .stream(c).point), + (a = u + .translate([n - 0.205 * e, r + 0.212 * e]) + .clipExtent([ + [n - 0.214 * e + Q, r + 0.166 * e + Q], + [n - 0.115 * e - Q, r + 0.234 * e - Q], + ]) + .stream(c).point), + A + ); + }), + A.scale(1070) + ); + }); + var Mr, + Dr, + Sr, + kr, + Fr, + Qr, + _r = { + point: l, + lineStart: l, + lineEnd: l, + polygonStart: function () { + (Dr = 0), (_r.lineStart = Tr); + }, + polygonEnd: function () { + (_r.lineStart = _r.lineEnd = _r.point = l), (Mr += F(Dr / 2)); + }, + }; + function Tr() { + var n, r, i, o; + function a(t, e) { + (Dr += o * t - i * e), (i = t), (o = e); + } + (_r.point = function (t, e) { + (_r.point = a), (n = i = t), (r = o = e); + }), + (_r.lineEnd = function () { + a(n, r); + }); + } + var Rr = { + point: function (t, e) { + t < Sr && (Sr = t); + Fr < t && (Fr = t); + e < kr && (kr = e); + Qr < e && (Qr = e); + }, + lineStart: l, + lineEnd: l, + polygonStart: l, + polygonEnd: l, + }; + function Ur() { + var n = Nr(4.5), + r = [], + i = { + point: t, + lineStart: function () { + i.point = e; + }, + lineEnd: a, + polygonStart: function () { + i.lineEnd = s; + }, + polygonEnd: function () { + (i.lineEnd = a), (i.point = t); + }, + pointRadius: function (t) { + return (n = Nr(t)), i; + }, + result: function () { + var t; + if (r.length) return (t = r.join('')), (r = []), t; + }, + }; + function t(t, e) { + r.push('M', t, ',', e, n); + } + function e(t, e) { + r.push('M', t, ',', e), (i.point = o); + } + function o(t, e) { + r.push('L', t, ',', e); + } + function a() { + i.point = t; + } + function s() { + r.push('Z'); + } + return i; + } + function Nr(t) { + return ( + 'm0,' + + t + + 'a' + + t + + ',' + + t + + ' 0 1,1 0,' + + -2 * t + + 'a' + + t + + ',' + + t + + ' 0 1,1 0,' + + 2 * t + + 'z' + ); + } + var Pr, + b = { + point: Lr, + lineStart: Yr, + lineEnd: Or, + polygonStart: function () { + b.lineStart = Gr; + }, + polygonEnd: function () { + (b.point = Lr), (b.lineStart = Yr), (b.lineEnd = Or); + }, + }; + function Lr(t, e) { + (_n += t), (Tn += e), ++Rn; + } + function Yr() { + var i, o; + function n(t, e) { + var n = t - i, + r = e - o, + n = Math.sqrt(n * n + r * r); + (Un += (n * (i + t)) / 2), + (Nn += (n * (o + e)) / 2), + (f += n), + Lr((i = t), (o = e)); + } + b.point = function (t, e) { + (b.point = n), Lr((i = t), (o = e)); + }; + } + function Or() { + b.point = Lr; + } + function Gr() { + var n, r, i, o; + function a(t, e) { + var n = t - i, + r = e - o, + n = Math.sqrt(n * n + r * r); + (Un += (n * (i + t)) / 2), + (Nn += (n * (o + e)) / 2), + (f += n), + (Pn += (n = o * t - i * e) * (i + t)), + (Ln += n * (o + e)), + (Yn += 3 * n), + Lr((i = t), (o = e)); + } + (b.point = function (t, e) { + (b.point = a), Lr((n = i = t), (r = o = e)); + }), + (b.lineEnd = function () { + a(n, r); + }); + } + function zr(n) { + var r = 4.5, + i = { + point: t, + lineStart: function () { + i.point = e; + }, + lineEnd: a, + polygonStart: function () { + i.lineEnd = s; + }, + polygonEnd: function () { + (i.lineEnd = a), (i.point = t); + }, + pointRadius: function (t) { + return (r = t), i; + }, + result: l, + }; + function t(t, e) { + n.moveTo(t + r, e), n.arc(t, e, r, 0, x); + } + function e(t, e) { + n.moveTo(t, e), (i.point = o); + } + function o(t, e) { + n.lineTo(t, e); + } + function a() { + i.point = t; + } + function s() { + n.closePath(); + } + return i; + } + function Hr(M) { + var D = 0.5, + S = Math.cos(30 * C), + w = 16; + function e(t) { + return (w ? r : n)(t); + } + function n(n) { + return Vr(n, function (t, e) { + (t = M(t, e)), n.point(t[0], t[1]); + }); + } + function r(r) { + var n, + i, + o, + a, + s, + l, + u, + c, + A, + h, + p, + d, + f = { + point: t, + lineStart: e, + lineEnd: m, + polygonStart: function () { + r.polygonStart(), (f.lineStart = v); + }, + polygonEnd: function () { + r.polygonEnd(), (f.lineStart = e); + }, + }; + function t(t, e) { + (t = M(t, e)), r.point(t[0], t[1]); + } + function e() { + (c = NaN), (f.point = g), r.lineStart(); + } + function g(t, e) { + var n = zn([t, e]), + e = M(t, e); + k( + c, + A, + u, + h, + p, + d, + (c = e[0]), + (A = e[1]), + (u = t), + (h = n[0]), + (p = n[1]), + (d = n[2]), + w, + r, + ), + r.point(c, A); + } + function m() { + (f.point = t), r.lineEnd(); + } + function v() { + e(), (f.point = b), (f.lineEnd = y); + } + function b(t, e) { + g((n = t), e), (i = c), (o = A), (a = h), (s = p), (l = d), (f.point = g); + } + function y() { + k(c, A, u, h, p, d, i, o, n, a, s, l, w, r), (f.lineEnd = m), m(); + } + return f; + } + function k(t, e, n, r, i, o, a, s, l, u, c, A, h, p) { + var d, + f, + g, + m, + v, + b, + y, + w, + E, + B, + C = a - t, + x = s - e, + I = C * C + x * x; + 4 * D < I && + h-- && + ((d = r + u), + (f = i + c), + (g = o + A), + (m = Math.sqrt(d * d + f * f + g * g)), + (y = Math.asin((g /= m))), + (v = F(F(g) - 1) < Q || F(n - l) < Q ? (n + l) / 2 : Math.atan2(f, d)), + (b = (y = M(v, y))[0]), + (y = y[1]), + (D < ((B = x * (w = b - t) - C * (E = y - e)) * B) / I || + 0.3 < F((C * w + x * E) / I - 0.5) || + r * u + i * c + o * A < S) && + (k(t, e, n, r, i, o, b, y, v, (d /= m), (f /= m), g, h, p), + p.point(b, y), + k(b, y, v, d, f, g, a, s, l, u, c, A, h, p))); + } + return ( + (e.precision = function (t) { + return arguments.length ? ((w = 0 < (D = t * t) && 16), e) : Math.sqrt(D); + }), + e + ); + } + function jr(t) { + this.stream = t; + } + function Vr(t, e) { + return { + point: e, + sphere: function () { + t.sphere(); + }, + lineStart: function () { + t.lineStart(); + }, + lineEnd: function () { + t.lineEnd(); + }, + polygonStart: function () { + t.polygonStart(); + }, + polygonEnd: function () { + t.polygonEnd(); + }, + }; + } + function qr(t) { + return Wr(function () { + return t; + })(); + } + function Wr(t) { + var n, + e, + r, + i, + o, + a, + s = Hr(function (t, e) { + return [(t = n(t, e))[0] * l + i, o - t[1] * l]; + }), + l = 150, + u = 480, + c = 250, + A = 0, + h = 0, + p = 0, + d = 0, + f = 0, + g = yr, + m = k, + v = null, + b = null; + function y(t) { + return [(t = r(t[0] * C, t[1] * C))[0] * l + i, o - t[1] * l]; + } + function w(t) { + return (t = r.invert((t[0] - i) / l, (o - t[1]) / l)) && [t[0] * I, t[1] * I]; + } + function E() { + r = Ar((e = Xr(p, d, f)), n); + var t = n(A, h); + return (i = u - t[0] * l), (o = c + t[1] * l), B(); + } + function B() { + return a && ((a.valid = !1), (a = null)), y; + } + return ( + (y.stream = function (t) { + return a && (a.valid = !1), ((a = Jr(g(e, s(m(t))))).valid = !0), a; + }), + (y.clipAngle = function (t) { + return arguments.length + ? ((g = null == t ? ((v = t), yr) : wr((v = +t) * C)), B()) + : v; + }), + (y.clipExtent = function (t) { + return arguments.length + ? ((m = (b = t) ? Cr(t[0][0], t[0][1], t[1][0], t[1][1]) : k), B()) + : b; + }), + (y.scale = function (t) { + return arguments.length ? ((l = +t), E()) : l; + }), + (y.translate = function (t) { + return arguments.length ? ((u = +t[0]), (c = +t[1]), E()) : [u, c]; + }), + (y.center = function (t) { + return arguments.length + ? ((A = (t[0] % 360) * C), (h = (t[1] % 360) * C), E()) + : [A * I, h * I]; + }), + (y.rotate = function (t) { + return arguments.length + ? ((p = (t[0] % 360) * C), + (d = (t[1] % 360) * C), + (f = 2 < t.length ? (t[2] % 360) * C : 0), + E()) + : [p * I, d * I, f * I]; + }), + _.rebind(y, s, 'precision'), + function () { + return (n = t.apply(this, arguments)), (y.invert = n.invert && w), E(); + } + ); + } + function Jr(n) { + return Vr(n, function (t, e) { + n.point(t * C, e * C); + }); + } + function Kr(t, e) { + return [t, e]; + } + function Zr(t, e) { + return [R < t ? t - x : t < -R ? t + x : t, e]; + } + function Xr(t, e, n) { + return t ? (e || n ? Ar(ti(t), ei(e, n)) : ti(t)) : e || n ? ei(e, n) : Zr; + } + function $r(n) { + return function (t, e) { + return [R < (t += n) ? t - x : t < -R ? t + x : t, e]; + }; + } + function ti(t) { + var e = $r(t); + return (e.invert = $r(-t)), e; + } + function ei(t, e) { + var i = Math.cos(t), + o = Math.sin(t), + a = Math.cos(e), + s = Math.sin(e); + function n(t, e) { + var n = Math.cos(e), + r = Math.cos(t) * n, + t = Math.sin(t) * n, + n = Math.sin(e), + e = n * i + r * o; + return [Math.atan2(t * a - e * s, r * i - n * o), Xt(e * a + t * s)]; + } + return ( + (n.invert = function (t, e) { + var n = Math.cos(e), + r = Math.cos(t) * n, + t = Math.sin(t) * n, + n = Math.sin(e), + e = n * a - t * s; + return [Math.atan2(t * a + n * s, r * i + e * o), Xt(e * i - r * o)]; + }), + n + ); + } + function ni(s, l) { + var u = Math.cos(s), + c = Math.sin(s); + return function (t, e, n, r) { + var i = n * l; + null != t + ? ((t = ri(u, t)), (e = ri(u, e)), (0 < n ? t < e : e < t) && (t += n * x)) + : ((t = s + n * x), (e = s - 0.5 * i)); + for (var o, a = t; 0 < n ? e < a : a < e; a -= i) + r.point((o = Jn([u, -c * Math.cos(a), -c * Math.sin(a)]))[0], o[1]); + }; + } + function ri(t, e) { + (e = zn(e)), (e[0] -= t), Wn(e), (t = Zt(-e[1])); + return ((-e[2] < 0 ? -t : t) + 2 * Math.PI - Q) % (2 * Math.PI); + } + function ii(t, e, n) { + var r = _.range(t, e - Q, n).concat(e); + return function (e) { + return r.map(function (t) { + return [e, t]; + }); + }; + } + function oi(t, e, n) { + var r = _.range(t, e - Q, n).concat(e); + return function (e) { + return r.map(function (t) { + return [t, e]; + }); + }; + } + function ai(t) { + return t.source; + } + function si(t) { + return t.target; + } + (_.geo.path = function () { + var r, + e, + i, + n, + o, + a = 4.5; + function s(t) { + return ( + t && + ('function' == typeof a && n.pointRadius(+a.apply(this, arguments)), + (o && o.valid) || (o = i(n)), + _.geo.stream(t, o)), + n.result() + ); + } + function l() { + return (o = null), s; + } + return ( + (s.area = function (t) { + return (Mr = 0), _.geo.stream(t, i(_r)), Mr; + }), + (s.centroid = function (t) { + return ( + (_n = Tn = Rn = Un = Nn = f = Pn = Ln = Yn = 0), + _.geo.stream(t, i(b)), + Yn + ? [Pn / Yn, Ln / Yn] + : f + ? [Un / f, Nn / f] + : Rn + ? [_n / Rn, Tn / Rn] + : [NaN, NaN] + ); + }), + (s.bounds = function (t) { + return ( + (Fr = Qr = -(Sr = kr = 1 / 0)), + _.geo.stream(t, i(Rr)), + [ + [Sr, kr], + [Fr, Qr], + ] + ); + }), + (s.projection = function (t) { + return arguments.length + ? ((i = (r = t) + ? t.stream || + ((n = t), + (e = Hr(function (t, e) { + return n([t * I, e * I]); + })), + function (t) { + return Jr(e(t)); + }) + : k), + l()) + : r; + var n, e; + }), + (s.context = function (t) { + return arguments.length + ? ((n = null == (e = t) ? new Ur() : new zr(t)), + 'function' != typeof a && n.pointRadius(a), + l()) + : e; + }), + (s.pointRadius = function (t) { + return arguments.length + ? ((a = 'function' == typeof t ? t : (n.pointRadius(+t), +t)), s) + : a; + }), + s.projection(_.geo.albersUsa()).context(null) + ); + }), + (_.geo.transform = function (r) { + return { + stream: function (t) { + var e, + n = new jr(t); + for (e in r) n[e] = r[e]; + return n; + }, + }; + }), + (jr.prototype = { + point: function (t, e) { + this.stream.point(t, e); + }, + sphere: function () { + this.stream.sphere(); + }, + lineStart: function () { + this.stream.lineStart(); + }, + lineEnd: function () { + this.stream.lineEnd(); + }, + polygonStart: function () { + this.stream.polygonStart(); + }, + polygonEnd: function () { + this.stream.polygonEnd(); + }, + }), + (_.geo.projection = qr), + (_.geo.projectionMutator = Wr), + ((_.geo.equirectangular = function () { + return qr(Kr); + }).raw = Kr.invert = + Kr), + (_.geo.rotation = function (e) { + function t(t) { + return ((t = e(t[0] * C, t[1] * C))[0] *= I), (t[1] *= I), t; + } + return ( + (e = Xr((e[0] % 360) * C, e[1] * C, 2 < e.length ? e[2] * C : 0)), + (t.invert = function (t) { + return ((t = e.invert(t[0] * C, t[1] * C))[0] *= I), (t[1] *= I), t; + }), + t + ); + }), + (Zr.invert = Kr), + (_.geo.circle = function () { + var e, + i, + o = [0, 0], + n = 6; + function r() { + var t = 'function' == typeof o ? o.apply(this, arguments) : o, + n = Xr(-t[0] * C, -t[1] * C, 0).invert, + r = []; + return ( + i(null, null, 1, { + point: function (t, e) { + r.push((t = n(t, e))), (t[0] *= I), (t[1] *= I); + }, + }), + { type: 'Polygon', coordinates: [r] } + ); + } + return ( + (r.origin = function (t) { + return arguments.length ? ((o = t), r) : o; + }), + (r.angle = function (t) { + return arguments.length ? ((i = ni((e = +t) * C, n * C)), r) : e; + }), + (r.precision = function (t) { + return arguments.length ? ((i = ni(e * C, (n = +t) * C)), r) : n; + }), + r.angle(90) + ); + }), + (_.geo.distance = function (t, e) { + var n = (e[0] - t[0]) * C, + t = t[1] * C, + e = e[1] * C, + r = Math.sin(n), + n = Math.cos(n), + i = Math.sin(t), + t = Math.cos(t), + o = Math.sin(e), + e = Math.cos(e); + return Math.atan2( + Math.sqrt((r = e * r) * r + (r = t * o - i * e * n) * r), + i * o + t * e * n, + ); + }), + (_.geo.graticule = function () { + var e, + n, + r, + i, + o, + a, + s, + l, + u, + c, + A, + h, + p = 10, + d = p, + f = 90, + g = 360, + m = 2.5; + function v() { + return { type: 'MultiLineString', coordinates: t() }; + } + function t() { + return _.range(Math.ceil(i / f) * f, r, f) + .map(A) + .concat(_.range(Math.ceil(l / g) * g, s, g).map(h)) + .concat( + _.range(Math.ceil(n / p) * p, e, p) + .filter(function (t) { + return F(t % f) > Q; + }) + .map(u), + ) + .concat( + _.range(Math.ceil(a / d) * d, o, d) + .filter(function (t) { + return F(t % g) > Q; + }) + .map(c), + ); + } + return ( + (v.lines = function () { + return t().map(function (t) { + return { type: 'LineString', coordinates: t }; + }); + }), + (v.outline = function () { + return { + type: 'Polygon', + coordinates: [ + A(i).concat( + h(s).slice(1), + A(r).reverse().slice(1), + h(l).reverse().slice(1), + ), + ], + }; + }), + (v.extent = function (t) { + return arguments.length ? v.majorExtent(t).minorExtent(t) : v.minorExtent(); + }), + (v.majorExtent = function (t) { + return arguments.length + ? ((i = +t[0][0]), + (r = +t[1][0]), + (l = +t[0][1]), + (s = +t[1][1]), + r < i && ((t = i), (i = r), (r = t)), + s < l && ((t = l), (l = s), (s = t)), + v.precision(m)) + : [ + [i, l], + [r, s], + ]; + }), + (v.minorExtent = function (t) { + return arguments.length + ? ((n = +t[0][0]), + (e = +t[1][0]), + (a = +t[0][1]), + (o = +t[1][1]), + e < n && ((t = n), (n = e), (e = t)), + o < a && ((t = a), (a = o), (o = t)), + v.precision(m)) + : [ + [n, a], + [e, o], + ]; + }), + (v.step = function (t) { + return arguments.length ? v.majorStep(t).minorStep(t) : v.minorStep(); + }), + (v.majorStep = function (t) { + return arguments.length ? ((f = +t[0]), (g = +t[1]), v) : [f, g]; + }), + (v.minorStep = function (t) { + return arguments.length ? ((p = +t[0]), (d = +t[1]), v) : [p, d]; + }), + (v.precision = function (t) { + return arguments.length + ? ((m = +t), + (u = ii(a, o, 90)), + (c = oi(n, e, m)), + (A = ii(l, s, 90)), + (h = oi(i, r, m)), + v) + : m; + }), + v + .majorExtent([ + [-180, -90 + Q], + [180, 90 - Q], + ]) + .minorExtent([ + [-180, -80 - Q], + [180, 80 + Q], + ]) + ); + }), + (_.geo.greatArc = function () { + var e, + n, + r = ai, + i = si; + function o() { + return { + type: 'LineString', + coordinates: [e || r.apply(this, arguments), n || i.apply(this, arguments)], + }; + } + return ( + (o.distance = function () { + return _.geo.distance( + e || r.apply(this, arguments), + n || i.apply(this, arguments), + ); + }), + (o.source = function (t) { + return arguments.length + ? ((e = 'function' == typeof (r = t) ? null : t), o) + : r; + }), + (o.target = function (t) { + return arguments.length + ? ((n = 'function' == typeof (i = t) ? null : t), o) + : i; + }), + (o.precision = function () { + return arguments.length ? o : 0; + }), + o + ); + }), + (_.geo.interpolate = function (t, e) { + return ( + (n = t[0] * C), + (r = t[1] * C), + (t = e[0] * C), + (e = e[1] * C), + (i = Math.cos(r)), + (o = Math.sin(r)), + (a = Math.cos(e)), + (s = Math.sin(e)), + (l = i * Math.cos(n)), + (u = i * Math.sin(n)), + (c = a * Math.cos(t)), + (A = a * Math.sin(t)), + (h = 2 * Math.asin(Math.sqrt(te(e - r) + i * a * te(t - n)))), + (p = 1 / Math.sin(h)), + ((e = h + ? function (t) { + var e = Math.sin((t *= h)) * p, + t = Math.sin(h - t) * p, + n = t * l + e * c, + r = t * u + e * A, + t = t * o + e * s; + return [Math.atan2(r, n) * I, Math.atan2(t, Math.sqrt(n * n + r * r)) * I]; + } + : function () { + return [n * I, r * I]; + }).distance = h), + e + ); + var n, r, i, o, a, s, l, u, c, A, h, p; + }), + (_.geo.length = function (t) { + return (Pr = 0), _.geo.stream(t, li), Pr; + }); + var li = { + sphere: l, + point: l, + lineStart: function () { + var o, a, s; + function n(t, e) { + var n = Math.sin((e *= C)), + e = Math.cos(e), + r = F((t *= C) - o), + i = Math.cos(r); + (Pr += Math.atan2( + Math.sqrt((r = e * Math.sin(r)) * r + (r = s * n - a * e * i) * r), + a * n + s * e * i, + )), + (o = t), + (a = n), + (s = e); + } + (li.point = function (t, e) { + (o = t * C), (a = Math.sin((e *= C))), (s = Math.cos(e)), (li.point = n); + }), + (li.lineEnd = function () { + li.point = li.lineEnd = l; + }); + }, + lineEnd: l, + polygonStart: l, + polygonEnd: l, + }; + function ui(i, o) { + function t(t, e) { + var n = Math.cos(t), + r = Math.cos(e), + n = i(n * r); + return [n * r * Math.sin(t), n * Math.sin(e)]; + } + return ( + (t.invert = function (t, e) { + var n = Math.sqrt(t * t + e * e), + r = o(n), + i = Math.sin(r), + r = Math.cos(r); + return [Math.atan2(t * i, n * r), Math.asin(n && (e * i) / n)]; + }), + t + ); + } + var ci = ui( + function (t) { + return Math.sqrt(2 / (1 + t)); + }, + function (t) { + return 2 * Math.asin(t / 2); + }, + ), + Ai = + (((_.geo.azimuthalEqualArea = function () { + return qr(ci); + }).raw = ci), + ui(function (t) { + t = Math.acos(t); + return t && t / Math.sin(t); + }, k)); + function hi(t, e) { + function n(t) { + return Math.tan(R / 4 + t / 2); + } + var r = Math.cos(t), + i = t === e ? Math.sin(t) : Math.log(r / Math.cos(e)) / Math.log(n(e) / n(t)), + o = (r * Math.pow(n(t), i)) / i; + return i + ? ((a.invert = function (t, e) { + var e = o - e, + n = Jt(i) * Math.sqrt(t * t + e * e); + return [Math.atan2(t, e) / i, 2 * Math.atan(Math.pow(o / n, 1 / i)) - U]; + }), + a) + : fi; + function a(t, e) { + 0 < o ? e < -U + Q && (e = -U + Q) : U - Q < e && (e = U - Q); + e = o / Math.pow(n(e), i); + return [e * Math.sin(i * t), o - e * Math.cos(i * t)]; + } + } + function pi(t, e) { + var n = Math.cos(t), + r = t === e ? Math.sin(t) : (n - Math.cos(e)) / (e - t), + i = n / r + t; + return F(r) < Q + ? Kr + : ((o.invert = function (t, e) { + e = i - e; + return [Math.atan2(t, e) / r, i - Jt(r) * Math.sqrt(t * t + e * e)]; + }), + o); + function o(t, e) { + e = i - e; + return [e * Math.sin(r * t), i - e * Math.cos(r * t)]; + } + } + ((_.geo.azimuthalEquidistant = function () { + return qr(Ai); + }).raw = Ai), + ((_.geo.conicConformal = function () { + return xr(hi); + }).raw = hi), + ((_.geo.conicEquidistant = function () { + return xr(pi); + }).raw = pi); + var di = ui(function (t) { + return 1 / t; + }, Math.atan); + function fi(t, e) { + return [t, Math.log(Math.tan(R / 4 + e / 2))]; + } + function gi(t) { + var i, + o = qr(t), + a = o.scale, + s = o.translate, + l = o.clipExtent; + return ( + (o.scale = function () { + var t = a.apply(o, arguments); + return t === o ? (i ? o.clipExtent(null) : o) : t; + }), + (o.translate = function () { + var t = s.apply(o, arguments); + return t === o ? (i ? o.clipExtent(null) : o) : t; + }), + (o.clipExtent = function (t) { + var e, + n, + r = l.apply(o, arguments); + return ( + r === o + ? (i = null == t) && + ((e = R * a()), + (n = s()), + l([ + [n[0] - e, n[1] - e], + [n[0] + e, n[1] + e], + ])) + : i && (r = null), + r + ); + }), + o.clipExtent(null) + ); + } + ((_.geo.gnomonic = function () { + return qr(di); + }).raw = di), + (fi.invert = function (t, e) { + return [t, 2 * Math.atan(Math.exp(e)) - U]; + }), + ((_.geo.mercator = function () { + return gi(fi); + }).raw = fi); + var mi = ui(function () { + return 1; + }, Math.asin), + vi = + (((_.geo.orthographic = function () { + return qr(mi); + }).raw = mi), + ui( + function (t) { + return 1 / (1 + t); + }, + function (t) { + return 2 * Math.atan(t); + }, + )); + function bi(t, e) { + return [Math.log(Math.tan(R / 4 + e / 2)), -t]; + } + function yi(t) { + return t[0]; + } + function wi(t) { + return t[1]; + } + function Ei(t) { + for (var e = t.length, n = [0, 1], r = 2, i = 2; i < e; i++) { + for (; 1 < r && Kt(t[n[r - 2]], t[n[r - 1]], t[i]) <= 0; ) --r; + n[r++] = i; + } + return n.slice(0, r); + } + function Bi(t, e) { + return t[0] - e[0] || t[1] - e[1]; + } + ((_.geo.stereographic = function () { + return qr(vi); + }).raw = vi), + (bi.invert = function (t, e) { + return [-e, 2 * Math.atan(Math.exp(t)) - U]; + }), + ((_.geo.transverseMercator = function () { + var t = gi(bi), + e = t.center, + n = t.rotate; + return ( + (t.center = function (t) { + return t ? e([-t[1], t[0]]) : [(t = e())[1], -t[0]]; + }), + (t.rotate = function (t) { + return t + ? n([t[0], t[1], 2 < t.length ? t[2] + 90 : 90]) + : [(t = n())[0], t[1], t[2] - 90]; + }), + n([0, 0, 90]) + ); + }).raw = bi), + (_.geom = {}), + (_.geom.hull = function (t) { + var h = yi, + p = wi; + return arguments.length + ? e(t) + : ((e.x = function (t) { + return arguments.length ? ((h = t), e) : h; + }), + (e.y = function (t) { + return arguments.length ? ((p = t), e) : p; + }), + e); + function e(t) { + if (t.length < 3) return []; + for (var e = N(h), n = N(p), r = t.length, i = [], o = [], a = 0; a < r; a++) + i.push([+e.call(this, t[a], a), +n.call(this, t[a], a), a]); + for (i.sort(Bi), a = 0; a < r; a++) o.push([i[a][0], -i[a][1]]); + var s = Ei(i), + l = Ei(o), + u = l[0] === s[0], + c = l[l.length - 1] === s[s.length - 1], + A = []; + for (a = s.length - 1; 0 <= a; --a) A.push(t[i[s[a]][2]]); + for (a = +u; a < l.length - c; ++a) A.push(t[i[l[a]][2]]); + return A; + } + }), + (_.geom.polygon = function (t) { + return pt(t, Ci), t; + }); + var Ci = (_.geom.polygon.prototype = []); + function xi(t, e, n) { + return (n[0] - e[0]) * (t[1] - e[1]) < (n[1] - e[1]) * (t[0] - e[0]); + } + function Ii(t, e, n, r) { + var i = t[0], + o = n[0], + a = e[0] - i, + s = r[0] - o, + t = t[1], + n = n[1], + e = e[1] - t, + r = r[1] - n, + n = (s * (t - n) - r * (i - o)) / (r * a - s * e); + return [i + n * a, t + n * e]; + } + function Mi(t) { + var e = t[0], + t = t[t.length - 1]; + return !(e[0] - t[0] || e[1] - t[1]); + } + (Ci.area = function () { + for (var t, e = -1, n = this.length, r = this[n - 1], i = 0; ++e < n; ) + (t = r), (r = this[e]), (i += t[1] * r[0] - t[0] * r[1]); + return 0.5 * i; + }), + (Ci.centroid = function (t) { + var e, + n, + r = -1, + i = this.length, + o = 0, + a = 0, + s = this[i - 1]; + for (arguments.length || (t = -1 / (6 * this.area())); ++r < i; ) + (e = s), + (s = this[r]), + (n = e[0] * s[1] - s[0] * e[1]), + (o += (e[0] + s[0]) * n), + (a += (e[1] + s[1]) * n); + return [o * t, a * t]; + }), + (Ci.clip = function (t) { + for ( + var e, + n, + r, + i, + o, + a, + s = Mi(t), + l = -1, + u = this.length - Mi(this), + c = this[u - 1]; + ++l < u; + + ) { + for ( + e = t.slice(), t.length = 0, i = this[l], o = e[(r = e.length - s) - 1], n = -1; + ++n < r; + + ) + xi((a = e[n]), c, i) + ? (xi(o, c, i) || t.push(Ii(o, a, c, i)), t.push(a)) + : xi(o, c, i) && t.push(Ii(o, a, c, i)), + (o = a); + s && t.push(t[0]), (c = i); + } + return t; + }); + var Di, + Si, + ki, + Fi, + Qi, + _i = [], + Ti = []; + function Ri() { + Xi(this), (this.edge = this.site = this.circle = null); + } + function Ui(t) { + var e = _i.pop() || new Ri(); + return (e.site = t), e; + } + function Ni(t) { + ji(t), ki.remove(t), _i.push(t), Xi(t); + } + function Pi(t) { + for (var e, n, r, i, o = t.x, a = t.y, s = ki._; s; ) + if (((r = Li(s, a) - o), Q < r)) s = s.L; + else { + if ( + ((i = + o - + (function (t, e) { + var n = t.N; + if (n) return Li(n, e); + n = t.site; + return n.y === e ? n.x : 1 / 0; + })(s, a)), + !(Q < i)) + ) { + -Q < r ? ((e = s.P), (n = s)) : -Q < i ? (n = (e = s).N) : (e = n = s); + break; + } + if (!s.R) { + e = s; + break; + } + s = s.R; + } + var l, + u, + c, + A, + h, + p, + d, + f, + g, + m, + v = Ui(t); + if ((ki.insert(e, v), e || n)) { + if (e === n) + return ( + ji(e), + (n = Ui(e.site)), + ki.insert(v, n), + (v.edge = n.edge = Wi(e.site, v.site)), + Hi(e), + void Hi(n) + ); + n + ? (ji(e), + ji(n), + (u = (l = e.site).x), + (c = l.y), + (A = t.x - u), + (m = t.y - c), + (p = (h = n.site).x - u), + (d = h.y - c), + Ji( + n.edge, + l, + h, + (m = { + x: + (d * (f = A * A + m * m) - m * (g = p * p + d * d)) / + (d = 2 * (A * d - m * p)) + + u, + y: (A * g - p * f) / d + c, + }), + ), + (v.edge = Wi(l, t, null, m)), + (n.edge = Wi(t, h, null, m)), + Hi(e), + Hi(n)) + : (v.edge = Wi(e.site, v.site)); + } + } + function Li(t, e) { + var n = t.site, + r = n.x, + i = n.y, + o = i - e; + if (!o) return r; + t = t.P; + if (!t) return -1 / 0; + (t = (n = t.site).x), (n = n.y), (e = n - e); + if (!e) return t; + var a = t - r, + s = 1 / o - 1 / e, + l = a / e; + return s + ? (-l + Math.sqrt(l * l - 2 * s * ((a * a) / (-2 * e) - n + e / 2 + i - o / 2))) / + s + + r + : (r + t) / 2; + } + function Yi(t) { + (this.site = t), (this.edges = []); + } + function Oi(t) { + for ( + var e, + n, + r, + i, + o, + a, + s, + l, + u, + c = t[0][0], + A = t[1][0], + h = t[0][1], + p = t[1][1], + d = Si, + f = d.length; + f--; + + ) + if ((i = d[f]) && i.prepare()) + for (s = (a = i.edges).length, o = 0; o < s; ) + (n = (u = a[o].end()).x), + (r = u.y), + (e = (l = a[++o % s].start()).x), + (l = l.y), + (F(n - e) > Q || F(r - l) > Q) && + (a.splice( + o, + 0, + new Ki( + (function (t, e, n) { + t = new qi(t, null); + return (t.a = e), (t.b = n), Di.push(t), t; + })( + i.site, + u, + F(n - c) < Q && Q < p - r + ? { x: c, y: F(e - c) < Q ? l : p } + : F(r - p) < Q && Q < A - n + ? { x: F(l - p) < Q ? e : A, y: p } + : F(n - A) < Q && Q < r - h + ? { x: A, y: F(e - A) < Q ? l : h } + : F(r - h) < Q && Q < n - c + ? { x: F(l - h) < Q ? e : c, y: h } + : null, + ), + i.site, + null, + ), + ), + ++s); + } + function Gi(t, e) { + return e.angle - t.angle; + } + function zi() { + Xi(this), (this.x = this.y = this.arc = this.site = this.cy = null); + } + function Hi(t) { + var e = t.P, + n = t.N; + if (e && n) { + var e = e.site, + r = t.site, + n = n.site; + if (e !== n) { + var i = r.x, + o = r.y, + a = e.x - i, + e = e.y - o, + s = n.x - i, + l = 2 * (a * (n = n.y - o) - e * s); + if (!(-qt <= l)) { + for ( + var u = a * a + e * e, + c = s * s + n * n, + e = (n * u - e * c) / l, + a = (a * c - s * u) / l, + n = a + o, + A = Ti.pop() || new zi(), + h = + ((A.arc = t), + (A.site = r), + (A.x = e + i), + (A.y = n + Math.sqrt(e * e + a * a)), + (A.cy = n), + (t.circle = A), + null), + p = Qi._; + p; + + ) + if (A.y < p.y || (A.y === p.y && A.x <= p.x)) { + if (!p.L) { + h = p.P; + break; + } + p = p.L; + } else { + if (!p.R) { + h = p; + break; + } + p = p.R; + } + Qi.insert(h, A), h || (Fi = A); + } + } + } + } + function ji(t) { + var e = t.circle; + e && (e.P || (Fi = e.N), Qi.remove(e), Ti.push(e), Xi(e), (t.circle = null)); + } + function Vi(t) { + for (var e, n = Di, r = Er(t[0][0], t[0][1], t[1][0], t[1][1]), i = n.length; i--; ) + (!(function (t, e) { + var n = t.b; + if (!n) { + var r = t.a, + i = e[0][0], + o = e[1][0], + a = e[0][1], + e = e[1][1], + s = t.l, + l = t.r, + u = s.x, + s = s.y, + c = l.x, + l = l.y, + A = (u + c) / 2, + h = (s + l) / 2; + if (l === s) { + if (A < i || o <= A) return; + if (c < u) { + if (r) { + if (r.y >= e) return; + } else r = { x: A, y: a }; + n = { x: A, y: e }; + } else { + if (r) { + if (r.y < a) return; + } else r = { x: A, y: e }; + n = { x: A, y: a }; + } + } else if (((A = h - (h = (u - c) / (l - s)) * A), h < -1 || 1 < h)) + if (c < u) { + if (r) { + if (r.y >= e) return; + } else r = { x: (a - A) / h, y: a }; + n = { x: (e - A) / h, y: e }; + } else { + if (r) { + if (r.y < a) return; + } else r = { x: (e - A) / h, y: e }; + n = { x: (a - A) / h, y: a }; + } + else if (s < l) { + if (r) { + if (r.x >= o) return; + } else r = { x: i, y: h * i + A }; + n = { x: o, y: h * o + A }; + } else { + if (r) { + if (r.x < i) return; + } else r = { x: o, y: h * o + A }; + n = { x: i, y: h * i + A }; + } + (t.a = r), (t.b = n); + } + return 1; + })((e = n[i]), t) || + !r(e) || + (F(e.a.x - e.b.x) < Q && F(e.a.y - e.b.y) < Q)) && + ((e.a = e.b = null), n.splice(i, 1)); + } + function qi(t, e) { + (this.l = t), (this.r = e), (this.a = this.b = null); + } + function Wi(t, e, n, r) { + var i = new qi(t, e); + return ( + Di.push(i), + n && Ji(i, t, e, n), + r && Ji(i, e, t, r), + Si[t.i].edges.push(new Ki(i, t, e)), + Si[e.i].edges.push(new Ki(i, e, t)), + i + ); + } + function Ji(t, e, n, r) { + t.a || t.b ? (t.l === n ? (t.b = r) : (t.a = r)) : ((t.a = r), (t.l = e), (t.r = n)); + } + function Ki(t, e, n) { + var r = t.a, + i = t.b; + (this.edge = t), + (this.site = e), + (this.angle = n + ? Math.atan2(n.y - e.y, n.x - e.x) + : t.l === e + ? Math.atan2(i.x - r.x, r.y - i.y) + : Math.atan2(r.x - i.x, i.y - r.y)); + } + function Zi() { + this._ = null; + } + function Xi(t) { + t.U = t.C = t.L = t.R = t.P = t.N = null; + } + function $i(t, e) { + var n = e, + e = e.R, + r = n.U; + r ? (r.L === n ? (r.L = e) : (r.R = e)) : (t._ = e), + (e.U = r), + (n.U = e), + (n.R = e.L), + n.R && (n.R.U = n), + (e.L = n); + } + function to(t, e) { + var n = e, + e = e.L, + r = n.U; + r ? (r.L === n ? (r.L = e) : (r.R = e)) : (t._ = e), + (e.U = r), + (n.U = e), + (n.L = e.R), + n.L && (n.L.U = n), + (e.R = n); + } + function eo(t) { + for (; t.L; ) t = t.L; + return t; + } + function no(t, e) { + var n, + r, + i, + o = t.sort(ro).pop(); + for (Di = [], Si = new Array(t.length), ki = new Zi(), Qi = new Zi(); ; ) + if (((i = Fi), o && (!i || o.y < i.y || (o.y === i.y && o.x < i.x)))) + (o.x === n && o.y === r) || ((Si[o.i] = new Yi(o)), Pi(o), (n = o.x), (r = o.y)), + (o = t.pop()); + else { + if (!i) break; + m = g = f = d = p = h = A = c = u = l = s = a = void 0; + for ( + var a = i.arc, + s = a.circle, + l = s.x, + u = s.cy, + c = { x: l, y: u }, + A = a.P, + h = a.N, + p = [a], + d = (Ni(a), A); + d.circle && F(l - d.circle.x) < Q && F(u - d.circle.cy) < Q; + + ) + (A = d.P), p.unshift(d), Ni(d), (d = A); + p.unshift(d), ji(d); + for (var f = h; f.circle && F(l - f.circle.x) < Q && F(u - f.circle.cy) < Q; ) + (h = f.N), p.push(f), Ni(f), (f = h); + p.push(f), ji(f); + for (var g = p.length, m = 1; m < g; ++m) + (f = p[m]), (d = p[m - 1]), Ji(f.edge, d.site, f.site, c); + (d = p[0]), ((f = p[g - 1]).edge = Wi(d.site, f.site, null, c)), Hi(d), Hi(f); + } + e && (Vi(e), Oi(e)); + e = { cells: Si, edges: Di }; + return (ki = Qi = Di = Si = null), e; + } + function ro(t, e) { + return e.y - t.y || e.x - t.x; + } + (Yi.prototype.prepare = function () { + for (var t, e = this.edges, n = e.length; n--; ) + ((t = e[n].edge).b && t.a) || e.splice(n, 1); + return e.sort(Gi), e.length; + }), + (Ki.prototype = { + start: function () { + return this.edge.l === this.site ? this.edge.a : this.edge.b; + }, + end: function () { + return this.edge.l === this.site ? this.edge.b : this.edge.a; + }, + }), + (Zi.prototype = { + insert: function (t, e) { + var n, r, i; + if (t) { + if (((e.P = t), (e.N = t.N), t.N && (t.N.P = e), (t.N = e), t.R)) { + for (t = t.R; t.L; ) t = t.L; + t.L = e; + } else t.R = e; + n = t; + } else + n = this._ + ? ((t = eo(this._)), (e.P = null), ((e.N = t).P = t.L = e), t) + : ((e.P = e.N = null), (this._ = e), null); + for (e.L = e.R = null, e.U = n, e.C = !0, t = e; n && n.C; ) + n === (r = n.U).L + ? (i = r.R) && i.C + ? ((n.C = i.C = !1), (r.C = !0), (t = r)) + : (t === n.R && ($i(this, n), (n = (t = n).U)), + (n.C = !1), + (r.C = !0), + to(this, r)) + : (i = r.L) && i.C + ? ((n.C = i.C = !1), (r.C = !0), (t = r)) + : (t === n.L && (to(this, n), (n = (t = n).U)), + (n.C = !1), + (r.C = !0), + $i(this, r)), + (n = t.U); + this._.C = !1; + }, + remove: function (t) { + t.N && (t.N.P = t.P), t.P && (t.P.N = t.N), (t.N = t.P = null); + var e, + n, + r = t.U, + i = t.L, + o = t.R, + a = i ? (o ? eo(o) : i) : o; + if ( + (r ? (r.L === t ? (r.L = a) : (r.R = a)) : (this._ = a), + i && o + ? ((n = a.C), + (a.C = t.C), + ((a.L = i).U = a) !== o + ? ((r = a.U), (a.U = t.U), (t = a.R), (r.L = t), ((a.R = o).U = a)) + : ((a.U = r), (t = (r = a).R))) + : ((n = t.C), (t = a)), + t && (t.U = r), + !n) + ) + if (t && t.C) t.C = !1; + else { + do { + if (t === this._) break; + if (t === r.L) { + if ( + ((e = r.R).C && ((e.C = !1), (r.C = !0), $i(this, r), (e = r.R)), + (e.L && e.L.C) || (e.R && e.R.C)) + ) { + (e.R && e.R.C) || ((e.L.C = !1), (e.C = !0), to(this, e), (e = r.R)), + (e.C = r.C), + (r.C = e.R.C = !1), + $i(this, r), + (t = this._); + break; + } + } else if ( + ((e = r.L).C && ((e.C = !1), (r.C = !0), to(this, r), (e = r.L)), + (e.L && e.L.C) || (e.R && e.R.C)) + ) { + (e.L && e.L.C) || ((e.R.C = !1), (e.C = !0), $i(this, e), (e = r.L)), + (e.C = r.C), + (r.C = e.L.C = !1), + to(this, r), + (t = this._); + break; + } + } while (((e.C = !0), (r = (t = r).U), !t.C)); + t && (t.C = !1); + } + }, + }), + (_.geom.voronoi = function (t) { + var e = yi, + n = wi, + r = e, + i = n, + u = io; + return t + ? o(t) + : ((o.links = function (e) { + return no(h(e)) + .edges.filter(function (t) { + return t.l && t.r; + }) + .map(function (t) { + return { source: e[t.l.i], target: e[t.r.i] }; + }); + }), + (o.triangles = function (c) { + var A = []; + return ( + no(h(c)).cells.forEach(function (t, e) { + for ( + var n, + r, + i = t.site, + o = t.edges.sort(Gi), + a = -1, + s = o.length, + l = o[s - 1].edge, + u = l.l === i ? l.r : l.l; + ++a < s; + + ) + (n = u), + (u = (l = o[a].edge).l === i ? l.r : l.l), + e < n.i && + e < u.i && + ((r = u), + (i.x - r.x) * (n.y - i.y) - (i.x - n.x) * (r.y - i.y) < 0) && + A.push([c[e], c[n.i], c[u.i]]); + }), + A + ); + }), + (o.x = function (t) { + return arguments.length ? ((r = N((e = t))), o) : e; + }), + (o.y = function (t) { + return arguments.length ? ((i = N((n = t))), o) : n; + }), + (o.clipExtent = function (t) { + return arguments.length ? ((u = null == t ? io : t), o) : u === io ? null : u; + }), + (o.size = function (t) { + return arguments.length + ? o.clipExtent(t && [[0, 0], t]) + : u === io + ? null + : u && u[1]; + }), + o); + function o(r) { + var i = new Array(r.length), + o = u[0][0], + a = u[0][1], + s = u[1][0], + l = u[1][1]; + return ( + no(h(r), u).cells.forEach(function (t, e) { + var n = t.edges, + t = t.site; + (i[e] = n.length + ? n.map(function (t) { + t = t.start(); + return [t.x, t.y]; + }) + : t.x >= o && t.x <= s && t.y >= a && t.y <= l + ? [ + [o, l], + [s, l], + [s, a], + [o, a], + ] + : []).point = r[e]; + }), + i + ); + } + function h(t) { + return t.map(function (t, e) { + return { x: Math.round(r(t, e) / Q) * Q, y: Math.round(i(t, e) / Q) * Q, i: e }; + }); + } + }); + var io = [ + [-1e6, -1e6], + [1e6, 1e6], + ]; + function oo(t) { + return t.x; + } + function ao(t) { + return t.y; + } + function so() { + return { leaf: !0, nodes: [], point: null, x: null, y: null }; + } + function lo(t, e) { + (t = _.rgb(t)), (e = _.rgb(e)); + var n = t.r, + r = t.g, + i = t.b, + o = e.r - n, + a = e.g - r, + s = e.b - i; + return function (t) { + return ( + '#' + + ye(Math.round(n + o * t)) + + ye(Math.round(r + a * t)) + + ye(Math.round(i + s * t)) + ); + }; + } + function uo(t, e) { + var n, + r = {}, + i = {}; + for (n in t) n in e ? (r[n] = fo(t[n], e[n])) : (i[n] = t[n]); + for (n in e) n in t || (i[n] = e[n]); + return function (t) { + for (n in r) i[n] = r[n](t); + return i; + }; + } + function co(e, n) { + return ( + (e = +e), + (n = +n), + function (t) { + return e * (1 - t) + n * t; + } + ); + } + function Ao(t, r) { + var e, + n, + i, + o = (ho.lastIndex = po.lastIndex = 0), + a = -1, + s = [], + l = []; + for (t += '', r += ''; (e = ho.exec(t)) && (n = po.exec(r)); ) + (i = n.index) > o && ((i = r.slice(o, i)), s[a] ? (s[a] += i) : (s[++a] = i)), + (e = e[0]) === (n = n[0]) + ? s[a] + ? (s[a] += n) + : (s[++a] = n) + : ((s[++a] = null), l.push({ i: a, x: co(e, n) })), + (o = po.lastIndex); + return ( + o < r.length && ((i = r.slice(o)), s[a] ? (s[a] += i) : (s[++a] = i)), + s.length < 2 + ? l[0] + ? ((r = l[0].x), + function (t) { + return r(t) + ''; + }) + : function () { + return r; + } + : ((r = l.length), + function (t) { + for (var e, n = 0; n < r; ++n) s[(e = l[n]).i] = e.x(t); + return s.join(''); + }) + ); + } + (_.geom.delaunay = function (t) { + return _.geom.voronoi().triangles(t); + }), + (_.geom.quadtree = function (t, v, b, y, E) { + var B, + C = yi, + x = wi; + return (B = arguments.length) + ? ((C = oo), (x = ao), 3 === B && ((E = b), (y = v), (b = v = 0)), e(t)) + : ((e.x = function (t) { + return arguments.length ? ((C = t), e) : C; + }), + (e.y = function (t) { + return arguments.length ? ((x = t), e) : x; + }), + (e.extent = function (t) { + return arguments.length + ? (null == t + ? (v = b = y = E = null) + : ((v = +t[0][0]), (b = +t[0][1]), (y = +t[1][0]), (E = +t[1][1])), + e) + : null == v + ? null + : [ + [v, b], + [y, E], + ]; + }), + (e.size = function (t) { + return arguments.length + ? (null == t + ? (v = b = y = E = null) + : ((v = b = 0), (y = +t[0]), (E = +t[1])), + e) + : null == v + ? null + : [y - v, E - b]; + }), + e); + function e(t) { + var e, + n, + r, + i, + o, + a, + s, + l, + u, + c = N(C), + A = N(x); + if (null != v) (a = v), (s = b), (l = y), (u = E); + else if (((l = u = -(a = s = 1 / 0)), (n = []), (r = []), (o = t.length), B)) + for (i = 0; i < o; ++i) + (e = t[i]).x < a && (a = e.x), + e.y < s && (s = e.y), + e.x > l && (l = e.x), + e.y > u && (u = e.y), + n.push(e.x), + r.push(e.y); + else + for (i = 0; i < o; ++i) { + var h = +c((e = t[i]), i), + p = +A(e, i); + h < a && (a = h), + p < s && (s = p), + l < h && (l = h), + u < p && (u = p), + n.push(h), + r.push(p); + } + var d = l - a, + f = u - s; + function g(t, e, n, r, i, o, a, s) { + var l, u, c; + isNaN(n) || + isNaN(r) || + (t.leaf + ? ((l = t.x), + (u = t.y), + null != l + ? (F(l - n) + F(u - r) < 0.01 || + ((c = t.point), + (t.x = t.y = t.point = null), + m(t, c, l, u, i, o, a, s)), + m(t, e, n, r, i, o, a, s)) + : ((t.x = n), (t.y = r), (t.point = e))) + : m(t, e, n, r, i, o, a, s)); + } + function m(t, e, n, r, i, o, a, s) { + var l = 0.5 * (i + a), + u = 0.5 * (o + s), + c = l <= n, + A = u <= r, + h = (A << 1) | c; + (t.leaf = !1), + c ? (i = l) : (a = l), + A ? (o = u) : (s = u), + g((t = t.nodes[h] || (t.nodes[h] = so())), e, n, r, i, o, a, s); + } + f < d ? (u = s + d) : (l = a + f); + var w = so(); + if ( + ((w.add = function (t) { + g(w, t, +c(t, ++i), +A(t, i), a, s, l, u); + }), + (w.visit = function (t) { + !(function t(e, n, r, i, o, a) { + { + var s, l; + e(n, r, i, o, a) || + ((s = 0.5 * (r + o)), + (l = 0.5 * (i + a)), + (n = n.nodes)[0] && t(e, n[0], r, i, s, l), + n[1] && t(e, n[1], s, i, o, l), + n[2] && t(e, n[2], r, l, s, a), + n[3] && t(e, n[3], s, l, o, a)); + } + })(t, w, a, s, l, u); + }), + (w.find = function (t) { + return ( + (p = t[0]), + (d = t[1]), + (y = 1 / 0), + (function t(e, n, r, i, o) { + if (!(m < n || v < r || i < f || o < g)) { + (a = e.point) && + (s = (s = p - e.x) * s + (s = d - e.y) * s) < y && + ((s = Math.sqrt((y = s))), + (f = p - s), + (g = d - s), + (m = p + s), + (v = d + s), + (b = a)); + for ( + var a, + s, + l = e.nodes, + u = 0.5 * (n + i), + c = 0.5 * (r + o), + A = ((c <= d) << 1) | (u <= p), + h = A + 4; + A < h; + ++A + ) + if ((e = l[3 & A])) + switch (3 & A) { + case 0: + t(e, n, r, u, c); + break; + case 1: + t(e, u, r, i, c); + break; + case 2: + t(e, n, c, u, o); + break; + case 3: + t(e, u, c, i, o); + } + } + })(w, (f = a), (g = s), (m = l), (v = u)), + b + ); + var p, d, f, g, m, v, b, y; + }), + (i = -1), + null == v) + ) { + for (; ++i < o; ) g(w, t[i], n[i], r[i], a, s, l, u); + --i; + } else t.forEach(w.add); + return (n = r = t = e = null), w; + } + }), + (_.interpolateRgb = lo), + (_.interpolateObject = uo), + (_.interpolateNumber = co), + (_.interpolateString = Ao); + var ho = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, + po = new RegExp(ho.source, 'g'); + function fo(t, e) { + for ( + var n, r = _.interpolators.length; + 0 <= --r && !(n = _.interpolators[r](t, e)); + + ); + return n; + } + function go(t, e) { + for ( + var n = [], + r = [], + i = t.length, + o = e.length, + a = Math.min(t.length, e.length), + s = 0; + s < a; + ++s + ) + n.push(fo(t[s], e[s])); + for (; s < i; ++s) r[s] = t[s]; + for (; s < o; ++s) r[s] = e[s]; + return function (t) { + for (s = 0; s < a; ++s) r[s] = n[s](t); + return r; + }; + } + (_.interpolate = fo), + (_.interpolators = [ + function (t, e) { + var n = typeof e; + return ( + 'string' == n + ? Ie.has(e.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(e) + ? lo + : Ao + : e instanceof oe + ? lo + : Array.isArray(e) + ? go + : 'object' == n && isNaN(e) + ? uo + : co + )(t, e); + }, + ]), + (_.interpolateArray = go); + function mo() { + return k; + } + var vo = _.map({ + linear: mo, + poly: function (e) { + return function (t) { + return Math.pow(t, e); + }; + }, + quad: function () { + return Eo; + }, + cubic: function () { + return Bo; + }, + sin: function () { + return xo; + }, + exp: function () { + return Io; + }, + circle: function () { + return Mo; + }, + elastic: function (e, n) { + var r; + arguments.length < 2 && (n = 0.45); + r = arguments.length ? (n / x) * Math.asin(1 / e) : ((e = 1), n / 4); + return function (t) { + return 1 + e * Math.pow(2, -10 * t) * Math.sin(((t - r) * x) / n); + }; + }, + back: function (e) { + e = e || 1.70158; + return function (t) { + return t * t * ((e + 1) * t - e); + }; + }, + bounce: function () { + return Do; + }, + }), + bo = _.map({ + in: k, + out: yo, + 'in-out': wo, + 'out-in': function (t) { + return wo(yo(t)); + }, + }); + function yo(e) { + return function (t) { + return 1 - e(1 - t); + }; + } + function wo(e) { + return function (t) { + return 0.5 * (t < 0.5 ? e(2 * t) : 2 - e(2 - 2 * t)); + }; + } + function Eo(t) { + return t * t; + } + function Bo(t) { + return t * t * t; + } + function Co(t) { + if (t <= 0) return 0; + if (1 <= t) return 1; + var e = t * t, + n = e * t; + return 4 * (t < 0.5 ? n : 3 * (t - e) + n - 0.75); + } + function xo(t) { + return 1 - Math.cos(t * U); + } + function Io(t) { + return Math.pow(2, 10 * (t - 1)); + } + function Mo(t) { + return 1 - Math.sqrt(1 - t * t); + } + function Do(t) { + return t < 1 / 2.75 + ? 7.5625 * t * t + : t < 2 / 2.75 + ? 7.5625 * (t -= 1.5 / 2.75) * t + 0.75 + : t < 2.5 / 2.75 + ? 7.5625 * (t -= 2.25 / 2.75) * t + 0.9375 + : 7.5625 * (t -= 2.625 / 2.75) * t + 0.984375; + } + function So(e, n) { + return ( + (n -= e), + function (t) { + return Math.round(e + n * t); + } + ); + } + function ko(t) { + var e, + n, + r = [t.a, t.b], + i = [t.c, t.d], + o = Qo(r), + a = Fo(r, i), + s = Qo((((e = i)[0] += (s = -a) * (n = r)[0]), (e[1] += s * n[1]), e)) || 0; + r[0] * i[1] < i[0] * r[1] && ((r[0] *= -1), (r[1] *= -1), (o *= -1), (a *= -1)), + (this.rotate = (o ? Math.atan2(r[1], r[0]) : Math.atan2(-i[0], i[1])) * I), + (this.translate = [t.e, t.f]), + (this.scale = [o, s]), + (this.skew = s ? Math.atan2(a, s) * I : 0); + } + function Fo(t, e) { + return t[0] * e[0] + t[1] * e[1]; + } + function Qo(t) { + var e = Math.sqrt(Fo(t, t)); + return e && ((t[0] /= e), (t[1] /= e)), e; + } + (_.ease = function (t) { + var e, + n = t.indexOf('-'), + r = 0 <= n ? t.slice(0, n) : t, + n = 0 <= n ? t.slice(n + 1) : 'in', + r = vo.get(r) || mo, + n = bo.get(n) || k; + return ( + (e = n(r.apply(null, S.call(arguments, 1)))), + function (t) { + return t <= 0 ? 0 : 1 <= t ? 1 : e(t); + } + ); + }), + (_.interpolateHcl = function (t, e) { + (t = _.hcl(t)), (e = _.hcl(e)); + var n = t.h, + r = t.c, + i = t.l, + o = e.h - n, + a = e.c - r, + s = e.l - i; + isNaN(a) && ((a = 0), (r = isNaN(r) ? e.c : r)); + isNaN(o) + ? ((o = 0), (n = isNaN(n) ? e.h : n)) + : 180 < o + ? (o -= 360) + : o < -180 && (o += 360); + return function (t) { + return le(n + o * t, r + a * t, i + s * t) + ''; + }; + }), + (_.interpolateHsl = function (t, e) { + (t = _.hsl(t)), (e = _.hsl(e)); + var n = t.h, + r = t.s, + i = t.l, + o = e.h - n, + a = e.s - r, + s = e.l - i; + isNaN(a) && ((a = 0), (r = isNaN(r) ? e.s : r)); + isNaN(o) + ? ((o = 0), (n = isNaN(n) ? e.h : n)) + : 180 < o + ? (o -= 360) + : o < -180 && (o += 360); + return function (t) { + return se(n + o * t, r + a * t, i + s * t) + ''; + }; + }), + (_.interpolateLab = function (t, e) { + (t = _.lab(t)), (e = _.lab(e)); + var n = t.l, + r = t.a, + i = t.b, + o = e.l - n, + a = e.a - r, + s = e.b - i; + return function (t) { + return pe(n + o * t, r + a * t, i + s * t) + ''; + }; + }), + (_.interpolateRound = So), + (_.transform = function (t) { + var n = T.createElementNS(_.ns.prefix.svg, 'g'); + return (_.transform = function (t) { + var e; + return ( + null != t && + (n.setAttribute('transform', t), (e = n.transform.baseVal.consolidate())), + new ko(e ? e.matrix : _o) + ); + })(t); + }), + (ko.prototype.toString = function () { + return ( + 'translate(' + + this.translate + + ')rotate(' + + this.rotate + + ')skewX(' + + this.skew + + ')scale(' + + this.scale + + ')' + ); + }); + var _o = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 }; + function To(t) { + return t.length ? t.pop() + ',' : ''; + } + function Ro(t, e) { + var n, + r, + i, + o, + a, + s, + l = [], + u = []; + return ( + (t = _.transform(t)), + (e = _.transform(e)), + (r = t.translate), + (i = e.translate), + (a = l), + (o = u), + r[0] !== i[0] || r[1] !== i[1] + ? ((n = a.push('translate(', null, ',', null, ')')), + o.push({ i: n - 4, x: co(r[0], i[0]) }, { i: n - 2, x: co(r[1], i[1]) })) + : (i[0] || i[1]) && a.push('translate(' + i + ')'), + (o = t.rotate), + (n = e.rotate), + (r = l), + (a = u), + o !== n + ? (180 < o - n ? (n += 360) : 180 < n - o && (o += 360), + a.push({ i: r.push(To(r) + 'rotate(', null, ')') - 2, x: co(o, n) })) + : n && r.push(To(r) + 'rotate(' + n + ')'), + (i = t.skew), + (a = e.skew), + (o = l), + (r = u), + i !== a + ? r.push({ i: o.push(To(o) + 'skewX(', null, ')') - 2, x: co(i, a) }) + : a && o.push(To(o) + 'skewX(' + a + ')'), + (r = t.scale), + (i = e.scale), + (o = l), + (a = u), + r[0] !== i[0] || r[1] !== i[1] + ? ((s = o.push(To(o) + 'scale(', null, ',', null, ')')), + a.push({ i: s - 4, x: co(r[0], i[0]) }, { i: s - 2, x: co(r[1], i[1]) })) + : (1 === i[0] && 1 === i[1]) || o.push(To(o) + 'scale(' + i + ')'), + (t = e = null), + function (t) { + for (var e, n = -1, r = u.length; ++n < r; ) l[(e = u[n]).i] = e.x(t); + return l.join(''); + } + ); + } + function Uo(e, n) { + return ( + (n = (n -= e = +e) || 1 / n), + function (t) { + return (t - e) / n; + } + ); + } + function No(e, n) { + return ( + (n = (n -= e = +e) || 1 / n), + function (t) { + return Math.max(0, Math.min(1, (t - e) / n)); + } + ); + } + function Po(t) { + for (var e = [], n = t.parent; null != n; ) e.push(t), (n = (t = n).parent); + return e.push(t), e; + } + function Lo(t) { + t.fixed |= 2; + } + function Yo(t) { + t.fixed &= -7; + } + function Oo(t) { + (t.fixed |= 4), (t.px = t.x), (t.py = t.y); + } + function Go(t) { + t.fixed &= -5; + } + (_.interpolateTransform = Ro), + (_.layout = {}), + (_.layout.bundle = function () { + return function (t) { + for (var e = [], n = -1, r = t.length; ++n < r; ) + e.push( + (function (t) { + var e = t.source, + n = t.target, + r = (function (t, e) { + if (t === e) return t; + var n = Po(t), + r = Po(e), + i = n.pop(), + o = r.pop(), + a = null; + for (; i === o; ) (a = i), (i = n.pop()), (o = r.pop()); + return a; + })(e, n), + i = [e]; + for (; e !== r; ) (e = e.parent), i.push(e); + var o = i.length; + for (; n !== r; ) i.splice(o, 0, n), (n = n.parent); + return i; + })(t[n]), + ); + return e; + }; + }), + (_.layout.chord = function () { + var g, + m, + v, + b, + y, + w, + E, + e = {}, + B = 0; + function t() { + var t, + e, + n, + r, + i, + o = {}, + a = [], + s = _.range(b), + l = []; + for (g = [], m = [], t = 0, r = -1; ++r < b; ) { + for (e = 0, i = -1; ++i < b; ) e += v[r][i]; + a.push(e), l.push(_.range(b)), (t += e); + } + for ( + y && + s.sort(function (t, e) { + return y(a[t], a[e]); + }), + w && + l.forEach(function (t, n) { + t.sort(function (t, e) { + return w(v[n][t], v[n][e]); + }); + }), + t = (x - B * b) / t, + e = 0, + r = -1; + ++r < b; + + ) { + for (n = e, i = -1; ++i < b; ) { + var u = s[r], + c = l[u][i], + A = v[u][c], + h = e, + p = (e += A * t); + o[u + '-' + c] = { + index: u, + subindex: c, + startAngle: h, + endAngle: p, + value: A, + }; + } + (m[u] = { index: u, startAngle: n, endAngle: e, value: a[u] }), (e += B); + } + for (r = -1; ++r < b; ) + for (i = r - 1; ++i < b; ) { + var d = o[r + '-' + i], + f = o[i + '-' + r]; + (d.value || f.value) && + g.push( + d.value < f.value ? { source: f, target: d } : { source: d, target: f }, + ); + } + E && C(); + } + function C() { + g.sort(function (t, e) { + return E( + (t.source.value + t.target.value) / 2, + (e.source.value + e.target.value) / 2, + ); + }); + } + return ( + (e.matrix = function (t) { + return arguments.length ? ((b = (v = t) && v.length), (g = m = null), e) : v; + }), + (e.padding = function (t) { + return arguments.length ? ((B = t), (g = m = null), e) : B; + }), + (e.sortGroups = function (t) { + return arguments.length ? ((y = t), (g = m = null), e) : y; + }), + (e.sortSubgroups = function (t) { + return arguments.length ? ((w = t), (g = null), e) : w; + }), + (e.sortChords = function (t) { + return arguments.length ? ((E = t), g && C(), e) : E; + }), + (e.chords = function () { + return g || t(), g; + }), + (e.groups = function () { + return m || t(), m; + }), + e + ); + }), + (_.layout.force = function () { + var A, + t, + h, + p, + d, + f, + i = {}, + g = _.dispatch('start', 'tick', 'end'), + m = [1, 1], + v = 0.9, + o = zo, + a = Ho, + b = -30, + y = jo, + w = 0.1, + E = 0.64, + B = [], + C = []; + function e(t) { + (t.px = _.event.x), (t.py = _.event.y), i.resume(); + } + return ( + (i.tick = function () { + if ((h *= 0.99) < 0.005) + return (A = null), g.end({ type: 'end', alpha: (h = 0) }), !0; + for (var t, e, n, r, i, o, a, s, l = B.length, u = C.length, c = 0; c < u; ++c) + (n = (e = C[c]).source), + (i = (a = (r = e.target).x - n.x) * a + (s = r.y - n.y) * s) && + ((a *= i = (h * d[c] * ((i = Math.sqrt(i)) - p[c])) / i), + (s *= i), + (r.x -= + a * (o = n.weight + r.weight ? n.weight / (n.weight + r.weight) : 0.5)), + (r.y -= s * o), + (n.x += a * (o = 1 - o)), + (n.y += s * o)); + if ((o = h * w) && ((a = m[0] / 2), (s = m[1] / 2), (c = -1), o)) + for (; ++c < l; ) ((e = B[c]).x += (a - e.x) * o), (e.y += (s - e.y) * o); + if (b) + for ( + !(function t(e, n, r) { + var i = 0, + o = 0; + e.charge = 0; + if (!e.leaf) + for (var a, s = e.nodes, l = s.length, u = -1; ++u < l; ) + null != (a = s[u]) && + (t(a, n, r), + (e.charge += a.charge), + (i += a.charge * a.cx), + (o += a.charge * a.cy)); + { + var c; + e.point && + (e.leaf || + ((e.point.x += Math.random() - 0.5), + (e.point.y += Math.random() - 0.5)), + (c = n * r[e.point.index]), + (e.charge += e.pointCharge = c), + (i += c * e.point.x), + (o += c * e.point.y)); + } + e.cx = i / e.charge; + e.cy = o / e.charge; + })((t = _.geom.quadtree(B)), h, f), + c = -1; + ++c < l; + + ) + (e = B[c]).fixed || + t.visit( + (function (s) { + return function (t, e, n, r) { + if (t.point !== s) { + var i, + o = t.cx - s.x, + a = t.cy - s.y, + r = r - e, + e = o * o + a * a; + if ((r * r) / E < e) + return ( + e < y && + ((i = t.charge / e), (s.px -= o * i), (s.py -= a * i)), + !0 + ); + t.point && + e && + e < y && + ((i = t.pointCharge / e), (s.px -= o * i), (s.py -= a * i)); + } + return !t.charge; + }; + })(e), + ); + for (c = -1; ++c < l; ) + (e = B[c]).fixed + ? ((e.x = e.px), (e.y = e.py)) + : ((e.x -= (e.px - (e.px = e.x)) * v), (e.y -= (e.py - (e.py = e.y)) * v)); + g.tick({ type: 'tick', alpha: h }); + }), + (i.nodes = function (t) { + return arguments.length ? ((B = t), i) : B; + }), + (i.links = function (t) { + return arguments.length ? ((C = t), i) : C; + }), + (i.size = function (t) { + return arguments.length ? ((m = t), i) : m; + }), + (i.linkDistance = function (t) { + return arguments.length ? ((o = 'function' == typeof t ? t : +t), i) : o; + }), + (i.distance = i.linkDistance), + (i.linkStrength = function (t) { + return arguments.length ? ((a = 'function' == typeof t ? t : +t), i) : a; + }), + (i.friction = function (t) { + return arguments.length ? ((v = +t), i) : v; + }), + (i.charge = function (t) { + return arguments.length ? ((b = 'function' == typeof t ? t : +t), i) : b; + }), + (i.chargeDistance = function (t) { + return arguments.length ? ((y = t * t), i) : Math.sqrt(y); + }), + (i.gravity = function (t) { + return arguments.length ? ((w = +t), i) : w; + }), + (i.theta = function (t) { + return arguments.length ? ((E = t * t), i) : Math.sqrt(E); + }), + (i.alpha = function (t) { + return arguments.length + ? ((t = +t), + h + ? 0 < t + ? (h = t) + : ((A.c = null), + (A.t = NaN), + (A = null), + g.end({ type: 'end', alpha: (h = 0) })) + : 0 < t && (g.start({ type: 'start', alpha: (h = t) }), (A = Te(i.tick))), + i) + : h; + }), + (i.start = function () { + for ( + var s, t, l = B.length, u = C.length, e = m[0], n = m[1], c = 0; + c < l; + ++c + ) + ((t = B[c]).index = c), (t.weight = 0); + for (c = 0; c < u; ++c) + 'number' == typeof (t = C[c]).source && (t.source = B[t.source]), + 'number' == typeof t.target && (t.target = B[t.target]), + ++t.source.weight, + ++t.target.weight; + for (c = 0; c < l; ++c) + (t = B[c]), + isNaN(t.x) && (t.x = r('x', e)), + isNaN(t.y) && (t.y = r('y', n)), + isNaN(t.px) && (t.px = t.x), + isNaN(t.py) && (t.py = t.y); + if (((p = []), 'function' == typeof o)) + for (c = 0; c < u; ++c) p[c] = +o.call(this, C[c], c); + else for (c = 0; c < u; ++c) p[c] = o; + if (((d = []), 'function' == typeof a)) + for (c = 0; c < u; ++c) d[c] = +a.call(this, C[c], c); + else for (c = 0; c < u; ++c) d[c] = a; + if (((f = []), 'function' == typeof b)) + for (c = 0; c < l; ++c) f[c] = +b.call(this, B[c], c); + else for (c = 0; c < l; ++c) f[c] = b; + function r(t, e) { + if (!s) { + for (s = new Array(l), o = 0; o < l; ++o) s[o] = []; + for (o = 0; o < u; ++o) { + var n = C[o]; + s[n.source.index].push(n.target), s[n.target.index].push(n.source); + } + } + for (var r, i = s[c], o = -1, a = i.length; ++o < a; ) + if (!isNaN((r = i[o][t]))) return r; + return Math.random() * e; + } + return i.resume(); + }), + (i.resume = function () { + return i.alpha(0.1); + }), + (i.stop = function () { + return i.alpha(0); + }), + (i.drag = function () { + if ( + ((t = + t || + _.behavior + .drag() + .origin(k) + .on('dragstart.force', Lo) + .on('drag.force', e) + .on('dragend.force', Yo)), + !arguments.length) + ) + return t; + this.on('mouseover.force', Oo).on('mouseout.force', Go).call(t); + }), + _.rebind(i, g, 'on') + ); + }); + var zo = 20, + Ho = 1, + jo = 1 / 0; + function Vo(t, e) { + return _.rebind(t, e, 'sort', 'children', 'value'), ((t.nodes = t).links = Xo), t; + } + function qo(t, e) { + for (var n, r, i = [t]; null != (t = i.pop()); ) + if ((e(t), (r = t.children) && (n = r.length))) for (; 0 <= --n; ) i.push(r[n]); + } + function Wo(t, e) { + for (var n = [t], r = []; null != (t = n.pop()); ) + if ((r.push(t), (o = t.children) && (i = o.length))) + for (var i, o, a = -1; ++a < i; ) n.push(o[a]); + for (; null != (t = r.pop()); ) e(t); + } + function Jo(t) { + return t.children; + } + function Ko(t) { + return t.value; + } + function Zo(t, e) { + return e.value - t.value; + } + function Xo(t) { + return _.merge( + t.map(function (e) { + return (e.children || []).map(function (t) { + return { source: e, target: t }; + }); + }), + ); + } + (_.layout.hierarchy = function () { + var s = Zo, + l = Jo, + u = Ko; + function c(t) { + var e, + n, + r, + i, + o = [t], + a = []; + for (t.depth = 0; null != (e = o.pop()); ) + if ((a.push(e), (r = l.call(c, e, e.depth)) && (n = r.length))) { + for (; 0 <= --n; ) o.push((i = r[n])), (i.parent = e), (i.depth = e.depth + 1); + u && (e.value = 0), (e.children = r); + } else u && (e.value = +u.call(c, e, e.depth) || 0), delete e.children; + return ( + Wo(t, function (t) { + var e; + s && (e = t.children) && e.sort(s), u && (e = t.parent) && (e.value += t.value); + }), + a + ); + } + return ( + (c.sort = function (t) { + return arguments.length ? ((s = t), c) : s; + }), + (c.children = function (t) { + return arguments.length ? ((l = t), c) : l; + }), + (c.value = function (t) { + return arguments.length ? ((u = t), c) : u; + }), + (c.revalue = function (t) { + return ( + u && + (qo(t, function (t) { + t.children && (t.value = 0); + }), + Wo(t, function (t) { + var e; + t.children || (t.value = +u.call(c, t, t.depth) || 0), + (e = t.parent) && (e.value += t.value); + })), + t + ); + }), + c + ); + }), + (_.layout.partition = function () { + var n = _.layout.hierarchy(), + r = [1, 1]; + function e(t, e) { + t = n.call(this, t, e); + return ( + (function t(e, n, r, i) { + var o = e.children; + if ( + ((e.x = n), + (e.y = e.depth * i), + (e.dx = r), + (e.dy = i), + o && (a = o.length)) + ) { + var a, + s, + l = -1; + for (r = e.value ? r / e.value : 0; ++l < a; ) + t((s = o[l]), n, (s = s.value * r), i), (n += s); + } + })( + t[0], + 0, + r[0], + r[1] / + (function t(e) { + var n = e.children, + r = 0; + if (n && (i = n.length)) + for (var i, o = -1; ++o < i; ) r = Math.max(r, t(n[o])); + return 1 + r; + })(t[0]), + ), + t + ); + } + return ( + (e.size = function (t) { + return arguments.length ? ((r = t), e) : r; + }), + Vo(e, n) + ); + }), + (_.layout.pie = function () { + var A = Number, + h = $o, + p = 0, + d = x, + f = 0; + function g(n) { + var e, + t = n.length, + r = n.map(function (t, e) { + return +A.call(g, t, e); + }), + i = +('function' == typeof p ? p.apply(this, arguments) : p), + o = ('function' == typeof d ? d.apply(this, arguments) : d) - i, + a = Math.min( + Math.abs(o) / t, + +('function' == typeof f ? f.apply(this, arguments) : f), + ), + s = a * (o < 0 ? -1 : 1), + l = _.sum(r), + u = l ? (o - t * s) / l : 0, + o = _.range(t), + c = []; + return ( + null != h && + o.sort( + h === $o + ? function (t, e) { + return r[e] - r[t]; + } + : function (t, e) { + return h(n[t], n[e]); + }, + ), + o.forEach(function (t) { + c[t] = { + data: n[t], + value: (e = r[t]), + startAngle: i, + endAngle: (i += e * u + s), + padAngle: a, + }; + }), + c + ); + } + return ( + (g.value = function (t) { + return arguments.length ? ((A = t), g) : A; + }), + (g.sort = function (t) { + return arguments.length ? ((h = t), g) : h; + }), + (g.startAngle = function (t) { + return arguments.length ? ((p = t), g) : p; + }), + (g.endAngle = function (t) { + return arguments.length ? ((d = t), g) : d; + }), + (g.padAngle = function (t) { + return arguments.length ? ((f = t), g) : f; + }), + g + ); + }); + var $o = {}; + function ta(t) { + return t.x; + } + function ea(t) { + return t.y; + } + function na(t, e, n) { + (t.y0 = e), (t.y = n); + } + _.layout.stack = function () { + var A = k, + h = oa, + p = aa, + d = na, + f = ta, + g = ea; + function m(t, e) { + if ((n = t.length)) + for ( + var n, + r, + i, + o = (s = t.map(function (t, e) { + return A.call(m, t, e); + })).map(function (t) { + return t.map(function (t, e) { + return [f.call(m, t, e), g.call(m, t, e)]; + }); + }), + a = h.call(m, o, e), + s = _.permute(s, a), + o = _.permute(o, a), + l = p.call(m, o, e), + u = s[0].length, + c = 0; + c < u; + ++c + ) + for (d.call(m, s[0][c], (i = l[c]), o[0][c][1]), r = 1; r < n; ++r) + d.call(m, s[r][c], (i += o[r - 1][c][1]), o[r][c][1]); + return t; + } + return ( + (m.values = function (t) { + return arguments.length ? ((A = t), m) : A; + }), + (m.order = function (t) { + return arguments.length + ? ((h = 'function' == typeof t ? t : ra.get(t) || oa), m) + : h; + }), + (m.offset = function (t) { + return arguments.length + ? ((p = 'function' == typeof t ? t : ia.get(t) || aa), m) + : p; + }), + (m.x = function (t) { + return arguments.length ? ((f = t), m) : f; + }), + (m.y = function (t) { + return arguments.length ? ((g = t), m) : g; + }), + (m.out = function (t) { + return arguments.length ? ((d = t), m) : d; + }), + m + ); + }; + var ra = _.map({ + 'inside-out': function (t) { + for ( + var e, + n = t.length, + r = t.map(sa), + i = t.map(la), + o = _.range(n).sort(function (t, e) { + return r[t] - r[e]; + }), + a = 0, + s = 0, + l = [], + u = [], + c = 0; + c < n; + ++c + ) + (e = o[c]), a < s ? ((a += i[e]), l.push(e)) : ((s += i[e]), u.push(e)); + return u.reverse().concat(l); + }, + reverse: function (t) { + return _.range(t.length).reverse(); + }, + default: oa, + }), + ia = _.map({ + silhouette: function (t) { + for ( + var e, n, r = t.length, i = t[0].length, o = [], a = 0, s = [], l = 0; + l < i; + ++l + ) { + for (n = e = 0; e < r; e++) n += t[e][l][1]; + a < n && (a = n), o.push(n); + } + for (l = 0; l < i; ++l) s[l] = (a - o[l]) / 2; + return s; + }, + wiggle: function (t) { + var e, + n, + r, + i, + o, + a, + s, + l, + u, + c = t.length, + A = t[0], + h = A.length, + p = []; + for (p[0] = l = u = 0, n = 1; n < h; ++n) { + for (i = e = 0; e < c; ++e) i += t[e][n][1]; + for (s = A[n][(o = e = 0)] - A[n - 1][0]; e < c; ++e) { + for (r = 0, a = (t[e][n][1] - t[e][n - 1][1]) / (2 * s); r < e; ++r) + a += (t[r][n][1] - t[r][n - 1][1]) / s; + o += a * t[e][n][1]; + } + (p[n] = l -= i ? (o / i) * s : 0), l < u && (u = l); + } + for (n = 0; n < h; ++n) p[n] -= u; + return p; + }, + expand: function (t) { + for ( + var e, n, r = t.length, i = t[0].length, o = 1 / r, a = [], s = 0; + s < i; + ++s + ) { + for (n = e = 0; e < r; e++) n += t[e][s][1]; + if (n) for (e = 0; e < r; e++) t[e][s][1] /= n; + else for (e = 0; e < r; e++) t[e][s][1] = o; + } + for (s = 0; s < i; ++s) a[s] = 0; + return a; + }, + zero: aa, + }); + function oa(t) { + return _.range(t.length); + } + function aa(t) { + for (var e = -1, n = t[0].length, r = []; ++e < n; ) r[e] = 0; + return r; + } + function sa(t) { + for (var e, n = 1, r = 0, i = t[0][1], o = t.length; n < o; ++n) + (e = t[n][1]) > i && ((r = n), (i = e)); + return r; + } + function la(t) { + return t.reduce(ua, 0); + } + function ua(t, e) { + return t + e[1]; + } + function ca(t, e) { + return Aa(t, Math.ceil(Math.log(e.length) / Math.LN2 + 1)); + } + function Aa(t, e) { + for (var n = -1, r = +t[0], i = (t[1] - r) / e, o = []; ++n <= e; ) o[n] = i * n + r; + return o; + } + function ha(t) { + return [_.min(t), _.max(t)]; + } + function pa(t, e) { + return t.value - e.value; + } + function da(t, e) { + var n = t._pack_next; + ((t._pack_next = e)._pack_prev = t), ((e._pack_next = n)._pack_prev = e); + } + function fa(t, e) { + (t._pack_next = e)._pack_prev = t; + } + function ga(t, e) { + var n = e.x - t.x, + r = e.y - t.y, + t = t.r + e.r; + return n * n + r * r < 0.999 * t * t; + } + function ma(t) { + if ((e = t.children) && (a = e.length)) { + var e, + n, + r, + i, + o, + a, + s = 1 / 0, + l = -1 / 0, + u = 1 / 0, + c = -1 / 0; + if ( + (e.forEach(va), + ((n = e[0]).x = -n.r), + (n.y = 0), + b(n), + 1 < a && (((r = e[1]).x = r.r), (r.y = 0), b(r), 2 < a)) + ) + for ( + ya(n, r, (i = e[2])), + b(i), + da(n, i), + da((n._pack_prev = i), r), + r = n._pack_next, + v = 3; + v < a; + v++ + ) { + ya(n, r, (i = e[v])); + for (var A = 0, h = 1, p = 1, d = r._pack_next; d !== r; d = d._pack_next, h++) + if (ga(d, i)) { + A = 1; + break; + } + if (1 == A) + for ( + o = n._pack_prev; + o !== d._pack_prev && !ga(o, i); + o = o._pack_prev, p++ + ); + A + ? (h < p || (h == p && r.r < n.r) ? fa(n, (r = d)) : fa((n = o), r), v--) + : (da(n, i), b((r = i))); + } + for (var f = (s + l) / 2, g = (u + c) / 2, m = 0, v = 0; v < a; v++) + ((i = e[v]).x -= f), + (i.y -= g), + (m = Math.max(m, i.r + Math.sqrt(i.x * i.x + i.y * i.y))); + (t.r = m), e.forEach(ba); + } + function b(t) { + (s = Math.min(t.x - t.r, s)), + (l = Math.max(t.x + t.r, l)), + (u = Math.min(t.y - t.r, u)), + (c = Math.max(t.y + t.r, c)); + } + } + function va(t) { + t._pack_next = t._pack_prev = t; + } + function ba(t) { + delete t._pack_next, delete t._pack_prev; + } + function ya(t, e, n) { + var r, + i, + o = t.r + n.r, + a = e.x - t.x, + s = e.y - t.y; + o && (a || s) + ? ((e = e.r + n.r), + (i = 0.5 + ((o *= o) - (e *= e)) / (2 * (r = a * a + s * s))), + (e = Math.sqrt(Math.max(0, 2 * e * (o + r) - (o -= r) * o - e * e)) / (2 * r)), + (n.x = t.x + i * a + e * s), + (n.y = t.y + i * s - e * a)) + : ((n.x = t.x + o), (n.y = t.y)); + } + function wa(t, e) { + return t.parent == e.parent ? 1 : 2; + } + function Ea(t) { + var e = t.children; + return e.length ? e[0] : t.t; + } + function Ba(t) { + var e, + n = t.children; + return (e = n.length) ? n[e - 1] : t.t; + } + function Ca(t) { + return { x: t.x, y: t.y, dx: t.dx, dy: t.dy }; + } + function xa(t, e) { + var n = t.x + e[3], + r = t.y + e[0], + i = t.dx - e[1] - e[3], + t = t.dy - e[0] - e[2]; + return ( + i < 0 && ((n += i / 2), (i = 0)), + t < 0 && ((r += t / 2), (t = 0)), + { x: n, y: r, dx: i, dy: t } + ); + } + function Ia(t) { + var e = t[0], + t = t[t.length - 1]; + return e < t ? [e, t] : [t, e]; + } + function Ma(t) { + return t.rangeExtent ? t.rangeExtent() : Ia(t.range()); + } + function Da(t, e, n, r) { + var i = n(t[0], t[1]), + o = r(e[0], e[1]); + return function (t) { + return o(i(t)); + }; + } + function Sa(t, e) { + var n, + r = 0, + i = t.length - 1, + o = t[r], + a = t[i]; + return ( + a < o && ((n = r), (r = i), (i = n), (n = o), (o = a), (a = n)), + (t[r] = e.floor(o)), + (t[i] = e.ceil(a)), + t + ); + } + function ka(e) { + return e + ? { + floor: function (t) { + return Math.floor(t / e) * e; + }, + ceil: function (t) { + return Math.ceil(t / e) * e; + }, + } + : Fa; + } + (_.layout.histogram = function () { + var A = !0, + h = Number, + p = ha, + d = ca; + function n(t, e) { + for ( + var n, + r, + i = [], + o = t.map(h, this), + a = p.call(this, o, e), + s = d.call(this, a, o, e), + e = -1, + l = o.length, + u = s.length - 1, + c = A ? 1 : 1 / l; + ++e < u; + + ) + ((n = i[e] = []).dx = s[e + 1] - (n.x = s[e])), (n.y = 0); + if (0 < u) + for (e = -1; ++e < l; ) + (r = o[e]) >= a[0] && + r <= a[1] && + (((n = i[_.bisect(s, r, 1, u) - 1]).y += c), n.push(t[e])); + return i; + } + return ( + (n.value = function (t) { + return arguments.length ? ((h = t), n) : h; + }), + (n.range = function (t) { + return arguments.length ? ((p = N(t)), n) : p; + }), + (n.bins = function (e) { + return arguments.length + ? ((d = + 'number' == typeof e + ? function (t) { + return Aa(t, e); + } + : N(e)), + n) + : d; + }), + (n.frequency = function (t) { + return arguments.length ? ((A = !!t), n) : A; + }), + n + ); + }), + (_.layout.pack = function () { + var a, + s = _.layout.hierarchy().sort(pa), + l = 0, + u = [1, 1]; + function e(t, e) { + var n, + t = s.call(this, t, e), + e = t[0], + r = u[0], + i = u[1], + o = + null == a + ? Math.sqrt + : 'function' == typeof a + ? a + : function () { + return a; + }; + return ( + (e.x = e.y = 0), + Wo(e, function (t) { + t.r = +o(t.value); + }), + Wo(e, ma), + l && + ((n = (l * (a ? 1 : Math.max((2 * e.r) / r, (2 * e.r) / i))) / 2), + Wo(e, function (t) { + t.r += n; + }), + Wo(e, ma), + Wo(e, function (t) { + t.r -= n; + })), + (function t(e, n, r, i) { + var o = e.children; + e.x = n += i * e.x; + e.y = r += i * e.y; + e.r *= i; + if (o) for (var a = -1, s = o.length; ++a < s; ) t(o[a], n, r, i); + })(e, r / 2, i / 2, a ? 1 : 1 / Math.max((2 * e.r) / r, (2 * e.r) / i)), + t + ); + } + return ( + (e.size = function (t) { + return arguments.length ? ((u = t), e) : u; + }), + (e.radius = function (t) { + return arguments.length + ? ((a = null == t || 'function' == typeof t ? t : +t), e) + : a; + }), + (e.padding = function (t) { + return arguments.length ? ((l = +t), e) : l; + }), + Vo(e, s) + ); + }), + (_.layout.tree = function () { + var u = _.layout.hierarchy().sort(null).value(null), + h = wa, + c = [1, 1], + A = null; + function e(t, e) { + var n, + r, + i, + o, + a, + s, + t = u.call(this, t, e), + e = t[0], + l = (function (t) { + var e, + t = { A: null, children: [t] }, + n = [t]; + for (; null != (e = n.pop()); ) + for (var r, i = e.children, o = 0, a = i.length; o < a; ++o) + n.push( + ((i[o] = r = + { + _: i[o], + parent: e, + children: ((r = i[o].children) && r.slice()) || [], + A: null, + a: null, + z: 0, + m: 0, + c: 0, + s: 0, + t: null, + i: o, + }).a = r), + ); + return t.children[0]; + })(e); + return ( + Wo(l, p), + (l.parent.m = -l.z), + qo(l, d), + A + ? qo(e, f) + : (qo((i = r = n = e), function (t) { + t.x < n.x && (n = t), t.x > r.x && (r = t), t.depth > i.depth && (i = t); + }), + (o = h(n, r) / 2 - n.x), + (a = c[0] / (r.x + h(r, n) / 2 + o)), + (s = c[1] / (i.depth || 1)), + qo(e, function (t) { + (t.x = (t.x + o) * a), (t.y = t.depth * s); + })), + t + ); + } + function p(t) { + var e = t.children, + n = t.parent.children, + r = t.i ? n[t.i - 1] : null; + if (e.length) { + for (var i, o = 0, a = 0, s = t.children, l = s.length; 0 <= --l; ) + ((i = s[l]).z += o), (i.m += o), (o += i.s + (a += i.c)); + e = (e[0].z + e[e.length - 1].z) / 2; + r ? ((t.z = r.z + h(t._, r._)), (t.m = t.z - e)) : (t.z = e); + } else r && (t.z = r.z + h(t._, r._)); + t.parent.A = (function (t, e, n) { + if (e) { + for ( + var r, + i = t, + o = t, + a = e, + s = i.parent.children[0], + l = i.m, + u = o.m, + c = a.m, + A = s.m; + (a = Ba(a)), (i = Ea(i)), a && i; + + ) + (s = Ea(s)), + ((o = Ba(o)).a = t), + 0 < (r = a.z + c - i.z - l + h(a._, i._)) && + ((function (t, e, n) { + var r = n / (e.i - t.i); + (e.c -= r), (e.s += n), (t.c += r), (e.z += n), (e.m += n); + })( + (function (t, e, n) { + return t.a.parent === e.parent ? t.a : n; + })(a, t, n), + t, + r, + ), + (l += r), + (u += r)), + (c += a.m), + (l += i.m), + (A += s.m), + (u += o.m); + a && !Ba(o) && ((o.t = a), (o.m += c - u)), + i && !Ea(s) && ((s.t = i), (s.m += l - A), (n = t)); + } + return n; + })(t, r, t.parent.A || n[0]); + } + function d(t) { + (t._.x = t.z + t.parent.m), (t.m += t.parent.m); + } + function f(t) { + (t.x *= c[0]), (t.y = t.depth * c[1]); + } + return ( + (e.separation = function (t) { + return arguments.length ? ((h = t), e) : h; + }), + (e.size = function (t) { + return arguments.length ? ((A = null == (c = t) ? f : null), e) : A ? null : c; + }), + (e.nodeSize = function (t) { + return arguments.length ? ((A = null == (c = t) ? null : f), e) : A ? c : null; + }), + Vo(e, u) + ); + }), + (_.layout.cluster = function () { + var l = _.layout.hierarchy().sort(null).value(null), + u = wa, + c = [1, 1], + A = !1; + function e(t, e) { + var r, + t = l.call(this, t, e), + n = t[0], + i = 0, + e = + (Wo(n, function (t) { + var e, + n = t.children; + n && n.length + ? ((t.x = + (e = n).reduce(function (t, e) { + return t + e.x; + }, 0) / e.length), + (t.y = + 1 + + _.max(n, function (t) { + return t.y; + }))) + : ((t.x = r ? (i += u(t, r)) : 0), (t.y = 0), (r = t)); + }), + (function t(e) { + var n = e.children; + return n && n.length ? t(n[0]) : e; + })(n)), + o = (function t(e) { + var n, + r = e.children; + return r && (n = r.length) ? t(r[n - 1]) : e; + })(n), + a = e.x - u(e, o) / 2, + s = o.x + u(o, e) / 2; + return ( + Wo( + n, + A + ? function (t) { + (t.x = (t.x - n.x) * c[0]), (t.y = (n.y - t.y) * c[1]); + } + : function (t) { + (t.x = ((t.x - a) / (s - a)) * c[0]), + (t.y = (1 - (n.y ? t.y / n.y : 1)) * c[1]); + }, + ), + t + ); + } + return ( + (e.separation = function (t) { + return arguments.length ? ((u = t), e) : u; + }), + (e.size = function (t) { + return arguments.length ? ((A = null == (c = t)), e) : A ? null : c; + }), + (e.nodeSize = function (t) { + return arguments.length ? ((A = null != (c = t)), e) : A ? c : null; + }), + Vo(e, l) + ); + }), + (_.layout.treemap = function () { + var n, + r = _.layout.hierarchy(), + c = Math.round, + i = [1, 1], + o = null, + u = Ca, + a = !1, + A = 'squarify', + h = 0.5 * (1 + Math.sqrt(5)); + function p(t, e) { + for (var n, r, i = -1, o = t.length; ++i < o; ) + (r = (n = t[i]).value * (e < 0 ? 0 : e)), (n.area = isNaN(r) || r <= 0 ? 0 : r); + } + function d(t) { + var e = t.children; + if (e && e.length) { + var n, + r, + i = u(t), + o = [], + a = e.slice(), + s = 1 / 0, + l = + 'slice' === A + ? i.dx + : 'dice' === A + ? i.dy + : 'slice-dice' === A + ? 1 & t.depth + ? i.dy + : i.dx + : Math.min(i.dx, i.dy); + for (p(a, (i.dx * i.dy) / t.value), o.area = 0; 0 < (r = a.length); ) + o.push((r = a[r - 1])), + (o.area += r.area), + (s = + 'squarify' !== A || + (n = (function (t, e) { + var n, + r = t.area, + i = 0, + o = 1 / 0, + a = -1, + s = t.length; + for (; ++a < s; ) + (n = t[a].area) && (n < o && (o = n), i < n && (i = n)); + return ( + (e *= e), + (r *= r) ? Math.max((e * i * h) / r, r / (e * o * h)) : 1 / 0 + ); + })(o, l)) <= s + ? (a.pop(), n) + : ((o.area -= o.pop().area), + f(o, l, i, !1), + (l = Math.min(i.dx, i.dy)), + 1 / (o.length = o.area = 0))); + o.length && (f(o, l, i, !0), (o.length = o.area = 0)), e.forEach(d); + } + } + function s(t) { + var e = t.children; + if (e && e.length) { + var n, + r = u(t), + i = e.slice(), + o = []; + for (p(i, (r.dx * r.dy) / t.value), o.area = 0; (n = i.pop()); ) + o.push(n), + (o.area += n.area), + null != n.z && + (f(o, n.z ? r.dx : r.dy, r, !i.length), (o.length = o.area = 0)); + e.forEach(s); + } + } + function f(t, e, n, r) { + var i, + o = -1, + a = t.length, + s = n.x, + l = n.y, + u = e ? c(t.area / e) : 0; + if (e == n.dx) { + for ((r || u > n.dy) && (u = n.dy); ++o < a; ) + ((i = t[o]).x = s), + (i.y = l), + (i.dy = u), + (s += i.dx = Math.min(n.x + n.dx - s, u ? c(i.area / u) : 0)); + (i.z = !0), (i.dx += n.x + n.dx - s), (n.y += u), (n.dy -= u); + } else { + for ((r || u > n.dx) && (u = n.dx); ++o < a; ) + ((i = t[o]).x = s), + (i.y = l), + (i.dx = u), + (l += i.dy = Math.min(n.y + n.dy - l, u ? c(i.area / u) : 0)); + (i.z = !1), (i.dy += n.y + n.dy - l), (n.x += u), (n.dx -= u); + } + } + function l(t) { + var t = n || r(t), + e = t[0]; + return ( + (e.x = e.y = 0), + e.value ? ((e.dx = i[0]), (e.dy = i[1])) : (e.dx = e.dy = 0), + n && r.revalue(e), + p([e], (e.dx * e.dy) / e.value), + (n ? s : d)(e), + a && (n = t), + t + ); + } + return ( + (l.size = function (t) { + return arguments.length ? ((i = t), l) : i; + }), + (l.padding = function (n) { + return arguments.length + ? ((u = + null == (o = n) + ? Ca + : 'function' == (e = typeof n) + ? function (t) { + var e = n.call(l, t, t.depth); + return null == e + ? Ca(t) + : xa(t, 'number' == typeof e ? [e, e, e, e] : e); + } + : ('number' == e && (n = [n, n, n, n]), t)), + l) + : o; + function t(t) { + return xa(t, n); + } + var e; + }), + (l.round = function (t) { + return arguments.length ? ((c = t ? Math.round : Number), l) : c != Number; + }), + (l.sticky = function (t) { + return arguments.length ? ((a = t), (n = null), l) : a; + }), + (l.ratio = function (t) { + return arguments.length ? ((h = t), l) : h; + }), + (l.mode = function (t) { + return arguments.length ? ((A = t + ''), l) : A; + }), + Vo(l, r) + ); + }), + (_.random = { + normal: function (r, i) { + var t = arguments.length; + return ( + t < 2 && (i = 1), + t < 1 && (r = 0), + function () { + for ( + var t, e, n; + !(n = (t = 2 * Math.random() - 1) * t + (e = 2 * Math.random() - 1) * e) || + 1 < n; + + ); + return r + i * t * Math.sqrt((-2 * Math.log(n)) / n); + } + ); + }, + logNormal: function () { + var t = _.random.normal.apply(_, arguments); + return function () { + return Math.exp(t()); + }; + }, + bates: function (t) { + var e = _.random.irwinHall(t); + return function () { + return e() / t; + }; + }, + irwinHall: function (n) { + return function () { + for (var t = 0, e = 0; e < n; e++) t += Math.random(); + return t; + }; + }, + }), + (_.scale = {}); + var Fa = { floor: k, ceil: k }; + function Qa(n, t, e, r) { + var i = [], + o = [], + a = 0, + s = Math.min(n.length, t.length) - 1; + for ( + n[s] < n[0] && ((n = n.slice().reverse()), (t = t.slice().reverse())); + ++a <= s; + + ) + i.push(e(n[a - 1], n[a])), o.push(r(t[a - 1], t[a])); + return function (t) { + var e = _.bisect(n, t, 1, s) - 1; + return o[e](i[e](t)); + }; + } + function _a(t, e) { + return _.rebind(t, e, 'range', 'rangeRound', 'interpolate', 'clamp'); + } + function Ta(t, e) { + return Sa(t, ka(Ra(t, e)[2])), Sa(t, ka(Ra(t, e)[2])), t; + } + function Ra(t, e) { + null == e && (e = 10); + var t = Ia(t), + n = t[1] - t[0], + r = Math.pow(10, Math.floor(Math.log(n / e) / Math.LN10)), + e = (e / n) * r; + return ( + e <= 0.15 ? (r *= 10) : e <= 0.35 ? (r *= 5) : e <= 0.75 && (r *= 2), + (t[0] = Math.ceil(t[0] / r) * r), + (t[1] = Math.floor(t[1] / r) * r + 0.5 * r), + (t[2] = r), + t + ); + } + function Ua(t, e) { + return _.range.apply(_, Ra(t, e)); + } + function Na(t, e, n) { + var r, + i, + o, + t = Ra(t, e); + if (n) { + var a, + e = Ye.exec(n); + if ((e.shift(), 's' === e[8])) + return ( + (a = _.formatPrefix(Math.max(F(t[0]), F(t[1])))), + e[7] || (e[7] = '.' + La(a.scale(t[2]))), + (e[8] = 'f'), + (n = _.format(e.join(''))), + function (t) { + return n(a.scale(t)) + a.symbol; + } + ); + e[7] || + (e[7] = + '.' + + ((r = e[8]), + (o = La((i = t)[2])), + r in Pa + ? Math.abs(o - La(Math.max(F(i[0]), F(i[1])))) + +('e' !== r) + : o - 2 * ('%' === r))), + (n = e.join('')); + } else n = ',.' + La(t[2]) + 'f'; + return _.format(n); + } + _.scale.linear = function () { + return (function t(n, r, i, o) { + var a, s; + function e() { + var t = 2 < Math.min(n.length, r.length) ? Qa : Da, + e = o ? No : Uo; + return (a = t(n, r, e, i)), (s = t(r, n, e, fo)), l; + } + function l(t) { + return a(t); + } + l.invert = function (t) { + return s(t); + }; + l.domain = function (t) { + return arguments.length ? ((n = t.map(Number)), e()) : n; + }; + l.range = function (t) { + return arguments.length ? ((r = t), e()) : r; + }; + l.rangeRound = function (t) { + return l.range(t).interpolate(So); + }; + l.clamp = function (t) { + return arguments.length ? ((o = t), e()) : o; + }; + l.interpolate = function (t) { + return arguments.length ? ((i = t), e()) : i; + }; + l.ticks = function (t) { + return Ua(n, t); + }; + l.tickFormat = function (t, e) { + return Na(n, t, e); + }; + l.nice = function (t) { + return Ta(n, t), e(); + }; + l.copy = function () { + return t(n, r, i, o); + }; + return e(); + })([0, 1], [0, 1], fo, !1); + }; + var Pa = { s: 1, g: 1, p: 1, r: 1, e: 1 }; + function La(t) { + return -Math.floor(Math.log(t) / Math.LN10 + 0.01); + } + _.scale.log = function () { + return (function t(e, l, u, c) { + function A(t) { + return (u ? Math.log(t < 0 ? 0 : t) : -Math.log(0 < t ? 0 : -t)) / Math.log(l); + } + function h(t) { + return u ? Math.pow(l, t) : -Math.pow(l, -t); + } + function i(t) { + return e(A(t)); + } + i.invert = function (t) { + return h(e.invert(t)); + }; + i.domain = function (t) { + return arguments.length + ? ((u = 0 <= t[0]), e.domain((c = t.map(Number)).map(A)), i) + : c; + }; + i.base = function (t) { + return arguments.length ? ((l = +t), e.domain(c.map(A)), i) : l; + }; + i.nice = function () { + var t = Sa(c.map(A), u ? Math : Oa); + return e.domain(t), (c = t.map(h)), i; + }; + i.ticks = function () { + var t = Ia(c), + e = [], + n = t[0], + r = t[1], + i = Math.floor(A(n)), + o = Math.ceil(A(r)), + a = l % 1 ? 2 : l; + if (isFinite(o - i)) { + if (u) { + for (; i < o; i++) for (var s = 1; s < a; s++) e.push(h(i) * s); + e.push(h(i)); + } else + for (e.push(h(i)); i++ < o; ) for (s = a - 1; 0 < s; s--) e.push(h(i) * s); + for (i = 0; e[i] < n; i++); + for (o = e.length; e[o - 1] > r; o--); + e = e.slice(i, o); + } + return e; + }; + i.tickFormat = function (t, n) { + if (!arguments.length) return Ya; + arguments.length < 2 ? (n = Ya) : 'function' != typeof n && (n = _.format(n)); + var r = Math.max(1, (l * t) / i.ticks().length); + return function (t) { + var e = t / h(Math.round(A(t))); + return e * l < l - 0.5 && (e *= l), e <= r ? n(t) : ''; + }; + }; + i.copy = function () { + return t(e.copy(), l, u, c); + }; + return _a(i, e); + })(_.scale.linear().domain([0, 1]), 10, !0, [1, 10]); + }; + var Ya = _.format('.0e'), + Oa = { + floor: function (t) { + return -Math.ceil(-t); + }, + ceil: function (t) { + return -Math.floor(-t); + }, + }; + function Ga(e) { + return function (t) { + return t < 0 ? -Math.pow(-t, e) : Math.pow(t, e); + }; + } + (_.scale.pow = function () { + return (function t(e, n, r) { + var i = Ga(n), + o = Ga(1 / n); + function a(t) { + return e(i(t)); + } + a.invert = function (t) { + return o(e.invert(t)); + }; + a.domain = function (t) { + return arguments.length ? (e.domain((r = t.map(Number)).map(i)), a) : r; + }; + a.ticks = function (t) { + return Ua(r, t); + }; + a.tickFormat = function (t, e) { + return Na(r, t, e); + }; + a.nice = function (t) { + return a.domain(Ta(r, t)); + }; + a.exponent = function (t) { + return arguments.length + ? ((i = Ga((n = t))), (o = Ga(1 / n)), e.domain(r.map(i)), a) + : n; + }; + a.copy = function () { + return t(e.copy(), n, r); + }; + return _a(a, e); + })(_.scale.linear(), 1, [0, 1]); + }), + (_.scale.sqrt = function () { + return _.scale.pow().exponent(0.5); + }), + (_.scale.ordinal = function () { + return (function t(s, l) { + var i, u, c; + function A(t) { + return u[ + ((i.get(t) || ('range' === l.t ? i.set(t, s.push(t)) : NaN)) - 1) % u.length + ]; + } + function h(e, n) { + return _.range(s.length).map(function (t) { + return e + n * t; + }); + } + A.domain = function (t) { + if (!arguments.length) return s; + (s = []), (i = new W()); + for (var e, n = -1, r = t.length; ++n < r; ) + i.has((e = t[n])) || i.set(e, s.push(e)); + return A[l.t].apply(A, l.a); + }; + A.range = function (t) { + return arguments.length + ? ((u = t), (c = 0), (l = { t: 'range', a: arguments }), A) + : u; + }; + A.rangePoints = function (t, e) { + arguments.length < 2 && (e = 0); + var n = t[0], + r = t[1], + r = s.length < 2 ? ((n = (n + r) / 2), 0) : (r - n) / (s.length - 1 + e); + return ( + (u = h(n + (r * e) / 2, r)), + (c = 0), + (l = { t: 'rangePoints', a: arguments }), + A + ); + }; + A.rangeRoundPoints = function (t, e) { + arguments.length < 2 && (e = 0); + var n = t[0], + r = t[1], + i = + s.length < 2 + ? ((n = r = Math.round((n + r) / 2)), 0) + : ((r - n) / (s.length - 1 + e)) | 0; + return ( + (u = h( + n + Math.round((i * e) / 2 + (r - n - (s.length - 1 + e) * i) / 2), + i, + )), + (c = 0), + (l = { t: 'rangeRoundPoints', a: arguments }), + A + ); + }; + A.rangeBands = function (t, e, n) { + arguments.length < 2 && (e = 0), arguments.length < 3 && (n = e); + var r = t[1] < t[0], + i = t[+r], + o = t[1 - r], + o = (o - i) / (s.length - e + 2 * n); + return ( + (u = h(i + o * n, o)), + r && u.reverse(), + (c = o * (1 - e)), + (l = { t: 'rangeBands', a: arguments }), + A + ); + }; + A.rangeRoundBands = function (t, e, n) { + arguments.length < 2 && (e = 0), arguments.length < 3 && (n = e); + var r = t[1] < t[0], + i = t[+r], + o = t[1 - r], + a = Math.floor((o - i) / (s.length - e + 2 * n)); + return ( + (u = h(i + Math.round((o - i - (s.length - e) * a) / 2), a)), + r && u.reverse(), + (c = Math.round(a * (1 - e))), + (l = { t: 'rangeRoundBands', a: arguments }), + A + ); + }; + A.rangeBand = function () { + return c; + }; + A.rangeExtent = function () { + return Ia(l.a[0]); + }; + A.copy = function () { + return t(s, l); + }; + return A.domain(s); + })([], { t: 'range', a: [[]] }); + }), + (_.scale.category10 = function () { + return _.scale.ordinal().range(za); + }), + (_.scale.category20 = function () { + return _.scale.ordinal().range(Ha); + }), + (_.scale.category20b = function () { + return _.scale.ordinal().range(ja); + }), + (_.scale.category20c = function () { + return _.scale.ordinal().range(Va); + }); + var za = [ + 2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, + 1556175, + ].map(be), + Ha = [ + 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, + 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, + 12369186, 14408589, 1556175, 10410725, + ].map(be), + ja = [ + 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, + 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, + 10834324, 13528509, 14589654, + ].map(be), + Va = [ + 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, + 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, + 6513507, 9868950, 12434877, 14277081, + ].map(be); + function qa() { + return 0; + } + (_.scale.quantile = function () { + return (function t(n, r) { + var i; + function e() { + var t = 0, + e = r.length; + for (i = []; ++t < e; ) i[t - 1] = _.quantile(n, t / e); + return o; + } + function o(t) { + if (!isNaN((t = +t))) return r[_.bisect(i, t)]; + } + o.domain = function (t) { + return arguments.length ? ((n = t.map(H).filter(j).sort(z)), e()) : n; + }; + o.range = function (t) { + return arguments.length ? ((r = t), e()) : r; + }; + o.quantiles = function () { + return i; + }; + o.invertExtent = function (t) { + return (t = r.indexOf(t)) < 0 + ? [NaN, NaN] + : [0 < t ? i[t - 1] : n[0], t < i.length ? i[t] : n[n.length - 1]]; + }; + o.copy = function () { + return t(n, r); + }; + return e(); + })([], []); + }), + (_.scale.quantize = function () { + return (function t(e, n, r) { + var i, o; + function a(t) { + return r[Math.max(0, Math.min(o, Math.floor(i * (t - e))))]; + } + function s() { + return (i = r.length / (n - e)), (o = r.length - 1), a; + } + a.domain = function (t) { + return arguments.length ? ((e = +t[0]), (n = +t[t.length - 1]), s()) : [e, n]; + }; + a.range = function (t) { + return arguments.length ? ((r = t), s()) : r; + }; + a.invertExtent = function (t) { + return [(t = (t = r.indexOf(t)) < 0 ? NaN : t / i + e), t + 1 / i]; + }; + a.copy = function () { + return t(e, n, r); + }; + return s(); + })(0, 1, [0, 1]); + }), + (_.scale.threshold = function () { + return (function t(e, n) { + function r(t) { + if (t <= t) return n[_.bisect(e, t)]; + } + r.domain = function (t) { + return arguments.length ? ((e = t), r) : e; + }; + r.range = function (t) { + return arguments.length ? ((n = t), r) : n; + }; + r.invertExtent = function (t) { + return (t = n.indexOf(t)), [e[t - 1], e[t]]; + }; + r.copy = function () { + return t(e, n); + }; + return r; + })([0.5], [0, 1]); + }), + (_.scale.identity = function () { + return (function t(n) { + function e(t) { + return +t; + } + e.invert = e; + e.domain = e.range = function (t) { + return arguments.length ? ((n = t.map(e)), e) : n; + }; + e.ticks = function (t) { + return Ua(n, t); + }; + e.tickFormat = function (t, e) { + return Na(n, t, e); + }; + e.copy = function () { + return t(n); + }; + return e; + })([0, 1]); + }), + (_.svg = {}), + (_.svg.arc = function () { + var B = Ja, + C = Ka, + x = qa, + I = Wa, + M = Za, + D = Xa, + S = $a; + function e() { + var t = Math.max(0, +B.apply(this, arguments)), + e = Math.max(0, +C.apply(this, arguments)), + n = M.apply(this, arguments) - U, + r = D.apply(this, arguments) - U, + i = Math.abs(r - n), + o = r < n ? 0 : 1; + if ((e < t && ((a = e), (e = t), (t = a)), Wt <= i)) + return k(e, o) + (t ? k(t, 1 - o) : '') + 'Z'; + var a, + s, + l, + u, + c, + A, + h, + p, + d, + f, + g, + m, + v, + b, + y = 0, + w = 0, + E = []; + return ( + (b = (+S.apply(this, arguments) || 0) / 2) && + ((m = I === Wa ? Math.sqrt(t * t + e * e) : +I.apply(this, arguments)), + o || (w *= -1), + e && (w = Xt((m / e) * Math.sin(b))), + t && (y = Xt((m / t) * Math.sin(b)))), + e + ? ((u = e * Math.cos(n + w)), + (c = e * Math.sin(n + w)), + (A = e * Math.cos(r - w)), + (s = e * Math.sin(r - w)), + (l = Math.abs(r - n - 2 * w) <= R ? 0 : 1), + w && + (ts(u, c, A, s) === o) ^ l && + ((m = (n + r) / 2), + (u = e * Math.cos(m)), + (c = e * Math.sin(m)), + (A = s = null))) + : (u = c = 0), + t + ? ((d = t * Math.cos(r - y)), + (f = t * Math.sin(r - y)), + (g = t * Math.cos(n + y)), + (h = t * Math.sin(n + y)), + (p = Math.abs(n - r + 2 * y) <= R ? 0 : 1), + y && + (ts(d, f, g, h) === 1 - o) ^ p && + ((b = (n + r) / 2), + (d = t * Math.cos(b)), + (f = t * Math.sin(b)), + (g = h = null))) + : (d = f = 0), + Q < i && 0.001 < (a = Math.min(Math.abs(e - t) / 2, +x.apply(this, arguments))) + ? ((w = (t < e) ^ o ? 0 : 1), + (y = m = a), + i < R && + ((r = + u - + (n = + null == g + ? [d, f] + : null == A + ? [u, c] + : Ii([u, c], [g, h], [A, s], [d, f]))[0]), + (b = c - n[1]), + (i = A - n[0]), + (v = s - n[1]), + (r = + 1 / + Math.sin( + Math.acos( + (r * i + b * v) / + (Math.sqrt(r * r + b * b) * Math.sqrt(i * i + v * v)), + ) / 2, + )), + (b = Math.sqrt(n[0] * n[0] + n[1] * n[1])), + (y = Math.min(a, (t - b) / (r - 1))), + (m = Math.min(a, (e - b) / (1 + r)))), + null != A + ? ((i = es(null == g ? [d, f] : [g, h], [u, c], e, m, o)), + (v = es([A, s], [d, f], e, m, o)), + a === m + ? E.push( + 'M', + i[0], + 'A', + m, + ',', + m, + ' 0 0,', + w, + ' ', + i[1], + 'A', + e, + ',', + e, + ' 0 ', + (1 - o) ^ ts(i[1][0], i[1][1], v[1][0], v[1][1]), + ',', + o, + ' ', + v[1], + 'A', + m, + ',', + m, + ' 0 0,', + w, + ' ', + v[0], + ) + : E.push('M', i[0], 'A', m, ',', m, ' 0 1,', w, ' ', v[0])) + : E.push('M', u, ',', c), + null != g + ? ((n = es([u, c], [g, h], t, -y, o)), + (b = es([d, f], null == A ? [u, c] : [A, s], t, -y, o)), + a === y + ? E.push( + 'L', + b[0], + 'A', + y, + ',', + y, + ' 0 0,', + w, + ' ', + b[1], + 'A', + t, + ',', + t, + ' 0 ', + o ^ ts(b[1][0], b[1][1], n[1][0], n[1][1]), + ',', + 1 - o, + ' ', + n[1], + 'A', + y, + ',', + y, + ' 0 0,', + w, + ' ', + n[0], + ) + : E.push('L', b[0], 'A', y, ',', y, ' 0 0,', w, ' ', n[0])) + : E.push('L', d, ',', f)) + : (E.push('M', u, ',', c), + null != A && E.push('A', e, ',', e, ' 0 ', l, ',', o, ' ', A, ',', s), + E.push('L', d, ',', f), + null != g && E.push('A', t, ',', t, ' 0 ', p, ',', 1 - o, ' ', g, ',', h)), + E.push('Z'), + E.join('') + ); + } + function k(t, e) { + return ( + 'M0,' + + t + + 'A' + + t + + ',' + + t + + ' 0 1,' + + e + + ' 0,' + + -t + + 'A' + + t + + ',' + + t + + ' 0 1,' + + e + + ' 0,' + + t + ); + } + return ( + (e.innerRadius = function (t) { + return arguments.length ? ((B = N(t)), e) : B; + }), + (e.outerRadius = function (t) { + return arguments.length ? ((C = N(t)), e) : C; + }), + (e.cornerRadius = function (t) { + return arguments.length ? ((x = N(t)), e) : x; + }), + (e.padRadius = function (t) { + return arguments.length ? ((I = t == Wa ? Wa : N(t)), e) : I; + }), + (e.startAngle = function (t) { + return arguments.length ? ((M = N(t)), e) : M; + }), + (e.endAngle = function (t) { + return arguments.length ? ((D = N(t)), e) : D; + }), + (e.padAngle = function (t) { + return arguments.length ? ((S = N(t)), e) : S; + }), + (e.centroid = function () { + var t = (+B.apply(this, arguments) + +C.apply(this, arguments)) / 2, + e = (+M.apply(this, arguments) + +D.apply(this, arguments)) / 2 - U; + return [Math.cos(e) * t, Math.sin(e) * t]; + }), + e + ); + }); + var Wa = 'auto'; + function Ja(t) { + return t.innerRadius; + } + function Ka(t) { + return t.outerRadius; + } + function Za(t) { + return t.startAngle; + } + function Xa(t) { + return t.endAngle; + } + function $a(t) { + return t && t.padAngle; + } + function ts(t, e, n, r) { + return 0 < (t - n) * e - (e - r) * t ? 0 : 1; + } + function es(t, e, n, r, i) { + var o = t[0] - e[0], + a = t[1] - e[1], + i = (i ? r : -r) / Math.sqrt(o * o + a * a), + a = i * a, + i = -i * o, + o = t[0] + a, + t = t[1] + i, + s = e[0] + a, + e = e[1] + i, + l = (o + s) / 2, + u = (t + e) / 2, + c = s - o, + A = e - t, + h = c * c + A * A, + r = n - r, + o = o * e - s * t, + e = (A < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * h - o * o)), + s = (o * A - c * e) / h, + t = (-o * c - A * e) / h, + p = (o * A + c * e) / h, + o = (-o * c + A * e) / h, + c = s - l, + A = t - u, + e = p - l, + h = o - u; + return ( + e * e + h * h < c * c + A * A && ((s = p), (t = o)), + [ + [s - a, t - i], + [(s * n) / r, (t * n) / r], + ] + ); + } + function ns(u) { + var c = yi, + A = wi, + h = hr, + p = D, + e = p.key, + d = 0.7; + function n(t) { + var e, + n = [], + r = [], + i = -1, + o = t.length, + a = N(c), + s = N(A); + function l() { + n.push('M', p(u(r), d)); + } + for (; ++i < o; ) + h.call(this, (e = t[i]), i) + ? r.push([+a.call(this, e, i), +s.call(this, e, i)]) + : r.length && (l(), (r = [])); + return r.length && l(), n.length ? n.join('') : null; + } + return ( + (n.x = function (t) { + return arguments.length ? ((c = t), n) : c; + }), + (n.y = function (t) { + return arguments.length ? ((A = t), n) : A; + }), + (n.defined = function (t) { + return arguments.length ? ((h = t), n) : h; + }), + (n.interpolate = function (t) { + return arguments.length + ? ((e = 'function' == typeof t ? (p = t) : (p = rs.get(t) || D).key), n) + : e; + }), + (n.tension = function (t) { + return arguments.length ? ((d = t), n) : d; + }), + n + ); + } + _.svg.line = function () { + return ns(k); + }; + var rs = _.map({ + linear: D, + 'linear-closed': is, + step: function (t) { + var e = 0, + n = t.length, + r = t[0], + i = [r[0], ',', r[1]]; + for (; ++e < n; ) i.push('H', (r[0] + (r = t[e])[0]) / 2, 'V', r[1]); + 1 < n && i.push('H', r[0]); + return i.join(''); + }, + 'step-before': os, + 'step-after': as, + basis: us, + 'basis-open': function (t) { + if (t.length < 4) return D(t); + var e, + n = [], + r = -1, + i = t.length, + o = [0], + a = [0]; + for (; ++r < 3; ) (e = t[r]), o.push(e[0]), a.push(e[1]); + n.push(y(hs, o) + ',' + y(hs, a)), --r; + for (; ++r < i; ) + (e = t[r]), o.shift(), o.push(e[0]), a.shift(), a.push(e[1]), ps(n, o, a); + return n.join(''); + }, + 'basis-closed': function (t) { + var e, + n, + r = -1, + i = t.length, + o = i + 4, + a = [], + s = []; + for (; ++r < 4; ) (n = t[r % i]), a.push(n[0]), s.push(n[1]); + (e = [y(hs, a), ',', y(hs, s)]), --r; + for (; ++r < o; ) + (n = t[r % i]), a.shift(), a.push(n[0]), s.shift(), s.push(n[1]), ps(e, a, s); + return e.join(''); + }, + bundle: function (t, e) { + var n = t.length - 1; + if (n) + for ( + var r, i, o = t[0][0], a = t[0][1], s = t[n][0] - o, l = t[n][1] - a, u = -1; + ++u <= n; + + ) + (r = t[u]), + (i = u / n), + (r[0] = e * r[0] + (1 - e) * (o + i * s)), + (r[1] = e * r[1] + (1 - e) * (a + i * l)); + return us(t); + }, + cardinal: function (t, e) { + return t.length < 3 ? D(t) : t[0] + ss(t, ls(t, e)); + }, + 'cardinal-open': function (t, e) { + return t.length < 4 ? D(t) : t[1] + ss(t.slice(1, -1), ls(t, e)); + }, + 'cardinal-closed': function (t, e) { + return t.length < 3 + ? is(t) + : t[0] + ss((t.push(t[0]), t), ls([t[t.length - 2]].concat(t, [t[1]]), e)); + }, + monotone: function (t) { + return t.length < 3 + ? D(t) + : t[0] + + ss( + t, + (function (t) { + var e, + n, + r, + i, + o = [], + a = (function (t) { + var e = 0, + n = t.length - 1, + r = [], + i = t[0], + o = t[1], + a = (r[0] = ds(i, o)); + for (; ++e < n; ) r[e] = (a + (a = ds((i = o), (o = t[e + 1])))) / 2; + return (r[e] = a), r; + })(t), + s = -1, + l = t.length - 1; + for (; ++s < l; ) + (e = ds(t[s], t[s + 1])), + F(e) < Q + ? (a[s] = a[s + 1] = 0) + : ((n = a[s] / e), + (r = a[s + 1] / e), + 9 < (i = n * n + r * r) && + ((i = (3 * e) / Math.sqrt(i)), + (a[s] = i * n), + (a[s + 1] = i * r))); + s = -1; + for (; ++s <= l; ) + (i = + (t[Math.min(l, s + 1)][0] - t[Math.max(0, s - 1)][0]) / + (6 * (1 + a[s] * a[s]))), + o.push([i || 0, a[s] * i || 0]); + return o; + })(t), + ); + }, + }); + function D(t) { + return 1 < t.length ? t.join('L') : t + 'Z'; + } + function is(t) { + return t.join('L') + 'Z'; + } + function os(t) { + for (var e = 0, n = t.length, r = t[0], i = [r[0], ',', r[1]]; ++e < n; ) + i.push('V', (r = t[e])[1], 'H', r[0]); + return i.join(''); + } + function as(t) { + for (var e = 0, n = t.length, r = t[0], i = [r[0], ',', r[1]]; ++e < n; ) + i.push('H', (r = t[e])[0], 'V', r[1]); + return i.join(''); + } + function ss(t, e) { + if (e.length < 1 || (t.length != e.length && t.length != e.length + 2)) return D(t); + var n = t.length != e.length, + r = '', + i = t[0], + o = t[1], + a = e[0], + s = a, + l = 1; + if ( + (n && + ((r += + 'Q' + + (o[0] - (2 * a[0]) / 3) + + ',' + + (o[1] - (2 * a[1]) / 3) + + ',' + + o[0] + + ',' + + o[1]), + (i = t[1]), + (l = 2)), + 1 < e.length) + ) { + (s = e[1]), + (o = t[l]), + l++, + (r += + 'C' + + (i[0] + a[0]) + + ',' + + (i[1] + a[1]) + + ',' + + (o[0] - s[0]) + + ',' + + (o[1] - s[1]) + + ',' + + o[0] + + ',' + + o[1]); + for (var u = 2; u < e.length; u++, l++) + (o = t[l]), + (s = e[u]), + (r += 'S' + (o[0] - s[0]) + ',' + (o[1] - s[1]) + ',' + o[0] + ',' + o[1]); + } + return ( + n && + ((i = t[l]), + (r += + 'Q' + + (o[0] + (2 * s[0]) / 3) + + ',' + + (o[1] + (2 * s[1]) / 3) + + ',' + + i[0] + + ',' + + i[1])), + r + ); + } + function ls(t, e) { + for ( + var n, r = [], i = (1 - e) / 2, o = t[0], a = t[1], s = 1, l = t.length; + ++s < l; + + ) + (n = o), (o = a), (a = t[s]), r.push([i * (a[0] - n[0]), i * (a[1] - n[1])]); + return r; + } + function us(t) { + if (t.length < 3) return D(t); + var e = 1, + n = t.length, + r = t[0], + i = r[0], + o = r[1], + a = [i, i, i, (r = t[1])[0]], + s = [o, o, o, r[1]], + l = [i, ',', o, 'L', y(hs, a), ',', y(hs, s)]; + for (t.push(t[n - 1]); ++e <= n; ) + (r = t[e]), a.shift(), a.push(r[0]), s.shift(), s.push(r[1]), ps(l, a, s); + return t.pop(), l.push('L', r), l.join(''); + } + function y(t, e) { + return t[0] * e[0] + t[1] * e[1] + t[2] * e[2] + t[3] * e[3]; + } + rs.forEach(function (t, e) { + (e.key = t), (e.closed = /-closed$/.test(t)); + }); + var cs = [0, 2 / 3, 1 / 3, 0], + As = [0, 1 / 3, 2 / 3, 0], + hs = [0, 1 / 6, 2 / 3, 1 / 6]; + function ps(t, e, n) { + t.push( + 'C', + y(cs, e), + ',', + y(cs, n), + ',', + y(As, e), + ',', + y(As, n), + ',', + y(hs, e), + ',', + y(hs, n), + ); + } + function ds(t, e) { + return (e[1] - t[1]) / (e[0] - t[0]); + } + function fs(t) { + for (var e, n, r, i = -1, o = t.length; ++i < o; ) + (n = (e = t[i])[0]), + (r = e[1] - U), + (e[0] = n * Math.cos(r)), + (e[1] = n * Math.sin(r)); + return t; + } + function gs(d) { + var f = yi, + g = yi, + m = 0, + v = wi, + b = hr, + y = D, + e = y.key, + w = y, + E = 'L', + B = 0.7; + function n(t) { + var e, + n, + r, + i = [], + o = [], + a = [], + s = -1, + l = t.length, + u = N(f), + c = N(m), + A = + f === g + ? function () { + return n; + } + : N(g), + h = + m === v + ? function () { + return r; + } + : N(v); + function p() { + i.push('M', y(d(a), B), E, w(d(o.reverse()), B), 'Z'); + } + for (; ++s < l; ) + b.call(this, (e = t[s]), s) + ? (o.push([(n = +u.call(this, e, s)), (r = +c.call(this, e, s))]), + a.push([+A.call(this, e, s), +h.call(this, e, s)])) + : o.length && (p(), (o = []), (a = [])); + return o.length && p(), i.length ? i.join('') : null; + } + return ( + (n.x = function (t) { + return arguments.length ? ((f = g = t), n) : g; + }), + (n.x0 = function (t) { + return arguments.length ? ((f = t), n) : f; + }), + (n.x1 = function (t) { + return arguments.length ? ((g = t), n) : g; + }), + (n.y = function (t) { + return arguments.length ? ((m = v = t), n) : v; + }), + (n.y0 = function (t) { + return arguments.length ? ((m = t), n) : m; + }), + (n.y1 = function (t) { + return arguments.length ? ((v = t), n) : v; + }), + (n.defined = function (t) { + return arguments.length ? ((b = t), n) : b; + }), + (n.interpolate = function (t) { + return arguments.length + ? ((e = 'function' == typeof t ? (y = t) : (y = rs.get(t) || D).key), + (w = y.reverse || y), + (E = y.closed ? 'M' : 'L'), + n) + : e; + }), + (n.tension = function (t) { + return arguments.length ? ((B = t), n) : B; + }), + n + ); + } + function ms(t) { + return t.radius; + } + function vs(t) { + return [t.x, t.y]; + } + function bs() { + return 64; + } + function ys() { + return 'circle'; + } + function ws(t) { + t = Math.sqrt(t / R); + return ( + 'M0,' + + t + + 'A' + + t + + ',' + + t + + ' 0 1,1 0,' + + -t + + 'A' + + t + + ',' + + t + + ' 0 1,1 0,' + + t + + 'Z' + ); + } + (_.svg.line.radial = function () { + var t = ns(fs); + return (t.radius = t.x), delete t.x, (t.angle = t.y), delete t.y, t; + }), + ((os.reverse = as).reverse = os), + (_.svg.area = function () { + return gs(k); + }), + (_.svg.area.radial = function () { + var t = gs(fs); + return ( + (t.radius = t.x), + delete t.x, + (t.innerRadius = t.x0), + delete t.x0, + (t.outerRadius = t.x1), + delete t.x1, + (t.angle = t.y), + delete t.y, + (t.startAngle = t.y0), + delete t.y0, + (t.endAngle = t.y1), + delete t.y1, + t + ); + }), + (_.svg.chord = function () { + var i = ai, + o = si, + a = ms, + s = Za, + l = Xa; + function e(t, e) { + var n, + r = u(this, i, t, e), + t = u(this, o, t, e); + return ( + 'M' + + r.p0 + + c(r.r, r.p1, r.a1 - r.a0) + + ((e = t), + (n = r).a0 == e.a0 && n.a1 == e.a1 + ? A(r.r, r.p1, r.r, r.p0) + : A(r.r, r.p1, t.r, t.p0) + + c(t.r, t.p1, t.a1 - t.a0) + + A(t.r, t.p1, r.r, r.p0)) + + 'Z' + ); + } + function u(t, e, n, r) { + var e = e.call(t, n, r), + n = a.call(t, e, r), + i = s.call(t, e, r) - U, + t = l.call(t, e, r) - U; + return { + r: n, + a0: i, + a1: t, + p0: [n * Math.cos(i), n * Math.sin(i)], + p1: [n * Math.cos(t), n * Math.sin(t)], + }; + } + function c(t, e, n) { + return 'A' + t + ',' + t + ' 0 ' + +(R < n) + ',1 ' + e; + } + function A(t, e, n, r) { + return 'Q 0,0 ' + r; + } + return ( + (e.radius = function (t) { + return arguments.length ? ((a = N(t)), e) : a; + }), + (e.source = function (t) { + return arguments.length ? ((i = N(t)), e) : i; + }), + (e.target = function (t) { + return arguments.length ? ((o = N(t)), e) : o; + }), + (e.startAngle = function (t) { + return arguments.length ? ((s = N(t)), e) : s; + }), + (e.endAngle = function (t) { + return arguments.length ? ((l = N(t)), e) : l; + }), + e + ); + }), + (_.svg.diagonal = function () { + var r = ai, + i = si, + o = vs; + function e(t, e) { + var n = r.call(this, t, e), + t = i.call(this, t, e), + e = (n.y + t.y) / 2, + n = [n, { x: n.x, y: e }, { x: t.x, y: e }, t]; + return 'M' + (n = n.map(o))[0] + 'C' + n[1] + ' ' + n[2] + ' ' + n[3]; + } + return ( + (e.source = function (t) { + return arguments.length ? ((r = N(t)), e) : r; + }), + (e.target = function (t) { + return arguments.length ? ((i = N(t)), e) : i; + }), + (e.projection = function (t) { + return arguments.length ? ((o = t), e) : o; + }), + e + ); + }), + (_.svg.diagonal.radial = function () { + var t = _.svg.diagonal(), + e = vs, + r = t.projection; + return ( + (t.projection = function (t) { + return arguments.length + ? r( + ((n = e = t), + function () { + var t = n.apply(this, arguments), + e = t[0], + t = t[1] - U; + return [e * Math.cos(t), e * Math.sin(t)]; + }), + ) + : e; + var n; + }), + t + ); + }), + (_.svg.symbol = function () { + var n = ys, + r = bs; + function e(t, e) { + return (Es.get(n.call(this, t, e)) || ws)(r.call(this, t, e)); + } + return ( + (e.type = function (t) { + return arguments.length ? ((n = N(t)), e) : n; + }), + (e.size = function (t) { + return arguments.length ? ((r = N(t)), e) : r; + }), + e + ); + }); + var Es = _.map({ + circle: ws, + cross: function (t) { + t = Math.sqrt(t / 5) / 2; + return ( + 'M' + + -3 * t + + ',' + + -t + + 'H' + + -t + + 'V' + + -3 * t + + 'H' + + t + + 'V' + + -t + + 'H' + + 3 * t + + 'V' + + t + + 'H' + + t + + 'V' + + 3 * t + + 'H' + + -t + + 'V' + + t + + 'H' + + -3 * t + + 'Z' + ); + }, + diamond: function (t) { + var t = Math.sqrt(t / (2 * Cs)), + e = t * Cs; + return 'M0,' + -t + 'L' + e + ',0 0,' + t + ' ' + -e + ',0Z'; + }, + square: function (t) { + t = Math.sqrt(t) / 2; + return ( + 'M' + + -t + + ',' + + -t + + 'L' + + t + + ',' + + -t + + ' ' + + t + + ',' + + t + + ' ' + + -t + + ',' + + t + + 'Z' + ); + }, + 'triangle-down': function (t) { + var t = Math.sqrt(t / Bs), + e = (t * Bs) / 2; + return 'M0,' + e + 'L' + t + ',' + -e + ' ' + -t + ',' + -e + 'Z'; + }, + 'triangle-up': function (t) { + var t = Math.sqrt(t / Bs), + e = (t * Bs) / 2; + return 'M0,' + -e + 'L' + t + ',' + e + ' ' + -t + ',' + e + 'Z'; + }, + }), + Bs = ((_.svg.symbolTypes = Es.keys()), Math.sqrt(3)), + Cs = Math.tan(30 * C), + xs = + ((r.transition = function (t) { + for ( + var e, + n, + r = Ds || ++ks, + i = _s(t), + o = [], + a = Ss || { time: Date.now(), ease: Co, delay: 0, duration: 250 }, + s = -1, + l = this.length; + ++s < l; + + ) { + o.push((e = [])); + for (var u = this[s], c = -1, A = u.length; ++c < A; ) + (n = u[c]) && Ts(n, c, i, r, a), e.push(n); + } + return Ms(o, i, r); + }), + (r.interrupt = function (t) { + return this.each(null == t ? xs : Is(_s(t))); + }), + Is(_s())); + function Is(r) { + return function () { + var t, e, n; + (t = this[r]) && + (n = t[(e = t.active)]) && + ((n.timer.c = null), + (n.timer.t = NaN), + --t.count ? delete t[e] : delete this[r], + (t.active += 0.5), + n.event && n.event.interrupt.call(this, this.__data__, n.index)); + }; + } + function Ms(t, e, n) { + return pt(t, w), (t.namespace = e), (t.id = n), t; + } + var Ds, + Ss, + w = [], + ks = 0; + function Fs(t, r, i, o) { + var a = t.id, + s = t.namespace; + return Tt( + t, + 'function' == typeof i + ? function (t, e, n) { + t[s][a].tween.set(r, o(i.call(t, t.__data__, e, n))); + } + : ((i = o(i)), + function (t) { + t[s][a].tween.set(r, i); + }), + ); + } + function Qs(t) { + return ( + null == t && (t = ''), + function () { + this.textContent = t; + } + ); + } + function _s(t) { + return null == t ? '__transition__' : '__transition_' + t + '__'; + } + function Ts(o, a, r, s, t) { + var l, + u, + c, + A, + h, + p = o[r] || (o[r] = { active: 0, count: 0 }), + d = p[s]; + function n(t) { + var e, + n, + r = p.active, + i = p[r]; + for (e in (i && + ((i.timer.c = null), + (i.timer.t = NaN), + --p.count, + delete p[r], + i.event && i.event.interrupt.call(o, o.__data__, i.index)), + p)) + +e < s && + (((n = p[e]).timer.c = null), (n.timer.t = NaN), --p.count, delete p[e]); + (u.c = f), + Te( + function () { + return u.c && f(t || 1) && ((u.c = null), (u.t = NaN)), 1; + }, + 0, + l, + ), + (p.active = s), + d.event && d.event.start.call(o, o.__data__, a), + (h = []), + d.tween.forEach(function (t, e) { + (e = e.call(o, o.__data__, a)) && h.push(e); + }), + (A = d.ease), + (c = d.duration); + } + function f(t) { + for (var t = t / c, e = A(t), n = h.length; 0 < n; ) h[--n].call(o, e); + if (1 <= t) + return ( + d.event && d.event.end.call(o, o.__data__, a), + --p.count ? delete p[s] : delete o[r], + 1 + ); + } + d || + ((l = t.time), + (u = Te( + function (t) { + var e = d.delay; + if (((u.t = e + l), e <= t)) return n(t - e); + u.c = n; + }, + 0, + l, + )), + (d = p[s] = + { + tween: new W(), + time: l, + timer: u, + delay: t.delay, + duration: t.duration, + ease: t.ease, + index: a, + }), + (t = null), + ++p.count); + } + (w.call = r.call), + (w.empty = r.empty), + (w.node = r.node), + (w.size = r.size), + (_.transition = function (t, e) { + return t && t.transition ? (Ds ? t.transition(e) : t) : _.selection().transition(t); + }), + ((_.transition.prototype = w).select = function (t) { + var e, + n, + r, + i = this.id, + o = this.namespace, + a = []; + t = vt(t); + for (var s = -1, l = this.length; ++s < l; ) { + a.push((e = [])); + for (var u = this[s], c = -1, A = u.length; ++c < A; ) + (r = u[c]) && (n = t.call(r, r.__data__, c, s)) + ? ('__data__' in r && (n.__data__ = r.__data__), + Ts(n, c, o, i, r[o][i]), + e.push(n)) + : e.push(null); + } + return Ms(a, o, i); + }), + (w.selectAll = function (t) { + var e, + n, + r, + i, + o, + a = this.id, + s = this.namespace, + l = []; + t = bt(t); + for (var u = -1, c = this.length; ++u < c; ) + for (var A = this[u], h = -1, p = A.length; ++h < p; ) + if ((r = A[h])) { + (o = r[s][a]), (n = t.call(r, r.__data__, h, u)), l.push((e = [])); + for (var d = -1, f = n.length; ++d < f; ) + (i = n[d]) && Ts(i, d, s, a, o), e.push(i); + } + return Ms(l, s, a); + }), + (w.filter = function (t) { + var e, + n, + r = []; + 'function' != typeof t && (t = _t(t)); + for (var i = 0, o = this.length; i < o; i++) { + r.push((e = [])); + for (var a, s = 0, l = (a = this[i]).length; s < l; s++) + (n = a[s]) && t.call(n, n.__data__, s, i) && e.push(n); + } + return Ms(r, this.namespace, this.id); + }), + (w.tween = function (e, n) { + var r = this.id, + i = this.namespace; + return arguments.length < 2 + ? this.node()[i][r].tween.get(e) + : Tt( + this, + null == n + ? function (t) { + t[i][r].tween.remove(e); + } + : function (t) { + t[i][r].tween.set(e, n); + }, + ); + }), + (w.attr = function (t, e) { + if (arguments.length < 2) { + for (e in t) this.attr(e, t[e]); + return this; + } + var r = 'transform' == t ? Ro : fo, + i = _.ns.qualify(t); + function o() { + this.removeAttribute(i); + } + function a() { + this.removeAttributeNS(i.space, i.local); + } + return Fs( + this, + 'attr.' + t, + e, + i.local + ? function (n) { + return null == n + ? a + : ((n += ''), + function () { + var e, + t = this.getAttributeNS(i.space, i.local); + return ( + t !== n && + ((e = r(t, n)), + function (t) { + this.setAttributeNS(i.space, i.local, e(t)); + }) + ); + }); + } + : function (n) { + return null == n + ? o + : ((n += ''), + function () { + var e, + t = this.getAttribute(i); + return ( + t !== n && + ((e = r(t, n)), + function (t) { + this.setAttribute(i, e(t)); + }) + ); + }); + }, + ); + }), + (w.attrTween = function (t, r) { + var i = _.ns.qualify(t); + return this.tween( + 'attr.' + t, + i.local + ? function (t, e) { + var n = r.call(this, t, e, this.getAttributeNS(i.space, i.local)); + return ( + n && + function (t) { + this.setAttributeNS(i.space, i.local, n(t)); + } + ); + } + : function (t, e) { + var n = r.call(this, t, e, this.getAttribute(i)); + return ( + n && + function (t) { + this.setAttribute(i, n(t)); + } + ); + }, + ); + }), + (w.style = function (r, t, i) { + var e = arguments.length; + if (e < 3) { + if ('string' != typeof r) { + for (i in (e < 2 && (t = ''), r)) this.style(i, r[i], t); + return this; + } + i = ''; + } + function o() { + this.style.removeProperty(r); + } + return Fs(this, 'style.' + r, t, function (n) { + return null == n + ? o + : ((n += ''), + function () { + var e, + t = L(this).getComputedStyle(this, null).getPropertyValue(r); + return ( + t !== n && + ((e = fo(t, n)), + function (t) { + this.style.setProperty(r, e(t), i); + }) + ); + }); + }); + }), + (w.styleTween = function (r, i, o) { + return ( + arguments.length < 3 && (o = ''), + this.tween('style.' + r, function (t, e) { + var n = i.call( + this, + t, + e, + L(this).getComputedStyle(this, null).getPropertyValue(r), + ); + return ( + n && + function (t) { + this.style.setProperty(r, n(t), o); + } + ); + }) + ); + }), + (w.text = function (t) { + return Fs(this, 'text', t, Qs); + }), + (w.remove = function () { + var e = this.namespace; + return this.each('end.transition', function () { + var t; + this[e].count < 2 && (t = this.parentNode) && t.removeChild(this); + }); + }), + (w.ease = function (e) { + var n = this.id, + r = this.namespace; + return arguments.length < 1 + ? this.node()[r][n].ease + : ('function' != typeof e && (e = _.ease.apply(_, arguments)), + Tt(this, function (t) { + t[r][n].ease = e; + })); + }), + (w.delay = function (r) { + var i = this.id, + o = this.namespace; + return arguments.length < 1 + ? this.node()[o][i].delay + : Tt( + this, + 'function' == typeof r + ? function (t, e, n) { + t[o][i].delay = +r.call(t, t.__data__, e, n); + } + : ((r = +r), + function (t) { + t[o][i].delay = r; + }), + ); + }), + (w.duration = function (r) { + var i = this.id, + o = this.namespace; + return arguments.length < 1 + ? this.node()[o][i].duration + : Tt( + this, + 'function' == typeof r + ? function (t, e, n) { + t[o][i].duration = Math.max(1, r.call(t, t.__data__, e, n)); + } + : ((r = Math.max(1, r)), + function (t) { + t[o][i].duration = r; + }), + ); + }), + (w.each = function (r, e) { + var i = this.id, + o = this.namespace; + if (arguments.length < 2) { + var t = Ss, + n = Ds; + try { + (Ds = i), + Tt(this, function (t, e, n) { + (Ss = t[o][i]), r.call(t, t.__data__, e, n); + }); + } finally { + (Ss = t), (Ds = n); + } + } else + Tt(this, function (t) { + t = t[o][i]; + (t.event || (t.event = _.dispatch('start', 'end', 'interrupt'))).on(r, e); + }); + return this; + }), + (w.transition = function () { + for ( + var t, + e, + n, + r = this.id, + i = ++ks, + o = this.namespace, + a = [], + s = 0, + l = this.length; + s < l; + s++ + ) { + a.push((t = [])); + for (var u, c = 0, A = (u = this[s]).length; c < A; c++) + (e = u[c]) && + Ts(e, c, o, i, { + time: (n = e[o][r]).time, + ease: n.ease, + delay: n.delay + n.duration, + duration: n.duration, + }), + t.push(e); + } + return Ms(a, o, i); + }), + (_.svg.axis = function () { + var w, + E = _.scale.linear(), + B = Rs, + C = 6, + x = 6, + I = 3, + M = [10], + D = null; + function n(t) { + t.each(function () { + var t, + e, + n, + r, + i, + o, + a, + s = _.select(this), + l = this.__chart__ || E, + u = (this.__chart__ = E.copy()), + c = null == D ? (u.ticks ? u.ticks.apply(u, M) : u.domain()) : D, + A = null == w ? (u.tickFormat ? u.tickFormat.apply(u, M) : k) : w, + c = s.selectAll('.tick').data(c, u), + h = c + .enter() + .insert('g', '.domain') + .attr('class', 'tick') + .style('opacity', Q), + p = _.transition(c.exit()).style('opacity', Q).remove(), + d = _.transition(c.order()).style('opacity', 1), + f = Math.max(C, 0) + I, + g = Ma(u), + s = s.selectAll('.domain').data([0]), + s = (s.enter().append('path').attr('class', 'domain'), _.transition(s)), + m = (h.append('line'), h.append('text'), h.select('line')), + v = d.select('line'), + c = c.select('text').text(A), + A = h.select('text'), + b = d.select('text'), + y = 'top' === B || 'left' === B ? -1 : 1; + 'bottom' === B || 'top' === B + ? ((t = Ns), + (e = 'x'), + (r = 'y'), + (n = 'x2'), + (i = 'y2'), + c.attr('dy', y < 0 ? '0em' : '.71em').style('text-anchor', 'middle'), + s.attr('d', 'M' + g[0] + ',' + y * x + 'V0H' + g[1] + 'V' + y * x)) + : ((t = Ps), + (e = 'y'), + (r = 'x'), + (n = 'y2'), + (i = 'x2'), + c.attr('dy', '.32em').style('text-anchor', y < 0 ? 'end' : 'start'), + s.attr('d', 'M' + y * x + ',' + g[0] + 'H0V' + g[1] + 'H' + y * x)), + m.attr(i, y * C), + A.attr(r, y * f), + v.attr(n, 0).attr(i, y * C), + b.attr(e, 0).attr(r, y * f), + u.rangeBand + ? ((a = (o = u).rangeBand() / 2), + (l = u = + function (t) { + return o(t) + a; + })) + : l.rangeBand + ? (l = u) + : p.call(t, u, l), + h.call(t, l, u), + d.call(t, u, u); + }); + } + return ( + (n.scale = function (t) { + return arguments.length ? ((E = t), n) : E; + }), + (n.orient = function (t) { + return arguments.length ? ((B = t in Us ? t + '' : Rs), n) : B; + }), + (n.ticks = function () { + return arguments.length ? ((M = h(arguments)), n) : M; + }), + (n.tickValues = function (t) { + return arguments.length ? ((D = t), n) : D; + }), + (n.tickFormat = function (t) { + return arguments.length ? ((w = t), n) : w; + }), + (n.tickSize = function (t) { + var e = arguments.length; + return e ? ((C = +t), (x = +arguments[e - 1]), n) : C; + }), + (n.innerTickSize = function (t) { + return arguments.length ? ((C = +t), n) : C; + }), + (n.outerTickSize = function (t) { + return arguments.length ? ((x = +t), n) : x; + }), + (n.tickPadding = function (t) { + return arguments.length ? ((I = +t), n) : I; + }), + (n.tickSubdivide = function () { + return arguments.length && n; + }), + n + ); + }); + var Rs = 'bottom', + Us = { top: 1, right: 1, bottom: 1, left: 1 }; + function Ns(t, n, r) { + t.attr('transform', function (t) { + var e = n(t); + return 'translate(' + (isFinite(e) ? e : r(t)) + ',0)'; + }); + } + function Ps(t, n, r) { + t.attr('transform', function (t) { + var e = n(t); + return 'translate(0,' + (isFinite(e) ? e : r(t)) + ')'; + }); + } + _.svg.brush = function () { + var m, + v, + b = At(I, 'brushstart', 'brush', 'brushend'), + y = null, + w = null, + E = [0, 0], + B = [0, 0], + C = !0, + x = !0, + i = Ys[0]; + function I(t) { + t.each(function () { + var t, + e = _.select(this) + .style('pointer-events', 'all') + .style('-webkit-tap-highlight-color', 'rgba(0,0,0,0)') + .on('mousedown.brush', o) + .on('touchstart.brush', o), + n = e.selectAll('.background').data([0]), + r = + (n + .enter() + .append('rect') + .attr('class', 'background') + .style('visibility', 'hidden') + .style('cursor', 'crosshair'), + e + .selectAll('.extent') + .data([0]) + .enter() + .append('rect') + .attr('class', 'extent') + .style('cursor', 'move'), + e.selectAll('.resize').data(i, k)), + r = + (r.exit().remove(), + r + .enter() + .append('g') + .attr('class', function (t) { + return 'resize ' + t; + }) + .style('cursor', function (t) { + return Ls[t]; + }) + .append('rect') + .attr('x', function (t) { + return /[ew]$/.test(t) ? -3 : null; + }) + .attr('y', function (t) { + return /^[ns]/.test(t) ? -3 : null; + }) + .attr('width', 6) + .attr('height', 6) + .style('visibility', 'hidden'), + r.style('display', I.empty() ? 'none' : null), + _.transition(e)), + e = _.transition(n); + y && ((t = Ma(y)), e.attr('x', t[0]).attr('width', t[1] - t[0]), D(r)), + w && ((t = Ma(w)), e.attr('y', t[0]).attr('height', t[1] - t[0]), S(r)), + M(r); + }); + } + function M(t) { + t.selectAll('.resize').attr('transform', function (t) { + return 'translate(' + E[+/e$/.test(t)] + ',' + B[+/^s/.test(t)] + ')'; + }); + } + function D(t) { + t.select('.extent').attr('x', E[0]), + t.selectAll('.extent,.n>rect,.s>rect').attr('width', E[1] - E[0]); + } + function S(t) { + t.select('.extent').attr('y', B[0]), + t.selectAll('.extent,.e>rect,.w>rect').attr('height', B[1] - B[0]); + } + function o() { + var l, + t, + n, + r = this, + e = _.select(_.event.target), + i = b.of(r, arguments), + o = _.select(r), + a = e.datum(), + s = !/^(n|s)$/.test(a) && y, + u = !/^(e|w)$/.test(a) && w, + c = e.classed('extent'), + A = zt(r), + h = _.mouse(r), + p = _.select(L(r)) + .on('keydown.brush', function () { + 32 == _.event.keyCode && + (c || ((l = null), (h[0] -= E[1]), (h[1] -= B[1]), (c = 2)), ut()); + }) + .on('keyup.brush', function () { + 32 == _.event.keyCode && + 2 == c && + ((h[0] += E[1]), (h[1] += B[1]), (c = 0), ut()); + }); + function d() { + var t = _.mouse(r), + e = !1; + n && ((t[0] += n[0]), (t[1] += n[1])), + c || + (_.event.altKey + ? ((l = l || [(E[0] + E[1]) / 2, (B[0] + B[1]) / 2]), + (h[0] = E[+(t[0] < l[0])]), + (h[1] = B[+(t[1] < l[1])])) + : (l = null)), + s && f(t, y, 0) && (D(o), (e = !0)), + u && f(t, w, 1) && (S(o), (e = !0)), + e && (M(o), i({ type: 'brush', mode: c ? 'move' : 'resize' })); + } + function f(t, e, n) { + var r, + e = Ma(e), + i = e[0], + e = e[1], + o = h[n], + a = n ? B : E, + s = a[1] - a[0]; + return ( + c && ((i -= o), (e -= s + o)), + (t = (n ? x : C) ? Math.max(i, Math.min(e, t[n])) : t[n]), + c + ? (r = (t += o) + s) + : (o = l ? Math.max(i, Math.min(e, 2 * l[n] - t)) : o) < t + ? ((r = t), (t = o)) + : (r = o), + (a[0] != t || a[1] != r) && + (n ? (v = null) : (m = null), (a[0] = t), (a[1] = r), 1) + ); + } + function g() { + d(), + o + .style('pointer-events', 'all') + .selectAll('.resize') + .style('display', I.empty() ? 'none' : null), + _.select('body').style('cursor', null), + p + .on('mousemove.brush', null) + .on('mouseup.brush', null) + .on('touchmove.brush', null) + .on('touchend.brush', null) + .on('keydown.brush', null) + .on('keyup.brush', null), + A(), + i({ type: 'brushend' }); + } + _.event.changedTouches + ? p.on('touchmove.brush', d).on('touchend.brush', g) + : p.on('mousemove.brush', d).on('mouseup.brush', g), + o.interrupt().selectAll('*').interrupt(), + c + ? ((h[0] = E[0] - h[0]), (h[1] = B[0] - h[1])) + : a + ? ((t = +/w$/.test(a)), + (a = +/^n/.test(a)), + (n = [E[1 - t] - h[0], B[1 - a] - h[1]]), + (h[0] = E[t]), + (h[1] = B[a])) + : _.event.altKey && (l = h.slice()), + o.style('pointer-events', 'none').selectAll('.resize').style('display', null), + _.select('body').style('cursor', e.style('cursor')), + i({ type: 'brushstart' }), + d(); + } + return ( + (I.event = function (t) { + t.each(function () { + var r = b.of(this, arguments), + i = { x: E, y: B, i: m, j: v }, + t = this.__chart__ || i; + (this.__chart__ = i), + Ds + ? _.select(this) + .transition() + .each('start.brush', function () { + (m = t.i), (v = t.j), (E = t.x), (B = t.y), r({ type: 'brushstart' }); + }) + .tween('brush:brush', function () { + var e = go(E, i.x), + n = go(B, i.y); + return ( + (m = v = null), + function (t) { + (E = i.x = e(t)), + (B = i.y = n(t)), + r({ type: 'brush', mode: 'resize' }); + } + ); + }) + .each('end.brush', function () { + (m = i.i), + (v = i.j), + r({ type: 'brush', mode: 'resize' }), + r({ type: 'brushend' }); + }) + : (r({ type: 'brushstart' }), + r({ type: 'brush', mode: 'resize' }), + r({ type: 'brushend' })); + }); + }), + (I.x = function (t) { + return arguments.length ? ((i = Ys[(!(y = t) << 1) | !w]), I) : y; + }), + (I.y = function (t) { + return arguments.length ? ((i = Ys[(!y << 1) | !(w = t)]), I) : w; + }), + (I.clamp = function (t) { + return arguments.length + ? (y && w ? ((C = !!t[0]), (x = !!t[1])) : y ? (C = !!t) : w && (x = !!t), I) + : y && w + ? [C, x] + : y + ? C + : w + ? x + : null; + }), + (I.extent = function (t) { + var e, n, r, i, o; + return arguments.length + ? (y && + ((e = t[0]), + (n = t[1]), + w && ((e = e[0]), (n = n[0])), + (m = [e, n]), + y.invert && ((e = y(e)), (n = y(n))), + n < e && ((o = e), (e = n), (n = o)), + (e == E[0] && n == E[1]) || (E = [e, n])), + w && + ((r = t[0]), + (i = t[1]), + y && ((r = r[1]), (i = i[1])), + (v = [r, i]), + w.invert && ((r = w(r)), (i = w(i))), + i < r && ((o = r), (r = i), (i = o)), + (r == B[0] && i == B[1]) || (B = [r, i])), + I) + : (y && + (m + ? ((e = m[0]), (n = m[1])) + : ((e = E[0]), + (n = E[1]), + y.invert && ((e = y.invert(e)), (n = y.invert(n))), + n < e && ((o = e), (e = n), (n = o)))), + w && + (v + ? ((r = v[0]), (i = v[1])) + : ((r = B[0]), + (i = B[1]), + w.invert && ((r = w.invert(r)), (i = w.invert(i))), + i < r && ((o = r), (r = i), (i = o)))), + y && w + ? [ + [e, r], + [n, i], + ] + : y + ? [e, n] + : w && [r, i]); + }), + (I.clear = function () { + return I.empty() || ((E = [0, 0]), (B = [0, 0]), (m = v = null)), I; + }), + (I.empty = function () { + return (!!y && E[0] == E[1]) || (!!w && B[0] == B[1]); + }), + _.rebind(I, b, 'on') + ); + }; + var Ls = { + n: 'ns-resize', + e: 'ew-resize', + s: 'ns-resize', + w: 'ew-resize', + nw: 'nwse-resize', + ne: 'nesw-resize', + se: 'nwse-resize', + sw: 'nesw-resize', + }, + Ys = [['n', 'e', 's', 'w', 'nw', 'ne', 'se', 'sw'], ['e', 'w'], ['n', 's'], []], + e = (E.format = n.timeFormat), + n = e.utc, + Os = n('%Y-%m-%dT%H:%M:%S.%LZ'); + function Gs(t) { + return t.toISOString(); + } + function zs(e, i, t) { + function o(t) { + return e(t); + } + function a(t, e) { + var n = (t[1] - t[0]) / e, + r = _.bisect(js, n); + return r == js.length + ? [ + i.year, + Ra( + t.map(function (t) { + return t / 31536e6; + }), + e, + )[2], + ] + : r + ? i[n / js[r - 1] < js[r] / n ? r - 1 : r] + : [Ws, Ra(t, e)[2]]; + } + return ( + (o.invert = function (t) { + return Hs(e.invert(t)); + }), + (o.domain = function (t) { + return arguments.length ? (e.domain(t), o) : e.domain().map(Hs); + }), + (o.nice = function (e, n) { + var t = o.domain(), + r = Ia(t), + r = null == e ? a(r, 10) : 'number' == typeof e && a(r, e); + function i(t) { + return !isNaN(t) && !e.range(t, Hs(+t + 1), n).length; + } + return ( + r && ((e = r[0]), (n = r[1])), + o.domain( + Sa( + t, + 1 < n + ? { + floor: function (t) { + for (; i((t = e.floor(t))); ) t = Hs(t - 1); + return t; + }, + ceil: function (t) { + for (; i((t = e.ceil(t))); ) t = Hs(+t + 1); + return t; + }, + } + : e, + ), + ) + ); + }), + (o.ticks = function (t, e) { + var n = Ia(o.domain()), + r = + null == t + ? a(n, 10) + : 'number' == typeof t + ? a(n, t) + : !t.range && [{ range: t }, e]; + return r && ((t = r[0]), (e = r[1])), t.range(n[0], Hs(+n[1] + 1), e < 1 ? 1 : e); + }), + (o.tickFormat = function () { + return t; + }), + (o.copy = function () { + return zs(e.copy(), i, t); + }), + _a(o, e) + ); + } + function Hs(t) { + return new Date(t); + } + (e.iso = Date.prototype.toISOString && +new Date('2000-01-01T00:00:00.000Z') ? Gs : Os), + (Gs.parse = function (t) { + t = new Date(t); + return isNaN(t) ? null : t; + }), + (Gs.toString = Os.toString), + (E.second = je( + function (t) { + return new B(1e3 * Math.floor(t / 1e3)); + }, + function (t, e) { + t.setTime(t.getTime() + 1e3 * Math.floor(e)); + }, + function (t) { + return t.getSeconds(); + }, + )), + (E.seconds = E.second.range), + (E.seconds.utc = E.second.utc.range), + (E.minute = je( + function (t) { + return new B(6e4 * Math.floor(t / 6e4)); + }, + function (t, e) { + t.setTime(t.getTime() + 6e4 * Math.floor(e)); + }, + function (t) { + return t.getMinutes(); + }, + )), + (E.minutes = E.minute.range), + (E.minutes.utc = E.minute.utc.range), + (E.hour = je( + function (t) { + var e = t.getTimezoneOffset() / 60; + return new B(36e5 * (Math.floor(t / 36e5 - e) + e)); + }, + function (t, e) { + t.setTime(t.getTime() + 36e5 * Math.floor(e)); + }, + function (t) { + return t.getHours(); + }, + )), + (E.hours = E.hour.range), + (E.hours.utc = E.hour.utc.range), + (E.month = je( + function (t) { + return (t = E.day(t)).setDate(1), t; + }, + function (t, e) { + t.setMonth(t.getMonth() + e); + }, + function (t) { + return t.getMonth(); + }, + )), + (E.months = E.month.range), + (E.months.utc = E.month.utc.range); + var js = [ + 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, + 6048e5, 2592e6, 7776e6, 31536e6, + ], + Vs = [ + [E.second, 1], + [E.second, 5], + [E.second, 15], + [E.second, 30], + [E.minute, 1], + [E.minute, 5], + [E.minute, 15], + [E.minute, 30], + [E.hour, 1], + [E.hour, 3], + [E.hour, 6], + [E.hour, 12], + [E.day, 1], + [E.day, 2], + [E.week, 1], + [E.month, 1], + [E.month, 3], + [E.year, 1], + ], + qs = e.multi([ + [ + '.%L', + function (t) { + return t.getMilliseconds(); + }, + ], + [ + ':%S', + function (t) { + return t.getSeconds(); + }, + ], + [ + '%I:%M', + function (t) { + return t.getMinutes(); + }, + ], + [ + '%I %p', + function (t) { + return t.getHours(); + }, + ], + [ + '%a %d', + function (t) { + return t.getDay() && 1 != t.getDate(); + }, + ], + [ + '%b %d', + function (t) { + return 1 != t.getDate(); + }, + ], + [ + '%B', + function (t) { + return t.getMonth(); + }, + ], + ['%Y', hr], + ]), + Ws = { + range: function (t, e, n) { + return _.range(Math.ceil(t / n) * n, +e, n).map(Hs); + }, + floor: k, + ceil: k, + }, + Js = + ((Vs.year = E.year), + (E.scale = function () { + return zs(_.scale.linear(), Vs, qs); + }), + Vs.map(function (t) { + return [t[0].utc, t[1]]; + })), + Ks = n.multi([ + [ + '.%L', + function (t) { + return t.getUTCMilliseconds(); + }, + ], + [ + ':%S', + function (t) { + return t.getUTCSeconds(); + }, + ], + [ + '%I:%M', + function (t) { + return t.getUTCMinutes(); + }, + ], + [ + '%I %p', + function (t) { + return t.getUTCHours(); + }, + ], + [ + '%a %d', + function (t) { + return t.getUTCDay() && 1 != t.getUTCDate(); + }, + ], + [ + '%b %d', + function (t) { + return 1 != t.getUTCDate(); + }, + ], + [ + '%B', + function (t) { + return t.getUTCMonth(); + }, + ], + ['%Y', hr], + ]); + function Zs(t) { + return JSON.parse(t.responseText); + } + function Xs(t) { + var e = T.createRange(); + return e.selectNode(T.body), e.createContextualFragment(t.responseText); + } + (Js.year = E.year.utc), + (E.scale.utc = function () { + return zs(_.scale.linear(), Js, Ks); + }), + (_.text = Me(function (t) { + return t.responseText; + })), + (_.json = function (t, e) { + return De(t, 'application/json', Zs, e); + }), + (_.html = function (t, e) { + return De(t, 'text/html', Xs, e); + }), + (_.xml = Me(function (t) { + return t.responseXML; + })), + 'object' == typeof $s && $s.exports ? ($s.exports = _) : (this.d3 = _); + })(); + }, + {}, + ], + 34: [ + function (t, e, n) { + var r, i; + (r = this), + (i = function () { + return function e(t, n, r) { + function i(t) { + return String(t); + } + var o = window, + a = 'application/octet-stream', + s = r || a, + l = t, + t = !n && !r && l, + u = document.createElement('a'), + c = o.Blob || o.MozBlob || o.WebKitBlob || i, + A = n || 'download', + c = c.call ? c.bind(o) : Blob; + if ( + ('true' === String(this) && ((s = (l = [l, s])[0]), (l = l[1])), + t && t.length < 2048) + ) { + var h, + A = t.split('/').pop().split('?')[0]; + if (((u.href = t), -1 !== u.href.indexOf(t))) + return ( + (h = new XMLHttpRequest()).open('GET', t, !0), + (h.responseType = 'blob'), + (h.onload = function (t) { + e(t.target.response, A, a); + }), + setTimeout(function () { + h.send(); + }, 0), + h + ); + } + if (/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(l)) { + if (!(2096103.424 < l.length && c !== i)) + return navigator.msSaveBlob ? navigator.msSaveBlob(g(l), A) : m(l); + s = (l = g(l)).type || a; + } else if (/([\x80-\xff])/.test(l)) { + for (var p = 0, d = new Uint8Array(l.length), f = d.length; p < f; ++p) + d[p] = l.charCodeAt(p); + l = new c([d], { type: s }); + } + function g(t) { + for ( + var t = t.split(/[:;,]/), + e = t[1], + n = ('base64' == t[2] ? atob : decodeURIComponent)(t.pop()), + r = n.length, + i = 0, + o = new Uint8Array(r); + i < r; + ++i + ) + o[i] = n.charCodeAt(i); + return new c([o], { type: e }); + } + function m(t, e) { + if ('download' in u) + return ( + (u.href = t), + u.setAttribute('download', A), + (u.className = 'download-js-link'), + (u.innerHTML = 'downloading...'), + (u.style.display = 'none'), + document.body.appendChild(u), + setTimeout(function () { + u.click(), + document.body.removeChild(u), + !0 === e && + setTimeout(function () { + o.URL.revokeObjectURL(u.href); + }, 250); + }, 66), + !0 + ); + if (/(Version)\/(\d+)\.(\d+)(?:\.(\d+))?.*Safari\//.test(navigator.userAgent)) + return ( + /^data:/.test(t) && (t = 'data:' + t.replace(/^data:([\w\/\-\+]+)/, a)), + window.open(t) || + (confirm( + 'Displaying New Document\n\nUse Save As... to download, then click back to return to this page.', + ) && + (location.href = t)), + !0 + ); + var n = document.createElement('iframe'); + document.body.appendChild(n), + !e && /^data:/.test(t) && (t = 'data:' + t.replace(/^data:([\w\/\-\+]+)/, a)), + (n.src = t), + setTimeout(function () { + document.body.removeChild(n); + }, 333); + } + if (((r = l instanceof c ? l : new c([l], { type: s })), navigator.msSaveBlob)) + return navigator.msSaveBlob(r, A); + if (o.URL) m(o.URL.createObjectURL(r), !0); + else { + if ('string' == typeof r || r.constructor === i) + try { + return m('data:' + s + ';base64,' + o.btoa(r)); + } catch (t) { + return m('data:' + s + ',' + encodeURIComponent(r)); + } + ((n = new FileReader()).onload = function (t) { + m(this.result); + }), + n.readAsDataURL(r); + } + return !0; + }; + }), + 'object' == typeof n ? (e.exports = i()) : (r.download = i()); + }, + {}, + ], + 35: [ + function (t, e, n) { + function r() { + (this._events = this._events || {}), + (this._maxListeners = this._maxListeners || void 0); + } + function l(t) { + return 'function' == typeof t; + } + function u(t) { + return 'object' == typeof t && null !== t; + } + function c(t) { + return void 0 === t; + } + (((e.exports = r).EventEmitter = r).prototype._events = void 0), + (r.prototype._maxListeners = void 0), + (r.defaultMaxListeners = 10), + (r.prototype.setMaxListeners = function (t) { + if ('number' != typeof t || t < 0 || isNaN(t)) + throw TypeError('n must be a positive number'); + return (this._maxListeners = t), this; + }), + (r.prototype.emit = function (t) { + var e, n, r, i, o, a, s; + if ( + (this._events || (this._events = {}), 'error' === t) && + (!this._events.error || (u(this._events.error) && !this._events.error.length)) + ) + throw (s = arguments[1]) instanceof Error + ? s + : (((a = new Error('Uncaught, unspecified "error" event. (' + s + ')')).context = + s), + a); + if (c((e = this._events[t]))) return !1; + if (l(e)) + switch (arguments.length) { + case 1: + e.call(this); + break; + case 2: + e.call(this, arguments[1]); + break; + case 3: + e.call(this, arguments[1], arguments[2]); + break; + default: + (r = Array.prototype.slice.call(arguments, 1)), e.apply(this, r); + } + else if (u(e)) + for ( + r = Array.prototype.slice.call(arguments, 1), n = (o = e.slice()).length, i = 0; + i < n; + i++ + ) + o[i].apply(this, r); + return !0; + }), + (r.prototype.on = r.prototype.addListener = + function (t, e) { + if (l(e)) + return ( + this._events || (this._events = {}), + this._events.newListener && + this.emit('newListener', t, l(e.listener) ? e.listener : e), + this._events[t] + ? u(this._events[t]) + ? this._events[t].push(e) + : (this._events[t] = [this._events[t], e]) + : (this._events[t] = e), + u(this._events[t]) && + !this._events[t].warned && + (e = c(this._maxListeners) ? r.defaultMaxListeners : this._maxListeners) && + 0 < e && + this._events[t].length > e && + ((this._events[t].warned = !0), + console.error( + '(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.', + this._events[t].length, + ), + 'function' == typeof console.trace && console.trace()), + this + ); + throw TypeError('listener must be a function'); + }), + (r.prototype.once = function (t, e) { + if (!l(e)) throw TypeError('listener must be a function'); + var n = !1; + function r() { + this.removeListener(t, r), n || ((n = !0), e.apply(this, arguments)); + } + return (r.listener = e), this.on(t, r), this; + }), + (r.prototype.removeListener = function (t, e) { + var n, r, i, o; + if (!l(e)) throw TypeError('listener must be a function'); + if (this._events && this._events[t]) + if ( + ((i = (n = this._events[t]).length), + (r = -1), + n === e || (l(n.listener) && n.listener === e)) + ) + delete this._events[t], + this._events.removeListener && this.emit('removeListener', t, e); + else if (u(n)) { + for (o = i; 0 < o--; ) + if (n[o] === e || (n[o].listener && n[o].listener === e)) { + r = o; + break; + } + if (r < 0) return this; + 1 === n.length ? ((n.length = 0), delete this._events[t]) : n.splice(r, 1), + this._events.removeListener && this.emit('removeListener', t, e); + } + return this; + }), + (r.prototype.removeAllListeners = function (t) { + var e, n; + if (this._events) { + if (!this._events.removeListener) + return ( + 0 === arguments.length + ? (this._events = {}) + : this._events[t] && delete this._events[t], + this + ); + if (0 === arguments.length) { + for (e in this._events) 'removeListener' !== e && this.removeAllListeners(e); + return this.removeAllListeners('removeListener'), (this._events = {}), this; + } + if (l((n = this._events[t]))) this.removeListener(t, n); + else if (n) for (; n.length; ) this.removeListener(t, n[n.length - 1]); + delete this._events[t]; + } + return this; + }), + (r.prototype.listeners = function (t) { + t = + this._events && this._events[t] + ? l(this._events[t]) + ? [this._events[t]] + : this._events[t].slice() + : []; + return t; + }), + (r.prototype.listenerCount = function (t) { + if (this._events) { + t = this._events[t]; + if (l(t)) return 1; + if (t) return t.length; + } + return 0; + }), + (r.listenerCount = function (t, e) { + return t.listenerCount(e); + }); + }, + {}, + ], + 36: [ + function (t, e, n) { + var r = (function (s) { + 'use strict'; + var l, u, c, A, h, p, e, d, f, r, t; + if ( + !( + void 0 === s || + ('undefined' != typeof navigator && /MSIE [1-9]\./.test(navigator.userAgent)) + ) + ) + return ( + (t = s.document), + (l = function () { + return s.URL || s.webkitURL || s; + }), + (u = t.createElementNS('http://www.w3.org/1999/xhtml', 'a')), + (c = 'download' in u), + (A = /constructor/i.test(s.HTMLElement) || s.safari), + (h = /CriOS\/[\d]+/.test(navigator.userAgent)), + (p = function (t) { + (s.setImmediate || s.setTimeout)(function () { + throw t; + }, 0); + }), + (e = 4e4), + (d = function (t) { + setTimeout(function () { + 'string' == typeof t ? l().revokeObjectURL(t) : t.remove(); + }, e); + }), + (f = function (t) { + return /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test( + t.type, + ) + ? new Blob([String.fromCharCode(65279), t], { type: t.type }) + : t; + }), + (r = function (t, n, e) { + e || (t = f(t)); + var r, + i, + o = this, + e = 'application/octet-stream' === t.type, + a = function () { + for ( + var t = o, + e = 'writestart progress write writeend'.split(' '), + n = void 0, + r = (e = [].concat(e)).length; + r--; + + ) { + var i = t['on' + e[r]]; + if ('function' == typeof i) + try { + i.call(t, n || t); + } catch (t) { + p(t); + } + } + }; + if (((o.readyState = o.INIT), c)) + return ( + (r = l().createObjectURL(t)), + void setTimeout(function () { + var t, e; + (u.href = r), + (u.download = n), + (t = u), + (e = new MouseEvent('click')), + t.dispatchEvent(e), + a(), + d(r), + (o.readyState = o.DONE); + }) + ); + (h || (e && A)) && s.FileReader + ? (((i = new FileReader()).onloadend = function () { + var t = h + ? i.result + : i.result.replace(/^data:[^;]*;/, 'data:attachment/file;'); + s.open(t, '_blank') || (s.location.href = t), + (t = void 0), + (o.readyState = o.DONE), + a(); + }), + i.readAsDataURL(t), + (o.readyState = o.INIT)) + : ((r = r || l().createObjectURL(t)), + (!e && s.open(r, '_blank')) || (s.location.href = r), + (o.readyState = o.DONE), + a(), + d(r)); + }), + (t = r.prototype), + 'undefined' != typeof navigator && navigator.msSaveOrOpenBlob + ? function (t, e, n) { + return ( + (e = e || t.name || 'download'), + n || (t = f(t)), + navigator.msSaveOrOpenBlob(t, e) + ); + } + : ((t.abort = function () {}), + (t.readyState = t.INIT = 0), + (t.WRITING = 1), + (t.DONE = 2), + (t.error = + t.onwritestart = + t.onprogress = + t.onwrite = + t.onabort = + t.onerror = + t.onwriteend = + null), + function (t, e, n) { + return new r(t, e || t.name || 'download', n); + }) + ); + })( + ('undefined' != typeof self && self) || + ('undefined' != typeof window && window) || + this.content, + ); + void 0 !== e && e.exports && (e.exports.saveAs = r); + }, + {}, + ], + 37: [ + function (t, e, n) { + (n.read = function (t, e, n, r, i) { + var o, + a, + s = 8 * i - r - 1, + l = (1 << s) - 1, + u = l >> 1, + c = -7, + A = n ? i - 1 : 0, + h = n ? -1 : 1, + i = t[e + A]; + for ( + A += h, o = i & ((1 << -c) - 1), i >>= -c, c += s; + 0 < c; + o = 256 * o + t[e + A], A += h, c -= 8 + ); + for ( + a = o & ((1 << -c) - 1), o >>= -c, c += r; + 0 < c; + a = 256 * a + t[e + A], A += h, c -= 8 + ); + if (0 === o) o = 1 - u; + else { + if (o === l) return a ? NaN : (1 / 0) * (i ? -1 : 1); + (a += Math.pow(2, r)), (o -= u); + } + return (i ? -1 : 1) * a * Math.pow(2, o - r); + }), + (n.write = function (t, e, n, r, i, o) { + var a, + s, + l = 8 * o - i - 1, + u = (1 << l) - 1, + c = u >> 1, + A = 23 === i ? Math.pow(2, -24) - Math.pow(2, -77) : 0, + h = r ? 0 : o - 1, + p = r ? 1 : -1, + o = e < 0 || (0 === e && 1 / e < 0) ? 1 : 0; + for ( + e = Math.abs(e), + isNaN(e) || e === 1 / 0 + ? ((s = isNaN(e) ? 1 : 0), (a = u)) + : ((a = Math.floor(Math.log(e) / Math.LN2)), + e * (r = Math.pow(2, -a)) < 1 && (a--, (r *= 2)), + 2 <= (e += 1 <= a + c ? A / r : A * Math.pow(2, 1 - c)) * r && + (a++, (r /= 2)), + u <= a + c + ? ((s = 0), (a = u)) + : 1 <= a + c + ? ((s = (e * r - 1) * Math.pow(2, i)), (a += c)) + : ((s = e * Math.pow(2, c - 1) * Math.pow(2, i)), (a = 0))); + 8 <= i; + t[n + h] = 255 & s, h += p, s /= 256, i -= 8 + ); + for (a = (a << i) | s, l += i; 0 < l; t[n + h] = 255 & a, h += p, a /= 256, l -= 8); + t[n + h - p] |= 128 * o; + }); + }, + {}, + ], + 38: [ + function (t, e, n) { + 'function' == typeof Object.create + ? (e.exports = function (t, e) { + e && + ((t.super_ = e), + (t.prototype = Object.create(e.prototype, { + constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 }, + }))); + }) + : (e.exports = function (t, e) { + var n; + e && + ((t.super_ = e), + ((n = function () {}).prototype = e.prototype), + (t.prototype = new n()), + (t.prototype.constructor = t)); + }); + }, + {}, + ], + 39: [ + function (t, e, n) { + var r = {}.toString; + e.exports = + Array.isArray || + function (t) { + return '[object Array]' == r.call(t); + }; + }, + {}, + ], + 40: [ + function (t, n, e) { + !(function (t, e) { + 'use strict'; + 'object' == typeof n && 'object' == typeof n.exports + ? (n.exports = t.document + ? e(t, !0) + : function (t) { + if (t.document) return e(t); + throw new Error('jQuery requires a window with a document'); + }) + : e(t); + })('undefined' != typeof window ? window : this, function (w, U) { + 'use strict'; + function v(t) { + return ( + 'function' == typeof t && + 'number' != typeof t.nodeType && + 'function' != typeof t.item + ); + } + function f(t) { + return null != t && t === t.window; + } + var e = [], + N = Object.getPrototypeOf, + s = e.slice, + P = e.flat + ? function (t) { + return e.flat.call(t); + } + : function (t) { + return e.concat.apply([], t); + }, + L = e.push, + Y = e.indexOf, + O = {}, + G = O.toString, + z = O.hasOwnProperty, + H = z.toString, + j = H.call(Object), + g = {}, + E = w.document, + V = { type: !0, src: !0, nonce: !0, noModule: !0 }; + function q(t, e, n) { + var r, + i, + o = (n = n || E).createElement('script'); + if (((o.text = t), e)) + for (r in V) + (i = e[r] || (e.getAttribute && e.getAttribute(r))) && o.setAttribute(r, i); + n.head.appendChild(o).parentNode.removeChild(o); + } + function d(t) { + return null == t + ? t + '' + : 'object' == typeof t || 'function' == typeof t + ? O[G.call(t)] || 'object' + : typeof t; + } + var B = function (t, e) { + return new B.fn.init(t, e); + }; + function W(t) { + var e = !!t && 'length' in t && t.length, + n = d(t); + return ( + !v(t) && + !f(t) && + ('array' === n || 0 === e || ('number' == typeof e && 0 < e && e - 1 in t)) + ); + } + (B.fn = B.prototype = + { + jquery: '3.6.0', + constructor: B, + length: 0, + toArray: function () { + return s.call(this); + }, + get: function (t) { + return null == t ? s.call(this) : t < 0 ? this[t + this.length] : this[t]; + }, + pushStack: function (t) { + t = B.merge(this.constructor(), t); + return (t.prevObject = this), t; + }, + each: function (t) { + return B.each(this, t); + }, + map: function (n) { + return this.pushStack( + B.map(this, function (t, e) { + return n.call(t, e, t); + }), + ); + }, + slice: function () { + return this.pushStack(s.apply(this, arguments)); + }, + first: function () { + return this.eq(0); + }, + last: function () { + return this.eq(-1); + }, + even: function () { + return this.pushStack( + B.grep(this, function (t, e) { + return (e + 1) % 2; + }), + ); + }, + odd: function () { + return this.pushStack( + B.grep(this, function (t, e) { + return e % 2; + }), + ); + }, + eq: function (t) { + var e = this.length, + t = +t + (t < 0 ? e : 0); + return this.pushStack(0 <= t && t < e ? [this[t]] : []); + }, + end: function () { + return this.prevObject || this.constructor(); + }, + push: L, + sort: e.sort, + splice: e.splice, + }), + (B.extend = B.fn.extend = + function () { + var t, + e, + n, + r, + i, + o = arguments[0] || {}, + a = 1, + s = arguments.length, + l = !1; + for ( + 'boolean' == typeof o && ((l = o), (o = arguments[a] || {}), a++), + 'object' == typeof o || v(o) || (o = {}), + a === s && ((o = this), a--); + a < s; + a++ + ) + if (null != (t = arguments[a])) + for (e in t) + (n = t[e]), + '__proto__' !== e && + o !== n && + (l && n && (B.isPlainObject(n) || (r = Array.isArray(n))) + ? ((i = o[e]), + (i = + r && !Array.isArray(i) ? [] : r || B.isPlainObject(i) ? i : {}), + (r = !1), + (o[e] = B.extend(l, i, n))) + : void 0 !== n && (o[e] = n)); + return o; + }), + B.extend({ + expando: 'jQuery' + ('3.6.0' + Math.random()).replace(/\D/g, ''), + isReady: !0, + error: function (t) { + throw new Error(t); + }, + noop: function () {}, + isPlainObject: function (t) { + return ( + !(!t || '[object Object]' !== G.call(t)) && + (!(t = N(t)) || + ('function' == typeof (t = z.call(t, 'constructor') && t.constructor) && + H.call(t) === j)) + ); + }, + isEmptyObject: function (t) { + for (var e in t) return !1; + return !0; + }, + globalEval: function (t, e, n) { + q(t, { nonce: e && e.nonce }, n); + }, + each: function (t, e) { + var n, + r = 0; + if (W(t)) for (n = t.length; r < n && !1 !== e.call(t[r], r, t[r]); r++); + else for (r in t) if (!1 === e.call(t[r], r, t[r])) break; + return t; + }, + makeArray: function (t, e) { + e = e || []; + return ( + null != t && + (W(Object(t)) ? B.merge(e, 'string' == typeof t ? [t] : t) : L.call(e, t)), + e + ); + }, + inArray: function (t, e, n) { + return null == e ? -1 : Y.call(e, t, n); + }, + merge: function (t, e) { + for (var n = +e.length, r = 0, i = t.length; r < n; r++) t[i++] = e[r]; + return (t.length = i), t; + }, + grep: function (t, e, n) { + for (var r = [], i = 0, o = t.length, a = !n; i < o; i++) + !e(t[i], i) != a && r.push(t[i]); + return r; + }, + map: function (t, e, n) { + var r, + i, + o = 0, + a = []; + if (W(t)) for (r = t.length; o < r; o++) null != (i = e(t[o], o, n)) && a.push(i); + else for (o in t) null != (i = e(t[o], o, n)) && a.push(i); + return P(a); + }, + guid: 1, + support: g, + }), + 'function' == typeof Symbol && (B.fn[Symbol.iterator] = e[Symbol.iterator]), + B.each( + 'Boolean Number String Function Array Date RegExp Object Error Symbol'.split(' '), + function (t, e) { + O['[object ' + e + ']'] = e.toLowerCase(); + }, + ); + function r(t, e, n) { + for (var r = [], i = void 0 !== n; (t = t[e]) && 9 !== t.nodeType; ) + if (1 === t.nodeType) { + if (i && B(t).is(n)) break; + r.push(t); + } + return r; + } + function J(t, e) { + for (var n = []; t; t = t.nextSibling) 1 === t.nodeType && t !== e && n.push(t); + return n; + } + var t = (function (U) { + function A(t, e) { + return ( + (t = '0x' + t.slice(1) - 65536), + e || + (t < 0 + ? String.fromCharCode(65536 + t) + : String.fromCharCode((t >> 10) | 55296, (1023 & t) | 56320)) + ); + } + function N(t, e) { + return e + ? '\0' === t + ? '�' + : t.slice(0, -1) + '\\' + t.charCodeAt(t.length - 1).toString(16) + ' ' + : '\\' + t; + } + function P() { + E(); + } + var t, + h, + y, + o, + L, + p, + Y, + O, + w, + l, + u, + E, + B, + n, + C, + d, + r, + i, + f, + x = 'sizzle' + +new Date(), + c = U.document, + I = 0, + G = 0, + z = F(), + H = F(), + j = F(), + g = F(), + V = function (t, e) { + return t === e && (u = !0), 0; + }, + q = {}.hasOwnProperty, + e = [], + W = e.pop, + J = e.push, + M = e.push, + K = e.slice, + v = function (t, e) { + for (var n = 0, r = t.length; n < r; n++) if (t[n] === e) return n; + return -1; + }, + Z = + 'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped', + a = '[\\x20\\t\\r\\n\\f]', + s = '(?:\\\\[\\da-fA-F]{1,6}' + a + '?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+', + X = + '\\[' + + a + + '*(' + + s + + ')(?:' + + a + + '*([*^$|!~]?=)' + + a + + '*(?:\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)"|(' + + s + + '))|)' + + a + + '*\\]', + $ = + ':(' + + s + + ')(?:\\(((\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|' + + X + + ')*)|.*)\\)|)', + tt = new RegExp(a + '+', 'g'), + m = new RegExp('^' + a + '+|((?:^|[^\\\\])(?:\\\\.)*)' + a + '+$', 'g'), + et = new RegExp('^' + a + '*,' + a + '*'), + nt = new RegExp('^' + a + '*([>+~]|' + a + ')' + a + '*'), + rt = new RegExp(a + '|>'), + it = new RegExp($), + ot = new RegExp('^' + s + '$'), + b = { + ID: new RegExp('^#(' + s + ')'), + CLASS: new RegExp('^\\.(' + s + ')'), + TAG: new RegExp('^(' + s + '|[*])'), + ATTR: new RegExp('^' + X), + PSEUDO: new RegExp('^' + $), + CHILD: new RegExp( + '^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(' + + a + + '*(even|odd|(([+-]|)(\\d*)n|)' + + a + + '*(?:([+-]|)' + + a + + '*(\\d+)|))' + + a + + '*\\)|)', + 'i', + ), + bool: new RegExp('^(?:' + Z + ')$', 'i'), + needsContext: new RegExp( + '^' + + a + + '*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(' + + a + + '*((?:-\\d)?\\d*)' + + a + + '*\\)|)(?=[^-]|$)', + 'i', + ), + }, + at = /HTML$/i, + st = /^(?:input|select|textarea|button)$/i, + lt = /^h\d$/i, + D = /^[^{]+\{\s*\[native \w/, + ut = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + ct = /[+~]/, + S = new RegExp('\\\\[\\da-fA-F]{1,6}' + a + '?|\\\\([^\\r\\n\\f])', 'g'), + At = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + ht = vt( + function (t) { + return !0 === t.disabled && 'fieldset' === t.nodeName.toLowerCase(); + }, + { dir: 'parentNode', next: 'legend' }, + ); + try { + M.apply((e = K.call(c.childNodes)), c.childNodes), + e[c.childNodes.length].nodeType; + } catch (t) { + M = { + apply: e.length + ? function (t, e) { + J.apply(t, K.call(e)); + } + : function (t, e) { + for (var n = t.length, r = 0; (t[n++] = e[r++]); ); + t.length = n - 1; + }, + }; + } + function k(e, t, n, r) { + var i, + o, + a, + s, + l, + u, + c = t && t.ownerDocument, + A = t ? t.nodeType : 9; + if ( + ((n = n || []), 'string' != typeof e || !e || (1 !== A && 9 !== A && 11 !== A)) + ) + return n; + if (!r && (E(t), (t = t || B), C)) { + if (11 !== A && (s = ut.exec(e))) + if ((i = s[1])) { + if (9 === A) { + if (!(u = t.getElementById(i))) return n; + if (u.id === i) return n.push(u), n; + } else if (c && (u = c.getElementById(i)) && f(t, u) && u.id === i) + return n.push(u), n; + } else { + if (s[2]) return M.apply(n, t.getElementsByTagName(e)), n; + if ((i = s[3]) && h.getElementsByClassName && t.getElementsByClassName) + return M.apply(n, t.getElementsByClassName(i)), n; + } + if ( + h.qsa && + !g[e + ' '] && + (!d || !d.test(e)) && + (1 !== A || 'object' !== t.nodeName.toLowerCase()) + ) { + if (((u = e), (c = t), 1 === A && (rt.test(e) || nt.test(e)))) { + for ( + ((c = (ct.test(e) && gt(t.parentNode)) || t) === t && h.scope) || + ((a = t.getAttribute('id')) + ? (a = a.replace(At, N)) + : t.setAttribute('id', (a = x))), + o = (l = p(e)).length; + o--; + + ) + l[o] = (a ? '#' + a : ':scope') + ' ' + R(l[o]); + u = l.join(','); + } + try { + return M.apply(n, c.querySelectorAll(u)), n; + } catch (t) { + g(e, !0); + } finally { + a === x && t.removeAttribute('id'); + } + } + } + return O(e.replace(m, '$1'), t, n, r); + } + function F() { + var n = []; + function r(t, e) { + return n.push(t + ' ') > y.cacheLength && delete r[n.shift()], (r[t + ' '] = e); + } + return r; + } + function Q(t) { + return (t[x] = !0), t; + } + function _(t) { + var e = B.createElement('fieldset'); + try { + return !!t(e); + } catch (t) { + return !1; + } finally { + e.parentNode && e.parentNode.removeChild(e); + } + } + function pt(t, e) { + for (var n = t.split('|'), r = n.length; r--; ) y.attrHandle[n[r]] = e; + } + function dt(t, e) { + var n = e && t, + r = n && 1 === t.nodeType && 1 === e.nodeType && t.sourceIndex - e.sourceIndex; + if (r) return r; + if (n) for (; (n = n.nextSibling); ) if (n === e) return -1; + return t ? 1 : -1; + } + function ft(e) { + return function (t) { + return 'form' in t + ? t.parentNode && !1 === t.disabled + ? 'label' in t + ? 'label' in t.parentNode + ? t.parentNode.disabled === e + : t.disabled === e + : t.isDisabled === e || (t.isDisabled !== !e && ht(t) === e) + : t.disabled === e + : 'label' in t && t.disabled === e; + }; + } + function T(a) { + return Q(function (o) { + return ( + (o = +o), + Q(function (t, e) { + for (var n, r = a([], t.length, o), i = r.length; i--; ) + t[(n = r[i])] && (t[n] = !(e[n] = t[n])); + }) + ); + }); + } + function gt(t) { + return t && void 0 !== t.getElementsByTagName && t; + } + for (t in ((h = k.support = {}), + (L = k.isXML = + function (t) { + var e = t && t.namespaceURI, + t = t && (t.ownerDocument || t).documentElement; + return !at.test(e || (t && t.nodeName) || 'HTML'); + }), + (E = k.setDocument = + function (t) { + var t = t ? t.ownerDocument || t : c; + return ( + t != B && + 9 === t.nodeType && + t.documentElement && + ((n = (B = t).documentElement), + (C = !L(B)), + c != B && + (t = B.defaultView) && + t.top !== t && + (t.addEventListener + ? t.addEventListener('unload', P, !1) + : t.attachEvent && t.attachEvent('onunload', P)), + (h.scope = _(function (t) { + return ( + n.appendChild(t).appendChild(B.createElement('div')), + void 0 !== t.querySelectorAll && + !t.querySelectorAll(':scope fieldset div').length + ); + })), + (h.attributes = _(function (t) { + return (t.className = 'i'), !t.getAttribute('className'); + })), + (h.getElementsByTagName = _(function (t) { + return ( + t.appendChild(B.createComment('')), !t.getElementsByTagName('*').length + ); + })), + (h.getElementsByClassName = D.test(B.getElementsByClassName)), + (h.getById = _(function (t) { + return ( + (n.appendChild(t).id = x), + !B.getElementsByName || !B.getElementsByName(x).length + ); + })), + h.getById + ? ((y.filter.ID = function (t) { + var e = t.replace(S, A); + return function (t) { + return t.getAttribute('id') === e; + }; + }), + (y.find.ID = function (t, e) { + if (void 0 !== e.getElementById && C) + return (e = e.getElementById(t)) ? [e] : []; + })) + : ((y.filter.ID = function (t) { + var e = t.replace(S, A); + return function (t) { + t = void 0 !== t.getAttributeNode && t.getAttributeNode('id'); + return t && t.value === e; + }; + }), + (y.find.ID = function (t, e) { + if (void 0 !== e.getElementById && C) { + var n, + r, + i, + o = e.getElementById(t); + if (o) { + if ((n = o.getAttributeNode('id')) && n.value === t) return [o]; + for (i = e.getElementsByName(t), r = 0; (o = i[r++]); ) + if ((n = o.getAttributeNode('id')) && n.value === t) return [o]; + } + return []; + } + })), + (y.find.TAG = h.getElementsByTagName + ? function (t, e) { + return void 0 !== e.getElementsByTagName + ? e.getElementsByTagName(t) + : h.qsa + ? e.querySelectorAll(t) + : void 0; + } + : function (t, e) { + var n, + r = [], + i = 0, + o = e.getElementsByTagName(t); + if ('*' !== t) return o; + for (; (n = o[i++]); ) 1 === n.nodeType && r.push(n); + return r; + }), + (y.find.CLASS = + h.getElementsByClassName && + function (t, e) { + if (void 0 !== e.getElementsByClassName && C) + return e.getElementsByClassName(t); + }), + (r = []), + (d = []), + (h.qsa = D.test(B.querySelectorAll)) && + (_(function (t) { + var e; + (n.appendChild(t).innerHTML = + "<a id='" + + x + + "'></a><select id='" + + x + + "-\r\\' msallowcapture=''><option selected=''></option></select>"), + t.querySelectorAll("[msallowcapture^='']").length && + d.push('[*^$]=' + a + '*(?:\'\'|"")'), + t.querySelectorAll('[selected]').length || + d.push('\\[' + a + '*(?:value|' + Z + ')'), + t.querySelectorAll('[id~=' + x + '-]').length || d.push('~='), + (e = B.createElement('input')).setAttribute('name', ''), + t.appendChild(e), + t.querySelectorAll("[name='']").length || + d.push('\\[' + a + '*name' + a + '*=' + a + '*(?:\'\'|"")'), + t.querySelectorAll(':checked').length || d.push(':checked'), + t.querySelectorAll('a#' + x + '+*').length || d.push('.#.+[+~]'), + t.querySelectorAll('\\\f'), + d.push('[\\r\\n\\f]'); + }), + _(function (t) { + t.innerHTML = + "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; + var e = B.createElement('input'); + e.setAttribute('type', 'hidden'), + t.appendChild(e).setAttribute('name', 'D'), + t.querySelectorAll('[name=d]').length && + d.push('name' + a + '*[*^$|!~]?='), + 2 !== t.querySelectorAll(':enabled').length && + d.push(':enabled', ':disabled'), + (n.appendChild(t).disabled = !0), + 2 !== t.querySelectorAll(':disabled').length && + d.push(':enabled', ':disabled'), + t.querySelectorAll('*,:x'), + d.push(',.*:'); + })), + (h.matchesSelector = D.test( + (i = + n.matches || + n.webkitMatchesSelector || + n.mozMatchesSelector || + n.oMatchesSelector || + n.msMatchesSelector), + )) && + _(function (t) { + (h.disconnectedMatch = i.call(t, '*')), + i.call(t, "[s!='']:x"), + r.push('!=', $); + }), + (d = d.length && new RegExp(d.join('|'))), + (r = r.length && new RegExp(r.join('|'))), + (t = D.test(n.compareDocumentPosition)), + (f = + t || D.test(n.contains) + ? function (t, e) { + var n = 9 === t.nodeType ? t.documentElement : t, + e = e && e.parentNode; + return ( + t === e || + !( + !e || + 1 !== e.nodeType || + !(n.contains + ? n.contains(e) + : t.compareDocumentPosition && + 16 & t.compareDocumentPosition(e)) + ) + ); + } + : function (t, e) { + if (e) for (; (e = e.parentNode); ) if (e === t) return !0; + return !1; + }), + (V = t + ? function (t, e) { + if (t === e) return (u = !0), 0; + var n = !t.compareDocumentPosition - !e.compareDocumentPosition; + return ( + n || + (1 & + (n = + (t.ownerDocument || t) == (e.ownerDocument || e) + ? t.compareDocumentPosition(e) + : 1) || + (!h.sortDetached && e.compareDocumentPosition(t) === n) + ? t == B || (t.ownerDocument == c && f(c, t)) + ? -1 + : e == B || (e.ownerDocument == c && f(c, e)) + ? 1 + : l + ? v(l, t) - v(l, e) + : 0 + : 4 & n + ? -1 + : 1) + ); + } + : function (t, e) { + if (t === e) return (u = !0), 0; + var n, + r = 0, + i = t.parentNode, + o = e.parentNode, + a = [t], + s = [e]; + if (!i || !o) + return t == B + ? -1 + : e == B + ? 1 + : i + ? -1 + : o + ? 1 + : l + ? v(l, t) - v(l, e) + : 0; + if (i === o) return dt(t, e); + for (n = t; (n = n.parentNode); ) a.unshift(n); + for (n = e; (n = n.parentNode); ) s.unshift(n); + for (; a[r] === s[r]; ) r++; + return r ? dt(a[r], s[r]) : a[r] == c ? -1 : s[r] == c ? 1 : 0; + })), + B + ); + }), + (k.matches = function (t, e) { + return k(t, null, null, e); + }), + (k.matchesSelector = function (t, e) { + if ( + (E(t), + h.matchesSelector && + C && + !g[e + ' '] && + (!r || !r.test(e)) && + (!d || !d.test(e))) + ) + try { + var n = i.call(t, e); + if (n || h.disconnectedMatch || (t.document && 11 !== t.document.nodeType)) + return n; + } catch (t) { + g(e, !0); + } + return 0 < k(e, B, null, [t]).length; + }), + (k.contains = function (t, e) { + return (t.ownerDocument || t) != B && E(t), f(t, e); + }), + (k.attr = function (t, e) { + (t.ownerDocument || t) != B && E(t); + var n = y.attrHandle[e.toLowerCase()], + n = n && q.call(y.attrHandle, e.toLowerCase()) ? n(t, e, !C) : void 0; + return void 0 !== n + ? n + : h.attributes || !C + ? t.getAttribute(e) + : (n = t.getAttributeNode(e)) && n.specified + ? n.value + : null; + }), + (k.escape = function (t) { + return (t + '').replace(At, N); + }), + (k.error = function (t) { + throw new Error('Syntax error, unrecognized expression: ' + t); + }), + (k.uniqueSort = function (t) { + var e, + n = [], + r = 0, + i = 0; + if ( + ((u = !h.detectDuplicates), (l = !h.sortStable && t.slice(0)), t.sort(V), u) + ) { + for (; (e = t[i++]); ) e === t[i] && (r = n.push(i)); + for (; r--; ) t.splice(n[r], 1); + } + return (l = null), t; + }), + (o = k.getText = + function (t) { + var e, + n = '', + r = 0, + i = t.nodeType; + if (i) { + if (1 === i || 9 === i || 11 === i) { + if ('string' == typeof t.textContent) return t.textContent; + for (t = t.firstChild; t; t = t.nextSibling) n += o(t); + } else if (3 === i || 4 === i) return t.nodeValue; + } else for (; (e = t[r++]); ) n += o(e); + return n; + }), + ((y = k.selectors = + { + cacheLength: 50, + createPseudo: Q, + match: b, + attrHandle: {}, + find: {}, + relative: { + '>': { dir: 'parentNode', first: !0 }, + ' ': { dir: 'parentNode' }, + '+': { dir: 'previousSibling', first: !0 }, + '~': { dir: 'previousSibling' }, + }, + preFilter: { + ATTR: function (t) { + return ( + (t[1] = t[1].replace(S, A)), + (t[3] = (t[3] || t[4] || t[5] || '').replace(S, A)), + '~=' === t[2] && (t[3] = ' ' + t[3] + ' '), + t.slice(0, 4) + ); + }, + CHILD: function (t) { + return ( + (t[1] = t[1].toLowerCase()), + 'nth' === t[1].slice(0, 3) + ? (t[3] || k.error(t[0]), + (t[4] = +(t[4] + ? t[5] + (t[6] || 1) + : 2 * ('even' === t[3] || 'odd' === t[3]))), + (t[5] = +(t[7] + t[8] || 'odd' === t[3]))) + : t[3] && k.error(t[0]), + t + ); + }, + PSEUDO: function (t) { + var e, + n = !t[6] && t[2]; + return b.CHILD.test(t[0]) + ? null + : (t[3] + ? (t[2] = t[4] || t[5] || '') + : n && + it.test(n) && + (e = p(n, !0)) && + (e = n.indexOf(')', n.length - e) - n.length) && + ((t[0] = t[0].slice(0, e)), (t[2] = n.slice(0, e))), + t.slice(0, 3)); + }, + }, + filter: { + TAG: function (t) { + var e = t.replace(S, A).toLowerCase(); + return '*' === t + ? function () { + return !0; + } + : function (t) { + return t.nodeName && t.nodeName.toLowerCase() === e; + }; + }, + CLASS: function (t) { + var e = z[t + ' ']; + return ( + e || + ((e = new RegExp('(^|' + a + ')' + t + '(' + a + '|$)')) && + z(t, function (t) { + return e.test( + ('string' == typeof t.className && t.className) || + (void 0 !== t.getAttribute && t.getAttribute('class')) || + '', + ); + })) + ); + }, + ATTR: function (e, n, r) { + return function (t) { + t = k.attr(t, e); + return null == t + ? '!=' === n + : !n || + ((t += ''), + '=' === n + ? t === r + : '!=' === n + ? t !== r + : '^=' === n + ? r && 0 === t.indexOf(r) + : '*=' === n + ? r && -1 < t.indexOf(r) + : '$=' === n + ? r && t.slice(-r.length) === r + : '~=' === n + ? -1 < (' ' + t.replace(tt, ' ') + ' ').indexOf(r) + : '|=' === n && + (t === r || t.slice(0, r.length + 1) === r + '-')); + }; + }, + CHILD: function (d, t, e, f, g) { + var m = 'nth' !== d.slice(0, 3), + v = 'last' !== d.slice(-4), + b = 'of-type' === t; + return 1 === f && 0 === g + ? function (t) { + return !!t.parentNode; + } + : function (t, e, n) { + var r, + i, + o, + a, + s, + l, + u = m != v ? 'nextSibling' : 'previousSibling', + c = t.parentNode, + A = b && t.nodeName.toLowerCase(), + h = !n && !b, + p = !1; + if (c) { + if (m) { + for (; u; ) { + for (a = t; (a = a[u]); ) + if (b ? a.nodeName.toLowerCase() === A : 1 === a.nodeType) + return !1; + l = u = 'only' === d && !l && 'nextSibling'; + } + return !0; + } + if (((l = [v ? c.firstChild : c.lastChild]), v && h)) { + for ( + p = + (s = + (r = + (i = + (o = (a = c)[x] || (a[x] = {}))[a.uniqueID] || + (o[a.uniqueID] = {}))[d] || [])[0] === I && r[1]) && + r[2], + a = s && c.childNodes[s]; + (a = (++s && a && a[u]) || (p = s = 0) || l.pop()); + + ) + if (1 === a.nodeType && ++p && a === t) { + i[d] = [I, s, p]; + break; + } + } else if ( + !1 === + (p = h + ? (s = + (r = + (i = + (o = (a = t)[x] || (a[x] = {}))[a.uniqueID] || + (o[a.uniqueID] = {}))[d] || [])[0] === I && r[1]) + : p) + ) + for ( + ; + (a = (++s && a && a[u]) || (p = s = 0) || l.pop()) && + ((b ? a.nodeName.toLowerCase() !== A : 1 !== a.nodeType) || + !++p || + (h && + ((i = + (o = a[x] || (a[x] = {}))[a.uniqueID] || + (o[a.uniqueID] = {}))[d] = [I, p]), + a !== t)); + + ); + return (p -= g) === f || (p % f == 0 && 0 <= p / f); + } + }; + }, + PSEUDO: function (t, o) { + var e, + a = + y.pseudos[t] || + y.setFilters[t.toLowerCase()] || + k.error('unsupported pseudo: ' + t); + return a[x] + ? a(o) + : 1 < a.length + ? ((e = [t, t, '', o]), + y.setFilters.hasOwnProperty(t.toLowerCase()) + ? Q(function (t, e) { + for (var n, r = a(t, o), i = r.length; i--; ) + t[(n = v(t, r[i]))] = !(e[n] = r[i]); + }) + : function (t) { + return a(t, 0, e); + }) + : a; + }, + }, + pseudos: { + not: Q(function (t) { + var r = [], + i = [], + s = Y(t.replace(m, '$1')); + return s[x] + ? Q(function (t, e, n, r) { + for (var i, o = s(t, null, r, []), a = t.length; a--; ) + (i = o[a]) && (t[a] = !(e[a] = i)); + }) + : function (t, e, n) { + return (r[0] = t), s(r, null, n, i), (r[0] = null), !i.pop(); + }; + }), + has: Q(function (e) { + return function (t) { + return 0 < k(e, t).length; + }; + }), + contains: Q(function (e) { + return ( + (e = e.replace(S, A)), + function (t) { + return -1 < (t.textContent || o(t)).indexOf(e); + } + ); + }), + lang: Q(function (n) { + return ( + ot.test(n || '') || k.error('unsupported lang: ' + n), + (n = n.replace(S, A).toLowerCase()), + function (t) { + var e; + do { + if ( + (e = C + ? t.lang + : t.getAttribute('xml:lang') || t.getAttribute('lang')) + ) + return (e = e.toLowerCase()) === n || 0 === e.indexOf(n + '-'); + } while ((t = t.parentNode) && 1 === t.nodeType); + return !1; + } + ); + }), + target: function (t) { + var e = U.location && U.location.hash; + return e && e.slice(1) === t.id; + }, + root: function (t) { + return t === n; + }, + focus: function (t) { + return ( + t === B.activeElement && + (!B.hasFocus || B.hasFocus()) && + !!(t.type || t.href || ~t.tabIndex) + ); + }, + enabled: ft(!1), + disabled: ft(!0), + checked: function (t) { + var e = t.nodeName.toLowerCase(); + return ('input' === e && !!t.checked) || ('option' === e && !!t.selected); + }, + selected: function (t) { + return t.parentNode && t.parentNode.selectedIndex, !0 === t.selected; + }, + empty: function (t) { + for (t = t.firstChild; t; t = t.nextSibling) if (t.nodeType < 6) return !1; + return !0; + }, + parent: function (t) { + return !y.pseudos.empty(t); + }, + header: function (t) { + return lt.test(t.nodeName); + }, + input: function (t) { + return st.test(t.nodeName); + }, + button: function (t) { + var e = t.nodeName.toLowerCase(); + return ('input' === e && 'button' === t.type) || 'button' === e; + }, + text: function (t) { + return ( + 'input' === t.nodeName.toLowerCase() && + 'text' === t.type && + (null == (t = t.getAttribute('type')) || 'text' === t.toLowerCase()) + ); + }, + first: T(function () { + return [0]; + }), + last: T(function (t, e) { + return [e - 1]; + }), + eq: T(function (t, e, n) { + return [n < 0 ? n + e : n]; + }), + even: T(function (t, e) { + for (var n = 0; n < e; n += 2) t.push(n); + return t; + }), + odd: T(function (t, e) { + for (var n = 1; n < e; n += 2) t.push(n); + return t; + }), + lt: T(function (t, e, n) { + for (var r = n < 0 ? n + e : e < n ? e : n; 0 <= --r; ) t.push(r); + return t; + }), + gt: T(function (t, e, n) { + for (var r = n < 0 ? n + e : n; ++r < e; ) t.push(r); + return t; + }), + }, + }).pseudos.nth = y.pseudos.eq), + { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 })) + y.pseudos[t] = (function (e) { + return function (t) { + return 'input' === t.nodeName.toLowerCase() && t.type === e; + }; + })(t); + for (t in { submit: !0, reset: !0 }) + y.pseudos[t] = (function (n) { + return function (t) { + var e = t.nodeName.toLowerCase(); + return ('input' === e || 'button' === e) && t.type === n; + }; + })(t); + function mt() {} + function R(t) { + for (var e = 0, n = t.length, r = ''; e < n; e++) r += t[e].value; + return r; + } + function vt(a, t, e) { + var s = t.dir, + l = t.next, + u = l || s, + c = e && 'parentNode' === u, + A = G++; + return t.first + ? function (t, e, n) { + for (; (t = t[s]); ) if (1 === t.nodeType || c) return a(t, e, n); + return !1; + } + : function (t, e, n) { + var r, + i, + o = [I, A]; + if (n) { + for (; (t = t[s]); ) if ((1 === t.nodeType || c) && a(t, e, n)) return !0; + } else + for (; (t = t[s]); ) + if (1 === t.nodeType || c) + if ( + ((i = + (i = t[x] || (t[x] = {}))[t.uniqueID] || (i[t.uniqueID] = {})), + l && l === t.nodeName.toLowerCase()) + ) + t = t[s] || t; + else { + if ((r = i[u]) && r[0] === I && r[1] === A) return (o[2] = r[2]); + if (((i[u] = o)[2] = a(t, e, n))) return !0; + } + return !1; + }; + } + function bt(i) { + return 1 < i.length + ? function (t, e, n) { + for (var r = i.length; r--; ) if (!i[r](t, e, n)) return !1; + return !0; + } + : i[0]; + } + function yt(t, e, n, r, i) { + for (var o, a = [], s = 0, l = t.length, u = null != e; s < l; s++) + !(o = t[s]) || (n && !n(o, r, i)) || (a.push(o), u && e.push(s)); + return a; + } + function wt(p, d, f, g, m, t) { + return ( + g && !g[x] && (g = wt(g)), + m && !m[x] && (m = wt(m, t)), + Q(function (t, e, n, r) { + var i, + o, + a, + s = [], + l = [], + u = e.length, + c = + t || + (function (t, e, n) { + for (var r = 0, i = e.length; r < i; r++) k(t, e[r], n); + return n; + })(d || '*', n.nodeType ? [n] : n, []), + A = !p || (!t && d) ? c : yt(c, s, p, n, r), + h = f ? (m || (t ? p : u || g) ? [] : e) : A; + if ((f && f(A, h, n, r), g)) + for (i = yt(h, l), g(i, [], n, r), o = i.length; o--; ) + (a = i[o]) && (h[l[o]] = !(A[l[o]] = a)); + if (t) { + if (m || p) { + if (m) { + for (i = [], o = h.length; o--; ) (a = h[o]) && i.push((A[o] = a)); + m(null, (h = []), i, r); + } + for (o = h.length; o--; ) + (a = h[o]) && -1 < (i = m ? v(t, a) : s[o]) && (t[i] = !(e[i] = a)); + } + } else + (h = yt(h === e ? h.splice(u, h.length) : h)), + m ? m(null, e, h, r) : M.apply(e, h); + }) + ); + } + function Et(g, m) { + function t(t, e, n, r, i) { + var o, + a, + s, + l = 0, + u = '0', + c = t && [], + A = [], + h = w, + p = t || (b && y.find.TAG('*', i)), + d = (I += null == h ? 1 : Math.random() || 0.1), + f = p.length; + for (i && (w = e == B || e || i); u !== f && null != (o = p[u]); u++) { + if (b && o) { + for (a = 0, e || o.ownerDocument == B || (E(o), (n = !C)); (s = g[a++]); ) + if (s(o, e || B, n)) { + r.push(o); + break; + } + i && (I = d); + } + v && ((o = !s && o) && l--, t && c.push(o)); + } + if (((l += u), v && u !== l)) { + for (a = 0; (s = m[a++]); ) s(c, A, e, n); + if (t) { + if (0 < l) for (; u--; ) c[u] || A[u] || (A[u] = W.call(r)); + A = yt(A); + } + M.apply(r, A), i && !t && 0 < A.length && 1 < l + m.length && k.uniqueSort(r); + } + return i && ((I = d), (w = h)), c; + } + var v = 0 < m.length, + b = 0 < g.length; + return v ? Q(t) : t; + } + return ( + (mt.prototype = y.filters = y.pseudos), + (y.setFilters = new mt()), + (p = k.tokenize = + function (t, e) { + var n, + r, + i, + o, + a, + s, + l, + u = H[t + ' ']; + if (u) return e ? 0 : u.slice(0); + for (a = t, s = [], l = y.preFilter; a; ) { + for (o in ((n && !(r = et.exec(a))) || + (r && (a = a.slice(r[0].length) || a), s.push((i = []))), + (n = !1), + (r = nt.exec(a)) && + ((n = r.shift()), + i.push({ value: n, type: r[0].replace(m, ' ') }), + (a = a.slice(n.length))), + y.filter)) + !(r = b[o].exec(a)) || + (l[o] && !(r = l[o](r))) || + ((n = r.shift()), + i.push({ value: n, type: o, matches: r }), + (a = a.slice(n.length))); + if (!n) break; + } + return e ? a.length : a ? k.error(t) : H(t, s).slice(0); + }), + (Y = k.compile = + function (t, e) { + var n, + r = [], + i = [], + o = j[t + ' ']; + if (!o) { + for (n = (e = e || p(t)).length; n--; ) + ((o = (function t(e) { + for ( + var r, + n, + i, + o = e.length, + a = y.relative[e[0].type], + s = a || y.relative[' '], + l = a ? 1 : 0, + u = vt( + function (t) { + return t === r; + }, + s, + !0, + ), + c = vt( + function (t) { + return -1 < v(r, t); + }, + s, + !0, + ), + A = [ + function (t, e, n) { + return ( + (t = + (!a && (n || e !== w)) || + ((r = e).nodeType ? u : c)(t, e, n)), + (r = null), + t + ); + }, + ]; + l < o; + l++ + ) + if ((n = y.relative[e[l].type])) A = [vt(bt(A), n)]; + else { + if ((n = y.filter[e[l].type].apply(null, e[l].matches))[x]) { + for (i = ++l; i < o && !y.relative[e[i].type]; i++); + return wt( + 1 < l && bt(A), + 1 < l && + R( + e + .slice(0, l - 1) + .concat({ value: ' ' === e[l - 2].type ? '*' : '' }), + ).replace(m, '$1'), + n, + l < i && t(e.slice(l, i)), + i < o && t((e = e.slice(i))), + i < o && R(e), + ); + } + A.push(n); + } + return bt(A); + })(e[n]))[x] + ? r + : i + ).push(o); + (o = j(t, Et(i, r))).selector = t; + } + return o; + }), + (O = k.select = + function (t, e, n, r) { + var i, + o, + a, + s, + l, + u = 'function' == typeof t && t, + c = !r && p((t = u.selector || t)); + if (((n = n || []), 1 === c.length)) { + if ( + 2 < (o = c[0] = c[0].slice(0)).length && + 'ID' === (a = o[0]).type && + 9 === e.nodeType && + C && + y.relative[o[1].type] + ) { + if (!(e = (y.find.ID(a.matches[0].replace(S, A), e) || [])[0])) return n; + u && (e = e.parentNode), (t = t.slice(o.shift().value.length)); + } + for ( + i = b.needsContext.test(t) ? 0 : o.length; + i-- && ((a = o[i]), !y.relative[(s = a.type)]); + + ) + if ( + (l = y.find[s]) && + (r = l( + a.matches[0].replace(S, A), + (ct.test(o[0].type) && gt(e.parentNode)) || e, + )) + ) { + if ((o.splice(i, 1), (t = r.length && R(o)))) break; + return M.apply(n, r), n; + } + } + return ( + (u || Y(t, c))(r, e, !C, n, !e || (ct.test(t) && gt(e.parentNode)) || e), n + ); + }), + (h.sortStable = x.split('').sort(V).join('') === x), + (h.detectDuplicates = !!u), + E(), + (h.sortDetached = _(function (t) { + return 1 & t.compareDocumentPosition(B.createElement('fieldset')); + })), + _(function (t) { + return ( + (t.innerHTML = "<a href='#'></a>"), '#' === t.firstChild.getAttribute('href') + ); + }) || + pt('type|href|height|width', function (t, e, n) { + if (!n) return t.getAttribute(e, 'type' === e.toLowerCase() ? 1 : 2); + }), + (h.attributes && + _(function (t) { + return ( + (t.innerHTML = '<input/>'), + t.firstChild.setAttribute('value', ''), + '' === t.firstChild.getAttribute('value') + ); + })) || + pt('value', function (t, e, n) { + if (!n && 'input' === t.nodeName.toLowerCase()) return t.defaultValue; + }), + _(function (t) { + return null == t.getAttribute('disabled'); + }) || + pt(Z, function (t, e, n) { + if (!n) + return !0 === t[e] + ? e.toLowerCase() + : (n = t.getAttributeNode(e)) && n.specified + ? n.value + : null; + }), + k + ); + })(w), + K = + ((B.find = t), + (B.expr = t.selectors), + (B.expr[':'] = B.expr.pseudos), + (B.uniqueSort = B.unique = t.uniqueSort), + (B.text = t.getText), + (B.isXMLDoc = t.isXML), + (B.contains = t.contains), + (B.escapeSelector = t.escape), + B.expr.match.needsContext); + function l(t, e) { + return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase(); + } + var Z = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; + function X(t, n, r) { + return v(n) + ? B.grep(t, function (t, e) { + return !!n.call(t, e, t) !== r; + }) + : n.nodeType + ? B.grep(t, function (t) { + return (t === n) !== r; + }) + : 'string' != typeof n + ? B.grep(t, function (t) { + return -1 < Y.call(n, t) !== r; + }) + : B.filter(n, t, r); + } + (B.filter = function (t, e, n) { + var r = e[0]; + return ( + n && (t = ':not(' + t + ')'), + 1 === e.length && 1 === r.nodeType + ? B.find.matchesSelector(r, t) + ? [r] + : [] + : B.find.matches( + t, + B.grep(e, function (t) { + return 1 === t.nodeType; + }), + ) + ); + }), + B.fn.extend({ + find: function (t) { + var e, + n, + r = this.length, + i = this; + if ('string' != typeof t) + return this.pushStack( + B(t).filter(function () { + for (e = 0; e < r; e++) if (B.contains(i[e], this)) return !0; + }), + ); + for (n = this.pushStack([]), e = 0; e < r; e++) B.find(t, i[e], n); + return 1 < r ? B.uniqueSort(n) : n; + }, + filter: function (t) { + return this.pushStack(X(this, t || [], !1)); + }, + not: function (t) { + return this.pushStack(X(this, t || [], !0)); + }, + is: function (t) { + return !!X(this, 'string' == typeof t && K.test(t) ? B(t) : t || [], !1).length; + }, + }); + var $, + tt = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + et = + (((B.fn.init = function (t, e, n) { + if (!t) return this; + if (((n = n || $), 'string' != typeof t)) + return t.nodeType + ? ((this[0] = t), (this.length = 1), this) + : v(t) + ? void 0 !== n.ready + ? n.ready(t) + : t(B) + : B.makeArray(t, this); + if ( + !(r = + '<' === t[0] && '>' === t[t.length - 1] && 3 <= t.length + ? [null, t, null] + : tt.exec(t)) || + (!r[1] && e) + ) + return (!e || e.jquery ? e || n : this.constructor(e)).find(t); + if (r[1]) { + if ( + ((e = e instanceof B ? e[0] : e), + B.merge( + this, + B.parseHTML(r[1], e && e.nodeType ? e.ownerDocument || e : E, !0), + ), + Z.test(r[1]) && B.isPlainObject(e)) + ) + for (var r in e) v(this[r]) ? this[r](e[r]) : this.attr(r, e[r]); + return this; + } + return (n = E.getElementById(r[2])) && ((this[0] = n), (this.length = 1)), this; + }).prototype = B.fn), + ($ = B(E)), + /^(?:parents|prev(?:Until|All))/), + nt = { children: !0, contents: !0, next: !0, prev: !0 }; + function rt(t, e) { + for (; (t = t[e]) && 1 !== t.nodeType; ); + return t; + } + B.fn.extend({ + has: function (t) { + var e = B(t, this), + n = e.length; + return this.filter(function () { + for (var t = 0; t < n; t++) if (B.contains(this, e[t])) return !0; + }); + }, + closest: function (t, e) { + var n, + r = 0, + i = this.length, + o = [], + a = 'string' != typeof t && B(t); + if (!K.test(t)) + for (; r < i; r++) + for (n = this[r]; n && n !== e; n = n.parentNode) + if ( + n.nodeType < 11 && + (a ? -1 < a.index(n) : 1 === n.nodeType && B.find.matchesSelector(n, t)) + ) { + o.push(n); + break; + } + return this.pushStack(1 < o.length ? B.uniqueSort(o) : o); + }, + index: function (t) { + return t + ? 'string' == typeof t + ? Y.call(B(t), this[0]) + : Y.call(this, t.jquery ? t[0] : t) + : this[0] && this[0].parentNode + ? this.first().prevAll().length + : -1; + }, + add: function (t, e) { + return this.pushStack(B.uniqueSort(B.merge(this.get(), B(t, e)))); + }, + addBack: function (t) { + return this.add(null == t ? this.prevObject : this.prevObject.filter(t)); + }, + }), + B.each( + { + parent: function (t) { + t = t.parentNode; + return t && 11 !== t.nodeType ? t : null; + }, + parents: function (t) { + return r(t, 'parentNode'); + }, + parentsUntil: function (t, e, n) { + return r(t, 'parentNode', n); + }, + next: function (t) { + return rt(t, 'nextSibling'); + }, + prev: function (t) { + return rt(t, 'previousSibling'); + }, + nextAll: function (t) { + return r(t, 'nextSibling'); + }, + prevAll: function (t) { + return r(t, 'previousSibling'); + }, + nextUntil: function (t, e, n) { + return r(t, 'nextSibling', n); + }, + prevUntil: function (t, e, n) { + return r(t, 'previousSibling', n); + }, + siblings: function (t) { + return J((t.parentNode || {}).firstChild, t); + }, + children: function (t) { + return J(t.firstChild); + }, + contents: function (t) { + return null != t.contentDocument && N(t.contentDocument) + ? t.contentDocument + : (l(t, 'template') && (t = t.content || t), B.merge([], t.childNodes)); + }, + }, + function (r, i) { + B.fn[r] = function (t, e) { + var n = B.map(this, i, t); + return ( + (e = 'Until' !== r.slice(-5) ? t : e) && + 'string' == typeof e && + (n = B.filter(e, n)), + 1 < this.length && (nt[r] || B.uniqueSort(n), et.test(r) && n.reverse()), + this.pushStack(n) + ); + }; + }, + ); + var C = /[^\x20\t\r\n\f]+/g; + function c(t) { + return t; + } + function it(t) { + throw t; + } + function ot(t, e, n, r) { + var i; + try { + t && v((i = t.promise)) + ? i.call(t).done(e).fail(n) + : t && v((i = t.then)) + ? i.call(t, e, n) + : e.apply(void 0, [t].slice(r)); + } catch (t) { + n.apply(void 0, [t]); + } + } + (B.Callbacks = function (r) { + var t, n; + r = + 'string' == typeof r + ? ((t = r), + (n = {}), + B.each(t.match(C) || [], function (t, e) { + n[e] = !0; + }), + n) + : B.extend({}, r); + function i() { + for (s = s || r.once, a = o = !0; u.length; c = -1) + for (e = u.shift(); ++c < l.length; ) + !1 === l[c].apply(e[0], e[1]) && r.stopOnFalse && ((c = l.length), (e = !1)); + r.memory || (e = !1), (o = !1), s && (l = e ? [] : ''); + } + var o, + e, + a, + s, + l = [], + u = [], + c = -1, + A = { + add: function () { + return ( + l && + (e && !o && ((c = l.length - 1), u.push(e)), + (function n(t) { + B.each(t, function (t, e) { + v(e) + ? (r.unique && A.has(e)) || l.push(e) + : e && e.length && 'string' !== d(e) && n(e); + }); + })(arguments), + e && !o && i()), + this + ); + }, + remove: function () { + return ( + B.each(arguments, function (t, e) { + for (var n; -1 < (n = B.inArray(e, l, n)); ) l.splice(n, 1), n <= c && c--; + }), + this + ); + }, + has: function (t) { + return t ? -1 < B.inArray(t, l) : 0 < l.length; + }, + empty: function () { + return (l = l && []), this; + }, + disable: function () { + return (s = u = []), (l = e = ''), this; + }, + disabled: function () { + return !l; + }, + lock: function () { + return (s = u = []), e || o || (l = e = ''), this; + }, + locked: function () { + return !!s; + }, + fireWith: function (t, e) { + return ( + s || ((e = [t, (e = e || []).slice ? e.slice() : e]), u.push(e), o || i()), + this + ); + }, + fire: function () { + return A.fireWith(this, arguments), this; + }, + fired: function () { + return !!a; + }, + }; + return A; + }), + B.extend({ + Deferred: function (t) { + var o = [ + ['notify', 'progress', B.Callbacks('memory'), B.Callbacks('memory'), 2], + [ + 'resolve', + 'done', + B.Callbacks('once memory'), + B.Callbacks('once memory'), + 0, + 'resolved', + ], + [ + 'reject', + 'fail', + B.Callbacks('once memory'), + B.Callbacks('once memory'), + 1, + 'rejected', + ], + ], + i = 'pending', + a = { + state: function () { + return i; + }, + always: function () { + return s.done(arguments).fail(arguments), this; + }, + catch: function (t) { + return a.then(null, t); + }, + pipe: function () { + var i = arguments; + return B.Deferred(function (r) { + B.each(o, function (t, e) { + var n = v(i[e[4]]) && i[e[4]]; + s[e[1]](function () { + var t = n && n.apply(this, arguments); + t && v(t.promise) + ? t.promise().progress(r.notify).done(r.resolve).fail(r.reject) + : r[e[0] + 'With'](this, n ? [t] : arguments); + }); + }), + (i = null); + }).promise(); + }, + then: function (e, n, r) { + var l = 0; + function u(i, o, a, s) { + return function () { + function t() { + var t, e; + if (!(i < l)) { + if ((t = a.apply(n, r)) === o.promise()) + throw new TypeError('Thenable self-resolution'); + (e = + t && ('object' == typeof t || 'function' == typeof t) && t.then), + v(e) + ? s + ? e.call(t, u(l, o, c, s), u(l, o, it, s)) + : (l++, + e.call( + t, + u(l, o, c, s), + u(l, o, it, s), + u(l, o, c, o.notifyWith), + )) + : (a !== c && ((n = void 0), (r = [t])), + (s || o.resolveWith)(n, r)); + } + } + var n = this, + r = arguments, + e = s + ? t + : function () { + try { + t(); + } catch (t) { + B.Deferred.exceptionHook && + B.Deferred.exceptionHook(t, e.stackTrace), + l <= i + 1 && + (a !== it && ((n = void 0), (r = [t])), + o.rejectWith(n, r)); + } + }; + i + ? e() + : (B.Deferred.getStackHook && + (e.stackTrace = B.Deferred.getStackHook()), + w.setTimeout(e)); + }; + } + return B.Deferred(function (t) { + o[0][3].add(u(0, t, v(r) ? r : c, t.notifyWith)), + o[1][3].add(u(0, t, v(e) ? e : c)), + o[2][3].add(u(0, t, v(n) ? n : it)); + }).promise(); + }, + promise: function (t) { + return null != t ? B.extend(t, a) : a; + }, + }, + s = {}; + return ( + B.each(o, function (t, e) { + var n = e[2], + r = e[5]; + (a[e[1]] = n.add), + r && + n.add( + function () { + i = r; + }, + o[3 - t][2].disable, + o[3 - t][3].disable, + o[0][2].lock, + o[0][3].lock, + ), + n.add(e[3].fire), + (s[e[0]] = function () { + return s[e[0] + 'With'](this === s ? void 0 : this, arguments), this; + }), + (s[e[0] + 'With'] = n.fireWith); + }), + a.promise(s), + t && t.call(s, s), + s + ); + }, + when: function (t) { + function e(e) { + return function (t) { + (i[e] = this), + (o[e] = 1 < arguments.length ? s.call(arguments) : t), + --n || a.resolveWith(i, o); + }; + } + var n = arguments.length, + r = n, + i = Array(r), + o = s.call(arguments), + a = B.Deferred(); + if ( + n <= 1 && + (ot(t, a.done(e(r)).resolve, a.reject, !n), + 'pending' === a.state() || v(o[r] && o[r].then)) + ) + return a.then(); + for (; r--; ) ot(o[r], e(r), a.reject); + return a.promise(); + }, + }); + var at = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/, + st = + ((B.Deferred.exceptionHook = function (t, e) { + w.console && + w.console.warn && + t && + at.test(t.name) && + w.console.warn('jQuery.Deferred exception: ' + t.message, t.stack, e); + }), + (B.readyException = function (t) { + w.setTimeout(function () { + throw t; + }); + }), + B.Deferred()); + function lt() { + E.removeEventListener('DOMContentLoaded', lt), + w.removeEventListener('load', lt), + B.ready(); + } + (B.fn.ready = function (t) { + return ( + st.then(t).catch(function (t) { + B.readyException(t); + }), + this + ); + }), + B.extend({ + isReady: !1, + readyWait: 1, + ready: function (t) { + (!0 === t ? --B.readyWait : B.isReady) || + ((B.isReady = !0) !== t && 0 < --B.readyWait) || + st.resolveWith(E, [B]); + }, + }), + (B.ready.then = st.then), + 'complete' === E.readyState || + ('loading' !== E.readyState && !E.documentElement.doScroll) + ? w.setTimeout(B.ready) + : (E.addEventListener('DOMContentLoaded', lt), w.addEventListener('load', lt)); + function A(t, e, n, r, i, o, a) { + var s = 0, + l = t.length, + u = null == n; + if ('object' === d(n)) for (s in ((i = !0), n)) A(t, e, s, n[s], !0, o, a); + else if ( + void 0 !== r && + ((i = !0), + v(r) || (a = !0), + (e = u + ? a + ? (e.call(t, r), null) + : ((u = e), + function (t, e, n) { + return u.call(B(t), n); + }) + : e)) + ) + for (; s < l; s++) e(t[s], n, a ? r : r.call(t[s], s, e(t[s], n))); + return i ? t : u ? e.call(t) : l ? e(t[0], n) : o; + } + var ut = /^-ms-/, + ct = /-([a-z])/g; + function At(t, e) { + return e.toUpperCase(); + } + function b(t) { + return t.replace(ut, 'ms-').replace(ct, At); + } + function m(t) { + return 1 === t.nodeType || 9 === t.nodeType || !+t.nodeType; + } + function ht() { + this.expando = B.expando + ht.uid++; + } + (ht.uid = 1), + (ht.prototype = { + cache: function (t) { + var e = t[this.expando]; + return ( + e || + ((e = {}), + m(t) && + (t.nodeType + ? (t[this.expando] = e) + : Object.defineProperty(t, this.expando, { + value: e, + configurable: !0, + }))), + e + ); + }, + set: function (t, e, n) { + var r, + i = this.cache(t); + if ('string' == typeof e) i[b(e)] = n; + else for (r in e) i[b(r)] = e[r]; + return i; + }, + get: function (t, e) { + return void 0 === e ? this.cache(t) : t[this.expando] && t[this.expando][b(e)]; + }, + access: function (t, e, n) { + return void 0 === e || (e && 'string' == typeof e && void 0 === n) + ? this.get(t, e) + : (this.set(t, e, n), void 0 !== n ? n : e); + }, + remove: function (t, e) { + var n, + r = t[this.expando]; + if (void 0 !== r) { + if (void 0 !== e) { + n = (e = Array.isArray(e) + ? e.map(b) + : (e = b(e)) in r + ? [e] + : e.match(C) || []).length; + for (; n--; ) delete r[e[n]]; + } + (void 0 !== e && !B.isEmptyObject(r)) || + (t.nodeType ? (t[this.expando] = void 0) : delete t[this.expando]); + } + }, + hasData: function (t) { + t = t[this.expando]; + return void 0 !== t && !B.isEmptyObject(t); + }, + }); + var y = new ht(), + u = new ht(), + pt = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + dt = /[A-Z]/g; + function ft(t, e, n) { + var r, i; + if (void 0 === n && 1 === t.nodeType) + if ( + ((r = 'data-' + e.replace(dt, '-$&').toLowerCase()), + 'string' == typeof (n = t.getAttribute(r))) + ) { + try { + n = + 'true' === (i = n) || + ('false' !== i && + ('null' === i + ? null + : i === +i + '' + ? +i + : pt.test(i) + ? JSON.parse(i) + : i)); + } catch (t) {} + u.set(t, e, n); + } else n = void 0; + return n; + } + B.extend({ + hasData: function (t) { + return u.hasData(t) || y.hasData(t); + }, + data: function (t, e, n) { + return u.access(t, e, n); + }, + removeData: function (t, e) { + u.remove(t, e); + }, + _data: function (t, e, n) { + return y.access(t, e, n); + }, + _removeData: function (t, e) { + y.remove(t, e); + }, + }), + B.fn.extend({ + data: function (n, t) { + var e, + r, + i, + o = this[0], + a = o && o.attributes; + if (void 0 !== n) + return 'object' == typeof n + ? this.each(function () { + u.set(this, n); + }) + : A( + this, + function (t) { + var e; + if (o && void 0 === t) + return void 0 !== (e = u.get(o, n)) || void 0 !== (e = ft(o, n)) + ? e + : void 0; + this.each(function () { + u.set(this, n, t); + }); + }, + null, + t, + 1 < arguments.length, + null, + !0, + ); + if ( + this.length && + ((i = u.get(o)), 1 === o.nodeType && !y.get(o, 'hasDataAttrs')) + ) { + for (e = a.length; e--; ) + a[e] && + 0 === (r = a[e].name).indexOf('data-') && + ((r = b(r.slice(5))), ft(o, r, i[r])); + y.set(o, 'hasDataAttrs', !0); + } + return i; + }, + removeData: function (t) { + return this.each(function () { + u.remove(this, t); + }); + }, + }), + B.extend({ + queue: function (t, e, n) { + var r; + if (t) + return ( + (r = y.get(t, (e = (e || 'fx') + 'queue'))), + n && + (!r || Array.isArray(n) ? (r = y.access(t, e, B.makeArray(n))) : r.push(n)), + r || [] + ); + }, + dequeue: function (t, e) { + e = e || 'fx'; + var n = B.queue(t, e), + r = n.length, + i = n.shift(), + o = B._queueHooks(t, e); + 'inprogress' === i && ((i = n.shift()), r--), + i && + ('fx' === e && n.unshift('inprogress'), + delete o.stop, + i.call( + t, + function () { + B.dequeue(t, e); + }, + o, + )), + !r && o && o.empty.fire(); + }, + _queueHooks: function (t, e) { + var n = e + 'queueHooks'; + return ( + y.get(t, n) || + y.access(t, n, { + empty: B.Callbacks('once memory').add(function () { + y.remove(t, [e + 'queue', n]); + }), + }) + ); + }, + }), + B.fn.extend({ + queue: function (e, n) { + var t = 2; + return ( + 'string' != typeof e && ((n = e), (e = 'fx'), t--), + arguments.length < t + ? B.queue(this[0], e) + : void 0 === n + ? this + : this.each(function () { + var t = B.queue(this, e, n); + B._queueHooks(this, e), + 'fx' === e && 'inprogress' !== t[0] && B.dequeue(this, e); + }) + ); + }, + dequeue: function (t) { + return this.each(function () { + B.dequeue(this, t); + }); + }, + clearQueue: function (t) { + return this.queue(t || 'fx', []); + }, + promise: function (t, e) { + function n() { + --i || o.resolveWith(a, [a]); + } + var r, + i = 1, + o = B.Deferred(), + a = this, + s = this.length; + for ('string' != typeof t && ((e = t), (t = void 0)), t = t || 'fx'; s--; ) + (r = y.get(a[s], t + 'queueHooks')) && r.empty && (i++, r.empty.add(n)); + return n(), o.promise(e); + }, + }); + function gt(t, e) { + return ( + 'none' === (t = e || t).style.display || + ('' === t.style.display && I(t) && 'none' === B.css(t, 'display')) + ); + } + var t = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + mt = new RegExp('^(?:([+-])=|)(' + t + ')([a-z%]*)$', 'i'), + h = ['Top', 'Right', 'Bottom', 'Left'], + x = E.documentElement, + I = function (t) { + return B.contains(t.ownerDocument, t); + }, + vt = { composed: !0 }; + x.getRootNode && + (I = function (t) { + return B.contains(t.ownerDocument, t) || t.getRootNode(vt) === t.ownerDocument; + }); + function bt(t, e, n, r) { + var i, + o, + a = 20, + s = r + ? function () { + return r.cur(); + } + : function () { + return B.css(t, e, ''); + }, + l = s(), + u = (n && n[3]) || (B.cssNumber[e] ? '' : 'px'), + c = t.nodeType && (B.cssNumber[e] || ('px' !== u && +l)) && mt.exec(B.css(t, e)); + if (c && c[3] !== u) { + for (u = u || c[3], c = +(l /= 2) || 1; a--; ) + B.style(t, e, c + u), + (1 - o) * (1 - (o = s() / l || 0.5)) <= 0 && (a = 0), + (c /= o); + B.style(t, e, (c *= 2) + u), (n = n || []); + } + return ( + n && + ((c = +c || +l || 0), + (i = n[1] ? c + (n[1] + 1) * n[2] : +n[2]), + r && ((r.unit = u), (r.start = c), (r.end = i))), + i + ); + } + var yt = {}; + function M(t, e) { + for (var n, r, i, o, a, s = [], l = 0, u = t.length; l < u; l++) + (r = t[l]).style && + ((n = r.style.display), + e + ? ('none' === n && + ((s[l] = y.get(r, 'display') || null), s[l] || (r.style.display = '')), + '' === r.style.display && + gt(r) && + (s[l] = + ((a = o = void 0), + (o = (i = r).ownerDocument), + (i = i.nodeName), + (a = yt[i]) || + ((o = o.body.appendChild(o.createElement(i))), + (a = B.css(o, 'display')), + o.parentNode.removeChild(o), + (yt[i] = a = 'none' === a ? 'block' : a)), + a))) + : 'none' !== n && ((s[l] = 'none'), y.set(r, 'display', n))); + for (l = 0; l < u; l++) null != s[l] && (t[l].style.display = s[l]); + return t; + } + B.fn.extend({ + show: function () { + return M(this, !0); + }, + hide: function () { + return M(this); + }, + toggle: function (t) { + return 'boolean' == typeof t + ? t + ? this.show() + : this.hide() + : this.each(function () { + gt(this) ? B(this).show() : B(this).hide(); + }); + }, + }); + var wt = /^(?:checkbox|radio)$/i, + Et = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, + Bt = /^$|^module$|\/(?:java|ecma)script/i, + D = + ((Q = E.createDocumentFragment().appendChild(E.createElement('div'))), + (a = E.createElement('input')).setAttribute('type', 'radio'), + a.setAttribute('checked', 'checked'), + a.setAttribute('name', 't'), + Q.appendChild(a), + (g.checkClone = Q.cloneNode(!0).cloneNode(!0).lastChild.checked), + (Q.innerHTML = '<textarea>x</textarea>'), + (g.noCloneChecked = !!Q.cloneNode(!0).lastChild.defaultValue), + (Q.innerHTML = '<option></option>'), + (g.option = !!Q.lastChild), + { + thead: [1, '<table>', '</table>'], + col: [2, '<table><colgroup>', '</colgroup></table>'], + tr: [2, '<table><tbody>', '</tbody></table>'], + td: [3, '<table><tbody><tr>', '</tr></tbody></table>'], + _default: [0, '', ''], + }); + function S(t, e) { + var n = + void 0 !== t.getElementsByTagName + ? t.getElementsByTagName(e || '*') + : void 0 !== t.querySelectorAll + ? t.querySelectorAll(e || '*') + : []; + return void 0 === e || (e && l(t, e)) ? B.merge([t], n) : n; + } + function Ct(t, e) { + for (var n = 0, r = t.length; n < r; n++) + y.set(t[n], 'globalEval', !e || y.get(e[n], 'globalEval')); + } + (D.tbody = D.tfoot = D.colgroup = D.caption = D.thead), + (D.th = D.td), + g.option || + (D.optgroup = D.option = [1, "<select multiple='multiple'>", '</select>']); + var xt = /<|&#?\w+;/; + function It(t, e, n, r, i) { + for ( + var o, a, s, l, u, c = e.createDocumentFragment(), A = [], h = 0, p = t.length; + h < p; + h++ + ) + if ((o = t[h]) || 0 === o) + if ('object' === d(o)) B.merge(A, o.nodeType ? [o] : o); + else if (xt.test(o)) { + for ( + a = a || c.appendChild(e.createElement('div')), + s = (Et.exec(o) || ['', ''])[1].toLowerCase(), + s = D[s] || D._default, + a.innerHTML = s[1] + B.htmlPrefilter(o) + s[2], + u = s[0]; + u--; + + ) + a = a.lastChild; + B.merge(A, a.childNodes), ((a = c.firstChild).textContent = ''); + } else A.push(e.createTextNode(o)); + for (c.textContent = '', h = 0; (o = A[h++]); ) + if (r && -1 < B.inArray(o, r)) i && i.push(o); + else if (((l = I(o)), (a = S(c.appendChild(o), 'script')), l && Ct(a), n)) + for (u = 0; (o = a[u++]); ) Bt.test(o.type || '') && n.push(o); + return c; + } + var Mt = /^([^.]*)(?:\.(.+)|)/; + function n() { + return !0; + } + function p() { + return !1; + } + function Dt(t, e) { + return ( + (t === + (function () { + try { + return E.activeElement; + } catch (t) {} + })()) == + ('focus' === e) + ); + } + function St(t, e, n, r, i, o) { + var a, s; + if ('object' == typeof e) { + for (s in ('string' != typeof n && ((r = r || n), (n = void 0)), e)) + St(t, s, n, r, e[s], o); + return t; + } + if ( + (null == r && null == i + ? ((i = n), (r = n = void 0)) + : null == i && + ('string' == typeof n + ? ((i = r), (r = void 0)) + : ((i = r), (r = n), (n = void 0))), + !1 === i) + ) + i = p; + else if (!i) return t; + return ( + 1 === o && + ((a = i), + ((i = function (t) { + return B().off(t), a.apply(this, arguments); + }).guid = a.guid || (a.guid = B.guid++))), + t.each(function () { + B.event.add(this, e, i, r, n); + }) + ); + } + function kt(t, i, o) { + o + ? (y.set(t, i, !1), + B.event.add(t, i, { + namespace: !1, + handler: function (t) { + var e, + n, + r = y.get(this, i); + if (1 & t.isTrigger && this[i]) { + if (r.length) + (B.event.special[i] || {}).delegateType && t.stopPropagation(); + else if ( + ((r = s.call(arguments)), + y.set(this, i, r), + (e = o(this, i)), + this[i](), + r !== (n = y.get(this, i)) || e ? y.set(this, i, !1) : (n = {}), + r !== n) + ) + return t.stopImmediatePropagation(), t.preventDefault(), n && n.value; + } else + r.length && + (y.set(this, i, { + value: B.event.trigger( + B.extend(r[0], B.Event.prototype), + r.slice(1), + this, + ), + }), + t.stopImmediatePropagation()); + }, + })) + : void 0 === y.get(t, i) && B.event.add(t, i, n); + } + (B.event = { + global: {}, + add: function (e, t, n, r, i) { + var o, + a, + s, + l, + u, + c, + A, + h, + p, + d = y.get(e); + if (m(e)) + for ( + n.handler && ((n = (o = n).handler), (i = o.selector)), + i && B.find.matchesSelector(x, i), + n.guid || (n.guid = B.guid++), + (s = d.events) || (s = d.events = Object.create(null)), + (a = d.handle) || + (a = d.handle = + function (t) { + return void 0 !== B && B.event.triggered !== t.type + ? B.event.dispatch.apply(e, arguments) + : void 0; + }), + l = (t = (t || '').match(C) || ['']).length; + l--; + + ) + (A = p = (h = Mt.exec(t[l]) || [])[1]), + (h = (h[2] || '').split('.').sort()), + A && + ((u = B.event.special[A] || {}), + (A = (i ? u.delegateType : u.bindType) || A), + (u = B.event.special[A] || {}), + (p = B.extend( + { + type: A, + origType: p, + data: r, + handler: n, + guid: n.guid, + selector: i, + needsContext: i && B.expr.match.needsContext.test(i), + namespace: h.join('.'), + }, + o, + )), + (c = s[A]) || + (((c = s[A] = []).delegateCount = 0), + (u.setup && !1 !== u.setup.call(e, r, h, a)) || + (e.addEventListener && e.addEventListener(A, a))), + u.add && (u.add.call(e, p), p.handler.guid || (p.handler.guid = n.guid)), + i ? c.splice(c.delegateCount++, 0, p) : c.push(p), + (B.event.global[A] = !0)); + }, + remove: function (t, e, n, r, i) { + var o, + a, + s, + l, + u, + c, + A, + h, + p, + d, + f, + g = y.hasData(t) && y.get(t); + if (g && (l = g.events)) { + for (u = (e = (e || '').match(C) || ['']).length; u--; ) + if ( + ((p = f = (s = Mt.exec(e[u]) || [])[1]), + (d = (s[2] || '').split('.').sort()), + p) + ) { + for ( + A = B.event.special[p] || {}, + h = l[(p = (r ? A.delegateType : A.bindType) || p)] || [], + s = s[2] && new RegExp('(^|\\.)' + d.join('\\.(?:.*\\.|)') + '(\\.|$)'), + a = o = h.length; + o--; + + ) + (c = h[o]), + (!i && f !== c.origType) || + (n && n.guid !== c.guid) || + (s && !s.test(c.namespace)) || + (r && r !== c.selector && ('**' !== r || !c.selector)) || + (h.splice(o, 1), + c.selector && h.delegateCount--, + A.remove && A.remove.call(t, c)); + a && + !h.length && + ((A.teardown && !1 !== A.teardown.call(t, d, g.handle)) || + B.removeEvent(t, p, g.handle), + delete l[p]); + } else for (p in l) B.event.remove(t, p + e[u], n, r, !0); + B.isEmptyObject(l) && y.remove(t, 'handle events'); + } + }, + dispatch: function (t) { + var e, + n, + r, + i, + o, + a = new Array(arguments.length), + s = B.event.fix(t), + t = (y.get(this, 'events') || Object.create(null))[s.type] || [], + l = B.event.special[s.type] || {}; + for (a[0] = s, e = 1; e < arguments.length; e++) a[e] = arguments[e]; + if ( + ((s.delegateTarget = this), !l.preDispatch || !1 !== l.preDispatch.call(this, s)) + ) { + for ( + o = B.event.handlers.call(this, s, t), e = 0; + (r = o[e++]) && !s.isPropagationStopped(); + + ) + for ( + s.currentTarget = r.elem, n = 0; + (i = r.handlers[n++]) && !s.isImmediatePropagationStopped(); + + ) + (s.rnamespace && !1 !== i.namespace && !s.rnamespace.test(i.namespace)) || + ((s.handleObj = i), + (s.data = i.data), + void 0 !== + (i = ((B.event.special[i.origType] || {}).handle || i.handler).apply( + r.elem, + a, + )) && + !1 === (s.result = i) && + (s.preventDefault(), s.stopPropagation())); + return l.postDispatch && l.postDispatch.call(this, s), s.result; + } + }, + handlers: function (t, e) { + var n, + r, + i, + o, + a, + s = [], + l = e.delegateCount, + u = t.target; + if (l && u.nodeType && !('click' === t.type && 1 <= t.button)) + for (; u !== this; u = u.parentNode || this) + if (1 === u.nodeType && ('click' !== t.type || !0 !== u.disabled)) { + for (o = [], a = {}, n = 0; n < l; n++) + void 0 === a[(i = (r = e[n]).selector + ' ')] && + (a[i] = r.needsContext + ? -1 < B(i, this).index(u) + : B.find(i, this, null, [u]).length), + a[i] && o.push(r); + o.length && s.push({ elem: u, handlers: o }); + } + return (u = this), l < e.length && s.push({ elem: u, handlers: e.slice(l) }), s; + }, + addProp: function (e, t) { + Object.defineProperty(B.Event.prototype, e, { + enumerable: !0, + configurable: !0, + get: v(t) + ? function () { + if (this.originalEvent) return t(this.originalEvent); + } + : function () { + if (this.originalEvent) return this.originalEvent[e]; + }, + set: function (t) { + Object.defineProperty(this, e, { + enumerable: !0, + configurable: !0, + writable: !0, + value: t, + }); + }, + }); + }, + fix: function (t) { + return t[B.expando] ? t : new B.Event(t); + }, + special: { + load: { noBubble: !0 }, + click: { + setup: function (t) { + t = this || t; + return wt.test(t.type) && t.click && l(t, 'input') && kt(t, 'click', n), !1; + }, + trigger: function (t) { + t = this || t; + return wt.test(t.type) && t.click && l(t, 'input') && kt(t, 'click'), !0; + }, + _default: function (t) { + t = t.target; + return ( + (wt.test(t.type) && t.click && l(t, 'input') && y.get(t, 'click')) || + l(t, 'a') + ); + }, + }, + beforeunload: { + postDispatch: function (t) { + void 0 !== t.result && + t.originalEvent && + (t.originalEvent.returnValue = t.result); + }, + }, + }, + }), + (B.removeEvent = function (t, e, n) { + t.removeEventListener && t.removeEventListener(e, n); + }), + (B.Event = function (t, e) { + if (!(this instanceof B.Event)) return new B.Event(t, e); + t && t.type + ? ((this.originalEvent = t), + (this.type = t.type), + (this.isDefaultPrevented = + t.defaultPrevented || (void 0 === t.defaultPrevented && !1 === t.returnValue) + ? n + : p), + (this.target = + t.target && 3 === t.target.nodeType ? t.target.parentNode : t.target), + (this.currentTarget = t.currentTarget), + (this.relatedTarget = t.relatedTarget)) + : (this.type = t), + e && B.extend(this, e), + (this.timeStamp = (t && t.timeStamp) || Date.now()), + (this[B.expando] = !0); + }), + (B.Event.prototype = { + constructor: B.Event, + isDefaultPrevented: p, + isPropagationStopped: p, + isImmediatePropagationStopped: p, + isSimulated: !1, + preventDefault: function () { + var t = this.originalEvent; + (this.isDefaultPrevented = n), t && !this.isSimulated && t.preventDefault(); + }, + stopPropagation: function () { + var t = this.originalEvent; + (this.isPropagationStopped = n), t && !this.isSimulated && t.stopPropagation(); + }, + stopImmediatePropagation: function () { + var t = this.originalEvent; + (this.isImmediatePropagationStopped = n), + t && !this.isSimulated && t.stopImmediatePropagation(), + this.stopPropagation(); + }, + }), + B.each( + { + altKey: !0, + bubbles: !0, + cancelable: !0, + changedTouches: !0, + ctrlKey: !0, + detail: !0, + eventPhase: !0, + metaKey: !0, + pageX: !0, + pageY: !0, + shiftKey: !0, + view: !0, + char: !0, + code: !0, + charCode: !0, + key: !0, + keyCode: !0, + button: !0, + buttons: !0, + clientX: !0, + clientY: !0, + offsetX: !0, + offsetY: !0, + pointerId: !0, + pointerType: !0, + screenX: !0, + screenY: !0, + targetTouches: !0, + toElement: !0, + touches: !0, + which: !0, + }, + B.event.addProp, + ), + B.each({ focus: 'focusin', blur: 'focusout' }, function (t, e) { + B.event.special[t] = { + setup: function () { + return kt(this, t, Dt), !1; + }, + trigger: function () { + return kt(this, t), !0; + }, + _default: function () { + return !0; + }, + delegateType: e, + }; + }), + B.each( + { + mouseenter: 'mouseover', + mouseleave: 'mouseout', + pointerenter: 'pointerover', + pointerleave: 'pointerout', + }, + function (t, i) { + B.event.special[t] = { + delegateType: i, + bindType: i, + handle: function (t) { + var e, + n = t.relatedTarget, + r = t.handleObj; + return ( + (n && (n === this || B.contains(this, n))) || + ((t.type = r.origType), + (e = r.handler.apply(this, arguments)), + (t.type = i)), + e + ); + }, + }; + }, + ), + B.fn.extend({ + on: function (t, e, n, r) { + return St(this, t, e, n, r); + }, + one: function (t, e, n, r) { + return St(this, t, e, n, r, 1); + }, + off: function (t, e, n) { + var r, i; + if (t && t.preventDefault && t.handleObj) + return ( + (r = t.handleObj), + B(t.delegateTarget).off( + r.namespace ? r.origType + '.' + r.namespace : r.origType, + r.selector, + r.handler, + ), + this + ); + if ('object' != typeof t) + return ( + (!1 !== e && 'function' != typeof e) || ((n = e), (e = void 0)), + !1 === n && (n = p), + this.each(function () { + B.event.remove(this, t, n, e); + }) + ); + for (i in t) this.off(i, e, t[i]); + return this; + }, + }); + var Ft = /<script|<style|<link/i, + Qt = /checked\s*(?:[^=]|=\s*.checked.)/i, + _t = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; + function Tt(t, e) { + return ( + (l(t, 'table') && + l(11 !== e.nodeType ? e : e.firstChild, 'tr') && + B(t).children('tbody')[0]) || + t + ); + } + function Rt(t) { + return (t.type = (null !== t.getAttribute('type')) + '/' + t.type), t; + } + function Ut(t) { + return ( + 'true/' === (t.type || '').slice(0, 5) + ? (t.type = t.type.slice(5)) + : t.removeAttribute('type'), + t + ); + } + function Nt(t, e) { + var n, r, i, o; + if (1 === e.nodeType) { + if (y.hasData(t) && (o = y.get(t).events)) + for (i in (y.remove(e, 'handle events'), o)) + for (n = 0, r = o[i].length; n < r; n++) B.event.add(e, i, o[i][n]); + u.hasData(t) && ((t = u.access(t)), (t = B.extend({}, t)), u.set(e, t)); + } + } + function k(n, r, i, o) { + r = P(r); + var t, + e, + a, + s, + l, + u, + c = 0, + A = n.length, + h = A - 1, + p = r[0], + d = v(p); + if (d || (1 < A && 'string' == typeof p && !g.checkClone && Qt.test(p))) + return n.each(function (t) { + var e = n.eq(t); + d && (r[0] = p.call(this, t, e.html())), k(e, r, i, o); + }); + if ( + A && + ((e = (t = It(r, n[0].ownerDocument, !1, n, o)).firstChild), + 1 === t.childNodes.length && (t = e), + e || o) + ) { + for (s = (a = B.map(S(t, 'script'), Rt)).length; c < A; c++) + (l = t), + c !== h && ((l = B.clone(l, !0, !0)), s && B.merge(a, S(l, 'script'))), + i.call(n[c], l, c); + if (s) + for (u = a[a.length - 1].ownerDocument, B.map(a, Ut), c = 0; c < s; c++) + (l = a[c]), + Bt.test(l.type || '') && + !y.access(l, 'globalEval') && + B.contains(u, l) && + (l.src && 'module' !== (l.type || '').toLowerCase() + ? B._evalUrl && + !l.noModule && + B._evalUrl(l.src, { nonce: l.nonce || l.getAttribute('nonce') }, u) + : q(l.textContent.replace(_t, ''), l, u)); + } + return n; + } + function Pt(t, e, n) { + for (var r, i = e ? B.filter(e, t) : t, o = 0; null != (r = i[o]); o++) + n || 1 !== r.nodeType || B.cleanData(S(r)), + r.parentNode && (n && I(r) && Ct(S(r, 'script')), r.parentNode.removeChild(r)); + return t; + } + B.extend({ + htmlPrefilter: function (t) { + return t; + }, + clone: function (t, e, n) { + var r, + i, + o, + a, + s, + l, + u, + c = t.cloneNode(!0), + A = I(t); + if (!(g.noCloneChecked || (1 !== t.nodeType && 11 !== t.nodeType) || B.isXMLDoc(t))) + for (a = S(c), r = 0, i = (o = S(t)).length; r < i; r++) + (s = o[r]), + (l = a[r]), + (u = void 0), + 'input' === (u = l.nodeName.toLowerCase()) && wt.test(s.type) + ? (l.checked = s.checked) + : ('input' !== u && 'textarea' !== u) || (l.defaultValue = s.defaultValue); + if (e) + if (n) + for (o = o || S(t), a = a || S(c), r = 0, i = o.length; r < i; r++) + Nt(o[r], a[r]); + else Nt(t, c); + return 0 < (a = S(c, 'script')).length && Ct(a, !A && S(t, 'script')), c; + }, + cleanData: function (t) { + for (var e, n, r, i = B.event.special, o = 0; void 0 !== (n = t[o]); o++) + if (m(n)) { + if ((e = n[y.expando])) { + if (e.events) + for (r in e.events) + i[r] ? B.event.remove(n, r) : B.removeEvent(n, r, e.handle); + n[y.expando] = void 0; + } + n[u.expando] && (n[u.expando] = void 0); + } + }, + }), + B.fn.extend({ + detach: function (t) { + return Pt(this, t, !0); + }, + remove: function (t) { + return Pt(this, t); + }, + text: function (t) { + return A( + this, + function (t) { + return void 0 === t + ? B.text(this) + : this.empty().each(function () { + (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || + (this.textContent = t); + }); + }, + null, + t, + arguments.length, + ); + }, + append: function () { + return k(this, arguments, function (t) { + (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || + Tt(this, t).appendChild(t); + }); + }, + prepend: function () { + return k(this, arguments, function (t) { + var e; + (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || + (e = Tt(this, t)).insertBefore(t, e.firstChild); + }); + }, + before: function () { + return k(this, arguments, function (t) { + this.parentNode && this.parentNode.insertBefore(t, this); + }); + }, + after: function () { + return k(this, arguments, function (t) { + this.parentNode && this.parentNode.insertBefore(t, this.nextSibling); + }); + }, + empty: function () { + for (var t, e = 0; null != (t = this[e]); e++) + 1 === t.nodeType && (B.cleanData(S(t, !1)), (t.textContent = '')); + return this; + }, + clone: function (t, e) { + return ( + (t = null != t && t), + (e = null == e ? t : e), + this.map(function () { + return B.clone(this, t, e); + }) + ); + }, + html: function (t) { + return A( + this, + function (t) { + var e = this[0] || {}, + n = 0, + r = this.length; + if (void 0 === t && 1 === e.nodeType) return e.innerHTML; + if ( + 'string' == typeof t && + !Ft.test(t) && + !D[(Et.exec(t) || ['', ''])[1].toLowerCase()] + ) { + t = B.htmlPrefilter(t); + try { + for (; n < r; n++) + 1 === (e = this[n] || {}).nodeType && + (B.cleanData(S(e, !1)), (e.innerHTML = t)); + e = 0; + } catch (t) {} + } + e && this.empty().append(t); + }, + null, + t, + arguments.length, + ); + }, + replaceWith: function () { + var n = []; + return k( + this, + arguments, + function (t) { + var e = this.parentNode; + B.inArray(this, n) < 0 && + (B.cleanData(S(this)), e && e.replaceChild(t, this)); + }, + n, + ); + }, + }), + B.each( + { + appendTo: 'append', + prependTo: 'prepend', + insertBefore: 'before', + insertAfter: 'after', + replaceAll: 'replaceWith', + }, + function (t, a) { + B.fn[t] = function (t) { + for (var e, n = [], r = B(t), i = r.length - 1, o = 0; o <= i; o++) + (e = o === i ? this : this.clone(!0)), B(r[o])[a](e), L.apply(n, e.get()); + return this.pushStack(n); + }; + }, + ); + function Lt(t) { + var e = t.ownerDocument.defaultView; + return (e = e && e.opener ? e : w).getComputedStyle(t); + } + function Yt(t, e, n) { + var r, + i = {}; + for (r in e) (i[r] = t.style[r]), (t.style[r] = e[r]); + for (r in ((n = n.call(t)), e)) t.style[r] = i[r]; + return n; + } + var Ot, + Gt, + zt, + Ht, + jt, + Vt, + qt, + i, + Wt = new RegExp('^(' + t + ')(?!px)[a-z%]+$', 'i'), + Jt = new RegExp(h.join('|'), 'i'); + function Kt() { + var t; + i && + ((qt.style.cssText = + 'position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0'), + (i.style.cssText = + 'position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%'), + x.appendChild(qt).appendChild(i), + (t = w.getComputedStyle(i)), + (Ot = '1%' !== t.top), + (Vt = 12 === Zt(t.marginLeft)), + (i.style.right = '60%'), + (Ht = 36 === Zt(t.right)), + (Gt = 36 === Zt(t.width)), + (i.style.position = 'absolute'), + (zt = 12 === Zt(i.offsetWidth / 3)), + x.removeChild(qt), + (i = null)); + } + function Zt(t) { + return Math.round(parseFloat(t)); + } + function Xt(t, e, n) { + var r, + i, + o = t.style; + return ( + (n = n || Lt(t)) && + ('' !== (i = n.getPropertyValue(e) || n[e]) || I(t) || (i = B.style(t, e)), + !g.pixelBoxStyles() && + Wt.test(i) && + Jt.test(e) && + ((t = o.width), + (e = o.minWidth), + (r = o.maxWidth), + (o.minWidth = o.maxWidth = o.width = i), + (i = n.width), + (o.width = t), + (o.minWidth = e), + (o.maxWidth = r))), + void 0 !== i ? i + '' : i + ); + } + function $t(t, e) { + return { + get: function () { + if (!t()) return (this.get = e).apply(this, arguments); + delete this.get; + }, + }; + } + (qt = E.createElement('div')), + (i = E.createElement('div')).style && + ((i.style.backgroundClip = 'content-box'), + (i.cloneNode(!0).style.backgroundClip = ''), + (g.clearCloneStyle = 'content-box' === i.style.backgroundClip), + B.extend(g, { + boxSizingReliable: function () { + return Kt(), Gt; + }, + pixelBoxStyles: function () { + return Kt(), Ht; + }, + pixelPosition: function () { + return Kt(), Ot; + }, + reliableMarginLeft: function () { + return Kt(), Vt; + }, + scrollboxSize: function () { + return Kt(), zt; + }, + reliableTrDimensions: function () { + var t, e, n; + return ( + null == jt && + ((t = E.createElement('table')), + (e = E.createElement('tr')), + (n = E.createElement('div')), + (t.style.cssText = + 'position:absolute;left:-11111px;border-collapse:separate'), + (e.style.cssText = 'border:1px solid'), + (e.style.height = '1px'), + (n.style.height = '9px'), + (n.style.display = 'block'), + x.appendChild(t).appendChild(e).appendChild(n), + (n = w.getComputedStyle(e)), + (jt = + parseInt(n.height, 10) + + parseInt(n.borderTopWidth, 10) + + parseInt(n.borderBottomWidth, 10) === + e.offsetHeight), + x.removeChild(t)), + jt + ); + }, + })); + var te = ['Webkit', 'Moz', 'ms'], + ee = E.createElement('div').style, + ne = {}; + function re(t) { + var e = B.cssProps[t] || ne[t]; + return ( + e || + (t in ee + ? t + : (ne[t] = + (function (t) { + for (var e = t[0].toUpperCase() + t.slice(1), n = te.length; n--; ) + if ((t = te[n] + e) in ee) return t; + })(t) || t)) + ); + } + var ie = /^(none|table(?!-c[ea]).+)/, + oe = /^--/, + ae = { position: 'absolute', visibility: 'hidden', display: 'block' }, + se = { letterSpacing: '0', fontWeight: '400' }; + function le(t, e, n) { + var r = mt.exec(e); + return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || 'px') : e; + } + function ue(t, e, n, r, i, o) { + var a = 'width' === e ? 1 : 0, + s = 0, + l = 0; + if (n === (r ? 'border' : 'content')) return 0; + for (; a < 4; a += 2) + 'margin' === n && (l += B.css(t, n + h[a], !0, i)), + r + ? ('content' === n && (l -= B.css(t, 'padding' + h[a], !0, i)), + 'margin' !== n && (l -= B.css(t, 'border' + h[a] + 'Width', !0, i))) + : ((l += B.css(t, 'padding' + h[a], !0, i)), + 'padding' !== n + ? (l += B.css(t, 'border' + h[a] + 'Width', !0, i)) + : (s += B.css(t, 'border' + h[a] + 'Width', !0, i))); + return ( + !r && + 0 <= o && + (l += + Math.max( + 0, + Math.ceil(t['offset' + e[0].toUpperCase() + e.slice(1)] - o - l - s - 0.5), + ) || 0), + l + ); + } + function ce(t, e, n) { + var r = Lt(t), + i = (!g.boxSizingReliable() || n) && 'border-box' === B.css(t, 'boxSizing', !1, r), + o = i, + a = Xt(t, e, r), + s = 'offset' + e[0].toUpperCase() + e.slice(1); + if (Wt.test(a)) { + if (!n) return a; + a = 'auto'; + } + return ( + ((!g.boxSizingReliable() && i) || + (!g.reliableTrDimensions() && l(t, 'tr')) || + 'auto' === a || + (!parseFloat(a) && 'inline' === B.css(t, 'display', !1, r))) && + t.getClientRects().length && + ((i = 'border-box' === B.css(t, 'boxSizing', !1, r)), (o = s in t) && (a = t[s])), + (a = parseFloat(a) || 0) + ue(t, e, n || (i ? 'border' : 'content'), o, r, a) + 'px' + ); + } + function o(t, e, n, r, i) { + return new o.prototype.init(t, e, n, r, i); + } + B.extend({ + cssHooks: { + opacity: { + get: function (t, e) { + if (e) return '' === (e = Xt(t, 'opacity')) ? '1' : e; + }, + }, + }, + cssNumber: { + animationIterationCount: !0, + columnCount: !0, + fillOpacity: !0, + flexGrow: !0, + flexShrink: !0, + fontWeight: !0, + gridArea: !0, + gridColumn: !0, + gridColumnEnd: !0, + gridColumnStart: !0, + gridRow: !0, + gridRowEnd: !0, + gridRowStart: !0, + lineHeight: !0, + opacity: !0, + order: !0, + orphans: !0, + widows: !0, + zIndex: !0, + zoom: !0, + }, + cssProps: {}, + style: function (t, e, n, r) { + if (t && 3 !== t.nodeType && 8 !== t.nodeType && t.style) { + var i, + o, + a, + s = b(e), + l = oe.test(e), + u = t.style; + if ((l || (e = re(s)), (a = B.cssHooks[e] || B.cssHooks[s]), void 0 === n)) + return a && 'get' in a && void 0 !== (i = a.get(t, !1, r)) ? i : u[e]; + 'string' === (o = typeof n) && + (i = mt.exec(n)) && + i[1] && + ((n = bt(t, e, i)), (o = 'number')), + null != n && + n == n && + ('number' !== o || l || (n += (i && i[3]) || (B.cssNumber[s] ? '' : 'px')), + g.clearCloneStyle || + '' !== n || + 0 !== e.indexOf('background') || + (u[e] = 'inherit'), + (a && 'set' in a && void 0 === (n = a.set(t, n, r))) || + (l ? u.setProperty(e, n) : (u[e] = n))); + } + }, + css: function (t, e, n, r) { + var i, + o = b(e); + return ( + oe.test(e) || (e = re(o)), + 'normal' === + (i = + void 0 === + (i = (o = B.cssHooks[e] || B.cssHooks[o]) && 'get' in o ? o.get(t, !0, n) : i) + ? Xt(t, e, r) + : i) && + e in se && + (i = se[e]), + '' === n || n ? ((o = parseFloat(i)), !0 === n || isFinite(o) ? o || 0 : i) : i + ); + }, + }), + B.each(['height', 'width'], function (t, a) { + B.cssHooks[a] = { + get: function (t, e, n) { + if (e) + return !ie.test(B.css(t, 'display')) || + (t.getClientRects().length && t.getBoundingClientRect().width) + ? ce(t, a, n) + : Yt(t, ae, function () { + return ce(t, a, n); + }); + }, + set: function (t, e, n) { + var r = Lt(t), + i = !g.scrollboxSize() && 'absolute' === r.position, + o = (i || n) && 'border-box' === B.css(t, 'boxSizing', !1, r), + n = n ? ue(t, a, n, o, r) : 0; + return ( + o && + i && + (n -= Math.ceil( + t['offset' + a[0].toUpperCase() + a.slice(1)] - + parseFloat(r[a]) - + ue(t, a, 'border', !1, r) - + 0.5, + )), + n && + (o = mt.exec(e)) && + 'px' !== (o[3] || 'px') && + ((t.style[a] = e), (e = B.css(t, a))), + le(0, e, n) + ); + }, + }; + }), + (B.cssHooks.marginLeft = $t(g.reliableMarginLeft, function (t, e) { + if (e) + return ( + (parseFloat(Xt(t, 'marginLeft')) || + t.getBoundingClientRect().left - + Yt(t, { marginLeft: 0 }, function () { + return t.getBoundingClientRect().left; + })) + 'px' + ); + })), + B.each({ margin: '', padding: '', border: 'Width' }, function (i, o) { + (B.cssHooks[i + o] = { + expand: function (t) { + for ( + var e = 0, n = {}, r = 'string' == typeof t ? t.split(' ') : [t]; + e < 4; + e++ + ) + n[i + h[e] + o] = r[e] || r[e - 2] || r[0]; + return n; + }, + }), + 'margin' !== i && (B.cssHooks[i + o].set = le); + }), + B.fn.extend({ + css: function (t, e) { + return A( + this, + function (t, e, n) { + var r, + i, + o = {}, + a = 0; + if (Array.isArray(e)) { + for (r = Lt(t), i = e.length; a < i; a++) o[e[a]] = B.css(t, e[a], !1, r); + return o; + } + return void 0 !== n ? B.style(t, e, n) : B.css(t, e); + }, + t, + e, + 1 < arguments.length, + ); + }, + }), + (((B.Tween = o).prototype = { + constructor: o, + init: function (t, e, n, r, i, o) { + (this.elem = t), + (this.prop = n), + (this.easing = i || B.easing._default), + (this.options = e), + (this.start = this.now = this.cur()), + (this.end = r), + (this.unit = o || (B.cssNumber[n] ? '' : 'px')); + }, + cur: function () { + var t = o.propHooks[this.prop]; + return (t && t.get ? t : o.propHooks._default).get(this); + }, + run: function (t) { + var e, + n = o.propHooks[this.prop]; + return ( + this.options.duration + ? (this.pos = e = + B.easing[this.easing]( + t, + this.options.duration * t, + 0, + 1, + this.options.duration, + )) + : (this.pos = e = t), + (this.now = (this.end - this.start) * e + this.start), + this.options.step && this.options.step.call(this.elem, this.now, this), + (n && n.set ? n : o.propHooks._default).set(this), + this + ); + }, + }).init.prototype = o.prototype), + ((o.propHooks = { + _default: { + get: function (t) { + return 1 !== t.elem.nodeType || + (null != t.elem[t.prop] && null == t.elem.style[t.prop]) + ? t.elem[t.prop] + : (t = B.css(t.elem, t.prop, '')) && 'auto' !== t + ? t + : 0; + }, + set: function (t) { + B.fx.step[t.prop] + ? B.fx.step[t.prop](t) + : 1 !== t.elem.nodeType || + (!B.cssHooks[t.prop] && null == t.elem.style[re(t.prop)]) + ? (t.elem[t.prop] = t.now) + : B.style(t.elem, t.prop, t.now + t.unit); + }, + }, + }).scrollTop = o.propHooks.scrollLeft = + { + set: function (t) { + t.elem.nodeType && t.elem.parentNode && (t.elem[t.prop] = t.now); + }, + }), + (B.easing = { + linear: function (t) { + return t; + }, + swing: function (t) { + return 0.5 - Math.cos(t * Math.PI) / 2; + }, + _default: 'swing', + }), + (B.fx = o.prototype.init), + (B.fx.step = {}); + var F, + Ae, + a, + Q, + he = /^(?:toggle|show|hide)$/, + pe = /queueHooks$/; + function de() { + Ae && + (!1 === E.hidden && w.requestAnimationFrame + ? w.requestAnimationFrame(de) + : w.setTimeout(de, B.fx.interval), + B.fx.tick()); + } + function fe() { + return ( + w.setTimeout(function () { + F = void 0; + }), + (F = Date.now()) + ); + } + function ge(t, e) { + var n, + r = 0, + i = { height: t }; + for (e = e ? 1 : 0; r < 4; r += 2 - e) + i['margin' + (n = h[r])] = i['padding' + n] = t; + return e && (i.opacity = i.width = t), i; + } + function me(t, e, n) { + for ( + var r, i = (_.tweeners[e] || []).concat(_.tweeners['*']), o = 0, a = i.length; + o < a; + o++ + ) + if ((r = i[o].call(n, e, t))) return r; + } + function _(i, t, e) { + var n, + o, + r, + a, + s, + l, + u, + c = 0, + A = _.prefilters.length, + h = B.Deferred().always(function () { + delete p.elem; + }), + p = function () { + if (!o) { + for ( + var t = F || fe(), + t = Math.max(0, d.startTime + d.duration - t), + e = 1 - (t / d.duration || 0), + n = 0, + r = d.tweens.length; + n < r; + n++ + ) + d.tweens[n].run(e); + if ((h.notifyWith(i, [d, e, t]), e < 1 && r)) return t; + r || h.notifyWith(i, [d, 1, 0]), h.resolveWith(i, [d]); + } + return !1; + }, + d = h.promise({ + elem: i, + props: B.extend({}, t), + opts: B.extend(!0, { specialEasing: {}, easing: B.easing._default }, e), + originalProperties: t, + originalOptions: e, + startTime: F || fe(), + duration: e.duration, + tweens: [], + createTween: function (t, e) { + e = B.Tween(i, d.opts, t, e, d.opts.specialEasing[t] || d.opts.easing); + return d.tweens.push(e), e; + }, + stop: function (t) { + var e = 0, + n = t ? d.tweens.length : 0; + if (!o) { + for (o = !0; e < n; e++) d.tweens[e].run(1); + t + ? (h.notifyWith(i, [d, 1, 0]), h.resolveWith(i, [d, t])) + : h.rejectWith(i, [d, t]); + } + return this; + }, + }), + f = d.props, + g = f, + m = d.opts.specialEasing; + for (r in g) + if ( + ((s = m[(a = b(r))]), + (l = g[r]), + Array.isArray(l) && ((s = l[1]), (l = g[r] = l[0])), + r !== a && ((g[a] = l), delete g[r]), + (u = B.cssHooks[a]) && 'expand' in u) + ) + for (r in ((l = u.expand(l)), delete g[a], l)) + r in g || ((g[r] = l[r]), (m[r] = s)); + else m[a] = s; + for (; c < A; c++) + if ((n = _.prefilters[c].call(d, i, f, d.opts))) + return ( + v(n.stop) && (B._queueHooks(d.elem, d.opts.queue).stop = n.stop.bind(n)), n + ); + return ( + B.map(f, me, d), + v(d.opts.start) && d.opts.start.call(i, d), + d + .progress(d.opts.progress) + .done(d.opts.done, d.opts.complete) + .fail(d.opts.fail) + .always(d.opts.always), + B.fx.timer(B.extend(p, { elem: i, anim: d, queue: d.opts.queue })), + d + ); + } + (B.Animation = B.extend(_, { + tweeners: { + '*': [ + function (t, e) { + var n = this.createTween(t, e); + return bt(n.elem, t, mt.exec(e), n), n; + }, + ], + }, + tweener: function (t, e) { + for ( + var n, r = 0, i = (t = v(t) ? ((e = t), ['*']) : t.match(C)).length; + r < i; + r++ + ) + (n = t[r]), (_.tweeners[n] = _.tweeners[n] || []), _.tweeners[n].unshift(e); + }, + prefilters: [ + function (t, e, n) { + var r, + i, + o, + a, + s, + l, + u, + c = 'width' in e || 'height' in e, + A = this, + h = {}, + p = t.style, + d = t.nodeType && gt(t), + f = y.get(t, 'fxshow'); + for (r in (n.queue || + (null == (a = B._queueHooks(t, 'fx')).unqueued && + ((a.unqueued = 0), + (s = a.empty.fire), + (a.empty.fire = function () { + a.unqueued || s(); + })), + a.unqueued++, + A.always(function () { + A.always(function () { + a.unqueued--, B.queue(t, 'fx').length || a.empty.fire(); + }); + })), + e)) + if (((i = e[r]), he.test(i))) { + if ((delete e[r], (o = o || 'toggle' === i), i === (d ? 'hide' : 'show'))) { + if ('show' !== i || !f || void 0 === f[r]) continue; + d = !0; + } + h[r] = (f && f[r]) || B.style(t, r); + } + if ((l = !B.isEmptyObject(e)) || !B.isEmptyObject(h)) + for (r in (c && + 1 === t.nodeType && + ((n.overflow = [p.overflow, p.overflowX, p.overflowY]), + null == (u = f && f.display) && (u = y.get(t, 'display')), + 'none' === (c = B.css(t, 'display')) && + (u + ? (c = u) + : (M([t], !0), + (u = t.style.display || u), + (c = B.css(t, 'display')), + M([t]))), + ('inline' === c || ('inline-block' === c && null != u)) && + 'none' === B.css(t, 'float') && + (l || + (A.done(function () { + p.display = u; + }), + null == u && ((c = p.display), (u = 'none' === c ? '' : c))), + (p.display = 'inline-block'))), + n.overflow && + ((p.overflow = 'hidden'), + A.always(function () { + (p.overflow = n.overflow[0]), + (p.overflowX = n.overflow[1]), + (p.overflowY = n.overflow[2]); + })), + (l = !1), + h)) + l || + (f + ? 'hidden' in f && (d = f.hidden) + : (f = y.access(t, 'fxshow', { display: u })), + o && (f.hidden = !d), + d && M([t], !0), + A.done(function () { + for (r in (d || M([t]), y.remove(t, 'fxshow'), h)) B.style(t, r, h[r]); + })), + (l = me(d ? f[r] : 0, r, A)), + r in f || ((f[r] = l.start), d && ((l.end = l.start), (l.start = 0))); + }, + ], + prefilter: function (t, e) { + e ? _.prefilters.unshift(t) : _.prefilters.push(t); + }, + })), + (B.speed = function (t, e, n) { + var r = + t && 'object' == typeof t + ? B.extend({}, t) + : { + complete: n || (!n && e) || (v(t) && t), + duration: t, + easing: (n && e) || (e && !v(e) && e), + }; + return ( + B.fx.off + ? (r.duration = 0) + : 'number' != typeof r.duration && + (r.duration in B.fx.speeds + ? (r.duration = B.fx.speeds[r.duration]) + : (r.duration = B.fx.speeds._default)), + (null != r.queue && !0 !== r.queue) || (r.queue = 'fx'), + (r.old = r.complete), + (r.complete = function () { + v(r.old) && r.old.call(this), r.queue && B.dequeue(this, r.queue); + }), + r + ); + }), + B.fn.extend({ + fadeTo: function (t, e, n, r) { + return this.filter(gt) + .css('opacity', 0) + .show() + .end() + .animate({ opacity: e }, t, n, r); + }, + animate: function (e, t, n, r) { + function i() { + var t = _(this, B.extend({}, e), a); + (o || y.get(this, 'finish')) && t.stop(!0); + } + var o = B.isEmptyObject(e), + a = B.speed(t, n, r); + return ( + (i.finish = i), o || !1 === a.queue ? this.each(i) : this.queue(a.queue, i) + ); + }, + stop: function (i, t, o) { + function a(t) { + var e = t.stop; + delete t.stop, e(o); + } + return ( + 'string' != typeof i && ((o = t), (t = i), (i = void 0)), + t && this.queue(i || 'fx', []), + this.each(function () { + var t = !0, + e = null != i && i + 'queueHooks', + n = B.timers, + r = y.get(this); + if (e) r[e] && r[e].stop && a(r[e]); + else for (e in r) r[e] && r[e].stop && pe.test(e) && a(r[e]); + for (e = n.length; e--; ) + n[e].elem !== this || + (null != i && n[e].queue !== i) || + (n[e].anim.stop(o), (t = !1), n.splice(e, 1)); + (!t && o) || B.dequeue(this, i); + }) + ); + }, + finish: function (a) { + return ( + !1 !== a && (a = a || 'fx'), + this.each(function () { + var t, + e = y.get(this), + n = e[a + 'queue'], + r = e[a + 'queueHooks'], + i = B.timers, + o = n ? n.length : 0; + for ( + e.finish = !0, + B.queue(this, a, []), + r && r.stop && r.stop.call(this, !0), + t = i.length; + t--; + + ) + i[t].elem === this && + i[t].queue === a && + (i[t].anim.stop(!0), i.splice(t, 1)); + for (t = 0; t < o; t++) n[t] && n[t].finish && n[t].finish.call(this); + delete e.finish; + }) + ); + }, + }), + B.each(['toggle', 'show', 'hide'], function (t, r) { + var i = B.fn[r]; + B.fn[r] = function (t, e, n) { + return null == t || 'boolean' == typeof t + ? i.apply(this, arguments) + : this.animate(ge(r, !0), t, e, n); + }; + }), + B.each( + { + slideDown: ge('show'), + slideUp: ge('hide'), + slideToggle: ge('toggle'), + fadeIn: { opacity: 'show' }, + fadeOut: { opacity: 'hide' }, + fadeToggle: { opacity: 'toggle' }, + }, + function (t, r) { + B.fn[t] = function (t, e, n) { + return this.animate(r, t, e, n); + }; + }, + ), + (B.timers = []), + (B.fx.tick = function () { + var t, + e = 0, + n = B.timers; + for (F = Date.now(); e < n.length; e++) + (t = n[e])() || n[e] !== t || n.splice(e--, 1); + n.length || B.fx.stop(), (F = void 0); + }), + (B.fx.timer = function (t) { + B.timers.push(t), B.fx.start(); + }), + (B.fx.interval = 13), + (B.fx.start = function () { + Ae || ((Ae = !0), de()); + }), + (B.fx.stop = function () { + Ae = null; + }), + (B.fx.speeds = { slow: 600, fast: 200, _default: 400 }), + (B.fn.delay = function (r, t) { + return ( + (r = (B.fx && B.fx.speeds[r]) || r), + this.queue((t = t || 'fx'), function (t, e) { + var n = w.setTimeout(t, r); + e.stop = function () { + w.clearTimeout(n); + }; + }) + ); + }), + (a = E.createElement('input')), + (Q = E.createElement('select').appendChild(E.createElement('option'))), + (a.type = 'checkbox'), + (g.checkOn = '' !== a.value), + (g.optSelected = Q.selected), + ((a = E.createElement('input')).value = 't'), + (a.type = 'radio'), + (g.radioValue = 't' === a.value); + var ve, + be = B.expr.attrHandle, + ye = + (B.fn.extend({ + attr: function (t, e) { + return A(this, B.attr, t, e, 1 < arguments.length); + }, + removeAttr: function (t) { + return this.each(function () { + B.removeAttr(this, t); + }); + }, + }), + B.extend({ + attr: function (t, e, n) { + var r, + i, + o = t.nodeType; + if (3 !== o && 8 !== o && 2 !== o) + return void 0 === t.getAttribute + ? B.prop(t, e, n) + : ((1 === o && B.isXMLDoc(t)) || + (i = + B.attrHooks[e.toLowerCase()] || + (B.expr.match.bool.test(e) ? ve : void 0)), + void 0 !== n + ? null === n + ? void B.removeAttr(t, e) + : i && 'set' in i && void 0 !== (r = i.set(t, n, e)) + ? r + : (t.setAttribute(e, n + ''), n) + : !(i && 'get' in i && null !== (r = i.get(t, e))) && + null == (r = B.find.attr(t, e)) + ? void 0 + : r); + }, + attrHooks: { + type: { + set: function (t, e) { + var n; + if (!g.radioValue && 'radio' === e && l(t, 'input')) + return (n = t.value), t.setAttribute('type', e), n && (t.value = n), e; + }, + }, + }, + removeAttr: function (t, e) { + var n, + r = 0, + i = e && e.match(C); + if (i && 1 === t.nodeType) for (; (n = i[r++]); ) t.removeAttribute(n); + }, + }), + (ve = { + set: function (t, e, n) { + return !1 === e ? B.removeAttr(t, n) : t.setAttribute(n, n), n; + }, + }), + B.each(B.expr.match.bool.source.match(/\w+/g), function (t, e) { + var a = be[e] || B.find.attr; + be[e] = function (t, e, n) { + var r, + i, + o = e.toLowerCase(); + return ( + n || + ((i = be[o]), + (be[o] = r), + (r = null != a(t, e, n) ? o : null), + (be[o] = i)), + r + ); + }; + }), + /^(?:input|select|textarea|button)$/i), + we = /^(?:a|area)$/i; + function T(t) { + return (t.match(C) || []).join(' '); + } + function R(t) { + return (t.getAttribute && t.getAttribute('class')) || ''; + } + function Ee(t) { + return Array.isArray(t) ? t : ('string' == typeof t && t.match(C)) || []; + } + B.fn.extend({ + prop: function (t, e) { + return A(this, B.prop, t, e, 1 < arguments.length); + }, + removeProp: function (t) { + return this.each(function () { + delete this[B.propFix[t] || t]; + }); + }, + }), + B.extend({ + prop: function (t, e, n) { + var r, + i, + o = t.nodeType; + if (3 !== o && 8 !== o && 2 !== o) + return ( + (1 === o && B.isXMLDoc(t)) || ((e = B.propFix[e] || e), (i = B.propHooks[e])), + void 0 !== n + ? i && 'set' in i && void 0 !== (r = i.set(t, n, e)) + ? r + : (t[e] = n) + : i && 'get' in i && null !== (r = i.get(t, e)) + ? r + : t[e] + ); + }, + propHooks: { + tabIndex: { + get: function (t) { + var e = B.find.attr(t, 'tabindex'); + return e + ? parseInt(e, 10) + : ye.test(t.nodeName) || (we.test(t.nodeName) && t.href) + ? 0 + : -1; + }, + }, + }, + propFix: { for: 'htmlFor', class: 'className' }, + }), + g.optSelected || + (B.propHooks.selected = { + get: function (t) { + t = t.parentNode; + return t && t.parentNode && t.parentNode.selectedIndex, null; + }, + set: function (t) { + t = t.parentNode; + t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex); + }, + }), + B.each( + [ + 'tabIndex', + 'readOnly', + 'maxLength', + 'cellSpacing', + 'cellPadding', + 'rowSpan', + 'colSpan', + 'useMap', + 'frameBorder', + 'contentEditable', + ], + function () { + B.propFix[this.toLowerCase()] = this; + }, + ), + B.fn.extend({ + addClass: function (e) { + var t, + n, + r, + i, + o, + a, + s = 0; + if (v(e)) + return this.each(function (t) { + B(this).addClass(e.call(this, t, R(this))); + }); + if ((t = Ee(e)).length) + for (; (n = this[s++]); ) + if (((a = R(n)), (r = 1 === n.nodeType && ' ' + T(a) + ' '))) { + for (o = 0; (i = t[o++]); ) r.indexOf(' ' + i + ' ') < 0 && (r += i + ' '); + a !== (a = T(r)) && n.setAttribute('class', a); + } + return this; + }, + removeClass: function (e) { + var t, + n, + r, + i, + o, + a, + s = 0; + if (v(e)) + return this.each(function (t) { + B(this).removeClass(e.call(this, t, R(this))); + }); + if (!arguments.length) return this.attr('class', ''); + if ((t = Ee(e)).length) + for (; (n = this[s++]); ) + if (((a = R(n)), (r = 1 === n.nodeType && ' ' + T(a) + ' '))) { + for (o = 0; (i = t[o++]); ) + for (; -1 < r.indexOf(' ' + i + ' '); ) r = r.replace(' ' + i + ' ', ' '); + a !== (a = T(r)) && n.setAttribute('class', a); + } + return this; + }, + toggleClass: function (i, e) { + var o = typeof i, + a = 'string' == o || Array.isArray(i); + return 'boolean' == typeof e && a + ? e + ? this.addClass(i) + : this.removeClass(i) + : v(i) + ? this.each(function (t) { + B(this).toggleClass(i.call(this, t, R(this), e), e); + }) + : this.each(function () { + var t, e, n, r; + if (a) + for (e = 0, n = B(this), r = Ee(i); (t = r[e++]); ) + n.hasClass(t) ? n.removeClass(t) : n.addClass(t); + else + (void 0 !== i && 'boolean' != o) || + ((t = R(this)) && y.set(this, '__className__', t), + this.setAttribute && + this.setAttribute( + 'class', + (!t && !1 !== i && y.get(this, '__className__')) || '', + )); + }); + }, + hasClass: function (t) { + for (var e, n = 0, r = ' ' + t + ' '; (e = this[n++]); ) + if (1 === e.nodeType && -1 < (' ' + T(R(e)) + ' ').indexOf(r)) return !0; + return !1; + }, + }); + function Be(t) { + t.stopPropagation(); + } + var Ce = /\r/g, + xe = + (B.fn.extend({ + val: function (e) { + var n, + t, + r, + i = this[0]; + return arguments.length + ? ((r = v(e)), + this.each(function (t) { + 1 === this.nodeType && + (null == (t = r ? e.call(this, t, B(this).val()) : e) + ? (t = '') + : 'number' == typeof t + ? (t += '') + : Array.isArray(t) && + (t = B.map(t, function (t) { + return null == t ? '' : t + ''; + })), + ((n = + B.valHooks[this.type] || B.valHooks[this.nodeName.toLowerCase()]) && + 'set' in n && + void 0 !== n.set(this, t, 'value')) || + (this.value = t)); + })) + : i + ? (n = B.valHooks[i.type] || B.valHooks[i.nodeName.toLowerCase()]) && + 'get' in n && + void 0 !== (t = n.get(i, 'value')) + ? t + : 'string' == typeof (t = i.value) + ? t.replace(Ce, '') + : null == t + ? '' + : t + : void 0; + }, + }), + B.extend({ + valHooks: { + option: { + get: function (t) { + var e = B.find.attr(t, 'value'); + return null != e ? e : T(B.text(t)); + }, + }, + select: { + get: function (t) { + for ( + var e, + n = t.options, + r = t.selectedIndex, + i = 'select-one' === t.type, + o = i ? null : [], + a = i ? r + 1 : n.length, + s = r < 0 ? a : i ? r : 0; + s < a; + s++ + ) + if ( + ((e = n[s]).selected || s === r) && + !e.disabled && + (!e.parentNode.disabled || !l(e.parentNode, 'optgroup')) + ) { + if (((e = B(e).val()), i)) return e; + o.push(e); + } + return o; + }, + set: function (t, e) { + for (var n, r, i = t.options, o = B.makeArray(e), a = i.length; a--; ) + ((r = i[a]).selected = -1 < B.inArray(B.valHooks.option.get(r), o)) && + (n = !0); + return n || (t.selectedIndex = -1), o; + }, + }, + }, + }), + B.each(['radio', 'checkbox'], function () { + (B.valHooks[this] = { + set: function (t, e) { + if (Array.isArray(e)) return (t.checked = -1 < B.inArray(B(t).val(), e)); + }, + }), + g.checkOn || + (B.valHooks[this].get = function (t) { + return null === t.getAttribute('value') ? 'on' : t.value; + }); + }), + (g.focusin = 'onfocusin' in w), + /^(?:focusinfocus|focusoutblur)$/), + Ie = + (B.extend(B.event, { + trigger: function (t, e, n, r) { + var i, + o, + a, + s, + l, + u, + c, + A = [n || E], + h = z.call(t, 'type') ? t.type : t, + p = z.call(t, 'namespace') ? t.namespace.split('.') : [], + d = (c = o = n = n || E); + if ( + 3 !== n.nodeType && + 8 !== n.nodeType && + !xe.test(h + B.event.triggered) && + (-1 < h.indexOf('.') && ((h = (p = h.split('.')).shift()), p.sort()), + (s = h.indexOf(':') < 0 && 'on' + h), + ((t = t[B.expando] + ? t + : new B.Event(h, 'object' == typeof t && t)).isTrigger = r ? 2 : 3), + (t.namespace = p.join('.')), + (t.rnamespace = t.namespace + ? new RegExp('(^|\\.)' + p.join('\\.(?:.*\\.|)') + '(\\.|$)') + : null), + (t.result = void 0), + t.target || (t.target = n), + (e = null == e ? [t] : B.makeArray(e, [t])), + (u = B.event.special[h] || {}), + r || !u.trigger || !1 !== u.trigger.apply(n, e)) + ) { + if (!r && !u.noBubble && !f(n)) { + for ( + a = u.delegateType || h, xe.test(a + h) || (d = d.parentNode); + d; + d = d.parentNode + ) + A.push(d), (o = d); + o === (n.ownerDocument || E) && + A.push(o.defaultView || o.parentWindow || w); + } + for (i = 0; (d = A[i++]) && !t.isPropagationStopped(); ) + (c = d), + (t.type = 1 < i ? a : u.bindType || h), + (l = + (y.get(d, 'events') || Object.create(null))[t.type] && + y.get(d, 'handle')) && l.apply(d, e), + (l = s && d[s]) && + l.apply && + m(d) && + ((t.result = l.apply(d, e)), !1 === t.result && t.preventDefault()); + return ( + (t.type = h), + r || + t.isDefaultPrevented() || + (u._default && !1 !== u._default.apply(A.pop(), e)) || + !m(n) || + (s && + v(n[h]) && + !f(n) && + ((o = n[s]) && (n[s] = null), + (B.event.triggered = h), + t.isPropagationStopped() && c.addEventListener(h, Be), + n[h](), + t.isPropagationStopped() && c.removeEventListener(h, Be), + (B.event.triggered = void 0), + o && (n[s] = o))), + t.result + ); + } + }, + simulate: function (t, e, n) { + n = B.extend(new B.Event(), n, { type: t, isSimulated: !0 }); + B.event.trigger(n, null, e); + }, + }), + B.fn.extend({ + trigger: function (t, e) { + return this.each(function () { + B.event.trigger(t, e, this); + }); + }, + triggerHandler: function (t, e) { + var n = this[0]; + if (n) return B.event.trigger(t, e, n, !0); + }, + }), + g.focusin || + B.each({ focus: 'focusin', blur: 'focusout' }, function (n, r) { + function i(t) { + B.event.simulate(r, t.target, B.event.fix(t)); + } + B.event.special[r] = { + setup: function () { + var t = this.ownerDocument || this.document || this, + e = y.access(t, r); + e || t.addEventListener(n, i, !0), y.access(t, r, (e || 0) + 1); + }, + teardown: function () { + var t = this.ownerDocument || this.document || this, + e = y.access(t, r) - 1; + e ? y.access(t, r, e) : (t.removeEventListener(n, i, !0), y.remove(t, r)); + }, + }; + }), + w.location), + Me = { guid: Date.now() }, + De = /\?/, + Se = + ((B.parseXML = function (t) { + var e, n; + if (!t || 'string' != typeof t) return null; + try { + e = new w.DOMParser().parseFromString(t, 'text/xml'); + } catch (t) {} + return ( + (n = e && e.getElementsByTagName('parsererror')[0]), + (e && !n) || + B.error( + 'Invalid XML: ' + + (n + ? B.map(n.childNodes, function (t) { + return t.textContent; + }).join('\n') + : t), + ), + e + ); + }), + /\[\]$/), + ke = /\r?\n/g, + Fe = /^(?:submit|button|image|reset|file)$/i, + Qe = /^(?:input|select|textarea|keygen)/i; + (B.param = function (t, e) { + function n(t, e) { + (e = v(e) ? e() : e), + (i[i.length] = + encodeURIComponent(t) + '=' + encodeURIComponent(null == e ? '' : e)); + } + var r, + i = []; + if (null == t) return ''; + if (Array.isArray(t) || (t.jquery && !B.isPlainObject(t))) + B.each(t, function () { + n(this.name, this.value); + }); + else + for (r in t) + !(function n(r, t, i, o) { + if (Array.isArray(t)) + B.each(t, function (t, e) { + i || Se.test(r) + ? o(r, e) + : n( + r + '[' + ('object' == typeof e && null != e ? t : '') + ']', + e, + i, + o, + ); + }); + else if (i || 'object' !== d(t)) o(r, t); + else for (var e in t) n(r + '[' + e + ']', t[e], i, o); + })(r, t[r], e, n); + return i.join('&'); + }), + B.fn.extend({ + serialize: function () { + return B.param(this.serializeArray()); + }, + serializeArray: function () { + return this.map(function () { + var t = B.prop(this, 'elements'); + return t ? B.makeArray(t) : this; + }) + .filter(function () { + var t = this.type; + return ( + this.name && + !B(this).is(':disabled') && + Qe.test(this.nodeName) && + !Fe.test(t) && + (this.checked || !wt.test(t)) + ); + }) + .map(function (t, e) { + var n = B(this).val(); + return null == n + ? null + : Array.isArray(n) + ? B.map(n, function (t) { + return { name: e.name, value: t.replace(ke, '\r\n') }; + }) + : { name: e.name, value: n.replace(ke, '\r\n') }; + }) + .get(); + }, + }); + var _e = /%20/g, + Te = /#.*$/, + Re = /([?&])_=[^&]*/, + Ue = /^(.*?):[ \t]*([^\r\n]*)$/gm, + Ne = /^(?:GET|HEAD)$/, + Pe = /^\/\//, + Le = {}, + Ye = {}, + Oe = '*/'.concat('*'), + Ge = E.createElement('a'); + function ze(o) { + return function (t, e) { + 'string' != typeof t && ((e = t), (t = '*')); + var n, + r = 0, + i = t.toLowerCase().match(C) || []; + if (v(e)) + for (; (n = i[r++]); ) + '+' === n[0] + ? ((n = n.slice(1) || '*'), (o[n] = o[n] || []).unshift(e)) + : (o[n] = o[n] || []).push(e); + }; + } + function He(e, r, i, o) { + var a = {}, + s = e === Ye; + function l(t) { + var n; + return ( + (a[t] = !0), + B.each(e[t] || [], function (t, e) { + e = e(r, i, o); + return 'string' != typeof e || s || a[e] + ? s + ? !(n = e) + : void 0 + : (r.dataTypes.unshift(e), l(e), !1); + }), + n + ); + } + return l(r.dataTypes[0]) || (!a['*'] && l('*')); + } + function je(t, e) { + var n, + r, + i = B.ajaxSettings.flatOptions || {}; + for (n in e) void 0 !== e[n] && ((i[n] ? t : (r = r || {}))[n] = e[n]); + return r && B.extend(!0, t, r), t; + } + (Ge.href = Ie.href), + B.extend({ + active: 0, + lastModified: {}, + etag: {}, + ajaxSettings: { + url: Ie.href, + type: 'GET', + isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test( + Ie.protocol, + ), + global: !0, + processData: !0, + async: !0, + contentType: 'application/x-www-form-urlencoded; charset=UTF-8', + accepts: { + '*': Oe, + text: 'text/plain', + html: 'text/html', + xml: 'application/xml, text/xml', + json: 'application/json, text/javascript', + }, + contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, + responseFields: { + xml: 'responseXML', + text: 'responseText', + json: 'responseJSON', + }, + converters: { + '* text': String, + 'text html': !0, + 'text json': JSON.parse, + 'text xml': B.parseXML, + }, + flatOptions: { url: !0, context: !0 }, + }, + ajaxSetup: function (t, e) { + return e ? je(je(t, B.ajaxSettings), e) : je(B.ajaxSettings, t); + }, + ajaxPrefilter: ze(Le), + ajaxTransport: ze(Ye), + ajax: function (t, e) { + 'object' == typeof t && ((e = t), (t = void 0)); + var l, + u, + c, + n, + A, + h, + p, + r, + d = B.ajaxSetup({}, (e = e || {})), + f = d.context || d, + g = d.context && (f.nodeType || f.jquery) ? B(f) : B.event, + m = B.Deferred(), + v = B.Callbacks('once memory'), + b = d.statusCode || {}, + i = {}, + o = {}, + a = 'canceled', + y = { + readyState: 0, + getResponseHeader: function (t) { + var e; + if (h) { + if (!n) + for (n = {}; (e = Ue.exec(c)); ) + n[e[1].toLowerCase() + ' '] = ( + n[e[1].toLowerCase() + ' '] || [] + ).concat(e[2]); + e = n[t.toLowerCase() + ' ']; + } + return null == e ? null : e.join(', '); + }, + getAllResponseHeaders: function () { + return h ? c : null; + }, + setRequestHeader: function (t, e) { + return ( + null == h && + ((t = o[t.toLowerCase()] = o[t.toLowerCase()] || t), (i[t] = e)), + this + ); + }, + overrideMimeType: function (t) { + return null == h && (d.mimeType = t), this; + }, + statusCode: function (t) { + if (t) + if (h) y.always(t[y.status]); + else for (var e in t) b[e] = [b[e], t[e]]; + return this; + }, + abort: function (t) { + t = t || a; + return l && l.abort(t), s(0, t), this; + }, + }; + if ( + (m.promise(y), + (d.url = ((t || d.url || Ie.href) + '').replace(Pe, Ie.protocol + '//')), + (d.type = e.method || e.type || d.method || d.type), + (d.dataTypes = (d.dataType || '*').toLowerCase().match(C) || ['']), + null == d.crossDomain) + ) { + t = E.createElement('a'); + try { + (t.href = d.url), + (t.href = t.href), + (d.crossDomain = + Ge.protocol + '//' + Ge.host != t.protocol + '//' + t.host); + } catch (t) { + d.crossDomain = !0; + } + } + if ( + (d.data && + d.processData && + 'string' != typeof d.data && + (d.data = B.param(d.data, d.traditional)), + He(Le, d, e, y), + !h) + ) { + for (r in ((p = B.event && d.global) && + 0 == B.active++ && + B.event.trigger('ajaxStart'), + (d.type = d.type.toUpperCase()), + (d.hasContent = !Ne.test(d.type)), + (u = d.url.replace(Te, '')), + d.hasContent + ? d.data && + d.processData && + 0 === (d.contentType || '').indexOf('application/x-www-form-urlencoded') && + (d.data = d.data.replace(_e, '+')) + : ((t = d.url.slice(u.length)), + d.data && + (d.processData || 'string' == typeof d.data) && + ((u += (De.test(u) ? '&' : '?') + d.data), delete d.data), + !1 === d.cache && + ((u = u.replace(Re, '$1')), + (t = (De.test(u) ? '&' : '?') + '_=' + Me.guid++ + t)), + (d.url = u + t)), + d.ifModified && + (B.lastModified[u] && + y.setRequestHeader('If-Modified-Since', B.lastModified[u]), + B.etag[u] && y.setRequestHeader('If-None-Match', B.etag[u])), + ((d.data && d.hasContent && !1 !== d.contentType) || e.contentType) && + y.setRequestHeader('Content-Type', d.contentType), + y.setRequestHeader( + 'Accept', + d.dataTypes[0] && d.accepts[d.dataTypes[0]] + ? d.accepts[d.dataTypes[0]] + + ('*' !== d.dataTypes[0] ? ', ' + Oe + '; q=0.01' : '') + : d.accepts['*'], + ), + d.headers)) + y.setRequestHeader(r, d.headers[r]); + if (d.beforeSend && (!1 === d.beforeSend.call(f, y, d) || h)) return y.abort(); + if ( + ((a = 'abort'), + v.add(d.complete), + y.done(d.success), + y.fail(d.error), + (l = He(Ye, d, e, y))) + ) { + if (((y.readyState = 1), p && g.trigger('ajaxSend', [y, d]), h)) return y; + d.async && + 0 < d.timeout && + (A = w.setTimeout(function () { + y.abort('timeout'); + }, d.timeout)); + try { + (h = !1), l.send(i, s); + } catch (t) { + if (h) throw t; + s(-1, t); + } + } else s(-1, 'No Transport'); + } + return y; + function s(t, e, n, r) { + var i, + o, + a, + s = e; + h || + ((h = !0), + A && w.clearTimeout(A), + (l = void 0), + (c = r || ''), + (y.readyState = 0 < t ? 4 : 0), + (r = (200 <= t && t < 300) || 304 === t), + n && + (a = (function (t, e, n) { + for (var r, i, o, a, s = t.contents, l = t.dataTypes; '*' === l[0]; ) + l.shift(), + void 0 === r && + (r = t.mimeType || e.getResponseHeader('Content-Type')); + if (r) + for (i in s) + if (s[i] && s[i].test(r)) { + l.unshift(i); + break; + } + if (l[0] in n) o = l[0]; + else { + for (i in n) { + if (!l[0] || t.converters[i + ' ' + l[0]]) { + o = i; + break; + } + a = a || i; + } + o = o || a; + } + if (o) return o !== l[0] && l.unshift(o), n[o]; + })(d, y, n)), + !r && + -1 < B.inArray('script', d.dataTypes) && + B.inArray('json', d.dataTypes) < 0 && + (d.converters['text script'] = function () {}), + (a = (function (t, e, n, r) { + var i, + o, + a, + s, + l, + u = {}, + c = t.dataTypes.slice(); + if (c[1]) for (a in t.converters) u[a.toLowerCase()] = t.converters[a]; + for (o = c.shift(); o; ) + if ( + (t.responseFields[o] && (n[t.responseFields[o]] = e), + !l && r && t.dataFilter && (e = t.dataFilter(e, t.dataType)), + (l = o), + (o = c.shift())) + ) + if ('*' === o) o = l; + else if ('*' !== l && l !== o) { + if (!(a = u[l + ' ' + o] || u['* ' + o])) + for (i in u) + if ( + (s = i.split(' '))[1] === o && + (a = u[l + ' ' + s[0]] || u['* ' + s[0]]) + ) { + !0 === a + ? (a = u[i]) + : !0 !== u[i] && ((o = s[0]), c.unshift(s[1])); + break; + } + if (!0 !== a) + if (a && t.throws) e = a(e); + else + try { + e = a(e); + } catch (t) { + return { + state: 'parsererror', + error: a ? t : 'No conversion from ' + l + ' to ' + o, + }; + } + } + return { state: 'success', data: e }; + })(d, a, y, r)), + r + ? (d.ifModified && + ((n = y.getResponseHeader('Last-Modified')) && (B.lastModified[u] = n), + (n = y.getResponseHeader('etag')) && (B.etag[u] = n)), + 204 === t || 'HEAD' === d.type + ? (s = 'nocontent') + : 304 === t + ? (s = 'notmodified') + : ((s = a.state), (i = a.data), (r = !(o = a.error)))) + : ((o = s), (!t && s) || ((s = 'error'), t < 0 && (t = 0))), + (y.status = t), + (y.statusText = (e || s) + ''), + r ? m.resolveWith(f, [i, s, y]) : m.rejectWith(f, [y, s, o]), + y.statusCode(b), + (b = void 0), + p && g.trigger(r ? 'ajaxSuccess' : 'ajaxError', [y, d, r ? i : o]), + v.fireWith(f, [y, s]), + p && + (g.trigger('ajaxComplete', [y, d]), + --B.active || B.event.trigger('ajaxStop'))); + } + }, + getJSON: function (t, e, n) { + return B.get(t, e, n, 'json'); + }, + getScript: function (t, e) { + return B.get(t, void 0, e, 'script'); + }, + }), + B.each(['get', 'post'], function (t, i) { + B[i] = function (t, e, n, r) { + return ( + v(e) && ((r = r || n), (n = e), (e = void 0)), + B.ajax( + B.extend( + { url: t, type: i, dataType: r, data: e, success: n }, + B.isPlainObject(t) && t, + ), + ) + ); + }; + }), + B.ajaxPrefilter(function (t) { + for (var e in t.headers) + 'content-type' === e.toLowerCase() && (t.contentType = t.headers[e] || ''); + }), + (B._evalUrl = function (t, e, n) { + return B.ajax({ + url: t, + type: 'GET', + dataType: 'script', + cache: !0, + async: !1, + global: !1, + converters: { 'text script': function () {} }, + dataFilter: function (t) { + B.globalEval(t, e, n); + }, + }); + }), + B.fn.extend({ + wrapAll: function (t) { + return ( + this[0] && + (v(t) && (t = t.call(this[0])), + (t = B(t, this[0].ownerDocument).eq(0).clone(!0)), + this[0].parentNode && t.insertBefore(this[0]), + t + .map(function () { + for (var t = this; t.firstElementChild; ) t = t.firstElementChild; + return t; + }) + .append(this)), + this + ); + }, + wrapInner: function (n) { + return v(n) + ? this.each(function (t) { + B(this).wrapInner(n.call(this, t)); + }) + : this.each(function () { + var t = B(this), + e = t.contents(); + e.length ? e.wrapAll(n) : t.append(n); + }); + }, + wrap: function (e) { + var n = v(e); + return this.each(function (t) { + B(this).wrapAll(n ? e.call(this, t) : e); + }); + }, + unwrap: function (t) { + return ( + this.parent(t) + .not('body') + .each(function () { + B(this).replaceWith(this.childNodes); + }), + this + ); + }, + }), + (B.expr.pseudos.hidden = function (t) { + return !B.expr.pseudos.visible(t); + }), + (B.expr.pseudos.visible = function (t) { + return !!(t.offsetWidth || t.offsetHeight || t.getClientRects().length); + }), + (B.ajaxSettings.xhr = function () { + try { + return new w.XMLHttpRequest(); + } catch (t) {} + }); + var Ve = { 0: 200, 1223: 204 }, + qe = B.ajaxSettings.xhr(), + We = + ((g.cors = !!qe && 'withCredentials' in qe), + (g.ajax = qe = !!qe), + B.ajaxTransport(function (i) { + var o, a; + if (g.cors || (qe && !i.crossDomain)) + return { + send: function (t, e) { + var n, + r = i.xhr(); + if ((r.open(i.type, i.url, i.async, i.username, i.password), i.xhrFields)) + for (n in i.xhrFields) r[n] = i.xhrFields[n]; + for (n in (i.mimeType && + r.overrideMimeType && + r.overrideMimeType(i.mimeType), + i.crossDomain || + t['X-Requested-With'] || + (t['X-Requested-With'] = 'XMLHttpRequest'), + t)) + r.setRequestHeader(n, t[n]); + (o = function (t) { + return function () { + o && + ((o = + a = + r.onload = + r.onerror = + r.onabort = + r.ontimeout = + r.onreadystatechange = + null), + 'abort' === t + ? r.abort() + : 'error' === t + ? 'number' != typeof r.status + ? e(0, 'error') + : e(r.status, r.statusText) + : e( + Ve[r.status] || r.status, + r.statusText, + 'text' !== (r.responseType || 'text') || + 'string' != typeof r.responseText + ? { binary: r.response } + : { text: r.responseText }, + r.getAllResponseHeaders(), + )); + }; + }), + (r.onload = o()), + (a = r.onerror = r.ontimeout = o('error')), + void 0 !== r.onabort + ? (r.onabort = a) + : (r.onreadystatechange = function () { + 4 === r.readyState && + w.setTimeout(function () { + o && a(); + }); + }), + (o = o('abort')); + try { + r.send((i.hasContent && i.data) || null); + } catch (t) { + if (o) throw t; + } + }, + abort: function () { + o && o(); + }, + }; + }), + B.ajaxPrefilter(function (t) { + t.crossDomain && (t.contents.script = !1); + }), + B.ajaxSetup({ + accepts: { + script: + 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript', + }, + contents: { script: /\b(?:java|ecma)script\b/ }, + converters: { + 'text script': function (t) { + return B.globalEval(t), t; + }, + }, + }), + B.ajaxPrefilter('script', function (t) { + void 0 === t.cache && (t.cache = !1), t.crossDomain && (t.type = 'GET'); + }), + B.ajaxTransport('script', function (n) { + var r, i; + if (n.crossDomain || n.scriptAttrs) + return { + send: function (t, e) { + (r = B('<script>') + .attr(n.scriptAttrs || {}) + .prop({ charset: n.scriptCharset, src: n.url }) + .on( + 'load error', + (i = function (t) { + r.remove(), + (i = null), + t && e('error' === t.type ? 404 : 200, t.type); + }), + )), + E.head.appendChild(r[0]); + }, + abort: function () { + i && i(); + }, + }; + }), + []), + Je = /(=)\?(?=&|$)|\?\?/, + Ke = + (B.ajaxSetup({ + jsonp: 'callback', + jsonpCallback: function () { + var t = We.pop() || B.expando + '_' + Me.guid++; + return (this[t] = !0), t; + }, + }), + B.ajaxPrefilter('json jsonp', function (t, e, n) { + var r, + i, + o, + a = + !1 !== t.jsonp && + (Je.test(t.url) + ? 'url' + : 'string' == typeof t.data && + 0 === + (t.contentType || '').indexOf('application/x-www-form-urlencoded') && + Je.test(t.data) && + 'data'); + if (a || 'jsonp' === t.dataTypes[0]) + return ( + (r = t.jsonpCallback = + v(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback), + a + ? (t[a] = t[a].replace(Je, '$1' + r)) + : !1 !== t.jsonp && + (t.url += (De.test(t.url) ? '&' : '?') + t.jsonp + '=' + r), + (t.converters['script json'] = function () { + return o || B.error(r + ' was not called'), o[0]; + }), + (t.dataTypes[0] = 'json'), + (i = w[r]), + (w[r] = function () { + o = arguments; + }), + n.always(function () { + void 0 === i ? B(w).removeProp(r) : (w[r] = i), + t[r] && ((t.jsonpCallback = e.jsonpCallback), We.push(r)), + o && v(i) && i(o[0]), + (o = i = void 0); + }), + 'script' + ); + }), + (g.createHTMLDocument = + (((t = E.implementation.createHTMLDocument('').body).innerHTML = + '<form></form><form></form>'), + 2 === t.childNodes.length)), + (B.parseHTML = function (t, e, n) { + return 'string' != typeof t + ? [] + : ('boolean' == typeof e && ((n = e), (e = !1)), + e || + (g.createHTMLDocument + ? (((r = (e = E.implementation.createHTMLDocument('')).createElement( + 'base', + )).href = E.location.href), + e.head.appendChild(r)) + : (e = E)), + (r = !n && []), + (n = Z.exec(t)) + ? [e.createElement(n[1])] + : ((n = It([t], e, r)), + r && r.length && B(r).remove(), + B.merge([], n.childNodes))); + var r; + }), + (B.fn.load = function (t, e, n) { + var r, + i, + o, + a = this, + s = t.indexOf(' '); + return ( + -1 < s && ((r = T(t.slice(s))), (t = t.slice(0, s))), + v(e) ? ((n = e), (e = void 0)) : e && 'object' == typeof e && (i = 'POST'), + 0 < a.length && + B.ajax({ url: t, type: i || 'GET', dataType: 'html', data: e }) + .done(function (t) { + (o = arguments), + a.html(r ? B('<div>').append(B.parseHTML(t)).find(r) : t); + }) + .always( + n && + function (t, e) { + a.each(function () { + n.apply(this, o || [t.responseText, e, t]); + }); + }, + ), + this + ); + }), + (B.expr.pseudos.animated = function (e) { + return B.grep(B.timers, function (t) { + return e === t.elem; + }).length; + }), + (B.offset = { + setOffset: function (t, e, n) { + var r, + i, + o, + a, + s = B.css(t, 'position'), + l = B(t), + u = {}; + 'static' === s && (t.style.position = 'relative'), + (o = l.offset()), + (r = B.css(t, 'top')), + (a = B.css(t, 'left')), + (s = + ('absolute' === s || 'fixed' === s) && -1 < (r + a).indexOf('auto') + ? ((i = (s = l.position()).top), s.left) + : ((i = parseFloat(r) || 0), parseFloat(a) || 0)), + null != (e = v(e) ? e.call(t, n, B.extend({}, o)) : e).top && + (u.top = e.top - o.top + i), + null != e.left && (u.left = e.left - o.left + s), + 'using' in e ? e.using.call(t, u) : l.css(u); + }, + }), + B.fn.extend({ + offset: function (e) { + if (arguments.length) + return void 0 === e + ? this + : this.each(function (t) { + B.offset.setOffset(this, e, t); + }); + var t, + n = this[0]; + return n + ? n.getClientRects().length + ? ((t = n.getBoundingClientRect()), + (n = n.ownerDocument.defaultView), + { top: t.top + n.pageYOffset, left: t.left + n.pageXOffset }) + : { top: 0, left: 0 } + : void 0; + }, + position: function () { + if (this[0]) { + var t, + e, + n, + r = this[0], + i = { top: 0, left: 0 }; + if ('fixed' === B.css(r, 'position')) e = r.getBoundingClientRect(); + else { + for ( + e = this.offset(), + n = r.ownerDocument, + t = r.offsetParent || n.documentElement; + t && + (t === n.body || t === n.documentElement) && + 'static' === B.css(t, 'position'); + + ) + t = t.parentNode; + t && + t !== r && + 1 === t.nodeType && + (((i = B(t).offset()).top += B.css(t, 'borderTopWidth', !0)), + (i.left += B.css(t, 'borderLeftWidth', !0))); + } + return { + top: e.top - i.top - B.css(r, 'marginTop', !0), + left: e.left - i.left - B.css(r, 'marginLeft', !0), + }; + } + }, + offsetParent: function () { + return this.map(function () { + for (var t = this.offsetParent; t && 'static' === B.css(t, 'position'); ) + t = t.offsetParent; + return t || x; + }); + }, + }), + B.each({ scrollLeft: 'pageXOffset', scrollTop: 'pageYOffset' }, function (e, i) { + var o = 'pageYOffset' === i; + B.fn[e] = function (t) { + return A( + this, + function (t, e, n) { + var r; + if ( + (f(t) ? (r = t) : 9 === t.nodeType && (r = t.defaultView), void 0 === n) + ) + return r ? r[i] : t[e]; + r ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) : (t[e] = n); + }, + e, + t, + arguments.length, + ); + }; + }), + B.each(['top', 'left'], function (t, n) { + B.cssHooks[n] = $t(g.pixelPosition, function (t, e) { + if (e) return (e = Xt(t, n)), Wt.test(e) ? B(t).position()[n] + 'px' : e; + }); + }), + B.each({ Height: 'height', Width: 'width' }, function (a, s) { + B.each({ padding: 'inner' + a, content: s, '': 'outer' + a }, function (r, o) { + B.fn[o] = function (t, e) { + var n = arguments.length && (r || 'boolean' != typeof t), + i = r || (!0 === t || !0 === e ? 'margin' : 'border'); + return A( + this, + function (t, e, n) { + var r; + return f(t) + ? 0 === o.indexOf('outer') + ? t['inner' + a] + : t.document.documentElement['client' + a] + : 9 === t.nodeType + ? ((r = t.documentElement), + Math.max( + t.body['scroll' + a], + r['scroll' + a], + t.body['offset' + a], + r['offset' + a], + r['client' + a], + )) + : void 0 === n + ? B.css(t, e, i) + : B.style(t, e, n, i); + }, + s, + n ? t : void 0, + n, + ); + }; + }); + }), + B.each( + ['ajaxStart', 'ajaxStop', 'ajaxComplete', 'ajaxError', 'ajaxSuccess', 'ajaxSend'], + function (t, e) { + B.fn[e] = function (t) { + return this.on(e, t); + }; + }, + ), + B.fn.extend({ + bind: function (t, e, n) { + return this.on(t, null, e, n); + }, + unbind: function (t, e) { + return this.off(t, null, e); + }, + delegate: function (t, e, n, r) { + return this.on(e, t, n, r); + }, + undelegate: function (t, e, n) { + return 1 === arguments.length ? this.off(t, '**') : this.off(e, t || '**', n); + }, + hover: function (t, e) { + return this.mouseenter(t).mouseleave(e || t); + }, + }), + B.each( + 'blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu'.split( + ' ', + ), + function (t, n) { + B.fn[n] = function (t, e) { + return 0 < arguments.length ? this.on(n, null, t, e) : this.trigger(n); + }; + }, + ), + /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g), + Ze = + ((B.proxy = function (t, e) { + var n, r; + if (('string' == typeof e && ((r = t[e]), (e = t), (t = r)), v(t))) + return ( + (n = s.call(arguments, 2)), + ((r = function () { + return t.apply(e || this, n.concat(s.call(arguments))); + }).guid = t.guid = + t.guid || B.guid++), + r + ); + }), + (B.holdReady = function (t) { + t ? B.readyWait++ : B.ready(!0); + }), + (B.isArray = Array.isArray), + (B.parseJSON = JSON.parse), + (B.nodeName = l), + (B.isFunction = v), + (B.isWindow = f), + (B.camelCase = b), + (B.type = d), + (B.now = Date.now), + (B.isNumeric = function (t) { + var e = B.type(t); + return ('number' === e || 'string' === e) && !isNaN(t - parseFloat(t)); + }), + (B.trim = function (t) { + return null == t ? '' : (t + '').replace(Ke, ''); + }), + w.jQuery), + Xe = w.$; + return ( + (B.noConflict = function (t) { + return w.$ === B && (w.$ = Xe), t && w.jQuery === B && (w.jQuery = Ze), B; + }), + void 0 === U && (w.jQuery = w.$ = B), + B + ); + }); + }, + {}, + ], + 41: [ + function (u, o, a) { + !function (d, r, A, t, e, n, i, p) { + !function () { + !(function (t) { + 'object' == typeof a && void 0 !== o + ? (o.exports = t()) + : (('undefined' != typeof window + ? window + : void 0 !== r + ? r + : 'undefined' != typeof self + ? self + : this + ).JSZip = t()); + })(function () { + return (function r(i, o, a) { + function s(e, t) { + if (!o[e]) { + if (!i[e]) { + var n = 'function' == typeof u && u; + if (!t && n) return n(e, !0); + if (l) return l(e, !0); + t = new Error("Cannot find module '" + e + "'"); + throw ((t.code = 'MODULE_NOT_FOUND'), t); + } + n = o[e] = { exports: {} }; + i[e][0].call( + n.exports, + function (t) { + return s(i[e][1][t] || t); + }, + n, + n.exports, + r, + i, + o, + a, + ); + } + return o[e].exports; + } + for (var l = 'function' == typeof u && u, t = 0; t < a.length; t++) s(a[t]); + return s; + })( + { + 1: [ + function (t, e, n) { + 'use strict'; + var A = t('./utils'), + c = t('./support'), + h = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + (n.encode = function (t) { + for ( + var e, + n, + r, + i, + o, + a, + s = [], + l = 0, + u = t.length, + c = 'string' !== A.getTypeOf(t); + l < t.length; + + ) + (a = u - l), + (r = c + ? ((e = t[l++]), (n = l < u ? t[l++] : 0), l < u ? t[l++] : 0) + : ((e = t.charCodeAt(l++)), + (n = l < u ? t.charCodeAt(l++) : 0), + l < u ? t.charCodeAt(l++) : 0)), + (i = ((3 & e) << 4) | (n >> 4)), + (o = 1 < a ? ((15 & n) << 2) | (r >> 6) : 64), + (a = 2 < a ? 63 & r : 64), + s.push(h.charAt(e >> 2) + h.charAt(i) + h.charAt(o) + h.charAt(a)); + return s.join(''); + }), + (n.decode = function (t) { + var e, + n, + r, + i, + o, + a = 0, + s = 0; + if ('data:' === t.substr(0, 'data:'.length)) + throw new Error('Invalid base64 input, it looks like a data url.'); + var l, + u = (3 * (t = t.replace(/[^A-Za-z0-9\+\/\=]/g, '')).length) / 4; + if ( + (t.charAt(t.length - 1) === h.charAt(64) && u--, + t.charAt(t.length - 2) === h.charAt(64) && u--, + u % 1 != 0) + ) + throw new Error('Invalid base64 input, bad content length.'); + for (l = new (c.uint8array ? Uint8Array : Array)(0 | u); a < t.length; ) + (e = + (h.indexOf(t.charAt(a++)) << 2) | + ((i = h.indexOf(t.charAt(a++))) >> 4)), + (n = ((15 & i) << 4) | ((i = h.indexOf(t.charAt(a++))) >> 2)), + (r = ((3 & i) << 6) | (o = h.indexOf(t.charAt(a++)))), + (l[s++] = e), + 64 !== i && (l[s++] = n), + 64 !== o && (l[s++] = r); + return l; + }); + }, + { './support': 30, './utils': 32 }, + ], + 2: [ + function (t, e, n) { + 'use strict'; + var r = t('./external'), + i = t('./stream/DataWorker'), + o = t('./stream/Crc32Probe'), + a = t('./stream/DataLengthProbe'); + function s(t, e, n, r, i) { + (this.compressedSize = t), + (this.uncompressedSize = e), + (this.crc32 = n), + (this.compression = r), + (this.compressedContent = i); + } + (s.prototype = { + getContentWorker: function () { + var t = new i(r.Promise.resolve(this.compressedContent)) + .pipe(this.compression.uncompressWorker()) + .pipe(new a('data_length')), + e = this; + return ( + t.on('end', function () { + if (this.streamInfo.data_length !== e.uncompressedSize) + throw new Error('Bug : uncompressed data size mismatch'); + }), + t + ); + }, + getCompressedWorker: function () { + return new i(r.Promise.resolve(this.compressedContent)) + .withStreamInfo('compressedSize', this.compressedSize) + .withStreamInfo('uncompressedSize', this.uncompressedSize) + .withStreamInfo('crc32', this.crc32) + .withStreamInfo('compression', this.compression); + }, + }), + (s.createWorkerFrom = function (t, e, n) { + return t + .pipe(new o()) + .pipe(new a('uncompressedSize')) + .pipe(e.compressWorker(n)) + .pipe(new a('compressedSize')) + .withStreamInfo('compression', e); + }), + (e.exports = s); + }, + { + './external': 6, + './stream/Crc32Probe': 25, + './stream/DataLengthProbe': 26, + './stream/DataWorker': 27, + }, + ], + 3: [ + function (t, e, n) { + 'use strict'; + var r = t('./stream/GenericWorker'); + (n.STORE = { + magic: '\0\0', + compressWorker: function (t) { + return new r('STORE compression'); + }, + uncompressWorker: function () { + return new r('STORE decompression'); + }, + }), + (n.DEFLATE = t('./flate')); + }, + { './flate': 7, './stream/GenericWorker': 28 }, + ], + 4: [ + function (t, e, n) { + 'use strict'; + var r = t('./utils'), + a = (function () { + for (var t = [], e = 0; e < 256; e++) { + for (var n = e, r = 0; r < 8; r++) + n = 1 & n ? 3988292384 ^ (n >>> 1) : n >>> 1; + t[e] = n; + } + return t; + })(); + e.exports = function (t, e) { + return void 0 !== t && t.length + ? ('string' !== r.getTypeOf(t) + ? function (t, e, n) { + var r = a, + i = 0 + n; + t ^= -1; + for (var o = 0; o < i; o++) t = (t >>> 8) ^ r[255 & (t ^ e[o])]; + return -1 ^ t; + } + : function (t, e, n) { + var r = a, + i = 0 + n; + t ^= -1; + for (var o = 0; o < i; o++) + t = (t >>> 8) ^ r[255 & (t ^ e.charCodeAt(o))]; + return -1 ^ t; + })(0 | e, t, t.length) + : 0; + }; + }, + { './utils': 32 }, + ], + 5: [ + function (t, e, n) { + 'use strict'; + (n.base64 = !1), + (n.binary = !1), + (n.dir = !1), + (n.createFolders = !0), + (n.date = null), + (n.compression = null), + (n.compressionOptions = null), + (n.comment = null), + (n.unixPermissions = null), + (n.dosPermissions = null); + }, + {}, + ], + 6: [ + function (t, e, n) { + 'use strict'; + t = 'undefined' != typeof Promise ? Promise : t('lie'); + e.exports = { Promise: t }; + }, + { lie: 37 }, + ], + 7: [ + function (t, e, n) { + 'use strict'; + var r = + 'undefined' != typeof Uint8Array && + 'undefined' != typeof Uint16Array && + 'undefined' != typeof Uint32Array, + i = t('pako'), + o = t('./utils'), + a = t('./stream/GenericWorker'), + s = r ? 'uint8array' : 'array'; + function l(t, e) { + a.call(this, 'FlateWorker/' + t), + (this._pako = null), + (this._pakoAction = t), + (this._pakoOptions = e), + (this.meta = {}); + } + (n.magic = '\b\0'), + o.inherits(l, a), + (l.prototype.processChunk = function (t) { + (this.meta = t.meta), + null === this._pako && this._createPako(), + this._pako.push(o.transformTo(s, t.data), !1); + }), + (l.prototype.flush = function () { + a.prototype.flush.call(this), + null === this._pako && this._createPako(), + this._pako.push([], !0); + }), + (l.prototype.cleanUp = function () { + a.prototype.cleanUp.call(this), (this._pako = null); + }), + (l.prototype._createPako = function () { + this._pako = new i[this._pakoAction]({ + raw: !0, + level: this._pakoOptions.level || -1, + }); + var e = this; + this._pako.onData = function (t) { + e.push({ data: t, meta: e.meta }); + }; + }), + (n.compressWorker = function (t) { + return new l('Deflate', t); + }), + (n.uncompressWorker = function () { + return new l('Inflate', {}); + }); + }, + { './stream/GenericWorker': 28, './utils': 32, pako: 38 }, + ], + 8: [ + function (t, e, n) { + 'use strict'; + function v(t, e) { + for (var n = '', r = 0; r < e; r++) + (n += String.fromCharCode(255 & t)), (t >>>= 8); + return n; + } + function r(t, e, n, r, i, o) { + var a = t.file, + s = t.compression, + l = o !== y.utf8encode, + u = b.transformTo('string', o(a.name)), + c = b.transformTo('string', y.utf8encode(a.name)), + A = a.comment, + o = b.transformTo('string', o(A)), + h = b.transformTo('string', y.utf8encode(A)), + p = c.length !== a.name.length, + A = h.length !== A.length, + d = '', + f = a.dir, + g = a.date, + m = { crc32: 0, compressedSize: 0, uncompressedSize: 0 }, + n = + ((e && !n) || + ((m.crc32 = t.crc32), + (m.compressedSize = t.compressedSize), + (m.uncompressedSize = t.uncompressedSize)), + 0), + t = (e && (n |= 8), l || (!p && !A) || (n |= 2048), 0), + e = 0, + g = + (f && (t |= 16), + 'UNIX' === i + ? ((e = 798), + (t |= + (65535 & ((l = a.unixPermissions) ? l : f ? 16893 : 33204)) << + 16)) + : ((e = 20), (t |= 63 & (a.dosPermissions || 0))), + (i = g.getUTCHours()), + (i = + (i = ((i <<= 6) | g.getUTCMinutes()) << 5) | + (g.getUTCSeconds() / 2)), + (l = g.getUTCFullYear() - 1980), + (l = (l = ((l <<= 4) | (g.getUTCMonth() + 1)) << 5) | g.getUTCDate()), + p && + ((f = v(1, 1) + v(w(u), 4) + c), (d += 'up' + v(f.length, 2) + f)), + A && + ((a = v(1, 1) + v(w(o), 4) + h), (d += 'uc' + v(a.length, 2) + a)), + ''), + g = + (g = + (g = + (g = + (g = + (g = + (g = + (g = (g = (g += '\n\0') + v(n, 2)) + s.magic) + v(i, 2)) + + v(l, 2)) + v(m.crc32, 4)) + v(m.compressedSize, 4)) + + v(m.uncompressedSize, 4)) + v(u.length, 2)) + v(d.length, 2); + return { + fileRecord: E.LOCAL_FILE_HEADER + g + u + d, + dirRecord: + E.CENTRAL_FILE_HEADER + + v(e, 2) + + g + + v(o.length, 2) + + '\0\0\0\0' + + v(t, 4) + + v(r, 4) + + u + + d + + o, + }; + } + var b = t('../utils'), + i = t('../stream/GenericWorker'), + y = t('../utf8'), + w = t('../crc32'), + E = t('../signature'); + function o(t, e, n, r) { + i.call(this, 'ZipFileWorker'), + (this.bytesWritten = 0), + (this.zipComment = e), + (this.zipPlatform = n), + (this.encodeFileName = r), + (this.streamFiles = t), + (this.accumulate = !1), + (this.contentBuffer = []), + (this.dirRecords = []), + (this.currentSourceOffset = 0), + (this.entriesCount = 0), + (this.currentFile = null), + (this._sources = []); + } + b.inherits(o, i), + (o.prototype.push = function (t) { + var e = t.meta.percent || 0, + n = this.entriesCount, + r = this._sources.length; + this.accumulate + ? this.contentBuffer.push(t) + : ((this.bytesWritten += t.data.length), + i.prototype.push.call(this, { + data: t.data, + meta: { + currentFile: this.currentFile, + percent: n ? (e + 100 * (n - r - 1)) / n : 100, + }, + })); + }), + (o.prototype.openedSource = function (t) { + (this.currentSourceOffset = this.bytesWritten), + (this.currentFile = t.file.name); + var e = this.streamFiles && !t.file.dir; + e + ? ((t = r( + t, + e, + !1, + this.currentSourceOffset, + this.zipPlatform, + this.encodeFileName, + )), + this.push({ data: t.fileRecord, meta: { percent: 0 } })) + : (this.accumulate = !0); + }), + (o.prototype.closedSource = function (t) { + this.accumulate = !1; + var e = this.streamFiles && !t.file.dir, + n = r( + t, + e, + !0, + this.currentSourceOffset, + this.zipPlatform, + this.encodeFileName, + ); + if ((this.dirRecords.push(n.dirRecord), e)) + this.push({ + data: + ((e = t), + E.DATA_DESCRIPTOR + + v(e.crc32, 4) + + v(e.compressedSize, 4) + + v(e.uncompressedSize, 4)), + meta: { percent: 100 }, + }); + else + for ( + this.push({ data: n.fileRecord, meta: { percent: 0 } }); + this.contentBuffer.length; + + ) + this.push(this.contentBuffer.shift()); + this.currentFile = null; + }), + (o.prototype.flush = function () { + for (var t = this.bytesWritten, e = 0; e < this.dirRecords.length; e++) + this.push({ data: this.dirRecords[e], meta: { percent: 100 } }); + var n = this.bytesWritten - t, + n = (function (t, e, n, r, i) { + i = b.transformTo('string', i(r)); + return ( + E.CENTRAL_DIRECTORY_END + + '\0\0\0\0' + + v(t, 2) + + v(t, 2) + + v(e, 4) + + v(n, 4) + + v(i.length, 2) + + i + ); + })( + this.dirRecords.length, + n, + t, + this.zipComment, + this.encodeFileName, + ); + this.push({ data: n, meta: { percent: 100 } }); + }), + (o.prototype.prepareNextSource = function () { + (this.previous = this._sources.shift()), + this.openedSource(this.previous.streamInfo), + this.isPaused ? this.previous.pause() : this.previous.resume(); + }), + (o.prototype.registerPrevious = function (t) { + this._sources.push(t); + var e = this; + return ( + t.on('data', function (t) { + e.processChunk(t); + }), + t.on('end', function () { + e.closedSource(e.previous.streamInfo), + e._sources.length ? e.prepareNextSource() : e.end(); + }), + t.on('error', function (t) { + e.error(t); + }), + this + ); + }), + (o.prototype.resume = function () { + return ( + !!i.prototype.resume.call(this) && + (!this.previous && this._sources.length + ? (this.prepareNextSource(), !0) + : this.previous || this._sources.length || this.generatedError + ? void 0 + : (this.end(), !0)) + ); + }), + (o.prototype.error = function (t) { + var e = this._sources; + if (!i.prototype.error.call(this, t)) return !1; + for (var n = 0; n < e.length; n++) + try { + e[n].error(t); + } catch (t) {} + return !0; + }), + (o.prototype.lock = function () { + i.prototype.lock.call(this); + for (var t = this._sources, e = 0; e < t.length; e++) t[e].lock(); + }), + (e.exports = o); + }, + { + '../crc32': 4, + '../signature': 23, + '../stream/GenericWorker': 28, + '../utf8': 31, + '../utils': 32, + }, + ], + 9: [ + function (t, e, n) { + 'use strict'; + var u = t('../compressions'), + r = t('./ZipFileWorker'); + n.generateWorker = function (t, a, e) { + var s = new r(a.streamFiles, e, a.platform, a.encodeFileName), + l = 0; + try { + t.forEach(function (t, e) { + l++; + var n = (function (t, e) { + (t = t || e), (e = u[t]); + if (e) return e; + throw new Error(t + ' is not a valid compression method !'); + })(e.options.compression, a.compression), + r = e.options.compressionOptions || a.compressionOptions || {}, + i = e.dir, + o = e.date; + e._compressWorker(n, r) + .withStreamInfo('file', { + name: t, + dir: i, + date: o, + comment: e.comment || '', + unixPermissions: e.unixPermissions, + dosPermissions: e.dosPermissions, + }) + .pipe(s); + }), + (s.entriesCount = l); + } catch (t) { + s.error(t); + } + return s; + }; + }, + { '../compressions': 3, './ZipFileWorker': 8 }, + ], + 10: [ + function (t, e, n) { + 'use strict'; + function r() { + if (!(this instanceof r)) return new r(); + if (arguments.length) + throw new Error( + 'The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.', + ); + (this.files = Object.create(null)), + (this.comment = null), + (this.root = ''), + (this.clone = function () { + var t, + e = new r(); + for (t in this) 'function' != typeof this[t] && (e[t] = this[t]); + return e; + }); + } + ((r.prototype = t('./object')).loadAsync = t('./load')), + (r.support = t('./support')), + (r.defaults = t('./defaults')), + (r.version = '3.10.0'), + (r.loadAsync = function (t, e) { + return new r().loadAsync(t, e); + }), + (r.external = t('./external')), + (e.exports = r); + }, + { + './defaults': 5, + './external': 6, + './load': 11, + './object': 15, + './support': 30, + }, + ], + 11: [ + function (t, e, n) { + 'use strict'; + var l = t('./utils'), + i = t('./external'), + r = t('./utf8'), + o = t('./zipEntries'), + u = t('./stream/Crc32Probe'), + c = t('./nodejsUtils'); + e.exports = function (t, a) { + var s = this; + return ( + (a = l.extend(a || {}, { + base64: !1, + checkCRC32: !1, + optimizedBinaryString: !1, + createFolders: !1, + decodeFileName: r.utf8decode, + })), + c.isNode && c.isStream(t) + ? i.Promise.reject( + new Error("JSZip can't accept a stream when loading a zip file."), + ) + : l + .prepareContent( + 'the loaded zip file', + t, + !0, + a.optimizedBinaryString, + a.base64, + ) + .then(function (t) { + var e = new o(a); + return e.load(t), e; + }) + .then(function (t) { + var e = [i.Promise.resolve(t)], + n = t.files; + if (a.checkCRC32) + for (var r = 0; r < n.length; r++) + e.push( + (function (r) { + return new i.Promise(function (t, e) { + var n = r.decompressed + .getContentWorker() + .pipe(new u()); + n.on('error', function (t) { + e(t); + }) + .on('end', function () { + n.streamInfo.crc32 !== r.decompressed.crc32 + ? e(new Error('Corrupted zip : CRC32 mismatch')) + : t(); + }) + .resume(); + }); + })(n[r]), + ); + return i.Promise.all(e); + }) + .then(function (t) { + for (var t = t.shift(), e = t.files, n = 0; n < e.length; n++) { + var r = e[n], + i = r.fileNameStr, + o = l.resolve(r.fileNameStr); + s.file(o, r.decompressed, { + binary: !0, + optimizedBinaryString: !0, + date: r.date, + dir: r.dir, + comment: r.fileCommentStr.length ? r.fileCommentStr : null, + unixPermissions: r.unixPermissions, + dosPermissions: r.dosPermissions, + createFolders: a.createFolders, + }), + r.dir || (s.file(o).unsafeOriginalName = i); + } + return t.zipComment.length && (s.comment = t.zipComment), s; + }) + ); + }; + }, + { + './external': 6, + './nodejsUtils': 14, + './stream/Crc32Probe': 25, + './utf8': 31, + './utils': 32, + './zipEntries': 33, + }, + ], + 12: [ + function (t, e, n) { + 'use strict'; + var r = t('../utils'), + i = t('../stream/GenericWorker'); + function o(t, e) { + i.call(this, 'Nodejs stream input adapter for ' + t), + (this._upstreamEnded = !1), + this._bindStream(e); + } + r.inherits(o, i), + (o.prototype._bindStream = function (t) { + var e = this; + (this._stream = t).pause(), + t + .on('data', function (t) { + e.push({ data: t, meta: { percent: 0 } }); + }) + .on('error', function (t) { + e.isPaused ? (this.generatedError = t) : e.error(t); + }) + .on('end', function () { + e.isPaused ? (e._upstreamEnded = !0) : e.end(); + }); + }), + (o.prototype.pause = function () { + return !!i.prototype.pause.call(this) && (this._stream.pause(), !0); + }), + (o.prototype.resume = function () { + return ( + !!i.prototype.resume.call(this) && + (this._upstreamEnded ? this.end() : this._stream.resume(), !0) + ); + }), + (e.exports = o); + }, + { '../stream/GenericWorker': 28, '../utils': 32 }, + ], + 13: [ + function (t, e, n) { + 'use strict'; + var i = t('readable-stream').Readable; + function r(t, e, n) { + i.call(this, e), (this._helper = t); + var r = this; + t.on('data', function (t, e) { + r.push(t) || r._helper.pause(), n && n(e); + }) + .on('error', function (t) { + r.emit('error', t); + }) + .on('end', function () { + r.push(null); + }); + } + t('../utils').inherits(r, i), + (r.prototype._read = function () { + this._helper.resume(); + }), + (e.exports = r); + }, + { '../utils': 32, 'readable-stream': 16 }, + ], + 14: [ + function (t, e, n) { + 'use strict'; + e.exports = { + isNode: void 0 !== A, + newBufferFrom: function (t, e) { + if (A.from && A.from !== Uint8Array.from) return A.from(t, e); + if ('number' == typeof t) + throw new Error('The "data" argument must not be a number'); + return new A(t, e); + }, + allocBuffer: function (t) { + if (A.alloc) return A.alloc(t); + t = new A(t); + return t.fill(0), t; + }, + isBuffer: function (t) { + return A.isBuffer(t); + }, + isStream: function (t) { + return ( + t && + 'function' == typeof t.on && + 'function' == typeof t.pause && + 'function' == typeof t.resume + ); + }, + }; + }, + {}, + ], + 15: [ + function (t, e, n) { + 'use strict'; + function i(t, e, n) { + var r = l.getTypeOf(e), + i = l.extend(n || {}, A), + o = + ((i.date = i.date || new Date()), + null !== i.compression && + (i.compression = i.compression.toUpperCase()), + 'string' == typeof i.unixPermissions && + (i.unixPermissions = parseInt(i.unixPermissions, 8)), + i.unixPermissions && 16384 & i.unixPermissions && (i.dir = !0), + i.dosPermissions && 16 & i.dosPermissions && (i.dir = !0), + i.dir && (t = m(t)), + i.createFolders && (o = a(t)) && s.call(this, o, !0), + 'string' === r && !1 === i.binary && !1 === i.base64), + r = + ((n && void 0 !== n.binary) || (i.binary = !o), + ((e instanceof h && 0 === e.uncompressedSize) || + i.dir || + !e || + 0 === e.length) && + ((i.base64 = !1), + (i.binary = !0), + (e = ''), + (i.compression = 'STORE')), + e instanceof h || e instanceof u + ? e + : f.isNode && f.isStream(e) + ? new g(t, e) + : l.prepareContent( + t, + e, + i.binary, + i.optimizedBinaryString, + i.base64, + )), + n = new p(t, r, i); + this.files[t] = n; + } + function a(t) { + var e = (t = + '/' === t.slice(-1) ? t.substring(0, t.length - 1) : t).lastIndexOf( + '/', + ); + return 0 < e ? t.substring(0, e) : ''; + } + function s(t, e) { + return ( + (e = void 0 !== e ? e : A.createFolders), + (t = m(t)), + this.files[t] || i.call(this, t, null, { dir: !0, createFolders: e }), + this.files[t] + ); + } + var o = t('./utf8'), + l = t('./utils'), + u = t('./stream/GenericWorker'), + c = t('./stream/StreamHelper'), + A = t('./defaults'), + h = t('./compressedObject'), + p = t('./zipObject'), + d = t('./generate'), + f = t('./nodejsUtils'), + g = t('./nodejs/NodejsStreamInputAdapter'), + m = function (t) { + return '/' !== t.slice(-1) && (t += '/'), t; + }; + function v(t) { + return '[object RegExp]' === Object.prototype.toString.call(t); + } + e.exports = { + load: function () { + throw new Error( + 'This method has been removed in JSZip 3.0, please check the upgrade guide.', + ); + }, + forEach: function (t) { + var e, n, r; + for (e in this.files) + (r = this.files[e]), + (n = e.slice(this.root.length, e.length)) && + e.slice(0, this.root.length) === this.root && + t(n, r); + }, + filter: function (n) { + var r = []; + return ( + this.forEach(function (t, e) { + n(t, e) && r.push(e); + }), + r + ); + }, + file: function (t, e, n) { + if (1 !== arguments.length) + return (t = this.root + t), i.call(this, t, e, n), this; + var r; + if (v(t)) + return ( + (r = t), + this.filter(function (t, e) { + return !e.dir && r.test(t); + }) + ); + e = this.files[this.root + t]; + return e && !e.dir ? e : null; + }, + folder: function (n) { + if (!n) return this; + if (v(n)) + return this.filter(function (t, e) { + return e.dir && n.test(t); + }); + var t = this.root + n, + t = s.call(this, t), + e = this.clone(); + return (e.root = t.name), e; + }, + remove: function (n) { + n = this.root + n; + var t = this.files[n]; + if ( + (t || ('/' !== n.slice(-1) && (n += '/'), (t = this.files[n])), + t && !t.dir) + ) + delete this.files[n]; + else + for ( + var e = this.filter(function (t, e) { + return e.name.slice(0, n.length) === n; + }), + r = 0; + r < e.length; + r++ + ) + delete this.files[e[r].name]; + return this; + }, + generate: function (t) { + throw new Error( + 'This method has been removed in JSZip 3.0, please check the upgrade guide.', + ); + }, + generateInternalStream: function (t) { + var e = {}; + try { + if ( + (((e = l.extend(t || {}, { + streamFiles: !1, + compression: 'STORE', + compressionOptions: null, + type: '', + platform: 'DOS', + comment: null, + mimeType: 'application/zip', + encodeFileName: o.utf8encode, + })).type = e.type.toLowerCase()), + (e.compression = e.compression.toUpperCase()), + 'binarystring' === e.type && (e.type = 'string'), + !e.type) + ) + throw new Error('No output type specified.'); + l.checkSupport(e.type), + ('darwin' !== e.platform && + 'freebsd' !== e.platform && + 'linux' !== e.platform && + 'sunos' !== e.platform) || + (e.platform = 'UNIX'), + 'win32' === e.platform && (e.platform = 'DOS'); + var n = e.comment || this.comment || '', + r = d.generateWorker(this, e, n); + } catch (t) { + (r = new u('error')).error(t); + } + return new c(r, e.type || 'string', e.mimeType); + }, + generateAsync: function (t, e) { + return this.generateInternalStream(t).accumulate(e); + }, + generateNodeStream: function (t, e) { + return ( + (t = t || {}).type || (t.type = 'nodebuffer'), + this.generateInternalStream(t).toNodejsStream(e) + ); + }, + }; + }, + { + './compressedObject': 2, + './defaults': 5, + './generate': 9, + './nodejs/NodejsStreamInputAdapter': 12, + './nodejsUtils': 14, + './stream/GenericWorker': 28, + './stream/StreamHelper': 29, + './utf8': 31, + './utils': 32, + './zipObject': 35, + }, + ], + 16: [ + function (t, e, n) { + e.exports = t('stream'); + }, + { stream: void 0 }, + ], + 17: [ + function (t, e, n) { + 'use strict'; + var r = t('./DataReader'); + function i(t) { + r.call(this, t); + for (var e = 0; e < this.data.length; e++) t[e] = 255 & t[e]; + } + t('../utils').inherits(i, r), + (i.prototype.byteAt = function (t) { + return this.data[this.zero + t]; + }), + (i.prototype.lastIndexOfSignature = function (t) { + for ( + var e = t.charCodeAt(0), + n = t.charCodeAt(1), + r = t.charCodeAt(2), + i = t.charCodeAt(3), + o = this.length - 4; + 0 <= o; + --o + ) + if ( + this.data[o] === e && + this.data[o + 1] === n && + this.data[o + 2] === r && + this.data[o + 3] === i + ) + return o - this.zero; + return -1; + }), + (i.prototype.readAndCheckSignature = function (t) { + var e = t.charCodeAt(0), + n = t.charCodeAt(1), + r = t.charCodeAt(2), + t = t.charCodeAt(3), + i = this.readData(4); + return e === i[0] && n === i[1] && r === i[2] && t === i[3]; + }), + (i.prototype.readData = function (t) { + if ((this.checkOffset(t), 0 === t)) return []; + var e = this.data.slice( + this.zero + this.index, + this.zero + this.index + t, + ); + return (this.index += t), e; + }), + (e.exports = i); + }, + { '../utils': 32, './DataReader': 18 }, + ], + 18: [ + function (t, e, n) { + 'use strict'; + var r = t('../utils'); + function i(t) { + (this.data = t), + (this.length = t.length), + (this.index = 0), + (this.zero = 0); + } + (i.prototype = { + checkOffset: function (t) { + this.checkIndex(this.index + t); + }, + checkIndex: function (t) { + if (this.length < this.zero + t || t < 0) + throw new Error( + 'End of data reached (data length = ' + + this.length + + ', asked index = ' + + t + + '). Corrupted zip ?', + ); + }, + setIndex: function (t) { + this.checkIndex(t), (this.index = t); + }, + skip: function (t) { + this.setIndex(this.index + t); + }, + byteAt: function (t) {}, + readInt: function (t) { + var e, + n = 0; + for (this.checkOffset(t), e = this.index + t - 1; e >= this.index; e--) + n = (n << 8) + this.byteAt(e); + return (this.index += t), n; + }, + readString: function (t) { + return r.transformTo('string', this.readData(t)); + }, + readData: function (t) {}, + lastIndexOfSignature: function (t) {}, + readAndCheckSignature: function (t) {}, + readDate: function () { + var t = this.readInt(4); + return new Date( + Date.UTC( + 1980 + ((t >> 25) & 127), + ((t >> 21) & 15) - 1, + (t >> 16) & 31, + (t >> 11) & 31, + (t >> 5) & 63, + (31 & t) << 1, + ), + ); + }, + }), + (e.exports = i); + }, + { '../utils': 32 }, + ], + 19: [ + function (t, e, n) { + 'use strict'; + var r = t('./Uint8ArrayReader'); + function i(t) { + r.call(this, t); + } + t('../utils').inherits(i, r), + (i.prototype.readData = function (t) { + this.checkOffset(t); + var e = this.data.slice( + this.zero + this.index, + this.zero + this.index + t, + ); + return (this.index += t), e; + }), + (e.exports = i); + }, + { '../utils': 32, './Uint8ArrayReader': 21 }, + ], + 20: [ + function (t, e, n) { + 'use strict'; + var r = t('./DataReader'); + function i(t) { + r.call(this, t); + } + t('../utils').inherits(i, r), + (i.prototype.byteAt = function (t) { + return this.data.charCodeAt(this.zero + t); + }), + (i.prototype.lastIndexOfSignature = function (t) { + return this.data.lastIndexOf(t) - this.zero; + }), + (i.prototype.readAndCheckSignature = function (t) { + return t === this.readData(4); + }), + (i.prototype.readData = function (t) { + this.checkOffset(t); + var e = this.data.slice( + this.zero + this.index, + this.zero + this.index + t, + ); + return (this.index += t), e; + }), + (e.exports = i); + }, + { '../utils': 32, './DataReader': 18 }, + ], + 21: [ + function (t, e, n) { + 'use strict'; + var r = t('./ArrayReader'); + function i(t) { + r.call(this, t); + } + t('../utils').inherits(i, r), + (i.prototype.readData = function (t) { + if ((this.checkOffset(t), 0 === t)) return new Uint8Array(0); + var e = this.data.subarray( + this.zero + this.index, + this.zero + this.index + t, + ); + return (this.index += t), e; + }), + (e.exports = i); + }, + { '../utils': 32, './ArrayReader': 17 }, + ], + 22: [ + function (t, e, n) { + 'use strict'; + var r = t('../utils'), + i = t('../support'), + o = t('./ArrayReader'), + a = t('./StringReader'), + s = t('./NodeBufferReader'), + l = t('./Uint8ArrayReader'); + e.exports = function (t) { + var e = r.getTypeOf(t); + return ( + r.checkSupport(e), + 'string' !== e || i.uint8array + ? 'nodebuffer' === e + ? new s(t) + : i.uint8array + ? new l(r.transformTo('uint8array', t)) + : new o(r.transformTo('array', t)) + : new a(t) + ); + }; + }, + { + '../support': 30, + '../utils': 32, + './ArrayReader': 17, + './NodeBufferReader': 19, + './StringReader': 20, + './Uint8ArrayReader': 21, + }, + ], + 23: [ + function (t, e, n) { + 'use strict'; + (n.LOCAL_FILE_HEADER = 'PK'), + (n.CENTRAL_FILE_HEADER = 'PK'), + (n.CENTRAL_DIRECTORY_END = 'PK'), + (n.ZIP64_CENTRAL_DIRECTORY_LOCATOR = 'PK'), + (n.ZIP64_CENTRAL_DIRECTORY_END = 'PK'), + (n.DATA_DESCRIPTOR = 'PK\b'); + }, + {}, + ], + 24: [ + function (t, e, n) { + 'use strict'; + var r = t('./GenericWorker'), + i = t('../utils'); + function o(t) { + r.call(this, 'ConvertWorker to ' + t), (this.destType = t); + } + i.inherits(o, r), + (o.prototype.processChunk = function (t) { + this.push({ data: i.transformTo(this.destType, t.data), meta: t.meta }); + }), + (e.exports = o); + }, + { '../utils': 32, './GenericWorker': 28 }, + ], + 25: [ + function (t, e, n) { + 'use strict'; + var r = t('./GenericWorker'), + i = t('../crc32'); + function o() { + r.call(this, 'Crc32Probe'), this.withStreamInfo('crc32', 0); + } + t('../utils').inherits(o, r), + (o.prototype.processChunk = function (t) { + (this.streamInfo.crc32 = i(t.data, this.streamInfo.crc32 || 0)), + this.push(t); + }), + (e.exports = o); + }, + { '../crc32': 4, '../utils': 32, './GenericWorker': 28 }, + ], + 26: [ + function (t, e, n) { + 'use strict'; + var r = t('../utils'), + i = t('./GenericWorker'); + function o(t) { + i.call(this, 'DataLengthProbe for ' + t), + (this.propName = t), + this.withStreamInfo(t, 0); + } + r.inherits(o, i), + (o.prototype.processChunk = function (t) { + var e; + t && + ((e = this.streamInfo[this.propName] || 0), + (this.streamInfo[this.propName] = e + t.data.length)), + i.prototype.processChunk.call(this, t); + }), + (e.exports = o); + }, + { '../utils': 32, './GenericWorker': 28 }, + ], + 27: [ + function (t, e, n) { + 'use strict'; + var r = t('../utils'), + i = t('./GenericWorker'); + function o(t) { + i.call(this, 'DataWorker'); + var e = this; + (this.dataIsReady = !1), + (this.index = 0), + (this.max = 0), + (this.data = null), + (this.type = ''), + (this._tickScheduled = !1), + t.then( + function (t) { + (e.dataIsReady = !0), + (e.data = t), + (e.max = (t && t.length) || 0), + (e.type = r.getTypeOf(t)), + e.isPaused || e._tickAndRepeat(); + }, + function (t) { + e.error(t); + }, + ); + } + r.inherits(o, i), + (o.prototype.cleanUp = function () { + i.prototype.cleanUp.call(this), (this.data = null); + }), + (o.prototype.resume = function () { + return ( + !!i.prototype.resume.call(this) && + (!this._tickScheduled && + this.dataIsReady && + ((this._tickScheduled = !0), + r.delay(this._tickAndRepeat, [], this)), + !0) + ); + }), + (o.prototype._tickAndRepeat = function () { + (this._tickScheduled = !1), + this.isPaused || + this.isFinished || + (this._tick(), + this.isFinished || + (r.delay(this._tickAndRepeat, [], this), + (this._tickScheduled = !0))); + }), + (o.prototype._tick = function () { + if (this.isPaused || this.isFinished) return !1; + var t = null, + e = Math.min(this.max, this.index + 16384); + if (this.index >= this.max) return this.end(); + switch (this.type) { + case 'string': + t = this.data.substring(this.index, e); + break; + case 'uint8array': + t = this.data.subarray(this.index, e); + break; + case 'array': + case 'nodebuffer': + t = this.data.slice(this.index, e); + } + return ( + (this.index = e), + this.push({ + data: t, + meta: { percent: this.max ? (this.index / this.max) * 100 : 0 }, + }) + ); + }), + (e.exports = o); + }, + { '../utils': 32, './GenericWorker': 28 }, + ], + 28: [ + function (t, e, n) { + 'use strict'; + function r(t) { + (this.name = t || 'default'), + (this.streamInfo = {}), + (this.generatedError = null), + (this.extraStreamInfo = {}), + (this.isPaused = !0), + (this.isFinished = !1), + (this.isLocked = !1), + (this._listeners = { data: [], end: [], error: [] }), + (this.previous = null); + } + (r.prototype = { + push: function (t) { + this.emit('data', t); + }, + end: function () { + if (this.isFinished) return !1; + this.flush(); + try { + this.emit('end'), this.cleanUp(), (this.isFinished = !0); + } catch (t) { + this.emit('error', t); + } + return !0; + }, + error: function (t) { + return ( + !this.isFinished && + (this.isPaused + ? (this.generatedError = t) + : ((this.isFinished = !0), + this.emit('error', t), + this.previous && this.previous.error(t), + this.cleanUp()), + !0) + ); + }, + on: function (t, e) { + return this._listeners[t].push(e), this; + }, + cleanUp: function () { + (this.streamInfo = this.generatedError = this.extraStreamInfo = null), + (this._listeners = []); + }, + emit: function (t, e) { + if (this._listeners[t]) + for (var n = 0; n < this._listeners[t].length; n++) + this._listeners[t][n].call(this, e); + }, + pipe: function (t) { + return t.registerPrevious(this); + }, + registerPrevious: function (t) { + if (this.isLocked) + throw new Error("The stream '" + this + "' has already been used."); + (this.streamInfo = t.streamInfo), + this.mergeStreamInfo(), + (this.previous = t); + var e = this; + return ( + t.on('data', function (t) { + e.processChunk(t); + }), + t.on('end', function () { + e.end(); + }), + t.on('error', function (t) { + e.error(t); + }), + this + ); + }, + pause: function () { + return ( + !this.isPaused && + !this.isFinished && + ((this.isPaused = !0), this.previous && this.previous.pause(), !0) + ); + }, + resume: function () { + if (!this.isPaused || this.isFinished) return !1; + var t = (this.isPaused = !1); + return ( + this.generatedError && (this.error(this.generatedError), (t = !0)), + this.previous && this.previous.resume(), + !t + ); + }, + flush: function () {}, + processChunk: function (t) { + this.push(t); + }, + withStreamInfo: function (t, e) { + return (this.extraStreamInfo[t] = e), this.mergeStreamInfo(), this; + }, + mergeStreamInfo: function () { + for (var t in this.extraStreamInfo) + this.extraStreamInfo.hasOwnProperty(t) && + (this.streamInfo[t] = this.extraStreamInfo[t]); + }, + lock: function () { + if (this.isLocked) + throw new Error("The stream '" + this + "' has already been used."); + (this.isLocked = !0), this.previous && this.previous.lock(); + }, + toString: function () { + var t = 'Worker ' + this.name; + return this.previous ? this.previous + ' -> ' + t : t; + }, + }), + (e.exports = r); + }, + {}, + ], + 29: [ + function (t, e, n) { + 'use strict'; + var u = t('../utils'), + i = t('./ConvertWorker'), + o = t('./GenericWorker'), + c = t('../base64'), + r = t('../support'), + a = t('../external'), + s = null; + if (r.nodestream) + try { + s = t('../nodejs/NodejsStreamOutputAdapter'); + } catch (t) {} + function l(t, e, n) { + var r = e; + switch (e) { + case 'blob': + case 'arraybuffer': + r = 'uint8array'; + break; + case 'base64': + r = 'string'; + } + try { + (this._internalType = r), + (this._outputType = e), + (this._mimeType = n), + u.checkSupport(r), + (this._worker = t.pipe(new i(r))), + t.lock(); + } catch (t) { + (this._worker = new o('error')), this._worker.error(t); + } + } + (l.prototype = { + accumulate: function (t) { + return ( + (s = this), + (l = t), + new a.Promise(function (e, n) { + var r = [], + i = s._internalType, + o = s._outputType, + a = s._mimeType; + s.on('data', function (t, e) { + r.push(t), l && l(e); + }) + .on('error', function (t) { + (r = []), n(t); + }) + .on('end', function () { + try { + var t = (function (t, e, n) { + switch (t) { + case 'blob': + return u.newBlob(u.transformTo('arraybuffer', e), n); + case 'base64': + return c.encode(e); + default: + return u.transformTo(t, e); + } + })( + o, + (function (t, e) { + for (var n = 0, r = null, i = 0, o = 0; o < e.length; o++) + i += e[o].length; + switch (t) { + case 'string': + return e.join(''); + case 'array': + return Array.prototype.concat.apply([], e); + case 'uint8array': + for (r = new Uint8Array(i), o = 0; o < e.length; o++) + r.set(e[o], n), (n += e[o].length); + return r; + case 'nodebuffer': + return A.concat(e); + default: + throw new Error( + "concat : unsupported type '" + t + "'", + ); + } + })(i, r), + a, + ); + e(t); + } catch (t) { + n(t); + } + r = []; + }) + .resume(); + }) + ); + var s, l; + }, + on: function (t, e) { + var n = this; + return ( + 'data' === t + ? this._worker.on(t, function (t) { + e.call(n, t.data, t.meta); + }) + : this._worker.on(t, function () { + u.delay(e, arguments, n); + }), + this + ); + }, + resume: function () { + return u.delay(this._worker.resume, [], this._worker), this; + }, + pause: function () { + return this._worker.pause(), this; + }, + toNodejsStream: function (t) { + if ((u.checkSupport('nodestream'), 'nodebuffer' !== this._outputType)) + throw new Error( + this._outputType + ' is not supported by this method', + ); + return new s( + this, + { objectMode: 'nodebuffer' !== this._outputType }, + t, + ); + }, + }), + (e.exports = l); + }, + { + '../base64': 1, + '../external': 6, + '../nodejs/NodejsStreamOutputAdapter': 13, + '../support': 30, + '../utils': 32, + './ConvertWorker': 24, + './GenericWorker': 28, + }, + ], + 30: [ + function (t, e, n) { + 'use strict'; + if ( + ((n.base64 = !0), + (n.array = !0), + (n.string = !0), + (n.arraybuffer = + 'undefined' != typeof ArrayBuffer && 'undefined' != typeof Uint8Array), + (n.nodebuffer = void 0 !== A), + (n.uint8array = 'undefined' != typeof Uint8Array), + 'undefined' == typeof ArrayBuffer) + ) + n.blob = !1; + else { + var r = new ArrayBuffer(0); + try { + n.blob = 0 === new Blob([r], { type: 'application/zip' }).size; + } catch (t) { + try { + var i = new (self.BlobBuilder || + self.WebKitBlobBuilder || + self.MozBlobBuilder || + self.MSBlobBuilder)(); + i.append(r), (n.blob = 0 === i.getBlob('application/zip').size); + } catch (t) { + n.blob = !1; + } + } + } + try { + n.nodestream = !!t('readable-stream').Readable; + } catch (t) { + n.nodestream = !1; + } + }, + { 'readable-stream': 16 }, + ], + 31: [ + function (t, e, i) { + 'use strict'; + for ( + var l = t('./utils'), + u = t('./support'), + c = t('./nodejsUtils'), + n = t('./stream/GenericWorker'), + A = new Array(256), + r = 0; + r < 256; + r++ + ) + A[r] = + 252 <= r + ? 6 + : 248 <= r + ? 5 + : 240 <= r + ? 4 + : 224 <= r + ? 3 + : 192 <= r + ? 2 + : 1; + function o() { + n.call(this, 'utf-8 decode'), (this.leftOver = null); + } + function a() { + n.call(this, 'utf-8 encode'); + } + (A[254] = A[254] = 1), + (i.utf8encode = function (t) { + if (u.nodebuffer) return c.newBufferFrom(t, 'utf-8'); + for (var e, n, r, i, o = t, a = o.length, s = 0, l = 0; l < a; l++) + 55296 == (64512 & (n = o.charCodeAt(l))) && + l + 1 < a && + 56320 == (64512 & (r = o.charCodeAt(l + 1))) && + ((n = 65536 + ((n - 55296) << 10) + (r - 56320)), l++), + (s += n < 128 ? 1 : n < 2048 ? 2 : n < 65536 ? 3 : 4); + for ( + e = new (u.uint8array ? Uint8Array : Array)(s), l = i = 0; + i < s; + l++ + ) + 55296 == (64512 & (n = o.charCodeAt(l))) && + l + 1 < a && + 56320 == (64512 & (r = o.charCodeAt(l + 1))) && + ((n = 65536 + ((n - 55296) << 10) + (r - 56320)), l++), + n < 128 + ? (e[i++] = n) + : (n < 2048 + ? (e[i++] = 192 | (n >>> 6)) + : (n < 65536 + ? (e[i++] = 224 | (n >>> 12)) + : ((e[i++] = 240 | (n >>> 18)), + (e[i++] = 128 | ((n >>> 12) & 63))), + (e[i++] = 128 | ((n >>> 6) & 63))), + (e[i++] = 128 | (63 & n))); + return e; + }), + (i.utf8decode = function (t) { + if (u.nodebuffer) + return l.transformTo('nodebuffer', t).toString('utf-8'); + for ( + var e, + n, + r, + i = (t = l.transformTo(u.uint8array ? 'uint8array' : 'array', t)), + o = i.length, + a = new Array(2 * o), + s = (e = 0); + s < o; + + ) + if ((n = i[s++]) < 128) a[e++] = n; + else if (4 < (r = A[n])) (a[e++] = 65533), (s += r - 1); + else { + for (n &= 2 === r ? 31 : 3 === r ? 15 : 7; 1 < r && s < o; ) + (n = (n << 6) | (63 & i[s++])), r--; + 1 < r + ? (a[e++] = 65533) + : n < 65536 + ? (a[e++] = n) + : ((n -= 65536), + (a[e++] = 55296 | ((n >> 10) & 1023)), + (a[e++] = 56320 | (1023 & n))); + } + return ( + a.length !== e && + (a.subarray ? (a = a.subarray(0, e)) : (a.length = e)), + l.applyFromCharCode(a) + ); + }), + l.inherits(o, n), + (o.prototype.processChunk = function (t) { + var e = l.transformTo(u.uint8array ? 'uint8array' : 'array', t.data), + n = + (this.leftOver && + this.leftOver.length && + (u.uint8array + ? ((n = e), + (e = new Uint8Array(n.length + this.leftOver.length)).set( + this.leftOver, + 0, + ), + e.set(n, this.leftOver.length)) + : (e = this.leftOver.concat(e)), + (this.leftOver = null)), + (function (t, e) { + for ( + var n = (e = (e = e || t.length) > t.length ? t.length : e) - 1; + 0 <= n && 128 == (192 & t[n]); + + ) + n--; + return !(n < 0) && 0 !== n && n + A[t[n]] > e ? n : e; + })(e)), + r = e; + n !== e.length && + (u.uint8array + ? ((r = e.subarray(0, n)), + (this.leftOver = e.subarray(n, e.length))) + : ((r = e.slice(0, n)), (this.leftOver = e.slice(n, e.length)))), + this.push({ data: i.utf8decode(r), meta: t.meta }); + }), + (o.prototype.flush = function () { + this.leftOver && + this.leftOver.length && + (this.push({ data: i.utf8decode(this.leftOver), meta: {} }), + (this.leftOver = null)); + }), + (i.Utf8DecodeWorker = o), + l.inherits(a, n), + (a.prototype.processChunk = function (t) { + this.push({ data: i.utf8encode(t.data), meta: t.meta }); + }), + (i.Utf8EncodeWorker = a); + }, + { + './nodejsUtils': 14, + './stream/GenericWorker': 28, + './support': 30, + './utils': 32, + }, + ], + 32: [ + function (t, e, a) { + 'use strict'; + var s = t('./support'), + l = t('./base64'), + n = t('./nodejsUtils'), + u = t('./external'); + function r(t) { + return t; + } + function c(t, e) { + for (var n = 0; n < t.length; ++n) e[n] = 255 & t.charCodeAt(n); + return e; + } + t('setimmediate'), + (a.newBlob = function (e, n) { + a.checkSupport('blob'); + try { + return new Blob([e], { type: n }); + } catch (t) { + try { + var r = new (self.BlobBuilder || + self.WebKitBlobBuilder || + self.MozBlobBuilder || + self.MSBlobBuilder)(); + return r.append(e), r.getBlob(n); + } catch (t) { + throw new Error("Bug : can't construct the Blob."); + } + } + }); + var i = { + stringifyByChunk: function (t, e, n) { + var r = [], + i = 0, + o = t.length; + if (o <= n) return String.fromCharCode.apply(null, t); + for (; i < o; ) + 'array' === e || 'nodebuffer' === e + ? r.push( + String.fromCharCode.apply(null, t.slice(i, Math.min(i + n, o))), + ) + : r.push( + String.fromCharCode.apply( + null, + t.subarray(i, Math.min(i + n, o)), + ), + ), + (i += n); + return r.join(''); + }, + stringifyByChar: function (t) { + for (var e = '', n = 0; n < t.length; n++) + e += String.fromCharCode(t[n]); + return e; + }, + applyCanBeUsed: { + uint8array: (function () { + try { + return ( + s.uint8array && + 1 === String.fromCharCode.apply(null, new Uint8Array(1)).length + ); + } catch (t) { + return !1; + } + })(), + nodebuffer: (function () { + try { + return ( + s.nodebuffer && + 1 === String.fromCharCode.apply(null, n.allocBuffer(1)).length + ); + } catch (t) { + return !1; + } + })(), + }, + }; + function o(t) { + var e = 65536, + n = a.getTypeOf(t), + r = !0; + if ( + ('uint8array' === n + ? (r = i.applyCanBeUsed.uint8array) + : 'nodebuffer' === n && (r = i.applyCanBeUsed.nodebuffer), + r) + ) + for (; 1 < e; ) + try { + return i.stringifyByChunk(t, n, e); + } catch (t) { + e = Math.floor(e / 2); + } + return i.stringifyByChar(t); + } + function A(t, e) { + for (var n = 0; n < t.length; n++) e[n] = t[n]; + return e; + } + a.applyFromCharCode = o; + var h = {}; + (h.string = { + string: r, + array: function (t) { + return c(t, new Array(t.length)); + }, + arraybuffer: function (t) { + return h.string.uint8array(t).buffer; + }, + uint8array: function (t) { + return c(t, new Uint8Array(t.length)); + }, + nodebuffer: function (t) { + return c(t, n.allocBuffer(t.length)); + }, + }), + (h.array = { + string: o, + array: r, + arraybuffer: function (t) { + return new Uint8Array(t).buffer; + }, + uint8array: function (t) { + return new Uint8Array(t); + }, + nodebuffer: function (t) { + return n.newBufferFrom(t); + }, + }), + (h.arraybuffer = { + string: function (t) { + return o(new Uint8Array(t)); + }, + array: function (t) { + return A(new Uint8Array(t), new Array(t.byteLength)); + }, + arraybuffer: r, + uint8array: function (t) { + return new Uint8Array(t); + }, + nodebuffer: function (t) { + return n.newBufferFrom(new Uint8Array(t)); + }, + }), + (h.uint8array = { + string: o, + array: function (t) { + return A(t, new Array(t.length)); + }, + arraybuffer: function (t) { + return t.buffer; + }, + uint8array: r, + nodebuffer: function (t) { + return n.newBufferFrom(t); + }, + }), + (h.nodebuffer = { + string: o, + array: function (t) { + return A(t, new Array(t.length)); + }, + arraybuffer: function (t) { + return h.nodebuffer.uint8array(t).buffer; + }, + uint8array: function (t) { + return A(t, new Uint8Array(t.length)); + }, + nodebuffer: r, + }), + (a.transformTo = function (t, e) { + if (((e = e || ''), !t)) return e; + a.checkSupport(t); + var n = a.getTypeOf(e); + return h[n][t](e); + }), + (a.resolve = function (t) { + for (var e = t.split('/'), n = [], r = 0; r < e.length; r++) { + var i = e[r]; + '.' === i || + ('' === i && 0 !== r && r !== e.length - 1) || + ('..' === i ? n.pop() : n.push(i)); + } + return n.join('/'); + }), + (a.getTypeOf = function (t) { + return 'string' == typeof t + ? 'string' + : '[object Array]' === Object.prototype.toString.call(t) + ? 'array' + : s.nodebuffer && n.isBuffer(t) + ? 'nodebuffer' + : s.uint8array && t instanceof Uint8Array + ? 'uint8array' + : s.arraybuffer && t instanceof ArrayBuffer + ? 'arraybuffer' + : void 0; + }), + (a.checkSupport = function (t) { + if (!s[t.toLowerCase()]) + throw new Error(t + ' is not supported by this platform'); + }), + (a.MAX_VALUE_16BITS = 65535), + (a.MAX_VALUE_32BITS = -1), + (a.pretty = function (t) { + for (var e, n = '', r = 0; r < (t || '').length; r++) + n += + '\\x' + + ((e = t.charCodeAt(r)) < 16 ? '0' : '') + + e.toString(16).toUpperCase(); + return n; + }), + (a.delay = function (t, e, n) { + p(function () { + t.apply(n || null, e || []); + }); + }), + (a.inherits = function (t, e) { + function n() {} + (n.prototype = e.prototype), (t.prototype = new n()); + }), + (a.extend = function () { + for (var t, e = {}, n = 0; n < arguments.length; n++) + for (t in arguments[n]) + arguments[n].hasOwnProperty(t) && + void 0 === e[t] && + (e[t] = arguments[n][t]); + return e; + }), + (a.prepareContent = function (n, t, r, i, o) { + return u.Promise.resolve(t) + .then(function (r) { + return s.blob && + (r instanceof Blob || + -1 !== + ['[object File]', '[object Blob]'].indexOf( + Object.prototype.toString.call(r), + )) && + 'undefined' != typeof FileReader + ? new u.Promise(function (e, n) { + var t = new FileReader(); + (t.onload = function (t) { + e(t.target.result); + }), + (t.onerror = function (t) { + n(t.target.error); + }), + t.readAsArrayBuffer(r); + }) + : r; + }) + .then(function (t) { + var e = a.getTypeOf(t); + return e + ? ('arraybuffer' === e + ? (t = a.transformTo('uint8array', t)) + : 'string' === e && + (o + ? (t = l.decode(t)) + : r && + !0 !== i && + (t = c( + (e = t), + new (s.uint8array ? Uint8Array : Array)(e.length), + ))), + t) + : u.Promise.reject( + new Error( + "Can't read the data of '" + + n + + "'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?", + ), + ); + }); + }); + }, + { + './base64': 1, + './external': 6, + './nodejsUtils': 14, + './support': 30, + setimmediate: 54, + }, + ], + 33: [ + function (t, e, n) { + 'use strict'; + var r = t('./reader/readerFor'), + i = t('./utils'), + o = t('./signature'), + a = t('./zipEntry'), + s = (t('./utf8'), t('./support')); + function l(t) { + (this.files = []), (this.loadOptions = t); + } + (l.prototype = { + checkSignature: function (t) { + var e; + if (!this.reader.readAndCheckSignature(t)) + throw ( + ((this.reader.index -= 4), + (e = this.reader.readString(4)), + new Error( + 'Corrupted zip or bug: unexpected signature (' + + i.pretty(e) + + ', expected ' + + i.pretty(t) + + ')', + )) + ); + }, + isSignature: function (t, e) { + var n = this.reader.index, + t = (this.reader.setIndex(t), this.reader.readString(4) === e); + return this.reader.setIndex(n), t; + }, + readBlockEndOfCentral: function () { + (this.diskNumber = this.reader.readInt(2)), + (this.diskWithCentralDirStart = this.reader.readInt(2)), + (this.centralDirRecordsOnThisDisk = this.reader.readInt(2)), + (this.centralDirRecords = this.reader.readInt(2)), + (this.centralDirSize = this.reader.readInt(4)), + (this.centralDirOffset = this.reader.readInt(4)), + (this.zipCommentLength = this.reader.readInt(2)); + var t = this.reader.readData(this.zipCommentLength), + e = s.uint8array ? 'uint8array' : 'array', + e = i.transformTo(e, t); + this.zipComment = this.loadOptions.decodeFileName(e); + }, + readBlockZip64EndOfCentral: function () { + (this.zip64EndOfCentralSize = this.reader.readInt(8)), + this.reader.skip(4), + (this.diskNumber = this.reader.readInt(4)), + (this.diskWithCentralDirStart = this.reader.readInt(4)), + (this.centralDirRecordsOnThisDisk = this.reader.readInt(8)), + (this.centralDirRecords = this.reader.readInt(8)), + (this.centralDirSize = this.reader.readInt(8)), + (this.centralDirOffset = this.reader.readInt(8)), + (this.zip64ExtensibleData = {}); + for (var t, e, n, r = this.zip64EndOfCentralSize - 44; 0 < r; ) + (t = this.reader.readInt(2)), + (e = this.reader.readInt(4)), + (n = this.reader.readData(e)), + (this.zip64ExtensibleData[t] = { id: t, length: e, value: n }); + }, + readBlockZip64EndOfCentralLocator: function () { + if ( + ((this.diskWithZip64CentralDirStart = this.reader.readInt(4)), + (this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8)), + (this.disksCount = this.reader.readInt(4)), + 1 < this.disksCount) + ) + throw new Error('Multi-volumes zip are not supported'); + }, + readLocalFiles: function () { + for (var t, e = 0; e < this.files.length; e++) + (t = this.files[e]), + this.reader.setIndex(t.localHeaderOffset), + this.checkSignature(o.LOCAL_FILE_HEADER), + t.readLocalPart(this.reader), + t.handleUTF8(), + t.processAttributes(); + }, + readCentralDir: function () { + var t; + for ( + this.reader.setIndex(this.centralDirOffset); + this.reader.readAndCheckSignature(o.CENTRAL_FILE_HEADER); + + ) + (t = new a({ zip64: this.zip64 }, this.loadOptions)).readCentralPart( + this.reader, + ), + this.files.push(t); + if ( + this.centralDirRecords !== this.files.length && + 0 !== this.centralDirRecords && + 0 === this.files.length + ) + throw new Error( + 'Corrupted zip or bug: expected ' + + this.centralDirRecords + + ' records in central dir, got ' + + this.files.length, + ); + }, + readEndOfCentral: function () { + var t = this.reader.lastIndexOfSignature(o.CENTRAL_DIRECTORY_END); + if (t < 0) + throw this.isSignature(0, o.LOCAL_FILE_HEADER) + ? new Error("Corrupted zip: can't find end of central directory") + : new Error( + "Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html", + ); + this.reader.setIndex(t); + var e = t; + if ( + (this.checkSignature(o.CENTRAL_DIRECTORY_END), + this.readBlockEndOfCentral(), + this.diskNumber === i.MAX_VALUE_16BITS || + this.diskWithCentralDirStart === i.MAX_VALUE_16BITS || + this.centralDirRecordsOnThisDisk === i.MAX_VALUE_16BITS || + this.centralDirRecords === i.MAX_VALUE_16BITS || + this.centralDirSize === i.MAX_VALUE_32BITS || + this.centralDirOffset === i.MAX_VALUE_32BITS) + ) { + if ( + ((this.zip64 = !0), + (t = this.reader.lastIndexOfSignature( + o.ZIP64_CENTRAL_DIRECTORY_LOCATOR, + )) < 0) + ) + throw new Error( + "Corrupted zip: can't find the ZIP64 end of central directory locator", + ); + if ( + (this.reader.setIndex(t), + this.checkSignature(o.ZIP64_CENTRAL_DIRECTORY_LOCATOR), + this.readBlockZip64EndOfCentralLocator(), + !this.isSignature( + this.relativeOffsetEndOfZip64CentralDir, + o.ZIP64_CENTRAL_DIRECTORY_END, + ) && + ((this.relativeOffsetEndOfZip64CentralDir = + this.reader.lastIndexOfSignature( + o.ZIP64_CENTRAL_DIRECTORY_END, + )), + this.relativeOffsetEndOfZip64CentralDir < 0)) + ) + throw new Error( + "Corrupted zip: can't find the ZIP64 end of central directory", + ); + this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir), + this.checkSignature(o.ZIP64_CENTRAL_DIRECTORY_END), + this.readBlockZip64EndOfCentral(); + } + (t = this.centralDirOffset + this.centralDirSize), + (t = + e - + (t = this.zip64 ? t + 20 + (12 + this.zip64EndOfCentralSize) : t)); + if (0 < t) + this.isSignature(e, o.CENTRAL_FILE_HEADER) || (this.reader.zero = t); + else if (t < 0) + throw new Error('Corrupted zip: missing ' + Math.abs(t) + ' bytes.'); + }, + prepareReader: function (t) { + this.reader = r(t); + }, + load: function (t) { + this.prepareReader(t), + this.readEndOfCentral(), + this.readCentralDir(), + this.readLocalFiles(); + }, + }), + (e.exports = l); + }, + { + './reader/readerFor': 22, + './signature': 23, + './support': 30, + './utf8': 31, + './utils': 32, + './zipEntry': 34, + }, + ], + 34: [ + function (t, e, n) { + 'use strict'; + var r = t('./reader/readerFor'), + i = t('./utils'), + o = t('./compressedObject'), + a = t('./crc32'), + s = t('./utf8'), + l = t('./compressions'), + u = t('./support'); + function c(t, e) { + (this.options = t), (this.loadOptions = e); + } + (c.prototype = { + isEncrypted: function () { + return 1 == (1 & this.bitFlag); + }, + useUTF8: function () { + return 2048 == (2048 & this.bitFlag); + }, + readLocalPart: function (t) { + var e; + if ( + (t.skip(22), + (this.fileNameLength = t.readInt(2)), + (e = t.readInt(2)), + (this.fileName = t.readData(this.fileNameLength)), + t.skip(e), + -1 === this.compressedSize || -1 === this.uncompressedSize) + ) + throw new Error( + "Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)", + ); + if ( + null === + (e = (function (t) { + for (var e in l) + if (l.hasOwnProperty(e) && l[e].magic === t) return l[e]; + return null; + })(this.compressionMethod)) + ) + throw new Error( + 'Corrupted zip : compression ' + + i.pretty(this.compressionMethod) + + ' unknown (inner file : ' + + i.transformTo('string', this.fileName) + + ')', + ); + this.decompressed = new o( + this.compressedSize, + this.uncompressedSize, + this.crc32, + e, + t.readData(this.compressedSize), + ); + }, + readCentralPart: function (t) { + (this.versionMadeBy = t.readInt(2)), + t.skip(2), + (this.bitFlag = t.readInt(2)), + (this.compressionMethod = t.readString(2)), + (this.date = t.readDate()), + (this.crc32 = t.readInt(4)), + (this.compressedSize = t.readInt(4)), + (this.uncompressedSize = t.readInt(4)); + var e = t.readInt(2); + if ( + ((this.extraFieldsLength = t.readInt(2)), + (this.fileCommentLength = t.readInt(2)), + (this.diskNumberStart = t.readInt(2)), + (this.internalFileAttributes = t.readInt(2)), + (this.externalFileAttributes = t.readInt(4)), + (this.localHeaderOffset = t.readInt(4)), + this.isEncrypted()) + ) + throw new Error('Encrypted zip are not supported'); + t.skip(e), + this.readExtraFields(t), + this.parseZIP64ExtraField(t), + (this.fileComment = t.readData(this.fileCommentLength)); + }, + processAttributes: function () { + (this.unixPermissions = null), (this.dosPermissions = null); + var t = this.versionMadeBy >> 8; + (this.dir = !!(16 & this.externalFileAttributes)), + 0 == t && (this.dosPermissions = 63 & this.externalFileAttributes), + 3 == t && + (this.unixPermissions = + (this.externalFileAttributes >> 16) & 65535), + this.dir || '/' !== this.fileNameStr.slice(-1) || (this.dir = !0); + }, + parseZIP64ExtraField: function (t) { + var e; + this.extraFields[1] && + ((e = r(this.extraFields[1].value)), + this.uncompressedSize === i.MAX_VALUE_32BITS && + (this.uncompressedSize = e.readInt(8)), + this.compressedSize === i.MAX_VALUE_32BITS && + (this.compressedSize = e.readInt(8)), + this.localHeaderOffset === i.MAX_VALUE_32BITS && + (this.localHeaderOffset = e.readInt(8)), + this.diskNumberStart === i.MAX_VALUE_32BITS && + (this.diskNumberStart = e.readInt(4))); + }, + readExtraFields: function (t) { + var e, + n, + r, + i = t.index + this.extraFieldsLength; + for (this.extraFields || (this.extraFields = {}); t.index + 4 < i; ) + (e = t.readInt(2)), + (n = t.readInt(2)), + (r = t.readData(n)), + (this.extraFields[e] = { id: e, length: n, value: r }); + t.setIndex(i); + }, + handleUTF8: function () { + var t, + e = u.uint8array ? 'uint8array' : 'array'; + this.useUTF8() + ? ((this.fileNameStr = s.utf8decode(this.fileName)), + (this.fileCommentStr = s.utf8decode(this.fileComment))) + : (null !== (t = this.findExtraFieldUnicodePath()) + ? (this.fileNameStr = t) + : ((t = i.transformTo(e, this.fileName)), + (this.fileNameStr = this.loadOptions.decodeFileName(t))), + null !== (t = this.findExtraFieldUnicodeComment()) + ? (this.fileCommentStr = t) + : ((t = i.transformTo(e, this.fileComment)), + (this.fileCommentStr = this.loadOptions.decodeFileName(t)))); + }, + findExtraFieldUnicodePath: function () { + var t, + e = this.extraFields[28789]; + return !e || + 1 !== (t = r(e.value)).readInt(1) || + a(this.fileName) !== t.readInt(4) + ? null + : s.utf8decode(t.readData(e.length - 5)); + }, + findExtraFieldUnicodeComment: function () { + var t, + e = this.extraFields[25461]; + return !e || + 1 !== (t = r(e.value)).readInt(1) || + a(this.fileComment) !== t.readInt(4) + ? null + : s.utf8decode(t.readData(e.length - 5)); + }, + }), + (e.exports = c); + }, + { + './compressedObject': 2, + './compressions': 3, + './crc32': 4, + './reader/readerFor': 22, + './support': 30, + './utf8': 31, + './utils': 32, + }, + ], + 35: [ + function (t, e, n) { + 'use strict'; + function r(t, e, n) { + (this.name = t), + (this.dir = n.dir), + (this.date = n.date), + (this.comment = n.comment), + (this.unixPermissions = n.unixPermissions), + (this.dosPermissions = n.dosPermissions), + (this._data = e), + (this._dataBinary = n.binary), + (this.options = { + compression: n.compression, + compressionOptions: n.compressionOptions, + }); + } + var o = t('./stream/StreamHelper'), + i = t('./stream/DataWorker'), + a = t('./utf8'), + s = t('./compressedObject'), + l = t('./stream/GenericWorker'); + r.prototype = { + internalStream: function (t) { + var e = null, + n = 'string'; + try { + if (!t) throw new Error('No output type specified.'); + var r = 'string' === (n = t.toLowerCase()) || 'text' === n, + i = + (('binarystring' !== n && 'text' !== n) || (n = 'string'), + (e = this._decompressWorker()), + !this._dataBinary); + i && !r && (e = e.pipe(new a.Utf8EncodeWorker())), + !i && r && (e = e.pipe(new a.Utf8DecodeWorker())); + } catch (t) { + (e = new l('error')).error(t); + } + return new o(e, n, ''); + }, + async: function (t, e) { + return this.internalStream(t).accumulate(e); + }, + nodeStream: function (t, e) { + return this.internalStream(t || 'nodebuffer').toNodejsStream(e); + }, + _compressWorker: function (t, e) { + if (this._data instanceof s && this._data.compression.magic === t.magic) + return this._data.getCompressedWorker(); + var n = this._decompressWorker(); + return ( + this._dataBinary || (n = n.pipe(new a.Utf8EncodeWorker())), + s.createWorkerFrom(n, t, e) + ); + }, + _decompressWorker: function () { + return this._data instanceof s + ? this._data.getContentWorker() + : this._data instanceof l + ? this._data + : new i(this._data); + }, + }; + for ( + var u = [ + 'asText', + 'asBinary', + 'asNodeBuffer', + 'asUint8Array', + 'asArrayBuffer', + ], + c = function () { + throw new Error( + 'This method has been removed in JSZip 3.0, please check the upgrade guide.', + ); + }, + A = 0; + A < u.length; + A++ + ) + r.prototype[u[A]] = c; + e.exports = r; + }, + { + './compressedObject': 2, + './stream/DataWorker': 27, + './stream/GenericWorker': 28, + './stream/StreamHelper': 29, + './utf8': 31, + }, + ], + 36: [ + function (t, u, e) { + !function (e) { + 'use strict'; + var r, + t, + n, + i, + o = e.MutationObserver || e.WebKitMutationObserver, + a = o + ? ((t = 0), + (o = new o(l)), + (n = e.document.createTextNode('')), + o.observe(n, { characterData: !0 }), + function () { + n.data = t = ++t % 2; + }) + : e.setImmediate || void 0 === e.MessageChannel + ? 'document' in e && + 'onreadystatechange' in e.document.createElement('script') + ? function () { + var t = e.document.createElement('script'); + (t.onreadystatechange = function () { + l(), + (t.onreadystatechange = null), + t.parentNode.removeChild(t), + (t = null); + }), + e.document.documentElement.appendChild(t); + } + : function () { + setTimeout(l, 0); + } + : (((i = new e.MessageChannel()).port1.onmessage = l), + function () { + i.port2.postMessage(0); + }), + s = []; + function l() { + var t, e; + r = !0; + for (var n = s.length; n; ) { + for (e = s, s = [], t = -1; ++t < n; ) e[t](); + n = s.length; + } + r = !1; + } + u.exports = function (t) { + 1 !== s.push(t) || r || a(); + }; + }.call( + this, + void 0 !== r + ? r + : 'undefined' != typeof self + ? self + : 'undefined' != typeof window + ? window + : {}, + ); + }, + {}, + ], + 37: [ + function (t, e, n) { + 'use strict'; + var i = t('immediate'); + function l() {} + var u = {}, + o = ['REJECTED'], + a = ['FULFILLED'], + r = ['PENDING']; + function s(t) { + if ('function' != typeof t) + throw new TypeError('resolver must be a function'); + (this.state = r), + (this.queue = []), + (this.outcome = void 0), + t !== l && p(this, t); + } + function c(t, e, n) { + (this.promise = t), + 'function' == typeof e && + ((this.onFulfilled = e), + (this.callFulfilled = this.otherCallFulfilled)), + 'function' == typeof n && + ((this.onRejected = n), (this.callRejected = this.otherCallRejected)); + } + function A(e, n, r) { + i(function () { + var t; + try { + t = n(r); + } catch (t) { + return u.reject(e, t); + } + t === e + ? u.reject(e, new TypeError('Cannot resolve promise with itself')) + : u.resolve(e, t); + }); + } + function h(t) { + var e = t && t.then; + if ( + t && + ('object' == typeof t || 'function' == typeof t) && + 'function' == typeof e + ) + return function () { + e.apply(t, arguments); + }; + } + function p(e, t) { + var n = !1; + function r(t) { + n || ((n = !0), u.reject(e, t)); + } + function i(t) { + n || ((n = !0), u.resolve(e, t)); + } + var o = d(function () { + t(i, r); + }); + 'error' === o.status && r(o.value); + } + function d(t, e) { + var n = {}; + try { + (n.value = t(e)), (n.status = 'success'); + } catch (t) { + (n.status = 'error'), (n.value = t); + } + return n; + } + ((e.exports = s).prototype.finally = function (e) { + if ('function' != typeof e) return this; + var n = this.constructor; + return this.then( + function (t) { + return n.resolve(e()).then(function () { + return t; + }); + }, + function (t) { + return n.resolve(e()).then(function () { + throw t; + }); + }, + ); + }), + (s.prototype.catch = function (t) { + return this.then(null, t); + }), + (s.prototype.then = function (t, e) { + if ( + ('function' != typeof t && this.state === a) || + ('function' != typeof e && this.state === o) + ) + return this; + var n = new this.constructor(l); + return ( + this.state !== r + ? A(n, this.state === a ? t : e, this.outcome) + : this.queue.push(new c(n, t, e)), + n + ); + }), + (c.prototype.callFulfilled = function (t) { + u.resolve(this.promise, t); + }), + (c.prototype.otherCallFulfilled = function (t) { + A(this.promise, this.onFulfilled, t); + }), + (c.prototype.callRejected = function (t) { + u.reject(this.promise, t); + }), + (c.prototype.otherCallRejected = function (t) { + A(this.promise, this.onRejected, t); + }), + (u.resolve = function (t, e) { + var n = d(h, e); + if ('error' === n.status) return u.reject(t, n.value); + n = n.value; + if (n) p(t, n); + else { + (t.state = a), (t.outcome = e); + for (var r = -1, i = t.queue.length; ++r < i; ) + t.queue[r].callFulfilled(e); + } + return t; + }), + (u.reject = function (t, e) { + (t.state = o), (t.outcome = e); + for (var n = -1, r = t.queue.length; ++n < r; ) + t.queue[n].callRejected(e); + return t; + }), + (s.resolve = function (t) { + return t instanceof this ? t : u.resolve(new this(l), t); + }), + (s.reject = function (t) { + var e = new this(l); + return u.reject(e, t); + }), + (s.all = function (t) { + var n = this; + if ('[object Array]' !== Object.prototype.toString.call(t)) + return this.reject(new TypeError('must be an array')); + var r = t.length, + i = !1; + if (!r) return this.resolve([]); + for (var o = new Array(r), a = 0, e = -1, s = new this(l); ++e < r; ) + !(function (t, e) { + n.resolve(t).then( + function (t) { + (o[e] = t), ++a !== r || i || ((i = !0), u.resolve(s, o)); + }, + function (t) { + i || ((i = !0), u.reject(s, t)); + }, + ); + })(t[e], e); + return s; + }), + (s.race = function (t) { + if ('[object Array]' !== Object.prototype.toString.call(t)) + return this.reject(new TypeError('must be an array')); + var e = t.length, + n = !1; + if (!e) return this.resolve([]); + for (var r, i = -1, o = new this(l); ++i < e; ) + (r = t[i]), + this.resolve(r).then( + function (t) { + n || ((n = !0), u.resolve(o, t)); + }, + function (t) { + n || ((n = !0), u.reject(o, t)); + }, + ); + return o; + }); + }, + { immediate: 36 }, + ], + 38: [ + function (t, e, n) { + 'use strict'; + var r = {}; + (0, t('./lib/utils/common').assign)( + r, + t('./lib/deflate'), + t('./lib/inflate'), + t('./lib/zlib/constants'), + ), + (e.exports = r); + }, + { + './lib/deflate': 39, + './lib/inflate': 40, + './lib/utils/common': 41, + './lib/zlib/constants': 44, + }, + ], + 39: [ + function (t, e, n) { + 'use strict'; + var a = t('./zlib/deflate'), + s = t('./utils/common'), + l = t('./utils/strings'), + r = t('./zlib/messages'), + i = t('./zlib/zstream'), + u = Object.prototype.toString; + function o(t) { + if (!(this instanceof o)) return new o(t); + this.options = s.assign( + { + level: -1, + method: 8, + chunkSize: 16384, + windowBits: 15, + memLevel: 8, + strategy: 0, + to: '', + }, + t || {}, + ); + var t = this.options, + e = + (t.raw && 0 < t.windowBits + ? (t.windowBits = -t.windowBits) + : t.gzip && + 0 < t.windowBits && + t.windowBits < 16 && + (t.windowBits += 16), + (this.err = 0), + (this.msg = ''), + (this.ended = !1), + (this.chunks = []), + (this.strm = new i()), + (this.strm.avail_out = 0), + a.deflateInit2( + this.strm, + t.level, + t.method, + t.windowBits, + t.memLevel, + t.strategy, + )); + if (0 !== e) throw new Error(r[e]); + if ((t.header && a.deflateSetHeader(this.strm, t.header), t.dictionary)) { + t = + 'string' == typeof t.dictionary + ? l.string2buf(t.dictionary) + : '[object ArrayBuffer]' === u.call(t.dictionary) + ? new Uint8Array(t.dictionary) + : t.dictionary; + if (0 !== (e = a.deflateSetDictionary(this.strm, t))) + throw new Error(r[e]); + this._dict_set = !0; + } + } + function c(t, e) { + e = new o(e); + if ((e.push(t, !0), e.err)) throw e.msg || r[e.err]; + return e.result; + } + (o.prototype.push = function (t, e) { + var n, + r, + i = this.strm, + o = this.options.chunkSize; + if (this.ended) return !1; + (r = e === ~~e ? e : !0 === e ? 4 : 0), + 'string' == typeof t + ? (i.input = l.string2buf(t)) + : '[object ArrayBuffer]' === u.call(t) + ? (i.input = new Uint8Array(t)) + : (i.input = t), + (i.next_in = 0), + (i.avail_in = i.input.length); + do { + if ( + (0 === i.avail_out && + ((i.output = new s.Buf8(o)), (i.next_out = 0), (i.avail_out = o)), + 1 !== (n = a.deflate(i, r)) && 0 !== n) + ) + return this.onEnd(n), !(this.ended = !0); + } while ( + ((0 !== i.avail_out && (0 !== i.avail_in || (4 !== r && 2 !== r))) || + ('string' === this.options.to + ? this.onData(l.buf2binstring(s.shrinkBuf(i.output, i.next_out))) + : this.onData(s.shrinkBuf(i.output, i.next_out))), + (0 < i.avail_in || 0 === i.avail_out) && 1 !== n) + ); + return 4 === r + ? ((n = a.deflateEnd(this.strm)), + this.onEnd(n), + (this.ended = !0), + 0 === n) + : 2 !== r || (this.onEnd(0), !(i.avail_out = 0)); + }), + (o.prototype.onData = function (t) { + this.chunks.push(t); + }), + (o.prototype.onEnd = function (t) { + 0 === t && + ('string' === this.options.to + ? (this.result = this.chunks.join('')) + : (this.result = s.flattenChunks(this.chunks))), + (this.chunks = []), + (this.err = t), + (this.msg = this.strm.msg); + }), + (n.Deflate = o), + (n.deflate = c), + (n.deflateRaw = function (t, e) { + return ((e = e || {}).raw = !0), c(t, e); + }), + (n.gzip = function (t, e) { + return ((e = e || {}).gzip = !0), c(t, e); + }); + }, + { + './utils/common': 41, + './utils/strings': 42, + './zlib/deflate': 46, + './zlib/messages': 51, + './zlib/zstream': 53, + }, + ], + 40: [ + function (t, e, n) { + 'use strict'; + var A = t('./zlib/inflate'), + h = t('./utils/common'), + p = t('./utils/strings'), + d = t('./zlib/constants'), + r = t('./zlib/messages'), + i = t('./zlib/zstream'), + o = t('./zlib/gzheader'), + f = Object.prototype.toString; + function a(t) { + if (!(this instanceof a)) return new a(t); + this.options = h.assign( + { chunkSize: 16384, windowBits: 0, to: '' }, + t || {}, + ); + var e = this.options, + t = + (e.raw && + 0 <= e.windowBits && + e.windowBits < 16 && + ((e.windowBits = -e.windowBits), + 0 === e.windowBits && (e.windowBits = -15)), + !(0 <= e.windowBits && e.windowBits < 16) || + (t && t.windowBits) || + (e.windowBits += 32), + 15 < e.windowBits && + e.windowBits < 48 && + 0 == (15 & e.windowBits) && + (e.windowBits |= 15), + (this.err = 0), + (this.msg = ''), + (this.ended = !1), + (this.chunks = []), + (this.strm = new i()), + (this.strm.avail_out = 0), + A.inflateInit2(this.strm, e.windowBits)); + if (t !== d.Z_OK) throw new Error(r[t]); + (this.header = new o()), A.inflateGetHeader(this.strm, this.header); + } + function s(t, e) { + e = new a(e); + if ((e.push(t, !0), e.err)) throw e.msg || r[e.err]; + return e.result; + } + (a.prototype.push = function (t, e) { + var n, + r, + i, + o, + a, + s = this.strm, + l = this.options.chunkSize, + u = this.options.dictionary, + c = !1; + if (this.ended) return !1; + (r = e === ~~e ? e : !0 === e ? d.Z_FINISH : d.Z_NO_FLUSH), + 'string' == typeof t + ? (s.input = p.binstring2buf(t)) + : '[object ArrayBuffer]' === f.call(t) + ? (s.input = new Uint8Array(t)) + : (s.input = t), + (s.next_in = 0), + (s.avail_in = s.input.length); + do { + if ( + (0 === s.avail_out && + ((s.output = new h.Buf8(l)), (s.next_out = 0), (s.avail_out = l)), + (n = A.inflate(s, d.Z_NO_FLUSH)) === d.Z_NEED_DICT && + u && + ((a = + 'string' == typeof u + ? p.string2buf(u) + : '[object ArrayBuffer]' === f.call(u) + ? new Uint8Array(u) + : u), + (n = A.inflateSetDictionary(this.strm, a))), + n === d.Z_BUF_ERROR && !0 === c && ((n = d.Z_OK), (c = !1)), + n !== d.Z_STREAM_END && n !== d.Z_OK) + ) + return this.onEnd(n), !(this.ended = !0); + } while ( + (!s.next_out || + (0 !== s.avail_out && + n !== d.Z_STREAM_END && + (0 !== s.avail_in || (r !== d.Z_FINISH && r !== d.Z_SYNC_FLUSH))) || + ('string' === this.options.to + ? ((a = p.utf8border(s.output, s.next_out)), + (i = s.next_out - a), + (o = p.buf2string(s.output, a)), + (s.next_out = i), + (s.avail_out = l - i), + i && h.arraySet(s.output, s.output, a, i, 0), + this.onData(o)) + : this.onData(h.shrinkBuf(s.output, s.next_out))), + 0 === s.avail_in && 0 === s.avail_out && (c = !0), + (0 < s.avail_in || 0 === s.avail_out) && n !== d.Z_STREAM_END) + ); + return (r = n === d.Z_STREAM_END ? d.Z_FINISH : r) === d.Z_FINISH + ? ((n = A.inflateEnd(this.strm)), + this.onEnd(n), + (this.ended = !0), + n === d.Z_OK) + : r !== d.Z_SYNC_FLUSH || (this.onEnd(d.Z_OK), !(s.avail_out = 0)); + }), + (a.prototype.onData = function (t) { + this.chunks.push(t); + }), + (a.prototype.onEnd = function (t) { + t === d.Z_OK && + ('string' === this.options.to + ? (this.result = this.chunks.join('')) + : (this.result = h.flattenChunks(this.chunks))), + (this.chunks = []), + (this.err = t), + (this.msg = this.strm.msg); + }), + (n.Inflate = a), + (n.inflate = s), + (n.inflateRaw = function (t, e) { + return ((e = e || {}).raw = !0), s(t, e); + }), + (n.ungzip = s); + }, + { + './utils/common': 41, + './utils/strings': 42, + './zlib/constants': 44, + './zlib/gzheader': 47, + './zlib/inflate': 49, + './zlib/messages': 51, + './zlib/zstream': 53, + }, + ], + 41: [ + function (t, e, n) { + 'use strict'; + var r = + 'undefined' != typeof Uint8Array && + 'undefined' != typeof Uint16Array && + 'undefined' != typeof Int32Array, + i = + ((n.assign = function (t) { + for (var e = Array.prototype.slice.call(arguments, 1); e.length; ) { + var n = e.shift(); + if (n) { + if ('object' != typeof n) + throw new TypeError(n + 'must be non-object'); + for (var r in n) n.hasOwnProperty(r) && (t[r] = n[r]); + } + } + return t; + }), + (n.shrinkBuf = function (t, e) { + return t.length === e + ? t + : t.subarray + ? t.subarray(0, e) + : ((t.length = e), t); + }), + { + arraySet: function (t, e, n, r, i) { + if (e.subarray && t.subarray) t.set(e.subarray(n, n + r), i); + else for (var o = 0; o < r; o++) t[i + o] = e[n + o]; + }, + flattenChunks: function (t) { + for (var e, n, r, i, o = (e = 0), a = t.length; o < a; o++) + e += t[o].length; + for (i = new Uint8Array(e), o = n = 0, a = t.length; o < a; o++) + (r = t[o]), i.set(r, n), (n += r.length); + return i; + }, + }), + o = { + arraySet: function (t, e, n, r, i) { + for (var o = 0; o < r; o++) t[i + o] = e[n + o]; + }, + flattenChunks: function (t) { + return [].concat.apply([], t); + }, + }; + (n.setTyped = function (t) { + t + ? ((n.Buf8 = Uint8Array), + (n.Buf16 = Uint16Array), + (n.Buf32 = Int32Array), + n.assign(n, i)) + : ((n.Buf8 = Array), + (n.Buf16 = Array), + (n.Buf32 = Array), + n.assign(n, o)); + }), + n.setTyped(r); + }, + {}, + ], + 42: [ + function (t, e, n) { + 'use strict'; + var l = t('./common'), + i = !0, + o = !0; + try { + String.fromCharCode.apply(null, [0]); + } catch (t) { + i = !1; + } + try { + String.fromCharCode.apply(null, new Uint8Array(1)); + } catch (t) { + o = !1; + } + for (var u = new l.Buf8(256), r = 0; r < 256; r++) + u[r] = + 252 <= r + ? 6 + : 248 <= r + ? 5 + : 240 <= r + ? 4 + : 224 <= r + ? 3 + : 192 <= r + ? 2 + : 1; + function c(t, e) { + if (e < 65537 && ((t.subarray && o) || (!t.subarray && i))) + return String.fromCharCode.apply(null, l.shrinkBuf(t, e)); + for (var n = '', r = 0; r < e; r++) n += String.fromCharCode(t[r]); + return n; + } + (u[254] = u[254] = 1), + (n.string2buf = function (t) { + for (var e, n, r, i, o = t.length, a = 0, s = 0; s < o; s++) + 55296 == (64512 & (n = t.charCodeAt(s))) && + s + 1 < o && + 56320 == (64512 & (r = t.charCodeAt(s + 1))) && + ((n = 65536 + ((n - 55296) << 10) + (r - 56320)), s++), + (a += n < 128 ? 1 : n < 2048 ? 2 : n < 65536 ? 3 : 4); + for (e = new l.Buf8(a), s = i = 0; i < a; s++) + 55296 == (64512 & (n = t.charCodeAt(s))) && + s + 1 < o && + 56320 == (64512 & (r = t.charCodeAt(s + 1))) && + ((n = 65536 + ((n - 55296) << 10) + (r - 56320)), s++), + n < 128 + ? (e[i++] = n) + : (n < 2048 + ? (e[i++] = 192 | (n >>> 6)) + : (n < 65536 + ? (e[i++] = 224 | (n >>> 12)) + : ((e[i++] = 240 | (n >>> 18)), + (e[i++] = 128 | ((n >>> 12) & 63))), + (e[i++] = 128 | ((n >>> 6) & 63))), + (e[i++] = 128 | (63 & n))); + return e; + }), + (n.buf2binstring = function (t) { + return c(t, t.length); + }), + (n.binstring2buf = function (t) { + for (var e = new l.Buf8(t.length), n = 0, r = e.length; n < r; n++) + e[n] = t.charCodeAt(n); + return e; + }), + (n.buf2string = function (t, e) { + for ( + var n, r, i, o = e || t.length, a = new Array(2 * o), s = (n = 0); + s < o; + + ) + if ((r = t[s++]) < 128) a[n++] = r; + else if (4 < (i = u[r])) (a[n++] = 65533), (s += i - 1); + else { + for (r &= 2 === i ? 31 : 3 === i ? 15 : 7; 1 < i && s < o; ) + (r = (r << 6) | (63 & t[s++])), i--; + 1 < i + ? (a[n++] = 65533) + : r < 65536 + ? (a[n++] = r) + : ((r -= 65536), + (a[n++] = 55296 | ((r >> 10) & 1023)), + (a[n++] = 56320 | (1023 & r))); + } + return c(a, n); + }), + (n.utf8border = function (t, e) { + for ( + var n = (e = (e = e || t.length) > t.length ? t.length : e) - 1; + 0 <= n && 128 == (192 & t[n]); + + ) + n--; + return !(n < 0) && 0 !== n && n + u[t[n]] > e ? n : e; + }); + }, + { './common': 41 }, + ], + 43: [ + function (t, e, n) { + 'use strict'; + e.exports = function (t, e, n, r) { + for ( + var i = (65535 & t) | 0, o = ((t >>> 16) & 65535) | 0, a = 0; + 0 !== n; + + ) { + for ( + n -= a = 2e3 < n ? 2e3 : n; + (o = (o + (i = (i + e[r++]) | 0)) | 0), --a; + + ); + (i %= 65521), (o %= 65521); + } + return i | (o << 16) | 0; + }; + }, + {}, + ], + 44: [ + function (t, e, n) { + 'use strict'; + e.exports = { + Z_NO_FLUSH: 0, + Z_PARTIAL_FLUSH: 1, + Z_SYNC_FLUSH: 2, + Z_FULL_FLUSH: 3, + Z_FINISH: 4, + Z_BLOCK: 5, + Z_TREES: 6, + Z_OK: 0, + Z_STREAM_END: 1, + Z_NEED_DICT: 2, + Z_ERRNO: -1, + Z_STREAM_ERROR: -2, + Z_DATA_ERROR: -3, + Z_BUF_ERROR: -5, + Z_NO_COMPRESSION: 0, + Z_BEST_SPEED: 1, + Z_BEST_COMPRESSION: 9, + Z_DEFAULT_COMPRESSION: -1, + Z_FILTERED: 1, + Z_HUFFMAN_ONLY: 2, + Z_RLE: 3, + Z_FIXED: 4, + Z_DEFAULT_STRATEGY: 0, + Z_BINARY: 0, + Z_TEXT: 1, + Z_UNKNOWN: 2, + Z_DEFLATED: 8, + }; + }, + {}, + ], + 45: [ + function (t, e, n) { + 'use strict'; + var s = (function () { + for (var t = [], e = 0; e < 256; e++) { + for (var n = e, r = 0; r < 8; r++) + n = 1 & n ? 3988292384 ^ (n >>> 1) : n >>> 1; + t[e] = n; + } + return t; + })(); + e.exports = function (t, e, n, r) { + var i = s, + o = r + n; + t ^= -1; + for (var a = r; a < o; a++) t = (t >>> 8) ^ i[255 & (t ^ e[a])]; + return -1 ^ t; + }; + }, + {}, + ], + 46: [ + function (t, U, e) { + 'use strict'; + var s, + A = t('../utils/common'), + l = t('./trees'), + h = t('./adler32'), + p = t('./crc32'), + n = t('./messages'), + u = 0, + c = 0, + d = -2, + r = 2, + f = 8, + i = 286, + o = 30, + a = 19, + N = 2 * i + 1, + P = 15, + g = 3, + m = 258, + v = m + g + 1, + b = 42, + y = 113; + function w(t, e) { + return (t.msg = n[e]), e; + } + function E(t) { + return (t << 1) - (4 < t ? 9 : 0); + } + function B(t) { + for (var e = t.length; 0 <= --e; ) t[e] = 0; + } + function C(t) { + var e = t.state, + n = e.pending; + 0 !== (n = n > t.avail_out ? t.avail_out : n) && + (A.arraySet(t.output, e.pending_buf, e.pending_out, n, t.next_out), + (t.next_out += n), + (e.pending_out += n), + (t.total_out += n), + (t.avail_out -= n), + (e.pending -= n), + 0 === e.pending && (e.pending_out = 0)); + } + function x(t, e) { + l._tr_flush_block( + t, + 0 <= t.block_start ? t.block_start : -1, + t.strstart - t.block_start, + e, + ), + (t.block_start = t.strstart), + C(t.strm); + } + function I(t, e) { + t.pending_buf[t.pending++] = e; + } + function M(t, e) { + (t.pending_buf[t.pending++] = (e >>> 8) & 255), + (t.pending_buf[t.pending++] = 255 & e); + } + function D(t, e) { + var n, + r, + i = t.max_chain_length, + o = t.strstart, + a = t.prev_length, + s = t.nice_match, + l = t.strstart > t.w_size - v ? t.strstart - (t.w_size - v) : 0, + u = t.window, + c = t.w_mask, + A = t.prev, + h = t.strstart + m, + p = u[o + a - 1], + d = u[o + a]; + t.prev_length >= t.good_match && (i >>= 2), + s > t.lookahead && (s = t.lookahead); + do { + if ( + u[(n = e) + a] === d && + u[n + a - 1] === p && + u[n] === u[o] && + u[++n] === u[o + 1] + ) { + for ( + o += 2, n++; + u[++o] === u[++n] && + u[++o] === u[++n] && + u[++o] === u[++n] && + u[++o] === u[++n] && + u[++o] === u[++n] && + u[++o] === u[++n] && + u[++o] === u[++n] && + u[++o] === u[++n] && + o < h; + + ); + if (((r = m - (h - o)), (o = h - m), a < r)) { + if (((t.match_start = e), s <= (a = r))) break; + (p = u[o + a - 1]), (d = u[o + a]); + } + } + } while ((e = A[e & c]) > l && 0 != --i); + return a <= t.lookahead ? a : t.lookahead; + } + function S(t) { + var e, + n, + r, + i, + o, + a, + s, + l, + u, + c = t.w_size; + do { + if ( + ((l = t.window_size - t.lookahead - t.strstart), + t.strstart >= c + (c - v)) + ) { + for ( + A.arraySet(t.window, t.window, c, c, 0), + t.match_start -= c, + t.strstart -= c, + t.block_start -= c, + e = n = t.hash_size; + (r = t.head[--e]), (t.head[e] = c <= r ? r - c : 0), --n; + + ); + for ( + e = n = c; + (r = t.prev[--e]), (t.prev[e] = c <= r ? r - c : 0), --n; + + ); + l += c; + } + if (0 === t.strm.avail_in) break; + if ( + ((o = t.strm), + (a = t.window), + (s = t.strstart + t.lookahead), + (u = void 0), + (n = + 0 === (u = (l = l) < (u = o.avail_in) ? l : u) + ? 0 + : ((o.avail_in -= u), + A.arraySet(a, o.input, o.next_in, u, s), + 1 === o.state.wrap + ? (o.adler = h(o.adler, a, u, s)) + : 2 === o.state.wrap && (o.adler = p(o.adler, a, u, s)), + (o.next_in += u), + (o.total_in += u), + u)), + (t.lookahead += n), + t.lookahead + t.insert >= g) + ) + for ( + i = t.strstart - t.insert, + t.ins_h = t.window[i], + t.ins_h = + ((t.ins_h << t.hash_shift) ^ t.window[i + 1]) & t.hash_mask; + t.insert && + ((t.ins_h = + ((t.ins_h << t.hash_shift) ^ t.window[i + g - 1]) & t.hash_mask), + (t.prev[i & t.w_mask] = t.head[t.ins_h]), + (t.head[t.ins_h] = i), + i++, + t.insert--, + !(t.lookahead + t.insert < g)); + + ); + } while (t.lookahead < v && 0 !== t.strm.avail_in); + } + function k(t, e) { + for (var n, r; ; ) { + if (t.lookahead < v) { + if ((S(t), t.lookahead < v && e === u)) return 1; + if (0 === t.lookahead) break; + } + if ( + ((n = 0), + t.lookahead >= g && + ((t.ins_h = + ((t.ins_h << t.hash_shift) ^ t.window[t.strstart + g - 1]) & + t.hash_mask), + (n = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h]), + (t.head[t.ins_h] = t.strstart)), + 0 !== n && + t.strstart - n <= t.w_size - v && + (t.match_length = D(t, n)), + t.match_length >= g) + ) + if ( + ((r = l._tr_tally( + t, + t.strstart - t.match_start, + t.match_length - g, + )), + (t.lookahead -= t.match_length), + t.match_length <= t.max_lazy_match && t.lookahead >= g) + ) { + for ( + t.match_length--; + t.strstart++, + (t.ins_h = + ((t.ins_h << t.hash_shift) ^ t.window[t.strstart + g - 1]) & + t.hash_mask), + (n = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h]), + (t.head[t.ins_h] = t.strstart), + 0 != --t.match_length; + + ); + t.strstart++; + } else + (t.strstart += t.match_length), + (t.match_length = 0), + (t.ins_h = t.window[t.strstart]), + (t.ins_h = + ((t.ins_h << t.hash_shift) ^ t.window[t.strstart + 1]) & + t.hash_mask); + else + (r = l._tr_tally(t, 0, t.window[t.strstart])), + t.lookahead--, + t.strstart++; + if (r && (x(t, !1), 0 === t.strm.avail_out)) return 1; + } + return ( + (t.insert = t.strstart < g - 1 ? t.strstart : g - 1), + 4 === e + ? (x(t, !0), 0 === t.strm.avail_out ? 3 : 4) + : t.last_lit && (x(t, !1), 0 === t.strm.avail_out) + ? 1 + : 2 + ); + } + function F(t, e) { + for (var n, r, i; ; ) { + if (t.lookahead < v) { + if ((S(t), t.lookahead < v && e === u)) return 1; + if (0 === t.lookahead) break; + } + if ( + ((n = 0), + t.lookahead >= g && + ((t.ins_h = + ((t.ins_h << t.hash_shift) ^ t.window[t.strstart + g - 1]) & + t.hash_mask), + (n = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h]), + (t.head[t.ins_h] = t.strstart)), + (t.prev_length = t.match_length), + (t.prev_match = t.match_start), + (t.match_length = g - 1), + 0 !== n && + t.prev_length < t.max_lazy_match && + t.strstart - n <= t.w_size - v && + ((t.match_length = D(t, n)), + t.match_length <= 5 && + (1 === t.strategy || + (t.match_length === g && 4096 < t.strstart - t.match_start)) && + (t.match_length = g - 1)), + t.prev_length >= g && t.match_length <= t.prev_length) + ) { + for ( + i = t.strstart + t.lookahead - g, + r = l._tr_tally( + t, + t.strstart - 1 - t.prev_match, + t.prev_length - g, + ), + t.lookahead -= t.prev_length - 1, + t.prev_length -= 2; + ++t.strstart <= i && + ((t.ins_h = + ((t.ins_h << t.hash_shift) ^ t.window[t.strstart + g - 1]) & + t.hash_mask), + (n = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h]), + (t.head[t.ins_h] = t.strstart)), + 0 != --t.prev_length; + + ); + if ( + ((t.match_available = 0), + (t.match_length = g - 1), + t.strstart++, + r && (x(t, !1), 0 === t.strm.avail_out)) + ) + return 1; + } else if (t.match_available) { + if ( + ((r = l._tr_tally(t, 0, t.window[t.strstart - 1])) && x(t, !1), + t.strstart++, + t.lookahead--, + 0 === t.strm.avail_out) + ) + return 1; + } else (t.match_available = 1), t.strstart++, t.lookahead--; + } + return ( + t.match_available && + ((r = l._tr_tally(t, 0, t.window[t.strstart - 1])), + (t.match_available = 0)), + (t.insert = t.strstart < g - 1 ? t.strstart : g - 1), + 4 === e + ? (x(t, !0), 0 === t.strm.avail_out ? 3 : 4) + : t.last_lit && (x(t, !1), 0 === t.strm.avail_out) + ? 1 + : 2 + ); + } + function Q(t, e, n, r, i) { + (this.good_length = t), + (this.max_lazy = e), + (this.nice_length = n), + (this.max_chain = r), + (this.func = i); + } + function L() { + (this.strm = null), + (this.status = 0), + (this.pending_buf = null), + (this.pending_buf_size = 0), + (this.pending_out = 0), + (this.pending = 0), + (this.wrap = 0), + (this.gzhead = null), + (this.gzindex = 0), + (this.method = f), + (this.last_flush = -1), + (this.w_size = 0), + (this.w_bits = 0), + (this.w_mask = 0), + (this.window = null), + (this.window_size = 0), + (this.prev = null), + (this.head = null), + (this.ins_h = 0), + (this.hash_size = 0), + (this.hash_bits = 0), + (this.hash_mask = 0), + (this.hash_shift = 0), + (this.block_start = 0), + (this.match_length = 0), + (this.prev_match = 0), + (this.match_available = 0), + (this.strstart = 0), + (this.match_start = 0), + (this.lookahead = 0), + (this.prev_length = 0), + (this.max_chain_length = 0), + (this.max_lazy_match = 0), + (this.level = 0), + (this.strategy = 0), + (this.good_match = 0), + (this.nice_match = 0), + (this.dyn_ltree = new A.Buf16(2 * N)), + (this.dyn_dtree = new A.Buf16(2 * (2 * o + 1))), + (this.bl_tree = new A.Buf16(2 * (2 * a + 1))), + B(this.dyn_ltree), + B(this.dyn_dtree), + B(this.bl_tree), + (this.l_desc = null), + (this.d_desc = null), + (this.bl_desc = null), + (this.bl_count = new A.Buf16(P + 1)), + (this.heap = new A.Buf16(2 * i + 1)), + B(this.heap), + (this.heap_len = 0), + (this.heap_max = 0), + (this.depth = new A.Buf16(2 * i + 1)), + B(this.depth), + (this.l_buf = 0), + (this.lit_bufsize = 0), + (this.last_lit = 0), + (this.d_buf = 0), + (this.opt_len = 0), + (this.static_len = 0), + (this.matches = 0), + (this.insert = 0), + (this.bi_buf = 0), + (this.bi_valid = 0); + } + function _(t) { + var e; + return t && t.state + ? ((t.total_in = t.total_out = 0), + (t.data_type = r), + ((e = t.state).pending = 0), + (e.pending_out = 0), + e.wrap < 0 && (e.wrap = -e.wrap), + (e.status = e.wrap ? b : y), + (t.adler = 2 === e.wrap ? 0 : 1), + (e.last_flush = u), + l._tr_init(e), + c) + : w(t, d); + } + function T(t) { + var e = _(t); + return ( + e === c && + (((t = t.state).window_size = 2 * t.w_size), + B(t.head), + (t.max_lazy_match = s[t.level].max_lazy), + (t.good_match = s[t.level].good_length), + (t.nice_match = s[t.level].nice_length), + (t.max_chain_length = s[t.level].max_chain), + (t.strstart = 0), + (t.block_start = 0), + (t.lookahead = 0), + (t.insert = 0), + (t.match_length = t.prev_length = g - 1), + (t.match_available = 0), + (t.ins_h = 0)), + e + ); + } + function R(t, e, n, r, i, o) { + if (!t) return d; + var a = 1; + if ( + (-1 === e && (e = 6), + r < 0 ? ((a = 0), (r = -r)) : 15 < r && ((a = 2), (r -= 16)), + i < 1 || + 9 < i || + n !== f || + r < 8 || + 15 < r || + e < 0 || + 9 < e || + o < 0 || + 4 < o) + ) + return w(t, d); + 8 === r && (r = 9); + var s = new L(); + return ( + ((t.state = s).strm = t), + (s.wrap = a), + (s.gzhead = null), + (s.w_bits = r), + (s.w_size = 1 << s.w_bits), + (s.w_mask = s.w_size - 1), + (s.hash_bits = i + 7), + (s.hash_size = 1 << s.hash_bits), + (s.hash_mask = s.hash_size - 1), + (s.hash_shift = ~~((s.hash_bits + g - 1) / g)), + (s.window = new A.Buf8(2 * s.w_size)), + (s.head = new A.Buf16(s.hash_size)), + (s.prev = new A.Buf16(s.w_size)), + (s.lit_bufsize = 1 << (i + 6)), + (s.pending_buf_size = 4 * s.lit_bufsize), + (s.pending_buf = new A.Buf8(s.pending_buf_size)), + (s.d_buf = +s.lit_bufsize), + (s.l_buf = 3 * s.lit_bufsize), + (s.level = e), + (s.strategy = o), + (s.method = n), + T(t) + ); + } + (s = [ + new Q(0, 0, 0, 0, function (t, e) { + var n = 65535; + for (n > t.pending_buf_size - 5 && (n = t.pending_buf_size - 5); ; ) { + if (t.lookahead <= 1) { + if ((S(t), 0 === t.lookahead && e === u)) return 1; + if (0 === t.lookahead) break; + } + (t.strstart += t.lookahead), (t.lookahead = 0); + var r = t.block_start + n; + if ( + (0 === t.strstart || t.strstart >= r) && + ((t.lookahead = t.strstart - r), + (t.strstart = r), + x(t, !1), + 0 === t.strm.avail_out) + ) + return 1; + if ( + t.strstart - t.block_start >= t.w_size - v && + (x(t, !1), 0 === t.strm.avail_out) + ) + return 1; + } + return ( + (t.insert = 0), + 4 === e + ? (x(t, !0), 0 === t.strm.avail_out ? 3 : 4) + : (t.strstart > t.block_start && (x(t, !1), t.strm.avail_out), 1) + ); + }), + new Q(4, 4, 8, 4, k), + new Q(4, 5, 16, 8, k), + new Q(4, 6, 32, 32, k), + new Q(4, 4, 16, 16, F), + new Q(8, 16, 32, 32, F), + new Q(8, 16, 128, 128, F), + new Q(8, 32, 128, 256, F), + new Q(32, 128, 258, 1024, F), + new Q(32, 258, 258, 4096, F), + ]), + (e.deflateInit = function (t, e) { + return R(t, e, f, 15, 8, 0); + }), + (e.deflateInit2 = R), + (e.deflateReset = T), + (e.deflateResetKeep = _), + (e.deflateSetHeader = function (t, e) { + return !t || !t.state || 2 !== t.state.wrap + ? d + : ((t.state.gzhead = e), c); + }), + (e.deflate = function (t, e) { + var n, r, i, o; + if (!t || !t.state || 5 < e || e < 0) return t ? w(t, d) : d; + if ( + ((r = t.state), + !t.output || + (!t.input && 0 !== t.avail_in) || + (666 === r.status && 4 !== e)) + ) + return w(t, 0 === t.avail_out ? -5 : d); + if ( + ((r.strm = t), + (n = r.last_flush), + (r.last_flush = e), + r.status === b && + (2 === r.wrap + ? ((t.adler = 0), + I(r, 31), + I(r, 139), + I(r, 8), + r.gzhead + ? (I( + r, + (r.gzhead.text ? 1 : 0) + + (r.gzhead.hcrc ? 2 : 0) + + (r.gzhead.extra ? 4 : 0) + + (r.gzhead.name ? 8 : 0) + + (r.gzhead.comment ? 16 : 0), + ), + I(r, 255 & r.gzhead.time), + I(r, (r.gzhead.time >> 8) & 255), + I(r, (r.gzhead.time >> 16) & 255), + I(r, (r.gzhead.time >> 24) & 255), + I( + r, + 9 === r.level + ? 2 + : 2 <= r.strategy || r.level < 2 + ? 4 + : 0, + ), + I(r, 255 & r.gzhead.os), + r.gzhead.extra && + r.gzhead.extra.length && + (I(r, 255 & r.gzhead.extra.length), + I(r, (r.gzhead.extra.length >> 8) & 255)), + r.gzhead.hcrc && + (t.adler = p(t.adler, r.pending_buf, r.pending, 0)), + (r.gzindex = 0), + (r.status = 69)) + : (I(r, 0), + I(r, 0), + I(r, 0), + I(r, 0), + I(r, 0), + I( + r, + 9 === r.level + ? 2 + : 2 <= r.strategy || r.level < 2 + ? 4 + : 0, + ), + I(r, 3), + (r.status = y))) + : ((a = (f + ((r.w_bits - 8) << 4)) << 8), + (a |= + (2 <= r.strategy || r.level < 2 + ? 0 + : r.level < 6 + ? 1 + : 6 === r.level + ? 2 + : 3) << 6), + 0 !== r.strstart && (a |= 32), + (a += 31 - (a % 31)), + (r.status = y), + M(r, a), + 0 !== r.strstart && + (M(r, t.adler >>> 16), M(r, 65535 & t.adler)), + (t.adler = 1))), + 69 === r.status) + ) + if (r.gzhead.extra) { + for ( + i = r.pending; + r.gzindex < (65535 & r.gzhead.extra.length) && + (r.pending !== r.pending_buf_size || + (r.gzhead.hcrc && + r.pending > i && + (t.adler = p(t.adler, r.pending_buf, r.pending - i, i)), + C(t), + (i = r.pending), + r.pending !== r.pending_buf_size)); + + ) + I(r, 255 & r.gzhead.extra[r.gzindex]), r.gzindex++; + r.gzhead.hcrc && + r.pending > i && + (t.adler = p(t.adler, r.pending_buf, r.pending - i, i)), + r.gzindex === r.gzhead.extra.length && + ((r.gzindex = 0), (r.status = 73)); + } else r.status = 73; + if (73 === r.status) + if (r.gzhead.name) { + i = r.pending; + do { + if ( + r.pending === r.pending_buf_size && + (r.gzhead.hcrc && + r.pending > i && + (t.adler = p(t.adler, r.pending_buf, r.pending - i, i)), + C(t), + (i = r.pending), + r.pending === r.pending_buf_size) + ) { + o = 1; + break; + } + } while ( + ((o = + r.gzindex < r.gzhead.name.length + ? 255 & r.gzhead.name.charCodeAt(r.gzindex++) + : 0), + I(r, o), + 0 !== o) + ); + r.gzhead.hcrc && + r.pending > i && + (t.adler = p(t.adler, r.pending_buf, r.pending - i, i)), + 0 === o && ((r.gzindex = 0), (r.status = 91)); + } else r.status = 91; + if (91 === r.status) + if (r.gzhead.comment) { + i = r.pending; + do { + if ( + r.pending === r.pending_buf_size && + (r.gzhead.hcrc && + r.pending > i && + (t.adler = p(t.adler, r.pending_buf, r.pending - i, i)), + C(t), + (i = r.pending), + r.pending === r.pending_buf_size) + ) { + o = 1; + break; + } + } while ( + ((o = + r.gzindex < r.gzhead.comment.length + ? 255 & r.gzhead.comment.charCodeAt(r.gzindex++) + : 0), + I(r, o), + 0 !== o) + ); + r.gzhead.hcrc && + r.pending > i && + (t.adler = p(t.adler, r.pending_buf, r.pending - i, i)), + 0 === o && (r.status = 103); + } else r.status = 103; + if ( + (103 === r.status && + (r.gzhead.hcrc + ? (r.pending + 2 > r.pending_buf_size && C(t), + r.pending + 2 <= r.pending_buf_size && + (I(r, 255 & t.adler), + I(r, (t.adler >> 8) & 255), + (t.adler = 0), + (r.status = y))) + : (r.status = y)), + 0 !== r.pending) + ) { + if ((C(t), 0 === t.avail_out)) return (r.last_flush = -1), c; + } else if (0 === t.avail_in && E(e) <= E(n) && 4 !== e) return w(t, -5); + if (666 === r.status && 0 !== t.avail_in) return w(t, -5); + if ( + 0 !== t.avail_in || + 0 !== r.lookahead || + (e !== u && 666 !== r.status) + ) { + var a = + 2 === r.strategy + ? (function (t, e) { + for (var n; ; ) { + if (0 === t.lookahead && (S(t), 0 === t.lookahead)) { + if (e === u) return 1; + break; + } + if ( + ((t.match_length = 0), + (n = l._tr_tally(t, 0, t.window[t.strstart])), + t.lookahead--, + t.strstart++, + n && (x(t, !1), 0 === t.strm.avail_out)) + ) + return 1; + } + return ( + (t.insert = 0), + 4 === e + ? (x(t, !0), 0 === t.strm.avail_out ? 3 : 4) + : t.last_lit && (x(t, !1), 0 === t.strm.avail_out) + ? 1 + : 2 + ); + })(r, e) + : 3 === r.strategy + ? (function (t, e) { + for (var n, r, i, o, a = t.window; ; ) { + if (t.lookahead <= m) { + if ((S(t), t.lookahead <= m && e === u)) return 1; + if (0 === t.lookahead) break; + } + if ( + ((t.match_length = 0), + t.lookahead >= g && + 0 < t.strstart && + (r = a[(i = t.strstart - 1)]) === a[++i] && + r === a[++i] && + r === a[++i]) + ) { + for ( + o = t.strstart + m; + r === a[++i] && + r === a[++i] && + r === a[++i] && + r === a[++i] && + r === a[++i] && + r === a[++i] && + r === a[++i] && + r === a[++i] && + i < o; + + ); + (t.match_length = m - (o - i)), + t.match_length > t.lookahead && + (t.match_length = t.lookahead); + } + if ( + (t.match_length >= g + ? ((n = l._tr_tally(t, 1, t.match_length - g)), + (t.lookahead -= t.match_length), + (t.strstart += t.match_length), + (t.match_length = 0)) + : ((n = l._tr_tally(t, 0, t.window[t.strstart])), + t.lookahead--, + t.strstart++), + n && (x(t, !1), 0 === t.strm.avail_out)) + ) + return 1; + } + return ( + (t.insert = 0), + 4 === e + ? (x(t, !0), 0 === t.strm.avail_out ? 3 : 4) + : t.last_lit && (x(t, !1), 0 === t.strm.avail_out) + ? 1 + : 2 + ); + })(r, e) + : s[r.level].func(r, e); + if (((3 !== a && 4 !== a) || (r.status = 666), 1 === a || 3 === a)) + return 0 === t.avail_out && (r.last_flush = -1), c; + if ( + 2 === a && + (1 === e + ? l._tr_align(r) + : 5 !== e && + (l._tr_stored_block(r, 0, 0, !1), + 3 === e && + (B(r.head), + 0 === r.lookahead && + ((r.strstart = 0), (r.block_start = 0), (r.insert = 0)))), + C(t), + 0 === t.avail_out) + ) + return (r.last_flush = -1), c; + } + return 4 !== e + ? c + : r.wrap <= 0 + ? 1 + : (2 === r.wrap + ? (I(r, 255 & t.adler), + I(r, (t.adler >> 8) & 255), + I(r, (t.adler >> 16) & 255), + I(r, (t.adler >> 24) & 255), + I(r, 255 & t.total_in), + I(r, (t.total_in >> 8) & 255), + I(r, (t.total_in >> 16) & 255), + I(r, (t.total_in >> 24) & 255)) + : (M(r, t.adler >>> 16), M(r, 65535 & t.adler)), + C(t), + 0 < r.wrap && (r.wrap = -r.wrap), + 0 !== r.pending ? c : 1); + }), + (e.deflateEnd = function (t) { + var e; + return t && t.state + ? (e = t.state.status) !== b && + 69 !== e && + 73 !== e && + 91 !== e && + 103 !== e && + e !== y && + 666 !== e + ? w(t, d) + : ((t.state = null), e === y ? w(t, -3) : c) + : d; + }), + (e.deflateSetDictionary = function (t, e) { + var n, + r, + i, + o, + a, + s, + l, + u = e.length; + if (!t || !t.state) return d; + if ( + 2 === (o = (n = t.state).wrap) || + (1 === o && n.status !== b) || + n.lookahead + ) + return d; + for ( + 1 === o && (t.adler = h(t.adler, e, u, 0)), + n.wrap = 0, + u >= n.w_size && + (0 === o && + (B(n.head), + (n.strstart = 0), + (n.block_start = 0), + (n.insert = 0)), + (l = new A.Buf8(n.w_size)), + A.arraySet(l, e, u - n.w_size, n.w_size, 0), + (e = l), + (u = n.w_size)), + l = t.avail_in, + a = t.next_in, + s = t.input, + t.avail_in = u, + t.next_in = 0, + t.input = e, + S(n); + n.lookahead >= g; + + ) { + for ( + r = n.strstart, i = n.lookahead - (g - 1); + (n.ins_h = + ((n.ins_h << n.hash_shift) ^ n.window[r + g - 1]) & n.hash_mask), + (n.prev[r & n.w_mask] = n.head[n.ins_h]), + (n.head[n.ins_h] = r), + r++, + --i; + + ); + (n.strstart = r), (n.lookahead = g - 1), S(n); + } + return ( + (n.strstart += n.lookahead), + (n.block_start = n.strstart), + (n.insert = n.lookahead), + (n.lookahead = 0), + (n.match_length = n.prev_length = g - 1), + (n.match_available = 0), + (t.next_in = a), + (t.input = s), + (t.avail_in = l), + (n.wrap = o), + c + ); + }), + (e.deflateInfo = 'pako deflate (from Nodeca project)'); + }, + { + '../utils/common': 41, + './adler32': 43, + './crc32': 45, + './messages': 51, + './trees': 52, + }, + ], + 47: [ + function (t, e, n) { + 'use strict'; + e.exports = function () { + (this.text = 0), + (this.time = 0), + (this.xflags = 0), + (this.os = 0), + (this.extra = null), + (this.extra_len = 0), + (this.name = ''), + (this.comment = ''), + (this.hcrc = 0), + (this.done = !1); + }; + }, + {}, + ], + 48: [ + function (t, e, n) { + 'use strict'; + e.exports = function (t, e) { + var n, + r, + i, + o, + a, + s, + l = t.state, + u = t.next_in, + c = t.input, + A = u + (t.avail_in - 5), + h = t.next_out, + p = t.output, + d = h - (e - t.avail_out), + f = h + (t.avail_out - 257), + g = l.dmax, + m = l.wsize, + v = l.whave, + b = l.wnext, + y = l.window, + w = l.hold, + E = l.bits, + B = l.lencode, + C = l.distcode, + x = (1 << l.lenbits) - 1, + I = (1 << l.distbits) - 1; + t: do { + for ( + E < 15 && + ((w += c[u++] << E), (E += 8), (w += c[u++] << E), (E += 8)), + n = B[w & x]; + ; + + ) { + if (((w >>>= r = n >>> 24), (E -= r), 0 == (r = (n >>> 16) & 255))) + p[h++] = 65535 & n; + else { + if (!(16 & r)) { + if (0 == (64 & r)) { + n = B[(65535 & n) + (w & ((1 << r) - 1))]; + continue; + } + if (32 & r) { + l.mode = 12; + break t; + } + (t.msg = 'invalid literal/length code'), (l.mode = 30); + break t; + } + for ( + i = 65535 & n, + (r &= 15) && + (E < r && ((w += c[u++] << E), (E += 8)), + (i += w & ((1 << r) - 1)), + (w >>>= r), + (E -= r)), + E < 15 && + ((w += c[u++] << E), (E += 8), (w += c[u++] << E), (E += 8)), + n = C[w & I]; + ; + + ) { + if ( + ((w >>>= r = n >>> 24), + (E -= r), + !(16 & (r = (n >>> 16) & 255))) + ) { + if (0 == (64 & r)) { + n = C[(65535 & n) + (w & ((1 << r) - 1))]; + continue; + } + (t.msg = 'invalid distance code'), (l.mode = 30); + break t; + } + if ( + ((o = 65535 & n), + E < (r &= 15) && + ((w += c[u++] << E), + (E += 8) < r && ((w += c[u++] << E), (E += 8))), + g < (o += w & ((1 << r) - 1))) + ) { + (t.msg = 'invalid distance too far back'), (l.mode = 30); + break t; + } + if (((w >>>= r), (E -= r), (r = h - d) < o)) { + if (v < (r = o - r) && l.sane) { + (t.msg = 'invalid distance too far back'), (l.mode = 30); + break t; + } + if (((s = y), (a = 0) === b)) { + if (((a += m - r), r < i)) { + for (i -= r; (p[h++] = y[a++]), --r; ); + (a = h - o), (s = p); + } + } else if (b < r) { + if (((a += m + b - r), (r -= b) < i)) { + for (i -= r; (p[h++] = y[a++]), --r; ); + if (((a = 0), b < i)) { + for (i -= r = b; (p[h++] = y[a++]), --r; ); + (a = h - o), (s = p); + } + } + } else if (((a += b - r), r < i)) { + for (i -= r; (p[h++] = y[a++]), --r; ); + (a = h - o), (s = p); + } + for (; 2 < i; ) + (p[h++] = s[a++]), + (p[h++] = s[a++]), + (p[h++] = s[a++]), + (i -= 3); + i && ((p[h++] = s[a++]), 1 < i && (p[h++] = s[a++])); + } else { + for ( + a = h - o; + (p[h++] = p[a++]), + (p[h++] = p[a++]), + (p[h++] = p[a++]), + 2 < (i -= 3); + + ); + i && ((p[h++] = p[a++]), 1 < i && (p[h++] = p[a++])); + } + break; + } + } + break; + } + } while (u < A && h < f); + (u -= i = E >> 3), + (w &= (1 << (E -= i << 3)) - 1), + (t.next_in = u), + (t.next_out = h), + (t.avail_in = u < A ? A - u + 5 : 5 - (u - A)), + (t.avail_out = h < f ? f - h + 257 : 257 - (h - f)), + (l.hold = w), + (l.bits = E); + }; + }, + {}, + ], + 49: [ + function (t, e, n) { + 'use strict'; + var F = t('../utils/common'), + Q = t('./adler32'), + _ = t('./crc32'), + T = t('./inffast'), + R = t('./inftrees'), + U = 0, + N = -2, + P = 1, + r = 852, + i = 592; + function L(t) { + return ( + ((t >>> 24) & 255) + + ((t >>> 8) & 65280) + + ((65280 & t) << 8) + + ((255 & t) << 24) + ); + } + function o() { + (this.mode = 0), + (this.last = !1), + (this.wrap = 0), + (this.havedict = !1), + (this.flags = 0), + (this.dmax = 0), + (this.check = 0), + (this.total = 0), + (this.head = null), + (this.wbits = 0), + (this.wsize = 0), + (this.whave = 0), + (this.wnext = 0), + (this.window = null), + (this.hold = 0), + (this.bits = 0), + (this.length = 0), + (this.offset = 0), + (this.extra = 0), + (this.lencode = null), + (this.distcode = null), + (this.lenbits = 0), + (this.distbits = 0), + (this.ncode = 0), + (this.nlen = 0), + (this.ndist = 0), + (this.have = 0), + (this.next = null), + (this.lens = new F.Buf16(320)), + (this.work = new F.Buf16(288)), + (this.lendyn = null), + (this.distdyn = null), + (this.sane = 0), + (this.back = 0), + (this.was = 0); + } + function a(t) { + var e; + return t && t.state + ? ((e = t.state), + (t.total_in = t.total_out = e.total = 0), + (t.msg = ''), + e.wrap && (t.adler = 1 & e.wrap), + (e.mode = P), + (e.last = 0), + (e.havedict = 0), + (e.dmax = 32768), + (e.head = null), + (e.hold = 0), + (e.bits = 0), + (e.lencode = e.lendyn = new F.Buf32(r)), + (e.distcode = e.distdyn = new F.Buf32(i)), + (e.sane = 1), + (e.back = -1), + U) + : N; + } + function s(t) { + var e; + return t && t.state + ? (((e = t.state).wsize = 0), (e.whave = 0), (e.wnext = 0), a(t)) + : N; + } + function l(t, e) { + var n, r; + return t && t.state + ? ((r = t.state), + e < 0 + ? ((n = 0), (e = -e)) + : ((n = 1 + (e >> 4)), e < 48 && (e &= 15)), + e && (e < 8 || 15 < e) + ? N + : (null !== r.window && r.wbits !== e && (r.window = null), + (r.wrap = n), + (r.wbits = e), + s(t))) + : N; + } + function u(t, e) { + var n; + return t + ? ((n = new o()), + ((t.state = n).window = null), + (n = l(t, e)) !== U && (t.state = null), + n) + : N; + } + var Y, + O, + G = !0; + function z(t, e, n, r) { + var i, + t = t.state; + return ( + null === t.window && + ((t.wsize = 1 << t.wbits), + (t.wnext = 0), + (t.whave = 0), + (t.window = new F.Buf8(t.wsize))), + r >= t.wsize + ? (F.arraySet(t.window, e, n - t.wsize, t.wsize, 0), + (t.wnext = 0), + (t.whave = t.wsize)) + : (r < (i = t.wsize - t.wnext) && (i = r), + F.arraySet(t.window, e, n - r, i, t.wnext), + (r -= i) + ? (F.arraySet(t.window, e, n - r, r, 0), + (t.wnext = r), + (t.whave = t.wsize)) + : ((t.wnext += i), + t.wnext === t.wsize && (t.wnext = 0), + t.whave < t.wsize && (t.whave += i))), + 0 + ); + } + (n.inflateReset = s), + (n.inflateReset2 = l), + (n.inflateResetKeep = a), + (n.inflateInit = function (t) { + return u(t, 15); + }), + (n.inflateInit2 = u), + (n.inflate = function (t, e) { + var n, + r, + i, + o, + a, + s, + l, + u, + c, + A, + h, + p, + d, + f, + g, + m, + v, + b, + y, + w, + E, + B, + C, + x, + I = 0, + M = new F.Buf8(4), + D = [ + 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15, + ]; + if (!t || !t.state || !t.output || (!t.input && 0 !== t.avail_in)) + return N; + 12 === (n = t.state).mode && (n.mode = 13), + (a = t.next_out), + (i = t.output), + (l = t.avail_out), + (o = t.next_in), + (r = t.input), + (s = t.avail_in), + (u = n.hold), + (c = n.bits), + (A = s), + (h = l), + (B = U); + t: for (;;) + switch (n.mode) { + case P: + if (0 === n.wrap) { + n.mode = 13; + break; + } + for (; c < 16; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + if (2 & n.wrap && 35615 === u) { + (M[(n.check = 0)] = 255 & u), + (M[1] = (u >>> 8) & 255), + (n.check = _(n.check, M, 2, 0)), + (c = u = 0), + (n.mode = 2); + break; + } + if ( + ((n.flags = 0), + n.head && (n.head.done = !1), + !(1 & n.wrap) || (((255 & u) << 8) + (u >> 8)) % 31) + ) { + (t.msg = 'incorrect header check'), (n.mode = 30); + break; + } + if (8 != (15 & u)) { + (t.msg = 'unknown compression method'), (n.mode = 30); + break; + } + if (((c -= 4), (E = 8 + (15 & (u >>>= 4))), 0 === n.wbits)) + n.wbits = E; + else if (E > n.wbits) { + (t.msg = 'invalid window size'), (n.mode = 30); + break; + } + (n.dmax = 1 << E), + (t.adler = n.check = 1), + (n.mode = 512 & u ? 10 : 12), + (c = u = 0); + break; + case 2: + for (; c < 16; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + if (((n.flags = u), 8 != (255 & n.flags))) { + (t.msg = 'unknown compression method'), (n.mode = 30); + break; + } + if (57344 & n.flags) { + (t.msg = 'unknown header flags set'), (n.mode = 30); + break; + } + n.head && (n.head.text = (u >> 8) & 1), + 512 & n.flags && + ((M[0] = 255 & u), + (M[1] = (u >>> 8) & 255), + (n.check = _(n.check, M, 2, 0))), + (c = u = 0), + (n.mode = 3); + case 3: + for (; c < 32; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + n.head && (n.head.time = u), + 512 & n.flags && + ((M[0] = 255 & u), + (M[1] = (u >>> 8) & 255), + (M[2] = (u >>> 16) & 255), + (M[3] = (u >>> 24) & 255), + (n.check = _(n.check, M, 4, 0))), + (c = u = 0), + (n.mode = 4); + case 4: + for (; c < 16; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + n.head && ((n.head.xflags = 255 & u), (n.head.os = u >> 8)), + 512 & n.flags && + ((M[0] = 255 & u), + (M[1] = (u >>> 8) & 255), + (n.check = _(n.check, M, 2, 0))), + (c = u = 0), + (n.mode = 5); + case 5: + if (1024 & n.flags) { + for (; c < 16; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + (n.length = u), + n.head && (n.head.extra_len = u), + 512 & n.flags && + ((M[0] = 255 & u), + (M[1] = (u >>> 8) & 255), + (n.check = _(n.check, M, 2, 0))), + (c = u = 0); + } else n.head && (n.head.extra = null); + n.mode = 6; + case 6: + if ( + 1024 & n.flags && + ((p = s < (p = n.length) ? s : p) && + (n.head && + ((E = n.head.extra_len - n.length), + n.head.extra || + (n.head.extra = new Array(n.head.extra_len)), + F.arraySet(n.head.extra, r, o, p, E)), + 512 & n.flags && (n.check = _(n.check, r, p, o)), + (s -= p), + (o += p), + (n.length -= p)), + n.length) + ) + break t; + (n.length = 0), (n.mode = 7); + case 7: + if (2048 & n.flags) { + if (0 === s) break t; + for ( + p = 0; + (E = r[o + p++]), + n.head && + E && + n.length < 65536 && + (n.head.name += String.fromCharCode(E)), + E && p < s; + + ); + if ( + (512 & n.flags && (n.check = _(n.check, r, p, o)), + (s -= p), + (o += p), + E) + ) + break t; + } else n.head && (n.head.name = null); + (n.length = 0), (n.mode = 8); + case 8: + if (4096 & n.flags) { + if (0 === s) break t; + for ( + p = 0; + (E = r[o + p++]), + n.head && + E && + n.length < 65536 && + (n.head.comment += String.fromCharCode(E)), + E && p < s; + + ); + if ( + (512 & n.flags && (n.check = _(n.check, r, p, o)), + (s -= p), + (o += p), + E) + ) + break t; + } else n.head && (n.head.comment = null); + n.mode = 9; + case 9: + if (512 & n.flags) { + for (; c < 16; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + if (u !== (65535 & n.check)) { + (t.msg = 'header crc mismatch'), (n.mode = 30); + break; + } + c = u = 0; + } + n.head && + ((n.head.hcrc = (n.flags >> 9) & 1), (n.head.done = !0)), + (t.adler = n.check = 0), + (n.mode = 12); + break; + case 10: + for (; c < 32; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + (t.adler = n.check = L(u)), (c = u = 0), (n.mode = 11); + case 11: + if (0 === n.havedict) + return ( + (t.next_out = a), + (t.avail_out = l), + (t.next_in = o), + (t.avail_in = s), + (n.hold = u), + (n.bits = c), + 2 + ); + (t.adler = n.check = 1), (n.mode = 12); + case 12: + if (5 === e || 6 === e) break t; + case 13: + if (n.last) { + (u >>>= 7 & c), (c -= 7 & c), (n.mode = 27); + break; + } + for (; c < 3; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + switch (((n.last = 1 & u), --c, 3 & (u >>>= 1))) { + case 0: + n.mode = 14; + break; + case 1: + S = k = void 0; + var S, + k = n; + if (G) { + for ( + Y = new F.Buf32(512), O = new F.Buf32(32), S = 0; + S < 144; + + ) + k.lens[S++] = 8; + for (; S < 256; ) k.lens[S++] = 9; + for (; S < 280; ) k.lens[S++] = 7; + for (; S < 288; ) k.lens[S++] = 8; + for ( + R(1, k.lens, 0, 288, Y, 0, k.work, { bits: 9 }), S = 0; + S < 32; + + ) + k.lens[S++] = 5; + R(2, k.lens, 0, 32, O, 0, k.work, { bits: 5 }), (G = !1); + } + if ( + ((k.lencode = Y), + (k.lenbits = 9), + (k.distcode = O), + (k.distbits = 5), + (n.mode = 20), + 6 !== e) + ) + break; + (u >>>= 2), (c -= 2); + break t; + case 2: + n.mode = 17; + break; + case 3: + (t.msg = 'invalid block type'), (n.mode = 30); + } + (u >>>= 2), (c -= 2); + break; + case 14: + for (u >>>= 7 & c, c -= 7 & c; c < 32; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + if ((65535 & u) != ((u >>> 16) ^ 65535)) { + (t.msg = 'invalid stored block lengths'), (n.mode = 30); + break; + } + if (((n.length = 65535 & u), (c = u = 0), (n.mode = 15), 6 === e)) + break t; + case 15: + n.mode = 16; + case 16: + if ((p = n.length)) { + if (0 === (p = l < (p = s < p ? s : p) ? l : p)) break t; + F.arraySet(i, r, o, p, a), + (s -= p), + (o += p), + (l -= p), + (a += p), + (n.length -= p); + break; + } + n.mode = 12; + break; + case 17: + for (; c < 14; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + if ( + ((n.nlen = 257 + (31 & u)), + (u >>>= 5), + (c -= 5), + (n.ndist = 1 + (31 & u)), + (u >>>= 5), + (c -= 5), + (n.ncode = 4 + (15 & u)), + (u >>>= 4), + (c -= 4), + 286 < n.nlen || 30 < n.ndist) + ) { + (t.msg = 'too many length or distance symbols'), (n.mode = 30); + break; + } + (n.have = 0), (n.mode = 18); + case 18: + for (; n.have < n.ncode; ) { + for (; c < 3; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + (n.lens[D[n.have++]] = 7 & u), (u >>>= 3), (c -= 3); + } + for (; n.have < 19; ) n.lens[D[n.have++]] = 0; + if ( + ((n.lencode = n.lendyn), + (n.lenbits = 7), + (C = { bits: n.lenbits }), + (B = R(0, n.lens, 0, 19, n.lencode, 0, n.work, C)), + (n.lenbits = C.bits), + B) + ) { + (t.msg = 'invalid code lengths set'), (n.mode = 30); + break; + } + (n.have = 0), (n.mode = 19); + case 19: + for (; n.have < n.nlen + n.ndist; ) { + for ( + ; + (m = + ((I = n.lencode[u & ((1 << n.lenbits) - 1)]) >>> 16) & 255), + (v = 65535 & I), + !((g = I >>> 24) <= c); + + ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + if (v < 16) (u >>>= g), (c -= g), (n.lens[n.have++] = v); + else { + if (16 === v) { + for (x = g + 2; c < x; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + if (((u >>>= g), (c -= g), 0 === n.have)) { + (t.msg = 'invalid bit length repeat'), (n.mode = 30); + break; + } + (E = n.lens[n.have - 1]), + (p = 3 + (3 & u)), + (u >>>= 2), + (c -= 2); + } else if (17 === v) { + for (x = g + 3; c < x; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + (E = 0), + (p = 3 + (7 & (u >>>= g))), + (u >>>= 3), + (c = c - g - 3); + } else { + for (x = g + 7; c < x; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + (E = 0), + (p = 11 + (127 & (u >>>= g))), + (u >>>= 7), + (c = c - g - 7); + } + if (n.have + p > n.nlen + n.ndist) { + (t.msg = 'invalid bit length repeat'), (n.mode = 30); + break; + } + for (; p--; ) n.lens[n.have++] = E; + } + } + if (30 === n.mode) break; + if (0 === n.lens[256]) { + (t.msg = 'invalid code -- missing end-of-block'), (n.mode = 30); + break; + } + if ( + ((n.lenbits = 9), + (C = { bits: n.lenbits }), + (B = R(1, n.lens, 0, n.nlen, n.lencode, 0, n.work, C)), + (n.lenbits = C.bits), + B) + ) { + (t.msg = 'invalid literal/lengths set'), (n.mode = 30); + break; + } + if ( + ((n.distbits = 6), + (n.distcode = n.distdyn), + (C = { bits: n.distbits }), + (B = R(2, n.lens, n.nlen, n.ndist, n.distcode, 0, n.work, C)), + (n.distbits = C.bits), + B) + ) { + (t.msg = 'invalid distances set'), (n.mode = 30); + break; + } + if (((n.mode = 20), 6 === e)) break t; + case 20: + n.mode = 21; + case 21: + if (6 <= s && 258 <= l) { + (t.next_out = a), + (t.avail_out = l), + (t.next_in = o), + (t.avail_in = s), + (n.hold = u), + (n.bits = c), + T(t, h), + (a = t.next_out), + (i = t.output), + (l = t.avail_out), + (o = t.next_in), + (r = t.input), + (s = t.avail_in), + (u = n.hold), + (c = n.bits), + 12 === n.mode && (n.back = -1); + break; + } + for ( + n.back = 0; + (m = + ((I = n.lencode[u & ((1 << n.lenbits) - 1)]) >>> 16) & 255), + (v = 65535 & I), + !((g = I >>> 24) <= c); + + ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + if (m && 0 == (240 & m)) { + for ( + b = g, y = m, w = v; + (m = + ((I = n.lencode[w + ((u & ((1 << (b + y)) - 1)) >> b)]) >>> + 16) & + 255), + (v = 65535 & I), + !(b + (g = I >>> 24) <= c); + + ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + (u >>>= b), (c -= b), (n.back += b); + } + if ( + ((u >>>= g), (c -= g), (n.back += g), (n.length = v), 0 === m) + ) { + n.mode = 26; + break; + } + if (32 & m) { + (n.back = -1), (n.mode = 12); + break; + } + if (64 & m) { + (t.msg = 'invalid literal/length code'), (n.mode = 30); + break; + } + (n.extra = 15 & m), (n.mode = 22); + case 22: + if (n.extra) { + for (x = n.extra; c < x; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + (n.length += u & ((1 << n.extra) - 1)), + (u >>>= n.extra), + (c -= n.extra), + (n.back += n.extra); + } + (n.was = n.length), (n.mode = 23); + case 23: + for ( + ; + (m = + ((I = n.distcode[u & ((1 << n.distbits) - 1)]) >>> 16) & 255), + (v = 65535 & I), + !((g = I >>> 24) <= c); + + ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + if (0 == (240 & m)) { + for ( + b = g, y = m, w = v; + (m = + ((I = n.distcode[w + ((u & ((1 << (b + y)) - 1)) >> b)]) >>> + 16) & + 255), + (v = 65535 & I), + !(b + (g = I >>> 24) <= c); + + ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + (u >>>= b), (c -= b), (n.back += b); + } + if (((u >>>= g), (c -= g), (n.back += g), 64 & m)) { + (t.msg = 'invalid distance code'), (n.mode = 30); + break; + } + (n.offset = v), (n.extra = 15 & m), (n.mode = 24); + case 24: + if (n.extra) { + for (x = n.extra; c < x; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + (n.offset += u & ((1 << n.extra) - 1)), + (u >>>= n.extra), + (c -= n.extra), + (n.back += n.extra); + } + if (n.offset > n.dmax) { + (t.msg = 'invalid distance too far back'), (n.mode = 30); + break; + } + n.mode = 25; + case 25: + if (0 === l) break t; + if (n.offset > (p = h - l)) { + if ((p = n.offset - p) > n.whave && n.sane) { + (t.msg = 'invalid distance too far back'), (n.mode = 30); + break; + } + (d = p > n.wnext ? ((p -= n.wnext), n.wsize - p) : n.wnext - p), + p > n.length && (p = n.length), + (f = n.window); + } else (f = i), (d = a - n.offset), (p = n.length); + for ( + l -= p = l < p ? l : p, n.length -= p; + (i[a++] = f[d++]), --p; + + ); + 0 === n.length && (n.mode = 21); + break; + case 26: + if (0 === l) break t; + (i[a++] = n.length), l--, (n.mode = 21); + break; + case 27: + if (n.wrap) { + for (; c < 32; ) { + if (0 === s) break t; + s--, (u |= r[o++] << c), (c += 8); + } + if ( + ((h -= l), + (t.total_out += h), + (n.total += h), + h && + (t.adler = n.check = + (n.flags ? _ : Q)(n.check, i, h, a - h)), + (h = l), + (n.flags ? u : L(u)) !== n.check) + ) { + (t.msg = 'incorrect data check'), (n.mode = 30); + break; + } + c = u = 0; + } + n.mode = 28; + case 28: + if (n.wrap && n.flags) { + for (; c < 32; ) { + if (0 === s) break t; + s--, (u += r[o++] << c), (c += 8); + } + if (u !== (4294967295 & n.total)) { + (t.msg = 'incorrect length check'), (n.mode = 30); + break; + } + c = u = 0; + } + n.mode = 29; + case 29: + B = 1; + break t; + case 30: + B = -3; + break t; + case 31: + return -4; + default: + return N; + } + return ( + (t.next_out = a), + (t.avail_out = l), + (t.next_in = o), + (t.avail_in = s), + (n.hold = u), + (n.bits = c), + (n.wsize || + (h !== t.avail_out && n.mode < 30 && (n.mode < 27 || 4 !== e))) && + z(t, t.output, t.next_out, h - t.avail_out) + ? ((n.mode = 31), -4) + : ((A -= t.avail_in), + (h -= t.avail_out), + (t.total_in += A), + (t.total_out += h), + (n.total += h), + n.wrap && + h && + (t.adler = n.check = + (n.flags ? _ : Q)(n.check, i, h, t.next_out - h)), + (t.data_type = + n.bits + + (n.last ? 64 : 0) + + (12 === n.mode ? 128 : 0) + + (20 === n.mode || 15 === n.mode ? 256 : 0)), + (B = ((0 == A && 0 === h) || 4 === e) && B === U ? -5 : B)) + ); + }), + (n.inflateEnd = function (t) { + if (!t || !t.state) return N; + var e = t.state; + return e.window && (e.window = null), (t.state = null), U; + }), + (n.inflateGetHeader = function (t, e) { + return !t || !t.state || 0 == (2 & (t = t.state).wrap) + ? N + : (((t.head = e).done = !1), U); + }), + (n.inflateSetDictionary = function (t, e) { + var n, + r = e.length; + return !t || !t.state || (0 !== (n = t.state).wrap && 11 !== n.mode) + ? N + : 11 === n.mode && Q(1, e, r, 0) !== n.check + ? -3 + : z(t, e, r, r) + ? ((n.mode = 31), -4) + : ((n.havedict = 1), U); + }), + (n.inflateInfo = 'pako inflate (from Nodeca project)'); + }, + { + '../utils/common': 41, + './adler32': 43, + './crc32': 45, + './inffast': 48, + './inftrees': 50, + }, + ], + 50: [ + function (t, e, n) { + 'use strict'; + var T = t('../utils/common'), + R = [ + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, + 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0, + ], + U = [ + 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, + 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78, + ], + N = [ + 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, + 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, + 0, 0, + ], + P = [ + 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, + 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64, + ]; + e.exports = function (t, e, n, r, i, o, a, s) { + for ( + var l, + u, + c, + A, + h, + p, + d, + f, + g, + m = s.bits, + v = 0, + b = 0, + y = 0, + w = 0, + E = 0, + B = 0, + C = 0, + x = 0, + I = 0, + M = 0, + D = null, + S = 0, + k = new T.Buf16(16), + F = new T.Buf16(16), + Q = null, + _ = 0, + v = 0; + v <= 15; + v++ + ) + k[v] = 0; + for (b = 0; b < r; b++) k[e[n + b]]++; + for (E = m, w = 15; 1 <= w && 0 === k[w]; w--); + if ((w < E && (E = w), 0 === w)) + return (i[o++] = 20971520), (i[o++] = 20971520), (s.bits = 1), 0; + for (y = 1; y < w && 0 === k[y]; y++); + for (E < y && (E = y), v = x = 1; v <= 15; v++) + if ((x = (x << 1) - k[v]) < 0) return -1; + if (0 < x && (0 === t || 1 !== w)) return -1; + for (F[1] = 0, v = 1; v < 15; v++) F[v + 1] = F[v] + k[v]; + for (b = 0; b < r; b++) 0 !== e[n + b] && (a[F[e[n + b]]++] = b); + if ( + ((p = + 0 === t + ? ((D = Q = a), 19) + : 1 === t + ? ((D = R), (S -= 257), (Q = U), (_ -= 257), 256) + : ((D = N), (Q = P), -1)), + (v = y), + (h = o), + (C = b = M = 0), + (c = -1), + (A = (I = 1 << (B = E)) - 1), + (1 === t && 852 < I) || (2 === t && 592 < I)) + ) + return 1; + for (;;) { + for ( + g = + a[b] < p + ? ((f = 0), a[b]) + : a[b] > p + ? ((f = Q[_ + a[b]]), D[S + a[b]]) + : ((f = 96), 0), + l = 1 << (d = v - C), + y = u = 1 << B; + (i[h + (M >> C) + (u -= l)] = (d << 24) | (f << 16) | g | 0), 0 !== u; + + ); + for (l = 1 << (v - 1); M & l; ) l >>= 1; + if ((0 !== l ? (M = (M & (l - 1)) + l) : (M = 0), b++, 0 == --k[v])) { + if (v === w) break; + v = e[n + a[b]]; + } + if (E < v && (M & A) !== c) { + for ( + h += y, x = 1 << (B = v - (C = 0 === C ? E : C)); + B + C < w && !((x -= k[B + C]) <= 0); + + ) + B++, (x <<= 1); + if (((I += 1 << B), (1 === t && 852 < I) || (2 === t && 592 < I))) + return 1; + i[(c = M & A)] = (E << 24) | (B << 16) | (h - o) | 0; + } + } + return ( + 0 !== M && (i[h + M] = ((v - C) << 24) | (64 << 16) | 0), + (s.bits = E), + 0 + ); + }; + }, + { '../utils/common': 41 }, + ], + 51: [ + function (t, e, n) { + 'use strict'; + e.exports = { + 2: 'need dictionary', + 1: 'stream end', + 0: '', + '-1': 'file error', + '-2': 'stream error', + '-3': 'data error', + '-4': 'insufficient memory', + '-5': 'buffer error', + '-6': 'incompatible version', + }; + }, + {}, + ], + 52: [ + function (t, U, e) { + 'use strict'; + var i = t('../utils/common'); + function n(t) { + for (var e = t.length; 0 <= --e; ) t[e] = 0; + } + var r = 16, + l = [ + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, + 5, 5, 5, 5, 0, + ], + u = [ + 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, + 10, 11, 11, 12, 12, 13, 13, + ], + s = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7], + c = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], + A = new Array(576), + h = (n(A), new Array(60)), + p = (n(h), new Array(512)), + d = (n(p), new Array(256)), + f = (n(d), new Array(29)); + n(f); + var g, + m, + v, + b = new Array(30); + function y(t, e, n, r, i) { + (this.static_tree = t), + (this.extra_bits = e), + (this.extra_base = n), + (this.elems = r), + (this.max_length = i), + (this.has_stree = t && t.length); + } + function w(t, e) { + (this.dyn_tree = t), (this.max_code = 0), (this.stat_desc = e); + } + function E(t) { + return t < 256 ? p[t] : p[256 + (t >>> 7)]; + } + function o(t, e) { + (t.pending_buf[t.pending++] = 255 & e), + (t.pending_buf[t.pending++] = (e >>> 8) & 255); + } + function B(t, e, n) { + t.bi_valid > r - n + ? ((t.bi_buf |= (e << t.bi_valid) & 65535), + o(t, t.bi_buf), + (t.bi_buf = e >> (r - t.bi_valid)), + (t.bi_valid += n - r)) + : ((t.bi_buf |= (e << t.bi_valid) & 65535), (t.bi_valid += n)); + } + function C(t, e, n) { + B(t, n[2 * e], n[2 * e + 1]); + } + function x(t, e) { + for (var n = 0; (n |= 1 & t), (t >>>= 1), (n <<= 1), 0 < --e; ); + return n >>> 1; + } + function I(t, e, n) { + for (var r, i = new Array(16), o = 0, a = 1; a <= 15; a++) + i[a] = o = (o + n[a - 1]) << 1; + for (r = 0; r <= e; r++) { + var s = t[2 * r + 1]; + 0 !== s && (t[2 * r] = x(i[s]++, s)); + } + } + function M(t) { + for (var e = 0; e < 286; e++) t.dyn_ltree[2 * e] = 0; + for (e = 0; e < 30; e++) t.dyn_dtree[2 * e] = 0; + for (e = 0; e < 19; e++) t.bl_tree[2 * e] = 0; + (t.dyn_ltree[512] = 1), + (t.opt_len = t.static_len = 0), + (t.last_lit = t.matches = 0); + } + function D(t) { + 8 < t.bi_valid + ? o(t, t.bi_buf) + : 0 < t.bi_valid && (t.pending_buf[t.pending++] = t.bi_buf), + (t.bi_buf = 0), + (t.bi_valid = 0); + } + function a(t, e, n, r) { + var i = 2 * e, + o = 2 * n; + return t[i] < t[o] || (t[i] === t[o] && r[e] <= r[n]); + } + function S(t, e, n) { + for ( + var r = t.heap[n], i = n << 1; + i <= t.heap_len && + (i < t.heap_len && a(e, t.heap[i + 1], t.heap[i], t.depth) && i++, + !a(e, r, t.heap[i], t.depth)); + + ) + (t.heap[n] = t.heap[i]), (n = i), (i <<= 1); + t.heap[n] = r; + } + function k(t, e, n) { + var r, + i, + o, + a, + s = 0; + if (0 !== t.last_lit) + for ( + ; + (r = + (t.pending_buf[t.d_buf + 2 * s] << 8) | + t.pending_buf[t.d_buf + 2 * s + 1]), + (i = t.pending_buf[t.l_buf + s]), + s++, + 0 == r + ? C(t, i, e) + : (C(t, (o = d[i]) + 256 + 1, e), + 0 !== (a = l[o]) && B(t, (i -= f[o]), a), + C(t, (o = E(--r)), n), + 0 !== (a = u[o]) && B(t, (r -= b[o]), a)), + s < t.last_lit; + + ); + C(t, 256, e); + } + function F(t, e) { + var n, + r, + i, + o = e.dyn_tree, + a = e.stat_desc.static_tree, + s = e.stat_desc.has_stree, + l = e.stat_desc.elems, + u = -1; + for (t.heap_len = 0, t.heap_max = 573, n = 0; n < l; n++) + 0 !== o[2 * n] + ? ((t.heap[++t.heap_len] = u = n), (t.depth[n] = 0)) + : (o[2 * n + 1] = 0); + for (; t.heap_len < 2; ) + (o[2 * (i = t.heap[++t.heap_len] = u < 2 ? ++u : 0)] = 1), + (t.depth[i] = 0), + t.opt_len--, + s && (t.static_len -= a[2 * i + 1]); + for (e.max_code = u, n = t.heap_len >> 1; 1 <= n; n--) S(t, o, n); + for ( + i = l; + (n = t.heap[1]), + (t.heap[1] = t.heap[t.heap_len--]), + S(t, o, 1), + (r = t.heap[1]), + (t.heap[--t.heap_max] = n), + (t.heap[--t.heap_max] = r), + (o[2 * i] = o[2 * n] + o[2 * r]), + (t.depth[i] = + (t.depth[n] >= t.depth[r] ? t.depth[n] : t.depth[r]) + 1), + (o[2 * n + 1] = o[2 * r + 1] = i), + (t.heap[1] = i++), + S(t, o, 1), + 2 <= t.heap_len; + + ); + t.heap[--t.heap_max] = t.heap[1]; + for ( + var c, + A, + h, + p, + d, + f = t, + g = e.dyn_tree, + m = e.max_code, + v = e.stat_desc.static_tree, + b = e.stat_desc.has_stree, + y = e.stat_desc.extra_bits, + w = e.stat_desc.extra_base, + E = e.stat_desc.max_length, + B = 0, + C = 0; + C <= 15; + C++ + ) + f.bl_count[C] = 0; + for (g[2 * f.heap[f.heap_max] + 1] = 0, c = f.heap_max + 1; c < 573; c++) + E < (C = g[2 * g[2 * (A = f.heap[c]) + 1] + 1] + 1) && ((C = E), B++), + (g[2 * A + 1] = C), + m < A || + (f.bl_count[C]++, + (p = 0), + w <= A && (p = y[A - w]), + (d = g[2 * A]), + (f.opt_len += d * (C + p)), + b && (f.static_len += d * (v[2 * A + 1] + p))); + if (0 !== B) { + do { + for (C = E - 1; 0 === f.bl_count[C]; ) C--; + } while ( + (f.bl_count[C]--, + (f.bl_count[C + 1] += 2), + f.bl_count[E]--, + 0 < (B -= 2)) + ); + for (C = E; 0 !== C; C--) + for (A = f.bl_count[C]; 0 !== A; ) + m < (h = f.heap[--c]) || + (g[2 * h + 1] !== C && + ((f.opt_len += (C - g[2 * h + 1]) * g[2 * h]), + (g[2 * h + 1] = C)), + A--); + } + I(o, u, t.bl_count); + } + function Q(t, e, n) { + var r, + i, + o = -1, + a = e[1], + s = 0, + l = 7, + u = 4; + for ( + 0 === a && ((l = 138), (u = 3)), e[2 * (n + 1) + 1] = 65535, r = 0; + r <= n; + r++ + ) + (i = a), + (a = e[2 * (r + 1) + 1]), + (++s < l && i === a) || + (s < u + ? (t.bl_tree[2 * i] += s) + : 0 !== i + ? (i !== o && t.bl_tree[2 * i]++, t.bl_tree[32]++) + : s <= 10 + ? t.bl_tree[34]++ + : t.bl_tree[36]++, + (o = i), + (u = + (s = 0) === a + ? ((l = 138), 3) + : i === a + ? ((l = 6), 3) + : ((l = 7), 4))); + } + function _(t, e, n) { + var r, + i, + o = -1, + a = e[1], + s = 0, + l = 7, + u = 4; + for (0 === a && ((l = 138), (u = 3)), r = 0; r <= n; r++) + if (((i = a), (a = e[2 * (r + 1) + 1]), !(++s < l && i === a))) { + if (s < u) for (; C(t, i, t.bl_tree), 0 != --s; ); + else + 0 !== i + ? (i !== o && (C(t, i, t.bl_tree), s--), + C(t, 16, t.bl_tree), + B(t, s - 3, 2)) + : s <= 10 + ? (C(t, 17, t.bl_tree), B(t, s - 3, 3)) + : (C(t, 18, t.bl_tree), B(t, s - 11, 7)); + (o = i), + (u = + (s = 0) === a + ? ((l = 138), 3) + : i === a + ? ((l = 6), 3) + : ((l = 7), 4)); + } + } + n(b); + var T = !1; + function R(t, e, n, r) { + B(t, 0 + (r ? 1 : 0), 3), + (r = e), + (e = n), + D((n = t)), + o(n, e), + o(n, ~e), + i.arraySet(n.pending_buf, n.window, r, e, n.pending), + (n.pending += e); + } + (e._tr_init = function (t) { + if (!T) { + for (var e, n, r, i, o = new Array(16), a = (r = 0); a < 28; a++) + for (f[a] = r, e = 0; e < 1 << l[a]; e++) d[r++] = a; + for (d[r - 1] = a, a = i = 0; a < 16; a++) + for (b[a] = i, e = 0; e < 1 << u[a]; e++) p[i++] = a; + for (i >>= 7; a < 30; a++) + for (b[a] = i << 7, e = 0; e < 1 << (u[a] - 7); e++) p[256 + i++] = a; + for (n = 0; n <= 15; n++) o[n] = 0; + for (e = 0; e <= 143; ) (A[2 * e + 1] = 8), e++, o[8]++; + for (; e <= 255; ) (A[2 * e + 1] = 9), e++, o[9]++; + for (; e <= 279; ) (A[2 * e + 1] = 7), e++, o[7]++; + for (; e <= 287; ) (A[2 * e + 1] = 8), e++, o[8]++; + for (I(A, 287, o), e = 0; e < 30; e++) + (h[2 * e + 1] = 5), (h[2 * e] = x(e, 5)); + (g = new y(A, l, 257, 286, 15)), + (m = new y(h, u, 0, 30, 15)), + (v = new y(new Array(0), s, 0, 19, 7)), + (T = !0); + } + (t.l_desc = new w(t.dyn_ltree, g)), + (t.d_desc = new w(t.dyn_dtree, m)), + (t.bl_desc = new w(t.bl_tree, v)), + (t.bi_buf = 0), + (t.bi_valid = 0), + M(t); + }), + (e._tr_stored_block = R), + (e._tr_flush_block = function (t, e, n, r) { + var i, + o, + a, + s = 0; + if ( + (0 < t.level + ? (2 === t.strm.data_type && + (t.strm.data_type = (function (t) { + for (var e = 4093624447, n = 0; n <= 31; n++, e >>>= 1) + if (1 & e && 0 !== t.dyn_ltree[2 * n]) return 0; + if ( + 0 !== t.dyn_ltree[18] || + 0 !== t.dyn_ltree[20] || + 0 !== t.dyn_ltree[26] + ) + return 1; + for (n = 32; n < 256; n++) + if (0 !== t.dyn_ltree[2 * n]) return 1; + return 0; + })(t)), + F(t, t.l_desc), + F(t, t.d_desc), + (s = (function (t) { + var e; + for ( + Q(t, t.dyn_ltree, t.l_desc.max_code), + Q(t, t.dyn_dtree, t.d_desc.max_code), + F(t, t.bl_desc), + e = 18; + 3 <= e && 0 === t.bl_tree[2 * c[e] + 1]; + e-- + ); + return (t.opt_len += 3 * (e + 1) + 5 + 5 + 4), e; + })(t)), + (i = (t.opt_len + 3 + 7) >>> 3), + (o = (t.static_len + 3 + 7) >>> 3) <= i && (i = o)) + : (i = o = n + 5), + n + 4 <= i && -1 !== e) + ) + R(t, e, n, r); + else if (4 === t.strategy || o === i) + B(t, 2 + (r ? 1 : 0), 3), k(t, A, h); + else { + B(t, 4 + (r ? 1 : 0), 3); + var l = t, + u = + ((e = t.l_desc.max_code + 1), (n = t.d_desc.max_code + 1), s + 1); + for ( + B(l, e - 257, 5), B(l, n - 1, 5), B(l, u - 4, 4), a = 0; + a < u; + a++ + ) + B(l, l.bl_tree[2 * c[a] + 1], 3); + _(l, l.dyn_ltree, e - 1), + _(l, l.dyn_dtree, n - 1), + k(t, t.dyn_ltree, t.dyn_dtree); + } + M(t), r && D(t); + }), + (e._tr_tally = function (t, e, n) { + return ( + (t.pending_buf[t.d_buf + 2 * t.last_lit] = (e >>> 8) & 255), + (t.pending_buf[t.d_buf + 2 * t.last_lit + 1] = 255 & e), + (t.pending_buf[t.l_buf + t.last_lit] = 255 & n), + t.last_lit++, + 0 === e + ? t.dyn_ltree[2 * n]++ + : (t.matches++, + e--, + t.dyn_ltree[2 * (d[n] + 256 + 1)]++, + t.dyn_dtree[2 * E(e)]++), + t.last_lit === t.lit_bufsize - 1 + ); + }), + (e._tr_align = function (t) { + B(t, 2, 3), + C(t, 256, A), + 16 === (t = t).bi_valid + ? (o(t, t.bi_buf), (t.bi_buf = 0), (t.bi_valid = 0)) + : 8 <= t.bi_valid && + ((t.pending_buf[t.pending++] = 255 & t.bi_buf), + (t.bi_buf >>= 8), + (t.bi_valid -= 8)); + }); + }, + { '../utils/common': 41 }, + ], + 53: [ + function (t, e, n) { + 'use strict'; + e.exports = function () { + (this.input = null), + (this.next_in = 0), + (this.avail_in = 0), + (this.total_in = 0), + (this.output = null), + (this.next_out = 0), + (this.avail_out = 0), + (this.total_out = 0), + (this.msg = ''), + (this.state = null), + (this.data_type = 2), + (this.adler = 0); + }; + }, + {}, + ], + 54: [ + function (t, e, n) { + !function (t) { + !(function (n, i) { + 'use strict'; + var r, e, o, a, s, l, u, t, c; + function A(t) { + delete s[t]; + } + function h(t) { + if (l) setTimeout(h, 0, t); + else { + var e = s[t]; + if (e) { + l = !0; + try { + var n = e.callback, + r = e.args; + switch (r.length) { + case 0: + n(); + break; + case 1: + n(r[0]); + break; + case 2: + n(r[0], r[1]); + break; + case 3: + n(r[0], r[1], r[2]); + break; + default: + n.apply(i, r); + } + } finally { + A(t), (l = !1); + } + } + } + } + function p(t) { + t.source === n && + 'string' == typeof t.data && + 0 === t.data.indexOf(o) && + h(+t.data.slice(o.length)); + } + n.setImmediate || + ((a = 1), + (l = !(s = {})), + (u = n.document), + (t = + (t = Object.getPrototypeOf && Object.getPrototypeOf(n)) && + t.setTimeout + ? t + : n), + (c = + '[object process]' === {}.toString.call(n.process) + ? function (t) { + d.nextTick(function () { + h(t); + }); + } + : (function () { + var t, e; + if (n.postMessage && !n.importScripts) + return ( + (t = !0), + (e = n.onmessage), + (n.onmessage = function () { + t = !1; + }), + n.postMessage('', '*'), + (n.onmessage = e), + t + ); + })() + ? ((o = 'setImmediate$' + Math.random() + '$'), + n.addEventListener + ? n.addEventListener('message', p, !1) + : n.attachEvent('onmessage', p), + function (t) { + n.postMessage(o + t, '*'); + }) + : n.MessageChannel + ? (((e = new MessageChannel()).port1.onmessage = function ( + t, + ) { + h(t.data); + }), + function (t) { + e.port2.postMessage(t); + }) + : u && 'onreadystatechange' in u.createElement('script') + ? ((r = u.documentElement), + function (t) { + var e = u.createElement('script'); + (e.onreadystatechange = function () { + h(t), + (e.onreadystatechange = null), + r.removeChild(e), + (e = null); + }), + r.appendChild(e); + }) + : function (t) { + setTimeout(h, 0, t); + }), + (t.setImmediate = function (t) { + 'function' != typeof t && (t = new Function('' + t)); + for ( + var e = new Array(arguments.length - 1), n = 0; + n < e.length; + n++ + ) + e[n] = arguments[n + 1]; + return (s[a] = { callback: t, args: e }), c(a), a++; + }), + (t.clearImmediate = A)); + })('undefined' == typeof self ? (void 0 === t ? this : t) : self); + }.call( + this, + void 0 !== r + ? r + : 'undefined' != typeof self + ? self + : 'undefined' != typeof window + ? window + : {}, + ); + }, + {}, + ], + }, + {}, + [10], + )(10); + }); + }.call(this); + }.call( + this, + u('_process'), + 'undefined' != typeof global + ? global + : 'undefined' != typeof self + ? self + : 'undefined' != typeof window + ? window + : {}, + u('buffer').Buffer, + arguments[3], + arguments[4], + arguments[5], + arguments[6], + u('timers').setImmediate, + ); + }, + { _process: 46, buffer: 26, timers: 68 }, + ], + 42: [ + function (t, Wp, Jp) { + !function (jp, Vp, qp) { + !function () { + function t() { + 'use strict'; + var Q, + _, + T, + R, + U, + N, + L, + Y, + O, + G, + z, + H, + j, + V, + q, + W, + J = + 'undefined' != typeof window && window && window.Promise + ? window.Promise + : void 0 !== Vp && Vp && Vp.Promise + ? Vp.Promise + : ((function (t) { + function u(t) { + return 'function' == typeof t; + } + var n, + e = + Array.isArray || + function (t) { + return '[object Array]' === Object.prototype.toString.call(t); + }, + r = e, + i = 0, + a = function (t, e) { + (A[i] = t), (A[i + 1] = e), 2 === (i += 2) && (n ? n(h) : N()); + }; + var e = ('undefined' != typeof window ? window : void 0) || {}, + e = e.MutationObserver || e.WebKitMutationObserver, + o = + 'undefined' == typeof self && + void 0 !== jp && + '[object process]' === {}.toString.call(jp), + U = + 'undefined' != typeof Uint8ClampedArray && + 'undefined' != typeof importScripts && + 'undefined' != typeof MessageChannel; + var s, + l, + c, + A = new Array(1e3); + function h() { + for (var t = 0; t < i; t += 2) + (0, A[t])(A[t + 1]), (A[t] = void 0), (A[t + 1] = void 0); + i = 0; + } + var N = o + ? function () { + jp.nextTick(h); + } + : e + ? ((l = 0), + (o = new e(h)), + (c = document.createTextNode('')), + o.observe(c, { characterData: !0 }), + function () { + c.data = l = ++l % 2; + }) + : U + ? (((s = new MessageChannel()).port1.onmessage = h), + function () { + s.port2.postMessage(0); + }) + : function () { + setTimeout(h, 1); + }, + p = function (t, e) { + var n, + r = this, + i = new this.constructor(g), + o = (void 0 === i[f] && Q(i), r._state); + return ( + o + ? ((n = arguments[o - 1]), + a(function () { + k(o, i, n, r._result); + })) + : I(r, i, t, e), + i + ); + }; + var d = function (t) { + if (t && 'object' == typeof t && t.constructor === this) return t; + var e = new this(g); + return B(e, t), e; + }, + f = Math.random().toString(36).substring(16); + function g() {} + var m = void 0, + v = 1, + b = 2, + y = new D(); + function w(t) { + try { + return t.then; + } catch (t) { + return (y.error = t), y; + } + } + function P(t, r, i) { + a(function (e) { + var n = !1, + t = (function (t, e, n, r) { + try { + t.call(e, n, r); + } catch (t) { + return t; + } + })( + i, + r, + function (t) { + n || ((n = !0), (r !== t ? B : C)(e, t)); + }, + function (t) { + n || ((n = !0), x(e, t)); + }, + e._label, + ); + !n && t && ((n = !0), x(e, t)); + }, t); + } + function E(t, e, n) { + var r, i; + e.constructor === t.constructor && + n === p && + constructor.resolve === d + ? ((r = t), + (i = e)._state === v + ? C(r, i._result) + : i._state === b + ? x(r, i._result) + : I( + i, + void 0, + function (t) { + B(r, t); + }, + function (t) { + x(r, t); + }, + )) + : n === y + ? x(t, y.error) + : void 0 !== n && u(n) + ? P(t, e, n) + : C(t, e); + } + function B(t, e) { + var n; + t === e + ? x(t, new TypeError('You cannot resolve a promise with itself')) + : 'function' == typeof (n = e) || + ('object' == typeof n && null !== n) + ? E(t, e, w(e)) + : C(t, e); + } + function L(t) { + t._onerror && t._onerror(t._result), M(t); + } + function C(t, e) { + t._state === m && + ((t._result = e), + (t._state = v), + 0 !== t._subscribers.length && a(M, t)); + } + function x(t, e) { + t._state === m && ((t._state = b), (t._result = e), a(L, t)); + } + function I(t, e, n, r) { + var i = t._subscribers, + o = i.length; + (t._onerror = null), + (i[o] = e), + (i[o + v] = n), + (i[o + b] = r), + 0 === o && t._state && a(M, t); + } + function M(t) { + var e = t._subscribers, + n = t._state; + if (0 !== e.length) { + for (var r, i, o = t._result, a = 0; a < e.length; a += 3) + (r = e[a]), (i = e[a + n]), r ? k(n, r, i, o) : i(o); + t._subscribers.length = 0; + } + } + function D() { + this.error = null; + } + var S = new D(); + function k(t, e, n, r) { + var i, + o, + a, + s, + l = u(n); + if (l) { + if ( + ((i = (function (t, e) { + try { + return t(e); + } catch (t) { + return (S.error = t), S; + } + })(n, r)) === S + ? ((s = !0), (o = i.error), (i = null)) + : (a = !0), + e === i) + ) + return void x( + e, + new TypeError( + 'A promises callback cannot return that same promise.', + ), + ); + } else (i = r), (a = !0); + e._state === m && + (l && a + ? B(e, i) + : s + ? x(e, o) + : t === v + ? C(e, i) + : t === b && x(e, i)); + } + var F = 0; + function Q(t) { + (t[f] = F++), + (t._state = void 0), + (t._result = void 0), + (t._subscribers = []); + } + function Y(i) { + var o = this; + return r(i) + ? new o(function (t, e) { + for (var n = i.length, r = 0; r < n; r++) + o.resolve(i[r]).then(t, e); + }) + : new o(function (t, e) { + e(new TypeError('You must pass an array to race.')); + }); + } + function O(t) { + var e = new this(g); + return x(e, t), e; + } + var _ = T; + function T(t) { + if ( + ((this[f] = F++), + (this._result = this._state = void 0), + (this._subscribers = []), + g !== t) + ) { + if ('function' != typeof t) + throw new TypeError( + 'You must pass a resolver function as the first argument to the promise constructor', + ); + if (!(this instanceof T)) + throw new TypeError( + "Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.", + ); + var e = this; + try { + t( + function (t) { + B(e, t); + }, + function (t) { + x(e, t); + }, + ); + } catch (t) { + x(e, t); + } + } + } + (T.all = function (t) { + return new G(this, t).promise; + }), + (T.race = Y), + (T.resolve = d), + (T.reject = O), + (T._setScheduler = function (t) { + n = t; + }), + (T._setAsap = function (t) { + a = t; + }), + (T._asap = a), + (T.prototype = { + constructor: T, + then: p, + catch: function (t) { + return this.then(null, t); + }, + }); + var G = R; + function R(t, e) { + (this._instanceConstructor = t), + (this.promise = new t(g)), + this.promise[f] || Q(this.promise), + Array.isArray(e) + ? ((this._input = e), + (this.length = e.length), + (this._remaining = e.length), + (this._result = new Array(this.length)), + 0 === this.length + ? C(this.promise, this._result) + : ((this.length = this.length || 0), + this._enumerate(), + 0 === this._remaining && C(this.promise, this._result))) + : x( + this.promise, + new Error('Array Methods must be provided an Array'), + ); + } + (R.prototype._enumerate = function () { + for ( + var t = this.length, e = this._input, n = 0; + this._state === m && n < t; + n++ + ) + this._eachEntry(e[n], n); + }), + (R.prototype._eachEntry = function (e, t) { + var n, + r, + i = this._instanceConstructor, + o = i.resolve; + o === d + ? (n = w(e)) === p && e._state !== m + ? this._settledAt(e._state, t, e._result) + : 'function' != typeof n + ? (this._remaining--, (this._result[t] = e)) + : i === _ + ? (E((r = new i(g)), e, n), this._willSettleAt(r, t)) + : this._willSettleAt( + new i(function (t) { + t(e); + }), + t, + ) + : this._willSettleAt(o(e), t); + }), + (R.prototype._settledAt = function (t, e, n) { + var r = this.promise; + r._state === m && + (this._remaining--, t === b ? x(r, n) : (this._result[e] = n)), + 0 === this._remaining && C(r, this._result); + }), + (R.prototype._willSettleAt = function (t, e) { + var n = this; + I( + t, + void 0, + function (t) { + n._settledAt(v, e, t); + }, + function (t) { + n._settledAt(b, e, t); + }, + ); + }); + (e = function () { + var t; + if (void 0 !== Vp) t = Vp; + else if ('undefined' != typeof self) t = self; + else + try { + t = Function('return this')(); + } catch (t) { + throw new Error( + 'polyfill failed because global object is unavailable in this environment', + ); + } + var e = t.Promise; + (e && + '[object Promise]' === + Object.prototype.toString.call(e.resolve()) && + !e.cast) || + (t.Promise = _); + }), + (o = { Promise: _, polyfill: e }); + e(), (t.ES6Promise = o); + })((J = {})), + J.ES6Promise.Promise), + t = {}, + t = + (!function (U, t, f) { + var e = { function: !0, object: !0 }; + function N(t) { + return t && t.Object === Object ? t : null; + } + var n = e[typeof Jp] && Jp && !Jp.nodeType ? Jp : null, + r = e[typeof Wp] && Wp && !Wp.nodeType ? Wp : null, + i = N(n && r && 'object' == typeof Vp && Vp), + o = N(e[typeof self] && self), + a = N(e[typeof window] && window), + r = r && r.exports === n ? n : null, + n = N(e[typeof this] && this), + l = + i || (a !== (n && n.window) && a) || o || n || Function('return this')(), + s = { internals: {}, config: { Promise: t }, helpers: {} }, + u = (s.helpers.noop = function () {}), + c = (s.helpers.identity = function (t) { + return t; + }), + e = (s.helpers.defaultNow = Date.now), + P = (s.helpers.defaultComparer = function (t, e) { + return Dt(t, e); + }), + L = (s.helpers.defaultSubComparer = function (t, e) { + return e < t ? 1 : t < e ? -1 : 0; + }), + Y = + ((s.helpers.defaultKeySerializer = function (t) { + return t.toString(); + }), + (s.helpers.defaultError = function (t) { + throw t; + })), + d = (s.helpers.isPromise = function (t) { + return ( + !!t && 'function' != typeof t.subscribe && 'function' == typeof t.then + ); + }), + g = + (s.helpers.isFunction = + a = + (a = function (t) { + return 'function' == typeof t || !1; + })(/x/) + ? function (t) { + return ( + 'function' == typeof t && + '[object Function]' == toString.call(t) + ); + } + : a); + function A(t) { + for (var e = t.length, n = new Array(e), r = 0; r < e; r++) n[r] = t[r]; + return n; + } + var m = { e: {} }; + var v = (s.internals.tryCatch = function (t) { + if (g(t)) + return ( + (e = t), + function () { + try { + return e.apply(this, arguments); + } catch (t) { + return (m.e = t), m; + } + } + ); + throw new TypeError('fn must be a function'); + var e; + }); + function h(t) { + throw t; + } + var O, + G = (s.config.longStackSupport = !1), + o = v(function () { + throw new Error(); + })(), + G = !!o.e && !!o.e.stack, + z = V(), + H = 'From previous event:'; + function j(t, e) { + if ( + G && + e.stack && + 'object' == typeof t && + null !== t && + t.stack && + -1 === t.stack.indexOf(H) + ) { + for (var n = [], r = e; r; r = r.source) r.stack && n.unshift(r.stack); + n.unshift(t.stack); + e = n.join('\n' + H + '\n'); + t.stack = (function (t) { + for (var e = t.split('\n'), n = [], r = 0, i = e.length; r < i; r++) { + var o = e[r]; + !(function (t) { + t = q(t); + if (!t) return; + var e = t[0], + t = t[1]; + return e === O && z <= t && t <= al; + })(o) && + !(function (t) { + return ( + -1 !== t.indexOf('(module.js:') || -1 !== t.indexOf('(node.js:') + ); + })(o) && + o && + n.push(o); + } + return n.join('\n'); + })(e); + } + } + function V() { + if (G) + try { + throw new Error(); + } catch (t) { + var e = t.stack.split('\n'), + e = q(0 < e[0].indexOf('@') ? e[1] : e[2]); + return e ? ((O = e[0]), e[1]) : void 0; + } + } + function q(t) { + var e = /at .+ \((.+):(\d+):(?:\d+)\)$/.exec(t); + if (e) return [e[1], Number(e[2])]; + e = /at ([^ ]+):(\d+):(?:\d+)$/.exec(t); + if (e) return [e[1], Number(e[2])]; + e = /.*@(.+):(\d+)$/.exec(t); + return e ? [e[1], Number(e[2])] : void 0; + } + var W, + J, + K, + Z, + n = (s.EmptyError = function () { + (this.message = 'Sequence contains no elements.'), Error.call(this); + }), + X = + (((n.prototype = Object.create(Error.prototype)).name = 'EmptyError'), + (s.ObjectDisposedError = function () { + (this.message = 'Object has been disposed'), Error.call(this); + })), + $ = + (((X.prototype = Object.create(Error.prototype)).name = + 'ObjectDisposedError'), + (s.ArgumentOutOfRangeError = function () { + (this.message = 'Argument out of range'), Error.call(this); + })), + tt = + ((($.prototype = Object.create(Error.prototype)).name = + 'ArgumentOutOfRangeError'), + (s.NotSupportedError = function (t) { + (this.message = t || 'This operation is not supported'), + Error.call(this); + })), + et = + (((tt.prototype = Object.create(Error.prototype)).name = + 'NotSupportedError'), + (s.NotImplementedError = function (t) { + (this.message = t || 'This operation is not implemented'), + Error.call(this); + })), + t = + (((et.prototype = Object.create(Error.prototype)).name = + 'NotImplementedError'), + (s.helpers.notImplemented = function () { + throw new et(); + })), + p = + ((s.helpers.notSupported = function () { + throw new tt(); + }), + ('function' == typeof Symbol && Symbol.iterator) || '_es6shim_iterator_'), + nt = + (l.Set && + 'function' == typeof new l.Set()['@@iterator'] && + (p = '@@iterator'), + (s.doneEnumerator = { done: !0, value: f })), + rt = (s.helpers.isIterable = function (t) { + return t && t[p] !== f; + }), + it = (s.helpers.isArrayLike = function (t) { + return t && t.length !== f; + }), + ot = + ((s.helpers.iterator = p), + (s.internals.bindCallback = function (r, i, t) { + if (void 0 === i) return r; + switch (t) { + case 0: + return function () { + return r.call(i); + }; + case 1: + return function (t) { + return r.call(i, t); + }; + case 2: + return function (t, e) { + return r.call(i, t, e); + }; + case 3: + return function (t, e, n) { + return r.call(i, t, e, n); + }; + } + return function () { + return r.apply(i, arguments); + }; + })), + at = '[object Arguments]', + st = '[object Array]', + lt = '[object Boolean]', + ut = '[object Date]', + ct = '[object Error]', + At = '[object Number]', + ht = '[object Object]', + pt = '[object RegExp]', + dt = '[object String]', + b = {}, + a = + ((b['[object Float32Array]'] = + b['[object Float64Array]'] = + b['[object Int8Array]'] = + b['[object Int16Array]'] = + b['[object Int32Array]'] = + b['[object Uint8Array]'] = + b['[object Uint8ClampedArray]'] = + b['[object Uint16Array]'] = + b['[object Uint32Array]'] = + !0), + (b[at] = + b[st] = + b['[object ArrayBuffer]'] = + b[lt] = + b[ut] = + b[ct] = + b['[object Function]'] = + b['[object Map]'] = + b[At] = + b[ht] = + b[pt] = + b['[object Set]'] = + b[dt] = + b['[object WeakMap]'] = + !1), + Object.prototype), + ft = a.hasOwnProperty, + gt = a.toString, + mt = Math.pow(2, 53) - 1, + vt = + Object.keys || + ((W = Object.prototype.hasOwnProperty), + (J = !{ toString: null }.propertyIsEnumerable('toString')), + (Z = (K = [ + 'toString', + 'toLocaleString', + 'valueOf', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'constructor', + ]).length), + function (t) { + if ('object' != typeof t && ('function' != typeof t || null === t)) + throw new TypeError('Object.keys called on non-object'); + var e, + n, + r = []; + for (e in t) W.call(t, e) && r.push(e); + if (J) for (n = 0; n < Z; n++) W.call(t, K[n]) && r.push(K[n]); + return r; + }); + function bt(t, e, n, r, i, o) { + var a = vt(t), + s = a.length; + if (s !== vt(e).length && !r) return !1; + for (var l = s; l--; ) + if (((c = a[l]), !(r ? c in e : ft.call(e, c)))) return !1; + for (var u = r; ++l < s; ) { + var c, + A = t[(c = a[l])], + h = e[c]; + if (void 0 !== f || !n(A, h, r, i, o)) return !1; + u = u || 'constructor' === c; + } + if (!u) { + var p = t.constructor, + d = e.constructor; + if ( + p !== d && + 'constructor' in t && + 'constructor' in e && + !( + 'function' == typeof p && + p instanceof p && + 'function' == typeof d && + d instanceof d + ) + ) + return !1; + } + return !0; + } + var yt = (s.internals.isObject = function (t) { + var e = typeof t; + return !!t && ('object' == e || 'function' == e); + }); + function wt(t) { + return !!t && 'object' == typeof t; + } + function Et(t) { + return 'number' == typeof t && -1 < t && t % 1 == 0 && t <= mt; + } + var Bt = (function () { + try { + Object({ toString: 0 } + ''); + } catch (t) { + return function () { + return !1; + }; + } + return function (t) { + return 'function' != typeof t.toString && 'string' == typeof (t + ''); + }; + })(); + var Ct = + Array.isArray || + function (t) { + return wt(t) && Et(t.length) && gt.call(t) === st; + }; + function xt(t, e, n, r, i, o) { + var a = -1, + s = t.length, + l = e.length; + if (s !== l && !(r && s < l)) return !1; + for (; ++a < s; ) { + var u = t[a], + c = e[a]; + if (void 0 !== f) return !1; + if (r) { + if ( + !(function (t, e) { + for (var n = -1, r = t.length; ++n < r; ) + if (e(t[n], n, t)) return 1; + })(e, function (t) { + return u === t || n(u, t, r, i, o); + }) + ) + return !1; + } else if (u !== c && !n(u, c, r, i, o)) return !1; + } + return !0; + } + function It(t, e, n, r, i, o) { + var a = Ct(t), + s = Ct(e), + l = st, + u = st, + c = + (a || + ((l = gt.call(t)) === at + ? (l = ht) + : l !== ht && (a = wt((c = t)) && Et(c.length) && !!b[gt.call(c)])), + s || ((u = gt.call(e)) === at && (u = ht)), + l === ht && !Bt(t)), + s = u === ht && !Bt(e), + u = l === u; + if (u && !a && !c) { + var A = t, + h = e; + switch (l) { + case lt: + case ut: + return +A == +h; + case ct: + return A.name === h.name && A.message === h.message; + case At: + return A !== +A ? h !== +h : A === +h; + case pt: + case dt: + return A === h + ''; + } + return !1; + } + if (!r) { + (l = c && ft.call(t, '__wrapped__')), + (s = s && ft.call(e, '__wrapped__')); + if (l || s) return n(l ? t.value() : t, s ? e.value() : e, r, i, o); + } + if (!u) return !1; + o = o || []; + for (var p = (i = i || []).length; p--; ) if (i[p] === t) return o[p] === e; + i.push(t), o.push(e); + l = (a ? xt : bt)(t, e, n, r, i, o); + return i.pop(), o.pop(), l; + } + function Mt(t, e, n, r, i) { + return ( + t === e || + (null == t || null == e || (!yt(t) && !wt(e)) + ? t != t && e != e + : It(t, e, Mt, n, r, i)) + ); + } + var Dt = (s.internals.isEqual = function (t, e) { + return Mt(t, e); + }), + o = + (Array.prototype.slice, + (s.internals.inherits = function (t, e) { + function n() { + this.constructor = t; + } + (n.prototype = e.prototype), (t.prototype = new n()); + })), + n = (s.internals.addProperties = function (t) { + for (var e = [], n = 1, r = arguments.length; n < r; n++) + e.push(arguments[n]); + for (var i = 0, o = e.length; i < o; i++) { + var a, + s = e[i]; + for (a in s) t[a] = s[a]; + } + }); + s.internals.addRef = function (e, n) { + return new T(function (t) { + return new C(n.getDisposable(), e.subscribe(t)); + }); + }; + function St(t, e) { + for (var n = new Array(t), r = 0; r < t; r++) n[r] = e(); + return n; + } + var kt = (s.CompositeDisposable = function () { + var t, + e, + n = []; + if (Array.isArray(arguments[0])) n = arguments[0]; + else + for (e = arguments.length, n = new Array(e), t = 0; t < e; t++) + n[t] = arguments[t]; + (this.disposables = n), (this.isDisposed = !1), (this.length = n.length); + }), + a = kt.prototype, + Ft = + ((a.add = function (t) { + this.isDisposed + ? t.dispose() + : (this.disposables.push(t), this.length++); + }), + (a.remove = function (t) { + var e, + n = !1; + return ( + this.isDisposed || + (-1 !== (e = this.disposables.indexOf(t)) && + ((n = !0), + this.disposables.splice(e, 1), + this.length--, + t.dispose())), + n + ); + }), + (a.dispose = function () { + if (!this.isDisposed) { + this.isDisposed = !0; + for ( + var t = this.disposables.length, e = new Array(t), n = 0; + n < t; + n++ + ) + e[n] = this.disposables[n]; + for (this.disposables = [], n = this.length = 0; n < t; n++) + e[n].dispose(); + } + }), + (s.Disposable = function (t) { + (this.isDisposed = !1), (this.action = t || u); + })), + Qt = + ((Ft.prototype.dispose = function () { + this.isDisposed || (this.action(), (this.isDisposed = !0)); + }), + (Ft.create = function (t) { + return new Ft(t); + })), + y = (Ft.empty = { dispose: u }), + _t = (Ft.isDisposable = function (t) { + return t && g(t.dispose); + }), + w = (Ft.checkDisposed = function (t) { + if (t.isDisposed) throw new X(); + }), + Tt = (Ft._fixup = function (t) { + return _t(t) ? t : y; + }), + E = (s.SingleAssignmentDisposable = function () { + (this.isDisposed = !1), (this.current = null); + }), + B = + ((E.prototype.getDisposable = function () { + return this.current; + }), + (E.prototype.setDisposable = function (t) { + if (this.current) + throw new Error('Disposable has already been assigned'); + var e = this.isDisposed; + e || (this.current = t), e && t && t.dispose(); + }), + (E.prototype.dispose = function () { + var t; + this.isDisposed || + ((this.isDisposed = !0), + (t = this.current), + (this.current = null), + t && t.dispose()); + }), + (s.SerialDisposable = function () { + (this.isDisposed = !1), (this.current = null); + })), + C = + ((B.prototype.getDisposable = function () { + return this.current; + }), + (B.prototype.setDisposable = function (t) { + var e, + n = this.isDisposed; + n || ((e = this.current), (this.current = t)), + e && e.dispose(), + n && t && t.dispose(); + }), + (B.prototype.dispose = function () { + var t; + this.isDisposed || + ((this.isDisposed = !0), (t = this.current), (this.current = null)), + t && t.dispose(); + }), + (s.BinaryDisposable = function (t, e) { + (this._first = t), (this._second = e), (this.isDisposed = !1); + })), + x = + ((C.prototype.dispose = function () { + var t; + this.isDisposed || + ((this.isDisposed = !0), + (t = this._first), + (this._first = null), + t && t.dispose(), + (t = this._second), + (this._second = null), + t && t.dispose()); + }), + (s.NAryDisposable = function (t) { + (this._disposables = t), (this.isDisposed = !1); + })); + (x.prototype.dispose = function () { + if (!this.isDisposed) { + this.isDisposed = !0; + for (var t = 0, e = this._disposables.length; t < e; t++) + this._disposables[t].dispose(); + this._disposables.length = 0; + } + }), + (s.RefCountDisposable = + ((Rt.prototype.dispose = function () { + this.disposable.isDisposed || + this.isInnerDisposed || + ((this.isInnerDisposed = !0), + this.disposable.count--, + 0 === this.disposable.count && + this.disposable.isPrimaryDisposed && + ((this.disposable.isDisposed = !0), + this.disposable.underlyingDisposable.dispose())); + }), + (Ut.prototype.dispose = function () { + this.isDisposed || + this.isPrimaryDisposed || + ((this.isPrimaryDisposed = !0), + 0 === this.count && + ((this.isDisposed = !0), this.underlyingDisposable.dispose())); + }), + (Ut.prototype.getDisposable = function () { + return this.isDisposed ? y : new Rt(this); + }), + Ut)); + function Rt(t) { + (this.disposable = t), this.disposable.count++, (this.isInnerDisposed = !1); + } + function Ut(t) { + (this.underlyingDisposable = t), + (this.isDisposed = !1), + (this.isPrimaryDisposed = !1), + (this.count = 0); + } + var Nt = (s.internals.ScheduledItem = function (t, e, n, r, i) { + (this.scheduler = t), + (this.state = e), + (this.action = n), + (this.dueTime = r), + (this.comparer = i || L), + (this.disposable = new E()); + }), + a = + ((Nt.prototype.invoke = function () { + this.disposable.setDisposable(this.invokeCore()); + }), + (Nt.prototype.compareTo = function (t) { + return this.comparer(this.dueTime, t.dueTime); + }), + (Nt.prototype.isCancelled = function () { + return this.disposable.isDisposed; + }), + (Nt.prototype.invokeCore = function () { + return Tt(this.action(this.scheduler, this.state)); + }), + (s.Scheduler = + ((Pt.isScheduler = function (t) { + return t instanceof Pt; + }), + ((a = Pt.prototype).schedule = function (t, e) { + throw new et(); + }), + (a.scheduleFuture = function (t, e, n) { + return ( + e instanceof Date && (e -= this.now()), + 0 === (e = Pt.normalize(e)) + ? this.schedule(t, n) + : this._scheduleFuture(t, e, n) + ); + }), + (a._scheduleFuture = function (t, e, n) { + throw new et(); + }), + (Pt.now = e), + (Pt.prototype.now = e), + (Pt.normalize = function (t) { + return (t = t < 0 ? 0 : t); + }), + Pt))); + function Pt() {} + var Lt = a.normalize, + I = a.isScheduler; + function Yt(a, t) { + var e = t[0], + s = t[1], + l = new kt(); + return ( + s(e, function n(t) { + var r = !1, + i = !1; + var o = a.schedule(t, e); + i || (l.add(o), (r = !0)); + function e(t, e) { + return r ? l.remove(o) : (i = !0), s(e, n), y; + } + }), + l + ); + } + function Ot(s, t) { + var e = t[0], + l = t[1], + u = new kt(); + return ( + l(e, function n(t, e) { + var r = !1, + i = !1; + var o = s.scheduleFuture(t, e, a); + i || (u.add(o), (r = !0)); + function a(t, e) { + return r ? u.remove(o) : (i = !0), l(e, n), y; + } + }), + u + ); + } + ((e = a.prototype).scheduleRecursive = function (t, e) { + return this.schedule([t, e], Yt); + }), + (e.scheduleRecursiveFuture = function (t, e, n) { + return this.scheduleFuture([t, n], e, Ot); + }), + (a.prototype.schedulePeriodic = function (t, e, n) { + if (void 0 === l.setInterval) throw new tt(); + e = Lt(e); + var r = t, + i = l.setInterval(function () { + r = n(r); + }, e); + return Qt(function () { + l.clearInterval(i); + }); + }); + o(zt, (Gt = a)), + (zt.prototype.schedule = function (t, e) { + return Tt(e(this, t)); + }); + var Gt, + e = zt; + function zt() { + Gt.call(this); + } + var Ht, + jt, + M = (a.immediate = new e()), + e = + (o(qt, (Ht = a)), + (qt.prototype.schedule = function (t, e) { + t = new Nt(this, t, e, this.now()); + return ( + jt + ? jt.enqueue(t) + : ((jt = new he(4)).enqueue(t), + (e = v(Vt)()), + (jt = null), + e === m && h(e.e)), + t.disposable + ); + }), + (qt.prototype.scheduleRequired = function () { + return !jt; + }), + qt); + function Vt() { + for (; 0 < jt.length; ) { + var t = jt.dequeue(); + t.isCancelled() || t.invoke(); + } + } + function qt() { + Ht.call(this); + } + var Wt, + Jt, + D = (a.currentThread = new e()); + s.internals.SchedulePeriodicRecursive = + ((Kt.prototype.start = function () { + var n, + t = new E(); + return ( + (this._cancel = t).setDisposable( + this._scheduler.scheduleRecursiveFuture( + 0, + this._period, + ((n = this), + function (t, e) { + e(0, n._period); + e = v(n._action)(n._state); + e === m && (n._cancel.dispose(), h(e.e)), (n._state = e); + }), + ), + ), + t + ); + }), + Kt); + function Kt(t, e, n, r) { + (this._scheduler = t), + (this._state = e), + (this._period = n), + (this._action = r); + } + var Zt, + S, + Xt, + $t, + te, + ee, + e = (function () { + var t, + e = u; + if (l.setTimeout) (t = l.setTimeout), (e = l.clearTimeout); + else { + if (!l.WScript) throw new tt(); + t = function (t, e) { + l.WScript.Sleep(e), t(); + }; + } + return { setTimeout: t, clearTimeout: e }; + })(), + ne = e.setTimeout, + re = e.clearTimeout; + function ie(t) { + var e; + Xt + ? ne(function () { + ie(t); + }, 0) + : (e = S[t]) && + ((Xt = !0), (e = v(e)()), Jt(t), (Xt = !1), e === m && h(e.e)); + } + (Zt = 1), + (Xt = !(S = {})), + (Jt = function (t) { + delete S[t]; + }), + (e = new RegExp( + '^' + + String(toString) + .replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + .replace(/toString| for [^\]]+/g, '.*?') + + '$', + )), + (ee = + 'function' == typeof (ee = i && r && i.setImmediate) && + !e.test(ee) && + ee), + (Wt = g(ee) + ? function (t) { + var e = Zt++; + return ( + (S[e] = t), + ee(function () { + ie(e); + }), + e + ); + } + : void 0 !== jp && '[object process]' === {}.toString.call(jp) + ? function (t) { + var e = Zt++; + return ( + (S[e] = t), + jp.nextTick(function () { + ie(e); + }), + e + ); + } + : (function () { + var t, e; + if (l.postMessage && !l.importScripts) + return ( + (t = !1), + (e = l.onmessage), + (l.onmessage = function () { + t = !0; + }), + l.postMessage('', '*'), + (l.onmessage = e), + t + ); + })() + ? (($t = 'ms.rx.schedule' + Math.random()), + l.addEventListener( + 'message', + function (t) { + 'string' == typeof t.data && + t.data.substring(0, $t.length) === $t && + ie(t.data.substring($t.length)); + }, + !1, + ), + function (t) { + var e = Zt++; + return (S[e] = t), l.postMessage($t + e, '*'), e; + }) + : l.MessageChannel + ? (((te = new l.MessageChannel()).port1.onmessage = function (t) { + ie(t.data); + }), + function (t) { + var e = Zt++; + return (S[e] = t), te.port2.postMessage(e), e; + }) + : 'document' in l && + 'onreadystatechange' in l.document.createElement('script') + ? function (t) { + var e = l.document.createElement('script'), + n = Zt++; + return ( + (S[n] = t), + (e.onreadystatechange = function () { + ie(n), + (e.onreadystatechange = null), + e.parentNode.removeChild(e), + (e = null); + }), + l.document.documentElement.appendChild(e), + n + ); + } + : function (t) { + var e = Zt++; + return ( + (S[e] = t), + ne(function () { + ie(e); + }, 0), + e + ); + }); + o(ae, (oe = a)), + (le.prototype.dispose = function () { + this.isDisposed || ((this.isDisposed = !0), Jt(this._id)); + }), + (ue.prototype.dispose = function () { + this.isDisposed || ((this.isDisposed = !0), re(this._id)); + }), + (ae.prototype.schedule = function (t, e) { + var n = new E(), + e = Wt(se(n, e, this, t)); + return new C(n, new le(e)); + }), + (ae.prototype._scheduleFuture = function (t, e, n) { + if (0 === e) return this.schedule(t, n); + var r = new E(), + n = ne(se(r, n, this, t), e); + return new C(r, new ue(n)); + }), + (ae.prototype.scheduleLongRunning = function (t, e) { + var n, + r, + i, + o = Qt(u); + return ( + Wt( + ((n = t), + (r = e), + (i = o), + function () { + r(n, i); + }), + ), + o + ); + }); + var oe, + r = ae; + function ae() { + oe.call(this); + } + function se(t, e, n, r) { + return function () { + t.setDisposable(Ft._fixup(e(n, r))); + }; + } + function le(t) { + (this._id = t), (this.isDisposed = !1); + } + function ue(t) { + (this._id = t), (this.isDisposed = !1); + } + var ce = (a.default = a.async = new r()); + function Ae(t, e) { + (this.id = t), (this.value = e); + } + Ae.prototype.compareTo = function (t) { + var e = this.value.compareTo(t.value); + return (e = 0 === e ? this.id - t.id : e); + }; + var he = (s.internals.PriorityQueue = function (t) { + (this.items = new Array(t)), (this.length = 0); + }), + i = he.prototype, + pe = + ((i.isHigherPriority = function (t, e) { + return this.items[t].compareTo(this.items[e]) < 0; + }), + (i.percolate = function (t) { + var e, n; + t >= this.length || + t < 0 || + (e = (t - 1) >> 1) < 0 || + e === t || + (this.isHigherPriority(t, e) && + ((n = this.items[t]), + (this.items[t] = this.items[e]), + (this.items[e] = n), + this.percolate(e))); + }), + (i.heapify = function (t) { + var e, n, r; + (t = +t ? t : 0) >= this.length || + t < 0 || + ((e = 2 * t + 2), + (r = 2 * (n = t) + 1) < this.length && + this.isHigherPriority(r, n) && + (n = r), + (n = e < this.length && this.isHigherPriority(e, n) ? e : n) !== t && + ((r = this.items[t]), + (this.items[t] = this.items[n]), + (this.items[n] = r), + this.heapify(n))); + }), + (i.peek = function () { + return this.items[0].value; + }), + (i.removeAt = function (t) { + (this.items[t] = this.items[--this.length]), + (this.items[this.length] = f), + this.heapify(); + }), + (i.dequeue = function () { + var t = this.peek(); + return this.removeAt(0), t; + }), + (i.enqueue = function (t) { + var e = this.length++; + (this.items[e] = new Ae(he.count++, t)), this.percolate(e); + }), + (i.remove = function (t) { + for (var e = 0; e < this.length; e++) + if (this.items[e].value === t) return this.removeAt(e), !0; + return !1; + }), + (he.count = 0), + (s.Notification = + ((de.prototype._accept = function (t, e, n) { + throw new et(); + }), + (de.prototype._acceptObserver = function (t, e, n) { + throw new et(); + }), + (de.prototype.accept = function (t, e, n) { + return t && 'object' == typeof t + ? this._acceptObserver(t) + : this._accept(t, e, n); + }), + (de.prototype.toObservable = function (t) { + var e = this; + return ( + I(t) || (t = M), + new T(function (n) { + return t.schedule(e, function (t, e) { + e._acceptObserver(n), 'N' === e.kind && n.onCompleted(); + }); + }) + ); + }), + de))); + function de() {} + o(ge, pe), + (ge.prototype._accept = function (t) { + return t(this.value); + }), + (ge.prototype._acceptObserver = function (t) { + return t.onNext(this.value); + }), + (ge.prototype.toString = function () { + return 'OnNext(' + this.value + ')'; + }); + var fe = ge; + function ge(t) { + (this.value = t), (this.kind = 'N'); + } + o(ve, pe), + (ve.prototype._accept = function (t, e) { + return e(this.error); + }), + (ve.prototype._acceptObserver = function (t) { + return t.onError(this.error); + }), + (ve.prototype.toString = function () { + return 'OnError(' + this.error + ')'; + }); + var me = ve; + function ve(t) { + (this.error = t), (this.kind = 'E'); + } + o(ye, pe), + (ye.prototype._accept = function (t, e, n) { + return n(); + }), + (ye.prototype._acceptObserver = function (t) { + return t.onCompleted(); + }), + (ye.prototype.toString = function () { + return 'OnCompleted()'; + }); + var be = ye; + function ye() { + this.kind = 'C'; + } + var we = (pe.createOnNext = function (t) { + return new fe(t); + }), + Ee = (pe.createOnError = function (t) { + return new me(t); + }), + Be = (pe.createOnCompleted = function () { + return new be(); + }), + e = (s.Observer = function () {}), + Ce = (e.create = function (t, e, n) { + return new Ie((t = t || u), (e = e || Y), (n = n || u)); + }), + k = (s.internals.AbstractObserver = + (o(F, e), + (F.prototype.next = t), + (F.prototype.error = t), + (F.prototype.completed = t), + (F.prototype.onNext = function (t) { + this.isStopped || this.next(t); + }), + (F.prototype.onError = function (t) { + this.isStopped || ((this.isStopped = !0), this.error(t)); + }), + (F.prototype.onCompleted = function () { + this.isStopped || ((this.isStopped = !0), this.completed()); + }), + (F.prototype.dispose = function () { + this.isStopped = !0; + }), + (F.prototype.fail = function (t) { + return !this.isStopped && ((this.isStopped = !0), this.error(t), !0); + }), + F)); + function F() { + this.isStopped = !1; + } + var xe, + Ie = (s.AnonymousObserver = + (o(Me, (xe = k)), + (Me.prototype.next = function (t) { + this._onNext(t); + }), + (Me.prototype.error = function (t) { + this._onError(t); + }), + (Me.prototype.completed = function () { + this._onCompleted(); + }), + Me)); + function Me(t, e, n) { + xe.call(this), + (this._onNext = t), + (this._onError = e), + (this._onCompleted = n); + } + var Q = (s.Observable = + ((a = De.prototype), + (De.isObservable = function (t) { + return t && g(t.subscribe); + }), + (a.subscribe = a.forEach = + function (t, e, n) { + return this._subscribe('object' == typeof t ? t : Ce(t, e, n)); + }), + (a.subscribeOnNext = function (e, n) { + return this._subscribe( + Ce( + void 0 !== n + ? function (t) { + e.call(n, t); + } + : e, + ), + ); + }), + (a.subscribeOnError = function (e, n) { + return this._subscribe( + Ce( + null, + void 0 !== n + ? function (t) { + e.call(n, t); + } + : e, + ), + ); + }), + (a.subscribeOnCompleted = function (t, e) { + return this._subscribe( + Ce( + null, + null, + void 0 !== e + ? function () { + t.call(e); + } + : t, + ), + ); + }), + De)); + function De() { + var t, e, r, i; + s.config.longStackSupport && + G && + ((t = this._subscribe), + (e = v(h)(new Error()).e), + (this.stack = e.stack.substring(e.stack.indexOf('\n') + 1)), + (this._subscribe = + ((r = this), + (i = t), + function (e) { + var n = e.onError; + return ( + (e.onError = function (t) { + j(t, r), n.call(e, t); + }), + i.call(r, e) + ); + }))); + } + var Se, + ke = (s.internals.ScheduledObserver = + (o(Fe, (Se = k)), + (Fe.prototype.next = function (t) { + var e, n; + this.queue.push( + ((e = this.observer), + (n = t), + function () { + e.onNext(n); + }), + ); + }), + (Fe.prototype.error = function (t) { + var e, n; + this.queue.push( + ((e = this.observer), + (n = t), + function () { + e.onError(n); + }), + ); + }), + (Fe.prototype.completed = function () { + var t; + this.queue.push( + ((t = this.observer), + function () { + t.onCompleted(); + }), + ); + }), + (Fe.prototype.ensureActive = function () { + var t = !1; + !this.hasFaulted && + 0 < this.queue.length && + ((t = !this.isAcquired), (this.isAcquired = !0)), + t && + this.disposable.setDisposable( + this.scheduler.scheduleRecursive(this, Qe), + ); + }), + (Fe.prototype.dispose = function () { + Se.prototype.dispose.call(this), this.disposable.dispose(); + }), + Fe)); + function Fe(t, e) { + Se.call(this), + (this.scheduler = t), + (this.observer = e), + (this.isAcquired = !1), + (this.hasFaulted = !1), + (this.queue = []), + (this.disposable = new B()); + } + function Qe(t, e) { + if (0 < t.queue.length) { + var n = t.queue.shift(), + n = v(n)(); + if (n === m) return (t.queue = []), (t.hasFaulted = !0), h(n.e); + e(t); + } else t.isAcquired = !1; + } + var _e, + r = (s.ObservableBase = + (o(Re, (_e = Q)), + (Re.prototype._subscribe = function (t) { + var t = new Ys(t), + e = [t, this]; + return D.scheduleRequired() ? D.schedule(e, Te) : Te(0, e), t; + }), + (Re.prototype.subscribeCore = t), + Re)); + function Te(t, e) { + var n = e[0], + e = e[1], + e = v(e.subscribeCore).call(e, n); + e !== m || n.fail(m.e) || h(m.e), + n.setDisposable((n = e) && g(n.dispose) ? n : g(n) ? Qt(n) : y); + } + function Re() { + _e.call(this); + } + var Ue, + Ne = (s.FlatMapObservable = + (o(Pe, (Ue = r)), + (Pe.prototype.subscribeCore = function (t) { + return this.source.subscribe( + new Le(t, this.selector, this.resultSelector, this), + ); + }), + o(Le, k), + (Le.prototype._wrapResult = function (t, n, r) { + return this.resultSelector + ? t.map(function (t, e) { + return this.resultSelector(n, t, r, e); + }, this) + : t; + }), + (Le.prototype.next = function (t) { + var e = this.i++, + n = v(this.selector)(t, e, this.source); + if (n === m) return this.o.onError(n.e); + d(n) && (n = _(n)), + (it(n) || rt(n)) && (n = Q.from(n)), + this.o.onNext(this._wrapResult(n, t, e)); + }), + (Le.prototype.error = function (t) { + this.o.onError(t); + }), + (Le.prototype.completed = function () { + this.o.onCompleted(); + }), + Pe)); + function Pe(t, e, n, r) { + (this.resultSelector = g(n) ? n : null), + (this.selector = ot( + g(e) + ? e + : function () { + return e; + }, + r, + 3, + )), + (this.source = t), + Ue.call(this); + } + function Le(t, e, n, r) { + (this.i = 0), + (this.selector = e), + (this.resultSelector = n), + (this.source = r), + (this.o = t), + k.call(this); + } + i = s.internals.Enumerable = function () {}; + function Ye(t) { + (this._s = t), (this.isDisposed = !1); + } + Ye.prototype.dispose = function () { + this.isDisposed || ((this.isDisposed = !0), (this._s.isDisposed = !0)); + }; + o(ze, (Oe = r)), + (ze.prototype.subscribeCore = function (t) { + var e = new B(), + t = { isDisposed: !1, o: t, subscription: e, e: this.sources[p]() }, + n = D.scheduleRecursive(t, He); + return new x([e, n, new Ye(t)]); + }), + o(je, k), + (je.prototype.next = function (t) { + this._state.o.onNext(t); + }), + (je.prototype.error = function (t) { + this._state.o.onError(t); + }), + (je.prototype.completed = function () { + this._recurse(this._state); + }); + var Oe, + Ge = ze; + function ze(t) { + (this.sources = t), Oe.call(this); + } + function He(t, e) { + if (!t.isDisposed) { + var n = v(t.e.next).call(t.e); + if (n === m) return t.o.onError(n.e); + if (n.done) return t.o.onCompleted(); + var n = n.value, + r = (d(n) && (n = _(n)), new E()); + t.subscription.setDisposable(r), + r.setDisposable(n.subscribe(new je(t, e))); + } + } + function je(t, e) { + (this._state = t), (this._recurse = e), k.call(this); + } + i.prototype.concat = function () { + return new Ge(this); + }; + o(We, (Ve = r)), + (We.prototype.subscribeCore = function (t) { + var e = new B(), + t = { + isDisposed: !1, + e: this.sources[p](), + subscription: e, + lastError: null, + o: t, + }, + n = D.scheduleRecursive(t, Je); + return new x([e, n, new Ye(t)]); + }), + o(Ke, k), + (Ke.prototype.next = function (t) { + this._state.o.onNext(t); + }), + (Ke.prototype.error = function (t) { + (this._state.lastError = t), this._recurse(this._state); + }), + (Ke.prototype.completed = function () { + this._state.o.onCompleted(); + }); + var Ve, + qe = We; + function We(t) { + (this.sources = t), Ve.call(this); + } + function Je(t, e) { + if (!t.isDisposed) { + var n = v(t.e.next).call(t.e); + if (n === m) return t.o.onError(n.e); + if (n.done) + return null !== t.lastError + ? t.o.onError(t.lastError) + : t.o.onCompleted(); + var n = n.value, + r = (d(n) && (n = _(n)), new E()); + t.subscription.setDisposable(r), + r.setDisposable(n.subscribe(new Ke(t, e))); + } + } + function Ke(t, e) { + (this._state = t), (this._recurse = e), k.call(this); + } + i.prototype.catchError = function () { + return new qe(this); + }; + o(Xe, i), + (Xe.prototype[p] = function () { + return new $e(this); + }), + ($e.prototype.next = function () { + return 0 === this.l + ? nt + : (0 < this.l && this.l--, { done: !1, value: this.v }); + }); + var Ze = Xe; + function Xe(t, e) { + (this.v = t), (this.c = null == e ? -1 : e); + } + function $e(t) { + (this.v = t.v), (this.l = t.c); + } + var tn = (i.repeat = function (t, e) { + return new Ze(t, e); + }), + en = + (o(nn, i), + (nn.prototype[p] = function () { + return new rn(this); + }), + (rn.prototype.next = function () { + return ++this.i < this.l + ? { + done: !1, + value: this.fn + ? this.fn(this.s[this.i], this.i, this.s) + : this.s[this.i], + } + : nt; + }), + nn); + function nn(t, e, n) { + (this.s = t), (this.fn = e ? ot(e, n, 3) : null); + } + function rn(t) { + (this.i = -1), (this.s = t.s), (this.l = this.s.length), (this.fn = t.fn); + } + var on, + an = (i.of = function (t, e, n) { + return new en(t, e, n); + }), + sn = + (o(ln, (on = r)), + (ln.prototype.subscribeCore = function (t) { + return this.source.subscribe(new un(t)); + }), + o(un, k), + (un.prototype.next = function (t) { + this.a.push(t); + }), + (un.prototype.error = function (t) { + this.o.onError(t); + }), + (un.prototype.completed = function () { + this.o.onNext(this.a), this.o.onCompleted(); + }), + ln); + function ln(t) { + (this.source = t), on.call(this); + } + function un(t) { + (this.o = t), (this.a = []), k.call(this); + } + (a.toArray = function () { + return new sn(this); + }), + (Q.create = function (t, e) { + return new T(t, e); + }); + o(hn, (cn = r)), + (hn.prototype.subscribeCore = function (t) { + var e = v(this._f)(); + return (e === m ? ir(e.e) : (e = d(e) ? _(e) : e)).subscribe(t); + }); + var cn, + An = hn; + function hn(t) { + (this._f = t), cn.call(this); + } + var pn, + dn = (Q.defer = function (t) { + return new An(t); + }), + fn = + (o(gn, (pn = r)), + (gn.prototype.subscribeCore = function (t) { + return new mn(t, this.scheduler).run(); + }), + (mn.prototype.run = function () { + var t = this.observer; + return this.scheduler === M ? vn(0, t) : this.scheduler.schedule(t, vn); + }), + gn); + function gn(t) { + (this.scheduler = t), pn.call(this); + } + function mn(t, e) { + (this.observer = t), (this.scheduler = e); + } + function vn(t, e) { + return e.onCompleted(), y; + } + var bn, + yn = new fn(M), + wn = (Q.empty = function (t) { + return (t = I(t) ? t : M) === M ? yn : new fn(t); + }), + En = + (o(Bn, (bn = r)), + (Bn.prototype.subscribeCore = function (t) { + var r, + i, + o, + e = (function (t) { + var e = t[p]; + if (!e && 'string' == typeof t) return new xn(t)[p](); + if (!e && t.length !== f) return new Mn(t)[p](); + if (e) return t[p](); + throw new TypeError('Object is not iterable'); + })(Object(this._iterable)); + return this._scheduler.scheduleRecursive( + 0, + ((r = t), + (i = e), + (o = this._fn), + function (t, e) { + var n = v(i.next).call(i); + return n === m + ? r.onError(n.e) + : n.done + ? r.onCompleted() + : ((n = n.value), + g(o) && (n = v(o)(n, t)) === m + ? r.onError(n.e) + : (r.onNext(n), void e(t + 1))); + }), + ); + }), + Bn); + function Bn(t, e, n) { + (this._iterable = t), (this._fn = e), (this._scheduler = n), bn.call(this); + } + var Cn = Math.pow(2, 53) - 1; + function xn(t) { + this._s = t; + } + function In(t) { + (this._s = t), (this._l = t.length), (this._i = 0); + } + function Mn(t) { + this._a = t; + } + function Dn(t) { + (this._a = t), + (this._l = (function (t) { + t = +t.length; + if (isNaN(t)) return 0; + if ( + 0 !== t && + (function (t) { + return 'number' == typeof t && l.isFinite(t); + })(t) + ) { + if ( + (t = + (function (t) { + t = +t; + if (0 == t) return t; + if (isNaN(t)) return t; + return t < 0 ? -1 : 1; + })(t) * Math.floor(Math.abs(t))) <= 0 + ) + return 0; + if (Cn < t) return Cn; + } + return t; + })(t)), + (this._i = 0); + } + (xn.prototype[p] = function () { + return new In(this._s); + }), + (In.prototype[p] = function () { + return this; + }), + (In.prototype.next = function () { + return this._i < this._l + ? { done: !1, value: this._s.charAt(this._i++) } + : nt; + }), + (Mn.prototype[p] = function () { + return new Dn(this._a); + }), + (Dn.prototype[p] = function () { + return this; + }), + (Dn.prototype.next = function () { + return this._i < this._l ? { done: !1, value: this._a[this._i++] } : nt; + }); + var Sn, + kn = (Q.from = function (t, e, n, r) { + if (null == t) throw new Error('iterable cannot be null.'); + if (e && !g(e)) throw new Error('mapFn when provided must be a function'); + var i; + return e && (i = ot(e, n, 2)), I(r) || (r = D), new En(t, i, r); + }), + Fn = + (o(Qn, (Sn = r)), + (Qn.prototype.subscribeCore = function (t) { + return this._scheduler.scheduleRecursive( + 0, + ((n = t), + (r = this._args), + (i = r.length), + function (t, e) { + t < i ? (n.onNext(r[t]), e(t + 1)) : n.onCompleted(); + }), + ); + var n, r, i; + }), + Qn); + function Qn(t, e) { + (this._args = t), (this._scheduler = e), Sn.call(this); + } + var _n, + Tn = (Q.fromArray = function (t, e) { + return I(e) || (e = D), new Fn(t, e); + }); + function Rn() { + _n.call(this); + } + o(Rn, (_n = r)), + (Rn.prototype.subscribeCore = function (t) { + return y; + }); + var Un = new Rn(), + Nn = (Q.never = function () { + return Un; + }); + function Pn(t, e) { + return I(t) || (t = D), new Fn(e, t); + } + (Q.of = function () { + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + return new Fn(e, D); + }), + (Q.ofWithScheduler = function (t) { + for (var e = arguments.length, n = new Array(e - 1), r = 1; r < e; r++) + n[r - 1] = arguments[r]; + return new Fn(n, t); + }); + o(On, (Ln = r)), + (On.prototype.subscribeCore = function (t) { + return this._scheduler.scheduleRecursive( + 0, + ((r = t), + (i = this._o), + (o = this._keys), + function (t, e) { + var n; + t < o.length + ? ((n = o[t]), r.onNext([n, i[n]]), e(t + 1)) + : r.onCompleted(); + }), + ); + var r, i, o; + }); + var Ln, + Yn = On; + function On(t, e) { + (this._o = t), + (this._keys = Object.keys(t)), + (this._scheduler = e), + Ln.call(this); + } + Q.pairs = function (t, e) { + return new Yn(t, (e = e || D)); + }; + o(Hn, (Gn = r)), + (Hn.prototype.subscribeCore = function (t) { + return this.scheduler.scheduleRecursive( + 0, + ((n = this.start), + (r = this.rangeCount), + (i = t), + function (t, e) { + t < r ? (i.onNext(n + t), e(t + 1)) : i.onCompleted(); + }), + ); + var n, r, i; + }); + var Gn, + zn = Hn; + function Hn(t, e, n) { + (this.start = t), + (this.rangeCount = e), + (this.scheduler = n), + Gn.call(this); + } + Q.range = function (t, e, n) { + return I(n) || (n = D), new zn(t, e, n); + }; + o(qn, (jn = r)), + (qn.prototype.subscribeCore = function (t) { + return new Wn(t, this).run(); + }); + var jn, + Vn = qn; + function qn(t, e, n) { + (this.value = t), + (this.repeatCount = null == e ? -1 : e), + (this.scheduler = n), + jn.call(this); + } + function Wn(t, e) { + (this.observer = t), (this.parent = e); + } + (Wn.prototype.run = function () { + var n = this.observer, + r = this.parent.value; + return this.parent.scheduler.scheduleRecursive( + this.parent.repeatCount, + function (t, e) { + if (((-1 === t || 0 < t) && (n.onNext(r), 0 < t && t--), 0 === t)) + return n.onCompleted(); + e(t); + }, + ); + }), + (Q.repeat = function (t, e, n) { + return I(n) || (n = D), new Vn(t, e, n); + }); + o(Zn, (Jn = r)), + (Zn.prototype.subscribeCore = function (t) { + t = [this._value, t]; + return this._scheduler === M ? Xn(0, t) : this._scheduler.schedule(t, Xn); + }); + var Jn, + Kn = Zn; + function Zn(t, e) { + (this._value = t), (this._scheduler = e), Jn.call(this); + } + function Xn(t, e) { + var n = e[0], + e = e[1]; + return e.onNext(n), e.onCompleted(), y; + } + Q.return = Q.just = function (t, e) { + return I(e) || (e = M), new Kn(t, e); + }; + o(er, ($n = r)), + (er.prototype.subscribeCore = function (t) { + t = [this._error, t]; + return this._scheduler === M ? nr(0, t) : this._scheduler.schedule(t, nr); + }); + var $n, + tr = er; + function er(t, e) { + (this._error = t), (this._scheduler = e), $n.call(this); + } + function nr(t, e) { + var n = e[0]; + return e[1].onError(n), y; + } + var rr, + ir = (Q.throw = function (t, e) { + return I(e) || (e = M), new tr(t, e); + }), + or = + (o(ar, (rr = r)), + (ar.prototype.subscribeCore = function (t) { + var e = new E(), + n = new B(); + return ( + n.setDisposable(e), + e.setDisposable(this.source.subscribe(new lr(t, n, this._fn))), + n + ); + }), + ar); + function ar(t, e) { + (this.source = t), (this._fn = e), rr.call(this); + } + o(ur, (sr = k)), + (ur.prototype.next = function (t) { + this._o.onNext(t); + }), + (ur.prototype.completed = function () { + return this._o.onCompleted(); + }), + (ur.prototype.error = function (t) { + t = v(this._fn)(t); + if (t === m) return this._o.onError(t.e); + d(t) && (t = _(t)); + var e = new E(); + this._s.setDisposable(e), e.setDisposable(t.subscribe(this._o)); + }); + var sr, + lr = ur; + function ur(t, e, n) { + (this._o = t), (this._s = e), (this._fn = n), sr.call(this); + } + a.catch = function (t) { + return g(t) ? new or(this, t) : cr([this, t]); + }; + var cr = (Q.catch = function () { + if (Array.isArray(arguments[0])) e = arguments[0]; + else + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + return an(e).catchError(); + }); + function Ar() { + return !1; + } + function hr() { + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + return e; + } + a.combineLatest = function () { + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + return (Array.isArray(e[0]) ? e[0] : e).unshift(this), yr.apply(this, e); + }; + o(fr, (pr = r)), + (fr.prototype.subscribeCore = function (t) { + for ( + var e = this._params.length, + n = new Array(e), + r = { + hasValue: St(e, Ar), + hasValueAll: !1, + isDone: St(e, Ar), + values: new Array(e), + }, + i = 0; + i < e; + i++ + ) { + var o = this._params[i], + a = new E(); + (n[i] = a), + d(o) && (o = _(o)), + a.setDisposable(o.subscribe(new mr(t, i, this._cb, r))); + } + return new x(n); + }); + var pr, + dr = fr; + function fr(t, e) { + (this._params = t), (this._cb = e), pr.call(this); + } + o(vr, (gr = k)), + (vr.prototype.next = function (t) { + if ( + ((this._state.values[this._i] = t), + (this._state.hasValue[this._i] = !0), + this._state.hasValueAll || + (this._state.hasValueAll = this._state.hasValue.every(c))) + ) { + t = v(this._cb).apply(null, this._state.values); + if (t === m) return this._o.onError(t.e); + this._o.onNext(t); + } else + this._state.isDone + .filter( + ((n = this._i), + function (t, e) { + return e !== n; + }), + ) + .every(c) && this._o.onCompleted(); + var n; + }), + (vr.prototype.error = function (t) { + this._o.onError(t); + }), + (vr.prototype.completed = function () { + (this._state.isDone[this._i] = !0), + this._state.isDone.every(c) && this._o.onCompleted(); + }); + var gr, + mr = vr; + function vr(t, e, n, r) { + (this._o = t), + (this._i = e), + (this._cb = n), + (this._state = r), + gr.call(this); + } + var br, + yr = (Q.combineLatest = function () { + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + var r = g(e[t - 1]) ? e.pop() : hr; + return Array.isArray(e[0]) && (e = e[0]), new dr(e, r); + }), + wr = + ((a.concat = function () { + for (var t = [], e = 0, n = arguments.length; e < n; e++) + t.push(arguments[e]); + return t.unshift(this), Dr.apply(null, t); + }), + o(Er, (br = k)), + (Er.prototype.next = function (t) { + this._s.o.onNext(t); + }), + (Er.prototype.error = function (t) { + this._s.o.onError(t); + }), + (Er.prototype.completed = function () { + this._s.i++, this._fn(this._s); + }), + Er); + function Er(t, e) { + (this._s = t), (this._fn = e), br.call(this); + } + o(xr, (Br = r)), + (xr.prototype.subscribeCore = function (t) { + var e = new B(), + n = Qt(u), + t = { + o: t, + i: 0, + subscription: e, + disposable: n, + sources: this._sources, + }, + t = M.scheduleRecursive(t, Ir); + return new x([e, n, t]); + }); + var Br, + Cr = xr; + function xr(t) { + (this._sources = t), Br.call(this); + } + function Ir(t, e) { + if (!t.disposable.isDisposed) { + if (t.i === t.sources.length) return t.o.onCompleted(); + var n = t.sources[t.i], + r = (d(n) && (n = _(n)), new E()); + t.subscription.setDisposable(r), + r.setDisposable(n.subscribe(new wr(t, e))); + } + } + var Mr, + Dr = (Q.concat = function () { + if (Array.isArray(arguments[0])) t = arguments[0]; + else + for ( + var t = new Array(arguments.length), e = 0, n = arguments.length; + e < n; + e++ + ) + t[e] = arguments[e]; + return new Cr(t); + }), + Sr = + ((a.concatAll = function () { + return this.merge(1); + }), + o(kr, (Mr = r)), + (kr.prototype.subscribeCore = function (t) { + var e = new kt(); + return ( + e.add(this.source.subscribe(new Qr(t, this.maxConcurrent, e))), e + ); + }), + kr); + function kr(t, e) { + (this.source = t), (this.maxConcurrent = e), Mr.call(this); + } + o(_r, (Fr = k)), + (_r.prototype.handleSubscribe = function (t) { + var e = new E(); + this.g.add(e), + d(t) && (t = _(t)), + e.setDisposable(t.subscribe(new Tr(this, e))); + }), + (_r.prototype.next = function (t) { + this.activeCount < this.max + ? (this.activeCount++, this.handleSubscribe(t)) + : this.q.push(t); + }), + (_r.prototype.error = function (t) { + this.o.onError(t); + }), + (_r.prototype.completed = function () { + (this.done = !0), 0 === this.activeCount && this.o.onCompleted(); + }), + o(Tr, Fr), + (Tr.prototype.next = function (t) { + this.parent.o.onNext(t); + }), + (Tr.prototype.error = function (t) { + this.parent.o.onError(t); + }), + (Tr.prototype.completed = function () { + this.parent.g.remove(this.sad), + 0 < this.parent.q.length + ? this.parent.handleSubscribe(this.parent.q.shift()) + : (this.parent.activeCount--, + this.parent.done && + 0 === this.parent.activeCount && + this.parent.o.onCompleted()); + }); + var Fr, + Qr = _r; + function _r(t, e, n) { + (this.o = t), + (this.max = e), + (this.g = n), + (this.done = !1), + (this.q = []), + (this.activeCount = 0), + Fr.call(this); + } + function Tr(t, e) { + (this.parent = t), (this.sad = e), Fr.call(this); + } + a.merge = function (t) { + return 'number' != typeof t ? Ur(this, t) : new Sr(this, t); + }; + var Rr, + Ur = (Q.merge = function () { + var t, + e, + n = [], + r = arguments.length; + if (arguments[0]) + if (I(arguments[0])) + for (t = arguments[0], e = 1; e < r; e++) n.push(arguments[e]); + else for (t = M, e = 0; e < r; e++) n.push(arguments[e]); + else for (t = M, e = 1; e < r; e++) n.push(arguments[e]); + return Pn(t, (n = Array.isArray(n[0]) ? n[0] : n)).mergeAll(); + }), + Nr = (s.CompositeError = function (t) { + (this.innerErrors = t), + (this.message = 'This contains multiple errors. Check the innerErrors'), + Error.call(this); + }), + Pr = + ((Nr.prototype = Object.create(Error.prototype)), + (Nr.prototype.name = 'CompositeError'), + o(Lr, (Rr = r)), + (Lr.prototype.subscribeCore = function (t) { + var e = new kt(), + n = new E(), + t = { isStopped: !1, errors: [], o: t }; + return ( + e.add(n), n.setDisposable(this.source.subscribe(new Or(e, t))), e + ); + }), + Lr); + function Lr(t) { + (this.source = t), Rr.call(this); + } + o(Gr, (Yr = k)), + (Gr.prototype.next = function (t) { + var e = new E(); + this._group.add(e), + d(t) && (t = _(t)), + e.setDisposable(t.subscribe(new Hr(e, this._group, this._state))); + }), + (Gr.prototype.error = function (t) { + this._state.errors.push(t), + (this._state.isStopped = !0), + 1 === this._group.length && zr(this._state.o, this._state.errors); + }), + (Gr.prototype.completed = function () { + (this._state.isStopped = !0), + 1 === this._group.length && zr(this._state.o, this._state.errors); + }), + o(Hr, Yr), + (Hr.prototype.next = function (t) { + this._state.o.onNext(t); + }), + (Hr.prototype.error = function (t) { + this._state.errors.push(t), + this._group.remove(this._inner), + this._state.isStopped && + 1 === this._group.length && + zr(this._state.o, this._state.errors); + }), + (Hr.prototype.completed = function () { + this._group.remove(this._inner), + this._state.isStopped && + 1 === this._group.length && + zr(this._state.o, this._state.errors); + }); + var Yr, + Or = Gr; + function Gr(t, e) { + (this._group = t), (this._state = e), Yr.call(this); + } + function zr(t, e) { + 0 === e.length + ? t.onCompleted() + : 1 === e.length + ? t.onError(e[0]) + : t.onError(new Nr(e)); + } + function Hr(t, e, n) { + (this._inner = t), (this._group = e), (this._state = n), Yr.call(this); + } + Q.mergeDelayError = function () { + if (Array.isArray(arguments[0])) e = arguments[0]; + else + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + var r = Pn(null, e); + return new Pr(r); + }; + o(qr, (jr = r)), + (qr.prototype.subscribeCore = function (t) { + var e = new kt(), + n = new E(); + return e.add(n), n.setDisposable(this.source.subscribe(new Jr(t, e))), e; + }); + var jr, + Vr = qr; + function qr(t) { + (this.source = t), jr.call(this); + } + o(Kr, (Wr = k)), + (Kr.prototype.next = function (t) { + var e = new E(); + this.g.add(e), + d(t) && (t = _(t)), + e.setDisposable(t.subscribe(new Zr(this, e))); + }), + (Kr.prototype.error = function (t) { + this.o.onError(t); + }), + (Kr.prototype.completed = function () { + (this.done = !0), 1 === this.g.length && this.o.onCompleted(); + }), + o(Zr, Wr), + (Zr.prototype.next = function (t) { + this.parent.o.onNext(t); + }), + (Zr.prototype.error = function (t) { + this.parent.o.onError(t); + }), + (Zr.prototype.completed = function () { + this.parent.g.remove(this.sad), + this.parent.done && + 1 === this.parent.g.length && + this.parent.o.onCompleted(); + }); + var Wr, + Jr = Kr; + function Kr(t, e) { + (this.o = t), (this.g = e), (this.done = !1), Wr.call(this); + } + function Zr(t, e) { + (this.parent = t), (this.sad = e), Wr.call(this); + } + a.mergeAll = function () { + return new Vr(this); + }; + o(ti, (Xr = r)), + (ti.prototype.subscribeCore = function (t) { + var e = new E(), + n = + (e.setDisposable(this._s.subscribe(new ni(t, this))), + d(this._o) && (this._o = _(this._o)), + new E()); + return ( + n.setDisposable(this._o.subscribe(new oi(t, this, n))), new C(e, n) + ); + }); + var Xr, + $r = ti; + function ti(t, e) { + (this._s = t), + (this._o = d(e) ? _(e) : e), + (this._open = !1), + Xr.call(this); + } + o(ri, (ei = k)), + (ri.prototype.next = function (t) { + this._p._open && this._o.onNext(t); + }), + (ri.prototype.error = function (t) { + this._o.onError(t); + }), + (ri.prototype.onCompleted = function () { + this._p._open && this._o.onCompleted(); + }); + var ei, + ni = ri; + function ri(t, e) { + (this._o = t), (this._p = e), ei.call(this); + } + o(ai, (ii = k)), + (ai.prototype.next = function () { + (this._p._open = !0), this._r.dispose(); + }), + (ai.prototype.error = function (t) { + this._o.onError(t); + }), + (ai.prototype.onCompleted = function () { + this._r.dispose(); + }); + var ii, + oi = ai; + function ai(t, e, n) { + (this._o = t), (this._p = e), (this._r = n), ii.call(this); + } + a.skipUntil = function (t) { + return new $r(this, t); + }; + o(ui, (si = r)), + (ui.prototype.subscribeCore = function (t) { + var e = new B(), + t = this.source.subscribe(new ci(t, e)); + return new C(t, e); + }), + o(ci, k), + (ci.prototype.next = function (t) { + var e = new E(), + n = ++this.latest; + (this.hasLatest = !0), + this.inner.setDisposable(e), + d(t) && (t = _(t)), + e.setDisposable(t.subscribe(new Ai(this, n))); + }), + (ci.prototype.error = function (t) { + this.o.onError(t); + }), + (ci.prototype.completed = function () { + (this.stopped = !0), this.hasLatest || this.o.onCompleted(); + }), + o(Ai, k), + (Ai.prototype.next = function (t) { + this.parent.latest === this.id && this.parent.o.onNext(t); + }), + (Ai.prototype.error = function (t) { + this.parent.latest === this.id && this.parent.o.onError(t); + }), + (Ai.prototype.completed = function () { + this.parent.latest === this.id && + ((this.parent.hasLatest = !1), + this.parent.stopped && this.parent.o.onCompleted()); + }); + var si, + li = ui; + function ui(t) { + (this.source = t), si.call(this); + } + function ci(t, e) { + (this.o = t), + (this.inner = e), + (this.stopped = !1), + (this.latest = 0), + (this.hasLatest = !1), + k.call(this); + } + function Ai(t, e) { + (this.parent = t), (this.id = e), k.call(this); + } + a.switch = a.switchLatest = function () { + return new li(this); + }; + o(di, (hi = r)), + (di.prototype.subscribeCore = function (t) { + return new C(this.source.subscribe(t), this.other.subscribe(new gi(t))); + }); + var hi, + pi = di; + function di(t, e) { + (this.source = t), (this.other = d(e) ? _(e) : e), hi.call(this); + } + o(mi, (fi = k)), + (mi.prototype.next = function () { + this._o.onCompleted(); + }), + (mi.prototype.error = function (t) { + this._o.onError(t); + }), + (mi.prototype.onCompleted = u); + var fi, + gi = mi; + function mi(t) { + (this._o = t), fi.call(this); + } + function Ar() { + return !1; + } + function hr() { + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + return e; + } + a.takeUntil = function (t) { + return new pi(this, t); + }; + o(yi, (vi = r)), + (yi.prototype.subscribeCore = function (t) { + for ( + var e = this._ss.length, + n = { hasValue: St(e, Ar), hasValueAll: !1, values: new Array(e) }, + r = this._ss.length, + i = new Array(r + 1), + o = 0; + o < r; + o++ + ) { + var a = this._ss[o], + s = new E(); + d(a) && (a = _(a)), + s.setDisposable(a.subscribe(new Ei(t, o, n))), + (i[o] = s); + } + e = new E(); + return ( + e.setDisposable(this._s.subscribe(new xi(t, this._cb, n))), + (i[r] = e), + new x(i) + ); + }); + var vi, + bi = yi; + function yi(t, e, n) { + (this._s = t), (this._ss = e), (this._cb = n), vi.call(this); + } + o(Bi, (wi = k)), + (Bi.prototype.next = function (t) { + (this._state.values[this._i] = t), + (this._state.hasValue[this._i] = !0), + (this._state.hasValueAll = this._state.hasValue.every(c)); + }), + (Bi.prototype.error = function (t) { + this._o.onError(t); + }), + (Bi.prototype.completed = u); + var wi, + Ei = Bi; + function Bi(t, e, n) { + (this._o = t), (this._i = e), (this._state = n), wi.call(this); + } + o(Ii, (Ci = k)), + (Ii.prototype.next = function (t) { + var t = [t].concat(this._state.values); + if (this._state.hasValueAll) + return ( + (t = v(this._cb).apply(null, t)), + t === m ? this._o.onError(t.e) : void this._o.onNext(t) + ); + }), + (Ii.prototype.error = function (t) { + this._o.onError(t); + }), + (Ii.prototype.completed = function () { + this._o.onCompleted(); + }); + var Ci, + xi = Ii; + function Ii(t, e, n) { + (this._o = t), (this._cb = e), (this._state = n), Ci.call(this); + } + function Ar() { + return !1; + } + function Mi() { + return []; + } + a.withLatestFrom = function () { + if (0 === arguments.length) throw new Error('invalid arguments'); + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + var r = g(e[t - 1]) ? e.pop() : hr; + return Array.isArray(e[0]) && (e = e[0]), new bi(this, e, r); + }; + o(ki, (Di = r)), + (ki.prototype.subscribeCore = function (t) { + for ( + var e = this._s.length, + n = new Array(e), + r = St(e, Ar), + i = St(e, Mi), + o = 0; + o < e; + o++ + ) { + var a = this._s[o], + s = new E(); + (n[o] = s), + d(a) && (a = _(a)), + s.setDisposable(a.subscribe(new Qi(t, o, this, i, r))); + } + return new x(n); + }); + var Di, + Si = ki; + function ki(t, e) { + (this._s = t), (this._cb = e), Di.call(this); + } + o(_i, (Fi = k)), + (_i.prototype.next = function (t) { + if ((this._q[this._i].push(t), this._q.every(Ti))) { + (t = this._q.map(Ri)), (t = v(this._p._cb).apply(null, t)); + if (t === m) return this._o.onError(t.e); + this._o.onNext(t); + } else + this._d + .filter( + ((n = this._i), + function (t, e) { + return e !== n; + }), + ) + .every(c) && this._o.onCompleted(); + var n; + }), + (_i.prototype.error = function (t) { + this._o.onError(t); + }), + (_i.prototype.completed = function () { + (this._d[this._i] = !0), this._d.every(c) && this._o.onCompleted(); + }); + var Fi, + Qi = _i; + function _i(t, e, n, r, i) { + (this._o = t), + (this._i = e), + (this._p = n), + (this._q = r), + (this._d = i), + Fi.call(this); + } + function Ti(t) { + return 0 < t.length; + } + function Ri(t) { + return t.shift(); + } + function Ar() { + return !1; + } + function Mi() { + return []; + } + function hr() { + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + return e; + } + (a.zip = function () { + if (0 === arguments.length) throw new Error('invalid arguments'); + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + var r = g(e[t - 1]) ? e.pop() : hr; + return (e = Array.isArray(e[0]) ? e[0] : e).unshift(this), new Si(e, r); + }), + (Q.zip = function () { + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + var r = (e = Array.isArray(e[0]) + ? g(e[1]) + ? e[0].concat(e[1]) + : e[0] + : e).shift(); + return r.zip.apply(r, e); + }); + o(Pi, (Ui = r)), + (Pi.prototype.subscribeCore = function (t) { + for ( + var e, + n, + r, + i = this.sources, + o = i.length, + a = new Array(o), + s = { q: St(o, Mi), done: St(o, Ar), cb: this._cb, o: t }, + l = 0; + l < o; + l++ + ) + (r = n = void 0), + (n = i[(e = l)]), + (r = new E()), + (it(n) || rt(n)) && (n = kn(n)), + (a[e] = r).setDisposable(n.subscribe(new Yi(s, e))); + return new x(a); + }); + var Ui, + Ni = Pi; + function Pi(t, e) { + (this.sources = t), (this._cb = e), Ui.call(this); + } + o(Oi, (Li = k)), + (Oi.prototype.next = function (t) { + if ((this._s.q[this._i].push(t), this._s.q.every(Gi))) { + (t = this._s.q.map(zi)), (t = v(this._s.cb).apply(null, t)); + if (t === m) return this._s.o.onError(t.e); + this._s.o.onNext(t); + } else + this._s.done + .filter( + ((n = this._i), + function (t, e) { + return e !== n; + }), + ) + .every(c) && this._s.o.onCompleted(); + var n; + }), + (Oi.prototype.error = function (t) { + this._s.o.onError(t); + }), + (Oi.prototype.completed = function () { + (this._s.done[this._i] = !0), + this._s.done.every(c) && this._s.o.onCompleted(); + }); + var Li, + Yi = Oi; + function Oi(t, e) { + (this._s = t), (this._i = e), Li.call(this); + } + function Gi(t) { + return 0 < t.length; + } + function zi(t) { + return t.shift(); + } + (a.zipIterable = function () { + if (0 === arguments.length) throw new Error('invalid arguments'); + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + var r = g(e[t - 1]) ? e.pop() : hr; + return e.unshift(this), new Ni(e, r); + }), + (a.asObservable = function () { + return new T( + function (t) { + return e.subscribe(t); + }, + (e = this), + ); + var e; + }); + o(Vi, (Hi = r)), + (Vi.prototype.subscribeCore = function (t) { + return this.source.subscribe(new Wi(t)); + }); + var Hi, + ji = Vi; + function Vi(t) { + (this.source = t), Hi.call(this); + } + o(Ji, (qi = k)), + (Ji.prototype.next = function (t) { + t.accept(this._o); + }), + (Ji.prototype.error = function (t) { + this._o.onError(t); + }), + (Ji.prototype.completed = function () { + this._o.onCompleted(); + }); + var qi, + Wi = Ji; + function Ji(t) { + (this._o = t), qi.call(this); + } + a.dematerialize = function () { + return new ji(this); + }; + o(Xi, (Ki = r)), + (Xi.prototype.subscribeCore = function (t) { + return this.source.subscribe(new to(t, this.keyFn, this.comparer)); + }); + var Ki, + Zi = Xi; + function Xi(t, e, n) { + (this.source = t), (this.keyFn = e), (this.comparer = n), Ki.call(this); + } + o(eo, ($i = k)), + (eo.prototype.next = function (t) { + var e, + n = t; + return g(this.keyFn) && (n = v(this.keyFn)(t)) === m + ? this.o.onError(n.e) + : this.hasCurrentKey && (e = v(this.comparer)(this.currentKey, n)) === m + ? this.o.onError(e.e) + : void ( + (this.hasCurrentKey && e) || + ((this.hasCurrentKey = !0), + (this.currentKey = n), + this.o.onNext(t)) + ); + }), + (eo.prototype.error = function (t) { + this.o.onError(t); + }), + (eo.prototype.completed = function () { + this.o.onCompleted(); + }); + var $i, + to = eo; + function eo(t, e, n) { + (this.o = t), + (this.keyFn = e), + (this.comparer = n), + (this.hasCurrentKey = !1), + (this.currentKey = null), + $i.call(this); + } + a.distinctUntilChanged = function (t, e) { + return new Zi(this, t, (e = e || P)); + }; + o(io, (no = r)), + (io.prototype.subscribeCore = function (t) { + return this.source.subscribe(new oo(t, this)); + }), + o(oo, k), + (oo.prototype.next = function (t) { + var e = v(this.t.onNext).call(this.t, t); + e === m && this.o.onError(e.e), this.o.onNext(t); + }), + (oo.prototype.error = function (t) { + var e = v(this.t.onError).call(this.t, t); + if (e === m) return this.o.onError(e.e); + this.o.onError(t); + }), + (oo.prototype.completed = function () { + var t = v(this.t.onCompleted).call(this.t); + if (t === m) return this.o.onError(t.e); + this.o.onCompleted(); + }); + var no, + ro = io; + function io(t, e, n, r) { + (this.source = t), + (this._oN = e), + (this._oE = n), + (this._oC = r), + no.call(this); + } + function oo(t, e) { + (this.o = t), + (this.t = + !e._oN || g(e._oN) ? Ce(e._oN || u, e._oE || u, e._oC || u) : e._oN), + (this.isStopped = !1), + k.call(this); + } + (a.do = + a.tap = + a.doAction = + function (t, e, n) { + return new ro(this, t, e, n); + }), + (a.doOnNext = a.tapOnNext = + function (e, n) { + return this.tap( + void 0 !== n + ? function (t) { + e.call(n, t); + } + : e, + ); + }), + (a.doOnError = a.tapOnError = + function (e, n) { + return this.tap( + u, + void 0 !== n + ? function (t) { + e.call(n, t); + } + : e, + ); + }), + (a.doOnCompleted = a.tapOnCompleted = + function (t, e) { + return this.tap( + u, + null, + void 0 !== e + ? function () { + t.call(e); + } + : t, + ); + }); + o(lo, (ao = r)), + (lo.prototype.subscribeCore = function (t) { + t = v(this.source.subscribe).call(this.source, t); + return t === m && (this._fn(), h(t.e)), new uo(t, this._fn); + }), + (uo.prototype.dispose = function () { + var t; + this.isDisposed || + ((t = v(this._s.dispose).call(this._s)), this._fn(), t === m && h(t.e)); + }); + var ao, + so = lo; + function lo(t, e, n) { + (this.source = t), (this._fn = ot(e, n, 0)), ao.call(this); + } + function uo(t, e) { + (this.isDisposed = !1), (this._s = t), (this._fn = e); + } + a.finally = function (t, e) { + return new so(this, t, e); + }; + o(ho, (co = r)), + (ho.prototype.subscribeCore = function (t) { + return this.source.subscribe(new po(t)); + }), + (po.prototype.onNext = u), + (po.prototype.onError = function (t) { + this.isStopped || ((this.isStopped = !0), this.o.onError(t)); + }), + (po.prototype.onCompleted = function () { + this.isStopped || ((this.isStopped = !0), this.o.onCompleted()); + }), + (po.prototype.dispose = function () { + this.isStopped = !0; + }), + (po.prototype.fail = function (t) { + return ( + !this.isStopped && ((this.isStopped = !0), this.observer.onError(t), !0) + ); + }); + var co, + Ao = ho; + function ho(t) { + (this.source = t), co.call(this); + } + function po(t) { + (this.o = t), (this.isStopped = !1); + } + a.ignoreElements = function () { + return new Ao(this); + }; + o(mo, (fo = r)), + (mo.prototype.subscribeCore = function (t) { + return this.source.subscribe(new bo(t)); + }); + var fo, + go = mo; + function mo(t, e) { + (this.source = t), fo.call(this); + } + o(yo, (vo = k)), + (yo.prototype.next = function (t) { + this._o.onNext(we(t)); + }), + (yo.prototype.error = function (t) { + this._o.onNext(Ee(t)), this._o.onCompleted(); + }), + (yo.prototype.completed = function () { + this._o.onNext(Be()), this._o.onCompleted(); + }); + var vo, + bo = yo; + function yo(t) { + (this._o = t), vo.call(this); + } + function wo(t) { + return { + '@@iterator': function () { + return { + next: function () { + return { done: !1, value: t }; + }, + }; + }, + }; + } + (a.materialize = function () { + return new go(this); + }), + (a.repeat = function (t) { + return tn(this, t).concat(); + }), + (a.retry = function (t) { + return tn(this, t).catchError(); + }); + o(Co, (Eo = r)), + (Co.prototype.subscribeCore = function (o) { + var t, + a = new R(), + s = new R(), + e = this._notifier(a).subscribe(s), + l = this.source['@@iterator'](), + u = { isDisposed: !1 }, + c = new B(), + n = D.scheduleRecursive(null, function (t, e) { + var n, r, i; + u.isDisposed || + ((n = l.next()).done + ? o.onCompleted() + : ((n = n.value), + d(n) && (n = _(n)), + (r = new E()), + (i = new E()), + c.setDisposable(new C(i, r)), + r.setDisposable( + n.subscribe( + function (t) { + o.onNext(t); + }, + function (t) { + i.setDisposable( + s.subscribe( + e, + function (t) { + o.onError(t); + }, + function () { + o.onCompleted(); + }, + ), + ), + a.onNext(t), + r.dispose(); + }, + function () { + o.onCompleted(); + }, + ), + ))); + }); + return new x([ + e, + c, + n, + ((t = u), + { + isDisposed: !1, + dispose: function () { + this.isDisposed || ((this.isDisposed = !0), (t.isDisposed = !0)); + }, + }), + ]); + }); + var Eo, + Bo = Co; + function Co(t, e) { + (this.source = t), (this._notifier = e), Eo.call(this); + } + function wo(t) { + return { + '@@iterator': function () { + return { + next: function () { + return { done: !1, value: t }; + }, + }; + }, + }; + } + a.retryWhen = function (t) { + return new Bo(wo(this), t); + }; + o(Mo, (xo = r)), + (Mo.prototype.subscribeCore = function (o) { + var t, + a = new R(), + s = new R(), + e = this._notifier(a).subscribe(s), + l = this.source['@@iterator'](), + u = { isDisposed: !1 }, + c = new B(), + n = D.scheduleRecursive(null, function (t, e) { + var n, r, i; + u.isDisposed || + ((n = l.next()).done + ? o.onCompleted() + : ((n = n.value), + d(n) && (n = _(n)), + (r = new E()), + (i = new E()), + c.setDisposable(new C(i, r)), + r.setDisposable( + n.subscribe( + function (t) { + o.onNext(t); + }, + function (t) { + o.onError(t); + }, + function () { + i.setDisposable( + s.subscribe( + e, + function (t) { + o.onError(t); + }, + function () { + o.onCompleted(); + }, + ), + ), + a.onNext(null), + r.dispose(); + }, + ), + ))); + }); + return new x([ + e, + c, + n, + ((t = u), + { + isDisposed: !1, + dispose: function () { + this.isDisposed || ((this.isDisposed = !0), (t.isDisposed = !0)); + }, + }), + ]); + }); + var xo, + Io = Mo; + function Mo(t, e) { + (this.source = t), (this._notifier = e), xo.call(this); + } + a.repeatWhen = function (t) { + return new Io(wo(this), t); + }; + o(ko, (Do = r)), + (ko.prototype.subscribeCore = function (t) { + return this.source.subscribe(new Qo(t, this)); + }); + var Do, + So = ko; + function ko(t, e, n, r) { + (this.source = t), + (this.accumulator = e), + (this.hasSeed = n), + (this.seed = r), + Do.call(this); + } + o(_o, (Fo = k)), + (_o.prototype.next = function (t) { + if ( + (this._hv || (this._hv = !0), + this._ha + ? (this._a = v(this._fn)(this._a, t, this._i, this._p)) + : ((this._a = this._hs + ? v(this._fn)(this._s, t, this._i, this._p) + : t), + (this._ha = !0)), + this._a === m) + ) + return this._o.onError(this._a.e); + this._o.onNext(this._a), this._i++; + }), + (_o.prototype.error = function (t) { + this._o.onError(t); + }), + (_o.prototype.completed = function () { + !this._hv && this._hs && this._o.onNext(this._s), this._o.onCompleted(); + }); + var Fo, + Qo = _o; + function _o(t, e) { + (this._o = t), + (this._p = e), + (this._fn = e.accumulator), + (this._hs = e.hasSeed), + (this._s = e.seed), + (this._ha = !1), + (this._a = null), + (this._hv = !1), + (this._i = 0), + Fo.call(this); + } + a.scan = function () { + var t, + e = !1, + n = arguments[0]; + return ( + 2 === arguments.length && ((e = !0), (t = arguments[1])), + new So(this, n, e, t) + ); + }; + o(Uo, (To = r)), + (Uo.prototype.subscribeCore = function (t) { + return this.source.subscribe(new Po(t, this._c)); + }); + var To, + Ro = Uo; + function Uo(t, e) { + (this.source = t), (this._c = e), To.call(this); + } + o(Lo, (No = k)), + (Lo.prototype.next = function (t) { + this._q.push(t), + this._q.length > this._c && this._o.onNext(this._q.shift()); + }), + (Lo.prototype.error = function (t) { + this._o.onError(t); + }), + (Lo.prototype.completed = function () { + this._o.onCompleted(); + }); + var No, + Po = Lo; + function Lo(t, e) { + (this._o = t), (this._c = e), (this._q = []), No.call(this); + } + (a.skipLast = function (t) { + if (t < 0) throw new $(); + return new Ro(this, t); + }), + (a.startWith = function () { + var t, + e = 0; + arguments.length && I(arguments[0]) + ? ((t = arguments[0]), (e = 1)) + : (t = M); + for (var n = [], r = e, i = arguments.length; r < i; r++) + n.push(arguments[r]); + return Dr.apply(null, [Tn(n, t), this]); + }); + o(Go, (Yo = k)), + (Go.prototype.next = function (t) { + this._q.push(t), this._q.length > this._c && this._q.shift(); + }), + (Go.prototype.error = function (t) { + this._o.onError(t); + }), + (Go.prototype.completed = function () { + for (; 0 < this._q.length; ) this._o.onNext(this._q.shift()); + this._o.onCompleted(); + }); + var Yo, + Oo = Go; + function Go(t, e) { + (this._o = t), (this._c = e), (this._q = []), Yo.call(this); + } + (a.takeLast = function (e) { + if (e < 0) throw new $(); + var n = this; + return new T(function (t) { + return n.subscribe(new Oo(t, e)); + }, n); + }), + (a.flatMapConcat = a.concatMap = + function (t, e, n) { + return new Ne(this, t, e, n).merge(1); + }); + o(jo, (zo = r)), + (jo.prototype.internalMap = function (t, e) { + return new jo( + this.source, + ((r = t), + (i = this), + function (t, e, n) { + return r.call(this, i.selector(t, e, n), e, n); + }), + e, + ); + var r, i; + }), + (jo.prototype.subscribeCore = function (t) { + return this.source.subscribe(new Vo(t, this.selector, this)); + }), + o(Vo, k), + (Vo.prototype.next = function (t) { + t = v(this.selector)(t, this.i++, this.source); + if (t === m) return this.o.onError(t.e); + this.o.onNext(t); + }), + (Vo.prototype.error = function (t) { + this.o.onError(t); + }), + (Vo.prototype.completed = function () { + this.o.onCompleted(); + }); + var zo, + Ho = jo; + function jo(t, e, n) { + (this.source = t), (this.selector = ot(e, n, 3)), zo.call(this); + } + function Vo(t, e, n) { + (this.o = t), + (this.selector = e), + (this.source = n), + (this.i = 0), + k.call(this); + } + (a.map = a.select = + function (t, e) { + var n = + 'function' == typeof t + ? t + : function () { + return t; + }; + return this instanceof Ho ? this.internalMap(n, e) : new Ho(this, n, e); + }), + (a.pluck = function () { + var t = arguments.length, + e = new Array(t); + if (0 === t) throw new Error('List of properties cannot be empty.'); + for (var i, o, n = 0; n < t; n++) e[n] = arguments[n]; + return this.map( + ((i = e), + (o = t), + function (t) { + for (var e = t, n = 0; n < o; n++) { + var r = e[i[n]]; + if (void 0 === r) return f; + e = r; + } + return e; + }), + ); + }), + (a.flatMap = + a.selectMany = + a.mergeMap = + function (t, e, n) { + return new Ne(this, t, e, n).mergeAll(); + }), + (a.flatMapLatest = a.switchMap = + function (t, e, n) { + return new Ne(this, t, e, n).switchLatest(); + }); + o(Jo, (qo = r)), + (Jo.prototype.subscribeCore = function (t) { + return this.source.subscribe(new Ko(t, this._count)); + }), + o(Ko, k), + (Ko.prototype.next = function (t) { + this._r <= 0 ? this._o.onNext(t) : this._r--; + }), + (Ko.prototype.error = function (t) { + this._o.onError(t); + }), + (Ko.prototype.completed = function () { + this._o.onCompleted(); + }); + var qo, + Wo = Jo; + function Jo(t, e) { + (this.source = t), (this._count = e), qo.call(this); + } + function Ko(t, e) { + (this._o = t), (this._r = e), k.call(this); + } + a.skip = function (t) { + if (t < 0) throw new $(); + return new Wo(this, t); + }; + o($o, (Zo = r)), + ($o.prototype.subscribeCore = function (t) { + return this.source.subscribe(new ea(t, this)); + }); + var Zo, + Xo = $o; + function $o(t, e) { + (this.source = t), (this._fn = e), Zo.call(this); + } + o(na, (ta = k)), + (na.prototype.next = function (t) { + if (!this._r) { + var e = v(this._p._fn)(t, this._i++, this._p); + if (e === m) return this._o.onError(e.e); + this._r = !e; + } + this._r && this._o.onNext(t); + }), + (na.prototype.error = function (t) { + this._o.onError(t); + }), + (na.prototype.completed = function () { + this._o.onCompleted(); + }); + var ta, + ea = na; + function na(t, e) { + (this._o = t), (this._p = e), (this._i = 0), (this._r = !1), ta.call(this); + } + a.skipWhile = function (t, e) { + t = ot(t, e, 3); + return new Xo(this, t); + }; + o(oa, (ra = r)), + (oa.prototype.subscribeCore = function (t) { + return this.source.subscribe(new aa(t, this._count)); + }), + o(aa, k), + (aa.prototype.next = function (t) { + 0 < this._r-- && + (this._o.onNext(t), this._r <= 0 && this._o.onCompleted()); + }), + (aa.prototype.error = function (t) { + this._o.onError(t); + }), + (aa.prototype.completed = function () { + this._o.onCompleted(); + }); + var ra, + ia = oa; + function oa(t, e) { + (this.source = t), (this._count = e), ra.call(this); + } + function aa(t, e) { + (this._o = t), (this._c = e), (this._r = e), k.call(this); + } + a.take = function (t, e) { + if (t < 0) throw new $(); + return 0 === t ? wn(e) : new ia(this, t); + }; + o(ua, (sa = r)), + (ua.prototype.subscribeCore = function (t) { + return this.source.subscribe(new Aa(t, this)); + }); + var sa, + la = ua; + function ua(t, e) { + (this.source = t), (this._fn = e), sa.call(this); + } + o(ha, (ca = k)), + (ha.prototype.next = function (t) { + if ( + this._r && + ((this._r = v(this._p._fn)(t, this._i++, this._p)), this._r === m) + ) + return this._o.onError(this._r.e); + this._r ? this._o.onNext(t) : this._o.onCompleted(); + }), + (ha.prototype.error = function (t) { + this._o.onError(t); + }), + (ha.prototype.completed = function () { + this._o.onCompleted(); + }); + var ca, + Aa = ha; + function ha(t, e) { + (this._o = t), (this._p = e), (this._i = 0), (this._r = !0), ca.call(this); + } + a.takeWhile = function (t, e) { + t = ot(t, e, 3); + return new la(this, t); + }; + o(fa, (pa = r)), + (fa.prototype.subscribeCore = function (t) { + return this.source.subscribe(new ga(t, this.predicate, this)); + }), + (fa.prototype.internalFilter = function (t, e) { + return new fa( + this.source, + ((r = t), + (i = this), + function (t, e, n) { + return i.predicate(t, e, n) && r.call(this, t, e, n); + }), + e, + ); + var r, i; + }), + o(ga, k), + (ga.prototype.next = function (t) { + var e = v(this.predicate)(t, this.i++, this.source); + if (e === m) return this.o.onError(e.e); + e && this.o.onNext(t); + }), + (ga.prototype.error = function (t) { + this.o.onError(t); + }), + (ga.prototype.completed = function () { + this.o.onCompleted(); + }); + var pa, + da = fa; + function fa(t, e, n) { + (this.source = t), (this.predicate = ot(e, n, 3)), pa.call(this); + } + function ga(t, e, n) { + (this.o = t), + (this.predicate = e), + (this.source = n), + (this.i = 0), + k.call(this); + } + function ma(t, e, n, r) { + var i, + o, + a, + s = new Vs(); + return ( + r.push( + ((i = s), + (o = e), + (a = n), + function () { + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + if (g(a)) { + if ((e = v(a).apply(o, e)) === m) return i.onError(e.e); + i.onNext(e); + } else e.length <= 1 ? i.onNext(e[0]) : i.onNext(e); + i.onCompleted(); + }), + ), + t.apply(e, r), + s.asObservable() + ); + } + function va(t, e, n, r) { + var i, + o, + a, + s = new Vs(); + return ( + r.push( + ((i = s), + (o = e), + (a = n), + function () { + var t = arguments[0]; + if (t) return i.onError(t); + for (var e = arguments.length, n = [], r = 1; r < e; r++) + n[r - 1] = arguments[r]; + if (g(a)) { + if ((n = v(a).apply(o, n)) === m) return i.onError(n.e); + i.onNext(n); + } else n.length <= 1 ? i.onNext(n[0]) : i.onNext(n); + i.onCompleted(); + }), + ), + t.apply(e, r), + s.asObservable() + ); + } + function ba(t, e, n) { + (this._e = t), + (this._n = e), + (this._fn = n), + this._e.addEventListener(this._n, this._fn, !1), + (this.isDisposed = !1); + } + function ya(t, e, n) { + var r, + i = new kt(), + o = Object.prototype.toString.call(t); + if ( + ((r = t), + (l.StaticNodeList + ? r instanceof l.StaticNodeList || r instanceof l.NodeList + : '[object NodeList]' === Object.prototype.toString.call(r)) || + '[object HTMLCollection]' === o) + ) + for (var a = 0, s = t.length; a < s; a++) i.add(ya(t.item(a), e, n)); + else t && i.add(new ba(t, e, n)); + return i; + } + (a.filter = a.where = + function (t, e) { + return this instanceof da + ? this.internalFilter(t, e) + : new da(this, t, e); + }), + (Q.fromCallback = function (r, i, o) { + return function () { + void 0 === i && (i = this); + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + return ma(r, i, o, e); + }; + }), + (Q.fromNodeCallback = function (r, i, o) { + return function () { + void 0 === i && (i = this); + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + return va(r, i, o, e); + }; + }), + (s.config.useNativeEvents = !(ba.prototype.dispose = function () { + this.isDisposed || + (this._e.removeEventListener(this._n, this._fn, !1), + (this.isDisposed = !0)); + })); + o(Ba, (wa = r)), + (Ba.prototype.subscribeCore = function (t) { + return ya( + this._el, + this._n, + ((e = t), + (n = this._fn), + function () { + var t = arguments[0]; + if (g(n) && (t = v(n).apply(null, arguments)) === m) + return e.onError(t.e); + e.onNext(t); + }), + ); + var e, n; + }); + var wa, + Ea = Ba; + function Ba(t, e, n) { + (this._el = t), (this._n = e), (this._fn = n), wa.call(this); + } + Q.fromEvent = function (e, n, t) { + return e.addListener + ? Sa( + function (t) { + e.addListener(n, t); + }, + function (t) { + e.removeListener(n, t); + }, + t, + ) + : s.config.useNativeEvents || + 'function' != typeof e.on || + 'function' != typeof e.off + ? new Ea(e, n, t).publish().refCount() + : Sa( + function (t) { + e.on(n, t); + }, + function (t) { + e.off(n, t); + }, + t, + ); + }; + o(Ia, (Ca = r)), + (Ia.prototype.subscribeCore = function (t) { + function e() { + var t = arguments[0]; + if (g(r) && (t = v(r).apply(null, arguments)) === m) + return n.onError(t.e); + n.onNext(t); + } + (n = t), (r = this._fn); + var n, + r, + t = this._add(e); + return new Ma(this._del, e, t); + }), + (Ma.prototype.dispose = function () { + this.isDisposed || + (g(this._del) && this._del(this._fn, this._ret), + (this.isDisposed = !0)); + }); + var Ca, + xa = Ia; + function Ia(t, e, n) { + (this._add = t), (this._del = e), (this._fn = n), Ca.call(this); + } + function Ma(t, e, n) { + (this._del = t), (this._fn = e), (this._ret = n), (this.isDisposed = !1); + } + var Da, + Sa = (Q.fromEventPattern = function (t, e, n) { + return new xa(t, e, n).publish().refCount(); + }), + ka = + (o(Fa, (Da = r)), + (Fa.prototype.subscribeCore = function (e) { + var n = new E(), + r = this, + t = this._p; + return ( + g(t) && (t = v(t)()) === m + ? e.onError(t.e) + : t.then( + function (t) { + n.setDisposable(r._s.schedule([e, t], Qa)); + }, + function (t) { + n.setDisposable(r._s.schedule([e, t], _a)); + }, + ), + n + ); + }), + Fa); + function Fa(t, e) { + (this._p = t), (this._s = e), Da.call(this); + } + function Qa(t, e) { + var n = e[0], + e = e[1]; + n.onNext(e), n.onCompleted(); + } + function _a(t, e) { + var n = e[0], + e = e[1]; + n.onError(e); + } + var Ta, + _ = (Q.fromPromise = function (t, e) { + return new ka(t, (e = e || ce)); + }), + Ra = + ((a.toPromise = function (t) { + if (!(t = t || s.config.Promise)) + throw new tt('Promise type not provided nor in Rx.config.Promise'); + var r = this; + return new t(function (t, e) { + var n; + r.subscribe( + function (t) { + n = t; + }, + e, + function () { + t(n); + }, + ); + }); + }), + (Q.startAsync = function (t) { + t = v(t)(); + return t === m ? ir(t.e) : _(t); + }), + o(Ua, (Ta = r)), + (Ua.prototype.subscribeCore = function (t) { + var e = this.source.multicast(this._fn1()); + return new C(this._fn2(e).subscribe(t), e.connect()); + }), + Ua); + function Ua(t, e, n) { + (this.source = t), (this._fn1 = e), (this._fn2 = n), Ta.call(this); + } + (a.multicast = function (t, e) { + return g(t) ? new Ra(this, t, e) : new Ga(this, t); + }), + (a.publish = function (t) { + return t && g(t) + ? this.multicast(function () { + return new R(); + }, t) + : this.multicast(new R()); + }), + (a.share = function () { + return this.publish().refCount(); + }), + (a.publishLast = function (t) { + return t && g(t) + ? this.multicast(function () { + return new Vs(); + }, t) + : this.multicast(new Vs()); + }), + (a.publishValue = function (t, e) { + return 2 === arguments.length + ? this.multicast(function () { + return new Xs(e); + }, t) + : this.multicast(new Xs(t)); + }), + (a.shareValue = function (t) { + return this.publishValue(t).refCount(); + }), + (a.replay = function (t, e, n, r) { + return t && g(t) + ? this.multicast(function () { + return new rl(e, n, r); + }, t) + : this.multicast(new rl(e, n, r)); + }), + (a.shareReplay = function (t, e, n) { + return this.replay(null, t, e, n).refCount(); + }); + o(La, (Na = r)), + (La.prototype.subscribeCore = function (t) { + t = this.source.subscribe(t); + return ( + 1 == ++this._count && + (this._connectableSubscription = this.source.connect()), + new Ya(this, t) + ); + }), + (Ya.prototype.dispose = function () { + this.isDisposed || + ((this.isDisposed = !0), + this._s.dispose(), + 0 == --this._p._count && this._p._connectableSubscription.dispose()); + }); + var Na, + Pa = La; + function La(t) { + (this.source = t), + (this._count = 0), + (this._connectableSubscription = null), + Na.call(this); + } + function Ya(t, e) { + (this._p = t), (this._s = e), (this.isDisposed = !1); + } + var Oa, + Ga = (s.ConnectableObservable = + (o(za, (Oa = Q)), + (Ha.prototype.dispose = function () { + this._s && + (this._s.dispose(), (this._s = null), (this._p._connection = null)); + }), + (za.prototype.connect = function () { + if (!this._connection) { + if (this._subject.isStopped) return y; + var t = this._source.subscribe(this._subject); + this._connection = new Ha(this, t); + } + return this._connection; + }), + (za.prototype._subscribe = function (t) { + return this._subject.subscribe(t); + }), + (za.prototype.refCount = function () { + return new Pa(this); + }), + za)); + function za(t, e) { + (this.source = t), + (this._connection = null), + (this._source = t.asObservable()), + (this._subject = e), + Oa.call(this); + } + function Ha(t, e) { + (this._p = t), (this._s = e); + } + o(qa, (ja = r)), + (qa.prototype.subscribeCore = function (t) { + return this._s.scheduleFuture(t, this._dt, Wa); + }); + var ja, + Va = qa; + function qa(t, e) { + (this._dt = t), (this._s = e), ja.call(this); + } + function Wa(t, e) { + e.onNext(0), e.onCompleted(); + } + function Ja(t, e, a) { + return new T(function (r) { + var i = t, + o = Lt(e); + return a.scheduleRecursiveFuture(0, i, function (t, e) { + var n; + 0 < o && + ((n = a.now()), + (i = new Date(i.getTime() + o)).getTime() <= n && + (i = new Date(n + o))), + r.onNext(t), + e(t + 1, new Date(i)); + }); + }); + } + function Ka(t, n, r) { + return t === n + ? new T(function (e) { + return r.schedulePeriodic(0, n, function (t) { + return e.onNext(t), t + 1; + }); + }) + : dn(function () { + return Ja(new Date(r.now() + t), n, r); + }); + } + var Za = (Q.interval = function (t, e) { + return Ka(t, t, I(e) ? e : ce); + }); + Q.timer = function (t, e, n) { + var r; + return ( + I(n) || (n = ce), + null != e && 'number' == typeof e ? (r = e) : I(e) && (n = e), + (t instanceof Date || 'number' == typeof t) && r === f + ? new Va(t, n) + : t instanceof Date && r !== f + ? Ja(t, e, n) + : Ka(t, r, n) + ); + }; + function Xa(e, r, A) { + return new T(function (a) { + var s = !1, + n = new B(), + l = null, + u = [], + c = !1, + t = e + .materialize() + .timestamp(A) + .subscribe(function (t) { + var e; + 'E' === t.value.kind + ? ((u = []).push(t), (l = t.value.error), (e = !c)) + : (u.push({ value: t.value, timestamp: t.timestamp + r }), + (e = !s), + (s = !0)), + e && + (null !== l + ? a.onError(l) + : ((t = new E()), + n.setDisposable(t), + t.setDisposable( + A.scheduleRecursiveFuture(null, r, function (t, e) { + var n, r, i, o; + if (null === l) { + for ( + c = !0; + (i = null) !== + (i = + 0 < u.length && u[0].timestamp - A.now() <= 0 + ? u.shift().value + : i) && i.accept(a), + null !== i; + + ); + (o = !1), + (r = 0) < u.length + ? ((o = !0), + (r = Math.max(0, u[0].timestamp - A.now()))) + : (s = !1), + (c = !1), + null !== (n = l) ? a.onError(n) : o && e(null, r); + } + }), + ))); + }); + return new C(t, n); + }, e); + } + a.delay = function () { + var a, + t, + e, + s, + l, + n, + r, + i, + o = arguments[0]; + if ('number' == typeof o || o instanceof Date) + return ( + (t = o), + I((e = arguments[1])) || (e = ce), + t instanceof Date + ? ((n = this), + (r = t), + (i = e), + dn(function () { + return Xa(n, r - i.now(), i); + })) + : Xa(this, t, e) + ); + if (Q.isObservable(o) || g(o)) + return ( + (a = this), + (t = o), + (e = arguments[1]), + (l = g(t) ? t : ((s = t), e)), + new T(function (r) { + var i = new kt(), + t = !1, + e = new B(); + function n() { + e.setDisposable( + a.subscribe( + function (t) { + var e = v(l)(t); + if (e === m) return r.onError(e.e); + var n = new E(); + i.add(n), + n.setDisposable( + e.subscribe( + function () { + r.onNext(t), i.remove(n), o(); + }, + function (t) { + r.onError(t); + }, + function () { + r.onNext(t), i.remove(n), o(); + }, + ), + ); + }, + function (t) { + r.onError(t); + }, + function () { + (t = !0), e.dispose(), o(); + }, + ), + ); + } + function o() { + t && 0 === i.length && r.onCompleted(); + } + return ( + s + ? e.setDisposable( + s.subscribe( + n, + function (t) { + r.onError(t); + }, + n, + ), + ) + : n(), + new C(e, i) + ); + }, a) + ); + throw new Error('Invalid arguments'); + }; + o(es, ($a = r)), + (es.prototype.subscribeCore = function (t) { + var e = new B(); + return new C(this.source.subscribe(new rs(t, this._dt, this._s, e)), e); + }); + var $a, + ts = es; + function es(t, e, n) { + I(n) || (n = ce), + (this.source = t), + (this._dt = e), + (this._s = n), + $a.call(this); + } + o(is, (ns = k)), + (is.prototype.next = function (n) { + (this._hv = !0), (this._v = n); + var r = ++this._id, + t = new E(); + this._c.setDisposable(t), + t.setDisposable( + this._scheduler.scheduleFuture(this, this._d, function (t, e) { + e._hv && e._id === r && e._o.onNext(n), (e._hv = !1); + }), + ); + }), + (is.prototype.error = function (t) { + this._c.dispose(), this._o.onError(t), (this._hv = !1), this._id++; + }), + (is.prototype.completed = function () { + this._c.dispose(), + this._hv && this._o.onNext(this._v), + this._o.onCompleted(), + (this._hv = !1), + this._id++; + }); + var ns, + rs = is; + function is(t, e, n, r) { + (this._o = t), + (this._d = e), + (this._scheduler = n), + (this._c = r), + (this._v = null), + (this._hv = !1), + (this._id = 0), + ns.call(this); + } + a.debounce = function () { + if (g(arguments[0])) + return ( + (e = this), + (u = arguments[0]), + new T(function (i) { + var o, + a = !1, + s = new B(), + l = 0, + t = e.subscribe( + function (t) { + var e = v(u)(t); + if (e === m) return i.onError(e.e); + d(e) && (e = _(e)), (a = !0), (o = t); + var n = ++l, + r = new E(); + s.setDisposable(r), + r.setDisposable( + e.subscribe( + function () { + a && l === n && i.onNext(o), (a = !1), r.dispose(); + }, + function (t) { + i.onError(t); + }, + function () { + a && l === n && i.onNext(o), (a = !1), r.dispose(); + }, + ), + ); + }, + function (t) { + s.dispose(), i.onError(t), (a = !1), l++; + }, + function () { + s.dispose(), a && i.onNext(o), i.onCompleted(), (a = !1), l++; + }, + ); + return new C(t, s); + }, e) + ); + if ('number' == typeof arguments[0]) + return new ts(this, arguments[0], arguments[1]); + throw new Error('Invalid arguments'); + var e, u; + }; + o(ss, (os = r)), + (ss.prototype.subscribeCore = function (t) { + return this.source.subscribe(new us(t, this._s)); + }); + var os, + as = ss; + function ss(t, e) { + (this.source = t), (this._s = e), os.call(this); + } + o(cs, (ls = k)), + (cs.prototype.next = function (t) { + this._o.onNext({ value: t, timestamp: this._s.now() }); + }), + (cs.prototype.error = function (t) { + this._o.onError(t); + }), + (cs.prototype.completed = function () { + this._o.onCompleted(); + }); + var ls, + us = cs; + function cs(t, e) { + (this._o = t), (this._s = e), ls.call(this); + } + a.timestamp = function (t) { + return I(t) || (t = ce), new as(this, t); + }; + o(ps, (As = r)), + (ps.prototype.subscribeCore = function (t) { + t = { + o: t, + atEnd: !1, + value: null, + hasValue: !1, + sourceSubscription: new E(), + }; + return ( + t.sourceSubscription.setDisposable(this.source.subscribe(new vs(t))), + new C(t.sourceSubscription, this._sampler.subscribe(new fs(t))) + ); + }); + var As, + hs = ps; + function ps(t, e) { + (this.source = t), (this._sampler = e), As.call(this); + } + o(gs, (ds = k)), + (gs.prototype._handleMessage = function () { + this._s.hasValue && + ((this._s.hasValue = !1), this._s.o.onNext(this._s.value)), + this._s.atEnd && this._s.o.onCompleted(); + }), + (gs.prototype.next = function () { + this._handleMessage(); + }), + (gs.prototype.error = function (t) { + this._s.onError(t); + }), + (gs.prototype.completed = function () { + this._handleMessage(); + }); + var ds, + fs = gs; + function gs(t) { + (this._s = t), ds.call(this); + } + o(bs, (ms = k)), + (bs.prototype.next = function (t) { + (this._s.hasValue = !0), (this._s.value = t); + }), + (bs.prototype.error = function (t) { + this._s.o.onError(t); + }), + (bs.prototype.completed = function () { + (this._s.atEnd = !0), this._s.sourceSubscription.dispose(); + }); + var ms, + vs = bs; + function bs(t) { + (this._s = t), ms.call(this); + } + a.sample = function (t, e) { + return I(e) || (e = ce), new hs(this, 'number' == typeof t ? Za(t, e) : t); + }; + var ys = (s.TimeoutError = function (t) { + (this.message = t || 'Timeout has occurred'), + (this.name = 'TimeoutError'), + Error.call(this); + }); + (ys.prototype = Object.create(Error.prototype)), + (a.timeout = function () { + var r, + u, + c, + A, + s, + l, + h, + p, + t = arguments[0]; + if (t instanceof Date || 'number' == typeof t) + return ( + (s = this), + (l = t), + (h = arguments[1]), + (p = arguments[2]), + I(h) && ((p = h), (h = ir(new ys()))), + h instanceof Error && (h = ir(h)), + I(p) || (p = ce), + Q.isObservable(h) || (h = ir(new ys())), + new T(function (e) { + var n = 0, + t = new E(), + r = new B(), + i = !1, + o = new B(); + function a() { + var t = n; + o.setDisposable( + p.scheduleFuture(null, l, function () { + (i = n === t) && + (d(h) && (h = _(h)), r.setDisposable(h.subscribe(e))); + }), + ); + } + return ( + r.setDisposable(t), + a(), + t.setDisposable( + s.subscribe( + function (t) { + i || (n++, e.onNext(t), a()); + }, + function (t) { + i || (n++, e.onError(t)); + }, + function () { + i || (n++, e.onCompleted()); + }, + ), + ), + new C(r, o) + ); + }, s) + ); + if (Q.isObservable(t) || g(t)) + return ( + (r = this), + (u = t), + (c = arguments[1]), + (A = arguments[2]), + g(u) && ((A = c), (c = u), (u = Nn())), + Q.isObservable(A) || (A = ir(new ys())), + new T(function (i) { + var o = new B(), + a = new B(), + t = new E(), + s = (o.setDisposable(t), 0), + l = !1; + function e(t) { + var e = s, + n = new E(); + function r() { + return (l = e === s); + } + a.setDisposable(n), + n.setDisposable( + t.subscribe( + function () { + r() && o.setDisposable(A.subscribe(i)), n.dispose(); + }, + function (t) { + r() && i.onError(t); + }, + function () { + r() && o.setDisposable(A.subscribe(i)); + }, + ), + ); + } + function n() { + var t = !l; + return t && s++, t; + } + return ( + e(u), + t.setDisposable( + r.subscribe( + function (t) { + if (n()) { + i.onNext(t); + t = v(c)(t); + if (t === m) return i.onError(t.e); + e(d(t) ? _(t) : t); + } + }, + function (t) { + n() && i.onError(t); + }, + function () { + n() && i.onCompleted(); + }, + ), + ), + new C(o, a) + ); + }, r) + ); + throw new Error('Invalid arguments'); + }), + (a.throttle = function (t, i) { + I(i) || (i = ce); + var o = +t || 0; + if (o <= 0) + throw new RangeError('windowDuration cannot be less or equal zero.'); + var e = this; + return new T(function (n) { + var r = 0; + return e.subscribe( + function (t) { + var e = i.now(); + (0 === r || o <= e - r) && ((r = e), n.onNext(t)); + }, + function (t) { + n.onError(t); + }, + function () { + n.onCompleted(); + }, + ); + }, e); + }); + o(Bs, (ws = Q)), + (Bs.prototype._subscribe = function (t) { + var e = this.source.publish(), + t = e.subscribe(t), + n = y, + r = this.pauser + .startWith(!this.paused) + .distinctUntilChanged() + .subscribe(function (t) { + n = t ? e.connect() : (n.dispose(), y); + }); + return new x([t, n, r]); + }), + (Bs.prototype.pause = function () { + (this.paused = !0), this.controller.onNext(!1); + }), + (Bs.prototype.resume = function () { + (this.paused = !1), this.controller.onNext(!0); + }); + var ws, + Es = Bs; + function Bs(t, e) { + (this.source = t), + (this.controller = new R()), + (this.paused = !0), + e && e.subscribe + ? (this.pauser = this.controller.merge(e)) + : (this.pauser = this.controller), + ws.call(this); + } + a.pausable = function (t) { + return new Es(this, t); + }; + o(Is, (Cs = Q)), + (Is.prototype._subscribe = function (e) { + var n, + t, + l, + u, + r = []; + function i() { + for (; 0 < r.length; ) e.onNext(r.shift()); + } + return ( + (t = this.source), + (l = this.pauser.startWith(!this.paused).distinctUntilChanged()), + (u = function (t, e) { + return { data: t, shouldFire: e }; + }), + new T(function (n) { + var r, + i = [!1, !1], + o = !1, + a = !1, + s = new Array(2); + function e(t, e) { + if (((s[e] = t), (i[e] = !0), (o = o || i.every(c)))) { + if (r) return n.onError(r); + t = v(u).apply(null, s); + if (t === m) return n.onError(t.e); + n.onNext(t); + } + a && s[1] && n.onCompleted(); + } + return new C( + t.subscribe( + function (t) { + e(t, 0); + }, + function (t) { + s[1] ? n.onError(t) : (r = t); + }, + function () { + (a = !0), s[1] && n.onCompleted(); + }, + ), + l.subscribe( + function (t) { + e(t, 1); + }, + function (t) { + n.onError(t); + }, + function () { + e((a = !0), 1); + }, + ), + ); + }, t).subscribe( + function (t) { + n !== f && t.shouldFire !== n + ? ((n = t.shouldFire), t.shouldFire && i()) + : ((n = t.shouldFire), + t.shouldFire ? e.onNext(t.data) : r.push(t.data)); + }, + function (t) { + i(), e.onError(t); + }, + function () { + i(), e.onCompleted(); + }, + ) + ); + }), + (Is.prototype.pause = function () { + (this.paused = !0), this.controller.onNext(!1); + }), + (Is.prototype.resume = function () { + (this.paused = !1), this.controller.onNext(!0); + }); + var Cs, + xs = Is; + function Is(t, e) { + (this.source = t), + (this.controller = new R()), + (this.paused = !0), + e && e.subscribe + ? (this.pauser = this.controller.merge(e)) + : (this.pauser = this.controller), + Cs.call(this); + } + a.pausableBuffered = function (t) { + return new xs(this, t); + }; + o(Ss, (Ms = Q)), + (Ss.prototype._subscribe = function (t) { + return this.source.subscribe(t); + }), + (Ss.prototype.request = function (t) { + return this.subject.request(null == t ? -1 : t); + }); + var Ms, + Ds = Ss; + function Ss(t, e, n) { + Ms.call(this), + (this.subject = new Fs(e, n)), + (this.source = t.multicast(this.subject).refCount()); + } + o(Qs, (ks = Q)), + n(Qs.prototype, e, { + _subscribe: function (t) { + return this.subject.subscribe(t); + }, + onCompleted: function () { + (this.hasCompleted = !0), + this.enableQueue && 0 !== this.queue.length + ? this.queue.push(pe.createOnCompleted()) + : (this.subject.onCompleted(), this.disposeCurrentRequest()); + }, + onError: function (t) { + (this.hasFailed = !0), + (this.error = t), + this.enableQueue && 0 !== this.queue.length + ? this.queue.push(pe.createOnError(t)) + : (this.subject.onError(t), this.disposeCurrentRequest()); + }, + onNext: function (t) { + this.requestedCount <= 0 + ? this.enableQueue && this.queue.push(pe.createOnNext(t)) + : (0 == this.requestedCount-- && this.disposeCurrentRequest(), + this.subject.onNext(t)); + }, + _processRequest: function (t) { + if (this.enableQueue) + for ( + ; + 0 < this.queue.length && (0 < t || 'N' !== this.queue[0].kind); + + ) { + var e = this.queue.shift(); + e.accept(this.subject), + 'N' === e.kind + ? t-- + : (this.disposeCurrentRequest(), (this.queue = [])); + } + return t; + }, + request: function (t) { + this.disposeCurrentRequest(); + var n = this; + return ( + (this.requestedDisposable = this.scheduler.schedule( + t, + function (t, e) { + e = n._processRequest(e); + if (!(n.hasCompleted || n.hasFailed) && 0 < e) + return ( + (n.requestedCount = e), + Qt(function () { + n.requestedCount = 0; + }) + ); + }, + )), + this.requestedDisposable + ); + }, + disposeCurrentRequest: function () { + this.requestedDisposable && + (this.requestedDisposable.dispose(), + (this.requestedDisposable = null)); + }, + }); + var ks, + Fs = Qs; + function Qs(t, e) { + null == t && (t = !0), + ks.call(this), + (this.subject = new R()), + (this.enableQueue = t), + (this.queue = t ? [] : null), + (this.requestedCount = 0), + (this.requestedDisposable = null), + (this.error = null), + (this.hasFailed = !1), + (this.hasCompleted = !1), + (this.scheduler = e || D); + } + (a.controlled = function (t, e) { + return ( + t && I(t) && ((e = t), (t = !0)), + new Ds(this, (t = null == t ? !0 : t), e) + ); + }), + (a.pipe = function (e) { + var n = this.pausableBuffered(); + function t() { + n.resume(); + } + return ( + e.addListener('drain', t), + n.subscribe( + function (t) { + e.write(t) || n.pause(); + }, + function (t) { + e.emit('error', t); + }, + function () { + e._isStdio || e.end(), e.removeListener('drain', t); + }, + ), + n.resume(), + e + ); + }); + o(Rs, (_s = k)), + (Rs.prototype.next = function (t) { + t = v(this._xform['@@transducer/step']).call(this._xform, this._o, t); + t === m && this._o.onError(t.e); + }), + (Rs.prototype.error = function (t) { + this._o.onError(t); + }), + (Rs.prototype.completed = function () { + this._xform['@@transducer/result'](this._o); + }); + var _s, + Ts = Rs; + function Rs(t, e) { + (this._o = t), (this._xform = e), _s.call(this); + } + a.transduce = function (r) { + var i = this; + return new T(function (t) { + var e, + n = r( + ((e = t), + { + '@@transducer/init': function () { + return e; + }, + '@@transducer/step': function (t, e) { + return t.onNext(e); + }, + '@@transducer/result': function (t) { + return t.onCompleted(); + }, + }), + ); + return i.subscribe(new Ts(t, n)); + }, i); + }; + var Us, + T = (s.AnonymousObservable = + (o(Ps, (Us = Q)), + (Ps.prototype._subscribe = function (t) { + var t = new Ys(t), + e = [t, this]; + return D.scheduleRequired() ? D.schedule(e, Ns) : Ns(0, e), t; + }), + Ps)); + function Ns(t, e) { + var n = e[0], + e = e[1], + e = v(e.__subscribe).call(e, n); + e !== m || n.fail(m.e) || h(m.e), + n.setDisposable((n = e) && g(n.dispose) ? n : g(n) ? Qt(n) : y); + } + function Ps(t, e) { + (this.source = e), (this.__subscribe = t), Us.call(this); + } + o(Os, (Ls = k)), + ((t = Os.prototype).next = function (t) { + t = v(this.observer.onNext).call(this.observer, t); + t === m && (this.dispose(), h(t.e)); + }), + (t.error = function (t) { + t = v(this.observer.onError).call(this.observer, t); + this.dispose(), t === m && h(t.e); + }), + (t.completed = function () { + var t = v(this.observer.onCompleted).call(this.observer); + this.dispose(), t === m && h(t.e); + }), + (t.setDisposable = function (t) { + this.m.setDisposable(t); + }), + (t.getDisposable = function () { + return this.m.getDisposable(); + }), + (t.dispose = function () { + Ls.prototype.dispose.call(this), this.m.dispose(); + }); + var Ls, + Ys = Os; + function Os(t) { + Ls.call(this), (this.observer = t), (this.m = new E()); + } + function Gs(t, e) { + (this._s = t), (this._o = e); + } + Gs.prototype.dispose = function () { + var t; + this._s.isDisposed || + null === this._o || + ((t = this._s.observers.indexOf(this._o)), + this._s.observers.splice(t, 1), + (this._o = null)); + }; + var zs, + R = (s.Subject = + (o(Hs, (zs = Q)), + n(Hs.prototype, e.prototype, { + _subscribe: function (t) { + return ( + w(this), + this.isStopped + ? (this.hasError ? t.onError(this.error) : t.onCompleted(), y) + : (this.observers.push(t), new Gs(this, t)) + ); + }, + hasObservers: function () { + return w(this), 0 < this.observers.length; + }, + onCompleted: function () { + if ((w(this), !this.isStopped)) { + this.isStopped = !0; + for (var t = 0, e = A(this.observers), n = e.length; t < n; t++) + e[t].onCompleted(); + this.observers.length = 0; + } + }, + onError: function (t) { + if ((w(this), !this.isStopped)) { + (this.isStopped = !0), (this.error = t), (this.hasError = !0); + for (var e = 0, n = A(this.observers), r = n.length; e < r; e++) + n[e].onError(t); + this.observers.length = 0; + } + }, + onNext: function (t) { + if ((w(this), !this.isStopped)) + for (var e = 0, n = A(this.observers), r = n.length; e < r; e++) + n[e].onNext(t); + }, + dispose: function () { + (this.isDisposed = !0), (this.observers = null); + }, + }), + (Hs.create = function (t, e) { + return new Js(t, e); + }), + Hs)); + function Hs() { + zs.call(this), + (this.isDisposed = !1), + (this.isStopped = !1), + (this.observers = []), + (this.hasError = !1); + } + var js, + Vs = (s.AsyncSubject = + (o(qs, (js = Q)), + n(qs.prototype, e.prototype, { + _subscribe: function (t) { + return ( + w(this), + this.isStopped + ? (this.hasError + ? t.onError(this.error) + : (this.hasValue && t.onNext(this.value), t.onCompleted()), + y) + : (this.observers.push(t), new Gs(this, t)) + ); + }, + hasObservers: function () { + return w(this), 0 < this.observers.length; + }, + onCompleted: function () { + var t; + if ((w(this), !this.isStopped)) { + this.isStopped = !0; + var e = A(this.observers), + n = e.length; + if (this.hasValue) + for (t = 0; t < n; t++) { + var r = e[t]; + r.onNext(this.value), r.onCompleted(); + } + else for (t = 0; t < n; t++) e[t].onCompleted(); + this.observers.length = 0; + } + }, + onError: function (t) { + if ((w(this), !this.isStopped)) { + (this.isStopped = !0), (this.hasError = !0), (this.error = t); + for (var e = 0, n = A(this.observers), r = n.length; e < r; e++) + n[e].onError(t); + this.observers.length = 0; + } + }, + onNext: function (t) { + w(this), this.isStopped || ((this.value = t), (this.hasValue = !0)); + }, + dispose: function () { + (this.isDisposed = !0), + (this.observers = null), + (this.error = null), + (this.value = null); + }, + }), + qs)); + function qs() { + js.call(this), + (this.isDisposed = !1), + (this.isStopped = !1), + (this.hasValue = !1), + (this.observers = []), + (this.hasError = !1); + } + var Ws, + Js = (s.AnonymousSubject = + (o(Ks, (Ws = Q)), + n(Ks.prototype, e.prototype, { + _subscribe: function (t) { + return this.observable.subscribe(t); + }, + onCompleted: function () { + this.observer.onCompleted(); + }, + onError: function (t) { + this.observer.onError(t); + }, + onNext: function (t) { + this.observer.onNext(t); + }, + }), + Ks)); + function Ks(t, e) { + (this.observer = t), (this.observable = e), Ws.call(this); + } + var Zs, + Xs = (s.BehaviorSubject = + (o($s, (Zs = Q)), + n($s.prototype, e.prototype, { + _subscribe: function (t) { + return ( + w(this), + this.isStopped + ? (this.hasError ? t.onError(this.error) : t.onCompleted(), y) + : (this.observers.push(t), t.onNext(this.value), new Gs(this, t)) + ); + }, + getValue: function () { + return w(this), this.hasError && h(this.error), this.value; + }, + hasObservers: function () { + return w(this), 0 < this.observers.length; + }, + onCompleted: function () { + if ((w(this), !this.isStopped)) { + this.isStopped = !0; + for (var t = 0, e = A(this.observers), n = e.length; t < n; t++) + e[t].onCompleted(); + this.observers.length = 0; + } + }, + onError: function (t) { + if ((w(this), !this.isStopped)) { + (this.isStopped = !0), (this.hasError = !0), (this.error = t); + for (var e = 0, n = A(this.observers), r = n.length; e < r; e++) + n[e].onError(t); + this.observers.length = 0; + } + }, + onNext: function (t) { + if ((w(this), !this.isStopped)) { + this.value = t; + for (var e = 0, n = A(this.observers), r = n.length; e < r; e++) + n[e].onNext(t); + } + }, + dispose: function () { + (this.isDisposed = !0), + (this.observers = null), + (this.value = null), + (this.error = null); + }, + }), + $s)); + function $s(t) { + Zs.call(this), + (this.value = t), + (this.observers = []), + (this.isDisposed = !1), + (this.isStopped = !1), + (this.hasError = !1); + } + var tl, + el, + nl, + rl = (s.ReplaySubject = + ((tl = Q), + (el = Math.pow(2, 53) - 1), + o(il, tl), + n(il.prototype, e.prototype, { + _subscribe: function (t) { + w(this); + var e, + n, + r = new ke(this.scheduler, t), + t = + ((e = this), + (n = r), + Qt(function () { + n.dispose(), + e.isDisposed || e.observers.splice(e.observers.indexOf(n), 1); + })); + this._trim(this.scheduler.now()), this.observers.push(r); + for (var i = 0, o = this.q.length; i < o; i++) + r.onNext(this.q[i].value); + return ( + this.hasError + ? r.onError(this.error) + : this.isStopped && r.onCompleted(), + r.ensureActive(), + t + ); + }, + hasObservers: function () { + return w(this), 0 < this.observers.length; + }, + _trim: function (t) { + for (; this.q.length > this.bufferSize; ) this.q.shift(); + for ( + ; + 0 < this.q.length && t - this.q[0].interval > this.windowSize; + + ) + this.q.shift(); + }, + onNext: function (t) { + if ((w(this), !this.isStopped)) { + var e = this.scheduler.now(); + this.q.push({ interval: e, value: t }), this._trim(e); + for (var n = 0, r = A(this.observers), i = r.length; n < i; n++) { + var o = r[n]; + o.onNext(t), o.ensureActive(); + } + } + }, + onError: function (t) { + if ((w(this), !this.isStopped)) { + (this.isStopped = !0), (this.error = t), (this.hasError = !0); + var e = this.scheduler.now(); + this._trim(e); + for (var n = 0, r = A(this.observers), i = r.length; n < i; n++) { + var o = r[n]; + o.onError(t), o.ensureActive(); + } + this.observers.length = 0; + } + }, + onCompleted: function () { + if ((w(this), !this.isStopped)) { + this.isStopped = !0; + var t = this.scheduler.now(); + this._trim(t); + for (var e = 0, n = A(this.observers), r = n.length; e < r; e++) { + var i = n[e]; + i.onCompleted(), i.ensureActive(); + } + this.observers.length = 0; + } + }, + dispose: function () { + (this.isDisposed = !0), (this.observers = null); + }, + }), + il)); + function il(t, e, n) { + (this.bufferSize = null == t ? el : t), + (this.windowSize = null == e ? el : e), + (this.scheduler = n || D), + (this.q = []), + (this.observers = []), + (this.isStopped = !1), + (this.isDisposed = !1), + (this.hasError = !1), + (this.error = null), + tl.call(this); + } + function ol() { + nl.call(this); + } + (s.Pauser = + (o(ol, (nl = R)), + (ol.prototype.pause = function () { + this.onNext(!1); + }), + (ol.prototype.resume = function () { + this.onNext(!0); + }), + ol)), + (U.Rx = s); + var al = V(); + }.call(this, t, J), + t.Rx); + function K(t, e, n) { + var e = (e = (e |= 0) <= 0 ? 1 : e) * n, + r = t(e); + return { + elementSize: n, + chunkSize: e, + creator: t, + current: r, + parts: [r], + currentIndex: 0, + elementCount: 0, + }; + } + function Z(t, e, n) { + var r = 0, + i = 1; + for (45 === t.charCodeAt(e) && ((i = -1), e++); e < n; e++) { + var o = t.charCodeAt(e) - 48; + if (9 < o || o < 0) return (i * r) | 0; + r = (10 * r + o) | 0; + } + return i * r; + } + function X(t, e, n, r) { + return 43 === e.charCodeAt(n) && n++, t * Math.pow(10, Z(e, n, r)); + } + function $(t, e, n) { + var r = 1, + i = 0, + o = 0, + a = 1; + for (45 === t.charCodeAt(e) && ((r = -1), ++e); e < n; ) { + var s = t.charCodeAt(e) - 48; + if (!(0 <= s && s < 10)) { + if (-2 === s) { + for (++e; e < n; ) { + if (!(0 <= (s = t.charCodeAt(e) - 48) && s < 10)) + return 53 === s || 21 === s + ? X(r * (i + o / a), t, e + 1, n) + : r * (i + o / a); + (o = 10 * o + s), (a *= 10), ++e; + } + return r * (i + o / a); + } + if (53 === s || 21 === s) return X(r * i, t, e + 1, n); + break; + } + (i = 10 * i + s), ++e; + } + return r * i; + } + ((w = w || {}).VERSION = { number: '1.1.6', date: 'June 26 2017' }), + ((e = + (e = (e = w = w || {}).Utils || (e.Utils = {})).ChunkedArray || + (e.ChunkedArray = {})).is = function (t) { + return t.creator && t.chunkSize; + }), + (e.add4 = function (t, e, n, r, i) { + return ( + t.currentIndex >= t.chunkSize && + ((t.currentIndex = 0), + (t.current = t.creator(t.chunkSize)), + (t.parts[t.parts.length] = t.current)), + (t.current[t.currentIndex++] = e), + (t.current[t.currentIndex++] = n), + (t.current[t.currentIndex++] = r), + (t.current[t.currentIndex++] = i), + t.elementCount++ + ); + }), + (e.add3 = function (t, e, n, r) { + return ( + t.currentIndex >= t.chunkSize && + ((t.currentIndex = 0), + (t.current = t.creator(t.chunkSize)), + (t.parts[t.parts.length] = t.current)), + (t.current[t.currentIndex++] = e), + (t.current[t.currentIndex++] = n), + (t.current[t.currentIndex++] = r), + t.elementCount++ + ); + }), + (e.add2 = function (t, e, n) { + return ( + t.currentIndex >= t.chunkSize && + ((t.currentIndex = 0), + (t.current = t.creator(t.chunkSize)), + (t.parts[t.parts.length] = t.current)), + (t.current[t.currentIndex++] = e), + (t.current[t.currentIndex++] = n), + t.elementCount++ + ); + }), + (e.add = function (t, e) { + return ( + t.currentIndex >= t.chunkSize && + ((t.currentIndex = 0), + (t.current = t.creator(t.chunkSize)), + (t.parts[t.parts.length] = t.current)), + (t.current[t.currentIndex++] = e), + t.elementCount++ + ); + }), + (e.compact = function (t) { + var e = t.creator(t.elementSize * t.elementCount), + n = (t.parts.length - 1) * t.chunkSize; + if (1 < t.parts.length) + if (t.parts[0].buffer) + for (var r = 0; r < t.parts.length - 1; r++) + e.set(t.parts[r], t.chunkSize * r); + else + for (r = 0; r < t.parts.length - 1; r++) + for (var i = t.chunkSize * r, o = t.parts[r], a = 0; a < t.chunkSize; a++) + e[i + a] = o[a]; + if (t.current.buffer && t.currentIndex >= t.chunkSize) + e.set(t.current, t.chunkSize * (t.parts.length - 1)); + else for (r = 0; r < t.currentIndex; r++) e[n + r] = t.current[r]; + return e; + }), + (e.forVertex3D = function (t) { + return K( + function (t) { + return new Float32Array(t); + }, + (t = void 0 === t ? 262144 : t), + 3, + ); + }), + (e.forIndexBuffer = function (t) { + return K( + function (t) { + return new Uint32Array(t); + }, + (t = void 0 === t ? 262144 : t), + 3, + ); + }), + (e.forTokenIndices = function (t) { + return K( + function (t) { + return new Int32Array(t); + }, + (t = void 0 === t ? 131072 : t), + 2, + ); + }), + (e.forIndices = function (t) { + return K( + function (t) { + return new Int32Array(t); + }, + (t = void 0 === t ? 131072 : t), + 1, + ); + }), + (e.forInt32 = function (t) { + return K( + function (t) { + return new Int32Array(t); + }, + (t = void 0 === t ? 131072 : t), + 1, + ); + }), + (e.forFloat32 = function (t) { + return K( + function (t) { + return new Float32Array(t); + }, + (t = void 0 === t ? 131072 : t), + 1, + ); + }), + (e.forArray = function (t) { + return K( + function (t) { + return []; + }, + (t = void 0 === t ? 131072 : t), + 1, + ); + }), + (e.create = K), + ((e = + (e = (e = w = w || {}).Utils || (e.Utils = {})).FastNumberParsers || + (e.FastNumberParsers = {})).parseIntSkipTrailingWhitespace = function ( + t, + e, + n, + ) { + for (; e < n && 32 === t.charCodeAt(e); ) e++; + return Z(t, e, n); + }), + (e.parseInt = Z), + (e.parseFloatSkipTrailingWhitespace = function (t, e, n) { + for (; e < n && 32 === t.charCodeAt(e); ) e++; + return $(t, e, n); + }), + (e.parseFloat = $); + for ( + var e = (e = w = w || {}).Utils || (e.Utils = {}), tt = [], et = '', rt = 0; + rt < 512; + rt++ + ) + (tt[rt] = et), (et += ' '); + function it(t, e) { + null != e && + (t.chunkOffset === t.chunkCapacity && + ((t.data[t.data.length] = t.chunkData.join('')), (t.chunkOffset = 0)), + (t.chunkData[t.chunkOffset++] = e)); + } + function ot() { + this.isDefined = !1; + } + function at(t, e) { + (this.message = t), (this.line = e), (this.isError = !0); + } + function st(t) { + for (; t.position < t.length; ) + switch (t.data.charCodeAt(t.position)) { + case 9: + case 10: + case 13: + case 32: + return void (t.currentTokenEnd = t.position); + default: + ++t.position; + } + t.currentTokenEnd = t.position; + } + function lt(t) { + for (var e = t.currentTokenStart; e < t.currentTokenEnd; ++e) + if (46 === t.data.charCodeAt(e)) return e; + return e; + } + function ut(t, e) { + return t.data.substring(t.currentTokenStart, e); + } + function ct(t) { + return t.data.substring(t.currentTokenStart, t.currentTokenEnd); + } + function At(t) { + var e = (function (t) { + for (var e = 10; t.position < t.length; ) { + var n = t.data.charCodeAt(t.position); + switch (n) { + case 9: + case 32: + (e = n), ++t.position; + break; + case 10: + 13 !== e && ++t.currentLineNumber, (e = n), ++t.position; + break; + case 13: + (e = n), ++t.position, ++t.currentLineNumber; + break; + default: + return e; + } + } + return e; + })(t); + if (t.position >= t.length) t.currentTokenType = 6; + else { + (t.currentTokenStart = t.position), + (t.currentTokenEnd = t.position), + (t.isEscaped = !1); + var n, + r, + i = t.data.charCodeAt(t.position); + switch (i) { + case 35: + !(function (t) { + for (; t.position < t.length; ) { + var e = t.data.charCodeAt(t.position); + if (10 === e || 13 === e) return; + ++t.position; + } + })(t), + (t.currentTokenType = 5); + break; + case 34: + case 39: + !(function (t, e) { + var n, r; + for (++t.position; t.position < t.length; ) + if ((r = t.data.charCodeAt(t.position)) === e) + switch ((n = t.data.charCodeAt(t.position + 1))) { + case 9: + case 10: + case 13: + case 32: + return ( + t.currentTokenStart++, + (t.currentTokenEnd = t.position), + (t.isEscaped = !0), + ++t.position + ); + default: + if (void 0 === n) + return ( + t.currentTokenStart++, + (t.currentTokenEnd = t.position), + (t.isEscaped = !0), + ++t.position + ); + ++t.position; + } + else { + if (10 === r || 13 === r) return (t.currentTokenEnd = t.position); + ++t.position; + } + t.currentTokenEnd = t.position; + })(t, i), + (t.currentTokenType = 3); + break; + case 59: + (10 === e || 13 === e + ? function (t) { + for (var e, n = 59, r = t.position + 1; r < t.length; ) { + if (59 === (e = t.data.charCodeAt(r)) && (10 === n || 13 === n)) { + for ( + t.position = r + 1, + t.currentTokenStart++, + r--, + e = t.data.charCodeAt(r); + 10 === e || 13 === e; + + ) + r--, (e = t.data.charCodeAt(r)); + return (t.currentTokenEnd = r + 1), (t.isEscaped = !0); + } + (13 === e || (10 === e && 13 !== n)) && t.currentLineNumber++, + (n = e), + ++r; + } + t.position = r; + } + : st)(t), + (t.currentTokenType = 3); + break; + default: + st(t), + t.isEscaped + ? (t.currentTokenType = 3) + : 95 === t.data.charCodeAt(t.currentTokenStart) + ? (t.currentTokenType = 4) + : 5 <= t.currentTokenEnd - t.currentTokenStart && + 95 === t.data.charCodeAt(t.currentTokenStart + 4) + ? (68 !== (r = (n = t).data.charCodeAt(n.currentTokenStart)) && + 100 !== r) || + (65 !== (r = n.data.charCodeAt(n.currentTokenStart + 1)) && + 97 !== r) || + (84 !== (r = n.data.charCodeAt(n.currentTokenStart + 2)) && + 116 !== r) || + (65 !== (r = n.data.charCodeAt(n.currentTokenStart + 3)) && + 97 !== r) + ? (83 !== (r = (n = t).data.charCodeAt(n.currentTokenStart)) && + 115 !== r) || + (65 !== (r = n.data.charCodeAt(n.currentTokenStart + 1)) && + 97 !== r) || + (86 !== (r = n.data.charCodeAt(n.currentTokenStart + 2)) && + 118 !== r) || + (69 !== (r = n.data.charCodeAt(n.currentTokenStart + 3)) && + 101 !== r) + ? !(function (t) { + var e; + if (t.currentTokenEnd - t.currentTokenStart == 5) + return 76 === + (e = t.data.charCodeAt(t.currentTokenStart)) || + 108 === e + ? (79 === + (e = t.data.charCodeAt(t.currentTokenStart + 1)) || + 111 === e) && + (79 === + (e = t.data.charCodeAt( + t.currentTokenStart + 2, + )) || + 111 === e) && + (80 === + (e = t.data.charCodeAt( + t.currentTokenStart + 3, + )) || + 112 === e) + : void 0; + })(t) + ? (t.currentTokenType = 3) + : (t.currentTokenType = 2) + : (t.currentTokenType = 1) + : (t.currentTokenType = 0) + : (t.currentTokenType = 3); + } + } + } + function ht(t) { + for (At(t); 5 === t.currentTokenType; ) At(t); + } + function pt(t, e) { + for ( + var n, + r = t.currentTokenStart, + i = lt(t), + o = ut(t, i), + a = [], + s = N.create(512), + l = 0, + u = !0; + u; + + ) { + if ( + 4 !== t.currentTokenType || + !(function (t, e, n) { + var r, + i = n - e, + o = t.currentTokenStart - e, + a = t.currentTokenEnd - t.currentTokenStart; + if (!(a < i)) { + for (r = e; r < n; ++r) + if (t.data.charCodeAt(r) !== t.data.charCodeAt(r + o)) return; + return i == a || 46 === t.data.charCodeAt(r + o); + } + })(t, r, i) + ) { + u = !1; + break; + } + if (((n = ct(t)), ht(t), 3 !== t.currentTokenType)) + return { + hasError: !0, + errorLine: t.currentLineNumber, + errorMessage: 'Expected value.', + }; + (a[a.length] = n), + N.addToken(s, t.currentTokenStart, t.currentTokenEnd), + l++, + ht(t); + } + return ( + e.addCategory( + new U.Category(e.data, o, r, t.currentTokenStart, a, s.tokens, l), + ), + { hasError: !1, errorLine: 0, errorMessage: '' } + ); + } + function dt(t, e) { + return R.ParserResult.error(e, t); + } + function ft(t) { + var e, + n, + r, + i = { + data: t, + length: t.length, + position: 0, + currentTokenStart: 0, + currentTokenEnd: 0, + currentTokenType: 6, + currentLineNumber: 1, + isEscaped: !1, + }, + o = new U.File(t), + a = new U.DataBlock(t, 'default'), + s = new U.DataBlock(t, 'empty'), + l = !1; + for (ht(i); 6 !== i.currentTokenType; ) { + var u = i.currentTokenType; + if (0 === u) { + if (l) + return dt( + i.currentLineNumber, + 'Unexpected data block inside a save frame.', + ); + 0 < a.categories.length && o.dataBlocks.push(a), + (a = new U.DataBlock( + t, + t.substring(i.currentTokenStart + 5, i.currentTokenEnd), + )), + ht(i); + } else if (1 === u) { + if ( + 0 === (n = t.substring(i.currentTokenStart + 5, i.currentTokenEnd)).length + ) + 0 < s.categories.length && + ((r = a.additionalData.saveFrames) || + (a.additionalData.saveFrames = r = []), + (r[r.length] = s)), + (l = !1); + else { + if (l) return dt(i.currentLineNumber, 'Save frames cannot be nested.'); + (l = !0), (s = new U.DataBlock(t, n)); + } + ht(i); + } else if (2 === u) { + if ( + (e = (function (t, e) { + for ( + var n = t.currentTokenStart, + r = t.currentLineNumber, + i = (ht(t), ut(t, lt(t))), + o = [], + a = N.create('_atom_site' === i ? (e.data.length / 1.85) | 0 : 1024), + s = 0; + 4 === t.currentTokenType; + + ) + (o[o.length] = ct(t)), ht(t); + for (; 3 === t.currentTokenType; ) + N.addToken(a, t.currentTokenStart, t.currentTokenEnd), s++, ht(t); + return s % o.length != 0 + ? { + hasError: !0, + errorLine: t.currentLineNumber, + errorMessage: + 'The number of values for loop starting at line ' + + r + + ' is not a multiple of the number of columns.', + } + : (e.addCategory( + new U.Category(e.data, i, n, t.currentTokenStart, o, a.tokens, s), + ), + { hasError: !1, errorLine: 0, errorMessage: '' }); + })(i, l ? s : a)).hasError + ) + return dt(e.errorLine, e.errorMessage); + } else { + if (4 !== u) + return dt( + i.currentLineNumber, + 'Unexpected token. Expected data_, loop_, or data name.', + ); + if ((e = pt(i, l ? s : a)).hasError) return dt(e.errorLine, e.errorMessage); + } + } + return l + ? dt(i.currentLineNumber, 'Unfinished save frame (`' + s.header + '`).') + : (0 < a.categories.length && o.dataBlocks.push(a), R.ParserResult.success(o)); + } + function gt(t, e) { + for (var n = {}, r = 0; r < e; r++) n[yt(t)] = yt(t); + return n; + } + function mt(t, e) { + for (var n = new Uint8Array(e), r = t.offset, i = 0; i < e; i++) + n[i] = t.buffer[i + r]; + return (t.offset += e), n; + } + function vt(t, e) { + var n = Y.utf8Read(t.buffer, t.offset, e); + return (t.offset += e), n; + } + function bt(t, e) { + for (var n = new Array(e), r = 0; r < e; r++) n[r] = yt(t); + return n; + } + function yt(t) { + var e, + n, + r = t.buffer[t.offset]; + if (0 == (128 & r)) return t.offset++, r; + if (128 == (240 & r)) return (n = 15 & r), t.offset++, gt(t, n); + if (144 == (240 & r)) return (n = 15 & r), t.offset++, bt(t, n); + if (160 == (224 & r)) return (n = 31 & r), t.offset++, vt(t, n); + if (224 == (224 & r)) return (e = t.dataView.getInt8(t.offset)), t.offset++, e; + switch (r) { + case 192: + return t.offset++, null; + case 194: + return t.offset++, !1; + case 195: + return t.offset++, !0; + case 196: + return (n = t.dataView.getUint8(t.offset + 1)), (t.offset += 2), mt(t, n); + case 197: + return (n = t.dataView.getUint16(t.offset + 1)), (t.offset += 3), mt(t, n); + case 198: + return (n = t.dataView.getUint32(t.offset + 1)), (t.offset += 5), mt(t, n); + case 202: + return (e = t.dataView.getFloat32(t.offset + 1)), (t.offset += 5), e; + case 203: + return (e = t.dataView.getFloat64(t.offset + 1)), (t.offset += 9), e; + case 204: + return (e = t.buffer[t.offset + 1]), (t.offset += 2), e; + case 205: + return (e = t.dataView.getUint16(t.offset + 1)), (t.offset += 3), e; + case 206: + return (e = t.dataView.getUint32(t.offset + 1)), (t.offset += 5), e; + case 208: + return (e = t.dataView.getInt8(t.offset + 1)), (t.offset += 2), e; + case 209: + return (e = t.dataView.getInt16(t.offset + 1)), (t.offset += 3), e; + case 210: + return (e = t.dataView.getInt32(t.offset + 1)), (t.offset += 5), e; + case 217: + return (n = t.dataView.getUint8(t.offset + 1)), (t.offset += 2), vt(t, n); + case 218: + return (n = t.dataView.getUint16(t.offset + 1)), (t.offset += 3), vt(t, n); + case 219: + return (n = t.dataView.getUint32(t.offset + 1)), (t.offset += 5), vt(t, n); + case 220: + return (n = t.dataView.getUint16(t.offset + 1)), (t.offset += 3), bt(t, n); + case 221: + return (n = t.dataView.getUint32(t.offset + 1)), (t.offset += 5), bt(t, n); + case 222: + return (n = t.dataView.getUint16(t.offset + 1)), (t.offset += 3), gt(t, n); + case 223: + return (n = t.dataView.getUint32(t.offset + 1)), (t.offset += 5), gt(t, n); + } + throw new Error('Unknown type 0x' + r.toString(16)); + } + function wt(t) { + throw new Error(t); + } + function Et(t) { + for (var e = t.data, n = t.encoding.length - 1; 0 <= n; n--) + e = z.decodeStep(e, t.encoding[n]); + return e; + } + function Bt(t, e) { + switch (t) { + case 1: + return new Int8Array(e); + case 2: + return new Int16Array(e); + case 3: + return new Int32Array(e); + case 4: + return new Uint8Array(e); + case 5: + return new Uint16Array(e); + case 6: + return new Uint32Array(e); + default: + throw new Error('Unsupported integer data type.'); + } + } + function Ct(t, e) { + switch (t) { + case 32: + return new Float32Array(e); + case 33: + return new Float64Array(e); + default: + throw new Error('Unsupported floating data type.'); + } + } + function xt(t, e, n) { + return new n( + H + ? t.buffer + : (function (t, e) { + for ( + var n = new ArrayBuffer(t.length), + r = new Uint8Array(n), + i = 0, + o = t.length; + i < o; + i += e + ) + for (var a = 0; a < e; a++) r[i + e - a - 1] = t[i + a]; + return n; + })(t, e), + ); + } + ((e = e.StringWriter || (e.StringWriter = {})).create = function (t) { + return { + chunkData: [], + chunkOffset: 0, + chunkCapacity: (t = void 0 === t ? 512 : t), + data: [], + }; + }), + (e.asString = function (t) { + return t.data.length + ? (0 < t.chunkOffset && + (t.data[t.data.length] = t.chunkData.splice(0, t.chunkOffset).join('')), + t.data.join('')) + : (t.chunkData.length === t.chunkOffset + ? t.chunkData + : t.chunkData.splice(0, t.chunkOffset) + ).join(''); + }), + (e.writeTo = function (t, e) { + var n; + 0 < (n = t).chunkOffset && + (n.chunkData.length === n.chunkOffset + ? (n.data[n.data.length] = n.chunkData.join('')) + : (n.data[n.data.length] = n.chunkData.splice(0, n.chunkOffset).join('')), + (n.chunkOffset = 0)); + for (var r = 0, i = t.data; r < i.length; r++) { + var o = i[r]; + e.writeString(o); + } + }), + (e.newline = function (t) { + it(t, '\n'); + }), + (e.whitespace = function (t, e) { + it(t, tt[e]); + }), + (e.write = it), + (e.writeSafe = function (t, e) { + t.chunkOffset === t.chunkCapacity && + ((t.data[t.data.length] = t.chunkData.join('')), (t.chunkOffset = 0)), + (t.chunkData[t.chunkOffset++] = e); + }), + (e.writePadLeft = function (t, e, n) { + null == e && it(t, tt[n]), 0 < (n -= e.length) && it(t, tt[n]), it(t, e); + }), + (e.writePadRight = function (t, e, n) { + null == e && it(t, tt[n]), (n -= e.length), it(t, e), 0 < n && it(t, tt[n]); + }), + (e.writeInteger = function (t, e) { + it(t, '' + e); + }), + (e.writeIntegerPadLeft = function (t, e, n) { + 0 < (n -= (e = '' + e).length) && it(t, tt[n]), it(t, e); + }), + (e.writeIntegerPadRight = function (t, e, n) { + (n -= (e = '' + e).length), it(t, e), 0 < n && it(t, tt[n]); + }), + (e.writeFloat = function (t, e, n) { + it(t, '' + Math.round(n * e) / n); + }), + (e.writeFloatPadLeft = function (t, e, n, r) { + (e = '' + Math.round(n * e) / n), + 0 < (n = r - e.length) && it(t, tt[n]), + it(t, e); + }), + (e.writeFloatPadRight = function (t, e, n, r) { + (e = '' + Math.round(n * e) / n), + (n = r - e.length), + it(t, e), + 0 < n && it(t, tt[n]); + }), + (e = w = w || {}), + (ot.prototype.getString = function (t) { + return null; + }), + (ot.prototype.getInteger = function (t) { + return 0; + }), + (ot.prototype.getFloat = function (t) { + return 0; + }), + (ot.prototype.getValuePresence = function (t) { + return 1; + }), + (ot.prototype.areValuesEqual = function (t, e) { + return !0; + }), + (ot.prototype.stringEquals = function (t, e) { + return null === e; + }), + (E = ot), + (e.UndefinedColumn = new E()), + ((E = e.Category || (e.Category = {})).getMatrix = function (t, e, n, r, i) { + for (var o = [], a = 1; a <= n; a++) { + for (var s = [], l = 1; l <= r; l++) + s[l - 1] = t.getColumn(e + '[' + a + '][' + l + ']').getFloat(i); + o[a - 1] = s; + } + return o; + }), + (E.getVector = function (t, e, n, r, i) { + for (var o = [], a = 1; a <= n; a++) + o[a - 1] = t.getColumn(e + '[' + a + ']').getFloat(i); + return o; + }), + (e = w = w || {}), + ((E = e.ParserResult || (e.ParserResult = {})).error = function (t, e) { + return new Q(t, (e = void 0 === e ? -1 : e)); + }), + (E.success = function (t, e) { + return new _(t, (e = void 0 === e ? [] : e)); + }), + (at.prototype.toString = function () { + return 0 <= this.line + ? '[Line ' + this.line + '] ' + this.message + : this.message; + }), + (Q = at), + (e.ParserError = Q), + (_ = function (t, e) { + (this.result = t), (this.warnings = e), (this.isError = !1); + }), + (e.ParserSuccess = _), + (function (t) { + ((e = u = u || {}).create = function () { + return Object.create(null); + }), + (e.get = function (t, e) { + if (!(6 < e.length)) { + var n = t[e]; + if (void 0 !== n) return n; + t[e] = e; + } + return e; + }), + (n.prototype.toJSON = function () { + return this.dataBlocks.map(function (t) { + return t.toJSON(); + }); + }); + var u, + e = n; + function n(t) { + (this.dataBlocks = []), (this.data = t); + } + function r(t, e) { + (this.header = e), + (this.data = t), + (this.categoryList = []), + (this.additionalData = {}), + (this.categoryMap = new Map()); + } + function i(t, e, n, r, i, o, a) { + (this.name = e), + (this.tokens = o), + (this.data = t), + (this.startIndex = n), + (this.endIndex = r), + (this.columnCount = i.length), + (this.rowCount = (a / i.length) | 0), + (this.columnIndices = new Map()), + (this.columnNameList = []); + for (var s = 0; s < i.length; s++) { + var l = i[s].substr(e.length + 1); + this.columnIndices.set(l, s), this.columnNameList.push(l); + } + } + (t.File = e), + Object.defineProperty(r.prototype, 'categories', { + get: function () { + return this.categoryList; + }, + enumerable: !0, + configurable: !0, + }), + (r.prototype.getCategory = function (t) { + return this.categoryMap.get(t); + }), + (r.prototype.addCategory = function (t) { + (this.categoryList[this.categoryList.length] = t), + this.categoryMap.set(t.name, t); + }), + (r.prototype.toJSON = function () { + return { + id: this.header, + categories: this.categoryList.map(function (t) { + return t.toJSON(); + }), + additionalData: this.additionalData, + }; + }), + (t.DataBlock = r), + Object.defineProperty(i.prototype, 'columnNames', { + get: function () { + return this.columnNameList; + }, + enumerable: !0, + configurable: !0, + }), + (i.prototype.getColumn = function (t) { + var e = this.columnIndices.get(t); + return void 0 !== e ? new s(this, this.data, t, e) : T.UndefinedColumn; + }), + (i.prototype.toJSON = function () { + for ( + var t = [], + e = this.data, + n = this.tokens, + r = this.columnNameList, + i = u.create(), + o = 0; + o < this.rowCount; + o++ + ) { + for (var a = {}, s = 0; s < this.columnCount; s++) { + var l = 2 * (o * this.columnCount + s); + a[r[s]] = u.get(i, e.substring(n[l], n[1 + l])); + } + t[o] = a; + } + return { name: this.name, columns: r, rows: t }; + }), + (t.Category = i); + var o = T.Utils.FastNumberParsers.parseInt, + a = T.Utils.FastNumberParsers.parseFloat, + s = + ((l.prototype.getString = function (t) { + (t = 2 * (t * this.columnCount + this.index)), + (t = u.get( + this.stringPool, + this.data.substring(this.tokens[t], this.tokens[1 + t]), + )); + return '.' === t || '?' === t ? null : t; + }), + (l.prototype.getInteger = function (t) { + t = 2 * (t * this.columnCount + this.index); + return o(this.data, this.tokens[t], this.tokens[1 + t]); + }), + (l.prototype.getFloat = function (t) { + t = 2 * (t * this.columnCount + this.index); + return a(this.data, this.tokens[t], this.tokens[1 + t]); + }), + (l.prototype.stringEquals = function (t, e) { + var t = 2 * (t * this.columnCount + this.index), + n = this.tokens[t], + r = e.length; + if (r !== this.tokens[1 + t] - n) return !1; + for (var i = 0; i < r; i++) + if (this.data.charCodeAt(i + n) !== e.charCodeAt(i)) return !1; + return !0; + }), + (l.prototype.areValuesEqual = function (t, e) { + var t = 2 * (t * this.columnCount + this.index), + e = 2 * (e * this.columnCount + this.index), + n = this.tokens[t], + r = this.tokens[e], + i = this.tokens[1 + t] - n; + if (i != this.tokens[1 + e] - r) return !1; + for (var o = 0; o < i; o++) + if (this.data.charCodeAt(o + n) !== this.data.charCodeAt(o + r)) + return !1; + return !0; + }), + (l.prototype.getValuePresence = function (t) { + var t = t * this.columnCount + this.index, + e = this.tokens[2 * t]; + if (this.tokens[2 * t + 1] - e != 1) return 0; + t = this.data.charCodeAt(e); + return 46 === t ? 1 : 63 === t ? 2 : 0; + }), + l); + function l(t, e, n, r) { + (this.data = e), + (this.name = n), + (this.index = r), + (this.stringPool = u.create()), + (this.isDefined = !0), + (this.tokens = t.tokens), + (this.columnCount = t.columnCount); + } + t.Column = s; + })((T = w = w || {}).Text || (T.Text = {})), + (R = w = w || {}), + (U = R.Text || (R.Text = {})), + ((E = N = N || {}).addToken = function (t, e, n) { + var r, i; + t.count >= t.tokensLenMinus2 && + ((r = t), + (i = new Int32Array((1.61 * r.tokens.length) | 0)).set(r.tokens), + (r.tokens = i), + (r.tokensLenMinus2 = (i.length - 2) | 0)), + (t.tokens[t.count++] = e), + (t.tokens[t.count++] = n); + }), + (E.create = function (t) { + return { tokensLenMinus2: (t - 2) | 0, count: 0, tokens: new Int32Array(t) }; + }), + (U.parse = ft), + (function (t) { + var I = L.Utils.StringWriter; + function e() { + (this.writer = I.create()), (this.encoded = !1), (this.dataBlockCreated = !1); + } + function M(t) { + return t && 0 <= t.indexOf('\n'); + } + function D(t, e) { + I.write(t, e), I.newline(t); + } + function S(t) { + I.writeSafe(t, '. '); + } + function k(t) { + I.writeSafe(t, '? '); + } + function F(t, e) { + if (e) { + for ( + var n = !1, + r = "'", + i = "' ", + o = !1, + a = !1, + s = !1, + l = 0, + u = e.length - 1; + l < u; + l++ + ) + switch (e.charCodeAt(l)) { + case 9: + o = !0; + break; + case 10: + return I.writeSafe(t, '\n;' + e), void I.writeSafe(t, '\n; '); + case 32: + o = !0; + break; + case 34: + if (a) return I.writeSafe(t, '\n;' + e), void I.writeSafe(t, '\n; '); + (n = s = !0), (r = "'"), (i = "' "); + break; + case 39: + if (s) return I.writeSafe(t, '\n;' + e), void I.writeSafe(t, '\n; '); + (a = n = !0), (r = '"'), (i = '" '); + } + var c = e.charCodeAt(0); + n || + (35 !== c && 36 !== c && 59 !== c && 91 !== c && 93 !== c && !o) || + ((r = "'"), (i = "' "), (n = !0)), + n ? I.writeSafe(t, r + e + i) : (I.write(t, e), I.writeSafe(t, ' ')); + } else I.writeSafe(t, '. '); + } + function Q(t, e) { + I.writeSafe(t, '\n;' + e), I.writeSafe(t, '\n; '); + } + (e.prototype.startDataBlock = function (t) { + (this.dataBlockCreated = !0), + I.write( + this.writer, + 'data_' + (t || '').replace(/[ \n\t]/g, '').toUpperCase() + '\n#\n', + ); + }), + (e.prototype.writeCategory = function (e, t) { + if (this.encoded) + throw new Error( + 'The writer contents have already been encoded, no more writing.', + ); + if (!this.dataBlockCreated) throw new Error('No data block created.'); + t = ( + t && t.length + ? t.map(function (t) { + return e(t); + }) + : [e(void 0)] + ).filter(function (t) { + return t && 0 < t.count; + }); + if (t.length) { + var n = t.reduce(function (t, e) { + return t + (void 0 === e.count ? 1 : e.count); + }, 0); + if (n) + if (1 === n) { + for ( + var r = t[0], + i = this.writer, + n = r.desc.fields, + o = r.data, + a = + n.reduce(function (t, e) { + return Math.max(t, e.name.length); + }, 0) + + r.desc.name.length + + 5, + s = 0, + l = n; + s < l.length; + s++ + ) { + var u = l[s], + c = + (I.writePadRight(i, r.desc.name + '.' + u.name, a), u.presence), + c = c ? c(o, 0) : 0; + 0 !== c + ? (1 === c ? S : k)(i) + : M((c = u.string(o, 0))) + ? (Q(i, c), I.newline(i)) + : F(i, c), + I.newline(i); + } + I.write(i, '#\n'); + } else { + var n = t, + A = this.writer; + D(A, 'loop_'); + for ( + var h = n[0], p = h.desc.fields, d = 0, f = p; + d < f.length; + d++ + ) { + var g = f[d]; + D(A, h.desc.name + '.' + g.name); + } + for (var m = 0, v = n; m < v.length; m++) + for (var b = v[m], y = b.data, w = b.count, E = 0; E < w; E++) { + for (var B = 0, C = p; B < C.length; B++) { + var x = (g = C[B]).presence, + x = x ? x(y, E) : 0; + 0 !== x + ? (1 === x ? S : k)(A) + : M((x = g.string(y, E))) + ? (Q(A, x), I.newline(A)) + : F(A, x); + } + I.newline(A); + } + I.write(A, '#\n'); + } + } + }), + (e.prototype.encode = function () { + this.encoded = !0; + }), + (e.prototype.flush = function (t) { + I.writeTo(this.writer, t); + }), + (t.Writer = e); + })((L = w = w || {}).Text || (L.Text = {})), + (e = (e = w = w || {}).Binary || (e.Binary = {})), + ((Y = e.MessagePack || (e.MessagePack = {})).decode = function (t) { + return yt({ buffer: t, offset: 0, dataView: new DataView(t.buffer) }); + }), + (E = (E = w = w || {}).Binary || (E.Binary = {})), + ((O = E.MessagePack || (E.MessagePack = {})).encode = function (t) { + var e = new ArrayBuffer( + (function t(e) { + var n = typeof e; + if ('string' == n) { + var r = O.utf8ByteCount(e); + if (r < 32) return 1 + r; + if (r < 256) return 2 + r; + if (r < 65536) return 3 + r; + if (r < 4294967296) return 5 + r; + } + if (e instanceof Uint8Array) { + r = e.byteLength; + if (r < 256) return 2 + r; + if (r < 65536) return 3 + r; + if (r < 4294967296) return 5 + r; + } + if ('number' == n) { + if (Math.floor(e) !== e) return 9; + if (0 <= e) { + if (e < 128) return 1; + if (e < 256) return 2; + if (e < 65536) return 3; + if (e < 4294967296) return 5; + throw new Error('Number too big 0x' + e.toString(16)); + } + if (-32 <= e) return 1; + if (-128 <= e) return 2; + if (-32768 <= e) return 3; + if (-2147483648 <= e) return 5; + throw new Error('Number too small -0x' + e.toString(16).substr(1)); + } + if ('boolean' == n || null == e) return 1; + if ('object' == n) { + var i, + o = 0; + if (Array.isArray(e)) { + i = e.length; + for (var a = 0; a < i; a++) o += t(e[a]); + } else { + var s = Object.keys(e); + i = s.length; + for (a = 0; a < i; a++) { + var l = s[a]; + o += t(l) + t(e[l]); + } + } + if (i < 16) return 1 + o; + if (i < 65536) return 3 + o; + if (i < 4294967296) return 5 + o; + throw new Error('Array or object too long 0x' + i.toString(16)); + } + throw new Error('Unknown type ' + n); + })(t), + ), + n = new DataView(e), + e = new Uint8Array(e); + return ( + (function t(e, n, r, i) { + var o = typeof e; + if ('string' == o) { + var a = O.utf8ByteCount(e); + if (a < 32) + return n.setUint8(i, 160 | a), O.utf8Write(r, i + 1, e), 1 + a; + if (a < 256) + return ( + n.setUint8(i, 217), + n.setUint8(i + 1, a), + O.utf8Write(r, i + 2, e), + 2 + a + ); + if (a < 65536) + return ( + n.setUint8(i, 218), + n.setUint16(i + 1, a), + O.utf8Write(r, i + 3, e), + 3 + a + ); + if (a < 4294967296) + return ( + n.setUint8(i, 219), + n.setUint32(i + 1, a), + O.utf8Write(r, i + 5, e), + 5 + a + ); + } + if (e instanceof Uint8Array) { + var a = e.byteLength, + s = new Uint8Array(n.buffer); + if (a < 256) + return n.setUint8(i, 196), n.setUint8(i + 1, a), s.set(e, i + 2), 2 + a; + if (a < 65536) + return ( + n.setUint8(i, 197), n.setUint16(i + 1, a), s.set(e, i + 3), 3 + a + ); + if (a < 4294967296) + return ( + n.setUint8(i, 198), n.setUint32(i + 1, a), s.set(e, i + 5), 5 + a + ); + } + if ('number' == o) { + if (!isFinite(e)) throw new Error('Number not finite: ' + e); + if (Math.floor(e) !== e) + return n.setUint8(i, 203), n.setFloat64(i + 1, e), 9; + if (0 <= e) { + if (e < 128) return n.setUint8(i, e), 1; + if (e < 256) return n.setUint8(i, 204), n.setUint8(i + 1, e), 2; + if (e < 65536) return n.setUint8(i, 205), n.setUint16(i + 1, e), 3; + if (e < 4294967296) return n.setUint8(i, 206), n.setUint32(i + 1, e), 5; + throw new Error('Number too big 0x' + e.toString(16)); + } + if (-32 <= e) return n.setInt8(i, e), 1; + if (-128 <= e) return n.setUint8(i, 208), n.setInt8(i + 1, e), 2; + if (-32768 <= e) return n.setUint8(i, 209), n.setInt16(i + 1, e), 3; + if (-2147483648 <= e) return n.setUint8(i, 210), n.setInt32(i + 1, e), 5; + throw new Error('Number too small -0x' + (-e).toString(16).substr(1)); + } + if (null == e) return n.setUint8(i, 192), 1; + if ('boolean' == o) return n.setUint8(i, e ? 195 : 194), 1; + if ('object' == o) { + var l, + u = 0, + s = Array.isArray(e), + a = void 0; + if ( + ((l = s ? e.length : (a = Object.keys(e)).length) < 16 + ? (n.setUint8(i, l | (s ? 144 : 128)), (u = 1)) + : l < 65536 + ? (n.setUint8(i, s ? 220 : 222), n.setUint16(i + 1, l), (u = 3)) + : l < 4294967296 && + (n.setUint8(i, s ? 221 : 223), n.setUint32(i + 1, l), (u = 5)), + s) + ) + for (var c = 0; c < l; c++) u += t(e[c], n, r, i + u); + else + for (var A = 0, h = a; A < h.length; A++) { + var p = h[A]; + u = (u += t(p, n, r, i + u)) + t(e[p], n, r, i + u); + } + return u; + } + throw new Error('Unknown type ' + o); + })(t, n, e, 0), + e + ); + }), + ((e = + (e = (e = w = w || {}).Binary || (e.Binary = {})).MessagePack || + (e.MessagePack = {})).utf8Write = function (t, e, n) { + t.byteLength; + for (var r = 0, i = n.length; r < i; r++) { + var o = n.charCodeAt(r); + if (o < 128) t[e++] = ((o >>> 0) & 127) | 0; + else if (o < 2048) + (t[e++] = ((o >>> 6) & 31) | 192), (t[e++] = ((o >>> 0) & 63) | 128); + else if (o < 65536) + (t[e++] = ((o >>> 12) & 15) | 224), + (t[e++] = ((o >>> 6) & 63) | 128), + (t[e++] = ((o >>> 0) & 63) | 128); + else { + if (!(o < 1114112)) throw new Error('bad codepoint ' + o); + (t[e++] = ((o >>> 18) & 7) | 240), + (t[e++] = ((o >>> 12) & 63) | 128), + (t[e++] = ((o >>> 6) & 63) | 128), + (t[e++] = ((o >>> 0) & 63) | 128); + } + } + }), + (G = (function () { + for (var t = [], e = 0; e < 1024; e++) t[e] = String.fromCharCode(e); + return t; + })()), + (e.utf8Read = function (t, e, n) { + for (var r = G, i = void 0, o = [], a = 0, s = e, l = e + n; s < l; s++) { + var u = t[s]; + 0 == (128 & u) + ? (o[a++] = r[u]) + : 192 == (224 & u) + ? (o[a++] = r[((15 & u) << 6) | (63 & t[++s])]) + : 224 == (240 & u) + ? (o[a++] = String.fromCharCode( + ((15 & u) << 12) | ((63 & t[++s]) << 6) | ((63 & t[++s]) << 0), + )) + : 240 == (248 & u) + ? (o[a++] = String.fromCharCode( + ((7 & u) << 18) | + ((63 & t[++s]) << 12) | + ((63 & t[++s]) << 6) | + ((63 & t[++s]) << 0), + )) + : wt('Invalid byte ' + u.toString(16)), + 512 === a && (((i = i || [])[i.length] = o.join('')), (a = 0)); + } + return i + ? (0 < a && (i[i.length] = o.slice(0, a).join('')), i.join('')) + : o.slice(0, a).join(''); + }), + (e.utf8ByteCount = function (t) { + for (var e = 0, n = 0, r = t.length; n < r; n++) { + var i = t.charCodeAt(n); + i < 128 + ? (e += 1) + : i < 2048 + ? (e += 2) + : i < 65536 + ? (e += 3) + : i < 1114112 + ? (e += 4) + : wt('bad codepoint ' + i); + } + return e; + }), + (((E = w = w || {}).Binary || (E.Binary = {})).decode = Et), + ((z || (z = {})).decodeStep = function (t, e) { + switch (e.kind) { + case 'ByteArray': + switch (e.type) { + case 4: + return t; + case 1: + return new Int8Array(t.buffer, t.byteOffset); + case 2: + return xt(t, 2, Int16Array); + case 5: + return xt(t, 2, Uint16Array); + case 3: + return xt(t, 4, Int32Array); + case 6: + return xt(t, 4, Uint32Array); + case 32: + return xt(t, 4, Float32Array); + case 33: + return xt(t, 8, Float64Array); + default: + throw new Error('Unsupported ByteArray type.'); + } + case 'FixedPoint': + for ( + var n = t, + r = e, + i = n.length, + o = Ct(r.srcType, i), + a = 1 / r.factor, + s = 0; + s < i; + s++ + ) + o[s] = a * n[s]; + return o; + case 'IntervalQuantization': + for ( + var l = t, + r = e, + u = l.length, + c = Ct(r.srcType, u), + A = (r.max - r.min) / (r.numSteps - 1), + h = r.min, + p = 0; + p < u; + p++ + ) + c[p] = h + A * l[p]; + return c; + case 'RunLength': + for ( + var d = t, + f = e, + g = Bt(f.srcType, f.srcSize), + m = 0, + v = 0, + b = d.length; + v < b; + v += 2 + ) + for (var y = d[v], U = d[v + 1], w = 0; w < U; ++w) g[m++] = y; + return g; + case 'Delta': + var E = t, + f = e, + B = E.length, + C = Bt(f.srcType, B); + if (B) { + C[0] = E[0] + (0 | f.origin); + for (var x = 1; x < B; ++x) C[x] = E[x] + C[x - 1]; + } + return C; + case 'IntegerPacking': + return ( + (I = t), + ((D = e).isUnsigned + ? function (t, e) { + var n = 1 === e.byteCount ? 255 : 65535, + r = t.length, + i = new Int32Array(e.srcSize), + o = 0, + a = 0; + for (; o < r; ) { + for (var s = 0, l = t[o]; l === n; ) (s += l), (l = t[++o]); + (s += l), (i[a] = s), o++, a++; + } + return i; + } + : function (t, e) { + var n = 1 === e.byteCount ? 127 : 32767, + r = -n - 1, + i = t.length, + o = new Int32Array(e.srcSize), + a = 0, + s = 0; + for (; a < i; ) { + for (var l = 0, u = t[a]; u === n || u === r; ) + (l += u), (u = t[++a]); + (l += u), (o[s] = l), a++, s++; + } + return o; + })(I, D) + ); + case 'StringArray': + for ( + var I = t, + N = (D = e).stringData, + M = Et({ encoding: D.offsetEncoding, data: D.offsets }), + D = Et({ encoding: D.dataEncoding, data: I }), + S = Object.create(null), + k = new Array(D.length), + F = 0, + Q = 0, + _ = D; + Q < _.length; + Q++ + ) { + var T, + R = _[Q]; + R < 0 + ? (k[F++] = null) + : (void 0 === (T = S[R]) && + ((T = N.substring(M[R], M[R + 1])), (S[R] = T)), + (k[F++] = T)); + } + return k; + } + var I, D; + }), + (E = new ArrayBuffer(2)), + (e = new Uint8Array(E)), + (E = new Uint16Array(E)), + (e[0] = 170), + (e[1] = 187), + (H = 48042 === E[0]), + (function (r) { + function t(t) { + this.dataBlocks = t.dataBlocks.map(function (t) { + return new e(t); + }); + } + (t.prototype.toJSON = function () { + return this.dataBlocks.map(function (t) { + return t.toJSON(); + }); + }), + (r.File = t); + Object.defineProperty(n.prototype, 'categories', { + get: function () { + return this.categoryList; + }, + enumerable: !0, + configurable: !0, + }), + (n.prototype.getCategory = function (t) { + return this.categoryMap.get(t); + }), + (n.prototype.toJSON = function () { + return { + id: this.header, + categories: this.categoryList.map(function (t) { + return t.toJSON(); + }), + additionalData: this.additionalData, + }; + }); + var e = n; + function n(t) { + (this.additionalData = {}), + (this.header = t.header), + (this.categoryList = t.categories.map(function (t) { + return new i(t); + })), + (this.categoryMap = new Map()); + for (var e = 0, n = this.categoryList; e < n.length; e++) { + var r = n[e]; + this.categoryMap.set(r.name, r); + } + } + r.DataBlock = e; + Object.defineProperty(o.prototype, 'columnNames', { + get: function () { + return this.columnNameList; + }, + enumerable: !0, + configurable: !0, + }), + (o.prototype.getColumn = function (t) { + t = this.encodedColumns.get(t); + if (t) { + if (!t.data.data) return j.UndefinedColumn; + var e = r.decode(t.data), + n = void 0; + return ( + t.mask && (n = r.decode(t.mask)), + e.buffer && e.byteLength && e.BYTES_PER_ELEMENT + ? n + ? new c(e, n) + : new l(e) + : n + ? new d(e, n) + : new h(e) + ); + } + return j.UndefinedColumn; + }), + (o.prototype.toJSON = function () { + for ( + var e = this, + t = [], + n = this.columnNameList.map(function (t) { + return { name: t, column: e.getColumn(t) }; + }), + r = 0; + r < this.rowCount; + r++ + ) { + for (var i = {}, o = 0, a = n; o < a.length; o++) { + var s = a[o], + l = s.column.getValuePresence(r); + i[s.name] = 0 === l ? s.column.getString(r) : 1 === l ? '.' : '?'; + } + t[r] = i; + } + return { name: this.name, columns: this.columnNames, rows: t }; + }); + var i = o; + function o(t) { + (this.name = t.name), + (this.columnCount = t.columns.length), + (this.rowCount = t.rowCount), + (this.columnNameList = []), + (this.encodedColumns = new Map()); + for (var e = 0, n = t.columns; e < n.length; e++) { + var r = n[e]; + this.encodedColumns.set(r.name, r), this.columnNameList.push(r.name); + } + } + r.Category = i; + var a = j.Utils.FastNumberParsers.parseInt, + s = j.Utils.FastNumberParsers.parseFloat, + l = + ((u.prototype.getString = function (t) { + return '' + this.data[t]; + }), + (u.prototype.getInteger = function (t) { + return 0 | this.data[t]; + }), + (u.prototype.getFloat = function (t) { + return +this.data[t]; + }), + (u.prototype.stringEquals = function (t, e) { + return this.data[t] === s(e, 0, e.length); + }), + (u.prototype.areValuesEqual = function (t, e) { + return this.data[t] === this.data[e]; + }), + (u.prototype.getValuePresence = function (t) { + return 0; + }), + u); + function u(t) { + (this.data = t), (this.isDefined = !0); + } + (A.prototype.getString = function (t) { + return 0 === this.mask[t] ? '' + this.data[t] : null; + }), + (A.prototype.getInteger = function (t) { + return 0 === this.mask[t] ? this.data[t] : 0; + }), + (A.prototype.getFloat = function (t) { + return 0 === this.mask[t] ? this.data[t] : 0; + }), + (A.prototype.stringEquals = function (t, e) { + return 0 === this.mask[t] ? this.data[t] === s(e, 0, e.length) : null == e; + }), + (A.prototype.areValuesEqual = function (t, e) { + return this.data[t] === this.data[e]; + }), + (A.prototype.getValuePresence = function (t) { + return this.mask[t]; + }); + var c = A; + function A(t, e) { + (this.data = t), (this.mask = e), (this.isDefined = !0); + } + (p.prototype.getString = function (t) { + return this.data[t]; + }), + (p.prototype.getInteger = function (t) { + t = this.data[t]; + return a(t, 0, t.length); + }), + (p.prototype.getFloat = function (t) { + t = this.data[t]; + return s(t, 0, t.length); + }), + (p.prototype.stringEquals = function (t, e) { + return this.data[t] === e; + }), + (p.prototype.areValuesEqual = function (t, e) { + return this.data[t] === this.data[e]; + }), + (p.prototype.getValuePresence = function (t) { + return 0; + }); + var h = p; + function p(t) { + (this.data = t), (this.isDefined = !0); + } + (f.prototype.getString = function (t) { + return 0 === this.mask[t] ? this.data[t] : null; + }), + (f.prototype.getInteger = function (t) { + if (0 !== this.mask[t]) return 0; + t = this.data[t]; + return a(t || '', 0, (t || '').length); + }), + (f.prototype.getFloat = function (t) { + if (0 !== this.mask[t]) return 0; + t = this.data[t]; + return s(t || '', 0, (t || '').length); + }), + (f.prototype.stringEquals = function (t, e) { + return this.data[t] === e; + }), + (f.prototype.areValuesEqual = function (t, e) { + return this.data[t] === this.data[e]; + }), + (f.prototype.getValuePresence = function (t) { + return this.mask[t]; + }); + var d = f; + function f(t, e) { + (this.data = t), (this.mask = e), (this.isDefined = !0); + } + })((j = w = w || {}).Binary || (j.Binary = {})), + (function (g) { + (e.prototype.and = function (t) { + return new e(this.providers.concat([t])); + }), + (e.prototype.encode = function (t) { + for (var e = [], n = 0, r = this.providers; n < r.length; n++) { + var i = (0, r[n])(t); + if (!i.encodings.length) throw new Error('Encodings must be non-empty.'); + t = i.data; + for (var o = 0, a = i.encodings; o < a.length; o++) { + var s = a[o]; + e.push(s); + } + } + if (t instanceof Uint8Array) return { encoding: e, data: t }; + throw new Error( + 'The encoding must result in a Uint8Array. Fix your encoding chain.', + ); + }); + function e(t) { + this.providers = t; + } + g.Encoder = e; + var h = g.Encoder || (g.Encoder = {}); + h.by = function (t) { + return new h([t]); + }; + var t, + s = (t = { + 2: function (t, e, n) { + t.setInt16(2 * e, n, !0); + }, + 5: function (t, e, n) { + t.setUint16(2 * e, n, !0); + }, + 3: function (t, e, n) { + t.setInt32(4 * e, n, !0); + }, + 6: function (t, e, n) { + t.setUint32(4 * e, n, !0); + }, + 32: function (t, e, n) { + t.setFloat32(4 * e, n, !0); + }, + 33: function (t, e, n) { + t.setFloat64(8 * e, n, !0); + }, + }), + l = + (((t = {})[2] = 2), + (t[5] = 2), + (t[3] = 4), + (t[6] = 4), + (t[32] = 4), + (t[33] = 8), + t); + function c(t) { + var e = g.Encoding.getDataType(t); + if (1 === e) + return { + encodings: [{ kind: 'ByteArray', type: 1 }], + data: new Uint8Array(t.buffer, t.byteOffset), + }; + if (4 === e) return { encodings: [{ kind: 'ByteArray', type: 4 }], data: t }; + for ( + var n = new Uint8Array(t.length * l[e]), + r = s[e], + i = new DataView(n.buffer), + o = 0, + a = t.length; + o < a; + o++ + ) + r(i, o, t[o]); + return { encodings: [{ kind: 'ByteArray', type: e }], data: n }; + } + function p(t) { + var e = g.Encoding.getDataType(t); + if ((void 0 === e && ((t = new Int32Array(t)), (e = 3)), !t.length)) + return { + encodings: [{ kind: 'RunLength', srcType: e, srcSize: 0 }], + data: new Int32Array(0), + }; + for (var n = 2, r = 1, i = t.length; r < i; r++) + t[r - 1] !== t[r] && (n += 2); + for (var o = new Int32Array(n), a = 0, s = 1, r = 1, i = t.length; r < i; r++) + t[r - 1] !== t[r] + ? ((o[a] = t[r - 1]), (o[a + 1] = s), (s = 1), (a += 2)) + : ++s; + return ( + (o[a] = t[t.length - 1]), + (o[a + 1] = s), + { + encodings: [{ kind: 'RunLength', srcType: e, srcSize: t.length }], + data: o, + } + ); + } + function d(t) { + if (!g.Encoding.isSignedIntegerDataType(t)) + throw new Error( + 'Only signed integer types can be encoded using delta encoding.', + ); + var e = g.Encoding.getDataType(t); + if ((void 0 === e && ((t = new Int32Array(t)), (e = 3)), !t.length)) + return { + encodings: [{ kind: 'Delta', origin: 0, srcType: e }], + data: new t.constructor(0), + }; + var n = new t.constructor(t.length), + r = t[0]; + n[0] = t[0]; + for (var i = 1, o = t.length; i < o; i++) n[i] = t[i] - t[i - 1]; + return ( + (n[0] = 0), + { encodings: [{ kind: 'Delta', origin: r, srcType: e }], data: n } + ); + } + function i(t, e) { + for (var n = -e - 1, r = 0, i = 0, o = t.length; i < o; i++) { + var a = t[i]; + 0 === a + ? (r += 1) + : 0 < a + ? ((r += Math.ceil(a / e)), a % e == 0 && (r += 1)) + : ((r += Math.ceil(a / n)), a % n == 0 && (r += 1)); + } + return r; + } + function A(t) { + var e = (function (t) { + for (var e = 0, n = t.length; e < n; e++) if (t[e] < 0) return !0; + return !1; + })(t), + n = i(t, e ? 127 : 255), + r = i(t, e ? 32767 : 65535); + return 4 * t.length < 2 * r + ? { isSigned: e, size: t.length, bytesPerElement: 4 } + : 2 * r < n + ? { isSigned: e, size: r, bytesPerElement: 2 } + : { isSigned: e, size: n, bytesPerElement: 1 }; + } + function f(t) { + if (!(t instanceof Int32Array)) + throw new Error('Integer packing can only be applied to Int32 data.'); + var e = A(t); + if (4 === e.bytesPerElement) return c(t); + for ( + var n = t, + t = e, + r = t.isSigned + ? 1 === t.bytesPerElement + ? 127 + : 32767 + : 1 === t.bytesPerElement + ? 255 + : 65535, + i = -r - 1, + o = n.length, + a = new ( + t.isSigned + ? 1 === t.bytesPerElement + ? Int8Array + : Int16Array + : 1 === t.bytesPerElement + ? Uint8Array + : Uint16Array + )(t.size), + s = 0, + l = 0; + l < o; + l++ + ) { + var u = n[l]; + if (0 <= u) for (; r <= u; ) (a[s] = r), ++s, (u -= r); + else for (; u <= i; ) (a[s] = i), ++s, (u -= i); + (a[s] = u), ++s; + } + e = c(a); + return { + encodings: [ + { + kind: 'IntegerPacking', + byteCount: t.bytesPerElement, + isUnsigned: !t.isSigned, + srcSize: o, + }, + e.encodings[0], + ], + data: e.data, + }; + } + (h.byteArray = c), + (h.fixedPoint = function (a) { + return function (t) { + for ( + var e = t, + n = a, + t = g.Encoding.getDataType(e), + r = new Int32Array(e.length), + i = 0, + o = e.length; + i < o; + i++ + ) + r[i] = Math.round(e[i] * n); + return { + encodings: [{ kind: 'FixedPoint', factor: n, srcType: t }], + data: r, + }; + }; + }), + (h.intervalQuantizaiton = function (h, p, d, f) { + return ( + void 0 === f && (f = Int32Array), + function (t) { + var e, + n = t, + r = h, + i = p, + o = d, + t = f, + a = g.Encoding.getDataType(n); + if (!n.length) + return { + encodings: [ + { + kind: 'IntervalQuantization', + min: r, + max: i, + numSteps: o, + srcType: a, + }, + ], + data: new Int32Array(0), + }; + i < r && ((e = r), (r = i), (i = e)); + for ( + var s = (i - r) / (o - 1), l = new t(n.length), u = 0, c = n.length; + u < c; + u++ + ) { + var A = n[u]; + l[u] = A <= r ? 0 : i <= A ? o : 0 | Math.round((A - r) / s); + } + return { + encodings: [ + { + kind: 'IntervalQuantization', + min: r, + max: i, + numSteps: o, + srcType: a, + }, + ], + data: l, + }; + } + ); + }), + (h.runLength = p), + (h.delta = d), + (h.integerPacking = f), + (h.stringArray = function (t) { + for ( + var e = Object.create(null), + n = [], + r = 0, + i = V.Utils.ChunkedArray.create( + function (t) { + return new Int32Array(t); + }, + 1024, + 1, + ), + o = new Int32Array(t.length), + a = (V.Utils.ChunkedArray.add(i, 0), 0), + s = 0, + l = t; + s < l.length; + s++ + ) { + var u, + c = l[s]; + null == c + ? (o[a++] = -1) + : (void 0 === (u = e[c]) && + ((r += c.length), + (e[(n[(u = n.length)] = c)] = u), + V.Utils.ChunkedArray.add(i, r)), + (o[a++] = u)); + } + var t = h.by(d).and(f).encode(V.Utils.ChunkedArray.compact(i)), + A = h.by(d).and(p).and(f).encode(o); + return { + encodings: [ + { + kind: 'StringArray', + dataEncoding: A.encoding, + stringData: n.join(''), + offsetEncoding: t.encoding, + offsets: t.data, + }, + ], + data: A.data, + }; + }); + })((V = w = w || {}).Binary || (V.Binary = {})), + ((e = (e = w = w || {}).Binary || (e.Binary = {})).VERSION = '0.3.0'), + ((e = e.Encoding || (e.Encoding = {})).getDataType = function (t) { + var e; + if (t instanceof Int8Array) e = 1; + else if (t instanceof Int16Array) e = 2; + else if (t instanceof Int32Array) e = 3; + else if (t instanceof Uint8Array) e = 4; + else if (t instanceof Uint16Array) e = 5; + else if (t instanceof Uint32Array) e = 6; + else if (t instanceof Float32Array) e = 32; + else { + if (!(t instanceof Float64Array)) + throw new Error('Unsupported integer data type.'); + e = 33; + } + return e; + }), + (e.isSignedIntegerDataType = function (t) { + return ( + t instanceof Int8Array || t instanceof Int16Array || t instanceof Int32Array + ); + }), + (q = w = w || {}), + ((W = q.Binary || (q.Binary = {})).parse = function (t) { + var e = [0, 3]; + try { + var n = new Uint8Array(t), + r = W.MessagePack.decode(n); + if ( + !(function (t, e) { + for (var n = 0; n < 2; n++) if (t[n] > e[n]) return; + return 1; + })(e, r.version.match(/(\d)\.(\d)\.\d/).slice(1)) + ) + return q.ParserResult.error( + 'Unsupported format version. Current ' + + r.version + + ', required ' + + e.join('.') + + '.', + ); + var i = new W.File(r); + return q.ParserResult.success(i); + } catch (t) { + return q.ParserResult.error('' + t); + } + }), + (function (v) { + function t(t) { + (this.dataBlocks = []), + (this.data = { + encoder: t, + version: v.VERSION, + dataBlocks: this.dataBlocks, + }); + } + (t.prototype.startDataBlock = function (t) { + this.dataBlocks.push({ + header: (t || '').replace(/[ \n\t]/g, '').toUpperCase(), + categories: [], + }); + }), + (t.prototype.writeCategory = function (e, t) { + if (!this.data) + throw new Error( + 'The writer contents have already been encoded, no more writing.', + ); + if (!this.dataBlocks.length) throw new Error('No data block created.'); + t = ( + t && t.length + ? t.map(function (t) { + return e(t); + }) + : [e(void 0)] + ).filter(function (t) { + return t && 0 < t.count; + }); + if (t.length) { + var n = t.reduce(function (t, e) { + return t + e.count; + }, 0); + if (n) { + for ( + var r = t[0], + i = { name: r.desc.name, columns: [], rowCount: n }, + o = t.map(function (t) { + return { data: t.data, count: t.count }; + }), + a = 0, + s = r.desc.fields; + a < s.length; + a++ + ) { + var l = s[a]; + i.columns.push( + (function (t, e, n) { + for ( + var r = !1, + i = t.typedArray + ? new t.typedArray(n) + : ((r = !0), new Array(n)), + o = new Uint8Array(n), + a = t.presence, + s = t.number || t.string, + l = !0, + u = 0, + c = 0, + A = e; + c < A.length; + c++ + ) + for (var h = A[c], p = h.data, d = 0, f = h.count; d < f; d++) { + var g = a ? a(p, d) : 0; + 0 !== g + ? ((o[u] = g), r && (i[u] = null), (l = !1)) + : ((o[u] = 0), (i[u] = s(p, d))), + u++; + } + var m, + n = (t.encoder || v.Encoder.by(v.Encoder.stringArray)).encode( + i, + ), + e = void 0; + return ( + l || + (e = + (m = v.Encoder.by(v.Encoder.runLength) + .and(v.Encoder.byteArray) + .encode(o)).data.length < o.length + ? m + : v.Encoder.by(v.Encoder.byteArray).encode(o)), + { name: t.name, data: n, mask: e } + ); + })(l, o, n), + ); + } + this.dataBlocks[this.dataBlocks.length - 1].categories.push(i); + } + } + }), + (t.prototype.encode = function () { + (this.encodedData = v.MessagePack.encode(this.data)), + (this.data = null), + (this.dataBlocks = null); + }), + (t.prototype.flush = function (t) { + t.writeBinary(this.encodedData); + }), + (v.Writer = t); + })((E = w = w || {}).Binary || (E.Binary = {})); + var Mt, + Dt, + St, + kt, + Ft, + Qt, + _t, + Tt, + Rt, + Ut, + Nt, + Pt, + Lt, + Yt, + Ot, + Gt, + zt, + Ht, + jt, + Vt, + qt, + Wt, + Kt, + Zt, + Xt, + $t, + te, + ee, + ne, + re, + ie, + oe, + ae, + se, + le, + ue, + ce, + Ae, + he, + pe, + de, + fe, + ge, + me, + ve, + be, + ye, + we, + Ee, + Be, + Ce, + xe, + Ie, + Me, + De, + Se, + ke, + Fe, + Qe, + _e, + Te, + Re, + Ue, + Ne, + Pe, + Le, + Ye, + Oe, + Ge, + ze, + He, + je, + Ve, + qe, + We, + Je, + Ke, + Ze, + Xe, + $e, + tn, + en, + nn, + rn, + on, + an, + sn, + ln, + un, + cn, + An, + hn, + pn, + dn, + fn, + gn, + mn, + vn, + bn, + yn, + wn, + En, + Bn, + Cn, + xn, + In, + Mn, + Dn, + Sn, + kn, + Fn, + Qn, + _n, + Tn, + Rn, + Un, + Nn, + Pn, + Ln, + Yn, + On, + Gn, + zn, + Hn, + jn, + Vn, + qn, + Wn, + Jn, + Kn, + Zn, + Xn, + $n, + tr, + er, + nr, + rr, + ir, + or, + ar, + sr, + lr, + ur, + cr, + Ar, + hr, + pr, + dr, + fr, + Jt, + e = w, + n = + ((Jt = { REVISION: '71' }), + void 0 === Math.sign && + (Math.sign = function (t) { + return t < 0 ? -1 : 0 < t ? 1 : +t; + }), + (Jt.log = function () { + console.log.apply(console, arguments); + }), + (Jt.warn = function () { + console.warn.apply(console, arguments); + }), + (Jt.error = function () { + console.error.apply(console, arguments); + }), + (Jt.MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2 }), + (Jt.CullFaceNone = 0), + (Jt.CullFaceBack = 1), + (Jt.CullFaceFront = 2), + (Jt.CullFaceFrontBack = 3), + (Jt.FrontFaceDirectionCW = 0), + (Jt.FrontFaceDirectionCCW = 1), + (Jt.BasicShadowMap = 0), + (Jt.PCFShadowMap = 1), + (Jt.PCFSoftShadowMap = 2), + (Jt.FrontSide = 0), + (Jt.BackSide = 1), + (Jt.DoubleSide = 2), + (Jt.NoShading = 0), + (Jt.FlatShading = 1), + (Jt.SmoothShading = 2), + (Jt.NoColors = 0), + (Jt.FaceColors = 1), + (Jt.VertexColors = 2), + (Jt.NoBlending = 0), + (Jt.NormalBlending = 1), + (Jt.AdditiveBlending = 2), + (Jt.SubtractiveBlending = 3), + (Jt.MultiplyBlending = 4), + (Jt.CustomBlending = 5), + (Jt.AddEquation = 100), + (Jt.SubtractEquation = 101), + (Jt.ReverseSubtractEquation = 102), + (Jt.MinEquation = 103), + (Jt.MaxEquation = 104), + (Jt.ZeroFactor = 200), + (Jt.OneFactor = 201), + (Jt.SrcColorFactor = 202), + (Jt.OneMinusSrcColorFactor = 203), + (Jt.SrcAlphaFactor = 204), + (Jt.OneMinusSrcAlphaFactor = 205), + (Jt.DstAlphaFactor = 206), + (Jt.OneMinusDstAlphaFactor = 207), + (Jt.DstColorFactor = 208), + (Jt.OneMinusDstColorFactor = 209), + (Jt.SrcAlphaSaturateFactor = 210), + (Jt.MultiplyOperation = 0), + (Jt.MixOperation = 1), + (Jt.AddOperation = 2), + (Jt.UVMapping = 300), + (Jt.CubeReflectionMapping = 301), + (Jt.CubeRefractionMapping = 302), + (Jt.EquirectangularReflectionMapping = 303), + (Jt.EquirectangularRefractionMapping = 304), + (Jt.SphericalReflectionMapping = 305), + (Jt.RepeatWrapping = 1e3), + (Jt.ClampToEdgeWrapping = 1001), + (Jt.MirroredRepeatWrapping = 1002), + (Jt.NearestFilter = 1003), + (Jt.NearestMipMapNearestFilter = 1004), + (Jt.NearestMipMapLinearFilter = 1005), + (Jt.LinearFilter = 1006), + (Jt.LinearMipMapNearestFilter = 1007), + (Jt.LinearMipMapLinearFilter = 1008), + (Jt.UnsignedByteType = 1009), + (Jt.ByteType = 1010), + (Jt.ShortType = 1011), + (Jt.UnsignedShortType = 1012), + (Jt.IntType = 1013), + (Jt.UnsignedIntType = 1014), + (Jt.FloatType = 1015), + (Jt.HalfFloatType = 1025), + (Jt.UnsignedShort4444Type = 1016), + (Jt.UnsignedShort5551Type = 1017), + (Jt.UnsignedShort565Type = 1018), + (Jt.AlphaFormat = 1019), + (Jt.RGBFormat = 1020), + (Jt.RGBAFormat = 1021), + (Jt.LuminanceFormat = 1022), + (Jt.LuminanceAlphaFormat = 1023), + (Jt.RGBEFormat = Jt.RGBAFormat), + (Jt.RGB_S3TC_DXT1_Format = 2001), + (Jt.RGBA_S3TC_DXT1_Format = 2002), + (Jt.RGBA_S3TC_DXT3_Format = 2003), + (Jt.RGBA_S3TC_DXT5_Format = 2004), + (Jt.RGB_PVRTC_4BPPV1_Format = 2100), + (Jt.RGB_PVRTC_2BPPV1_Format = 2101), + (Jt.RGBA_PVRTC_4BPPV1_Format = 2102), + (Jt.RGBA_PVRTC_2BPPV1_Format = 2103), + (Jt.Projector = function () { + Jt.error( + 'THREE.Projector has been moved to /examples/js/renderers/Projector.js.', + ), + (this.projectVector = function (t, e) { + Jt.warn('THREE.Projector: .projectVector() is now vector.project().'), + t.project(e); + }), + (this.unprojectVector = function (t, e) { + Jt.warn('THREE.Projector: .unprojectVector() is now vector.unproject().'), + t.unproject(e); + }), + (this.pickingRay = function (t, e) { + Jt.error( + 'THREE.Projector: .pickingRay() is now raycaster.setFromCamera().', + ); + }); + }), + (Jt.CanvasRenderer = function () { + Jt.error( + 'THREE.CanvasRenderer has been moved to /examples/js/renderers/CanvasRenderer.js', + ), + (this.domElement = document.createElement('canvas')), + (this.clear = function () {}), + (this.render = function () {}), + (this.setClearColor = function () {}), + (this.setSize = function () {}); + }), + (Jt.Color = function (t) { + return 3 === arguments.length + ? this.setRGB(t, arguments[1], arguments[2]) + : this.set(t); + }), + (Jt.Color.prototype = { + constructor: Jt.Color, + r: 1, + g: 1, + b: 1, + set: function (t) { + return ( + t instanceof Jt.Color + ? this.copy(t) + : 'number' == typeof t + ? this.setHex(t) + : 'string' == typeof t && this.setStyle(t), + this + ); + }, + setHex: function (t) { + return ( + (t = Math.floor(t)), + (this.r = ((t >> 16) & 255) / 255), + (this.g = ((t >> 8) & 255) / 255), + (this.b = (255 & t) / 255), + this + ); + }, + setRGB: function (t, e, n) { + return (this.r = t), (this.g = e), (this.b = n), this; + }, + setHSL: function (t, e, n) { + var r; + return ( + 0 === e + ? (this.r = this.g = this.b = n) + : ((this.r = (r = function (t, e, n) { + return ( + n < 0 && (n += 1), + 1 < n && --n, + n < 1 / 6 + ? t + 6 * (e - t) * n + : n < 0.5 + ? e + : n < 2 / 3 + ? t + 6 * (e - t) * (2 / 3 - n) + : t + ); + })( + (e = 2 * n - (n = n <= 0.5 ? n * (1 + e) : n + e - n * e)), + n, + t + 1 / 3, + )), + (this.g = r(e, n, t)), + (this.b = r(e, n, t - 1 / 3))), + this + ); + }, + setStyle: function (t) { + var e; + return /^rgb\((\d+), ?(\d+), ?(\d+)\)$/i.test(t) + ? ((e = /^rgb\((\d+), ?(\d+), ?(\d+)\)$/i.exec(t)), + (this.r = Math.min(255, parseInt(e[1], 10)) / 255), + (this.g = Math.min(255, parseInt(e[2], 10)) / 255), + (this.b = Math.min(255, parseInt(e[3], 10)) / 255), + this) + : /^rgb\((\d+)\%, ?(\d+)\%, ?(\d+)\%\)$/i.test(t) + ? ((e = /^rgb\((\d+)\%, ?(\d+)\%, ?(\d+)\%\)$/i.exec(t)), + (this.r = Math.min(100, parseInt(e[1], 10)) / 100), + (this.g = Math.min(100, parseInt(e[2], 10)) / 100), + (this.b = Math.min(100, parseInt(e[3], 10)) / 100), + this) + : /^\#([0-9a-f]{6})$/i.test(t) + ? ((e = /^\#([0-9a-f]{6})$/i.exec(t)), + this.setHex(parseInt(e[1], 16)), + this) + : /^\#([0-9a-f])([0-9a-f])([0-9a-f])$/i.test(t) + ? ((e = /^\#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(t)), + this.setHex( + parseInt(e[1] + e[1] + e[2] + e[2] + e[3] + e[3], 16), + ), + this) + : /^(\w+)$/i.test(t) + ? (this.setHex(Jt.ColorKeywords[t]), this) + : void 0; + }, + copy: function (t) { + return (this.r = t.r), (this.g = t.g), (this.b = t.b), this; + }, + copyGammaToLinear: function (t, e) { + return ( + void 0 === e && (e = 2), + (this.r = Math.pow(t.r, e)), + (this.g = Math.pow(t.g, e)), + (this.b = Math.pow(t.b, e)), + this + ); + }, + copyLinearToGamma: function (t, e) { + e = 0 < (e = void 0 === e ? 2 : e) ? 1 / e : 1; + return ( + (this.r = Math.pow(t.r, e)), + (this.g = Math.pow(t.g, e)), + (this.b = Math.pow(t.b, e)), + this + ); + }, + convertGammaToLinear: function () { + var t = this.r, + e = this.g, + n = this.b; + return (this.r = t * t), (this.g = e * e), (this.b = n * n), this; + }, + convertLinearToGamma: function () { + return ( + (this.r = Math.sqrt(this.r)), + (this.g = Math.sqrt(this.g)), + (this.b = Math.sqrt(this.b)), + this + ); + }, + getHex: function () { + return ( + ((255 * this.r) << 16) ^ ((255 * this.g) << 8) ^ ((255 * this.b) << 0) + ); + }, + getHexString: function () { + return ('000000' + this.getHex().toString(16)).slice(-6); + }, + getHSL: function (t) { + var e, + t = t || { h: 0, s: 0, l: 0 }, + n = this.r, + r = this.g, + i = this.b, + o = Math.max(n, r, i), + a = Math.min(n, r, i), + s = (a + o) / 2; + if (a === o) u = e = 0; + else { + var l = o - a, + u = s <= 0.5 ? l / (o + a) : l / (2 - o - a); + switch (o) { + case n: + e = (r - i) / l + (r < i ? 6 : 0); + break; + case r: + e = (i - n) / l + 2; + break; + case i: + e = (n - r) / l + 4; + } + e /= 6; + } + return (t.h = e), (t.s = u), (t.l = s), t; + }, + getStyle: function () { + return ( + 'rgb(' + + ((255 * this.r) | 0) + + ',' + + ((255 * this.g) | 0) + + ',' + + ((255 * this.b) | 0) + + ')' + ); + }, + offsetHSL: function (t, e, n) { + var r = this.getHSL(); + return (r.h += t), (r.s += e), (r.l += n), this.setHSL(r.h, r.s, r.l), this; + }, + add: function (t) { + return (this.r += t.r), (this.g += t.g), (this.b += t.b), this; + }, + addColors: function (t, e) { + return ( + (this.r = t.r + e.r), (this.g = t.g + e.g), (this.b = t.b + e.b), this + ); + }, + addScalar: function (t) { + return (this.r += t), (this.g += t), (this.b += t), this; + }, + multiply: function (t) { + return (this.r *= t.r), (this.g *= t.g), (this.b *= t.b), this; + }, + multiplyScalar: function (t) { + return (this.r *= t), (this.g *= t), (this.b *= t), this; + }, + lerp: function (t, e) { + return ( + (this.r += (t.r - this.r) * e), + (this.g += (t.g - this.g) * e), + (this.b += (t.b - this.b) * e), + this + ); + }, + equals: function (t) { + return t.r === this.r && t.g === this.g && t.b === this.b; + }, + fromArray: function (t) { + return (this.r = t[0]), (this.g = t[1]), (this.b = t[2]), this; + }, + toArray: function (t, e) { + return ( + ((t = void 0 === t ? [] : t)[(e = void 0 === e ? 0 : e)] = this.r), + (t[e + 1] = this.g), + (t[e + 2] = this.b), + t + ); + }, + clone: function () { + return new Jt.Color().setRGB(this.r, this.g, this.b); + }, + }), + (Jt.ColorKeywords = { + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074, + }), + (Jt.Quaternion = function (t, e, n, r) { + (this._x = t || 0), + (this._y = e || 0), + (this._z = n || 0), + (this._w = void 0 !== r ? r : 1); + }), + (Jt.Quaternion.prototype = { + constructor: Jt.Quaternion, + _x: 0, + _y: 0, + _z: 0, + _w: 0, + get x() { + return this._x; + }, + set x(t) { + (this._x = t), this.onChangeCallback(); + }, + get y() { + return this._y; + }, + set y(t) { + (this._y = t), this.onChangeCallback(); + }, + get z() { + return this._z; + }, + set z(t) { + (this._z = t), this.onChangeCallback(); + }, + get w() { + return this._w; + }, + set w(t) { + (this._w = t), this.onChangeCallback(); + }, + set: function (t, e, n, r) { + return ( + (this._x = t), + (this._y = e), + (this._z = n), + (this._w = r), + this.onChangeCallback(), + this + ); + }, + copy: function (t) { + return ( + (this._x = t.x), + (this._y = t.y), + (this._z = t.z), + (this._w = t.w), + this.onChangeCallback(), + this + ); + }, + setFromEuler: function (t, e) { + if (t instanceof Jt.Euler == !1) + throw new Error( + 'THREE.Quaternion: .setFromEuler() now expects a Euler rotation rather than a Vector3 and order.', + ); + var n = Math.cos(t._x / 2), + r = Math.cos(t._y / 2), + i = Math.cos(t._z / 2), + o = Math.sin(t._x / 2), + a = Math.sin(t._y / 2), + s = Math.sin(t._z / 2); + return ( + 'XYZ' === t.order + ? ((this._x = o * r * i + n * a * s), + (this._y = n * a * i - o * r * s), + (this._z = n * r * s + o * a * i), + (this._w = n * r * i - o * a * s)) + : 'YXZ' === t.order + ? ((this._x = o * r * i + n * a * s), + (this._y = n * a * i - o * r * s), + (this._z = n * r * s - o * a * i), + (this._w = n * r * i + o * a * s)) + : 'ZXY' === t.order + ? ((this._x = o * r * i - n * a * s), + (this._y = n * a * i + o * r * s), + (this._z = n * r * s + o * a * i), + (this._w = n * r * i - o * a * s)) + : 'ZYX' === t.order + ? ((this._x = o * r * i - n * a * s), + (this._y = n * a * i + o * r * s), + (this._z = n * r * s - o * a * i), + (this._w = n * r * i + o * a * s)) + : 'YZX' === t.order + ? ((this._x = o * r * i + n * a * s), + (this._y = n * a * i + o * r * s), + (this._z = n * r * s - o * a * i), + (this._w = n * r * i - o * a * s)) + : 'XZY' === t.order && + ((this._x = o * r * i - n * a * s), + (this._y = n * a * i - o * r * s), + (this._z = n * r * s + o * a * i), + (this._w = n * r * i + o * a * s)), + !1 !== e && this.onChangeCallback(), + this + ); + }, + setFromAxisAngle: function (t, e) { + var e = e / 2, + n = Math.sin(e); + return ( + (this._x = t.x * n), + (this._y = t.y * n), + (this._z = t.z * n), + (this._w = Math.cos(e)), + this.onChangeCallback(), + this + ); + }, + setFromRotationMatrix: function (t) { + var e, + t = t.elements, + n = t[0], + r = t[4], + i = t[8], + o = t[1], + a = t[5], + s = t[9], + l = t[2], + u = t[6], + t = t[10], + c = n + a + t; + return ( + 0 < c + ? ((e = 0.5 / Math.sqrt(c + 1)), + (this._w = 0.25 / e), + (this._x = (u - s) * e), + (this._y = (i - l) * e), + (this._z = (o - r) * e)) + : a < n && t < n + ? ((e = 2 * Math.sqrt(1 + n - a - t)), + (this._w = (u - s) / e), + (this._x = 0.25 * e), + (this._y = (r + o) / e), + (this._z = (i + l) / e)) + : t < a + ? ((e = 2 * Math.sqrt(1 + a - n - t)), + (this._w = (i - l) / e), + (this._x = (r + o) / e), + (this._y = 0.25 * e), + (this._z = (s + u) / e)) + : ((e = 2 * Math.sqrt(1 + t - n - a)), + (this._w = (o - r) / e), + (this._x = (i + l) / e), + (this._y = (s + u) / e), + (this._z = 0.25 * e)), + this.onChangeCallback(), + this + ); + }, + setFromUnitVectors: function (t, e) { + return ( + void 0 === Mt && (Mt = new Jt.Vector3()), + (Dt = t.dot(e) + 1) < 1e-6 + ? ((Dt = 0), + Math.abs(t.x) > Math.abs(t.z) + ? Mt.set(-t.y, t.x, 0) + : Mt.set(0, -t.z, t.y)) + : Mt.crossVectors(t, e), + (this._x = Mt.x), + (this._y = Mt.y), + (this._z = Mt.z), + (this._w = Dt), + this.normalize(), + this + ); + }, + inverse: function () { + return this.conjugate().normalize(), this; + }, + conjugate: function () { + return ( + (this._x *= -1), + (this._y *= -1), + (this._z *= -1), + this.onChangeCallback(), + this + ); + }, + dot: function (t) { + return this._x * t._x + this._y * t._y + this._z * t._z + this._w * t._w; + }, + lengthSq: function () { + return ( + this._x * this._x + + this._y * this._y + + this._z * this._z + + this._w * this._w + ); + }, + length: function () { + return Math.sqrt( + this._x * this._x + + this._y * this._y + + this._z * this._z + + this._w * this._w, + ); + }, + normalize: function () { + var t = this.length(); + return ( + 0 === t + ? ((this._x = 0), (this._y = 0), (this._z = 0), (this._w = 1)) + : ((this._x = this._x * (t = 1 / t)), + (this._y = this._y * t), + (this._z = this._z * t), + (this._w = this._w * t)), + this.onChangeCallback(), + this + ); + }, + multiply: function (t, e) { + return void 0 !== e + ? (Jt.warn( + 'THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.', + ), + this.multiplyQuaternions(t, e)) + : this.multiplyQuaternions(this, t); + }, + multiplyQuaternions: function (t, e) { + var n = t._x, + r = t._y, + i = t._z, + t = t._w, + o = e._x, + a = e._y, + s = e._z, + e = e._w; + return ( + (this._x = n * e + t * o + r * s - i * a), + (this._y = r * e + t * a + i * o - n * s), + (this._z = i * e + t * s + n * a - r * o), + (this._w = t * e - n * o - r * a - i * s), + this.onChangeCallback(), + this + ); + }, + multiplyVector3: function (t) { + return ( + Jt.warn( + 'THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.', + ), + t.applyQuaternion(this) + ); + }, + slerp: function (t, e) { + if (0 !== e) { + if (1 === e) return this.copy(t); + var n = this._x, + r = this._y, + i = this._z, + o = this._w, + a = o * t._w + n * t._x + r * t._y + i * t._z; + if ( + (a < 0 + ? ((this._w = -t._w), + (this._x = -t._x), + (this._y = -t._y), + (this._z = -t._z), + (a = -a)) + : this.copy(t), + 1 <= a) + ) + return (this._w = o), (this._x = n), (this._y = r), (this._z = i), this; + (t = Math.acos(a)), (a = Math.sqrt(1 - a * a)); + if (Math.abs(a) < 0.001) + return ( + (this._w = 0.5 * (o + this._w)), + (this._x = 0.5 * (n + this._x)), + (this._y = 0.5 * (r + this._y)), + (this._z = 0.5 * (i + this._z)), + this + ); + var s = Math.sin((1 - e) * t) / a, + e = Math.sin(e * t) / a; + (this._w = o * s + this._w * e), + (this._x = n * s + this._x * e), + (this._y = r * s + this._y * e), + (this._z = i * s + this._z * e), + this.onChangeCallback(); + } + return this; + }, + equals: function (t) { + return ( + t._x === this._x && + t._y === this._y && + t._z === this._z && + t._w === this._w + ); + }, + fromArray: function (t, e) { + return ( + (this._x = t[(e = void 0 === e ? 0 : e)]), + (this._y = t[e + 1]), + (this._z = t[e + 2]), + (this._w = t[e + 3]), + this.onChangeCallback(), + this + ); + }, + toArray: function (t, e) { + return ( + ((t = void 0 === t ? [] : t)[(e = void 0 === e ? 0 : e)] = this._x), + (t[e + 1] = this._y), + (t[e + 2] = this._z), + (t[e + 3] = this._w), + t + ); + }, + onChange: function (t) { + return (this.onChangeCallback = t), this; + }, + onChangeCallback: function () {}, + clone: function () { + return new Jt.Quaternion(this._x, this._y, this._z, this._w); + }, + }), + (Jt.Quaternion.slerp = function (t, e, n, r) { + return n.copy(t).slerp(e, r); + }), + (Jt.Vector2 = function (t, e) { + (this.x = t || 0), (this.y = e || 0); + }), + (Jt.Vector2.prototype = { + constructor: Jt.Vector2, + set: function (t, e) { + return (this.x = t), (this.y = e), this; + }, + setX: function (t) { + return (this.x = t), this; + }, + setY: function (t) { + return (this.y = t), this; + }, + setComponent: function (t, e) { + switch (t) { + case 0: + this.x = e; + break; + case 1: + this.y = e; + break; + default: + throw new Error('index is out of range: ' + t); + } + }, + getComponent: function (t) { + switch (t) { + case 0: + return this.x; + case 1: + return this.y; + default: + throw new Error('index is out of range: ' + t); + } + }, + copy: function (t) { + return (this.x = t.x), (this.y = t.y), this; + }, + add: function (t, e) { + return void 0 !== e + ? (Jt.warn( + 'THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.', + ), + this.addVectors(t, e)) + : ((this.x += t.x), (this.y += t.y), this); + }, + addScalar: function (t) { + return (this.x += t), (this.y += t), this; + }, + addVectors: function (t, e) { + return (this.x = t.x + e.x), (this.y = t.y + e.y), this; + }, + sub: function (t, e) { + return void 0 !== e + ? (Jt.warn( + 'THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.', + ), + this.subVectors(t, e)) + : ((this.x -= t.x), (this.y -= t.y), this); + }, + subScalar: function (t) { + return (this.x -= t), (this.y -= t), this; + }, + subVectors: function (t, e) { + return (this.x = t.x - e.x), (this.y = t.y - e.y), this; + }, + multiply: function (t) { + return (this.x *= t.x), (this.y *= t.y), this; + }, + multiplyScalar: function (t) { + return (this.x *= t), (this.y *= t), this; + }, + divide: function (t) { + return (this.x /= t.x), (this.y /= t.y), this; + }, + divideScalar: function (t) { + return ( + 0 !== t + ? ((this.x *= t = 1 / t), (this.y *= t)) + : ((this.x = 0), (this.y = 0)), + this + ); + }, + min: function (t) { + return this.x > t.x && (this.x = t.x), this.y > t.y && (this.y = t.y), this; + }, + max: function (t) { + return this.x < t.x && (this.x = t.x), this.y < t.y && (this.y = t.y), this; + }, + clamp: function (t, e) { + return ( + this.x < t.x ? (this.x = t.x) : this.x > e.x && (this.x = e.x), + this.y < t.y ? (this.y = t.y) : this.y > e.y && (this.y = e.y), + this + ); + }, + clampScalar: function (t, e) { + return ( + void 0 === St && ((St = new Jt.Vector2()), (kt = new Jt.Vector2())), + St.set(t, t), + kt.set(e, e), + this.clamp(St, kt) + ); + }, + floor: function () { + return (this.x = Math.floor(this.x)), (this.y = Math.floor(this.y)), this; + }, + ceil: function () { + return (this.x = Math.ceil(this.x)), (this.y = Math.ceil(this.y)), this; + }, + round: function () { + return (this.x = Math.round(this.x)), (this.y = Math.round(this.y)), this; + }, + roundToZero: function () { + return ( + (this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x)), + (this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y)), + this + ); + }, + negate: function () { + return (this.x = -this.x), (this.y = -this.y), this; + }, + dot: function (t) { + return this.x * t.x + this.y * t.y; + }, + lengthSq: function () { + return this.x * this.x + this.y * this.y; + }, + length: function () { + return Math.sqrt(this.x * this.x + this.y * this.y); + }, + normalize: function () { + return this.divideScalar(this.length()); + }, + distanceTo: function (t) { + return Math.sqrt(this.distanceToSquared(t)); + }, + distanceToSquared: function (t) { + var e = this.x - t.x, + t = this.y - t.y; + return e * e + t * t; + }, + setLength: function (t) { + var e = this.length(); + return 0 !== e && t !== e && this.multiplyScalar(t / e), this; + }, + lerp: function (t, e) { + return (this.x += (t.x - this.x) * e), (this.y += (t.y - this.y) * e), this; + }, + lerpVectors: function (t, e, n) { + return this.subVectors(e, t).multiplyScalar(n).add(t), this; + }, + equals: function (t) { + return t.x === this.x && t.y === this.y; + }, + fromArray: function (t, e) { + return (this.x = t[(e = void 0 === e ? 0 : e)]), (this.y = t[e + 1]), this; + }, + toArray: function (t, e) { + return ( + ((t = void 0 === t ? [] : t)[(e = void 0 === e ? 0 : e)] = this.x), + (t[e + 1] = this.y), + t + ); + }, + fromAttribute: function (t, e, n) { + return ( + (e = e * t.itemSize + (n = void 0 === n ? 0 : n)), + (this.x = t.array[e]), + (this.y = t.array[e + 1]), + this + ); + }, + clone: function () { + return new Jt.Vector2(this.x, this.y); + }, + }), + (Jt.Vector3 = function (t, e, n) { + (this.x = t || 0), (this.y = e || 0), (this.z = n || 0); + }), + (Jt.Vector3.prototype = { + constructor: Jt.Vector3, + set: function (t, e, n) { + return (this.x = t), (this.y = e), (this.z = n), this; + }, + setX: function (t) { + return (this.x = t), this; + }, + setY: function (t) { + return (this.y = t), this; + }, + setZ: function (t) { + return (this.z = t), this; + }, + setComponent: function (t, e) { + switch (t) { + case 0: + this.x = e; + break; + case 1: + this.y = e; + break; + case 2: + this.z = e; + break; + default: + throw new Error('index is out of range: ' + t); + } + }, + getComponent: function (t) { + switch (t) { + case 0: + return this.x; + case 1: + return this.y; + case 2: + return this.z; + default: + throw new Error('index is out of range: ' + t); + } + }, + copy: function (t) { + return (this.x = t.x), (this.y = t.y), (this.z = t.z), this; + }, + add: function (t, e) { + return void 0 !== e + ? (Jt.warn( + 'THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.', + ), + this.addVectors(t, e)) + : ((this.x += t.x), (this.y += t.y), (this.z += t.z), this); + }, + addScalar: function (t) { + return (this.x += t), (this.y += t), (this.z += t), this; + }, + addVectors: function (t, e) { + return ( + (this.x = t.x + e.x), (this.y = t.y + e.y), (this.z = t.z + e.z), this + ); + }, + sub: function (t, e) { + return void 0 !== e + ? (Jt.warn( + 'THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.', + ), + this.subVectors(t, e)) + : ((this.x -= t.x), (this.y -= t.y), (this.z -= t.z), this); + }, + subScalar: function (t) { + return (this.x -= t), (this.y -= t), (this.z -= t), this; + }, + subVectors: function (t, e) { + return ( + (this.x = t.x - e.x), (this.y = t.y - e.y), (this.z = t.z - e.z), this + ); + }, + multiply: function (t, e) { + return void 0 !== e + ? (Jt.warn( + 'THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.', + ), + this.multiplyVectors(t, e)) + : ((this.x *= t.x), (this.y *= t.y), (this.z *= t.z), this); + }, + multiplyScalar: function (t) { + return (this.x *= t), (this.y *= t), (this.z *= t), this; + }, + multiplyVectors: function (t, e) { + return ( + (this.x = t.x * e.x), (this.y = t.y * e.y), (this.z = t.z * e.z), this + ); + }, + applyEuler: function (t) { + return ( + t instanceof Jt.Euler == !1 && + Jt.error( + 'THREE.Vector3: .applyEuler() now expects a Euler rotation rather than a Vector3 and order.', + ), + void 0 === Yt && (Yt = new Jt.Quaternion()), + this.applyQuaternion(Yt.setFromEuler(t)), + this + ); + }, + applyAxisAngle: function (t, e) { + return ( + void 0 === Lt && (Lt = new Jt.Quaternion()), + this.applyQuaternion(Lt.setFromAxisAngle(t, e)), + this + ); + }, + applyMatrix3: function (t) { + var e = this.x, + n = this.y, + r = this.z, + t = t.elements; + return ( + (this.x = t[0] * e + t[3] * n + t[6] * r), + (this.y = t[1] * e + t[4] * n + t[7] * r), + (this.z = t[2] * e + t[5] * n + t[8] * r), + this + ); + }, + applyMatrix4: function (t) { + var e = this.x, + n = this.y, + r = this.z, + t = t.elements; + return ( + (this.x = t[0] * e + t[4] * n + t[8] * r + t[12]), + (this.y = t[1] * e + t[5] * n + t[9] * r + t[13]), + (this.z = t[2] * e + t[6] * n + t[10] * r + t[14]), + this + ); + }, + applyProjection: function (t) { + var e = this.x, + n = this.y, + r = this.z, + t = t.elements, + i = 1 / (t[3] * e + t[7] * n + t[11] * r + t[15]); + return ( + (this.x = (t[0] * e + t[4] * n + t[8] * r + t[12]) * i), + (this.y = (t[1] * e + t[5] * n + t[9] * r + t[13]) * i), + (this.z = (t[2] * e + t[6] * n + t[10] * r + t[14]) * i), + this + ); + }, + applyQuaternion: function (t) { + var e = this.x, + n = this.y, + r = this.z, + i = t.x, + o = t.y, + a = t.z, + t = t.w, + s = t * e + o * r - a * n, + l = t * n + a * e - i * r, + u = t * r + i * n - o * e, + e = -i * e - o * n - a * r; + return ( + (this.x = s * t + e * -i + l * -a - u * -o), + (this.y = l * t + e * -o + u * -i - s * -a), + (this.z = u * t + e * -a + s * -o - l * -i), + this + ); + }, + project: function (t) { + return ( + (Pt = void 0 === Pt ? new Jt.Matrix4() : Pt).multiplyMatrices( + t.projectionMatrix, + Pt.getInverse(t.matrixWorld), + ), + this.applyProjection(Pt) + ); + }, + unproject: function (t) { + return ( + (Nt = void 0 === Nt ? new Jt.Matrix4() : Nt).multiplyMatrices( + t.matrixWorld, + Nt.getInverse(t.projectionMatrix), + ), + this.applyProjection(Nt) + ); + }, + transformDirection: function (t) { + var e = this.x, + n = this.y, + r = this.z, + t = t.elements; + return ( + (this.x = t[0] * e + t[4] * n + t[8] * r), + (this.y = t[1] * e + t[5] * n + t[9] * r), + (this.z = t[2] * e + t[6] * n + t[10] * r), + this.normalize(), + this + ); + }, + divide: function (t) { + return (this.x /= t.x), (this.y /= t.y), (this.z /= t.z), this; + }, + divideScalar: function (t) { + return ( + 0 !== t + ? ((this.x *= t = 1 / t), (this.y *= t), (this.z *= t)) + : ((this.x = 0), (this.y = 0), (this.z = 0)), + this + ); + }, + min: function (t) { + return ( + this.x > t.x && (this.x = t.x), + this.y > t.y && (this.y = t.y), + this.z > t.z && (this.z = t.z), + this + ); + }, + max: function (t) { + return ( + this.x < t.x && (this.x = t.x), + this.y < t.y && (this.y = t.y), + this.z < t.z && (this.z = t.z), + this + ); + }, + clamp: function (t, e) { + return ( + this.x < t.x ? (this.x = t.x) : this.x > e.x && (this.x = e.x), + this.y < t.y ? (this.y = t.y) : this.y > e.y && (this.y = e.y), + this.z < t.z ? (this.z = t.z) : this.z > e.z && (this.z = e.z), + this + ); + }, + clampScalar: function (t, e) { + return ( + void 0 === Rt && ((Rt = new Jt.Vector3()), (Ut = new Jt.Vector3())), + Rt.set(t, t, t), + Ut.set(e, e, e), + this.clamp(Rt, Ut) + ); + }, + floor: function () { + return ( + (this.x = Math.floor(this.x)), + (this.y = Math.floor(this.y)), + (this.z = Math.floor(this.z)), + this + ); + }, + ceil: function () { + return ( + (this.x = Math.ceil(this.x)), + (this.y = Math.ceil(this.y)), + (this.z = Math.ceil(this.z)), + this + ); + }, + round: function () { + return ( + (this.x = Math.round(this.x)), + (this.y = Math.round(this.y)), + (this.z = Math.round(this.z)), + this + ); + }, + roundToZero: function () { + return ( + (this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x)), + (this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y)), + (this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z)), + this + ); + }, + negate: function () { + return (this.x = -this.x), (this.y = -this.y), (this.z = -this.z), this; + }, + dot: function (t) { + return this.x * t.x + this.y * t.y + this.z * t.z; + }, + lengthSq: function () { + return this.x * this.x + this.y * this.y + this.z * this.z; + }, + length: function () { + return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); + }, + lengthManhattan: function () { + return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z); + }, + normalize: function () { + return this.divideScalar(this.length()); + }, + setLength: function (t) { + var e = this.length(); + return 0 !== e && t !== e && this.multiplyScalar(t / e), this; + }, + lerp: function (t, e) { + return ( + (this.x += (t.x - this.x) * e), + (this.y += (t.y - this.y) * e), + (this.z += (t.z - this.z) * e), + this + ); + }, + lerpVectors: function (t, e, n) { + return this.subVectors(e, t).multiplyScalar(n).add(t), this; + }, + cross: function (t, e) { + if (void 0 !== e) + return ( + Jt.warn( + 'THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.', + ), + this.crossVectors(t, e) + ); + var e = this.x, + n = this.y, + r = this.z; + return ( + (this.x = n * t.z - r * t.y), + (this.y = r * t.x - e * t.z), + (this.z = e * t.y - n * t.x), + this + ); + }, + crossVectors: function (t, e) { + var n = t.x, + r = t.y, + t = t.z, + i = e.x, + o = e.y, + e = e.z; + return ( + (this.x = r * e - t * o), + (this.y = t * i - n * e), + (this.z = n * o - r * i), + this + ); + }, + projectOnVector: function (t) { + return ( + (_t = void 0 === _t ? new Jt.Vector3() : _t).copy(t).normalize(), + (Tt = this.dot(_t)), + this.copy(_t).multiplyScalar(Tt) + ); + }, + projectOnPlane: function (t) { + return ( + (Qt = void 0 === Qt ? new Jt.Vector3() : Qt) + .copy(this) + .projectOnVector(t), + this.sub(Qt) + ); + }, + reflect: function (t) { + return ( + void 0 === Ft && (Ft = new Jt.Vector3()), + this.sub(Ft.copy(t).multiplyScalar(2 * this.dot(t))) + ); + }, + angleTo: function (t) { + t = this.dot(t) / (this.length() * t.length()); + return Math.acos(Jt.Math.clamp(t, -1, 1)); + }, + distanceTo: function (t) { + return Math.sqrt(this.distanceToSquared(t)); + }, + distanceToSquared: function (t) { + var e = this.x - t.x, + n = this.y - t.y, + t = this.z - t.z; + return e * e + n * n + t * t; + }, + setEulerFromRotationMatrix: function (t, e) { + Jt.error( + 'THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.', + ); + }, + setEulerFromQuaternion: function (t, e) { + Jt.error( + 'THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.', + ); + }, + getPositionFromMatrix: function (t) { + return ( + Jt.warn( + 'THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().', + ), + this.setFromMatrixPosition(t) + ); + }, + getScaleFromMatrix: function (t) { + return ( + Jt.warn( + 'THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().', + ), + this.setFromMatrixScale(t) + ); + }, + getColumnFromMatrix: function (t, e) { + return ( + Jt.warn( + 'THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().', + ), + this.setFromMatrixColumn(t, e) + ); + }, + setFromMatrixPosition: function (t) { + return ( + (this.x = t.elements[12]), + (this.y = t.elements[13]), + (this.z = t.elements[14]), + this + ); + }, + setFromMatrixScale: function (t) { + var e = this.set(t.elements[0], t.elements[1], t.elements[2]).length(), + n = this.set(t.elements[4], t.elements[5], t.elements[6]).length(), + t = this.set(t.elements[8], t.elements[9], t.elements[10]).length(); + return (this.x = e), (this.y = n), (this.z = t), this; + }, + setFromMatrixColumn: function (t, e) { + (t *= 4), (e = e.elements); + return (this.x = e[t]), (this.y = e[1 + t]), (this.z = e[2 + t]), this; + }, + equals: function (t) { + return t.x === this.x && t.y === this.y && t.z === this.z; + }, + fromArray: function (t, e) { + return ( + (this.x = t[(e = void 0 === e ? 0 : e)]), + (this.y = t[e + 1]), + (this.z = t[e + 2]), + this + ); + }, + toArray: function (t, e) { + return ( + ((t = void 0 === t ? [] : t)[(e = void 0 === e ? 0 : e)] = this.x), + (t[e + 1] = this.y), + (t[e + 2] = this.z), + t + ); + }, + fromAttribute: function (t, e, n) { + return ( + (e = e * t.itemSize + (n = void 0 === n ? 0 : n)), + (this.x = t.array[e]), + (this.y = t.array[e + 1]), + (this.z = t.array[e + 2]), + this + ); + }, + clone: function () { + return new Jt.Vector3(this.x, this.y, this.z); + }, + }), + (Jt.Vector4 = function (t, e, n, r) { + (this.x = t || 0), + (this.y = e || 0), + (this.z = n || 0), + (this.w = void 0 !== r ? r : 1); + }), + (Jt.Vector4.prototype = { + constructor: Jt.Vector4, + set: function (t, e, n, r) { + return (this.x = t), (this.y = e), (this.z = n), (this.w = r), this; + }, + setX: function (t) { + return (this.x = t), this; + }, + setY: function (t) { + return (this.y = t), this; + }, + setZ: function (t) { + return (this.z = t), this; + }, + setW: function (t) { + return (this.w = t), this; + }, + setComponent: function (t, e) { + switch (t) { + case 0: + this.x = e; + break; + case 1: + this.y = e; + break; + case 2: + this.z = e; + break; + case 3: + this.w = e; + break; + default: + throw new Error('index is out of range: ' + t); + } + }, + getComponent: function (t) { + switch (t) { + case 0: + return this.x; + case 1: + return this.y; + case 2: + return this.z; + case 3: + return this.w; + default: + throw new Error('index is out of range: ' + t); + } + }, + copy: function (t) { + return ( + (this.x = t.x), + (this.y = t.y), + (this.z = t.z), + (this.w = void 0 !== t.w ? t.w : 1), + this + ); + }, + add: function (t, e) { + return void 0 !== e + ? (Jt.warn( + 'THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.', + ), + this.addVectors(t, e)) + : ((this.x += t.x), + (this.y += t.y), + (this.z += t.z), + (this.w += t.w), + this); + }, + addScalar: function (t) { + return (this.x += t), (this.y += t), (this.z += t), (this.w += t), this; + }, + addVectors: function (t, e) { + return ( + (this.x = t.x + e.x), + (this.y = t.y + e.y), + (this.z = t.z + e.z), + (this.w = t.w + e.w), + this + ); + }, + sub: function (t, e) { + return void 0 !== e + ? (Jt.warn( + 'THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.', + ), + this.subVectors(t, e)) + : ((this.x -= t.x), + (this.y -= t.y), + (this.z -= t.z), + (this.w -= t.w), + this); + }, + subScalar: function (t) { + return (this.x -= t), (this.y -= t), (this.z -= t), (this.w -= t), this; + }, + subVectors: function (t, e) { + return ( + (this.x = t.x - e.x), + (this.y = t.y - e.y), + (this.z = t.z - e.z), + (this.w = t.w - e.w), + this + ); + }, + multiplyScalar: function (t) { + return (this.x *= t), (this.y *= t), (this.z *= t), (this.w *= t), this; + }, + applyMatrix4: function (t) { + var e = this.x, + n = this.y, + r = this.z, + i = this.w, + t = t.elements; + return ( + (this.x = t[0] * e + t[4] * n + t[8] * r + t[12] * i), + (this.y = t[1] * e + t[5] * n + t[9] * r + t[13] * i), + (this.z = t[2] * e + t[6] * n + t[10] * r + t[14] * i), + (this.w = t[3] * e + t[7] * n + t[11] * r + t[15] * i), + this + ); + }, + divideScalar: function (t) { + return ( + 0 !== t + ? ((this.x *= t = 1 / t), (this.y *= t), (this.z *= t), (this.w *= t)) + : ((this.x = 0), (this.y = 0), (this.z = 0), (this.w = 1)), + this + ); + }, + setAxisAngleFromQuaternion: function (t) { + this.w = 2 * Math.acos(t.w); + var e = Math.sqrt(1 - t.w * t.w); + return ( + e < 1e-4 + ? ((this.x = 1), (this.y = 0), (this.z = 0)) + : ((this.x = t.x / e), (this.y = t.y / e), (this.z = t.z / e)), + this + ); + }, + setAxisAngleFromRotationMatrix: function (t) { + var e, + n, + r, + t = t.elements, + i = t[0], + o = t[4], + a = t[8], + s = t[1], + l = t[5], + u = t[9], + c = t[2], + A = t[6], + t = t[10]; + if ( + Math.abs(o - s) < 0.01 && + Math.abs(a - c) < 0.01 && + Math.abs(u - A) < 0.01 + ) { + if ( + Math.abs(o + s) < 0.1 && + Math.abs(a + c) < 0.1 && + Math.abs(u + A) < 0.1 && + Math.abs(i + l + t - 3) < 0.1 + ) + return this.set(1, 0, 0, 0), this; + var h = Math.PI, + p = (i + 1) / 2, + d = (l + 1) / 2, + f = (t + 1) / 2, + g = (o + s) / 4, + m = (a + c) / 4, + v = (u + A) / 4; + return ( + d < p && f < p + ? (r = + p < 0.01 + ? ((e = 0), (n = 0.707106781)) + : ((n = g / (e = Math.sqrt(p))), m / e)) + : f < d + ? (r = + d < 0.01 + ? ((n = 0), (e = 0.707106781)) + : ((e = g / (n = Math.sqrt(d))), v / n)) + : f < 0.01 + ? ((n = e = 0.707106781), (r = 0)) + : ((e = m / (r = Math.sqrt(f))), (n = v / r)), + this.set(e, n, r, h), + this + ); + } + p = Math.sqrt((A - u) * (A - u) + (a - c) * (a - c) + (s - o) * (s - o)); + return ( + Math.abs(p) < 0.001 && (p = 1), + (this.x = (A - u) / p), + (this.y = (a - c) / p), + (this.z = (s - o) / p), + (this.w = Math.acos((i + l + t - 1) / 2)), + this + ); + }, + min: function (t) { + return ( + this.x > t.x && (this.x = t.x), + this.y > t.y && (this.y = t.y), + this.z > t.z && (this.z = t.z), + this.w > t.w && (this.w = t.w), + this + ); + }, + max: function (t) { + return ( + this.x < t.x && (this.x = t.x), + this.y < t.y && (this.y = t.y), + this.z < t.z && (this.z = t.z), + this.w < t.w && (this.w = t.w), + this + ); + }, + clamp: function (t, e) { + return ( + this.x < t.x ? (this.x = t.x) : this.x > e.x && (this.x = e.x), + this.y < t.y ? (this.y = t.y) : this.y > e.y && (this.y = e.y), + this.z < t.z ? (this.z = t.z) : this.z > e.z && (this.z = e.z), + this.w < t.w ? (this.w = t.w) : this.w > e.w && (this.w = e.w), + this + ); + }, + clampScalar: function (t, e) { + return ( + void 0 === Ot && ((Ot = new Jt.Vector4()), (Gt = new Jt.Vector4())), + Ot.set(t, t, t, t), + Gt.set(e, e, e, e), + this.clamp(Ot, Gt) + ); + }, + floor: function () { + return ( + (this.x = Math.floor(this.x)), + (this.y = Math.floor(this.y)), + (this.z = Math.floor(this.z)), + (this.w = Math.floor(this.w)), + this + ); + }, + ceil: function () { + return ( + (this.x = Math.ceil(this.x)), + (this.y = Math.ceil(this.y)), + (this.z = Math.ceil(this.z)), + (this.w = Math.ceil(this.w)), + this + ); + }, + round: function () { + return ( + (this.x = Math.round(this.x)), + (this.y = Math.round(this.y)), + (this.z = Math.round(this.z)), + (this.w = Math.round(this.w)), + this + ); + }, + roundToZero: function () { + return ( + (this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x)), + (this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y)), + (this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z)), + (this.w = this.w < 0 ? Math.ceil(this.w) : Math.floor(this.w)), + this + ); + }, + negate: function () { + return ( + (this.x = -this.x), + (this.y = -this.y), + (this.z = -this.z), + (this.w = -this.w), + this + ); + }, + dot: function (t) { + return this.x * t.x + this.y * t.y + this.z * t.z + this.w * t.w; + }, + lengthSq: function () { + return ( + this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w + ); + }, + length: function () { + return Math.sqrt( + this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w, + ); + }, + lengthManhattan: function () { + return ( + Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w) + ); + }, + normalize: function () { + return this.divideScalar(this.length()); + }, + setLength: function (t) { + var e = this.length(); + return 0 !== e && t !== e && this.multiplyScalar(t / e), this; + }, + lerp: function (t, e) { + return ( + (this.x += (t.x - this.x) * e), + (this.y += (t.y - this.y) * e), + (this.z += (t.z - this.z) * e), + (this.w += (t.w - this.w) * e), + this + ); + }, + lerpVectors: function (t, e, n) { + return this.subVectors(e, t).multiplyScalar(n).add(t), this; + }, + equals: function (t) { + return t.x === this.x && t.y === this.y && t.z === this.z && t.w === this.w; + }, + fromArray: function (t, e) { + return ( + (this.x = t[(e = void 0 === e ? 0 : e)]), + (this.y = t[e + 1]), + (this.z = t[e + 2]), + (this.w = t[e + 3]), + this + ); + }, + toArray: function (t, e) { + return ( + ((t = void 0 === t ? [] : t)[(e = void 0 === e ? 0 : e)] = this.x), + (t[e + 1] = this.y), + (t[e + 2] = this.z), + (t[e + 3] = this.w), + t + ); + }, + fromAttribute: function (t, e, n) { + return ( + (e = e * t.itemSize + (n = void 0 === n ? 0 : n)), + (this.x = t.array[e]), + (this.y = t.array[e + 1]), + (this.z = t.array[e + 2]), + (this.w = t.array[e + 3]), + this + ); + }, + clone: function () { + return new Jt.Vector4(this.x, this.y, this.z, this.w); + }, + }), + (Jt.Euler = function (t, e, n, r) { + (this._x = t || 0), + (this._y = e || 0), + (this._z = n || 0), + (this._order = r || Jt.Euler.DefaultOrder); + }), + (Jt.Euler.RotationOrders = ['XYZ', 'YZX', 'ZXY', 'XZY', 'YXZ', 'ZYX']), + (Jt.Euler.DefaultOrder = 'XYZ'), + (Jt.Euler.prototype = { + constructor: Jt.Euler, + _x: 0, + _y: 0, + _z: 0, + _order: Jt.Euler.DefaultOrder, + get x() { + return this._x; + }, + set x(t) { + (this._x = t), this.onChangeCallback(); + }, + get y() { + return this._y; + }, + set y(t) { + (this._y = t), this.onChangeCallback(); + }, + get z() { + return this._z; + }, + set z(t) { + (this._z = t), this.onChangeCallback(); + }, + get order() { + return this._order; + }, + set order(t) { + (this._order = t), this.onChangeCallback(); + }, + set: function (t, e, n, r) { + return ( + (this._x = t), + (this._y = e), + (this._z = n), + (this._order = r || this._order), + this.onChangeCallback(), + this + ); + }, + copy: function (t) { + return ( + (this._x = t._x), + (this._y = t._y), + (this._z = t._z), + (this._order = t._order), + this.onChangeCallback(), + this + ); + }, + setFromRotationMatrix: function (t, e, n) { + var r = Jt.Math.clamp, + t = t.elements, + i = t[0], + o = t[4], + a = t[8], + s = t[1], + l = t[5], + u = t[9], + c = t[2], + A = t[6], + t = t[10]; + return ( + 'XYZ' === (e = e || this._order) + ? ((this._y = Math.asin(r(a, -1, 1))), + Math.abs(a) < 0.99999 + ? ((this._x = Math.atan2(-u, t)), (this._z = Math.atan2(-o, i))) + : ((this._x = Math.atan2(A, l)), (this._z = 0))) + : 'YXZ' === e + ? ((this._x = Math.asin(-r(u, -1, 1))), + Math.abs(u) < 0.99999 + ? ((this._y = Math.atan2(a, t)), (this._z = Math.atan2(s, l))) + : ((this._y = Math.atan2(-c, i)), (this._z = 0))) + : 'ZXY' === e + ? ((this._x = Math.asin(r(A, -1, 1))), + Math.abs(A) < 0.99999 + ? ((this._y = Math.atan2(-c, t)), (this._z = Math.atan2(-o, l))) + : ((this._y = 0), (this._z = Math.atan2(s, i)))) + : 'ZYX' === e + ? ((this._y = Math.asin(-r(c, -1, 1))), + Math.abs(c) < 0.99999 + ? ((this._x = Math.atan2(A, t)), (this._z = Math.atan2(s, i))) + : ((this._x = 0), (this._z = Math.atan2(-o, l)))) + : 'YZX' === e + ? ((this._z = Math.asin(r(s, -1, 1))), + Math.abs(s) < 0.99999 + ? ((this._x = Math.atan2(-u, l)), + (this._y = Math.atan2(-c, i))) + : ((this._x = 0), (this._y = Math.atan2(a, t)))) + : 'XZY' === e + ? ((this._z = Math.asin(-r(o, -1, 1))), + Math.abs(o) < 0.99999 + ? ((this._x = Math.atan2(A, l)), + (this._y = Math.atan2(a, i))) + : ((this._x = Math.atan2(-u, t)), (this._y = 0))) + : Jt.warn( + 'THREE.Euler: .setFromRotationMatrix() given unsupported order: ' + + e, + ), + (this._order = e), + !1 !== n && this.onChangeCallback(), + this + ); + }, + setFromQuaternion: function (t, e, n) { + return ( + (Ht = void 0 === Ht ? new Jt.Matrix4() : Ht).makeRotationFromQuaternion( + t, + ), + this.setFromRotationMatrix(Ht, e, n), + this + ); + }, + setFromVector3: function (t, e) { + return this.set(t.x, t.y, t.z, e || this._order); + }, + reorder: + ((zt = new Jt.Quaternion()), + function (t) { + zt.setFromEuler(this), this.setFromQuaternion(zt, t); + }), + equals: function (t) { + return ( + t._x === this._x && + t._y === this._y && + t._z === this._z && + t._order === this._order + ); + }, + fromArray: function (t) { + return ( + (this._x = t[0]), + (this._y = t[1]), + (this._z = t[2]), + void 0 !== t[3] && (this._order = t[3]), + this.onChangeCallback(), + this + ); + }, + toArray: function (t, e) { + return ( + ((t = void 0 === t ? [] : t)[(e = void 0 === e ? 0 : e)] = this._x), + (t[e + 1] = this._y), + (t[e + 2] = this._z), + (t[e + 3] = this._order), + t + ); + }, + toVector3: function (t) { + return t + ? t.set(this._x, this._y, this._z) + : new Jt.Vector3(this._x, this._y, this._z); + }, + onChange: function (t) { + return (this.onChangeCallback = t), this; + }, + onChangeCallback: function () {}, + clone: function () { + return new Jt.Euler(this._x, this._y, this._z, this._order); + }, + }), + (Jt.Line3 = function (t, e) { + (this.start = void 0 !== t ? t : new Jt.Vector3()), + (this.end = void 0 !== e ? e : new Jt.Vector3()); + }), + (Jt.Line3.prototype = { + constructor: Jt.Line3, + set: function (t, e) { + return this.start.copy(t), this.end.copy(e), this; + }, + copy: function (t) { + return this.start.copy(t.start), this.end.copy(t.end), this; + }, + center: function (t) { + return (t || new Jt.Vector3()) + .addVectors(this.start, this.end) + .multiplyScalar(0.5); + }, + delta: function (t) { + return (t || new Jt.Vector3()).subVectors(this.end, this.start); + }, + distanceSq: function () { + return this.start.distanceToSquared(this.end); + }, + distance: function () { + return this.start.distanceTo(this.end); + }, + at: function (t, e) { + e = e || new Jt.Vector3(); + return this.delta(e).multiplyScalar(t).add(this.start); + }, + closestPointToPointParameter: + ((jt = new Jt.Vector3()), + (Vt = new Jt.Vector3()), + function (t, e) { + jt.subVectors(t, this.start), Vt.subVectors(this.end, this.start); + (t = Vt.dot(Vt)), (t = Vt.dot(jt) / t); + return (t = e ? Jt.Math.clamp(t, 0, 1) : t); + }), + closestPointToPoint: function (t, e, n) { + (t = this.closestPointToPointParameter(t, e)), (e = n || new Jt.Vector3()); + return this.delta(e).multiplyScalar(t).add(this.start); + }, + applyMatrix4: function (t) { + return this.start.applyMatrix4(t), this.end.applyMatrix4(t), this; + }, + equals: function (t) { + return t.start.equals(this.start) && t.end.equals(this.end); + }, + clone: function () { + return new Jt.Line3().copy(this); + }, + }), + (Jt.Box2 = function (t, e) { + (this.min = void 0 !== t ? t : new Jt.Vector2(1 / 0, 1 / 0)), + (this.max = void 0 !== e ? e : new Jt.Vector2(-1 / 0, -1 / 0)); + }), + (Jt.Box2.prototype = { + constructor: Jt.Box2, + set: function (t, e) { + return this.min.copy(t), this.max.copy(e), this; + }, + setFromPoints: function (t) { + this.makeEmpty(); + for (var e = 0, n = t.length; e < n; e++) this.expandByPoint(t[e]); + return this; + }, + setFromCenterAndSize: + ((Wt = new Jt.Vector2()), + function (t, e) { + e = Wt.copy(e).multiplyScalar(0.5); + return this.min.copy(t).sub(e), this.max.copy(t).add(e), this; + }), + copy: function (t) { + return this.min.copy(t.min), this.max.copy(t.max), this; + }, + makeEmpty: function () { + return ( + (this.min.x = this.min.y = 1 / 0), + (this.max.x = this.max.y = -1 / 0), + this + ); + }, + empty: function () { + return this.max.x < this.min.x || this.max.y < this.min.y; + }, + center: function (t) { + return (t || new Jt.Vector2()) + .addVectors(this.min, this.max) + .multiplyScalar(0.5); + }, + size: function (t) { + return (t || new Jt.Vector2()).subVectors(this.max, this.min); + }, + expandByPoint: function (t) { + return this.min.min(t), this.max.max(t), this; + }, + expandByVector: function (t) { + return this.min.sub(t), this.max.add(t), this; + }, + expandByScalar: function (t) { + return this.min.addScalar(-t), this.max.addScalar(t), this; + }, + containsPoint: function (t) { + return !( + t.x < this.min.x || + t.x > this.max.x || + t.y < this.min.y || + t.y > this.max.y + ); + }, + containsBox: function (t) { + return ( + this.min.x <= t.min.x && + t.max.x <= this.max.x && + this.min.y <= t.min.y && + t.max.y <= this.max.y + ); + }, + getParameter: function (t, e) { + return (e || new Jt.Vector2()).set( + (t.x - this.min.x) / (this.max.x - this.min.x), + (t.y - this.min.y) / (this.max.y - this.min.y), + ); + }, + isIntersectionBox: function (t) { + return !( + t.max.x < this.min.x || + t.min.x > this.max.x || + t.max.y < this.min.y || + t.min.y > this.max.y + ); + }, + clampPoint: function (t, e) { + return (e || new Jt.Vector2()).copy(t).clamp(this.min, this.max); + }, + distanceToPoint: + ((qt = new Jt.Vector2()), + function (t) { + return qt.copy(t).clamp(this.min, this.max).sub(t).length(); + }), + intersect: function (t) { + return this.min.max(t.min), this.max.min(t.max), this; + }, + union: function (t) { + return this.min.min(t.min), this.max.max(t.max), this; + }, + translate: function (t) { + return this.min.add(t), this.max.add(t), this; + }, + equals: function (t) { + return t.min.equals(this.min) && t.max.equals(this.max); + }, + clone: function () { + return new Jt.Box2().copy(this); + }, + }), + (Jt.Box3 = function (t, e) { + (this.min = void 0 !== t ? t : new Jt.Vector3(1 / 0, 1 / 0, 1 / 0)), + (this.max = void 0 !== e ? e : new Jt.Vector3(-1 / 0, -1 / 0, -1 / 0)); + }), + (Jt.Box3.prototype = { + constructor: Jt.Box3, + set: function (t, e) { + return this.min.copy(t), this.max.copy(e), this; + }, + setFromPoints: function (t) { + this.makeEmpty(); + for (var e = 0, n = t.length; e < n; e++) this.expandByPoint(t[e]); + return this; + }, + setFromCenterAndSize: + ((te = new Jt.Vector3()), + function (t, e) { + e = te.copy(e).multiplyScalar(0.5); + return this.min.copy(t).sub(e), this.max.copy(t).add(e), this; + }), + setFromObject: + (($t = new Jt.Vector3()), + function (t) { + var a = this; + return ( + t.updateMatrixWorld(!0), + this.makeEmpty(), + t.traverse(function (t) { + var e = t.geometry; + if (void 0 !== e) + if (e instanceof Jt.Geometry) + for (var n = e.vertices, r = 0, i = n.length; r < i; r++) + $t.copy(n[r]), + $t.applyMatrix4(t.matrixWorld), + a.expandByPoint($t); + else if ( + e instanceof Jt.BufferGeometry && + void 0 !== e.attributes.position + ) + for ( + var o = e.attributes.position.array, r = 0, i = o.length; + r < i; + r += 3 + ) + $t.set(o[r], o[r + 1], o[r + 2]), + $t.applyMatrix4(t.matrixWorld), + a.expandByPoint($t); + }), + this + ); + }), + copy: function (t) { + return this.min.copy(t.min), this.max.copy(t.max), this; + }, + makeEmpty: function () { + return ( + (this.min.x = this.min.y = this.min.z = 1 / 0), + (this.max.x = this.max.y = this.max.z = -1 / 0), + this + ); + }, + empty: function () { + return ( + this.max.x < this.min.x || + this.max.y < this.min.y || + this.max.z < this.min.z + ); + }, + center: function (t) { + return (t || new Jt.Vector3()) + .addVectors(this.min, this.max) + .multiplyScalar(0.5); + }, + size: function (t) { + return (t || new Jt.Vector3()).subVectors(this.max, this.min); + }, + expandByPoint: function (t) { + return this.min.min(t), this.max.max(t), this; + }, + expandByVector: function (t) { + return this.min.sub(t), this.max.add(t), this; + }, + expandByScalar: function (t) { + return this.min.addScalar(-t), this.max.addScalar(t), this; + }, + containsPoint: function (t) { + return !( + t.x < this.min.x || + t.x > this.max.x || + t.y < this.min.y || + t.y > this.max.y || + t.z < this.min.z || + t.z > this.max.z + ); + }, + containsBox: function (t) { + return ( + this.min.x <= t.min.x && + t.max.x <= this.max.x && + this.min.y <= t.min.y && + t.max.y <= this.max.y && + this.min.z <= t.min.z && + t.max.z <= this.max.z + ); + }, + getParameter: function (t, e) { + return (e || new Jt.Vector3()).set( + (t.x - this.min.x) / (this.max.x - this.min.x), + (t.y - this.min.y) / (this.max.y - this.min.y), + (t.z - this.min.z) / (this.max.z - this.min.z), + ); + }, + isIntersectionBox: function (t) { + return !( + t.max.x < this.min.x || + t.min.x > this.max.x || + t.max.y < this.min.y || + t.min.y > this.max.y || + t.max.z < this.min.z || + t.min.z > this.max.z + ); + }, + clampPoint: function (t, e) { + return (e || new Jt.Vector3()).copy(t).clamp(this.min, this.max); + }, + distanceToPoint: + ((Xt = new Jt.Vector3()), + function (t) { + return Xt.copy(t).clamp(this.min, this.max).sub(t).length(); + }), + getBoundingSphere: + ((Zt = new Jt.Vector3()), + function (t) { + t = t || new Jt.Sphere(); + return ( + (t.center = this.center()), (t.radius = 0.5 * this.size(Zt).length()), t + ); + }), + intersect: function (t) { + return this.min.max(t.min), this.max.min(t.max), this; + }, + union: function (t) { + return this.min.min(t.min), this.max.max(t.max), this; + }, + applyMatrix4: + ((Kt = [ + new Jt.Vector3(), + new Jt.Vector3(), + new Jt.Vector3(), + new Jt.Vector3(), + new Jt.Vector3(), + new Jt.Vector3(), + new Jt.Vector3(), + new Jt.Vector3(), + ]), + function (t) { + return ( + Kt[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(t), + Kt[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(t), + Kt[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(t), + Kt[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(t), + Kt[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(t), + Kt[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(t), + Kt[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(t), + Kt[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(t), + this.makeEmpty(), + this.setFromPoints(Kt), + this + ); + }), + translate: function (t) { + return this.min.add(t), this.max.add(t), this; + }, + equals: function (t) { + return t.min.equals(this.min) && t.max.equals(this.max); + }, + clone: function () { + return new Jt.Box3().copy(this); + }, + }), + (Jt.Matrix3 = function () { + (this.elements = new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1])), + 0 < arguments.length && + Jt.error( + 'THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.', + ); + }), + (Jt.Matrix3.prototype = { + constructor: Jt.Matrix3, + set: function (t, e, n, r, i, o, a, s, l) { + var u = this.elements; + return ( + (u[0] = t), + (u[3] = e), + (u[6] = n), + (u[1] = r), + (u[4] = i), + (u[7] = o), + (u[2] = a), + (u[5] = s), + (u[8] = l), + this + ); + }, + identity: function () { + return this.set(1, 0, 0, 0, 1, 0, 0, 0, 1), this; + }, + copy: function (t) { + t = t.elements; + return this.set(t[0], t[3], t[6], t[1], t[4], t[7], t[2], t[5], t[8]), this; + }, + multiplyVector3: function (t) { + return ( + Jt.warn( + 'THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.', + ), + t.applyMatrix3(this) + ); + }, + multiplyVector3Array: function (t) { + return ( + Jt.warn( + 'THREE.Matrix3: .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead.', + ), + this.applyToVector3Array(t) + ); + }, + applyToVector3Array: + ((ee = new Jt.Vector3()), + function (t, e, n) { + void 0 === n && (n = t.length); + for (var r = 0, i = (e = void 0 === e ? 0 : e); r < n; r += 3, i += 3) + (ee.x = t[i]), + (ee.y = t[i + 1]), + (ee.z = t[i + 2]), + ee.applyMatrix3(this), + (t[i] = ee.x), + (t[i + 1] = ee.y), + (t[i + 2] = ee.z); + return t; + }), + multiplyScalar: function (t) { + var e = this.elements; + return ( + (e[0] *= t), + (e[3] *= t), + (e[6] *= t), + (e[1] *= t), + (e[4] *= t), + (e[7] *= t), + (e[2] *= t), + (e[5] *= t), + (e[8] *= t), + this + ); + }, + determinant: function () { + var t = this.elements, + e = t[0], + n = t[1], + r = t[2], + i = t[3], + o = t[4], + a = t[5], + s = t[6], + l = t[7], + t = t[8]; + return ( + e * o * t - e * a * l - n * i * t + n * a * s + r * i * l - r * o * s + ); + }, + getInverse: function (t, e) { + var t = t.elements, + n = this.elements, + t = + ((n[0] = t[10] * t[5] - t[6] * t[9]), + (n[1] = -t[10] * t[1] + t[2] * t[9]), + (n[2] = t[6] * t[1] - t[2] * t[5]), + (n[3] = -t[10] * t[4] + t[6] * t[8]), + (n[4] = t[10] * t[0] - t[2] * t[8]), + (n[5] = -t[6] * t[0] + t[2] * t[4]), + (n[6] = t[9] * t[4] - t[5] * t[8]), + (n[7] = -t[9] * t[0] + t[1] * t[8]), + (n[8] = t[5] * t[0] - t[1] * t[4]), + t[0] * n[0] + t[1] * n[3] + t[2] * n[6]); + if (0 != t) return this.multiplyScalar(1 / t), this; + n = "Matrix3.getInverse(): can't invert matrix, determinant is 0"; + if (e) throw new Error(n); + return Jt.warn(n), this.identity(), this; + }, + transpose: function () { + var t = this.elements, + e = t[1]; + return ( + (t[1] = t[3]), + (t[3] = e), + (e = t[2]), + (t[2] = t[6]), + (t[6] = e), + (e = t[5]), + (t[5] = t[7]), + (t[7] = e), + this + ); + }, + flattenToArrayOffset: function (t, e) { + var n = this.elements; + return ( + (t[e] = n[0]), + (t[e + 1] = n[1]), + (t[e + 2] = n[2]), + (t[e + 3] = n[3]), + (t[e + 4] = n[4]), + (t[e + 5] = n[5]), + (t[e + 6] = n[6]), + (t[e + 7] = n[7]), + (t[e + 8] = n[8]), + t + ); + }, + getNormalMatrix: function (t) { + return this.getInverse(t).transpose(), this; + }, + transposeIntoArray: function (t) { + var e = this.elements; + return ( + (t[0] = e[0]), + (t[1] = e[3]), + (t[2] = e[6]), + (t[3] = e[1]), + (t[4] = e[4]), + (t[5] = e[7]), + (t[6] = e[2]), + (t[7] = e[5]), + (t[8] = e[8]), + this + ); + }, + fromArray: function (t) { + return this.elements.set(t), this; + }, + toArray: function () { + var t = this.elements; + return [t[0], t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8]]; + }, + clone: function () { + return new Jt.Matrix3().fromArray(this.elements); + }, + }), + (Jt.Matrix4 = function () { + (this.elements = new Float32Array([ + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + ])), + 0 < arguments.length && + Jt.error( + 'THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.', + ); + }), + (Jt.Matrix4.prototype = { + constructor: Jt.Matrix4, + set: function (t, e, n, r, i, o, a, s, l, u, c, A, h, p, d, f) { + var g = this.elements; + return ( + (g[0] = t), + (g[4] = e), + (g[8] = n), + (g[12] = r), + (g[1] = i), + (g[5] = o), + (g[9] = a), + (g[13] = s), + (g[2] = l), + (g[6] = u), + (g[10] = c), + (g[14] = A), + (g[3] = h), + (g[7] = p), + (g[11] = d), + (g[15] = f), + this + ); + }, + identity: function () { + return this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), this; + }, + copy: function (t) { + return this.elements.set(t.elements), this; + }, + extractPosition: function (t) { + return ( + Jt.warn( + 'THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().', + ), + this.copyPosition(t) + ); + }, + copyPosition: function (t) { + var e = this.elements, + t = t.elements; + return (e[12] = t[12]), (e[13] = t[13]), (e[14] = t[14]), this; + }, + extractBasis: function (t, e, n) { + var r = this.elements; + return ( + t.set(r[0], r[1], r[2]), + e.set(r[4], r[5], r[6]), + n.set(r[8], r[9], r[10]), + this + ); + }, + makeBasis: function (t, e, n) { + return ( + this.set( + t.x, + e.x, + n.x, + 0, + t.y, + e.y, + n.y, + 0, + t.z, + e.z, + n.z, + 0, + 0, + 0, + 0, + 1, + ), + this + ); + }, + extractRotation: + ((ue = new Jt.Vector3()), + function (t) { + var e = this.elements, + t = t.elements, + n = 1 / ue.set(t[0], t[1], t[2]).length(), + r = 1 / ue.set(t[4], t[5], t[6]).length(), + i = 1 / ue.set(t[8], t[9], t[10]).length(); + return ( + (e[0] = t[0] * n), + (e[1] = t[1] * n), + (e[2] = t[2] * n), + (e[4] = t[4] * r), + (e[5] = t[5] * r), + (e[6] = t[6] * r), + (e[8] = t[8] * i), + (e[9] = t[9] * i), + (e[10] = t[10] * i), + this + ); + }), + makeRotationFromEuler: function (t) { + t instanceof Jt.Euler == !1 && + Jt.error( + 'THREE.Matrix: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.', + ); + var e, + n, + r, + i, + o, + a, + s, + l, + u, + c, + A, + h, + p = this.elements, + d = t.x, + f = t.y, + g = t.z, + m = Math.cos(d), + d = Math.sin(d), + v = Math.cos(f), + f = Math.sin(f), + b = Math.cos(g), + g = Math.sin(g); + return ( + 'XYZ' === t.order + ? ((o = m * b), + (a = m * g), + (s = d * b), + (l = d * g), + (p[0] = v * b), + (p[4] = -v * g), + (p[8] = f), + (p[1] = a + s * f), + (p[5] = o - l * f), + (p[9] = -d * v), + (p[2] = l - o * f), + (p[6] = s + a * f), + (p[10] = m * v)) + : 'YXZ' === t.order + ? ((n = v * g), + (r = f * b), + (p[0] = (e = v * b) + (i = f * g) * d), + (p[4] = r * d - n), + (p[8] = m * f), + (p[1] = m * g), + (p[5] = m * b), + (p[9] = -d), + (p[2] = n * d - r), + (p[6] = i + e * d), + (p[10] = m * v)) + : 'ZXY' === t.order + ? ((n = v * g), + (r = f * b), + (p[0] = (e = v * b) - (i = f * g) * d), + (p[4] = -m * g), + (p[8] = r + n * d), + (p[1] = n + r * d), + (p[5] = m * b), + (p[9] = i - e * d), + (p[2] = -m * f), + (p[6] = d), + (p[10] = m * v)) + : 'ZYX' === t.order + ? ((o = m * b), + (a = m * g), + (s = d * b), + (l = d * g), + (p[0] = v * b), + (p[4] = s * f - a), + (p[8] = o * f + l), + (p[1] = v * g), + (p[5] = l * f + o), + (p[9] = a * f - s), + (p[2] = -f), + (p[6] = d * v), + (p[10] = m * v)) + : 'YZX' === t.order + ? ((u = m * v), + (c = m * f), + (A = d * v), + (h = d * f), + (p[0] = v * b), + (p[4] = h - u * g), + (p[8] = A * g + c), + (p[1] = g), + (p[5] = m * b), + (p[9] = -d * b), + (p[2] = -f * b), + (p[6] = c * g + A), + (p[10] = u - h * g)) + : 'XZY' === t.order && + ((u = m * v), + (c = m * f), + (A = d * v), + (h = d * f), + (p[0] = v * b), + (p[4] = -g), + (p[8] = f * b), + (p[1] = u * g + h), + (p[5] = m * b), + (p[9] = c * g - A), + (p[2] = A * g - c), + (p[6] = d * b), + (p[10] = h * g + u)), + (p[3] = 0), + (p[7] = 0), + (p[11] = 0), + (p[12] = 0), + (p[13] = 0), + (p[14] = 0), + (p[15] = 1), + this + ); + }, + setRotationFromQuaternion: function (t) { + return ( + Jt.warn( + 'THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().', + ), + this.makeRotationFromQuaternion(t) + ); + }, + makeRotationFromQuaternion: function (t) { + var e = this.elements, + n = t.x, + r = t.y, + i = t.z, + t = t.w, + o = n + n, + a = r + r, + s = i + i, + l = n * o, + u = n * a, + n = n * s, + c = r * a, + r = r * s, + i = i * s, + o = t * o, + a = t * a, + t = t * s; + return ( + (e[0] = 1 - (c + i)), + (e[4] = u - t), + (e[8] = n + a), + (e[1] = u + t), + (e[5] = 1 - (l + i)), + (e[9] = r - o), + (e[2] = n - a), + (e[6] = r + o), + (e[10] = 1 - (l + c)), + (e[3] = 0), + (e[7] = 0), + (e[11] = 0), + (e[12] = 0), + (e[13] = 0), + (e[14] = 0), + (e[15] = 1), + this + ); + }, + lookAt: + ((ae = new Jt.Vector3()), + (se = new Jt.Vector3()), + (le = new Jt.Vector3()), + function (t, e, n) { + var r = this.elements; + return ( + le.subVectors(t, e).normalize(), + 0 === le.length() && (le.z = 1), + ae.crossVectors(n, le).normalize(), + 0 === ae.length() && + ((le.x += 1e-4), ae.crossVectors(n, le).normalize()), + se.crossVectors(le, ae), + (r[0] = ae.x), + (r[4] = se.x), + (r[8] = le.x), + (r[1] = ae.y), + (r[5] = se.y), + (r[9] = le.y), + (r[2] = ae.z), + (r[6] = se.z), + (r[10] = le.z), + this + ); + }), + multiply: function (t, e) { + return void 0 !== e + ? (Jt.warn( + 'THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.', + ), + this.multiplyMatrices(t, e)) + : this.multiplyMatrices(this, t); + }, + multiplyMatrices: function (t, e) { + var t = t.elements, + e = e.elements, + n = this.elements, + r = t[0], + i = t[4], + o = t[8], + a = t[12], + s = t[1], + l = t[5], + u = t[9], + c = t[13], + A = t[2], + h = t[6], + p = t[10], + d = t[14], + f = t[3], + g = t[7], + m = t[11], + t = t[15], + v = e[0], + b = e[4], + y = e[8], + w = e[12], + E = e[1], + B = e[5], + C = e[9], + x = e[13], + I = e[2], + M = e[6], + D = e[10], + S = e[14], + k = e[3], + F = e[7], + Q = e[11], + e = e[15]; + return ( + (n[0] = r * v + i * E + o * I + a * k), + (n[4] = r * b + i * B + o * M + a * F), + (n[8] = r * y + i * C + o * D + a * Q), + (n[12] = r * w + i * x + o * S + a * e), + (n[1] = s * v + l * E + u * I + c * k), + (n[5] = s * b + l * B + u * M + c * F), + (n[9] = s * y + l * C + u * D + c * Q), + (n[13] = s * w + l * x + u * S + c * e), + (n[2] = A * v + h * E + p * I + d * k), + (n[6] = A * b + h * B + p * M + d * F), + (n[10] = A * y + h * C + p * D + d * Q), + (n[14] = A * w + h * x + p * S + d * e), + (n[3] = f * v + g * E + m * I + t * k), + (n[7] = f * b + g * B + m * M + t * F), + (n[11] = f * y + g * C + m * D + t * Q), + (n[15] = f * w + g * x + m * S + t * e), + this + ); + }, + multiplyToArray: function (t, e, n) { + var r = this.elements; + return ( + this.multiplyMatrices(t, e), + (n[0] = r[0]), + (n[1] = r[1]), + (n[2] = r[2]), + (n[3] = r[3]), + (n[4] = r[4]), + (n[5] = r[5]), + (n[6] = r[6]), + (n[7] = r[7]), + (n[8] = r[8]), + (n[9] = r[9]), + (n[10] = r[10]), + (n[11] = r[11]), + (n[12] = r[12]), + (n[13] = r[13]), + (n[14] = r[14]), + (n[15] = r[15]), + this + ); + }, + multiplyScalar: function (t) { + var e = this.elements; + return ( + (e[0] *= t), + (e[4] *= t), + (e[8] *= t), + (e[12] *= t), + (e[1] *= t), + (e[5] *= t), + (e[9] *= t), + (e[13] *= t), + (e[2] *= t), + (e[6] *= t), + (e[10] *= t), + (e[14] *= t), + (e[3] *= t), + (e[7] *= t), + (e[11] *= t), + (e[15] *= t), + this + ); + }, + multiplyVector3: function (t) { + return ( + Jt.warn( + 'THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) or vector.applyProjection( matrix ) instead.', + ), + t.applyProjection(this) + ); + }, + multiplyVector4: function (t) { + return ( + Jt.warn( + 'THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.', + ), + t.applyMatrix4(this) + ); + }, + multiplyVector3Array: function (t) { + return ( + Jt.warn( + 'THREE.Matrix4: .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead.', + ), + this.applyToVector3Array(t) + ); + }, + applyToVector3Array: + ((oe = new Jt.Vector3()), + function (t, e, n) { + void 0 === n && (n = t.length); + for (var r = 0, i = (e = void 0 === e ? 0 : e); r < n; r += 3, i += 3) + (oe.x = t[i]), + (oe.y = t[i + 1]), + (oe.z = t[i + 2]), + oe.applyMatrix4(this), + (t[i] = oe.x), + (t[i + 1] = oe.y), + (t[i + 2] = oe.z); + return t; + }), + rotateAxis: function (t) { + Jt.warn( + 'THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.', + ), + t.transformDirection(this); + }, + crossVector: function (t) { + return ( + Jt.warn( + 'THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.', + ), + t.applyMatrix4(this) + ); + }, + determinant: function () { + var t = this.elements, + e = t[0], + n = t[4], + r = t[8], + i = t[12], + o = t[1], + a = t[5], + s = t[9], + l = t[13], + u = t[2], + c = t[6], + A = t[10], + h = t[14]; + return ( + t[3] * + (+i * s * c - + r * l * c - + i * a * A + + n * l * A + + r * a * h - + n * s * h) + + t[7] * + (+e * s * h - + e * l * A + + i * o * A - + r * o * h + + r * l * u - + i * s * u) + + t[11] * + (+e * l * c - + e * a * h - + i * o * c + + n * o * h + + i * a * u - + n * l * u) + + t[15] * + (-r * a * u - e * s * c + e * a * A + r * o * c - n * o * A + n * s * u) + ); + }, + transpose: function () { + var t = this.elements, + e = t[1]; + return ( + (t[1] = t[4]), + (t[4] = e), + (e = t[2]), + (t[2] = t[8]), + (t[8] = e), + (e = t[6]), + (t[6] = t[9]), + (t[9] = e), + (e = t[3]), + (t[3] = t[12]), + (t[12] = e), + (e = t[7]), + (t[7] = t[13]), + (t[13] = e), + (e = t[11]), + (t[11] = t[14]), + (t[14] = e), + this + ); + }, + flattenToArrayOffset: function (t, e) { + var n = this.elements; + return ( + (t[e] = n[0]), + (t[e + 1] = n[1]), + (t[e + 2] = n[2]), + (t[e + 3] = n[3]), + (t[e + 4] = n[4]), + (t[e + 5] = n[5]), + (t[e + 6] = n[6]), + (t[e + 7] = n[7]), + (t[e + 8] = n[8]), + (t[e + 9] = n[9]), + (t[e + 10] = n[10]), + (t[e + 11] = n[11]), + (t[e + 12] = n[12]), + (t[e + 13] = n[13]), + (t[e + 14] = n[14]), + (t[e + 15] = n[15]), + t + ); + }, + getPosition: + ((ie = new Jt.Vector3()), + function () { + Jt.warn( + 'THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.', + ); + var t = this.elements; + return ie.set(t[12], t[13], t[14]); + }), + setPosition: function (t) { + var e = this.elements; + return (e[12] = t.x), (e[13] = t.y), (e[14] = t.z), this; + }, + getInverse: function (t, e) { + var n = this.elements, + t = t.elements, + r = t[0], + i = t[4], + o = t[8], + a = t[12], + s = t[1], + l = t[5], + u = t[9], + c = t[13], + A = t[2], + h = t[6], + p = t[10], + d = t[14], + f = t[3], + g = t[7], + m = t[11], + t = t[15], + t = + ((n[0] = + u * d * g - + c * p * g + + c * h * m - + l * d * m - + u * h * t + + l * p * t), + (n[4] = + a * p * g - + o * d * g - + a * h * m + + i * d * m + + o * h * t - + i * p * t), + (n[8] = + o * c * g - + a * u * g + + a * l * m - + i * c * m - + o * l * t + + i * u * t), + (n[12] = + a * u * h - + o * c * h - + a * l * p + + i * c * p + + o * l * d - + i * u * d), + (n[1] = + c * p * f - + u * d * f - + c * A * m + + s * d * m + + u * A * t - + s * p * t), + (n[5] = + o * d * f - + a * p * f + + a * A * m - + r * d * m - + o * A * t + + r * p * t), + (n[9] = + a * u * f - + o * c * f - + a * s * m + + r * c * m + + o * s * t - + r * u * t), + (n[13] = + o * c * A - + a * u * A + + a * s * p - + r * c * p - + o * s * d + + r * u * d), + (n[2] = + l * d * f - + c * h * f + + c * A * g - + s * d * g - + l * A * t + + s * h * t), + (n[6] = + a * h * f - + i * d * f - + a * A * g + + r * d * g + + i * A * t - + r * h * t), + (n[10] = + i * c * f - + a * l * f + + a * s * g - + r * c * g - + i * s * t + + r * l * t), + (n[14] = + a * l * A - + i * c * A - + a * s * h + + r * c * h + + i * s * d - + r * l * d), + (n[3] = + u * h * f - + l * p * f - + u * A * g + + s * p * g + + l * A * m - + s * h * m), + (n[7] = + i * p * f - + o * h * f + + o * A * g - + r * p * g - + i * A * m + + r * h * m), + (n[11] = + o * l * f - + i * u * f - + o * s * g + + r * u * g + + i * s * m - + r * l * m), + (n[15] = + i * u * A - + o * l * A + + o * s * h - + r * u * h - + i * s * p + + r * l * p), + r * n[0] + s * n[4] + A * n[8] + f * n[12]); + if (0 != t) return this.multiplyScalar(1 / t), this; + a = "THREE.Matrix4.getInverse(): can't invert matrix, determinant is 0"; + if (e) throw new Error(a); + return Jt.warn(a), this.identity(), this; + }, + translate: function (t) { + Jt.error('THREE.Matrix4: .translate() has been removed.'); + }, + rotateX: function (t) { + Jt.error('THREE.Matrix4: .rotateX() has been removed.'); + }, + rotateY: function (t) { + Jt.error('THREE.Matrix4: .rotateY() has been removed.'); + }, + rotateZ: function (t) { + Jt.error('THREE.Matrix4: .rotateZ() has been removed.'); + }, + rotateByAxis: function (t, e) { + Jt.error('THREE.Matrix4: .rotateByAxis() has been removed.'); + }, + scale: function (t) { + var e = this.elements, + n = t.x, + r = t.y, + t = t.z; + return ( + (e[0] *= n), + (e[4] *= r), + (e[8] *= t), + (e[1] *= n), + (e[5] *= r), + (e[9] *= t), + (e[2] *= n), + (e[6] *= r), + (e[10] *= t), + (e[3] *= n), + (e[7] *= r), + (e[11] *= t), + this + ); + }, + getMaxScaleOnAxis: function () { + var t = this.elements, + e = t[0] * t[0] + t[1] * t[1] + t[2] * t[2], + n = t[4] * t[4] + t[5] * t[5] + t[6] * t[6], + t = t[8] * t[8] + t[9] * t[9] + t[10] * t[10]; + return Math.sqrt(Math.max(e, Math.max(n, t))); + }, + makeTranslation: function (t, e, n) { + return this.set(1, 0, 0, t, 0, 1, 0, e, 0, 0, 1, n, 0, 0, 0, 1), this; + }, + makeRotationX: function (t) { + var e = Math.cos(t), + t = Math.sin(t); + return this.set(1, 0, 0, 0, 0, e, -t, 0, 0, t, e, 0, 0, 0, 0, 1), this; + }, + makeRotationY: function (t) { + var e = Math.cos(t), + t = Math.sin(t); + return this.set(e, 0, t, 0, 0, 1, 0, 0, -t, 0, e, 0, 0, 0, 0, 1), this; + }, + makeRotationZ: function (t) { + var e = Math.cos(t), + t = Math.sin(t); + return this.set(e, -t, 0, 0, t, e, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), this; + }, + makeRotationAxis: function (t, e) { + var n = Math.cos(e), + e = Math.sin(e), + r = 1 - n, + i = t.x, + o = t.y, + t = t.z, + a = r * i, + s = r * o; + return ( + this.set( + a * i + n, + a * o - e * t, + a * t + e * o, + 0, + a * o + e * t, + s * o + n, + s * t - e * i, + 0, + a * t - e * o, + s * t + e * i, + r * t * t + n, + 0, + 0, + 0, + 0, + 1, + ), + this + ); + }, + makeScale: function (t, e, n) { + return this.set(t, 0, 0, 0, 0, e, 0, 0, 0, 0, n, 0, 0, 0, 0, 1), this; + }, + compose: function (t, e, n) { + return ( + this.makeRotationFromQuaternion(e), + this.scale(n), + this.setPosition(t), + this + ); + }, + decompose: + ((ne = new Jt.Vector3()), + (re = new Jt.Matrix4()), + function (t, e, n) { + var r = this.elements, + i = ne.set(r[0], r[1], r[2]).length(), + o = ne.set(r[4], r[5], r[6]).length(), + a = ne.set(r[8], r[9], r[10]).length(), + t = + (this.determinant() < 0 && (i = -i), + (t.x = r[12]), + (t.y = r[13]), + (t.z = r[14]), + re.elements.set(this.elements), + 1 / i), + r = 1 / o, + s = 1 / a; + return ( + (re.elements[0] *= t), + (re.elements[1] *= t), + (re.elements[2] *= t), + (re.elements[4] *= r), + (re.elements[5] *= r), + (re.elements[6] *= r), + (re.elements[8] *= s), + (re.elements[9] *= s), + (re.elements[10] *= s), + e.setFromRotationMatrix(re), + (n.x = i), + (n.y = o), + (n.z = a), + this + ); + }), + makeFrustum: function (t, e, n, r, i, o) { + var a = this.elements, + s = (2 * i) / (r - n), + l = (e + t) / (e - t), + r = (r + n) / (r - n), + n = -(o + i) / (o - i), + o = (-2 * o * i) / (o - i); + return ( + (a[0] = (2 * i) / (e - t)), + (a[4] = 0), + (a[8] = l), + (a[12] = 0), + (a[1] = 0), + (a[5] = s), + (a[9] = r), + (a[13] = 0), + (a[2] = 0), + (a[6] = 0), + (a[10] = n), + (a[14] = o), + (a[3] = 0), + (a[7] = 0), + (a[11] = -1), + (a[15] = 0), + this + ); + }, + makePerspective: function (t, e, n, r) { + var t = n * Math.tan(Jt.Math.degToRad(0.5 * t)), + i = -t; + return this.makeFrustum(i * e, t * e, i, t, n, r); + }, + makeOrthographic: function (t, e, n, r, i, o) { + var a = this.elements, + s = e - t, + l = n - r, + u = o - i, + e = (e + t) / s, + t = (n + r) / l, + n = (o + i) / u; + return ( + (a[0] = 2 / s), + (a[4] = 0), + (a[8] = 0), + (a[12] = -e), + (a[1] = 0), + (a[5] = 2 / l), + (a[9] = 0), + (a[13] = -t), + (a[2] = 0), + (a[6] = 0), + (a[10] = -2 / u), + (a[14] = -n), + (a[3] = 0), + (a[7] = 0), + (a[11] = 0), + (a[15] = 1), + this + ); + }, + fromArray: function (t) { + return this.elements.set(t), this; + }, + toArray: function () { + var t = this.elements; + return [ + t[0], + t[1], + t[2], + t[3], + t[4], + t[5], + t[6], + t[7], + t[8], + t[9], + t[10], + t[11], + t[12], + t[13], + t[14], + t[15], + ]; + }, + clone: function () { + return new Jt.Matrix4().fromArray(this.elements); + }, + }), + (Jt.Ray = function (t, e) { + (this.origin = void 0 !== t ? t : new Jt.Vector3()), + (this.direction = void 0 !== e ? e : new Jt.Vector3()); + }), + (Jt.Ray.prototype = { + constructor: Jt.Ray, + set: function (t, e) { + return this.origin.copy(t), this.direction.copy(e), this; + }, + copy: function (t) { + return this.origin.copy(t.origin), this.direction.copy(t.direction), this; + }, + at: function (t, e) { + return (e || new Jt.Vector3()) + .copy(this.direction) + .multiplyScalar(t) + .add(this.origin); + }, + recast: + ((ye = new Jt.Vector3()), + function (t) { + return this.origin.copy(this.at(t, ye)), this; + }), + closestPointToPoint: function (t, e) { + (e = e || new Jt.Vector3()), + e.subVectors(t, this.origin), + (t = e.dot(this.direction)); + return t < 0 + ? e.copy(this.origin) + : e.copy(this.direction).multiplyScalar(t).add(this.origin); + }, + distanceToPoint: + ((be = new Jt.Vector3()), + function (t) { + var e = be.subVectors(t, this.origin).dot(this.direction); + return e < 0 + ? this.origin.distanceTo(t) + : (be.copy(this.direction).multiplyScalar(e).add(this.origin), + be.distanceTo(t)); + }), + distanceSqToSegment: + ((ge = new Jt.Vector3()), + (me = new Jt.Vector3()), + (ve = new Jt.Vector3()), + function (t, e, n, r) { + ge.copy(t).add(e).multiplyScalar(0.5), + me.copy(e).sub(t).normalize(), + ve.copy(this.origin).sub(ge); + var i, + o, + a, + t = 0.5 * t.distanceTo(e), + e = -this.direction.dot(me), + s = ve.dot(this.direction), + l = -ve.dot(me), + u = ve.lengthSq(), + c = Math.abs(1 - e * e); + return ( + (c = + 0 < c + ? ((o = e * s - l), + (a = t * c), + 0 <= (i = e * l - s) + ? -a <= o + ? o <= a + ? (i *= c = 1 / c) * (i + e * (o *= c) + 2 * s) + + o * (e * i + o + 2 * l) + + u + : ((o = t), + -(i = Math.max(0, -(e * o + s))) * i + + o * (o + 2 * l) + + u) + : ((o = -t), + -(i = Math.max(0, -(e * o + s))) * i + o * (o + 2 * l) + u) + : o <= -a + ? -(i = Math.max(0, -(-e * t + s))) * i + + (o = 0 < i ? -t : Math.min(Math.max(-t, -l), t)) * + (o + 2 * l) + + u + : o <= a + ? ((i = 0), + (o = Math.min(Math.max(-t, -l), t)) * (o + 2 * l) + u) + : -(i = Math.max(0, -(e * t + s))) * i + + (o = 0 < i ? t : Math.min(Math.max(-t, -l), t)) * + (o + 2 * l) + + u) + : ((o = 0 < e ? -t : t), + -(i = Math.max(0, -(e * o + s))) * i + o * (o + 2 * l) + u)), + n && n.copy(this.direction).multiplyScalar(i).add(this.origin), + r && r.copy(me).multiplyScalar(o).add(ge), + c + ); + }), + isIntersectionSphere: function (t) { + return this.distanceToPoint(t.center) <= t.radius; + }, + intersectSphere: + ((fe = new Jt.Vector3()), + function (t, e) { + fe.subVectors(t.center, this.origin); + var n = fe.dot(this.direction), + r = fe.dot(fe) - n * n, + t = t.radius * t.radius; + if (t < r) return null; + (t = Math.sqrt(t - r)), (r = n - t), (n += t); + return r < 0 && n < 0 ? null : r < 0 ? this.at(n, e) : this.at(r, e); + }), + isIntersectionPlane: function (t) { + var e = t.distanceToPoint(this.origin); + return 0 === e || t.normal.dot(this.direction) * e < 0; + }, + distanceToPlane: function (t) { + var e = t.normal.dot(this.direction); + if (0 == e) return 0 == t.distanceToPoint(this.origin) ? 0 : null; + t = -(this.origin.dot(t.normal) + t.constant) / e; + return 0 <= t ? t : null; + }, + intersectPlane: function (t, e) { + t = this.distanceToPlane(t); + return null === t ? null : this.at(t, e); + }, + isIntersectionBox: + ((de = new Jt.Vector3()), + function (t) { + return null !== this.intersectBox(t, de); + }), + intersectBox: function (t, e) { + var n, + r, + i, + o = 1 / this.direction.x, + a = 1 / this.direction.y, + s = 1 / this.direction.z, + l = this.origin, + o = + 0 <= o + ? ((n = (t.min.x - l.x) * o), (t.max.x - l.x) * o) + : ((n = (t.max.x - l.x) * o), (t.min.x - l.x) * o), + a = + 0 <= a + ? ((i = (t.min.y - l.y) * a), (t.max.y - l.y) * a) + : ((i = (t.max.y - l.y) * a), (t.min.y - l.y) * a); + return a < n || o < i + ? null + : ((n < i || n != n) && (n = i), + (a < o || o != o) && (o = a), + (i = + 0 <= s + ? ((r = (t.min.z - l.z) * s), (t.max.z - l.z) * s) + : ((r = (t.max.z - l.z) * s), (t.min.z - l.z) * s)) < n || o < r + ? null + : ((n < r || n != n) && (n = r), + (o = i < o || o != o ? i : o) < 0 + ? null + : this.at(0 <= n ? n : o, e))); + }, + intersectTriangle: + ((ce = new Jt.Vector3()), + (Ae = new Jt.Vector3()), + (he = new Jt.Vector3()), + (pe = new Jt.Vector3()), + function (t, e, n, r, i) { + Ae.subVectors(e, t), he.subVectors(n, t), pe.crossVectors(Ae, he); + var o, + e = this.direction.dot(pe); + if (0 < e) { + if (r) return null; + o = 1; + } else { + if (!(e < 0)) return null; + (o = -1), (e = -e); + } + ce.subVectors(this.origin, t); + n = o * this.direction.dot(he.crossVectors(ce, he)); + if (n < 0) return null; + r = o * this.direction.dot(Ae.cross(ce)); + if (r < 0) return null; + if (e < n + r) return null; + t = -o * ce.dot(pe); + return t < 0 ? null : this.at(t / e, i); + }), + applyMatrix4: function (t) { + return ( + this.direction.add(this.origin).applyMatrix4(t), + this.origin.applyMatrix4(t), + this.direction.sub(this.origin), + this.direction.normalize(), + this + ); + }, + equals: function (t) { + return t.origin.equals(this.origin) && t.direction.equals(this.direction); + }, + clone: function () { + return new Jt.Ray().copy(this); + }, + }), + (Jt.Sphere = function (t, e) { + (this.center = void 0 !== t ? t : new Jt.Vector3()), + (this.radius = void 0 !== e ? e : 0); + }), + (Jt.Sphere.prototype = { + constructor: Jt.Sphere, + set: function (t, e) { + return this.center.copy(t), (this.radius = e), this; + }, + setFromPoints: + ((we = new Jt.Box3()), + function (t, e) { + for ( + var n = this.center, + r = (void 0 !== e ? n.copy(e) : we.setFromPoints(t).center(n), 0), + i = 0, + o = t.length; + i < o; + i++ + ) + r = Math.max(r, n.distanceToSquared(t[i])); + return (this.radius = Math.sqrt(r)), this; + }), + copy: function (t) { + return this.center.copy(t.center), (this.radius = t.radius), this; + }, + empty: function () { + return this.radius <= 0; + }, + containsPoint: function (t) { + return t.distanceToSquared(this.center) <= this.radius * this.radius; + }, + distanceToPoint: function (t) { + return t.distanceTo(this.center) - this.radius; + }, + intersectsSphere: function (t) { + var e = this.radius + t.radius; + return t.center.distanceToSquared(this.center) <= e * e; + }, + clampPoint: function (t, e) { + var n = this.center.distanceToSquared(t), + e = e || new Jt.Vector3(); + return ( + e.copy(t), + n > this.radius * this.radius && + (e.sub(this.center).normalize(), + e.multiplyScalar(this.radius).add(this.center)), + e + ); + }, + getBoundingBox: function (t) { + t = t || new Jt.Box3(); + return t.set(this.center, this.center), t.expandByScalar(this.radius), t; + }, + applyMatrix4: function (t) { + return ( + this.center.applyMatrix4(t), + (this.radius = this.radius * t.getMaxScaleOnAxis()), + this + ); + }, + translate: function (t) { + return this.center.add(t), this; + }, + equals: function (t) { + return t.center.equals(this.center) && t.radius === this.radius; + }, + clone: function () { + return new Jt.Sphere().copy(this); + }, + }), + (Jt.Frustum = function (t, e, n, r, i, o) { + this.planes = [ + void 0 !== t ? t : new Jt.Plane(), + void 0 !== e ? e : new Jt.Plane(), + void 0 !== n ? n : new Jt.Plane(), + void 0 !== r ? r : new Jt.Plane(), + void 0 !== i ? i : new Jt.Plane(), + void 0 !== o ? o : new Jt.Plane(), + ]; + }), + (Jt.Frustum.prototype = { + constructor: Jt.Frustum, + set: function (t, e, n, r, i, o) { + var a = this.planes; + return ( + a[0].copy(t), + a[1].copy(e), + a[2].copy(n), + a[3].copy(r), + a[4].copy(i), + a[5].copy(o), + this + ); + }, + copy: function (t) { + for (var e = this.planes, n = 0; n < 6; n++) e[n].copy(t.planes[n]); + return this; + }, + setFromMatrix: function (t) { + var e = this.planes, + t = t.elements, + n = t[0], + r = t[1], + i = t[2], + o = t[3], + a = t[4], + s = t[5], + l = t[6], + u = t[7], + c = t[8], + A = t[9], + h = t[10], + p = t[11], + d = t[12], + f = t[13], + g = t[14], + t = t[15]; + return ( + e[0].setComponents(o - n, u - a, p - c, t - d).normalize(), + e[1].setComponents(o + n, u + a, p + c, t + d).normalize(), + e[2].setComponents(o + r, u + s, p + A, t + f).normalize(), + e[3].setComponents(o - r, u - s, p - A, t - f).normalize(), + e[4].setComponents(o - i, u - l, p - h, t - g).normalize(), + e[5].setComponents(o + i, u + l, p + h, t + g).normalize(), + this + ); + }, + intersectsObject: + ((Ce = new Jt.Sphere()), + function (t) { + var e = t.geometry; + return ( + null === e.boundingSphere && e.computeBoundingSphere(), + Ce.copy(e.boundingSphere), + Ce.applyMatrix4(t.matrixWorld), + this.intersectsSphere(Ce) + ); + }), + intersectsSphere: function (t) { + for (var e = this.planes, n = t.center, r = -t.radius, i = 0; i < 6; i++) + if (e[i].distanceToPoint(n) < r) return !1; + return !0; + }, + intersectsBox: + ((Ee = new Jt.Vector3()), + (Be = new Jt.Vector3()), + function (t) { + for (var e = this.planes, n = 0; n < 6; n++) { + var r = e[n], + i = + ((Ee.x = (0 < r.normal.x ? t.min : t.max).x), + (Be.x = (0 < r.normal.x ? t.max : t.min).x), + (Ee.y = (0 < r.normal.y ? t.min : t.max).y), + (Be.y = (0 < r.normal.y ? t.max : t.min).y), + (Ee.z = (0 < r.normal.z ? t.min : t.max).z), + (Be.z = (0 < r.normal.z ? t.max : t.min).z), + r.distanceToPoint(Ee)), + r = r.distanceToPoint(Be); + if (i < 0 && r < 0) return !1; + } + return !0; + }), + containsPoint: function (t) { + for (var e = this.planes, n = 0; n < 6; n++) + if (e[n].distanceToPoint(t) < 0) return !1; + return !0; + }, + clone: function () { + return new Jt.Frustum().copy(this); + }, + }), + (Jt.Plane = function (t, e) { + (this.normal = void 0 !== t ? t : new Jt.Vector3(1, 0, 0)), + (this.constant = void 0 !== e ? e : 0); + }), + (Jt.Plane.prototype = { + constructor: Jt.Plane, + set: function (t, e) { + return this.normal.copy(t), (this.constant = e), this; + }, + setComponents: function (t, e, n, r) { + return this.normal.set(t, e, n), (this.constant = r), this; + }, + setFromNormalAndCoplanarPoint: function (t, e) { + return this.normal.copy(t), (this.constant = -e.dot(this.normal)), this; + }, + setFromCoplanarPoints: + ((Se = new Jt.Vector3()), + (ke = new Jt.Vector3()), + function (t, e, n) { + n = Se.subVectors(n, e).cross(ke.subVectors(t, e)).normalize(); + return this.setFromNormalAndCoplanarPoint(n, t), this; + }), + copy: function (t) { + return this.normal.copy(t.normal), (this.constant = t.constant), this; + }, + normalize: function () { + var t = 1 / this.normal.length(); + return this.normal.multiplyScalar(t), (this.constant *= t), this; + }, + negate: function () { + return (this.constant *= -1), this.normal.negate(), this; + }, + distanceToPoint: function (t) { + return this.normal.dot(t) + this.constant; + }, + distanceToSphere: function (t) { + return this.distanceToPoint(t.center) - t.radius; + }, + projectPoint: function (t, e) { + return this.orthoPoint(t, e).sub(t).negate(); + }, + orthoPoint: function (t, e) { + t = this.distanceToPoint(t); + return (e || new Jt.Vector3()).copy(this.normal).multiplyScalar(t); + }, + isIntersectionLine: function (t) { + var e = this.distanceToPoint(t.start), + t = this.distanceToPoint(t.end); + return (e < 0 && 0 < t) || (t < 0 && 0 < e); + }, + intersectLine: + ((De = new Jt.Vector3()), + function (t, e) { + var e = e || new Jt.Vector3(), + n = t.delta(De), + r = this.normal.dot(n); + if (0 == r) + return 0 == this.distanceToPoint(t.start) ? e.copy(t.start) : void 0; + r = -(t.start.dot(this.normal) + this.constant) / r; + return r < 0 || 1 < r ? void 0 : e.copy(n).multiplyScalar(r).add(t.start); + }), + coplanarPoint: function (t) { + return (t || new Jt.Vector3()) + .copy(this.normal) + .multiplyScalar(-this.constant); + }, + applyMatrix4: + ((xe = new Jt.Vector3()), + (Ie = new Jt.Vector3()), + (Me = new Jt.Matrix3()), + function (t, e) { + var e = e || Me.getNormalMatrix(t), + e = xe.copy(this.normal).applyMatrix3(e), + n = this.coplanarPoint(Ie); + return n.applyMatrix4(t), this.setFromNormalAndCoplanarPoint(e, n), this; + }), + translate: function (t) { + return (this.constant = this.constant - t.dot(this.normal)), this; + }, + equals: function (t) { + return t.normal.equals(this.normal) && t.constant == this.constant; + }, + clone: function () { + return new Jt.Plane().copy(this); + }, + }), + (Jt.Math = { + generateUUID: + ((Te = + '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split( + '', + )), + (Re = new Array(36)), + (Ue = 0), + function () { + for (var t = 0; t < 36; t++) + 8 == t || 13 == t || 18 == t || 23 == t + ? (Re[t] = '-') + : 14 == t + ? (Re[t] = '4') + : (Ue <= 2 && (Ue = (33554432 + 16777216 * Math.random()) | 0), + (_e = 15 & Ue), + (Ue >>= 4), + (Re[t] = Te[19 == t ? (3 & _e) | 8 : _e])); + return Re.join(''); + }), + clamp: function (t, e, n) { + return t < e ? e : n < t ? n : t; + }, + clampBottom: function (t, e) { + return t < e ? e : t; + }, + mapLinear: function (t, e, n, r, i) { + return r + ((t - e) * (i - r)) / (n - e); + }, + smoothstep: function (t, e, n) { + return t <= e ? 0 : n <= t ? 1 : (t = (t - e) / (n - e)) * t * (3 - 2 * t); + }, + smootherstep: function (t, e, n) { + return t <= e + ? 0 + : n <= t + ? 1 + : (t = (t - e) / (n - e)) * t * t * (t * (6 * t - 15) + 10); + }, + random16: function () { + return (65280 * Math.random() + 255 * Math.random()) / 65535; + }, + randInt: function (t, e) { + return Math.floor(this.randFloat(t, e)); + }, + randFloat: function (t, e) { + return t + Math.random() * (e - t); + }, + randFloatSpread: function (t) { + return t * (0.5 - Math.random()); + }, + degToRad: + ((Qe = Math.PI / 180), + function (t) { + return t * Qe; + }), + radToDeg: + ((Fe = 180 / Math.PI), + function (t) { + return t * Fe; + }), + isPowerOfTwo: function (t) { + return 0 == (t & (t - 1)) && 0 !== t; + }, + nextPowerOfTwo: function (t) { + return ( + t--, + (t = + (t = (t = (t = (t |= t >> 1) | (t >> 2)) | (t >> 4)) | (t >> 8)) | + (t >> 16)), + ++t + ); + }, + }), + (Jt.Spline = function (t) { + this.points = t; + var e, + n, + r, + i, + o, + a, + s, + l = [], + u = { x: 0, y: 0, z: 0 }; + function c(t, e, n, r, i, o, a) { + (t = 0.5 * (n - t)), (r = 0.5 * (r - e)); + return ( + (2 * (e - n) + t + r) * a + (-3 * (e - n) - 2 * t - r) * o + t * i + e + ); + } + (this.initFromArray = function (t) { + this.points = []; + for (var e = 0; e < t.length; e++) + this.points[e] = { x: t[e][0], y: t[e][1], z: t[e][2] }; + }), + (this.getPoint = function (t) { + return ( + (e = (this.points.length - 1) * t), + (i = Math.floor(e)), + (e = e - i), + (l[0] = 0 === i ? i : i - 1), + (l[1] = i), + (l[2] = i > this.points.length - 2 ? this.points.length - 1 : i + 1), + (l[3] = i > this.points.length - 3 ? this.points.length - 1 : i + 2), + (i = this.points[l[0]]), + (o = this.points[l[1]]), + (a = this.points[l[2]]), + (s = this.points[l[3]]), + (r = e * (n = e * e)), + (u.x = c(i.x, o.x, a.x, s.x, e, n, r)), + (u.y = c(i.y, o.y, a.y, s.y, e, n, r)), + (u.z = c(i.z, o.z, a.z, s.z, e, n, r)), + u + ); + }), + (this.getControlPointsArray = function () { + for (var t, e = this.points.length, n = [], r = 0; r < e; r++) + (t = this.points[r]), (n[r] = [t.x, t.y, t.z]); + return n; + }), + (this.getLength = function (t) { + var e, + n, + r, + i, + o = 0, + a = new Jt.Vector3(), + s = new Jt.Vector3(), + l = [], + u = 0; + for ( + l[0] = 0, + n = this.points.length * (t = t || 100), + a.copy(this.points[0]), + e = 1; + e < n; + e++ + ) + (r = this.getPoint((i = e / n))), + s.copy(r), + (u += s.distanceTo(a)), + a.copy(r), + (r = (this.points.length - 1) * i), + (i = Math.floor(r)) != o && ((l[i] = u), (o = i)); + return (l[l.length] = u), { chunks: l, total: u }; + }), + (this.reparametrizeByArcLength = function (t) { + var e, + n, + r, + i, + o, + a, + s, + l = [], + u = new Jt.Vector3(), + c = this.getLength(); + for ( + l.push(u.copy(this.points[0]).clone()), e = 1; + e < this.points.length; + e++ + ) { + for ( + o = c.chunks[e] - c.chunks[e - 1], + a = Math.ceil((t * o) / c.total), + r = (e - 1) / (this.points.length - 1), + i = e / (this.points.length - 1), + n = 1; + n < a - 1; + n++ + ) + (s = this.getPoint(r + n * (1 / a) * (i - r))), + l.push(u.copy(s).clone()); + l.push(u.copy(this.points[e]).clone()); + } + this.points = l; + }); + }), + (Jt.Triangle = function (t, e, n) { + (this.a = void 0 !== t ? t : new Jt.Vector3()), + (this.b = void 0 !== e ? e : new Jt.Vector3()), + (this.c = void 0 !== n ? n : new Jt.Vector3()); + }), + (Jt.Triangle.normal = + ((Ne = new Jt.Vector3()), + function (t, e, n, r) { + (r = r || new Jt.Vector3()), + r.subVectors(n, e), + Ne.subVectors(t, e), + r.cross(Ne), + (n = r.lengthSq()); + return 0 < n ? r.multiplyScalar(1 / Math.sqrt(n)) : r.set(0, 0, 0); + })), + (Jt.Triangle.barycoordFromPoint = + ((Pe = new Jt.Vector3()), + (Le = new Jt.Vector3()), + (Ye = new Jt.Vector3()), + function (t, e, n, r, i) { + Pe.subVectors(r, e), Le.subVectors(n, e), Ye.subVectors(t, e); + var r = Pe.dot(Pe), + n = Pe.dot(Le), + t = Pe.dot(Ye), + e = Le.dot(Le), + o = Le.dot(Ye), + a = r * e - n * n, + i = i || new Jt.Vector3(); + if (0 == a) return i.set(-2, -1, -1); + (a = 1 / a), (e = (e * t - n * o) * a), (r = (r * o - n * t) * a); + return i.set(1 - e - r, r, e); + })), + (Jt.Triangle.containsPoint = + ((Oe = new Jt.Vector3()), + function (t, e, n, r) { + t = Jt.Triangle.barycoordFromPoint(t, e, n, r, Oe); + return 0 <= t.x && 0 <= t.y && t.x + t.y <= 1; + })), + (Jt.Triangle.prototype = { + constructor: Jt.Triangle, + set: function (t, e, n) { + return this.a.copy(t), this.b.copy(e), this.c.copy(n), this; + }, + setFromPointsAndIndices: function (t, e, n, r) { + return this.a.copy(t[e]), this.b.copy(t[n]), this.c.copy(t[r]), this; + }, + copy: function (t) { + return this.a.copy(t.a), this.b.copy(t.b), this.c.copy(t.c), this; + }, + area: + ((Ge = new Jt.Vector3()), + (ze = new Jt.Vector3()), + function () { + return ( + Ge.subVectors(this.c, this.b), + ze.subVectors(this.a, this.b), + 0.5 * Ge.cross(ze).length() + ); + }), + midpoint: function (t) { + return (t || new Jt.Vector3()) + .addVectors(this.a, this.b) + .add(this.c) + .multiplyScalar(1 / 3); + }, + normal: function (t) { + return Jt.Triangle.normal(this.a, this.b, this.c, t); + }, + plane: function (t) { + return (t || new Jt.Plane()).setFromCoplanarPoints(this.a, this.b, this.c); + }, + barycoordFromPoint: function (t, e) { + return Jt.Triangle.barycoordFromPoint(t, this.a, this.b, this.c, e); + }, + containsPoint: function (t) { + return Jt.Triangle.containsPoint(t, this.a, this.b, this.c); + }, + equals: function (t) { + return t.a.equals(this.a) && t.b.equals(this.b) && t.c.equals(this.c); + }, + clone: function () { + return new Jt.Triangle().copy(this); + }, + }), + (Jt.Clock = function (t) { + (this.autoStart = void 0 === t || t), + (this.startTime = 0), + (this.oldTime = 0), + (this.elapsedTime = 0), + (this.running = !1); + }), + (Jt.Clock.prototype = { + constructor: Jt.Clock, + start: function () { + (this.startTime = ( + void 0 !== self.performance && void 0 !== self.performance.now + ? self.performance + : Date + ).now()), + (this.oldTime = this.startTime), + (this.running = !0); + }, + stop: function () { + this.getElapsedTime(), (this.running = !1); + }, + getElapsedTime: function () { + return this.getDelta(), this.elapsedTime; + }, + getDelta: function () { + var t, + e = 0; + return ( + this.autoStart && !this.running && this.start(), + this.running && + ((e = + 0.001 * + ((t = ( + void 0 !== self.performance && void 0 !== self.performance.now + ? self.performance + : Date + ).now()) - + this.oldTime)), + (this.oldTime = t), + (this.elapsedTime += e)), + e + ); + }, + }), + (Jt.EventDispatcher = function () {}), + (Jt.EventDispatcher.prototype = { + constructor: Jt.EventDispatcher, + apply: function (t) { + (t.addEventListener = Jt.EventDispatcher.prototype.addEventListener), + (t.hasEventListener = Jt.EventDispatcher.prototype.hasEventListener), + (t.removeEventListener = + Jt.EventDispatcher.prototype.removeEventListener), + (t.dispatchEvent = Jt.EventDispatcher.prototype.dispatchEvent); + }, + addEventListener: function (t, e) { + void 0 === this._listeners && (this._listeners = {}); + var n = this._listeners; + void 0 === n[t] && (n[t] = []), -1 === n[t].indexOf(e) && n[t].push(e); + }, + hasEventListener: function (t, e) { + if (void 0 === this._listeners) return !1; + var n = this._listeners; + return void 0 !== n[t] && -1 !== n[t].indexOf(e); + }, + removeEventListener: function (t, e) { + void 0 !== this._listeners && + void 0 !== (t = this._listeners[t]) && + -1 !== (e = t.indexOf(e)) && + t.splice(e, 1); + }, + dispatchEvent: function (t) { + if (void 0 !== this._listeners) { + var e = this._listeners[t.type]; + if (void 0 !== e) { + t.target = this; + for (var n = [], r = e.length, i = 0; i < r; i++) n[i] = e[i]; + for (i = 0; i < r; i++) n[i].call(this, t); + } + } + }, + }), + ((He = Jt).Raycaster = function (t, e, n, r) { + (this.ray = new He.Ray(t, e)), + (this.near = n || 0), + (this.far = r || 1 / 0), + (this.params = { + Sprite: {}, + Mesh: {}, + PointCloud: { threshold: 1 }, + LOD: {}, + Line: {}, + }); + }), + (je = function (t, e, n, r) { + if ((t.raycast(e, n), !0 === r)) + for (var i = t.children, o = 0, a = i.length; o < a; o++) + je(i[o], e, n, !0); + }), + (He.Raycaster.prototype = { + constructor: He.Raycaster, + precision: 1e-4, + linePrecision: 1, + set: function (t, e) { + this.ray.set(t, e); + }, + setFromCamera: function (t, e) { + e instanceof He.PerspectiveCamera + ? (this.ray.origin.copy(e.position), + this.ray.direction + .set(t.x, t.y, 0.5) + .unproject(e) + .sub(e.position) + .normalize()) + : e instanceof He.OrthographicCamera + ? (this.ray.origin.set(t.x, t.y, -1).unproject(e), + this.ray.direction.set(0, 0, -1).transformDirection(e.matrixWorld)) + : He.error('THREE.Raycaster: Unsupported camera type.'); + }, + intersectObject: function (t, e) { + var n = []; + return je(t, this, n, e), n.sort(gr), n; + }, + intersectObjects: function (t, e) { + var n = []; + if (t instanceof Array == !1) + return ( + He.warn('THREE.Raycaster.intersectObjects: objects is not an Array.'), n + ); + for (var r = 0, i = t.length; r < i; r++) je(t[r], this, n, e); + return n.sort(gr), n; + }, + }), + (Jt.Object3D = function () { + Object.defineProperty(this, 'id', { value: Jt.Object3DIdCount++ }), + (this.uuid = Jt.Math.generateUUID()), + (this.name = ''), + (this.type = 'Object3D'), + (this.parent = void 0), + (this.children = []), + (this.up = Jt.Object3D.DefaultUp.clone()); + var t = new Jt.Vector3(), + e = new Jt.Euler(), + n = new Jt.Quaternion(), + r = new Jt.Vector3(1, 1, 1); + e.onChange(function () { + n.setFromEuler(e, !1); + }), + n.onChange(function () { + e.setFromQuaternion(n, void 0, !1); + }), + Object.defineProperties(this, { + position: { enumerable: !0, value: t }, + rotation: { enumerable: !0, value: e }, + quaternion: { enumerable: !0, value: n }, + scale: { enumerable: !0, value: r }, + }), + (this.rotationAutoUpdate = !0), + (this.matrix = new Jt.Matrix4()), + (this.matrixWorld = new Jt.Matrix4()), + (this.matrixAutoUpdate = !0), + (this.matrixWorldNeedsUpdate = !1), + (this.visible = !0), + (this.castShadow = !1), + (this.receiveShadow = !1), + (this.frustumCulled = !0), + (this.renderOrder = 0), + (this.userData = {}); + }), + (Jt.Object3D.DefaultUp = new Jt.Vector3(0, 1, 0)), + (Jt.Object3D.prototype = { + constructor: Jt.Object3D, + get eulerOrder() { + return ( + Jt.warn('THREE.Object3D: .eulerOrder has been moved to .rotation.order.'), + this.rotation.order + ); + }, + set eulerOrder(t) { + Jt.warn('THREE.Object3D: .eulerOrder has been moved to .rotation.order.'), + (this.rotation.order = t); + }, + get useQuaternion() { + Jt.warn( + 'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.', + ); + }, + set useQuaternion(t) { + Jt.warn( + 'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.', + ); + }, + applyMatrix: function (t) { + this.matrix.multiplyMatrices(t, this.matrix), + this.matrix.decompose(this.position, this.quaternion, this.scale); + }, + setRotationFromAxisAngle: function (t, e) { + this.quaternion.setFromAxisAngle(t, e); + }, + setRotationFromEuler: function (t) { + this.quaternion.setFromEuler(t, !0); + }, + setRotationFromMatrix: function (t) { + this.quaternion.setFromRotationMatrix(t); + }, + setRotationFromQuaternion: function (t) { + this.quaternion.copy(t); + }, + rotateOnAxis: + ((ln = new Jt.Quaternion()), + function (t, e) { + return ln.setFromAxisAngle(t, e), this.quaternion.multiply(ln), this; + }), + rotateX: + ((sn = new Jt.Vector3(1, 0, 0)), + function (t) { + return this.rotateOnAxis(sn, t); + }), + rotateY: + ((an = new Jt.Vector3(0, 1, 0)), + function (t) { + return this.rotateOnAxis(an, t); + }), + rotateZ: + ((on = new Jt.Vector3(0, 0, 1)), + function (t) { + return this.rotateOnAxis(on, t); + }), + translateOnAxis: + ((rn = new Jt.Vector3()), + function (t, e) { + return ( + rn.copy(t).applyQuaternion(this.quaternion), + this.position.add(rn.multiplyScalar(e)), + this + ); + }), + translate: function (t, e) { + return ( + Jt.warn( + 'THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.', + ), + this.translateOnAxis(e, t) + ); + }, + translateX: + ((nn = new Jt.Vector3(1, 0, 0)), + function (t) { + return this.translateOnAxis(nn, t); + }), + translateY: + ((en = new Jt.Vector3(0, 1, 0)), + function (t) { + return this.translateOnAxis(en, t); + }), + translateZ: + ((tn = new Jt.Vector3(0, 0, 1)), + function (t) { + return this.translateOnAxis(tn, t); + }), + localToWorld: function (t) { + return t.applyMatrix4(this.matrixWorld); + }, + worldToLocal: + (($e = new Jt.Matrix4()), + function (t) { + return t.applyMatrix4($e.getInverse(this.matrixWorld)); + }), + lookAt: + ((Xe = new Jt.Matrix4()), + function (t) { + Xe.lookAt(t, this.position, this.up), + this.quaternion.setFromRotationMatrix(Xe); + }), + add: function (t) { + if (1 < arguments.length) + for (var e = 0; e < arguments.length; e++) this.add(arguments[e]); + else { + if (t === this) + return ( + Jt.error( + "THREE.Object3D.add: object can't be added as a child of itself.", + t, + ), + this + ); + t instanceof Jt.Object3D + ? (void 0 !== t.parent && t.parent.remove(t), + (t.parent = this), + t.dispatchEvent({ type: 'added' }), + this.children.push(t)) + : Jt.error( + 'THREE.Object3D.add: object not an instance of THREE.Object3D.', + t, + ); + } + return this; + }, + remove: function (t) { + if (1 < arguments.length) + for (var e = 0; e < arguments.length; e++) this.remove(arguments[e]); + var n = this.children.indexOf(t); + -1 !== n && + ((t.parent = void 0), + t.dispatchEvent({ type: 'removed' }), + this.children.splice(n, 1)); + }, + getChildByName: function (t) { + return ( + Jt.warn( + 'THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().', + ), + this.getObjectByName(t) + ); + }, + getObjectById: function (t) { + return this.getObjectByProperty('id', t); + }, + getObjectByName: function (t) { + return this.getObjectByProperty('name', t); + }, + getObjectByProperty: function (t, e) { + if (this[t] === e) return this; + for (var n = 0, r = this.children.length; n < r; n++) { + var i = this.children[n].getObjectByProperty(t, e); + if (void 0 !== i) return i; + } + }, + getWorldPosition: function (t) { + t = t || new Jt.Vector3(); + return ( + this.updateMatrixWorld(!0), t.setFromMatrixPosition(this.matrixWorld) + ); + }, + getWorldQuaternion: + ((Ke = new Jt.Vector3()), + (Ze = new Jt.Vector3()), + function (t) { + t = t || new Jt.Quaternion(); + return ( + this.updateMatrixWorld(!0), this.matrixWorld.decompose(Ke, t, Ze), t + ); + }), + getWorldRotation: + ((Je = new Jt.Quaternion()), + function (t) { + t = t || new Jt.Euler(); + return ( + this.getWorldQuaternion(Je), + t.setFromQuaternion(Je, this.rotation.order, !1) + ); + }), + getWorldScale: + ((qe = new Jt.Vector3()), + (We = new Jt.Quaternion()), + function (t) { + t = t || new Jt.Vector3(); + return ( + this.updateMatrixWorld(!0), this.matrixWorld.decompose(qe, We, t), t + ); + }), + getWorldDirection: + ((Ve = new Jt.Quaternion()), + function (t) { + t = t || new Jt.Vector3(); + return this.getWorldQuaternion(Ve), t.set(0, 0, 1).applyQuaternion(Ve); + }), + raycast: function () {}, + traverse: function (t) { + t(this); + for (var e = 0, n = this.children.length; e < n; e++) + this.children[e].traverse(t); + }, + traverseVisible: function (t) { + if (!1 !== this.visible) { + t(this); + for (var e = 0, n = this.children.length; e < n; e++) + this.children[e].traverseVisible(t); + } + }, + traverseAncestors: function (t) { + this.parent && (t(this.parent), this.parent.traverseAncestors(t)); + }, + updateMatrix: function () { + this.matrix.compose(this.position, this.quaternion, this.scale), + (this.matrixWorldNeedsUpdate = !0); + }, + updateMatrixWorld: function (t) { + !0 === this.matrixAutoUpdate && this.updateMatrix(), + (!0 !== this.matrixWorldNeedsUpdate && !0 !== t) || + (void 0 === this.parent + ? this.matrixWorld.copy(this.matrix) + : this.matrixWorld.multiplyMatrices( + this.parent.matrixWorld, + this.matrix, + ), + (t = !(this.matrixWorldNeedsUpdate = !1))); + for (var e = 0, n = this.children.length; e < n; e++) + this.children[e].updateMatrixWorld(t); + }, + toJSON: function () { + var n = { + metadata: { version: 4.3, type: 'Object', generator: 'ObjectExporter' }, + }, + r = {}, + i = function (t) { + var e; + return ( + void 0 === n.geometries && (n.geometries = []), + void 0 === r[t.uuid] && + (delete (e = t.toJSON()).metadata, + (r[t.uuid] = e), + n.geometries.push(e)), + t.uuid + ); + }, + o = {}, + a = function (t) { + var e; + return ( + void 0 === n.materials && (n.materials = []), + void 0 === o[t.uuid] && + (delete (e = t.toJSON()).metadata, + (o[t.uuid] = e), + n.materials.push(e)), + t.uuid + ); + }, + s = function (t) { + var e = {}; + if ( + ((e.uuid = t.uuid), + (e.type = t.type), + '' !== t.name && (e.name = t.name), + '{}' !== JSON.stringify(t.userData) && (e.userData = t.userData), + !0 !== t.visible && (e.visible = t.visible), + t instanceof Jt.PerspectiveCamera + ? ((e.fov = t.fov), + (e.aspect = t.aspect), + (e.near = t.near), + (e.far = t.far)) + : t instanceof Jt.OrthographicCamera + ? ((e.left = t.left), + (e.right = t.right), + (e.top = t.top), + (e.bottom = t.bottom), + (e.near = t.near), + (e.far = t.far)) + : t instanceof Jt.AmbientLight + ? (e.color = t.color.getHex()) + : t instanceof Jt.DirectionalLight + ? ((e.color = t.color.getHex()), (e.intensity = t.intensity)) + : t instanceof Jt.PointLight + ? ((e.color = t.color.getHex()), + (e.intensity = t.intensity), + (e.distance = t.distance), + (e.decay = t.decay)) + : t instanceof Jt.SpotLight + ? ((e.color = t.color.getHex()), + (e.intensity = t.intensity), + (e.distance = t.distance), + (e.angle = t.angle), + (e.exponent = t.exponent), + (e.decay = t.decay)) + : t instanceof Jt.HemisphereLight + ? ((e.color = t.color.getHex()), + (e.groundColor = t.groundColor.getHex())) + : t instanceof Jt.Mesh || + t instanceof Jt.Line || + t instanceof Jt.PointCloud + ? ((e.geometry = i(t.geometry)), + (e.material = a(t.material)), + t instanceof Jt.Line && (e.mode = t.mode)) + : t instanceof Jt.Sprite && + (e.material = a(t.material)), + (e.matrix = t.matrix.toArray()), + 0 < t.children.length) + ) { + e.children = []; + for (var n = 0; n < t.children.length; n++) + e.children.push(s(t.children[n])); + } + return e; + }; + return (n.object = s(this)), n; + }, + clone: function (t, e) { + if ( + (void 0 === e && (e = !0), + ((t = void 0 === t ? new Jt.Object3D() : t).name = this.name), + t.up.copy(this.up), + t.position.copy(this.position), + t.quaternion.copy(this.quaternion), + t.scale.copy(this.scale), + (t.rotationAutoUpdate = this.rotationAutoUpdate), + t.matrix.copy(this.matrix), + t.matrixWorld.copy(this.matrixWorld), + (t.matrixAutoUpdate = this.matrixAutoUpdate), + (t.matrixWorldNeedsUpdate = this.matrixWorldNeedsUpdate), + (t.visible = this.visible), + (t.castShadow = this.castShadow), + (t.receiveShadow = this.receiveShadow), + (t.frustumCulled = this.frustumCulled), + (t.userData = JSON.parse(JSON.stringify(this.userData))), + !0 === e) + ) + for (var n = 0; n < this.children.length; n++) { + var r = this.children[n]; + t.add(r.clone()); + } + return t; + }, + }), + Jt.EventDispatcher.prototype.apply(Jt.Object3D.prototype), + (Jt.Object3DIdCount = 0), + (Jt.Face3 = function (t, e, n, r, i, o) { + (this.a = t), + (this.b = e), + (this.c = n), + (this.normal = r instanceof Jt.Vector3 ? r : new Jt.Vector3()), + (this.vertexNormals = r instanceof Array ? r : []), + (this.color = i instanceof Jt.Color ? i : new Jt.Color()), + (this.vertexColors = i instanceof Array ? i : []), + (this.vertexTangents = []), + (this.materialIndex = void 0 !== o ? o : 0); + }), + (Jt.Face3.prototype = { + constructor: Jt.Face3, + clone: function () { + var t = new Jt.Face3(this.a, this.b, this.c); + t.normal.copy(this.normal), + t.color.copy(this.color), + (t.materialIndex = this.materialIndex); + for (var e = 0, n = this.vertexNormals.length; e < n; e++) + t.vertexNormals[e] = this.vertexNormals[e].clone(); + for (e = 0, n = this.vertexColors.length; e < n; e++) + t.vertexColors[e] = this.vertexColors[e].clone(); + for (e = 0, n = this.vertexTangents.length; e < n; e++) + t.vertexTangents[e] = this.vertexTangents[e].clone(); + return t; + }, + }), + (Jt.Face4 = function (t, e, n, r, i, o, a) { + return ( + Jt.warn( + 'THREE.Face4 has been removed. A THREE.Face3 will be created instead.', + ), + new Jt.Face3(t, e, n, i, o, a) + ); + }), + (Jt.BufferAttribute = function (t, e) { + (this.array = t), (this.itemSize = e), (this.needsUpdate = !1); + }), + (Jt.BufferAttribute.prototype = { + constructor: Jt.BufferAttribute, + get length() { + return this.array.length; + }, + copyAt: function (t, e, n) { + (t *= this.itemSize), (n *= e.itemSize); + for (var r = 0, i = this.itemSize; r < i; r++) + this.array[t + r] = e.array[n + r]; + return this; + }, + set: function (t, e) { + return this.array.set(t, (e = void 0 === e ? 0 : e)), this; + }, + setX: function (t, e) { + return (this.array[t * this.itemSize] = e), this; + }, + setY: function (t, e) { + return (this.array[t * this.itemSize + 1] = e), this; + }, + setZ: function (t, e) { + return (this.array[t * this.itemSize + 2] = e), this; + }, + setXY: function (t, e, n) { + return ( + (t *= this.itemSize), (this.array[t] = e), (this.array[t + 1] = n), this + ); + }, + setXYZ: function (t, e, n, r) { + return ( + (t *= this.itemSize), + (this.array[t] = e), + (this.array[t + 1] = n), + (this.array[t + 2] = r), + this + ); + }, + setXYZW: function (t, e, n, r, i) { + return ( + (t *= this.itemSize), + (this.array[t] = e), + (this.array[t + 1] = n), + (this.array[t + 2] = r), + (this.array[t + 3] = i), + this + ); + }, + clone: function () { + return new Jt.BufferAttribute( + new this.array.constructor(this.array), + this.itemSize, + ); + }, + }), + (Jt.Int8Attribute = function (t, e) { + return ( + Jt.warn( + 'THREE.Int8Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.', + ), + new Jt.BufferAttribute(t, e) + ); + }), + (Jt.Uint8Attribute = function (t, e) { + return ( + Jt.warn( + 'THREE.Uint8Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.', + ), + new Jt.BufferAttribute(t, e) + ); + }), + (Jt.Uint8ClampedAttribute = function (t, e) { + return ( + Jt.warn( + 'THREE.Uint8ClampedAttribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.', + ), + new Jt.BufferAttribute(t, e) + ); + }), + (Jt.Int16Attribute = function (t, e) { + return ( + Jt.warn( + 'THREE.Int16Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.', + ), + new Jt.BufferAttribute(t, e) + ); + }), + (Jt.Uint16Attribute = function (t, e) { + return ( + Jt.warn( + 'THREE.Uint16Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.', + ), + new Jt.BufferAttribute(t, e) + ); + }), + (Jt.Int32Attribute = function (t, e) { + return ( + Jt.warn( + 'THREE.Int32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.', + ), + new Jt.BufferAttribute(t, e) + ); + }), + (Jt.Uint32Attribute = function (t, e) { + return ( + Jt.warn( + 'THREE.Uint32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.', + ), + new Jt.BufferAttribute(t, e) + ); + }), + (Jt.Float32Attribute = function (t, e) { + return ( + Jt.warn( + 'THREE.Float32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.', + ), + new Jt.BufferAttribute(t, e) + ); + }), + (Jt.Float64Attribute = function (t, e) { + return ( + Jt.warn( + 'THREE.Float64Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.', + ), + new Jt.BufferAttribute(t, e) + ); + }), + (Jt.DynamicBufferAttribute = function (t, e) { + Jt.BufferAttribute.call(this, t, e), + (this.updateRange = { offset: 0, count: -1 }); + }), + (Jt.DynamicBufferAttribute.prototype = Object.create( + Jt.BufferAttribute.prototype, + )), + (Jt.DynamicBufferAttribute.prototype.constructor = Jt.DynamicBufferAttribute), + (Jt.DynamicBufferAttribute.prototype.clone = function () { + return new Jt.DynamicBufferAttribute( + new this.array.constructor(this.array), + this.itemSize, + ); + }), + (Jt.BufferGeometry = function () { + Object.defineProperty(this, 'id', { value: Jt.GeometryIdCount++ }), + (this.uuid = Jt.Math.generateUUID()), + (this.name = ''), + (this.type = 'BufferGeometry'), + (this.attributes = {}), + (this.attributesKeys = []), + (this.drawcalls = []), + (this.offsets = this.drawcalls), + (this.boundingBox = null), + (this.boundingSphere = null); + }), + (Jt.BufferGeometry.prototype = { + constructor: Jt.BufferGeometry, + addAttribute: function (t, e) { + if (e instanceof Jt.BufferAttribute == !1) + return ( + Jt.warn( + 'THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).', + ), + void (this.attributes[t] = { array: e, itemSize: arguments[2] }) + ); + (this.attributes[t] = e), + (this.attributesKeys = Object.keys(this.attributes)); + }, + getAttribute: function (t) { + return this.attributes[t]; + }, + addDrawCall: function (t, e, n) { + this.drawcalls.push({ start: t, count: e, index: void 0 !== n ? n : 0 }); + }, + applyMatrix: function (t) { + var e = this.attributes.position, + e = + (void 0 !== e && (t.applyToVector3Array(e.array), (e.needsUpdate = !0)), + this.attributes.normal); + void 0 !== e && + (new Jt.Matrix3().getNormalMatrix(t).applyToVector3Array(e.array), + (e.needsUpdate = !0)), + null !== this.boundingBox && this.computeBoundingBox(), + null !== this.boundingSphere && this.computeBoundingSphere(); + }, + center: function () { + this.computeBoundingBox(); + var t = this.boundingBox.center().negate(); + return this.applyMatrix(new Jt.Matrix4().setPosition(t)), t; + }, + fromGeometry: function (t, e) { + e = e || { vertexColors: Jt.NoColors }; + var n, + r, + i = t.vertices, + o = t.faces, + a = t.faceVertexUvs, + s = e.vertexColors, + l = 0 < a[0].length, + u = 3 == o[0].vertexNormals.length, + c = new Float32Array(3 * o.length * 3), + A = + (this.addAttribute('position', new Jt.BufferAttribute(c, 3)), + new Float32Array(3 * o.length * 3)); + this.addAttribute('normal', new Jt.BufferAttribute(A, 3)), + s !== Jt.NoColors && + ((n = new Float32Array(3 * o.length * 3)), + this.addAttribute('color', new Jt.BufferAttribute(n, 3))), + !0 == l && + ((r = new Float32Array(3 * o.length * 2)), + this.addAttribute('uv', new Jt.BufferAttribute(r, 2))); + for (var h = 0, p = 0, d = 0; h < o.length; h++, p += 6, d += 9) { + var f = o[h], + g = i[f.a], + m = i[f.b], + v = i[f.c]; + (c[d] = g.x), + (c[d + 1] = g.y), + (c[d + 2] = g.z), + (c[d + 3] = m.x), + (c[d + 4] = m.y), + (c[d + 5] = m.z), + (c[d + 6] = v.x), + (c[d + 7] = v.y), + (c[d + 8] = v.z), + !0 == u + ? ((g = f.vertexNormals[0]), + (m = f.vertexNormals[1]), + (v = f.vertexNormals[2]), + (A[d] = g.x), + (A[d + 1] = g.y), + (A[d + 2] = g.z), + (A[d + 3] = m.x), + (A[d + 4] = m.y), + (A[d + 5] = m.z), + (A[d + 6] = v.x), + (A[d + 7] = v.y), + (A[d + 8] = v.z)) + : ((g = f.normal), + (A[d] = g.x), + (A[d + 1] = g.y), + (A[d + 2] = g.z), + (A[d + 3] = g.x), + (A[d + 4] = g.y), + (A[d + 5] = g.z), + (A[d + 6] = g.x), + (A[d + 7] = g.y), + (A[d + 8] = g.z)), + s === Jt.FaceColors + ? ((m = f.color), + (n[d] = m.r), + (n[d + 1] = m.g), + (n[d + 2] = m.b), + (n[d + 3] = m.r), + (n[d + 4] = m.g), + (n[d + 5] = m.b), + (n[d + 6] = m.r), + (n[d + 7] = m.g), + (n[d + 8] = m.b)) + : s === Jt.VertexColors && + ((v = f.vertexColors[0]), + (g = f.vertexColors[1]), + (m = f.vertexColors[2]), + (n[d] = v.r), + (n[d + 1] = v.g), + (n[d + 2] = v.b), + (n[d + 3] = g.r), + (n[d + 4] = g.g), + (n[d + 5] = g.b), + (n[d + 6] = m.r), + (n[d + 7] = m.g), + (n[d + 8] = m.b)), + !0 == l && + ((f = a[0][h][0]), + (v = a[0][h][1]), + (g = a[0][h][2]), + (r[p] = f.x), + (r[p + 1] = f.y), + (r[p + 2] = v.x), + (r[p + 3] = v.y), + (r[p + 4] = g.x), + (r[p + 5] = g.y)); + } + return this.computeBoundingSphere(), this; + }, + computeBoundingBox: + ((An = new Jt.Vector3()), + function () { + null === this.boundingBox && (this.boundingBox = new Jt.Box3()); + var t = this.attributes.position.array; + if (t) { + var e = this.boundingBox; + e.makeEmpty(); + for (var n = 0, r = t.length; n < r; n += 3) + An.set(t[n], t[n + 1], t[n + 2]), e.expandByPoint(An); + } + (void 0 !== t && 0 !== t.length) || + (this.boundingBox.min.set(0, 0, 0), this.boundingBox.max.set(0, 0, 0)), + (isNaN(this.boundingBox.min.x) || + isNaN(this.boundingBox.min.y) || + isNaN(this.boundingBox.min.z)) && + Jt.error( + 'THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.', + ); + }), + computeBoundingSphere: + ((un = new Jt.Box3()), + (cn = new Jt.Vector3()), + function () { + null === this.boundingSphere && (this.boundingSphere = new Jt.Sphere()); + var t = this.attributes.position.array; + if (t) { + un.makeEmpty(); + for ( + var e = this.boundingSphere.center, n = 0, r = t.length; + n < r; + n += 3 + ) + cn.set(t[n], t[n + 1], t[n + 2]), un.expandByPoint(cn); + un.center(e); + for (var i = 0, n = 0, r = t.length; n < r; n += 3) + cn.set(t[n], t[n + 1], t[n + 2]), + (i = Math.max(i, e.distanceToSquared(cn))); + (this.boundingSphere.radius = Math.sqrt(i)), + isNaN(this.boundingSphere.radius) && + Jt.error( + 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.', + ); + } + }), + computeFaceNormals: function () {}, + computeVertexNormals: function () { + var t = this.attributes; + if (t.position) { + var e = t.position.array; + if (void 0 === t.normal) + this.addAttribute( + 'normal', + new Jt.BufferAttribute(new Float32Array(e.length), 3), + ); + else + for (var n = 0, r = (s = t.normal.array).length; n < r; n++) s[n] = 0; + var i, + o, + a, + s = t.normal.array, + l = new Jt.Vector3(), + u = new Jt.Vector3(), + c = new Jt.Vector3(), + A = new Jt.Vector3(), + h = new Jt.Vector3(); + if (t.index) + for ( + var p = t.index.array, + d = + 0 < this.offsets.length + ? this.offsets + : [{ start: 0, count: p.length, index: 0 }], + f = 0, + g = d.length; + f < g; + ++f + ) + for ( + var m = d[f].start, + v = d[f].count, + b = d[f].index, + n = m, + r = m + v; + n < r; + n += 3 + ) + (i = 3 * (b + p[n])), + (o = 3 * (b + p[n + 1])), + (a = 3 * (b + p[n + 2])), + l.fromArray(e, i), + u.fromArray(e, o), + c.fromArray(e, a), + A.subVectors(c, u), + h.subVectors(l, u), + A.cross(h), + (s[i] += A.x), + (s[1 + i] += A.y), + (s[2 + i] += A.z), + (s[o] += A.x), + (s[1 + o] += A.y), + (s[2 + o] += A.z), + (s[a] += A.x), + (s[1 + a] += A.y), + (s[2 + a] += A.z); + else + for (n = 0, r = e.length; n < r; n += 9) + l.fromArray(e, n), + u.fromArray(e, n + 3), + c.fromArray(e, n + 6), + A.subVectors(c, u), + h.subVectors(l, u), + A.cross(h), + (s[n] = A.x), + (s[n + 1] = A.y), + (s[n + 2] = A.z), + (s[n + 3] = A.x), + (s[n + 4] = A.y), + (s[n + 5] = A.z), + (s[n + 6] = A.x), + (s[n + 7] = A.y), + (s[n + 8] = A.z); + this.normalizeNormals(), (t.normal.needsUpdate = !0); + } + }, + computeTangents: function () { + if ( + void 0 === this.attributes.index || + void 0 === this.attributes.position || + void 0 === this.attributes.normal || + void 0 === this.attributes.uv + ) + Jt.warn( + 'THREE.BufferGeometry: Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()', + ); + else { + for ( + var t = this.attributes.index.array, + e = this.attributes.position.array, + U = this.attributes.normal.array, + n = this.attributes.uv.array, + N = e.length / 3, + r = + (void 0 === this.attributes.tangent && + this.addAttribute( + 'tangent', + new Jt.BufferAttribute(new Float32Array(4 * N), 4), + ), + this.attributes.tangent.array), + i = [], + o = [], + a = 0; + a < N; + a++ + ) + (i[a] = new Jt.Vector3()), (o[a] = new Jt.Vector3()); + for ( + var s, + l, + u, + c, + P, + L, + A, + h, + p, + d, + f, + g, + m, + v, + b, + y, + w, + E = new Jt.Vector3(), + B = new Jt.Vector3(), + C = new Jt.Vector3(), + x = new Jt.Vector2(), + Y = new Jt.Vector2(), + O = new Jt.Vector2(), + I = new Jt.Vector3(), + M = new Jt.Vector3(), + D = + (0 === this.drawcalls.length && this.addDrawCall(0, t.length, 0), + this.drawcalls), + S = 0, + G = D.length; + S < G; + ++S + ) + for ( + var k = D[S].start, z = D[S].count, F = D[S].index, Q = k, H = k + z; + Q < H; + Q += 3 + ) + (g = F + t[Q]), + (m = F + t[Q + 1]), + (v = F + t[Q + 2]), + (b = g), + (y = m), + (w = v), + E.fromArray(e, 3 * b), + B.fromArray(e, 3 * y), + C.fromArray(e, 3 * w), + x.fromArray(n, 2 * b), + Y.fromArray(n, 2 * y), + O.fromArray(n, 2 * w), + (s = B.x - E.x), + (l = C.x - E.x), + (u = B.y - E.y), + (c = C.y - E.y), + (P = B.z - E.z), + (L = C.z - E.z), + (A = Y.x - x.x), + (h = O.x - x.x), + (p = Y.y - x.y), + (d = O.y - x.y), + I.set( + (d * s - p * l) * (f = 1 / (A * d - h * p)), + (d * u - p * c) * f, + (d * P - p * L) * f, + ), + M.set( + (A * l - h * s) * f, + (A * c - h * u) * f, + (A * L - h * P) * f, + ), + i[b].add(I), + i[y].add(I), + i[w].add(I), + o[b].add(M), + o[y].add(M), + o[w].add(M); + var _, + T = new Jt.Vector3(), + j = new Jt.Vector3(), + R = new Jt.Vector3(), + V = new Jt.Vector3(); + for (S = 0, G = D.length; S < G; ++S) { + (k = D[S].start), (z = D[S].count), (F = D[S].index); + for (H = (Q = k) + z; Q < H; Q += 3) + (g = F + t[Q]), + (m = F + t[Q + 1]), + (v = F + t[Q + 2]), + q(g), + q(m), + q(v); + } + } + function q(t) { + R.fromArray(U, 3 * t), + V.copy(R), + (_ = i[t]), + T.copy(_), + T.sub(R.multiplyScalar(R.dot(_))).normalize(), + j.crossVectors(V, _), + (_ = j.dot(o[t])), + (_ = _ < 0 ? -1 : 1), + (r[4 * t] = T.x), + (r[4 * t + 1] = T.y), + (r[4 * t + 2] = T.z), + (r[4 * t + 3] = _); + } + }, + computeOffsets: function (t) { + void 0 === t && (t = 65535); + for ( + var e = this.attributes.index.array, + n = this.attributes.position.array, + r = e.length / 3, + i = new Uint16Array(e.length), + o = 0, + a = 0, + s = [{ start: 0, count: 0, index: 0 }], + l = s[0], + u = 0, + c = new Int32Array(6), + A = new Int32Array(n.length), + h = new Int32Array(n.length), + p = 0; + p < n.length; + p++ + ) + (A[p] = -1), (h[p] = -1); + for (var d = 0; d < r; d++) { + for (var u = 0, f = 0; f < 3; f++) + -1 == A[(b = e[3 * d + f])] + ? ((c[2 * f] = b), (c[2 * f + 1] = -1), u++) + : A[b] < l.index + ? ((c[2 * f] = b), (c[2 * f + 1] = -1), 0) + : ((c[2 * f] = b), (c[2 * f + 1] = A[b])); + if (a + u > l.index + t) { + var g = { start: o, count: 0, index: a }; + s.push(g); + for (var l = g, m = 0; m < 6; m += 2) + -1 < (v = c[m + 1]) && v < l.index && (c[m + 1] = -1); + } + for (m = 0; m < 6; m += 2) { + var v, + b = c[m]; + -1 === (v = c[m + 1]) && (v = a++), + (h[(A[b] = v)] = b), + (i[o++] = v - l.index), + l.count++; + } + } + return ( + this.reorderBuffers(i, h, a), (this.offsets = s), (this.drawcalls = s) + ); + }, + merge: function (t, e) { + if (t instanceof Jt.BufferGeometry != !1) { + void 0 === e && (e = 0); + var n, + r = this.attributes; + for (n in r) + if (void 0 !== t.attributes[n]) + for ( + var i = r[n].array, + o = t.attributes[n], + a = o.array, + s = 0, + l = o.itemSize * e; + s < a.length; + s++, l++ + ) + i[l] = a[s]; + return this; + } + Jt.error( + 'THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.', + t, + ); + }, + normalizeNormals: function () { + for ( + var t, e, n, r = this.attributes.normal.array, i = 0, o = r.length; + i < o; + i += 3 + ) + (n = r[i]), + (t = r[i + 1]), + (e = r[i + 2]), + (n = 1 / Math.sqrt(n * n + t * t + e * e)), + (r[i] *= n), + (r[i + 1] *= n), + (r[i + 2] *= n); + }, + reorderBuffers: function (t, e, n) { + var r, + i = {}; + for (a in this.attributes) + 'index' != a && + ((r = this.attributes[a].array), + (i[a] = new r.constructor(this.attributes[a].itemSize * n))); + for (var o = 0; o < n; o++) { + var a, + s = e[o]; + for (a in this.attributes) + if ('index' != a) + for ( + var l = this.attributes[a].array, + u = this.attributes[a].itemSize, + c = i[a], + A = 0; + A < u; + A++ + ) + c[o * u + A] = l[s * u + A]; + } + for (a in ((this.attributes.index.array = t), this.attributes)) + 'index' != a && + ((this.attributes[a].array = i[a]), + (this.attributes[a].numItems = this.attributes[a].itemSize * n)); + }, + toJSON: function () { + var t, + e = { + metadata: { + version: 4, + type: 'BufferGeometry', + generator: 'BufferGeometryExporter', + }, + uuid: this.uuid, + type: this.type, + data: { attributes: {} }, + }, + n = this.attributes, + r = this.offsets, + i = this.boundingSphere; + for (t in n) { + var o = n[t], + a = Array.prototype.slice.call(o.array); + e.data.attributes[t] = { + itemSize: o.itemSize, + type: o.array.constructor.name, + array: a, + }; + } + return ( + 0 < r.length && (e.data.offsets = JSON.parse(JSON.stringify(r))), + null !== i && + (e.data.boundingSphere = { + center: i.center.toArray(), + radius: i.radius, + }), + e + ); + }, + clone: function () { + var t, + e = new Jt.BufferGeometry(); + for (t in this.attributes) { + var n = this.attributes[t]; + e.addAttribute(t, n.clone()); + } + for (var r = 0, i = this.offsets.length; r < i; r++) { + var o = this.offsets[r]; + e.offsets.push({ start: o.start, index: o.index, count: o.count }); + } + return e; + }, + dispose: function () { + this.dispatchEvent({ type: 'dispose' }); + }, + }), + Jt.EventDispatcher.prototype.apply(Jt.BufferGeometry.prototype), + (Jt.Geometry = function () { + Object.defineProperty(this, 'id', { value: Jt.GeometryIdCount++ }), + (this.uuid = Jt.Math.generateUUID()), + (this.name = ''), + (this.type = 'Geometry'), + (this.vertices = []), + (this.colors = []), + (this.faces = []), + (this.faceVertexUvs = [[]]), + (this.morphTargets = []), + (this.morphColors = []), + (this.morphNormals = []), + (this.skinWeights = []), + (this.skinIndices = []), + (this.lineDistances = []), + (this.boundingBox = null), + (this.boundingSphere = null), + (this.hasTangents = !1), + (this.dynamic = !0), + (this.verticesNeedUpdate = !1), + (this.elementsNeedUpdate = !1), + (this.uvsNeedUpdate = !1), + (this.normalsNeedUpdate = !1), + (this.tangentsNeedUpdate = !1), + (this.colorsNeedUpdate = !1), + (this.lineDistancesNeedUpdate = !1), + (this.groupsNeedUpdate = !1); + }), + (Jt.Geometry.prototype = { + constructor: Jt.Geometry, + applyMatrix: function (t) { + for ( + var e = new Jt.Matrix3().getNormalMatrix(t), + n = 0, + r = this.vertices.length; + n < r; + n++ + ) + this.vertices[n].applyMatrix4(t); + for (n = 0, r = this.faces.length; n < r; n++) { + var i = this.faces[n]; + i.normal.applyMatrix3(e).normalize(); + for (var o = 0, a = i.vertexNormals.length; o < a; o++) + i.vertexNormals[o].applyMatrix3(e).normalize(); + } + null !== this.boundingBox && this.computeBoundingBox(), + null !== this.boundingSphere && this.computeBoundingSphere(), + (this.verticesNeedUpdate = !0), + (this.normalsNeedUpdate = !0); + }, + fromBufferGeometry: function (t) { + for ( + var o = this, + e = t.attributes, + n = e.position.array, + r = void 0 !== e.index ? e.index.array : void 0, + a = void 0 !== e.normal ? e.normal.array : void 0, + s = void 0 !== e.color ? e.color.array : void 0, + l = void 0 !== e.uv ? e.uv.array : void 0, + u = [], + c = [], + i = 0, + A = 0; + i < n.length; + i += 3, A += 2 + ) + o.vertices.push(new Jt.Vector3(n[i], n[i + 1], n[i + 2])), + void 0 !== a && u.push(new Jt.Vector3(a[i], a[i + 1], a[i + 2])), + void 0 !== s && o.colors.push(new Jt.Color(s[i], s[i + 1], s[i + 2])), + void 0 !== l && c.push(new Jt.Vector2(l[A], l[A + 1])); + function h(t, e, n) { + var r = void 0 !== a ? [u[t].clone(), u[e].clone(), u[n].clone()] : [], + i = + void 0 !== s + ? [o.colors[t].clone(), o.colors[e].clone(), o.colors[n].clone()] + : []; + o.faces.push(new Jt.Face3(t, e, n, r, i)), + void 0 !== l && + o.faceVertexUvs[0].push([c[t].clone(), c[e].clone(), c[n].clone()]); + } + if (void 0 !== r) { + var p = t.drawcalls; + if (0 < p.length) + for (i = 0; i < p.length; i++) + for ( + var d = p[i], + f = d.start, + g = d.count, + m = d.index, + A = f, + v = f + g; + A < v; + A += 3 + ) + h(m + r[A], m + r[A + 1], m + r[A + 2]); + else for (i = 0; i < r.length; i += 3) h(r[i], r[i + 1], r[i + 2]); + } else for (i = 0; i < n.length / 3; i += 3) h(i, i + 1, i + 2); + return ( + this.computeFaceNormals(), + null !== t.boundingBox && (this.boundingBox = t.boundingBox.clone()), + null !== t.boundingSphere && + (this.boundingSphere = t.boundingSphere.clone()), + this + ); + }, + center: function () { + this.computeBoundingBox(); + var t = this.boundingBox.center().negate(); + return this.applyMatrix(new Jt.Matrix4().setPosition(t)), t; + }, + computeFaceNormals: function () { + for ( + var t = new Jt.Vector3(), + e = new Jt.Vector3(), + n = 0, + r = this.faces.length; + n < r; + n++ + ) { + var i = this.faces[n], + o = this.vertices[i.a], + a = this.vertices[i.b], + s = this.vertices[i.c]; + t.subVectors(s, a), + e.subVectors(o, a), + t.cross(e), + t.normalize(), + i.normal.copy(t); + } + }, + computeVertexNormals: function (t) { + for ( + var e, + n = new Array(this.vertices.length), + r = 0, + i = this.vertices.length; + r < i; + r++ + ) + n[r] = new Jt.Vector3(); + if (t) + for ( + var o, + a, + s, + l = new Jt.Vector3(), + u = new Jt.Vector3(), + c = 0, + A = this.faces.length; + c < A; + c++ + ) + (e = this.faces[c]), + (o = this.vertices[e.a]), + (a = this.vertices[e.b]), + (s = this.vertices[e.c]), + l.subVectors(s, a), + u.subVectors(o, a), + l.cross(u), + n[e.a].add(l), + n[e.b].add(l), + n[e.c].add(l); + else + for (c = 0, A = this.faces.length; c < A; c++) + n[(e = this.faces[c]).a].add(e.normal), + n[e.b].add(e.normal), + n[e.c].add(e.normal); + for (r = 0, i = this.vertices.length; r < i; r++) n[r].normalize(); + for (c = 0, A = this.faces.length; c < A; c++) + ((e = this.faces[c]).vertexNormals[0] = n[e.a].clone()), + (e.vertexNormals[1] = n[e.b].clone()), + (e.vertexNormals[2] = n[e.c].clone()); + }, + computeMorphNormals: function () { + var t, e, n; + for (a = 0, s = this.faces.length; a < s; a++) + for ( + (n = this.faces[a]).__originalFaceNormal + ? n.__originalFaceNormal.copy(n.normal) + : (n.__originalFaceNormal = n.normal.clone()), + n.__originalVertexNormals || (n.__originalVertexNormals = []), + t = 0, + e = n.vertexNormals.length; + t < e; + t++ + ) + n.__originalVertexNormals[t] + ? n.__originalVertexNormals[t].copy(n.vertexNormals[t]) + : (n.__originalVertexNormals[t] = n.vertexNormals[t].clone()); + var r = new Jt.Geometry(); + for ( + r.faces = this.faces, t = 0, e = this.morphTargets.length; + t < e; + t++ + ) { + if (!this.morphNormals[t]) { + (this.morphNormals[t] = {}), + (this.morphNormals[t].faceNormals = []), + (this.morphNormals[t].vertexNormals = []); + for ( + var i = this.morphNormals[t].faceNormals, + o = this.morphNormals[t].vertexNormals, + a = 0, + s = this.faces.length; + a < s; + a++ + ) + (l = new Jt.Vector3()), + (u = { + a: new Jt.Vector3(), + b: new Jt.Vector3(), + c: new Jt.Vector3(), + }), + i.push(l), + o.push(u); + } + var l, + u, + c = this.morphNormals[t]; + for ( + r.vertices = this.morphTargets[t].vertices, + r.computeFaceNormals(), + r.computeVertexNormals(), + a = 0, + s = this.faces.length; + a < s; + a++ + ) + (n = this.faces[a]), + (l = c.faceNormals[a]), + (u = c.vertexNormals[a]), + l.copy(n.normal), + u.a.copy(n.vertexNormals[0]), + u.b.copy(n.vertexNormals[1]), + u.c.copy(n.vertexNormals[2]); + } + for (a = 0, s = this.faces.length; a < s; a++) + ((n = this.faces[a]).normal = n.__originalFaceNormal), + (n.vertexNormals = n.__originalVertexNormals); + }, + computeTangents: function () { + for ( + var t, + e, + n, + r, + i, + o, + a, + s, + l, + u, + c, + A, + h, + p, + d, + f, + g, + m, + v = [], + b = [], + y = new Jt.Vector3(), + w = new Jt.Vector3(), + E = new Jt.Vector3(), + B = new Jt.Vector3(), + C = new Jt.Vector3(), + x = 0, + I = this.vertices.length; + x < I; + x++ + ) + (v[x] = new Jt.Vector3()), (b[x] = new Jt.Vector3()); + for (D = 0, S = this.faces.length; D < S; D++) + (n = this.faces[D]), + (u = this.faceVertexUvs[0][D]), + (A = this), + (h = n.a), + (p = n.b), + (d = n.c), + (f = 0), + (g = 1), + (m = 2), + (s = A.vertices[h]), + (a = A.vertices[p]), + (A = A.vertices[d]), + (f = u[f]), + (g = u[g]), + (u = u[m]), + (m = a.x - s.x), + (r = A.x - s.x), + (i = a.y - s.y), + (o = A.y - s.y), + (a = a.z - s.z), + (A = A.z - s.z), + (s = g.x - f.x), + (l = u.x - f.x), + (g = g.y - f.y), + (u = u.y - f.y), + y.set( + (u * m - g * r) * (f = 1 / (s * u - l * g)), + (u * i - g * o) * f, + (u * a - g * A) * f, + ), + w.set((s * r - l * m) * f, (s * o - l * i) * f, (s * A - l * a) * f), + v[h].add(y), + v[p].add(y), + v[d].add(y), + b[h].add(w), + b[p].add(w), + b[d].add(w); + for (var M = ['a', 'b', 'c', 'd'], D = 0, S = this.faces.length; D < S; D++) + for ( + n = this.faces[D], t = 0; + t < Math.min(n.vertexNormals.length, 3); + t++ + ) + C.copy(n.vertexNormals[t]), + (e = n[M[t]]), + (c = v[e]), + E.copy(c), + E.sub(C.multiplyScalar(C.dot(c))).normalize(), + B.crossVectors(n.vertexNormals[t], c), + (c = B.dot(b[e])), + (n.vertexTangents[t] = new Jt.Vector4(E.x, E.y, E.z, c < 0 ? -1 : 1)); + this.hasTangents = !0; + }, + computeLineDistances: function () { + for (var t = 0, e = this.vertices, n = 0, r = e.length; n < r; n++) + 0 < n && (t += e[n].distanceTo(e[n - 1])), (this.lineDistances[n] = t); + }, + computeBoundingBox: function () { + null === this.boundingBox && (this.boundingBox = new Jt.Box3()), + this.boundingBox.setFromPoints(this.vertices); + }, + computeBoundingSphere: function () { + null === this.boundingSphere && (this.boundingSphere = new Jt.Sphere()), + this.boundingSphere.setFromPoints(this.vertices); + }, + merge: function (t, e, n) { + if (t instanceof Jt.Geometry == !1) + Jt.error( + 'THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.', + t, + ); + else { + var r, + i = this.vertices.length, + o = this.vertices, + a = t.vertices, + s = this.faces, + l = t.faces, + u = this.faceVertexUvs[0], + c = t.faceVertexUvs[0]; + void 0 === n && (n = 0), + void 0 !== e && (r = new Jt.Matrix3().getNormalMatrix(e)); + for (var A = 0, h = a.length; A < h; A++) { + var p = a[A].clone(); + void 0 !== e && p.applyMatrix4(e), o.push(p); + } + for (A = 0, h = l.length; A < h; A++) { + var d, + f, + g = l[A], + m = g.vertexNormals, + v = g.vertexColors, + b = new Jt.Face3(g.a + i, g.b + i, g.c + i); + b.normal.copy(g.normal), + void 0 !== r && b.normal.applyMatrix3(r).normalize(); + for (var y = 0, w = m.length; y < w; y++) + (d = m[y].clone()), + void 0 !== r && d.applyMatrix3(r).normalize(), + b.vertexNormals.push(d); + b.color.copy(g.color); + for (y = 0, w = v.length; y < w; y++) + (f = v[y]), b.vertexColors.push(f.clone()); + (b.materialIndex = g.materialIndex + n), s.push(b); + } + for (A = 0, h = c.length; A < h; A++) { + var E = c[A], + B = []; + if (void 0 !== E) { + for (y = 0, w = E.length; y < w; y++) B.push(E[y].clone()); + u.push(B); + } + } + } + }, + mergeMesh: function (t) { + t instanceof Jt.Mesh == !1 + ? Jt.error( + 'THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.', + t, + ) + : (t.matrixAutoUpdate && t.updateMatrix(), + this.merge(t.geometry, t.matrix)); + }, + mergeVertices: function () { + for ( + var t, + e, + n, + r, + i = {}, + o = [], + a = [], + s = Math.pow(10, 4), + l = 0, + u = this.vertices.length; + l < u; + l++ + ) + (t = this.vertices[l]), + void 0 === + i[ + (t = + Math.round(t.x * s) + + '_' + + Math.round(t.y * s) + + '_' + + Math.round(t.z * s)) + ] + ? ((i[t] = l), o.push(this.vertices[l]), (a[l] = o.length - 1)) + : (a[l] = a[i[t]]); + var c = []; + for (l = 0, u = this.faces.length; l < u; l++) { + ((e = this.faces[l]).a = a[e.a]), (e.b = a[e.b]), (e.c = a[e.c]); + for (var A = [e.a, e.b, e.c], h = 0; h < 3; h++) + if (A[h] == A[(h + 1) % 3]) { + c.push(l); + break; + } + } + for (l = c.length - 1; 0 <= l; l--) { + var p = c[l]; + for ( + this.faces.splice(p, 1), n = 0, r = this.faceVertexUvs.length; + n < r; + n++ + ) + this.faceVertexUvs[n].splice(p, 1); + } + var d = this.vertices.length - o.length; + return (this.vertices = o), d; + }, + toJSON: function () { + var t = { + metadata: { + version: 4, + type: 'BufferGeometry', + generator: 'BufferGeometryExporter', + }, + uuid: this.uuid, + type: this.type, + }; + if ( + ('' !== this.name && (t.name = this.name), void 0 !== this.parameters) + ) { + var e, + n = this.parameters; + for (e in n) void 0 !== n[e] && (t[e] = n[e]); + } else { + for (var r = [], i = 0; i < this.vertices.length; i++) { + var o = this.vertices[i]; + r.push(o.x, o.y, o.z); + } + for ( + var a = [], s = [], l = {}, u = [], c = {}, A = [], h = {}, i = 0; + i < this.faces.length; + i++ + ) { + var p, + d = this.faces[i], + f = void 0 !== this.faceVertexUvs[0][i], + g = 0 < d.normal.length(), + m = 0 < d.vertexNormals.length, + v = 1 !== d.color.r || 1 !== d.color.g || 1 !== d.color.b, + b = 0 < d.vertexColors.length; + (p = y(0, 3, f)), + (p = y(p, 4, g)), + (p = y(p, 5, m)), + (p = y(p, 6, v)), + (p = y(p, 7, b)), + a.push(p), + a.push(d.a, d.b, d.c), + f && + ((p = this.faceVertexUvs[0][i]), a.push(B(p[0]), B(p[1]), B(p[2]))), + g && a.push(w(d.normal)), + m && ((f = d.vertexNormals), a.push(w(f[0]), w(f[1]), w(f[2]))), + v && a.push(E(d.color)), + b && ((p = d.vertexColors), a.push(E(p[0]), E(p[1]), E(p[2]))); + } + (t.data = {}), + (t.data.vertices = r), + (t.data.normals = s), + 0 < u.length && (t.data.colors = u), + 0 < A.length && (t.data.uvs = [A]), + (t.data.faces = a); + } + return t; + function y(t, e, n) { + return n ? t | (1 << e) : t & ~(1 << e); + } + function w(t) { + var e = t.x.toString() + t.y.toString() + t.z.toString(); + return ( + void 0 === l[e] && ((l[e] = s.length / 3), s.push(t.x, t.y, t.z)), l[e] + ); + } + function E(t) { + var e = t.r.toString() + t.g.toString() + t.b.toString(); + return void 0 === c[e] && ((c[e] = u.length), u.push(t.getHex())), c[e]; + } + function B(t) { + var e = t.x.toString() + t.y.toString(); + return void 0 === h[e] && ((h[e] = A.length / 2), A.push(t.x, t.y)), h[e]; + } + }, + clone: function () { + for ( + var t = new Jt.Geometry(), e = this.vertices, n = 0, r = e.length; + n < r; + n++ + ) + t.vertices.push(e[n].clone()); + for (var i = this.faces, n = 0, r = i.length; n < r; n++) + t.faces.push(i[n].clone()); + for (n = 0, r = this.faceVertexUvs.length; n < r; n++) { + var o = this.faceVertexUvs[n]; + void 0 === t.faceVertexUvs[n] && (t.faceVertexUvs[n] = []); + for (var a = 0, s = o.length; a < s; a++) { + for (var l = o[a], u = [], c = 0, A = l.length; c < A; c++) { + var h = l[c]; + u.push(h.clone()); + } + t.faceVertexUvs[n].push(u); + } + } + return t; + }, + dispose: function () { + this.dispatchEvent({ type: 'dispose' }); + }, + }), + Jt.EventDispatcher.prototype.apply(Jt.Geometry.prototype), + (Jt.GeometryIdCount = 0), + (Jt.Camera = function () { + Jt.Object3D.call(this), + (this.type = 'Camera'), + (this.matrixWorldInverse = new Jt.Matrix4()), + (this.projectionMatrix = new Jt.Matrix4()); + }), + (Jt.Camera.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.Camera.prototype.constructor = Jt.Camera), + (Jt.Camera.prototype.getWorldDirection = + ((hn = new Jt.Quaternion()), + function (t) { + t = t || new Jt.Vector3(); + return this.getWorldQuaternion(hn), t.set(0, 0, -1).applyQuaternion(hn); + })), + (Jt.Camera.prototype.lookAt = + ((pn = new Jt.Matrix4()), + function (t) { + pn.lookAt(this.position, t, this.up), + this.quaternion.setFromRotationMatrix(pn); + })), + (Jt.Camera.prototype.clone = function (t) { + return ( + void 0 === t && (t = new Jt.Camera()), + Jt.Object3D.prototype.clone.call(this, t), + t.matrixWorldInverse.copy(this.matrixWorldInverse), + t.projectionMatrix.copy(this.projectionMatrix), + t + ); + }), + (Jt.CubeCamera = function (t, e, n) { + Jt.Object3D.call(this), (this.type = 'CubeCamera'); + var i = new Jt.PerspectiveCamera(90, 1, t, e), + o = + (i.up.set(0, -1, 0), + i.lookAt(new Jt.Vector3(1, 0, 0)), + this.add(i), + new Jt.PerspectiveCamera(90, 1, t, e)), + a = + (o.up.set(0, -1, 0), + o.lookAt(new Jt.Vector3(-1, 0, 0)), + this.add(o), + new Jt.PerspectiveCamera(90, 1, t, e)), + s = + (a.up.set(0, 0, 1), + a.lookAt(new Jt.Vector3(0, 1, 0)), + this.add(a), + new Jt.PerspectiveCamera(90, 1, t, e)), + l = + (s.up.set(0, 0, -1), + s.lookAt(new Jt.Vector3(0, -1, 0)), + this.add(s), + new Jt.PerspectiveCamera(90, 1, t, e)), + u = + (l.up.set(0, -1, 0), + l.lookAt(new Jt.Vector3(0, 0, 1)), + this.add(l), + new Jt.PerspectiveCamera(90, 1, t, e)); + u.up.set(0, -1, 0), + u.lookAt(new Jt.Vector3(0, 0, -1)), + this.add(u), + (this.renderTarget = new Jt.WebGLRenderTargetCube(n, n, { + format: Jt.RGBFormat, + magFilter: Jt.LinearFilter, + minFilter: Jt.LinearFilter, + })), + (this.updateCubeMap = function (t, e) { + var n = this.renderTarget, + r = n.generateMipmaps; + (n.generateMipmaps = !1), + (n.activeCubeFace = 0), + t.render(e, i, n), + (n.activeCubeFace = 1), + t.render(e, o, n), + (n.activeCubeFace = 2), + t.render(e, a, n), + (n.activeCubeFace = 3), + t.render(e, s, n), + (n.activeCubeFace = 4), + t.render(e, l, n), + (n.generateMipmaps = r), + (n.activeCubeFace = 5), + t.render(e, u, n); + }); + }), + (Jt.CubeCamera.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.CubeCamera.prototype.constructor = Jt.CubeCamera), + (Jt.OrthographicCamera = function (t, e, n, r, i, o) { + Jt.Camera.call(this), + (this.type = 'OrthographicCamera'), + (this.zoom = 1), + (this.left = t), + (this.right = e), + (this.top = n), + (this.bottom = r), + (this.near = void 0 !== i ? i : 0.1), + (this.far = void 0 !== o ? o : 2e3), + this.updateProjectionMatrix(); + }), + (Jt.OrthographicCamera.prototype = Object.create(Jt.Camera.prototype)), + (Jt.OrthographicCamera.prototype.constructor = Jt.OrthographicCamera), + (Jt.OrthographicCamera.prototype.updateProjectionMatrix = function () { + var t = (this.right - this.left) / (2 * this.zoom), + e = (this.top - this.bottom) / (2 * this.zoom), + n = (this.right + this.left) / 2, + r = (this.top + this.bottom) / 2; + this.projectionMatrix.makeOrthographic( + n - t, + n + t, + r + e, + r - e, + this.near, + this.far, + ); + }), + (Jt.OrthographicCamera.prototype.clone = function () { + var t = new Jt.OrthographicCamera(); + return ( + Jt.Camera.prototype.clone.call(this, t), + (t.zoom = this.zoom), + (t.left = this.left), + (t.right = this.right), + (t.top = this.top), + (t.bottom = this.bottom), + (t.near = this.near), + (t.far = this.far), + t.projectionMatrix.copy(this.projectionMatrix), + t + ); + }), + (Jt.PerspectiveCamera = function (t, e, n, r) { + Jt.Camera.call(this), + (this.type = 'PerspectiveCamera'), + (this.zoom = 1), + (this.fov = void 0 !== t ? t : 50), + (this.aspect = void 0 !== e ? e : 1), + (this.near = void 0 !== n ? n : 0.1), + (this.far = void 0 !== r ? r : 2e3), + this.updateProjectionMatrix(); + }), + (Jt.PerspectiveCamera.prototype = Object.create(Jt.Camera.prototype)), + (Jt.PerspectiveCamera.prototype.constructor = Jt.PerspectiveCamera), + (Jt.PerspectiveCamera.prototype.setLens = function (t, e) { + void 0 === e && (e = 24), + (this.fov = 2 * Jt.Math.radToDeg(Math.atan(e / (2 * t)))), + this.updateProjectionMatrix(); + }), + (Jt.PerspectiveCamera.prototype.setViewOffset = function (t, e, n, r, i, o) { + (this.fullWidth = t), + (this.fullHeight = e), + (this.x = n), + (this.y = r), + (this.width = i), + (this.height = o), + this.updateProjectionMatrix(); + }), + (Jt.PerspectiveCamera.prototype.updateProjectionMatrix = function () { + var t, + e, + n, + r, + i = Jt.Math.radToDeg( + 2 * Math.atan(Math.tan(0.5 * Jt.Math.degToRad(this.fov)) / this.zoom), + ); + this.fullWidth + ? ((e = + (n = this.fullWidth / this.fullHeight) * + (r = -(t = Math.tan(Jt.Math.degToRad(0.5 * i)) * this.near))), + (n = Math.abs(n * t - e)), + (r = Math.abs(t - r)), + this.projectionMatrix.makeFrustum( + e + (this.x * n) / this.fullWidth, + e + ((this.x + this.width) * n) / this.fullWidth, + t - ((this.y + this.height) * r) / this.fullHeight, + t - (this.y * r) / this.fullHeight, + this.near, + this.far, + )) + : this.projectionMatrix.makePerspective( + i, + this.aspect, + this.near, + this.far, + ); + }), + (Jt.PerspectiveCamera.prototype.clone = function () { + var t = new Jt.PerspectiveCamera(); + return ( + Jt.Camera.prototype.clone.call(this, t), + (t.zoom = this.zoom), + (t.fov = this.fov), + (t.aspect = this.aspect), + (t.near = this.near), + (t.far = this.far), + t.projectionMatrix.copy(this.projectionMatrix), + t + ); + }), + (Jt.Light = function (t) { + Jt.Object3D.call(this), (this.type = 'Light'), (this.color = new Jt.Color(t)); + }), + (Jt.Light.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.Light.prototype.constructor = Jt.Light), + (Jt.Light.prototype.clone = function (t) { + return ( + void 0 === t && (t = new Jt.Light()), + Jt.Object3D.prototype.clone.call(this, t), + t.color.copy(this.color), + t + ); + }), + (Jt.AmbientLight = function (t) { + Jt.Light.call(this, t), (this.type = 'AmbientLight'); + }), + (Jt.AmbientLight.prototype = Object.create(Jt.Light.prototype)), + (Jt.AmbientLight.prototype.constructor = Jt.AmbientLight), + (Jt.AmbientLight.prototype.clone = function () { + var t = new Jt.AmbientLight(); + return Jt.Light.prototype.clone.call(this, t), t; + }), + (Jt.AreaLight = function (t, e) { + Jt.Light.call(this, t), + (this.type = 'AreaLight'), + (this.normal = new Jt.Vector3(0, -1, 0)), + (this.right = new Jt.Vector3(1, 0, 0)), + (this.intensity = void 0 !== e ? e : 1), + (this.width = 1), + (this.height = 1), + (this.constantAttenuation = 1.5), + (this.linearAttenuation = 0.5), + (this.quadraticAttenuation = 0.1); + }), + (Jt.AreaLight.prototype = Object.create(Jt.Light.prototype)), + (Jt.AreaLight.prototype.constructor = Jt.AreaLight), + (Jt.DirectionalLight = function (t, e) { + Jt.Light.call(this, t), + (this.type = 'DirectionalLight'), + this.position.set(0, 1, 0), + (this.target = new Jt.Object3D()), + (this.intensity = void 0 !== e ? e : 1), + (this.castShadow = !1), + (this.onlyShadow = !1), + (this.shadowCameraNear = 50), + (this.shadowCameraFar = 5e3), + (this.shadowCameraLeft = -500), + (this.shadowCameraRight = 500), + (this.shadowCameraTop = 500), + (this.shadowCameraBottom = -500), + (this.shadowCameraVisible = !1), + (this.shadowBias = 0), + (this.shadowDarkness = 0.5), + (this.shadowMapWidth = 512), + (this.shadowMapHeight = 512), + (this.shadowCascade = !1), + (this.shadowCascadeOffset = new Jt.Vector3(0, 0, -1e3)), + (this.shadowCascadeCount = 2), + (this.shadowCascadeBias = [0, 0, 0]), + (this.shadowCascadeWidth = [512, 512, 512]), + (this.shadowCascadeHeight = [512, 512, 512]), + (this.shadowCascadeNearZ = [-1, 0.99, 0.998]), + (this.shadowCascadeFarZ = [0.99, 0.998, 1]), + (this.shadowCascadeArray = []), + (this.shadowMap = null), + (this.shadowMapSize = null), + (this.shadowCamera = null), + (this.shadowMatrix = null); + }), + (Jt.DirectionalLight.prototype = Object.create(Jt.Light.prototype)), + (Jt.DirectionalLight.prototype.constructor = Jt.DirectionalLight), + (Jt.DirectionalLight.prototype.clone = function () { + var t = new Jt.DirectionalLight(); + return ( + Jt.Light.prototype.clone.call(this, t), + (t.target = this.target.clone()), + (t.intensity = this.intensity), + (t.castShadow = this.castShadow), + (t.onlyShadow = this.onlyShadow), + (t.shadowCameraNear = this.shadowCameraNear), + (t.shadowCameraFar = this.shadowCameraFar), + (t.shadowCameraLeft = this.shadowCameraLeft), + (t.shadowCameraRight = this.shadowCameraRight), + (t.shadowCameraTop = this.shadowCameraTop), + (t.shadowCameraBottom = this.shadowCameraBottom), + (t.shadowCameraVisible = this.shadowCameraVisible), + (t.shadowBias = this.shadowBias), + (t.shadowDarkness = this.shadowDarkness), + (t.shadowMapWidth = this.shadowMapWidth), + (t.shadowMapHeight = this.shadowMapHeight), + (t.shadowCascade = this.shadowCascade), + t.shadowCascadeOffset.copy(this.shadowCascadeOffset), + (t.shadowCascadeCount = this.shadowCascadeCount), + (t.shadowCascadeBias = this.shadowCascadeBias.slice(0)), + (t.shadowCascadeWidth = this.shadowCascadeWidth.slice(0)), + (t.shadowCascadeHeight = this.shadowCascadeHeight.slice(0)), + (t.shadowCascadeNearZ = this.shadowCascadeNearZ.slice(0)), + (t.shadowCascadeFarZ = this.shadowCascadeFarZ.slice(0)), + t + ); + }), + (Jt.HemisphereLight = function (t, e, n) { + Jt.Light.call(this, t), + (this.type = 'HemisphereLight'), + this.position.set(0, 100, 0), + (this.groundColor = new Jt.Color(e)), + (this.intensity = void 0 !== n ? n : 1); + }), + (Jt.HemisphereLight.prototype = Object.create(Jt.Light.prototype)), + (Jt.HemisphereLight.prototype.constructor = Jt.HemisphereLight), + (Jt.HemisphereLight.prototype.clone = function () { + var t = new Jt.HemisphereLight(); + return ( + Jt.Light.prototype.clone.call(this, t), + t.groundColor.copy(this.groundColor), + (t.intensity = this.intensity), + t + ); + }), + (Jt.PointLight = function (t, e, n, r) { + Jt.Light.call(this, t), + (this.type = 'PointLight'), + (this.intensity = void 0 !== e ? e : 1), + (this.distance = void 0 !== n ? n : 0), + (this.decay = void 0 !== r ? r : 1); + }), + (Jt.PointLight.prototype = Object.create(Jt.Light.prototype)), + (Jt.PointLight.prototype.constructor = Jt.PointLight), + (Jt.PointLight.prototype.clone = function () { + var t = new Jt.PointLight(); + return ( + Jt.Light.prototype.clone.call(this, t), + (t.intensity = this.intensity), + (t.distance = this.distance), + (t.decay = this.decay), + t + ); + }), + (Jt.SpotLight = function (t, e, n, r, i, o) { + Jt.Light.call(this, t), + (this.type = 'SpotLight'), + this.position.set(0, 1, 0), + (this.target = new Jt.Object3D()), + (this.intensity = void 0 !== e ? e : 1), + (this.distance = void 0 !== n ? n : 0), + (this.angle = void 0 !== r ? r : Math.PI / 3), + (this.exponent = void 0 !== i ? i : 10), + (this.decay = void 0 !== o ? o : 1), + (this.castShadow = !1), + (this.onlyShadow = !1), + (this.shadowCameraNear = 50), + (this.shadowCameraFar = 5e3), + (this.shadowCameraFov = 50), + (this.shadowCameraVisible = !1), + (this.shadowBias = 0), + (this.shadowDarkness = 0.5), + (this.shadowMapWidth = 512), + (this.shadowMapHeight = 512), + (this.shadowMap = null), + (this.shadowMapSize = null), + (this.shadowCamera = null), + (this.shadowMatrix = null); + }), + (Jt.SpotLight.prototype = Object.create(Jt.Light.prototype)), + (Jt.SpotLight.prototype.constructor = Jt.SpotLight), + (Jt.SpotLight.prototype.clone = function () { + var t = new Jt.SpotLight(); + return ( + Jt.Light.prototype.clone.call(this, t), + (t.target = this.target.clone()), + (t.intensity = this.intensity), + (t.distance = this.distance), + (t.angle = this.angle), + (t.exponent = this.exponent), + (t.decay = this.decay), + (t.castShadow = this.castShadow), + (t.onlyShadow = this.onlyShadow), + (t.shadowCameraNear = this.shadowCameraNear), + (t.shadowCameraFar = this.shadowCameraFar), + (t.shadowCameraFov = this.shadowCameraFov), + (t.shadowCameraVisible = this.shadowCameraVisible), + (t.shadowBias = this.shadowBias), + (t.shadowDarkness = this.shadowDarkness), + (t.shadowMapWidth = this.shadowMapWidth), + (t.shadowMapHeight = this.shadowMapHeight), + t + ); + }), + (Jt.Cache = { + files: {}, + add: function (t, e) { + this.files[t] = e; + }, + get: function (t) { + return this.files[t]; + }, + remove: function (t) { + delete this.files[t]; + }, + clear: function () { + this.files = {}; + }, + }), + (Jt.Loader = function (t) { + (this.showStatus = t), + (this.statusDomElement = t ? Jt.Loader.prototype.addStatusElement() : null), + (this.imageLoader = new Jt.ImageLoader()), + (this.onLoadStart = function () {}), + (this.onLoadProgress = function () {}), + (this.onLoadComplete = function () {}); + }), + (Jt.Loader.prototype = { + constructor: Jt.Loader, + crossOrigin: void 0, + addStatusElement: function () { + var t = document.createElement('div'); + return ( + (t.style.position = 'absolute'), + (t.style.right = '0px'), + (t.style.top = '0px'), + (t.style.fontSize = '0.8em'), + (t.style.textAlign = 'left'), + (t.style.background = 'rgba(0,0,0,0.25)'), + (t.style.color = '#fff'), + (t.style.width = '120px'), + (t.style.padding = '0.5em 0.5em 0.5em 0.5em'), + (t.style.zIndex = 1e3), + (t.innerHTML = 'Loading ...'), + t + ); + }, + updateProgress: function (t) { + var e = 'Loaded '; + t.total + ? (e += ((100 * t.loaded) / t.total).toFixed(0) + '%') + : (e += (t.loaded / 1024).toFixed(2) + ' KB'), + (this.statusDomElement.innerHTML = e); + }, + extractUrlBase: function (t) { + t = t.split('/'); + return 1 === t.length ? './' : (t.pop(), t.join('/') + '/'); + }, + initMaterials: function (t, e) { + for (var n = [], r = 0; r < t.length; ++r) + n[r] = this.createMaterial(t[r], e); + return n; + }, + needsTangents: function (t) { + for (var e = 0, n = t.length; e < n; e++) + if (t[e] instanceof Jt.ShaderMaterial) return !0; + return !1; + }, + createMaterial: function (t, c) { + var A = this; + function h(t) { + t = Math.log(t) / Math.LN2; + return Math.pow(2, Math.round(t)); + } + function e(t, e, n, r, i, o, a) { + var s, + l = c + n, + u = Jt.Loader.Handlers.get(l); + null !== u + ? (s = u.load(l)) + : ((s = new Jt.Texture()), + ((u = A.imageLoader).crossOrigin = A.crossOrigin), + u.load(l, function (t) { + var e, n, r; + !1 === Jt.Math.isPowerOfTwo(t.width) || + !1 === Jt.Math.isPowerOfTwo(t.height) + ? ((e = h(t.width)), + (n = h(t.height)), + ((r = document.createElement('canvas')).width = e), + (r.height = n), + r.getContext('2d').drawImage(t, 0, 0, e, n), + (s.image = r)) + : (s.image = t), + (s.needsUpdate = !0); + })), + (s.sourceFile = n), + r && + (s.repeat.set(r[0], r[1]), + 1 !== r[0] && (s.wrapS = Jt.RepeatWrapping), + 1 !== r[1] && (s.wrapT = Jt.RepeatWrapping)), + i && s.offset.set(i[0], i[1]), + o && + (void 0 !== + (u = { + repeat: Jt.RepeatWrapping, + mirror: Jt.MirroredRepeatWrapping, + })[o[0]] && (s.wrapS = u[o[0]]), + void 0 !== u[o[1]] && (s.wrapT = u[o[1]])), + a && (s.anisotropy = a), + (t[e] = s); + } + function n(t) { + return ((255 * t[0]) << 16) + ((255 * t[1]) << 8) + 255 * t[2]; + } + var r = 'MeshLambertMaterial', + i = { + color: 15658734, + opacity: 1, + map: null, + lightMap: null, + normalMap: null, + bumpMap: null, + wireframe: !1, + }, + o = + (t.shading && + ('phong' === (o = t.shading.toLowerCase()) + ? (r = 'MeshPhongMaterial') + : 'basic' === o && (r = 'MeshBasicMaterial')), + void 0 !== t.blending && + void 0 !== Jt[t.blending] && + (i.blending = Jt[t.blending]), + void 0 !== t.transparent && (i.transparent = t.transparent), + void 0 !== t.opacity && t.opacity < 1 && (i.transparent = !0), + void 0 !== t.depthTest && (i.depthTest = t.depthTest), + void 0 !== t.depthWrite && (i.depthWrite = t.depthWrite), + void 0 !== t.visible && (i.visible = t.visible), + void 0 !== t.flipSided && (i.side = Jt.BackSide), + void 0 !== t.doubleSided && (i.side = Jt.DoubleSide), + void 0 !== t.wireframe && (i.wireframe = t.wireframe), + void 0 !== t.vertexColors && + ('face' === t.vertexColors + ? (i.vertexColors = Jt.FaceColors) + : t.vertexColors && (i.vertexColors = Jt.VertexColors)), + t.colorDiffuse + ? (i.color = n(t.colorDiffuse)) + : t.DbgColor && (i.color = t.DbgColor), + t.colorSpecular && (i.specular = n(t.colorSpecular)), + t.colorEmissive && (i.emissive = n(t.colorEmissive)), + void 0 !== t.transparency && + (console.warn( + 'THREE.Loader: transparency has been renamed to opacity', + ), + (t.opacity = t.transparency)), + void 0 !== t.opacity && (i.opacity = t.opacity), + t.specularCoef && (i.shininess = t.specularCoef), + t.mapDiffuse && + c && + e( + i, + 'map', + t.mapDiffuse, + t.mapDiffuseRepeat, + t.mapDiffuseOffset, + t.mapDiffuseWrap, + t.mapDiffuseAnisotropy, + ), + t.mapLight && + c && + e( + i, + 'lightMap', + t.mapLight, + t.mapLightRepeat, + t.mapLightOffset, + t.mapLightWrap, + t.mapLightAnisotropy, + ), + t.mapBump && + c && + e( + i, + 'bumpMap', + t.mapBump, + t.mapBumpRepeat, + t.mapBumpOffset, + t.mapBumpWrap, + t.mapBumpAnisotropy, + ), + t.mapNormal && + c && + e( + i, + 'normalMap', + t.mapNormal, + t.mapNormalRepeat, + t.mapNormalOffset, + t.mapNormalWrap, + t.mapNormalAnisotropy, + ), + t.mapSpecular && + c && + e( + i, + 'specularMap', + t.mapSpecular, + t.mapSpecularRepeat, + t.mapSpecularOffset, + t.mapSpecularWrap, + t.mapSpecularAnisotropy, + ), + t.mapAlpha && + c && + e( + i, + 'alphaMap', + t.mapAlpha, + t.mapAlphaRepeat, + t.mapAlphaOffset, + t.mapAlphaWrap, + t.mapAlphaAnisotropy, + ), + t.mapBumpScale && (i.bumpScale = t.mapBumpScale), + t.mapNormalFactor && + (i.normalScale = new Jt.Vector2( + t.mapNormalFactor, + t.mapNormalFactor, + )), + new Jt[r](i)); + return void 0 !== t.DbgName && (o.name = t.DbgName), o; + }, + }), + (Jt.Loader.Handlers = { + handlers: [], + add: function (t, e) { + this.handlers.push(t, e); + }, + get: function (t) { + for (var e = 0, n = this.handlers.length; e < n; e += 2) { + var r = this.handlers[e], + i = this.handlers[e + 1]; + if (r.test(t)) return i; + } + return null; + }, + }), + (Jt.XHRLoader = function (t) { + this.manager = void 0 !== t ? t : Jt.DefaultLoadingManager; + }), + (Jt.XHRLoader.prototype = { + constructor: Jt.XHRLoader, + load: function (e, n, r, i) { + var o = this, + t = Jt.Cache.get(e); + void 0 !== t + ? n && n(t) + : ((t = new XMLHttpRequest()).open('GET', e, !0), + t.addEventListener( + 'load', + function (t) { + Jt.Cache.add(e, this.response), + n && n(this.response), + o.manager.itemEnd(e); + }, + !1, + ), + void 0 !== r && + t.addEventListener( + 'progress', + function (t) { + r(t); + }, + !1, + ), + void 0 !== i && + t.addEventListener( + 'error', + function (t) { + i(t); + }, + !1, + ), + void 0 !== this.crossOrigin && (t.crossOrigin = this.crossOrigin), + void 0 !== this.responseType && (t.responseType = this.responseType), + t.send(null), + o.manager.itemStart(e)); + }, + setResponseType: function (t) { + this.responseType = t; + }, + setCrossOrigin: function (t) { + this.crossOrigin = t; + }, + }), + (Jt.ImageLoader = function (t) { + this.manager = void 0 !== t ? t : Jt.DefaultLoadingManager; + }), + (Jt.ImageLoader.prototype = { + constructor: Jt.ImageLoader, + load: function (e, n, r, i) { + var o = this, + t = Jt.Cache.get(e); + { + if (void 0 === t) + return ( + (t = document.createElement('img')).addEventListener( + 'load', + function (t) { + Jt.Cache.add(e, this), n && n(this), o.manager.itemEnd(e); + }, + !1, + ), + void 0 !== r && + t.addEventListener( + 'progress', + function (t) { + r(t); + }, + !1, + ), + void 0 !== i && + t.addEventListener( + 'error', + function (t) { + i(t); + }, + !1, + ), + void 0 !== this.crossOrigin && (t.crossOrigin = this.crossOrigin), + (t.src = e), + o.manager.itemStart(e), + t + ); + n(t); + } + }, + setCrossOrigin: function (t) { + this.crossOrigin = t; + }, + }), + (Jt.JSONLoader = function (t) { + Jt.Loader.call(this, t), (this.withCredentials = !1); + }), + (Jt.JSONLoader.prototype = Object.create(Jt.Loader.prototype)), + (Jt.JSONLoader.prototype.constructor = Jt.JSONLoader), + (Jt.JSONLoader.prototype.load = function (t, e, n) { + (n = n && 'string' == typeof n ? n : this.extractUrlBase(t)), + this.onLoadStart(), + this.loadAjaxJSON(this, t, e, n); + }), + (Jt.JSONLoader.prototype.loadAjaxJSON = function (n, r, i, o, a) { + var s = new XMLHttpRequest(), + l = 0; + (s.onreadystatechange = function () { + if (s.readyState === s.DONE) + if (200 === s.status || 0 === s.status) { + if (s.responseText) { + var t = JSON.parse(s.responseText), + e = t.metadata; + if (void 0 !== e) { + if ('object' === e.type) + return void Jt.error( + 'THREE.JSONLoader: ' + + r + + ' should be loaded with THREE.ObjectLoader instead.', + ); + if ('scene' === e.type) + return void Jt.error( + 'THREE.JSONLoader: ' + + r + + ' seems to be a Scene. Use THREE.SceneLoader instead.', + ); + } + e = n.parse(t, o); + i(e.geometry, e.materials); + } else + Jt.error( + 'THREE.JSONLoader: ' + + r + + ' seems to be unreachable or the file is empty.', + ); + n.onLoadComplete(); + } else + Jt.error( + "THREE.JSONLoader: Couldn't load " + r + ' (' + s.status + ')', + ); + else + s.readyState === s.LOADING + ? a && + (0 === l && (l = s.getResponseHeader('Content-Length')), + a({ total: l, loaded: s.responseText.length })) + : s.readyState === s.HEADERS_RECEIVED && + void 0 !== a && + (l = s.getResponseHeader('Content-Length')); + }), + s.open('GET', r, !0), + (s.withCredentials = this.withCredentials), + s.send(null); + }), + (Jt.JSONLoader.prototype.parse = function (t, U) { + var e, + N, + P, + n, + r, + i, + o, + L, + Y, + a, + O, + s, + l, + u, + c, + A, + h, + p, + d, + f, + g, + G, + z, + H, + j, + V, + q, + m, + v, + b, + y, + w, + E, + B, + C, + x, + I, + M = new Jt.Geometry(), + D = void 0 !== t.scale ? 1 / t.scale : 1, + W = D, + S = t.faces, + k = t.vertices, + F = t.normals, + Q = t.colors, + _ = 0; + if (void 0 !== t.uvs) { + for (s = 0; s < t.uvs.length; s++) t.uvs[s].length && _++; + for (s = 0; s < _; s++) M.faceVertexUvs[s] = []; + } + for (c = 0, A = k.length; c < A; ) + ((m = new Jt.Vector3()).x = k[c++] * W), + (m.y = k[c++] * W), + (m.z = k[c++] * W), + M.vertices.push(m); + for (c = 0, A = S.length; c < A; ) + if ( + ((g = S[c++]), + (G = g & 2), + (z = g & 8), + (H = g & 16), + (j = g & 32), + (V = g & 64), + (q = g & 128), + g & 1) + ) { + if ( + (((b = new Jt.Face3()).a = S[c]), + (b.b = S[c + 1]), + (b.c = S[c + 3]), + ((y = new Jt.Face3()).a = S[c + 1]), + (y.b = S[c + 2]), + (y.c = S[c + 3]), + (c += 4), + G && ((f = S[c++]), (b.materialIndex = f), (y.materialIndex = f)), + (u = M.faces.length), + z) + ) + for (s = 0; s < _; s++) + for ( + B = t.uvs[s], + M.faceVertexUvs[s][u] = [], + M.faceVertexUvs[s][u + 1] = [], + l = 0; + l < 4; + l++ + ) + (d = S[c++]), + (x = B[2 * d]), + (I = B[2 * d + 1]), + (C = new Jt.Vector2(x, I)), + 2 !== l && M.faceVertexUvs[s][u].push(C), + 0 !== l && M.faceVertexUvs[s][u + 1].push(C); + if ( + (H && + ((p = 3 * S[c++]), + b.normal.set(F[p++], F[p++], F[p]), + y.normal.copy(b.normal)), + j) + ) + for (s = 0; s < 4; s++) + (p = 3 * S[c++]), + (E = new Jt.Vector3(F[p++], F[p++], F[p])), + 2 !== s && b.vertexNormals.push(E), + 0 !== s && y.vertexNormals.push(E); + if ( + (V && ((h = S[c++]), (w = Q[h]), b.color.setHex(w), y.color.setHex(w)), + q) + ) + for (s = 0; s < 4; s++) + (h = S[c++]), + (w = Q[h]), + 2 !== s && b.vertexColors.push(new Jt.Color(w)), + 0 !== s && y.vertexColors.push(new Jt.Color(w)); + M.faces.push(b), M.faces.push(y); + } else { + if ( + (((v = new Jt.Face3()).a = S[c++]), + (v.b = S[c++]), + (v.c = S[c++]), + G && ((f = S[c++]), (v.materialIndex = f)), + (u = M.faces.length), + z) + ) + for (s = 0; s < _; s++) + for (B = t.uvs[s], M.faceVertexUvs[s][u] = [], l = 0; l < 3; l++) + (d = S[c++]), + (x = B[2 * d]), + (I = B[2 * d + 1]), + (C = new Jt.Vector2(x, I)), + M.faceVertexUvs[s][u].push(C); + if ((H && ((p = 3 * S[c++]), v.normal.set(F[p++], F[p++], F[p])), j)) + for (s = 0; s < 3; s++) + (p = 3 * S[c++]), + (E = new Jt.Vector3(F[p++], F[p++], F[p])), + v.vertexNormals.push(E); + if ((V && ((h = S[c++]), v.color.setHex(Q[h])), q)) + for (s = 0; s < 3; s++) + (h = S[c++]), v.vertexColors.push(new Jt.Color(Q[h])); + M.faces.push(v); + } + var T = void 0 !== t.influencesPerVertex ? t.influencesPerVertex : 2; + if (t.skinWeights) + for (var R = 0, J = t.skinWeights.length; R < J; R += T) { + var K = t.skinWeights[R], + Z = 1 < T ? t.skinWeights[R + 1] : 0, + X = 2 < T ? t.skinWeights[R + 2] : 0, + $ = 3 < T ? t.skinWeights[R + 3] : 0; + M.skinWeights.push(new Jt.Vector4(K, Z, X, $)); + } + if (t.skinIndices) + for (R = 0, J = t.skinIndices.length; R < J; R += T) { + var tt = t.skinIndices[R], + et = 1 < T ? t.skinIndices[R + 1] : 0, + nt = 2 < T ? t.skinIndices[R + 2] : 0, + rt = 3 < T ? t.skinIndices[R + 3] : 0; + M.skinIndices.push(new Jt.Vector4(tt, et, nt, rt)); + } + (M.bones = t.bones), + M.bones && + 0 < M.bones.length && + (M.skinWeights.length !== M.skinIndices.length || + M.skinIndices.length !== M.vertices.length) && + Jt.warn( + 'THREE.JSONLoader: When skinning, number of vertices (' + + M.vertices.length + + '), skinIndices (' + + M.skinIndices.length + + '), and skinWeights (' + + M.skinWeights.length + + ') should match.', + ), + (M.animation = t.animation), + (M.animations = t.animations); + var it = D; + if (void 0 !== t.morphTargets) + for (r = 0, i = t.morphTargets.length; r < i; r++) + for ( + M.morphTargets[r] = {}, + M.morphTargets[r].name = t.morphTargets[r].name, + M.morphTargets[r].vertices = [], + P = M.morphTargets[r].vertices, + n = t.morphTargets[r].vertices, + e = 0, + N = n.length; + e < N; + e += 3 + ) { + var ot = new Jt.Vector3(); + (ot.x = n[e] * it), + (ot.y = n[e + 1] * it), + (ot.z = n[e + 2] * it), + P.push(ot); + } + if (void 0 !== t.morphColors) + for (r = 0, i = t.morphColors.length; r < i; r++) + for ( + M.morphColors[r] = {}, + M.morphColors[r].name = t.morphColors[r].name, + M.morphColors[r].colors = [], + Y = M.morphColors[r].colors, + a = t.morphColors[r].colors, + o = 0, + L = a.length; + o < L; + o += 3 + ) + (O = new Jt.Color(16755200)).setRGB(a[o], a[o + 1], a[o + 2]), + Y.push(O); + return ( + M.computeFaceNormals(), + M.computeBoundingSphere(), + void 0 === t.materials || 0 === t.materials.length + ? { geometry: M } + : ((D = this.initMaterials(t.materials, U)), + this.needsTangents(D) && M.computeTangents(), + { geometry: M, materials: D }) + ); + }), + (Jt.LoadingManager = function (t, e, n) { + var r = this, + i = 0, + o = 0; + (this.onLoad = t), + (this.onProgress = e), + (this.onError = n), + (this.itemStart = function (t) { + o++; + }), + (this.itemEnd = function (t) { + i++, + void 0 !== r.onProgress && r.onProgress(t, i, o), + i === o && void 0 !== r.onLoad && r.onLoad(); + }); + }), + (Jt.DefaultLoadingManager = new Jt.LoadingManager()), + (Jt.BufferGeometryLoader = function (t) { + this.manager = void 0 !== t ? t : Jt.DefaultLoadingManager; + }), + (Jt.BufferGeometryLoader.prototype = { + constructor: Jt.BufferGeometryLoader, + load: function (t, e, n, r) { + var i = this, + o = new Jt.XHRLoader(i.manager); + o.setCrossOrigin(this.crossOrigin), + o.load( + t, + function (t) { + e(i.parse(JSON.parse(t))); + }, + n, + r, + ); + }, + setCrossOrigin: function (t) { + this.crossOrigin = t; + }, + parse: function (t) { + var e, + n = new Jt.BufferGeometry(), + r = t.data.attributes; + for (e in r) { + var i = r[e], + o = new self[i.type](i.array); + n.addAttribute(e, new Jt.BufferAttribute(o, i.itemSize)); + } + var a = t.data.offsets, + a = + (void 0 !== a && (n.offsets = JSON.parse(JSON.stringify(a))), + t.data.boundingSphere); + return ( + void 0 !== a && + ((t = new Jt.Vector3()), + void 0 !== a.center && t.fromArray(a.center), + (n.boundingSphere = new Jt.Sphere(t, a.radius))), + n + ); + }, + }), + (Jt.MaterialLoader = function (t) { + this.manager = void 0 !== t ? t : Jt.DefaultLoadingManager; + }), + (Jt.MaterialLoader.prototype = { + constructor: Jt.MaterialLoader, + load: function (t, e, n, r) { + var i = this, + o = new Jt.XHRLoader(i.manager); + o.setCrossOrigin(this.crossOrigin), + o.load( + t, + function (t) { + e(i.parse(JSON.parse(t))); + }, + n, + r, + ); + }, + setCrossOrigin: function (t) { + this.crossOrigin = t; + }, + parse: function (t) { + var e = new Jt[t.type](); + if ( + (void 0 !== t.color && e.color.setHex(t.color), + void 0 !== t.emissive && e.emissive.setHex(t.emissive), + void 0 !== t.specular && e.specular.setHex(t.specular), + void 0 !== t.shininess && (e.shininess = t.shininess), + void 0 !== t.uniforms && (e.uniforms = t.uniforms), + void 0 !== t.vertexShader && (e.vertexShader = t.vertexShader), + void 0 !== t.fragmentShader && (e.fragmentShader = t.fragmentShader), + void 0 !== t.vertexColors && (e.vertexColors = t.vertexColors), + void 0 !== t.shading && (e.shading = t.shading), + void 0 !== t.blending && (e.blending = t.blending), + void 0 !== t.side && (e.side = t.side), + void 0 !== t.opacity && (e.opacity = t.opacity), + void 0 !== t.transparent && (e.transparent = t.transparent), + void 0 !== t.wireframe && (e.wireframe = t.wireframe), + void 0 !== t.size && (e.size = t.size), + void 0 !== t.sizeAttenuation && (e.sizeAttenuation = t.sizeAttenuation), + void 0 !== t.materials) + ) + for (var n = 0, r = t.materials.length; n < r; n++) + e.materials.push(this.parse(t.materials[n])); + return e; + }, + }), + (Jt.ObjectLoader = function (t) { + (this.manager = void 0 !== t ? t : Jt.DefaultLoadingManager), + (this.texturePath = ''); + }), + (Jt.ObjectLoader.prototype = { + constructor: Jt.ObjectLoader, + load: function (t, e, n, r) { + '' === this.texturePath && + (this.texturePath = t.substring(0, t.lastIndexOf('/') + 1)); + var i = this, + o = new Jt.XHRLoader(i.manager); + o.setCrossOrigin(this.crossOrigin), + o.load( + t, + function (t) { + i.parse(JSON.parse(t), e); + }, + n, + r, + ); + }, + setTexturePath: function (t) { + this.texturePath = t; + }, + setCrossOrigin: function (t) { + this.crossOrigin = t; + }, + parse: function (t, e) { + var n = this.parseGeometries(t.geometries), + r = this.parseImages(t.images, function () { + void 0 !== e && e(i); + }), + r = this.parseTextures(t.textures, r), + r = this.parseMaterials(t.materials, r), + i = this.parseObject(t.object, n, r); + return ( + (void 0 !== t.images && 0 !== t.images.length) || (void 0 !== e && e(i)), + i + ); + }, + parseGeometries: function (t) { + var e = {}; + if (void 0 !== t) + for ( + var n = new Jt.JSONLoader(), + r = new Jt.BufferGeometryLoader(), + i = 0, + o = t.length; + i < o; + i++ + ) { + var a, + s = t[i]; + switch (s.type) { + case 'PlaneGeometry': + case 'PlaneBufferGeometry': + a = new Jt[s.type]( + s.width, + s.height, + s.widthSegments, + s.heightSegments, + ); + break; + case 'BoxGeometry': + case 'CubeGeometry': + a = new Jt.BoxGeometry( + s.width, + s.height, + s.depth, + s.widthSegments, + s.heightSegments, + s.depthSegments, + ); + break; + case 'CircleGeometry': + a = new Jt.CircleGeometry(s.radius, s.segments); + break; + case 'CylinderGeometry': + a = new Jt.CylinderGeometry( + s.radiusTop, + s.radiusBottom, + s.height, + s.radialSegments, + s.heightSegments, + s.openEnded, + ); + break; + case 'SphereGeometry': + a = new Jt.SphereGeometry( + s.radius, + s.widthSegments, + s.heightSegments, + s.phiStart, + s.phiLength, + s.thetaStart, + s.thetaLength, + ); + break; + case 'IcosahedronGeometry': + a = new Jt.IcosahedronGeometry(s.radius, s.detail); + break; + case 'TorusGeometry': + a = new Jt.TorusGeometry( + s.radius, + s.tube, + s.radialSegments, + s.tubularSegments, + s.arc, + ); + break; + case 'TorusKnotGeometry': + a = new Jt.TorusKnotGeometry( + s.radius, + s.tube, + s.radialSegments, + s.tubularSegments, + s.p, + s.q, + s.heightScale, + ); + break; + case 'BufferGeometry': + a = r.parse(s); + break; + case 'Geometry': + a = n.parse(s.data).geometry; + } + (a.uuid = s.uuid), + void 0 !== s.name && (a.name = s.name), + (e[s.uuid] = a); + } + return e; + }, + parseMaterials: function (t, e) { + var n = {}; + if (void 0 !== t) + for ( + var r = function (t) { + return ( + void 0 === e[t] && + Jt.warn('THREE.ObjectLoader: Undefined texture', t), + e[t] + ); + }, + i = new Jt.MaterialLoader(), + o = 0, + a = t.length; + o < a; + o++ + ) { + var s = t[o], + l = i.parse(s); + (l.uuid = s.uuid), + void 0 !== s.name && (l.name = s.name), + void 0 !== s.map && (l.map = r(s.map)), + void 0 !== s.bumpMap && + ((l.bumpMap = r(s.bumpMap)), + s.bumpScale && + (l.bumpScale = new Jt.Vector2(s.bumpScale, s.bumpScale))), + void 0 !== s.alphaMap && (l.alphaMap = r(s.alphaMap)), + void 0 !== s.envMap && (l.envMap = r(s.envMap)), + void 0 !== s.normalMap && + ((l.normalMap = r(s.normalMap)), + s.normalScale && + (l.normalScale = new Jt.Vector2(s.normalScale, s.normalScale))), + void 0 !== s.lightMap && (l.lightMap = r(s.lightMap)), + void 0 !== s.specularMap && (l.specularMap = r(s.specularMap)), + (n[s.uuid] = l); + } + return n; + }, + parseImages: function (t, e) { + var n = this, + r = {}; + if (void 0 !== t && 0 < t.length) + for ( + var e = new Jt.LoadingManager(e), + i = new Jt.ImageLoader(e), + o = (i.setCrossOrigin(this.crossOrigin), 0), + a = t.length; + o < a; + o++ + ) { + var s = t[o], + l = /^(\/\/)|([a-z]+:(\/\/)?)/i.test(s.url) + ? s.url + : n.texturePath + s.url; + r[s.uuid] = (function (t) { + return ( + n.manager.itemStart(t), + i.load(t, function () { + n.manager.itemEnd(t); + }) + ); + })(l); + } + return r; + }, + parseTextures: function (t, e) { + var n = {}; + if (void 0 !== t) + for (var r = 0, i = t.length; r < i; r++) { + var o = t[r], + a = + (void 0 === o.image && + Jt.warn('THREE.ObjectLoader: No "image" speficied for', o.uuid), + void 0 === e[o.image] && + Jt.warn('THREE.ObjectLoader: Undefined image', o.image), + new Jt.Texture(e[o.image])); + (a.needsUpdate = !0), + (a.uuid = o.uuid), + void 0 !== o.name && (a.name = o.name), + void 0 !== o.repeat && + (a.repeat = new Jt.Vector2(o.repeat[0], o.repeat[1])), + void 0 !== o.minFilter && (a.minFilter = Jt[o.minFilter]), + void 0 !== o.magFilter && (a.magFilter = Jt[o.magFilter]), + void 0 !== o.anisotropy && (a.anisotropy = o.anisotropy), + o.wrap instanceof Array && + ((a.wrapS = Jt[o.wrap[0]]), (a.wrapT = Jt[o.wrap[1]])), + (n[o.uuid] = a); + } + return n; + }, + parseObject: + ((dn = new Jt.Matrix4()), + function (t, e, n) { + function r(t) { + return ( + void 0 === e[t] && + Jt.warn('THREE.ObjectLoader: Undefined geometry', t), + e[t] + ); + } + function i(t) { + return ( + void 0 === n[t] && + Jt.warn('THREE.ObjectLoader: Undefined material', t), + n[t] + ); + } + var o; + switch (t.type) { + case 'Scene': + o = new Jt.Scene(); + break; + case 'PerspectiveCamera': + o = new Jt.PerspectiveCamera(t.fov, t.aspect, t.near, t.far); + break; + case 'OrthographicCamera': + o = new Jt.OrthographicCamera( + t.left, + t.right, + t.top, + t.bottom, + t.near, + t.far, + ); + break; + case 'AmbientLight': + o = new Jt.AmbientLight(t.color); + break; + case 'DirectionalLight': + o = new Jt.DirectionalLight(t.color, t.intensity); + break; + case 'PointLight': + o = new Jt.PointLight(t.color, t.intensity, t.distance, t.decay); + break; + case 'SpotLight': + o = new Jt.SpotLight( + t.color, + t.intensity, + t.distance, + t.angle, + t.exponent, + t.decay, + ); + break; + case 'HemisphereLight': + o = new Jt.HemisphereLight(t.color, t.groundColor, t.intensity); + break; + case 'Mesh': + o = new Jt.Mesh(r(t.geometry), i(t.material)); + break; + case 'Line': + o = new Jt.Line(r(t.geometry), i(t.material), t.mode); + break; + case 'PointCloud': + o = new Jt.PointCloud(r(t.geometry), i(t.material)); + break; + case 'Sprite': + o = new Jt.Sprite(i(t.material)); + break; + case 'Group': + o = new Jt.Group(); + break; + default: + o = new Jt.Object3D(); + } + if ( + ((o.uuid = t.uuid), + void 0 !== t.name && (o.name = t.name), + void 0 !== t.matrix + ? (dn.fromArray(t.matrix), + dn.decompose(o.position, o.quaternion, o.scale)) + : (void 0 !== t.position && o.position.fromArray(t.position), + void 0 !== t.rotation && o.rotation.fromArray(t.rotation), + void 0 !== t.scale && o.scale.fromArray(t.scale)), + void 0 !== t.visible && (o.visible = t.visible), + void 0 !== t.userData && (o.userData = t.userData), + void 0 !== t.children) + ) + for (var a in t.children) o.add(this.parseObject(t.children[a], e, n)); + return o; + }), + }), + (Jt.TextureLoader = function (t) { + this.manager = void 0 !== t ? t : Jt.DefaultLoadingManager; + }), + (Jt.TextureLoader.prototype = { + constructor: Jt.TextureLoader, + load: function (t, e, n, r) { + var i = new Jt.ImageLoader(this.manager); + i.setCrossOrigin(this.crossOrigin), + i.load( + t, + function (t) { + t = new Jt.Texture(t); + (t.needsUpdate = !0), void 0 !== e && e(t); + }, + n, + r, + ); + }, + setCrossOrigin: function (t) { + this.crossOrigin = t; + }, + }), + (Jt.DataTextureLoader = Jt.BinaryTextureLoader = + function () { + this._parser = null; + }), + (Jt.BinaryTextureLoader.prototype = { + constructor: Jt.BinaryTextureLoader, + load: function (t, e, n, r) { + var i = this, + o = new Jt.DataTexture(), + a = new Jt.XHRLoader(); + return ( + a.setResponseType('arraybuffer'), + a.load( + t, + function (t) { + t = i._parser(t); + t && + (void 0 !== t.image + ? (o.image = t.image) + : void 0 !== t.data && + ((o.image.width = t.width), + (o.image.height = t.height), + (o.image.data = t.data)), + (o.wrapS = void 0 !== t.wrapS ? t.wrapS : Jt.ClampToEdgeWrapping), + (o.wrapT = void 0 !== t.wrapT ? t.wrapT : Jt.ClampToEdgeWrapping), + (o.magFilter = + void 0 !== t.magFilter ? t.magFilter : Jt.LinearFilter), + (o.minFilter = + void 0 !== t.minFilter + ? t.minFilter + : Jt.LinearMipMapLinearFilter), + (o.anisotropy = void 0 !== t.anisotropy ? t.anisotropy : 1), + void 0 !== t.format && (o.format = t.format), + void 0 !== t.type && (o.type = t.type), + void 0 !== t.mipmaps && (o.mipmaps = t.mipmaps), + 1 === t.mipmapCount && (o.minFilter = Jt.LinearFilter), + (o.needsUpdate = !0), + e && e(o, t)); + }, + n, + r, + ), + o + ); + }, + }), + (Jt.CompressedTextureLoader = function () { + this._parser = null; + }), + (Jt.CompressedTextureLoader.prototype = { + constructor: Jt.CompressedTextureLoader, + load: function (t, o, e) { + var a = this, + s = [], + l = new Jt.CompressedTexture(), + n = ((l.image = s), new Jt.XHRLoader()); + if ((n.setResponseType('arraybuffer'), t instanceof Array)) + for (var r = 0, i = 0, u = t.length; i < u; ++i) + !(function (e) { + n.load(t[e], function (t) { + t = a._parser(t, !0); + (s[e] = { + width: t.width, + height: t.height, + format: t.format, + mipmaps: t.mipmaps, + }), + 6 === (r += 1) && + (1 == t.mipmapCount && (l.minFilter = Jt.LinearFilter), + (l.format = t.format), + (l.needsUpdate = !0), + o && o(l)); + }); + })(i); + else + n.load(t, function (t) { + var e = a._parser(t, !0); + if (e.isCubemap) + for (var n = e.mipmaps.length / e.mipmapCount, r = 0; r < n; r++) { + s[r] = { mipmaps: [] }; + for (var i = 0; i < e.mipmapCount; i++) + s[r].mipmaps.push(e.mipmaps[r * e.mipmapCount + i]), + (s[r].format = e.format), + (s[r].width = e.width), + (s[r].height = e.height); + } + else + (l.image.width = e.width), + (l.image.height = e.height), + (l.mipmaps = e.mipmaps); + 1 === e.mipmapCount && (l.minFilter = Jt.LinearFilter), + (l.format = e.format), + (l.needsUpdate = !0), + o && o(l); + }); + return l; + }, + }), + (Jt.Material = function () { + Object.defineProperty(this, 'id', { value: Jt.MaterialIdCount++ }), + (this.uuid = Jt.Math.generateUUID()), + (this.name = ''), + (this.type = 'Material'), + (this.side = Jt.FrontSide), + (this.opacity = 1), + (this.transparent = !1), + (this.blending = Jt.NormalBlending), + (this.blendSrc = Jt.SrcAlphaFactor), + (this.blendDst = Jt.OneMinusSrcAlphaFactor), + (this.blendEquation = Jt.AddEquation), + (this.blendSrcAlpha = null), + (this.blendDstAlpha = null), + (this.blendEquationAlpha = null), + (this.depthTest = !0), + (this.depthWrite = !0), + (this.colorWrite = !0), + (this.polygonOffset = !1), + (this.polygonOffsetFactor = 0), + (this.polygonOffsetUnits = 0), + (this.alphaTest = 0), + (this.overdraw = 0), + (this.visible = !0), + (this._needsUpdate = !0); + }), + (Jt.Material.prototype = { + constructor: Jt.Material, + get needsUpdate() { + return this._needsUpdate; + }, + set needsUpdate(t) { + !0 === t && this.update(), (this._needsUpdate = t); + }, + setValues: function (t) { + if (void 0 !== t) + for (var e in t) { + var n, + r = t[e]; + void 0 === r + ? Jt.warn("THREE.Material: '" + e + "' parameter is undefined.") + : e in this && + ((n = this[e]) instanceof Jt.Color + ? n.set(r) + : n instanceof Jt.Vector3 && r instanceof Jt.Vector3 + ? n.copy(r) + : (this[e] = 'overdraw' == e ? Number(r) : r)); + } + }, + toJSON: function () { + var t = { + metadata: { + version: 4.2, + type: 'material', + generator: 'MaterialExporter', + }, + uuid: this.uuid, + type: this.type, + }; + return ( + '' !== this.name && (t.name = this.name), + this instanceof Jt.MeshBasicMaterial + ? ((t.color = this.color.getHex()), + this.vertexColors !== Jt.NoColors && + (t.vertexColors = this.vertexColors), + this.blending !== Jt.NormalBlending && (t.blending = this.blending), + this.side !== Jt.FrontSide && (t.side = this.side)) + : this instanceof Jt.MeshLambertMaterial + ? ((t.color = this.color.getHex()), + (t.emissive = this.emissive.getHex()), + this.vertexColors !== Jt.NoColors && + (t.vertexColors = this.vertexColors), + this.shading !== Jt.SmoothShading && (t.shading = this.shading), + this.blending !== Jt.NormalBlending && (t.blending = this.blending), + this.side !== Jt.FrontSide && (t.side = this.side)) + : this instanceof Jt.MeshPhongMaterial + ? ((t.color = this.color.getHex()), + (t.emissive = this.emissive.getHex()), + (t.specular = this.specular.getHex()), + (t.shininess = this.shininess), + this.vertexColors !== Jt.NoColors && + (t.vertexColors = this.vertexColors), + this.shading !== Jt.SmoothShading && (t.shading = this.shading), + this.blending !== Jt.NormalBlending && + (t.blending = this.blending), + this.side !== Jt.FrontSide && (t.side = this.side)) + : this instanceof Jt.MeshNormalMaterial || + this instanceof Jt.MeshDepthMaterial + ? (this.blending !== Jt.NormalBlending && + (t.blending = this.blending), + this.side !== Jt.FrontSide && (t.side = this.side)) + : this instanceof Jt.PointCloudMaterial + ? ((t.size = this.size), + (t.sizeAttenuation = this.sizeAttenuation), + (t.color = this.color.getHex()), + this.vertexColors !== Jt.NoColors && + (t.vertexColors = this.vertexColors), + this.blending !== Jt.NormalBlending && + (t.blending = this.blending)) + : this instanceof Jt.ShaderMaterial + ? ((t.uniforms = this.uniforms), + (t.vertexShader = this.vertexShader), + (t.fragmentShader = this.fragmentShader)) + : this instanceof Jt.SpriteMaterial && + (t.color = this.color.getHex()), + this.opacity < 1 && (t.opacity = this.opacity), + !1 !== this.transparent && (t.transparent = this.transparent), + !1 !== this.wireframe && (t.wireframe = this.wireframe), + t + ); + }, + clone: function (t) { + return ( + ((t = void 0 === t ? new Jt.Material() : t).name = this.name), + (t.side = this.side), + (t.opacity = this.opacity), + (t.transparent = this.transparent), + (t.blending = this.blending), + (t.blendSrc = this.blendSrc), + (t.blendDst = this.blendDst), + (t.blendEquation = this.blendEquation), + (t.blendSrcAlpha = this.blendSrcAlpha), + (t.blendDstAlpha = this.blendDstAlpha), + (t.blendEquationAlpha = this.blendEquationAlpha), + (t.depthTest = this.depthTest), + (t.depthWrite = this.depthWrite), + (t.polygonOffset = this.polygonOffset), + (t.polygonOffsetFactor = this.polygonOffsetFactor), + (t.polygonOffsetUnits = this.polygonOffsetUnits), + (t.alphaTest = this.alphaTest), + (t.overdraw = this.overdraw), + (t.visible = this.visible), + t + ); + }, + update: function () { + this.dispatchEvent({ type: 'update' }); + }, + dispose: function () { + this.dispatchEvent({ type: 'dispose' }); + }, + }), + Jt.EventDispatcher.prototype.apply(Jt.Material.prototype), + (Jt.MaterialIdCount = 0), + (Jt.LineBasicMaterial = function (t) { + Jt.Material.call(this), + (this.type = 'LineBasicMaterial'), + (this.color = new Jt.Color(16777215)), + (this.linewidth = 1), + (this.linecap = 'round'), + (this.linejoin = 'round'), + (this.vertexColors = Jt.NoColors), + (this.fog = !0), + this.setValues(t); + }), + (Jt.LineBasicMaterial.prototype = Object.create(Jt.Material.prototype)), + (Jt.LineBasicMaterial.prototype.constructor = Jt.LineBasicMaterial), + (Jt.LineBasicMaterial.prototype.clone = function () { + var t = new Jt.LineBasicMaterial(); + return ( + Jt.Material.prototype.clone.call(this, t), + t.color.copy(this.color), + (t.linewidth = this.linewidth), + (t.linecap = this.linecap), + (t.linejoin = this.linejoin), + (t.vertexColors = this.vertexColors), + (t.fog = this.fog), + t + ); + }), + (Jt.LineDashedMaterial = function (t) { + Jt.Material.call(this), + (this.type = 'LineDashedMaterial'), + (this.color = new Jt.Color(16777215)), + (this.linewidth = 1), + (this.scale = 1), + (this.dashSize = 3), + (this.gapSize = 1), + (this.vertexColors = !1), + (this.fog = !0), + this.setValues(t); + }), + (Jt.LineDashedMaterial.prototype = Object.create(Jt.Material.prototype)), + (Jt.LineDashedMaterial.prototype.constructor = Jt.LineDashedMaterial), + (Jt.LineDashedMaterial.prototype.clone = function () { + var t = new Jt.LineDashedMaterial(); + return ( + Jt.Material.prototype.clone.call(this, t), + t.color.copy(this.color), + (t.linewidth = this.linewidth), + (t.scale = this.scale), + (t.dashSize = this.dashSize), + (t.gapSize = this.gapSize), + (t.vertexColors = this.vertexColors), + (t.fog = this.fog), + t + ); + }), + (Jt.MeshBasicMaterial = function (t) { + Jt.Material.call(this), + (this.type = 'MeshBasicMaterial'), + (this.color = new Jt.Color(16777215)), + (this.map = null), + (this.lightMap = null), + (this.specularMap = null), + (this.alphaMap = null), + (this.envMap = null), + (this.combine = Jt.MultiplyOperation), + (this.reflectivity = 1), + (this.refractionRatio = 0.98), + (this.fog = !0), + (this.shading = Jt.SmoothShading), + (this.wireframe = !1), + (this.wireframeLinewidth = 1), + (this.wireframeLinecap = 'round'), + (this.wireframeLinejoin = 'round'), + (this.vertexColors = Jt.NoColors), + (this.skinning = !1), + (this.morphTargets = !1), + this.setValues(t); + }), + (Jt.MeshBasicMaterial.prototype = Object.create(Jt.Material.prototype)), + (Jt.MeshBasicMaterial.prototype.constructor = Jt.MeshBasicMaterial), + (Jt.MeshBasicMaterial.prototype.clone = function () { + var t = new Jt.MeshBasicMaterial(); + return ( + Jt.Material.prototype.clone.call(this, t), + t.color.copy(this.color), + (t.map = this.map), + (t.lightMap = this.lightMap), + (t.specularMap = this.specularMap), + (t.alphaMap = this.alphaMap), + (t.envMap = this.envMap), + (t.combine = this.combine), + (t.reflectivity = this.reflectivity), + (t.refractionRatio = this.refractionRatio), + (t.fog = this.fog), + (t.shading = this.shading), + (t.wireframe = this.wireframe), + (t.wireframeLinewidth = this.wireframeLinewidth), + (t.wireframeLinecap = this.wireframeLinecap), + (t.wireframeLinejoin = this.wireframeLinejoin), + (t.vertexColors = this.vertexColors), + (t.skinning = this.skinning), + (t.morphTargets = this.morphTargets), + t + ); + }), + (Jt.MeshLambertMaterial = function (t) { + Jt.Material.call(this), + (this.type = 'MeshLambertMaterial'), + (this.color = new Jt.Color(16777215)), + (this.emissive = new Jt.Color(0)), + (this.wrapAround = !1), + (this.wrapRGB = new Jt.Vector3(1, 1, 1)), + (this.map = null), + (this.lightMap = null), + (this.specularMap = null), + (this.alphaMap = null), + (this.envMap = null), + (this.combine = Jt.MultiplyOperation), + (this.reflectivity = 1), + (this.refractionRatio = 0.98), + (this.fog = !0), + (this.shading = Jt.SmoothShading), + (this.wireframe = !1), + (this.wireframeLinewidth = 1), + (this.wireframeLinecap = 'round'), + (this.wireframeLinejoin = 'round'), + (this.vertexColors = Jt.NoColors), + (this.skinning = !1), + (this.morphTargets = !1), + (this.morphNormals = !1), + this.setValues(t); + }), + (Jt.MeshLambertMaterial.prototype = Object.create(Jt.Material.prototype)), + (Jt.MeshLambertMaterial.prototype.constructor = Jt.MeshLambertMaterial), + (Jt.MeshLambertMaterial.prototype.clone = function () { + var t = new Jt.MeshLambertMaterial(); + return ( + Jt.Material.prototype.clone.call(this, t), + t.color.copy(this.color), + t.emissive.copy(this.emissive), + (t.wrapAround = this.wrapAround), + t.wrapRGB.copy(this.wrapRGB), + (t.map = this.map), + (t.lightMap = this.lightMap), + (t.specularMap = this.specularMap), + (t.alphaMap = this.alphaMap), + (t.envMap = this.envMap), + (t.combine = this.combine), + (t.reflectivity = this.reflectivity), + (t.refractionRatio = this.refractionRatio), + (t.fog = this.fog), + (t.shading = this.shading), + (t.wireframe = this.wireframe), + (t.wireframeLinewidth = this.wireframeLinewidth), + (t.wireframeLinecap = this.wireframeLinecap), + (t.wireframeLinejoin = this.wireframeLinejoin), + (t.vertexColors = this.vertexColors), + (t.skinning = this.skinning), + (t.morphTargets = this.morphTargets), + (t.morphNormals = this.morphNormals), + t + ); + }), + (Jt.MeshPhongMaterial = function (t) { + Jt.Material.call(this), + (this.type = 'MeshPhongMaterial'), + (this.color = new Jt.Color(16777215)), + (this.emissive = new Jt.Color(0)), + (this.specular = new Jt.Color(1118481)), + (this.shininess = 30), + (this.metal = !1), + (this.wrapAround = !1), + (this.wrapRGB = new Jt.Vector3(1, 1, 1)), + (this.map = null), + (this.lightMap = null), + (this.bumpMap = null), + (this.bumpScale = 1), + (this.normalMap = null), + (this.normalScale = new Jt.Vector2(1, 1)), + (this.specularMap = null), + (this.alphaMap = null), + (this.envMap = null), + (this.combine = Jt.MultiplyOperation), + (this.reflectivity = 1), + (this.refractionRatio = 0.98), + (this.fog = !0), + (this.shading = Jt.SmoothShading), + (this.wireframe = !1), + (this.wireframeLinewidth = 1), + (this.wireframeLinecap = 'round'), + (this.wireframeLinejoin = 'round'), + (this.vertexColors = Jt.NoColors), + (this.skinning = !1), + (this.morphTargets = !1), + (this.morphNormals = !1), + this.setValues(t); + }), + (Jt.MeshPhongMaterial.prototype = Object.create(Jt.Material.prototype)), + (Jt.MeshPhongMaterial.prototype.constructor = Jt.MeshPhongMaterial), + (Jt.MeshPhongMaterial.prototype.clone = function () { + var t = new Jt.MeshPhongMaterial(); + return ( + Jt.Material.prototype.clone.call(this, t), + t.color.copy(this.color), + t.emissive.copy(this.emissive), + t.specular.copy(this.specular), + (t.shininess = this.shininess), + (t.metal = this.metal), + (t.wrapAround = this.wrapAround), + t.wrapRGB.copy(this.wrapRGB), + (t.map = this.map), + (t.lightMap = this.lightMap), + (t.bumpMap = this.bumpMap), + (t.bumpScale = this.bumpScale), + (t.normalMap = this.normalMap), + t.normalScale.copy(this.normalScale), + (t.specularMap = this.specularMap), + (t.alphaMap = this.alphaMap), + (t.envMap = this.envMap), + (t.combine = this.combine), + (t.reflectivity = this.reflectivity), + (t.refractionRatio = this.refractionRatio), + (t.fog = this.fog), + (t.shading = this.shading), + (t.wireframe = this.wireframe), + (t.wireframeLinewidth = this.wireframeLinewidth), + (t.wireframeLinecap = this.wireframeLinecap), + (t.wireframeLinejoin = this.wireframeLinejoin), + (t.vertexColors = this.vertexColors), + (t.skinning = this.skinning), + (t.morphTargets = this.morphTargets), + (t.morphNormals = this.morphNormals), + t + ); + }), + (Jt.MeshDepthMaterial = function (t) { + Jt.Material.call(this), + (this.type = 'MeshDepthMaterial'), + (this.morphTargets = !1), + (this.wireframe = !1), + (this.wireframeLinewidth = 1), + this.setValues(t); + }), + (Jt.MeshDepthMaterial.prototype = Object.create(Jt.Material.prototype)), + (Jt.MeshDepthMaterial.prototype.constructor = Jt.MeshDepthMaterial), + (Jt.MeshDepthMaterial.prototype.clone = function () { + var t = new Jt.MeshDepthMaterial(); + return ( + Jt.Material.prototype.clone.call(this, t), + (t.wireframe = this.wireframe), + (t.wireframeLinewidth = this.wireframeLinewidth), + t + ); + }), + (Jt.MeshNormalMaterial = function (t) { + Jt.Material.call(this, t), + (this.type = 'MeshNormalMaterial'), + (this.wireframe = !1), + (this.wireframeLinewidth = 1), + (this.morphTargets = !1), + this.setValues(t); + }), + (Jt.MeshNormalMaterial.prototype = Object.create(Jt.Material.prototype)), + (Jt.MeshNormalMaterial.prototype.constructor = Jt.MeshNormalMaterial), + (Jt.MeshNormalMaterial.prototype.clone = function () { + var t = new Jt.MeshNormalMaterial(); + return ( + Jt.Material.prototype.clone.call(this, t), + (t.wireframe = this.wireframe), + (t.wireframeLinewidth = this.wireframeLinewidth), + t + ); + }), + (Jt.MeshFaceMaterial = function (t) { + (this.uuid = Jt.Math.generateUUID()), + (this.type = 'MeshFaceMaterial'), + (this.materials = t instanceof Array ? t : []); + }), + (Jt.MeshFaceMaterial.prototype = { + constructor: Jt.MeshFaceMaterial, + toJSON: function () { + for ( + var t = { + metadata: { + version: 4.2, + type: 'material', + generator: 'MaterialExporter', + }, + uuid: this.uuid, + type: this.type, + materials: [], + }, + e = 0, + n = this.materials.length; + e < n; + e++ + ) + t.materials.push(this.materials[e].toJSON()); + return t; + }, + clone: function () { + for ( + var t = new Jt.MeshFaceMaterial(), e = 0; + e < this.materials.length; + e++ + ) + t.materials.push(this.materials[e].clone()); + return t; + }, + }), + (Jt.PointCloudMaterial = function (t) { + Jt.Material.call(this), + (this.type = 'PointCloudMaterial'), + (this.color = new Jt.Color(16777215)), + (this.map = null), + (this.size = 1), + (this.sizeAttenuation = !0), + (this.vertexColors = Jt.NoColors), + (this.fog = !0), + this.setValues(t); + }), + (Jt.PointCloudMaterial.prototype = Object.create(Jt.Material.prototype)), + (Jt.PointCloudMaterial.prototype.constructor = Jt.PointCloudMaterial), + (Jt.PointCloudMaterial.prototype.clone = function () { + var t = new Jt.PointCloudMaterial(); + return ( + Jt.Material.prototype.clone.call(this, t), + t.color.copy(this.color), + (t.map = this.map), + (t.size = this.size), + (t.sizeAttenuation = this.sizeAttenuation), + (t.vertexColors = this.vertexColors), + (t.fog = this.fog), + t + ); + }), + (Jt.ParticleBasicMaterial = function (t) { + return ( + Jt.warn( + 'THREE.ParticleBasicMaterial has been renamed to THREE.PointCloudMaterial.', + ), + new Jt.PointCloudMaterial(t) + ); + }), + (Jt.ParticleSystemMaterial = function (t) { + return ( + Jt.warn( + 'THREE.ParticleSystemMaterial has been renamed to THREE.PointCloudMaterial.', + ), + new Jt.PointCloudMaterial(t) + ); + }), + (Jt.ShaderMaterial = function (t) { + Jt.Material.call(this), + (this.type = 'ShaderMaterial'), + (this.defines = {}), + (this.uniforms = {}), + (this.attributes = null), + (this.vertexShader = + 'void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}'), + (this.fragmentShader = + 'void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}'), + (this.shading = Jt.SmoothShading), + (this.linewidth = 1), + (this.wireframe = !1), + (this.wireframeLinewidth = 1), + (this.fog = !1), + (this.lights = !1), + (this.vertexColors = Jt.NoColors), + (this.skinning = !1), + (this.morphTargets = !1), + (this.morphNormals = !1), + (this.defaultAttributeValues = { + color: [1, 1, 1], + uv: [0, 0], + uv2: [0, 0], + }), + (this.index0AttributeName = void 0), + this.setValues(t); + }), + (Jt.ShaderMaterial.prototype = Object.create(Jt.Material.prototype)), + (Jt.ShaderMaterial.prototype.constructor = Jt.ShaderMaterial), + (Jt.ShaderMaterial.prototype.clone = function () { + var t = new Jt.ShaderMaterial(); + return ( + Jt.Material.prototype.clone.call(this, t), + (t.fragmentShader = this.fragmentShader), + (t.vertexShader = this.vertexShader), + (t.uniforms = Jt.UniformsUtils.clone(this.uniforms)), + (t.attributes = this.attributes), + (t.defines = this.defines), + (t.shading = this.shading), + (t.wireframe = this.wireframe), + (t.wireframeLinewidth = this.wireframeLinewidth), + (t.fog = this.fog), + (t.lights = this.lights), + (t.vertexColors = this.vertexColors), + (t.skinning = this.skinning), + (t.morphTargets = this.morphTargets), + (t.morphNormals = this.morphNormals), + t + ); + }), + (Jt.RawShaderMaterial = function (t) { + Jt.ShaderMaterial.call(this, t), (this.type = 'RawShaderMaterial'); + }), + (Jt.RawShaderMaterial.prototype = Object.create(Jt.ShaderMaterial.prototype)), + (Jt.RawShaderMaterial.prototype.constructor = Jt.RawShaderMaterial), + (Jt.RawShaderMaterial.prototype.clone = function () { + var t = new Jt.RawShaderMaterial(); + return Jt.ShaderMaterial.prototype.clone.call(this, t), t; + }), + (Jt.SpriteMaterial = function (t) { + Jt.Material.call(this), + (this.type = 'SpriteMaterial'), + (this.color = new Jt.Color(16777215)), + (this.map = null), + (this.rotation = 0), + (this.fog = !1), + this.setValues(t); + }), + (Jt.SpriteMaterial.prototype = Object.create(Jt.Material.prototype)), + (Jt.SpriteMaterial.prototype.constructor = Jt.SpriteMaterial), + (Jt.SpriteMaterial.prototype.clone = function () { + var t = new Jt.SpriteMaterial(); + return ( + Jt.Material.prototype.clone.call(this, t), + t.color.copy(this.color), + (t.map = this.map), + (t.rotation = this.rotation), + (t.fog = this.fog), + t + ); + }), + (Jt.Texture = function (t, e, n, r, i, o, a, s, l) { + Object.defineProperty(this, 'id', { value: Jt.TextureIdCount++ }), + (this.uuid = Jt.Math.generateUUID()), + (this.name = ''), + (this.sourceFile = ''), + (this.image = void 0 !== t ? t : Jt.Texture.DEFAULT_IMAGE), + (this.mipmaps = []), + (this.mapping = void 0 !== e ? e : Jt.Texture.DEFAULT_MAPPING), + (this.wrapS = void 0 !== n ? n : Jt.ClampToEdgeWrapping), + (this.wrapT = void 0 !== r ? r : Jt.ClampToEdgeWrapping), + (this.magFilter = void 0 !== i ? i : Jt.LinearFilter), + (this.minFilter = void 0 !== o ? o : Jt.LinearMipMapLinearFilter), + (this.anisotropy = void 0 !== l ? l : 1), + (this.format = void 0 !== a ? a : Jt.RGBAFormat), + (this.type = void 0 !== s ? s : Jt.UnsignedByteType), + (this.offset = new Jt.Vector2(0, 0)), + (this.repeat = new Jt.Vector2(1, 1)), + (this.generateMipmaps = !0), + (this.premultiplyAlpha = !1), + (this.flipY = !0), + (this.unpackAlignment = 4), + (this._needsUpdate = !1), + (this.onUpdate = null); + }), + (Jt.Texture.DEFAULT_IMAGE = void 0), + (Jt.Texture.DEFAULT_MAPPING = Jt.UVMapping), + (Jt.Texture.prototype = { + constructor: Jt.Texture, + get needsUpdate() { + return this._needsUpdate; + }, + set needsUpdate(t) { + !0 === t && this.update(), (this._needsUpdate = t); + }, + clone: function (t) { + return ( + ((t = void 0 === t ? new Jt.Texture() : t).image = this.image), + (t.mipmaps = this.mipmaps.slice(0)), + (t.mapping = this.mapping), + (t.wrapS = this.wrapS), + (t.wrapT = this.wrapT), + (t.magFilter = this.magFilter), + (t.minFilter = this.minFilter), + (t.anisotropy = this.anisotropy), + (t.format = this.format), + (t.type = this.type), + t.offset.copy(this.offset), + t.repeat.copy(this.repeat), + (t.generateMipmaps = this.generateMipmaps), + (t.premultiplyAlpha = this.premultiplyAlpha), + (t.flipY = this.flipY), + (t.unpackAlignment = this.unpackAlignment), + t + ); + }, + update: function () { + this.dispatchEvent({ type: 'update' }); + }, + dispose: function () { + this.dispatchEvent({ type: 'dispose' }); + }, + }), + Jt.EventDispatcher.prototype.apply(Jt.Texture.prototype), + (Jt.TextureIdCount = 0), + (Jt.CubeTexture = function (t, e, n, r, i, o, a, s, l) { + (e = void 0 !== e ? e : Jt.CubeReflectionMapping), + Jt.Texture.call(this, t, e, n, r, i, o, a, s, l), + (this.images = t); + }), + (Jt.CubeTexture.prototype = Object.create(Jt.Texture.prototype)), + (Jt.CubeTexture.prototype.constructor = Jt.CubeTexture), + (Jt.CubeTexture.clone = function (t) { + return ( + void 0 === t && (t = new Jt.CubeTexture()), + Jt.Texture.prototype.clone.call(this, t), + (t.images = this.images), + t + ); + }), + (Jt.CompressedTexture = function (t, e, n, r, i, o, a, s, l, u, c) { + Jt.Texture.call(this, null, o, a, s, l, u, r, i, c), + (this.image = { width: e, height: n }), + (this.mipmaps = t), + (this.flipY = !1), + (this.generateMipmaps = !1); + }), + (Jt.CompressedTexture.prototype = Object.create(Jt.Texture.prototype)), + (Jt.CompressedTexture.prototype.constructor = Jt.CompressedTexture), + (Jt.CompressedTexture.prototype.clone = function () { + var t = new Jt.CompressedTexture(); + return Jt.Texture.prototype.clone.call(this, t), t; + }), + (Jt.DataTexture = function (t, e, n, r, i, o, a, s, l, u, c) { + Jt.Texture.call(this, null, o, a, s, l, u, r, i, c), + (this.image = { data: t, width: e, height: n }); + }), + (Jt.DataTexture.prototype = Object.create(Jt.Texture.prototype)), + (Jt.DataTexture.prototype.constructor = Jt.DataTexture), + (Jt.DataTexture.prototype.clone = function () { + var t = new Jt.DataTexture(); + return Jt.Texture.prototype.clone.call(this, t), t; + }), + (Jt.VideoTexture = function (t, e, n, r, i, o, a, s, l) { + Jt.Texture.call(this, t, e, n, r, i, o, a, s, l), (this.generateMipmaps = !1); + var u = this, + c = function () { + requestAnimationFrame(c), + t.readyState === t.HAVE_ENOUGH_DATA && (u.needsUpdate = !0); + }; + c(); + }), + (Jt.VideoTexture.prototype = Object.create(Jt.Texture.prototype)), + (Jt.VideoTexture.prototype.constructor = Jt.VideoTexture), + (Jt.Group = function () { + Jt.Object3D.call(this), (this.type = 'Group'); + }), + (Jt.Group.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.Group.prototype.constructor = Jt.Group), + (Jt.PointCloud = function (t, e) { + Jt.Object3D.call(this), + (this.type = 'PointCloud'), + (this.geometry = void 0 !== t ? t : new Jt.Geometry()), + (this.material = + void 0 !== e + ? e + : new Jt.PointCloudMaterial({ color: 16777215 * Math.random() })); + }), + (Jt.PointCloud.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.PointCloud.prototype.constructor = Jt.PointCloud), + (Jt.PointCloud.prototype.raycast = + ((fn = new Jt.Matrix4()), + (gn = new Jt.Ray()), + function (i, o) { + var a = this, + t = a.geometry, + e = i.params.PointCloud.threshold; + if ( + (fn.getInverse(this.matrixWorld), + gn.copy(i.ray).applyMatrix4(fn), + null === t.boundingBox || !1 !== gn.isIntersectionBox(t.boundingBox)) + ) { + var s = e / ((this.scale.x + this.scale.y + this.scale.z) / 3), + n = new Jt.Vector3(), + r = function (t, e) { + var n, + r = gn.distanceToPoint(t); + r < s && + ((t = gn.closestPointToPoint(t)).applyMatrix4(a.matrixWorld), + (n = i.ray.origin.distanceTo(t)), + o.push({ + distance: n, + distanceToRay: r, + point: t.clone(), + index: e, + face: null, + object: a, + })); + }; + if (t instanceof Jt.BufferGeometry) { + var e = t.attributes, + l = e.position.array; + if (void 0 !== e.index) + for ( + var u = e.index.array, + c = t.offsets, + A = 0, + h = (c = + 0 === c.length ? [{ start: 0, count: u.length, index: 0 }] : c) + .length; + A < h; + ++A + ) + for ( + var p = c[A].start, + d = c[A].count, + f = c[A].index, + g = p, + m = p + d; + g < m; + g++ + ) { + var v = f + u[g]; + n.fromArray(l, 3 * v), r(n, v); + } + else + for (var b = l.length / 3, g = 0; g < b; g++) + n.set(l[3 * g], l[3 * g + 1], l[3 * g + 2]), r(n, g); + } else + for (var y = this.geometry.vertices, g = 0; g < y.length; g++) + r(y[g], g); + } + })), + (Jt.PointCloud.prototype.clone = function (t) { + return ( + void 0 === t && (t = new Jt.PointCloud(this.geometry, this.material)), + Jt.Object3D.prototype.clone.call(this, t), + t + ); + }), + (Jt.ParticleSystem = function (t, e) { + return ( + Jt.warn('THREE.ParticleSystem has been renamed to THREE.PointCloud.'), + new Jt.PointCloud(t, e) + ); + }), + (Jt.Line = function (t, e, n) { + Jt.Object3D.call(this), + (this.type = 'Line'), + (this.geometry = void 0 !== t ? t : new Jt.Geometry()), + (this.material = + void 0 !== e + ? e + : new Jt.LineBasicMaterial({ color: 16777215 * Math.random() })), + (this.mode = void 0 !== n ? n : Jt.LineStrip); + }), + (Jt.LineStrip = 0), + (Jt.LinePieces = 1), + (Jt.Line.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.Line.prototype.constructor = Jt.Line), + (Jt.Line.prototype.raycast = + ((mn = new Jt.Matrix4()), + (vn = new Jt.Ray()), + (bn = new Jt.Sphere()), + function (t, e) { + var n = t.linePrecision, + r = n * n, + n = this.geometry; + if ( + (null === n.boundingSphere && n.computeBoundingSphere(), + bn.copy(n.boundingSphere), + bn.applyMatrix4(this.matrixWorld), + !1 !== t.ray.isIntersectionSphere(bn)) + ) { + mn.getInverse(this.matrixWorld), vn.copy(t.ray).applyMatrix4(mn); + var i = new Jt.Vector3(), + o = new Jt.Vector3(), + a = new Jt.Vector3(), + s = new Jt.Vector3(), + l = this.mode === Jt.LineStrip ? 1 : 2; + if (n instanceof Jt.BufferGeometry) { + var u = n.attributes; + if (void 0 !== u.index) { + var c = u.index.array, + A = u.position.array, + h = n.offsets; + 0 === h.length && (h = [{ start: 0, count: c.length, index: 0 }]); + for (var p = 0; p < h.length; p++) + for ( + var d = h[p].start, f = h[p].count, g = h[p].index, m = d; + m < d + f - 1; + m += l + ) { + var v = g + c[m], + b = g + c[m + 1]; + i.fromArray(A, 3 * v), + o.fromArray(A, 3 * b), + r < vn.distanceSqToSegment(i, o, s, a) || + (y = vn.origin.distanceTo(s)) < t.near || + y > t.far || + e.push({ + distance: y, + point: a.clone().applyMatrix4(this.matrixWorld), + index: m, + offsetIndex: p, + face: null, + faceIndex: null, + object: this, + }); + } + } else + for (A = u.position.array, m = 0; m < A.length / 3 - 1; m += l) + i.fromArray(A, 3 * m), + o.fromArray(A, 3 * m + 3), + r < vn.distanceSqToSegment(i, o, s, a) || + (y = vn.origin.distanceTo(s)) < t.near || + y > t.far || + e.push({ + distance: y, + point: a.clone().applyMatrix4(this.matrixWorld), + index: m, + face: null, + faceIndex: null, + object: this, + }); + } else if (n instanceof Jt.Geometry) + for (var y, w = n.vertices, E = w.length, m = 0; m < E - 1; m += l) + r < vn.distanceSqToSegment(w[m], w[m + 1], s, a) || + (y = vn.origin.distanceTo(s)) < t.near || + y > t.far || + e.push({ + distance: y, + point: a.clone().applyMatrix4(this.matrixWorld), + index: m, + face: null, + faceIndex: null, + object: this, + }); + } + })), + (Jt.Line.prototype.clone = function (t) { + return ( + void 0 === t && (t = new Jt.Line(this.geometry, this.material, this.mode)), + Jt.Object3D.prototype.clone.call(this, t), + t + ); + }), + (Jt.Mesh = function (t, e) { + Jt.Object3D.call(this), + (this.type = 'Mesh'), + (this.geometry = void 0 !== t ? t : new Jt.Geometry()), + (this.material = + void 0 !== e + ? e + : new Jt.MeshBasicMaterial({ color: 16777215 * Math.random() })), + this.updateMorphTargets(); + }), + (Jt.Mesh.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.Mesh.prototype.constructor = Jt.Mesh), + (Jt.Mesh.prototype.updateMorphTargets = function () { + if ( + void 0 !== this.geometry.morphTargets && + 0 < this.geometry.morphTargets.length + ) { + (this.morphTargetBase = -1), + (this.morphTargetForcedOrder = []), + (this.morphTargetInfluences = []), + (this.morphTargetDictionary = {}); + for (var t = 0, e = this.geometry.morphTargets.length; t < e; t++) + this.morphTargetInfluences.push(0), + (this.morphTargetDictionary[this.geometry.morphTargets[t].name] = t); + } + }), + (Jt.Mesh.prototype.getMorphTargetIndexByName = function (t) { + return void 0 !== this.morphTargetDictionary[t] + ? this.morphTargetDictionary[t] + : (Jt.warn( + 'THREE.Mesh.getMorphTargetIndexByName: morph target ' + + t + + ' does not exist. Returning 0.', + ), + 0); + }), + (Jt.Mesh.prototype.raycast = + ((yn = new Jt.Matrix4()), + (wn = new Jt.Ray()), + (En = new Jt.Sphere()), + (Bn = new Jt.Vector3()), + (Cn = new Jt.Vector3()), + (xn = new Jt.Vector3()), + function (t, e) { + var n = this.geometry; + if ( + (null === n.boundingSphere && n.computeBoundingSphere(), + En.copy(n.boundingSphere), + En.applyMatrix4(this.matrixWorld), + !1 !== t.ray.isIntersectionSphere(En) && + (yn.getInverse(this.matrixWorld), + wn.copy(t.ray).applyMatrix4(yn), + null === n.boundingBox || !1 !== wn.isIntersectionBox(n.boundingBox))) + ) + if (n instanceof Jt.BufferGeometry) { + var r = this.material; + if (void 0 !== r) { + var i = n.attributes, + o = t.precision; + if (void 0 !== i.index) + for ( + var a = i.index.array, + s = i.position.array, + l = n.offsets, + u = 0, + c = (l = + 0 === l.length + ? [{ start: 0, count: a.length, index: 0 }] + : l).length; + u < c; + ++u + ) + for ( + var A = l[u].start, + h = l[u].count, + p = l[u].index, + d = A, + f = A + h; + d < f; + d += 3 + ) + (m = p + a[d]), + (v = p + a[d + 1]), + (b = p + a[d + 2]), + Bn.fromArray(s, 3 * m), + Cn.fromArray(s, 3 * v), + xn.fromArray(s, 3 * b), + null !== + (x = + r.side === Jt.BackSide + ? wn.intersectTriangle(xn, Cn, Bn, !0) + : wn.intersectTriangle( + Bn, + Cn, + xn, + r.side !== Jt.DoubleSide, + )) && + (x.applyMatrix4(this.matrixWorld), + (I = t.ray.origin.distanceTo(x)) < o || + I < t.near || + I > t.far || + e.push({ + distance: I, + point: x, + face: new Jt.Face3( + m, + v, + b, + Jt.Triangle.normal(Bn, Cn, xn), + ), + faceIndex: null, + object: this, + })); + else + for ( + var d = 0, g = 0, f = (s = i.position.array).length; + d < f; + d += 3, g += 9 + ) + (v = (m = d) + 1), + (b = d + 2), + Bn.fromArray(s, g), + Cn.fromArray(s, g + 3), + xn.fromArray(s, g + 6), + null !== + (x = + r.side === Jt.BackSide + ? wn.intersectTriangle(xn, Cn, Bn, !0) + : wn.intersectTriangle( + Bn, + Cn, + xn, + r.side !== Jt.DoubleSide, + )) && + (x.applyMatrix4(this.matrixWorld), + (I = t.ray.origin.distanceTo(x)) < o || + I < t.near || + I > t.far || + e.push({ + distance: I, + point: x, + face: new Jt.Face3( + m, + v, + b, + Jt.Triangle.normal(Bn, Cn, xn), + ), + faceIndex: null, + object: this, + })); + } + } else if (n instanceof Jt.Geometry) + for ( + var m, + v, + b, + y = this.material instanceof Jt.MeshFaceMaterial, + w = !0 == y ? this.material.materials : null, + o = t.precision, + E = n.vertices, + B = 0, + C = n.faces.length; + B < C; + B++ + ) { + var x, + I, + M = n.faces[B], + r = !0 == y ? w[M.materialIndex] : this.material; + if (void 0 !== r) { + if ( + ((m = E[M.a]), (v = E[M.b]), (b = E[M.c]), !0 === r.morphTargets) + ) { + var D = n.morphTargets, + S = this.morphTargetInfluences; + Bn.set(0, 0, 0), Cn.set(0, 0, 0), xn.set(0, 0, 0); + for (var k = 0, F = D.length; k < F; k++) { + var Q, + _ = S[k]; + 0 !== _ && + ((Q = D[k].vertices), + (Bn.x += (Q[M.a].x - m.x) * _), + (Bn.y += (Q[M.a].y - m.y) * _), + (Bn.z += (Q[M.a].z - m.z) * _), + (Cn.x += (Q[M.b].x - v.x) * _), + (Cn.y += (Q[M.b].y - v.y) * _), + (Cn.z += (Q[M.b].z - v.z) * _), + (xn.x += (Q[M.c].x - b.x) * _), + (xn.y += (Q[M.c].y - b.y) * _), + (xn.z += (Q[M.c].z - b.z) * _)); + } + Bn.add(m), Cn.add(v), xn.add(b), (m = Bn), (v = Cn), (b = xn); + } + null !== + (x = + r.side === Jt.BackSide + ? wn.intersectTriangle(b, v, m, !0) + : wn.intersectTriangle(m, v, b, r.side !== Jt.DoubleSide)) && + (x.applyMatrix4(this.matrixWorld), + (I = t.ray.origin.distanceTo(x)) < o || + I < t.near || + I > t.far || + e.push({ + distance: I, + point: x, + face: M, + faceIndex: B, + object: this, + })); + } + } + })), + (Jt.Mesh.prototype.clone = function (t, e) { + return ( + void 0 === t && (t = new Jt.Mesh(this.geometry, this.material)), + Jt.Object3D.prototype.clone.call(this, t, e), + t + ); + }), + (Jt.Bone = function (t) { + Jt.Object3D.call(this), (this.type = 'Bone'), (this.skin = t); + }), + (Jt.Bone.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.Bone.prototype.constructor = Jt.Bone), + (Jt.Skeleton = function (t, e, n) { + if ( + ((this.useVertexTexture = void 0 === n || n), + (this.identityMatrix = new Jt.Matrix4()), + (this.bones = (t = t || []).slice(0)), + this.useVertexTexture + ? ((n = + 256 < this.bones.length + ? 64 + : 64 < this.bones.length + ? 32 + : 16 < this.bones.length + ? 16 + : 8), + (this.boneTextureWidth = n), + (this.boneTextureHeight = n), + (this.boneMatrices = new Float32Array( + this.boneTextureWidth * this.boneTextureHeight * 4, + )), + (this.boneTexture = new Jt.DataTexture( + this.boneMatrices, + this.boneTextureWidth, + this.boneTextureHeight, + Jt.RGBAFormat, + Jt.FloatType, + )), + (this.boneTexture.minFilter = Jt.NearestFilter), + (this.boneTexture.magFilter = Jt.NearestFilter), + (this.boneTexture.generateMipmaps = !1), + (this.boneTexture.flipY = !1)) + : (this.boneMatrices = new Float32Array(16 * this.bones.length)), + void 0 === e) + ) + this.calculateInverses(); + else if (this.bones.length === e.length) this.boneInverses = e.slice(0); + else { + Jt.warn('THREE.Skeleton bonInverses is the wrong length.'), + (this.boneInverses = []); + for (var r = 0, i = this.bones.length; r < i; r++) + this.boneInverses.push(new Jt.Matrix4()); + } + }), + (Jt.Skeleton.prototype.calculateInverses = function () { + this.boneInverses = []; + for (var t = 0, e = this.bones.length; t < e; t++) { + var n = new Jt.Matrix4(); + this.bones[t] && n.getInverse(this.bones[t].matrixWorld), + this.boneInverses.push(n); + } + }), + (Jt.Skeleton.prototype.pose = function () { + for (var t, e = 0, n = this.bones.length; e < n; e++) + (t = this.bones[e]) && t.matrixWorld.getInverse(this.boneInverses[e]); + for (e = 0, n = this.bones.length; e < n; e++) + (t = this.bones[e]) && + (t.parent + ? (t.matrix.getInverse(t.parent.matrixWorld), + t.matrix.multiply(t.matrixWorld)) + : t.matrix.copy(t.matrixWorld), + t.matrix.decompose(t.position, t.quaternion, t.scale)); + }), + (Jt.Skeleton.prototype.update = + ((In = new Jt.Matrix4()), + function () { + for (var t = 0, e = this.bones.length; t < e; t++) { + var n = this.bones[t] ? this.bones[t].matrixWorld : this.identityMatrix; + In.multiplyMatrices(n, this.boneInverses[t]), + In.flattenToArrayOffset(this.boneMatrices, 16 * t); + } + this.useVertexTexture && (this.boneTexture.needsUpdate = !0); + })), + (Jt.SkinnedMesh = function (t, e, n) { + Jt.Mesh.call(this, t, e), + (this.type = 'SkinnedMesh'), + (this.bindMode = 'attached'), + (this.bindMatrix = new Jt.Matrix4()), + (this.bindMatrixInverse = new Jt.Matrix4()); + var r = []; + if (this.geometry && void 0 !== this.geometry.bones) { + for (var i, o, a, s, l, u = 0, c = this.geometry.bones.length; u < c; ++u) + (a = (o = this.geometry.bones[u]).pos), + (s = o.rotq), + (l = o.scl), + (i = new Jt.Bone(this)), + r.push(i), + (i.name = o.name), + i.position.set(a[0], a[1], a[2]), + i.quaternion.set(s[0], s[1], s[2], s[3]), + void 0 !== l ? i.scale.set(l[0], l[1], l[2]) : i.scale.set(1, 1, 1); + for (u = 0, c = this.geometry.bones.length; u < c; ++u) + (-1 !== (o = this.geometry.bones[u]).parent ? r[o.parent] : this).add( + r[u], + ); + } + this.normalizeSkinWeights(), + this.updateMatrixWorld(!0), + this.bind(new Jt.Skeleton(r, void 0, n)); + }), + (Jt.SkinnedMesh.prototype = Object.create(Jt.Mesh.prototype)), + (Jt.SkinnedMesh.prototype.constructor = Jt.SkinnedMesh), + (Jt.SkinnedMesh.prototype.bind = function (t, e) { + (this.skeleton = t), + void 0 === e && (this.updateMatrixWorld(!0), (e = this.matrixWorld)), + this.bindMatrix.copy(e), + this.bindMatrixInverse.getInverse(e); + }), + (Jt.SkinnedMesh.prototype.pose = function () { + this.skeleton.pose(); + }), + (Jt.SkinnedMesh.prototype.normalizeSkinWeights = function () { + if (this.geometry instanceof Jt.Geometry) + for (var t = 0; t < this.geometry.skinIndices.length; t++) { + var e = this.geometry.skinWeights[t], + n = 1 / e.lengthManhattan(); + n != 1 / 0 ? e.multiplyScalar(n) : e.set(1); + } + }), + (Jt.SkinnedMesh.prototype.updateMatrixWorld = function (t) { + Jt.Mesh.prototype.updateMatrixWorld.call(this, !0), + 'attached' === this.bindMode + ? this.bindMatrixInverse.getInverse(this.matrixWorld) + : 'detached' === this.bindMode + ? this.bindMatrixInverse.getInverse(this.bindMatrix) + : Jt.warn('THREE.SkinnedMesh unreckognized bindMode: ' + this.bindMode); + }), + (Jt.SkinnedMesh.prototype.clone = function (t) { + return ( + void 0 === t && + (t = new Jt.SkinnedMesh( + this.geometry, + this.material, + this.useVertexTexture, + )), + Jt.Mesh.prototype.clone.call(this, t), + t + ); + }), + (Jt.MorphAnimMesh = function (t, e) { + Jt.Mesh.call(this, t, e), + (this.type = 'MorphAnimMesh'), + (this.duration = 1e3), + (this.mirroredLoop = !1), + (this.time = 0), + (this.lastKeyframe = 0), + (this.currentKeyframe = 0), + (this.direction = 1), + (this.directionBackwards = !1), + this.setFrameRange(0, this.geometry.morphTargets.length - 1); + }), + (Jt.MorphAnimMesh.prototype = Object.create(Jt.Mesh.prototype)), + (Jt.MorphAnimMesh.prototype.constructor = Jt.MorphAnimMesh), + (Jt.MorphAnimMesh.prototype.setFrameRange = function (t, e) { + (this.startKeyframe = t), + (this.endKeyframe = e), + (this.length = this.endKeyframe - this.startKeyframe + 1); + }), + (Jt.MorphAnimMesh.prototype.setDirectionForward = function () { + (this.direction = 1), (this.directionBackwards = !1); + }), + (Jt.MorphAnimMesh.prototype.setDirectionBackward = function () { + (this.direction = -1), (this.directionBackwards = !0); + }), + (Jt.MorphAnimMesh.prototype.parseAnimations = function () { + var t = this.geometry; + t.animations || (t.animations = {}); + for ( + var e, + n = t.animations, + r = /([a-z]+)_?(\d+)/, + i = 0, + o = t.morphTargets.length; + i < o; + i++ + ) { + var a, + s = t.morphTargets[i].name.match(r); + s && + 1 < s.length && + (n[(s = s[1])] || (n[s] = { start: 1 / 0, end: -1 / 0 }), + i < (a = n[s]).start && (a.start = i), + i > a.end && (a.end = i), + (e = e || s)); + } + t.firstAnimation = e; + }), + (Jt.MorphAnimMesh.prototype.setAnimationLabel = function (t, e, n) { + this.geometry.animations || (this.geometry.animations = {}), + (this.geometry.animations[t] = { start: e, end: n }); + }), + (Jt.MorphAnimMesh.prototype.playAnimation = function (t, e) { + var n = this.geometry.animations[t]; + n + ? (this.setFrameRange(n.start, n.end), + (this.duration = ((n.end - n.start) / e) * 1e3), + (this.time = 0)) + : Jt.warn( + 'THREE.MorphAnimMesh: animation[' + + t + + '] undefined in .playAnimation()', + ); + }), + (Jt.MorphAnimMesh.prototype.updateAnimation = function (t) { + var e = this.duration / this.length, + t = + ((this.time += this.direction * t), + this.mirroredLoop + ? (this.time > this.duration || this.time < 0) && + ((this.direction *= -1), + this.time > this.duration && + ((this.time = this.duration), (this.directionBackwards = !0)), + this.time < 0 && ((this.time = 0), (this.directionBackwards = !1))) + : ((this.time = this.time % this.duration), + this.time < 0 && (this.time += this.duration)), + this.startKeyframe + + Jt.Math.clamp(Math.floor(this.time / e), 0, this.length - 1)), + t = + (t !== this.currentKeyframe && + ((this.morphTargetInfluences[this.lastKeyframe] = 0), + (this.morphTargetInfluences[this.currentKeyframe] = 1), + (this.morphTargetInfluences[t] = 0), + (this.lastKeyframe = this.currentKeyframe), + (this.currentKeyframe = t)), + (this.time % e) / e); + this.directionBackwards && (t = 1 - t), + (this.morphTargetInfluences[this.currentKeyframe] = t), + (this.morphTargetInfluences[this.lastKeyframe] = 1 - t); + }), + (Jt.MorphAnimMesh.prototype.interpolateTargets = function (t, e, n) { + for (var r = this.morphTargetInfluences, i = 0, o = r.length; i < o; i++) + r[i] = 0; + -1 < t && (r[t] = 1 - n), -1 < e && (r[e] = n); + }), + (Jt.MorphAnimMesh.prototype.clone = function (t) { + return ( + ((t = + void 0 === t + ? new Jt.MorphAnimMesh(this.geometry, this.material) + : t).duration = this.duration), + (t.mirroredLoop = this.mirroredLoop), + (t.time = this.time), + (t.lastKeyframe = this.lastKeyframe), + (t.currentKeyframe = this.currentKeyframe), + (t.direction = this.direction), + (t.directionBackwards = this.directionBackwards), + Jt.Mesh.prototype.clone.call(this, t), + t + ); + }), + (Jt.LOD = function () { + Jt.Object3D.call(this), (this.objects = []); + }), + (Jt.LOD.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.LOD.prototype.constructor = Jt.LOD), + (Jt.LOD.prototype.addLevel = function (t, e) { + void 0 === e && (e = 0), (e = Math.abs(e)); + for ( + var n = 0; + n < this.objects.length && !(e < this.objects[n].distance); + n++ + ); + this.objects.splice(n, 0, { distance: e, object: t }), this.add(t); + }), + (Jt.LOD.prototype.getObjectForDistance = function (t) { + for ( + var e = 1, n = this.objects.length; + e < n && !(t < this.objects[e].distance); + e++ + ); + return this.objects[e - 1].object; + }), + (Jt.LOD.prototype.raycast = + ((Mn = new Jt.Vector3()), + function (t, e) { + Mn.setFromMatrixPosition(this.matrixWorld); + var n = t.ray.origin.distanceTo(Mn); + this.getObjectForDistance(n).raycast(t, e); + })), + (Jt.LOD.prototype.update = + ((Dn = new Jt.Vector3()), + (Sn = new Jt.Vector3()), + function (t) { + if (1 < this.objects.length) { + Dn.setFromMatrixPosition(t.matrixWorld), + Sn.setFromMatrixPosition(this.matrixWorld); + var e = Dn.distanceTo(Sn); + this.objects[0].object.visible = !0; + for ( + var n = 1, r = this.objects.length; + n < r && e >= this.objects[n].distance; + n++ + ) + (this.objects[n - 1].object.visible = !1), + (this.objects[n].object.visible = !0); + for (; n < r; n++) this.objects[n].object.visible = !1; + } + })), + (Jt.LOD.prototype.clone = function (t) { + void 0 === t && (t = new Jt.LOD()), Jt.Object3D.prototype.clone.call(this, t); + for (var e = 0, n = this.objects.length; e < n; e++) { + var r = this.objects[e].object.clone(); + (r.visible = 0 === e), t.addLevel(r, this.objects[e].distance); + } + return t; + }), + (Jt.Sprite = + ((E = new Uint16Array([0, 1, 2, 0, 2, 3])), + (w = new Float32Array([ + -0.5, -0.5, 0, 0.5, -0.5, 0, 0.5, 0.5, 0, -0.5, 0.5, 0, + ])), + (n = new Float32Array([0, 0, 1, 0, 1, 1, 0, 1])), + (kn = new Jt.BufferGeometry()).addAttribute( + 'index', + new Jt.BufferAttribute(E, 1), + ), + kn.addAttribute('position', new Jt.BufferAttribute(w, 3)), + kn.addAttribute('uv', new Jt.BufferAttribute(n, 2)), + function (t) { + Jt.Object3D.call(this), + (this.type = 'Sprite'), + (this.geometry = kn), + (this.material = void 0 !== t ? t : new Jt.SpriteMaterial()); + })), + (Jt.Sprite.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.Sprite.prototype.constructor = Jt.Sprite), + (Jt.Sprite.prototype.raycast = + ((Fn = new Jt.Vector3()), + function (t, e) { + Fn.setFromMatrixPosition(this.matrixWorld); + t = t.ray.distanceToPoint(Fn); + t > this.scale.x || + e.push({ distance: t, point: this.position, face: null, object: this }); + })), + (Jt.Sprite.prototype.clone = function (t) { + return ( + void 0 === t && (t = new Jt.Sprite(this.material)), + Jt.Object3D.prototype.clone.call(this, t), + t + ); + }), + (Jt.Particle = Jt.Sprite), + (Jt.LensFlare = function (t, e, n, r, i) { + Jt.Object3D.call(this), + (this.lensFlares = []), + (this.positionScreen = new Jt.Vector3()), + (this.customUpdateCallback = void 0) !== t && this.add(t, e, n, r, i); + }), + (Jt.LensFlare.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.LensFlare.prototype.constructor = Jt.LensFlare), + (Jt.LensFlare.prototype.add = function (t, e, n, r, i, o) { + void 0 === e && (e = -1), + void 0 === n && (n = 0), + void 0 === o && (o = 1), + void 0 === i && (i = new Jt.Color(16777215)), + void 0 === r && (r = Jt.NormalBlending), + (n = Math.min(n, Math.max(0, n))), + this.lensFlares.push({ + texture: t, + size: e, + distance: n, + x: 0, + y: 0, + z: 0, + scale: 1, + rotation: 1, + opacity: o, + color: i, + blending: r, + }); + }), + (Jt.LensFlare.prototype.updateLensFlares = function () { + for ( + var t, + e = this.lensFlares.length, + n = 2 * -this.positionScreen.x, + r = 2 * -this.positionScreen.y, + i = 0; + i < e; + i++ + ) + ((t = this.lensFlares[i]).x = this.positionScreen.x + n * t.distance), + (t.y = this.positionScreen.y + r * t.distance), + (t.wantedRotation = t.x * Math.PI * 0.25), + (t.rotation += 0.25 * (t.wantedRotation - t.rotation)); + }), + (Jt.Scene = function () { + Jt.Object3D.call(this), + (this.type = 'Scene'), + (this.fog = null), + (this.overrideMaterial = null), + (this.autoUpdate = !0); + }), + (Jt.Scene.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.Scene.prototype.constructor = Jt.Scene), + (Jt.Scene.prototype.clone = function (t) { + return ( + void 0 === t && (t = new Jt.Scene()), + Jt.Object3D.prototype.clone.call(this, t), + null !== this.fog && (t.fog = this.fog.clone()), + null !== this.overrideMaterial && + (t.overrideMaterial = this.overrideMaterial.clone()), + (t.autoUpdate = this.autoUpdate), + (t.matrixAutoUpdate = this.matrixAutoUpdate), + t + ); + }), + (Jt.Fog = function (t, e, n) { + (this.name = ''), + (this.color = new Jt.Color(t)), + (this.near = void 0 !== e ? e : 1), + (this.far = void 0 !== n ? n : 1e3); + }), + (Jt.Fog.prototype.clone = function () { + return new Jt.Fog(this.color.getHex(), this.near, this.far); + }), + (Jt.FogExp2 = function (t, e) { + (this.name = ''), + (this.color = new Jt.Color(t)), + (this.density = void 0 !== e ? e : 25e-5); + }), + (Jt.FogExp2.prototype.clone = function () { + return new Jt.FogExp2(this.color.getHex(), this.density); + }), + (Jt.ShaderChunk = {}), + (Jt.ShaderChunk.common = + '#define PI 3.14159\n#define PI2 6.28318\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\n#define EPSILON 1e-6\n\nfloat square( in float a ) { return a*a; }\nvec2 square( in vec2 a ) { return vec2( a.x*a.x, a.y*a.y ); }\nvec3 square( in vec3 a ) { return vec3( a.x*a.x, a.y*a.y, a.z*a.z ); }\nvec4 square( in vec4 a ) { return vec4( a.x*a.x, a.y*a.y, a.z*a.z, a.w*a.w ); }\nfloat saturate( in float a ) { return clamp( a, 0.0, 1.0 ); }\nvec2 saturate( in vec2 a ) { return clamp( a, 0.0, 1.0 ); }\nvec3 saturate( in vec3 a ) { return clamp( a, 0.0, 1.0 ); }\nvec4 saturate( in vec4 a ) { return clamp( a, 0.0, 1.0 ); }\nfloat average( in float a ) { return a; }\nfloat average( in vec2 a ) { return ( a.x + a.y) * 0.5; }\nfloat average( in vec3 a ) { return ( a.x + a.y + a.z) / 3.0; }\nfloat average( in vec4 a ) { return ( a.x + a.y + a.z + a.w) * 0.25; }\nfloat whiteCompliment( in float a ) { return saturate( 1.0 - a ); }\nvec2 whiteCompliment( in vec2 a ) { return saturate( vec2(1.0) - a ); }\nvec3 whiteCompliment( in vec3 a ) { return saturate( vec3(1.0) - a ); }\nvec4 whiteCompliment( in vec4 a ) { return saturate( vec4(1.0) - a ); }\nvec3 transformDirection( in vec3 normal, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( normal, 0.0 ) ).xyz );\n}\n// http://en.wikibooks.org/wiki/GLSL_Programming/Applying_Matrix_Transformations\nvec3 inverseTransformDirection( in vec3 normal, in mat4 matrix ) {\n\treturn normalize( ( vec4( normal, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal) {\n\tfloat distance = dot( planeNormal, point-pointOnPlane );\n\treturn point - distance * planeNormal;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn pointOnLine + lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) );\n}\nfloat calcLightAttenuation( float lightDistance, float cutoffDistance, float decayExponent ) {\n\tif ( decayExponent > 0.0 ) {\n\t return pow( saturate( 1.0 - lightDistance / cutoffDistance ), decayExponent );\n\t}\n\treturn 1.0;\n}\n\nvec3 inputToLinear( in vec3 a ) {\n#ifdef GAMMA_INPUT\n\treturn pow( a, vec3( float( GAMMA_FACTOR ) ) );\n#else\n\treturn a;\n#endif\n}\nvec3 linearToOutput( in vec3 a ) {\n#ifdef GAMMA_OUTPUT\n\treturn pow( a, vec3( 1.0 / float( GAMMA_FACTOR ) ) );\n#else\n\treturn a;\n#endif\n}\n'), + (Jt.ShaderChunk.alphatest_fragment = + '#ifdef ALPHATEST\n\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n\n#endif\n'), + (Jt.ShaderChunk.lights_lambert_vertex = + 'vLightFront = vec3( 0.0 );\n\n#ifdef DOUBLE_SIDED\n\n\tvLightBack = vec3( 0.0 );\n\n#endif\n\ntransformedNormal = normalize( transformedNormal );\n\n#if MAX_DIR_LIGHTS > 0\n\nfor( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {\n\n\tvec3 dirVector = transformDirection( directionalLightDirection[ i ], viewMatrix );\n\n\tfloat dotProduct = dot( transformedNormal, dirVector );\n\tvec3 directionalLightWeighting = vec3( max( dotProduct, 0.0 ) );\n\n\t#ifdef DOUBLE_SIDED\n\n\t\tvec3 directionalLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n\n\t\t#ifdef WRAP_AROUND\n\n\t\t\tvec3 directionalLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n\n\t\t#endif\n\n\t#endif\n\n\t#ifdef WRAP_AROUND\n\n\t\tvec3 directionalLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\n\t\tdirectionalLightWeighting = mix( directionalLightWeighting, directionalLightWeightingHalf, wrapRGB );\n\n\t\t#ifdef DOUBLE_SIDED\n\n\t\t\tdirectionalLightWeightingBack = mix( directionalLightWeightingBack, directionalLightWeightingHalfBack, wrapRGB );\n\n\t\t#endif\n\n\t#endif\n\n\tvLightFront += directionalLightColor[ i ] * directionalLightWeighting;\n\n\t#ifdef DOUBLE_SIDED\n\n\t\tvLightBack += directionalLightColor[ i ] * directionalLightWeightingBack;\n\n\t#endif\n\n}\n\n#endif\n\n#if MAX_POINT_LIGHTS > 0\n\n\tfor( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\n\n\t\tvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\n\t\tvec3 lVector = lPosition.xyz - mvPosition.xyz;\n\n\t\tfloat attenuation = calcLightAttenuation( length( lVector ), pointLightDistance[ i ], pointLightDecay[ i ] );\n\n\t\tlVector = normalize( lVector );\n\t\tfloat dotProduct = dot( transformedNormal, lVector );\n\n\t\tvec3 pointLightWeighting = vec3( max( dotProduct, 0.0 ) );\n\n\t\t#ifdef DOUBLE_SIDED\n\n\t\t\tvec3 pointLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n\n\t\t\t#ifdef WRAP_AROUND\n\n\t\t\t\tvec3 pointLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n\n\t\t\t#endif\n\n\t\t#endif\n\n\t\t#ifdef WRAP_AROUND\n\n\t\t\tvec3 pointLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\n\t\t\tpointLightWeighting = mix( pointLightWeighting, pointLightWeightingHalf, wrapRGB );\n\n\t\t\t#ifdef DOUBLE_SIDED\n\n\t\t\t\tpointLightWeightingBack = mix( pointLightWeightingBack, pointLightWeightingHalfBack, wrapRGB );\n\n\t\t\t#endif\n\n\t\t#endif\n\n\t\tvLightFront += pointLightColor[ i ] * pointLightWeighting * attenuation;\n\n\t\t#ifdef DOUBLE_SIDED\n\n\t\t\tvLightBack += pointLightColor[ i ] * pointLightWeightingBack * attenuation;\n\n\t\t#endif\n\n\t}\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0\n\n\tfor( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {\n\n\t\tvec4 lPosition = viewMatrix * vec4( spotLightPosition[ i ], 1.0 );\n\t\tvec3 lVector = lPosition.xyz - mvPosition.xyz;\n\n\t\tfloat spotEffect = dot( spotLightDirection[ i ], normalize( spotLightPosition[ i ] - worldPosition.xyz ) );\n\n\t\tif ( spotEffect > spotLightAngleCos[ i ] ) {\n\n\t\t\tspotEffect = max( pow( max( spotEffect, 0.0 ), spotLightExponent[ i ] ), 0.0 );\n\n\t\t\tfloat attenuation = calcLightAttenuation( length( lVector ), spotLightDistance[ i ], spotLightDecay[ i ] );\n\n\t\t\tlVector = normalize( lVector );\n\n\t\t\tfloat dotProduct = dot( transformedNormal, lVector );\n\t\t\tvec3 spotLightWeighting = vec3( max( dotProduct, 0.0 ) );\n\n\t\t\t#ifdef DOUBLE_SIDED\n\n\t\t\t\tvec3 spotLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n\n\t\t\t\t#ifdef WRAP_AROUND\n\n\t\t\t\t\tvec3 spotLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n\n\t\t\t\t#endif\n\n\t\t\t#endif\n\n\t\t\t#ifdef WRAP_AROUND\n\n\t\t\t\tvec3 spotLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\n\t\t\t\tspotLightWeighting = mix( spotLightWeighting, spotLightWeightingHalf, wrapRGB );\n\n\t\t\t\t#ifdef DOUBLE_SIDED\n\n\t\t\t\t\tspotLightWeightingBack = mix( spotLightWeightingBack, spotLightWeightingHalfBack, wrapRGB );\n\n\t\t\t\t#endif\n\n\t\t\t#endif\n\n\t\t\tvLightFront += spotLightColor[ i ] * spotLightWeighting * attenuation * spotEffect;\n\n\t\t\t#ifdef DOUBLE_SIDED\n\n\t\t\t\tvLightBack += spotLightColor[ i ] * spotLightWeightingBack * attenuation * spotEffect;\n\n\t\t\t#endif\n\n\t\t}\n\n\t}\n\n#endif\n\n#if MAX_HEMI_LIGHTS > 0\n\n\tfor( int i = 0; i < MAX_HEMI_LIGHTS; i ++ ) {\n\n\t\tvec3 lVector = transformDirection( hemisphereLightDirection[ i ], viewMatrix );\n\n\t\tfloat dotProduct = dot( transformedNormal, lVector );\n\n\t\tfloat hemiDiffuseWeight = 0.5 * dotProduct + 0.5;\n\t\tfloat hemiDiffuseWeightBack = -0.5 * dotProduct + 0.5;\n\n\t\tvLightFront += mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeight );\n\n\t\t#ifdef DOUBLE_SIDED\n\n\t\t\tvLightBack += mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeightBack );\n\n\t\t#endif\n\n\t}\n\n#endif\n\nvLightFront += ambientLightColor;\n\n#ifdef DOUBLE_SIDED\n\n\tvLightBack += ambientLightColor;\n\n#endif\n'), + (Jt.ShaderChunk.map_particle_pars_fragment = + '#ifdef USE_MAP\n\n\tuniform vec4 offsetRepeat;\n\tuniform sampler2D map;\n\n#endif\n'), + (Jt.ShaderChunk.default_vertex = + '#ifdef USE_SKINNING\n\n\tvec4 mvPosition = modelViewMatrix * skinned;\n\n#elif defined( USE_MORPHTARGETS )\n\n\tvec4 mvPosition = modelViewMatrix * vec4( morphed, 1.0 );\n\n#else\n\n\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\n#endif\n\ngl_Position = projectionMatrix * mvPosition;\n'), + (Jt.ShaderChunk.map_pars_fragment = + '#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP )\n\n\tvarying vec2 vUv;\n\n#endif\n\n#ifdef USE_MAP\n\n\tuniform sampler2D map;\n\n#endif'), + (Jt.ShaderChunk.skinnormal_vertex = + '#ifdef USE_SKINNING\n\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\n\t#ifdef USE_MORPHNORMALS\n\n\tvec4 skinnedNormal = skinMatrix * vec4( morphedNormal, 0.0 );\n\n\t#else\n\n\tvec4 skinnedNormal = skinMatrix * vec4( normal, 0.0 );\n\n\t#endif\n\n#endif\n'), + (Jt.ShaderChunk.logdepthbuf_pars_vertex = + '#ifdef USE_LOGDEPTHBUF\n\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\n\t\tvarying float vFragDepth;\n\n\t#endif\n\n\tuniform float logDepthBufFC;\n\n#endif'), + (Jt.ShaderChunk.lightmap_pars_vertex = + '#ifdef USE_LIGHTMAP\n\n\tvarying vec2 vUv2;\n\n#endif'), + (Jt.ShaderChunk.lights_phong_fragment = + '#ifndef FLAT_SHADED\n\n\tvec3 normal = normalize( vNormal );\n\n\t#ifdef DOUBLE_SIDED\n\n\t\tnormal = normal * ( -1.0 + 2.0 * float( gl_FrontFacing ) );\n\n\t#endif\n\n#else\n\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n\n#endif\n\nvec3 viewPosition = normalize( vViewPosition );\n\n#ifdef USE_NORMALMAP\n\n\tnormal = perturbNormal2Arb( -vViewPosition, normal );\n\n#elif defined( USE_BUMPMAP )\n\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n\n#endif\n\nvec3 totalDiffuseLight = vec3( 0.0 );\nvec3 totalSpecularLight = vec3( 0.0 );\n\n#if MAX_POINT_LIGHTS > 0\n\n\tfor ( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\n\n\t\tvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\n\t\tvec3 lVector = lPosition.xyz + vViewPosition.xyz;\n\n\t\tfloat attenuation = calcLightAttenuation( length( lVector ), pointLightDistance[ i ], pointLightDecay[ i ] );\n\n\t\tlVector = normalize( lVector );\n\n\t\t// diffuse\n\n\t\tfloat dotProduct = dot( normal, lVector );\n\n\t\t#ifdef WRAP_AROUND\n\n\t\t\tfloat pointDiffuseWeightFull = max( dotProduct, 0.0 );\n\t\t\tfloat pointDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\n\n\t\t\tvec3 pointDiffuseWeight = mix( vec3( pointDiffuseWeightFull ), vec3( pointDiffuseWeightHalf ), wrapRGB );\n\n\t\t#else\n\n\t\t\tfloat pointDiffuseWeight = max( dotProduct, 0.0 );\n\n\t\t#endif\n\n\t\ttotalDiffuseLight += pointLightColor[ i ] * pointDiffuseWeight * attenuation;\n\n\t\t\t\t// specular\n\n\t\tvec3 pointHalfVector = normalize( lVector + viewPosition );\n\t\tfloat pointDotNormalHalf = max( dot( normal, pointHalfVector ), 0.0 );\n\t\tfloat pointSpecularWeight = specularStrength * max( pow( pointDotNormalHalf, shininess ), 0.0 );\n\n\t\tfloat specularNormalization = ( shininess + 2.0 ) / 8.0;\n\n\t\tvec3 schlick = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVector, pointHalfVector ), 0.0 ), 5.0 );\n\t\ttotalSpecularLight += schlick * pointLightColor[ i ] * pointSpecularWeight * pointDiffuseWeight * attenuation * specularNormalization;\n\n\t}\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0\n\n\tfor ( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {\n\n\t\tvec4 lPosition = viewMatrix * vec4( spotLightPosition[ i ], 1.0 );\n\t\tvec3 lVector = lPosition.xyz + vViewPosition.xyz;\n\n\t\tfloat attenuation = calcLightAttenuation( length( lVector ), spotLightDistance[ i ], spotLightDecay[ i ] );\n\n\t\tlVector = normalize( lVector );\n\n\t\tfloat spotEffect = dot( spotLightDirection[ i ], normalize( spotLightPosition[ i ] - vWorldPosition ) );\n\n\t\tif ( spotEffect > spotLightAngleCos[ i ] ) {\n\n\t\t\tspotEffect = max( pow( max( spotEffect, 0.0 ), spotLightExponent[ i ] ), 0.0 );\n\n\t\t\t// diffuse\n\n\t\t\tfloat dotProduct = dot( normal, lVector );\n\n\t\t\t#ifdef WRAP_AROUND\n\n\t\t\t\tfloat spotDiffuseWeightFull = max( dotProduct, 0.0 );\n\t\t\t\tfloat spotDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\n\n\t\t\t\tvec3 spotDiffuseWeight = mix( vec3( spotDiffuseWeightFull ), vec3( spotDiffuseWeightHalf ), wrapRGB );\n\n\t\t\t#else\n\n\t\t\t\tfloat spotDiffuseWeight = max( dotProduct, 0.0 );\n\n\t\t\t#endif\n\n\t\t\ttotalDiffuseLight += spotLightColor[ i ] * spotDiffuseWeight * attenuation * spotEffect;\n\n\t\t\t// specular\n\n\t\t\tvec3 spotHalfVector = normalize( lVector + viewPosition );\n\t\t\tfloat spotDotNormalHalf = max( dot( normal, spotHalfVector ), 0.0 );\n\t\t\tfloat spotSpecularWeight = specularStrength * max( pow( spotDotNormalHalf, shininess ), 0.0 );\n\n\t\t\tfloat specularNormalization = ( shininess + 2.0 ) / 8.0;\n\n\t\t\tvec3 schlick = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVector, spotHalfVector ), 0.0 ), 5.0 );\n\t\t\ttotalSpecularLight += schlick * spotLightColor[ i ] * spotSpecularWeight * spotDiffuseWeight * attenuation * specularNormalization * spotEffect;\n\n\t\t}\n\n\t}\n\n#endif\n\n#if MAX_DIR_LIGHTS > 0\n\n\tfor( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {\n\n\t\tvec3 dirVector = transformDirection( directionalLightDirection[ i ], viewMatrix );\n\n\t\t// diffuse\n\n\t\tfloat dotProduct = dot( normal, dirVector );\n\n\t\t#ifdef WRAP_AROUND\n\n\t\t\tfloat dirDiffuseWeightFull = max( dotProduct, 0.0 );\n\t\t\tfloat dirDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\n\n\t\t\tvec3 dirDiffuseWeight = mix( vec3( dirDiffuseWeightFull ), vec3( dirDiffuseWeightHalf ), wrapRGB );\n\n\t\t#else\n\n\t\t\tfloat dirDiffuseWeight = max( dotProduct, 0.0 );\n\n\t\t#endif\n\n\t\ttotalDiffuseLight += directionalLightColor[ i ] * dirDiffuseWeight;\n\n\t\t// specular\n\n\t\tvec3 dirHalfVector = normalize( dirVector + viewPosition );\n\t\tfloat dirDotNormalHalf = max( dot( normal, dirHalfVector ), 0.0 );\n\t\tfloat dirSpecularWeight = specularStrength * max( pow( dirDotNormalHalf, shininess ), 0.0 );\n\n\t\t/*\n\t\t// fresnel term from skin shader\n\t\tconst float F0 = 0.128;\n\n\t\tfloat base = 1.0 - dot( viewPosition, dirHalfVector );\n\t\tfloat exponential = pow( base, 5.0 );\n\n\t\tfloat fresnel = exponential + F0 * ( 1.0 - exponential );\n\t\t*/\n\n\t\t/*\n\t\t// fresnel term from fresnel shader\n\t\tconst float mFresnelBias = 0.08;\n\t\tconst float mFresnelScale = 0.3;\n\t\tconst float mFresnelPower = 5.0;\n\n\t\tfloat fresnel = mFresnelBias + mFresnelScale * pow( 1.0 + dot( normalize( -viewPosition ), normal ), mFresnelPower );\n\t\t*/\n\n\t\tfloat specularNormalization = ( shininess + 2.0 ) / 8.0;\n\n\t\t// \t\tdirSpecular += specular * directionalLightColor[ i ] * dirSpecularWeight * dirDiffuseWeight * specularNormalization * fresnel;\n\n\t\tvec3 schlick = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( dirVector, dirHalfVector ), 0.0 ), 5.0 );\n\t\ttotalSpecularLight += schlick * directionalLightColor[ i ] * dirSpecularWeight * dirDiffuseWeight * specularNormalization;\n\n\n\t}\n\n#endif\n\n#if MAX_HEMI_LIGHTS > 0\n\n\tfor( int i = 0; i < MAX_HEMI_LIGHTS; i ++ ) {\n\n\t\tvec3 lVector = transformDirection( hemisphereLightDirection[ i ], viewMatrix );\n\n\t\t// diffuse\n\n\t\tfloat dotProduct = dot( normal, lVector );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotProduct + 0.5;\n\n\t\tvec3 hemiColor = mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeight );\n\n\t\ttotalDiffuseLight += hemiColor;\n\n\t\t// specular (sky light)\n\n\t\tvec3 hemiHalfVectorSky = normalize( lVector + viewPosition );\n\t\tfloat hemiDotNormalHalfSky = 0.5 * dot( normal, hemiHalfVectorSky ) + 0.5;\n\t\tfloat hemiSpecularWeightSky = specularStrength * max( pow( max( hemiDotNormalHalfSky, 0.0 ), shininess ), 0.0 );\n\n\t\t// specular (ground light)\n\n\t\tvec3 lVectorGround = -lVector;\n\n\t\tvec3 hemiHalfVectorGround = normalize( lVectorGround + viewPosition );\n\t\tfloat hemiDotNormalHalfGround = 0.5 * dot( normal, hemiHalfVectorGround ) + 0.5;\n\t\tfloat hemiSpecularWeightGround = specularStrength * max( pow( max( hemiDotNormalHalfGround, 0.0 ), shininess ), 0.0 );\n\n\t\tfloat dotProductGround = dot( normal, lVectorGround );\n\n\t\tfloat specularNormalization = ( shininess + 2.0 ) / 8.0;\n\n\t\tvec3 schlickSky = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVector, hemiHalfVectorSky ), 0.0 ), 5.0 );\n\t\tvec3 schlickGround = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVectorGround, hemiHalfVectorGround ), 0.0 ), 5.0 );\n\t\ttotalSpecularLight += hemiColor * specularNormalization * ( schlickSky * hemiSpecularWeightSky * max( dotProduct, 0.0 ) + schlickGround * hemiSpecularWeightGround * max( dotProductGround, 0.0 ) );\n\n\t}\n\n#endif\n\n#ifdef METAL\n\n\toutgoingLight += diffuseColor.rgb * ( totalDiffuseLight + ambientLightColor ) * specular + totalSpecularLight + emissive;\n\n#else\n\n\toutgoingLight += diffuseColor.rgb * ( totalDiffuseLight + ambientLightColor ) + totalSpecularLight + emissive;\n\n#endif\n'), + (Jt.ShaderChunk.fog_pars_fragment = + '#ifdef USE_FOG\n\n\tuniform vec3 fogColor;\n\n\t#ifdef FOG_EXP2\n\n\t\tuniform float fogDensity;\n\n\t#else\n\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n\n#endif'), + (Jt.ShaderChunk.morphnormal_vertex = + '#ifdef USE_MORPHNORMALS\n\n\tvec3 morphedNormal = vec3( 0.0 );\n\n\tmorphedNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\n\tmorphedNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\n\tmorphedNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\n\tmorphedNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\n\n\tmorphedNormal += normal;\n\n#endif'), + (Jt.ShaderChunk.envmap_pars_fragment = + '#ifdef USE_ENVMAP\n\n\tuniform float reflectivity;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\tuniform float flipEnvMap;\n\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\n\t\tuniform float refractionRatio;\n\n\t#else\n\n\t\tvarying vec3 vReflect;\n\n\t#endif\n\n#endif\n'), + (Jt.ShaderChunk.logdepthbuf_fragment = + '#if defined(USE_LOGDEPTHBUF) && defined(USE_LOGDEPTHBUF_EXT)\n\n\tgl_FragDepthEXT = log2(vFragDepth) * logDepthBufFC * 0.5;\n\n#endif'), + (Jt.ShaderChunk.normalmap_pars_fragment = + '#ifdef USE_NORMALMAP\n\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n\n\t// Per-Pixel Tangent Space Normal Mapping\n\t// http://hacksoflife.blogspot.ch/2009/11/per-pixel-tangent-space-normal-mapping.html\n\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\n\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\n\t\tvec3 S = normalize( q0 * st1.t - q1 * st0.t );\n\t\tvec3 T = normalize( -q0 * st1.s + q1 * st0.s );\n\t\tvec3 N = normalize( surf_norm );\n\n\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\tmapN.xy = normalScale * mapN.xy;\n\t\tmat3 tsn = mat3( S, T, N );\n\t\treturn normalize( tsn * mapN );\n\n\t}\n\n#endif\n'), + (Jt.ShaderChunk.lights_phong_pars_vertex = + '#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP ) || defined( USE_ENVMAP )\n\n\tvarying vec3 vWorldPosition;\n\n#endif\n'), + (Jt.ShaderChunk.lightmap_pars_fragment = + '#ifdef USE_LIGHTMAP\n\n\tvarying vec2 vUv2;\n\tuniform sampler2D lightMap;\n\n#endif'), + (Jt.ShaderChunk.shadowmap_vertex = + '#ifdef USE_SHADOWMAP\n\n\tfor( int i = 0; i < MAX_SHADOWS; i ++ ) {\n\n\t\tvShadowCoord[ i ] = shadowMatrix[ i ] * worldPosition;\n\n\t}\n\n#endif'), + (Jt.ShaderChunk.lights_phong_vertex = + '#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP ) || defined( USE_ENVMAP )\n\n\tvWorldPosition = worldPosition.xyz;\n\n#endif'), + (Jt.ShaderChunk.map_fragment = + '#ifdef USE_MAP\n\n\tvec4 texelColor = texture2D( map, vUv );\n\n\ttexelColor.xyz = inputToLinear( texelColor.xyz );\n\n\tdiffuseColor *= texelColor;\n\n#endif'), + (Jt.ShaderChunk.lightmap_vertex = + '#ifdef USE_LIGHTMAP\n\n\tvUv2 = uv2;\n\n#endif'), + (Jt.ShaderChunk.map_particle_fragment = + '#ifdef USE_MAP\n\n\tdiffuseColor *= texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) * offsetRepeat.zw + offsetRepeat.xy );\n\n#endif\n'), + (Jt.ShaderChunk.color_pars_fragment = + '#ifdef USE_COLOR\n\n\tvarying vec3 vColor;\n\n#endif\n'), + (Jt.ShaderChunk.color_vertex = + '#ifdef USE_COLOR\n\n\tvColor.xyz = inputToLinear( color.xyz );\n\n#endif'), + (Jt.ShaderChunk.skinning_vertex = + '#ifdef USE_SKINNING\n\n\t#ifdef USE_MORPHTARGETS\n\n\tvec4 skinVertex = bindMatrix * vec4( morphed, 1.0 );\n\n\t#else\n\n\tvec4 skinVertex = bindMatrix * vec4( position, 1.0 );\n\n\t#endif\n\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\tskinned = bindMatrixInverse * skinned;\n\n#endif\n'), + (Jt.ShaderChunk.envmap_pars_vertex = + '#if defined( USE_ENVMAP ) && ! defined( USE_BUMPMAP ) && ! defined( USE_NORMALMAP ) && ! defined( PHONG )\n\n\tvarying vec3 vReflect;\n\n\tuniform float refractionRatio;\n\n#endif\n'), + (Jt.ShaderChunk.linear_to_gamma_fragment = + '\n\toutgoingLight = linearToOutput( outgoingLight );\n'), + (Jt.ShaderChunk.color_pars_vertex = + '#ifdef USE_COLOR\n\n\tvarying vec3 vColor;\n\n#endif'), + (Jt.ShaderChunk.lights_lambert_pars_vertex = + 'uniform vec3 ambientLightColor;\n\n#if MAX_DIR_LIGHTS > 0\n\n\tuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\n\tuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n\n#endif\n\n#if MAX_HEMI_LIGHTS > 0\n\n\tuniform vec3 hemisphereLightSkyColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightGroundColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightDirection[ MAX_HEMI_LIGHTS ];\n\n#endif\n\n#if MAX_POINT_LIGHTS > 0\n\n\tuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\n\tuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\n\tuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n\tuniform float pointLightDecay[ MAX_POINT_LIGHTS ];\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0\n\n\tuniform vec3 spotLightColor[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightPosition[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightDirection[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightDistance[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightAngleCos[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightExponent[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightDecay[ MAX_SPOT_LIGHTS ];\n\n#endif\n\n#ifdef WRAP_AROUND\n\n\tuniform vec3 wrapRGB;\n\n#endif\n'), + (Jt.ShaderChunk.map_pars_vertex = + '#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP )\n\n\tvarying vec2 vUv;\n\tuniform vec4 offsetRepeat;\n\n#endif\n'), + (Jt.ShaderChunk.envmap_fragment = + '#ifdef USE_ENVMAP\n\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\n\t\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\n\n\t\t// Transforming Normal Vectors with the Inverse Transformation\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\n\t\t\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\n\n\t\t#else\n\n\t\t\tvec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\n\n\t\t#endif\n\n\t#else\n\n\t\tvec3 reflectVec = vReflect;\n\n\t#endif\n\n\t#ifdef DOUBLE_SIDED\n\t\tfloat flipNormal = ( -1.0 + 2.0 * float( gl_FrontFacing ) );\n\t#else\n\t\tfloat flipNormal = 1.0;\n\t#endif\n\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\tsampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );\n\t\tsampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\tvec3 reflectView = flipNormal * normalize((viewMatrix * vec4( reflectVec, 0.0 )).xyz + vec3(0.0,0.0,1.0));\n\t\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n\t#endif\n\n\tenvColor.xyz = inputToLinear( envColor.xyz );\n\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\n\t#endif\n\n#endif\n'), + (Jt.ShaderChunk.specularmap_pars_fragment = + '#ifdef USE_SPECULARMAP\n\n\tuniform sampler2D specularMap;\n\n#endif'), + (Jt.ShaderChunk.logdepthbuf_vertex = + '#ifdef USE_LOGDEPTHBUF\n\n\tgl_Position.z = log2(max( EPSILON, gl_Position.w + 1.0 )) * logDepthBufFC;\n\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\n#else\n\n\t\tgl_Position.z = (gl_Position.z - 1.0) * gl_Position.w;\n\n\t#endif\n\n#endif'), + (Jt.ShaderChunk.morphtarget_pars_vertex = + '#ifdef USE_MORPHTARGETS\n\n\t#ifndef USE_MORPHNORMALS\n\n\tuniform float morphTargetInfluences[ 8 ];\n\n\t#else\n\n\tuniform float morphTargetInfluences[ 4 ];\n\n\t#endif\n\n#endif'), + (Jt.ShaderChunk.specularmap_fragment = + 'float specularStrength;\n\n#ifdef USE_SPECULARMAP\n\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n\n#else\n\n\tspecularStrength = 1.0;\n\n#endif'), + (Jt.ShaderChunk.fog_fragment = + '#ifdef USE_FOG\n\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\n\t\tfloat depth = gl_FragDepthEXT / gl_FragCoord.w;\n\n\t#else\n\n\t\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\n\t#endif\n\n\t#ifdef FOG_EXP2\n\n\t\tfloat fogFactor = exp2( - square( fogDensity ) * square( depth ) * LOG2 );\n\t\tfogFactor = whiteCompliment( fogFactor );\n\n\t#else\n\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, depth );\n\n\t#endif\n\t\n\toutgoingLight = mix( outgoingLight, fogColor, fogFactor );\n\n#endif'), + (Jt.ShaderChunk.bumpmap_pars_fragment = + '#ifdef USE_BUMPMAP\n\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\n\t// Derivative maps - bump mapping unparametrized surfaces by Morten Mikkelsen\n\t// http://mmikkelsen3d.blogspot.sk/2011/07/derivative-maps.html\n\n\t// Evaluate the derivative of the height w.r.t. screen-space using forward differencing (listing 2)\n\n\tvec2 dHdxy_fwd() {\n\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\n\t\treturn vec2( dBx, dBy );\n\n\t}\n\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\n\t\tvec3 vSigmaX = dFdx( surf_pos );\n\t\tvec3 vSigmaY = dFdy( surf_pos );\n\t\tvec3 vN = surf_norm;\t\t// normalized\n\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\n\t}\n\n#endif\n'), + (Jt.ShaderChunk.defaultnormal_vertex = + '#ifdef USE_SKINNING\n\n\tvec3 objectNormal = skinnedNormal.xyz;\n\n#elif defined( USE_MORPHNORMALS )\n\n\tvec3 objectNormal = morphedNormal;\n\n#else\n\n\tvec3 objectNormal = normal;\n\n#endif\n\n#ifdef FLIP_SIDED\n\n\tobjectNormal = -objectNormal;\n\n#endif\n\nvec3 transformedNormal = normalMatrix * objectNormal;\n'), + (Jt.ShaderChunk.lights_phong_pars_fragment = + 'uniform vec3 ambientLightColor;\n\n#if MAX_DIR_LIGHTS > 0\n\n\tuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\n\tuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n\n#endif\n\n#if MAX_HEMI_LIGHTS > 0\n\n\tuniform vec3 hemisphereLightSkyColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightGroundColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightDirection[ MAX_HEMI_LIGHTS ];\n\n#endif\n\n#if MAX_POINT_LIGHTS > 0\n\n\tuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\n\n\tuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\n\tuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n\tuniform float pointLightDecay[ MAX_POINT_LIGHTS ];\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0\n\n\tuniform vec3 spotLightColor[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightPosition[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightDirection[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightAngleCos[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightExponent[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightDistance[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightDecay[ MAX_SPOT_LIGHTS ];\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP ) || defined( USE_ENVMAP )\n\n\tvarying vec3 vWorldPosition;\n\n#endif\n\n#ifdef WRAP_AROUND\n\n\tuniform vec3 wrapRGB;\n\n#endif\n\nvarying vec3 vViewPosition;\n\n#ifndef FLAT_SHADED\n\n\tvarying vec3 vNormal;\n\n#endif\n'), + (Jt.ShaderChunk.skinbase_vertex = + '#ifdef USE_SKINNING\n\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n\n#endif'), + (Jt.ShaderChunk.map_vertex = + '#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP )\n\n\tvUv = uv * offsetRepeat.zw + offsetRepeat.xy;\n\n#endif'), + (Jt.ShaderChunk.lightmap_fragment = + '#ifdef USE_LIGHTMAP\n\n\toutgoingLight *= diffuseColor.xyz * texture2D( lightMap, vUv2 ).xyz;\n\n#endif'), + (Jt.ShaderChunk.shadowmap_pars_vertex = + '#ifdef USE_SHADOWMAP\n\n\tvarying vec4 vShadowCoord[ MAX_SHADOWS ];\n\tuniform mat4 shadowMatrix[ MAX_SHADOWS ];\n\n#endif'), + (Jt.ShaderChunk.color_fragment = + '#ifdef USE_COLOR\n\n\tdiffuseColor.rgb *= vColor;\n\n#endif'), + (Jt.ShaderChunk.morphtarget_vertex = + '#ifdef USE_MORPHTARGETS\n\n\tvec3 morphed = vec3( 0.0 );\n\tmorphed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\n\tmorphed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\n\tmorphed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\n\tmorphed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n\n\t#ifndef USE_MORPHNORMALS\n\n\tmorphed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\n\tmorphed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\n\tmorphed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\n\tmorphed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n\n\t#endif\n\n\tmorphed += position;\n\n#endif'), + (Jt.ShaderChunk.envmap_vertex = + '#if defined( USE_ENVMAP ) && ! defined( USE_BUMPMAP ) && ! defined( USE_NORMALMAP ) && ! defined( PHONG )\n\n\tvec3 worldNormal = transformDirection( objectNormal, modelMatrix );\n\n\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\n\t#ifdef ENVMAP_MODE_REFLECTION\n\n\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\n\t#else\n\n\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\n\t#endif\n\n#endif\n'), + (Jt.ShaderChunk.shadowmap_fragment = + "#ifdef USE_SHADOWMAP\n\n\t#ifdef SHADOWMAP_DEBUG\n\n\t\tvec3 frustumColors[3];\n\t\tfrustumColors[0] = vec3( 1.0, 0.5, 0.0 );\n\t\tfrustumColors[1] = vec3( 0.0, 1.0, 0.8 );\n\t\tfrustumColors[2] = vec3( 0.0, 0.5, 1.0 );\n\n\t#endif\n\n\t#ifdef SHADOWMAP_CASCADE\n\n\t\tint inFrustumCount = 0;\n\n\t#endif\n\n\tfloat fDepth;\n\tvec3 shadowColor = vec3( 1.0 );\n\n\tfor( int i = 0; i < MAX_SHADOWS; i ++ ) {\n\n\t\tvec3 shadowCoord = vShadowCoord[ i ].xyz / vShadowCoord[ i ].w;\n\n\t\t\t\t// if ( something && something ) breaks ATI OpenGL shader compiler\n\t\t\t\t// if ( all( something, something ) ) using this instead\n\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\n\t\t\t\t// don't shadow pixels outside of light frustum\n\t\t\t\t// use just first frustum (for cascades)\n\t\t\t\t// don't shadow pixels behind far plane of light frustum\n\n\t\t#ifdef SHADOWMAP_CASCADE\n\n\t\t\tinFrustumCount += int( inFrustum );\n\t\t\tbvec3 frustumTestVec = bvec3( inFrustum, inFrustumCount == 1, shadowCoord.z <= 1.0 );\n\n\t\t#else\n\n\t\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\n\t\t#endif\n\n\t\tbool frustumTest = all( frustumTestVec );\n\n\t\tif ( frustumTest ) {\n\n\t\t\tshadowCoord.z += shadowBias[ i ];\n\n\t\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\n\t\t\t\t\t\t// Percentage-close filtering\n\t\t\t\t\t\t// (9 pixel kernel)\n\t\t\t\t\t\t// http://fabiensanglard.net/shadowmappingPCF/\n\n\t\t\t\tfloat shadow = 0.0;\n\n\t\t/*\n\t\t\t\t\t\t// nested loops breaks shader compiler / validator on some ATI cards when using OpenGL\n\t\t\t\t\t\t// must enroll loop manually\n\n\t\t\t\tfor ( float y = -1.25; y <= 1.25; y += 1.25 )\n\t\t\t\t\tfor ( float x = -1.25; x <= 1.25; x += 1.25 ) {\n\n\t\t\t\t\t\tvec4 rgbaDepth = texture2D( shadowMap[ i ], vec2( x * xPixelOffset, y * yPixelOffset ) + shadowCoord.xy );\n\n\t\t\t\t\t\t\t\t// doesn't seem to produce any noticeable visual difference compared to simple texture2D lookup\n\t\t\t\t\t\t\t\t//vec4 rgbaDepth = texture2DProj( shadowMap[ i ], vec4( vShadowCoord[ i ].w * ( vec2( x * xPixelOffset, y * yPixelOffset ) + shadowCoord.xy ), 0.05, vShadowCoord[ i ].w ) );\n\n\t\t\t\t\t\tfloat fDepth = unpackDepth( rgbaDepth );\n\n\t\t\t\t\t\tif ( fDepth < shadowCoord.z )\n\t\t\t\t\t\t\tshadow += 1.0;\n\n\t\t\t\t}\n\n\t\t\t\tshadow /= 9.0;\n\n\t\t*/\n\n\t\t\t\tconst float shadowDelta = 1.0 / 9.0;\n\n\t\t\t\tfloat xPixelOffset = 1.0 / shadowMapSize[ i ].x;\n\t\t\t\tfloat yPixelOffset = 1.0 / shadowMapSize[ i ].y;\n\n\t\t\t\tfloat dx0 = -1.25 * xPixelOffset;\n\t\t\t\tfloat dy0 = -1.25 * yPixelOffset;\n\t\t\t\tfloat dx1 = 1.25 * xPixelOffset;\n\t\t\t\tfloat dy1 = 1.25 * yPixelOffset;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, 0.0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, 0.0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy1 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy1 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy1 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tshadowColor = shadowColor * vec3( ( 1.0 - shadowDarkness[ i ] * shadow ) );\n\n\t\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\n\t\t\t\t\t\t// Percentage-close filtering\n\t\t\t\t\t\t// (9 pixel kernel)\n\t\t\t\t\t\t// http://fabiensanglard.net/shadowmappingPCF/\n\n\t\t\t\tfloat shadow = 0.0;\n\n\t\t\t\tfloat xPixelOffset = 1.0 / shadowMapSize[ i ].x;\n\t\t\t\tfloat yPixelOffset = 1.0 / shadowMapSize[ i ].y;\n\n\t\t\t\tfloat dx0 = -1.0 * xPixelOffset;\n\t\t\t\tfloat dy0 = -1.0 * yPixelOffset;\n\t\t\t\tfloat dx1 = 1.0 * xPixelOffset;\n\t\t\t\tfloat dy1 = 1.0 * yPixelOffset;\n\n\t\t\t\tmat3 shadowKernel;\n\t\t\t\tmat3 depthKernel;\n\n\t\t\t\tdepthKernel[0][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy0 ) ) );\n\t\t\t\tdepthKernel[0][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, 0.0 ) ) );\n\t\t\t\tdepthKernel[0][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy1 ) ) );\n\t\t\t\tdepthKernel[1][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy0 ) ) );\n\t\t\t\tdepthKernel[1][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy ) );\n\t\t\t\tdepthKernel[1][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy1 ) ) );\n\t\t\t\tdepthKernel[2][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy0 ) ) );\n\t\t\t\tdepthKernel[2][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, 0.0 ) ) );\n\t\t\t\tdepthKernel[2][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy1 ) ) );\n\n\t\t\t\tvec3 shadowZ = vec3( shadowCoord.z );\n\t\t\t\tshadowKernel[0] = vec3(lessThan(depthKernel[0], shadowZ ));\n\t\t\t\tshadowKernel[0] *= vec3(0.25);\n\n\t\t\t\tshadowKernel[1] = vec3(lessThan(depthKernel[1], shadowZ ));\n\t\t\t\tshadowKernel[1] *= vec3(0.25);\n\n\t\t\t\tshadowKernel[2] = vec3(lessThan(depthKernel[2], shadowZ ));\n\t\t\t\tshadowKernel[2] *= vec3(0.25);\n\n\t\t\t\tvec2 fractionalCoord = 1.0 - fract( shadowCoord.xy * shadowMapSize[i].xy );\n\n\t\t\t\tshadowKernel[0] = mix( shadowKernel[1], shadowKernel[0], fractionalCoord.x );\n\t\t\t\tshadowKernel[1] = mix( shadowKernel[2], shadowKernel[1], fractionalCoord.x );\n\n\t\t\t\tvec4 shadowValues;\n\t\t\t\tshadowValues.x = mix( shadowKernel[0][1], shadowKernel[0][0], fractionalCoord.y );\n\t\t\t\tshadowValues.y = mix( shadowKernel[0][2], shadowKernel[0][1], fractionalCoord.y );\n\t\t\t\tshadowValues.z = mix( shadowKernel[1][1], shadowKernel[1][0], fractionalCoord.y );\n\t\t\t\tshadowValues.w = mix( shadowKernel[1][2], shadowKernel[1][1], fractionalCoord.y );\n\n\t\t\t\tshadow = dot( shadowValues, vec4( 1.0 ) );\n\n\t\t\t\tshadowColor = shadowColor * vec3( ( 1.0 - shadowDarkness[ i ] * shadow ) );\n\n\t\t\t#else\n\n\t\t\t\tvec4 rgbaDepth = texture2D( shadowMap[ i ], shadowCoord.xy );\n\t\t\t\tfloat fDepth = unpackDepth( rgbaDepth );\n\n\t\t\t\tif ( fDepth < shadowCoord.z )\n\n\t\t// spot with multiple shadows is darker\n\n\t\t\t\t\tshadowColor = shadowColor * vec3( 1.0 - shadowDarkness[ i ] );\n\n\t\t// spot with multiple shadows has the same color as single shadow spot\n\n\t\t// \t\t\t\t\tshadowColor = min( shadowColor, vec3( shadowDarkness[ i ] ) );\n\n\t\t\t#endif\n\n\t\t}\n\n\n\t\t#ifdef SHADOWMAP_DEBUG\n\n\t\t\t#ifdef SHADOWMAP_CASCADE\n\n\t\t\t\tif ( inFrustum && inFrustumCount == 1 ) outgoingLight *= frustumColors[ i ];\n\n\t\t\t#else\n\n\t\t\t\tif ( inFrustum ) outgoingLight *= frustumColors[ i ];\n\n\t\t\t#endif\n\n\t\t#endif\n\n\t}\n\n\t// NOTE: I am unsure if this is correct in linear space. -bhouston, Dec 29, 2014\n\tshadowColor = inputToLinear( shadowColor );\n\n\toutgoingLight = outgoingLight * shadowColor;\n\n#endif\n"), + (Jt.ShaderChunk.worldpos_vertex = + '#if defined( USE_ENVMAP ) || defined( PHONG ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP )\n\n\t#ifdef USE_SKINNING\n\n\t\tvec4 worldPosition = modelMatrix * skinned;\n\n\t#elif defined( USE_MORPHTARGETS )\n\n\t\tvec4 worldPosition = modelMatrix * vec4( morphed, 1.0 );\n\n\t#else\n\n\t\tvec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n\n\t#endif\n\n#endif\n'), + (Jt.ShaderChunk.shadowmap_pars_fragment = + '#ifdef USE_SHADOWMAP\n\n\tuniform sampler2D shadowMap[ MAX_SHADOWS ];\n\tuniform vec2 shadowMapSize[ MAX_SHADOWS ];\n\n\tuniform float shadowDarkness[ MAX_SHADOWS ];\n\tuniform float shadowBias[ MAX_SHADOWS ];\n\n\tvarying vec4 vShadowCoord[ MAX_SHADOWS ];\n\n\tfloat unpackDepth( const in vec4 rgba_depth ) {\n\n\t\tconst vec4 bit_shift = vec4( 1.0 / ( 256.0 * 256.0 * 256.0 ), 1.0 / ( 256.0 * 256.0 ), 1.0 / 256.0, 1.0 );\n\t\tfloat depth = dot( rgba_depth, bit_shift );\n\t\treturn depth;\n\n\t}\n\n#endif'), + (Jt.ShaderChunk.skinning_pars_vertex = + '#ifdef USE_SKINNING\n\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\n\t#ifdef BONE_TEXTURE\n\n\t\tuniform sampler2D boneTexture;\n\t\tuniform int boneTextureWidth;\n\t\tuniform int boneTextureHeight;\n\n\t\tmat4 getBoneMatrix( const in float i ) {\n\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureWidth ) );\n\t\t\tfloat y = floor( j / float( boneTextureWidth ) );\n\n\t\t\tfloat dx = 1.0 / float( boneTextureWidth );\n\t\t\tfloat dy = 1.0 / float( boneTextureHeight );\n\n\t\t\ty = dy * ( y + 0.5 );\n\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\n\t\t\treturn bone;\n\n\t\t}\n\n\t#else\n\n\t\tuniform mat4 boneGlobalMatrices[ MAX_BONES ];\n\n\t\tmat4 getBoneMatrix( const in float i ) {\n\n\t\t\tmat4 bone = boneGlobalMatrices[ int(i) ];\n\t\t\treturn bone;\n\n\t\t}\n\n\t#endif\n\n#endif\n'), + (Jt.ShaderChunk.logdepthbuf_pars_fragment = + '#ifdef USE_LOGDEPTHBUF\n\n\tuniform float logDepthBufFC;\n\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\n\t\t#extension GL_EXT_frag_depth : enable\n\t\tvarying float vFragDepth;\n\n\t#endif\n\n#endif'), + (Jt.ShaderChunk.alphamap_fragment = + '#ifdef USE_ALPHAMAP\n\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n\n#endif\n'), + (Jt.ShaderChunk.alphamap_pars_fragment = + '#ifdef USE_ALPHAMAP\n\n\tuniform sampler2D alphaMap;\n\n#endif\n'), + (Jt.UniformsUtils = { + merge: function (t) { + for (var e = {}, n = 0; n < t.length; n++) { + var r, + i = this.clone(t[n]); + for (r in i) e[r] = i[r]; + } + return e; + }, + clone: function (t) { + var e, + n = {}; + for (e in t) + for (var r in ((n[e] = {}), t[e])) { + var i = t[e][r]; + i instanceof Jt.Color || + i instanceof Jt.Vector2 || + i instanceof Jt.Vector3 || + i instanceof Jt.Vector4 || + i instanceof Jt.Matrix4 || + i instanceof Jt.Texture + ? (n[e][r] = i.clone()) + : i instanceof Array + ? (n[e][r] = i.slice()) + : (n[e][r] = i); + } + return n; + }, + }), + (Jt.UniformsLib = { + common: { + diffuse: { type: 'c', value: new Jt.Color(15658734) }, + opacity: { type: 'f', value: 1 }, + map: { type: 't', value: null }, + offsetRepeat: { type: 'v4', value: new Jt.Vector4(0, 0, 1, 1) }, + lightMap: { type: 't', value: null }, + specularMap: { type: 't', value: null }, + alphaMap: { type: 't', value: null }, + envMap: { type: 't', value: null }, + flipEnvMap: { type: 'f', value: -1 }, + reflectivity: { type: 'f', value: 1 }, + refractionRatio: { type: 'f', value: 0.98 }, + morphTargetInfluences: { type: 'f', value: 0 }, + }, + bump: { + bumpMap: { type: 't', value: null }, + bumpScale: { type: 'f', value: 1 }, + }, + normalmap: { + normalMap: { type: 't', value: null }, + normalScale: { type: 'v2', value: new Jt.Vector2(1, 1) }, + }, + fog: { + fogDensity: { type: 'f', value: 25e-5 }, + fogNear: { type: 'f', value: 1 }, + fogFar: { type: 'f', value: 2e3 }, + fogColor: { type: 'c', value: new Jt.Color(16777215) }, + }, + lights: { + ambientLightColor: { type: 'fv', value: [] }, + directionalLightDirection: { type: 'fv', value: [] }, + directionalLightColor: { type: 'fv', value: [] }, + hemisphereLightDirection: { type: 'fv', value: [] }, + hemisphereLightSkyColor: { type: 'fv', value: [] }, + hemisphereLightGroundColor: { type: 'fv', value: [] }, + pointLightColor: { type: 'fv', value: [] }, + pointLightPosition: { type: 'fv', value: [] }, + pointLightDistance: { type: 'fv1', value: [] }, + pointLightDecay: { type: 'fv1', value: [] }, + spotLightColor: { type: 'fv', value: [] }, + spotLightPosition: { type: 'fv', value: [] }, + spotLightDirection: { type: 'fv', value: [] }, + spotLightDistance: { type: 'fv1', value: [] }, + spotLightAngleCos: { type: 'fv1', value: [] }, + spotLightExponent: { type: 'fv1', value: [] }, + spotLightDecay: { type: 'fv1', value: [] }, + }, + particle: { + psColor: { type: 'c', value: new Jt.Color(15658734) }, + opacity: { type: 'f', value: 1 }, + size: { type: 'f', value: 1 }, + scale: { type: 'f', value: 1 }, + map: { type: 't', value: null }, + offsetRepeat: { type: 'v4', value: new Jt.Vector4(0, 0, 1, 1) }, + fogDensity: { type: 'f', value: 25e-5 }, + fogNear: { type: 'f', value: 1 }, + fogFar: { type: 'f', value: 2e3 }, + fogColor: { type: 'c', value: new Jt.Color(16777215) }, + }, + shadowmap: { + shadowMap: { type: 'tv', value: [] }, + shadowMapSize: { type: 'v2v', value: [] }, + shadowBias: { type: 'fv1', value: [] }, + shadowDarkness: { type: 'fv1', value: [] }, + shadowMatrix: { type: 'm4v', value: [] }, + }, + }), + (Jt.ShaderLib = { + basic: { + uniforms: Jt.UniformsUtils.merge([ + Jt.UniformsLib.common, + Jt.UniformsLib.fog, + Jt.UniformsLib.shadowmap, + ]), + vertexShader: [ + Jt.ShaderChunk.common, + Jt.ShaderChunk.map_pars_vertex, + Jt.ShaderChunk.lightmap_pars_vertex, + Jt.ShaderChunk.envmap_pars_vertex, + Jt.ShaderChunk.color_pars_vertex, + Jt.ShaderChunk.morphtarget_pars_vertex, + Jt.ShaderChunk.skinning_pars_vertex, + Jt.ShaderChunk.shadowmap_pars_vertex, + Jt.ShaderChunk.logdepthbuf_pars_vertex, + 'void main() {', + Jt.ShaderChunk.map_vertex, + Jt.ShaderChunk.lightmap_vertex, + Jt.ShaderChunk.color_vertex, + Jt.ShaderChunk.skinbase_vertex, + '\t#ifdef USE_ENVMAP', + Jt.ShaderChunk.morphnormal_vertex, + Jt.ShaderChunk.skinnormal_vertex, + Jt.ShaderChunk.defaultnormal_vertex, + '\t#endif', + Jt.ShaderChunk.morphtarget_vertex, + Jt.ShaderChunk.skinning_vertex, + Jt.ShaderChunk.default_vertex, + Jt.ShaderChunk.logdepthbuf_vertex, + Jt.ShaderChunk.worldpos_vertex, + Jt.ShaderChunk.envmap_vertex, + Jt.ShaderChunk.shadowmap_vertex, + '}', + ].join('\n'), + fragmentShader: [ + 'uniform vec3 diffuse;', + 'uniform float opacity;', + Jt.ShaderChunk.common, + Jt.ShaderChunk.color_pars_fragment, + Jt.ShaderChunk.map_pars_fragment, + Jt.ShaderChunk.alphamap_pars_fragment, + Jt.ShaderChunk.lightmap_pars_fragment, + Jt.ShaderChunk.envmap_pars_fragment, + Jt.ShaderChunk.fog_pars_fragment, + Jt.ShaderChunk.shadowmap_pars_fragment, + Jt.ShaderChunk.specularmap_pars_fragment, + Jt.ShaderChunk.logdepthbuf_pars_fragment, + 'void main() {', + '\tvec3 outgoingLight = vec3( 0.0 );', + '\tvec4 diffuseColor = vec4( diffuse, opacity );', + Jt.ShaderChunk.logdepthbuf_fragment, + Jt.ShaderChunk.map_fragment, + Jt.ShaderChunk.color_fragment, + Jt.ShaderChunk.alphamap_fragment, + Jt.ShaderChunk.alphatest_fragment, + Jt.ShaderChunk.specularmap_fragment, + '\toutgoingLight = diffuseColor.rgb;', + Jt.ShaderChunk.lightmap_fragment, + Jt.ShaderChunk.envmap_fragment, + Jt.ShaderChunk.shadowmap_fragment, + Jt.ShaderChunk.linear_to_gamma_fragment, + Jt.ShaderChunk.fog_fragment, + '\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );', + '}', + ].join('\n'), + }, + lambert: { + uniforms: Jt.UniformsUtils.merge([ + Jt.UniformsLib.common, + Jt.UniformsLib.fog, + Jt.UniformsLib.lights, + Jt.UniformsLib.shadowmap, + { + emissive: { type: 'c', value: new Jt.Color(0) }, + wrapRGB: { type: 'v3', value: new Jt.Vector3(1, 1, 1) }, + }, + ]), + vertexShader: [ + '#define LAMBERT', + 'varying vec3 vLightFront;', + '#ifdef DOUBLE_SIDED', + '\tvarying vec3 vLightBack;', + '#endif', + Jt.ShaderChunk.common, + Jt.ShaderChunk.map_pars_vertex, + Jt.ShaderChunk.lightmap_pars_vertex, + Jt.ShaderChunk.envmap_pars_vertex, + Jt.ShaderChunk.lights_lambert_pars_vertex, + Jt.ShaderChunk.color_pars_vertex, + Jt.ShaderChunk.morphtarget_pars_vertex, + Jt.ShaderChunk.skinning_pars_vertex, + Jt.ShaderChunk.shadowmap_pars_vertex, + Jt.ShaderChunk.logdepthbuf_pars_vertex, + 'void main() {', + Jt.ShaderChunk.map_vertex, + Jt.ShaderChunk.lightmap_vertex, + Jt.ShaderChunk.color_vertex, + Jt.ShaderChunk.morphnormal_vertex, + Jt.ShaderChunk.skinbase_vertex, + Jt.ShaderChunk.skinnormal_vertex, + Jt.ShaderChunk.defaultnormal_vertex, + Jt.ShaderChunk.morphtarget_vertex, + Jt.ShaderChunk.skinning_vertex, + Jt.ShaderChunk.default_vertex, + Jt.ShaderChunk.logdepthbuf_vertex, + Jt.ShaderChunk.worldpos_vertex, + Jt.ShaderChunk.envmap_vertex, + Jt.ShaderChunk.lights_lambert_vertex, + Jt.ShaderChunk.shadowmap_vertex, + '}', + ].join('\n'), + fragmentShader: [ + 'uniform vec3 diffuse;', + 'uniform vec3 emissive;', + 'uniform float opacity;', + 'varying vec3 vLightFront;', + '#ifdef DOUBLE_SIDED', + '\tvarying vec3 vLightBack;', + '#endif', + Jt.ShaderChunk.common, + Jt.ShaderChunk.color_pars_fragment, + Jt.ShaderChunk.map_pars_fragment, + Jt.ShaderChunk.alphamap_pars_fragment, + Jt.ShaderChunk.lightmap_pars_fragment, + Jt.ShaderChunk.envmap_pars_fragment, + Jt.ShaderChunk.fog_pars_fragment, + Jt.ShaderChunk.shadowmap_pars_fragment, + Jt.ShaderChunk.specularmap_pars_fragment, + Jt.ShaderChunk.logdepthbuf_pars_fragment, + 'void main() {', + '\tvec3 outgoingLight = vec3( 0.0 );', + '\tvec4 diffuseColor = vec4( diffuse, opacity );', + Jt.ShaderChunk.logdepthbuf_fragment, + Jt.ShaderChunk.map_fragment, + Jt.ShaderChunk.color_fragment, + Jt.ShaderChunk.alphamap_fragment, + Jt.ShaderChunk.alphatest_fragment, + Jt.ShaderChunk.specularmap_fragment, + '\t#ifdef DOUBLE_SIDED', + '\t\tif ( gl_FrontFacing )', + '\t\t\toutgoingLight += diffuseColor.rgb * vLightFront + emissive;', + '\t\telse', + '\t\t\toutgoingLight += diffuseColor.rgb * vLightBack + emissive;', + '\t#else', + '\t\toutgoingLight += diffuseColor.rgb * vLightFront + emissive;', + '\t#endif', + Jt.ShaderChunk.lightmap_fragment, + Jt.ShaderChunk.envmap_fragment, + Jt.ShaderChunk.shadowmap_fragment, + Jt.ShaderChunk.linear_to_gamma_fragment, + Jt.ShaderChunk.fog_fragment, + '\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );', + '}', + ].join('\n'), + }, + phong: { + uniforms: Jt.UniformsUtils.merge([ + Jt.UniformsLib.common, + Jt.UniformsLib.bump, + Jt.UniformsLib.normalmap, + Jt.UniformsLib.fog, + Jt.UniformsLib.lights, + Jt.UniformsLib.shadowmap, + { + emissive: { type: 'c', value: new Jt.Color(0) }, + specular: { type: 'c', value: new Jt.Color(1118481) }, + shininess: { type: 'f', value: 30 }, + wrapRGB: { type: 'v3', value: new Jt.Vector3(1, 1, 1) }, + }, + ]), + vertexShader: [ + '#define PHONG', + 'varying vec3 vViewPosition;', + '#ifndef FLAT_SHADED', + '\tvarying vec3 vNormal;', + '#endif', + Jt.ShaderChunk.common, + Jt.ShaderChunk.map_pars_vertex, + Jt.ShaderChunk.lightmap_pars_vertex, + Jt.ShaderChunk.envmap_pars_vertex, + Jt.ShaderChunk.lights_phong_pars_vertex, + Jt.ShaderChunk.color_pars_vertex, + Jt.ShaderChunk.morphtarget_pars_vertex, + Jt.ShaderChunk.skinning_pars_vertex, + Jt.ShaderChunk.shadowmap_pars_vertex, + Jt.ShaderChunk.logdepthbuf_pars_vertex, + 'void main() {', + Jt.ShaderChunk.map_vertex, + Jt.ShaderChunk.lightmap_vertex, + Jt.ShaderChunk.color_vertex, + Jt.ShaderChunk.morphnormal_vertex, + Jt.ShaderChunk.skinbase_vertex, + Jt.ShaderChunk.skinnormal_vertex, + Jt.ShaderChunk.defaultnormal_vertex, + '#ifndef FLAT_SHADED', + '\tvNormal = normalize( transformedNormal );', + '#endif', + Jt.ShaderChunk.morphtarget_vertex, + Jt.ShaderChunk.skinning_vertex, + Jt.ShaderChunk.default_vertex, + Jt.ShaderChunk.logdepthbuf_vertex, + '\tvViewPosition = -mvPosition.xyz;', + Jt.ShaderChunk.worldpos_vertex, + Jt.ShaderChunk.envmap_vertex, + Jt.ShaderChunk.lights_phong_vertex, + Jt.ShaderChunk.shadowmap_vertex, + '}', + ].join('\n'), + fragmentShader: [ + '#define PHONG', + 'uniform vec3 diffuse;', + 'uniform vec3 emissive;', + 'uniform vec3 specular;', + 'uniform float shininess;', + 'uniform float opacity;', + Jt.ShaderChunk.common, + Jt.ShaderChunk.color_pars_fragment, + Jt.ShaderChunk.map_pars_fragment, + Jt.ShaderChunk.alphamap_pars_fragment, + Jt.ShaderChunk.lightmap_pars_fragment, + Jt.ShaderChunk.envmap_pars_fragment, + Jt.ShaderChunk.fog_pars_fragment, + Jt.ShaderChunk.lights_phong_pars_fragment, + Jt.ShaderChunk.shadowmap_pars_fragment, + Jt.ShaderChunk.bumpmap_pars_fragment, + Jt.ShaderChunk.normalmap_pars_fragment, + Jt.ShaderChunk.specularmap_pars_fragment, + Jt.ShaderChunk.logdepthbuf_pars_fragment, + 'void main() {', + '\tvec3 outgoingLight = vec3( 0.0 );', + '\tvec4 diffuseColor = vec4( diffuse, opacity );', + Jt.ShaderChunk.logdepthbuf_fragment, + Jt.ShaderChunk.map_fragment, + Jt.ShaderChunk.color_fragment, + Jt.ShaderChunk.alphamap_fragment, + Jt.ShaderChunk.alphatest_fragment, + Jt.ShaderChunk.specularmap_fragment, + Jt.ShaderChunk.lights_phong_fragment, + Jt.ShaderChunk.lightmap_fragment, + Jt.ShaderChunk.envmap_fragment, + Jt.ShaderChunk.shadowmap_fragment, + Jt.ShaderChunk.linear_to_gamma_fragment, + Jt.ShaderChunk.fog_fragment, + '\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );', + '}', + ].join('\n'), + }, + particle_basic: { + uniforms: Jt.UniformsUtils.merge([ + Jt.UniformsLib.particle, + Jt.UniformsLib.shadowmap, + ]), + vertexShader: [ + 'uniform float size;', + 'uniform float scale;', + Jt.ShaderChunk.common, + Jt.ShaderChunk.color_pars_vertex, + Jt.ShaderChunk.shadowmap_pars_vertex, + Jt.ShaderChunk.logdepthbuf_pars_vertex, + 'void main() {', + Jt.ShaderChunk.color_vertex, + '\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );', + '\t#ifdef USE_SIZEATTENUATION', + '\t\tgl_PointSize = size * ( scale / length( mvPosition.xyz ) );', + '\t#else', + '\t\tgl_PointSize = size;', + '\t#endif', + '\tgl_Position = projectionMatrix * mvPosition;', + Jt.ShaderChunk.logdepthbuf_vertex, + Jt.ShaderChunk.worldpos_vertex, + Jt.ShaderChunk.shadowmap_vertex, + '}', + ].join('\n'), + fragmentShader: [ + 'uniform vec3 psColor;', + 'uniform float opacity;', + Jt.ShaderChunk.common, + Jt.ShaderChunk.color_pars_fragment, + Jt.ShaderChunk.map_particle_pars_fragment, + Jt.ShaderChunk.fog_pars_fragment, + Jt.ShaderChunk.shadowmap_pars_fragment, + Jt.ShaderChunk.logdepthbuf_pars_fragment, + 'void main() {', + '\tvec3 outgoingLight = vec3( 0.0 );', + '\tvec4 diffuseColor = vec4( psColor, opacity );', + Jt.ShaderChunk.logdepthbuf_fragment, + Jt.ShaderChunk.map_particle_fragment, + Jt.ShaderChunk.color_fragment, + Jt.ShaderChunk.alphatest_fragment, + '\toutgoingLight = diffuseColor.rgb;', + Jt.ShaderChunk.shadowmap_fragment, + Jt.ShaderChunk.fog_fragment, + '\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );', + '}', + ].join('\n'), + }, + dashed: { + uniforms: Jt.UniformsUtils.merge([ + Jt.UniformsLib.common, + Jt.UniformsLib.fog, + { + scale: { type: 'f', value: 1 }, + dashSize: { type: 'f', value: 1 }, + totalSize: { type: 'f', value: 2 }, + }, + ]), + vertexShader: [ + 'uniform float scale;', + 'attribute float lineDistance;', + 'varying float vLineDistance;', + Jt.ShaderChunk.common, + Jt.ShaderChunk.color_pars_vertex, + Jt.ShaderChunk.logdepthbuf_pars_vertex, + 'void main() {', + Jt.ShaderChunk.color_vertex, + '\tvLineDistance = scale * lineDistance;', + '\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );', + '\tgl_Position = projectionMatrix * mvPosition;', + Jt.ShaderChunk.logdepthbuf_vertex, + '}', + ].join('\n'), + fragmentShader: [ + 'uniform vec3 diffuse;', + 'uniform float opacity;', + 'uniform float dashSize;', + 'uniform float totalSize;', + 'varying float vLineDistance;', + Jt.ShaderChunk.common, + Jt.ShaderChunk.color_pars_fragment, + Jt.ShaderChunk.fog_pars_fragment, + Jt.ShaderChunk.logdepthbuf_pars_fragment, + 'void main() {', + '\tif ( mod( vLineDistance, totalSize ) > dashSize ) {', + '\t\tdiscard;', + '\t}', + '\tvec3 outgoingLight = vec3( 0.0 );', + '\tvec4 diffuseColor = vec4( diffuse, opacity );', + Jt.ShaderChunk.logdepthbuf_fragment, + Jt.ShaderChunk.color_fragment, + '\toutgoingLight = diffuseColor.rgb;', + Jt.ShaderChunk.fog_fragment, + '\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );', + '}', + ].join('\n'), + }, + depth: { + uniforms: { + mNear: { type: 'f', value: 1 }, + mFar: { type: 'f', value: 2e3 }, + opacity: { type: 'f', value: 1 }, + }, + vertexShader: [ + Jt.ShaderChunk.common, + Jt.ShaderChunk.morphtarget_pars_vertex, + Jt.ShaderChunk.logdepthbuf_pars_vertex, + 'void main() {', + Jt.ShaderChunk.morphtarget_vertex, + Jt.ShaderChunk.default_vertex, + Jt.ShaderChunk.logdepthbuf_vertex, + '}', + ].join('\n'), + fragmentShader: [ + 'uniform float mNear;', + 'uniform float mFar;', + 'uniform float opacity;', + Jt.ShaderChunk.common, + Jt.ShaderChunk.logdepthbuf_pars_fragment, + 'void main() {', + Jt.ShaderChunk.logdepthbuf_fragment, + '\t#ifdef USE_LOGDEPTHBUF_EXT', + '\t\tfloat depth = gl_FragDepthEXT / gl_FragCoord.w;', + '\t#else', + '\t\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;', + '\t#endif', + '\tfloat color = 1.0 - smoothstep( mNear, mFar, depth );', + '\tgl_FragColor = vec4( vec3( color ), opacity );', + '}', + ].join('\n'), + }, + normal: { + uniforms: { opacity: { type: 'f', value: 1 } }, + vertexShader: [ + 'varying vec3 vNormal;', + Jt.ShaderChunk.common, + Jt.ShaderChunk.morphtarget_pars_vertex, + Jt.ShaderChunk.logdepthbuf_pars_vertex, + 'void main() {', + '\tvNormal = normalize( normalMatrix * normal );', + Jt.ShaderChunk.morphtarget_vertex, + Jt.ShaderChunk.default_vertex, + Jt.ShaderChunk.logdepthbuf_vertex, + '}', + ].join('\n'), + fragmentShader: [ + 'uniform float opacity;', + 'varying vec3 vNormal;', + Jt.ShaderChunk.common, + Jt.ShaderChunk.logdepthbuf_pars_fragment, + 'void main() {', + '\tgl_FragColor = vec4( 0.5 * normalize( vNormal ) + 0.5, opacity );', + Jt.ShaderChunk.logdepthbuf_fragment, + '}', + ].join('\n'), + }, + cube: { + uniforms: { + tCube: { type: 't', value: null }, + tFlip: { type: 'f', value: -1 }, + }, + vertexShader: [ + 'varying vec3 vWorldPosition;', + Jt.ShaderChunk.common, + Jt.ShaderChunk.logdepthbuf_pars_vertex, + 'void main() {', + '\tvWorldPosition = transformDirection( position, modelMatrix );', + '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );', + Jt.ShaderChunk.logdepthbuf_vertex, + '}', + ].join('\n'), + fragmentShader: [ + 'uniform samplerCube tCube;', + 'uniform float tFlip;', + 'varying vec3 vWorldPosition;', + Jt.ShaderChunk.common, + Jt.ShaderChunk.logdepthbuf_pars_fragment, + 'void main() {', + '\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );', + Jt.ShaderChunk.logdepthbuf_fragment, + '}', + ].join('\n'), + }, + equirect: { + uniforms: { + tEquirect: { type: 't', value: null }, + tFlip: { type: 'f', value: -1 }, + }, + vertexShader: [ + 'varying vec3 vWorldPosition;', + Jt.ShaderChunk.common, + Jt.ShaderChunk.logdepthbuf_pars_vertex, + 'void main() {', + '\tvWorldPosition = transformDirection( position, modelMatrix );', + '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );', + Jt.ShaderChunk.logdepthbuf_vertex, + '}', + ].join('\n'), + fragmentShader: [ + 'uniform sampler2D tEquirect;', + 'uniform float tFlip;', + 'varying vec3 vWorldPosition;', + Jt.ShaderChunk.common, + Jt.ShaderChunk.logdepthbuf_pars_fragment, + 'void main() {', + 'vec3 direction = normalize( vWorldPosition );', + 'vec2 sampleUV;', + 'sampleUV.y = saturate( tFlip * direction.y * -0.5 + 0.5 );', + 'sampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;', + 'gl_FragColor = texture2D( tEquirect, sampleUV );', + Jt.ShaderChunk.logdepthbuf_fragment, + '}', + ].join('\n'), + }, + depthRGBA: { + uniforms: {}, + vertexShader: [ + Jt.ShaderChunk.common, + Jt.ShaderChunk.morphtarget_pars_vertex, + Jt.ShaderChunk.skinning_pars_vertex, + Jt.ShaderChunk.logdepthbuf_pars_vertex, + 'void main() {', + Jt.ShaderChunk.skinbase_vertex, + Jt.ShaderChunk.morphtarget_vertex, + Jt.ShaderChunk.skinning_vertex, + Jt.ShaderChunk.default_vertex, + Jt.ShaderChunk.logdepthbuf_vertex, + '}', + ].join('\n'), + fragmentShader: [ + Jt.ShaderChunk.common, + Jt.ShaderChunk.logdepthbuf_pars_fragment, + 'vec4 pack_depth( const in float depth ) {', + '\tconst vec4 bit_shift = vec4( 256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0 );', + '\tconst vec4 bit_mask = vec4( 0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0 );', + '\tvec4 res = mod( depth * bit_shift * vec4( 255 ), vec4( 256 ) ) / vec4( 255 );', + '\tres -= res.xxyz * bit_mask;', + '\treturn res;', + '}', + 'void main() {', + Jt.ShaderChunk.logdepthbuf_fragment, + '\t#ifdef USE_LOGDEPTHBUF_EXT', + '\t\tgl_FragData[ 0 ] = pack_depth( gl_FragDepthEXT );', + '\t#else', + '\t\tgl_FragData[ 0 ] = pack_depth( gl_FragCoord.z );', + '\t#endif', + '}', + ].join('\n'), + }, + }), + (Jt.WebGLRenderer = function (t) { + function e(t) { + t.preventDefault(), O(), Y(), (x = {}); + } + var dt = + void 0 !== (t = t || {}).canvas + ? t.canvas + : document.createElement('canvas'), + o = void 0 !== t.context ? t.context : null, + C = 1, + y = void 0 !== t.precision ? t.precision : 'highp', + a = void 0 !== t.alpha && t.alpha, + s = void 0 === t.depth || t.depth, + l = void 0 === t.stencil || t.stencil, + E = void 0 !== t.antialias && t.antialias, + B = void 0 === t.premultipliedAlpha || t.premultipliedAlpha, + k = void 0 !== t.preserveDrawingBuffer && t.preserveDrawingBuffer, + Ct = void 0 !== t.logarithmicDepthBuffer && t.logarithmicDepthBuffer, + n = new Jt.Color(0), + r = 0, + u = [], + x = {}, + c = [], + A = [], + h = [], + F = [], + Q = [], + ft = + ((this.domElement = dt), + (this.context = null), + (this.autoClear = !0), + (this.autoClearColor = !0), + (this.autoClearDepth = !0), + (this.autoClearStencil = !0), + (this.sortObjects = !0), + (this.gammaFactor = 2), + (this.gammaInput = !1), + (this.gammaOutput = !1), + (this.shadowMapEnabled = !1), + (this.shadowMapType = Jt.PCFShadowMap), + (this.shadowMapCullFace = Jt.CullFaceFront), + (this.shadowMapDebug = !1), + (this.shadowMapCascade = !1), + (this.maxMorphTargets = 8), + (this.maxMorphNormals = 4), + (this.autoScaleCubemaps = !0), + (this.info = { + memory: { programs: 0, geometries: 0, textures: 0 }, + render: { calls: 0, vertices: 0, faces: 0, points: 0 }, + }), + this), + w = [], + xt = null, + p = null, + gt = -1, + I = '', + mt = null, + It = 0, + d = 0, + f = 0, + g = dt.width, + m = dt.height, + _ = 0, + T = 0, + R = new Jt.Frustum(), + U = new Jt.Matrix4(), + vt = new Jt.Vector3(), + bt = new Jt.Vector3(), + yt = !0, + Dt = { + ambient: [0, 0, 0], + directional: { length: 0, colors: [], positions: [] }, + point: { + length: 0, + colors: [], + positions: [], + distances: [], + decays: [], + }, + spot: { + length: 0, + colors: [], + positions: [], + distances: [], + directions: [], + anglesCos: [], + exponents: [], + decays: [], + }, + hemi: { length: 0, skyColors: [], groundColors: [], positions: [] }, + }; + try { + var Mt, + N = { + alpha: a, + depth: s, + stencil: l, + antialias: E, + premultipliedAlpha: B, + preserveDrawingBuffer: k, + }; + if ( + null === + (Mt = + o || + dt.getContext('webgl', N) || + dt.getContext('experimental-webgl', N)) + ) + throw null !== dt.getContext('webgl') + ? 'Error creating WebGL context with your selected attributes.' + : 'Error creating WebGL context.'; + dt.addEventListener('webglcontextlost', e, !1); + } catch (t) { + Jt.error('THREE.WebGLRenderer: ' + t); + } + this.dispose = function () { + dt.removeEventListener('webglcontextlost', e, !1); + }; + var i, + P, + M = new Jt.WebGLState(Mt, Bt), + D = + (void 0 === Mt.getShaderPrecisionFormat && + (Mt.getShaderPrecisionFormat = function () { + return { rangeMin: 1, rangeMax: 1, precision: 1 }; + }), + new Jt.WebGLExtensions(Mt)), + L = + (D.get('OES_texture_float'), + D.get('OES_texture_float_linear'), + D.get('OES_texture_half_float'), + D.get('OES_texture_half_float_linear'), + D.get('OES_standard_derivatives'), + Ct && D.get('EXT_frag_depth'), + function (t, e, n, r) { + !0 === B && ((t *= r), (e *= r), (n *= r)), Mt.clearColor(t, e, n, r); + }), + Y = function () { + Mt.clearColor(0, 0, 0, 1), + Mt.clearDepth(1), + Mt.clearStencil(0), + Mt.enable(Mt.DEPTH_TEST), + Mt.depthFunc(Mt.LEQUAL), + Mt.frontFace(Mt.CCW), + Mt.cullFace(Mt.BACK), + Mt.enable(Mt.CULL_FACE), + Mt.enable(Mt.BLEND), + Mt.blendEquation(Mt.FUNC_ADD), + Mt.blendFunc(Mt.SRC_ALPHA, Mt.ONE_MINUS_SRC_ALPHA), + Mt.viewport(d, f, g, m), + L(n.r, n.g, n.b, r); + }, + O = function () { + (mt = xt = null), (gt = -1), (yt = !(I = '')), M.reset(); + }, + G = + (Y(), + (this.context = Mt), + (this.state = M), + Mt.getParameter(Mt.MAX_TEXTURE_IMAGE_UNITS)), + t = Mt.getParameter(Mt.MAX_VERTEX_TEXTURE_IMAGE_UNITS), + z = Mt.getParameter(Mt.MAX_TEXTURE_SIZE), + St = Mt.getParameter(Mt.MAX_CUBE_MAP_TEXTURE_SIZE), + H = 0 < t, + kt = H && D.get('OES_texture_float'), + a = Mt.getShaderPrecisionFormat(Mt.VERTEX_SHADER, Mt.HIGH_FLOAT), + s = Mt.getShaderPrecisionFormat(Mt.VERTEX_SHADER, Mt.MEDIUM_FLOAT), + l = Mt.getShaderPrecisionFormat(Mt.FRAGMENT_SHADER, Mt.HIGH_FLOAT), + E = Mt.getShaderPrecisionFormat(Mt.FRAGMENT_SHADER, Mt.MEDIUM_FLOAT), + Ft = function () { + if ( + void 0 === i && + ((i = []), + D.get('WEBGL_compressed_texture_pvrtc') || + D.get('WEBGL_compressed_texture_s3tc')) + ) + for ( + var t = Mt.getParameter(Mt.COMPRESSED_TEXTURE_FORMATS), e = 0; + e < t.length; + e++ + ) + i.push(t[e]); + return i; + }, + k = 0 < a.precision && 0 < l.precision, + o = 0 < s.precision && 0 < E.precision, + j = + ('highp' !== y || + k || + (o + ? ((y = 'mediump'), + Jt.warn('THREE.WebGLRenderer: highp not supported, using mediump.')) + : ((y = 'lowp'), + Jt.warn( + 'THREE.WebGLRenderer: highp and mediump not supported, using lowp.', + ))), + 'mediump' !== y || + o || + ((y = 'lowp'), + Jt.warn('THREE.WebGLRenderer: mediump not supported, using lowp.')), + new Jt.ShadowMapPlugin(this, u, x, c)), + V = new Jt.SpritePlugin(this, F), + q = new Jt.LensFlarePlugin(this, Q); + (this.getContext = function () { + return Mt; + }), + (this.forceContextLoss = function () { + D.get('WEBGL_lose_context').loseContext(); + }), + (this.supportsVertexTextures = function () { + return H; + }), + (this.supportsFloatTextures = function () { + return D.get('OES_texture_float'); + }), + (this.supportsHalfFloatTextures = function () { + return D.get('OES_texture_half_float'); + }), + (this.supportsStandardDerivatives = function () { + return D.get('OES_standard_derivatives'); + }), + (this.supportsCompressedTextureS3TC = function () { + return D.get('WEBGL_compressed_texture_s3tc'); + }), + (this.supportsCompressedTexturePVRTC = function () { + return D.get('WEBGL_compressed_texture_pvrtc'); + }), + (this.supportsBlendMinMax = function () { + return D.get('EXT_blend_minmax'); + }), + (this.getMaxAnisotropy = function () { + var t; + return ( + void 0 === P && + ((t = D.get('EXT_texture_filter_anisotropic')), + (P = + null !== t + ? Mt.getParameter(t.MAX_TEXTURE_MAX_ANISOTROPY_EXT) + : 0)), + P + ); + }), + (this.getPrecision = function () { + return y; + }), + (this.getPixelRatio = function () { + return C; + }), + (this.setPixelRatio = function (t) { + C = t; + }), + (this.setSize = function (t, e, n) { + (dt.width = t * C), + (dt.height = e * C), + !1 !== n && ((dt.style.width = t + 'px'), (dt.style.height = e + 'px')), + this.setViewport(0, 0, t, e); + }), + (this.setViewport = function (t, e, n, r) { + (d = t * C), + (f = e * C), + (g = n * C), + (m = r * C), + Mt.viewport(d, f, g, m); + }), + (this.setScissor = function (t, e, n, r) { + Mt.scissor(t * C, e * C, n * C, r * C); + }), + (this.enableScissorTest = function (t) { + t ? Mt.enable(Mt.SCISSOR_TEST) : Mt.disable(Mt.SCISSOR_TEST); + }), + (this.getClearColor = function () { + return n; + }), + (this.setClearColor = function (t, e) { + n.set(t), (r = void 0 !== e ? e : 1), L(n.r, n.g, n.b, r); + }), + (this.getClearAlpha = function () { + return r; + }), + (this.setClearAlpha = function (t) { + (r = t), L(n.r, n.g, n.b, r); + }), + (this.clear = function (t, e, n) { + var r = 0; + (void 0 !== t && !t) || (r |= Mt.COLOR_BUFFER_BIT), + (void 0 !== e && !e) || (r |= Mt.DEPTH_BUFFER_BIT), + (void 0 !== n && !n) || (r |= Mt.STENCIL_BUFFER_BIT), + Mt.clear(r); + }), + (this.clearColor = function () { + Mt.clear(Mt.COLOR_BUFFER_BIT); + }), + (this.clearDepth = function () { + Mt.clear(Mt.DEPTH_BUFFER_BIT); + }), + (this.clearStencil = function () { + Mt.clear(Mt.STENCIL_BUFFER_BIT); + }), + (this.clearTarget = function (t, e, n, r) { + this.setRenderTarget(t), this.clear(e, n, r); + }), + (this.resetGLState = O); + var W = function (t) { + t.target.traverse(function (t) { + t.removeEventListener('remove', W); + if ( + t instanceof Jt.Mesh || + t instanceof Jt.PointCloud || + t instanceof Jt.Line + ) + delete x[t.id]; + else if ( + t instanceof Jt.ImmediateRenderObject || + t.immediateRenderCallback + ) + for (var e = c, n = t, r = e.length - 1; 0 <= r; r--) + e[r].object === n && e.splice(r, 1); + delete t.__webglInit, + delete t._modelViewMatrix, + delete t._normalMatrix, + delete t.__webglActive; + }); + }, + J = function (t) { + t = t.target; + t.removeEventListener('dispose', J), $(t); + }, + Qt = function (t) { + t = t.target; + t.removeEventListener('dispose', Qt), tt(t), ft.info.memory.textures--; + }, + K = function (t) { + t = t.target; + t.removeEventListener('dispose', K), et(t), ft.info.memory.textures--; + }, + Z = function (t) { + t = t.target; + t.removeEventListener('dispose', Z), _t(t); + }, + X = function (t) { + for ( + var e = [ + '__webglVertexBuffer', + '__webglNormalBuffer', + '__webglTangentBuffer', + '__webglColorBuffer', + '__webglUVBuffer', + '__webglUV2Buffer', + '__webglSkinIndicesBuffer', + '__webglSkinWeightsBuffer', + '__webglFaceBuffer', + '__webglLineBuffer', + '__webglLineDistanceBuffer', + ], + n = 0, + r = e.length; + n < r; + n++ + ) + void 0 !== t[(i = e[n])] && (Mt.deleteBuffer(t[i]), delete t[i]); + if (void 0 !== t.__webglCustomAttributesList) { + for (var i in t.__webglCustomAttributesList) + Mt.deleteBuffer(t.__webglCustomAttributesList[i].buffer); + delete t.__webglCustomAttributesList; + } + ft.info.memory.geometries--; + }, + $ = function (t) { + if ((delete t.__webglInit, t instanceof Jt.BufferGeometry)) { + for (var e in t.attributes) { + e = t.attributes[e]; + void 0 !== e.buffer && (Mt.deleteBuffer(e.buffer), delete e.buffer); + } + ft.info.memory.geometries--; + } else { + var n = at[t.id]; + if (void 0 !== n) { + for (var r = 0, i = n.length; r < i; r++) { + var o = n[r]; + if (void 0 !== o.numMorphTargets) { + for (var a = 0, s = o.numMorphTargets; a < s; a++) + Mt.deleteBuffer(o.__webglMorphTargetsBuffers[a]); + delete o.__webglMorphTargetsBuffers; + } + if (void 0 !== o.numMorphNormals) { + for (a = 0, s = o.numMorphNormals; a < s; a++) + Mt.deleteBuffer(o.__webglMorphNormalsBuffers[a]); + delete o.__webglMorphNormalsBuffers; + } + X(o); + } + delete at[t.id]; + } else X(t); + } + I = ''; + }, + tt = function (t) { + t.image && t.image.__webglTextureCube + ? (Mt.deleteTexture(t.image.__webglTextureCube), + delete t.image.__webglTextureCube) + : void 0 !== t.__webglInit && + (Mt.deleteTexture(t.__webglTexture), + delete t.__webglTexture, + delete t.__webglInit); + }, + et = function (t) { + if (t && void 0 !== t.__webglTexture) { + if ( + (Mt.deleteTexture(t.__webglTexture), + delete t.__webglTexture, + t instanceof Jt.WebGLRenderTargetCube) + ) + for (var e = 0; e < 6; e++) + Mt.deleteFramebuffer(t.__webglFramebuffer[e]), + Mt.deleteRenderbuffer(t.__webglRenderbuffer[e]); + else + Mt.deleteFramebuffer(t.__webglFramebuffer), + Mt.deleteRenderbuffer(t.__webglRenderbuffer); + delete t.__webglFramebuffer, delete t.__webglRenderbuffer; + } + }, + _t = function (t) { + var e = t.program.program; + if (void 0 !== e) { + t.program = void 0; + var n, + r = !1; + for (o = 0, a = w.length; o < a; o++) + if ((n = w[o]).program === e) { + n.usedTimes--, 0 === n.usedTimes && (r = !0); + break; + } + if (!0 === r) { + for (var i = [], o = 0, a = w.length; o < a; o++) + (n = w[o]).program !== e && i.push(n); + (w = i), Mt.deleteProgram(e), ft.info.memory.programs--; + } + } + }; + function nt(t) { + var e = t.geometry, + n = t.material, + r = e.vertices.length; + if (n.attributes) + for (var i in (void 0 === e.__webglCustomAttributesList && + (e.__webglCustomAttributesList = []), + n.attributes)) { + var o, + a = n.attributes[i]; + (a.__webglInitialized && !a.createUniqueBuffers) || + ((a.__webglInitialized = !0), + (o = 1), + 'v2' === a.type + ? (o = 2) + : 'v3' === a.type + ? (o = 3) + : 'v4' === a.type + ? (o = 4) + : 'c' === a.type && (o = 3), + (a.size = o), + (a.array = new Float32Array(r * o)), + (a.buffer = Mt.createBuffer()), + (a.buffer.belongsToAttribute = i), + (a.needsUpdate = !0)), + e.__webglCustomAttributesList.push(a); + } + } + function ot(t, e) { + return t.material instanceof Jt.MeshFaceMaterial + ? t.material.materials[e.materialIndex] + : t.material; + } + function st(t, U, e, N, P) { + if (t.__inittedArrays) { + var n, + r, + i, + L, + Y, + O, + G, + z, + o, + a, + s, + H, + j, + l, + V, + q, + W, + J, + u, + c, + A, + h, + p, + K, + Z, + X, + $, + d, + tt, + f, + g, + m, + v, + et = + (Q = P) instanceof Jt.MeshPhongMaterial == !1 && + Q.shading === Jt.FlatShading, + b = 0, + y = 0, + nt = 0, + rt = 0, + it = 0, + w = 0, + E = 0, + ot = 0, + B = 0, + C = 0, + x = 0, + I = 0, + M = t.__vertexArray, + at = t.__uvArray, + st = t.__uv2Array, + lt = t.__normalArray, + D = t.__tangentArray, + S = t.__colorArray, + k = t.__skinIndexArray, + F = t.__skinWeightArray, + ut = t.__morphTargetsArrays, + ct = t.__morphNormalsArrays, + At = t.__webglCustomAttributesList, + ht = t.__faceArray, + pt = t.__lineArray, + Q = U.geometry, + U = Q.verticesNeedUpdate, + dt = Q.elementsNeedUpdate, + ft = Q.uvsNeedUpdate, + gt = Q.normalsNeedUpdate, + mt = Q.tangentsNeedUpdate, + vt = Q.colorsNeedUpdate, + bt = Q.morphTargetsNeedUpdate, + yt = Q.vertices, + _ = t.faces3, + T = Q.faces, + wt = Q.faceVertexUvs[0], + Et = Q.faceVertexUvs[1], + Bt = Q.skinIndices, + Ct = Q.skinWeights, + xt = Q.morphTargets, + It = Q.morphNormals; + if (U) { + for (n = 0, r = _.length; n < r; n++) + (o = yt[(i = T[_[n]]).a]), + (a = yt[i.b]), + (s = yt[i.c]), + (M[y] = o.x), + (M[y + 1] = o.y), + (M[y + 2] = o.z), + (M[y + 3] = a.x), + (M[y + 4] = a.y), + (M[y + 5] = a.z), + (M[y + 6] = s.x), + (M[y + 7] = s.y), + (M[y + 8] = s.z), + (y += 9); + Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglVertexBuffer), + Mt.bufferData(Mt.ARRAY_BUFFER, M, e); + } + if (bt) + for (d = 0, tt = xt.length; d < tt; d++) { + for (n = x = 0, r = _.length; n < r; n++) + (i = T[(f = _[n])]), + (o = xt[d].vertices[i.a]), + (a = xt[d].vertices[i.b]), + (s = xt[d].vertices[i.c]), + ((g = ut[d])[x] = o.x), + (g[x + 1] = o.y), + (g[x + 2] = o.z), + (g[x + 3] = a.x), + (g[x + 4] = a.y), + (g[x + 5] = a.z), + (g[x + 6] = s.x), + (g[x + 7] = s.y), + (g[x + 8] = s.z), + P.morphNormals && + ((f = et + ? (q = V = It[d].faceNormals[f]) + : ((V = (g = It[d].vertexNormals[f]).a), (q = g.b), g.c)), + ((g = ct[d])[x] = V.x), + (g[x + 1] = V.y), + (g[x + 2] = V.z), + (g[x + 3] = q.x), + (g[x + 4] = q.y), + (g[x + 5] = q.z), + (g[x + 6] = f.x), + (g[x + 7] = f.y), + (g[x + 8] = f.z)), + (x += 9); + Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglMorphTargetsBuffers[d]), + Mt.bufferData(Mt.ARRAY_BUFFER, ut[d], e), + P.morphNormals && + (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglMorphNormalsBuffers[d]), + Mt.bufferData(Mt.ARRAY_BUFFER, ct[d], e)); + } + if (Ct.length) { + for (n = 0, r = _.length; n < r; n++) + (c = Ct[(i = T[_[n]]).a]), + (A = Ct[i.b]), + (h = Ct[i.c]), + (F[C] = c.x), + (F[C + 1] = c.y), + (F[C + 2] = c.z), + (F[C + 3] = c.w), + (F[C + 4] = A.x), + (F[C + 5] = A.y), + (F[C + 6] = A.z), + (F[C + 7] = A.w), + (F[C + 8] = h.x), + (F[C + 9] = h.y), + (F[C + 10] = h.z), + (F[C + 11] = h.w), + (c = Bt[i.a]), + (A = Bt[i.b]), + (h = Bt[i.c]), + (k[C] = c.x), + (k[C + 1] = c.y), + (k[C + 2] = c.z), + (k[C + 3] = c.w), + (k[C + 4] = A.x), + (k[C + 5] = A.y), + (k[C + 6] = A.z), + (k[C + 7] = A.w), + (k[C + 8] = h.x), + (k[C + 9] = h.y), + (k[C + 10] = h.z), + (k[C + 11] = h.w), + (C += 12); + 0 < C && + (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglSkinIndicesBuffer), + Mt.bufferData(Mt.ARRAY_BUFFER, k, e), + Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglSkinWeightsBuffer), + Mt.bufferData(Mt.ARRAY_BUFFER, F, e)); + } + if (vt) { + for (n = 0, r = _.length; n < r; n++) + (u = (i = T[_[n]]).vertexColors), + (O = i.color), + (u = + 3 === u.length && P.vertexColors === Jt.VertexColors + ? ((W = u[0]), (J = u[1]), u[2]) + : (J = W = O)), + (S[B] = W.r), + (S[B + 1] = W.g), + (S[B + 2] = W.b), + (S[B + 3] = J.r), + (S[B + 4] = J.g), + (S[B + 5] = J.b), + (S[B + 6] = u.r), + (S[B + 7] = u.g), + (S[B + 8] = u.b), + (B += 9); + 0 < B && + (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglColorBuffer), + Mt.bufferData(Mt.ARRAY_BUFFER, S, e)); + } + if (mt && Q.hasTangents) { + for (n = 0, r = _.length; n < r; n++) + (H = (l = (i = T[_[n]]).vertexTangents)[0]), + (j = l[1]), + (l = l[2]), + (D[E] = H.x), + (D[E + 1] = H.y), + (D[E + 2] = H.z), + (D[E + 3] = H.w), + (D[E + 4] = j.x), + (D[E + 5] = j.y), + (D[E + 6] = j.z), + (D[E + 7] = j.w), + (D[E + 8] = l.x), + (D[E + 9] = l.y), + (D[E + 10] = l.z), + (D[E + 11] = l.w), + (E += 12); + Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglTangentBuffer), + Mt.bufferData(Mt.ARRAY_BUFFER, D, e); + } + if (gt) { + for (n = 0, r = _.length; n < r; n++) + if ( + ((L = (i = T[_[n]]).vertexNormals), + (Y = i.normal), + 3 === L.length && !1 == et) + ) + for (p = 0; p < 3; p++) + (Z = L[p]), + (lt[w] = Z.x), + (lt[w + 1] = Z.y), + (lt[w + 2] = Z.z), + (w += 3); + else + for (p = 0; p < 3; p++) + (lt[w] = Y.x), (lt[w + 1] = Y.y), (lt[w + 2] = Y.z), (w += 3); + Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglNormalBuffer), + Mt.bufferData(Mt.ARRAY_BUFFER, lt, e); + } + if (ft && wt) { + for (n = 0, r = _.length; n < r; n++) + if (void 0 !== (G = wt[_[n]])) + for (p = 0; p < 3; p++) + (X = G[p]), (at[nt] = X.x), (at[nt + 1] = X.y), (nt += 2); + 0 < nt && + (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglUVBuffer), + Mt.bufferData(Mt.ARRAY_BUFFER, at, e)); + } + if (ft && Et) { + for (n = 0, r = _.length; n < r; n++) + if (void 0 !== (z = Et[_[n]])) + for (p = 0; p < 3; p++) + ($ = z[p]), (st[rt] = $.x), (st[rt + 1] = $.y), (rt += 2); + 0 < rt && + (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglUV2Buffer), + Mt.bufferData(Mt.ARRAY_BUFFER, st, e)); + } + if (dt) { + for (n = 0, r = _.length; n < r; n++) + (ht[it] = b), + (ht[it + 1] = b + 1), + (ht[it + 2] = b + 2), + (it += 3), + (pt[ot] = b), + (pt[ot + 1] = b + 1), + (pt[ot + 2] = b), + (pt[ot + 3] = b + 2), + (pt[ot + 4] = b + 1), + (pt[ot + 5] = b + 2), + (ot += 6), + (b += 3); + Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, t.__webglFaceBuffer), + Mt.bufferData(Mt.ELEMENT_ARRAY_BUFFER, ht, e), + Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, t.__webglLineBuffer), + Mt.bufferData(Mt.ELEMENT_ARRAY_BUFFER, pt, e); + } + if (At) + for (p = 0, K = At.length; p < K; p++) + if ((v = At[p]).__original.needsUpdate) { + if (((I = 0), 1 === v.size)) { + if (void 0 === v.boundTo || 'vertices' === v.boundTo) + for (n = 0, r = _.length; n < r; n++) + (i = T[_[n]]), + (v.array[I] = v.value[i.a]), + (v.array[I + 1] = v.value[i.b]), + (v.array[I + 2] = v.value[i.c]), + (I += 3); + else if ('faces' === v.boundTo) + for (n = 0, r = _.length; n < r; n++) + (m = v.value[_[n]]), + (v.array[I] = m), + (v.array[I + 1] = m), + (v.array[I + 2] = m), + (I += 3); + } else if (2 === v.size) { + if (void 0 === v.boundTo || 'vertices' === v.boundTo) + for (n = 0, r = _.length; n < r; n++) + (i = T[_[n]]), + (o = v.value[i.a]), + (a = v.value[i.b]), + (s = v.value[i.c]), + (v.array[I] = o.x), + (v.array[I + 1] = o.y), + (v.array[I + 2] = a.x), + (v.array[I + 3] = a.y), + (v.array[I + 4] = s.x), + (v.array[I + 5] = s.y), + (I += 6); + else if ('faces' === v.boundTo) + for (n = 0, r = _.length; n < r; n++) + (s = a = o = m = v.value[_[n]]), + (v.array[I] = o.x), + (v.array[I + 1] = o.y), + (v.array[I + 2] = a.x), + (v.array[I + 3] = a.y), + (v.array[I + 4] = s.x), + (v.array[I + 5] = s.y), + (I += 6); + } else if (3 === v.size) { + var R = 'c' === v.type ? ['r', 'g', 'b'] : ['x', 'y', 'z']; + if (void 0 === v.boundTo || 'vertices' === v.boundTo) + for (n = 0, r = _.length; n < r; n++) + (i = T[_[n]]), + (o = v.value[i.a]), + (a = v.value[i.b]), + (s = v.value[i.c]), + (v.array[I] = o[R[0]]), + (v.array[I + 1] = o[R[1]]), + (v.array[I + 2] = o[R[2]]), + (v.array[I + 3] = a[R[0]]), + (v.array[I + 4] = a[R[1]]), + (v.array[I + 5] = a[R[2]]), + (v.array[I + 6] = s[R[0]]), + (v.array[I + 7] = s[R[1]]), + (v.array[I + 8] = s[R[2]]), + (I += 9); + else if ('faces' === v.boundTo) + for (n = 0, r = _.length; n < r; n++) + (s = a = o = m = v.value[_[n]]), + (v.array[I] = o[R[0]]), + (v.array[I + 1] = o[R[1]]), + (v.array[I + 2] = o[R[2]]), + (v.array[I + 3] = a[R[0]]), + (v.array[I + 4] = a[R[1]]), + (v.array[I + 5] = a[R[2]]), + (v.array[I + 6] = s[R[0]]), + (v.array[I + 7] = s[R[1]]), + (v.array[I + 8] = s[R[2]]), + (I += 9); + else if ('faceVertices' === v.boundTo) + for (n = 0, r = _.length; n < r; n++) + (o = (m = v.value[_[n]])[0]), + (a = m[1]), + (s = m[2]), + (v.array[I] = o[R[0]]), + (v.array[I + 1] = o[R[1]]), + (v.array[I + 2] = o[R[2]]), + (v.array[I + 3] = a[R[0]]), + (v.array[I + 4] = a[R[1]]), + (v.array[I + 5] = a[R[2]]), + (v.array[I + 6] = s[R[0]]), + (v.array[I + 7] = s[R[1]]), + (v.array[I + 8] = s[R[2]]), + (I += 9); + } else if (4 === v.size) + if (void 0 === v.boundTo || 'vertices' === v.boundTo) + for (n = 0, r = _.length; n < r; n++) + (i = T[_[n]]), + (o = v.value[i.a]), + (a = v.value[i.b]), + (s = v.value[i.c]), + (v.array[I] = o.x), + (v.array[I + 1] = o.y), + (v.array[I + 2] = o.z), + (v.array[I + 3] = o.w), + (v.array[I + 4] = a.x), + (v.array[I + 5] = a.y), + (v.array[I + 6] = a.z), + (v.array[I + 7] = a.w), + (v.array[I + 8] = s.x), + (v.array[I + 9] = s.y), + (v.array[I + 10] = s.z), + (v.array[I + 11] = s.w), + (I += 12); + else if ('faces' === v.boundTo) + for (n = 0, r = _.length; n < r; n++) + (s = a = o = m = v.value[_[n]]), + (v.array[I] = o.x), + (v.array[I + 1] = o.y), + (v.array[I + 2] = o.z), + (v.array[I + 3] = o.w), + (v.array[I + 4] = a.x), + (v.array[I + 5] = a.y), + (v.array[I + 6] = a.z), + (v.array[I + 7] = a.w), + (v.array[I + 8] = s.x), + (v.array[I + 9] = s.y), + (v.array[I + 10] = s.z), + (v.array[I + 11] = s.w), + (I += 12); + else if ('faceVertices' === v.boundTo) + for (n = 0, r = _.length; n < r; n++) + (o = (m = v.value[_[n]])[0]), + (a = m[1]), + (s = m[2]), + (v.array[I] = o.x), + (v.array[I + 1] = o.y), + (v.array[I + 2] = o.z), + (v.array[I + 3] = o.w), + (v.array[I + 4] = a.x), + (v.array[I + 5] = a.y), + (v.array[I + 6] = a.z), + (v.array[I + 7] = a.w), + (v.array[I + 8] = s.x), + (v.array[I + 9] = s.y), + (v.array[I + 10] = s.z), + (v.array[I + 11] = s.w), + (I += 12); + Mt.bindBuffer(Mt.ARRAY_BUFFER, v.buffer), + Mt.bufferData(Mt.ARRAY_BUFFER, v.array, e); + } + N && + (delete t.__inittedArrays, + delete t.__colorArray, + delete t.__normalArray, + delete t.__tangentArray, + delete t.__uvArray, + delete t.__uv2Array, + delete t.__faceArray, + delete t.__vertexArray, + delete t.__lineArray, + delete t.__skinIndexArray, + delete t.__skinWeightArray); + } + } + function v(t, e, n, r) { + for ( + var i = n.attributes, + o = e.attributes, + a = e.attributesKeys, + s = 0, + l = a.length; + s < l; + s++ + ) { + var u, + c, + A = a[s], + h = o[A]; + 0 <= h && + (void 0 !== (u = i[A]) + ? ((c = u.itemSize), + Mt.bindBuffer(Mt.ARRAY_BUFFER, u.buffer), + M.enableAttribute(h), + Mt.vertexAttribPointer(h, c, Mt.FLOAT, !1, 0, r * c * 4)) + : void 0 !== t.defaultAttributeValues && + (2 === t.defaultAttributeValues[A].length + ? Mt.vertexAttrib2fv(h, t.defaultAttributeValues[A]) + : 3 === t.defaultAttributeValues[A].length && + Mt.vertexAttrib3fv(h, t.defaultAttributeValues[A]))); + } + M.disableUnusedAttributes(); + } + function rt(t, e) { + return t.object.renderOrder !== e.object.renderOrder + ? t.object.renderOrder - e.object.renderOrder + : t.material.id !== e.material.id + ? t.material.id - e.material.id + : t.z !== e.z + ? t.z - e.z + : t.id - e.id; + } + function it(t, e) { + return t.object.renderOrder !== e.object.renderOrder + ? t.object.renderOrder - e.object.renderOrder + : t.z !== e.z + ? e.z - t.z + : t.id - e.id; + } + function lt(t, e) { + return e[0] - t[0]; + } + function b(t, e, n, r, i) { + for (var o, a = 0, s = t.length; a < s; a++) { + var l = t[a], + u = l.object, + c = l.buffer; + if ((Ht(u, e), i)) o = i; + else { + if (!(o = l.material)) continue; + Lt(o); + } + ft.setMaterialFaces(o), + c instanceof Jt.BufferGeometry + ? ft.renderBufferDirect(e, n, r, o, c, u) + : ft.renderBuffer(e, n, r, o, c, u); + } + } + function ut(t, e, n, r, i, o) { + for (var a, s = 0, l = t.length; s < l; s++) { + var u = t[s], + c = u.object; + if (c.visible) { + if (o) a = o; + else { + if (!(a = u[e])) continue; + Lt(a); + } + ft.renderImmediateObject(n, r, i, a, c); + } + } + } + function ct(t) { + var e = t.object, + n = t.buffer, + r = e.geometry, + e = e.material; + e instanceof Jt.MeshFaceMaterial + ? ((r = r instanceof Jt.BufferGeometry ? 0 : n.materialIndex), + (e = e.materials[r]), + ((t.material = e).transparent ? h : A).push(t)) + : e && ((t.material = e).transparent ? h : A).push(t); + } + function At(t) { + void 0 === t.__webglInit && + ((t.__webglInit = !0), + (t._modelViewMatrix = new Jt.Matrix4()), + (t._normalMatrix = new Jt.Matrix3()), + t.addEventListener('removed', W)); + var e, + n, + r, + i, + o = t.geometry; + if ( + (void 0 !== o && + void 0 === o.__webglInit && + ((o.__webglInit = !0), + o.addEventListener('dispose', J), + o instanceof Jt.BufferGeometry + ? ft.info.memory.geometries++ + : t instanceof Jt.Mesh + ? pt(t, o) + : t instanceof Jt.Line + ? void 0 === o.__webglVertexBuffer && + (((i = o).__webglVertexBuffer = Mt.createBuffer()), + (i.__webglColorBuffer = Mt.createBuffer()), + (i.__webglLineDistanceBuffer = Mt.createBuffer()), + ft.info.memory.geometries++, + (i = t), + (r = (n = o).vertices.length), + (n.__vertexArray = new Float32Array(3 * r)), + (n.__colorArray = new Float32Array(3 * r)), + (n.__lineDistanceArray = new Float32Array(+r)), + (n.__webglLineCount = r), + nt(i), + (o.verticesNeedUpdate = !0), + (o.colorsNeedUpdate = !0), + (o.lineDistancesNeedUpdate = !0)) + : t instanceof Jt.PointCloud && + void 0 === o.__webglVertexBuffer && + (((n = o).__webglVertexBuffer = Mt.createBuffer()), + (n.__webglColorBuffer = Mt.createBuffer()), + ft.info.memory.geometries++, + (r = t), + (e = (i = o).vertices.length), + (i.__vertexArray = new Float32Array(3 * e)), + (i.__colorArray = new Float32Array(3 * e)), + (i.__webglParticleCount = e), + nt(r), + (o.verticesNeedUpdate = !0), + (o.colorsNeedUpdate = !0))), + void 0 === t.__webglActive) + ) + if (((t.__webglActive = !0), t instanceof Jt.Mesh)) { + if (o instanceof Jt.BufferGeometry) S(x, o, t); + else if (o instanceof Jt.Geometry) + for (var a = at[o.id], s = 0, l = a.length; s < l; s++) S(x, a[s], t); + } else + t instanceof Jt.Line || t instanceof Jt.PointCloud + ? S(x, o, t) + : (t instanceof Jt.ImmediateRenderObject || + t.immediateRenderCallback) && + c.push({ + id: null, + object: t, + opaque: null, + transparent: null, + z: 0, + }); + } + (this.renderBufferImmediate = function (t, e, n) { + if ( + (M.initAttributes(), + t.hasPositions && + !t.__webglVertexBuffer && + (t.__webglVertexBuffer = Mt.createBuffer()), + t.hasNormals && + !t.__webglNormalBuffer && + (t.__webglNormalBuffer = Mt.createBuffer()), + t.hasUvs && !t.__webglUvBuffer && (t.__webglUvBuffer = Mt.createBuffer()), + t.hasColors && + !t.__webglColorBuffer && + (t.__webglColorBuffer = Mt.createBuffer()), + t.hasPositions && + (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglVertexBuffer), + Mt.bufferData(Mt.ARRAY_BUFFER, t.positionArray, Mt.DYNAMIC_DRAW), + M.enableAttribute(e.attributes.position), + Mt.vertexAttribPointer(e.attributes.position, 3, Mt.FLOAT, !1, 0, 0)), + t.hasNormals) + ) { + if ( + (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglNormalBuffer), + n instanceof Jt.MeshPhongMaterial == !1 && n.shading === Jt.FlatShading) + ) + for (var r, i, o, a, s, l, u, c, A = 3 * t.count, h = 0; h < A; h += 9) + (r = (c = t.normalArray)[h]), + (a = c[h + 1]), + (l = c[h + 2]), + (i = c[h + 3]), + (s = c[h + 4]), + (u = c[h + 5]), + (o = c[h + 6]), + (a = (a + s + c[h + 7]) / 3), + (s = (l + u + c[h + 8]) / 3), + (c[h] = l = (r + i + o) / 3), + (c[h + 1] = a), + (c[h + 2] = s), + (c[h + 3] = l), + (c[h + 4] = a), + (c[h + 5] = s), + (c[h + 6] = l), + (c[h + 7] = a), + (c[h + 8] = s); + Mt.bufferData(Mt.ARRAY_BUFFER, t.normalArray, Mt.DYNAMIC_DRAW), + M.enableAttribute(e.attributes.normal), + Mt.vertexAttribPointer(e.attributes.normal, 3, Mt.FLOAT, !1, 0, 0); + } + t.hasUvs && + n.map && + (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglUvBuffer), + Mt.bufferData(Mt.ARRAY_BUFFER, t.uvArray, Mt.DYNAMIC_DRAW), + M.enableAttribute(e.attributes.uv), + Mt.vertexAttribPointer(e.attributes.uv, 2, Mt.FLOAT, !1, 0, 0)), + t.hasColors && + n.vertexColors !== Jt.NoColors && + (Mt.bindBuffer(Mt.ARRAY_BUFFER, t.__webglColorBuffer), + Mt.bufferData(Mt.ARRAY_BUFFER, t.colorArray, Mt.DYNAMIC_DRAW), + M.enableAttribute(e.attributes.color), + Mt.vertexAttribPointer(e.attributes.color, 3, Mt.FLOAT, !1, 0, 0)), + M.disableUnusedAttributes(), + Mt.drawArrays(Mt.TRIANGLES, 0, t.count), + (t.count = 0); + }), + (this.renderBufferDirect = function (t, e, n, r, i, o) { + if (!1 !== r.visible) { + Tt(o); + var a = Yt(t, e, n, r, o), + s = !1, + t = r.wireframe ? 1 : 0, + e = 'direct_' + i.id + '_' + a.id + '_' + t; + if ( + (e !== I && ((I = e), (s = !0)), + s && M.initAttributes(), + o instanceof Jt.Mesh) + ) { + var l = !0 === r.wireframe ? Mt.LINES : Mt.TRIANGLES; + if ((p = i.attributes.index)) + if ( + ((f = + p.array instanceof Uint32Array && + D.get('OES_element_index_uint') + ? ((d = Mt.UNSIGNED_INT), 4) + : ((d = Mt.UNSIGNED_SHORT), 2)), + 0 === (g = i.offsets).length) + ) + s && + (v(r, a, i, 0), + Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, p.buffer)), + Mt.drawElements(l, p.array.length, d, 0), + ft.info.render.calls++, + (ft.info.render.vertices += p.array.length), + (ft.info.render.faces += p.array.length / 3); + else + for (var s = !0, u = 0, c = g.length; u < c; u++) { + var A = g[u].index; + s && + (v(r, a, i, A), + Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, p.buffer)), + Mt.drawElements(l, g[u].count, d, g[u].start * f), + ft.info.render.calls++, + (ft.info.render.vertices += g[u].count), + (ft.info.render.faces += g[u].count / 3); + } + else { + s && v(r, a, i, 0); + var h = i.attributes.position; + Mt.drawArrays(l, 0, h.array.length / h.itemSize), + ft.info.render.calls++, + (ft.info.render.vertices += h.array.length / h.itemSize), + (ft.info.render.faces += h.array.length / (3 * h.itemSize)); + } + } else if (o instanceof Jt.PointCloud) { + l = Mt.POINTS; + if ((p = i.attributes.index)) + if ( + ((f = + p.array instanceof Uint32Array && + D.get('OES_element_index_uint') + ? ((d = Mt.UNSIGNED_INT), 4) + : ((d = Mt.UNSIGNED_SHORT), 2)), + 0 === (g = i.offsets).length) + ) + s && + (v(r, a, i, 0), + Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, p.buffer)), + Mt.drawElements(l, p.array.length, d, 0), + ft.info.render.calls++, + (ft.info.render.points += p.array.length); + else { + 1 < g.length && (s = !0); + for (u = 0, c = g.length; u < c; u++) { + A = g[u].index; + s && + (v(r, a, i, A), + Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, p.buffer)), + Mt.drawElements(l, g[u].count, d, g[u].start * f), + ft.info.render.calls++, + (ft.info.render.points += g[u].count); + } + } + else { + s && v(r, a, i, 0); + h = i.attributes.position; + if (0 === (g = i.offsets).length) + Mt.drawArrays(l, 0, h.array.length / 3), + ft.info.render.calls++, + (ft.info.render.points += h.array.length / 3); + else + for (u = 0, c = g.length; u < c; u++) + Mt.drawArrays(l, g[u].index, g[u].count), + ft.info.render.calls++, + (ft.info.render.points += g[u].count); + } + } else if (o instanceof Jt.Line) { + var p, + d, + f, + l = o.mode === Jt.LineStrip ? Mt.LINE_STRIP : Mt.LINES; + if ((M.setLineWidth(r.linewidth * C), (p = i.attributes.index))) + if ( + ((f = + p.array instanceof Uint32Array + ? ((d = Mt.UNSIGNED_INT), 4) + : ((d = Mt.UNSIGNED_SHORT), 2)), + 0 === (g = i.offsets).length) + ) + s && + (v(r, a, i, 0), + Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, p.buffer)), + Mt.drawElements(l, p.array.length, d, 0), + ft.info.render.calls++, + (ft.info.render.vertices += p.array.length); + else { + 1 < g.length && (s = !0); + for (u = 0, c = g.length; u < c; u++) { + A = g[u].index; + s && + (v(r, a, i, A), + Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, p.buffer)), + Mt.drawElements(l, g[u].count, d, g[u].start * f), + ft.info.render.calls++, + (ft.info.render.vertices += g[u].count); + } + } + else { + s && v(r, a, i, 0); + var g, + h = i.attributes.position; + if (0 === (g = i.offsets).length) + Mt.drawArrays(l, 0, h.array.length / 3), + ft.info.render.calls++, + (ft.info.render.vertices += h.array.length / 3); + else + for (u = 0, c = g.length; u < c; u++) + Mt.drawArrays(l, g[u].index, g[u].count), + ft.info.render.calls++, + (ft.info.render.vertices += g[u].count); + } + } + } + }), + (this.renderBuffer = function (t, e, n, r, i, o) { + if (!1 !== r.visible) { + Tt(o); + var t = Yt(t, e, n, r, o), + a = t.attributes, + e = !1, + n = r.wireframe ? 1 : 0, + t = i.id + '_' + t.id + '_' + n; + if ( + (t !== I && ((I = t), (e = !0)), + e && M.initAttributes(), + !r.morphTargets && 0 <= a.position) + ) + e && + (Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglVertexBuffer), + M.enableAttribute(a.position), + Mt.vertexAttribPointer(a.position, 3, Mt.FLOAT, !1, 0, 0)); + else if (o.morphTargetBase) { + var s, + l = r, + u = i, + c = o, + A = l.program.attributes; + if ( + (-1 !== c.morphTargetBase && 0 <= A.position + ? (Mt.bindBuffer( + Mt.ARRAY_BUFFER, + u.__webglMorphTargetsBuffers[c.morphTargetBase], + ), + M.enableAttribute(A.position), + Mt.vertexAttribPointer(A.position, 3, Mt.FLOAT, !1, 0, 0)) + : 0 <= A.position && + (Mt.bindBuffer(Mt.ARRAY_BUFFER, u.__webglVertexBuffer), + M.enableAttribute(A.position), + Mt.vertexAttribPointer(A.position, 3, Mt.FLOAT, !1, 0, 0)), + c.morphTargetForcedOrder.length) + ) + for ( + var h = 0, + p = c.morphTargetForcedOrder, + d = c.morphTargetInfluences; + h < l.numSupportedMorphTargets && h < p.length; + + ) + 0 <= (s = A['morphTarget' + h]) && + (Mt.bindBuffer( + Mt.ARRAY_BUFFER, + u.__webglMorphTargetsBuffers[p[h]], + ), + M.enableAttribute(s), + Mt.vertexAttribPointer(s, 3, Mt.FLOAT, !1, 0, 0)), + 0 <= (s = A['morphNormal' + h]) && + l.morphNormals && + (Mt.bindBuffer( + Mt.ARRAY_BUFFER, + u.__webglMorphNormalsBuffers[p[h]], + ), + M.enableAttribute(s), + Mt.vertexAttribPointer(s, 3, Mt.FLOAT, !1, 0, 0)), + (c.__webglMorphTargetInfluences[h] = d[p[h]]), + h++; + else { + var f = [], + d = c.morphTargetInfluences, + n = c.geometry.morphTargets; + d.length > n.length && + (console.warn( + 'THREE.WebGLRenderer: Influences array is bigger than morphTargets array.', + ), + (d.length = n.length)); + for (var g = 0, m = d.length; g < m; g++) { + var v = d[g]; + f.push([v, g]); + } + f.length > l.numSupportedMorphTargets + ? (f.sort(lt), (f.length = l.numSupportedMorphTargets)) + : f.length > l.numSupportedMorphNormals + ? f.sort(lt) + : 0 === f.length && f.push([0, 0]); + for (var b, h = 0, y = l.numSupportedMorphTargets; h < y; h++) + f[h] + ? ((b = f[h][1]), + 0 <= (s = A['morphTarget' + h]) && + (Mt.bindBuffer( + Mt.ARRAY_BUFFER, + u.__webglMorphTargetsBuffers[b], + ), + M.enableAttribute(s), + Mt.vertexAttribPointer(s, 3, Mt.FLOAT, !1, 0, 0)), + 0 <= (s = A['morphNormal' + h]) && + l.morphNormals && + (Mt.bindBuffer( + Mt.ARRAY_BUFFER, + u.__webglMorphNormalsBuffers[b], + ), + M.enableAttribute(s), + Mt.vertexAttribPointer(s, 3, Mt.FLOAT, !1, 0, 0)), + (c.__webglMorphTargetInfluences[h] = d[b])) + : (c.__webglMorphTargetInfluences[h] = 0); + } + null !== l.program.uniforms.morphTargetInfluences && + Mt.uniform1fv( + l.program.uniforms.morphTargetInfluences, + c.__webglMorphTargetInfluences, + ); + } + if (e) { + if (i.__webglCustomAttributesList) + for ( + var w = 0, E = i.__webglCustomAttributesList.length; + w < E; + w++ + ) { + var B = i.__webglCustomAttributesList[w]; + 0 <= a[B.buffer.belongsToAttribute] && + (Mt.bindBuffer(Mt.ARRAY_BUFFER, B.buffer), + M.enableAttribute(a[B.buffer.belongsToAttribute]), + Mt.vertexAttribPointer( + a[B.buffer.belongsToAttribute], + B.size, + Mt.FLOAT, + !1, + 0, + 0, + )); + } + 0 <= a.color && + (0 < o.geometry.colors.length || 0 < o.geometry.faces.length + ? (Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglColorBuffer), + M.enableAttribute(a.color), + Mt.vertexAttribPointer(a.color, 3, Mt.FLOAT, !1, 0, 0)) + : void 0 !== r.defaultAttributeValues && + Mt.vertexAttrib3fv(a.color, r.defaultAttributeValues.color)), + 0 <= a.normal && + (Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglNormalBuffer), + M.enableAttribute(a.normal), + Mt.vertexAttribPointer(a.normal, 3, Mt.FLOAT, !1, 0, 0)), + 0 <= a.tangent && + (Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglTangentBuffer), + M.enableAttribute(a.tangent), + Mt.vertexAttribPointer(a.tangent, 4, Mt.FLOAT, !1, 0, 0)), + 0 <= a.uv && + (o.geometry.faceVertexUvs[0] + ? (Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglUVBuffer), + M.enableAttribute(a.uv), + Mt.vertexAttribPointer(a.uv, 2, Mt.FLOAT, !1, 0, 0)) + : void 0 !== r.defaultAttributeValues && + Mt.vertexAttrib2fv(a.uv, r.defaultAttributeValues.uv)), + 0 <= a.uv2 && + (o.geometry.faceVertexUvs[1] + ? (Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglUV2Buffer), + M.enableAttribute(a.uv2), + Mt.vertexAttribPointer(a.uv2, 2, Mt.FLOAT, !1, 0, 0)) + : void 0 !== r.defaultAttributeValues && + Mt.vertexAttrib2fv(a.uv2, r.defaultAttributeValues.uv2)), + r.skinning && + 0 <= a.skinIndex && + 0 <= a.skinWeight && + (Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglSkinIndicesBuffer), + M.enableAttribute(a.skinIndex), + Mt.vertexAttribPointer(a.skinIndex, 4, Mt.FLOAT, !1, 0, 0), + Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglSkinWeightsBuffer), + M.enableAttribute(a.skinWeight), + Mt.vertexAttribPointer(a.skinWeight, 4, Mt.FLOAT, !1, 0, 0)), + 0 <= a.lineDistance && + (Mt.bindBuffer(Mt.ARRAY_BUFFER, i.__webglLineDistanceBuffer), + M.enableAttribute(a.lineDistance), + Mt.vertexAttribPointer(a.lineDistance, 1, Mt.FLOAT, !1, 0, 0)); + } + M.disableUnusedAttributes(), + o instanceof Jt.Mesh + ? ((t = + i.__typeArray === Uint32Array + ? Mt.UNSIGNED_INT + : Mt.UNSIGNED_SHORT), + r.wireframe + ? (M.setLineWidth(r.wireframeLinewidth * C), + e && + Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, i.__webglLineBuffer), + Mt.drawElements(Mt.LINES, i.__webglLineCount, t, 0)) + : (e && + Mt.bindBuffer(Mt.ELEMENT_ARRAY_BUFFER, i.__webglFaceBuffer), + Mt.drawElements(Mt.TRIANGLES, i.__webglFaceCount, t, 0)), + ft.info.render.calls++, + (ft.info.render.vertices += i.__webglFaceCount), + (ft.info.render.faces += i.__webglFaceCount / 3)) + : o instanceof Jt.Line + ? ((n = o.mode === Jt.LineStrip ? Mt.LINE_STRIP : Mt.LINES), + M.setLineWidth(r.linewidth * C), + Mt.drawArrays(n, 0, i.__webglLineCount), + ft.info.render.calls++) + : o instanceof Jt.PointCloud && + (Mt.drawArrays(Mt.POINTS, 0, i.__webglParticleCount), + ft.info.render.calls++, + (ft.info.render.points += i.__webglParticleCount)); + } + }), + (this.render = function (t, e, n, r) { + if (e instanceof Jt.Camera == !1) + Jt.error( + 'THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.', + ); + else { + var i = t.fog; + (I = ''), + (gt = -1), + (yt = !(mt = null)) === t.autoUpdate && t.updateMatrixWorld(), + void 0 === e.parent && e.updateMatrixWorld(), + t.traverse(function (t) { + t instanceof Jt.SkinnedMesh && t.skeleton.update(); + }), + e.matrixWorldInverse.getInverse(e.matrixWorld), + U.multiplyMatrices(e.projectionMatrix, e.matrixWorldInverse), + R.setFromMatrix(U), + (u.length = 0), + (A.length = 0), + (h.length = 0), + (F.length = 0), + (Q.length = 0), + !(function t(e) { + if (!1 === e.visible) return; + if (!(e instanceof Jt.Scene || e instanceof Jt.Group)) + if ((At(e), e instanceof Jt.Light)) u.push(e); + else if (e instanceof Jt.Sprite) F.push(e); + else if (e instanceof Jt.LensFlare) Q.push(e); + else { + var n = x[e.id]; + if ( + n && + (!1 === e.frustumCulled || !0 === R.intersectsObject(e)) + ) + for (var r = 0, i = n.length; r < i; r++) { + var o = n[r]; + ct(o), + (o.render = !0) === ft.sortObjects && + (vt.setFromMatrixPosition(e.matrixWorld), + vt.applyProjection(U), + (o.z = vt.z)); + } + } + for (r = 0, i = e.children.length; r < i; r++) t(e.children[r]); + })(t), + !0 === ft.sortObjects && (A.sort(rt), h.sort(it)), + j.render(t, e), + (ft.info.render.calls = 0), + (ft.info.render.vertices = 0), + (ft.info.render.faces = 0), + (ft.info.render.points = 0), + this.setRenderTarget(n), + (this.autoClear || r) && + this.clear( + this.autoClearColor, + this.autoClearDepth, + this.autoClearStencil, + ); + for (var o = 0, a = c.length; o < a; o++) { + var s = c[o], + l = s.object; + l.visible && + (Ht(l, e), + (l = void 0), + (l = (s = s).object.material).transparent + ? ((s.transparent = l), (s.opaque = null)) + : ((s.opaque = l), (s.transparent = null))); + } + t.overrideMaterial + ? (Lt((r = t.overrideMaterial)), + b(A, e, u, i, r), + b(h, e, u, i, r), + ut(c, '', e, u, i, r)) + : (M.setBlending(Jt.NoBlending), + b(A, e, u, i, null), + ut(c, 'opaque', e, u, i, null), + b(h, e, u, i, null), + ut(c, 'transparent', e, u, i, null)), + V.render(t, e), + q.render(t, e, _, T), + n && + n.generateMipmaps && + n.minFilter !== Jt.NearestFilter && + n.minFilter !== Jt.LinearFilter && + ((r = n) instanceof Jt.WebGLRenderTargetCube + ? (Mt.bindTexture(Mt.TEXTURE_CUBE_MAP, r.__webglTexture), + Mt.generateMipmap(Mt.TEXTURE_CUBE_MAP), + Mt.bindTexture(Mt.TEXTURE_CUBE_MAP, null)) + : (Mt.bindTexture(Mt.TEXTURE_2D, r.__webglTexture), + Mt.generateMipmap(Mt.TEXTURE_2D), + Mt.bindTexture(Mt.TEXTURE_2D, null))), + M.setDepthTest(!0), + M.setDepthWrite(!0), + M.setColorWrite(!0); + } + }), + (this.renderImmediateObject = function (t, e, n, r, i) { + var o = Yt(t, e, n, r, i); + (I = ''), + ft.setMaterialFaces(r), + i.immediateRenderCallback + ? i.immediateRenderCallback(o, Mt, R) + : i.render(function (t) { + ft.renderBufferImmediate(t, o, r); + }); + }); + var at = {}, + ht = 0; + function pt(t, e) { + for ( + var n = t.material, + r = !1, + i = + ((void 0 !== at[e.id] && !0 !== e.groupsNeedUpdate) || + (delete x[t.id], + (at[e.id] = (function (t, e) { + for ( + var n, + r, + i = D.get('OES_element_index_uint') ? 4294967296 : 65535, + o = {}, + a = t.morphTargets.length, + s = t.morphNormals.length, + l = {}, + u = [], + c = 0, + A = t.faces.length; + c < A; + c++ + ) { + var h = t.faces[c], + h = e ? h.materialIndex : 0; + (h in o) || (o[h] = { hash: h, counter: 0 }), + ((n = o[h].hash + '_' + o[h].counter) in l) || + ((r = { + id: ht++, + faces3: [], + materialIndex: h, + vertices: 0, + numMorphTargets: a, + numMorphNormals: s, + }), + (l[n] = r), + u.push(r)), + l[n].vertices + 3 > i && + ((o[h].counter += 1), + ((n = o[h].hash + '_' + o[h].counter) in l) || + ((r = { + id: ht++, + faces3: [], + materialIndex: h, + vertices: 0, + numMorphTargets: a, + numMorphNormals: s, + }), + (l[n] = r), + u.push(r))), + l[n].faces3.push(c), + (l[n].vertices += 3); + } + return u; + })(e, n instanceof Jt.MeshFaceMaterial)), + (e.groupsNeedUpdate = !1)), + at[e.id]), + o = 0, + a = i.length; + o < a; + o++ + ) { + var s = i[o]; + if (void 0 === s.__webglVertexBuffer) { + h = c = u = h = l = void 0; + var l = s; + if ( + ((l.__webglVertexBuffer = Mt.createBuffer()), + (l.__webglNormalBuffer = Mt.createBuffer()), + (l.__webglTangentBuffer = Mt.createBuffer()), + (l.__webglColorBuffer = Mt.createBuffer()), + (l.__webglUVBuffer = Mt.createBuffer()), + (l.__webglUV2Buffer = Mt.createBuffer()), + (l.__webglSkinIndicesBuffer = Mt.createBuffer()), + (l.__webglSkinWeightsBuffer = Mt.createBuffer()), + (l.__webglFaceBuffer = Mt.createBuffer()), + (l.__webglLineBuffer = Mt.createBuffer()), + (h = l.numMorphTargets)) + ) { + l.__webglMorphTargetsBuffers = []; + for (var u = 0, c = h; u < c; u++) + l.__webglMorphTargetsBuffers.push(Mt.createBuffer()); + } + if ((h = l.numMorphNormals)) { + l.__webglMorphNormalsBuffers = []; + for (u = 0, c = h; u < c; u++) + l.__webglMorphNormalsBuffers.push(Mt.createBuffer()); + } + ft.info.memory.geometries++, + (E = + w = + C = + B = + y = + p = + b = + v = + h = + p = + m = + g = + f = + d = + g = + p = + h = + A = + void 0); + var A = s, + h = t, + p = h.geometry, + d = 3 * (g = A.faces3).length, + f = +g.length, + g = 3 * g.length, + m = ot(h, A), + p = + ((A.__vertexArray = new Float32Array(3 * d)), + (A.__normalArray = new Float32Array(3 * d)), + (A.__colorArray = new Float32Array(3 * d)), + (A.__uvArray = new Float32Array(2 * d)), + 1 < p.faceVertexUvs.length && + (A.__uv2Array = new Float32Array(2 * d)), + p.hasTangents && (A.__tangentArray = new Float32Array(4 * d)), + h.geometry.skinWeights.length && + h.geometry.skinIndices.length && + ((A.__skinIndexArray = new Float32Array(4 * d)), + (A.__skinWeightArray = new Float32Array(4 * d))), + null !== D.get('OES_element_index_uint') && 21845 < f + ? Uint32Array + : Uint16Array); + if ( + ((A.__typeArray = p), + (A.__faceArray = new p(3 * f)), + (A.__lineArray = new p(2 * g)), + (h = A.numMorphTargets)) + ) { + A.__morphTargetsArrays = []; + for (var v = 0, b = h; v < b; v++) + A.__morphTargetsArrays.push(new Float32Array(3 * d)); + } + if ((p = A.numMorphNormals)) { + A.__morphNormalsArrays = []; + for (v = 0, b = p; v < b; v++) + A.__morphNormalsArrays.push(new Float32Array(3 * d)); + } + if ( + ((A.__webglFaceCount = 3 * f), + (A.__webglLineCount = 2 * g), + m.attributes) + ) + for (var y in (void 0 === A.__webglCustomAttributesList && + (A.__webglCustomAttributesList = []), + m.attributes)) { + var w, + E, + B = m.attributes[y], + C = {}; + for (w in B) C[w] = B[w]; + (C.__webglInitialized && !C.createUniqueBuffers) || + ((C.__webglInitialized = !0), + (E = 1), + 'v2' === C.type + ? (E = 2) + : 'v3' === C.type + ? (E = 3) + : 'v4' === C.type + ? (E = 4) + : 'c' === C.type && (E = 3), + (C.size = E), + (C.array = new Float32Array(d * E)), + (C.buffer = Mt.createBuffer()), + (C.buffer.belongsToAttribute = y), + (B.needsUpdate = !0), + (C.__original = B)), + A.__webglCustomAttributesList.push(C); + } + (A.__inittedArrays = !0), + (e.verticesNeedUpdate = !0), + (e.morphTargetsNeedUpdate = !0), + (e.elementsNeedUpdate = !0), + (e.uvsNeedUpdate = !0), + (e.normalsNeedUpdate = !0), + (e.tangentsNeedUpdate = !0), + (r = e.colorsNeedUpdate = !0); + } else r = !1; + (!r && void 0 !== t.__webglActive) || S(x, s, t); + } + t.__webglActive = !0; + } + function S(t, e, n) { + var r = n.id; + (t[r] = t[r] || []), + t[r].push({ id: r, buffer: e, object: n, material: null, z: 0 }); + } + function Tt(t) { + var e = t.geometry; + if (e instanceof Jt.BufferGeometry) + for ( + var U = e.attributes, N = e.attributesKeys, n = 0, P = N.length; + n < P; + n++ + ) { + var r = N[n], + i = U[r], + r = 'index' === r ? Mt.ELEMENT_ARRAY_BUFFER : Mt.ARRAY_BUFFER; + void 0 === i.buffer + ? ((i.buffer = Mt.createBuffer()), + Mt.bindBuffer(r, i.buffer), + Mt.bufferData( + r, + i.array, + i instanceof Jt.DynamicBufferAttribute + ? Mt.DYNAMIC_DRAW + : Mt.STATIC_DRAW, + ), + (i.needsUpdate = !1)) + : !0 === i.needsUpdate && + (Mt.bindBuffer(r, i.buffer), + void 0 === i.updateRange || -1 === i.updateRange.count + ? Mt.bufferSubData(r, 0, i.array) + : 0 === i.updateRange.count + ? console.error( + 'THREE.WebGLRenderer.updateObject: using updateRange for THREE.DynamicBufferAttribute and marked as needsUpdate but count is 0, ensure you are using set methods or updating manually.', + ) + : (Mt.bufferSubData( + r, + i.updateRange.offset * i.array.BYTES_PER_ELEMENT, + i.array.subarray( + i.updateRange.offset, + i.updateRange.offset + i.updateRange.count, + ), + ), + (i.updateRange.count = 0)), + (i.needsUpdate = !1)); + } + else if (t instanceof Jt.Mesh) { + !0 === e.groupsNeedUpdate && pt(t, e); + for (var L = at[e.id], n = 0, Y = L.length; n < Y; n++) { + var O = L[n], + o = (B = ot(t, O)).attributes && Rt(B); + (e.verticesNeedUpdate || + e.morphTargetsNeedUpdate || + e.elementsNeedUpdate || + e.uvsNeedUpdate || + e.normalsNeedUpdate || + e.colorsNeedUpdate || + e.tangentsNeedUpdate || + o) && + st(O, t, Mt.DYNAMIC_DRAW, !e.dynamic, B); + } + (e.verticesNeedUpdate = !1), + (e.morphTargetsNeedUpdate = !1), + (e.elementsNeedUpdate = !1), + (e.uvsNeedUpdate = !1), + (e.normalsNeedUpdate = !1), + (e.colorsNeedUpdate = !1), + (e.tangentsNeedUpdate = !1), + B.attributes && Ut(B); + } else if (t instanceof Jt.Line) { + o = (B = ot(t, e)).attributes && Rt(B); + if ( + e.verticesNeedUpdate || + e.colorsNeedUpdate || + e.lineDistancesNeedUpdate || + o + ) { + var a, + s, + l, + u, + c, + A, + h, + G, + p, + d, + f, + g, + m = e, + v = Mt.DYNAMIC_DRAW, + z = m.vertices, + H = m.colors, + j = m.lineDistances, + V = z.length, + q = H.length, + W = j.length, + b = m.__vertexArray, + y = m.__colorArray, + J = m.__lineDistanceArray, + w = m.verticesNeedUpdate, + K = m.colorsNeedUpdate, + Z = m.lineDistancesNeedUpdate, + E = m.__webglCustomAttributesList; + if (w) { + for (a = 0; a < V; a++) + (u = z[a]), + (b[(c = 3 * a)] = u.x), + (b[c + 1] = u.y), + (b[c + 2] = u.z); + Mt.bindBuffer(Mt.ARRAY_BUFFER, m.__webglVertexBuffer), + Mt.bufferData(Mt.ARRAY_BUFFER, b, v); + } + if (K) { + for (s = 0; s < q; s++) + (A = H[s]), + (y[(c = 3 * s)] = A.r), + (y[c + 1] = A.g), + (y[c + 2] = A.b); + Mt.bindBuffer(Mt.ARRAY_BUFFER, m.__webglColorBuffer), + Mt.bufferData(Mt.ARRAY_BUFFER, y, v); + } + if (Z) { + for (l = 0; l < W; l++) J[l] = j[l]; + Mt.bindBuffer(Mt.ARRAY_BUFFER, m.__webglLineDistanceBuffer), + Mt.bufferData(Mt.ARRAY_BUFFER, J, v); + } + if (E) + for (h = 0, G = E.length; h < G; h++) + if ( + (g = E[h]).needsUpdate && + (void 0 === g.boundTo || 'vertices' === g.boundTo) + ) { + if (((c = 0), (d = g.value.length), 1 === g.size)) + for (p = 0; p < d; p++) g.array[p] = g.value[p]; + else if (2 === g.size) + for (p = 0; p < d; p++) + (f = g.value[p]), + (g.array[c] = f.x), + (g.array[c + 1] = f.y), + (c += 2); + else if (3 === g.size) + if ('c' === g.type) + for (p = 0; p < d; p++) + (f = g.value[p]), + (g.array[c] = f.r), + (g.array[c + 1] = f.g), + (g.array[c + 2] = f.b), + (c += 3); + else + for (p = 0; p < d; p++) + (f = g.value[p]), + (g.array[c] = f.x), + (g.array[c + 1] = f.y), + (g.array[c + 2] = f.z), + (c += 3); + else if (4 === g.size) + for (p = 0; p < d; p++) + (f = g.value[p]), + (g.array[c] = f.x), + (g.array[c + 1] = f.y), + (g.array[c + 2] = f.z), + (g.array[c + 3] = f.w), + (c += 4); + Mt.bindBuffer(Mt.ARRAY_BUFFER, g.buffer), + Mt.bufferData(Mt.ARRAY_BUFFER, g.array, v), + (g.needsUpdate = !1); + } + } + (e.verticesNeedUpdate = !1), + (e.colorsNeedUpdate = !1), + (e.lineDistancesNeedUpdate = !1), + B.attributes && Ut(B); + } else if (t instanceof Jt.PointCloud) { + var B, + o = (B = ot(t, e)).attributes && Rt(B); + if (e.verticesNeedUpdate || e.colorsNeedUpdate || o) { + var C, + x, + I, + M, + D, + S, + X, + k, + F, + Q, + _, + w = e, + $ = Mt.DYNAMIC_DRAW, + tt = w.vertices, + et = tt.length, + nt = w.colors, + rt = nt.length, + T = w.__vertexArray, + R = w.__colorArray, + K = w.verticesNeedUpdate, + Z = w.colorsNeedUpdate, + it = w.__webglCustomAttributesList; + if (K) { + for (C = 0; C < et; C++) + (I = tt[C]), + (T[(M = 3 * C)] = I.x), + (T[M + 1] = I.y), + (T[M + 2] = I.z); + Mt.bindBuffer(Mt.ARRAY_BUFFER, w.__webglVertexBuffer), + Mt.bufferData(Mt.ARRAY_BUFFER, T, $); + } + if (Z) { + for (x = 0; x < rt; x++) + (D = nt[x]), + (R[(M = 3 * x)] = D.r), + (R[M + 1] = D.g), + (R[M + 2] = D.b); + Mt.bindBuffer(Mt.ARRAY_BUFFER, w.__webglColorBuffer), + Mt.bufferData(Mt.ARRAY_BUFFER, R, $); + } + if (it) + for (S = 0, X = it.length; S < X; S++) { + if ( + (_ = it[S]).needsUpdate && + (void 0 === _.boundTo || 'vertices' === _.boundTo) + ) + if (((F = _.value.length), (M = 0), 1 === _.size)) + for (k = 0; k < F; k++) _.array[k] = _.value[k]; + else if (2 === _.size) + for (k = 0; k < F; k++) + (Q = _.value[k]), + (_.array[M] = Q.x), + (_.array[M + 1] = Q.y), + (M += 2); + else if (3 === _.size) + if ('c' === _.type) + for (k = 0; k < F; k++) + (Q = _.value[k]), + (_.array[M] = Q.r), + (_.array[M + 1] = Q.g), + (_.array[M + 2] = Q.b), + (M += 3); + else + for (k = 0; k < F; k++) + (Q = _.value[k]), + (_.array[M] = Q.x), + (_.array[M + 1] = Q.y), + (_.array[M + 2] = Q.z), + (M += 3); + else if (4 === _.size) + for (k = 0; k < F; k++) + (Q = _.value[k]), + (_.array[M] = Q.x), + (_.array[M + 1] = Q.y), + (_.array[M + 2] = Q.z), + (_.array[M + 3] = Q.w), + (M += 4); + Mt.bindBuffer(Mt.ARRAY_BUFFER, _.buffer), + Mt.bufferData(Mt.ARRAY_BUFFER, _.array, $), + (_.needsUpdate = !1); + } + } + (e.verticesNeedUpdate = !1), + (e.colorsNeedUpdate = !1), + B.attributes && Ut(B); + } + } + function Rt(t) { + for (var e in t.attributes) if (t.attributes[e].needsUpdate) return !0; + return !1; + } + function Ut(t) { + for (var e in t.attributes) t.attributes[e].needsUpdate = !1; + } + var Nt = { + MeshDepthMaterial: 'depth', + MeshNormalMaterial: 'normal', + MeshBasicMaterial: 'basic', + MeshLambertMaterial: 'lambert', + MeshPhongMaterial: 'phong', + LineBasicMaterial: 'basic', + LineDashedMaterial: 'dashed', + PointCloudMaterial: 'particle_basic', + }; + function Pt(t, e, n, r) { + t.addEventListener('dispose', Z); + var i = Nt[t.type], + o = + (i + ? ((o = Jt.ShaderLib[i]), + (t.__webglShader = { + uniforms: Jt.UniformsUtils.clone(o.uniforms), + vertexShader: o.vertexShader, + fragmentShader: o.fragmentShader, + })) + : (t.__webglShader = { + uniforms: t.uniforms, + vertexShader: t.vertexShader, + fragmentShader: t.fragmentShader, + }), + (function (t) { + for ( + var e = 0, n = 0, r = 0, i = 0, o = 0, a = t.length; + o < a; + o++ + ) { + var s = t[o]; + s.onlyShadow || + !1 === s.visible || + (s instanceof Jt.DirectionalLight && e++, + s instanceof Jt.PointLight && n++, + s instanceof Jt.SpotLight && r++, + s instanceof Jt.HemisphereLight && i++); + } + return { directional: e, point: n, spot: r, hemi: i }; + })(e)), + e = (function (t) { + for (var e = 0, n = 0, r = t.length; n < r; n++) { + var i = t[n]; + i.castShadow && + (i instanceof Jt.SpotLight && e++, + i instanceof Jt.DirectionalLight && !i.shadowCascade && e++); + } + return e; + })(e), + a = (function (t) { + { + var e; + return kt && t && t.skeleton && t.skeleton.useVertexTexture + ? 1024 + : ((e = Mt.getParameter(Mt.MAX_VERTEX_UNIFORM_VECTORS)), + (e = Math.floor((e - 20) / 4)), + void 0 !== t && + t instanceof Jt.SkinnedMesh && + (e = Math.min(t.skeleton.bones.length, e)) < + t.skeleton.bones.length && + Jt.warn( + 'WebGLRenderer: too many bones - ' + + t.skeleton.bones.length + + ', this GPU supports just ' + + e + + ' (try OpenGL instead of ANGLE)', + ), + e); + } + })(r), + s = { + precision: y, + supportsVertexTextures: H, + map: !!t.map, + envMap: !!t.envMap, + envMapMode: t.envMap && t.envMap.mapping, + lightMap: !!t.lightMap, + bumpMap: !!t.bumpMap, + normalMap: !!t.normalMap, + specularMap: !!t.specularMap, + alphaMap: !!t.alphaMap, + combine: t.combine, + vertexColors: t.vertexColors, + fog: n, + useFog: t.fog, + fogExp: n instanceof Jt.FogExp2, + flatShading: t.shading === Jt.FlatShading, + sizeAttenuation: t.sizeAttenuation, + logarithmicDepthBuffer: Ct, + skinning: t.skinning, + maxBones: a, + useVertexTexture: kt && r && r.skeleton && r.skeleton.useVertexTexture, + morphTargets: t.morphTargets, + morphNormals: t.morphNormals, + maxMorphTargets: ft.maxMorphTargets, + maxMorphNormals: ft.maxMorphNormals, + maxDirLights: o.directional, + maxPointLights: o.point, + maxSpotLights: o.spot, + maxHemiLights: o.hemi, + maxShadows: e, + shadowMapEnabled: ft.shadowMapEnabled && r.receiveShadow && 0 < e, + shadowMapType: ft.shadowMapType, + shadowMapDebug: ft.shadowMapDebug, + shadowMapCascade: ft.shadowMapCascade, + alphaTest: t.alphaTest, + metal: t.metal, + wrapAround: t.wrapAround, + doubleSided: t.side === Jt.DoubleSide, + flipSided: t.side === Jt.BackSide, + }, + l = []; + if ( + (i ? l.push(i) : (l.push(t.fragmentShader), l.push(t.vertexShader)), + void 0 !== t.defines) + ) + for (var u in t.defines) l.push(u), l.push(t.defines[u]); + for (u in s) l.push(u), l.push(s[u]); + for (var c, A = l.join(), h = 0, p = w.length; h < p; h++) { + var d = w[h]; + if (d.code === A) { + (c = d).usedTimes++; + break; + } + } + void 0 === c && + ((c = new Jt.WebGLProgram(ft, A, t, s)), + w.push(c), + (ft.info.memory.programs = w.length)); + var f, + g = (t.program = c).attributes; + if (t.morphTargets) + for ( + var m = 'morphTarget', v = (t.numSupportedMorphTargets = 0); + v < ft.maxMorphTargets; + v++ + ) + 0 <= g[m + v] && t.numSupportedMorphTargets++; + if (t.morphNormals) + for ( + m = 'morphNormal', v = t.numSupportedMorphNormals = 0; + v < ft.maxMorphNormals; + v++ + ) + 0 <= g[m + v] && t.numSupportedMorphNormals++; + for (f in ((t.uniformsList = []), t.__webglShader.uniforms)) { + var b = t.program.uniforms[f]; + b && t.uniformsList.push([t.__webglShader.uniforms[f], b]); + } + } + function Lt(t) { + !0 === t.transparent + ? M.setBlending( + t.blending, + t.blendEquation, + t.blendSrc, + t.blendDst, + t.blendEquationAlpha, + t.blendSrcAlpha, + t.blendDstAlpha, + ) + : M.setBlending(Jt.NoBlending), + M.setDepthTest(t.depthTest), + M.setDepthWrite(t.depthWrite), + M.setColorWrite(t.colorWrite), + M.setPolygonOffset( + t.polygonOffset, + t.polygonOffsetFactor, + t.polygonOffsetUnits, + ); + } + function Yt(t, U, e, n, r) { + (It = 0), + n.needsUpdate && + (n.program && _t(n), Pt(n, U, e, r), (n.needsUpdate = !1)), + n.morphTargets && + !r.__webglMorphTargetInfluences && + (r.__webglMorphTargetInfluences = new Float32Array(ft.maxMorphTargets)); + var i, + o = !1, + a = !1, + s = !1, + l = n.program, + u = l.uniforms, + c = n.__webglShader.uniforms; + if ( + (l.id !== xt && (Mt.useProgram(l.program), (xt = l.id), (s = a = o = !0)), + n.id !== gt && (-1 === gt && (s = !0), (gt = n.id), (a = !0)), + (!o && t === mt) || + (Mt.uniformMatrix4fv( + u.projectionMatrix, + !1, + t.projectionMatrix.elements, + ), + Ct && + Mt.uniform1f(u.logDepthBufFC, 2 / (Math.log(t.far + 1) / Math.LN2)), + t !== mt && (mt = t), + (n instanceof Jt.ShaderMaterial || + n instanceof Jt.MeshPhongMaterial || + n.envMap) && + null !== u.cameraPosition && + (vt.setFromMatrixPosition(t.matrixWorld), + Mt.uniform3f(u.cameraPosition, vt.x, vt.y, vt.z)), + (n instanceof Jt.MeshPhongMaterial || + n instanceof Jt.MeshLambertMaterial || + n instanceof Jt.MeshBasicMaterial || + n instanceof Jt.ShaderMaterial || + n.skinning) && + null !== u.viewMatrix && + Mt.uniformMatrix4fv(u.viewMatrix, !1, t.matrixWorldInverse.elements)), + n.skinning && + (r.bindMatrix && + null !== u.bindMatrix && + Mt.uniformMatrix4fv(u.bindMatrix, !1, r.bindMatrix.elements), + r.bindMatrixInverse && + null !== u.bindMatrixInverse && + Mt.uniformMatrix4fv( + u.bindMatrixInverse, + !1, + r.bindMatrixInverse.elements, + ), + kt && r.skeleton && r.skeleton.useVertexTexture + ? (null !== u.boneTexture && + ((o = zt()), + Mt.uniform1i(u.boneTexture, o), + ft.setTexture(r.skeleton.boneTexture, o)), + null !== u.boneTextureWidth && + Mt.uniform1i(u.boneTextureWidth, r.skeleton.boneTextureWidth), + null !== u.boneTextureHeight && + Mt.uniform1i(u.boneTextureHeight, r.skeleton.boneTextureHeight)) + : r.skeleton && + r.skeleton.boneMatrices && + null !== u.boneGlobalMatrices && + Mt.uniformMatrix4fv( + u.boneGlobalMatrices, + !1, + r.skeleton.boneMatrices, + )), + a) + ) { + if ( + (e && + n.fog && + ((o = e), + ((a = c).fogColor.value = o.color), + o instanceof Jt.Fog + ? ((a.fogNear.value = o.near), (a.fogFar.value = o.far)) + : o instanceof Jt.FogExp2 && (a.fogDensity.value = o.density)), + n instanceof Jt.MeshPhongMaterial || + n instanceof Jt.MeshLambertMaterial || + n.lights) + ) { + if (yt) { + var A, + h, + p, + d, + f, + g, + s = !0, + N = U, + P = 0, + L = 0, + Y = 0, + e = Dt, + O = e.directional.colors, + G = e.directional.positions, + z = e.point.colors, + H = e.point.positions, + j = e.point.distances, + V = e.point.decays, + q = e.spot.colors, + W = e.spot.positions, + J = e.spot.distances, + K = e.spot.directions, + Z = e.spot.anglesCos, + X = e.spot.exponents, + $ = e.spot.decays, + tt = e.hemi.skyColors, + et = e.hemi.groundColors, + nt = e.hemi.positions, + m = 0, + v = 0, + b = 0, + y = 0, + rt = 0, + it = 0, + ot = 0, + at = 0, + w = 0, + E = 0, + B = 0, + C = 0; + for (A = 0, h = N.length; A < h; A++) + (p = N[A]).onlyShadow || + ((d = p.color), + (f = p.intensity), + (g = p.distance), + p instanceof Jt.AmbientLight + ? p.visible && ((P += d.r), (L += d.g), (Y += d.b)) + : p instanceof Jt.DirectionalLight + ? ((rt += 1), + p.visible && + (bt.setFromMatrixPosition(p.matrixWorld), + vt.setFromMatrixPosition(p.target.matrixWorld), + bt.sub(vt), + bt.normalize(), + (G[(w = 3 * m)] = bt.x), + (G[1 + w] = bt.y), + (G[2 + w] = bt.z), + wt(O, w, d, f), + (m += 1))) + : p instanceof Jt.PointLight + ? ((it += 1), + p.visible && + (wt(z, (E = 3 * v), d, f), + vt.setFromMatrixPosition(p.matrixWorld), + (H[E] = vt.x), + (H[1 + E] = vt.y), + (H[2 + E] = vt.z), + (j[v] = g), + (V[v] = 0 === p.distance ? 0 : p.decay), + (v += 1))) + : p instanceof Jt.SpotLight + ? ((ot += 1), + p.visible && + (wt(q, (B = 3 * b), d, f), + bt.setFromMatrixPosition(p.matrixWorld), + (W[B] = bt.x), + (W[1 + B] = bt.y), + (W[2 + B] = bt.z), + (J[b] = g), + vt.setFromMatrixPosition(p.target.matrixWorld), + bt.sub(vt), + bt.normalize(), + (K[B] = bt.x), + (K[1 + B] = bt.y), + (K[2 + B] = bt.z), + (Z[b] = Math.cos(p.angle)), + (X[b] = p.exponent), + ($[b] = 0 === p.distance ? 0 : p.decay), + (b += 1))) + : p instanceof Jt.HemisphereLight && + ((at += 1), + p.visible && + (bt.setFromMatrixPosition(p.matrixWorld), + bt.normalize(), + (nt[(C = 3 * y)] = bt.x), + (nt[1 + C] = bt.y), + (nt[2 + C] = bt.z), + (d = p.color), + (g = p.groundColor), + wt(tt, C, d, f), + wt(et, C, g, f), + (y += 1)))); + for (A = 3 * m, h = Math.max(O.length, 3 * rt); A < h; A++) O[A] = 0; + for (A = 3 * v, h = Math.max(z.length, 3 * it); A < h; A++) z[A] = 0; + for (A = 3 * b, h = Math.max(q.length, 3 * ot); A < h; A++) q[A] = 0; + for (A = 3 * y, h = Math.max(tt.length, 3 * at); A < h; A++) + tt[A] = 0; + for (A = 3 * y, h = Math.max(et.length, 3 * at); A < h; A++) + et[A] = 0; + (e.directional.length = m), + (e.point.length = v), + (e.spot.length = b), + (e.hemi.length = y), + (e.ambient[0] = P), + (e.ambient[1] = L), + (e.ambient[2] = Y), + (yt = !1); + } + s + ? ((a = Dt), + ((o = c).ambientLightColor.value = a.ambient), + (o.directionalLightColor.value = a.directional.colors), + (o.directionalLightDirection.value = a.directional.positions), + (o.pointLightColor.value = a.point.colors), + (o.pointLightPosition.value = a.point.positions), + (o.pointLightDistance.value = a.point.distances), + (o.pointLightDecay.value = a.point.decays), + (o.spotLightColor.value = a.spot.colors), + (o.spotLightPosition.value = a.spot.positions), + (o.spotLightDistance.value = a.spot.distances), + (o.spotLightDirection.value = a.spot.directions), + (o.spotLightAngleCos.value = a.spot.anglesCos), + (o.spotLightExponent.value = a.spot.exponents), + (o.spotLightDecay.value = a.spot.decays), + (o.hemisphereLightSkyColor.value = a.hemi.skyColors), + (o.hemisphereLightGroundColor.value = a.hemi.groundColors), + (o.hemisphereLightDirection.value = a.hemi.positions), + Gt(c, !0)) + : Gt(c, !1); + } + if ( + ((n instanceof Jt.MeshBasicMaterial || + n instanceof Jt.MeshLambertMaterial || + n instanceof Jt.MeshPhongMaterial) && + ((e = n), + ((s = c).opacity.value = e.opacity), + (s.diffuse.value = e.color), + (s.map.value = e.map), + (s.lightMap.value = e.lightMap), + (s.specularMap.value = e.specularMap), + (s.alphaMap.value = e.alphaMap), + e.bumpMap && + ((s.bumpMap.value = e.bumpMap), (s.bumpScale.value = e.bumpScale)), + e.normalMap && + ((s.normalMap.value = e.normalMap), + s.normalScale.value.copy(e.normalScale)), + e.map + ? (i = e.map) + : e.specularMap + ? (i = e.specularMap) + : e.normalMap + ? (i = e.normalMap) + : e.bumpMap + ? (i = e.bumpMap) + : e.alphaMap && (i = e.alphaMap), + void 0 !== i && + ((o = i.offset), + (i = i.repeat), + s.offsetRepeat.value.set(o.x, o.y, i.x, i.y)), + (s.envMap.value = e.envMap), + (s.flipEnvMap.value = + e.envMap instanceof Jt.WebGLRenderTargetCube ? 1 : -1), + (s.reflectivity.value = e.reflectivity), + (s.refractionRatio.value = e.refractionRatio)), + n instanceof Jt.LineBasicMaterial + ? Ot(c, n) + : n instanceof Jt.LineDashedMaterial + ? (Ot(c, n), + (a = n), + ((o = c).dashSize.value = a.dashSize), + (o.totalSize.value = a.dashSize + a.gapSize), + (o.scale.value = a.scale)) + : n instanceof Jt.PointCloudMaterial + ? ((i = n), + ((s = c).psColor.value = i.color), + (s.opacity.value = i.opacity), + (s.size.value = i.size), + (s.scale.value = dt.height / 2), + (s.map.value = i.map), + null !== i.map && + ((e = i.map.offset), + (i = i.map.repeat), + s.offsetRepeat.value.set(e.x, e.y, i.x, i.y))) + : n instanceof Jt.MeshPhongMaterial + ? ((o = n), + ((a = c).shininess.value = o.shininess), + (a.emissive.value = o.emissive), + (a.specular.value = o.specular), + o.wrapAround && a.wrapRGB.value.copy(o.wrapRGB)) + : n instanceof Jt.MeshLambertMaterial + ? ((s = n), + ((e = c).emissive.value = s.emissive), + s.wrapAround && e.wrapRGB.value.copy(s.wrapRGB)) + : n instanceof Jt.MeshDepthMaterial + ? ((c.mNear.value = t.near), + (c.mFar.value = t.far), + (c.opacity.value = n.opacity)) + : n instanceof Jt.MeshNormalMaterial && + (c.opacity.value = n.opacity), + r.receiveShadow && !n._shadowPass) + ) { + var x = c, + st = U; + if (x.shadowMatrix) + for (var I = 0, lt = 0, ut = st.length; lt < ut; lt++) { + var M = st[lt]; + M.castShadow && + (M instanceof Jt.SpotLight || + (M instanceof Jt.DirectionalLight && !M.shadowCascade)) && + ((x.shadowMap.value[I] = M.shadowMap), + (x.shadowMapSize.value[I] = M.shadowMapSize), + (x.shadowMatrix.value[I] = M.shadowMatrix), + (x.shadowDarkness.value[I] = M.shadowDarkness), + (x.shadowBias.value[I] = M.shadowBias), + I++); + } + } + for ( + var D, S, k, ct = n.uniformsList, At = 0, ht = ct.length; + At < ht; + At++ + ) { + var F = ct[At][0]; + if (!1 !== F.needsUpdate) { + var pt = F.type, + Q = F.value, + _ = ct[At][1]; + switch (pt) { + case '1i': + Mt.uniform1i(_, Q); + break; + case '1f': + Mt.uniform1f(_, Q); + break; + case '2f': + Mt.uniform2f(_, Q[0], Q[1]); + break; + case '3f': + Mt.uniform3f(_, Q[0], Q[1], Q[2]); + break; + case '4f': + Mt.uniform4f(_, Q[0], Q[1], Q[2], Q[3]); + break; + case '1iv': + Mt.uniform1iv(_, Q); + break; + case '3iv': + Mt.uniform3iv(_, Q); + break; + case '1fv': + Mt.uniform1fv(_, Q); + break; + case '2fv': + Mt.uniform2fv(_, Q); + break; + case '3fv': + Mt.uniform3fv(_, Q); + break; + case '4fv': + Mt.uniform4fv(_, Q); + break; + case 'Matrix3fv': + Mt.uniformMatrix3fv(_, !1, Q); + break; + case 'Matrix4fv': + Mt.uniformMatrix4fv(_, !1, Q); + break; + case 'i': + Mt.uniform1i(_, Q); + break; + case 'f': + Mt.uniform1f(_, Q); + break; + case 'v2': + Mt.uniform2f(_, Q.x, Q.y); + break; + case 'v3': + Mt.uniform3f(_, Q.x, Q.y, Q.z); + break; + case 'v4': + Mt.uniform4f(_, Q.x, Q.y, Q.z, Q.w); + break; + case 'c': + Mt.uniform3f(_, Q.r, Q.g, Q.b); + break; + case 'iv1': + Mt.uniform1iv(_, Q); + break; + case 'iv': + Mt.uniform3iv(_, Q); + break; + case 'fv1': + Mt.uniform1fv(_, Q); + break; + case 'fv': + Mt.uniform3fv(_, Q); + break; + case 'v2v': + void 0 === F._array && + (F._array = new Float32Array(2 * Q.length)); + for (var T = 0, R = Q.length; T < R; T++) + (k = 2 * T), (F._array[k] = Q[T].x), (F._array[k + 1] = Q[T].y); + Mt.uniform2fv(_, F._array); + break; + case 'v3v': + void 0 === F._array && + (F._array = new Float32Array(3 * Q.length)); + for (T = 0, R = Q.length; T < R; T++) + (k = 3 * T), + (F._array[k] = Q[T].x), + (F._array[k + 1] = Q[T].y), + (F._array[k + 2] = Q[T].z); + Mt.uniform3fv(_, F._array); + break; + case 'v4v': + void 0 === F._array && + (F._array = new Float32Array(4 * Q.length)); + for (T = 0, R = Q.length; T < R; T++) + (k = 4 * T), + (F._array[k] = Q[T].x), + (F._array[k + 1] = Q[T].y), + (F._array[k + 2] = Q[T].z), + (F._array[k + 3] = Q[T].w); + Mt.uniform4fv(_, F._array); + break; + case 'm3': + Mt.uniformMatrix3fv(_, !1, Q.elements); + break; + case 'm3v': + void 0 === F._array && + (F._array = new Float32Array(9 * Q.length)); + for (T = 0, R = Q.length; T < R; T++) + Q[T].flattenToArrayOffset(F._array, 9 * T); + Mt.uniformMatrix3fv(_, !1, F._array); + break; + case 'm4': + Mt.uniformMatrix4fv(_, !1, Q.elements); + break; + case 'm4v': + void 0 === F._array && + (F._array = new Float32Array(16 * Q.length)); + for (T = 0, R = Q.length; T < R; T++) + Q[T].flattenToArrayOffset(F._array, 16 * T); + Mt.uniformMatrix4fv(_, !1, F._array); + break; + case 't': + if (((D = Q), (S = zt()), Mt.uniform1i(_, S), !D)) continue; + D instanceof Jt.CubeTexture || + (D.image instanceof Array && 6 === D.image.length) + ? (function (t, e) { + if (6 === t.image.length) + if (t.needsUpdate) { + t.image.__webglTextureCube || + (t.addEventListener('dispose', Qt), + (t.image.__webglTextureCube = Mt.createTexture()), + ft.info.memory.textures++), + Mt.activeTexture(Mt.TEXTURE0 + e), + Mt.bindTexture( + Mt.TEXTURE_CUBE_MAP, + t.image.__webglTextureCube, + ), + Mt.pixelStorei(Mt.UNPACK_FLIP_Y_WEBGL, t.flipY); + for ( + var n = t instanceof Jt.CompressedTexture, + r = t.image[0] instanceof Jt.DataTexture, + i = [], + o = 0; + o < 6; + o++ + ) + !ft.autoScaleCubemaps || n || r + ? (i[o] = r ? t.image[o].image : t.image[o]) + : (i[o] = jt(t.image[o], St)); + var a = i[0], + a = + Jt.Math.isPowerOfTwo(a.width) && + Jt.Math.isPowerOfTwo(a.height), + s = Bt(t.format), + l = Bt(t.type); + Et(Mt.TEXTURE_CUBE_MAP, t, a); + for (o = 0; o < 6; o++) + if (n) + for ( + var u, c = i[o].mipmaps, A = 0, h = c.length; + A < h; + A++ + ) + (u = c[A]), + t.format !== Jt.RGBAFormat && + t.format !== Jt.RGBFormat + ? -1 < Ft().indexOf(s) + ? Mt.compressedTexImage2D( + Mt.TEXTURE_CUBE_MAP_POSITIVE_X + o, + A, + s, + u.width, + u.height, + 0, + u.data, + ) + : Jt.warn( + 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setCubeTexture()', + ) + : Mt.texImage2D( + Mt.TEXTURE_CUBE_MAP_POSITIVE_X + o, + A, + s, + u.width, + u.height, + 0, + s, + l, + u.data, + ); + else + r + ? Mt.texImage2D( + Mt.TEXTURE_CUBE_MAP_POSITIVE_X + o, + 0, + s, + i[o].width, + i[o].height, + 0, + s, + l, + i[o].data, + ) + : Mt.texImage2D( + Mt.TEXTURE_CUBE_MAP_POSITIVE_X + o, + 0, + s, + s, + l, + i[o], + ); + t.generateMipmaps && + a && + Mt.generateMipmap(Mt.TEXTURE_CUBE_MAP), + (t.needsUpdate = !1), + t.onUpdate && t.onUpdate(); + } else + Mt.activeTexture(Mt.TEXTURE0 + e), + Mt.bindTexture( + Mt.TEXTURE_CUBE_MAP, + t.image.__webglTextureCube, + ); + })(D, S) + : D instanceof Jt.WebGLRenderTargetCube + ? (function (t, e) { + Mt.activeTexture(Mt.TEXTURE0 + e), + Mt.bindTexture(Mt.TEXTURE_CUBE_MAP, t.__webglTexture); + })(D, S) + : ft.setTexture(D, S); + break; + case 'tv': + void 0 === F._array && (F._array = []); + for (T = 0, R = F.value.length; T < R; T++) F._array[T] = zt(); + Mt.uniform1iv(_, F._array); + for (T = 0, R = F.value.length; T < R; T++) + (D = F.value[T]), (S = F._array[T]), D && ft.setTexture(D, S); + break; + default: + Jt.warn('THREE.WebGLRenderer: Unknown uniform type: ' + pt); + } + } + } + } + return ( + (a = u), + (o = r), + Mt.uniformMatrix4fv(a.modelViewMatrix, !1, o._modelViewMatrix.elements), + a.normalMatrix && + Mt.uniformMatrix3fv(a.normalMatrix, !1, o._normalMatrix.elements), + null !== u.modelMatrix && + Mt.uniformMatrix4fv(u.modelMatrix, !1, r.matrixWorld.elements), + l + ); + } + function Ot(t, e) { + (t.diffuse.value = e.color), (t.opacity.value = e.opacity); + } + function Gt(t, e) { + (t.ambientLightColor.needsUpdate = e), + (t.directionalLightColor.needsUpdate = e), + (t.directionalLightDirection.needsUpdate = e), + (t.pointLightColor.needsUpdate = e), + (t.pointLightPosition.needsUpdate = e), + (t.pointLightDistance.needsUpdate = e), + (t.pointLightDecay.needsUpdate = e), + (t.spotLightColor.needsUpdate = e), + (t.spotLightPosition.needsUpdate = e), + (t.spotLightDistance.needsUpdate = e), + (t.spotLightDirection.needsUpdate = e), + (t.spotLightAngleCos.needsUpdate = e), + (t.spotLightExponent.needsUpdate = e), + (t.spotLightDecay.needsUpdate = e), + (t.hemisphereLightSkyColor.needsUpdate = e), + (t.hemisphereLightGroundColor.needsUpdate = e), + (t.hemisphereLightDirection.needsUpdate = e); + } + function zt() { + var t = It; + return ( + G <= t && + Jt.warn( + 'WebGLRenderer: trying to use ' + + t + + ' texture units while this GPU supports only ' + + G, + ), + (It += 1), + t + ); + } + function Ht(t, e) { + t._modelViewMatrix.multiplyMatrices(e.matrixWorldInverse, t.matrixWorld), + t._normalMatrix.getNormalMatrix(t._modelViewMatrix); + } + function wt(t, e, n, r) { + (t[e] = n.r * r), (t[e + 1] = n.g * r), (t[e + 2] = n.b * r); + } + function Et(t, e, n) { + n + ? (Mt.texParameteri(t, Mt.TEXTURE_WRAP_S, Bt(e.wrapS)), + Mt.texParameteri(t, Mt.TEXTURE_WRAP_T, Bt(e.wrapT)), + Mt.texParameteri(t, Mt.TEXTURE_MAG_FILTER, Bt(e.magFilter)), + Mt.texParameteri(t, Mt.TEXTURE_MIN_FILTER, Bt(e.minFilter))) + : (Mt.texParameteri(t, Mt.TEXTURE_WRAP_S, Mt.CLAMP_TO_EDGE), + Mt.texParameteri(t, Mt.TEXTURE_WRAP_T, Mt.CLAMP_TO_EDGE), + (e.wrapS === Jt.ClampToEdgeWrapping && + e.wrapT === Jt.ClampToEdgeWrapping) || + Jt.warn( + 'THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping. ( ' + + e.sourceFile + + ' )', + ), + Mt.texParameteri(t, Mt.TEXTURE_MAG_FILTER, Wt(e.magFilter)), + Mt.texParameteri(t, Mt.TEXTURE_MIN_FILTER, Wt(e.minFilter)), + e.minFilter !== Jt.NearestFilter && + e.minFilter !== Jt.LinearFilter && + Jt.warn( + 'THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter. ( ' + + e.sourceFile + + ' )', + )), + (n = D.get('EXT_texture_filter_anisotropic')) && + e.type !== Jt.FloatType && + e.type !== Jt.HalfFloatType && + (1 < e.anisotropy || e.__currentAnisotropy) && + (Mt.texParameterf( + t, + n.TEXTURE_MAX_ANISOTROPY_EXT, + Math.min(e.anisotropy, ft.getMaxAnisotropy()), + ), + (e.__currentAnisotropy = e.anisotropy)); + } + function jt(t, e) { + var n; + return t.width > e || t.height > e + ? ((e = e / Math.max(t.width, t.height)), + ((n = document.createElement('canvas')).width = Math.floor( + t.width * e, + )), + (n.height = Math.floor(t.height * e)), + n + .getContext('2d') + .drawImage(t, 0, 0, t.width, t.height, 0, 0, n.width, n.height), + Jt.warn( + 'THREE.WebGLRenderer: image is too big (' + + t.width + + 'x' + + t.height + + '). Resized to ' + + n.width + + 'x' + + n.height, + t, + ), + n) + : t; + } + function Vt(t, e, n) { + Mt.bindFramebuffer(Mt.FRAMEBUFFER, t), + Mt.framebufferTexture2D( + Mt.FRAMEBUFFER, + Mt.COLOR_ATTACHMENT0, + n, + e.__webglTexture, + 0, + ); + } + function qt(t, e) { + Mt.bindRenderbuffer(Mt.RENDERBUFFER, t), + e.depthBuffer && !e.stencilBuffer + ? (Mt.renderbufferStorage( + Mt.RENDERBUFFER, + Mt.DEPTH_COMPONENT16, + e.width, + e.height, + ), + Mt.framebufferRenderbuffer( + Mt.FRAMEBUFFER, + Mt.DEPTH_ATTACHMENT, + Mt.RENDERBUFFER, + t, + )) + : e.depthBuffer && e.stencilBuffer + ? (Mt.renderbufferStorage( + Mt.RENDERBUFFER, + Mt.DEPTH_STENCIL, + e.width, + e.height, + ), + Mt.framebufferRenderbuffer( + Mt.FRAMEBUFFER, + Mt.DEPTH_STENCIL_ATTACHMENT, + Mt.RENDERBUFFER, + t, + )) + : Mt.renderbufferStorage( + Mt.RENDERBUFFER, + Mt.RGBA4, + e.width, + e.height, + ); + } + function Wt(t) { + return t === Jt.NearestFilter || + t === Jt.NearestMipMapNearestFilter || + t === Jt.NearestMipMapLinearFilter + ? Mt.NEAREST + : Mt.LINEAR; + } + function Bt(t) { + var e; + if (t === Jt.RepeatWrapping) return Mt.REPEAT; + if (t === Jt.ClampToEdgeWrapping) return Mt.CLAMP_TO_EDGE; + if (t === Jt.MirroredRepeatWrapping) return Mt.MIRRORED_REPEAT; + if (t === Jt.NearestFilter) return Mt.NEAREST; + if (t === Jt.NearestMipMapNearestFilter) return Mt.NEAREST_MIPMAP_NEAREST; + if (t === Jt.NearestMipMapLinearFilter) return Mt.NEAREST_MIPMAP_LINEAR; + if (t === Jt.LinearFilter) return Mt.LINEAR; + if (t === Jt.LinearMipMapNearestFilter) return Mt.LINEAR_MIPMAP_NEAREST; + if (t === Jt.LinearMipMapLinearFilter) return Mt.LINEAR_MIPMAP_LINEAR; + if (t === Jt.UnsignedByteType) return Mt.UNSIGNED_BYTE; + if (t === Jt.UnsignedShort4444Type) return Mt.UNSIGNED_SHORT_4_4_4_4; + if (t === Jt.UnsignedShort5551Type) return Mt.UNSIGNED_SHORT_5_5_5_1; + if (t === Jt.UnsignedShort565Type) return Mt.UNSIGNED_SHORT_5_6_5; + if (t === Jt.ByteType) return Mt.BYTE; + if (t === Jt.ShortType) return Mt.SHORT; + if (t === Jt.UnsignedShortType) return Mt.UNSIGNED_SHORT; + if (t === Jt.IntType) return Mt.INT; + if (t === Jt.UnsignedIntType) return Mt.UNSIGNED_INT; + if (t === Jt.FloatType) return Mt.FLOAT; + if ( + null !== (e = D.get('OES_texture_half_float')) && + t === Jt.HalfFloatType + ) + return e.HALF_FLOAT_OES; + if (t === Jt.AlphaFormat) return Mt.ALPHA; + if (t === Jt.RGBFormat) return Mt.RGB; + if (t === Jt.RGBAFormat) return Mt.RGBA; + if (t === Jt.LuminanceFormat) return Mt.LUMINANCE; + if (t === Jt.LuminanceAlphaFormat) return Mt.LUMINANCE_ALPHA; + if (t === Jt.AddEquation) return Mt.FUNC_ADD; + if (t === Jt.SubtractEquation) return Mt.FUNC_SUBTRACT; + if (t === Jt.ReverseSubtractEquation) return Mt.FUNC_REVERSE_SUBTRACT; + if (t === Jt.ZeroFactor) return Mt.ZERO; + if (t === Jt.OneFactor) return Mt.ONE; + if (t === Jt.SrcColorFactor) return Mt.SRC_COLOR; + if (t === Jt.OneMinusSrcColorFactor) return Mt.ONE_MINUS_SRC_COLOR; + if (t === Jt.SrcAlphaFactor) return Mt.SRC_ALPHA; + if (t === Jt.OneMinusSrcAlphaFactor) return Mt.ONE_MINUS_SRC_ALPHA; + if (t === Jt.DstAlphaFactor) return Mt.DST_ALPHA; + if (t === Jt.OneMinusDstAlphaFactor) return Mt.ONE_MINUS_DST_ALPHA; + if (t === Jt.DstColorFactor) return Mt.DST_COLOR; + if (t === Jt.OneMinusDstColorFactor) return Mt.ONE_MINUS_DST_COLOR; + if (t === Jt.SrcAlphaSaturateFactor) return Mt.SRC_ALPHA_SATURATE; + if (null !== (e = D.get('WEBGL_compressed_texture_s3tc'))) { + if (t === Jt.RGB_S3TC_DXT1_Format) return e.COMPRESSED_RGB_S3TC_DXT1_EXT; + if (t === Jt.RGBA_S3TC_DXT1_Format) + return e.COMPRESSED_RGBA_S3TC_DXT1_EXT; + if (t === Jt.RGBA_S3TC_DXT3_Format) + return e.COMPRESSED_RGBA_S3TC_DXT3_EXT; + if (t === Jt.RGBA_S3TC_DXT5_Format) + return e.COMPRESSED_RGBA_S3TC_DXT5_EXT; + } + if (null !== (e = D.get('WEBGL_compressed_texture_pvrtc'))) { + if (t === Jt.RGB_PVRTC_4BPPV1_Format) + return e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG; + if (t === Jt.RGB_PVRTC_2BPPV1_Format) + return e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG; + if (t === Jt.RGBA_PVRTC_4BPPV1_Format) + return e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; + if (t === Jt.RGBA_PVRTC_2BPPV1_Format) + return e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG; + } + if (null !== (e = D.get('EXT_blend_minmax'))) { + if (t === Jt.MinEquation) return e.MIN_EXT; + if (t === Jt.MaxEquation) return e.MAX_EXT; + } + return 0; + } + (this.setFaceCulling = function (t, e) { + t === Jt.CullFaceNone + ? Mt.disable(Mt.CULL_FACE) + : (e === Jt.FrontFaceDirectionCW + ? Mt.frontFace(Mt.CW) + : Mt.frontFace(Mt.CCW), + t === Jt.CullFaceBack + ? Mt.cullFace(Mt.BACK) + : t === Jt.CullFaceFront + ? Mt.cullFace(Mt.FRONT) + : Mt.cullFace(Mt.FRONT_AND_BACK), + Mt.enable(Mt.CULL_FACE)); + }), + (this.setMaterialFaces = function (t) { + M.setDoubleSided(t.side === Jt.DoubleSide), + M.setFlipSided(t.side === Jt.BackSide); + }), + (this.uploadTexture = function (t) { + void 0 === t.__webglInit && + ((t.__webglInit = !0), + t.addEventListener('dispose', Qt), + (t.__webglTexture = Mt.createTexture()), + ft.info.memory.textures++), + Mt.bindTexture(Mt.TEXTURE_2D, t.__webglTexture), + Mt.pixelStorei(Mt.UNPACK_FLIP_Y_WEBGL, t.flipY), + Mt.pixelStorei(Mt.UNPACK_PREMULTIPLY_ALPHA_WEBGL, t.premultiplyAlpha), + Mt.pixelStorei(Mt.UNPACK_ALIGNMENT, t.unpackAlignment), + (t.image = jt(t.image, z)); + var e = t.image, + n = Jt.Math.isPowerOfTwo(e.width) && Jt.Math.isPowerOfTwo(e.height), + r = Bt(t.format), + i = Bt(t.type); + Et(Mt.TEXTURE_2D, t, n); + var o, + a = t.mipmaps; + if (t instanceof Jt.DataTexture) + if (0 < a.length && n) { + for (var s = 0, l = a.length; s < l; s++) + (o = a[s]), + Mt.texImage2D( + Mt.TEXTURE_2D, + s, + r, + o.width, + o.height, + 0, + r, + i, + o.data, + ); + t.generateMipmaps = !1; + } else + Mt.texImage2D( + Mt.TEXTURE_2D, + 0, + r, + e.width, + e.height, + 0, + r, + i, + e.data, + ); + else if (t instanceof Jt.CompressedTexture) + for (s = 0, l = a.length; s < l; s++) + (o = a[s]), + t.format !== Jt.RGBAFormat && t.format !== Jt.RGBFormat + ? -1 < Ft().indexOf(r) + ? Mt.compressedTexImage2D( + Mt.TEXTURE_2D, + s, + r, + o.width, + o.height, + 0, + o.data, + ) + : Jt.warn( + 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()', + ) + : Mt.texImage2D( + Mt.TEXTURE_2D, + s, + r, + o.width, + o.height, + 0, + r, + i, + o.data, + ); + else if (0 < a.length && n) { + for (s = 0, l = a.length; s < l; s++) + (o = a[s]), Mt.texImage2D(Mt.TEXTURE_2D, s, r, r, i, o); + t.generateMipmaps = !1; + } else Mt.texImage2D(Mt.TEXTURE_2D, 0, r, r, i, t.image); + t.generateMipmaps && n && Mt.generateMipmap(Mt.TEXTURE_2D), + (t.needsUpdate = !1), + t.onUpdate && t.onUpdate(); + }), + (this.setTexture = function (t, e) { + Mt.activeTexture(Mt.TEXTURE0 + e), + t.needsUpdate + ? ft.uploadTexture(t) + : Mt.bindTexture(Mt.TEXTURE_2D, t.__webglTexture); + }), + (this.setRenderTarget = function (t) { + var e, + n, + r, + i, + o = t instanceof Jt.WebGLRenderTargetCube; + if (t && void 0 === t.__webglFramebuffer) { + void 0 === t.depthBuffer && (t.depthBuffer = !0), + void 0 === t.stencilBuffer && (t.stencilBuffer = !0), + t.addEventListener('dispose', K), + (t.__webglTexture = Mt.createTexture()), + ft.info.memory.textures++; + var a = Jt.Math.isPowerOfTwo(t.width) && Jt.Math.isPowerOfTwo(t.height), + s = Bt(t.format), + l = Bt(t.type); + if (o) { + (t.__webglFramebuffer = []), + (t.__webglRenderbuffer = []), + Mt.bindTexture(Mt.TEXTURE_CUBE_MAP, t.__webglTexture), + Et(Mt.TEXTURE_CUBE_MAP, t, a); + for (var u = 0; u < 6; u++) + (t.__webglFramebuffer[u] = Mt.createFramebuffer()), + (t.__webglRenderbuffer[u] = Mt.createRenderbuffer()), + Mt.texImage2D( + Mt.TEXTURE_CUBE_MAP_POSITIVE_X + u, + 0, + s, + t.width, + t.height, + 0, + s, + l, + null, + ), + Vt( + t.__webglFramebuffer[u], + t, + Mt.TEXTURE_CUBE_MAP_POSITIVE_X + u, + ), + qt(t.__webglRenderbuffer[u], t); + a && Mt.generateMipmap(Mt.TEXTURE_CUBE_MAP); + } else + (t.__webglFramebuffer = Mt.createFramebuffer()), + t.shareDepthFrom + ? (t.__webglRenderbuffer = t.shareDepthFrom.__webglRenderbuffer) + : (t.__webglRenderbuffer = Mt.createRenderbuffer()), + Mt.bindTexture(Mt.TEXTURE_2D, t.__webglTexture), + Et(Mt.TEXTURE_2D, t, a), + Mt.texImage2D( + Mt.TEXTURE_2D, + 0, + s, + t.width, + t.height, + 0, + s, + l, + null, + ), + Vt(t.__webglFramebuffer, t, Mt.TEXTURE_2D), + t.shareDepthFrom + ? t.depthBuffer && !t.stencilBuffer + ? Mt.framebufferRenderbuffer( + Mt.FRAMEBUFFER, + Mt.DEPTH_ATTACHMENT, + Mt.RENDERBUFFER, + t.__webglRenderbuffer, + ) + : t.depthBuffer && + t.stencilBuffer && + Mt.framebufferRenderbuffer( + Mt.FRAMEBUFFER, + Mt.DEPTH_STENCIL_ATTACHMENT, + Mt.RENDERBUFFER, + t.__webglRenderbuffer, + ) + : qt(t.__webglRenderbuffer, t), + a && Mt.generateMipmap(Mt.TEXTURE_2D); + o + ? Mt.bindTexture(Mt.TEXTURE_CUBE_MAP, null) + : Mt.bindTexture(Mt.TEXTURE_2D, null), + Mt.bindRenderbuffer(Mt.RENDERBUFFER, null), + Mt.bindFramebuffer(Mt.FRAMEBUFFER, null); + } + (a = t + ? ((e = o + ? t.__webglFramebuffer[t.activeCubeFace] + : t.__webglFramebuffer), + (n = t.width), + (r = t.height), + (i = 0)) + : ((e = null), (n = g), (r = m), (i = d), f)), + e !== p && + (Mt.bindFramebuffer(Mt.FRAMEBUFFER, e), + Mt.viewport(i, a, n, r), + (p = e)), + (_ = n), + (T = r); + }), + (this.readRenderTargetPixels = function (t, e, n, r, i, o) { + var a; + t instanceof Jt.WebGLRenderTarget + ? t.__webglFramebuffer && + (t.format !== Jt.RGBAFormat + ? console.error( + 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA format. readPixels can read only RGBA format.', + ) + : ((a = !1), + t.__webglFramebuffer !== p && + (Mt.bindFramebuffer(Mt.FRAMEBUFFER, t.__webglFramebuffer), + (a = !0)), + Mt.checkFramebufferStatus(Mt.FRAMEBUFFER) === + Mt.FRAMEBUFFER_COMPLETE + ? Mt.readPixels(e, n, r, i, Mt.RGBA, Mt.UNSIGNED_BYTE, o) + : console.error( + 'THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.', + ), + a && Mt.bindFramebuffer(Mt.FRAMEBUFFER, p))) + : console.error( + 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.', + ); + }), + (this.initMaterial = function () { + Jt.warn('THREE.WebGLRenderer: .initMaterial() has been removed.'); + }), + (this.addPrePlugin = function () { + Jt.warn('THREE.WebGLRenderer: .addPrePlugin() has been removed.'); + }), + (this.addPostPlugin = function () { + Jt.warn('THREE.WebGLRenderer: .addPostPlugin() has been removed.'); + }), + (this.updateShadowMap = function () { + Jt.warn('THREE.WebGLRenderer: .updateShadowMap() has been removed.'); + }); + }), + (Jt.WebGLRenderTarget = function (t, e, n) { + (this.width = t), + (this.height = e), + (this.wrapS = + void 0 !== (n = n || {}).wrapS ? n.wrapS : Jt.ClampToEdgeWrapping), + (this.wrapT = void 0 !== n.wrapT ? n.wrapT : Jt.ClampToEdgeWrapping), + (this.magFilter = void 0 !== n.magFilter ? n.magFilter : Jt.LinearFilter), + (this.minFilter = + void 0 !== n.minFilter ? n.minFilter : Jt.LinearMipMapLinearFilter), + (this.anisotropy = void 0 !== n.anisotropy ? n.anisotropy : 1), + (this.offset = new Jt.Vector2(0, 0)), + (this.repeat = new Jt.Vector2(1, 1)), + (this.format = void 0 !== n.format ? n.format : Jt.RGBAFormat), + (this.type = void 0 !== n.type ? n.type : Jt.UnsignedByteType), + (this.depthBuffer = void 0 === n.depthBuffer || n.depthBuffer), + (this.stencilBuffer = void 0 === n.stencilBuffer || n.stencilBuffer), + (this.generateMipmaps = !0), + (this.shareDepthFrom = + void 0 !== n.shareDepthFrom ? n.shareDepthFrom : null); + }), + (Jt.WebGLRenderTarget.prototype = { + constructor: Jt.WebGLRenderTarget, + setSize: function (t, e) { + (this.width === t && this.height === e) || + ((this.width = t), (this.height = e), this.dispose()); + }, + clone: function () { + var t = new Jt.WebGLRenderTarget(this.width, this.height); + return ( + (t.wrapS = this.wrapS), + (t.wrapT = this.wrapT), + (t.magFilter = this.magFilter), + (t.minFilter = this.minFilter), + (t.anisotropy = this.anisotropy), + t.offset.copy(this.offset), + t.repeat.copy(this.repeat), + (t.format = this.format), + (t.type = this.type), + (t.depthBuffer = this.depthBuffer), + (t.stencilBuffer = this.stencilBuffer), + (t.generateMipmaps = this.generateMipmaps), + (t.shareDepthFrom = this.shareDepthFrom), + t + ); + }, + dispose: function () { + this.dispatchEvent({ type: 'dispose' }); + }, + }), + Jt.EventDispatcher.prototype.apply(Jt.WebGLRenderTarget.prototype), + (Jt.WebGLRenderTargetCube = function (t, e, n) { + Jt.WebGLRenderTarget.call(this, t, e, n), (this.activeCubeFace = 0); + }), + (Jt.WebGLRenderTargetCube.prototype = Object.create( + Jt.WebGLRenderTarget.prototype, + )), + (Jt.WebGLRenderTargetCube.prototype.constructor = Jt.WebGLRenderTargetCube), + (Jt.WebGLExtensions = function (n) { + var r = {}; + this.get = function (t) { + if (void 0 !== r[t]) return r[t]; + var e; + switch (t) { + case 'EXT_texture_filter_anisotropic': + e = + n.getExtension('EXT_texture_filter_anisotropic') || + n.getExtension('MOZ_EXT_texture_filter_anisotropic') || + n.getExtension('WEBKIT_EXT_texture_filter_anisotropic'); + break; + case 'WEBGL_compressed_texture_s3tc': + e = + n.getExtension('WEBGL_compressed_texture_s3tc') || + n.getExtension('MOZ_WEBGL_compressed_texture_s3tc') || + n.getExtension('WEBKIT_WEBGL_compressed_texture_s3tc'); + break; + case 'WEBGL_compressed_texture_pvrtc': + e = + n.getExtension('WEBGL_compressed_texture_pvrtc') || + n.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc'); + break; + default: + e = n.getExtension(t); + } + return ( + null === e && + Jt.warn('THREE.WebGLRenderer: ' + t + ' extension not supported.'), + (r[t] = e) + ); + }; + }), + (Jt.WebGLProgram = + ((Qn = 0), + function (t, e, n, r) { + var i = t, + o = i.context, + a = n.defines, + s = n.__webglShader.uniforms, + l = n.attributes, + u = n.__webglShader.vertexShader, + c = n.__webglShader.fragmentShader, + A = n.index0AttributeName, + h = + (void 0 === A && !0 === r.morphTargets && (A = 'position'), + 'SHADOWMAP_TYPE_BASIC'), + p = + (r.shadowMapType === Jt.PCFShadowMap + ? (h = 'SHADOWMAP_TYPE_PCF') + : r.shadowMapType === Jt.PCFSoftShadowMap && + (h = 'SHADOWMAP_TYPE_PCF_SOFT'), + 'ENVMAP_TYPE_CUBE'), + d = 'ENVMAP_MODE_REFLECTION', + f = 'ENVMAP_BLENDING_MULTIPLY'; + if (r.envMap) { + switch (n.envMap.mapping) { + case Jt.CubeReflectionMapping: + case Jt.CubeRefractionMapping: + p = 'ENVMAP_TYPE_CUBE'; + break; + case Jt.EquirectangularReflectionMapping: + case Jt.EquirectangularRefractionMapping: + p = 'ENVMAP_TYPE_EQUIREC'; + break; + case Jt.SphericalReflectionMapping: + p = 'ENVMAP_TYPE_SPHERE'; + } + switch (n.envMap.mapping) { + case Jt.CubeRefractionMapping: + case Jt.EquirectangularRefractionMapping: + d = 'ENVMAP_MODE_REFRACTION'; + } + switch (n.combine) { + case Jt.MultiplyOperation: + f = 'ENVMAP_BLENDING_MULTIPLY'; + break; + case Jt.MixOperation: + f = 'ENVMAP_BLENDING_MIX'; + break; + case Jt.AddOperation: + f = 'ENVMAP_BLENDING_ADD'; + } + } + var g, + m, + t = 0 < t.gammaFactor ? t.gammaFactor : 1, + a = (function (t) { + var e, + n, + r = []; + for (n in t) !1 !== (e = t[n]) && r.push('#define ' + n + ' ' + e); + return r.join('\n'); + })(a), + v = o.createProgram(), + n = + n instanceof Jt.RawShaderMaterial + ? (g = '') + : ((g = [ + 'precision ' + r.precision + ' float;', + 'precision ' + r.precision + ' int;', + a, + r.supportsVertexTextures ? '#define VERTEX_TEXTURES' : '', + i.gammaInput ? '#define GAMMA_INPUT' : '', + i.gammaOutput ? '#define GAMMA_OUTPUT' : '', + '#define GAMMA_FACTOR ' + t, + '#define MAX_DIR_LIGHTS ' + r.maxDirLights, + '#define MAX_POINT_LIGHTS ' + r.maxPointLights, + '#define MAX_SPOT_LIGHTS ' + r.maxSpotLights, + '#define MAX_HEMI_LIGHTS ' + r.maxHemiLights, + '#define MAX_SHADOWS ' + r.maxShadows, + '#define MAX_BONES ' + r.maxBones, + r.map ? '#define USE_MAP' : '', + r.envMap ? '#define USE_ENVMAP' : '', + r.envMap ? '#define ' + d : '', + r.lightMap ? '#define USE_LIGHTMAP' : '', + r.bumpMap ? '#define USE_BUMPMAP' : '', + r.normalMap ? '#define USE_NORMALMAP' : '', + r.specularMap ? '#define USE_SPECULARMAP' : '', + r.alphaMap ? '#define USE_ALPHAMAP' : '', + r.vertexColors ? '#define USE_COLOR' : '', + r.flatShading ? '#define FLAT_SHADED' : '', + r.skinning ? '#define USE_SKINNING' : '', + r.useVertexTexture ? '#define BONE_TEXTURE' : '', + r.morphTargets ? '#define USE_MORPHTARGETS' : '', + r.morphNormals ? '#define USE_MORPHNORMALS' : '', + r.wrapAround ? '#define WRAP_AROUND' : '', + r.doubleSided ? '#define DOUBLE_SIDED' : '', + r.flipSided ? '#define FLIP_SIDED' : '', + r.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', + r.shadowMapEnabled ? '#define ' + h : '', + r.shadowMapDebug ? '#define SHADOWMAP_DEBUG' : '', + r.shadowMapCascade ? '#define SHADOWMAP_CASCADE' : '', + r.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '', + r.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', + 'uniform mat4 modelMatrix;', + 'uniform mat4 modelViewMatrix;', + 'uniform mat4 projectionMatrix;', + 'uniform mat4 viewMatrix;', + 'uniform mat3 normalMatrix;', + 'uniform vec3 cameraPosition;', + 'attribute vec3 position;', + 'attribute vec3 normal;', + 'attribute vec2 uv;', + 'attribute vec2 uv2;', + '#ifdef USE_COLOR', + '\tattribute vec3 color;', + '#endif', + '#ifdef USE_MORPHTARGETS', + '\tattribute vec3 morphTarget0;', + '\tattribute vec3 morphTarget1;', + '\tattribute vec3 morphTarget2;', + '\tattribute vec3 morphTarget3;', + '\t#ifdef USE_MORPHNORMALS', + '\t\tattribute vec3 morphNormal0;', + '\t\tattribute vec3 morphNormal1;', + '\t\tattribute vec3 morphNormal2;', + '\t\tattribute vec3 morphNormal3;', + '\t#else', + '\t\tattribute vec3 morphTarget4;', + '\t\tattribute vec3 morphTarget5;', + '\t\tattribute vec3 morphTarget6;', + '\t\tattribute vec3 morphTarget7;', + '\t#endif', + '#endif', + '#ifdef USE_SKINNING', + '\tattribute vec4 skinIndex;', + '\tattribute vec4 skinWeight;', + '#endif', + '', + ].join('\n')), + [ + r.bumpMap || r.normalMap || r.flatShading + ? '#extension GL_OES_standard_derivatives : enable' + : '', + 'precision ' + r.precision + ' float;', + 'precision ' + r.precision + ' int;', + a, + '#define MAX_DIR_LIGHTS ' + r.maxDirLights, + '#define MAX_POINT_LIGHTS ' + r.maxPointLights, + '#define MAX_SPOT_LIGHTS ' + r.maxSpotLights, + '#define MAX_HEMI_LIGHTS ' + r.maxHemiLights, + '#define MAX_SHADOWS ' + r.maxShadows, + r.alphaTest ? '#define ALPHATEST ' + r.alphaTest : '', + i.gammaInput ? '#define GAMMA_INPUT' : '', + i.gammaOutput ? '#define GAMMA_OUTPUT' : '', + '#define GAMMA_FACTOR ' + t, + r.useFog && r.fog ? '#define USE_FOG' : '', + r.useFog && r.fogExp ? '#define FOG_EXP2' : '', + r.map ? '#define USE_MAP' : '', + r.envMap ? '#define USE_ENVMAP' : '', + r.envMap ? '#define ' + p : '', + r.envMap ? '#define ' + d : '', + r.envMap ? '#define ' + f : '', + r.lightMap ? '#define USE_LIGHTMAP' : '', + r.bumpMap ? '#define USE_BUMPMAP' : '', + r.normalMap ? '#define USE_NORMALMAP' : '', + r.specularMap ? '#define USE_SPECULARMAP' : '', + r.alphaMap ? '#define USE_ALPHAMAP' : '', + r.vertexColors ? '#define USE_COLOR' : '', + r.flatShading ? '#define FLAT_SHADED' : '', + r.metal ? '#define METAL' : '', + r.wrapAround ? '#define WRAP_AROUND' : '', + r.doubleSided ? '#define DOUBLE_SIDED' : '', + r.flipSided ? '#define FLIP_SIDED' : '', + r.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', + r.shadowMapEnabled ? '#define ' + h : '', + r.shadowMapDebug ? '#define SHADOWMAP_DEBUG' : '', + r.shadowMapCascade ? '#define SHADOWMAP_CASCADE' : '', + r.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', + 'uniform mat4 viewMatrix;', + 'uniform vec3 cameraPosition;', + '', + ].join('\n')), + a = new Jt.WebGLShader(o, o.VERTEX_SHADER, g + u), + i = new Jt.WebGLShader(o, o.FRAGMENT_SHADER, n + c), + t = + (o.attachShader(v, a), + o.attachShader(v, i), + void 0 !== A && o.bindAttribLocation(v, 0, A), + o.linkProgram(v), + o.getProgramInfoLog(v)), + b = + (!1 === o.getProgramParameter(v, o.LINK_STATUS) && + Jt.error( + 'THREE.WebGLProgram: shader error: ' + o.getError(), + 'gl.VALIDATE_STATUS', + o.getProgramParameter(v, o.VALIDATE_STATUS), + 'gl.getPRogramInfoLog', + t, + ), + o.deleteShader(a), + o.deleteShader(i), + [ + 'viewMatrix', + 'modelViewMatrix', + 'projectionMatrix', + 'normalMatrix', + 'modelMatrix', + 'cameraPosition', + 'morphTargetInfluences', + 'bindMatrix', + 'bindMatrixInverse', + ]); + for (m in (r.useVertexTexture + ? (b.push('boneTexture'), + b.push('boneTextureWidth'), + b.push('boneTextureHeight')) + : b.push('boneGlobalMatrices'), + r.logarithmicDepthBuffer && b.push('logDepthBufFC'), + s)) + b.push(m); + this.uniforms = (function (t, e, n) { + for (var r = {}, i = 0, o = n.length; i < o; i++) { + var a = n[i]; + r[a] = t.getUniformLocation(e, a); + } + return r; + })(o, v, b); + for ( + var b = [ + 'position', + 'normal', + 'uv', + 'uv2', + 'tangent', + 'color', + 'skinIndex', + 'skinWeight', + 'lineDistance', + ], + y = 0; + y < r.maxMorphTargets; + y++ + ) + b.push('morphTarget' + y); + for (var w, y = 0; y < r.maxMorphNormals; y++) b.push('morphNormal' + y); + for (w in l) b.push(w); + return ( + (this.attributes = (function (t, e, n) { + for (var r = {}, i = 0, o = n.length; i < o; i++) { + var a = n[i]; + r[a] = t.getAttribLocation(e, a); + } + return r; + })(o, v, b)), + (this.attributesKeys = Object.keys(this.attributes)), + (this.id = Qn++), + (this.code = e), + (this.usedTimes = 1), + (this.program = v), + (this.vertexShader = a), + (this.fragmentShader = i), + this + ); + })), + (Jt.WebGLShader = function (t, e, n) { + e = t.createShader(e); + return ( + t.shaderSource(e, n), + t.compileShader(e), + !1 === t.getShaderParameter(e, t.COMPILE_STATUS) && + Jt.error("THREE.WebGLShader: Shader couldn't compile."), + e + ); + }), + (Jt.WebGLState = function (s, l) { + var n = new Uint8Array(16), + r = new Uint8Array(16), + u = null, + c = null, + A = null, + h = null, + p = null, + d = null, + f = null, + e = null, + i = null, + o = null, + a = null, + g = null, + m = null, + v = null, + b = null, + y = null; + (this.initAttributes = function () { + for (var t = 0, e = n.length; t < e; t++) n[t] = 0; + }), + (this.enableAttribute = function (t) { + (n[t] = 1), 0 === r[t] && (s.enableVertexAttribArray(t), (r[t] = 1)); + }), + (this.disableUnusedAttributes = function () { + for (var t = 0, e = r.length; t < e; t++) + r[t] !== n[t] && (s.disableVertexAttribArray(t), (r[t] = 0)); + }), + (this.setBlending = function (t, e, n, r, i, o, a) { + t !== u && + (t === Jt.NoBlending + ? s.disable(s.BLEND) + : t === Jt.AdditiveBlending + ? (s.enable(s.BLEND), + s.blendEquation(s.FUNC_ADD), + s.blendFunc(s.SRC_ALPHA, s.ONE)) + : t === Jt.SubtractiveBlending + ? (s.enable(s.BLEND), + s.blendEquation(s.FUNC_ADD), + s.blendFunc(s.ZERO, s.ONE_MINUS_SRC_COLOR)) + : t === Jt.MultiplyBlending + ? (s.enable(s.BLEND), + s.blendEquation(s.FUNC_ADD), + s.blendFunc(s.ZERO, s.SRC_COLOR)) + : t === Jt.CustomBlending + ? s.enable(s.BLEND) + : (s.enable(s.BLEND), + s.blendEquationSeparate(s.FUNC_ADD, s.FUNC_ADD), + s.blendFuncSeparate( + s.SRC_ALPHA, + s.ONE_MINUS_SRC_ALPHA, + s.ONE, + s.ONE_MINUS_SRC_ALPHA, + )), + (u = t)), + t === Jt.CustomBlending + ? ((i = i || e), + (o = o || n), + (a = a || r), + (e === c && i === p) || + (s.blendEquationSeparate(l(e), l(i)), (c = e), (p = i)), + (n === A && r === h && o === d && a === f) || + (s.blendFuncSeparate(l(n), l(r), l(o), l(a)), + (A = n), + (h = r), + (d = o), + (f = a))) + : (f = d = p = h = A = c = null); + }), + (this.setDepthTest = function (t) { + e !== t && + (t ? s.enable(s.DEPTH_TEST) : s.disable(s.DEPTH_TEST), (e = t)); + }), + (this.setDepthWrite = function (t) { + i !== t && (s.depthMask(t), (i = t)); + }), + (this.setColorWrite = function (t) { + o !== t && (s.colorMask(t, t, t, t), (o = t)); + }), + (this.setDoubleSided = function (t) { + a !== t && (t ? s.disable(s.CULL_FACE) : s.enable(s.CULL_FACE), (a = t)); + }), + (this.setFlipSided = function (t) { + g !== t && (t ? s.frontFace(s.CW) : s.frontFace(s.CCW), (g = t)); + }), + (this.setLineWidth = function (t) { + t !== m && (s.lineWidth(t), (m = t)); + }), + (this.setPolygonOffset = function (t, e, n) { + v !== t && + (t ? s.enable(s.POLYGON_OFFSET_FILL) : s.disable(s.POLYGON_OFFSET_FILL), + (v = t)), + !t || (b === e && y === n) || (s.polygonOffset(e, n), (b = e), (y = n)); + }), + (this.reset = function () { + for (var t = 0; t < r.length; t++) r[t] = 0; + g = a = o = i = e = u = null; + }); + }), + (Jt.LensFlarePlugin = function (v, b) { + function y() { + var t, + e, + n, + r = new Float32Array([ + -1, -1, 0, 0, 1, -1, 1, 0, 1, 1, 1, 1, -1, 1, 0, 1, + ]), + i = new Uint16Array([0, 1, 2, 0, 2, 3]); + (w = S.createBuffer()), + (E = S.createBuffer()), + S.bindBuffer(S.ARRAY_BUFFER, w), + S.bufferData(S.ARRAY_BUFFER, r, S.STATIC_DRAW), + S.bindBuffer(S.ELEMENT_ARRAY_BUFFER, E), + S.bufferData(S.ELEMENT_ARRAY_BUFFER, i, S.STATIC_DRAW), + (M = S.createTexture()), + (D = S.createTexture()), + S.bindTexture(S.TEXTURE_2D, M), + S.texImage2D( + S.TEXTURE_2D, + 0, + S.RGB, + 16, + 16, + 0, + S.RGB, + S.UNSIGNED_BYTE, + null, + ), + S.texParameteri(S.TEXTURE_2D, S.TEXTURE_WRAP_S, S.CLAMP_TO_EDGE), + S.texParameteri(S.TEXTURE_2D, S.TEXTURE_WRAP_T, S.CLAMP_TO_EDGE), + S.texParameteri(S.TEXTURE_2D, S.TEXTURE_MAG_FILTER, S.NEAREST), + S.texParameteri(S.TEXTURE_2D, S.TEXTURE_MIN_FILTER, S.NEAREST), + S.bindTexture(S.TEXTURE_2D, D), + S.texImage2D( + S.TEXTURE_2D, + 0, + S.RGBA, + 16, + 16, + 0, + S.RGBA, + S.UNSIGNED_BYTE, + null, + ), + S.texParameteri(S.TEXTURE_2D, S.TEXTURE_WRAP_S, S.CLAMP_TO_EDGE), + S.texParameteri(S.TEXTURE_2D, S.TEXTURE_WRAP_T, S.CLAMP_TO_EDGE), + S.texParameteri(S.TEXTURE_2D, S.TEXTURE_MAG_FILTER, S.NEAREST), + S.texParameteri(S.TEXTURE_2D, S.TEXTURE_MIN_FILTER, S.NEAREST), + (r = (I = 0 < S.getParameter(S.MAX_VERTEX_TEXTURE_IMAGE_UNITS)) + ? { + vertexShader: [ + 'uniform lowp int renderType;', + 'uniform vec3 screenPosition;', + 'uniform vec2 scale;', + 'uniform float rotation;', + 'uniform sampler2D occlusionMap;', + 'attribute vec2 position;', + 'attribute vec2 uv;', + 'varying vec2 vUV;', + 'varying float vVisibility;', + 'void main() {', + 'vUV = uv;', + 'vec2 pos = position;', + 'if( renderType == 2 ) {', + 'vec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );', + 'visibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );', + 'visibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );', + 'visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );', + 'visibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );', + 'visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );', + 'visibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );', + 'visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );', + 'visibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );', + 'vVisibility = visibility.r / 9.0;', + 'vVisibility *= 1.0 - visibility.g / 9.0;', + 'vVisibility *= visibility.b / 9.0;', + 'vVisibility *= 1.0 - visibility.a / 9.0;', + 'pos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;', + 'pos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;', + '}', + 'gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );', + '}', + ].join('\n'), + fragmentShader: [ + 'uniform lowp int renderType;', + 'uniform sampler2D map;', + 'uniform float opacity;', + 'uniform vec3 color;', + 'varying vec2 vUV;', + 'varying float vVisibility;', + 'void main() {', + 'if( renderType == 0 ) {', + 'gl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );', + '} else if( renderType == 1 ) {', + 'gl_FragColor = texture2D( map, vUV );', + '} else {', + 'vec4 texture = texture2D( map, vUV );', + 'texture.a *= opacity * vVisibility;', + 'gl_FragColor = texture;', + 'gl_FragColor.rgb *= color;', + '}', + '}', + ].join('\n'), + } + : { + vertexShader: [ + 'uniform lowp int renderType;', + 'uniform vec3 screenPosition;', + 'uniform vec2 scale;', + 'uniform float rotation;', + 'attribute vec2 position;', + 'attribute vec2 uv;', + 'varying vec2 vUV;', + 'void main() {', + 'vUV = uv;', + 'vec2 pos = position;', + 'if( renderType == 2 ) {', + 'pos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;', + 'pos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;', + '}', + 'gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );', + '}', + ].join('\n'), + fragmentShader: [ + 'precision mediump float;', + 'uniform lowp int renderType;', + 'uniform sampler2D map;', + 'uniform sampler2D occlusionMap;', + 'uniform float opacity;', + 'uniform vec3 color;', + 'varying vec2 vUV;', + 'void main() {', + 'if( renderType == 0 ) {', + 'gl_FragColor = vec4( texture2D( map, vUV ).rgb, 0.0 );', + '} else if( renderType == 1 ) {', + 'gl_FragColor = texture2D( map, vUV );', + '} else {', + 'float visibility = texture2D( occlusionMap, vec2( 0.5, 0.1 ) ).a;', + 'visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) ).a;', + 'visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) ).a;', + 'visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) ).a;', + 'visibility = ( 1.0 - visibility / 4.0 );', + 'vec4 texture = texture2D( map, vUV );', + 'texture.a *= opacity * visibility;', + 'gl_FragColor = texture;', + 'gl_FragColor.rgb *= color;', + '}', + '}', + ].join('\n'), + }), + (i = r), + (r = S.createProgram()), + (t = S.createShader(S.FRAGMENT_SHADER)), + (e = S.createShader(S.VERTEX_SHADER)), + (n = 'precision ' + v.getPrecision() + ' float;\n'), + S.shaderSource(t, n + i.fragmentShader), + S.shaderSource(e, n + i.vertexShader), + S.compileShader(t), + S.compileShader(e), + S.attachShader(r, t), + S.attachShader(r, e), + S.linkProgram(r), + (B = r), + (C = { + vertex: S.getAttribLocation(B, 'position'), + uv: S.getAttribLocation(B, 'uv'), + }), + (x = { + renderType: S.getUniformLocation(B, 'renderType'), + map: S.getUniformLocation(B, 'map'), + occlusionMap: S.getUniformLocation(B, 'occlusionMap'), + opacity: S.getUniformLocation(B, 'opacity'), + color: S.getUniformLocation(B, 'color'), + scale: S.getUniformLocation(B, 'scale'), + rotation: S.getUniformLocation(B, 'rotation'), + screenPosition: S.getUniformLocation(B, 'screenPosition'), + }); + } + var w, + E, + B, + C, + x, + I, + M, + D, + S = v.context; + this.render = function (t, e, n, r) { + if (0 !== b.length) { + var i = new Jt.Vector3(), + o = r / n, + a = 0.5 * n, + s = 0.5 * r, + l = 16 / r, + u = new Jt.Vector2(l * o, l), + c = new Jt.Vector3(1, 1, 0), + A = new Jt.Vector2(1, 1); + void 0 === B && y(), + S.useProgram(B), + S.enableVertexAttribArray(C.vertex), + S.enableVertexAttribArray(C.uv), + S.uniform1i(x.occlusionMap, 0), + S.uniform1i(x.map, 1), + S.bindBuffer(S.ARRAY_BUFFER, w), + S.vertexAttribPointer(C.vertex, 2, S.FLOAT, !1, 16, 0), + S.vertexAttribPointer(C.uv, 2, S.FLOAT, !1, 16, 8), + S.bindBuffer(S.ELEMENT_ARRAY_BUFFER, E), + S.disable(S.CULL_FACE), + S.depthMask(!1); + for (var h = 0, p = b.length; h < p; h++) { + u.set((l = 16 / r) * o, l); + var d = b[h]; + if ( + (i.set( + d.matrixWorld.elements[12], + d.matrixWorld.elements[13], + d.matrixWorld.elements[14], + ), + i.applyMatrix4(e.matrixWorldInverse), + i.applyProjection(e.projectionMatrix), + c.copy(i), + (A.x = c.x * a + a), + (A.y = c.y * s + s), + I || (0 < A.x && A.x < n && 0 < A.y && A.y < r)) + ) { + S.activeTexture(S.TEXTURE1), + S.bindTexture(S.TEXTURE_2D, M), + S.copyTexImage2D( + S.TEXTURE_2D, + 0, + S.RGB, + A.x - 8, + A.y - 8, + 16, + 16, + 0, + ), + S.uniform1i(x.renderType, 0), + S.uniform2f(x.scale, u.x, u.y), + S.uniform3f(x.screenPosition, c.x, c.y, c.z), + S.disable(S.BLEND), + S.enable(S.DEPTH_TEST), + S.drawElements(S.TRIANGLES, 6, S.UNSIGNED_SHORT, 0), + S.activeTexture(S.TEXTURE0), + S.bindTexture(S.TEXTURE_2D, D), + S.copyTexImage2D( + S.TEXTURE_2D, + 0, + S.RGBA, + A.x - 8, + A.y - 8, + 16, + 16, + 0, + ), + S.uniform1i(x.renderType, 1), + S.disable(S.DEPTH_TEST), + S.activeTexture(S.TEXTURE1), + S.bindTexture(S.TEXTURE_2D, M), + S.drawElements(S.TRIANGLES, 6, S.UNSIGNED_SHORT, 0), + d.positionScreen.copy(c), + d.customUpdateCallback + ? d.customUpdateCallback(d) + : d.updateLensFlares(), + S.uniform1i(x.renderType, 2), + S.enable(S.BLEND); + for (var f = 0, g = d.lensFlares.length; f < g; f++) { + var m = d.lensFlares[f]; + 0.001 < m.opacity && + 0.001 < m.scale && + ((c.x = m.x), + (c.y = m.y), + (c.z = m.z), + (l = (m.size * m.scale) / r), + (u.x = l * o), + (u.y = l), + S.uniform3f(x.screenPosition, c.x, c.y, c.z), + S.uniform2f(x.scale, u.x, u.y), + S.uniform1f(x.rotation, m.rotation), + S.uniform1f(x.opacity, m.opacity), + S.uniform3f(x.color, m.color.r, m.color.g, m.color.b), + v.state.setBlending( + m.blending, + m.blendEquation, + m.blendSrc, + m.blendDst, + ), + v.setTexture(m.texture, 1), + S.drawElements(S.TRIANGLES, 6, S.UNSIGNED_SHORT, 0)); + } + } + } + S.enable(S.CULL_FACE), + S.enable(S.DEPTH_TEST), + S.depthMask(!0), + v.resetGLState(); + } + }; + }), + (Jt.ShadowMapPlugin = function (_, T, R, U) { + var N, + P, + L, + Y, + O = _.context, + G = new Jt.Frustum(), + z = new Jt.Matrix4(), + H = new Jt.Vector3(), + j = new Jt.Vector3(), + V = new Jt.Vector3(), + q = [], + t = Jt.ShaderLib.depthRGBA, + e = Jt.UniformsUtils.clone(t.uniforms); + (N = new Jt.ShaderMaterial({ + uniforms: e, + vertexShader: t.vertexShader, + fragmentShader: t.fragmentShader, + })), + (P = new Jt.ShaderMaterial({ + uniforms: e, + vertexShader: t.vertexShader, + fragmentShader: t.fragmentShader, + morphTargets: !0, + })), + (L = new Jt.ShaderMaterial({ + uniforms: e, + vertexShader: t.vertexShader, + fragmentShader: t.fragmentShader, + skinning: !0, + })), + (Y = new Jt.ShaderMaterial({ + uniforms: e, + vertexShader: t.vertexShader, + fragmentShader: t.fragmentShader, + morphTargets: !0, + skinning: !0, + })), + (N._shadowPass = !0), + (P._shadowPass = !0), + (L._shadowPass = !0), + (Y._shadowPass = !0), + (this.render = function (t, e) { + if (!1 !== _.shadowMapEnabled) { + var n, + r, + i, + o, + a, + s, + l, + u, + c, + A, + h, + p, + d, + f, + g, + m, + v, + b, + y, + w, + E = [], + B = 0; + for ( + O.clearColor(1, 1, 1, 1), + O.disable(O.BLEND), + O.enable(O.CULL_FACE), + O.frontFace(O.CCW), + _.shadowMapCullFace === Jt.CullFaceFront + ? O.cullFace(O.FRONT) + : O.cullFace(O.BACK), + _.state.setDepthTest(!0), + n = 0, + r = T.length; + n < r; + n++ + ) + if ((v = T[n]).castShadow) + if (v instanceof Jt.DirectionalLight && v.shadowCascade) + for (a = 0; a < v.shadowCascadeCount; a++) + v.shadowCascadeArray[a] + ? (p = v.shadowCascadeArray[a]) + : (((p = (function (t, e) { + for ( + var n = new Jt.DirectionalLight(), + r = + ((n.isVirtual = !0), + (n.onlyShadow = !0), + (n.castShadow = !0), + (n.shadowCameraNear = t.shadowCameraNear), + (n.shadowCameraFar = t.shadowCameraFar), + (n.shadowCameraLeft = t.shadowCameraLeft), + (n.shadowCameraRight = t.shadowCameraRight), + (n.shadowCameraBottom = t.shadowCameraBottom), + (n.shadowCameraTop = t.shadowCameraTop), + (n.shadowCameraVisible = t.shadowCameraVisible), + (n.shadowDarkness = t.shadowDarkness), + (n.shadowBias = t.shadowCascadeBias[e]), + (n.shadowMapWidth = t.shadowCascadeWidth[e]), + (n.shadowMapHeight = t.shadowCascadeHeight[e]), + (n.pointsWorld = []), + (n.pointsFrustum = []), + n.pointsWorld), + i = n.pointsFrustum, + o = 0; + o < 8; + o++ + ) + (r[o] = new Jt.Vector3()), (i[o] = new Jt.Vector3()); + var a = t.shadowCascadeNearZ[e], + t = t.shadowCascadeFarZ[e]; + return ( + i[0].set(-1, -1, a), + i[1].set(1, -1, a), + i[2].set(-1, 1, a), + i[3].set(1, 1, a), + i[4].set(-1, -1, t), + i[5].set(1, -1, t), + i[6].set(-1, 1, t), + i[7].set(1, 1, t), + n + ); + })(v, a)).originalCamera = e), + (f = new Jt.Gyroscope()).position.copy( + v.shadowCascadeOffset, + ), + f.add(p), + f.add(p.target), + e.add(f), + (v.shadowCascadeArray[a] = p)), + (f = a), + (m = g = void 0), + (g = (d = v).shadowCascadeArray[f]).position.copy(d.position), + g.target.position.copy(d.target.position), + g.lookAt(g.target), + (g.shadowCameraVisible = d.shadowCameraVisible), + (g.shadowDarkness = d.shadowDarkness), + (g.shadowBias = d.shadowCascadeBias[f]), + (m = d.shadowCascadeNearZ[f]), + (d = d.shadowCascadeFarZ[f]), + ((f = g.pointsFrustum)[0].z = m), + (f[1].z = m), + (f[2].z = m), + (f[3].z = m), + (f[4].z = d), + (f[5].z = d), + (f[6].z = d), + (f[7].z = d), + (E[B] = p), + B++; + else (E[B] = v), B++; + for (n = 0, r = E.length; n < r; n++) { + if ( + ((v = E[n]).shadowMap || + ((x = Jt.LinearFilter), + (x = { + minFilter: (x = + _.shadowMapType === Jt.PCFSoftShadowMap + ? Jt.NearestFilter + : x), + magFilter: x, + format: Jt.RGBAFormat, + }), + (v.shadowMap = new Jt.WebGLRenderTarget( + v.shadowMapWidth, + v.shadowMapHeight, + x, + )), + (v.shadowMapSize = new Jt.Vector2( + v.shadowMapWidth, + v.shadowMapHeight, + )), + (v.shadowMatrix = new Jt.Matrix4())), + !v.shadowCamera) + ) { + if (v instanceof Jt.SpotLight) + v.shadowCamera = new Jt.PerspectiveCamera( + v.shadowCameraFov, + v.shadowMapWidth / v.shadowMapHeight, + v.shadowCameraNear, + v.shadowCameraFar, + ); + else { + if (!(v instanceof Jt.DirectionalLight)) { + Jt.error( + 'THREE.ShadowMapPlugin: Unsupported light type for shadow', + v, + ); + continue; + } + v.shadowCamera = new Jt.OrthographicCamera( + v.shadowCameraLeft, + v.shadowCameraRight, + v.shadowCameraTop, + v.shadowCameraBottom, + v.shadowCameraNear, + v.shadowCameraFar, + ); + } + t.add(v.shadowCamera), !0 === t.autoUpdate && t.updateMatrixWorld(); + } + if ( + (v.shadowCameraVisible && + !v.cameraHelper && + ((v.cameraHelper = new Jt.CameraHelper(v.shadowCamera)), + t.add(v.cameraHelper)), + v.isVirtual && p.originalCamera == e) + ) { + k = S = D = M = I = x = C = void 0; + var C = e, + x = v, + I = x.shadowCamera, + M = x.pointsFrustum, + D = x.pointsWorld; + H.set(1 / 0, 1 / 0, 1 / 0), j.set(-1 / 0, -1 / 0, -1 / 0); + for (var S = 0; S < 8; S++) { + var k = D[S]; + k.copy(M[S]), + k.unproject(C), + k.applyMatrix4(I.matrixWorldInverse), + k.x < H.x && (H.x = k.x), + k.x > j.x && (j.x = k.x), + k.y < H.y && (H.y = k.y), + k.y > j.y && (j.y = k.y), + k.z < H.z && (H.z = k.z), + k.z > j.z && (j.z = k.z); + } + (I.left = H.x), + (I.right = j.x), + (I.top = j.y), + (I.bottom = H.y), + I.updateProjectionMatrix(); + } + for ( + s = v.shadowMap, + l = v.shadowMatrix, + (u = v.shadowCamera).position.setFromMatrixPosition( + v.matrixWorld, + ), + V.setFromMatrixPosition(v.target.matrixWorld), + u.lookAt(V), + u.updateMatrixWorld(), + u.matrixWorldInverse.getInverse(u.matrixWorld), + v.cameraHelper && + (v.cameraHelper.visible = v.shadowCameraVisible), + v.shadowCameraVisible && v.cameraHelper.update(), + l.set(0.5, 0, 0, 0.5, 0, 0.5, 0, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0, 1), + l.multiply(u.projectionMatrix), + l.multiply(u.matrixWorldInverse), + z.multiplyMatrices(u.projectionMatrix, u.matrixWorldInverse), + G.setFromMatrix(z), + _.setRenderTarget(s), + _.clear(), + q.length = 0, + !(function t(e, n, r) { + if (n.visible) { + var i = R[n.id]; + if ( + i && + n.castShadow && + (!1 === n.frustumCulled || !0 === G.intersectsObject(n)) + ) + for (var o = 0, a = i.length; o < a; o++) { + var s = i[o]; + n._modelViewMatrix.multiplyMatrices( + r.matrixWorldInverse, + n.matrixWorld, + ), + q.push(s); + } + for (o = 0, a = n.children.length; o < a; o++) + t(e, n.children[o], r); + } + })(t, t, u), + i = 0, + o = q.length; + i < o; + i++ + ) + (A = q[i]), + (h = A.object), + (c = A.buffer), + (w = + (w = h).material instanceof Jt.MeshFaceMaterial + ? w.material.materials[0] + : w.material), + (b = + void 0 !== h.geometry.morphTargets && + 0 < h.geometry.morphTargets.length && + w.morphTargets), + (y = h instanceof Jt.SkinnedMesh && w.skinning), + (y = h.customDepthMaterial || (y ? (b ? Y : L) : b ? P : N)), + _.setMaterialFaces(w), + c instanceof Jt.BufferGeometry + ? _.renderBufferDirect(u, T, null, y, c, h) + : _.renderBuffer(u, T, null, y, c, h); + for (i = 0, o = U.length; i < o; i++) + (A = U[i]), + (h = A.object).visible && + h.castShadow && + (h._modelViewMatrix.multiplyMatrices( + u.matrixWorldInverse, + h.matrixWorld, + ), + _.renderImmediateObject(u, T, null, N, h)); + } + var F = _.getClearColor(), + Q = _.getClearAlpha(); + O.clearColor(F.r, F.g, F.b, Q), + O.enable(O.BLEND), + _.shadowMapCullFace === Jt.CullFaceFront && O.cullFace(O.BACK), + _.resetGLState(); + } + }); + }), + (Jt.SpritePlugin = function (A, h) { + function p() { + var t = new Float32Array([ + -0.5, -0.5, 0, 0, 0.5, -0.5, 1, 0, 0.5, 0.5, 1, 1, -0.5, 0.5, 0, 1, + ]), + e = new Uint16Array([0, 1, 2, 0, 2, 3]); + (d = y.createBuffer()), + (f = y.createBuffer()), + y.bindBuffer(y.ARRAY_BUFFER, d), + y.bufferData(y.ARRAY_BUFFER, t, y.STATIC_DRAW), + y.bindBuffer(y.ELEMENT_ARRAY_BUFFER, f), + y.bufferData(y.ELEMENT_ARRAY_BUFFER, e, y.STATIC_DRAW), + (t = y.createProgram()), + (e = y.createShader(y.VERTEX_SHADER)), + (n = y.createShader(y.FRAGMENT_SHADER)), + y.shaderSource( + e, + [ + 'precision ' + A.getPrecision() + ' float;', + 'uniform mat4 modelViewMatrix;', + 'uniform mat4 projectionMatrix;', + 'uniform float rotation;', + 'uniform vec2 scale;', + 'uniform vec2 uvOffset;', + 'uniform vec2 uvScale;', + 'attribute vec2 position;', + 'attribute vec2 uv;', + 'varying vec2 vUV;', + 'void main() {', + 'vUV = uvOffset + uv * uvScale;', + 'vec2 alignedPosition = position * scale;', + 'vec2 rotatedPosition;', + 'rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;', + 'rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;', + 'vec4 finalPosition;', + 'finalPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );', + 'finalPosition.xy += rotatedPosition;', + 'finalPosition = projectionMatrix * finalPosition;', + 'gl_Position = finalPosition;', + '}', + ].join('\n'), + ), + y.shaderSource( + n, + [ + 'precision ' + A.getPrecision() + ' float;', + 'uniform vec3 color;', + 'uniform sampler2D map;', + 'uniform float opacity;', + 'uniform int fogType;', + 'uniform vec3 fogColor;', + 'uniform float fogDensity;', + 'uniform float fogNear;', + 'uniform float fogFar;', + 'uniform float alphaTest;', + 'varying vec2 vUV;', + 'void main() {', + 'vec4 texture = texture2D( map, vUV );', + 'if ( texture.a < alphaTest ) discard;', + 'gl_FragColor = vec4( color * texture.xyz, texture.a * opacity );', + 'if ( fogType > 0 ) {', + 'float depth = gl_FragCoord.z / gl_FragCoord.w;', + 'float fogFactor = 0.0;', + 'if ( fogType == 1 ) {', + 'fogFactor = smoothstep( fogNear, fogFar, depth );', + '} else {', + 'const float LOG2 = 1.442695;', + 'float fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );', + 'fogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );', + '}', + 'gl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );', + '}', + '}', + ].join('\n'), + ), + y.compileShader(e), + y.compileShader(n), + y.attachShader(t, e), + y.attachShader(t, n), + y.linkProgram(t), + (g = t), + (m = { + position: y.getAttribLocation(g, 'position'), + uv: y.getAttribLocation(g, 'uv'), + }), + (v = { + uvOffset: y.getUniformLocation(g, 'uvOffset'), + uvScale: y.getUniformLocation(g, 'uvScale'), + rotation: y.getUniformLocation(g, 'rotation'), + scale: y.getUniformLocation(g, 'scale'), + color: y.getUniformLocation(g, 'color'), + map: y.getUniformLocation(g, 'map'), + opacity: y.getUniformLocation(g, 'opacity'), + modelViewMatrix: y.getUniformLocation(g, 'modelViewMatrix'), + projectionMatrix: y.getUniformLocation(g, 'projectionMatrix'), + fogType: y.getUniformLocation(g, 'fogType'), + fogDensity: y.getUniformLocation(g, 'fogDensity'), + fogNear: y.getUniformLocation(g, 'fogNear'), + fogFar: y.getUniformLocation(g, 'fogFar'), + fogColor: y.getUniformLocation(g, 'fogColor'), + alphaTest: y.getUniformLocation(g, 'alphaTest'), + }); + ((e = document.createElement('canvas')).width = 8), (e.height = 8); + var n = e.getContext('2d'); + (n.fillStyle = 'white'), + n.fillRect(0, 0, 8, 8), + ((b = new Jt.Texture(e)).needsUpdate = !0); + } + var d, + f, + g, + m, + v, + b, + y = A.context, + w = new Jt.Vector3(), + E = new Jt.Quaternion(), + B = new Jt.Vector3(); + function C(t, e) { + return t.z !== e.z ? e.z - t.z : e.id - t.id; + } + this.render = function (t, e) { + if (0 !== h.length) { + void 0 === g && p(), + y.useProgram(g), + y.enableVertexAttribArray(m.position), + y.enableVertexAttribArray(m.uv), + y.disable(y.CULL_FACE), + y.enable(y.BLEND), + y.bindBuffer(y.ARRAY_BUFFER, d), + y.vertexAttribPointer(m.position, 2, y.FLOAT, !1, 16, 0), + y.vertexAttribPointer(m.uv, 2, y.FLOAT, !1, 16, 8), + y.bindBuffer(y.ELEMENT_ARRAY_BUFFER, f), + y.uniformMatrix4fv(v.projectionMatrix, !1, e.projectionMatrix.elements), + y.activeTexture(y.TEXTURE0), + y.uniform1i(v.map, 0); + var n = 0, + r = 0, + i = t.fog; + i + ? (y.uniform3f(v.fogColor, i.color.r, i.color.g, i.color.b), + i instanceof Jt.Fog + ? (y.uniform1f(v.fogNear, i.near), + y.uniform1f(v.fogFar, i.far), + y.uniform1i(v.fogType, 1), + (r = n = 1)) + : i instanceof Jt.FogExp2 && + (y.uniform1f(v.fogDensity, i.density), + y.uniform1i(v.fogType, 2), + (r = n = 2))) + : (y.uniform1i(v.fogType, 0), (r = n = 0)); + for (var o = 0, a = h.length; o < a; o++) + (l = h[o])._modelViewMatrix.multiplyMatrices( + e.matrixWorldInverse, + l.matrixWorld, + ), + (l.z = -l._modelViewMatrix.elements[14]); + h.sort(C); + for (var s = [], o = 0, a = h.length; o < a; o++) { + var l, + u = (l = h[o]).material, + c = + (y.uniform1f(v.alphaTest, u.alphaTest), + y.uniformMatrix4fv( + v.modelViewMatrix, + !1, + l._modelViewMatrix.elements, + ), + l.matrixWorld.decompose(w, E, B), + (s[0] = B.x), + (s[1] = B.y), + 0); + n !== (c = t.fog && u.fog ? r : c) && + (y.uniform1i(v.fogType, c), (n = c)), + null !== u.map + ? (y.uniform2f(v.uvOffset, u.map.offset.x, u.map.offset.y), + y.uniform2f(v.uvScale, u.map.repeat.x, u.map.repeat.y)) + : (y.uniform2f(v.uvOffset, 0, 0), y.uniform2f(v.uvScale, 1, 1)), + y.uniform1f(v.opacity, u.opacity), + y.uniform3f(v.color, u.color.r, u.color.g, u.color.b), + y.uniform1f(v.rotation, u.rotation), + y.uniform2fv(v.scale, s), + A.state.setBlending( + u.blending, + u.blendEquation, + u.blendSrc, + u.blendDst, + ), + A.state.setDepthTest(u.depthTest), + A.state.setDepthWrite(u.depthWrite), + u.map && u.map.image && u.map.image.width + ? A.setTexture(u.map, 0) + : A.setTexture(b, 0), + y.drawElements(y.TRIANGLES, 6, y.UNSIGNED_SHORT, 0); + } + y.enable(y.CULL_FACE), A.resetGLState(); + } + }; + }), + (Jt.GeometryUtils = { + merge: function (t, e, n) { + var r; + Jt.warn( + 'THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.', + ), + e instanceof Jt.Mesh && + (e.matrixAutoUpdate && e.updateMatrix(), + (r = e.matrix), + (e = e.geometry)), + t.merge(e, r, n); + }, + center: function (t) { + return ( + Jt.warn( + 'THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.', + ), + t.center() + ); + }, + }), + (Jt.ImageUtils = { + crossOrigin: void 0, + loadTexture: function (t, e, n, r) { + var i = new Jt.ImageLoader(), + o = ((i.crossOrigin = this.crossOrigin), new Jt.Texture(void 0, e)); + return ( + i.load( + t, + function (t) { + (o.image = t), (o.needsUpdate = !0), n && n(o); + }, + void 0, + function (t) { + r && r(t); + }, + ), + (o.sourceFile = t), + o + ); + }, + loadTextureCube: function (t, e, n, r) { + for ( + var i = new Jt.ImageLoader(), + o = ((i.crossOrigin = this.crossOrigin), new Jt.CubeTexture([], e)), + a = ((o.flipY = !1), 0), + s = 0, + l = t.length; + s < l; + ++s + ) + !(function (e) { + i.load( + t[e], + function (t) { + (o.images[e] = t), + 6 === (a += 1) && ((o.needsUpdate = !0), n && n(o)); + }, + void 0, + r, + ); + })(s); + return o; + }, + loadCompressedTexture: function () { + Jt.error( + 'THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.', + ); + }, + loadCompressedTextureCube: function () { + Jt.error( + 'THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.', + ); + }, + getNormalMap: function (t, e) { + for ( + var n = function (t, e) { + return [t[0] - e[0], t[1] - e[1], t[2] - e[2]]; + }, + r = ((e |= 1), t.width), + i = t.height, + o = document.createElement('canvas'), + a = ((o.width = r), (o.height = i), o.getContext('2d')), + s = (a.drawImage(t, 0, 0), a.getImageData(0, 0, r, i).data), + t = a.createImageData(r, i), + l = t.data, + u = 0; + u < r; + u++ + ) + for (var c = 0; c < i; c++) { + for ( + var A = c - 1 < 0 ? 0 : c - 1, + h = i - 1 < c + 1 ? i - 1 : c + 1, + p = u - 1 < 0 ? 0 : u - 1, + d = r - 1 < u + 1 ? r - 1 : u + 1, + f = [], + g = [0, 0, (s[4 * (c * r + u)] / 255) * e], + m = + (f.push([-1, 0, (s[4 * (c * r + p)] / 255) * e]), + f.push([-1, -1, (s[4 * (A * r + p)] / 255) * e]), + f.push([0, -1, (s[4 * (A * r + u)] / 255) * e]), + f.push([1, -1, (s[4 * (A * r + d)] / 255) * e]), + f.push([1, 0, (s[4 * (c * r + d)] / 255) * e]), + f.push([1, 1, (s[4 * (h * r + d)] / 255) * e]), + f.push([0, 1, (s[4 * (h * r + u)] / 255) * e]), + f.push([-1, 1, (s[4 * (h * r + p)] / 255) * e]), + []), + v = f.length, + b = 0; + b < v; + b++ + ) { + var y = f[b], + w = f[(b + 1) % v], + y = n(y, g), + w = n(w, g); + m.push( + ((y = [ + y[1] * w[2] - y[2] * w[1], + y[2] * w[0] - y[0] * w[2], + y[0] * w[1] - y[1] * w[0], + ]), + (w = void 0), + (w = Math.sqrt(y[0] * y[0] + y[1] * y[1] + y[2] * y[2])), + [y[0] / w, y[1] / w, y[2] / w]), + ); + } + for (var E = [0, 0, 0], b = 0; b < m.length; b++) + (E[0] += m[b][0]), (E[1] += m[b][1]), (E[2] += m[b][2]); + (E[0] /= m.length), (E[1] /= m.length), (E[2] /= m.length); + A = 4 * (c * r + u); + (l[A] = (((E[0] + 1) / 2) * 255) | 0), + (l[1 + A] = (((E[1] + 1) / 2) * 255) | 0), + (l[2 + A] = (255 * E[2]) | 0), + (l[3 + A] = 255); + } + return a.putImageData(t, 0, 0), o; + }, + generateDataTexture: function (t, e, n) { + for ( + var r = t * e, + i = new Uint8Array(3 * r), + o = Math.floor(255 * n.r), + a = Math.floor(255 * n.g), + s = Math.floor(255 * n.b), + l = 0; + l < r; + l++ + ) + (i[3 * l] = o), (i[3 * l + 1] = a), (i[3 * l + 2] = s); + n = new Jt.DataTexture(i, t, e, Jt.RGBFormat); + return (n.needsUpdate = !0), n; + }, + }), + (Jt.SceneUtils = { + createMultiMaterialObject: function (t, e) { + for (var n = new Jt.Object3D(), r = 0, i = e.length; r < i; r++) + n.add(new Jt.Mesh(t, e[r])); + return n; + }, + detach: function (t, e, n) { + t.applyMatrix(e.matrixWorld), e.remove(t), n.add(t); + }, + attach: function (t, e, n) { + var r = new Jt.Matrix4(); + r.getInverse(n.matrixWorld), t.applyMatrix(r), e.remove(t), n.add(t); + }, + }), + (Jt.FontUtils = { + faces: {}, + face: 'helvetiker', + weight: 'normal', + style: 'normal', + size: 150, + divisions: 10, + getFace: function () { + try { + return this.faces[this.face][this.weight][this.style]; + } catch (t) { + throw ( + 'The font ' + + this.face + + ' with ' + + this.weight + + ' weight and ' + + this.style + + ' style is missing.' + ); + } + }, + loadFace: function (t) { + var e = t.familyName.toLowerCase(); + return ( + (this.faces[e] = this.faces[e] || {}), + (this.faces[e][t.cssFontWeight] = this.faces[e][t.cssFontWeight] || {}), + (this.faces[e][t.cssFontWeight][t.cssFontStyle] = t), + (this.faces[e][t.cssFontWeight][t.cssFontStyle] = t) + ); + }, + drawText: function (t) { + for ( + var e = this.getFace(), + n = this.size / e.resolution, + r = 0, + i = String(t).split(''), + o = i.length, + a = [], + s = 0; + s < o; + s++ + ) { + var l = new Jt.Path(), + l = this.extractGlyphPoints(i[s], e, n, r, l); + (r += l.offset), a.push(l.path); + } + return { paths: a, offset: r / 2 }; + }, + extractGlyphPoints: function (t, e, n, r, i) { + var o, + a, + s, + l, + u, + c, + A, + h, + p, + d, + f, + g, + m, + v, + b, + y, + w, + E, + B = [], + t = e.glyphs[t] || e.glyphs['?']; + if (t) { + if (t.o) + for ( + u = (l = t._cachedOutline || (t._cachedOutline = t.o.split(' '))) + .length, + A = c = n, + o = 0; + o < u; + + ) + switch (l[o++]) { + case 'm': + (h = l[o++] * c + r), (p = l[o++] * A), i.moveTo(h, p); + break; + case 'l': + (h = l[o++] * c + r), (p = l[o++] * A), i.lineTo(h, p); + break; + case 'q': + if ( + ((d = l[o++] * c + r), + (f = l[o++] * A), + (v = l[o++] * c + r), + (b = l[o++] * A), + i.quadraticCurveTo(v, b, d, f), + (E = B[B.length - 1])) + ) + for (g = E.x, m = E.y, a = 1, s = this.divisions; a <= s; a++) { + var C = a / s; + Jt.Shape.Utils.b2(C, g, v, d), Jt.Shape.Utils.b2(C, m, b, f); + } + break; + case 'b': + if ( + ((d = l[o++] * c + r), + (f = l[o++] * A), + (v = l[o++] * c + r), + (b = l[o++] * A), + (y = l[o++] * c + r), + (w = l[o++] * A), + i.bezierCurveTo(v, b, y, w, d, f), + (E = B[B.length - 1])) + ) + for (g = E.x, m = E.y, a = 1, s = this.divisions; a <= s; a++) { + C = a / s; + Jt.Shape.Utils.b3(C, g, v, y, d), + Jt.Shape.Utils.b3(C, m, b, w, f); + } + } + return { offset: t.ha * n, path: i }; + } + }, + }), + (Jt.FontUtils.generateShapes = function (t, e) { + var n = void 0 !== (e = e || {}).size ? e.size : 100, + r = void 0 !== e.curveSegments ? e.curveSegments : 4, + i = void 0 !== e.font ? e.font : 'helvetiker', + o = void 0 !== e.weight ? e.weight : 'normal', + e = void 0 !== e.style ? e.style : 'normal'; + (Jt.FontUtils.size = n), + (Jt.FontUtils.divisions = r), + (Jt.FontUtils.face = i), + (Jt.FontUtils.weight = o), + (Jt.FontUtils.style = e); + for ( + var a = Jt.FontUtils.drawText(t).paths, s = [], l = 0, u = a.length; + l < u; + l++ + ) + Array.prototype.push.apply(s, a[l].toShapes()); + return s; + }), + (E = Jt.FontUtils), + (_n = function (t) { + for (var e = t.length, n = 0, r = e - 1, i = 0; i < e; r = i++) + n += t[r].x * t[i].y - t[i].x * t[r].y; + return 0.5 * n; + }), + (Tn = function (t, e, n, r, i, o) { + var a, + s, + l, + u, + c, + A, + h, + p, + d, + f = t[o[e]].x, + g = t[o[e]].y, + m = t[o[n]].x, + v = t[o[n]].y, + b = t[o[r]].x, + y = t[o[r]].y; + if ((m - f) * (y - g) - (v - g) * (b - f) < 1e-10) return !1; + for ( + u = b - m, c = y - v, A = f - b, h = g - y, p = m - f, d = v - g, a = 0; + a < i; + a++ + ) + if ( + ((s = t[o[a]].x), + (l = t[o[a]].y), + !((s === f && l === g) || (s === m && l === v) || (s === b && l === y)) && + -1e-10 <= u * (l - v) - c * (s - m) && + -1e-10 <= A * (l - y) - h * (s - b) && + -1e-10 <= p * (l - g) - d * (s - f)) + ) + return !1; + return !0; + }), + (E.Triangulate = function (t, e) { + var n = t.length; + if (n < 3) return null; + var r, + i, + o = [], + a = [], + s = []; + if (0 < _n(t)) for (c = 0; c < n; c++) a[c] = c; + else for (c = 0; c < n; c++) a[c] = n - 1 - c; + for (var l = n, u = 2 * l, c = l - 1; 2 < l; ) { + if (u-- <= 0) + return ( + Jt.warn( + 'THREE.FontUtils: Warning, unable to triangulate polygon! in Triangulate.process()', + ), + e ? s : o + ); + if ( + Tn( + t, + (r = l <= (r = c) ? 0 : r), + (c = l <= (c = r + 1) ? 0 : c), + (i = l <= (i = c + 1) ? 0 : i), + l, + a, + ) + ) { + var A, + h, + p = a[r], + d = a[c], + f = a[i]; + for ( + o.push([t[p], t[d], t[f]]), s.push([a[r], a[c], a[i]]), h = (A = c) + 1; + h < l; + A++, h++ + ) + a[A] = a[h]; + u = 2 * --l; + } + } + return e ? s : o; + }), + (E.Triangulate.area = _n), + (self._typeface_js = { + faces: Jt.FontUtils.faces, + loadFace: Jt.FontUtils.loadFace, + }), + (Jt.typeface_js = self._typeface_js), + (Jt.Audio = function (t) { + Jt.Object3D.call(this), + (this.type = 'Audio'), + (this.context = t.context), + (this.source = this.context.createBufferSource()), + (this.source.onended = this.onEnded.bind(this)), + (this.gain = this.context.createGain()), + this.gain.connect(this.context.destination), + (this.panner = this.context.createPanner()), + this.panner.connect(this.gain), + (this.autoplay = !1), + (this.startTime = 0), + (this.isPlaying = !1); + }), + (Jt.Audio.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.Audio.prototype.constructor = Jt.Audio), + (Jt.Audio.prototype.load = function (t) { + var e = this, + n = new XMLHttpRequest(); + return ( + n.open('GET', t, !0), + (n.responseType = 'arraybuffer'), + (n.onload = function (t) { + e.context.decodeAudioData(this.response, function (t) { + (e.source.buffer = t), e.autoplay && e.play(); + }); + }), + n.send(), + this + ); + }), + (Jt.Audio.prototype.play = function () { + var t; + !0 === this.isPlaying + ? Jt.warn('THREE.Audio: Audio is already playing.') + : (((t = this.context.createBufferSource()).buffer = this.source.buffer), + (t.loop = this.source.loop), + (t.onended = this.source.onended), + t.connect(this.panner), + t.start(0, this.startTime), + (this.isPlaying = !0), + (this.source = t)); + }), + (Jt.Audio.prototype.pause = function () { + this.source.stop(), (this.startTime = this.context.currentTime); + }), + (Jt.Audio.prototype.stop = function () { + this.source.stop(), (this.startTime = 0); + }), + (Jt.Audio.prototype.onEnded = function () { + this.isPlaying = !1; + }), + (Jt.Audio.prototype.setLoop = function (t) { + this.source.loop = t; + }), + (Jt.Audio.prototype.setRefDistance = function (t) { + this.panner.refDistance = t; + }), + (Jt.Audio.prototype.setRolloffFactor = function (t) { + this.panner.rolloffFactor = t; + }), + (Jt.Audio.prototype.setVolume = function (t) { + this.gain.gain.value = t; + }), + (Jt.Audio.prototype.updateMatrixWorld = + ((Rn = new Jt.Vector3()), + function (t) { + Jt.Object3D.prototype.updateMatrixWorld.call(this, t), + Rn.setFromMatrixPosition(this.matrixWorld), + this.panner.setPosition(Rn.x, Rn.y, Rn.z); + })), + (Jt.AudioListener = function () { + Jt.Object3D.call(this), + (this.type = 'AudioListener'), + (this.context = new (window.AudioContext || window.webkitAudioContext)()); + }), + (Jt.AudioListener.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.AudioListener.prototype.constructor = Jt.AudioListener), + (Jt.AudioListener.prototype.updateMatrixWorld = + ((Un = new Jt.Vector3()), + (Nn = new Jt.Quaternion()), + (Pn = new Jt.Vector3()), + (Ln = new Jt.Vector3()), + (Yn = new Jt.Vector3()), + (On = new Jt.Vector3()), + function (t) { + Jt.Object3D.prototype.updateMatrixWorld.call(this, t); + var t = this.context.listener, + e = this.up; + this.matrixWorld.decompose(Un, Nn, Pn), + Ln.set(0, 0, -1).applyQuaternion(Nn), + Yn.subVectors(Un, On), + t.setPosition(Un.x, Un.y, Un.z), + t.setOrientation(Ln.x, Ln.y, Ln.z, e.x, e.y, e.z), + t.setVelocity(Yn.x, Yn.y, Yn.z), + On.copy(Un); + })), + (Jt.Curve = function () {}), + (Jt.Curve.prototype.getPoint = function (t) { + return Jt.warn('THREE.Curve: Warning, getPoint() not implemented!'), null; + }), + (Jt.Curve.prototype.getPointAt = function (t) { + t = this.getUtoTmapping(t); + return this.getPoint(t); + }), + (Jt.Curve.prototype.getPoints = function (t) { + t = t || 5; + for (var e = [], n = 0; n <= t; n++) e.push(this.getPoint(n / t)); + return e; + }), + (Jt.Curve.prototype.getSpacedPoints = function (t) { + t = t || 5; + for (var e = [], n = 0; n <= t; n++) e.push(this.getPointAt(n / t)); + return e; + }), + (Jt.Curve.prototype.getLength = function () { + var t = this.getLengths(); + return t[t.length - 1]; + }), + (Jt.Curve.prototype.getLengths = function (t) { + if ( + ((t = t || this.__arcLengthDivisions || 200), + this.cacheArcLengths && + this.cacheArcLengths.length == t + 1 && + !this.needsUpdate) + ) + return this.cacheArcLengths; + this.needsUpdate = !1; + var e, + n, + r = [], + i = this.getPoint(0), + o = 0; + for (r.push(0), n = 1; n <= t; n++) + (o += (e = this.getPoint(n / t)).distanceTo(i)), r.push(o), (i = e); + return (this.cacheArcLengths = r); + }), + (Jt.Curve.prototype.updateArcLengths = function () { + (this.needsUpdate = !0), this.getLengths(); + }), + (Jt.Curve.prototype.getUtoTmapping = function (t, e) { + for ( + var n, + r = this.getLengths(), + i = 0, + o = r.length, + a = e || t * r[o - 1], + s = 0, + l = o - 1; + s <= l; + + ) + if ((n = r[(i = Math.floor(s + (l - s) / 2))] - a) < 0) s = i + 1; + else { + if (!(0 < n)) { + l = i; + break; + } + l = i - 1; + } + if (r[(i = l)] == a) return i / (o - 1); + e = r[i]; + return (i + (a - e) / (r[i + 1] - e)) / (o - 1); + }), + (Jt.Curve.prototype.getTangent = function (t) { + var e = t - 1e-4, + t = t + 1e-4, + e = (1 < t && (t = 1), this.getPoint((e = e < 0 ? 0 : e))); + return this.getPoint(t).clone().sub(e).normalize(); + }), + (Jt.Curve.prototype.getTangentAt = function (t) { + t = this.getUtoTmapping(t); + return this.getTangent(t); + }), + (Jt.Curve.Utils = { + tangentQuadraticBezier: function (t, e, n, r) { + return 2 * (1 - t) * (n - e) + 2 * t * (r - n); + }, + tangentCubicBezier: function (t, e, n, r, i) { + return ( + -3 * e * (1 - t) * (1 - t) + + 3 * n * (1 - t) * (1 - t) - + 6 * t * n * (1 - t) + + 6 * t * r * (1 - t) - + 3 * t * t * r + + 3 * t * t * i + ); + }, + tangentSpline: function (t, e, n, r, i) { + return ( + 6 * t * t - + 6 * t + + (3 * t * t - 4 * t + 1) + + (-6 * t * t + 6 * t) + + (3 * t * t - 2 * t) + ); + }, + interpolate: function (t, e, n, r, i) { + var t = 0.5 * (n - t), + r = 0.5 * (r - e), + o = i * i; + return ( + (2 * e - 2 * n + t + r) * (i * o) + + (-3 * e + 3 * n - 2 * t - r) * o + + t * i + + e + ); + }, + }), + (Jt.Curve.create = function (t, e) { + return ( + (t.prototype = Object.create(Jt.Curve.prototype)), + ((t.prototype.constructor = t).prototype.getPoint = e), + t + ); + }), + (Jt.CurvePath = function () { + (this.curves = []), (this.bends = []), (this.autoClose = !1); + }), + (Jt.CurvePath.prototype = Object.create(Jt.Curve.prototype)), + (Jt.CurvePath.prototype.constructor = Jt.CurvePath), + (Jt.CurvePath.prototype.add = function (t) { + this.curves.push(t); + }), + (Jt.CurvePath.prototype.checkConnection = function () {}), + (Jt.CurvePath.prototype.closePath = function () { + var t = this.curves[0].getPoint(0), + e = this.curves[this.curves.length - 1].getPoint(1); + t.equals(e) || this.curves.push(new Jt.LineCurve(e, t)); + }), + (Jt.CurvePath.prototype.getPoint = function (t) { + for ( + var e, n, r = t * this.getLength(), i = this.getCurveLengths(), o = 0; + o < i.length; + + ) { + if (i[o] >= r) + return ( + (n = 1 - (i[o] - r) / (e = this.curves[o]).getLength()), e.getPointAt(n) + ); + o++; + } + return null; + }), + (Jt.CurvePath.prototype.getLength = function () { + var t = this.getCurveLengths(); + return t[t.length - 1]; + }), + (Jt.CurvePath.prototype.getCurveLengths = function () { + if (this.cacheLengths && this.cacheLengths.length == this.curves.length) + return this.cacheLengths; + for (var t = [], e = 0, n = this.curves.length, r = 0; r < n; r++) + (e += this.curves[r].getLength()), t.push(e); + return (this.cacheLengths = t); + }), + (Jt.CurvePath.prototype.getBoundingBox = function () { + for ( + var t, + e, + n, + r, + i, + o = this.getPoints(), + a = (t = Number.NEGATIVE_INFINITY), + s = (n = Number.POSITIVE_INFINITY), + l = o[0] instanceof Jt.Vector3, + u = new (l ? Jt.Vector3 : Jt.Vector2)(), + c = 0, + A = o.length; + c < A; + c++ + ) + (i = o[c]).x > a ? (a = i.x) : i.x < s && (s = i.x), + i.y > t ? (t = i.y) : i.y < n && (n = i.y), + l && (i.z > e ? (e = i.z) : i.z < r && (r = i.z)), + u.add(i); + var h = { minX: s, minY: n, maxX: a, maxY: t }; + return l && ((h.maxZ = e), (h.minZ = r)), h; + }), + (Jt.CurvePath.prototype.createPointsGeometry = function (t) { + t = this.getPoints(t, !0); + return this.createGeometry(t); + }), + (Jt.CurvePath.prototype.createSpacedPointsGeometry = function (t) { + t = this.getSpacedPoints(t, !0); + return this.createGeometry(t); + }), + (Jt.CurvePath.prototype.createGeometry = function (t) { + for (var e = new Jt.Geometry(), n = 0; n < t.length; n++) + e.vertices.push(new Jt.Vector3(t[n].x, t[n].y, t[n].z || 0)); + return e; + }), + (Jt.CurvePath.prototype.addWrapPath = function (t) { + this.bends.push(t); + }), + (Jt.CurvePath.prototype.getTransformedPoints = function (t, e) { + for ( + var n = this.getPoints(t), r = 0, i = (e = e || this.bends).length; + r < i; + r++ + ) + n = this.getWrapPoints(n, e[r]); + return n; + }), + (Jt.CurvePath.prototype.getTransformedSpacedPoints = function (t, e) { + for ( + var n = this.getSpacedPoints(t), r = 0, i = (e = e || this.bends).length; + r < i; + r++ + ) + n = this.getWrapPoints(n, e[r]); + return n; + }), + (Jt.CurvePath.prototype.getWrapPoints = function (t, e) { + for (var n, r, i = this.getBoundingBox(), o = 0, a = t.length; o < a; o++) { + (l = (n = t[o]).x), (r = n.y), (s = l / i.maxX); + var s = e.getUtoTmapping(s, l), + l = e.getPoint(s), + s = e.getTangent(s); + s.set(-s.y, s.x).multiplyScalar(r), (n.x = l.x + s.x), (n.y = l.y + s.y); + } + return t; + }), + (Jt.Gyroscope = function () { + Jt.Object3D.call(this); + }), + (Jt.Gyroscope.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.Gyroscope.prototype.constructor = Jt.Gyroscope), + (Jt.Gyroscope.prototype.updateMatrixWorld = + ((Gn = new Jt.Vector3()), + (zn = new Jt.Quaternion()), + (Hn = new Jt.Vector3()), + (jn = new Jt.Vector3()), + (Vn = new Jt.Quaternion()), + (qn = new Jt.Vector3()), + function (t) { + this.matrixAutoUpdate && this.updateMatrix(), + (this.matrixWorldNeedsUpdate || t) && + (this.parent + ? (this.matrixWorld.multiplyMatrices( + this.parent.matrixWorld, + this.matrix, + ), + this.matrixWorld.decompose(jn, Vn, qn), + this.matrix.decompose(Gn, zn, Hn), + this.matrixWorld.compose(jn, zn, qn)) + : this.matrixWorld.copy(this.matrix), + (t = !(this.matrixWorldNeedsUpdate = !1))); + for (var e = 0, n = this.children.length; e < n; e++) + this.children[e].updateMatrixWorld(t); + })), + (Jt.Path = function (t) { + Jt.CurvePath.call(this), (this.actions = []), t && this.fromPoints(t); + }), + (Jt.Path.prototype = Object.create(Jt.CurvePath.prototype)), + (Jt.Path.prototype.constructor = Jt.Path), + (Jt.PathActions = { + MOVE_TO: 'moveTo', + LINE_TO: 'lineTo', + QUADRATIC_CURVE_TO: 'quadraticCurveTo', + BEZIER_CURVE_TO: 'bezierCurveTo', + CSPLINE_THRU: 'splineThru', + ARC: 'arc', + ELLIPSE: 'ellipse', + }), + (Jt.Path.prototype.fromPoints = function (t) { + this.moveTo(t[0].x, t[0].y); + for (var e = 1, n = t.length; e < n; e++) this.lineTo(t[e].x, t[e].y); + }), + (Jt.Path.prototype.moveTo = function (t, e) { + var n = Array.prototype.slice.call(arguments); + this.actions.push({ action: Jt.PathActions.MOVE_TO, args: n }); + }), + (Jt.Path.prototype.lineTo = function (t, e) { + var n = Array.prototype.slice.call(arguments), + r = this.actions[this.actions.length - 1].args, + i = r[r.length - 2], + r = r[r.length - 1], + i = new Jt.LineCurve(new Jt.Vector2(i, r), new Jt.Vector2(t, e)); + this.curves.push(i), + this.actions.push({ action: Jt.PathActions.LINE_TO, args: n }); + }), + (Jt.Path.prototype.quadraticCurveTo = function (t, e, n, r) { + var i = Array.prototype.slice.call(arguments), + o = this.actions[this.actions.length - 1].args, + a = o[o.length - 2], + o = o[o.length - 1], + a = new Jt.QuadraticBezierCurve( + new Jt.Vector2(a, o), + new Jt.Vector2(t, e), + new Jt.Vector2(n, r), + ); + this.curves.push(a), + this.actions.push({ action: Jt.PathActions.QUADRATIC_CURVE_TO, args: i }); + }), + (Jt.Path.prototype.bezierCurveTo = function (t, e, n, r, i, o) { + var a = Array.prototype.slice.call(arguments), + s = this.actions[this.actions.length - 1].args, + l = s[s.length - 2], + s = s[s.length - 1], + l = new Jt.CubicBezierCurve( + new Jt.Vector2(l, s), + new Jt.Vector2(t, e), + new Jt.Vector2(n, r), + new Jt.Vector2(i, o), + ); + this.curves.push(l), + this.actions.push({ action: Jt.PathActions.BEZIER_CURVE_TO, args: a }); + }), + (Jt.Path.prototype.splineThru = function (t) { + var e = Array.prototype.slice.call(arguments), + n = this.actions[this.actions.length - 1].args, + r = n[n.length - 2], + n = n[n.length - 1], + r = [new Jt.Vector2(r, n)], + n = (Array.prototype.push.apply(r, t), new Jt.SplineCurve(r)); + this.curves.push(n), + this.actions.push({ action: Jt.PathActions.CSPLINE_THRU, args: e }); + }), + (Jt.Path.prototype.arc = function (t, e, n, r, i, o) { + var a = this.actions[this.actions.length - 1].args, + s = a[a.length - 2], + a = a[a.length - 1]; + this.absarc(t + s, e + a, n, r, i, o); + }), + (Jt.Path.prototype.absarc = function (t, e, n, r, i, o) { + this.absellipse(t, e, n, n, r, i, o); + }), + (Jt.Path.prototype.ellipse = function (t, e, n, r, i, o, a) { + var s = this.actions[this.actions.length - 1].args, + l = s[s.length - 2], + s = s[s.length - 1]; + this.absellipse(t + l, e + s, n, r, i, o, a); + }), + (Jt.Path.prototype.absellipse = function (t, e, n, r, i, o, a) { + var s = Array.prototype.slice.call(arguments), + t = new Jt.EllipseCurve(t, e, n, r, i, o, a), + e = (this.curves.push(t), t.getPoint(1)); + s.push(e.x), + s.push(e.y), + this.actions.push({ action: Jt.PathActions.ELLIPSE, args: s }); + }), + (Jt.Path.prototype.getSpacedPoints = function (t, e) { + t = t || 40; + for (var n = [], r = 0; r < t; r++) n.push(this.getPoint(r / t)); + return n; + }), + (Jt.Path.prototype.getPoints = function (t, e) { + if (this.useSpacedPoints) + return console.log('tata'), this.getSpacedPoints(t, e); + t = t || 12; + for ( + var n, + r, + i, + o, + a, + s, + l, + u, + c, + A, + h, + p, + d, + f, + g = [], + m = 0, + v = this.actions.length; + m < v; + m++ + ) + switch (((r = (n = this.actions[m]).action), (i = n.args), r)) { + case Jt.PathActions.MOVE_TO: + case Jt.PathActions.LINE_TO: + g.push(new Jt.Vector2(i[0], i[1])); + break; + case Jt.PathActions.QUADRATIC_CURVE_TO: + for ( + o = i[2], + a = i[3], + u = i[0], + c = i[1], + h = + 0 < g.length + ? ((A = (b = g[g.length - 1]).x), b.y) + : ((A = (b = this.actions[m - 1].args)[b.length - 2]), + b[b.length - 1]), + B = 1; + B <= t; + B++ + ) + (d = Jt.Shape.Utils.b2((p = B / t), A, u, o)), + (f = Jt.Shape.Utils.b2(p, h, c, a)), + g.push(new Jt.Vector2(d, f)); + break; + case Jt.PathActions.BEZIER_CURVE_TO: + for ( + o = i[4], + a = i[5], + u = i[0], + c = i[1], + s = i[2], + l = i[3], + h = + 0 < g.length + ? ((A = (b = g[g.length - 1]).x), b.y) + : ((A = (b = this.actions[m - 1].args)[b.length - 2]), + b[b.length - 1]), + B = 1; + B <= t; + B++ + ) + (d = Jt.Shape.Utils.b3((p = B / t), A, u, s, o)), + (f = Jt.Shape.Utils.b3(p, h, c, l, a)), + g.push(new Jt.Vector2(d, f)); + break; + case Jt.PathActions.CSPLINE_THRU: + for ( + var b = this.actions[m - 1].args, + y = [new Jt.Vector2(b[b.length - 2], b[b.length - 1])], + w = t * i[0].length, + y = y.concat(i[0]), + E = new Jt.SplineCurve(y), + B = 1; + B <= w; + B++ + ) + g.push(E.getPointAt(B / w)); + break; + case Jt.PathActions.ARC: + var C = i[0], + x = i[1], + I = i[2], + M = i[3], + D = i[4], + S = !!i[5], + k = D - M, + F = 2 * t; + for (B = 1; B <= F; B++) + (p = B / F), + (Q = M + (p = S ? p : 1 - p) * k), + (d = C + I * Math.cos(Q)), + (f = x + I * Math.sin(Q)), + g.push(new Jt.Vector2(d, f)); + break; + case Jt.PathActions.ELLIPSE: + var Q, + C = i[0], + x = i[1], + _ = i[2], + T = i[3], + M = i[4], + D = i[5], + S = !!i[6], + k = D - M, + F = 2 * t; + for (B = 1; B <= F; B++) + (p = B / F), + (Q = M + (p = S ? p : 1 - p) * k), + (d = C + _ * Math.cos(Q)), + (f = x + T * Math.sin(Q)), + g.push(new Jt.Vector2(d, f)); + } + var R = g[g.length - 1]; + return ( + Math.abs(R.x - g[0].x) < 1e-10 && + Math.abs(R.y - g[0].y) < 1e-10 && + g.splice(g.length - 1, 1), + e && g.push(g[0]), + g + ); + }), + (Jt.Path.prototype.toShapes = function (t, e) { + function n(t) { + for (var e = [], n = 0, r = t.length; n < r; n++) { + var i = t[n], + o = new Jt.Shape(); + (o.actions = i.actions), (o.curves = i.curves), e.push(o); + } + return e; + } + var r = (function (t) { + for (var e, n, r = [], i = new Jt.Path(), o = 0, a = t.length; o < a; o++) + (n = (e = t[o]).args), + (e = e.action) == Jt.PathActions.MOVE_TO && + 0 != i.actions.length && + (r.push(i), (i = new Jt.Path())), + i[e].apply(i, n); + return 0 != i.actions.length && r.push(i), r; + })(this.actions); + if (0 == r.length) return []; + if (!0 === e) return n(r); + var i, + o, + a, + s = []; + if (1 == r.length) + return ( + (o = r[0]), + ((a = new Jt.Shape()).actions = o.actions), + (a.curves = o.curves), + s.push(a), + s + ); + var l, + u, + c, + A, + h, + p, + d = !Jt.Shape.Utils.isClockWise(r[0].getPoints()), + d = t ? !d : d, + f = [], + g = [], + m = [], + v = 0; + for (g[v] = void 0, m[v] = [], u = 0, c = r.length; u < c; u++) + (l = (o = r[u]).getPoints()), + (i = Jt.Shape.Utils.isClockWise(l)), + (i = t ? !i : i) + ? (!d && g[v] && v++, + (g[v] = { s: new Jt.Shape(), p: l }), + (g[v].s.actions = o.actions), + (g[v].s.curves = o.curves), + d && v++, + (m[v] = [])) + : m[v].push({ h: o, p: l[0] }); + if (!g[0]) return n(r); + if (1 < g.length) { + for (var b = !1, y = [], w = 0, E = g.length; w < E; w++) f[w] = []; + for (w = 0, E = g.length; w < E; w++) + for (var B = m[w], C = 0; C < B.length; C++) { + for (var x = B[C], I = !0, M = 0; M < g.length; M++) + !(function (t, e) { + for (var n = e.length, r = !1, i = n - 1, o = 0; o < n; i = o++) { + var a = e[i], + s = e[o], + l = s.x - a.x, + u = s.y - a.y; + if (1e-10 < Math.abs(u)) { + if ( + (u < 0 && ((a = e[o]), (l = -l), (s = e[i]), (u = -u)), + !(t.y < a.y || t.y > s.y)) + ) + if (t.y == a.y) { + if (t.x == a.x) return 1; + } else { + u = u * (t.x - a.x) - l * (t.y - a.y); + if (0 == u) return 1; + u < 0 || (r = !r); + } + } else if ( + t.y == a.y && + ((s.x <= t.x && t.x <= a.x) || (a.x <= t.x && t.x <= s.x)) + ) + return 1; + } + return r; + })(x.p, g[M].p) || + (w != M && y.push({ froms: w, tos: M, hole: C }), + I ? ((I = !1), f[M].push(x)) : (b = !0)); + I && f[w].push(x); + } + 0 < y.length && (b || (m = f)); + } + for (u = 0, c = g.length; u < c; u++) + for (a = g[u].s, s.push(a), h = 0, p = (A = m[u]).length; h < p; h++) + a.holes.push(A[h].h); + return s; + }), + (Jt.Shape = function () { + Jt.Path.apply(this, arguments), (this.holes = []); + }), + (Jt.Shape.prototype = Object.create(Jt.Path.prototype)), + (Jt.Shape.prototype.constructor = Jt.Shape), + (Jt.Shape.prototype.extrude = function (t) { + return new Jt.ExtrudeGeometry(this, t); + }), + (Jt.Shape.prototype.makeGeometry = function (t) { + return new Jt.ShapeGeometry(this, t); + }), + (Jt.Shape.prototype.getPointsHoles = function (t) { + for (var e = this.holes.length, n = [], r = 0; r < e; r++) + n[r] = this.holes[r].getTransformedPoints(t, this.bends); + return n; + }), + (Jt.Shape.prototype.getSpacedPointsHoles = function (t) { + for (var e = this.holes.length, n = [], r = 0; r < e; r++) + n[r] = this.holes[r].getTransformedSpacedPoints(t, this.bends); + return n; + }), + (Jt.Shape.prototype.extractAllPoints = function (t) { + return { shape: this.getTransformedPoints(t), holes: this.getPointsHoles(t) }; + }), + (Jt.Shape.prototype.extractPoints = function (t) { + return this.useSpacedPoints + ? this.extractAllSpacedPoints(t) + : this.extractAllPoints(t); + }), + (Jt.Shape.prototype.extractAllSpacedPoints = function (t) { + return { + shape: this.getTransformedSpacedPoints(t), + holes: this.getSpacedPointsHoles(t), + }; + }), + (Jt.Shape.Utils = { + triangulateShape: function (t, e) { + function w(t, e, n) { + return t.x != e.x + ? t.x < e.x + ? t.x <= n.x && n.x <= e.x + : e.x <= n.x && n.x <= t.x + : t.y < e.y + ? t.y <= n.y && n.y <= e.y + : e.y <= n.y && n.y <= t.y; + } + function y(t, e, n, r, i) { + var o = e.x - t.x, + a = e.y - t.y, + s = r.x - n.x, + l = r.y - n.y, + u = t.x - n.x, + c = t.y - n.y, + A = a * s - o * l, + h = a * u - o * c; + if (1e-10 < Math.abs(A)) { + if (0 < A) { + if (h < 0 || A < h) return []; + if ((p = l * u - s * c) < 0 || A < p) return []; + } else { + if (0 < h || h < A) return []; + if (0 < (p = l * u - s * c) || p < A) return []; + } + if (0 == p) return !i || (0 != h && h != A) ? [t] : []; + if (p == A) return !i || (0 != h && h != A) ? [e] : []; + if (0 == h) return [n]; + if (h == A) return [r]; + var p = p / A; + return [{ x: t.x + p * o, y: t.y + p * a }]; + } + if (0 != h || l * u != s * c) return []; + var d, + f, + g, + m, + v, + b, + y, + A = 0 == o && 0 == a, + p = 0 == s && 0 == l; + return A && p + ? t.x != n.x || t.y != n.y + ? [] + : [t] + : A + ? w(n, r, t) + ? [t] + : [] + : p + ? w(t, e, n) + ? [n] + : [] + : ((h = + 0 != o + ? ((m = + t.x < e.x + ? ((g = (d = t).x), (f = e).x) + : ((g = (d = e).x), (f = t).x)), + n.x < r.x + ? ((y = (v = n).x), (b = r).x) + : ((y = (v = r).x), (b = n).x)) + : ((m = + t.y < e.y + ? ((g = (d = t).y), (f = e).y) + : ((g = (d = e).y), (f = t).y)), + n.y < r.y + ? ((y = (v = n).y), (b = r).y) + : ((y = (v = r).y), (b = n).y))), + g <= y + ? m < y + ? [] + : m == y + ? i + ? [] + : [v] + : m <= h + ? [v, f] + : [v, b] + : h < g + ? [] + : g == h + ? i + ? [] + : [d] + : m <= h + ? [d, f] + : [d, b]); + } + function E(t, e, n, r) { + var i = e.x - t.x, + e = e.y - t.y, + o = n.x - t.x, + n = n.y - t.y, + a = r.x - t.x, + r = r.y - t.y, + t = i * n - e * o, + i = i * r - e * a; + return 1e-10 < Math.abs(t) + ? ((e = a * n - r * o), 0 < t ? 0 <= i && 0 <= e : 0 <= i || 0 <= e) + : 0 < i; + } + for ( + var n, r, i, o, a = {}, s = t.concat(), l = 0, u = e.length; + l < u; + l++ + ) + Array.prototype.push.apply(s, e[l]); + for (A = 0, h = s.length; A < h; A++) + void 0 !== a[(i = s[A].x + ':' + s[A].y)] && + Jt.warn('THREE.Shape: Duplicate point', i), + (a[i] = A); + for ( + var t = (function (t, a) { + for ( + var e, + n, + r, + i, + o, + s, + l, + u = t.concat(), + c = [], + A = [], + h = 0, + p = a.length; + h < p; + h++ + ) + c.push(h); + for (var d = 0, f = 2 * c.length; 0 < c.length; ) { + if (--f < 0) { + console.log( + 'Infinite Loop! Holes left:' + + c.length + + ', Probably Hole outside Shape!', + ); + break; + } + for (e = d; e < u.length; e++) { + for (var g = u[e], m = -1, h = 0; h < c.length; h++) + if ( + ((n = c[h]), void 0 === A[(r = g.x + ':' + g.y + ':' + n)]) + ) { + for (var v = a[n], b = 0; b < v.length; b++) + if ( + ((i = v[b]), + (function (t, e) { + var n = u.length - 1, + r = t - 1, + i = t + 1; + if ( + E( + u[t], + u[(r = r < 0 ? n : r)], + u[(i = n < i ? 0 : i)], + v[e], + ) + ) + return ( + (r = v.length - 1), + (n = e - 1), + (i = e + 1), + E( + v[e], + v[(n = n < 0 ? r : n)], + v[(i = r < i ? 0 : i)], + u[t], + ) + ? 1 + : void 0 + ); + })(e, b) && + !(function (t, e) { + for (var n, r = 0; r < u.length; r++) + if ( + ((n = r + 1), + (n %= u.length), + 0 < y(t, e, u[r], u[n], !0).length) + ) + return 1; + })(g, i) && + !(function (t, e) { + for (var n, r, i, o = 0; o < c.length; o++) + for (n = a[c[o]], r = 0; r < n.length; r++) + if ( + ((i = r + 1), + (i %= n.length), + 0 < y(t, e, n[r], n[i], !0).length) + ) + return 1; + })(g, i)) + ) { + (m = b), + c.splice(h, 1), + (i = u.slice(0, e + 1)), + (o = u.slice(e)), + (s = v.slice(m)), + (l = v.slice(0, m + 1)), + (u = i.concat(s).concat(l).concat(o)), + (d = e); + break; + } + if (0 <= m) break; + A[r] = !0; + } + if (0 <= m) break; + } + } + return u; + })(t, e), + c = Jt.FontUtils.Triangulate(t, !1), + A = 0, + h = c.length; + A < h; + A++ + ) + for (r = c[A], n = 0; n < 3; n++) + void 0 !== (o = a[(i = r[n].x + ':' + r[n].y)]) && (r[n] = o); + return c.concat(); + }, + isClockWise: function (t) { + return Jt.FontUtils.Triangulate.area(t) < 0; + }, + b2p0: function (t, e) { + t = 1 - t; + return t * t * e; + }, + b2p1: function (t, e) { + return 2 * (1 - t) * t * e; + }, + b2p2: function (t, e) { + return t * t * e; + }, + b2: function (t, e, n, r) { + return this.b2p0(t, e) + this.b2p1(t, n) + this.b2p2(t, r); + }, + b3p0: function (t, e) { + t = 1 - t; + return t * t * t * e; + }, + b3p1: function (t, e) { + var n = 1 - t; + return 3 * n * n * t * e; + }, + b3p2: function (t, e) { + return 3 * (1 - t) * t * t * e; + }, + b3p3: function (t, e) { + return t * t * t * e; + }, + b3: function (t, e, n, r, i) { + return ( + this.b3p0(t, e) + this.b3p1(t, n) + this.b3p2(t, r) + this.b3p3(t, i) + ); + }, + }), + (Jt.LineCurve = function (t, e) { + (this.v1 = t), (this.v2 = e); + }), + (Jt.LineCurve.prototype = Object.create(Jt.Curve.prototype)), + (Jt.LineCurve.prototype.constructor = Jt.LineCurve), + (Jt.LineCurve.prototype.getPoint = function (t) { + var e = this.v2.clone().sub(this.v1); + return e.multiplyScalar(t).add(this.v1), e; + }), + (Jt.LineCurve.prototype.getPointAt = function (t) { + return this.getPoint(t); + }), + (Jt.LineCurve.prototype.getTangent = function (t) { + return this.v2.clone().sub(this.v1).normalize(); + }), + (Jt.QuadraticBezierCurve = function (t, e, n) { + (this.v0 = t), (this.v1 = e), (this.v2 = n); + }), + (Jt.QuadraticBezierCurve.prototype = Object.create(Jt.Curve.prototype)), + (Jt.QuadraticBezierCurve.prototype.constructor = Jt.QuadraticBezierCurve), + (Jt.QuadraticBezierCurve.prototype.getPoint = function (t) { + var e = new Jt.Vector2(); + return ( + (e.x = Jt.Shape.Utils.b2(t, this.v0.x, this.v1.x, this.v2.x)), + (e.y = Jt.Shape.Utils.b2(t, this.v0.y, this.v1.y, this.v2.y)), + e + ); + }), + (Jt.QuadraticBezierCurve.prototype.getTangent = function (t) { + var e = new Jt.Vector2(); + return ( + (e.x = Jt.Curve.Utils.tangentQuadraticBezier( + t, + this.v0.x, + this.v1.x, + this.v2.x, + )), + (e.y = Jt.Curve.Utils.tangentQuadraticBezier( + t, + this.v0.y, + this.v1.y, + this.v2.y, + )), + e.normalize() + ); + }), + (Jt.CubicBezierCurve = function (t, e, n, r) { + (this.v0 = t), (this.v1 = e), (this.v2 = n), (this.v3 = r); + }), + (Jt.CubicBezierCurve.prototype = Object.create(Jt.Curve.prototype)), + (Jt.CubicBezierCurve.prototype.constructor = Jt.CubicBezierCurve), + (Jt.CubicBezierCurve.prototype.getPoint = function (t) { + var e = Jt.Shape.Utils.b3(t, this.v0.x, this.v1.x, this.v2.x, this.v3.x), + t = Jt.Shape.Utils.b3(t, this.v0.y, this.v1.y, this.v2.y, this.v3.y); + return new Jt.Vector2(e, t); + }), + (Jt.CubicBezierCurve.prototype.getTangent = function (t) { + var e = Jt.Curve.Utils.tangentCubicBezier( + t, + this.v0.x, + this.v1.x, + this.v2.x, + this.v3.x, + ), + t = Jt.Curve.Utils.tangentCubicBezier( + t, + this.v0.y, + this.v1.y, + this.v2.y, + this.v3.y, + ), + e = new Jt.Vector2(e, t); + return e.normalize(), e; + }), + (Jt.SplineCurve = function (t) { + this.points = null == t ? [] : t; + }), + (Jt.SplineCurve.prototype = Object.create(Jt.Curve.prototype)), + (Jt.SplineCurve.prototype.constructor = Jt.SplineCurve), + (Jt.SplineCurve.prototype.getPoint = function (t) { + var e = this.points, + t = (e.length - 1) * t, + n = Math.floor(t), + t = t - n, + r = e[0 == n ? n : n - 1], + i = e[n], + o = e[n > e.length - 2 ? e.length - 1 : n + 1], + e = e[n > e.length - 3 ? e.length - 1 : n + 2], + n = new Jt.Vector2(); + return ( + (n.x = Jt.Curve.Utils.interpolate(r.x, i.x, o.x, e.x, t)), + (n.y = Jt.Curve.Utils.interpolate(r.y, i.y, o.y, e.y, t)), + n + ); + }), + (Jt.EllipseCurve = function (t, e, n, r, i, o, a) { + (this.aX = t), + (this.aY = e), + (this.xRadius = n), + (this.yRadius = r), + (this.aStartAngle = i), + (this.aEndAngle = o), + (this.aClockwise = a); + }), + (Jt.EllipseCurve.prototype = Object.create(Jt.Curve.prototype)), + (Jt.EllipseCurve.prototype.constructor = Jt.EllipseCurve), + (Jt.EllipseCurve.prototype.getPoint = function (t) { + var e = this.aEndAngle - this.aStartAngle, + e = + (e < 0 && (e += 2 * Math.PI), + e > 2 * Math.PI && (e -= 2 * Math.PI), + (t = + !0 === this.aClockwise + ? this.aEndAngle + (1 - t) * (2 * Math.PI - e) + : this.aStartAngle + t * e), + new Jt.Vector2()); + return ( + (e.x = this.aX + this.xRadius * Math.cos(t)), + (e.y = this.aY + this.yRadius * Math.sin(t)), + e + ); + }), + (Jt.ArcCurve = function (t, e, n, r, i, o) { + Jt.EllipseCurve.call(this, t, e, n, n, r, i, o); + }), + (Jt.ArcCurve.prototype = Object.create(Jt.EllipseCurve.prototype)), + (Jt.ArcCurve.prototype.constructor = Jt.ArcCurve), + (Jt.LineCurve3 = Jt.Curve.create( + function (t, e) { + (this.v1 = t), (this.v2 = e); + }, + function (t) { + var e = new Jt.Vector3(); + return ( + e.subVectors(this.v2, this.v1), e.multiplyScalar(t), e.add(this.v1), e + ); + }, + )), + (Jt.QuadraticBezierCurve3 = Jt.Curve.create( + function (t, e, n) { + (this.v0 = t), (this.v1 = e), (this.v2 = n); + }, + function (t) { + var e = new Jt.Vector3(); + return ( + (e.x = Jt.Shape.Utils.b2(t, this.v0.x, this.v1.x, this.v2.x)), + (e.y = Jt.Shape.Utils.b2(t, this.v0.y, this.v1.y, this.v2.y)), + (e.z = Jt.Shape.Utils.b2(t, this.v0.z, this.v1.z, this.v2.z)), + e + ); + }, + )), + (Jt.CubicBezierCurve3 = Jt.Curve.create( + function (t, e, n, r) { + (this.v0 = t), (this.v1 = e), (this.v2 = n), (this.v3 = r); + }, + function (t) { + var e = new Jt.Vector3(); + return ( + (e.x = Jt.Shape.Utils.b3(t, this.v0.x, this.v1.x, this.v2.x, this.v3.x)), + (e.y = Jt.Shape.Utils.b3(t, this.v0.y, this.v1.y, this.v2.y, this.v3.y)), + (e.z = Jt.Shape.Utils.b3(t, this.v0.z, this.v1.z, this.v2.z, this.v3.z)), + e + ); + }, + )), + (Jt.SplineCurve3 = Jt.Curve.create( + function (t) { + this.points = null == t ? [] : t; + }, + function (t) { + var e = this.points, + t = (e.length - 1) * t, + n = Math.floor(t), + t = t - n, + r = e[0 == n ? n : n - 1], + i = e[n], + o = e[n > e.length - 2 ? e.length - 1 : n + 1], + e = e[n > e.length - 3 ? e.length - 1 : n + 2], + n = new Jt.Vector3(); + return ( + (n.x = Jt.Curve.Utils.interpolate(r.x, i.x, o.x, e.x, t)), + (n.y = Jt.Curve.Utils.interpolate(r.y, i.y, o.y, e.y, t)), + (n.z = Jt.Curve.Utils.interpolate(r.z, i.z, o.z, e.z, t)), + n + ); + }, + )), + (Jt.ClosedSplineCurve3 = Jt.Curve.create( + function (t) { + this.points = null == t ? [] : t; + }, + function (t) { + var e = this.points, + t = +e.length * t, + n = Math.floor(t), + t = t - n, + r = + e[ + ((n += + 0 < n ? 0 : (Math.floor(Math.abs(n) / e.length) + 1) * e.length) - + 1) % + e.length + ], + i = e[n % e.length], + o = e[(n + 1) % e.length], + n = e[(n + 2) % e.length], + e = new Jt.Vector3(); + return ( + (e.x = Jt.Curve.Utils.interpolate(r.x, i.x, o.x, n.x, t)), + (e.y = Jt.Curve.Utils.interpolate(r.y, i.y, o.y, n.y, t)), + (e.z = Jt.Curve.Utils.interpolate(r.z, i.z, o.z, n.z, t)), + e + ); + }, + )), + (Jt.AnimationHandler = { + LINEAR: 0, + CATMULLROM: 1, + CATMULLROM_FORWARD: 2, + add: function () { + Jt.warn('THREE.AnimationHandler.add() has been deprecated.'); + }, + get: function () { + Jt.warn('THREE.AnimationHandler.get() has been deprecated.'); + }, + remove: function () { + Jt.warn('THREE.AnimationHandler.remove() has been deprecated.'); + }, + animations: [], + init: function (t) { + if (!0 !== t.initialized) { + for (var e = 0; e < t.hierarchy.length; e++) { + for (var n, r = 0; r < t.hierarchy[e].keys.length; r++) + t.hierarchy[e].keys[r].time < 0 && (t.hierarchy[e].keys[r].time = 0), + void 0 === t.hierarchy[e].keys[r].rot || + t.hierarchy[e].keys[r].rot instanceof Jt.Quaternion || + ((n = t.hierarchy[e].keys[r].rot), + (t.hierarchy[e].keys[r].rot = new Jt.Quaternion().fromArray(n))); + if ( + t.hierarchy[e].keys.length && + void 0 !== t.hierarchy[e].keys[0].morphTargets + ) { + for (var i = {}, r = 0; r < t.hierarchy[e].keys.length; r++) + for (var o = 0; o < t.hierarchy[e].keys[r].morphTargets.length; o++) + i[(a = t.hierarchy[e].keys[r].morphTargets[o])] = -1; + t.hierarchy[e].usedMorphTargets = i; + for (r = 0; r < t.hierarchy[e].keys.length; r++) { + var a, + s = {}; + for (a in i) { + for (o = 0; o < t.hierarchy[e].keys[r].morphTargets.length; o++) + if (t.hierarchy[e].keys[r].morphTargets[o] === a) { + s[a] = t.hierarchy[e].keys[r].morphTargetsInfluences[o]; + break; + } + o === t.hierarchy[e].keys[r].morphTargets.length && (s[a] = 0); + } + t.hierarchy[e].keys[r].morphTargetsInfluences = s; + } + } + for (r = 1; r < t.hierarchy[e].keys.length; r++) + t.hierarchy[e].keys[r].time === t.hierarchy[e].keys[r - 1].time && + (t.hierarchy[e].keys.splice(r, 1), r--); + for (r = 0; r < t.hierarchy[e].keys.length; r++) + t.hierarchy[e].keys[r].index = r; + } + t.initialized = !0; + } + return t; + }, + parse: function (t) { + var r = function (t, e) { + e.push(t); + for (var n = 0; n < t.children.length; n++) r(t.children[n], e); + }, + e = []; + if (t instanceof Jt.SkinnedMesh) + for (var n = 0; n < t.skeleton.bones.length; n++) + e.push(t.skeleton.bones[n]); + else r(t, e); + return e; + }, + play: function (t) { + -1 === this.animations.indexOf(t) && this.animations.push(t); + }, + stop: function (t) { + t = this.animations.indexOf(t); + -1 !== t && this.animations.splice(t, 1); + }, + update: function (t) { + for (var e = 0; e < this.animations.length; e++) + this.animations[e].resetBlendWeights(); + for (e = 0; e < this.animations.length; e++) this.animations[e].update(t); + }, + }), + (Jt.Animation = function (t, e) { + (this.root = t), + (this.data = Jt.AnimationHandler.init(e)), + (this.hierarchy = Jt.AnimationHandler.parse(t)), + (this.currentTime = 0), + (this.timeScale = 1), + (this.isPlaying = !1), + (this.loop = !0), + (this.weight = 0), + (this.interpolationType = Jt.AnimationHandler.LINEAR); + }), + (Jt.Animation.prototype = { + constructor: Jt.Animation, + keyTypes: ['pos', 'rot', 'scl'], + play: function (t, e) { + (this.currentTime = void 0 !== t ? t : 0), + (this.weight = void 0 !== e ? e : 1), + (this.isPlaying = !0), + this.reset(), + Jt.AnimationHandler.play(this); + }, + stop: function () { + (this.isPlaying = !1), Jt.AnimationHandler.stop(this); + }, + reset: function () { + for (var t = 0, e = this.hierarchy.length; t < e; t++) { + var n = this.hierarchy[t], + r = + (void 0 === n.animationCache && + (n.animationCache = { + animations: {}, + blending: { + positionWeight: 0, + quaternionWeight: 0, + scaleWeight: 0, + }, + }), + this.data.name), + i = n.animationCache.animations, + o = i[r]; + void 0 === o && + ((o = { + prevKey: { pos: 0, rot: 0, scl: 0 }, + nextKey: { pos: 0, rot: 0, scl: 0 }, + originalMatrix: n.matrix, + }), + (i[r] = o)); + for (var a = 0; a < 3; a++) { + for ( + var s = this.keyTypes[a], + l = this.data.hierarchy[t].keys[0], + u = this.getNextKeyWith(s, t, 1); + u.time < this.currentTime && u.index > l.index; + + ) + (l = u), (u = this.getNextKeyWith(s, t, u.index + 1)); + (o.prevKey[s] = l), (o.nextKey[s] = u); + } + } + }, + resetBlendWeights: function () { + for (var t = 0, e = this.hierarchy.length; t < e; t++) { + var n = this.hierarchy[t].animationCache; + void 0 !== n && + (((n = n.blending).positionWeight = 0), + (n.quaternionWeight = 0), + (n.scaleWeight = 0)); + } + }, + update: + ((Wn = []), + (Jn = new Jt.Vector3()), + (Kn = new Jt.Vector3()), + (Zn = new Jt.Quaternion()), + (Xn = function (t, e, n, r, i, o, a) { + (t = 0.5 * (n - t)), (r = 0.5 * (r - e)); + return ( + (2 * (e - n) + t + r) * a + (-3 * (e - n) - 2 * t - r) * o + t * i + e + ); + }), + function (t) { + if ( + !1 !== this.isPlaying && + ((this.currentTime += t * this.timeScale), 0 !== this.weight) + ) { + t = this.data.length; + (this.currentTime > t || this.currentTime < 0) && + (this.loop + ? ((this.currentTime %= t), + this.currentTime < 0 && (this.currentTime += t), + this.reset()) + : this.stop()); + for (var e = 0, n = this.hierarchy.length; e < n; e++) + for ( + var r = this.hierarchy[e], + i = r.animationCache.animations[this.data.name], + o = r.animationCache.blending, + a = 0; + a < 3; + a++ + ) { + var s = this.keyTypes[a], + l = i.prevKey[s], + u = i.nextKey[s]; + if ( + (0 < this.timeScale && u.time <= this.currentTime) || + (this.timeScale < 0 && l.time >= this.currentTime) + ) { + for ( + l = this.data.hierarchy[e].keys[0], + u = this.getNextKeyWith(s, e, 1); + u.time < this.currentTime && u.index > l.index; + + ) + (l = u), (u = this.getNextKeyWith(s, e, u.index + 1)); + (i.prevKey[s] = l), (i.nextKey[s] = u); + } + var c, + A, + h, + p = (this.currentTime - l.time) / (u.time - l.time), + d = l[s], + f = u[s]; + 1 < (p = p < 0 ? 0 : p) && (p = 1), + 'pos' === s + ? this.interpolationType === Jt.AnimationHandler.LINEAR + ? ((Kn.x = d[0] + (f[0] - d[0]) * p), + (Kn.y = d[1] + (f[1] - d[1]) * p), + (Kn.z = d[2] + (f[2] - d[2]) * p), + (h = this.weight / (this.weight + o.positionWeight)), + r.position.lerp(Kn, h), + (o.positionWeight += this.weight)) + : (this.interpolationType !== + Jt.AnimationHandler.CATMULLROM && + this.interpolationType !== + Jt.AnimationHandler.CATMULLROM_FORWARD) || + ((Wn[0] = this.getPrevKeyWith('pos', e, l.index - 1).pos), + (Wn[1] = d), + (Wn[2] = f), + (Wn[3] = this.getNextKeyWith('pos', e, u.index + 1).pos), + (A = mr(Wn, (p = 0.33 * p + 0.33))), + (h = this.weight / (this.weight + o.positionWeight)), + (o.positionWeight += this.weight), + ((c = r.position).x = c.x + (A[0] - c.x) * h), + (c.y = c.y + (A[1] - c.y) * h), + (c.z = c.z + (A[2] - c.z) * h), + this.interpolationType === + Jt.AnimationHandler.CATMULLROM_FORWARD && + ((A = mr(Wn, 1.01 * p)), + Jn.set(A[0], A[1], A[2]), + Jn.sub(c), + (Jn.y = 0), + Jn.normalize(), + (A = Math.atan2(Jn.x, Jn.z)), + r.rotation.set(0, A, 0))) + : 'rot' === s + ? (Jt.Quaternion.slerp(d, f, Zn, p), + 0 === o.quaternionWeight + ? (r.quaternion.copy(Zn), + (o.quaternionWeight = this.weight)) + : ((h = this.weight / (this.weight + o.quaternionWeight)), + Jt.Quaternion.slerp(r.quaternion, Zn, r.quaternion, h), + (o.quaternionWeight += this.weight))) + : 'scl' === s && + ((Kn.x = d[0] + (f[0] - d[0]) * p), + (Kn.y = d[1] + (f[1] - d[1]) * p), + (Kn.z = d[2] + (f[2] - d[2]) * p), + (h = this.weight / (this.weight + o.scaleWeight)), + r.scale.lerp(Kn, h), + (o.scaleWeight += this.weight)); + } + return !0; + } + }), + getNextKeyWith: function (t, e, n) { + var r = this.data.hierarchy[e].keys; + for ( + this.interpolationType === Jt.AnimationHandler.CATMULLROM || + this.interpolationType === Jt.AnimationHandler.CATMULLROM_FORWARD + ? (n = n < r.length - 1 ? n : r.length - 1) + : (n %= r.length); + n < r.length; + n++ + ) + if (void 0 !== r[n][t]) return r[n]; + return this.data.hierarchy[e].keys[0]; + }, + getPrevKeyWith: function (t, e, n) { + var r = this.data.hierarchy[e].keys; + for ( + n = + this.interpolationType === Jt.AnimationHandler.CATMULLROM || + this.interpolationType === Jt.AnimationHandler.CATMULLROM_FORWARD + ? 0 < n + ? n + : 0 + : 0 <= n + ? n + : n + r.length; + 0 <= n; + n-- + ) + if (void 0 !== r[n][t]) return r[n]; + return this.data.hierarchy[e].keys[r.length - 1]; + }, + }), + (Jt.KeyFrameAnimation = function (t) { + (this.root = t.node), + (this.data = Jt.AnimationHandler.init(t)), + (this.hierarchy = Jt.AnimationHandler.parse(this.root)), + (this.currentTime = 0), + (this.timeScale = 0.001), + (this.isPlaying = !1), + (this.isPaused = !0), + (this.loop = !0); + for (var e = 0, n = this.hierarchy.length; e < n; e++) { + var r = this.data.hierarchy[e].keys, + i = this.data.hierarchy[e].sids, + o = this.hierarchy[e]; + if (r.length && i) { + for (var a = 0; a < i.length; a++) { + var s = i[a], + l = this.getNextKeyWith(s, e, 0); + l && l.apply(s); + } + (o.matrixAutoUpdate = !1), + this.data.hierarchy[e].node.updateMatrix(), + (o.matrixWorldNeedsUpdate = !0); + } + } + }), + (Jt.KeyFrameAnimation.prototype = { + constructor: Jt.KeyFrameAnimation, + play: function (t) { + if (((this.currentTime = void 0 !== t ? t : 0), !1 === this.isPlaying)) { + this.isPlaying = !0; + for (var e, n = this.hierarchy.length, r = 0; r < n; r++) { + (i = this.hierarchy[r]), + void 0 === (e = this.data.hierarchy[r]).animationCache && + ((e.animationCache = {}), + (e.animationCache.prevKey = null), + (e.animationCache.nextKey = null), + (e.animationCache.originalMatrix = i.matrix)); + var i = this.data.hierarchy[r].keys; + i.length && + ((e.animationCache.prevKey = i[0]), + (e.animationCache.nextKey = i[1]), + (this.startTime = Math.min(i[0].time, this.startTime)), + (this.endTime = Math.max(i[i.length - 1].time, this.endTime))); + } + this.update(0); + } + (this.isPaused = !1), Jt.AnimationHandler.play(this); + }, + stop: function () { + (this.isPlaying = !1), (this.isPaused = !1), Jt.AnimationHandler.stop(this); + for (var t = 0; t < this.data.hierarchy.length; t++) { + var e, + n = this.hierarchy[t], + r = this.data.hierarchy[t]; + void 0 !== r.animationCache && + ((e = r.animationCache.originalMatrix).copy(n.matrix), + (n.matrix = e), + delete r.animationCache); + } + }, + update: function (t) { + if (!1 !== this.isPlaying) { + this.currentTime += t * this.timeScale; + t = this.data.length; + !0 === this.loop && this.currentTime > t && (this.currentTime %= t), + (this.currentTime = Math.min(this.currentTime, t)); + for (var e = 0, n = this.hierarchy.length; e < n; e++) { + var r = this.hierarchy[e], + i = this.data.hierarchy[e], + o = i.keys, + i = i.animationCache; + if (o.length) { + var a = i.prevKey, + s = i.nextKey; + if (s.time <= this.currentTime) { + for (; s.time < this.currentTime && s.index > a.index; ) + s = o[(a = s).index + 1]; + (i.prevKey = a), (i.nextKey = s); + } + s.time >= this.currentTime + ? a.interpolate(s, this.currentTime) + : a.interpolate(s, s.time), + this.data.hierarchy[e].node.updateMatrix(), + (r.matrixWorldNeedsUpdate = !0); + } + } + } + }, + getNextKeyWith: function (t, e, n) { + var r = this.data.hierarchy[e].keys; + for (n %= r.length; n < r.length; n++) if (r[n].hasTarget(t)) return r[n]; + return r[0]; + }, + getPrevKeyWith: function (t, e, n) { + var r = this.data.hierarchy[e].keys; + for (n = 0 <= n ? n : n + r.length; 0 <= n; n--) + if (r[n].hasTarget(t)) return r[n]; + return r[r.length - 1]; + }, + }), + (Jt.MorphAnimation = function (t) { + (this.mesh = t), + (this.frames = t.morphTargetInfluences.length), + (this.currentTime = 0), + (this.duration = 1e3), + (this.loop = !0), + (this.lastFrame = 0), + (this.currentFrame = 0), + (this.isPlaying = !1); + }), + (Jt.MorphAnimation.prototype = { + constructor: Jt.MorphAnimation, + play: function () { + this.isPlaying = !0; + }, + pause: function () { + this.isPlaying = !1; + }, + update: function (t) { + var e, n; + !1 !== this.isPlaying && + ((this.currentTime += t), + !0 === this.loop && + this.currentTime > this.duration && + (this.currentTime %= this.duration), + (this.currentTime = Math.min(this.currentTime, this.duration)), + (t = this.duration / this.frames), + (e = Math.floor(this.currentTime / t)), + (n = this.mesh.morphTargetInfluences), + e != this.currentFrame && + ((n[this.lastFrame] = 0), + (n[this.currentFrame] = 1), + (n[e] = 0), + (this.lastFrame = this.currentFrame), + (this.currentFrame = e)), + (n[e] = (this.currentTime % t) / t), + (n[this.lastFrame] = 1 - n[e])); + }, + }), + (Jt.BoxGeometry = function (t, e, n, r, i, o) { + Jt.Geometry.call(this), + (this.type = 'BoxGeometry'), + (this.parameters = { + width: t, + height: e, + depth: n, + widthSegments: r, + heightSegments: i, + depthSegments: o, + }), + (this.widthSegments = r || 1), + (this.heightSegments = i || 1), + (this.depthSegments = o || 1); + var k = this, + r = t / 2, + i = e / 2, + o = n / 2; + function a(t, e, n, r, i, o, a, s) { + var l, + u, + c, + A = k.widthSegments, + h = k.heightSegments, + p = i / 2, + d = o / 2, + f = k.vertices.length, + g = + (('x' === t && 'y' === e) || ('y' === t && 'x' === e) + ? (l = 'z') + : ('x' === t && 'z' === e) || ('z' === t && 'x' === e) + ? ((l = 'y'), (h = k.depthSegments)) + : (('z' === t && 'y' === e) || ('y' === t && 'z' === e)) && + ((l = 'x'), (A = k.depthSegments)), + A + 1), + m = h + 1, + v = i / A, + b = o / h, + y = new Jt.Vector3(); + for (y[l] = 0 < a ? 1 : -1, c = 0; c < m; c++) + for (u = 0; u < g; u++) { + var w = new Jt.Vector3(); + (w[t] = (u * v - p) * n), + (w[e] = (c * b - d) * r), + (w[l] = a), + k.vertices.push(w); + } + for (c = 0; c < h; c++) + for (u = 0; u < A; u++) { + var E = u + g * c, + B = u + g * (c + 1), + C = u + 1 + g * (c + 1), + x = u + 1 + g * c, + I = new Jt.Vector2(u / A, 1 - c / h), + M = new Jt.Vector2(u / A, 1 - (c + 1) / h), + D = new Jt.Vector2((u + 1) / A, 1 - (c + 1) / h), + S = new Jt.Vector2((u + 1) / A, 1 - c / h), + E = new Jt.Face3(E + f, B + f, x + f); + E.normal.copy(y), + E.vertexNormals.push(y.clone(), y.clone(), y.clone()), + (E.materialIndex = s), + k.faces.push(E), + k.faceVertexUvs[0].push([I, M, S]), + (E = new Jt.Face3(B + f, C + f, x + f)).normal.copy(y), + E.vertexNormals.push(y.clone(), y.clone(), y.clone()), + (E.materialIndex = s), + k.faces.push(E), + k.faceVertexUvs[0].push([M.clone(), D, S.clone()]); + } + } + a('z', 'y', -1, -1, n, e, r, 0), + a('z', 'y', 1, -1, n, e, -r, 1), + a('x', 'z', 1, 1, t, n, i, 2), + a('x', 'z', 1, -1, t, n, -i, 3), + a('x', 'y', 1, -1, t, e, o, 4), + a('x', 'y', -1, -1, t, e, -o, 5), + this.mergeVertices(); + }), + (Jt.BoxGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.BoxGeometry.prototype.constructor = Jt.BoxGeometry), + (Jt.CircleGeometry = function (t, e, n, r) { + Jt.Geometry.call(this), + (this.type = 'CircleGeometry'), + (this.parameters = { + radius: t, + segments: e, + thetaStart: n, + thetaLength: r, + }), + (t = t || 50), + (e = void 0 !== e ? Math.max(3, e) : 8), + (n = void 0 !== n ? n : 0), + (r = void 0 !== r ? r : 2 * Math.PI); + var i = [], + o = new Jt.Vector3(), + a = new Jt.Vector2(0.5, 0.5); + for (this.vertices.push(o), i.push(a), c = 0; c <= e; c++) { + var s = new Jt.Vector3(), + l = n + (c / e) * r; + (s.x = t * Math.cos(l)), + (s.y = t * Math.sin(l)), + this.vertices.push(s), + i.push(new Jt.Vector2((s.x / t + 1) / 2, (s.y / t + 1) / 2)); + } + for (var u = new Jt.Vector3(0, 0, 1), c = 1; c <= e; c++) + this.faces.push( + new Jt.Face3(c, c + 1, 0, [u.clone(), u.clone(), u.clone()]), + ), + this.faceVertexUvs[0].push([i[c].clone(), i[c + 1].clone(), a.clone()]); + this.computeFaceNormals(), + (this.boundingSphere = new Jt.Sphere(new Jt.Vector3(), t)); + }), + (Jt.CircleGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.CircleGeometry.prototype.constructor = Jt.CircleGeometry), + (Jt.CubeGeometry = function (t, e, n, r, i, o) { + return ( + Jt.warn('THREE.CubeGeometry has been renamed to THREE.BoxGeometry.'), + new Jt.BoxGeometry(t, e, n, r, i, o) + ); + }), + (Jt.CylinderGeometry = function (t, e, n, r, i, o, a, s) { + Jt.Geometry.call(this), + (this.type = 'CylinderGeometry'), + (this.parameters = { + radiusTop: t, + radiusBottom: e, + height: n, + radialSegments: r, + heightSegments: i, + openEnded: o, + thetaStart: a, + thetaLength: s, + }), + (t = void 0 !== t ? t : 20), + (e = void 0 !== e ? e : 20), + (n = void 0 !== n ? n : 100), + (r = r || 8), + (i = i || 1), + (o = void 0 !== o && o), + (a = void 0 !== a ? a : 0), + (s = void 0 !== s ? s : 2 * Math.PI); + for (var l = n / 2, u = [], c = [], A = 0; A <= i; A++) { + for ( + var h = [], p = [], d = A / i, f = d * (e - t) + t, g = 0; + g <= r; + g++ + ) { + var m = g / r, + v = new Jt.Vector3(); + (v.x = f * Math.sin(m * s + a)), + (v.y = -d * n + l), + (v.z = f * Math.cos(m * s + a)), + this.vertices.push(v), + h.push(this.vertices.length - 1), + p.push(new Jt.Vector2(m, 1 - d)); + } + u.push(h), c.push(p); + } + var b, + y, + w = (e - t) / n; + for (g = 0; g < r; g++) + for ( + y = + 0 !== t + ? ((b = this.vertices[u[0][g]].clone()), + this.vertices[u[0][g + 1]].clone()) + : ((b = this.vertices[u[1][g]].clone()), + this.vertices[u[1][g + 1]].clone()), + b.setY(Math.sqrt(b.x * b.x + b.z * b.z) * w).normalize(), + y.setY(Math.sqrt(y.x * y.x + y.z * y.z) * w).normalize(), + A = 0; + A < i; + A++ + ) { + var E = u[A][g], + B = u[A + 1][g], + C = u[A + 1][g + 1], + x = u[A][g + 1], + I = b.clone(), + M = b.clone(), + D = y.clone(), + S = y.clone(), + k = c[A][g].clone(), + F = c[A + 1][g].clone(), + Q = c[A + 1][g + 1].clone(), + _ = c[A][g + 1].clone(); + this.faces.push(new Jt.Face3(E, B, x, [I, M, S])), + this.faceVertexUvs[0].push([k, F, _]), + this.faces.push(new Jt.Face3(B, C, x, [M.clone(), D, S.clone()])), + this.faceVertexUvs[0].push([F.clone(), Q, _.clone()]); + } + if (!1 === o && 0 < t) + for (this.vertices.push(new Jt.Vector3(0, l, 0)), g = 0; g < r; g++) { + (E = u[0][g]), + (B = u[0][g + 1]), + (C = this.vertices.length - 1), + (I = new Jt.Vector3(0, 1, 0)), + (M = new Jt.Vector3(0, 1, 0)), + (D = new Jt.Vector3(0, 1, 0)), + (k = c[0][g].clone()), + (F = c[0][g + 1].clone()), + (Q = new Jt.Vector2(F.x, 0)); + this.faces.push(new Jt.Face3(E, B, C, [I, M, D])), + this.faceVertexUvs[0].push([k, F, Q]); + } + if (!1 === o && 0 < e) + for (this.vertices.push(new Jt.Vector3(0, -l, 0)), g = 0; g < r; g++) { + (E = u[i][g + 1]), + (B = u[i][g]), + (C = this.vertices.length - 1), + (I = new Jt.Vector3(0, -1, 0)), + (M = new Jt.Vector3(0, -1, 0)), + (D = new Jt.Vector3(0, -1, 0)), + (k = c[i][g + 1].clone()), + (F = c[i][g].clone()), + (Q = new Jt.Vector2(F.x, 1)); + this.faces.push(new Jt.Face3(E, B, C, [I, M, D])), + this.faceVertexUvs[0].push([k, F, Q]); + } + this.computeFaceNormals(); + }), + (Jt.CylinderGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.CylinderGeometry.prototype.constructor = Jt.CylinderGeometry), + (Jt.ExtrudeGeometry = function (t, e) { + void 0 === t + ? (t = []) + : (Jt.Geometry.call(this), + (this.type = 'ExtrudeGeometry'), + (t = t instanceof Array ? t : [t]), + this.addShapeList(t, e), + this.computeFaceNormals()); + }), + (Jt.ExtrudeGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.ExtrudeGeometry.prototype.constructor = Jt.ExtrudeGeometry), + (Jt.ExtrudeGeometry.prototype.addShapeList = function (t, e) { + for (var n = t.length, r = 0; r < n; r++) { + var i = t[r]; + this.addShape(i, e); + } + }), + (Jt.ExtrudeGeometry.prototype.addShape = function (U, t) { + var e, + n, + r, + i, + o, + a, + N = void 0 !== t.amount ? t.amount : 100, + s = void 0 !== t.bevelThickness ? t.bevelThickness : 6, + l = void 0 !== t.bevelSize ? t.bevelSize : s - 2, + h = void 0 !== t.bevelSegments ? t.bevelSegments : 3, + u = void 0 === t.bevelEnabled || t.bevelEnabled, + P = void 0 !== t.curveSegments ? t.curveSegments : 12, + p = void 0 !== t.steps ? t.steps : 1, + L = t.extrudePath, + c = !1, + Y = t.material, + O = t.extrudeMaterial, + G = + void 0 !== t.UVGenerator + ? t.UVGenerator + : Jt.ExtrudeGeometry.WorldUVGenerator, + d = + (L && + ((e = L.getSpacedPoints(p)), + (u = !(c = !0)), + (n = + void 0 !== t.frames + ? t.frames + : new Jt.TubeGeometry.FrenetFrames(L, p, !1)), + (r = new Jt.Vector3()), + (i = new Jt.Vector3()), + (o = new Jt.Vector3())), + u || (l = s = h = 0), + this), + f = this.vertices.length, + t = U.extractPoints(P), + A = t.shape, + g = t.holes; + if (!Jt.Shape.Utils.isClockWise(A)) + for (A = A.reverse(), b = 0, y = g.length; b < y; b++) + (a = g[b]), Jt.Shape.Utils.isClockWise(a) && (g[b] = a.reverse()); + for ( + var m = Jt.Shape.Utils.triangulateShape(A, g), v = A, b = 0, y = g.length; + b < y; + b++ + ) + (a = g[b]), (A = A.concat(a)); + function w(t, e, n) { + return ( + e || Jt.error('THREE.ExtrudeGeometry: vec does not exist'), + e.clone().multiplyScalar(n).add(t) + ); + } + var E, + B, + z, + C, + x, + I, + M = A.length, + H = m.length; + function j(t, e, n) { + var r = 1, + i = t.x - e.x, + o = t.y - e.y, + a = n.x - t.x, + s = n.y - t.y, + l = i * i + o * o; + if (1e-10 < Math.abs(i * s - o * a)) { + var u = Math.sqrt(l), + c = Math.sqrt(a * a + s * s), + A = e.x - o / u, + e = e.y + i / u, + u = ((n.x - s / c - A) * s - (n.y + a / c - e) * a) / (i * s - o * a), + n = (c = A + i * u - t.x) * c + (A = e + o * u - t.y) * A; + if (n <= 2) return new Jt.Vector2(c, A); + r = Math.sqrt(n / 2); + } else { + e = !1; + 1e-10 < i + ? 1e-10 < a && (e = !0) + : i < -1e-10 + ? a < -1e-10 && (e = !0) + : Math.sign(o) == Math.sign(s) && (e = !0), + (r = e + ? ((c = -o), (A = i), Math.sqrt(l)) + : ((c = i), (A = o), Math.sqrt(l / 2))); + } + return new Jt.Vector2(c / r, A / r); + } + for ( + var V = [], D = 0, S = v.length, k = S - 1, F = D + 1; + D < S; + D++, k++, F++ + ) + V[D] = j(v[D], v[(k = k === S ? 0 : k)], v[(F = F === S ? 0 : F)]); + var Q, + _, + q = [], + W = V.concat(); + for (b = 0, y = g.length; b < y; b++) { + for ( + a = g[b], Q = [], D = 0, k = (S = a.length) - 1, F = D + 1; + D < S; + D++, k++, F++ + ) + k === S && (k = 0), F === S && (F = 0), (Q[D] = j(a[D], a[k], a[F])); + q.push(Q), (W = W.concat(Q)); + } + for (E = 0; E < h; E++) { + for ( + C = s * (1 - (z = E / h)), + B = l * Math.sin((z * Math.PI) / 2), + D = 0, + S = v.length; + D < S; + D++ + ) + R((x = w(v[D], V[D], B)).x, x.y, -C); + for (b = 0, y = g.length; b < y; b++) + for (a = g[b], Q = q[b], D = 0, S = a.length; D < S; D++) + R((x = w(a[D], Q[D], B)).x, x.y, -C); + } + for (B = l, D = 0; D < M; D++) + (x = u ? w(A[D], W[D], B) : A[D]), + c + ? (i.copy(n.normals[0]).multiplyScalar(x.x), + r.copy(n.binormals[0]).multiplyScalar(x.y), + o.copy(e[0]).add(i).add(r), + R(o.x, o.y, o.z)) + : R(x.x, x.y, 0); + for (_ = 1; _ <= p; _++) + for (D = 0; D < M; D++) + (x = u ? w(A[D], W[D], B) : A[D]), + c + ? (i.copy(n.normals[_]).multiplyScalar(x.x), + r.copy(n.binormals[_]).multiplyScalar(x.y), + o.copy(e[_]).add(i).add(r), + R(o.x, o.y, o.z)) + : R(x.x, x.y, (N / p) * _); + for (E = h - 1; 0 <= E; E--) { + for ( + C = s * (1 - (z = E / h)), + B = l * Math.sin((z * Math.PI) / 2), + D = 0, + S = v.length; + D < S; + D++ + ) + R((x = w(v[D], V[D], B)).x, x.y, N + C); + for (b = 0, y = g.length; b < y; b++) + for (a = g[b], Q = q[b], D = 0, S = a.length; D < S; D++) + (x = w(a[D], Q[D], B)), + c ? R(x.x, x.y + e[p - 1].y, e[p - 1].x + C) : R(x.x, x.y, N + C); + } + if (u) { + var T = 0 * M; + for (D = 0; D < H; D++) Z((I = m[D])[2] + T, I[1] + T, I[0] + T); + for (T = M * (p + 2 * h), D = 0; D < H; D++) + Z((I = m[D])[0] + T, I[1] + T, I[2] + T); + } else { + for (D = 0; D < H; D++) Z((I = m[D])[2], I[1], I[0]); + for (D = 0; D < H; D++) + Z((I = m[D])[0] + M * p, I[1] + M * p, I[2] + M * p); + } + var J = 0; + for (K(v, J), J += v.length, b = 0, y = g.length; b < y; b++) + K((a = g[b]), J), (J += a.length); + function K(t, e) { + var n, r; + for (D = t.length; 0 <= --D; ) { + (r = (n = D) - 1) < 0 && (r = t.length - 1); + for (var i = 0, o = p + 2 * h, i = 0; i < o; i++) { + var a = M * i, + s = M * (i + 1), + l = ((l = A = c = u = l = void 0), e + n + a), + u = e + r + a, + c = e + r + s, + A = e + n + s; + (l += f), + (u += f), + (c += f), + (A += f), + d.faces.push(new Jt.Face3(l, u, A, null, null, O)), + d.faces.push(new Jt.Face3(u, c, A, null, null, O)), + (l = G.generateSideWallUV(d, l, u, c, A)), + d.faceVertexUvs[0].push([l[0], l[1], l[3]]), + d.faceVertexUvs[0].push([l[1], l[2], l[3]]); + } + } + } + function R(t, e, n) { + d.vertices.push(new Jt.Vector3(t, e, n)); + } + function Z(t, e, n) { + d.faces.push(new Jt.Face3((t += f), (e += f), (n += f), null, null, Y)); + t = G.generateTopUV(d, t, e, n); + d.faceVertexUvs[0].push(t); + } + }), + (Jt.ExtrudeGeometry.WorldUVGenerator = { + generateTopUV: function (t, e, n, r) { + (t = t.vertices), (e = t[e]), (n = t[n]), (t = t[r]); + return [ + new Jt.Vector2(e.x, e.y), + new Jt.Vector2(n.x, n.y), + new Jt.Vector2(t.x, t.y), + ]; + }, + generateSideWallUV: function (t, e, n, r, i) { + (t = t.vertices), (e = t[e]), (n = t[n]), (r = t[r]), (t = t[i]); + return Math.abs(e.y - n.y) < 0.01 + ? [ + new Jt.Vector2(e.x, 1 - e.z), + new Jt.Vector2(n.x, 1 - n.z), + new Jt.Vector2(r.x, 1 - r.z), + new Jt.Vector2(t.x, 1 - t.z), + ] + : [ + new Jt.Vector2(e.y, 1 - e.z), + new Jt.Vector2(n.y, 1 - n.z), + new Jt.Vector2(r.y, 1 - r.z), + new Jt.Vector2(t.y, 1 - t.z), + ]; + }, + }), + (Jt.ShapeGeometry = function (t, e) { + Jt.Geometry.call(this), + (this.type = 'ShapeGeometry'), + t instanceof Array == !1 && (t = [t]), + this.addShapeList(t, e), + this.computeFaceNormals(); + }), + (Jt.ShapeGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.ShapeGeometry.prototype.constructor = Jt.ShapeGeometry), + (Jt.ShapeGeometry.prototype.addShapeList = function (t, e) { + for (var n = 0, r = t.length; n < r; n++) this.addShape(t[n], e); + return this; + }), + (Jt.ShapeGeometry.prototype.addShape = function (t, e) { + var n, + r = + void 0 !== (e = void 0 === e ? {} : e).curveSegments + ? e.curveSegments + : 12, + i = e.material, + o = + void 0 === e.UVGenerator + ? Jt.ExtrudeGeometry.WorldUVGenerator + : e.UVGenerator, + a = this.vertices.length, + e = t.extractPoints(r), + s = e.shape, + l = e.holes; + if (!Jt.Shape.Utils.isClockWise(s)) + for (s = s.reverse(), c = 0, A = l.length; c < A; c++) + (n = l[c]), Jt.Shape.Utils.isClockWise(n) && (l[c] = n.reverse()); + for ( + var u = Jt.Shape.Utils.triangulateShape(s, l), c = 0, A = l.length; + c < A; + c++ + ) + (n = l[c]), (s = s.concat(n)); + var h, + p = s.length, + d = u.length; + for (c = 0; c < p; c++) + (h = s[c]), this.vertices.push(new Jt.Vector3(h.x, h.y, 0)); + for (c = 0; c < d; c++) { + var f = (m = u[c])[0] + a, + g = m[1] + a, + m = m[2] + a; + this.faces.push(new Jt.Face3(f, g, m, null, null, i)), + this.faceVertexUvs[0].push(o.generateTopUV(this, f, g, m)); + } + }), + (Jt.LatheGeometry = function (t, e, n, r) { + Jt.Geometry.call(this), + (this.type = 'LatheGeometry'), + (this.parameters = { points: t, segments: e, phiStart: n, phiLength: r }), + (e = e || 12), + (n = n || 0), + (r = r || 2 * Math.PI); + for (var i = 1 / (t.length - 1), o = 1 / e, a = 0, s = e; a <= s; a++) + for ( + var l = n + a * o * r, + u = Math.cos(l), + c = Math.sin(l), + A = 0, + h = t.length; + A < h; + A++ + ) { + var p = t[A], + d = new Jt.Vector3(); + (d.x = u * p.x - c * p.y), + (d.y = c * p.x + u * p.y), + (d.z = p.z), + this.vertices.push(d); + } + for (var f = t.length, a = 0, s = e; a < s; a++) + for (A = 0, h = t.length - 1; A < h; A++) { + var g = A + f * a, + m = g + f, + u = g + 1 + f, + v = g + 1, + b = a * o, + y = A * i, + w = b + o, + E = y + i; + this.faces.push(new Jt.Face3(g, m, v)), + this.faceVertexUvs[0].push([ + new Jt.Vector2(b, y), + new Jt.Vector2(w, y), + new Jt.Vector2(b, E), + ]), + this.faces.push(new Jt.Face3(m, u, v)), + this.faceVertexUvs[0].push([ + new Jt.Vector2(w, y), + new Jt.Vector2(w, E), + new Jt.Vector2(b, E), + ]); + } + this.mergeVertices(), this.computeFaceNormals(), this.computeVertexNormals(); + }), + (Jt.LatheGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.LatheGeometry.prototype.constructor = Jt.LatheGeometry), + (Jt.PlaneGeometry = function (t, e, n, r) { + console.info( + 'THREE.PlaneGeometry: Consider using THREE.PlaneBufferGeometry for lower memory footprint.', + ), + Jt.Geometry.call(this), + (this.type = 'PlaneGeometry'), + (this.parameters = { + width: t, + height: e, + widthSegments: n, + heightSegments: r, + }), + this.fromBufferGeometry(new Jt.PlaneBufferGeometry(t, e, n, r)); + }), + (Jt.PlaneGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.PlaneGeometry.prototype.constructor = Jt.PlaneGeometry), + (Jt.PlaneBufferGeometry = function (t, e, n, r) { + Jt.BufferGeometry.call(this), + (this.type = 'PlaneBufferGeometry'), + (this.parameters = { + width: t, + height: e, + widthSegments: n, + heightSegments: r, + }); + for ( + var i = t / 2, + o = e / 2, + a = n || 1, + s = r || 1, + l = a + 1, + u = s + 1, + c = t / a, + A = e / s, + h = new Float32Array(l * u * 3), + p = new Float32Array(l * u * 3), + d = new Float32Array(l * u * 2), + f = 0, + g = 0, + m = 0; + m < u; + m++ + ) + for (var v = m * A - o, b = 0; b < l; b++) + (h[f] = b * c - i), + (h[f + 1] = -v), + (p[f + 2] = 1), + (d[g] = b / a), + (d[g + 1] = 1 - m / s), + (f += 3), + (g += 2); + for ( + var f = 0, + y = new (65535 < h.length / 3 ? Uint32Array : Uint16Array)(a * s * 6), + m = 0; + m < s; + m++ + ) + for (b = 0; b < a; b++) { + var w = b + l * (m + 1), + E = b + 1 + l * (m + 1), + B = b + 1 + l * m; + (y[f] = b + l * m), + (y[f + 1] = w), + (y[f + 2] = B), + (y[f + 3] = w), + (y[f + 4] = E), + (y[f + 5] = B), + (f += 6); + } + this.addAttribute('index', new Jt.BufferAttribute(y, 1)), + this.addAttribute('position', new Jt.BufferAttribute(h, 3)), + this.addAttribute('normal', new Jt.BufferAttribute(p, 3)), + this.addAttribute('uv', new Jt.BufferAttribute(d, 2)); + }), + (Jt.PlaneBufferGeometry.prototype = Object.create(Jt.BufferGeometry.prototype)), + (Jt.PlaneBufferGeometry.prototype.constructor = Jt.PlaneBufferGeometry), + (Jt.RingGeometry = function (t, e, n, r, i, o) { + Jt.Geometry.call(this), + (this.type = 'RingGeometry'), + (this.parameters = { + innerRadius: t, + outerRadius: e, + thetaSegments: n, + phiSegments: r, + thetaStart: i, + thetaLength: o, + }), + (t = t || 0), + (e = e || 50), + (i = void 0 !== i ? i : 0), + (o = void 0 !== o ? o : 2 * Math.PI), + (n = void 0 !== n ? Math.max(3, n) : 8); + for ( + var a = [], + s = t, + l = (e - t) / (r = void 0 !== r ? Math.max(1, r) : 8), + u = 0; + u < r + 1; + u++ + ) { + for (d = 0; d < n + 1; d++) { + var c = new Jt.Vector3(), + A = i + (d / n) * o; + (c.x = s * Math.cos(A)), + (c.y = s * Math.sin(A)), + this.vertices.push(c), + a.push(new Jt.Vector2((c.x / e + 1) / 2, (c.y / e + 1) / 2)); + } + s += l; + } + var h = new Jt.Vector3(0, 0, 1); + for (u = 0; u < r; u++) + for (var p = u * (n + 1), d = 0; d < n; d++) { + var f = (A = d + p), + g = A + n + 1, + m = A + n + 2; + this.faces.push(new Jt.Face3(f, g, m, [h.clone(), h.clone(), h.clone()])), + this.faceVertexUvs[0].push([a[f].clone(), a[g].clone(), a[m].clone()]), + this.faces.push( + new Jt.Face3((f = A), (g = A + n + 2), (m = A + 1), [ + h.clone(), + h.clone(), + h.clone(), + ]), + ), + this.faceVertexUvs[0].push([a[f].clone(), a[g].clone(), a[m].clone()]); + } + this.computeFaceNormals(), + (this.boundingSphere = new Jt.Sphere(new Jt.Vector3(), s)); + }), + (Jt.RingGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.RingGeometry.prototype.constructor = Jt.RingGeometry), + (Jt.SphereGeometry = function (t, e, n, r, i, o, a) { + Jt.Geometry.call(this), + (this.type = 'SphereGeometry'), + (this.parameters = { + radius: t, + widthSegments: e, + heightSegments: n, + phiStart: r, + phiLength: i, + thetaStart: o, + thetaLength: a, + }), + (t = t || 50), + (e = Math.max(3, Math.floor(e) || 8)), + (n = Math.max(2, Math.floor(n) || 6)), + (r = void 0 !== r ? r : 0), + (i = void 0 !== i ? i : 2 * Math.PI), + (o = void 0 !== o ? o : 0), + (a = void 0 !== a ? a : Math.PI); + for (var s = [], l = [], u = 0; u <= n; u++) { + for (var c = [], A = [], h = 0; h <= e; h++) { + var p = h / e, + d = u / n, + f = new Jt.Vector3(); + (f.x = -t * Math.cos(r + p * i) * Math.sin(o + d * a)), + (f.y = t * Math.cos(o + d * a)), + (f.z = t * Math.sin(r + p * i) * Math.sin(o + d * a)), + this.vertices.push(f), + c.push(this.vertices.length - 1), + A.push(new Jt.Vector2(p, 1 - d)); + } + s.push(c), l.push(A); + } + for (u = 0; u < n; u++) + for (h = 0; h < e; h++) { + var g = s[u][h + 1], + m = s[u][h], + v = s[u + 1][h], + b = s[u + 1][h + 1], + y = this.vertices[g].clone().normalize(), + w = this.vertices[m].clone().normalize(), + E = this.vertices[v].clone().normalize(), + B = this.vertices[b].clone().normalize(), + C = l[u][h + 1].clone(), + x = l[u][h].clone(), + I = l[u + 1][h].clone(), + M = l[u + 1][h + 1].clone(); + Math.abs(this.vertices[g].y) === t + ? ((C.x = (C.x + x.x) / 2), + this.faces.push(new Jt.Face3(g, v, b, [y, E, B])), + this.faceVertexUvs[0].push([C, I, M])) + : Math.abs(this.vertices[v].y) === t + ? ((I.x = (I.x + M.x) / 2), + this.faces.push(new Jt.Face3(g, m, v, [y, w, E])), + this.faceVertexUvs[0].push([C, x, I])) + : (this.faces.push(new Jt.Face3(g, m, b, [y, w, B])), + this.faceVertexUvs[0].push([C, x, M]), + this.faces.push(new Jt.Face3(m, v, b, [w.clone(), E, B.clone()])), + this.faceVertexUvs[0].push([x.clone(), I, M.clone()])); + } + this.computeFaceNormals(), + (this.boundingSphere = new Jt.Sphere(new Jt.Vector3(), t)); + }), + (Jt.SphereGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.SphereGeometry.prototype.constructor = Jt.SphereGeometry), + (Jt.TextGeometry = function (t, e) { + t = Jt.FontUtils.generateShapes(t, (e = e || {})); + (e.amount = void 0 !== e.height ? e.height : 50), + void 0 === e.bevelThickness && (e.bevelThickness = 10), + void 0 === e.bevelSize && (e.bevelSize = 8), + void 0 === e.bevelEnabled && (e.bevelEnabled = !1), + Jt.ExtrudeGeometry.call(this, t, e), + (this.type = 'TextGeometry'); + }), + (Jt.TextGeometry.prototype = Object.create(Jt.ExtrudeGeometry.prototype)), + (Jt.TextGeometry.prototype.constructor = Jt.TextGeometry), + (Jt.TorusGeometry = function (t, e, n, r, i) { + Jt.Geometry.call(this), + (this.type = 'TorusGeometry'), + (this.parameters = { + radius: t, + tube: e, + radialSegments: n, + tubularSegments: r, + arc: i, + }), + (t = t || 100), + (e = e || 40), + (n = n || 8), + (r = r || 6), + (i = i || 2 * Math.PI); + for (var o = new Jt.Vector3(), a = [], s = [], l = 0; l <= n; l++) + for (var u = 0; u <= r; u++) { + var c = (u / r) * i, + A = (l / n) * Math.PI * 2, + h = + ((o.x = t * Math.cos(c)), (o.y = t * Math.sin(c)), new Jt.Vector3()); + (h.x = (t + e * Math.cos(A)) * Math.cos(c)), + (h.y = (t + e * Math.cos(A)) * Math.sin(c)), + (h.z = e * Math.sin(A)), + this.vertices.push(h), + a.push(new Jt.Vector2(u / r, l / n)), + s.push(h.clone().sub(o).normalize()); + } + for (l = 1; l <= n; l++) + for (u = 1; u <= r; u++) { + var p = (r + 1) * l + u - 1, + d = (r + 1) * (l - 1) + u - 1, + f = (r + 1) * (l - 1) + u, + g = (r + 1) * l + u, + m = new Jt.Face3(p, d, g, [s[p].clone(), s[d].clone(), s[g].clone()]); + this.faces.push(m), + this.faceVertexUvs[0].push([a[p].clone(), a[d].clone(), a[g].clone()]), + (m = new Jt.Face3(d, f, g, [s[d].clone(), s[f].clone(), s[g].clone()])), + this.faces.push(m), + this.faceVertexUvs[0].push([a[d].clone(), a[f].clone(), a[g].clone()]); + } + this.computeFaceNormals(); + }), + (Jt.TorusGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.TorusGeometry.prototype.constructor = Jt.TorusGeometry), + (Jt.TorusKnotGeometry = function (t, e, n, r, i, o, a) { + Jt.Geometry.call(this), + (this.type = 'TorusKnotGeometry'), + (this.parameters = { + radius: t, + tube: e, + radialSegments: n, + tubularSegments: r, + p: i, + q: o, + heightScale: a, + }), + (t = t || 100), + (e = e || 40), + (n = n || 64), + (r = r || 8), + (i = i || 2), + (o = o || 3), + (a = a || 1); + for ( + var s = new Array(n), + l = new Jt.Vector3(), + u = new Jt.Vector3(), + c = new Jt.Vector3(), + A = 0; + A < n; + ++A + ) { + s[A] = new Array(r); + var h = (A / n) * 2 * i * Math.PI, + p = I(h, o, i, t, a), + h = I(0.01 + h, o, i, t, a); + l.subVectors(h, p), + u.addVectors(h, p), + c.crossVectors(l, u), + u.crossVectors(c, l), + c.normalize(), + u.normalize(); + for (var d = 0; d < r; ++d) { + var f = (d / r) * 2 * Math.PI, + g = -e * Math.cos(f), + f = e * Math.sin(f), + m = new Jt.Vector3(); + (m.x = p.x + g * u.x + f * c.x), + (m.y = p.y + g * u.y + f * c.y), + (m.z = p.z + g * u.z + f * c.z), + (s[A][d] = this.vertices.push(m) - 1); + } + } + for (A = 0; A < n; ++A) + for (d = 0; d < r; ++d) { + var v = (A + 1) % n, + b = (d + 1) % r, + y = s[A][d], + w = s[v][d], + v = s[v][b], + b = s[A][b], + E = new Jt.Vector2(A / n, d / r), + B = new Jt.Vector2((A + 1) / n, d / r), + C = new Jt.Vector2((A + 1) / n, (d + 1) / r), + x = new Jt.Vector2(A / n, (d + 1) / r); + this.faces.push(new Jt.Face3(y, w, b)), + this.faceVertexUvs[0].push([E, B, x]), + this.faces.push(new Jt.Face3(w, v, b)), + this.faceVertexUvs[0].push([B.clone(), C, x.clone()]); + } + function I(t, e, n, r, i) { + var o = Math.cos(t), + a = Math.sin(t), + e = (e / n) * t, + n = Math.cos(e), + t = r * (2 + n) * 0.5 * o, + o = r * (2 + n) * a * 0.5, + n = i * r * Math.sin(e) * 0.5; + return new Jt.Vector3(t, o, n); + } + this.computeFaceNormals(), this.computeVertexNormals(); + }), + (Jt.TorusKnotGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.TorusKnotGeometry.prototype.constructor = Jt.TorusKnotGeometry), + (Jt.TubeGeometry = function (t, e, n, r, i, o) { + Jt.Geometry.call(this), + (this.type = 'TubeGeometry'), + (this.parameters = { + path: t, + segments: e, + radius: n, + radialSegments: r, + closed: i, + }), + (n = n || 1), + (r = r || 8), + (i = i || !1), + (o = o || Jt.TubeGeometry.NoTaper); + var a, + s, + l, + u, + c, + A, + h, + p, + d, + f, + g, + m, + v, + b, + y, + w, + E, + B, + C = [], + x = this, + I = (e = e || 64) + 1, + M = new Jt.Vector3(), + D = new Jt.TubeGeometry.FrenetFrames(t, e, i), + S = D.tangents, + k = D.normals, + F = D.binormals; + for ( + this.tangents = S, this.normals = k, this.binormals = F, A = 0; + A < I; + A++ + ) + for ( + C[A] = [], + c = t.getPointAt((l = A / (I - 1))), + S[A], + a = k[A], + s = F[A], + u = n * o(l), + h = 0; + h < r; + h++ + ) + (E = (h / r) * 2 * Math.PI), + (w = -u * Math.cos(E)), + (E = u * Math.sin(E)), + M.copy(c), + (M.x += w * a.x + E * s.x), + (M.y += w * a.y + E * s.y), + (M.z += w * a.z + E * s.z), + (C[A][h] = + ((w = M.x), + (E = M.y), + (B = M.z), + x.vertices.push(new Jt.Vector3(w, E, B)) - 1)); + for (A = 0; A < e; A++) + for (h = 0; h < r; h++) + (p = C[A][h]), + (d = C[(g = i ? (A + 1) % e : A + 1)][h]), + (f = C[g][(g = (h + 1) % r)]), + (g = C[A][g]), + (m = new Jt.Vector2(A / e, h / r)), + (v = new Jt.Vector2((A + 1) / e, h / r)), + (b = new Jt.Vector2((A + 1) / e, (h + 1) / r)), + (y = new Jt.Vector2(A / e, (h + 1) / r)), + this.faces.push(new Jt.Face3(p, d, g)), + this.faceVertexUvs[0].push([m, v, y]), + this.faces.push(new Jt.Face3(d, f, g)), + this.faceVertexUvs[0].push([v.clone(), b, y.clone()]); + this.computeFaceNormals(), this.computeVertexNormals(); + }), + (Jt.TubeGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.TubeGeometry.prototype.constructor = Jt.TubeGeometry), + (Jt.TubeGeometry.NoTaper = function (t) { + return 1; + }), + (Jt.TubeGeometry.SinusoidalTaper = function (t) { + return Math.sin(Math.PI * t); + }), + (Jt.TubeGeometry.FrenetFrames = function (t, e, n) { + var r, + i, + o, + a, + s, + l = new Jt.Vector3(), + u = [], + c = [], + A = [], + h = new Jt.Vector3(), + p = new Jt.Matrix4(), + d = e + 1; + for ( + this.tangents = u, this.normals = c, this.binormals = A, s = 0; + s < d; + s++ + ) + (u[s] = t.getTangentAt(s / (d - 1))), u[s].normalize(); + for ( + c[0] = new Jt.Vector3(), + A[0] = new Jt.Vector3(), + e = Number.MAX_VALUE, + i = Math.abs(u[0].x), + o = Math.abs(u[0].y), + a = Math.abs(u[0].z), + i <= e && ((e = i), l.set(1, 0, 0)), + o <= e && ((e = o), l.set(0, 1, 0)), + a <= e && l.set(0, 0, 1), + h.crossVectors(u[0], l).normalize(), + c[0].crossVectors(u[0], h), + A[0].crossVectors(u[0], c[0]), + s = 1; + s < d; + s++ + ) + (c[s] = c[s - 1].clone()), + (A[s] = A[s - 1].clone()), + h.crossVectors(u[s - 1], u[s]), + 1e-4 < h.length() && + (h.normalize(), + (r = Math.acos(Jt.Math.clamp(u[s - 1].dot(u[s]), -1, 1))), + c[s].applyMatrix4(p.makeRotationAxis(h, r))), + A[s].crossVectors(u[s], c[s]); + if (n) + for ( + r = Math.acos(Jt.Math.clamp(c[0].dot(c[d - 1]), -1, 1)), + r /= d - 1, + 0 < u[0].dot(h.crossVectors(c[0], c[d - 1])) && (r = -r), + s = 1; + s < d; + s++ + ) + c[s].applyMatrix4(p.makeRotationAxis(u[s], r * s)), + A[s].crossVectors(u[s], c[s]); + }), + (Jt.PolyhedronGeometry = function (t, e, n, r) { + Jt.Geometry.call(this), + (this.type = 'PolyhedronGeometry'), + (this.parameters = { vertices: t, indices: e, radius: n, detail: r }), + (n = n || 1), + (r = r || 0); + for (var i = this, o = 0, a = t.length; o < a; o += 3) + Q(new Jt.Vector3(t[o], t[o + 1], t[o + 2])); + for ( + var s = this.vertices, l = [], o = 0, u = 0, a = e.length; + o < a; + o += 3, u++ + ) { + var c = s[e[o]], + A = s[e[o + 1]], + h = s[e[o + 2]]; + l[u] = new Jt.Face3(c.index, A.index, h.index, [ + c.clone(), + A.clone(), + h.clone(), + ]); + } + for (var p = new Jt.Vector3(), o = 0, a = l.length; o < a; o++) { + I = x = C = B = E = w = y = b = v = m = g = f = d = void 0; + for ( + var d = l[o], + f = r, + g = Math.pow(2, f), + m = Q(i.vertices[d.a]), + v = Q(i.vertices[d.b]), + b = Q(i.vertices[d.c]), + y = [], + w = 0; + w <= g; + w++ + ) { + y[w] = []; + for ( + var E = Q(m.clone().lerp(b, w / g)), + B = Q(v.clone().lerp(b, w / g)), + C = g - w, + x = 0; + x <= C; + x++ + ) + y[w][x] = 0 == x && w == g ? E : Q(E.clone().lerp(B, x / C)); + } + for (w = 0; w < g; w++) + for (x = 0; x < 2 * (g - w) - 1; x++) { + var I = Math.floor(x / 2); + x % 2 == 0 + ? _(y[w][I + 1], y[w + 1][I], y[w][I]) + : _(y[w][I + 1], y[w + 1][I + 1], y[w + 1][I]); + } + } + for (o = 0, a = this.faceVertexUvs[0].length; o < a; o++) { + var M = this.faceVertexUvs[0][o], + D = M[0].x, + S = M[1].x, + k = M[2].x, + F = Math.max(D, Math.max(S, k)), + U = Math.min(D, Math.min(S, k)); + 0.9 < F && + U < 0.1 && + (D < 0.2 && (M[0].x += 1), + S < 0.2 && (M[1].x += 1), + k < 0.2 && (M[2].x += 1)); + } + for (o = 0, a = this.vertices.length; o < a; o++) + this.vertices[o].multiplyScalar(n); + function Q(t) { + var e = t.normalize().clone(), + n = ((e.index = i.vertices.push(e) - 1), T(t) / 2 / Math.PI + 0.5), + t = Math.atan2(-t.y, Math.sqrt(t.x * t.x + t.z * t.z)) / Math.PI + 0.5; + return (e.uv = new Jt.Vector2(n, 1 - t)), e; + } + function _(t, e, n) { + var r = new Jt.Face3(t.index, e.index, n.index, [ + t.clone(), + e.clone(), + n.clone(), + ]), + r = (i.faces.push(r), p.copy(t).add(e).add(n).divideScalar(3), T(p)); + i.faceVertexUvs[0].push([R(t.uv, t, r), R(e.uv, e, r), R(n.uv, n, r)]); + } + function T(t) { + return Math.atan2(t.z, -t.x); + } + function R(t, e, n) { + return ( + n < 0 && 1 === t.x && (t = new Jt.Vector2(t.x - 1, t.y)), + (t = + 0 === e.x && 0 === e.z + ? new Jt.Vector2(n / 2 / Math.PI + 0.5, t.y) + : t).clone() + ); + } + this.mergeVertices(), + this.computeFaceNormals(), + (this.boundingSphere = new Jt.Sphere(new Jt.Vector3(), n)); + }), + (Jt.PolyhedronGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.PolyhedronGeometry.prototype.constructor = Jt.PolyhedronGeometry), + (Jt.DodecahedronGeometry = function (t, e) { + this.parameters = { radius: t, detail: e }; + var n = (1 + Math.sqrt(5)) / 2, + r = 1 / n; + Jt.PolyhedronGeometry.call( + this, + [ + -1, + -1, + -1, + -1, + -1, + 1, + -1, + 1, + -1, + -1, + 1, + 1, + 1, + -1, + -1, + 1, + -1, + 1, + 1, + 1, + -1, + 1, + 1, + 1, + 0, + -r, + -n, + 0, + -r, + n, + 0, + r, + -n, + 0, + r, + n, + -r, + -n, + 0, + -r, + n, + 0, + r, + -n, + 0, + r, + n, + 0, + -n, + 0, + -r, + n, + 0, + -r, + -n, + 0, + r, + n, + 0, + r, + ], + [ + 3, 11, 7, 3, 7, 15, 3, 15, 13, 7, 19, 17, 7, 17, 6, 7, 6, 15, 17, 4, 8, + 17, 8, 10, 17, 10, 6, 8, 0, 16, 8, 16, 2, 8, 2, 10, 0, 12, 1, 0, 1, 18, 0, + 18, 16, 6, 10, 2, 6, 2, 13, 6, 13, 15, 2, 16, 18, 2, 18, 3, 2, 3, 13, 18, + 1, 9, 18, 9, 11, 18, 11, 3, 4, 14, 12, 4, 12, 0, 4, 0, 8, 11, 9, 5, 11, 5, + 19, 11, 19, 7, 19, 5, 14, 19, 14, 4, 19, 4, 17, 1, 12, 14, 1, 14, 5, 1, 5, + 9, + ], + t, + e, + ); + }), + (Jt.DodecahedronGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.DodecahedronGeometry.prototype.constructor = Jt.DodecahedronGeometry), + (Jt.IcosahedronGeometry = function (t, e) { + var n = (1 + Math.sqrt(5)) / 2; + Jt.PolyhedronGeometry.call( + this, + [ + -1, + n, + 0, + 1, + n, + 0, + -1, + -n, + 0, + 1, + -n, + 0, + 0, + -1, + n, + 0, + 1, + n, + 0, + -1, + -n, + 0, + 1, + -n, + n, + 0, + -1, + n, + 0, + 1, + -n, + 0, + -1, + -n, + 0, + 1, + ], + [ + 0, 11, 5, 0, 5, 1, 0, 1, 7, 0, 7, 10, 0, 10, 11, 1, 5, 9, 5, 11, 4, 11, + 10, 2, 10, 7, 6, 7, 1, 8, 3, 9, 4, 3, 4, 2, 3, 2, 6, 3, 6, 8, 3, 8, 9, 4, + 9, 5, 2, 4, 11, 6, 2, 10, 8, 6, 7, 9, 8, 1, + ], + t, + e, + ), + (this.type = 'IcosahedronGeometry'), + (this.parameters = { radius: t, detail: e }); + }), + (Jt.IcosahedronGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.IcosahedronGeometry.prototype.constructor = Jt.IcosahedronGeometry), + (Jt.OctahedronGeometry = function (t, e) { + this.parameters = { radius: t, detail: e }; + Jt.PolyhedronGeometry.call( + this, + [1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1], + [0, 2, 4, 0, 4, 3, 0, 3, 5, 0, 5, 2, 1, 2, 5, 1, 5, 3, 1, 3, 4, 1, 4, 2], + t, + e, + ), + (this.type = 'OctahedronGeometry'), + (this.parameters = { radius: t, detail: e }); + }), + (Jt.OctahedronGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.OctahedronGeometry.prototype.constructor = Jt.OctahedronGeometry), + (Jt.TetrahedronGeometry = function (t, e) { + Jt.PolyhedronGeometry.call( + this, + [1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1], + [2, 1, 0, 0, 3, 2, 1, 3, 0, 2, 3, 1], + t, + e, + ), + (this.type = 'TetrahedronGeometry'), + (this.parameters = { radius: t, detail: e }); + }), + (Jt.TetrahedronGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.TetrahedronGeometry.prototype.constructor = Jt.TetrahedronGeometry), + (Jt.ParametricGeometry = function (t, e, n) { + Jt.Geometry.call(this), + (this.type = 'ParametricGeometry'), + (this.parameters = { func: t, slices: e, stacks: n }); + for ( + var r, + i, + o, + a, + s, + l, + u, + c, + A, + h, + p, + d = this.vertices, + f = this.faces, + g = this.faceVertexUvs[0], + m = e + 1, + v = 0; + v <= n; + v++ + ) + for (o = v / n, r = 0; r <= e; r++) (i = t(r / e, o)), d.push(i); + for (v = 0; v < n; v++) + for (r = 0; r < e; r++) + (s = (a = v * m + r) + 1), + (l = (v + 1) * m + r + 1), + (u = (v + 1) * m + r), + (c = new Jt.Vector2(r / e, v / n)), + (A = new Jt.Vector2((r + 1) / e, v / n)), + (h = new Jt.Vector2((r + 1) / e, (v + 1) / n)), + (p = new Jt.Vector2(r / e, (v + 1) / n)), + f.push(new Jt.Face3(a, s, u)), + g.push([c, A, p]), + f.push(new Jt.Face3(s, l, u)), + g.push([A.clone(), h, p.clone()]); + this.computeFaceNormals(), this.computeVertexNormals(); + }), + (Jt.ParametricGeometry.prototype = Object.create(Jt.Geometry.prototype)), + (Jt.ParametricGeometry.prototype.constructor = Jt.ParametricGeometry), + (Jt.AxisHelper = function (t) { + t = t || 1; + var t = new Float32Array([ + 0, + 0, + 0, + t, + 0, + 0, + 0, + 0, + 0, + 0, + t, + 0, + 0, + 0, + 0, + 0, + 0, + t, + ]), + e = new Float32Array([ + 1, 0, 0, 1, 0.6, 0, 0, 1, 0, 0.6, 1, 0, 0, 0, 1, 0, 0.6, 1, + ]), + n = new Jt.BufferGeometry(), + t = + (n.addAttribute('position', new Jt.BufferAttribute(t, 3)), + n.addAttribute('color', new Jt.BufferAttribute(e, 3)), + new Jt.LineBasicMaterial({ vertexColors: Jt.VertexColors })); + Jt.Line.call(this, n, t, Jt.LinePieces); + }), + (Jt.AxisHelper.prototype = Object.create(Jt.Line.prototype)), + (Jt.AxisHelper.prototype.constructor = Jt.AxisHelper), + (Jt.ArrowHelper = + (($n = new Jt.Geometry()).vertices.push( + new Jt.Vector3(0, 0, 0), + new Jt.Vector3(0, 1, 0), + ), + (tr = new Jt.CylinderGeometry(0, 0.5, 1, 5, 1)).applyMatrix( + new Jt.Matrix4().makeTranslation(0, -0.5, 0), + ), + function (t, e, n, r, i, o) { + Jt.Object3D.call(this), + void 0 === r && (r = 16776960), + void 0 === n && (n = 1), + void 0 === i && (i = 0.2 * n), + void 0 === o && (o = 0.2 * i), + this.position.copy(e), + (this.line = new Jt.Line($n, new Jt.LineBasicMaterial({ color: r }))), + (this.line.matrixAutoUpdate = !1), + this.add(this.line), + (this.cone = new Jt.Mesh(tr, new Jt.MeshBasicMaterial({ color: r }))), + (this.cone.matrixAutoUpdate = !1), + this.add(this.cone), + this.setDirection(t), + this.setLength(n, i, o); + })), + (Jt.ArrowHelper.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.ArrowHelper.prototype.constructor = Jt.ArrowHelper), + (Jt.ArrowHelper.prototype.setDirection = + ((nr = new Jt.Vector3()), + function (t) { + 0.99999 < t.y + ? this.quaternion.set(0, 0, 0, 1) + : t.y < -0.99999 + ? this.quaternion.set(1, 0, 0, 0) + : (nr.set(t.z, 0, -t.x).normalize(), + (er = Math.acos(t.y)), + this.quaternion.setFromAxisAngle(nr, er)); + })), + (Jt.ArrowHelper.prototype.setLength = function (t, e, n) { + void 0 === e && (e = 0.2 * t), + void 0 === n && (n = 0.2 * e), + this.line.scale.set(1, t - e, 1), + this.line.updateMatrix(), + this.cone.scale.set(n, e, n), + (this.cone.position.y = t), + this.cone.updateMatrix(); + }), + (Jt.ArrowHelper.prototype.setColor = function (t) { + this.line.material.color.set(t), this.cone.material.color.set(t); + }), + (Jt.BoxHelper = function (t) { + var e = new Jt.BufferGeometry(); + e.addAttribute('position', new Jt.BufferAttribute(new Float32Array(72), 3)), + Jt.Line.call( + this, + e, + new Jt.LineBasicMaterial({ color: 16776960 }), + Jt.LinePieces, + ), + void 0 !== t && this.update(t); + }), + (Jt.BoxHelper.prototype = Object.create(Jt.Line.prototype)), + (Jt.BoxHelper.prototype.constructor = Jt.BoxHelper), + (Jt.BoxHelper.prototype.update = function (t) { + var e = t.geometry, + n = (null === e.boundingBox && e.computeBoundingBox(), e.boundingBox.min), + e = e.boundingBox.max, + r = this.geometry.attributes.position.array; + (r[0] = e.x), + (r[1] = e.y), + (r[2] = e.z), + (r[3] = n.x), + (r[4] = e.y), + (r[5] = e.z), + (r[6] = n.x), + (r[7] = e.y), + (r[8] = e.z), + (r[9] = n.x), + (r[10] = n.y), + (r[11] = e.z), + (r[12] = n.x), + (r[13] = n.y), + (r[14] = e.z), + (r[15] = e.x), + (r[16] = n.y), + (r[17] = e.z), + (r[18] = e.x), + (r[19] = n.y), + (r[20] = e.z), + (r[21] = e.x), + (r[22] = e.y), + (r[23] = e.z), + (r[24] = e.x), + (r[25] = e.y), + (r[26] = n.z), + (r[27] = n.x), + (r[28] = e.y), + (r[29] = n.z), + (r[30] = n.x), + (r[31] = e.y), + (r[32] = n.z), + (r[33] = n.x), + (r[34] = n.y), + (r[35] = n.z), + (r[36] = n.x), + (r[37] = n.y), + (r[38] = n.z), + (r[39] = e.x), + (r[40] = n.y), + (r[41] = n.z), + (r[42] = e.x), + (r[43] = n.y), + (r[44] = n.z), + (r[45] = e.x), + (r[46] = e.y), + (r[47] = n.z), + (r[48] = e.x), + (r[49] = e.y), + (r[50] = e.z), + (r[51] = e.x), + (r[52] = e.y), + (r[53] = n.z), + (r[54] = n.x), + (r[55] = e.y), + (r[56] = e.z), + (r[57] = n.x), + (r[58] = e.y), + (r[59] = n.z), + (r[60] = n.x), + (r[61] = n.y), + (r[62] = e.z), + (r[63] = n.x), + (r[64] = n.y), + (r[65] = n.z), + (r[66] = e.x), + (r[67] = n.y), + (r[68] = e.z), + (r[69] = e.x), + (r[70] = n.y), + (r[71] = n.z), + (this.geometry.attributes.position.needsUpdate = !0), + this.geometry.computeBoundingSphere(), + (this.matrix = t.matrixWorld), + (this.matrixAutoUpdate = !1); + }), + (Jt.BoundingBoxHelper = function (t, e) { + e = void 0 !== e ? e : 8947848; + (this.object = t), + (this.box = new Jt.Box3()), + Jt.Mesh.call( + this, + new Jt.BoxGeometry(1, 1, 1), + new Jt.MeshBasicMaterial({ color: e, wireframe: !0 }), + ); + }), + (Jt.BoundingBoxHelper.prototype = Object.create(Jt.Mesh.prototype)), + (Jt.BoundingBoxHelper.prototype.constructor = Jt.BoundingBoxHelper), + (Jt.BoundingBoxHelper.prototype.update = function () { + this.box.setFromObject(this.object), + this.box.size(this.scale), + this.box.center(this.position); + }), + (Jt.CameraHelper = function (t) { + var n = new Jt.Geometry(), + e = new Jt.LineBasicMaterial({ + color: 16777215, + vertexColors: Jt.FaceColors, + }), + r = {}, + i = 16755200, + o = 16711680, + a = 3355443; + function s(t, e, n) { + l(t, n), l(e, n); + } + function l(t, e) { + n.vertices.push(new Jt.Vector3()), + n.colors.push(new Jt.Color(e)), + void 0 === r[t] && (r[t] = []), + r[t].push(n.vertices.length - 1); + } + s('n1', 'n2', i), + s('n2', 'n4', i), + s('n4', 'n3', i), + s('n3', 'n1', i), + s('f1', 'f2', i), + s('f2', 'f4', i), + s('f4', 'f3', i), + s('f3', 'f1', i), + s('n1', 'f1', i), + s('n2', 'f2', i), + s('n3', 'f3', i), + s('n4', 'f4', i), + s('p', 'n1', o), + s('p', 'n2', o), + s('p', 'n3', o), + s('p', 'n4', o), + s('u1', 'u2', 43775), + s('u2', 'u3', 43775), + s('u3', 'u1', 43775), + s('c', 't', 16777215), + s('p', 'c', a), + s('cn1', 'cn2', a), + s('cn3', 'cn4', a), + s('cf1', 'cf2', a), + s('cf3', 'cf4', a), + Jt.Line.call(this, n, e, Jt.LinePieces), + (this.camera = t), + (this.matrix = t.matrixWorld), + (this.matrixAutoUpdate = !1), + (this.pointMap = r), + this.update(); + }), + (Jt.CameraHelper.prototype = Object.create(Jt.Line.prototype)), + (Jt.CameraHelper.prototype.constructor = Jt.CameraHelper), + (Jt.CameraHelper.prototype.update = + ((or = new Jt.Vector3()), + (ar = new Jt.Camera()), + function () { + (rr = this.geometry), (ir = this.pointMap); + ar.projectionMatrix.copy(this.camera.projectionMatrix), + vr('c', 0, 0, -1), + vr('t', 0, 0, 1), + vr('n1', -1, -1, -1), + vr('n2', 1, -1, -1), + vr('n3', -1, 1, -1), + vr('n4', 1, 1, -1), + vr('f1', -1, -1, 1), + vr('f2', 1, -1, 1), + vr('f3', -1, 1, 1), + vr('f4', 1, 1, 1), + vr('u1', 0.7, 1.1, -1), + vr('u2', -0.7, 1.1, -1), + vr('u3', 0, 2, -1), + vr('cf1', -1, 0, 1), + vr('cf2', 1, 0, 1), + vr('cf3', 0, -1, 1), + vr('cf4', 0, 1, 1), + vr('cn1', -1, 0, -1), + vr('cn2', 1, 0, -1), + vr('cn3', 0, -1, -1), + vr('cn4', 0, 1, -1), + (rr.verticesNeedUpdate = !0); + })), + (Jt.DirectionalLightHelper = function (t, e) { + Jt.Object3D.call(this), + (this.light = t), + this.light.updateMatrixWorld(), + (this.matrix = t.matrixWorld), + (this.matrixAutoUpdate = !1), + (e = e || 1); + (t = new Jt.Geometry()), + t.vertices.push( + new Jt.Vector3(-e, e, 0), + new Jt.Vector3(e, e, 0), + new Jt.Vector3(e, -e, 0), + new Jt.Vector3(-e, -e, 0), + new Jt.Vector3(-e, e, 0), + ), + (e = new Jt.LineBasicMaterial({ fog: !1 })); + e.color.copy(this.light.color).multiplyScalar(this.light.intensity), + (this.lightPlane = new Jt.Line(t, e)), + this.add(this.lightPlane), + (t = new Jt.Geometry()).vertices.push(new Jt.Vector3(), new Jt.Vector3()), + (e = new Jt.LineBasicMaterial({ fog: !1 })).color + .copy(this.light.color) + .multiplyScalar(this.light.intensity), + (this.targetLine = new Jt.Line(t, e)), + this.add(this.targetLine), + this.update(); + }), + (Jt.DirectionalLightHelper.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.DirectionalLightHelper.prototype.constructor = Jt.DirectionalLightHelper), + (Jt.DirectionalLightHelper.prototype.dispose = function () { + this.lightPlane.geometry.dispose(), + this.lightPlane.material.dispose(), + this.targetLine.geometry.dispose(), + this.targetLine.material.dispose(); + }), + (Jt.DirectionalLightHelper.prototype.update = + ((sr = new Jt.Vector3()), + (lr = new Jt.Vector3()), + (ur = new Jt.Vector3()), + function () { + sr.setFromMatrixPosition(this.light.matrixWorld), + lr.setFromMatrixPosition(this.light.target.matrixWorld), + ur.subVectors(lr, sr), + this.lightPlane.lookAt(ur), + this.lightPlane.material.color + .copy(this.light.color) + .multiplyScalar(this.light.intensity), + this.targetLine.geometry.vertices[1].copy(ur), + (this.targetLine.geometry.verticesNeedUpdate = !0), + this.targetLine.material.color.copy(this.lightPlane.material.color); + })), + (Jt.EdgesHelper = function (t, e, n) { + for ( + var r, + e = void 0 !== e ? e : 16777215, + i = ((n = void 0 !== n ? n : 1), Math.cos(Jt.Math.degToRad(n))), + o = [0, 0], + a = {}, + s = function (t, e) { + return t - e; + }, + l = ['a', 'b', 'c'], + n = new Jt.BufferGeometry(), + u = + (t.geometry instanceof Jt.BufferGeometry + ? (r = new Jt.Geometry()).fromBufferGeometry(t.geometry) + : (r = t.geometry.clone()), + r.mergeVertices(), + r.computeFaceNormals(), + r.vertices), + c = r.faces, + A = 0, + h = 0, + p = c.length; + h < p; + h++ + ) + for (var d = c[h], f = 0; f < 3; f++) + (o[0] = d[l[f]]), + (o[1] = d[l[(f + 1) % 3]]), + o.sort(s), + void 0 === a[(g = o.toString())] + ? ((a[g] = { vert1: o[0], vert2: o[1], face1: h, face2: void 0 }), + A++) + : (a[g].face2 = h); + var g, + m = new Float32Array(2 * A * 3), + v = 0; + for (g in a) { + var b, + y = a[g]; + (void 0 === y.face2 || c[y.face1].normal.dot(c[y.face2].normal) <= i) && + ((b = u[y.vert1]), + (m[v++] = b.x), + (m[v++] = b.y), + (m[v++] = b.z), + (b = u[y.vert2]), + (m[v++] = b.x), + (m[v++] = b.y), + (m[v++] = b.z)); + } + n.addAttribute('position', new Jt.BufferAttribute(m, 3)), + Jt.Line.call( + this, + n, + new Jt.LineBasicMaterial({ color: e }), + Jt.LinePieces, + ), + (this.matrix = t.matrixWorld), + (this.matrixAutoUpdate = !1); + }), + (Jt.EdgesHelper.prototype = Object.create(Jt.Line.prototype)), + (Jt.EdgesHelper.prototype.constructor = Jt.EdgesHelper), + (Jt.FaceNormalsHelper = function (t, e, n, r) { + (this.object = t), (this.size = void 0 !== e ? e : 1); + for ( + var t = void 0 !== n ? n : 16776960, + e = void 0 !== r ? r : 1, + i = new Jt.Geometry(), + o = 0, + a = this.object.geometry.faces.length; + o < a; + o++ + ) + i.vertices.push(new Jt.Vector3(), new Jt.Vector3()); + Jt.Line.call( + this, + i, + new Jt.LineBasicMaterial({ color: t, linewidth: e }), + Jt.LinePieces, + ), + (this.matrixAutoUpdate = !1), + (this.normalMatrix = new Jt.Matrix3()), + this.update(); + }), + (Jt.FaceNormalsHelper.prototype = Object.create(Jt.Line.prototype)), + (Jt.FaceNormalsHelper.prototype.constructor = Jt.FaceNormalsHelper), + (Jt.FaceNormalsHelper.prototype.update = function () { + var t = this.geometry.vertices, + e = this.object, + n = e.geometry.vertices, + r = e.geometry.faces, + i = e.matrixWorld; + e.updateMatrixWorld(!0), this.normalMatrix.getNormalMatrix(i); + for (var o = 0, a = 0, s = r.length; o < s; o++, a += 2) { + var l = r[o]; + t[a].copy(n[l.a]).add(n[l.b]).add(n[l.c]).divideScalar(3).applyMatrix4(i), + t[a + 1] + .copy(l.normal) + .applyMatrix3(this.normalMatrix) + .normalize() + .multiplyScalar(this.size) + .add(t[a]); + } + return (this.geometry.verticesNeedUpdate = !0), this; + }), + (Jt.GridHelper = function (t, e) { + var n = new Jt.Geometry(), + r = new Jt.LineBasicMaterial({ vertexColors: Jt.VertexColors }); + (this.color1 = new Jt.Color(4473924)), (this.color2 = new Jt.Color(8947848)); + for (var i = -t; i <= t; i += e) { + n.vertices.push( + new Jt.Vector3(-t, 0, i), + new Jt.Vector3(t, 0, i), + new Jt.Vector3(i, 0, -t), + new Jt.Vector3(i, 0, t), + ); + var o = 0 === i ? this.color1 : this.color2; + n.colors.push(o, o, o, o); + } + Jt.Line.call(this, n, r, Jt.LinePieces); + }), + (Jt.GridHelper.prototype = Object.create(Jt.Line.prototype)), + (Jt.GridHelper.prototype.constructor = Jt.GridHelper), + (Jt.GridHelper.prototype.setColors = function (t, e) { + this.color1.set(t), this.color2.set(e), (this.geometry.colorsNeedUpdate = !0); + }), + (Jt.HemisphereLightHelper = function (t, e) { + Jt.Object3D.call(this), + (this.light = t), + this.light.updateMatrixWorld(), + (this.matrix = t.matrixWorld), + (this.matrixAutoUpdate = !1), + (this.colors = [new Jt.Color(), new Jt.Color()]); + var n = new Jt.SphereGeometry(e, 4, 2); + n.applyMatrix(new Jt.Matrix4().makeRotationX(-Math.PI / 2)); + for (var r = 0; r < 8; r++) n.faces[r].color = this.colors[r < 4 ? 0 : 1]; + t = new Jt.MeshBasicMaterial({ vertexColors: Jt.FaceColors, wireframe: !0 }); + (this.lightSphere = new Jt.Mesh(n, t)), + this.add(this.lightSphere), + this.update(); + }), + (Jt.HemisphereLightHelper.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.HemisphereLightHelper.prototype.constructor = Jt.HemisphereLightHelper), + (Jt.HemisphereLightHelper.prototype.dispose = function () { + this.lightSphere.geometry.dispose(), this.lightSphere.material.dispose(); + }), + (Jt.HemisphereLightHelper.prototype.update = + ((cr = new Jt.Vector3()), + function () { + this.colors[0].copy(this.light.color).multiplyScalar(this.light.intensity), + this.colors[1] + .copy(this.light.groundColor) + .multiplyScalar(this.light.intensity), + this.lightSphere.lookAt( + cr.setFromMatrixPosition(this.light.matrixWorld).negate(), + ), + (this.lightSphere.geometry.colorsNeedUpdate = !0); + })), + (Jt.PointLightHelper = function (t, e) { + (this.light = t), this.light.updateMatrixWorld(); + (t = new Jt.SphereGeometry(e, 4, 2)), + (e = new Jt.MeshBasicMaterial({ wireframe: !0, fog: !1 })); + e.color.copy(this.light.color).multiplyScalar(this.light.intensity), + Jt.Mesh.call(this, t, e), + (this.matrix = this.light.matrixWorld), + (this.matrixAutoUpdate = !1); + }), + (Jt.PointLightHelper.prototype = Object.create(Jt.Mesh.prototype)), + (Jt.PointLightHelper.prototype.constructor = Jt.PointLightHelper), + (Jt.PointLightHelper.prototype.dispose = function () { + this.geometry.dispose(), this.material.dispose(); + }), + (Jt.PointLightHelper.prototype.update = function () { + this.material.color + .copy(this.light.color) + .multiplyScalar(this.light.intensity); + }), + (Jt.SkeletonHelper = function (t) { + this.bones = this.getBoneList(t); + for (var e = new Jt.Geometry(), n = 0; n < this.bones.length; n++) + this.bones[n].parent instanceof Jt.Bone && + (e.vertices.push(new Jt.Vector3()), + e.vertices.push(new Jt.Vector3()), + e.colors.push(new Jt.Color(0, 0, 1)), + e.colors.push(new Jt.Color(0, 1, 0))); + var r = new Jt.LineBasicMaterial({ + vertexColors: Jt.VertexColors, + depthTest: !1, + depthWrite: !1, + transparent: !0, + }); + Jt.Line.call(this, e, r, Jt.LinePieces), + (this.root = t), + (this.matrix = t.matrixWorld), + (this.matrixAutoUpdate = !1), + this.update(); + }), + (Jt.SkeletonHelper.prototype = Object.create(Jt.Line.prototype)), + (Jt.SkeletonHelper.prototype.constructor = Jt.SkeletonHelper), + (Jt.SkeletonHelper.prototype.getBoneList = function (t) { + var e = []; + t instanceof Jt.Bone && e.push(t); + for (var n = 0; n < t.children.length; n++) + e.push.apply(e, this.getBoneList(t.children[n])); + return e; + }), + (Jt.SkeletonHelper.prototype.update = function () { + for ( + var t = this.geometry, + e = new Jt.Matrix4().getInverse(this.root.matrixWorld), + n = new Jt.Matrix4(), + r = 0, + i = 0; + i < this.bones.length; + i++ + ) { + var o = this.bones[i]; + o.parent instanceof Jt.Bone && + (n.multiplyMatrices(e, o.matrixWorld), + t.vertices[r].setFromMatrixPosition(n), + n.multiplyMatrices(e, o.parent.matrixWorld), + t.vertices[r + 1].setFromMatrixPosition(n), + (r += 2)); + } + (t.verticesNeedUpdate = !0), t.computeBoundingSphere(); + }), + (Jt.SpotLightHelper = function (t) { + Jt.Object3D.call(this), + (this.light = t), + this.light.updateMatrixWorld(), + (this.matrix = t.matrixWorld), + (this.matrixAutoUpdate = !1); + var t = new Jt.CylinderGeometry(0, 1, 1, 8, 1, !0), + e = + (t.applyMatrix(new Jt.Matrix4().makeTranslation(0, -0.5, 0)), + t.applyMatrix(new Jt.Matrix4().makeRotationX(-Math.PI / 2)), + new Jt.MeshBasicMaterial({ wireframe: !0, fog: !1 })); + (this.cone = new Jt.Mesh(t, e)), this.add(this.cone), this.update(); + }), + (Jt.SpotLightHelper.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.SpotLightHelper.prototype.constructor = Jt.SpotLightHelper), + (Jt.SpotLightHelper.prototype.dispose = function () { + this.cone.geometry.dispose(), this.cone.material.dispose(); + }), + (Jt.SpotLightHelper.prototype.update = + ((Ar = new Jt.Vector3()), + (hr = new Jt.Vector3()), + function () { + var t = this.light.distance || 1e4, + e = t * Math.tan(this.light.angle); + this.cone.scale.set(e, e, t), + Ar.setFromMatrixPosition(this.light.matrixWorld), + hr.setFromMatrixPosition(this.light.target.matrixWorld), + this.cone.lookAt(hr.sub(Ar)), + this.cone.material.color + .copy(this.light.color) + .multiplyScalar(this.light.intensity); + })), + (Jt.VertexNormalsHelper = function (t, e, n, r) { + (this.object = t), (this.size = void 0 !== e ? e : 1); + for ( + var e = void 0 !== n ? n : 16711680, + n = void 0 !== r ? r : 1, + i = new Jt.Geometry(), + o = t.geometry.faces, + a = 0, + s = o.length; + a < s; + a++ + ) + for (var l = 0, u = o[a].vertexNormals.length; l < u; l++) + i.vertices.push(new Jt.Vector3(), new Jt.Vector3()); + Jt.Line.call( + this, + i, + new Jt.LineBasicMaterial({ color: e, linewidth: n }), + Jt.LinePieces, + ), + (this.matrixAutoUpdate = !1), + (this.normalMatrix = new Jt.Matrix3()), + this.update(); + }), + (Jt.VertexNormalsHelper.prototype = Object.create(Jt.Line.prototype)), + (Jt.VertexNormalsHelper.prototype.constructor = Jt.VertexNormalsHelper), + (Jt.VertexNormalsHelper.prototype.update = + ((pr = new Jt.Vector3()), + function (t) { + for ( + var e = ['a', 'b', 'c', 'd'], + n = + (this.object.updateMatrixWorld(!0), + this.normalMatrix.getNormalMatrix(this.object.matrixWorld), + this.geometry.vertices), + r = this.object.geometry.vertices, + i = this.object.geometry.faces, + o = this.object.matrixWorld, + a = 0, + s = 0, + l = i.length; + s < l; + s++ + ) + for (var u = i[s], c = 0, A = u.vertexNormals.length; c < A; c++) { + var h = r[u[e[c]]], + p = u.vertexNormals[c]; + n[a].copy(h).applyMatrix4(o), + pr + .copy(p) + .applyMatrix3(this.normalMatrix) + .normalize() + .multiplyScalar(this.size), + pr.add(n[a]), + n[(a += 1)].copy(pr), + (a += 1); + } + return (this.geometry.verticesNeedUpdate = !0), this; + })), + (Jt.VertexTangentsHelper = function (t, e, n, r) { + (this.object = t), (this.size = void 0 !== e ? e : 1); + for ( + var e = void 0 !== n ? n : 255, + n = void 0 !== r ? r : 1, + i = new Jt.Geometry(), + o = t.geometry.faces, + a = 0, + s = o.length; + a < s; + a++ + ) + for (var l = 0, u = o[a].vertexTangents.length; l < u; l++) + i.vertices.push(new Jt.Vector3()), i.vertices.push(new Jt.Vector3()); + Jt.Line.call( + this, + i, + new Jt.LineBasicMaterial({ color: e, linewidth: n }), + Jt.LinePieces, + ), + (this.matrixAutoUpdate = !1), + this.update(); + }), + (Jt.VertexTangentsHelper.prototype = Object.create(Jt.Line.prototype)), + (Jt.VertexTangentsHelper.prototype.constructor = Jt.VertexTangentsHelper), + (Jt.VertexTangentsHelper.prototype.update = + ((dr = new Jt.Vector3()), + function (t) { + for ( + var e = ['a', 'b', 'c', 'd'], + n = (this.object.updateMatrixWorld(!0), this.geometry.vertices), + r = this.object.geometry.vertices, + i = this.object.geometry.faces, + o = this.object.matrixWorld, + a = 0, + s = 0, + l = i.length; + s < l; + s++ + ) + for (var u = i[s], c = 0, A = u.vertexTangents.length; c < A; c++) { + var h = r[u[e[c]]], + p = u.vertexTangents[c]; + n[a].copy(h).applyMatrix4(o), + dr.copy(p).transformDirection(o).multiplyScalar(this.size), + dr.add(n[a]), + n[(a += 1)].copy(dr), + (a += 1); + } + return (this.geometry.verticesNeedUpdate = !0), this; + })), + (Jt.WireframeHelper = function (t, e) { + function n(t, e) { + return t - e; + } + var e = void 0 !== e ? e : 16777215, + r = [0, 0], + i = {}, + o = ['a', 'b', 'c'], + a = new Jt.BufferGeometry(); + if (t.geometry instanceof Jt.Geometry) { + for ( + var s = t.geometry.vertices, + l = t.geometry.faces, + u = 0, + c = new Uint32Array(6 * l.length), + A = 0, + h = l.length; + A < h; + A++ + ) + for (var p = l[A], d = 0; d < 3; d++) + (r[0] = p[o[d]]), + (r[1] = p[o[(d + 1) % 3]]), + r.sort(n), + void 0 === i[(x = r.toString())] && + ((c[2 * u] = r[0]), (c[2 * u + 1] = r[1]), (i[x] = !0), u++); + for (var f = new Float32Array(2 * u * 3), A = 0, h = u; A < h; A++) + for (d = 0; d < 2; d++) { + var g = s[c[2 * A + d]]; + (f[(B = 6 * A + 3 * d) + 0] = g.x), (f[B + 1] = g.y), (f[B + 2] = g.z); + } + a.addAttribute('position', new Jt.BufferAttribute(f, 3)); + } else if (t.geometry instanceof Jt.BufferGeometry) + if (void 0 !== t.geometry.attributes.index) { + for ( + var s = t.geometry.attributes.position.array, + m = t.geometry.attributes.index.array, + v = t.geometry.drawcalls, + u = 0, + c = + (0 === v.length && (v = [{ count: m.length, index: 0, start: 0 }]), + new Uint32Array(2 * m.length)), + b = 0, + y = v.length; + b < y; + ++b + ) + for ( + var w = v[b].start, E = v[b].count, B = v[b].index, A = w, C = w + E; + A < C; + A += 3 + ) + for (var x, d = 0; d < 3; d++) + (r[0] = B + m[A + d]), + (r[1] = B + m[A + ((d + 1) % 3)]), + r.sort(n), + void 0 === i[(x = r.toString())] && + ((c[2 * u] = r[0]), (c[2 * u + 1] = r[1]), (i[x] = !0), u++); + for (f = new Float32Array(2 * u * 3), A = 0, h = u; A < h; A++) + for (d = 0; d < 2; d++) { + var B = 6 * A + 3 * d, + I = 3 * c[2 * A + d]; + (f[B + 0] = s[I]), (f[B + 1] = s[I + 1]), (f[B + 2] = s[I + 2]); + } + a.addAttribute('position', new Jt.BufferAttribute(f, 3)); + } else { + for ( + var M = (u = (s = t.geometry.attributes.position.array).length / 3) / 3, + f = new Float32Array(2 * u * 3), + A = 0, + h = M; + A < h; + A++ + ) + for (d = 0; d < 3; d++) { + var D = 9 * A + 3 * d, + I = + ((f[(B = 18 * A + 6 * d) + 0] = s[D]), + (f[B + 1] = s[1 + D]), + (f[B + 2] = s[2 + D]), + 9 * A + ((d + 1) % 3) * 3); + (f[B + 3] = s[I]), (f[B + 4] = s[I + 1]), (f[B + 5] = s[I + 2]); + } + a.addAttribute('position', new Jt.BufferAttribute(f, 3)); + } + Jt.Line.call(this, a, new Jt.LineBasicMaterial({ color: e }), Jt.LinePieces), + (this.matrix = t.matrixWorld), + (this.matrixAutoUpdate = !1); + }), + (Jt.WireframeHelper.prototype = Object.create(Jt.Line.prototype)), + (Jt.WireframeHelper.prototype.constructor = Jt.WireframeHelper), + (Jt.ImmediateRenderObject = function () { + Jt.Object3D.call(this), (this.render = function (t) {}); + }), + (Jt.ImmediateRenderObject.prototype = Object.create(Jt.Object3D.prototype)), + (Jt.ImmediateRenderObject.prototype.constructor = Jt.ImmediateRenderObject), + (Jt.MorphBlendMesh = function (t, e) { + Jt.Mesh.call(this, t, e), + (this.animationsMap = {}), + (this.animationsList = []); + t = this.geometry.morphTargets.length; + this.createAnimation('__default', 0, t - 1, +t), + this.setAnimationWeight('__default', 1); + }), + (Jt.MorphBlendMesh.prototype = Object.create(Jt.Mesh.prototype)), + (Jt.MorphBlendMesh.prototype.constructor = Jt.MorphBlendMesh), + (Jt.MorphBlendMesh.prototype.createAnimation = function (t, e, n, r) { + n = { + startFrame: e, + endFrame: n, + length: n - e + 1, + fps: r, + duration: (n - e) / r, + lastFrame: 0, + currentFrame: 0, + active: !1, + time: 0, + direction: 1, + weight: 1, + directionBackwards: !1, + mirroredLoop: !1, + }; + (this.animationsMap[t] = n), this.animationsList.push(n); + }), + (Jt.MorphBlendMesh.prototype.autoCreateAnimations = function (t) { + for ( + var e, + n = /([a-z]+)_?(\d+)/, + r = {}, + i = this.geometry, + o = 0, + a = i.morphTargets.length; + o < a; + o++ + ) { + var s, + l = i.morphTargets[o].name.match(n); + l && + 1 < l.length && + (r[(s = l[1])] || (r[s] = { start: 1 / 0, end: -1 / 0 }), + o < (u = r[s]).start && (u.start = o), + o > u.end && (u.end = o), + (e = e || s)); + } + for (s in r) { + var u = r[s]; + this.createAnimation(s, u.start, u.end, t); + } + this.firstAnimation = e; + }), + (Jt.MorphBlendMesh.prototype.setAnimationDirectionForward = function (t) { + t = this.animationsMap[t]; + t && ((t.direction = 1), (t.directionBackwards = !1)); + }), + (Jt.MorphBlendMesh.prototype.setAnimationDirectionBackward = function (t) { + t = this.animationsMap[t]; + t && ((t.direction = -1), (t.directionBackwards = !0)); + }), + (Jt.MorphBlendMesh.prototype.setAnimationFPS = function (t, e) { + t = this.animationsMap[t]; + t && ((t.fps = e), (t.duration = (t.end - t.start) / t.fps)); + }), + (Jt.MorphBlendMesh.prototype.setAnimationDuration = function (t, e) { + t = this.animationsMap[t]; + t && ((t.duration = e), (t.fps = (t.end - t.start) / t.duration)); + }), + (Jt.MorphBlendMesh.prototype.setAnimationWeight = function (t, e) { + t = this.animationsMap[t]; + t && (t.weight = e); + }), + (Jt.MorphBlendMesh.prototype.setAnimationTime = function (t, e) { + t = this.animationsMap[t]; + t && (t.time = e); + }), + (Jt.MorphBlendMesh.prototype.getAnimationTime = function (t) { + var e = 0, + t = this.animationsMap[t]; + return (e = t ? t.time : e); + }), + (Jt.MorphBlendMesh.prototype.getAnimationDuration = function (t) { + var e = -1, + t = this.animationsMap[t]; + return (e = t ? t.duration : e); + }), + (Jt.MorphBlendMesh.prototype.playAnimation = function (t) { + var e = this.animationsMap[t]; + e + ? ((e.time = 0), (e.active = !0)) + : Jt.warn( + 'THREE.MorphBlendMesh: animation[' + + t + + '] undefined in .playAnimation()', + ); + }), + (Jt.MorphBlendMesh.prototype.stopAnimation = function (t) { + t = this.animationsMap[t]; + t && (t.active = !1); + }), + (Jt.MorphBlendMesh.prototype.update = function (t) { + for (var e = 0, n = this.animationsList.length; e < n; e++) { + var r, + i, + o, + a = this.animationsList[e]; + a.active && + ((r = a.duration / a.length), + (a.time += a.direction * t), + a.mirroredLoop + ? (a.time > a.duration || a.time < 0) && + ((a.direction *= -1), + a.time > a.duration && + ((a.time = a.duration), (a.directionBackwards = !0)), + a.time < 0 && ((a.time = 0), (a.directionBackwards = !1))) + : ((a.time = a.time % a.duration), + a.time < 0 && (a.time += a.duration)), + (o = + a.startFrame + Jt.Math.clamp(Math.floor(a.time / r), 0, a.length - 1)), + (i = a.weight), + o !== a.currentFrame && + ((this.morphTargetInfluences[a.lastFrame] = 0), + (this.morphTargetInfluences[a.currentFrame] = +i), + (this.morphTargetInfluences[o] = 0), + (a.lastFrame = a.currentFrame), + (a.currentFrame = o)), + (o = (a.time % r) / r), + a.directionBackwards && (o = 1 - o), + (this.morphTargetInfluences[a.currentFrame] = o * i), + (this.morphTargetInfluences[a.lastFrame] = (1 - o) * i)); + } + }), + (w = 0), + (n = /MSIE (\d+\.\d+);/.test(navigator.userAgent)), + (E = !!navigator.userAgent.match(/Trident\/7.0/)), + (r = navigator.userAgent.indexOf('rv:11.0')), + n && (w = new Number(RegExp.$1)), + -1 != navigator.appVersion.indexOf('MSIE 10') && (w = 10), + 0 < (w = E && -1 != r ? 11 : w) && + (HTMLElement.prototype.getBoundingClientRect = + ((fr = HTMLElement.prototype.getBoundingClientRect), + function () { + try { + return fr.apply(this, arguments); + } catch (t) { + return { left: '', right: '', top: '', bottom: '' }; + } + })), + Jt); + function gr(t, e) { + return t.distance - e.distance; + } + function mr(t, e) { + var n, + r, + i, + o = [], + a = [], + e = (t.length - 1) * e, + s = Math.floor(e), + e = e - s; + return ( + (o[0] = 0 === s ? s : s - 1), + (o[1] = s), + (o[2] = s > t.length - 2 ? s : s + 1), + (o[3] = s > t.length - 3 ? s : s + 2), + (s = t[o[0]]), + (r = t[o[1]]), + (i = t[o[2]]), + (t = t[o[3]]), + (a[0] = Xn(s[0], r[0], i[0], t[0], e, (o = e * e), (n = e * o))), + (a[1] = Xn(s[1], r[1], i[1], t[1], e, o, n)), + (a[2] = Xn(s[2], r[2], i[2], t[2], e, o, n)), + a + ); + } + function vr(t, e, n, r) { + or.set(e, n, r).unproject(ar); + var i = ir[t]; + if (void 0 !== i) + for (var o = 0, a = i.length; o < a; o++) rr.vertices[i[o]].copy(or); + } + E = (function () { + 'use strict'; + var r = Array.prototype.slice; + function t(t, e) { + if (e) t.prototype = Object.create(e.prototype); + t.prototype.constructor = t; + } + function l(t) { + return c(t) ? t : e(t); + } + function s(t) { + return u(t) ? t : ht(t); + } + function U(t) { + return A(t) ? t : w(t); + } + function i(t) { + return c(t) && !N(t) ? t : pt(t); + } + function c(t) { + return !!(t && t[L]); + } + function u(t) { + return !!(t && t[Y]); + } + function A(t) { + return !!(t && t[O]); + } + function N(t) { + return u(t) || A(t); + } + function P(t) { + return !!(t && t[G]); + } + t(s, l), + t(U, l), + t(i, l), + (l.isIterable = c), + (l.isKeyed = u), + (l.isIndexed = A), + (l.isAssociative = N), + (l.isOrdered = P), + (l.Keyed = s), + (l.Indexed = U), + (l.Set = i); + var L = '@@__IMMUTABLE_ITERABLE__@@', + Y = '@@__IMMUTABLE_KEYED__@@', + O = '@@__IMMUTABLE_INDEXED__@@', + G = '@@__IMMUTABLE_ORDERED__@@', + z = 'delete', + b = 5, + h = 1 << b, + y = h - 1, + v = {}, + H = { value: false }, + j = { value: false }; + function V(t) { + t.value = false; + return t; + } + function d(t) { + t && (t.value = true); + } + function q() {} + function W(t, e) { + e = e || 0; + var n = Math.max(0, t.length - e); + var r = new Array(n); + for (var i = 0; i < n; i++) r[i] = t[i + e]; + return r; + } + function J(t) { + if (t.size === undefined) t.size = t.__iterate(Z); + return t.size; + } + function K(t, e) { + if (typeof e !== 'number') { + var n = e >>> 0; + if ('' + n !== e || n === 4294967295) return NaN; + e = n; + } + return e < 0 ? J(t) + e : e; + } + function Z() { + return true; + } + function X(t, e, n) { + return ( + (t === 0 || (n !== undefined && t <= -n)) && + (e === undefined || (n !== undefined && e >= n)) + ); + } + function $(t, e) { + return et(t, e, 0); + } + function tt(t, e) { + return et(t, e, e); + } + function et(t, e, n) { + return t === undefined + ? n + : t < 0 + ? Math.max(0, e + t) + : e === undefined + ? t + : Math.min(e, t); + } + var nt = 0, + p = 1, + rt = 2, + it = typeof Symbol === 'function' && Symbol.iterator, + ot = '@@iterator', + at = it || ot; + function f(t) { + this.next = t; + } + function g(t, e, n, r) { + var i = t === 0 ? e : t === 1 ? n : [e, n]; + r ? (r.value = i) : (r = { value: i, done: false }); + return r; + } + function m() { + return { value: undefined, done: true }; + } + function st(t) { + return !!ct(t); + } + function lt(t) { + return t && typeof t.next === 'function'; + } + function ut(t) { + var e = ct(t); + return e && e.call(t); + } + function ct(t) { + var e = t && ((it && t[it]) || t[ot]); + if (typeof e === 'function') return e; + } + function At(t) { + return t && typeof t.length === 'number'; + } + function e(t) { + return t === null || t === undefined ? Bt() : c(t) ? t.toSeq() : It(t); + } + function ht(t) { + return t === null || t === undefined + ? Bt().toKeyedSeq() + : c(t) + ? u(t) + ? t.toSeq() + : t.fromEntrySeq() + : Ct(t); + } + function w(t) { + return t === null || t === undefined + ? Bt() + : !c(t) + ? xt(t) + : u(t) + ? t.entrySeq() + : t.toIndexedSeq(); + } + function pt(t) { + return ( + t === null || t === undefined ? Bt() : !c(t) ? xt(t) : u(t) ? t.entrySeq() : t + ).toSetSeq(); + } + (f.prototype.toString = function () { + return '[Iterator]'; + }), + (f.KEYS = nt), + (f.VALUES = p), + (f.ENTRIES = rt), + (f.prototype.inspect = f.prototype.toSource = + function () { + return this.toString(); + }), + (f.prototype[at] = function () { + return this; + }), + t(e, l), + (e.of = function () { + return e(arguments); + }), + (e.prototype.toSeq = function () { + return this; + }), + (e.prototype.toString = function () { + return this.__toString('Seq {', '}'); + }), + (e.prototype.cacheResult = function () { + if (!this._cache && this.__iterateUncached) { + this._cache = this.entrySeq().toArray(); + this.size = this._cache.length; + } + return this; + }), + (e.prototype.__iterate = function (t, e) { + return Dt(this, t, e, true); + }), + (e.prototype.__iterator = function (t, e) { + return St(this, t, e, true); + }), + t(ht, e), + (ht.prototype.toKeyedSeq = function () { + return this; + }), + t(w, e), + (w.of = function () { + return w(arguments); + }), + (w.prototype.toIndexedSeq = function () { + return this; + }), + (w.prototype.toString = function () { + return this.__toString('Seq [', ']'); + }), + (w.prototype.__iterate = function (t, e) { + return Dt(this, t, e, false); + }), + (w.prototype.__iterator = function (t, e) { + return St(this, t, e, false); + }), + t(pt, e), + (pt.of = function () { + return pt(arguments); + }), + (pt.prototype.toSetSeq = function () { + return this; + }), + (e.isSeq = Et), + (e.Keyed = ht), + (e.Set = pt), + (e.Indexed = w); + var dt = '@@__IMMUTABLE_SEQ__@@', + ft, + gt, + mt; + function vt(t) { + this._array = t; + this.size = t.length; + } + function bt(t) { + var e = Object.keys(t); + this._object = t; + this._keys = e; + this.size = e.length; + } + function yt(t) { + this._iterable = t; + this.size = t.length || t.size; + } + function wt(t) { + this._iterator = t; + this._iteratorCache = []; + } + function Et(t) { + return !!(t && t[dt]); + } + function Bt() { + return ft || (ft = new vt([])); + } + function Ct(t) { + var e = Array.isArray(t) + ? new vt(t).fromEntrySeq() + : lt(t) + ? new wt(t).fromEntrySeq() + : st(t) + ? new yt(t).fromEntrySeq() + : typeof t === 'object' + ? new bt(t) + : undefined; + if (!e) + throw new TypeError( + 'Expected Array or iterable object of [k, v] entries, ' + + 'or keyed object: ' + + t, + ); + return e; + } + function xt(t) { + var e = Mt(t); + if (!e) + throw new TypeError('Expected Array or iterable object of values: ' + t); + return e; + } + function It(t) { + var e = Mt(t) || (typeof t === 'object' && new bt(t)); + if (!e) + throw new TypeError( + 'Expected Array or iterable object of values, or keyed object: ' + t, + ); + return e; + } + function Mt(t) { + return At(t) ? new vt(t) : lt(t) ? new wt(t) : st(t) ? new yt(t) : undefined; + } + function Dt(t, e, n, r) { + var i = t._cache; + if (i) { + var o = i.length - 1; + for (var a = 0; a <= o; a++) { + var s = i[n ? o - a : a]; + if (e(s[1], r ? s[0] : a, t) === false) return a + 1; + } + return a; + } + return t.__iterateUncached(e, n); + } + function St(t, e, n, r) { + var i = t._cache; + if (i) { + var o = i.length - 1; + var a = 0; + return new f(function () { + var t = i[n ? o - a : a]; + return a++ > o ? m() : g(e, r ? t[0] : a - 1, t[1]); + }); + } + return t.__iteratorUncached(e, n); + } + function kt(t, e) { + return e ? Ft(e, t, '', { '': t }) : Qt(t); + } + function Ft(n, r, t, e) { + if (Array.isArray(r)) + return n.call( + e, + t, + w(r).map(function (t, e) { + return Ft(n, t, e, r); + }), + ); + if (_t(r)) + return n.call( + e, + t, + ht(r).map(function (t, e) { + return Ft(n, t, e, r); + }), + ); + return r; + } + function Qt(t) { + if (Array.isArray(t)) return w(t).map(Qt).toList(); + if (_t(t)) return ht(t).map(Qt).toMap(); + return t; + } + function _t(t) { + return t && (t.constructor === Object || t.constructor === undefined); + } + function E(t, e) { + if (t === e || (t !== t && e !== e)) return true; + if (!t || !e) return false; + if (typeof t.valueOf === 'function' && typeof e.valueOf === 'function') { + t = t.valueOf(); + e = e.valueOf(); + if (t === e || (t !== t && e !== e)) return true; + if (!t || !e) return false; + } + if ( + typeof t.equals === 'function' && + typeof e.equals === 'function' && + t.equals(e) + ) + return true; + return false; + } + function Tt(n, t) { + if (n === t) return true; + if ( + !c(t) || + (n.size !== undefined && t.size !== undefined && n.size !== t.size) || + (n.__hash !== undefined && t.__hash !== undefined && n.__hash !== t.__hash) || + u(n) !== u(t) || + A(n) !== A(t) || + P(n) !== P(t) + ) + return false; + if (n.size === 0 && t.size === 0) return true; + var r = !N(n); + if (P(n)) { + var i = n.entries(); + return ( + t.every(function (t, e) { + var n = i.next().value; + return n && E(n[1], t) && (r || E(n[0], e)); + }) && i.next().done + ); + } + var o = false; + if (n.size === undefined) + if (t.size === undefined) { + if (typeof n.cacheResult === 'function') n.cacheResult(); + } else { + o = true; + var e = n; + n = t; + t = e; + } + var a = true; + var s = t.__iterate(function (t, e) { + if (r ? !n.has(t) : o ? !E(t, n.get(e, v)) : !E(n.get(e, v), t)) { + a = false; + return false; + } + }); + return a && n.size === s; + } + function o(t, e) { + if (!(this instanceof o)) return new o(t, e); + this._value = t; + this.size = e === undefined ? Infinity : Math.max(0, e); + if (this.size === 0) { + if (gt) return gt; + gt = this; + } + } + function Rt(t, e) { + if (!t) throw new Error(e); + } + function a(t, e, n) { + if (!(this instanceof a)) return new a(t, e, n); + Rt(n !== 0, 'Cannot step a Range by 0'); + t = t || 0; + if (e === undefined) e = Infinity; + n = n === undefined ? 1 : Math.abs(n); + if (e < t) n = -n; + this._start = t; + this._end = e; + this._step = n; + this.size = Math.max(0, Math.ceil((e - t) / n - 1) + 1); + if (this.size === 0) { + if (mt) return mt; + mt = this; + } + } + function Ut() { + throw TypeError('Abstract'); + } + function Nt() {} + function Pt() {} + function Lt() {} + (e.prototype[dt] = true), + t(vt, w), + (vt.prototype.get = function (t, e) { + return this.has(t) ? this._array[K(this, t)] : e; + }), + (vt.prototype.__iterate = function (t, e) { + var n = this._array; + var r = n.length - 1; + for (var i = 0; i <= r; i++) + if (t(n[e ? r - i : i], i, this) === false) return i + 1; + return i; + }), + (vt.prototype.__iterator = function (t, e) { + var n = this._array; + var r = n.length - 1; + var i = 0; + return new f(function () { + return i > r ? m() : g(t, i, n[e ? r - i++ : i++]); + }); + }), + t(bt, ht), + (bt.prototype.get = function (t, e) { + if (e !== undefined && !this.has(t)) return e; + return this._object[t]; + }), + (bt.prototype.has = function (t) { + return this._object.hasOwnProperty(t); + }), + (bt.prototype.__iterate = function (t, e) { + var n = this._object; + var r = this._keys; + var i = r.length - 1; + for (var o = 0; o <= i; o++) { + var a = r[e ? i - o : o]; + if (t(n[a], a, this) === false) return o + 1; + } + return o; + }), + (bt.prototype.__iterator = function (e, n) { + var r = this._object; + var i = this._keys; + var o = i.length - 1; + var a = 0; + return new f(function () { + var t = i[n ? o - a : a]; + return a++ > o ? m() : g(e, t, r[t]); + }); + }), + (bt.prototype[G] = true), + t(yt, w), + (yt.prototype.__iterateUncached = function (t, e) { + if (e) return this.cacheResult().__iterate(t, e); + var n = this._iterable; + var r = ut(n); + var i = 0; + if (lt(r)) { + var o; + while (!(o = r.next()).done) if (t(o.value, i++, this) === false) break; + } + return i; + }), + (yt.prototype.__iteratorUncached = function (e, t) { + if (t) return this.cacheResult().__iterator(e, t); + var n = this._iterable; + var r = ut(n); + if (!lt(r)) return new f(m); + var i = 0; + return new f(function () { + var t = r.next(); + return t.done ? t : g(e, i++, t.value); + }); + }), + t(wt, w), + (wt.prototype.__iterateUncached = function (t, e) { + if (e) return this.cacheResult().__iterate(t, e); + var n = this._iterator; + var r = this._iteratorCache; + var i = 0; + while (i < r.length) if (t(r[i], i++, this) === false) return i; + var o; + while (!(o = n.next()).done) { + var a = o.value; + r[i] = a; + if (t(a, i++, this) === false) break; + } + return i; + }), + (wt.prototype.__iteratorUncached = function (e, t) { + if (t) return this.cacheResult().__iterator(e, t); + var n = this._iterator; + var r = this._iteratorCache; + var i = 0; + return new f(function () { + if (i >= r.length) { + var t = n.next(); + if (t.done) return t; + r[i] = t.value; + } + return g(e, i, r[i++]); + }); + }), + t(o, w), + (o.prototype.toString = function () { + if (this.size === 0) return 'Repeat []'; + return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]'; + }), + (o.prototype.get = function (t, e) { + return this.has(t) ? this._value : e; + }), + (o.prototype.includes = function (t) { + return E(this._value, t); + }), + (o.prototype.slice = function (t, e) { + var n = this.size; + return X(t, e, n) ? this : new o(this._value, tt(e, n) - $(t, n)); + }), + (o.prototype.reverse = function () { + return this; + }), + (o.prototype.indexOf = function (t) { + if (E(this._value, t)) return 0; + return -1; + }), + (o.prototype.lastIndexOf = function (t) { + if (E(this._value, t)) return this.size; + return -1; + }), + (o.prototype.__iterate = function (t, e) { + for (var n = 0; n < this.size; n++) + if (t(this._value, n, this) === false) return n + 1; + return n; + }), + (o.prototype.__iterator = function (t, e) { + var n = this; + var r = 0; + return new f(function () { + return r < n.size ? g(t, r++, n._value) : m(); + }); + }), + (o.prototype.equals = function (t) { + return t instanceof o ? E(this._value, t._value) : Tt(t); + }), + t(a, w), + (a.prototype.toString = function () { + if (this.size === 0) return 'Range []'; + return ( + 'Range [ ' + + this._start + + '...' + + this._end + + (this._step !== 1 ? ' by ' + this._step : '') + + ' ]' + ); + }), + (a.prototype.get = function (t, e) { + return this.has(t) ? this._start + K(this, t) * this._step : e; + }), + (a.prototype.includes = function (t) { + var e = (t - this._start) / this._step; + return e >= 0 && e < this.size && e === Math.floor(e); + }), + (a.prototype.slice = function (t, e) { + if (X(t, e, this.size)) return this; + t = $(t, this.size); + e = tt(e, this.size); + if (e <= t) return new a(0, 0); + return new a(this.get(t, this._end), this.get(e, this._end), this._step); + }), + (a.prototype.indexOf = function (t) { + var e = t - this._start; + if (e % this._step === 0) { + var n = e / this._step; + if (n >= 0 && n < this.size) return n; + } + return -1; + }), + (a.prototype.lastIndexOf = function (t) { + return this.indexOf(t); + }), + (a.prototype.__iterate = function (t, e) { + var n = this.size - 1; + var r = this._step; + var i = e ? this._start + n * r : this._start; + for (var o = 0; o <= n; o++) { + if (t(i, o, this) === false) return o + 1; + i += e ? -r : r; + } + return o; + }), + (a.prototype.__iterator = function (e, n) { + var r = this.size - 1; + var i = this._step; + var o = n ? this._start + r * i : this._start; + var a = 0; + return new f(function () { + var t = o; + o += n ? -i : i; + return a > r ? m() : g(e, a++, t); + }); + }), + (a.prototype.equals = function (t) { + return t instanceof a + ? this._start === t._start && this._end === t._end && this._step === t._step + : Tt(this, t); + }), + t(Ut, l), + t(Nt, Ut), + t(Pt, Ut), + t(Lt, Ut), + (Ut.Keyed = Nt), + (Ut.Indexed = Pt), + (Ut.Set = Lt); + var Yt = + typeof Math.imul === 'function' && Math.imul(4294967295, 2) === -2 + ? Math.imul + : function t(e, n) { + e = e | 0; + n = n | 0; + var r = e & 65535; + var i = n & 65535; + return (r * i + ((((e >>> 16) * i + r * (n >>> 16)) << 16) >>> 0)) | 0; + }; + function Ot(t) { + return ((t >>> 1) & 1073741824) | (t & 3221225471); + } + function B(t) { + if (t === false || t === null || t === undefined) return 0; + if (typeof t.valueOf === 'function') { + t = t.valueOf(); + if (t === false || t === null || t === undefined) return 0; + } + if (t === true) return 1; + var e = typeof t; + if (e === 'number') { + var n = t | 0; + if (n !== t) n ^= t * 4294967295; + while (t > 4294967295) { + t /= 4294967295; + n ^= t; + } + return Ot(n); + } + if (e === 'string') return t.length > Xt ? Gt(t) : zt(t); + if (typeof t.hashCode === 'function') return t.hashCode(); + if (e === 'object') return Ht(t); + if (typeof t.toString === 'function') return zt(t.toString()); + throw new Error('Value type ' + e + ' cannot be hashed.'); + } + function Gt(t) { + var e = ee[t]; + if (e === undefined) { + e = zt(t); + if (te === $t) { + te = 0; + ee = {}; + } + te++; + ee[t] = e; + } + return e; + } + function zt(t) { + var e = 0; + for (var n = 0; n < t.length; n++) e = (31 * e + t.charCodeAt(n)) | 0; + return Ot(e); + } + function Ht(t) { + var e; + if (Wt) { + e = Jt.get(t); + if (e !== undefined) return e; + } + e = t[Zt]; + if (e !== undefined) return e; + if (!Vt) { + e = t.propertyIsEnumerable && t.propertyIsEnumerable[Zt]; + if (e !== undefined) return e; + e = qt(t); + if (e !== undefined) return e; + } + e = ++Kt; + if (Kt & 1073741824) Kt = 0; + if (Wt) Jt.set(t, e); + else if (jt !== undefined && jt(t) === false) + throw new Error('Non-extensible objects are not allowed as keys.'); + else if (Vt) + Object.defineProperty(t, Zt, { + enumerable: false, + configurable: false, + writable: false, + value: e, + }); + else if ( + t.propertyIsEnumerable !== undefined && + t.propertyIsEnumerable === t.constructor.prototype.propertyIsEnumerable + ) { + t.propertyIsEnumerable = function () { + return this.constructor.prototype.propertyIsEnumerable.apply( + this, + arguments, + ); + }; + t.propertyIsEnumerable[Zt] = e; + } else if (t.nodeType !== undefined) t[Zt] = e; + else throw new Error('Unable to set a non-enumerable property on object.'); + return e; + } + var jt = Object.isExtensible, + Vt = (function () { + try { + Object.defineProperty({}, '@', {}); + return true; + } catch (t) { + return false; + } + })(); + function qt(t) { + if (t && t.nodeType > 0) + switch (t.nodeType) { + case 1: + return t.uniqueID; + case 9: + return t.documentElement && t.documentElement.uniqueID; + } + } + var Wt = typeof WeakMap === 'function', + Jt; + if (Wt) Jt = new WeakMap(); + var Kt = 0, + Zt = '__immutablehash__'; + if (typeof Symbol === 'function') Zt = Symbol(Zt); + var Xt = 16, + $t = 255, + te = 0, + ee = {}; + function C(t) { + Rt(t !== Infinity, 'Cannot perform this action with an infinite size.'); + } + function x(e) { + return e === null || e === undefined + ? de() + : ne(e) && !P(e) + ? e + : de().withMutations(function (n) { + var t = s(e); + C(t.size); + t.forEach(function (t, e) { + return n.set(e, t); + }); + }); + } + function ne(t) { + return !!(t && t[re]); + } + t(x, Nt), + (x.of = function () { + var n = r.call(arguments, 0); + return de().withMutations(function (t) { + for (var e = 0; e < n.length; e += 2) { + if (e + 1 >= n.length) throw new Error('Missing value for key: ' + n[e]); + t.set(n[e], n[e + 1]); + } + }); + }), + (x.prototype.toString = function () { + return this.__toString('Map {', '}'); + }), + (x.prototype.get = function (t, e) { + return this._root ? this._root.get(0, undefined, t, e) : e; + }), + (x.prototype.set = function (t, e) { + return fe(this, t, e); + }), + (x.prototype.setIn = function (t, e) { + return this.updateIn(t, v, function () { + return e; + }); + }), + (x.prototype.remove = function (t) { + return fe(this, t, v); + }), + (x.prototype.deleteIn = function (t) { + return this.updateIn(t, function () { + return v; + }); + }), + (x.prototype.update = function (t, e, n) { + return arguments.length === 1 ? t(this) : this.updateIn([t], e, n); + }), + (x.prototype.updateIn = function (t, e, n) { + if (!n) { + n = e; + e = undefined; + } + var r = Ie(this, Dn(t), e, n); + return r === v ? undefined : r; + }), + (x.prototype.clear = function () { + if (this.size === 0) return this; + if (this.__ownerID) { + this.size = 0; + this._root = null; + this.__hash = undefined; + this.__altered = true; + return this; + } + return de(); + }), + (x.prototype.merge = function () { + return Ee(this, undefined, arguments); + }), + (x.prototype.mergeWith = function (t) { + var e = r.call(arguments, 1); + return Ee(this, t, e); + }), + (x.prototype.mergeIn = function (t) { + var e = r.call(arguments, 1); + return this.updateIn(t, de(), function (t) { + return typeof t.merge === 'function' + ? t.merge.apply(t, e) + : e[e.length - 1]; + }); + }), + (x.prototype.mergeDeep = function () { + return Ee(this, Be, arguments); + }), + (x.prototype.mergeDeepWith = function (t) { + var e = r.call(arguments, 1); + return Ee(this, Ce(t), e); + }), + (x.prototype.mergeDeepIn = function (t) { + var e = r.call(arguments, 1); + return this.updateIn(t, de(), function (t) { + return typeof t.mergeDeep === 'function' + ? t.mergeDeep.apply(t, e) + : e[e.length - 1]; + }); + }), + (x.prototype.sort = function (t) { + return D(vn(this, t)); + }), + (x.prototype.sortBy = function (t, e) { + return D(vn(this, e, t)); + }), + (x.prototype.withMutations = function (t) { + var e = this.asMutable(); + t(e); + return e.wasAltered() ? e.__ensureOwner(this.__ownerID) : this; + }), + (x.prototype.asMutable = function () { + return this.__ownerID ? this : this.__ensureOwner(new q()); + }), + (x.prototype.asImmutable = function () { + return this.__ensureOwner(); + }), + (x.prototype.wasAltered = function () { + return this.__altered; + }), + (x.prototype.__iterator = function (t, e) { + return new ce(this, t, e); + }), + (x.prototype.__iterate = function (e, t) { + var n = this; + var r = 0; + this._root && + this._root.iterate(function (t) { + r++; + return e(t[1], t[0], n); + }, t); + return r; + }), + (x.prototype.__ensureOwner = function (t) { + if (t === this.__ownerID) return this; + if (!t) { + this.__ownerID = t; + this.__altered = false; + return this; + } + return pe(this.size, this._root, t, this.__hash); + }), + (x.isMap = ne); + var re = '@@__IMMUTABLE_MAP__@@', + I = x.prototype, + ie; + function oe(t, e) { + this.ownerID = t; + this.entries = e; + } + function ae(t, e, n) { + this.ownerID = t; + this.bitmap = e; + this.nodes = n; + } + function se(t, e, n) { + this.ownerID = t; + this.count = e; + this.nodes = n; + } + function le(t, e, n) { + this.ownerID = t; + this.keyHash = e; + this.entries = n; + } + function ue(t, e, n) { + this.ownerID = t; + this.keyHash = e; + this.entry = n; + } + function ce(t, e, n) { + this._type = e; + this._reverse = n; + this._stack = t._root && he(t._root); + } + function Ae(t, e) { + return g(t, e[0], e[1]); + } + function he(t, e) { + return { node: t, index: 0, __prev: e }; + } + function pe(t, e, n, r) { + var i = Object.create(I); + i.size = t; + i._root = e; + i.__ownerID = n; + i.__hash = r; + i.__altered = false; + return i; + } + function de() { + return ie || (ie = pe(0)); + } + function fe(t, e, n) { + var r; + var i; + if (!t._root) { + if (n === v) return t; + i = 1; + r = new oe(t.__ownerID, [[e, n]]); + } else { + var o = V(H); + var a = V(j); + r = ge(t._root, t.__ownerID, 0, undefined, e, n, o, a); + if (!a.value) return t; + i = t.size + (o.value ? (n === v ? -1 : 1) : 0); + } + if (t.__ownerID) { + t.size = i; + t._root = r; + t.__hash = undefined; + t.__altered = true; + return t; + } + return r ? pe(i, r) : de(); + } + function ge(t, e, n, r, i, o, a, s) { + if (!t) { + if (o === v) return t; + d(s); + d(a); + return new ue(e, r, [i, o]); + } + return t.update(e, n, r, i, o, a, s); + } + function me(t) { + return t.constructor === ue || t.constructor === le; + } + function ve(t, e, n, r, i) { + if (t.keyHash === r) return new le(e, r, [t.entry, i]); + var o = (n === 0 ? t.keyHash : t.keyHash >>> n) & y; + var a = (n === 0 ? r : r >>> n) & y; + var s; + var l = + o === a + ? [ve(t, e, n + b, r, i)] + : ((s = new ue(e, r, i)), o < a ? [t, s] : [s, t]); + return new ae(e, (1 << o) | (1 << a), l); + } + function be(t, e, n, r) { + if (!t) t = new q(); + var i = new ue(t, B(n), [n, r]); + for (var o = 0; o < e.length; o++) { + var a = e[o]; + i = i.update(t, 0, undefined, a[0], a[1]); + } + return i; + } + function ye(t, e, n, r) { + var i = 0; + var o = 0; + var a = new Array(n); + for (var s = 0, l = 1, u = e.length; s < u; s++, l <<= 1) { + var c = e[s]; + if (c !== undefined && s !== r) { + i |= l; + a[o++] = c; + } + } + return new ae(t, i, a); + } + function we(t, e, n, r, i) { + var o = 0; + var a = new Array(h); + for (var s = 0; n !== 0; s++, n >>>= 1) a[s] = n & 1 ? e[o++] : undefined; + a[r] = i; + return new se(t, o + 1, a); + } + function Ee(t, e, n) { + var r = []; + for (var i = 0; i < n.length; i++) { + var o = n[i]; + var a = s(o); + if (!c(o)) + a = a.map(function (t) { + return kt(t); + }); + r.push(a); + } + return xe(t, e, r); + } + function Be(t, e, n) { + return t && t.mergeDeep && c(e) ? t.mergeDeep(e) : E(t, e) ? t : e; + } + function Ce(i) { + return function (t, e, n) { + if (t && t.mergeDeepWith && c(e)) return t.mergeDeepWith(i, e); + var r = i(t, e, n); + return E(t, r) ? t : r; + }; + } + function xe(t, i, n) { + n = n.filter(function (t) { + return t.size !== 0; + }); + if (n.length === 0) return t; + if (t.size === 0 && !t.__ownerID && n.length === 1) return t.constructor(n[0]); + return t.withMutations(function (r) { + var t = i + ? function (e, n) { + r.update(n, v, function (t) { + return t === v ? e : i(t, e, n); + }); + } + : function (t, e) { + r.set(e, t); + }; + for (var e = 0; e < n.length; e++) n[e].forEach(t); + }); + } + function Ie(t, e, n, r) { + var i = t === v; + var o = e.next(); + if (o.done) { + var a = i ? n : t; + var s = r(a); + return s === a ? t : s; + } + Rt(i || (t && t.set), 'invalid keyPath'); + var l = o.value; + var u = i ? v : t.get(l, v); + var c = Ie(u, e, n, r); + return c === u ? t : c === v ? t.remove(l) : (i ? de() : t).set(l, c); + } + function Me(t) { + t = t - ((t >> 1) & 1431655765); + t = (t & 858993459) + ((t >> 2) & 858993459); + t = (t + (t >> 4)) & 252645135; + t = t + (t >> 8); + t = t + (t >> 16); + return t & 127; + } + function De(t, e, n, r) { + var i = r ? t : W(t); + i[e] = n; + return i; + } + function Se(t, e, n, r) { + var i = t.length + 1; + if (r && e + 1 === i) { + t[e] = n; + return t; + } + var o = new Array(i); + var a = 0; + for (var s = 0; s < i; s++) + if (s === e) { + o[s] = n; + a = -1; + } else o[s] = t[s + a]; + return o; + } + function ke(t, e, n) { + var r = t.length - 1; + if (n && e === r) { + t.pop(); + return t; + } + var i = new Array(r); + var o = 0; + for (var a = 0; a < r; a++) { + if (a === e) o = 1; + i[a] = t[a + o]; + } + return i; + } + (I[re] = true), + (I[z] = I.remove), + (I.removeIn = I.deleteIn), + (oe.prototype.get = function (t, e, n, r) { + var i = this.entries; + for (var o = 0, a = i.length; o < a; o++) if (E(n, i[o][0])) return i[o][1]; + return r; + }), + (oe.prototype.update = function (t, e, n, r, i, o, a) { + var s = i === v; + var l = this.entries; + var u = 0; + for (var c = l.length; u < c; u++) if (E(r, l[u][0])) break; + var A = u < c; + if (A ? l[u][1] === i : s) return this; + d(a); + (s || !A) && d(o); + if (s && l.length === 1) return; + if (!A && !s && l.length >= Fe) return be(t, l, r, i); + var h = t && t === this.ownerID; + var p = h ? l : W(l); + if (A) + if (s) u === c - 1 ? p.pop() : (p[u] = p.pop()); + else p[u] = [r, i]; + else p.push([r, i]); + if (h) { + this.entries = p; + return this; + } + return new oe(t, p); + }), + (ae.prototype.get = function (t, e, n, r) { + if (e === undefined) e = B(n); + var i = 1 << ((t === 0 ? e : e >>> t) & y); + var o = this.bitmap; + return (o & i) === 0 ? r : this.nodes[Me(o & (i - 1))].get(t + b, e, n, r); + }), + (ae.prototype.update = function (t, e, n, r, i, o, a) { + if (n === undefined) n = B(r); + var s = (e === 0 ? n : n >>> e) & y; + var l = 1 << s; + var u = this.bitmap; + var c = (u & l) !== 0; + if (!c && i === v) return this; + var A = Me(u & (l - 1)); + var h = this.nodes; + var p = c ? h[A] : undefined; + var d = ge(p, t, e + b, n, r, i, o, a); + if (d === p) return this; + if (!c && d && h.length >= Qe) return we(t, h, u, s, d); + if (c && !d && h.length === 2 && me(h[A ^ 1])) return h[A ^ 1]; + if (c && d && h.length === 1 && me(d)) return d; + var f = t && t === this.ownerID; + var g = c ? (d ? u : u ^ l) : u | l; + var m = c ? (d ? De(h, A, d, f) : ke(h, A, f)) : Se(h, A, d, f); + if (f) { + this.bitmap = g; + this.nodes = m; + return this; + } + return new ae(t, g, m); + }), + (se.prototype.get = function (t, e, n, r) { + if (e === undefined) e = B(n); + var i = (t === 0 ? e : e >>> t) & y; + var o = this.nodes[i]; + return o ? o.get(t + b, e, n, r) : r; + }), + (se.prototype.update = function (t, e, n, r, i, o, a) { + if (n === undefined) n = B(r); + var s = (e === 0 ? n : n >>> e) & y; + var l = i === v; + var u = this.nodes; + var c = u[s]; + if (l && !c) return this; + var A = ge(c, t, e + b, n, r, i, o, a); + if (A === c) return this; + var h = this.count; + if (!c) h++; + else if (!A) { + h--; + if (h < _e) return ye(t, u, h, s); + } + var p = t && t === this.ownerID; + var d = De(u, s, A, p); + if (p) { + this.count = h; + this.nodes = d; + return this; + } + return new se(t, h, d); + }), + (le.prototype.get = function (t, e, n, r) { + var i = this.entries; + for (var o = 0, a = i.length; o < a; o++) if (E(n, i[o][0])) return i[o][1]; + return r; + }), + (le.prototype.update = function (t, e, n, r, i, o, a) { + if (n === undefined) n = B(r); + var s = i === v; + if (n !== this.keyHash) { + if (s) return this; + d(a); + d(o); + return ve(this, t, e, n, [r, i]); + } + var l = this.entries; + var u = 0; + for (var c = l.length; u < c; u++) if (E(r, l[u][0])) break; + var A = u < c; + if (A ? l[u][1] === i : s) return this; + d(a); + (s || !A) && d(o); + if (s && c === 2) return new ue(t, this.keyHash, l[u ^ 1]); + var h = t && t === this.ownerID; + var p = h ? l : W(l); + if (A) + if (s) u === c - 1 ? p.pop() : (p[u] = p.pop()); + else p[u] = [r, i]; + else p.push([r, i]); + if (h) { + this.entries = p; + return this; + } + return new le(t, this.keyHash, p); + }), + (ue.prototype.get = function (t, e, n, r) { + return E(n, this.entry[0]) ? this.entry[1] : r; + }), + (ue.prototype.update = function (t, e, n, r, i, o, a) { + var s = i === v; + var l = E(r, this.entry[0]); + if (l ? i === this.entry[1] : s) return this; + d(a); + if (s) { + d(o); + return; + } + if (l) { + if (t && t === this.ownerID) { + this.entry[1] = i; + return this; + } + return new ue(t, this.keyHash, [r, i]); + } + d(o); + return ve(this, t, e, B(r), [r, i]); + }), + (oe.prototype.iterate = le.prototype.iterate = + function (t, e) { + var n = this.entries; + for (var r = 0, i = n.length - 1; r <= i; r++) + if (t(n[e ? i - r : r]) === false) return false; + }), + (ae.prototype.iterate = se.prototype.iterate = + function (t, e) { + var n = this.nodes; + for (var r = 0, i = n.length - 1; r <= i; r++) { + var o = n[e ? i - r : r]; + if (o && o.iterate(t, e) === false) return false; + } + }), + (ue.prototype.iterate = function (t, e) { + return t(this.entry); + }), + t(ce, f), + (ce.prototype.next = function () { + var t = this._type; + var e = this._stack; + while (e) { + var n = e.node; + var r = e.index++; + var i; + if (n.entry) { + if (r === 0) return Ae(t, n.entry); + } else if (n.entries) { + i = n.entries.length - 1; + if (r <= i) return Ae(t, n.entries[this._reverse ? i - r : r]); + } else { + i = n.nodes.length - 1; + if (r <= i) { + var o = n.nodes[this._reverse ? i - r : r]; + if (o) { + if (o.entry) return Ae(t, o.entry); + e = this._stack = he(o, e); + } + continue; + } + } + e = this._stack = this._stack.__prev; + } + return m(); + }); + var Fe = h / 4, + Qe = h / 2, + _e = h / 4; + function n(t) { + var e = Ge(); + if (t === null || t === undefined) return e; + if (Te(t)) return t; + var r = U(t); + var i = r.size; + if (i === 0) return e; + C(i); + if (i > 0 && i < h) return Oe(0, i, b, null, new Ue(r.toArray())); + return e.withMutations(function (n) { + n.setSize(i); + r.forEach(function (t, e) { + return n.set(e, t); + }); + }); + } + function Te(t) { + return !!(t && t[Re]); + } + t(n, Pt), + (n.of = function () { + return this(arguments); + }), + (n.prototype.toString = function () { + return this.__toString('List [', ']'); + }), + (n.prototype.get = function (t, e) { + t = K(this, t); + if (t >= 0 && t < this.size) { + t += this._origin; + var n = Ve(this, t); + return n && n.array[t & y]; + } + return e; + }), + (n.prototype.set = function (t, e) { + return ze(this, t, e); + }), + (n.prototype.remove = function (t) { + return !this.has(t) + ? this + : t === 0 + ? this.shift() + : t === this.size - 1 + ? this.pop() + : this.splice(t, 1); + }), + (n.prototype.insert = function (t, e) { + return this.splice(t, 0, e); + }), + (n.prototype.clear = function () { + if (this.size === 0) return this; + if (this.__ownerID) { + this.size = this._origin = this._capacity = 0; + this._level = b; + this._root = this._tail = null; + this.__hash = undefined; + this.__altered = true; + return this; + } + return Ge(); + }), + (n.prototype.push = function () { + var n = arguments; + var r = this.size; + return this.withMutations(function (t) { + qe(t, 0, r + n.length); + for (var e = 0; e < n.length; e++) t.set(r + e, n[e]); + }); + }), + (n.prototype.pop = function () { + return qe(this, 0, -1); + }), + (n.prototype.unshift = function () { + var n = arguments; + return this.withMutations(function (t) { + qe(t, -n.length); + for (var e = 0; e < n.length; e++) t.set(e, n[e]); + }); + }), + (n.prototype.shift = function () { + return qe(this, 1); + }), + (n.prototype.merge = function () { + return We(this, undefined, arguments); + }), + (n.prototype.mergeWith = function (t) { + var e = r.call(arguments, 1); + return We(this, t, e); + }), + (n.prototype.mergeDeep = function () { + return We(this, Be, arguments); + }), + (n.prototype.mergeDeepWith = function (t) { + var e = r.call(arguments, 1); + return We(this, Ce(t), e); + }), + (n.prototype.setSize = function (t) { + return qe(this, 0, t); + }), + (n.prototype.slice = function (t, e) { + var n = this.size; + if (X(t, e, n)) return this; + return qe(this, $(t, n), tt(e, n)); + }), + (n.prototype.__iterator = function (e, t) { + var n = 0; + var r = Ye(this, t); + return new f(function () { + var t = r(); + return t === Ne ? m() : g(e, n++, t); + }); + }), + (n.prototype.__iterate = function (t, e) { + var n = 0; + var r = Ye(this, e); + var i; + while ((i = r()) !== Ne) if (t(i, n++, this) === false) break; + return n; + }), + (n.prototype.__ensureOwner = function (t) { + if (t === this.__ownerID) return this; + if (!t) { + this.__ownerID = t; + return this; + } + return Oe( + this._origin, + this._capacity, + this._level, + this._root, + this._tail, + t, + this.__hash, + ); + }), + (n.isList = Te); + var Re = '@@__IMMUTABLE_LIST__@@', + M = n.prototype; + function Ue(t, e) { + this.array = t; + this.ownerID = e; + } + (M[Re] = true), + (M[z] = M.remove), + (M.setIn = I.setIn), + (M.deleteIn = M.removeIn = I.removeIn), + (M.update = I.update), + (M.updateIn = I.updateIn), + (M.mergeIn = I.mergeIn), + (M.mergeDeepIn = I.mergeDeepIn), + (M.withMutations = I.withMutations), + (M.asMutable = I.asMutable), + (M.asImmutable = I.asImmutable), + (M.wasAltered = I.wasAltered), + (Ue.prototype.removeBefore = function (t, e, n) { + if (n === e ? 1 << e : 0 || this.array.length === 0) return this; + var r = (n >>> e) & y; + if (r >= this.array.length) return new Ue([], t); + var i = r === 0; + var o; + if (e > 0) { + var a = this.array[r]; + o = a && a.removeBefore(t, e - b, n); + if (o === a && i) return this; + } + if (i && !o) return this; + var s = je(this, t); + if (!i) for (var l = 0; l < r; l++) s.array[l] = undefined; + if (o) s.array[r] = o; + return s; + }), + (Ue.prototype.removeAfter = function (t, e, n) { + if (n === (e ? 1 << e : 0) || this.array.length === 0) return this; + var r = ((n - 1) >>> e) & y; + if (r >= this.array.length) return this; + var i; + if (e > 0) { + var o = this.array[r]; + i = o && o.removeAfter(t, e - b, n); + if (i === o && r === this.array.length - 1) return this; + } + var a = je(this, t); + a.array.splice(r + 1); + if (i) a.array[r] = i; + return a; + }); + var Ne = {}, + Pe, + Le; + function Ye(t, l) { + var u = t._origin; + var c = t._capacity; + var o = Je(c); + var a = t._tail; + return A(t._root, t._level, 0); + function A(t, e, n) { + return e === 0 ? r(t, n) : i(t, e, n); + } + function r(t, e) { + var n = e === o ? a && a.array : t && t.array; + var r = e > u ? 0 : u - e; + var i = c - e; + if (i > h) i = h; + return function () { + if (r === i) return Ne; + var t = l ? --i : r++; + return n && n[t]; + }; + } + function i(t, n, r) { + var i; + var o = t && t.array; + var a = r > u ? 0 : (u - r) >> n; + var s = ((c - r) >> n) + 1; + if (s > h) s = h; + return function () { + do { + if (i) { + var t = i(); + if (t !== Ne) return t; + i = null; + } + if (a === s) return Ne; + var e = l ? --s : a++; + i = A(o && o[e], n - b, r + (e << n)); + } while (true); + }; + } + } + function Oe(t, e, n, r, i, o, a) { + var s = Object.create(M); + s.size = e - t; + s._origin = t; + s._capacity = e; + s._level = n; + s._root = r; + s._tail = i; + s.__ownerID = o; + s.__hash = a; + s.__altered = false; + return s; + } + function Ge() { + return Pe || (Pe = Oe(0, 0, b)); + } + function ze(t, e, n) { + e = K(t, e); + if (e !== e) return t; + if (e >= t.size || e < 0) + return t.withMutations(function (t) { + e < 0 ? qe(t, e).set(0, n) : qe(t, 0, e + 1).set(e, n); + }); + e += t._origin; + var r = t._tail; + var i = t._root; + var o = V(j); + if (e >= Je(t._capacity)) r = He(r, t.__ownerID, 0, e, n, o); + else i = He(i, t.__ownerID, t._level, e, n, o); + if (!o.value) return t; + if (t.__ownerID) { + t._root = i; + t._tail = r; + t.__hash = undefined; + t.__altered = true; + return t; + } + return Oe(t._origin, t._capacity, t._level, i, r); + } + function He(t, e, n, r, i, o) { + var a = (r >>> n) & y; + var s = t && a < t.array.length; + if (!s && i === undefined) return t; + var l; + if (n > 0) { + var u = t && t.array[a]; + var c = He(u, e, n - b, r, i, o); + if (c === u) return t; + l = je(t, e); + l.array[a] = c; + return l; + } + if (s && t.array[a] === i) return t; + d(o); + l = je(t, e); + if (i === undefined && a === l.array.length - 1) l.array.pop(); + else l.array[a] = i; + return l; + } + function je(t, e) { + if (e && t && e === t.ownerID) return t; + return new Ue(t ? t.array.slice() : [], e); + } + function Ve(t, e) { + if (e >= Je(t._capacity)) return t._tail; + if (e < 1 << (t._level + b)) { + var n = t._root; + var r = t._level; + while (n && r > 0) { + n = n.array[(e >>> r) & y]; + r -= b; + } + return n; + } + } + function qe(t, e, n) { + if (e !== undefined) e = e | 0; + if (n !== undefined) n = n | 0; + var r = t.__ownerID || new q(); + var i = t._origin; + var o = t._capacity; + var a = i + e; + var s = n === undefined ? o : n < 0 ? o + n : i + n; + if (a === i && s === o) return t; + if (a >= s) return t.clear(); + var l = t._level; + var u = t._root; + var c = 0; + while (a + c < 0) { + u = new Ue(u && u.array.length ? [undefined, u] : [], r); + l += b; + c += 1 << l; + } + if (c) { + a += c; + i += c; + s += c; + o += c; + } + var A = Je(o); + var h = Je(s); + while (h >= 1 << (l + b)) { + u = new Ue(u && u.array.length ? [u] : [], r); + l += b; + } + var p = t._tail; + var d = h < A ? Ve(t, s - 1) : h > A ? new Ue([], r) : p; + if (p && h > A && a < o && p.array.length) { + u = je(u, r); + var f = u; + for (var g = l; g > b; g -= b) { + var m = (A >>> g) & y; + f = f.array[m] = je(f.array[m], r); + } + f.array[(A >>> b) & y] = p; + } + if (s < o) d = d && d.removeAfter(r, 0, s); + if (a >= h) { + a -= h; + s -= h; + l = b; + u = null; + d = d && d.removeBefore(r, 0, a); + } else if (a > i || h < A) { + c = 0; + while (u) { + var v = (a >>> l) & y; + if ((v !== h >>> l) & y) break; + if (v) c += (1 << l) * v; + l -= b; + u = u.array[v]; + } + if (u && a > i) u = u.removeBefore(r, l, a - c); + if (u && h < A) u = u.removeAfter(r, l, h - c); + if (c) { + a -= c; + s -= c; + } + } + if (t.__ownerID) { + t.size = s - a; + t._origin = a; + t._capacity = s; + t._level = l; + t._root = u; + t._tail = d; + t.__hash = undefined; + t.__altered = true; + return t; + } + return Oe(a, s, l, u, d); + } + function We(t, e, n) { + var r = []; + var i = 0; + for (var o = 0; o < n.length; o++) { + var a = n[o]; + var s = U(a); + if (s.size > i) i = s.size; + if (!c(a)) + s = s.map(function (t) { + return kt(t); + }); + r.push(s); + } + if (i > t.size) t = t.setSize(i); + return xe(t, e, r); + } + function Je(t) { + return t < h ? 0 : ((t - 1) >>> b) << b; + } + function D(e) { + return e === null || e === undefined + ? Xe() + : Ke(e) + ? e + : Xe().withMutations(function (n) { + var t = s(e); + C(t.size); + t.forEach(function (t, e) { + return n.set(e, t); + }); + }); + } + function Ke(t) { + return ne(t) && P(t); + } + function Ze(t, e, n, r) { + var i = Object.create(D.prototype); + i.size = t ? t.size : 0; + i._map = t; + i._list = e; + i.__ownerID = n; + i.__hash = r; + return i; + } + function Xe() { + return Le || (Le = Ze(de(), Ge())); + } + function $e(t, e, n) { + var r = t._map; + var i = t._list; + var o = r.get(e); + var a = o !== undefined; + var s; + var l; + if (n === v) { + if (!a) return t; + if (i.size >= h && i.size >= r.size * 2) { + l = i.filter(function (t, e) { + return t !== undefined && o !== e; + }); + s = l + .toKeyedSeq() + .map(function (t) { + return t[0]; + }) + .flip() + .toMap(); + if (t.__ownerID) s.__ownerID = l.__ownerID = t.__ownerID; + } else { + s = r.remove(e); + l = o === i.size - 1 ? i.pop() : i.set(o, undefined); + } + } else if (a) { + if (n === i.get(o)[1]) return t; + s = r; + l = i.set(o, [e, n]); + } else { + s = r.set(e, i.size); + l = i.set(i.size, [e, n]); + } + if (t.__ownerID) { + t.size = s.size; + t._map = s; + t._list = l; + t.__hash = undefined; + return t; + } + return Ze(s, l); + } + function tn(t, e) { + this._iter = t; + this._useKeys = e; + this.size = t.size; + } + function en(t) { + this._iter = t; + this.size = t.size; + } + function nn(t) { + this._iter = t; + this.size = t.size; + } + function rn(t) { + this._iter = t; + this.size = t.size; + } + function on(i) { + var t = xn(i); + t._iter = i; + t.size = i.size; + t.flip = function () { + return i; + }; + t.reverse = function () { + var t = i.reverse.apply(this); + t.flip = function () { + return i.reverse(); + }; + return t; + }; + t.has = function (t) { + return i.includes(t); + }; + t.includes = function (t) { + return i.has(t); + }; + t.cacheResult = In; + t.__iterateUncached = function (n, t) { + var r = this; + return i.__iterate(function (t, e) { + return n(e, t, r) !== false; + }, t); + }; + t.__iteratorUncached = function (t, e) { + if (t === rt) { + var n = i.__iterator(t, e); + return new f(function () { + var t = n.next(); + if (!t.done) { + var e = t.value[0]; + t.value[0] = t.value[1]; + t.value[1] = e; + } + return t; + }); + } + return i.__iterator(t === p ? nt : p, e); + }; + return t; + } + function an(o, a, s) { + var t = xn(o); + t.size = o.size; + t.has = function (t) { + return o.has(t); + }; + t.get = function (t, e) { + var n = o.get(t, v); + return n === v ? e : a.call(s, n, t, o); + }; + t.__iterateUncached = function (r, t) { + var i = this; + return o.__iterate(function (t, e, n) { + return r(a.call(s, t, e, n), e, i) !== false; + }, t); + }; + t.__iteratorUncached = function (r, t) { + var i = o.__iterator(rt, t); + return new f(function () { + var t = i.next(); + if (t.done) return t; + var e = t.value; + var n = e[0]; + return g(r, n, a.call(s, e[1], n, o), t); + }); + }; + return t; + } + function sn(i, n) { + var t = xn(i); + t._iter = i; + t.size = i.size; + t.reverse = function () { + return i; + }; + if (i.flip) + t.flip = function () { + var t = on(i); + t.reverse = function () { + return i.flip(); + }; + return t; + }; + t.get = function (t, e) { + return i.get(n ? t : -1 - t, e); + }; + t.has = function (t) { + return i.has(n ? t : -1 - t); + }; + t.includes = function (t) { + return i.includes(t); + }; + t.cacheResult = In; + t.__iterate = function (n, t) { + var r = this; + return i.__iterate(function (t, e) { + return n(t, e, r); + }, !t); + }; + t.__iterator = function (t, e) { + return i.__iterator(t, !e); + }; + return t; + } + function ln(s, l, u, c) { + var t = xn(s); + if (c) { + t.has = function (t) { + var e = s.get(t, v); + return e !== v && !!l.call(u, e, t, s); + }; + t.get = function (t, e) { + var n = s.get(t, v); + return n !== v && l.call(u, n, t, s) ? n : e; + }; + } + t.__iterateUncached = function (r, t) { + var i = this; + var o = 0; + s.__iterate(function (t, e, n) { + if (l.call(u, t, e, n)) { + o++; + return r(t, c ? e : o - 1, i); + } + }, t); + return o; + }; + t.__iteratorUncached = function (i, t) { + var o = s.__iterator(rt, t); + var a = 0; + return new f(function () { + while (true) { + var t = o.next(); + if (t.done) return t; + var e = t.value; + var n = e[0]; + var r = e[1]; + if (l.call(u, r, n, s)) return g(i, c ? n : a++, r, t); + } + }); + }; + return t; + } + function un(n, r, i) { + var o = x().asMutable(); + n.__iterate(function (t, e) { + o.update(r.call(i, t, e, n), 0, function (t) { + return t + 1; + }); + }); + return o.asImmutable(); + } + function cn(r, t, i) { + var o = u(r); + var a = (P(r) ? D() : x()).asMutable(); + r.__iterate(function (e, n) { + a.update(t.call(i, e, n, r), function (t) { + return (t = t || []), t.push(o ? [n, e] : e), t; + }); + }); + var e = Cn(r); + return a.map(function (t) { + return S(r, e(t)); + }); + } + function An(s, t, e, l) { + var n = s.size; + if (t !== undefined) t = t | 0; + if (e !== undefined) e = e | 0; + if (X(t, e, n)) return s; + var u = $(t, n); + var r = tt(e, n); + if (u !== u || r !== r) return An(s.toSeq().cacheResult(), t, e, l); + var i = r - u; + var c; + if (i === i) c = i < 0 ? 0 : i; + var o = xn(s); + o.size = c === 0 ? c : (s.size && c) || undefined; + if (!l && Et(s) && c >= 0) + o.get = function (t, e) { + t = K(this, t); + return t >= 0 && t < c ? s.get(t + u, e) : e; + }; + o.__iterateUncached = function (n, t) { + var r = this; + if (c === 0) return 0; + if (t) return this.cacheResult().__iterate(n, t); + var i = 0; + var o = true; + var a = 0; + s.__iterate(function (t, e) { + if (!(o && (o = i++ < u))) { + a++; + return n(t, l ? e : a - 1, r) !== false && a !== c; + } + }); + return a; + }; + o.__iteratorUncached = function (e, t) { + if (c !== 0 && t) return this.cacheResult().__iterator(e, t); + var n = c !== 0 && s.__iterator(e, t); + var r = 0; + var i = 0; + return new f(function () { + while (r++ < u) n.next(); + if (++i > c) return m(); + var t = n.next(); + if (l || e === p) return t; + else if (e === nt) return g(e, i - 1, undefined, t); + else return g(e, i - 1, t.value[1], t); + }); + }; + return o; + } + function hn(e, l, u) { + var t = xn(e); + t.__iterateUncached = function (r, t) { + var i = this; + if (t) return this.cacheResult().__iterate(r, t); + var o = 0; + e.__iterate(function (t, e, n) { + return l.call(u, t, e, n) && ++o && r(t, e, i); + }); + return o; + }; + t.__iteratorUncached = function (i, t) { + var o = this; + if (t) return this.cacheResult().__iterator(i, t); + var a = e.__iterator(rt, t); + var s = true; + return new f(function () { + if (!s) return m(); + var t = a.next(); + if (t.done) return t; + var e = t.value; + var n = e[0]; + var r = e[1]; + if (!l.call(u, r, n, o)) { + s = false; + return m(); + } + return i === rt ? t : g(i, n, r, t); + }); + }; + return t; + } + function pn(e, u, c, A) { + var t = xn(e); + t.__iterateUncached = function (r, t) { + var i = this; + if (t) return this.cacheResult().__iterate(r, t); + var o = true; + var a = 0; + e.__iterate(function (t, e, n) { + if (!(o && (o = u.call(c, t, e, n)))) { + a++; + return r(t, A ? e : a - 1, i); + } + }); + return a; + }; + t.__iteratorUncached = function (i, t) { + var o = this; + if (t) return this.cacheResult().__iterator(i, t); + var a = e.__iterator(rt, t); + var s = true; + var l = 0; + return new f(function () { + var t, e, n; + do { + t = a.next(); + if (t.done) + if (A || i === p) return t; + else if (i === nt) return g(i, l++, undefined, t); + else return g(i, l++, t.value[1], t); + var r = t.value; + e = r[0]; + n = r[1]; + s && (s = u.call(c, n, e, o)); + } while (s); + return i === rt ? t : g(i, e, n, t); + }); + }; + return t; + } + function dn(t, e) { + var n = u(t); + var r = [t] + .concat(e) + .map(function (t) { + if (!c(t)) t = n ? Ct(t) : xt(Array.isArray(t) ? t : [t]); + else if (n) t = s(t); + return t; + }) + .filter(function (t) { + return t.size !== 0; + }); + if (r.length === 0) return t; + if (r.length === 1) { + var i = r[0]; + if (i === t || (n && u(i)) || (A(t) && A(i))) return i; + } + var o = new vt(r); + if (n) o = o.toKeyedSeq(); + else if (!A(t)) o = o.toSetSeq(); + o = o.flatten(true); + o.size = r.reduce(function (t, e) { + if (t !== undefined) { + var n = e.size; + if (n !== undefined) return t + n; + } + }, 0); + return o; + } + function fn(t, l, u) { + var e = xn(t); + e.__iterateUncached = function (i, e) { + var o = 0; + var a = false; + function s(t, n) { + var r = this; + t.__iterate(function (t, e) { + if ((!l || n < l) && c(t)) s(t, n + 1); + else if (i(t, u ? e : o++, r) === false) a = true; + return !a; + }, e); + } + s(t, 0); + return o; + }; + e.__iteratorUncached = function (n, r) { + var i = t.__iterator(n, r); + var o = []; + var a = 0; + return new f(function () { + while (i) { + var t = i.next(); + if (t.done !== false) { + i = o.pop(); + continue; + } + var e = t.value; + if (n === rt) e = e[1]; + if ((!l || o.length < l) && c(e)) { + o.push(i); + i = e.__iterator(n, r); + } else return u ? t : g(n, a++, e, t); + } + return m(); + }); + }; + return e; + } + function gn(n, r, i) { + var o = Cn(n); + return n + .toSeq() + .map(function (t, e) { + return o(r.call(i, t, e, n)); + }) + .flatten(true); + } + function mn(o, a) { + var t = xn(o); + t.size = o.size && o.size * 2 - 1; + t.__iterateUncached = function (n, t) { + var r = this; + var i = 0; + o.__iterate(function (t, e) { + return (!i || n(a, i++, r) !== false) && n(t, i++, r) !== false; + }, t); + return i; + }; + t.__iteratorUncached = function (t, e) { + var n = o.__iterator(p, e); + var r = 0; + var i; + return new f(function () { + if (!i || r % 2) { + i = n.next(); + if (i.done) return i; + } + return r % 2 ? g(t, r++, a) : g(t, r++, i.value, i); + }); + }; + return t; + } + function vn(n, r, i) { + if (!r) r = Mn; + var t = u(n); + var o = 0; + var a = n + .toSeq() + .map(function (t, e) { + return [e, t, o++, i ? i(t, e, n) : t]; + }) + .toArray(); + a.sort(function (t, e) { + return r(t[3], e[3]) || t[2] - e[2]; + }).forEach( + t + ? function (t, e) { + a[e].length = 2; + } + : function (t, e) { + a[e] = t[1]; + }, + ); + return t ? ht(a) : A(n) ? w(a) : pt(a); + } + function bn(n, r, i) { + if (!r) r = Mn; + if (i) { + var t = n + .toSeq() + .map(function (t, e) { + return [t, i(t, e, n)]; + }) + .reduce(function (t, e) { + return yn(r, t[1], e[1]) ? e : t; + }); + return t && t[0]; + } else + return n.reduce(function (t, e) { + return yn(r, t, e) ? e : t; + }); + } + function yn(t, e, n) { + var r = t(n, e); + return ( + (r === 0 && n !== e && (n === undefined || n === null || n !== n)) || r > 0 + ); + } + function wn(t, a, s) { + var e = xn(t); + e.size = new vt(s) + .map(function (t) { + return t.size; + }) + .min(); + e.__iterate = function (t, e) { + var n = this.__iterator(p, e); + var r; + var i = 0; + while (!(r = n.next()).done) if (t(r.value, i++, this) === false) break; + return i; + }; + e.__iteratorUncached = function (e, n) { + var r = s.map(function (t) { + return (t = l(t)), ut(n ? t.reverse() : t); + }); + var i = 0; + var o = false; + return new f(function () { + var t; + if (!o) { + t = r.map(function (t) { + return t.next(); + }); + o = t.some(function (t) { + return t.done; + }); + } + if (o) return m(); + return g( + e, + i++, + a.apply( + null, + t.map(function (t) { + return t.value; + }), + ), + ); + }); + }; + return e; + } + function S(t, e) { + return Et(t) ? e : t.constructor(e); + } + function En(t) { + if (t !== Object(t)) throw new TypeError('Expected [K, V] tuple: ' + t); + } + function Bn(t) { + C(t.size); + return J(t); + } + function Cn(t) { + return u(t) ? s : A(t) ? U : i; + } + function xn(t) { + return Object.create((u(t) ? ht : A(t) ? w : pt).prototype); + } + function In() { + if (this._iter.cacheResult) { + this._iter.cacheResult(); + this.size = this._iter.size; + return this; + } else return e.prototype.cacheResult.call(this); + } + function Mn(t, e) { + return t > e ? 1 : t < e ? -1 : 0; + } + function Dn(t) { + var e = ut(t); + if (!e) { + if (!At(t)) throw new TypeError('Expected iterable or array-like: ' + t); + e = ut(l(t)); + } + return e; + } + function k(r, i) { + var o; + var a = function t(e) { + if (e instanceof a) return e; + if (!(this instanceof a)) return new a(e); + if (!o) { + o = true; + var n = Object.keys(r); + Fn(s, n); + s.size = n.length; + s._name = i; + s._keys = n; + s._defaultValues = r; + } + this._map = x(e); + }; + var s = (a.prototype = Object.create(F)); + s.constructor = a; + return a; + } + t(D, x), + (D.of = function () { + return this(arguments); + }), + (D.prototype.toString = function () { + return this.__toString('OrderedMap {', '}'); + }), + (D.prototype.get = function (t, e) { + var n = this._map.get(t); + return n !== undefined ? this._list.get(n)[1] : e; + }), + (D.prototype.clear = function () { + if (this.size === 0) return this; + if (this.__ownerID) { + this.size = 0; + this._map.clear(); + this._list.clear(); + return this; + } + return Xe(); + }), + (D.prototype.set = function (t, e) { + return $e(this, t, e); + }), + (D.prototype.remove = function (t) { + return $e(this, t, v); + }), + (D.prototype.wasAltered = function () { + return this._map.wasAltered() || this._list.wasAltered(); + }), + (D.prototype.__iterate = function (e, t) { + var n = this; + return this._list.__iterate(function (t) { + return t && e(t[1], t[0], n); + }, t); + }), + (D.prototype.__iterator = function (t, e) { + return this._list.fromEntrySeq().__iterator(t, e); + }), + (D.prototype.__ensureOwner = function (t) { + if (t === this.__ownerID) return this; + var e = this._map.__ensureOwner(t); + var n = this._list.__ensureOwner(t); + if (!t) { + this.__ownerID = t; + this._map = e; + this._list = n; + return this; + } + return Ze(e, n, t, this.__hash); + }), + (D.isOrderedMap = Ke), + (D.prototype[G] = true), + (D.prototype[z] = D.prototype.remove), + t(tn, ht), + (tn.prototype.get = function (t, e) { + return this._iter.get(t, e); + }), + (tn.prototype.has = function (t) { + return this._iter.has(t); + }), + (tn.prototype.valueSeq = function () { + return this._iter.valueSeq(); + }), + (tn.prototype.reverse = function () { + var t = this; + var e = sn(this, true); + if (!this._useKeys) + e.valueSeq = function () { + return t._iter.toSeq().reverse(); + }; + return e; + }), + (tn.prototype.map = function (t, e) { + var n = this; + var r = an(this, t, e); + if (!this._useKeys) + r.valueSeq = function () { + return n._iter.toSeq().map(t, e); + }; + return r; + }), + (tn.prototype.__iterate = function (n, e) { + var r = this; + var i; + return this._iter.__iterate( + this._useKeys + ? function (t, e) { + return n(t, e, r); + } + : ((i = e ? Bn(this) : 0), + function (t) { + return n(t, e ? --i : i++, r); + }), + e, + ); + }), + (tn.prototype.__iterator = function (e, n) { + if (this._useKeys) return this._iter.__iterator(e, n); + var r = this._iter.__iterator(p, n); + var i = n ? Bn(this) : 0; + return new f(function () { + var t = r.next(); + return t.done ? t : g(e, n ? --i : i++, t.value, t); + }); + }), + (tn.prototype[G] = true), + t(en, w), + (en.prototype.includes = function (t) { + return this._iter.includes(t); + }), + (en.prototype.__iterate = function (e, t) { + var n = this; + var r = 0; + return this._iter.__iterate(function (t) { + return e(t, r++, n); + }, t); + }), + (en.prototype.__iterator = function (e, t) { + var n = this._iter.__iterator(p, t); + var r = 0; + return new f(function () { + var t = n.next(); + return t.done ? t : g(e, r++, t.value, t); + }); + }), + t(nn, pt), + (nn.prototype.has = function (t) { + return this._iter.includes(t); + }), + (nn.prototype.__iterate = function (e, t) { + var n = this; + return this._iter.__iterate(function (t) { + return e(t, t, n); + }, t); + }), + (nn.prototype.__iterator = function (e, t) { + var n = this._iter.__iterator(p, t); + return new f(function () { + var t = n.next(); + return t.done ? t : g(e, t.value, t.value, t); + }); + }), + t(rn, ht), + (rn.prototype.entrySeq = function () { + return this._iter.toSeq(); + }), + (rn.prototype.__iterate = function (n, t) { + var r = this; + return this._iter.__iterate(function (t) { + if (t) { + En(t); + var e = c(t); + return n(e ? t.get(1) : t[1], e ? t.get(0) : t[0], r); + } + }, t); + }), + (rn.prototype.__iterator = function (r, t) { + var i = this._iter.__iterator(p, t); + return new f(function () { + while (true) { + var t = i.next(); + if (t.done) return t; + var e = t.value; + if (e) { + En(e); + var n = c(e); + return g(r, n ? e.get(0) : e[0], n ? e.get(1) : e[1], t); + } + } + }); + }), + (en.prototype.cacheResult = + tn.prototype.cacheResult = + nn.prototype.cacheResult = + rn.prototype.cacheResult = + In), + t(k, Nt), + (k.prototype.toString = function () { + return this.__toString(kn(this) + ' {', '}'); + }), + (k.prototype.has = function (t) { + return this._defaultValues.hasOwnProperty(t); + }), + (k.prototype.get = function (t, e) { + if (!this.has(t)) return e; + var n = this._defaultValues[t]; + return this._map ? this._map.get(t, n) : n; + }), + (k.prototype.clear = function () { + if (this.__ownerID) { + this._map && this._map.clear(); + return this; + } + var t = this.constructor; + return t._empty || (t._empty = Sn(this, de())); + }), + (k.prototype.set = function (t, e) { + if (!this.has(t)) + throw new Error('Cannot set unknown key "' + t + '" on ' + kn(this)); + if (this._map && !this._map.has(t)) { + var n = this._defaultValues[t]; + if (e === n) return this; + } + var r = this._map && this._map.set(t, e); + if (this.__ownerID || r === this._map) return this; + return Sn(this, r); + }), + (k.prototype.remove = function (t) { + if (!this.has(t)) return this; + var e = this._map && this._map.remove(t); + if (this.__ownerID || e === this._map) return this; + return Sn(this, e); + }), + (k.prototype.wasAltered = function () { + return this._map.wasAltered(); + }), + (k.prototype.__iterator = function (t, e) { + var n = this; + return s(this._defaultValues) + .map(function (t, e) { + return n.get(e); + }) + .__iterator(t, e); + }), + (k.prototype.__iterate = function (t, e) { + var n = this; + return s(this._defaultValues) + .map(function (t, e) { + return n.get(e); + }) + .__iterate(t, e); + }), + (k.prototype.__ensureOwner = function (t) { + if (t === this.__ownerID) return this; + var e = this._map && this._map.__ensureOwner(t); + if (!t) { + this.__ownerID = t; + this._map = e; + return this; + } + return Sn(this, e, t); + }); + var F = k.prototype; + function Sn(t, e, n) { + var r = Object.create(Object.getPrototypeOf(t)); + r._map = e; + r.__ownerID = n; + return r; + } + function kn(t) { + return t._name || t.constructor.name || 'Record'; + } + function Fn(t, e) { + try { + e.forEach(Qn.bind(undefined, t)); + } catch (t) {} + } + function Qn(t, e) { + Object.defineProperty(t, e, { + get: function () { + return this.get(e); + }, + set: function (t) { + Rt(this.__ownerID, 'Cannot set on an immutable record.'); + this.set(e, t); + }, + }); + } + function Q(n) { + return n === null || n === undefined + ? Pn() + : _n(n) && !P(n) + ? n + : Pn().withMutations(function (e) { + var t = i(n); + C(t.size); + t.forEach(function (t) { + return e.add(t); + }); + }); + } + function _n(t) { + return !!(t && t[Tn]); + } + (F[z] = F.remove), + (F.deleteIn = F.removeIn = I.removeIn), + (F.merge = I.merge), + (F.mergeWith = I.mergeWith), + (F.mergeIn = I.mergeIn), + (F.mergeDeep = I.mergeDeep), + (F.mergeDeepWith = I.mergeDeepWith), + (F.mergeDeepIn = I.mergeDeepIn), + (F.setIn = I.setIn), + (F.update = I.update), + (F.updateIn = I.updateIn), + (F.withMutations = I.withMutations), + (F.asMutable = I.asMutable), + (F.asImmutable = I.asImmutable), + t(Q, Lt), + (Q.of = function () { + return this(arguments); + }), + (Q.fromKeys = function (t) { + return this(s(t).keySeq()); + }), + (Q.prototype.toString = function () { + return this.__toString('Set {', '}'); + }), + (Q.prototype.has = function (t) { + return this._map.has(t); + }), + (Q.prototype.add = function (t) { + return Un(this, this._map.set(t, true)); + }), + (Q.prototype.remove = function (t) { + return Un(this, this._map.remove(t)); + }), + (Q.prototype.clear = function () { + return Un(this, this._map.clear()); + }), + (Q.prototype.union = function () { + var n = r.call(arguments, 0); + n = n.filter(function (t) { + return t.size !== 0; + }); + if (n.length === 0) return this; + if (this.size === 0 && !this.__ownerID && n.length === 1) + return this.constructor(n[0]); + return this.withMutations(function (e) { + for (var t = 0; t < n.length; t++) + i(n[t]).forEach(function (t) { + return e.add(t); + }); + }); + }), + (Q.prototype.intersect = function () { + var n = r.call(arguments, 0); + if (n.length === 0) return this; + n = n.map(function (t) { + return i(t); + }); + var e = this; + return this.withMutations(function (t) { + e.forEach(function (e) { + if ( + !n.every(function (t) { + return t.includes(e); + }) + ) + t.remove(e); + }); + }); + }), + (Q.prototype.subtract = function () { + var n = r.call(arguments, 0); + if (n.length === 0) return this; + n = n.map(function (t) { + return i(t); + }); + var e = this; + return this.withMutations(function (t) { + e.forEach(function (e) { + if ( + n.some(function (t) { + return t.includes(e); + }) + ) + t.remove(e); + }); + }); + }), + (Q.prototype.merge = function () { + return this.union.apply(this, arguments); + }), + (Q.prototype.mergeWith = function (t) { + var e = r.call(arguments, 1); + return this.union.apply(this, e); + }), + (Q.prototype.sort = function (t) { + return Ln(vn(this, t)); + }), + (Q.prototype.sortBy = function (t, e) { + return Ln(vn(this, e, t)); + }), + (Q.prototype.wasAltered = function () { + return this._map.wasAltered(); + }), + (Q.prototype.__iterate = function (n, t) { + var r = this; + return this._map.__iterate(function (t, e) { + return n(e, e, r); + }, t); + }), + (Q.prototype.__iterator = function (t, e) { + return this._map + .map(function (t, e) { + return e; + }) + .__iterator(t, e); + }), + (Q.prototype.__ensureOwner = function (t) { + if (t === this.__ownerID) return this; + var e = this._map.__ensureOwner(t); + if (!t) { + this.__ownerID = t; + this._map = e; + return this; + } + return this.__make(e, t); + }), + (Q.isSet = _n); + var Tn = '@@__IMMUTABLE_SET__@@', + _ = Q.prototype, + Rn; + function Un(t, e) { + if (t.__ownerID) { + t.size = e.size; + t._map = e; + return t; + } + return e === t._map ? t : e.size === 0 ? t.__empty() : t.__make(e); + } + function Nn(t, e) { + var n = Object.create(_); + n.size = t ? t.size : 0; + n._map = t; + n.__ownerID = e; + return n; + } + function Pn() { + return Rn || (Rn = Nn(de())); + } + function Ln(n) { + return n === null || n === undefined + ? Hn() + : Yn(n) + ? n + : Hn().withMutations(function (e) { + var t = i(n); + C(t.size); + t.forEach(function (t) { + return e.add(t); + }); + }); + } + function Yn(t) { + return _n(t) && P(t); + } + (_[Tn] = true), + (_[z] = _.remove), + (_.mergeDeep = _.merge), + (_.mergeDeepWith = _.mergeWith), + (_.withMutations = I.withMutations), + (_.asMutable = I.asMutable), + (_.asImmutable = I.asImmutable), + (_.__empty = Pn), + (_.__make = Nn), + t(Ln, Q), + (Ln.of = function () { + return this(arguments); + }), + (Ln.fromKeys = function (t) { + return this(s(t).keySeq()); + }), + (Ln.prototype.toString = function () { + return this.__toString('OrderedSet {', '}'); + }), + (Ln.isOrderedSet = Yn); + var On = Ln.prototype, + Gn; + function zn(t, e) { + var n = Object.create(On); + n.size = t ? t.size : 0; + n._map = t; + n.__ownerID = e; + return n; + } + function Hn() { + return Gn || (Gn = zn(Xe())); + } + function T(t) { + return t === null || t === undefined ? Kn() : jn(t) ? t : Kn().unshiftAll(t); + } + function jn(t) { + return !!(t && t[Vn]); + } + (On[G] = true), + (On.__empty = Hn), + (On.__make = zn), + t(T, Pt), + (T.of = function () { + return this(arguments); + }), + (T.prototype.toString = function () { + return this.__toString('Stack [', ']'); + }), + (T.prototype.get = function (t, e) { + var n = this._head; + t = K(this, t); + while (n && t--) n = n.next; + return n ? n.value : e; + }), + (T.prototype.peek = function () { + return this._head && this._head.value; + }), + (T.prototype.push = function () { + if (arguments.length === 0) return this; + var t = this.size + arguments.length; + var e = this._head; + for (var n = arguments.length - 1; n >= 0; n--) + e = { value: arguments[n], next: e }; + if (this.__ownerID) { + this.size = t; + this._head = e; + this.__hash = undefined; + this.__altered = true; + return this; + } + return Jn(t, e); + }), + (T.prototype.pushAll = function (t) { + t = U(t); + if (t.size === 0) return this; + C(t.size); + var e = this.size; + var n = this._head; + t.reverse().forEach(function (t) { + e++; + n = { value: t, next: n }; + }); + if (this.__ownerID) { + this.size = e; + this._head = n; + this.__hash = undefined; + this.__altered = true; + return this; + } + return Jn(e, n); + }), + (T.prototype.pop = function () { + return this.slice(1); + }), + (T.prototype.unshift = function () { + return this.push.apply(this, arguments); + }), + (T.prototype.unshiftAll = function (t) { + return this.pushAll(t); + }), + (T.prototype.shift = function () { + return this.pop.apply(this, arguments); + }), + (T.prototype.clear = function () { + if (this.size === 0) return this; + if (this.__ownerID) { + this.size = 0; + this._head = undefined; + this.__hash = undefined; + this.__altered = true; + return this; + } + return Kn(); + }), + (T.prototype.slice = function (t, e) { + if (X(t, e, this.size)) return this; + var n = $(t, this.size); + var r = tt(e, this.size); + if (r !== this.size) return Pt.prototype.slice.call(this, t, e); + var i = this.size - n; + var o = this._head; + while (n--) o = o.next; + if (this.__ownerID) { + this.size = i; + this._head = o; + this.__hash = undefined; + this.__altered = true; + return this; + } + return Jn(i, o); + }), + (T.prototype.__ensureOwner = function (t) { + if (t === this.__ownerID) return this; + if (!t) { + this.__ownerID = t; + this.__altered = false; + return this; + } + return Jn(this.size, this._head, t, this.__hash); + }), + (T.prototype.__iterate = function (t, e) { + if (e) return this.reverse().__iterate(t); + var n = 0; + var r = this._head; + while (r) { + if (t(r.value, n++, this) === false) break; + r = r.next; + } + return n; + }), + (T.prototype.__iterator = function (e, t) { + if (t) return this.reverse().__iterator(e); + var n = 0; + var r = this._head; + return new f(function () { + if (r) { + var t = r.value; + r = r.next; + return g(e, n++, t); + } + return m(); + }); + }), + (T.isStack = jn); + var Vn = '@@__IMMUTABLE_STACK__@@', + qn = T.prototype, + Wn; + function Jn(t, e, n, r) { + var i = Object.create(qn); + i.size = t; + i._head = e; + i.__ownerID = n; + i.__hash = r; + i.__altered = false; + return i; + } + function Kn() { + return Wn || (Wn = Jn(0)); + } + function Zn(e, n) { + var t = function (t) { + e.prototype[t] = n[t]; + }; + Object.keys(n).forEach(t); + Object.getOwnPropertySymbols && Object.getOwnPropertySymbols(n).forEach(t); + return e; + } + (qn[Vn] = true), + (qn.withMutations = I.withMutations), + (qn.asMutable = I.asMutable), + (qn.asImmutable = I.asImmutable), + (qn.wasAltered = I.wasAltered), + (l.Iterator = f), + Zn(l, { + toArray: function () { + C(this.size); + var n = new Array(this.size || 0); + this.valueSeq().__iterate(function (t, e) { + n[e] = t; + }); + return n; + }, + toIndexedSeq: function () { + return new en(this); + }, + toJS: function () { + return this.toSeq() + .map(function (t) { + return t && typeof t.toJS === 'function' ? t.toJS() : t; + }) + .__toJS(); + }, + toJSON: function () { + return this.toSeq() + .map(function (t) { + return t && typeof t.toJSON === 'function' ? t.toJSON() : t; + }) + .__toJS(); + }, + toKeyedSeq: function () { + return new tn(this, true); + }, + toMap: function () { + return x(this.toKeyedSeq()); + }, + toObject: function () { + C(this.size); + var n = {}; + this.__iterate(function (t, e) { + n[e] = t; + }); + return n; + }, + toOrderedMap: function () { + return D(this.toKeyedSeq()); + }, + toOrderedSet: function () { + return Ln(u(this) ? this.valueSeq() : this); + }, + toSet: function () { + return Q(u(this) ? this.valueSeq() : this); + }, + toSetSeq: function () { + return new nn(this); + }, + toSeq: function () { + return A(this) + ? this.toIndexedSeq() + : u(this) + ? this.toKeyedSeq() + : this.toSetSeq(); + }, + toStack: function () { + return T(u(this) ? this.valueSeq() : this); + }, + toList: function () { + return n(u(this) ? this.valueSeq() : this); + }, + toString: function () { + return '[Iterable]'; + }, + __toString: function (t, e) { + if (this.size === 0) return t + e; + return ( + t + ' ' + this.toSeq().map(this.__toStringMapper).join(', ') + ' ' + e + ); + }, + concat: function () { + var t = r.call(arguments, 0); + return S(this, dn(this, t)); + }, + includes: function (e) { + return this.some(function (t) { + return E(t, e); + }); + }, + entries: function () { + return this.__iterator(rt); + }, + every: function (r, i) { + C(this.size); + var o = true; + this.__iterate(function (t, e, n) { + if (!r.call(i, t, e, n)) { + o = false; + return false; + } + }); + return o; + }, + filter: function (t, e) { + return S(this, ln(this, t, e, true)); + }, + find: function (t, e, n) { + var r = this.findEntry(t, e); + return r ? r[1] : n; + }, + findEntry: function (r, i) { + var o; + this.__iterate(function (t, e, n) { + if (r.call(i, t, e, n)) { + o = [e, t]; + return false; + } + }); + return o; + }, + findLastEntry: function (t, e) { + return this.toSeq().reverse().findEntry(t, e); + }, + forEach: function (t, e) { + C(this.size); + return this.__iterate(e ? t.bind(e) : t); + }, + join: function (e) { + C(this.size); + e = e !== undefined ? '' + e : ','; + var n = ''; + var r = true; + this.__iterate(function (t) { + r ? (r = false) : (n += e); + n += t !== null && t !== undefined ? t.toString() : ''; + }); + return n; + }, + keys: function () { + return this.__iterator(nt); + }, + map: function (t, e) { + return S(this, an(this, t, e)); + }, + reduce: function (r, t, i) { + C(this.size); + var o; + var a; + if (arguments.length < 2) a = true; + else o = t; + this.__iterate(function (t, e, n) { + if (a) { + a = false; + o = t; + } else o = r.call(i, o, t, e, n); + }); + return o; + }, + reduceRight: function (t, e, n) { + var r = this.toKeyedSeq().reverse(); + return r.reduce.apply(r, arguments); + }, + reverse: function () { + return S(this, sn(this, true)); + }, + slice: function (t, e) { + return S(this, An(this, t, e, true)); + }, + some: function (t, e) { + return !this.every(nr(t), e); + }, + sort: function (t) { + return S(this, vn(this, t)); + }, + values: function () { + return this.__iterator(p); + }, + butLast: function () { + return this.slice(0, -1); + }, + isEmpty: function () { + return this.size !== undefined + ? this.size === 0 + : !this.some(function () { + return true; + }); + }, + count: function (t, e) { + return J(t ? this.toSeq().filter(t, e) : this); + }, + countBy: function (t, e) { + return un(this, t, e); + }, + equals: function (t) { + return Tt(this, t); + }, + entrySeq: function () { + var t = this; + if (t._cache) return new vt(t._cache); + var e = t.toSeq().map(er).toIndexedSeq(); + e.fromEntrySeq = function () { + return t.toSeq(); + }; + return e; + }, + filterNot: function (t, e) { + return this.filter(nr(t), e); + }, + findLast: function (t, e, n) { + return this.toKeyedSeq().reverse().find(t, e, n); + }, + first: function () { + return this.find(Z); + }, + flatMap: function (t, e) { + return S(this, gn(this, t, e)); + }, + flatten: function (t) { + return S(this, fn(this, t, true)); + }, + fromEntrySeq: function () { + return new rn(this); + }, + get: function (n, t) { + return this.find( + function (t, e) { + return E(e, n); + }, + undefined, + t, + ); + }, + getIn: function (t, e) { + var n = this; + var r = Dn(t); + var i; + while (!(i = r.next()).done) { + var o = i.value; + n = n && n.get ? n.get(o, v) : v; + if (n === v) return e; + } + return n; + }, + groupBy: function (t, e) { + return cn(this, t, e); + }, + has: function (t) { + return this.get(t, v) !== v; + }, + hasIn: function (t) { + return this.getIn(t, v) !== v; + }, + isSubset: function (e) { + e = typeof e.includes === 'function' ? e : l(e); + return this.every(function (t) { + return e.includes(t); + }); + }, + isSuperset: function (t) { + t = typeof t.isSubset === 'function' ? t : l(t); + return t.isSubset(this); + }, + keySeq: function () { + return this.toSeq().map(tr).toIndexedSeq(); + }, + last: function () { + return this.toSeq().reverse().first(); + }, + max: function (t) { + return bn(this, t); + }, + maxBy: function (t, e) { + return bn(this, e, t); + }, + min: function (t) { + return bn(this, t ? rr(t) : ar); + }, + minBy: function (t, e) { + return bn(this, e ? rr(e) : ar, t); + }, + rest: function () { + return this.slice(1); + }, + skip: function (t) { + return this.slice(Math.max(0, t)); + }, + skipLast: function (t) { + return S(this, this.toSeq().reverse().skip(t).reverse()); + }, + skipWhile: function (t, e) { + return S(this, pn(this, t, e, true)); + }, + skipUntil: function (t, e) { + return this.skipWhile(nr(t), e); + }, + sortBy: function (t, e) { + return S(this, vn(this, e, t)); + }, + take: function (t) { + return this.slice(0, Math.max(0, t)); + }, + takeLast: function (t) { + return S(this, this.toSeq().reverse().take(t).reverse()); + }, + takeWhile: function (t, e) { + return S(this, hn(this, t, e)); + }, + takeUntil: function (t, e) { + return this.takeWhile(nr(t), e); + }, + valueSeq: function () { + return this.toIndexedSeq(); + }, + hashCode: function () { + return this.__hash || (this.__hash = sr(this)); + }, + }); + var R = l.prototype; + (R[L] = true), + (R[at] = R.values), + (R.__toJS = R.toArray), + (R.__toStringMapper = ir), + (R.inspect = R.toSource = + function () { + return this.toString(); + }), + (R.chain = R.flatMap), + (R.contains = R.includes); + try { + Object.defineProperty(R, 'length', { + get: function () { + if (!l.noLengthWarning) { + var e; + try { + throw new Error(); + } catch (t) { + e = t.stack; + } + if (e.indexOf('_wrapObject') === -1) { + console && + console.warn && + console.warn( + 'iterable.length has been deprecated, ' + + 'use iterable.size or iterable.count(). ' + + 'This warning will become a silent error in a future version. ' + + e, + ); + return this.size; + } + } + }, + }); + } catch (t) {} + Zn(s, { + flip: function () { + return S(this, on(this)); + }, + findKey: function (t, e) { + var n = this.findEntry(t, e); + return n && n[0]; + }, + findLastKey: function (t, e) { + return this.toSeq().reverse().findKey(t, e); + }, + keyOf: function (e) { + return this.findKey(function (t) { + return E(t, e); + }); + }, + lastKeyOf: function (e) { + return this.findLastKey(function (t) { + return E(t, e); + }); + }, + mapEntries: function (n, r) { + var i = this; + var o = 0; + return S( + this, + this.toSeq() + .map(function (t, e) { + return n.call(r, [e, t], o++, i); + }) + .fromEntrySeq(), + ); + }, + mapKeys: function (n, r) { + var i = this; + return S( + this, + this.toSeq() + .flip() + .map(function (t, e) { + return n.call(r, t, e, i); + }) + .flip(), + ); + }, + }); + var Xn = s.prototype, + $n; + function tr(t, e) { + return e; + } + function er(t, e) { + return [e, t]; + } + function nr(t) { + return function () { + return !t.apply(this, arguments); + }; + } + function rr(t) { + return function () { + return -t.apply(this, arguments); + }; + } + function ir(t) { + return typeof t === 'string' ? JSON.stringify(t) : t; + } + function or() { + return W(arguments); + } + function ar(t, e) { + return t < e ? 1 : t > e ? -1 : 0; + } + function sr(t) { + if (t.size === Infinity) return 0; + var e = P(t); + var n = u(t); + var r = e ? 1 : 0; + var i = t.__iterate( + n + ? e + ? function (t, e) { + r = (31 * r + ur(B(t), B(e))) | 0; + } + : function (t, e) { + r = (r + ur(B(t), B(e))) | 0; + } + : e + ? function (t) { + r = (31 * r + B(t)) | 0; + } + : function (t) { + r = (r + B(t)) | 0; + }, + ); + return lr(i, r); + } + function lr(t, e) { + e = Yt(e, 3432918353); + e = Yt((e << 15) | (e >>> -15), 461845907); + e = Yt((e << 13) | (e >>> -13), 5); + e = ((e + 3864292196) | 0) ^ t; + e = Yt(e ^ (e >>> 16), 2246822507); + e = Yt(e ^ (e >>> 13), 3266489909); + e = Ot(e ^ (e >>> 16)); + return e; + } + function ur(t, e) { + return (t ^ (e + 2654435769 + (t << 6) + (t >> 2))) | 0; + } + return ( + (Xn[Y] = true), + (Xn[at] = R.entries), + (Xn.__toJS = R.toObject), + (Xn.__toStringMapper = function (t, e) { + return JSON.stringify(e) + ': ' + ir(t); + }), + Zn(U, { + toKeyedSeq: function () { + return new tn(this, false); + }, + filter: function (t, e) { + return S(this, ln(this, t, e, false)); + }, + findIndex: function (t, e) { + var n = this.findEntry(t, e); + return n ? n[0] : -1; + }, + indexOf: function (t) { + var e = this.toKeyedSeq().keyOf(t); + return e === undefined ? -1 : e; + }, + lastIndexOf: function (t) { + var e = this.toKeyedSeq().reverse().keyOf(t); + return e === undefined ? -1 : e; + }, + reverse: function () { + return S(this, sn(this, false)); + }, + slice: function (t, e) { + return S(this, An(this, t, e, false)); + }, + splice: function (t, e) { + var n = arguments.length; + e = Math.max(e | 0, 0); + if (n === 0 || (n === 2 && !e)) return this; + t = $(t, t < 0 ? this.count() : this.size); + var r = this.slice(0, t); + return S(this, n === 1 ? r : r.concat(W(arguments, 2), this.slice(t + e))); + }, + findLastIndex: function (t, e) { + var n = this.toKeyedSeq().findLastKey(t, e); + return n === undefined ? -1 : n; + }, + first: function () { + return this.get(0); + }, + flatten: function (t) { + return S(this, fn(this, t, false)); + }, + get: function (n, t) { + n = K(this, n); + return n < 0 || + this.size === Infinity || + (this.size !== undefined && n > this.size) + ? t + : this.find( + function (t, e) { + return e === n; + }, + undefined, + t, + ); + }, + has: function (t) { + t = K(this, t); + return ( + t >= 0 && + (this.size !== undefined + ? this.size === Infinity || t < this.size + : this.indexOf(t) !== -1) + ); + }, + interpose: function (t) { + return S(this, mn(this, t)); + }, + interleave: function () { + var t = [this].concat(W(arguments)); + var e = wn(this.toSeq(), w.of, t); + var n = e.flatten(true); + if (e.size) n.size = e.size * t.length; + return S(this, n); + }, + last: function () { + return this.get(-1); + }, + skipWhile: function (t, e) { + return S(this, pn(this, t, e, false)); + }, + zip: function () { + var t = [this].concat(W(arguments)); + return S(this, wn(this, or, t)); + }, + zipWith: function (t) { + var e = W(arguments); + e[0] = this; + return S(this, wn(this, t, e)); + }, + }), + (U.prototype[O] = true), + (U.prototype[G] = true), + Zn(i, { + get: function (t, e) { + return this.has(t) ? t : e; + }, + includes: function (t) { + return this.has(t); + }, + keySeq: function () { + return this.valueSeq(); + }, + }), + (i.prototype.has = R.includes), + (i.prototype.contains = i.prototype.includes), + Zn(ht, s.prototype), + Zn(w, U.prototype), + Zn(pt, i.prototype), + Zn(Nt, s.prototype), + Zn(Pt, U.prototype), + Zn(Lt, i.prototype), + { + Iterable: l, + Seq: e, + Collection: Ut, + Map: x, + OrderedMap: D, + List: n, + Stack: T, + Set: Q, + OrderedSet: Ln, + Record: k, + Range: a, + Repeat: o, + is: E, + fromJS: kt, + } + ); + })(); + var br, + yr, + wr, + Er, + Br, + Cr, + xr, + r = {}, + Ir = + (!function () { + function X(t) { + throw t; + } + var $ = void 0, + tt = !0, + M = this; + function a(t, e) { + var n, + r = t.split('.'), + i = M; + r[0] in i || !i.execScript || i.execScript('var ' + r[0]); + for (; r.length && (n = r.shift()); ) + r.length || e === $ ? (i = i[n] || (i[n] = {})) : (i[n] = e); + } + var et = + 'undefined' != typeof Uint8Array && + 'undefined' != typeof Uint16Array && + 'undefined' != typeof Uint32Array && + 'undefined' != typeof DataView; + function nt(t, e) { + (this.index = 'number' == typeof e ? e : 0), + (this.m = 0), + (this.buffer = + t instanceof (et ? Uint8Array : Array) + ? t + : new (et ? Uint8Array : Array)(32768)), + 2 * this.buffer.length <= this.index && X(Error('invalid index')), + this.buffer.length <= this.index && this.f(); + } + (nt.prototype.f = function () { + var t, + e = this.buffer, + n = e.length, + r = new (et ? Uint8Array : Array)(n << 1); + if (et) r.set(e); + else for (t = 0; t < n; ++t) r[t] = e[t]; + return (this.buffer = r); + }), + (nt.prototype.d = function (t, e, n) { + var r, + i = this.buffer, + o = this.index, + a = this.m, + s = i[o]; + if ( + (n && + 1 < e && + (t = + 8 < e + ? ((l[255 & t] << 24) | + (l[(t >>> 8) & 255] << 16) | + (l[(t >>> 16) & 255] << 8) | + l[(t >>> 24) & 255]) >> + (32 - e) + : l[t] >> (8 - e)), + e + a < 8) + ) + (s = (s << e) | t), (a += e); + else + for (r = 0; r < e; ++r) + (s = (s << 1) | ((t >> (e - r - 1)) & 1)), + 8 == ++a && + ((a = 0), + (i[o++] = l[s]), + (s = 0), + o === i.length && (i = this.f())); + (i[o] = s), (this.buffer = i), (this.m = a), (this.index = o); + }), + (nt.prototype.finish = function () { + var t = this.buffer, + e = this.index; + return ( + 0 < this.m && ((t[e] <<= 8 - this.m), (t[e] = l[t[e]]), e++), + et ? t.subarray(0, e) : ((t.length = e), t) + ); + }); + for (var D = new (et ? Uint8Array : Array)(256), t = 0; t < 256; ++t) { + for (var e = (n = t), S = 7, n = n >>> 1; n; n >>>= 1) + (e = (e << 1) | (1 & n)), --S; + D[t] = ((e << S) & 255) >>> 0; + } + var l = D; + function v(t, e, n) { + for ( + var r = 'number' == typeof e ? e : (e = 0), + n = 'number' == typeof n ? n : t.length, + i = -1, + r = 7 & n; + r--; + ++e + ) + i = (i >>> 8) ^ o[255 & (i ^ t[e])]; + for (r = n >> 3; r--; e += 8) + i = + ((i = + ((i = + ((i = + ((i = + ((i = + ((i = + ((i = (i >>> 8) ^ o[255 & (i ^ t[e])]) >>> 8) ^ + o[255 & (i ^ t[e + 1])]) >>> + 8) ^ + o[255 & (i ^ t[e + 2])]) >>> + 8) ^ + o[255 & (i ^ t[e + 3])]) >>> + 8) ^ + o[255 & (i ^ t[e + 4])]) >>> + 8) ^ + o[255 & (i ^ t[e + 5])]) >>> + 8) ^ + o[255 & (i ^ t[e + 6])]) >>> + 8) ^ + o[255 & (i ^ t[e + 7])]; + return (4294967295 ^ i) >>> 0; + } + var r = [ + 0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685, + 2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995, + 2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648, + 2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990, + 1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755, + 2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145, + 1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206, + 2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980, + 1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705, + 3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527, + 1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772, + 4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290, + 251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719, + 3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925, + 453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202, + 4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960, + 984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733, + 3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467, + 855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048, + 3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054, + 702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443, + 3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945, + 2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430, + 2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580, + 2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225, + 1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143, + 2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732, + 1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850, + 2936675148, 906185462, 1090812512, 3747672003, 2825379669, 829329135, + 1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109, + 3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954, + 1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920, + 3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877, + 83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603, + 3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992, + 534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934, + 4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795, + 376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105, + 3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270, + 936918e3, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, + 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, + 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, + 3272380065, 1510334235, 755167117, + ], + o = et ? new Uint32Array(r) : r; + function b() {} + function c(t) { + (this.buffer = new (et ? Uint16Array : Array)(2 * t)), (this.length = 0); + } + function y(t) { + for ( + var e, + n, + r, + i, + o, + a, + s, + l, + u, + c = t.length, + A = 0, + h = Number.POSITIVE_INFINITY, + p = 0; + p < c; + ++p + ) + t[p] > A && (A = t[p]), t[p] < h && (h = t[p]); + for ( + e = 1 << A, n = new (et ? Uint32Array : Array)(e), r = 1, i = 0, o = 2; + r <= A; + + ) { + for (p = 0; p < c; ++p) + if (t[p] === r) { + for (s = i, l = a = 0; l < r; ++l) + (a = (a << 1) | (1 & s)), (s >>= 1); + for (u = (r << 16) | p, l = a; l < e; l += o) n[l] = u; + ++i; + } + ++r, (i <<= 1), (o <<= 1); + } + return [n, A, h]; + } + function A(t, e) { + (this.k = rt), + (this.I = 0), + (this.input = et && t instanceof Array ? new Uint8Array(t) : t), + (this.b = 0), + e && + (e.lazy && (this.I = e.lazy), + 'number' == typeof e.compressionType && (this.k = e.compressionType), + e.outputBuffer && + (this.a = + et && e.outputBuffer instanceof Array + ? new Uint8Array(e.outputBuffer) + : e.outputBuffer), + 'number' == typeof e.outputIndex && (this.b = e.outputIndex)), + this.a || (this.a = new (et ? Uint8Array : Array)(32768)); + } + (b.prototype.getName = function () { + return this.name; + }), + (b.prototype.getData = function () { + return this.data; + }), + (b.prototype.Y = function () { + return this.Z; + }), + a('Zlib.GunzipMember', b), + a('Zlib.GunzipMember.prototype.getName', b.prototype.getName), + a('Zlib.GunzipMember.prototype.getData', b.prototype.getData), + a('Zlib.GunzipMember.prototype.getMtime', b.prototype.Y), + (c.prototype.getParent = function (t) { + return 2 * (((t - 2) / 4) | 0); + }), + (c.prototype.push = function (t, e) { + var n, + r, + i = this.buffer, + o = this.length; + for ( + i[this.length++] = e, i[this.length++] = t; + 0 < o && ((n = this.getParent(o)), i[o] > i[n]); + + ) + (r = i[o]), + (i[o] = i[n]), + (i[n] = r), + (r = i[o + 1]), + (i[o + 1] = i[n + 1]), + (i[n + 1] = r), + (o = n); + return this.length; + }), + (c.prototype.pop = function () { + var t, + e, + n, + r = this.buffer, + i = r[0], + o = r[1]; + for ( + this.length -= 2, + r[0] = r[this.length], + r[1] = r[this.length + 1], + n = 0; + !((e = 2 * n + 2) >= this.length) && + (e + 2 < this.length && r[e + 2] > r[e] && (e += 2), r[e] > r[n]); + + ) + (t = r[n]), + (r[n] = r[e]), + (r[e] = t), + (t = r[n + 1]), + (r[n + 1] = r[e + 1]), + (r[e + 1] = t), + (n = e); + return { index: o, value: i, length: this.length }; + }); + for ( + var rt = 2, r = { NONE: 0, v: 1, o: rt, ba: 3 }, it = [], i = 0; + i < 288; + i++ + ) + switch (tt) { + case i <= 143: + it.push([i + 48, 8]); + break; + case i <= 255: + it.push([i - 144 + 400, 9]); + break; + case i <= 279: + it.push([i - 256, 7]); + break; + case i <= 287: + it.push([i - 280 + 192, 8]); + break; + default: + X('invalid literal: ' + i); + } + function k(t, e) { + (this.length = t), (this.Q = e); + } + A.prototype.g = function () { + var t, + e, + U, + n = this.input; + switch (this.k) { + case 0: + for (e = 0, U = n.length; e < U; ) { + var N, + P, + r = (i = et ? n.subarray(e, e + 65535) : n.slice(e, e + 65535)), + i = (e += i.length) === U, + o = $, + a = this.a, + s = this.b; + if (et) { + for ( + a = new Uint8Array(this.a.buffer); + a.length <= s + r.length + 5; + + ) + a = new Uint8Array(a.length << 1); + a.set(this.a); + } + if ( + ((a[s++] = 0 | (i ? 1 : 0)), + (N = (65536 + ~(i = r.length)) & 65535), + (a[s++] = 255 & i), + (a[s++] = (i >>> 8) & 255), + (a[s++] = 255 & N), + (a[s++] = (N >>> 8) & 255), + et) + ) + a.set(r, s), (s += r.length), (a = a.subarray(0, s)); + else { + for (o = 0, P = r.length; o < P; ++o) a[s++] = r[o]; + a.length = s; + } + (this.b = s), (this.a = a); + } + break; + case 1: + for ( + var l, + u = new nt(et ? new Uint8Array(this.a.buffer) : this.a, this.b), + c = (u.d(1, 1, tt), u.d(1, 2, tt), st(this, n)), + A = 0, + L = c.length; + A < L; + A++ + ) + if (((l = c[A]), nt.prototype.d.apply(u, it[l]), 256 < l)) + u.d(c[++A], c[++A], tt), u.d(c[++A], 5), u.d(c[++A], c[++A], tt); + else if (256 === l) break; + (this.a = u.finish()), (this.b = this.a.length); + break; + case rt: + var h, + p, + d, + f, + g, + m, + v, + Y, + b, + y, + w, + O, + E = new nt(et ? new Uint8Array(this.a.buffer) : this.a, this.b), + G = [ + 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15, + ], + z = Array(19), + B = rt; + for ( + E.d(1, 1, tt), + E.d(B, 2, tt), + h = st(this, n), + B = at((g = ot(this.W, 15))), + T = at((m = ot(this.V, 7))), + p = 286; + 257 < p && 0 === g[p - 1]; + p-- + ); + for (d = 30; 1 < d && 0 === m[d - 1]; d--); + for ( + var C, + x, + I, + M, + D, + H = p, + j = d, + S = new (et ? Uint32Array : Array)(H + j), + k = new (et ? Uint32Array : Array)(316), + F = new (et ? Uint8Array : Array)(19), + Q = (C = 0); + Q < H; + Q++ + ) + S[C++] = g[Q]; + for (Q = 0; Q < j; Q++) S[C++] = m[Q]; + if (!et) for (Q = 0, I = F.length; Q < I; ++Q) F[Q] = 0; + for (Q = M = 0, I = S.length; Q < I; Q += C) { + for (C = 1; Q + C < I && S[Q + C] === S[Q]; ++C); + if (((x = C), 0 === S[Q])) + if (x < 3) for (; 0 < x--; ) F[(k[M++] = 0)]++; + else + for (; 0 < x; ) + (D = x - 3 < (D = x < 138 ? x : 138) && D < x ? x - 3 : D) <= 10 + ? ((k[M++] = 17), (k[M++] = D - 3), F[17]++) + : ((k[M++] = 18), (k[M++] = D - 11), F[18]++), + (x -= D); + else if (((k[M++] = S[Q]), F[S[Q]]++, --x < 3)) + for (; 0 < x--; ) (k[M++] = S[Q]), F[S[Q]]++; + else + for (; 0 < x; ) + x - 3 < (D = x < 6 ? x : 6) && D < x && (D = x - 3), + (k[M++] = 16), + (k[M++] = D - 3), + F[16]++, + (x -= D); + } + for ( + t = et ? k.subarray(0, M) : k.slice(0, M), v = ot(F, 7), w = 0; + w < 19; + w++ + ) + z[w] = v[G[w]]; + for (f = 19; 4 < f && 0 === z[f - 1]; f--); + for ( + Y = at(v), + E.d(p - 257, 5, tt), + E.d(d - 1, 5, tt), + E.d(f - 4, 4, tt), + w = 0; + w < f; + w++ + ) + E.d(z[w], 3, tt); + for (w = 0, O = t.length; w < O; w++) + if (((b = t[w]), E.d(Y[b], v[b], tt), 16 <= b)) { + switch ((w++, b)) { + case 16: + y = 2; + break; + case 17: + y = 3; + break; + case 18: + y = 7; + break; + default: + X('invalid code: ' + b); + } + E.d(t[w], y, tt); + } + for ( + var _, + V, + B = [B, g], + T = [T, m], + q = B[0], + W = B[1], + J = T[0], + K = T[1], + R = 0, + Z = h.length; + R < Z; + ++R + ) + if (((_ = h[R]), E.d(q[_], W[_], tt), 256 < _)) + E.d(h[++R], h[++R], tt), + (V = h[++R]), + E.d(J[V], K[V], tt), + E.d(h[++R], h[++R], tt); + else if (256 === _) break; + (this.a = E.finish()), (this.b = this.a.length); + break; + default: + X('invalid compression type'); + } + return this.a; + }; + var s = (function () { + for (var t, e = [], n = 3; n <= 258; n++) + (t = (function (t) { + switch (tt) { + case 3 === t: + return [257, t - 3, 0]; + case 4 === t: + return [258, t - 4, 0]; + case 5 === t: + return [259, t - 5, 0]; + case 6 === t: + return [260, t - 6, 0]; + case 7 === t: + return [261, t - 7, 0]; + case 8 === t: + return [262, t - 8, 0]; + case 9 === t: + return [263, t - 9, 0]; + case 10 === t: + return [264, t - 10, 0]; + case t <= 12: + return [265, t - 11, 1]; + case t <= 14: + return [266, t - 13, 1]; + case t <= 16: + return [267, t - 15, 1]; + case t <= 18: + return [268, t - 17, 1]; + case t <= 22: + return [269, t - 19, 2]; + case t <= 26: + return [270, t - 23, 2]; + case t <= 30: + return [271, t - 27, 2]; + case t <= 34: + return [272, t - 31, 2]; + case t <= 42: + return [273, t - 35, 3]; + case t <= 50: + return [274, t - 43, 3]; + case t <= 58: + return [275, t - 51, 3]; + case t <= 66: + return [276, t - 59, 3]; + case t <= 82: + return [277, t - 67, 4]; + case t <= 98: + return [278, t - 83, 4]; + case t <= 114: + return [279, t - 99, 4]; + case t <= 130: + return [280, t - 115, 4]; + case t <= 162: + return [281, t - 131, 5]; + case t <= 194: + return [282, t - 163, 5]; + case t <= 226: + return [283, t - 195, 5]; + case t <= 257: + return [284, t - 227, 5]; + case 258 === t: + return [285, t - 258, 0]; + default: + X('invalid length: ' + t); + } + })(n)), + (e[n] = (t[2] << 24) | (t[1] << 16) | t[0]); + return e; + })(), + F = et ? new Uint32Array(s) : s; + function st(t, e) { + function n(t, e) { + var n, + r, + i, + o = t.Q, + a = [], + s = 0, + l = F[t.length]; + switch ( + ((a[s++] = 65535 & l), + (a[s++] = (l >> 16) & 255), + (a[s++] = l >> 24), + tt) + ) { + case 1 === o: + n = [0, o - 1, 0]; + break; + case 2 === o: + n = [1, o - 2, 0]; + break; + case 3 === o: + n = [2, o - 3, 0]; + break; + case 4 === o: + n = [3, o - 4, 0]; + break; + case o <= 6: + n = [4, o - 5, 1]; + break; + case o <= 8: + n = [5, o - 7, 1]; + break; + case o <= 12: + n = [6, o - 9, 2]; + break; + case o <= 16: + n = [7, o - 13, 2]; + break; + case o <= 24: + n = [8, o - 17, 3]; + break; + case o <= 32: + n = [9, o - 25, 3]; + break; + case o <= 48: + n = [10, o - 33, 4]; + break; + case o <= 64: + n = [11, o - 49, 4]; + break; + case o <= 96: + n = [12, o - 65, 5]; + break; + case o <= 128: + n = [13, o - 97, 5]; + break; + case o <= 192: + n = [14, o - 129, 6]; + break; + case o <= 256: + n = [15, o - 193, 6]; + break; + case o <= 384: + n = [16, o - 257, 7]; + break; + case o <= 512: + n = [17, o - 385, 7]; + break; + case o <= 768: + n = [18, o - 513, 8]; + break; + case o <= 1024: + n = [19, o - 769, 8]; + break; + case o <= 1536: + n = [20, o - 1025, 9]; + break; + case o <= 2048: + n = [21, o - 1537, 9]; + break; + case o <= 3072: + n = [22, o - 2049, 10]; + break; + case o <= 4096: + n = [23, o - 3073, 10]; + break; + case o <= 6144: + n = [24, o - 4097, 11]; + break; + case o <= 8192: + n = [25, o - 6145, 11]; + break; + case o <= 12288: + n = [26, o - 8193, 12]; + break; + case o <= 16384: + n = [27, o - 12289, 12]; + break; + case o <= 24576: + n = [28, o - 16385, 13]; + break; + case o <= 32768: + n = [29, o - 24577, 13]; + break; + default: + X('invalid distance'); + } + for ( + l = n, a[s++] = l[0], a[+s] = l[1], a[5] = l[2], r = 0, i = a.length; + r < i; + ++r + ) + p[d++] = a[r]; + g[a[0]]++, m[a[3]]++, (f = t.length + e - 1), (c = null); + } + var r, + i, + o, + a, + s, + l, + u, + c, + A, + h = {}, + p = et ? new Uint16Array(2 * e.length) : [], + d = 0, + f = 0, + g = new (et ? Uint32Array : Array)(286), + m = new (et ? Uint32Array : Array)(30), + v = t.I; + if (!et) { + for (o = 0; o <= 285; ) g[o++] = 0; + for (o = 0; o <= 29; ) m[o++] = 0; + } + for (g[256] = 1, r = 0, i = e.length; r < i; ++r) { + for (o = s = 0, a = 3; o < a && r + o !== i; ++o) s = (s << 8) | e[r + o]; + if ((h[s] === $ && (h[s] = []), (l = h[s]), !(0 < f--))) { + for (; 0 < l.length && 32768 < r - l[0]; ) l.shift(); + if (i <= r + 3) { + for (c && n(c, -1), o = 0, a = i - r; o < a; ++o) + (A = e[r + o]), (p[d++] = A), ++g[A]; + break; + } + 0 < l.length + ? ((u = (function (t, e, n) { + var r, + i, + o, + a, + s, + l, + u = 0, + c = t.length; + (a = 0), (l = n.length); + t: for (; a < l; a++) { + if (((r = n[l - a - 1]), (o = 3) < u)) { + for (s = u; 3 < s; s--) + if (t[r + s - 1] !== t[e + s - 1]) continue t; + o = u; + } + for (; o < 258 && e + o < c && t[r + o] === t[e + o]; ) ++o; + if ((u < o && ((i = r), (u = o)), 258 === o)) break; + } + return new k(u, e - i); + })(e, r, l)), + c + ? c.length < u.length + ? ((A = e[r - 1]), (p[d++] = A), ++g[A], n(u, 0)) + : n(c, -1) + : u.length < v + ? (c = u) + : n(u, 0)) + : c + ? n(c, -1) + : ((A = e[r]), (p[d++] = A), ++g[A]); + } + l.push(r); + } + return ( + (p[d++] = 256), g[256]++, (t.W = g), (t.V = m), et ? p.subarray(0, d) : p + ); + } + function ot(t, e) { + var n, + r, + i, + o, + a, + s = t.length, + l = new c(572), + u = new (et ? Uint8Array : Array)(s); + if (!et) for (o = 0; o < s; o++) u[o] = 0; + for (o = 0; o < s; ++o) 0 < t[o] && l.push(o, t[o]); + if ( + ((n = Array(l.length / 2)), + (r = new (et ? Uint32Array : Array)(l.length / 2)), + 1 === n.length) + ) + return (u[l.pop().index] = 1), u; + for (o = 0, a = l.length / 2; o < a; ++o) + (n[o] = l.pop()), (r[o] = n[o].value); + for ( + i = (function (t, r, e) { + var n, + i, + o, + a, + s, + l = new (et ? Uint16Array : Array)(e), + u = new (et ? Uint8Array : Array)(e), + c = new (et ? Uint8Array : Array)(r), + A = Array(e), + h = Array(e), + p = Array(e), + d = (1 << e) - r, + f = 1 << (e - 1); + for (l[e - 1] = r, i = 0; i < e; ++i) + d < f ? (u[i] = 0) : ((u[i] = 1), (d -= f)), + (d <<= 1), + (l[e - 2 - i] = ((l[e - 1 - i] / 2) | 0) + r); + for ( + l[0] = u[0], A[0] = Array(l[0]), h[0] = Array(l[0]), i = 1; + i < e; + ++i + ) + l[i] > 2 * l[i - 1] + u[i] && (l[i] = 2 * l[i - 1] + u[i]), + (A[i] = Array(l[i])), + (h[i] = Array(l[i])); + for (n = 0; n < r; ++n) c[n] = e; + for (o = 0; o < l[e - 1]; ++o) (A[e - 1][o] = t[o]), (h[e - 1][o] = o); + for (n = 0; n < e; ++n) p[n] = 0; + for (1 === u[e - 1] && (--c[0], ++p[e - 1]), i = e - 2; 0 <= i; --i) { + for (a = n = 0, s = p[i + 1], o = 0; o < l[i]; o++) + (a = A[i + 1][s] + A[i + 1][s + 1]) > t[n] + ? ((A[i][o] = a), (h[i][o] = r), (s += 2)) + : ((A[i][o] = t[n]), (h[i][o] = n), ++n); + (p[i] = 0), + 1 === u[i] && + (function t(e) { + var n = h[e][p[e]]; + n === r ? (t(e + 1), t(e + 1)) : --c[n], ++p[e]; + })(i); + } + return c; + })(r, r.length, e), + o = 0, + a = n.length; + o < a; + ++o + ) + u[n[o].index] = i[o]; + return u; + } + function at(t) { + for ( + var e, + n, + r = new (et ? Uint16Array : Array)(t.length), + i = [], + o = [], + a = 0, + s = 0, + l = t.length; + s < l; + s++ + ) + i[t[s]] = 1 + (0 | i[t[s]]); + for (s = 1, l = 16; s <= l; s++) a = ((o[s] = a) + (0 | i[s])) << 1; + for (s = 0, l = t.length; s < l; s++) + for (a = o[t[s]], o[t[s]] += 1, e = r[s] = 0, n = t[s]; e < n; e++) + (r[s] = (r[s] << 1) | (1 & a)), (a >>>= 1); + return r; + } + function u(t, e) { + (this.input = t), + (this.b = this.c = 0), + (this.i = {}), + e && + (e.flags && (this.i = e.flags), + 'string' == typeof e.filename && (this.filename = e.filename), + 'string' == typeof e.comment && (this.A = e.comment), + e.deflateOptions && (this.l = e.deflateOptions)), + this.l || (this.l = {}); + } + u.prototype.g = function () { + var t, + e, + n, + r, + i = new (et ? Uint8Array : Array)(32768), + o = 0, + a = this.input, + s = this.c, + l = this.filename, + u = this.A; + if ( + ((i[o++] = 31), + (i[o++] = 139), + (i[o++] = 8), + (t = 0), + this.i.fname && (t |= T), + this.i.fcomment && (t |= R), + this.i.fhcrc && (t |= _), + (i[o++] = t), + (t = ((Date.now ? Date.now() : +new Date()) / 1e3) | 0), + (i[o++] = 255 & t), + (i[o++] = (t >>> 8) & 255), + (i[o++] = (t >>> 16) & 255), + (i[o++] = (t >>> 24) & 255), + (i[o++] = 0), + (i[o++] = Q), + this.i.fname !== $) + ) { + for (n = 0, r = l.length; n < r; ++n) + 255 < (e = l.charCodeAt(n)) && (i[o++] = (e >>> 8) & 255), + (i[o++] = 255 & e); + i[o++] = 0; + } + if (this.i.comment) { + for (n = 0, r = u.length; n < r; ++n) + 255 < (e = u.charCodeAt(n)) && (i[o++] = (e >>> 8) & 255), + (i[o++] = 255 & e); + i[o++] = 0; + } + return ( + this.i.fhcrc && + ((t = 65535 & v(i, 0, o)), + (i[o++] = 255 & t), + (i[o++] = (t >>> 8) & 255)), + (this.l.outputBuffer = i), + (this.l.outputIndex = o), + (i = (t = new A(a, this.l)).g()), + (o = t.b), + et && + (i = + o + 8 > i.buffer.byteLength + ? ((this.a = new Uint8Array(o + 8)), + this.a.set(new Uint8Array(i.buffer)), + this.a) + : new Uint8Array(i.buffer)), + (t = v(a, $, $)), + (i[o++] = 255 & t), + (i[o++] = (t >>> 8) & 255), + (i[o++] = (t >>> 16) & 255), + (i[o++] = (t >>> 24) & 255), + (r = a.length), + (i[o++] = 255 & r), + (i[o++] = (r >>> 8) & 255), + (i[o++] = (r >>> 16) & 255), + (i[o++] = (r >>> 24) & 255), + (this.c = s), + et && o < i.length && (this.a = i = i.subarray(0, o)), + i + ); + }; + var Q = 255, + _ = 2, + T = 8, + R = 16; + function w(t, e) { + switch ( + ((this.p = []), + (this.q = 32768), + (this.e = this.j = this.c = this.u = 0), + (this.input = et ? new Uint8Array(t) : t), + (this.w = !1), + (this.r = E), + (this.M = !1), + e + ? (e.index && (this.c = e.index), + e.bufferSize && (this.q = e.bufferSize), + e.bufferType && (this.r = e.bufferType), + e.resize && (this.M = e.resize)) + : (e = {}), + this.r) + ) { + case U: + (this.b = 32768), + (this.a = new (et ? Uint8Array : Array)(32768 + this.q + 258)); + break; + case E: + (this.b = 0), + (this.a = new (et ? Uint8Array : Array)(this.q)), + (this.f = this.U), + (this.B = this.R), + (this.s = this.T); + break; + default: + X(Error('invalid inflate mode')); + } + } + a('Zlib.Gzip', u), a('Zlib.Gzip.prototype.compress', u.prototype.g); + for ( + var U = 0, + E = 1, + s = U, + N = E, + h = + ((w.prototype.h = function () { + for (; !this.w; ) { + var t = B(this, 3); + switch ((1 & t && (this.w = tt), (t >>>= 1))) { + case 0: + var e = this.input, + n = this.c, + r = this.a, + i = this.b, + o = e.length, + a = $, + s = r.length, + l = $; + switch ( + ((this.e = this.j = 0), + o <= n + 1 && + X(Error('invalid uncompressed block header: LEN')), + (a = e[n++] | (e[n++] << 8)), + o <= n + 1 && + X(Error('invalid uncompressed block header: NLEN')), + a === ~(e[n++] | (e[n++] << 8)) && + X( + Error('invalid uncompressed block header: length verify'), + ), + n + a > e.length && X(Error('input buffer is broken')), + this.r) + ) { + case U: + for (; i + a > r.length; ) { + if (((a -= l = s - i), et)) + r.set(e.subarray(n, n + l), i), (i += l), (n += l); + else for (; l--; ) r[i++] = e[n++]; + (this.b = i), (r = this.f()), (i = this.b); + } + break; + case E: + for (; i + a > r.length; ) r = this.f({ F: 2 }); + break; + default: + X(Error('invalid inflate mode')); + } + if (et) r.set(e.subarray(n, n + a), i), (i += a), (n += a); + else for (; a--; ) r[i++] = e[n++]; + (this.c = n), (this.b = i), (this.a = r); + break; + case 1: + this.s(z, q); + break; + case 2: + h = A = c = u = m = g = f = o = p = void 0; + var u, + c, + A, + h, + p = this, + d = function (t, e, n) { + for (var r, i, o = this.J, a = 0; a < t; ) + switch (((r = C(this, e)), r)) { + case 16: + for (i = 3 + B(this, 2); i--; ) n[a++] = o; + break; + case 17: + for (i = 3 + B(this, 3); i--; ) n[a++] = 0; + o = 0; + break; + case 18: + for (i = 11 + B(this, 7); i--; ) n[a++] = 0; + o = 0; + break; + default: + o = n[a++] = r; + } + return (this.J = o), n; + }, + o = B(p, 5) + 257, + f = B(p, 5) + 1, + g = B(p, 4) + 4, + m = new (et ? Uint8Array : Array)(P.length); + for (h = 0; h < g; ++h) m[P[h]] = B(p, 3); + if (!et) for (h = g, g = m.length; h < g; ++h) m[P[h]] = 0; + (u = y(m)), + (c = new (et ? Uint8Array : Array)(o)), + (A = new (et ? Uint8Array : Array)(f)), + (p.J = 0), + p.s(y(d.call(p, o, u, c)), y(d.call(p, f, u, A))); + break; + default: + X(Error('unknown BTYPE: ' + t)); + } + } + return this.B(); + }), + [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), + P = et ? new Uint16Array(h) : h, + h = [ + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, + 67, 83, 99, 115, 131, 163, 195, 227, 258, 258, 258, + ], + L = et ? new Uint16Array(h) : h, + h = [ + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, + 5, 5, 5, 5, 0, 0, 0, + ], + p = et ? new Uint8Array(h) : h, + h = [ + 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, + 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, + ], + Y = et ? new Uint16Array(h) : h, + h = [ + 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, + 10, 11, 11, 12, 12, 13, 13, + ], + d = et ? new Uint8Array(h) : h, + O = new (et ? Uint8Array : Array)(288), + f = 0, + G = O.length; + f < G; + ++f + ) + O[f] = f <= 143 ? 8 : f <= 255 ? 9 : f <= 279 ? 7 : 8; + for ( + var z = y(O), H = new (et ? Uint8Array : Array)(30), j = 0, V = H.length; + j < V; + ++j + ) + H[j] = 5; + var q = y(H); + function B(t, e) { + for (var n, r = t.j, i = t.e, o = t.input, a = t.c, s = o.length; i < e; ) + s <= a && X(Error('input buffer is broken')), + (r |= o[a++] << i), + (i += 8); + return ( + (n = r & ((1 << e) - 1)), (t.j = r >>> e), (t.e = i - e), (t.c = a), n + ); + } + function C(t, e) { + for ( + var n = t.j, + r = t.e, + i = t.input, + o = t.c, + a = i.length, + s = e[0], + l = e[1]; + r < l && !(a <= o); + + ) + (n |= i[o++] << r), (r += 8); + return ( + (e = s[n & ((1 << l) - 1)]), + (t.j = n >> (s = e >>> 16)), + (t.e = r - s), + (t.c = o), + 65535 & e + ); + } + function g(t) { + (this.input = t), (this.c = 0), (this.t = []), (this.D = !1); + } + function W(t) { + if ('string' == typeof t) { + for (var e = t.split(''), n = 0, r = e.length; n < r; n++) + e[n] = (255 & e[n].charCodeAt(0)) >>> 0; + t = e; + } + for (var i, o = 1, a = 0, s = t.length, l = 0; 0 < s; ) { + for (s -= i = 1024 < s ? 1024 : s; (a += o += t[l++]), --i; ); + (o %= 65521), (a %= 65521); + } + return ((a << 16) | o) >>> 0; + } + function J(t, e) { + var n, r; + (this.input = t), + (this.c = 0), + e + ? (e.index && (this.c = e.index), e.verify && (this.$ = e.verify)) + : (e = {}), + (n = t[this.c++]), + (r = t[this.c++]), + (15 & n) === m + ? (this.method = m) + : X(Error('unsupported compression method')), + 0 != ((n << 8) + r) % 31 && + X(Error('invalid fcheck flag:' + (((n << 8) + r) % 31))), + 32 & r && X(Error('fdict flag is not supported')), + (this.L = new w(t, { + index: this.c, + bufferSize: e.bufferSize, + bufferType: e.bufferType, + resize: e.resize, + })); + } + (w.prototype.s = function (t, e) { + var n = this.a, + r = this.b; + this.C = t; + for (var i, o, a, s, l = n.length - 258; 256 !== (i = C(this, t)); ) + if (i < 256) + l <= r && ((this.b = r), (n = this.f()), (r = this.b)), (n[r++] = i); + else + for ( + s = L[(o = i - 257)], + 0 < p[o] && (s += B(this, p[o])), + i = C(this, e), + a = Y[i], + 0 < d[i] && (a += B(this, d[i])), + l <= r && ((this.b = r), (n = this.f()), (r = this.b)); + s--; + + ) + n[r] = n[r++ - a]; + for (; 8 <= this.e; ) (this.e -= 8), this.c--; + this.b = r; + }), + (w.prototype.T = function (t, e) { + var n = this.a, + r = this.b; + this.C = t; + for (var i, o, a, s, l = n.length; 256 !== (i = C(this, t)); ) + if (i < 256) l <= r && (l = (n = this.f()).length), (n[r++] = i); + else + for ( + s = L[(o = i - 257)], + 0 < p[o] && (s += B(this, p[o])), + i = C(this, e), + a = Y[i], + 0 < d[i] && (a += B(this, d[i])), + l < r + s && (l = (n = this.f()).length); + s--; + + ) + n[r] = n[r++ - a]; + for (; 8 <= this.e; ) (this.e -= 8), this.c--; + this.b = r; + }), + (w.prototype.f = function () { + var t, + e, + n = new (et ? Uint8Array : Array)(this.b - 32768), + r = this.b - 32768, + i = this.a; + if (et) n.set(i.subarray(32768, n.length)); + else for (t = 0, e = n.length; t < e; ++t) n[t] = i[t + 32768]; + if ((this.p.push(n), (this.u += n.length), et)) + i.set(i.subarray(r, 32768 + r)); + else for (t = 0; t < 32768; ++t) i[t] = i[r + t]; + return (this.b = 32768), i; + }), + (w.prototype.U = function (t) { + var e, + n = (this.input.length / this.c + 1) | 0, + r = this.input, + i = this.a; + return ( + t && + ('number' == typeof t.F && (n = t.F), + 'number' == typeof t.P && (n += t.P)), + (r = + n < 2 + ? (t = (((r.length - this.c) / this.C[2] / 2) * 258) | 0) < i.length + ? i.length + t + : i.length << 1 + : i.length * n), + et ? (e = new Uint8Array(r)).set(i) : (e = i), + (this.a = e) + ); + }), + (w.prototype.B = function () { + var t, + e, + n, + r, + i, + o = 0, + a = this.a, + s = this.p, + l = new (et ? Uint8Array : Array)(this.u + (this.b - 32768)); + if (0 === s.length) + return et + ? this.a.subarray(32768, this.b) + : this.a.slice(32768, this.b); + for (e = 0, n = s.length; e < n; ++e) + for (r = 0, i = (t = s[e]).length; r < i; ++r) l[o++] = t[r]; + for (e = 32768, n = this.b; e < n; ++e) l[o++] = a[e]; + return (this.p = []), (this.buffer = l); + }), + (w.prototype.R = function () { + var t, + e = this.b; + return ( + et + ? this.M + ? (t = new Uint8Array(e)).set(this.a.subarray(0, e)) + : (t = this.a.subarray(0, e)) + : (this.a.length > e && (this.a.length = e), (t = this.a)), + (this.buffer = t) + ); + }), + (g.prototype.X = function () { + return this.D || this.h(), this.t.slice(); + }), + (g.prototype.h = function () { + for (var t = this.input.length; this.c < t; ) { + var e, + n = new b(), + r = $, + i = $, + o = $, + a = $, + s = $, + l = $, + u = $, + c = this.input, + A = this.c; + if ( + ((n.G = c[A++]), + (n.H = c[A++]), + (31 === n.G && 139 === n.H) || + X(Error('invalid file signature:' + n.G + ',' + n.H)), + (n.z = c[A++]), + 8 !== n.z && X(Error('unknown compression method: ' + n.z)), + (n.n = c[A++]), + (e = c[A++] | (c[A++] << 8) | (c[A++] << 16) | (c[A++] << 24)), + (n.Z = new Date(1e3 * e)), + (n.fa = c[A++]), + (n.ea = c[A++]), + 0 < (4 & n.n) && ((n.aa = c[A++] | (c[A++] << 8)), (A += n.aa)), + 0 < (n.n & T)) + ) { + for (l = [], s = 0; 0 < (a = c[A++]); ) + l[s++] = String.fromCharCode(a); + n.name = l.join(''); + } + if (0 < (n.n & R)) { + for (l = [], s = 0; 0 < (a = c[A++]); ) + l[s++] = String.fromCharCode(a); + n.A = l.join(''); + } + 0 < (n.n & _) && + ((n.S = 65535 & v(c, 0, A)), + n.S !== (c[A++] | (c[A++] << 8)) && X(Error('invalid header crc16'))), + (r = + c[c.length - 4] | + (c[c.length - 3] << 8) | + (c[c.length - 2] << 16) | + (c[c.length - 1] << 24)), + (i = new w(c, { + index: A, + bufferSize: (o = c.length - A - 4 - 4 < 512 * r ? r : o), + })), + (n.data = e = i.h()), + (A = i.c), + (n.ca = u = + (c[A++] | (c[A++] << 8) | (c[A++] << 16) | (c[A++] << 24)) >>> 0), + v(e, $, $) !== u && + X( + Error( + 'invalid CRC-32 checksum: 0x' + + v(e, $, $).toString(16) + + ' / 0x' + + u.toString(16), + ), + ), + (n.da = r = + (c[A++] | (c[A++] << 8) | (c[A++] << 16) | (c[A++] << 24)) >>> 0), + (4294967295 & e.length) !== r && + X( + Error( + 'invalid input size: ' + (4294967295 & e.length) + ' / ' + r, + ), + ), + this.t.push(n), + (this.c = A); + } + this.D = tt; + for (var h, p = this.t, d = 0, f = 0, g = 0, m = p.length; g < m; ++g) + f += p[g].data.length; + if (et) + for (h = new Uint8Array(f), g = 0; g < m; ++g) + h.set(p[g].data, d), (d += p[g].data.length); + else { + for (h = [], g = 0; g < m; ++g) h[g] = p[g].data; + h = Array.prototype.concat.apply([], h); + } + return h; + }), + a('Zlib.Gunzip', g), + a('Zlib.Gunzip.prototype.decompress', g.prototype.h), + a('Zlib.Gunzip.prototype.getMembers', g.prototype.X), + (J.prototype.h = function () { + var t = this.input, + e = this.L.h(); + return ( + (this.c = this.L.c), + this.$ && + ((t[this.c++] << 24) | + (t[this.c++] << 16) | + (t[this.c++] << 8) | + t[this.c++]) >>> + 0 !== + W(e) && + X(Error('invalid adler-32 checksum')), + e + ); + }); + var m = 8; + function x(t, e) { + (this.input = t), + (this.a = new (et ? Uint8Array : Array)(32768)), + (this.k = I.o); + var n, + r = {}; + for (n in ((e ? 'number' == typeof e.compressionType : ((e = {}), 0)) && + (this.k = e.compressionType), + e)) + r[n] = e[n]; + (r.outputBuffer = this.a), (this.K = new A(this.input, r)); + } + var I = r; + function K(t, e) { + var n, r, i, o; + if (Object.keys) n = Object.keys(e); + else for (r in ((n = []), (i = 0), e)) n[i++] = r; + for (i = 0, o = n.length; i < o; ++i) a(t + '.' + (r = n[i]), e[r]); + } + (x.prototype.g = function () { + var t, + e, + n = 0, + r = this.a, + i = m; + if ( + (i === m + ? (e = Math.LOG2E * Math.log(32768) - 8) + : X(Error('invalid compression method')), + (r[n++] = e = (e << 4) | i), + i === m) + ) + switch (this.k) { + case I.NONE: + t = 0; + break; + case I.v: + t = 1; + break; + case I.o: + t = 2; + break; + default: + X(Error('unsupported compression type')); + } + else X(Error('invalid compression method')); + return ( + (r[n++] = (i = (t << 6) | 0) | (31 - ((256 * e + i) % 31))), + (e = W(this.input)), + (this.K.b = n), + (n = (r = this.K.g()).length), + et && + ((r = new Uint8Array(r.buffer)).length <= n + 4 && + ((this.a = new Uint8Array(r.length + 4)), + this.a.set(r), + (r = this.a)), + (r = r.subarray(0, n + 4))), + (r[n++] = (e >> 24) & 255), + (r[n++] = (e >> 16) & 255), + (r[n++] = (e >> 8) & 255), + (r[n++] = 255 & e), + r + ); + }), + a('Zlib.Inflate', J), + a('Zlib.Inflate.prototype.decompress', J.prototype.h), + K('Zlib.Inflate.BufferType', { ADAPTIVE: N, BLOCK: s }), + a('Zlib.Deflate', x), + a('Zlib.Deflate.compress', function (t, e) { + return new x(t, e).g(); + }), + a('Zlib.Deflate.prototype.compress', x.prototype.g), + K('Zlib.Deflate.CompressionType', { + NONE: I.NONE, + FIXED: I.v, + DYNAMIC: I.o, + }); + }.call(r), + r.Zlib), + Mr = + ((yr = {}), + (wr = {}), + (function (t) { + 'object' == typeof yr && void 0 !== wr + ? (wr.exports = t()) + : (('undefined' != typeof window + ? window + : void 0 !== Vp + ? Vp + : 'undefined' != typeof self + ? self + : this + ).React = t()); + })(function () { + return (function r(i, o, a) { + function s(e, t) { + if (!o[e]) { + if (!i[e]) { + if (l) return l(e, !0); + var n = new Error("Cannot find __module__ '" + e + "'"); + throw ((n.code = '__module___NOT_FOUND'), n); + } + n = o[e] = { exports: {} }; + i[e][0].call( + n.exports, + function (t) { + return s(i[e][1][t] || t); + }, + n, + n.exports, + r, + i, + o, + a, + ); + } + return o[e].exports; + } + for (var l = void 0, t = 0; t < a.length; t++) s(a[t]); + return s; + })( + { + 1: [ + function (t, e, n) { + e.exports = { + escape: function (t) { + var e = { '=': '=0', ':': '=2' }; + return ( + '$' + + ('' + t).replace(/[=:]/g, function (t) { + return e[t]; + }) + ); + }, + unescape: function (t) { + var e = { '=0': '=', '=2': ':' }; + return ( + '' + + ('.' === t[0] && '$' === t[1] ? t.substring(2) : t.substring(1)) + ).replace(/(=0|=2)/g, function (t) { + return e[t]; + }); + }, + }; + }, + {}, + ], + 2: [ + function (t, e, n) { + function r(t) { + var e; + return this.instancePool.length + ? ((e = this.instancePool.pop()), this.call(e, t), e) + : new this(t); + } + var i = t(19), + o = + (t(24), + function (t) { + t instanceof this || i('25'), + t.destructor(), + this.instancePool.length < this.poolSize && + this.instancePool.push(t); + }), + a = r; + e.exports = { + addPoolingTo: function (t, e) { + return ( + (t.instancePool = []), + (t.getPooled = e || a), + t.poolSize || (t.poolSize = 10), + (t.release = o), + t + ); + }, + oneArgumentPooler: r, + twoArgumentPooler: function (t, e) { + var n; + return this.instancePool.length + ? ((n = this.instancePool.pop()), this.call(n, t, e), n) + : new this(t, e); + }, + threeArgumentPooler: function (t, e, n) { + var r; + return this.instancePool.length + ? ((r = this.instancePool.pop()), this.call(r, t, e, n), r) + : new this(t, e, n); + }, + fourArgumentPooler: function (t, e, n, r) { + var i; + return this.instancePool.length + ? ((i = this.instancePool.pop()), this.call(i, t, e, n, r), i) + : new this(t, e, n, r); + }, + }; + }, + { 19: 19, 24: 24 }, + ], + 3: [ + function (t, e, n) { + var r = t(26), + i = t(4), + o = t(5), + a = t(7), + s = t(8), + l = t(11), + u = t(13), + c = t(15), + t = t(18), + A = s.createElement, + h = s.createFactory, + p = s.cloneElement, + o = { + Children: { + map: o.map, + forEach: o.forEach, + count: o.count, + toArray: o.toArray, + only: t, + }, + Component: i.Component, + PureComponent: i.PureComponent, + createElement: A, + cloneElement: p, + isValidElement: s.isValidElement, + PropTypes: l, + createClass: c, + createFactory: h, + createMixin: function (t) { + return t; + }, + DOM: a, + version: u, + __spread: r, + }; + e.exports = o; + }, + { 11: 11, 13: 13, 15: 15, 18: 18, 26: 26, 4: 4, 5: 5, 7: 7, 8: 8 }, + ], + 4: [ + function (t, e, n) { + function r(t, e, n) { + (this.props = t), + (this.context = e), + (this.refs = u), + (this.updater = n || l); + } + function i(t, e, n) { + (this.props = t), + (this.context = e), + (this.refs = u), + (this.updater = n || l); + } + function o() {} + var a = t(19), + s = t(26), + l = t(10), + u = (t(14), t(23)); + t(24), + t(17), + (r.prototype.isReactComponent = {}), + (r.prototype.setState = function (t, e) { + 'object' != typeof t && + 'function' != typeof t && + null != t && + a('85'), + this.updater.enqueueSetState(this, t), + e && this.updater.enqueueCallback(this, e, 'setState'); + }), + (r.prototype.forceUpdate = function (t) { + this.updater.enqueueForceUpdate(this), + t && this.updater.enqueueCallback(this, t, 'forceUpdate'); + }), + (o.prototype = r.prototype), + s(((i.prototype = new o()).constructor = i).prototype, r.prototype), + (i.prototype.isPureReactComponent = !0), + (e.exports = { Component: r, PureComponent: i }); + }, + { 10: 10, 14: 14, 17: 17, 19: 19, 23: 23, 24: 24, 26: 26 }, + ], + 5: [ + function (t, e, n) { + function s(t) { + return ('' + t).replace(f, '$&/'); + } + function r(t, e) { + (this.func = t), (this.context = e), (this.count = 0); + } + function i(t, e, n) { + var r = t.func, + i = t.context; + r.call(i, e, t.count++); + } + function a(t, e, n, r) { + (this.result = t), + (this.keyPrefix = e), + (this.func = n), + (this.context = r), + (this.count = 0); + } + function l(t, e, n) { + var r = t.result, + i = t.keyPrefix, + o = t.func, + a = t.context, + o = o.call(a, e, t.count++); + Array.isArray(o) + ? u(o, r, n, h.thatReturnsArgument) + : null != o && + (A.isValidElement(o) && + (o = A.cloneAndReplaceKey( + o, + i + + (!o.key || (e && e.key === o.key) ? '' : s(o.key) + '/') + + n, + )), + r.push(o)); + } + function u(t, e, n, r, i) { + var o = '', + n = (null != n && (o = s(n) + '/'), a.getPooled(e, o, r, i)); + p(t, l, n), a.release(n); + } + function o(t, e, n) { + return null; + } + var c = t(2), + A = t(8), + h = t(22), + p = t(20), + t = c.twoArgumentPooler, + d = c.fourArgumentPooler, + f = /\/+/g; + (r.prototype.destructor = function () { + (this.func = null), (this.context = null), (this.count = 0); + }), + c.addPoolingTo(r, t), + (a.prototype.destructor = function () { + (this.result = null), + (this.keyPrefix = null), + (this.func = null), + (this.context = null), + (this.count = 0); + }), + c.addPoolingTo(a, d), + (e.exports = { + forEach: function (t, e, n) { + if (null == t) return t; + (e = r.getPooled(e, n)), p(t, i, e), r.release(e); + }, + map: function (t, e, n) { + if (null == t) return t; + var r = []; + return u(t, r, null, e, n), r; + }, + mapIntoWithKeyPrefixInternal: u, + count: function (t, e) { + return p(t, o, null); + }, + toArray: function (t) { + var e = []; + return u(t, e, null, h.thatReturnsArgument), e; + }, + }); + }, + { 2: 2, 20: 20, 22: 22, 8: 8 }, + ], + 6: [ + function (t, e, n) { + e.exports = { current: null }; + }, + {}, + ], + 7: [ + function (t, e, n) { + (t = t(8).createFactory), + (t = { + a: t('a'), + abbr: t('abbr'), + address: t('address'), + area: t('area'), + article: t('article'), + aside: t('aside'), + audio: t('audio'), + b: t('b'), + base: t('base'), + bdi: t('bdi'), + bdo: t('bdo'), + big: t('big'), + blockquote: t('blockquote'), + body: t('body'), + br: t('br'), + button: t('button'), + canvas: t('canvas'), + caption: t('caption'), + cite: t('cite'), + code: t('code'), + col: t('col'), + colgroup: t('colgroup'), + data: t('data'), + datalist: t('datalist'), + dd: t('dd'), + del: t('del'), + details: t('details'), + dfn: t('dfn'), + dialog: t('dialog'), + div: t('div'), + dl: t('dl'), + dt: t('dt'), + em: t('em'), + embed: t('embed'), + fieldset: t('fieldset'), + figcaption: t('figcaption'), + figure: t('figure'), + footer: t('footer'), + form: t('form'), + h1: t('h1'), + h2: t('h2'), + h3: t('h3'), + h4: t('h4'), + h5: t('h5'), + h6: t('h6'), + head: t('head'), + header: t('header'), + hgroup: t('hgroup'), + hr: t('hr'), + html: t('html'), + i: t('i'), + iframe: t('iframe'), + img: t('img'), + input: t('input'), + ins: t('ins'), + kbd: t('kbd'), + keygen: t('keygen'), + label: t('label'), + legend: t('legend'), + li: t('li'), + link: t('link'), + main: t('main'), + map: t('map'), + mark: t('mark'), + menu: t('menu'), + menuitem: t('menuitem'), + meta: t('meta'), + meter: t('meter'), + nav: t('nav'), + noscript: t('noscript'), + object: t('object'), + ol: t('ol'), + optgroup: t('optgroup'), + option: t('option'), + output: t('output'), + p: t('p'), + param: t('param'), + picture: t('picture'), + pre: t('pre'), + progress: t('progress'), + q: t('q'), + rp: t('rp'), + rt: t('rt'), + ruby: t('ruby'), + s: t('s'), + samp: t('samp'), + script: t('script'), + section: t('section'), + select: t('select'), + small: t('small'), + source: t('source'), + span: t('span'), + strong: t('strong'), + style: t('style'), + sub: t('sub'), + summary: t('summary'), + sup: t('sup'), + table: t('table'), + tbody: t('tbody'), + td: t('td'), + textarea: t('textarea'), + tfoot: t('tfoot'), + th: t('th'), + thead: t('thead'), + time: t('time'), + title: t('title'), + tr: t('tr'), + track: t('track'), + u: t('u'), + ul: t('ul'), + var: t('var'), + video: t('video'), + wbr: t('wbr'), + circle: t('circle'), + clipPath: t('clipPath'), + defs: t('defs'), + ellipse: t('ellipse'), + g: t('g'), + image: t('image'), + line: t('line'), + linearGradient: t('linearGradient'), + mask: t('mask'), + path: t('path'), + pattern: t('pattern'), + polygon: t('polygon'), + polyline: t('polyline'), + radialGradient: t('radialGradient'), + rect: t('rect'), + stop: t('stop'), + svg: t('svg'), + text: t('text'), + tspan: t('tspan'), + }); + e.exports = t; + }, + { 8: 8 }, + ], + 8: [ + function (t, e, n) { + function h(t) { + return void 0 !== t.ref; + } + function p(t) { + return void 0 !== t.key; + } + function d(t, e, n, r, i, o, a) { + return { + $$typeof: s, + type: t, + key: e, + ref: n, + props: a, + _owner: o, + }; + } + var f = t(26), + g = t(6), + m = (t(25), t(14), Object.prototype.hasOwnProperty), + s = t(9), + v = { key: !0, ref: !0, __self: !0, __source: !0 }; + (d.createElement = function (t, e, n) { + var r, + i = {}, + o = null, + a = null; + if (null != e) + for (r in (h(e) && (a = e.ref), + p(e) && (o = '' + e.key), + void 0 !== e.__self && e.__self, + void 0 !== e.__source && e.__source, + e)) + m.call(e, r) && !v.hasOwnProperty(r) && (i[r] = e[r]); + var s = arguments.length - 2; + if (1 == s) i.children = n; + else if (1 < s) { + for (var l = Array(s), u = 0; u < s; u++) l[u] = arguments[u + 2]; + i.children = l; + } + if (t && t.defaultProps) { + var c = t.defaultProps; + for (r in c) void 0 === i[r] && (i[r] = c[r]); + } + return d(t, o, a, 0, 0, g.current, i); + }), + (d.createFactory = function (t) { + var e = d.createElement.bind(null, t); + return (e.type = t), e; + }), + (d.cloneAndReplaceKey = function (t, e) { + return d(t.type, e, t.ref, t._self, t._source, t._owner, t.props); + }), + (d.cloneElement = function (t, e, n) { + var r, + i, + o = f({}, t.props), + a = t.key, + s = t.ref, + l = (t._self, t._source, t._owner); + if (null != e) + for (r in (h(e) && ((s = e.ref), (l = g.current)), + p(e) && (a = '' + e.key), + t.type && t.type.defaultProps && (i = t.type.defaultProps), + e)) + m.call(e, r) && + !v.hasOwnProperty(r) && + (void 0 === e[r] && void 0 !== i + ? (o[r] = i[r]) + : (o[r] = e[r])); + var u = arguments.length - 2; + if (1 == u) o.children = n; + else if (1 < u) { + for (var c = Array(u), A = 0; A < u; A++) + c[A] = arguments[A + 2]; + o.children = c; + } + return d(t.type, a, s, 0, 0, l, o); + }), + (d.isValidElement = function (t) { + return 'object' == typeof t && null !== t && t.$$typeof === s; + }), + (e.exports = d); + }, + { 14: 14, 25: 25, 26: 26, 6: 6, 9: 9 }, + ], + 9: [ + function (t, e, n) { + var r = + ('function' == typeof Symbol && + Symbol.for && + Symbol.for('react.element')) || + 60103; + e.exports = r; + }, + {}, + ], + 10: [ + function (t, e, n) { + t(25); + e.exports = { + isMounted: function (t) { + return !1; + }, + enqueueCallback: function (t, e) {}, + enqueueForceUpdate: function (t) {}, + enqueueReplaceState: function (t, e) {}, + enqueueSetState: function (t, e) {}, + }; + }, + { 25: 25 }, + ], + 11: [ + function (t, e, n) { + var r = t(8).isValidElement, + t = t(28); + e.exports = t(r); + }, + { 28: 28, 8: 8 }, + ], + 12: [ + function (t, e, n) { + t = t(26)(t(3), { + __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: { + ReactCurrentOwner: t(6), + }, + }); + e.exports = t; + }, + { 26: 26, 3: 3, 6: 6 }, + ], + 13: [ + function (t, e, n) { + e.exports = '15.6.1'; + }, + {}, + ], + 14: [ + function (t, e, n) { + e.exports = !1; + }, + {}, + ], + 15: [ + function (t, e, n) { + var r = t(4).Component, + i = t(8).isValidElement, + o = t(10), + t = t(21); + e.exports = t(r, i, o); + }, + { 10: 10, 21: 21, 4: 4, 8: 8 }, + ], + 16: [ + function (t, e, n) { + var r = 'function' == typeof Symbol && Symbol.iterator, + i = '@@iterator'; + e.exports = function (t) { + if ('function' == typeof (t = t && ((r && t[r]) || t[i]))) return t; + }; + }, + {}, + ], + 17: [ + function (t, e, n) { + e.exports = function () {}; + }, + {}, + ], + 18: [ + function (t, e, n) { + var r = t(19), + i = t(8); + t(24), + (e.exports = function (t) { + return i.isValidElement(t) || r('143'), t; + }); + }, + { 19: 19, 24: 24, 8: 8 }, + ], + 19: [ + function (t, e, n) { + e.exports = function (t) { + for ( + var e = arguments.length - 1, + n = + 'Minified React error #' + + t + + '; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=' + + t, + r = 0; + r < e; + r++ + ) + n += '&args[]=' + encodeURIComponent(arguments[r + 1]); + throw ( + ((n += + ' for the full message or use the non-minified dev environment for full errors and additional helpful warnings.'), + ((t = new Error(n)).name = 'Invariant Violation'), + (t.framesToPop = 1), + t) + ); + }; + }, + {}, + ], + 20: [ + function (t, e, n) { + function d(t, e) { + return t && 'object' == typeof t && null != t.key + ? v.escape(t.key) + : e.toString(36); + } + var f = t(19), + g = (t(6), t(9)), + m = t(16), + v = (t(24), t(1)), + b = (t(25), '.'), + y = ':'; + e.exports = function (t, e, n) { + return null == t + ? 0 + : (function t(e, n, r, i) { + var o = typeof e; + if ( + null === + (e = 'undefined' != o && 'boolean' != o ? e : null) || + 'string' == o || + 'number' == o || + ('object' == o && e.$$typeof === g) + ) + return r(i, e, '' === n ? b + d(e, 0) : n), 1; + var a, + s = 0, + l = '' === n ? b : n + y; + if (Array.isArray(e)) + for (var u = 0; u < e.length; u++) + s += t((a = e[u]), l + d(a, u), r, i); + else if ((n = m(e))) { + var c, + A = n.call(e); + if (n !== e.entries) + for (var h = 0; !(c = A.next()).done; ) + s += t((a = c.value), l + d(a, h++), r, i); + else + for (; !(c = A.next()).done; ) { + var p = c.value; + p && + (s += t( + (a = p[1]), + l + v.escape(p[0]) + y + d(a, 0), + r, + i, + )); + } + } else + 'object' == o && + ((n = String(e)), + f( + '31', + '[object Object]' === n + ? 'object with keys {' + + Object.keys(e).join(', ') + + '}' + : n, + '', + )); + return s; + })(t, '', e, n); + }; + }, + { 1: 1, 16: 16, 19: 19, 24: 24, 25: 25, 6: 6, 9: 9 }, + ], + 21: [ + function (t, e, n) { + var l = t(26), + f = t(23), + g = t(24), + m = 'mixins'; + e.exports = function (t, c, u) { + function r(t, e) { + if (e) { + g( + 'function' != typeof e, + "ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object.", + ), + g( + !c(e), + "ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.", + ); + var n, + r, + i, + o = t.prototype, + a = o.__reactAutoBindPairs; + for (n in (e.hasOwnProperty(m) && p.mixins(t, e.mixins), e)) + e.hasOwnProperty(n) && + n !== m && + ((r = e[n]), + (i = o.hasOwnProperty(n)), + (s = i), + (l = n), + (u = void 0), + (u = h.hasOwnProperty(l) ? h[l] : null), + d.hasOwnProperty(l) && + g( + 'OVERRIDE_BASE' === u, + 'ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.', + l, + ), + s && + g( + 'DEFINE_MANY' === u || 'DEFINE_MANY_MERGED' === u, + 'ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', + l, + ), + p.hasOwnProperty(n) + ? p[n](t, r) + : ((s = h.hasOwnProperty(n)), + 'function' == typeof r && !s && !i && !1 !== e.autobind + ? (a.push(n, r), (o[n] = r)) + : i + ? ((u = h[n]), + g( + s && + ('DEFINE_MANY_MERGED' === u || + 'DEFINE_MANY' === u), + 'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.', + u, + n, + ), + 'DEFINE_MANY_MERGED' === u + ? (o[n] = A(o[n], r)) + : 'DEFINE_MANY' === u && + (o[n] = (function (t, e) { + return function () { + t.apply(this, arguments), + e.apply(this, arguments); + }; + })(o[n], r))) + : (o[n] = r))); + } + var s, l, u; + } + function o(t, e) { + for (var n in (g( + t && e && 'object' == typeof t && 'object' == typeof e, + 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.', + ), + e)) + e.hasOwnProperty(n) && + (g( + void 0 === t[n], + 'mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.', + n, + ), + (t[n] = e[n])); + } + function A(r, i) { + return function () { + var t = r.apply(this, arguments), + e = i.apply(this, arguments); + if (null == t) return e; + if (null == e) return t; + var n = {}; + return o(n, t), o(n, e), n; + }; + } + function n() {} + var i = [], + h = { + mixins: 'DEFINE_MANY', + statics: 'DEFINE_MANY', + propTypes: 'DEFINE_MANY', + contextTypes: 'DEFINE_MANY', + childContextTypes: 'DEFINE_MANY', + getDefaultProps: 'DEFINE_MANY_MERGED', + getInitialState: 'DEFINE_MANY_MERGED', + getChildContext: 'DEFINE_MANY_MERGED', + render: 'DEFINE_ONCE', + componentWillMount: 'DEFINE_MANY', + componentDidMount: 'DEFINE_MANY', + componentWillReceiveProps: 'DEFINE_MANY', + shouldComponentUpdate: 'DEFINE_ONCE', + componentWillUpdate: 'DEFINE_MANY', + componentDidUpdate: 'DEFINE_MANY', + componentWillUnmount: 'DEFINE_MANY', + updateComponent: 'OVERRIDE_BASE', + }, + p = { + displayName: function (t, e) { + t.displayName = e; + }, + mixins: function (t, e) { + if (e) for (var n = 0; n < e.length; n++) r(t, e[n]); + }, + childContextTypes: function (t, e) { + t.childContextTypes = l({}, t.childContextTypes, e); + }, + contextTypes: function (t, e) { + t.contextTypes = l({}, t.contextTypes, e); + }, + getDefaultProps: function (t, e) { + t.getDefaultProps + ? (t.getDefaultProps = A(t.getDefaultProps, e)) + : (t.getDefaultProps = e); + }, + propTypes: function (t, e) { + t.propTypes = l({}, t.propTypes, e); + }, + statics: function (t, e) { + var n = t, + r = e; + if (r) + for (var i in r) { + var o, + a = r[i]; + r.hasOwnProperty(i) && + ((o = i in p), + g( + !o, + 'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.', + i, + ), + (o = i in n), + g( + !o, + 'ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', + i, + ), + (n[i] = a)); + } + }, + autobind: function () {}, + }, + a = { + componentDidMount: function () { + this.__isMounted = !0; + }, + }, + s = { + componentWillUnmount: function () { + this.__isMounted = !1; + }, + }, + d = { + replaceState: function (t, e) { + this.updater.enqueueReplaceState(this, t, e); + }, + isMounted: function () { + return !!this.__isMounted; + }, + }; + return ( + l(n.prototype, t.prototype, d), + function (t) { + var e, + l = function (t, e, n) { + if (this.__reactAutoBindPairs.length) + for ( + var r = this, i = r.__reactAutoBindPairs, o = 0; + o < i.length; + o += 2 + ) { + var a = i[o], + s = i[o + 1]; + r[a] = s.bind(r); + } + (this.props = t), + (this.context = e), + (this.refs = f), + (this.updater = n || u), + (this.state = null); + t = this.getInitialState ? this.getInitialState() : null; + g( + 'object' == typeof t && !Array.isArray(t), + '%s.getInitialState(): must return an object or null', + l.displayName || 'ReactCompositeComponent', + ), + (this.state = t); + }; + for (e in ((l.prototype = new n()), + ((l.prototype.constructor = l).prototype.__reactAutoBindPairs = + []), + i.forEach(r.bind(null, l)), + r(l, a), + r(l, t), + r(l, s), + l.getDefaultProps && (l.defaultProps = l.getDefaultProps()), + g( + l.prototype.render, + 'createClass(...): Class specification must implement a `render` method.', + ), + h)) + l.prototype[e] || (l.prototype[e] = null); + return l; + } + ); + }; + }, + { 23: 23, 24: 24, 25: 25, 26: 26 }, + ], + 22: [ + function (t, e, n) { + function r(t) { + return function () { + return t; + }; + } + function i() {} + (i.thatReturns = r), + (i.thatReturnsFalse = r(!1)), + (i.thatReturnsTrue = r(!0)), + (i.thatReturnsNull = r(null)), + (i.thatReturnsThis = function () { + return this; + }), + (i.thatReturnsArgument = function (t) { + return t; + }), + (e.exports = i); + }, + {}, + ], + 23: [ + function (t, e, n) { + e.exports = {}; + }, + {}, + ], + 24: [ + function (t, e, n) { + var A = function (t) {}; + e.exports = function (t, e, n, r, i, o, a, s) { + var l, u, c; + if ((A(e), !t)) + throw ( + (void 0 === e + ? (c = new Error( + 'Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.', + )) + : ((l = [n, r, i, o, a, s]), + (u = 0), + ((c = new Error( + e.replace(/%s/g, function () { + return l[u++]; + }), + )).name = 'Invariant Violation')), + (c.framesToPop = 1), + c) + ); + }; + }, + {}, + ], + 25: [ + function (t, e, n) { + t = t(22); + e.exports = t; + }, + { 22: 22 }, + ], + 26: [ + function (t, e, n) { + var l = Object.getOwnPropertySymbols, + u = Object.prototype.hasOwnProperty, + c = Object.prototype.propertyIsEnumerable; + e.exports = (function () { + try { + if (!Object.assign) return; + var t = new String('abc'); + if (((t[5] = 'de'), '5' === Object.getOwnPropertyNames(t)[0])) + return; + for (var e = {}, n = 0; n < 10; n++) + e['_' + String.fromCharCode(n)] = n; + if ( + '0123456789' !== + Object.getOwnPropertyNames(e) + .map(function (t) { + return e[t]; + }) + .join('') + ) + return; + var r = {}; + return ( + 'abcdefghijklmnopqrst'.split('').forEach(function (t) { + r[t] = t; + }), + 'abcdefghijklmnopqrst' === + Object.keys(Object.assign({}, r)).join('') + ); + } catch (t) { + return; + } + })() + ? Object.assign + : function (t, e) { + for ( + var n, + r = (function (t) { + if (null == t) + throw new TypeError( + 'Object.assign cannot be called with null or undefined', + ); + return Object(t); + })(t), + i = 1; + i < arguments.length; + i++ + ) { + for (var o in (n = Object(arguments[i]))) + u.call(n, o) && (r[o] = n[o]); + if (l) + for (var a = l(n), s = 0; s < a.length; s++) + c.call(n, a[s]) && (r[a[s]] = n[a[s]]); + } + return r; + }; + }, + {}, + ], + 27: [ + function (t, e, n) { + e.exports = function (t, e, n, r, i) {}; + }, + { 24: 24, 25: 25, 30: 30 }, + ], + 28: [ + function (t, e, n) { + var r = t(29); + e.exports = function (t) { + return r(t, !1); + }; + }, + { 29: 29 }, + ], + 29: [ + function (t, e, n) { + var r = t(22), + d = t(24), + i = t(25), + f = t(30), + g = t(27); + e.exports = function (o, l) { + function c(t) { + (this.message = t), (this.stack = ''); + } + function n(s) { + function t(t, e, n, r, i, o, a) { + return ( + (r = r || p), + (o = o || n), + a !== f && + l && + d( + !1, + 'Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types', + ), + null == e[n] + ? t + ? new c( + null === e[n] + ? 'The ' + + i + + ' `' + + o + + '` is marked as required in `' + + r + + '`, but its value is `null`.' + : 'The ' + + i + + ' `' + + o + + '` is marked as required in `' + + r + + '`, but its value is `undefined`.', + ) + : null + : s(e, n, r, i, o) + ); + } + var e = t.bind(null, !1); + return (e.isRequired = t.bind(null, !0)), e; + } + function t(a) { + return n(function (t, e, n, r, i, o) { + return u((t = t[e])) !== a + ? new c( + 'Invalid ' + + r + + ' `' + + i + + '` of type `' + + s(t) + + '` supplied to `' + + n + + '`, expected `' + + a + + '`.', + ) + : null; + }); + } + function a(t) { + switch (typeof t) { + case 'number': + case 'string': + case 'undefined': + return !0; + case 'boolean': + return !t; + case 'object': + if (Array.isArray(t)) return t.every(a); + if (null !== t && !o(t)) { + var e = (function (t) { + if ('function' == typeof (t = t && ((A && t[A]) || t[h]))) + return t; + })(t); + if (!e) return !1; + var n, + r = e.call(t); + if (e !== t.entries) { + for (; !(n = r.next()).done; ) if (!a(n.value)) return !1; + } else + for (; !(n = r.next()).done; ) { + var i = n.value; + if (i && !a(i[1])) return !1; + } + } + return !0; + default: + return !1; + } + } + function u(t) { + var e = typeof t; + return Array.isArray(t) + ? 'array' + : t instanceof RegExp + ? 'object' + : ((t = t), + 'symbol' === e || + 'Symbol' === t['@@toStringTag'] || + ('function' == typeof Symbol && t instanceof Symbol) + ? 'symbol' + : e); + } + function s(t) { + if (null == t) return '' + t; + var e = u(t); + if ('object' === e) { + if (t instanceof Date) return 'date'; + if (t instanceof RegExp) return 'regexp'; + } + return e; + } + var A = 'function' == typeof Symbol && Symbol.iterator, + h = '@@iterator', + p = '<<anonymous>>', + e = { + array: t('array'), + bool: t('boolean'), + func: t('function'), + number: t('number'), + object: t('object'), + string: t('string'), + symbol: t('symbol'), + any: n(r.thatReturnsNull), + arrayOf: function (l) { + return n(function (t, e, n, r, i) { + if ('function' != typeof l) + return new c( + 'Property `' + + i + + '` of component `' + + n + + '` has invalid PropType notation inside arrayOf.', + ); + var o = t[e]; + if (!Array.isArray(o)) + return new c( + 'Invalid ' + + r + + ' `' + + i + + '` of type `' + + u(o) + + '` supplied to `' + + n + + '`, expected an array.', + ); + for (var a = 0; a < o.length; a++) { + var s = l(o, a, n, r, i + '[' + a + ']', f); + if (s instanceof Error) return s; + } + return null; + }); + }, + element: n(function (t, e, n, r, i) { + return ( + (t = t[e]), + o(t) + ? null + : new c( + 'Invalid ' + + r + + ' `' + + i + + '` of type `' + + u(t) + + '` supplied to `' + + n + + '`, expected a single ReactElement.', + ) + ); + }), + instanceOf: function (a) { + return n(function (t, e, n, r, i) { + var o; + return t[e] instanceof a + ? null + : ((o = a.name || p), + new c( + 'Invalid ' + + r + + ' `' + + i + + '` of type `' + + ((r = t[e]).constructor && r.constructor.name + ? r.constructor.name + : p) + + '` supplied to `' + + n + + '`, expected instance of `' + + o + + '`.', + )); + }); + }, + node: n(function (t, e, n, r, i) { + return a(t[e]) + ? null + : new c( + 'Invalid ' + + r + + ' `' + + i + + '` supplied to `' + + n + + '`, expected a ReactNode.', + ); + }), + objectOf: function (l) { + return n(function (t, e, n, r, i) { + if ('function' != typeof l) + return new c( + 'Property `' + + i + + '` of component `' + + n + + '` has invalid PropType notation inside objectOf.', + ); + var o, + a = t[e]; + if ('object' !== (t = u(a))) + return new c( + 'Invalid ' + + r + + ' `' + + i + + '` of type `' + + t + + '` supplied to `' + + n + + '`, expected an object.', + ); + for (o in a) + if (a.hasOwnProperty(o)) { + var s = l(a, o, n, r, i + '.' + o, f); + if (s instanceof Error) return s; + } + return null; + }); + }, + oneOf: function (u) { + return Array.isArray(u) + ? n(function (t, e, n, r, i) { + for (var o, a, s = t[e], l = 0; l < u.length; l++) + if ( + ((o = s), + (a = u[l]), + o === a + ? 0 !== o || 1 / o == 1 / a + : o != o && a != a) + ) + return null; + return new c( + 'Invalid ' + + r + + ' `' + + i + + '` of value `' + + s + + '` supplied to `' + + n + + '`, expected one of ' + + JSON.stringify(u) + + '.', + ); + }) + : r.thatReturnsNull; + }, + oneOfType: function (a) { + if (!Array.isArray(a)) return r.thatReturnsNull; + for (var t = 0; t < a.length; t++) { + var e = a[t]; + if ('function' != typeof e) + return ( + i( + !1, + 'Invalid argument supplid to oneOfType. Expected an array of check functions, but received %s at index %s.', + (function (t) { + var e = s(t); + switch (e) { + case 'array': + case 'object': + return 'an ' + e; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + e; + default: + return e; + } + })(e), + t, + ), + r.thatReturnsNull + ); + } + return n(function (t, e, n, r, i) { + for (var o = 0; o < a.length; o++) + if (null == (0, a[o])(t, e, n, r, i, f)) return null; + return new c( + 'Invalid ' + r + ' `' + i + '` supplied to `' + n + '`.', + ); + }); + }, + shape: function (l) { + return n(function (t, e, n, r, i) { + var o, + a = t[e]; + if ('object' !== (t = u(a))) + return new c( + 'Invalid ' + + r + + ' `' + + i + + '` of type `' + + t + + '` supplied to `' + + n + + '`, expected `object`.', + ); + for (o in l) { + var s = l[o]; + if (s) { + s = s(a, o, n, r, i + '.' + o, f); + if (s) return s; + } + } + return null; + }); + }, + }; + return ( + (c.prototype = Error.prototype), + (e.checkPropTypes = g), + (e.PropTypes = e) + ); + }; + }, + { 22: 22, 24: 24, 25: 25, 27: 27, 30: 30 }, + ], + 30: [ + function (t, e, n) { + e.exports = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + }, + {}, + ], + }, + {}, + [12], + )(12); + }), + (br = wr.exports), + (Er = {}), + (Br = {}), + (function (t) { + var e; + 'object' == typeof Er && void 0 !== Br + ? (Br.exports = t(br)) + : ((e = + 'undefined' != typeof window + ? window + : void 0 !== Vp + ? Vp + : 'undefined' != typeof self + ? self + : this).ReactDOM = t(e.React)); + })(function (i) { + return (function r(i, o, a) { + function s(e, t) { + if (!o[e]) { + if (!i[e]) { + if (l) return l(e, !0); + var n = new Error("Cannot find __module__ '" + e + "'"); + throw ((n.code = '__module___NOT_FOUND'), n); + } + n = o[e] = { exports: {} }; + i[e][0].call( + n.exports, + function (t) { + return s(i[e][1][t] || t); + }, + n, + n.exports, + r, + i, + o, + a, + ); + } + return o[e].exports; + } + for (var l = void 0, t = 0; t < a.length; t++) s(a[t]); + return s; + })( + { + 1: [ + function (t, e, n) { + e.exports = { + Properties: { + 'aria-current': 0, + 'aria-details': 0, + 'aria-disabled': 0, + 'aria-hidden': 0, + 'aria-invalid': 0, + 'aria-keyshortcuts': 0, + 'aria-label': 0, + 'aria-roledescription': 0, + 'aria-autocomplete': 0, + 'aria-checked': 0, + 'aria-expanded': 0, + 'aria-haspopup': 0, + 'aria-level': 0, + 'aria-modal': 0, + 'aria-multiline': 0, + 'aria-multiselectable': 0, + 'aria-orientation': 0, + 'aria-placeholder': 0, + 'aria-pressed': 0, + 'aria-readonly': 0, + 'aria-required': 0, + 'aria-selected': 0, + 'aria-sort': 0, + 'aria-valuemax': 0, + 'aria-valuemin': 0, + 'aria-valuenow': 0, + 'aria-valuetext': 0, + 'aria-atomic': 0, + 'aria-busy': 0, + 'aria-live': 0, + 'aria-relevant': 0, + 'aria-dropeffect': 0, + 'aria-grabbed': 0, + 'aria-activedescendant': 0, + 'aria-colcount': 0, + 'aria-colindex': 0, + 'aria-colspan': 0, + 'aria-controls': 0, + 'aria-describedby': 0, + 'aria-errormessage': 0, + 'aria-flowto': 0, + 'aria-labelledby': 0, + 'aria-owns': 0, + 'aria-posinset': 0, + 'aria-rowcount': 0, + 'aria-rowindex': 0, + 'aria-rowspan': 0, + 'aria-setsize': 0, + }, + DOMAttributeNames: {}, + DOMPropertyNames: {}, + }; + }, + {}, + ], + 2: [ + function (t, e, n) { + var r = t(33), + i = t(132); + e.exports = { + focusDOMComponent: function () { + i(r.getNodeFromInstance(this)); + }, + }; + }, + { 132: 132, 33: 33 }, + ], + 3: [ + function (t, e, n) { + function s(t, e) { + switch (t) { + case 'topKeyUp': + return -1 !== h.indexOf(e.keyCode); + case 'topKeyDown': + return e.keyCode !== p; + case 'topKeyPress': + case 'topMouseDown': + case 'topBlur': + return 1; + default: + return; + } + } + function l(t) { + t = t.detail; + return 'object' == typeof t && 'data' in t ? t.data : null; + } + function i(t, e, n, r) { + var i, o; + if ( + (d + ? (i = (function (t) { + switch (t) { + case 'topCompositionStart': + return b.compositionStart; + case 'topCompositionEnd': + return b.compositionEnd; + case 'topCompositionUpdate': + return b.compositionUpdate; + } + })(t)) + : w + ? s(t, n) && (i = b.compositionEnd) + : ((a = n), + 'topKeyDown' === t && + a.keyCode === p && + (i = b.compositionStart)), + !i) + ) + return null; + g && + (w || i !== b.compositionStart + ? i === b.compositionEnd && w && (o = w.getData()) + : (w = c.getPooled(r))); + var a, + t = A.getPooled(i, e, n, r); + return ( + o ? (t.data = o) : null !== (a = l(n)) && (t.data = a), + u.accumulateTwoPhaseDispatches(t), + t + ); + } + function o(t, e, n, r) { + if ( + !(t = ( + f + ? function (t, e) { + switch (t) { + case 'topCompositionEnd': + return l(e); + case 'topKeyPress': + return e.which !== m ? null : ((y = !0), v); + case 'topTextInput': + var n = e.data; + return n === v && y ? null : n; + default: + return null; + } + } + : function (t, e) { + var n, r; + if (w) + return 'topCompositionEnd' === t || (!d && s(t, e)) + ? ((n = w.getData()), c.release(w), (w = null), n) + : null; + switch (t) { + case 'topPaste': + return null; + case 'topKeyPress': + return e.which && + (!((r = e).ctrlKey || r.altKey || r.metaKey) || + (r.ctrlKey && r.altKey)) + ? String.fromCharCode(e.which) + : null; + case 'topCompositionEnd': + return g ? null : e.data; + default: + return null; + } + } + )(t, n)) + ) + return null; + e = a.getPooled(b.beforeInput, e, n, r); + return (e.data = t), u.accumulateTwoPhaseDispatches(e), e; + } + var u = t(19), + r = t(124), + c = t(20), + A = t(78), + a = t(82), + h = [9, 13, 27, 32], + p = 229, + d = r.canUseDOM && 'CompositionEvent' in window, + t = null, + f = + (r.canUseDOM && + 'documentMode' in document && + (t = document.documentMode), + r.canUseDOM && + 'TextEvent' in window && + !t && + !( + 'object' == typeof (E = window.opera) && + 'function' == typeof E.version && + parseInt(E.version(), 10) <= 12 + )), + g = r.canUseDOM && (!d || (t && 8 < t && t <= 11)), + m = 32, + v = String.fromCharCode(m), + b = { + beforeInput: { + phasedRegistrationNames: { + bubbled: 'onBeforeInput', + captured: 'onBeforeInputCapture', + }, + dependencies: [ + 'topCompositionEnd', + 'topKeyPress', + 'topTextInput', + 'topPaste', + ], + }, + compositionEnd: { + phasedRegistrationNames: { + bubbled: 'onCompositionEnd', + captured: 'onCompositionEndCapture', + }, + dependencies: [ + 'topBlur', + 'topCompositionEnd', + 'topKeyDown', + 'topKeyPress', + 'topKeyUp', + 'topMouseDown', + ], + }, + compositionStart: { + phasedRegistrationNames: { + bubbled: 'onCompositionStart', + captured: 'onCompositionStartCapture', + }, + dependencies: [ + 'topBlur', + 'topCompositionStart', + 'topKeyDown', + 'topKeyPress', + 'topKeyUp', + 'topMouseDown', + ], + }, + compositionUpdate: { + phasedRegistrationNames: { + bubbled: 'onCompositionUpdate', + captured: 'onCompositionUpdateCapture', + }, + dependencies: [ + 'topBlur', + 'topCompositionUpdate', + 'topKeyDown', + 'topKeyPress', + 'topKeyUp', + 'topMouseDown', + ], + }, + }, + y = !1, + w = null, + E = { + eventTypes: b, + extractEvents: function (t, e, n, r) { + return [i(t, e, n, r), o(t, e, n, r)]; + }, + }; + e.exports = E; + }, + { 124: 124, 19: 19, 20: 20, 78: 78, 82: 82 }, + ], + 4: [ + function (t, e, n) { + var r = { + animationIterationCount: !0, + borderImageOutset: !0, + borderImageSlice: !0, + borderImageWidth: !0, + boxFlex: !0, + boxFlexGroup: !0, + boxOrdinalGroup: !0, + columnCount: !0, + flex: !0, + flexGrow: !0, + flexPositive: !0, + flexShrink: !0, + flexNegative: !0, + flexOrder: !0, + gridRow: !0, + gridRowEnd: !0, + gridRowSpan: !0, + gridRowStart: !0, + gridColumn: !0, + gridColumnEnd: !0, + gridColumnSpan: !0, + gridColumnStart: !0, + fontWeight: !0, + lineClamp: !0, + lineHeight: !0, + opacity: !0, + order: !0, + orphans: !0, + tabSize: !0, + widows: !0, + zIndex: !0, + zoom: !0, + fillOpacity: !0, + floodOpacity: !0, + stopOpacity: !0, + strokeDasharray: !0, + strokeDashoffset: !0, + strokeMiterlimit: !0, + strokeOpacity: !0, + strokeWidth: !0, + }, + i = ['Webkit', 'ms', 'Moz', 'O']; + Object.keys(r).forEach(function (e) { + i.forEach(function (t) { + r[t + (t = e).charAt(0).toUpperCase() + t.substring(1)] = r[e]; + }); + }); + e.exports = { + isUnitlessNumber: r, + shorthandPropertyExpansions: { + background: { + backgroundAttachment: !0, + backgroundColor: !0, + backgroundImage: !0, + backgroundPositionX: !0, + backgroundPositionY: !0, + backgroundRepeat: !0, + }, + backgroundPosition: { + backgroundPositionX: !0, + backgroundPositionY: !0, + }, + border: { borderWidth: !0, borderStyle: !0, borderColor: !0 }, + borderBottom: { + borderBottomWidth: !0, + borderBottomStyle: !0, + borderBottomColor: !0, + }, + borderLeft: { + borderLeftWidth: !0, + borderLeftStyle: !0, + borderLeftColor: !0, + }, + borderRight: { + borderRightWidth: !0, + borderRightStyle: !0, + borderRightColor: !0, + }, + borderTop: { + borderTopWidth: !0, + borderTopStyle: !0, + borderTopColor: !0, + }, + font: { + fontStyle: !0, + fontVariant: !0, + fontWeight: !0, + fontSize: !0, + lineHeight: !0, + fontFamily: !0, + }, + outline: { outlineWidth: !0, outlineStyle: !0, outlineColor: !0 }, + }, + }; + }, + {}, + ], + 5: [ + function (t, e, n) { + var l = t(4), + r = t(124), + u = (t(58), t(126), t(94)), + i = t(137), + o = t(141), + a = + (t(143), + o(function (t) { + return i(t); + })), + c = !1, + A = 'cssFloat'; + if (r.canUseDOM) { + o = document.createElement('div').style; + try { + o.font = ''; + } catch (t) { + c = !0; + } + void 0 === document.documentElement.style.cssFloat && + (A = 'styleFloat'); + } + e.exports = { + createMarkupForStyles: function (t, e) { + var n, + r, + i, + o = ''; + for (n in t) + t.hasOwnProperty(n) && + ((r = 0 === n.indexOf('--')), + null != (i = t[n]) && + (o = (o += a(n) + ':') + (u(n, i, e, r) + ';'))); + return o || null; + }, + setValueForStyles: function (t, e, n) { + var r, + i = t.style; + for (r in e) + if (e.hasOwnProperty(r)) { + var o = 0 === r.indexOf('--'), + a = u(r, e[r], n, o); + if ((('float' !== r && 'cssFloat' !== r) || (r = A), o)) + i.setProperty(r, a); + else if (a) i[r] = a; + else { + o = c && l.shorthandPropertyExpansions[r]; + if (o) for (var s in o) i[s] = ''; + else i[r] = ''; + } + } + }, + }; + }, + { + 124: 124, + 126: 126, + 137: 137, + 141: 141, + 143: 143, + 4: 4, + 58: 58, + 94: 94, + }, + ], + 6: [ + function (t, e, n) { + var i = t(113), + r = t(24); + function o(t) { + if (!(this instanceof o)) + throw new TypeError('Cannot call a class as a function'); + (this._callbacks = null), (this._contexts = null), (this._arg = t); + } + t(138), + (o.prototype.enqueue = function (t, e) { + (this._callbacks = this._callbacks || []), + this._callbacks.push(t), + (this._contexts = this._contexts || []), + this._contexts.push(e); + }), + (o.prototype.notifyAll = function () { + var t = this._callbacks, + e = this._contexts, + n = this._arg; + if (t && e) { + t.length !== e.length && i('24'), + (this._callbacks = null), + (this._contexts = null); + for (var r = 0; r < t.length; r++) t[r].call(e[r], n); + (t.length = 0), (e.length = 0); + } + }), + (o.prototype.checkpoint = function () { + return this._callbacks ? this._callbacks.length : 0; + }), + (o.prototype.rollback = function (t) { + this._callbacks && + this._contexts && + ((this._callbacks.length = t), (this._contexts.length = t)); + }), + (o.prototype.reset = function () { + (this._callbacks = null), (this._contexts = null); + }), + (o.prototype.destructor = function () { + this.reset(); + }), + (e.exports = r.addPoolingTo(o)); + }, + { 113: 113, 138: 138, 24: 24 }, + ], + 7: [ + function (t, e, n) { + function u(t, e, n) { + t = w.getPooled(I.change, t, e, n); + return (t.type = 'change'), m.accumulateTwoPhaseDispatches(t), t; + } + function r(t) { + t = u(D, t, B(t)); + y.batchedUpdates(i, t); + } + function i(t) { + g.enqueueEvents(t), g.processEventQueue(!1); + } + function o() { + M && (M.detachEvent('onchange', r), (D = M = null)); + } + function a(t, e) { + var n = E.updateValueIfChanged(t), + e = !0 === e.simulated && F._allowSimulatedPassThrough; + if (n || e) return t; + } + function c(t, e) { + if ('topChange' === t) return e; + } + function A(t, e, n) { + 'topFocus' === t + ? (o(), (D = n), (M = e).attachEvent('onchange', r)) + : 'topBlur' === t && o(); + } + function s() { + M && (M.detachEvent('onpropertychange', l), (D = M = null)); + } + function l(t) { + 'value' === t.propertyName && a(D, t) && r(t); + } + function h(t, e, n) { + 'topFocus' === t + ? (s(), (D = n), (M = e).attachEvent('onpropertychange', l)) + : 'topBlur' === t && s(); + } + function p(t, e, n) { + if ( + 'topSelectionChange' === t || + 'topKeyUp' === t || + 'topKeyDown' === t + ) + return a(D, n); + } + function d(t, e, n) { + if ('topClick' === t) return a(e, n); + } + function f(t, e, n) { + if ('topInput' === t || 'topChange' === t) return a(e, n); + } + var g = t(16), + m = t(19), + v = t(124), + b = t(33), + y = t(71), + w = t(80), + E = t(108), + B = t(102), + C = t(110), + x = t(111), + I = { + change: { + phasedRegistrationNames: { + bubbled: 'onChange', + captured: 'onChangeCapture', + }, + dependencies: [ + 'topBlur', + 'topChange', + 'topClick', + 'topFocus', + 'topInput', + 'topKeyDown', + 'topKeyUp', + 'topSelectionChange', + ], + }, + }, + M = null, + D = null, + S = !1, + k = + (v.canUseDOM && + (S = + C('change') && + (!document.documentMode || 8 < document.documentMode)), + !1), + F = + (v.canUseDOM && + (k = + C('input') && + (!('documentMode' in document) || 9 < document.documentMode)), + { + eventTypes: I, + _allowSimulatedPassThrough: !0, + _isInputEventSupported: k, + extractEvents: function (t, e, n, r) { + var i, + o, + a, + s = e ? b.getNodeFromInstance(e) : window; + if ( + ('select' === + (a = (l = s).nodeName && l.nodeName.toLowerCase()) || + ('input' === a && 'file' === l.type) + ? S + ? (o = c) + : (i = A) + : x(s) + ? k + ? (o = f) + : ((o = p), (i = h)) + : !(l = (a = s).nodeName) || + 'input' !== l.toLowerCase() || + ('checkbox' !== a.type && 'radio' !== a.type) || + (o = d), + o) + ) { + var l = o(t, e, n); + if (l) return u(l, n, r); + } + i && i(t, s, e), + 'topBlur' === t && + ((a = s), + null != (o = e) && + (o = o._wrapperState || a._wrapperState) && + o.controlled && + 'number' === a.type && + ((o = '' + a.value), + a.getAttribute('value') !== o && + a.setAttribute('value', o))); + }, + }); + e.exports = F; + }, + { + 102: 102, + 108: 108, + 110: 110, + 111: 111, + 124: 124, + 16: 16, + 19: 19, + 33: 33, + 71: 71, + 80: 80, + }, + ], + 8: [ + function (t, e, n) { + function s(t, e) { + return (e = Array.isArray(e) ? e[1] : e) + ? e.nextSibling + : t.firstChild; + } + function l(t, e, n) { + if (Array.isArray(e)) + for (var r = t, i = e[0], o = e[1], a = n, s = i; ; ) { + var l = s.nextSibling; + if ((p(r, s, a), s === o)) break; + s = l; + } + else p(t, e, n); + } + function u(t, e, n) { + for (;;) { + var r = e.nextSibling; + if (r === n) break; + t.removeChild(r); + } + } + var c = t(9), + r = t(13), + i = (t(33), t(58), t(93)), + A = t(115), + h = t(116), + p = i(function (t, e, n) { + t.insertBefore(e, n); + }), + t = r.dangerouslyReplaceNodeWithMarkup; + e.exports = { + dangerouslyReplaceNodeWithMarkup: t, + replaceDelimitedText: function (t, e, n) { + var r = t.parentNode, + i = t.nextSibling; + i === e + ? n && p(r, document.createTextNode(n), i) + : n + ? (h(i, n), u(r, i, e)) + : u(r, t, e); + }, + processUpdates: function (t, e) { + for (var n, r, i, o = 0; o < e.length; o++) { + var a = e[o]; + switch (a.type) { + case 'INSERT_MARKUP': + (n = t), + (r = a.content), + (i = s(t, a.afterNode)), + c.insertTreeBefore(n, r, i); + break; + case 'MOVE_EXISTING': + l(t, a.fromNode, s(t, a.afterNode)); + break; + case 'SET_MARKUP': + A(t, a.content); + break; + case 'TEXT_CONTENT': + h(t, a.content); + break; + case 'REMOVE_NODE': + (n = t), + (r = a.fromNode), + (i = void 0), + Array.isArray(r) && + ((i = r[1]), u(n, (r = r[0]), i), n.removeChild(i)), + n.removeChild(r); + } + } + }, + }; + }, + { 115: 115, 116: 116, 13: 13, 33: 33, 58: 58, 9: 9, 93: 93 }, + ], + 9: [ + function (t, e, n) { + function r(t) { + if (c) { + var e = t.node, + n = t.children; + if (n.length) for (var r = 0; r < n.length; r++) A(e, n[r], null); + else + null != t.html ? s(e, t.html) : null != t.text && u(e, t.text); + } + } + function i() { + return this.node.nodeName; + } + function o(t) { + return { + node: t, + children: [], + html: null, + text: null, + toString: i, + }; + } + var a = t(10), + s = t(115), + l = t(93), + u = t(116), + c = + ('undefined' != typeof document && + 'number' == typeof document.documentMode) || + ('undefined' != typeof navigator && + 'string' == typeof navigator.userAgent && + /\bEdge\/\d/.test(navigator.userAgent)), + A = l(function (t, e, n) { + 11 === e.node.nodeType || + (1 === e.node.nodeType && + 'object' === e.node.nodeName.toLowerCase() && + (null == e.node.namespaceURI || e.node.namespaceURI === a.html)) + ? (r(e), t.insertBefore(e.node, n)) + : (t.insertBefore(e.node, n), r(e)); + }); + (o.insertTreeBefore = A), + (o.replaceChildWithTree = function (t, e) { + t.parentNode.replaceChild(e.node, t), r(e); + }), + (o.queueChild = function (t, e) { + c ? t.children.push(e) : t.node.appendChild(e.node); + }), + (o.queueHTML = function (t, e) { + c ? (t.html = e) : s(t.node, e); + }), + (o.queueText = function (t, e) { + c ? (t.text = e) : u(t.node, e); + }), + (e.exports = o); + }, + { 10: 10, 115: 115, 116: 116, 93: 93 }, + ], + 10: [ + function (t, e, n) { + e.exports = { + html: 'http://www.w3.org/1999/xhtml', + mathml: 'http://www.w3.org/1998/Math/MathML', + svg: 'http://www.w3.org/2000/svg', + }; + }, + {}, + ], + 11: [ + function (t, e, n) { + function c(t, e) { + return (t & e) === e; + } + var A = t(113), + h = + (t(138), + { + MUST_USE_PROPERTY: 1, + HAS_BOOLEAN_VALUE: 4, + HAS_NUMERIC_VALUE: 8, + HAS_POSITIVE_NUMERIC_VALUE: 24, + HAS_OVERLOADED_BOOLEAN_VALUE: 32, + injectDOMPropertyConfig: function (t) { + var e, + n = h, + r = t.Properties || {}, + i = t.DOMAttributeNamespaces || {}, + o = t.DOMAttributeNames || {}, + a = t.DOMPropertyNames || {}, + s = t.DOMMutationMethods || {}; + for (e in (t.isCustomAttribute && + p._isCustomAttributeFunctions.push(t.isCustomAttribute), + r)) { + p.properties.hasOwnProperty(e) && A('48', e); + var l = e.toLowerCase(), + u = r[e], + l = { + attributeName: l, + attributeNamespace: null, + propertyName: e, + mutationMethod: null, + mustUseProperty: c(u, n.MUST_USE_PROPERTY), + hasBooleanValue: c(u, n.HAS_BOOLEAN_VALUE), + hasNumericValue: c(u, n.HAS_NUMERIC_VALUE), + hasPositiveNumericValue: c( + u, + n.HAS_POSITIVE_NUMERIC_VALUE, + ), + hasOverloadedBooleanValue: c( + u, + n.HAS_OVERLOADED_BOOLEAN_VALUE, + ), + }; + l.hasBooleanValue + + l.hasNumericValue + + l.hasOverloadedBooleanValue <= + 1 || A('50', e), + o.hasOwnProperty(e) && + ((u = o[e]), (l.attributeName = u)), + i.hasOwnProperty(e) && (l.attributeNamespace = i[e]), + a.hasOwnProperty(e) && (l.propertyName = a[e]), + s.hasOwnProperty(e) && (l.mutationMethod = s[e]), + (p.properties[e] = l); + } + }, + }), + t = + ':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD', + p = { + ID_ATTRIBUTE_NAME: 'data-reactid', + ROOT_ATTRIBUTE_NAME: 'data-reactroot', + ATTRIBUTE_NAME_START_CHAR: t, + ATTRIBUTE_NAME_CHAR: + t + '\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040', + properties: {}, + getPossibleStandardName: null, + _isCustomAttributeFunctions: [], + isCustomAttribute: function (t) { + for (var e = 0; e < p._isCustomAttributeFunctions.length; e++) + if ((0, p._isCustomAttributeFunctions[e])(t)) return !0; + return !1; + }, + injection: h, + }; + e.exports = p; + }, + { 113: 113, 138: 138 }, + ], + 12: [ + function (t, e, n) { + function r(t) { + return ( + u.hasOwnProperty(t) || + (!l.hasOwnProperty(t) && + (o.test(t) ? (u[t] = !0) : ((l[t] = !0), 0))) + ); + } + function a(t, e) { + return ( + null == e || + (t.hasBooleanValue && !e) || + (t.hasNumericValue && isNaN(e)) || + (t.hasPositiveNumericValue && e < 1) || + (t.hasOverloadedBooleanValue && !1 === e) + ); + } + var s = t(11), + i = (t(33), t(58), t(112)), + o = + (t(143), + new RegExp( + '^[' + + s.ATTRIBUTE_NAME_START_CHAR + + '][' + + s.ATTRIBUTE_NAME_CHAR + + ']*$', + )), + l = {}, + u = {}, + c = { + createMarkupForID: function (t) { + return s.ID_ATTRIBUTE_NAME + '=' + i(t); + }, + setAttributeForID: function (t, e) { + t.setAttribute(s.ID_ATTRIBUTE_NAME, e); + }, + createMarkupForRoot: function () { + return s.ROOT_ATTRIBUTE_NAME + '=""'; + }, + setAttributeForRoot: function (t) { + t.setAttribute(s.ROOT_ATTRIBUTE_NAME, ''); + }, + createMarkupForProperty: function (t, e) { + var n = s.properties.hasOwnProperty(t) ? s.properties[t] : null; + if (n) { + if (a(n, e)) return ''; + var r = n.attributeName; + return n.hasBooleanValue || + (n.hasOverloadedBooleanValue && !0 === e) + ? r + '=""' + : r + '=' + i(e); + } + return s.isCustomAttribute(t) + ? null == e + ? '' + : t + '=' + i(e) + : null; + }, + createMarkupForCustomAttribute: function (t, e) { + return r(t) && null != e ? t + '=' + i(e) : ''; + }, + setValueForProperty: function (t, e, n) { + var r = s.properties.hasOwnProperty(e) ? s.properties[e] : null; + if (r) { + var i, + o = r.mutationMethod; + o + ? o(t, n) + : a(r, n) + ? this.deleteValueForProperty(t, e) + : r.mustUseProperty + ? (t[r.propertyName] = n) + : ((o = r.attributeName), + (i = r.attributeNamespace) + ? t.setAttributeNS(i, o, '' + n) + : r.hasBooleanValue || + (r.hasOverloadedBooleanValue && !0 === n) + ? t.setAttribute(o, '') + : t.setAttribute(o, '' + n)); + } else if (s.isCustomAttribute(e)) + return void c.setValueForAttribute(t, e, n); + }, + setValueForAttribute: function (t, e, n) { + r(e) && + (null == n + ? t.removeAttribute(e) + : t.setAttribute(e, '' + n)); + }, + deleteValueForAttribute: function (t, e) { + t.removeAttribute(e); + }, + deleteValueForProperty: function (t, e) { + var n, + r = s.properties.hasOwnProperty(e) ? s.properties[e] : null; + r + ? (n = r.mutationMethod) + ? n(t, void 0) + : r.mustUseProperty + ? ((n = r.propertyName), + r.hasBooleanValue ? (t[n] = !1) : (t[n] = '')) + : t.removeAttribute(r.attributeName) + : s.isCustomAttribute(e) && t.removeAttribute(e); + }, + }; + e.exports = c; + }, + { 11: 11, 112: 112, 143: 143, 33: 33, 58: 58 }, + ], + 13: [ + function (t, e, n) { + var r = t(113), + i = t(9), + o = t(124), + a = t(129), + s = t(130); + t(138), + (e.exports = { + dangerouslyReplaceNodeWithMarkup: function (t, e) { + var n; + o.canUseDOM || r('56'), + e || r('57'), + 'HTML' === t.nodeName && r('58'), + 'string' == typeof e + ? ((n = a(e, s)[0]), t.parentNode.replaceChild(n, t)) + : i.replaceChildWithTree(t, e); + }, + }); + }, + { 113: 113, 124: 124, 129: 129, 130: 130, 138: 138, 9: 9 }, + ], + 14: [ + function (t, e, n) { + e.exports = [ + 'ResponderEventPlugin', + 'SimpleEventPlugin', + 'TapEventPlugin', + 'EnterLeaveEventPlugin', + 'ChangeEventPlugin', + 'SelectEventPlugin', + 'BeforeInputEventPlugin', + ]; + }, + {}, + ], + 15: [ + function (t, e, n) { + var s = t(19), + l = t(33), + u = t(84), + c = { + mouseEnter: { + registrationName: 'onMouseEnter', + dependencies: ['topMouseOut', 'topMouseOver'], + }, + mouseLeave: { + registrationName: 'onMouseLeave', + dependencies: ['topMouseOut', 'topMouseOver'], + }, + }; + e.exports = { + eventTypes: c, + extractEvents: function (t, e, n, r) { + if ('topMouseOver' === t && (n.relatedTarget || n.fromElement)) + return null; + if ('topMouseOut' !== t && 'topMouseOver' !== t) return null; + var i; + if ( + ((o = + r.window === r + ? r + : (o = r.ownerDocument) + ? o.defaultView || o.parentWindow + : window), + (t = + 'topMouseOut' === t + ? ((i = e), + (t = n.relatedTarget || n.toElement) + ? l.getClosestInstanceFromNode(t) + : null) + : ((i = null), e)), + i === t) + ) + return null; + var e = null == i ? o : l.getNodeFromInstance(i), + o = null == t ? o : l.getNodeFromInstance(t), + a = u.getPooled(c.mouseLeave, i, n, r), + n = + ((a.type = 'mouseleave'), + (a.target = e), + (a.relatedTarget = o), + u.getPooled(c.mouseEnter, t, n, r)); + return ( + (n.type = 'mouseenter'), + (n.target = o), + (n.relatedTarget = e), + s.accumulateEnterLeaveDispatches(a, n, i, t), + [a, n] + ); + }, + }; + }, + { 19: 19, 33: 33, 84: 84 }, + ], + 16: [ + function (t, e, n) { + function r(t) { + return d(t, !0); + } + function i(t) { + return d(t, !1); + } + function o(t) { + return '.' + t._rootNodeID; + } + var a = t(113), + l = t(17), + s = t(18), + u = t(50), + c = t(91), + A = t(98), + h = (t(138), {}), + p = null, + d = function (t, e) { + t && + (s.executeDispatchesInOrder(t, e), + t.isPersistent() || t.constructor.release(t)); + }, + t = { + injection: { + injectEventPluginOrder: l.injectEventPluginOrder, + injectEventPluginsByName: l.injectEventPluginsByName, + }, + putListener: function (t, e, n) { + 'function' != typeof n && a('94', e, typeof n); + var r = o(t), + r = + (((h[e] || (h[e] = {}))[r] = n), + l.registrationName__module__s[e]); + r && r.didPutListener && r.didPutListener(t, e, n); + }, + getListener: function (t, e) { + var n = h[e]; + if ( + (function (t, e, n) { + switch (t) { + case 'onClick': + case 'onClickCapture': + case 'onDoubleClick': + case 'onDoubleClickCapture': + case 'onMouseDown': + case 'onMouseDownCapture': + case 'onMouseMove': + case 'onMouseMoveCapture': + case 'onMouseUp': + case 'onMouseUpCapture': + return ( + n.disabled && + ('button' === (r = e) || + 'input' === r || + 'select' === r || + 'textarea' === r) + ); + default: + return; + } + var r; + })(e, t._currentElement.type, t._currentElement.props) + ) + return null; + e = o(t); + return n && n[e]; + }, + deleteListener: function (t, e) { + var n = l.registrationName__module__s[e], + n = + (n && n.willDeleteListener && n.willDeleteListener(t, e), + h[e]); + n && delete n[o(t)]; + }, + deleteAllListeners: function (t) { + var e, + n, + r = o(t); + for (e in h) + h.hasOwnProperty(e) && + h[e][r] && + ((n = l.registrationName__module__s[e]) && + n.willDeleteListener && + n.willDeleteListener(t, e), + delete h[e][r]); + }, + extractEvents: function (t, e, n, r) { + for (var i, o = l.plugins, a = 0; a < o.length; a++) { + var s = o[a]; + !s || ((s = s.extractEvents(t, e, n, r)) && (i = c(i, s))); + } + return i; + }, + enqueueEvents: function (t) { + t && (p = c(p, t)); + }, + processEventQueue: function (t) { + var e = p; + (p = null), + A(e, t ? r : i), + p && a('95'), + u.rethrowCaughtError(); + }, + __purge: function () { + h = {}; + }, + __getListenerBank: function () { + return h; + }, + }; + e.exports = t; + }, + { 113: 113, 138: 138, 17: 17, 18: 18, 50: 50, 91: 91, 98: 98 }, + ], + 17: [ + function (t, e, n) { + function i() { + if (s) + for (var t in l) { + var e = l[t], + n = s.indexOf(t); + if ((-1 < n || a('96', t), !u.plugins[n])) { + e.extractEvents || a('97', t); + var r, + i = (u.plugins[n] = e).eventTypes; + for (r in i) + !(function (t, e, n) { + u.eventNameDispatchConfigs.hasOwnProperty(n) && + a('99', n); + var r = (u.eventNameDispatchConfigs[n] = t) + .phasedRegistrationNames; + if (r) { + for (var i in r) r.hasOwnProperty(i) && o(r[i], e, n); + return 1; + } + return ( + t.registrationName && (o(t.registrationName, e, n), 1) + ); + })(i[r], e, r) && a('98', r, t); + } + } + } + function o(t, e, n) { + u.registrationName__module__s[t] && a('100', t), + (u.registrationName__module__s[t] = e), + (u.registrationNameDependencies[t] = + e.eventTypes[n].dependencies); + } + var a = t(113), + s = (t(138), null), + l = {}, + u = { + plugins: [], + eventNameDispatchConfigs: {}, + registrationName__module__s: {}, + registrationNameDependencies: {}, + possibleRegistrationNames: null, + injectEventPluginOrder: function (t) { + s && a('101'), (s = Array.prototype.slice.call(t)), i(); + }, + injectEventPluginsByName: function (t) { + var e, + n, + r = !1; + for (e in t) + t.hasOwnProperty(e) && + ((n = t[e]), + (l.hasOwnProperty(e) && l[e] === n) || + (l[e] && a('102', e), (l[e] = n), (r = !0))); + r && i(); + }, + getPlugin__module__ForEvent: function (t) { + t = t.dispatchConfig; + if (t.registrationName) + return ( + u.registrationName__module__s[t.registrationName] || null + ); + if (void 0 !== t.phasedRegistrationNames) { + var e, + n = t.phasedRegistrationNames; + for (e in n) + if (n.hasOwnProperty(e)) { + var r = u.registrationName__module__s[n[e]]; + if (r) return r; + } + } + return null; + }, + _resetEventPlugins: function () { + for (var t in ((s = null), l)) + l.hasOwnProperty(t) && delete l[t]; + u.plugins.length = 0; + var e, + n = u.eventNameDispatchConfigs; + for (e in n) n.hasOwnProperty(e) && delete n[e]; + var r, + i = u.registrationName__module__s; + for (r in i) i.hasOwnProperty(r) && delete i[r]; + }, + }; + e.exports = u; + }, + { 113: 113, 138: 138 }, + ], + 18: [ + function (t, e, n) { + function o(t, e, n, r) { + var i = t.type || 'unknown-event'; + (t.currentTarget = l.getNodeFromInstance(r)), + e + ? s.invokeGuardedCallbackWithCatch(i, n, t) + : s.invokeGuardedCallback(i, n, t), + (t.currentTarget = null); + } + var r, + a, + i = t(113), + s = t(50); + t(138), t(143); + var l = { + isEndish: function (t) { + return ( + 'topMouseUp' === t || + 'topTouchEnd' === t || + 'topTouchCancel' === t + ); + }, + isMoveish: function (t) { + return 'topMouseMove' === t || 'topTouchMove' === t; + }, + isStartish: function (t) { + return 'topMouseDown' === t || 'topTouchStart' === t; + }, + executeDirectDispatch: function (t) { + var e = t._dispatchListeners, + n = t._dispatchInstances, + n = + (Array.isArray(e) && i('103'), + (t.currentTarget = e ? l.getNodeFromInstance(n) : null), + e ? e(t) : null); + return ( + (t.currentTarget = null), + (t._dispatchListeners = null), + (t._dispatchInstances = null), + n + ); + }, + executeDispatchesInOrder: function (t, e) { + var n = t._dispatchListeners, + r = t._dispatchInstances; + if (Array.isArray(n)) + for (var i = 0; i < n.length && !t.isPropagationStopped(); i++) + o(t, e, n[i], r[i]); + else n && o(t, e, n, r); + (t._dispatchListeners = null), (t._dispatchInstances = null); + }, + executeDispatchesInOrderStopAtTrue: function (t) { + var e = (function (t) { + var e = t._dispatchListeners, + n = t._dispatchInstances; + if (Array.isArray(e)) { + for ( + var r = 0; + r < e.length && !t.isPropagationStopped(); + r++ + ) + if (e[r](t, n[r])) return n[r]; + } else if (e && e(t, n)) return n; + return null; + })(t); + return ( + (t._dispatchInstances = null), (t._dispatchListeners = null), e + ); + }, + hasDispatches: function (t) { + return !!t._dispatchListeners; + }, + getInstanceFromNode: function (t) { + return r.getInstanceFromNode(t); + }, + getNodeFromInstance: function (t) { + return r.getNodeFromInstance(t); + }, + isAncestor: function (t, e) { + return a.isAncestor(t, e); + }, + getLowestCommonAncestor: function (t, e) { + return a.getLowestCommonAncestor(t, e); + }, + getParentInstance: function (t) { + return a.getParentInstance(t); + }, + traverseTwoPhase: function (t, e, n) { + return a.traverseTwoPhase(t, e, n); + }, + traverseEnterLeave: function (t, e, n, r, i) { + return a.traverseEnterLeave(t, e, n, r, i); + }, + injection: { + injectComponentTree: function (t) { + r = t; + }, + injectTreeTraversal: function (t) { + a = t; + }, + }, + }; + e.exports = l; + }, + { 113: 113, 138: 138, 143: 143, 50: 50 }, + ], + 19: [ + function (t, e, n) { + function r(t, e, n) { + r = (r = n).dispatchConfig.phasedRegistrationNames[e]; + var r, + e = h(t, r); + e && + ((n._dispatchListeners = c(n._dispatchListeners, e)), + (n._dispatchInstances = c(n._dispatchInstances, t))); + } + function i(t) { + t && + t.dispatchConfig.phasedRegistrationNames && + u.traverseTwoPhase(t._targetInst, r, t); + } + function o(t) { + var e; + t && + t.dispatchConfig.phasedRegistrationNames && + ((e = (e = t._targetInst) ? u.getParentInstance(e) : null), + u.traverseTwoPhase(e, r, t)); + } + function a(t, e, n) { + var r; + n && + n.dispatchConfig.registrationName && + ((r = n.dispatchConfig.registrationName), + (r = h(t, r)) && + ((n._dispatchListeners = c(n._dispatchListeners, r)), + (n._dispatchInstances = c(n._dispatchInstances, t)))); + } + function s(t) { + t && t.dispatchConfig.registrationName && a(t._targetInst, 0, t); + } + var l = t(16), + u = t(18), + c = t(91), + A = t(98), + h = (t(143), l.getListener); + e.exports = { + accumulateTwoPhaseDispatches: function (t) { + A(t, i); + }, + accumulateTwoPhaseDispatchesSkipTarget: function (t) { + A(t, o); + }, + accumulateDirectDispatches: function (t) { + A(t, s); + }, + accumulateEnterLeaveDispatches: function (t, e, n, r) { + u.traverseEnterLeave(n, r, a, t, e); + }, + }; + }, + { 143: 143, 16: 16, 18: 18, 91: 91, 98: 98 }, + ], + 20: [ + function (t, e, n) { + function r(t) { + (this._root = t), + (this._startText = this.getText()), + (this._fallbackText = null); + } + var i = t(144), + o = t(24), + a = t(106); + i(r.prototype, { + destructor: function () { + (this._root = null), + (this._startText = null), + (this._fallbackText = null); + }, + getText: function () { + return 'value' in this._root ? this._root.value : this._root[a()]; + }, + getData: function () { + if (this._fallbackText) return this._fallbackText; + for ( + var t = this._startText, + e = t.length, + n = this.getText(), + r = n.length, + i = 0; + i < e && t[i] === n[i]; + i++ + ); + for (var o = e - i, a = 1; a <= o && t[e - a] === n[r - a]; a++); + return ( + (this._fallbackText = n.slice(i, 1 < a ? 1 - a : void 0)), + this._fallbackText + ); + }, + }), + o.addPoolingTo(r), + (e.exports = r); + }, + { 106: 106, 144: 144, 24: 24 }, + ], + 21: [ + function (t, e, n) { + var t = t(11), + r = t.injection.MUST_USE_PROPERTY, + i = t.injection.HAS_BOOLEAN_VALUE, + o = t.injection.HAS_NUMERIC_VALUE, + a = t.injection.HAS_POSITIVE_NUMERIC_VALUE, + s = t.injection.HAS_OVERLOADED_BOOLEAN_VALUE, + t = { + isCustomAttribute: RegExp.prototype.test.bind( + new RegExp('^(data|aria)-[' + t.ATTRIBUTE_NAME_CHAR + ']*$'), + ), + Properties: { + accept: 0, + acceptCharset: 0, + accessKey: 0, + action: 0, + allowFullScreen: i, + allowTransparency: 0, + alt: 0, + as: 0, + async: i, + autoComplete: 0, + autoPlay: i, + capture: i, + cellPadding: 0, + cellSpacing: 0, + charSet: 0, + challenge: 0, + checked: r | i, + cite: 0, + classID: 0, + className: 0, + cols: a, + colSpan: 0, + content: 0, + contentEditable: 0, + contextMenu: 0, + controls: i, + coords: 0, + crossOrigin: 0, + data: 0, + dateTime: 0, + default: i, + defer: i, + dir: 0, + disabled: i, + download: s, + draggable: 0, + encType: 0, + form: 0, + formAction: 0, + formEncType: 0, + formMethod: 0, + formNoValidate: i, + formTarget: 0, + frameBorder: 0, + headers: 0, + height: 0, + hidden: i, + high: 0, + href: 0, + hrefLang: 0, + htmlFor: 0, + httpEquiv: 0, + icon: 0, + id: 0, + inputMode: 0, + integrity: 0, + is: 0, + keyParams: 0, + keyType: 0, + kind: 0, + label: 0, + lang: 0, + list: 0, + loop: i, + low: 0, + manifest: 0, + marginHeight: 0, + marginWidth: 0, + max: 0, + maxLength: 0, + media: 0, + mediaGroup: 0, + method: 0, + min: 0, + minLength: 0, + multiple: r | i, + muted: r | i, + name: 0, + nonce: 0, + noValidate: i, + open: i, + optimum: 0, + pattern: 0, + placeholder: 0, + playsInline: i, + poster: 0, + preload: 0, + profile: 0, + radioGroup: 0, + readOnly: i, + referrerPolicy: 0, + rel: 0, + required: i, + reversed: i, + role: 0, + rows: a, + rowSpan: o, + sandbox: 0, + scope: 0, + scoped: i, + scrolling: 0, + seamless: i, + selected: r | i, + shape: 0, + size: a, + sizes: 0, + span: a, + spellCheck: 0, + src: 0, + srcDoc: 0, + srcLang: 0, + srcSet: 0, + start: o, + step: 0, + style: 0, + summary: 0, + tabIndex: 0, + target: 0, + title: 0, + type: 0, + useMap: 0, + value: 0, + width: 0, + wmode: 0, + wrap: 0, + about: 0, + datatype: 0, + inlist: 0, + prefix: 0, + property: 0, + resource: 0, + typeof: 0, + vocab: 0, + autoCapitalize: 0, + autoCorrect: 0, + autoSave: 0, + color: 0, + itemProp: 0, + itemScope: i, + itemType: 0, + itemID: 0, + itemRef: 0, + results: 0, + security: 0, + unselectable: 0, + }, + DOMAttributeNames: { + acceptCharset: 'accept-charset', + className: 'class', + htmlFor: 'for', + httpEquiv: 'http-equiv', + }, + DOMPropertyNames: {}, + DOMMutationMethods: { + value: function (t, e) { + if (null == e) return t.removeAttribute('value'); + ('number' !== t.type || + !1 === t.hasAttribute('value') || + (t.validity && + !t.validity.badInput && + t.ownerDocument.activeElement !== t)) && + t.setAttribute('value', '' + e); + }, + }, + }; + e.exports = t; + }, + { 11: 11 }, + ], + 22: [ + function (t, e, n) { + e.exports = { + escape: function (t) { + var e = { '=': '=0', ':': '=2' }; + return ( + '$' + + ('' + t).replace(/[=:]/g, function (t) { + return e[t]; + }) + ); + }, + unescape: function (t) { + var e = { '=0': '=', '=2': ':' }; + return ( + '' + + ('.' === t[0] && '$' === t[1] ? t.substring(2) : t.substring(1)) + ).replace(/(=0|=2)/g, function (t) { + return e[t]; + }); + }, + }; + }, + {}, + ], + 23: [ + function (t, e, n) { + function r(t) { + null != t.checkedLink && null != t.valueLink && a('87'); + } + function i(t) { + r(t), (null == t.value && null == t.onChange) || a('88'); + } + function o(t) { + r(t), (null == t.checked && null == t.onChange) || a('89'); + } + var a = t(113), + s = t(64), + l = t(146)(t(121).isValidElement), + u = + (t(138), + t(143), + { + button: !0, + checkbox: !0, + image: !0, + hidden: !0, + radio: !0, + reset: !0, + submit: !0, + }), + c = { + value: function (t, e, n) { + return !t[e] || + u[t.type] || + t.onChange || + t.readOnly || + t.disabled + ? null + : new Error( + 'You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.', + ); + }, + checked: function (t, e, n) { + return !t[e] || t.onChange || t.readOnly || t.disabled + ? null + : new Error( + 'You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.', + ); + }, + onChange: l.func, + }, + A = {}; + e.exports = { + checkPropTypes: function (t, e, n) { + for (var r in c) { + var i; + if ( + (i = c.hasOwnProperty(r) + ? c[r](e, r, t, 'prop', null, s) + : i) instanceof Error && + !(i.message in A) + ) { + A[i.message] = !0; + { + r = void 0; + r = void 0; + r = n; + if (r) { + r = r.getName(); + if (r); + } + } + } + } + }, + getValue: function (t) { + return t.valueLink ? (i(t), t.valueLink.value) : t.value; + }, + getChecked: function (t) { + return t.checkedLink ? (o(t), t.checkedLink.value) : t.checked; + }, + executeOnChange: function (t, e) { + return t.valueLink + ? (i(t), t.valueLink.requestChange(e.target.value)) + : t.checkedLink + ? (o(t), t.checkedLink.requestChange(e.target.checked)) + : t.onChange + ? t.onChange.call(void 0, e) + : void 0; + }, + }; + }, + { 113: 113, 121: 121, 138: 138, 143: 143, 146: 146, 64: 64 }, + ], + 24: [ + function (t, e, n) { + function r(t) { + var e; + return this.instancePool.length + ? ((e = this.instancePool.pop()), this.call(e, t), e) + : new this(t); + } + var i = t(113), + o = + (t(138), + function (t) { + t instanceof this || i('25'), + t.destructor(), + this.instancePool.length < this.poolSize && + this.instancePool.push(t); + }), + a = r; + e.exports = { + addPoolingTo: function (t, e) { + return ( + (t.instancePool = []), + (t.getPooled = e || a), + t.poolSize || (t.poolSize = 10), + (t.release = o), + t + ); + }, + oneArgumentPooler: r, + twoArgumentPooler: function (t, e) { + var n; + return this.instancePool.length + ? ((n = this.instancePool.pop()), this.call(n, t, e), n) + : new this(t, e); + }, + threeArgumentPooler: function (t, e, n) { + var r; + return this.instancePool.length + ? ((r = this.instancePool.pop()), this.call(r, t, e, n), r) + : new this(t, e, n); + }, + fourArgumentPooler: function (t, e, n, r) { + var i; + return this.instancePool.length + ? ((i = this.instancePool.pop()), this.call(i, t, e, n, r), i) + : new this(t, e, n, r); + }, + }; + }, + { 113: 113, 138: 138 }, + ], + 25: [ + function (t, e, n) { + var r, + i = t(144), + s = t(17), + o = t(51), + a = t(90), + l = t(107), + u = t(110), + c = {}, + A = !1, + h = 0, + p = { + topAbort: 'abort', + topAnimationEnd: l('animationend') || 'animationend', + topAnimationIteration: + l('animationiteration') || 'animationiteration', + topAnimationStart: l('animationstart') || 'animationstart', + topBlur: 'blur', + topCanPlay: 'canplay', + topCanPlayThrough: 'canplaythrough', + topChange: 'change', + topClick: 'click', + topCompositionEnd: 'compositionend', + topCompositionStart: 'compositionstart', + topCompositionUpdate: 'compositionupdate', + topContextMenu: 'contextmenu', + topCopy: 'copy', + topCut: 'cut', + topDoubleClick: 'dblclick', + topDrag: 'drag', + topDragEnd: 'dragend', + topDragEnter: 'dragenter', + topDragExit: 'dragexit', + topDragLeave: 'dragleave', + topDragOver: 'dragover', + topDragStart: 'dragstart', + topDrop: 'drop', + topDurationChange: 'durationchange', + topEmptied: 'emptied', + topEncrypted: 'encrypted', + topEnded: 'ended', + topError: 'error', + topFocus: 'focus', + topInput: 'input', + topKeyDown: 'keydown', + topKeyPress: 'keypress', + topKeyUp: 'keyup', + topLoadedData: 'loadeddata', + topLoadedMetadata: 'loadedmetadata', + topLoadStart: 'loadstart', + topMouseDown: 'mousedown', + topMouseMove: 'mousemove', + topMouseOut: 'mouseout', + topMouseOver: 'mouseover', + topMouseUp: 'mouseup', + topPaste: 'paste', + topPause: 'pause', + topPlay: 'play', + topPlaying: 'playing', + topProgress: 'progress', + topRateChange: 'ratechange', + topScroll: 'scroll', + topSeeked: 'seeked', + topSeeking: 'seeking', + topSelectionChange: 'selectionchange', + topStalled: 'stalled', + topSuspend: 'suspend', + topTextInput: 'textInput', + topTimeUpdate: 'timeupdate', + topTouchCancel: 'touchcancel', + topTouchEnd: 'touchend', + topTouchMove: 'touchmove', + topTouchStart: 'touchstart', + topTransitionEnd: l('transitionend') || 'transitionend', + topVolumeChange: 'volumechange', + topWaiting: 'waiting', + topWheel: 'wheel', + }, + d = '_reactListenersID' + String(Math.random()).slice(2), + f = i({}, o, { + ReactEventListener: null, + injection: { + injectReactEventListener: function (t) { + t.setHandleTopLevel(f.handleTopLevel), + (f.ReactEventListener = t); + }, + }, + setEnabled: function (t) { + f.ReactEventListener && f.ReactEventListener.setEnabled(t); + }, + isEnabled: function () { + return !( + !f.ReactEventListener || !f.ReactEventListener.isEnabled() + ); + }, + listenTo: function (t, e) { + for ( + var n = e, + r = + ((e = n), + Object.prototype.hasOwnProperty.call(e, d) || + ((e[d] = h++), (c[e[d]] = {})), + c[e[d]]), + i = s.registrationNameDependencies[t], + o = 0; + o < i.length; + o++ + ) { + var a = i[o]; + (r.hasOwnProperty(a) && r[a]) || + ('topWheel' === a + ? u('wheel') + ? f.ReactEventListener.trapBubbledEvent( + 'topWheel', + 'wheel', + n, + ) + : u('mousewheel') + ? f.ReactEventListener.trapBubbledEvent( + 'topWheel', + 'mousewheel', + n, + ) + : f.ReactEventListener.trapBubbledEvent( + 'topWheel', + 'DOMMouseScroll', + n, + ) + : 'topScroll' === a + ? u('scroll', !0) + ? f.ReactEventListener.trapCapturedEvent( + 'topScroll', + 'scroll', + n, + ) + : f.ReactEventListener.trapBubbledEvent( + 'topScroll', + 'scroll', + f.ReactEventListener.WINDOW_HANDLE, + ) + : 'topFocus' === a || 'topBlur' === a + ? (u('focus', !0) + ? (f.ReactEventListener.trapCapturedEvent( + 'topFocus', + 'focus', + n, + ), + f.ReactEventListener.trapCapturedEvent( + 'topBlur', + 'blur', + n, + )) + : u('focusin') && + (f.ReactEventListener.trapBubbledEvent( + 'topFocus', + 'focusin', + n, + ), + f.ReactEventListener.trapBubbledEvent( + 'topBlur', + 'focusout', + n, + )), + (r.topBlur = !0), + (r.topFocus = !0)) + : p.hasOwnProperty(a) && + f.ReactEventListener.trapBubbledEvent(a, p[a], n), + (r[a] = !0)); + } + }, + trapBubbledEvent: function (t, e, n) { + return f.ReactEventListener.trapBubbledEvent(t, e, n); + }, + trapCapturedEvent: function (t, e, n) { + return f.ReactEventListener.trapCapturedEvent(t, e, n); + }, + supportsEventPageXY: function () { + if (!document.createEvent) return !1; + var t = document.createEvent('MouseEvent'); + return null != t && 'pageX' in t; + }, + ensureScrollValueMonitoring: function () { + var t; + (r = void 0 === r ? f.supportsEventPageXY() : r) || + A || + ((t = a.refreshScrollValues), + f.ReactEventListener.monitorScrollValue(t), + (A = !0)); + }, + }); + e.exports = f; + }, + { 107: 107, 110: 110, 144: 144, 17: 17, 51: 51, 90: 90 }, + ], + 26: [ + function (e, n, t) { + !function (t) { + function o(t, e, n, r) { + var i = void 0 === t[n]; + null != e && i && (t[n] = d(e, !0)); + } + var p = e(66), + d = e(109), + f = (e(22), e(117)), + a = e(118); + e(143), + void 0 !== t && t.env, + (n.exports = { + instantiateChildren: function (t, e, n, r) { + if (null == t) return null; + var i = {}; + return a(t, o, i), i; + }, + updateChildren: function (t, e, n, r, i, o, a, s, l) { + if (e || t) { + var u, c, A, h; + for (u in e) + e.hasOwnProperty(u) && + ((A = (c = t && t[u]) && c._currentElement), + (h = e[u]), + null != c && f(A, h) + ? (p.receiveComponent(c, h, i, s), (e[u] = c)) + : (c && + ((r[u] = p.getHostNode(c)), + p.unmountComponent(c, !1)), + (A = d(h, !0)), + (e[u] = A), + (h = p.mountComponent(A, i, o, a, s, l)), + n.push(h))); + for (u in t) + !t.hasOwnProperty(u) || + (e && e.hasOwnProperty(u)) || + ((c = t[u]), + (r[u] = p.getHostNode(c)), + p.unmountComponent(c, !1)); + } + }, + unmountChildren: function (t, e) { + for (var n in t) + t.hasOwnProperty(n) && + ((n = t[n]), p.unmountComponent(n, e)); + }, + }); + }.call(this, void 0); + }, + { 109: 109, 117: 117, 118: 118, 143: 143, 22: 22, 66: 66 }, + ], + 27: [ + function (t, e, n) { + var r = t(8), + t = { + processChildrenUpdates: t(37).dangerouslyProcessChildrenUpdates, + replaceNodeWithMarkup: r.dangerouslyReplaceNodeWithMarkup, + }; + e.exports = t; + }, + { 37: 37, 8: 8 }, + ], + 28: [ + function (t, e, n) { + var r = t(113), + i = (t(138), !1), + o = { + replaceNodeWithMarkup: null, + processChildrenUpdates: null, + injection: { + injectEnvironment: function (t) { + i && r('104'), + (o.replaceNodeWithMarkup = t.replaceNodeWithMarkup), + (o.processChildrenUpdates = t.processChildrenUpdates), + (i = !0); + }, + }, + }; + e.exports = o; + }, + { 113: 113, 138: 138 }, + ], + 29: [ + function (t, e, n) { + function A(t) {} + var h = t(113), + l = t(144), + p = t(121), + r = t(28), + i = t(120), + o = t(50), + d = t(57), + a = (t(58), t(62)), + s = t(66), + f = t(131), + c = (t(138), t(142)), + u = t(117), + g = + (t(143), + { ImpureClass: 0, PureClass: 1, StatelessFunctional: 2 }), + m = + ((A.prototype.render = function () { + return (0, d.get(this)._currentElement.type)( + this.props, + this.context, + this.updater, + ); + }), + 1); + e.exports = { + construct: function (t) { + (this._currentElement = t), + (this._rootNodeID = 0), + (this._compositeType = null), + (this._instance = null), + (this._hostParent = null), + (this._hostContainerInfo = null), + (this._updateBatchNumber = null), + (this._pendingElement = null), + (this._pendingStateQueue = null), + (this._pendingReplaceState = !1), + (this._pendingForceUpdate = !1), + (this._renderedNodeType = null), + (this._renderedComponent = null), + (this._context = null), + (this._mountOrder = 0), + (this._topLevelWrapper = null), + (this._pendingCallbacks = null), + (this._calledComponentWillUnmount = !1); + }, + mountComponent: function (t, e, n, r) { + (this._context = r), + (this._mountOrder = m++), + (this._hostParent = e), + (this._hostContainerInfo = n); + var i, + o = this._currentElement.props, + a = this._processContext(r), + s = this._currentElement.type, + l = t.getUpdateQueue(), + u = !(!(u = s).prototype || !u.prototype.isReactComponent), + c = this._constructComponent(u, o, a, l), + u = + (u || (null != c && null != c.render) + ? (u = s).prototype && u.prototype.isPureReactComponent + ? (this._compositeType = g.PureClass) + : (this._compositeType = g.ImpureClass) + : (null === (i = c) || + !1 === c || + p.isValidElement(c) || + h('105', s.displayName || s.name || 'Component'), + (c = new A()), + (this._compositeType = g.StatelessFunctional)), + (c.props = o), + (c.context = a), + (c.refs = f), + (c.updater = l), + (this._instance = c), + d.set(c, this), + c.state); + return ( + void 0 === u && (c.state = u = null), + ('object' == typeof u && !Array.isArray(u)) || + h('106', this.getName() || 'ReactCompositeComponent'), + (this._pendingStateQueue = null), + (this._pendingReplaceState = !1), + (this._pendingForceUpdate = !1), + (s = c.unstable_handleError + ? this.performInitialMountWithErrorHandling(i, e, n, t, r) + : this.performInitialMount(i, e, n, t, r)), + c.componentDidMount && + t.getReactMountReady().enqueue(c.componentDidMount, c), + s + ); + }, + _constructComponent: function (t, e, n, r) { + return this._constructComponentWithoutOwner(t, e, n, r); + }, + _constructComponentWithoutOwner: function (t, e, n, r) { + var i = this._currentElement.type; + return t ? new i(e, n, r) : i(e, n, r); + }, + performInitialMountWithErrorHandling: function (e, n, r, i, o) { + var a, + s = i.checkpoint(); + try { + a = this.performInitialMount(e, n, r, i, o); + } catch (t) { + i.rollback(s), + this._instance.unstable_handleError(t), + this._pendingStateQueue && + (this._instance.state = this._processPendingState( + this._instance.props, + this._instance.context, + )), + (s = i.checkpoint()), + this._renderedComponent.unmountComponent(!0), + i.rollback(s), + (a = this.performInitialMount(e, n, r, i, o)); + } + return a; + }, + performInitialMount: function (t, e, n, r, i) { + var o = this._instance, + o = + (o.componentWillMount && + (o.componentWillMount(), + this._pendingStateQueue && + (o.state = this._processPendingState( + o.props, + o.context, + ))), + void 0 === t && (t = this._renderValidatedComponent()), + a.getType(t)), + t = + ((this._renderedNodeType = o), + this._instantiateReactComponent(t, o !== a.EMPTY)); + return ( + (this._renderedComponent = t), + s.mountComponent(t, r, e, n, this._processChildContext(i), 0) + ); + }, + getHostNode: function () { + return s.getHostNode(this._renderedComponent); + }, + unmountComponent: function (t) { + var e, n; + this._renderedComponent && + ((e = this._instance).componentWillUnmount && + !e._calledComponentWillUnmount && + ((e._calledComponentWillUnmount = !0), + t + ? ((n = this.getName() + '.componentWillUnmount()'), + o.invokeGuardedCallback( + n, + e.componentWillUnmount.bind(e), + )) + : e.componentWillUnmount()), + this._renderedComponent && + (s.unmountComponent(this._renderedComponent, t), + (this._renderedNodeType = null), + (this._renderedComponent = null), + (this._instance = null)), + (this._pendingStateQueue = null), + (this._pendingReplaceState = !1), + (this._pendingForceUpdate = !1), + (this._pendingCallbacks = null), + (this._pendingElement = null), + (this._context = null), + (this._rootNodeID = 0), + (this._topLevelWrapper = null), + d.remove(e)); + }, + _maskContext: function (t) { + var e = this._currentElement.type.contextTypes; + if (!e) return f; + var n, + r = {}; + for (n in e) r[n] = t[n]; + return r; + }, + _processContext: function (t) { + return this._maskContext(t); + }, + _processChildContext: function (t) { + var e, + n = this._currentElement.type, + r = this._instance; + if ((e = r.getChildContext ? r.getChildContext() : e)) { + for (var i in ('object' != typeof n.childContextTypes && + h('107', this.getName() || 'ReactCompositeComponent'), + e)) + i in n.childContextTypes || + h('108', this.getName() || 'ReactCompositeComponent', i); + return l({}, t, e); + } + return t; + }, + _checkContextTypes: function (t, e, n) {}, + receiveComponent: function (t, e, n) { + var r = this._currentElement, + i = this._context; + (this._pendingElement = null), + this.updateComponent(e, r, t, i, n); + }, + performUpdateIfNecessary: function (t) { + null != this._pendingElement + ? s.receiveComponent( + this, + this._pendingElement, + t, + this._context, + ) + : null !== this._pendingStateQueue || this._pendingForceUpdate + ? this.updateComponent( + t, + this._currentElement, + this._currentElement, + this._context, + this._context, + ) + : (this._updateBatchNumber = null); + }, + updateComponent: function (t, e, n, r, i) { + var o = this._instance; + null == o && + h('136', this.getName() || 'ReactCompositeComponent'); + var a, + s = !1, + l = + (this._context === i + ? (a = o.context) + : ((a = this._processContext(i)), (s = !0)), + e.props), + u = n.props, + e = + ((s = e !== n ? !0 : s) && + o.componentWillReceiveProps && + o.componentWillReceiveProps(u, a), + this._processPendingState(u, a)), + s = !0; + this._pendingForceUpdate || + (o.shouldComponentUpdate + ? (s = o.shouldComponentUpdate(u, e, a)) + : this._compositeType === g.PureClass && + (s = !c(l, u) || !c(o.state, e))), + (this._updateBatchNumber = null), + s + ? ((this._pendingForceUpdate = !1), + this._performComponentUpdate(n, u, e, a, t, i)) + : ((this._currentElement = n), + (this._context = i), + (o.props = u), + (o.state = e), + (o.context = a)); + }, + _processPendingState: function (t, e) { + var n = this._instance, + r = this._pendingStateQueue, + i = this._pendingReplaceState; + if ( + ((this._pendingReplaceState = !1), + (this._pendingStateQueue = null), + !r) + ) + return n.state; + if (i && 1 === r.length) return r[0]; + for ( + var o = l({}, i ? r[0] : n.state), a = i ? 1 : 0; + a < r.length; + a++ + ) { + var s = r[a]; + l(o, 'function' == typeof s ? s.call(n, o, t, e) : s); + } + return o; + }, + _performComponentUpdate: function (t, e, n, r, i, o) { + var a, + s, + l, + u = this._instance, + c = Boolean(u.componentDidUpdate); + c && ((a = u.props), (s = u.state), (l = u.context)), + u.componentWillUpdate && u.componentWillUpdate(e, n, r), + (this._currentElement = t), + (this._context = o), + (u.props = e), + (u.state = n), + (u.context = r), + this._updateRenderedComponent(i, o), + c && + i + .getReactMountReady() + .enqueue(u.componentDidUpdate.bind(u, a, s, l), u); + }, + _updateRenderedComponent: function (t, e) { + var n, + r = this._renderedComponent, + i = r._currentElement, + o = this._renderValidatedComponent(); + u(i, o) + ? s.receiveComponent(r, o, t, this._processChildContext(e)) + : ((i = s.getHostNode(r)), + s.unmountComponent(r, !1), + (n = a.getType(o)), + (this._renderedNodeType = n), + (o = this._instantiateReactComponent(o, n !== a.EMPTY)), + (this._renderedComponent = o), + (n = s.mountComponent( + o, + t, + this._hostParent, + this._hostContainerInfo, + this._processChildContext(e), + 0, + )), + this._replaceNodeWithMarkup(i, n, r)); + }, + _replaceNodeWithMarkup: function (t, e, n) { + r.replaceNodeWithMarkup(t, e, n); + }, + _renderValidatedComponentWithoutOwnerOrContext: function () { + return this._instance.render(); + }, + _renderValidatedComponent: function () { + var t; + if (this._compositeType !== g.StatelessFunctional) { + i.current = this; + try { + t = this._renderValidatedComponentWithoutOwnerOrContext(); + } finally { + i.current = null; + } + } else t = this._renderValidatedComponentWithoutOwnerOrContext(); + return ( + null === t || + !1 === t || + p.isValidElement(t) || + h('109', this.getName() || 'ReactCompositeComponent'), + t + ); + }, + attachRef: function (t, e) { + var n = this.getPublicInstance(), + e = (null == n && h('110'), e.getPublicInstance()); + (n.refs === f ? (n.refs = {}) : n.refs)[t] = e; + }, + detachRef: function (t) { + delete this.getPublicInstance().refs[t]; + }, + getName: function () { + var t = this._currentElement.type, + e = this._instance && this._instance.constructor; + return ( + t.displayName || + (e && e.displayName) || + t.name || + (e && e.name) || + null + ); + }, + getPublicInstance: function () { + var t = this._instance; + return this._compositeType === g.StatelessFunctional ? null : t; + }, + _instantiateReactComponent: null, + }; + }, + { + 113: 113, + 117: 117, + 120: 120, + 121: 121, + 131: 131, + 138: 138, + 142: 142, + 143: 143, + 144: 144, + 28: 28, + 50: 50, + 57: 57, + 58: 58, + 62: 62, + 66: 66, + }, + ], + 30: [ + function (t, e, n) { + var r = t(33), + i = t(47), + o = t(60), + a = t(66), + s = t(71), + l = t(72), + u = t(96), + c = t(103), + A = t(114), + t = + (t(143), + i.inject(), + { + findDOMNode: u, + render: o.render, + unmountComponentAtNode: o.unmountComponentAtNode, + version: l, + unstable_batchedUpdates: s.batchedUpdates, + unstable_renderSubtreeIntoContainer: A, + }); + 'undefined' != typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && + 'function' == typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject && + __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ + ComponentTree: { + getClosestInstanceFromNode: r.getClosestInstanceFromNode, + getNodeFromInstance: function (t) { + return (t = t._renderedComponent ? c(t) : t) + ? r.getNodeFromInstance(t) + : null; + }, + }, + Mount: o, + Reconciler: a, + }), + (e.exports = t); + }, + { + 103: 103, + 114: 114, + 143: 143, + 33: 33, + 47: 47, + 60: 60, + 66: 66, + 71: 71, + 72: 72, + 96: 96, + }, + ], + 31: [ + function (t, e, U) { + function l(t, e) { + e && + (!W[t._tag] || + (null == e.children && null == e.dangerouslySetInnerHTML) || + r( + '137', + t._tag, + t._currentElement._owner + ? ' Check the render method of ' + + t._currentElement._owner.getName() + + '.' + : '', + ), + null != e.dangerouslySetInnerHTML && + (null != e.children && r('60'), + ('object' == typeof e.dangerouslySetInnerHTML && + j in e.dangerouslySetInnerHTML) || + r('61')), + null != e.style && + 'object' != typeof e.style && + r( + '62', + (function (t) { + if (t) { + t = t._currentElement._owner || null; + if (t) { + t = t.getName(); + if (t) + return ' This DOM node was rendered by `' + t + '`.'; + } + } + return ''; + })(t), + )); + } + function c(t, e, n, r) { + var i; + r instanceof O || + ((i = + (i = t._hostContainerInfo)._node && i._node.nodeType === V + ? i._node + : i._ownerDocument), + H(e, i), + r + .getReactMountReady() + .enqueue(o, { inst: t, registrationName: e, listener: n })); + } + function o() { + i.putListener(this.inst, this.registrationName, this.listener); + } + function u() { + C.postMountWrapper(this); + } + function A() { + M.postMountWrapper(this); + } + function h() { + x.postMountWrapper(this); + } + function p() { + s.track(this); + } + function d() { + var t = this, + e = (t._rootNodeID || r('63'), S(t)); + switch ((e || r('64'), t._tag)) { + case 'iframe': + case 'object': + t._wrapperState.listeners = [ + a.trapBubbledEvent('topLoad', 'load', e), + ]; + break; + case 'video': + case 'audio': + for (var n in ((t._wrapperState.listeners = []), _)) + _.hasOwnProperty(n) && + t._wrapperState.listeners.push( + a.trapBubbledEvent(n, _[n], e), + ); + break; + case 'source': + t._wrapperState.listeners = [ + a.trapBubbledEvent('topError', 'error', e), + ]; + break; + case 'img': + t._wrapperState.listeners = [ + a.trapBubbledEvent('topError', 'error', e), + a.trapBubbledEvent('topLoad', 'load', e), + ]; + break; + case 'form': + t._wrapperState.listeners = [ + a.trapBubbledEvent('topReset', 'reset', e), + a.trapBubbledEvent('topSubmit', 'submit', e), + ]; + break; + case 'input': + case 'select': + case 'textarea': + t._wrapperState.listeners = [ + a.trapBubbledEvent('topInvalid', 'invalid', e), + ]; + } + } + function N() { + I.postUpdateWrapper(this); + } + function f(t, e) { + return 0 <= t.indexOf('-') || null != e.is; + } + function n(t) { + var e, + n = t.type; + (e = n), + K.call(R, e) || (J.test(e) || r('65', e), (R[e] = !0)), + (this._currentElement = t), + (this._tag = n.toLowerCase()), + (this._namespaceURI = null), + (this._renderedChildren = null), + (this._previousStyle = null), + (this._previousStyleCopy = null), + (this._hostNode = null), + (this._hostParent = null), + (this._rootNodeID = 0), + (this._domID = 0), + (this._hostContainerInfo = null), + (this._wrapperState = null), + (this._topLevelWrapper = null), + (this._flags = 0); + } + var r = t(113), + g = t(144), + m = t(2), + v = t(5), + b = t(9), + y = t(10), + w = t(11), + E = t(12), + i = t(16), + P = t(17), + a = t(25), + L = t(32), + B = t(33), + C = t(38), + x = t(39), + I = t(40), + M = t(43), + Y = (t(58), t(61)), + O = t(68), + G = (t(130), t(95)), + s = (t(138), t(110), t(142), t(108)), + z = (t(119), t(143), L), + D = i.deleteListener, + S = B.getNodeFromInstance, + H = a.listenTo, + k = P.registrationName__module__s, + F = { string: !0, number: !0 }, + j = '__html', + Q = { + children: null, + dangerouslySetInnerHTML: null, + suppressContentEditableWarning: null, + }, + V = 11, + _ = { + topAbort: 'abort', + topCanPlay: 'canplay', + topCanPlayThrough: 'canplaythrough', + topDurationChange: 'durationchange', + topEmptied: 'emptied', + topEncrypted: 'encrypted', + topEnded: 'ended', + topError: 'error', + topLoadedData: 'loadeddata', + topLoadedMetadata: 'loadedmetadata', + topLoadStart: 'loadstart', + topPause: 'pause', + topPlay: 'play', + topPlaying: 'playing', + topProgress: 'progress', + topRateChange: 'ratechange', + topSeeked: 'seeked', + topSeeking: 'seeking', + topStalled: 'stalled', + topSuspend: 'suspend', + topTimeUpdate: 'timeupdate', + topVolumeChange: 'volumechange', + topWaiting: 'waiting', + }, + T = { + area: !0, + base: !0, + br: !0, + col: !0, + embed: !0, + hr: !0, + img: !0, + input: !0, + keygen: !0, + link: !0, + meta: !0, + param: !0, + source: !0, + track: !0, + wbr: !0, + }, + q = { listing: !0, pre: !0, textarea: !0 }, + W = g({ menuitem: !0 }, T), + J = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/, + R = {}, + K = {}.hasOwnProperty, + Z = 1; + (n.displayName = 'ReactDOMComponent'), + g( + n.prototype, + (n.Mixin = { + mountComponent: function (t, e, n, r) { + (this._rootNodeID = Z++), + (this._domID = n._idCounter++), + (this._hostParent = e), + (this._hostContainerInfo = n); + var i, + o, + a, + s = this._currentElement.props; + switch (this._tag) { + case 'audio': + case 'form': + case 'iframe': + case 'img': + case 'link': + case 'object': + case 'source': + case 'video': + (this._wrapperState = { listeners: null }), + t.getReactMountReady().enqueue(d, this); + break; + case 'input': + C.mountWrapper(this, s, e), + (s = C.getHostProps(this, s)), + t.getReactMountReady().enqueue(p, this), + t.getReactMountReady().enqueue(d, this); + break; + case 'option': + x.mountWrapper(this, s, e), (s = x.getHostProps(this, s)); + break; + case 'select': + I.mountWrapper(this, s, e), + (s = I.getHostProps(this, s)), + t.getReactMountReady().enqueue(d, this); + break; + case 'textarea': + M.mountWrapper(this, s, e), + (s = M.getHostProps(this, s)), + t.getReactMountReady().enqueue(p, this), + t.getReactMountReady().enqueue(d, this); + } + switch ( + (l(this, s), + null != e + ? ((o = e._namespaceURI), (i = e._tag)) + : n._tag && ((o = n._namespaceURI), (i = n._tag)), + (o = + null == o || (o === y.svg && 'foreignobject' === i) + ? y.html + : o) === y.html && + ('svg' === this._tag + ? (o = y.svg) + : 'math' === this._tag && (o = y.mathml)), + (this._namespaceURI = o), + (a = t.useCreateElement + ? ((i = n._ownerDocument), + (a = + o === y.html + ? 'script' === this._tag + ? ((n = i.createElement('div')), + (a = this._currentElement.type), + (n.innerHTML = '<' + a + '></' + a + '>'), + n.removeChild(n.firstChild)) + : s.is + ? i.createElement( + this._currentElement.type, + s.is, + ) + : i.createElement(this._currentElement.type) + : i.createElementNS(o, this._currentElement.type)), + B.precacheNode(this, a), + (this._flags |= z.hasCachedChildNodes), + this._hostParent || E.setAttributeForRoot(a), + this._updateDOMProperties(null, s, t), + (n = b(a)), + this._createInitialChildren(t, s, r, n), + n) + : ((i = this._createOpenTagMarkupAndPutListeners(t, s)), + !(o = this._createContentMarkup(t, s, r)) && + T[this._tag] + ? i + '/>' + : i + + '>' + + o + + '</' + + this._currentElement.type + + '>')), + this._tag) + ) { + case 'input': + t.getReactMountReady().enqueue(u, this), + s.autoFocus && + t + .getReactMountReady() + .enqueue(m.focusDOMComponent, this); + break; + case 'textarea': + t.getReactMountReady().enqueue(A, this), + s.autoFocus && + t + .getReactMountReady() + .enqueue(m.focusDOMComponent, this); + break; + case 'select': + case 'button': + s.autoFocus && + t + .getReactMountReady() + .enqueue(m.focusDOMComponent, this); + break; + case 'option': + t.getReactMountReady().enqueue(h, this); + } + return a; + }, + _createOpenTagMarkupAndPutListeners: function (t, e) { + var n, + r, + i, + o = '<' + this._currentElement.type; + for (n in e) + !e.hasOwnProperty(n) || + (null != (r = e[n]) && + (k.hasOwnProperty(n) + ? r && c(this, n, r, t) + : ('style' === n && + ((r = + r && + (this._previousStyleCopy = g({}, e.style))), + (r = v.createMarkupForStyles(r, this))), + (i = null) != this._tag && f(this._tag, e) + ? Q.hasOwnProperty(n) || + (i = E.createMarkupForCustomAttribute(n, r)) + : (i = E.createMarkupForProperty(n, r)), + i && (o += ' ' + i)))); + return t.renderToStaticMarkup + ? o + : (this._hostParent || (o += ' ' + E.createMarkupForRoot()), + o + (' ' + E.createMarkupForID(this._domID))); + }, + _createContentMarkup: function (t, e, n) { + var r = '', + i = e.dangerouslySetInnerHTML; + return ( + null != i + ? null != i.__html && (r = i.__html) + : ((e = + null != (i = F[typeof e.children] ? e.children : null) + ? null + : e.children), + null != i + ? (r = G(i)) + : null != e && + (r = this.mountChildren(e, t, n).join(''))), + q[this._tag] && '\n' === r.charAt(0) ? '\n' + r : r + ); + }, + _createInitialChildren: function (t, e, n, r) { + var i = e.dangerouslySetInnerHTML; + if (null != i) null != i.__html && b.queueHTML(r, i.__html); + else { + (i = F[typeof e.children] ? e.children : null), + (e = null != i ? null : e.children); + if (null != i) '' !== i && b.queueText(r, i); + else if (null != e) + for ( + var o = this.mountChildren(e, t, n), a = 0; + a < o.length; + a++ + ) + b.queueChild(r, o[a]); + } + }, + receiveComponent: function (t, e, n) { + var r = this._currentElement; + (this._currentElement = t), this.updateComponent(e, r, t, n); + }, + updateComponent: function (t, e, n, r) { + var i = e.props, + o = this._currentElement.props; + switch (this._tag) { + case 'input': + (i = C.getHostProps(this, i)), + (o = C.getHostProps(this, o)); + break; + case 'option': + (i = x.getHostProps(this, i)), + (o = x.getHostProps(this, o)); + break; + case 'select': + (i = I.getHostProps(this, i)), + (o = I.getHostProps(this, o)); + break; + case 'textarea': + (i = M.getHostProps(this, i)), + (o = M.getHostProps(this, o)); + } + switch ( + (l(this, o), + this._updateDOMProperties(i, o, t), + this._updateDOMChildren(i, o, t, r), + this._tag) + ) { + case 'input': + C.updateWrapper(this); + break; + case 'textarea': + M.updateWrapper(this); + break; + case 'select': + t.getReactMountReady().enqueue(N, this); + } + }, + _updateDOMProperties: function (t, e, n) { + var r, i, o; + for (r in t) + if ( + !e.hasOwnProperty(r) && + t.hasOwnProperty(r) && + null != t[r] + ) + if ('style' === r) { + var a = this._previousStyleCopy; + for (i in a) + a.hasOwnProperty(i) && ((o = o || {}), (o[i] = '')); + this._previousStyleCopy = null; + } else + k.hasOwnProperty(r) + ? t[r] && D(this, r) + : f(this._tag, t) + ? Q.hasOwnProperty(r) || + E.deleteValueForAttribute(S(this), r) + : (w.properties[r] || w.isCustomAttribute(r)) && + E.deleteValueForProperty(S(this), r); + for (r in e) { + var s, + l = e[r], + u = + 'style' === r + ? this._previousStyleCopy + : null != t + ? t[r] + : void 0; + if ( + e.hasOwnProperty(r) && + l !== u && + (null != l || null != u) + ) + if ('style' === r) + if ( + (l + ? (l = this._previousStyleCopy = g({}, l)) + : (this._previousStyleCopy = null), + u) + ) { + for (i in u) + !u.hasOwnProperty(i) || + (l && l.hasOwnProperty(i)) || + ((o = o || {}), (o[i] = '')); + for (i in l) + l.hasOwnProperty(i) && + u[i] !== l[i] && + ((o = o || {}), (o[i] = l[i])); + } else o = l; + else + k.hasOwnProperty(r) + ? l + ? c(this, r, l, n) + : u && D(this, r) + : f(this._tag, e) + ? Q.hasOwnProperty(r) || + E.setValueForAttribute(S(this), r, l) + : (w.properties[r] || w.isCustomAttribute(r)) && + ((s = S(this)), + null != l + ? E.setValueForProperty(s, r, l) + : E.deleteValueForProperty(s, r)); + } + o && v.setValueForStyles(S(this), o, this); + }, + _updateDOMChildren: function (t, e, n, r) { + var i = F[typeof t.children] ? t.children : null, + o = F[typeof e.children] ? e.children : null, + a = + t.dangerouslySetInnerHTML && + t.dangerouslySetInnerHTML.__html, + s = + e.dangerouslySetInnerHTML && + e.dangerouslySetInnerHTML.__html, + t = null != i ? null : t.children, + e = null != o ? null : e.children, + l = null != i || null != a, + u = null != o || null != s; + null != t && null == e + ? this.updateChildren(null, n, r) + : l && !u && this.updateTextContent(''), + null != o + ? i !== o && this.updateTextContent('' + o) + : null != s + ? a !== s && this.updateMarkup('' + s) + : null != e && this.updateChildren(e, n, r); + }, + getHostNode: function () { + return S(this); + }, + unmountComponent: function (t) { + switch (this._tag) { + case 'audio': + case 'form': + case 'iframe': + case 'img': + case 'link': + case 'object': + case 'source': + case 'video': + var e = this._wrapperState.listeners; + if (e) for (var n = 0; n < e.length; n++) e[n].remove(); + break; + case 'input': + case 'textarea': + s.stopTracking(this); + break; + case 'html': + case 'head': + case 'body': + r('66', this._tag); + } + this.unmountChildren(t), + B.uncacheNode(this), + i.deleteAllListeners(this), + (this._rootNodeID = 0), + (this._domID = 0), + (this._wrapperState = null); + }, + getPublicInstance: function () { + return S(this); + }, + }), + Y.Mixin, + ), + (e.exports = n); + }, + { + 10: 10, + 108: 108, + 11: 11, + 110: 110, + 113: 113, + 119: 119, + 12: 12, + 130: 130, + 138: 138, + 142: 142, + 143: 143, + 144: 144, + 16: 16, + 17: 17, + 2: 2, + 25: 25, + 32: 32, + 33: 33, + 38: 38, + 39: 39, + 40: 40, + 43: 43, + 5: 5, + 58: 58, + 61: 61, + 68: 68, + 9: 9, + 95: 95, + }, + ], + 32: [ + function (t, e, n) { + e.exports = { hasCachedChildNodes: 1 }; + }, + {}, + ], + 33: [ + function (t, e, n) { + function u(t) { + for (var e; (e = t._renderedComponent); ) t = e; + return t; + } + function c(t, e) { + t = u(t); + (t._hostNode = e)[s] = t; + } + function i(t, e) { + if (!(t._flags & p.hasCachedChildNodes)) { + var n = t._renderedChildren, + r = e.firstChild; + t: for (var i in n) + if (n.hasOwnProperty(i)) { + var o = n[i], + a = u(o)._domID; + if (0 !== a) { + for (; null !== r; r = r.nextSibling) + if ( + ((l = a), + (1 === (s = r).nodeType && + s.getAttribute(h) === String(l)) || + (8 === s.nodeType && + s.nodeValue === ' react-text: ' + l + ' ') || + (8 === s.nodeType && + s.nodeValue === ' react-empty: ' + l + ' ')) + ) { + c(o, r); + continue t; + } + A('32', a); + } + } + t._flags |= p.hasCachedChildNodes; + } + var s, l; + } + function r(t) { + if (t[s]) return t[s]; + for (var e, n, r = []; !t[s]; ) { + if ((r.push(t), !t.parentNode)) return null; + t = t.parentNode; + } + for (; t && (n = t[s]); t = r.pop()) (e = n), r.length && i(n, t); + return e; + } + var A = t(113), + o = t(11), + a = t(32), + h = (t(138), o.ID_ATTRIBUTE_NAME), + p = a, + s = + '__reactInternalInstance$' + Math.random().toString(36).slice(2); + e.exports = { + getClosestInstanceFromNode: r, + getInstanceFromNode: function (t) { + var e = r(t); + return null != e && e._hostNode === t ? e : null; + }, + getNodeFromInstance: function (t) { + if ((void 0 === t._hostNode && A('33'), !t._hostNode)) { + for (var e = []; !t._hostNode; ) + e.push(t), t._hostParent || A('34'), (t = t._hostParent); + for (; e.length; t = e.pop()) i(t, t._hostNode); + } + return t._hostNode; + }, + precacheChildNodes: i, + precacheNode: c, + uncacheNode: function (t) { + var e = t._hostNode; + e && (delete e[s], (t._hostNode = null)); + }, + }; + }, + { 11: 11, 113: 113, 138: 138, 32: 32 }, + ], + 34: [ + function (t, e, n) { + t(119); + var r = 9; + e.exports = function (t, e) { + return { + _topLevelWrapper: t, + _idCounter: 1, + _ownerDocument: e + ? e.nodeType === r + ? e + : e.ownerDocument + : null, + _node: e, + _tag: e ? e.nodeName.toLowerCase() : null, + _namespaceURI: e ? e.namespaceURI : null, + }; + }; + }, + { 119: 119 }, + ], + 35: [ + function (t, e, n) { + function r(t) { + (this._currentElement = null), + (this._hostNode = null), + (this._hostParent = null), + (this._hostContainerInfo = null), + (this._domID = 0); + } + var i = t(144), + o = t(9), + a = t(33); + i(r.prototype, { + mountComponent: function (t, e, n, r) { + var i = n._idCounter++, + i = + ((this._domID = i), + (this._hostParent = e), + (this._hostContainerInfo = n), + ' react-empty: ' + this._domID + ' '); + return t.useCreateElement + ? ((e = n._ownerDocument.createComment(i)), + a.precacheNode(this, e), + o(e)) + : t.renderToStaticMarkup + ? '' + : '\x3c!--' + i + '--\x3e'; + }, + receiveComponent: function () {}, + getHostNode: function () { + return a.getNodeFromInstance(this); + }, + unmountComponent: function () { + a.uncacheNode(this); + }, + }), + (e.exports = r); + }, + { 144: 144, 33: 33, 9: 9 }, + ], + 36: [ + function (t, e, n) { + e.exports = { useCreateElement: !0, useFiber: !1 }; + }, + {}, + ], + 37: [ + function (t, e, n) { + var r = t(8), + i = t(33); + e.exports = { + dangerouslyProcessChildrenUpdates: function (t, e) { + t = i.getNodeFromInstance(t); + r.processUpdates(t, e); + }, + }; + }, + { 33: 33, 8: 8 }, + ], + 38: [ + function (t, e, n) { + function l() { + this._rootNodeID && r.updateWrapper(this); + } + var u = t(113), + i = t(144), + o = t(12), + c = t(23), + A = t(33), + h = t(71), + r = + (t(138), + t(143), + { + getHostProps: function (t, e) { + var n = c.getValue(e), + r = c.getChecked(e); + return i( + { type: void 0, step: void 0, min: void 0, max: void 0 }, + e, + { + defaultChecked: void 0, + defaultValue: void 0, + value: null != n ? n : t._wrapperState.initialValue, + checked: null != r ? r : t._wrapperState.initialChecked, + onChange: t._wrapperState.onChange, + }, + ); + }, + mountWrapper: function (t, e) { + var n = e.defaultValue; + t._wrapperState = { + initialChecked: + null != e.checked ? e.checked : e.defaultChecked, + initialValue: null != e.value ? e.value : n, + listeners: null, + onChange: function (t) { + var e = this._currentElement.props, + t = c.executeOnChange(e, t), + n = (h.asap(l, this), e.name); + if ('radio' === e.type && null != n) { + for ( + var r = A.getNodeFromInstance(this), i = r; + i.parentNode; + + ) + i = i.parentNode; + for ( + var o = i.querySelectorAll( + 'input[name=' + + JSON.stringify('' + n) + + '][type="radio"]', + ), + a = 0; + a < o.length; + a++ + ) { + var s = o[a]; + s !== r && + s.form === r.form && + ((s = A.getInstanceFromNode(s)) || u('90'), + h.asap(l, s)); + } + } + return t; + }.bind(t), + controlled: + 'checkbox' === (n = e).type || 'radio' === n.type + ? null != n.checked + : null != n.value, + }; + }, + updateWrapper: function (t) { + var e, + n = t._currentElement.props, + r = n.checked, + r = + (null != r && + o.setValueForProperty( + A.getNodeFromInstance(t), + 'checked', + r || !1, + ), + A.getNodeFromInstance(t)), + t = c.getValue(n); + null != t + ? 0 === t && '' === r.value + ? (r.value = '0') + : 'number' === n.type + ? (t != (e = parseFloat(r.value, 10) || 0) || + (t == e && r.value != t)) && + (r.value = '' + t) + : r.value !== '' + t && (r.value = '' + t) + : (null == n.value && + null != n.defaultValue && + r.defaultValue !== '' + n.defaultValue && + (r.defaultValue = '' + n.defaultValue), + null == n.checked && + null != n.defaultChecked && + (r.defaultChecked = !!n.defaultChecked)); + }, + postMountWrapper: function (t) { + var e = t._currentElement.props, + n = A.getNodeFromInstance(t); + switch (e.type) { + case 'submit': + case 'reset': + break; + case 'color': + case 'date': + case 'datetime': + case 'datetime-local': + case 'month': + case 'time': + case 'week': + (n.value = ''), (n.value = n.defaultValue); + break; + default: + n.value = n.value; + } + t = n.name; + '' !== t && (n.name = ''), + (n.defaultChecked = !n.defaultChecked), + (n.defaultChecked = !n.defaultChecked), + '' !== t && (n.name = t); + }, + }); + e.exports = r; + }, + { + 113: 113, + 12: 12, + 138: 138, + 143: 143, + 144: 144, + 23: 23, + 33: 33, + 71: 71, + }, + ], + 39: [ + function (t, e, n) { + function s(t) { + var e = ''; + return ( + i.Children.forEach(t, function (t) { + null != t && + ('string' == typeof t || 'number' == typeof t ? (e += t) : 0); + }), + e + ); + } + var r = t(144), + i = t(121), + o = t(33), + l = t(40); + t(143); + e.exports = { + mountWrapper: function (t, e, n) { + var r = null, + i = + (null == n || + (null != + (n = 'optgroup' === (n = n)._tag ? n._hostParent : n) && + 'select' === n._tag && + (r = l.getSelectValueContext(n))), + null); + if (null != r) { + var o = null != e.value ? e.value + '' : s(e.children), + i = !1; + if (Array.isArray(r)) { + for (var a = 0; a < r.length; a++) + if ('' + r[a] === o) { + i = !0; + break; + } + } else i = '' + r === o; + } + t._wrapperState = { selected: i }; + }, + postMountWrapper: function (t) { + var e = t._currentElement.props; + null != e.value && + o.getNodeFromInstance(t).setAttribute('value', e.value); + }, + getHostProps: function (t, e) { + var n = r({ selected: void 0, children: void 0 }, e), + t = + (null != t._wrapperState.selected && + (n.selected = t._wrapperState.selected), + s(e.children)); + return t && (n.children = t), n; + }, + }; + }, + { 121: 121, 143: 143, 144: 144, 33: 33, 40: 40 }, + ], + 40: [ + function (t, e, n) { + function r() { + var t, e; + this._rootNodeID && + this._wrapperState.pendingUpdate && + ((this._wrapperState.pendingUpdate = !1), + (t = this._currentElement.props), + null != (e = a.getValue(t)) && i(this, Boolean(t.multiple), e)); + } + function i(t, e, n) { + var r, + i, + o = s.getNodeFromInstance(t).options; + if (e) { + for (r = {}, i = 0; i < n.length; i++) r['' + n[i]] = !0; + for (i = 0; i < o.length; i++) { + var a = r.hasOwnProperty(o[i].value); + o[i].selected !== a && (o[i].selected = a); + } + } else { + for (r = '' + n, i = 0; i < o.length; i++) + if (o[i].value === r) return (o[i].selected = !0); + o.length && (o[0].selected = !0); + } + } + var o = t(144), + a = t(23), + s = t(33), + l = t(71), + u = (t(143), !1); + e.exports = { + getHostProps: function (t, e) { + return o({}, e, { + onChange: t._wrapperState.onChange, + value: void 0, + }); + }, + mountWrapper: function (t, e) { + var n = a.getValue(e); + (t._wrapperState = { + pendingUpdate: !1, + initialValue: null != n ? n : e.defaultValue, + listeners: null, + onChange: function (t) { + var e = this._currentElement.props, + e = a.executeOnChange(e, t); + return ( + this._rootNodeID && (this._wrapperState.pendingUpdate = !0), + l.asap(r, this), + e + ); + }.bind(t), + wasMultiple: Boolean(e.multiple), + }), + void 0 === e.value || + void 0 === e.defaultValue || + u || + (u = !0); + }, + getSelectValueContext: function (t) { + return t._wrapperState.initialValue; + }, + postUpdateWrapper: function (t) { + var e = t._currentElement.props, + n = + ((t._wrapperState.initialValue = void 0), + t._wrapperState.wasMultiple), + r = + ((t._wrapperState.wasMultiple = Boolean(e.multiple)), + a.getValue(e)); + null != r + ? ((t._wrapperState.pendingUpdate = !1), + i(t, Boolean(e.multiple), r)) + : n !== Boolean(e.multiple) && + (null != e.defaultValue + ? i(t, Boolean(e.multiple), e.defaultValue) + : i(t, Boolean(e.multiple), e.multiple ? [] : '')); + }, + }; + }, + { 143: 143, 144: 144, 23: 23, 33: 33, 71: 71 }, + ], + 41: [ + function (t, e, n) { + function l(t, e, n, r) { + return t === n && e === r; + } + var r = t(124), + a = t(105), + s = t(106), + t = + r.canUseDOM && + 'selection' in document && + !('getSelection' in window); + e.exports = { + getOffsets: t + ? function (t) { + var e = document.selection.createRange(), + n = e.text.length, + r = e.duplicate(); + return ( + r.moveToElementText(t), + r.setEndPoint('EndToStart', e), + { start: (t = r.text.length), end: t + n } + ); + } + : function (t) { + if ( + !(a = window.getSelection && window.getSelection()) || + 0 === a.rangeCount + ) + return null; + var e = a.anchorNode, + n = a.anchorOffset, + r = a.focusNode, + i = a.focusOffset, + o = a.getRangeAt(0); + try { + o.startContainer.nodeType, o.endContainer.nodeType; + } catch (t) { + return null; + } + var a = l( + a.anchorNode, + a.anchorOffset, + a.focusNode, + a.focusOffset, + ) + ? 0 + : o.toString().length, + s = o.cloneRange(); + return ( + s.selectNodeContents(t), + s.setEnd(o.startContainer, o.startOffset), + (s = + (o = l( + s.startContainer, + s.startOffset, + s.endContainer, + s.endOffset, + ) + ? 0 + : s.toString().length) + a), + (a = document.createRange()).setStart(e, n), + a.setEnd(r, i), + { start: (e = a.collapsed) ? s : o, end: e ? o : s } + ); + }, + setOffsets: t + ? function (t, e) { + var n, + r = document.selection.createRange().duplicate(), + e = + void 0 === e.end + ? (n = e.start) + : e.start > e.end + ? ((n = e.end), e.start) + : ((n = e.start), e.end); + r.moveToElementText(t), + r.moveStart('character', n), + r.setEndPoint('EndToStart', r), + r.moveEnd('character', e - n), + r.select(); + } + : function (t, e) { + var n, r, i, o; + window.getSelection && + ((n = window.getSelection()), + (i = t[s()].length), + (r = Math.min(e.start, i)), + (e = void 0 === e.end ? r : Math.min(e.end, i)), + !n.extend && e < r && ((i = e), (e = r), (r = i)), + (i = a(t, r)), + (t = a(t, e)), + i && + t && + ((o = document.createRange()).setStart(i.node, i.offset), + n.removeAllRanges(), + e < r + ? (n.addRange(o), n.extend(t.node, t.offset)) + : (o.setEnd(t.node, t.offset), n.addRange(o)))); + }, + }; + }, + { 105: 105, 106: 106, 124: 124 }, + ], + 42: [ + function (t, e, n) { + function r(t) { + (this._currentElement = t), + (this._stringText = '' + t), + (this._hostNode = null), + (this._hostParent = null), + (this._domID = 0), + (this._mountIndex = 0), + (this._closingComment = null), + (this._commentNodes = null); + } + var i = t(113), + o = t(144), + a = t(8), + s = t(9), + l = t(33), + u = t(95); + t(138), t(119); + o(r.prototype, { + mountComponent: function (t, e, n, r) { + var i, + o = n._idCounter++, + a = ' react-text: ' + o + ' '; + if ( + ((this._domID = o), (this._hostParent = e), t.useCreateElement) + ) + return ( + (e = (o = n._ownerDocument).createComment(a)), + (n = o.createComment(' /react-text ')), + (i = s(o.createDocumentFragment())), + s.queueChild(i, s(e)), + this._stringText && + s.queueChild(i, s(o.createTextNode(this._stringText))), + s.queueChild(i, s(n)), + l.precacheNode(this, e), + (this._closingComment = n), + i + ); + o = u(this._stringText); + return t.renderToStaticMarkup + ? o + : '\x3c!--' + a + '--\x3e' + o + '\x3c!-- /react-text --\x3e'; + }, + receiveComponent: function (t, e) { + var n; + t !== this._currentElement && + (t = '' + (this._currentElement = t)) !== this._stringText && + ((this._stringText = t), + (n = this.getHostNode()), + a.replaceDelimitedText(n[0], n[1], t)); + }, + getHostNode: function () { + var t = this._commentNodes; + if (t) return t; + if (!this._closingComment) + for (var e = l.getNodeFromInstance(this).nextSibling; ; ) { + if ( + (null == e && i('67', this._domID), + 8 === e.nodeType && ' /react-text ' === e.nodeValue) + ) { + this._closingComment = e; + break; + } + e = e.nextSibling; + } + return ( + (t = [this._hostNode, this._closingComment]), + (this._commentNodes = t) + ); + }, + unmountComponent: function () { + (this._closingComment = null), + (this._commentNodes = null), + l.uncacheNode(this); + }, + }), + (e.exports = r); + }, + { 113: 113, 119: 119, 138: 138, 144: 144, 33: 33, 8: 8, 9: 9, 95: 95 }, + ], + 43: [ + function (t, e, n) { + function i() { + this._rootNodeID && u.updateWrapper(this); + } + var o = t(113), + r = t(144), + a = t(23), + s = t(33), + l = t(71), + u = + (t(138), + t(143), + { + getHostProps: function (t, e) { + return ( + null != e.dangerouslySetInnerHTML && o('91'), + r({}, e, { + value: void 0, + defaultValue: void 0, + children: '' + t._wrapperState.initialValue, + onChange: t._wrapperState.onChange, + }) + ); + }, + mountWrapper: function (t, e) { + var n = a.getValue(e), + r = n; + null == n && + ((n = e.defaultValue), + null != (e = e.children) && + (null != n && o('92'), + Array.isArray(e) && + (e.length <= 1 || o('93'), (e = e[0])), + (n = '' + e)), + (r = n = null == n ? '' : n)), + (t._wrapperState = { + initialValue: '' + r, + listeners: null, + onChange: function (t) { + var e = this._currentElement.props, + e = a.executeOnChange(e, t); + return l.asap(i, this), e; + }.bind(t), + }); + }, + updateWrapper: function (t) { + var e = t._currentElement.props, + t = s.getNodeFromInstance(t), + n = a.getValue(e); + null != n && + ((n = '' + n) !== t.value && (t.value = n), + null == e.defaultValue && (t.defaultValue = n)), + null != e.defaultValue && (t.defaultValue = e.defaultValue); + }, + postMountWrapper: function (t) { + var e = s.getNodeFromInstance(t), + n = e.textContent; + n === t._wrapperState.initialValue && (e.value = n); + }, + }); + e.exports = u; + }, + { 113: 113, 138: 138, 143: 143, 144: 144, 23: 23, 33: 33, 71: 71 }, + ], + 44: [ + function (t, e, n) { + function u(t, e) { + '_hostNode' in t || s('33'), '_hostNode' in e || s('33'); + for (var n = 0, r = t; r; r = r._hostParent) n++; + for (var i = 0, o = e; o; o = o._hostParent) i++; + for (; 0 < n - i; ) (t = t._hostParent), n--; + for (; 0 < i - n; ) (e = e._hostParent), i--; + for (var a = n; a--; ) { + if (t === e) return t; + (t = t._hostParent), (e = e._hostParent); + } + return null; + } + var s = t(113); + t(138), + (e.exports = { + isAncestor: function (t, e) { + '_hostNode' in t || s('35'), '_hostNode' in e || s('35'); + for (; e; ) { + if (e === t) return !0; + e = e._hostParent; + } + return !1; + }, + getLowestCommonAncestor: u, + getParentInstance: function (t) { + return '_hostNode' in t || s('36'), t._hostParent; + }, + traverseTwoPhase: function (t, e, n) { + for (var r, i = []; t; ) i.push(t), (t = t._hostParent); + for (r = i.length; 0 < r--; ) e(i[r], 'captured', n); + for (r = 0; r < i.length; r++) e(i[r], 'bubbled', n); + }, + traverseEnterLeave: function (t, e, n, r, i) { + for (var o = t && e ? u(t, e) : null, a = []; t && t !== o; ) + a.push(t), (t = t._hostParent); + for (var s, l = []; e && e !== o; ) + l.push(e), (e = e._hostParent); + for (s = 0; s < a.length; s++) n(a[s], 'bubbled', r); + for (s = l.length; 0 < s--; ) n(l[s], 'captured', i); + }, + }); + }, + { 113: 113, 138: 138 }, + ], + 45: [ + function (t, e, n) { + var r = t(121), + t = t(30); + r.addons && + (r.__SECRET_INJECTED_REACT_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = t), + (e.exports = t); + }, + { 121: 121, 30: 30 }, + ], + 46: [ + function (t, e, n) { + function r() { + this.reinitializeTransaction(); + } + var i = t(144), + o = t(71), + a = t(89), + t = t(130), + s = { + initialize: t, + close: function () { + c.isBatchingUpdates = !1; + }, + }, + l = [{ initialize: t, close: o.flushBatchedUpdates.bind(o) }, s], + u = + (i(r.prototype, a, { + getTransactionWrappers: function () { + return l; + }, + }), + new r()), + c = { + isBatchingUpdates: !1, + batchedUpdates: function (t, e, n, r, i, o) { + var a = c.isBatchingUpdates; + return ( + (c.isBatchingUpdates = !0), + a ? t(e, n, r, i, o) : u.perform(t, null, e, n, r, i, o) + ); + }, + }; + e.exports = c; + }, + { 130: 130, 144: 144, 71: 71, 89: 89 }, + ], + 47: [ + function (t, e, n) { + var r = t(1), + i = t(3), + o = t(7), + a = t(14), + s = t(15), + l = t(21), + u = t(27), + c = t(31), + A = t(33), + h = t(35), + p = t(44), + d = t(42), + f = t(46), + g = t(52), + m = t(55), + v = t(65), + b = t(73), + y = t(74), + w = t(75), + E = !1; + e.exports = { + inject: function () { + E || + ((E = !0), + m.EventEmitter.injectReactEventListener(g), + m.EventPluginHub.injectEventPluginOrder(a), + m.EventPluginUtils.injectComponentTree(A), + m.EventPluginUtils.injectTreeTraversal(p), + m.EventPluginHub.injectEventPluginsByName({ + SimpleEventPlugin: w, + EnterLeaveEventPlugin: s, + ChangeEventPlugin: o, + SelectEventPlugin: y, + BeforeInputEventPlugin: i, + }), + m.HostComponent.injectGenericComponentClass(c), + m.HostComponent.injectTextComponentClass(d), + m.DOMProperty.injectDOMPropertyConfig(r), + m.DOMProperty.injectDOMPropertyConfig(l), + m.DOMProperty.injectDOMPropertyConfig(b), + m.EmptyComponent.injectEmptyComponentFactory(function (t) { + return new h(t); + }), + m.Updates.injectReconcileTransaction(v), + m.Updates.injectBatchingStrategy(f), + m.Component.injectEnvironment(u)); + }, + }; + }, + { + 1: 1, + 14: 14, + 15: 15, + 21: 21, + 27: 27, + 3: 3, + 31: 31, + 33: 33, + 35: 35, + 42: 42, + 44: 44, + 46: 46, + 52: 52, + 55: 55, + 65: 65, + 7: 7, + 73: 73, + 74: 74, + 75: 75, + }, + ], + 48: [ + function (t, e, n) { + var r = + ('function' == typeof Symbol && + Symbol.for && + Symbol.for('react.element')) || + 60103; + e.exports = r; + }, + {}, + ], + 49: [ + function (t, e, n) { + var r, + i = { + create: function (t) { + return r(t); + }, + injection: { + injectEmptyComponentFactory: function (t) { + r = t; + }, + }, + }; + e.exports = i; + }, + {}, + ], + 50: [ + function (t, e, n) { + function r(t, e, n) { + try { + e(n); + } catch (t) { + null === i && (i = t); + } + } + var i = null; + e.exports = { + invokeGuardedCallback: r, + invokeGuardedCallbackWithCatch: r, + rethrowCaughtError: function () { + var t; + if (i) throw ((t = i), (i = null), t); + }, + }; + }, + {}, + ], + 51: [ + function (t, e, n) { + var i = t(16); + e.exports = { + handleTopLevel: function (t, e, n, r) { + (t = i.extractEvents(t, e, n, r)), + i.enqueueEvents(t), + i.processEventQueue(!1); + }, + }; + }, + { 16: 16 }, + ], + 52: [ + function (t, e, n) { + function r(t, e) { + (this.topLevelType = t), + (this.nativeEvent = e), + (this.ancestors = []); + } + function i(t) { + for ( + var e, n = A(t.nativeEvent), r = u.getClosestInstanceFromNode(n); + t.ancestors.push(r), + (r = + r && + (function (t) { + for (; t._hostParent; ) t = t._hostParent; + var e = u.getNodeFromInstance(t).parentNode; + return u.getClosestInstanceFromNode(e); + })(r)); + + ); + for (var i = 0; i < t.ancestors.length; i++) + (e = t.ancestors[i]), + p._handleTopLevel( + t.topLevelType, + e, + t.nativeEvent, + A(t.nativeEvent), + ); + } + var o = t(144), + a = t(123), + s = t(124), + l = t(24), + u = t(33), + c = t(71), + A = t(102), + h = t(135), + p = + (o(r.prototype, { + destructor: function () { + (this.topLevelType = null), + (this.nativeEvent = null), + (this.ancestors.length = 0); + }, + }), + l.addPoolingTo(r, l.twoArgumentPooler), + { + _enabled: !0, + _handleTopLevel: null, + WINDOW_HANDLE: s.canUseDOM ? window : null, + setHandleTopLevel: function (t) { + p._handleTopLevel = t; + }, + setEnabled: function (t) { + p._enabled = !!t; + }, + isEnabled: function () { + return p._enabled; + }, + trapBubbledEvent: function (t, e, n) { + return n + ? a.listen(n, e, p.dispatchEvent.bind(null, t)) + : null; + }, + trapCapturedEvent: function (t, e, n) { + return n + ? a.capture(n, e, p.dispatchEvent.bind(null, t)) + : null; + }, + monitorScrollValue: function (t) { + t = function (t) { + t(h(window)); + }.bind(null, t); + a.listen(window, 'scroll', t); + }, + dispatchEvent: function (t, e) { + if (p._enabled) { + t = r.getPooled(t, e); + try { + c.batchedUpdates(i, t); + } finally { + r.release(t); + } + } + }, + }); + e.exports = p; + }, + { + 102: 102, + 123: 123, + 124: 124, + 135: 135, + 144: 144, + 24: 24, + 33: 33, + 71: 71, + }, + ], + 53: [ + function (t, e, n) { + e.exports = { logTopLevelRenders: !1 }; + }, + {}, + ], + 54: [ + function (t, e, n) { + var r = t(113), + i = (t(138), null), + o = null; + e.exports = { + createInternalComponent: function (t) { + return i || r('111', t.type), new i(t); + }, + createInstanceForText: function (t) { + return new o(t); + }, + isTextComponent: function (t) { + return t instanceof o; + }, + injection: { + injectGenericComponentClass: function (t) { + i = t; + }, + injectTextComponentClass: function (t) { + o = t; + }, + }, + }; + }, + { 113: 113, 138: 138 }, + ], + 55: [ + function (t, e, n) { + var r = t(11), + i = t(16), + o = t(18), + a = t(28), + s = t(49), + l = t(25), + u = t(54), + t = t(71), + a = { + Component: a.injection, + DOMProperty: r.injection, + EmptyComponent: s.injection, + EventPluginHub: i.injection, + EventPluginUtils: o.injection, + EventEmitter: l.injection, + HostComponent: u.injection, + Updates: t.injection, + }; + e.exports = a; + }, + { 11: 11, 16: 16, 18: 18, 25: 25, 28: 28, 49: 49, 54: 54, 71: 71 }, + ], + 56: [ + function (t, e, n) { + var o = t(41), + r = t(127), + i = t(132), + a = t(133), + s = { + hasSelectionCapabilities: function (t) { + var e = t && t.nodeName && t.nodeName.toLowerCase(); + return ( + e && + (('input' === e && 'text' === t.type) || + 'textarea' === e || + 'true' === t.contentEditable) + ); + }, + getSelectionInformation: function () { + var t = a(); + return { + focusedElem: t, + selectionRange: s.hasSelectionCapabilities(t) + ? s.getSelection(t) + : null, + }; + }, + restoreSelection: function (t) { + var e = a(), + n = t.focusedElem, + t = t.selectionRange; + e !== n && + r(document.documentElement, n) && + (s.hasSelectionCapabilities(n) && s.setSelection(n, t), i(n)); + }, + getSelection: function (t) { + var e, n; + return ( + 'selectionStart' in t + ? (e = { start: t.selectionStart, end: t.selectionEnd }) + : document.selection && + t.nodeName && + 'input' === t.nodeName.toLowerCase() + ? (n = + document.selection.createRange()).parentElement() === + t && + (e = { + start: -n.moveStart('character', -t.value.length), + end: -n.moveEnd('character', -t.value.length), + }) + : (e = o.getOffsets(t)), + e || { start: 0, end: 0 } + ); + }, + setSelection: function (t, e) { + var n, + r = e.start, + i = e.end; + void 0 === i && (i = r), + 'selectionStart' in t + ? ((t.selectionStart = r), + (t.selectionEnd = Math.min(i, t.value.length))) + : document.selection && + t.nodeName && + 'input' === t.nodeName.toLowerCase() + ? ((n = t.createTextRange()).collapse(!0), + n.moveStart('character', r), + n.moveEnd('character', i - r), + n.select()) + : o.setOffsets(t, e); + }, + }; + e.exports = s; + }, + { 127: 127, 132: 132, 133: 133, 41: 41 }, + ], + 57: [ + function (t, e, n) { + e.exports = { + remove: function (t) { + t._reactInternalInstance = void 0; + }, + get: function (t) { + return t._reactInternalInstance; + }, + has: function (t) { + return void 0 !== t._reactInternalInstance; + }, + set: function (t, e) { + t._reactInternalInstance = e; + }, + }; + }, + {}, + ], + 58: [ + function (t, e, n) { + e.exports = { debugTool: null }; + }, + {}, + ], + 59: [ + function (t, e, n) { + var r = t(92), + i = /\/?>/, + o = /^<\!\-\-/, + a = { + CHECKSUM_ATTR_NAME: 'data-react-checksum', + addChecksumToMarkup: function (t) { + var e = r(t); + return o.test(t) + ? t + : t.replace(i, ' ' + a.CHECKSUM_ATTR_NAME + '="' + e + '"$&'); + }, + canReuseMarkup: function (t, e) { + e = + (e = e.getAttribute(a.CHECKSUM_ATTR_NAME)) && parseInt(e, 10); + return r(t) === e; + }, + }; + e.exports = a; + }, + { 92: 92 }, + ], + 60: [ + function (t, e, U) { + function u(t) { + return t + ? t.nodeType === F + ? t.documentElement + : t.firstChild + : null; + } + function o(t, e, n, r, i) { + v.logTopLevelRenders && + ((o = + 'React mount: ' + + ('string' == typeof (o = t._currentElement.props.child.type) + ? o + : o.displayName || o.name)), + console.time(o)); + var o, + i = w.mountComponent(t, n, null, g(t, e), i, 0); + o && console.timeEnd(o), + (t._renderedComponent._topLevelWrapper = t), + R._mountImageIntoNode(i, e, t, r, n); + } + function i(t, e, n, r) { + var i = B.ReactReconcileTransaction.getPooled( + !n && m.useCreateElement, + ); + i.perform(o, null, t, e, i, n, r), + B.ReactReconcileTransaction.release(i); + } + function n(t, e, n) { + for ( + w.unmountComponent(t, n), + e.nodeType === F && (e = e.documentElement); + e.lastChild; + + ) + e.removeChild(e.lastChild); + } + function c(t) { + var t = u(t); + if (t) return !(!(t = f.getInstanceFromNode(t)) || !t._hostParent); + } + function s(t) { + return ( + t && (t.nodeType === k || t.nodeType === F || t.nodeType === Q) + ); + } + function A(t) { + t = + (t = (t = u((t = t))) && f.getInstanceFromNode(t)) && + !t._hostParent + ? t + : null; + return t ? t._hostContainerInfo._topLevelWrapper : null; + } + function h() { + this.rootID = T++; + } + var p = t(113), + l = t(9), + r = t(11), + d = t(121), + a = t(25), + f = (t(120), t(33)), + g = t(34), + m = t(36), + v = t(53), + b = t(57), + y = (t(58), t(59)), + w = t(66), + E = t(70), + B = t(71), + C = t(131), + x = t(109), + I = (t(138), t(115)), + M = t(117), + D = (t(143), r.ID_ATTRIBUTE_NAME), + S = r.ROOT_ATTRIBUTE_NAME, + k = 1, + F = 9, + Q = 11, + _ = {}, + T = 1, + R = + ((h.prototype.isReactComponent = {}), + (h.prototype.render = function () { + return this.props.child; + }), + (h.isReactTopLevelWrapper = !0), + { + TopLevelWrapper: h, + _instancesByReactRootID: _, + scrollMonitor: function (t, e) { + e(); + }, + _updateRootComponent: function (t, e, n, r, i) { + return ( + R.scrollMonitor(r, function () { + E.enqueueElementInternal(t, e, n), + i && E.enqueueCallbackInternal(t, i); + }), + t + ); + }, + _renderNewRootComponent: function (t, e, n, r) { + s(e) || p('37'), a.ensureScrollValueMonitoring(); + (t = x(t, !1)), + B.batchedUpdates(i, t, e, n, r), + (e = t._instance.rootID); + return (_[e] = t); + }, + renderSubtreeIntoContainer: function (t, e, n, r) { + return ( + (null != t && b.has(t)) || p('38'), + R._renderSubtreeIntoContainer(t, e, n, r) + ); + }, + _renderSubtreeIntoContainer: function (t, e, n, r) { + E.validateCallback(r, 'ReactDOM.render'), + d.isValidElement(e) || + p( + '39', + 'string' == typeof e + ? " Instead of passing a string like 'div', pass React.createElement('div') or <div />." + : 'function' == typeof e + ? ' Instead of passing a class like Foo, pass React.createElement(Foo) or <Foo />.' + : null != e && void 0 !== e.props + ? ' This may be caused by unintentionally loading two independent copies of React.' + : '', + ); + var i = d.createElement(h, { child: e }), + o = + ((t = t + ? (t = b.get(t))._processChildContext(t._context) + : C), + A(n)); + if (o) { + var a, + s = o._currentElement.props.child; + if (M(s, e)) + return ( + (a = o._renderedComponent.getPublicInstance()), + R._updateRootComponent( + o, + i, + t, + n, + r && + function () { + r.call(a); + }, + ), + a + ); + R.unmountComponentAtNode(n); + } + var s = u(n), + e = s && !(!(e = s).getAttribute || !e.getAttribute(D)), + l = c(n), + i = R._renderNewRootComponent( + i, + n, + e && !o && !l, + t, + )._renderedComponent.getPublicInstance(); + return r && r.call(i), i; + }, + render: function (t, e, n) { + return R._renderSubtreeIntoContainer(null, t, e, n); + }, + unmountComponentAtNode: function (t) { + s(t) || p('40'); + var e = A(t); + return e + ? (delete _[e._instance.rootID], + B.batchedUpdates(n, e, t, !1), + !0) + : (c(t), 1 === t.nodeType && t.hasAttribute(S), !1); + }, + _mountImageIntoNode: function (t, e, n, r, i) { + if ((s(e) || p('41'), r)) { + r = u(e); + if (y.canReuseMarkup(t, r)) + return void f.precacheNode(n, r); + var o = r.getAttribute(y.CHECKSUM_ATTR_NAME), + a = + (r.removeAttribute(y.CHECKSUM_ATTR_NAME), r.outerHTML), + r = (r.setAttribute(y.CHECKSUM_ATTR_NAME, o), t), + o = (function (t, e) { + for ( + var n = Math.min(t.length, e.length), r = 0; + r < n; + r++ + ) + if (t.charAt(r) !== e.charAt(r)) return r; + return t.length === e.length ? -1 : n; + })(r, a), + r = + ' (client) ' + + r.substring(o - 20, o + 20) + + '\n (server) ' + + a.substring(o - 20, o + 20); + e.nodeType === F && p('42', r); + } + if ((e.nodeType === F && p('43'), i.useCreateElement)) { + for (; e.lastChild; ) e.removeChild(e.lastChild); + l.insertTreeBefore(e, t, null); + } else I(e, t), f.precacheNode(n, e.firstChild); + }, + }); + e.exports = R; + }, + { + 109: 109, + 11: 11, + 113: 113, + 115: 115, + 117: 117, + 120: 120, + 121: 121, + 131: 131, + 138: 138, + 143: 143, + 25: 25, + 33: 33, + 34: 34, + 36: 36, + 53: 53, + 57: 57, + 58: 58, + 59: 59, + 66: 66, + 70: 70, + 71: 71, + 9: 9, + }, + ], + 61: [ + function (t, e, n) { + function f(t, e) { + return e && (t = t || []).push(e), t; + } + function g(t, e) { + i.processChildrenUpdates(t, e); + } + var r = t(113), + i = t(28), + m = (t(57), t(58), t(120), t(66)), + a = t(26), + s = (t(130), t(97)); + t(138), + (e.exports = { + Mixin: { + _reconcilerInstantiateChildren: function (t, e, n) { + return a.instantiateChildren(t, e, n); + }, + _reconcilerUpdateChildren: function (t, e, n, r, i, o) { + e = s(e, 0); + return ( + a.updateChildren( + t, + e, + n, + r, + i, + this, + this._hostContainerInfo, + o, + 0, + ), + e + ); + }, + mountChildren: function (t, e, n) { + var r, + i, + o, + a = this._reconcilerInstantiateChildren(t, e, n), + s = [], + l = 0; + for (r in (this._renderedChildren = a)) + a.hasOwnProperty(r) && + ((i = a[r]), + (o = m.mountComponent( + i, + e, + this, + this._hostContainerInfo, + n, + 0, + )), + (i._mountIndex = l++), + s.push(o)); + return s; + }, + updateTextContent: function (t) { + var e, + n = this._renderedChildren; + for (e in (a.unmountChildren(n, !1), n)) + n.hasOwnProperty(e) && r('118'); + g(this, [ + { + type: 'TEXT_CONTENT', + content: t, + fromIndex: null, + fromNode: null, + toIndex: null, + afterNode: null, + }, + ]); + }, + updateMarkup: function (t) { + var e, + n = this._renderedChildren; + for (e in (a.unmountChildren(n, !1), n)) + n.hasOwnProperty(e) && r('118'); + g(this, [ + { + type: 'SET_MARKUP', + content: t, + fromIndex: null, + fromNode: null, + toIndex: null, + afterNode: null, + }, + ]); + }, + updateChildren: function (t, e, n) { + this._updateChildren(t, e, n); + }, + _updateChildren: function (t, e, n) { + var r = this._renderedChildren, + i = {}, + o = [], + a = this._reconcilerUpdateChildren(r, t, o, i, e, n); + if (a || r) { + var s, + l, + u, + c = null, + A = 0, + h = 0, + p = 0, + d = null; + for (s in a) + a.hasOwnProperty(s) && + ((l = r && r[s]) === (u = a[s]) + ? ((c = f(c, this.moveChild(l, d, A, h))), + (h = Math.max(l._mountIndex, h)), + (l._mountIndex = A)) + : (l && (h = Math.max(l._mountIndex, h)), + (c = f( + c, + this._mountChildAtIndex(u, o[p], d, A, e, n), + )), + p++), + A++, + (d = m.getHostNode(u))); + for (s in i) + i.hasOwnProperty(s) && + (c = f(c, this._unmountChild(r[s], i[s]))); + c && g(this, c), (this._renderedChildren = a); + } + }, + unmountChildren: function (t) { + var e = this._renderedChildren; + a.unmountChildren(e, t), (this._renderedChildren = null); + }, + moveChild: function (t, e, n, r) { + if (t._mountIndex < r) + return ( + (r = e), + (e = n), + { + type: 'MOVE_EXISTING', + content: null, + fromIndex: t._mountIndex, + fromNode: m.getHostNode(t), + toIndex: e, + afterNode: r, + } + ); + }, + createChild: function (t, e, n) { + return ( + (t = t._mountIndex), + { + type: 'INSERT_MARKUP', + content: n, + fromIndex: null, + fromNode: null, + toIndex: t, + afterNode: e, + } + ); + }, + removeChild: function (t, e) { + return { + type: 'REMOVE_NODE', + content: null, + fromIndex: t._mountIndex, + fromNode: e, + toIndex: null, + afterNode: null, + }; + }, + _mountChildAtIndex: function (t, e, n, r, i, o) { + return (t._mountIndex = r), this.createChild(t, n, e); + }, + _unmountChild: function (t, e) { + e = this.removeChild(t, e); + return (t._mountIndex = null), e; + }, + }, + }); + }, + { + 113: 113, + 120: 120, + 130: 130, + 138: 138, + 26: 26, + 28: 28, + 57: 57, + 58: 58, + 66: 66, + 97: 97, + }, + ], + 62: [ + function (t, e, n) { + var r = t(113), + i = t(121), + o = + (t(138), + { + HOST: 0, + COMPOSITE: 1, + EMPTY: 2, + getType: function (t) { + return null === t || !1 === t + ? o.EMPTY + : i.isValidElement(t) + ? 'function' == typeof t.type + ? o.COMPOSITE + : o.HOST + : void r('26', t); + }, + }); + e.exports = o; + }, + { 113: 113, 121: 121, 138: 138 }, + ], + 63: [ + function (t, e, n) { + function i(t) { + return ( + t && + 'function' == typeof t.attachRef && + 'function' == typeof t.detachRef + ); + } + var o = t(113); + t(138), + (e.exports = { + addComponentAsRefTo: function (t, e, n) { + i(n) || o('119'), n.attachRef(e, t); + }, + removeComponentAsRefFrom: function (t, e, n) { + i(n) || o('120'); + var r = n.getPublicInstance(); + r && r.refs[e] === t.getPublicInstance() && n.detachRef(e); + }, + }); + }, + { 113: 113, 138: 138 }, + ], + 64: [ + function (t, e, n) { + e.exports = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + }, + {}, + ], + 65: [ + function (t, e, n) { + function r(t) { + this.reinitializeTransaction(), + (this.renderToStaticMarkup = !1), + (this.reactMountReady = o.getPooled(null)), + (this.useCreateElement = t); + } + var i = t(144), + o = t(6), + a = t(24), + s = t(25), + l = t(56), + u = (t(58), t(89)), + c = t(70), + A = [ + { + initialize: l.getSelectionInformation, + close: l.restoreSelection, + }, + { + initialize: function () { + var t = s.isEnabled(); + return s.setEnabled(!1), t; + }, + close: function (t) { + s.setEnabled(t); + }, + }, + { + initialize: function () { + this.reactMountReady.reset(); + }, + close: function () { + this.reactMountReady.notifyAll(); + }, + }, + ]; + i(r.prototype, u, { + getTransactionWrappers: function () { + return A; + }, + getReactMountReady: function () { + return this.reactMountReady; + }, + getUpdateQueue: function () { + return c; + }, + checkpoint: function () { + return this.reactMountReady.checkpoint(); + }, + rollback: function (t) { + this.reactMountReady.rollback(t); + }, + destructor: function () { + o.release(this.reactMountReady), (this.reactMountReady = null); + }, + }), + a.addPoolingTo(r), + (e.exports = r); + }, + { 144: 144, 24: 24, 25: 25, 56: 56, 58: 58, 6: 6, 70: 70, 89: 89 }, + ], + 66: [ + function (t, e, n) { + function a() { + s.attachRefs(this, this._currentElement); + } + var s = t(67); + t(58), + t(143), + (e.exports = { + mountComponent: function (t, e, n, r, i, o) { + n = t.mountComponent(e, n, r, i, o); + return ( + t._currentElement && + null != t._currentElement.ref && + e.getReactMountReady().enqueue(a, t), + n + ); + }, + getHostNode: function (t) { + return t.getHostNode(); + }, + unmountComponent: function (t, e) { + s.detachRefs(t, t._currentElement), t.unmountComponent(e); + }, + receiveComponent: function (t, e, n, r) { + var i, + o = t._currentElement; + (e === o && r === t._context) || + ((i = s.shouldUpdateRefs(o, e)) && s.detachRefs(t, o), + t.receiveComponent(e, n, r), + i && + t._currentElement && + null != t._currentElement.ref && + n.getReactMountReady().enqueue(a, t)); + }, + performUpdateIfNecessary: function (t, e, n) { + t._updateBatchNumber === n && t.performUpdateIfNecessary(e); + }, + }); + }, + { 143: 143, 58: 58, 67: 67 }, + ], + 67: [ + function (t, e, n) { + var r = t(63), + t = {}; + (t.attachRefs = function (t, e) { + var n; + null !== e && + 'object' == typeof e && + null != (n = e.ref) && + ((n = n), + (t = t), + (e = e._owner), + 'function' == typeof n + ? n(t.getPublicInstance()) + : r.addComponentAsRefTo(t, n, e)); + }), + (t.shouldUpdateRefs = function (t, e) { + var n = null, + r = null, + t = + (null !== t && + 'object' == typeof t && + ((n = t.ref), (r = t._owner)), + null), + i = null; + return ( + null !== e && + 'object' == typeof e && + ((t = e.ref), (i = e._owner)), + n !== t || ('string' == typeof t && i !== r) + ); + }), + (t.detachRefs = function (t, e) { + var n; + null !== e && + 'object' == typeof e && + null != (n = e.ref) && + ((n = n), + (t = t), + (e = e._owner), + 'function' == typeof n + ? n(null) + : r.removeComponentAsRefFrom(t, n, e)); + }), + (e.exports = t); + }, + { 63: 63 }, + ], + 68: [ + function (t, e, n) { + function r(t) { + this.reinitializeTransaction(), + (this.renderToStaticMarkup = t), + (this.useCreateElement = !1), + (this.updateQueue = new s(this)); + } + var i = t(144), + o = t(24), + a = t(89), + s = (t(58), t(69)), + l = [], + u = { enqueue: function () {} }; + i(r.prototype, a, { + getTransactionWrappers: function () { + return l; + }, + getReactMountReady: function () { + return u; + }, + getUpdateQueue: function () { + return this.updateQueue; + }, + destructor: function () {}, + checkpoint: function () {}, + rollback: function () {}, + }), + o.addPoolingTo(r), + (e.exports = r); + }, + { 144: 144, 24: 24, 58: 58, 69: 69, 89: 89 }, + ], + 69: [ + function (t, e, n) { + var r = t(70); + function i(t) { + if (!(this instanceof i)) + throw new TypeError('Cannot call a class as a function'); + this.transaction = t; + } + t(143), + (i.prototype.isMounted = function (t) { + return !1; + }), + (i.prototype.enqueueCallback = function (t, e, n) { + this.transaction.isInTransaction() && r.enqueueCallback(t, e, n); + }), + (i.prototype.enqueueForceUpdate = function (t) { + this.transaction.isInTransaction() && r.enqueueForceUpdate(t); + }), + (i.prototype.enqueueReplaceState = function (t, e) { + this.transaction.isInTransaction() && r.enqueueReplaceState(t, e); + }), + (i.prototype.enqueueSetState = function (t, e) { + this.transaction.isInTransaction() && r.enqueueSetState(t, e); + }), + (e.exports = i); + }, + { 143: 143, 70: 70 }, + ], + 70: [ + function (t, e, n) { + function r(t) { + s.enqueueUpdate(t); + } + function i(t) { + return a.get(t) || null; + } + var o = t(113), + a = (t(120), t(57)), + s = (t(58), t(71)), + l = + (t(138), + t(143), + { + isMounted: function (t) { + t = a.get(t); + return !!t && !!t._renderedComponent; + }, + enqueueCallback: function (t, e, n) { + l.validateCallback(e, n); + n = i(t); + if (!n) return null; + n._pendingCallbacks + ? n._pendingCallbacks.push(e) + : (n._pendingCallbacks = [e]), + r(n); + }, + enqueueCallbackInternal: function (t, e) { + t._pendingCallbacks + ? t._pendingCallbacks.push(e) + : (t._pendingCallbacks = [e]), + r(t); + }, + enqueueForceUpdate: function (t) { + t = i(t); + t && ((t._pendingForceUpdate = !0), r(t)); + }, + enqueueReplaceState: function (t, e, n) { + t = i(t); + t && + ((t._pendingStateQueue = [e]), + (t._pendingReplaceState = !0), + null != n && + (l.validateCallback(n, 'replaceState'), + t._pendingCallbacks + ? t._pendingCallbacks.push(n) + : (t._pendingCallbacks = [n])), + r(t)); + }, + enqueueSetState: function (t, e) { + t = i(t); + t && + ((t._pendingStateQueue || (t._pendingStateQueue = [])).push( + e, + ), + r(t)); + }, + enqueueElementInternal: function (t, e, n) { + (t._pendingElement = e), (t._context = n), r(t); + }, + validateCallback: function (t, e) { + t && + 'function' != typeof t && + o( + '122', + e, + 'object' != (t = typeof (e = t)) + ? t + : ((t = (e.constructor && e.constructor.name) || t), + 0 < (e = Object.keys(e)).length && e.length < 20 + ? t + ' (keys: ' + e.join(', ') + ')' + : t), + ); + }, + }); + e.exports = l; + }, + { 113: 113, 120: 120, 138: 138, 143: 143, 57: 57, 58: 58, 71: 71 }, + ], + 71: [ + function (t, e, n) { + function a() { + (w.ReactReconcileTransaction && v) || l('123'); + } + function r() { + this.reinitializeTransaction(), + (this.dirtyComponentsLength = null), + (this.callbackQueue = u.getPooled()), + (this.reconcileTransaction = + w.ReactReconcileTransaction.getPooled(!0)); + } + function s(t, e) { + return t._mountOrder - e._mountOrder; + } + function i(t) { + var e = t.dirtyComponentsLength; + e !== d.length && l('124', e, d.length), d.sort(s), f++; + for (var n = 0; n < e; n++) { + var r, + i = d[n], + o = i._pendingCallbacks; + if ( + ((i._pendingCallbacks = null), + A.logTopLevelRenders && + ((r = + 'React update: ' + + (i._currentElement.type.isReactTopLevelWrapper + ? i._renderedComponent + : i + ).getName()), + console.time(r)), + h.performUpdateIfNecessary(i, t.reconcileTransaction, f), + r && console.timeEnd(r), + o) + ) + for (var a = 0; a < o.length; a++) + t.callbackQueue.enqueue(o[a], i.getPublicInstance()); + } + } + var l = t(113), + o = t(144), + u = t(6), + c = t(24), + A = t(53), + h = t(66), + p = t(89), + d = (t(138), []), + f = 0, + g = u.getPooled(), + m = !1, + v = null, + b = [ + { + initialize: function () { + this.dirtyComponentsLength = d.length; + }, + close: function () { + this.dirtyComponentsLength !== d.length + ? (d.splice(0, this.dirtyComponentsLength), y()) + : (d.length = 0); + }, + }, + { + initialize: function () { + this.callbackQueue.reset(); + }, + close: function () { + this.callbackQueue.notifyAll(); + }, + }, + ], + y = + (o(r.prototype, p, { + getTransactionWrappers: function () { + return b; + }, + destructor: function () { + (this.dirtyComponentsLength = null), + u.release(this.callbackQueue), + (this.callbackQueue = null), + w.ReactReconcileTransaction.release( + this.reconcileTransaction, + ), + (this.reconcileTransaction = null); + }, + perform: function (t, e, n) { + return p.perform.call( + this, + this.reconcileTransaction.perform, + this.reconcileTransaction, + t, + e, + n, + ); + }, + }), + c.addPoolingTo(r), + function () { + for (; d.length || m; ) { + var t; + d.length && + ((t = r.getPooled()).perform(i, null, t), r.release(t)), + m && + ((m = !1), + (t = g), + (g = u.getPooled()), + t.notifyAll(), + u.release(t)); + } + }), + w = { + ReactReconcileTransaction: null, + batchedUpdates: function (t, e, n, r, i, o) { + return a(), v.batchedUpdates(t, e, n, r, i, o); + }, + enqueueUpdate: function t(e) { + a(), + v.isBatchingUpdates + ? (d.push(e), + null == e._updateBatchNumber && + (e._updateBatchNumber = f + 1)) + : v.batchedUpdates(t, e); + }, + flushBatchedUpdates: y, + injection: { + injectReconcileTransaction: function (t) { + t || l('126'), (w.ReactReconcileTransaction = t); + }, + injectBatchingStrategy: function (t) { + t || l('127'), + 'function' != typeof t.batchedUpdates && l('128'), + 'boolean' != typeof t.isBatchingUpdates && l('129'), + (v = t); + }, + }, + asap: function (t, e) { + v.isBatchingUpdates || l('125'), g.enqueue(t, e), (m = !0); + }, + }; + e.exports = w; + }, + { 113: 113, 138: 138, 144: 144, 24: 24, 53: 53, 6: 6, 66: 66, 89: 89 }, + ], + 72: [ + function (t, e, n) { + e.exports = '15.6.1'; + }, + {}, + ], + 73: [ + function (t, e, n) { + var r = 'http://www.w3.org/1999/xlink', + i = 'http://www.w3.org/XML/1998/namespace', + o = { + accentHeight: 'accent-height', + accumulate: 0, + additive: 0, + alignmentBaseline: 'alignment-baseline', + allowReorder: 'allowReorder', + alphabetic: 0, + amplitude: 0, + arabicForm: 'arabic-form', + ascent: 0, + attributeName: 'attributeName', + attributeType: 'attributeType', + autoReverse: 'autoReverse', + azimuth: 0, + baseFrequency: 'baseFrequency', + baseProfile: 'baseProfile', + baselineShift: 'baseline-shift', + bbox: 0, + begin: 0, + bias: 0, + by: 0, + calcMode: 'calcMode', + capHeight: 'cap-height', + clip: 0, + clipPath: 'clip-path', + clipRule: 'clip-rule', + clipPathUnits: 'clipPathUnits', + colorInterpolation: 'color-interpolation', + colorInterpolationFilters: 'color-interpolation-filters', + colorProfile: 'color-profile', + colorRendering: 'color-rendering', + contentScriptType: 'contentScriptType', + contentStyleType: 'contentStyleType', + cursor: 0, + cx: 0, + cy: 0, + d: 0, + decelerate: 0, + descent: 0, + diffuseConstant: 'diffuseConstant', + direction: 0, + display: 0, + divisor: 0, + dominantBaseline: 'dominant-baseline', + dur: 0, + dx: 0, + dy: 0, + edgeMode: 'edgeMode', + elevation: 0, + enableBackground: 'enable-background', + end: 0, + exponent: 0, + externalResourcesRequired: 'externalResourcesRequired', + fill: 0, + fillOpacity: 'fill-opacity', + fillRule: 'fill-rule', + filter: 0, + filterRes: 'filterRes', + filterUnits: 'filterUnits', + floodColor: 'flood-color', + floodOpacity: 'flood-opacity', + focusable: 0, + fontFamily: 'font-family', + fontSize: 'font-size', + fontSizeAdjust: 'font-size-adjust', + fontStretch: 'font-stretch', + fontStyle: 'font-style', + fontVariant: 'font-variant', + fontWeight: 'font-weight', + format: 0, + from: 0, + fx: 0, + fy: 0, + g1: 0, + g2: 0, + glyphName: 'glyph-name', + glyphOrientationHorizontal: 'glyph-orientation-horizontal', + glyphOrientationVertical: 'glyph-orientation-vertical', + glyphRef: 'glyphRef', + gradientTransform: 'gradientTransform', + gradientUnits: 'gradientUnits', + hanging: 0, + horizAdvX: 'horiz-adv-x', + horizOriginX: 'horiz-origin-x', + ideographic: 0, + imageRendering: 'image-rendering', + in: 0, + in2: 0, + intercept: 0, + k: 0, + k1: 0, + k2: 0, + k3: 0, + k4: 0, + kernelMatrix: 'kernelMatrix', + kernelUnitLength: 'kernelUnitLength', + kerning: 0, + keyPoints: 'keyPoints', + keySplines: 'keySplines', + keyTimes: 'keyTimes', + lengthAdjust: 'lengthAdjust', + letterSpacing: 'letter-spacing', + lightingColor: 'lighting-color', + limitingConeAngle: 'limitingConeAngle', + local: 0, + markerEnd: 'marker-end', + markerMid: 'marker-mid', + markerStart: 'marker-start', + markerHeight: 'markerHeight', + markerUnits: 'markerUnits', + markerWidth: 'markerWidth', + mask: 0, + maskContentUnits: 'maskContentUnits', + maskUnits: 'maskUnits', + mathematical: 0, + mode: 0, + numOctaves: 'numOctaves', + offset: 0, + opacity: 0, + operator: 0, + order: 0, + orient: 0, + orientation: 0, + origin: 0, + overflow: 0, + overlinePosition: 'overline-position', + overlineThickness: 'overline-thickness', + paintOrder: 'paint-order', + panose1: 'panose-1', + pathLength: 'pathLength', + patternContentUnits: 'patternContentUnits', + patternTransform: 'patternTransform', + patternUnits: 'patternUnits', + pointerEvents: 'pointer-events', + points: 0, + pointsAtX: 'pointsAtX', + pointsAtY: 'pointsAtY', + pointsAtZ: 'pointsAtZ', + preserveAlpha: 'preserveAlpha', + preserveAspectRatio: 'preserveAspectRatio', + primitiveUnits: 'primitiveUnits', + r: 0, + radius: 0, + refX: 'refX', + refY: 'refY', + renderingIntent: 'rendering-intent', + repeatCount: 'repeatCount', + repeatDur: 'repeatDur', + requiredExtensions: 'requiredExtensions', + requiredFeatures: 'requiredFeatures', + restart: 0, + result: 0, + rotate: 0, + rx: 0, + ry: 0, + scale: 0, + seed: 0, + shapeRendering: 'shape-rendering', + slope: 0, + spacing: 0, + specularConstant: 'specularConstant', + specularExponent: 'specularExponent', + speed: 0, + spreadMethod: 'spreadMethod', + startOffset: 'startOffset', + stdDeviation: 'stdDeviation', + stemh: 0, + stemv: 0, + stitchTiles: 'stitchTiles', + stopColor: 'stop-color', + stopOpacity: 'stop-opacity', + strikethroughPosition: 'strikethrough-position', + strikethroughThickness: 'strikethrough-thickness', + string: 0, + stroke: 0, + strokeDasharray: 'stroke-dasharray', + strokeDashoffset: 'stroke-dashoffset', + strokeLinecap: 'stroke-linecap', + strokeLinejoin: 'stroke-linejoin', + strokeMiterlimit: 'stroke-miterlimit', + strokeOpacity: 'stroke-opacity', + strokeWidth: 'stroke-width', + surfaceScale: 'surfaceScale', + systemLanguage: 'systemLanguage', + tableValues: 'tableValues', + targetX: 'targetX', + targetY: 'targetY', + textAnchor: 'text-anchor', + textDecoration: 'text-decoration', + textRendering: 'text-rendering', + textLength: 'textLength', + to: 0, + transform: 0, + u1: 0, + u2: 0, + underlinePosition: 'underline-position', + underlineThickness: 'underline-thickness', + unicode: 0, + unicodeBidi: 'unicode-bidi', + unicodeRange: 'unicode-range', + unitsPerEm: 'units-per-em', + vAlphabetic: 'v-alphabetic', + vHanging: 'v-hanging', + vIdeographic: 'v-ideographic', + vMathematical: 'v-mathematical', + values: 0, + vectorEffect: 'vector-effect', + version: 0, + vertAdvY: 'vert-adv-y', + vertOriginX: 'vert-origin-x', + vertOriginY: 'vert-origin-y', + viewBox: 'viewBox', + viewTarget: 'viewTarget', + visibility: 0, + widths: 0, + wordSpacing: 'word-spacing', + writingMode: 'writing-mode', + x: 0, + xHeight: 'x-height', + x1: 0, + x2: 0, + xChannelSelector: 'xChannelSelector', + xlinkActuate: 'xlink:actuate', + xlinkArcrole: 'xlink:arcrole', + xlinkHref: 'xlink:href', + xlinkRole: 'xlink:role', + xlinkShow: 'xlink:show', + xlinkTitle: 'xlink:title', + xlinkType: 'xlink:type', + xmlBase: 'xml:base', + xmlns: 0, + xmlnsXlink: 'xmlns:xlink', + xmlLang: 'xml:lang', + xmlSpace: 'xml:space', + y: 0, + y1: 0, + y2: 0, + yChannelSelector: 'yChannelSelector', + z: 0, + zoomAndPan: 'zoomAndPan', + }, + a = { + Properties: {}, + DOMAttributeNamespaces: { + xlinkActuate: r, + xlinkArcrole: r, + xlinkHref: r, + xlinkRole: r, + xlinkShow: r, + xlinkTitle: r, + xlinkType: r, + xmlBase: i, + xmlLang: i, + xmlSpace: i, + }, + DOMAttributeNames: {}, + }; + Object.keys(o).forEach(function (t) { + (a.Properties[t] = 0), o[t] && (a.DOMAttributeNames[t] = o[t]); + }), + (e.exports = a); + }, + {}, + ], + 74: [ + function (t, e, n) { + function o(t, e) { + if (m || null == d || d !== u()) return null; + var n = + 'selectionStart' in (n = d) && s.hasSelectionCapabilities(n) + ? { start: n.selectionStart, end: n.selectionEnd } + : window.getSelection + ? { + anchorNode: (n = window.getSelection()).anchorNode, + anchorOffset: n.anchorOffset, + focusNode: n.focusNode, + focusOffset: n.focusOffset, + } + : document.selection + ? { + parentElement: (n = + document.selection.createRange()).parentElement(), + text: n.text, + top: n.boundingTop, + left: n.boundingLeft, + } + : void 0; + return g && A(g, n) + ? null + : ((g = n), + ((n = l.getPooled(p.select, f, t, e)).type = 'select'), + (n.target = d), + r.accumulateTwoPhaseDispatches(n), + n); + } + var r = t(19), + i = t(124), + a = t(33), + s = t(56), + l = t(80), + u = t(133), + c = t(111), + A = t(142), + h = + i.canUseDOM && + 'documentMode' in document && + document.documentMode <= 11, + p = { + select: { + phasedRegistrationNames: { + bubbled: 'onSelect', + captured: 'onSelectCapture', + }, + dependencies: [ + 'topBlur', + 'topContextMenu', + 'topFocus', + 'topKeyDown', + 'topKeyUp', + 'topMouseDown', + 'topMouseUp', + 'topSelectionChange', + ], + }, + }, + d = null, + f = null, + g = null, + m = !1, + v = !1; + e.exports = { + eventTypes: p, + extractEvents: function (t, e, n, r) { + if (v) { + var i = e ? a.getNodeFromInstance(e) : window; + switch (t) { + case 'topFocus': + (!c(i) && 'true' !== i.contentEditable) || + ((d = i), (f = e), (g = null)); + break; + case 'topBlur': + g = f = d = null; + break; + case 'topMouseDown': + m = !0; + break; + case 'topContextMenu': + case 'topMouseUp': + return (m = !1), o(n, r); + case 'topSelectionChange': + if (h) break; + case 'topKeyDown': + case 'topKeyUp': + return o(n, r); + } + } + return null; + }, + didPutListener: function (t, e, n) { + 'onSelect' === e && (v = !0); + }, + }; + }, + { + 111: 111, + 124: 124, + 133: 133, + 142: 142, + 19: 19, + 33: 33, + 56: 56, + 80: 80, + }, + ], + 75: [ + function (t, e, n) { + function r(t) { + return '.' + t._rootNodeID; + } + function i(t) { + return ( + 'button' === t || + 'input' === t || + 'select' === t || + 'textarea' === t + ); + } + var a = t(113), + o = t(123), + s = t(19), + l = t(33), + u = t(76), + c = t(77), + A = t(80), + h = t(81), + p = t(83), + d = t(84), + f = t(79), + g = t(85), + m = t(86), + v = t(87), + b = t(88), + y = t(130), + w = t(99), + E = (t(138), {}), + B = {}, + C = + ([ + 'abort', + 'animationEnd', + 'animationIteration', + 'animationStart', + 'blur', + 'canPlay', + 'canPlayThrough', + 'click', + 'contextMenu', + 'copy', + 'cut', + 'doubleClick', + 'drag', + 'dragEnd', + 'dragEnter', + 'dragExit', + 'dragLeave', + 'dragOver', + 'dragStart', + 'drop', + 'durationChange', + 'emptied', + 'encrypted', + 'ended', + 'error', + 'focus', + 'input', + 'invalid', + 'keyDown', + 'keyPress', + 'keyUp', + 'load', + 'loadedData', + 'loadedMetadata', + 'loadStart', + 'mouseDown', + 'mouseMove', + 'mouseOut', + 'mouseOver', + 'mouseUp', + 'paste', + 'pause', + 'play', + 'playing', + 'progress', + 'rateChange', + 'reset', + 'scroll', + 'seeked', + 'seeking', + 'stalled', + 'submit', + 'suspend', + 'timeUpdate', + 'touchCancel', + 'touchEnd', + 'touchMove', + 'touchStart', + 'transitionEnd', + 'volumeChange', + 'waiting', + 'wheel', + ].forEach(function (t) { + var e = t[0].toUpperCase() + t.slice(1), + n = 'on' + e, + e = 'top' + e, + n = { + phasedRegistrationNames: { + bubbled: n, + captured: n + 'Capture', + }, + dependencies: [e], + }; + (E[t] = n), (B[e] = n); + }), + {}); + e.exports = { + eventTypes: E, + extractEvents: function (t, e, n, r) { + var i, + o = B[t]; + if (!o) return null; + switch (t) { + case 'topAbort': + case 'topCanPlay': + case 'topCanPlayThrough': + case 'topDurationChange': + case 'topEmptied': + case 'topEncrypted': + case 'topEnded': + case 'topError': + case 'topInput': + case 'topInvalid': + case 'topLoad': + case 'topLoadedData': + case 'topLoadedMetadata': + case 'topLoadStart': + case 'topPause': + case 'topPlay': + case 'topPlaying': + case 'topProgress': + case 'topRateChange': + case 'topReset': + case 'topSeeked': + case 'topSeeking': + case 'topStalled': + case 'topSubmit': + case 'topSuspend': + case 'topTimeUpdate': + case 'topVolumeChange': + case 'topWaiting': + i = A; + break; + case 'topKeyPress': + if (0 === w(n)) return null; + case 'topKeyDown': + case 'topKeyUp': + i = p; + break; + case 'topBlur': + case 'topFocus': + i = h; + break; + case 'topClick': + if (2 === n.button) return null; + case 'topDoubleClick': + case 'topMouseDown': + case 'topMouseMove': + case 'topMouseUp': + case 'topMouseOut': + case 'topMouseOver': + case 'topContextMenu': + i = d; + break; + case 'topDrag': + case 'topDragEnd': + case 'topDragEnter': + case 'topDragExit': + case 'topDragLeave': + case 'topDragOver': + case 'topDragStart': + case 'topDrop': + i = f; + break; + case 'topTouchCancel': + case 'topTouchEnd': + case 'topTouchMove': + case 'topTouchStart': + i = g; + break; + case 'topAnimationEnd': + case 'topAnimationIteration': + case 'topAnimationStart': + i = u; + break; + case 'topTransitionEnd': + i = m; + break; + case 'topScroll': + i = v; + break; + case 'topWheel': + i = b; + break; + case 'topCopy': + case 'topCut': + case 'topPaste': + i = c; + } + i || a('86', t); + t = i.getPooled(o, e, n, r); + return s.accumulateTwoPhaseDispatches(t), t; + }, + didPutListener: function (t, e, n) { + 'onClick' !== e || + i(t._tag) || + ((e = r(t)), + (t = l.getNodeFromInstance(t)), + C[e] || (C[e] = o.listen(t, 'click', y))); + }, + willDeleteListener: function (t, e) { + 'onClick' !== e || + i(t._tag) || + ((e = r(t)), C[e].remove(), delete C[e]); + }, + }; + }, + { + 113: 113, + 123: 123, + 130: 130, + 138: 138, + 19: 19, + 33: 33, + 76: 76, + 77: 77, + 79: 79, + 80: 80, + 81: 81, + 83: 83, + 84: 84, + 85: 85, + 86: 86, + 87: 87, + 88: 88, + 99: 99, + }, + ], + 76: [ + function (t, e, n) { + function r(t, e, n, r) { + return i.call(this, t, e, n, r); + } + var i = t(80); + i.augmentClass(r, { + animationName: null, + elapsedTime: null, + pseudoElement: null, + }), + (e.exports = r); + }, + { 80: 80 }, + ], + 77: [ + function (t, e, n) { + function r(t, e, n, r) { + return i.call(this, t, e, n, r); + } + var i = t(80); + i.augmentClass(r, { + clipboardData: function (t) { + return ('clipboardData' in t ? t : window).clipboardData; + }, + }), + (e.exports = r); + }, + { 80: 80 }, + ], + 78: [ + function (t, e, n) { + function r(t, e, n, r) { + return i.call(this, t, e, n, r); + } + var i = t(80); + i.augmentClass(r, { data: null }), (e.exports = r); + }, + { 80: 80 }, + ], + 79: [ + function (t, e, n) { + function r(t, e, n, r) { + return i.call(this, t, e, n, r); + } + var i = t(84); + i.augmentClass(r, { dataTransfer: null }), (e.exports = r); + }, + { 84: 84 }, + ], + 80: [ + function (t, e, n) { + function r(t, e, n, r) { + (this.dispatchConfig = t), + (this._targetInst = e), + (this.nativeEvent = n); + var i, + o, + a = this.constructor.Interface; + for (i in a) + a.hasOwnProperty(i) && + ((o = a[i]) + ? (this[i] = o(n)) + : 'target' === i + ? (this.target = r) + : (this[i] = n[i])); + t = + null != n.defaultPrevented + ? n.defaultPrevented + : !1 === n.returnValue; + return ( + (this.isDefaultPrevented = t + ? s.thatReturnsTrue + : s.thatReturnsFalse), + (this.isPropagationStopped = s.thatReturnsFalse), + this + ); + } + var i = t(144), + o = t(24), + s = t(130), + a = + (t(143), + [ + 'dispatchConfig', + '_targetInst', + 'nativeEvent', + 'isDefaultPrevented', + 'isPropagationStopped', + '_dispatchListeners', + '_dispatchInstances', + ]), + t = { + type: null, + target: null, + currentTarget: s.thatReturnsNull, + eventPhase: null, + bubbles: null, + cancelable: null, + timeStamp: function (t) { + return t.timeStamp || Date.now(); + }, + defaultPrevented: null, + isTrusted: null, + }; + i(r.prototype, { + preventDefault: function () { + this.defaultPrevented = !0; + var t = this.nativeEvent; + t && + (t.preventDefault + ? t.preventDefault() + : 'unknown' != typeof t.returnValue && (t.returnValue = !1), + (this.isDefaultPrevented = s.thatReturnsTrue)); + }, + stopPropagation: function () { + var t = this.nativeEvent; + t && + (t.stopPropagation + ? t.stopPropagation() + : 'unknown' != typeof t.cancelBubble && (t.cancelBubble = !0), + (this.isPropagationStopped = s.thatReturnsTrue)); + }, + persist: function () { + this.isPersistent = s.thatReturnsTrue; + }, + isPersistent: s.thatReturnsFalse, + destructor: function () { + for (var t in this.constructor.Interface) this[t] = null; + for (var e = 0; e < a.length; e++) this[a[e]] = null; + }, + }), + (r.Interface = t), + (r.augmentClass = function (t, e) { + function n() {} + n.prototype = this.prototype; + var r = new n(); + i(r, t.prototype), + (t.prototype = r), + ((t.prototype.constructor = t).Interface = i( + {}, + this.Interface, + e, + )), + (t.augmentClass = this.augmentClass), + o.addPoolingTo(t, o.fourArgumentPooler); + }), + o.addPoolingTo(r, o.fourArgumentPooler), + (e.exports = r); + }, + { 130: 130, 143: 143, 144: 144, 24: 24 }, + ], + 81: [ + function (t, e, n) { + function r(t, e, n, r) { + return i.call(this, t, e, n, r); + } + var i = t(87); + i.augmentClass(r, { relatedTarget: null }), (e.exports = r); + }, + { 87: 87 }, + ], + 82: [ + function (t, e, n) { + function r(t, e, n, r) { + return i.call(this, t, e, n, r); + } + var i = t(80); + i.augmentClass(r, { data: null }), (e.exports = r); + }, + { 80: 80 }, + ], + 83: [ + function (t, e, n) { + function r(t, e, n, r) { + return i.call(this, t, e, n, r); + } + var i = t(87), + o = t(99), + a = t(100), + t = t(101); + i.augmentClass(r, { + key: a, + location: null, + ctrlKey: null, + shiftKey: null, + altKey: null, + metaKey: null, + repeat: null, + locale: null, + getModifierState: t, + charCode: function (t) { + return 'keypress' === t.type ? o(t) : 0; + }, + keyCode: function (t) { + return 'keydown' === t.type || 'keyup' === t.type ? t.keyCode : 0; + }, + which: function (t) { + return 'keypress' === t.type + ? o(t) + : 'keydown' === t.type || 'keyup' === t.type + ? t.keyCode + : 0; + }, + }), + (e.exports = r); + }, + { 100: 100, 101: 101, 87: 87, 99: 99 }, + ], + 84: [ + function (t, e, n) { + function r(t, e, n, r) { + return i.call(this, t, e, n, r); + } + var i = t(87), + o = t(90), + t = t(101); + i.augmentClass(r, { + screenX: null, + screenY: null, + clientX: null, + clientY: null, + ctrlKey: null, + shiftKey: null, + altKey: null, + metaKey: null, + getModifierState: t, + button: function (t) { + var e = t.button; + return 'which' in t ? e : 2 === e ? 2 : 4 === e ? 1 : 0; + }, + buttons: null, + relatedTarget: function (t) { + return ( + t.relatedTarget || + (t.fromElement === t.srcElement ? t.toElement : t.fromElement) + ); + }, + pageX: function (t) { + return 'pageX' in t ? t.pageX : t.clientX + o.currentScrollLeft; + }, + pageY: function (t) { + return 'pageY' in t ? t.pageY : t.clientY + o.currentScrollTop; + }, + }), + (e.exports = r); + }, + { 101: 101, 87: 87, 90: 90 }, + ], + 85: [ + function (t, e, n) { + function r(t, e, n, r) { + return i.call(this, t, e, n, r); + } + var i = t(87), + t = t(101); + i.augmentClass(r, { + touches: null, + targetTouches: null, + changedTouches: null, + altKey: null, + metaKey: null, + ctrlKey: null, + shiftKey: null, + getModifierState: t, + }), + (e.exports = r); + }, + { 101: 101, 87: 87 }, + ], + 86: [ + function (t, e, n) { + function r(t, e, n, r) { + return i.call(this, t, e, n, r); + } + var i = t(80); + i.augmentClass(r, { + propertyName: null, + elapsedTime: null, + pseudoElement: null, + }), + (e.exports = r); + }, + { 80: 80 }, + ], + 87: [ + function (t, e, n) { + function r(t, e, n, r) { + return i.call(this, t, e, n, r); + } + var i = t(80), + o = t(102); + i.augmentClass(r, { + view: function (t) { + if (t.view) return t.view; + t = o(t); + if (t.window === t) return t; + t = t.ownerDocument; + return t ? t.defaultView || t.parentWindow : window; + }, + detail: function (t) { + return t.detail || 0; + }, + }), + (e.exports = r); + }, + { 102: 102, 80: 80 }, + ], + 88: [ + function (t, e, n) { + function r(t, e, n, r) { + return i.call(this, t, e, n, r); + } + var i = t(84); + i.augmentClass(r, { + deltaX: function (t) { + return 'deltaX' in t + ? t.deltaX + : 'wheelDeltaX' in t + ? -t.wheelDeltaX + : 0; + }, + deltaY: function (t) { + return 'deltaY' in t + ? t.deltaY + : 'wheelDeltaY' in t + ? -t.wheelDeltaY + : 'wheelDelta' in t + ? -t.wheelDelta + : 0; + }, + deltaZ: null, + deltaMode: null, + }), + (e.exports = r); + }, + { 84: 84 }, + ], + 89: [ + function (t, e, n) { + var c = t(113), + a = (t(138), {}); + e.exports = { + reinitializeTransaction: function () { + (this.transactionWrappers = this.getTransactionWrappers()), + this.wrapperInitData + ? (this.wrapperInitData.length = 0) + : (this.wrapperInitData = []), + (this._isInTransaction = !1); + }, + _isInTransaction: !1, + getTransactionWrappers: null, + isInTransaction: function () { + return !!this._isInTransaction; + }, + perform: function (t, e, n, r, i, o, a, s) { + var l, u; + this.isInTransaction() && c('27'); + try { + (l = this._isInTransaction = !0), + this.initializeAll(0), + (u = t.call(e, n, r, i, o, a, s)), + (l = !1); + } finally { + try { + if (l) + try { + this.closeAll(0); + } catch (t) {} + else this.closeAll(0); + } finally { + this._isInTransaction = !1; + } + } + return u; + }, + initializeAll: function (t) { + for (var e = this.transactionWrappers, n = t; n < e.length; n++) { + var r = e[n]; + try { + (this.wrapperInitData[n] = a), + (this.wrapperInitData[n] = r.initialize + ? r.initialize.call(this) + : null); + } finally { + if (this.wrapperInitData[n] === a) + try { + this.initializeAll(n + 1); + } catch (t) {} + } + } + }, + closeAll: function (t) { + this.isInTransaction() || c('28'); + for (var e = this.transactionWrappers, n = t; n < e.length; n++) { + var r, + i = e[n], + o = this.wrapperInitData[n]; + try { + (r = !0), + o !== a && i.close && i.close.call(this, o), + (r = !1); + } finally { + if (r) + try { + this.closeAll(n + 1); + } catch (t) {} + } + } + this.wrapperInitData.length = 0; + }, + }; + }, + { 113: 113, 138: 138 }, + ], + 90: [ + function (t, e, n) { + var r = { + currentScrollLeft: 0, + currentScrollTop: 0, + refreshScrollValues: function (t) { + (r.currentScrollLeft = t.x), (r.currentScrollTop = t.y); + }, + }; + e.exports = r; + }, + {}, + ], + 91: [ + function (t, e, n) { + var r = t(113); + t(138), + (e.exports = function (t, e) { + return ( + null == e && r('30'), + null == t + ? e + : Array.isArray(t) + ? (Array.isArray(e) ? t.push.apply(t, e) : t.push(e), t) + : Array.isArray(e) + ? [t].concat(e) + : [t, e] + ); + }); + }, + { 113: 113, 138: 138 }, + ], + 92: [ + function (t, e, n) { + var s = 65521; + e.exports = function (t) { + for (var e = 1, n = 0, r = 0, i = t.length, o = -4 & i; r < o; ) { + for (var a = Math.min(r + 4096, o); r < a; r += 4) + n += + (e += t.charCodeAt(r)) + + (e += t.charCodeAt(r + 1)) + + (e += t.charCodeAt(r + 2)) + + (e += t.charCodeAt(r + 3)); + (e %= s), (n %= s); + } + for (; r < i; r++) n += e += t.charCodeAt(r); + return (e %= s) | ((n %= s) << 16); + }; + }, + {}, + ], + 93: [ + function (t, e, n) { + e.exports = function (i) { + return 'undefined' != typeof MSApp && MSApp.execUnsafeLocalFunction + ? function (t, e, n, r) { + MSApp.execUnsafeLocalFunction(function () { + return i(t, e, n, r); + }); + } + : i; + }; + }, + {}, + ], + 94: [ + function (t, e, n) { + var r = t(4), + o = (t(143), r.isUnitlessNumber); + e.exports = function (t, e, n, r) { + if (null == e || 'boolean' == typeof e || '' === e) return ''; + var i = isNaN(e); + return r || i || 0 === e || (o.hasOwnProperty(t) && o[t]) + ? '' + e + : (e = 'string' == typeof e ? e.trim() : e) + 'px'; + }; + }, + { 143: 143, 4: 4 }, + ], + 95: [ + function (t, e, n) { + var s = /["'&<>]/; + e.exports = function (t) { + if ('boolean' == typeof t || 'number' == typeof t) return '' + t; + var e = t, + n = '' + t; + if (!(e = s.exec(n))) return n; + for (var r, i = '', o = 0, a = 0, o = e.index; o < n.length; o++) { + switch (n.charCodeAt(o)) { + case 34: + r = '"'; + break; + case 38: + r = '&'; + break; + case 39: + r = '''; + break; + case 60: + r = '<'; + break; + case 62: + r = '>'; + break; + default: + continue; + } + a !== o && (i += n.substring(a, o)), (a = o + 1), (i += r); + } + return a !== o ? i + n.substring(a, o) : i; + }; + }, + {}, + ], + 96: [ + function (t, e, n) { + var r = t(113), + i = (t(120), t(33)), + o = t(57), + a = t(103); + t(138), + t(143), + (e.exports = function (t) { + return null == t + ? null + : 1 === t.nodeType + ? t + : (e = o.get(t)) + ? (e = a(e)) + ? i.getNodeFromInstance(e) + : null + : void ('function' == typeof t.render + ? r('44') + : r('45', Object.keys(t))); + var e; + }); + }, + { 103: 103, 113: 113, 120: 120, 138: 138, 143: 143, 33: 33, 57: 57 }, + ], + 97: [ + function (e, n, t) { + !function (t) { + function r(t, e, n, r) { + t && + 'object' == typeof t && + void 0 === t[n] && + null != e && + (t[n] = e); + } + e(22); + var i = e(118); + e(143), + void 0 !== t && t.env, + (n.exports = function (t, e) { + if (null == t) return t; + var n = {}; + return i(t, r, n), n; + }); + }.call(this, void 0); + }, + { 118: 118, 143: 143, 22: 22 }, + ], + 98: [ + function (t, e, n) { + e.exports = function (t, e, n) { + Array.isArray(t) ? t.forEach(e, n) : t && e.call(n, t); + }; + }, + {}, + ], + 99: [ + function (t, e, n) { + e.exports = function (t) { + var e, + n = t.keyCode; + return ( + 'charCode' in t + ? 0 === (e = t.charCode) && 13 === n && (e = 13) + : (e = n), + 32 <= e || 13 === e ? e : 0 + ); + }; + }, + {}, + ], + 100: [ + function (t, e, n) { + var r = t(99), + i = { + Esc: 'Escape', + Spacebar: ' ', + Left: 'ArrowLeft', + Up: 'ArrowUp', + Right: 'ArrowRight', + Down: 'ArrowDown', + Del: 'Delete', + Win: 'OS', + Menu: 'ContextMenu', + Apps: 'ContextMenu', + Scroll: 'ScrollLock', + MozPrintableKey: 'Unidentified', + }, + o = { + 8: 'Backspace', + 9: 'Tab', + 12: 'Clear', + 13: 'Enter', + 16: 'Shift', + 17: 'Control', + 18: 'Alt', + 19: 'Pause', + 20: 'CapsLock', + 27: 'Escape', + 32: ' ', + 33: 'PageUp', + 34: 'PageDown', + 35: 'End', + 36: 'Home', + 37: 'ArrowLeft', + 38: 'ArrowUp', + 39: 'ArrowRight', + 40: 'ArrowDown', + 45: 'Insert', + 46: 'Delete', + 112: 'F1', + 113: 'F2', + 114: 'F3', + 115: 'F4', + 116: 'F5', + 117: 'F6', + 118: 'F7', + 119: 'F8', + 120: 'F9', + 121: 'F10', + 122: 'F11', + 123: 'F12', + 144: 'NumLock', + 145: 'ScrollLock', + 224: 'Meta', + }; + e.exports = function (t) { + if (t.key) { + var e = i[t.key] || t.key; + if ('Unidentified' !== e) return e; + } + return 'keypress' === t.type + ? 13 === (e = r(t)) + ? 'Enter' + : String.fromCharCode(e) + : 'keydown' === t.type || 'keyup' === t.type + ? o[t.keyCode] || 'Unidentified' + : ''; + }; + }, + { 99: 99 }, + ], + 101: [ + function (t, e, n) { + function r(t) { + var e = this.nativeEvent; + if (e.getModifierState) return e.getModifierState(t); + t = i[t]; + return !!t && !!e[t]; + } + var i = { + Alt: 'altKey', + Control: 'ctrlKey', + Meta: 'metaKey', + Shift: 'shiftKey', + }; + e.exports = function (t) { + return r; + }; + }, + {}, + ], + 102: [ + function (t, e, n) { + e.exports = function (t) { + return 3 === + (t = (t = t.target || t.srcElement || window) + .correspondingUseElement + ? t.correspondingUseElement + : t).nodeType + ? t.parentNode + : t; + }; + }, + {}, + ], + 103: [ + function (t, e, n) { + var r = t(62); + e.exports = function (t) { + for (var e; (e = t._renderedNodeType) === r.COMPOSITE; ) + t = t._renderedComponent; + return e === r.HOST + ? t._renderedComponent + : e === r.EMPTY + ? null + : void 0; + }; + }, + { 62: 62 }, + ], + 104: [ + function (t, e, n) { + var r = 'function' == typeof Symbol && Symbol.iterator, + i = '@@iterator'; + e.exports = function (t) { + if ('function' == typeof (t = t && ((r && t[r]) || t[i]))) return t; + }; + }, + {}, + ], + 105: [ + function (t, e, n) { + function o(t) { + for (; t && t.firstChild; ) t = t.firstChild; + return t; + } + e.exports = function (t, e) { + for (var n, r = o(t), i = 0; r; ) { + if (3 === r.nodeType) { + if (((n = i + r.textContent.length), i <= e && e <= n)) + return { node: r, offset: e - i }; + i = n; + } + r = o( + (function (t) { + for (; t; ) { + if (t.nextSibling) return t.nextSibling; + t = t.parentNode; + } + })(r), + ); + } + }; + }, + {}, + ], + 106: [ + function (t, e, n) { + var r = t(124), + i = null; + e.exports = function () { + return (i = + !i && r.canUseDOM + ? 'textContent' in document.documentElement + ? 'textContent' + : 'innerText' + : i); + }; + }, + { 124: 124 }, + ], + 107: [ + function (t, e, n) { + function r(t, e) { + var n = {}; + return ( + (n[t.toLowerCase()] = e.toLowerCase()), + (n['Webkit' + t] = 'webkit' + e), + (n['Moz' + t] = 'moz' + e), + (n['ms' + t] = 'MS' + e), + (n['O' + t] = 'o' + e.toLowerCase()), + n + ); + } + var t = t(124), + i = { + animationend: r('Animation', 'AnimationEnd'), + animationiteration: r('Animation', 'AnimationIteration'), + animationstart: r('Animation', 'AnimationStart'), + transitionend: r('Transition', 'TransitionEnd'), + }, + o = {}, + a = {}; + t.canUseDOM && + ((a = document.createElement('div').style), + 'AnimationEvent' in window || + (delete i.animationend.animation, + delete i.animationiteration.animation, + delete i.animationstart.animation), + 'TransitionEvent' in window || delete i.transitionend.transition), + (e.exports = function (t) { + if (o[t]) return o[t]; + if (!i[t]) return t; + var e, + n = i[t]; + for (e in n) + if (n.hasOwnProperty(e) && e in a) return (o[t] = n[e]); + return ''; + }); + }, + { 124: 124 }, + ], + 108: [ + function (t, e, n) { + function a(t) { + var e = t.type, + t = t.nodeName; + return ( + t && + 'input' === t.toLowerCase() && + ('checkbox' === e || 'radio' === e) + ); + } + function s(t) { + return t._wrapperState.valueTracker; + } + var l = t(33), + i = { + _getTrackerFromNode: function (t) { + return s(l.getInstanceFromNode(t)); + }, + track: function (t) { + var e, n, r, i, o; + s(t) || + ((e = l.getNodeFromInstance(t)), + (n = a(e) ? 'checked' : 'value'), + (r = Object.getOwnPropertyDescriptor( + e.constructor.prototype, + n, + )), + (i = '' + e[n]), + e.hasOwnProperty(n) || + 'function' != typeof r.get || + 'function' != typeof r.set || + (Object.defineProperty(e, n, { + enumerable: r.enumerable, + configurable: !0, + get: function () { + return r.get.call(this); + }, + set: function (t) { + (i = '' + t), r.set.call(this, t); + }, + }), + (o = { + getValue: function () { + return i; + }, + setValue: function (t) { + i = '' + t; + }, + stopTracking: function () { + delete t._wrapperState.valueTracker, delete e[n]; + }, + }), + (t._wrapperState.valueTracker = o))); + }, + updateValueIfChanged: function (t) { + if (!t) return !1; + var e = s(t); + if (!e) return i.track(t), !0; + var n, + r = e.getValue(), + t = + ((t = l.getNodeFromInstance(t)), + (n = t ? (a(t) ? '' + t.checked : t.value) : n)); + return t !== r && (e.setValue(t), !0); + }, + stopTracking: function (t) { + t = s(t); + t && t.stopTracking(); + }, + }; + e.exports = i; + }, + { 33: 33 }, + ], + 109: [ + function (t, e, n) { + function a(t, e) { + var n, r, i, o; + return ( + null === t || !1 === t + ? (n = l.create(a)) + : 'object' == typeof t + ? ('function' != typeof (o = (r = t).type) && + 'string' != typeof o && + ((i = ''), + (i += (function (t) { + if (t) { + t = t.getName(); + if (t) + return ' Check the render method of `' + t + '`.'; + } + return ''; + })(r._owner)), + s('130', null == o ? o : typeof o, i)), + 'string' == typeof r.type + ? (n = u.createInternalComponent(r)) + : 'function' == typeof (o = r.type) && + void 0 !== o.prototype && + 'function' == typeof o.prototype.mountComponent && + 'function' == typeof o.prototype.receiveComponent + ? (n = new r.type(r)).getHostNode || + (n.getHostNode = n.getNativeNode) + : (n = new c(r))) + : 'string' == typeof t || 'number' == typeof t + ? (n = u.createInstanceForText(t)) + : s('131', typeof t), + (n._mountIndex = 0), + (n._mountImage = null), + n + ); + } + var s = t(113), + r = t(144), + i = t(29), + l = t(49), + u = t(54), + c = + (t(122), + t(138), + t(143), + function (t) { + this.construct(t); + }); + r(c.prototype, i, { _instantiateReactComponent: a }), (e.exports = a); + }, + { + 113: 113, + 122: 122, + 138: 138, + 143: 143, + 144: 144, + 29: 29, + 49: 49, + 54: 54, + }, + ], + 110: [ + function (t, e, n) { + var i, + o = t(124); + o.canUseDOM && + (i = + document.implementation && + document.implementation.hasFeature && + !0 !== document.implementation.hasFeature('', '')), + (e.exports = function (t, e) { + if (!o.canUseDOM || (e && !('addEventListener' in document))) + return !1; + var n, + r = (e = 'on' + t) in document; + return ( + r || + ((n = document.createElement('div')).setAttribute( + e, + 'return;', + ), + (r = 'function' == typeof n[e])), + (r = + !r && i && 'wheel' === t + ? document.implementation.hasFeature('Events.wheel', '3.0') + : r) + ); + }); + }, + { 124: 124 }, + ], + 111: [ + function (t, e, n) { + var r = { + color: !0, + date: !0, + datetime: !0, + 'datetime-local': !0, + email: !0, + month: !0, + number: !0, + password: !0, + range: !0, + search: !0, + tel: !0, + text: !0, + time: !0, + url: !0, + week: !0, + }; + e.exports = function (t) { + var e = t && t.nodeName && t.nodeName.toLowerCase(); + return 'input' === e ? !!r[t.type] : 'textarea' === e; + }; + }, + {}, + ], + 112: [ + function (t, e, n) { + var r = t(95); + e.exports = function (t) { + return '"' + r(t) + '"'; + }; + }, + { 95: 95 }, + ], + 113: [ + function (t, e, n) { + e.exports = function (t) { + for ( + var e = arguments.length - 1, + n = + 'Minified React error #' + + t + + '; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=' + + t, + r = 0; + r < e; + r++ + ) + n += '&args[]=' + encodeURIComponent(arguments[r + 1]); + throw ( + ((n += + ' for the full message or use the non-minified dev environment for full errors and additional helpful warnings.'), + ((t = new Error(n)).name = 'Invariant Violation'), + (t.framesToPop = 1), + t) + ); + }; + }, + {}, + ], + 114: [ + function (t, e, n) { + t = t(60); + e.exports = t.renderSubtreeIntoContainer; + }, + { 60: 60 }, + ], + 115: [ + function (t, e, n) { + var r, + i = t(124), + o = t(10), + a = /^[ \r\n\t\f]/, + s = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/, + t = t(93)(function (t, e) { + if (t.namespaceURI !== o.svg || 'innerHTML' in t) t.innerHTML = e; + else { + (r = r || document.createElement('div')).innerHTML = + '<svg>' + e + '</svg>'; + for (var n = r.firstChild; n.firstChild; ) + t.appendChild(n.firstChild); + } + }); + i.canUseDOM && + (((i = document.createElement('div')).innerHTML = ' '), + '' === i.innerHTML && + (t = function (t, e) { + var n; + t.parentNode && t.parentNode.replaceChild(t, t), + a.test(e) || ('<' === e[0] && s.test(e)) + ? ((t.innerHTML = String.fromCharCode(65279) + e), + 1 === (n = t.firstChild).data.length + ? t.removeChild(n) + : n.deleteData(0, 1)) + : (t.innerHTML = e); + }), + (i = null)), + (e.exports = t); + }, + { 10: 10, 124: 124, 93: 93 }, + ], + 116: [ + function (t, e, n) { + var r = t(124), + i = t(95), + o = t(115), + t = function (t, e) { + if (e) { + var n = t.firstChild; + if (n && n === t.lastChild && 3 === n.nodeType) + return void (n.nodeValue = e); + } + t.textContent = e; + }; + !r.canUseDOM || + 'textContent' in document.documentElement || + (t = function (t, e) { + 3 === t.nodeType ? (t.nodeValue = e) : o(t, i(e)); + }), + (e.exports = t); + }, + { 115: 115, 124: 124, 95: 95 }, + ], + 117: [ + function (t, e, n) { + e.exports = function (t, e) { + var n = null === t || !1 === t, + r = null === e || !1 === e; + return n || r + ? n == r + : ((r = typeof e), + 'string' == (n = typeof t) || 'number' == n + ? 'string' == r || 'number' == r + : 'object' == r && t.type === e.type && t.key === e.key); + }; + }, + {}, + ], + 118: [ + function (t, e, n) { + function d(t, e) { + return t && 'object' == typeof t && null != t.key + ? v.escape(t.key) + : e.toString(36); + } + var f = t(113), + g = (t(120), t(48)), + m = t(104), + v = (t(138), t(22)), + b = (t(143), '.'), + y = ':'; + e.exports = function (t, e, n) { + return null == t + ? 0 + : (function t(e, n, r, i) { + var o = typeof e; + if ( + null === + (e = 'undefined' != o && 'boolean' != o ? e : null) || + 'string' == o || + 'number' == o || + ('object' == o && e.$$typeof === g) + ) + return r(i, e, '' === n ? b + d(e, 0) : n), 1; + var a, + s = 0, + l = '' === n ? b : n + y; + if (Array.isArray(e)) + for (var u = 0; u < e.length; u++) + s += t((a = e[u]), l + d(a, u), r, i); + else if ((n = m(e))) { + var c, + A = n.call(e); + if (n !== e.entries) + for (var h = 0; !(c = A.next()).done; ) + s += t((a = c.value), l + d(a, h++), r, i); + else + for (; !(c = A.next()).done; ) { + var p = c.value; + p && + (s += t( + (a = p[1]), + l + v.escape(p[0]) + y + d(a, 0), + r, + i, + )); + } + } else + 'object' == o && + ((n = String(e)), + f( + '31', + '[object Object]' === n + ? 'object with keys {' + + Object.keys(e).join(', ') + + '}' + : n, + '', + )); + return s; + })(t, '', e, n); + }; + }, + { 104: 104, 113: 113, 120: 120, 138: 138, 143: 143, 22: 22, 48: 48 }, + ], + 119: [ + function (t, e, n) { + t(144); + var r = t(130); + t(143), (e.exports = r); + }, + { 130: 130, 143: 143, 144: 144 }, + ], + 120: [ + function (t, e, n) { + var r = i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; + e.exports = r.ReactCurrentOwner; + }, + {}, + ], + 121: [ + function (t, e, n) { + e.exports = i; + }, + {}, + ], + 122: [ + function (t, e, n) { + var r = i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; + e.exports = r.getNextDebugID; + }, + {}, + ], + 123: [ + function (t, e, n) { + var r = t(130); + e.exports = { + listen: function (t, e, n) { + return t.addEventListener + ? (t.addEventListener(e, n, !1), + { + remove: function () { + t.removeEventListener(e, n, !1); + }, + }) + : t.attachEvent + ? (t.attachEvent('on' + e, n), + { + remove: function () { + t.detachEvent('on' + e, n); + }, + }) + : void 0; + }, + capture: function (t, e, n) { + return t.addEventListener + ? (t.addEventListener(e, n, !0), + { + remove: function () { + t.removeEventListener(e, n, !0); + }, + }) + : { remove: r }; + }, + registerDefault: function () {}, + }; + }, + { 130: 130 }, + ], + 124: [ + function (t, e, n) { + var r = !( + 'undefined' == typeof window || + !window.document || + !window.document.createElement + ), + r = { + canUseDOM: r, + canUseWorkers: 'undefined' != typeof Worker, + canUseEventListeners: + r && !(!window.addEventListener && !window.attachEvent), + canUseViewport: r && !!window.screen, + isInWorker: !r, + }; + e.exports = r; + }, + {}, + ], + 125: [ + function (t, e, n) { + var r = /-(.)/g; + e.exports = function (t) { + return t.replace(r, function (t, e) { + return e.toUpperCase(); + }); + }; + }, + {}, + ], + 126: [ + function (t, e, n) { + var r = t(125), + i = /^-ms-/; + e.exports = function (t) { + return r(t.replace(i, 'ms-')); + }; + }, + { 125: 125 }, + ], + 127: [ + function (t, e, n) { + var r = t(140); + e.exports = function t(e, n) { + return ( + !(!e || !n) && + (e === n || + (!r(e) && + (r(n) + ? t(e, n.parentNode) + : 'contains' in e + ? e.contains(n) + : !!e.compareDocumentPosition && + !!(16 & e.compareDocumentPosition(n))))) + ); + }; + }, + { 140: 140 }, + ], + 128: [ + function (t, e, n) { + var a = t(138); + e.exports = function (t) { + if ( + !(r = t) || + ('object' != typeof r && 'function' != typeof r) || + !('length' in r) || + 'setInterval' in r || + 'number' == typeof r.nodeType || + !(Array.isArray(r) || 'callee' in r || 'item' in r) + ) + return [t]; + if (Array.isArray(t)) return t.slice(); + var e = t, + n = e.length; + if ( + ((Array.isArray(e) || + ('object' != typeof e && 'function' != typeof e)) && + a(!1), + 'number' != typeof n && a(!1), + 0 === n || n - 1 in e || a(!1), + 'function' == typeof e.callee && a(!1), + e.hasOwnProperty) + ) + try { + return Array.prototype.slice.call(e); + } catch (e) {} + for (var r, i = Array(n), o = 0; o < n; o++) i[o] = e[o]; + return i; + }; + }, + { 138: 138 }, + ], + 129: [ + function (t, e, n) { + var r = t(124), + o = t(128), + a = t(134), + s = t(138), + l = r.canUseDOM ? document.createElement('div') : null, + u = /^\s*<(\w+)/; + e.exports = function (t, e) { + var n = l, + r = (l || s(!1), (r = (r = t).match(u)) && r[1].toLowerCase()); + if ((r = r && a(r))) { + n.innerHTML = r[1] + t + r[2]; + for (var i = r[0]; i--; ) n = n.lastChild; + } else n.innerHTML = t; + for ( + (r = n.getElementsByTagName('script')).length && + (e || s(!1), o(r).forEach(e)), + t = Array.from(n.childNodes); + n.lastChild; + + ) + n.removeChild(n.lastChild); + return t; + }; + }, + { 124: 124, 128: 128, 134: 134, 138: 138 }, + ], + 130: [ + function (t, e, n) { + function r(t) { + return function () { + return t; + }; + } + function i() {} + (i.thatReturns = r), + (i.thatReturnsFalse = r(!1)), + (i.thatReturnsTrue = r(!0)), + (i.thatReturnsNull = r(null)), + (i.thatReturnsThis = function () { + return this; + }), + (i.thatReturnsArgument = function (t) { + return t; + }), + (e.exports = i); + }, + {}, + ], + 131: [ + function (t, e, n) { + e.exports = {}; + }, + {}, + ], + 132: [ + function (t, e, n) { + e.exports = function (t) { + try { + t.focus(); + } catch (t) {} + }; + }, + {}, + ], + 133: [ + function (t, e, n) { + e.exports = function (e) { + if ( + void 0 === + (e = e || ('undefined' != typeof document ? document : void 0)) + ) + return null; + try { + return e.activeElement || e.body; + } catch (t) { + return e.body; + } + }; + }, + {}, + ], + 134: [ + function (t, e, n) { + var r = t(124), + i = t(138), + o = r.canUseDOM ? document.createElement('div') : null, + a = {}, + t = [1, '<select multiple="true">', '</select>'], + r = [1, '<table>', '</table>'], + s = [3, '<table><tbody><tr>', '</tr></tbody></table>'], + l = [1, '<svg xmlns="http://www.w3.org/2000/svg">', '</svg>'], + u = { + '*': [1, '?<div>', '</div>'], + area: [1, '<map>', '</map>'], + col: [ + 2, + '<table><tbody></tbody><colgroup>', + '</colgroup></table>', + ], + legend: [1, '<fieldset>', '</fieldset>'], + param: [1, '<object>', '</object>'], + tr: [2, '<table><tbody>', '</tbody></table>'], + optgroup: t, + option: t, + caption: r, + colgroup: r, + tbody: r, + tfoot: r, + thead: r, + td: s, + th: s, + }; + [ + 'circle', + 'clipPath', + 'defs', + 'ellipse', + 'g', + 'image', + 'line', + 'linearGradient', + 'mask', + 'path', + 'pattern', + 'polygon', + 'polyline', + 'radialGradient', + 'rect', + 'stop', + 'text', + 'tspan', + ].forEach(function (t) { + (u[t] = l), (a[t] = !0); + }), + (e.exports = function (t) { + return ( + o || i(!1), + u.hasOwnProperty(t) || (t = '*'), + a.hasOwnProperty(t) || + ((o.innerHTML = + '*' === t ? '<link />' : '<' + t + '></' + t + '>'), + (a[t] = !o.firstChild)), + a[t] ? u[t] : null + ); + }); + }, + { 124: 124, 138: 138 }, + ], + 135: [ + function (t, e, n) { + e.exports = function (t) { + return t.Window && t instanceof t.Window + ? { + x: t.pageXOffset || t.document.documentElement.scrollLeft, + y: t.pageYOffset || t.document.documentElement.scrollTop, + } + : { x: t.scrollLeft, y: t.scrollTop }; + }; + }, + {}, + ], + 136: [ + function (t, e, n) { + var r = /([A-Z])/g; + e.exports = function (t) { + return t.replace(r, '-$1').toLowerCase(); + }; + }, + {}, + ], + 137: [ + function (t, e, n) { + var r = t(136), + i = /^ms-/; + e.exports = function (t) { + return r(t).replace(i, '-ms-'); + }; + }, + { 136: 136 }, + ], + 138: [ + function (t, e, n) { + var A = function (t) {}; + e.exports = function (t, e, n, r, i, o, a, s) { + var l, u, c; + if ((A(e), !t)) + throw ( + (void 0 === e + ? (c = new Error( + 'Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.', + )) + : ((l = [n, r, i, o, a, s]), + (u = 0), + ((c = new Error( + e.replace(/%s/g, function () { + return l[u++]; + }), + )).name = 'Invariant Violation')), + (c.framesToPop = 1), + c) + ); + }; + }, + {}, + ], + 139: [ + function (t, e, n) { + e.exports = function (t) { + var e = (t ? t.ownerDocument || t : document).defaultView || window; + return !( + !t || + !('function' == typeof e.Node + ? t instanceof e.Node + : 'object' == typeof t && + 'number' == typeof t.nodeType && + 'string' == typeof t.nodeName) + ); + }; + }, + {}, + ], + 140: [ + function (t, e, n) { + var r = t(139); + e.exports = function (t) { + return r(t) && 3 == t.nodeType; + }; + }, + { 139: 139 }, + ], + 141: [ + function (t, e, n) { + e.exports = function (e) { + var n = {}; + return function (t) { + return n.hasOwnProperty(t) || (n[t] = e.call(this, t)), n[t]; + }; + }; + }, + {}, + ], + 142: [ + function (t, e, n) { + function o(t, e) { + return t === e + ? 0 !== t || 0 !== e || 1 / t == 1 / e + : t != t && e != e; + } + var a = Object.prototype.hasOwnProperty; + e.exports = function (t, e) { + if (!o(t, e)) { + if ( + 'object' != typeof t || + null === t || + 'object' != typeof e || + null === e + ) + return !1; + var n = Object.keys(t), + r = Object.keys(e); + if (n.length !== r.length) return !1; + for (var i = 0; i < n.length; i++) + if (!a.call(e, n[i]) || !o(t[n[i]], e[n[i]])) return !1; + } + return !0; + }; + }, + {}, + ], + 143: [ + function (t, e, n) { + t = t(130); + e.exports = t; + }, + { 130: 130 }, + ], + 144: [ + function (t, e, n) { + var l = Object.getOwnPropertySymbols, + u = Object.prototype.hasOwnProperty, + c = Object.prototype.propertyIsEnumerable; + e.exports = (function () { + try { + if (!Object.assign) return; + var t = new String('abc'); + if (((t[5] = 'de'), '5' === Object.getOwnPropertyNames(t)[0])) + return; + for (var e = {}, n = 0; n < 10; n++) + e['_' + String.fromCharCode(n)] = n; + if ( + '0123456789' !== + Object.getOwnPropertyNames(e) + .map(function (t) { + return e[t]; + }) + .join('') + ) + return; + var r = {}; + return ( + 'abcdefghijklmnopqrst'.split('').forEach(function (t) { + r[t] = t; + }), + 'abcdefghijklmnopqrst' === + Object.keys(Object.assign({}, r)).join('') + ); + } catch (t) { + return; + } + })() + ? Object.assign + : function (t, e) { + for ( + var n, + r = (function (t) { + if (null == t) + throw new TypeError( + 'Object.assign cannot be called with null or undefined', + ); + return Object(t); + })(t), + i = 1; + i < arguments.length; + i++ + ) { + for (var o in (n = Object(arguments[i]))) + u.call(n, o) && (r[o] = n[o]); + if (l) + for (var a = l(n), s = 0; s < a.length; s++) + c.call(n, a[s]) && (r[a[s]] = n[a[s]]); + } + return r; + }; + }, + {}, + ], + 145: [ + function (t, e, n) { + e.exports = function (t, e, n, r, i) {}; + }, + { 138: 138, 143: 143, 148: 148 }, + ], + 146: [ + function (t, e, n) { + var r = t(147); + e.exports = function (t) { + return r(t, !1); + }; + }, + { 147: 147 }, + ], + 147: [ + function (t, e, n) { + var r = t(130), + d = t(138), + i = t(143), + f = t(148), + g = t(145); + e.exports = function (o, l) { + function c(t) { + (this.message = t), (this.stack = ''); + } + function n(s) { + function t(t, e, n, r, i, o, a) { + return ( + (r = r || p), + (o = o || n), + a !== f && + l && + d( + !1, + 'Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types', + ), + null == e[n] + ? t + ? new c( + null === e[n] + ? 'The ' + + i + + ' `' + + o + + '` is marked as required in `' + + r + + '`, but its value is `null`.' + : 'The ' + + i + + ' `' + + o + + '` is marked as required in `' + + r + + '`, but its value is `undefined`.', + ) + : null + : s(e, n, r, i, o) + ); + } + var e = t.bind(null, !1); + return (e.isRequired = t.bind(null, !0)), e; + } + function t(a) { + return n(function (t, e, n, r, i, o) { + return u((t = t[e])) !== a + ? new c( + 'Invalid ' + + r + + ' `' + + i + + '` of type `' + + s(t) + + '` supplied to `' + + n + + '`, expected `' + + a + + '`.', + ) + : null; + }); + } + function a(t) { + switch (typeof t) { + case 'number': + case 'string': + case 'undefined': + return !0; + case 'boolean': + return !t; + case 'object': + if (Array.isArray(t)) return t.every(a); + if (null !== t && !o(t)) { + var e = (function (t) { + if ('function' == typeof (t = t && ((A && t[A]) || t[h]))) + return t; + })(t); + if (!e) return !1; + var n, + r = e.call(t); + if (e !== t.entries) { + for (; !(n = r.next()).done; ) if (!a(n.value)) return !1; + } else + for (; !(n = r.next()).done; ) { + var i = n.value; + if (i && !a(i[1])) return !1; + } + } + return !0; + default: + return !1; + } + } + function u(t) { + var e = typeof t; + return Array.isArray(t) + ? 'array' + : t instanceof RegExp + ? 'object' + : ((t = t), + 'symbol' === e || + 'Symbol' === t['@@toStringTag'] || + ('function' == typeof Symbol && t instanceof Symbol) + ? 'symbol' + : e); + } + function s(t) { + if (null == t) return '' + t; + var e = u(t); + if ('object' === e) { + if (t instanceof Date) return 'date'; + if (t instanceof RegExp) return 'regexp'; + } + return e; + } + var A = 'function' == typeof Symbol && Symbol.iterator, + h = '@@iterator', + p = '<<anonymous>>', + e = { + array: t('array'), + bool: t('boolean'), + func: t('function'), + number: t('number'), + object: t('object'), + string: t('string'), + symbol: t('symbol'), + any: n(r.thatReturnsNull), + arrayOf: function (l) { + return n(function (t, e, n, r, i) { + if ('function' != typeof l) + return new c( + 'Property `' + + i + + '` of component `' + + n + + '` has invalid PropType notation inside arrayOf.', + ); + var o = t[e]; + if (!Array.isArray(o)) + return new c( + 'Invalid ' + + r + + ' `' + + i + + '` of type `' + + u(o) + + '` supplied to `' + + n + + '`, expected an array.', + ); + for (var a = 0; a < o.length; a++) { + var s = l(o, a, n, r, i + '[' + a + ']', f); + if (s instanceof Error) return s; + } + return null; + }); + }, + element: n(function (t, e, n, r, i) { + return ( + (t = t[e]), + o(t) + ? null + : new c( + 'Invalid ' + + r + + ' `' + + i + + '` of type `' + + u(t) + + '` supplied to `' + + n + + '`, expected a single ReactElement.', + ) + ); + }), + instanceOf: function (a) { + return n(function (t, e, n, r, i) { + var o; + return t[e] instanceof a + ? null + : ((o = a.name || p), + new c( + 'Invalid ' + + r + + ' `' + + i + + '` of type `' + + ((r = t[e]).constructor && r.constructor.name + ? r.constructor.name + : p) + + '` supplied to `' + + n + + '`, expected instance of `' + + o + + '`.', + )); + }); + }, + node: n(function (t, e, n, r, i) { + return a(t[e]) + ? null + : new c( + 'Invalid ' + + r + + ' `' + + i + + '` supplied to `' + + n + + '`, expected a ReactNode.', + ); + }), + objectOf: function (l) { + return n(function (t, e, n, r, i) { + if ('function' != typeof l) + return new c( + 'Property `' + + i + + '` of component `' + + n + + '` has invalid PropType notation inside objectOf.', + ); + var o, + a = t[e]; + if ('object' !== (t = u(a))) + return new c( + 'Invalid ' + + r + + ' `' + + i + + '` of type `' + + t + + '` supplied to `' + + n + + '`, expected an object.', + ); + for (o in a) + if (a.hasOwnProperty(o)) { + var s = l(a, o, n, r, i + '.' + o, f); + if (s instanceof Error) return s; + } + return null; + }); + }, + oneOf: function (u) { + return Array.isArray(u) + ? n(function (t, e, n, r, i) { + for (var o, a, s = t[e], l = 0; l < u.length; l++) + if ( + ((o = s), + (a = u[l]), + o === a + ? 0 !== o || 1 / o == 1 / a + : o != o && a != a) + ) + return null; + return new c( + 'Invalid ' + + r + + ' `' + + i + + '` of value `' + + s + + '` supplied to `' + + n + + '`, expected one of ' + + JSON.stringify(u) + + '.', + ); + }) + : r.thatReturnsNull; + }, + oneOfType: function (a) { + if (!Array.isArray(a)) return r.thatReturnsNull; + for (var t = 0; t < a.length; t++) { + var e = a[t]; + if ('function' != typeof e) + return ( + i( + !1, + 'Invalid argument supplid to oneOfType. Expected an array of check functions, but received %s at index %s.', + (function (t) { + var e = s(t); + switch (e) { + case 'array': + case 'object': + return 'an ' + e; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + e; + default: + return e; + } + })(e), + t, + ), + r.thatReturnsNull + ); + } + return n(function (t, e, n, r, i) { + for (var o = 0; o < a.length; o++) + if (null == (0, a[o])(t, e, n, r, i, f)) return null; + return new c( + 'Invalid ' + r + ' `' + i + '` supplied to `' + n + '`.', + ); + }); + }, + shape: function (l) { + return n(function (t, e, n, r, i) { + var o, + a = t[e]; + if ('object' !== (t = u(a))) + return new c( + 'Invalid ' + + r + + ' `' + + i + + '` of type `' + + t + + '` supplied to `' + + n + + '`, expected `object`.', + ); + for (o in l) { + var s = l[o]; + if (s) { + s = s(a, o, n, r, i + '.' + o, f); + if (s) return s; + } + } + return null; + }); + }, + }; + return ( + (c.prototype = Error.prototype), + (e.checkPropTypes = g), + (e.PropTypes = e) + ); + }; + }, + { 130: 130, 138: 138, 143: 143, 145: 145, 148: 148 }, + ], + 148: [ + function (t, e, n) { + e.exports = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + }, + {}, + ], + }, + {}, + [45], + )(45); + }), + (w = Br.exports), + {}), + Dr = [ + function (t, e, n) { + t.exports = n(1); + }, + function (t, e, n) { + var n = n(2), + n = (n = n) && n.__esModule ? n : { default: n }; + Mr.ChromePicker = n.default; + }, + function (t, e, n) { + Object.defineProperty(e, '__esModule', { value: !0 }), (e.Chrome = void 0); + var r = + Object.assign || + function (t) { + for (var e = 1; e < arguments.length; e++) { + var n, + r = arguments[e]; + for (n in r) + Object.prototype.hasOwnProperty.call(r, n) && (t[n] = r[n]); + } + return t; + }, + i = function (t, e, n) { + return e && o(t.prototype, e), n && o(t, n), t; + }; + function o(t, e) { + for (var n = 0; n < e.length; n++) { + var r = e[n]; + (r.enumerable = r.enumerable || !1), + (r.configurable = !0), + 'value' in r && (r.writable = !0), + Object.defineProperty(t, r.key, r); + } + } + var s = p(n(3)), + a = p(n(4)), + l = n(15), + u = p(n(29)), + c = p(n(30)), + A = p(n(17)), + h = p(n(31)); + function p(t) { + return t && t.__esModule ? t : { default: t }; + } + function d(t, e) { + if (t) + return !e || ('object' != typeof e && 'function' != typeof e) ? t : e; + throw new ReferenceError( + "this hasn't been initialised - super() hasn't been called", + ); + } + n = e.Chrome = (function (t) { + var e = a; + if ('function' != typeof t && null !== t) + throw new TypeError( + 'Super expression must either be null or a function, not ' + typeof t, + ); + function a() { + for (var e, t = arguments.length, n = Array(t), r = 0; r < t; r++) + n[r] = arguments[r]; + var i = this, + o = a; + if (i instanceof o) + return ( + ((o = e = + d( + this, + (i = a.__proto__ || Object.getPrototypeOf(a)).call.apply( + i, + [this].concat(n), + ), + )).shouldComponentUpdate = A.default.bind( + e, + e, + arguments[0], + arguments[1], + )), + (e.handleChange = function (t) { + e.props.onChange(t); + }), + d(e, o) + ); + throw new TypeError('Cannot call a class as a function'); + } + return ( + (e.prototype = Object.create(t && t.prototype, { + constructor: { + value: e, + enumerable: !1, + writable: !0, + configurable: !0, + }, + })), + t && + (Object.setPrototypeOf + ? Object.setPrototypeOf(e, t) + : (e.__proto__ = t)), + i(a, [ + { + key: 'classes', + value: function () { + return { + default: { + picker: { width: '100%' }, + saturation: { + width: '100%', + height: '48px', + position: 'relative', + borderRadius: '0px', + overflow: 'hidden', + }, + Saturation: { radius: '0px' }, + body: { padding: '0' }, + controls: { marginTop: '1px', display: 'block' }, + swatch: { + marginTop: '0px', + width: '16px', + height: '16px', + borderRadius: '8px', + position: 'relative', + overflow: 'hidden', + }, + active: { + Absolute: '0 0 0 0', + zIndex: 2, + borderRadius: '8px', + boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.1)', + background: + 'rgba(' + + this.props.rgb.r + + ', ' + + this.props.rgb.g + + ', ' + + this.props.rgb.b + + ', ' + + this.props.rgb.a + + ')', + }, + hue: { height: '16px', position: 'relative', width: '100%' }, + Hue: { radius: '0' }, + colors: { + marginTop: '1px', + display: 'flex', + flexDirection: 'row', + }, + }, + }; + }, + }, + { + key: 'render', + value: function () { + var t = []; + if (this.props.colors) + for (var e = 0; e < this.props.colors.length; e++) { + var n = this.props.colors[e]; + t.push( + s.default.createElement(h.default, { + key: n, + color: n, + active: n.replace('#', '').toLowerCase() == this.props.hex, + onClick: this.handleChange, + }), + ); + } + return s.default.createElement( + 'div', + { style: this.styles().picker }, + s.default.createElement( + 'div', + { style: this.styles().saturation }, + s.default.createElement( + l.Saturation, + r({}, this.styles().Saturation, this.props, { + pointer: c.default, + onChange: this.handleChange, + }), + ), + ), + s.default.createElement( + 'div', + { style: this.styles().body }, + s.default.createElement( + 'div', + { style: this.styles().hue }, + s.default.createElement( + l.Hue, + r({}, this.styles().Hue, this.props, { + pointer: u.default, + onChange: this.handleChange, + }), + ), + ), + s.default.createElement( + 'div', + { style: this.styles().colors }, + t, + ), + ), + ); + }, + }, + ]), + a + ); + })(a.default.Component); + (n.defaultProps = { + colors: [ + '#000000', + '#808080', + '#FFFFFF', + '#D33115', + '#E27300', + '#FCC400', + '#B0BC00', + '#68BC00', + '#16A5A5', + '#009CE0', + '#7B64FF', + '#FA28FF', + '#E20F2E', + ], + }), + (e.default = (0, l.ColorWrap)(n)); + }, + function (t, e) { + t.exports = br; + }, + function (t, e, n) { + t.exports = { Component: n(5), inline: n(6), mixin: { css: n(6) } }; + }, + function (t, e, n) { + var r = function (t, e, n) { + return e && s(t.prototype, e), n && s(t, n), t; + }, + i = function (t, e, n) { + for (var r = !0; r; ) { + var i = t, + o = e, + a = n, + r = !1, + s = + (null === i && (i = Function.prototype), + Object.getOwnPropertyDescriptor(i, o)); + if (void 0 !== s) { + if ('value' in s) return s.value; + var l = s.get; + return void 0 === l ? void 0 : l.call(a); + } + l = Object.getPrototypeOf(i); + if (null === l) return; + (t = l), (e = o), (n = a), (r = !0), (s = void 0); + } + }, + o = n(3), + a = n(6), + n = (function (t) { + function n() { + var t = this, + e = n; + if (!(t instanceof e)) + throw new TypeError('Cannot call a class as a function'); + i(Object.getPrototypeOf(n.prototype), 'constructor', this).apply( + this, + arguments, + ); + } + var e = n; + if ('function' != typeof t && null !== t) + throw new TypeError( + 'Super expression must either be null or a function, not ' + typeof t, + ); + return ( + (e.prototype = Object.create(t && t.prototype, { + constructor: { + value: e, + enumerable: !1, + writable: !0, + configurable: !0, + }, + })), + t && + (Object.setPrototypeOf + ? Object.setPrototypeOf(e, t) + : (e.__proto__ = t)), + r(n, [ + { + key: 'css', + value: function (t) { + return a.call(this, t); + }, + }, + { + key: 'styles', + value: function () { + return this.css(); + }, + }, + ]), + n + ); + })(o.Component); + function s(t, e) { + for (var n = 0; n < e.length; n++) { + var r = e[n]; + (r.enumerable = r.enumerable || !1), + (r.configurable = !0), + 'value' in r && (r.writable = !0), + Object.defineProperty(t, r.key, r); + } + } + (n.contextTypes = { mixins: o.PropTypes.object }), (t.exports = n); + }, + function (t, e, u) { + var c = u(7), + A = u(8), + h = u(9); + t.exports = function (t) { + var n = this, + r = ((h = u(9)), []); + if (!this.classes) + throw console.warn( + 'Define this.classes on `' + this.constructor.name + '`', + ); + A(this.classes()); + function e(t, e) { + n.classes()[t] + ? r.push(n.classes()[t]) + : t && + e && + !0 === e.warn && + console.warn( + 'The `' + + t + + '` css class does not exist on `' + + n.constructor.name + + '`', + ); + } + var i, o; + for (i in (e('default'), this.props)) { + var a = this.props[i]; + c(a) || + (!0 === a ? (e(i), e(i + '-true')) : e(a ? i + '-' + a : i + '-false')); + } + if (this.props && this.props.activeBounds) + for (var s = 0; s < this.props.activeBounds.length; s++) + e(this.props.activeBounds[s]); + for (o in t) !0 === t[o] && e(o, { warn: !0 }); + var l = {}; + return ( + this.context && this.context.mixins && (l = this.context.mixins), h(r, l) + ); + }; + }, + function (t, e) { + t.exports = function (t) { + var e = typeof t; + return !!t && ('object' == e || 'function' == e); + }; + }, + function (t, e, n) { + var i = n(7); + t.exports = function (t) { + for (var e in t) { + var n = t[e]; + if (i(n)) + for (var r in n) { + r = n[r]; + i(r) || + console.warn( + 'Make sure the value of the element `' + + e + + '` is an object of css. You passed it `' + + n + + '`', + ); + } + else + console.warn( + 'Make sure the value of `' + + e + + '` is an object of html elements. You passed it `' + + n + + '`', + ); + } + }; + }, + function (t, e, n) { + var r = n(10), + i = n(14); + t.exports = function (t, e) { + t = r(t); + return i(t, e); + }; + }, + function (t, e, n) { + var r = n(11), + i = n(7), + o = n(13); + t.exports = function (t) { + return i(t) && !o(t) + ? t + : 1 === t.length + ? t[0] + : r.recursive.apply(void 0, t); + }; + }, + function (t, e, n) { + !function (t) { + function e(t, e, n) { + var r = n[0], + i = n.length; + (!t && 'object' === c(r)) || (r = {}); + for (var o = 0; o < i; ++o) { + var a = n[o], + s = c(a); + if ('object' === s) + for (var l in a) { + var u = t ? A.clone(a[l]) : a[l]; + r[l] = e + ? (function t(e, n) { + if ('object' !== c(e)) return n; + for (var r in n) + 'object' === c(e[r]) && 'object' === c(n[r]) + ? (e[r] = t(e[r], n[r])) + : (e[r] = n[r]); + return e; + })(r[l], u) + : u; + } + } + return r; + } + function c(t) { + return {}.toString.call(t).slice(8, -1).toLowerCase(); + } + var n, A; + (n = + 'object' == typeof t && t && 'object' == typeof t.exports && t.exports), + ((A = function (t) { + return e(!0 === t, !1, arguments); + }).recursive = function (t) { + return e(!0 === t, !0, arguments); + }), + (A.clone = function (t) { + var e, + n, + r = t, + i = c(t); + if ('array' === i) + for (r = [], n = t.length, e = 0; e < n; ++e) r[e] = A.clone(t[e]); + else if ('object' === i) for (e in ((r = {}), t)) r[e] = A.clone(t[e]); + return r; + }), + n ? (t.exports = A) : (window.merge = A); + }.call(e, n(12)(t)); + }, + function (t, e) { + t.exports = function (t) { + return ( + t.webpackPolyfill || + ((t.deprecate = function () {}), + (t.paths = []), + (t.children = []), + (t.webpackPolyfill = 1)), + t + ); + }; + }, + function (t, e) { + var n = Array.isArray; + t.exports = n; + }, + function (t, e, n) { + var A = n(7), + h = n(13), + p = n(11), + d = { + borderRadius: function (t) { + return null !== t + ? { + msBorderRadius: t, + MozBorderRadius: t, + OBorderRadius: t, + WebkitBorderRadius: t, + borderRadius: t, + } + : void 0; + }, + boxShadow: function (t) { + return null !== t + ? { + msBoxShadow: t, + MozBoxShadow: t, + OBoxShadow: t, + WebkitBoxShadow: t, + boxShadow: t, + } + : void 0; + }, + userSelect: function (t) { + return null !== t + ? { + WebkitTouchCallout: t, + KhtmlUserSelect: t, + MozUserSelect: t, + msUserSelect: t, + WebkitUserSelect: t, + userSelect: t, + } + : void 0; + }, + flex: function (t) { + return null !== t + ? { + WebkitBoxFlex: t, + MozBoxFlex: t, + WebkitFlex: t, + msFlex: t, + flex: t, + } + : void 0; + }, + flexBasis: function (t) { + return null !== t ? { WebkitFlexBasis: t, flexBasis: t } : void 0; + }, + justifyContent: function (t) { + return null !== t + ? { WebkitJustifyContent: t, justifyContent: t } + : void 0; + }, + transition: function (t) { + return null !== t + ? { + msTransition: t, + MozTransition: t, + OTransition: t, + WebkitTransition: t, + transition: t, + } + : void 0; + }, + transform: function (t) { + return null !== t + ? { + msTransform: t, + MozTransform: t, + OTransform: t, + WebkitTransform: t, + transform: t, + } + : void 0; + }, + Absolute: function (t) { + if (null !== t) + return { + position: 'absolute', + top: (t = t.split(' '))[0], + right: t[1], + bottom: t[2], + left: t[3], + }; + }, + Extend: function (t, e) { + e = e[t]; + return e || void 0; + }, + }; + t.exports = function t(e, n, r) { + var i, + o = p(n, d), + a = {}; + for (i in e) { + var s = e[i]; + if (A(s) && !h(s)) a[i] = t(s, n, e); + else if (o[i]) { + var l, + u = o[i](s, r); + for (l in u) { + var c = u[l]; + a[l] = c; + } + } else a[i] = s; + } + return a; + }; + }, + function (t, e, n) { + Object.defineProperty(e, '__esModule', { value: !0 }); + var r = n(16), + i = + (Object.defineProperty(e, 'Alpha', { + enumerable: !0, + get: function () { + return l(r).default; + }, + }), + n(20)), + o = + (Object.defineProperty(e, 'Checkboard', { + enumerable: !0, + get: function () { + return l(i).default; + }, + }), + n(21)), + a = + (Object.defineProperty(e, 'Hue', { + enumerable: !0, + get: function () { + return l(o).default; + }, + }), + n(22)), + s = + (Object.defineProperty(e, 'Saturation', { + enumerable: !0, + get: function () { + return l(a).default; + }, + }), + n(24)); + function l(t) { + return t && t.__esModule ? t : { default: t }; + } + Object.defineProperty(e, 'ColorWrap', { + enumerable: !0, + get: function () { + return l(s).default; + }, + }); + }, + function (t, e, n) { + Object.defineProperty(e, '__esModule', { value: !0 }), (e.Alpha = void 0); + var r = function (t, e, n) { + return e && i(t.prototype, e), n && i(t, n), t; + }; + function i(t, e) { + for (var n = 0; n < e.length; n++) { + var r = e[n]; + (r.enumerable = r.enumerable || !1), + (r.configurable = !0), + 'value' in r && (r.writable = !0), + Object.defineProperty(t, r.key, r); + } + } + var o = u(n(3)), + a = u(n(4)), + s = u(n(17)), + l = u(n(20)); + function u(t) { + return t && t.__esModule ? t : { default: t }; + } + function c(t, e) { + if (t) + return !e || ('object' != typeof e && 'function' != typeof e) ? t : e; + throw new ReferenceError( + "this hasn't been initialised - super() hasn't been called", + ); + } + n = e.Alpha = (function (t) { + var e = a; + if ('function' != typeof t && null !== t) + throw new TypeError( + 'Super expression must either be null or a function, not ' + typeof t, + ); + function a() { + for (var r, t = arguments.length, e = Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + var i = this, + o = a; + if (i instanceof o) + return ( + ((o = r = + c( + this, + (i = a.__proto__ || Object.getPrototypeOf(a)).call.apply( + i, + [this].concat(e), + ), + )).shouldComponentUpdate = s.default.bind( + r, + r, + arguments[0], + arguments[1], + )), + (r.handleChange = function (t, e) { + e || t.preventDefault(); + var e = r.refs.container, + n = e.clientWidth, + t = + (t.pageX || t.touches[0].pageX) - + (e.getBoundingClientRect().left + window.pageXOffset), + e = t < 0 ? 0 : n < t ? 1 : Math.round((100 * t) / n) / 100; + r.props.a !== e && + r.props.onChange({ + h: r.props.hsl.h, + s: r.props.hsl.s, + l: r.props.hsl.l, + a: e, + source: 'rgb', + }); + }), + (r.handleMouseDown = function (t) { + r.handleChange(t, !0), + window.addEventListener('mousemove', r.handleChange), + window.addEventListener('mouseup', r.handleMouseUp); + }), + (r.handleMouseUp = function () { + r.unbindEventListeners(); + }), + (r.unbindEventListeners = function () { + window.removeEventListener('mousemove', r.handleChange), + window.removeEventListener('mouseup', r.handleMouseUp); + }), + c(r, o) + ); + throw new TypeError('Cannot call a class as a function'); + } + return ( + (e.prototype = Object.create(t && t.prototype, { + constructor: { + value: e, + enumerable: !1, + writable: !0, + configurable: !0, + }, + })), + t && + (Object.setPrototypeOf + ? Object.setPrototypeOf(e, t) + : (e.__proto__ = t)), + r(a, [ + { + key: 'classes', + value: function () { + return { + default: { + alpha: { Absolute: '0 0 0 0', borderRadius: this.props.radius }, + checkboard: { Absolute: '0 0 0 0', overflow: 'hidden' }, + gradient: { + Absolute: '0 0 0 0', + background: + 'linear-gradient(to right, rgba(' + + this.props.rgb.r + + ', ' + + this.props.rgb.g + + ', ' + + this.props.rgb.b + + ', 0) 0%, rgba(' + + this.props.rgb.r + + ', ' + + this.props.rgb.g + + ', ' + + this.props.rgb.b + + ', 1) 100%)', + boxShadow: this.props.shadow, + borderRadius: this.props.radius, + }, + container: { + position: 'relative', + zIndex: '2', + height: '100%', + margin: '0 3px', + }, + pointer: { + zIndex: '2', + position: 'absolute', + left: 100 * this.props.rgb.a + '%', + }, + slider: { + width: '4px', + borderRadius: '1px', + height: '8px', + boxShadow: '0 0 2px rgba(0, 0, 0, .6)', + background: '#fff', + marginTop: '1px', + transform: 'translateX(-2px)', + }, + }, + }; + }, + }, + { + key: 'componentWillUnmount', + value: function () { + this.unbindEventListeners(); + }, + }, + { + key: 'render', + value: function () { + var t = o.default.createElement('div', { + style: this.styles().slider, + }); + return ( + this.props.pointer && + (t = o.default.createElement(this.props.pointer, this.props)), + o.default.createElement( + 'div', + { style: this.styles().alpha }, + o.default.createElement( + 'div', + { style: this.styles().checkboard }, + o.default.createElement(l.default, null), + ), + o.default.createElement('div', { + style: this.styles().gradient, + }), + o.default.createElement( + 'div', + { + style: this.styles().container, + ref: 'container', + onMouseDown: this.handleMouseDown, + onTouchMove: this.handleChange, + onTouchStart: this.handleChange, + }, + o.default.createElement( + 'div', + { style: this.styles().pointer, ref: 'pointer' }, + t, + ), + ), + ) + ); + }, + }, + ]), + a + ); + })(a.default.Component); + e.default = n; + }, + function (t, e, n) { + t.exports = n(18); + }, + function (t, e, n) { + var r = n(19); + t.exports = function (t, e, n) { + return !r(t.props, e) || !r(t.state, n); + }; + }, + function (t, e) { + var a = Object.prototype.hasOwnProperty; + t.exports = function (t, e) { + if (t !== e) { + if ( + 'object' != typeof t || + null === t || + 'object' != typeof e || + null === e + ) + return !1; + var n = Object.keys(t), + r = Object.keys(e); + if (n.length !== r.length) return !1; + for (var i = a.bind(e), o = 0; o < n.length; o++) + if (!i(n[o]) || t[n[o]] !== e[n[o]]) return !1; + } + return !0; + }; + }, + function (t, e, n) { + Object.defineProperty(e, '__esModule', { value: !0 }), + (e.Checkboard = void 0); + var r = function (t, e, n) { + return e && i(t.prototype, e), n && i(t, n), t; + }; + function i(t, e) { + for (var n = 0; n < e.length; n++) { + var r = e[n]; + (r.enumerable = r.enumerable || !1), + (r.configurable = !0), + 'value' in r && (r.writable = !0), + Object.defineProperty(t, r.key, r); + } + } + var a = l(n(3)), + o = l(n(4)), + s = l(n(17)); + function l(t) { + return t && t.__esModule ? t : { default: t }; + } + function u(t, e) { + if (t) + return !e || ('object' != typeof e && 'function' != typeof e) ? t : e; + throw new ReferenceError( + "this hasn't been initialised - super() hasn't been called", + ); + } + var c = {}; + function A(t, e, n) { + var r = t + ',' + e + ',' + n; + return ( + c[r] || + ((t = (function (t, e, n) { + if ('undefined' == typeof document) return null; + var r = document.createElement('canvas'), + i = ((r.width = r.height = 2 * n), r.getContext('2d')); + return i + ? ((i.fillStyle = t), + i.fillRect(0, 0, r.width, r.height), + (i.fillStyle = e), + i.fillRect(0, 0, n, n), + i.translate(n, n), + i.fillRect(0, 0, n, n), + r.toDataURL()) + : null; + })(t, e, n)), + (c[r] = t)) + ); + } + n = e.Checkboard = (function (t) { + var e = o; + if ('function' != typeof t && null !== t) + throw new TypeError( + 'Super expression must either be null or a function, not ' + typeof t, + ); + function o() { + for (var t = arguments.length, e = Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + var r = this, + i = o; + if (r instanceof i) + return ( + ((r = i = + u( + this, + (r = o.__proto__ || Object.getPrototypeOf(o)).call.apply( + r, + [this].concat(e), + ), + )).shouldComponentUpdate = s.default.bind( + i, + i, + arguments[0], + arguments[1], + )), + u(i, r) + ); + throw new TypeError('Cannot call a class as a function'); + } + return ( + (e.prototype = Object.create(t && t.prototype, { + constructor: { + value: e, + enumerable: !1, + writable: !0, + configurable: !0, + }, + })), + t && + (Object.setPrototypeOf + ? Object.setPrototypeOf(e, t) + : (e.__proto__ = t)), + r(o, [ + { + key: 'classes', + value: function () { + return { + default: { + grid: { + Absolute: '0 0 0 0', + background: + 'url(' + + A(this.props.white, this.props.grey, this.props.size) + + ') center left', + }, + }, + }; + }, + }, + { + key: 'render', + value: function () { + return a.default.createElement('div', { + style: this.styles().grid, + ref: 'grid', + }); + }, + }, + ]), + o + ); + })(o.default.Component); + (n.defaultProps = { size: 8, white: '#fff', grey: '#e6e6e6' }), + (e.default = n); + }, + function (t, e, n) { + Object.defineProperty(e, '__esModule', { value: !0 }), (e.Hue = void 0); + var r = function (t, e, n) { + return e && i(t.prototype, e), n && i(t, n), t; + }; + function i(t, e) { + for (var n = 0; n < e.length; n++) { + var r = e[n]; + (r.enumerable = r.enumerable || !1), + (r.configurable = !0), + 'value' in r && (r.writable = !0), + Object.defineProperty(t, r.key, r); + } + } + var o = l(n(3)), + a = l(n(4)), + s = l(n(17)); + function l(t) { + return t && t.__esModule ? t : { default: t }; + } + function u(t, e) { + if (t) + return !e || ('object' != typeof e && 'function' != typeof e) ? t : e; + throw new ReferenceError( + "this hasn't been initialised - super() hasn't been called", + ); + } + n = e.Hue = (function (t) { + var e = a; + if ('function' != typeof t && null !== t) + throw new TypeError( + 'Super expression must either be null or a function, not ' + typeof t, + ); + function a() { + for (var o, t = arguments.length, e = Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + var r = this, + i = a; + if (r instanceof i) + return ( + ((i = o = + u( + this, + (r = a.__proto__ || Object.getPrototypeOf(a)).call.apply( + r, + [this].concat(e), + ), + )).shouldComponentUpdate = s.default.bind( + o, + o, + arguments[0], + arguments[1], + )), + (o.handleChange = function (t, e) { + e || t.preventDefault(); + var e = o.refs.container, + n = e.clientWidth, + r = e.clientHeight, + i = + (t.pageX || (t.touches && t.touches[0].pageX) || 0) - + (e.getBoundingClientRect().left + window.pageXOffset), + t = + (t.pageY || (t.touches && t.touches[0].pageY) || 0) - + (e.getBoundingClientRect().top + window.pageYOffset); + (e = + 'vertical' === o.props.direction + ? t < 0 + ? 359 + : r < t + ? 0 + : (360 * ((-100 * t) / r + 100)) / 100 + : i < 0 + ? 0 + : n < i + ? 359 + : (360 * ((100 * i) / n)) / 100), + o.props.hsl.h !== e && + o.props.onChange({ + h: e, + s: o.props.hsl.s, + l: o.props.hsl.l, + a: o.props.hsl.a, + source: 'rgb', + }); + }), + (o.handleMouseDown = function (t) { + o.handleChange(t, !0), + window.addEventListener('mousemove', o.handleChange), + window.addEventListener('mouseup', o.handleMouseUp); + }), + (o.handleMouseUp = function () { + o.unbindEventListeners(); + }), + u(o, i) + ); + throw new TypeError('Cannot call a class as a function'); + } + return ( + (e.prototype = Object.create(t && t.prototype, { + constructor: { + value: e, + enumerable: !1, + writable: !0, + configurable: !0, + }, + })), + t && + (Object.setPrototypeOf + ? Object.setPrototypeOf(e, t) + : (e.__proto__ = t)), + r(a, [ + { + key: 'classes', + value: function () { + return { + default: { + hue: { + Absolute: '0 0 0 0', + background: + 'linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%)', + borderRadius: this.props.radius, + boxShadow: this.props.shadow, + }, + container: { + margin: '0 2px', + position: 'relative', + height: '100%', + }, + pointer: { + zIndex: '2', + position: 'absolute', + left: (100 * this.props.hsl.h) / 360 + '%', + }, + slider: { + marginTop: '1px', + width: '4px', + borderRadius: '1px', + height: '8px', + boxShadow: '0 0 2px rgba(0, 0, 0, .6)', + background: '#fff', + transform: 'translateX(-2px)', + }, + }, + 'direction-vertical': { + hue: { + background: + 'linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%)', + }, + pointer: { + left: '0', + top: (-100 * this.props.hsl.h) / 360 + 100 + '%', + }, + }, + }; + }, + }, + { + key: 'componentWillUnmount', + value: function () { + this.unbindEventListeners(); + }, + }, + { + key: 'unbindEventListeners', + value: function () { + window.removeEventListener('mousemove', this.handleChange), + window.removeEventListener('mouseup', this.handleMouseUp); + }, + }, + { + key: 'render', + value: function () { + var t = o.default.createElement('div', { + style: this.styles().slider, + }); + return ( + this.props.pointer && + (t = o.default.createElement(this.props.pointer, this.props)), + o.default.createElement( + 'div', + { style: this.styles().hue }, + o.default.createElement( + 'div', + { + style: this.styles().container, + ref: 'container', + onMouseDown: this.handleMouseDown, + onTouchMove: this.handleChange, + onTouchStart: this.handleChange, + }, + o.default.createElement( + 'div', + { style: this.styles().pointer, ref: 'pointer' }, + t, + ), + ), + ) + ); + }, + }, + ]), + a + ); + })(a.default.Component); + e.default = n; + }, + function (t, e, n) { + Object.defineProperty(e, '__esModule', { value: !0 }), + (e.Saturation = void 0); + var i = function (t, e, n) { + return e && r(t.prototype, e), n && r(t, n), t; + }; + function r(t, e) { + for (var n = 0; n < e.length; n++) { + var r = e[n]; + (r.enumerable = r.enumerable || !1), + (r.configurable = !0), + 'value' in r && (r.writable = !0), + Object.defineProperty(t, r.key, r); + } + } + var o = u(n(3)), + a = u(n(4)), + s = u(n(23)), + l = u(n(17)); + function u(t) { + return t && t.__esModule ? t : { default: t }; + } + n = e.Saturation = (function (t) { + var e = r; + if ('function' != typeof t && null !== t) + throw new TypeError( + 'Super expression must either be null or a function, not ' + typeof t, + ); + function r(t) { + var e = this, + n = r; + if (!(e instanceof n)) + throw new TypeError('Cannot call a class as a function'); + var o = (function (t, e) { + if (t) + return !e || ('object' != typeof e && 'function' != typeof e) ? t : e; + throw new ReferenceError( + "this hasn't been initialised - super() hasn't been called", + ); + })(this, (r.__proto__ || Object.getPrototypeOf(r)).call(this)); + return ( + (o.shouldComponentUpdate = l.default.bind(o, o, t, arguments[1])), + (o.handleChange = function (t, e) { + e || t.preventDefault(); + var e = o.refs.container, + n = e.clientWidth, + r = e.clientHeight, + i = + (t.pageX || t.touches[0].pageX) - + (e.getBoundingClientRect().left + window.pageXOffset), + t = + (t.pageY || t.touches[0].pageY) - + (e.getBoundingClientRect().top + window.pageYOffset); + i < 0 + ? (i = 0) + : n < i + ? (i = n) + : t < 0 + ? (t = 0) + : r < t && (t = r), + o.throttle(o.props.onChange, { + h: o.props.hsl.h, + s: (100 * i) / n, + v: (-100 * t) / r + 100, + a: o.props.hsl.a, + source: 'rgb', + }); + }), + (o.handleMouseDown = function (t) { + o.handleChange(t, !0), + window.addEventListener('mousemove', o.handleChange), + window.addEventListener('mouseup', o.handleMouseUp); + }), + (o.handleMouseUp = function () { + o.unbindEventListeners(); + }), + (o.throttle = (0, s.default)(function (t, e) { + t(e); + }, 50)), + o + ); + } + return ( + (e.prototype = Object.create(t && t.prototype, { + constructor: { + value: e, + enumerable: !1, + writable: !0, + configurable: !0, + }, + })), + t && + (Object.setPrototypeOf + ? Object.setPrototypeOf(e, t) + : (e.__proto__ = t)), + i(r, [ + { + key: 'classes', + value: function () { + return { + default: { + color: { + Absolute: '0 0 0 0', + background: 'hsl(' + this.props.hsl.h + ',100%, 50%)', + borderRadius: this.props.radius, + }, + white: { + Absolute: '0 0 0 0', + background: + 'linear-gradient(to right, #fff, rgba(255,255,255,0))', + }, + black: { + Absolute: '0 0 0 0', + background: 'linear-gradient(to top, #000, rgba(0,0,0,0))', + boxShadow: this.props.shadow, + }, + pointer: { + position: 'absolute', + top: -100 * this.props.hsv.v + 100 + '%', + left: 100 * this.props.hsv.s + '%', + cursor: 'default', + }, + circle: { + width: '4px', + height: '4px', + boxShadow: + '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3), 0 0 1px 2px rgba(0,0,0,.4)', + borderRadius: '50%', + cursor: 'hand', + transform: 'translate(-2px, -2px)', + }, + }, + }; + }, + }, + { + key: 'componentWillUnmount', + value: function () { + this.unbindEventListeners(); + }, + }, + { + key: 'unbindEventListeners', + value: function () { + window.removeEventListener('mousemove', this.handleChange), + window.removeEventListener('mouseup', this.handleMouseUp); + }, + }, + { + key: 'render', + value: function () { + var t = o.default.createElement('div', { + style: this.styles().circle, + }); + return ( + this.props.pointer && + (t = o.default.createElement(this.props.pointer, this.props)), + o.default.createElement( + 'div', + { + style: this.styles().color, + ref: 'container', + onMouseDown: this.handleMouseDown, + onTouchMove: this.handleChange, + onTouchStart: this.handleChange, + }, + o.default.createElement( + 'div', + { style: this.styles().white }, + o.default.createElement('div', { + style: this.styles().black, + }), + o.default.createElement( + 'div', + { style: this.styles().pointer, ref: 'pointer' }, + t, + ), + ), + ) + ); + }, + }, + ]), + r + ); + })(a.default.Component); + e.default = n; + }, + function (h, t) { + !function (t) { + function v() { + return n.Date.now(); + } + var b = 'Expected a function', + r = NaN, + i = '[object Symbol]', + o = /^\s+|\s+$/g, + a = /^[-+]0x[0-9a-f]+$/i, + s = /^0b[01]+$/i, + l = /^0o[0-7]+$/i, + u = parseInt, + t = 'object' == typeof t && t && t.Object === Object && t, + e = 'object' == typeof self && self && self.Object === Object && self, + n = t || e || Function('return this')(), + c = Object.prototype.toString, + y = Math.max, + w = Math.min; + function A(r, n, t) { + var i, + o, + a, + s, + l, + u, + c = 0, + A = !1, + h = !1, + e = !0; + if ('function' != typeof r) throw new TypeError(b); + function p(t) { + var e = i, + n = o; + return (i = o = void 0), (c = t), (s = r.apply(n, e)); + } + function d(t) { + var e = t - u; + return void 0 === u || n <= e || e < 0 || (h && a <= t - c); + } + function f() { + var t, + e = v(); + if (d(e)) return g(e); + l = setTimeout(f, ((t = n - ((e = e) - u)), h ? w(t, a - (e - c)) : t)); + } + function g(t) { + return (l = void 0), e && i ? p(t) : ((i = o = void 0), s); + } + function m() { + var t = v(), + e = d(t); + if (((i = arguments), (o = this), (u = t), e)) { + if (void 0 === l) + return (c = t = u), (l = setTimeout(f, n)), A ? p(t) : s; + if (h) return (l = setTimeout(f, n)), p(u); + } + return void 0 === l && (l = setTimeout(f, n)), s; + } + return ( + (n = B(n) || 0), + E(t) && + ((A = !!t.leading), + (h = 'maxWait' in t), + (a = h ? y(B(t.maxWait) || 0, n) : a), + (e = 'trailing' in t ? !!t.trailing : e)), + (m.cancel = function () { + void 0 !== l && clearTimeout(l), (i = u = o = l = void (c = 0)); + }), + (m.flush = function () { + return void 0 === l ? s : g(v()); + }), + m + ); + } + function E(t) { + var e = typeof t; + return t && ('object' == e || 'function' == e); + } + function B(t) { + if ('number' == typeof t) return t; + if ( + 'symbol' == typeof (n = t) || + (!!(e = n) && 'object' == typeof e && c.call(n) == i) + ) + return r; + var e; + if ( + 'string' != + typeof (t = E(t) + ? E((e = 'function' == typeof t.valueOf ? t.valueOf() : t)) + ? e + '' + : e + : t) + ) + return 0 === t ? t : +t; + t = t.replace(o, ''); + var n = s.test(t); + return n || l.test(t) ? u(t.slice(2), n ? 2 : 8) : a.test(t) ? r : +t; + } + h.exports = function (t, e, n) { + var r = !0, + i = !0; + if ('function' != typeof t) throw new TypeError(b); + return ( + E(n) && + ((r = 'leading' in n ? !!n.leading : r), + (i = 'trailing' in n ? !!n.trailing : i)), + A(t, e, { leading: r, maxWait: e, trailing: i }) + ); + }; + }.call( + t, + (function () { + return this; + })(), + ); + }, + function (t, e, n) { + Object.defineProperty(e, '__esModule', { value: !0 }), (e.ColorWrap = void 0); + var r = + Object.assign || + function (t) { + for (var e = 1; e < arguments.length; e++) { + var n, + r = arguments[e]; + for (n in r) + Object.prototype.hasOwnProperty.call(r, n) && (t[n] = r[n]); + } + return t; + }, + o = function (t, e, n) { + return e && i(t.prototype, e), n && i(t, n), t; + }; + function i(t, e) { + for (var n = 0; n < e.length; n++) { + var r = e[n]; + (r.enumerable = r.enumerable || !1), + (r.configurable = !0), + 'value' in r && (r.writable = !0), + Object.defineProperty(t, r.key, r); + } + } + var a = A(n(3)), + s = A(n(11)), + l = (A(n(25)), A(n(26))), + u = A(n(27)), + c = A(n(17)); + function A(t) { + return t && t.__esModule ? t : { default: t }; + } + n = e.ColorWrap = function (n) { + var t = (function (t) { + var e = i; + if ('function' != typeof t && null !== t) + throw new TypeError( + 'Super expression must either be null or a function, not ' + typeof t, + ); + function i(t) { + var e = this, + n = i; + if (!(e instanceof n)) + throw new TypeError('Cannot call a class as a function'); + var r = (function (t, e) { + if (t) + return !e || ('object' != typeof e && 'function' != typeof e) + ? t + : e; + throw new ReferenceError( + "this hasn't been initialised - super() hasn't been called", + ); + })(this, (i.__proto__ || Object.getPrototypeOf(i)).call(this)); + return ( + (r.shouldComponentUpdate = c.default.bind(r, r, t, arguments[1])), + (r.handleChange = function (t) { + (t = u.default.simpleCheckForValidColor(t)) && + ((t = u.default.toState(t, t.h || r.state.oldHue)), + r.setState(t), + r.props.onChangeComplete && + r.debounce(r.props.onChangeComplete, t), + r.props.onChange && r.props.onChange(t)); + }), + (r.state = (0, s.default)(u.default.toState(t.color, 0), { + visible: t.display, + })), + (r.debounce = (0, l.default)(function (t, e) { + t(e); + }, 100)), + r + ); + } + return ( + (e.prototype = Object.create(t && t.prototype, { + constructor: { + value: e, + enumerable: !1, + writable: !0, + configurable: !0, + }, + })), + t && + (Object.setPrototypeOf + ? Object.setPrototypeOf(e, t) + : (e.__proto__ = t)), + o(i, [ + { + key: 'componentWillReceiveProps', + value: function (t) { + this.setState( + (0, s.default)(u.default.toState(t.color, this.state.oldHue), { + visible: t.display, + }), + ); + }, + }, + { + key: 'render', + value: function () { + return a.default.createElement( + n, + r({}, this.props, this.state, { onChange: this.handleChange }), + ); + }, + }, + ]), + i + ); + })(a.default.Component); + return (t.defaultProps = { color: { h: 250, s: 0.5, l: 0.2, a: 1 } }), t; + }; + e.default = n; + }, + function (t, e) { + var n = '[object Object]'; + var r, + i, + o = Function.prototype, + a = Object.prototype, + s = o.toString, + l = a.hasOwnProperty, + u = s.call(Object), + c = a.toString, + A = + ((r = Object.getPrototypeOf), + (i = Object), + function (t) { + return r(i(t)); + }); + t.exports = function (t) { + if ( + !(e = t) || + 'object' != typeof e || + c.call(t) != n || + (function (t) { + var e = !1; + if (null != t && 'function' != typeof t.toString) + try { + e = !!(t + ''); + } catch (t) {} + return e; + })(t) + ) + return !1; + var e = A(t); + return ( + null === e || + ('function' == typeof (t = l.call(e, 'constructor') && e.constructor) && + t instanceof t && + s.call(t) == u) + ); + }; + }, + function (c, t) { + !function (t) { + var v = 'Expected a function', + r = NaN, + i = /^\s+|\s+$/g, + o = /^[-+]0x[0-9a-f]+$/i, + a = /^0b[01]+$/i, + s = /^0o[0-7]+$/i, + l = parseInt, + t = 'object' == typeof t && t && t.Object === Object && t, + e = 'object' == typeof self && self && self.Object === Object && self, + n = t || e || Function('return this')(), + u = Object.prototype.toString, + b = Math.max, + y = Math.min, + w = function () { + return n.Date.now(); + }; + function E(t) { + var e = typeof t; + return t && ('object' == e || 'function' == e); + } + function B(t) { + if ('number' == typeof t) return t; + if ( + 'symbol' == typeof (n = t) || + (!!(e = n) && 'object' == typeof e && '[object Symbol]' == u.call(n)) + ) + return r; + var e; + if ( + 'string' != + typeof (t = E(t) + ? E((e = 'function' == typeof t.valueOf ? t.valueOf() : t)) + ? e + '' + : e + : t) + ) + return 0 === t ? t : +t; + t = t.replace(i, ''); + var n = a.test(t); + return n || s.test(t) ? l(t.slice(2), n ? 2 : 8) : o.test(t) ? r : +t; + } + c.exports = function (r, n, t) { + var i, + o, + a, + s, + l, + u, + c = 0, + A = !1, + h = !1, + e = !0; + if ('function' != typeof r) throw new TypeError(v); + function p(t) { + var e = i, + n = o; + return (i = o = void 0), (c = t), (s = r.apply(n, e)); + } + function d(t) { + var e = t - u; + return void 0 === u || n <= e || e < 0 || (h && a <= t - c); + } + function f() { + var t, + e = w(); + if (d(e)) return g(e); + l = setTimeout(f, ((t = n - ((e = e) - u)), h ? y(t, a - (e - c)) : t)); + } + function g(t) { + return (l = void 0), e && i ? p(t) : ((i = o = void 0), s); + } + function m() { + var t = w(), + e = d(t); + if (((i = arguments), (o = this), (u = t), e)) { + if (void 0 === l) + return (c = t = u), (l = setTimeout(f, n)), A ? p(t) : s; + if (h) return (l = setTimeout(f, n)), p(u); + } + return void 0 === l && (l = setTimeout(f, n)), s; + } + return ( + (n = B(n) || 0), + E(t) && + ((A = !!t.leading), + (h = 'maxWait' in t), + (a = h ? b(B(t.maxWait) || 0, n) : a), + (e = 'trailing' in t ? !!t.trailing : e)), + (m.cancel = function () { + void 0 !== l && clearTimeout(l), (i = u = o = l = void (c = 0)); + }), + (m.flush = function () { + return void 0 === l ? s : g(w()); + }), + m + ); + }; + }.call( + t, + (function () { + return this; + })(), + ); + }, + function (t, e, n) { + Object.defineProperty(e, '__esModule', { value: !0 }); + var n = n(28), + o = (n = n) && n.__esModule ? n : { default: n }; + e.default = { + simpleCheckForValidColor: function (t) { + for ( + var e = ['r', 'g', 'b', 'a', 'h', 's', 'a', 'v'], n = 0, r = 0, i = 0; + i < e.length; + i++ + ) { + var o = e[i]; + t[o] && (n++, isNaN(t[o]) || r++); + } + if (n === r) return t; + }, + toState: function (t, e) { + var n = t.hex ? (0, o.default)(t.hex) : (0, o.default)(t), + r = n.toHsl(), + i = n.toHsv(); + return ( + 0 === r.s && ((r.h = e || 0), (i.h = e || 0)), + { + hsl: r, + hex: '#' + n.toHex(), + rgb: n.toRgb(), + hsv: i, + oldHue: t.h || e || r.h, + source: t.source, + } + ); + }, + isValidHex: function (t) { + return (0, o.default)(t).isValid(); + }, + }; + }, + function (t, e, n) { + var o, a, r, s, i, u, c, l, A, h, p, d, f; + function g(t, e) { + if (((e = e || {}), (t = t || '') instanceof g)) return t; + if (!(this instanceof g)) return new g(t, e); + var n = (function (t) { + var e = { r: 0, g: 0, b: 0 }, + n = 1, + r = !1, + i = !1; + 'string' == typeof t && + (t = (function (t) { + t = t.replace(o, '').replace(a, '').toLowerCase(); + var e, + n = !1; + if (A[t]) (t = A[t]), (n = !0); + else if ('transparent' == t) + return { r: 0, g: 0, b: 0, a: 0, format: 'name' }; + if ((e = f.rgb.exec(t))) return { r: e[1], g: e[2], b: e[3] }; + if ((e = f.rgba.exec(t))) + return { r: e[1], g: e[2], b: e[3], a: e[4] }; + if ((e = f.hsl.exec(t))) return { h: e[1], s: e[2], l: e[3] }; + if ((e = f.hsla.exec(t))) + return { h: e[1], s: e[2], l: e[3], a: e[4] }; + if ((e = f.hsv.exec(t))) return { h: e[1], s: e[2], v: e[3] }; + if ((e = f.hsva.exec(t))) + return { h: e[1], s: e[2], v: e[3], a: e[4] }; + if ((e = f.hex8.exec(t))) + return { + a: (function (t) { + return _(t) / 255; + })(e[1]), + r: _(e[2]), + g: _(e[3]), + b: _(e[4]), + format: n ? 'name' : 'hex8', + }; + if ((e = f.hex6.exec(t))) + return { + r: _(e[1]), + g: _(e[2]), + b: _(e[3]), + format: n ? 'name' : 'hex', + }; + if ((e = f.hex3.exec(t))) + return { + r: _(e[1] + '' + e[1]), + g: _(e[2] + '' + e[2]), + b: _(e[3] + '' + e[3]), + format: n ? 'name' : 'hex', + }; + return !1; + })(t)); + 'object' == typeof t && + (t.hasOwnProperty('r') && t.hasOwnProperty('g') && t.hasOwnProperty('b') + ? ((e = (function (t, e, n) { + return { + r: 255 * F(t, 255), + g: 255 * F(e, 255), + b: 255 * F(n, 255), + }; + })(t.r, t.g, t.b)), + (r = !0), + (i = '%' === String(t.r).substr(-1) ? 'prgb' : 'rgb')) + : t.hasOwnProperty('h') && + t.hasOwnProperty('s') && + t.hasOwnProperty('v') + ? ((t.s = R(t.s, 1)), + (t.v = R(t.v, 1)), + (e = (function (t, e, n) { + (t = 6 * F(t, 360)), (e = F(e, 100)), (n = F(n, 100)); + var r = s.floor(t), + t = t - r, + i = n * (1 - e), + o = n * (1 - t * e), + t = n * (1 - (1 - t) * e), + e = r % 6; + return { + r: 255 * [n, o, i, i, t, n][e], + g: 255 * [t, n, n, o, i, i][e], + b: 255 * [i, i, t, n, n, o][e], + }; + })(t.h, t.s, t.v)), + (r = !0), + (i = 'hsv')) + : t.hasOwnProperty('h') && + t.hasOwnProperty('s') && + t.hasOwnProperty('l') && + ((t.s = R(t.s)), + (t.l = R(t.l)), + (e = (function (t, e, n) { + var r, i, o; + function a(t, e, n) { + return ( + n < 0 && (n += 1), + 1 < n && --n, + n < 1 / 6 + ? t + 6 * (e - t) * n + : n < 0.5 + ? e + : n < 2 / 3 + ? t + (e - t) * (2 / 3 - n) * 6 + : t + ); + } + (t = F(t, 360)), + (e = F(e, 100)), + (n = F(n, 100)), + 0 === e + ? (r = i = o = n) + : ((r = a( + (e = + 2 * n - (n = n < 0.5 ? n * (1 + e) : n + e - n * e)), + n, + t + 1 / 3, + )), + (i = a(e, n, t)), + (o = a(e, n, t - 1 / 3))); + return { r: 255 * r, g: 255 * i, b: 255 * o }; + })(t.h, t.s, t.l)), + (r = !0), + (i = 'hsl')), + t.hasOwnProperty('a') && (n = t.a)); + return ( + (n = k(n)), + { + ok: r, + format: t.format || i, + r: u(255, c(e.r, 0)), + g: u(255, c(e.g, 0)), + b: u(255, c(e.b, 0)), + a: n, + } + ); + })(t); + (this._originalInput = t), + (this._r = n.r), + (this._g = n.g), + (this._b = n.b), + (this._a = n.a), + (this._roundA = i(100 * this._a) / 100), + (this._format = e.format || n.format), + (this._gradientType = e.gradientType), + this._r < 1 && (this._r = i(this._r)), + this._g < 1 && (this._g = i(this._g)), + this._b < 1 && (this._b = i(this._b)), + (this._ok = n.ok), + (this._tc_id = r++); + } + function m(t, e, n) { + (t = F(t, 255)), (e = F(e, 255)), (n = F(n, 255)); + var r, + i = c(t, e, n), + o = u(t, e, n), + a = (i + o) / 2; + if (i == o) r = l = 0; + else { + var s = i - o, + l = 0.5 < a ? s / (2 - i - o) : s / (i + o); + switch (i) { + case t: + r = (e - n) / s + (e < n ? 6 : 0); + break; + case e: + r = (n - t) / s + 2; + break; + case n: + r = (t - e) / s + 4; + } + r /= 6; + } + return { h: r, s: l, l: a }; + } + function v(t, e, n) { + (t = F(t, 255)), (e = F(e, 255)), (n = F(n, 255)); + var r, + i = c(t, e, n), + o = u(t, e, n), + a = i, + s = i - o, + l = 0 === i ? 0 : s / i; + if (i == o) r = 0; + else { + switch (i) { + case t: + r = (e - n) / s + (e < n ? 6 : 0); + break; + case e: + r = (n - t) / s + 2; + break; + case n: + r = (t - e) / s + 4; + } + r /= 6; + } + return { h: r, s: l, v: a }; + } + function b(t, e, n, r) { + t = [T(i(t).toString(16)), T(i(e).toString(16)), T(i(n).toString(16))]; + return r && + t[0].charAt(0) == t[0].charAt(1) && + t[1].charAt(0) == t[1].charAt(1) && + t[2].charAt(0) == t[2].charAt(1) + ? t[0].charAt(0) + t[1].charAt(0) + t[2].charAt(0) + : t.join(''); + } + function y(t, e, n, r) { + return [ + T(Math.round(255 * parseFloat(r)).toString(16)), + T(i(t).toString(16)), + T(i(e).toString(16)), + T(i(n).toString(16)), + ].join(''); + } + function w(t, e) { + e = 0 === e ? 0 : e || 10; + t = g(t).toHsl(); + return (t.s -= e / 100), (t.s = Q(t.s)), g(t); + } + function E(t, e) { + e = 0 === e ? 0 : e || 10; + t = g(t).toHsl(); + return (t.s += e / 100), (t.s = Q(t.s)), g(t); + } + function B(t) { + return g(t).desaturate(100); + } + function C(t, e) { + e = 0 === e ? 0 : e || 10; + t = g(t).toHsl(); + return (t.l += e / 100), (t.l = Q(t.l)), g(t); + } + function x(t, e) { + e = 0 === e ? 0 : e || 10; + t = g(t).toRgb(); + return ( + (t.r = c(0, u(255, t.r - i((-e / 100) * 255)))), + (t.g = c(0, u(255, t.g - i((-e / 100) * 255)))), + (t.b = c(0, u(255, t.b - i((-e / 100) * 255)))), + g(t) + ); + } + function I(t, e) { + e = 0 === e ? 0 : e || 10; + t = g(t).toHsl(); + return (t.l -= e / 100), (t.l = Q(t.l)), g(t); + } + function M(t, e) { + (t = g(t).toHsl()), (e = (i(t.h) + e) % 360); + return (t.h = e < 0 ? 360 + e : e), g(t); + } + function D(t) { + t = g(t).toHsl(); + return (t.h = (t.h + 180) % 360), g(t); + } + function S(t) { + var e = g(t).toHsl(), + n = e.h; + return [ + g(t), + g({ h: (n + 120) % 360, s: e.s, l: e.l }), + g({ h: (n + 240) % 360, s: e.s, l: e.l }), + ]; + } + function U(t) { + var e = g(t).toHsl(), + n = e.h; + return [ + g(t), + g({ h: (n + 90) % 360, s: e.s, l: e.l }), + g({ h: (n + 180) % 360, s: e.s, l: e.l }), + g({ h: (n + 270) % 360, s: e.s, l: e.l }), + ]; + } + function N(t) { + var e = g(t).toHsl(), + n = e.h; + return [ + g(t), + g({ h: (n + 72) % 360, s: e.s, l: e.l }), + g({ h: (n + 216) % 360, s: e.s, l: e.l }), + ]; + } + function P(t, e, n) { + (e = e || 6), (n = n || 30); + var r = g(t).toHsl(), + i = 360 / n, + o = [g(t)]; + for (r.h = (r.h - ((i * e) >> 1) + 720) % 360; --e; ) + (r.h = (r.h + i) % 360), o.push(g(r)); + return o; + } + function L(t, e) { + e = e || 6; + for ( + var t = g(t).toHsv(), n = t.h, r = t.s, i = t.v, o = [], a = 1 / e; + e--; + + ) + o.push(g({ h: n, s: r, v: i })), (i = (i + a) % 1); + return o; + } + function k(t) { + return (t = parseFloat(t)), (t = isNaN(t) || t < 0 || 1 < t ? 1 : t); + } + function F(t, e) { + 'string' == typeof (n = t) && + -1 != n.indexOf('.') && + 1 === parseFloat(n) && + (t = '100%'); + var n = 'string' == typeof (n = t) && -1 != n.indexOf('%'); + return ( + (t = u(e, c(0, parseFloat(t)))), + n && (t = parseInt(t * e, 10) / 100), + s.abs(t - e) < 1e-6 ? 1 : (t % e) / parseFloat(e) + ); + } + function Q(t) { + return u(1, c(0, t)); + } + function _(t) { + return parseInt(t, 16); + } + function T(t) { + return 1 == t.length ? '0' + t : '' + t; + } + function R(t, e) { + return (e = e || 100), (t = t <= 1 ? t * e + '%' : t); + } + (o = /^[\s,#]+/), + (a = /\s+$/), + (r = 0), + (s = Math), + (i = s.round), + (u = s.min), + (c = s.max), + (l = s.random), + (g.prototype = { + isDark: function () { + return this.getBrightness() < 128; + }, + isLight: function () { + return !this.isDark(); + }, + isValid: function () { + return this._ok; + }, + getOriginalInput: function () { + return this._originalInput; + }, + getFormat: function () { + return this._format; + }, + getAlpha: function () { + return this._a; + }, + getBrightness: function () { + var t = this.toRgb(); + return (299 * t.r + 587 * t.g + 114 * t.b) / 1e3; + }, + getLuminance: function () { + var t = this.toRgb(), + e = t.r / 255, + n = t.g / 255, + t = t.b / 255, + e = e <= 0.03928 ? e / 12.92 : Math.pow((0.055 + e) / 1.055, 2.4), + n = n <= 0.03928 ? n / 12.92 : Math.pow((0.055 + n) / 1.055, 2.4), + t = t <= 0.03928 ? t / 12.92 : Math.pow((0.055 + t) / 1.055, 2.4); + return 0.2126 * e + 0.7152 * n + 0.0722 * t; + }, + setAlpha: function (t) { + return (this._a = k(t)), (this._roundA = i(100 * this._a) / 100), this; + }, + toHsv: function () { + var t = v(this._r, this._g, this._b); + return { h: 360 * t.h, s: t.s, v: t.v, a: this._a }; + }, + toHsvString: function () { + var t = v(this._r, this._g, this._b), + e = i(360 * t.h), + n = i(100 * t.s), + t = i(100 * t.v); + return 1 == this._a + ? 'hsv(' + e + ', ' + n + '%, ' + t + '%)' + : 'hsva(' + e + ', ' + n + '%, ' + t + '%, ' + this._roundA + ')'; + }, + toHsl: function () { + var t = m(this._r, this._g, this._b); + return { h: 360 * t.h, s: t.s, l: t.l, a: this._a }; + }, + toHslString: function () { + var t = m(this._r, this._g, this._b), + e = i(360 * t.h), + n = i(100 * t.s), + t = i(100 * t.l); + return 1 == this._a + ? 'hsl(' + e + ', ' + n + '%, ' + t + '%)' + : 'hsla(' + e + ', ' + n + '%, ' + t + '%, ' + this._roundA + ')'; + }, + toHex: function (t) { + return b(this._r, this._g, this._b, t); + }, + toHexString: function (t) { + return '#' + this.toHex(t); + }, + toHex8: function () { + return y(this._r, this._g, this._b, this._a); + }, + toHex8String: function () { + return '#' + this.toHex8(); + }, + toRgb: function () { + return { r: i(this._r), g: i(this._g), b: i(this._b), a: this._a }; + }, + toRgbString: function () { + return 1 == this._a + ? 'rgb(' + i(this._r) + ', ' + i(this._g) + ', ' + i(this._b) + ')' + : 'rgba(' + + i(this._r) + + ', ' + + i(this._g) + + ', ' + + i(this._b) + + ', ' + + this._roundA + + ')'; + }, + toPercentageRgb: function () { + return { + r: i(100 * F(this._r, 255)) + '%', + g: i(100 * F(this._g, 255)) + '%', + b: i(100 * F(this._b, 255)) + '%', + a: this._a, + }; + }, + toPercentageRgbString: function () { + return 1 == this._a + ? 'rgb(' + + i(100 * F(this._r, 255)) + + '%, ' + + i(100 * F(this._g, 255)) + + '%, ' + + i(100 * F(this._b, 255)) + + '%)' + : 'rgba(' + + i(100 * F(this._r, 255)) + + '%, ' + + i(100 * F(this._g, 255)) + + '%, ' + + i(100 * F(this._b, 255)) + + '%, ' + + this._roundA + + ')'; + }, + toName: function () { + return 0 === this._a + ? 'transparent' + : (!(this._a < 1) && h[b(this._r, this._g, this._b, !0)]) || !1; + }, + toFilter: function (t) { + var e = '#' + y(this._r, this._g, this._b, this._a), + n = e; + return ( + 'progid:DXImageTransform.Microsoft.gradient(' + + (this._gradientType ? 'GradientType = 1, ' : '') + + 'startColorstr=' + + e + + ',endColorstr=' + + (n = t ? g(t).toHex8String() : n) + + ')' + ); + }, + toString: function (t) { + var e = !!t, + n = ((t = t || this._format), !1), + r = this._a < 1 && 0 <= this._a; + return e || + !r || + ('hex' !== t && 'hex6' !== t && 'hex3' !== t && 'name' !== t) + ? ('rgb' === t && (n = this.toRgbString()), + 'prgb' === t && (n = this.toPercentageRgbString()), + ('hex' !== t && 'hex6' !== t) || (n = this.toHexString()), + 'hex3' === t && (n = this.toHexString(!0)), + 'hex8' === t && (n = this.toHex8String()), + 'name' === t && (n = this.toName()), + 'hsl' === t && (n = this.toHslString()), + (n = 'hsv' === t ? this.toHsvString() : n) || this.toHexString()) + : 'name' === t && 0 === this._a + ? this.toName() + : this.toRgbString(); + }, + _applyModification: function (t, e) { + t = t.apply(null, [this].concat([].slice.call(e))); + return ( + (this._r = t._r), + (this._g = t._g), + (this._b = t._b), + this.setAlpha(t._a), + this + ); + }, + lighten: function () { + return this._applyModification(C, arguments); + }, + brighten: function () { + return this._applyModification(x, arguments); + }, + darken: function () { + return this._applyModification(I, arguments); + }, + desaturate: function () { + return this._applyModification(w, arguments); + }, + saturate: function () { + return this._applyModification(E, arguments); + }, + greyscale: function () { + return this._applyModification(B, arguments); + }, + spin: function () { + return this._applyModification(M, arguments); + }, + _applyCombination: function (t, e) { + return t.apply(null, [this].concat([].slice.call(e))); + }, + analogous: function () { + return this._applyCombination(P, arguments); + }, + complement: function () { + return this._applyCombination(D, arguments); + }, + monochromatic: function () { + return this._applyCombination(L, arguments); + }, + splitcomplement: function () { + return this._applyCombination(N, arguments); + }, + triad: function () { + return this._applyCombination(S, arguments); + }, + tetrad: function () { + return this._applyCombination(U, arguments); + }, + }), + (g.fromRatio = function (t, e) { + if ('object' == typeof t) { + var n, + r = {}; + for (n in t) t.hasOwnProperty(n) && (r[n] = 'a' === n ? t[n] : R(t[n])); + t = r; + } + return g(t, e); + }), + (g.equals = function (t, e) { + return !(!t || !e) && g(t).toRgbString() == g(e).toRgbString(); + }), + (g.random = function () { + return g.fromRatio({ r: l(), g: l(), b: l() }); + }), + (g.mix = function (t, e, n) { + n = 0 === n ? 0 : n || 50; + var t = g(t).toRgb(), + e = g(e).toRgb(), + n = n / 100, + r = 2 * n - 1, + i = e.a - t.a, + r = r * i == -1 ? r : (r + i) / (1 + r * i), + i = 1 - (r = (r + 1) / 2); + return g({ + r: e.r * r + t.r * i, + g: e.g * r + t.g * i, + b: e.b * r + t.b * i, + a: e.a * n + t.a * (1 - n), + }); + }), + (g.readability = function (t, e) { + (t = g(t)), (e = g(e)); + return ( + (Math.max(t.getLuminance(), e.getLuminance()) + 0.05) / + (Math.min(t.getLuminance(), e.getLuminance()) + 0.05) + ); + }), + (g.isReadable = function (t, e, n) { + var r = g.readability(t, e), + i = !1, + t = (function (t) { + var e; + (e = ( + (t = t || { level: 'AA', size: 'small' }).level || 'AA' + ).toUpperCase()), + (t = (t.size || 'small').toLowerCase()), + 'AA' !== e && 'AAA' !== e && (e = 'AA'); + 'small' !== t && 'large' !== t && (t = 'small'); + return { level: e, size: t }; + })(n); + switch (t.level + t.size) { + case 'AAsmall': + case 'AAAlarge': + i = 4.5 <= r; + break; + case 'AAlarge': + i = 3 <= r; + break; + case 'AAAsmall': + i = 7 <= r; + } + return i; + }), + (g.mostReadable = function (t, e, n) { + for ( + var r, + i = null, + o = 0, + a = (n = n || {}).includeFallbackColors, + s = n.level, + l = n.size, + u = 0; + u < e.length; + u++ + ) + o < (r = g.readability(t, e[u])) && ((o = r), (i = g(e[u]))); + return g.isReadable(t, i, { level: s, size: l }) || !a + ? i + : ((n.includeFallbackColors = !1), + g.mostReadable(t, ['#fff', '#000'], n)); + }), + (A = g.names = + { + aliceblue: 'f0f8ff', + antiquewhite: 'faebd7', + aqua: '0ff', + aquamarine: '7fffd4', + azure: 'f0ffff', + beige: 'f5f5dc', + bisque: 'ffe4c4', + black: '000', + blanchedalmond: 'ffebcd', + blue: '00f', + blueviolet: '8a2be2', + brown: 'a52a2a', + burlywood: 'deb887', + burntsienna: 'ea7e5d', + cadetblue: '5f9ea0', + chartreuse: '7fff00', + chocolate: 'd2691e', + coral: 'ff7f50', + cornflowerblue: '6495ed', + cornsilk: 'fff8dc', + crimson: 'dc143c', + cyan: '0ff', + 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: 'f0f', + gainsboro: 'dcdcdc', + ghostwhite: 'f8f8ff', + gold: 'ffd700', + goldenrod: 'daa520', + gray: '808080', + green: '008000', + greenyellow: 'adff2f', + grey: '808080', + honeydew: 'f0fff0', + hotpink: 'ff69b4', + indianred: 'cd5c5c', + indigo: '4b0082', + ivory: 'fffff0', + khaki: 'f0e68c', + lavender: 'e6e6fa', + lavenderblush: 'fff0f5', + 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: '789', + lightslategrey: '789', + lightsteelblue: 'b0c4de', + lightyellow: 'ffffe0', + lime: '0f0', + limegreen: '32cd32', + linen: 'faf0e6', + magenta: 'f0f', + 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: 'f00', + 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: 'fff', + whitesmoke: 'f5f5f5', + yellow: 'ff0', + yellowgreen: '9acd32', + }), + (h = g.hexNames = + (function (t) { + var e, + n = {}; + for (e in t) t.hasOwnProperty(e) && (n[t[e]] = e); + return n; + })(A)), + (d = + '[\\s|\\(]+(' + + (p = '(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)') + + ')[,|\\s]+(' + + p + + ')[,|\\s]+(' + + p + + ')\\s*\\)?'), + (p = + '[\\s|\\(]+(' + + p + + ')[,|\\s]+(' + + p + + ')[,|\\s]+(' + + p + + ')[,|\\s]+(' + + p + + ')\\s*\\)?'), + (f = { + rgb: new RegExp('rgb' + d), + rgba: new RegExp('rgba' + p), + hsl: new RegExp('hsl' + d), + hsla: new RegExp('hsla' + p), + hsv: new RegExp('hsv' + d), + hsva: new RegExp('hsva' + p), + 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})$/, + hex8: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, + }), + void 0 !== t && t.exports + ? (t.exports = g) + : void 0 !== + (d = function () { + return g; + }.call(e, n, e, t)) && (t.exports = d); + }, + function (t, e, n) { + Object.defineProperty(e, '__esModule', { value: !0 }), + (e.ChromePointer = void 0); + var r = function (t, e, n) { + return e && i(t.prototype, e), n && i(t, n), t; + }; + function i(t, e) { + for (var n = 0; n < e.length; n++) { + var r = e[n]; + (r.enumerable = r.enumerable || !1), + (r.configurable = !0), + 'value' in r && (r.writable = !0), + Object.defineProperty(t, r.key, r); + } + } + var a = l(n(3)), + o = l(n(4)), + s = l(n(17)); + function l(t) { + return t && t.__esModule ? t : { default: t }; + } + function u(t, e) { + if (t) + return !e || ('object' != typeof e && 'function' != typeof e) ? t : e; + throw new ReferenceError( + "this hasn't been initialised - super() hasn't been called", + ); + } + n = e.ChromePointer = (function (t) { + var e = o; + if ('function' != typeof t && null !== t) + throw new TypeError( + 'Super expression must either be null or a function, not ' + typeof t, + ); + function o() { + for (var t = arguments.length, e = Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + var r = this, + i = o; + if (r instanceof i) + return ( + ((r = i = + u( + this, + (r = o.__proto__ || Object.getPrototypeOf(o)).call.apply( + r, + [this].concat(e), + ), + )).shouldComponentUpdate = s.default.bind( + i, + i, + arguments[0], + arguments[1], + )), + u(i, r) + ); + throw new TypeError('Cannot call a class as a function'); + } + return ( + (e.prototype = Object.create(t && t.prototype, { + constructor: { + value: e, + enumerable: !1, + writable: !0, + configurable: !0, + }, + })), + t && + (Object.setPrototypeOf + ? Object.setPrototypeOf(e, t) + : (e.__proto__ = t)), + r(o, [ + { + key: 'classes', + value: function () { + return { + default: { + picker: { + width: '10px', + height: '16px', + borderRadius: '5px', + transform: 'translate(-5px, 0px)', + backgroundColor: 'rgb(248, 248, 248)', + boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)', + }, + }, + }; + }, + }, + { + key: 'render', + value: function () { + return a.default.createElement('div', { + style: this.styles().picker, + }); + }, + }, + ]), + o + ); + })(o.default.Component); + e.default = n; + }, + function (t, e, n) { + Object.defineProperty(e, '__esModule', { value: !0 }), + (e.ChromePointerCircle = void 0); + var r = function (t, e, n) { + return e && i(t.prototype, e), n && i(t, n), t; + }; + function i(t, e) { + for (var n = 0; n < e.length; n++) { + var r = e[n]; + (r.enumerable = r.enumerable || !1), + (r.configurable = !0), + 'value' in r && (r.writable = !0), + Object.defineProperty(t, r.key, r); + } + } + var a = l(n(3)), + o = l(n(4)), + s = l(n(17)); + function l(t) { + return t && t.__esModule ? t : { default: t }; + } + function u(t, e) { + if (t) + return !e || ('object' != typeof e && 'function' != typeof e) ? t : e; + throw new ReferenceError( + "this hasn't been initialised - super() hasn't been called", + ); + } + n = e.ChromePointerCircle = (function (t) { + var e = o; + if ('function' != typeof t && null !== t) + throw new TypeError( + 'Super expression must either be null or a function, not ' + typeof t, + ); + function o() { + for (var t = arguments.length, e = Array(t), n = 0; n < t; n++) + e[n] = arguments[n]; + var r = this, + i = o; + if (r instanceof i) + return ( + ((r = i = + u( + this, + (r = o.__proto__ || Object.getPrototypeOf(o)).call.apply( + r, + [this].concat(e), + ), + )).shouldComponentUpdate = s.default.bind( + i, + i, + arguments[0], + arguments[1], + )), + u(i, r) + ); + throw new TypeError('Cannot call a class as a function'); + } + return ( + (e.prototype = Object.create(t && t.prototype, { + constructor: { + value: e, + enumerable: !1, + writable: !0, + configurable: !0, + }, + })), + t && + (Object.setPrototypeOf + ? Object.setPrototypeOf(e, t) + : (e.__proto__ = t)), + r(o, [ + { + key: 'classes', + value: function () { + return { + default: { + picker: { + width: '12px', + height: '12px', + borderRadius: '6px', + boxShadow: 'inset 0 0 0 1px #fff', + transform: 'translate(-6px, -6px)', + }, + }, + }; + }, + }, + { + key: 'render', + value: function () { + return a.default.createElement('div', { + style: this.styles().picker, + }); + }, + }, + ]), + o + ); + })(o.default.Component); + e.default = n; + }, + function (t, e, n) { + Object.defineProperty(e, '__esModule', { value: !0 }), + (e.CompactColor = void 0); + var r = function (t, e, n) { + return e && i(t.prototype, e), n && i(t, n), t; + }; + function i(t, e) { + for (var n = 0; n < e.length; n++) { + var r = e[n]; + (r.enumerable = r.enumerable || !1), + (r.configurable = !0), + 'value' in r && (r.writable = !0), + Object.defineProperty(t, r.key, r); + } + } + var o = l(n(3)), + a = l(n(4)), + s = l(n(17)); + function l(t) { + return t && t.__esModule ? t : { default: t }; + } + function u(t, e) { + if (t) + return !e || ('object' != typeof e && 'function' != typeof e) ? t : e; + throw new ReferenceError( + "this hasn't been initialised - super() hasn't been called", + ); + } + n = e.CompactColor = (function (t) { + var e = a; + if ('function' != typeof t && null !== t) + throw new TypeError( + 'Super expression must either be null or a function, not ' + typeof t, + ); + function a() { + for (var t, e = arguments.length, n = Array(e), r = 0; r < e; r++) + n[r] = arguments[r]; + var i = this, + o = a; + if (i instanceof o) + return ( + ((o = t = + u( + this, + (i = a.__proto__ || Object.getPrototypeOf(a)).call.apply( + i, + [this].concat(n), + ), + )).shouldComponentUpdate = s.default.bind( + t, + t, + arguments[0], + arguments[1], + )), + (t.handleClick = function () { + t.props.onClick({ hex: t.props.color }); + }), + u(t, o) + ); + throw new TypeError('Cannot call a class as a function'); + } + return ( + (e.prototype = Object.create(t && t.prototype, { + constructor: { + value: e, + enumerable: !1, + writable: !0, + configurable: !0, + }, + })), + t && + (Object.setPrototypeOf + ? Object.setPrototypeOf(e, t) + : (e.__proto__ = t)), + r(a, [ + { + key: 'classes', + value: function () { + return { + default: { + color: { + background: this.props.color, + height: '15px', + cursor: 'pointer', + flexGrow: '1', + }, + }, + }; + }, + }, + { + key: 'render', + value: function () { + return o.default.createElement('div', { + style: this.styles().color, + ref: 'color', + onClick: this.handleClick, + }); + }, + }, + ]), + a + ); + })(a.default.Component); + e.default = n; + }, + ], + Sr = (r = {}).webpackHotUpdate, + kr = !(r.webpackHotUpdate = function (t, e) { + var n = t, + r = e; + if (Vr[n] && jr[n]) { + for (var i in ((jr[n] = !1), r)) + Object.prototype.hasOwnProperty.call(r, i) && (Yr[i] = r[i]); + 0 == --Gr && 0 === zr && Kr(); + } + Sr && Sr(t, e); + }); + try { + Object.defineProperty({}, 'x', { get: function () {} }), (kr = !0); + } catch (t) {} + var Fr = !0, + Qr = 'cac23860c44b0ba80f83', + _r = {}, + Tr = []; + function Rr(e) { + var n = Xr[e]; + if (!n) return $r; + function r(t) { + return ( + n.hot.active + ? Xr[t] + ? (Xr[t].parents.indexOf(e) < 0 && Xr[t].parents.push(e), + n.children.indexOf(t) < 0 && n.children.push(t)) + : (Tr = [e]) + : (console.warn( + '[HMR] unexpected require(' + t + ') from disposed module ' + e, + ), + (Tr = [])), + $r(t) + ); + } + for (var t in $r) + Object.prototype.hasOwnProperty.call($r, t) && + (kr + ? Object.defineProperty( + r, + t, + (function (e) { + return { + configurable: !0, + enumerable: !0, + get: function () { + return $r[e]; + }, + set: function (t) { + $r[e] = t; + }, + }; + })(t), + ) + : (r[t] = $r[t])); + function i(t, e) { + 'ready' === Nr && Pr('prepare'), + zr++, + $r.e(t, function () { + try { + e.call(null, r); + } finally { + zr--, 'prepare' === Nr && (Hr[t] || Jr(t), 0 === zr && 0 === Gr && Kr()); + } + }); + } + return ( + kr ? Object.defineProperty(r, 'e', { enumerable: !0, value: i }) : (r.e = i), r + ); + } + var Ur = [], + Nr = 'idle'; + function Pr(t) { + Nr = t; + for (var e = 0; e < Ur.length; e++) Ur[e].call(null, t); + } + var Lr, + Yr, + Or, + Gr = 0, + zr = 0, + Hr = {}, + jr = {}, + Vr = {}; + function qr(t) { + return +t + '' === t ? +t : t; + } + function Wr(t, r) { + if ('idle' !== Nr) throw new Error('check() is only allowed in idle status'); + (r = + 'function' == typeof t + ? ((Fr = !1), t) + : ((Fr = t), + r || + function (t) { + if (t) throw t; + })), + Pr('check'); + var e = function (t, e) { + if (t) return r(t); + if (!e) return Pr('idle'), void r(null, null); + (jr = {}), (Vr = {}), (Hr = {}); + for (var n = 0; n < e.c.length; n++) Vr[e.c[n]] = !0; + (Or = e.h), Pr('prepare'), (Lr = r), (Yr = {}); + Jr(0), 'prepare' === Nr && 0 === zr && 0 === Gr && Kr(); + }; + if ('undefined' == typeof XMLHttpRequest) e(new Error('No browser support')); + else { + try { + var n = new XMLHttpRequest(), + i = $r.p + '' + Qr + '.hot-update.json'; + n.open('GET', i, !0), (n.timeout = 1e4), n.send(null); + } catch (t) { + return void e(t); + } + n.onreadystatechange = function () { + if (4 === n.readyState) + if (0 === n.status) + e(new Error('Manifest request to ' + i + ' timed out.')); + else if (404 === n.status) e(); + else if (200 !== n.status && 304 !== n.status) + e(new Error('Manifest request to ' + i + ' failed.')); + else { + try { + var t = JSON.parse(n.responseText); + } catch (t) { + return void e(t); + } + e(null, t); + } + }; + } + } + function Jr(t) { + var e, n, r; + Vr[t] + ? ((jr[t] = !0), + Gr++, + (e = t), + (n = document.getElementsByTagName('head')[0]), + ((r = document.createElement('script')).type = 'text/javascript'), + (r.charset = 'utf-8'), + (r.src = $r.p + '' + e + '.' + Qr + '.hot-update.js'), + n.appendChild(r)) + : (Hr[t] = !0); + } + function Kr() { + Pr('ready'); + var t = Lr; + if (((Lr = null), t)) + if (Fr) Zr(Fr, t); + else { + var e, + n = []; + for (e in Yr) Object.prototype.hasOwnProperty.call(Yr, e) && n.push(qr(e)); + t(null, n); + } + } + function Zr(t, e) { + if ('ready' !== Nr) throw new Error('apply() is only allowed in ready status'); + function l(t, e) { + for (var n = 0; n < e.length; n++) { + var r = e[n]; + t.indexOf(r) < 0 && t.push(r); + } + } + 'function' == typeof t + ? ((e = t), (t = {})) + : (e = + t && 'object' == typeof t + ? e || + function (t) { + if (t) throw t; + } + : ((t = {}), + e || + function (t) { + if (t) throw t; + })); + var n, + r = {}, + i = [], + o = {}; + for (n in Yr) + if (Object.prototype.hasOwnProperty.call(Yr, n)) { + var a = (function (t) { + for (var e = [t], n = {}, r = e.slice(); 0 < r.length; ) { + var i = r.pop(), + t = Xr[i]; + if (t && !t.hot._selfAccepted) { + if (t.hot._selfDeclined) + return new Error('Aborted because of self decline: ' + i); + if (0 === i) return; + for (var o = 0; o < t.parents.length; o++) { + var a = t.parents[o], + s = Xr[a]; + if (s.hot._declinedDependencies[i]) + return new Error( + 'Aborted because of declined dependency: ' + i + ' in ' + a, + ); + 0 <= e.indexOf(a) || + (s.hot._acceptedDependencies[i] + ? (n[a] || (n[a] = []), l(n[a], [i])) + : (delete n[a], e.push(a), r.push(a))); + } + } + } + return [e, n]; + })((c = qr(n))); + if (!a) { + if (t.ignoreUnaccepted) continue; + return ( + Pr('abort'), e(new Error('Aborted because ' + c + ' is not accepted')) + ); + } + if (a instanceof Error) return Pr('abort'), e(a); + for (c in ((o[c] = Yr[c]), l(i, a[0]), a[1])) + Object.prototype.hasOwnProperty.call(a[1], c) && + (r[c] || (r[c] = []), l(r[c], a[1][c])); + } + for (var s = [], u = 0; u < i.length; u++) { + var c = i[u]; + Xr[c] && + Xr[c].hot._selfAccepted && + s.push({ module: c, errorHandler: Xr[c].hot._selfAccepted }); + } + Pr('dispose'); + for (var A = i.slice(); 0 < A.length; ) { + var c = A.pop(); + if ((g = Xr[c])) { + for (var h = {}, p = g.hot._disposeHandlers, d = 0; d < p.length; d++) + (E = p[d])(h); + (_r[c] = h), (g.hot.active = !1), delete Xr[c]; + for (d = 0; d < g.children.length; d++) { + var f = Xr[g.children[d]]; + f && 0 <= (v = f.parents.indexOf(c)) && f.parents.splice(v, 1); + } + } + } + for (c in r) + if (Object.prototype.hasOwnProperty.call(r, c)) + for (var g = Xr[c], m = r[c], d = 0; d < m.length; d++) { + var v, + b = m[d]; + 0 <= (v = g.children.indexOf(b)) && g.children.splice(v, 1); + } + for (c in (Pr('apply'), (Qr = Or), o)) + Object.prototype.hasOwnProperty.call(o, c) && (Dr[c] = o[c]); + var y = null; + for (c in r) + if (Object.prototype.hasOwnProperty.call(r, c)) { + for (var g = Xr[c], m = r[c], w = [], u = 0; u < m.length; u++) { + var b = m[u], + E = g.hot._acceptedDependencies[b]; + 0 <= w.indexOf(E) || w.push(E); + } + for (u = 0; u < w.length; u++) { + E = w[u]; + try { + E(r); + } catch (t) { + y = y || t; + } + } + } + for (u = 0; u < s.length; u++) { + var B = s[u], + c = B.module; + Tr = [c]; + try { + $r(c); + } catch (t) { + if ('function' == typeof B.errorHandler) + try { + B.errorHandler(t); + } catch (t) { + y = y || t; + } + else y = y || t; + } + } + if (y) return Pr('fail'), e(y); + Pr('idle'), e(null, i); + } + var Xr = {}; + function $r(t) { + if (Xr[t]) return Xr[t].exports; + var r, + e = (Xr[t] = { + exports: {}, + id: t, + loaded: !1, + hot: (r = { + _acceptedDependencies: {}, + _declinedDependencies: {}, + _selfAccepted: !1, + _selfDeclined: !1, + _disposeHandlers: [], + active: !0, + accept: function (t, e) { + if (void 0 === t) r._selfAccepted = !0; + else if ('function' == typeof t) r._selfAccepted = t; + else if ('object' == typeof t) + for (var n = 0; n < t.length; n++) r._acceptedDependencies[t[n]] = e; + else r._acceptedDependencies[t] = e; + }, + decline: function (t) { + if (void 0 === t) r._selfDeclined = !0; + else if ('number' == typeof t) r._declinedDependencies[t] = !0; + else + for (var e = 0; e < t.length; e++) r._declinedDependencies[t[e]] = !0; + }, + dispose: function (t) { + r._disposeHandlers.push(t); + }, + addDisposeHandler: function (t) { + r._disposeHandlers.push(t); + }, + removeDisposeHandler: function (t) { + t = r._disposeHandlers.indexOf(t); + 0 <= t && r._disposeHandlers.splice(t, 1); + }, + check: Wr, + apply: Zr, + status: function (t) { + if (!t) return Nr; + Ur.push(t); + }, + addStatusHandler: function (t) { + Ur.push(t); + }, + removeStatusHandler: function (t) { + t = Ur.indexOf(t); + 0 <= t && Ur.splice(t, 1); + }, + data: _r[t], + }), + parents: Tr, + children: [], + }); + return Dr[t].call(e.exports, e, e.exports, Rr(t)), (e.loaded = !0), e.exports; + } + function ti() { + var r, + n, + e, + o = {}, + i = 'undefined' != typeof document ? document : void 0, + a = !1, + s = 1; + function l(t) { + delete o[t]; + } + function u(t) { + if (a) setTimeout(u, 0, t); + else { + var e = o[t]; + if (e) { + a = !0; + try { + var n = e, + r = n.callback, + i = n.args; + switch (i.length) { + case 0: + r(); + break; + case 1: + r(i[0]); + break; + case 2: + r(i[0], i[1]); + break; + case 3: + r(i[0], i[1], i[2]); + break; + default: + r.apply(void 0, i); + } + } finally { + l(t), (a = !1); + } + } + } + } + function t() { + function t(t) { + t.source === e && + 'string' == typeof t.data && + 0 === t.data.indexOf(n) && + u(+t.data.slice(n.length)); + } + var e = window, + n = 'setImmediate$' + Math.random() + '$'; + window.addEventListener + ? window.addEventListener('message', t, !1) + : window.attachEvent('onmessage', t), + (r = function (t) { + window.postMessage(n + t, '*'); + }); + } + return ( + void 0 !== jp && '[object process]' === {}.toString.call(jp) + ? (r = function (t) { + jp.nextTick(function () { + u(t); + }); + }) + : !(function () { + var t, + e, + n = window; + if (n && n.postMessage && !n.importScripts) + return ( + (t = !0), + (e = n.onmessage), + (n.onmessage = function () { + t = !1; + }), + n.postMessage('', '*'), + (n.onmessage = e), + t + ); + })() + ? (r = + 'undefined' != typeof MessageChannel + ? (((e = new MessageChannel()).port1.onmessage = function (t) { + u(t.data); + }), + function (t) { + e.port2.postMessage(t); + }) + : i && 'onreadystatechange' in i.createElement('script') + ? ((n = i.documentElement), + function (t) { + var e = i.createElement('script'); + (e.onreadystatechange = function () { + u(t), + (e.onreadystatechange = null), + n.removeChild(e), + (e = null); + }), + n.appendChild(e); + }) + : function (t) { + setTimeout(u, 0, t); + }) + : t(), + { + setImmediate: function (t) { + for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; + return ( + 'function' != typeof t && (t = new Function('' + t)), + (o[s] = { callback: t, args: e }), + r(s), + s++ + ); + }, + clearImmediate: l, + } + ); + } + function ei(t) { + xr.setImmediate(t); + } + ($r.m = Dr), + ($r.c = Xr), + ($r.p = 'build/'), + ($r.h = function () { + return Qr; + }), + Rr(0)(0), + ((F = F || {}).Promise = J), + (r = F = F || {}), + ((J = r.Core || (r.Core = {})).Rx = t), + (J.Promise = r.Promise), + ((J.Formats || (J.Formats = {})).CIF = e), + (((t = F = F || {}).Core || (t.Core = {})).VERSION = { + number: '3.2.3', + date: 'Feb 1 2019', + }), + (r = F = F || {}), + (r = (Cr = r.Core || (r.Core = {})).Scheduler || (Cr.Scheduler = {})), + (xr = + void 0 !== qp + ? 'undefined' != typeof window && void 0 !== window.setImmediate + ? { + setImmediate: function (t) { + for (var e = [], n = 1; n < arguments.length; n++) + e[n - 1] = arguments[n]; + return window.setImmediate.apply(window, [t].concat(e)); + }, + clearImmediate: function (t) { + return window.clearImmediate(t); + }, + } + : { setImmediate: qp, clearImmediate: r.clearImmediate } + : ti()), + (r.immediate = xr.setImmediate), + (r.clearImmediate = xr.clearImmediate), + (r.immediatePromise = function () { + return new Cr.Promise(ei); + }); + var ni, + ri, + ii, + oi, + ai, + si, + li, + ui, + ci, + Ai, + hi, + pi, + di, + fi, + gi, + nt, + mi, + vi, + bi, + yi, + wi, + Ei, + d, + Bi, + Ci, + xi, + Ii, + Mi, + Di, + Si, + ki, + Fi, + Qi, + _i, + Ti, + Ri, + Ui, + Ni, + Pi, + Li, + Yi, + Oi, + Gi, + zi, + Hi, + ji, + Vi, + qi, + Wi, + Ji, + Ki, + Zi, + Xi, + $i, + to, + eo, + no, + ro, + io, + oo, + ao, + so, + lo, + uo, + co, + Ao, + ho, + po, + fo, + go, + mo, + It, + vo, + bo, + yo, + wo, + Eo, + Bo, + Co, + S, + i, + xo, + o, + Io, + Mo, + Do, + So, + ko, + Fo, + Qo, + _o, + To, + Ro, + Uo, + No, + Po, + Lo, + Yo, + Oo, + Go, + zo, + Ho, + jo, + Vo, + qo, + Wo, + Jo, + Ko, + Zo, + Xo, + $o, + ta, + ea, + na, + ra, + ia, + oa, + aa, + sa, + la, + ua, + ca, + Aa, + ha, + pa, + da, + fa, + D = + (this && this.__awaiter) || + function (o, a, s, l) { + return new (s = s || Promise)(function (t, e) { + function n(t) { + try { + i(l.next(t)); + } catch (t) { + e(t); + } + } + function r(t) { + try { + i(l.throw(t)); + } catch (t) { + e(t); + } + } + function i(e) { + e.done + ? t(e.value) + : new s(function (t) { + t(e.value); + }).then(n, r); + } + i((l = l.apply(o, a || [])).next()); + }); + }, + P = + (this && this.__generator) || + function (r, i) { + var o, + a, + s, + l = { + label: 0, + sent: function () { + if (1 & s[0]) throw s[1]; + return s[1]; + }, + trys: [], + ops: [], + }, + t = { next: e(0), throw: e(1), return: e(2) }; + return ( + 'function' == typeof Symbol && + (t[Symbol.iterator] = function () { + return this; + }), + t + ); + function e(n) { + return function (t) { + var e = [n, t]; + if (o) throw new TypeError('Generator is already executing.'); + for (; l; ) + try { + if ( + ((o = 1), + a && + (s = + 2 & e[0] + ? a.return + : e[0] + ? a.throw || ((s = a.return) && s.call(a), 0) + : a.next) && + !(s = s.call(a, e[1])).done) + ) + return s; + switch (((a = 0), (e = s ? [2 & e[0], s.value] : e)[0])) { + case 0: + case 1: + s = e; + break; + case 4: + return l.label++, { value: e[1], done: !1 }; + case 5: + l.label++, (a = e[1]), (e = [0]); + continue; + case 7: + (e = l.ops.pop()), l.trys.pop(); + continue; + default: + if ( + !(s = 0 < (s = l.trys).length && s[s.length - 1]) && + (6 === e[0] || 2 === e[0]) + ) { + l = 0; + continue; + } + if (3 === e[0] && (!s || (e[1] > s[0] && e[1] < s[3]))) { + l.label = e[1]; + break; + } + if (6 === e[0] && l.label < s[1]) { + (l.label = s[1]), (s = e); + break; + } + if (s && l.label < s[2]) { + (l.label = s[2]), l.ops.push(e); + break; + } + s[2] && l.ops.pop(), l.trys.pop(); + continue; + } + e = i.call(r, l); + } catch (t) { + (e = [6, t]), (a = 0); + } finally { + o = s = 0; + } + if (5 & e[0]) throw e[1]; + return { value: e[0] ? e[1] : void 0, done: !0 }; + }; + } + }; + function ga(t) { + return new ri(t); + } + function ma(t) { + this.computation = t; + } + function va() { + var e = this; + (this._abortRequested = !1), + (this._abortRequester = function () { + e._abortRequested = !0; + }), + (this.progressTick = new ni.Rx.Subject()), + (this._progress = { + message: 'Working...', + current: 0, + max: 0, + isIndeterminate: !0, + requestAbort: void 0, + }), + (this.progressStream = new ni.Rx.BehaviorSubject(this._progress)), + (this.startEndCounter = 0), + this.progressTick.throttle(1e3 / 15).subscribe(function (t) { + e.progressStream.onNext({ + message: t.message, + isIndeterminate: t.isIndeterminate, + current: t.current, + max: t.max, + requestAbort: t.requestAbort, + }); + }); + } + function ba() { + var t = Object.create(null); + return (t.__ = void 0), delete t.__, t; + } + function ya() { + var t = Object.create(ai); + return (t.data = ba()), (t.size = 0), t; + } + function wa() { + var t = Object.create(si); + return (t.data = ba()), (t.size = 0), t; + } + function Ea(t) { + this.size = t; + } + function Ba(t, e) { + (this.idx = t), (this.size = e); + } + function Ca(t, e) { + (this.mask = t), (this.size = e); + } + function xa(t) { + this.size = t; + } + function Ia(t, e, n) { + (this.__rowIndexer = { index: 0 }), + (this.count = t), + (this.indices = new Int32Array(t)), + (this.columns = []); + for (var r = 0; r < t; r++) this.indices[r] = r; + for (var i = 0, o = e; i < o.length; i++) { + var a = o[i], + s = n[a.name]; + hi.ChunkedArray.is(s) && (s = hi.ChunkedArray.compact(s)), + Object.defineProperty(this, a.name, { + enumerable: !0, + configurable: !1, + writable: !1, + value: s, + }), + (this.columns[this.columns.length] = a); + } + this.__row = (function (t, e) { + for (var n = Object.create(null), r = 0, i = t.columns; r < i.length; r++) { + var o = i[r]; + !(function (t, e) { + Object.defineProperty(n, o.name, { + enumerable: !0, + configurable: !1, + get: function () { + return e[t.index]; + }, + }); + })(e, t[o.name]); + } + return n; + })(this, this.__rowIndexer); + } + function Ma(t) { + (this.columns = []), (this.count = t); + } + function Da(t, e, n) { + var e = (e = (e |= 0) <= 0 ? 1 : e) * n, + r = t(e); + return { + elementSize: n, + chunkSize: e, + creator: t, + current: r, + parts: [r], + currentIndex: 0, + elementCount: 0, + }; + } + function Sa(t, e, n) { + return { array: t((e |= 0) * n), currentIndex: 0, elementCount: 0 }; + } + function ka() { + return { _set: gi.FastSet.create(), array: [] }; + } + function Fa(t) { + return new RegExp( + t.extensions + .map(function (t) { + return '(\\' + t + ')'; + }) + .join('|') + '(\\.gz){0,1}$', + 'i', + ); + } + (e = F = F || {}), + ((ni = e.Core || (e.Core = {})).computation = ga), + (ma.prototype.run = function (t) { + return this.runWithContext(t).result; + }), + (ma.prototype.runWithContext = function (t) { + var e = this, + i = t || new ii(); + return { + progress: i.progressStream, + result: new ni.Promise(function (n, r) { + return D(e, void 0, void 0, function () { + var e; + return P(this, function (t) { + switch (t.label) { + case 0: + return ( + t.trys.push([0, 2, 3, 4]), i.started(), [4, this.computation(i)] + ); + case 1: + return (e = t.sent()), n(e), [3, 4]; + case 2: + return ( + (e = t.sent()), + ma.PRINT_CONSOLE_ERROR && console.error(e), + r(e), + [3, 4] + ); + case 3: + return i.finished(), [7]; + case 4: + return [2]; + } + }); + }); + }), + }; + }), + (ri = ma), + (ni.Computation = ri), + ((e = ri = ni.Computation || (ni.Computation = {})).PRINT_CONSOLE_ERROR = !1), + (e.resolve = function (t) { + return ga(function () { + return ni.Promise.resolve(t); + }); + }), + (e.reject = function (t) { + return ga(function () { + return ni.Promise.reject(t); + }); + }), + (e.createContext = function () { + return new ii(); + }), + (e.Aborted = 'Aborted'), + (e.UpdateProgressDelta = 100), + Object.defineProperty(va.prototype, 'isAbortRequested', { + get: function () { + return this._abortRequested; + }, + enumerable: !0, + configurable: !0, + }), + (va.prototype.checkAborted = function () { + if (this._abortRequested) throw ri.Aborted; + }), + (va.prototype.requestAbort = function () { + try { + this._abortRequester && this._abortRequester.call(null); + } catch (t) {} + }), + Object.defineProperty(va.prototype, 'progress', { + get: function () { + return this.progressTick; + }, + enumerable: !0, + configurable: !0, + }), + (va.prototype.updateProgress = function (t, e, n, r) { + return ( + void 0 === n && (n = NaN), + void 0 === r && (r = NaN), + this.checkAborted(), + (this._progress.message = t), + 'boolean' != typeof e && e && (this._abortRequester = e), + (this._progress.requestAbort = e ? this._abortRequester : void 0), + isNaN(n) + ? (this._progress.isIndeterminate = !0) + : ((this._progress.isIndeterminate = !1), + (this._progress.current = n), + (this._progress.max = r)), + this.progressTick.onNext(this._progress), + ni.Scheduler.immediatePromise() + ); + }), + (va.prototype.started = function () { + this.startEndCounter++; + }), + (va.prototype.finished = function () { + if ( + (this.startEndCounter--, + this.startEndCounter <= 0 && + (this.progressTick.onCompleted(), this.progressStream.onCompleted()), + this.startEndCounter < 0) + ) + throw 'Bug in code somewhere, Computation.resolve/reject called too many times.'; + }), + (ii = va), + (t = (t = F = F || {}).Core || (t.Core = {})), + (t = (oi = t.Utils || (t.Utils = {})).FastMap || (oi.FastMap = {})), + (ai = { + set: function (t, e) { + void 0 === this.data[t] && void 0 !== e && this.size++, (this.data[t] = e); + }, + get: function (t) { + return this.data[t]; + }, + delete: function (t) { + return void 0 !== this.data[t] && (delete this.data[t], this.size--, !0); + }, + has: function (t) { + return void 0 !== this.data[t]; + }, + clear: function () { + (this.data = ba()), (this.size = 0); + }, + forEach: function (t, e) { + for ( + var n = this.data, + r = t, + i = void 0 !== e ? e : void 0, + o = 0, + a = Object.keys(n); + o < a.length; + o++ + ) { + var s = a[o], + l = n[s]; + void 0 !== l && r(l, s, i); + } + }, + }), + (t.create = ya), + (t.ofArray = function (t) { + for (var e = ya(), n = 0, r = t; n < r.length; n++) { + var i = r[n]; + e.set(i[0], i[1]); + } + return e; + }), + (t.ofObject = function (t) { + for (var e = ya(), n = 0, r = Object.keys(t); n < r.length; n++) { + var i = r[n], + o = t[i]; + e.set(i, o); + } + return e; + }), + (t = oi.FastSet || (oi.FastSet = {})), + (si = { + add: function (t) { + return null !== this.data[t] && ((this.data[t] = null), this.size++, !0); + }, + delete: function (t) { + return null === this.data[t] && (delete this.data[t], this.size--, !0); + }, + has: function (t) { + return null === this.data[t]; + }, + clear: function () { + (this.data = ba()), (this.size = 0); + }, + forEach: function (t, e) { + for ( + var n = this.data, + r = t, + i = void 0 !== e ? e : void 0, + o = 0, + a = Object.keys(n); + o < a.length; + o++ + ) { + var s = a[o]; + null === n[s] && r(s, i); + } + }, + }), + (t.create = wa), + (t.ofArray = function (t) { + for (var e = wa(), n = 0, r = t.length; n < r; n++) e.add(t[n]); + return e; + }), + (t = oi.Mask || (oi.Mask = {})), + (Ea.prototype.has = function (t) { + return !1; + }), + (li = Ea), + (Ba.prototype.has = function (t) { + return t === this.idx; + }), + (ui = Ba), + (Ca.prototype.has = function (t) { + return this.mask[t]; + }), + (ci = Ca), + (xa.prototype.has = function (t) { + return !0; + }), + (Ai = xa), + (t.ofStructure = function (t) { + return new Ai(t.data.atoms.count); + }), + (t.ofIndices = function (t, e) { + var n = e.length; + if (0 === n) return new li(t); + if (1 === n) return new ui(e[0], t); + if (n / t < 1 / 12) { + for (var r = oi.FastSet.create(), i = 0, o = e; i < o.length; i++) { + var a = o[i]; + r.add(a); + } + return r; + } + for (var s = new Int8Array(t), l = 0, u = e; l < u.length; l++) + s[(a = u[l])] = 1; + return new ci(s, n); + }), + (t.ofFragments = function (t) { + for (var e = 0, n = 0, r = t.fragments; n < r.length; n++) e += r[n].atomCount; + var i = t.context.structure.data.atoms.count; + if (e / i < 1 / 12) { + for (var o = oi.FastSet.create(), a = 0, s = t.fragments; a < s.length; a++) + for (var l = 0, u = s[a].atomIndices; l < u.length; l++) { + var c = u[l]; + o.add(c); + } + return o; + } + for (var o = new Int8Array(i), A = 0, h = t.fragments; A < h.length; A++) + for (var p = 0, d = h[A].atomIndices; p < d.length; p++) o[(c = d[p])] = 1; + for (var f = 0, c = 0; c < i; c++) 0 !== o[c] && f++; + return new ci(o, f); + }), + (r = (r = F = F || {}).Core || (r.Core = {})), + ((e = r.Utils || (r.Utils = {})).FastNumberParsers = + r.Formats.CIF.Utils.FastNumberParsers), + (e.extend = function (t, e, n) { + for (var r, i = e, o = t, a = n, s = 0, l = Object.keys(e); s < l.length; s++) + void 0 !== (r = i[(u = l[s])]) ? (o[u] = r) : n && (o[u] = a[u]); + if (n) + for (var u, c = 0, A = Object.keys(n); c < A.length; c++) + void 0 === (r = o[(u = A[c])]) && (o[u] = a[u]); + return t; + }), + (e.debounce = function (n, r) { + function i() { + var t, + e = r - (performance.now() - l); + e <= 0 + ? (a && clearTimeout(a), + (t = A), + (a = c = A = void 0), + t && (performance.now(), (s = n.apply(u, o)), c || a || (o = u = null))) + : (c = setTimeout(i, e)); + } + var o, a, s, l, u, c, A; + return ( + (r = Math.max(0, r) || 0), + function () { + (o = arguments), (l = performance.now()), (u = this), (A = c || !0); + var t = !1, + e = !1, + e = !1; + return ( + t && c ? (c = clearTimeout(c)) : c || 0 === r || (c = setTimeout(i, r)), + e && ((t = !0), (s = n.apply(u, o))), + !t || c || a || (o = u = null), + s + ); + } + ); + }), + (t = (t = F = F || {}).Core || (t.Core = {})), + (hi = t.Utils || (t.Utils = {})), + ((pi = hi.DataTable || (hi.DataTable = {})).typedColumn = function (e) { + return function (t) { + return new e(t); + }; + }), + (pi.customColumn = function () { + return function (t) { + return new Array(t); + }; + }), + (pi.stringColumn = function (t) { + return new Array(t); + }), + (pi.stringNullColumn = function (t) { + return new Array(t); + }), + (pi.builder = function (t) { + return new fi(t); + }), + (pi.ofDefinition = function (t, e) { + for (var n = pi.builder(e), r = 0, i = Object.keys(t); r < i.length; r++) { + var o, + a = i[r]; + Object.prototype.hasOwnProperty.call(t, a) && (o = t[a]) && n.addColumn(a, o); + } + return n.seal(); + }), + (Ia.prototype.getBuilder = function (t) { + for (var e = new fi(t), n = 0, r = this.columns; n < r.length; n++) { + var i = r[n]; + e.addColumn(i.name, i.creator); + } + return e; + }), + (Ia.prototype.getRawData = function () { + var e = this; + return this.columns.map(function (t) { + return e[t.name]; + }); + }), + (Ia.prototype.getRow = function (t) { + return (this.__rowIndexer.index = t), this.__row; + }), + (di = Ia), + (Ma.prototype.addColumn = function (t, e) { + var n = e(this.count); + return ( + Object.defineProperty(this, t, { + enumerable: !0, + configurable: !1, + writable: !1, + value: n, + }), + (this.columns[this.columns.length] = { name: t, creator: e }), + n + ); + }), + (Ma.prototype.addRawColumn = function (t, e, n) { + return ( + Object.defineProperty(this, t, { + enumerable: !0, + configurable: !1, + writable: !1, + value: n, + }), + (this.columns[this.columns.length] = { name: t, creator: e }), + n + ); + }), + (Ma.prototype.getRawData = function () { + var e = this; + return this.columns.map(function (t) { + return e[t.name]; + }); + }), + (Ma.prototype.seal = function () { + return new di(this.count, this.columns, this); + }), + (fi = Ma), + (r = (r = F = F || {}).Core || (r.Core = {})), + ((gi = r.Utils || (r.Utils = {})).integerSetToSortedTypedArray = function (t) { + var e = new Int32Array(t.size); + return ( + t.forEach( + function (t, e) { + e.array[e.index++] = t; + }, + { array: e, index: 0 }, + ), + Array.prototype.sort.call(e, function (t, e) { + return t - e; + }), + e + ); + }), + (gi.makeNativeIntArray = function (t) { + for (var e = [], n = 0; n < t; n++) e[n] = 0; + return e; + }), + (gi.makeNativeFloatArray = function (t) { + var e = []; + if (t) { + e[0] = 0.1; + for (var n = 0; n < t; n++) e[n] = 0; + } + return e; + }), + ((r = gi.ChunkedArray || (gi.ChunkedArray = {})).is = function (t) { + return t.creator && t.chunkSize; + }), + (r.add4 = function (t, e, n, r, i) { + return ( + t.currentIndex >= t.chunkSize && + ((t.currentIndex = 0), + (t.current = t.creator(t.chunkSize)), + (t.parts[t.parts.length] = t.current)), + (t.current[t.currentIndex++] = e), + (t.current[t.currentIndex++] = n), + (t.current[t.currentIndex++] = r), + (t.current[t.currentIndex++] = i), + t.elementCount++ + ); + }), + (r.add3 = function (t, e, n, r) { + return ( + t.currentIndex >= t.chunkSize && + ((t.currentIndex = 0), + (t.current = t.creator(t.chunkSize)), + (t.parts[t.parts.length] = t.current)), + (t.current[t.currentIndex++] = e), + (t.current[t.currentIndex++] = n), + (t.current[t.currentIndex++] = r), + t.elementCount++ + ); + }), + (r.add2 = function (t, e, n) { + return ( + t.currentIndex >= t.chunkSize && + ((t.currentIndex = 0), + (t.current = t.creator(t.chunkSize)), + (t.parts[t.parts.length] = t.current)), + (t.current[t.currentIndex++] = e), + (t.current[t.currentIndex++] = n), + t.elementCount++ + ); + }), + (r.add = function (t, e) { + return ( + t.currentIndex >= t.chunkSize && + ((t.currentIndex = 0), + (t.current = t.creator(t.chunkSize)), + (t.parts[t.parts.length] = t.current)), + (t.current[t.currentIndex++] = e), + t.elementCount++ + ); + }), + (r.compact = function (t) { + var e = t.creator(t.elementSize * t.elementCount), + n = (t.parts.length - 1) * t.chunkSize; + if (1 === t.parts.length && t.chunkSize === t.elementCount) return t.parts[0]; + if (1 < t.parts.length) + if (t.parts[0].buffer) + for (var r = 0; r < t.parts.length - 1; r++) + e.set(t.parts[r], t.chunkSize * r); + else + for (r = 0; r < t.parts.length - 1; r++) + for (var i = t.chunkSize * r, o = t.parts[r], a = 0; a < t.chunkSize; a++) + e[i + a] = o[a]; + if (t.current.buffer && t.currentIndex >= t.chunkSize) + e.set(t.current, t.chunkSize * (t.parts.length - 1)); + else for (r = 0; r < t.currentIndex; r++) e[n + r] = t.current[r]; + return e; + }), + (r.forVertex3D = function (t) { + return Da( + function (t) { + return new Float32Array(t); + }, + (t = void 0 === t ? 262144 : t), + 3, + ); + }), + (r.forIndexBuffer = function (t) { + return Da( + function (t) { + return new Uint32Array(t); + }, + (t = void 0 === t ? 262144 : t), + 3, + ); + }), + (r.forTokenIndices = function (t) { + return Da( + function (t) { + return new Int32Array(t); + }, + (t = void 0 === t ? 131072 : t), + 2, + ); + }), + (r.forIndices = function (t) { + return Da( + function (t) { + return new Int32Array(t); + }, + (t = void 0 === t ? 131072 : t), + 1, + ); + }), + (r.forInt32 = function (t) { + return Da( + function (t) { + return new Int32Array(t); + }, + (t = void 0 === t ? 131072 : t), + 1, + ); + }), + (r.forFloat32 = function (t) { + return Da( + function (t) { + return new Float32Array(t); + }, + (t = void 0 === t ? 131072 : t), + 1, + ); + }), + (r.forArray = function (t) { + return Da( + function (t) { + return []; + }, + (t = void 0 === t ? 131072 : t), + 1, + ); + }), + (r.create = Da), + ((r = gi.ArrayBuilder || (gi.ArrayBuilder = {})).add3 = function (t, e, n, r) { + var i = t.array; + (i[t.currentIndex++] = e), + (i[t.currentIndex++] = n), + (i[t.currentIndex++] = r), + t.elementCount++; + }), + (r.add2 = function (t, e, n) { + var r = t.array; + (r[t.currentIndex++] = e), (r[t.currentIndex++] = n), t.elementCount++; + }), + (r.add = function (t, e) { + (t.array[t.currentIndex++] = e), t.elementCount++; + }), + (r.forVertex3D = function (t) { + return Sa( + function (t) { + return new Float32Array(t); + }, + t, + 3, + ); + }), + (r.forIndexBuffer = function (t) { + return Sa( + function (t) { + return new Int32Array(t); + }, + t, + 3, + ); + }), + (r.forTokenIndices = function (t) { + return Sa( + function (t) { + return new Int32Array(t); + }, + t, + 2, + ); + }), + (r.forIndices = function (t) { + return Sa( + function (t) { + return new Int32Array(t); + }, + t, + 1, + ); + }), + (r.forInt32 = function (t) { + return Sa( + function (t) { + return new Int32Array(t); + }, + t, + 1, + ); + }), + (r.forFloat32 = function (t) { + return Sa( + function (t) { + return new Float32Array(t); + }, + t, + 1, + ); + }), + (r.forArray = function (t) { + return Sa( + function (t) { + return []; + }, + t, + 1, + ); + }), + (r.create = Sa), + (gi.UniqueArray = ka), + ((gi.UniqueArray || (gi.UniqueArray = {})).add = function (t, e) { + var n = t._set, + t = t.array; + n.has(e) || (n.add(e), (t[t.length] = e)); + }), + (function (t) { + var e, n; + function r() { + (this.starts = e.FastMap.create()), (this.ends = e.FastMap.create()); + } + (e = t.Utils || (t.Utils = {})), + ((n || (n = {})).perfGetTime = + 'undefined' != typeof window && window.performance + ? function () { + return window.performance.now(); + } + : void 0 !== jp && 'undefined' !== jp.hrtime + ? function () { + var t = jp.hrtime(); + return 1e3 * t[0] + t[1] / 1e6; + } + : function () { + return +new Date(); + }), + (r.currentTime = function () { + return n.perfGetTime(); + }), + (r.prototype.start = function (t) { + this.starts.set(t, n.perfGetTime()); + }), + (r.prototype.end = function (t) { + this.ends.set(t, n.perfGetTime()); + }), + (r.format = function (t) { + if (isNaN(t)) return 'n/a'; + for ( + var e = Math.floor(t / 36e5), + n = Math.floor((t / 6e4) % 60), + r = Math.floor((t / 1e3) % 60), + i = Math.floor(t % 1e3).toString(); + i.length < 3; + + ) + i = '0' + i; + return 0 < e + ? e + 'h' + n + 'm' + r + '.' + i + 's' + : 0 < n + ? n + 'm' + r + '.' + i + 's' + : 0 < r + ? r + '.' + i + 's' + : t.toFixed(0) + 'ms'; + }), + (r.prototype.formatTime = function (t) { + return r.format(this.time(t)); + }), + (r.prototype.formatTimeSum = function () { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + return r.format(this.timeSum.apply(this, t)); + }), + (r.prototype.time = function (t) { + var e = this.starts.get(t), + n = this.ends.get(t); + return this.starts.delete(t), this.ends.delete(t), n - e; + }), + (r.prototype.timeSum = function () { + for (var e = this, t = [], n = 0; n < arguments.length; n++) + t[n] = arguments[n]; + for ( + var r = 0, + i = 0, + o = t.map(function (t) { + return e.ends.get(t) - e.starts.get(t); + }); + i < o.length; + i++ + ) + r += o[i]; + return r; + }), + (e.PerformanceMonitor = r); + })((e = F = F || {}).Core || (e.Core = {})), + (t = (t = (t = F = F || {}).Core || (t.Core = {})).Formats || (t.Formats = {})), + ((r = t.FormatInfo || (t.FormatInfo = {})).is = function (t) { + return t.name && t.parse; + }), + (r.fromShortcut = function (t, e) { + e = e.toLowerCase().trim(); + for (var n = 0, r = t; n < r.length; n++) + for (var i = r[n], o = 0, a = i.shortcuts; o < a.length; o++) + if (a[o].toLowerCase() === e) return i; + }), + (r.formatRegExp = Fa), + (r.formatFileFilters = function (t) { + return t + .map(function (t) { + return t.extensions + .map(function (t) { + return t + ',' + t + '.gz'; + }) + .join(','); + }) + .join(','); + }), + (r.getFormat = function (t, e) { + for (var n = 0, r = e; n < r.length; n++) { + var i = r[n]; + if (Fa(i).test(t)) return i; + } + }), + ((r = t.ParserResult || (t.ParserResult = {})).error = function (t, e) { + return new Qa(t, (e = void 0 === e ? -1 : e)); + }), + (r.success = function (t, e) { + return new Ta(t, (e = void 0 === e ? [] : e)); + }), + (_a.prototype.toString = function () { + return 0 <= this.line + ? '[Line ' + this.line + '] ' + this.message + : this.message; + }); + var Qa = _a; + function _a(t, e) { + (this.message = t), (this.line = e), (this.isError = !0); + } + t.ParserError = Qa; + var Ta = function (t, e) { + (this.result = t), (this.warnings = e), (this.isError = !1); + }; + function Ra(t, e, n, r) { + for ( + var i, o = nt.Geometry.LinearAlgebra.Matrix4.identity(), a = 1; + a <= 3; + a++ + ) { + for (i = 1; i <= 3; i++) + nt.Geometry.LinearAlgebra.Matrix4.setValue( + o, + a - 1, + i - 1, + t.getColumn(e + '[' + a + '][' + i + ']').getFloat(r), + ); + nt.Geometry.LinearAlgebra.Matrix4.setValue( + o, + a - 1, + 3, + t.getColumn(n + '[' + a + ']').getFloat(r), + ); + } + return o; + } + function Ua(t, e, n) { + for ( + var r = (function (t, e, n) { + var r = 0; + if (!n || !n.isDefined) return e; + for (r = t + 1; r < e && n.areValuesEqual(r - 1, r); r++); + return r; + })(t, e, n.get('pdbx_PDB_model_num')), + e = nt.Utils.DataTable.ofDefinition(nt.Structure.Tables.Atoms, r - t), + i = nt.Utils.DataTable.ofDefinition(nt.Structure.Tables.Positions, r - t), + o = i.x, + a = n.get('Cartn_x'), + s = i.y, + l = n.get('Cartn_y'), + u = i.z, + c = n.get('Cartn_z'), + A = e.id, + h = n.get('id'), + p = e.altLoc, + d = n.get('label_alt_id'), + f = e.rowIndex, + g = e.residueIndex, + m = e.chainIndex, + v = e.entityIndex, + b = e.name, + y = n.get('label_atom_id'), + w = e.elementSymbol, + E = n.get('type_symbol'), + B = e.occupancy, + C = n.get('occupancy'), + x = e.tempFactor, + I = n.get('B_iso_or_equiv'), + M = e.authName, + U = n.get('auth_atom_id'), + N = n.get('label_asym_id'), + P = n.get('label_entity_id'), + L = n.get('pdbx_PDB_ins_code'), + Y = n.get('auth_seq_id'), + n = n.get('pdbx_PDB_model_num'), + D = 0, + S = 0, + k = 0, + F = t, + Q = t; + Q < r; + Q++ + ) { + var _ = Q - t, + T = + ((A[_] = h.getInteger(Q)), + (o[_] = a.getFloat(Q)), + (s[_] = l.getFloat(Q)), + (u[_] = c.getFloat(Q)), + (w[_] = E.getString(Q) || mi.ElementSymbol), + (b[_] = y.getString(Q) || w[_]), + (M[_] = U.getString(Q) || b[_]), + (p[_] = d.getString(Q)), + (B[_] = C.getFloat(Q)), + (x[_] = I.getFloat(Q)), + !1), + R = !Y.areValuesEqual(F, Q) || !L.areValuesEqual(F, Q); + N.areValuesEqual(F, Q) || (R = T = !0), + P.areValuesEqual(F, Q) || (k++, (R = T = !0)), + R && S++, + T && D++, + (f[_] = Q), + (g[_] = S), + (m[_] = D), + (v[_] = k), + (F = Q); + } + return { + atoms: e, + positions: i, + modelId: (n.isDefined && n.getString(t)) || mi.ModelId, + endRow: r, + }; + } + function Na(t, e, n, r) { + return new nt.Structure.PolyResidueIdentifier( + e.getString(t) || mi.AsymId, + n.getInteger(t), + r.getString(t), + ); + } + function Pa(t, e, n, r) { + if ('polymer' === n.type[e.entityIndex[r]]) { + for ( + var i = !1, + o = !1, + a = t.name, + s = 0, + l = e.atomStartIndex[r], + u = e.atomEndIndex[r]; + l < u; + l++ + ) { + var c = a[l]; + if ( + (i || 'CA' !== c ? o || 'O' !== c || ((o = !0), s++) : ((i = !0), s++), + 2 === s) + ) + break; + } + return (i && o) || (i && !e.isHet[r]); + } + } + function La(t, e, n, r) { + if (!bi[e.name[r]] && 'polymer' === n.type[e.entityIndex[r]]) { + var i = t.name, + o = 0, + n = e.atomStartIndex[r], + a = e.atomEndIndex[r]; + if (a - n == 1 && !e.isHet[n] && 'P' === i[n]) return 1; + for (var s = n; s < a; s++) { + var l = i[s]; + if ((("O5'" !== l && "C3'" !== l && 'N3' !== l && 'P' !== l) || o++, 3 <= o)) + return 1; + } + } + } + function Ya(t, e, n, r, i, o) { + for (var a = e.asymId, s = e.entityIndex, l = 0, u = r, c = r, A = i; u < A; ) { + if (La(t, e, n, u)) { + for (c = u + 1; c < A && a[u] === a[c] && s[u] === s[c] && La(t, e, n, c); ) + c++; + l = 5; + } else if (Pa(t, e, n, u)) { + for (c = u + 1; c < A && a[u] === a[c] && s[u] === s[c] && Pa(t, e, n, c); ) + c++; + l = 4; + } else { + for ( + c = u + 1; + c < A && + a[u] === a[c] && + s[u] === s[c] && + !La(t, e, n, c) && + !Pa(t, e, n, c); + + ) + c++; + l = 0; + } + var h = new nt.Structure.SecondaryStructureElement( + l, + new nt.Structure.PolyResidueIdentifier( + e.asymId[u], + e.seqNumber[u], + e.insCode[u], + ), + new nt.Structure.PolyResidueIdentifier( + e.asymId[c - 1], + e.seqNumber[c - 1], + e.insCode[c - 1], + ), + ); + (h.startResidueIndex = u), (h.endResidueIndex = c), (o[o.length] = h), (u = c); + } + } + function Oa(t, e) { + for (var n = [], r = t.authSeqNumber, i = 0, o = e; i < o.length; i++) { + for ( + var a, + s = o[i], + l = s.startResidueIndex, + u = s.endResidueIndex - 1, + c = s.startResidueIndex; + c < u; + c++ + ) + r[c + 1] - r[c] != 1 && + (((a = new nt.Structure.SecondaryStructureElement( + s.type, + s.startResidueId, + s.endResidueId, + s.info, + )).startResidueIndex = l), + (a.endResidueIndex = c + 1), + (n[n.length] = a), + (l = c + 1)); + l === s.startResidueIndex + ? (n[n.length] = s) + : (((a = new nt.Structure.SecondaryStructureElement( + s.type, + s.startResidueId, + s.endResidueId, + s.info, + )).startResidueIndex = l), + (a.endResidueIndex = s.endResidueIndex), + (n[n.length] = a)); + } + return n; + } + function Ga(t, e, n) { + var r = [], + i = [], + o = t.getCategory('_struct_conf'), + a = t.getCategory('_struct_sheet_range'); + if (o) { + var s = o.getColumn('conf_type_id'); + if (s) + for ( + var l = o.getColumn('beg_label_asym_id'), + u = o.getColumn('beg_label_seq_id'), + c = o.getColumn('pdbx_beg_PDB_ins_code'), + A = o.getColumn('end_label_asym_id'), + h = o.getColumn('end_label_seq_id'), + p = o.getColumn('pdbx_end_PDB_ins_code'), + d = o.getColumn('pdbx_PDB_helix_class'), + f = 0; + f < o.rowCount; + f++ + ) { + var g = void 0; + switch ((s.getString(f) || '').toUpperCase()) { + case 'HELX_P': + g = 1; + break; + case 'TURN_P': + g = 2; + } + g && + (r[r.length] = new nt.Structure.SecondaryStructureElement( + g, + Na(f, l, u, c), + Na(f, A, h, p), + { helixClass: d.getString(f) }, + )); + } + } + if (a) { + var l = a.getColumn('beg_label_asym_id'), + u = a.getColumn('beg_label_seq_id'), + c = a.getColumn('pdbx_beg_PDB_ins_code'), + A = a.getColumn('end_label_asym_id'), + h = a.getColumn('end_label_seq_id'), + p = a.getColumn('pdbx_end_PDB_ins_code'), + m = a.getColumn('symmetry'), + v = a.getColumn('sheet_id'), + b = a.getColumn('id'); + for (f = 0; f < a.rowCount; f++) + r[r.length] = new nt.Structure.SecondaryStructureElement( + 3, + Na(f, l, u, c), + Na(f, A, h, p), + { symmetry: m.getString(f), sheetId: v.getString(f), id: b.getString(f) }, + ); + } + var y = + 0 < r.length + ? (function (t, e) { + for ( + var n = (e = e.residues).count, + r = e.asymId, + i = e.seqNumber, + o = e.insCode, + a = void 0, + s = '', + l = nt.Utils.FastMap.create(), + u = nt.Utils.FastMap.create(), + c = 0, + A = t; + c < A.length; + c++ + ) { + s = + (p = A[c]).startResidueId.asymId + ' ' + p.startResidueId.seqNumber; + p.startResidueId.insCode && (s += ' ' + p.startResidueId.insCode), + l.set(s, p), + (s = p.endResidueId.asymId + ' ' + p.endResidueId.seqNumber), + p.endResidueId.insCode && (s += ' ' + p.endResidueId.insCode), + u.set(s, p); + } + for (var h = 0; h < n; h++) + (s = r[h] + ' ' + i[h]), + o[h] && (s += ' ' + o[h]), + (a = l.get(s)) && + ((a.startResidueIndex = h), (a.endResidueIndex = h + 1)), + (a = u.get(s)) && + (a.startResidueIndex < 0 && (a.startResidueIndex = h), + (a.endResidueIndex = h + 1)); + a && (a.endResidueIndex = n); + for (var p, d = [], f = 0, g = t; f < g.length; f++) + (p = g[f]).startResidueIndex < 0 || + p.endResidueIndex < 0 || + (3 === p.type && p.length < 3) || + (0 <= p.endResidueIndex && + 0 <= p.startResidueIndex && + (d[d.length] = p)); + for ( + d.sort(function (t, e) { + return t.startResidueIndex - e.startResidueIndex; + }), + h = 0; + h < d.length - 1; + h++ + ) + d[h + 1].startResidueIndex - d[h].endResidueIndex == -1 && + d[h + 1].startResidueIndex++; + if (!d.length) return d; + for (var m, v = [d[0]], h = 1; h < d.length; h++) { + var b = v[v.length - 1], + y = d[h]; + y.startResidueIndex < b.endResidueIndex + ? ((b = b), + (m = y).endResidueIndex > b.endResidueIndex && + (b.endResidueIndex = m.endResidueIndex)) + : (v[v.length] = y); + } + return v; + })(r, n) + : [], + w = n.residues, + t = w.count; + if (0 === y.length) return Ya(e, w, n.entities, 0, t, i), Oa(w, i); + var E = y.length - 1; + for ( + 0 < y[0].startResidueIndex && + Ya(e, w, n.entities, 0, y[0].startResidueIndex, i), + f = 0; + f < E; + f++ + ) + (i[i.length] = y[f]), + 0 < y[f + 1].startResidueIndex - y[f].endResidueIndex && + Ya(e, w, n.entities, y[f].endResidueIndex, y[f + 1].startResidueIndex, i); + return ( + (i[i.length] = y[E]), + y[E].endResidueIndex < t && Ya(e, w, n.entities, y[E].endResidueIndex, t, i), + Oa(w, i) + ); + } + function za(t, i, o) { + var e = t.getCategory('_struct_conn'); + if (e) { + for ( + var n, + t = function (t) { + return { + label_asym_id: e.getColumn('ptnr' + t + '_label_asym_id'), + label_seq_id: e.getColumn('ptnr' + t + '_label_seq_id'), + label_atom_id: e.getColumn('ptnr' + t + '_label_atom_id'), + label_alt_id: e.getColumn('pdbx_ptnr' + t + '_label_alt_id'), + ins_code: e.getColumn('pdbx_ptnr' + t + '_PDB_ins_code'), + symmetry: e.getColumn('ptnr' + t + '_symmetry'), + }; + }, + r = e.getColumn('conn_type_id'), + a = e.getColumn('pdbx_dist_value'), + s = e.getColumn('pdbx_value_order'), + l = t(1), + u = t(2), + c = t(3), + A = function (t, e) { + if (0 === e.label_asym_id.getValuePresence(t)) { + var n = (function (t, e, n, r) { + for ( + var i = t.chains, + o = i.asymId, + a = i.residueStartIndex, + s = i.residueEndIndex, + l = i.count, + u = (i = t.residues).seqNumber, + c = i.insCode, + A = 0; + A < l; + A++ + ) + if (o[A] === e) + for (var h = a[A], p = s[A]; h < p; h++) + if (u[h] === n && c[h] === r) return h; + return -1; + })( + o, + e.label_asym_id.getString(t), + e.label_seq_id.getInteger(t), + e.ins_code.getString(t), + ); + if (!(n < 0)) { + var r = (function (t, e, n, r, i) { + for ( + var o = (e = e.residues).atomStartIndex, + e = e.atomEndIndex, + a = t.name, + s = t.altLoc, + l = o[n], + u = e[n]; + l <= u; + l++ + ) + if (a[l] === r && s[l] === i) return l; + return -1; + })( + i, + o, + n, + e.label_atom_id.getString(t), + e.label_alt_id.getString(t), + ); + if (!(r < 0)) + return { + residueIndex: n, + atomIndex: r, + symmetry: e.symmetry.getString(t) || '1_555', + }; + } + } + }, + h = [], + p = 0; + p < e.rowCount; + p++ + ) { + (f = n = void 0), + (n = []), + (f = A((d = p), l)) && n.push(f), + (f = A(d, u)) && n.push(f), + (f = A(d, c)) && n.push(f); + var d = n; + if (!(d.length < 2)) { + var f = r.getString(p), + g = 0; + switch ((s.getString(p) || '').toLowerCase()) { + case 'sing': + g = 1; + break; + case 'doub': + g = 2; + break; + case 'trip': + g = 3; + break; + case 'quad': + g = 4; + } + switch (f) { + case 'disulf': + g = 5; + break; + case 'hydrog': + g = 8; + break; + case 'metalc': + g = 6; + break; + case 'saltbr': + g = 7; + } + h.push({ bondType: g, distance: a.getFloat(p), partners: d }); + } + } + return new nt.Structure.StructConn(h); + } + } + function Ha(t) { + var e = t.getCategory('_pdbx_struct_assembly'), + n = t.getCategory('_pdbx_struct_assembly_gen'), + r = t.getCategory('_pdbx_struct_oper_list'); + if (e && n && r) { + for ( + var i = {}, + o = [], + a = nt.Utils.FastMap.create(), + s = n.getColumn('assembly_id'), + l = n.getColumn('oper_expression'), + u = n.getColumn('asym_id_list'), + c = 0; + c < n.rowCount; + c++ + ) { + var A = s.getString(c); + if (!A) return; + var h = a.get(A); + h || ((h = new nt.Structure.AssemblyGen(A)), a.set(A, h), o.push(h)), + h.gens.push( + new nt.Structure.AssemblyGenEntry( + (function (t) { + for ( + var e, n = /\(?([^\(\)]+)\)?]*/g, r = [], i = []; + (e = n.exec(t)); + + ) + r[r.length] = e[1]; + return ( + r.forEach(function (t) { + var o = []; + t.split(',').forEach(function (t) { + var e = t.indexOf('-'); + if (0 < e) + for ( + var n = parseInt(t.substring(0, e)), + r = parseInt(t.substr(e + 1)), + i = n; + i <= r; + i++ + ) + o[o.length] = i.toString(); + else o[o.length] = t.trim(); + }), + (i[i.length] = o); + }), + i + ); + })(l.getString(c)), + u.getString(c).split(','), + ), + ); + } + var p = r.getColumn('id'), + d = r.getColumn('name'); + for (c = 0; c < r.rowCount; c++) { + var f = Ra(r, 'matrix', 'vector', c); + if (!f) return; + f = new nt.Structure.AssemblyOperator(p.getString(c), d.getString(c), f); + i[f.id] = f; + } + return new nt.Structure.AssemblyInfo(i, o); + } + } + function ja(t, e, n) { + var t = Ua(t, e.getCategory('_atom_site').rowCount, n), + r = t.atoms, + i = t.positions, + o = t.modelId, + t = t.endRow, + n = (function (t, e) { + for ( + var U = e.count, + n = e.residueIndex, + r = e.chainIndex, + i = e.entityIndex, + o = nt.Utils.DataTable.ofDefinition( + nt.Structure.Tables.Residues, + e.residueIndex[e.count - 1] + 1, + ), + a = nt.Utils.DataTable.ofDefinition( + nt.Structure.Tables.Chains, + e.chainIndex[e.count - 1] + 1, + ), + e = nt.Utils.DataTable.ofDefinition( + nt.Structure.Tables.Entities, + e.entityIndex[e.count - 1] + 1, + ), + s = o.name, + l = o.seqNumber, + u = o.asymId, + c = o.authName, + A = o.authSeqNumber, + h = o.authAsymId, + p = o.insCode, + N = o.entityId, + d = o.isHet, + f = o.atomStartIndex, + g = o.atomEndIndex, + m = o.chainIndex, + v = o.entityIndex, + b = a.asymId, + y = a.entityId, + w = a.authAsymId, + E = a.atomStartIndex, + P = a.atomEndIndex, + L = a.residueStartIndex, + Y = a.residueEndIndex, + O = a.entityIndex, + G = e.entityId, + z = e.type, + H = e.atomStartIndex, + j = e.atomEndIndex, + V = e.residueStartIndex, + q = e.residueEndIndex, + W = e.chainStartIndex, + J = e.chainEndIndex, + K = t.get('label_comp_id'), + Z = t.get('label_seq_id'), + B = t.get('label_asym_id'), + X = t.get('auth_comp_id'), + $ = t.get('auth_seq_id'), + C = t.get('auth_asym_id'), + tt = t.get('group_PDB'), + x = t.get('label_entity_id'), + et = t.get('pdbx_PDB_ins_code'), + I = 0, + M = 0, + D = 0, + S = 0, + k = 0, + F = 0, + Q = 0, + _ = 0, + T = 0, + R = 0, + R = 0; + R < U; + R++ + ) + n[R] !== n[I] && + ((s[Q] = K.getString(I) || mi.ResidueName), + (l[Q] = Z.getInteger(I)), + (u[Q] = B.getString(I) || mi.AsymId), + (c[Q] = X.getString(I) || s[Q]), + (A[Q] = $.getInteger(I)), + (h[Q] = C.getString(I) || u[Q]), + (p[Q] = et.getString(I)), + (N[Q] = x.getString(I) || mi.EntityId), + (d[Q] = tt.stringEquals(I, 'HETATM') ? 1 : 0), + (f[Q] = I), + (g[Q] = R), + (m[Q] = _), + (v[Q] = T), + Q++, + (I = R)), + r[R] !== r[M] && + ((b[_] = B.getString(M) || mi.AsymId), + (w[_] = C.getString(M) || b[_]), + (y[_] = x.getString(M) || mi.EntityId), + (L[_] = F), + (Y[_] = Q), + (E[_] = M), + (P[_] = R), + (O[_] = T), + _++, + (M = R), + (F = Q)), + i[R] !== i[D] && + ((G[T] = x.getString(D) || mi.EntityId), + (z[T] = 'unknown'), + (H[T] = D), + (j[T] = R), + (V[T] = k), + (q[T] = Q), + (W[T] = S), + (J[T] = _), + T++, + (D = R), + (S = _), + (k = Q)); + return ( + (G[T] = x.getString(D) || mi.EntityId), + (z[T] = 'unknown'), + (H[T] = D), + (j[T] = R), + (V[T] = k), + (q[T] = Q + 1), + (W[T] = S), + (J[T] = _ + 1), + (b[_] = B.getString(M) || mi.AsymId), + (w[_] = C.getString(M) || b[_]), + (y[_] = x.getString(M) || mi.EntityId), + (L[_] = F), + (Y[_] = Q + 1), + (E[_] = M), + (P[_] = R), + (O[_] = T), + (s[Q] = K.getString(I) || mi.ResidueName), + (l[Q] = Z.getInteger(I)), + (u[Q] = B.getString(I) || mi.AsymId), + (c[Q] = X.getString(I) || s[Q]), + (A[Q] = $.getInteger(I)), + (h[Q] = C.getString(I) || u[Q]), + (p[Q] = et.getString(I)), + (f[Q] = I), + (g[Q] = R), + (m[Q] = _), + (v[Q] = T), + (d[Q] = tt.stringEquals(I, 'HETATM') ? 1 : 0), + { residues: o, chains: a, entities: e } + ); + })(n, r), + a = e.getCategory('_entry'), + a = + a && a.getColumn('id').isDefined ? a.getColumn('id').getString(0) : e.header, + s = e.getCategory('_entity'), + l = n.entities; + if (s) { + for ( + var u = {}, c = s.getColumn('type'), A = s.getColumn('id'), h = 0; + h < s.rowCount; + h++ + ) { + var p = (c.getString(h) || '').toLowerCase(), + d = A.getString(h) || mi.EntityId; + switch (p) { + case 'polymer': + case 'non-polymer': + case 'water': + u[d] = p; + break; + default: + u[d] = 'unknown'; + } + } + for (h = 0; h < l.count; h++) { + var f = u[l.entityId[h]]; + void 0 !== f && (l.type[h] = f); + } + } + for ( + var g = Ga(e, r, n), + m = n.residues, + v = g, + b = m.secondaryStructureIndex, + y = 0, + w = 0, + E = v; + w < E.length; + w++ + ) { + for (var B = E[w], C = B.startResidueIndex; C < B.endResidueIndex; C++) + b[C] = y; + y++; + } + return { + model: nt.Structure.Molecule.Model.create({ + id: a, + modelId: o, + data: { + atoms: r, + residues: n.residues, + chains: n.chains, + entities: n.entities, + bonds: { + structConn: za(e, r, n), + component: (function (t) { + if (t && t.rowCount) { + for ( + var e = new nt.Structure.ComponentBondInfo(), + n = t.getColumn('comp_id'), + r = t.getColumn('atom_id_1'), + i = t.getColumn('atom_id_2'), + o = t.getColumn('value_order'), + a = t.rowCount, + s = e.newEntry(n.getString(0)), + l = 0; + l < a; + l++ + ) { + var u = n.getString(l), + c = r.getString(l), + A = i.getString(l), + h = o.getString(l), + p = (s.id !== u && (s = e.newEntry(u)), void 0); + switch (h.toLowerCase()) { + case 'sing': + p = 1; + break; + case 'doub': + case 'delo': + p = 2; + break; + case 'trip': + p = 3; + break; + case 'quad': + p = 4; + break; + default: + p = 0; + } + s.add(c, A, p); + } + return e; + } + })(e.getCategory('_chem_comp_bond')), + }, + modifiedResidues: (function (t) { + if ((t = t.getCategory('_pdbx_struct_mod_residue'))) { + for ( + var e = nt.Utils.DataTable.ofDefinition( + nt.Structure.Tables.ModifiedResidues, + t.rowCount, + ), + n = t.getColumn('label_asym_id'), + r = t.getColumn('label_seq_id'), + i = t.getColumn('PDB_ins_code'), + o = t.getColumn('parent_comp_id'), + a = t.getColumn('details'), + s = e.asymId, + l = e.seqNumber, + u = e.insCode, + c = e.parent, + A = e.details, + h = 0, + p = t.rowCount; + h < p; + h++ + ) + (s[h] = n.getString(h)), + (l[h] = r.getInteger(h)), + (u[h] = i.getString(h)), + (c[h] = o.getString(h)), + (A[h] = a.getString(h)); + return e; + } + })(e), + secondaryStructure: g, + symmetryInfo: (function (t) { + var e = t.getCategory('_cell'), + n = t.getCategory('_symmetry'), + t = t.getCategory('_atom_sites'), + r = [1, 1, 1], + i = nt.Geometry.LinearAlgebra.Matrix4.identity(), + o = !1; + if (e && n) { + var a, + s, + l, + u, + c, + A, + h, + n = n.getColumn('space_group_name_H-M').getString(0), + r = [ + e.getColumn('length_a').getFloat(0), + e.getColumn('length_b').getFloat(0), + e.getColumn('length_c').getFloat(0), + ], + e = [ + e.getColumn('angle_alpha').getFloat(0), + e.getColumn('angle_beta').getFloat(0), + e.getColumn('angle_gamma').getFloat(0), + ]; + if ( + n && + !r.every(function (t) { + return isNaN(t) || 0 === t; + }) && + !r.every(function (t) { + return isNaN(t) || 0 === t; + }) + ) + return ( + (u = function (t) { + return t * t; + }), + (a = r[0]), + (s = r[1]), + (c = r[2]), + (A = (l = function (t) { + return (t * Math.PI) / 180; + })(e[0])), + (h = l(e[1])), + (l = l(e[2])), + (u = + a * + s * + c * + Math.sqrt( + 1 - + u(Math.cos(A)) - + u(Math.cos(h)) - + u(Math.cos(l)) + + 2 * Math.cos(A) * Math.cos(h) * Math.cos(l), + )), + (c = nt.Geometry.LinearAlgebra.Matrix4.ofRows([ + [a, s * Math.cos(l), c * Math.cos(h), 0], + [ + 0, + s * Math.sin(l), + (c * (Math.cos(A) - Math.cos(h) * Math.cos(l))) / Math.sin(l), + 0, + ], + [0, 0, u / (a * s * Math.sin(l)), 0], + [0, 0, 0, 1], + ])), + (A = nt.Geometry.LinearAlgebra.Matrix4.identity()), + nt.Geometry.LinearAlgebra.Matrix4.invert(A, c), + t + ? (h = Ra(t, 'fract_transf_matrix', 'fract_transf_vector', 0)) && + !nt.Geometry.LinearAlgebra.Matrix4.areEqual(A, (i = h), 1e-4) && + (o = !0) + : (i = A), + new nt.Structure.SymmetryInfo(n, r, e, i, o) + ); + } + })(e), + assemblyInfo: Ha(e), + }, + positions: i, + source: nt.Structure.Molecule.Model.Source.File, + }), + endRow: t, + }; + } + function Va(t) { + (this.data = t), + (this.trimmedToken = { start: 0, end: 0 }), + (this.line = 0), + (this.position = 0), + (this.length = t.length); + } + function qa() {} + function Wa(t) { + for (var e, n, r, i, o, a, s = 0; s < t.atomCount; s++) + (e = s), + (a = o = i = r = void 0), + (r = (n = t).lines[n.currentLine]), + (i = n.atoms), + (o = n.positions), + (a = Mi.ShortStringPool.get(n.stringPool, r.substr(31, 3).trim())), + (i.id[e] = e), + (i.elementSymbol[e] = a), + (i.name[e] = a), + (i.authName[e] = a), + (i.occupancy[e] = 1), + (i.rowIndex[e] = n.currentLine), + (o.x[e] = Ii.Utils.FastNumberParsers.parseFloatSkipTrailingWhitespace( + r, + 0, + 10, + )), + (o.y[e] = Ii.Utils.FastNumberParsers.parseFloatSkipTrailingWhitespace( + r, + 10, + 20, + )), + (o.z[e] = Ii.Utils.FastNumberParsers.parseFloatSkipTrailingWhitespace( + r, + 20, + 30, + )), + t.currentLine++; + } + function Ja(t) { + for (var e = 0; e < t.bondCount; e++) { + o = i = r = n = void 0; + var n = e, + r = t, + i = r.lines[r.currentLine], + o = r.bonds; + switch ( + ((o.atomAIndex[n] = + Ii.Utils.FastNumberParsers.parseIntSkipTrailingWhitespace(i, 0, 3) - 1), + (o.atomBIndex[n] = + Ii.Utils.FastNumberParsers.parseIntSkipTrailingWhitespace(i, 3, 6) - 1), + Ii.Utils.FastNumberParsers.parseIntSkipTrailingWhitespace(i, 6, 9)) + ) { + case 1: + o.type[n] = 1; + break; + case 2: + o.type[n] = 2; + break; + case 3: + o.type[n] = 3; + break; + case 4: + o.type[n] = 4; + break; + default: + o.type[n] = 0; + } + t.currentLine++; + } + } + function Ka(a, s) { + var t = this; + return function (i, o) { + return Di.computation(function (r) { + return D(t, void 0, void 0, function () { + var e, n; + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, r.updateProgress('Parsing...')]; + case 1: + if ((t.sent(), (e = s(i, o)).isError)) throw e.toString(); + if ((e = e.result).dataBlocks.length) + return [4, r.updateProgress('Creating representation...')]; + throw 'The ' + a + ' data does not contain a data block.'; + case 2: + return ( + t.sent(), + (n = ki.mmCIF.ofDataBlock(e.dataBlocks[0])), + [ + 2, + Si.ParserResult.success( + n, + 1 < e.dataBlocks.length + ? [ + "The input data contains multiple data blocks, only the first one was parsed. To parse all data blocks, use the function 'mmCIF.ofDataBlock' separately for each block.", + ] + : void 0, + ), + ] + ); + } + }); + }); + }); + }; + } + function Za(t, e, n) { + for (var r = [], i = 0; i < n; i++) r[i] = t(e + i); + return r; + } + function Xa(t, e, n, r) { + for ( + var i = new Float32Array(e[0] * e[1] * e[2]), + o = [0, 0, 0], + a = r[0], + s = r[1], + l = r[2], + u = n[0], + c = n[1], + A = n[2], + h = e[0], + p = e[0] * e[1], + d = 0, + f = t.getFloat(0), + g = f, + m = 0; + m < A; + m++ + ) { + o[2] = m; + for (var v = 0; v < c; v++) { + o[1] = v; + for (var b = 0; b < u; b++) { + o[0] = b; + var y = t.getFloat(d); + (d += 1), + (i[o[a] + o[s] * h + o[l] * p] = y) < f ? (f = y) : g < y && (g = y); + } + } + } + return { data: i, min: f, max: g }; + } + function $a() { + return $a.zero(); + } + function ts() { + var t = [0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + return (t[0] = 0), t; + } + function es(t) { + return ( + (t[0] = 1), + (t[1] = 0), + (t[2] = 0), + (t[3] = 0), + (t[4] = 0), + (t[5] = 1), + (t[6] = 0), + (t[7] = 0), + (t[8] = 0), + (t[9] = 0), + (t[10] = 1), + (t[11] = 0), + (t[12] = 0), + (t[13] = 0), + (t[14] = 0), + (t[15] = 1), + t + ); + } + function ns(t, e, n) { + var r = e[0], + i = e[1], + o = e[2], + a = e[3], + s = e[4], + l = e[5], + u = e[6], + c = e[7], + A = e[8], + h = e[9], + p = e[10], + d = e[11], + f = e[12], + g = e[13], + m = e[14], + e = e[15], + v = n[0], + b = n[1], + y = n[2], + w = n[3]; + return ( + (t[0] = v * r + b * s + y * A + w * f), + (t[1] = v * i + b * l + y * h + w * g), + (t[2] = v * o + b * u + y * p + w * m), + (t[3] = v * a + b * c + y * d + w * e), + (v = n[4]), + (b = n[5]), + (y = n[6]), + (w = n[7]), + (t[4] = v * r + b * s + y * A + w * f), + (t[5] = v * i + b * l + y * h + w * g), + (t[6] = v * o + b * u + y * p + w * m), + (t[7] = v * a + b * c + y * d + w * e), + (v = n[8]), + (b = n[9]), + (y = n[10]), + (w = n[11]), + (t[8] = v * r + b * s + y * A + w * f), + (t[9] = v * i + b * l + y * h + w * g), + (t[10] = v * o + b * u + y * p + w * m), + (t[11] = v * a + b * c + y * d + w * e), + (v = n[12]), + (b = n[13]), + (y = n[14]), + (w = n[15]), + (t[12] = v * r + b * s + y * A + w * f), + (t[13] = v * i + b * l + y * h + w * g), + (t[14] = v * o + b * u + y * p + w * m), + (t[15] = v * a + b * c + y * d + w * e), + t + ); + } + function rs(t, e, n) { + return rs.fromValues(t || 0, e || 0, n || 0); + } + function is() { + var t = [0.1, 0, 0]; + return (t[0] = 0), t; + } + function os(t, e, n) { + var r = is(); + return (r[0] = t), (r[1] = e), (r[2] = n), r; + } + function as(t, e, n, r) { + return (t[0] = e), (t[1] = n), (t[2] = r), t; + } + function ss(t, e) { + return (t[0] = e[0]), (t[1] = e[1]), (t[2] = e[2]), t; + } + function ls(t) { + var e = t[0], + n = t[1], + t = t[2]; + return e * e + n * n + t * t; + } + function us(t, e) { + var n = e[0], + r = e[1], + i = e[2], + n = n * n + r * r + i * i; + return ( + 0 < n && + ((n = 1 / Math.sqrt(n)), + (t[0] = e[0] * n), + (t[1] = e[1] * n), + (t[2] = e[2] * n)), + t + ); + } + function cs(t, e) { + return t[0] * e[0] + t[1] * e[1] + t[2] * e[2]; + } + function As(t, e, n) { + var r = e[0], + i = e[1], + e = e[2], + o = n[0], + a = n[1], + n = n[2]; + return (t[0] = i * n - e * a), (t[1] = e * o - r * n), (t[2] = r * a - i * o), t; + } + function hs(t, e) { + ss(Yi, t), ss(Oi, e), us(Yi, Yi), us(Oi, Oi); + t = cs(Yi, Oi); + return 1 < t ? 0 : t < -1 ? Math.PI : Math.acos(t); + } + function ps(t, e, n, r) { + return ps.fromValues(t || 0, e || 0, n || 0, r || 0); + } + function ds() { + var t = [0.1, 0, 0, 0]; + return (t[0] = 0), t; + } + function fs(t) { + if (!t.normals) { + for ( + var e = new Float32Array(t.vertices.length), + n = t.vertices, + r = t.triangleIndices, + i = ji.zero(), + o = ji.zero(), + a = ji.zero(), + s = ji.zero(), + l = ji.zero(), + u = ji.zero(), + c = 0; + c < r.length; + c += 3 + ) { + var A = 3 * r[c], + h = 3 * r[c + 1], + p = 3 * r[c + 2]; + ji.set(i, n[A], n[1 + A], n[2 + A]), + ji.set(o, n[h], n[1 + h], n[2 + h]), + ji.set(a, n[p], n[1 + p], n[2 + p]), + ji.sub(s, a, o), + ji.sub(l, o, i), + ji.cross(u, s, l), + (e[A] += u[0]), + (e[1 + A] += u[1]), + (e[2 + A] += u[2]), + (e[h] += u[0]), + (e[1 + h] += u[1]), + (e[2 + h] += u[2]), + (e[p] += u[0]), + (e[1 + p] += u[1]), + (e[2 + p] += u[2]); + } + for (c = 0; c < e.length; c += 3) { + var d = e[c], + f = e[c + 1], + g = e[c + 2], + d = 1 / Math.sqrt(d * d + f * f + g * g); + (e[c] *= d), (e[c + 1] *= d), (e[c + 2] *= d); + } + t.normals = e; + } + } + function gs(t, e, n, r) { + (n[3 * r] += t[3 * e]), + (n[3 * r + 1] += t[3 * e + 1]), + (n[3 * r + 2] += t[3 * e + 2]); + } + function ms(C, x, I, M) { + return D(this, void 0, void 0, function () { + var f, g, m, v, b, y, w, E, B; + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, C.updateProgress('Smoothing surface...', !0)]; + case 1: + for ( + t.sent(), + f = new Int32Array(x.vertexCount), + g = x.triangleIndices.length, + m = x.triangleIndices, + y = 0; + y < g; + y++ + ) + f[m[y]] += 2; + return ( + (v = new Float32Array(x.vertices.length)), + (b = zi.Utils.PerformanceMonitor.currentTime()), + [4, C.updateProgress('Smoothing surface...', !0)] + ); + case 2: + t.sent(), (y = 0), (t.label = 3); + case 3: + if (!(y < I)) return [3, 6]; + if (0 < y) for (w = 0, E = v.length; w < E; w++) v[w] = 0; + x.normals = void 0; + for ( + var e = x, + n = f, + r = v, + i = M, + o = e.triangleIndices.length, + a = e.vertices, + s = e.triangleIndices, + l = 0; + l < o; + l += 3 + ) { + var u = s[l], + c = s[l + 1], + A = s[l + 2]; + gs(a, c, r, u), + gs(a, A, r, u), + gs(a, u, r, c), + gs(a, A, r, c), + gs(a, u, r, A), + gs(a, c, r, A); + } + for (var h = 2 * i, l = 0, p = e.vertexCount; l < p; l++) { + var d = n[l] + h; + (r[3 * l] = (r[3 * l] + h * a[3 * l]) / d), + (r[3 * l + 1] = (r[3 * l + 1] + h * a[3 * l + 1]) / d), + (r[3 * l + 2] = (r[3 * l + 2] + h * a[3 * l + 2]) / d); + } + return ((B = x.vertices), + (x.vertices = v), + (v = B), + (B = zi.Utils.PerformanceMonitor.currentTime()) - b > + zi.Computation.UpdateProgressDelta) + ? ((b = B), [4, C.updateProgress('Smoothing surface...', !0, y + 1, I)]) + : [3, 5]; + case 4: + t.sent(), (t.label = 5); + case 5: + return y++, [3, 3]; + case 6: + return [2, x]; + } + }); + }); + } + function vs(t, e) { + for ( + var n = Hi.LinearAlgebra.Vector3.zero(), + r = Hi.LinearAlgebra.Vector3.transformMat4, + i = t.vertices, + o = 0, + a = t.vertices.length; + o < a; + o += 3 + ) + (n[0] = i[o]), + (n[1] = i[o + 1]), + (n[2] = i[o + 2]), + r(n, n, e), + (i[o] = n[0]), + (i[o + 1] = n[1]), + (i[o + 2] = n[2]); + (t.normals = void 0), (t.boundingSphere = void 0); + } + function bs(t, e, n) { + var r; + if (t.startIndex !== t.endIndex) + if (isNaN(t.splitValue)) + for ( + var i, + o, + a = t, + s = e, + l = s.pivot, + u = s.structure, + c = u.indices, + A = u.positions, + h = s.radiusSq, + p = a.startIndex; + p < a.endIndex; + p++ + ) + (o = 3 * c[p]), + (o = + (i = l[0] - A[o]) * i + + (i = l[1] - A[1 + o]) * i + + (i = l[2] - A[2 + o]) * i) <= h && Ji.QueryContext.add(s, o, c[p]); + else + (u = t), + (t = n), + (e = (n = e).pivot[t]), + ( + (r = e < u.splitValue) + ? e + n.radius > u.splitValue + : e - n.radius < u.splitValue + ) + ? (bs(u.left, n, (t + 1) % 3), bs(u.right, n, (t + 1) % 3)) + : bs(r ? u.left : u.right, n, (t + 1) % 3); + } + function ys(t) { + t.elements; + for ( + var e = t.positions, + n = t.bounds, + t = t.indices, + e = { + size: [ + 1 + ((n.max[0] - n.min[0]) >> 3), + 1 + ((n.max[1] - n.min[1]) >> 3), + 1 + ((n.max[2] - n.min[2]) >> 3), + ], + positions: e, + indices: t, + bounds: n, + }, + t = e.bounds, + n = e.size, + r = n[0], + i = n[1], + o = n[2], + a = e.positions, + s = r * i * o, + l = e.indices.length, + u = (n = t.min)[0], + c = n[1], + A = n[2], + h = 0, + p = new Uint32Array(s), + d = new Int32Array(l), + f = 0; + f < l; + f++ + ) { + var g = + (((a[3 * f + 0] - u) >> 3) * i + ((a[3 * f + 1] - c) >> 3)) * o + + ((a[3 * f + 2] - A) >> 3); + 1 === (p[g] += 1) && (h += 1), (d[f] = g); + } + for (var m = new Int32Array(h), f = 0, v = 0; f < s; f++) { + var b = p[f]; + 0 < b && ((p[f] = v + 1), (m[v] = b), (v += 1)); + } + for (var y = new Uint32Array(l), f = 1; f < l; ++f) y[f] += y[f - 1] + m[f - 1]; + for (var w = new Int32Array(h), E = new Int32Array(l), f = 0; f < l; f++) { + var B = p[d[f]]; + 0 < B && ((E[y[(B = B - 1)] + w[B]] = f), (w[B] += 1)); + } + return { + size: e.size, + bucketArray: E, + bucketCounts: m, + bucketOffset: y, + grid: p, + min: e.bounds.min, + positions: a, + }; + } + function ws(t, e) { + (this.ctx = e), + (this.minX = 0), + (this.minY = 0), + (this.minZ = 0), + (this.maxX = 0), + (this.maxY = 0), + (this.maxZ = 0); + e = $i.Utils.extend({}, t); + e.bottomLeft || (e.bottomLeft = [0, 0, 0]), + e.topRight || (e.topRight = e.scalarField.dimensions), + (this.state = new no(e)), + (this.minX = e.bottomLeft[0]), + (this.minY = e.bottomLeft[1]), + (this.minZ = e.bottomLeft[2]), + (this.maxX = e.topRight[0] - 1), + (this.maxY = e.topRight[1] - 1), + (this.maxZ = e.topRight[2] - 1), + (this.size = + (this.maxX - this.minX) * (this.maxY - this.minY) * (this.maxZ - this.minZ)), + (this.sliceSize = (this.maxX - this.minX) * (this.maxY - this.minY)); + } + function Es(t) { + (this.vertList = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), + (this.i = 0), + (this.j = 0), + (this.k = 0), + (this.nX = t.scalarField.dimensions[0]), + (this.nY = t.scalarField.dimensions[1]), + (this.nZ = t.scalarField.dimensions[2]), + (this.isoLevel = t.isoLevel), + (this.scalarField = t.scalarField), + (this.annotationField = t.annotationField); + var e = t.topRight[0] - t.bottomLeft[0], + n = t.topRight[1] - t.bottomLeft[1], + r = t.topRight[2] - t.bottomLeft[2], + e = Math.min(262144, 0 | Math.max((e * n * r) / 16, 1024)), + n = Math.min(65536, 4 * e); + (this.vertexBuffer = $i.Utils.ChunkedArray.forVertex3D(e)), + (this.triangleBuffer = $i.Utils.ChunkedArray.create( + function (t) { + return new Uint32Array(t); + }, + n, + 3, + )), + (this.annotate = !!t.annotationField), + this.annotate && (this.annotationBuffer = $i.Utils.ChunkedArray.forInt32(e)), + (this.verticesOnEdges = new Int32Array(3 * this.nX * this.nY * 2)); + } + function Bs(t, e) { + (this.inputParameters = t), + (this.ctx = e), + (this.minX = Number.MAX_VALUE), + (this.minY = Number.MAX_VALUE), + (this.minZ = Number.MAX_VALUE), + (this.maxX = -Number.MAX_VALUE), + (this.maxY = -Number.MAX_VALUE), + (this.maxZ = -Number.MAX_VALUE), + (this.nX = 0), + (this.nY = 0), + (this.nZ = 0), + (this.dX = 0.1), + (this.dY = 0.1), + (this.dZ = 0.1), + (this.field = new Float32Array(0)), + (this.distanceField = new Float32Array(0)), + (this.proximityMap = new Int32Array(0)), + (this.minIndex = { i: 0, j: 0, k: 0 }), + (this.maxIndex = { i: 0, j: 0, k: 0 }), + (this.parameters = new oo(t.parameters)); + e = t.positions; + (this.x = e.x), + (this.y = e.y), + (this.z = e.z), + (this.atomIndices = t.atomIndices), + 0.99 <= this.parameters.density + ? (this.vdwScaleFactor = 1.000000001) + : (this.vdwScaleFactor = + 1 - this.parameters.density * this.parameters.density + 1); + } + function Cs(n) { + var t = this; + return ro.computation(function (e) { + return D(t, void 0, void 0, function () { + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, new ao(n, e).run()]; + case 1: + return [2, t.sent()]; + } + }); + }); + }); + } + function xs(t) { + t = co[t]; + return void 0 === t ? -1 : t; + } + function Is(t) { + if (t < 0) return 2.001; + t = Ao[t]; + return void 0 === t ? 2.001 : t; + } + function Ms(t) { + return t === fo; + } + function Ds(t) { + t = co[t]; + return void 0 !== t && po.has(t); + } + function Ss(t, e, n) { + for ( + var r = t.data.bonds, + i = r.structConn, + U = r.component, + r = t.positions, + N = r.x, + P = r.y, + L = r.z, + r = t.data.atoms, + Y = r.elementSymbol, + O = r.residueIndex, + G = r.altLoc, + z = t.data.residues.name, + H = t.queryContext.lookup3d(), + o = lo.Utils.ChunkedArray.create( + function (t) { + return new Int32Array(t); + }, + (1.33 * e.length) | 0, + 1, + ), + a = lo.Utils.ChunkedArray.create( + function (t) { + return new Int32Array(t); + }, + (1.33 * e.length) | 0, + 1, + ), + s = lo.Utils.ChunkedArray.create( + function (t) { + return new Uint8Array(t); + }, + (1.33 * e.length) | 0, + 1, + ), + j = lo.Utils.Mask.ofIndices(t.data.atoms.count, e), + V = { model: t, mask: j, atomA: o, atomB: a, type: s }, + q = -1, + W = !1, + l = 0, + J = e; + l < J.length; + l++ + ) { + var u = J[l], + c = O[u]; + if (!n.forceCompute && c !== q && (W = !!U && U.entries.has(z[c]))) { + B = + E = + E = + x = + nt = + C = + w = + y = + b = + v = + et = + m = + g = + f = + v = + d = + tt = + $ = + d = + X = + Z = + K = + p = + h = + A = + d = + void 0; + for ( + var A = c, + h = (d = V).model, + p = d.mask, + K = d.atomA, + Z = d.atomB, + X = d.type, + $ = (d = h.data.residues).atomStartIndex, + tt = d.atomEndIndex, + d = d.name, + f = (v = h.data.atoms).name, + g = v.altLoc, + m = v.elementSymbol, + et = h.data.bonds.component.entries.get(d[A]).map, + v = $[A], + b = tt[A], + y = v; + y < b - 1; + y++ + ) + if (p.has(y)) { + var w = et.get(f[y]); + if (w) + for (var E, B, C = g[y], nt = Ds(m[y]), x = y + 1; x < b; x++) + p.has(x) && + ((E = g[x]), + (C && E && C !== E) || + (void 0 !== (E = w.get(f[x])) && + ((B = nt || Ds(m[x])), go(K, y), go(Z, x), go(X, B ? 6 : E)))); + } + } + for ( + var q = c, + I = xs(Y[u]), + h = H(N[u], P[u], L[u], 3), + rt = h.elements, + it = h.count, + ot = h.squaredDistances, + at = Ms(I), + st = Is(I), + lt = G[u], + ut = po.has(I), + ct = n.forceCompute ? void 0 : i && i.getAtomEntries(u), + M = 0; + M < it; + M++ + ) { + var D = rt[M]; + if (!(D <= u) && j.has(D)) { + var S = G[D]; + if (!lt || !S || lt === S) { + S = O[D]; + if (c !== S || !W) { + var S = xs(Y[D]), + k = Ms(S); + if (!at || !k) { + var F, + Q = Math.sqrt(ot[M]); + if (0 !== Q) { + if (ct) { + for (var _ = !1, T = 0, At = ct; T < At.length; T++) { + for ( + var ht = At[T], R = 0, pt = ht.partners; + R < pt.length; + R++ + ) + if (pt[R].atomIndex === D) { + go(o, u), go(a, D), go(s, ht.bondType), (_ = !0); + break; + } + if (_) break; + } + if (_) continue; + } + at || k + ? Q < n.maxHbondLength && (go(o, u), go(a, D), go(s, 1)) + : ((k = S), + (k = + 0 < + (F = + (F = I) < 0 || + k < 0 || + void 0 === + (k = + ho[ + (F = F) < (k = k) + ? ((F + k) * (F + k + 1)) / 2 + k + : ((F + k) * (F + k + 1)) / 2 + F + ]) + ? -1 + : k) + ? F + : S < 0 + ? st + : Math.max(st, Is(S))), + (F = po.has(S)), + Q <= k && (go(o, u), go(a, D), go(s, ut || F ? 6 : 1))); + } + } + } + } + } + } + } + r = lo.Utils.DataTable.builder(o.elementCount); + return ( + r.addRawColumn( + 'atomAIndex', + function (t) { + return new Int32Array(t); + }, + lo.Utils.ChunkedArray.compact(o), + ), + r.addRawColumn( + 'atomBIndex', + function (t) { + return new Int32Array(t); + }, + lo.Utils.ChunkedArray.compact(a), + ), + r.addRawColumn( + 'type', + function (t) { + return new Uint8Array(t); + }, + lo.Utils.ChunkedArray.compact(s), + ), + r.seal() + ); + } + function ks(t, e, n) { + return wo.distance(t, n.center) - (e + n.radius); + } + function Fs(t, e, n, r, i, o) { + return ( + (o[0] = n.x[e]), + (o[1] = n.y[e]), + (o[2] = n.z[e]), + wo.transformMat4(o, o, r), + ks(o, n.r[e], t) <= i + ); + } + function Qs(t, e, n) { + var r = n.x[t] - n.cX[e], + i = n.y[t] - n.cY[e], + t = n.z[t] - n.cZ[e]; + return r * r + i * i + t * t; + } + function _s(t, e, n) { + var r = n.x[t] - e[0], + i = n.y[t] - e[1], + n = n.z[t] - e[2]; + return r * r + i * i + n * n; + } + function Ts(t) { + return Rs(t.i, t.j, t.k, t.op, yo.clone(t.transform)); + } + function Rs(t, e, n, r, i) { + return { + isIdentity: !(t || e || n || r), + id: r + 1 + '_' + (5 + t) + (5 + e) + (5 + n), + transform: i, + }; + } + function Us(t) { + var e = t.boundingInfo, + n = t.spacegroup, + r = []; + (t.transform = yo.identity()), (r[0] = Ts(t)); + for (var i, o = -3; o <= 3; o++) + for (var a = -3; a <= 3; a++) + for (var s = -3; s <= 3; s++) + for ( + var l = 0 === o && 0 === a && 0 === s ? 1 : 0, u = n.operatorCount; + l < u; + l++ + ) + n.getOperatorMatrix(l, o, a, s, t.transform), + (t.i = o), + (t.k = s), + (t.j = a), + (t.op = l), + (i = e.allAtoms.center), + ks( + wo.transformMat4(t.transformed, i, t.transform), + e.allAtoms.radius, + e.target, + ) < t.radius && (r[r.length] = Ts(t)); + return r; + } + function Ns(t, e, n, r, i) { + for (var o = 0; o < i; o++) n[o][r] = t[o][e]; + } + function Ps(t, e, n) { + for ( + var U, + N, + P, + L, + r = t.data.residues, + i = r.chainIndex, + o = r.entityIndex, + Y = r.atomStartIndex, + O = r.atomEndIndex, + G = t.data.atoms, + r = t.positions, + z = r.x, + H = r.y, + j = r.z, + V = Eo.builder(e.atomCount), + a = [], + r = Eo.ofDefinition(vo.Tables.Positions, e.atomCount), + q = r.x, + W = r.y, + J = r.z, + s = t.data.entities.getBuilder(e.entityCount), + l = s, + u = t.data.entities.getRawData(), + K = l.getRawData(), + Z = l.chainStartIndex, + X = l.chainEndIndex, + $ = l.residueStartIndex, + tt = l.residueEndIndex, + et = l.atomStartIndex, + nt = l.atomEndIndex, + c = 0, + l = t.data.chains.getBuilder(e.chainCount), + A = l, + h = t.data.chains.getRawData(), + rt = A.getRawData(), + it = A.residueStartIndex, + p = A.residueEndIndex, + ot = A.atomStartIndex, + d = A.atomEndIndex, + f = A.asymId, + g = A.authAsymId, + at = A.entityIndex, + st = l.addColumn('sourceChainIndex', function (t) { + return new Int32Array(t); + }), + lt = l.addColumn('operatorIndex', function (t) { + return new Int32Array(t); + }), + m = 0, + A = t.data.residues.getBuilder(e.residues.length), + v = A, + ut = t.data.residues.getRawData(), + ct = v.getRawData(), + At = v.atomStartIndex, + ht = v.atomEndIndex, + pt = v.asymId, + dt = v.authAsymId, + ft = v.chainIndex, + gt = v.entityIndex, + b = 0, + mt = t.data.atoms.columns; + b < mt.length; + b++ + ) { + var y = mt[b], + w = V.addColumn(y.name, y.creator); + 'residueIndex' === y.name + ? (N = w) + : 'chainIndex' === y.name + ? (P = w) + : 'entityIndex' === y.name + ? (L = w) + : 'id' === y.name + ? (U = w) + : (a[a.length] = { src: G[y.name], target: w }); + } + var E, + B, + C = e.residues, + x = e.operators, + I = It.Geometry.LinearAlgebra.Vector3.zero(), + M = 0, + vt = i[(k = C[0])], + bt = o[k], + D = x[0]; + Ns(u, o[k], K, 0, u.length), + (et[($[(Z[0] = 0)] = 0)] = 0), + Ns(h, i[k], rt, 0, h.length), + (ot[(it[(at[0] = 0)] = 0)] = 0), + (E = t.data.chains.asymId[i[k]]), + (B = t.data.chains.authAsymId[i[k]]), + (Q = n[x[0]]) && + !Q.isIdentity && + ((f[m] = t.data.chains.asymId[i[k]] + '-' + Q.id), + (g[m] = t.data.chains.authAsymId[i[k]] + '-' + Q.id), + (st[m] = i[k]), + (lt[m] = D), + (E = f[m]), + (B = g[m])); + for (var S = 0, yt = C.length; S < yt; S++) { + var k = C[S], + F = x[S], + Q = n[F], + _ = (Ns(ut, k, ct, S, ct.length), o[k]), + T = i[k], + wt = !1; + _ !== bt + ? ((p[m] = S), + (d[m] = M), + (m += 1), + (X[c] = m), + (tt[c] = S), + (nt[c] = M), + Ns(u, _, K, (c += 1), u.length), + (Z[c] = m), + ($[c] = S), + (et[c] = M), + (wt = !0)) + : (T === vt && F === D) || ((p[m] = S), (d[m] = M), (m += 1), (wt = !0)), + wt && + (Ns(h, T, rt, m, h.length), + (at[m] = c), + (it[m] = S), + (ot[m] = M), + Q.isIdentity || + ((f[m] = t.data.chains.asymId[T] + '-' + Q.id), + (g[m] = t.data.chains.authAsymId[T] + '-' + Q.id)), + (st[m] = T), + (lt[m] = F), + (E = f[m]), + (B = g[m])), + (vt = T), + (bt = _), + (D = F), + (ft[S] = m), + (gt[S] = c), + (At[S] = M), + (pt[S] = E), + (dt[S] = B); + for (var R = Y[k], Et = O[k]; R < Et; R++) { + wo.set(I, z[R], H[R], j[R]), + wo.transformMat4(I, I, Q.transform), + (q[M] = I[0]), + (W[M] = I[1]), + (J[M] = I[2]), + (U[M] = M + 1), + (N[M] = S), + (P[M] = m), + (L[M] = c); + for (var Bt = 0, Ct = a; Bt < Ct.length; Bt++) + (w = Ct[Bt]).target[M] = w.src[R]; + M++; + } + ht[S] = M; + } + (X[c] = m + 1), (tt[c] = C.length), (nt[c] = M), (p[m] = C.length), (d[m] = M); + var v = V.seal(), + A = A.seal(), + l = l.seal(), + s = s.seal(), + xt = (function (t, e, n) { + var r = t.data.residues.secondaryStructureIndex, + i = t.data.secondaryStructure, + o = n.asymId, + a = n.seqNumber, + s = n.insCode, + l = n.secondaryStructureIndex, + u = e.residues, + c = e.operators, + A = u.length, + h = [], + p = 0; + for (; p < A; ) { + for (var d = p, f = r[u[p]], g = c[p]; d < A && c[d] == g && r[u[d]] == f; ) + d++; + for ( + var m = i[f], + m = new vo.SecondaryStructureElement( + m.type, + new vo.PolyResidueIdentifier(o[p], a[p], s[p]), + new vo.PolyResidueIdentifier(o[d - 1], a[d - 1], s[d - 1]), + m.info, + ), + v = ((m.startResidueIndex = p), (m.endResidueIndex = d), h.length), + b = p; + b < d; + b++ + ) + l[b] = v; + (h[v] = m), (p = d); + } + return h; + })(t, e, A), + e = t.data.bonds.structConn + ? (function (t, e, n, r, i, o) { + for ( + var t = t.entries, a = It.Utils.FastMap.create(), s = 0, l = e.length; + s < l; + s++ + ) + a.set(e[s].id, s); + for (var u = It.Utils.FastMap.create(), c = 0, A = t; c < A.length; c++) + for (var h = A[c], p = 0, d = h.partners; p < d.length; p++) { + var f = d[p]; + u.has(f.residueIndex) || + u.set(f.residueIndex, It.Utils.FastMap.create()); + } + for (s = 0, l = n.length; s < l; s++) { + var g = n[s]; + u.has(g) && u.get(g).set(r[s], s); + } + for ( + var m = i.atomStartIndex, v = o.atomStartIndex, b = [], y = 0, w = t; + y < w.length; + y++ + ) { + for (var h = w[y], E = !0, B = 0, C = h.partners; B < C.length; B++) + if ('1_555' !== (f = C[B]).symmetry) { + E = !1; + break; + } + if (E) + for (var x = 0, I = e.length; x < I; x++) + !(function (n) { + for (var t = !0, e = 0, r = h.partners; e < r.length; e++) { + var i = r[e]; + if (!u.get(i.residueIndex).has(n)) { + t = !1; + break; + } + } + if (!t) return; + b.push({ + bondType: h.bondType, + distance: h.distance, + partners: h.partners.map(function (t) { + var e = u.get(t.residueIndex).get(n); + return { + residueIndex: e, + atomIndex: v[e] + (t.atomIndex - m[t.residueIndex]), + symmetry: t.symmetry, + }; + }), + }); + })(x); + else { + for (var M = [], D = 0, S = h.partners; D < S.length; D++) { + f = S[D]; + if (!a.has(f.symmetry)) break; + var k = a.get(f.symmetry), + F = u.get(f.residueIndex); + if (!F.has(k)) break; + F = F.get(k); + M.push({ + residueIndex: F, + atomIndex: v[F] + (f.atomIndex - m[f.residueIndex]), + symmetry: f.symmetry, + }); + } + M.length === h.partners.length && + b.push({ bondType: h.bondType, distance: h.distance, partners: M }); + } + } + return new vo.StructConn(b); + })(t.data.bonds.structConn, n, e.residues, e.operators, t.data.residues, A) + : void 0; + return vo.Molecule.Model.create({ + id: t.id, + modelId: t.modelId, + data: { + atoms: v, + residues: A, + chains: l, + entities: s, + bonds: { structConn: e, component: t.data.bonds.component }, + secondaryStructure: xt, + }, + positions: r, + parent: t, + source: vo.Molecule.Model.Source.Computed, + operators: n.map(function (t) { + return new vo.Operator(t.transform, t.id, t.isIdentity); + }), + }); + } + function Ls(t, e) { + for ( + var n = (function (t, e) { + for ( + var n = t.x, r = t.y, i = t.z, o = wo.zero(), a = 0, s = e; + a < s.length; + a++ + ) { + var l = s[a]; + (o[0] += n[l]), (o[1] += r[l]), (o[2] += i[l]); + } + for ( + var u = 0 < e.length ? e.length : 1, + c = ((o[0] /= u), (o[1] /= u), (o[2] /= u), 0), + A = 0, + h = e; + A < h.length; + A++ + ) + (l = h[A]), (c = Math.max(_s(l, o, t), c)); + return { center: o, radius: Math.sqrt(c) }; + })(t.positions, t.positions.indices), + r = new vo.Spacegroup(t.data.symmetryInfo), + i = yo.zero(), + o = wo.zero(), + a = [], + s = -3; + s <= 3; + s++ + ) + for (var l = -3; l <= 3; l++) + for (var u = -3; u <= 3; u++) + for (var c, A = 0; A < r.operatorCount; A++) + r.getOperatorMatrix(A, s, l, u, i), + wo.transformMat4(o, n.center, i), + ks(o, n.radius, n) > e || + ((c = yo.zero()), yo.copy(c, i), a.push(Rs(s, l, u, A, c))); + return a; + } + function Ys(t, e, n) { + for ( + var r = t.data.assemblyInfo, i = [], o = n, a = 0, s = e; + a < s.length; + a++ + ) { + for (var l = s[a], u = yo.identity(), c = 0; c < l.length; c++) + yo.mul(u, u, r.operators[l[c]].operator); + o++, + (i[i.length] = (function (t, e) { + for (var n = !0, r = 0; r < 4; r++) { + for (var i = 0; i < 4; i++) { + var o = e[4 * i + r]; + if (r === i) { + if (1e-7 < Math.abs(o - 1)) { + n = !1; + break; + } + } else if (1e-7 < Math.abs(o)) { + n = !1; + break; + } + } + if (!n) break; + } + return { isIdentity: n, id: t.toString(), transform: e }; + })(o, u)); + } + return i; + } + function Os(t, e, n) { + for (var r = [], i = [], o = 0; o < e.operators.length; o++) i[o] = ''; + !(function t(e, n, r, i) { + if (r < 0) n[n.length] = i.slice(0); + else + for (var o = e[r], a = o.length, s = 0; s < a; s++) + (i[r] = o[s]), t(e, n, r - 1, i); + })(e.operators, r, e.operators.length - 1, i); + for ( + var a = n.transforms.length, + r = Ys(t, r, n.transforms.length), + s = ((h = n.transforms).push.apply(h, r), It.Utils.FastSet.create()), + l = + (e.asymIds.forEach(function (t) { + return s.add(t); + }), + t.data.residues.asymId), + u = t.data.residues.count, + c = n.mask, + A = 0; + A < u; + A++ + ) + c[A] = s.has(l[A]); + for ( + var h = t, + p = c, + d = r, + t = n, + f = a, + g = (h = h.data).chains, + m = h.entities, + v = h.residues, + b = t.residueIndices, + y = t.operatorIndices, + w = 0, + E = 0, + B = 0, + C = 0, + x = m.count; + C < x; + C++ + ) { + for (var I = f, M = !1, D = 0, S = d; D < S.length; D++) { + S[D]; + for (var k = m.chainStartIndex[C], F = m.chainEndIndex[C]; k < F; k++) { + for ( + var Q = !1, _ = g.residueStartIndex[k], T = g.residueEndIndex[k]; + _ < T; + _++ + ) + p[_] && + (It.Utils.ChunkedArray.add(b, _), + It.Utils.ChunkedArray.add(y, I), + (w += v.atomEndIndex[_] - v.atomStartIndex[_]), + (Q = !0)); + Q && ((E += 1), (M = !0)); + } + I++; + } + M && B++; + } + (t.atomCount += w), (t.chainCount += E), (t.entityCount += B); + } + function Gs(t) { + if ('undefined' == typeof window) + throw 'parse can only be called from a browser.'; + (0, eval)( + 'with (LiteMol.Core.Structure.Query) { window.__LiteMol_query = ' + t + '; }', + ); + t = window.__LiteMol_query; + return (window.__LiteMol_query = void 0), t.compile(); + } + function zs() { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + return i.build(function () { + return o.compileAtomRanges(!1, t, function (t) { + return t.data.residues; + }); + }); + } + function Hs() { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + return i.build(function () { + return o.compileAtomRanges(!1, t, function (t) { + return t.data.chains; + }); + }); + } + function js() { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + return i.build(function () { + return o.compileAtomRanges(!1, t, function (t) { + return t.data.entities; + }); + }); + } + function Vs() { + return i.build(function () { + return o.compileHetGroups(); + }); + } + function qs() { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + return i.build(function () { + return o.compileOr(t); + }); + } + function Ws(t) { + return i.build(function () { + return o.compileComplement(t); + }); + } + function Js(t, e) { + return i.build(function () { + return o.compileAmbientResidues(t, e); + }); + } + function Ks(t) { + return i.build(function () { + return o.compileWholeResidues(t); + }); + } + function Zs(t) { + return i.build(function () { + return o.compileUnion(t); + }); + } + function Xs(t, e) { + return i.build(function () { + return o.compileInside(t, e); + }); + } + function $s(t, e) { + return i.build(function () { + return o.compileIntersectWith(t, e); + }); + } + function tl(t, e) { + return i.build(function () { + return o.compileFlatten(t, e); + }); + } + function el(t, e) { + return i.build(function () { + return o.compileExcept(t, e); + }); + } + function nl(t, e) { + this.columns = []; + for (var n = 0, r = Object.keys(t); n < r.length; n++) { + var i = r[n]; + void 0 !== t[i] && e[i] && this.columns.push({ value: t[i], array: e[i] }); + } + } + function rl(i) { + return function (n, r) { + return function (t, e) { + return i(n(t, e), r(t, e)); + }; + }; + } + function il(i) { + return function (n, r) { + return function (t, e) { + return i(n(t, e), r(t, e)); + }; + }; + } + function ol(n, r, i) { + return function (t, e) { + t = t.structure; + return i(r(t))[n(t.data.atoms)[e]]; + }; + } + function al(t, e, n) { + return ( + n < 0 && (n += 1), + 1 < n && --n, + n < 1 / 6 + ? t + 6 * (e - t) * n + : n < 0.5 + ? e + : n < 2 / 3 + ? t + (e - t) * (2 / 3 - n) * 6 + : t + ); + } + function sl(t) { + return { + r: ((t >> 16) & 255) / 255, + g: ((t >> 8) & 255) / 255, + b: (255 & t) / 255, + }; + } + function ll(t) { + this.pallete = t; + } + function ul(t) { + (this.pallete = t), + (this.colorIndex = 0), + (this.colorMap = Fo.Core.Utils.FastMap.create()); + } + function cl(t, e) { + (this.map = t), (this.fallbackColor = e); + } + function Al(t, e) { + (this.renderState = t), + (this.domElement = e), + (this.position = { x: 0, y: 0 }), + (this.lastPosition = { x: 0, y: 0 }), + (this.isDirty = !0), + (this.rect = { left: 0, top: 0, right: 0, bottom: 0 }), + (this.exactPosition = { x: 0, y: 0 }), + (this.isInside = !1), + (this.isButtonDown = !1); + } + function hl() { + this.lights = []; + } + function pl(t, e) { + void 0 === e && (e = {}); + function n() { + (r.renderState.resizing = !0), i(); + } + var r = this, + i = + ((this.renderState = new Ho()), + (this.pickInfo = new Oo.Selection.Pick()), + (this.unbindEvents = []), + (this.models = new Oo.ModelStore(this)), + (this.events = new Oo.THREE.EventDispatcher()), + (this.initialResizeTimeout = void 0), + (this.clearHighlightsCall = function () { + return r.clearHighlights(!0); + }), + (this.renderFunc = function (t) { + return r.render(t); + }), + (this.pickBuffer = new Uint8Array(4)), + (e = Yo.Core.Utils.extend({}, e, Oo.DefaultSceneOptions)), + (this.options = e), + (this.parentElement = t), + (this.scene = new Oo.THREE.Scene()), + (this.pickScene = new Oo.THREE.Scene()), + (this.pickTarget = new Oo.THREE.WebGLRenderTarget(1, 1, { + format: Oo.THREE.RGBAFormat, + minFilter: Oo.THREE.LinearFilter, + })), + (this.pickTarget.generateMipmaps = !1), + (this.renderer = new Oo.THREE.WebGLRenderer({ + antialias: !0, + alpha: e.alpha, + preserveDrawingBuffer: !0, + })), + this.renderer.setPixelRatio(window.devicePixelRatio || 1), + this.renderer.setClearColor( + new Oo.THREE.Color(e.clearColor.r, e.clearColor.g, e.clearColor.b), + ), + (this.renderer.autoClear = !0), + (this.renderer.sortObjects = !1), + (this.mouseInfo = new Go(this.renderState, this.renderer.domElement)), + (this.lighting = new zo()), + this.lighting.setup(this.scene), + this.parentElement.appendChild(this.renderer.domElement), + Yo.Core.Utils.debounce(function () { + return r.handleResize(); + }, 150)); + window.addEventListener('resize', n), + document.addEventListener('resize', n), + this.parentElement.addEventListener('resize', n), + this.unbindEvents.push(function () { + return window.removeEventListener('resize', n); + }), + this.unbindEvents.push(function () { + return document.removeEventListener('resize', n); + }), + this.unbindEvents.push(function () { + return r.parentElement.removeEventListener('resize', n); + }), + this.setupMouse(), + (this.camera = new Oo.Camera(this, this.renderer.domElement)), + this.handleResize(), + this.renderer.clear(), + this.needsRender(), + (this.renderState.animationFrame = requestAnimationFrame(this.renderFunc)), + (this.initialResizeTimeout = setTimeout(function () { + (r.initialResizeTimeout = void 0), r.handleResize(); + }, 1e3)); + } + function dl(t, e, n, r) { + for (var i = ta, o = 0, a = e.length; o < a; o += 3) + (i[0] = e[o]), + (i[1] = e[o + 1]), + (i[2] = e[o + 2]), + Xo.transformMat4(i, i, t), + r(n, i[0], i[1], i[2]); + } + function fl(t, e, n, r, i) { + $o.fromScaling(ea, n || aa), + $o.fromTranslation(na, r || sa), + i ? $o.copy(ra, i) : $o.fromIdentity(ra), + $o.mul3(ia, na, ra, ea); + (n = t.vertices.elementCount), (r = 'Static' === t.type ? Zo : Jo); + if ((dl(ia, e.vertices, t.vertices, r), t.normals)) { + if (!e.normals) throw new Error('geom is missing normals.'); + $o.mul(oa, ra, ea), dl(oa, e.normals, t.normals, r); + } + if (2 === t.elementSize) + for ( + var o = n, + a = e.indices, + s = t.indices, + l = 'Static' === t.type ? Ko : Wo, + u = 0, + c = a.length; + u < c; + u += 2 + ) + l(s, a[u] + o, a[u + 1] + o); + else + for ( + var A = n, + h = e.indices, + p = t.indices, + d = 'Static' === t.type ? Zo : Jo, + f = 0, + g = h.length; + f < g; + f += 3 + ) + d(p, h[f] + A, h[f + 1] + A, h[f + 2] + A); + } + function gl() { + if (!la) { + la = Vo.GeometryHelper.toRawGeometry(new Vo.THREE.BoxGeometry(1, 1, 1)); + for (var t = 0; t < la.vertices.length; t += 3) la.vertices[t] += 0.5; + } + return la; + } + function ml(t) { + return t.array; + } + function vl(t) { + return da.compact(t); + } + (t.ParserSuccess = Ta), + ((r = t.TokenIndexBuilder || (t.TokenIndexBuilder = {})).addToken = function ( + t, + e, + n, + ) { + var r, i; + t.count >= t.tokensLenMinus2 && + ((r = t), + (i = new Int32Array(Math.round(1.61 * r.tokens.length))).set(r.tokens), + (r.tokens = i), + (r.tokensLenMinus2 = i.length - 2)), + (t.tokens[t.count++] = e), + (t.tokens[t.count++] = n); + }), + (r.create = function (t) { + return { + tokensLenMinus2: Math.round(t) - 2, + count: 0, + tokens: new Int32Array(t), + }; + }), + ((r = t.ShortStringPool || (t.ShortStringPool = {})).create = function () { + return Object.create(null); + }), + (r.get = function (t, e) { + if (!(6 < e.length)) { + var n = t[e]; + if (void 0 !== n) return n; + t[e] = e; + } + return e; + }), + (e = F = F || {}), + (e = + (e = + (e = (nt = e.Core || (e.Core = {})).Formats || (nt.Formats = {})).Molecule || + (e.Molecule = {})).mmCIF || (e.mmCIF = {})), + ((t = mi = mi || {}).ElementSymbol = 'X'), + (t.ResidueName = 'UNK'), + (t.AsymId = ''), + (t.EntityId = '1'), + (t.ModelId = '1'), + (vi = [ + 'id', + 'Cartn_x', + 'Cartn_y', + 'Cartn_z', + 'label_atom_id', + 'type_symbol', + 'occupancy', + 'B_iso_or_equiv', + 'auth_atom_id', + 'label_alt_id', + 'label_comp_id', + 'label_seq_id', + 'label_asym_id', + 'auth_comp_id', + 'auth_seq_id', + 'auth_asym_id', + 'group_PDB', + 'label_entity_id', + 'pdbx_PDB_ins_code', + 'pdbx_PDB_model_num', + ]), + (bi = { + ALA: !0, + ARG: !0, + ASP: !0, + CYS: !0, + GLN: !0, + GLU: !0, + GLY: !0, + HIS: !0, + ILE: !0, + LEU: !0, + LYS: !0, + MET: !0, + PHE: !0, + PRO: !0, + SER: !0, + THR: !0, + TRP: !0, + TYR: !0, + VAL: !0, + ASN: !0, + PYL: !0, + SEC: !0, + }), + (e.ofDataBlock = function (t) { + var e = [], + n = t.getCategory('_atom_site'), + r = 0; + if (!n) throw "'_atom_site' category is missing in the input."; + for ( + var i = t.getCategory('_entry'), + o = (function (t) { + for ( + var e = nt.Utils.FastMap.create(), n = 0, r = vi; + n < r.length; + n++ + ) { + var i = r[n]; + e.set(i, t.getColumn(i)); + } + return e; + })(n), + i = + i && i.getColumn('id').isDefined + ? i.getColumn('id').getString(0) + : t.header; + r < n.rowCount; + + ) { + var a = ja(r, t, o), + s = a.model, + a = a.endRow; + e.push(s), (r = a); + } + var l = void 0, + u = t.getCategory('_exptl'); + if (u) + for (var l = [], c = u.getColumn('method'), A = 0; A < u.rowCount; A++) + 0 === c.getValuePresence(A) && l.push(c.getString(A)); + return nt.Structure.Molecule.create(i, e, { experimentMethods: l }); + }), + (r = F = F || {}), + (yi = r.Core || (r.Core = {})), + (wi = yi.Formats || (yi.Formats = {})), + (function (o) { + function t(t, e, n, r) { + (this.header = t), (this.crystInfo = e), (this.models = n), (this.data = r); + } + (t.prototype.makeEntities = function () { + var t = [ + 'data_ent', + 'loop_', + '_entity.id', + '_entity.type', + '_entity.src_method', + '_entity.pdbx_description', + '_entity.formula_weight', + '_entity.pdbx_number_of_molecules', + '_entity.details', + '_entity.pdbx_mutation', + '_entity.pdbx_fragment', + '_entity.pdbx_ec', + '1 polymer man polymer 0.0 0 ? ? ? ?', + '2 non-polymer syn non-polymer 0.0 0 ? ? ? ?', + '3 water nat water 0.0 0 ? ? ? ?', + ].join('\n'), + t = wi.CIF.Text.parse(t); + if (t.isError) throw t.toString(); + return t.result.dataBlocks[0].getCategory('_entity'); + }), + (t.prototype.toCifFile = function () { + var t, + e, + n = { + dot: o.Parser.getDotRange(this.data.length), + question: o.Parser.getQuestionmarkRange(this.data.length), + numberTokens: o.Parser.getNumberRanges(this.data.length), + data: this.data, + }, + r = new wi.CIF.Text.File(this.data), + i = new wi.CIF.Text.DataBlock(this.data, this.header.id); + return ( + r.dataBlocks.push(i), + i.addCategory(this.makeEntities()), + this.crystInfo && + ((t = (e = this.crystInfo.toCifCategory(this.header.id)).cell), + (e = e.symm), + i.addCategory(t), + i.addCategory(e)), + i.addCategory(this.models.toCifCategory(i, n)), + r + ); + }), + (o.MoleculeData = t); + (o.Header = function (t) { + this.id = t; + }), + (n.prototype.getValue = function (t, e) { + var n = this.record.substr(6, 9).trim(); + return n.length ? n : '.'; + }), + (n.prototype.toCifCategory = function (t) { + (t = [ + "_cell.entry_id '" + t + "'", + '_cell.length_a ' + this.getValue(6, 9), + '_cell.length_b ' + this.getValue(15, 9), + '_cell.length_c ' + this.getValue(24, 9), + '_cell.angle_alpha ' + this.getValue(33, 7), + '_cell.angle_beta ' + this.getValue(40, 7), + '_cell.angle_gamma ' + this.getValue(48, 7), + '_cell.Z_PDB ' + this.getValue(66, 4), + '_cell.pdbx_unique_axis ?', + "_symmetry.entry_id '" + t + "'", + "_symmetry.space_group_name_H-M '" + + this.getValue(55, 11) + + "'", + '_symmetry.pdbx_full_space_group_name_H-M ?', + '_symmetry.cell_setting ?', + '_symmetry.Int_Tables_number ?', + '_symmetry.space_group_name_Hall ?', + ].join('\n')), + (t = wi.CIF.Text.parse(t)); + if (t.isError) throw new Error(t.toString()); + return { + cell: t.result.dataBlocks[0].getCategory('_cell'), + symm: t.result.dataBlocks[0].getCategory('_symmetry'), + }; + }); + var e = n; + function n(t) { + this.record = t; + } + function r(t, e) { + (this.helixTokens = t), (this.sheetTokens = e); + } + (o.CrystStructureInfo = e), + (r.prototype.toCifCategory = function (t) {}), + (o.SecondaryStructure = r); + (i.prototype.writeToken = function (t, e) { + yi.Utils.ArrayBuilder.add2( + e, + this.atomTokens[2 * t], + this.atomTokens[2 * t + 1], + ); + }), + (i.prototype.writeTokenCond = function (t, e, n) { + var r = this.atomTokens[2 * t], + t = this.atomTokens[2 * t + 1]; + r === t + ? yi.Utils.ArrayBuilder.add2(e, n.start, n.end) + : yi.Utils.ArrayBuilder.add2(e, r, t); + }), + (i.prototype.writeRange = function (t, e) { + yi.Utils.ArrayBuilder.add2(e, t.start, t.end); + }), + (i.prototype.tokenEquals = function (t, e, n, r) { + if (n.length !== e - t) return !1; + for (var i = n.length - 1; 0 <= i; i--) + if (r.charCodeAt(i + t) !== n.charCodeAt(i)) return !1; + return !0; + }), + (i.prototype.getEntityType = function (t, e) { + var n, + t = 14 * t; + return this.tokenEquals( + this.atomTokens[2 * t], + this.atomTokens[2 * t + 1], + 'HETATM', + e, + ) + ? ((n = this.atomTokens[2 * (4 + t)]), + (t = this.atomTokens[2 * (4 + t) + 1]), + this.tokenEquals(n, t, 'HOH', e) || + this.tokenEquals(n, t, 'WTR', e) || + this.tokenEquals(n, t, 'SOL', e) + ? 3 + : 2) + : 1; + }), + (i.prototype.writeCifTokens = function (t, e, n) { + for ( + var r = 0, + i = 1, + o = 2, + a = 3, + s = 4, + l = 5, + u = 6, + c = 7, + A = 8, + h = 9, + p = 10, + d = 11, + f = 12, + g = 13, + m = 0; + m < this.atomCount; + m++ + ) { + var v = 14 * m; + this.writeToken(v + r, e), + this.writeToken(v + i, e), + this.writeToken(v + g, e), + this.writeToken(v + o, e), + this.writeTokenCond(v + a, e, n.dot), + this.writeToken(v + s, e), + this.writeToken(v + l, e), + this.writeRange(n.numberTokens.get(this.getEntityType(m, n.data)), e), + this.writeToken(v + u, e), + this.writeTokenCond(v + c, e, n.dot), + this.writeToken(v + A, e), + this.writeToken(v + h, e), + this.writeToken(v + p, e), + this.writeToken(v + d, e), + this.writeToken(v + f, e), + this.writeRange(n.question, e), + this.writeRange(n.question, e), + this.writeRange(n.question, e), + this.writeRange(n.question, e), + this.writeRange(n.question, e), + this.writeRange(n.question, e), + this.writeToken(v + u, e), + this.writeToken(v + s, e), + this.writeToken(v + l, e), + this.writeToken(v + o, e), + this.writeRange(t, e); + } + }), + (i.COLUMNS = [ + '_atom_site.group_PDB', + '_atom_site.id', + '_atom_site.type_symbol', + '_atom_site.label_atom_id', + '_atom_site.label_alt_id', + '_atom_site.label_comp_id', + '_atom_site.label_asym_id', + '_atom_site.label_entity_id', + '_atom_site.label_seq_id', + '_atom_site.pdbx_PDB_ins_code', + '_atom_site.Cartn_x', + '_atom_site.Cartn_y', + '_atom_site.Cartn_z', + '_atom_site.occupancy', + '_atom_site.B_iso_or_equiv', + '_atom_site.Cartn_x_esd', + '_atom_site.Cartn_y_esd', + '_atom_site.Cartn_z_esd', + '_atom_site.occupancy_esd', + '_atom_site.B_iso_or_equiv_esd', + '_atom_site.pdbx_formal_charge', + '_atom_site.auth_seq_id', + '_atom_site.auth_comp_id', + '_atom_site.auth_asym_id', + '_atom_site.auth_atom_id', + '_atom_site.pdbx_PDB_model_num', + ]); + var u = i; + function i(t, e, n) { + (this.idToken = t), (this.atomTokens = e), (this.atomCount = n); + } + function a(t) { + this.models = t; + } + (o.ModelData = u), + (a.prototype.toCifCategory = function (t, e) { + for (var n = 0, r = 0, i = this.models; r < i.length; r++) + n += (o = i[r]).atomCount; + for ( + var o, + a = yi.Utils.ArrayBuilder.forTokenIndices(26 * n), + s = 0, + l = this.models; + s < l.length; + s++ + ) + (o = l[s]).writeCifTokens(o.idToken, a, e); + return new wi.CIF.Text.Category( + t.data, + '_atom_site', + 0, + 0, + u.COLUMNS, + a.array, + 26 * n, + ); + }), + (o.ModelsData = a); + })((r = wi.Molecule || (wi.Molecule = {})).PDB || (r.PDB = {})), + (t = F = F || {}), + (Ei = t.Core || (t.Core = {})), + (d = Ei.Formats || (Ei.Formats = {})), + (t = d.Molecule || (d.Molecule = {})), + (Bi = t.PDB || (t.PDB = {})), + (Va.prototype.moveToNextLine = function () { + for ( + ; + this.position < this.length && 10 !== this.data.charCodeAt(this.position); + + ) + this.position++; + return this.position++, this.line++, this.position; + }), + (Va.prototype.moveToEndOfLine = function () { + for (; this.position < this.length; ) { + var t = this.data.charCodeAt(this.position); + if (10 === t || 13 === t) return this.position; + this.position++; + } + return this.position; + }), + (Va.prototype.startsWith = function (t, e) { + for (var n = e.length - 1; 0 <= n; n--) + if (this.data.charCodeAt(n + t) !== e.charCodeAt(n)) return !1; + return !0; + }), + (Va.prototype.trim = function (t, e) { + for (; t < e && 32 === this.data.charCodeAt(t); ) t++; + for (; t < e && 32 === this.data.charCodeAt(e - 1); ) e--; + (this.trimmedToken.start = t), (this.trimmedToken.end = e); + }), + (Va.prototype.tokenizeAtomRecord = function (t) { + var e = this.position, + n = this.position, + r = this.moveToEndOfLine() - n; + return ( + !(r < 60) && + (this.trim(n, n + 6), + d.TokenIndexBuilder.addToken( + t, + this.trimmedToken.start, + this.trimmedToken.end, + ), + this.trim((n = e + 6), n + 5), + d.TokenIndexBuilder.addToken( + t, + this.trimmedToken.start, + this.trimmedToken.end, + ), + this.trim((n = e + 12), n + 4), + d.TokenIndexBuilder.addToken( + t, + this.trimmedToken.start, + this.trimmedToken.end, + ), + 32 === this.data.charCodeAt(e + 16) + ? d.TokenIndexBuilder.addToken(t, 0, 0) + : d.TokenIndexBuilder.addToken(t, e + 16, e + 17), + this.trim((n = e + 17), n + 3), + d.TokenIndexBuilder.addToken( + t, + this.trimmedToken.start, + this.trimmedToken.end, + ), + d.TokenIndexBuilder.addToken(t, e + 21, e + 22), + this.trim((n = e + 22), n + 4), + d.TokenIndexBuilder.addToken( + t, + this.trimmedToken.start, + this.trimmedToken.end, + ), + 32 === this.data.charCodeAt(e + 26) + ? d.TokenIndexBuilder.addToken(t, 0, 0) + : d.TokenIndexBuilder.addToken(t, e + 26, e + 27), + this.trim((n = e + 30), n + 8), + d.TokenIndexBuilder.addToken( + t, + this.trimmedToken.start, + this.trimmedToken.end, + ), + this.trim((n = e + 38), n + 8), + d.TokenIndexBuilder.addToken( + t, + this.trimmedToken.start, + this.trimmedToken.end, + ), + this.trim((n = e + 46), n + 8), + d.TokenIndexBuilder.addToken( + t, + this.trimmedToken.start, + this.trimmedToken.end, + ), + this.trim((n = e + 54), n + 6), + d.TokenIndexBuilder.addToken( + t, + this.trimmedToken.start, + this.trimmedToken.end, + ), + 66 <= r + ? (this.trim((n = e + 60), n + 6), + d.TokenIndexBuilder.addToken( + t, + this.trimmedToken.start, + this.trimmedToken.end, + )) + : d.TokenIndexBuilder.addToken(t, 0, 0), + 78 <= r + ? (this.trim((n = e + 76), n + 2), + this.trimmedToken.start < this.trimmedToken.end + ? d.TokenIndexBuilder.addToken( + t, + this.trimmedToken.start, + this.trimmedToken.end, + ) + : d.TokenIndexBuilder.addToken(t, e + 12, e + 13)) + : d.TokenIndexBuilder.addToken(t, e + 12, e + 13), + !0) + ); + }), + (Ci = Va), + (qa.tokenizeAtom = function (t, e) { + if (!e.tokenizeAtomRecord(t)) + return new d.ParserError('Invalid ATOM/HETATM record.', e.line); + }), + (qa.tokenize = function (t, e) { + for ( + var n = new Ci(e), + r = e.length, + i = d.TokenIndexBuilder.create(4096), + o = 0, + a = [], + s = void 0, + l = { start: 0, end: 0 }; + n.position < r; + + ) { + var u, + c, + A = !0; + switch (e.charCodeAt(n.position)) { + case 65: + if (n.startsWith(n.position, 'ATOM')) { + var h, + i = i || d.TokenIndexBuilder.create(4096); + if ((o++, (h = qa.tokenizeAtom(i, n)))) return h; + } + break; + case 67: + n.startsWith(n.position, 'CRYST1') && + ((u = n.position), + (c = n.moveToEndOfLine()), + (s = new Bi.CrystStructureInfo(e.substring(u, c)))); + break; + case 69: + n.startsWith(n.position, 'ENDMDL') && 0 < o + ? (0 === a.length && (l = { start: e.length + 3, end: e.length + 4 }), + i && a.push(new Bi.ModelData(l, i.tokens, o)), + (o = 0), + (i = null)) + : n.startsWith(n.position, 'END') && + ((u = n.position), + (c = n.moveToEndOfLine()), + n.trim(u, c), + n.trimmedToken.end - n.trimmedToken.start == 3 && (A = !1)); + break; + case 72: + if (n.startsWith(n.position, 'HETATM')) + if ( + ((i = i || d.TokenIndexBuilder.create(4096)), + o++, + (h = qa.tokenizeAtom(i, n))) + ) + return h; + break; + case 77: + n.startsWith(n.position, 'MODEL') && + (0 < o && + (0 === a.length && (l = { start: e.length + 3, end: e.length + 4 }), + i && a.push(new Bi.ModelData(l, i.tokens, o))), + (u = n.position + 6), + (c = n.moveToEndOfLine()), + n.trim(u, c), + (l = { start: n.trimmedToken.start, end: n.trimmedToken.end }), + (0 < o || !i) && (i = d.TokenIndexBuilder.create(4096)), + (o = 0)); + } + if ((n.moveToNextLine(), !A)) break; + } + var p = e + '.?0123'; + return ( + 0 < o && + (0 === a.length && (l = { start: e.length + 3, end: e.length + 4 }), + i && a.push(new Bi.ModelData(l, i.tokens, o))), + new Bi.MoleculeData(new Bi.Header(t), s, new Bi.ModelsData(a), p) + ); + }), + (qa.getDotRange = function (t) { + return { start: t - 6, end: t - 5 }; + }), + (qa.getNumberRanges = function (t) { + for (var e = Ei.Utils.FastMap.create(), n = 0; n < 4; n++) + e.set(n, { start: t - 4 + n, end: t - 3 + n }); + return e; + }), + (qa.getQuestionmarkRange = function (t) { + return { start: t - 5, end: t - 4 }; + }), + (qa.parse = function (t, e) { + t = qa.tokenize(t, e); + return t instanceof d.ParserError + ? d.ParserResult.error(t.message, t.line) + : d.ParserResult.success(t.toCifFile()); + }), + (xi = qa), + (Bi.Parser = xi), + (Bi.toCifFile = function (t, e) { + return xi.parse(t, e); + }), + (e = F = F || {}), + (Ii = e.Core || (e.Core = {})), + (Mi = Ii.Formats || (Ii.Formats = {})), + (((e = Mi.Molecule || (Mi.Molecule = {})).SDF || (e.SDF = {})).parse = function ( + t, + e, + ) { + try { + (A = e), + (h = (c = (c = t).split(/\r?\n/g))[0].trim()).length || (h = 'SDF'), + (p = +(d = c[3]).substr(0, 3)), + (d = +d.substr(3, 3)); + var n = { + id: A || h, + atomCount: p, + bondCount: d, + atoms: Ii.Utils.DataTable.ofDefinition(Ii.Structure.Tables.Atoms, p), + positions: Ii.Utils.DataTable.ofDefinition( + Ii.Structure.Tables.Positions, + p, + ), + bonds: Ii.Utils.DataTable.ofDefinition(Ii.Structure.Tables.Bonds, d), + lines: c, + currentLine: 4, + error: void 0, + stringPool: Mi.ShortStringPool.create(), + }, + r = + (Wa(n), + Ja(n), + (o = n), + (a = Ii.Utils.DataTable.ofDefinition(Ii.Structure.Tables.Residues, 1)), + (s = Ii.Utils.DataTable.ofDefinition(Ii.Structure.Tables.Chains, 1)), + (l = Ii.Utils.DataTable.ofDefinition(Ii.Structure.Tables.Entities, 1)), + (a.isHet[0] = 1), + (a.insCode[0] = null), + (a.name[0] = a.authName[0] = 'UNK'), + (a.atomEndIndex[0] = s.atomEndIndex[0] = l.atomEndIndex[0] = o.atomCount), + (a.asymId[0] = a.authAsymId[0] = s.asymId[0] = s.authAsymId[0] = 'X'), + (a.entityId[0] = s.entityId[0] = l.entityId[0] = '1'), + (s.residueEndIndex[0] = l.residueEndIndex[0] = 0), + (l.chainEndIndex[0] = 1), + (l.type[0] = 'non-polymer'), + (u = new Ii.Structure.PolyResidueIdentifier('X', 0, null)), + ((u = [ + new Ii.Structure.SecondaryStructureElement(0, u, u), + ])[0].startResidueIndex = 0), + (u[0].endResidueIndex = 1), + Ii.Structure.Molecule.Model.create({ + id: o.id, + modelId: '1', + data: { + atoms: o.atoms, + residues: a, + chains: s, + entities: l, + bonds: { input: o.bonds }, + secondaryStructure: u, + symmetryInfo: void 0, + assemblyInfo: void 0, + }, + positions: o.positions, + source: Ii.Structure.Molecule.Model.Source.File, + })); + if (n.error) return Mi.ParserResult.error(n.error, n.currentLine + 1); + var i = Ii.Structure.Molecule.create(e || n.id, [r]); + return Mi.ParserResult.success(i); + } catch (t) { + return Mi.ParserResult.error('' + t); + } + var o, a, s, l, u, c, A, h, p, d; + }), + (r = F = F || {}), + (Di = r.Core || (r.Core = {})), + (Si = Di.Formats || (Di.Formats = {})), + (function (t) { + var e = this; + (t.mmCIF = { + name: 'mmCIF', + shortcuts: ['mmcif', 'cif'], + extensions: ['.cif'], + parse: Ka('CIF', Si.CIF.Text.parse), + }), + (t.mmBCIF = { + name: 'mmCIF (Binary)', + shortcuts: ['mmbcif', 'bcif', 'binarycif'], + extensions: ['.bcif'], + isBinary: !0, + parse: Ka('BinaryCIF', Si.CIF.Binary.parse), + }), + (t.PDB = { + name: 'PDB', + shortcuts: ['pdb', 'ent'], + extensions: ['.pdb', '.ent'], + parse: Ka('PDB', function (t, e) { + return ki.PDB.toCifFile((e && e.id) || 'PDB', t); + }), + }), + (t.SDF = { + name: 'SDF', + shortcuts: ['sdf', 'mol'], + extensions: ['.sdf', '.mol'], + parse: function (r, i) { + return Di.computation(function (n) { + return D(e, void 0, void 0, function () { + var e; + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, n.updateProgress('Parsing...')]; + case 1: + if ( + (t.sent(), + (e = ki.SDF.parse(r, (i && i.id) || void 0)).isError) + ) + throw e.toString(); + return [2, Si.ParserResult.success(e.result)]; + } + }); + }); + }); + }, + }), + (t.All = [t.mmCIF, t.mmBCIF, t.PDB, t.SDF]); + })( + (ki = Si.Molecule || (Si.Molecule = {})).SupportedFormats || + (ki.SupportedFormats = {}), + ), + (function (t) { + function e(t, e) { + (this.data = t), + (this.dimensions = e), + (this.len = this.dimensions[0] * this.dimensions[1] * this.dimensions[2]), + (this.nX = this.dimensions[0]), + (this.nY = this.dimensions[1]); + } + Object.defineProperty(e.prototype, 'length', { + get: function () { + return this.len; + }, + enumerable: !0, + configurable: !0, + }), + (e.prototype.getAt = function (t) { + return this.data[t]; + }), + (e.prototype.setAt = function (t, e) { + this.data[t] = e; + }), + (e.prototype.get = function (t, e, n) { + return this.data[(this.nX * (n * this.nY + e) + t) | 0]; + }), + (e.prototype.set = function (t, e, n, r) { + this.data[(this.nX * (n * this.nY + e) + t) | 0] = r; + }), + (e.prototype.fill = function (t) { + for (var e = this.data, n = t, r = e.length, i = 0; i < r; i++) e[i] = n; + }), + (t.Field3DZYX = e), + (t.createSpacegroup = function (t, e, n) { + var r = (Math.PI / 180) * n[0], + i = (Math.PI / 180) * n[1], + o = (Math.PI / 180) * n[2], + a = e[0], + s = e[1], + l = e[2], + u = Math.cos(i), + r = (Math.cos(r) - Math.cos(i) * Math.cos(o)) / Math.sin(o), + i = Math.sqrt(1 - u * u - r * r); + return { + number: t, + size: e, + angles: n, + basis: { + x: [a, 0, 0], + y: [Math.cos(o) * s, Math.sin(o) * s, 0], + z: [u * l, r * l, i * l], + }, + }; + }); + })( + (t = (t = (t = F = F || {}).Core || (t.Core = {})).Formats || (t.Formats = {})) + .Density || (t.Density = {}), + ), + (e = (e = F = F || {}).Core || (e.Core = {})), + (Fi = e.Formats || (e.Formats = {})), + (((Qi = Fi.Density || (Fi.Density = {})).CCP4 || (Qi.CCP4 = {})).parse = + function (t) { + return _i.parse(t); + }), + ((_i || (_i = {})).parse = function (t) { + var e = new DataView(t, 0, 1024), + n = [], + r = !1, + i = e.getInt32(12, !1); + if (2 !== i && ((r = !0), 2 !== (i = e.getInt32(12, !0)))) + return Fi.ParserResult.error('Only CCP4 mode 2 is supported.'); + function o(t) { + return e.getInt32(4 * t, r); + } + function a(t) { + return e.getFloat32(4 * t, r); + } + i = { + extent: Za(o, 0, 3), + mode: i, + nxyzStart: Za(o, 4, 3), + grid: Za(o, 7, 3), + cellSize: Za(a, 10, 3), + cellAngles: Za(a, 13, 3), + crs2xyz: Za(o, 16, 3), + min: a(19), + max: a(20), + mean: a(21), + spacegroupNumber: o(22), + symBytes: o(23), + skewFlag: o(24), + skewMatrix: Za(a, 25, 9), + skewTranslation: Za(a, 34, 3), + origin2k: Za(a, 49, 3), + }; + if ( + (c = t.byteLength - 4 * i.extent[0] * i.extent[1] * i.extent[2]) !== + 1024 + i.symBytes + ) + if (1024 === c) n.push('File contains bogus symmetry record.'); + else { + if (c < 1024) + return Fi.ParserResult.error( + "File appears truncated and doesn't match header.", + ); + if (!(1024 < c && c < 1048576)) + return Fi.ParserResult.error( + "File is MUCH larger than expected and doesn't match header.", + ); + (c = 1024 + i.symBytes), + n.push( + "File is larger than expected and doesn't match header. Continuing file load, good luck!", + ); + } + 0 === i.grid[0] && + 0 < i.extent[0] && + ((i.grid[0] = i.extent[0] - 1), n.push('Fixed X interval count.')), + 0 === i.grid[1] && + 0 < i.extent[1] && + ((i.grid[1] = i.extent[1] - 1), n.push('Fixed Y interval count.')), + 0 === i.grid[2] && + 0 < i.extent[2] && + ((i.grid[2] = i.extent[2] - 1), n.push('Fixed Z interval count.')), + 0 === i.crs2xyz[0] && + 0 === i.crs2xyz[1] && + 0 === i.crs2xyz[2] && + (n.push('All crs2xyz records are zero. Setting crs2xyz to 1, 2, 3.'), + (i.crs2xyz = [1, 2, 3])), + 0 === i.cellSize[0] && + 0 === i.cellSize[1] && + 0 === i.cellSize[2] && + (n.push( + 'Cell dimensions are all zero. Setting to 1.0, 1.0, 1.0. Map file will not align with other structures.', + ), + (i.cellSize[0] = 1), + (i.cellSize[1] = 1), + (i.cellSize[2] = 1)); + ((c = [0, 0, 0])[i.crs2xyz[0] - 1] = 0), + (c[i.crs2xyz[1] - 1] = 1), + (c[i.crs2xyz[2] - 1] = 2), + (s = + 0 === i.origin2k[0] && 0 === i.origin2k[1] && 0 === i.origin2k[2] + ? [i.nxyzStart[c[0]], i.nxyzStart[c[1]], i.nxyzStart[c[2]]] + : [i.origin2k[c[0]], i.origin2k[c[1]], i.origin2k[c[2]]]); + var s, + l = [i.extent[c[0]], i.extent[c[1]], i.extent[c[2]]], + u = 13330 === new Uint16Array(new Uint8Array([18, 52]).buffer)[0], + u = + r === u + ? (function (t, e, n, r, i) { + var o, + a, + s, + l, + u, + c, + A, + h, + p = new Float32Array(e[0] * e[1] * e[2]), + d = [0, 0, 0], + f = 0, + g = 0.1, + m = 0, + v = 0.1, + b = r[0], + y = r[1], + w = r[2]; + for ( + o = n[0], a = n[1], s = n[2], A = e[0], h = e[0] * e[1], c = 0; + c < s; + c++ + ) + for (d[2] = c, u = 0; u < a; u++) + for (d[1] = u, l = 0; l < o; l++) + (d[0] = l), + (g = t[f]), + (m += (v = g - i) * v), + (p[d[b] + d[y] * A + d[w] * h] = g), + (f += 1); + return (m /= o * a * s), (m = Math.sqrt(m)), { data: p, sigma: m }; + })( + new Float32Array(t, 1024 + i.symBytes, l[0] * l[1] * l[2]), + l, + i.extent, + c, + i.mean, + ) + : (function (t, e, n, r, i, o) { + var a, + s, + l, + u, + c, + A, + h, + p, + d = new Float32Array(n[0] * n[1] * n[2]), + f = [0, 0, 0], + g = 0, + m = 0.1, + v = 0, + b = 0.1, + y = i[0], + w = i[1], + E = i[2]; + for ( + a = r[0], s = r[1], l = r[2], h = n[0], p = n[0] * n[1], A = 0; + A < l; + A++ + ) + for (f[2] = A, c = 0; c < s; c++) + for (f[1] = c, u = 0; u < a; u++) + (f[0] = u), + (m = t.getFloat32(g, e)), + (v += (b = m - o) * b), + (d[f[y] + f[w] * h + f[E] * p] = m), + (g += 4); + return (v /= a * s * l), (v = Math.sqrt(v)), { data: d, sigma: v }; + })(new DataView(t, 1024 + i.symBytes), r, l, i.extent, c, i.mean), + t = new Qi.Field3DZYX(u.data, l), + c = { + spacegroup: Qi.createSpacegroup( + i.spacegroupNumber, + i.cellSize, + i.cellAngles, + ), + box: { + origin: [s[0] / i.grid[0], s[1] / i.grid[1], s[2] / i.grid[2]], + dimensions: [l[0] / i.grid[0], l[1] / i.grid[1], l[2] / i.grid[2]], + sampleCount: l, + }, + data: t, + valuesInfo: { min: i.min, max: i.max, mean: i.mean, sigma: u.sigma }, + }; + return Fi.ParserResult.success(c, n); + }), + (r = (r = F = F || {}).Core || (r.Core = {})), + (Ti = r.Formats || (r.Formats = {})), + (((Ri = Ti.Density || (Ti.Density = {})).CIF || (Ri.CIF = {})).parse = function ( + t, + ) { + return t.getCategory('_density_info') + ? Ui.parseLegacy(t) + : t.getCategory('_volume_data_3d_info') + ? Ui.parse(t) + : Ti.ParserResult.error('Invalid data format.'); + }), + ((r = Ui = Ui || {}).parse = function (t) { + var r = t.getCategory('_volume_data_3d_info'); + if (!r) + return Ti.ParserResult.error('_volume_data_3d_info category is missing.'); + if (!t.getCategory('_volume_data_3d')) + return Ti.ParserResult.error('_volume_data_3d category is missing.'); + function e(t) { + for (var e = [0, 0, 0], n = 0; n < 3; n++) + e[n] = r.getColumn(t + '[' + n + ']').getFloat(0); + return e; + } + function n(t) { + return r.getColumn(t).getFloat(0); + } + var i = { + name: r.getColumn('name').getString(0), + axisOrder: e('axis_order'), + origin: e('origin'), + dimensions: e('dimensions'), + sampleCount: e('sample_count'), + spacegroupNumber: 0 | n('spacegroup_number'), + cellSize: e('spacegroup_cell_size'), + cellAngles: e('spacegroup_cell_angles'), + mean: n('mean_sampled'), + sigma: n('sigma_sampled'), + }, + o = [0, 0, 0]; + function a(t) { + return [t[o[0]], t[o[1]], t[o[2]]]; + } + (o[i.axisOrder[0]] = 0), (o[i.axisOrder[1]] = 1), (o[i.axisOrder[2]] = 2); + var s = a(i.sampleCount), + t = Xa( + t.getCategory('_volume_data_3d').getColumn('values'), + s, + i.sampleCount, + o, + ), + l = new Ri.Field3DZYX(t.data, s), + s = { + name: i.name, + spacegroup: Ri.createSpacegroup( + i.spacegroupNumber, + i.cellSize, + i.cellAngles, + ), + box: { origin: a(i.origin), dimensions: a(i.dimensions), sampleCount: s }, + data: l, + valuesInfo: { min: t.min, max: t.max, mean: i.mean, sigma: i.sigma }, + }; + return Ti.ParserResult.success(s); + }), + (r.parseLegacy = function (t) { + var r = t.getCategory('_density_info'); + if (!r) return Ti.ParserResult.error('_density_info category is missing.'); + if (!t.getCategory('_density_data')) + return Ti.ParserResult.error('_density_data category is missing.'); + function e(t) { + for (var e = [], n = 0; n < 3; n++) + e[n] = r.getColumn(t + '[' + n + ']').getFloat(0); + return e; + } + function n(t) { + return r.getColumn(t).getFloat(0); + } + var i = { + name: r.getColumn('name').getString(0), + grid: e('grid'), + axisOrder: e('axis_order'), + extent: e('extent'), + origin: e('origin'), + cellSize: e('cell_size'), + cellAngles: e('cell_angles'), + mean: n('mean'), + sigma: n('sigma'), + spacegroupNumber: 0 | n('spacegroup_number'), + }, + o = + (((s = [0, 0, 0])[i.axisOrder[0]] = 0), + (s[i.axisOrder[1]] = 1), + (s[i.axisOrder[2]] = 2), + [i.origin[s[0]], i.origin[s[1]], i.origin[s[2]]]), + a = [i.extent[s[0]], i.extent[s[1]], i.extent[s[2]]], + t = Xa(t.getCategory('_density_data').getColumn('values'), a, i.extent, s), + s = new Ri.Field3DZYX(t.data, a), + o = { + name: i.name, + spacegroup: Ri.createSpacegroup( + i.spacegroupNumber, + i.cellSize, + i.cellAngles, + ), + box: { + origin: [o[0] / i.grid[0], o[1] / i.grid[1], o[2] / i.grid[2]], + dimensions: [a[0] / i.grid[0], a[1] / i.grid[1], a[2] / i.grid[2]], + sampleCount: a, + }, + data: s, + valuesInfo: { min: t.min, max: t.max, mean: i.mean, sigma: i.sigma }, + }; + return Ti.ParserResult.success(o); + }), + (t = F = F || {}), + (t = (Ni = t.Core || (t.Core = {})).Formats || (Ni.Formats = {})), + ((t = + (Pi = t.Density || (t.Density = {})).SupportedFormats || + (Pi.SupportedFormats = {})).CCP4 = { + name: 'CCP4', + shortcuts: ['ccp4', 'map'], + extensions: ['.ccp4', '.map'], + isBinary: !0, + parse: function (t) { + return (function (n, r, i) { + var t = this; + return Ni.computation(function (e) { + return D(t, void 0, void 0, function () { + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, e.updateProgress('Parsing ' + r + '...')]; + case 1: + return t.sent(), [2, i(n)]; + } + }); + }); + }); + })(t, 'CCP4', function (t) { + return Pi.CCP4.parse(t); + }); + }, + }), + (t.All = [t.CCP4]), + ((e = + (e = + (e = (e = F = F || {}).Core || (e.Core = {})).Geometry || (e.Geometry = {})) + .LinearAlgebra || (e.LinearAlgebra = {})).Matrix4 = $a), + ((Li = $a = e.Matrix4 || (e.Matrix4 = {})).zero = ts), + (Li.identity = function () { + var t = ts(); + return ( + (t[0] = 1), + (t[1] = 0), + (t[2] = 0), + (t[3] = 0), + (t[4] = 0), + (t[5] = 1), + (t[6] = 0), + (t[7] = 0), + (t[8] = 0), + (t[9] = 0), + (t[10] = 1), + (t[11] = 0), + (t[12] = 0), + (t[13] = 0), + (t[14] = 0), + (t[15] = 1), + t + ); + }), + (Li.fromIdentity = es), + (Li.ofRows = function (t) { + for (var e, n, r = ts(), i = 0; i < 4; i++) + for (n = t[i], e = 0; e < 4; e++) r[4 * e + i] = n[e]; + return r; + }), + (Li.areEqual = function (t, e, n) { + for (var r = 0; r < 16; r++) if (Math.abs(t[r] - e[r]) > n) return !1; + return !0; + }), + (Li.setValue = function (t, e, n, r) { + t[4 * n + e] = r; + }), + (Li.copy = function (t, e) { + return ( + (t[0] = e[0]), + (t[1] = e[1]), + (t[2] = e[2]), + (t[3] = e[3]), + (t[4] = e[4]), + (t[5] = e[5]), + (t[6] = e[6]), + (t[7] = e[7]), + (t[8] = e[8]), + (t[9] = e[9]), + (t[10] = e[10]), + (t[11] = e[11]), + (t[12] = e[12]), + (t[13] = e[13]), + (t[14] = e[14]), + (t[15] = e[15]), + t + ); + }), + (Li.clone = function (t) { + return Li.copy(Li.zero(), t); + }), + (Li.invert = function (t, e) { + var n = e[0], + r = e[1], + i = e[2], + o = e[3], + a = e[4], + s = e[5], + l = e[6], + u = e[7], + c = e[8], + A = e[9], + h = e[10], + p = e[11], + d = e[12], + f = e[13], + g = e[14], + e = e[15], + m = n * s - r * a, + v = n * l - i * a, + b = n * u - o * a, + y = r * l - i * s, + w = r * u - o * s, + E = i * u - o * l, + B = c * f - A * d, + C = c * g - h * d, + x = c * e - p * d, + I = A * g - h * f, + M = A * e - p * f, + D = h * e - p * g, + S = m * D - v * M + b * I + y * x - w * C + E * B; + return S + ? ((t[0] = (s * D - l * M + u * I) * (S = 1 / S)), + (t[1] = (i * M - r * D - o * I) * S), + (t[2] = (f * E - g * w + e * y) * S), + (t[3] = (h * w - A * E - p * y) * S), + (t[4] = (l * x - a * D - u * C) * S), + (t[5] = (n * D - i * x + o * C) * S), + (t[6] = (g * b - d * E - e * v) * S), + (t[7] = (c * E - h * b + p * v) * S), + (t[8] = (a * M - s * x + u * B) * S), + (t[9] = (r * x - n * M - o * B) * S), + (t[10] = (d * w - f * b + e * m) * S), + (t[11] = (A * b - c * w - p * m) * S), + (t[12] = (s * C - a * I - l * B) * S), + (t[13] = (n * I - r * C + i * B) * S), + (t[14] = (f * v - d * y - g * m) * S), + (t[15] = (c * y - A * v + h * m) * S), + t) + : null; + }), + (Li.mul = ns), + (Li.mul3 = function (t, e, n, r) { + return ns(t, ns(t, e, n), r); + }), + (Li.translate = function (t, e, n) { + var r, + i, + o, + a, + s, + l, + u, + c, + A, + h, + p, + d, + f = n[0], + g = n[1], + n = n[2]; + return ( + e === t + ? ((t[12] = e[0] * f + e[4] * g + e[8] * n + e[12]), + (t[13] = e[1] * f + e[5] * g + e[9] * n + e[13]), + (t[14] = e[2] * f + e[6] * g + e[10] * n + e[14]), + (t[15] = e[3] * f + e[7] * g + e[11] * n + e[15])) + : ((r = e[0]), + (i = e[1]), + (o = e[2]), + (a = e[3]), + (s = e[4]), + (l = e[5]), + (u = e[6]), + (c = e[7]), + (A = e[8]), + (h = e[9]), + (p = e[10]), + (d = e[11]), + (t[0] = r), + (t[1] = i), + (t[2] = o), + (t[3] = a), + (t[4] = s), + (t[5] = l), + (t[6] = u), + (t[7] = c), + (t[8] = A), + (t[9] = h), + (t[10] = p), + (t[11] = d), + (t[12] = r * f + s * g + A * n + e[12]), + (t[13] = i * f + l * g + h * n + e[13]), + (t[14] = o * f + u * g + p * n + e[14]), + (t[15] = a * f + c * g + d * n + e[15])), + t + ); + }), + (Li.fromTranslation = function (t, e) { + return ( + (t[0] = 1), + (t[1] = 0), + (t[2] = 0), + (t[3] = 0), + (t[4] = 0), + (t[5] = 1), + (t[6] = 0), + (t[7] = 0), + (t[8] = 0), + (t[9] = 0), + (t[10] = 1), + (t[11] = 0), + (t[12] = e[0]), + (t[13] = e[1]), + (t[14] = e[2]), + (t[15] = 1), + t + ); + }), + (Li.rotate = function (t, e, n, r) { + var i, + o, + a, + s, + l, + u, + c, + A, + h, + p, + d, + f, + g, + m, + v, + b, + y, + w, + E, + B, + C = r[0], + x = r[1], + r = r[2], + I = Math.sqrt(C * C + x * x + r * r); + return Math.abs(I) < 1e-6 + ? null + : ((C *= I = 1 / I), + (x *= I), + (r *= I), + (I = Math.sin(n)), + (n = Math.cos(n)), + (o = e[0]), + (a = e[1]), + (s = e[2]), + (l = e[3]), + (u = e[4]), + (c = e[5]), + (A = e[6]), + (h = e[7]), + (p = e[8]), + (d = e[9]), + (f = e[10]), + (g = e[11]), + (v = C * x * (i = 1 - n) - r * I), + (b = x * x * i + n), + (y = r * x * i + C * I), + (w = C * r * i + x * I), + (E = x * r * i - C * I), + (B = r * r * i + n), + (t[0] = + o * (n = C * C * i + n) + + u * (m = x * C * i + r * I) + + p * (r = r * C * i - x * I)), + (t[1] = a * n + c * m + d * r), + (t[2] = s * n + A * m + f * r), + (t[3] = l * n + h * m + g * r), + (t[4] = o * v + u * b + p * y), + (t[5] = a * v + c * b + d * y), + (t[6] = s * v + A * b + f * y), + (t[7] = l * v + h * b + g * y), + (t[8] = o * w + u * E + p * B), + (t[9] = a * w + c * E + d * B), + (t[10] = s * w + A * E + f * B), + (t[11] = l * w + h * E + g * B), + e !== t && + ((t[12] = e[12]), (t[13] = e[13]), (t[14] = e[14]), (t[15] = e[15])), + t); + }), + (Li.fromRotation = function (t, e, n) { + var r, + i = n[0], + o = n[1], + n = n[2], + a = Math.sqrt(i * i + o * o + n * n); + return Math.abs(a) < 1e-6 + ? es(t) + : ((i *= a = 1 / a), + (o *= a), + (n *= a), + (a = Math.sin(e)), + (e = Math.cos(e)), + (t[0] = i * i * (r = 1 - e) + e), + (t[1] = o * i * r + n * a), + (t[2] = n * i * r - o * a), + (t[3] = 0), + (t[4] = i * o * r - n * a), + (t[5] = o * o * r + e), + (t[6] = n * o * r + i * a), + (t[7] = 0), + (t[8] = i * n * r + o * a), + (t[9] = o * n * r - i * a), + (t[10] = n * n * r + e), + (t[11] = 0), + (t[12] = 0), + (t[13] = 0), + (t[14] = 0), + (t[15] = 1), + t); + }), + (Li.scale = function (t, e, n) { + var r = n[0], + i = n[1], + n = n[2]; + return ( + (t[0] = e[0] * r), + (t[1] = e[1] * r), + (t[2] = e[2] * r), + (t[3] = e[3] * r), + (t[4] = e[4] * i), + (t[5] = e[5] * i), + (t[6] = e[6] * i), + (t[7] = e[7] * i), + (t[8] = e[8] * n), + (t[9] = e[9] * n), + (t[10] = e[10] * n), + (t[11] = e[11] * n), + (t[12] = e[12]), + (t[13] = e[13]), + (t[14] = e[14]), + (t[15] = e[15]), + t + ); + }), + (Li.fromScaling = function (t, e) { + return ( + (t[0] = e[0]), + (t[1] = 0), + (t[2] = 0), + (t[3] = 0), + (t[4] = 0), + (t[5] = e[1]), + (t[6] = 0), + (t[7] = 0), + (t[8] = 0), + (t[9] = 0), + (t[10] = e[2]), + (t[11] = 0), + (t[12] = 0), + (t[13] = 0), + (t[14] = 0), + (t[15] = 1), + t + ); + }), + (Li.makeTable = function (t) { + for (var e = '', n = 0; n < 4; n++) { + for (var r = 0; r < 4; r++) + (e += t[4 * r + n].toString()), r < 3 && (e += ' '); + n < 3 && (e += '\n'); + } + return e; + }), + (Li.determinant = function (t) { + var e = t[0], + n = t[1], + r = t[2], + i = t[3], + o = t[4], + a = t[5], + s = t[6], + l = t[7], + u = t[8], + c = t[9], + A = t[10], + h = t[11], + p = t[12], + d = t[13], + f = t[14], + t = t[15]; + return ( + (e * a - n * o) * (A * t - h * f) - + (e * s - r * o) * (c * t - h * d) + + (e * l - i * o) * (c * f - A * d) + + (n * s - r * a) * (u * t - h * p) - + (n * l - i * a) * (u * f - A * p) + + (r * l - i * s) * (u * d - c * p) + ); + }), + (e.Vector3 = rs), + ((r = rs = e.Vector3 || (e.Vector3 = {})).zero = is), + (r.clone = function (t) { + var e = is(); + return (e[0] = t[0]), (e[1] = t[1]), (e[2] = t[2]), e; + }), + (r.fromObj = function (t) { + return os(t.x, t.y, t.z); + }), + (r.toObj = function (t) { + return { x: t[0], y: t[1], z: t[2] }; + }), + (r.fromValues = os), + (r.set = as), + (r.copy = ss), + (r.add = function (t, e, n) { + return (t[0] = e[0] + n[0]), (t[1] = e[1] + n[1]), (t[2] = e[2] + n[2]), t; + }), + (r.sub = function (t, e, n) { + return (t[0] = e[0] - n[0]), (t[1] = e[1] - n[1]), (t[2] = e[2] - n[2]), t; + }), + (r.scale = function (t, e, n) { + return (t[0] = e[0] * n), (t[1] = e[1] * n), (t[2] = e[2] * n), t; + }), + (r.scaleAndAdd = function (t, e, n, r) { + return ( + (t[0] = e[0] + n[0] * r), + (t[1] = e[1] + n[1] * r), + (t[2] = e[2] + n[2] * r), + t + ); + }), + (r.distance = function (t, e) { + var n = e[0] - t[0], + r = e[1] - t[1], + e = e[2] - t[2]; + return Math.sqrt(n * n + r * r + e * e); + }), + (r.squaredDistance = function (t, e) { + var n = e[0] - t[0], + r = e[1] - t[1], + e = e[2] - t[2]; + return n * n + r * r + e * e; + }), + (r.magnitude = function (t) { + var e = t[0], + n = t[1], + t = t[2]; + return Math.sqrt(e * e + n * n + t * t); + }), + (r.squaredMagnitude = ls), + (r.normalize = us), + (r.dot = cs), + (r.cross = As), + (r.lerp = function (t, e, n, r) { + var i = e[0], + o = e[1], + e = e[2]; + return ( + (t[0] = i + r * (n[0] - i)), + (t[1] = o + r * (n[1] - o)), + (t[2] = e + r * (n[2] - e)), + t + ); + }), + (r.transformMat4 = function (t, e, n) { + var r = e[0], + i = e[1], + e = e[2], + o = n[3] * r + n[7] * i + n[11] * e + n[15]; + return ( + (t[0] = (n[0] * r + n[4] * i + n[8] * e + n[12]) / (o = o || 1)), + (t[1] = (n[1] * r + n[5] * i + n[9] * e + n[13]) / o), + (t[2] = (n[2] * r + n[6] * i + n[10] * e + n[14]) / o), + t + ); + }), + (Yi = is()), + (Oi = is()), + (r.angle = hs), + (Gi = is()), + (r.makeRotation = function (t, e, n) { + var r = hs(e, n); + return Math.abs(r) < 1e-4 + ? $a.fromIdentity(t) + : (ls((e = As(Gi, e, n))) < 1e-4 && + (Math.abs(Yi[0] - 1) < 1e-6 ? as(e, 0, 1, 0) : as(e, 1, 0, 0)), + $a.fromRotation(t, r, e)); + }), + (e.Vector4 = ps), + ((r = ps = e.Vector4 || (e.Vector4 = {})).zero = ds), + (r.clone = function (t) { + var e = ds(); + return (e[0] = t[0]), (e[1] = t[1]), (e[2] = t[2]), (e[3] = t[3]), e; + }), + (r.fromValues = function (t, e, n, r) { + var i = ds(); + return (i[0] = t), (i[1] = e), (i[2] = n), (i[3] = r), i; + }), + (r.set = function (t, e, n, r, i) { + return (t[0] = e), (t[1] = n), (t[2] = r), (t[3] = i), t; + }), + (r.distance = function (t, e) { + var n = e[0] - t[0], + r = e[1] - t[1], + i = e[2] - t[2], + e = e[3] - t[3]; + return Math.sqrt(n * n + r * r + i * i + e * e); + }), + (r.squaredDistance = function (t, e) { + var n = e[0] - t[0], + r = e[1] - t[1], + i = e[2] - t[2], + e = e[3] - t[3]; + return n * n + r * r + i * i + e * e; + }), + (r.norm = function (t) { + var e = t[0], + n = t[1], + r = t[2], + t = t[3]; + return Math.sqrt(e * e + n * n + r * r + t * t); + }), + (r.squaredNorm = function (t) { + var e = t[0], + n = t[1], + r = t[2], + t = t[3]; + return e * e + n * n + r * r + t * t; + }), + (r.transform = function (t, e, n) { + var r = e[0], + i = e[1], + o = e[2], + e = e[3]; + return ( + (t[0] = n[0] * r + n[4] * i + n[8] * o + n[12] * e), + (t[1] = n[1] * r + n[5] * i + n[9] * o + n[13] * e), + (t[2] = n[2] * r + n[6] * i + n[10] * o + n[14] * e), + (t[3] = n[3] * r + n[7] * i + n[11] * o + n[15] * e), + t + ); + }), + (t = F = F || {}), + (zi = t.Core || (t.Core = {})), + (Hi = zi.Geometry || (zi.Geometry = {})), + (t = Hi.Surface || (Hi.Surface = {})), + (ji = Hi.LinearAlgebra.Vector3), + (t.computeNormalsImmediate = fs), + (t.computeNormals = function (n) { + var t = this; + return zi.computation(function (e) { + return D(t, void 0, void 0, function () { + return P(this, function (t) { + switch (t.label) { + case 0: + return n.normals + ? [2, n] + : [4, e.updateProgress('Computing normals...')]; + case 1: + return t.sent(), fs(n), [2, n]; + } + }); + }); + }); + }), + (t.laplacianSmooth = function (n, r, i) { + var t = this; + return ( + void 0 === i && (i = 1), + 0 === (r = (r = void 0 === r ? 1 : r) < 1 ? 0 : r) + ? zi.Computation.resolve(n) + : zi.computation(function (e) { + return D(t, void 0, void 0, function () { + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, ms(e, n, r, (1.1 * i) / 1.1)]; + case 1: + return [2, t.sent()]; + } + }); + }); + }) + ); + }), + (t.computeBoundingSphere = function (h) { + var t = this; + return zi.computation(function (A) { + return D(t, void 0, void 0, function () { + var e, n, r, i, o, a, s, l, u, c; + return P(this, function (t) { + switch (t.label) { + case 0: + return h.boundingSphere + ? [2, h] + : [4, A.updateProgress('Computing bounding sphere...')]; + case 1: + for ( + t.sent(), e = h.vertices, a = i = r = n = 0, s = h.vertices.length; + a < s; + a += 3 + ) + (n += e[a]), (r += e[a + 1]), (i += e[a + 2]); + for ( + n /= h.vertexCount, + r /= h.vertexCount, + i /= h.vertexCount, + a = o = 0, + s = e.length; + a < s; + a += 3 + ) + (l = n - e[a]), + (u = r - e[a + 1]), + (c = i - e[a + 2]), + (o = Math.max(o, l * l + u * u + c * c)); + return ( + (h.boundingSphere = { + center: Hi.LinearAlgebra.Vector3.fromValues(n, r, i), + radius: Math.sqrt(o), + }), + [2, h] + ); + } + }); + }); + }); + }), + (t.transformImmediate = vs), + (t.transform = function (n, r) { + var t = this; + return zi.computation(function (e) { + return D(t, void 0, void 0, function () { + return P(this, function (t) { + return e.updateProgress('Updating surface...'), vs(n, r), [2, n]; + }); + }); + }); + }), + (e = + (e = + (e = (e = F = F || {}).Core || (e.Core = {})).Geometry || (e.Geometry = {})) + .Query3D || (e.Query3D = {})), + ((Vi = e.Box3D || (e.Box3D = {})).createInfinite = function () { + return { + min: [Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE], + max: [-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE], + }; + }), + ((r = e.QueryContext || (e.QueryContext = {})).add = function (t, e, n) { + ((t = t.buffer).squaredDistances[t.count] = e), + (t.elements[t.count++] = t.sourceElements[n]); + }), + (r.update = function (t, e, n, r, i) { + (t.pivot[0] = e), + (t.pivot[1] = n), + (t.pivot[2] = r), + (t.radius = i), + (t.radiusSq = i * i), + (t.buffer.count = 0); + }), + (r.create = function (t, e) { + return { + structure: t, + buffer: { sourceElements: e, elements: [], count: 0, squaredDistances: [] }, + pivot: [0.1, 0.1, 0.1], + radius: 1.1, + radiusSq: 1.1 * 1.1, + }; + }), + ((Wi = qi = qi || {}).add = function (t, e, n, r) { + (t.data[t._count++] = e), + (t.data[t._count++] = n), + (t.data[t._count++] = r), + (t.boundsMin[0] = Math.min(e, t.boundsMin[0])), + (t.boundsMin[1] = Math.min(n, t.boundsMin[1])), + (t.boundsMin[2] = Math.min(r, t.boundsMin[2])), + (t.boundsMax[0] = Math.max(e, t.boundsMax[0])), + (t.boundsMax[1] = Math.max(n, t.boundsMax[1])), + (t.boundsMax[2] = Math.max(r, t.boundsMax[2])); + }), + (Wi.create = function (t) { + var t = new Float32Array((3 * t) | 0), + e = Vi.createInfinite(); + return { _count: 0, data: t, bounds: e, boundsMin: e.min, boundsMax: e.max }; + }), + (Wi.createAdder = function (r) { + var i = Wi.add; + return function (t, e, n) { + i(r, t, e, n); + }; + }), + (e.createInputData = function (t, e) { + for ( + var n = qi.create(t.length), + r = new Int32Array(t.length), + i = qi.createAdder(n), + o = 0; + o < t.length; + o++ + ) + e(t[(r[o] = o)], i); + return { elements: t, positions: n.data, bounds: n.bounds, indices: r }; + }), + (t = (t = (t = F = F || {}).Core || (t.Core = {})).Geometry || (t.Geometry = {})), + (Ji = t.Query3D || (t.Query3D = {})), + ((t = Ki = Ki || {}).nearest = bs), + (t.create = function (t, e, n, r, i) { + return { splitValue: t, startIndex: e, endIndex: n, left: r, right: i }; + }), + ((Zi || (Zi = {})).build = function (t, e) { + t.elements; + var n = t.positions, + r = t.bounds, + t = t.indices; + return { + root: (function t(e, n, r, i) { + var o = r - n + 1; + if (o <= 0) return e.emptyNode; + if (o <= e.leafSize) + return Ki.create(NaN, n, r + 1, e.emptyNode, e.emptyNode); + for ( + var a, + s, + l, + o = e.bounds.min[i], + u = e.bounds.max[i], + c = 0.5 * (o + u), + A = n, + h = r; + A < h; + + ) { + for ( + s = e.indices[h], e.indices[h] = e.indices[A], e.indices[A] = s; + A <= r && e.positions[3 * e.indices[A] + i] <= c; + + ) + A++; + for (; n <= h && e.positions[3 * e.indices[h] + i] > c; ) h--; + } + return ( + (a = A - 1), + (e.bounds.max[i] = c), + (l = t(e, n, a, (i + 1) % 3)), + (e.bounds.max[i] = u), + (e.bounds.min[i] = c), + (u = t(e, 1 + a, r, (i + 1) % 3)), + (e.bounds.min[i] = o), + Ki.create(c, n, r + 1, l, u) + ); + })( + { + bounds: r, + positions: n, + leafSize: e, + indices: t, + emptyNode: Ki.create(NaN, -1, -1, void 0, void 0), + }, + 0, + t.length - 1, + 0, + ), + indices: t, + positions: n, + }; + }), + (Ji.createSubdivisionTree = function (t, e) { + var o = Zi.build(t, (e = void 0 === e ? 32 : e)); + return function () { + var i = Ji.QueryContext.create(o, t.elements); + return function (t, e, n, r) { + return ( + Ji.QueryContext.update(i, t, e, n, r), Ki.nearest(o.root, i, 0), i.buffer + ); + }; + }; + }), + (r = (r = (r = F = F || {}).Core || (r.Core = {})).Geometry || (r.Geometry = {})), + ((Xi = r.Query3D || (r.Query3D = {})).createSpatialHash = function (t) { + var e = ys(t); + return function () { + var T = Xi.QueryContext.create(e, t.elements); + return function (t, e, n, r) { + Xi.QueryContext.update(T, t, e, n, r); + for ( + var i = T, + t = i.structure, + n = (e = t.min)[0], + r = e[1], + e = e[2], + o = (p = t.size)[0], + a = p[1], + s = p[2], + l = t.bucketOffset, + u = t.bucketCounts, + c = t.bucketArray, + A = t.grid, + h = t.positions, + p = i.radius, + d = i.radiusSq, + f = (t = i.pivot)[0], + g = t[1], + m = t[2], + t = Math.max(0, (f - p - n) >> 3), + v = Math.max(0, (g - p - r) >> 3), + b = Math.max(0, (m - p - e) >> 3), + y = Math.min(o, (f + p - n) >> 3), + w = Math.min(a, (g + p - r) >> 3), + E = Math.min(s, (m + p - e) >> 3), + B = t; + B <= y; + B++ + ) + for (var C = v; C <= w; C++) + for (var x = b; x <= E; x++) { + var I = A[(B * a + C) * s + x]; + if (0 < I) + for (var I = I - 1, M = l[I], D = M + u[I], S = M; S < D; S++) { + var k = c[S], + F = h[3 * k + 0] - f, + Q = h[3 * k + 1] - g, + _ = h[3 * k + 2] - m, + F = F * F + Q * Q + _ * _; + F <= d && Xi.QueryContext.add(i, F, k); + } + } + return T.buffer; + }; + }; + }), + (e = F = F || {}), + (e = ($i = e.Core || (e.Core = {})).Geometry || ($i.Geometry = {})), + ((to = e.MarchingCubes || (e.MarchingCubes = {})).compute = function (n) { + var t = this; + return $i.computation(function (e) { + return D(t, void 0, void 0, function () { + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, new eo(n, e).run()]; + case 1: + return [2, t.sent()]; + } + }); + }); + }); + }), + (ws.prototype.doSlices = function () { + return D(this, void 0, void 0, function () { + var e, n, r, i; + return P(this, function (t) { + switch (t.label) { + case 0: + (e = 0), + (n = $i.Utils.PerformanceMonitor.currentTime()), + (r = this.minZ), + (t.label = 1); + case 1: + return r < this.maxZ + ? (this.slice(r), + (e += this.sliceSize), + (i = $i.Utils.PerformanceMonitor.currentTime()) - n > + $i.Computation.UpdateProgressDelta + ? [ + 4, + this.ctx.updateProgress( + 'Computing surface...', + !0, + e, + this.size, + ), + ] + : [3, 3]) + : [3, 4]; + case 2: + t.sent(), (n = i), (t.label = 3); + case 3: + return r++, [3, 1]; + case 4: + return [2]; + } + }); + }); + }), + (ws.prototype.slice = function (t) { + for (var e = this.minY; e < this.maxY; e++) + for (var n = this.minX; n < this.maxX; n++) this.state.processCell(n, e, t); + this.state.clearEdgeVertexIndexSlice(t); + }), + (ws.prototype.finish = function () { + var t = $i.Utils.ChunkedArray.compact(this.state.vertexBuffer), + e = $i.Utils.ChunkedArray.compact(this.state.triangleBuffer); + return ( + (this.state.vertexBuffer = void 0), + (this.state.verticesOnEdges = void 0), + { + vertexCount: (t.length / 3) | 0, + triangleCount: (e.length / 3) | 0, + vertices: t, + triangleIndices: e, + annotation: this.state.annotate + ? $i.Utils.ChunkedArray.compact(this.state.annotationBuffer) + : void 0, + } + ); + }), + (ws.prototype.run = function () { + return D(this, void 0, void 0, function () { + return P(this, function (t) { + switch (t.label) { + case 0: + return [ + 4, + this.ctx.updateProgress('Computing surface...', !0, 0, this.size), + ]; + case 1: + return t.sent(), [4, this.doSlices()]; + case 2: + return t.sent(), [4, this.ctx.updateProgress('Finalizing...')]; + case 3: + return t.sent(), [2, this.finish()]; + } + }); + }); + }), + (eo = ws), + (Es.prototype.get3dOffsetFromEdgeInfo = function (t) { + return this.nX * (((this.k + t.k) % 2) * this.nY + this.j + t.j) + this.i + t.i; + }), + (Es.prototype.clearEdgeVertexIndexSlice = function (t) { + for ( + var e = t % 2 == 0 ? 0 : 3 * this.nX * this.nY, + n = t % 2 == 0 ? 3 * this.nX * this.nY : this.verticesOnEdges.length, + r = e; + r < n; + r++ + ) + this.verticesOnEdges[r] = 0; + }), + (Es.prototype.interpolate = function (t) { + var e = to.EdgeIdInfo[t], + e = 3 * this.get3dOffsetFromEdgeInfo(e) + e.e, + n = this.verticesOnEdges[e]; + if (0 < n) return (n - 1) | 0; + var n = to.CubeEdges[t], + t = n.a, + n = n.b, + r = t.i + this.i, + i = t.j + this.j, + t = t.k + this.k, + o = n.i + this.i, + a = n.j + this.j, + n = n.k + this.k, + s = this.scalarField.get(r, i, t), + l = this.scalarField.get(o, a, n), + s = (this.isoLevel - s) / (s - l), + l = + 0 | + $i.Utils.ChunkedArray.add3( + this.vertexBuffer, + r + s * (r - o), + i + s * (i - a), + t + s * (t - n), + ); + return ( + (this.verticesOnEdges[e] = 1 + l), + this.annotate && + ((e = + s < 0.5 + ? this.annotationField.get(r, i, t) + : this.annotationField.get(o, a, n)) < 0 && + (e = + s < 0.5 + ? this.annotationField.get(o, a, n) + : this.annotationField.get(r, i, t)), + $i.Utils.ChunkedArray.add(this.annotationBuffer, e)), + l + ); + }), + (Es.prototype.processCell = function (t, e, n) { + var r = 0; + if ( + (this.scalarField.get(t, e, n) < this.isoLevel && (r |= 1), + this.scalarField.get(t + 1, e, n) < this.isoLevel && (r |= 2), + this.scalarField.get(t + 1, e + 1, n) < this.isoLevel && (r |= 4), + this.scalarField.get(t, e + 1, n) < this.isoLevel && (r |= 8), + this.scalarField.get(t, e, n + 1) < this.isoLevel && (r |= 16), + this.scalarField.get(t + 1, e, n + 1) < this.isoLevel && (r |= 32), + this.scalarField.get(t + 1, e + 1, n + 1) < this.isoLevel && (r |= 64), + this.scalarField.get(t, e + 1, n + 1) < this.isoLevel && (r |= 128), + 0 !== r && 255 !== r) + ) { + (this.i = t), (this.j = e), (this.k = n); + for ( + var t = to.EdgeTable[r], + i = + (0 < (1 & t) && (this.vertList[0] = this.interpolate(0)), + 0 < (2 & t) && (this.vertList[1] = this.interpolate(1)), + 0 < (4 & t) && (this.vertList[2] = this.interpolate(2)), + 0 < (8 & t) && (this.vertList[3] = this.interpolate(3)), + 0 < (16 & t) && (this.vertList[4] = this.interpolate(4)), + 0 < (32 & t) && (this.vertList[5] = this.interpolate(5)), + 0 < (64 & t) && (this.vertList[6] = this.interpolate(6)), + 0 < (128 & t) && (this.vertList[7] = this.interpolate(7)), + 0 < (256 & t) && (this.vertList[8] = this.interpolate(8)), + 0 < (512 & t) && (this.vertList[9] = this.interpolate(9)), + 0 < (1024 & t) && (this.vertList[10] = this.interpolate(10)), + 0 < (2048 & t) && (this.vertList[11] = this.interpolate(11)), + to.TriTable[r]), + o = 0; + o < i.length; + o += 3 + ) + $i.Utils.ChunkedArray.add3( + this.triangleBuffer, + this.vertList[i[o]], + this.vertList[i[o + 1]], + this.vertList[i[o + 2]], + ); + } + }), + (no = Es), + (t = + (t = + (t = (t = F = F || {}).Core || (t.Core = {})).Geometry || (t.Geometry = {})) + .MarchingCubes || (t.MarchingCubes = {})), + (r = function (t, e, n) { + (this.i = 0 | t), (this.j = 0 | e), (this.k = 0 | n); + }), + (t.Index = r), + (e = function (t, e) { + (this.a = t), (this.b = e); + }), + (t.IndexPair = e), + (t.EdgesXY = [ + [], + [0, 3], + [0, 1], + [1, 3], + [1, 2], + [0, 1, 1, 2, 2, 3, 0, 3], + [0, 2], + [2, 3], + [2, 3], + [0, 2], + [0, 1, 1, 2, 2, 3, 0, 3], + [1, 2], + [1, 3], + [0, 1], + [0, 3], + [], + ]), + (t.EdgesXZ = [ + [], + [0, 8], + [0, 9], + [9, 8], + [9, 4], + [0, 9, 9, 4, 4, 8, 0, 8], + [0, 4], + [4, 8], + [4, 8], + [0, 4], + [0, 9, 9, 4, 4, 8, 0, 8], + [9, 4], + [9, 8], + [0, 9], + [0, 8], + [], + ]), + (t.EdgesYZ = [ + [], + [3, 8], + [3, 11], + [11, 8], + [11, 7], + [3, 11, 11, 7, 7, 8, 3, 8], + [3, 7], + [7, 8], + [7, 8], + [3, 7], + [3, 11, 11, 7, 7, 8, 3, 8], + [11, 7], + [11, 8], + [3, 11], + [3, 8], + [], + ]), + (t.CubeVertices = [ + new r(0, 0, 0), + new r(1, 0, 0), + new r(1, 1, 0), + new r(0, 1, 0), + new r(0, 0, 1), + new r(1, 0, 1), + new r(1, 1, 1), + new r(0, 1, 1), + ]), + (t.CubeEdges = [ + new e(t.CubeVertices[0], t.CubeVertices[1]), + new e(t.CubeVertices[1], t.CubeVertices[2]), + new e(t.CubeVertices[2], t.CubeVertices[3]), + new e(t.CubeVertices[3], t.CubeVertices[0]), + new e(t.CubeVertices[4], t.CubeVertices[5]), + new e(t.CubeVertices[5], t.CubeVertices[6]), + new e(t.CubeVertices[6], t.CubeVertices[7]), + new e(t.CubeVertices[7], t.CubeVertices[4]), + new e(t.CubeVertices[0], t.CubeVertices[4]), + new e(t.CubeVertices[1], t.CubeVertices[5]), + new e(t.CubeVertices[2], t.CubeVertices[6]), + new e(t.CubeVertices[3], t.CubeVertices[7]), + ]), + (t.EdgeIdInfo = [ + { i: 0, j: 0, k: 0, e: 0 }, + { i: 1, j: 0, k: 0, e: 1 }, + { i: 0, j: 1, k: 0, e: 0 }, + { i: 0, j: 0, k: 0, e: 1 }, + { i: 0, j: 0, k: 1, e: 0 }, + { i: 1, j: 0, k: 1, e: 1 }, + { i: 0, j: 1, k: 1, e: 0 }, + { i: 0, j: 0, k: 1, e: 1 }, + { i: 0, j: 0, k: 0, e: 2 }, + { i: 1, j: 0, k: 0, e: 2 }, + { i: 1, j: 1, k: 0, e: 2 }, + { i: 0, j: 1, k: 0, e: 2 }, + ]), + (t.EdgeTable = [ + 0, 265, 515, 778, 1030, 1295, 1541, 1804, 2060, 2309, 2575, 2822, 3082, 3331, + 3593, 3840, 400, 153, 915, 666, 1430, 1183, 1941, 1692, 2460, 2197, 2975, 2710, + 3482, 3219, 3993, 3728, 560, 825, 51, 314, 1590, 1855, 1077, 1340, 2620, 2869, + 2111, 2358, 3642, 3891, 3129, 3376, 928, 681, 419, 170, 1958, 1711, 1445, 1196, + 2988, 2725, 2479, 2214, 4010, 3747, 3497, 3232, 1120, 1385, 1635, 1898, 102, + 367, 613, 876, 3180, 3429, 3695, 3942, 2154, 2403, 2665, 2912, 1520, 1273, 2035, + 1786, 502, 255, 1013, 764, 3580, 3317, 4095, 3830, 2554, 2291, 3065, 2800, 1616, + 1881, 1107, 1370, 598, 863, 85, 348, 3676, 3925, 3167, 3414, 2650, 2899, 2137, + 2384, 1984, 1737, 1475, 1226, 966, 719, 453, 204, 4044, 3781, 3535, 3270, 3018, + 2755, 2505, 2240, 2240, 2505, 2755, 3018, 3270, 3535, 3781, 4044, 204, 453, 719, + 966, 1226, 1475, 1737, 1984, 2384, 2137, 2899, 2650, 3414, 3167, 3925, 3676, + 348, 85, 863, 598, 1370, 1107, 1881, 1616, 2800, 3065, 2291, 2554, 3830, 4095, + 3317, 3580, 764, 1013, 255, 502, 1786, 2035, 1273, 1520, 2912, 2665, 2403, 2154, + 3942, 3695, 3429, 3180, 876, 613, 367, 102, 1898, 1635, 1385, 1120, 3232, 3497, + 3747, 4010, 2214, 2479, 2725, 2988, 1196, 1445, 1711, 1958, 170, 419, 681, 928, + 3376, 3129, 3891, 3642, 2358, 2111, 2869, 2620, 1340, 1077, 1855, 1590, 314, 51, + 825, 560, 3728, 3993, 3219, 3482, 2710, 2975, 2197, 2460, 1692, 1941, 1183, + 1430, 666, 915, 153, 400, 3840, 3593, 3331, 3082, 2822, 2575, 2309, 2060, 1804, + 1541, 1295, 1030, 778, 515, 265, 0, + ]), + (t.TriTable = [ + [], + [0, 8, 3], + [0, 1, 9], + [1, 8, 3, 9, 8, 1], + [1, 2, 10], + [0, 8, 3, 1, 2, 10], + [9, 2, 10, 0, 2, 9], + [2, 8, 3, 2, 10, 8, 10, 9, 8], + [3, 11, 2], + [0, 11, 2, 8, 11, 0], + [1, 9, 0, 2, 3, 11], + [1, 11, 2, 1, 9, 11, 9, 8, 11], + [3, 10, 1, 11, 10, 3], + [0, 10, 1, 0, 8, 10, 8, 11, 10], + [3, 9, 0, 3, 11, 9, 11, 10, 9], + [9, 8, 10, 10, 8, 11], + [4, 7, 8], + [4, 3, 0, 7, 3, 4], + [0, 1, 9, 8, 4, 7], + [4, 1, 9, 4, 7, 1, 7, 3, 1], + [1, 2, 10, 8, 4, 7], + [3, 4, 7, 3, 0, 4, 1, 2, 10], + [9, 2, 10, 9, 0, 2, 8, 4, 7], + [2, 10, 9, 2, 9, 7, 2, 7, 3, 7, 9, 4], + [8, 4, 7, 3, 11, 2], + [11, 4, 7, 11, 2, 4, 2, 0, 4], + [9, 0, 1, 8, 4, 7, 2, 3, 11], + [4, 7, 11, 9, 4, 11, 9, 11, 2, 9, 2, 1], + [3, 10, 1, 3, 11, 10, 7, 8, 4], + [1, 11, 10, 1, 4, 11, 1, 0, 4, 7, 11, 4], + [4, 7, 8, 9, 0, 11, 9, 11, 10, 11, 0, 3], + [4, 7, 11, 4, 11, 9, 9, 11, 10], + [9, 5, 4], + [9, 5, 4, 0, 8, 3], + [0, 5, 4, 1, 5, 0], + [8, 5, 4, 8, 3, 5, 3, 1, 5], + [1, 2, 10, 9, 5, 4], + [3, 0, 8, 1, 2, 10, 4, 9, 5], + [5, 2, 10, 5, 4, 2, 4, 0, 2], + [2, 10, 5, 3, 2, 5, 3, 5, 4, 3, 4, 8], + [9, 5, 4, 2, 3, 11], + [0, 11, 2, 0, 8, 11, 4, 9, 5], + [0, 5, 4, 0, 1, 5, 2, 3, 11], + [2, 1, 5, 2, 5, 8, 2, 8, 11, 4, 8, 5], + [10, 3, 11, 10, 1, 3, 9, 5, 4], + [4, 9, 5, 0, 8, 1, 8, 10, 1, 8, 11, 10], + [5, 4, 0, 5, 0, 11, 5, 11, 10, 11, 0, 3], + [5, 4, 8, 5, 8, 10, 10, 8, 11], + [9, 7, 8, 5, 7, 9], + [9, 3, 0, 9, 5, 3, 5, 7, 3], + [0, 7, 8, 0, 1, 7, 1, 5, 7], + [1, 5, 3, 3, 5, 7], + [9, 7, 8, 9, 5, 7, 10, 1, 2], + [10, 1, 2, 9, 5, 0, 5, 3, 0, 5, 7, 3], + [8, 0, 2, 8, 2, 5, 8, 5, 7, 10, 5, 2], + [2, 10, 5, 2, 5, 3, 3, 5, 7], + [7, 9, 5, 7, 8, 9, 3, 11, 2], + [9, 5, 7, 9, 7, 2, 9, 2, 0, 2, 7, 11], + [2, 3, 11, 0, 1, 8, 1, 7, 8, 1, 5, 7], + [11, 2, 1, 11, 1, 7, 7, 1, 5], + [9, 5, 8, 8, 5, 7, 10, 1, 3, 10, 3, 11], + [5, 7, 0, 5, 0, 9, 7, 11, 0, 1, 0, 10, 11, 10, 0], + [11, 10, 0, 11, 0, 3, 10, 5, 0, 8, 0, 7, 5, 7, 0], + [11, 10, 5, 7, 11, 5], + [10, 6, 5], + [0, 8, 3, 5, 10, 6], + [9, 0, 1, 5, 10, 6], + [1, 8, 3, 1, 9, 8, 5, 10, 6], + [1, 6, 5, 2, 6, 1], + [1, 6, 5, 1, 2, 6, 3, 0, 8], + [9, 6, 5, 9, 0, 6, 0, 2, 6], + [5, 9, 8, 5, 8, 2, 5, 2, 6, 3, 2, 8], + [2, 3, 11, 10, 6, 5], + [11, 0, 8, 11, 2, 0, 10, 6, 5], + [0, 1, 9, 2, 3, 11, 5, 10, 6], + [5, 10, 6, 1, 9, 2, 9, 11, 2, 9, 8, 11], + [6, 3, 11, 6, 5, 3, 5, 1, 3], + [0, 8, 11, 0, 11, 5, 0, 5, 1, 5, 11, 6], + [3, 11, 6, 0, 3, 6, 0, 6, 5, 0, 5, 9], + [6, 5, 9, 6, 9, 11, 11, 9, 8], + [5, 10, 6, 4, 7, 8], + [4, 3, 0, 4, 7, 3, 6, 5, 10], + [1, 9, 0, 5, 10, 6, 8, 4, 7], + [10, 6, 5, 1, 9, 7, 1, 7, 3, 7, 9, 4], + [6, 1, 2, 6, 5, 1, 4, 7, 8], + [1, 2, 5, 5, 2, 6, 3, 0, 4, 3, 4, 7], + [8, 4, 7, 9, 0, 5, 0, 6, 5, 0, 2, 6], + [7, 3, 9, 7, 9, 4, 3, 2, 9, 5, 9, 6, 2, 6, 9], + [3, 11, 2, 7, 8, 4, 10, 6, 5], + [5, 10, 6, 4, 7, 2, 4, 2, 0, 2, 7, 11], + [0, 1, 9, 4, 7, 8, 2, 3, 11, 5, 10, 6], + [9, 2, 1, 9, 11, 2, 9, 4, 11, 7, 11, 4, 5, 10, 6], + [8, 4, 7, 3, 11, 5, 3, 5, 1, 5, 11, 6], + [5, 1, 11, 5, 11, 6, 1, 0, 11, 7, 11, 4, 0, 4, 11], + [0, 5, 9, 0, 6, 5, 0, 3, 6, 11, 6, 3, 8, 4, 7], + [6, 5, 9, 6, 9, 11, 4, 7, 9, 7, 11, 9], + [10, 4, 9, 6, 4, 10], + [4, 10, 6, 4, 9, 10, 0, 8, 3], + [10, 0, 1, 10, 6, 0, 6, 4, 0], + [8, 3, 1, 8, 1, 6, 8, 6, 4, 6, 1, 10], + [1, 4, 9, 1, 2, 4, 2, 6, 4], + [3, 0, 8, 1, 2, 9, 2, 4, 9, 2, 6, 4], + [0, 2, 4, 4, 2, 6], + [8, 3, 2, 8, 2, 4, 4, 2, 6], + [10, 4, 9, 10, 6, 4, 11, 2, 3], + [0, 8, 2, 2, 8, 11, 4, 9, 10, 4, 10, 6], + [3, 11, 2, 0, 1, 6, 0, 6, 4, 6, 1, 10], + [6, 4, 1, 6, 1, 10, 4, 8, 1, 2, 1, 11, 8, 11, 1], + [9, 6, 4, 9, 3, 6, 9, 1, 3, 11, 6, 3], + [8, 11, 1, 8, 1, 0, 11, 6, 1, 9, 1, 4, 6, 4, 1], + [3, 11, 6, 3, 6, 0, 0, 6, 4], + [6, 4, 8, 11, 6, 8], + [7, 10, 6, 7, 8, 10, 8, 9, 10], + [0, 7, 3, 0, 10, 7, 0, 9, 10, 6, 7, 10], + [10, 6, 7, 1, 10, 7, 1, 7, 8, 1, 8, 0], + [10, 6, 7, 10, 7, 1, 1, 7, 3], + [1, 2, 6, 1, 6, 8, 1, 8, 9, 8, 6, 7], + [2, 6, 9, 2, 9, 1, 6, 7, 9, 0, 9, 3, 7, 3, 9], + [7, 8, 0, 7, 0, 6, 6, 0, 2], + [7, 3, 2, 6, 7, 2], + [2, 3, 11, 10, 6, 8, 10, 8, 9, 8, 6, 7], + [2, 0, 7, 2, 7, 11, 0, 9, 7, 6, 7, 10, 9, 10, 7], + [1, 8, 0, 1, 7, 8, 1, 10, 7, 6, 7, 10, 2, 3, 11], + [11, 2, 1, 11, 1, 7, 10, 6, 1, 6, 7, 1], + [8, 9, 6, 8, 6, 7, 9, 1, 6, 11, 6, 3, 1, 3, 6], + [0, 9, 1, 11, 6, 7], + [7, 8, 0, 7, 0, 6, 3, 11, 0, 11, 6, 0], + [7, 11, 6], + [7, 6, 11], + [3, 0, 8, 11, 7, 6], + [0, 1, 9, 11, 7, 6], + [8, 1, 9, 8, 3, 1, 11, 7, 6], + [10, 1, 2, 6, 11, 7], + [1, 2, 10, 3, 0, 8, 6, 11, 7], + [2, 9, 0, 2, 10, 9, 6, 11, 7], + [6, 11, 7, 2, 10, 3, 10, 8, 3, 10, 9, 8], + [7, 2, 3, 6, 2, 7], + [7, 0, 8, 7, 6, 0, 6, 2, 0], + [2, 7, 6, 2, 3, 7, 0, 1, 9], + [1, 6, 2, 1, 8, 6, 1, 9, 8, 8, 7, 6], + [10, 7, 6, 10, 1, 7, 1, 3, 7], + [10, 7, 6, 1, 7, 10, 1, 8, 7, 1, 0, 8], + [0, 3, 7, 0, 7, 10, 0, 10, 9, 6, 10, 7], + [7, 6, 10, 7, 10, 8, 8, 10, 9], + [6, 8, 4, 11, 8, 6], + [3, 6, 11, 3, 0, 6, 0, 4, 6], + [8, 6, 11, 8, 4, 6, 9, 0, 1], + [9, 4, 6, 9, 6, 3, 9, 3, 1, 11, 3, 6], + [6, 8, 4, 6, 11, 8, 2, 10, 1], + [1, 2, 10, 3, 0, 11, 0, 6, 11, 0, 4, 6], + [4, 11, 8, 4, 6, 11, 0, 2, 9, 2, 10, 9], + [10, 9, 3, 10, 3, 2, 9, 4, 3, 11, 3, 6, 4, 6, 3], + [8, 2, 3, 8, 4, 2, 4, 6, 2], + [0, 4, 2, 4, 6, 2], + [1, 9, 0, 2, 3, 4, 2, 4, 6, 4, 3, 8], + [1, 9, 4, 1, 4, 2, 2, 4, 6], + [8, 1, 3, 8, 6, 1, 8, 4, 6, 6, 10, 1], + [10, 1, 0, 10, 0, 6, 6, 0, 4], + [4, 6, 3, 4, 3, 8, 6, 10, 3, 0, 3, 9, 10, 9, 3], + [10, 9, 4, 6, 10, 4], + [4, 9, 5, 7, 6, 11], + [0, 8, 3, 4, 9, 5, 11, 7, 6], + [5, 0, 1, 5, 4, 0, 7, 6, 11], + [11, 7, 6, 8, 3, 4, 3, 5, 4, 3, 1, 5], + [9, 5, 4, 10, 1, 2, 7, 6, 11], + [6, 11, 7, 1, 2, 10, 0, 8, 3, 4, 9, 5], + [7, 6, 11, 5, 4, 10, 4, 2, 10, 4, 0, 2], + [3, 4, 8, 3, 5, 4, 3, 2, 5, 10, 5, 2, 11, 7, 6], + [7, 2, 3, 7, 6, 2, 5, 4, 9], + [9, 5, 4, 0, 8, 6, 0, 6, 2, 6, 8, 7], + [3, 6, 2, 3, 7, 6, 1, 5, 0, 5, 4, 0], + [6, 2, 8, 6, 8, 7, 2, 1, 8, 4, 8, 5, 1, 5, 8], + [9, 5, 4, 10, 1, 6, 1, 7, 6, 1, 3, 7], + [1, 6, 10, 1, 7, 6, 1, 0, 7, 8, 7, 0, 9, 5, 4], + [4, 0, 10, 4, 10, 5, 0, 3, 10, 6, 10, 7, 3, 7, 10], + [7, 6, 10, 7, 10, 8, 5, 4, 10, 4, 8, 10], + [6, 9, 5, 6, 11, 9, 11, 8, 9], + [3, 6, 11, 0, 6, 3, 0, 5, 6, 0, 9, 5], + [0, 11, 8, 0, 5, 11, 0, 1, 5, 5, 6, 11], + [6, 11, 3, 6, 3, 5, 5, 3, 1], + [1, 2, 10, 9, 5, 11, 9, 11, 8, 11, 5, 6], + [0, 11, 3, 0, 6, 11, 0, 9, 6, 5, 6, 9, 1, 2, 10], + [11, 8, 5, 11, 5, 6, 8, 0, 5, 10, 5, 2, 0, 2, 5], + [6, 11, 3, 6, 3, 5, 2, 10, 3, 10, 5, 3], + [5, 8, 9, 5, 2, 8, 5, 6, 2, 3, 8, 2], + [9, 5, 6, 9, 6, 0, 0, 6, 2], + [1, 5, 8, 1, 8, 0, 5, 6, 8, 3, 8, 2, 6, 2, 8], + [1, 5, 6, 2, 1, 6], + [1, 3, 6, 1, 6, 10, 3, 8, 6, 5, 6, 9, 8, 9, 6], + [10, 1, 0, 10, 0, 6, 9, 5, 0, 5, 6, 0], + [0, 3, 8, 5, 6, 10], + [10, 5, 6], + [11, 5, 10, 7, 5, 11], + [11, 5, 10, 11, 7, 5, 8, 3, 0], + [5, 11, 7, 5, 10, 11, 1, 9, 0], + [10, 7, 5, 10, 11, 7, 9, 8, 1, 8, 3, 1], + [11, 1, 2, 11, 7, 1, 7, 5, 1], + [0, 8, 3, 1, 2, 7, 1, 7, 5, 7, 2, 11], + [9, 7, 5, 9, 2, 7, 9, 0, 2, 2, 11, 7], + [7, 5, 2, 7, 2, 11, 5, 9, 2, 3, 2, 8, 9, 8, 2], + [2, 5, 10, 2, 3, 5, 3, 7, 5], + [8, 2, 0, 8, 5, 2, 8, 7, 5, 10, 2, 5], + [9, 0, 1, 5, 10, 3, 5, 3, 7, 3, 10, 2], + [9, 8, 2, 9, 2, 1, 8, 7, 2, 10, 2, 5, 7, 5, 2], + [1, 3, 5, 3, 7, 5], + [0, 8, 7, 0, 7, 1, 1, 7, 5], + [9, 0, 3, 9, 3, 5, 5, 3, 7], + [9, 8, 7, 5, 9, 7], + [5, 8, 4, 5, 10, 8, 10, 11, 8], + [5, 0, 4, 5, 11, 0, 5, 10, 11, 11, 3, 0], + [0, 1, 9, 8, 4, 10, 8, 10, 11, 10, 4, 5], + [10, 11, 4, 10, 4, 5, 11, 3, 4, 9, 4, 1, 3, 1, 4], + [2, 5, 1, 2, 8, 5, 2, 11, 8, 4, 5, 8], + [0, 4, 11, 0, 11, 3, 4, 5, 11, 2, 11, 1, 5, 1, 11], + [0, 2, 5, 0, 5, 9, 2, 11, 5, 4, 5, 8, 11, 8, 5], + [9, 4, 5, 2, 11, 3], + [2, 5, 10, 3, 5, 2, 3, 4, 5, 3, 8, 4], + [5, 10, 2, 5, 2, 4, 4, 2, 0], + [3, 10, 2, 3, 5, 10, 3, 8, 5, 4, 5, 8, 0, 1, 9], + [5, 10, 2, 5, 2, 4, 1, 9, 2, 9, 4, 2], + [8, 4, 5, 8, 5, 3, 3, 5, 1], + [0, 4, 5, 1, 0, 5], + [8, 4, 5, 8, 5, 3, 9, 0, 5, 0, 3, 5], + [9, 4, 5], + [4, 11, 7, 4, 9, 11, 9, 10, 11], + [0, 8, 3, 4, 9, 7, 9, 11, 7, 9, 10, 11], + [1, 10, 11, 1, 11, 4, 1, 4, 0, 7, 4, 11], + [3, 1, 4, 3, 4, 8, 1, 10, 4, 7, 4, 11, 10, 11, 4], + [4, 11, 7, 9, 11, 4, 9, 2, 11, 9, 1, 2], + [9, 7, 4, 9, 11, 7, 9, 1, 11, 2, 11, 1, 0, 8, 3], + [11, 7, 4, 11, 4, 2, 2, 4, 0], + [11, 7, 4, 11, 4, 2, 8, 3, 4, 3, 2, 4], + [2, 9, 10, 2, 7, 9, 2, 3, 7, 7, 4, 9], + [9, 10, 7, 9, 7, 4, 10, 2, 7, 8, 7, 0, 2, 0, 7], + [3, 7, 10, 3, 10, 2, 7, 4, 10, 1, 10, 0, 4, 0, 10], + [1, 10, 2, 8, 7, 4], + [4, 9, 1, 4, 1, 7, 7, 1, 3], + [4, 9, 1, 4, 1, 7, 0, 8, 1, 8, 7, 1], + [4, 0, 3, 7, 4, 3], + [4, 8, 7], + [9, 10, 8, 10, 11, 8], + [3, 0, 9, 3, 9, 11, 11, 9, 10], + [0, 1, 10, 0, 10, 8, 8, 10, 11], + [3, 1, 10, 11, 3, 10], + [1, 2, 11, 1, 11, 9, 9, 11, 8], + [3, 0, 9, 3, 9, 11, 1, 2, 9, 2, 11, 9], + [0, 2, 11, 8, 0, 11], + [3, 2, 11], + [2, 3, 8, 2, 8, 10, 10, 8, 9], + [9, 10, 2, 0, 9, 2], + [2, 3, 8, 2, 8, 10, 0, 1, 8, 1, 10, 8], + [1, 10, 2], + [1, 3, 8, 9, 1, 8], + [0, 9, 1], + [0, 3, 8], + [], + ]), + (r = F = F || {}), + (ro = r.Core || (r.Core = {})), + (io = ro.Geometry || (ro.Geometry = {})), + (r = io.MolecularSurface || (io.MolecularSurface = {})), + (oo = function (t) { + ro.Utils.extend(this, t, { + exactBoundary: !1, + boundaryDelta: { dx: 1.5, dy: 1.5, dz: 1.5 }, + probeRadius: 1.4, + atomRadii: function () { + return 1; + }, + density: 1.1, + interactive: !1, + smoothingIterations: 1, + }), + this.exactBoundary && (this.boundaryDelta = { dx: 0, dy: 0, dz: 0 }), + this.density < 0.05 && (this.density = 0.05); + }), + (Bs.prototype.findBounds = function () { + for (var t = 0, e = this.atomIndices; t < e.length; t++) { + var n = e[t], + r = this.parameters.exactBoundary + ? 0 + : this.vdwScaleFactor * this.parameters.atomRadius(n) + + this.parameters.probeRadius, + i = this.x[n], + o = this.y[n], + n = this.z[n]; + r < 0 || + ((this.minX = Math.min(this.minX, i - r)), + (this.minY = Math.min(this.minY, o - r)), + (this.minZ = Math.min(this.minZ, n - r)), + (this.maxX = Math.max(this.maxX, i + r)), + (this.maxY = Math.max(this.maxY, o + r)), + (this.maxZ = Math.max(this.maxZ, n + r))); + } + this.minX === Number.MAX_VALUE && + ((this.minX = this.minY = this.minZ = -1), + (this.maxX = this.maxY = this.maxZ = 1)), + (this.minX -= this.parameters.boundaryDelta.dx), + (this.minY -= this.parameters.boundaryDelta.dy), + (this.minZ -= this.parameters.boundaryDelta.dz), + (this.maxX += this.parameters.boundaryDelta.dx), + (this.maxY += this.parameters.boundaryDelta.dy), + (this.maxZ += this.parameters.boundaryDelta.dz), + (this.nX = Math.floor((this.maxX - this.minX) * this.parameters.density)), + (this.nY = Math.floor((this.maxY - this.minY) * this.parameters.density)), + (this.nZ = Math.floor((this.maxZ - this.minZ) * this.parameters.density)), + (this.nX = Math.min(this.nX, 333)), + (this.nY = Math.min(this.nY, 333)), + (this.nZ = Math.min(this.nZ, 333)), + (this.dX = (this.maxX - this.minX) / (this.nX - 1)), + (this.dY = (this.maxY - this.minY) / (this.nY - 1)), + (this.dZ = (this.maxZ - this.minZ) / (this.nZ - 1)); + }), + (Bs.prototype.initData = function () { + for ( + var t = this.nX * this.nY * this.nZ, + e = + ((this.field = new Float32Array(t)), + (this.distanceField = new Float32Array(t)), + (this.proximityMap = new Int32Array(t)), + Number.POSITIVE_INFINITY), + n = 0, + r = this.proximityMap.length; + n < r; + n++ + ) + (this.distanceField[n] = e), (this.proximityMap[n] = -1); + }), + (Bs.prototype.updateMinIndex = function (t, e, n) { + (this.minIndex.i = Math.max(0 | Math.floor((t - this.minX) / this.dX), 0)), + (this.minIndex.j = Math.max(0 | Math.floor((e - this.minY) / this.dY), 0)), + (this.minIndex.k = Math.max(0 | Math.floor((n - this.minZ) / this.dZ), 0)); + }), + (Bs.prototype.updateMaxIndex = function (t, e, n) { + (this.maxIndex.i = Math.min(0 | Math.ceil((t - this.minX) / this.dX), this.nX)), + (this.maxIndex.j = Math.min( + 0 | Math.ceil((e - this.minY) / this.dY), + this.nY, + )), + (this.maxIndex.k = Math.min( + 0 | Math.ceil((n - this.minZ) / this.dZ), + this.nZ, + )); + }), + (Bs.prototype.addBall = function (t, e) { + for ( + var n = e * e, + r = this.x[t], + i = this.y[t], + o = this.z[t], + a = + (this.updateMinIndex(r - e, i - e, o - e), + this.updateMaxIndex(r + e, i + e, o + e), + this.minIndex.i), + s = this.minIndex.j, + e = this.minIndex.k, + l = this.maxIndex.i, + u = this.maxIndex.j, + c = this.maxIndex.k, + r = this.minX - r, + i = this.minY - i, + o = this.minZ - o, + A = e; + A < c; + A++ + ) + for (var h = o + A * this.dZ, p = h * h, d = A * this.nY, f = s; f < u; f++) + for ( + var g = i + f * this.dY, m = p + g * g, v = this.nX * (d + f), b = a; + b < l; + b++ + ) { + var y = r + b * this.dX, + y = m + y * y, + w = v + b, + E = n / (1e-6 + y) - 1; + y < this.distanceField[w] && + ((this.proximityMap[w] = t), (this.distanceField[w] = y)), + 0 < E && (this.field[w] += E); + } + }), + (Bs.prototype.processChunks = function () { + return D(this, void 0, void 0, function () { + var e, n, r, i, o, a; + return P(this, function (t) { + switch (t.label) { + case 0: + return ( + (e = 1e4), + (n = ro.Utils.PerformanceMonitor.currentTime()), + [4, this.ctx.updateProgress('Creating field...', !0)] + ); + case 1: + t.sent(), (r = 0), (i = this.atomIndices.length), (t.label = 2); + case 2: + return r < i + ? ((a = this.atomIndices[r]), + 0 <= + (o = + this.vdwScaleFactor * this.parameters.atomRadius(a) + + this.parameters.probeRadius) && this.addBall(a, o), + (r + 1) % e == 0 && + (a = ro.Utils.PerformanceMonitor.currentTime()) - n > + ro.Computation.UpdateProgressDelta + ? ((n = a), + [4, this.ctx.updateProgress('Creating field...', !0, r, i)]) + : [3, 4]) + : [3, 5]; + case 3: + t.sent(), (t.label = 4); + case 4: + return r++, [3, 2]; + case 5: + return [2]; + } + }); + }); + }), + (Bs.prototype.finish = function () { + var t = io.LinearAlgebra.Matrix4.zero(), + t = + (io.LinearAlgebra.Matrix4.fromTranslation(t, [ + this.minX, + this.minY, + this.minZ, + ]), + (t[0] = this.dX), + (t[5] = this.dY), + (t[10] = this.dZ), + { + data: { + scalarField: new ro.Formats.Density.Field3DZYX(this.field, [ + this.nX, + this.nY, + this.nZ, + ]), + annotationField: this.parameters.interactive + ? new ro.Formats.Density.Field3DZYX(this.proximityMap, [ + this.nX, + this.nY, + this.nZ, + ]) + : void 0, + isoLevel: 0.05, + }, + bottomLeft: io.LinearAlgebra.Vector3.fromValues( + this.minX, + this.minY, + this.minZ, + ), + topRight: io.LinearAlgebra.Vector3.fromValues( + this.maxX, + this.maxY, + this.maxZ, + ), + transform: t, + inputParameters: this.inputParameters, + parameters: this.parameters, + }); + return (this.distanceField = null), (this.proximityMap = null), t; + }), + (Bs.prototype.run = function () { + return D(this, void 0, void 0, function () { + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, this.ctx.updateProgress('Initializing...')]; + case 1: + return ( + t.sent(), + this.findBounds(), + this.initData(), + [4, this.processChunks()] + ); + case 2: + return ( + t.sent(), + [ + 4, + this.ctx.updateProgress( + 'Finalizing...', + void 0, + this.atomIndices.length, + this.atomIndices.length, + ), + ] + ); + case 3: + return t.sent(), [2, this.finish()]; + } + }); + }); + }), + (ao = Bs), + (r.createMolecularIsoFieldAsync = Cs), + (r.computeMolecularSurfaceAsync = function (a) { + var t = this; + return ro.computation(function (o) { + return D(t, void 0, void 0, function () { + var e, n, r, i; + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, Cs(a).run(o)]; + case 1: + return (e = t.sent()), [4, io.MarchingCubes.compute(e.data).run(o)]; + case 2: + return ( + (n = t.sent()), [4, io.Surface.transform(n, e.transform).run(o)] + ); + case 3: + return ( + (n = t.sent()), + (r = (a.parameters && a.parameters.smoothingIterations) || 1), + (i = 1), + a.parameters && + a.parameters.density < 1 && + (i = 2 / a.parameters.density), + [4, io.Surface.laplacianSmooth(n, r, i).run(o)] + ); + case 4: + return [2, { surface: (n = t.sent()), usedParameters: e.parameters }]; + } + }); + }); + }); + }), + (e = F = F || {}), + (function (r) { + var t = so.Utils.DataTable, + n = + ((e.prototype.add = function (t, e, n, r) { + void 0 === r && (r = !0); + var i = this.map.get(t); + void 0 !== i + ? void 0 === i.get(e) && i.set(e, n) + : ((i = so.Utils.FastMap.create()).set(e, n), this.map.set(t, i)), + r && this.add(e, t, n, !1); + }), + e); + function e(t) { + (this.id = t), (this.map = so.Utils.FastMap.create()); + } + function i() { + this.entries = so.Utils.FastMap.create(); + } + function o(t, e, n) { + (this.asymId = t), (this.seqNumber = e), (this.insCode = n); + } + function a(t, e, n, r) { + void 0 === r && (r = {}), + (this.type = t), + (this.startResidueId = e), + (this.endResidueId = n), + (this.info = r), + (this.startResidueIndex = -1), + (this.endResidueIndex = -1); + } + (r.ComponentBondInfoEntry = n), + (i.prototype.newEntry = function (t) { + var e = new n(t); + return this.entries.set(t, e), e; + }), + (r.ComponentBondInfo = i), + (o.areEqual = function (t, e, n, r, i) { + return t.asymId === n[e] && t.seqNumber === r[e] && t.insCode === i[e]; + }), + (o.compare = function (t, e) { + return t.asymId === e.asymId + ? t.seqNumber === e.seqNumber + ? t.insCode === e.insCode + ? 0 + : void 0 === t.insCode || + (void 0 !== e.insCode && t.insCode < e.insCode) + ? -1 + : 1 + : t.seqNumber < e.seqNumber + ? -1 + : 1 + : t.asymId < e.asymId + ? -1 + : 1; + }), + (o.compareResidue = function (t, e, n, r, i) { + return t.asymId === n[e] + ? t.seqNumber === r[e] + ? t.insCode === i[e] + ? 0 + : void 0 === t.insCode || (void 0 !== i[e] && t.insCode < i[e]) + ? -1 + : 1 + : t.seqNumber < r[e] + ? -1 + : 1 + : t.asymId < n[e] + ? -1 + : 1; + }), + (r.PolyResidueIdentifier = o), + Object.defineProperty(a.prototype, 'length', { + get: function () { + return this.endResidueIndex - this.startResidueIndex; + }, + enumerable: !0, + configurable: !0, + }), + (r.SecondaryStructureElement = a); + (r.SymmetryInfo = function (t, e, n, r, i) { + (this.spacegroupName = t), + (this.cellSize = e), + (this.cellAngles = n), + (this.toFracTransform = r), + (this.isNonStandardCrytalFrame = i); + }), + (l._resKey = function (t, e) { + return t < e ? t + '-' + e : e + '-' + t; + }), + (l.prototype.getResiduePairIndex = function () { + if (!this._residuePairIndex) { + this._residuePairIndex = so.Utils.FastMap.create(); + for (var t = 0, e = this.entries; t < e.length; t++) + for (var n = e[t], r = n.partners, i = r.length, o = 0; o < i - 1; o++) + for (var a = o + o; a < i; a++) { + var s = l._resKey(r[o].residueIndex, r[a].residueIndex); + this._residuePairIndex.has(s) + ? this._residuePairIndex.get(s).push(n) + : this._residuePairIndex.set(s, [n]); + } + } + return this._residuePairIndex; + }), + (l.prototype.getAtomIndex = function () { + if (!this._atomIndex) { + this._atomIndex = so.Utils.FastMap.create(); + for (var t = 0, e = this.entries; t < e.length; t++) + for (var n = e[t], r = 0, i = n.partners; r < i.length; r++) { + var o = i[r].atomIndex; + this._atomIndex.has(o) + ? this._atomIndex.get(o).push(n) + : this._atomIndex.set(o, [n]); + } + } + return this._atomIndex; + }), + (l.prototype.getResidueEntries = function (t, e) { + return this.getResiduePairIndex().get(l._resKey(t, e)) || l._emptyEntry; + }), + (l.prototype.getAtomEntries = function (t) { + return this.getAtomIndex().get(t) || l._emptyEntry; + }), + (l._emptyEntry = []); + var s = l; + function l(t) { + (this.entries = t), + (this._residuePairIndex = void 0), + (this._atomIndex = void 0); + } + r.StructConn = s; + function u(t, e) { + (this.operators = t), (this.asymIds = e); + } + function c(t) { + (this.name = t), (this.gens = []); + } + function A(t, e) { + (this.operators = t), (this.assemblies = e); + } + (r.AssemblyOperator = function (t, e, n) { + (this.id = t), (this.name = e), (this.operator = n); + }), + (r.AssemblyGenEntry = u), + (r.AssemblyGen = c); + (r.AssemblyInfo = A), + (s = r.Tables || (r.Tables = {})), + (h = t.typedColumn(Int32Array)), + (f = t.typedColumn(Float32Array)), + (p = t.stringColumn), + (d = t.stringNullColumn), + (s.Positions = { x: f, y: f, z: f }), + (s.Atoms = { + id: h, + altLoc: p, + residueIndex: h, + chainIndex: h, + entityIndex: h, + name: p, + elementSymbol: p, + occupancy: f, + tempFactor: f, + authName: p, + rowIndex: h, + }), + (s.Residues = { + name: p, + seqNumber: h, + asymId: p, + authName: p, + authSeqNumber: h, + authAsymId: p, + insCode: d, + entityId: p, + isHet: t.typedColumn(Int8Array), + atomStartIndex: h, + atomEndIndex: h, + chainIndex: h, + entityIndex: h, + secondaryStructureIndex: h, + }), + (s.Chains = { + asymId: p, + entityId: p, + authAsymId: p, + atomStartIndex: h, + atomEndIndex: h, + residueStartIndex: h, + residueEndIndex: h, + entityIndex: h, + sourceChainIndex: void 0, + operatorIndex: void 0, + }), + (s.Entities = { + entityId: p, + type: t.customColumn(), + atomStartIndex: h, + atomEndIndex: h, + residueStartIndex: h, + residueEndIndex: h, + chainStartIndex: h, + chainEndIndex: h, + }), + (s.Bonds = { atomAIndex: h, atomBIndex: h, type: t.typedColumn(Int8Array) }), + (s.ModifiedResidues = { + asymId: p, + seqNumber: h, + insCode: d, + parent: p, + details: d, + }), + (g.prototype.apply = function (t) { + so.Geometry.LinearAlgebra.Vector3.transformMat4(t, t, this.matrix); + }), + (g.applyToModelUnsafe = function (t, e) { + for ( + var n = so.Geometry.LinearAlgebra.Vector3.zero(), + r = e.positions, + i = r.x, + o = r.y, + a = r.z, + s = 0, + l = e.positions.count; + s < l; + s++ + ) + (n[0] = i[s]), + (n[1] = o[s]), + (n[2] = a[s]), + so.Geometry.LinearAlgebra.Vector3.transformMat4(n, n, t), + (i[s] = n[0]), + (o[s] = n[1]), + (a[s] = n[2]); + }); + var h, + p, + d, + f = g; + function g(t, e, n) { + (this.matrix = t), (this.id = e), (this.isIdentity = n); + } + function m(t) { + var e = so.Utils.extend({}, t), + n = void 0; + return ( + Object.defineProperty(e, 'queryContext', { + enumerable: !0, + configurable: !1, + get: function () { + return (n = n || r.Query.Context.ofStructure(e)); + }, + }), + e + ); + } + (r.Operator = f), + ((t = r.Molecule || (r.Molecule = {})).create = function (t, e, n) { + return { id: t, models: e, properties: (n = void 0 === n ? {} : n) }; + }), + ((t = t.Model || (t.Model = {})).create = m), + ((s = t.Source || (t.Source = {}))[(s.File = 0)] = 'File'), + (s[(s.Computed = 1)] = 'Computed'), + (t.withTransformedXYZ = function (t, e, n) { + for ( + var r = t.positions, + i = r.x, + o = r.y, + a = r.z, + s = (r = t.positions.getBuilder(t.positions.count).seal()).x, + l = r.y, + u = r.z, + c = so.Geometry.LinearAlgebra.Vector3.zero(), + A = 0, + h = t.positions.count; + A < h; + A++ + ) + n(e, i[A], o[A], a[A], c), (s[A] = c[0]), (l[A] = c[1]), (u[A] = c[2]); + return m({ + id: t.id, + modelId: t.modelId, + data: t.data, + positions: r, + parent: t.parent, + source: t.source, + operators: t.operators, + }); + }); + })((so = e.Core || (e.Core = {})).Structure || (so.Structure = {})), + (t = F = F || {}), + (lo = t.Core || (t.Core = {})), + ((uo = lo.Structure || (lo.Structure = {})).isBondTypeCovalent = function (t) { + return 0 <= t && t <= 5; + }), + (co = { + H: 0, + h: 0, + D: 0, + d: 0, + T: 0, + t: 0, + He: 2, + HE: 2, + he: 2, + Li: 3, + LI: 3, + li: 3, + Be: 4, + BE: 4, + be: 4, + B: 5, + b: 5, + C: 6, + c: 6, + N: 7, + n: 7, + O: 8, + o: 8, + F: 9, + f: 9, + Ne: 10, + NE: 10, + ne: 10, + Na: 11, + NA: 11, + na: 11, + Mg: 12, + MG: 12, + mg: 12, + Al: 13, + AL: 13, + al: 13, + Si: 14, + SI: 14, + si: 14, + P: 15, + p: 15, + S: 16, + s: 16, + Cl: 17, + CL: 17, + cl: 17, + Ar: 18, + AR: 18, + ar: 18, + K: 19, + k: 19, + Ca: 20, + CA: 20, + ca: 20, + Sc: 21, + SC: 21, + sc: 21, + Ti: 22, + TI: 22, + ti: 22, + V: 23, + v: 23, + Cr: 24, + CR: 24, + cr: 24, + Mn: 25, + MN: 25, + mn: 25, + Fe: 26, + FE: 26, + fe: 26, + Co: 27, + CO: 27, + co: 27, + Ni: 28, + NI: 28, + ni: 28, + Cu: 29, + CU: 29, + cu: 29, + Zn: 30, + ZN: 30, + zn: 30, + Ga: 31, + GA: 31, + ga: 31, + Ge: 32, + GE: 32, + ge: 32, + As: 33, + AS: 33, + as: 33, + Se: 34, + SE: 34, + se: 34, + Br: 35, + BR: 35, + br: 35, + Kr: 36, + KR: 36, + kr: 36, + Rb: 37, + RB: 37, + rb: 37, + Sr: 38, + SR: 38, + sr: 38, + Y: 39, + y: 39, + Zr: 40, + ZR: 40, + zr: 40, + Nb: 41, + NB: 41, + nb: 41, + Mo: 42, + MO: 42, + mo: 42, + Tc: 43, + TC: 43, + tc: 43, + Ru: 44, + RU: 44, + ru: 44, + Rh: 45, + RH: 45, + rh: 45, + Pd: 46, + PD: 46, + pd: 46, + Ag: 47, + AG: 47, + ag: 47, + Cd: 48, + CD: 48, + cd: 48, + In: 49, + IN: 49, + in: 49, + Sn: 50, + SN: 50, + sn: 50, + Sb: 51, + SB: 51, + sb: 51, + Te: 52, + TE: 52, + te: 52, + I: 53, + i: 53, + Xe: 54, + XE: 54, + xe: 54, + Cs: 55, + CS: 55, + cs: 55, + Ba: 56, + BA: 56, + ba: 56, + La: 57, + LA: 57, + la: 57, + Ce: 58, + CE: 58, + ce: 58, + Pr: 59, + PR: 59, + pr: 59, + Nd: 60, + ND: 60, + nd: 60, + Pm: 61, + PM: 61, + pm: 61, + Sm: 62, + SM: 62, + sm: 62, + Eu: 63, + EU: 63, + eu: 63, + Gd: 64, + GD: 64, + gd: 64, + Tb: 65, + TB: 65, + tb: 65, + Dy: 66, + DY: 66, + dy: 66, + Ho: 67, + HO: 67, + ho: 67, + Er: 68, + ER: 68, + er: 68, + Tm: 69, + TM: 69, + tm: 69, + Yb: 70, + YB: 70, + yb: 70, + Lu: 71, + LU: 71, + lu: 71, + Hf: 72, + HF: 72, + hf: 72, + Ta: 73, + TA: 73, + ta: 73, + W: 74, + w: 74, + Re: 75, + RE: 75, + re: 75, + Os: 76, + OS: 76, + os: 76, + Ir: 77, + IR: 77, + ir: 77, + Pt: 78, + PT: 78, + pt: 78, + Au: 79, + AU: 79, + au: 79, + Hg: 80, + HG: 80, + hg: 80, + Tl: 81, + TL: 81, + tl: 81, + Pb: 82, + PB: 82, + pb: 82, + Bi: 83, + BI: 83, + bi: 83, + Po: 84, + PO: 84, + po: 84, + At: 85, + AT: 85, + at: 85, + Rn: 86, + RN: 86, + rn: 86, + Fr: 87, + FR: 87, + fr: 87, + Ra: 88, + RA: 88, + ra: 88, + Ac: 89, + AC: 89, + ac: 89, + Th: 90, + TH: 90, + th: 90, + Pa: 91, + PA: 91, + pa: 91, + U: 92, + u: 92, + Np: 93, + NP: 93, + np: 93, + Pu: 94, + PU: 94, + pu: 94, + Am: 95, + AM: 95, + am: 95, + Cm: 96, + CM: 96, + cm: 96, + Bk: 97, + BK: 97, + bk: 97, + Cf: 98, + CF: 98, + cf: 98, + Es: 99, + ES: 99, + es: 99, + Fm: 100, + FM: 100, + fm: 100, + Md: 101, + MD: 101, + md: 101, + No: 102, + NO: 102, + no: 102, + Lr: 103, + LR: 103, + lr: 103, + Rf: 104, + RF: 104, + rf: 104, + Db: 105, + DB: 105, + db: 105, + Sg: 106, + SG: 106, + sg: 106, + Bh: 107, + BH: 107, + bh: 107, + Hs: 108, + HS: 108, + hs: 108, + Mt: 109, + MT: 109, + mt: 109, + }), + (Ao = { + 0: 1.42, + 1: 1.42, + 3: 2.7, + 4: 2.7, + 6: 1.75, + 7: 1.6, + 8: 1.52, + 11: 2.7, + 12: 2.7, + 13: 2.7, + 14: 1.9, + 15: 1.9, + 16: 1.9, + 17: 1.8, + 19: 2.7, + 20: 2.7, + 21: 2.7, + 22: 2.7, + 23: 2.7, + 24: 2.7, + 25: 2.7, + 26: 2.7, + 27: 2.7, + 28: 2.7, + 29: 2.7, + 30: 2.7, + 31: 2.7, + 33: 2.68, + 37: 2.7, + 38: 2.7, + 39: 2.7, + 40: 2.7, + 41: 2.7, + 42: 2.7, + 43: 2.7, + 44: 2.7, + 45: 2.7, + 46: 2.7, + 47: 2.7, + 48: 2.7, + 49: 2.7, + 50: 2.7, + 55: 2.7, + 56: 2.7, + 57: 2.7, + 58: 2.7, + 59: 2.7, + 60: 2.7, + 61: 2.7, + 62: 2.7, + 63: 2.7, + 64: 2.7, + 65: 2.7, + 66: 2.7, + 67: 2.7, + 68: 2.7, + 69: 2.7, + 70: 2.7, + 71: 2.7, + 72: 2.7, + 73: 2.7, + 74: 2.7, + 75: 2.7, + 76: 2.7, + 77: 2.7, + 78: 2.7, + 79: 2.7, + 80: 2.7, + 81: 2.7, + 82: 2.7, + 83: 2.7, + 87: 2.7, + 88: 2.7, + 89: 2.7, + 90: 2.7, + 91: 2.7, + 92: 2.7, + 93: 2.7, + 94: 2.7, + 95: 2.7, + 96: 2.7, + 97: 2.7, + 98: 2.7, + 99: 2.7, + 100: 2.7, + 101: 2.7, + 102: 2.7, + 103: 2.7, + 104: 2.7, + 105: 2.7, + 106: 2.7, + 107: 2.7, + 108: 2.7, + 109: 2.88, + }), + (ho = { + 0: 0.8, + 20: 1.31, + 27: 1.3, + 35: 1.3, + 44: 1.05, + 54: 1, + 60: 1.84, + 72: 1.88, + 84: 1.75, + 85: 1.56, + 86: 1.76, + 98: 1.6, + 99: 1.68, + 100: 1.63, + 112: 1.55, + 113: 1.59, + 114: 1.36, + 129: 1.45, + 144: 1.6, + 170: 1.4, + 180: 1.55, + 202: 2.4, + 222: 2.24, + 224: 1.91, + 225: 1.98, + 243: 2.02, + 269: 2, + 293: 1.9, + 480: 2.3, + 512: 2.3, + 544: 2.3, + 612: 2.1, + 629: 1.54, + 665: 1, + 813: 2.6, + 854: 2.27, + 894: 1.93, + 896: 2.1, + 937: 2.05, + 938: 2.06, + 981: 1.62, + 1258: 2.68, + 1309: 2.33, + 1484: 1, + 1763: 2.14, + 1823: 2.48, + 1882: 2.1, + 1944: 1.72, + 2380: 2.34, + 3367: 2.44, + 3733: 2.11, + 3819: 2.6, + 3821: 2.36, + 4736: 2.75, + 5724: 2.73, + 5959: 2.63, + 6519: 2.84, + 6750: 2.87, + 8991: 2.81, + }), + (po = (function () { + for ( + var t = lo.Utils.FastSet.create(), + e = 0, + n = [ + 'LI', + 'NA', + 'K', + 'RB', + 'CS', + 'FR', + 'BE', + 'MG', + 'CA', + 'SR', + 'BA', + 'RA', + 'AL', + 'GA', + 'IN', + 'SN', + 'TL', + 'PB', + 'BI', + 'SC', + 'TI', + 'V', + 'CR', + 'MN', + 'FE', + 'CO', + 'NI', + 'CU', + 'ZN', + 'Y', + 'ZR', + 'NB', + 'MO', + 'TC', + 'RU', + 'RH', + 'PD', + 'AG', + 'CD', + 'LA', + 'HF', + 'TA', + 'W', + 'RE', + 'OS', + 'IR', + 'PT', + 'AU', + 'HG', + 'AC', + 'RF', + 'DB', + 'SG', + 'BH', + 'HS', + 'MT', + 'CE', + 'PR', + 'ND', + 'PM', + 'SM', + 'EU', + 'GD', + 'TB', + 'DY', + 'HO', + 'ER', + 'TM', + 'YB', + 'LU', + 'TH', + 'PA', + 'U', + 'NP', + 'PU', + 'AM', + 'CM', + 'BK', + 'CF', + 'ES', + 'FM', + 'MD', + 'NO', + 'LR', + ]; + e < n.length; + e++ + ) + t.add(co[n[e]]); + return t; + })()), + (fo = co.H), + (go = lo.Utils.ChunkedArray.add), + (uo.computeBonds = function (t, e, n) { + if (t.data.bonds.input) { + var r = t, + i = e, + o = r.data.bonds.input; + if (i.length === r.data.atoms.count) return o; + for ( + var a = lo.Utils.Mask.ofIndices(r.data.atoms.count, i), + s = o.atomAIndex, + l = o.atomBIndex, + u = o.type, + c = 0, + A = 0, + h = o.count; + A < h; + A++ + ) + a.has(s[A]) && a.has(l[A]) && c++; + for ( + var p = (i = lo.Utils.DataTable.ofDefinition(uo.Tables.Bonds, c)) + .atomAIndex, + d = i.atomBIndex, + f = i.type, + g = r.data.atoms.elementSymbol, + m = 0, + A = 0, + h = o.count; + A < h; + A++ + ) { + var v = s[A], + b = l[A]; + a.has(v) && + a.has(b) && + ((p[m] = v), + (d[m] = b), + (v = Ds(g[v]) || Ds(g[b])), + (f[m] = v ? 6 : u[A]), + m++); + } + return i; + } + return Ss(t, e, { + maxHbondLength: (n && n.maxHbondLength) || 1.15, + forceCompute: !(!n || !n.forceCompute), + }); + }), + (r = F = F || {}), + (function (t) { + var r, + o = mo.Geometry.LinearAlgebra.Matrix4, + n = mo.Geometry.LinearAlgebra.Vector4; + function e(t) { + if ( + ((this.info = t), + (this.temp = o.zero()), + (this.tempV = new Float64Array(4)), + void 0 === r.Spacegroup[t.spacegroupName]) + ) + throw ( + "'" + + t.spacegroupName + + "' is not a spacegroup recognized by the library." + ); + (this.space = this.getSpace()), (this.operators = this.getOperators()); + } + Object.defineProperty(e.prototype, 'operatorCount', { + get: function () { + return this.operators.length; + }, + enumerable: !0, + configurable: !0, + }), + (e.prototype.getOperatorMatrix = function (t, e, n, r, i) { + return ( + (this.tempV[0] = e), + (this.tempV[1] = n), + (this.tempV[2] = r), + o.fromTranslation(this.temp, this.tempV), + o.mul( + i, + o.mul(i, o.mul(i, this.space.fromFrac, this.temp), this.operators[t]), + this.space.toFrac, + ), + i + ); + }), + (e.prototype.getSpace = function () { + var t = this.info.toFracTransform, + e = o.zero(); + return ( + o.invert(e, t), + { + toFrac: t, + fromFrac: e, + baseX: n.transform(n.zero(), n.fromValues(1, 0, 0, 1), t), + baseY: n.transform(n.zero(), n.fromValues(0, 1, 0, 1), t), + baseZ: n.transform(n.zero(), n.fromValues(0, 0, 1, 1), t), + } + ); + }), + (e.getOperator = function (t) { + var e = r.Transform[t[0]], + n = r.Transform[t[1]], + t = r.Transform[t[2]]; + return o.ofRows([e, n, t, [0, 0, 0, 1]]); + }), + (e.prototype.getOperators = function () { + return r.Group[r.Spacegroup[this.info.spacegroupName]].map(function (t) { + return e.getOperator(r.Operator[t]); + }); + }), + (t.Spacegroup = e), + ((t = r = t.SpacegroupTables || (t.SpacegroupTables = {})).Transform = [ + [1, 0, 0, 0], + [0, 1, 0, 0], + [0, 0, 1, 0], + [-1, 0, 0, 0], + [0, -1, 0, 0], + [0, 0, -1, 0], + [0, 1, 0, 0.5], + [1, 0, 0, 0.5], + [-1, 0, 0, 0.5], + [0, 0, 1, 0.5], + [0, -1, 0, 0.5], + [0, 0, -1, 0.5], + [1, 0, 0, 0.25], + [0, -1, 0, 0.25], + [0, 0, 1, 0.25], + [-1, 0, 0, 0.25], + [0, 1, 0, 0.25], + [0, -1, 0, 0.75], + [0, 0, 1, 0.75], + [0, 1, 0, 0.75], + [1, 0, 0, 0.75], + [-1, 0, 0, 0.75], + [0, 0, -1, 0.25], + [0, 0, -1, 0.75], + [1, -1, 0, 0], + [-1, 1, 0, 0], + [0, 0, 1, 0.333333333333333], + [0, 0, 1, 0.666666666666667], + [1, 0, 0, 0.666666666666667], + [0, 1, 0, 0.333333333333333], + [0, -1, 0, 0.666666666666667], + [1, -1, 0, 0.333333333333333], + [-1, 1, 0, 0.666666666666667], + [-1, 0, 0, 0.333333333333333], + [1, 0, 0, 0.333333333333333], + [0, 1, 0, 0.666666666666667], + [0, -1, 0, 0.333333333333333], + [1, -1, 0, 0.666666666666667], + [-1, 1, 0, 0.333333333333333], + [-1, 0, 0, 0.666666666666667], + [0, 0, -1, 0.333333333333333], + [0, 0, -1, 0.666666666666667], + [0, 0, 1, 0.833333333333333], + [0, 0, 1, 0.166666666666667], + [0, 0, -1, 0.833333333333333], + [0, 0, -1, 0.166666666666667], + ]), + (t.Operator = [ + [0, 1, 2], + [3, 4, 5], + [3, 1, 5], + [3, 6, 5], + [7, 6, 2], + [8, 6, 5], + [0, 4, 2], + [0, 4, 9], + [7, 10, 2], + [7, 10, 9], + [0, 10, 2], + [8, 10, 5], + [3, 1, 11], + [3, 6, 11], + [0, 10, 9], + [8, 6, 11], + [3, 4, 2], + [0, 4, 5], + [3, 4, 9], + [7, 10, 5], + [8, 4, 9], + [8, 10, 9], + [8, 10, 2], + [0, 6, 9], + [3, 10, 9], + [0, 10, 11], + [7, 1, 9], + [8, 1, 11], + [7, 4, 11], + [7, 6, 9], + [7, 10, 11], + [3, 10, 2], + [8, 1, 5], + [0, 4, 11], + [3, 1, 2], + [3, 1, 9], + [7, 4, 2], + [8, 1, 2], + [8, 1, 9], + [3, 6, 9], + [7, 4, 9], + [8, 6, 2], + [8, 6, 9], + [3, 6, 2], + [12, 13, 14], + [15, 16, 14], + [12, 17, 18], + [15, 19, 18], + [20, 13, 18], + [21, 16, 18], + [20, 17, 14], + [21, 19, 14], + [0, 1, 5], + [8, 10, 11], + [7, 6, 11], + [7, 6, 5], + [8, 4, 2], + [7, 4, 5], + [7, 1, 5], + [7, 1, 11], + [0, 10, 5], + [0, 1, 11], + [0, 6, 11], + [0, 6, 5], + [3, 10, 11], + [8, 4, 11], + [15, 13, 22], + [12, 16, 22], + [15, 17, 23], + [12, 19, 23], + [21, 13, 23], + [20, 16, 23], + [21, 17, 22], + [20, 19, 22], + [4, 0, 2], + [1, 3, 2], + [4, 0, 14], + [1, 3, 18], + [4, 0, 9], + [1, 3, 9], + [4, 0, 18], + [1, 3, 14], + [10, 7, 9], + [6, 8, 9], + [4, 7, 14], + [6, 3, 18], + [10, 0, 18], + [1, 8, 14], + [1, 3, 5], + [4, 0, 5], + [6, 8, 11], + [10, 7, 11], + [1, 3, 11], + [4, 0, 11], + [10, 7, 2], + [6, 8, 2], + [3, 10, 22], + [7, 1, 23], + [8, 4, 23], + [0, 6, 22], + [1, 0, 5], + [4, 3, 5], + [1, 0, 23], + [4, 3, 22], + [10, 7, 14], + [6, 8, 18], + [8, 6, 22], + [7, 10, 23], + [4, 3, 11], + [1, 0, 11], + [1, 0, 22], + [4, 3, 23], + [10, 7, 18], + [6, 8, 14], + [8, 6, 23], + [7, 10, 22], + [6, 7, 11], + [10, 8, 11], + [8, 1, 23], + [0, 10, 22], + [3, 6, 22], + [7, 4, 23], + [4, 3, 2], + [1, 0, 2], + [10, 8, 2], + [6, 7, 2], + [4, 3, 9], + [1, 0, 9], + [10, 8, 9], + [6, 7, 9], + [4, 8, 14], + [6, 0, 18], + [10, 3, 18], + [1, 7, 14], + [4, 8, 18], + [6, 0, 14], + [10, 3, 14], + [1, 7, 18], + [6, 7, 5], + [10, 8, 5], + [6, 8, 5], + [10, 7, 5], + [8, 1, 22], + [0, 10, 23], + [3, 6, 23], + [7, 4, 22], + [4, 24, 2], + [25, 3, 2], + [4, 24, 26], + [25, 3, 27], + [4, 24, 27], + [25, 3, 26], + [28, 29, 26], + [30, 31, 26], + [32, 33, 26], + [34, 35, 27], + [36, 37, 27], + [38, 39, 27], + [2, 0, 1], + [1, 2, 0], + [1, 25, 5], + [24, 0, 5], + [39, 36, 40], + [35, 38, 40], + [37, 34, 40], + [33, 30, 41], + [29, 32, 41], + [31, 28, 41], + [5, 3, 4], + [4, 5, 3], + [25, 1, 5], + [0, 24, 5], + [24, 4, 5], + [3, 25, 5], + [4, 3, 41], + [25, 1, 40], + [24, 4, 41], + [3, 25, 40], + [4, 3, 40], + [25, 1, 41], + [24, 4, 40], + [3, 25, 41], + [35, 34, 40], + [37, 36, 40], + [39, 38, 40], + [29, 28, 41], + [31, 30, 41], + [33, 32, 41], + [3, 5, 4], + [5, 4, 3], + [25, 1, 2], + [0, 24, 2], + [24, 4, 2], + [3, 25, 2], + [25, 1, 9], + [0, 24, 9], + [24, 4, 9], + [3, 25, 9], + [30, 33, 26], + [32, 29, 26], + [28, 31, 26], + [36, 39, 27], + [38, 35, 27], + [34, 37, 27], + [0, 2, 1], + [2, 1, 0], + [30, 33, 42], + [32, 29, 42], + [28, 31, 42], + [36, 39, 43], + [38, 35, 43], + [34, 37, 43], + [7, 9, 6], + [9, 6, 7], + [25, 1, 11], + [0, 24, 11], + [24, 4, 11], + [3, 25, 11], + [35, 34, 44], + [37, 36, 44], + [39, 38, 44], + [29, 28, 45], + [31, 30, 45], + [33, 32, 45], + [8, 11, 10], + [11, 10, 8], + [1, 25, 2], + [24, 0, 2], + [1, 25, 42], + [24, 0, 43], + [1, 25, 43], + [24, 0, 42], + [1, 25, 27], + [24, 0, 26], + [1, 25, 26], + [24, 0, 27], + [1, 25, 9], + [24, 0, 9], + [4, 24, 5], + [25, 3, 5], + [4, 24, 11], + [25, 3, 11], + [1, 0, 40], + [4, 3, 44], + [0, 24, 45], + [1, 0, 41], + [4, 3, 45], + [0, 24, 44], + [0, 24, 40], + [0, 24, 41], + [2, 3, 4], + [5, 3, 1], + [5, 0, 4], + [4, 2, 3], + [1, 5, 3], + [4, 5, 0], + [2, 7, 6], + [2, 8, 10], + [5, 8, 6], + [5, 7, 10], + [1, 9, 7], + [4, 9, 8], + [1, 11, 8], + [4, 11, 7], + [9, 0, 6], + [9, 3, 10], + [11, 3, 6], + [11, 0, 10], + [6, 2, 7], + [10, 2, 8], + [6, 5, 8], + [10, 5, 7], + [9, 7, 1], + [9, 8, 4], + [11, 8, 1], + [11, 7, 4], + [6, 9, 0], + [10, 9, 3], + [6, 11, 3], + [10, 11, 0], + [9, 7, 6], + [9, 8, 10], + [11, 8, 6], + [11, 7, 10], + [6, 9, 7], + [10, 9, 8], + [6, 11, 8], + [10, 11, 7], + [2, 3, 10], + [5, 8, 1], + [11, 0, 4], + [10, 2, 3], + [1, 5, 8], + [4, 11, 0], + [5, 0, 1], + [2, 0, 4], + [2, 3, 1], + [1, 5, 0], + [4, 2, 0], + [1, 2, 3], + [11, 8, 10], + [11, 7, 6], + [9, 7, 10], + [9, 8, 6], + [10, 11, 8], + [6, 11, 7], + [10, 9, 7], + [6, 9, 8], + [5, 8, 10], + [5, 7, 6], + [2, 7, 10], + [2, 8, 6], + [4, 11, 8], + [1, 11, 7], + [4, 9, 7], + [1, 9, 8], + [11, 3, 10], + [11, 0, 6], + [9, 0, 10], + [9, 3, 6], + [10, 5, 8], + [6, 5, 7], + [10, 2, 7], + [6, 2, 8], + [11, 8, 4], + [11, 7, 1], + [9, 7, 4], + [9, 8, 1], + [10, 11, 3], + [6, 11, 0], + [10, 9, 0], + [6, 9, 3], + [22, 15, 13], + [22, 12, 16], + [14, 12, 13], + [14, 15, 16], + [13, 22, 15], + [16, 22, 12], + [13, 14, 12], + [16, 14, 15], + [22, 21, 17], + [22, 20, 19], + [14, 20, 17], + [14, 21, 19], + [13, 23, 21], + [16, 23, 20], + [13, 18, 20], + [16, 18, 21], + [23, 15, 17], + [23, 12, 19], + [18, 12, 17], + [18, 15, 19], + [17, 22, 21], + [19, 22, 20], + [17, 14, 20], + [19, 14, 21], + [23, 21, 13], + [23, 20, 16], + [18, 20, 13], + [18, 21, 16], + [17, 23, 15], + [19, 23, 12], + [17, 18, 12], + [19, 18, 15], + [5, 0, 6], + [2, 7, 4], + [9, 3, 1], + [6, 5, 0], + [4, 2, 7], + [1, 9, 3], + [0, 2, 4], + [3, 2, 1], + [0, 5, 1], + [2, 1, 3], + [2, 4, 0], + [5, 1, 0], + [7, 9, 10], + [8, 9, 6], + [7, 11, 6], + [9, 6, 8], + [9, 10, 7], + [11, 6, 7], + [1, 7, 11], + [4, 8, 11], + [1, 8, 9], + [4, 7, 9], + [0, 9, 10], + [3, 9, 6], + [3, 11, 10], + [0, 11, 6], + [2, 6, 8], + [2, 10, 7], + [5, 6, 7], + [5, 10, 8], + [6, 0, 11], + [10, 3, 11], + [6, 3, 9], + [10, 0, 9], + [7, 2, 10], + [8, 2, 6], + [8, 5, 10], + [7, 5, 6], + [9, 1, 8], + [9, 4, 7], + [11, 1, 7], + [11, 4, 8], + [7, 9, 4], + [8, 9, 1], + [8, 11, 4], + [7, 11, 1], + [9, 6, 3], + [9, 10, 0], + [11, 6, 0], + [11, 10, 3], + [19, 12, 23], + [13, 15, 22], + [16, 21, 18], + [17, 20, 14], + [20, 14, 17], + [21, 18, 16], + [15, 22, 13], + [12, 23, 19], + [18, 16, 21], + [14, 17, 20], + [23, 19, 12], + [22, 13, 15], + [19, 20, 22], + [13, 21, 23], + [16, 15, 14], + [17, 12, 18], + [20, 18, 13], + [21, 14, 19], + [15, 23, 17], + [12, 22, 16], + [18, 19, 15], + [14, 13, 12], + [23, 16, 20], + [22, 17, 21], + [16, 12, 22], + [17, 15, 23], + [19, 21, 14], + [13, 20, 18], + [12, 14, 13], + [15, 18, 19], + [21, 22, 17], + [20, 23, 16], + [14, 16, 15], + [18, 17, 12], + [22, 19, 20], + [23, 13, 21], + [16, 20, 23], + [17, 21, 22], + [19, 15, 18], + [13, 12, 14], + [12, 18, 17], + [15, 14, 16], + [21, 23, 13], + [20, 22, 19], + [14, 19, 21], + [18, 13, 20], + [22, 16, 12], + [23, 17, 15], + [19, 12, 22], + [17, 21, 23], + [16, 15, 18], + [13, 20, 14], + [20, 14, 13], + [15, 18, 16], + [21, 23, 17], + [12, 22, 19], + [18, 16, 15], + [14, 13, 20], + [22, 19, 12], + [23, 17, 21], + [3, 2, 4], + [3, 5, 1], + [0, 5, 4], + [2, 4, 3], + [5, 1, 3], + [5, 4, 0], + [1, 7, 9], + [4, 8, 9], + [1, 8, 11], + [4, 7, 11], + [0, 9, 6], + [3, 9, 10], + [3, 11, 6], + [0, 11, 10], + [2, 6, 7], + [2, 10, 8], + [5, 6, 8], + [5, 10, 7], + [6, 0, 9], + [10, 3, 9], + [6, 3, 11], + [10, 0, 11], + [7, 2, 6], + [8, 2, 10], + [8, 5, 6], + [7, 5, 10], + [9, 1, 7], + [9, 4, 8], + [11, 1, 8], + [11, 4, 7], + [7, 9, 1], + [8, 9, 4], + [8, 11, 1], + [7, 11, 4], + [9, 6, 0], + [9, 10, 3], + [11, 6, 3], + [11, 10, 0], + [8, 9, 10], + [8, 11, 6], + [7, 11, 10], + [9, 10, 8], + [11, 6, 8], + [11, 10, 7], + [6, 0, 2], + [10, 3, 2], + [6, 3, 5], + [10, 0, 5], + [7, 2, 1], + [8, 2, 4], + [8, 5, 1], + [7, 5, 4], + [9, 1, 0], + [9, 4, 3], + [11, 1, 3], + [11, 4, 0], + [1, 7, 2], + [4, 8, 2], + [1, 8, 5], + [4, 7, 5], + [0, 9, 1], + [3, 9, 4], + [3, 11, 1], + [0, 11, 4], + [2, 6, 0], + [2, 10, 3], + [5, 6, 3], + [5, 10, 0], + [0, 2, 6], + [3, 2, 10], + [3, 5, 6], + [0, 5, 10], + [2, 1, 7], + [2, 4, 8], + [5, 1, 8], + [5, 4, 7], + [16, 12, 14], + [13, 21, 18], + [19, 15, 23], + [17, 20, 22], + [12, 14, 16], + [21, 18, 13], + [15, 23, 19], + [20, 22, 17], + [14, 16, 12], + [18, 13, 21], + [23, 19, 15], + [22, 17, 20], + [19, 20, 18], + [17, 15, 14], + [16, 21, 22], + [13, 12, 23], + [20, 18, 19], + [15, 14, 17], + [21, 22, 16], + [12, 23, 13], + [18, 19, 20], + [14, 17, 15], + [22, 16, 21], + [23, 13, 12], + [6, 0, 5], + [10, 3, 5], + [6, 3, 2], + [10, 0, 2], + [7, 2, 4], + [8, 2, 1], + [8, 5, 4], + [7, 5, 1], + [9, 1, 3], + [9, 4, 0], + [11, 1, 0], + [11, 4, 3], + [1, 7, 5], + [4, 8, 5], + [1, 8, 2], + [4, 7, 2], + [0, 9, 4], + [3, 9, 1], + [3, 11, 4], + [0, 11, 1], + [2, 6, 3], + [2, 10, 0], + [5, 6, 0], + [5, 10, 3], + [0, 2, 10], + [3, 2, 6], + [3, 5, 10], + [0, 5, 6], + [2, 1, 8], + [2, 4, 7], + [5, 1, 7], + [5, 4, 8], + [21, 17, 23], + [20, 16, 22], + [12, 13, 18], + [15, 19, 14], + [23, 21, 17], + [22, 20, 16], + [18, 12, 13], + [14, 15, 19], + [17, 23, 21], + [16, 22, 20], + [13, 18, 12], + [19, 14, 15], + [21, 13, 22], + [20, 19, 23], + [12, 17, 14], + [15, 16, 18], + [23, 15, 13], + [22, 12, 19], + [18, 20, 17], + [14, 21, 16], + [17, 22, 15], + [16, 23, 12], + [13, 14, 20], + [19, 18, 21], + [15, 17, 22], + [12, 16, 23], + [20, 13, 14], + [21, 19, 18], + [22, 21, 13], + [23, 20, 19], + [14, 12, 17], + [18, 15, 16], + [13, 23, 15], + [19, 22, 12], + [17, 18, 20], + [16, 14, 21], + [15, 13, 23], + [12, 19, 22], + [20, 17, 18], + [21, 16, 14], + [22, 15, 17], + [23, 12, 16], + [14, 20, 13], + [18, 21, 19], + [13, 22, 21], + [19, 23, 20], + [17, 14, 12], + [16, 18, 15], + [6, 5, 3], + [4, 9, 3], + [9, 3, 4], + [5, 7, 4], + [4, 5, 7], + [5, 3, 6], + ]), + (t.Group = [ + [0], + [0, 1], + [0, 2], + [0, 3], + [0, 2, 4, 5], + [0, 6], + [0, 7], + [0, 6, 4, 8], + [0, 7, 4, 9], + [0, 6, 2, 1], + [0, 3, 1, 10], + [0, 6, 2, 1, 4, 8, 5, 11], + [0, 12, 1, 7], + [0, 1, 13, 14], + [0, 12, 1, 7, 4, 15, 11, 9], + [0, 16, 2, 17], + [0, 18, 12, 17], + [0, 16, 5, 19], + [0, 20, 13, 19], + [0, 18, 12, 17, 4, 21, 15, 19], + [0, 16, 2, 17, 4, 22, 5, 19], + [0, 16, 2, 17, 23, 24, 13, 25, 26, 20, 27, 28, 4, 22, 5, 19], + [0, 16, 17, 2, 29, 21, 30, 15], + [0, 20, 13, 19, 29, 31, 32, 33], + [0, 16, 6, 34], + [0, 18, 7, 34], + [0, 16, 7, 35], + [0, 16, 36, 37], + [0, 18, 36, 38], + [0, 16, 14, 39], + [0, 20, 40, 34], + [0, 16, 8, 41], + [0, 18, 8, 42], + [0, 16, 9, 42], + [0, 16, 6, 34, 4, 22, 8, 41], + [0, 18, 7, 34, 4, 21, 9, 41], + [0, 16, 7, 35, 4, 22, 9, 42], + [0, 16, 6, 34, 23, 24, 14, 39], + [0, 16, 10, 43, 23, 24, 7, 35], + [0, 16, 36, 37, 23, 24, 9, 42], + [0, 16, 8, 41, 23, 24, 40, 38], + [0, 16, 6, 34, 23, 24, 14, 39, 26, 20, 40, 38, 4, 22, 8, 41], + [0, 16, 44, 45, 23, 24, 46, 47, 26, 20, 48, 49, 4, 22, 50, 51], + [0, 16, 6, 34, 29, 21, 9, 42], + [0, 16, 8, 41, 29, 21, 7, 35], + [0, 16, 36, 37, 29, 21, 14, 39], + [0, 16, 2, 17, 1, 52, 6, 34], + [0, 16, 2, 17, 53, 54, 9, 42], + [0, 16, 12, 33, 1, 52, 7, 35], + [0, 16, 2, 17, 11, 55, 8, 41], + [0, 56, 2, 57, 1, 58, 6, 37], + [0, 56, 15, 25, 1, 58, 9, 39], + [0, 20, 27, 17, 1, 59, 40, 34], + [0, 56, 12, 28, 1, 58, 7, 38], + [0, 16, 5, 19, 1, 52, 8, 41], + [0, 22, 13, 28, 1, 55, 14, 38], + [0, 18, 13, 60, 1, 61, 14, 43], + [0, 16, 15, 30, 1, 52, 9, 42], + [0, 16, 5, 19, 11, 55, 6, 34], + [0, 21, 12, 19, 1, 54, 7, 41], + [0, 20, 13, 19, 1, 59, 14, 41], + [0, 20, 3, 30, 1, 59, 10, 42], + [0, 18, 12, 17, 1, 61, 7, 34, 4, 21, 15, 19, 11, 54, 9, 41], + [0, 24, 13, 17, 1, 62, 14, 34, 4, 20, 27, 19, 11, 59, 40, 41], + [0, 16, 2, 17, 1, 52, 6, 34, 4, 22, 5, 19, 11, 55, 8, 41], + [0, 16, 12, 33, 1, 52, 7, 35, 4, 22, 15, 30, 11, 55, 9, 42], + [0, 31, 3, 17, 1, 63, 10, 34, 4, 56, 32, 19, 11, 58, 36, 41], + [0, 22, 2, 19, 64, 59, 14, 38, 4, 16, 5, 17, 65, 62, 40, 39], + [ + 0, 16, 2, 17, 1, 52, 6, 34, 23, 24, 13, 25, 64, 62, 14, 39, 26, 20, 27, + 28, 65, 59, 40, 38, 4, 22, 5, 19, 11, 55, 8, 41, + ], + [ + 0, 16, 2, 17, 66, 67, 44, 45, 23, 24, 13, 25, 68, 69, 46, 47, 26, 20, 27, + 28, 70, 71, 48, 49, 4, 22, 5, 19, 72, 73, 50, 51, + ], + [0, 16, 2, 17, 1, 52, 6, 34, 29, 21, 15, 30, 53, 54, 9, 42], + [0, 16, 5, 19, 1, 52, 8, 41, 29, 21, 12, 33, 53, 54, 7, 35], + [0, 20, 13, 19, 1, 59, 14, 41, 29, 31, 32, 33, 53, 63, 36, 35], + [0, 31, 3, 17, 1, 63, 10, 34, 29, 20, 27, 30, 53, 59, 40, 42], + [0, 16, 74, 75], + [0, 18, 76, 77], + [0, 16, 78, 79], + [0, 18, 80, 81], + [0, 16, 74, 75, 29, 21, 82, 83], + [0, 21, 84, 85, 29, 16, 86, 87], + [0, 16, 88, 89], + [0, 16, 88, 89, 29, 21, 90, 91], + [0, 16, 74, 75, 1, 52, 88, 89], + [0, 16, 78, 79, 1, 52, 92, 93], + [0, 16, 94, 95, 11, 55, 88, 89], + [0, 16, 82, 83, 53, 54, 88, 89], + [0, 16, 74, 75, 1, 52, 88, 89, 29, 21, 82, 83, 53, 54, 90, 91], + [0, 21, 84, 85, 96, 97, 88, 91, 29, 16, 86, 87, 98, 99, 90, 89], + [0, 16, 74, 75, 2, 17, 100, 101], + [0, 16, 94, 95, 5, 19, 100, 101], + [0, 18, 76, 77, 2, 33, 102, 103], + [0, 18, 104, 105, 106, 107, 100, 108], + [0, 16, 78, 79, 2, 17, 109, 108], + [0, 16, 82, 83, 15, 30, 100, 101], + [0, 18, 80, 81, 2, 33, 110, 111], + [0, 18, 112, 113, 114, 115, 100, 108], + [0, 16, 74, 75, 2, 17, 100, 101, 29, 21, 82, 83, 15, 30, 116, 117], + [0, 21, 84, 85, 118, 119, 116, 101, 29, 16, 86, 87, 120, 121, 100, 117], + [0, 16, 74, 75, 6, 34, 122, 123], + [0, 16, 74, 75, 8, 41, 124, 125], + [0, 16, 78, 79, 7, 35, 122, 123], + [0, 16, 82, 83, 9, 42, 122, 123], + [0, 16, 74, 75, 7, 35, 126, 127], + [0, 16, 74, 75, 9, 42, 128, 129], + [0, 16, 78, 79, 6, 34, 126, 127], + [0, 16, 78, 79, 8, 41, 128, 129], + [0, 16, 74, 75, 6, 34, 122, 123, 29, 21, 82, 83, 9, 42, 128, 129], + [0, 16, 74, 75, 7, 35, 126, 127, 29, 21, 82, 83, 8, 41, 124, 125], + [0, 21, 84, 85, 6, 42, 130, 131, 29, 16, 86, 87, 9, 34, 132, 133], + [0, 21, 84, 85, 7, 41, 134, 135, 29, 16, 86, 87, 8, 35, 136, 137], + [0, 16, 89, 88, 2, 17, 122, 123], + [0, 16, 89, 88, 12, 33, 126, 127], + [0, 16, 89, 88, 5, 19, 124, 125], + [0, 16, 89, 88, 15, 30, 128, 129], + [0, 16, 88, 89, 6, 34, 100, 101], + [0, 16, 89, 88, 7, 35, 109, 108], + [0, 16, 89, 88, 8, 41, 138, 139], + [0, 16, 89, 88, 9, 42, 116, 117], + [0, 16, 89, 88, 6, 34, 100, 101, 29, 21, 91, 90, 9, 42, 116, 117], + [0, 16, 89, 88, 7, 35, 109, 108, 29, 21, 91, 90, 8, 41, 138, 139], + [0, 16, 89, 88, 2, 17, 122, 123, 29, 21, 91, 90, 15, 30, 128, 129], + [0, 16, 89, 88, 118, 121, 132, 131, 29, 21, 91, 90, 120, 119, 130, 133], + [0, 16, 74, 75, 2, 17, 100, 101, 1, 52, 88, 89, 6, 34, 122, 123], + [0, 16, 74, 75, 12, 33, 109, 108, 1, 52, 88, 89, 7, 35, 126, 127], + [0, 16, 74, 75, 2, 17, 100, 101, 11, 55, 140, 141, 8, 41, 124, 125], + [0, 16, 74, 75, 2, 17, 100, 101, 53, 54, 90, 91, 9, 42, 128, 129], + [0, 16, 74, 75, 5, 19, 138, 139, 1, 52, 88, 89, 8, 41, 124, 125], + [0, 16, 74, 75, 15, 30, 116, 117, 1, 52, 88, 89, 9, 42, 128, 129], + [0, 16, 94, 95, 5, 19, 100, 101, 11, 55, 88, 89, 6, 34, 124, 125], + [0, 16, 94, 95, 15, 30, 109, 108, 11, 55, 88, 89, 7, 35, 128, 129], + [0, 16, 78, 79, 2, 17, 109, 108, 1, 52, 92, 93, 6, 34, 126, 127], + [0, 16, 78, 79, 12, 33, 100, 101, 1, 52, 92, 93, 7, 35, 122, 123], + [0, 16, 82, 83, 12, 33, 138, 139, 53, 54, 88, 89, 8, 41, 126, 127], + [0, 16, 82, 83, 2, 17, 116, 117, 53, 54, 88, 89, 9, 42, 122, 123], + [0, 16, 78, 79, 5, 19, 116, 117, 1, 52, 92, 93, 8, 41, 128, 129], + [0, 16, 82, 83, 15, 30, 100, 101, 1, 52, 90, 91, 9, 42, 122, 123], + [0, 16, 82, 83, 15, 30, 100, 101, 53, 54, 88, 89, 6, 34, 128, 129], + [0, 16, 82, 83, 5, 19, 109, 108, 53, 54, 88, 89, 7, 35, 124, 125], + [ + 0, 16, 74, 75, 2, 17, 100, 101, 1, 52, 88, 89, 6, 34, 122, 123, 29, 21, + 82, 83, 15, 30, 116, 117, 53, 54, 90, 91, 9, 42, 128, 129, + ], + [ + 0, 16, 74, 75, 12, 33, 109, 108, 1, 52, 88, 89, 7, 35, 126, 127, 29, 21, + 82, 83, 5, 19, 138, 139, 53, 54, 90, 91, 8, 41, 124, 125, + ], + [ + 0, 21, 84, 85, 118, 119, 116, 101, 96, 97, 88, 91, 9, 34, 132, 133, 29, + 16, 86, 87, 120, 121, 100, 117, 98, 99, 90, 89, 6, 42, 130, 131, + ], + [ + 0, 21, 84, 85, 142, 143, 138, 108, 96, 97, 88, 91, 8, 35, 136, 137, 29, + 16, 86, 87, 144, 145, 109, 139, 98, 99, 90, 89, 7, 41, 134, 135, + ], + [0, 146, 147], + [0, 148, 149], + [0, 150, 151], + [0, 146, 147, 152, 153, 154, 155, 156, 157], + [0, 158, 159], + [0, 146, 147, 1, 160, 161], + [ + 0, 146, 147, 1, 160, 161, 152, 153, 154, 162, 163, 164, 155, 156, 157, + 165, 166, 167, + ], + [0, 158, 159, 1, 168, 169], + [0, 146, 147, 101, 170, 171], + [0, 146, 147, 100, 172, 173], + [0, 148, 149, 174, 175, 171], + [0, 148, 149, 100, 176, 177], + [0, 150, 151, 178, 179, 171], + [0, 150, 151, 100, 180, 181], + [ + 0, 146, 147, 100, 172, 173, 152, 153, 154, 182, 183, 184, 155, 156, 157, + 185, 186, 187, + ], + [0, 158, 159, 101, 188, 189], + [0, 146, 147, 122, 190, 191], + [0, 146, 147, 123, 192, 193], + [0, 146, 147, 126, 194, 195], + [0, 146, 147, 127, 196, 197], + [ + 0, 146, 147, 122, 190, 191, 152, 153, 154, 198, 199, 200, 155, 156, 157, + 201, 202, 203, + ], + [0, 158, 159, 123, 204, 205], + [ + 0, 146, 147, 126, 194, 195, 152, 153, 154, 206, 207, 208, 155, 156, 157, + 209, 210, 211, + ], + [0, 158, 159, 129, 212, 213], + [0, 146, 147, 101, 170, 171, 1, 160, 161, 123, 192, 193], + [0, 146, 147, 108, 214, 215, 1, 160, 161, 127, 196, 197], + [0, 146, 147, 100, 172, 173, 1, 160, 161, 122, 190, 191], + [0, 146, 147, 109, 216, 217, 1, 160, 161, 126, 194, 195], + [ + 0, 146, 147, 100, 172, 173, 1, 160, 161, 122, 190, 191, 152, 153, 154, + 182, 183, 184, 162, 163, 164, 198, 199, 200, 155, 156, 157, 185, 186, 187, + 165, 166, 167, 201, 202, 203, + ], + [0, 158, 159, 101, 188, 189, 1, 168, 169, 123, 204, 205], + [ + 0, 146, 147, 109, 216, 217, 1, 160, 161, 126, 194, 195, 152, 153, 154, + 218, 219, 220, 162, 163, 164, 206, 207, 208, 155, 156, 157, 221, 222, 223, + 165, 166, 167, 209, 210, 211, + ], + [0, 158, 159, 117, 224, 225, 1, 168, 169, 129, 212, 213], + [0, 146, 147, 16, 226, 227], + [0, 148, 149, 18, 228, 229], + [0, 150, 151, 18, 230, 231], + [0, 150, 151, 16, 232, 233], + [0, 148, 149, 16, 234, 235], + [0, 146, 147, 18, 236, 237], + [0, 146, 147, 52, 238, 239], + [0, 146, 147, 16, 226, 227, 1, 160, 161, 52, 238, 239], + [0, 146, 147, 18, 236, 237, 1, 160, 161, 61, 240, 241], + [0, 146, 147, 16, 226, 227, 100, 172, 173, 101, 170, 171], + [0, 148, 149, 18, 228, 229, 242, 172, 181, 243, 214, 244], + [0, 150, 151, 18, 230, 231, 245, 172, 177, 246, 214, 247], + [0, 150, 151, 16, 232, 233, 245, 172, 177, 174, 170, 248], + [0, 148, 149, 16, 234, 235, 242, 172, 181, 178, 170, 249], + [0, 146, 147, 18, 236, 237, 100, 172, 173, 108, 214, 215], + [0, 146, 147, 16, 226, 227, 122, 190, 191, 123, 192, 193], + [0, 146, 147, 16, 226, 227, 126, 194, 195, 127, 196, 197], + [0, 146, 147, 18, 236, 237, 126, 194, 195, 123, 192, 193], + [0, 146, 147, 18, 236, 237, 122, 190, 191, 127, 196, 197], + [0, 146, 147, 52, 238, 239, 122, 190, 191, 101, 170, 171], + [0, 146, 147, 61, 240, 241, 126, 194, 195, 101, 170, 171], + [0, 146, 147, 52, 238, 239, 100, 172, 173, 123, 192, 193], + [0, 146, 147, 61, 240, 241, 100, 172, 173, 127, 196, 197], + [ + 0, 146, 147, 16, 226, 227, 100, 172, 173, 101, 170, 171, 1, 160, 161, 52, + 239, 238, 122, 190, 191, 123, 192, 193, + ], + [ + 0, 146, 147, 16, 226, 227, 109, 216, 217, 108, 214, 215, 1, 160, 161, 52, + 239, 238, 126, 194, 195, 127, 196, 197, + ], + [ + 0, 146, 147, 18, 236, 237, 109, 216, 217, 101, 170, 171, 1, 160, 161, 61, + 241, 240, 126, 194, 195, 123, 192, 193, + ], + [ + 0, 146, 147, 18, 236, 237, 100, 172, 173, 108, 214, 215, 1, 160, 161, 61, + 241, 240, 122, 190, 191, 127, 196, 197, + ], + [0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 23, 24, 13, 25, 256, + 257, 258, 259, 260, 261, 262, 263, 26, 20, 27, 28, 264, 265, 266, 267, + 268, 269, 270, 271, 4, 22, 5, 19, 272, 273, 274, 275, 276, 277, 278, 279, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 29, 21, 15, 30, 280, + 281, 282, 283, 284, 285, 286, 287, + ], + [0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271], + [ + 0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271, 29, 31, 32, 33, + 280, 288, 289, 290, 284, 291, 292, 293, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 1, 52, 6, 34, 168, + 294, 295, 296, 169, 297, 298, 299, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 53, 54, 9, 42, 300, + 301, 302, 303, 304, 305, 306, 307, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 1, 52, 6, 34, 168, + 294, 295, 296, 169, 297, 298, 299, 23, 24, 13, 25, 256, 257, 258, 259, + 260, 261, 262, 263, 64, 62, 14, 39, 308, 309, 310, 311, 312, 313, 314, + 315, 26, 20, 27, 28, 264, 265, 266, 267, 268, 269, 270, 271, 65, 59, 40, + 38, 316, 317, 318, 319, 320, 321, 322, 323, 4, 22, 5, 19, 272, 273, 274, + 275, 276, 277, 278, 279, 11, 55, 8, 41, 324, 325, 326, 327, 328, 329, 330, + 331, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 66, 67, 44, 45, 332, + 333, 334, 335, 336, 337, 338, 339, 23, 24, 13, 25, 256, 257, 258, 259, + 260, 261, 262, 263, 68, 69, 46, 47, 340, 341, 342, 343, 344, 345, 346, + 347, 26, 20, 27, 28, 264, 265, 266, 267, 268, 269, 270, 271, 70, 71, 48, + 49, 348, 349, 350, 351, 352, 353, 354, 355, 4, 22, 5, 19, 272, 273, 274, + 275, 276, 277, 278, 279, 72, 73, 50, 51, 356, 357, 358, 359, 360, 361, + 362, 363, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 1, 52, 6, 34, 168, + 294, 295, 296, 169, 297, 298, 299, 29, 21, 15, 30, 280, 281, 282, 283, + 284, 285, 286, 287, 53, 54, 9, 42, 300, 301, 302, 303, 304, 305, 306, 307, + ], + [ + 0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271, 1, 59, 14, 41, 168, + 325, 318, 311, 169, 313, 330, 323, + ], + [ + 0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271, 1, 59, 14, 41, 168, + 325, 318, 311, 169, 313, 330, 323, 29, 31, 32, 33, 280, 288, 289, 290, + 284, 291, 292, 293, 53, 63, 36, 35, 300, 364, 365, 366, 304, 367, 368, + 369, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 100, 101, 75, 74, + 370, 371, 188, 372, 373, 374, 375, 189, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 116, 117, 83, 82, + 376, 377, 224, 378, 379, 380, 381, 225, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 100, 101, 75, 74, + 370, 371, 188, 372, 373, 374, 375, 189, 23, 24, 13, 25, 256, 257, 258, + 259, 260, 261, 262, 263, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 26, 20, 27, 28, 264, 265, 266, 267, 268, 269, 270, 271, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 4, 22, 5, 19, 272, + 273, 274, 275, 276, 277, 278, 279, 138, 139, 95, 94, 406, 407, 408, 409, + 410, 411, 412, 413, + ], + [ + 0, 24, 5, 28, 158, 265, 258, 275, 159, 277, 270, 263, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 23, 16, 27, 19, 256, 273, 251, + 267, 260, 269, 278, 255, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 26, 22, 13, 17, 264, 250, 274, 259, 268, 261, 254, 279, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 4, 20, 2, 25, 272, + 257, 266, 252, 276, 253, 262, 271, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 100, 101, 75, 74, + 370, 371, 188, 372, 373, 374, 375, 189, 29, 21, 15, 30, 280, 281, 282, + 283, 284, 285, 286, 287, 116, 117, 83, 82, 376, 377, 224, 378, 379, 380, + 381, 225, + ], + [ + 0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271, 450, 415, 440, 429, + 454, 431, 420, 445, 458, 447, 436, 425, + ], + [ + 0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, + ], + [ + 0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 29, 31, 32, 33, 280, 288, 289, + 290, 284, 291, 292, 293, 450, 415, 440, 429, 454, 431, 420, 445, 458, 447, + 436, 425, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 123, 122, 88, 89, + 204, 474, 475, 476, 205, 477, 478, 479, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 123, 122, 88, 89, + 204, 474, 475, 476, 205, 477, 478, 479, 23, 24, 13, 25, 256, 257, 258, + 259, 260, 261, 262, 263, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 26, 20, 27, 28, 264, 265, 266, 267, 268, 269, 270, 271, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 4, 22, 5, 19, 272, + 273, 274, 275, 276, 277, 278, 279, 125, 124, 140, 141, 504, 505, 506, 507, + 508, 509, 510, 511, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 123, 122, 88, 89, + 204, 474, 475, 476, 205, 477, 478, 479, 29, 21, 15, 30, 280, 281, 282, + 283, 284, 285, 286, 287, 129, 128, 90, 91, 212, 512, 513, 514, 213, 515, + 516, 517, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 129, 128, 90, 91, + 212, 512, 513, 514, 213, 515, 516, 517, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 129, 128, 90, 91, + 212, 512, 513, 514, 213, 515, 516, 517, 23, 24, 13, 25, 256, 257, 258, + 259, 260, 261, 262, 263, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 26, 20, 27, 28, 264, 265, 266, 267, 268, 269, 270, 271, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 4, 22, 5, 19, 272, + 273, 274, 275, 276, 277, 278, 279, 127, 126, 92, 93, 542, 543, 544, 545, + 546, 547, 548, 549, + ], + [ + 0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 29, 31, 32, 33, 280, 288, 289, + 290, 284, 291, 292, 293, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 100, 101, 75, 74, + 370, 371, 188, 372, 373, 374, 375, 189, 1, 52, 6, 34, 168, 294, 295, 296, + 169, 297, 298, 299, 122, 123, 89, 88, 475, 476, 204, 474, 479, 478, 477, + 205, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 100, 101, 75, 74, + 370, 371, 188, 372, 373, 374, 375, 189, 53, 54, 9, 42, 300, 301, 302, 303, + 304, 305, 306, 307, 128, 129, 91, 90, 513, 514, 212, 512, 517, 516, 515, + 213, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 116, 117, 83, 82, + 376, 377, 224, 378, 379, 380, 381, 225, 1, 52, 6, 34, 168, 294, 295, 296, + 169, 297, 298, 299, 128, 129, 91, 90, 513, 514, 212, 512, 517, 516, 515, + 213, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 116, 117, 83, 82, + 376, 377, 224, 378, 379, 380, 381, 225, 53, 54, 9, 42, 300, 301, 302, 303, + 304, 305, 306, 307, 122, 123, 89, 88, 475, 476, 204, 474, 479, 478, 477, + 205, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 100, 101, 75, 74, + 370, 371, 188, 372, 373, 374, 375, 189, 1, 52, 6, 34, 168, 294, 295, 296, + 169, 297, 298, 299, 122, 123, 89, 88, 475, 476, 204, 474, 479, 478, 477, + 205, 23, 24, 13, 25, 256, 257, 258, 259, 260, 261, 262, 263, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 64, 62, 14, 39, 308, + 309, 310, 311, 312, 313, 314, 315, 481, 480, 483, 482, 486, 487, 484, 485, + 491, 490, 489, 488, 26, 20, 27, 28, 264, 265, 266, 267, 268, 269, 270, + 271, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 65, 59, + 40, 38, 316, 317, 318, 319, 320, 321, 322, 323, 493, 492, 495, 494, 498, + 499, 496, 497, 503, 502, 501, 500, 4, 22, 5, 19, 272, 273, 274, 275, 276, + 277, 278, 279, 138, 139, 95, 94, 406, 407, 408, 409, 410, 411, 412, 413, + 11, 55, 8, 41, 324, 325, 326, 327, 328, 329, 330, 331, 124, 125, 141, 140, + 506, 507, 504, 505, 511, 510, 509, 508, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 116, 117, 83, 82, + 376, 377, 224, 378, 379, 380, 381, 225, 1, 52, 6, 34, 168, 294, 295, 296, + 169, 297, 298, 299, 128, 129, 91, 90, 513, 514, 212, 512, 517, 516, 515, + 213, 23, 24, 13, 25, 256, 257, 258, 259, 260, 261, 262, 263, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 64, 62, 14, 39, 308, + 309, 310, 311, 312, 313, 314, 315, 519, 518, 521, 520, 524, 525, 522, 523, + 529, 528, 527, 526, 26, 20, 27, 28, 264, 265, 266, 267, 268, 269, 270, + 271, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 65, 59, + 40, 38, 316, 317, 318, 319, 320, 321, 322, 323, 531, 530, 533, 532, 536, + 537, 534, 535, 541, 540, 539, 538, 4, 22, 5, 19, 272, 273, 274, 275, 276, + 277, 278, 279, 109, 108, 79, 78, 598, 599, 600, 601, 602, 603, 604, 605, + 11, 55, 8, 41, 324, 325, 326, 327, 328, 329, 330, 331, 126, 127, 93, 92, + 544, 545, 542, 543, 549, 548, 547, 546, + ], + [ + 0, 24, 5, 28, 158, 265, 258, 275, 159, 277, 270, 263, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 66, 69, 50, 49, 332, 349, 342, + 359, 336, 361, 354, 347, 493, 123, 483, 140, 498, 507, 204, 485, 503, 490, + 509, 205, 23, 16, 27, 19, 256, 273, 251, 267, 260, 269, 278, 255, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 68, 67, 48, 51, + 340, 357, 334, 351, 344, 353, 362, 339, 124, 480, 89, 494, 506, 499, 484, + 474, 511, 478, 501, 488, 26, 22, 13, 17, 264, 250, 274, 259, 268, 261, + 254, 279, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 70, + 73, 46, 45, 348, 333, 358, 343, 352, 345, 338, 363, 122, 492, 141, 482, + 475, 487, 496, 505, 479, 510, 489, 500, 4, 20, 2, 25, 272, 257, 266, 252, + 276, 253, 262, 271, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 72, 71, 44, 47, 356, 341, 350, 335, 360, 337, 346, 355, 481, 125, + 495, 88, 486, 476, 504, 497, 491, 502, 477, 508, + ], + [ + 0, 24, 5, 28, 158, 265, 258, 275, 159, 277, 270, 263, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 531, 129, 521, 92, 536, 545, 212, 523, 541, 528, + 547, 213, 23, 16, 27, 19, 256, 273, 251, 267, 260, 269, 278, 255, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 126, 518, 91, 532, 544, 537, 522, + 512, 549, 516, 539, 526, 26, 22, 13, 17, 264, 250, 274, 259, 268, 261, + 254, 279, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 128, 530, 93, 520, + 513, 525, 534, 543, 517, 548, 527, 538, 4, 20, 2, 25, 272, 257, 266, 252, + 276, 253, 262, 271, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 519, 127, + 533, 90, 524, 514, 542, 535, 529, 540, 515, 546, + ], + [ + 0, 16, 2, 17, 158, 250, 251, 252, 159, 253, 254, 255, 100, 101, 75, 74, + 370, 371, 188, 372, 373, 374, 375, 189, 1, 52, 6, 34, 168, 294, 295, 296, + 169, 297, 298, 299, 122, 123, 89, 88, 475, 476, 204, 474, 479, 478, 477, + 205, 29, 21, 15, 30, 280, 281, 282, 283, 284, 285, 286, 287, 116, 117, 83, + 82, 376, 377, 224, 378, 379, 380, 381, 225, 53, 54, 9, 42, 300, 301, 302, + 303, 304, 305, 306, 307, 128, 129, 91, 90, 513, 514, 212, 512, 517, 516, + 515, 213, + ], + [ + 0, 20, 13, 19, 158, 273, 266, 259, 159, 261, 278, 271, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 1, 59, 14, 41, 168, 325, 318, 311, + 169, 313, 330, 323, 551, 550, 553, 552, 556, 557, 554, 555, 561, 560, 559, + 558, 29, 31, 32, 33, 280, 288, 289, 290, 284, 291, 292, 293, 450, 415, + 440, 429, 454, 431, 420, 445, 458, 447, 436, 425, 53, 63, 36, 35, 300, + 364, 365, 366, 304, 367, 368, 369, 563, 562, 565, 564, 568, 569, 566, 567, + 573, 572, 571, 570, + ], + [0, 16], + [0, 18], + [0, 16, 26, 20], + [0, 2, 23, 13], + [0, 3, 4, 32], + [0, 2, 29, 15], + [0, 3, 29, 27], + [0, 52], + [0, 63], + [0, 52, 26, 59], + [0, 63, 26, 54], + [0, 52, 16, 1], + [0, 18, 1, 61], + [0, 52, 16, 1, 26, 59, 20, 65], + [0, 31, 1, 63], + [0, 1, 24, 62], + [0, 31, 1, 63, 26, 21, 65, 54], + [0, 2, 57, 56], + [0, 60, 3, 16], + [0, 22, 57, 3], + [0, 2, 28, 20], + [0, 17, 13, 24], + [0, 20, 19, 13, 4, 24, 17, 27], + [0, 22, 57, 3, 4, 16, 60, 32], + [0, 22, 57, 3, 23, 20, 30, 12, 26, 24, 33, 15, 4, 16, 60, 32], + [0, 22, 57, 3, 29, 18, 27, 25], + [0, 22, 3, 57, 1, 55, 10, 37], + [0, 22, 385, 396, 3, 57, 109, 117], + [ + 0, 22, 57, 3, 159, 279, 654, 655, 158, 274, 656, 657, 29, 18, 25, 27, 284, + 658, 262, 269, 280, 659, 257, 267, + ], + ]), + (t.Spacegroup = { + 'P 1': 0, + 'P -1': 1, + 'P 1 2 1': 2, + 'P 1 21 1': 3, + 'C 1 2 1': 4, + 'P 1 m 1': 5, + 'P 1 c 1': 6, + 'C 1 m 1': 7, + 'C 1 c 1': 8, + 'P 1 2/m 1': 9, + 'P 1 21/m 1': 10, + 'C 1 2/m 1': 11, + 'P 1 2/c 1': 12, + 'P 1 21/c 1': 13, + 'C 1 2/c 1': 14, + 'P 2 2 2': 15, + 'P 2 2 21': 16, + 'P 21 21 2': 17, + 'P 21 21 21': 18, + 'C 2 2 21': 19, + 'C 2 2 2': 20, + 'F 2 2 2': 21, + 'I 2 2 2': 22, + 'I 21 21 21': 23, + 'P m m 2': 24, + 'P m c 21': 25, + 'P c c 2': 26, + 'P m a 2': 27, + 'P c a 21': 28, + 'P n c 2': 29, + 'P m n 21': 30, + 'P b a 2': 31, + 'P n a 21': 32, + 'P n n 2': 33, + 'C m m 2': 34, + 'C m c 21': 35, + 'C c c 2': 36, + 'A m m 2': 37, + 'A b m 2': 38, + 'A m a 2': 39, + 'A b a 2': 40, + 'F m m 2': 41, + 'F d d 2': 42, + 'I m m 2': 43, + 'I b a 2': 44, + 'I m a 2': 45, + 'P 2/m 2/m 2/m': 46, + 'P m m m': 46, + 'P 2/n 2/n 2/n': 47, + 'P n n n': 47, + 'P 2/c 2/c 2/m': 48, + 'P c c m': 48, + 'P 2/b 2/a 2/n': 49, + 'P b a n': 49, + 'P 21/m 2/m 2/a': 50, + 'P m m a': 50, + 'P 2/n 21/n 2/a': 51, + 'P n n a': 51, + 'P 2/m 2/n 21/a': 52, + 'P m n a': 52, + 'P 21/c 2/c 2/a': 53, + 'P c c a': 53, + 'P 21/b 21/a 2/m': 54, + 'P b a m': 54, + 'P 21/c 21/c 2/n': 55, + 'P c c n': 55, + 'P 2/b 21/c 21/m': 56, + 'P b c m': 56, + 'P 21/n 21/n 2/m': 57, + 'P n n m': 57, + 'P 21/m 21/m 2/n': 58, + 'P m m n': 58, + 'P 21/b 2/c 21/n': 59, + 'P b c n': 59, + 'P 21/b 21/c 21/a': 60, + 'P b c a': 60, + 'P 21/n 21/m 21/a': 61, + 'P n m a': 61, + 'C 2/m 2/c 21/m': 62, + 'C m c m': 62, + 'C 2/m 2/c 21/a': 63, + 'C m c a': 63, + 'C 2/m 2/m 2/m': 64, + 'C m m m': 64, + 'C 2/c 2/c 2/m': 65, + 'C c c m': 65, + 'C 2/m 2/m 2/a': 66, + 'C m m a': 66, + 'C 2/c 2/c 2/a': 67, + 'C c c a': 67, + 'F 2/m 2/m 2/m': 68, + 'F m m m': 68, + 'F 2/d 2/d 2/d': 69, + 'F d d d': 69, + 'I 2/m 2/m 2/m': 70, + 'I m m m': 70, + 'I 2/b 2/a 2/m': 71, + 'I b a m': 71, + 'I 21/b 21/c 21/a': 72, + 'I b c a': 72, + 'I 21/m 21/m 21/a': 73, + 'I m m a': 73, + 'P 4': 74, + 'P 41': 75, + 'P 42': 76, + 'P 43': 77, + 'I 4': 78, + 'I 41': 79, + 'P -4': 80, + 'I -4': 81, + 'P 4/m': 82, + 'P 42/m': 83, + 'P 4/n': 84, + 'P 42/n': 85, + 'I 4/m': 86, + 'I 41/a': 87, + 'P 4 2 2': 88, + 'P 4 21 2': 89, + 'P 41 2 2': 90, + 'P 41 21 2': 91, + 'P 42 2 2': 92, + 'P 42 21 2': 93, + 'P 43 2 2': 94, + 'P 43 21 2': 95, + 'I 4 2 2': 96, + 'I 41 2 2': 97, + 'P 4 m m': 98, + 'P 4 b m': 99, + 'P 42 c m': 100, + 'P 42 n m': 101, + 'P 4 c c': 102, + 'P 4 n c': 103, + 'P 42 m c': 104, + 'P 42 b c': 105, + 'I 4 m m': 106, + 'I 4 c m': 107, + 'I 41 m d': 108, + 'I 41 c d': 109, + 'P -4 2 m': 110, + 'P -4 2 c': 111, + 'P -4 21 m': 112, + 'P -4 21 c': 113, + 'P -4 m 2': 114, + 'P -4 c 2': 115, + 'P -4 b 2': 116, + 'P -4 n 2': 117, + 'I -4 m 2': 118, + 'I -4 c 2': 119, + 'I -4 2 m': 120, + 'I -4 2 d': 121, + 'P 4/m 2/m 2/m': 122, + 'P4/m m m': 122, + 'P 4/m 2/c 2/c': 123, + 'P4/m c c': 123, + 'P 4/n 2/b 2/m': 124, + 'P4/n b m': 124, + 'P 4/n 2/n 2/c': 125, + 'P4/n n c': 125, + 'P 4/m 21/b 2/m': 126, + 'P4/m b m': 126, + 'P 4/m 21/n 2/c': 127, + 'P4/m n c': 127, + 'P 4/n 21/m 2/m': 128, + 'P4/n m m': 128, + 'P 4/n 2/c 2/c': 129, + 'P4/n c c': 129, + 'P 42/m 2/m 2/c': 130, + 'P42/m m c': 130, + 'P 42/m 2/c 2/m': 131, + 'P42/m c m': 131, + 'P 42/n 2/b 2/c': 132, + 'P42/n b c': 132, + 'P 42/n 2/n 2/m': 133, + 'P42/n n m': 133, + 'P 42/m 21/b 2/c': 134, + 'P42/m b c': 134, + 'P 42/m 21/n 2/m': 135, + 'P42/m n m': 135, + 'P 42/n 21/m 2/c': 136, + 'P42/n m c': 136, + 'P 42/n 21/c 2/m': 137, + 'P42/n c m': 137, + 'I 4/m 2/m 2/m': 138, + 'I4/m m m': 138, + 'I 4/m 2/c 2/m': 139, + 'I4/m c m': 139, + 'I 41/a 2/m 2/d': 140, + 'I41/a m d': 140, + 'I 41/a 2/c 2/d': 141, + 'I41/a c d': 141, + 'P 3': 142, + 'P 31': 143, + 'P 32': 144, + 'H 3': 145, + 'R 3': 146, + 'P -3': 147, + 'H -3': 148, + 'R -3': 149, + 'P 3 1 2': 150, + 'P 3 2 1': 151, + 'P 31 1 2': 152, + 'P 31 2 1': 153, + 'P 32 1 2': 154, + 'P 32 2 1': 155, + 'H 3 2': 156, + 'R 3 2': 157, + 'P 3 m 1': 158, + 'P 3 1 m': 159, + 'P 3 c 1': 160, + 'P 3 1 c': 161, + 'H 3 m': 162, + 'R 3 m': 163, + 'H 3 c': 164, + 'R 3 c': 165, + 'P -3 1 2/m': 166, + 'P -3 1 m': 166, + 'P -3 1 2/c': 167, + 'P -3 1 c': 167, + 'P -3 2/m 1': 168, + 'P -3 m 1': 168, + 'P -3 2/c 1': 169, + 'P -3 c 1': 169, + 'H -3 2/m': 170, + 'H -3 m': 170, + 'R -3 2/m': 171, + 'R -3 m': 171, + 'H -3 2/c': 172, + 'H -3 c': 172, + 'R -3 2/c': 173, + 'R -3 c': 173, + 'P 6': 174, + 'P 61': 175, + 'P 65': 176, + 'P 62': 177, + 'P 64': 178, + 'P 63': 179, + 'P -6': 180, + 'P 6/m': 181, + 'P 63/m': 182, + 'P 6 2 2': 183, + 'P 61 2 2': 184, + 'P 65 2 2': 185, + 'P 62 2 2': 186, + 'P 64 2 2': 187, + 'P 63 2 2': 188, + 'P 6 m m': 189, + 'P 6 c c': 190, + 'P 63 c m': 191, + 'P 63 m c': 192, + 'P -6 m 2': 193, + 'P -6 c 2': 194, + 'P -6 2 m': 195, + 'P -6 2 c': 196, + 'P 6/m 2/m 2/m': 197, + 'P 6/m m m': 197, + 'P 6/m 2/c 2/c': 198, + 'P 6/m c c': 198, + 'P 63/m 2/c 2/m': 199, + 'P 63/m c m': 199, + 'P 63/m 2/m 2/c': 200, + 'P 63/m m c': 200, + 'P 2 3': 201, + 'F 2 3': 202, + 'I 2 3': 203, + 'P 21 3': 204, + 'I 21 3': 205, + 'P 2/m -3': 206, + 'P m -3': 206, + 'P 2/n -3': 207, + 'P n -3': 207, + 'F 2/m -3': 208, + 'F m -3': 208, + 'F 2/d -3': 209, + 'F d -3': 209, + 'I 2/m -3': 210, + 'I m -3': 210, + 'P 21/a -3': 211, + 'P a -3': 211, + 'I 21/a -3': 212, + 'I a -3': 212, + 'P 4 3 2': 213, + 'P 42 3 2': 214, + 'F 4 3 2': 215, + 'F 41 3 2': 216, + 'I 4 3 2': 217, + 'P 43 3 2': 218, + 'P 41 3 2': 219, + 'I 41 3 2': 220, + 'P -4 3 m': 221, + 'F -4 3 m': 222, + 'I -4 3 m': 223, + 'P -4 3 n': 224, + 'F -4 3 c': 225, + 'I -4 3 d': 226, + 'P 4/m -3 2/m': 227, + 'P m -3 m': 227, + 'P 4/n -3 2/n': 228, + 'P n -3 n': 228, + 'P 42/m -3 2/n': 229, + 'P m -3 n': 229, + 'P 42/n -3 2/m': 230, + 'P n -3 m': 230, + 'F 4/m -3 2/m': 231, + 'F m -3 m': 231, + 'F 4/m -3 2/c': 232, + 'F m -3 c': 232, + 'F 41/d -3 2/m': 233, + 'F d -3 m': 233, + 'F 41/d -3 2/c': 234, + 'F d -3 c': 234, + 'I 4/m -3 2/m': 235, + 'I m -3 m': 235, + 'I 41/a -3 2/d': 236, + 'I a -3 d': 236, + 'P 1 1 2': 237, + 'P 1 1 21': 238, + 'B 1 1 2': 239, + 'B 2': 239, + 'A 1 2 1': 240, + 'C 1 21 1': 241, + 'I 1 2 1': 242, + 'I 2': 242, + 'I 1 21 1': 243, + 'P 1 1 m': 244, + 'P 1 1 b': 245, + 'B 1 1 m': 246, + 'B 1 1 b': 247, + 'P 1 1 2/m': 248, + 'P 1 1 21/m': 249, + 'B 1 1 2/m': 250, + 'P 1 1 2/b': 251, + 'P 1 1 21/b': 252, + 'B 1 1 2/b': 253, + 'P 21 2 2': 254, + 'P 2 21 2': 255, + 'P 21 21 2 (a)': 256, + 'P 21 2 21': 257, + 'P 2 21 21': 258, + 'C 2 2 21a)': 259, + 'C 2 2 2a': 260, + 'F 2 2 2a': 261, + 'I 2 2 2a': 262, + 'P 21/m 21/m 2/n a': 263, + 'P 42 21 2a': 264, + 'I 2 3a': 265, + }); + })((mo = r.Core || (r.Core = {})).Structure || (mo.Structure = {})), + (e = F = F || {}), + (It = e.Core || (e.Core = {})), + (vo = It.Structure || (It.Structure = {})), + (Eo = It.Utils.DataTable), + (e = bo = bo || {}), + (yo = It.Geometry.LinearAlgebra.Matrix4), + (wo = It.Geometry.LinearAlgebra.Vector3), + (e.buildPivotGroupSymmetry = function (t, e, n) { + var r = t.data.symmetryInfo; + return !r || (r.cellSize[0] < 1.1 && r.cellSize[1] < 1.1 && r.cellSize[2] < 1.1) + ? t + : ((n = n ? vo.Query.apply(n, t).unionAtomIndices() : t.data.atoms.indices), + (n = (function (t, e) { + for ( + var n = t.data.atoms, + r = t.data.residues, + i = t.data.chains, + o = t.data.entities, + a = (t = t.positions).x, + s = t.y, + l = t.z, + u = (t = Eo.builder(o.count)).addColumn('x', function (t) { + return new Float64Array(t); + }), + c = t.addColumn('y', function (t) { + return new Float64Array(t); + }), + A = t.addColumn('z', function (t) { + return new Float64Array(t); + }), + U = t.addColumn('r', function (t) { + return new Float64Array(t); + }), + h = Eo.builder(i.count), + p = h.addColumn('x', function (t) { + return new Float64Array(t); + }), + N = h.addColumn('y', function (t) { + return new Float64Array(t); + }), + P = h.addColumn('z', function (t) { + return new Float64Array(t); + }), + L = h.addColumn('r', function (t) { + return new Float64Array(t); + }), + d = Eo.builder(r.count), + Y = d.addColumn('x', function (t) { + return new Float64Array(t); + }), + O = d.addColumn('y', function (t) { + return new Float64Array(t); + }), + G = d.addColumn('z', function (t) { + return new Float64Array(t); + }), + z = d.addColumn('r', function (t) { + return new Float64Array(t); + }), + f = wo.zero(), + g = 0, + m = wo.zero(), + v = 0, + b = 0, + y = wo.zero(), + w = 0, + E = wo.zero(), + B = 0, + C = wo.zero(), + x = 0, + I = 0, + H = o.count; + I < H; + I++ + ) { + wo.set(y, 0, 0, 0); + for (var M = o.chainStartIndex[I], D = o.chainEndIndex[I]; M < D; M++) { + wo.set(E, 0, 0, 0); + for ( + var S = i.residueStartIndex[M], k = i.residueEndIndex[M]; + S < k; + S++ + ) { + wo.set(C, 0, 0, 0); + for (var F = r.atomStartIndex[S], Q = r.atomEndIndex[S]; F < Q; F++) + (C[0] += a[F]), (C[1] += s[F]), (C[2] += l[F]); + wo.add(f, f, C), + (b = r.atomEndIndex[S] - r.atomStartIndex[S]), + wo.add(E, E, C), + (Y[S] = C[0] / b), + (O[S] = C[1] / b), + (G[S] = C[2] / b); + } + wo.add(y, y, E), + (b = i.atomEndIndex[M] - i.atomStartIndex[M]), + (p[M] = E[0] / b), + (N[M] = E[1] / b), + (P[M] = E[2] / b); + } + (b = o.atomEndIndex[I] - o.atomStartIndex[I]), + (u[I] = y[0] / b), + (c[I] = y[1] / b), + (A[I] = y[2] / b); + } + (f[0] /= n.count), (f[1] /= n.count), (f[2] /= n.count); + for (var _ = 0, j = e; _ < j.length; _++) { + F = j[_]; + (m[0] += a[F]), (m[1] += s[F]), (m[2] += l[F]); + } + for ( + var n = 0 < e.length ? e.length : 1, + V = + ((m[0] /= n), + (m[1] /= n), + (m[2] /= n), + { x: a, y: s, z: l, cX: u, cY: c, cZ: A }), + q = { x: a, y: s, z: l, cX: p, cY: N, cZ: P }, + T = { x: a, y: s, z: l, cX: Y, cY: O, cZ: G }, + I = 0, + H = o.count; + I < H; + I++ + ) { + for ( + w = 0, M = o.chainStartIndex[I], D = o.chainEndIndex[I]; + M < D; + M++ + ) { + for ( + B = 0, S = i.residueStartIndex[M], k = i.residueEndIndex[M]; + S < k; + S++ + ) { + for ( + x = 0, F = r.atomStartIndex[S], Q = r.atomEndIndex[S]; + F < Q; + F++ + ) + (x = Math.max(x, Qs(F, S, T))), + (B = Math.max(B, Qs(F, M, q))), + (w = Math.max(w, Qs(F, I, V))), + (g = Math.max(g, _s(F, f, T))); + (x = Math.sqrt(x)), (z[S] = x); + } + (B = Math.sqrt(B)), (L[M] = B); + } + (w = Math.sqrt(w)), (U[I] = w); + } + for (var g = Math.sqrt(g), R = 0, W = e; R < W.length; R++) + (F = W[R]), (v = Math.max(v, _s(F, m, T))); + return ( + (v = Math.sqrt(v)), + { + entities: t.seal(), + chains: h.seal(), + residues: d.seal(), + allAtoms: { center: f, radius: g }, + target: { center: m, radius: v }, + } + ); + })(t, n)), + (r = new vo.Spacegroup(r)), + (n = { + model: t, + boundingInfo: n, + spacegroup: r, + radius: e, + transform: yo.zero(), + transformed: wo.zero(), + i: 0, + j: 0, + k: 0, + op: 0, + }), + (r = Us(n)), + Ps( + t, + (function (t, e) { + for ( + var n = t.boundingInfo, + r = t.radius, + i = n.target, + o = (t = t.model).data.residues, + a = t.data.chains, + s = t.data.entities, + l = It.Utils.ChunkedArray.create( + function (t) { + return new Int32Array(t); + }, + o.count, + 1, + ), + u = It.Utils.ChunkedArray.create( + function (t) { + return new Int32Array(t); + }, + o.count, + 1, + ), + c = wo.zero(), + A = 0, + h = 0, + p = 0, + d = 0, + f = 0, + g = s.count; + f < g; + f++ + ) { + for (var A = 0, m = !1, v = 0, b = e; v < b.length; v++) { + for ( + var y = b[v], w = s.chainStartIndex[f], E = s.chainEndIndex[f]; + w < E; + w++ + ) + if (Fs(i, w, n.chains, y.transform, r, c)) { + for ( + var B = !1, + C = a.residueStartIndex[w], + x = a.residueEndIndex[w]; + C < x; + C++ + ) + Fs(i, C, n.residues, y.transform, r, c) && + (It.Utils.ChunkedArray.add(l, C), + It.Utils.ChunkedArray.add(u, A), + (h += o.atomEndIndex[C] - o.atomStartIndex[C]), + (B = !0)); + B && ((p += 1), (m = !0)); + } + A++; + } + m && d++; + } + return { + residues: It.Utils.ChunkedArray.compact(l), + operators: It.Utils.ChunkedArray.compact(u), + atomCount: h, + chainCount: p, + entityCount: d, + }; + })(n, r), + r, + )); + }), + (e.buildMates = function (t, e) { + var n = t.data.symmetryInfo; + return !n || (n.cellSize[0] < 1.1 && n.cellSize[1] < 1.1 && n.cellSize[2] < 1.1) + ? t + : ((n = Ls(t, e)), + Ps( + t, + (function (t, e) { + for ( + var n = (t = t.data).atoms, + r = t.chains, + i = t.entities, + t = t.residues, + o = It.Utils.ArrayBuilder.create( + function (t) { + return new Int32Array(t); + }, + t.count * e.length, + 1, + ), + a = It.Utils.ArrayBuilder.create( + function (t) { + return new Int32Array(t); + }, + t.count * e.length, + 1, + ), + t = e.length * n.count, + n = e.length * r.count, + s = i.count, + l = 0, + u = i.count; + l < u; + l++ + ) + for (var c = 0; c < e.length; c++) + for ( + var A = i.chainStartIndex[l], h = i.chainEndIndex[l]; + A < h; + A++ + ) + for ( + var p = r.residueStartIndex[A], d = r.residueEndIndex[A]; + p < d; + p++ + ) + It.Utils.ArrayBuilder.add(o, p), + It.Utils.ArrayBuilder.add(a, c); + return { + residues: o.array, + operators: a.array, + atomCount: t, + chainCount: n, + entityCount: s, + }; + })(t, n), + n, + )); + }), + (e.buildAssemblyEntry = Os), + (e.buildAssembly = function (t, e) { + for ( + var n = { + atomCount: 0, + chainCount: 0, + entityCount: 0, + transforms: [], + mask: new Int8Array(t.data.residues.count), + residueIndices: It.Utils.ChunkedArray.create( + function (t) { + return new Int32Array(t); + }, + t.data.residues.count, + 1, + ), + operatorIndices: It.Utils.ChunkedArray.create( + function (t) { + return new Int32Array(t); + }, + t.data.residues.count, + 1, + ), + }, + r = 0, + i = e.gens; + r < i.length; + r++ + ) + Os(t, i[r], n); + return Ps( + t, + { + residues: It.Utils.ChunkedArray.compact(n.residueIndices), + operators: It.Utils.ChunkedArray.compact(n.operatorIndices), + atomCount: n.atomCount, + chainCount: n.chainCount, + entityCount: n.entityCount, + }, + n.transforms, + ); + }), + (vo.buildPivotGroupSymmetry = function (t, e, n) { + return bo.buildPivotGroupSymmetry(t, e, n); + }), + (vo.buildSymmetryMates = function (t, e) { + return bo.buildMates(t, e); + }), + (vo.buildAssembly = function (t, e) { + return bo.buildAssembly(t, e); + }), + (t = F = F || {}), + (function (n) { + n.apply = function (t, e) { + return n.Builder.toQuery(t)(e.queryContext); + }; + Object.defineProperty(i.prototype, 'atomCount', { + get: function () { + return this.mask.size; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(i.prototype, 'isComplete', { + get: function () { + return this.mask.size === this.structure.data.atoms.count; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(i.prototype, 'lookup3d', { + get: function () { + return this.lazyLoopup3d || this.makeLookup3d(), this.lazyLoopup3d; + }, + enumerable: !0, + configurable: !0, + }), + (i.prototype.hasAtom = function (t) { + return !!this.mask.has(t); + }), + (i.prototype.hasRange = function (t, e) { + for (var n = t; n < e; n++) if (this.mask.has(n)) return !0; + return !1; + }), + (i.ofStructure = function (t) { + return new i(t, Bo.Utils.Mask.ofStructure(t)); + }), + (i.ofFragments = function (t) { + return new i(t.context.structure, Bo.Utils.Mask.ofFragments(t)); + }), + (i.ofAtomIndices = function (t, e) { + return new i(t, Bo.Utils.Mask.ofIndices(t.data.atoms.count, e)); + }), + (i.prototype.makeLookup3d = function () { + for ( + var t = new Int32Array(this.mask.size), + e = 0, + n = this.structure.positions, + r = n.x, + i = n.y, + o = n.z, + a = 0, + s = this.structure.positions.count; + a < s; + a++ + ) + this.mask.has(a) && (t[e++] = a); + n = Bo.Geometry.Query3D.createInputData(t, function (t, e) { + return e(r[t], i[t], o[t]); + }); + this.lazyLoopup3d = Bo.Geometry.Query3D.createSpatialHash(n); + }); + var r = i; + function i(t, e) { + (this.mask = e), (this.structure = t); + } + n.Context = r; + Object.defineProperty(s.prototype, 'hashCode', { + get: function () { + if (this._hashComputed) return this._hashCode; + for (var t = 23, e = 0, n = this.atomIndices; e < n.length; e++) + t = (31 * t + n[e]) | 0; + return (this._hashCode = t), (this._hashComputed = !0), t; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(s.prototype, 'id', { + get: function () { + return this.context.structure.id + '_' + this.tag; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(s.prototype, 'atomCount', { + get: function () { + return this.atomIndices.length; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(s.prototype, 'isHet', { + get: function () { + var t = this.context.structure.data.atoms.residueIndex[this.tag]; + return this.context.structure.data.residues.isHet[t]; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(s.prototype, 'fingerprint', { + get: function () { + if (this._fingerprint) return this._fingerprint; + for ( + var t = this.residueIndices, + e = this.context.structure.data.residues, + n = e.name, + r = e.asymId, + i = e.seqNumber, + o = e.insCode, + a = [], + s = 0, + l = t; + s < l.length; + s++ + ) { + var u = l[s], + c = n[u] + ' ' + r[u] + ' ' + i[u]; + o[u] && (c += ' i:' + o[u]), (a[a.length] = c); + } + return a.join('-'); + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(s.prototype, 'authFingerprint', { + get: function () { + if (this._authFingerprint) return this._authFingerprint; + for ( + var t = this.residueIndices, + e = this.context.structure.data.residues, + n = e.authName, + r = e.authAsymId, + i = e.authSeqNumber, + o = e.insCode, + a = [], + s = 0, + l = t; + s < l.length; + s++ + ) { + var u = l[s], + c = n[u] + ' ' + r[u] + ' ' + i[u]; + o[u] && (c += ' i:' + o[u]), (a[a.length] = c); + } + return a.join('-'); + }, + enumerable: !0, + configurable: !0, + }), + (s.prototype.find = function (t) { + var e = r.ofFragments(new o(this.context, [this])); + return n.Builder.toQuery(t)(e); + }), + (s.prototype.computeIndices = function () { + if (!this._residueIndices) { + for ( + var t = Bo.Utils.FastSet.create(), + e = Bo.Utils.FastSet.create(), + n = Bo.Utils.FastSet.create(), + r = this.context.structure.data.atoms.residueIndex, + i = this.context.structure.data.residues.chainIndex, + o = this.context.structure.data.chains.entityIndex, + a = 0, + s = this.atomIndices; + a < s.length; + a++ + ) { + var l = s[a]; + t.add(r[l]); + } + this._residueIndices = Bo.Utils.integerSetToSortedTypedArray(t); + for (var u = 0, c = this._residueIndices; u < c.length; u++) { + l = c[u]; + e.add(i[l]); + } + this._chainIndices = Bo.Utils.integerSetToSortedTypedArray(e); + for (var A = 0, h = this._chainIndices; A < h.length; A++) { + l = h[A]; + n.add(o[l]); + } + this._entityIndices = Bo.Utils.integerSetToSortedTypedArray(n); + } + }), + Object.defineProperty(s.prototype, 'residueIndices', { + get: function () { + return this.computeIndices(), this._residueIndices; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(s.prototype, 'chainIndices', { + get: function () { + return this.computeIndices(), this._chainIndices; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(s.prototype, 'entityIndices', { + get: function () { + return this.computeIndices(), this._entityIndices; + }, + enumerable: !0, + configurable: !0, + }), + (s.areEqual = function (t, e) { + if (t.atomCount !== e.atomCount) return !1; + for (var n = t.atomIndices, r = e.atomIndices, i = 0; i < n.length; i++) + if (n[i] !== r[i]) return !1; + return t.tag === e.tag; + }), + (s.ofSet = function (t, e) { + var n = new Int32Array(e.size); + return ( + e.forEach( + function (t, e) { + e.array[e.index++] = t; + }, + { array: n, index: 0 }, + ), + Array.prototype.sort.call(n, function (t, e) { + return t - e; + }), + new s(t, n[0], n) + ); + }), + (s.ofArray = function (t, e, n) { + return new s(t, e, n); + }), + (s.ofIndex = function (t, e) { + var n = new Int32Array(1); + return new s(t, (n[0] = e), n); + }), + (s.ofIndexRange = function (t, e, n) { + for (var r = 0, i = e; i < n; i++) t.hasAtom(i) && r++; + for (var o = new Int32Array(r), a = 0, i = e; i < n; i++) + t.hasAtom(i) && (o[a++] = i); + return new s(t, e, o); + }); + var a = s; + function s(t, e, n) { + (this._hashCode = 0), + (this._hashComputed = !1), + (this.context = t), + (this.tag = e), + (this.atomIndices = n); + } + n.Fragment = a; + (e.empty = function (t) { + return new e(t, []); + }), + Object.defineProperty(e.prototype, 'length', { + get: function () { + return this.fragments.length; + }, + enumerable: !0, + configurable: !0, + }), + (e.prototype.unionAtomIndices = function () { + if (!this.length) return []; + if (1 === this.length) return this.fragments[0].atomIndices; + for ( + var t = new Int8Array(this.context.structure.data.atoms.count), + e = 0, + n = 0, + r = this.fragments; + n < r.length; + n++ + ) + for (var i = 0, o = r[n].atomIndices; i < o.length; i++) + t[(c = o[i])] = 1; + for (var a = 0, s = t; a < s.length; a++) e += c = s[a]; + for (var l = new Int32Array(e), u = 0, c = 0, A = t.length; c < A; c++) + t[c] && (l[u++] = c); + return l; + }), + (e.prototype.unionFragment = function () { + if (!this.length) return new a(this.context, 0, new Int32Array(0)); + if (1 === this.length) return this.fragments[0]; + var t = this.unionAtomIndices(); + return new a(this.context, t[0], t); + }); + var o = e; + function e(t, e) { + (this.context = t), (this.fragments = e); + } + function t(t) { + (this.ctx = t), (this.fragments = []); + } + function l(t) { + (this.ctx = t), + (this.fragments = []), + (this.byHash = Bo.Utils.FastMap.create()); + } + (n.FragmentSeq = o), + (t.prototype.add = function (t) { + this.fragments[this.fragments.length] = t; + }), + (t.prototype.getSeq = function () { + return new o(this.ctx, this.fragments); + }), + (n.FragmentSeqBuilder = t), + (l.prototype.add = function (t) { + var e = t.hashCode; + if (this.byHash.has(e)) { + for (var n = this.byHash.get(e), r = 0, i = n; r < i.length; r++) { + var o = i[r]; + if (a.areEqual(t, o)) return this; + } + (this.fragments[this.fragments.length] = t), (n[n.length] = t); + } else (this.fragments[this.fragments.length] = t), this.byHash.set(e, [t]); + return this; + }), + (l.prototype.getSeq = function () { + return new o(this.ctx, this.fragments); + }), + (n.HashFragmentSeqBuilder = l); + })( + (t = (Bo = t.Core || (t.Core = {})).Structure || (Bo.Structure = {})).Query || + (t.Query = {}), + ), + (r = F = F || {}), + (r = (Co = r.Core || (r.Core = {})).Structure || (Co.Structure = {})), + (S = r.Query || (r.Query = {})), + ((xo = i = S.Builder || (S.Builder = {})).BuilderPrototype = {}), + (xo.registerModifier = function (t, n) { + xo.BuilderPrototype[t] = function () { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + return n.call.apply(n, [void 0, this].concat(t)); + }; + }), + (xo.build = function (t) { + return Object.create(xo.BuilderPrototype, { + compile: { writable: !1, configurable: !1, value: t }, + }); + }), + (xo.parse = Gs), + (xo.toQuery = function (t) { + return (t = t.compile + ? t.compile() + : 'string' == typeof t || t instanceof String + ? Gs(t) + : t); + }), + (S.allAtoms = function () { + return i.build(function () { + return o.compileAllAtoms(); + }); + }), + (S.atomsByElement = function () { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + return i.build(function () { + return o.compileAtoms(t, function (t) { + return t.data.atoms.elementSymbol; + }); + }); + }), + (S.atomsByName = function () { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + return i.build(function () { + return o.compileAtoms(t, function (t) { + return t.data.atoms.name; + }); + }); + }), + (S.atomsById = function () { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + return i.build(function () { + return o.compileAtoms(t, function (t) { + return t.data.atoms.id; + }); + }); + }), + (S.residues = zs), + (S.chains = Hs), + (S.entities = js), + (S.notEntities = function () { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + return i.build(function () { + return o.compileAtomRanges(!0, t, function (t) { + return t.data.entities; + }); + }); + }), + (S.everything = function () { + return i.build(function () { + return o.compileEverything(); + }); + }), + (S.entitiesFromIndices = function (t) { + return i.build(function () { + return o.compileFromIndices(!1, t, function (t) { + return t.data.entities; + }); + }); + }), + (S.chainsFromIndices = function (t) { + return i.build(function () { + return o.compileFromIndices(!1, t, function (t) { + return t.data.chains; + }); + }); + }), + (S.residuesFromIndices = function (t) { + return i.build(function () { + return o.compileFromIndices(!1, t, function (t) { + return t.data.residues; + }); + }); + }), + (S.atomsFromIndices = function (t) { + return i.build(function () { + return o.compileAtomIndices(t); + }); + }), + (S.sequence = function (t, e, n, r) { + return i.build(function () { + return o.compileSequence(t, e, n, r); + }); + }), + (S.hetGroups = Vs), + (S.nonHetPolymer = function () { + return i.build(function () { + return o.compileNonHetPolymer(); + }); + }), + (S.polymerTrace = function () { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + return i.build(function () { + return o.compilePolymerNames(t, !1); + }); + }), + (S.cartoons = function () { + return qs( + i.build(function () { + return o.compilePolymerNames(['CA', 'O', "O5'", "C3'", 'N3'], !1); + }), + Vs(), + js({ type: 'water' }), + ); + }), + (S.backbone = function () { + return i.build(function () { + return o.compilePolymerNames( + ['N', 'CA', 'C', 'O', 'P', 'OP1', 'OP2', "O3'", "O5'", "C3'", "C5'", 'C4'], + !1, + ); + }); + }), + (S.sidechain = function () { + return i.build(function () { + return o.compilePolymerNames( + ['N', 'CA', 'C', 'O', 'P', 'OP1', 'OP2', "O3'", "O5'", "C3'", "C5'", 'C4'], + !0, + ); + }); + }), + (S.atomsInBox = function (t, e) { + return i.build(function () { + return o.compileAtomsInBox(t, e); + }); + }), + (S.or = qs), + i.registerModifier('complement', Ws), + (S.complement = Ws), + i.registerModifier('ambientResidues', Js), + (S.ambientResidues = Js), + i.registerModifier('wholeResidues', Ks), + (S.wholeResidues = Ks), + i.registerModifier('union', Zs), + (S.union = Zs), + i.registerModifier('inside', Xs), + (S.inside = Xs), + i.registerModifier('intersectWith', $s), + (S.intersectWith = $s), + i.registerModifier('flatten', tl), + (S.flatten = tl), + i.registerModifier('except', el), + (S.except = el), + (S.residuesByName = function () { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + return zs.apply( + void 0, + t.map(function (t) { + return { name: t }; + }), + ); + }), + (S.residuesById = function () { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + return zs.apply( + void 0, + t.map(function (t) { + return { authSeqNumber: t }; + }), + ); + }), + (S.chainsById = function () { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + return Hs.apply( + void 0, + t.map(function (t) { + return { authAsymId: t }; + }), + ); + }), + (r = o = S.Compiler || (S.Compiler = {})), + (nl.prototype.isSatisfied = function (t) { + for (var e = 0, n = this.columns; e < n.length; e++) { + var r = n[e]; + if (r.value !== r.array[t]) return !1; + } + return !0; + }), + (Io = nl), + (r.compileEverything = function () { + return function (t) { + var e; + if (t.isComplete) + return ( + (e = t.structure.data.atoms.indices), + new S.FragmentSeq(t, [new S.Fragment(t, e[0], e)]) + ); + for ( + var n = new Int32Array(t.atomCount), + r = 0, + i = 0, + o = t.structure.data.atoms.indices; + i < o.length; + i++ + ) { + var a = o[i]; + t.hasAtom(a) && (n[r++] = a); + } + return new S.FragmentSeq(t, [S.Fragment.ofArray(t, n[0], n)]); + }; + }), + (r.compileAllAtoms = function () { + return function (t) { + for ( + var e = new S.FragmentSeqBuilder(t), + n = 0, + r = t.structure.data.atoms.count; + n < r; + n++ + ) + t.hasAtom(n) && e.add(S.Fragment.ofIndex(t, n)); + return e.getSeq(); + }; + }), + (r.compileAtoms = function (a, s) { + return function (t) { + for ( + var e = Co.Utils.FastSet.ofArray(a), + n = s(t.structure), + r = new S.FragmentSeqBuilder(t), + i = 0, + o = n.length; + i < o; + i++ + ) + t.hasAtom(i) && e.has(n[i]) && r.add(S.Fragment.ofIndex(t, i)); + return r.getSeq(); + }; + }), + (r.compileAtomIndices = function (u) { + return function (t) { + for (var e = 0, n = 0, r = u; n < r.length; n++) { + var i = r[n]; + t.hasAtom(i) && e++; + } + if (!e) return S.FragmentSeq.empty(t); + if (e === u.length) + return new S.FragmentSeq(t, [S.Fragment.ofArray(t, u[0], u)]); + for (var o = 0, a = new Int32Array(e), s = 0, l = u; s < l.length; s++) { + i = l[s]; + t.hasAtom(i) && (a[o++] = i); + } + return new S.FragmentSeq(t, [S.Fragment.ofArray(t, a[0], a)]); + }; + }), + (r.compileFromIndices = function (c, A, h) { + return function (t) { + var e = h(t.structure), + n = e.atomStartIndex, + r = e.atomEndIndex, + i = new S.FragmentSeqBuilder(t); + if (c) + for (var o = Co.Utils.FastSet.ofArray(A), a = e.count, s = 0; s < a; s++) + o.has(s) || + (t.hasRange(n[s], r[s]) && + i.add(S.Fragment.ofIndexRange(t, n[s], r[s]))); + else + for (var l = 0, u = A; l < u.length; l++) { + s = u[l]; + t.hasRange(n[s], r[s]) && i.add(S.Fragment.ofIndexRange(t, n[s], r[s])); + } + return i.getSeq(); + }; + }), + (r.compileAtomRanges = function (h, p, d) { + return function (t) { + for ( + var e = d(t.structure), + n = e.atomStartIndex, + r = e.atomEndIndex, + i = new S.FragmentSeqBuilder(t), + o = e.count, + a = !1, + s = p.map(function (t) { + return new Io(t, e); + }), + l = 0 === s.length, + u = 0; + u < o; + u++ + ) + if (t.hasRange(n[u], r[u])) { + for (var a = l, c = 0, A = s; c < A.length; c++) + if (A[c].isSatisfied(u)) { + a = !0; + break; + } + (a = h ? !a : a) && i.add(S.Fragment.ofIndexRange(t, n[u], r[u])); + } + return i.getSeq(); + }; + }), + (r.compileSequence = function (x, I, M, D) { + return function (t) { + for ( + var e = t.structure.data, + n = e.residues, + e = e.chains, + r = n.seqNumber, + i = n.authSeqNumber, + o = n.insCode, + a = n.atomStartIndex, + s = n.atomEndIndex, + l = e.entityId, + u = e.count, + c = e.residueStartIndex, + A = e.residueEndIndex, + h = new S.FragmentSeqBuilder(t), + n = t.structure.parent, + p = e.sourceChainIndex, + d = n && p, + f = 'string' == typeof I ? { asymId: I } : I, + g = new Io(f, d ? n.data.chains : e), + n = 'string' == typeof f.authAsymId, + m = n ? i : r, + v = n ? M.authSeqNumber : M.seqNumber, + b = n ? D.authSeqNumber : D.seqNumber, + y = 0; + y < u; + y++ + ) + if ((!x || l[y] === x) && g.isSatisfied(d ? p[y] : y)) { + for (var w, E = c[y], B = A[y], C = -1; E < B; E++) + if (m[E] >= v && m[E] <= b && (!M.insCode || o[E] === M.insCode)) { + C = E; + break; + } + if (!(E < 0 || E === B)) { + for ( + E = C; + E < B && + (!(m[E] >= b) || (D.insCode && m[E] === b && o[E] !== D.insCode)); + E++ + ); + (w = E), + t.hasRange(a[C], s[w]) && + h.add(S.Fragment.ofIndexRange(t, a[C], s[w])); + } + } + return h.getSeq(); + }; + }), + (r.compileHetGroups = function () { + return function (t) { + for ( + var e = t.structure.data.residues, + n = e.atomStartIndex, + r = e.atomEndIndex, + i = e.isHet, + o = e.entityIndex, + a = e.count, + s = t.structure.data.entities.type, + l = new S.FragmentSeqBuilder(t), + u = 0; + u < a; + u++ + ) + t.hasRange(n[u], r[u]) && + 'water' !== s[o[u]] && + i[u] && + l.add(S.Fragment.ofIndexRange(t, n[u], r[u])); + return l.getSeq(); + }; + }), + (r.compileNonHetPolymer = function () { + return function (t) { + for ( + var e = t.structure.data.residues, + n = e.atomStartIndex, + r = e.atomEndIndex, + e = t.structure.data.entities, + i = e.type, + o = e.count, + a = e.residueStartIndex, + s = e.residueEndIndex, + l = 0, + u = 0; + u < o; + u++ + ) + if ('polymer' === i[u]) + for (var c = a[u], A = s[u]; c < A; c++) + for (var h = n[c], p = r[c]; h < p; h++) t.hasAtom(h) && l++; + if (!l) return S.FragmentSeq.empty(t); + for (var d = new Int32Array(l), f = 0, u = 0; u < o; u++) + if ('polymer' === i[u]) + for (c = a[u], A = s[u]; c < A; c++) + for (h = n[c], p = r[c]; h < p; h++) t.hasAtom(h) && (d[f++] = h); + return new S.FragmentSeq(t, [S.Fragment.ofArray(t, d[0], d)]); + }; + }), + (r.compileAtomsInBox = function (A, h) { + return function (t) { + for ( + var e, + n, + r, + i = t.structure.positions, + o = i.x, + a = i.y, + s = i.z, + l = i.count, + u = [], + c = 0; + c < l; + c++ + ) + t.hasAtom(c) && + ((e = o[c]), + (n = a[c]), + (r = s[c]), + e >= A.x && + e <= h.x && + n >= A.y && + n <= h.y && + r >= A.z && + r <= h.z && + (u[u.length] = c)); + return u.length + ? new S.FragmentSeq(t, [new S.Fragment(t, u[0], u)]) + : S.FragmentSeq.empty(t); + }; + }), + (r.compileInside = function (t, e) { + var n = i.toQuery(t), + r = i.toQuery(e); + return function (t) { + return new S.FragmentSeq(t, n(S.Context.ofFragments(r(t))).fragments); + }; + }), + (r.compileIntersectWith = function (t, e) { + var s = i.toQuery(t), + l = i.toQuery(e); + return function (t) { + for ( + var e = s(t), + n = Co.Utils.Mask.ofFragments(l(t)), + r = new S.FragmentSeqBuilder(t), + i = 0, + o = e.fragments; + i < o.length; + i++ + ) { + var a = (function (t, e, n) { + for (var r = 0, i = 0, o = e.atomIndices; i < o.length; i++) { + var a = o[i]; + n.has(a) && r++; + } + if (r) { + for ( + var s = new Int32Array(r), l = 0, u = 0, c = e.atomIndices; + u < c.length; + u++ + ) { + a = c[u]; + n.has(a) && (s[l++] = a); + } + return S.Fragment.ofArray(t, s[0], s); + } + })(t, o[i], n); + a && r.add(a); + } + return r.getSeq(); + }; + }), + (r.compileFilter = function (t, o) { + var a = i.toQuery(t); + return function (t) { + for ( + var e, n = a(t).fragments, r = new S.FragmentSeqBuilder(t), i = 0; + i < n.length; + i++ + ) + (e = n[i]), o(e) && r.add(e); + return r.getSeq(); + }; + }), + (r.compileComplement = function (t) { + var s = i.toQuery(t); + return function (t) { + for ( + var e = Co.Utils.Mask.ofFragments(s(t)), + n = 0, + r = 0, + i = 0, + o = t.structure.data.atoms.count; + i < o; + i++ + ) + t.hasAtom(i) && !e.has(i) && n++; + if (!n) return S.FragmentSeq.empty(t); + for ( + var a = new Int32Array(n), i = 0, o = t.structure.data.atoms.count; + i < o; + i++ + ) + t.hasAtom(i) && !e.has(i) && (a[r++] = i); + return new S.FragmentSeq(t, [S.Fragment.ofArray(t, a[0], a)]); + }; + }), + (r.compileOr = function (t) { + var s = t.map(function (t) { + return i.toQuery(t); + }); + return 1 === s.length + ? s[0] + : function (t) { + for ( + var e = new S.HashFragmentSeqBuilder(t), n = 0, r = s; + n < r.length; + n++ + ) + for (var i = 0, o = (0, r[n])(t).fragments; i < o.length; i++) { + var a = o[i]; + e.add(a); + } + return e.getSeq(); + }; + }), + (r.compileUnion = function (t) { + var a = i.toQuery(t); + return function (t) { + for ( + var e, n = a(t).fragments, r = Co.Utils.FastSet.create(), i = 0, o = 0; + o < n.length; + o++ + ) + for (e = n[o].atomIndices, i = 0; i < e.length; i++) r.add(e[i]); + return 0 === r.size + ? S.FragmentSeq.empty(t) + : new S.FragmentSeq(t, [S.Fragment.ofSet(t, r)]); + }; + }), + (r.compilePolymerNames = function (A, h) { + return function (t) { + var e = t.structure, + n = e.data.entities, + r = e.data.atoms.name, + i = [], + o = 0, + a = Co.Utils.FastSet.ofArray(A); + if (h) { + for (var s = 0; s < e.data.entities.count; s++) + if ('polymer' === n.type[s]) + for ( + var l = n.atomStartIndex[s], u = n.atomEndIndex[s], c = l; + c < u; + c++ + ) + t.hasAtom(c) && !a.has(r[c]) && (i[o++] = c); + } else + for (s = 0; s < n.count; s++) + if ('polymer' === n.type[s]) + for (l = n.atomStartIndex[s], u = n.atomEndIndex[s], c = l; c < u; c++) + t.hasAtom(c) && a.has(r[c]) && (i[o++] = c); + return i.length + ? new S.FragmentSeq(t, [S.Fragment.ofArray(t, i[0], new Int32Array(i))]) + : S.FragmentSeq.empty(t); + }; + }), + (r.compileAmbientResidues = function (t, w) { + var E = i.toQuery(t); + return function (t) { + for ( + var e = E(t), + n = t.lookup3d(), + r = new S.HashFragmentSeqBuilder(t), + i = t.structure.positions, + o = i.x, + a = i.y, + s = i.z, + l = t.structure.data.atoms.residueIndex, + u = t.structure.data.residues.atomStartIndex, + c = t.structure.data.residues.atomEndIndex, + A = 0, + h = e.fragments; + A < h.length; + A++ + ) { + for ( + var p = h[A], d = Co.Utils.FastSet.create(), f = 0, g = p.atomIndices; + f < g.length; + f++ + ) + for ( + var m = g[f], + m = (d.add(l[m]), n(o[m], a[m], s[m], w)), + v = m.elements, + b = m.count, + y = 0; + y < b; + y++ + ) + d.add(l[v[y]]); + (p = { count: 0, start: u, end: c }), + (p = + (d.forEach(function (t, e) { + e.count += e.end[t] - e.start[t]; + }, p), + new Int32Array(p.count))); + d.forEach( + function (t, e) { + for (var n = e.start[t], r = e.end[t]; n < r; n++) + e.indices[e.offset++] = n; + }, + { indices: p, offset: 0, start: u, end: c }, + ), + Array.prototype.sort.call(p, function (t, e) { + return t - e; + }), + r.add(S.Fragment.ofArray(t, p[0], p)); + } + return r.getSeq(); + }; + }), + (r.compileWholeResidues = function (t) { + var p = i.toQuery(t); + return function (t) { + for ( + var e = p(t), + n = new S.HashFragmentSeqBuilder(t), + r = t.structure.data.atoms.residueIndex, + i = t.structure.data.residues.atomStartIndex, + o = t.structure.data.residues.atomEndIndex, + a = 0, + s = e.fragments; + a < s.length; + a++ + ) { + for ( + var l = s[a], u = Co.Utils.FastSet.create(), c = 0, A = l.atomIndices; + c < A.length; + c++ + ) { + var h = A[c]; + u.add(r[h]); + } + (l = { count: 0, start: i, end: o }), + (l = + (u.forEach(function (t, e) { + e.count += e.end[t] - e.start[t]; + }, l), + new Int32Array(l.count))); + u.forEach( + function (t, e) { + for (var n = e.start[t], r = e.end[t]; n < r; n++) + e.indices[e.offset++] = n; + }, + { indices: l, offset: 0, start: i, end: o }, + ), + Array.prototype.sort.call(l, function (t, e) { + return t - e; + }), + n.add(S.Fragment.ofArray(t, l[0], l)); + } + return n.getSeq(); + }; + }), + (r.compileFlatten = function (t, u) { + var c = i.toQuery(t); + return function (t) { + for ( + var e = c(t), n = new S.HashFragmentSeqBuilder(t), r = 0, i = e.fragments; + r < i.length; + r++ + ) + for (var o = i[r], a = 0, s = u(o).fragments; a < s.length; a++) { + var l = s[a]; + n.add(l); + } + return n.getSeq(); + }; + }), + (r.compileExcept = function (t, e) { + var f = i.toQuery(t), + g = i.toQuery(e); + return function (t) { + for ( + var e = f(t), + n = Co.Utils.Mask.ofFragments(g(t)), + r = new S.HashFragmentSeqBuilder(t), + i = 0, + o = e.fragments; + i < o.length; + i++ + ) { + for (var a = o[i], s = 0, l = 0, u = a.atomIndices; l < u.length; l++) { + var c = u[l]; + n.has(c) || s++; + } + if (s) { + for ( + var A = new Int32Array(s), h = 0, p = 0, d = a.atomIndices; + p < d.length; + p++ + ) { + c = d[p]; + n.has(c) || (A[h++] = c); + } + r.add(S.Fragment.ofArray(t, A[0], A)); + } + } + return r.getSeq(); + }; + }), + (e = (e = F = F || {}).Core || (e.Core = {})), + (t = e.Structure || (e.Structure = {})), + (Mo = t.Query || (t.Query = {})), + ((Do = Mo.Algebraic || (Mo.Algebraic = {})).not = + ((So = function (t) { + return !t; + }), + function (n) { + return function (t, e) { + return So(n(t, e)); + }; + })), + (Do.and = rl(function (t, e) { + return t && e; + })), + (Do.or = rl(function (t, e) { + return t || e; + })), + (ko = e.Utils.FastSet.ofArray([ + 'N', + 'CA', + 'C', + 'O', + 'P', + 'OP1', + 'OP2', + "O3'", + "O5'", + "C3'", + "C5'", + 'C4', + ])), + (Do.backbone = function (t, e) { + return 'polymer' === Do.entityType(t, e) && ko.has(Do.atomName(t, e)); + }), + (Do.sidechain = function (t, e) { + return 'polymer' === Do.entityType(t, e) && !ko.has(Do.atomName(t, e)); + }), + (Do.equal = il(function (t, e) { + return t === e; + })), + (Do.notEqual = il(function (t, e) { + return t !== e; + })), + (Do.greater = il(function (t, e) { + return e < t; + })), + (Do.lesser = il(function (t, e) { + return t < e; + })), + (Do.greaterEqual = il(function (t, e) { + return e <= t; + })), + (Do.lesserEqual = il(function (t, e) { + return t <= e; + })), + (Do.inRange = function (n, r, i) { + return function (t, e) { + t = n(t, e); + return r <= t && t <= i; + }; + }), + (Do.value = function (t) { + return function () { + return t; + }; + }), + (Do.residueSeqNumber = ol( + function (t) { + return t.residueIndex; + }, + function (t) { + return t.data.residues; + }, + function (t) { + return t.seqNumber; + }, + )), + (Do.residueName = ol( + function (t) { + return t.residueIndex; + }, + function (t) { + return t.data.residues; + }, + function (t) { + return t.name; + }, + )), + (Do.elementSymbol = ol( + function (t) { + return t.indices; + }, + function (t) { + return t.data.atoms; + }, + function (t) { + return t.elementSymbol; + }, + )), + (Do.atomName = ol( + function (t) { + return t.indices; + }, + function (t) { + return t.data.atoms; + }, + function (t) { + return t.name; + }, + )), + (Do.entityType = ol( + function (t) { + return t.entityIndex; + }, + function (t) { + return t.data.entities; + }, + function (t) { + return t.type; + }, + )), + (Do.query = function (i) { + return Mo.Builder.build(function () { + return function (t) { + for (var e = [], n = 0, r = t.structure.data.atoms.count; n < r; n++) + t.hasAtom(n) && i(t, n) && (e[e.length] = n); + return e.length + ? new Mo.FragmentSeq(t, [Mo.Fragment.ofArray(t, e[0], new Int32Array(e))]) + : Mo.FragmentSeq.empty(t); + }; + }); + }), + (((r = F = F || {}).Visualization || (r.Visualization = {})).VERSION = { + number: '1.7.9', + date: 'June 8 2019', + }), + (((t = F = F || {}).Visualization || (t.Visualization = {})).THREE = n), + (function (t) { + function r() {} + (r.getRandomColor = function (t) { + void 0 === t && (t = 0); + for (var e = 0; ; ) { + e++; + var n = r.randomMix( + { r: 166 / 255, g: 0, b: 100 / 255 }, + { r: 1, g: 1, b: 0 }, + { r: 0, g: 100 / 255, b: 1 }, + t, + ); + if ( + 100 < + Math.abs(r.previous.r - n.r) + + Math.abs(r.previous.g - n.g) + + Math.abs(r.previous.b - n.b) || + 10 === e + ) + return (r.previous = n); + } + }), + (r.randomMix = function (t, e, n, r) { + var i = 0 | Math.floor(3 * Math.random()), + o = 0 == i ? Math.random() * r : Math.random(), + a = 1 == i ? Math.random() * r : Math.random(), + i = 2 == i ? Math.random() * r : Math.random(), + r = o + a + i; + return { + r: (o /= r) * t.r + (a /= r) * e.r + (i /= r) * n.r, + g: o * t.g + a * e.g + i * n.g, + b: o * t.b + a * e.b + i * n.b, + }; + }), + (r.interpolate = function (t, e, n, r, i, o) { + (o = void 0 !== o ? o : { r: 0.1, g: 0.1, b: 0.1 }), + (i = (i - t) / (n - t)); + return ( + (o.r = e.r + (r.r - e.r) * i), + (o.g = e.g + (r.g - e.g) * i), + (o.b = e.b + (r.b - e.b) * i), + o + ); + }), + (r.previous = r.randomMix( + { r: 0.75, g: 0, b: 0.25 }, + { r: 1, g: 0.5, b: 0 }, + { r: 0, g: 0.35, b: 1 }, + 0.5, + )), + (t.Palette = r); + })( + (e = (e = F = F || {}).Visualization || (e.Visualization = {})).Utils || + (e.Utils = {}), + ), + (function (u) { + function e() {} + (u.checkWebGL = function () { + var t = document.createElement('canvas'); + try { + return !!(t.getContext('webgl') || t.getContext('experimental-webgl')); + } catch (t) { + return console.log(t), !1; + } + }), + (e.setPickBase = function (t, e, n, r) { + (t = (t << (24 - e)) | n), (e = (t >> 8) & 255), (n = 255 & t); + (r.r = ((t >> 16) & 255) / 255), (r.g = e / 255), (r.b = n / 255); + }), + (e.setPickColor = function (t, e, n, r, i) { + (t = (t << (24 - e)) | n), (e = (t >> 8) & 255), (n = 255 & t); + (r[i] = ((t >> 16) & 255) / 255), + (r[i + 1] = e / 255), + (r[i + 2] = n / 255); + }), + (e.toSurface = function (t) { + for ( + var e = 3 * t.vertices.length, + n = new Float32Array(e), + r = new Float32Array(e), + i = new Uint32Array(3 * t.faces.length), + o = Array(t.vertices.length), + a = 0; + a < t.faces.length; + a++ + ) { + var s = t.faces[a]; + (o[s.a] = s.vertexNormals[0]), + (o[s.b] = s.vertexNormals[1]), + (o[s.c] = s.vertexNormals[2]), + (i[3 * a] = s.a), + (i[3 * a + 1] = s.b), + (i[3 * a + 2] = s.c); + } + for (a = 0; a < t.vertices.length; a++) { + var l = t.vertices[a], + l = + ((n[3 * a] = l.x), (n[3 * a + 1] = l.y), (n[3 * a + 2] = l.z), o[a]); + (r[3 * a] = l.x), (r[3 * a + 1] = l.y), (r[3 * a + 2] = l.z); + } + return { + vertices: n, + vertexCount: t.vertices.length, + triangleIndices: i, + triangleCount: t.faces.length, + normals: r, + }; + }), + (e.toRawGeometry = function (t) { + t = e.toSurface(t); + return { + vertices: t.vertices, + vertexCount: t.vertexCount, + indices: t.triangleIndices, + indexCount: t.triangleCount, + normals: t.normals, + elementSize: 3, + }; + }), + (e.getIndexedBufferGeometry = function (t) { + for ( + var e = 3 * t.vertices.length, + n = new Float32Array(e), + r = new Float32Array(e), + i = new Uint32Array(3 * t.faces.length), + o = Array(t.vertices.length), + a = 0; + a < t.faces.length; + a++ + ) { + var s = t.faces[a]; + (o[s.a] = s.vertexNormals[0]), + (o[s.b] = s.vertexNormals[1]), + (o[s.c] = s.vertexNormals[2]), + (i[3 * a] = s.a), + (i[3 * a + 1] = s.b), + (i[3 * a + 2] = s.c); + } + for (a = 0; a < t.vertices.length; a++) { + var l = t.vertices[a], + l = + ((n[3 * a] = l.x), (n[3 * a + 1] = l.y), (n[3 * a + 2] = l.z), o[a]); + (r[3 * a] = l.x), (r[3 * a + 1] = l.y), (r[3 * a + 2] = l.z); + } + e = new u.THREE.BufferGeometry(); + return ( + e.addAttribute('position', new u.THREE.BufferAttribute(n, 3)), + e.addAttribute('normal', new u.THREE.BufferAttribute(r, 3)), + e.addAttribute('index', new u.THREE.BufferAttribute(i, 1)), + e + ); + }), + (u.GeometryHelper = e); + })((r = F = F || {}).Visualization || (r.Visualization = {})), + (Fo = F = F || {}), + (Qo = Fo.Visualization || (Fo.Visualization = {})), + ((t = _o = Qo.Color || (Qo.Color = {})).copy = function (t, e) { + (e.r = t.r), (e.g = t.g), (e.b = t.b); + }), + (t.clone = function (t) { + return { r: t.r, g: t.g, b: t.b }; + }), + (t.toVector = function (t) { + return new Qo.THREE.Vector3(t.r, t.g, t.b); + }), + (t.fromVector = function (t) { + return { r: t.x, g: t.y, b: t.z }; + }), + (t.fromRgb = function (t, e, n) { + return { r: t / 255, g: e / 255, b: n / 255 }; + }), + (t.fromHsl = function (t, e, n) { + var r, i, o; + return ( + 0 == e + ? (r = i = o = n) + : ((r = al( + (e = 2 * n - (n = n < 0.5 ? n * (1 + e) : n + e - n * e)), + n, + t + 1 / 3, + )), + (i = al(e, n, t)), + (o = al(e, n, t - 1 / 3))), + { r: r, g: i, b: o } + ); + }), + (t.fromHsv = function (t, e, n) { + var r, i, o; + if (0 === e) r = [n, n, n]; + else + switch ( + ((o = [ + n * (1 - e), + n * (1 - e * ((t /= 60) - (i = Math.floor(t)))), + n * (1 - e * (1 - (t - i))), + ]), + i) + ) { + case 0: + r = [n, o[2], o[0]]; + break; + case 1: + r = [o[1], n, o[0]]; + break; + case 2: + r = [o[0], n, o[2]]; + break; + case 3: + r = [o[0], o[1], n]; + break; + case 4: + r = [o[2], o[0], n]; + break; + default: + r = [n, o[0], o[1]]; + } + return { r: r[0], g: r[1], b: r[2] }; + }), + (t.random = function () { + return Qo.Utils.Palette.getRandomColor(); + }), + (t.fromHex = sl), + (t.fromHexString = function t(e) { + return '#' !== e[0] + ? sl(0) + : 4 === e.length + ? t('#' + e[1] + e[1] + e[2] + e[2] + e[3] + e[3]) + : 7 === e.length + ? sl(parseInt(e.substr(1), 16)) + : sl(0); + }), + (t.interpolate = function (t, e, n, r) { + (r.r = t.r + (e.r - t.r) * n), + (r.g = t.g + (e.g - t.g) * n), + (r.b = t.b + (e.b - t.b) * n); + }), + (t.isColor = function (t) { + return void 0 !== t.r && void 0 !== t.g && void 0 !== t.b; + }), + (t = Qo.Theme || (Qo.Theme = {})), + ((n = To = t.Default || (t.Default = {})).HighlightColor = { r: 1, g: 1, b: 0 }), + (n.SelectionColor = { r: 171 / 255, g: 71 / 255, b: 183 / 255 }), + (n.UniformColor = { r: 68 / 255, g: 130 / 255, b: 255 }), + (n.Transparency = { alpha: 1, writeDepth: !1 }), + (t.isTransparent = function (t) { + return (t = +t.transparency.alpha), (t = isNaN(t) ? 1 : t) <= 0.999; + }), + (t.getColor = function (t, e, n) { + return (t = t.colors.get(e)) || n; + }), + (t.createUniform = function (t) { + var e = (t = void 0 === t ? {} : t).colors, + n = void 0 === (n = t.variables) ? Fo.Core.Utils.FastMap.create() : n, + r = void 0 === (r = t.transparency) ? To.Transparency : r, + i = void 0 === (i = t.interactive) || i, + o = void 0 !== (o = t.disableFog) && o, + t = void 0 !== (t = t.isSticky) && t, + a = Fo.Core.Utils.FastMap.create(), + s = + (e && + e.forEach(function (t, e) { + return a.set(e, t); + }), + a.get('Uniform')); + return ( + s || (a.set('Uniform', To.UniformColor), (s = To.UniformColor)), + { + colors: a, + variables: n, + transparency: r, + interactive: i, + disableFog: o, + isSticky: t, + setElementColor: function (t, e) { + _o.copy(s, e); + }, + } + ); + }), + (t.createMapping = function (n, t) { + var e = + void 0 === (e = (t = void 0 === t ? {} : t).colors) + ? Fo.Core.Utils.FastMap.create() + : e, + r = void 0 === (r = t.variables) ? Fo.Core.Utils.FastMap.create() : r, + i = void 0 === (i = t.transparency) ? To.Transparency : i, + o = t.interactive, + a = t.disableFog, + t = t.isSticky; + return { + colors: e, + variables: r, + transparency: i || To.Transparency, + interactive: void 0 === o || o, + disableFog: void 0 !== a && a, + isSticky: void 0 !== t && t, + setElementColor: function (t, e) { + n.setColor(n.getProperty(t), e); + }, + }; + }), + (t.createColorMapMapping = function (t, e, n) { + var r = new No(e, n); + return { + getProperty: t, + setColor: function (t, e) { + return r.setColor(t, e); + }, + }; + }), + (t.createPalleteMapping = function (t, e) { + var n = new Uo(e); + return { + getProperty: t, + setColor: function (t, e) { + return n.setColor(t, e); + }, + }; + }), + (t.createPalleteIndexMapping = function (t, e) { + var n = new Ro(e); + return { + getProperty: t, + setColor: function (t, e) { + return n.setColor(t, e); + }, + }; + }), + (ll.prototype.setColor = function (t, e) { + t = this.pallete[t]; + _o.copy(t, e); + }), + (Ro = ll), + (ul.prototype.setColor = function (t, e) { + var n = this.colorMap.get(t); + n || + ((this.colorIndex = (this.colorIndex + 1) % this.pallete.length | 0), + (n = this.pallete[this.colorIndex]), + this.colorMap.set(t, n)), + _o.copy(n, e); + }), + (Uo = ul), + (cl.prototype.setColor = function (t, e) { + t = (t = this.map.get(t)) || this.fallbackColor; + _o.copy(t, e); + }), + (No = cl), + (function (t) { + var a; + function o() {} + (a = t.Visualization || (t.Visualization = {})), + (o.getPickMaterial = function () { + return new a.THREE.ShaderMaterial({ + attributes: { pColor: { type: 'v4', value: [] } }, + vertexShader: o.pickVertexShader, + fragmentShader: o.pickFragmentShader, + blending: a.THREE.NoBlending, + shading: a.THREE.FlatShading, + side: a.THREE.DoubleSide, + }); + }), + (o.getPickExcludeMaterial = function () { + return new a.THREE.MeshBasicMaterial({ + color: a.THREE.ColorKeywords.white, + side: a.THREE.DoubleSide, + }); + }), + (o.compareVectorAndColor = function (t, e) { + return t.x === e.r && t.y === e.g && t.z === e.b; + }), + (o.updateMaterial = function (t, e, n) { + var r = !1; + o.updateTransparencyAndFog(t, e, n) && (r = !0), + (r = + t instanceof a.THREE.ShaderMaterial && o.updateHighlightColor(t, e) + ? !0 + : r) && (t.needsUpdate = !0); + }), + (o.updateHighlightColor = function (t, e) { + var n = !1, + r = t.uniforms.selectionColor.value, + i = a.Theme.getColor(e, 'Selection', a.Theme.Default.SelectionColor), + i = + (o.compareVectorAndColor(r, i) || + ((t.uniforms.selectionColor.value = a.Color.toVector(i)), (n = !0)), + (r = t.uniforms.highlightColor.value), + a.Theme.getColor(e, 'Highlight', a.Theme.Default.HighlightColor)); + return ( + o.compareVectorAndColor(r, i) || + ((t.uniforms.highlightColor.value = a.Color.toVector(i)), (n = !0)), + n + ); + }), + (o.updateTransparencyAndFog = function (t, e, n) { + var r = e.transparency, + i = +r.alpha, + o = (i = isNaN(i) ? 1 : i) <= 0.999, + r = !!r.writeDepth, + n = (o || ((i = 1), (r = !0)), n && (n.renderOrder = o ? 1 : 0), !1); + return ( + (t instanceof a.THREE.MeshPhongMaterial || + t instanceof a.THREE.MeshBasicMaterial || + t instanceof a.THREE.ShaderMaterial) && + (t.transparent !== o && ((t.transparent = o), (n = !0)), + t.depthWrite !== r && ((t.depthWrite = r), (n = !0)), + t.opacity !== i && ((t.opacity = i), (n = !0)), + t.fog !== !e.disableFog && ((t.fog = !e.disableFog), (n = !0)), + t instanceof a.THREE.ShaderMaterial && + t.uniforms.opacity && + (t.uniforms.opacity.value = i)), + n + ); + }), + (o.getMeshMaterial = function (t, e) { + void 0 === t && (t = a.THREE.SmoothShading), void 0 === e && (e = !1); + var n = o.shader; + return new a.THREE.ShaderMaterial({ + uniforms: a.THREE.UniformsUtils.clone(n.uniforms), + attributes: { vState: { type: 'f', value: [] } }, + lights: !0, + fog: !0, + vertexShader: n.vertexShader, + fragmentShader: n.fragmentShader, + shading: t, + side: a.THREE.DoubleSide, + vertexColors: a.THREE.VertexColors, + blending: a.THREE.NormalBlending, + wireframe: e, + linewidth: 1, + }); + }), + (o.getPhongVertexColorMaterial = function () { + return new a.THREE.MeshPhongMaterial({ + specular: 11184810, + shininess: 2, + shading: a.THREE.SmoothShading, + vertexColors: a.THREE.VertexColors, + side: a.THREE.DoubleSide, + metal: !0, + }); + }), + (o.getDefaultHighlightMaterial = function () { + return new a.THREE.MeshPhongMaterial({ + color: 16777215, + specular: 11184810, + shininess: 2, + shading: a.THREE.SmoothShading, + side: a.THREE.DoubleSide, + metal: !0, + }); + }), + (o.applyColorToBuffer = function (t, e) { + for (var n = t.array, r = 0, i = n.length; r < i; r += 3) + (n[r] = e.r), (n[r + 1] = e.g), (n[r + 2] = e.b); + t.needsUpdate = !0; + }), + (o.applyColorToMap = function (t, e, n) { + for ( + var r = e.array, + i = { r: 0.45, g: 0.45, b: 0.45 }, + o = t.vertexRanges, + a = 0, + s = t.elementIndices; + a < s.length; + a++ + ) { + var l = s[a], + u = t.elementMap.get(l), + c = t.elementRanges[2 * u], + A = t.elementRanges[2 * u + 1]; + if (c !== A) { + n(l, i); + for (var h = c; h < A; h += 2) + for (var p = o[h], d = o[h + 1], f = p; f < d; f++) + (r[3 * f] = i.r), (r[3 * f + 1] = i.g), (r[3 * f + 2] = i.b); + } + } + e.needsUpdate = !0; + }), + (o.pickVertexShader = [ + 'attribute vec4 pColor;', + 'varying vec4 pC;', + 'void main() {', + 'pC = pColor;', + 'gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );', + '}', + ].join('\n')), + (o.pickFragmentShader = [ + 'varying vec4 pC;', + 'void main() {', + 'gl_FragColor = pC;', + '}', + ].join('\n')), + (o.shader = { + uniforms: a.THREE.UniformsUtils.merge([ + a.THREE.UniformsLib.common, + a.THREE.UniformsLib.bump, + a.THREE.UniformsLib.normalmap, + a.THREE.UniformsLib.fog, + a.THREE.UniformsLib.lights, + a.THREE.UniformsLib.shadowmap, + { + emissive: { type: 'c', value: new a.THREE.Color(0) }, + specular: { type: 'c', value: new a.THREE.Color(1118481) }, + shininess: { type: 'f', value: 2 }, + wrapRGB: { type: 'v3', value: new a.THREE.Vector3(1, 1, 1) }, + highlightColor: { type: 'v3', value: new a.THREE.Vector3(1, 1, 0) }, + selectionColor: { type: 'v3', value: new a.THREE.Vector3(1, 0, 0) }, + }, + ]), + vertexShader: [ + '#define PHONG', + 'varying vec3 vViewPosition;', + '#ifndef FLAT_SHADED', + '\tvarying vec3 vNormal;', + '#endif', + a.THREE.ShaderChunk.common, + a.THREE.ShaderChunk.map_pars_vertex, + a.THREE.ShaderChunk.lightmap_pars_vertex, + a.THREE.ShaderChunk.envmap_pars_vertex, + a.THREE.ShaderChunk.lights_phong_pars_vertex, + a.THREE.ShaderChunk.color_pars_vertex, + a.THREE.ShaderChunk.morphtarget_pars_vertex, + a.THREE.ShaderChunk.skinning_pars_vertex, + a.THREE.ShaderChunk.shadowmap_pars_vertex, + a.THREE.ShaderChunk.logdepthbuf_pars_vertex, + 'attribute float vState;', + 'varying float vS;', + 'void main() {', + ' vS = vState;', + a.THREE.ShaderChunk.map_vertex, + a.THREE.ShaderChunk.lightmap_vertex, + a.THREE.ShaderChunk.color_vertex, + a.THREE.ShaderChunk.morphnormal_vertex, + a.THREE.ShaderChunk.skinbase_vertex, + a.THREE.ShaderChunk.skinnormal_vertex, + a.THREE.ShaderChunk.defaultnormal_vertex, + '#ifndef FLAT_SHADED', + '\tvNormal = normalize( transformedNormal );', + '#endif', + a.THREE.ShaderChunk.morphtarget_vertex, + a.THREE.ShaderChunk.skinning_vertex, + a.THREE.ShaderChunk.default_vertex, + a.THREE.ShaderChunk.logdepthbuf_vertex, + '\tvViewPosition = -mvPosition.xyz;', + a.THREE.ShaderChunk.worldpos_vertex, + a.THREE.ShaderChunk.envmap_vertex, + a.THREE.ShaderChunk.lights_phong_vertex, + a.THREE.ShaderChunk.shadowmap_vertex, + '}', + ].join('\n'), + fragmentShader: [ + '#define PHONG', + 'uniform vec3 diffuse;', + 'uniform vec3 emissive;', + 'uniform vec3 specular;', + 'uniform float shininess;', + 'uniform float opacity;', + 'uniform vec3 highlightColor;', + 'uniform vec3 selectionColor;', + a.THREE.ShaderChunk.common, + a.THREE.ShaderChunk.color_pars_fragment, + a.THREE.ShaderChunk.map_pars_fragment, + a.THREE.ShaderChunk.alphamap_pars_fragment, + a.THREE.ShaderChunk.lightmap_pars_fragment, + a.THREE.ShaderChunk.envmap_pars_fragment, + a.THREE.ShaderChunk.fog_pars_fragment, + a.THREE.ShaderChunk.lights_phong_pars_fragment, + a.THREE.ShaderChunk.shadowmap_pars_fragment, + a.THREE.ShaderChunk.bumpmap_pars_fragment, + a.THREE.ShaderChunk.normalmap_pars_fragment, + a.THREE.ShaderChunk.specularmap_pars_fragment, + a.THREE.ShaderChunk.logdepthbuf_pars_fragment, + 'varying float vS;', + 'void main() {', + '\tvec3 outgoingLight = vec3( 0.0 );', + '\tvec4 diffuseColor;', + ' if (vS < 0.33) { diffuseColor = vec4( vColor, opacity ); }', + ' else if (vS - floor(vS + 0.1) > 0.33) { diffuseColor = vec4(highlightColor, opacity); }', + '\telse { diffuseColor = vec4(selectionColor, opacity); }', + a.THREE.ShaderChunk.logdepthbuf_fragment, + a.THREE.ShaderChunk.map_fragment, + a.THREE.ShaderChunk.alphamap_fragment, + a.THREE.ShaderChunk.alphatest_fragment, + a.THREE.ShaderChunk.specularmap_fragment, + a.THREE.ShaderChunk.lights_phong_fragment, + a.THREE.ShaderChunk.lightmap_fragment, + a.THREE.ShaderChunk.envmap_fragment, + a.THREE.ShaderChunk.shadowmap_fragment, + a.THREE.ShaderChunk.linear_to_gamma_fragment, + a.THREE.ShaderChunk.fog_fragment, + '#ifdef USE_FOG', + ' if (diffuseColor.a > 0.99) { gl_FragColor = vec4( outgoingLight, diffuseColor.a ); }', + ' else { gl_FragColor = vec4( outgoingLight, (1.0 - fogFactor) * diffuseColor.a ); }', + '#else', + '\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );', + '#endif', + '}', + ].join('\n'), + }), + (a.MaterialsHelper = o); + })((F = F || {})), + (function (t) { + var l; + function e() { + (this.id = -1), + (this.entity = void 0), + (this.centroid = new l.THREE.Vector3()), + (this.radius = 0), + (this.object = void 0), + (this.theme = void 0), + (this.disposeList = []), + (this.pickObject = void 0), + (this.pickBufferAttributes = []), + (this.dirty = !1), + (this.props = {}), + (this.tag = void 0); + } + ((l = t.Visualization || (t.Visualization = {})).GeometryBase = function () {}), + (e.prototype.updateVisibility = function (t) { + (this.dirty = !0), + (this.object.visible = t), + this.pickObject && + (this.pickObject.visible = this.getPickObjectVisibility(t)); + }), + (e.prototype.getVisibility = function () { + return this.object.visible; + }), + (e.prototype.applyTheme = function (t) { + (this.dirty = !0), + (this.theme = t).interactive + ? this.pickObject && (this.pickObject.visible = this.object.visible) + : this.pickObject && (this.pickObject.visible = !1), + this.applyThemeInternal(t); + }), + (e.prototype.updateId = function (t, e) { + this.id = t; + for (var n = 0, r = this.pickBufferAttributes; n < r.length; n++) { + var i = r[n], + o = i.array; + if (e <= 8) + for (var a = 0, s = o.length; a < s; a += 4) + l.Selection.Picking.applySceneIdFast(this.id, a, o); + else + for (a = 0, s = o.length; a < s; a += 4) + l.Selection.Picking.applySceneIdSlow(e - 8, this.id, a, o); + i.needsUpdate = !0; + } + }), + (e.prototype.dispose = function () { + for (var t = 0, e = this.disposeList; t < e.length; t++) { + var n = e[t]; + n && n.dispose(); + } + this.disposeList = []; + }), + (e.prototype.highlight = function (t) { + t = this.highlightInternal(t); + return (this.dirty = this.dirty || t), t; + }), + (e.prototype.applySelection = function (t, e) { + t = this.applySelectionInternal(t, e); + return (this.dirty = this.dirty || t), t; + }), + (e.prototype.getBoundingSphereOfSelection = function (t) {}), + (e.prototype.getPickObjectVisibility = function (t) { + return t && this.theme.interactive; + }), + (l.Model = e); + })((F = F || {})), + (function (t) { + function e(t) { + (this.scene = t), + (this.availableIds = []), + (this.list = []), + (this.map = Po.Core.Utils.FastMap.create()), + (this.maxId = 1), + (this._idWidth = 8); + } + Object.defineProperty(e.prototype, 'idWidth', { + get: function () { + return this._idWidth; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(e.prototype, 'all', { + get: function () { + return this.list; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(e.prototype, 'count', { + get: function () { + return this.map.size; + }, + enumerable: !0, + configurable: !0, + }), + (e.prototype.getBySceneId = function (t) { + return this.map.get(t); + }), + (e.prototype.add = function (t, e) { + void 0 === e && (e = !0); + var n = -1, + n = this.availableIds.length ? this.availableIds.pop() : this.maxId++; + this.map.set(n, t), + this.list.push(t), + t.updateId(n, 8), + t.object && this.scene.scene.add(t.object), + t.pickObject && this.scene.pickScene.add(t.pickObject), + e ? this.scene.camera.reset() : this.scene.forceRender(); + }), + (e.prototype.dispose = function (t) { + t.object && this.scene.scene.remove(t.object), + t.pickObject && this.scene.pickScene.remove(t.pickObject), + t.dispose(); + }), + (e.prototype.removeAndDispose = function (t) { + var e; + this.map.get(t.id) && + (this.availableIds.push(t.id), + this.dispose(t), + this.map.delete(t.id), + (e = this.list.indexOf(t)), + (this.list[e] = this.list[this.list.length - 1]), + this.list.pop(), + t.id === this.maxId && this.maxId--, + (t.id = -1), + this.scene.forceRender()); + }), + (e.prototype.clear = function () { + for (var t = 0, e = this.list; t < e.length; t++) { + var n = e[t]; + this.dispose(n); + } + (this.list = []), + (this.maxId = 0), + (this.availableIds = []), + this.map.clear(), + this.scene.forceRender(); + }), + (t.ModelStore = e); + })((Po = F = F || {}).Visualization || (Po.Visualization = {})), + (function (m) { + ((t = e = m.CameraType || (m.CameraType = {}))[(t.Perspective = 0)] = + 'Perspective'), + (t[(t.Orthographic = 1)] = 'Orthographic'); + var e, + t, + n = Lo.Core.Geometry.LinearAlgebra, + i = + ((r.prototype.updateSize = function (t, e) { + this.height = e; + }), + (r.prototype.updateRadius = function (t) { + this.radius = t; + }), + (r.prototype.destroy = function () { + for (var t = 0, e = this.subs; t < e.length; t++) (0, e[t])(); + (this.subs = []), this._planeDelta.onCompleted(); + }), + (r.prototype.handleMouseWheel = function (t) { + var e; + this.enableWheel && + (t.stopPropagation && t.stopPropagation(), + t.preventDefault && t.preventDefault(), + (e = 0), + t.wheelDelta ? (e = t.wheelDelta) : t.detail && (e = -t.detail), + (e = this.radius * this.slabWheelRate * (e < 0 ? 1 : -1)), + this._planeDelta.onNext(e)); + }), + (r.prototype.touchstart = function (t) { + if (3 === t.touches.length) { + this.touchStartPosition.x = 0; + for (var e = (this.touchStartPosition.y = 0); e < 3; e++) + (this.touchStartPosition.x += t.touches[e].clientX / 3), + (this.touchStartPosition.y += t.touches[e].clientY / 3); + this.touchSlabOn = !0; + } else this.touchSlabOn = !1; + }), + (r.prototype.touchend = function (t) { + this.touchSlabOn = !1; + }), + (r.prototype.touchmove = function (t) { + if (this.touchSlabOn) { + this.touchPosition.x = 0; + for (var e = (this.touchPosition.y = 0); e < 3; e++) + (this.touchPosition.x += t.touches[e].clientX / 3), + (this.touchPosition.y += t.touches[e].clientY / 3); + var n = + (-5 * + this.radius * + (this.touchPosition.y - this.touchStartPosition.y)) / + this.height; + (this.touchStartPosition.x = this.touchPosition.x), + (this.touchStartPosition.y = this.touchPosition.y), + this._planeDelta.onNext(n); + } + }), + (r.prototype.mousemove = function (t) { + var e; + this.lastMousePosition + ? ((e = [t.clientX, t.clientY, 0]), + (this.mouseMoveDelta += n.Vector3.distance( + e, + this.lastMousePosition, + )), + (this.lastMousePosition = e), + 15 < this.mouseMoveDelta && (this.enableWheel = !0)) + : (this.lastMousePosition = [t.clientX, t.clientY, 0]); + }), + (r.prototype.mouseOut = function () { + (this.mouseMoveDelta = 0), + (this.lastMousePosition = void 0), + (this.enableWheel = !1); + }), + r); + function r(t) { + var e = this; + (this.touchSlabOn = !1), + (this.touchStartPosition = { x: 0, y: 0 }), + (this.touchPosition = { x: 0, y: 0 }), + (this.radius = 0), + (this.slabWheelRate = 1 / 15), + (this._planeDelta = new Lo.Core.Rx.Subject()), + (this.subs = []), + (this.enableWheel = !1), + (this.mouseMoveDelta = 0), + (this.lastMousePosition = void 0), + (this.planeDelta = this._planeDelta); + var n = function (t) { + return e.handleMouseWheel(t); + }, + r = function (t) { + return e.touchstart(t); + }, + i = function (t) { + return e.touchend(t); + }, + o = function (t) { + return e.touchmove(t); + }, + a = function (t) { + return e.mousemove(t); + }, + s = function () { + return e.mouseOut(); + }; + t.addEventListener('mousewheel', n), + t.addEventListener('DOMMouseScroll', n), + t.addEventListener('mousemove', a), + t.addEventListener('mouseout', s), + t.addEventListener('touchstart', r, !1), + t.addEventListener('touchend', i, !1), + t.addEventListener('touchmove', o, !1), + this.subs.push(function () { + return t.removeEventListener('mousewheel', n); + }), + this.subs.push(function () { + return t.removeEventListener('mousemove', a); + }), + this.subs.push(function () { + return t.removeEventListener('mouseout', s); + }), + this.subs.push(function () { + return t.removeEventListener('DOMMouseScroll', n); + }), + this.subs.push(function () { + return t.removeEventListener('touchstart', r, !1); + }), + this.subs.push(function () { + return t.removeEventListener('touchend', i, !1); + }), + this.subs.push(function () { + return t.removeEventListener('touchmove', o, !1); + }); + } + function v(t, e) { + (this.scene = t), + (this.domElement = e), + (this.fog = new m.THREE.Fog(0, 0, 500)), + (this.focusPoint = new m.THREE.Vector3(0, 0, 0)), + (this.focusRadius = 0), + (this.targetDistance = 0), + (this.nearPlaneDistance = 0), + (this.nearPlaneDelta = 0), + (this.fogEnabled = !0), + (this.fogDelta = 0), + (this.fogFactor = 1), + (this.observers = []), + this.setup(); + } + (m.SlabControls = i), + (v.shouldInUpdateInclude = function (t) { + return !isNaN(t.centroid.x) && t.getVisibility(); + }), + (v.prototype.updateFocus = function (t) { + if (t.length) { + var e = t + .filter(function (t) { + return v.shouldInUpdateInclude(t); + }) + .sort(function (t, e) { + return e.radius - t.radius; + }); + if (e.length) { + for ( + var n = [e[0]], r = new m.THREE.Vector3(), i = 1; + i < e.length; + i++ + ) { + for (var o = e[i], a = !0, s = 0, l = n; s < l.length; s++) { + var u = l[s]; + if (r.subVectors(o.centroid, u.centroid).length() < u.radius) { + a = !1; + break; + } + } + a && n.push(o); + } + var c = this.focusPoint; + (c.x = 0), (c.y = 0); + for (var A = (c.z = 0), h = n; A < h.length; A++) { + u = h[A]; + c.add(u.centroid); + } + c.multiplyScalar(1 / n.length); + for (var p = 0, d = 0, f = e; d < f.length; d++) + var g = f[d], p = Math.max(p, c.distanceTo(g.centroid) + g.radius); + (this.focusRadius = p), + this.slabControls.updateRadius(this.focusRadius); + } + } + }), + (v.prototype.focus = function () { + this.controls.reset(); + var t = this.focusPoint; + this.camera.position.set(t.x, t.y, t.z + 4 * this.focusRadius), + this.camera.lookAt(t), + this.controls.target.set(t.x, t.y, t.z), + this.cameraUpdated(); + }), + (v.prototype.reset = function () { + (this.nearPlaneDelta = 0), + (this.fogDelta = 0), + this.updateFocus(this.scene.models.all), + this.focus(); + }), + (v.prototype.snapshot = function () { + return this.controls.getState(); + }), + (v.prototype.restore = function (t) { + this.controls.setState(t), this.scene.forceRender(); + }), + (v.prototype.focusOnModel = function () { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + this.updateFocus(t), + (this.nearPlaneDelta = 0), + (this.fogDelta = 0), + this.controls.panAndMoveToDistance(this.focusPoint, 4 * this.focusRadius); + }), + (v.prototype.focusOnPoint = function (t, e) { + (this.focusPoint.x = t.x), + (this.focusPoint.y = t.y), + (this.focusPoint.z = t.z), + (this.focusRadius = Math.max(e, 1)), + this.slabControls.updateRadius(this.focusRadius), + (this.nearPlaneDelta = 0), + (this.fogDelta = 0), + this.controls.panAndMoveToDistance(this.focusPoint, 4 * this.focusRadius); + }), + (v.prototype.move = function (t) { + this.controls.panTo(t); + }), + (v.prototype.updateSize = function (t, e) { + var n = this.camera; + n instanceof m.THREE.PerspectiveCamera && (n.aspect = t / e), + this.slabControls.updateSize(t, e), + this.camera.updateProjectionMatrix(); + }), + Object.defineProperty(v.prototype, 'position', { + get: function () { + return this.camera.position; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(v.prototype, 'object', { + get: function () { + return this.camera; + }, + enumerable: !0, + configurable: !0, + }), + (v.prototype.dispose = function () { + this.slabControls && + (this.slabControls.destroy(), (this.slabControls = void 0)), + this.unbindCamera && (this.unbindCamera(), (this.unbindCamera = void 0)), + this.controls && (this.controls.destroy(), (this.controls = void 0)); + }), + (v.prototype.planeDeltaUpdate = function (t) { + var e = this.computeNearDistance() + this.nearPlaneDelta + t; + 0 < t && e > this.targetDistance && (t = 0), + (this.nearPlaneDelta += t = t < 0 && e < 0.01 ? 0 : t), + (this.fogDelta += t), + this.cameraUpdated(); + }), + (v.prototype.computeNearDistance = function () { + var t = this.controls.target.distanceTo(this.camera.position); + return t > this.focusRadius ? t - this.focusRadius : 0; + }), + (v.prototype.cameraUpdated = function () { + var t = this.scene.options, + e = ((this.fogEnabled = !!t.enableFog), this.camera), + e = + (e instanceof m.THREE.PerspectiveCamera && (e.fov = t.cameraFOV), + (this.targetDistance = this.controls.target.distanceTo( + this.camera.position, + )), + this.computeNearDistance() + this.nearPlaneDelta); + (this.camera.near = Math.max(0.01, Math.min(e, this.targetDistance - 0.5))), + t.enableFog + ? ((e = + this.targetDistance - + this.camera.near + + +this.fogFactor * this.focusRadius - + this.nearPlaneDelta), + (t = + this.targetDistance - + this.camera.near + + 2 * this.fogFactor * this.focusRadius - + this.nearPlaneDelta), + (this.fog.near = Math.max(e, 0.1)), + (this.fog.far = Math.max(t, 0.2))) + : ((this.fog.far = 1000001), (this.fog.near = 1e6)), + this.camera.updateProjectionMatrix(), + this.scene.forceRender(); + for (var n = 0, r = this.observers; n < r.length; n++) + r[n].call(null, this); + }), + (v.prototype.createCamera = function () { + var t; + this.scene.options.cameraType === e.Perspective + ? (this.camera = new m.THREE.PerspectiveCamera( + this.scene.options.cameraFOV, + this.scene.parentElement.clientWidth / + this.scene.parentElement.clientHeight, + 0.1, + 1e6, + )) + : ((t = this.scene.parentElement.clientWidth), + (t = (this.scene.parentElement.clientHeight / t) * 100), + (this.camera = new m.THREE.OrthographicCamera( + -25, + 25, + t / 2, + t / -2, + 0.1, + 1e6, + ))), + this.controls && ((this.controls.camera = this.camera), this.reset()); + }), + (v.prototype.setup = function () { + function t() { + return e.cameraUpdated(); + } + var e = this, + n = + (this.dispose(), + this.createCamera(), + (this.controls = new m.CameraControls( + this.camera, + this.domElement, + this.scene, + )), + this.scene.options.clearColor), + r = + (this.fog.color.setRGB(n.r, n.g, n.b), + (this.scene.scene.fog = this.fog), + (this.slabControls = new i(this.domElement)), + this.slabControls.planeDelta.subscribe(function (t) { + return e.planeDeltaUpdate(t); + })); + this.controls.events.addEventListener('change', t), + (this.unbindCamera = function () { + e.controls.events.removeEventListener('change', t), + r.dispose(), + (e.observers = []); + }), + this.reset(); + }), + (v.prototype.observe = function (t) { + this.observers.push(t); + }), + (v.prototype.stopObserving = function (e) { + this.observers = this.observers.filter(function (t) { + return t !== e; + }); + }), + (m.Camera = v); + })((Lo = F = F || {}).Visualization || (Lo.Visualization = {})), + (Yo = F = F || {}), + ((Oo = Yo.Visualization || (Yo.Visualization = {})).DefaultSceneOptions = { + alpha: !1, + clearColor: { r: 0, g: 0, b: 0 }, + cameraSpeed: 6, + cameraFOV: 30, + cameraType: Oo.CameraType.Perspective, + enableFog: !0, + fogFactor: 1, + }), + (Al.prototype.updateRect = function () { + var t = this.domElement.getBoundingClientRect(); + (this.rect.bottom = t.bottom), + (this.rect.top = t.top), + (this.rect.left = t.left), + (this.rect.right = t.right); + }), + (Al.prototype.updatePosition = function (t, e) { + (this.position.x === t && this.position.y === e) || + ((this.isDirty = !0), (this.position.x = t), (this.position.y = e)); + }), + (Al.prototype.update = function () { + return ( + (this.lastPosition.x !== this.position.x || + this.lastPosition.y !== this.position.y) && + ((this.lastPosition.x = this.position.x), + (this.lastPosition.y = this.position.y), + !0) + ); + }), + (Al.prototype.setExactPosition = function () { + var t, e; + this.isDirty && + ((t = + 0 | + Math.round( + ((this.position.x - this.rect.left) / + (this.rect.right - this.rect.left)) * + this.renderState.width, + )), + (e = + 0 | + Math.round( + ((this.position.y - this.rect.top) / (this.rect.bottom - this.rect.top)) * + this.renderState.height, + )), + (this.exactPosition.x = t), + (this.exactPosition.y = e), + (this.isDirty = !1)); + }), + (Go = Al), + (Oo.MouseInfo = Go), + (hl.prototype.setup = function (t) { + var e = new Oo.THREE.PointLight(11184810, 0.75), + e = (t.add(e), (this.lights = [e]), new Oo.THREE.AmbientLight(10066329)); + t.add(e); + }), + (hl.prototype.update = function (t) { + for (var e = 0, n = this.lights; e < n.length; e++) n[e].position.copy(t); + }), + (zo = hl), + (Oo.DefaultLighting = zo), + (Ho = function () { + (this.width = 0), + (this.height = 0), + (this.resizing = !1), + (this.rendered = !1), + (this.lastRenderTime = 0), + (this.pickDelta = 0), + (this.animationFrame = 0); + }), + (Oo.RenderState = Ho), + (pl.prototype.updateOptions = function (t) { + (t = Yo.Core.Utils.extend({}, t, this.options)).fogFactor < 0.1 + ? (t.fogFactor = 0.1) + : 1 < t.fogFactor && (t.fogFactor = 1); + var e = t.cameraType !== this.options.cameraType, + n = t.clearColor; + this.renderer.setClearColor(new Oo.THREE.Color(n.r, n.g, n.b)), + this.renderer.setClearAlpha(t.alpha ? 0 : 1), + this.camera.fog.color.setRGB(n.r, n.g, n.b), + (this.camera.fogFactor = t.fogFactor), + this.camera.controls && + ((this.camera.controls.rotateSpeed = t.cameraSpeed), + (this.camera.controls.zoomSpeed = t.cameraSpeed)), + (this.options = t), + e && this.camera.createCamera(), + this.camera.cameraUpdated(), + this.forceRender(); + }), + (pl.prototype.setupMouse = function () { + function t(t) { + a.mouseInfo.isInside || a.mouseInfo.updateRect(), + a.mouseInfo.updatePosition(t.clientX, t.clientY), + (a.mouseInfo.isInside = !0); + } + function e(t) { + (a.mouseInfo.isInside = !1), a.clearHighlights(); + } + function n(t) { + a.mouseInfo.isInside && + (a.mouseInfo.updateRect(), a.handleSelectStart(t.clientX, t.clientY)), + (a.mouseInfo.isButtonDown = !0), + a.clearHighlights(); + } + function r(t) { + (a.mouseInfo.isButtonDown = !1), + a.needsRender(), + a.handleSelectEnd(t.clientX, t.clientY), + a.clearHighlights(!0); + } + function i(t) { + a.mouseInfo.updateRect(); + } + function o(t) { + var e = t.touches; + 1 === (e = e.length ? e : t.changedTouches).length && + a.handleSelectEnd(e[0].clientX, e[0].clientY), + setTimeout(a.clearHighlightsCall, 1e3 / 15); + } + var a = this, + s = this.renderer.domElement; + s.addEventListener('mousemove', t), + this.unbindEvents.push(function () { + return s.removeEventListener('mousemove', t); + }), + s.addEventListener('mouseleave', e), + this.unbindEvents.push(function () { + return s.removeEventListener('mouseleave', e); + }), + s.addEventListener('mousedown', n), + this.unbindEvents.push(function () { + return s.removeEventListener('mousedown', n); + }), + window.addEventListener('mouseup', r), + this.unbindEvents.push(function () { + return window.removeEventListener('mouseup', r); + }), + window.addEventListener('mousewheel', i), + window.addEventListener('DOMMouseScroll', i), + this.unbindEvents.push(function () { + return window.removeEventListener('mousewheel', i); + }), + this.unbindEvents.push(function () { + return window.removeEventListener('DOMMouseScroll', i); + }), + s.addEventListener('touchstart', i, !1), + this.unbindEvents.push(function () { + return s.removeEventListener('touchstart', i, !1); + }); + s.addEventListener('touchend', o, !1), + this.unbindEvents.push(function () { + return s.removeEventListener('touchend', o, !1); + }); + try { + s.addEventListener('touchcancel', o, !1), + this.unbindEvents.push(function () { + return s.removeEventListener('touchcancel', o, !1); + }); + } catch (t) {} + }), + (pl.prototype.handleSelectStart = function (t, e) { + this.pickInfo.selectStart(t, e); + }), + (pl.prototype.handleSelectEnd = function (t, e) { + this.pickInfo.selectEnd(t, e) && + ((t = this.handlePick(!0)), this.dispatchSelectEvent(t)); + }), + (pl.prototype.handleResize = function () { + var t = this.parentElement.clientWidth, + e = this.parentElement.clientHeight; + this.camera.updateSize(t, e), + this.renderState.height === e && this.renderState.width === t + ? (this.renderState.resizing = !1) + : ((this.renderState.width = t), + (this.renderState.height = e), + this.renderer.setSize(t, e), + (this.pickTarget = new Oo.THREE.WebGLRenderTarget(t, e, { + format: Oo.THREE.RGBAFormat, + minFilter: Oo.THREE.LinearFilter, + })), + (this.pickTarget.generateMipmaps = !1), + (this.renderState.resizing = !1), + this.mouseInfo.updateRect(), + this.needsRender()); + }), + (pl.prototype.needsRender = function () { + this.renderState.rendered = !1; + }), + (pl.prototype.checkDirty = function () { + for (var t = !1, e = 0, n = this.models.all; e < n.length; e++) { + var r = n[e], + t = t || r.dirty; + r.dirty = !1; + } + return t; + }), + (pl.prototype.render = function (t) { + var e; + this.renderState.resizing || + ((e = t - this.renderState.lastRenderTime), + (this.renderState.pickDelta += e), + (this.renderState.lastRenderTime = t), + 33.3333333 < this.renderState.pickDelta && + ((this.renderState.pickDelta = this.renderState.pickDelta % 33.3333333), + this.handlePick(!1)), + this.checkDirty() && (this.renderState.rendered = !1), + this.renderState.rendered || + (this.lighting.update(this.camera.position), + (this.renderer.sortObjects = !0), + this.renderer.render(this.scene, this.camera.object), + (this.renderer.sortObjects = !1), + (this.renderState.rendered = !0), + this.mouseInfo.isButtonDown || + (this.renderer.setClearAlpha(1), + this.renderer.render(this.pickScene, this.camera.object, this.pickTarget), + this.renderer.setClearAlpha(this.options.alpha ? 0 : 1)))), + (this.renderState.animationFrame = requestAnimationFrame(this.renderFunc)); + }), + (pl.prototype.dispatchHoverEvent = function () { + this.events.dispatchEvent({ + type: pl.hoverEvent, + target: null, + data: this.pickInfo.getPickInfo(), + }); + }), + (pl.prototype.dispatchSelectEvent = function (t) { + t && this.events.dispatchEvent({ type: pl.selectEvent, target: null, data: t }); + }), + (pl.prototype.clearHighlights = function (t) { + void 0 === t && (t = !0); + var e = this.pickInfo, + n = this.models.getBySceneId(e.currentPickId), + r = !1; + return ( + (r = n ? n.highlightElement(e.currentPickElementId, !1) : r) && + t && + this.needsRender(), + this.pickInfo.reset() && this.dispatchHoverEvent(), + r + ); + }), + (pl.prototype.handlePick = function (t) { + if ( + (t || (this.mouseInfo.update() && !this.mouseInfo.isButtonDown)) && + !this.renderState.resizing && + this.mouseInfo.isInside + ) { + this.mouseInfo.setExactPosition(); + var e = this.mouseInfo.exactPosition, + n = this.pickTarget.height - e.y; + if ( + !( + this.pickTarget.width < e.x - 1 || + e.x < 0.01 || + this.pickTarget.height < n - 1 || + n < 0.01 + ) + ) { + this.renderer.readRenderTargetPixels( + this.pickTarget, + 0 | e.x, + 0 | n, + 1, + 1, + this.pickBuffer, + ); + var r, + e = Oo.Selection.Picking.getSceneId(this.models.idWidth, this.pickBuffer), + n = Oo.Selection.Picking.getElementId( + this.models.idWidth, + this.pickBuffer, + ), + i = this.pickInfo; + if (t) { + if (255 !== e) + if ((r = this.models.getBySceneId(e))) + return { model: r, elements: r.getPickElements(n) }; + } else + (e === i.currentPickId && n === i.currentPickElementId) || + ((t = this.clearHighlights(!1)), + (r = this.models.getBySceneId(e)), + 255 !== e && r + ? ((i.currentPickId = e), + (i.currentPickElementId = n), + (r.highlightElement(n, !0) || t) && + (this.needsRender(), + (i.current = { model: r, elements: r.getPickElements(n) }), + this.dispatchHoverEvent())) + : t && this.needsRender()); + } + } + }), + (pl.prototype.resized = function () { + this.handleResize(); + }), + (pl.prototype.forceRender = function () { + this.needsRender(); + }), + (pl.prototype.clear = function () { + this.models.clear(); + }), + (pl.prototype.downloadScreenshot = function () { + var t = this.renderer.domElement.toDataURL('image/png'), + e = document.createElement('a'); + 'download' in e + ? ((e.style.visibility = 'hidden'), + (e.href = t), + (e.target = '_blank'), + (e.download = 'litemol_screenshot.png'), + document.body.appendChild(e), + e.click(), + e.remove()) + : window.open(t, '_blank'); + }), + (pl.prototype.destroy = function () { + this.clear(); + for (var t = 0, e = this.unbindEvents; t < e.length; t++) { + var n = e[t]; + try { + n(); + } catch (t) {} + } + for ( + void 0 !== this.initialResizeTimeout && + (clearTimeout(this.initialResizeTimeout), + (this.initialResizeTimeout = void 0)), + this.unbindEvents = [], + cancelAnimationFrame(this.renderState.animationFrame), + this.scene = null, + this.pickScene = null, + this.camera.dispose(), + this.camera = null, + this.renderer && this.renderer.dispose && this.renderer.dispose(), + this.renderer = null, + this.pickTarget.dispose(), + this.pickTarget = null; + this.parentElement.lastChild; + + ) + this.parentElement.removeChild(this.parentElement.lastChild); + }), + (pl.hoverEvent = 'hover'), + (pl.selectEvent = 'select'), + (Oo.Scene = pl), + (function (i) { + function t(t, e, n) { + var r = this; + (this.camera = t), + (this.domElement = e), + (this.scene = n), + (this.enabled = !0), + (this.rotateSpeed = 6), + (this.zoomSpeed = 6), + (this.panSpeed = 1), + (this.noRotate = !1), + (this.noZoom = !1), + (this.noPan = !1), + (this.noRoll = !0), + (this.staticMoving = !0), + (this.dynamicDampingFactor = 0.2), + (this.minDistance = 1.5), + (this.maxDistance = 1e5), + (this.keys = [65, 16, 17]), + (this.target = new i.THREE.Vector3()), + (this.EPS = 1e-6), + (this.lastPosition = new i.THREE.Vector3()), + (this._state = -1), + (this._keyDownState = -1), + (this._prevState = -1), + (this._eye = new i.THREE.Vector3()), + (this._rotateStart = new i.THREE.Vector3()), + (this._rotateEnd = new i.THREE.Vector3()), + (this._zoomStart = new i.THREE.Vector2()), + (this._zoomEnd = new i.THREE.Vector2()), + (this._touchZoomDistanceStart = 0), + (this._touchZoomDistanceEnd = 0), + (this._panStart = new i.THREE.Vector2()), + (this._panEnd = new i.THREE.Vector2()), + (this.target0 = this.target.clone()), + (this.position0 = this.camera.position.clone()), + (this.up0 = this.camera.up.clone()), + (this.changeEvent = { type: 'change', target: void 0 }), + (this.startEvent = { type: 'start', target: void 0 }), + (this.endEvent = { type: 'end', target: void 0 }), + (this.events = new i.THREE.EventDispatcher()), + (this._mouseOnScreen = new i.THREE.Vector2()), + (this._mouseOnBallProjection = new i.THREE.Vector3()), + (this._objectUp = new i.THREE.Vector3()), + (this._mouseOnBall = new i.THREE.Vector3()), + (this._rotationAxis = new i.THREE.Vector3()), + (this._rotationQuaternion = new i.THREE.Quaternion()), + (this._panMouseChange = new i.THREE.Vector2()), + (this._panObjectUp = new i.THREE.Vector3()), + (this._panPan = new i.THREE.Vector3()), + (this._panToDelta = new i.THREE.Vector3()), + (this._panToVector = new i.THREE.Vector3()), + (this.eventHandlers = { + keydown: function (t) { + return r.keydown(t); + }, + keyup: function (t) { + return r.keyup(t); + }, + mousedown: function (t) { + return r.mousedown(t); + }, + mouseup: function (t) { + return r.mouseup(t); + }, + mousemove: function (t) { + return r.mousemove(t); + }, + touchstart: function (t) { + return r.touchstart(t); + }, + touchmove: function (t) { + return r.touchmove(t); + }, + touchend: function (t) { + return r.touchend(t); + }, + }), + this.init(); + } + (t.prototype.getMouseOnScreen = function () { + this.scene.mouseInfo.setExactPosition(); + var t = this.scene.renderState, + e = this.scene.mouseInfo.exactPosition; + return ( + this._mouseOnScreen.set(e.x / t.width, e.y / t.height), this._mouseOnScreen + ); + }), + (t.prototype.getMouseProjectionOnBall = function () { + this.scene.mouseInfo.setExactPosition(); + var t = this.scene.renderState, + e = this.scene.mouseInfo.exactPosition, + n = 0.5 * t.width, + r = 0.5 * t.height, + n = (e.x - n) / (0.5 * t.width), + e = -(e.y - r) / (0.5 * t.height), + r = (this._mouseOnBall.set(n, e, 0), this._mouseOnBall.length()); + return ( + this.noRoll + ? r < Math.SQRT1_2 + ? (this._mouseOnBall.z = Math.sqrt(1 - r * r)) + : (this._mouseOnBall.z = 0.5 / r) + : 1 < r + ? this._mouseOnBall.normalize() + : (this._mouseOnBall.z = Math.sqrt(1 - r * r)), + this._eye.copy(this.camera.position).sub(this.target), + this._mouseOnBallProjection + .copy(this.camera.up) + .setLength(this._mouseOnBall.y), + this._mouseOnBallProjection.add( + this._objectUp + .copy(this.camera.up) + .cross(this._eye) + .setLength(this._mouseOnBall.x), + ), + this._mouseOnBallProjection.add(this._eye.setLength(this._mouseOnBall.z)), + this._mouseOnBallProjection + ); + }), + (t.prototype.rotateCamera = function () { + var t = Math.acos( + this._rotateStart.dot(this._rotateEnd) / + this._rotateStart.length() / + this._rotateEnd.length(), + ); + t && + (this._rotationAxis + .crossVectors(this._rotateStart, this._rotateEnd) + .normalize(), + (t *= this.rotateSpeed), + this._rotationQuaternion.setFromAxisAngle(this._rotationAxis, -t), + this._eye.applyQuaternion(this._rotationQuaternion), + this.camera.up.applyQuaternion(this._rotationQuaternion), + this._rotateEnd.applyQuaternion(this._rotationQuaternion), + this.staticMoving + ? this._rotateStart.copy(this._rotateEnd) + : (this._rotationQuaternion.setFromAxisAngle( + this._rotationAxis, + t * (this.dynamicDampingFactor - 1), + ), + this._rotateStart.applyQuaternion(this._rotationQuaternion))); + }), + (t.prototype.zoomCamera = function () { + var t; + 4 === this._state + ? ((t = this._touchZoomDistanceStart / this._touchZoomDistanceEnd), + (this._touchZoomDistanceStart = this._touchZoomDistanceEnd), + this._eye.multiplyScalar(t)) + : 1 !== + (t = 1 - (this._zoomEnd.y - this._zoomStart.y) * this.zoomSpeed) && + 0 < t && + (this._eye.multiplyScalar(t), + this.staticMoving + ? this._zoomStart.copy(this._zoomEnd) + : (this._zoomStart.y += + (this._zoomEnd.y - this._zoomStart.y) * + this.dynamicDampingFactor)); + }), + (t.prototype.panCamera = function () { + this._panMouseChange.copy(this._panEnd).sub(this._panStart), + this._panMouseChange.lengthSq() && + (this._panMouseChange.multiplyScalar( + this._eye.length() * this.panSpeed, + ), + this._panPan + .copy(this._eye) + .cross(this.camera.up) + .setLength(this._panMouseChange.x), + this._panPan.add( + this._panObjectUp + .copy(this.camera.up) + .setLength(this._panMouseChange.y), + ), + this.camera.position.add(this._panPan), + this.target.add(this._panPan), + this.staticMoving + ? this._panStart.copy(this._panEnd) + : this._panStart.add( + this._panMouseChange + .subVectors(this._panEnd, this._panStart) + .multiplyScalar(this.dynamicDampingFactor), + )); + }), + (t.prototype.panTo = function (t) { + var e = t.x, + n = t.y, + t = t.z; + this._panToVector.set(e, n, t), + this._panToDelta.subVectors(this._panToVector, this.target), + this.camera.position.add(this._panToDelta), + this.camera.lookAt(this._panToVector), + this.target.copy(this._panToVector), + this._eye.subVectors(this.camera.position, this.target), + this.lastPosition.copy(this.camera.position), + this._panToDelta.lengthSq() > this.EPS && + this.events.dispatchEvent(this.changeEvent); + }), + (t.prototype.panAndMoveToDistance = function (t, e) { + var n = t.x, + r = t.y, + t = t.z; + this._panToVector.set(n, r, t), + this._panToDelta.subVectors(this._panToVector, this.target), + this.camera.position.add(this._panToDelta), + this.camera.lookAt(this._panToVector), + this.target.copy(this._panToVector), + this._eye.subVectors(this.camera.position, this.target), + this._eye.setLength(e), + this.camera.position.addVectors(this.target, this._eye), + this.checkDistances(), + this.lastPosition.copy(this.camera.position), + this.events.dispatchEvent(this.changeEvent); + }), + (t.prototype.checkDistances = function () { + (this.noZoom && this.noPan) || + (this._eye.lengthSq() > this.maxDistance * this.maxDistance && + this.camera.position.addVectors( + this.target, + this._eye.setLength(this.maxDistance), + ), + this._eye.lengthSq() < this.minDistance * this.minDistance && + this.camera.position.addVectors( + this.target, + this._eye.setLength(this.minDistance), + )); + }), + (t.prototype.update = function () { + this._eye.subVectors(this.camera.position, this.target), + this.noRotate || this.rotateCamera(), + this.noZoom || this.zoomCamera(), + this.noPan || this.panCamera(), + this.camera.position.addVectors(this.target, this._eye), + this.checkDistances(), + this.camera.lookAt(this.target), + this.lastPosition.distanceToSquared(this.camera.position) > this.EPS && + (this.events.dispatchEvent(this.changeEvent), + this.lastPosition.copy(this.camera.position)); + }), + (t.prototype.reset = function () { + (this._state = -1), + (this._prevState = -1), + this.target.copy(this.target0), + this.camera.position.copy(this.position0), + this.camera.up.copy(this.up0), + this._eye.subVectors(this.camera.position, this.target), + this.camera.lookAt(this.target), + this.events.dispatchEvent(this.changeEvent), + this.lastPosition.copy(this.camera.position); + }), + (t.prototype.getState = function () { + return { + state: this._state, + prevState: this._prevState, + target: this.target.clone(), + objPos: this.camera.position.clone(), + objUp: this.camera.up.clone(), + eye: this._eye.clone(), + lastPosition: this.lastPosition.clone(), + }; + }), + (t.prototype.setState = function (t) { + (this._state = t.state), + (this._prevState = t.prevState), + this.target.copy(t.target), + this.camera.position.copy(t.objPos), + this.camera.up.copy(t.objUp), + this._eye.copy(t.eye), + this.camera.lookAt(this.target), + this.events.dispatchEvent(this.changeEvent), + this.lastPosition.copy(t.lastPosition); + }), + (t.prototype.keydown = function (t) { + !1 !== this.enabled && + (window.removeEventListener('keydown', this.eventHandlers.keydown, !1), + window.addEventListener('keyup', this.eventHandlers.keyup, !1), + (this._prevState = this._state), + -1 === this._state && + (t.keyCode !== this.keys[0] || this.noRotate + ? t.keyCode !== this.keys[2] || this.noZoom + ? t.keyCode !== this.keys[1] || this.noPan || (this._state = 1) + : (this._state = 2) + : (this._state = 0), + (this._keyDownState = this._state))); + }), + (t.prototype.keyup = function (t) { + !1 !== this.enabled && + ((this._state = this._prevState), + (this._keyDownState = -1), + window.removeEventListener('keyup', this.eventHandlers.keyup, !1), + window.addEventListener('keydown', this.eventHandlers.keydown, !1)); + }), + (t.prototype.mousedown = function (t) { + !1 !== this.enabled && + (t.preventDefault(), + this.scene.mouseInfo.updatePosition(t.clientX, t.clientY), + -1 !== this._keyDownState && (this._state = this._keyDownState), + -1 === this._state && (this._state = t.button), + 0 !== this._state || this.noRotate + ? 2 !== this._state || this.noZoom + ? 1 !== this._state || + this.noPan || + (this._panStart.copy(this.getMouseOnScreen()), + this._panEnd.copy(this._panStart)) + : (this._zoomStart.copy(this.getMouseOnScreen()), + this._zoomEnd.copy(this._zoomStart)) + : (this._rotateStart.copy(this.getMouseProjectionOnBall()), + this._rotateEnd.copy(this._rotateStart)), + window.addEventListener('mousemove', this.eventHandlers.mousemove, !1), + window.addEventListener('mouseup', this.eventHandlers.mouseup, !1), + this.events.dispatchEvent(this.startEvent)); + }), + (t.prototype.mousemove = function (t) { + !1 !== this.enabled && + (t.preventDefault(), + this.scene.mouseInfo.updatePosition(t.clientX, t.clientY), + 0 !== this._state || this.noRotate + ? 2 !== this._state || this.noZoom + ? 1 !== this._state || + this.noPan || + this._panEnd.copy(this.getMouseOnScreen()) + : this._zoomEnd.copy(this.getMouseOnScreen()) + : this._rotateEnd.copy(this.getMouseProjectionOnBall()), + this.update()); + }), + (t.prototype.mouseup = function (t) { + !1 !== this.enabled && + (t.preventDefault(), + (this._state = -1), + window.removeEventListener('mousemove', this.eventHandlers.mousemove, !1), + window.removeEventListener('mouseup', this.eventHandlers.mouseup, !1), + this.events.dispatchEvent(this.endEvent)); + }), + (t.prototype.touchstart = function (t) { + if (!1 !== this.enabled) { + switch (t.touches.length) { + case 1: + (this._state = 3), + this.scene.mouseInfo.updatePosition( + t.touches[0].clientX, + t.touches[0].clientY, + ), + this._rotateStart.copy(this.getMouseProjectionOnBall()), + this._rotateEnd.copy(this._rotateStart); + break; + case 2: + this._state = 4; + var e = t.touches[0].clientX - t.touches[1].clientX, + n = t.touches[0].clientY - t.touches[1].clientY, + e = + ((this._touchZoomDistanceEnd = this._touchZoomDistanceStart = + Math.sqrt(e * e + n * n)), + (t.touches[0].clientX + t.touches[1].clientX) / 2), + n = (t.touches[0].clientY + t.touches[1].clientY) / 2; + this.scene.mouseInfo.updatePosition(e, n), + this._panStart.copy(this.getMouseOnScreen()), + this._panEnd.copy(this._panStart); + break; + default: + this._state = -1; + } + this.events.dispatchEvent(this.startEvent); + } + }), + (t.prototype.touchmove = function (t) { + if (!1 !== this.enabled) + switch ((t.preventDefault(), t.stopPropagation(), t.touches.length)) { + case 1: + this.scene.mouseInfo.updatePosition( + t.touches[0].clientX, + t.touches[0].clientY, + ), + this._rotateEnd.copy(this.getMouseProjectionOnBall()), + this.update(); + break; + case 2: + var e = t.touches[0].clientX - t.touches[1].clientX, + n = t.touches[0].clientY - t.touches[1].clientY, + e = + ((this._touchZoomDistanceEnd = Math.sqrt(e * e + n * n)), + (t.touches[0].clientX + t.touches[1].clientX) / 2), + n = (t.touches[0].clientY + t.touches[1].clientY) / 2; + this.scene.mouseInfo.updatePosition(e, n), + this._panEnd.copy(this.getMouseOnScreen()), + this.update(); + break; + default: + this._state = -1; + } + }), + (t.prototype.touchend = function (t) { + if (!1 !== this.enabled) { + var e = t.touches; + switch ((e = e.length ? e : t.changedTouches).length) { + case 1: + this.scene.mouseInfo.updatePosition(e[0].clientX, e[0].clientY), + this._rotateEnd.copy(this.getMouseProjectionOnBall()), + this._rotateStart.copy(this._rotateEnd); + break; + case 2: + var n = + (e[ + (this._touchZoomDistanceStart = this._touchZoomDistanceEnd = 0) + ].clientX + + e[1].clientX) / + 2, + r = (e[0].clientY + e[1].clientY) / 2; + this.scene.mouseInfo.updatePosition(n, r), + this._panEnd.copy(this.getMouseOnScreen()), + this._panStart.copy(this._panEnd); + } + (this._state = -1), this.events.dispatchEvent(this.endEvent); + } + }), + (t.prototype.preventContextMenu = function (t) { + t.preventDefault(); + }), + (t.prototype.init = function () { + this.domElement.addEventListener( + 'contextmenu', + this.preventContextMenu, + !1, + ), + this.domElement.addEventListener( + 'mousedown', + this.eventHandlers.mousedown, + !1, + ), + this.domElement.addEventListener( + 'touchstart', + this.eventHandlers.touchstart, + !1, + ), + this.domElement.addEventListener( + 'touchend', + this.eventHandlers.touchend, + !1, + ), + this.domElement.addEventListener( + 'touchmove', + this.eventHandlers.touchmove, + !1, + ), + window.addEventListener('keydown', this.eventHandlers.keydown, !1), + this.update(); + }), + (t.prototype.destroy = function () { + this.domElement.removeEventListener( + 'contextmenu', + this.preventContextMenu, + !1, + ), + this.domElement.removeEventListener( + 'mousedown', + this.eventHandlers.mousedown, + !1, + ), + window.removeEventListener('keydown', this.eventHandlers.keydown, !1), + this.domElement.removeEventListener( + 'touchstart', + this.eventHandlers.touchstart, + !1, + ), + this.domElement.removeEventListener( + 'touchend', + this.eventHandlers.touchend, + !1, + ), + this.domElement.removeEventListener( + 'touchmove', + this.eventHandlers.touchmove, + !1, + ), + (this.camera = void 0), + (this.domElement = void 0); + }), + (i.CameraControls = t); + })((e = F = F || {}).Visualization || (e.Visualization = {})), + (jo = F = F || {}), + (function (t) { + var e; + function n() { + (this.current = null), + (this.currentPickId = -1), + (this.currentPickElementId = -1), + (this.selectPos = { x: 0, y: 0 }); + } + (n.prototype.getPickInfo = function () { + return ( + this.current && + (this.current.elements && !this.current.elements.length + ? null + : { model: this.current.model, elements: this.current.elements }) + ); + }), + (n.prototype.reset = function () { + var t = null !== this.current; + return ( + (this.currentPickId = -1), + (this.currentPickElementId = -1), + (this.current = null), + t + ); + }), + (n.prototype.selectStart = function (t, e) { + (this.selectPos.x = t), (this.selectPos.y = e); + }), + (n.prototype.selectEnd = function (t, e) { + (t -= this.selectPos.x), (e -= this.selectPos.y); + return t * t + e * e < 4.5; + }), + (t.Pick = n), + ((e = t.Picking || (t.Picking = {})).assignPickColor = function (t, e) { + var n = (t >> 16) & 255, + r = (t >> 8) & 255; + (e.r = (255 & t) / 255), (e.g = r / 255), (e.b = n / 255); + }), + (e.applySceneIdFast = function (t, e, n) { + n[e + 3] = t / 255; + }), + (e.applySceneIdSlow = function (t, e, n, r) { + var i = (e & ((1 << t) - 1)) << (8 - t), + e = ((r[n + 3] = (e >> t) / 255), (255 * r[n + 2]) | 0); + r[n + 2] = (e | i) / 255; + }), + (e.getElementId = function (t, e) { + return e[0] | (e[1] << 8) | ((e[2] & ((1 << (16 - t)) - 1)) << 16); + }), + (e.getSceneId = function (t, e) { + return ( + (t -= 8), (e[2] & ((((1 << t) - 1) << (8 - t)) >> (8 - t))) | (e[3] << t) + ); + }); + var r = jo.Core.Utils.ChunkedArray; + function i(t) { + (this.elementMap = jo.Core.Utils.FastMap.create()), + (this.elementIndex = 0), + (this.elementRangeIndex = 0), + (this.rangeIndex = 0), + (this.added = 0), + (this.elementIndices = r.create( + function (t) { + return new Int32Array(t); + }, + t, + 1, + )), + (this.elementRanges = new Int32Array(2 * t)), + (this.vertexRanges = r.create( + function (t) { + return new Int32Array(t); + }, + t, + 2, + )); + } + (i.prototype.startElement = function (t) { + (this.elementIndex = t), + (this.elementRangeIndex = this.elementMap.size), + (this.rangeIndex = this.vertexRanges.elementCount), + (this.added = 0); + }), + (i.prototype.addVertexRange = function (t, e) { + this.added++, r.add2(this.vertexRanges, t, e); + }), + (i.prototype.endElement = function () { + r.add(this.elementIndices, this.elementIndex), + this.elementMap.set(this.elementIndex, this.elementRangeIndex), + (this.elementRanges[2 * this.elementRangeIndex] = 2 * this.rangeIndex), + (this.elementRanges[2 * this.elementRangeIndex + 1] = + 2 * (this.rangeIndex + this.added)); + }), + (i.prototype.getMap = function () { + return new o( + r.compact(this.elementIndices), + this.elementMap, + this.elementRanges, + r.compact(this.vertexRanges), + ); + }), + (t.VertexMapBuilder = i); + var o = function (t, e, n, r) { + (this.elementIndices = t), + (this.elementMap = e), + (this.elementRanges = n), + (this.vertexRanges = r); + }; + function a(t, e, n, r) { + var i = !1; + if (3 === r) + for (var o = e; o < n; o++) + (s = t[o]) - (a = 0 | s) < 0.33 && ((t[o] = a + 0.55), (i = !0)); + else if (4 === r) + for (var a, o = e; o < n; o++) + 0.33 < (s = t[o]) - (a = 0 | s) && ((t[o] = a), (i = !0)); + else if (1 === r) for (o = e; o < n; o++) (t[o] = t[o] + 1), (i = !0); + else if (2 === r) + for (o = e; o < n; o++) + 0.75 < t[o] && ((s = t[o] - 1) < 0 && (s = 0), (t[o] = s), (i = !0)); + else + for (o = e; o < n; o++) { + var s = t[o]; + (t[o] = 0), (i = i || 0 !== s); + } + return i; + } + (t.VertexMap = o), + (t.applyActionToRange = a), + (t.applyActionToBuffer = function (t, e) { + var n = t.array; + return (n = a(n, 0, n.length, e)) && (t.needsUpdate = !0), n; + }); + })( + (r = jo.Visualization || (jo.Visualization = {})).Selection || + (r.Selection = {}), + ), + (n = F = F || {}), + (Vo = n.Visualization || (n.Visualization = {})), + ((qo = Vo.Geometry || (Vo.Geometry = {})).toBufferGeometry = function (t) { + var e = new Vo.THREE.BufferGeometry(); + return ( + e.addAttribute('position', new Vo.THREE.BufferAttribute(t.vertices, 3)), + t.normals && + e.addAttribute('normal', new Vo.THREE.BufferAttribute(t.normals, 3)), + e.addAttribute('index', new Vo.THREE.BufferAttribute(t.indices, 1)), + e + ); + }), + (qo.addAttribute = function (t, e, n, r) { + t.addAttribute(e, new Vo.THREE.BufferAttribute(n, r)); + }), + (t = n.Core.Utils), + (da = t.ChunkedArray), + (fa = t.ArrayBuilder), + ((t = qo.Builder || (qo.Builder = {})).createStatic = function (t, e, n) { + return ( + void 0 === n && (n = 3), + { + type: 'Static', + vertices: fa.create( + function (t) { + return new Float32Array(t); + }, + t, + 3, + ), + indices: fa.create( + function (t) { + return new Uint32Array(t); + }, + e, + n, + ), + normals: + 3 === n + ? fa.create( + function (t) { + return new Float32Array(t); + }, + t, + 3, + ) + : void 0, + elementSize: n, + } + ); + }), + (t.createDynamic = function (t, e, n) { + return ( + void 0 === n && (n = 3), + { + type: 'Dynamic', + vertices: da.create( + function (t) { + return new Float32Array(t); + }, + t, + 3, + ), + indices: da.create( + function (t) { + return new Uint32Array(t); + }, + e, + n, + ), + normals: + 3 === n + ? da.create( + function (t) { + return new Float32Array(t); + }, + t, + 3, + ) + : void 0, + elementSize: n, + } + ); + }), + (Wo = da.add2), + (Jo = da.add3), + (Ko = fa.add2), + (Zo = fa.add3), + (n = n.Core.Geometry), + (Xo = n.LinearAlgebra.Vector3), + ($o = n.LinearAlgebra.Matrix4), + (ta = Xo.zero()), + (ea = $o.zero()), + (na = $o.zero()), + (ra = $o.zero()), + (ia = $o.zero()), + (oa = $o.zero()), + (aa = Xo.fromValues(1, 1, 1)), + (sa = Xo.zero()), + (t.addRawTransformed = fl), + (t.addVertex3s = function (t, e, n, r) { + Zo(t.vertices, e, n, r); + }), + (t.addNormal3s = function (t, e, n, r) { + Zo(t.normals, e, n, r); + }), + (t.addIndex3s = function (t, e, n, r) { + Zo(t.indices, e, n, r); + }), + (t.addVertex3d = function (t, e, n, r) { + Jo(t.vertices, e, n, r); + }), + (t.addNormal3d = function (t, e, n, r) { + Jo(t.normals, e, n, r); + }), + (la = void (t.addIndex3d = function (t, e, n, r) { + Jo(t.indices, e, n, r); + })), + (t.getDashTemplate = gl), + (ua = Xo.zero()), + (ca = Xo.zero()), + (Aa = Xo.zero()), + (ha = Xo.fromValues(1, 0, 0)), + (pa = $o.zero()), + (t.addDashedLine = function (t, e, n, r, i, o) { + var a = Xo.sub(Aa, n, e), + s = Xo.magnitude(a), + l = Xo.set(ua, r, o, o), + u = Xo.makeRotation(pa, ha, a), + c = gl(), + A = ca, + h = (Xo.copy(A, e), Xo.normalize(a, a), r + i); + Xo.scale(a, a, h); + for (var p = 0; p < s; p += h) + s < p + r && (l[0] = s - p), fl(t, c, l, A, u), Xo.add(A, A, a); + }), + (t.toBufferGeometry = function (t) { + var e = 'Static' === t.type ? ml : vl; + return qo.toBufferGeometry({ + vertices: e(t.vertices), + vertexCount: t.vertices.elementCount, + normals: t.normals && e(t.normals), + indices: e(t.indices), + indexCount: t.indices.elementCount, + elementSize: t.elementSize, + }); + }); + var bl, + yl, + wl, + El, + Bl, + Cl, + xl, + Il, + Ml, + Dl, + Sl, + kl, + Fl, + Ql, + _l, + Tl, + Rl, + Ul, + Nl, + Pl, + Ll, + Yl, + a, + Ol, + Gl, + zl, + Hl, + jl, + Vl, + ql, + Wl, + Jl, + Kl, + Zl, + Xl, + $l, + tu, + eu, + nu, + ru, + iu, + B, + ou, + I, + au, + su, + lu, + uu, + cu, + Au, + hu, + pu, + du, + fu, + gu, + mu, + vu, + bu, + yu, + wu, + Eu, + Bu, + Cu, + xu, + Iu, + Mu, + Du, + Su, + ku, + Fu, + Qu, + _u, + Tu, + Ru, + Uu, + Nu, + Pu, + Lu, + Yu, + Ou, + Gu, + zu, + Hu, + ju, + Vu, + qu, + Wu, + Ju, + Ku, + Zu, + Xu, + $u, + tc, + ec, + nc, + rc, + ic, + oc, + l, + ac, + sc, + lc, + uc, + C, + cc, + Ac, + hc, + pc, + dc, + fc, + gc, + mc, + vc, + bc, + yc, + wc, + Ec, + Bc, + Cc, + xc, + Ic, + Mc, + Dc, + Sc, + kc, + Fc, + Qc, + _c, + s, + Tc, + Rc, + Uc, + Nc, + Pc, + Lc, + Yc, + u, + c, + Oc, + Gc, + zc, + Hc, + jc, + Vc, + qc, + A, + Wc, + Jc, + Kc, + Zc, + Xc, + $c, + tA, + eA, + nA, + rA, + h, + iA, + oA, + aA, + p, + sA, + lA, + uA, + cA, + AA, + hA, + pA, + dA, + fA, + gA, + mA, + vA, + bA, + yA, + wA, + EA, + BA, + CA, + xA, + IA, + MA, + DA, + SA, + kA, + FA, + QA, + f, + _A, + TA, + M = + (this && this.__extends) || + ((bl = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (t, e) { + t.__proto__ = e; + }) || + function (t, e) { + for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]); + }), + function (t, e) { + function n() { + this.constructor = t; + } + bl(t, e), + (t.prototype = + null === e ? Object.create(e) : ((n.prototype = e.prototype), new n())); + }); + function RA(t) { + for ( + var e = (function (t) { + for ( + var e = new Int32Array(t.data.annotation.length), + r = t.data.annotation, + n = 0, + i = e.length; + n < i; + n++ + ) + e[n] = n; + return ( + Array.prototype.sort.call(e, function (t, e) { + var n = r[t] - r[e]; + return n || t - e; + }), + e + ); + })(t), + n = t.data.annotation, + r = 1, + i = 0, + o = e.length - 1; + i < o; + i++ + ) + n[e[i]] !== n[e[i + 1]] && r++; + for ( + var a = new wl.Selection.VertexMapBuilder(r), + s = new Int32Array(e.length), + i = 0, + o = e.length; + i < o; + i++ + ) + s[i] = n[e[i]]; + var l = n[e[0]]; + a.startElement(l); + for (i = 0, o = e.length; i < o; i++) { + var u = n[e[i]], + c = (u !== l && (a.endElement(), a.startElement(u), (l = u)), i); + for (i++; u === n[e[i]]; ) i++; + for ( + var A = i, + h = (i--, (m = g = f = d = p = h = void 0), c), + p = A, + d = e, + f = a, + g = h, + m = h + 1; + g < p; + + ) { + for (; m < p && d[m] - d[m - 1] < 1.1; ) m++; + f.addVertexRange(d[g], d[m - 1] + 1), (g = m), (m += 1); + } + } + return a.endElement(), a.getMap(); + } + function UA(r) { + return D(this, void 0, void 0, function () { + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, r.computation.updateProgress('Computing selection map...')]; + case 1: + return ( + t.sent(), + r.data.annotation + ? (r.geom.elementToVertexMap = RA(r)) + : (r.geom.elementToVertexMap = + ((e = r), + (n = new wl.Selection.VertexMapBuilder(1)).startElement(0), + n.addVertexRange(0, e.vertexCount), + n.endElement(), + n.getMap())), + [2] + ); + } + var e, n; + }); + }); + } + function NA(i) { + return D(this, void 0, void 0, function () { + var e, n, r; + return P(this, function (t) { + switch (t.label) { + case 0: + (e = yl.Core.Utils.PerformanceMonitor.currentTime()), + (n = 0), + (t.label = 1); + case 1: + return n < i.triCount + ? (r = yl.Core.Utils.PerformanceMonitor.currentTime()) - e > + yl.Core.Computation.UpdateProgressDelta + ? ((e = r), + [ + 4, + i.computation.updateProgress( + 'Creating selection geometry...', + !0, + n, + i.triCount, + ), + ]) + : [3, 3] + : [3, 5]; + case 2: + t.sent(), (t.label = 3); + case 3: + !(function (b, y) { + D(this, void 0, void 0, function () { + var e, n, r, i, o, a, s, l, u, c, A, h, p, d, f, g, m, v; + return P(this, function (t) { + for ( + e = y.data.triangleIndices, + n = y.data.annotation, + r = y.pickPlatesVertices, + i = y.pickPlatesTris, + o = y.pickPlatesColors, + a = y.data.vertices, + s = { r: 0.45, g: 0.45, b: 0.45 }, + l = y.pickTris, + u = 0, + c = b, + A = Math.min(b + 1e5, y.triCount); + c < A; + c++ + ) + (h = e[3 * c]), + (p = e[3 * c + 1]), + (d = e[3 * c + 2]), + (f = n[h]), + (g = n[p]), + (m = n[d]), + f === g && g === m + ? El.add3(l, h, p, d) + : ((v = -1), + f === g || f === m ? (v = f) : g === m && (v = g), + El.add3(r, a[3 * h], a[3 * h + 1], a[3 * h + 2]), + El.add3(r, a[3 * p], a[3 * p + 1], a[3 * p + 2]), + El.add3(r, a[3 * d], a[3 * d + 1], a[3 * d + 2]), + El.add3(i, u++, u++, u++), + v < 0 + ? ((s.r = 0), (s.g = 0), (s.b = 0)) + : wl.Selection.Picking.assignPickColor(v, s), + El.add4(o, s.r, s.g, s.b, 0), + El.add4(o, s.r, s.g, s.b, 0), + El.add4(o, s.r, s.g, s.b, 0)); + return (y.platesVertexCount = y.platesVertexCount + u), [2]; + }); + }); + })(n, i), + (t.label = 4); + case 4: + return (n += 1e5), [3, 1]; + case 5: + return [2]; + } + }); + }); + } + function PA(t, e, n, r) { + var i; + r < n && ((i = n), (n = r), (r = i)), + e.add(((n + r) * (n + r + 1)) / 2 + r) && El.add2(t, n, r); + } + function LA(t, e, n) { + var r = new wl.THREE.BufferGeometry(); + r.addAttribute('position', t.position), + r.addAttribute('normal', new wl.THREE.BufferAttribute(n.data.normals, 3)), + r.addAttribute( + 'color', + new wl.THREE.BufferAttribute(new Float32Array(n.data.vertices.length), 3), + ), + e + ? r.addAttribute( + 'index', + (function (t) { + for ( + var e = t.data.triangleIndices, + n = El.create( + function (t) { + return new Uint32Array(t); + }, + (1.5 * t.triCount) | 0, + 2, + ), + r = yl.Core.Utils.FastSet.create(), + i = 0, + o = e.length; + i < o; + i += 3 + ) { + var a = e[i], + s = e[i + 1], + l = e[i + 2]; + PA(n, r, a, s), PA(n, r, a, l), PA(n, r, s, l); + } + return new wl.THREE.BufferAttribute(El.compact(n), 1); + })(n), + ) + : r.addAttribute('index', t.index), + (n.geom.geometry = r), + (n.geom.vertexStateBuffer = new wl.THREE.BufferAttribute( + new Float32Array(n.data.vertices.length), + 1, + )), + r.addAttribute('vState', n.geom.vertexStateBuffer); + } + function YA(A, h) { + return D(this, void 0, void 0, function () { + return P(this, function (t) { + switch (t.label) { + case 0: + return [ + 4, + h.computation.updateProgress('Creating selection geometry...'), + ]; + case 1: + return (t.sent(), + (h.pickColorBuffer = new Float32Array(4 * h.vertexCount)), + h.data.annotation) + ? [3, 2] + : ((e = A), + (u = h), + (c = new wl.THREE.BufferGeometry()).addAttribute( + 'position', + e.position, + ), + c.addAttribute('index', e.index), + c.addAttribute( + 'pColor', + new wl.THREE.BufferAttribute(u.pickColorBuffer, 4), + ), + (u.geom.pickGeometry = c), + (c = new wl.THREE.BufferGeometry()).addAttribute( + 'position', + new wl.THREE.BufferAttribute(new Float32Array(0), 3), + ), + c.addAttribute( + 'index', + new wl.THREE.BufferAttribute(new Uint32Array(0), 1), + ), + c.addAttribute( + 'pColor', + new wl.THREE.BufferAttribute(new Float32Array(0), 4), + ), + (u.geom.pickPlatesGeometry = c), + [2]); + case 2: + for ( + var e = h, + n = { r: 0.45, g: 0.45, b: 0.45 }, + r = e.data.annotation, + i = ((e.pickTris = El.forIndexBuffer(e.triCount)), e.pickColorBuffer), + o = 0, + a = e.vertexCount; + o < a; + o++ + ) { + var s = r[o]; + 0 <= s && + (wl.Selection.Picking.assignPickColor(s + 1, n), + (i[4 * o] = n.r), + (i[4 * o + 1] = n.g), + (i[4 * o + 2] = n.b)); + } + return ( + (h.pickPlatesVertices = El.forVertex3D( + Math.max(h.vertexCount / 10, 10), + )), + (h.pickPlatesTris = El.forIndexBuffer(Math.max(h.triCount / 10, 10))), + (h.pickPlatesColors = El.create( + function (t) { + return new Float32Array(t); + }, + Math.max(h.vertexCount / 10, 10), + 4, + )), + (h.platesVertexCount = 0), + [4, NA(h)] + ); + case 3: + t.sent(), + (u = A), + (c = h), + (l = new wl.THREE.BufferGeometry()).addAttribute( + 'position', + u.position, + ), + l.addAttribute('index', u.index), + l.addAttribute( + 'pColor', + new wl.THREE.BufferAttribute(c.pickColorBuffer, 4), + ), + (c.geom.pickGeometry = l), + (l = new wl.THREE.BufferGeometry()).addAttribute( + 'position', + new wl.THREE.BufferAttribute(El.compact(c.pickPlatesVertices), 3), + ), + l.addAttribute( + 'index', + new wl.THREE.BufferAttribute(El.compact(c.pickPlatesTris), 1), + ), + l.addAttribute( + 'pColor', + new wl.THREE.BufferAttribute(El.compact(c.pickPlatesColors), 4), + ), + (c.geom.pickPlatesGeometry = l), + (t.label = 4); + case 4: + return [2]; + } + var l, e, u, c; + }); + }); + } + function OA() { + var t = Bl.call(this) || this; + return ( + (t.geometry = void 0), + (t.vertexToElementMap = void 0), + (t.elementToVertexMap = void 0), + (t.pickGeometry = void 0), + (t.pickPlatesGeometry = void 0), + (t.vertexStateBuffer = void 0), + t + ); + } + function GA(t) { + (this.gamma = 1), + (this.mapped = Ml.Core.Utils.FastMap.create()), + (this.state = { scratchW: 0, scratchH: 0, currentX: 0, currentY: 0 }), + (this.lineHeight = 0), + (this.params = Ml.Core.Utils.extend({}, t, Sl.DefaultTextAtlasParams)), + 'undefined' != typeof navigator && + (t = navigator.userAgent).match(/Chrome/) && + t.match(/OS X/) && + (this.gamma = 0.5), + this.build(), + this.populate(), + (this.texture = new Dl.THREE.Texture(this.canvas.canvas2)), + (this.texture.flipY = !1), + (this.texture.needsUpdate = !0), + (this.canvas = void 0); + } + function zA(t) { + return 'H' === t || 'D' === t || 'T' === t; + } + function g() {} + function HA() { + var t = (null !== Xl && Xl.apply(this, arguments)) || this; + return ( + (t.atomsGeometry = void 0), + (t.bondsGeometry = void 0), + (t.pickGeometry = void 0), + (t.atomVertexMap = void 0), + (t.vertexStateBuffer = void 0), + t + ); + } + function jA() { + var t = (null !== nu && nu.apply(this, arguments)) || this; + return ( + (t.geometry = void 0), + (t.pickGeometry = void 0), + (t.gapsGeometry = void 0), + (t.directionConesGeometry = void 0), + (t.vertexMap = void 0), + (t.vertexStateBuffer = void 0), + t + ); + } + function VA() { + return (null !== cu && cu.apply(this, arguments)) || this; + } + (yl = F = F || {}), + (wl = yl.Visualization || (yl.Visualization = {})), + (e = wl.Surface || (wl.Surface = {})), + (El = yl.Core.Utils.ChunkedArray), + (e.buildGeometry = function (i, o, a) { + return D(this, void 0, void 0, function () { + var n, r; + return P(this, function (t) { + switch (t.label) { + case 0: + return ( + (n = { + data: i, + computation: o, + geom: new Cl(), + vertexCount: (i.vertices.length / 3) | 0, + triCount: (i.triangleIndices.length / 3) | 0, + }), + [4, o.updateProgress('Creating geometry...')] + ); + case 1: + return t.sent(), [4, yl.Core.Geometry.Surface.computeNormals(i).run(o)]; + case 2: + return ( + t.sent(), + [4, yl.Core.Geometry.Surface.computeBoundingSphere(i).run(o)] + ); + case 3: + return ( + t.sent(), + (e = n), + (r = { + position: new wl.THREE.BufferAttribute(e.data.vertices, 3), + index: new wl.THREE.BufferAttribute(e.data.triangleIndices, 1), + }), + [4, UA(n)] + ); + case 4: + return t.sent(), [4, YA(r, n)]; + case 5: + return ( + t.sent(), + LA(r, a, n), + (n.geom.vertexToElementMap = n.data.annotation), + [2, n.geom] + ); + } + var e; + }); + }); + }), + (Bl = wl.GeometryBase), + M(OA, Bl), + (OA.prototype.dispose = function () { + this.geometry.dispose(), + this.pickGeometry && + (this.pickGeometry.dispose(), this.pickPlatesGeometry.dispose()); + }), + (Cl = OA), + (e.Geometry = Cl), + (function (y) { + var e, + u = y.Surface || (y.Surface = {}); + function c() { + var t = (null !== e && e.apply(this, arguments)) || this; + return (t._mapPickElements = void 0), t; + } + (u.DefaultSurfaceModelParameters = { + isWireframe: !1, + mapPickElements: void 0, + }), + (e = y.Model), + M(c, e), + (c.prototype.applySelectionInternal = function (t, e) { + for ( + var n = this.geometry.vertexStateBuffer, + r = n.array, + i = this.geometry.elementToVertexMap, + o = i.vertexRanges, + a = !1, + s = 0, + l = t; + s < l.length; + s++ + ) { + var u = l[s]; + if (i.elementMap.has(u)) { + var u = i.elementMap.get(u), + c = i.elementRanges[2 * u], + A = i.elementRanges[2 * u + 1]; + if (c !== A) + for (var h = c; h < A; h += 2) + var p = o[h], + d = o[h + 1], + a = y.Selection.applyActionToRange(r, p, d, e) || a; + } + } + return !!a && (n.needsUpdate = !0); + }), + (c.prototype.highlightElement = function (t, e) { + return this.surface.annotation + ? this.applySelection([t - 1], e ? 3 : 4) + : this.highlightInternal(e); + }), + (c.prototype.highlightInternal = function (t) { + return y.Selection.applyActionToBuffer( + this.geometry.vertexStateBuffer, + t ? 3 : 4, + ); + }), + (c.prototype.getPickElements = function (t) { + return t + ? this._mapPickElements + ? this._mapPickElements(t - 1) || [] + : [t - 1] + : [0]; + }), + (c.prototype.getBoundingSphereOfSelection = function (t) { + if (!this.geometry.vertexToElementMap) + return { + radius: this.radius, + center: xl.Core.Geometry.LinearAlgebra.Vector3.fromObj(this.centroid), + }; + for ( + var e = this.geometry.geometry.attributes.position.array, + n = new y.THREE.Vector3(), + r = 0, + i = this.geometry.elementToVertexMap, + o = i.vertexRanges, + a = 0, + s = t; + a < s.length; + a++ + ) { + var l = s[a]; + if (i.elementMap.has(l)) { + var u = i.elementMap.get(l), + c = i.elementRanges[2 * u], + A = i.elementRanges[2 * u + 1]; + if (c !== A) + for (var h = c; h < A; h += 2) + for (var p = o[h], d = o[h + 1], f = p; f < d; f++) + (n.x += e[3 * f]), + (n.y += e[3 * f + 1]), + (n.z += e[3 * f + 2]), + r++; + } + } + if (r) { + (n.x = n.x / r), (n.y = n.y / r), (n.z = n.z / r); + for ( + var g = new y.THREE.Vector3(), m = 0, v = 0, b = t; + v < b.length; + v++ + ) { + l = b[v]; + if (i.elementMap.has(l)) { + (u = i.elementMap.get(l)), + (c = i.elementRanges[2 * u]), + (A = i.elementRanges[2 * u + 1]); + if (c !== A) + for (h = c; h < A; h += 2) + for (p = o[h], d = o[h + 1], f = p; f < d; f++) + (g.x = e[3 * f]), + (g.y = e[3 * f + 1]), + (g.z = e[3 * f + 2]), + (m = Math.max(m, g.distanceToSquared(n))); + } + } + return { + radius: (m = Math.sqrt(m)), + center: xl.Core.Geometry.LinearAlgebra.Vector3.fromObj(n), + }; + } + }), + (c.prototype.applyThemeInternal = function (t) { + var e = { r: 0, g: 0, b: 0 }, + n = + (y.MaterialsHelper.updateMaterial(this.material, t, this.object), + this.geometry.geometry.attributes.color.array), + r = this.geometry.vertexToElementMap; + if (r) + for (var i = 0, o = (n.length / 3) | 0; i < o; i++) { + var a = r[i]; + a < 0 ? ((e.r = 0), (e.g = 0), (e.b = 0)) : t.setElementColor(a, e), + (n[3 * i] = e.r), + (n[3 * i + 1] = e.g), + (n[3 * i + 2] = e.b); + } + else { + t.setElementColor(0, e); + for (i = 0, o = (n.length / 3) | 0; i < o; i++) + (n[3 * i] = e.r), (n[3 * i + 1] = e.g), (n[3 * i + 2] = e.b); + } + this.pickObject && + (this.pickObject.visible = this.getPickObjectVisibility( + this.object.visible, + )), + (this.geometry.geometry.getAttribute('color').needsUpdate = !0); + }), + (c.prototype.getPickObjectVisibility = function (t) { + return !(y.Theme.isTransparent(this.theme) || !this.theme.interactive) && t; + }), + (c.prototype.createObjects = function () { + var t, + e = new y.THREE.Mesh(this.geometry.geometry, this.material), + n = void 0; + return ( + this.geometry.pickGeometry && + ((n = new y.THREE.Object3D()), + (t = new y.THREE.Mesh(this.geometry.pickGeometry, this.pickMaterial)), + n.add(t), + (t = new y.THREE.Mesh( + this.geometry.pickPlatesGeometry, + this.pickMaterial, + )), + n.add(t)), + { main: e, pick: n } + ); + }), + (c.create = function (i, t) { + var e = this, + o = t.surface, + a = t.theme, + n = t.parameters, + s = void 0 === n ? u.DefaultSurfaceModelParameters : n, + l = t.props; + return xl.Core.computation(function (r) { + return D(e, void 0, void 0, function () { + var e, n; + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, u.buildGeometry(o, r, !!s.isWireframe)]; + case 1: + return ( + (n = t.sent()), + ((e = new c())._mapPickElements = s.mapPickElements), + (e.surface = o), + (e.material = y.MaterialsHelper.getMeshMaterial( + y.THREE.FlatShading, + !!s.isWireframe, + )), + (e.geometry = n), + (e.pickMaterial = y.MaterialsHelper.getPickMaterial()), + (e.entity = i), + (n = o.boundingSphere.center), + (e.centroid = new y.THREE.Vector3(n[0], n[1], n[2])), + (e.radius = o.boundingSphere.radius), + l && (e.props = l), + e.disposeList.push(e.geometry, e.material, e.pickMaterial), + (n = e.createObjects()), + (e.object = n.main), + (e.pickObject = n.pick), + e.applyTheme(a), + (e.pickBufferAttributes = [ + e.geometry.pickGeometry.attributes.pColor, + e.geometry.pickPlatesGeometry.attributes.pColor, + ]), + [2, e] + ); + } + }); + }); + }); + }), + (u.Model = c); + })((xl = F = F || {}).Visualization || (xl.Visualization = {})), + (function (A) { + var t, e; + function h() { + var t = e.call(this) || this; + return ( + (t.geometry = void 0), + (t.center = new A.THREE.Vector3(0, 0, 0)), + (t.radius = 0), + t + ); + } + (t = A.Lines || (A.Lines = {})), + (e = A.GeometryBase), + M(h, e), + (h.prototype.dispose = function () { + this.geometry.dispose(); + }), + (h.create = function (t, e) { + for ( + var n = new h(), r = new A.THREE.Vector3(0, 0, 0), i = 0, o = t.length; + i < o; + i += 3 + ) + (r.x += t[i]), (r.y += t[i + 1]), (r.z += t[i + 2]); + r.multiplyScalar(1 / (t.length / 3)); + for (var a = 0, i = 0, o = t.length; i < o; i += 3) { + var s = r.x - t[i], + l = r.y - t[i + 1], + u = r.z - t[i + 2], + s = s * s + l * l + u * u; + a < s && (a = s); + } + var a = Math.sqrt(a), + c = new A.THREE.BufferGeometry(); + return ( + c.addAttribute('position', new A.THREE.BufferAttribute(t, 3)), + c.addAttribute('index', new A.THREE.BufferAttribute(e, 1)), + (n.geometry = c), + (n.center = r), + (n.radius = a), + n + ); + }), + (t.Geometry = h); + })((r = F = F || {}).Visualization || (r.Visualization = {})), + (function (s) { + var t, e; + function l() { + return (null !== e && e.apply(this, arguments)) || this; + } + (t = s.Lines || (s.Lines = {})), + (e = s.Model), + M(l, e), + (l.prototype.applySelectionInternal = function (t, e) { + return !1; + }), + (l.prototype.highlightElement = function (t, e) { + return this.applySelection([t], e ? 3 : 4); + }), + (l.prototype.highlightInternal = function (t) { + return !1; + }), + (l.prototype.getPickElements = function (t) { + return [t]; + }), + (l.prototype.applyThemeInternal = function (t) { + t = t.colors.get('Uniform'); + (this.material.color = new s.THREE.Color(t.r, t.g, t.b)), + (this.material.needsUpdate = !0); + }), + (l.prototype.getPickObjectVisibility = function (t) { + return !1; + }), + (l.prototype.createObjects = function () { + return { + main: new s.THREE.Mesh(this.geometry.geometry, this.material), + pick: void 0, + }; + }), + (l.create = function (r, t) { + var e = this, + i = t.geometry, + o = t.theme, + a = t.props; + return Il.Core.computation(function (t) { + return D(e, void 0, void 0, function () { + var e, n; + return P(this, function (t) { + return ( + ((e = new l()).material = new s.THREE.MeshBasicMaterial({ + wireframe: !0, + })), + (e.geometry = i), + (e.entity = r), + (e.centroid = i.center), + (e.radius = i.radius), + a && (e.props = a), + e.disposeList.push(e.geometry, e.material), + (n = e.createObjects()), + (e.object = n.main), + (e.pickObject = void 0), + e.applyTheme(o), + (e.pickBufferAttributes = []), + [2, e] + ); + }); + }); + }); + }), + (t.Model = l); + })((Il = F = F || {}).Visualization || (Il.Visualization = {})), + (Ml = F = F || {}), + (Dl = Ml.Visualization || (Ml.Visualization = {})), + ((Sl = Dl.Labels || (Dl.Labels = {})).DefaultTextAtlasParams = { + font: ['sans-serif'], + size: 36, + style: 'normal', + variant: 'normal', + weight: 'normal', + outline: 0, + width: 2048, + height: 2048, + }), + (kl = Ml.Core.Utils.FastMap.create()), + (Sl.getTextAtlas = function (t) { + var e = JSON.stringify(t); + return kl.has(e) ? kl.get(e) : ((t = new Fl(t)), kl.set(e, t), t); + }), + (GA.prototype.build = function () { + for ( + var t = this.params, + e = t.size + 2 * t.outline + Math.round(t.size / 4), + n = t.width / 4, + r = document.createElement('canvas'), + i = ((r.width = n), (r.height = e), r.getContext('2d')), + o = + ((i.font = + t.style + + ' ' + + t.variant + + ' ' + + t.weight + + ' ' + + t.size + + 'px ' + + t.font), + (i.fillStyle = '#FF0000'), + (i.textAlign = 'left'), + (i.textBaseline = 'bottom'), + (i.lineJoin = 'round'), + []), + a = 3 * t.outline, + s = 0; + s < a; + ++s + ) { + var l = ('00' + Math.max(0, 8 * -s + 128 - 8 * !s).toString(16)).slice(-2); + o.push('#' + l + l + l); + } + var u = new Uint8Array(n * e * 2), + c = new Uint8Array(t.width * t.height * 4), + A = document.createElement('canvas'), + t = ((A.width = t.width), (A.height = t.height), A.getContext('2d')); + (this.canvas = { + canvas: r, + ctx: i, + canvas2: A, + ctx2: t, + maxWidth: n, + colors: o, + scratch: u, + data: c, + }), + (this.lineHeight = e); + }), + (GA.prototype.map = function (t) { + if (this.mapped.has(t)) return this.mapped.get(t); + this.draw(t); + var e = this.state, + n = + (e.currentX + e.scratchW > this.params.width && + ((e.currentX = 0), (e.currentY += e.scratchH)), + e.currentY + e.scratchH > this.params.height && + console.warn('TextAtlas canvas to small'), + { x: e.currentX, y: e.currentY, w: e.scratchW, h: e.scratchH }); + return ( + this.mapped.set(t, n), + this.canvas.ctx2.drawImage( + this.canvas.canvas, + 0, + 0, + e.scratchW, + e.scratchH, + e.currentX, + e.currentY, + e.scratchW, + e.scratchH, + ), + (e.currentX += e.scratchW), + n + ); + }), + (GA.prototype.getTextMetrics = function (t) { + return this.mapped.has(t) ? this.mapped.get(t) : this.placeholder; + }), + (GA.prototype.draw = function (t) { + var e = this.params, + n = this.canvas, + r = this.lineHeight, + i = e.outline, + o = n.ctx, + a = n.scratch, + s = n.maxWidth, + l = n.colors, + u = i, + c = r - e.outline, + n = o.measureText(t), + s = Math.min(s, Math.ceil(n.width + 2 * u + 1)); + if ((o.clearRect(0, 0, s, r), 0 === e.outline)) + for ( + o.fillText(t, u, c), + p = 3, + g = (h = (A = o.getImageData((f = 0), 0, s, r)).data).length / 4; + f < g; + ++f + ) + (a[f] = h[p]), (p += 4); + else { + for (o.globalCompositeOperation = 'source-over', f = i + 1; 0 < f; --f) + (o.strokeStyle = l[(p = 1 < f ? 2 * f - 2 : f) - 1]), + (o.lineWidth = p), + o.strokeText(t, u, c); + (o.globalCompositeOperation = 'multiply'), + (o.fillStyle = '#FF00FF'), + o.fillText(t, u, c); + for ( + var A, + h = (A = o.getImageData(0, 0, s, r)).data, + p = 0, + d = this.gamma, + f = 0, + g = h.length / 4; + f < g; + ++f + ) { + var m = h[p], + v = m ? h[p + 1] / m : 1, + b = + (0.5 === d && (v = Math.sqrt(v)), + (v = Math.min(1, Math.max(0, v))), + 256 - m); + (a[f] = Math.max(0, Math.min(255, 2 + (b + (m - b) * v)))), + (h[p + 3] = a[f]), + (p += 4); + } + } + o.putImageData(A, 0, 0), (this.state.scratchW = s), (this.state.scratchH = r); + }), + (GA.prototype.populate = function () { + this.placeholder = this.map(String.fromCharCode(65533)); + for (var t = 0; t < 127; ++t) this.map(String.fromCharCode(t)); + for (t = 128; t < 255; ++t) this.map(String.fromCharCode(t)); + for (t = 880; t < 1023; ++t) this.map(String.fromCharCode(t)); + for (t = 1024; t < 1279; ++t) this.map(String.fromCharCode(t)); + this.map(String.fromCharCode(8491)); + }), + (Fl = GA), + (Sl.TextAtlas = Fl), + (Ql = F = F || {}), + (_l = Ql.Visualization || (Ql.Visualization = {})), + (((Tl = _l.Labels || (_l.Labels = {})).Geometry || (Tl.Geometry = {})).create = + function (t) { + for ( + var e = (t = (function (t) { + for ( + var e = Ql.Core.Utils.extend({}, t.options, Tl.DefaultLabelsOptions), + n = 0, + r = 0, + i = t.labels; + r < i.length; + r++ + ) { + var o = i[r]; + n += o.length; + } + var a = Tl.getTextAtlas({ + font: [e.fontFamily], + style: e.fontStyle, + weight: e.fontWeight, + size: e.fontSize, + outline: e.useSDF ? 5 : 0, + }), + s = n + t.labels.length; + return { + positions: t.positions, + inputSizes: t.sizes, + labels: t.labels, + options: e, + textAtlas: a, + charCount: n, + quadCount: s, + vertices: new Float32Array(4 * s * 3), + size: new Float32Array(4 * s), + texCoords: new Float32Array(4 * s * 2), + mapping: new Float32Array(4 * s * 2), + }; + })(t)), + n = e.labels, + r = e.positions, + i = r.x, + o = r.y, + a = r.z, + s = e.vertices, + l = e.size, + u = e.inputSizes, + c = 0, + A = 0; + A < n.length; + ++A + ) + for (var h = n[A].length + 1, p = 0; p < h; ++p, ++c) + for (var d = 0; d < 4; d++) { + var f = 4 * c * 3 + 3 * d; + (s[f] = i[A]), + (s[1 + f] = o[A]), + (s[2 + f] = a[A]), + (l[4 * c + d] = u[A]); + } + for ( + var g, + m, + v, + b, + y, + w, + E, + B, + C = (r = t).textAtlas, + x = r.labels, + I = r.options.attachment, + M = C.params.outline, + D = C.lineHeight, + S = C.lineHeight * r.options.backgroundMargin * 0.1 - 10, + k = r.texCoords, + F = r.mapping, + Q = 0, + _ = 0; + _ < x.length; + ++_ + ) { + for (v = x[_], b = 0, w = v.length, y = 0; y < w; ++y) + (g = C.getTextMetrics(v[y])), (b += g.w - 2 * M); + for ( + B = + 0 === I.indexOf('top') + ? C.lineHeight / 1.25 + : 0 === I.indexOf('middle') + ? C.lineHeight / 2.5 + : 0, + E = 0 < I.indexOf('right') ? b : 0 < I.indexOf('center') ? b / 2 : 0, + E += M, + B += M, + F[0 + (m = 2 * Q * 4)] = -D / 6 - E - S, + F[1 + m] = D - B + S, + F[2 + m] = -D / 6 - E - S, + F[3 + m] = 0 - 1.2 * B - S, + F[4 + m] = b + D / 6 - E + 2 * M + S, + F[5 + m] = D - B + S, + F[6 + m] = b + D / 6 - E + 2 * M + S, + F[7 + m] = 0 - 1.2 * B - S, + k[0 + m] = 10, + k[2 + m] = 10, + k[4 + m] = 10, + k[6 + m] = 10, + Q += 1, + y = b = 0; + y < w; + ++y, ++Q + ) { + (g = C.getTextMetrics(v[y])), + (F[0 + (m = 2 * Q * 4)] = b - E), + (F[1 + m] = g.h - B), + (F[2 + m] = b - E), + (F[3 + m] = 0 - B), + (F[4 + m] = b + g.w - E), + (F[5 + m] = g.h - B), + (F[6 + m] = b + g.w - E), + (F[7 + m] = 0 - B); + var T = C.params.width, + R = C.params.height; + (k[0 + m] = g.x / T), + (k[1 + m] = g.y / R), + (k[2 + m] = g.x / T), + (k[3 + m] = (g.y + g.h) / R), + (k[4 + m] = (g.x + g.w) / T), + (k[5 + m] = g.y / R), + (k[6 + m] = (g.x + g.w) / T), + (k[7 + m] = (g.y + g.h) / R), + (b += g.w - 2 * M); + } + } + return ( + (e = (function (t) { + for ( + var e = new Uint32Array(2 * t.quadCount * 3), n = 0, r = 0; + r < t.quadCount; + r++ + ) + (e[n++] = 4 * r), + (e[n++] = 4 * r + 1), + (e[n++] = 4 * r + 2), + (e[n++] = 4 * r + 1), + (e[n++] = 4 * r + 3), + (e[n++] = 4 * r + 2); + return e; + })(t)), + (r = new _l.THREE.BufferGeometry()).addAttribute( + 'position', + new _l.THREE.BufferAttribute(t.vertices, 3), + ), + r.addAttribute('index', new _l.THREE.BufferAttribute(e, 1)), + r.addAttribute( + 'color', + new _l.THREE.BufferAttribute(new Float32Array(4 * t.quadCount * 3), 3), + ), + r.addAttribute('mapping', new _l.THREE.BufferAttribute(t.mapping, 2)), + r.addAttribute( + 'inputTexCoord', + new _l.THREE.BufferAttribute(t.texCoords, 2), + ), + r.addAttribute('inputSize', new _l.THREE.BufferAttribute(t.size, 1)), + { geometry: r, texture: t.textAtlas.texture, options: t.options } + ); + }), + (n = (n = F = F || {}).Visualization || (n.Visualization = {})), + ((t = + (t = n.Labels || (n.Labels = {})).Material || (t.Material = {})).VERTEX_SHADER = + '\nuniform float xOffset;\nuniform float yOffset;\nuniform float zOffset;\nuniform float sizeFactor;\n\nvarying vec2 texCoord;\n\nattribute vec2 mapping;\nattribute vec2 inputTexCoord;\nattribute float inputSize;\n\n' + + n.THREE.ShaderChunk.color_pars_vertex + + '\n' + + n.THREE.ShaderChunk.common + + '\n\nfloat matrixScale( in mat4 m ){\n vec4 r = m[ 0 ];\n return sqrt( r[ 0 ] * r[ 0 ] + r[ 1 ] * r[ 1 ] + r[ 2 ] * r[ 2 ] );\n}\n\nvoid main(void){\n\n ' + + n.THREE.ShaderChunk.color_vertex + + '\n\n texCoord = inputTexCoord;\n\n float scale = matrixScale( modelViewMatrix );\n\n float _zOffset = zOffset * scale;\n if( texCoord.x == 10.0 ){\n _zOffset -= 0.001;\n }\n\n vec3 pos = position;\n vec4 cameraPos = modelViewMatrix * vec4( pos, 1.0 );\n vec4 cameraCornerPos = vec4( cameraPos.xyz, 1.0 );\n cameraCornerPos.xy += mapping * inputSize * sizeFactor * 0.01 * scale;\n cameraCornerPos.x += xOffset * scale;\n cameraCornerPos.y += yOffset * scale;\n cameraCornerPos.xyz += normalize( -cameraCornerPos.xyz ) * _zOffset;\n\n gl_Position = projectionMatrix * cameraCornerPos;\n //gl_Position.xyz = position.xyz;\n}\n'), + (t.FRAGMENT_SHADER = + '\n#extension GL_OES_standard_derivatives : enable\n\nuniform sampler2D fontTexture;\nuniform vec3 outlineColor;\nuniform float outlineWidth;\nuniform vec3 backgroundColor;\nuniform float backgroundOpacity;\n\nvarying vec2 texCoord;\n\n' + + n.THREE.ShaderChunk.common + + '\n' + + n.THREE.ShaderChunk.color_pars_fragment + + '\n' + + n.THREE.ShaderChunk.fog_pars_fragment + + '\n\nconst float smoothness = 16.0;\nconst float gamma = 2.2;\n\nvoid main(){\n vec4 finalColor;\n\n if( texCoord.x > 1.0 ){\n if (backgroundOpacity < 0.05) discard;\n finalColor = vec4( backgroundColor, backgroundOpacity );\n }else{\n // retrieve signed distance\n float sdf = texture2D( fontTexture, texCoord ).a + outlineWidth;\n\n // perform adaptive anti-aliasing of the edges\n float w = clamp(\n smoothness * ( abs( dFdx( texCoord.x ) ) + abs( dFdy( texCoord.y ) ) ),\n 0.0,\n 0.5\n );\n float a = smoothstep( 0.5 - w, 0.5 + w, sdf );\n\n // gamma correction for linear attenuation\n a = pow( a, 1.0 / gamma );\n if( a < 0.2 ) discard;\n //a *= opacity;\n\n vec3 outgoingLight = vColor;\n if( outlineWidth > 0.0 && sdf < ( 0.5 + outlineWidth ) ){\n outgoingLight = outlineColor;\n }\n\n finalColor = vec4( outgoingLight, a ); \n }\n\n //gl_FragColor = finalColor;\n vec3 outgoingLight = finalColor.rgb;\n\n ' + + n.THREE.ShaderChunk.fog_fragment + + '\n \n #ifdef USE_FOG\n float alpha = (1.0 - fogFactor) * finalColor.a;\n if (alpha < 0.05) discard;\n gl_FragColor = vec4( outgoingLight.rgb, alpha );\n #else\n gl_FragColor = finalColor;\n #endif\n}\n'), + (e = F = F || {}), + (e = (Rl = e.Visualization || (e.Visualization = {})).Labels || (Rl.Labels = {})), + ((Ul = e.Material || (e.Material = {})).create = function (t) { + var e = Rl.THREE.UniformsUtils.merge([ + Rl.THREE.UniformsLib.common, + Rl.THREE.UniformsLib.fog, + { + fontTexture: { type: 't', value: t }, + xOffset: { type: 'f', value: 0 }, + yOffset: { type: 'f', value: 0 }, + zOffset: { type: 'f', value: 0 }, + sizeFactor: { type: 'f', value: 1 }, + outlineWidth: { type: 'f', value: 0 }, + outlineColor: { type: 'v3', value: new Rl.THREE.Vector3(0, 0, 0) }, + backgroundColor: { type: 'v3', value: new Rl.THREE.Vector3(0, 0, 0) }, + backgroundOpacity: { type: 'f', value: 0.5 }, + }, + ]); + return ( + (e.fontTexture.value = t), + new Rl.THREE.ShaderMaterial({ + uniforms: e, + attributes: { + mapping: { type: 'v2', value: null }, + inputTexCoord: { type: 'v2', value: null }, + inputSize: { type: 'f', value: null }, + }, + lights: !1, + fog: !0, + vertexShader: Ul.VERTEX_SHADER, + fragmentShader: Ul.FRAGMENT_SHADER, + shading: Rl.THREE.NoShading, + side: Rl.THREE.DoubleSide, + vertexColors: Rl.THREE.VertexColors, + blending: Rl.THREE.NormalBlending, + transparent: !1, + wireframe: !1, + linewidth: 1, + }) + ); + }), + (function (s) { + var t, + l = s.Labels || (s.Labels = {}); + function u() { + return (null !== t && t.apply(this, arguments)) || this; + } + (l.DefaultLabelsOptions = { + fontFamily: 'sans-serif', + fontSize: 32, + fontStyle: 'normal', + fontWeight: 'normal', + useSDF: !0, + attachment: 'middle-center', + backgroundMargin: 1, + }), + (t = s.Model), + M(u, t), + (u.prototype.applySelectionInternal = function (t, e) { + return !1; + }), + (u.prototype.getPickElements = function (t) { + return []; + }), + (u.prototype.highlightElement = function (t, e) { + return !1; + }), + (u.prototype.highlightInternal = function (t) { + return !1; + }), + (u.prototype.applyColoring = function (t) { + for ( + var e = this.geometry.attributes.color.array, + n = 0, + r = { r: 0.1, g: 0.1, b: 0.1 }, + i = 0, + o = 0, + a = this.labels; + o < a.length; + o++ + ) { + var s = 4 * a[o].length + 4; + t.setElementColor(i, r); + for (var l = 0; l < s; l++) + (e[n++] = r.r), (e[n++] = r.g), (e[n++] = r.b); + i++; + } + this.geometry.attributes.color.needsUpdate = !0; + }), + (u.prototype.applyThemeInternal = function (t) { + this.applyColoring(t); + var e = t.colors.get('Background') || s.Color.fromHexString('#333333'), + n = + void 0 !== t.variables.get('backgroundOpacity') + ? t.variables.get('backgroundOpacity') + : 0.5, + r = t.colors.get('Outline') || s.Color.fromHexString('#222222'), + i = t.variables.get('outlineWidth') + ? +t.variables.get('outlineWidth') + : 0, + o = t.variables.get('sizeFactor') ? +t.variables.get('sizeFactor') : 1, + a = this.material.uniforms; + (a.xOffset.value = t.variables.get('xOffset') || 0), + (a.yOffset.value = t.variables.get('yOffset') || 0), + (a.zOffset.value = t.variables.get('zOffset') || 0), + (a.backgroundColor.value = new s.THREE.Vector3(e.r, e.g, e.b)), + (a.backgroundOpacity.value = n), + (a.outlineColor.value = new s.THREE.Vector3(r.r, r.g, r.b)), + (a.outlineWidth.value = i), + (a.sizeFactor.value = o), + (this.material.transparent = n < 1), + (this.material.fog = !t.disableFog), + (this.material.needsUpdate = !0); + }), + (u.create = function (o, a) { + var t = this; + return Nl.Core.computation(function (i) { + return D(t, void 0, void 0, function () { + var e, n, r; + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, i.updateProgress('Creating labels geometry...')]; + case 1: + return ( + t.sent(), + (n = l.Geometry.create(a)), + (e = n.geometry), + (n = n.texture), + [4, i.updateProgress('Creating labels model...')] + ); + case 2: + return ( + t.sent(), + ((r = new u()).labels = a.labels), + (r.geometry = e), + (r.material = l.Material.create(n)), + (r.entity = o), + (r.object = new s.THREE.Mesh(e, r.material)), + (r.object.renderOrder = 1), + e.computeBoundingSphere(), + (r.centroid = e.boundingSphere.center), + (r.radius = e.boundingSphere.radius + 4), + r.applyTheme(a.theme), + (r.disposeList = [e, r.material]), + [2, r] + ); + } + }); + }); + }); + }), + (l.Model = u); + })((Nl = F = F || {}).Visualization || (Nl.Visualization = {})), + (Pl = F = F || {}), + (function (r) { + var t, + c = r.BallsAndSticks || (r.BallsAndSticks = {}); + function A() { + return (null !== t && t.apply(this, arguments)) || this; + } + (c.DefaultBallsAndSticksModelParameters = { + tessalation: 3, + atomRadius: function () { + return 0.4; + }, + hideBonds: !1, + hideHydrogens: !1, + bondRadius: 0.15, + customMaxBondLengths: void 0, + }), + (t = Ll.Model), + M(A, t), + (A.prototype.applySelectionInternal = function (t, e) { + for ( + var n = this.ballsAndSticks.vertexStateBuffer, + r = n.array, + i = this.ballsAndSticks.atomVertexMap, + o = i.vertexRanges, + a = !1, + s = 0, + l = t; + s < l.length; + s++ + ) { + var u = l[s]; + if (i.elementMap.has(u)) { + var u = i.elementMap.get(u), + c = i.elementRanges[2 * u], + A = i.elementRanges[2 * u + 1]; + if (c !== A) + for (var h = c; h < A; h += 2) + var p = o[h], + d = o[h + 1], + a = Ll.Selection.applyActionToRange(r, p, d, e) || a; + } + } + return !!a && (n.needsUpdate = !0); + }), + (A.prototype.getPickElements = function (t) { + return [t]; + }), + (A.prototype.highlightElement = function (t, e) { + return this.applySelection([t], e ? 3 : 4); + }), + (A.prototype.highlightInternal = function (t) { + return Ll.Selection.applyActionToBuffer( + this.ballsAndSticks.vertexStateBuffer, + t ? 3 : 4, + ); + }), + (A.prototype.applyThemeInternal = function (t) { + var n = this, + e = this.ballsAndSticks.atomVertexMap, + e = + (Ll.MaterialsHelper.applyColorToMap( + e, + this.ballsAndSticks.atomsGeometry.attributes.color, + function (t, e) { + return n.theme.setElementColor(t, e); + }, + ), + Ll.Theme.getColor(t, 'Bond', r.Colors.DefaultBondColor)); + Ll.MaterialsHelper.applyColorToBuffer( + this.ballsAndSticks.bondsGeometry.attributes.color, + e, + ), + Ll.MaterialsHelper.updateMaterial(this.material, t, this.object), + Ll.MaterialsHelper.updateMaterial(this.bondsMaterial, t, this.object); + }), + (A.prototype.createObjects = function () { + var t = new Ll.THREE.Object3D(), + e = + (t.add( + new Ll.THREE.Mesh(this.ballsAndSticks.atomsGeometry, this.material), + ), + t.add( + new Ll.THREE.Mesh( + this.ballsAndSticks.bondsGeometry, + this.bondsMaterial, + ), + ), + new Ll.THREE.Mesh(this.ballsAndSticks.pickGeometry, this.pickMaterial)); + return { main: t, pick: e }; + }), + (A.create = function (i, t) { + var e = this, + o = t.model, + a = t.atomIndices, + s = t.theme, + l = t.params, + u = t.props; + return Pl.Core.computation(function (r) { + return D(e, void 0, void 0, function () { + var e, n; + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, c.buildGeometry(o, l, a, r)]; + case 1: + return ( + (n = t.sent()), + ((e = new A()).ballsAndSticks = n), + (e.material = Ll.MaterialsHelper.getMeshMaterial()), + (e.bondsMaterial = new Ll.THREE.MeshPhongMaterial({ + specular: 11184810, + shininess: 1, + shading: Ll.THREE.SmoothShading, + side: Ll.THREE.FrontSide, + vertexColors: Ll.THREE.VertexColors, + })), + (e.pickMaterial = Ll.MaterialsHelper.getPickMaterial()), + (e.entity = i), + e.ballsAndSticks.atomsGeometry.computeBoundingSphere(), + (e.centroid = + e.ballsAndSticks.atomsGeometry.boundingSphere.center), + (e.radius = + e.ballsAndSticks.atomsGeometry.boundingSphere.radius), + u && (e.props = u), + (n = e.createObjects()), + (e.object = n.main), + e.applyTheme(s), + e.disposeList.push( + e.ballsAndSticks, + e.material, + e.bondsMaterial, + e.pickMaterial, + ), + (e.pickObject = n.pick), + (e.pickBufferAttributes = [ + e.ballsAndSticks.pickGeometry.attributes.pColor, + ]), + [2, e] + ); + } + }); + }); + }); + }), + (c.Model = A); + })( + (Ll = Pl.Visualization || (Pl.Visualization = {})).Molecule || + (Ll.Molecule = {}), + ), + (Yl = F = F || {}), + (a = Yl.Visualization || (Yl.Visualization = {})), + (r = a.Molecule || (a.Molecule = {})), + (Ol = r.BallsAndSticks || (r.BallsAndSticks = {})), + (r = Yl.Core.Geometry), + (Gl = r.LinearAlgebra.Vector3), + (zl = r.LinearAlgebra.Matrix4), + (Hl = a.Geometry.Builder), + (Wl = function (t, e) { + (this.bondTemplate = t), + (this.builder = e), + (this.bondUpVector = Gl.fromValues(1, 0, 0)), + (this.dir = Gl.zero()), + (this.scale = Gl.zero()), + (this.rotation = zl.zero()), + (this.offset = Gl.zero()), + (this.a = Gl.zero()), + (this.b = Gl.zero()); + }), + (r = jl = jl || {}), + (Vl = {}), + (r.getBond = function (t) { + if (Vl[t]) return Vl[t]; + var e; + switch (t) { + case 0: + e = 2; + break; + case 1: + e = 4; + break; + case 2: + e = 6; + break; + case 3: + e = 8; + break; + case 4: + e = 10; + break; + case 5: + e = 12; + break; + default: + e = 14; + } + var n = new a.THREE.TubeGeometry( + new a.THREE.LineCurve3( + new a.THREE.Vector3(0, 0, 0), + new a.THREE.Vector3(1, 0, 0), + ), + 2, + 1, + e, + ), + n = a.GeometryHelper.toRawGeometry(n); + return (Vl[t] = n); + }), + (ql = {}), + (r.getAtom = function (t) { + if (ql[t]) return ql[t]; + var e; + switch (t) { + case 0: + e = new a.THREE.OctahedronGeometry(1, 0); + break; + case 1: + e = new a.THREE.OctahedronGeometry(1, 1); + break; + case 2: + e = new a.THREE.IcosahedronGeometry(1, 0); + break; + case 3: + e = new a.THREE.IcosahedronGeometry(1, 1); + break; + case 4: + e = new a.THREE.IcosahedronGeometry(1, 2); + break; + case 5: + e = new a.THREE.OctahedronGeometry(1, 3); + break; + default: + e = new a.THREE.IcosahedronGeometry(1, 3); + } + var n = a.GeometryHelper.toRawGeometry(e); + return (ql[t] = n); + }), + (Jl = function (t, e, n) { + (this.model = t), + (this.atomIndices = e), + (this.params = n), + (this.tessalation = this.params.tessalation), + (this.atomRadius = this.params.atomRadius), + (this.bondRadius = this.params.bondRadius), + (this.hideBonds = this.params.hideBonds), + (this.bondTemplate = jl.getBond(this.tessalation)), + (this.atomTemplate = jl.getAtom(this.tessalation)), + (this.dashTemplate = Hl.getDashTemplate()), + (this.atomCount = (function (t, e, n) { + var r = t.data.atoms.elementSymbol, + i = 0; + if (n.hideHydrogens) + for (var o = 0, a = e; o < a.length; o++) zA(r[a[o]]) || i++; + else i = e.length; + return i; + })(this.model, this.atomIndices, this.params)), + (this.atomVertexCount = this.atomTemplate.vertexCount * this.atomCount), + (this.atomBuilder = Hl.createStatic( + this.atomVertexCount, + this.atomTemplate.indexCount * this.atomCount, + )), + (this.atomColors = new Float32Array(3 * this.atomVertexCount)), + (this.atomPickColors = new Float32Array(4 * this.atomVertexCount)), + (this.atoms = this.model.data.atoms), + (this.positions = this.model.positions), + (this.cX = this.positions.x), + (this.cY = this.positions.y), + (this.cZ = this.positions.z), + (this.atomSymbols = this.atoms.elementSymbol), + (this.residueIndex = this.atoms.residueIndex), + (this.scale = Gl.zero()), + (this.translation = Gl.zero()), + (this.pickColor = { r: 0.1, g: 0.1, b: 0.1 }), + (this.pickOffset = 0), + (this.atomMapBuilder = new a.Selection.VertexMapBuilder( + this.atomIndices.length, + )), + (this.bs = void 0); + }), + (Kl = function (t) { + (this.state = t), + (this.info = (function (t, e, n) { + for ( + var e = Yl.Core.Structure.computeBonds(t, e, { + maxHbondLength: + n.customMaxBondLengths && n.customMaxBondLengths.has('H') + ? n.customMaxBondLengths.get('H') + : 1.15, + }), + r = t.data.atoms.elementSymbol, + i = n.hideHydrogens, + o = 0, + a = 0, + s = e.type, + l = e.count, + u = e.atomAIndex, + c = e.atomBIndex, + A = (n = t.positions).x, + h = n.y, + p = n.z, + d = 0; + d < l; + d++ + ) { + var f, + g = s[d], + m = u[d], + v = c[d]; + (i && (zA(r[m]) || zA(r[v]))) || + (0 === g || 5 === g + ? (o += 1) + : 1 <= g && g <= 4 + ? (o += g) + : (6 !== g && 7 !== g && 8 !== g) || + ((g = A[m] - A[v]), + (f = h[m] - h[v]), + (m = p[m] - p[v]), + (v = Math.sqrt(g * g + f * f + m * m)), + (a += Math.ceil((1 / 0.3) * v)))); + } + return { bonds: e, covalentStickCount: o, dashPartCount: a }; + })(this.state.model, this.state.atomIndices, this.state.params)), + (this.bondVertexCount = + this.state.bondTemplate.vertexCount * this.info.covalentStickCount + + this.state.dashTemplate.vertexCount * this.info.dashPartCount), + (this.bondBuilder = Hl.createStatic( + this.bondVertexCount, + this.state.bondTemplate.indexCount * this.info.covalentStickCount + + this.state.dashTemplate.indexCount * this.info.dashPartCount, + )), + (this.bondColors = new Float32Array(3 * this.bondVertexCount)), + (this.bondRadius = this.state.params.bondRadius), + (this.bondState = new Wl(this.state.bondTemplate, this.bondBuilder)), + (this.bondCount = this.info.bonds.count); + }), + (g.prototype.dispose = function () { + this.atomsGeometry.dispose(), + this.bondsGeometry.dispose(), + this.pickGeometry.dispose(); + }), + (g.addAtom = function (t, e) { + e.atomMapBuilder.startElement(t); + var n = e.atomRadius(t), + n = + (Gl.set(e.scale, n, n, n), + Gl.set(e.translation, e.cX[t], e.cY[t], e.cZ[t]), + e.atomBuilder.vertices.elementCount); + Hl.addRawTransformed( + e.atomBuilder, + e.atomTemplate, + e.scale, + e.translation, + void 0, + ), + a.Selection.Picking.assignPickColor(t, e.pickColor); + for (var r = 0, i = e.atomTemplate.vertexCount; r < i; r++) + (e.atomPickColors[e.pickOffset++] = e.pickColor.r), + (e.atomPickColors[e.pickOffset++] = e.pickColor.g), + (e.atomPickColors[e.pickOffset++] = e.pickColor.b), + e.pickOffset++; + e.atomMapBuilder.addVertexRange(n, e.atomBuilder.vertices.elementCount), + e.atomMapBuilder.endElement(); + }), + (g.addBond = function (t, e, n) { + var r = n.info.bonds.atomAIndex[t], + i = n.info.bonds.atomBIndex[t], + t = n.info.bonds.type[t]; + if (e.params.hideHydrogens) { + var o = e.model.data.atoms.elementSymbol; + if (zA(o[r]) || zA(o[i])) return; + } + Gl.set(n.bondState.a, e.cX[r], e.cY[r], e.cZ[r]), + Gl.set(n.bondState.b, e.cX[i], e.cY[i], e.cZ[i]); + var a = +n.bondRadius, + s = (2 * a) / 3, + l = a / 2, + u = n.bondState; + switch (t) { + case 0: + case 1: + case 5: + g.addBondPart(a, 0, 0, u); + break; + case 2: + g.addBondPart(l, s, s, u), g.addBondPart(l, -s, -s, u); + break; + case 3: + g.addBondPart(l, 0, s, u); + var c = Math.cos(Math.PI / 6) * s, + A = Math.sin(Math.PI / 6) * s; + g.addBondPart(l, -c, -A, u), g.addBondPart(l, c, -A, u); + break; + case 4: + g.addBondPart(l / 2, s, s, u), + g.addBondPart(l / 2, -s, -s, u), + g.addBondPart(l / 2, -s, s, u), + g.addBondPart(l / 2, s, -s, u); + break; + case 6: + case 7: + case 8: + g.addDashedBond(l, u); + } + }), + (g.addBondPart = function (t, e, n, r) { + var i = Gl.sub(r.dir, r.b, r.a), + o = Gl.magnitude(r.dir); + Gl.set(r.scale, o, t, t), + Gl.makeRotation(r.rotation, r.bondUpVector, i), + (r.offset[0] = 0), + (r.offset[1] = e), + (r.offset[2] = n), + Gl.transformMat4(r.offset, r.offset, r.rotation), + Gl.add(r.offset, r.offset, r.a), + Hl.addRawTransformed( + r.builder, + r.bondTemplate, + r.scale, + r.offset, + r.rotation, + ); + }), + (g.addDashedBond = function (t, e) { + Hl.addDashedLine(e.builder, e.a, e.b, 0.15, 0.15, t); + }), + (g.getEmptyBondsGeometry = function () { + var t = new a.THREE.BufferGeometry(); + return ( + t.addAttribute( + 'position', + new a.THREE.BufferAttribute(new Float32Array(0), 3), + ), + t.addAttribute('normal', new a.THREE.BufferAttribute(new Float32Array(0), 3)), + t.addAttribute('index', new a.THREE.BufferAttribute(new Uint32Array(0), 1)), + t.addAttribute('color', new a.THREE.BufferAttribute(new Float32Array(0), 3)), + t + ); + }), + (g.getBondsGeometry = function (t) { + var e = Hl.toBufferGeometry(t.bondBuilder); + return a.Geometry.addAttribute(e, 'color', t.bondColors, 3), e; + }), + (g.getAtomsGeometry = function (t) { + var e = Hl.toBufferGeometry(t.atomBuilder), + n = + (a.Geometry.addAttribute(e, 'color', t.atomColors, 3), + new Float32Array(t.atomVertexCount)), + n = new a.THREE.BufferAttribute(n, 1), + r = (e.addAttribute('vState', n), new a.THREE.BufferGeometry()); + return ( + r.addAttribute('position', e.getAttribute('position')), + r.addAttribute('index', e.getAttribute('index')), + r.addAttribute('pColor', new a.THREE.BufferAttribute(t.atomPickColors, 4)), + { + vertexStateBuffer: n, + atomsGeometry: e, + atomsPickGeometry: r, + atomVertexMap: t.atomMapBuilder.getMap(), + } + ); + }), + (g.addAtoms = function (A, h) { + return D(this, void 0, void 0, function () { + var e, n, r, i, o, a, s, l, u, c; + return P(this, function (t) { + switch (t.label) { + case 0: + (e = 2500), + (n = Yl.Core.Utils.PerformanceMonitor.currentTime()), + (r = A.model.data.atoms.elementSymbol), + (i = A.params.hideHydrogens), + (o = 0), + (a = A.atomIndices.length), + (t.label = 1); + case 1: + if (!(o < a)) return [3, 4]; + for (s = o, l = Math.min(o + e, A.atomIndices.length); s < l; s++) + (u = A.atomIndices[s]), (i && zA(r[u])) || g.addAtom(u, A); + return (c = Yl.Core.Utils.PerformanceMonitor.currentTime()) - n > + Yl.Core.Computation.UpdateProgressDelta + ? ((n = c), [4, h.updateProgress('Adding atoms...', !0, o, a)]) + : [3, 3]; + case 2: + t.sent(), (t.label = 3); + case 3: + return (o += e), [3, 1]; + case 4: + return [2]; + } + }); + }); + }), + (g.addBondsChunks = function (s, l, u) { + return D(this, void 0, void 0, function () { + var e, n, r, i, o, a; + return P(this, function (t) { + switch (t.label) { + case 0: + (e = 2500), + (n = Yl.Core.Utils.PerformanceMonitor.currentTime()), + (r = 0), + (t.label = 1); + case 1: + if (!(r < l.bondCount)) return [3, 4]; + for (i = r, o = Math.min(r + e, l.bondCount); i < o; i++) + g.addBond(i, s, l); + return (a = Yl.Core.Utils.PerformanceMonitor.currentTime()) - n > + Yl.Core.Computation.UpdateProgressDelta + ? ((n = a), + [4, u.updateProgress('Adding bonds...', !0, r, l.bondCount)]) + : [3, 3]; + case 2: + t.sent(), (t.label = 3); + case 3: + return (r += e), [3, 1]; + case 4: + return [2]; + } + }); + }); + }), + (g.addBonds = function (n, r) { + return D(this, void 0, void 0, function () { + var e; + return P(this, function (t) { + switch (t.label) { + case 0: + return n.params.hideBonds + ? [2] + : [4, r.updateProgress('Computing bonds...', !0)]; + case 1: + return ( + t.sent(), (e = new Kl(n)), (n.bs = e), [4, g.addBondsChunks(n, e, r)] + ); + case 2: + return t.sent(), [2]; + } + }); + }); + }), + (g.build = function (i, o, a, s) { + return D(this, void 0, void 0, function () { + var e, n, r; + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, s.updateProgress('Creating atoms...')]; + case 1: + return ( + t.sent(), + (e = new Jl( + i, + a, + Yl.Core.Utils.extend( + {}, + o, + Ol.DefaultBallsAndSticksModelParameters, + ), + )), + [4, g.addAtoms(e, s)] + ); + case 2: + return t.sent(), [4, g.addBonds(e, s)]; + case 3: + return t.sent(), [4, s.updateProgress('Finalizing...')]; + case 4: + return ( + t.sent(), + (n = new $l()), + e.bs + ? (n.bondsGeometry = g.getBondsGeometry(e.bs)) + : (n.bondsGeometry = g.getEmptyBondsGeometry()), + (r = g.getAtomsGeometry(e)), + (n.vertexStateBuffer = r.vertexStateBuffer), + (n.atomsGeometry = r.atomsGeometry), + (n.pickGeometry = r.atomsPickGeometry), + (n.atomVertexMap = r.atomVertexMap), + [2, n] + ); + } + }); + }); + }), + (Zl = g), + (Ol.buildGeometry = function (t, e, n, r) { + return Zl.build(t, e, n, r); + }), + (Xl = a.GeometryBase), + M(HA, Xl), + (HA.prototype.dispose = function () { + this.atomsGeometry.dispose(), + this.bondsGeometry.dispose(), + this.pickGeometry.dispose(); + }), + ($l = HA), + (Ol.BallsAndSticksGeometry = $l), + (tu = F = F || {}), + (t = tu.Visualization || (tu.Visualization = {})), + (n = (n = t.Molecule || (t.Molecule = {})).Cartoons || (n.Cartoons = {})), + (eu = n.Geometry || (n.Geometry = {})), + (nu = t.GeometryBase), + M(jA, nu), + (jA.prototype.dispose = function () { + this.geometry.dispose(), + this.pickGeometry.dispose(), + this.gapsGeometry && this.gapsGeometry.dispose(), + this.directionConesGeometry && this.directionConesGeometry.dispose(); + }), + (ru = jA), + (eu.Data = ru), + (eu.create = function (a, s, l, u, c, A) { + return D(this, void 0, void 0, function () { + var e, n, r, i, o; + return P(this, function (t) { + switch (t.label) { + case 0: + return ( + (n = tu.Core.Utils.extend({}, u, eu.CartoonsGeometryParams.Default)), + [ + 4, + (e = { + computation: A, + model: a, + atomIndices: s, + linearSegments: l, + parameters: u, + isTrace: c, + params: n, + state: new eu.CartoonsGeometryState(n, a.data.residues.count), + units: void 0, + strandArrays: { + startIndex: a.data.residues.atomStartIndex, + endIndex: a.data.residues.atomEndIndex, + x: a.positions.x, + y: a.positions.y, + z: a.positions.z, + name: a.data.atoms.name, + }, + strandTemplate: void 0, + builder: new eu.Builder(), + geom: new ru(), + }).computation.updateProgress('Building units...'), + ] + ); + case 1: + return ( + t.sent(), + (e.units = eu.CartoonAsymUnit.buildUnits( + e.model, + e.atomIndices, + e.linearSegments, + )), + [4, eu.buildUnitsAsync(e)] + ); + case 2: + return ( + t.sent(), + e.strandTemplate && e.strandTemplate.geometry.dispose(), + (e.geom.vertexMap = e.state.vertexMap.getMap()), + [4, e.computation.updateProgress('Creating geometry...')] + ); + case 3: + for ( + t.sent(), eu.createGeometry(e), n = e.geom, r = 0, i = Object.keys(e); + r < i.length; + r++ + ) + (o = i[r]), + Object.prototype.hasOwnProperty.call(e, o) && (e[o] = void 0); + return [2, n]; + } + }); + }); + }), + (iu = F = F || {}), + (B = iu.Visualization || (iu.Visualization = {})), + (function (t) { + var b, + S, + k, + F, + Q, + f, + g, + h = iu.Core.Utils.ArrayBuilder; + (y.prototype.createControlPoints = function (t) { + this.initPositions(t), + this.initControlsPoints(t), + this.computeSplines(t), + (this.controlPoints = this.controlPointsBuilder.array), + (this.torsionVectors = this.torsionVectorsBuilder.array), + (this.normalVectors = this.normalVectorsBuilder.array), + (this.controlPointsBuilder = null), + (this.torsionVectorsBuilder = null), + (this.normalVectorsBuilder = null); + }), + (y.prototype.initPositions = function (t) { + for ( + var e = this.model.data.residues, + n = this.model.data.atoms, + r = this.model.positions, + i = { + atomStartIndex: e.atomStartIndex, + atomEndIndex: e.atomEndIndex, + name: n.name, + x: r.x, + y: r.y, + z: r.z, + }, + o = [], + a = 0, + s = 0, + l = 0, + u = 0, + c = 0, + A = this.elements; + c < A.length; + c++ + ) { + var h = A[c]; + for ( + this.structureStarts.add(h.startResidueIndex), + this.structureEnds.add(h.endResidueIndex - 1), + s = h.startResidueIndex; + s < h.endResidueIndex; + s++ + ) + u++, + !t.addResidue(s, i, h.type) || + (1 !== h.type && 3 !== h.type && 5 !== h.type) || + l++, + (o[o.length] = h.type); + } + (this.backboneOnly = u / 4 - 1 < l), + (this.residueIndex = new Int32Array(this.residueCount)); + for (var p = 0, d = this.elements; p < d.length; p++) + for (s = (h = d[p]).startResidueIndex; s < h.endResidueIndex; s++) + this.residueIndex[a++] = s; + (this.residueType = o), t.finishResidues(); + var f = this.residueCount; + if ( + ((t.residueType[0] = t.residueType[2]), + (t.residueType[1] = t.residueType[3]), + (t.residueType[t.residueType.length - 2] = + t.residueType[t.residueType.length - 4]), + (t.residueType[t.residueType.length - 1] = + t.residueType[t.residueType.length - 3]), + 2 < f) + ) { + (e = 2), (n = 3), (r = 4); + 5 !== t.residueType[0] + ? (this.reflectPositions(t.uPositions, 0, 1, e, n, n, r, 0.4, 0.6), + this.reflectPositions(t.vPositions, 0, 1, e, n, n, r, 0.4, 0.6)) + : (this.reflectPositions(t.uPositions, 1, 0, e, n, n, r, 0.5, 0.5), + this.reflectPositions(t.vPositions, 1, 0, e, n, n, r, 0.5, 0.5)), + (e = f + 1), + 5 !== t.residueType[(r = (n = f) - 1)] + ? (this.reflectPositions( + t.uPositions, + f + 2, + f + 3, + e, + n, + n, + r, + 0.4, + 0.6, + ), + this.reflectPositions( + t.vPositions, + f + 2, + f + 3, + e, + n, + n, + r, + 0.4, + 0.6, + )) + : (this.reflectPositions( + t.uPositions, + f + 2, + f + 3, + e, + n, + n, + r, + 0.5, + 0.5, + ), + this.reflectPositions( + t.vPositions, + f + 2, + f + 3, + e, + n, + n, + r, + 0.5, + 0.5, + )); + } else if (2 === f) + for (s = 0; s < 2; s++) + (t.uPositions[3 * s] = t.uPositions[6]), + (t.uPositions[3 * s + 1] = t.uPositions[7]), + (t.uPositions[3 * s + 2] = t.uPositions[8]), + (t.vPositions[3 * s] = t.vPositions[6]), + (t.vPositions[3 * s + 1] = t.vPositions[7]), + (t.vPositions[3 * s + 2] = t.vPositions[8]), + (t.uPositions[3 * (f + 2) + 3 * s] = t.uPositions[3 * (f + 1)]), + (t.uPositions[3 * (f + 2) + 3 * s + 1] = + t.uPositions[3 * (f + 1) + 1]), + (t.uPositions[3 * (f + 2) + 3 * s + 2] = + t.uPositions[3 * (f + 1) + 2]), + (t.vPositions[3 * (f + 2) + 3 * s] = t.vPositions[3 * (f + 1)]), + (t.vPositions[3 * (f + 2) + 3 * s + 1] = + t.vPositions[3 * (f + 1) + 1]), + (t.vPositions[3 * (f + 2) + 3 * s + 2] = + t.vPositions[3 * (f + 1) + 2]); + else + for ( + var g = [ + t.uPositions[6] - t.vPositions[6], + t.uPositions[7] - t.vPositions[7], + t.uPositions[8] - t.vPositions[8], + ], + m = 0; + m < 2; + m++ + ) + for (var v = 0; v < 3; v++) + (t.uPositions[3 * m + v] = + t.uPositions[6 + v] - 0.5 * (m + 1) * g[v]), + (t.uPositions[9 + 3 * m + v] = + t.uPositions[6 + v] + 0.5 * (m + 1) * g[v]), + (t.vPositions[3 * m + v] = + t.vPositions[6 + v] + 0.5 * (m + 1) * g[v]), + (t.vPositions[9 + 3 * m + v] = + t.vPositions[6 + v] - 0.5 * (m + 1) * g[v]); + }), + (y.prototype.initControlsPoints = function (t) { + for ( + var e = new B.THREE.Vector3(), + n = t.uvLength - 1, + r = new B.THREE.Vector3(), + i = new B.THREE.Vector3(), + o = new B.THREE.Vector3(), + a = new B.THREE.Vector3(), + s = new B.THREE.Vector3(), + l = new B.THREE.Vector3(), + u = new B.THREE.Vector3(), + c = new B.THREE.Vector3(), + A = 0; + A < n; + A++ + ) + s.set( + t.uPositions[3 * A], + t.uPositions[3 * A + 1], + t.uPositions[3 * A + 2], + ), + l.set( + t.vPositions[3 * A], + t.vPositions[3 * A + 1], + t.vPositions[3 * A + 2], + ), + u.set( + t.uPositions[3 * ++A], + t.uPositions[3 * A + 1], + t.uPositions[3 * A + 2], + ), + A--, + c.set((s.x + u.x) / 2, (s.y + u.y) / 2, (s.z + u.z) / 2), + r.subVectors(u, s), + i.subVectors(l, s), + o.crossVectors(r, i), + a.crossVectors(o, r), + o.normalize(), + a.normalize(), + 1 === t.residueType[A] && + 1 === t.residueType[A + 1] && + c.set(c.x + 1.5 * o.x, c.y + 1.5 * o.y, c.z + 1.5 * o.z), + 0 < A && a.angleTo(e) > Math.PI / 2 && a.negate(), + e.copy(a), + r.addVectors(c, a), + t.addControlPoint(c, r); + t.finishContols(); + }), + (y.prototype.computeSplines = function (t) { + for ( + var e = new B.THREE.Vector3(), + n = new B.THREE.Vector3(), + r = new B.THREE.Vector3(), + i = t.residueCount, + o = t.pPositions, + a = t.dPositions, + s = new B.THREE.Vector3(), + l = new B.THREE.Vector3(), + u = new B.THREE.Vector3(), + c = new B.THREE.Vector3(), + A = new B.THREE.Vector3(), + h = new B.THREE.Vector3(), + p = new B.THREE.Vector3(), + d = new B.THREE.Vector3(), + f = new B.THREE.Vector3(), + g = new B.THREE.Vector3(), + m = 0; + m < i; + m++ + ) { + s.set(o[3 * m], o[3 * m + 1], o[3 * m + 2]), + m++, + l.set(o[3 * m], o[3 * m + 1], o[3 * m + 2]), + m++, + u.set(o[3 * m], o[3 * m + 1], o[3 * m + 2]), + m++, + c.set(o[3 * m], o[3 * m + 1], o[3 * m + 2]), + (m -= 3), + A.set(a[3 * m], a[3 * m + 1], a[3 * m + 2]), + m++, + h.set(a[3 * m], a[3 * m + 1], a[3 * m + 2]), + m++, + p.set(a[3 * m], a[3 * m + 1], a[3 * m + 2]), + m++, + d.set(a[3 * m], a[3 * m + 1], a[3 * m + 2]), + (m -= 3); + for (var v = 1; v <= this.linearSegmentCount; v++) { + var b = +v / this.linearSegmentCount; + b < 0.5 + ? (y.spline(n, s, l, u, 0.5 + b), y.spline(r, A, h, p, 0.5 + b)) + : (y.spline(n, l, u, c, b - 0.5), y.spline(r, h, p, d, b - 0.5)), + 0 === m && + 1 === v && + (y.spline(e, s, l, u, 0.5), + y.spline(f, A, h, p, 0.5), + y.reflect(g, e, n, 1), + this.addSplineNode(g, e, f)), + this.addSplineNode(e, n, r), + e.copy(n); + } + } + }), + (y.prototype.addSplineNode = function (t, e, n) { + h.add3(this.controlPointsBuilder, e.x, e.y, e.z); + (n = this.tempA.subVectors(n, e)), + n.normalize(), + h.add3(this.torsionVectorsBuilder, n.x, n.y, n.z), + (e = this.tempB.subVectors(e, t)), + (t = this.tempC.crossVectors(n, e)); + t.normalize(), h.add3(this.normalVectorsBuilder, t.x, t.y, t.z); + }), + (y.prototype.reflectPositions = function (t, e, n, r, i, o, a, s, l) { + this.tempA.set(t[3 * r], t[3 * r + 1], t[3 * r + 2]), + this.tempB.set(t[3 * i], t[3 * i + 1], t[3 * i + 2]), + y.reflect(this.tempC, this.tempA, this.tempB, s), + (t[3 * e] = this.tempC.x), + (t[3 * e + 1] = this.tempC.y), + (t[3 * e + 2] = this.tempC.z), + this.tempA.set(t[3 * o], t[3 * o + 1], t[3 * o + 2]), + this.tempB.set(t[3 * a], t[3 * a + 1], t[3 * a + 2]), + y.reflect(this.tempC, this.tempA, this.tempB, l), + (t[3 * n] = this.tempC.x), + (t[3 * n + 1] = this.tempC.y), + (t[3 * n + 2] = this.tempC.z); + }); + function y(t, e, n) { + (this.model = t), + (this.elements = e), + (this.linearSegmentCount = n), + (this.tempA = new B.THREE.Vector3()), + (this.tempB = new B.THREE.Vector3()), + (this.tempC = new B.THREE.Vector3()), + (this.controlPoints = new Float32Array(0)), + (this.torsionVectors = new Float32Array(0)), + (this.normalVectors = new Float32Array(0)), + (this.residueCount = 0), + (this.structureStarts = iu.Core.Utils.FastSet.create()), + (this.structureEnds = iu.Core.Utils.FastSet.create()), + (this.residueType = []), + (this.residueIndex = new Int32Array(0)), + (this.backboneOnly = !1), + (this.startResidueIndex = -1), + (this.endResidueIndex = -1); + for (var r = 0, i = this.elements; r < i.length; r++) { + var o = i[r]; + this.residueCount += o.endResidueIndex - o.startResidueIndex; + } + (this.startResidueIndex = this.elements[0].startResidueIndex), + (this.endResidueIndex = + this.elements[this.elements.length - 1].endResidueIndex - 1); + t = new a(this.residueCount); + (this.controlPointsBuilder = h.forVertex3D( + this.residueCount * this.linearSegmentCount + 1, + )), + (this.torsionVectorsBuilder = h.forVertex3D( + this.residueCount * this.linearSegmentCount + 1, + )), + (this.normalVectorsBuilder = h.forVertex3D( + this.residueCount * this.linearSegmentCount + 1, + )), + this.createControlPoints(t); + } + function w(t, e) { + for ( + var n = new Uint8Array(t.data.residues.count), + r = t.data.atoms, + i = r.residueIndex, + o = r.name, + a = t.data.residues.secondaryStructureIndex, + s = t.data.secondaryStructure, + l = 0, + u = e.length - 1; + l < u; + l++ + ) { + var c = l, + A = i[e[l]]; + for (l++; A === i[e[l]]; ) l++; + var h = s[a[A]].type; + 0 !== h && + ((n[A] = + 5 === h + ? +b.isCartoonLike(e, c, l, o, "O5'", "C3'", !1) + : +b.isCartoonLike(e, c, l, o, 'CA', 'O', !0)), + l--); + } + return n; + } + function E(t, e) { + if (4 !== e.type) return [e]; + for ( + var n = [], + r = t.data.atoms.name, + i = t.data.residues, + o = i.atomStartIndex, + a = i.atomEndIndex, + s = new Int32Array(e.endResidueIndex - e.startResidueIndex), + l = 0, + u = !0, + c = e.startResidueIndex, + A = e.endResidueIndex; + c < A; + c++ + ) { + for ( + var h = !1, p = !1, d = o[c], f = a[c]; + d < f && + ('CA' === r[d] ? (h || (s[l++] = d), (h = !0)) : 'O' === r[d] && (p = !0), + !p || !h); + d++ + ); + if (!h || !p) { + u = !1; + break; + } + } + if (!u) return [e]; + for ( + var g = t, + m = s, + v = e, + b = n, + y = new Int32Array(m.length), + w = !1, + E = g.data.atoms.residueIndex, + B = 0, + C = m.length; + B < C; + B++ + ) + _(g, m, B, S, k) + ? ((y[B] = 1), (w = !0)) + : _(g, m, B, F, Q) + ? ((y[B] = 3), (w = !0)) + : (y[B] = v.type); + if (w) { + for (B = 0, C = y.length; B < C; B++) { + var x = y[B]; + if (x !== v.type) { + for (var I = B + 1; I < C && x === y[I]; ) I++; + if (1 < I - B) B = I - 1; + else { + for (var M = B; M < I; M++) y[M] = v.type; + B = I - 1; + } + } + } + for (B = 0, C = y.length; B < C; B++) { + for (x = y[B], I = B + 1; I < C && x === y[I]; ) I++; + var D = new iu.Core.Structure.SecondaryStructureElement( + x, + new iu.Core.Structure.PolyResidueIdentifier('', B, null), + new iu.Core.Structure.PolyResidueIdentifier('', I, null), + ); + (D.startResidueIndex = E[m[B]]), + (D.endResidueIndex = E[m[I - 1]] + 1), + b.push(D), + (B = I - 1); + } + } else b.push(v); + return n; + } + function _(t, e, n, r, i) { + for ( + var o = e.length, + t = t.positions, + a = t.x, + s = t.y, + l = t.z, + u = f, + c = g, + A = Math.max(0, n - 2); + A <= n; + A++ + ) + for (var h = 2; h < 5; h++) + if (!(o <= A + h)) { + var p = e[A], + d = e[A + h]; + if ( + (u.set(a[p], s[p], l[p]), + c.set(a[d], s[d], l[d]), + Math.abs(u.distanceTo(c) - r[h - 2]) > i) + ) + return; + } + return 1; + } + (t.CartoonAsymUnit = y), + ((b = t.CartoonAsymUnit || (t.CartoonAsymUnit = {})).reflect = function ( + t, + e, + n, + r, + ) { + t.set(e.x - r * (n.x - e.x), e.y - r * (n.y - e.y), e.z - r * (n.z - e.z)); + }), + (b.spline = function (t, e, n, r, i) { + var o = Math.pow(1 - i, 2) / 2, + i = Math.pow(i, 2) / 2, + a = 1 - o - i, + s = o * e.x + a * n.x + i * r.x, + l = o * e.y + a * n.y + i * r.y, + o = o * e.z + a * n.z + i * r.z; + t.set(s, l, o); + }), + (b.maskSplit = function (t, e, n) { + for ( + var r = new iu.Core.Structure.SecondaryStructureElement( + t.type, + t.startResidueId, + t.endResidueId, + ), + i = t.startResidueIndex, + o = t.endResidueIndex, + a = i; + a < o; + a++ + ) + if (e[a]) { + for ( + r.startResidueIndex !== a && + ((r = new iu.Core.Structure.SecondaryStructureElement( + t.type, + t.startResidueId, + t.endResidueId, + )).startResidueIndex = a); + a < o && e[a]; + + ) + a++; + (r.endResidueIndex = a), (n[n.length] = r); + } + }), + (b.isCartoonLike = function (t, e, n, r, i, o, a) { + for (var s = !1, l = !1, u = !1, c = e; c < n; c++) { + var A = r[t[c]]; + if ((s || A !== i ? l || A !== o || (l = !0) : (s = !0), s && l)) + return !0; + 'P' === A && (u = !0); + } + return a ? s : u; + }), + (b.createMask = w), + (S = [5.45, 5.18, 6.37]), + (k = 2.1), + (F = [6.1, 10.4, 13]), + (Q = 1.42), + (f = new B.THREE.Vector3(0, 0, 0)), + (g = new B.THREE.Vector3(0, 0, 0)), + (b.buildUnits = function (t, e, n) { + for ( + var r = w(t, e), + i = [], + o = (function (t) { + for ( + var e = !1, n = 0, r = t.data.secondaryStructure; + n < r.length; + n++ + ) { + var i = r[n]; + if (1 === i.type || 3 === i.type || 2 === i.type) return !1; + 4 === i.type && (e = !0); + } + return e; + })(t), + a = 0, + s = t.data.secondaryStructure; + a < s.length; + a++ + ) { + var l = s[a]; + if (o) + for (var u = 0, c = E(t, l); u < c.length; u++) { + var A = c[u]; + b.maskSplit(A, r, i); + } + else b.maskSplit(l, r, i); + } + if (0 === i.length) + throw 'Cartoons cannot be constructred from this model/selection.'; + var h = i[0], + p = t.data.residues.asymId, + d = t.data.residues.authSeqNumber, + f = [], + g = []; + 0 === h.type && (h = null); + for (var m = 0, v = i; m < v.length; m++) + 0 === (l = v[m]).type + ? (0 < f.length && g.push(new b(t, f, n)), (h = null), (f = [])) + : p[(h = null === h ? l : h).endResidueIndex - 1] !== + p[l.startResidueIndex] || + (h !== l && + 1 < d[l.startResidueIndex] - d[h.endResidueIndex - 1]) || + (h.startResidueIndex !== l.startResidueIndex && + 0 < l.startResidueIndex - h.endResidueIndex) + ? (0 < f.length + ? g.push(new b(t, f, n)) + : null !== h && g.push(new b(t, [h], n)), + (h = null), + (f = [l])) + : (f[f.length] = l), + (h = l); + return 0 < f.length && g.push(new b(t, f, n)), g; + }); + (e.prototype.addResidue = function (t, e, n) { + var r = e.atomStartIndex[t], + i = e.atomEndIndex[t], + o = !1, + a = !1, + s = e.name; + if (5 !== n) + for ( + var l = r; + l < i && + (o || 'CA' !== s[l] + ? a || + 'O' !== s[l] || + (h.add3(this.vPositionsBuilder, e.x[l], e.y[l], e.z[l]), (a = !0)) + : (h.add3(this.uPositionsBuilder, e.x[l], e.y[l], e.z[l]), (o = !0)), + !o || !a); + l++ + ); + else if (i - r == 1) + h.add3(this.uPositionsBuilder, e.x[r], e.y[r], e.z[r]), (o = !0); + else { + for ( + var u = -1, l = r; + l < i && + (o || "O5'" !== s[l] + ? a || + "C3'" !== s[l] || + (h.add3(this.vPositionsBuilder, e.x[l], e.y[l], e.z[l]), (a = !0)) + : (h.add3(this.uPositionsBuilder, e.x[l], e.y[l], e.z[l]), (o = !0)), + 'P' === s[l] && (u = l), + !o || !a); + l++ + ); + !o && + !a && + 0 <= u && + (h.add3(this.uPositionsBuilder, e.x[u], e.y[u], e.z[u]), (o = !0)); + } + var c, + A, + t = !1; + return ( + a + ? o || + ((A = (c = this.vPositionsBuilder.array).length), + h.add3(this.uPositionsBuilder, c[A - 3], c[A - 2], c[A - 1]), + (t = !0)) + : ((A = (c = this.uPositionsBuilder.array).length), + h.add3(this.vPositionsBuilder, c[A - 3], c[A - 2], c[A - 1]), + (t = !0)), + h.add(this.typeBuilder, n), + t + ); + }), + (e.prototype.finishResidues = function () { + h.add(this.typeBuilder, 0), + h.add(this.typeBuilder, 0), + h.add3(this.uPositionsBuilder, 0, 0, 0), + h.add3(this.uPositionsBuilder, 0, 0, 0), + h.add3(this.vPositionsBuilder, 0, 0, 0), + h.add3(this.vPositionsBuilder, 0, 0, 0), + (this.residueType = this.typeBuilder.array), + (this.uPositions = this.uPositionsBuilder.array), + (this.vPositions = this.vPositionsBuilder.array), + (this.typeBuilder = null), + (this.uPositionsBuilder = null), + (this.vPositionsBuilder = null), + (this.uvLength = this.residueType.length), + (this.residueCount = this.uvLength - 4); + }), + (e.prototype.addControlPoint = function (t, e) { + h.add3(this.pPositionsBuilder, t.x, t.y, t.z), + h.add3(this.dPositionsBuilder, e.x, e.y, e.z); + }), + (e.prototype.finishContols = function () { + (this.pPositions = this.pPositionsBuilder.array), + (this.dPositions = this.dPositionsBuilder.array), + (this.pPositionsBuilder = null), + (this.dPositionsBuilder = null); + }); + var a = e; + function e(t) { + (this.typeBuilder = h.forArray(1e4)), + (this.residueType = []), + (this.uPositions = new Float32Array(0)), + (this.vPositions = new Float32Array(0)), + (this.pPositions = new Float32Array(0)), + (this.dPositions = new Float32Array(0)), + (this.uvLength = 0), + (this.residueCount = 0), + (this.typeBuilder = h.forArray(t + 4)), + (this.uPositionsBuilder = h.forVertex3D(t + 4)), + (this.vPositionsBuilder = h.forVertex3D(t + 4)), + (this.pPositionsBuilder = h.forVertex3D(t + 4)), + (this.dPositionsBuilder = h.forVertex3D(t + 4)), + h.add(this.typeBuilder, 0), + h.add(this.typeBuilder, 0), + h.add3(this.uPositionsBuilder, 0, 0, 0), + h.add3(this.uPositionsBuilder, 0, 0, 0), + h.add3(this.vPositionsBuilder, 0, 0, 0), + h.add3(this.vPositionsBuilder, 0, 0, 0); + } + })( + (e = (e = B.Molecule || (B.Molecule = {})).Cartoons || (e.Cartoons = {})) + .Geometry || (e.Geometry = {}), + ), + (ou = F = F || {}), + (I = ou.Visualization || (ou.Visualization = {})), + (function (t) { + function e() { + (this.radialSegmentCount = 10), + (this.turnWidth = 0.1), + (this.strandWidth = 0.15), + (this.nucleotideStrandLineWidth = 0.15), + (this.nucleotideStrandFactor = 3), + (this.helixWidth = 1.1), + (this.helixHeight = 0.1), + (this.sheetWidth = 1.1), + (this.sheetHeight = 0.1), + (this.arrowWidth = 1.7), + (this.tessalation = 2); + } + (e.Default = new e()), (t.CartoonsGeometryParams = e); + var b = I.Geometry.Builder; + function n(t, e) { + (this.params = t), + (this.residueCount = e), + (this.residueIndex = 0), + (this.builder = b.createDynamic( + 8 * this.residueCount, + 16 * this.residueCount, + )), + (this.vs = this.builder.vertices), + (this.is = this.builder.indices), + (this.gapsBuilder = b.createDynamic(256, 512)), + (this.dCones = b.createDynamic(1, 1)), + (this.dConesInit = !1), + (this.translationMatrix = new I.THREE.Matrix4()), + (this.scaleMatrix = new I.THREE.Matrix4()), + (this.rotationMatrix = new I.THREE.Matrix4()), + (this.invMatrix = new I.THREE.Matrix4()), + (this.vertexMap = new I.Selection.VertexMapBuilder(e)); + } + function g(t) { + var e = t.params.nucleotideStrandLineWidth, + n = 0, + r = 0; + switch (t.params.tessalation) { + case 0: + (r = 2), (n = 1); + break; + case 1: + (r = 3), (n = 2); + break; + case 2: + (r = 4), (n = 2); + break; + case 3: + (r = 8), (n = 4); + break; + case 4: + (r = 10), (n = 6); + break; + case 5: + (r = 14), (n = 6); + break; + default: + (r = 16), (n = 8); + } + for (var i = [], o = Math.PI / 2 / n, a = 0; a <= n; a++) + (i[a] = new I.THREE.Vector3(0, e * Math.cos(a * o), 0.1 * Math.sin(a * o))), + (i[a].z += 0.9); + var s = new I.THREE.LatheGeometry( + [new I.THREE.Vector3(0, e, 0)].concat(i), + r, + Math.PI, + ), + s = I.GeometryHelper.getIndexedBufferGeometry(s); + t.strandTemplate = { + vertex: s.attributes.position.array, + normal: s.attributes.normal.array, + index: s.attributes.index.array, + geometry: s, + }; + } + function h(t, e) { + for ( + var n, + r, + i, + o, + a, + s, + l = e.state, + u = e.params, + c = e.builder, + A = 0, + h = t.residueCount; + A < h; + A++ + ) { + l.vertexMap.startElement(t.residueIndex[A]); + var p = l.verticesDone, + d = ((l.residueIndex = A), t.structureStarts.has(t.residueIndex[A])), + f = t.structureEnds.has(t.residueIndex[A]); + if (e.isTrace || t.backboneOnly) + 5 === t.residueType[A] + ? (c.addTube( + t, + l, + u.strandWidth, + u.strandWidth, + c.hasP(t.residueIndex[A], e.strandArrays) + ? u.nucleotideStrandFactor + : 1, + ), + (d || f) && c.addTubeCap(t, l, u.strandWidth, u.strandWidth, d, f), + e.strandTemplate || g(e), + c.addStrandLine( + t, + l, + e.strandTemplate, + e.strandArrays, + t.residueIndex[A], + )) + : (c.addTube(t, l, u.turnWidth, u.turnWidth, 1), + (d || f) && c.addTubeCap(t, l, u.turnWidth, u.turnWidth, d, f)); + else + switch (t.residueType[A]) { + case 1: + c.addTube(t, l, u.helixWidth, u.helixHeight, 1), + d + ? c.addTubeCap(t, l, u.helixWidth, u.helixHeight, !0, !1) + : f && c.addTubeCap(t, l, u.helixWidth, u.helixHeight, !1, !0); + break; + case 3: + c.addSheet(t, l, d, f), (d || f) && c.addSheetCap(t, l, d, f); + break; + case 5: + c.addTube( + t, + l, + u.strandWidth, + u.strandWidth, + c.hasP(t.residueIndex[A], e.strandArrays) + ? u.nucleotideStrandFactor + : 1, + ), + (d || f) && c.addTubeCap(t, l, u.strandWidth, u.strandWidth, d, f), + e.strandTemplate || g(e), + c.addStrandLine( + t, + l, + e.strandTemplate, + e.strandArrays, + t.residueIndex[A], + ); + break; + default: + c.addTube(t, l, u.turnWidth, u.turnWidth, 1), + (d || f) && c.addTubeCap(t, l, u.turnWidth, u.turnWidth, d, f); + } + e.parameters.showDirectionCones && + 5 !== t.residueType[A] && + ((n = e), + (r = t), + (i = 2 * u.sheetHeight), + (o = A), + (s = a = void 0), + r.residueCount <= 2 || + ((a = r.controlPoints), + (s = + o * r.linearSegmentCount + ((0.35 * r.linearSegmentCount + 1) | 0)), + (o = + o * r.linearSegmentCount + ((0.85 * r.linearSegmentCount + 1) | 0)), + s == o || + 3 * o > a.length || + (m.set(B, a[3 * s], a[3 * s + 1], a[3 * s + 2]), + m.set(w, a[3 * s], a[3 * s + 1], a[3 * s + 2]), + m.set(E, a[3 * o], a[3 * o + 1], a[3 * o + 2]), + m.sub(w, E, w), + (r = m.magnitude(w)) <= 0.1 || + (m.set(C, 2 * i, r, 2 * i), + m.normalize(w, w), + m.makeRotation(x, y, w), + b.addRawTransformed(n.state.directionConesBuilder, v, C, B, x))))), + l.vertexMap.addVertexRange(p, l.verticesDone), + l.vertexMap.endElement(); + } + } + Object.defineProperty(n.prototype, 'verticesDone', { + get: function () { + return this.vs.elementCount; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(n.prototype, 'trianglesDone', { + get: function () { + return this.is.elementCount; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(n.prototype, 'directionConesBuilder', { + get: function () { + return ( + this.dConesInit || + ((this.dConesInit = !0), + (this.dCones = b.createDynamic( + this.residueCount, + this.residueCount, + ))), + this.dCones + ); + }, + enumerable: !0, + configurable: !0, + }), + (n.prototype.addVertex = function (t, e) { + b.addVertex3d(this.builder, t.x, t.y, t.z), + b.addNormal3d(this.builder, e.x, e.y, e.z); + }), + (n.prototype.addTriangle = function (t, e, n) { + b.addIndex3d(this.builder, t, e, n); + }), + (n.prototype.addTriangles = function (t, e, n, r, i, o) { + b.addIndex3d(this.builder, t, e, n), b.addIndex3d(this.builder, r, i, o); + }), + (t.CartoonsGeometryState = n), + (t.buildUnit = h); + var m = ou.Core.Geometry.LinearAlgebra.Vector3, + r = ou.Core.Geometry.LinearAlgebra.Matrix4; + (i = new I.THREE.CylinderGeometry(0, 1, 1, 6, 1)), + (o = I.GeometryHelper.toRawGeometry(i)), + i.dispose(); + var i, + o, + v = o, + y = (m.zero(), m.fromValues(0, 1, 0)), + w = m.zero(), + E = m.zero(), + B = m.zero(), + C = m.zero(), + x = r.identity(); + function a() { + this.tempVectors = [ + new I.THREE.Vector3(), + new I.THREE.Vector3(), + new I.THREE.Vector3(), + new I.THREE.Vector3(), + new I.THREE.Vector3(), + new I.THREE.Vector3(), + new I.THREE.Vector3(), + new I.THREE.Vector3(), + new I.THREE.Vector3(), + new I.THREE.Vector3(), + new I.THREE.Vector3(), + new I.THREE.Vector3(), + new I.THREE.Vector3(), + new I.THREE.Vector3(), + new I.THREE.Vector3(), + new I.THREE.Vector3(), + new I.THREE.Vector3(), + new I.THREE.Vector3(), + ]; + } + (t.buildUnitsAsync = function (A) { + return D(this, void 0, void 0, function () { + var o, a, s, l, u, c; + return P(this, function (t) { + switch (t.label) { + case 0: + (o = 1e4), + (a = ou.Core.Utils.PerformanceMonitor.currentTime()), + (s = 0), + (t.label = 1); + case 1: + if (!(s < A.units.length)) return [3, 4]; + for (l = 0; l < o && s < A.units.length; ) + h(A.units[s], A), (l += A.units[s].residueCount), s++; + return (u = ou.Core.Utils.PerformanceMonitor.currentTime()) - a > + ou.Core.Computation.UpdateProgressDelta + ? ((a = u), + [ + 4, + A.computation.updateProgress( + 'Building units...', + !0, + s, + A.units.length, + ), + ]) + : [3, 3]; + case 2: + t.sent(), (t.label = 3); + case 3: + return [3, 1]; + case 4: + for (c = 0; c < A.units.length - 1; c++) + (r = (n = A).units[c]), + (i = A.units[c + 1]), + (n = n.model.data.residues.chainIndex)[r.endResidueIndex] === + n[i.endResidueIndex] && + ((n = (r = A).units[c]), + (i = A.units[c + 1]), + (e = void 0), + (e = n.controlPoints.length), + (n = n.controlPoints), + (i = i.controlPoints), + (n = m.fromValues(n[e - 3], n[e - 2], n[e - 1])), + (e = m.fromValues(i[0], i[1], i[2])), + (i = r.state.params.turnWidth / 2), + b.addDashedLine(r.state.gapsBuilder, n, e, 0.5, 0.5, i)); + return [2]; + } + var e, n, r, i; + }); + }); + }), + (t.createGeometry = function (t) { + for ( + var e = t.state, + n = new Float32Array(3 * e.verticesDone), + r = new Float32Array(4 * e.verticesDone), + i = new Float32Array(e.verticesDone), + o = b.toBufferGeometry(e.builder), + a = + (o.addAttribute('color', new I.THREE.BufferAttribute(n, 3)), + (t.geom.vertexStateBuffer = new I.THREE.BufferAttribute(i, 1)), + o.addAttribute('vState', t.geom.vertexStateBuffer), + (t.geom.geometry = o), + e.gapsBuilder.vertices.elementCount && + (t.geom.gapsGeometry = b.toBufferGeometry(e.gapsBuilder)), + e.directionConesBuilder.vertices.elementCount && + (t.geom.directionConesGeometry = b.toBufferGeometry( + e.directionConesBuilder, + )), + t.geom.vertexMap), + s = { r: 0.45, g: 0.45, b: 0.45 }, + l = a.vertexRanges, + u = 0, + c = a.elementIndices; + u < c.length; + u++ + ) { + var A = c[u], + h = a.elementMap.get(A), + p = a.elementRanges[2 * h], + d = a.elementRanges[2 * h + 1]; + if (p !== d) { + I.Selection.Picking.assignPickColor(A, s); + for (var f = p; f < d; f += 2) + for (var g = l[f], m = l[f + 1], v = g; v < m; v++) + (r[4 * v] = s.r), (r[4 * v + 1] = s.g), (r[4 * v + 2] = s.b); + } + } + (n = new I.THREE.BufferGeometry()).addAttribute( + 'position', + o.getAttribute('position'), + ), + n.addAttribute('index', o.getAttribute('index')), + n.addAttribute('pColor', new I.THREE.BufferAttribute(r, 4)), + (t.geom.pickGeometry = n); + }), + (a.prototype.setVector = function (t, e, n) { + return n.set(t[3 * e], t[3 * e + 1], t[3 * e + 2]), n; + }), + (a.prototype.addTube = function (t, e, n, r, i) { + for ( + var o = e.verticesDone, + a = 0, + s = 0, + l = this.tempVectors[0], + u = this.tempVectors[1], + c = this.tempVectors[2], + A = this.tempVectors[3], + h = this.tempVectors[4], + p = this.tempVectors[5], + d = this.tempVectors[6], + f = e.residueIndex * t.linearSegmentCount, + g = f + t.linearSegmentCount, + m = t.controlPoints, + v = t.linearSegmentCount + 1, + b = t.torsionVectors, + y = t.normalVectors, + w = e.params.radialSegmentCount, + E = 1 / (g - f), + a = f; + a <= g; + a++ + ) { + this.setVector(b, a, p), this.setVector(y, a, d); + for ( + var B = 1 + (i - 1) * (Math.cos(2 * Math.PI * (E * (a - f) - 0.5)) + 1), + C = B * n, + x = B * r, + s = 0; + s < w; + s++ + ) { + var I = (2 * Math.PI * s) / w; + A.copy(p), + h.copy(d), + l.addVectors( + A.multiplyScalar(C * Math.cos(I)), + h.multiplyScalar(x * Math.sin(I)), + ), + A.copy(p), + h.copy(d), + u.addVectors( + A.multiplyScalar(x * Math.cos(I)), + h.multiplyScalar(C * Math.sin(I)), + ), + u.normalize(), + this.setVector(m, a, c), + c.add(l), + e.addVertex(c, u); + } + } + for (a = 0; a < v - 1; a++) + for (s = 0; s < w; s++) + e.addTriangles( + o + a * w + s, + o + (a + 1) * w + ((s + 1) % w), + o + a * w + ((s + 1) % w), + o + a * w + s, + o + (a + 1) * w + s, + o + (a + 1) * w + ((s + 1) % w), + ); + }), + (a.prototype.addTubeCap = function (t, e, n, r, i, o) { + var a, + s = e.verticesDone, + l = this.tempVectors[0], + u = this.tempVectors[1], + c = this.tempVectors[2], + A = this.tempVectors[3], + h = this.tempVectors[4], + p = this.tempVectors[5], + d = this.tempVectors[6], + f = this.tempVectors[7], + g = e.residueIndex * t.linearSegmentCount, + m = t.controlPoints, + v = t.linearSegmentCount + 1, + b = t.torsionVectors, + t = t.normalVectors, + y = e.params.radialSegmentCount, + w = + (this.setVector(b, g, d), + this.setVector(t, g, f), + u.crossVectors(d, f), + o && u.negate(), + g + (i ? 0 : v - 1)); + this.setVector(m, w, l), + e.addVertex(l, u), + this.setVector(b, w, h), + this.setVector(t, w, p); + for (var E = 0; E < y; E++) + (a = (2 * Math.PI * E) / y), + c.copy(h), + A.copy(p), + l.addVectors( + c.multiplyScalar(Math.cos(a) * n), + A.multiplyScalar(Math.sin(a) * r), + ), + this.setVector(m, w, d), + l.add(d), + e.addVertex(l, u), + i + ? e.addTriangle(s, s + E + 1, s + ((E + 1) % y) + 1) + : e.addTriangle(s, s + ((E + 1) % y) + 1, s + E + 1); + }), + (a.prototype.addSheet = function (t, e, n, r) { + var i, + o = e.verticesDone, + a = e.params, + s = 0, + l = 0, + u = this.tempVectors[0], + c = this.tempVectors[1], + A = this.tempVectors[2], + h = this.tempVectors[3], + p = this.tempVectors[4], + d = this.tempVectors[5], + f = this.tempVectors[7], + g = this.tempVectors[8], + m = this.tempVectors[9], + v = e.residueIndex * t.linearSegmentCount, + b = v + t.linearSegmentCount, + y = t.controlPoints, + w = t.torsionVectors, + E = t.normalVectors, + B = 0; + for ( + h.set(0, 0, 0), + r && + (this.setVector(y, b, f), + this.setVector(y, v, g), + (B = a.arrowWidth / d.subVectors(f, g).length())), + s = v; + s <= b; + s++ + ) + (i = r + ? a.arrowWidth * (1 - (s - v) / t.linearSegmentCount) + : a.sheetWidth), + this.setVector(w, s, u), + u.multiplyScalar(i), + this.setVector(E, s, c), + c.multiplyScalar(a.sheetHeight), + r && + (this.setVector(E, s, f), + this.setVector(w, s, g), + h.crossVectors(f, g).multiplyScalar(B)), + this.setVector(y, s, A), + this.setVector(E, s, p), + this.setVector(w, s, m), + f.copy(A).add(u).add(c), + g.copy(p), + e.addVertex(f, g), + f.copy(A).sub(u).add(c), + e.addVertex(f, g), + f.copy(A).sub(u).add(c), + g.copy(m).negate().add(h), + e.addVertex(f, g), + f.copy(A).sub(u).sub(c), + e.addVertex(f, g), + f.copy(A).sub(u).sub(c), + g.copy(p).negate(), + e.addVertex(f, g), + f.copy(A).add(u).sub(c), + e.addVertex(f, g), + f.copy(A).add(u).sub(c), + g.copy(m).add(h), + e.addVertex(f, g), + f.copy(A).add(u).add(c), + e.addVertex(f, g); + for (s = 0; s < t.linearSegmentCount; s++) + for (l = 0; l < 4; l++) + e.addTriangles( + o + 8 * s + 2 * l, + o + 8 * (s + 1) + 2 * l + 1, + o + 8 * s + 2 * l + 1, + o + 8 * s + 2 * l, + o + 8 * (s + 1) + 2 * l, + o + 8 * (s + 1) + 2 * l + 1, + ); + }), + (a.prototype.addSheetCap = function (t, e, n, r) { + var i = e.params, + o = e.residueIndex * t.linearSegmentCount, + a = this.setVector(t.controlPoints, o, this.tempVectors[0]), + s = this.setVector( + t.torsionVectors, + o, + this.tempVectors[1], + ).multiplyScalar(i.sheetWidth), + l = this.setVector( + t.normalVectors, + o, + this.tempVectors[2], + ).multiplyScalar(i.sheetHeight), + u = this.tempVectors[3].addVectors(a, s).add(l), + c = this.tempVectors[4].subVectors(a, s).add(l), + A = this.tempVectors[5].subVectors(a, s).sub(l), + s = this.tempVectors[6].addVectors(a, s).sub(l); + n + ? this.addSheepCapSection(e, u, c, A, s) + : ((n = this.setVector( + t.torsionVectors, + o, + this.tempVectors[7], + ).multiplyScalar(i.arrowWidth)), + (t = this.tempVectors[8].addVectors(a, n).add(l)), + (o = this.tempVectors[9].subVectors(a, n).add(l)), + (i = this.tempVectors[10].subVectors(a, n).sub(l)), + (a = this.tempVectors[11].addVectors(a, n).sub(l)), + this.addSheepCapSection(e, t, u, s, a), + this.addSheepCapSection(e, c, o, i, A)); + }), + (a.prototype.addSheepCapSection = function (t, e, n, r, i) { + var o = t.verticesDone, + a = this.tempVectors[12] + .crossVectors( + this.tempVectors[13].subVectors(n, e), + this.tempVectors[14].subVectors(i, e), + ) + .normalize(); + t.addVertex(e, a), + t.addVertex(n, a), + t.addVertex(r, a), + t.addVertex(i, a), + t.addTriangles(o, o + 1, o + 2, o + 2, o + 3, o); + }), + (a.prototype.findN3 = function (t, e, n) { + for (var r = e.startIndex[t], i = e.endIndex[t], o = !1, a = r; a < i; a++) + if ('N3' === e.name[a]) { + n.set(e.x[a], e.y[a], e.z[a]), (o = !0); + break; + } + return o; + }), + (a.prototype.hasP = function (t, e) { + for (var n = e.startIndex[t], r = e.endIndex[t], i = n; i < r; i++) + if ('P' === e.name[i]) return !0; + return !1; + }), + (a.prototype.addStrandLine = function (t, e, n, r, i) { + if (this.findN3(i, r, this.tempVectors[3])) { + var o, + a = this.tempVectors[0], + s = this.tempVectors[1], + l = n.vertex, + u = n.normal, + c = n.index, + A = e.verticesDone, + h = l.length, + p = c.length, + i = + e.residueIndex * t.linearSegmentCount + + ((0.5 * t.linearSegmentCount + 1) | 0), + r = this.setVector(t.controlPoints, i, this.tempVectors[2]), + t = this.tempVectors[3].sub(r), + i = t.length(); + for ( + t.normalize(), + e.translationMatrix.makeTranslation(r.x, r.y, r.z), + e.scaleMatrix.makeScale(1, 1, i), + e.rotationMatrix.makeRotationAxis( + new I.THREE.Vector3(-t.y, t.x, 0), + Math.acos(t.z), + ), + e.translationMatrix + .multiply(e.rotationMatrix) + .multiply(e.scaleMatrix), + n.geometry.applyMatrix(e.translationMatrix), + o = 0; + o < h; + o += 3 + ) + a.set(l[o], l[o + 1], l[o + 2]), + s.set(u[o], u[o + 1], u[o + 2]), + e.addVertex(a, s); + for (o = 0; o < p; o += 3) + e.addTriangle(A + c[o], A + c[o + 1], A + c[o + 2]); + e.invMatrix.getInverse(e.translationMatrix), + n.geometry.applyMatrix(e.invMatrix); + } + }), + (t.Builder = a); + })( + (r = (r = I.Molecule || (I.Molecule = {})).Cartoons || (r.Cartoons = {})) + .Geometry || (r.Geometry = {}), + ), + (au = F = F || {}), + (su = au.Visualization || (au.Visualization = {})), + (n = su.Molecule || (su.Molecule = {})), + (lu = n.Cartoons || (n.Cartoons = {})), + ((n = uu = lu.CartoonsModelType || (lu.CartoonsModelType = {}))[(n.Default = 0)] = + 'Default'), + (n[(n.AlphaTrace = 1)] = 'AlphaTrace'), + (lu.DefaultCartoonsModelParameters = { + tessalation: 3, + drawingType: uu.Default, + showDirectionCones: !0, + }), + (cu = su.Model), + M(VA, cu), + (VA.prototype.applySelectionInternal = function (t, e) { + for ( + var n = this.cartoons.vertexStateBuffer, + r = n.array, + i = this.cartoons.vertexMap, + o = i.vertexRanges, + a = !1, + s = this.model.data.atoms.residueIndex, + l = 0, + u = t.length; + l < u; + l++ + ) { + var c = s[t[l]]; + for (l++; s[t[l]] === c; ) l++; + if ((l--, i.elementMap.has(c))) { + var A = i.elementMap.get(c), + h = i.elementRanges[2 * A], + p = i.elementRanges[2 * A + 1]; + if (h !== p) + for (var d = h; d < p; d += 2) + var f = o[d], + g = o[d + 1], + a = su.Selection.applyActionToRange(r, f, g, e) || a; + } + } + return !!a && (n.needsUpdate = !0); + }), + (VA.prototype.getPickElements = function (t) { + for ( + var e = this.model.data.residues, + n = e.atomStartIndex, + e = e.atomEndIndex, + r = [], + i = n[t], + o = e[t]; + i < o; + i++ + ) + this.queryContext.hasAtom(i) && r.push(i); + return r; + }), + (VA.prototype.highlightElement = function (t, e) { + return this.applySelection( + [this.model.data.residues.atomStartIndex[t]], + e ? 3 : 4, + ); + }), + (VA.prototype.highlightInternal = function (t) { + return su.Selection.applyActionToBuffer( + this.cartoons.vertexStateBuffer, + t ? 3 : 4, + ); + }), + (VA.prototype.applyColoring = function (t) { + for ( + var e = this.model.data.residues, + n = e.atomStartIndex, + r = e.atomEndIndex, + i = { r: 0.1, g: 0.1, b: 0.1 }, + o = { r: 0.1, g: 0.1, b: 0.1 }, + a = this.cartoons.vertexMap, + e = this.cartoons.geometry.attributes.color, + s = e.array, + l = a.vertexRanges, + u = 0, + c = this.model.data.residues.count; + u < c; + u++ + ) { + (o.r = 0), (o.g = 0); + for (var A = (o.b = 0), h = n[u], p = r[u]; h < p; h++) + this.queryContext.hasAtom(h) && + (t.setElementColor(h, i), (o.r += i.r), (o.g += i.g), (o.b += i.b), A++); + if (A) { + (i.r = o.r / A), (i.g = o.g / A), (i.b = o.b / A); + var d = a.elementMap.get(u), + f = a.elementRanges[2 * d], + g = a.elementRanges[2 * d + 1]; + if (f !== g) + for (var m = f; m < g; m += 2) + for (var v = l[m], b = l[m + 1], y = v; y < b; y++) + (s[3 * y] = i.r), (s[3 * y + 1] = i.g), (s[3 * y + 2] = i.b); + } + } + e.needsUpdate = !0; + }), + (VA.prototype.applyThemeInternal = function (t) { + this.applyColoring(t), + su.MaterialsHelper.updateMaterial(this.material, t, this.object), + su.MaterialsHelper.updateMaterial(this.gapMaterial, t, this.object), + su.MaterialsHelper.updateMaterial(this.directionConeMaterial, t, this.object); + }), + (VA.prototype.createObjects = function () { + var t = new su.THREE.Object3D(); + return ( + t.add(new su.THREE.Mesh(this.cartoons.geometry, this.material)), + this.cartoons.gapsGeometry && + t.add(new su.THREE.Mesh(this.cartoons.gapsGeometry, this.gapMaterial)), + this.cartoons.directionConesGeometry && + t.add( + new su.THREE.Mesh( + this.cartoons.directionConesGeometry, + this.directionConeMaterial, + ), + ), + { + main: 1 < t.children.length ? t : t.children[0], + pick: new su.THREE.Mesh(this.cartoons.pickGeometry, this.pickMaterial), + } + ); + }), + (VA.create = function (a, t) { + var e = this, + s = t.model, + l = t.queryContext, + u = t.atomIndices, + c = t.theme, + A = t.params, + h = t.props; + return au.Core.computation(function (o) { + return D(e, void 0, void 0, function () { + var e, n, r, i; + return P(this, function (t) { + switch (t.label) { + case 0: + return (n = e = 0), [4, o.updateProgress('Computing cartoons...')]; + case 1: + switch ( + (t.sent(), + (A = au.Core.Utils.extend({}, A, lu.DefaultCartoonsModelParameters)) + .tessalation) + ) { + case 0: + n = e = 2; + break; + case 1: + (e = 4), (n = 3); + break; + case 2: + (e = 6), (n = 5); + break; + case 3: + (e = 10), (n = 8); + break; + case 4: + (e = 12), (n = 10); + break; + case 5: + (e = 16), (n = 14); + break; + default: + (e = 18), (n = 16); + } + return [ + 4, + lu.Geometry.create( + s, + u, + e, + { + radialSegmentCount: n, + tessalation: +A.tessalation, + showDirectionCones: !!A.showDirectionCones, + }, + A.drawingType === uu.AlphaTrace, + o, + ), + ]; + case 2: + return ( + (i = t.sent()), + ((r = new VA()).cartoons = i), + (r.queryContext = l), + (r.material = su.MaterialsHelper.getMeshMaterial()), + (r.gapMaterial = new su.THREE.MeshPhongMaterial({ + color: 7829367, + shading: su.THREE.FlatShading, + })), + (r.directionConeMaterial = new su.THREE.MeshPhongMaterial({ + color: 10066329, + shading: su.THREE.FlatShading, + })), + (r.pickMaterial = su.MaterialsHelper.getPickMaterial()), + h && (r.props = h), + (r.entity = a), + r.cartoons.geometry.computeBoundingSphere(), + (r.centroid = r.cartoons.geometry.boundingSphere.center), + (r.radius = r.cartoons.geometry.boundingSphere.radius), + (i = r.createObjects()), + (r.object = i.main), + (r.pickObject = i.pick), + (r.pickBufferAttributes = [ + r.cartoons.pickGeometry.attributes.pColor, + ]), + (r.model = s), + r.applyTheme(c), + r.disposeList.push( + r.cartoons, + r.material, + r.pickMaterial, + r.gapMaterial, + r.directionConeMaterial, + ), + [2, r] + ); + } + }); + }); + }); + }), + (n = VA), + (lu.Model = n); + var t = (F = F || {}), + qA = + (e = + (e = t.Visualization || (t.Visualization = {})).Molecule || (e.Molecule = {})) + .Colors || (e.Colors = {}); + (qA.DefaultBondColor = { r: 0.6, g: 0.6, b: 0.6 }), + (qA.DefaultCartoonDirectionConeColor = { r: 0.85, g: 0.85, b: 0.85 }), + (qA.DefaultElementColor = { r: 0.6, g: 0.6, b: 0.6 }), + (qA.DefaultElementColorMap = t.Core.Utils.FastMap.create()), + (qA.DefaultPallete = []); + for ( + var WA = 0, + JA = [ + ['Ac', 0.43921, 0.67058, 0.98039], + ['Al', 0.74901, 0.65098, 0.65098], + ['Am', 0.32941, 0.36078, 0.94901], + ['Sb', 0.6196, 0.38823, 0.7098], + ['Ar', 0.50196, 0.8196, 0.89019], + ['As', 0.74117, 0.50196, 0.89019], + ['At', 0.45882, 0.3098, 0.27058], + ['Ba', 0, 0.78823, 0], + ['Bk', 0.54117, 0.3098, 0.89019], + ['Be', 0.76078, 1, 0], + ['Bi', 0.6196, 0.3098, 0.7098], + ['Bh', 0.87843, 0, 0.2196], + ['B', 1, 0.7098, 0.7098], + ['Br', 0.65098, 0.16078, 0.16078], + ['Cd', 1, 0.85098, 0.56078], + ['Ca', 0.23921, 1, 0], + ['Cf', 0.63137, 0.21176, 0.83137], + ['C', 0.45, 0.45, 0.45], + ['Ce', 1, 1, 0.78039], + ['Cs', 0.34117, 0.09019, 0.56078], + ['Cl', 0.12156, 0.94117, 0.12156], + ['Cr', 0.54117, 0.6, 0.78039], + ['Co', 0.94117, 0.5647, 0.62745], + ['Cu', 0.78431, 0.50196, 0.2], + ['Cm', 0.47058, 0.36078, 0.89019], + ['D', 0.9, 0.9, 0.9], + ['Db', 0.8196, 0, 0.3098], + ['Dy', 0.12156, 1, 0.78039], + ['Es', 0.70196, 0.12156, 0.83137], + ['Er', 0, 0.90196, 0.45882], + ['Eu', 0.38039, 1, 0.78039], + ['Fm', 0.70196, 0.12156, 0.72941], + ['F', 0.70196, 1, 1], + ['Fr', 0.25882, 0, 0.4], + ['Gd', 0.27058, 1, 0.78039], + ['Ga', 0.76078, 0.56078, 0.56078], + ['Ge', 0.4, 0.56078, 0.56078], + ['Au', 1, 0.8196, 0.13725], + ['Hf', 0.30196, 0.76078, 1], + ['Hs', 0.90196, 0, 0.18039], + ['He', 0.85098, 1, 1], + ['Ho', 0, 1, 0.61176], + ['H', 0.9, 0.9, 0.9], + ['In', 0.65098, 0.45882, 0.45098], + ['I', 0.58039, 0, 0.58039], + ['Ir', 0.09019, 0.32941, 0.52941], + ['Fe', 0.698, 0.13, 0.13], + ['Kr', 0.36078, 0.72156, 0.8196], + ['La', 0.43921, 0.83137, 1], + ['Lr', 0.78039, 0, 0.4], + ['Pb', 0.34117, 0.34901, 0.38039], + ['Li', 0.8, 0.50196, 1], + ['Lu', 0, 0.67058, 0.14117], + ['Mg', 0.54117, 1, 0], + ['Mn', 0.61176, 0.47843, 0.78039], + ['Mt', 0.92156, 0, 0.14901], + ['Md', 0.70196, 0.05098, 0.65098], + ['Hg', 0.72156, 0.72156, 0.81568], + ['Mo', 0.32941, 0.7098, 0.7098], + ['Nd', 0.78039, 1, 0.78039], + ['Ne', 0.70196, 0.89019, 0.96078], + ['Np', 0, 0.50196, 1], + ['Ni', 0.31372, 0.81568, 0.31372], + ['Nb', 0.45098, 0.76078, 0.78823], + ['N', 0, 0.5, 1], + ['No', 0.74117, 0.05098, 0.52941], + ['Os', 0.14901, 0.4, 0.58823], + ['O', 1, 0.3, 0.3], + ['Pd', 0, 0.41176, 0.52156], + ['P', 1, 0.50196, 0], + ['Pt', 0.81568, 0.81568, 0.87843], + ['Pu', 0, 0.4196, 1], + ['Po', 0.67058, 0.36078, 0], + ['K', 0.56078, 0.25098, 0.83137], + ['Pr', 0.85098, 1, 0.78039], + ['Pm', 0.63921, 1, 0.78039], + ['Pa', 0, 0.63137, 1], + ['Ra', 0, 0.49019, 0], + ['Rn', 0.25882, 0.5098, 0.58823], + ['Re', 0.14901, 0.49019, 0.67058], + ['Rh', 0.03921, 0.49019, 0.54901], + ['Rb', 0.43921, 0.18039, 0.69019], + ['Ru', 0.14117, 0.56078, 0.56078], + ['Rf', 0.8, 0, 0.34901], + ['Sm', 0.56078, 1, 0.78039], + ['Sc', 0.90196, 0.90196, 0.90196], + ['Sg', 0.85098, 0, 0.27058], + ['Se', 1, 0.63137, 0], + ['Si', 0.94117, 0.78431, 0.62745], + ['Ag', 0.75294, 0.75294, 0.75294], + ['Na', 0.67058, 0.36078, 0.94901], + ['Sr', 0, 1, 0], + ['S', 0.9, 0.775, 0.25], + ['Ta', 0.30196, 0.65098, 1], + ['Tc', 0.23137, 0.6196, 0.6196], + ['Te', 0.83137, 0.47843, 0], + ['Tb', 0.18823, 1, 0.78039], + ['Tl', 0.65098, 0.32941, 0.30196], + ['Th', 0, 0.72941, 1], + ['Tm', 0, 0.83137, 0.32156], + ['Sn', 0.4, 0.50196, 0.50196], + ['Ti', 0.74901, 0.76078, 0.78039], + ['W', 0.12941, 0.58039, 0.83921], + ['U', 0, 0.56078, 1], + ['V', 0.65098, 0.65098, 0.67058], + ['Xe', 0.25882, 0.6196, 0.69019], + ['Yb', 0, 0.74901, 0.2196], + ['Y', 0.58039, 1, 1], + ['Zn', 0.49019, 0.50196, 0.69019], + ['Zr', 0.58039, 0.87843, 0.87843], + ]; + WA < JA.length; + WA++ + ) { + var KA = JA[WA], + ZA = KA[0], + KA = { r: KA[1], g: KA[2], b: KA[3] }; + qA.DefaultElementColorMap.set(ZA, KA), + qA.DefaultElementColorMap.set(ZA.toUpperCase(), KA), + qA.DefaultElementColorMap.set(ZA.toLowerCase(), KA), + qA.DefaultPallete.push(KA); + } + function XA(t, e) { + return { previous: null, next: null, inList: !1, key: t, data: e }; + } + function $A(i, o, a, s) { + return D(this, void 0, void 0, function () { + var n, r; + return P(this, function (t) { + switch (t.label) { + case 0: + return ((n = s.target.result), a) + ? [4, i.updateProgress('Decompressing...')] + : [3, 2]; + case 1: + return ( + t.sent(), + (e = n), + (r = new Ir.Gunzip(new Uint8Array(e)).decompress()), + o + ? [2, r.buffer] + : [2, wu.Core.Formats.CIF.Binary.MessagePack.utf8Read(r, 0, r.length)] + ); + case 2: + return [2, n]; + case 3: + return [2]; + } + var e; + }); + }); + } + function th(r, i, t) { + return new wu.Promise(function (e, n) { + (t.onerror = function (t) { + t = t.target.error; + n(t || 'Failed.'); + }), + (t.onabort = function () { + return n(wu.Core.Computation.Aborted); + }), + (t.onprogress = function (t) { + t.lengthComputable + ? r.updateProgress(i, !0, t.loaded, t.total) + : r.updateProgress( + i + ' ' + (t.loaded / 1024 / 1024).toFixed(2) + ' MB', + !0, + ); + }), + (t.onload = function (t) { + return e(t); + }); + }); + } + function eh(o, a) { + var t = this; + return Eu.Task.fromComputation( + 'Open File', + 'Background', + wu.Core.computation(function (i) { + return D(t, void 0, void 0, function () { + var e, n, r; + return P(this, function (t) { + switch (t.label) { + case 0: + return ( + (e = new FileReader()), + (n = /\.gz$/i.test(o.name)) || a + ? e.readAsArrayBuffer(o) + : e.readAsBinaryString(o), + i.updateProgress('Opening file...', function () { + return e.abort(); + }), + [4, th(i, 'Reading...', e)] + ); + case 1: + return (r = t.sent()), [2, $A(i, a, n, r)]; + } + }); + }); + }), + ); + } + function nh() {} + function rh(t, i, o, a) { + var e = this; + return Eu.Task.fromComputation( + t || 'Download', + 'Background', + wu.Core.computation(function (r) { + return D(e, void 0, void 0, function () { + var e, n; + return P(this, function (t) { + switch (t.label) { + case 0: + if (!o && a) + throw 'Decompress is only available when downloading binary data.'; + return ( + (e = Cu.get()).open('get', i, !0), + (e.responseType = o ? 'arraybuffer' : 'text'), + e.send(), + r.updateProgress('Waiting for server...', function () { + return e.abort(); + }), + [4, th(r, 'Downloading...', e)] + ); + case 1: + return ( + (n = t.sent()), + [ + 4, + (function (o, a, s, l) { + return D(this, void 0, void 0, function () { + var e, n, r, i; + return P(this, function (t) { + switch (t.label) { + case 0: + return 200 <= (e = l.target).status && e.status < 400 + ? a + ? ((n = l.target.response), + Cu.deposit(l.target), + s + ? [4, o.updateProgress('Decompressing...')] + : [3, 2]) + : [3, 4] + : [3, 6]; + case 1: + return ( + t.sent(), + (r = new Ir.Gunzip(new Uint8Array(n))), + [2, r.decompress().buffer] + ); + case 2: + return [2, n]; + case 3: + return [3, 5]; + case 4: + return ( + (r = l.target.responseText), + Cu.deposit(l.target), + [2, r] + ); + case 5: + return [3, 7]; + case 6: + throw ((i = e.statusText), Cu.deposit(l.target), i); + case 7: + return [2]; + } + }); + }); + })(r, o, a, n), + ] + ); + case 2: + return [2, t.sent()]; + } + }); + }); + }), + ); + } + function ih(t) { + return t && '.' !== t && '?' !== t ? t : null; + } + function oh(t) { + return (t < 10 ? '0' : '') + t; + } + function ah(t) { + return Su.Core.Utils.extend({}, t); + } + function sh(t) { + Pu.Node.forEach(t, function (t) { + var e; + (t = t).tree && + ((e = t.tree.refs.get(t.ref)) ? e.push(t) : t.tree.refs.set(t.ref, [t])); + }); + } + function lh(t) { + var e = t.tree.context; + Pu.Node.forEachPreorder(t, function (t) { + Nu.Event.Tree.NodeAdded.dispatch(e, t); + }); + } + function uh(o, t) { + var a = o.currentEntity, + s = !1; + return ( + Pu.Node.forEach(t, function (t) { + var e, n, r, i; + (e = o.tree), + (n = t), + !(i = e.refs.get(n.ref)) || + (r = i.indexOf(n)) < 0 || + ((i[r] = i[i.length - 1]), i.pop(), i.length || e.refs.delete(n.ref)), + Nu.Event.Tree.NodeRemoved.dispatch(o, t), + (t.tree = void 0), + t === a && (s = !0); + }), + s + ); + } + function ch(t, e) { + return t && t.type === e; + } + function Ah(t) { + return t.version++, t; + } + function hh(t, e) { + for (var n = t.children, r = e.index, i = n.length - 1; r < i; r++) { + var o = n[r + 1]; + o.index--, (n[r] = o); + } + return n.pop(), Ah(t); + } + function ph(t, e) { + for (var n = 0, r = t.children; n < r.length; n++) ph(r[n], e); + e(t); + } + function dh(t) { + (t = t || zu.root()), + (t = + void 0 !== t.compile + ? t.compile() + : void 0 !== t.ref + ? zu.byValue(t).compile() + : 'function' == typeof t + ? t + : zu.byRef(t).compile()); + return t; + } + function fh(t) { + return Object.create(Hu.BuilderPrototype, { + compile: { writable: !1, configurable: !1, value: t }, + }); + } + function gh(t, l) { + var u = dh(t); + return fh(function () { + return function (t) { + for (var e = [], n = 0, r = u(t); n < r.length; n++) + for (var i = r[n], o = 0, a = l(i); o < a.length; o++) { + var s = a[o]; + e.push(s); + } + return e; + }; + }); + } + function mh(t, o) { + var a = dh(t); + return fh(function () { + return function (t) { + for (var e = [], n = 0, r = a(t); n < r.length; n++) { + var i = r[n], + i = o(i); + i && e.push(i); + } + return e; + }; + }); + } + function vh(t) { + var a = dh(t); + return fh(function () { + return function (t) { + for ( + var e = Ou.Core.Utils.FastSet.create(), n = [], r = 0, i = a(t); + r < i.length; + r++ + ) { + var o = i[r]; + e.has(o.id) || (e.add(o.id), n.push(o)); + } + return n; + }; + }); + } + function bh(t) { + var e = dh(t); + return fh(function () { + return function (t) { + return [e(t)[0]]; + }; + }); + } + function yh(t, e) { + return gh(t, function (t) { + return e(t) ? [t] : []; + }); + } + function wh(t) { + return gh(t, function (t) { + return Gu.Node.collect(t); + }); + } + function Eh(t) { + return gh(t, function (t) { + return t.children; + }); + } + function Bh(t, e) { + return yh(t, function (t) { + return t.type === e; + }); + } + function Ch(t, e) { + return vh( + mh(t, function (t) { + return Gu.Node.findAncestor(t, e); + }), + ); + } + function xh(t) { + return vh( + mh(t, function (t) { + return t.parent; + }), + ); + } + function Ih(t, e, n) { + (this.info = t), (this.transform = e), (this.updater = n); + } + function Mh(t, e, n) { + return new Ju(t, e, n); + } + function Dh(r, i, o, a, s, l) { + return D(this, void 0, void 0, function () { + var e, n; + return P(this, function (t) { + switch (t.label) { + case 0: + (e = !1), (t.label = 1); + case 1: + return ( + t.trys.push([1, 3, , 4]), [4, Wu.Transform.apply(i, r.action).run()] + ); + case 2: + t.sent(); + try { + o(Wu.Node.Null); + } finally { + s && + ('string' == typeof s + ? e || i.logger.message(s) + : setTimeout(function () { + return s.call(null, i, r.context); + }, 0)); + } + return [3, 4]; + case 3: + (n = t.sent()), (e = !0); + try { + a(n); + } finally { + l && + ('string' == typeof l + ? i.logger.error(l) + : setTimeout(function () { + return l.call(null, i, r.context, n); + }, 0)); + } + return [3, 4]; + case 4: + return [2]; + } + }); + }); + } + function Sh(t, e, n) { + (this.params = t), (this.props = e), (this.transformer = n), (this.isUpdate = !1); + } + function kh(s, t, l) { + var u, + e = this; + try { + u = t.selector ? [t] : t.compile ? t.compile() : t; + } catch (t) { + return Ku.Core.Computation.reject(t); + } + return Ku.Core.computation(function () { + return D(e, void 0, void 0, function () { + var e, n, r, i, o, a; + return P(this, function (t) { + switch (t.label) { + case 0: + (e = 0), (n = u), (t.label = 1); + case 1: + if (!(e < n.length)) return [3, 8]; + (r = n[e]), (o = s.select(r.selector)), (i = 0), (o = o), (t.label = 2); + case 2: + if (!(i < o.length)) return [3, 7]; + (a = o[i]), (t.label = 3); + case 3: + return ( + t.trys.push([3, 5, , 6]), + [4, (l ? r.transform.update(s, a) : r.transform.apply(s, a)).run()] + ); + case 4: + return t.sent(), [3, 6]; + case 5: + return t.sent(), [3, 6]; + case 6: + return i++, [3, 2]; + case 7: + return e++, [3, 1]; + case 8: + return [2]; + } + }); + }); + }); + } + function Fh(t, e, n) { + for ( + var r, + i, + o, + a, + s = e.structure, + l = s.data.atoms, + u = l.residueIndex, + c = l.chainIndex, + A = l.entityIndex, + h = l.name, + p = l.authName, + d = l.id, + f = l.occupancy, + g = l.tempFactor, + m = l.elementSymbol, + v = l.altLoc, + l = s.positions, + b = l.x, + y = l.y, + w = l.z, + l = s.data.residues, + E = l.name, + B = l.authName, + C = l.seqNumber, + x = l.authSeqNumber, + I = l.insCode, + M = l.isHet, + l = s.data.chains, + U = l.asymId, + N = l.authAsymId, + P = s.data.entities.entityId, + D = -1, + S = -1, + k = -1, + F = [], + Q = [], + _ = [], + T = [], + R = 0; + R < n.length; + R++ + ) + (r = n[R]), + e.hasAtom(r) && + (D !== A[r] && ((D = A[r]), F.push((i = { index: D, entityId: P[D] }))), + S !== c[r] && + ((S = c[r]), + Q.push((o = { index: S, asymId: U[S], authAsymId: N[S], entity: i }))), + k !== u[r] && + ((k = u[r]), + _.push( + (a = { + index: k, + name: E[k], + authName: B[k], + seqNumber: C[k], + authSeqNumber: x[k], + insCode: I[k], + isHet: M[k], + chain: o, + }), + )), + T.push({ + index: r, + id: d[r], + name: h[r], + authName: p[r], + elementSymbol: m[r], + occupancy: f[r], + tempFactor: g[r], + x: b[r], + y: y[r], + z: w[r], + altLoc: v[r], + residue: a, + })); + return { + modelRef: t.ref, + moleculeId: s.id, + modelId: s.modelId, + atoms: T, + residues: _, + chains: Q, + entities: F, + }; + } + function Qh(t) { + var e = []; + return ( + 1 !== t.occupancy && e.push('occupancy ' + rc.Utils.round(t.occupancy, 2)), + t.altLoc && e.push('alt. loc ' + t.altLoc), + e.length ? ' <small>[' + e.join(', ') + ']</small>' : '' + ); + } + function _h(t) { + return ( + '<span>' + + t.authName + + ' ' + + t.chain.authAsymId + + ' ' + + t.authSeqNumber + + (null !== t.insCode ? ' i: ' + t.insCode : '') + + '</span>' + ); + } + function Th(t) { + return '1' === t.modelId + ? '<span><small>[' + t.moleculeId + ']</small></span>' + : '<span><small>[' + t.moleculeId + ':' + t.modelId + ']</small></span>'; + } + function Rh(e, n) { + return function (t) { + return n[e[t]]; + }; + } + function Uh(n, r) { + return function (t, e) { + (t = lc.Utils.Molecule.findModel(t).props.model), + (t = n(t)), + (t = C.Theme.createPalleteMapping(Rh(t.index, t.property), r)); + return C.Theme.createMapping(t, e); + }; + } + function Nh(o, a, s) { + return function (t, e) { + var n = lc.Utils.Molecule.findModel(t), + r = n.tree && n.tree.context; + if (r) { + var i = r.entityCache.get(n, 'theme-mapping-' + o); + if (i) return C.Theme.createMapping(i, e); + } + (i = n.props.model), + (n = a(i)), + (i = C.Theme.createPalleteMapping(Rh(n.index, n.property), s)); + return ( + r && r.entityCache.set(t, 'theme-mapping-' + o, i), + C.Theme.createMapping(i, e) + ); + }; + } + function Ph(t, e) { + var n, r; + return ( + e && + e.colors && + !e.colors.get('Bond') && + e.colors.get('Uniform') && + ((n = e.colors), + (e = lc.Utils.assign({}, e)), + (r = sc.Core.Utils.FastMap.create()), + (e.colors = r), + n.forEach(function (t, e) { + return r.set(e, t); + }), + r.set('Bond', e.colors.get('Uniform'))), + C.Theme.createUniform(e) + ); + } + function Lh(n, r, i) { + return function (t, e) { + (t = lc.Utils.Molecule.findModel(t).props.model), + (t = n(t)), + (t = C.Theme.createColorMapMapping(Rh(t.index, t.property), r, i)); + return C.Theme.createMapping(t, e); + }; + } + function Yh(t, e) { + var n = e.r, + r = e.g, + e = e.b; + (this.residueIndex = t.data.atoms.residueIndex), + (this.r = n), + (this.g = r), + (this.b = e); + } + function Oh(r, i) { + return function (t, e) { + var t = lc.Utils.Molecule.findModel(t).props.model, + n = (function (t, e, n) { + for ( + var r = t.data.residues.count, + i = (r = { + r: new Float32Array(r), + g: new Float32Array(r), + b: new Float32Array(r), + }).r, + o = r.g, + a = r.b, + s = e(t), + l = s.count, + u = s.residueStartIndex, + c = s.residueEndIndex, + A = uc.RainbowPalette.length - 1, + h = C.Color.fromHex(0), + p = sc.Core.Utils.FastMap.create(), + d = 0; + d < l; + d++ + ) { + var f = n(s, d), + g = c[d] - u[d]; + p.has(f) ? (p.get(f).count += g) : p.set(f, { index: 0, count: g }); + } + for ( + p.forEach(function (t) { + return (t.count = Math.max(t.count - 1, 1)); + }), + d = 0; + d < l; + d++ + ) + for ( + var m = u[d], g = c[d] - m, v = p.get(n(s, d)), b = v.count, y = 0; + y < g; + y++ + ) { + var w = (A * v.index) / b, + E = Math.floor(w), + B = Math.ceil(w); + C.Color.interpolate( + uc.RainbowPalette[E], + uc.RainbowPalette[B], + w - E, + h, + ), + (i[m + y] = h.r), + (o[m + y] = h.g), + (a[m + y] = h.b), + v.index++; + } + return { r: i, g: o, b: a }; + })(t, r, i), + t = new cc(t, n); + return C.Theme.createMapping(t, e); + }; + } + function Gh(t, e, n) { + return { + tessalation: t, + drawingType: e + ? mc.Cartoons.CartoonsModelType.AlphaTrace + : mc.Cartoons.CartoonsModelType.Default, + showDirectionCones: n, + }; + } + function zh(t, e, n) { + var r = void 0; + if (n.customMaxBondLengths) { + var i = Object.getOwnPropertyNames(n.customMaxBondLengths); + 0 < i.length && (r = hc.Core.Utils.FastMap.create()); + for (var o = 0, a = i; o < a.length; o++) { + var s = a[o]; + r.set(s, n.customMaxBondLengths[s]); + } + } + return { + tessalation: t, + bondRadius: n.bondRadius, + hideBonds: !1, + hideHydrogens: !!n.hideHydrogens, + atomRadius: (function (t, e) { + if ( + (void 0 === e.vdwScaling && + (e.vdwScaling = fc.Default.BallsAndSticksParams.vdwScaling), + void 0 === e.atomRadius && + (e.atomRadius = fc.Default.BallsAndSticksParams.atomRadius), + !e.useVDW) + ) + return ( + (n = e.atomRadius), + function () { + return n; + } + ); + var n, + r, + i, + t = pc.Utils.vdwRadiusFromElementSymbol(t); + return ( + (r = e.vdwScaling), + (i = t), + function (t) { + return r * i(t); + } + ); + })(e, n), + customMaxBondLengths: r, + }; + } + function Hh(t, e, n) { + var r = pc.Utils.Molecule.findModel(t).props.model, + i = (pc.Entity.isMoleculeModel(t) ? t.props.model.data.atoms : t.props).indices; + if (i.length) { + (o = e.params.detail), (a = i.length); + var o, + a, + s = + 'Automatic' === o + ? a < 250 + ? 5 + : a < 1e3 + ? 4 + : a < 75e3 + ? 3 + : a < 25e4 + ? 2 + : a < 6e5 + ? 1 + : 0 + : ((a = fc.DetailTypes.indexOf(o) - 1), Math.max(a, 0)); + switch (e.type) { + case 'Cartoons': + return mc.Cartoons.Model.create(t, { + model: r, + atomIndices: i, + theme: n, + queryContext: pc.Utils.Molecule.findQueryContext(t), + params: Gh(s, !1, e.params.showDirectionCone), + }); + case 'Calpha': + return mc.Cartoons.Model.create(t, { + model: r, + atomIndices: i, + theme: n, + queryContext: pc.Utils.Molecule.findQueryContext(t), + params: Gh(s, !0, e.params.showDirectionCone), + }); + case 'BallsAndSticks': + return gc.Molecule.BallsAndSticks.Model.create(t, { + model: r, + atomIndices: i, + theme: n, + params: zh(s, r, e.params), + }); + case 'VDWBalls': + return gc.Molecule.BallsAndSticks.Model.create(t, { + model: r, + atomIndices: i, + theme: n, + params: { + tessalation: s, + bondRadius: 0, + hideBonds: !0, + atomRadius: pc.Utils.vdwRadiusFromElementSymbol(r), + }, + }); + default: + return; + } + } + } + function jh(c, A, h) { + var t = this; + return pc.Task.create( + 'Molecular Surface (' + c.props.label + ')', + dc.Style.getTaskType(h), + function (u) { + return D(t, void 0, void 0, function () { + var i, o, a, s, l; + return P(this, function (t) { + switch (t.label) { + case 0: + return ( + (s = pc.Utils.Molecule.findModel(c).props.model), + (l = ( + pc.Entity.isMoleculeModel(c) ? c.props.model.data.atoms : c.props + ).indices), + (i = h.params), + [ + 4, + hc.Core.Geometry.MolecularSurface.computeMolecularSurfaceAsync({ + positions: s.positions, + atomIndices: l, + parameters: { + atomRadius: pc.Utils.vdwRadiusFromElementSymbol(s), + density: + ((n = s), + (r = l), + (e = i).automaticDensity + ? ((r = (n = pc.Utils.Molecule.getBox(n, r, 0)) + .bottomLeft), + (n = n.topRight), + (n = hc.Core.Geometry.LinearAlgebra.Vector3.sub( + n, + n, + r, + )), + 1.2 < + (r = Math.pow( + Math.pow(99, 3) / (n[0] * n[1] * n[2]), + 1 / 3, + )) + ? 1.2 + : r < 0.1 + ? 0.1 + : r) + : void 0 !== e.density + ? +e.density + : 1), + probeRadius: i.probeRadius, + smoothingIterations: i.smoothing, + interactive: !0, + }, + }).run(u), + ] + ); + case 1: + return ( + (o = t.sent()), + (a = h.theme.template.provider( + pc.Utils.Molecule.findModel(c), + dc.Theme.getProps(h.theme), + )), + [4, u.updateProgress('Creating visual...')] + ); + case 2: + return ( + t.sent(), + [ + 4, + hc.Visualization.Surface.Model.create(c, { + surface: o.surface, + theme: a, + parameters: { isWireframe: h.params.isWireframe }, + }).run(u), + ] + ); + case 3: + return ( + (s = t.sent()), + (l = 'Surface, ' + pc.Utils.round(i.probeRadius, 2) + ' â„« probe'), + [ + 2, + pc.Entity.Molecule.Visual.create(A, { + label: l, + model: s, + style: h, + isSelectable: !h.isNotSelectable, + }), + ] + ); + } + var e, n, r; + }); + }); + }, + ); + } + function Vh(t, e, n) { + (this.id = t), (this.info = Fc.Utils.assign({}, e, { traits: n })); + } + function qh(t) { + t.tree && + (_c.Event.Tree.NodeUpdated.dispatch(t.tree.context, t), + t.tree.context.currentEntity === t && + _c.Event.Entity.CurrentChanged.dispatch(t.tree.context, t)); + } + function Wh(t) { + if (t) { + for (var e, n, r = 0, i = 0, o = 0, a = t.children; o < a.length; o++) + 0 === (n = a[o].state.visibility) ? r++ : 2 === n && i++; + (e = r === t.children.length ? 0 : i === t.children.length ? 2 : 1) !== + t.state.visibility && + (_c.Tree.Node.withState(t, (n = { visibility: e })), qh(t)), + t.parent !== t && Wh(t.parent); + } + } + function Jh(t) { + var e = void 0, + n = void 0; + t.subscribe(function (t) { + n && (n.applySelection(e, 2), (e = n = void 0)), + !h.Interactivity.isEmpty(t) && + h.Entity.isVisual(t.source) && + ((n = t.source.props.model), (e = t.elements), n.applySelection(e, 1)); + }); + } + function Kh(t, o) { + t.subscribe(function (t) { + var e, n, r, i; + h.Interactivity.Molecule.isMoleculeModelInteractivity(t) + ? ((e = o), + (n = t), + (i = h.Utils.Molecule.findModel(n.source).props.model) && + ((r = n.elements), + 1 === n.elements.length && + (r = h.Utils.Molecule.getResidueIndices(i, n.elements[0])), + (r = h.Utils.Molecule.getCentroidAndRadius(i, r, oA)), + 1 === n.elements.length && + ((n = n.elements[0]), + (oA[0] = i.positions.x[n]), + (oA[1] = i.positions.y[n]), + (oA[2] = i.positions.z[n])), + e.scene.camera.focusOnPoint( + rA.Core.Geometry.LinearAlgebra.Vector3.toObj(oA), + Math.max(r, 7), + ))) + : ((i = o), + (n = t), + h.Interactivity.isEmpty(n) || + 'Visual' !== n.source.type.info.typeClass || + ((e = n.source.props.model) && + ((n = e.getBoundingSphereOfSelection(n.elements)) + ? i.scene.camera.focusOnPoint( + rA.Core.Geometry.LinearAlgebra.Vector3.toObj(n.center), + Math.max(n.radius, 7), + ) + : i.scene.camera.focusOnModel(e)))); + }); + } + function Zh(t, e, n, r, i, o, a) { + if (i.transformer === n) + try { + var s = window[a], + l = o(i.params, r); + s && void 0 !== l && s('send', 'event', e, l, t.id); + } catch (t) {} + } + function Xh(t, e) { + return t.format.name; + } + function $h(t) { + return t.url; + } + function tp(t) { + return t.queryString; + } + function ep(t, e) { + if (!pA.Tree.Node.isHidden(e)) { + e = pA.Utils.Molecule.findModel(e); + if (e) return e.props.model.id + ' $(name)$ ' + t.name; + } + } + function np(t, e) { + if (!pA.Tree.Node.isHidden(e)) { + e = pA.Utils.Molecule.findModel(e); + if (e) + return e.props.model.id + ' $(type)$ ' + t.type + ' $(radius)$ ' + t.radius; + } + } + function rp(t, e) { + e = pA.Utils.Molecule.findModel(e); + if (e) return e.props.model.id + ' $(server)$ ' + t.server; + } + function ip(t, e) { + if (!pA.Tree.Node.isHidden(e)) return t.style.type; + } + function op(t) { + return '$(format)$ ' + t.format; + } + function ap(t, e) { + return t.queryString; + } + function sp(t, e, n) { + var r = + bA.call(this, t, { + isExpanded: !1, + hideControls: !1, + collapsedControlsLayout: mA.Outside, + regionStates: {}, + }) || this; + return ( + (r.targets = e), + (r.root = n), + (r.rootState = void 0), + fA.Command.Layout.SetState.getStream(r.context).subscribe(function (t) { + return r.update(t.data); + }), + (r.expandedViewport = document.createElement('meta')), + (r.expandedViewport.name = 'viewport'), + (r.expandedViewport.content = + 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0'), + r + ); + } + (Au = F = F || {}), + (hu = Au.Visualization || (Au.Visualization = {})), + (r = hu.Primitive || (hu.Primitive = {})), + (pu = Au.Core.Geometry.LinearAlgebra), + (r.createSphereSurface = function (t) { + var t = t.tessalation, + t = new hu.THREE.IcosahedronGeometry(1, void 0 === t ? 0 : t), + e = hu.GeometryHelper.toSurface(t); + return t.dispose(), e; + }), + (r.createTubeSurface = function (t) { + var e = t.a, + n = t.b, + r = void 0 === (r = t.slices) ? 12 : r, + e = new hu.THREE.TubeGeometry( + new hu.THREE.LineCurve3( + new hu.THREE.Vector3(e[0], e[1], e[2]), + new hu.THREE.Vector3(n[0], n[1], n[2]), + ), + 2, + t.radius, + r, + ), + n = hu.GeometryHelper.toSurface(e); + return e.dispose(), n; + }), + (du = [0, 1, 0]), + (fu = pu.Matrix4.zero()), + (gu = pu.Matrix4.zero()), + (mu = pu.Matrix4.zero()), + (r.createCone = function (t) { + var e = t.a, + n = t.b, + r = t.radius, + t = void 0 === (t = t.slices) ? 12 : t, + i = pu.Vector3.distance(e, n), + r = new hu.THREE.CylinderGeometry(0, r, i, t, 1), + t = hu.GeometryHelper.toSurface(r), + r = (r.dispose(), pu.Vector3.sub(n, n, e)); + return ( + pu.Vector3.makeRotation(fu, du, r), + pu.Matrix4.fromTranslation(mu, [0, i / 2, 0]), + pu.Matrix4.fromTranslation(gu, e), + Au.Core.Geometry.Surface.transformImmediate( + t, + pu.Matrix4.mul3(gu, gu, fu, mu), + ), + Au.Core.Geometry.Surface.computeNormalsImmediate(t), + t + ); + }), + (r.createArrow = function (t) { + var e = t.id, + n = t.a, + r = t.b, + i = t.radius, + o = void 0 === (o = t.slices) ? 12 : o, + a = t.coneHeight, + t = t.coneRadius, + a = pu.Vector3.distance(n, r) - a, + s = pu.Vector3.normalize(r, pu.Vector3.sub(r, r, n)); + return [ + { + type: 'Cone', + a: (a = [n[0] + a * s[0], n[1] + a * s[1], n[2] + a * s[2]]), + b: r, + id: e, + radius: t, + slices: o, + }, + { type: 'Tube', a: n, b: a, id: e, radius: i, slices: o }, + ]; + }), + (vu = (function () { + for ( + var t = hu.GeometryHelper.toSurface(new hu.THREE.BoxGeometry(1, 1, 1)), e = 0; + e < t.vertices.length; + e += 3 + ) + t.vertices[e + 2] += 0.5; + return t; + })()), + (r.createDashes = function (t) { + var e = t.id, + n = t.a, + r = t.b, + i = t.width, + o = t.dashSize, + t = t.spaceSize, + a = pu.Vector3.distance(n, r); + if (0 === a) return []; + for ( + var s = o + (void 0 !== t ? t : o), + l = pu.Vector3.sub(pu.Vector3(), r, n), + u = (pu.Vector3.normalize(l, l), pu.Vector3.fromValues(i, i, o)), + t = pu.Vector3.fromValues(0, 0, 1), + c = pu.Vector3.makeRotation(pu.Matrix4(), t, l), + A = [], + h = (pu.Vector3.scale(l, l, s), pu.Vector3.copy(pu.Vector3(), n)), + p = 0; + p < a; + p += s + ) + a < p + o && (u = pu.Vector3.fromValues(i, i, a - p)), + A.push({ + type: 'Surface', + id: e, + surface: vu, + rotation: c, + scale: u, + translation: pu.Vector3.clone(h), + }), + pu.Vector3.add(h, h, l); + return A; + }), + (bu = F = F || {}), + (function (R) { + var U = bu.Core.Geometry.LinearAlgebra, + N = bu.Core.Geometry.Surface; + function p(T) { + var t = this; + return bu.Core.computation(function (_) { + return D(t, void 0, void 0, function () { + var e, + n, + r, + i, + o, + a, + s, + l, + u, + c, + A, + h, + p, + d, + f, + g, + m, + v, + b, + y, + w, + E, + B, + C, + x, + I, + M, + D, + S, + k, + F, + Q; + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, _.updateProgress('Building surface...')]; + case 1: + for ( + t.sent(), + e = bu.Core.Utils.FastMap.create(), + n = [], + r = 0, + i = T; + r < i.length; + r++ + ) + switch ((I = i[r]).type) { + case 'Sphere': + e.has(I.tessalation || 0) + ? n.push(e.get(I.tessalation || 0)) + : ((o = R.createSphereSurface(I)), + e.set(I.tessalation || 0, o), + n.push(o)); + break; + case 'Tube': + (o = R.createTubeSurface(I)), n.push(o); + break; + case 'Cone': + n.push(R.createCone(I)); + break; + case 'Surface': + n.push(I.surface); + } + for ( + a = { vertexCount: 0, triangleCount: 0 }, s = 0, l = n; + s < l.length; + s++ + ) + (I = l[s]), + (a.vertexCount += I.vertexCount), + (a.triangleCount += I.triangleCount); + for ( + u = new Float32Array(3 * a.vertexCount), + c = new Float32Array(3 * a.vertexCount), + A = new Uint32Array(3 * a.triangleCount), + h = new Int32Array(a.vertexCount), + g = f = d = p = 0, + m = U.Vector3.zero(), + v = U.Matrix4.zero(), + b = U.Matrix4.zero(), + y = U.Matrix4.zero(), + w = U.Matrix4.zero(), + C = B = 0, + x = T; + C < x.length; + C++ + ) { + switch (((I = x[C]), (M = n[B++]), (D = (p / 3) | 0), I.type)) { + case 'Sphere': + for ( + E = M.vertices, + U.Matrix4.fromScaling(v, [I.radius, I.radius, I.radius]), + U.Matrix4.fromTranslation(b, I.center), + U.Matrix4.mul(w, b, v), + F = 0, + Q = 3 * M.vertexCount; + F < Q; + F += 3 + ) + (m[0] = E[F]), + (m[1] = E[F + 1]), + (m[2] = E[F + 2]), + U.Vector3.transformMat4(m, m, w), + (u[p++] = m[0]), + (u[p++] = m[1]), + (u[p++] = m[2]); + for (S = M.normals, F = 0, Q = S.length; F < Q; F++) + c[d++] = S[F]; + break; + case 'Tube': + case 'Cone': + for (E = M.vertices, F = 0, Q = E.length; F < Q; F++) + u[p++] = E[F]; + for (S = M.normals, F = 0, Q = S.length; F < Q; F++) + c[d++] = S[F]; + break; + case 'Surface': + if ( + (M.normals || N.computeNormalsImmediate(M), + (E = M.vertices), + I.rotation || I.scale || I.translation) + ) { + for ( + U.Matrix4.fromScaling(v, I.scale || [1, 1, 1]), + U.Matrix4.fromTranslation( + b, + I.translation || [0, 0, 0], + ), + I.rotation + ? U.Matrix4.copy(y, I.rotation) + : U.Matrix4.fromIdentity(y), + U.Matrix4.mul3(w, b, y, v), + F = 0, + Q = E.length; + F < Q; + F += 3 + ) + (m[0] = E[F]), + (m[1] = E[F + 1]), + (m[2] = E[F + 2]), + U.Vector3.transformMat4(m, m, w), + (u[p++] = m[0]), + (u[p++] = m[1]), + (u[p++] = m[2]); + for ( + U.Matrix4.mul(w, y, v), + S = M.normals, + F = 0, + Q = S.length; + F < Q; + F += 3 + ) + (m[0] = S[F]), + (m[1] = S[F + 1]), + (m[2] = S[F + 2]), + U.Vector3.transformMat4(m, m, w), + U.Vector3.normalize(m, m), + (c[d++] = m[0]), + (c[d++] = m[1]), + (c[d++] = m[2]); + } else { + for (F = 0, Q = E.length; F < Q; F++) u[p++] = E[F]; + for (S = M.normals, F = 0, Q = S.length; F < Q; F++) + c[d++] = S[F]; + } + } + for (k = M.triangleIndices, F = 0, Q = k.length; F < Q; F++) + A[f++] = D + k[F]; + for (F = 0, Q = M.vertexCount; F < Q; F++) h[g++] = I.id; + } + return [ + 2, + { + vertices: u, + vertexCount: a.vertexCount, + triangleIndices: A, + triangleCount: a.triangleCount, + normals: c, + annotation: h, + }, + ]; + } + }); + }); + }); + } + function t() { + this.shapes = []; + } + (t.prototype.add = function (t) { + return this.shapes.push(t), this; + }), + (t.prototype.buildSurface = function () { + for (var t = !1, e = 0, n = this.shapes; e < n.length; e++) + if ('DashedLine' === (r = n[e]).type || 'Arrow' === r.type) { + t = !0; + break; + } + if (t) { + for (var r, i = [], o = 0, a = this.shapes; o < a.length; o++) + if ('DashedLine' === (r = a[o]).type) + for (var s = 0, l = R.createDashes(r); s < l.length; s++) { + var u = l[s]; + i[i.length] = u; + } + else if ('Arrow' === r.type) + for (var c = 0, A = R.createArrow(r); c < A.length; c++) { + var h = A[c]; + i[i.length] = h; + } + else i[i.length] = r; + return p(i); + } + return p(this.shapes); + }), + (t.create = function () { + return new t(); + }), + (R.Builder = t); + })( + (n = bu.Visualization || (bu.Visualization = {})).Primitive || + (n.Primitive = {}), + ), + (((e = F = F || {}).Bootstrap || (e.Bootstrap = {})).VERSION = { + number: '1.4.4', + date: 'May 31 2018', + }), + (t = F = F || {}), + ((r = t.Bootstrap || (t.Bootstrap = {})).Immutable = E), + (r.Rx = t.Core.Rx), + (r.Zlib = Ir), + (n = (n = F = F || {}).Bootstrap || (n.Bootstrap = {})), + ((n = (yu = n.Utils || (n.Utils = {})).LRUCache || (yu.LRUCache = {})).entry = + XA), + (n.create = function (t) { + return { entries: new yu.LinkedList(), capacity: Math.max(1, t) }; + }), + (n.get = function (t, e) { + for (var n = t.entries.first; n; n = n.next) + if (n.key === e) return t.entries.remove(n), t.entries.addLast(n), n.data; + }), + (n.set = function (t, e, n) { + return ( + t.entries.count >= t.capacity && t.entries.remove(t.entries.first), + t.entries.addLast(XA(e, n)), + n + ); + }), + (wu = F = F || {}), + (Eu = wu.Bootstrap || (wu.Bootstrap = {})), + (e = Eu.Utils || (Eu.Utils = {})), + ((E = Bu = e.DataCompressionMethod || (e.DataCompressionMethod = {}))[ + (E.None = 0) + ] = 'None'), + (E[(E.Gzip = 1)] = 'Gzip'), + (e.readStringFromFile = function (t) { + return eh(t, !1); + }), + (e.readArrayBufferFromFile = function (t) { + return eh(t, !0); + }), + (e.readFromFile = function (t, e) { + return eh(t, 'Binary' === e); + }), + (e.ajaxGetString = function (t, e) { + return rh(e, t, !1, !1); + }), + (e.ajaxGetArrayBuffer = function (t, e) { + return rh(e, t, !0, !1); + }), + (e.ajaxGet = function (t) { + return rh(t.title, t.url, 'Binary' === t.type, t.compression === Bu.Gzip); + }), + (nh.get = function () { + return this.pool.length ? this.pool.pop() : new XMLHttpRequest(); + }), + (nh.emptyFunc = function () {}), + (nh.deposit = function (t) { + this.pool.length < this.poolSize && + ((t.onabort = nh.emptyFunc), + (t.onerror = nh.emptyFunc), + (t.onload = nh.emptyFunc), + (t.onprogress = nh.emptyFunc), + this.pool.push(t)); + }), + (nh.pool = []), + (nh.poolSize = 15), + (Cu = nh), + (xu = F = F || {}), + (t = + (t = (t = xu.Bootstrap || (xu.Bootstrap = {})).Utils || (t.Utils = {})).Query || + (t.Query = {})), + (Iu = + /^\s*([1-9][0-9]*)\s+([_.;:""&<>()/\{}'`~!@#$%A-Za-z0-9*|+-]+)(?:\s+i[:]([.]|[a-zA-Z0-9]))?(?:\s+e[:]([.]|[a-zA-Z0-9]+))?/), + (t.parseAuthResidueId = function (t, e) { + return ( + (t = t + .split((e = void 0 === e ? ',' : e)) + .map(function (t) { + var e, n, r; + if ((t = t.match(Iu))) + return ( + (e = 0 | +t[1]), + (n = ih(t[2])), + (r = ih(t[3])), + { entityId: ih(t[4]), authSeqNumber: e, authAsymId: n, insCode: r } + ); + }) + .filter(function (t) { + return !!t; + })), + xu.Core.Structure.Query.Builder.toQuery( + (e = xu.Core.Structure.Query).residues.apply(e, t), + ) + ); + }), + (function (t) { + var e; + n.prototype.bind = function (t) { + return this.isError ? this : t(this.value); + }; + function n(t, e, n) { + (this.isError = t), (this.value = e), (this.error = n); + } + (t.ValueOrError = n), + ((e = t.ValueOrError || (t.ValueOrError = {})).error = function (t) { + return new e(!0, void 0, t); + }), + (e.value = function (t) { + return new e(!0, t); + }); + })( + (r = + (r = (r = F = F || {}).Bootstrap || (r.Bootstrap = {})).Utils || + (r.Utils = {})).Query || (r.Query = {}), + ), + (function (t) { + function e() { + (this.count = 0), (this.first = null), (this.last = null); + } + (e.prototype.addFirst = function (t) { + (t.inList = !0), + this.first && (this.first.previous = t), + (t.next = this.first), + (this.first = t), + this.count++; + }), + (e.prototype.addLast = function (t) { + null != this.last && (this.last.next = t), + (t.previous = this.last), + (this.last = t), + null == this.first && (this.first = t), + (t.inList = !0), + this.count++; + }), + (e.prototype.remove = function (t) { + t.inList && + ((t.inList = !1), + null !== t.previous + ? (t.previous.next = t.next) + : null === t.previous && (this.first = t.next), + null !== t.next + ? (t.next.previous = t.previous) + : null === t.next && (this.last = t.previous), + (t.next = null), + (t.previous = null), + this.count--); + }), + (t.LinkedList = e); + })( + (n = (n = F = F || {}).Bootstrap || (n.Bootstrap = {})).Utils || (n.Utils = {}), + ), + ((E = + (E = (E = F = F || {}).Bootstrap || (E.Bootstrap = {})).Utils || + (E.Utils = {})).formatTime = function (t) { + var e = t.getHours(), + n = t.getMinutes(), + t = t.getSeconds(); + return e + ':' + oh(n) + ':' + oh(t); + }), + (E.round = function (t, e) { + return (e = Math.pow(10, e)), Math.round(e * t) / e; + }), + (E.formatProgress = function (t) { + if (t.isIndeterminate) return t.message; + var e = ((100 * t.current) / t.max).toFixed(2); + return t.message + ' ' + e + '%'; + }), + (E.generateUUID = function () { + var n = new Date().getTime(); + return ( + window.performance && + 'function' == typeof window.performance.now && + (n += performance.now()), + 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (t) { + var e = (n + 16 * Math.random()) % 16 | 0; + return (n = Math.floor(n / 16)), ('x' == t ? e : (3 & e) | 8).toString(16); + }) + ); + }), + (Mu = F = F || {}), + (e = (e = Mu.Bootstrap || (Mu.Bootstrap = {})).Utils || (e.Utils = {})), + (Du = void 0), + (e.vdwRadiusFromElementSymbol = function (t) { + return ( + (Du = + Du || + (function () { + var t, + e = { + H: 1.1, + He: 1.4, + Li: 1.81, + Be: 1.53, + B: 1.92, + C: 1.7, + N: 1.55, + O: 1.52, + F: 1.47, + Ne: 1.54, + Na: 2.27, + Mg: 1.73, + Al: 1.84, + Si: 2.1, + P: 1.8, + S: 1.8, + Cl: 1.75, + Ar: 1.88, + K: 2.75, + Ca: 2.31, + Sc: 2.16, + Ti: 1.87, + V: 1.79, + Cr: 1.89, + Mn: 1.97, + Fe: 1.94, + Co: 1.92, + Ni: 1.84, + Cu: 1.86, + Zn: 2.1, + Ga: 1.87, + Ge: 2.11, + As: 1.85, + Se: 1.9, + Br: 1.83, + Kr: 2.02, + Rb: 3.03, + Sr: 2.49, + Y: 2.19, + Zr: 1.86, + Nb: 2.07, + Mo: 2.09, + Tc: 2.09, + Ru: 2.07, + Rh: 1.95, + Pd: 2.02, + Ag: 2.03, + Cd: 2.3, + In: 1.93, + Sn: 2.17, + Sb: 2.06, + Te: 2.06, + I: 1.98, + Xe: 2.16, + Cs: 3.43, + Ba: 2.68, + La: 2.4, + Ce: 2.35, + Pr: 2.39, + Nd: 2.29, + Pm: 2.36, + Sm: 2.29, + Eu: 2.33, + Gd: 2.37, + Tb: 2.21, + Dy: 2.29, + Ho: 2.16, + Er: 2.35, + Tm: 2.27, + Yb: 2.42, + Lu: 2.21, + Hf: 2.12, + Ta: 2.17, + W: 2.1, + Re: 2.17, + Os: 2.16, + Ir: 2.02, + Pt: 2.09, + Au: 2.17, + Hg: 2.09, + Tl: 1.96, + Pb: 2.02, + Bi: 2.07, + Po: 1.97, + At: 2.02, + Rn: 2.2, + Fr: 3.48, + Ra: 2.83, + Ac: 2.6, + Th: 2.37, + Pa: 2.43, + U: 2.4, + Np: 2.21, + Pu: 2.43, + Am: 2.44, + Cm: 2.45, + Bk: 2.44, + Cf: 2.45, + Es: 2.45, + Fm: 2.45, + Md: 2.46, + No: 2.46, + Lr: 2.46, + }, + n = Mu.Core.Utils.FastMap.create(); + for (t in e) + n.set(t, e[t]), + n.set(t.toUpperCase(), e[t]), + n.set(t.toLowerCase(), e[t]); + return n; + })()), + (e = t.data.atoms.elementSymbol), + (n = Du), + function (t) { + t = n.get(e[t]); + return void 0 !== t ? t : 1; + } + ); + var e, n; + }), + (Su = F = F || {}), + (t = Su.Bootstrap || (Su.Bootstrap = {})), + (ku = t.Utils || (t.Utils = {})), + (Fu = Object.prototype.hasOwnProperty), + (ku.shallowClone = ah), + (ku.shallowEqual = function (t, e) { + if (!t) return !e; + if (!e) return !1; + var n = Object.keys(t); + if (Object.keys(e).length !== n.length) return !1; + for (var r = 0, i = n; r < i.length; r++) { + var o = i[r]; + if (!Fu.call(t, o) || t[o] !== e[o]) return !1; + } + return !0; + }), + (ku.deepEqual = function t(e, n) { + if (!e) return !n; + if (!n) return !1; + var r = Object.keys(e); + if (Object.keys(n).length !== r.length) return !1; + for (var i = 0, o = r; i < o.length; i++) { + var a = o[i]; + if (!Fu.call(e, a)) return !1; + var s = e[a], + a = n[a]; + if ('object' == typeof s && 'object' == typeof a) { + if (!t(s, a)) return !1; + } else if (s !== a) return !1; + } + return !0; + }), + (ku.assign = + Object.assign || + function (t) { + for (var e = 1; e < arguments.length; e++) + for (var n = arguments[e], r = 0, i = Object.keys(n); r < i.length; r++) { + var o = i[r]; + Fu.call(n, o) && (t[o] = n[o]); + } + return t; + }), + (ku.merge = function (t) { + for (var e = t, n = 1; n < arguments.length; n++) + if ( + arguments[n] && + (e = (function (t, e) { + for (var n = !1, r = 0, i = Object.keys(e); r < i.length; r++) { + var o = i[r]; + if (Fu.call(e, o) && e[o] !== t[o]) { + n = !0; + break; + } + } + return n ? ku.assign(ah(t), e) : t; + })(t, arguments[n])) !== t + ) { + for (var r = n + 1; r < arguments.length; r++) + e = ku.assign(e, arguments[r]); + break; + } + return e; + }), + (r = F = F || {}), + (function (t) { + (e.prototype.dispatch = function (t) { + this.LOG_DISPATCH_STREAM && + console.log(t.type.name, e.Lane[t.type.lane], t.data), + this.lanes[t.type.lane].onNext(t); + }), + (e.prototype.schedule = function (t, e, n) { + return ( + void 0 === n && (n = 1e3 / 31), + setTimeout(function () { + if (e) + try { + t.call(null); + } catch (t) { + e.call(null, '' + t); + } + else t.call(null); + }, n) + ); + }), + (e.prototype.getStream = function (e) { + return this.lanes[e.lane].filter(function (t) { + return t.type === e; + }); + }), + (e.prototype.finished = function () { + this.lanes.forEach(function (t) { + return t.onCompleted(); + }); + }); + function e() { + (this.LOG_DISPATCH_STREAM = !1), (this.lanes = []); + for (var t = 0; t <= e.Lane.Task; t++) this.lanes.push(new Qu.Rx.Subject()); + } + (t.Dispatcher = e), + ((t = (t = t.Dispatcher || (t.Dispatcher = {})).Lane || (t.Lane = {}))[ + (t.Slow = 0) + ] = 'Slow'), + (t[(t.Fast = 1)] = 'Fast'), + (t[(t.Log = 2)] = 'Log'), + (t[(t.Busy = 3)] = 'Busy'), + (t[(t.Transformer = 4)] = 'Transformer'), + (t[(t.Task = 5)] = 'Task'); + })((Qu = r.Bootstrap || (r.Bootstrap = {})).Service || (Qu.Service = {})), + (n = F = F || {}), + (function (t) { + (e.prototype.log = function (t) { + _u.Event.Log.dispatch(this.context, t); + }), + (e.prototype.message = function (t) { + this.log({ type: e.EntryType.Message, timestamp: new Date(), message: t }); + }), + (e.prototype.error = function (t) { + this.log({ type: e.EntryType.Error, timestamp: new Date(), message: t }); + }), + (e.prototype.warning = function (t) { + this.log({ type: e.EntryType.Warning, timestamp: new Date(), message: t }); + }), + (e.prototype.info = function (t) { + this.log({ type: e.EntryType.Info, timestamp: new Date(), message: t }); + }); + function e(t) { + this.context = t; + } + (t.Logger = e), + ((t = (t = t.Logger || (t.Logger = {})).EntryType || (t.EntryType = {}))[ + (t.Message = 0) + ] = 'Message'), + (t[(t.Error = 1)] = 'Error'), + (t[(t.Warning = 2)] = 'Warning'), + (t[(t.Info = 3)] = 'Info'); + })((_u = n.Bootstrap || (n.Bootstrap = {})).Service || (_u.Service = {})), + (E = (E = F = F || {}).Bootstrap || (E.Bootstrap = {})).Service || + (E.Service = {}), + (function (n) { + var i = Tu.Core.Computation; + Object.defineProperty(e.prototype, 'id', { + get: function () { + return this.info.id; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(e.prototype, 'reportTime', { + get: function () { + return this.info.reportTime; + }, + enumerable: !0, + configurable: !0, + }), + (e.prototype.run = function (t) { + return this.runWithContext(t).result; + }), + (e.prototype.runWithContext = function (t) { + return new e.Running(t, this.computation, this.info); + }), + (e.prototype.setReportTime = function (t) { + return (this.info.reportTime = t), this; + }); + function e(t, e, n) { + (this.name = t), + (this.type = e), + (this.computation = n), + (this.info = { id: r++, name: t, type: e, reportTime: !1 }); + } + n.Task = e; + var r = 0; + !(function (r) { + function t(t, e, n) { + (this.context = t), (this.computation = e), (this.info = n), this.run(); + } + (r.__DEBUG_MODE__ = !1), + (t.prototype.tryAbort = function () { + this.computationCtx.requestAbort(); + }), + (t.prototype.progressUpdated = function (t) { + n.Event.Task.StateUpdated.dispatch(this.context, { + taskId: this.info.id, + type: this.info.type, + name: this.info.name, + message: n.Utils.formatProgress(t), + abort: t.requestAbort, + }); + }), + (t.prototype.resolved = function () { + try { + var t; + this.context.performance.end('task' + this.info.id), + this.info.reportTime && + ((t = this.context.performance.time('task' + this.info.id)), + 'Silent' !== this.info.type && + this.context.logger.info( + this.info.name + + ' finished in ' + + Tu.Core.Utils.PerformanceMonitor.format(t) + + '.', + )); + } finally { + n.Event.Task.Completed.dispatch(this.context, this.info.id); + } + }), + (t.prototype.rejected = function (t) { + this.context.performance.end('task' + this.info.id), + this.context.performance.formatTime('task' + this.info.id), + r.__DEBUG_MODE__ && console.error(t); + try { + 'Silent' === this.info.type + ? t.warn + ? this.context.logger.warning( + 'Warning (' + this.info.name + '): ' + t.message, + ) + : console.error('Error (' + this.info.name + ')', t) + : t.warn + ? this.context.logger.warning( + 'Warning (' + this.info.name + '): ' + t.message, + ) + : 0 <= ('' + t).indexOf('Aborted') + ? this.context.logger.info(this.info.name + ': Aborted.') + : this.context.logger.error( + 'Error (' + this.info.name + '): ' + t, + ); + } catch (t) { + console.error(t); + } finally { + n.Event.Task.Completed.dispatch(this.context, this.info.id); + } + }), + (t.prototype.run = function () { + var e = this; + (this.computationCtx = i.createContext()), + this.computationCtx.progress.subscribe(function (t) { + return e.progressUpdated(t); + }), + n.Event.Task.Started.dispatch(this.context, this.info), + this.context.performance.start('task' + this.info.id), + (this.result = this.computation.run(this.computationCtx)), + this.result + .then(function () { + return e.resolved(); + }) + .catch(function (t) { + return e.rejected(t); + }); + }), + (r.Running = t), + (r.create = function (t, e, n) { + return new r(t, e, Tu.Core.computation(n)); + }), + (r.resolve = function (t, e, n) { + return new r(t, e, i.resolve(n)); + }), + (r.reject = function (t, e, n) { + return new r(t, e, i.reject(n)); + }), + (r.fromComputation = function (t, e, n) { + return new r(t, e, n); + }), + (r.isPromise = function (t) { + return t.then && t.catch; + }); + })(n.Task || (n.Task = {})); + })((Tu = F = F || {}).Bootstrap || (Tu.Bootstrap = {})), + (e = + (e = (e = F = F || {}).Bootstrap || (e.Bootstrap = {})).Event || + (e.Event = {})), + (Ru = { + dispatch: function (t, e) { + t.dispatcher.dispatch({ type: this, data: e }); + }, + getStream: function (t) { + return t.dispatcher.getStream(this); + }, + }), + (e.create = function (t, e) { + return Object.create(Ru, { + name: { writable: !1, configurable: !1, value: t }, + lane: { writable: !1, configurable: !1, value: e }, + }); + }), + (t = (t = F = F || {}).Bootstrap || (t.Bootstrap = {})), + (r = t.Event || (t.Event = {})), + (t = t.Service.Dispatcher.Lane), + (r.Log = r.create('bs.Log', t.Log)), + ((n = r.Common || (r.Common = {})).LayoutChanged = r.create( + 'bs.Common.LayoutChanged', + t.Slow, + )), + (n.ComponentsChanged = r.create('bs.Common.ComponentsChanged', t.Slow)), + ((n = r.Task || (r.Task = {})).Started = r.create('bs.Tasks.Started', t.Task)), + (n.Completed = r.create('bs.Tasks.Completed', t.Task)), + (n.StateUpdated = r.create('bs.Tasks.StateUpdated', t.Busy)), + ((n = r.Tree || (r.Tree = {})).NodeUpdated = r.create( + 'bs.Tree.NodeUpdated', + t.Slow, + )), + (n.NodeAdded = r.create('bs.Tree.NodeAdded', t.Slow)), + (n.NodeRemoved = r.create('bs.Tree.NodeRemoved', t.Slow)), + (n.TransformStarted = r.create('bs.Tree.TransformStarted', t.Slow)), + (n.TransformFinished = r.create('bs.Tree.TransformFinished', t.Slow)), + (n.TransformerApply = r.create('bs.Tree.TransformerApplied', t.Transformer)), + ((r.Entity || (r.Entity = {})).CurrentChanged = r.create( + 'bs.Entity.CurrentChanged', + t.Slow, + )), + ((r.Interactivity || (r.Interactivity = {})).Highlight = r.create( + 'bs.Visuals.HoverElement', + t.Fast, + )), + ((n = r.Visual || (r.Visual = {})).VisualHoverElement = r.create( + 'bs.Visual.HoverElement', + t.Fast, + )), + (n.VisualSelectElement = r.create('bs.Visual.SelectElement', t.Fast)), + (n.CameraChanged = r.create('bs.Visual.CameraChanged', t.Fast)), + ((n = r.Molecule || (r.Molecule = {})).ModelHighlight = r.create( + 'bs.Molecule.ModelHighlight', + t.Fast, + )), + (n.ModelSelect = r.create('bs.Molecule.ModelSelect', t.Fast)), + (E = F = F || {}), + (e = E.Bootstrap || (E.Bootstrap = {})), + (n = e.Command || (e.Command = {})), + (r = e.Service.Dispatcher.Lane), + (e = e.Event.create), + ((t = n.Tree || (n.Tree = {})).RemoveNode = e('bs.cmd.Tree.RemoveNode', r.Slow)), + (t.ApplyTransform = e('bs.cmd.Tree.ApplyTransform', r.Slow)), + ((t = n.Entity || (n.Entity = {})).SetCurrent = e( + 'bs.cmd.Entity.SetCurrentNode', + r.Slow, + )), + (t.ToggleExpanded = e('bs.cmd.Entity.ToggleExpanded', r.Slow)), + (t.SetVisibility = e('bs.cmd.Entity.SetVisibility', r.Slow)), + (t.Focus = e('bs.cmd.Entity.Focus', r.Slow)), + (t.Highlight = e('bs.cmd.Entity.Highlight', r.Slow)), + ((t = n.Layout || (n.Layout = {})).SetState = E.Bootstrap.Event.create( + 'lm.cmd.Layout.SetState', + r.Slow, + )), + (t.SetViewportOptions = e('bs.cmd.Layout.SetViewportOptions', r.Slow)), + ((t = n.Molecule || (n.Molecule = {})).FocusQuery = e( + 'bs.cmd.Molecule.FocusQuery', + r.Slow, + )), + (t.Highlight = e('bs.cmd.Molecule.Highlight', r.Slow)), + (t.CreateSelectInteraction = e( + 'bs.cmd.Molecule.CreateSelectInteraction', + r.Slow, + )), + ((t = n.Visual || (n.Visual = {})).ResetScene = e( + 'bs.cmd.Visual.ResetScene', + r.Slow, + )), + (t.ResetTheme = e('bs.cmd.Visual.ResetTheme', r.Slow)), + (t.UpdateBasicTheme = e('bs.cmd.Visual.UpdateBasicTheme', r.Slow)), + ((t = n.Toast || (n.Toast = {})).Show = e('bs.cmd.Toast.Show', r.Slow)), + (t.Hide = e('bs.cmd.Toast.Hide', r.Slow)), + (Uu = F = F || {}), + (Nu = Uu.Bootstrap || (Uu.Bootstrap = {})), + ((Pu = Nu.Tree || (Nu.Tree = {})).create = function (t, e) { + return ( + (t = { + version: 0, + refs: Uu.Core.Utils.FastMap.create(), + nodes: Uu.Core.Utils.FastSet.create(), + root: e, + context: t, + }), + ((e.parent = e).tree = t) + ); + }), + (Pu.add = function (t) { + if (!t.parent) throw 'Cannot add a node without a parent.'; + var e = t.parent.tree; + Pu.Node.forEach(t, function (t) { + return (t.tree = e); + }), + Pu.Node.addChild(t.parent, t), + sh(t), + Nu.Entity.nodeUpdated(t.parent), + lh(t); + }), + (Pu.update = function (e, t, n) { + Pu.Node.replaceChild(t.parent, t, n), + uh(e.context, t), + Pu.Node.forEach(n, function (t) { + return (t.tree = e); + }), + sh(n); + for (var r = 0, i = n.children; r < i.length; r++) lh(i[r]); + Nu.Entity.nodeUpdated(n.parent), + Nu.Event.Tree.NodeAdded.dispatch(e.context, n), + e.context.currentEntity === t && Nu.Entity.setCurrent(n); + }), + (Pu.updatePath = function (t) { + if (t) { + for (var e = void 0; t !== t.parent; ) + (e = t), Pu.Node.update(t), (t = t.parent); + e && Nu.Event.Tree.NodeUpdated.dispatch(t.tree.context, e); + } + }), + (Pu.remove = function t(e) { + if (e && e.tree) + if (e.parent === e) { + var n = e.tree, + r = n.root.children; + (n.root.children = []), + Pu.Node.update(n.root), + Nu.Entity.nodeUpdated(n.root), + n.refs.clear(); + for (var i = 0, o = r; i < o.length; i++) { + var a = o[i]; + uh(n.context, a); + } + Nu.Command.Entity.SetCurrent.dispatch(n.context, n.root); + } else { + var r = Pu.Node.isHidden(e), + s = e.index, + l = e.parent, + u = e.tree.context; + if ((Pu.Node.removeChild(l, e), Nu.Entity.nodeUpdated(l), uh(u, e) && !r)) { + for (var c = !1, A = s; 0 <= A; A--) + if (l.children[A] && !Pu.Node.isHidden(l.children[A])) { + Nu.Command.Entity.SetCurrent.dispatch(u, l.children[A]), (c = !0); + break; + } + c || Nu.Command.Entity.SetCurrent.dispatch(u, l); + } + e.transform.props.isBinding && !l.children.length && t(e.parent); + } + }), + (E = F = F || {}), + ((E = + (E = (Lu = E.Bootstrap || (E.Bootstrap = {})).Tree || (Lu.Tree = {})).Node || + (E.Node = {})).Null = {}), + (E.is = ch), + (E.hasAncestor = function (t, e) { + if (!e) return !1; + for (;;) { + if (t === e) return !0; + if (!(t = t.parent) || t === t.parent) return !1; + } + }), + (E.findAncestor = function (t, e) { + if (t) + for (var n = t.parent; ; ) { + if (ch(n, e)) return n; + if ((n = n.parent).parent === n) return; + } + }), + (E.findClosestNodeOfType = function (t, e) { + if (t) + for (var n = t; ; ) { + if (0 <= e.indexOf(n.type)) return n; + if ((n = n.parent).parent === n) return 0 <= e.indexOf(n.type) ? n : void 0; + } + }), + (Yu = 0), + (E.createId = function () { + return Yu++; + }), + (E.update = Ah), + (E.withProps = function (t, e) { + return Lu.Utils.merge(t.props, e) === t.props ? t : Ah(t); + }), + (E.withState = function (t, e) { + return (e = Lu.Utils.merge(t.state, e)) === t.state + ? t + : ((t.state = e), Ah(t)); + }), + (E.addChild = function (t, e) { + return (e.index = t.children.length), t.children.push(e), Ah(t); + }), + (E.removeChild = hh), + (E.replaceChild = function (t, e, n) { + return n ? ((n.index = e.index), (t.children[n.index] = n), Ah(t)) : hh(t, e); + }), + (E.forEach = ph), + (E.forEachPreorder = function (t, e) { + e(t); + for (var n = 0, r = t.children; n < r.length; n++) ph(r[n], e); + }), + (E.collect = function (t) { + var e = []; + return ( + ph(t, function (t) { + return e.push(t); + }), + e + ); + }), + (E.isHidden = function (t) { + if (t.isHidden) return !0; + var e = t.parent; + if (!e) return t.isHidden; + for (; e.parent !== e; ) { + if (e.isHidden) return !0; + if (!(e = e.parent)) return !1; + } + return !1; + }), + (Ou = F = F || {}), + (n = Ou.Bootstrap || (Ou.Bootstrap = {})), + (Gu = n.Tree || (n.Tree = {})), + ((zu = Gu.Selection || (Gu.Selection = {})).select = function (t, e) { + return dh(t)(e); + }), + (zu.compile = dh), + ((ju = Hu = zu.Helpers || (zu.Helpers = {})).BuilderPrototype = {}), + (ju.registerModifier = function (t, n) { + ju.BuilderPrototype[t] = function () { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + return n.call.apply(n, [void 0, this].concat(t)); + }; + }), + (zu.root = function () { + return fh(function () { + return function (t) { + return [t.root]; + }; + }); + }), + (zu.byRef = function () { + for (var l = [], t = 0; t < arguments.length; t++) l[t] = arguments[t]; + return fh(function () { + return function (t) { + for (var e = [], n = 0, r = l; n < r.length; n++) { + var i = r[n], + i = t.refs.get(i); + if (i) + for (var o = 0, a = i; o < a.length; o++) { + var s = a[o]; + e.push(s); + } + } + return e; + }; + }); + }), + (zu.byValue = function () { + for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; + return fh(function () { + return function (t) { + return e; + }; + }); + }), + Hu.registerModifier('flatMap', gh), + (zu.flatMap = gh), + Hu.registerModifier('mapEntity', mh), + (zu.mapEntity = mh), + Hu.registerModifier('unique', vh), + (zu.unique = vh), + Hu.registerModifier('first', bh), + (zu.first = bh), + Hu.registerModifier('filter', yh), + (zu.filter = yh), + Hu.registerModifier('subtree', wh), + (zu.subtree = wh), + Hu.registerModifier('children', Eh), + (zu.children = Eh), + Hu.registerModifier('ofType', Bh), + (zu.ofType = Bh), + Hu.registerModifier('ancestorOfType', Ch), + (zu.ancestorOfType = Ch), + Hu.registerModifier('parent', xh), + (zu.parent = xh), + (Vu = F = F || {}), + (qu = Vu.Bootstrap || (Vu.Bootstrap = {})), + (Wu = qu.Tree || (qu.Tree = {})), + (t = Wu.Transformer || (Wu.Transformer = {})), + (Ih.prototype.getTarget = function (t) { + var e = this.info; + return e.from.length ? Wu.Node.findClosestNodeOfType(t, e.from) : t; + }), + (Ih.prototype.checkTypes = function (t, e) { + if (e.transformer !== this) + return ( + 'The transform is calling an invalid transformer (got ' + + e.transformer.info.name + + ', expected ' + + this.info.name + + ')' + ); + e = this.info; + return e.from.length && e.from.indexOf(t.type) < 0 + ? 'Transform (' + + e.name + + "): type error, expected '" + + e.from + .map(function (t) { + return t.info.name; + }) + .join('/') + + "', got '" + + t.type.info.name + + "'." + : void 0; + }), + (Ih.prototype.validateParams = function (t) { + var e = this.info; + if (e.validateParams) { + e = e.validateParams(t.params); + if (e && 0 < e.length) return 'Invalid params: ' + e.join(', ') + '.'; + } + }), + (Ih.prototype.validate = function (t, e) { + var n = this.info; + if (!t) + return qu.Task.reject( + n.name, + 'Normal', + 'Could not find a suitable node to apply the transformer to.', + ); + t = this.checkTypes(t, e); + if (t) return qu.Task.reject(n.name, 'Normal', t); + t = this.validateParams(e); + return t ? qu.Task.reject(n.name, 'Normal', t) : void 0; + }), + (Ih.prototype.apply = function (t, e, n) { + if (this.info.isComposed) return this.transform(t, e, n); + var e = this.getTarget(e), + r = this.validate(e, n); + return ( + r || + (qu.Event.Tree.TransformerApply.dispatch(t, { a: e, t: n }), + this.transform(t, e, n)) + ); + }), + (Ih.prototype.update = function (t, e, n) { + var r = e.parent; + if (!this.info.isComposed || this.updater) { + if (this.updater) { + var i = this.validateParams(n); + if (i) return qu.Task.reject(this.info.name, 'Normal', i); + i = this.updater(t, e, n); + if (i) return i; + } + qu.Event.Tree.TransformerApply.dispatch(t, { a: e.parent, t: n }); + } + return this.transform(t, r, n); + }), + (Ih.prototype.create = function (t, e) { + return Wu.Transform.create(t, e || {}, this); + }), + (Ju = Ih), + (t.create = Mh), + (t.internal = function (t, e, n, r) { + return Mh( + { + id: t, + name: t, + description: '', + from: e, + to: n, + validateParams: function () {}, + defaultParams: function () { + return {}; + }, + }, + r, + ); + }), + (t.action = function (t, o, a, s) { + return Mh(t, function (n, r, i) { + return qu.Task.create(t.name, 'Background', function (t) { + return new Vu.Promise(function (t, e) { + try { + Dh({ action: o(n, r, i), context: void 0 }, n, t, e, a, s); + } catch (t) { + e(t); + } + }); + }); + }); + }), + (t.actionWithContext = function (t, i, s, l) { + return Mh(t, function (a, n, r) { + return qu.Task.create(t.name, 'Background', function (t) { + return new Vu.Promise(function (e, o) { + try { + var t = i(a, n, r); + qu.Task.isPromise(t) + ? t + .then(function (t) { + return Dh(t, a, e, o, s, l); + }) + .catch(function (t) { + var e = void 0, + n = t, + r = a, + t = o, + i = l; + try { + t(n); + } finally { + i && + ('string' == typeof i + ? r.logger.error(i) + : setTimeout(function () { + return i.call(null, r, e, n); + }, 0)); + } + }) + : Dh(t, a, e, o, s, l); + } catch (t) { + o(t); + } + }); + }); + }); + }), + (Ku = F = F || {}), + (Zu = Ku.Bootstrap || (Ku.Bootstrap = {})), + (Xu = Zu.Tree || (Zu.Tree = {})), + (e = Xu.Transform || (Xu.Transform = {})), + (Sh.prototype.resolveAdd = function (t, e) { + return ( + e !== Xu.Node.Null && + ((e.ref = this.props.ref), + this.props.isHidden && (e.isHidden = !0), + e.tree || ((e.parent = t), Xu.add(e))), + e + ); + }), + (Sh.prototype.resolveUpdate = function (t, e, n) { + var r; + return ( + n !== Xu.Node.Null && + ((r = e.parent), + (n.ref = this.props.ref), + (n.parent = r), + (n.tag = e.tag), + (n.state = e.state), + this.props.isHidden && (n.isHidden = !0), + Xu.update(t.tree, e, n)), + n + ); + }), + (Sh.prototype.apply = function (i, o) { + var e = this; + return Ku.Core.computation(function (t) { + return new Ku.Promise(function (n, r) { + return D(e, void 0, void 0, function () { + var e = this; + return P(this, function (t) { + return ( + Zu.Event.Tree.TransformStarted.dispatch(i, this), + this.transformer + .apply(i, o, this) + .run(i) + .then(function (t) { + n(e.resolveAdd(o, t)), + Zu.Event.Tree.TransformFinished.dispatch(i, { transform: e }); + }) + .catch(function (t) { + r(t), + Zu.Event.Tree.TransformFinished.dispatch(i, { + transform: e, + error: t, + }); + }), + [2] + ); + }); + }); + }); + }); + }), + (Sh.prototype.update = function (r, i) { + var o = this; + return Ku.Core.computation(function (t) { + return new Ku.Promise(function (e, n) { + (o.isUpdate = !0), + (o.props.ref = i.transform.props.ref), + Zu.Event.Tree.TransformStarted.dispatch(r, o), + i.transform.props.isBinding && (o.props.isBinding = !0), + o.transformer + .update(r, i, o) + .run(r) + .then(function (t) { + e(o.resolveUpdate(r, i, t)), + Zu.Event.Tree.TransformFinished.dispatch(r, { transform: o }); + }) + .catch(function (t) { + n(t), + Zu.Event.Tree.TransformFinished.dispatch(r, { + transform: o, + error: t, + }); + }); + }); + }); + }), + ($u = Sh), + (e.create = function (t, e, n) { + return ( + (e = Zu.Utils.shallowClone(e)).ref || (e.ref = Zu.Utils.generateUUID()), + new $u(t, e, n) + ); + }), + (e.execute = kh), + (e.apply = function (t, e) { + return kh(t, e, !1); + }), + (e.update = function (t, e) { + return kh(t, e, !0); + }), + ((r = + (r = + (r = (r = F = F || {}).Bootstrap || (r.Bootstrap = {})).Tree || (r.Tree = {})) + .Transform || (r.Transform = {})).build = function () { + return new tc.Impl(void 0, []); + }), + (function (t) { + function i(t, e) { + (this.last = t), (this.transforms = e); + } + (i.prototype.add = function (t, e, n, r) { + t = { selector: t, transform: e.create(n, r) }; + return this.transforms.push(t), (this.last = t), new i(t, this.transforms); + }), + (i.prototype.then = function (t, e, n) { + if (!this.last) throw "Cannot 'then' on an empty builder"; + (t = t.create(e, n)), + (e = { selector: this.last.transform.props.ref, transform: t }); + return this.transforms.push(e), new i(e, this.transforms); + }), + (i.prototype.compile = function () { + return this.transforms; + }), + (t.Impl = i); + })((tc = r.Builder || (r.Builder = {}))), + (E = F = F || {}), + (E = + (ec = E.Bootstrap || (E.Bootstrap = {})).Interactivity || + (ec.Interactivity = {})), + ((n = E.Info || (E.Info = {})).empty = { kind: 0 }), + (n.selection = function (t, e) { + return { kind: 1, source: t, elements: e }; + }), + (E.isEmpty = function (t) { + if (0 === t.kind || !t.source.tree) return !0; + if ( + t.source.type.info.typeClass === ec.Entity.VisualClass && + t.source.type === ec.Entity.Molecule.Visual + ) { + var e = ec.Utils.Molecule.findModelOrSelection(t.source); + if (e && (!t.elements || !t.elements.length)) return !0; + } + return !1; + }), + (E.isSelection = function (t) { + return 1 === t.kind && !!t.source.tree; + }), + (E.interactivityInfoEqual = function (t, e) { + if (t || e) { + if (!t || !e) return !1; + if (t.kind !== e.kind) return !1; + if (0 !== t.kind) { + if (t.source !== e.source) return !1; + var n = t.elements, + r = e.elements; + if (n.length !== r.length) return !1; + for (var i = 0, o = n.length; i < o; i++) if (n[i] !== r[i]) return !1; + } + } + return !0; + }), + (E.interactivitySelectionElementsEqual = function (t, e) { + var n = t.elements, + r = e.elements; + if (n.length !== r.length) return !1; + for (var i = 0, o = n.length; i < o; i++) if (n[i] !== r[i]) return !1; + return !0; + }), + (t = F = F || {}), + (function (t) { + function e(e) { + var n = this; + (this.context = e), + (this.providers = []), + (this.empty = []), + nc.Event.Visual.VisualHoverElement.getStream(e).subscribe(function (t) { + return nc.Event.Interactivity.Highlight.dispatch(e, n.getInfo(t.data)); + }); + } + (e.prototype.addProvider = function (t) { + this.providers.push(t); + }), + (e.prototype.removeProvider = function (e) { + (this.providers = this.providers.filter(function (t) { + return t !== e; + })), + nc.Event.Interactivity.Highlight.dispatch(this.context, []); + }), + (e.prototype.getInfo = function (t) { + if (!t) return this.empty; + for (var e = [], n = 0, r = this.providers; n < r.length; n++) { + var i = r[n].call(null, t); + i && e.push(i); + } + return e; + }), + (t.HighlightManager = e); + })( + (nc = t.Bootstrap || (t.Bootstrap = {})).Interactivity || + (nc.Interactivity = {}), + ), + (e = F = F || {}), + (rc = e.Bootstrap || (e.Bootstrap = {})), + (ic = rc.Interactivity || (rc.Interactivity = {})), + ((e = ic.Molecule || (ic.Molecule = {})).transformMoleculeAtomIndices = Fh), + (e.transformInteraction = function (t) { + if (!ic.isEmpty(t)) { + var e = rc.Utils.Molecule.findModelOrSelection(t.source); + if (e) { + var n = rc.Utils.Molecule.findQueryContext(e), + e = rc.Utils.Molecule.findModel(e); + if (n && e) return Fh(e, n, t.elements); + } + } + }), + (e.formatInfo = function (t) { + return t && t.atoms.length + ? 1 === t.atoms.length + ? '<span>' + + ('<span><b>' + + (e = t.atoms[0]).name + + ' ' + + e.elementSymbol + + ' ' + + e.id + + '</b>' + + Qh(e) + + ' at (' + + rc.Utils.round(e.x, 1) + + ', ' + + rc.Utils.round(e.y, 1) + + ', ' + + rc.Utils.round(e.z, 1) + + ')</span>') + + ' on <b><small>' + + _h(t.residues[0]) + + '</small></b> ' + + Th(t) + + '</span>' + : 1 === t.residues.length + ? '<span><b>' + _h(t.residues[0]) + '</b> ' + Th(t) + '</span>' + : '<span><small>' + + t.atoms.length + + ' atoms on</small> <b>' + + t.residues.length + + ' residues</b> ' + + Th(t) + + '</span>' + : ''; + var e; + }), + (e.formatInfoShort = function (t) { + return t && t.atoms.length + ? 1 === t.atoms.length + ? '<span><b>' + + ('<span>' + + (e = t.atoms[0]).name + + ' ' + + e.elementSymbol + + ' ' + + e.id + + Qh(e) + + '</span>') + + '</b> ' + + Th(t) + + '</span>' + : 1 === t.residues.length + ? '<span><b>' + _h(t.residues[0]) + '</b> ' + Th(t) + '</span>' + : '<span><b>' + t.residues.length + ' residues</b> ' + Th(t) + '</span>' + : ''; + var e; + }), + (e.isMoleculeModelInteractivity = function (t) { + return ( + !ic.isEmpty(t) && + (t.source.type.info.typeClass !== rc.Entity.VisualClass || + t.source.type === rc.Entity.Molecule.Visual) && + !!rc.Utils.Molecule.findModelOrSelection(t.source) + ); + }), + (oc = F = F || {}), + (function (t) { + (e.prototype.isEmpty = function () { + return !this.entries.size; + }), + (e.prototype.add = function (t) { + if (this.entries.has(t.id) || !t.props.model) return !1; + var e = t.parent.id, + e = + (this.entries.set(t.id, { visual: t, parentId: e }), + this.scene.scene.models.add( + t.props.model, + 1 === this.entries.size && this.lastParent !== e, + ), + 2 !== t.state.visibility); + return ( + t.props.model.getVisibility() !== e && t.props.model.updateVisibility(e), + (t.props.model.tag = t), + !0 + ); + }), + (e.prototype.remove = function (t) { + return ( + !!this.entries.has(t.id) && + ((this.lastParent = this.entries.get(t.id).parentId), + this.entries.delete(t.id), + this.originalThemes.delete(t.id), + this.scene.scene.models.removeAndDispose(t.props.model), + (t.props.model.tag = void 0), + !(t.props.model = void 0)) + ); + }), + (e.prototype.get = function (t) { + return this.entries.get(t); + }), + (e.prototype.resetThemesAndHighlight = function (t) { + var r = this; + if (!t) + return ( + this.originalThemes.forEach(function (t, e) { + var n = r.entries.get(e).visual.props.model; + n.theme.isSticky + ? r.originalThemes.set(e, n.theme) + : (n.applyTheme(t), r.originalThemes.delete(e)); + }), + this.entries.forEach(function (t) { + return t.visual.props.model.highlight(!1); + }), + void this.scene.scene.forceRender() + ); + for (var e = 0, n = this.context.select(t); e < n.length; e++) { + var i, + o, + a = n[e]; + l.Entity.isVisual(a) && + this.originalThemes.has(a.id) && + ((i = this.originalThemes.get((a = a).id)), + (o = a.props.model).theme.isSticky + ? this.originalThemes.set(a.id, o.theme) + : (o.applyTheme(i), this.originalThemes.delete(a.id)), + o.highlight(!1)); + } + this.scene.scene.forceRender(); + }), + (e.prototype.highlightMoleculeModel = function (t) { + var e = this, + n = l.Utils.Molecule.findModel(t.model); + if (n) { + var r = []; + if ( + (this.context + .select(l.Tree.Selection.byValue(t.model).subtree()) + .forEach(function (t) { + l.Entity.isVisual(t) && e.entries.get(t.id) && r.push(t); + }), + r.length) + ) { + var i = l.Utils.Molecule.getModelAndIndicesFromQuery(n, t.query); + if (i && i.indices.length) + for (var o = t.isOn ? 3 : 4, a = 0, s = r; a < s.length; a++) + s[a].props.model.applySelection(i.indices, o); + } + } else + console.warn( + 'Highlight: Trying to highlight a non-molecule model entity, ignoring...', + ); + }); + var i = e; + function e(t, e) { + var n = this; + (this.context = t), + (this.scene = e), + (this.entries = new Map()), + (this.originalThemes = new Map()), + (this.lastParent = NaN), + l.Event.Tree.NodeAdded.getStream(t).subscribe(function (t) { + l.Entity.isClass(t.data, l.Entity.VisualClass) && n.add(t.data); + }), + l.Event.Tree.NodeRemoved.getStream(t).subscribe(function (t) { + l.Entity.isClass(t.data, l.Entity.VisualClass) && n.remove(t.data); + }), + l.Event.Tree.NodeUpdated.getStream(t).subscribe(function (t) { + var e; + !l.Entity.isVisual(t.data) || + ((t = n.entries.get(t.data.id)) && + ((e = 2 !== t.visual.state.visibility), + t.visual.props.model.getVisibility() !== e && + t.visual.props.model.updateVisibility(e))); + }), + l.Command.Visual.UpdateBasicTheme.getStream(t).subscribe(function (t) { + var e; + n.entries.get(t.data.visual.id) && + l.Entity.isVisual(t.data.visual) && + ((e = t.data.visual), + t.data.theme.isSticky + ? n.originalThemes.set(e.id, t.data.theme) + : n.originalThemes.get(e.id) || + n.originalThemes.set(e.id, e.props.model.theme), + e.props.model.applyTheme(t.data.theme)); + }), + l.Command.Molecule.Highlight.getStream(t).subscribe(function (t) { + return n.highlightMoleculeModel(t.data); + }), + l.Command.Visual.ResetTheme.getStream(t).subscribe(function (t) { + return n.resetThemesAndHighlight(t.data && t.data.selection); + }); + } + function n(t, e, n) { + var r = this; + (this.context = e), + (this._destroyed = !1), + (this.cameraChanged = new l.Rx.Subject()), + (this.cameraObserver = function (t) { + return r.cameraChanged.onNext(t); + }), + (this.models = new i(e, this)), + (this.scene = new oc.Visualization.Scene(t, n)), + this.scene.camera.observe(this.cameraObserver), + this.scene.events.addEventListener('hover', function (t) { + return r.handleEvent(t, l.Event.Visual.VisualHoverElement); + }), + this.scene.events.addEventListener('select', function (t) { + return r.handleEvent(t, l.Event.Visual.VisualSelectElement); + }), + this.cameraChanged.throttle(1e3 / 30).subscribe(function (t) { + l.Event.Visual.CameraChanged.dispatch(r.context, t); + }), + l.Command.Entity.Focus.getStream(e).subscribe(function (t) { + var e; + 1 === t.data.length + ? ((e = t.data[0]), + l.Entity.isMoleculeSelection(e) + ? r.focusMoleculeModelSelection(e) + : l.Entity.isClass(e, l.Entity.VisualClass) && + r.scene.camera.focusOnModel(e.props.model)) + : (e = r.scene.camera).focusOnModel.apply( + e, + t.data + .filter(function (t) { + return l.Entity.isClass(t, l.Entity.VisualClass); + }) + .map(function (t) { + return t.props.model; + }), + ); + }), + l.Command.Entity.Highlight.getStream(e).subscribe(function (t) { + for (var e = 0, n = t.data.entities; e < n.length; e++) { + var r = n[e]; + l.Entity.isClass(r, l.Entity.VisualClass) && + r.props.model && + r.props.model.highlight(t.data.isOn); + } + }), + l.Command.Visual.ResetScene.getStream(e).subscribe(function (t) { + return r.resetScene(); + }), + l.Command.Molecule.FocusQuery.getStream(e).subscribe(function (t) { + return r.focusMoleculeModelOnQuery(t.data); + }); + } + (t.DisplayList = i), + (n.prototype.resetScene = function () { + this._destroyed || + (l.Event.Visual.VisualSelectElement.dispatch( + this.context, + l.Interactivity.Info.empty, + ), + this.models.resetThemesAndHighlight(), + this.scene.camera.reset()); + }), + Object.defineProperty(n.prototype, 'camera', { + get: function () { + return this.scene.camera; + }, + enumerable: !0, + configurable: !0, + }), + (n.prototype.destroy = function () { + this._destroyed || + (this.scene.camera.stopObserving(this.cameraObserver), + this.scene.destroy(), + (this.scene = void 0), + (this._destroyed = !0)); + }), + (n.prototype.handleEvent = function (t, e) { + t = t.data; + t && t.model && t.elements + ? e.dispatch( + this.context, + l.Interactivity.Info.selection(t.model.tag, t.elements), + ) + : e.dispatch(this.context, l.Interactivity.Info.empty); + }), + (n.prototype.focusMoleculeModelSelection = function (t) { + var e, n; + l.Tree.Node.is(t, l.Entity.Molecule.Selection) + ? (n = l.Utils.Molecule.findModel(t)) + ? ((e = oc.Core.Geometry.LinearAlgebra.Vector3.zero()), + (n = l.Utils.Molecule.getCentroidAndRadius( + n.props.model, + t.props.indices, + e, + )), + this.scene.camera.focusOnPoint( + oc.Core.Geometry.LinearAlgebra.Vector3.toObj(e), + n, + )) + : console.warn( + 'Focus: Molecule model for selection not found, ignoring...', + ) + : console.warn( + 'Focus: Trying to focus on non-molecule selection, ignoring...', + ); + }), + (n.prototype.focusMoleculeModelOnQuery = function (t) { + var e, + t = l.Utils.Molecule.getModelAndIndicesFromQuery(t.model, t.query); + t && + t.indices.length && + ((e = oc.Core.Geometry.LinearAlgebra.Vector3.zero()), + (t = l.Utils.Molecule.getCentroidAndRadius( + t.model.props.model, + t.indices, + e, + )), + this.scene.camera.focusOnPoint( + oc.Core.Geometry.LinearAlgebra.Vector3.toObj(e), + t, + )); + }), + (t.SceneWrapper = n); + })( + (l = oc.Bootstrap || (oc.Bootstrap = {})).Visualization || + (l.Visualization = {}), + ), + (ac = F = F || {}), + (r = + (r = ac.Bootstrap || (ac.Bootstrap = {})).Visualization || + (r.Visualization = {})), + ((n = r.Style || (r.Style = {})).getTaskType = function (t) { + return t.taskType || 'Normal'; + }), + (n.create = function (t) { + return t; + }), + ((r.Theme || (r.Theme = {})).getProps = function (t) { + var n = ac.Core.Utils.FastMap.create(), + r = + (t.colors && + t.colors.forEach(function (t, e) { + return n.set(e, t); + }), + ac.Core.Utils.FastMap.create()); + return ( + t.variables && + t.variables.forEach(function (t, e) { + return r.set(e, t); + }), + { + colors: n, + variables: r, + transparency: t.transparency, + interactive: t.interactive, + disableFog: t.disableFog, + isSticky: !0, + } + ); + }), + (sc = F = F || {}), + (lc = sc.Bootstrap || (sc.Bootstrap = {})), + (E = lc.Visualization || (lc.Visualization = {})), + (uc = E.Molecule || (E.Molecule = {})), + (C = sc.Visualization), + (uc.UniformBaseColors = lc.Immutable.Map({ + Uniform: C.Theme.Default.UniformColor, + Highlight: C.Theme.Default.HighlightColor, + Selection: C.Theme.Default.SelectionColor, + })), + (uc.ModelVisualBaseColors = lc.Immutable.Map({ + Bond: C.Molecule.Colors.DefaultBondColor, + Highlight: C.Theme.Default.HighlightColor, + Selection: C.Theme.Default.SelectionColor, + })), + (uc.createPaletteThemeProvider = Uh), + (uc.createCachedPaletteThemeProvider = Nh), + (uc.uniformThemeProvider = Ph), + (uc.createColorMapThemeProvider = Lh), + (uc.createCachedColorMapThemeProvider = function (o, a, s, l) { + return function (t, e) { + var n = lc.Utils.Molecule.findModel(t), + r = n.tree && n.tree.context; + if (r) { + var i = r.entityCache.get(n, 'theme-mapping-map-' + o); + if (i) return C.Theme.createMapping(i, e); + } + (i = n.props.model), + (n = a(i)), + (i = C.Theme.createColorMapMapping(Rh(n.index, n.property), s, l)); + return ( + r && r.entityCache.set(t, 'theme-mapping-map-' + o, i), + C.Theme.createMapping(i, e) + ); + }; + }), + (Yh.prototype.getProperty = function (t) { + return this.residueIndex[t]; + }), + (Yh.prototype.setColor = function (t, e) { + (e.r = this.r[t]), (e.g = this.g[t]), (e.b = this.b[t]); + }), + (cc = Yh), + (uc.RainbowPalette = [ + C.Color.fromHex(12025059), + C.Color.fromHex(8989394), + C.Color.fromHex(204), + C.Color.fromHex(43724), + C.Color.fromHex(52224), + C.Color.fromHex(13412864), + C.Color.fromHex(13399808), + C.Color.fromHex(13378048), + ]), + (E = lc.Immutable.Map({ + Bond: C.Molecule.Colors.DefaultBondColor, + Highlight: C.Color.fromHex(16777215), + Selection: C.Color.fromHex(9863168), + })), + ((t = uc.Default || (uc.Default = {})).Themes = [ + { + name: 'Chain ID', + description: 'Color the surface by Chain ID.', + colors: uc.ModelVisualBaseColors, + provider: Nh( + 'chain-id', + function (t) { + return { + index: t.data.atoms.residueIndex, + property: t.data.residues.asymId, + }; + }, + C.Molecule.Colors.DefaultPallete, + ), + }, + { + name: 'Entity ID', + description: 'Color the surface by Entity ID.', + colors: uc.ModelVisualBaseColors, + provider: Uh(function (t) { + return { + index: t.data.atoms.residueIndex, + property: t.data.residues.entityId, + }; + }, C.Molecule.Colors.DefaultPallete), + }, + { + name: 'Entity Type', + description: 'Color the surface by Entity Type.', + colors: uc.ModelVisualBaseColors, + provider: Uh(function (t) { + return { index: t.data.atoms.entityIndex, property: t.data.entities.type }; + }, C.Molecule.Colors.DefaultPallete), + }, + { + name: 'Residue Name', + description: 'Color the surface by residue name.', + colors: uc.ModelVisualBaseColors, + provider: Uh(function (t) { + return { index: t.data.atoms.residueIndex, property: t.data.residues.name }; + }, C.Molecule.Colors.DefaultPallete), + }, + { + name: 'Element Symbol', + description: 'Color the surface by atom elemnt symbol.', + colors: uc.ModelVisualBaseColors, + provider: Lh( + function (t) { + return { + index: t.data.atoms.indices, + property: t.data.atoms.elementSymbol, + }; + }, + C.Molecule.Colors.DefaultElementColorMap, + C.Molecule.Colors.DefaultElementColor, + ), + }, + { + name: 'Rainbow (Chain)', + description: 'Color each chain using rainbow palette.', + colors: E, + provider: Oh( + function (t) { + return t.data.chains; + }, + function (t, e) { + return t.asymId[e] + ' ' + t.entityId[e]; + }, + ), + }, + { + name: 'Rainbow (Entity)', + description: 'Color each entity using rainbow palette.', + colors: E, + provider: Oh( + function (t) { + return t.data.entities; + }, + function (t, e) { + return t.entityId[e]; + }, + ), + }, + { + name: 'Uniform Color', + description: 'Same color everywhere.', + colors: uc.UniformBaseColors, + provider: Ph, + }, + ]), + (t.CartoonThemeTemplate = t.Themes.filter(function (t) { + return 'Chain ID' === t.name; + })[0]), + (t.ElementSymbolThemeTemplate = t.Themes.filter(function (t) { + return 'Element Symbol' === t.name; + })[0]), + (t.SurfaceThemeTemplate = t.Themes.filter(function (t) { + return 'Uniform Color' === t.name; + })[0]), + (t.UniformThemeTemplate = t.Themes.filter(function (t) { + return 'Uniform Color' === t.name; + })[0]), + (t.RainbowEntityThemeTemplate = t.Themes.filter(function (t) { + return 'Rainbow (Entity)' === t.name; + })[0]), + ((e = + (e = + (e = (e = F = F || {}).Bootstrap || (e.Bootstrap = {})).Visualization || + (e.Visualization = {})).Molecule || (e.Molecule = {})).TypeDescriptions = { + Cartoons: { label: 'Cartoon', shortLabel: 'Cartoon' }, + Calpha: { label: 'C-α Trace', shortLabel: 'C-α' }, + BallsAndSticks: { label: 'Balls and Sticks', shortLabel: "B'n'S" }, + VDWBalls: { label: 'VDW Balls', shortLabel: 'VDW' }, + Surface: { label: 'Surface', shortLabel: 'Surface' }, + }), + (e.Types = ['Cartoons', 'Calpha', 'BallsAndSticks', 'VDWBalls', 'Surface']), + (e.DetailTypes = ['Automatic', 'Very Low', 'Low', 'Medium', 'High', 'Very High']), + ((Ac = e.Default || (e.Default = {})).DetailParams = { detail: 'Automatic' }), + (Ac.CartoonParams = { showDirectionCone: !1, detail: 'Automatic' }), + (Ac.BallsAndSticksParams = { + useVDW: !0, + vdwScaling: 0.22, + atomRadius: 0.35, + bondRadius: 0.09, + hideHydrogens: !1, + customMaxBondLengths: void 0, + detail: 'Automatic', + }), + (Ac.SurfaceParams = { + probeRadius: 0.4, + automaticDensity: !0, + density: 1.1, + smoothing: 10, + isWireframe: !1, + }), + (Ac.Transparency = { alpha: 1, writeDepth: !1 }), + (Ac.ForType = (function () { + for ( + var t = { + Cartoons: { + type: 'Cartoons', + params: Ac.CartoonParams, + theme: { + template: Ac.CartoonThemeTemplate, + colors: Ac.CartoonThemeTemplate.colors, + transparency: Ac.Transparency, + interactive: !0, + }, + }, + Calpha: { + type: 'Calpha', + params: { detail: 'Automatic' }, + theme: { + template: Ac.CartoonThemeTemplate, + colors: Ac.CartoonThemeTemplate.colors, + transparency: Ac.Transparency, + interactive: !0, + }, + }, + BallsAndSticks: { + type: 'BallsAndSticks', + params: Ac.BallsAndSticksParams, + theme: { + template: Ac.ElementSymbolThemeTemplate, + colors: Ac.ElementSymbolThemeTemplate.colors, + transparency: Ac.Transparency, + interactive: !0, + }, + }, + VDWBalls: { + type: 'VDWBalls', + params: { detail: 'Automatic' }, + theme: { + template: Ac.ElementSymbolThemeTemplate, + colors: Ac.ElementSymbolThemeTemplate.colors, + transparency: Ac.Transparency, + interactive: !0, + }, + }, + Surface: { + type: 'Surface', + params: Ac.SurfaceParams, + theme: { + template: Ac.SurfaceThemeTemplate, + colors: Ac.SurfaceThemeTemplate.colors, + transparency: { alpha: 0.33, writeDepth: !1 }, + interactive: !0, + }, + }, + }, + e = new Map(), + n = 0, + r = Object.keys(t); + n < r.length; + n++ + ) { + var i = r[n]; + e.set(i, t[i]); + } + return e; + })()), + (hc = F = F || {}), + (pc = hc.Bootstrap || (hc.Bootstrap = {})), + (dc = pc.Visualization || (pc.Visualization = {})), + (fc = dc.Molecule || (dc.Molecule = {})), + (gc = hc.Visualization), + (mc = hc.Visualization.Molecule), + (fc.create = function (t, e, n) { + return ( + 'Surface' === n.type + ? jh + : function (i, o, a) { + var t = this; + return pc.Task.create( + 'Visual (' + i.props.label + ')', + dc.Style.getTaskType(a), + function (r) { + return D(t, void 0, void 0, function () { + var e, n; + return P(this, function (t) { + switch (t.label) { + case 0: + return ( + (e = fc.TypeDescriptions[a.type].label), + [4, r.updateProgress('Creating ' + e + '...')] + ); + case 1: + if ( + (t.sent(), + (n = a.theme.template.provider( + pc.Utils.Molecule.findModel(i), + dc.Theme.getProps(a.theme), + )), + (n = Hh(i, a, n))) + ) + return [4, n.run(r)]; + throw 'Invalid input parameters.'; + case 2: + return ( + (n = t.sent()), + [ + 2, + pc.Entity.Molecule.Visual.create(o, { + label: e, + model: n, + style: a, + isSelectable: !a.isNotSelectable, + }), + ] + ); + } + }); + }); + }, + ); + } + )(t, e, n); + }), + (vc = F = F || {}), + (bc = vc.Bootstrap || (vc.Bootstrap = {})), + (yc = bc.Visualization || (bc.Visualization = {})), + ((n = yc.Labels || (yc.Labels = {})).createMoleculeLabels = function (i, o, a) { + var t = this; + return bc.Task.create('Labels', 'Background', function (r) { + return D(t, void 0, void 0, function () { + var e, n; + return P(this, function (t) { + switch (t.label) { + case 0: + return ( + (e = a.params), + (n = a.theme.template.provider(i, yc.Theme.getProps(a.theme))), + (e = bc.Utils.Molecule.create3DLabelsParams(i, e, n)), + [4, r.updateProgress('Creating labels...')] + ); + case 1: + return ( + t.sent(), [4, vc.Visualization.Labels.Model.create(i, e).run(r)] + ); + case 2: + return ( + (n = t.sent()), + [ + 2, + bc.Entity.Visual.Labels.create(o, { + label: 'Labels', + model: n, + style: a, + isSelectable: !1, + }), + ] + ); + } + }); + }); + }); + }), + (n.createGenericLabels = function (r, i, o) { + var t = this; + return bc.Task.create('Labels', 'Background', function (n) { + return D(t, void 0, void 0, function () { + var e; + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, n.updateProgress('Creating labels...')]; + case 1: + return ( + t.sent(), + (e = o.style.theme.template.provider( + r, + yc.Theme.getProps(o.style.theme), + )), + (e = { + positions: o.positions, + sizes: o.sizes, + labels: o.labels, + options: o.options, + theme: e, + }), + [4, vc.Visualization.Labels.Model.create(r, e).run(n)] + ); + case 2: + return ( + (e = t.sent()), + [ + 2, + bc.Entity.Visual.Labels.create(i, { + label: 'Labels', + model: e, + style: o.style, + isSelectable: !1, + }), + ] + ); + } + }); + }); + }); + }), + (r = F = F || {}), + (wc = r.Bootstrap || (r.Bootstrap = {})), + (E = (E = wc.Visualization || (wc.Visualization = {})).Labels || (E.Labels = {})), + ((t = E.Style || (E.Style = {})).moleculeHasOnlyThemeChanged = function (t, e) { + return wc.Utils.deepEqual(t.params, e.params); + }), + (t.createMoleculeStyle = function (t) { + return { + type: 'Labels', + params: { + kind: t.kind, + labelsOptions: t.labelsOptions || Ec.MoleculeLabels.params.labelsOptions, + }, + theme: t.theme || Ec.MoleculeLabels.theme, + }; + }), + (t = Ec = E.Default || (E.Default = {})), + (Bc = r.Visualization), + (E = wc.Immutable.Map({ + Uniform: Bc.Color.fromHexString('#eaeaea'), + Background: Bc.Color.fromHexString('#777777'), + Outline: Bc.Color.fromHexString('#333333'), + })), + (r = wc.Immutable.Map({ + xOffset: 0, + yOffset: 0, + zOffset: 0.6, + sizeFactor: 1.5, + backgroundOpacity: 0, + outlineWidth: 0.1, + })), + (e = { alpha: 1, writeDepth: !1 }), + (t.Theme = [ + { + name: 'Uniform Color', + description: 'Same color everywhere.', + colors: E, + variables: r, + provider: function (t, e) { + return Bc.Theme.createUniform(e); + }, + }, + ][0]), + (t.MoleculeLabels = { + type: 'Labels', + params: { + kind: 'Residue-Full-Id', + labelsOptions: Bc.Labels.DefaultLabelsOptions, + }, + theme: { + template: t.Theme, + colors: t.Theme.colors, + variables: t.Theme.variables, + transparency: e, + interactive: !1, + disableFog: !1, + }, + }), + (t.GenericLabels = { + type: 'Labels', + params: Bc.Labels.DefaultLabelsOptions, + theme: { + template: t.Theme, + colors: t.Theme.colors, + variables: t.Theme.variables, + transparency: e, + interactive: !1, + disableFog: !1, + }, + }), + (Cc = F = F || {}), + (xc = Cc.Bootstrap || (Cc.Bootstrap = {})), + (Ic = xc.Visualization || (xc.Visualization = {})), + (Mc = Ic.Density || (Ic.Density = {})), + (Dc = Cc.Core.Geometry), + (Mc.create = function (p, d, f) { + var t = this, + e = + 'Background' === f.taskType + ? p.props.label + : 'Density Surface (' + p.props.label + ')'; + return xc.Task.create(e, Ic.Style.getTaskType(f), function (h) { + return D(t, void 0, void 0, function () { + var e, n, r, i, o, a, s, l, u, c, A; + return P(this, function (t) { + switch (t.label) { + case 0: + if ( + ((e = f.params), + !(n = xc.Tree.Node.findClosestNodeOfType(p, [ + xc.Entity.Density.Data, + ]))) + ) + throw 'Cannot create density visual on ' + p.props.label; + if ( + ((r = n.props.data), + (A = r.spacegroup.basis), + (a = r.box), + (c = a.sampleCount), + (i = a.origin), + (a = a.dimensions), + (a = new Cc.Visualization.THREE.Matrix4().makeScale( + a[0] / c[0], + a[1] / c[1], + a[2] / c[2], + )), + (c = new Cc.Visualization.THREE.Matrix4().makeTranslation( + i[0], + i[1], + i[2], + )), + (i = new Cc.Visualization.THREE.Matrix4().set( + A.x[0], + A.y[0], + A.z[0], + 0, + 0, + A.y[1], + A.z[1], + 0, + 0, + 0, + A.z[2], + 0, + 0, + 0, + 0, + 1, + )), + (A = new Cc.Visualization.THREE.Matrix4().getInverse(i)), + (i = i.multiply(c).multiply(a)), + (a = + e.bottomLeft && e.topRight + ? ((c = (function (t, e, n, r) { + for ( + var i = n[0] - e[0], + o = n[1] - e[1], + n = n[2] - e[2], + a = (i = [ + e, + [e[0] + i, e[1], e[2]], + [e[0], e[1] + o, e[2]], + [e[0], e[1], e[2] + n], + [e[0] + i, e[1] + o, e[2]], + [e[0] + i, e[1], e[2] + n], + [e[0], e[1] + o, e[2] + n], + [e[0] + i, e[1] + o, e[2] + n], + ].map(function (t) { + t = new Cc.Visualization.THREE.Vector3() + .fromArray(t) + .applyMatrix4(r); + return [t.x, t.y, t.z]; + }))[0].slice(), + s = i[0].slice(), + l = 0, + u = i; + l < u.length; + l++ + ) + for (var c = u[l], A = 0; A < 3; A++) + (a[A] = Math.min(a[A], c[A])), + (s[A] = Math.max(s[A], c[A])); + for ( + var h = (o = t.box).origin, + p = o.dimensions, + d = o.sampleCount, + f = [0, 0, 0], + g = [0, 0, 0], + A = 0; + A < 3; + A++ + ) { + c = Math.floor((d[A] * (a[A] - h[A])) / p[A]); + (f[A] = Math.min(Math.max(c, 0), d[A])), + (c = Math.ceil((d[A] * (s[A] - h[A])) / p[A])), + (g[A] = Math.min(Math.max(c, 0), d[A])); + } + return { bottomLeft: f, topRight: g }; + })(r, e.bottomLeft, e.topRight, A)), + (o = c.bottomLeft), + c.topRight) + : ((o = [0, 0, 0]), r.box.sampleCount)), + o[0] - a[0] && o[1] - a[1] && o[2] - a[2]) + ) + return ( + (s = + void 0 === e.isoValueType || + e.isoValueType === Mc.IsoValueType.Sigma), + (A = s + ? r.valuesInfo.mean + r.valuesInfo.sigma * e.isoValue + : e.isoValue), + [ + 4, + Dc.MarchingCubes.compute({ + isoLevel: A, + scalarField: r.data, + bottomLeft: o, + topRight: a, + }).run(h), + ] + ); + throw { warn: !0, message: 'Empty box.' }; + case 1: + return ( + (l = t.sent()), [4, Dc.Surface.transform(l, i.elements).run(h)] + ); + case 2: + return ( + (l = t.sent()), + [4, Dc.Surface.laplacianSmooth(l, e.smoothing, 8).run(h)] + ); + case 3: + return ( + (l = t.sent()), + (u = f.theme.template.provider(n, Ic.Theme.getProps(f.theme))), + [4, h.updateProgress('Creating visual...')] + ); + case 4: + return ( + t.sent(), + [ + 4, + Cc.Visualization.Surface.Model.create(n, { + surface: l, + theme: u, + parameters: { isWireframe: f.params.isWireframe }, + }).run(h), + ] + ); + case 5: + return ( + (c = t.sent()), + (A = 'Surface, ' + xc.Utils.round(e.isoValue, 2) + (s ? ' σ' : '')), + [ + 2, + xc.Entity.Density.Visual.create(d, { + label: A, + model: c, + style: f, + isSelectable: !f.isNotSelectable, + }), + ] + ); + } + }); + }); + }); + }), + (n = F = F || {}), + (E = n.Bootstrap || (n.Bootstrap = {})), + (r = (r = E.Visualization || (E.Visualization = {})).Density || (r.Density = {})), + ((e = t = r.IsoValueType || (r.IsoValueType = {}))[(e.Sigma = 0)] = 'Sigma'), + (e[(e.Absolute = 1)] = 'Absolute'), + (r.areNonIsoParamsSame = function (t, e) { + return ( + t.bottomLeft === e.bottomLeft && + e.topRight == e.topRight && + t.smoothing === e.smoothing && + t.isWireframe === e.isWireframe + ); + }), + ((r.Style || (r.Style = {})).create = function (t) { + var e = Sc.Theme.colors.set('Uniform', t.color); + return { + type: 'Density', + taskType: t.taskType, + params: { + isoValue: t.isoValue, + isoValueType: t.isoValueType, + smoothing: 1, + isWireframe: !!t.isWireframe, + }, + theme: { + template: Sc.Theme, + colors: e, + transparency: t.transparency || Sc.Transparency, + interactive: !1, + disableFog: !!t.disableFog, + }, + }; + }), + ((e = Sc = r.Default || (r.Default = {})).Params = { + isoValue: 0, + isoValueType: t.Sigma, + smoothing: 1, + isWireframe: !1, + }), + (kc = n.Visualization), + (r = E.Immutable.Map({ + Uniform: kc.Theme.Default.UniformColor, + Highlight: kc.Theme.Default.HighlightColor, + Selection: kc.Theme.Default.SelectionColor, + })), + (e.Themes = [ + { + name: 'Uniform Color', + description: 'Same color everywhere.', + colors: r, + provider: function (t, e) { + return kc.Theme.createUniform(e); + }, + }, + ]), + (e.Transparency = { alpha: 1, writeDepth: !1 }), + (e.Theme = e.Themes[0]), + (e.Style = { + type: 'Density', + params: e.Params, + theme: { + template: e.Theme, + colors: e.Theme.colors, + transparency: e.Transparency, + interactive: !1, + disableFog: !1, + }, + }), + (t = F = F || {}), + ((t = + (Fc = t.Bootstrap || (t.Bootstrap = {})).Entity || (Fc.Entity = {})).isClass = + function (t, e) { + return t.type.info.typeClass === e; + }), + (t.isTypeClass = function (t, e) { + return t.info.typeClass === e; + }), + (t.RootClass = 'Root'), + (t.GroupClass = 'Group'), + (t.DataClass = 'Data'), + (t.ObjectClass = 'Object'), + (t.VisualClass = 'Visual'), + (t.SelectionClass = 'Selection'), + (t.ActionClass = 'Action'), + (t.BehaviourClass = 'Behaviour'), + (Vh.prototype.create = function (t, e) { + e = { + id: Fc.Tree.Node.createId(), + version: 0, + index: 0, + ref: 'undefined', + tag: void 0, + tree: void 0, + props: e, + state: { isCollapsed: !1, visibility: 0 }, + isHidden: !1, + transform: t, + parent: void 0, + children: [], + type: this, + }; + return Fc.Tree.Node.update(e); + }), + (Qc = Vh), + (t.create = function (t, e) { + return new Qc(Fc.Utils.generateUUID(), t, e || {}); + }), + (n = F = F || {}), + ((n = + (_c = n.Bootstrap || (n.Bootstrap = {})).Entity || + (_c.Entity = {})).nodeUpdated = qh), + (n.toggleExpanded = function (t) { + var e = { isCollapsed: !t.state.isCollapsed }; + _c.Tree.Node.withState(t, e), qh(t); + }), + (n.setCurrent = function (t) { + var e = t.tree.context.currentEntity; + if (!(e === t || (t && t.isHidden))) { + for (var n = t.parent; n.parent !== n; ) { + if (n.isHidden) return; + n = n.parent; + } + (t.tree.context.currentEntity = t), + e && (_c.Tree.Node.update(e), qh(e)), + t && (_c.Tree.Node.update(t), qh(t)), + _c.Event.Entity.CurrentChanged.dispatch(t.tree.context, t), + e && _c.Tree.updatePath(e), + _c.Tree.updatePath(t.parent); + } + }), + (n.updateVisibilityState = Wh), + (n.setVisibility = function (t, e) { + var n; + t && + ((n = e ? 0 : 2), + _c.Tree.Node.forEach(t, function (t) { + t.state.visibility !== n && + (_c.Tree.Node.withState(t, { visibility: n }), qh(t)); + }), + Wh(t.parent)); + }), + (E = (E = F = F || {}).Bootstrap || (E.Bootstrap = {})), + ((s = E.Entity || (E.Entity = {})).isMolecule = function (t) { + return t && t.type === Tc.Molecule; + }), + (s.isMoleculeModel = function (t) { + return t && t.type === Tc.Model; + }), + (s.isMoleculeSelection = function (t) { + return t && t.type === Tc.Selection; + }), + (s.isVisual = function (t) { + return t && t.type.info.typeClass === s.VisualClass; + }), + (s.RootTransform = E.Tree.Transform.create({}, {}, void 0)), + (s.Root = s.create({ + name: 'Root', + typeClass: 'Root', + shortName: 'R', + description: 'Where everything begins.', + })), + (s.Group = s.create({ + name: 'Group', + typeClass: 'Group', + shortName: 'G', + description: 'A group on entities.', + })), + (s.Action = s.create({ + name: 'Action', + typeClass: 'Action', + shortName: 'A', + description: 'Represents an action performed on the entity tree.', + })), + ((E = s.Data || (s.Data = {})).Types = ['String', 'Binary']), + (E.String = s.create({ + name: 'String Data', + typeClass: 'Data', + shortName: 'S_D', + description: 'A string.', + })), + (E.Binary = s.create({ + name: 'Binary Data', + typeClass: 'Data', + shortName: 'B_D', + description: 'A binary blob.', + })), + (E.CifDictionary = s.create({ + name: 'Cif Dictionary', + typeClass: 'Data', + shortName: 'CD', + description: 'Represents parsed CIF data.', + })), + (E.Json = s.create({ + name: 'JSON Data', + typeClass: 'Data', + shortName: 'JS_D', + description: 'Represents JSON data.', + })), + ((E = s.Visual || (s.Visual = {})).Surface = s.create( + { + name: 'Surface Visual', + typeClass: 'Visual', + shortName: 'V_S', + description: 'A surface visual.', + }, + { isFocusable: !0 }, + )), + (E.Labels = s.create( + { + name: 'Labels Visual', + typeClass: 'Visual', + shortName: 'V_L', + description: '3D labels.', + }, + { isFocusable: !1 }, + )), + ((E = Tc = s.Molecule || (s.Molecule = {})).Molecule = s.create({ + name: 'Molecule', + typeClass: 'Object', + shortName: 'M', + description: 'A molecule that might contain one or more models.', + })), + (E.Model = s.create({ + name: 'Molecule Model', + typeClass: 'Object', + shortName: 'M_M', + description: 'A model of a molecule.', + })), + (E.Selection = s.create( + { + name: 'Molecule Model Selection', + typeClass: 'Selection', + shortName: 'S_M', + description: 'A selection of atoms.', + }, + { isFocusable: !0 }, + )), + (E.Visual = s.create( + { + name: 'Molecule Visual', + typeClass: 'Visual', + shortName: 'V_M', + description: 'A visual of a molecule.', + }, + { isFocusable: !0 }, + )), + ((E.CoordinateStreaming || (E.CoordinateStreaming = {})).Behaviour = s.create({ + name: 'Coordinate Streaming', + typeClass: 'Behaviour', + shortName: 'CS', + description: + 'Behaviour that downloads surrounding residues when an atom or residue is selected.', + })), + ((E = s.Density || (s.Density = {})).Data = s.create({ + name: 'Density Data', + typeClass: 'Object', + shortName: 'DD', + description: 'Density data.', + })), + (E.Visual = s.create( + { + name: 'Density Visual', + typeClass: 'Visual', + shortName: 'V_DD', + description: 'A visual of density data.', + }, + { isFocusable: !0 }, + )), + (E.InteractiveSurface = s.create({ + name: 'Interactive Surface', + typeClass: 'Behaviour', + shortName: 'B_IS', + description: + 'Behaviour that creates an interactive surface when an atom or residue is selected.', + })), + (Rc = F = F || {}), + (function (t) { + (e.prototype.get = function (t, e) { + t = this.data.get(t.id); + if (t) return t[e]; + }), + (e.prototype.set = function (t, e, n) { + var r = this.data.get(t.id); + return r ? (r[e] = n) : this.data.set(t.id, (((r = {})[e] = n), r)), n; + }); + function e(t) { + var e = this; + (this.data = Rc.Core.Utils.FastMap.create()), + Uc.Event.Tree.NodeRemoved.getStream(t).subscribe(function (t) { + return e.data.delete(t.data.id); + }); + } + (t.Cache = e), + (((t = t.Cache || (t.Cache = {})).Keys || (t.Keys = {})).QueryContext = + 'queryContext'); + })((Uc = Rc.Bootstrap || (Rc.Bootstrap = {})).Entity || (Uc.Entity = {})), + (Nc = F = F || {}), + (Pc = Nc.Bootstrap || (Nc.Bootstrap = {})), + (Lc = Pc.Entity || (Pc.Entity = {})), + (function (t) { + var e = this, + n = Pc.Tree.Transformer; + (t.Root = n.create( + { + id: 'root', + name: 'Root', + description: 'A transformer that always returns itself.', + from: [Lc.Root], + to: [Lc.Root], + validateParams: function () {}, + defaultParams: function () { + return {}; + }, + }, + function (t, e, n) { + return Pc.Task.resolve('Root', 'Silent', e); + }, + )), + (t.Fail = n.create( + { + id: 'fail', + name: 'Fail', + description: 'A transform that always fails.', + from: [], + to: [], + validateParams: function () {}, + defaultParams: function () { + return { title: 'Error', message: 'Unknown error.' }; + }, + }, + function (t, e, n) { + return Pc.Task.reject(n.params.title, 'Background', n.params.message); + }, + )), + (t.CreateGroup = n.create( + { + id: 'create-group', + name: 'Create Group', + description: 'A transformer that always returns itself.', + from: [], + to: [Lc.Group], + validateParams: function () {}, + defaultParams: function () { + return {}; + }, + }, + function (t, e, n) { + var r = Lc.Group.create(n, { + label: n.params.label || 'Group', + description: n.params.description, + }); + return ( + n.params.isCollapsed && + (r = Pc.Tree.Node.withState(r, { isCollapsed: !0 })), + Pc.Task.resolve('Group', 'Silent', r) + ); + }, + )), + (t.Delay = n.create( + { + id: 'basic-delay', + name: 'Delay', + description: + 'A transformer that delays by the specified timeout and does nothing.', + from: [], + to: [Lc.Action], + validateParams: function () {}, + defaultParams: function () { + return { timeoutMs: 1e3 }; + }, + }, + function (t, e, n) { + return Pc.Task.create('Delay', 'Silent', function (t) { + return new Nc.Promise(function (t) { + setTimeout(function () { + return t(Pc.Tree.Node.Null); + }, n.params.timeoutMs); + }); + }); + }, + )), + (t.CreateSurfaceVisual = Pc.Tree.Transformer.create( + { + id: 'basic-create-surface-visual', + name: 'Create Surface Visual', + description: 'Create generic surface visual.', + from: [], + to: [Pc.Entity.Visual.Surface], + defaultParams: function () {}, + isUpdatable: !1, + }, + function (t, r, i) { + var o = i.params.theme, + a = { + type: 'Surface', + taskType: i.params.taskType || 'Silent', + isNotSelectable: !!i.params.isNotInteractive, + params: {}, + theme: void 0, + }; + return Pc.Task.create( + 'Create Surface Visual', + i.params.taskType || 'Silent', + function (n) { + return D(e, void 0, void 0, function () { + var e; + return P(this, function (t) { + switch (t.label) { + case 0: + return [ + 4, + Nc.Visualization.Surface.Model.create(r, { + surface: i.params.surface, + theme: o, + parameters: { isWireframe: i.params.isWireframe }, + }).run(n), + ]; + case 1: + return ( + (e = t.sent()), + [ + 2, + Pc.Entity.Visual.Surface.create(i, { + label: i.params.label || 'Surface', + model: e, + style: a, + isSelectable: !i.params.isNotInteractive, + tag: i.params.tag, + }), + ] + ); + } + }); + }); + }, + ); + }, + )); + })((r = Lc.Transformer || (Lc.Transformer = {})).Basic || (r.Basic = {})), + (Yc = F = F || {}), + (u = Yc.Bootstrap || (Yc.Bootstrap = {})), + (c = u.Entity || (u.Entity = {})), + (function (o) { + var e = this; + (o.downloadMoleculeSource = function (i) { + return u.Tree.Transformer.action( + { + id: 'molecule-download-molecule-' + i.sourceId, + name: 'Molecule from ' + i.name, + description: i.description, + from: [c.Root], + to: [c.Action], + defaultParams: function (t) { + return { + id: i.defaultId, + format: Yc.Core.Formats.Molecule.SupportedFormats.mmCIF, + }; + }, + validateParams: function (t) { + return t.id && t.id.trim().length + ? void 0 + : ['Enter ' + (i.isFullUrl ? 'URL' : 'Id')]; + }, + }, + function (t, e, n) { + var r = i.specificFormat || n.params.format; + return u.Tree.Transform.build() + .add(e, Oc.Data.Download, { + url: i.urlTemplate(n.params.id.trim()), + type: r.isBinary ? 'Binary' : 'String', + id: n.params.id, + description: i.name, + title: 'Molecule', + }) + .then( + o.CreateFromData, + { format: i.specificFormat || n.params.format }, + { isBinding: !0 }, + ) + .then(o.CreateModel, { modelIndex: 0 }, { isBinding: !1 }); + }, + ); + }), + (o.OpenMoleculeFromFile = u.Tree.Transformer.action( + { + id: 'molecule-open-from-file', + name: 'Molecule from File', + description: + 'Open a molecule from a file (' + + Yc.Core.Formats.Molecule.SupportedFormats.All.map(function (t) { + return t.name; + }).join(', ') + + ').', + from: [c.Root], + to: [c.Action], + defaultParams: function (t) { + return { file: void 0 }; + }, + validateParams: function (t) { + return t.file + ? Yc.Core.Formats.FormatInfo.getFormat( + t.file.name, + Yc.Core.Formats.Molecule.SupportedFormats.All, + ) + ? void 0 + : [ + 'Select a supported file format (' + + [] + .concat( + Yc.Core.Formats.Molecule.SupportedFormats.All.map( + function (t) { + return t.extensions; + }, + ), + ) + .join(', ') + + ').', + ] + : ['Select a file']; + }, + }, + function (t, e, n) { + var r = Yc.Core.Formats.FormatInfo.getFormat( + n.params.file.name, + Yc.Core.Formats.Molecule.SupportedFormats.All, + ); + return u.Tree.Transform.build() + .add(e, Oc.Data.OpenFile, { + file: n.params.file, + type: r.isBinary ? 'Binary' : 'String', + }) + .then(o.CreateFromData, { format: r }, { isBinding: !0 }) + .then(o.CreateModel, { modelIndex: 0 }, { isBinding: !1 }); + }, + )), + (o.CreateFromData = u.Tree.Transformer.create( + { + id: 'molecule-create-from-data', + name: 'Molecule', + description: 'Create a molecule from string or binary data.', + from: [c.Data.String, c.Data.Binary], + to: [c.Molecule.Molecule], + defaultParams: function (t) { + return { format: Yc.Core.Formats.Molecule.SupportedFormats.mmCIF }; + }, + }, + function (o, a, s) { + return u.Task.create( + 'Create Molecule (' + a.props.label + ')', + 'Silent', + function () { + return D(e, void 0, void 0, function () { + var e, n, r, i; + return P(this, function (t) { + switch (t.label) { + case 0: + return [ + 4, + u.Task.fromComputation( + 'Create Molecule (' + a.props.label + ')', + 'Normal', + s.params.format.parse(a.props.data, { + id: s.params.customId, + }), + ) + .setReportTime(!0) + .run(o), + ]; + case 1: + if ((e = t.sent()).isError) throw e.toString(); + if (e.warnings && 0 < e.warnings.length) + for (n = 0, r = e.warnings; n < r.length; n++) + (i = r[n]), o.logger.warning(i); + return [ + 2, + c.Molecule.Molecule.create(s, { + label: e.result.id, + molecule: e.result, + }), + ]; + } + }); + }); + }, + ); + }, + )), + (o.CreateFromMmCif = u.Tree.Transformer.create( + { + id: 'molecule-create-from-mmcif', + name: 'Molecule', + description: 'Create a molecule from a mmCIF data block.', + from: [c.Data.CifDictionary], + to: [c.Molecule.Molecule], + defaultParams: function (t) { + return { blockIndex: 0 }; + }, + }, + function (t, i, o) { + return u.Task.create( + 'Create Molecule (' + i.props.label + ')', + 'Normal', + function (r) { + return D(e, void 0, void 0, function () { + var e, n; + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, r.updateProgress('Creating...')]; + case 1: + if ( + (t.sent(), + (e = 0 | o.params.blockIndex), + (n = i.props.dictionary.dataBlocks[e])) + ) + return ( + (n = Yc.Core.Formats.Molecule.mmCIF.ofDataBlock(n)), + [ + 2, + c.Molecule.Molecule.create(o, { + label: n.id, + molecule: n, + }), + ] + ); + throw ( + 'The source contains only ' + + i.props.dictionary.dataBlocks.length + + ' data block(s), tried to access the ' + + (1 + e) + + '-th.' + ); + } + }); + }); + }, + ).setReportTime(!0); + }, + )), + (o.CreateModel = u.Tree.Transformer.create( + { + id: 'molecule-create-model', + name: 'Model', + description: 'Create a model of a molecule.', + from: [c.Molecule.Molecule], + to: [c.Molecule.Model], + isUpdatable: !0, + defaultParams: function (t) { + return { modelIndex: 0 }; + }, + }, + function (t, r, i) { + return u.Task.create( + 'Create Model (' + r.props.label + ')', + 'Background', + function (t) { + return D(e, void 0, void 0, function () { + var e, n; + return P(this, function (t) { + if ( + ((e = i.params), + (e = 0 | e.modelIndex), + (n = r.props.molecule.models[e])) + ) + return [ + 2, + c.Molecule.Model.create(i, { + label: 'Model ' + n.modelId, + description: + n.data.atoms.count + + ' atom' + + (1 !== n.data.atoms.count ? 's' : ''), + model: n, + }), + ]; + throw ( + 'The molecule contains only ' + + r.props.molecule.models.length + + ' model(s), tried to access the ' + + (1 + e) + + '-th.' + ); + }); + }); + }, + ); + }, + )), + (o.CreateSelection = u.Tree.Transformer.create( + { + id: 'molecule-create-selection', + name: 'Selection', + description: 'Create an atom selection.', + from: [c.Molecule.Model, c.Molecule.Visual], + to: [c.Molecule.Selection], + isUpdatable: !0, + defaultParams: function (t) { + return { + queryString: t.settings.get('molecule.model.defaultQuery') || '', + }; + }, + validateParams: function (t) { + if (!(t.queryString || '').trim().length) return ['Enter query']; + try { + return void Yc.Core.Structure.Query.Builder.toQuery(t.queryString); + } catch (t) { + return ['' + t]; + } + }, + }, + function (t, i, o) { + return u.Task.create( + 'Create Selection (' + i.props.label + ')', + 'Background', + function (t) { + return D(e, void 0, void 0, function () { + var e, n, r; + return P(this, function (t) { + if ( + ((e = o.params), + (r = Yc.Core.Structure.Query.Builder.toQuery(e.queryString)), + (n = o.params.inFullContext + ? u.Utils.Molecule.findModel(i).props.model.queryContext + : u.Utils.Molecule.findQueryContext(i)), + (r = r(n).unionAtomIndices()).length) + ) + return [ + 2, + c.Molecule.Selection.create(o, { + label: e.name || 'Selection', + description: + r.length + ' atom' + (1 !== r.length ? 's' : ''), + indices: r, + }), + ]; + throw { + warn: !0, + message: + 'Empty selection' + + (o.params.name ? ' (' + o.params.name + ')' : '') + + '.', + }; + }); + }); + }, + ).setReportTime(!o.params.silent); + }, + )), + (o.CreateSelectionFromQuery = u.Tree.Transformer.create( + { + id: 'molecule-create-selection', + name: 'Selection', + description: 'Create an atom selection.', + from: [c.Molecule.Selection, c.Molecule.Model, c.Molecule.Visual], + to: [c.Molecule.Selection], + defaultParams: function (t) {}, + }, + function (t, i, o) { + return u.Task.create( + 'Create Selection (' + i.props.label + ')', + 'Background', + function (t) { + return D(e, void 0, void 0, function () { + var e, n, r; + return P(this, function (t) { + if ( + ((e = o.params), + (r = Yc.Core.Structure.Query.Builder.toQuery(e.query)), + (n = o.params.inFullContext + ? u.Utils.Molecule.findModel(i).props.model.queryContext + : u.Utils.Molecule.findQueryContext(i)), + (r = r(n).unionAtomIndices()).length) + ) + return [ + 2, + c.Molecule.Selection.create(o, { + label: e.name || 'Selection', + description: + r.length + ' atom' + (1 !== r.length ? 's' : ''), + indices: r, + }), + ]; + throw { + warn: !0, + message: + 'Empty selection' + + (o.params.name ? ' (' + o.params.name + ')' : '') + + '.', + }; + }); + }); + }, + ).setReportTime(!o.params.silent); + }, + )), + (o.CreateAssembly = u.Tree.Transformer.create( + { + id: 'molecule-create-assemly', + name: 'Assembly', + description: 'Create an assembly of a molecule.', + from: [c.Molecule.Model], + to: [c.Molecule.Model], + defaultParams: function (t, e) { + var e = u.Utils.Molecule.findModel(e), + n = { + name: t.settings.get('molecule.model.defaultAssemblyName') || '1', + }, + t = e.props.model.data.assemblyInfo; + return ( + t && + t.assemblies.length && + (t.assemblies.filter(function (t) { + return t.name === n.name; + }) || + (n.name = t.assemblies[0].name)), + n + ); + }, + isUpdatable: !0, + isApplicable: function (t) { + return !!( + t && + t.props.model.data.assemblyInfo && + t.props.model.data.assemblyInfo.assemblies.length + ); + }, + }, + function (t, i, o) { + return u.Task.create( + 'Create Model (' + i.props.label + ')', + 'Background', + function (r) { + return D(e, void 0, void 0, function () { + var e, n; + return P(this, function (t) { + switch (t.label) { + case 0: + if ( + !(e = i.props.model.data.assemblyInfo) || + !e.assemblies.length + ) + throw 'Assembly info not available.'; + if ( + (e = e.assemblies.filter(function (t) { + return t.name === o.params.name; + })[0]) + ) + return [4, r.updateProgress('Creating...')]; + throw "No assembly called '" + o.params.name + "' found."; + case 1: + return ( + t.sent(), + (n = Yc.Core.Structure.buildAssembly(i.props.model, e)), + [ + 2, + c.Molecule.Model.create(o, { + label: 'Assembly ' + e.name, + description: + n.data.atoms.count + + ' atom' + + (1 !== n.data.atoms.count ? 's' : ''), + model: n, + }), + ] + ); + } + }); + }); + }, + ); + }, + )), + (o.CreateSymmetryMates = u.Tree.Transformer.create( + { + id: 'molecule-create-symmetry-mates', + name: 'Crystal Symmetry', + description: 'Find crystal symmetry mates or interaction partners.', + from: [c.Molecule.Model], + to: [c.Molecule.Model], + defaultParams: function (t) { + return { type: 'Interaction', radius: 5 }; + }, + isUpdatable: !0, + isApplicable: function (t) { + if (!t || !t.props.model.data.symmetryInfo) return !1; + t = t.props.model.data.symmetryInfo; + return ( + 1 !== t.cellSize[0] || 1 !== t.cellSize[1] || 1 !== t.cellSize[2] + ); + }, + }, + function (t, i, o) { + return u.Task.create( + 'Create Model (' + i.props.label + ')', + 'Background', + function (r) { + return D(e, void 0, void 0, function () { + var e, n; + return P(this, function (t) { + switch (t.label) { + case 0: + if (i.props.model.data.symmetryInfo) + return ( + (e = Math.max(o.params.radius, 0)), + [4, r.updateProgress('Creating...')] + ); + throw 'Spacegroup info info not available.'; + case 1: + return ( + t.sent(), + (n = + 'Mates' === o.params.type + ? Yc.Core.Structure.buildSymmetryMates(i.props.model, e) + : Yc.Core.Structure.buildPivotGroupSymmetry( + i.props.model, + e, + )), + [ + 2, + c.Molecule.Model.create(o, { + label: 'Symmetry', + model: n, + description: + n.data.atoms.count + + ' atom' + + (1 !== n.data.atoms.count ? 's' : '') + + ', ' + + o.params.type + + ' ' + + u.Utils.round(e, 1) + + ' â„«', + }), + ] + ); + } + }); + }); + }, + ); + }, + )), + (o.ModelTransform3D = u.Tree.Transformer.create( + { + id: 'molecule-model-transform3d', + name: 'Transform 3D', + description: 'Transform 3D coordinates of a model using a 4x4 matrix.', + from: [c.Molecule.Model], + to: [c.Molecule.Model], + validateParams: function (t) { + return t && t.transform && 16 === t.transform.length + ? void 0 + : ['Specify a 4x4 transform matrix.']; + }, + defaultParams: function (t, e) { + return { transform: Yc.Core.Geometry.LinearAlgebra.Matrix4.identity() }; + }, + isUpdatable: !1, + }, + function (t, i, o) { + return u.Task.create( + 'Transform 3D (' + i.props.label + ')', + 'Normal', + function (r) { + return D(e, void 0, void 0, function () { + var e, n; + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, r.updateProgress('Transforming...')]; + case 1: + return ( + t.sent(), + (n = i.props.model), + (e = { + t: o.params.transform, + v: Yc.Core.Geometry.LinearAlgebra.Vector3.zero(), + }), + (n = Yc.Core.Structure.Molecule.Model.withTransformedXYZ( + n, + e, + function (t, e, n, r, i) { + var o = t.v; + Yc.Core.Geometry.LinearAlgebra.Vector3.set(o, e, n, r), + Yc.Core.Geometry.LinearAlgebra.Vector3.transformMat4( + i, + o, + t.t, + ); + }, + )), + [ + 2, + c.Molecule.Model.create(o, { + label: i.props.label, + description: o.params.description || 'Transformed', + model: n, + }), + ] + ); + } + }); + }); + }, + ); + }, + )), + (o.CreateVisual = u.Tree.Transformer.create( + { + id: 'molecule-create-visual', + name: 'Visual', + description: 'Create a visual of a molecule or a selection.', + from: [c.Molecule.Model, c.Molecule.Selection], + to: [c.Molecule.Visual], + isUpdatable: !0, + defaultParams: function (t) { + return { + style: u.Visualization.Molecule.Default.ForType.get('Cartoons'), + }; + }, + validateParams: function (t) { + return t.style ? void 0 : ['Specify Style']; + }, + customController: function (t, e, n) { + return new u.Components.Transform.MoleculeVisual(t, e, n); + }, + }, + function (t, e, n) { + var r = n.params; + return u.Visualization.Molecule.create(e, n, r.style).setReportTime( + 'Normal' === u.Visualization.Style.getTaskType(n.params.style), + ); + }, + function (t, e, n) { + var r = e.transform.params; + if ( + r.style.type === n.params.style.type && + u.Utils.deepEqual(r.style.params, n.params.style.params) + ) { + r = e.props.model; + if (r) { + var i, + o = u.Utils.Molecule.findModel(e.parent); + if (o) + return ( + (o = (i = n.params.style.theme).template.provider( + o, + u.Visualization.Theme.getProps(i), + )), + r.applyTheme(o), + (e.props.style = n.params.style), + c.nodeUpdated(e), + u.Task.resolve( + n.transformer.info.name, + 'Background', + u.Tree.Node.Null, + ) + ); + } + } + }, + )), + (o.CreateMacromoleculeVisual = u.Tree.Transformer.action( + { + id: 'molecule-create-macromolecule-visual', + name: 'Macromolecule Visual', + description: + 'Create a visual of a molecule that is split into polymer, HET, and water parts.', + from: [c.Molecule.Selection, c.Molecule.Model], + to: [c.Action], + validateParams: function (t) { + return t.polymer || t.het || t.water + ? void 0 + : ['Select at least one component']; + }, + defaultParams: function (t) { + return { polymer: !0, het: !0, water: !0 }; + }, + }, + function (t, e, n) { + var r, + e = u.Tree.Transform.build().add( + e, + Oc.Basic.CreateGroup, + { label: 'Group', description: 'Macromolecule' }, + { ref: n.params.groupRef }, + ); + return ( + n.params.polymer && + e + .then( + o.CreateSelectionFromQuery, + { + query: Yc.Core.Structure.Query.nonHetPolymer(), + name: 'Polymer', + silent: !0, + }, + { isBinding: !0 }, + ) + .then( + o.CreateVisual, + { + style: u.Visualization.Molecule.Default.ForType.get('Cartoons'), + }, + { ref: n.params.polymerRef }, + ), + n.params.het && + e + .then( + o.CreateSelectionFromQuery, + { + query: Yc.Core.Structure.Query.hetGroups(), + name: 'HET', + silent: !0, + }, + { isBinding: !0 }, + ) + .then( + o.CreateVisual, + { + style: + u.Visualization.Molecule.Default.ForType.get( + 'BallsAndSticks', + ), + }, + { ref: n.params.hetRef }, + ), + n.params.water && + ((r = { + type: 'BallsAndSticks', + params: { + useVDW: !1, + atomRadius: 0.23, + bondRadius: 0.09, + detail: 'Automatic', + }, + theme: { + template: + u.Visualization.Molecule.Default.ElementSymbolThemeTemplate, + colors: + u.Visualization.Molecule.Default.ElementSymbolThemeTemplate + .colors, + transparency: { alpha: 0.25 }, + }, + }), + e + .then( + o.CreateSelectionFromQuery, + { + query: Yc.Core.Structure.Query.entities({ type: 'water' }), + name: 'Water', + silent: !0, + }, + { isBinding: !0 }, + ) + .then(o.CreateVisual, { style: r }, { ref: n.params.waterRef })), + e + ); + }, + )), + (o.CreateLabels = u.Tree.Transformer.create( + { + id: 'molecule-create-labels', + name: 'Labels', + description: 'Create a labels for a molecule or a selection.', + from: [c.Molecule.Model, c.Molecule.Selection, c.Molecule.Visual], + to: [c.Visual.Labels], + isUpdatable: !0, + defaultParams: function (t) { + return { style: u.Visualization.Labels.Default.MoleculeLabels }; + }, + validateParams: function (t) { + return t.style ? void 0 : ['Specify Style']; + }, + customController: function (t, e, n) { + return new u.Components.Transform.MoleculeLabels(t, e, n); + }, + }, + function (t, e, n) { + var r = n.params; + return u.Visualization.Labels.createMoleculeLabels( + e, + n, + r.style, + ).setReportTime(!1); + }, + function (t, e, n) { + var r = e.transform.params, + i = n.params; + if ( + u.Visualization.Labels.Style.moleculeHasOnlyThemeChanged( + r.style, + i.style, + ) + ) { + var r = e.props.model, + o = u.Tree.Node.findClosestNodeOfType(e, [ + c.Molecule.Model, + c.Molecule.Selection, + c.Molecule.Visual, + ]); + if (o) + return ( + (o = i.style.theme.template.provider( + o, + u.Visualization.Theme.getProps(i.style.theme), + )), + r.applyTheme(o), + c.nodeUpdated(e), + u.Task.resolve( + n.transformer.info.name, + 'Background', + u.Tree.Node.Null, + ) + ); + } + }, + )); + })((Oc = c.Transformer || (c.Transformer = {})).Molecule || (Oc.Molecule = {})), + (e = F = F || {}), + (Gc = e.Bootstrap || (e.Bootstrap = {})), + (zc = Gc.Entity || (Gc.Entity = {})), + (( + (e = zc.Transformer || (zc.Transformer = {})).Labels || (e.Labels = {}) + ).Create = Gc.Tree.Transformer.create( + { + id: 'labels-create', + name: 'Labels', + description: 'Create a labels for a molecule or a selection.', + from: [], + to: [zc.Visual.Labels], + isUpdatable: !1, + defaultParams: function (t) { + return {}; + }, + customController: function (t, e, n) { + return new Gc.Components.Transform.MoleculeLabels(t, e, n); + }, + }, + function (t, e, n) { + return Gc.Visualization.Labels.createGenericLabels( + e, + n, + n.params, + ).setReportTime(!1); + }, + function (t, e, n) { + var r = e.transform.params, + i = n.params; + if ( + r.positions === i.positions && + r.sizes === i.sizes && + r.labels === i.labels && + r.options === i.options + ) { + var r = e.props.model, + o = Gc.Tree.Node.findClosestNodeOfType(e, [zc.Root]); + if (o) + return ( + (o = i.style.theme.template.provider( + o, + Gc.Visualization.Theme.getProps(i.style.theme), + )), + r.applyTheme(o), + zc.nodeUpdated(e), + Gc.Task.resolve( + n.transformer.info.name, + 'Background', + Gc.Tree.Node.Null, + ) + ); + } + }, + )), + (Hc = F = F || {}), + (jc = Hc.Bootstrap || (Hc.Bootstrap = {})), + (Vc = jc.Entity || (jc.Entity = {})), + (function (t) { + var e = this; + function o(t) { + return null != t && 'binary' === t.toLowerCase() ? 'Binary' : 'String'; + } + (t.Download = jc.Tree.Transformer.create( + { + id: 'data-download', + name: 'Download Data', + description: + 'Downloads a string or binary data from the given URL (if the host server supports cross domain requests).', + from: [Vc.Root], + to: [Vc.Data.String, Vc.Data.Binary], + validateParams: function (t) { + return t.url && t.url.trim().length + ? t.type + ? 'String' === t.type && + (void 0 === (t = t.responseCompression) + ? jc.Utils.DataCompressionMethod.None + : t) !== jc.Utils.DataCompressionMethod.None + ? ['Decompression is only available for Binary data.'] + : void 0 + : ['Specify type'] + : ['Enter URL']; + }, + defaultParams: function () { + return { + id: '', + description: '', + type: 'String', + url: '', + responseCompression: jc.Utils.DataCompressionMethod.None, + }; + }, + }, + function (n, t, r) { + var i = r.params; + return jc.Task.create('Download', 'Silent', function () { + return D(e, void 0, void 0, function () { + var e; + return P(this, function (t) { + switch (t.label) { + case 0: + return [ + 4, + jc.Utils.ajaxGet({ + url: i.url, + type: o(i.type), + compression: i.responseCompression, + title: i.title, + }) + .setReportTime(!0) + .run(n), + ]; + case 1: + return ( + (e = t.sent()), + 'String' === i.type + ? [ + 2, + Vc.Data.String.create(r, { + label: i.id || i.url, + description: i.description, + data: e, + }), + ] + : [ + 2, + Vc.Data.Binary.create(r, { + label: i.id || i.url, + description: i.description, + data: e, + }), + ] + ); + } + }); + }); + }); + }, + )), + (t.OpenFile = jc.Tree.Transformer.create( + { + id: 'data-open-file', + name: 'Open Data File', + description: 'Read a string or binary data from the selected file.', + from: [Vc.Root], + to: [Vc.Data.String, Vc.Data.Binary], + validateParams: function (t) { + return t.file ? void 0 : ['Select a file']; + }, + defaultParams: function () { + return { type: 'String', file: void 0 }; + }, + }, + function (r, t, i) { + return jc.Task.create('Download', 'Silent', function (t) { + return D(e, void 0, void 0, function () { + var e, n; + return P(this, function (t) { + switch (t.label) { + case 0: + return ( + (e = i.params), + [ + 4, + jc.Utils.readFromFile(e.file, o(e.type)) + .setReportTime(!0) + .run(r), + ] + ); + case 1: + return ( + (n = t.sent()), + 'String' === e.type + ? [ + 2, + Vc.Data.String.create(i, { + label: e.id || e.file.name, + description: e.description, + data: n, + }), + ] + : [ + 2, + Vc.Data.Binary.create(i, { + label: e.id || e.file.name, + description: e.description, + data: n, + }), + ] + ); + } + }); + }); + }); + }, + )), + (t.ParseCif = jc.Tree.Transformer.create( + { + id: 'data-parse-cif', + name: 'CIF Dictionary', + description: 'Parse CIF dictionary from a string.', + from: [Vc.Data.String], + to: [Vc.Data.CifDictionary], + defaultParams: function () { + return {}; + }, + }, + function (t, r, i) { + return jc.Task.create( + 'CIF Parse (' + r.props.label + ')', + 'Normal', + function (n) { + return D(e, void 0, void 0, function () { + var e; + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, n.updateProgress('Parsing...')]; + case 1: + if ( + (t.sent(), + (e = Hc.Core.Formats.CIF.Text.parse(r.props.data)).isError) + ) + throw e.toString(); + return [ + 2, + Vc.Data.CifDictionary.create(i, { + label: i.params.id || 'CIF Dictionary', + description: i.params.description, + dictionary: e.result, + }), + ]; + } + }); + }); + }, + ).setReportTime(!0); + }, + )), + (t.ParseBinaryCif = jc.Tree.Transformer.create( + { + id: 'data-parse-binary-cif', + name: 'CIF Dictionary', + description: 'Parse CIF dictionary from BinaryCIF data.', + from: [Vc.Data.Binary], + to: [Vc.Data.CifDictionary], + defaultParams: function () { + return {}; + }, + }, + function (t, r, i) { + return jc.Task.create( + 'BinaryCIF Parse (' + r.props.label + ')', + 'Normal', + function (n) { + return D(e, void 0, void 0, function () { + var e; + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, n.updateProgress('Parsing...')]; + case 1: + if ( + (t.sent(), + (e = Hc.Core.Formats.CIF.Binary.parse(r.props.data)) + .isError) + ) + throw e.toString(); + return [ + 2, + Vc.Data.CifDictionary.create(i, { + label: i.params.id || 'CIF Dictionary', + description: i.params.description, + dictionary: e.result, + }), + ]; + } + }); + }); + }, + ).setReportTime(!0); + }, + )), + (t.ParseJson = jc.Tree.Transformer.create( + { + id: 'data-parse-json', + name: 'JSON', + description: 'Parse a string to JSON object.', + from: [Vc.Data.String], + to: [Vc.Data.Json], + defaultParams: function () { + return {}; + }, + }, + function (t, r, i) { + return jc.Task.create( + 'JSON Parse (' + r.props.label + ')', + 'Normal', + function (n) { + return D(e, void 0, void 0, function () { + var e; + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, n.updateProgress('Parsing...')]; + case 1: + return ( + t.sent(), + (e = JSON.parse(r.props.data)), + [ + 2, + Vc.Data.Json.create(i, { + label: i.params.id || 'JSON Data', + description: i.params.description, + data: e, + }), + ] + ); + } + }); + }); + }, + ).setReportTime(!0); + }, + )), + (t.FromData = jc.Tree.Transformer.create( + { + id: 'data-from-data', + name: 'From Data', + description: 'Creates a data entity from string or binary data', + from: [Vc.Root], + to: [Vc.Data.String, Vc.Data.Binary], + defaultParams: function () {}, + }, + function (t, e, n) { + var r = n.params.data, + n = + r instanceof ArrayBuffer + ? Vc.Data.Binary.create(n, { + label: n.params.id || 'Binary Data', + description: n.params.description, + data: r, + }) + : Vc.Data.String.create(n, { + label: n.params.id || 'String Data', + description: n.params.description, + data: r, + }); + return jc.Task.resolve('From Data', 'Silent', n); + }, + )); + })((t = Vc.Transformer || (Vc.Transformer = {})).Data || (t.Data = {})), + (qc = F = F || {}), + (A = qc.Bootstrap || (qc.Bootstrap = {})), + (Wc = A.Entity || (A.Entity = {})), + (function (t) { + var e = this; + function s(t, e, n) { + if (A.Visualization.Density.areNonIsoParamsSame(e, n)) + return ( + (t = t.valuesInfo), + (e = + e.isoValueType === A.Visualization.Density.IsoValueType.Absolute + ? e.isoValue + : t.mean + t.sigma * e.isoValue), + (t = + n.isoValueType === A.Visualization.Density.IsoValueType.Absolute + ? n.isoValue + : t.mean + t.sigma * n.isoValue), + Math.abs(e - t) < 1e-6 + ); + } + (t.ParseData = A.Tree.Transformer.create( + { + id: 'density-parse-binary', + name: 'Density Data', + description: 'Parse density from binary data.', + from: [Wc.Data.String, Wc.Data.Binary], + to: [Wc.Density.Data], + isUpdatable: !0, + defaultParams: function () { + return { format: qc.Core.Formats.Density.SupportedFormats.CCP4 }; + }, + }, + function (n, r, i) { + return A.Task.create( + 'Create Density (' + r.props.label + ')', + 'Background', + function (t) { + return D(e, void 0, void 0, function () { + var e; + return P(this, function (t) { + switch (t.label) { + case 0: + return [ + 4, + A.Task.fromComputation( + 'Parse Density (' + r.props.label + ')', + 'Normal', + i.params.format.parse(r.props.data), + ) + .setReportTime(!0) + .run(n), + ]; + case 1: + if ((e = t.sent()).isError) throw e.toString(); + return [ + 2, + Wc.Density.Data.create(i, { + label: i.params.id || 'Density Data', + data: e.result, + }), + ]; + } + }); + }); + }, + ); + }, + )), + (t.CreateFromCif = A.Tree.Transformer.create( + { + id: 'density-create-from-cif', + name: 'Density Data', + description: 'Parse density from CIF data.', + from: [Wc.Data.CifDictionary], + to: [Wc.Density.Data], + isUpdatable: !1, + defaultParams: function () { + return { blockIndex: 0 }; + }, + }, + function (t, r, i) { + return A.Task.create('Create Density', 'Normal', function (n) { + return D(e, void 0, void 0, function () { + var e; + return P(this, function (t) { + switch (t.label) { + case 0: + return [4, n.updateProgress('Parsing...')]; + case 1: + if ( + (t.sent(), + (e = qc.Core.Formats.Density.CIF.parse( + r.props.dictionary.dataBlocks[i.params.blockIndex], + )).isError) + ) + throw e.toString(); + return [ + 2, + Wc.Density.Data.create(i, { + label: i.params.id || 'Density Data', + data: e.result, + description: e.result.name, + }), + ]; + } + }); + }); + }).setReportTime(!0); + }, + )), + (t.CreateFromData = A.Tree.Transformer.create( + { + id: 'density-create-from-data', + name: 'Density Data', + description: 'Create density from data.', + from: [], + to: [Wc.Density.Data], + isUpdatable: !1, + defaultParams: function () { + return {}; + }, + }, + function (t, e, n) { + n = Wc.Density.Data.create(n, { + label: n.params.id || 'Density Data', + data: n.params.data, + description: n.params.data.name, + }); + return A.Task.resolve('Create Density', 'Background', n); + }, + )), + (t.CreateVisual = A.Tree.Transformer.create( + { + id: 'density-create-visual', + name: 'Surface', + description: 'Create a surface from the density data.', + from: [Wc.Density.Data], + to: [Wc.Density.Visual], + isUpdatable: !0, + defaultParams: function () { + return { style: A.Visualization.Density.Default.Style }; + }, + validateParams: function (t) { + return t.style ? void 0 : ['Specify Style']; + }, + customController: function (t, e, n) { + return new A.Components.Transform.DensityVisual(t, e, n); + }, + }, + function (t, e, n) { + var r = n.params; + return A.Visualization.Density.create(e, n, r.style).setReportTime( + 'Normal' === A.Visualization.Style.getTaskType(n.params.style), + ); + }, + function (t, e, n) { + var r = e.transform.params.style, + i = n.params.style; + if (r.type === n.params.style.type) { + var o = A.Tree.Node.findClosestNodeOfType(e, [Wc.Density.Data]); + if (o) { + var a = e.props.model; + if (a) + if (s(o.props.data, r.params, i.params)) + return ( + A.Utils.deepEqual(r.theme, n.params.style.theme) || + ((i = (r = i.theme).template.provider( + o, + A.Visualization.Theme.getProps(r), + )), + a.applyTheme(i), + (e.props.style.theme = r), + Wc.nodeUpdated(e)), + A.Task.resolve( + n.transformer.info.name, + 'Background', + A.Tree.Node.Null, + ) + ); + } + } + }, + )), + (t.CreateVisualBehaviour = A.Tree.Transformer.create( + { + id: 'density-create-visual-behaviour', + name: 'Interactive Surface', + description: + 'Create a surface from the density data when a residue or atom is selected.', + from: [Wc.Density.Data], + to: [Wc.Density.InteractiveSurface], + isUpdatable: !0, + defaultParams: function (t) { + return { + style: A.Visualization.Density.Default.Style, + radius: t.settings.get('density.defaultVisualBehaviourRadius') || 0, + isoSigmaMin: -5, + isoSigmaMax: 5, + minRadius: 0, + maxRadius: 10, + showFull: !1, + }; + }, + customController: function (t, e, n) { + return new A.Components.Transform.DensityVisual(t, e, n); + }, + }, + function (t, e, n) { + var r = n.params, + t = new A.Behaviour.Density.ShowDynamicDensity(t, { + style: r.style, + radius: r.radius, + showFull: r.showFull, + }), + i = + void 0 === r.style.params.isoValueType || + r.style.params.isoValueType === + A.Visualization.Density.IsoValueType.Sigma; + return A.Task.resolve( + 'Behaviour', + 'Background', + Wc.Density.InteractiveSurface.create(n, { + label: + (r.id ? n.params.id : 'Interactive') + + ', ' + + A.Utils.round(r.style.params.isoValue, 2) + + (i ? ' σ' : ''), + behaviour: t, + }), + ); + }, + function (t, e, n) { + var r = e.transform.params, + i = n.params; + if ( + r.style.type === i.style.type && + r.isoSigmaMin === i.isoSigmaMin && + r.isoSigmaMax === i.isoSigmaMax && + r.minRadius === i.minRadius && + r.maxRadius === i.maxRadius && + r.radius === i.radius && + r.showFull === i.showFull + ) { + var o = A.Tree.Node.findClosestNodeOfType(e, [Wc.Density.Data]); + if (o) + if (s(o.props.data, r.style.params, i.style.params)) + return ( + (o = i.style.theme), + e.props.behaviour.updateTheme(o), + Wc.nodeUpdated(e), + A.Task.resolve( + n.transformer.info.name, + 'Background', + A.Tree.Node.Null, + ) + ); + } + }, + )); + })((n = Wc.Transformer || (Wc.Transformer = {})).Density || (n.Density = {})), + (Jc = F = F || {}), + (Kc = Jc.Bootstrap || (Jc.Bootstrap = {})), + (Zc = Kc.Entity || (Kc.Entity = {})), + (Xc = Zc.Transformer || (Zc.Transformer = {})), + (function (r) { + var i = this; + (r.CreateBehaviour = Kc.Tree.Transformer.create( + { + id: 'streaming-create-behaviour', + name: 'Coordinate Streaming', + description: 'Enable coordinate data streaming for this molecule.', + from: [Zc.Molecule.Model], + to: [Zc.Molecule.CoordinateStreaming.Behaviour], + defaultParams: function (t) { + return { + server: + t.settings.get('molecule.coordinateStreaming.defaultServer') || '', + radius: + t.settings.get('molecule.coordinateStreaming.defaultRadius') || 0, + }; + }, + }, + function (t, e, n) { + return Kc.Task.resolve( + 'Behaviour', + 'Background', + Zc.Molecule.CoordinateStreaming.Behaviour.create(n, { + label: 'Coordinate Streaming', + behaviour: new Kc.Behaviour.Molecule.CoordinateStreaming( + t, + n.params.server, + n.params.radius, + ), + }), + ); + }, + )), + (r.CreateModel = Kc.Tree.Transformer.create( + { + id: 'streaming-create-model', + name: 'Streaming Model', + description: '', + from: [Zc.Molecule.CoordinateStreaming.Behaviour], + to: [Zc.Molecule.Model], + defaultParams: function () {}, + }, + function (t, e, n) { + return Kc.Task.create('Load', 'Silent', function (t) { + return D(i, void 0, void 0, function () { + var e; + return P(this, function (t) { + if ((e = Jc.Core.Formats.CIF.Binary.parse(n.params.data)).isError) + throw new Error('Invalid CIF.'); + return ( + (e = Jc.Core.Formats.Molecule.mmCIF.ofDataBlock( + e.result.dataBlocks[0], + ).models[0]), + n.params.transform && + Jc.Core.Structure.Operator.applyToModelUnsafe( + n.params.transform, + e, + ), + [2, Zc.Molecule.Model.create(n, { label: 'part', model: e })] + ); + }); + }); + }); + }, + )), + (r.InitStreaming = Kc.Tree.Transformer.action( + { + id: 'streaming-init', + name: 'Coordinate Streaming', + description: + 'Download a smaller version of the molecule required to display cartoon representation and stream the rest of the coordinates as required.', + from: [Zc.Root], + to: [Zc.Action], + validateParams: function (t) { + return (t.id || '').trim().length + ? (t.server || '').trim().length + ? void 0 + : ['Specify server'] + : ['Enter id']; + }, + defaultParams: function (t) { + return { + id: t.settings.get('molecule.coordinateStreaming.defaultId') || '', + server: + t.settings.get('molecule.coordinateStreaming.defaultServer') || '', + radius: + t.settings.get('molecule.coordinateStreaming.defaultRadius') || 0, + }; + }, + }, + function (t, e, n) { + return Kc.Tree.Transform.build() + .add(e, Xc.Data.Download, { + url: Kc.Behaviour.Molecule.CoordinateStreaming.getBaseUrl( + n.params.id, + n.params.server, + ), + type: 'Binary', + id: n.params.id, + }) + .then(Xc.Data.ParseBinaryCif, { id: n.params.id }, { isBinding: !0 }) + .then($c.CreateFromMmCif, { blockIndex: 0 }, { isBinding: !0 }) + .then($c.CreateModel, { modelIndex: 0 }, { isBinding: !1 }) + .then(r.CreateBehaviour, { + server: n.params.server, + radius: n.params.radius, + }); + }, + )); + })( + ($c = Xc.Molecule || (Xc.Molecule = {})).CoordinateStreaming || + ($c.CoordinateStreaming = {}), + ), + (tA = F = F || {}), + (eA = tA.Bootstrap || (tA.Bootstrap = {})), + (function (t) { + var m = tA.Core.Geometry.LinearAlgebra, + e = [eA.Entity.Molecule.Model]; + function r(t) { + return eA.Tree.Node.findClosestNodeOfType(t, e); + } + t.findModel = r; + var i = [eA.Entity.Molecule.Model, eA.Entity.Molecule.Selection]; + t.findModelOrSelection = function (t) { + return eA.Tree.Node.findClosestNodeOfType(t, i); + }; + var n = [eA.Entity.Molecule.Molecule]; + function v(t) { + var e, + n, + t = eA.Tree.Node.findClosestNodeOfType(t, i); + return eA.Entity.isMoleculeModel(t) + ? t.props.model.queryContext + : (n = (e = t.tree.context.entityCache).get( + t, + eA.Entity.Cache.Keys.QueryContext, + )) || + ((n = tA.Core.Structure.Query.Context.ofAtomIndices( + r(t).props.model, + t.props.indices, + )), + e.set(t, eA.Entity.Cache.Keys.QueryContext, n)); + } + function o(t) { + (this.center = { x: 0, y: 0, z: 0 }), + (this.radiusSquared = 0), + (this.count = 0), + (this.x = t.positions.x), + (this.y = t.positions.y), + (this.z = t.positions.z); + } + function b(t, e, n) { + m.Vector3.set(n, 0, 0, 0); + var t = t.positions, + r = t.x, + i = t.y, + o = t.z; + if (0 === e.length) return 0; + if (1 === e.length) return m.Vector3.set(n, r[e[0]], i[e[0]], o[e[0]]), 0; + for (var a = 0, s = e; a < s.length; a++) { + var l = s[a]; + (n[0] += r[l]), (n[1] += i[l]), (n[2] += o[l]); + } + for ( + var t = e.length, + u = ((n[0] /= t), (n[1] /= t), (n[2] /= t), 0), + c = 0, + A = e; + c < A.length; + c++ + ) + var l = A[c], + h = n[0] - r[l], + p = n[1] - i[l], + d = n[2] - o[l], + u = Math.max(u, h * h + p * p + d * d); + return Math.sqrt(u); + } + (t.findMolecule = function (t) { + return eA.Tree.Node.findClosestNodeOfType(t, n); + }), + (t.findQueryContext = v), + (t.getDistance = function (t, e, n, r, i, o) { + for ( + var a = (t = t.positions).x, + s = t.y, + l = t.z, + u = (t = r.positions).x, + c = t.y, + A = t.z, + h = Number.POSITIVE_INFINITY, + p = e; + p < n; + p++ + ) + for (var d = i; d < o; d++) + var f = a[p] - u[d], + g = s[p] - c[d], + m = l[p] - A[d], + h = Math.min(h, f * f + g * g + m * m); + return Math.sqrt(h); + }), + (t.getDistanceSet = function (t, e, n, r) { + for ( + var i = (t = t.positions).x, + o = t.y, + a = t.z, + s = (t = n.positions).x, + l = t.y, + u = t.z, + c = Number.POSITIVE_INFINITY, + A = 0, + h = e; + A < h.length; + A++ + ) + for (var p = h[A], d = 0, f = r; d < f.length; d++) + var g = f[d], + m = i[p] - s[g], + v = o[p] - l[g], + g = a[p] - u[g], + c = Math.min(c, m * m + v * v + g * g); + return Math.sqrt(c); + }), + (t.getModelAndIndicesFromQuery = function (t, e) { + var n = r(t); + if (n) { + t = v(t); + try { + return { + model: n, + indices: + tA.Core.Structure.Query.Builder.toQuery(e)(t).unionAtomIndices(), + queryContext: t, + }; + } catch (t) { + return void console.error('Query Execution', t); + } + } else console.warn('Could not find a model for query selection.'); + }), + (t.getResidueIndices = function (t, e) { + for ( + var n = t.data.atoms.residueIndex, + r = [], + i = t.data.residues.atomStartIndex[n[e]], + o = t.data.residues.atomEndIndex[n[e]]; + i < o; + i++ + ) + r.push(i); + return r; + }), + (t.getBox = function (t, e, n) { + for ( + var r = (t = t.positions).x, + i = t.y, + o = t.z, + a = [Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE], + s = [-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE], + l = 0, + u = e; + l < u.length; + l++ + ) { + var c = u[l]; + (a[0] = Math.min(r[c], a[0])), + (a[1] = Math.min(i[c], a[1])), + (a[2] = Math.min(o[c], a[2])), + (s[0] = Math.max(r[c], s[0])), + (s[1] = Math.max(i[c], s[1])), + (s[2] = Math.max(o[c], s[2])); + } + return ( + (a[0] = a[0] - n), + (a[1] = a[1] - n), + (a[2] = a[2] - n), + (s[0] = s[0] + n), + (s[1] = s[1] + n), + (s[2] = s[2] + n), + { bottomLeft: a, topRight: s } + ); + }), + (o.prototype.addAtom = function (t) { + this.count++, + (this.center.x += this.x[t]), + (this.center.y += this.y[t]), + (this.center.z += this.z[t]); + }), + (o.prototype.finishedAdding = function () { + (this.center.x /= this.count), + (this.center.y /= this.count), + (this.center.z /= this.count); + }), + (o.prototype.radiusVisit = function (t) { + var e = this.center.x - this.x[t], + n = this.center.y - this.y[t], + t = this.center.z - this.z[t]; + this.radiusSquared = Math.max(this.radiusSquared, e * e + n * n + t * t); + }), + (t.CentroidHelper = o), + (t.getCentroidAndRadius = b), + (t.Labels3DKinds = [ + 'Residue-Name', + 'Residue-Full-Id', + 'Atom-Name', + 'Atom-Element', + ]), + (t.Labels3DKindLabels = { + 'Residue-Name': 'Residue Name', + 'Residue-Full-Id': 'Residue Full Id', + 'Atom-Name': 'Atom Name', + 'Atom-Element': 'Atom Element', + }), + (t.create3DLabelsParams = function (t, e, n) { + for ( + var r = v(t), + t = ( + 0 <= e.kind.indexOf('Residue') + ? tA.Core.Structure.Query.residues() + : tA.Core.Structure.Query.allAtoms() + ).compile()(r), + i = (function (t, e) { + var n = e.data.atoms, + r = n.residueIndex, + i = n.chainIndex, + o = n.name, + a = n.elementSymbol, + s = (n = e.data.residues).name, + l = n.seqNumber, + u = e.data.chains.authAsymId; + switch (t.kind) { + case 'Residue-Name': + return function (t) { + return s[r[t]]; + }; + case 'Residue-Full-Id': + return function (t) { + var e = r[t], + t = i[t]; + return s[e] + ' ' + u[t] + ' ' + l[e]; + }; + case 'Atom-Name': + return function (t) { + return o[t]; + }; + case 'Atom-Element': + return function (t) { + return a[t]; + }; + default: + return function (t) { + return '' + t; + }; + } + })(e, r.structure), + o = tA.Core.Utils.DataTable.ofDefinition( + tA.Core.Structure.Tables.Positions, + t.length, + ), + a = o.x, + s = o.y, + l = o.z, + u = [], + c = new Float32Array(t.length), + A = m.Vector3.zero(), + h = 0, + p = 0, + d = t.fragments; + p < d.length; + p++ + ) { + var f = d[p], + g = i(f.atomIndices[0]); + b(r.structure, f.atomIndices, A), + (a[h] = A[0]), + (s[h] = A[1]), + (l[h] = A[2]), + (u[u.length] = g), + (c[h] = 1), + h++; + } + return { + labels: u, + options: e.labelsOptions, + positions: o, + sizes: c, + theme: n, + }; + }); + })((E = eA.Utils || (eA.Utils = {})).Molecule || (E.Molecule = {})), + (r = F = F || {}), + (function (t) { + function e(t) { + (this.context = t), + (this.subjects = { + select: new nA.Rx.BehaviorSubject(nA.Interactivity.Info.empty), + click: new nA.Rx.BehaviorSubject(nA.Interactivity.Info.empty), + currentEntity: new nA.Rx.BehaviorSubject(void 0), + }), + (this.select = this.subjects.select.distinctUntilChanged(function (t) { + return t; + }, nA.Interactivity.interactivityInfoEqual)), + (this.click = this.subjects.click.distinctUntilChanged(function (t) { + return t; + }, nA.Interactivity.interactivityInfoEqual)), + (this.currentEntity = this.subjects.currentEntity), + this.init(); + } + (e.prototype.init = function () { + var e = this, + n = nA.Interactivity.Info.empty; + nA.Event.Tree.NodeRemoved.getStream(this.context).subscribe(function (t) { + nA.Interactivity.isSelection(n) && + n.source === t.data && + ((n = nA.Interactivity.Info.empty), + nA.Event.Visual.VisualSelectElement.dispatch(e.context, n)); + }), + nA.Event.Visual.VisualSelectElement.getStream(this.context).subscribe( + function (t) { + (n = t.data), + e.subjects.click.onNext(n), + (nA.Interactivity.isSelection(n) && + nA.Entity.isVisual(n.source) && + !n.source.props.isSelectable) || + e.subjects.select.onNext(n); + }, + ), + nA.Event.Entity.CurrentChanged.getStream(this.context).subscribe( + function (t) { + return e.subjects.currentEntity.onNext(t.data); + }, + ); + }), + (t.Streams = e); + })((nA = r.Bootstrap || (r.Bootstrap = {})).Behaviour || (nA.Behaviour = {})), + (rA = F = F || {}), + (h = rA.Bootstrap || (rA.Bootstrap = {})), + ((iA = h.Behaviour || (h.Behaviour = {})).SetEntityToCurrentWhenAdded = function ( + e, + ) { + h.Event.Tree.NodeAdded.getStream(e).subscribe(function (t) { + t = t.data; + (t && (t.transform.isUpdate || t.type.info.traits.isSilent)) || + h.Command.Entity.SetCurrent.dispatch(e, t); + }); + }), + (iA.SuppressCreateVisualWhenModelIsAdded = !1), + (iA.CreateVisualWhenModelIsAdded = function (n) { + h.Event.Tree.NodeAdded.getStream(n).subscribe(function (t) { + var e; + iA.SuppressCreateVisualWhenModelIsAdded || + !h.Tree.Node.is(t.data, h.Entity.Molecule.Model) || + t.data.isHidden || + ((e = + h.Entity.Transformer.Molecule.CreateMacromoleculeVisual.info.defaultParams( + n, + t.data, + )), + h.Command.Tree.ApplyTransform.dispatch(n, { + node: t.data, + transform: + h.Entity.Transformer.Molecule.CreateMacromoleculeVisual.create(e), + })); + }); + }), + (iA.ApplySelectionToVisual = function (t) { + h.Event.Tree.NodeAdded.getStream(t).subscribe(function (t) { + t = t.data; + h.Entity.isMoleculeSelection(t) && + h.Entity.isVisual(t.parent) && + t.parent.props.model.applySelection(t.props.indices, 1); + }), + h.Event.Tree.NodeRemoved.getStream(t).subscribe(function (t) { + t = t.data; + h.Entity.isMoleculeSelection(t) && + h.Entity.isVisual(t.parent) && + t.parent.props.model.applySelection(t.props.indices, 2); + }); + }), + (iA.ApplyInteractivitySelection = function (t) { + Jh(t.behaviours.click); + }), + (iA.FilteredApplyInteractivitySelection = function (n) { + return function (e) { + Jh( + e.behaviours.click.filter(function (t) { + return n(t, e); + }), + ); + }; + }), + (iA.UnselectElementOnRepeatedClick = function (e) { + var n = h.Interactivity.Info.empty; + h.Event.Visual.VisualSelectElement.getStream(e).subscribe(function (t) { + !h.Interactivity.isEmpty(t.data) && + !h.Interactivity.isEmpty(n) && + (h.Tree.Node.hasAncestor(n.source, t.data.source) || + h.Tree.Node.hasAncestor(t.data.source, n.source)) && + h.Interactivity.interactivitySelectionElementsEqual(t.data, n) + ? ((n = h.Interactivity.Info.empty), + setTimeout(function () { + return h.Event.Visual.VisualSelectElement.dispatch( + e, + h.Interactivity.Info.empty, + ); + }, 0)) + : (n = t.data); + }); + }), + (oA = rA.Core.Geometry.LinearAlgebra.Vector3.zero()), + (iA.FocusCameraOnSelect = function (t) { + Kh(t.behaviours.click, t); + }), + (iA.FilteredFocusCameraOnSelect = function (n) { + return function (e) { + Kh( + e.behaviours.click.filter(function (t) { + return n(t, e); + }), + e, + ); + }; + }), + (aA = F = F || {}), + (p = aA.Bootstrap || (aA.Bootstrap = {})), + (e = p.Behaviour || (p.Behaviour = {})), + (sA = e.Molecule || (e.Molecule = {})), + (lA = aA.Core.Structure.Query), + (uA = p.Entity.Transformer), + (sA.SuppressShowInteractionOnSelect = !1), + (sA.ShowInteractionOnSelect = function (c) { + return function (i) { + var o = void 0, + a = void 0, + s = { + type: 'BallsAndSticks', + taskType: 'Silent', + params: { + useVDW: !0, + vdwScaling: 0.25, + bondRadius: 0.13, + detail: 'Automatic', + }, + theme: { + template: p.Visualization.Molecule.Default.ElementSymbolThemeTemplate, + colors: + p.Visualization.Molecule.Default.ElementSymbolThemeTemplate.colors.set( + 'Bond', + aA.Visualization.Theme.Default.SelectionColor, + ), + transparency: { alpha: 0.4 }, + }, + isNotSelectable: !0, + }, + l = { + type: 'BallsAndSticks', + taskType: 'Silent', + params: { + useVDW: !1, + atomRadius: 0.15, + bondRadius: 0.07, + detail: 'Automatic', + }, + theme: { + template: p.Visualization.Molecule.Default.UniformThemeTemplate, + colors: + p.Visualization.Molecule.Default.UniformThemeTemplate.colors.set( + 'Uniform', + { r: 0.4, g: 0.4, b: 0.4 }, + ), + transparency: { alpha: 0.75 }, + }, + isNotSelectable: !0, + }; + function u() { + o && (p.Command.Tree.RemoveNode.dispatch(i, o), (a = o = void 0)); + } + i.behaviours.click.subscribe(function (t) { + var e, n, r; + sA.SuppressShowInteractionOnSelect || p.Interactivity.isEmpty(t) + ? u() + : t.source.ref === a + ? (e = p.Utils.Molecule.findModel(t.source)) && + ((n = lA.atomsFromIndices(t.elements)), + setTimeout( + p.Command.Molecule.CreateSelectInteraction.dispatch(i, { + entity: e, + query: n, + }), + 0, + )) + : (p.Entity.isVisual(t.source) && !t.source.props.isSelectable) || + (u(), + !p.Interactivity.isEmpty(t) && + p.Utils.Molecule.findModelOrSelection(t.source) && + ((e = lA.atomsFromIndices(t.elements).wholeResidues()), + (n = lA + .atomsFromIndices(t.elements) + .wholeResidues() + .ambientResidues(c)), + (r = p.Utils.generateUUID()), + (t = p.Tree.Transform.build().add( + t.source, + uA.Basic.CreateGroup, + { label: 'Interaction' }, + { ref: r, isHidden: !0 }, + )), + (o = r), + (a = p.Utils.generateUUID()), + t + .then( + uA.Molecule.CreateSelectionFromQuery, + { query: n, name: 'Ambience', silent: !0, inFullContext: !0 }, + { isBinding: !0 }, + ) + .then(uA.Molecule.CreateVisual, { style: l }, { ref: a }), + t + .then( + uA.Molecule.CreateSelectionFromQuery, + { query: e, name: 'Ligand', silent: !0, inFullContext: !0 }, + { isBinding: !0 }, + ) + .then(uA.Molecule.CreateVisual, { style: s }), + p.Tree.Transform.apply(i, t).run())); + }); + }; + }), + (sA.HighlightElementInfo = function (t) { + t.highlight.addProvider(function (t) { + if (p.Interactivity.Molecule.isMoleculeModelInteractivity(t)) + return ( + (t = p.Interactivity.Molecule.transformInteraction(t)), + p.Interactivity.Molecule.formatInfo(t) + ); + }); + }), + (sA.DistanceToLastClickedElement = function (t) { + var n = p.Interactivity.Info.empty, + r = void 0, + i = void 0; + t.behaviours.click.subscribe(function (t) { + var e; + r = p.Interactivity.Molecule.isMoleculeModelInteractivity(t) + ? ((n = t), + (e = p.Utils.Molecule.findModel(t.source)) + ? ((i = e.props.model), + p.Interactivity.Molecule.formatInfoShort( + p.Interactivity.Molecule.transformInteraction(t), + )) + : ((n = p.Interactivity.Info.empty), (i = void 0))) + : ((n = p.Interactivity.Info.empty), (i = void 0)); + }), + t.highlight.addProvider(function (t) { + if ( + p.Interactivity.Molecule.isMoleculeModelInteractivity(t) && + !p.Interactivity.isEmpty(n) + ) { + var e = p.Utils.Molecule.findModel(t.source); + if (e) { + e = p.Utils.Molecule.getDistanceSet( + i, + n.elements, + e.props.model, + t.elements, + ); + if (!(e < 1e-4)) + return ( + '<span><b>' + + p.Utils.round(e, 2) + + ' â„«</b> from <b>' + + r + + '</b></span>' + ); + } + } + }); + }), + (t = F = F || {}), + (function (t) { + var i = '__ShowDynamicDensity-toast'; + function e(t, e) { + (this.context = t), + (this.params = e), + (this.obs = []), + (this.ref = cA.Utils.generateUUID()); + } + (e.prototype.remove = function () { + var t = this.getVisual(); + t && cA.Tree.remove(t); + }), + (e.prototype.getVisual = function () { + return this.context.select(this.ref)[0]; + }), + (e.prototype.update = function (t) { + var e, n, r; + this.params.showFull || + cA.Interactivity.Molecule.isMoleculeModelInteractivity(t) + ? (cA.Command.Toast.Hide.dispatch(this.context, { key: i }), + ((e = cA.Utils.shallowClone(this.params.style)).params = + cA.Utils.shallowClone(e.params)), + this.params.showFull + ? ((e.params.bottomLeft = void 0), + (e.params.topRight = void 0), + (e.taskType = 'Normal')) + : ((n = cA.Utils.Molecule.findModel((t = t).source)), + (r = t.elements), + (n = n.props.model), + 1 === t.elements.length && + (r = cA.Utils.Molecule.getResidueIndices(n, t.elements[0])), + (t = cA.Utils.Molecule.getBox(n, r, this.params.radius)), + (e.params.bottomLeft = t.bottomLeft), + (e.params.topRight = t.topRight), + (e.taskType = 'Silent')), + ((n = this.getVisual()) + ? cA.Entity.Transformer.Density.CreateVisual.create( + { style: e }, + { ref: this.ref, isHidden: !0 }, + ).update(this.context, n) + : (((r = cA.Entity.Transformer.Density.CreateVisual.create( + { style: e }, + { ref: this.ref, isHidden: !0 }, + )).isUpdate = !0), + r.apply(this.context, this.behaviour)) + ).run()) + : this.remove(); + }), + (e.prototype.updateTheme = function (t) { + var e, n; + (this.params.style.theme = t), + !this.behaviour || + ((e = this.getVisual()) && + ((n = cA.Tree.Node.findClosestNodeOfType(this.behaviour, [ + cA.Entity.Density.Data, + ])), + (n = t.template.provider(n, cA.Visualization.Theme.getProps(t))), + e.props.model.applyTheme(n))); + }), + (e.prototype.dispose = function () { + this.remove(), cA.Command.Toast.Hide.dispatch(this.context, { key: i }); + for (var t = 0, e = this.obs; t < e.length; t++) e[t].dispose(); + this.obs = []; + }), + (e.prototype.register = function (t) { + var e = this; + (this.behaviour = t), + this.params.showFull || + cA.Command.Toast.Show.dispatch(this.context, { + key: i, + title: 'Density', + message: 'Click on a residue or an atom to view the data.', + timeoutMs: 3e4, + }), + this.obs.push( + this.context.behaviours.select.subscribe(function (t) { + e.update(t); + }), + ); + }), + (t.ShowDynamicDensity = e); + })( + (t = (cA = t.Bootstrap || (t.Bootstrap = {})).Behaviour || (cA.Behaviour = {})) + .Density || (t.Density = {}), + ), + (AA = F = F || {}), + (hA = AA.Bootstrap || (AA.Bootstrap = {})), + (function (t) { + var n = hA.Entity.Transformer; + (r.prototype.remove = function () { + this.download && (this.download.tryAbort(), (this.download = void 0)), + hA.Command.Tree.RemoveNode.dispatch(this.context, this.ref); + }), + (r.prototype.isApplicable = function (t) { + return ( + !!hA.Interactivity.Molecule.isMoleculeModelInteractivity(t) && + hA.Tree.Node.hasAncestor(t.source, this.target) + ); + }), + (r.prototype.update = function (t) { + var e, + n, + r, + i, + o, + a, + s, + l, + u = this; + this.remove(), + this.isApplicable(t) && + ((t = (e = hA.Utils.Molecule.findModel(t.source).props.model).data.atoms + .residueIndex[t.elements[0]]), + (o = (n = e.data.residues).authAsymId[t]), + (a = void 0), + e.source === AA.Core.Structure.Molecule.Model.Source.Computed && + ((l = e.parent), + (r = n.chainIndex[t]), + (i = e.data.chains.sourceChainIndex[r]), + (o = l.data.chains.authAsymId[i]), + (a = e.operators[e.data.chains.operatorIndex[r]].matrix)), + (s = + this.server + + '/' + + e.id.toLocaleLowerCase() + + '/ambientResidues?modelId=' + + encodeURIComponent(e.modelId) + + '&entityId=' + + encodeURIComponent(n.entityId[t]) + + '&authAsymId=' + + encodeURIComponent(o) + + '&authSeqNumber=' + + encodeURIComponent('' + n.authSeqNumber[t]) + + '&insCode=' + + encodeURIComponent(null !== n.insCode[t] ? n.insCode[t] : '') + + '&radius=' + + encodeURIComponent('' + this.radius) + + '&atomSitesOnly=1&encoding=bcif&lowPrecisionCoords=1'), + (this.download = hA.Utils.ajaxGetArrayBuffer(s).runWithContext( + this.context, + )), + (l = hA.Utils.LRUCache.get(this.cache, s)) + ? this.create(l, a) + : (this.context.performance.start(this.ref), + this.download.result + .then(function (t) { + hA.Utils.LRUCache.set(u.cache, s, t), + u.context.performance.end(u.ref), + u.context.logger.info( + 'Streaming done in ' + + u.context.performance.formatTime(u.ref), + ), + u.create(t, a); + }) + .catch(function () { + u.context.performance.end(u.ref); + }))); + }), + (r.prototype.create = function (t, e) { + t = hA.Tree.Transform.build() + .add( + this.behaviour, + hA.Entity.Transformer.Molecule.CoordinateStreaming.CreateModel, + { data: t, transform: e }, + { ref: this.ref, isHidden: !0 }, + ) + .then(n.Molecule.CreateVisual, { style: this.style }); + hA.Tree.Transform.apply(this.context, t).run(); + }), + (r.prototype.dispose = function () { + this.remove(); + for (var t = 0, e = this.obs; t < e.length; t++) e[t].dispose(); + this.obs = []; + }), + (r.prototype.register = function (t) { + var e = this; + (this.behaviour = t), + (this.target = t.parent), + this.obs.push( + this.context.behaviours.select.subscribe(function (t) { + return e.update(t); + }), + ); + }); + function r(t, e, n) { + void 0 === n && (n = 5), + (this.context = t), + (this.radius = n), + (this.obs = []), + (this.target = void 0), + (this.behaviour = void 0), + (this.ref = hA.Utils.generateUUID()), + (this.download = void 0), + (this.cache = hA.Utils.LRUCache.create(100)), + (this.style = { + type: 'BallsAndSticks', + taskType: 'Silent', + params: { + useVDW: !0, + vdwScaling: 0.17, + bondRadius: 0.07, + detail: 'Automatic', + }, + theme: { + template: hA.Visualization.Molecule.Default.ElementSymbolThemeTemplate, + colors: + hA.Visualization.Molecule.Default.ElementSymbolThemeTemplate.colors, + transparency: { alpha: 1 }, + }, + isNotSelectable: !0, + }), + (this.server = r.normalizeServerName(e)); + } + function i(t) { + return '/' === t[t.length - 1] && 0 < t.length + ? t.substr(0, t.length - 1) + : t; + } + (t.CoordinateStreaming = r), + ((t = + t.CoordinateStreaming || (t.CoordinateStreaming = {})).normalizeServerName = + i), + (t.getBaseUrl = function (t, e) { + return ( + i(e) + + '/' + + t.trim().toLocaleLowerCase() + + '/cartoon?encoding=bcif&lowPrecisionCoords=1' + ); + }); + })((n = hA.Behaviour || (hA.Behaviour = {})).Molecule || (n.Molecule = {})), + (E = F = F || {}), + (( + (pA = E.Bootstrap || (E.Bootstrap = {})).Behaviour || (pA.Behaviour = {}) + ).GoogleAnalytics = function (s, l) { + return ( + void 0 === l && (l = 'default'), + function (e) { + var t, + n, + r, + i, + o, + a = 'ga-' + e.id + '-' + l; + try { + (t = window), + (n = document), + (r = a), + (t.GoogleAnalyticsObject = r), + (t[r] = + t[r] || + function () { + (t[r].q = t[r].q || []).push(arguments); + }), + (t[r].l = +new Date()), + (i = n.createElement('script')), + (o = n.getElementsByTagName('script')[0]), + (i.async = 1), + (i.src = 'https://www.google-analytics.com/analytics.js'), + o.parentNode.insertBefore(i, o), + window[a]('create', s, 'auto'), + setTimeout(function () { + try { + var t = window[a]; + t && t('send', 'event', 'Loaded', 'contextId', e.id); + } catch (t) {} + }, 1e3); + } catch (t) {} + pA.Event.Tree.TransformerApply.getStream(e).subscribe(function (t) { + Zh( + e, + 'Download', + pA.Entity.Transformer.Data.Download, + t.data.a, + t.data.t, + $h, + a, + ), + Zh( + e, + 'Create Molecule From Data', + pA.Entity.Transformer.Molecule.CreateFromData, + t.data.a, + t.data.t, + Xh, + a, + ), + Zh( + e, + 'Create Model Selecion', + pA.Entity.Transformer.Molecule.CreateSelection, + t.data.a, + t.data.t, + tp, + a, + ), + Zh( + e, + 'Create Assembly', + pA.Entity.Transformer.Molecule.CreateAssembly, + t.data.a, + t.data.t, + ep, + a, + ), + Zh( + e, + 'Create Symmetry', + pA.Entity.Transformer.Molecule.CreateSymmetryMates, + t.data.a, + t.data.t, + np, + a, + ), + Zh( + e, + 'Create Visual', + pA.Entity.Transformer.Molecule.CreateVisual, + t.data.a, + t.data.t, + ip, + a, + ), + Zh( + e, + 'Coordinate Streaming', + pA.Entity.Transformer.Molecule.CoordinateStreaming.CreateBehaviour, + t.data.a, + t.data.t, + rp, + a, + ), + Zh( + e, + 'Parse Density', + pA.Entity.Transformer.Density.ParseData, + t.data.a, + t.data.t, + op, + a, + ), + Zh( + e, + 'Create Model Selection', + pA.Entity.Transformer.Molecule.CreateSelection, + t.data.a, + t.data.t, + ap, + a, + ); + }); + } + ); + }), + (r = F = F || {}), + (function (t) { + function e(t, e) { + (this.context = t), + (this._state = new dA.Rx.Subject()), + (this._latestState = void 0), + (this._latestState = e); + } + Object.defineProperty(e.prototype, 'dispatcher', { + get: function () { + return this.context.dispatcher; + }, + enumerable: !0, + configurable: !0, + }), + (e.prototype.setState = function () { + for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; + var n = dA.Utils.merge.apply(dA.Utils, [this._latestState].concat(t)); + n !== this._latestState && ((this._latestState = n), this._state.onNext(n)); + }), + Object.defineProperty(e.prototype, 'state', { + get: function () { + return this._state; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(e.prototype, 'latestState', { + get: function () { + return this._latestState; + }, + enumerable: !0, + configurable: !0, + }), + (t.Component = e); + })((dA = r.Bootstrap || (r.Bootstrap = {})).Components || (dA.Components = {})), + (e = F = F || {}), + (e = (fA = e.Bootstrap || (e.Bootstrap = {})).Components || (fA.Components = {})), + ((t = gA = e.LayoutRegion || (e.LayoutRegion = {}))[(t.Main = 0)] = 'Main'), + (t[(t.Top = 1)] = 'Top'), + (t[(t.Right = 2)] = 'Right'), + (t[(t.Bottom = 3)] = 'Bottom'), + (t[(t.Left = 4)] = 'Left'), + (t[(t.Root = 5)] = 'Root'), + ((t = mA = e.CollapsedControlsLayout || (e.CollapsedControlsLayout = {}))[ + (t.Outside = 0) + ] = 'Outside'), + (t[(t.Landscape = 1)] = 'Landscape'), + (t[(t.Portrait = 2)] = 'Portrait'), + (vA = function (t) { + (this.cssClass = t), (this.components = []); + }), + (e.LayoutTarget = vA), + (e.makeEmptyTargets = function () { + for (var t = [], e = 0; e <= gA.Root; e++) t.push(new vA(gA[e].toLowerCase())); + return t; + }), + (bA = e.Component), + M(sp, bA), + (sp.prototype.update = function (t) { + var e = this, + n = !!this.latestState.isExpanded; + this.setState(t), + 'boolean' == typeof t.isExpanded && t.isExpanded !== n && this.handleExpand(), + this.dispatcher.schedule(function () { + return fA.Event.Common.LayoutChanged.dispatch(e.context, {}); + }); + }), + (sp.prototype.getScrollElement = function () { + return document.scrollingElement || document.documentElement || document.body; + }), + (sp.prototype.handleExpand = function () { + try { + var t = document.getElementsByTagName('body')[0], + e = document.getElementsByTagName('head')[0]; + if (!t || !e) return; + if (this.latestState.isExpanded) { + for (var n = e.children, r = !1, i = [], o = 0; o < n.length; o++) + n[o] === this.expandedViewport + ? (r = !0) + : 'viewport' === (n[o].name || '').toLowerCase() && i.push(n[o]); + for (var a = 0, s = i; a < s.length; a++) { + var l = s[a]; + e.removeChild(l); + } + r || e.appendChild(this.expandedViewport); + var u = t.style, + c = (h = this.getScrollElement()).scrollLeft, + A = h.scrollTop; + (this.rootState = { + top: u.top, + bottom: u.bottom, + right: u.right, + left: u.left, + scrollTop: A, + scrollLeft: c, + position: u.position, + overflow: u.overflow, + viewports: i, + zindex: this.root.style.zIndex, + width: u.width, + height: u.height, + maxWidth: u.maxWidth, + maxHeight: u.maxHeight, + margin: u.margin, + marginLeft: u.marginLeft, + marginRight: u.marginRight, + marginTop: u.marginTop, + marginBottom: u.marginBottom, + }), + (u.overflow = 'hidden'), + (u.position = 'fixed'), + (u.top = '0'), + (u.bottom = '0'), + (u.right = '0'), + (u.left = '0'), + (u.width = '100%'), + (u.height = '100%'), + (u.maxWidth = '100%'), + (u.maxHeight = '100%'), + (u.margin = '0'), + (u.marginLeft = '0'), + (u.marginRight = '0'), + (u.marginTop = '0'), + (u.marginBottom = '0'), + (this.root.style.zIndex = '100000'); + } else { + for (n = e.children, o = 0; o < n.length; o++) + if (n[o] === this.expandedViewport) { + e.removeChild(this.expandedViewport); + break; + } + if (this.rootState) { + for ( + var h, u = t.style, p = this.rootState, d = 0, f = p.viewports; + d < f.length; + d++ + ) { + l = f[d]; + e.appendChild(l); + } + (u.top = p.top), + (u.bottom = p.bottom), + (u.left = p.left), + (u.right = p.right), + (u.width = p.width), + (u.height = p.height), + (u.maxWidth = p.maxWidth), + (u.maxHeight = p.maxHeight), + (u.margin = p.margin), + (u.marginLeft = p.marginLeft), + (u.marginRight = p.marginRight), + (u.marginTop = p.marginTop), + (u.marginBottom = p.marginBottom), + (u.position = p.position), + (u.overflow = p.overflow), + ((h = this.getScrollElement()).scrollTop = p.scrollTop), + (h.scrollLeft = p.scrollLeft), + (this.rootState = void 0), + (this.root.style.zIndex = p.zindex); + } + } + } catch (t) { + this.context.logger.error( + 'Layout change error, you might have to reload the page.', + ), + console.log('Layout change error, you might have to reload the page.', t); + } + }), + (sp.prototype.updateTargets = function (t) { + var e = this; + (this.targets = t), + this.dispatcher.schedule(function () { + return fA.Event.Common.ComponentsChanged.dispatch(e.context, {}); + }); + }), + (t = sp), + (e.Layout = t), + (yA = F = F || {}), + (function (t) { + var e, i; + function n(t, e, n) { + var r = + i.call(this, t, { + params: e.info.defaultParams(t, n), + canApply: !1, + isBusy: !1, + issues: void 0, + parametersAutoUpdating: !1, + isDirty: !1, + }) || this; + return ( + (r.transformer = e), + (r.entity = n), + (r.updateTimeout = new wA.Rx.Subject()), + (r.timeout = wA.Rx.Observable.timer(50)), + (r.never = wA.Rx.Observable.never()), + (r.anchorParams = r.latestState.params), + r.updateParams(r.anchorParams), + r.updateTimeout + .flatMapLatest(function (t) { + return t; + }) + .forEach(function () { + return r.apply(); + }), + r + ); + } + (e = t.Transform || (t.Transform = {})), + (i = t.Component), + M(n, i), + (n.prototype._update = function () { + this.isUpdate && + !this.latestState.isBusy && + this.updateTimeout && + (this.updateTimeout.onNext(this.timeout), + this.setState({ parametersAutoUpdating: !0 })); + }), + (n.prototype._reset = function () { + this.setState({ parametersAutoUpdating: !1 }), + this.updateTimeout && this.updateTimeout.onNext(this.never); + }), + (n.prototype._updateParams = function (t) { + t = wA.Utils.merge(this.latestState.params, t); + if (this.transformer.info.validateParams) { + var e = this.transformer.info.validateParams(t); + if (e && 0 < e.length) + return void this.setState({ params: t, issues: e, canApply: !1 }); + } + e = !wA.Utils.deepEqual(this.anchorParams, t); + this.setState({ params: t, isDirty: e, issues: void 0, canApply: !0 }); + }), + (n.prototype.updateParams = function (t) { + this._reset(), this._updateParams(t); + }), + (n.prototype.autoUpdateParams = function (t) { + this._update(), this._updateParams(t); + }), + Object.defineProperty(n.prototype, 'isUpdate', { + get: function () { + return this.transformer === this.entity.transform.transformer; + }, + enumerable: !0, + configurable: !0, + }), + (n.prototype.apply = function () { + var t = this; + if ((this._reset(), !this.latestState.isBusy)) { + var e = this.transformer.create(this.latestState.params); + (this.anchorParams = this.latestState.params), + this.setState({ isDirty: !1, isBusy: !0 }); + try { + var n = ( + this.isUpdate + ? e.update(this.context, this.entity) + : e.apply(this.context, this.entity) + ).run(); + return ( + n + .then(function () { + return t.setState({ isBusy: !1 }); + }) + .catch(function () { + return t.setState({ isBusy: !1 }); + }), + n + ); + } catch (t) { + return this.setState({ isBusy: !1 }), yA.Core.Computation.reject(t); + } + } + }), + (n.prototype.setParams = function (t) { + this._reset(), (this.anchorParams = t), this.updateParams(t); + }), + (e.Controller = n); + })((wA = yA.Bootstrap || (yA.Bootstrap = {})).Components || (wA.Components = {})), + (n = F = F || {}), + (function (t) { + var e, n; + function r(t) { + var e = n.call(this, t, { update: void 0, transforms: [] }) || this; + return ( + e.update(), + EA.Event.Entity.CurrentChanged.getStream(t).subscribe(function () { + return e.update(); + }), + e + ); + } + (e = t.Transform || (t.Transform = {})), + (n = t.Component), + M(r, n), + (r.prototype.update = function () { + if (this.context.currentEntity) { + for ( + var t = this.context.currentEntity, + e = this.context.transforms, + n = void 0, + r = + (t.transform.transformer && + t.transform.transformer.info.isUpdatable && + (n = e.getController(t.transform.transformer, t)), + []), + i = 0, + o = this.context.transforms.getBySourceType(t.type); + i < o.length; + i++ + ) { + var a = o[i]; + (a.info.isApplicable && !a.info.isApplicable(t)) || + ((a = e.getController(a, t)) && r.push(a)); + } + this.setState({ update: n, transforms: r }); + } else this.setState({ transforms: [] }); + }), + (e.View = r); + })((EA = n.Bootstrap || (n.Bootstrap = {})).Components || (EA.Components = {})), + (E = F = F || {}), + (function (t) { + t = t.Transform || (t.Transform = {}); + (e = t.Controller), + M(i, e), + (i.prototype.updateTemplate = function (t, e) { + var e = e.get(t), + t = this.latestState && this.latestState.params.style.theme, + n = e.params, + t = t || this.getThemeInstance(e.theme.template), + e = { type: e.type, params: n, theme: t }; + this.autoUpdateParams({ style: e }); + }), + (i.prototype.updateStyleParams = function (t) { + var e = BA.Utils.shallowClone(this.latestState.params.style); + (e.params = BA.Utils.merge(e.params, t)), + this.autoUpdateParams({ style: e }); + }), + (i.prototype.updateStyleTheme = function (t) { + var e = BA.Utils.shallowClone(this.latestState.params.style); + (e.theme = BA.Utils.merge(e.theme, t)), this.autoUpdateParams({ style: e }); + }), + (i.prototype.updateThemeColor = function (t, e) { + var n = this.latestState.params.style.theme; + n && + ((n = (n = (n = n.colors) || BA.Immutable.Map()).set(t, e)), + this.updateStyleTheme({ colors: n })); + }), + (i.prototype.updateThemeVariable = function (t, e) { + var n = this.latestState.params.style.theme; + n && + ((n = (n = (n = n.variables) || BA.Immutable.Map()).set(t, e)), + this.updateStyleTheme({ variables: n })); + }), + (i.prototype.updateThemeTransparency = function (t) { + this.latestState.params.style.theme && + this.updateStyleTheme({ transparency: t }); + }), + (i.prototype.getThemeInstance = function (t) { + var e = this.latestState.params.style.theme, + n = BA.Visualization.Molecule.Default.ForType.get( + this.latestState.params.style.type, + ).theme.transparency; + if (!e) return { template: t, colors: t.colors, transparency: n }; + var r = t.colors, + i = + (e.colors && + r && + (r = r.withMutations(function (n) { + e.colors.forEach(function (t, e) { + n.has(e) && n.set(e, t); + }); + })), + t.variables), + n = + (e.variables && + i && + (i = i.withMutations(function (n) { + e.variables.forEach(function (t, e) { + n.has(e) && n.set(e, t); + }); + })), + e.transparency || n); + return { template: t, colors: r, variables: i, transparency: n }; + }), + (i.prototype.updateThemeDefinition = function (t) { + this.updateStyleTheme(this.getThemeInstance(t)); + }); + var e, + n, + r = i; + function i() { + return (null !== e && e.apply(this, arguments)) || this; + } + function o() { + return (null !== n && n.apply(this, arguments)) || this; + } + (t.VisualStyle = r), M(o, (n = r)), (t.MoleculeVisual = o), M(s, (a = r)); + var a; + function s() { + return (null !== a && a.apply(this, arguments)) || this; + } + (t.MoleculeLabels = s), M(u, (l = r)); + var l; + function u() { + return (null !== l && l.apply(this, arguments)) || this; + } + (t.GenericLabels = u), + (c = t.Controller), + M(A, c), + (A.prototype.cloneStyle = function (t) { + return BA.Utils.shallowClone(this.latestState.params[t || 'style']); + }), + (A.prototype.getStyle = function (t) { + return this.latestState.params[t || 'style']; + }), + (A.prototype.setStyle = function (t, e) { + var n; + this.autoUpdateParams((((n = {})[e || 'style'] = t), n)); + }), + (A.prototype.updateStyleParams = function (t, e) { + var n = this.cloneStyle(e); + (n.params = BA.Utils.merge(n.params, t)), this.setStyle(n, e); + }), + (A.prototype.updateStyleTheme = function (t, e) { + var n = this.cloneStyle(e); + (n.theme = BA.Utils.merge(n.theme, t)), this.setStyle(n, e); + }), + (A.prototype.updateThemeColor = function (t, e, n) { + var r = this.getStyle(n).theme; + r && + ((r = (r = (r = r.colors) || BA.Immutable.Map()).set(t, e)), + this.updateStyleTheme({ colors: r }, n)); + }), + (A.prototype.updateThemeTransparency = function (t, e) { + this.getStyle(e).theme && this.updateStyleTheme({ transparency: t }, e); + }), + (A.prototype.getThemeInstance = function (t, e) { + var r = this.getStyle(e).theme, + e = BA.Visualization.Density.Default.Transparency; + if (!r) return { template: t, colors: t.colors, transparency: e }; + var n = t.colors, + e = + (r.colors && + n && + (n = n.withMutations(function (n) { + r.colors.forEach(function (t, e) { + n.has(e) && n.set(e, t); + }); + })), + r.transparency || e); + return { template: t, colors: n, transparency: e }; + }), + (A.prototype.updateThemeDefinition = function (t, e) { + this.updateStyleTheme(this.getThemeInstance(t, e), e); + }); + var c, + r = A; + function A() { + return (null !== c && c.apply(this, arguments)) || this; + } + t.DensityVisual = A; + })((BA = E.Bootstrap || (E.Bootstrap = {})).Components || (BA.Components = {})), + (r = F = F || {}), + (function (t) { + var e, i; + function n(t, e, n) { + var r = i.call(this, t, { controller: void 0 }) || this; + return ( + (r.selector = e), + (r.header = n), + CA.Event.Tree.NodeAdded.getStream(t).subscribe(function () { + return r.added(); + }), + CA.Event.Tree.NodeRemoved.getStream(t).subscribe(function (t) { + return r.removed(t.data); + }), + r + ); + } + (e = t.Transform || (t.Transform = {})), + (i = t.Component), + M(n, i), + (n.prototype.removed = function (t) { + this.latestState.controller && + this.latestState.controller.entity === t && + this.setState({ controller: void 0 }); + }), + (n.prototype.added = function () { + var t = this.context.select(this.selector)[0]; + t && + t.transform && + (t = this.context.transforms.getController(t.transform.transformer, t)) && + this.setState({ controller: t }); + }), + (e.Updater = n); + })((CA = r.Bootstrap || (r.Bootstrap = {})).Components || (CA.Components = {})), + (e = F = F || {}), + (function (t) { + var e, o; + function n(t, e, n, r) { + var i = o.call(this, t, { controller: void 0 }) || this; + return ( + (i.selector = e), + (i.transformer = n), + (i.header = r), + xA.Event.Tree.NodeAdded.getStream(t).subscribe(function () { + return i.added(); + }), + xA.Event.Tree.NodeRemoved.getStream(t).subscribe(function (t) { + return i.removed(t.data); + }), + i + ); + } + (e = t.Transform || (t.Transform = {})), + (o = t.Component), + M(n, o), + (n.prototype.removed = function (t) { + this.latestState.controller && + this.latestState.controller.entity === t && + this.setState({ controller: void 0 }); + }), + (n.prototype.added = function () { + var t = this.context.select(this.selector)[0]; + !t || + ((t = this.context.transforms.getController(this.transformer, t)) && + this.setState({ controller: t })); + }), + (e.Action = n); + })((xA = e.Bootstrap || (e.Bootstrap = {})).Components || (xA.Components = {})), + (t = F = F || {}), + (function (t) { + var e, n; + function r(t) { + var e = n.call(this, t, { entries: IA.Immutable.List() }) || this; + return ( + IA.Event.Log.getStream(e.context).subscribe(function (t) { + return e.setState({ entries: e.latestState.entries.push(t.data) }); + }), + e + ); + } + (e = t.Context || (t.Context = {})), (n = t.Component), M(r, n), (e.Log = r); + })((IA = t.Bootstrap || (t.Bootstrap = {})).Components || (IA.Components = {})), + (n = F = F || {}), + (function (t) { + var e, n; + function r(t) { + var e = n.call(this, t, { entries: MA.Immutable.Map() }) || this; + return ( + (e.serialNumber = 0), + (e.serialId = 0), + MA.Command.Toast.Show.getStream(e.context).subscribe(function (t) { + return e.show(t.data); + }), + MA.Command.Toast.Hide.getStream(e.context).subscribe(function (t) { + return e.hide(e.findByKey(t.data.key)); + }), + e + ); + } + (e = t.Context || (t.Context = {})), + (n = t.Component), + M(r, n), + (r.prototype.findByKey = function (e) { + return this.latestState.entries.find(function (t) { + return !!t && t.key === e; + }); + }), + (r.prototype.show = function (t) { + var e, + n = this, + r = this.latestState.entries, + i = void 0, + o = ++this.serialId; + t.key && (i = this.findByKey(t.key)) + ? (void 0 !== i.timeout && clearTimeout(i.timeout), + (e = i.serialNumber), + (r = r.remove(i.id))) + : (e = ++this.serialNumber), + (i = { + id: o, + serialNumber: e, + key: t.key, + title: t.title, + message: t.message, + timeout: this.timeout(o, t.timeoutMs), + hide: function () { + return n.hideId(o); + }, + }), + (r = r.set(o, i)), + this.setState({ entries: r }); + }), + (r.prototype.timeout = function (e, t) { + var n = this; + if (void 0 !== t) + return ( + t < 0 && (t = 500), + setTimeout(function () { + var t = n.latestState.entries.get(e); + (t.timeout = void 0), n.hide(t); + }, t) + ); + }), + (r.prototype.hideId = function (t) { + this.hide(this.latestState.entries.get(t)); + }), + (r.prototype.hide = function (t) { + var e; + t && + (void 0 !== t.timeout && clearTimeout(t.timeout), + (t.hide = void 0), + (e = (e = this.latestState.entries).delete(t.id)), + this.setState({ entries: e })); + }), + (e.Toast = r); + })((MA = n.Bootstrap || (n.Bootstrap = {})).Components || (MA.Components = {})), + (E = F = F || {}), + (function (t) { + var e, r; + function n(t, e) { + var n = r.call(this, t, { tasks: DA.Immutable.Map() }) || this; + return ( + (n.type = e), + DA.Event.Task.StateUpdated.getStream(n.context).subscribe(function (t) { + return n.updated(t.data); + }), + DA.Event.Task.Started.getStream(n.context) + .filter(function (t) { + return t.data.type === e; + }) + .subscribe(function (t) { + return n.started(t.data); + }), + DA.Event.Task.Completed.getStream(n.context).subscribe(function (t) { + return n.completed(t.data); + }), + n + ); + } + (e = t.Context || (t.Context = {})), + (r = t.Component), + M(n, r), + (n.prototype.updated = function (t) { + var e = t.type === this.type, + n = this.latestState.tasks; + e + ? ((n = n.set(t.taskId, { + name: t.name, + message: t.message, + abort: t.abort, + })), + this.setState({ tasks: n })) + : n.has(t.taskId) && + ((n = n.delete(t.taskId)), this.setState({ tasks: n })); + }), + (n.prototype.started = function (t) { + this.setState({ + tasks: this.latestState.tasks.set(t.id, { + name: t.name, + message: 'Running...', + }), + }); + }), + (n.prototype.completed = function (t) { + this.latestState.tasks.has(t) && + this.setState({ tasks: this.latestState.tasks.delete(t) }); + }), + (e.TaskWatcher = n); + })((DA = E.Bootstrap || (E.Bootstrap = {})).Components || (DA.Components = {})), + (r = F = F || {}), + (function (t) { + var e, n; + function r(t) { + var e = n.call(this, t, { info: [] }) || this; + return ( + SA.Event.Interactivity.Highlight.getStream(e.context).subscribe( + function (t) { + return e.setState({ info: t.data }); + }, + ), + e + ); + } + (e = t.Visualization || (t.Visualization = {})), + (n = t.Component), + M(r, n), + (e.HighlightInfo = r); + })((SA = r.Bootstrap || (r.Bootstrap = {})).Components || (SA.Components = {})), + (kA = F = F || {}), + (function (t) { + var e, n, r; + function i(t) { + var e = n.call(this, t, FA.Utils.shallowClone(r.DefaultSceneOptions)) || this; + return ( + FA.Event.Common.LayoutChanged.getStream(e.context).subscribe(function (t) { + e._scene && e._scene.scene.resized(); + }), + FA.Command.Layout.SetViewportOptions.getStream(e.context).subscribe( + function (t) { + return e.setState(t.data); + }, + ), + e.state.throttle(1e3 / 30).subscribe(function (t) { + e.scene.scene.updateOptions(t); + }), + e + ); + } + (e = t.Visualization || (t.Visualization = {})), + (r = kA.Visualization), + (n = t.Component), + M(i, n), + Object.defineProperty(i.prototype, 'scene', { + get: function () { + return this._scene; + }, + enumerable: !0, + configurable: !0, + }), + (i.prototype.init = function (t) { + if (!kA.Visualization.checkWebGL()) return !1; + try { + return ( + (this._scene = new FA.Visualization.SceneWrapper( + t, + this.context, + this.latestState, + )), + (this.context.scene = this._scene), + !0 + ); + } catch (t) { + return !1; + } + }), + (i.prototype.destroy = function () { + this._scene && (this._scene.destroy(), (this._scene = null)); + }), + (e.Viewport = i); + })((FA = kA.Bootstrap || (kA.Bootstrap = {})).Components || (FA.Components = {})), + (function (n) { + (t.prototype.set = function (t, e) { + this.settings.set(t, e); + }), + (t.prototype.get = function (t) { + return this.settings.get(t); + }); + var e = t; + function t() { + this.settings = QA.Core.Utils.FastMap.create(); + } + function r(t) { + (this.plugin = t), + (this.id = n.Utils.generateUUID()), + (this.dispatcher = new n.Service.Dispatcher()), + (this.logger = new n.Service.Logger(this)), + (this.performance = new QA.Core.Utils.PerformanceMonitor()), + (this.scene = void 0), + (this.tree = n.Tree.create( + this, + n.Entity.Root.create(n.Entity.RootTransform, { label: 'Root Entity' }), + )), + (this.currentEntity = void 0), + (this.transforms = new n.TransformManager(this)), + (this.entityCache = new n.Entity.Cache(this)), + (this.viewport = new n.Components.Visualization.Viewport(this)), + (this.highlight = new n.Interactivity.HighlightManager(this)), + (this.behaviours = new n.Behaviour.Streams(this)), + (this.settings = new e()), + n.initEventsAndCommands(this); + } + (n.Settings = e), + (r.prototype.createLayout = function (t, e) { + this.layout = new n.Components.Layout(this, t, e); + }), + (r.prototype.select = function (t) { + return n.Tree.Selection.select(t, this.tree); + }), + (n.Context = r); + })((QA = F = F || {}).Bootstrap || (QA.Bootstrap = {})), + (e = (e = F = F || {}).Bootstrap || (e.Bootstrap = {})).Plugin || (e.Plugin = {}), + (t = F = F || {}), + ((f = t.Bootstrap || (t.Bootstrap = {})).initEventsAndCommands = function (r) { + f.Command.Entity.SetCurrent.getStream(r).subscribe(function (t) { + return f.Entity.setCurrent(t.data); + }), + f.Command.Entity.SetVisibility.getStream(r).subscribe(function (t) { + return f.Entity.setVisibility(t.data.entity, t.data.visible); + }), + f.Command.Entity.ToggleExpanded.getStream(r).subscribe(function (t) { + return f.Entity.toggleExpanded(t.data); + }), + f.Command.Tree.RemoveNode.getStream(r).subscribe(function (t) { + return r.select(t.data).forEach(function (t) { + return f.Tree.remove(t); + }); + }), + f.Command.Tree.ApplyTransform.getStream(r).subscribe(function (t) { + (t.data.isUpdate + ? t.data.transform.update(r, t.data.node) + : t.data.transform.apply(r, t.data.node) + ).run(); + }), + f.Event.Tree.NodeAdded.getStream(r).subscribe(function (t) { + var e = t.data.parent.state.visibility; + f.Entity.setVisibility(t.data, 2 !== e), + f.Entity.isClass(t.data, f.Entity.BehaviourClass) && + (e = t.data).props.behaviour.register(e); + }), + f.Event.Tree.NodeRemoved.getStream(r).subscribe(function (t) { + f.Entity.updateVisibilityState(t.data.parent), + f.Entity.isClass(t.data, f.Entity.BehaviourClass) && + t.data.props.behaviour.dispose(); + }), + f.Event.Visual.VisualHoverElement.getStream(r) + .distinctUntilChanged(function (t) { + return t.data; + }, f.Interactivity.interactivityInfoEqual) + .map(function (t) { + return f.Interactivity.Molecule.transformInteraction(t.data); + }) + .distinctUntilChanged( + function (t) { + return t; + }, + function (t, e) { + return t === e; + }, + ) + .subscribe(function (t) { + return f.Event.Molecule.ModelHighlight.dispatch(r, t); + }), + f.Event.Visual.VisualSelectElement.getStream(r) + .distinctUntilChanged(function (t) { + return t.data; + }, f.Interactivity.interactivityInfoEqual) + .map(function (t) { + return f.Interactivity.Molecule.transformInteraction(t.data); + }) + .distinctUntilChanged( + function (t) { + return t; + }, + function (t, e) { + return t === e; + }, + ) + .subscribe(function (t) { + return f.Event.Molecule.ModelSelect.dispatch(r, t); + }), + f.Command.Molecule.CreateSelectInteraction.getStream(r).subscribe( + function (t) { + var e, n; + (e = r), + (t = t.data), + f.Utils.Molecule.findModelOrSelection(t.entity) + ? (n = f.Utils.Molecule.getModelAndIndicesFromQuery( + t.entity, + t.query, + )) && + n.indices.length && + f.Event.Visual.VisualSelectElement.dispatch( + e, + f.Interactivity.Info.selection(t.entity, n.indices), + ) + : console.warn( + 'Select: Trying to create a selection event on a non-molecule related entity, ignoring...', + ); + }, + ); + }), + (function (o) { + function t(t) { + var e = this; + (this.context = t), + (this.controllerCache = _A.Core.Utils.FastMap.create()), + (this.state = _A.Core.Utils.FastMap.create()), + (this.byId = _A.Core.Utils.FastMap.create()), + (this.bySourceType = _A.Core.Utils.FastMap.create()), + (this.byTargetType = _A.Core.Utils.FastMap.create()), + o.Event.Tree.NodeRemoved.getStream(t).subscribe(function (t) { + e.controllerCache.delete(t.data.id), e.state.delete(t.data.id); + }); + } + (t.prototype.addType = function (t, e, n) { + var r = n.get(t.id); + r ? r.push(e) : n.set(t.id, [e]); + }), + (t.prototype.getController = function (t, e) { + if (e) { + var n, r, i; + if (this.byId.get(t.info.id)) + return ( + (n = this.controllerCache.get(e.id)) || + ((n = _A.Core.Utils.FastMap.create()), + this.controllerCache.set(e.id, n)), + (r = n.get(t.info.id)) || + ((r = (i = t.info.customController) + ? i(this.context, t, e) + : new o.Components.Transform.Controller(this.context, t, e)), + (i = + this.context.plugin && + this.context.plugin.getTransformerInfo(t)) && i.initiallyCollapsed + ? this.hasPersistentState(t, e, 'isExpanded') || + this.setPersistentState(t, e, 'isExpanded', !1) + : this.hasPersistentState(t, e, 'isExpanded') || + this.setPersistentState(t, e, 'isExpanded', !0), + e.transform.transformer === t && r.setParams(e.transform.params), + n.set(t.info.id, r)), + r + ); + console.warn( + 'Trying to get controller for unregistered transform (' + + t.info.id + + ').', + ); + } else console.warn('Trying to get controller for undefined entity.'); + }), + (t.prototype.getBySourceType = function (t) { + return this.bySourceType.get(t.id) || []; + }), + (t.prototype.getByTargetType = function (t) { + return this.byTargetType.get(t.id) || []; + }), + (t.prototype.add = function (t) { + if (this.byId.has(t.info.id)) + throw ( + "Transformer with id '" + + t.info.id + + "' is has already been added. Pick another id." + ); + this.byId.set(t.info.id, t); + for (var e = 0, n = t.info.from; e < n.length; e++) { + var r = n[e]; + this.addType(r, t, this.bySourceType); + } + for (var i = 0, o = t.info.to; i < o.length; i++) { + r = o[i]; + this.addType(r, t, this.byTargetType); + } + }), + (t.prototype.hasPersistentState = function (t, e, n) { + e = this.state.get(e.id); + if (!e) return !1; + e = e.get(t.info.id); + return !(!e || !e.has(n)); + }), + (t.prototype.getPersistentState = function (t, e, n, r) { + e = this.state.get(e.id); + if (!e) return r; + e = e.get(t.info.id); + return e && e.has(n) ? e.get(n) : r; + }), + (t.prototype.setPersistentState = function (t, e, n, r) { + var i = this.state.get(e.id), + e = + (i || ((i = _A.Core.Utils.FastMap.create()), this.state.set(e.id, i)), + i.get(t.info.id)), + i = + (e || ((e = _A.Core.Utils.FastMap.create()), i.set(t.info.id, e)), + e.get(n)); + return e.set(n, r), i !== r; + }), + (o.TransformManager = t); + })((_A = F = F || {}).Bootstrap || (_A.Bootstrap = {})), + (((n = F = F || {}).Plugin || (n.Plugin = {})).VERSION = { + number: '1.3.4', + date: 'September 7 2017', + }), + ((E = (E = F = F || {}).Plugin || (E.Plugin = {})).React = br), + (E.ReactDOM = w), + ((E.Controls || (E.Controls = {})).ChromePickerHelper = Mr.ChromePicker), + (function (r) { + var t, + n = r.Controls || (r.Controls = {}), + i = TA.Bootstrap.Utils.shallowEqual, + e = + ((t = r.React.Component), + M(o, t), + (o.prototype.shouldComponentUpdate = function (t, e) { + return !i(this.props, t) || !i(this.state, e); + }), + o); + function o() { + return (null !== t && t.apply(this, arguments)) || this; + } + (n.Pure = e), + M(s, (a = e)), + (s.prototype.render = function () { + var e = this.props, + t = 'lm-btn', + n = + (e.size && 'normal' !== e.size && (t += ' lm-btn-' + e.size), + e.asBlock && (t += ' lm-btn-block'), + e.disabled + ? (t += ' lm-btn-' + (e.disabledStyle || e.style || 'default')) + : e.active + ? (t += ' lm-btn-' + (e.activeStyle || e.style || 'default')) + : (t += ' lm-btn-' + (e.style || 'default')), + e.customClass && (t += ' ' + e.customClass), + void 0); + return ( + e.icon && + (n = + e.active && e.activeIcon + ? r.React.createElement('span', { + className: 'lm-icon lm-icon-' + e.activeIcon, + }) + : r.React.createElement('span', { + className: 'lm-icon lm-icon-' + e.icon, + })), + r.React.createElement( + 'button', + { + title: e.title, + className: t, + style: e.customStyle, + disabled: e.disabled, + onClick: function (t) { + e.onClick.call(null, t), t.target.blur(); + }, + }, + n, + e.children, + ) + ); + }); + var a, + e = s; + function s() { + return (null !== a && a.apply(this, arguments)) || this; + } + function l(t) { + return 13 === t.keyCode || 13 === t.charCode; + } + (n.Button = s), + (n.TextBox = function (e) { + return r.React.createElement('input', { + type: 'text', + className: 'lm-form-control', + placeholder: e.placeholder, + value: e.value, + defaultValue: e.defaultValue, + onBlur: function (t) { + e.onBlur && e.onBlur.call(null, t); + }, + onChange: function (t) { + return e.onChange.call(null, t.target.value); + }, + onKeyPress: e.onKeyPress, + }); + }), + (n.isEnter = l), + (n.TextBoxGroup = function (e) { + return r.React.createElement( + 'div', + { className: 'lm-control-row lm-options-group', title: e.title }, + r.React.createElement('span', null, e.label), + r.React.createElement( + 'div', + null, + r.React.createElement(n.TextBox, { + placeholder: e.placeholder, + onChange: e.onChange, + value: e.value, + onKeyPress: function (t) { + l(t) && e.onEnter && e.onEnter.call(null, t); + }, + }), + ), + ); + }), + (n.CommitButton = function (e) { + return r.React.createElement( + 'div', + { style: { marginTop: '1px' } }, + r.React.createElement( + 'button', + { + onClick: function (t) { + e.action(), t.target.blur(); + }, + className: + 'lm-btn lm-btn-block lm-btn-commit lm-btn-commit-' + + (e.isOn ? 'on' : 'off'), + disabled: !e.isOn, + title: e.title, + }, + r.React.createElement('span', { + className: 'lm-icon lm-icon-' + (e.isOn ? 'ok' : 'cross'), + }), + e.isOn ? r.React.createElement('b', null, e.on) : e.off || e.on, + ), + ); + }), + (n.Toggle = function (e) { + return r.React.createElement( + 'div', + { className: 'lm-control-row lm-toggle-button', title: e.title }, + r.React.createElement('span', null, e.label), + r.React.createElement( + 'div', + null, + r.React.createElement( + 'button', + { + onClick: function (t) { + e.onChange.call(null, !e.value), t.target.blur(); + }, + }, + r.React.createElement('span', { + className: 'lm-icon lm-icon-' + (e.value ? 'ok' : 'off'), + }), + ' ', + e.value ? 'On' : 'Off', + ), + ), + ); + }), + (n.ControlGroupExpander = function (t) { + return r.React.createElement(n.Button, { + style: 'link', + title: (t.isExpanded ? 'Less' : 'More') + ' options', + onClick: function () { + return t.onChange.call(null, !t.isExpanded); + }, + icon: t.isExpanded ? 'minus' : 'plus', + customClass: 'lm-conrol-group-expander', + }); + }), + (n.RowText = function (t) { + return r.React.createElement( + 'div', + { className: 'lm-control-row lm-row-text', title: t.title }, + r.React.createElement('span', null, t.label), + r.React.createElement('div', null, t.value), + ); + }), + (n.HelpBox = function (t) { + return r.React.createElement( + 'div', + { className: 'lm-help-row' }, + r.React.createElement('span', null, t.title), + r.React.createElement('div', null, t.content), + ); + }); + })((TA = F = F || {}).Plugin || (TA.Plugin = {})), + (function (r) { + var n, e; + function t() { + var t = (null !== e && e.apply(this, arguments)) || this; + return (t.current = void 0), t; + } + (n = r.Controls || (r.Controls = {})), + (e = r.React.Component), + M(t, e), + (t.prototype.get = function (t) { + var e = this.props.options; + return void 0 !== e.get ? e.get(t) : e[t]; + }), + (t.prototype.render = function () { + var e = this, + n = this.props.caption, + t = this.props.options.indexOf(this.props.current); + return r.React.createElement( + 'select', + { + title: this.props.title, + value: (t = t < 0 ? 0 : t).toString(), + className: 'lm-form-control', + onChange: function (t) { + (e.current = e.get(+t.target.value)), e.props.onChange(e.current); + }, + }, + this.props.options.map(function (t, e) { + return r.React.createElement('option', { key: e, value: '' + e }, n(t)); + }), + ); + }), + (n.OptionsBox = t), + (n.OptionsGroup = function (t) { + var e = + t.caption || + function (t) { + return t; + }; + return r.React.createElement( + 'div', + { className: 'lm-control-row lm-options-group', title: t.title }, + r.React.createElement('span', null, t.label), + r.React.createElement( + 'div', + null, + r.React.createElement(n.OptionsBox, { + options: t.options, + caption: e, + current: t.current, + onChange: t.onChange, + }), + ), + ); + }); + })((r = F = F || {}).Plugin || (r.Plugin = {})), + (function (i) { + var o, t; + function e() { + return (null !== t && t.apply(this, arguments)) || this; + } + (o = i.Controls || (i.Controls = {})), + (t = i.React.Component), + M(e, t), + (e.prototype.header = function () { + var t = this, + e = this.props.isExpanded, + n = this.props.title || this.props.header, + e = e ? 'collapse' : 'expand', + r = i.React.createElement( + 'div', + { + className: + 'lm-panel-description lm-panel-description-' + + (this.props.topRightAction ? 'with-action' : 'standalone'), + onClick: function () { + return t.props.onExpand.call(null, !t.props.isExpanded); + }, + }, + i.React.createElement('span', { className: 'lm-icon lm-icon-info' }), + i.React.createElement( + 'div', + { className: 'lm-panel-description-content' }, + i.React.createElement('span', { className: 'lm-icon lm-icon-info' }), + this.props.description, + ), + ); + return i.React.createElement( + 'div', + { className: 'lm-panel-header' }, + r, + this.props.topRightAction, + i.React.createElement( + 'div', + { className: 'lm-panel-expander-wrapper' }, + i.React.createElement( + o.Button, + { + title: n, + onClick: function () { + return t.props.onExpand.call(null, !t.props.isExpanded); + }, + icon: e, + customClass: 'lm-panel-expander', + style: 'link', + }, + this.props.badge, + this.props.header, + ), + ), + ); + }), + (e.prototype.render = function () { + var t = + 'lm-panel' + + (this.props.className ? ' ' + this.props.className : '') + + (this.props.isExpanded ? ' lm-panel-expanded' : ' lm-panel-collapsed'); + return i.React.createElement( + 'div', + { className: t }, + this.header(), + i.React.createElement( + 'div', + { + className: 'lm-panel-body', + style: { display: this.props.isExpanded ? 'block' : 'none' }, + }, + this.props.children, + ), + ); + }), + (o.Panel = e), + (o.ExpandableGroup = function (t) { + return i.React.createElement( + 'div', + { className: 'lm-control-group' }, + t.select, + t.colorStripe + ? i.React.createElement('div', { + className: 'lm-expandable-group-color-stripe', + style: { + backgroundColor: + 'rgb(' + + ((255 * t.colorStripe.r) | 0) + + ', ' + + ((255 * t.colorStripe.g) | 0) + + ', ' + + ((255 * t.colorStripe.b) | 0) + + ')', + }, + }) + : void 0, + 0 < t.options.length ? t.expander : void 0, + 0 < t.options.length + ? i.React.createElement( + 'div', + { + style: { display: t.isExpanded ? 'block' : 'none' }, + className: 'lm-control-subgroup', + }, + t.options, + ) + : void 0, + ); + }); + })((e = F = F || {}).Plugin || (e.Plugin = {})); + var lp, + up, + cp, + Ap, + hp, + pp, + dp, + fp, + gp, + mp, + k, + vp, + m, + bp, + yp, + wp, + Ep, + Bp, + Cp, + v, + xp, + b, + Ip, + y, + Mp, + Dp, + w, + Sp, + E, + kp, + Fp, + Qp, + x, + _p, + Tp, + Rp, + F, + Up, + Np, + Pp, + Lp, + Yp, + Op = + (this && this.__assign) || + Object.assign || + function (t) { + for (var e, n = 1, r = arguments.length; n < r; n++) + for (var i in (e = arguments[n])) + Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]); + return t; + }; + function Gp(r, i, o) { + return function (e, n) { + return function (t) { + return { key: r, controller: i(t), region: e, view: o, isStatic: n }; + }; + }; + } + function zp(t, e, n) { + t = Sp.call(this, t, {}) || this; + return (t.appName = e), (t.appVersion = n), t; + } + function Hp(t) { + t.getTransformerInfo ? this.ofInstace(t) : this.ofOptions(t); + } + return ( + (function (w) { + var n = w.Controls || (w.Controls = {}); + (e = w.React.Component), + M(r, e), + (r.prototype.componentWillMount = function () { + this.setState({ value: '' + this.props.value }); + }), + (r.prototype.componentWillReceiveProps = function (t) { + this.setState({ value: '' + t.value }); + }), + (r.prototype.updateValue = function (t) { + var e = +t; + e < this.props.min + ? (t = '' + (e = this.props.min)) + : e > this.props.max && (t = '' + (e = this.props.max)), + this.setState({ value: t }); + }), + (r.prototype.fire = function () { + var t = +this.state.value; + (t = isNaN(t) ? this.props.value : t) !== this.props.value && + this.firedValue !== t && + ((this.firedValue = t), this.props.onChange.call(null, t)); + }), + (r.prototype.render = function () { + var e = this, + t = this.props.step; + return ( + void 0 === t && (t = 1), + w.React.createElement( + 'div', + { className: 'lm-control-row lm-slider', title: this.props.title }, + w.React.createElement('span', null, this.props.label), + w.React.createElement( + 'div', + null, + w.React.createElement( + 'div', + null, + w.React.createElement( + 'div', + null, + w.React.createElement(h, { + min: this.props.min, + max: this.props.max, + step: t, + value: +this.state.value, + onChange: function (t) { + return e.setState({ value: '' + t }); + }, + onAfterChange: function (t) { + return e.fire(); + }, + }), + ), + ), + w.React.createElement( + 'div', + null, + w.React.createElement(n.TextBox, { + value: this.state.value, + onChange: function (t) { + return e.updateValue(t); + }, + onBlur: function () { + return e.fire(); + }, + onKeyPress: function (t) { + n.isEnter(t) && e.fire(); + }, + }), + ), + ), + ) + ); + }); + var e, + t = r; + function r() { + var t = (null !== e && e.apply(this, arguments)) || this; + return (t.state = { value: '0' }), (t.firedValue = NaN), t; + } + function E(t) { + for (var e = [], n = {}.hasOwnProperty, r = 0; r < arguments.length; r++) { + var i = arguments[r]; + if (i) { + var o = typeof i; + if ('string' == o || 'number' == o) e.push(i); + else if (Array.isArray(i)) e.push(E.apply(null, i)); + else if ('object' == o) + for (var a in i) n.call(i, a) && i[a] && e.push(a); + } + } + return e.join(' '); + } + function B() {} + function i(t) { + return ( + 1 < t.touches.length || + ('touchend' === t.type.toLowerCase() && 0 < t.touches.length) + ); + } + function o(t, e) { + return t ? e.touches[0].clientY : e.touches[0].pageX; + } + function a(t, e) { + return t ? e.clientY : e.pageX; + } + function s(t, e) { + e = e.getBoundingClientRect(); + return t ? e.top + 0.5 * e.height : e.left + 0.5 * e.width; + } + function l(t) { + t.stopPropagation(), t.preventDefault(); + } + (n.Slider = r), + (u = w.React.Component), + M(c, u), + (c.prototype.render = function () { + var t = this.props, + e = t.className, + n = t.tipFormatter, + r = t.vertical, + i = t.offset, + o = t.value, + t = t.index; + return w.React.createElement('div', { + className: e, + style: r ? { bottom: i + '%' } : { left: i + '%' }, + title: n(o, t), + }); + }); + var u, + t = c; + function c() { + return (null !== u && u.apply(this, arguments)) || this; + } + (n.Handle = t), + (A = w.React.Component), + M(p, A), + (p.prototype.componentWillReceiveProps = function (e) { + var n, + t, + r, + i = this; + ('value' in e || 'min' in e || 'max' in e) && + ((n = this.state.bounds), + e.range + ? (r = (t = e.value || n).map(function (t) { + return i.trimAlignValue(t, e); + })).every(function (t, e) { + return t === n[e]; + }) || + (this.setState({ bounds: r }), + n.some(function (t) { + return i.isValueOutOfBounds(t, e); + }) && this.props.onChange(r)) + : ((t = void 0 !== e.value ? e.value : n[1]), + ((r = this.trimAlignValue(t, e)) === n[1] && n[0] === e.min) || + (this.setState({ bounds: [e.min, r] }), + this.isValueOutOfBounds(n[1], e) && this.props.onChange(r)))); + }), + (p.prototype.onChange = function (t) { + var e = this.props, + t = + (!('value' in e) + ? this.setState(t) + : void 0 !== t.handle && this.setState({ handle: t.handle }), + Op({}, this.state, t)), + t = e.range ? t.bounds : t.bounds[1]; + e.onChange(t); + }), + (p.prototype.onMouseDown = function (t) { + var e, n; + 0 === t.button && + ((e = a(this.props.vertical, t)), + this.isEventFromHandle(t) + ? ((n = s(this.props.vertical, t.target)), + (this.dragOffset = e - n), + (e = n)) + : (this.dragOffset = 0), + this.onStart(e), + this.addDocumentEvents('mouse'), + l(t)); + }), + (p.prototype.onMouseMove = function (t) { + var e = a(this.props.vertical, t); + this.onMove(t, e - this.dragOffset); + }), + (p.prototype.onMove = function (t, e) { + l(t); + var n, + r, + t = this.props, + i = this.state, + e = e - this.startPosition, + e = + ((e = this.props.vertical ? -e : e) / this.getSliderLength()) * + (t.max - t.min), + e = this.trimAlignValue(this.startValue + e); + e !== i.bounds[i.handle] && + (((n = i.bounds.slice())[i.handle] = e), + (r = i.handle), + !1 !== t.pushable + ? ((i = i.bounds[r]), this.pushSurroundingHandles(n, r, i)) + : t.allowCross && + (n.sort(function (t, e) { + return t - e; + }), + (r = n.indexOf(e))), + this.onChange({ handle: r, bounds: n })); + }), + (p.prototype.onStart = function (t) { + this.props.onBeforeChange(this.getValue()); + var e = this.calcValueByPos(t), + t = ((this.startValue = e), (this.startPosition = t), this.state), + n = t.bounds, + r = 1; + if (this.props.range) { + for (var i = 0, o = 1; o < n.length - 1; ++o) e > n[o] && (i = o); + Math.abs(n[i + 1] - e) < Math.abs(n[i] - e) && (i += 1); + var r = i, + a = n[i + 1] === n[i]; + a && (r = t.recent), + a && e !== n[i + 1] && (r = e < n[i + 1] ? i : i + 1); + } + this.setState({ handle: r, recent: r }), + e !== t.bounds[r] && + (((a = t.bounds.slice())[r] = e), this.onChange({ bounds: a })); + }), + (p.prototype.onTouchMove = function (t) { + var e; + i(t) + ? this.end('touch') + : ((e = o(this.props.vertical, t)), this.onMove(t, e - this.dragOffset)); + }), + (p.prototype.onTouchStart = function (t) { + var e, n; + i(t) || + ((e = o(this.props.vertical, t)), + this.isEventFromHandle(t) + ? ((n = s(this.props.vertical, t.target)), + (this.dragOffset = e - n), + (e = n)) + : (this.dragOffset = 0), + this.onStart(e), + this.addDocumentEvents('touch'), + l(t)); + }), + (p.prototype.getPoints = function () { + var t = this.props, + e = t.marks, + n = t.step, + r = t.min, + i = t.max, + t = this._getPointsCache; + if (!t || t.marks !== e || t.step !== n) { + var o = Op({}, e); + if (null !== n) for (var a = r; a <= i; a += n) o[a] = a; + t = Object.keys(o).map(parseFloat); + t.sort(function (t, e) { + return t - e; + }), + (this._getPointsCache = { marks: e, step: n, points: t }); + } + return this._getPointsCache.points; + }), + (p.prototype.getPrecision = function (t) { + var t = t.toString(), + e = 0; + return (e = 0 <= t.indexOf('.') ? t.length - t.indexOf('.') - 1 : e); + }), + (p.prototype.getSliderLength = function () { + var t = this.sliderElement; + return t ? (this.props.vertical ? t.clientHeight : t.clientWidth) : 0; + }), + (p.prototype.getSliderStart = function () { + var t = this.sliderElement.getBoundingClientRect(); + return this.props.vertical ? t.top : t.left; + }), + (p.prototype.getValue = function () { + var t = this.state.bounds; + return this.props.range ? t : t[1]; + }), + (p.prototype.addDocumentEvents = function (t) { + 'touch' === t + ? (document.addEventListener('touchmove', this.eventHandlers.touchmove), + document.addEventListener('touchend', this.eventHandlers.touchend)) + : 'mouse' === t && + (document.addEventListener('mousemove', this.eventHandlers.mousemove), + document.addEventListener('mouseup', this.eventHandlers.mouseup)); + }), + (p.prototype.calcOffset = function (t) { + var e = this.props, + n = e.min; + return 100 * ((t - n) / (e.max - n)); + }), + (p.prototype.calcValue = function (t) { + var e = this.props, + n = e.vertical, + r = e.min, + e = e.max, + t = Math.abs(t / this.getSliderLength()); + return n ? (1 - t) * (e - r) + r : t * (e - r) + r; + }), + (p.prototype.calcValueByPos = function (t) { + t -= this.getSliderStart(); + return this.trimAlignValue(this.calcValue(t)); + }), + (p.prototype.end = function (t) { + this.removeEvents(t), + this.props.onAfterChange(this.getValue()), + this.setState({ handle: null }); + }), + (p.prototype.isEventFromHandle = function (t) { + for (var e = 0, n = this.handleElements; e < n.length; e++) + if (n[e] === t.target) return !0; + return !1; + }), + (p.prototype.isValueOutOfBounds = function (t, e) { + return t < e.min || t > e.max; + }), + (p.prototype.pushHandle = function (t, e, n, r) { + for (var i = t[e], o = t[e]; n * (o - i) < r; ) { + if (!this.pushHandleOnePoint(t, e, n)) return (t[e] = i), !1; + o = t[e]; + } + return !0; + }), + (p.prototype.pushHandleOnePoint = function (t, e, n) { + var r = this.getPoints(), + i = r.indexOf(t[e]) + n; + if (i >= r.length || i < 0) return !1; + var o = e + n, + r = r[i], + i = this.props.pushable, + a = n * (t[o] - r); + return !!this.pushHandle(t, o, n, +i - a) && ((t[e] = r), !0); + }), + (p.prototype.pushSurroundingHandles = function (t, e, n) { + var r, + i = this.props.pushable, + o = t[e], + a = 0; + t[e + 1] - o < i ? (a = 1) : o - t[e - 1] < i && (a = -1), + 0 !== a && + ((o = a * (t[(r = e + a)] - o)), + this.pushHandle(t, r, a, +i - o) || (t[e] = n)); + }), + (p.prototype.removeEvents = function (t) { + 'touch' === t + ? (document.removeEventListener( + 'touchmove', + this.eventHandlers.touchmove, + ), + document.removeEventListener('touchend', this.eventHandlers.touchend)) + : 'mouse' === t && + (document.removeEventListener( + 'mousemove', + this.eventHandlers.mousemove, + ), + document.removeEventListener('mouseup', this.eventHandlers.mouseup)); + }), + (p.prototype.trimAlignValue = function (t, e) { + var n = this.state || {}, + r = n.handle, + n = n.bounds, + e = Op({}, this.props, e || {}), + i = e.marks, + o = e.step, + a = e.min, + s = e.max, + e = e.allowCross, + l = t, + t = + (s <= (l = l <= a ? a : l) && (l = s), + !e && null != r && 0 < r && l <= n[r - 1] && (l = n[r - 1]), + !e && null != r && r < n.length - 1 && l >= n[r + 1] && (l = n[r + 1]), + Object.keys(i).map(parseFloat)), + e = + (null !== o && ((s = Math.round((l - a) / o) * o + a), t.push(s)), + t.map(function (t) { + return Math.abs(l - t); + })), + n = t[e.indexOf(Math.min.apply(Math, e))]; + return null !== o ? parseFloat(n.toFixed(this.getPrecision(o))) : n; + }), + (p.prototype.render = function () { + var n = this, + t = this.state, + r = t.handle, + i = t.bounds, + t = this.props, + e = t.className, + o = t.prefixCls, + a = t.disabled, + s = t.vertical, + l = t.dots, + u = t.included, + c = t.range, + A = t.step, + h = t.marks, + p = t.max, + d = t.min, + f = t.tipFormatter, + t = t.children, + g = this.props.handle, + m = i.map(function (t) { + return n.calcOffset(t); + }), + v = o + '-handle', + b = i.map(function (t, e) { + var n; + return E( + (((n = {})[v] = !0), + (n[v + '-' + (e + 1)] = !0), + (n[v + '-lower'] = 0 === e), + (n[v + '-upper'] = e === i.length - 1), + n), + ); + }), + y = { + prefixCls: o, + noTip: null === A || null === f, + tipFormatter: f, + vertical: s, + }, + f = + ((this.handleElements = []), + i.map(function (t, e) { + return w.React.cloneElement( + g, + Op({}, y, { + className: b[e], + value: t, + offset: m[e], + dragging: r === e, + index: e, + key: e, + ref: function (t) { + return n.handleElements.push(t); + }, + }), + ); + })), + u = (c || f.shift(), u || c), + e = E( + (((c = {})[o] = !0), + (c[o + '-with-marks'] = Object.keys(h).length), + (c[o + '-disabled'] = a), + (c[o + '-vertical'] = this.props.vertical), + (c[e] = !!e), + c), + ); + return w.React.createElement( + 'div', + { + ref: function (t) { + return (n.sliderElement = t); + }, + className: e, + onTouchStart: a ? B : this.onTouchStart.bind(this), + onMouseDown: a ? B : this.onMouseDown.bind(this), + }, + w.React.createElement('div', { className: o + '-rail' }), + [], + w.React.createElement(x, { + prefixCls: o, + vertical: s, + marks: h, + dots: l, + step: A, + included: u, + lowerBound: i[0], + upperBound: i[i.length - 1], + max: p, + min: d, + }), + f, + w.React.createElement(C, { + className: o + '-mark', + vertical: s, + marks: h, + included: u, + lowerBound: i[0], + upperBound: i[i.length - 1], + max: p, + min: d, + }), + t, + ); + }), + (p.defaultProps = { + prefixCls: 'lm-slider-base', + className: '', + min: 0, + max: 100, + step: 1, + marks: {}, + handle: w.React.createElement(t, { + className: '', + vertical: !1, + offset: 0, + tipFormatter: function (t) { + return t; + }, + value: 0, + index: 0, + }), + onBeforeChange: B, + onChange: B, + onAfterChange: B, + tipFormatter: function (t, e) { + return t; + }, + included: !0, + disabled: !1, + dots: !1, + range: !1, + vertical: !1, + allowCross: !0, + pushable: !1, + }); + var A, + h = p; + function p(t) { + var e = A.call(this, t) || this, + n = + ((e.sliderElement = void 0), + (e.handleElements = []), + (e.dragOffset = 0), + (e.startPosition = 0), + (e.startValue = 0), + (e._getPointsCache = void 0), + (e.eventHandlers = { + touchmove: function (t) { + return e.onTouchMove(t); + }, + touchend: function (t) { + return e.end('touch'); + }, + mousemove: function (t) { + return e.onMouseMove(t); + }, + mouseup: function (t) { + return e.end('mouse'); + }, + }), + t.range), + r = t.min, + i = t.max, + o = n + ? Array.apply(null, Array(+n + 1)).map(function () { + return r; + }) + : r, + o = 'defaultValue' in t ? t.defaultValue : o, + t = void 0 !== t.value ? t.value : o, + o = (n ? t : [r, t]).map(function (t) { + return e.trimAlignValue(t); + }), + t = n && o[0] === o[o.length - 1] && o[0] === i ? 0 : o.length - 1; + return (e.state = { handle: null, recent: t, bounds: o }), e; + } + n.SliderBase = h; + var C = function (t) { + var a = t.className, + s = t.vertical, + l = t.marks, + u = t.included, + c = t.upperBound, + A = t.lowerBound, + e = t.max, + h = t.min, + t = Object.keys(l), + p = 0.9 * (100 / (t.length - 1)), + d = e - h, + e = t + .map(parseFloat) + .sort(function (t, e) { + return t - e; + }) + .map(function (t) { + var e = (!u && t === c) || (u && t <= c && A <= t), + e = E( + (((n = {})[a + '-text'] = !0), (n[a + '-text-active'] = e), n), + ), + n = s + ? { marginBottom: '-50%', bottom: ((t - h) / d) * 100 + '%' } + : { + width: p + '%', + marginLeft: -p / 2 + '%', + left: ((t - h) / d) * 100 + '%', + }, + r = l[t], + i = 'object' == typeof r && !w.React.isValidElement(r), + o = i ? r.label : r, + i = i ? Op({}, n, r.style) : n; + return w.React.createElement( + 'span', + { className: e, style: i, key: t }, + o, + ); + }); + return w.React.createElement('div', { className: a }, e); + }, + x = function (t) { + var i = t.prefixCls, + o = t.vertical, + e = t.marks, + n = t.dots, + r = t.step, + a = t.included, + s = t.lowerBound, + l = t.upperBound, + u = t.max, + c = t.min, + A = u - c, + t = (function (t, e, n, r, i) { + var o = Object.keys(t).map(parseFloat); + if (e) for (var a = r; a <= i; a += n) 0 <= o.indexOf(a) || o.push(a); + return o; + })(e, n, r, c, u).map(function (t) { + var e, + n = (Math.abs(t - c) / A) * 100 + '%', + n = o ? { bottom: n } : { left: n }, + r = (!a && t === l) || (a && t <= l && s <= t), + r = E((((e = {})[i + '-dot'] = !0), (e[i + '-dot-active'] = r), e)); + return w.React.createElement('span', { + className: r, + style: n, + key: t, + }); + }); + return w.React.createElement('div', { className: i + '-step' }, t); + }; + })((t = F = F || {}).Plugin || (t.Plugin = {})), + (function (i) { + var t, + e, + o = i.Controls || (i.Controls = {}), + r = lp.Bootstrap.Utils.shallowEqual, + a = + ((t = i.React.Component), + M(n, t), + (n.prototype.shouldComponentUpdate = function (t, e, n) { + return !r(this.props, t); + }), + (n.prototype.render = function () { + var e = this, + t = this.props.color, + n = t.r, + r = t.g, + t = t.b, + n = i.React.createElement(o.ChromePickerHelper, { + color: { + a: 1, + r: 255 * (void 0 === n ? 1 : n), + g: 255 * (void 0 === r ? 1 : r), + b: 255 * (void 0 === t ? 1 : t), + }, + onChangeComplete: function (t) { + return e.props.onChange({ + r: t.rgb.r / 255, + g: t.rgb.g / 255, + b: t.rgb.b / 255, + }); + }, + }); + return i.React.createElement('div', { className: 'lm-color-picker' }, n); + }), + n); + function n() { + return (null !== t && t.apply(this, arguments)) || this; + } + function s() { + var t = (null !== e && e.apply(this, arguments)) || this; + return (t.state = { isExpanded: !1 }), t; + } + (o.ColorPicker = a), + (e = i.React.Component), + M(s, e), + (s.prototype.render = function () { + var t = this, + e = this.state.isExpanded + ? i.React.createElement(a, Op({}, this.props)) + : void 0, + n = this.props.color, + r = this.props.position || 'above'; + return i.React.createElement( + 'div', + { + className: + 'lm-control-row lm-toggle-color-picker lm-toggle-color-picker-' + r, + onMouseLeave: function () { + return t.setState({ isExpanded: !1 }); + }, + }, + i.React.createElement('span', null, this.props.label), + i.React.createElement( + 'div', + null, + i.React.createElement(o.Button, { + onClick: function () { + t.setState({ isExpanded: !t.state.isExpanded }); + }, + asBlock: !0, + customStyle: { + backgroundColor: + 'rgb(' + + ((255 * n.r) | 0) + + ', ' + + ((255 * n.g) | 0) + + ', ' + + ((255 * n.b) | 0) + + ')', + color: + 'rgb(' + + ((255 * (1 - n.r)) | 0) + + ',' + + ((255 * (1 - n.g)) | 0) + + ',' + + ((255 * (1 - n.b)) | 0) + + ')', + }, + }), + ), + e, + ); + }), + (o.ToggleColorPicker = s); + })((lp = F = F || {}).Plugin || (lp.Plugin = {})), + (n = F = F || {}), + (up = n.Plugin || (n.Plugin = {})), + ((cp = up.Controls || (up.Controls = {})).QueryEditor = function (e) { + return up.React.createElement( + 'div', + { className: 'lm-control-row' }, + up.React.createElement(cp.TextBox, { + placeholder: 'Enter query...', + onChange: e.onChange, + value: e.value, + onKeyPress: function (t) { + cp.isEnter(t) && e.onEnter && e.onEnter.call(null, t); + }, + }), + ); + }), + (function (t) { + var e, + n = t.Views || (t.Views = {}), + r = Ap.Bootstrap.Utils.shallowEqual, + i = + ((e = t.React.Component), + M(o, e), + (o.prototype.update = function (t) { + t = Ap.Bootstrap.Utils.merge(this.props.state, t); + t !== this.props.state && this.props.onChange(t); + }), + (o.prototype.shouldComponentUpdate = function (t, e) { + return !r(this.props, t) || !r(this.state, e); + }), + o); + function o() { + return (null !== e && e.apply(this, arguments)) || this; + } + (n.PureView = i), + (a = t.React.Component), + M(s, a), + (s.prototype.subscribe = function (t, e) { + t = t.subscribe(e); + return this.subs.push(t), t; + }), + (s.prototype.unsubscribe = function (t) { + for (var e = this.subs.indexOf(t); e < this.subs.length - 1; e++) + this.subs[e] = this.subs[e + 1]; + t.dispose(), this.subs.pop(); + }), + (s.prototype.componentWillUnmount = function () { + for (var t = 0, e = this.subs; t < e.length; t++) e[t].dispose(); + this.subs = []; + }); + var a, + i = s; + function s() { + var t = (null !== a && a.apply(this, arguments)) || this; + return (t.subs = []), t; + } + (n.Component = s), + (l = t.React.Component), + M(u, l), + (u.prototype.subscribe = function (t, e) { + t = t.subscribe(e); + return this.subs.push(t), t; + }), + (u.prototype.unsubscribe = function (t) { + for (var e = this.subs.indexOf(t); e < this.subs.length - 1; e++) + this.subs[e] = this.subs[e + 1]; + t.dispose(), this.subs.pop(); + }), + (u.prototype.componentWillUnmount = function () { + for (var t = 0, e = this.subs; t < e.length; t++) e[t].dispose(); + this.subs = []; + }); + var l, + i = u; + function u() { + var t = (null !== l && l.apply(this, arguments)) || this; + return (t.subs = []), t; + } + (n.ObserverView = i), + M(A, (c = i)), + Object.defineProperty(A.prototype, 'controller', { + get: function () { + return this.props.controller; + }, + enumerable: !0, + configurable: !0, + }), + (A.prototype.componentWillMount = function () { + var e = this; + this.subscribe(this.controller.state, function (t) { + e.forceUpdate(); + }); + }); + var c, + i = A; + function A() { + return (null !== c && c.apply(this, arguments)) || this; + } + n.View = A; + })((Ap = F = F || {}).Plugin || (Ap.Plugin = {})), + (function (s) { + var t, e, i; + function n() { + return (null !== e && e.apply(this, arguments)) || this; + } + (t = s.Views || (s.Views = {})), + (i = hp.Bootstrap.Components.LayoutRegion), + (e = t.View), + M(n, e), + (n.prototype.componentDidMount = function () { + var t = this; + this.subscribe( + hp.Bootstrap.Event.Common.ComponentsChanged.getStream( + this.controller.context, + ), + function () { + return t.forceUpdate(); + }, + ); + }), + (n.prototype.renderTarget = function (t, e) { + for (var n = [], r = [], i = 0, o = e.components; i < o.length; i++) { + var a = o[i]; + (a.isStatic ? n : r).push( + s.React.createElement(a.view, { key: a.key, controller: a.controller }), + ); + } + return s.React.createElement( + 'div', + { + key: 'layout-target-' + t, + className: 'lm-layout-region lm-layout-' + e.cssClass, + }, + n.length + ? s.React.createElement('div', { className: 'lm-layout-static' }, n) + : void 0, + r.length + ? s.React.createElement('div', { className: 'lm-layout-scrollable' }, r) + : void 0, + ); + }), + (n.prototype.updateTarget = function (t, e, n) { + var r = this.controller.latestState, + i = r.regionStates, + o = this.controller.targets[e], + r = r.hideControls + ? void 0 !== i && 'Sticky' === i[e] && 0 < o.components.length + : (!i || 'Hidden' !== i[e]) && 0 < o.components.length; + r + ? n.regions.push(this.renderTarget(t, o)) + : (n.layoutClass += ' lm-layout-hide-' + t); + }), + (n.prototype.render = function () { + var t, + e = this.controller.latestState; + if (e.isExpanded) t = 'lm-layout-expanded'; + else + switch (((t = 'lm-layout-standard '), e.collapsedControlsLayout)) { + case hp.Bootstrap.Components.CollapsedControlsLayout.Outside: + t += 'lm-layout-standard-outside'; + break; + case hp.Bootstrap.Components.CollapsedControlsLayout.Landscape: + t += 'lm-layout-standard-landscape'; + break; + case hp.Bootstrap.Components.CollapsedControlsLayout.Portrait: + t += 'lm-layout-standard-portrait'; + break; + default: + t += 'lm-layout-standard-outside'; + } + var e = this.controller.targets, + n = [this.renderTarget('main', e[i.Main])], + r = { regions: n, layoutClass: '' }, + e = + (this.updateTarget('top', i.Top, r), + this.updateTarget('right', i.Right, r), + this.updateTarget('bottom', i.Bottom, r), + this.updateTarget('left', i.Left, r), + (r = r.layoutClass), + e[i.Root].components.map(function (t) { + return s.React.createElement(t.view, { + key: t.key, + controller: t.controller, + }); + })); + return s.React.createElement( + 'div', + { className: 'lm-plugin' }, + s.React.createElement( + 'div', + { className: 'lm-plugin-content ' + t }, + s.React.createElement('div', { className: r }, n, e), + ), + ); + }), + (t.Layout = n); + })((hp = F = F || {}).Plugin || (hp.Plugin = {})), + (pp = F = F || {}), + (function (a) { + var t, + e = a.Transform || (a.Transform = {}); + function n() { + return (null !== t && t.apply(this, arguments)) || this; + } + (t = a.View), + M(n, t), + Object.defineProperty(n.prototype, 'params', { + get: function () { + return this.controller.latestState.params; + }, + enumerable: !0, + configurable: !0, + }), + (n.prototype.updateParams = function (t) { + this.controller.updateParams(t); + }), + (n.prototype.autoUpdateParams = function (t) { + this.controller.autoUpdateParams(t); + }), + (n.prototype.getPersistentState = function (t, e) { + return this.controller.context.transforms.getPersistentState( + this.controller.transformer, + this.transformSourceEntity, + t, + e, + ); + }), + (n.prototype.setPersistentState = function (t, e) { + this.controller.context.transforms.setPersistentState( + this.controller.transformer, + this.transformSourceEntity, + t, + e, + ) && this.forceUpdate(); + }), + Object.defineProperty(n.prototype, 'transformSourceEntity', { + get: function () { + return this.isUpdate + ? this.controller.entity.parent + : this.controller.entity; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(n.prototype, 'isUpdate', { + get: function () { + return this.controller.isUpdate; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(n.prototype, 'canApply', { + get: function () { + var t = this.controller.latestState, + e = t.canApply && (!this.isUpdate || t.isDirty) && !t.isBusy; + return !(e && this.isUpdate && t.parametersAutoUpdating) && e; + }, + enumerable: !0, + configurable: !0, + }), + (n.prototype.applyEnter = function (t) { + this.canApply && (t.target.blur(), this.controller.apply()); + }), + (n.prototype.render = function () { + var e = this, + t = this.isUpdate, + n = this.controller.latestState, + r = n.issues, + i = r && r.length, + n = n.isBusy + ? 'Working...' + : t && !i + ? 'Nothing to update' + : r + ? r[0] + : void 0, + o = this.controller.transformer.info, + r = dp.React.createElement(dp.Controls.CommitButton, { + action: function () { + return e.controller.apply(); + }, + isOn: this.canApply, + title: + r && r.length + ? r[0] + : this.canApply && t + ? 'An update will remove all child nodes.' + : void 0, + on: t ? 'Update' : this.props.isAction ? 'Apply' : 'Add', + off: n, + }), + n = this.canApply || i, + i = this.props.customHeader || (t ? 'Update ' : '') + o.name, + t = this.getPersistentState('isExpanded', !0); + return dp.React.createElement( + 'div', + { className: 'lm-transformer-wrapper' }, + dp.React.createElement( + dp.Controls.Panel, + { + header: i, + badge: this.props.hideBadge + ? void 0 + : dp.React.createElement(a.Entity.Badge, { type: o.to[0].info }), + className: + 'lm-control lm-transformer lm-panel-' + o.to[0].info.typeClass, + key: o.id, + title: o.description, + isExpanded: t, + onExpand: function (t) { + e.setPersistentState('isExpanded', t); + }, + description: this.controller.transformer.info.description, + topRightAction: this.props.showVisibilityIcon + ? dp.React.createElement(a.Entity.VisibilityControl, { + entity: this.controller.entity, + }) + : void 0, + }, + this.renderControls(), + n ? r : void 0, + ), + ); + }), + (e.ControllerBase = n), + (r = e.ControllerBase), + M(i, r), + (i.prototype.renderControls = function () { + return dp.React.createElement('div', null); + }); + var r; + function i() { + return (null !== r && r.apply(this, arguments)) || this; + } + (e.Empty = i), + (o = a.View), + M(s, o), + (s.prototype.render = function () { + var t, + n = this.controller.context.plugin, + e = this.controller.latestState, + r = e.transforms.map(function (t) { + var e = n.getTransformerInfo(t.transformer).view; + return dp.React.createElement(e, { + controller: t, + key: t.transformer.info.id + '-' + t.entity.id, + }); + }); + return ( + e.update && + ((t = n.getTransformerInfo(e.update.transformer).view), + r.push( + dp.React.createElement(t, { + controller: e.update, + key: e.update.transformer.info.id + '-' + e.update.entity.id, + }), + )), + dp.React.createElement('div', { className: 'lm-transform-view' }, r) + ); + }); + var o; + function s() { + return (null !== o && o.apply(this, arguments)) || this; + } + (e.View = s), + (e.TransparencyControl = function (e) { + var t = e.definition.alpha; + return dp.React.createElement(dp.Controls.Slider, { + label: 'Opacity', + onChange: function (t) { + return e.onChange({ alpha: t, writeDepth: e.definition.writeDepth }); + }, + min: 0, + max: 1, + step: 0.01, + value: t, + }); + }), + (l = a.View), + M(u, l), + (u.prototype.componentWillMount = function () { + var n = this; + l.prototype.componentWillMount.call(this), + this.subscribe( + pp.Bootstrap.Event.Tree.NodeUpdated.getStream(this.controller.context), + function (t) { + var e = n.controller.latestState.controller, + e = e && e.entity; + t.data === e && n.forceUpdate(); + }, + ); + }), + (u.prototype.render = function () { + var t = this.controller.latestState.controller; + if (!t) + return dp.React.createElement('div', { className: 'lm-empty-control' }); + var e = this.controller.context.plugin.getTransformerInfo( + t.transformer, + ).view; + return e + ? dp.React.createElement(e, { + controller: t, + key: t.transformer.info.id + '-' + t.entity.id, + customHeader: this.controller.header, + hideBadge: !0, + showVisibilityIcon: !0, + }) + : (console.warn( + 'Count not find view for updater (' + + t.transformer.info.id + + '), please register it.', + ), + dp.React.createElement('div', { className: 'lm-empty-control' })); + }); + var l; + function u() { + return (null !== l && l.apply(this, arguments)) || this; + } + (e.Updater = u), + (c = a.View), + M(A, c), + (A.prototype.render = function () { + var t = this.controller.latestState.controller; + if (!t) + return dp.React.createElement('div', { className: 'lm-empty-control' }); + var e = this.controller.context.plugin.getTransformerInfo( + t.transformer, + ).view; + return e + ? dp.React.createElement(e, { + controller: t, + key: t.transformer.info.id + '-' + t.entity.id, + customHeader: this.controller.header, + hideBadge: !0, + isAction: !0, + }) + : (console.warn( + 'Count not find view for updater (' + + t.transformer.info.id + + '), please register it.', + ), + dp.React.createElement('div', { className: 'lm-empty-control' })); + }); + var c; + function A() { + return (null !== c && c.apply(this, arguments)) || this; + } + e.Action = A; + })((dp = pp.Plugin || (pp.Plugin = {})).Views || (dp.Views = {})), + (fp = F = F || {}), + (gp = fp.Plugin || (fp.Plugin = {})), + (function (t) { + var e, + n = t.Data || (t.Data = {}); + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + (e = t.ControllerBase), + M(r, e), + (r.prototype.renderControls = function () { + var e = this, + t = this.params; + return gp.React.createElement( + 'div', + null, + gp.React.createElement(gp.Controls.OptionsGroup, { + options: fp.Bootstrap.Entity.Data.Types, + caption: function (t) { + return t; + }, + current: t.type, + onChange: function (t) { + return e.updateParams({ + type: t, + responseCompression: fp.Bootstrap.Utils.DataCompressionMethod.None, + }); + }, + label: 'Type', + }), + 'Binary' === t.type + ? gp.React.createElement(gp.Controls.OptionsGroup, { + options: ['None', 'Gzip'], + caption: function (t) { + return t; + }, + current: + t.responseCompression === + fp.Bootstrap.Utils.DataCompressionMethod.Gzip + ? 'Gzip' + : 'None', + onChange: function (t) { + return e.updateParams({ + responseCompression: + 'None' === t + ? fp.Bootstrap.Utils.DataCompressionMethod.None + : fp.Bootstrap.Utils.DataCompressionMethod.Gzip, + }); + }, + label: 'Compression', + title: + 'Specify the compression of the data. Usually only appliable if you downloading "raw" files.', + }) + : void 0, + gp.React.createElement(gp.Controls.TextBoxGroup, { + value: t.url, + onChange: function (t) { + return e.updateParams({ url: t }); + }, + label: 'URL', + onEnter: function (t) { + return e.applyEnter(t); + }, + placeholder: 'Enter URL...', + }), + ); + }), + (n.Download = r), + (i = t.ControllerBase), + M(o, i), + (o.prototype.renderControls = function () { + var e = this, + t = this.params, + n = this.controller.latestState; + return gp.React.createElement( + 'div', + null, + gp.React.createElement(gp.Controls.OptionsGroup, { + options: fp.Bootstrap.Entity.Data.Types, + caption: function (t) { + return t; + }, + current: t.type, + onChange: function (t) { + return e.updateParams({ type: t }); + }, + label: 'Type', + }), + gp.React.createElement( + 'div', + { + className: 'lm-btn lm-btn-block lm-btn-action lm-loader-lm-btn-file', + style: { marginTop: '1px' }, + }, + t.file ? t.file.name : 'Select a file...', + ' ', + gp.React.createElement('input', { + disabled: n.isBusy, + type: 'file', + onChange: function (t) { + return e.updateParams({ file: t.target.files[0] }); + }, + multiple: !1, + }), + ), + ); + }); + var i; + function o() { + return (null !== i && i.apply(this, arguments)) || this; + } + (n.OpenFile = o), + (a = t.ControllerBase), + M(s, a), + (s.prototype.renderControls = function () { + var e = this, + t = this.params; + return gp.React.createElement( + 'div', + null, + gp.React.createElement(gp.Controls.TextBoxGroup, { + value: t.id, + onChange: function (t) { + return e.updateParams({ id: t }); + }, + label: 'Id', + onEnter: function (t) { + return e.applyEnter(t); + }, + placeholder: 'Enter PDB id...', + }), + ); + }); + var a; + function s() { + return (null !== a && a.apply(this, arguments)) || this; + } + (n.WithIdField = s), + (l = t.ControllerBase), + M(u, l), + (u.prototype.renderControls = function () { + var e = this, + t = this.params; + return gp.React.createElement( + 'div', + null, + gp.React.createElement(gp.Controls.TextBoxGroup, { + value: t.id, + onChange: function (t) { + return e.updateParams({ id: t }); + }, + label: 'URL', + onEnter: function (t) { + return e.applyEnter(t); + }, + placeholder: 'Enter URL...', + }), + ); + }); + var l; + function u() { + return (null !== l && l.apply(this, arguments)) || this; + } + n.WithUrlIdField = u; + })((w = gp.Views || (gp.Views = {})).Transform || (w.Transform = {})), + (mp = F = F || {}), + (k = mp.Plugin || (mp.Plugin = {})), + (function (i) { + var t, + e = i.Molecule || (i.Molecule = {}); + function n() { + return (null !== t && t.apply(this, arguments)) || this; + } + (t = i.ControllerBase), + M(n, t), + (n.prototype.renderControls = function () { + var e = this, + t = this.params; + return k.React.createElement( + 'div', + null, + k.React.createElement(k.Controls.OptionsGroup, { + options: mp.Core.Formats.Molecule.SupportedFormats.All, + caption: function (t) { + return t.name; + }, + current: t.format, + onChange: function (t) { + return e.updateParams({ format: t }); + }, + label: 'Format', + }), + ); + }), + (e.CreateFromData = n), + (r = i.ControllerBase), + M(o, r), + (o.prototype.renderControls = function () { + var e = this, + t = this.params; + return k.React.createElement( + 'div', + null, + k.React.createElement(k.Controls.OptionsGroup, { + options: mp.Core.Formats.Molecule.SupportedFormats.All, + caption: function (t) { + return t.name; + }, + current: t.format, + onChange: function (t) { + return e.updateParams({ format: t }); + }, + label: 'Format', + }), + k.React.createElement(k.Controls.TextBoxGroup, { + value: t.id, + onChange: function (t) { + return e.updateParams({ id: t }); + }, + label: 'URL', + onEnter: function (t) { + return e.applyEnter(t); + }, + placeholder: 'Enter url...', + }), + ); + }); + var r; + function o() { + return (null !== r && r.apply(this, arguments)) || this; + } + (e.DownloadFromUrl = o), + (a = i.ControllerBase), + M(s, a), + (s.prototype.renderControls = function () { + var e = this, + t = this.params, + n = this.controller.latestState, + r = mp.Core.Formats.FormatInfo.formatFileFilters( + mp.Core.Formats.Molecule.SupportedFormats.All, + ); + return k.React.createElement( + 'div', + null, + k.React.createElement( + 'div', + { + className: 'lm-btn lm-btn-block lm-btn-action lm-loader-lm-btn-file', + style: { marginTop: '1px' }, + }, + t.file ? t.file.name : 'Select a file...', + ' ', + k.React.createElement('input', { + disabled: n.isBusy, + type: 'file', + accept: r, + onChange: function (t) { + return e.updateParams({ file: t.target.files[0] }); + }, + multiple: !1, + }), + ), + ); + }); + var a; + function s() { + return (null !== a && a.apply(this, arguments)) || this; + } + (e.OpenFile = s), + (l = i.ControllerBase), + M(u, l), + (u.prototype.renderControls = function () { + var e = this, + t = this.params; + return k.React.createElement( + 'div', + null, + k.React.createElement(k.Controls.TextBoxGroup, { + value: t.id, + onChange: function (t) { + return e.updateParams({ id: t }); + }, + label: 'Id', + onEnter: function (t) { + return e.applyEnter(t); + }, + placeholder: 'Enter pdb id...', + }), + k.React.createElement(k.Controls.TextBoxGroup, { + value: t.server, + onChange: function (t) { + return e.updateParams({ server: t }); + }, + label: 'Server', + onEnter: function (t) { + return e.applyEnter(t); + }, + placeholder: 'Server url...', + }), + ); + }); + var l; + function u() { + return (null !== l && l.apply(this, arguments)) || this; + } + (e.InitCoordinateStreaming = u), + (c = i.ControllerBase), + M(A, c), + (A.prototype.renderControls = function () { + var e = this, + t = this.transformSourceEntity.props.dictionary.dataBlocks.map( + function (t, e) { + return { b: t.header, i: e }; + }, + ); + return k.React.createElement( + 'div', + null, + k.React.createElement(k.Controls.OptionsGroup, { + options: t, + caption: function (t) { + return t.b; + }, + current: t[this.params.blockIndex], + onChange: function (t) { + return e.updateParams({ blockIndex: t.i }); + }, + label: 'Source', + }), + ); + }); + var c; + function A() { + return (null !== c && c.apply(this, arguments)) || this; + } + (e.CreateFromMmCif = A), + (h = i.ControllerBase), + M(p, h), + (p.prototype.renderControls = function () { + var e = this, + t = this.transformSourceEntity.props.molecule.models.length; + return k.React.createElement( + 'div', + null, + k.React.createElement(k.Controls.Slider, { + label: 'Index', + onChange: function (t) { + return e.updateParams({ modelIndex: t - 1 }); + }, + min: 1, + max: t, + step: 1, + value: 1 + (0 | this.params.modelIndex), + title: 'Index of the model.', + }), + ); + }); + var h; + function p() { + return (null !== h && h.apply(this, arguments)) || this; + } + (e.CreateModel = p), + (d = i.ControllerBase), + M(f, d), + (f.prototype.renderControls = function () { + var e = this, + t = this.params, + n = mp.Bootstrap.Utils.Molecule.findModel(this.transformSourceEntity) + .props.model.data.assemblyInfo; + if (n) + return ( + (n = n.assemblies.map(function (t) { + return t.name; + })), + k.React.createElement( + 'div', + null, + k.React.createElement(k.Controls.OptionsGroup, { + options: n, + current: t.name, + onChange: function (t) { + return e.updateParams({ name: t }); + }, + label: 'Name', + }), + ) + ); + }); + var d; + function f() { + return (null !== d && d.apply(this, arguments)) || this; + } + (e.CreateAssembly = f), + (g = i.ControllerBase), + M(m, g), + (m.prototype.renderControls = function () { + var e = this, + t = this.params; + return k.React.createElement( + 'div', + null, + k.React.createElement(k.Controls.OptionsGroup, { + options: ['Mates', 'Interaction'], + current: t.type, + onChange: function (t) { + return e.updateParams({ type: t }); + }, + label: 'Type', + title: + 'Mates: copies whole asymetric unit. Interaction: Includes only residues that are no more than `radius` from the asymetric unit.', + }), + k.React.createElement(k.Controls.Slider, { + label: 'Radius', + onChange: function (t) { + return e.updateParams({ radius: t }); + }, + min: 0, + max: 25, + step: 0.1, + value: t.radius, + title: 'Interaction radius.', + }), + ); + }); + var g; + function m() { + return (null !== g && g.apply(this, arguments)) || this; + } + (e.CreateSymmetryMates = m), + (v = i.ControllerBase), + M(b, v), + (b.prototype.renderControls = function () { + var e = this, + t = this.params; + return k.React.createElement( + 'div', + null, + k.React.createElement(k.Controls.TextBoxGroup, { + value: t.name, + onChange: function (t) { + return e.updateParams({ name: t }); + }, + label: 'Name', + onEnter: function (t) { + return e.applyEnter(t); + }, + placeholder: 'Optional name...', + }), + k.React.createElement(k.Controls.QueryEditor, { + value: t.queryString, + onChange: function (t) { + return e.updateParams({ queryString: t }); + }, + onEnter: function (t) { + return e.applyEnter(t); + }, + }), + ); + }); + var v; + function b() { + return (null !== v && v.apply(this, arguments)) || this; + } + (e.CreateSelection = b), + (y = i.ControllerBase), + M(w, y), + (w.prototype.renderControls = function () { + var e = this, + t = this.params; + return k.React.createElement( + 'div', + null, + k.React.createElement(k.Controls.Toggle, { + onChange: function (t) { + return e.updateParams({ polymer: t }); + }, + value: t.polymer, + label: 'Polymer', + }), + k.React.createElement(k.Controls.Toggle, { + onChange: function (t) { + return e.updateParams({ het: t }); + }, + value: t.het, + label: 'HET', + }), + k.React.createElement(k.Controls.Toggle, { + onChange: function (t) { + return e.updateParams({ water: t }); + }, + value: t.water, + label: 'Water', + }), + ); + }); + var y; + function w() { + return (null !== y && y.apply(this, arguments)) || this; + } + (e.CreateMacromoleculeVisual = w), + (E = i.ControllerBase), + M(B, E), + (B.prototype.detail = function () { + var e = this, + t = this.params.style.params; + return [ + k.React.createElement(k.Controls.OptionsGroup, { + options: mp.Bootstrap.Visualization.Molecule.DetailTypes, + caption: function (t) { + return t; + }, + current: t.detail, + onChange: function (t) { + return e.controller.updateStyleParams({ detail: t }); + }, + label: 'Detail', + }), + ]; + }), + (B.prototype.cartoons = function () { + var e = this, + t = this.params.style.params; + return [ + k.React.createElement(k.Controls.Toggle, { + key: 0, + onChange: function (t) { + return e.controller.updateStyleParams({ showDirectionCone: t }); + }, + value: t.showDirectionCone, + label: 'Dir. Cones', + }), + k.React.createElement(k.Controls.OptionsGroup, { + key: 1, + options: mp.Bootstrap.Visualization.Molecule.DetailTypes, + caption: function (t) { + return t; + }, + current: t.detail, + onChange: function (t) { + return e.controller.updateStyleParams({ detail: t }); + }, + label: 'Detail', + }), + ]; + }), + (B.prototype.ballsAndSticks = function () { + var e = this, + n = this.params.style.params, + t = [], + r = 0, + i = + (t.push( + k.React.createElement(k.Controls.Toggle, { + title: 'Scale atoms using their VDW radius.', + onChange: function (t) { + return e.controller.updateStyleParams({ useVDW: t }); + }, + value: n.useVDW, + label: 'VDW', + }), + ), + n.useVDW + ? t.push( + k.React.createElement(k.Controls.Slider, { + key: r++, + label: 'Scale', + onChange: function (t) { + return e.controller.updateStyleParams({ vdwScaling: t }); + }, + min: 0.1, + max: 1, + step: 0.01, + value: n.vdwScaling, + title: 'VDW scale factor.', + }), + ) + : t.push( + k.React.createElement(k.Controls.Slider, { + key: r++, + label: 'Atom Rds', + onChange: function (t) { + return e.controller.updateStyleParams({ atomRadius: t }); + }, + min: 0.05, + max: 2, + step: 0.01, + value: n.atomRadius, + title: 'Atom Radius', + }), + ), + t.push( + k.React.createElement(k.Controls.Slider, { + key: r++, + label: 'Bond Rds', + onChange: function (t) { + return e.controller.updateStyleParams({ bondRadius: t }); + }, + min: 0.05, + max: 1, + step: 0.01, + value: n.bondRadius, + title: 'Bond Radius', + }), + ), + n.customMaxBondLengths && n.customMaxBondLengths.H + ? n.customMaxBondLengths.H + : 1.15); + return ( + t.push( + k.React.createElement(k.Controls.Slider, { + key: r++, + label: 'H Bond Len', + onChange: function (t) { + return e.controller.updateStyleParams({ + customMaxBondLengths: Op({}, n.customMaxBondLengths, { H: t }), + }); + }, + min: 0.9, + max: 1.5, + step: 0.01, + value: i, + title: 'Maximum H bond length', + }), + ), + t.push( + k.React.createElement(k.Controls.Toggle, { + key: r++, + onChange: function (t) { + return e.controller.updateStyleParams({ hideHydrogens: t }); + }, + value: n.hideHydrogens, + label: 'Hide H', + }), + ), + t.push( + k.React.createElement(k.Controls.OptionsGroup, { + key: r++, + options: mp.Bootstrap.Visualization.Molecule.DetailTypes, + caption: function (t) { + return t; + }, + current: n.detail, + onChange: function (t) { + return e.controller.updateStyleParams({ detail: t }); + }, + label: 'Detail', + }), + ), + t + ); + }), + (B.prototype.surface = function () { + var e = this, + t = this.params.style.params, + n = 0; + return [ + k.React.createElement(k.Controls.Slider, { + key: n++, + label: 'Probe Radius', + onChange: function (t) { + return e.controller.updateStyleParams({ probeRadius: t }); + }, + min: 0, + max: 6, + step: 0.1, + value: t.probeRadius, + }), + k.React.createElement(k.Controls.Slider, { + key: n++, + label: 'Smoothing', + onChange: function (t) { + return e.controller.updateStyleParams({ smoothing: t }); + }, + min: 0, + max: 20, + step: 1, + value: t.smoothing, + title: 'Number of laplacian smoothing itrations.', + }), + k.React.createElement(k.Controls.Toggle, { + key: n++, + onChange: function (t) { + return e.controller.updateStyleParams({ automaticDensity: t }); + }, + value: t.automaticDensity, + label: 'Auto Detail', + }), + t.automaticDensity + ? void 0 + : k.React.createElement(k.Controls.Slider, { + key: n++, + label: 'Detail', + onChange: function (t) { + return e.controller.updateStyleParams({ density: t }); + }, + min: 0.1, + max: 3, + step: 0.1, + value: t.density, + title: 'Determines the size of a grid cell (size = 1/detail).', + }), + k.React.createElement(k.Controls.Toggle, { + key: n++, + onChange: function (t) { + return e.controller.updateStyleParams({ isWireframe: t }); + }, + value: t.isWireframe, + label: 'Wireframe', + }), + ]; + }), + (B.prototype.createColors = function () { + var n = this, + t = this.params.style.theme, + r = 'BallsAndSticks' === this.params.style.type, + e = t.colors + .filter(function (t, e) { + return r || 'Bond' !== e; + }) + .map(function (t, e) { + return k.React.createElement(k.Controls.ToggleColorPicker, { + key: e, + label: e, + color: t, + onChange: function (t) { + return n.controller.updateThemeColor(e, t); + }, + }); + }) + .toArray(); + return ( + e.push( + k.React.createElement(i.TransparencyControl, { + definition: t.transparency, + onChange: function (t) { + return n.controller.updateThemeTransparency(t); + }, + }), + ), + e + ); + }), + (B.prototype.renderControls = function () { + var t, + e = this, + n = this.params; + switch (n.style.type) { + case 'Surface': + t = this.surface(); + break; + case 'BallsAndSticks': + t = this.ballsAndSticks(); + break; + case 'Cartoons': + t = this.cartoons(); + break; + default: + t = this.detail(); + } + var r = this.getPersistentState('showTypeOptions', !1), + i = this.getPersistentState('showThemeOptions', !1); + return k.React.createElement( + 'div', + null, + k.React.createElement(k.Controls.ExpandableGroup, { + select: k.React.createElement(k.Controls.OptionsGroup, { + options: mp.Bootstrap.Visualization.Molecule.Types, + caption: function (t) { + return mp.Bootstrap.Visualization.Molecule.TypeDescriptions[t] + .label; + }, + current: n.style.type, + onChange: function (t) { + return e.controller.updateTemplate( + t, + mp.Bootstrap.Visualization.Molecule.Default.ForType, + ); + }, + label: 'Type', + }), + expander: k.React.createElement(k.Controls.ControlGroupExpander, { + isExpanded: r, + onChange: function (t) { + return e.setPersistentState('showTypeOptions', t); + }, + }), + options: t, + isExpanded: r, + }), + k.React.createElement(k.Controls.ExpandableGroup, { + select: k.React.createElement(k.Controls.OptionsGroup, { + options: mp.Bootstrap.Visualization.Molecule.Default.Themes, + caption: function (t) { + return t.name; + }, + current: n.style.theme.template, + onChange: function (t) { + return e.controller.updateThemeDefinition(t); + }, + label: 'Coloring', + }), + expander: k.React.createElement(k.Controls.ControlGroupExpander, { + isExpanded: i, + onChange: function (t) { + return e.setPersistentState('showThemeOptions', t); + }, + }), + options: this.createColors(), + isExpanded: i, + }), + ); + }); + var E; + function B() { + return (null !== E && E.apply(this, arguments)) || this; + } + (e.CreateVisual = B), + (C = i.ControllerBase), + M(x, C), + (x.prototype.renderControls = function () { + var e = this, + t = this.controller.latestState.params.style, + t = k.React.createElement(k.Controls.OptionsGroup, { + options: mp.Bootstrap.Utils.Molecule.Labels3DKinds, + caption: function (t) { + return mp.Bootstrap.Utils.Molecule.Labels3DKindLabels[t]; + }, + current: t.params.kind, + onChange: function (t) { + return e.controller.updateStyleParams({ kind: t }); + }, + label: 'Kind', + }), + n = this.getPersistentState('showOptions', !1); + return k.React.createElement( + 'div', + null, + k.React.createElement(k.Controls.ExpandableGroup, { + select: t, + expander: k.React.createElement(k.Controls.ControlGroupExpander, { + isExpanded: n, + onChange: function (t) { + return e.setPersistentState('showOptions', t); + }, + }), + options: i.Labels.optionsControls(this.controller), + isExpanded: n, + }), + ); + }); + var C; + function x() { + return (null !== C && C.apply(this, arguments)) || this; + } + e.CreateLabels = x; + })((E = k.Views || (k.Views = {})).Transform || (E.Transform = {})), + (vp = F = F || {}), + (m = vp.Plugin || (vp.Plugin = {})), + (function (o) { + var t, + e = o.Density || (o.Density = {}); + function a(e) { + return m.React.createElement(m.Controls.ExpandableGroup, { + select: m.React.createElement(m.Controls.Slider, { + label: e.isSigma ? 'Iso Value (σ)' : 'Iso Value', + onChange: e.onChangeValue, + min: e.min, + max: e.max, + value: e.value, + step: 0.001, + }), + expander: m.React.createElement(m.Controls.ControlGroupExpander, { + isExpanded: e.view.getPersistentState('showIsoValueType', !1), + onChange: function (t) { + return e.view.setPersistentState('showIsoValueType', t); + }, + }), + options: [ + m.React.createElement(m.Controls.Toggle, { + onChange: function (t) { + return e.onChangeType( + t + ? vp.Bootstrap.Visualization.Density.IsoValueType.Sigma + : vp.Bootstrap.Visualization.Density.IsoValueType.Absolute, + ); + }, + value: e.isSigma, + label: 'Relative (\\u03C3)', + }), + ], + isExpanded: e.view.getPersistentState('showIsoValueType', !1), + }); + } + function s(t, e, n, r) { + e = (e - t.valuesInfo.mean) / t.valuesInfo.sigma; + return r < e ? r : e < n ? n : e; + } + function l(t, e) { + e = t.valuesInfo.mean + e * t.valuesInfo.sigma; + return e > t.valuesInfo.max + ? t.valuesInfo.max + : e < t.valuesInfo.min + ? t.valuesInfo.min + : e; + } + function n() { + return (null !== t && t.apply(this, arguments)) || this; + } + (t = o.ControllerBase), + M(n, t), + (n.prototype.renderControls = function () { + var t, + e = this, + n = this.params, + r = vp.Bootstrap.Utils.round; + return this.isUpdate + ? ((t = this.controller.entity.props.data), + m.React.createElement( + 'div', + null, + m.React.createElement(m.Controls.RowText, { + label: 'Format', + value: n.format.name, + }), + m.React.createElement(m.Controls.RowText, { + label: 'Sigma', + value: r(t.valuesInfo.sigma, 3), + }), + m.React.createElement(m.Controls.RowText, { + label: 'Mean', + value: r(t.valuesInfo.mean, 3), + }), + m.React.createElement(m.Controls.RowText, { + label: 'Value Range', + value: + '[' + + r(t.valuesInfo.min, 3) + + ', ' + + r(t.valuesInfo.max, 3) + + ']', + }), + )) + : m.React.createElement( + 'div', + null, + m.React.createElement(m.Controls.OptionsGroup, { + options: vp.Core.Formats.Density.SupportedFormats.All, + caption: function (t) { + return t.name; + }, + current: n.format, + onChange: function (t) { + return e.updateParams({ format: t }); + }, + label: 'Format', + }), + ); + }), + (e.ParseData = n), + (r = o.ControllerBase), + M(i, r), + (i.prototype.surface = function () { + var e = this, + n = vp.Bootstrap.Tree.Node.findClosestNodeOfType( + this.transformSourceEntity, + [vp.Bootstrap.Entity.Density.Data], + ), + r = this.params.style.params, + t = + r.isoValueType !== + vp.Bootstrap.Visualization.Density.IsoValueType.Absolute, + i = n.props.data.valuesInfo, + o = t ? (i.min - i.mean) / i.sigma : i.min, + i = t ? (i.max - i.mean) / i.sigma : i.max; + return m.React.createElement(a, { + view: this, + onChangeValue: function (t) { + return e.controller.updateStyleParams({ isoValue: t }); + }, + onChangeType: function (t) { + t !== r.isoValueType && + (t === vp.Bootstrap.Visualization.Density.IsoValueType.Absolute + ? e.controller.updateStyleParams({ + isoValue: l(n.props.data, r.isoValue), + isoValueType: t, + }) + : e.controller.updateStyleParams({ + isoValue: s(n.props.data, r.isoValue, -5, 5), + isoValueType: t, + })); + }, + min: o, + max: i, + isSigma: t, + value: r.isoValue, + }); + }), + (i.prototype.colors = function () { + var e = this, + t = this.params.style.params, + n = this.params.style.theme, + r = n.colors.get('Uniform'), + r = m.React.createElement(m.Controls.ToggleColorPicker, { + key: 'Uniform', + label: 'Color', + color: r, + onChange: function (t) { + return e.controller.updateThemeColor('Uniform', t); + }, + }), + i = [], + n = + (i.push( + m.React.createElement(o.TransparencyControl, { + definition: n.transparency, + onChange: function (t) { + return e.controller.updateThemeTransparency(t); + }, + }), + ), + i.push( + m.React.createElement(m.Controls.Toggle, { + onChange: function (t) { + return e.controller.updateStyleParams({ isWireframe: t }); + }, + value: t.isWireframe, + label: 'Wireframe', + }), + ), + this.getPersistentState('showThemeOptions', !1)); + return m.React.createElement(m.Controls.ExpandableGroup, { + select: r, + expander: m.React.createElement(m.Controls.ControlGroupExpander, { + isExpanded: n, + onChange: function (t) { + return e.setPersistentState('showThemeOptions', t); + }, + }), + options: i, + isExpanded: n, + }); + }), + (i.prototype.renderControls = function () { + return m.React.createElement('div', null, this.surface(), this.colors()); + }); + var r; + function i() { + return (null !== r && r.apply(this, arguments)) || this; + } + (e.CreateVisual = i), + (u = o.ControllerBase), + M(c, u), + (c.prototype.surface = function () { + var e = this, + n = vp.Bootstrap.Tree.Node.findClosestNodeOfType( + this.transformSourceEntity, + [vp.Bootstrap.Entity.Density.Data], + ), + r = this.params, + i = r.style.params, + t = + i.isoValueType !== + vp.Bootstrap.Visualization.Density.IsoValueType.Absolute; + return m.React.createElement(a, { + view: this, + onChangeValue: function (t) { + return e.controller.updateStyleParams({ isoValue: t }); + }, + onChangeType: function (t) { + t !== i.isoValueType && + (t === vp.Bootstrap.Visualization.Density.IsoValueType.Absolute + ? e.controller.updateStyleParams({ + isoValue: l(n.props.data, i.isoValue), + isoValueType: t, + }) + : e.controller.updateStyleParams({ + isoValue: s( + n.props.data, + i.isoValue, + r.isoSigmaMin, + r.isoSigmaMax, + ), + isoValueType: t, + })); + }, + min: t ? r.isoSigmaMin : n.props.data.valuesInfo.min, + max: t ? r.isoSigmaMax : n.props.data.valuesInfo.max, + isSigma: t, + value: i.isoValue, + }); + }), + (c.prototype.colors = function () { + var e = this, + t = this.params.style.params, + n = this.params.style.theme, + r = n.colors.get('Uniform'), + r = m.React.createElement(m.Controls.ToggleColorPicker, { + key: 'Uniform', + label: 'Color', + color: r, + onChange: function (t) { + return e.controller.updateThemeColor('Uniform', t); + }, + }), + i = [], + n = + (i.push( + m.React.createElement(o.TransparencyControl, { + definition: n.transparency, + onChange: function (t) { + return e.controller.updateThemeTransparency(t); + }, + }), + ), + i.push( + m.React.createElement(m.Controls.Toggle, { + onChange: function (t) { + return e.controller.updateStyleParams({ isWireframe: t }); + }, + value: t.isWireframe, + label: 'Wireframe', + }), + ), + this.getPersistentState('showThemeOptions', !1)); + return m.React.createElement(m.Controls.ExpandableGroup, { + select: r, + expander: m.React.createElement(m.Controls.ControlGroupExpander, { + isExpanded: n, + onChange: function (t) { + return e.setPersistentState('showThemeOptions', t); + }, + }), + options: i, + isExpanded: n, + }); + }), + (c.prototype.show = function () { + var e = this, + t = 'Around Selection', + n = 'Everything', + r = this.params; + return m.React.createElement(m.Controls.OptionsGroup, { + options: [t, n], + caption: function (t) { + return t; + }, + current: r.showFull ? n : t, + onChange: function (t) { + return e.autoUpdateParams({ showFull: t === n }); + }, + label: 'Show', + }); + }), + (c.prototype.renderControls = function () { + var e = this, + t = this.params; + return m.React.createElement( + 'div', + null, + this.surface(), + this.colors(), + this.show(), + t.showFull + ? void 0 + : m.React.createElement(m.Controls.Slider, { + label: 'Radius', + onChange: function (t) { + return e.autoUpdateParams({ radius: t }); + }, + min: void 0 !== t.minRadius ? t.minRadius : 0, + max: void 0 !== t.maxRadius ? t.maxRadius : 10, + step: 0.005, + value: t.radius, + }), + ); + }); + var u; + function c() { + return (null !== u && u.apply(this, arguments)) || this; + } + e.CreateVisualBehaviour = c; + })((r = m.Views || (m.Views = {})).Transform || (r.Transform = {})), + (e = F = F || {}), + (( + (e = + (e = (bp = e.Plugin || (e.Plugin = {})).Views || (bp.Views = {})).Transform || + (e.Transform = {})).Labels || (e.Labels = {}) + ).optionsControls = function (n) { + var t = n.latestState.params.style, + e = t.theme.colors + .map(function (t, e) { + return bp.React.createElement(bp.Controls.ToggleColorPicker, { + key: e, + label: 'Uniform' === e ? 'Font' : e, + color: t, + onChange: function (t) { + return n.updateThemeColor(e, t); + }, + }); + }) + .toArray(); + return [ + bp.React.createElement(bp.Controls.Slider, { + label: 'Size', + onChange: function (t) { + return n.updateThemeVariable('sizeFactor', t); + }, + min: 0.1, + max: 10, + step: 0.1, + value: (t.theme.variables && t.theme.variables.get('sizeFactor')) || 1, + title: 'Font size.', + }), + bp.React.createElement(bp.Controls.Slider, { + label: 'Outline', + onChange: function (t) { + return n.updateThemeVariable('outlineWidth', t); + }, + min: 0, + max: 0.3, + step: 0.001, + value: (t.theme.variables && t.theme.variables.get('outlineWidth')) || 0, + title: 'Font outline.', + }), + bp.React.createElement(bp.Controls.Slider, { + label: 'Offset', + onChange: function (t) { + return n.updateThemeVariable('zOffset', t); + }, + min: 0, + max: 5, + step: 0.1, + value: (t.theme.variables && t.theme.variables.get('zOffset')) || 0, + title: 'Label offset.', + }), + bp.React.createElement(bp.Controls.Slider, { + label: 'Bg. Opacity', + onChange: function (t) { + return n.updateThemeVariable('backgroundOpacity', t); + }, + min: 0, + max: 1, + step: 0.01, + value: + (t.theme.variables && t.theme.variables.get('backgroundOpacity')) || 0, + title: 'Background opacity.', + }), + ].concat(e); + }), + (yp = F = F || {}), + (function (t) { + var e, n, i; + function r() { + var t = (null !== n && n.apply(this, arguments)) || this; + return (t.wrapper = void 0), t; + } + (e = t.Context || (t.Context = {})), + (i = yp.Bootstrap.Service.Logger.EntryType), + (n = t.View), + M(r, n), + (r.prototype.componentWillMount = function () { + var t = this; + n.prototype.componentWillMount.call(this), + this.subscribe( + yp.Bootstrap.Event.Common.LayoutChanged.getStream( + this.controller.context, + ), + function () { + return t.scrollToBottom(); + }, + ); + }), + (r.prototype.componentDidUpdate = function () { + this.scrollToBottom(); + }), + (r.prototype.scrollToBottom = function () { + var t = this.wrapper; + t && (t.scrollTop = t.scrollHeight - t.clientHeight - 1); + }), + (r.prototype.render = function () { + var e = this, + t = this.controller.latestState.entries; + return wp.React.createElement( + 'div', + { className: 'lm-log-wrap' }, + wp.React.createElement( + 'div', + { + className: 'lm-log', + ref: function (t) { + return (e.wrapper = t); + }, + }, + wp.React.createElement( + 'ul', + { className: 'lm-list-unstyled' }, + t.map(function (t, e, n) { + var r = yp.Bootstrap.Utils.formatTime(t.timestamp); + return wp.React.createElement( + 'li', + { key: e }, + wp.React.createElement('div', { + className: + 'lm-log-entry-badge lm-log-entry-' + i[t.type].toLowerCase(), + }), + wp.React.createElement( + 'div', + { className: 'lm-log-timestamp' }, + r, + ), + wp.React.createElement( + 'div', + { className: 'lm-log-entry' }, + t.message, + ), + ); + }), + ), + ), + ); + }), + (e.Log = r); + })((wp = yp.Plugin || (yp.Plugin = {})).Views || (wp.Views = {})), + (t = F = F || {}), + (function (t) { + var e = t.Context || (t.Context = {}); + (n = Ep.React.Component), + M(o, n), + (o.prototype.render = function () { + var t = this.props.info; + return Ep.React.createElement( + 'div', + { className: 'lm-task-state' }, + Ep.React.createElement( + 'div', + null, + t.abort + ? Ep.React.createElement(Ep.Controls.Button, { + onClick: function () { + return t.abort.call(null); + }, + style: 'remove', + icon: 'abort', + title: 'Abort', + customClass: 'lm-btn-icon', + }) + : void 0, + Ep.React.createElement('div', null, t.name, ': ', t.message), + ), + ); + }); + var n, + r, + i = o; + function o() { + return (null !== n && n.apply(this, arguments)) || this; + } + function a() { + return (null !== r && r.apply(this, arguments)) || this; + } + (r = t.View), + M(a, r), + (a.prototype.render = function () { + var t = this.controller.latestState; + if (!t.tasks.count()) + return Ep.React.createElement('div', { className: 'lm-empty-control' }); + var n = []; + return ( + t.tasks.forEach(function (t, e) { + return n.push(Ep.React.createElement(i, { key: e, info: t })); + }), + Ep.React.createElement( + 'div', + { className: 'lm-overlay' }, + Ep.React.createElement('div', { className: 'lm-overlay-background' }), + Ep.React.createElement( + 'div', + { className: 'lm-overlay-content-wrap' }, + Ep.React.createElement( + 'div', + { className: 'lm-overlay-content' }, + Ep.React.createElement('div', null, n), + ), + ), + ) + ); + }), + (e.Overlay = a), + (s = t.View), + M(l, s), + (l.prototype.render = function () { + var t = this.controller.latestState; + if (!t.tasks.count()) + return Ep.React.createElement('div', { className: 'lm-empty-control' }); + var n = []; + return ( + t.tasks.forEach(function (t, e) { + return n.push( + Ep.React.createElement(i, { key: e, info: t, isSmall: !0 }), + ); + }), + Ep.React.createElement('div', { className: 'lm-background-tasks' }, n) + ); + }); + var s; + function l() { + return (null !== s && s.apply(this, arguments)) || this; + } + e.BackgroundTasks = l; + })((Ep = t.Plugin || (t.Plugin = {})).Views || (Ep.Views = {})), + (n = F = F || {}), + (function (t) { + var e, n, r, i; + function o() { + return (null !== n && n.apply(this, arguments)) || this; + } + function a() { + return (null !== i && i.apply(this, arguments)) || this; + } + (e = t.Context || (t.Context = {})), + (n = Bp.React.Component), + M(o, n), + (o.prototype.hide = function () { + (this.props.entry.hide || function () {}).call(null); + }), + (o.prototype.render = function () { + var t = this, + e = this.props.entry, + n = + 'string' == typeof e.message + ? Bp.React.createElement('div', { + dangerouslySetInnerHTML: { __html: e.message }, + }) + : Bp.React.createElement('div', null, e.message); + return Bp.React.createElement( + 'div', + { className: 'lm-toast-entry' }, + Bp.React.createElement( + 'div', + { + className: 'lm-toast-title', + onClick: function () { + return t.hide(); + }, + }, + e.title, + ), + Bp.React.createElement('div', { className: 'lm-toast-message' }, n), + Bp.React.createElement('div', { className: 'lm-toast-clear' }), + Bp.React.createElement( + 'div', + { className: 'lm-toast-hide' }, + Bp.React.createElement(Bp.Controls.Button, { + onClick: function () { + return t.hide(); + }, + style: 'link', + icon: 'abort', + title: 'Hide', + customClass: 'lm-btn-icon', + }), + ), + ); + }), + (r = o), + (i = t.View), + M(a, i), + (a.prototype.render = function () { + var t = this.controller.latestState; + if (!t.entries.count()) + return Bp.React.createElement('div', { className: 'lm-empty-control' }); + var n = [], + t = + (t.entries.forEach(function (t, e) { + return n.push(t); + }), + n.sort(function (t, e) { + return t.serialNumber - e.serialNumber; + }), + n.map(function (t) { + return Bp.React.createElement(r, { key: t.serialNumber, entry: t }); + })); + return Bp.React.createElement( + 'div', + { className: 'lm-toast-container' }, + Bp.React.createElement('div', null, t), + ); + }), + (e.Toast = a); + })((Bp = n.Plugin || (n.Plugin = {})).Views || (Bp.Views = {})), + (Cp = F = F || {}), + (function (t) { + var a = t.Entity || (t.Entity = {}); + (a.VisibilityControl = function (t) { + var e, + n = t.entity, + t = n.state.visibility, + t = + 0 === t + ? ((e = 'full'), 'Hide') + : ((e = 2 === t ? 'none' : 'partial'), 'Show'); + return v.React.createElement(v.Controls.Button, { + title: t, + onClick: function () { + Cp.Bootstrap.Command.Entity.SetVisibility.dispatch(n.tree.context, { + entity: n, + visible: 0 !== n.state.visibility, + }); + }, + icon: 'visual-visibility', + style: 'link', + customClass: + 'lm-entity-tree-entry-toggle-visible lm-entity-tree-entry-toggle-visible-' + + e, + }); + }), + (e = t.ObserverView), + M(c, e), + (c.prototype.ensureVisible = function () { + this.ctx.currentEntity === this.props.node && + this.root && + this.props.tree.scrollIntoView(this.root); + }), + (c.prototype.componentDidMount = function () { + this.ensureVisible(); + }), + (c.prototype.componentDidUpdate = function () { + this.ensureVisible(); + }), + Object.defineProperty(c.prototype, 'node', { + get: function () { + return this.props.node; + }, + enumerable: !0, + configurable: !0, + }), + (c.prototype.shouldComponentUpdate = function (t, e, n) { + return this.node.version !== this.renderedVersion; + }), + (c.prototype.componentWillMount = function () { + var e = this, + n = ((this.ctx = this.props.node.tree.context), this.node); + this.subscribe( + Cp.Bootstrap.Event.Tree.NodeUpdated.getStream(this.ctx), + function (t) { + t.data === n && + (n.version !== e.renderedVersion && e.forceUpdate(), + e.ctx.currentEntity === n && + e.isFullyBound() && + setTimeout( + Cp.Bootstrap.Command.Entity.SetCurrent.dispatch( + e.ctx, + n.children[0], + ), + 0, + )); + }, + ); + }), + (c.prototype.highlight = function (t) { + var e = this.node; + Cp.Bootstrap.Command.Entity.Highlight.dispatch(this.ctx, { + entities: this.ctx.select( + Cp.Bootstrap.Tree.Selection.byValue(e).subtree(), + ), + isOn: t, + }); + }), + (c.prototype.row = function (t) { + var e = this, + n = this.props.node, + r = n.props, + i = n.parent === n, + o = r.label; + return ( + r.description && (o += ' (' + r.description + ')'), + v.React.createElement( + 'div', + { + className: + 'lm-entity-tree-entry-body' + + (this.ctx.currentEntity === n + ? ' lm-entity-tree-entry-current' + : '') + + (this.isOnCurrentPath() + ? ' lm-entity-tree-entry-current-path' + : ''), + ref: function (t) { + return (e.root = t); + }, + }, + v.React.createElement(a.Badge, { type: n.type.info }), + v.React.createElement( + 'div', + { className: 'lm-entity-tree-entry-label-wrap' }, + v.React.createElement( + v.Controls.Button, + { + onClick: function () { + return Cp.Bootstrap.Command.Entity.SetCurrent.dispatch( + e.ctx, + n, + ); + }, + customClass: 'lm-entity-tree-entry-label', + style: 'link', + title: o, + }, + v.React.createElement( + 'span', + null, + r.label, + v.React.createElement( + 'span', + { className: 'lm-entity-tree-entry-label-tag' }, + r.description ? ' ' + r.description : void 0, + ), + ), + ), + ), + !i || t + ? v.React.createElement(v.Controls.Button, { + title: 'Remove', + onClick: function () { + return Cp.Bootstrap.Command.Tree.RemoveNode.dispatch( + n.tree.context, + n, + ); + }, + icon: 'remove', + style: 'link', + customClass: 'lm-entity-tree-entry-remove', + }) + : void 0, + i && !t + ? void 0 + : v.React.createElement(a.VisibilityControl, { entity: n }), + ) + ); + }), + (c.prototype.renderFlat = function () { + for (var t = this.node, e = [], n = 0, r = t.children; n < r.length; n++) { + var i = r[n]; + e.push( + v.React.createElement(c, { key: i.id, node: i, tree: this.props.tree }), + ); + } + return v.React.createElement('div', { key: t.id }, e); + }), + (c.prototype.isFullyBound = function () { + for (var t = !0, e = 0, n = this.node.children; e < n.length; e++) + if (!n[e].transform.props.isBinding) { + t = !1; + break; + } + return t && 1 === this.node.children.length; + }), + (c.prototype.isOnCurrentPath = function () { + if (this.ctx.currentEntity) + for ( + var t = this.ctx.currentEntity.parent, e = this.node; + t.parent !== t; + + ) { + if (t === e) return !0; + t = t.parent; + } + return !1; + }), + (c.prototype.render = function () { + var t = this, + e = this.node, + n = ((this.renderedVersion = e.version), e.parent === e); + if (this.isFullyBound()) return this.renderFlat(); + for ( + var r = e.state, i = 0, o = [], a = 0, s = e.children; + a < s.length; + a++ + ) { + var l = s[a]; + l.isHidden || + (n || + o.push( + v.React.createElement(c, { + key: l.id, + node: l, + tree: this.props.tree, + }), + ), + i++); + } + o.length + ? (u = r.isCollapsed + ? v.React.createElement(v.Controls.Button, { + style: 'link', + title: 'Expand', + onClick: function () { + return Cp.Bootstrap.Command.Entity.ToggleExpanded.dispatch( + t.ctx, + e, + ); + }, + icon: 'expand', + customClass: 'lm-entity-tree-entry-toggle-group', + }) + : v.React.createElement(v.Controls.Button, { + style: 'link', + title: 'Collapse', + onClick: function () { + return Cp.Bootstrap.Command.Entity.ToggleExpanded.dispatch( + t.ctx, + e, + ); + }, + icon: 'collapse', + customClass: 'lm-entity-tree-entry-toggle-group', + })) + : 0 === e.state.visibility && + e.type.info.traits.isFocusable && + (u = v.React.createElement(v.Controls.Button, { + style: 'link', + icon: 'focus-on-visual', + title: 'Focus', + onClick: function () { + return Cp.Bootstrap.Command.Entity.Focus.dispatch( + t.ctx, + t.ctx.select(e), + ); + }, + customClass: 'lm-entity-tree-entry-toggle-group', + })); + var u = v.React.createElement( + 'div', + { + className: 'lm-entity-tree-entry', + onMouseEnter: function () { + return t.highlight(!0); + }, + onMouseLeave: function () { + return t.highlight(!1); + }, + onTouchStart: function () { + return setTimeout(function () { + return t.highlight(!0); + }, 1e3 / 30); + }, + onTouchCancel: function () { + return setTimeout(function () { + return t.highlight(!1); + }, 1e3 / 30); + }, + onTouchEnd: function () { + return setTimeout(function () { + return t.highlight(!1); + }, 1e3 / 30); + }, + }, + u, + this.row(i), + ); + return v.React.createElement( + 'div', + { key: e.id, className: n ? 'lm-entity-tree-root' : '' }, + u, + v.React.createElement( + 'div', + { + className: 'lm-entity-tree-children-wrap', + style: { display: r.isCollapsed ? 'none' : 'block' }, + }, + o, + ), + ); + }); + var e, + n, + s = c; + function c() { + var t = (null !== e && e.apply(this, arguments)) || this; + return (t.renderedVersion = -1), (t.root = void 0), t; + } + function r() { + var t = (null !== n && n.apply(this, arguments)) || this; + return ( + (t.renderedVersion = -1), + (t.root = void 0), + (t.splash = a.SplashInfo.Info()), + t + ); + } + (n = t.View), + M(r, n), + (r.prototype.scrollIntoView = function (t) { + var e = this.root; + if (e && t) + try { + var n, + r = e.getBoundingClientRect(), + i = t.getBoundingClientRect(), + o = e.scrollTop; + i.top < r.top + ? ((n = r.top - i.top), (e.scrollTop = o - n)) + : i.bottom > r.bottom && + ((n = i.bottom - r.bottom), (e.scrollTop = o + n)); + } catch (t) {} + }), + (r.prototype.componentWillMount = function () { + var e = this, + n = this.controller.context.tree.root, + t = n.tree.context; + this.subscribe( + Cp.Bootstrap.Event.Tree.NodeUpdated.getStream(t), + function (t) { + t.data === n && n.version !== e.renderedVersion && e.forceUpdate(); + }, + ); + }), + (r.prototype.render = function () { + for ( + var e = this, + t = this.controller.context.tree.root, + n = ((this.renderedVersion = t.version), []), + r = 0, + i = t.children; + r < i.length; + r++ + ) { + var o = i[r]; + o.isHidden || + n.push(v.React.createElement(s, { key: o.id, node: o, tree: this })); + } + return v.React.createElement( + 'div', + { + className: 'lm-entity-tree', + ref: function (t) { + return (e.root = t); + }, + }, + v.React.createElement(s, { key: t.id, node: t, tree: this }), + v.React.createElement( + 'div', + { className: 'lm-entity-tree-children' }, + n.length ? n : this.splash, + ), + ); + }), + (a.Tree = r); + })((v = Cp.Plugin || (Cp.Plugin = {})).Views || (v.Views = {})), + (xp = F = F || {}), + (function (t) { + var n = t.Entity || (t.Entity = {}); + (n.Remove = function (t) { + return b.React.createElement(b.Controls.Button, { + onClick: function () { + xp.Bootstrap.Command.Tree.RemoveNode.dispatch( + t.entity.tree.context, + t.entity, + ), + t.onRemove.call(null); + }, + style: 'link', + icon: 'remove', + customClass: 'lm-remove-entity lm-btn-icon', + }); + }), + (e = b.React.Component), + M(o, e), + (o.prototype.shouldComponentUpdate = function (t, e, n) { + return this.props.type !== t.type; + }), + (o.prototype.createBadge = function (t) { + if (t.length) { + for (var e = 0; e < t.length; e++) { + if ('_' === t[e]) + return b.React.createElement( + 'span', + null, + t.substr(0, e), + b.React.createElement( + 'sub', + null, + this.createBadge(t.substr(e + 1)), + ), + ); + if ('^' === t[e]) + return b.React.createElement( + 'span', + null, + t.substr(0, e), + b.React.createElement( + 'sup', + null, + this.createBadge(t.substr(e + 1)), + ), + ); + } + return t; + } + }), + (o.prototype.render = function () { + var t = this.props.type; + return b.React.createElement( + 'div', + { + className: + 'lm-entity-badge lm-entity-badge-' + this.props.type.typeClass, + title: t.name, + }, + b.React.createElement( + 'div', + null, + t === xp.Bootstrap.Entity.Root.info + ? void 0 + : this.createBadge(t.shortName), + ), + ); + }); + var e, + r, + i = o; + function o() { + return (null !== e && e.apply(this, arguments)) || this; + } + function a() { + var t = (null !== r && r.apply(this, arguments)) || this; + return (t.state = { current: void 0 }), t; + } + (n.Badge = i), + (r = t.View), + M(a, r), + (a.prototype.componentWillMount = function () { + var e = this; + r.prototype.componentWillMount.call(this), + (this.state.current = this.controller.context.currentEntity), + this.subscribe( + xp.Bootstrap.Event.Entity.CurrentChanged.getStream( + this.controller.context, + ), + function (t) { + e.setState({ current: t.data }); + }, + ); + }), + (a.prototype.render = function () { + var t = this; + if (!this.state.current) + return b.React.createElement( + 'div', + { className: 'lm-entity-info' }, + b.React.createElement( + 'div', + null, + b.React.createElement('span', null, this.controller.appName), + ), + ); + var e = this.state.current; + return b.React.createElement( + 'div', + { + className: 'lm-entity-info', + title: e.props.label + ' ' + (e.props.description || ''), + }, + b.React.createElement( + 'div', + null, + b.React.createElement(i, { type: e.type.info }), + b.React.createElement( + 'span', + null, + e.props.label, + b.React.createElement('span', null, e.props.description), + ), + e.parent !== e || e.children.length + ? b.React.createElement(n.Remove, { + entity: e, + onRemove: function () { + return t.forceUpdate(); + }, + }) + : void 0, + ), + ); + }), + (n.CurrentEntityControl = a); + var s = n.SplashInfo || (n.SplashInfo = {}); + (s.General = function () { + return b.React.createElement( + 'div', + { className: 'lm-entity-splash-general' }, + b.React.createElement('div', null), + b.React.createElement('span', { className: 'lm-icon lm-icon-info' }), + 'The application operates on an entity tree structure that can be manipulated using the controls on the panel to the right.', + ); + }), + (l = b.React.Component), + M(c, l), + (c.prototype.render = function () { + var t = this; + return b.React.createElement( + 'div', + { + className: + 'lm-entity-splash-class lm-entity-splash-class-' + + (this.state.isExpanded ? 'expanded' : 'collapsed'), + }, + b.React.createElement( + 'div', + { + onClick: function () { + return t.setState({ isExpanded: !t.state.isExpanded }); + }, + }, + b.React.createElement('div', null), + b.React.createElement('div', { + className: 'lm-entity-badge-' + this.props.cls, + }), + ' ', + b.React.createElement('span', null, this.props.cls), + ), + b.React.createElement('div', null, this.props.desc), + ); + }); + var l, + u = c; + function c() { + var t = (null !== l && l.apply(this, arguments)) || this; + return (t.state = { isExpanded: !1 }), t; + } + s.Info = function () { + return b.React.createElement( + 'div', + { className: 'lm-entity-splash' }, + b.React.createElement(s.General, null), + b.React.createElement(u, { + cls: 'Root', + desc: 'The root entity represents the starting point of all actions.', + }), + b.React.createElement(u, { + cls: 'Action', + desc: 'Represents a composition of one of more changes to the entity tree.', + }), + b.React.createElement(u, { + cls: 'Data', + desc: 'Low level data, for example a string or a CIF dictionary.', + }), + b.React.createElement(u, { + cls: 'Object', + desc: 'A more complex structure obtained from low level data. For example a molecule.', + }), + b.React.createElement(u, { + cls: 'Visual', + desc: 'A visual representation of an object.', + }), + b.React.createElement(u, { + cls: 'Selection', + desc: 'A description of a substructure of an object or a visual.', + }), + b.React.createElement(u, { + cls: 'Behaviour', + desc: 'Represents a dynamic behavior of the program. For example creating electron density surface when the selection changes.', + }), + b.React.createElement(u, { + cls: 'Group', + desc: 'A collection of related entities.', + }), + ); + }; + })((b = xp.Plugin || (xp.Plugin = {})).Views || (b.Views = {})), + (Ip = F = F || {}), + (function (t) { + var n = t.Visualization || (t.Visualization = {}); + (e = t.View), + M(o, e), + (o.prototype.help = function () { + return y.React.createElement( + 'div', + { className: 'lm-viewport-controls-scene-options lm-control' }, + y.React.createElement(y.Controls.HelpBox, { + title: 'Rotate', + content: y.React.createElement( + 'div', + null, + y.React.createElement('div', null, 'Left button'), + y.React.createElement('div', null, 'One finger touch'), + ), + }), + y.React.createElement(y.Controls.HelpBox, { + title: 'Zoom', + content: y.React.createElement( + 'div', + null, + y.React.createElement('div', null, 'Right button'), + y.React.createElement('div', null, 'Pinch'), + ), + }), + y.React.createElement(y.Controls.HelpBox, { + title: 'Move', + content: y.React.createElement( + 'div', + null, + y.React.createElement('div', null, 'Middle button'), + y.React.createElement('div', null, 'Two finger touch'), + ), + }), + y.React.createElement(y.Controls.HelpBox, { + title: 'Slab', + content: y.React.createElement( + 'div', + null, + y.React.createElement('div', null, 'Mouse wheel'), + y.React.createElement('div', null, 'Three finger touch'), + ), + }), + ); + }), + (o.prototype.render = function () { + var t, + e = this, + n = this.controller.latestState, + r = this.controller.context.layout, + i = r.latestState, + o = + (this.state.showSceneOptions + ? (t = y.React.createElement( + 'div', + { className: 'lm-viewport-controls-scene-options lm-control' }, + y.React.createElement(y.Controls.Toggle, { + onChange: function (t) { + return e.controller.setState({ enableFog: t }); + }, + value: n.enableFog, + label: 'Fog', + }), + y.React.createElement(y.Controls.Slider, { + label: 'Fog Factor', + min: 0.1, + max: 1, + step: 0.01, + onChange: function (t) { + return e.controller.setState({ fogFactor: t }); + }, + value: n.fogFactor, + }), + y.React.createElement(y.Controls.Slider, { + label: 'FOV', + min: 30, + max: 90, + onChange: function (t) { + return e.controller.setState({ cameraFOV: t }); + }, + value: n.cameraFOV, + }), + y.React.createElement(y.Controls.Slider, { + label: 'Camera Speed', + min: 1, + max: 10, + step: 0.01, + onChange: function (t) { + return e.controller.setState({ cameraSpeed: t }); + }, + value: n.cameraSpeed, + }), + y.React.createElement(y.Controls.ToggleColorPicker, { + color: n.clearColor, + label: 'Background', + position: 'below', + onChange: function (t) { + return e.controller.setState({ clearColor: t }); + }, + }), + )) + : this.state.showHelp && (t = this.help()), + !i.hideControls); + return y.React.createElement( + 'div', + { + className: 'lm-viewport-controls', + onMouseLeave: function () { + return e.setState({ showSceneOptions: !1, showHelp: !1 }); + }, + }, + y.React.createElement( + 'div', + { className: 'lm-viewport-controls-buttons' }, + y.React.createElement(y.Controls.Button, { + style: 'link', + active: this.state.showHelp, + customClass: + 'lm-btn-link-toggle-' + (this.state.showHelp ? 'on' : 'off'), + icon: 'help-circle', + onClick: function (t) { + return e.setState({ + showHelp: !e.state.showHelp, + showSceneOptions: !1, + }); + }, + title: 'Controls Help', + }), + y.React.createElement(y.Controls.Button, { + style: 'link', + active: this.state.showSceneOptions, + customClass: + 'lm-btn-link-toggle-' + + (this.state.showSceneOptions ? 'on' : 'off'), + icon: 'settings', + onClick: function (t) { + return e.setState({ + showSceneOptions: !e.state.showSceneOptions, + showHelp: !1, + }); + }, + title: 'Scene Options', + }), + y.React.createElement(y.Controls.Button, { + style: 'link', + icon: 'screenshot', + onClick: function (t) { + return e.controller.scene.scene.downloadScreenshot(); + }, + title: 'Screenshot', + }), + y.React.createElement(y.Controls.Button, { + onClick: function () { + r.update({ hideControls: o }), e.forceUpdate(); + }, + icon: 'tools', + title: o ? 'Hide Controls' : 'Show Controls', + active: o, + customClass: 'lm-btn-link-toggle-' + (o ? 'on' : 'off'), + style: 'link', + }), + y.React.createElement(y.Controls.Button, { + onClick: function () { + return r.update({ isExpanded: !i.isExpanded }); + }, + icon: 'expand-layout', + title: i.isExpanded ? 'Collapse' : 'Expand', + active: i.isExpanded, + customClass: 'lm-btn-link-toggle-' + (i.isExpanded ? 'on' : 'off'), + style: 'link', + }), + y.React.createElement(y.Controls.Button, { + style: 'link', + icon: 'reset-scene', + onClick: function (t) { + return Ip.Bootstrap.Command.Visual.ResetScene.dispatch( + e.controller.context, + void 0, + ); + }, + title: 'Reset scene', + }), + ), + t, + ); + }); + var e, + r, + i = o; + function o() { + var t = (null !== e && e.apply(this, arguments)) || this; + return (t.state = { showSceneOptions: !1, showHelp: !1 }), t; + } + function a() { + return (null !== r && r.apply(this, arguments)) || this; + } + (n.ViewportControls = i), + (r = t.View), + M(a, r), + (a.prototype.render = function () { + var t = this.controller.latestState.info; + if (!t.length) + return y.React.createElement('div', { className: 'lm-empty-control' }); + t = { __html: t.join(', ') }; + return y.React.createElement( + 'div', + { className: 'lm-highlight-info' }, + y.React.createElement('div', { dangerouslySetInnerHTML: t }), + ); + }), + (n.HighlightInfo = a), + (n.Logo = function () { + return y.React.createElement( + 'div', + { className: 'lm-logo' }, + y.React.createElement( + 'div', + null, + y.React.createElement( + 'div', + null, + y.React.createElement('div', null), + y.React.createElement('div', { className: 'lm-logo-image' }), + ), + ), + ); + }), + (s = t.View), + M(l, s), + (l.prototype.componentDidMount = function () { + (this.host3d && this.controller.init(this.host3d)) || + this.setState({ noWebGl: !0 }), + this.handleLogo(); + }), + (l.prototype.componentWillUnmount = function () { + s.prototype.componentWillUnmount.call(this), this.controller.destroy(); + }), + (l.prototype.renderMissing = function () { + return y.React.createElement( + 'div', + { className: 'lm-no-webgl' }, + y.React.createElement( + 'div', + null, + y.React.createElement( + 'p', + null, + y.React.createElement( + 'b', + null, + 'WebGL does not seem to be available.', + ), + ), + y.React.createElement( + 'p', + null, + 'This can be caused by an outdated browser, graphics card driver issue, or bad weather. Sometimes, just restarting the browser helps.', + ), + y.React.createElement( + 'p', + null, + 'For a list of supported browsers, refer to ', + y.React.createElement( + 'a', + { href: 'http://caniuse.com/#feat=webgl', target: '_blank' }, + 'http://caniuse.com/#feat=webgl', + ), + '.', + ), + ), + ); + }), + (l.prototype.handleLogo = function () { + var e = this; + this.subscribe( + Ip.Bootstrap.Event.Tree.NodeAdded.getStream(this.controller.context), + function (t) { + Ip.Bootstrap.Entity.isClass(t.data, Ip.Bootstrap.Entity.VisualClass) && + setTimeout(function () { + return e.setState({ showLogo: e.getShowLogo() }); + }, 0); + }, + ), + this.subscribe( + Ip.Bootstrap.Event.Tree.NodeRemoved.getStream(this.controller.context), + function (t) { + Ip.Bootstrap.Entity.isClass( + t.data, + Ip.Bootstrap.Entity.VisualClass, + ) && + setTimeout(function () { + return e.setState({ showLogo: e.getShowLogo() }); + }, 0); + }, + ); + }), + (l.prototype.getShowLogo = function () { + try { + return this.controller.context.viewport.scene.models.isEmpty(); + } catch (t) { + return !0; + } + }), + (l.prototype.render = function () { + var e = this; + if (this.state.noWebGl) return this.renderMissing(); + var t = this.controller.latestState.clearColor || this.defaultBg; + return y.React.createElement( + 'div', + { + className: 'lm-viewport', + style: { + backgroundColor: + 'rgb(' + 255 * t.r + ', ' + 255 * t.g + ', ' + 255 * t.b + ')', + }, + }, + y.React.createElement('div', { + ref: function (t) { + return (e.host3d = t); + }, + className: 'lm-viewport-host3d', + }), + this.state.showLogo ? y.React.createElement(n.Logo, null) : void 0, + y.React.createElement(i, { controller: this.controller }), + ); + }); + var s; + function l() { + var t = (null !== s && s.apply(this, arguments)) || this; + return ( + (t.host3d = void 0), + (t.defaultBg = { r: 0, g: 0, b: 0 }), + (t.state = { noWebGl: !1, showLogo: !0 }), + t + ); + } + n.Viewport = l; + })((y = Ip.Plugin || (Ip.Plugin = {})).Views || (y.Views = {})), + (Mp = F = F || {}), + (Dp = Mp.Plugin || (Mp.Plugin = {})), + ((w = Dp.Components || (Dp.Components = {})).create = Gp), + (Sp = Mp.Bootstrap.Components.Component), + M(zp, Sp), + (kp = zp), + (w.AppInfo = kp), + ((E = w.Context || (w.Context = {})).Log = Gp( + 'Context.Log', + function (t) { + return new Mp.Bootstrap.Components.Context.Log(t); + }, + Dp.Views.Context.Log, + )), + (E.Toast = Gp( + 'Context.Toast', + function (t) { + return new Mp.Bootstrap.Components.Context.Toast(t); + }, + Dp.Views.Context.Toast, + )), + (E.Overlay = Gp( + 'Context.Overlay', + function (t) { + return new Mp.Bootstrap.Components.Context.TaskWatcher(t, 'Normal'); + }, + Dp.Views.Context.Overlay, + )), + (E.BackgroundTasks = Gp( + 'Context.BackgroundTasks', + function (t) { + return new Mp.Bootstrap.Components.Context.TaskWatcher(t, 'Background'); + }, + Dp.Views.Context.BackgroundTasks, + )), + ((w.Transform || (w.Transform = {})).View = Gp( + 'Transform.View', + function (t) { + return new Mp.Bootstrap.Components.Transform.View(t); + }, + Dp.Views.Transform.View, + )), + ((w.Entity || (w.Entity = {})).Current = function (e, n) { + return Gp( + 'EntityInfo', + function (t) { + return new kp(t, e, n); + }, + Dp.Views.Entity.CurrentEntityControl, + ); + }), + ((E = w.Visualization || (w.Visualization = {})).Viewport = Gp( + 'Viewport', + function (t) { + return new Mp.Bootstrap.Components.Visualization.Viewport(t); + }, + Dp.Views.Visualization.Viewport, + )), + (E.HighlightInfo = Gp( + 'HighlightInfo', + function (t) { + return new Mp.Bootstrap.Components.Visualization.HighlightInfo(t); + }, + Dp.Views.Visualization.HighlightInfo, + )), + (function (n) { + n.Context = Fp.Bootstrap.Context; + var o = Fp.Bootstrap.Components.LayoutRegion; + function t(t, e) { + (this.spec = t), + (this.target = e), + (this.transformersInfo = Fp.Core.Utils.FastMap.create()), + (this.context = new Fp.Bootstrap.Context(this)), + this.init(), + n.ReactDOM.render( + n.React.createElement(this.spec.layoutView, { + controller: this.context.layout, + }), + e, + ), + Fp.Bootstrap.Command.Entity.SetCurrent.dispatch( + this.context, + this.context.tree.root, + ); + } + (t.prototype.compose = function () { + for (var t = 0, e = Object.keys(this.spec.settings); t < e.length; t++) { + var n = e[t]; + Object.prototype.hasOwnProperty.call(this.spec.settings, n) && + this.context.settings.set(n, this.spec.settings[n]); + } + for (var r = 0, i = this.spec.behaviours || []; r < i.length; r++) + (0, i[r])(this.context); + for (var o = 0, a = this.spec.transforms; o < a.length; o++) { + var s = a[o]; + this.context.transforms.add(s.transformer), + this.transformersInfo.set(s.transformer.info.id, s); + } + }), + (t.prototype.prepareTargets = function () { + for ( + var t = Fp.Bootstrap.Components.makeEmptyTargets(), + e = Fp.Core.Utils.FastMap.create(), + n = 0, + r = this.spec.components; + n < r.length; + n++ + ) { + var i = (0, r[n])(this.context); + if (e.has(i.key)) + throw ( + "Component with key '" + i.key + "' was already added. Fix your spec." + ); + t[i.region].components.push(i), e.set(i.key, i); + } + return ( + this.spec.tree && + t[this.spec.tree.region].components.push({ + key: 'lm-internal-tree', + controller: new Fp.Bootstrap.Components.Component(this.context, {}), + region: this.spec.tree.region, + view: this.spec.tree.view, + isStatic: !0, + }), + t[o.Main].components.push({ + key: 'lm-internal-viewport', + controller: this.context.viewport, + region: o.Main, + view: this.spec.viewport.view, + isStatic: !0, + }), + t + ); + }), + (t.prototype.getTransformerInfo = function (t) { + return this.transformersInfo.get(t.info.id); + }), + (t.prototype.destroy = function () { + this.context.dispatcher.finished(), + n.ReactDOM.unmountComponentAtNode(this.target), + (this.context = void 0), + (this.spec = void 0), + (this.target = void 0); + }), + (t.prototype.setComponents = function (t) { + this.spec.components = t; + t = this.prepareTargets(); + this.context.layout.updateTargets(t); + }), + (t.prototype.init = function () { + this.compose(); + var t = this.prepareTargets(); + this.context.createLayout(t, this.target); + }), + (n.Instance = t); + })((Fp = F = F || {}).Plugin || (Fp.Plugin = {})), + (Qp = F = F || {}), + (x = Qp.Plugin || (Qp.Plugin = {})), + (_p = Qp.Bootstrap.Entity.Transformer), + ((Tp = x.DataSources || (x.DataSources = {})).DownloadMolecule = + _p.Molecule.downloadMoleculeSource({ + sourceId: 'url-molecule', + name: 'URL', + description: + 'Download a molecule from the specified URL (if the host server supports cross domain requests).', + defaultId: 'https://cs.litemol.org/1tqn/cartoon', + urlTemplate: function (t) { + return t; + }, + isFullUrl: !0, + })), + (Rp = Qp.Bootstrap.Components.LayoutRegion), + (x.getDefaultSpecification = function () { + return { + settings: { + 'molecule.model.defaultQuery': "residues({ name: 'ALA' })", + 'molecule.model.defaultAssemblyName': '1', + 'molecule.coordinateStreaming.defaultId': '1jj2', + 'molecule.coordinateStreaming.defaultServer': 'https://cs.litemol.org', + 'molecule.coordinateStreaming.defaultRadius': 10, + 'density.defaultVisualBehaviourRadius': 5, + }, + transforms: [ + { + transformer: _p.Molecule.CoordinateStreaming.InitStreaming, + view: x.Views.Transform.Molecule.InitCoordinateStreaming, + initiallyCollapsed: !0, + }, + { + transformer: Tp.DownloadMolecule, + view: x.Views.Transform.Data.WithUrlIdField, + initiallyCollapsed: !0, + }, + { + transformer: _p.Molecule.OpenMoleculeFromFile, + view: x.Views.Transform.Molecule.OpenFile, + initiallyCollapsed: !0, + }, + { + transformer: _p.Data.Download, + view: x.Views.Transform.Data.Download, + initiallyCollapsed: !0, + }, + { + transformer: _p.Data.OpenFile, + view: x.Views.Transform.Data.OpenFile, + initiallyCollapsed: !0, + }, + { + transformer: _p.Molecule.CreateFromData, + view: x.Views.Transform.Molecule.CreateFromData, + }, + { transformer: _p.Data.ParseCif, view: x.Views.Transform.Empty }, + { + transformer: _p.Density.ParseData, + view: x.Views.Transform.Density.ParseData, + }, + { + transformer: _p.Molecule.CreateFromMmCif, + view: x.Views.Transform.Molecule.CreateFromMmCif, + }, + { + transformer: _p.Molecule.CreateModel, + view: x.Views.Transform.Molecule.CreateModel, + initiallyCollapsed: !0, + }, + { + transformer: _p.Molecule.CreateSelection, + view: x.Views.Transform.Molecule.CreateSelection, + initiallyCollapsed: !0, + }, + { + transformer: _p.Molecule.CreateAssembly, + view: x.Views.Transform.Molecule.CreateAssembly, + initiallyCollapsed: !0, + }, + { + transformer: _p.Molecule.CreateSymmetryMates, + view: x.Views.Transform.Molecule.CreateSymmetryMates, + initiallyCollapsed: !0, + }, + { + transformer: _p.Molecule.CreateMacromoleculeVisual, + view: x.Views.Transform.Empty, + }, + { + transformer: _p.Molecule.CreateVisual, + view: x.Views.Transform.Molecule.CreateVisual, + }, + { + transformer: _p.Density.CreateVisual, + view: x.Views.Transform.Density.CreateVisual, + }, + { + transformer: _p.Density.CreateVisualBehaviour, + view: x.Views.Transform.Density.CreateVisualBehaviour, + }, + { + transformer: _p.Molecule.CoordinateStreaming.CreateBehaviour, + view: x.Views.Transform.Empty, + initiallyCollapsed: !0, + }, + ], + behaviours: [ + Qp.Bootstrap.Behaviour.SetEntityToCurrentWhenAdded, + Qp.Bootstrap.Behaviour.FocusCameraOnSelect, + Qp.Bootstrap.Behaviour.ApplySelectionToVisual, + Qp.Bootstrap.Behaviour.ApplyInteractivitySelection, + Qp.Bootstrap.Behaviour.UnselectElementOnRepeatedClick, + Qp.Bootstrap.Behaviour.Molecule.HighlightElementInfo, + Qp.Bootstrap.Behaviour.Molecule.DistanceToLastClickedElement, + Qp.Bootstrap.Behaviour.Molecule.ShowInteractionOnSelect(5), + ], + components: [ + x.Components.Visualization.HighlightInfo(Rp.Main, !0), + x.Components.Entity.Current('LiteMol', x.VERSION.number)(Rp.Right, !0), + x.Components.Transform.View(Rp.Right), + x.Components.Context.Log(Rp.Bottom, !0), + x.Components.Context.Overlay(Rp.Root), + x.Components.Context.Toast(Rp.Main, !0), + x.Components.Context.BackgroundTasks(Rp.Main, !0), + ], + viewport: { + view: x.Views.Visualization.Viewport, + controlsView: x.Views.Visualization.ViewportControls, + }, + layoutView: x.Views.Layout, + tree: { region: Rp.Left, view: x.Views.Entity.Tree }, + }; + }), + (Up = F = F || {}), + (Np = Up.Plugin || (Up.Plugin = {})), + (Pp = Up.Bootstrap.Entity), + (Lp = Pp.Transformer), + Object.defineProperty(Hp.prototype, 'instance', { + get: function () { + return this._instance; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(Hp.prototype, 'context', { + get: function () { + return this._instance.context; + }, + enumerable: !0, + configurable: !0, + }), + Object.defineProperty(Hp.prototype, 'root', { + get: function () { + return this._instance.context.tree.root; + }, + enumerable: !0, + configurable: !0, + }), + (Hp.prototype.command = function (t, e) { + t.dispatch(this.context, e); + }), + (Hp.prototype.selectEntities = function (t) { + return this.context.select(t); + }), + (Hp.prototype.subscribe = function (t, e) { + return t.getStream(this.context).subscribe(e); + }), + (Hp.prototype.createTransform = function () { + return Up.Bootstrap.Tree.Transform.build(); + }), + (Hp.prototype.applyTransform = function (t) { + var e = this.context; + return Up.Bootstrap.Tree.Transform.apply(e, t).run(); + }), + (Hp.prototype.clear = function () { + this.command(Up.Bootstrap.Command.Tree.RemoveNode, this.root); + }), + (Hp.prototype.setViewportBackground = function (t) { + Up.Visualization.Color.isColor(t) + ? this.command(Up.Bootstrap.Command.Layout.SetViewportOptions, { + clearColor: t, + }) + : this.command(Up.Bootstrap.Command.Layout.SetViewportOptions, { + clearColor: Up.Visualization.Color.fromHexString(t), + }); + }), + (Hp.prototype.setLayoutState = function (t) { + this.command(Up.Bootstrap.Command.Layout.SetState, t); + }), + (Hp.prototype.loadMolecule = function (t) { + var e = this.createTransform(); + if (!t.url && !t.data) throw new Error('Please specify either url or data'); + var n = Up.Core.Formats.Molecule.SupportedFormats.mmCIF; + if (t.format) + if (Up.Core.Formats.FormatInfo.is(t.format)) n = t.format; + else { + var r = Up.Core.Formats.FormatInfo.fromShortcut( + Up.Core.Formats.Molecule.SupportedFormats.All, + t.format, + ); + if (!r) throw new Error("'" + t.format + "' is not a supported format."); + n = r; + } + (r = t.data + ? e.add(this.root, Pp.Transformer.Data.FromData, { data: t.data, id: t.id }) + : e.add(this.root, Lp.Data.Download, { + url: t.url, + type: n.isBinary ? 'Binary' : 'String', + id: t.id, + title: 'Molecule', + })), + (e = r + .then( + Lp.Molecule.CreateFromData, + { format: n, customId: t.id }, + { isBinding: !0, ref: t.moleculeRef }, + ) + .then( + Lp.Molecule.CreateModel, + { modelIndex: 0 }, + { isBinding: !1, ref: t.modelRef }, + )); + return ( + t.doNotCreateVisual || + e.then(Lp.Molecule.CreateMacromoleculeVisual, { + polymer: !0, + het: !0, + water: !0, + }), + this.applyTransform(r) + ); + }), + (Hp.prototype.destroy = function () { + this._instance && (this._instance.destroy(), (this._instance = void 0)); + }), + (Hp.prototype.ofOptions = function (t) { + var e, + n = t.customSpecification || Np.getDefaultSpecification(); + if ( + (t.allowAnalytics && + !t.customSpecification && + n.behaviours.push( + Up.Bootstrap.Behaviour.GoogleAnalytics(t.analyticsId || 'UA-77062725-1'), + ), + !(e = + t.target instanceof HTMLElement + ? t.target + : document.querySelector(t.target))) + ) + throw new Error('options.target cannot be undefined.'); + (this._instance = new Np.Instance(n, e)), + t.viewportBackground && this.setViewportBackground(t.viewportBackground), + t.layoutState && this.setLayoutState(t.layoutState); + }), + (Hp.prototype.ofInstace = function (t) { + this._instance = t; + }), + (Yp = Hp), + (Np.Controller = Yp), + (Np.create = function (t) { + return new Yp(t); + }), + F + ); + } + 'object' == typeof Wp && 'object' == typeof Wp.exports + ? (Wp.exports = t()) + : ((window || this).LiteMol = t()); + }.call(this); + }.call( + this, + t('_process'), + 'undefined' != typeof global + ? global + : 'undefined' != typeof self + ? self + : 'undefined' != typeof window + ? window + : {}, + t('timers').setImmediate, + ); + }, + { _process: 46, timers: 68 }, + ], + 43: [ + function (t, e, n) { + (n.__esModule = !0), (n.default = t('./dist/js/LiteMol-plugin')); + }, + { './dist/js/LiteMol-plugin': 42 }, + ], + 44: [ + function (t, D, S) { + !function (M) { + !function () { + !function () { + var Oo, + Go = 'Expected a function', + va = '__lodash_hash_undefined__', + ba = '__lodash_placeholder__', + zo = 9007199254740991, + ya = NaN, + Ho = 4294967295, + wa = [ + ['ary', 128], + ['bind', 1], + ['bindKey', 2], + ['curry', 8], + ['curryRight', 16], + ['flip', 512], + ['partial', 32], + ['partialRight', 64], + ['rearg', 256], + ], + jo = '[object Arguments]', + Ea = '[object Array]', + Vo = '[object Boolean]', + qo = '[object Date]', + Ba = '[object Error]', + Ca = '[object Function]', + xa = '[object GeneratorFunction]', + Wo = '[object Map]', + Jo = '[object Number]', + Ko = '[object Object]', + Ia = '[object Promise]', + Zo = '[object RegExp]', + Xo = '[object Set]', + $o = '[object String]', + Ma = '[object Symbol]', + ta = '[object WeakMap]', + ea = '[object ArrayBuffer]', + na = '[object DataView]', + Da = '[object Float32Array]', + Sa = '[object Float64Array]', + ka = '[object Int8Array]', + Fa = '[object Int16Array]', + Qa = '[object Int32Array]', + _a = '[object Uint8Array]', + Ta = '[object Uint8ClampedArray]', + Ra = '[object Uint16Array]', + Ua = '[object Uint32Array]', + Na = /\b__p \+= '';/g, + Pa = /\b(__p \+=) '' \+/g, + La = /(__e\(.*?\)|\b__t\)) \+\n'';/g, + Ya = /&(?:amp|lt|gt|quot|#39);/g, + Oa = /[&<>"']/g, + Ga = RegExp(Ya.source), + za = RegExp(Oa.source), + Ha = /<%-([\s\S]+?)%>/g, + ja = /<%([\s\S]+?)%>/g, + Va = /<%=([\s\S]+?)%>/g, + qa = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + Wa = /^\w*$/, + Ja = + /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, + Ka = /[\\^$.*+?()[\]{}|]/g, + Za = RegExp(Ka.source), + Xa = /^\s+/, + o = /\s/, + $a = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, + ts = /\{\n\/\* \[wrapped with (.+)\] \*/, + es = /,? & /, + ns = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g, + rs = /[()=,{}\[\]\/\s]/, + is = /\\(\\)?/g, + os = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, + as = /\w*$/, + ss = /^[-+]0x[0-9a-f]+$/i, + ls = /^0b[01]+$/i, + us = /^\[object .+?Constructor\]$/, + cs = /^0o[0-7]+$/i, + As = /^(?:0|[1-9]\d*)$/, + hs = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, + ps = /($^)/, + ds = /['\n\r\u2028\u2029\\]/g, + a = '\\ud800-\\udfff', + s = '\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff', + l = '\\u2700-\\u27bf', + t = 'a-z\\xdf-\\xf6\\xf8-\\xff', + e = 'A-Z\\xc0-\\xd6\\xd8-\\xde', + u = '\\ufe0e\\ufe0f', + c = + '\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', + n = '[' + a + ']', + A = '[' + c + ']', + h = '[' + s + ']', + p = '[' + l + ']', + d = '[' + t + ']', + c = '[^' + a + c + '\\d+' + l + t + e + ']', + l = '\\ud83c[\\udffb-\\udfff]', + t = '[^' + a + ']', + f = '(?:\\ud83c[\\udde6-\\uddff]){2}', + r = '[\\ud800-\\udbff][\\udc00-\\udfff]', + e = '[' + e + ']', + g = '(?:' + d + '|' + c + ')', + c = '(?:' + e + '|' + c + ')', + m = "(?:['’](?:d|ll|m|re|s|t|ve))?", + v = "(?:['’](?:D|LL|M|RE|S|T|VE))?", + b = '(?:' + h + '|' + l + ')' + '?', + y = '[' + u + ']?', + y = y + b + ('(?:\\u200d(?:' + [t, f, r].join('|') + ')' + y + b + ')*'), + b = '(?:' + [p, f, r].join('|') + ')' + y, + p = '(?:' + [t + h + '?', h, f, r, n].join('|') + ')', + fs = RegExp("['’]", 'g'), + gs = RegExp(h, 'g'), + w = RegExp(l + '(?=' + l + ')|' + p + y, 'g'), + ms = RegExp( + [ + e + '?' + d + '+' + m + '(?=' + [A, e, '$'].join('|') + ')', + c + '+' + v + '(?=' + [A, e + g, '$'].join('|') + ')', + e + '?' + g + '+' + m, + e + '+' + v, + '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])', + '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])', + '\\d+', + b, + ].join('|'), + 'g', + ), + E = RegExp('[\\u200d' + a + s + u + ']'), + vs = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/, + bs = [ + 'Array', + 'Buffer', + 'DataView', + 'Date', + 'Error', + 'Float32Array', + 'Float64Array', + 'Function', + 'Int8Array', + 'Int16Array', + 'Int32Array', + 'Map', + 'Math', + 'Object', + 'Promise', + 'RegExp', + 'Set', + 'String', + 'Symbol', + 'TypeError', + 'Uint8Array', + 'Uint8ClampedArray', + 'Uint16Array', + 'Uint32Array', + 'WeakMap', + '_', + 'clearTimeout', + 'isFinite', + 'parseInt', + 'setTimeout', + ], + ys = -1, + ra = {}, + ia = + ((ra[Da] = + ra[Sa] = + ra[ka] = + ra[Fa] = + ra[Qa] = + ra[_a] = + ra[Ta] = + ra[Ra] = + ra[Ua] = + !0), + (ra[jo] = + ra[Ea] = + ra[ea] = + ra[Vo] = + ra[na] = + ra[qo] = + ra[Ba] = + ra[Ca] = + ra[Wo] = + ra[Jo] = + ra[Ko] = + ra[Zo] = + ra[Xo] = + ra[$o] = + ra[ta] = + !1), + {}), + B = + ((ia[jo] = + ia[Ea] = + ia[ea] = + ia[na] = + ia[Vo] = + ia[qo] = + ia[Da] = + ia[Sa] = + ia[ka] = + ia[Fa] = + ia[Qa] = + ia[Wo] = + ia[Jo] = + ia[Ko] = + ia[Zo] = + ia[Xo] = + ia[$o] = + ia[Ma] = + ia[_a] = + ia[Ta] = + ia[Ra] = + ia[Ua] = + !0), + (ia[Ba] = ia[Ca] = ia[ta] = !1), + { + '\\': '\\', + "'": "'", + '\n': 'n', + '\r': 'r', + '\u2028': 'u2028', + '\u2029': 'u2029', + }), + ws = parseFloat, + Es = parseInt, + t = 'object' == typeof M && M && M.Object === Object && M, + f = 'object' == typeof self && self && self.Object === Object && self, + oa = t || f || Function('return this')(), + r = 'object' == typeof S && S && !S.nodeType && S, + i = r && 'object' == typeof D && D && !D.nodeType && D, + Bs = i && i.exports === r, + C = Bs && t.process, + n = (function () { + try { + var t = i && i.require && i.require('util').types; + return t ? t : C && C.binding && C.binding('util'); + } catch (t) {} + })(), + Cs = n && n.isArrayBuffer, + xs = n && n.isDate, + Is = n && n.isMap, + Ms = n && n.isRegExp, + Ds = n && n.isSet, + Ss = n && n.isTypedArray; + function aa(t, e, n) { + switch (n.length) { + case 0: + return t.call(e); + case 1: + return t.call(e, n[0]); + case 2: + return t.call(e, n[0], n[1]); + case 3: + return t.call(e, n[0], n[1], n[2]); + } + return t.apply(e, n); + } + function ks(t, e, n, r) { + for (var i = -1, o = null == t ? 0 : t.length; ++i < o; ) { + var a = t[i]; + e(r, a, n(a), t); + } + return r; + } + function sa(t, e) { + for (var n = -1, r = null == t ? 0 : t.length; ++n < r && !1 !== e(t[n], n, t); ); + return t; + } + function Fs(t, e) { + for (var n = null == t ? 0 : t.length; n-- && !1 !== e(t[n], n, t); ); + return t; + } + function Qs(t, e) { + for (var n = -1, r = null == t ? 0 : t.length; ++n < r; ) + if (!e(t[n], n, t)) return !1; + return !0; + } + function la(t, e) { + for (var n = -1, r = null == t ? 0 : t.length, i = 0, o = []; ++n < r; ) { + var a = t[n]; + e(a, n, t) && (o[i++] = a); + } + return o; + } + function _s(t, e) { + return !!(null == t ? 0 : t.length) && -1 < Aa(t, e, 0); + } + function Ts(t, e, n) { + for (var r = -1, i = null == t ? 0 : t.length; ++r < i; ) + if (n(e, t[r])) return !0; + return !1; + } + function ua(t, e) { + for (var n = -1, r = null == t ? 0 : t.length, i = Array(r); ++n < r; ) + i[n] = e(t[n], n, t); + return i; + } + function ca(t, e) { + for (var n = -1, r = e.length, i = t.length; ++n < r; ) t[i + n] = e[n]; + return t; + } + function Rs(t, e, n, r) { + var i = -1, + o = null == t ? 0 : t.length; + for (r && o && (n = t[++i]); ++i < o; ) n = e(n, t[i], i, t); + return n; + } + function Us(t, e, n, r) { + var i = null == t ? 0 : t.length; + for (r && i && (n = t[--i]); i--; ) n = e(n, t[i], i, t); + return n; + } + function Ns(t, e) { + for (var n = -1, r = null == t ? 0 : t.length; ++n < r; ) + if (e(t[n], n, t)) return !0; + return !1; + } + var x = zs('length'); + function Ps(t, r, e) { + var i; + return ( + e(t, function (t, e, n) { + if (r(t, e, n)) return (i = e), !1; + }), + i + ); + } + function Ls(t, e, n, r) { + for (var i = t.length, o = n + (r ? 1 : -1); r ? o-- : ++o < i; ) + if (e(t[o], o, t)) return o; + return -1; + } + function Aa(t, e, n) { + if (e != e) return Ls(t, Os, n); + for (var r = t, i = e, o = n - 1, a = r.length; ++o < a; ) + if (r[o] === i) return o; + return -1; + } + function Ys(t, e, n, r) { + for (var i = n - 1, o = t.length; ++i < o; ) if (r(t[i], e)) return i; + return -1; + } + function Os(t) { + return t != t; + } + function Gs(t, e) { + var n = null == t ? 0 : t.length; + return n ? js(t, e) / n : ya; + } + function zs(e) { + return function (t) { + return null == t ? Oo : t[e]; + }; + } + function I(e) { + return function (t) { + return null == e ? Oo : e[t]; + }; + } + function Hs(t, r, i, o, e) { + return ( + e(t, function (t, e, n) { + i = o ? ((o = !1), t) : r(i, t, e, n); + }), + i + ); + } + function js(t, e) { + for (var n, r = -1, i = t.length; ++r < i; ) { + var o = e(t[r]); + o !== Oo && (n = n === Oo ? o : n + o); + } + return n; + } + function Vs(t, e) { + for (var n = -1, r = Array(t); ++n < t; ) r[n] = e(n); + return r; + } + function qs(t) { + return t && t.slice(0, il(t) + 1).replace(Xa, ''); + } + function ha(e) { + return function (t) { + return e(t); + }; + } + function Ws(e, t) { + return ua(t, function (t) { + return e[t]; + }); + } + function Js(t, e) { + return t.has(e); + } + function Ks(t, e) { + for (var n = -1, r = t.length; ++n < r && -1 < Aa(e, t[n], 0); ); + return n; + } + function Zs(t, e) { + for (var n = t.length; n-- && -1 < Aa(e, t[n], 0); ); + return n; + } + var Xs = I({ + À: 'A', + Ã: 'A', + Â: 'A', + Ã: 'A', + Ä: 'A', + Ã…: 'A', + à : 'a', + á: 'a', + â: 'a', + ã: 'a', + ä: 'a', + Ã¥: 'a', + Ç: 'C', + ç: 'c', + Ã: 'D', + ð: 'd', + È: 'E', + É: 'E', + Ê: 'E', + Ë: 'E', + è: 'e', + é: 'e', + ê: 'e', + ë: 'e', + ÃŒ: 'I', + Ã: 'I', + ÃŽ: 'I', + Ã: 'I', + ì: 'i', + Ã: 'i', + î: 'i', + ï: 'i', + Ñ: 'N', + ñ: 'n', + Ã’: 'O', + Ó: 'O', + Ô: 'O', + Õ: 'O', + Ö: 'O', + Ø: 'O', + ò: 'o', + ó: 'o', + ô: 'o', + õ: 'o', + ö: 'o', + ø: 'o', + Ù: 'U', + Ú: 'U', + Û: 'U', + Ãœ: 'U', + ù: 'u', + ú: 'u', + û: 'u', + ü: 'u', + Ã: 'Y', + ý: 'y', + ÿ: 'y', + Æ: 'Ae', + æ: 'ae', + Þ: 'Th', + þ: 'th', + ß: 'ss', + Ä€: 'A', + Ä‚: 'A', + Ä„: 'A', + Ä: 'a', + ă: 'a', + Ä…: 'a', + Ć: 'C', + Ĉ: 'C', + ÄŠ: 'C', + ÄŒ: 'C', + ć: 'c', + ĉ: 'c', + Ä‹: 'c', + Ä: 'c', + ÄŽ: 'D', + Ä: 'D', + Ä: 'd', + Ä‘: 'd', + Ä’: 'E', + Ä”: 'E', + Ä–: 'E', + Ę: 'E', + Äš: 'E', + Ä“: 'e', + Ä•: 'e', + Ä—: 'e', + Ä™: 'e', + Ä›: 'e', + Äœ: 'G', + Äž: 'G', + Ä : 'G', + Ä¢: 'G', + Ä: 'g', + ÄŸ: 'g', + Ä¡: 'g', + Ä£: 'g', + Ĥ: 'H', + Ħ: 'H', + Ä¥: 'h', + ħ: 'h', + Ĩ: 'I', + Ī: 'I', + Ĭ: 'I', + Ä®: 'I', + Ä°: 'I', + Ä©: 'i', + Ä«: 'i', + Ä: 'i', + į: 'i', + ı: 'i', + Ä´: 'J', + ĵ: 'j', + Ķ: 'K', + Ä·: 'k', + ĸ: 'k', + Ĺ: 'L', + Ä»: 'L', + Ľ: 'L', + Ä¿: 'L', + Å: 'L', + ĺ: 'l', + ļ: 'l', + ľ: 'l', + Å€: 'l', + Å‚: 'l', + Ń: 'N', + Å…: 'N', + Ň: 'N', + ÅŠ: 'N', + Å„: 'n', + ņ: 'n', + ň: 'n', + Å‹: 'n', + ÅŒ: 'O', + ÅŽ: 'O', + Å: 'O', + Å: 'o', + Å: 'o', + Å‘: 'o', + Å”: 'R', + Å–: 'R', + Ř: 'R', + Å•: 'r', + Å—: 'r', + Å™: 'r', + Åš: 'S', + Åœ: 'S', + Åž: 'S', + Å : 'S', + Å›: 's', + Å: 's', + ÅŸ: 's', + Å¡: 's', + Å¢: 'T', + Ť: 'T', + Ŧ: 'T', + Å£: 't', + Å¥: 't', + ŧ: 't', + Ũ: 'U', + Ū: 'U', + Ŭ: 'U', + Å®: 'U', + Å°: 'U', + Ų: 'U', + Å©: 'u', + Å«: 'u', + Å: 'u', + ů: 'u', + ű: 'u', + ų: 'u', + Å´: 'W', + ŵ: 'w', + Ŷ: 'Y', + Å·: 'y', + Ÿ: 'Y', + Ź: 'Z', + Å»: 'Z', + Ž: 'Z', + ź: 'z', + ż: 'z', + ž: 'z', + IJ: 'IJ', + ij: 'ij', + Å’: 'Oe', + Å“: 'oe', + ʼn: "'n", + Å¿: 's', + }), + $s = I({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }); + function tl(t) { + return '\\' + B[t]; + } + function pa(t) { + return E.test(t); + } + function el(t) { + var n = -1, + r = Array(t.size); + return ( + t.forEach(function (t, e) { + r[++n] = [e, t]; + }), + r + ); + } + function nl(e, n) { + return function (t) { + return e(n(t)); + }; + } + function da(t, e) { + for (var n = -1, r = t.length, i = 0, o = []; ++n < r; ) { + var a = t[n]; + (a !== e && a !== ba) || ((t[n] = ba), (o[i++] = n)); + } + return o; + } + function rl(t) { + var e = -1, + n = Array(t.size); + return ( + t.forEach(function (t) { + n[++e] = t; + }), + n + ); + } + function fa(t) { + return ( + pa(t) + ? function (t) { + var e = (w.lastIndex = 0); + for (; w.test(t); ) ++e; + return e; + } + : x + )(t); + } + function ga(t) { + return pa(t) ? t.match(w) || [] : t.split(''); + } + function il(t) { + for (var e = t.length; e-- && o.test(t.charAt(e)); ); + return e; + } + var ol = I({ '&': '&', '<': '<', '>': '>', '"': '"', ''': "'" }); + var ma = (function i(t) { + var E = (t = null == t ? oa : ma.defaults(oa.Object(), t, ma.pick(oa, bs))).Array, + o = t.Date, + Q = t.Error, + _ = t.Function, + T = t.Math, + f = t.Object, + R = t.RegExp, + G = t.String, + B = t.TypeError, + z = E.prototype, + H = _.prototype, + j = f.prototype, + V = t['__core-js_shared__'], + q = H.toString, + U = j.hasOwnProperty, + W = 0, + J = (H = /[^.]+$/.exec((V && V.keys && V.keys.IE_PROTO) || '')) + ? 'Symbol(src)_1.' + H + : '', + K = j.toString, + Z = q.call(f), + X = oa._, + $ = R( + '^' + + q + .call(U) + .replace(Ka, '\\$&') + .replace( + /hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, + '$1.*?', + ) + + '$', + ), + H = Bs ? t.Buffer : Oo, + e = t.Symbol, + tt = t.Uint8Array, + et = H ? H.allocUnsafe : Oo, + nt = nl(f.getPrototypeOf, f), + rt = f.create, + it = j.propertyIsEnumerable, + ot = z.splice, + at = e ? e.isConcatSpreadable : Oo, + st = e ? e.iterator : Oo, + lt = e ? e.toStringTag : Oo, + ut = (function () { + try { + var t = Xn(f, 'defineProperty'); + return t({}, '', {}), t; + } catch (t) {} + })(), + ct = t.clearTimeout !== oa.clearTimeout && t.clearTimeout, + At = o && o.now !== oa.Date.now && o.now, + ht = t.setTimeout !== oa.setTimeout && t.setTimeout, + pt = T.ceil, + dt = T.floor, + ft = f.getOwnPropertySymbols, + H = H ? H.isBuffer : Oo, + gt = t.isFinite, + mt = z.join, + vt = nl(f.keys, f), + C = T.max, + x = T.min, + bt = o.now, + yt = t.parseInt, + wt = T.random, + Et = z.reverse, + o = Xn(t, 'DataView'), + Bt = Xn(t, 'Map'), + Ct = Xn(t, 'Promise'), + xt = Xn(t, 'Set'), + t = Xn(t, 'WeakMap'), + It = Xn(f, 'create'), + Mt = t && new t(), + Dt = {}, + St = Br(o), + kt = Br(Bt), + Ft = Br(Ct), + Qt = Br(xt), + _t = Br(t), + e = e ? e.prototype : Oo, + Tt = e ? e.valueOf : Oo, + Rt = e ? e.toString : Oo; + function d(t) { + if (O(t) && !Y(t) && !(t instanceof m)) { + if (t instanceof g) return t; + if (U.call(t, '__wrapped__')) return Cr(t); + } + return new g(t); + } + var Ut = function (t) { + if (!w(t)) return {}; + if (rt) return rt(t); + Nt.prototype = t; + t = new Nt(); + return (Nt.prototype = Oo), t; + }; + function Nt() {} + function Pt() {} + function g(t, e) { + (this.__wrapped__ = t), + (this.__actions__ = []), + (this.__chain__ = !!e), + (this.__index__ = 0), + (this.__values__ = Oo); + } + function m(t) { + (this.__wrapped__ = t), + (this.__actions__ = []), + (this.__dir__ = 1), + (this.__filtered__ = !1), + (this.__iteratees__ = []), + (this.__takeCount__ = Ho), + (this.__views__ = []); + } + function Lt(t) { + var e = -1, + n = null == t ? 0 : t.length; + for (this.clear(); ++e < n; ) { + var r = t[e]; + this.set(r[0], r[1]); + } + } + function Yt(t) { + var e = -1, + n = null == t ? 0 : t.length; + for (this.clear(); ++e < n; ) { + var r = t[e]; + this.set(r[0], r[1]); + } + } + function Ot(t) { + var e = -1, + n = null == t ? 0 : t.length; + for (this.clear(); ++e < n; ) { + var r = t[e]; + this.set(r[0], r[1]); + } + } + function Gt(t) { + var e = -1, + n = null == t ? 0 : t.length; + for (this.__data__ = new Ot(); ++e < n; ) this.add(t[e]); + } + function N(t) { + t = this.__data__ = new Yt(t); + this.size = t.size; + } + function zt(t, e) { + var n, + r = Y(t), + i = !r && mi(t), + o = !r && !i && bi(t), + a = !r && !i && !o && ki(t), + s = r || i || o || a, + l = s ? Vs(t.length, G) : [], + u = l.length; + for (n in t) + (!e && !U.call(t, n)) || + (s && + ('length' == n || + (o && ('offset' == n || 'parent' == n)) || + (a && ('buffer' == n || 'byteLength' == n || 'byteOffset' == n)) || + ir(n, u))) || + l.push(n); + return l; + } + function Ht(t) { + var e = t.length; + return e ? t[Pe(0, e - 1)] : Oo; + } + function jt(t, e) { + return br(I(t), te(e, 0, t.length)); + } + function Vt(t) { + return br(I(t)); + } + function qt(t, e, n) { + ((n === Oo || L(t[e], n)) && (n !== Oo || e in t)) || Xt(t, e, n); + } + function Wt(t, e, n) { + var r = t[e]; + (U.call(t, e) && L(r, n) && (n !== Oo || e in t)) || Xt(t, e, n); + } + function Jt(t, e) { + for (var n = t.length; n--; ) if (L(t[n][0], e)) return n; + return -1; + } + function Kt(t, r, i, o) { + return ( + ie(t, function (t, e, n) { + r(o, t, i(t), n); + }), + o + ); + } + function Zt(t, e) { + return t && gn(e, S(e), t); + } + function Xt(t, e, n) { + '__proto__' == e && ut + ? ut(t, e, { configurable: !0, enumerable: !0, value: n, writable: !0 }) + : (t[e] = n); + } + function $t(t, e) { + for (var n = -1, r = e.length, i = E(r), o = null == t; ++n < r; ) + i[n] = o ? Oo : Hi(t, e[n]); + return i; + } + function te(t, e, n) { + return ( + t == t && + (n !== Oo && (t = t <= n ? t : n), e !== Oo && (t = e <= t ? t : e)), + t + ); + } + function v(n, r, i, t, e, o) { + var a, + s = 1 & r, + l = 2 & r, + u = 4 & r; + if ((a = i ? (e ? i(n, t, e, o) : i(n)) : a) === Oo) { + if (!w(n)) return n; + var c, + t = Y(n); + if (t) { + if ( + ((a = (function (t) { + var e = t.length, + n = new t.constructor(e); + e && + 'string' == typeof t[0] && + U.call(t, 'index') && + ((n.index = t.index), (n.input = t.input)); + return n; + })(n)), + !s) + ) + return I(n, a); + } else { + var A = P(n), + h = A == Ca || A == xa; + if (bi(n)) return cn(n, s); + if (A == Ko || A == jo || (h && !e)) { + if (((a = l || h ? {} : nr(n)), !s)) + return l + ? ((p = h = n), (p = (c = a) && gn(p, k(p), c)), gn(h, tr(h), p)) + : ((h = Zt(a, (c = n))), gn(c, $n(c), h)); + } else { + if (!ia[A]) return e ? n : {}; + a = (function (t, e, n) { + var r = t.constructor; + switch (e) { + case ea: + return An(t); + case Vo: + case qo: + return new r(+t); + case na: + return (function (t, e) { + e = e ? An(t.buffer) : t.buffer; + return new t.constructor(e, t.byteOffset, t.byteLength); + })(t, n); + case Da: + case Sa: + case ka: + case Fa: + case Qa: + case _a: + case Ta: + case Ra: + case Ua: + return hn(t, n); + case Wo: + return new r(); + case Jo: + case $o: + return new r(t); + case Zo: + return (function (t) { + var e = new t.constructor(t.source, as.exec(t)); + return (e.lastIndex = t.lastIndex), e; + })(t); + case Xo: + return new r(); + case Ma: + return (function (t) { + return Tt ? f(Tt.call(t)) : {}; + })(t); + } + })(n, A, s); + } + } + var p = (o = o || new N()).get(n); + if (p) return p; + o.set(n, a), + Di(n) + ? n.forEach(function (t) { + a.add(v(t, r, i, t, n, o)); + }) + : Ci(n) && + n.forEach(function (t, e) { + a.set(e, v(t, r, i, e, n, o)); + }); + var d = t ? Oo : (u ? (l ? Vn : jn) : l ? k : S)(n); + sa(d || n, function (t, e) { + d && (t = n[(e = t)]), Wt(a, e, v(t, r, i, e, n, o)); + }); + } + return a; + } + function ee(t, e, n) { + var r = n.length; + if (null == t) return !r; + for (t = f(t); r--; ) { + var i = n[r], + o = e[i], + a = t[i]; + if ((a === Oo && !(i in t)) || !o(a)) return !1; + } + return !0; + } + function ne(t, e, n) { + if ('function' != typeof t) throw new B(Go); + return fr(function () { + t.apply(Oo, n); + }, e); + } + function re(t, e, n, r) { + var i = -1, + o = _s, + a = !0, + s = t.length, + l = [], + u = e.length; + if (s) { + n && (e = ua(e, ha(n))), + r + ? ((o = Ts), (a = !1)) + : 200 <= e.length && ((o = Js), (a = !1), (e = new Gt(e))); + t: for (; ++i < s; ) { + var c = t[i], + A = null == n ? c : n(c), + c = r || 0 !== c ? c : 0; + if (a && A == A) { + for (var h = u; h--; ) if (e[h] === A) continue t; + l.push(c); + } else o(e, A, r) || l.push(c); + } + } + return l; + } + (d.templateSettings = { + escape: Ha, + evaluate: ja, + interpolate: Va, + variable: '', + imports: { _: d }, + }), + ((d.prototype = Pt.prototype).constructor = d), + ((g.prototype = Ut(Pt.prototype)).constructor = g), + ((m.prototype = Ut(Pt.prototype)).constructor = m), + (Lt.prototype.clear = function () { + (this.__data__ = It ? It(null) : {}), (this.size = 0); + }), + (Lt.prototype.delete = function (t) { + return ( + (t = this.has(t) && delete this.__data__[t]), (this.size -= t ? 1 : 0), t + ); + }), + (Lt.prototype.get = function (t) { + var e, + n = this.__data__; + return It ? ((e = n[t]) === va ? Oo : e) : U.call(n, t) ? n[t] : Oo; + }), + (Lt.prototype.has = function (t) { + var e = this.__data__; + return It ? e[t] !== Oo : U.call(e, t); + }), + (Lt.prototype.set = function (t, e) { + var n = this.__data__; + return ( + (this.size += this.has(t) ? 0 : 1), (n[t] = It && e === Oo ? va : e), this + ); + }), + (Yt.prototype.clear = function () { + (this.__data__ = []), (this.size = 0); + }), + (Yt.prototype.delete = function (t) { + var e = this.__data__; + return ( + !((t = Jt(e, t)) < 0) && + (t == e.length - 1 ? e.pop() : ot.call(e, t, 1), --this.size, !0) + ); + }), + (Yt.prototype.get = function (t) { + var e = this.__data__; + return (t = Jt(e, t)) < 0 ? Oo : e[t][1]; + }), + (Yt.prototype.has = function (t) { + return -1 < Jt(this.__data__, t); + }), + (Yt.prototype.set = function (t, e) { + var n = this.__data__, + r = Jt(n, t); + return r < 0 ? (++this.size, n.push([t, e])) : (n[r][1] = e), this; + }), + (Ot.prototype.clear = function () { + (this.size = 0), + (this.__data__ = { + hash: new Lt(), + map: new (Bt || Yt)(), + string: new Lt(), + }); + }), + (Ot.prototype.delete = function (t) { + return (t = Kn(this, t).delete(t)), (this.size -= t ? 1 : 0), t; + }), + (Ot.prototype.get = function (t) { + return Kn(this, t).get(t); + }), + (Ot.prototype.has = function (t) { + return Kn(this, t).has(t); + }), + (Ot.prototype.set = function (t, e) { + var n = Kn(this, t), + r = n.size; + return n.set(t, e), (this.size += n.size == r ? 0 : 1), this; + }), + (Gt.prototype.add = Gt.prototype.push = + function (t) { + return this.__data__.set(t, va), this; + }), + (Gt.prototype.has = function (t) { + return this.__data__.has(t); + }), + (N.prototype.clear = function () { + (this.__data__ = new Yt()), (this.size = 0); + }), + (N.prototype.delete = function (t) { + var e = this.__data__, + t = e.delete(t); + return (this.size = e.size), t; + }), + (N.prototype.get = function (t) { + return this.__data__.get(t); + }), + (N.prototype.has = function (t) { + return this.__data__.has(t); + }), + (N.prototype.set = function (t, e) { + var n = this.__data__; + if (n instanceof Yt) { + var r = n.__data__; + if (!Bt || r.length < 199) + return r.push([t, e]), (this.size = ++n.size), this; + n = this.__data__ = new Ot(r); + } + return n.set(t, e), (this.size = n.size), this; + }); + var ie = bn(Ae), + oe = bn(he, !0); + function ae(t, r) { + var i = !0; + return ( + ie(t, function (t, e, n) { + return (i = !!r(t, e, n)); + }), + i + ); + } + function se(t, e, n) { + for (var r = -1, i = t.length; ++r < i; ) { + var o, + a, + s = t[r], + l = e(s); + null != l && (o === Oo ? l == l && !b(l) : n(l, o)) && ((o = l), (a = s)); + } + return a; + } + function le(t, r) { + var i = []; + return ( + ie(t, function (t, e, n) { + r(t, e, n) && i.push(t); + }), + i + ); + } + function l(t, e, n, r, i) { + var o = -1, + a = t.length; + for (n = n || rr, i = i || []; ++o < a; ) { + var s = t[o]; + 0 < e && n(s) + ? 1 < e + ? l(s, e - 1, n, r, i) + : ca(i, s) + : r || (i[i.length] = s); + } + return i; + } + var ue = yn(), + ce = yn(!0); + function Ae(t, e) { + return t && ue(t, e, S); + } + function he(t, e) { + return t && ce(t, e, S); + } + function pe(e, t) { + return la(t, function (t) { + return wi(e[t]); + }); + } + function de(t, e) { + for (var n = 0, r = (e = an(e, t)).length; null != t && n < r; ) + t = t[Er(e[n++])]; + return n && n == r ? t : Oo; + } + function fe(t, e, n) { + e = e(t); + return Y(t) ? e : ca(e, n(t)); + } + function n(t) { + { + if (null == t) return t === Oo ? '[object Undefined]' : '[object Null]'; + if (lt && lt in f(t)) { + var e = t, + n = U.call(e, lt), + r = e[lt]; + try { + e[lt] = Oo; + var i = !0; + } catch (t) {} + var o = K.call(e); + return i && (n ? (e[lt] = r) : delete e[lt]), o; + } + return K.call(t); + } + } + function ge(t, e) { + return e < t; + } + function me(t, e) { + return null != t && U.call(t, e); + } + function ve(t, e) { + return null != t && e in f(t); + } + function be(t, e, n) { + for ( + var r = n ? Ts : _s, + i = t[0].length, + o = t.length, + a = o, + s = E(o), + l = 1 / 0, + u = []; + a--; + + ) { + var c = t[a]; + a && e && (c = ua(c, ha(e))), + (l = x(c.length, l)), + (s[a] = !n && (e || (120 <= i && 120 <= c.length)) ? new Gt(a && c) : Oo); + } + var c = t[0], + A = -1, + h = s[0]; + t: for (; ++A < i && u.length < l; ) { + var p = c[A], + d = e ? e(p) : p, + p = n || 0 !== p ? p : 0; + if (!(h ? Js(h, d) : r(u, d, n))) { + for (a = o; --a; ) { + var f = s[a]; + if (!(f ? Js(f, d) : r(t[a], d, n))) continue t; + } + h && h.push(d), u.push(p); + } + } + return u; + } + function ye(t, e, n) { + e = null == (t = hr(t, (e = an(e, t)))) ? t : t[Er(r(e))]; + return null == e ? Oo : aa(e, t, n); + } + function we(t) { + return O(t) && n(t) == jo; + } + function Ee(t, e, n, r, i) { + { + if (t === e) return !0; + if (null == t || null == e || (!O(t) && !O(e))) return t != t && e != e; + var o = Ee, + a = Y(t), + s = Y(e), + l = a ? Ea : P(t), + s = s ? Ea : P(e), + u = (l = l == jo ? Ko : l) == Ko, + c = (s = s == jo ? Ko : s) == Ko, + s; + if ((s = l == s) && bi(t)) { + if (!bi(e)) return !1; + u = !(a = !0); + } + if (s && !u) { + i = i || new N(); + if (a || ki(t)) return zn(t, e, n, r, o, i); + else { + var A = t; + var h = e; + var p = l; + var d = n; + var f = r; + var g = o; + var m = i; + switch (p) { + case na: + if (A.byteLength != h.byteLength || A.byteOffset != h.byteOffset) + return !1; + (A = A.buffer), (h = h.buffer); + case ea: + return A.byteLength == h.byteLength && g(new tt(A), new tt(h)) + ? !0 + : !1; + case Vo: + case qo: + case Jo: + return L(+A, +h); + case Ba: + return A.name == h.name && A.message == h.message; + case Zo: + case $o: + return A == h + ''; + case Wo: + var v = el; + case Xo: + var b = 1 & d; + if (((v = v || rl), A.size != h.size && !b)) return !1; + b = m.get(A); + if (b) return b == h; + (d |= 2), m.set(A, h); + b = zn(v(A), v(h), d, f, g, m); + return m.delete(A), b; + case Ma: + if (Tt) return Tt.call(A) == Tt.call(h); + } + return !1; + return; + } + } + if (!(1 & n)) { + (a = u && U.call(t, '__wrapped__')), (l = c && U.call(e, '__wrapped__')); + if (a || l) + return ( + (u = a ? t.value() : t), + (c = l ? e.value() : e), + (i = i || new N()), + o(u, c, n, r, i) + ); + } + if (s) { + i = i || new N(); + var y = t, + w = e, + E = n, + B = r, + C = o, + x = i, + I = 1 & E, + M = jn(y), + D = M.length, + a = jn(w).length; + if (D != a && !I) return !1; + for (var S = D; S--; ) { + var k = M[S]; + if (!(I ? k in w : U.call(w, k))) return !1; + } + (a = x.get(y)), (l = x.get(w)); + if (a && l) return a == w && l == y; + for (var F = !0, Q = (x.set(y, w), x.set(w, y), I); ++S < D; ) { + k = M[S]; + var _, + T = y[k], + R = w[k]; + if ( + !((_ = B ? (I ? B(R, T, k, w, y, x) : B(T, R, k, y, w, x)) : _) === Oo + ? T === R || C(T, R, E, B, x) + : _) + ) { + F = !1; + break; + } + Q = Q || 'constructor' == k; + } + return ( + F && + !Q && + ((a = y.constructor), + (l = w.constructor), + a != l && + 'constructor' in y && + 'constructor' in w && + !( + 'function' == typeof a && + a instanceof a && + 'function' == typeof l && + l instanceof l + ) && + (F = !1)), + x.delete(y), + x.delete(w), + F + ); + } + return !1; + } + } + function Be(t, e, n, r) { + var i = n.length, + o = i, + a = !r; + if (null == t) return !o; + for (t = f(t); i--; ) { + var s = n[i]; + if (a && s[2] ? s[1] !== t[s[0]] : !(s[0] in t)) return !1; + } + for (; ++i < o; ) { + var l = (s = n[i])[0], + u = t[l], + c = s[1]; + if (a && s[2]) { + if (u === Oo && !(l in t)) return !1; + } else { + var A, + h = new N(); + if (!((A = r ? r(u, c, l, t, e, h) : A) === Oo ? Ee(c, u, 3, r, h) : A)) + return !1; + } + } + return !0; + } + function Ce(t) { + return !(!w(t) || ((e = t), J && J in e)) && (wi(t) ? $ : us).test(Br(t)); + var e; + } + function xe(t) { + return 'function' == typeof t + ? t + : null == t + ? F + : 'object' == typeof t + ? Y(t) + ? Fe(t[0], t[1]) + : ke(t) + : Do(t); + } + function Ie(t) { + if (!lr(t)) return vt(t); + var e, + n = []; + for (e in f(t)) U.call(t, e) && 'constructor' != e && n.push(e); + return n; + } + function Me(t) { + if (!w(t)) { + var e = t, + n = []; + if (null != e) for (var r in f(e)) n.push(r); + return n; + } + var i, + o = lr(t), + a = []; + for (i in t) ('constructor' != i || (!o && U.call(t, i))) && a.push(i); + return a; + } + function De(t, e) { + return t < e; + } + function Se(t, r) { + var i = -1, + o = c(t) ? E(t.length) : []; + return ( + ie(t, function (t, e, n) { + o[++i] = r(t, e, n); + }), + o + ); + } + function ke(e) { + var n = Zn(e); + return 1 == n.length && n[0][2] + ? cr(n[0][0], n[0][1]) + : function (t) { + return t === e || Be(t, e, n); + }; + } + function Fe(n, r) { + return or(n) && ur(r) + ? cr(Er(n), r) + : function (t) { + var e = Hi(t, n); + return e === Oo && e === r ? ji(t, n) : Ee(r, e, 3); + }; + } + function Qe(f, g, m, v, b) { + f !== g && + ue( + g, + function (t, e) { + var n, r, i, o, a, s, l, u, c, A, h, p, d; + (b = b || new N()), + w(t) + ? ((r = g), + (o = m), + (a = Qe), + (s = v), + (l = b), + (h = pr((n = f), (i = e))), + (p = pr(r, i)), + (d = l.get(p)) + ? qt(n, i, d) + : ((d = s ? s(h, p, i + '', n, r, l) : Oo), + (r = d === Oo) && + ((u = Y(p)), + (c = !u && bi(p)), + (A = !u && !c && ki(p)), + (d = p), + u || c || A + ? (d = Y(h) + ? h + : y(h) + ? I(h) + : c + ? cn(p, !(r = !1)) + : A + ? hn(p, !(r = !1)) + : []) + : Ii(p) || mi(p) + ? mi((d = h)) + ? (d = Ui(h)) + : (w(h) && !wi(h)) || (d = nr(p)) + : (r = !1)), + r && (l.set(p, d), a(d, p, o, s, l), l.delete(p)), + qt(n, i, d))) + : ((u = v ? v(pr(f, e), t, e + '', f, g, b) : Oo), + qt(f, e, (u = u === Oo ? t : u))); + }, + k, + ); + } + function _e(t, e) { + var n = t.length; + if (n) return ir((e += e < 0 ? n : 0), n) ? t[e] : Oo; + } + function Te(t, r, c) { + r = r.length + ? ua(r, function (e) { + return Y(e) + ? function (t) { + return de(t, 1 === e.length ? e[0] : e); + } + : e; + }) + : [F]; + var i = -1; + r = ua(r, ha(A())); + var e = Se(t, function (e, t, n) { + return { + criteria: ua(r, function (t) { + return t(e); + }), + index: ++i, + value: e, + }; + }), + t = function (t, e) { + for ( + var n = c, + r = -1, + i = t.criteria, + o = e.criteria, + a = i.length, + s = n.length; + ++r < a; + + ) { + var l = pn(i[r], o[r]); + if (l) { + if (s <= r) return l; + var u = n[r]; + return l * ('desc' == u ? -1 : 1); + } + } + return t.index - e.index; + }, + n = e.length; + for (e.sort(t); n--; ) e[n] = e[n].value; + return e; + } + function Re(t, e, n) { + for (var r = -1, i = e.length, o = {}; ++r < i; ) { + var a = e[r], + s = de(t, a); + n(s, a) && Ge(o, an(a, t), s); + } + return o; + } + function Ue(t, e, n, r) { + var i = r ? Ys : Aa, + o = -1, + a = e.length, + s = t; + for (t === e && (e = I(e)), n && (s = ua(t, ha(n))); ++o < a; ) + for (var l = 0, u = e[o], c = n ? n(u) : u; -1 < (l = i(s, c, l, r)); ) + s !== t && ot.call(s, l, 1), ot.call(t, l, 1); + return t; + } + function Ne(t, e) { + for (var n = t ? e.length : 0, r = n - 1; n--; ) { + var i, + o = e[n]; + (n != r && o === i) || (ir((i = o)) ? ot.call(t, o, 1) : Ze(t, o)); + } + } + function Pe(t, e) { + return t + dt(wt() * (e - t + 1)); + } + function Le(t, e) { + var n = ''; + if (!(!t || e < 1 || zo < e)) + for (; e % 2 && (n += t), (e = dt(e / 2)) && (t += t), e; ); + return n; + } + function a(t, e) { + return gr(Ar(t, e, F), t + ''); + } + function Ye(t) { + return Ht(no(t)); + } + function Oe(t, e) { + t = no(t); + return br(t, te(e, 0, t.length)); + } + function Ge(t, e, n, r) { + if (w(t)) + for ( + var i = -1, o = (e = an(e, t)).length, a = o - 1, s = t; + null != s && ++i < o; + + ) { + var l, + u = Er(e[i]), + c = n; + if ('__proto__' === u || 'constructor' === u || 'prototype' === u) return t; + i != a && + ((l = s[u]), + (c = r ? r(l, u, s) : Oo) === Oo && + (c = w(l) ? l : ir(e[i + 1]) ? [] : {})), + Wt(s, u, c), + (s = s[u]); + } + return t; + } + var ze = Mt + ? function (t, e) { + return Mt.set(t, e), t; + } + : F, + e = ut + ? function (t, e) { + return ut(t, 'toString', { + configurable: !0, + enumerable: !1, + value: mo(e), + writable: !0, + }); + } + : F; + function He(t) { + return br(no(t)); + } + function s(t, e, n) { + for ( + var r = -1, + i = t.length, + o = + ((n = i < n ? i : n) < 0 && (n += i), + (i = n < (e = e < 0 ? (i < -e ? 0 : i + e) : e) ? 0 : (n - e) >>> 0), + (e >>>= 0), + E(i)); + ++r < i; + + ) + o[r] = t[r + e]; + return o; + } + function je(t, r) { + var i; + return ( + ie(t, function (t, e, n) { + return !(i = r(t, e, n)); + }), + !!i + ); + } + function Ve(t, e, n) { + var r = 0, + i = null == t ? r : t.length; + if ('number' == typeof e && e == e && i <= 2147483647) { + for (; r < i; ) { + var o = (r + i) >>> 1, + a = t[o]; + null !== a && !b(a) && (n ? a <= e : a < e) ? (r = 1 + o) : (i = o); + } + return i; + } + return qe(t, e, F, n); + } + function qe(t, e, n, r) { + var i = 0, + o = null == t ? 0 : t.length; + if (0 === o) return 0; + for (var a = (e = n(e)) != e, s = null === e, l = b(e), u = e === Oo; i < o; ) { + var c = dt((i + o) / 2), + A = n(t[c]), + h = A !== Oo, + p = null === A, + d = A == A, + f = b(A), + d = a + ? r || d + : u + ? d && (r || h) + : s + ? d && h && (r || !p) + : l + ? d && h && !p && (r || !f) + : !p && !f && (r ? A <= e : A < e); + d ? (i = c + 1) : (o = c); + } + return x(o, 4294967294); + } + function We(t, e) { + for (var n = -1, r = t.length, i = 0, o = []; ++n < r; ) { + var a, + s = t[n], + l = e ? e(s) : s; + (n && L(l, a)) || ((a = l), (o[i++] = 0 === s ? 0 : s)); + } + return o; + } + function Je(t) { + return 'number' == typeof t ? t : b(t) ? ya : +t; + } + function u(t) { + if ('string' == typeof t) return t; + if (Y(t)) return ua(t, u) + ''; + if (b(t)) return Rt ? Rt.call(t) : ''; + var e = t + ''; + return '0' == e && 1 / t == -1 / 0 ? '-0' : e; + } + function Ke(t, e, n) { + var r = -1, + i = _s, + o = t.length, + a = !0, + s = [], + l = s; + if (n) (a = !1), (i = Ts); + else if (200 <= o) { + var u = e ? null : Nn(t); + if (u) return rl(u); + (a = !1), (i = Js), (l = new Gt()); + } else l = e ? [] : s; + t: for (; ++r < o; ) { + var c = t[r], + A = e ? e(c) : c, + c = n || 0 !== c ? c : 0; + if (a && A == A) { + for (var h = l.length; h--; ) if (l[h] === A) continue t; + e && l.push(A), s.push(c); + } else i(l, A, n) || (l !== s && l.push(A), s.push(c)); + } + return s; + } + function Ze(t, e) { + return null == (t = hr(t, (e = an(e, t)))) || delete t[Er(r(e))]; + } + function Xe(t, e, n, r) { + return Ge(t, e, n(de(t, e)), r); + } + function $e(t, e, n, r) { + for (var i = t.length, o = r ? i : -1; (r ? o-- : ++o < i) && e(t[o], o, t); ); + return n ? s(t, r ? 0 : o, r ? o + 1 : i) : s(t, r ? o + 1 : 0, r ? i : o); + } + function tn(t, e) { + var n = t; + return Rs( + e, + function (t, e) { + return e.func.apply(e.thisArg, ca([t], e.args)); + }, + (n = t instanceof m ? t.value() : n), + ); + } + function en(t, e, n) { + var r = t.length; + if (r < 2) return r ? Ke(t[0]) : []; + for (var i = -1, o = E(r); ++i < r; ) + for (var a = t[i], s = -1; ++s < r; ) + s != i && (o[i] = re(o[i] || a, t[s], e, n)); + return Ke(l(o, 1), e, n); + } + function nn(t, e, n) { + for (var r = -1, i = t.length, o = e.length, a = {}; ++r < i; ) { + var s = r < o ? e[r] : Oo; + n(a, t[r], s); + } + return a; + } + function rn(t) { + return y(t) ? t : []; + } + function on(t) { + return 'function' == typeof t ? t : F; + } + function an(t, e) { + return Y(t) ? t : or(t, e) ? [t] : wr(p(t)); + } + var sn = a; + function ln(t, e, n) { + var r = t.length; + return (n = n === Oo ? r : n), !e && r <= n ? t : s(t, e, n); + } + var un = + ct || + function (t) { + return oa.clearTimeout(t); + }; + function cn(t, e) { + if (e) return t.slice(); + (e = t.length), (e = et ? et(e) : new t.constructor(e)); + return t.copy(e), e; + } + function An(t) { + var e = new t.constructor(t.byteLength); + return new tt(e).set(new tt(t)), e; + } + function hn(t, e) { + e = e ? An(t.buffer) : t.buffer; + return new t.constructor(e, t.byteOffset, t.length); + } + function pn(t, e) { + if (t !== e) { + var n = t !== Oo, + r = null === t, + i = t == t, + o = b(t), + a = e !== Oo, + s = null === e, + l = e == e, + u = b(e); + if ( + (!s && !u && !o && e < t) || + (o && a && l && !s && !u) || + (r && a && l) || + (!n && l) || + !i + ) + return 1; + if ( + (!r && !o && !u && t < e) || + (u && n && i && !r && !o) || + (s && n && i) || + (!a && i) || + !l + ) + return -1; + } + return 0; + } + function dn(t, e, n, r) { + for ( + var i = -1, + o = t.length, + a = n.length, + s = -1, + l = e.length, + u = C(o - a, 0), + c = E(l + u), + A = !r; + ++s < l; + + ) + c[s] = e[s]; + for (; ++i < a; ) (A || i < o) && (c[n[i]] = t[i]); + for (; u--; ) c[s++] = t[i++]; + return c; + } + function fn(t, e, n, r) { + for ( + var i = -1, + o = t.length, + a = -1, + s = n.length, + l = -1, + u = e.length, + c = C(o - s, 0), + A = E(c + u), + h = !r; + ++i < c; + + ) + A[i] = t[i]; + for (var p = i; ++l < u; ) A[p + l] = e[l]; + for (; ++a < s; ) (h || i < o) && (A[p + n[a]] = t[i++]); + return A; + } + function I(t, e) { + var n = -1, + r = t.length; + for (e = e || E(r); ++n < r; ) e[n] = t[n]; + return e; + } + function gn(t, e, n, r) { + for (var i = !n, o = ((n = n || {}), -1), a = e.length; ++o < a; ) { + var s = e[o], + l = r ? r(n[s], t[s], s, n, t) : Oo; + (i ? Xt : Wt)(n, s, (l = l === Oo ? t[s] : l)); + } + return n; + } + function mn(i, o) { + return function (t, e) { + var n = Y(t) ? ks : Kt, + r = o ? o() : {}; + return n(t, i, A(e, 2), r); + }; + } + function vn(s) { + return a(function (t, e) { + var n = -1, + r = e.length, + i = 1 < r ? e[r - 1] : Oo, + o = 2 < r ? e[2] : Oo, + i = 3 < s.length && 'function' == typeof i ? (r--, i) : Oo; + for ( + o && h(e[0], e[1], o) && ((i = r < 3 ? Oo : i), (r = 1)), t = f(t); + ++n < r; + + ) { + var a = e[n]; + a && s(t, a, n, i); + } + return t; + }); + } + function bn(o, a) { + return function (t, e) { + if (null != t) { + if (!c(t)) return o(t, e); + for ( + var n = t.length, r = a ? n : -1, i = f(t); + (a ? r-- : ++r < n) && !1 !== e(i[r], r, i); + + ); + } + return t; + }; + } + function yn(l) { + return function (t, e, n) { + for (var r = -1, i = f(t), o = n(t), a = o.length; a--; ) { + var s = o[l ? a : ++r]; + if (!1 === e(i[s], s, i)) break; + } + return t; + }; + } + function wn(r) { + return function (t) { + var e = pa((t = p(t))) ? ga(t) : Oo, + n = e ? e[0] : t.charAt(0), + e = e ? ln(e, 1).join('') : t.slice(1); + return n[r]() + e; + }; + } + function En(e) { + return function (t) { + return Rs(po(oo(t).replace(fs, '')), e, ''); + }; + } + function Bn(r) { + return function () { + var t = arguments; + switch (t.length) { + case 0: + return new r(); + case 1: + return new r(t[0]); + case 2: + return new r(t[0], t[1]); + case 3: + return new r(t[0], t[1], t[2]); + case 4: + return new r(t[0], t[1], t[2], t[3]); + case 5: + return new r(t[0], t[1], t[2], t[3], t[4]); + case 6: + return new r(t[0], t[1], t[2], t[3], t[4], t[5]); + case 7: + return new r(t[0], t[1], t[2], t[3], t[4], t[5], t[6]); + } + var e = Ut(r.prototype), + n = r.apply(e, t); + return w(n) ? n : e; + }; + } + function Cn(o, a, s) { + var l = Bn(o); + return function t() { + for (var e = arguments.length, n = E(e), r = e, i = Jn(t); r--; ) + n[r] = arguments[r]; + i = e < 3 && n[0] !== i && n[e - 1] !== i ? [] : da(n, i); + return (e -= i.length) < s + ? Rn(o, a, Mn, t.placeholder, Oo, n, i, Oo, Oo, s - e) + : aa(this && this !== oa && this instanceof t ? l : o, this, n); + }; + } + function xn(o) { + return function (t, e, n) { + var r, + i = f(t), + e = + (c(t) || + ((r = A(e, 3)), + (t = S(t)), + (e = function (t) { + return r(i[t], t, i); + })), + o(t, e, n)); + return -1 < e ? i[r ? t[e] : e] : Oo; + }; + } + function In(l) { + return Hn(function (i) { + var o = i.length, + t = o, + e = g.prototype.thru; + for (l && i.reverse(); t--; ) { + var n = i[t]; + if ('function' != typeof n) throw new B(Go); + e && !s && 'wrapper' == Wn(n) && (s = new g([], !0)); + } + for (t = s ? t : o; ++t < o; ) + var r = Wn((n = i[t])), + a = 'wrapper' == r ? qn(n) : Oo, + s = + a && ar(a[0]) && 424 == a[1] && !a[4].length && 1 == a[9] + ? s[Wn(a[0])].apply(s, a[3]) + : 1 == n.length && ar(n) + ? s[r]() + : s.thru(n); + return function () { + var t = arguments, + e = t[0]; + if (s && 1 == t.length && Y(e)) return s.plant(e).value(); + for (var n = 0, r = o ? i[n].apply(this, t) : e; ++n < o; ) + r = i[n].call(this, r); + return r; + }; + }); + } + function Mn(a, s, l, u, c, A, h, p, d, f) { + var g = 128 & s, + m = 1 & s, + v = 2 & s, + b = 24 & s, + y = 512 & s, + w = v ? Oo : Bn(a); + return function t() { + for (var e = E((o = arguments.length)), n = o; n--; ) e[n] = arguments[n]; + if ( + (b && + (i = (function (t, e) { + for (var n = t.length, r = 0; n--; ) t[n] === e && ++r; + return r; + })(e, (r = Jn(t)))), + u && (e = dn(e, u, c, b)), + A && (e = fn(e, A, h, b)), + (o -= i), + b && o < f) + ) + return (i = da(e, r)), Rn(a, s, Mn, t.placeholder, l, e, i, p, d, f - o); + var r = m ? l : this, + i = v ? r[a] : a, + o = e.length; + return ( + p + ? (e = (function (t, e) { + for (var n = t.length, r = x(e.length, n), i = I(t); r--; ) { + var o = e[r]; + t[r] = ir(o, n) ? i[o] : Oo; + } + return t; + })(e, p)) + : y && 1 < o && e.reverse(), + g && d < o && (e.length = d), + (i = this && this !== oa && this instanceof t ? w || Bn(i) : i).apply(r, e) + ); + }; + } + function Dn(n, a) { + return function (t, e) { + return ( + (t = t), + (r = n), + (i = a(e)), + (o = {}), + Ae(t, function (t, e, n) { + r(o, i(t), e, n); + }), + o + ); + var r, i, o; + }; + } + function Sn(r, i) { + return function (t, e) { + var n; + if (t === Oo && e === Oo) return i; + if ((t !== Oo && (n = t), e !== Oo)) { + if (n === Oo) return e; + (e = + 'string' == typeof t || 'string' == typeof e + ? ((t = u(t)), u(e)) + : ((t = Je(t)), Je(e))), + (n = r(t, e)); + } + return n; + }; + } + function kn(r) { + return Hn(function (t) { + return ( + (t = ua(t, ha(A()))), + a(function (e) { + var n = this; + return r(t, function (t) { + return aa(t, n, e); + }); + }) + ); + }); + } + function Fn(t, e) { + var n = (e = e === Oo ? ' ' : u(e)).length; + if (n < 2) return n ? Le(e, t) : e; + n = Le(e, pt(t / fa(e))); + return pa(e) ? ln(ga(n), 0, t).join('') : n.slice(0, t); + } + function Qn(s, t, l, u) { + var c = 1 & t, + A = Bn(s); + return function t() { + for ( + var e = -1, + n = arguments.length, + r = -1, + i = u.length, + o = E(i + n), + a = this && this !== oa && this instanceof t ? A : s; + ++r < i; + + ) + o[r] = u[r]; + for (; n--; ) o[r++] = arguments[++e]; + return aa(a, c ? l : this, o); + }; + } + function _n(u) { + return function (t, e, n) { + n && 'number' != typeof n && h(t, e, n) && (e = n = Oo), + (t = Ti(t)), + e === Oo ? ((e = t), (t = 0)) : (e = Ti(e)), + (n = n === Oo ? (t < e ? 1 : -1) : Ti(n)); + for ( + var r = t, i = n, o = u, a = -1, s = C(pt((e - r) / (i || 1)), 0), l = E(s); + s--; + + ) + (l[o ? s : ++a] = r), (r += i); + return l; + }; + } + function Tn(n) { + return function (t, e) { + return ( + ('string' == typeof t && 'string' == typeof e) || ((t = D(t)), (e = D(e))), + n(t, e) + ); + }; + } + function Rn(t, e, n, r, i, o, a, s, l, u) { + var c = 8 & e, + i = + (4 & (e = (e | (c ? 32 : 64)) & ~(c ? 64 : 32)) || (e &= -4), + [t, e, i, c ? o : Oo, c ? a : Oo, c ? Oo : o, c ? Oo : a, s, l, u]), + o = n.apply(Oo, i); + return ar(t) && dr(o, i), (o.placeholder = r), mr(o, t, e); + } + function Un(t) { + var r = T[t]; + return function (t, e) { + var n; + return ( + (t = D(t)), + (e = null == e ? 0 : x(M(e), 292)) && gt(t) + ? ((n = (p(t) + 'e').split('e')), + +( + (n = (p(r(n[0] + 'e' + (+n[1] + e))) + 'e').split('e'))[0] + + 'e' + + (+n[1] - e) + )) + : r(t) + ); + }; + } + var Nn = + xt && 1 / rl(new xt([, -0]))[1] == 1 / 0 + ? function (t) { + return new xt(t); + } + : Co; + function Pn(o) { + return function (t) { + var e, + n, + r, + i = P(t); + return i == Wo + ? el(t) + : i == Xo + ? ((i = t), + (e = -1), + (n = Array(i.size)), + i.forEach(function (t) { + n[++e] = [t, t]; + }), + n) + : ua(o((r = t)), function (t) { + return [t, r[t]]; + }); + }; + } + function Ln(t, e, n, r, i, o, a, s) { + var l = 2 & e; + if (!l && 'function' != typeof t) throw new B(Go); + var u, + c, + A, + h, + p, + d, + f, + g, + m, + v, + b = r ? r.length : 0, + y = + (b || ((e &= -97), (r = i = Oo)), + (a = a === Oo ? a : C(M(a), 0)), + (s = s === Oo ? s : M(s)), + (b -= i ? i.length : 0), + 64 & e && ((w = r), (u = i), (r = i = Oo)), + l ? Oo : qn(t)), + w = [t, e, n, r, i, w, u, o, a, s]; + return ( + y && + ((u = y), + (a = (o = w)[1]), + (A = u[1]), + (p = (h = a | A) < 131), + (d = + (128 == A && 8 == a) || + (128 == A && 256 == a && o[7].length <= u[8]) || + (384 == A && u[7].length <= u[8] && 8 == a)), + (p || d) && + (1 & A && ((o[2] = u[2]), (h |= 1 & a ? 0 : 4)), + (p = u[3]) && + ((c = o[3]), + (o[3] = c ? dn(c, p, u[4]) : p), + (o[4] = c ? da(o[3], ba) : u[4])), + (p = u[5]) && + ((c = o[5]), + (o[5] = c ? fn(c, p, u[6]) : p), + (o[6] = c ? da(o[5], ba) : u[6])), + (p = u[7]) && (o[7] = p), + 128 & A && (o[8] = null == o[8] ? u[8] : x(o[8], u[8])), + null == o[9] && (o[9] = u[9]), + (o[0] = u[0]), + (o[1] = h))), + (t = w[0]), + (e = w[1]), + (n = w[2]), + (r = w[3]), + (i = w[4]), + !(s = w[9] = w[9] === Oo ? (l ? 0 : t.length) : C(w[9] - b, 0)) && + 24 & e && + (e &= -25), + (d = + e && 1 != e + ? 8 == e || 16 == e + ? Cn(t, e, s) + : (32 != e && 33 != e) || i.length + ? Mn.apply(Oo, w) + : Qn(t, e, n, r) + : ((g = n), + (m = 1 & e), + (v = Bn((f = t))), + function t() { + return (this && this !== oa && this instanceof t ? v : f).apply( + m ? g : this, + arguments, + ); + })), + mr((y ? ze : dr)(d, w), t, e) + ); + } + function Yn(t, e, n, r) { + return t === Oo || (L(t, j[n]) && !U.call(r, n)) ? e : t; + } + function On(t, e, n, r, i, o) { + return w(t) && w(e) && (o.set(e, t), Qe(t, e, Oo, On, o), o.delete(e)), t; + } + function Gn(t) { + return Ii(t) ? Oo : t; + } + function zn(t, e, n, r, i, o) { + var a = 1 & n, + s = t.length, + l = e.length; + if (s != l && !(a && s < l)) return !1; + var l = o.get(t), + u = o.get(e); + if (l && u) return l == e && u == t; + var c = -1, + A = !0, + h = 2 & n ? new Gt() : Oo; + for (o.set(t, e), o.set(e, t); ++c < s; ) { + var p, + d = t[c], + f = e[c]; + if ((p = r ? (a ? r(f, d, c, e, t, o) : r(d, f, c, t, e, o)) : p) !== Oo) { + if (p) continue; + A = !1; + break; + } + if (h) { + if ( + !Ns(e, function (t, e) { + return !Js(h, e) && (d === t || i(d, t, n, r, o)) && h.push(e); + }) + ) { + A = !1; + break; + } + } else if (d !== f && !i(d, f, n, r, o)) { + A = !1; + break; + } + } + return o.delete(t), o.delete(e), A; + } + function Hn(t) { + return gr(Ar(t, Oo, Mr), t + ''); + } + function jn(t) { + return fe(t, S, $n); + } + function Vn(t) { + return fe(t, k, tr); + } + var qn = Mt + ? function (t) { + return Mt.get(t); + } + : Co; + function Wn(t) { + for (var e = t.name + '', n = Dt[e], r = U.call(Dt, e) ? n.length : 0; r--; ) { + var i = n[r], + o = i.func; + if (null == o || o == t) return i.name; + } + return e; + } + function Jn(t) { + return (U.call(d, 'placeholder') ? d : t).placeholder; + } + function A() { + var t = (t = d.iteratee || yo) === yo ? xe : t; + return arguments.length ? t(arguments[0], arguments[1]) : t; + } + function Kn(t, e) { + var n, + r, + t = t.__data__; + return ( + 'string' == (r = typeof (n = e)) || + 'number' == r || + 'symbol' == r || + 'boolean' == r + ? '__proto__' !== n + : null === n + ) + ? t['string' == typeof e ? 'string' : 'hash'] + : t.map; + } + function Zn(t) { + for (var e = S(t), n = e.length; n--; ) { + var r = e[n], + i = t[r]; + e[n] = [r, i, ur(i)]; + } + return e; + } + function Xn(t, e) { + e = e; + t = null == (t = t) ? Oo : t[e]; + return Ce(t) ? t : Oo; + } + var $n = ft + ? function (e) { + return null == e + ? [] + : ((e = f(e)), + la(ft(e), function (t) { + return it.call(e, t); + })); + } + : Fo, + tr = ft + ? function (t) { + for (var e = []; t; ) ca(e, $n(t)), (t = nt(t)); + return e; + } + : Fo, + P = n; + function er(t, e, n) { + for (var r = -1, i = (e = an(e, t)).length, o = !1; ++r < i; ) { + var a = Er(e[r]); + if (!(o = null != t && n(t, a))) break; + t = t[a]; + } + return o || ++r != i + ? o + : !!(i = null == t ? 0 : t.length) && Bi(i) && ir(a, i) && (Y(t) || mi(t)); + } + function nr(t) { + return 'function' != typeof t.constructor || lr(t) ? {} : Ut(nt(t)); + } + function rr(t) { + return Y(t) || mi(t) || !!(at && t && t[at]); + } + function ir(t, e) { + var n = typeof t; + return ( + !!(e = null == e ? zo : e) && + ('number' == n || ('symbol' != n && As.test(t))) && + -1 < t && + t % 1 == 0 && + t < e + ); + } + function h(t, e, n) { + var r; + if (w(n)) + return ( + (r = typeof e), + ('number' == r ? c(n) && ir(e, n.length) : 'string' == r && e in n) && + L(n[e], t) + ); + } + function or(t, e) { + var n; + if (!Y(t)) + return ( + (n = typeof t), + 'number' == n || + 'symbol' == n || + 'boolean' == n || + null == t || + b(t) || + Wa.test(t) || + !qa.test(t) || + (null != e && t in f(e)) + ); + } + function ar(t) { + var e = Wn(t), + n = d[e]; + if ('function' == typeof n && e in m.prototype) { + if (t === n) return 1; + e = qn(n); + return e && t === e[0]; + } + } + ((o && P(new o(new ArrayBuffer(1))) != na) || + (Bt && P(new Bt()) != Wo) || + (Ct && P(Ct.resolve()) != Ia) || + (xt && P(new xt()) != Xo) || + (t && P(new t()) != ta)) && + (P = function (t) { + var e = n(t), + t = e == Ko ? t.constructor : Oo, + t = t ? Br(t) : ''; + if (t) + switch (t) { + case St: + return na; + case kt: + return Wo; + case Ft: + return Ia; + case Qt: + return Xo; + case _t: + return ta; + } + return e; + }); + var sr = V ? wi : Qo; + function lr(t) { + var e = t && t.constructor; + return t === (('function' == typeof e && e.prototype) || j); + } + function ur(t) { + return t == t && !w(t); + } + function cr(e, n) { + return function (t) { + return null != t && t[e] === n && (n !== Oo || e in f(t)); + }; + } + function Ar(o, a, s) { + return ( + (a = C(a === Oo ? o.length - 1 : a, 0)), + function () { + for (var t = arguments, e = -1, n = C(t.length - a, 0), r = E(n); ++e < n; ) + r[e] = t[a + e]; + for (var e = -1, i = E(a + 1); ++e < a; ) i[e] = t[e]; + return (i[a] = s(r)), aa(o, this, i); + } + ); + } + function hr(t, e) { + return e.length < 2 ? t : de(t, s(e, 0, -1)); + } + function pr(t, e) { + if (('constructor' !== e || 'function' != typeof t[e]) && '__proto__' != e) + return t[e]; + } + var dr = vr(ze), + fr = + ht || + function (t, e) { + return oa.setTimeout(t, e); + }, + gr = vr(e); + function mr(t, e, n) { + var r, + i, + e = e + ''; + return gr( + t, + (function (t, e) { + var n = e.length; + if (!n) return t; + var r = n - 1; + return ( + (e[r] = (1 < n ? '& ' : '') + e[r]), + (e = e.join(2 < n ? ', ' : ' ')), + t.replace($a, '{\n/* [wrapped with ' + e + '] */\n') + ); + })( + e, + ((r = (t = (t = e).match(ts)) ? t[1].split(es) : []), + (i = n), + sa(wa, function (t) { + var e = '_.' + t[0]; + i & t[1] && !_s(r, e) && r.push(e); + }), + r.sort()), + ), + ); + } + function vr(n) { + var r = 0, + i = 0; + return function () { + var t = bt(), + e = 16 - (t - i); + if (((i = t), 0 < e)) { + if (800 <= ++r) return arguments[0]; + } else r = 0; + return n.apply(Oo, arguments); + }; + } + function br(t, e) { + var n = -1, + r = t.length, + i = r - 1; + for (e = e === Oo ? r : e; ++n < e; ) { + var o = Pe(n, i), + a = t[o]; + (t[o] = t[n]), (t[n] = a); + } + return (t.length = e), t; + } + yr = (ct = ci( + (ct = function (t) { + var i = []; + return ( + 46 === t.charCodeAt(0) && i.push(''), + t.replace(Ja, function (t, e, n, r) { + i.push(n ? r.replace(is, '$1') : e || t); + }), + i + ); + }), + function (t) { + return 500 === yr.size && yr.clear(), t; + }, + )).cache; + var yr, + wr = ct; + function Er(t) { + if ('string' == typeof t || b(t)) return t; + var e = t + ''; + return '0' == e && 1 / t == -1 / 0 ? '-0' : e; + } + function Br(t) { + if (null != t) { + try { + return q.call(t); + } catch (t) {} + try { + return t + ''; + } catch (t) {} + } + return ''; + } + function Cr(t) { + if (t instanceof m) return t.clone(); + var e = new g(t.__wrapped__, t.__chain__); + return ( + (e.__actions__ = I(t.__actions__)), + (e.__index__ = t.__index__), + (e.__values__ = t.__values__), + e + ); + } + (o = a(function (t, e) { + return y(t) ? re(t, l(e, 1, y, !0)) : []; + })), + (Ct = a(function (t, e) { + var n = r(e); + return y(n) && (n = Oo), y(t) ? re(t, l(e, 1, y, !0), A(n, 2)) : []; + })), + (t = a(function (t, e) { + var n = r(e); + return y(n) && (n = Oo), y(t) ? re(t, l(e, 1, y, !0), Oo, n) : []; + })); + function xr(t, e, n) { + var r = null == t ? 0 : t.length; + if (!r) return -1; + n = null == n ? 0 : M(n); + return n < 0 && (n = C(r + n, 0)), Ls(t, A(e, 3), n); + } + function Ir(t, e, n) { + var r = null == t ? 0 : t.length; + if (!r) return -1; + var i = r - 1; + return ( + n !== Oo && ((i = M(n)), (i = n < 0 ? C(r + i, 0) : x(i, r - 1))), + Ls(t, A(e, 3), i, !0) + ); + } + function Mr(t) { + return (null == t ? 0 : t.length) ? l(t, 1) : []; + } + function Dr(t) { + return t && t.length ? t[0] : Oo; + } + (V = a(function (t) { + var e = ua(t, rn); + return e.length && e[0] === t[0] ? be(e) : []; + })), + (ht = a(function (t) { + var e = r(t), + n = ua(t, rn); + return ( + e === r(n) ? (e = Oo) : n.pop(), + n.length && n[0] === t[0] ? be(n, A(e, 2)) : [] + ); + })), + (e = a(function (t) { + var e = r(t), + n = ua(t, rn); + return ( + (e = 'function' == typeof e ? e : Oo) && n.pop(), + n.length && n[0] === t[0] ? be(n, Oo, e) : [] + ); + })); + function r(t) { + var e = null == t ? 0 : t.length; + return e ? t[e - 1] : Oo; + } + ct = a(Sr); + function Sr(t, e) { + return t && t.length && e && e.length ? Ue(t, e) : t; + } + var kr = Hn(function (t, e) { + var n = null == t ? 0 : t.length, + r = $t(t, e); + return ( + Ne( + t, + ua(e, function (t) { + return ir(t, n) ? +t : t; + }).sort(pn), + ), + r + ); + }); + function Fr(t) { + return null == t ? t : Et.call(t); + } + var Qr = a(function (t) { + return Ke(l(t, 1, y, !0)); + }), + _r = a(function (t) { + var e = r(t); + return y(e) && (e = Oo), Ke(l(t, 1, y, !0), A(e, 2)); + }), + Tr = a(function (t) { + var e = 'function' == typeof (e = r(t)) ? e : Oo; + return Ke(l(t, 1, y, !0), Oo, e); + }); + function Rr(e) { + if (!e || !e.length) return []; + var n = 0; + return ( + (e = la(e, function (t) { + return y(t) && ((n = C(t.length, n)), 1); + })), + Vs(n, function (t) { + return ua(e, zs(t)); + }) + ); + } + function Ur(t, e) { + if (!t || !t.length) return []; + t = Rr(t); + return null == e + ? t + : ua(t, function (t) { + return aa(e, Oo, t); + }); + } + var Nr = a(function (t, e) { + return y(t) ? re(t, e) : []; + }), + Pr = a(function (t) { + return en(la(t, y)); + }), + Lr = a(function (t) { + var e = r(t); + return y(e) && (e = Oo), en(la(t, y), A(e, 2)); + }), + Yr = a(function (t) { + var e = 'function' == typeof (e = r(t)) ? e : Oo; + return en(la(t, y), Oo, e); + }), + Or = a(Rr); + var Gr = a(function (t) { + var e = t.length, + e = 'function' == typeof (e = 1 < e ? t[e - 1] : Oo) ? (t.pop(), e) : Oo; + return Ur(t, e); + }); + function zr(t) { + t = d(t); + return (t.__chain__ = !0), t; + } + function Hr(t, e) { + return e(t); + } + var jr = Hn(function (e) { + function t(t) { + return $t(t, e); + } + var n = e.length, + r = n ? e[0] : 0, + i = this.__wrapped__; + return !(1 < n || this.__actions__.length) && i instanceof m && ir(r) + ? ((i = i.slice(r, +r + (n ? 1 : 0))).__actions__.push({ + func: Hr, + args: [t], + thisArg: Oo, + }), + new g(i, this.__chain__).thru(function (t) { + return n && !t.length && t.push(Oo), t; + })) + : this.thru(t); + }); + var Vr = mn(function (t, e, n) { + U.call(t, n) ? ++t[n] : Xt(t, n, 1); + }); + var qr = xn(xr), + Wr = xn(Ir); + function Jr(t, e) { + return (Y(t) ? sa : ie)(t, A(e, 3)); + } + function Kr(t, e) { + return (Y(t) ? Fs : oe)(t, A(e, 3)); + } + var Zr = mn(function (t, e, n) { + U.call(t, n) ? t[n].push(e) : Xt(t, n, [e]); + }); + var Xr = a(function (t, e, n) { + var r = -1, + i = 'function' == typeof e, + o = c(t) ? E(t.length) : []; + return ( + ie(t, function (t) { + o[++r] = i ? aa(e, t, n) : ye(t, e, n); + }), + o + ); + }), + $r = mn(function (t, e, n) { + Xt(t, n, e); + }); + function ti(t, e) { + return (Y(t) ? ua : Se)(t, A(e, 3)); + } + var ei = mn( + function (t, e, n) { + t[n ? 0 : 1].push(e); + }, + function () { + return [[], []]; + }, + ); + var ni = a(function (t, e) { + if (null == t) return []; + var n = e.length; + return ( + 1 < n && h(t, e[0], e[1]) + ? (e = []) + : 2 < n && h(e[0], e[1], e[2]) && (e = [e[0]]), + Te(t, l(e, 1), []) + ); + }), + ri = + At || + function () { + return oa.Date.now(); + }; + function ii(t, e, n) { + return ( + (e = n ? Oo : e), + (e = t && null == e ? t.length : e), + Ln(t, 128, Oo, Oo, Oo, Oo, e) + ); + } + function oi(t, e) { + var n; + if ('function' != typeof e) throw new B(Go); + return ( + (t = M(t)), + function () { + return 0 < --t && (n = e.apply(this, arguments)), t <= 1 && (e = Oo), n; + } + ); + } + var ai = a(function (t, e, n) { + var r, + i = 1; + return n.length && ((r = da(n, Jn(ai))), (i |= 32)), Ln(t, i, e, n, r); + }), + si = a(function (t, e, n) { + var r, + i = 3; + return n.length && ((r = da(n, Jn(si))), (i |= 32)), Ln(e, i, t, n, r); + }); + function li(r, n, t) { + var i, + o, + a, + s, + l, + u, + c = 0, + A = !1, + h = !1, + e = !0; + if ('function' != typeof r) throw new B(Go); + function p(t) { + var e = i, + n = o; + return (i = o = Oo), (c = t), (s = r.apply(n, e)); + } + function d(t) { + var e = t - u; + return u === Oo || n <= e || e < 0 || (h && a <= t - c); + } + function f() { + var t, + e = ri(); + if (d(e)) return g(e); + l = fr(f, ((t = n - ((e = e) - u)), h ? x(t, a - (e - c)) : t)); + } + function g(t) { + return (l = Oo), e && i ? p(t) : ((i = o = Oo), s); + } + function m() { + var t = ri(), + e = d(t); + if (((i = arguments), (o = this), (u = t), e)) { + if (l === Oo) return (c = t = u), (l = fr(f, n)), A ? p(t) : s; + if (h) return un(l), (l = fr(f, n)), p(u); + } + return l === Oo && (l = fr(f, n)), s; + } + return ( + (n = D(n) || 0), + w(t) && + ((A = !!t.leading), + (h = 'maxWait' in t), + (a = h ? C(D(t.maxWait) || 0, n) : a), + (e = 'trailing' in t ? !!t.trailing : e)), + (m.cancel = function () { + l !== Oo && un(l), (c = 0), (i = u = o = l = Oo); + }), + (m.flush = function () { + return l === Oo ? s : g(ri()); + }), + m + ); + } + var At = a(function (t, e) { + return ne(t, 1, e); + }), + ui = a(function (t, e, n) { + return ne(t, D(e) || 0, n); + }); + function ci(r, i) { + if ('function' != typeof r || (null != i && 'function' != typeof i)) + throw new B(Go); + function o() { + var t = arguments, + e = i ? i.apply(this, t) : t[0], + n = o.cache; + return n.has(e) + ? n.get(e) + : ((t = r.apply(this, t)), (o.cache = n.set(e, t) || n), t); + } + return (o.cache = new (ci.Cache || Ot)()), o; + } + function Ai(e) { + if ('function' != typeof e) throw new B(Go); + return function () { + var t = arguments; + switch (t.length) { + case 0: + return !e.call(this); + case 1: + return !e.call(this, t[0]); + case 2: + return !e.call(this, t[0], t[1]); + case 3: + return !e.call(this, t[0], t[1], t[2]); + } + return !e.apply(this, t); + }; + } + ci.Cache = Ot; + var sn = sn(function (r, i) { + var o = (i = + 1 == i.length && Y(i[0]) ? ua(i[0], ha(A())) : ua(l(i, 1), ha(A()))).length; + return a(function (t) { + for (var e = -1, n = x(t.length, o); ++e < n; ) + t[e] = i[e].call(this, t[e]); + return aa(r, this, t); + }); + }), + hi = a(function (t, e) { + var n = da(e, Jn(hi)); + return Ln(t, 32, Oo, e, n); + }), + pi = a(function (t, e) { + var n = da(e, Jn(pi)); + return Ln(t, 64, Oo, e, n); + }), + di = Hn(function (t, e) { + return Ln(t, 256, Oo, Oo, Oo, e); + }); + function L(t, e) { + return t === e || (t != t && e != e); + } + var fi = Tn(ge), + gi = Tn(function (t, e) { + return e <= t; + }), + mi = we( + (function () { + return arguments; + })(), + ) + ? we + : function (t) { + return O(t) && U.call(t, 'callee') && !it.call(t, 'callee'); + }, + Y = E.isArray, + vi = Cs + ? ha(Cs) + : function (t) { + return O(t) && n(t) == ea; + }; + function c(t) { + return null != t && Bi(t.length) && !wi(t); + } + function y(t) { + return O(t) && c(t); + } + var bi = H || Qo, + H = xs + ? ha(xs) + : function (t) { + return O(t) && n(t) == qo; + }; + function yi(t) { + if (!O(t)) return !1; + var e = n(t); + return ( + e == Ba || + '[object DOMException]' == e || + ('string' == typeof t.message && 'string' == typeof t.name && !Ii(t)) + ); + } + function wi(t) { + if (!w(t)) return !1; + t = n(t); + return ( + t == Ca || t == xa || '[object AsyncFunction]' == t || '[object Proxy]' == t + ); + } + function Ei(t) { + return 'number' == typeof t && t == M(t); + } + function Bi(t) { + return 'number' == typeof t && -1 < t && t % 1 == 0 && t <= zo; + } + function w(t) { + var e = typeof t; + return null != t && ('object' == e || 'function' == e); + } + function O(t) { + return null != t && 'object' == typeof t; + } + var Ci = Is + ? ha(Is) + : function (t) { + return O(t) && P(t) == Wo; + }; + function xi(t) { + return 'number' == typeof t || (O(t) && n(t) == Jo); + } + function Ii(t) { + if (!O(t) || n(t) != Ko) return !1; + t = nt(t); + if (null === t) return !0; + t = U.call(t, 'constructor') && t.constructor; + return 'function' == typeof t && t instanceof t && q.call(t) == Z; + } + var Mi = Ms + ? ha(Ms) + : function (t) { + return O(t) && n(t) == Zo; + }; + var Di = Ds + ? ha(Ds) + : function (t) { + return O(t) && P(t) == Xo; + }; + function Si(t) { + return 'string' == typeof t || (!Y(t) && O(t) && n(t) == $o); + } + function b(t) { + return 'symbol' == typeof t || (O(t) && n(t) == Ma); + } + var ki = Ss + ? ha(Ss) + : function (t) { + return O(t) && Bi(t.length) && !!ra[n(t)]; + }; + var Fi = Tn(De), + Qi = Tn(function (t, e) { + return t <= e; + }); + function _i(t) { + if (!t) return []; + if (c(t)) return (Si(t) ? ga : I)(t); + if (st && t[st]) { + for (var e, n = t[st](), r = []; !(e = n.next()).done; ) r.push(e.value); + return r; + } + var i = P(t); + return (i == Wo ? el : i == Xo ? rl : no)(t); + } + function Ti(t) { + return t + ? (t = D(t)) === 1 / 0 || t === -1 / 0 + ? 17976931348623157e292 * (t < 0 ? -1 : 1) + : t == t + ? t + : 0 + : 0 === t + ? t + : 0; + } + function M(t) { + var t = Ti(t), + e = t % 1; + return t == t ? (e ? t - e : t) : 0; + } + function Ri(t) { + return t ? te(M(t), 0, Ho) : 0; + } + function D(t) { + if ('number' == typeof t) return t; + if (b(t)) return ya; + if ( + 'string' != + typeof (t = w(t) + ? w((e = 'function' == typeof t.valueOf ? t.valueOf() : t)) + ? e + '' + : e + : t) + ) + return 0 === t ? t : +t; + t = qs(t); + var e = ls.test(t); + return e || cs.test(t) ? Es(t.slice(2), e ? 2 : 8) : ss.test(t) ? ya : +t; + } + function Ui(t) { + return gn(t, k(t)); + } + function p(t) { + return null == t ? '' : u(t); + } + var Ni = vn(function (t, e) { + if (lr(e) || c(e)) gn(e, S(e), t); + else for (var n in e) U.call(e, n) && Wt(t, n, e[n]); + }), + Pi = vn(function (t, e) { + gn(e, k(e), t); + }), + Li = vn(function (t, e, n, r) { + gn(e, k(e), t, r); + }), + Yi = vn(function (t, e, n, r) { + gn(e, S(e), t, r); + }), + Oi = Hn($t); + var Gi = a(function (t, e) { + t = f(t); + var n = -1, + r = e.length, + i = 2 < r ? e[2] : Oo; + for (i && h(e[0], e[1], i) && (r = 1); ++n < r; ) + for (var o = e[n], a = k(o), s = -1, l = a.length; ++s < l; ) { + var u = a[s], + c = t[u]; + (c === Oo || (L(c, j[u]) && !U.call(t, u))) && (t[u] = o[u]); + } + return t; + }), + zi = a(function (t) { + return t.push(Oo, On), aa(Ki, Oo, t); + }); + function Hi(t, e, n) { + t = null == t ? Oo : de(t, e); + return t === Oo ? n : t; + } + function ji(t, e) { + return null != t && er(t, e, ve); + } + var Vi = Dn(function (t, e, n) { + t[(e = null != e && 'function' != typeof e.toString ? K.call(e) : e)] = n; + }, mo(F)), + qi = Dn(function (t, e, n) { + null != e && 'function' != typeof e.toString && (e = K.call(e)), + U.call(t, e) ? t[e].push(n) : (t[e] = [n]); + }, A), + Wi = a(ye); + function S(t) { + return (c(t) ? zt : Ie)(t); + } + function k(t) { + return c(t) ? zt(t, !0) : Me(t); + } + var Ji = vn(function (t, e, n) { + Qe(t, e, n); + }), + Ki = vn(function (t, e, n, r) { + Qe(t, e, n, r); + }), + Zi = Hn(function (e, t) { + var n = {}; + if (null != e) + for ( + var r = !1, + i = + ((t = ua(t, function (t) { + return (t = an(t, e)), (r = r || 1 < t.length), t; + })), + gn(e, Vn(e), n), + r && (n = v(n, 7, Gn)), + t.length); + i--; + + ) + Ze(n, t[i]); + return n; + }); + var Xi = Hn(function (t, e) { + return null == t + ? {} + : Re((n = t), e, function (t, e) { + return ji(n, e); + }); + var n; + }); + function $i(t, n) { + if (null == t) return {}; + var e = ua(Vn(t), function (t) { + return [t]; + }); + return ( + (n = A(n)), + Re(t, e, function (t, e) { + return n(t, e[0]); + }) + ); + } + var to = Pn(S), + eo = Pn(k); + function no(t) { + return null == t ? [] : Ws(t, S(t)); + } + var ro = En(function (t, e, n) { + return (e = e.toLowerCase()), t + (n ? io(e) : e); + }); + function io(t) { + return ho(p(t).toLowerCase()); + } + function oo(t) { + return (t = p(t)) && t.replace(hs, Xs).replace(gs, ''); + } + var ao = En(function (t, e, n) { + return t + (n ? '-' : '') + e.toLowerCase(); + }), + so = En(function (t, e, n) { + return t + (n ? ' ' : '') + e.toLowerCase(); + }), + lo = wn('toLowerCase'); + var uo = En(function (t, e, n) { + return t + (n ? '_' : '') + e.toLowerCase(); + }); + var co = En(function (t, e, n) { + return t + (n ? ' ' : '') + ho(e); + }); + var Ao = En(function (t, e, n) { + return t + (n ? ' ' : '') + e.toUpperCase(); + }), + ho = wn('toUpperCase'); + function po(t, e, n) { + return ( + (t = p(t)), + (e = n ? Oo : e) === Oo + ? ((n = t), vs.test(n) ? t.match(ms) || [] : t.match(ns) || []) + : t.match(e) || [] + ); + } + var fo = a(function (t, e) { + try { + return aa(t, Oo, e); + } catch (t) { + return yi(t) ? t : new Q(t); + } + }), + go = Hn(function (e, t) { + return ( + sa(t, function (t) { + (t = Er(t)), Xt(e, t, ai(e[t], e)); + }), + e + ); + }); + function mo(t) { + return function () { + return t; + }; + } + var vo = In(), + bo = In(!0); + function F(t) { + return t; + } + function yo(t) { + return xe('function' == typeof t ? t : v(t, 1)); + } + var wo = a(function (e, n) { + return function (t) { + return ye(t, e, n); + }; + }), + Eo = a(function (e, n) { + return function (t) { + return ye(e, t, n); + }; + }); + function Bo(r, e, t) { + var n = S(e), + i = pe(e, n), + o = + (null != t || + (w(e) && (i.length || !n.length)) || + ((t = e), (e = r), (r = this), (i = pe(e, S(e)))), + !(w(t) && 'chain' in t && !t.chain)), + a = wi(r); + return ( + sa(i, function (t) { + var n = e[t]; + (r[t] = n), + a && + (r.prototype[t] = function () { + var t, + e = this.__chain__; + return o || e + ? (((t = r(this.__wrapped__)).__actions__ = I( + this.__actions__, + )).push({ func: n, args: arguments, thisArg: r }), + (t.__chain__ = e), + t) + : n.apply(r, ca([this.value()], arguments)); + }); + }), + r + ); + } + function Co() {} + var xo = kn(ua), + Io = kn(Qs), + Mo = kn(Ns); + function Do(t) { + return or(t) + ? zs(Er(t)) + : ((e = t), + function (t) { + return de(t, e); + }); + var e; + } + var So = _n(), + ko = _n(!0); + function Fo() { + return []; + } + function Qo() { + return !1; + } + var _o = Sn(function (t, e) { + return t + e; + }, 0), + To = Un('ceil'), + Ro = Sn(function (t, e) { + return t / e; + }, 1), + Uo = Un('floor'); + var No, + Po = Sn(function (t, e) { + return t * e; + }, 1), + Lo = Un('round'), + Yo = Sn(function (t, e) { + return t - e; + }, 0); + return ( + (d.after = function (t, e) { + if ('function' != typeof e) throw new B(Go); + return ( + (t = M(t)), + function () { + if (--t < 1) return e.apply(this, arguments); + } + ); + }), + (d.ary = ii), + (d.assign = Ni), + (d.assignIn = Pi), + (d.assignInWith = Li), + (d.assignWith = Yi), + (d.at = Oi), + (d.before = oi), + (d.bind = ai), + (d.bindAll = go), + (d.bindKey = si), + (d.castArray = function () { + if (!arguments.length) return []; + var t = arguments[0]; + return Y(t) ? t : [t]; + }), + (d.chain = zr), + (d.chunk = function (t, e, n) { + e = (n ? h(t, e, n) : e === Oo) ? 1 : C(M(e), 0); + var r = null == t ? 0 : t.length; + if (!r || e < 1) return []; + for (var i = 0, o = 0, a = E(pt(r / e)); i < r; ) a[o++] = s(t, i, (i += e)); + return a; + }), + (d.compact = function (t) { + for (var e = -1, n = null == t ? 0 : t.length, r = 0, i = []; ++e < n; ) { + var o = t[e]; + o && (i[r++] = o); + } + return i; + }), + (d.concat = function () { + var t = arguments.length; + if (!t) return []; + for (var e = E(t - 1), n = arguments[0], r = t; r--; ) + e[r - 1] = arguments[r]; + return ca(Y(n) ? I(n) : [n], l(e, 1)); + }), + (d.cond = function (r) { + var i = null == r ? 0 : r.length, + e = A(); + return ( + (r = i + ? ua(r, function (t) { + if ('function' != typeof t[1]) throw new B(Go); + return [e(t[0]), t[1]]; + }) + : []), + a(function (t) { + for (var e = -1; ++e < i; ) { + var n = r[e]; + if (aa(n[0], this, t)) return aa(n[1], this, t); + } + }) + ); + }), + (d.conforms = function (t) { + return ( + (e = v(t, 1)), + (n = S(e)), + function (t) { + return ee(t, e, n); + } + ); + var e, n; + }), + (d.constant = mo), + (d.countBy = Vr), + (d.create = function (t, e) { + return (t = Ut(t)), null == e ? t : Zt(t, e); + }), + (d.curry = function t(e, n, r) { + e = Ln(e, 8, Oo, Oo, Oo, Oo, Oo, (n = r ? Oo : n)); + return (e.placeholder = t.placeholder), e; + }), + (d.curryRight = function t(e, n, r) { + e = Ln(e, 16, Oo, Oo, Oo, Oo, Oo, (n = r ? Oo : n)); + return (e.placeholder = t.placeholder), e; + }), + (d.debounce = li), + (d.defaults = Gi), + (d.defaultsDeep = zi), + (d.defer = At), + (d.delay = ui), + (d.difference = o), + (d.differenceBy = Ct), + (d.differenceWith = t), + (d.drop = function (t, e, n) { + var r = null == t ? 0 : t.length; + return r ? s(t, (e = n || e === Oo ? 1 : M(e)) < 0 ? 0 : e, r) : []; + }), + (d.dropRight = function (t, e, n) { + var r = null == t ? 0 : t.length; + return r ? s(t, 0, (e = r - (e = n || e === Oo ? 1 : M(e))) < 0 ? 0 : e) : []; + }), + (d.dropRightWhile = function (t, e) { + return t && t.length ? $e(t, A(e, 3), !0, !0) : []; + }), + (d.dropWhile = function (t, e) { + return t && t.length ? $e(t, A(e, 3), !0) : []; + }), + (d.fill = function (t, e, n, r) { + if (!(l = null == t ? 0 : t.length)) return []; + n && 'number' != typeof n && h(t, e, n) && ((n = 0), (r = l)); + var i = t, + o = e, + a = n, + s = r, + l = i.length; + for ( + (a = M(a)) < 0 && (a = l < -a ? 0 : l + a), + (s = s === Oo || l < s ? l : M(s)) < 0 && (s += l), + s = s < a ? 0 : Ri(s); + a < s; + + ) + i[a++] = o; + return i; + }), + (d.filter = function (t, e) { + return (Y(t) ? la : le)(t, A(e, 3)); + }), + (d.flatMap = function (t, e) { + return l(ti(t, e), 1); + }), + (d.flatMapDeep = function (t, e) { + return l(ti(t, e), 1 / 0); + }), + (d.flatMapDepth = function (t, e, n) { + return (n = n === Oo ? 1 : M(n)), l(ti(t, e), n); + }), + (d.flatten = Mr), + (d.flattenDeep = function (t) { + return (null == t ? 0 : t.length) ? l(t, 1 / 0) : []; + }), + (d.flattenDepth = function (t, e) { + return (null == t ? 0 : t.length) ? l(t, (e = e === Oo ? 1 : M(e))) : []; + }), + (d.flip = function (t) { + return Ln(t, 512); + }), + (d.flow = vo), + (d.flowRight = bo), + (d.fromPairs = function (t) { + for (var e = -1, n = null == t ? 0 : t.length, r = {}; ++e < n; ) { + var i = t[e]; + r[i[0]] = i[1]; + } + return r; + }), + (d.functions = function (t) { + return null == t ? [] : pe(t, S(t)); + }), + (d.functionsIn = function (t) { + return null == t ? [] : pe(t, k(t)); + }), + (d.groupBy = Zr), + (d.initial = function (t) { + return (null == t ? 0 : t.length) ? s(t, 0, -1) : []; + }), + (d.intersection = V), + (d.intersectionBy = ht), + (d.intersectionWith = e), + (d.invert = Vi), + (d.invertBy = qi), + (d.invokeMap = Xr), + (d.iteratee = yo), + (d.keyBy = $r), + (d.keys = S), + (d.keysIn = k), + (d.map = ti), + (d.mapKeys = function (t, r) { + var i = {}; + return ( + (r = A(r, 3)), + Ae(t, function (t, e, n) { + Xt(i, r(t, e, n), t); + }), + i + ); + }), + (d.mapValues = function (t, r) { + var i = {}; + return ( + (r = A(r, 3)), + Ae(t, function (t, e, n) { + Xt(i, e, r(t, e, n)); + }), + i + ); + }), + (d.matches = function (t) { + return ke(v(t, 1)); + }), + (d.matchesProperty = function (t, e) { + return Fe(t, v(e, 1)); + }), + (d.memoize = ci), + (d.merge = Ji), + (d.mergeWith = Ki), + (d.method = wo), + (d.methodOf = Eo), + (d.mixin = Bo), + (d.negate = Ai), + (d.nthArg = function (e) { + return ( + (e = M(e)), + a(function (t) { + return _e(t, e); + }) + ); + }), + (d.omit = Zi), + (d.omitBy = function (t, e) { + return $i(t, Ai(A(e))); + }), + (d.once = function (t) { + return oi(2, t); + }), + (d.orderBy = function (t, e, n, r) { + return null == t + ? [] + : Te( + t, + (e = Y(e) ? e : null == e ? [] : [e]), + (n = Y((n = r ? Oo : n)) ? n : null == n ? [] : [n]), + ); + }), + (d.over = xo), + (d.overArgs = sn), + (d.overEvery = Io), + (d.overSome = Mo), + (d.partial = hi), + (d.partialRight = pi), + (d.partition = ei), + (d.pick = Xi), + (d.pickBy = $i), + (d.property = Do), + (d.propertyOf = function (e) { + return function (t) { + return null == e ? Oo : de(e, t); + }; + }), + (d.pull = ct), + (d.pullAll = Sr), + (d.pullAllBy = function (t, e, n) { + return t && t.length && e && e.length ? Ue(t, e, A(n, 2)) : t; + }), + (d.pullAllWith = function (t, e, n) { + return t && t.length && e && e.length ? Ue(t, e, Oo, n) : t; + }), + (d.pullAt = kr), + (d.range = So), + (d.rangeRight = ko), + (d.rearg = di), + (d.reject = function (t, e) { + return (Y(t) ? la : le)(t, Ai(A(e, 3))); + }), + (d.remove = function (t, e) { + var n = []; + if (t && t.length) { + var r = -1, + i = [], + o = t.length; + for (e = A(e, 3); ++r < o; ) { + var a = t[r]; + e(a, r, t) && (n.push(a), i.push(r)); + } + Ne(t, i); + } + return n; + }), + (d.rest = function (t, e) { + if ('function' != typeof t) throw new B(Go); + return a(t, (e = e === Oo ? e : M(e))); + }), + (d.reverse = Fr), + (d.sampleSize = function (t, e, n) { + return (e = (n ? h(t, e, n) : e === Oo) ? 1 : M(e)), (Y(t) ? jt : Oe)(t, e); + }), + (d.set = function (t, e, n) { + return null == t ? t : Ge(t, e, n); + }), + (d.setWith = function (t, e, n, r) { + return (r = 'function' == typeof r ? r : Oo), null == t ? t : Ge(t, e, n, r); + }), + (d.shuffle = function (t) { + return (Y(t) ? Vt : He)(t); + }), + (d.slice = function (t, e, n) { + var r = null == t ? 0 : t.length; + return r + ? ((n = + n && 'number' != typeof n && h(t, e, n) + ? ((e = 0), r) + : ((e = null == e ? 0 : M(e)), n === Oo ? r : M(n))), + s(t, e, n)) + : []; + }), + (d.sortBy = ni), + (d.sortedUniq = function (t) { + return t && t.length ? We(t) : []; + }), + (d.sortedUniqBy = function (t, e) { + return t && t.length ? We(t, A(e, 2)) : []; + }), + (d.split = function (t, e, n) { + return ( + n && 'number' != typeof n && h(t, e, n) && (e = n = Oo), + (n = n === Oo ? Ho : n >>> 0) + ? (t = p(t)) && + ('string' == typeof e || (null != e && !Mi(e))) && + !(e = u(e)) && + pa(t) + ? ln(ga(t), 0, n) + : t.split(e, n) + : [] + ); + }), + (d.spread = function (n, r) { + if ('function' != typeof n) throw new B(Go); + return ( + (r = null == r ? 0 : C(M(r), 0)), + a(function (t) { + var e = t[r], + t = ln(t, 0, r); + return e && ca(t, e), aa(n, this, t); + }) + ); + }), + (d.tail = function (t) { + var e = null == t ? 0 : t.length; + return e ? s(t, 1, e) : []; + }), + (d.take = function (t, e, n) { + return t && t.length + ? s(t, 0, (e = n || e === Oo ? 1 : M(e)) < 0 ? 0 : e) + : []; + }), + (d.takeRight = function (t, e, n) { + var r = null == t ? 0 : t.length; + return r ? s(t, (e = r - (e = n || e === Oo ? 1 : M(e))) < 0 ? 0 : e, r) : []; + }), + (d.takeRightWhile = function (t, e) { + return t && t.length ? $e(t, A(e, 3), !1, !0) : []; + }), + (d.takeWhile = function (t, e) { + return t && t.length ? $e(t, A(e, 3)) : []; + }), + (d.tap = function (t, e) { + return e(t), t; + }), + (d.throttle = function (t, e, n) { + var r = !0, + i = !0; + if ('function' != typeof t) throw new B(Go); + return ( + w(n) && + ((r = 'leading' in n ? !!n.leading : r), + (i = 'trailing' in n ? !!n.trailing : i)), + li(t, e, { leading: r, maxWait: e, trailing: i }) + ); + }), + (d.thru = Hr), + (d.toArray = _i), + (d.toPairs = to), + (d.toPairsIn = eo), + (d.toPath = function (t) { + return Y(t) ? ua(t, Er) : b(t) ? [t] : I(wr(p(t))); + }), + (d.toPlainObject = Ui), + (d.transform = function (t, r, i) { + var e, + n = Y(t), + o = n || bi(t) || ki(t); + return ( + (r = A(r, 4)), + null == i && + ((e = t && t.constructor), + (i = o ? (n ? new e() : []) : w(t) && wi(e) ? Ut(nt(t)) : {})), + (o ? sa : Ae)(t, function (t, e, n) { + return r(i, t, e, n); + }), + i + ); + }), + (d.unary = function (t) { + return ii(t, 1); + }), + (d.union = Qr), + (d.unionBy = _r), + (d.unionWith = Tr), + (d.uniq = function (t) { + return t && t.length ? Ke(t) : []; + }), + (d.uniqBy = function (t, e) { + return t && t.length ? Ke(t, A(e, 2)) : []; + }), + (d.uniqWith = function (t, e) { + return ( + (e = 'function' == typeof e ? e : Oo), t && t.length ? Ke(t, Oo, e) : [] + ); + }), + (d.unset = function (t, e) { + return null == t || Ze(t, e); + }), + (d.unzip = Rr), + (d.unzipWith = Ur), + (d.update = function (t, e, n) { + return null == t ? t : Xe(t, e, on(n)); + }), + (d.updateWith = function (t, e, n, r) { + return ( + (r = 'function' == typeof r ? r : Oo), null == t ? t : Xe(t, e, on(n), r) + ); + }), + (d.values = no), + (d.valuesIn = function (t) { + return null == t ? [] : Ws(t, k(t)); + }), + (d.without = Nr), + (d.words = po), + (d.wrap = function (t, e) { + return hi(on(e), t); + }), + (d.xor = Pr), + (d.xorBy = Lr), + (d.xorWith = Yr), + (d.zip = Or), + (d.zipObject = function (t, e) { + return nn(t || [], e || [], Wt); + }), + (d.zipObjectDeep = function (t, e) { + return nn(t || [], e || [], Ge); + }), + (d.zipWith = Gr), + (d.entries = to), + (d.entriesIn = eo), + (d.extend = Pi), + (d.extendWith = Li), + Bo(d, d), + (d.add = _o), + (d.attempt = fo), + (d.camelCase = ro), + (d.capitalize = io), + (d.ceil = To), + (d.clamp = function (t, e, n) { + return ( + n === Oo && ((n = e), (e = Oo)), + n !== Oo && (n = (n = D(n)) == n ? n : 0), + e !== Oo && (e = (e = D(e)) == e ? e : 0), + te(D(t), e, n) + ); + }), + (d.clone = function (t) { + return v(t, 4); + }), + (d.cloneDeep = function (t) { + return v(t, 5); + }), + (d.cloneDeepWith = function (t, e) { + return v(t, 5, (e = 'function' == typeof e ? e : Oo)); + }), + (d.cloneWith = function (t, e) { + return v(t, 4, (e = 'function' == typeof e ? e : Oo)); + }), + (d.conformsTo = function (t, e) { + return null == e || ee(t, e, S(e)); + }), + (d.deburr = oo), + (d.defaultTo = function (t, e) { + return null == t || t != t ? e : t; + }), + (d.divide = Ro), + (d.endsWith = function (t, e, n) { + (t = p(t)), (e = u(e)); + var r = t.length, + r = (n = n === Oo ? r : te(M(n), 0, r)); + return 0 <= (n -= e.length) && t.slice(n, r) == e; + }), + (d.eq = L), + (d.escape = function (t) { + return (t = p(t)) && za.test(t) ? t.replace(Oa, $s) : t; + }), + (d.escapeRegExp = function (t) { + return (t = p(t)) && Za.test(t) ? t.replace(Ka, '\\$&') : t; + }), + (d.every = function (t, e, n) { + return (Y(t) ? Qs : ae)(t, A((e = n && h(t, e, n) ? Oo : e), 3)); + }), + (d.find = qr), + (d.findIndex = xr), + (d.findKey = function (t, e) { + return Ps(t, A(e, 3), Ae); + }), + (d.findLast = Wr), + (d.findLastIndex = Ir), + (d.findLastKey = function (t, e) { + return Ps(t, A(e, 3), he); + }), + (d.floor = Uo), + (d.forEach = Jr), + (d.forEachRight = Kr), + (d.forIn = function (t, e) { + return null == t ? t : ue(t, A(e, 3), k); + }), + (d.forInRight = function (t, e) { + return null == t ? t : ce(t, A(e, 3), k); + }), + (d.forOwn = function (t, e) { + return t && Ae(t, A(e, 3)); + }), + (d.forOwnRight = function (t, e) { + return t && he(t, A(e, 3)); + }), + (d.get = Hi), + (d.gt = fi), + (d.gte = gi), + (d.has = function (t, e) { + return null != t && er(t, e, me); + }), + (d.hasIn = ji), + (d.head = Dr), + (d.identity = F), + (d.includes = function (t, e, n, r) { + return ( + (t = c(t) ? t : no(t)), + (n = n && !r ? M(n) : 0), + (r = t.length), + n < 0 && (n = C(r + n, 0)), + Si(t) ? n <= r && -1 < t.indexOf(e, n) : !!r && -1 < Aa(t, e, n) + ); + }), + (d.indexOf = function (t, e, n) { + var r = null == t ? 0 : t.length; + return r + ? ((n = null == n ? 0 : M(n)), Aa(t, e, (n = n < 0 ? C(r + n, 0) : n))) + : -1; + }), + (d.inRange = function (t, e, n) { + return ( + (e = Ti(e)), + n === Oo ? ((n = e), (e = 0)) : (n = Ti(n)), + (t = t = D(t)) >= x((e = e), (n = n)) && t < C(e, n) + ); + }), + (d.invoke = Wi), + (d.isArguments = mi), + (d.isArray = Y), + (d.isArrayBuffer = vi), + (d.isArrayLike = c), + (d.isArrayLikeObject = y), + (d.isBoolean = function (t) { + return !0 === t || !1 === t || (O(t) && n(t) == Vo); + }), + (d.isBuffer = bi), + (d.isDate = H), + (d.isElement = function (t) { + return O(t) && 1 === t.nodeType && !Ii(t); + }), + (d.isEmpty = function (t) { + if (null != t) { + if ( + c(t) && + (Y(t) || + 'string' == typeof t || + 'function' == typeof t.splice || + bi(t) || + ki(t) || + mi(t)) + ) + return !t.length; + var e, + n = P(t); + if (n == Wo || n == Xo) return !t.size; + if (lr(t)) return !Ie(t).length; + for (e in t) if (U.call(t, e)) return !1; + } + return !0; + }), + (d.isEqual = function (t, e) { + return Ee(t, e); + }), + (d.isEqualWith = function (t, e, n) { + var r = (n = 'function' == typeof n ? n : Oo) ? n(t, e) : Oo; + return r === Oo ? Ee(t, e, Oo, n) : !!r; + }), + (d.isError = yi), + (d.isFinite = function (t) { + return 'number' == typeof t && gt(t); + }), + (d.isFunction = wi), + (d.isInteger = Ei), + (d.isLength = Bi), + (d.isMap = Ci), + (d.isMatch = function (t, e) { + return t === e || Be(t, e, Zn(e)); + }), + (d.isMatchWith = function (t, e, n) { + return (n = 'function' == typeof n ? n : Oo), Be(t, e, Zn(e), n); + }), + (d.isNaN = function (t) { + return xi(t) && t != +t; + }), + (d.isNative = function (t) { + if (sr(t)) + throw new Q( + 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.', + ); + return Ce(t); + }), + (d.isNil = function (t) { + return null == t; + }), + (d.isNull = function (t) { + return null === t; + }), + (d.isNumber = xi), + (d.isObject = w), + (d.isObjectLike = O), + (d.isPlainObject = Ii), + (d.isRegExp = Mi), + (d.isSafeInteger = function (t) { + return Ei(t) && -zo <= t && t <= zo; + }), + (d.isSet = Di), + (d.isString = Si), + (d.isSymbol = b), + (d.isTypedArray = ki), + (d.isUndefined = function (t) { + return t === Oo; + }), + (d.isWeakMap = function (t) { + return O(t) && P(t) == ta; + }), + (d.isWeakSet = function (t) { + return O(t) && '[object WeakSet]' == n(t); + }), + (d.join = function (t, e) { + return null == t ? '' : mt.call(t, e); + }), + (d.kebabCase = ao), + (d.last = r), + (d.lastIndexOf = function (t, e, n) { + var r = null == t ? 0 : t.length; + if (!r) return -1; + var i = r; + if ((n !== Oo && (i = (i = M(n)) < 0 ? C(r + i, 0) : x(i, r - 1)), e != e)) + return Ls(t, Os, i, !0); + for (var o = t, a = e, s = i + 1; s--; ) if (o[s] === a) return s; + return s; + }), + (d.lowerCase = so), + (d.lowerFirst = lo), + (d.lt = Fi), + (d.lte = Qi), + (d.max = function (t) { + return t && t.length ? se(t, F, ge) : Oo; + }), + (d.maxBy = function (t, e) { + return t && t.length ? se(t, A(e, 2), ge) : Oo; + }), + (d.mean = function (t) { + return Gs(t, F); + }), + (d.meanBy = function (t, e) { + return Gs(t, A(e, 2)); + }), + (d.min = function (t) { + return t && t.length ? se(t, F, De) : Oo; + }), + (d.minBy = function (t, e) { + return t && t.length ? se(t, A(e, 2), De) : Oo; + }), + (d.stubArray = Fo), + (d.stubFalse = Qo), + (d.stubObject = function () { + return {}; + }), + (d.stubString = function () { + return ''; + }), + (d.stubTrue = function () { + return !0; + }), + (d.multiply = Po), + (d.nth = function (t, e) { + return t && t.length ? _e(t, M(e)) : Oo; + }), + (d.noConflict = function () { + return oa._ === this && (oa._ = X), this; + }), + (d.noop = Co), + (d.now = ri), + (d.pad = function (t, e, n) { + t = p(t); + var r = (e = M(e)) ? fa(t) : 0; + return !e || e <= r ? t : Fn(dt((e = (e - r) / 2)), n) + t + Fn(pt(e), n); + }), + (d.padEnd = function (t, e, n) { + t = p(t); + var r = (e = M(e)) ? fa(t) : 0; + return e && r < e ? t + Fn(e - r, n) : t; + }), + (d.padStart = function (t, e, n) { + t = p(t); + var r = (e = M(e)) ? fa(t) : 0; + return e && r < e ? Fn(e - r, n) + t : t; + }), + (d.parseInt = function (t, e, n) { + return (e = n || null == e ? 0 : e && +e), yt(p(t).replace(Xa, ''), e || 0); + }), + (d.random = function (t, e, n) { + var r; + return ( + n && 'boolean' != typeof n && h(t, e, n) && (e = n = Oo), + n === Oo && + ('boolean' == typeof e + ? ((n = e), (e = Oo)) + : 'boolean' == typeof t && ((n = t), (t = Oo))), + t === Oo && e === Oo + ? ((t = 0), (e = 1)) + : ((t = Ti(t)), e === Oo ? ((e = t), (t = 0)) : (e = Ti(e))), + e < t && ((r = t), (t = e), (e = r)), + n || t % 1 || e % 1 + ? ((r = wt()), x(t + r * (e - t + ws('1e-' + ((r + '').length - 1))), e)) + : Pe(t, e) + ); + }), + (d.reduce = function (t, e, n) { + var r = Y(t) ? Rs : Hs, + i = arguments.length < 3; + return r(t, A(e, 4), n, i, ie); + }), + (d.reduceRight = function (t, e, n) { + var r = Y(t) ? Us : Hs, + i = arguments.length < 3; + return r(t, A(e, 4), n, i, oe); + }), + (d.repeat = function (t, e, n) { + return (e = (n ? h(t, e, n) : e === Oo) ? 1 : M(e)), Le(p(t), e); + }), + (d.replace = function () { + var t = arguments, + e = p(t[0]); + return t.length < 3 ? e : e.replace(t[1], t[2]); + }), + (d.result = function (t, e, n) { + var r = -1, + i = (e = an(e, t)).length; + for (i || ((i = 1), (t = Oo)); ++r < i; ) { + var o = null == t ? Oo : t[Er(e[r])]; + o === Oo && ((r = i), (o = n)), (t = wi(o) ? o.call(t) : o); + } + return t; + }), + (d.round = Lo), + (d.runInContext = i), + (d.sample = function (t) { + return (Y(t) ? Ht : Ye)(t); + }), + (d.size = function (t) { + if (null == t) return 0; + if (c(t)) return Si(t) ? fa(t) : t.length; + var e = P(t); + return e == Wo || e == Xo ? t.size : Ie(t).length; + }), + (d.snakeCase = uo), + (d.some = function (t, e, n) { + return (Y(t) ? Ns : je)(t, A((e = n && h(t, e, n) ? Oo : e), 3)); + }), + (d.sortedIndex = function (t, e) { + return Ve(t, e); + }), + (d.sortedIndexBy = function (t, e, n) { + return qe(t, e, A(n, 2)); + }), + (d.sortedIndexOf = function (t, e) { + var n = null == t ? 0 : t.length; + if (n) { + var r = Ve(t, e); + if (r < n && L(t[r], e)) return r; + } + return -1; + }), + (d.sortedLastIndex = function (t, e) { + return Ve(t, e, !0); + }), + (d.sortedLastIndexBy = function (t, e, n) { + return qe(t, e, A(n, 2), !0); + }), + (d.sortedLastIndexOf = function (t, e) { + if (null == t ? 0 : t.length) { + var n = Ve(t, e, !0) - 1; + if (L(t[n], e)) return n; + } + return -1; + }), + (d.startCase = co), + (d.startsWith = function (t, e, n) { + return ( + (t = p(t)), + (n = null == n ? 0 : te(M(n), 0, t.length)), + (e = u(e)), + t.slice(n, n + e.length) == e + ); + }), + (d.subtract = Yo), + (d.sum = function (t) { + return t && t.length ? js(t, F) : 0; + }), + (d.sumBy = function (t, e) { + return t && t.length ? js(t, A(e, 2)) : 0; + }), + (d.template = function (a, t, e) { + var s, + l, + n = d.templateSettings; + e && h(a, t, e) && (t = Oo), (a = p(a)), (t = Li({}, t, n, Yn)); + var r = S((e = Li({}, t.imports, n.imports, Yn))), + i = Ws(e, r), + u = 0, + n = t.interpolate || ps, + c = "__p += '", + e = R( + (t.escape || ps).source + + '|' + + n.source + + '|' + + (n === Va ? os : ps).source + + '|' + + (t.evaluate || ps).source + + '|$', + 'g', + ), + o = + '//# sourceURL=' + + (U.call(t, 'sourceURL') + ? (t.sourceURL + '').replace(/\s/g, ' ') + : 'lodash.templateSources[' + ++ys + ']') + + '\n'; + if ( + (a.replace(e, function (t, e, n, r, i, o) { + return ( + (n = n || r), + (c += a.slice(u, o).replace(ds, tl)), + e && ((s = !0), (c += "' +\n__e(" + e + ") +\n'")), + i && ((l = !0), (c += "';\n" + i + ";\n__p += '")), + n && (c += "' +\n((__t = (" + n + ")) == null ? '' : __t) +\n'"), + (u = o + t.length), + t + ); + }), + (c += "';\n"), + (n = U.call(t, 'variable') && t.variable)) + ) { + if (rs.test(n)) + throw new Q('Invalid `variable` option passed into `_.template`'); + } else c = 'with (obj) {\n' + c + '\n}\n'; + if ( + ((c = (l ? c.replace(Na, '') : c).replace(Pa, '$1').replace(La, '$1;')), + (c = + 'function(' + + (n || 'obj') + + ') {\n' + + (n ? '' : 'obj || (obj = {});\n') + + "var __t, __p = ''" + + (s ? ', __e = _.escape' : '') + + (l + ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" + : ';\n') + + c + + 'return __p\n}'), + ((e = fo(function () { + return _(r, o + 'return ' + c).apply(Oo, i); + })).source = c), + yi(e)) + ) + throw e; + return e; + }), + (d.times = function (t, e) { + if ((t = M(t)) < 1 || zo < t) return []; + for ( + var n = Ho, r = x(t, Ho), r = ((e = A(e)), (t -= Ho), Vs(r, e)); + ++n < t; + + ) + e(n); + return r; + }), + (d.toFinite = Ti), + (d.toInteger = M), + (d.toLength = Ri), + (d.toLower = function (t) { + return p(t).toLowerCase(); + }), + (d.toNumber = D), + (d.toSafeInteger = function (t) { + return t ? te(M(t), -zo, zo) : 0 === t ? t : 0; + }), + (d.toString = p), + (d.toUpper = function (t) { + return p(t).toUpperCase(); + }), + (d.trim = function (t, e, n) { + return (t = p(t)) && (n || e === Oo) + ? qs(t) + : t && (e = u(e)) + ? ((n = ga(t)), (t = ga(e)), ln(n, Ks(n, t), Zs(n, t) + 1).join('')) + : t; + }), + (d.trimEnd = function (t, e, n) { + return (t = p(t)) && (n || e === Oo) + ? t.slice(0, il(t) + 1) + : t && (e = u(e)) + ? ln((n = ga(t)), 0, Zs(n, ga(e)) + 1).join('') + : t; + }), + (d.trimStart = function (t, e, n) { + return (t = p(t)) && (n || e === Oo) + ? t.replace(Xa, '') + : t && (e = u(e)) + ? ln((n = ga(t)), Ks(n, ga(e))).join('') + : t; + }), + (d.truncate = function (t, e) { + var n, + r = 30, + i = '...', + e = + (w(e) && + ((n = 'separator' in e ? e.separator : n), + (r = 'length' in e ? M(e.length) : r), + (i = 'omission' in e ? u(e.omission) : i)), + (t = p(t)).length); + if ((e = pa(t) ? (o = ga(t)).length : e) <= r) return t; + if ((e = r - fa(i)) < 1) return i; + var o, + r = o ? ln(o, 0, e).join('') : t.slice(0, e); + if (n !== Oo) + if ((o && (e += r.length - e), Mi(n))) { + if (t.slice(e).search(n)) { + var a, + s = r; + for ( + (n = n.global ? n : R(n.source, p(as.exec(n)) + 'g')).lastIndex = 0; + (a = n.exec(s)); + + ) + var l = a.index; + r = r.slice(0, l === Oo ? e : l); + } + } else + t.indexOf(u(n), e) == e || + (-1 < (o = r.lastIndexOf(n)) && (r = r.slice(0, o))); + return r + i; + }), + (d.unescape = function (t) { + return (t = p(t)) && Ga.test(t) ? t.replace(Ya, ol) : t; + }), + (d.uniqueId = function (t) { + var e = ++W; + return p(t) + e; + }), + (d.upperCase = Ao), + (d.upperFirst = ho), + (d.each = Jr), + (d.eachRight = Kr), + (d.first = Dr), + Bo( + d, + ((No = {}), + Ae(d, function (t, e) { + U.call(d.prototype, e) || (No[e] = t); + }), + No), + { chain: !1 }, + ), + (d.VERSION = '4.17.21'), + sa( + ['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], + function (t) { + d[t].placeholder = d; + }, + ), + sa(['drop', 'take'], function (n, r) { + (m.prototype[n] = function (t) { + t = t === Oo ? 1 : C(M(t), 0); + var e = this.__filtered__ && !r ? new m(this) : this.clone(); + return ( + e.__filtered__ + ? (e.__takeCount__ = x(t, e.__takeCount__)) + : e.__views__.push({ + size: x(t, Ho), + type: n + (e.__dir__ < 0 ? 'Right' : ''), + }), + e + ); + }), + (m.prototype[n + 'Right'] = function (t) { + return this.reverse()[n](t).reverse(); + }); + }), + sa(['filter', 'map', 'takeWhile'], function (t, e) { + var n = e + 1, + r = 1 == n || 3 == n; + m.prototype[t] = function (t) { + var e = this.clone(); + return ( + e.__iteratees__.push({ iteratee: A(t, 3), type: n }), + (e.__filtered__ = e.__filtered__ || r), + e + ); + }; + }), + sa(['head', 'last'], function (t, e) { + var n = 'take' + (e ? 'Right' : ''); + m.prototype[t] = function () { + return this[n](1).value()[0]; + }; + }), + sa(['initial', 'tail'], function (t, e) { + var n = 'drop' + (e ? '' : 'Right'); + m.prototype[t] = function () { + return this.__filtered__ ? new m(this) : this[n](1); + }; + }), + (m.prototype.compact = function () { + return this.filter(F); + }), + (m.prototype.find = function (t) { + return this.filter(t).head(); + }), + (m.prototype.findLast = function (t) { + return this.reverse().find(t); + }), + (m.prototype.invokeMap = a(function (e, n) { + return 'function' == typeof e + ? new m(this) + : this.map(function (t) { + return ye(t, e, n); + }); + })), + (m.prototype.reject = function (t) { + return this.filter(Ai(A(t))); + }), + (m.prototype.slice = function (t, e) { + t = M(t); + var n = this; + return n.__filtered__ && (0 < t || e < 0) + ? new m(n) + : (t < 0 ? (n = n.takeRight(-t)) : t && (n = n.drop(t)), + e !== Oo ? ((e = M(e)) < 0 ? n.dropRight(-e) : n.take(e - t)) : n); + }), + (m.prototype.takeRightWhile = function (t) { + return this.reverse().takeWhile(t).reverse(); + }), + (m.prototype.toArray = function () { + return this.take(Ho); + }), + Ae(m.prototype, function (u, t) { + var c = /^(?:filter|find|map|reject)|While$/.test(t), + A = /^(?:head|last)$/.test(t), + h = d[A ? 'take' + ('last' == t ? 'Right' : '') : t], + p = A || /^find/.test(t); + h && + (d.prototype[t] = function () { + function t(t) { + return (t = h.apply(d, ca([t], r))), A && s ? t[0] : t; + } + var e, + n = this.__wrapped__, + r = A ? [1] : arguments, + i = n instanceof m, + o = r[0], + a = i || Y(n), + s = + (a && c && 'function' == typeof o && 1 != o.length && (i = a = !1), + this.__chain__), + o = !!this.__actions__.length, + l = p && !s, + i = i && !o; + return !p && a + ? ((n = i ? n : new m(this)), + (e = u.apply(n, r)).__actions__.push({ + func: Hr, + args: [t], + thisArg: Oo, + }), + new g(e, s)) + : l && i + ? u.apply(this, r) + : ((e = this.thru(t)), l ? (A ? e.value()[0] : e.value()) : e); + }); + }), + sa(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function (t) { + var n = z[t], + r = /^(?:push|sort|unshift)$/.test(t) ? 'tap' : 'thru', + i = /^(?:pop|shift)$/.test(t); + d.prototype[t] = function () { + var t, + e = arguments; + return i && !this.__chain__ + ? ((t = this.value()), n.apply(Y(t) ? t : [], e)) + : this[r](function (t) { + return n.apply(Y(t) ? t : [], e); + }); + }; + }), + Ae(m.prototype, function (t, e) { + var n, + r = d[e]; + r && + ((n = r.name + ''), + U.call(Dt, n) || (Dt[n] = []), + Dt[n].push({ name: e, func: r })); + }), + (Dt[Mn(Oo, 2).name] = [{ name: 'wrapper', func: Oo }]), + (m.prototype.clone = function () { + var t = new m(this.__wrapped__); + return ( + (t.__actions__ = I(this.__actions__)), + (t.__dir__ = this.__dir__), + (t.__filtered__ = this.__filtered__), + (t.__iteratees__ = I(this.__iteratees__)), + (t.__takeCount__ = this.__takeCount__), + (t.__views__ = I(this.__views__)), + t + ); + }), + (m.prototype.reverse = function () { + var t; + return ( + this.__filtered__ + ? (((t = new m(this)).__dir__ = -1), (t.__filtered__ = !0)) + : ((t = this.clone()).__dir__ *= -1), + t + ); + }), + (m.prototype.value = function () { + var t = this.__wrapped__.value(), + e = this.__dir__, + n = Y(t), + r = e < 0, + i = n ? t.length : 0, + o = (function (t, e, n) { + var r = -1, + i = n.length; + for (; ++r < i; ) { + var o = n[r], + a = o.size; + switch (o.type) { + case 'drop': + t += a; + break; + case 'dropRight': + e -= a; + break; + case 'take': + e = x(e, t + a); + break; + case 'takeRight': + t = C(t, e - a); + } + } + return { start: t, end: e }; + })(0, i, this.__views__), + a = o.start, + s = (o = o.end) - a, + l = r ? o : a - 1, + u = this.__iteratees__, + c = u.length, + A = 0, + h = x(s, this.__takeCount__); + if (!n || (!r && i == s && h == s)) return tn(t, this.__actions__); + var p = []; + t: for (; s-- && A < h; ) { + for (var d = -1, f = t[(l += e)]; ++d < c; ) { + var g = u[d], + m = g.iteratee, + g = g.type, + m = m(f); + if (2 == g) f = m; + else if (!m) { + if (1 == g) continue t; + break t; + } + } + p[A++] = f; + } + return p; + }), + (d.prototype.at = jr), + (d.prototype.chain = function () { + return zr(this); + }), + (d.prototype.commit = function () { + return new g(this.value(), this.__chain__); + }), + (d.prototype.next = function () { + this.__values__ === Oo && (this.__values__ = _i(this.value())); + var t = this.__index__ >= this.__values__.length; + return { done: t, value: t ? Oo : this.__values__[this.__index__++] }; + }), + (d.prototype.plant = function (t) { + for (var e, n = this; n instanceof Pt; ) + var r = Cr(n), + i = + ((r.__index__ = 0), + (r.__values__ = Oo), + e ? (i.__wrapped__ = r) : (e = r), + r), + n = n.__wrapped__; + return (i.__wrapped__ = t), e; + }), + (d.prototype.reverse = function () { + var t = this.__wrapped__; + return t instanceof m + ? ((t = t), + (t = (t = this.__actions__.length + ? new m(this) + : t).reverse()).__actions__.push({ func: Hr, args: [Fr], thisArg: Oo }), + new g(t, this.__chain__)) + : this.thru(Fr); + }), + (d.prototype.toJSON = + d.prototype.valueOf = + d.prototype.value = + function () { + return tn(this.__wrapped__, this.__actions__); + }), + (d.prototype.first = d.prototype.head), + st && + (d.prototype[st] = function () { + return this; + }), + d + ); + })(); + i ? (((i.exports = ma)._ = ma), (r._ = ma)) : (oa._ = ma); + }.call(this); + }.call(this); + }.call( + this, + 'undefined' != typeof global + ? global + : 'undefined' != typeof self + ? self + : 'undefined' != typeof window + ? window + : {}, + ); + }, + {}, + ], + 45: [ + function (t, e, n) { + !function (s) { + !function () { + 'use strict'; + void 0 === s || + !s.version || + 0 === s.version.indexOf('v0.') || + (0 === s.version.indexOf('v1.') && 0 !== s.version.indexOf('v1.8.')) + ? (e.exports = { + nextTick: function (t, e, n, r) { + if ('function' != typeof t) + throw new TypeError('"callback" argument must be a function'); + var i, + o, + a = arguments.length; + switch (a) { + case 0: + case 1: + return s.nextTick(t); + case 2: + return s.nextTick(function () { + t.call(null, e); + }); + case 3: + return s.nextTick(function () { + t.call(null, e, n); + }); + case 4: + return s.nextTick(function () { + t.call(null, e, n, r); + }); + default: + for (i = new Array(a - 1), o = 0; o < i.length; ) i[o++] = arguments[o]; + return s.nextTick(function () { + t.apply(null, i); + }); + } + }, + }) + : (e.exports = s); + }.call(this); + }.call(this, t('_process')); + }, + { _process: 46 }, + ], + 46: [ + function (t, e, n) { + var r, + i, + e = (e.exports = {}); + function o() { + throw new Error('setTimeout has not been defined'); + } + function a() { + throw new Error('clearTimeout has not been defined'); + } + try { + r = 'function' == typeof setTimeout ? setTimeout : o; + } catch (t) { + r = o; + } + try { + i = 'function' == typeof clearTimeout ? clearTimeout : a; + } catch (t) { + i = a; + } + function s(e) { + if (r === setTimeout) return setTimeout(e, 0); + if ((r === o || !r) && setTimeout) return (r = setTimeout)(e, 0); + try { + return r(e, 0); + } catch (t) { + try { + return r.call(null, e, 0); + } catch (t) { + return r.call(this, e, 0); + } + } + } + var l, + u = [], + c = !1, + A = -1; + function h() { + c && l && ((c = !1), l.length ? (u = l.concat(u)) : (A = -1), u.length && p()); + } + function p() { + if (!c) { + for (var t = s(h), e = ((c = !0), u.length); e; ) { + for (l = u, u = []; ++A < e; ) l && l[A].run(); + (A = -1), (e = u.length); + } + (l = null), + (c = !1), + !(function (e) { + if (i === clearTimeout) return clearTimeout(e); + if ((i === a || !i) && clearTimeout) return (i = clearTimeout)(e); + try { + i(e); + } catch (t) { + try { + return i.call(null, e); + } catch (t) { + return i.call(this, e); + } + } + })(t); + } + } + function d(t, e) { + (this.fun = t), (this.array = e); + } + function f() {} + (e.nextTick = function (t) { + var e = new Array(arguments.length - 1); + if (1 < arguments.length) + for (var n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; + u.push(new d(t, e)), 1 !== u.length || c || s(p); + }), + (d.prototype.run = function () { + this.fun.apply(null, this.array); + }), + (e.title = 'browser'), + (e.browser = !0), + (e.env = {}), + (e.argv = []), + (e.version = ''), + (e.versions = {}), + (e.on = f), + (e.addListener = f), + (e.once = f), + (e.off = f), + (e.removeListener = f), + (e.removeAllListeners = f), + (e.emit = f), + (e.prependListener = f), + (e.prependOnceListener = f), + (e.listeners = function (t) { + return []; + }), + (e.binding = function (t) { + throw new Error('process.binding is not supported'); + }), + (e.cwd = function () { + return '/'; + }), + (e.chdir = function (t) { + throw new Error('process.chdir is not supported'); + }), + (e.umask = function () { + return 0; + }); + }, + {}, + ], + 47: [ + function (t, D, S) { + !function (M) { + !function () { + var t = this, + e = 'object' == typeof S && S && !S.nodeType && S, + n = 'object' == typeof D && D && !D.nodeType && D, + r = 'object' == typeof M && M; + (r.global !== r && r.window !== r && r.self !== r) || (t = r); + var i, + o, + g = 2147483647, + m = 36, + v = 26, + a = 38, + s = 700, + l = /^xn--/, + u = /[^\x20-\x7E]/, + c = /[\x2E\u3002\uFF0E\uFF61]/g, + A = { + overflow: 'Overflow: input needs wider integers to process', + 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input', + }, + h = m - 1, + b = Math.floor, + y = String.fromCharCode; + function w(t) { + throw new RangeError(A[t]); + } + function p(t, e) { + for (var n = t.length, r = []; n--; ) r[n] = e(t[n]); + return r; + } + function d(t, e) { + var n = t.split('@'), + r = '', + n = + (1 < n.length && ((r = n[0] + '@'), (t = n[1])), + (t = t.replace(c, '.')).split('.')); + return r + p(n, e).join('.'); + } + function E(t) { + for (var e, n, r = [], i = 0, o = t.length; i < o; ) + 55296 <= (e = t.charCodeAt(i++)) && e <= 56319 && i < o + ? 56320 == (64512 & (n = t.charCodeAt(i++))) + ? r.push(((1023 & e) << 10) + (1023 & n) + 65536) + : (r.push(e), i--) + : r.push(e); + return r; + } + function f(t) { + return p(t, function (t) { + var e = ''; + return ( + 65535 < t && + ((e += y((((t -= 65536) >>> 10) & 1023) | 55296)), (t = 56320 | (1023 & t))), + (e += y(t)) + ); + }).join(''); + } + function B(t, e) { + return t + 22 + 75 * (t < 26) - ((0 != e) << 5); + } + function C(t, e, n) { + var r = 0; + for (t = n ? b(t / s) : t >> 1, t += b(t / e); (h * v) >> 1 < t; r += m) + t = b(t / h); + return b(r + ((h + 1) * t) / (t + a)); + } + function x(t) { + var e, + n, + r, + i, + o, + a, + s, + l = [], + u = t.length, + c = 0, + A = 128, + h = 72, + p = t.lastIndexOf('-'); + for (p < 0 && (p = 0), n = 0; n < p; ++n) + 128 <= t.charCodeAt(n) && w('not-basic'), l.push(t.charCodeAt(n)); + for (r = 0 < p ? p + 1 : 0; r < u; ) { + for ( + i = c, o = 1, a = m; + u <= r && w('invalid-input'), + (s = t.charCodeAt(r++)), + (m <= + (s = + s - 48 < 10 ? s - 22 : s - 65 < 26 ? s - 65 : s - 97 < 26 ? s - 97 : m) || + s > b((g - c) / o)) && + w('overflow'), + (c += s * o), + !(s < (s = a <= h ? 1 : h + v <= a ? v : a - h)); + a += m + ) + o > b(g / (s = m - s)) && w('overflow'), (o *= s); + (h = C(c - i, (e = l.length + 1), 0 == i)), + b(c / e) > g - A && w('overflow'), + (A += b(c / e)), + (c %= e), + l.splice(c++, 0, A); + } + return f(l); + } + function I(t) { + for ( + var e, + n, + r, + i, + o, + a, + s, + l, + u, + c, + A = [], + h = (t = E(t)).length, + p = 128, + d = 72, + f = (e = 0); + f < h; + ++f + ) + (s = t[f]) < 128 && A.push(y(s)); + for (n = r = A.length, r && A.push('-'); n < h; ) { + for (i = g, f = 0; f < h; ++f) p <= (s = t[f]) && s < i && (i = s); + for ( + i - p > b((g - e) / (l = n + 1)) && w('overflow'), + e += (i - p) * l, + p = i, + f = 0; + f < h; + ++f + ) + if (((s = t[f]) < p && ++e > g && w('overflow'), s == p)) { + for (o = e, a = m; !(o < (u = a <= d ? 1 : d + v <= a ? v : a - d)); a += m) + A.push(y(B(u + ((c = o - u) % (u = m - u)), 0))), (o = b(c / u)); + A.push(y(B(o, 0))), (d = C(e, l, n == r)), (e = 0), ++n; + } + ++e, ++p; + } + return A.join(''); + } + if ( + ((i = { + version: '1.4.1', + ucs2: { decode: E, encode: f }, + decode: x, + encode: I, + toASCII: function (t) { + return d(t, function (t) { + return u.test(t) ? 'xn--' + I(t) : t; + }); + }, + toUnicode: function (t) { + return d(t, function (t) { + return l.test(t) ? x(t.slice(4).toLowerCase()) : t; + }); + }, + }), + e && n) + ) + if (D.exports == e) n.exports = i; + else for (o in i) i.hasOwnProperty(o) && (e[o] = i[o]); + else t.punycode = i; + }.call(this); + }.call( + this, + 'undefined' != typeof global + ? global + : 'undefined' != typeof self + ? self + : 'undefined' != typeof window + ? window + : {}, + ); + }, + {}, + ], + 48: [ + function (t, e, n) { + 'use strict'; + e.exports = function (t, e, n, r) { + (e = e || '&'), (n = n || '='); + var i = {}; + if ('string' == typeof t && 0 !== t.length) { + var o = /\+/g, + e = ((t = t.split(e)), 1e3), + a = (r && 'number' == typeof r.maxKeys && (e = r.maxKeys), t.length); + 0 < e && e < a && (a = e); + for (var s = 0; s < a; ++s) { + var l, + u = t[s].replace(o, '%20'), + c = u.indexOf(n), + c = 0 <= c ? ((l = u.substr(0, c)), u.substr(c + 1)) : ((l = u), ''), + u = decodeURIComponent(l), + c = decodeURIComponent(c); + Object.prototype.hasOwnProperty.call(i, u) + ? A(i[u]) + ? i[u].push(c) + : (i[u] = [i[u], c]) + : (i[u] = c); + } + } + return i; + }; + var A = + Array.isArray || + function (t) { + return '[object Array]' === Object.prototype.toString.call(t); + }; + }, + {}, + ], + 49: [ + function (t, e, n) { + 'use strict'; + function o(t) { + switch (typeof t) { + case 'string': + return t; + case 'boolean': + return t ? 'true' : 'false'; + case 'number': + return isFinite(t) ? t : ''; + default: + return ''; + } + } + e.exports = function (n, r, i, t) { + return ( + (r = r || '&'), + (i = i || '='), + 'object' == typeof (n = null === n ? void 0 : n) + ? s(l(n), function (t) { + var e = encodeURIComponent(o(t)) + i; + return a(n[t]) + ? s(n[t], function (t) { + return e + encodeURIComponent(o(t)); + }).join(r) + : e + encodeURIComponent(o(n[t])); + }).join(r) + : t + ? encodeURIComponent(o(t)) + i + encodeURIComponent(o(n)) + : '' + ); + }; + var a = + Array.isArray || + function (t) { + return '[object Array]' === Object.prototype.toString.call(t); + }; + function s(t, e) { + if (t.map) return t.map(e); + for (var n = [], r = 0; r < t.length; r++) n.push(e(t[r], r)); + return n; + } + var l = + Object.keys || + function (t) { + var e, + n = []; + for (e in t) Object.prototype.hasOwnProperty.call(t, e) && n.push(e); + return n; + }; + }, + {}, + ], + 50: [ + function (t, e, n) { + 'use strict'; + (n.decode = n.parse = t('./decode')), (n.encode = n.stringify = t('./encode')); + }, + { './decode': 48, './encode': 49 }, + ], + 51: [ + function (t, e, n) { + 'use strict'; + var r = t('process-nextick-args'), + i = + Object.keys || + function (t) { + var e, + n = []; + for (e in t) n.push(e); + return n; + }, + e = ((e.exports = c), Object.create(t('core-util-is'))), + o = ((e.inherits = t('inherits')), t('./_stream_readable')), + a = t('./_stream_writable'); + e.inherits(c, o); + for (var s = i(a.prototype), l = 0; l < s.length; l++) { + var u = s[l]; + c.prototype[u] || (c.prototype[u] = a.prototype[u]); + } + function c(t) { + if (!(this instanceof c)) return new c(t); + o.call(this, t), + a.call(this, t), + t && !1 === t.readable && (this.readable = !1), + t && !1 === t.writable && (this.writable = !1), + (this.allowHalfOpen = !0), + t && !1 === t.allowHalfOpen && (this.allowHalfOpen = !1), + this.once('end', A); + } + function A() { + this.allowHalfOpen || this._writableState.ended || r.nextTick(h, this); + } + function h(t) { + t.end(); + } + Object.defineProperty(c.prototype, 'writableHighWaterMark', { + enumerable: !1, + get: function () { + return this._writableState.highWaterMark; + }, + }), + Object.defineProperty(c.prototype, 'destroyed', { + get: function () { + return ( + void 0 !== this._readableState && + void 0 !== this._writableState && + this._readableState.destroyed && + this._writableState.destroyed + ); + }, + set: function (t) { + void 0 !== this._readableState && + void 0 !== this._writableState && + ((this._readableState.destroyed = t), (this._writableState.destroyed = t)); + }, + }), + (c.prototype._destroy = function (t, e) { + this.push(null), this.end(), r.nextTick(e, t); + }); + }, + { + './_stream_readable': 53, + './_stream_writable': 55, + 'core-util-is': 32, + inherits: 38, + 'process-nextick-args': 45, + }, + ], + 52: [ + function (t, e, n) { + 'use strict'; + e.exports = i; + var r = t('./_stream_transform'), + e = Object.create(t('core-util-is')); + function i(t) { + if (!(this instanceof i)) return new i(t); + r.call(this, t); + } + (e.inherits = t('inherits')), + e.inherits(i, r), + (i.prototype._transform = function (t, e, n) { + n(null, t); + }); + }, + { './_stream_transform': 54, 'core-util-is': 32, inherits: 38 }, + ], + 53: [ + function (Q, _, t) { + !function (k, F) { + !function () { + 'use strict'; + function f(t, e) { + return t.listeners(e).length; + } + var o, + g = Q('process-nextick-args'), + m = ((_.exports = i), Q('isarray')), + n = + ((i.ReadableState = r), Q('events').EventEmitter, Q('./internal/streams/stream')), + c = Q('safe-buffer').Buffer, + A = F.Uint8Array || function () {}; + var a, + t = Object.create(Q('core-util-is')), + e = ((t.inherits = Q('inherits')), Q('util')), + v = void 0, + v = e && e.debuglog ? e.debuglog('stream') : function () {}, + s = Q('./internal/streams/BufferList'), + e = Q('./internal/streams/destroy'), + l = (t.inherits(i, n), ['error', 'close', 'destroy', 'pause', 'resume']); + function r(t, e) { + t = t || {}; + var e = e instanceof (o = o || Q('./_stream_duplex')), + n = + ((this.objectMode = !!t.objectMode), + e && (this.objectMode = this.objectMode || !!t.readableObjectMode), + t.highWaterMark), + r = t.readableHighWaterMark, + i = this.objectMode ? 16 : 16384; + (this.highWaterMark = n || 0 === n ? n : e && (r || 0 === r) ? r : i), + (this.highWaterMark = Math.floor(this.highWaterMark)), + (this.buffer = new s()), + (this.length = 0), + (this.pipes = null), + (this.pipesCount = 0), + (this.flowing = null), + (this.ended = !1), + (this.endEmitted = !1), + (this.reading = !1), + (this.sync = !0), + (this.needReadable = !1), + (this.emittedReadable = !1), + (this.readableListening = !1), + (this.resumeScheduled = !1), + (this.destroyed = !1), + (this.defaultEncoding = t.defaultEncoding || 'utf8'), + (this.awaitDrain = 0), + (this.readingMore = !1), + (this.decoder = null), + (this.encoding = null), + t.encoding && + ((a = a || Q('string_decoder/').StringDecoder), + (this.decoder = new a(t.encoding)), + (this.encoding = t.encoding)); + } + function i(t) { + if (((o = o || Q('./_stream_duplex')), !(this instanceof i))) return new i(t); + (this._readableState = new r(t, this)), + (this.readable = !0), + t && + ('function' == typeof t.read && (this._read = t.read), + 'function' == typeof t.destroy && (this._destroy = t.destroy)), + n.call(this); + } + function u(t, e, n, r, i) { + var o, + a, + s, + l, + u = t._readableState; + return ( + null === e + ? ((u.reading = !1), + (a = t), + (l = u).ended || + (l.decoder && + (s = l.decoder.end()) && + s.length && + (l.buffer.push(s), (l.length += l.objectMode ? 1 : s.length)), + (l.ended = !0), + b(a))) + : (o = i + ? o + : (function (t, e) { + var n; + !(function (t) { + return c.isBuffer(t) || t instanceof A; + })(e) && + 'string' != typeof e && + void 0 !== e && + !t.objectMode && + (n = new TypeError('Invalid non-string/buffer chunk')); + return n; + })(u, e)) + ? t.emit('error', o) + : u.objectMode || (e && 0 < e.length) + ? ('string' == typeof e || + u.objectMode || + Object.getPrototypeOf(e) === c.prototype || + ((s = e), (e = c.from(s))), + r + ? u.endEmitted + ? t.emit('error', new Error('stream.unshift() after end event')) + : h(t, u, e, !0) + : u.ended + ? t.emit('error', new Error('stream.push() after EOF')) + : ((u.reading = !1), + u.decoder && !n + ? ((e = u.decoder.write(e)), + u.objectMode || 0 !== e.length ? h(t, u, e, !1) : w(t, u)) + : h(t, u, e, !1))) + : r || (u.reading = !1), + !(l = u).ended && (l.needReadable || l.length < l.highWaterMark || 0 === l.length) + ); + } + function h(t, e, n, r) { + e.flowing && 0 === e.length && !e.sync + ? (t.emit('data', n), t.read(0)) + : ((e.length += e.objectMode ? 1 : n.length), + r ? e.buffer.unshift(n) : e.buffer.push(n), + e.needReadable && b(t)), + w(t, e); + } + Object.defineProperty(i.prototype, 'destroyed', { + get: function () { + return void 0 !== this._readableState && this._readableState.destroyed; + }, + set: function (t) { + this._readableState && (this._readableState.destroyed = t); + }, + }), + (i.prototype.destroy = e.destroy), + (i.prototype._undestroy = e.undestroy), + (i.prototype._destroy = function (t, e) { + this.push(null), e(t); + }), + (i.prototype.push = function (t, e) { + var n, + r = this._readableState; + return ( + r.objectMode + ? (n = !0) + : 'string' == typeof t && + ((e = e || r.defaultEncoding) !== r.encoding && + ((t = c.from(t, e)), (e = '')), + (n = !0)), + u(this, t, e, !1, n) + ); + }), + (i.prototype.unshift = function (t) { + return u(this, t, null, !0, !1); + }), + (i.prototype.isPaused = function () { + return !1 === this._readableState.flowing; + }), + (i.prototype.setEncoding = function (t) { + return ( + (a = a || Q('string_decoder/').StringDecoder), + (this._readableState.decoder = new a(t)), + (this._readableState.encoding = t), + this + ); + }); + var p = 8388608; + function d(t, e) { + return t <= 0 || (0 === e.length && e.ended) + ? 0 + : e.objectMode + ? 1 + : t != t + ? (e.flowing && e.length ? e.buffer.head.data : e).length + : (t > e.highWaterMark && + (e.highWaterMark = + (p <= (n = t) + ? (n = p) + : (n--, + (n = + (n = + (n = (n = (n |= n >>> 1) | (n >>> 2)) | (n >>> 4)) | + (n >>> 8)) | + (n >>> 16)), + n++), + n)), + t <= e.length ? t : e.ended ? e.length : ((e.needReadable = !0), 0)); + var n; + } + function b(t) { + var e = t._readableState; + (e.needReadable = !1), + e.emittedReadable || + (v('emitReadable', e.flowing), + (e.emittedReadable = !0), + e.sync ? g.nextTick(y, t) : y(t)); + } + function y(t) { + v('emit readable'), t.emit('readable'), x(t); + } + function w(t, e) { + e.readingMore || ((e.readingMore = !0), g.nextTick(E, t, e)); + } + function E(t, e) { + for ( + var n = e.length; + !e.reading && + !e.flowing && + !e.ended && + e.length < e.highWaterMark && + (v('maybeReadMore read 0'), t.read(0), n !== e.length); + + ) + n = e.length; + e.readingMore = !1; + } + function B(t) { + v('readable nexttick read 0'), t.read(0); + } + function C(t, e) { + e.reading || (v('resume read 0'), t.read(0)), + (e.resumeScheduled = !1), + (e.awaitDrain = 0), + t.emit('resume'), + x(t), + e.flowing && !e.reading && t.read(0); + } + function x(t) { + var e = t._readableState; + for (v('flow', e.flowing); e.flowing && null !== t.read(); ); + } + function I(t, e) { + return 0 === e.length + ? null + : (e.objectMode + ? (n = e.buffer.shift()) + : !t || t >= e.length + ? ((n = e.decoder + ? e.buffer.join('') + : 1 === e.buffer.length + ? e.buffer.head.data + : e.buffer.concat(e.length)), + e.buffer.clear()) + : (n = (function (t, e, n) { + var r; + t < e.head.data.length + ? ((r = e.head.data.slice(0, t)), + (e.head.data = e.head.data.slice(t))) + : (r = + t === e.head.data.length + ? e.shift() + : (n + ? function (t, e) { + var n = e.head, + r = 1, + i = n.data; + t -= i.length; + for (; (n = n.next); ) { + var o = n.data, + a = t > o.length ? o.length : t; + if ( + (a === o.length ? (i += o) : (i += o.slice(0, t)), + 0 === (t -= a)) + ) { + a === o.length + ? (++r, + n.next + ? (e.head = n.next) + : (e.head = e.tail = null)) + : ((e.head = n).data = o.slice(a)); + break; + } + ++r; + } + return (e.length -= r), i; + } + : function (t, e) { + var n = c.allocUnsafe(t), + r = e.head, + i = 1; + r.data.copy(n), (t -= r.data.length); + for (; (r = r.next); ) { + var o = r.data, + a = t > o.length ? o.length : t; + if ((o.copy(n, n.length - t, 0, a), 0 === (t -= a))) { + a === o.length + ? (++i, + r.next + ? (e.head = r.next) + : (e.head = e.tail = null)) + : ((e.head = r).data = o.slice(a)); + break; + } + ++i; + } + return (e.length -= i), n; + })(t, e)); + return r; + })(t, e.buffer, e.decoder)), + n); + var n; + } + function M(t) { + var e = t._readableState; + if (0 < e.length) throw new Error('"endReadable()" called on non-empty stream'); + e.endEmitted || ((e.ended = !0), g.nextTick(D, e, t)); + } + function D(t, e) { + t.endEmitted || + 0 !== t.length || + ((t.endEmitted = !0), (e.readable = !1), e.emit('end')); + } + function S(t, e) { + for (var n = 0, r = t.length; n < r; n++) if (t[n] === e) return n; + return -1; + } + (i.prototype.read = function (t) { + v('read', t), (t = parseInt(t, 10)); + var e = this._readableState, + n = t; + if ( + (0 !== t && (e.emittedReadable = !1), + 0 === t && e.needReadable && (e.length >= e.highWaterMark || e.ended)) + ) + return ( + v('read: emitReadable', e.length, e.ended), + (0 === e.length && e.ended ? M : b)(this), + null + ); + if (0 === (t = d(t, e)) && e.ended) return 0 === e.length && M(this), null; + var r = e.needReadable; + return ( + v('need readable', r), + (0 === e.length || e.length - t < e.highWaterMark) && + v('length less than watermark', (r = !0)), + e.ended || e.reading + ? v('reading or ended', (r = !1)) + : r && + (v('do read'), + (e.reading = !0), + (e.sync = !0), + 0 === e.length && (e.needReadable = !0), + this._read(e.highWaterMark), + (e.sync = !1), + e.reading || (t = d(n, e))), + null === (r = 0 < t ? I(t, e) : null) + ? ((e.needReadable = !0), (t = 0)) + : (e.length -= t), + 0 === e.length && + (e.ended || (e.needReadable = !0), n !== t && e.ended && M(this)), + null !== r && this.emit('data', r), + r + ); + }), + (i.prototype._read = function (t) { + this.emit('error', new Error('_read() is not implemented')); + }), + (i.prototype.pipe = function (n, t) { + var r = this, + i = this._readableState; + switch (i.pipesCount) { + case 0: + i.pipes = n; + break; + case 1: + i.pipes = [i.pipes, n]; + break; + default: + i.pipes.push(n); + } + (i.pipesCount += 1), v('pipe count=%d opts=%j', i.pipesCount, t); + t = (!t || !1 !== t.end) && n !== k.stdout && n !== k.stderr ? a : d; + function o(t, e) { + v('onunpipe'), + t === r && + e && + !1 === e.hasUnpiped && + ((e.hasUnpiped = !0), + v('cleanup'), + n.removeListener('close', h), + n.removeListener('finish', p), + n.removeListener('drain', s), + n.removeListener('error', A), + n.removeListener('unpipe', o), + r.removeListener('end', a), + r.removeListener('end', d), + r.removeListener('data', c), + (l = !0), + !i.awaitDrain || (n._writableState && !n._writableState.needDrain) || s()); + } + function a() { + v('onend'), n.end(); + } + i.endEmitted ? g.nextTick(t) : r.once('end', t), n.on('unpipe', o); + e = r; + var e, + s = function () { + var t = e._readableState; + v('pipeOnDrain', t.awaitDrain), + t.awaitDrain && t.awaitDrain--, + 0 === t.awaitDrain && f(e, 'data') && ((t.flowing = !0), x(e)); + }, + l = (n.on('drain', s), !1); + var u = !1; + function c(t) { + v('ondata'), + (u = !1) !== n.write(t) || + u || + (((1 === i.pipesCount && i.pipes === n) || + (1 < i.pipesCount && -1 !== S(i.pipes, n))) && + !l && + (v('false write response, pause', r._readableState.awaitDrain), + r._readableState.awaitDrain++, + (u = !0)), + r.pause()); + } + function A(t) { + v('onerror', t), + d(), + n.removeListener('error', A), + 0 === f(n, 'error') && n.emit('error', t); + } + function h() { + n.removeListener('finish', p), d(); + } + function p() { + v('onfinish'), n.removeListener('close', h), d(); + } + function d() { + v('unpipe'), r.unpipe(n); + } + return ( + r.on('data', c), + (function (t, e, n) { + if ('function' == typeof t.prependListener) return t.prependListener(e, n); + t._events && t._events[e] + ? m(t._events[e]) + ? t._events[e].unshift(n) + : (t._events[e] = [n, t._events[e]]) + : t.on(e, n); + })(n, 'error', A), + n.once('close', h), + n.once('finish', p), + n.emit('pipe', r), + i.flowing || (v('pipe resume'), r.resume()), + n + ); + }), + (i.prototype.unpipe = function (t) { + var e = this._readableState, + n = { hasUnpiped: !1 }; + if (0 !== e.pipesCount) { + if (1 === e.pipesCount) + return ( + (t && t !== e.pipes) || + ((t = t || e.pipes), + (e.pipes = null), + (e.pipesCount = 0), + (e.flowing = !1), + t && t.emit('unpipe', this, n)), + this + ); + if (t) { + var r = S(e.pipes, t); + -1 !== r && + (e.pipes.splice(r, 1), + --e.pipesCount, + 1 === e.pipesCount && (e.pipes = e.pipes[0]), + t.emit('unpipe', this, n)); + } else { + var i = e.pipes, + o = e.pipesCount; + (e.pipes = null), (e.pipesCount = 0), (e.flowing = !1); + for (var a = 0; a < o; a++) i[a].emit('unpipe', this, n); + } + } + return this; + }), + (i.prototype.addListener = i.prototype.on = + function (t, e) { + e = n.prototype.on.call(this, t, e); + return ( + 'data' === t + ? !1 !== this._readableState.flowing && this.resume() + : 'readable' !== t || + (t = this._readableState).endEmitted || + t.readableListening || + ((t.readableListening = t.needReadable = !0), + (t.emittedReadable = !1), + t.reading ? t.length && b(this) : g.nextTick(B, this)), + e + ); + }), + (i.prototype.resume = function () { + var t, + e = this._readableState; + return ( + e.flowing || + (v('resume'), + (e.flowing = !0), + (t = this), + (e = e).resumeScheduled || ((e.resumeScheduled = !0), g.nextTick(C, t, e))), + this + ); + }), + (i.prototype.pause = function () { + return ( + v('call pause flowing=%j', this._readableState.flowing), + !1 !== this._readableState.flowing && + (v('pause'), (this._readableState.flowing = !1), this.emit('pause')), + this + ); + }), + (i.prototype.wrap = function (e) { + var t, + n = this, + r = this._readableState, + i = !1; + for (t in (e.on('end', function () { + var t; + v('wrapped end'), + r.decoder && !r.ended && (t = r.decoder.end()) && t.length && n.push(t), + n.push(null); + }), + e.on('data', function (t) { + v('wrapped data'), + r.decoder && (t = r.decoder.write(t)), + (r.objectMode && null == t) || + ((r.objectMode || (t && t.length)) && !n.push(t) && ((i = !0), e.pause())); + }), + e)) + void 0 === this[t] && + 'function' == typeof e[t] && + (this[t] = (function (t) { + return function () { + return e[t].apply(e, arguments); + }; + })(t)); + for (var o = 0; o < l.length; o++) e.on(l[o], this.emit.bind(this, l[o])); + return ( + (this._read = function (t) { + v('wrapped _read', t), i && ((i = !1), e.resume()); + }), + this + ); + }), + Object.defineProperty(i.prototype, 'readableHighWaterMark', { + enumerable: !1, + get: function () { + return this._readableState.highWaterMark; + }, + }), + (i._fromList = I); + }.call(this); + }.call( + this, + Q('_process'), + 'undefined' != typeof global + ? global + : 'undefined' != typeof self + ? self + : 'undefined' != typeof window + ? window + : {}, + ); + }, + { + './_stream_duplex': 51, + './internal/streams/BufferList': 56, + './internal/streams/destroy': 57, + './internal/streams/stream': 58, + _process: 46, + 'core-util-is': 32, + events: 35, + inherits: 38, + isarray: 39, + 'process-nextick-args': 45, + 'safe-buffer': 59, + 'string_decoder/': 60, + util: 23, + }, + ], + 54: [ + function (t, e, n) { + 'use strict'; + e.exports = i; + var r = t('./_stream_duplex'), + e = Object.create(t('core-util-is')); + function i(t) { + if (!(this instanceof i)) return new i(t); + r.call(this, t), + (this._transformState = { + afterTransform: function (t, e) { + var n = this._transformState, + r = ((n.transforming = !1), n.writecb); + if (!r) + return this.emit('error', new Error('write callback called multiple times')); + (n.writechunk = null), + (n.writecb = null) != e && this.push(e), + r(t), + ((n = this._readableState).reading = !1), + (n.needReadable || n.length < n.highWaterMark) && this._read(n.highWaterMark); + }.bind(this), + needTransform: !1, + transforming: !1, + writecb: null, + writechunk: null, + writeencoding: null, + }), + (this._readableState.needReadable = !0), + (this._readableState.sync = !1), + t && + ('function' == typeof t.transform && (this._transform = t.transform), + 'function' == typeof t.flush && (this._flush = t.flush)), + this.on('prefinish', o); + } + function o() { + var n = this; + 'function' == typeof this._flush + ? this._flush(function (t, e) { + a(n, t, e); + }) + : a(this, null, null); + } + function a(t, e, n) { + if (e) return t.emit('error', e); + if ((null != n && t.push(n), t._writableState.length)) + throw new Error('Calling transform done when ws.length != 0'); + if (t._transformState.transforming) + throw new Error('Calling transform done when still transforming'); + t.push(null); + } + (e.inherits = t('inherits')), + e.inherits(i, r), + (i.prototype.push = function (t, e) { + return (this._transformState.needTransform = !1), r.prototype.push.call(this, t, e); + }), + (i.prototype._transform = function (t, e, n) { + throw new Error('_transform() is not implemented'); + }), + (i.prototype._write = function (t, e, n) { + var r = this._transformState; + (r.writecb = n), + (r.writechunk = t), + (r.writeencoding = e), + r.transforming || + ((n = this._readableState), + (r.needTransform || n.needReadable || n.length < n.highWaterMark) && + this._read(n.highWaterMark)); + }), + (i.prototype._read = function (t) { + var e = this._transformState; + null !== e.writechunk && e.writecb && !e.transforming + ? ((e.transforming = !0), + this._transform(e.writechunk, e.writeencoding, e.afterTransform)) + : (e.needTransform = !0); + }), + (i.prototype._destroy = function (t, e) { + var n = this; + r.prototype._destroy.call(this, t, function (t) { + e(t), n.emit('close'); + }); + }); + }, + { './_stream_duplex': 51, 'core-util-is': 32, inherits: 38 }, + ], + 55: [ + function (B, C, t) { + !function (u, c, E) { + !function () { + 'use strict'; + var p = B('process-nextick-args'); + function A(o) { + var a = this; + (this.next = null), + (this.entry = null), + (this.finish = function () { + var t = a, + e = o, + n = void 0, + r = t.entry; + for (t.entry = null; r; ) { + var i = r.callback; + e.pendingcb--, i(n), (r = r.next); + } + e.corkedRequestsFree + ? (e.corkedRequestsFree.next = t) + : (e.corkedRequestsFree = t); + }); + } + C.exports = s; + var o, + h = + !u.browser && -1 < ['v0.10', 'v0.9.'].indexOf(u.version.slice(0, 5)) + ? E + : p.nextTick, + t = ((s.WritableState = a), Object.create(B('core-util-is'))), + e = ((t.inherits = B('inherits')), { deprecate: B('util-deprecate') }), + n = B('./internal/streams/stream'), + d = B('safe-buffer').Buffer, + f = c.Uint8Array || function () {}; + var r, + i = B('./internal/streams/destroy'); + function g() {} + function a(t, c) { + (o = o || B('./_stream_duplex')), (t = t || {}); + var e = c instanceof o, + n = + ((this.objectMode = !!t.objectMode), + e && (this.objectMode = this.objectMode || !!t.writableObjectMode), + t.highWaterMark), + r = t.writableHighWaterMark, + i = this.objectMode ? 16 : 16384, + n = + ((this.highWaterMark = n || 0 === n ? n : e && (r || 0 === r) ? r : i), + (this.highWaterMark = Math.floor(this.highWaterMark)), + (this.finalCalled = !1), + (this.needDrain = !1), + (this.ending = !1), + (this.ended = !1), + (this.finished = !1), + (this.destroyed = !1) === t.decodeStrings); + (this.decodeStrings = !n), + (this.defaultEncoding = t.defaultEncoding || 'utf8'), + (this.length = 0), + (this.writing = !1), + (this.corked = 0), + (this.sync = !0), + (this.bufferProcessing = !1), + (this.onwrite = function (t) { + (t = t), (n = (e = c)._writableState), (r = n.sync), (i = n.writecb); + var e, + n, + r, + i, + o = n; + { + var a, s, l, u; + ((o.writing = !1), + (o.writecb = null), + (o.length -= o.writelen), + (o.writelen = 0), + t) + ? ((o = e), + (s = r), + (l = t), + (u = i), + --(a = n).pendingcb, + s + ? (p.nextTick(u, l), + p.nextTick(w, o, a), + (o._writableState.errorEmitted = !0), + o.emit('error', l)) + : (u(l), + (o._writableState.errorEmitted = !0), + o.emit('error', l), + w(o, a))) + : ((t = y(n)) || + n.corked || + n.bufferProcessing || + !n.bufferedRequest || + b(e, n), + r ? h(v, e, n, t, i) : v(e, n, t, i)); + } + }), + (this.writecb = null), + (this.writelen = 0), + (this.bufferedRequest = null), + (this.lastBufferedRequest = null), + (this.pendingcb = 0), + (this.prefinished = !1), + (this.errorEmitted = !1), + (this.bufferedRequestCount = 0), + (this.corkedRequestsFree = new A(this)); + } + t.inherits(s, n), + (a.prototype.getBuffer = function () { + for (var t = this.bufferedRequest, e = []; t; ) e.push(t), (t = t.next); + return e; + }); + try { + Object.defineProperty(a.prototype, 'buffer', { + get: e.deprecate( + function () { + return this.getBuffer(); + }, + '_writableState.buffer is deprecated. Use _writableState.getBuffer instead.', + 'DEP0003', + ), + }); + } catch (t) {} + function s(t) { + if (((o = o || B('./_stream_duplex')), !(r.call(s, this) || this instanceof o))) + return new s(t); + (this._writableState = new a(t, this)), + (this.writable = !0), + t && + ('function' == typeof t.write && (this._write = t.write), + 'function' == typeof t.writev && (this._writev = t.writev), + 'function' == typeof t.destroy && (this._destroy = t.destroy), + 'function' == typeof t.final && (this._final = t.final)), + n.call(this); + } + function m(t, e, n, r, i, o, a) { + (e.writelen = r), + (e.writecb = a), + (e.writing = !0), + (e.sync = !0), + n ? t._writev(i, e.onwrite) : t._write(i, o, e.onwrite), + (e.sync = !1); + } + function v(t, e, n, r) { + var i; + n || + ((n = t), + 0 === (i = e).length && i.needDrain && ((i.needDrain = !1), n.emit('drain'))), + e.pendingcb--, + r(), + w(t, e); + } + function b(t, e) { + e.bufferProcessing = !0; + var n = e.bufferedRequest; + if (t._writev && n && n.next) { + for ( + var r = e.bufferedRequestCount, + i = new Array(r), + r = e.corkedRequestsFree, + o = ((r.entry = n), 0), + a = !0; + n; + + ) + (i[o] = n).isBuf || (a = !1), (n = n.next), (o += 1); + (i.allBuffers = a), + m(t, e, !0, e.length, i, '', r.finish), + e.pendingcb++, + (e.lastBufferedRequest = null), + r.next + ? ((e.corkedRequestsFree = r.next), (r.next = null)) + : (e.corkedRequestsFree = new A(e)), + (e.bufferedRequestCount = 0); + } else { + for (; n; ) { + var s = n.chunk, + l = n.encoding, + u = n.callback; + if ( + (m(t, e, !1, e.objectMode ? 1 : s.length, s, l, u), + (n = n.next), + e.bufferedRequestCount--, + e.writing) + ) + break; + } + null === n && (e.lastBufferedRequest = null); + } + (e.bufferedRequest = n), (e.bufferProcessing = !1); + } + function y(t) { + return ( + t.ending && + 0 === t.length && + null === t.bufferedRequest && + !t.finished && + !t.writing + ); + } + function l(e, n) { + e._final(function (t) { + n.pendingcb--, + t && e.emit('error', t), + (n.prefinished = !0), + e.emit('prefinish'), + w(e, n); + }); + } + function w(t, e) { + var n, + r, + i = y(e); + return ( + i && + ((n = t), + (r = e).prefinished || + r.finalCalled || + ('function' == typeof n._final + ? (r.pendingcb++, (r.finalCalled = !0), p.nextTick(l, n, r)) + : ((r.prefinished = !0), n.emit('prefinish'))), + 0 === e.pendingcb && ((e.finished = !0), t.emit('finish'))), + i + ); + } + 'function' == typeof Symbol && + Symbol.hasInstance && + 'function' == typeof Function.prototype[Symbol.hasInstance] + ? ((r = Function.prototype[Symbol.hasInstance]), + Object.defineProperty(s, Symbol.hasInstance, { + value: function (t) { + return ( + !!r.call(this, t) || (this === s && t && t._writableState instanceof a) + ); + }, + })) + : (r = function (t) { + return t instanceof this; + }), + (s.prototype.pipe = function () { + this.emit('error', new Error('Cannot pipe, not readable')); + }), + (s.prototype.write = function (t, e, n) { + var r, + i, + o, + a, + s, + l, + u, + c = this._writableState, + A = !1, + h = !c.objectMode && ((h = t), d.isBuffer(h) || h instanceof f); + return ( + h && !d.isBuffer(t) && ((s = t), (t = d.from(s))), + 'function' == typeof e && ((n = e), (e = null)), + (e = h ? 'buffer' : e || c.defaultEncoding), + 'function' != typeof n && (n = g), + c.ended + ? ((s = this), + (l = n), + (u = new Error('write after end')), + s.emit('error', u), + p.nextTick(l, u)) + : (h || + ((l = this), + (u = c), + (i = n), + (a = !(o = !0)), + null === (r = t) + ? (a = new TypeError('May not write null values to stream')) + : 'string' == typeof r || + void 0 === r || + u.objectMode || + (a = new TypeError('Invalid non-string/buffer chunk')), + a && (l.emit('error', a), p.nextTick(i, a), (o = !1)), + o)) && + (c.pendingcb++, + (A = (function (t, e, n, r, i, o) { + n || + ((a = (function (t, e, n) { + t.objectMode || + !1 === t.decodeStrings || + 'string' != typeof e || + (e = d.from(e, n)); + return e; + })(e, r, i)), + r !== a && ((n = !0), (i = 'buffer'), (r = a))); + var a = e.objectMode ? 1 : r.length, + s = ((e.length += a), e.length < e.highWaterMark); + s || (e.needDrain = !0); + { + var l; + e.writing || e.corked + ? ((l = e.lastBufferedRequest), + (e.lastBufferedRequest = { + chunk: r, + encoding: i, + isBuf: n, + callback: o, + next: null, + }), + l + ? (l.next = e.lastBufferedRequest) + : (e.bufferedRequest = e.lastBufferedRequest), + (e.bufferedRequestCount += 1)) + : m(t, e, !1, a, r, i, o); + } + return s; + })(this, c, h, t, e, n))), + A + ); + }), + (s.prototype.cork = function () { + this._writableState.corked++; + }), + (s.prototype.uncork = function () { + var t = this._writableState; + t.corked && + (t.corked--, + t.writing || + t.corked || + t.finished || + t.bufferProcessing || + !t.bufferedRequest || + b(this, t)); + }), + (s.prototype.setDefaultEncoding = function (t) { + if ( + ('string' == typeof t && (t = t.toLowerCase()), + -1 < + [ + 'hex', + 'utf8', + 'utf-8', + 'ascii', + 'binary', + 'base64', + 'ucs2', + 'ucs-2', + 'utf16le', + 'utf-16le', + 'raw', + ].indexOf((t + '').toLowerCase())) + ) + return (this._writableState.defaultEncoding = t), this; + throw new TypeError('Unknown encoding: ' + t); + }), + Object.defineProperty(s.prototype, 'writableHighWaterMark', { + enumerable: !1, + get: function () { + return this._writableState.highWaterMark; + }, + }), + (s.prototype._write = function (t, e, n) { + n(new Error('_write() is not implemented')); + }), + (s.prototype._writev = null), + (s.prototype.end = function (t, e, n) { + var r = this._writableState; + if ( + ('function' == typeof t + ? ((n = t), (e = t = null)) + : 'function' == typeof e && ((n = e), (e = null)), + null != t && this.write(t, e), + r.corked && ((r.corked = 1), this.uncork()), + !r.ending && !r.finished) + ) { + (t = this), (e = r), (r = n); + (e.ending = !0), + w(t, e), + r && (e.finished ? p.nextTick(r) : t.once('finish', r)), + (e.ended = !0), + (t.writable = !1); + } + }), + Object.defineProperty(s.prototype, 'destroyed', { + get: function () { + return void 0 !== this._writableState && this._writableState.destroyed; + }, + set: function (t) { + this._writableState && (this._writableState.destroyed = t); + }, + }), + (s.prototype.destroy = i.destroy), + (s.prototype._undestroy = i.undestroy), + (s.prototype._destroy = function (t, e) { + this.end(), e(t); + }); + }.call(this); + }.call( + this, + B('_process'), + 'undefined' != typeof global + ? global + : 'undefined' != typeof self + ? self + : 'undefined' != typeof window + ? window + : {}, + B('timers').setImmediate, + ); + }, + { + './_stream_duplex': 51, + './internal/streams/destroy': 57, + './internal/streams/stream': 58, + _process: 46, + 'core-util-is': 32, + inherits: 38, + 'process-nextick-args': 45, + 'safe-buffer': 59, + timers: 68, + 'util-deprecate': 73, + }, + ], + 56: [ + function (t, e, n) { + 'use strict'; + var a = t('safe-buffer').Buffer, + r = t('util'); + function i() { + if (!(this instanceof i)) throw new TypeError('Cannot call a class as a function'); + (this.head = null), (this.tail = null), (this.length = 0); + } + (e.exports = + ((i.prototype.push = function (t) { + t = { data: t, next: null }; + 0 < this.length ? (this.tail.next = t) : (this.head = t), + (this.tail = t), + ++this.length; + }), + (i.prototype.unshift = function (t) { + t = { data: t, next: this.head }; + 0 === this.length && (this.tail = t), (this.head = t), ++this.length; + }), + (i.prototype.shift = function () { + var t; + if (0 !== this.length) + return ( + (t = this.head.data), + 1 === this.length ? (this.head = this.tail = null) : (this.head = this.head.next), + --this.length, + t + ); + }), + (i.prototype.clear = function () { + (this.head = this.tail = null), (this.length = 0); + }), + (i.prototype.join = function (t) { + if (0 === this.length) return ''; + for (var e = this.head, n = '' + e.data; (e = e.next); ) n += t + e.data; + return n; + }), + (i.prototype.concat = function (t) { + if (0 === this.length) return a.alloc(0); + if (1 === this.length) return this.head.data; + for (var e, n, r = a.allocUnsafe(t >>> 0), i = this.head, o = 0; i; ) + (e = i.data), (n = o), e.copy(r, n), (o += i.data.length), (i = i.next); + return r; + }), + i)), + r && + r.inspect && + r.inspect.custom && + (e.exports.prototype[r.inspect.custom] = function () { + var t = r.inspect({ length: this.length }); + return this.constructor.name + ' ' + t; + }); + }, + { 'safe-buffer': 59, util: 23 }, + ], + 57: [ + function (t, e, n) { + 'use strict'; + var o = t('process-nextick-args'); + function a(t, e) { + t.emit('error', e); + } + e.exports = { + destroy: function (t, e) { + var n = this, + r = this._readableState && this._readableState.destroyed, + i = this._writableState && this._writableState.destroyed; + return ( + r || i + ? e + ? e(t) + : !t || + (this._writableState && this._writableState.errorEmitted) || + o.nextTick(a, this, t) + : (this._readableState && (this._readableState.destroyed = !0), + this._writableState && (this._writableState.destroyed = !0), + this._destroy(t || null, function (t) { + !e && t + ? (o.nextTick(a, n, t), + n._writableState && (n._writableState.errorEmitted = !0)) + : e && e(t); + })), + this + ); + }, + undestroy: function () { + this._readableState && + ((this._readableState.destroyed = !1), + (this._readableState.reading = !1), + (this._readableState.ended = !1), + (this._readableState.endEmitted = !1)), + this._writableState && + ((this._writableState.destroyed = !1), + (this._writableState.ended = !1), + (this._writableState.ending = !1), + (this._writableState.finished = !1), + (this._writableState.errorEmitted = !1)); + }, + }; + }, + { 'process-nextick-args': 45 }, + ], + 58: [ + function (t, e, n) { + e.exports = t('events').EventEmitter; + }, + { events: 35 }, + ], + 59: [ + function (t, e, n) { + var r = t('buffer'), + i = r.Buffer; + function o(t, e) { + for (var n in t) e[n] = t[n]; + } + function a(t, e, n) { + return i(t, e, n); + } + i.from && i.alloc && i.allocUnsafe && i.allocUnsafeSlow + ? (e.exports = r) + : (o(r, n), (n.Buffer = a)), + o(i, a), + (a.from = function (t, e, n) { + if ('number' == typeof t) throw new TypeError('Argument must not be a number'); + return i(t, e, n); + }), + (a.alloc = function (t, e, n) { + if ('number' != typeof t) throw new TypeError('Argument must be a number'); + t = i(t); + return ( + void 0 !== e ? ('string' == typeof n ? t.fill(e, n) : t.fill(e)) : t.fill(0), t + ); + }), + (a.allocUnsafe = function (t) { + if ('number' != typeof t) throw new TypeError('Argument must be a number'); + return i(t); + }), + (a.allocUnsafeSlow = function (t) { + if ('number' != typeof t) throw new TypeError('Argument must be a number'); + return r.SlowBuffer(t); + }); + }, + { buffer: 26 }, + ], + 60: [ + function (t, e, n) { + 'use strict'; + var r = t('safe-buffer').Buffer, + i = + r.isEncoding || + function (t) { + switch ((t = '' + t) && t.toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + case 'raw': + return !0; + default: + return !1; + } + }; + function o(t) { + var e = (function (t) { + if (!t) return 'utf8'; + for (var e; ; ) + switch (t) { + case 'utf8': + case 'utf-8': + return 'utf8'; + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return 'utf16le'; + case 'latin1': + case 'binary': + return 'latin1'; + case 'base64': + case 'ascii': + case 'hex': + return t; + default: + if (e) return; + (t = ('' + t).toLowerCase()), (e = !0); + } + })(t); + if ('string' == typeof e || (r.isEncoding !== i && i(t))) return e || t; + throw new Error('Unknown encoding: ' + t); + } + function a(t) { + var e; + switch (((this.encoding = o(t)), this.encoding)) { + case 'utf16le': + (this.text = u), (this.end = c), (e = 4); + break; + case 'utf8': + (this.fillLast = l), (e = 4); + break; + case 'base64': + (this.text = A), (this.end = h), (e = 3); + break; + default: + return (this.write = p), void (this.end = d); + } + (this.lastNeed = 0), (this.lastTotal = 0), (this.lastChar = r.allocUnsafe(e)); + } + function s(t) { + return t <= 127 + ? 0 + : t >> 5 == 6 + ? 2 + : t >> 4 == 14 + ? 3 + : t >> 3 == 30 + ? 4 + : t >> 6 == 2 + ? -1 + : -2; + } + function l(t) { + var e, + n = this.lastTotal - this.lastNeed, + r = + ((e = this), + 128 != (192 & (r = t)[0]) + ? ((e.lastNeed = 0), '�') + : 1 < e.lastNeed && 1 < r.length + ? 128 != (192 & r[1]) + ? ((e.lastNeed = 1), '�') + : 2 < e.lastNeed && 2 < r.length && 128 != (192 & r[2]) + ? ((e.lastNeed = 2), '�') + : void 0 + : void 0); + return void 0 !== r + ? r + : this.lastNeed <= t.length + ? (t.copy(this.lastChar, n, 0, this.lastNeed), + this.lastChar.toString(this.encoding, 0, this.lastTotal)) + : (t.copy(this.lastChar, n, 0, t.length), void (this.lastNeed -= t.length)); + } + function u(t, e) { + if ((t.length - e) % 2 != 0) + return ( + (this.lastNeed = 1), + (this.lastTotal = 2), + (this.lastChar[0] = t[t.length - 1]), + t.toString('utf16le', e, t.length - 1) + ); + e = t.toString('utf16le', e); + if (e) { + var n = e.charCodeAt(e.length - 1); + if (55296 <= n && n <= 56319) + return ( + (this.lastNeed = 2), + (this.lastTotal = 4), + (this.lastChar[0] = t[t.length - 2]), + (this.lastChar[1] = t[t.length - 1]), + e.slice(0, -1) + ); + } + return e; + } + function c(t) { + var e, + t = t && t.length ? this.write(t) : ''; + return this.lastNeed + ? ((e = this.lastTotal - this.lastNeed), t + this.lastChar.toString('utf16le', 0, e)) + : t; + } + function A(t, e) { + var n = (t.length - e) % 3; + return 0 == n + ? t.toString('base64', e) + : ((this.lastNeed = 3 - n), + (this.lastTotal = 3), + 1 == n + ? (this.lastChar[0] = t[t.length - 1]) + : ((this.lastChar[0] = t[t.length - 2]), (this.lastChar[1] = t[t.length - 1])), + t.toString('base64', e, t.length - n)); + } + function h(t) { + t = t && t.length ? this.write(t) : ''; + return this.lastNeed ? t + this.lastChar.toString('base64', 0, 3 - this.lastNeed) : t; + } + function p(t) { + return t.toString(this.encoding); + } + function d(t) { + return t && t.length ? this.write(t) : ''; + } + ((n.StringDecoder = a).prototype.write = function (t) { + if (0 === t.length) return ''; + var e, n; + if (this.lastNeed) { + if (void 0 === (e = this.fillLast(t))) return ''; + (n = this.lastNeed), (this.lastNeed = 0); + } else n = 0; + return n < t.length ? (e ? e + this.text(t, n) : this.text(t, n)) : e || ''; + }), + (a.prototype.end = function (t) { + t = t && t.length ? this.write(t) : ''; + return this.lastNeed ? t + '�' : t; + }), + (a.prototype.text = function (t, e) { + var n = (function (t, e, n) { + var r = e.length - 1; + if (!(r < n)) { + var i = s(e[r]); + if (0 <= i) return 0 < i && (t.lastNeed = i - 1), i; + if (!(--r < n || -2 === i)) { + if (0 <= (i = s(e[r]))) return 0 < i && (t.lastNeed = i - 2), i; + if (!(--r < n || -2 === i) && 0 <= (i = s(e[r]))) + return 0 < i && (2 === i ? (i = 0) : (t.lastNeed = i - 3)), i; + } + } + return 0; + })(this, t, e); + if (!this.lastNeed) return t.toString('utf8', e); + this.lastTotal = n; + n = t.length - (n - this.lastNeed); + return t.copy(this.lastChar, 0, n), t.toString('utf8', e, n); + }), + (a.prototype.fillLast = function (t) { + if (this.lastNeed <= t.length) + return ( + t.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), + this.lastChar.toString(this.encoding, 0, this.lastTotal) + ); + t.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, t.length), + (this.lastNeed -= t.length); + }); + }, + { 'safe-buffer': 59 }, + ], + 61: [ + function (t, e, n) { + ((((n = e.exports = t('./lib/_stream_readable.js')).Stream = n).Readable = n).Writable = + t('./lib/_stream_writable.js')), + (n.Duplex = t('./lib/_stream_duplex.js')), + (n.Transform = t('./lib/_stream_transform.js')), + (n.PassThrough = t('./lib/_stream_passthrough.js')); + }, + { + './lib/_stream_duplex.js': 51, + './lib/_stream_passthrough.js': 52, + './lib/_stream_readable.js': 53, + './lib/_stream_transform.js': 54, + './lib/_stream_writable.js': 55, + }, + ], + 62: [ + function (t, e, n) { + !(function (W, J, K) { + 'use strict'; + (J = + void 0 !== J && J.Math == Math + ? J + : 'undefined' != typeof self && self.Math == Math + ? self + : Function('return this')()), + (W.fn.dropdown = function (N) { + var P, + L = W(this), + Y = W(K), + O = L.selector || '', + G = 'ontouchstart' in K.documentElement, + z = new Date().getTime(), + H = [], + j = N, + V = 'string' == typeof j, + q = [].slice.call(arguments, 1); + return ( + L.each(function (n) { + var t, + e, + r, + i, + o, + a, + s, + h = W.isPlainObject(N) + ? W.extend(!0, {}, W.fn.dropdown.settings, N) + : W.extend({}, W.fn.dropdown.settings), + p = h.className, + u = h.message, + l = h.fields, + d = h.keys, + f = h.metadata, + c = h.namespace, + A = h.regExp, + g = h.selector, + m = h.error, + v = h.templates, + b = '.' + c, + y = 'module-' + c, + w = W(this), + E = W(h.context), + B = w.find(g.text), + C = w.find(g.search), + x = w.find(g.sizer), + I = w.find(g.input), + U = w.find(g.icon), + M = 0 < w.prev().find(g.text).length ? w.prev().find(g.text) : w.prev(), + D = w.children(g.menu), + S = D.find(g.item), + k = !1, + F = !1, + Q = !1, + _ = this, + T = w.data(y), + R = { + initialize: function () { + R.debug('Initializing dropdown', h), + R.is.alreadySetup() + ? R.setup.reference() + : (R.setup.layout(), + h.values && R.change.values(h.values), + R.refreshData(), + R.save.defaults(), + R.restore.selected(), + R.create.id(), + R.bind.events(), + R.observeChanges(), + R.instantiate()); + }, + instantiate: function () { + R.verbose('Storing instance of dropdown', R), (T = R), w.data(y, R); + }, + destroy: function () { + R.verbose('Destroying previous dropdown', w), + R.remove.tabbable(), + w.off(b).removeData(y), + D.off(b), + Y.off(i), + R.disconnect.menuObserver(), + R.disconnect.selectObserver(); + }, + observeChanges: function () { + 'MutationObserver' in J && + ((a = new MutationObserver(R.event.select.mutation)), + (s = new MutationObserver(R.event.menu.mutation)), + R.debug('Setting up mutation observer', a, s), + R.observe.select(), + R.observe.menu()); + }, + disconnect: { + menuObserver: function () { + s && s.disconnect(); + }, + selectObserver: function () { + a && a.disconnect(); + }, + }, + observe: { + select: function () { + R.has.input() && a.observe(w[0], { childList: !0, subtree: !0 }); + }, + menu: function () { + R.has.menu() && s.observe(D[0], { childList: !0, subtree: !0 }); + }, + }, + create: { + id: function () { + (o = (Math.random().toString(16) + '000000000').substr(2, 8)), + (i = '.' + o), + R.verbose('Creating unique id for element', o); + }, + userChoice: function (t) { + var n, r; + return ( + !!(t = t || R.get.userValues()) && + ((t = W.isArray(t) ? t : [t]), + W.each(t, function (t, e) { + !1 === R.get.item(e) && + ((r = h.templates.addition(R.add.variables(u.addResult, e))), + (r = W('<div />') + .html(r) + .attr('data-' + f.value, e) + .attr('data-' + f.text, e) + .addClass(p.addition) + .addClass(p.item)), + h.hideAdditions && r.addClass(p.hidden), + (n = void 0 === n ? r : n.add(r)), + R.verbose('Creating user choices for value', e, r)); + }), + n) + ); + }, + userLabels: function (t) { + var e = R.get.userValues(); + e && + (R.debug('Adding user labels', e), + W.each(e, function (t, e) { + R.verbose('Adding custom user value'), R.add.label(e, e); + })); + }, + menu: function () { + D = W('<div />').addClass(p.menu).appendTo(w); + }, + sizer: function () { + x = W('<span />').addClass(p.sizer).insertAfter(C); + }, + }, + search: function (t) { + (t = void 0 !== t ? t : R.get.query()), + R.verbose('Searching for query', t), + R.has.minCharacters(t) ? R.filter(t) : R.hide(); + }, + select: { + firstUnfiltered: function () { + R.verbose('Selecting first non-filtered element'), + R.remove.selectedItem(), + S.not(g.unselectable) + .not(g.addition + g.hidden) + .eq(0) + .addClass(p.selected); + }, + nextAvailable: function (t) { + var e = (t = t.eq(0)).nextAll(g.item).not(g.unselectable).eq(0), + t = t.prevAll(g.item).not(g.unselectable).eq(0); + 0 < e.length + ? (R.verbose('Moving selection to', e), e.addClass(p.selected)) + : (R.verbose('Moving selection to', t), t.addClass(p.selected)); + }, + }, + setup: { + api: function () { + var t = { + debug: h.debug, + urlData: { value: R.get.value(), query: R.get.query() }, + on: !1, + }; + R.verbose('First request, initializing API'), w.api(t); + }, + layout: function () { + w.is('select') && (R.setup.select(), R.setup.returnedObject()), + R.has.menu() || R.create.menu(), + R.is.search() && + !R.has.search() && + (R.verbose('Adding search input'), + (C = W('<input />') + .addClass(p.search) + .prop('autocomplete', 'off') + .insertBefore(B))), + R.is.multiple() && + R.is.searchSelection() && + !R.has.sizer() && + R.create.sizer(), + h.allowTab && R.set.tabbable(); + }, + select: function () { + var t = R.get.selectValues(); + R.debug('Dropdown initialized on a select', t), + 0 < (I = w.is('select') ? w : I).parent(g.dropdown).length + ? (R.debug( + 'UI dropdown already exists. Creating dropdown menu only', + ), + (w = I.closest(g.dropdown)), + R.has.menu() || R.create.menu(), + (D = w.children(g.menu)), + R.setup.menu(t)) + : (R.debug('Creating entire dropdown from select'), + (w = W('<div />') + .attr('class', I.attr('class')) + .addClass(p.selection) + .addClass(p.dropdown) + .html(v.dropdown(t)) + .insertBefore(I)), + I.hasClass(p.multiple) && + !1 === I.prop('multiple') && + (R.error(m.missingMultiple), I.prop('multiple', !0)), + I.is('[multiple]') && R.set.multiple(), + I.prop('disabled') && + (R.debug('Disabling dropdown'), w.addClass(p.disabled)), + I.removeAttr('class').detach().prependTo(w)), + R.refresh(); + }, + menu: function (t) { + D.html(v.menu(t, l)), (S = D.find(g.item)); + }, + reference: function () { + R.debug( + 'Dropdown behavior was called on select, replacing with closest dropdown', + ), + (w = w.parent(g.dropdown)), + (T = w.data(y)), + (_ = w.get(0)), + R.refresh(), + R.setup.returnedObject(); + }, + returnedObject: function () { + var t = L.slice(0, n), + e = L.slice(n + 1); + L = t.add(w).add(e); + }, + }, + refresh: function () { + R.refreshSelectors(), R.refreshData(); + }, + refreshItems: function () { + S = D.find(g.item); + }, + refreshSelectors: function () { + R.verbose('Refreshing selector cache'), + (B = w.find(g.text)), + (C = w.find(g.search)), + (I = w.find(g.input)), + (U = w.find(g.icon)), + (M = + 0 < w.prev().find(g.text).length ? w.prev().find(g.text) : w.prev()), + (D = w.children(g.menu)), + (S = D.find(g.item)); + }, + refreshData: function () { + R.verbose('Refreshing cached metadata'), + S.removeData(f.text).removeData(f.value); + }, + clearData: function () { + R.verbose('Clearing metadata'), + S.removeData(f.text).removeData(f.value), + w + .removeData(f.defaultText) + .removeData(f.defaultValue) + .removeData(f.placeholderText); + }, + toggle: function () { + R.verbose('Toggling menu visibility'), + R.is.active() ? R.hide() : R.show(); + }, + show: function (t) { + if ( + ((t = W.isFunction(t) ? t : function () {}), + !R.can.show() && + R.is.remote() && + (R.debug('No API results retrieved, searching before show'), + R.queryRemote(R.get.query(), R.show)), + R.can.show() && !R.is.active()) + ) { + if ( + (R.debug('Showing dropdown'), + !R.has.message() || + R.has.maxSelections() || + R.has.allResultsFiltered() || + R.remove.message(), + R.is.allFiltered()) + ) + return !0; + !1 !== h.onShow.call(_) && + R.animate.show(function () { + R.can.click() && R.bind.intent(), + R.has.menuSearch() && R.focusSearch(), + R.set.visible(), + t.call(_); + }); + } + }, + hide: function (t) { + (t = W.isFunction(t) ? t : function () {}), + R.is.active() && + (R.debug('Hiding dropdown'), + !1 !== h.onHide.call(_) && + R.animate.hide(function () { + R.remove.visible(), t.call(_); + })); + }, + hideOthers: function () { + R.verbose('Finding other dropdowns to hide'), + L.not(w) + .has(g.menu + '.' + p.visible) + .dropdown('hide'); + }, + hideMenu: function () { + R.verbose('Hiding menu instantaneously'), + R.remove.active(), + R.remove.visible(), + D.transition('hide'); + }, + hideSubMenus: function () { + var t = D.children(g.item).find(g.menu); + R.verbose('Hiding sub menus', t), t.transition('hide'); + }, + bind: { + events: function () { + G && R.bind.touchEvents(), + R.bind.keyboardEvents(), + R.bind.inputEvents(), + R.bind.mouseEvents(); + }, + touchEvents: function () { + R.debug('Touch device detected binding additional touch events'), + R.is.searchSelection() || + (R.is.single() && w.on('touchstart' + b, R.event.test.toggle)), + D.on('touchstart' + b, g.item, R.event.item.mouseenter); + }, + keyboardEvents: function () { + R.verbose('Binding keyboard events'), + w.on('keydown' + b, R.event.keydown), + R.has.search() && + w.on(R.get.inputEvent() + b, g.search, R.event.input), + R.is.multiple() && Y.on('keydown' + i, R.event.document.keydown); + }, + inputEvents: function () { + R.verbose('Binding input change events'), + w.on('change' + b, g.input, R.event.change); + }, + mouseEvents: function () { + R.verbose('Binding mouse events'), + R.is.multiple() && + w + .on('click' + b, g.label, R.event.label.click) + .on('click' + b, g.remove, R.event.remove.click), + R.is.searchSelection() + ? (w + .on('mousedown' + b, R.event.mousedown) + .on('mouseup' + b, R.event.mouseup) + .on('mousedown' + b, g.menu, R.event.menu.mousedown) + .on('mouseup' + b, g.menu, R.event.menu.mouseup) + .on('click' + b, g.icon, R.event.icon.click) + .on('focus' + b, g.search, R.event.search.focus) + .on('click' + b, g.search, R.event.search.focus) + .on('blur' + b, g.search, R.event.search.blur) + .on('click' + b, g.text, R.event.text.focus), + R.is.multiple() && w.on('click' + b, R.event.click)) + : ('click' == h.on + ? w + .on('click' + b, g.icon, R.event.icon.click) + .on('click' + b, R.event.test.toggle) + : 'hover' == h.on + ? w + .on('mouseenter' + b, R.delay.show) + .on('mouseleave' + b, R.delay.hide) + : w.on(h.on + b, R.toggle), + w + .on('mousedown' + b, R.event.mousedown) + .on('mouseup' + b, R.event.mouseup) + .on('focus' + b, R.event.focus), + R.has.menuSearch() + ? w.on('blur' + b, g.search, R.event.search.blur) + : w.on('blur' + b, R.event.blur)), + D.on('mouseenter' + b, g.item, R.event.item.mouseenter) + .on('mouseleave' + b, g.item, R.event.item.mouseleave) + .on('click' + b, g.item, R.event.item.click); + }, + intent: function () { + R.verbose('Binding hide intent event to document'), + G && + Y.on('touchstart' + i, R.event.test.touch).on( + 'touchmove' + i, + R.event.test.touch, + ), + Y.on('click' + i, R.event.test.hide); + }, + }, + unbind: { + intent: function () { + R.verbose('Removing hide intent event from document'), + G && Y.off('touchstart' + i).off('touchmove' + i), + Y.off('click' + i); + }, + }, + filter: function (t) { + function e() { + R.is.multiple() && R.filterActive(), + (t || (!t && 0 == R.get.activeItem().length)) && + R.select.firstUnfiltered(), + R.has.allResultsFiltered() + ? h.onNoResults.call(_, n) + ? h.allowAdditions + ? h.hideAdditions && + (R.verbose('User addition with no menu, setting empty style'), + R.set.empty(), + R.hideMenu()) + : (R.verbose('All items filtered, showing message', n), + R.add.message(u.noResults)) + : (R.verbose('All items filtered, hiding dropdown', n), + R.hideMenu()) + : (R.remove.empty(), R.remove.message()), + h.allowAdditions && R.add.userSuggestion(t), + R.is.searchSelection() && + R.can.show() && + R.is.focusedOnSearch() && + R.show(); + } + var n = void 0 !== t ? t : R.get.query(); + (h.useLabels && R.has.maxSelections()) || + (h.apiSettings + ? R.can.useAPI() + ? R.queryRemote(n, function () { + h.filterRemoteData && R.filterItems(n), e(); + }) + : R.error(m.noAPI) + : (R.filterItems(n), e())); + }, + queryRemote: function (t, e) { + t = { + errorDuration: !1, + cache: 'local', + throttle: h.throttle, + urlData: { query: t }, + onError: function () { + R.add.message(u.serverError), e(); + }, + onFailure: function () { + R.add.message(u.serverError), e(); + }, + onSuccess: function (t) { + R.remove.message(), R.setup.menu({ values: t[l.remoteValues] }), e(); + }, + }; + w.api('get request') || R.setup.api(), + (t = W.extend(!0, {}, t, h.apiSettings)), + w.api('setting', t).api('query'); + }, + filterItems: function (t) { + var n = void 0 !== t ? t : R.get.query(), + r = null, + t = R.escape.string(n), + i = new RegExp('^' + t, 'igm'); + R.has.query() && + ((r = []), + R.verbose('Searching for matching values', n), + S.each(function () { + var t, + e = W(this); + if ('both' == h.match || 'text' == h.match) { + if (-1 !== (t = String(R.get.choiceText(e, !1))).search(i)) + return r.push(this), !0; + if ('exact' === h.fullTextSearch && R.exactSearch(n, t)) + return r.push(this), !0; + if (!0 === h.fullTextSearch && R.fuzzySearch(n, t)) + return r.push(this), !0; + } + if ('both' == h.match || 'value' == h.match) + return -1 !== (e = String(R.get.choiceValue(e, t))).search(i) || + ('exact' === h.fullTextSearch && R.exactSearch(n, e)) || + (!0 === h.fullTextSearch && R.fuzzySearch(n, e)) + ? (r.push(this), !0) + : void 0; + })), + R.debug('Showing only matched items', n), + R.remove.filteredItem(), + r && S.not(r).addClass(p.filtered); + }, + fuzzySearch: function (t, e) { + var n = e.length, + r = t.length; + if (((t = t.toLowerCase()), (e = e.toLowerCase()), n < r)) return !1; + if (r === n) return t === e; + t: for (var i = 0, o = 0; i < r; i++) { + for (var a = t.charCodeAt(i); o < n; ) + if (e.charCodeAt(o++) === a) continue t; + return !1; + } + return !0; + }, + exactSearch: function (t, e) { + return (t = t.toLowerCase()), -1 < (e = e.toLowerCase()).indexOf(t); + }, + filterActive: function () { + h.useLabels && S.filter('.' + p.active).addClass(p.filtered); + }, + focusSearch: function (t) { + R.has.search() && + !R.is.focusedOnSearch() && + (t + ? (w.off('focus' + b, g.search), + C.focus(), + w.on('focus' + b, g.search, R.event.search.focus)) + : C.focus()); + }, + forceSelection: function () { + var t = S.not(p.filtered) + .filter('.' + p.selected) + .eq(0), + e = S.not(p.filtered) + .filter('.' + p.active) + .eq(0), + t = 0 < t.length ? t : e; + if (0 < t.length && !R.is.multiple()) + return ( + R.debug('Forcing partial selection to selected item', t), + void R.event.item.click.call(t, {}, !0) + ); + h.allowAdditions && R.set.selected(R.get.query()), R.remove.searchTerm(); + }, + change: { + values: function (t) { + h.allowAdditions || R.clear(), + R.debug('Creating dropdown with specified values', t), + R.setup.menu({ values: t }), + W.each(t, function (t, e) { + if (1 == e.selected) + return ( + R.debug('Setting initial selection to', e.value), + R.set.selected(e.value), + !0 + ); + }); + }, + }, + event: { + change: function () { + Q || (R.debug('Input changed, updating selection'), R.set.selected()); + }, + focus: function () { + h.showOnFocus && !k && R.is.hidden() && !e && R.show(); + }, + blur: function (t) { + (e = K.activeElement === this), + k || e || (R.remove.activeLabel(), R.hide()); + }, + mousedown: function () { + R.is.searchSelection() ? (r = !0) : (k = !0); + }, + mouseup: function () { + R.is.searchSelection() ? (r = !1) : (k = !1); + }, + click: function (t) { + W(t.target).is(w) && + (R.is.focusedOnSearch() ? R.show() : R.focusSearch()); + }, + search: { + focus: function () { + (k = !0), + R.is.multiple() && R.remove.activeLabel(), + h.showOnFocus && R.search(); + }, + blur: function (t) { + (e = K.activeElement === this), + !R.is.searchSelection() || + r || + F || + e || + (h.forceSelection && R.forceSelection(), R.hide()), + (r = !1); + }, + }, + icon: { + click: function (t) { + R.toggle(); + }, + }, + text: { + focus: function (t) { + (k = !0), R.focusSearch(); + }, + }, + input: function (t) { + (R.is.multiple() || R.is.searchSelection()) && R.set.filtered(), + clearTimeout(R.timer), + (R.timer = setTimeout(R.search, h.delay.search)); + }, + label: { + click: function (t) { + var e = W(this), + n = w.find(g.label), + r = n.filter('.' + p.active), + i = e.nextAll('.' + p.active), + o = e.prevAll('.' + p.active), + i = (0 < i.length ? e.nextUntil(i) : e.prevUntil(o)).add(r).add(e); + t.shiftKey + ? (r.removeClass(p.active), i.addClass(p.active)) + : t.ctrlKey + ? e.toggleClass(p.active) + : (r.removeClass(p.active), e.addClass(p.active)), + h.onLabelSelect.apply(this, n.filter('.' + p.active)); + }, + }, + remove: { + click: function () { + var t = W(this).parent(); + t.hasClass(p.active) + ? R.remove.activeLabels() + : R.remove.activeLabels(t); + }, + }, + test: { + toggle: function (t) { + var e = R.is.multiple() ? R.show : R.toggle; + R.is.bubbledLabelClick(t) || + R.is.bubbledIconClick(t) || + (R.determine.eventOnElement(t, e) && t.preventDefault()); + }, + touch: function (t) { + R.determine.eventOnElement(t, function () { + 'touchstart' == t.type + ? (R.timer = setTimeout(function () { + R.hide(); + }, h.delay.touch)) + : 'touchmove' == t.type && clearTimeout(R.timer); + }), + t.stopPropagation(); + }, + hide: function (t) { + R.determine.eventInModule(t, R.hide); + }, + }, + select: { + mutation: function (t) { + R.debug('<select> modified, recreating menu'); + var n = !1; + W.each(t, function (t, e) { + if (W(e.target).is('select') || W(e.addedNodes).is('select')) + return (n = !0); + }), + n && + (R.disconnect.selectObserver(), + R.refresh(), + R.setup.select(), + R.set.selected(), + R.observe.select()); + }, + }, + menu: { + mutation: function (t) { + var t = t[0], + e = W(!!t.addedNodes && t.addedNodes[0]), + t = W(!!t.removedNodes && t.removedNodes[0]), + e = e.add(t), + t = e.is(g.addition) || 0 < e.closest(g.addition).length, + e = e.is(g.message) || 0 < e.closest(g.message).length; + t || e + ? (R.debug('Updating item selector cache'), R.refreshItems()) + : (R.debug('Menu modified, updating selector cache'), R.refresh()); + }, + mousedown: function () { + F = !0; + }, + mouseup: function () { + F = !1; + }, + }, + item: { + mouseenter: function (t) { + var e = W(t.target), + n = W(this), + r = n.children(g.menu), + i = n.siblings(g.item).children(g.menu), + n = 0 < r.length; + 0 < r.find(e).length || + !n || + (clearTimeout(R.itemTimer), + (R.itemTimer = setTimeout(function () { + R.verbose('Showing sub-menu', r), + W.each(i, function () { + R.animate.hide(!1, W(this)); + }), + R.animate.show(!1, r); + }, h.delay.show)), + t.preventDefault()); + }, + mouseleave: function (t) { + var e = W(this).children(g.menu); + 0 < e.length && + (clearTimeout(R.itemTimer), + (R.itemTimer = setTimeout(function () { + R.verbose('Hiding sub-menu', e), R.animate.hide(!1, e); + }, h.delay.hide))); + }, + click: function (t, e) { + var n = W(this), + t = W(t ? t.target : ''), + r = n.find(g.menu), + i = R.get.choiceText(n), + o = R.get.choiceValue(n, i), + a = 0 < r.length, + r = 0 < r.find(t).length; + R.has.menuSearch() && W(K.activeElement).blur(), + r || + (a && !h.allowCategorySelection) || + (R.is.searchSelection() && + (h.allowAdditions && R.remove.userAddition(), + R.remove.searchTerm(), + R.is.focusedOnSearch() || 1 == e || R.focusSearch(!0)), + h.useLabels || (R.remove.filteredItem(), R.set.scrollPosition(n)), + R.determine.selectAction.call(this, i, o)); + }, + }, + document: { + keydown: function (t) { + var e, + n, + r, + i, + o, + a, + s, + l, + u, + c, + A = t.which; + R.is.inObject(A, d) && + ((n = (e = w.find(g.label)).filter('.' + p.active)).data(f.value), + (a = e.index(n)), + (s = e.length), + (r = 0 < n.length), + (i = 1 < n.length), + (o = 0 === a), + (a = a + 1 == s), + (s = R.is.searchSelection()), + (l = R.is.focusedOnSearch()), + (u = R.is.focused()), + (c = l && 0 === R.get.caretPosition()), + (s && !r && !l) || + (A == d.leftArrow + ? (!u && !c) || r + ? r && + (t.shiftKey + ? R.verbose('Adding previous label to selection') + : (R.verbose('Selecting previous label'), + e.removeClass(p.active)), + o && !i + ? n.addClass(p.active) + : n.prev(g.siblingLabel).addClass(p.active).end(), + t.preventDefault()) + : (R.verbose('Selecting previous label'), + e.last().addClass(p.active)) + : A == d.rightArrow + ? (u && !r && e.first().addClass(p.active), + r && + (t.shiftKey + ? R.verbose('Adding next label to selection') + : (R.verbose('Selecting next label'), + e.removeClass(p.active)), + a + ? s + ? l + ? e.removeClass(p.active) + : R.focusSearch() + : (i ? n.next(g.siblingLabel) : n).addClass(p.active) + : n.next(g.siblingLabel).addClass(p.active), + t.preventDefault())) + : A == d.deleteKey || A == d.backspace + ? r + ? (R.verbose('Removing active labels'), + a && s && !l && R.focusSearch(), + n.last().next(g.siblingLabel).addClass(p.active), + R.remove.activeLabels(n), + t.preventDefault()) + : c && + !r && + A == d.backspace && + (R.verbose('Removing last label on input backspace'), + (n = e.last().addClass(p.active)), + R.remove.activeLabels(n)) + : n.removeClass(p.active))); + }, + }, + keydown: function (t) { + var e = t.which; + if (R.is.inObject(e, d)) { + var n, + r = S.not(g.unselectable) + .filter('.' + p.selected) + .eq(0), + i = D.children('.' + p.active).eq(0), + r = 0 < r.length ? r : i, + i = + 0 < r.length + ? r.siblings(':not(.' + p.filtered + ')').addBack() + : D.children(':not(.' + p.filtered + ')'), + o = r.children(g.menu), + a = r.closest(g.menu), + s = + a.hasClass(p.visible) || + a.hasClass(p.animating) || + 0 < a.parent(g.menu).length, + l = 0 < o.length, + u = 0 < r.length, + c = 0 < r.not(g.unselectable).length, + A = e == d.delimiter && h.allowAdditions && R.is.multiple(); + if ( + (h.allowAdditions && + h.hideAdditions && + (e == d.enter || A) && + c && + (R.verbose('Selecting item from keyboard shortcut', r), + R.event.item.click.call(r, t), + R.is.searchSelection() && R.remove.searchTerm()), + R.is.visible()) + ) { + if ( + ((e != d.enter && !A) || + (e == d.enter && u && l && !h.allowCategorySelection + ? (R.verbose( + 'Pressed enter on unselectable category, opening sub menu', + ), + (e = d.rightArrow)) + : c && + (R.verbose('Selecting item from keyboard shortcut', r), + R.event.item.click.call(r, t), + R.is.searchSelection() && R.remove.searchTerm()), + t.preventDefault()), + u && + (e == d.leftArrow && + a[0] !== D[0] && + (R.verbose('Left key pressed, closing sub-menu'), + R.animate.hide(!1, a), + r.removeClass(p.selected), + a.closest(g.item).addClass(p.selected), + t.preventDefault()), + e == d.rightArrow && + l && + (R.verbose('Right key pressed, opening sub-menu'), + R.animate.show(!1, o), + r.removeClass(p.selected), + o.find(g.item).eq(0).addClass(p.selected), + t.preventDefault())), + e == d.upArrow) + ) { + if ( + ((n = ( + u && s + ? r.prevAll(g.item + ':not(' + g.unselectable + ')') + : S + ).eq(0)), + i.index(n) < 0) + ) + return ( + R.verbose('Up key pressed but reached top of current menu'), + void t.preventDefault() + ); + R.verbose('Up key pressed, changing active item'), + r.removeClass(p.selected), + n.addClass(p.selected), + R.set.scrollPosition(n), + h.selectOnKeydown && R.is.single() && R.set.selectedItem(n), + t.preventDefault(); + } + if (e == d.downArrow) { + if ( + 0 === + (n = ( + u && s + ? r.nextAll(g.item + ':not(' + g.unselectable + ')') + : S + ).eq(0)).length + ) + return ( + R.verbose( + 'Down key pressed but reached bottom of current menu', + ), + void t.preventDefault() + ); + R.verbose('Down key pressed, changing active item'), + S.removeClass(p.selected), + n.addClass(p.selected), + R.set.scrollPosition(n), + h.selectOnKeydown && R.is.single() && R.set.selectedItem(n), + t.preventDefault(); + } + e == d.pageUp && (R.scrollPage('up'), t.preventDefault()), + e == d.pageDown && (R.scrollPage('down'), t.preventDefault()), + e == d.escape && + (R.verbose('Escape key pressed, closing dropdown'), R.hide()); + } else + A && t.preventDefault(), + e != d.downArrow || + R.is.visible() || + (R.verbose('Down key pressed, showing dropdown'), + R.show(), + t.preventDefault()); + } else R.has.search() || R.set.selectedLetter(String.fromCharCode(e)); + }, + }, + trigger: { + change: function () { + var t = K.createEvent('HTMLEvents'), + e = I[0]; + e && + (R.verbose('Triggering native change event'), + t.initEvent('change', !0, !1), + e.dispatchEvent(t)); + }, + }, + determine: { + selectAction: function (t, e) { + R.verbose('Determining action', h.action), + W.isFunction(R.action[h.action]) + ? (R.verbose('Triggering preset action', h.action, t, e), + R.action[h.action].call(_, t, e, this)) + : W.isFunction(h.action) + ? (R.verbose('Triggering user action', h.action, t, e), + h.action.call(_, t, e, this)) + : R.error(m.action, h.action); + }, + eventInModule: function (t, e) { + var t = W(t.target), + n = 0 < t.closest(K.documentElement).length, + t = 0 < t.closest(w).length; + return ( + (e = W.isFunction(e) ? e : function () {}), + n && !t + ? (R.verbose('Triggering event', e), e(), !0) + : (R.verbose('Event occurred in dropdown, canceling callback'), !1) + ); + }, + eventOnElement: function (t, e) { + var n = W(t.target), + r = n.closest(g.siblingLabel), + t = K.body.contains(t.target), + r = 0 === w.find(r).length, + n = 0 === n.closest(D).length; + return ( + (e = W.isFunction(e) ? e : function () {}), + t && r && n + ? (R.verbose('Triggering event', e), e(), !0) + : (R.verbose('Event occurred in dropdown menu, canceling callback'), + !1) + ); + }, + }, + action: { + nothing: function () {}, + activate: function (t, e, n) { + (e = void 0 !== e ? e : t), + R.can.activate(W(n)) && + (R.set.selected(e, W(n)), + (R.is.multiple() && !R.is.allFiltered()) || R.hideAndClear()); + }, + select: function (t, e, n) { + (e = void 0 !== e ? e : t), + R.can.activate(W(n)) && + (R.set.value(e, W(n)), + (R.is.multiple() && !R.is.allFiltered()) || R.hideAndClear()); + }, + combo: function (t, e, n) { + R.set.selected((e = void 0 !== e ? e : t), W(n)), R.hideAndClear(); + }, + hide: function (t, e, n) { + R.set.value(e, t), R.hideAndClear(); + }, + }, + get: { + id: function () { + return o; + }, + defaultText: function () { + return w.data(f.defaultText); + }, + defaultValue: function () { + return w.data(f.defaultValue); + }, + placeholderText: function () { + return 'auto' != h.placeholder && 'string' == typeof h.placeholder + ? h.placeholder + : w.data(f.placeholderText) || ''; + }, + text: function () { + return B.text(); + }, + query: function () { + return W.trim(C.val()); + }, + searchWidth: function (t) { + return ( + (t = void 0 !== t ? t : C.val()), x.text(t), Math.ceil(x.width() + 1) + ); + }, + selectionCount: function () { + var t = R.get.values(); + return R.is.multiple() + ? W.isArray(t) + ? t.length + : 0 + : '' !== R.get.value() + ? 1 + : 0; + }, + transition: function (t) { + return 'auto' == h.transition + ? R.is.upward(t) + ? 'slide up' + : 'slide down' + : h.transition; + }, + userValues: function () { + var t = R.get.values(); + return ( + !!t && + ((t = W.isArray(t) ? t : [t]), + W.grep(t, function (t) { + return !1 === R.get.item(t); + })) + ); + }, + uniqueArray: function (n) { + return W.grep(n, function (t, e) { + return W.inArray(t, n) === e; + }); + }, + caretPosition: function () { + var t, + e, + n = C.get(0); + return 'selectionStart' in n + ? n.selectionStart + : K.selection + ? (n.focus(), + (e = (t = K.selection.createRange()).text.length), + t.moveStart('character', -n.value.length), + t.text.length - e) + : void 0; + }, + value: function () { + var t = 0 < I.length ? I.val() : w.data(f.value), + e = W.isArray(t) && 1 === t.length && '' === t[0]; + return void 0 === t || e ? '' : t; + }, + values: function () { + var t = R.get.value(); + return '' === t + ? '' + : !R.has.selectInput() && R.is.multiple() + ? 'string' == typeof t + ? t.split(h.delimiter) + : '' + : t; + }, + remoteValues: function () { + var t = R.get.values(), + r = !1; + return ( + t && + W.each((t = 'string' == typeof t ? [t] : t), function (t, e) { + var n = R.read.remoteData(e); + R.verbose('Restoring value from session data', n, e), + n && ((r = r || {})[e] = n); + }), + r + ); + }, + choiceText: function (t, e) { + if (((e = void 0 !== e ? e : h.preserveHTML), t)) + return ( + 0 < t.find(g.menu).length && + (R.verbose('Retrieving text of element with sub-menu'), + (t = t.clone()).find(g.menu).remove(), + t.find(g.menuIcon).remove()), + void 0 !== t.data(f.text) + ? t.data(f.text) + : e + ? W.trim(t.html()) + : W.trim(t.text()) + ); + }, + choiceValue: function (t, e) { + return ( + (e = e || R.get.choiceText(t)), + !!t && + (void 0 !== t.data(f.value) + ? String(t.data(f.value)) + : 'string' == typeof e + ? W.trim(e.toLowerCase()) + : String(e)) + ); + }, + inputEvent: function () { + var t = C[0]; + return ( + !!t && + (void 0 !== t.oninput + ? 'input' + : void 0 !== t.onpropertychange + ? 'propertychange' + : 'keyup') + ); + }, + selectValues: function () { + var r = { values: [] }; + return ( + w.find('option').each(function () { + var t = W(this), + e = t.html(), + n = t.attr('disabled'), + t = void 0 !== t.attr('value') ? t.attr('value') : e; + 'auto' === h.placeholder && '' === t + ? (r.placeholder = e) + : r.values.push({ name: e, value: t, disabled: n }); + }), + h.placeholder && + 'auto' !== h.placeholder && + (R.debug('Setting placeholder value to', h.placeholder), + (r.placeholder = h.placeholder)), + h.sortSelect + ? (r.values.sort(function (t, e) { + return t.name > e.name ? 1 : -1; + }), + R.debug('Retrieved and sorted values from select', r)) + : R.debug('Retrieved values from select', r), + r + ); + }, + activeItem: function () { + return S.filter('.' + p.active); + }, + selectedItem: function () { + var t = S.not(g.unselectable).filter('.' + p.selected); + return 0 < t.length ? t : S.eq(0); + }, + itemWithAdditions: function (t) { + var e = R.get.item(t), + t = R.create.userChoice(t); + return (e = t && 0 < t.length ? (0 < e.length ? e.add(t) : t) : e); + }, + item: function (r, i) { + var o = !1, + t = + null != + (r = + void 0 !== r + ? r + : void 0 !== R.get.values() + ? R.get.values() + : R.get.text()), + a = R.is.multiple() && W.isArray(r); + return ( + (i = '' === r || 0 === r || i || !1), + t && + S.each(function () { + var t = W(this), + e = R.get.choiceText(t), + n = R.get.choiceValue(t, e); + if (null != n) + if (a) + (-1 === W.inArray(String(n), r) && -1 === W.inArray(e, r)) || + (o = o ? o.add(t) : t); + else if (i) { + if ( + (R.verbose( + 'Ambiguous dropdown value using strict type check', + t, + r, + ), + n === r || e === r) + ) + return (o = t), !0; + } else if (String(n) == String(r) || e == r) + return ( + R.verbose('Found select item by value', n, r), (o = t), !0 + ); + }), + o + ); + }, + }, + check: { + maxSelections: function (t) { + return ( + !h.maxSelections || + ((t = void 0 !== t ? t : R.get.selectionCount()) >= h.maxSelections + ? (R.debug('Maximum selection count reached'), + h.useLabels && + (S.addClass(p.filtered), R.add.message(u.maxSelections)), + !0) + : (R.verbose('No longer at maximum selection count'), + R.remove.message(), + R.remove.filteredItem(), + R.is.searchSelection() && R.filterItems(), + !1)) + ); + }, + }, + restore: { + defaults: function () { + R.clear(), R.restore.defaultText(), R.restore.defaultValue(); + }, + defaultText: function () { + var t = R.get.defaultText(); + t === R.get.placeholderText + ? (R.debug('Restoring default placeholder text', t), + R.set.placeholderText(t)) + : (R.debug('Restoring default text', t), R.set.text(t)); + }, + placeholderText: function () { + R.set.placeholderText(); + }, + defaultValue: function () { + var t = R.get.defaultValue(); + void 0 !== t && + (R.debug('Restoring default value', t), + '' !== t + ? (R.set.value(t), R.set.selected()) + : (R.remove.activeItem(), R.remove.selectedItem())); + }, + labels: function () { + h.allowAdditions && + (h.useLabels || (R.error(m.labels), (h.useLabels = !0)), + R.debug('Restoring selected values'), + R.create.userLabels()), + R.check.maxSelections(); + }, + selected: function () { + R.restore.values(), + R.is.multiple() + ? (R.debug('Restoring previously selected values and labels'), + R.restore.labels()) + : R.debug('Restoring previously selected values'); + }, + values: function () { + R.set.initialLoad(), + h.apiSettings && h.saveRemoteData && R.get.remoteValues() + ? R.restore.remoteValues() + : R.set.selected(), + R.remove.initialLoad(); + }, + remoteValues: function () { + var t = R.get.remoteValues(); + R.debug('Recreating selected from session data', t), + t && + (R.is.single() + ? W.each(t, function (t, e) { + R.set.text(e); + }) + : W.each(t, function (t, e) { + R.add.label(t, e); + })); + }, + }, + read: { + remoteData: function (t) { + return void 0 === J.Storage + ? void R.error(m.noStorage) + : void 0 !== (t = sessionStorage.getItem(t)) && t; + }, + }, + save: { + defaults: function () { + R.save.defaultText(), R.save.placeholderText(), R.save.defaultValue(); + }, + defaultValue: function () { + var t = R.get.value(); + R.verbose('Saving default value as', t), w.data(f.defaultValue, t); + }, + defaultText: function () { + var t = R.get.text(); + R.verbose('Saving default text as', t), w.data(f.defaultText, t); + }, + placeholderText: function () { + var t; + !1 !== h.placeholder && + B.hasClass(p.placeholder) && + ((t = R.get.text()), + R.verbose('Saving placeholder text as', t), + w.data(f.placeholderText, t)); + }, + remoteData: function (t, e) { + void 0 === J.Storage + ? R.error(m.noStorage) + : (R.verbose('Saving remote data to session storage', e, t), + sessionStorage.setItem(e, t)); + }, + }, + clear: function () { + R.is.multiple() && h.useLabels + ? R.remove.labels() + : (R.remove.activeItem(), R.remove.selectedItem()), + R.set.placeholderText(), + R.clearValue(); + }, + clearValue: function () { + R.set.value(''); + }, + scrollPage: function (t, e) { + var e = e || R.get.selectedItem(), + n = e.closest(g.menu), + r = n.outerHeight(), + i = n.scrollTop(), + o = S.eq(0).outerHeight(), + r = Math.floor(r / o), + i = (n.prop('scrollHeight'), 'up' == t ? i - o * r : i + o * r), + o = S.not(g.unselectable), + r = 'up' == t ? o.index(e) - r : o.index(e) + r, + r = ('up' == t ? 0 <= r : r < o.length) + ? o.eq(r) + : 'up' == t + ? o.first() + : o.last(); + 0 < r.length && + (R.debug('Scrolling page', t, r), + e.removeClass(p.selected), + r.addClass(p.selected), + h.selectOnKeydown && R.is.single() && R.set.selectedItem(r), + n.scrollTop(i)); + }, + set: { + filtered: function () { + var t = R.is.multiple(), + e = R.is.searchSelection(), + n = t && e, + e = e ? R.get.query() : '', + r = 'string' == typeof e && 0 < e.length, + i = R.get.searchWidth(), + e = '' !== e; + t && + r && + (R.verbose('Adjusting input width', i, h.glyphWidth), + C.css('width', i)), + r || (n && e) + ? (R.verbose('Hiding placeholder text'), B.addClass(p.filtered)) + : (t && (!n || e)) || + (R.verbose('Showing placeholder text'), + B.removeClass(p.filtered)); + }, + empty: function () { + w.addClass(p.empty); + }, + loading: function () { + w.addClass(p.loading); + }, + placeholderText: function (t) { + (t = t || R.get.placeholderText()), + R.debug('Setting placeholder text', t), + R.set.text(t), + B.addClass(p.placeholder); + }, + tabbable: function () { + R.is.searchSelection() + ? (R.debug('Added tabindex to searchable dropdown'), + C.val('').attr('tabindex', 0), + D.attr('tabindex', -1)) + : (R.debug('Added tabindex to dropdown'), + void 0 === w.attr('tabindex') && + (w.attr('tabindex', 0), D.attr('tabindex', -1))); + }, + initialLoad: function () { + R.verbose('Setting initial load'), (t = !0); + }, + activeItem: function (t) { + h.allowAdditions && 0 < t.filter(g.addition).length + ? t.addClass(p.filtered) + : t.addClass(p.active); + }, + partialSearch: function (t) { + var e = R.get.query().length; + C.val(t.substr(0, e)); + }, + scrollPosition: function (t, e) { + var n, + r, + i = (t = t || R.get.selectedItem()).closest(g.menu), + o = t && 0 < t.length; + (e = void 0 !== e && e), + t && + 0 < i.length && + o && + (t.position().top, + i.addClass(p.loading), + (t = (o = i.scrollTop()) - i.offset().top + t.offset().top), + e || ((r = o + i.height() < t + 5), (n = t - 5 < o)), + R.debug('Scrolling to active item', t), + (e || n || r) && i.scrollTop(t), + i.removeClass(p.loading)); + }, + text: function (t) { + 'select' !== h.action && + ('combo' == h.action + ? (R.debug('Changing combo button text', t, M), + h.preserveHTML ? M.html(t) : M.text(t)) + : (t !== R.get.placeholderText() && B.removeClass(p.placeholder), + R.debug('Changing text', t, B), + B.removeClass(p.filtered), + h.preserveHTML ? B.html(t) : B.text(t))); + }, + selectedItem: function (t) { + var e = R.get.choiceValue(t), + n = R.get.choiceText(t, !1), + r = R.get.choiceText(t, !0); + R.debug('Setting user selection to item', t), + R.remove.activeItem(), + R.set.partialSearch(n), + R.set.activeItem(t), + R.set.selected(e, t), + R.set.text(r); + }, + selectedLetter: function (t) { + var e = S.filter('.' + p.selected), + n = 0 < e.length && R.has.firstLetter(e, t), + r = !1; + n && ((n = e.nextAll(S).eq(0)), R.has.firstLetter(n, t) && (r = n)), + r || + S.each(function () { + if (R.has.firstLetter(W(this), t)) return (r = W(this)), !1; + }), + r && + (R.verbose('Scrolling to next value with letter', t), + R.set.scrollPosition(r), + e.removeClass(p.selected), + r.addClass(p.selected), + h.selectOnKeydown && R.is.single() && R.set.selectedItem(r)); + }, + direction: function (t) { + 'auto' == h.direction + ? (R.remove.upward(), + (R.can.openDownward(t) ? R.remove : R.set).upward(t), + R.is.leftward(t) || R.can.openRightward(t) || R.set.leftward(t)) + : 'upward' == h.direction && R.set.upward(t); + }, + upward: function (t) { + (t || w).addClass(p.upward); + }, + leftward: function (t) { + (t || D).addClass(p.leftward); + }, + value: function (t, e, n) { + var r = R.escape.value(t), + i = 0 < I.length, + o = (R.has.value(t), R.get.values()), + a = void 0 !== t ? String(t) : t; + if (i) { + if ( + !h.allowReselection && + a == o && + (R.verbose('Skipping value update already same value', t, o), + !R.is.initialLoad()) + ) + return; + R.is.single() && + R.has.selectInput() && + R.can.extendSelect() && + (R.debug('Adding user option', t), R.add.optionValue(t)), + R.debug('Updating input value', r, o), + (Q = !0), + I.val(r), + !1 === h.fireOnInit && R.is.initialLoad() + ? R.debug('Input native change event ignored on initial load') + : R.trigger.change(), + (Q = !1); + } else + R.verbose('Storing value in metadata', r, I), + r !== o && w.data(f.value, a); + !1 === h.fireOnInit && R.is.initialLoad() + ? R.verbose('No callback on initial load', h.onChange) + : h.onChange.call(_, t, e, n); + }, + active: function () { + w.addClass(p.active); + }, + multiple: function () { + w.addClass(p.multiple); + }, + visible: function () { + w.addClass(p.visible); + }, + exactly: function (t, e) { + R.debug('Setting selected to exact values'), + R.clear(), + R.set.selected(t, e); + }, + selected: function (t, s) { + var l = R.is.multiple(); + (s = h.allowAdditions + ? s || R.get.itemWithAdditions(t) + : s || R.get.item(t)) && + (R.debug('Setting selected menu item to', s), + R.is.multiple() && R.remove.searchWidth(), + R.is.single() + ? (R.remove.activeItem(), R.remove.selectedItem()) + : h.useLabels && R.remove.selectedItem(), + s.each(function () { + var t = W(this), + e = R.get.choiceText(t), + n = R.get.choiceValue(t, e), + r = t.hasClass(p.filtered), + i = t.hasClass(p.active), + o = t.hasClass(p.addition), + a = l && 1 == s.length; + l + ? !i || o + ? (h.apiSettings && h.saveRemoteData && R.save.remoteData(e, n), + h.useLabels + ? (R.add.value(n, e, t), + R.add.label(n, e, a), + R.set.activeItem(t), + R.filterActive(), + R.select.nextAvailable(s)) + : (R.add.value(n, e, t), + R.set.text(R.add.variables(u.count)), + R.set.activeItem(t))) + : r || + (R.debug('Selected active value, removing label'), + R.remove.selected(n)) + : (h.apiSettings && h.saveRemoteData && R.save.remoteData(e, n), + R.set.text(e), + R.set.value(n, e, t), + t.addClass(p.active).addClass(p.selected)); + })); + }, + }, + add: { + label: function (t, e, n) { + var r, + i = R.is.searchSelection() ? C : B, + o = R.escape.value(t); + (r = W('<a />') + .addClass(p.label) + .attr('data-' + f.value, o) + .html(v.label(o, e))), + (r = h.onLabelCreate.call(r, o, e)), + R.has.label(t) + ? R.debug('Label already exists, skipping', o) + : (h.label.variation && r.addClass(h.label.variation), + !0 === n + ? (R.debug('Animating in label', r), + r + .addClass(p.hidden) + .insertBefore(i) + .transition(h.label.transition, h.label.duration)) + : (R.debug('Adding selection label', r), r.insertBefore(i))); + }, + message: function (t) { + var e = D.children(g.message), + t = h.templates.message(R.add.variables(t)); + 0 < e.length + ? e.html(t) + : W('<div/>').html(t).addClass(p.message).appendTo(D); + }, + optionValue: function (t) { + var e = R.escape.value(t); + 0 < I.find('option[value="' + R.escape.string(e) + '"]').length || + (R.disconnect.selectObserver(), + R.is.single() && + (R.verbose('Removing previous user addition'), + I.find('option.' + p.addition).remove()), + W('<option/>') + .prop('value', e) + .addClass(p.addition) + .html(t) + .appendTo(I), + R.verbose('Adding user addition as an <option>', t), + R.observe.select()); + }, + userSuggestion: function (t) { + var e = D.children(g.addition), + n = R.get.item(t), + n = n && n.not(g.addition).length, + r = 0 < e.length; + (h.useLabels && R.has.maxSelections()) || + ('' === t || n + ? e.remove() + : (r + ? (e + .data(f.value, t) + .data(f.text, t) + .attr('data-' + f.value, t) + .attr('data-' + f.text, t) + .removeClass(p.filtered), + h.hideAdditions || + ((n = h.templates.addition( + R.add.variables(u.addResult, t), + )), + e.html(n)), + R.verbose('Replacing user suggestion with new value', e)) + : ((e = R.create.userChoice(t)).prependTo(D), + R.verbose( + 'Adding item choice to menu corresponding with user choice addition', + e, + )), + (h.hideAdditions && !R.is.allFiltered()) || + e.addClass(p.selected).siblings().removeClass(p.selected), + R.refreshItems())); + }, + variables: function (t, e) { + var n, + r = -1 !== t.search('{count}'), + i = -1 !== t.search('{maxCount}'), + o = -1 !== t.search('{term}'); + return ( + R.verbose('Adding templated variables to message', t), + r && ((n = R.get.selectionCount()), (t = t.replace('{count}', n))), + i && + ((n = R.get.selectionCount()), + (t = t.replace('{maxCount}', h.maxSelections))), + o && ((r = e || R.get.query()), (t = t.replace('{term}', r))), + t + ); + }, + value: function (t, e, n) { + var r, + i = R.get.values(); + '' === t + ? R.debug('Cannot select blank values from multiselect') + : ((r = W.isArray(i) + ? ((r = i.concat([t])), R.get.uniqueArray(r)) + : [t]), + R.has.selectInput() + ? R.can.extendSelect() && + (R.debug('Adding value to select', t, r, I), + R.add.optionValue(t)) + : ((r = r.join(h.delimiter)), + R.debug('Setting hidden input to delimited value', r, I)), + !1 === h.fireOnInit && R.is.initialLoad() + ? R.verbose('Skipping onadd callback on initial load', h.onAdd) + : h.onAdd.call(_, t, e, n), + R.set.value(r, t, e, n), + R.check.maxSelections()); + }, + }, + remove: { + active: function () { + w.removeClass(p.active); + }, + activeLabel: function () { + w.find(g.label).removeClass(p.active); + }, + empty: function () { + w.removeClass(p.empty); + }, + loading: function () { + w.removeClass(p.loading); + }, + initialLoad: function () { + t = !1; + }, + upward: function (t) { + (t || w).removeClass(p.upward); + }, + leftward: function (t) { + (t || D).removeClass(p.leftward); + }, + visible: function () { + w.removeClass(p.visible); + }, + activeItem: function () { + S.removeClass(p.active); + }, + filteredItem: function () { + (h.useLabels && R.has.maxSelections()) || + ((h.useLabels && R.is.multiple() + ? S.not('.' + p.active) + : S + ).removeClass(p.filtered), + R.remove.empty()); + }, + optionValue: function (t) { + var t = R.escape.value(t), + e = I.find('option[value="' + R.escape.string(t) + '"]'); + 0 < e.length && + e.hasClass(p.addition) && + (a && + (a.disconnect(), + R.verbose('Temporarily disconnecting mutation observer')), + e.remove(), + R.verbose('Removing user addition as an <option>', t), + a && a.observe(I[0], { childList: !0, subtree: !0 })); + }, + message: function () { + D.children(g.message).remove(); + }, + searchWidth: function () { + C.css('width', ''); + }, + searchTerm: function () { + R.verbose('Cleared search term'), C.val(''), R.set.filtered(); + }, + userAddition: function () { + S.filter(g.addition).remove(); + }, + selected: function (t, e) { + if ( + !(e = h.allowAdditions + ? e || R.get.itemWithAdditions(t) + : e || R.get.item(t)) + ) + return !1; + e.each(function () { + var t = W(this), + e = R.get.choiceText(t), + n = R.get.choiceValue(t, e); + R.is.multiple() + ? h.useLabels + ? (R.remove.value(n, e, t), R.remove.label(n)) + : (R.remove.value(n, e, t), + 0 === R.get.selectionCount() + ? R.set.placeholderText() + : R.set.text(R.add.variables(u.count))) + : R.remove.value(n, e, t), + t.removeClass(p.filtered).removeClass(p.active), + h.useLabels && t.removeClass(p.selected); + }); + }, + selectedItem: function () { + S.removeClass(p.selected); + }, + value: function (t, e, n) { + var r, + i = R.get.values(); + R.has.selectInput() + ? (R.verbose('Input is <select> removing selected option', t), + (r = R.remove.arrayValue(t, i)), + R.remove.optionValue(t)) + : (R.verbose('Removing from delimited values', t), + (r = (r = R.remove.arrayValue(t, i)).join(h.delimiter))), + !1 === h.fireOnInit && R.is.initialLoad() + ? R.verbose('No callback on initial load', h.onRemove) + : h.onRemove.call(_, t, e, n), + R.set.value(r, e, n), + R.check.maxSelections(); + }, + arrayValue: function (e, t) { + return ( + W.isArray(t) || (t = [t]), + (t = W.grep(t, function (t) { + return e != t; + })), + R.verbose('Removed value from delimited string', e, t), + t + ); + }, + label: function (t, e) { + t = w + .find(g.label) + .filter('[data-' + f.value + '="' + R.escape.string(t) + '"]'); + R.verbose('Removing label', t), t.remove(); + }, + activeLabels: function (t) { + (t = t || w.find(g.label).filter('.' + p.active)), + R.verbose('Removing active label selections', t), + R.remove.labels(t); + }, + labels: function (t) { + (t = t || w.find(g.label)), + R.verbose('Removing labels', t), + t.each(function () { + var t = W(this), + e = t.data(f.value), + n = void 0 !== e ? String(e) : e, + r = R.is.userValue(n); + !1 === h.onLabelRemove.call(t, e) + ? R.debug('Label remove callback cancelled removal') + : (R.remove.message(), + r + ? (R.remove.value(n), R.remove.label(n)) + : R.remove.selected(n)); + }); + }, + tabbable: function () { + R.is.searchSelection() + ? (R.debug('Searchable dropdown initialized'), + C.removeAttr('tabindex')) + : (R.debug('Simple selection dropdown initialized'), + w.removeAttr('tabindex')), + D.removeAttr('tabindex'); + }, + }, + has: { + menuSearch: function () { + return R.has.search() && 0 < C.closest(D).length; + }, + search: function () { + return 0 < C.length; + }, + sizer: function () { + return 0 < x.length; + }, + selectInput: function () { + return I.is('select'); + }, + minCharacters: function (t) { + return ( + !h.minCharacters || + (t = void 0 !== t ? String(t) : String(R.get.query())).length >= + h.minCharacters + ); + }, + firstLetter: function (t, e) { + return ( + !(!t || 0 === t.length || 'string' != typeof e) && + ((t = R.get.choiceText(t, !1)), + (e = e.toLowerCase()) == String(t).charAt(0).toLowerCase()) + ); + }, + input: function () { + return 0 < I.length; + }, + items: function () { + return 0 < S.length; + }, + menu: function () { + return 0 < D.length; + }, + message: function () { + return 0 !== D.children(g.message).length; + }, + label: function (t) { + t = R.escape.value(t); + return ( + 0 < + w + .find(g.label) + .filter('[data-' + f.value + '="' + R.escape.string(t) + '"]') + .length + ); + }, + maxSelections: function () { + return h.maxSelections && R.get.selectionCount() >= h.maxSelections; + }, + allResultsFiltered: function () { + var t = S.not(g.addition); + return t.filter(g.unselectable).length === t.length; + }, + userSuggestion: function () { + return 0 < D.children(g.addition).length; + }, + query: function () { + return '' !== R.get.query(); + }, + value: function (t) { + var e = R.get.values(); + return !!(W.isArray(e) ? e && -1 !== W.inArray(t, e) : e == t); + }, + }, + is: { + active: function () { + return w.hasClass(p.active); + }, + bubbledLabelClick: function (t) { + return W(t.target).is('select, input') && 0 < w.closest('label').length; + }, + bubbledIconClick: function (t) { + return 0 < W(t.target).closest(U).length; + }, + alreadySetup: function () { + return ( + w.is('select') && + void 0 !== w.parent(g.dropdown).data(y) && + 0 === w.prev().length + ); + }, + animating: function (t) { + return t + ? t.transition && t.transition('is animating') + : D.transition && D.transition('is animating'); + }, + leftward: function (t) { + return (t || D).hasClass(p.leftward); + }, + disabled: function () { + return w.hasClass(p.disabled); + }, + focused: function () { + return K.activeElement === w[0]; + }, + focusedOnSearch: function () { + return K.activeElement === C[0]; + }, + allFiltered: function () { + return ( + (R.is.multiple() || R.has.search()) && + !(0 == h.hideAdditions && R.has.userSuggestion()) && + !R.has.message() && + R.has.allResultsFiltered() + ); + }, + hidden: function (t) { + return !R.is.visible(t); + }, + initialLoad: function () { + return t; + }, + inObject: function (n, t) { + var r = !1; + return ( + W.each(t, function (t, e) { + if (e == n) return (r = !0); + }), + r + ); + }, + multiple: function () { + return w.hasClass(p.multiple); + }, + remote: function () { + return h.apiSettings && R.can.useAPI(); + }, + single: function () { + return !R.is.multiple(); + }, + selectMutation: function (t) { + var n = !1; + return ( + W.each(t, function (t, e) { + if (e.target && W(e.target).is('select')) return (n = !0); + }), + n + ); + }, + search: function () { + return w.hasClass(p.search); + }, + searchSelection: function () { + return R.has.search() && 1 === C.parent(g.dropdown).length; + }, + selection: function () { + return w.hasClass(p.selection); + }, + userValue: function (t) { + return -1 !== W.inArray(t, R.get.userValues()); + }, + upward: function (t) { + return (t || w).hasClass(p.upward); + }, + visible: function (t) { + return (t || D).hasClass(p.visible); + }, + verticallyScrollableContext: function () { + var t = E.get(0) !== J && E.css('overflow-y'); + return 'auto' == t || 'scroll' == t; + }, + horizontallyScrollableContext: function () { + var t = E.get(0) !== J && E.css('overflow-X'); + return 'auto' == t || 'scroll' == t; + }, + }, + can: { + activate: function (t) { + return ( + !!h.useLabels || + !R.has.maxSelections() || + !(!R.has.maxSelections() || !t.hasClass(p.active)) + ); + }, + openDownward: function (t) { + var e, + t = t || D, + n = !0; + return ( + t.addClass(p.loading), + (e = { + context: { scrollTop: E.scrollTop(), height: E.outerHeight() }, + menu: { offset: t.offset(), height: t.outerHeight() }, + }), + R.is.verticallyScrollableContext() && + (e.menu.offset.top += e.context.scrollTop), + (n = (e = { + above: e.context.scrollTop <= e.menu.offset.top - e.menu.height, + below: + e.context.scrollTop + e.context.height >= + e.menu.offset.top + e.menu.height, + }).below + ? (R.verbose('Dropdown can fit in context downward', e), !0) + : e.above + ? (R.verbose('Dropdown cannot fit below, opening upward', e), !1) + : (R.verbose( + 'Dropdown cannot fit in either direction, favoring downward', + e, + ), + !0)), + t.removeClass(p.loading), + n + ); + }, + openRightward: function (t) { + var e, + t = t || D, + n = !0; + return ( + t.addClass(p.loading), + (e = { + context: { scrollLeft: E.scrollLeft(), width: E.outerWidth() }, + menu: { offset: t.offset(), width: t.outerWidth() }, + }), + R.is.horizontallyScrollableContext() && + (e.menu.offset.left += e.context.scrollLeft), + (e = + e.menu.offset.left + e.menu.width >= + e.context.scrollLeft + e.context.width) && + (R.verbose('Dropdown cannot fit in context rightward', e), + (n = !1)), + t.removeClass(p.loading), + n + ); + }, + click: function () { + return G || 'click' == h.on; + }, + extendSelect: function () { + return h.allowAdditions || h.apiSettings; + }, + show: function () { + return !R.is.disabled() && (R.has.items() || R.has.message()); + }, + useAPI: function () { + return void 0 !== W.fn.api; + }, + }, + animate: { + show: function (t, e) { + var n = e || D, + r = e + ? function () {} + : function () { + R.hideSubMenus(), R.hideOthers(), R.set.active(); + }; + (t = W.isFunction(t) ? t : function () {}), + R.verbose('Doing menu show animation', n), + R.set.direction(e), + (e = R.get.transition(e)), + R.is.selection() && R.set.scrollPosition(R.get.selectedItem(), !0), + (R.is.hidden(n) || R.is.animating(n)) && + ('none' == e + ? (r(), n.transition('show'), t.call(_)) + : void 0 !== W.fn.transition && w.transition('is supported') + ? n.transition({ + animation: e + ' in', + debug: h.debug, + verbose: h.verbose, + duration: h.duration, + queue: !0, + onStart: r, + onComplete: function () { + t.call(_); + }, + }) + : R.error(m.noTransition, e)); + }, + hide: function (t, e) { + var n = e || D, + r = + (h.duration, + e + ? function () {} + : function () { + R.can.click() && R.unbind.intent(), R.remove.active(); + }), + e = R.get.transition(e); + (t = W.isFunction(t) ? t : function () {}), + (R.is.visible(n) || R.is.animating(n)) && + (R.verbose('Doing menu hide animation', n), + 'none' == e + ? (r(), n.transition('hide'), t.call(_)) + : void 0 !== W.fn.transition && w.transition('is supported') + ? n.transition({ + animation: e + ' out', + duration: h.duration, + debug: h.debug, + verbose: h.verbose, + queue: !0, + onStart: r, + onComplete: function () { + t.call(_); + }, + }) + : R.error(m.transition)); + }, + }, + hideAndClear: function () { + R.remove.searchTerm(), + R.has.maxSelections() || + (R.has.search() + ? R.hide(function () { + R.remove.filteredItem(); + }) + : R.hide()); + }, + delay: { + show: function () { + R.verbose('Delaying show event to ensure user intent'), + clearTimeout(R.timer), + (R.timer = setTimeout(R.show, h.delay.show)); + }, + hide: function () { + R.verbose('Delaying hide event to ensure user intent'), + clearTimeout(R.timer), + (R.timer = setTimeout(R.hide, h.delay.hide)); + }, + }, + escape: { + value: function (t) { + var e = W.isArray(t), + n = 'string' == typeof t, + r = !n && !e, + n = n && -1 !== t.search(A.quote), + i = []; + return r || !n + ? t + : (R.debug('Encoding quote values for use in select', t), + e + ? (W.each(t, function (t, e) { + i.push(e.replace(A.quote, '"')); + }), + i) + : t.replace(A.quote, '"')); + }, + string: function (t) { + return (t = String(t)).replace(A.escape, '\\$&'); + }, + }, + setting: function (t, e) { + if ((R.debug('Changing setting', t, e), W.isPlainObject(t))) + W.extend(!0, h, t); + else { + if (void 0 === e) return h[t]; + W.isPlainObject(h[t]) ? W.extend(!0, h[t], e) : (h[t] = e); + } + }, + internal: function (t, e) { + if (W.isPlainObject(t)) W.extend(!0, R, t); + else { + if (void 0 === e) return R[t]; + R[t] = e; + } + }, + debug: function () { + !h.silent && + h.debug && + (h.performance + ? R.performance.log(arguments) + : ((R.debug = Function.prototype.bind.call( + console.info, + console, + h.name + ':', + )), + R.debug.apply(console, arguments))); + }, + verbose: function () { + !h.silent && + h.verbose && + h.debug && + (h.performance + ? R.performance.log(arguments) + : ((R.verbose = Function.prototype.bind.call( + console.info, + console, + h.name + ':', + )), + R.verbose.apply(console, arguments))); + }, + error: function () { + h.silent || + ((R.error = Function.prototype.bind.call( + console.error, + console, + h.name + ':', + )), + R.error.apply(console, arguments)); + }, + performance: { + log: function (t) { + var e, n; + h.performance && + ((n = (e = new Date().getTime()) - (z || e)), + (z = e), + H.push({ + Name: t[0], + Arguments: [].slice.call(t, 1) || '', + Element: _, + 'Execution Time': n, + })), + clearTimeout(R.performance.timer), + (R.performance.timer = setTimeout(R.performance.display, 500)); + }, + display: function () { + var t = h.name + ':', + n = 0; + (z = !1), + clearTimeout(R.performance.timer), + W.each(H, function (t, e) { + n += e['Execution Time']; + }), + (t += ' ' + n + 'ms'), + O && (t += " '" + O + "'"), + (void 0 !== console.group || void 0 !== console.table) && + 0 < H.length && + (console.groupCollapsed(t), + console.table + ? console.table(H) + : W.each(H, function (t, e) { + console.log(e.Name + ': ' + e['Execution Time'] + 'ms'); + }), + console.groupEnd()), + (H = []); + }, + }, + invoke: function (r, t, e) { + var i, + o, + n, + a = T; + return ( + (t = t || q), + (e = _ || e), + 'string' == typeof r && + void 0 !== a && + ((r = r.split(/[\. ]/)), + (i = r.length - 1), + W.each(r, function (t, e) { + var n = + t != i + ? e + r[t + 1].charAt(0).toUpperCase() + r[t + 1].slice(1) + : r; + if (!W.isPlainObject(a[n]) || t == i) + return void 0 !== a[n] + ? ((o = a[n]), !1) + : W.isPlainObject(a[e]) && t != i + ? void (a = a[e]) + : (void 0 !== a[e] ? (o = a[e]) : R.error(m.method, r), !1); + a = a[n]; + })), + W.isFunction(o) ? (n = o.apply(e, t)) : void 0 !== o && (n = o), + W.isArray(P) + ? P.push(n) + : void 0 !== P + ? (P = [P, n]) + : void 0 !== n && (P = n), + o + ); + }, + }; + V + ? (void 0 === T && R.initialize(), R.invoke(j)) + : (void 0 !== T && T.invoke('destroy'), R.initialize()); + }), + void 0 !== P ? P : L + ); + }), + (W.fn.dropdown.settings = { + silent: !1, + debug: !1, + verbose: !1, + performance: !0, + on: 'click', + action: 'activate', + values: !1, + apiSettings: !1, + selectOnKeydown: !0, + minCharacters: 0, + filterRemoteData: !1, + saveRemoteData: !0, + throttle: 200, + context: J, + direction: 'auto', + keepOnScreen: !0, + match: 'both', + fullTextSearch: !1, + placeholder: 'auto', + preserveHTML: !0, + sortSelect: !1, + forceSelection: !0, + allowAdditions: !1, + hideAdditions: !0, + maxSelections: !1, + useLabels: !0, + delimiter: ',', + showOnFocus: !0, + allowReselection: !1, + allowTab: !0, + allowCategorySelection: !1, + fireOnInit: !1, + transition: 'auto', + duration: 200, + glyphWidth: 1.037, + label: { transition: 'scale', duration: 200, variation: !1 }, + delay: { hide: 300, show: 200, search: 20, touch: 50 }, + onChange: function (t, e, n) {}, + onAdd: function (t, e, n) {}, + onRemove: function (t, e, n) {}, + onLabelSelect: function (t) {}, + onLabelCreate: function (t, e) { + return W(this); + }, + onLabelRemove: function (t) { + return !0; + }, + onNoResults: function (t) { + return !0; + }, + onShow: function () {}, + onHide: function () {}, + name: 'Dropdown', + namespace: 'dropdown', + message: { + addResult: 'Add <b>{term}</b>', + count: '{count} selected', + maxSelections: 'Max {maxCount} selections', + noResults: 'No results found.', + serverError: 'There was an error contacting the server', + }, + error: { + action: 'You called a dropdown action that was not defined', + alreadySetup: + 'Once a select has been initialized behaviors must be called on the created ui dropdown', + labels: 'Allowing user additions currently requires the use of labels.', + missingMultiple: + '<select> requires multiple property to be set to correctly preserve multiple values', + method: 'The method you called is not defined.', + noAPI: 'The API module is required to load resources remotely', + noStorage: 'Saving remote data requires session storage', + noTransition: + 'This module requires ui transitions <https://github.com/Semantic-Org/UI-Transition>', + }, + regExp: { escape: /[-[\]{}()*+?.,\\^$|#\s]/g, quote: /"/g }, + metadata: { + defaultText: 'defaultText', + defaultValue: 'defaultValue', + placeholderText: 'placeholder', + text: 'text', + value: 'value', + }, + fields: { + remoteValues: 'results', + values: 'values', + disabled: 'disabled', + name: 'name', + value: 'value', + text: 'text', + }, + keys: { + backspace: 8, + delimiter: 188, + deleteKey: 46, + enter: 13, + escape: 27, + pageUp: 33, + pageDown: 34, + leftArrow: 37, + upArrow: 38, + rightArrow: 39, + downArrow: 40, + }, + selector: { + addition: '.addition', + dropdown: '.ui.dropdown', + hidden: '.hidden', + icon: '> .dropdown.icon', + input: '> input[type="hidden"], > select', + item: '.item', + label: '> .label', + remove: '> .label > .delete.icon', + siblingLabel: '.label', + menu: '.menu', + message: '.message', + menuIcon: '.dropdown.icon', + search: 'input.search, .menu > .search > input, .menu input.search', + sizer: '> input.sizer', + text: '> .text:not(.icon)', + unselectable: '.disabled, .filtered', + }, + className: { + active: 'active', + addition: 'addition', + animating: 'animating', + disabled: 'disabled', + empty: 'empty', + dropdown: 'ui dropdown', + filtered: 'filtered', + hidden: 'hidden transition', + item: 'item', + label: 'ui label', + loading: 'loading', + menu: 'menu', + message: 'message', + multiple: 'multiple', + placeholder: 'default', + sizer: 'sizer', + search: 'search', + selected: 'selected', + selection: 'selection', + upward: 'upward', + leftward: 'left', + visible: 'visible', + }, + }), + (W.fn.dropdown.settings.templates = { + dropdown: function (t) { + var e = t.placeholder || !1, + n = (t.values, ''); + return ( + (n += '<i class="dropdown icon"></i>'), + t.placeholder + ? (n += '<div class="default text">' + e + '</div>') + : (n += '<div class="text"></div>'), + (n += '<div class="menu">'), + W.each(t.values, function (t, e) { + n += e.disabled + ? '<div class="disabled item" data-value="' + + e.value + + '">' + + e.name + + '</div>' + : '<div class="item" data-value="' + e.value + '">' + e.name + '</div>'; + }), + (n += '</div>') + ); + }, + menu: function (t, i) { + var t = t[i.values] || {}, + o = ''; + return ( + W.each(t, function (t, e) { + var n = e[i.text] ? 'data-text="' + e[i.text] + '"' : '', + r = e[i.disabled] ? 'disabled ' : ''; + o = + (o += + '<div class="' + r + 'item" data-value="' + e[i.value] + '"' + n + '>') + + e[i.name] + + '</div>'; + }), + o + ); + }, + label: function (t, e) { + return e + '<i class="delete icon"></i>'; + }, + message: function (t) { + return t; + }, + addition: function (t) { + return t; + }, + }); + })(jQuery, window, document); + }, + {}, + ], + 63: [ + function (t, e, n) { + !(function (w, t, E) { + 'use strict'; + (t = + void 0 !== t && t.Math == Math + ? t + : 'undefined' != typeof self && self.Math == Math + ? self + : Function('return this')()), + (w.fn.transition = function () { + var p, + a = w(this), + d = a.selector || '', + f = new Date().getTime(), + g = [], + m = arguments, + v = m[0], + b = [].slice.call(arguments, 1), + y = 'string' == typeof v; + return ( + t.requestAnimationFrame || + t.mozRequestAnimationFrame || + t.webkitRequestAnimationFrame || + t.msRequestAnimationFrame, + a.each(function (n) { + var l, + s, + e, + u, + r, + i, + t, + o, + c = w(this), + A = this, + h = { + initialize: function () { + (l = h.get.settings.apply(A, m)), + (u = l.className), + (e = l.error), + (r = l.metadata), + (o = '.' + l.namespace), + (t = 'module-' + l.namespace), + (s = c.data(t) || h), + (i = h.get.animationEndEvent()), + !1 === (y = y && h.invoke(v)) && + (h.verbose('Converted arguments into settings object', l), + l.interval ? h.delay(l.animate) : h.animate(), + h.instantiate()); + }, + instantiate: function () { + h.verbose('Storing instance of module', h), (s = h), c.data(t, s); + }, + destroy: function () { + h.verbose('Destroying previous module for', A), c.removeData(t); + }, + refresh: function () { + h.verbose('Refreshing display type on next animation'), + delete h.displayType; + }, + forceRepaint: function () { + h.verbose('Forcing element repaint'); + var t = c.parent(), + e = c.next(); + 0 === e.length ? c.detach().appendTo(t) : c.detach().insertBefore(e); + }, + repaint: function () { + h.verbose('Repainting element'), A.offsetWidth; + }, + delay: function (t) { + var e = + (e = h.get.animationDirection()) || + (h.can.transition() ? h.get.direction() : 'static'); + (t = void 0 !== t ? t : l.interval), + (t = + ('auto' == l.reverse && e == u.outward) || 1 == l.reverse + ? (a.length - n) * l.interval + : n * l.interval), + h.debug('Delaying animation by', t), + setTimeout(h.animate, t); + }, + animate: function (t) { + if (((l = t || l), !h.is.supported())) return h.error(e.support), !1; + if ((h.debug('Preparing animation', l.animation), h.is.animating())) { + if (l.queue) + return ( + !l.allowRepeats && + h.has.direction() && + h.is.occurring() && + !0 !== h.queuing + ? h.debug( + 'Animation is currently occurring, preventing queueing same animation', + l.animation, + ) + : h.queue(l.animation), + !1 + ); + if (!l.allowRepeats && h.is.occurring()) + return ( + h.debug( + 'Animation is already occurring, will not execute repeated animation', + l.animation, + ), + !1 + ); + h.debug( + 'New animation started, completing previous early', + l.animation, + ), + s.complete(); + } + h.can.animate() + ? h.set.animating(l.animation) + : h.error(e.noAnimation, l.animation, A); + }, + reset: function () { + h.debug('Resetting animation to beginning conditions'), + h.remove.animationCallbacks(), + h.restore.conditions(), + h.remove.animating(); + }, + queue: function (t) { + h.debug('Queueing animation of', t), + (h.queuing = !0), + c.one(i + '.queue' + o, function () { + (h.queuing = !1), h.repaint(), h.animate.apply(this, l); + }); + }, + complete: function (t) { + h.debug('Animation complete', l.animation), + h.remove.completeCallback(), + h.remove.failSafe(), + h.is.looping() || + (h.is.outward() + ? (h.verbose('Animation is outward, hiding element'), + h.restore.conditions(), + h.hide()) + : h.is.inward() + ? (h.verbose('Animation is outward, showing element'), + h.restore.conditions(), + h.show()) + : (h.verbose('Static animation completed'), + h.restore.conditions(), + l.onComplete.call(A))); + }, + force: { + visible: function () { + var t = c.attr('style'), + e = h.get.userStyle(), + n = h.get.displayType(), + e = e + 'display: ' + n + ' !important;', + t = void 0 === t || '' === t; + c.css('display') !== n + ? (h.verbose('Overriding default display to show element', n), + c.attr('style', e)) + : t && c.removeAttr('style'); + }, + hidden: function () { + var t = c.attr('style'), + t = void 0 === t || '' === t; + 'none' === c.css('display') || h.is.hidden() + ? t && c.removeAttr('style') + : (h.verbose('Overriding default display to hide element'), + c.css('display', 'none')); + }, + }, + has: { + direction: function (t) { + var n = !1; + return ( + 'string' == typeof (t = t || l.animation) && + ((t = t.split(' ')), + w.each(t, function (t, e) { + (e !== u.inward && e !== u.outward) || (n = !0); + })), + n + ); + }, + inlineDisplay: function () { + var t = c.attr('style') || ''; + return w.isArray(t.match(/display.*?;/, '')); + }, + }, + set: { + animating: function (t) { + h.remove.completeCallback(), + (t = t || l.animation), + (t = h.get.animationClass(t)), + h.save.animation(t), + h.force.visible(), + h.remove.hidden(), + h.remove.direction(), + h.start.animation(t); + }, + duration: function (t, e) { + (!(e = 'number' == typeof (e = e || l.duration) ? e + 'ms' : e) && + 0 !== e) || + (h.verbose('Setting animation duration', e), + c.css({ 'animation-duration': e })); + }, + direction: function (t) { + (t = t || h.get.direction()) == u.inward + ? h.set.inward() + : h.set.outward(); + }, + looping: function () { + h.debug('Transition set to loop'), c.addClass(u.looping); + }, + hidden: function () { + c.addClass(u.transition).addClass(u.hidden); + }, + inward: function () { + h.debug('Setting direction to inward'), + c.removeClass(u.outward).addClass(u.inward); + }, + outward: function () { + h.debug('Setting direction to outward'), + c.removeClass(u.inward).addClass(u.outward); + }, + visible: function () { + c.addClass(u.transition).addClass(u.visible); + }, + }, + start: { + animation: function (t) { + (t = t || h.get.animationClass()), + h.debug('Starting tween', t), + c.addClass(t).one(i + '.complete' + o, h.complete), + l.useFailSafe && h.add.failSafe(), + h.set.duration(l.duration), + l.onStart.call(A); + }, + }, + save: { + animation: function (t) { + h.cache || (h.cache = {}), (h.cache.animation = t); + }, + displayType: function (t) { + 'none' !== t && c.data(r.displayType, t); + }, + transitionExists: function (t, e) { + (w.fn.transition.exists[t] = e), + h.verbose('Saving existence of transition', t, e); + }, + }, + restore: { + conditions: function () { + var t = h.get.currentAnimation(); + t && (c.removeClass(t), h.verbose('Removing animation class', h.cache)), + h.remove.duration(); + }, + }, + add: { + failSafe: function () { + var t = h.get.duration(); + (h.timer = setTimeout(function () { + c.triggerHandler(i); + }, t + l.failSafeDelay)), + h.verbose('Adding fail safe timer', h.timer); + }, + }, + remove: { + animating: function () { + c.removeClass(u.animating); + }, + animationCallbacks: function () { + h.remove.queueCallback(), h.remove.completeCallback(); + }, + queueCallback: function () { + c.off('.queue' + o); + }, + completeCallback: function () { + c.off('.complete' + o); + }, + display: function () { + c.css('display', ''); + }, + direction: function () { + c.removeClass(u.inward).removeClass(u.outward); + }, + duration: function () { + c.css('animation-duration', ''); + }, + failSafe: function () { + h.verbose('Removing fail safe timer', h.timer), + h.timer && clearTimeout(h.timer); + }, + hidden: function () { + c.removeClass(u.hidden); + }, + visible: function () { + c.removeClass(u.visible); + }, + looping: function () { + h.debug('Transitions are no longer looping'), + h.is.looping() && (h.reset(), c.removeClass(u.looping)); + }, + transition: function () { + c.removeClass(u.visible).removeClass(u.hidden); + }, + }, + get: { + settings: function (t, e, n) { + return 'object' == typeof t + ? w.extend(!0, {}, w.fn.transition.settings, t) + : 'function' == typeof n + ? w.extend({}, w.fn.transition.settings, { + animation: t, + onComplete: n, + duration: e, + }) + : 'string' == typeof e || 'number' == typeof e + ? w.extend({}, w.fn.transition.settings, { + animation: t, + duration: e, + }) + : 'object' == typeof e + ? w.extend({}, w.fn.transition.settings, e, { animation: t }) + : 'function' == typeof e + ? w.extend({}, w.fn.transition.settings, { + animation: t, + onComplete: e, + }) + : w.extend({}, w.fn.transition.settings, { animation: t }); + }, + animationClass: function (t) { + var t = t || l.animation, + e = + h.can.transition() && !h.has.direction() + ? h.get.direction() + ' ' + : ''; + return u.animating + ' ' + u.transition + ' ' + e + t; + }, + currentAnimation: function () { + return !(!h.cache || void 0 === h.cache.animation) && h.cache.animation; + }, + currentDirection: function () { + return h.is.inward() ? u.inward : u.outward; + }, + direction: function () { + return h.is.hidden() || !h.is.visible() ? u.inward : u.outward; + }, + animationDirection: function (t) { + var n; + return ( + 'string' == typeof (t = t || l.animation) && + ((t = t.split(' ')), + w.each(t, function (t, e) { + e === u.inward + ? (n = u.inward) + : e === u.outward && (n = u.outward); + })), + n || !1 + ); + }, + duration: function (t) { + return 'string' == + typeof (t = + !1 === (t = t || l.duration) ? c.css('animation-duration') || 0 : t) + ? -1 < t.indexOf('ms') + ? parseFloat(t) + : 1e3 * parseFloat(t) + : t; + }, + displayType: function (t) { + return ( + (t = void 0 === t || t), + l.displayType || + (t && void 0 === c.data(r.displayType) && h.can.transition(!0), + c.data(r.displayType)) + ); + }, + userStyle: function (t) { + return (t = t || c.attr('style') || '').replace(/display.*?;/, ''); + }, + transitionExists: function (t) { + return w.fn.transition.exists[t]; + }, + animationStartEvent: function () { + var t, + e = E.createElement('div'), + n = { + animation: 'animationstart', + OAnimation: 'oAnimationStart', + MozAnimation: 'mozAnimationStart', + WebkitAnimation: 'webkitAnimationStart', + }; + for (t in n) if (void 0 !== e.style[t]) return n[t]; + return !1; + }, + animationEndEvent: function () { + var t, + e = E.createElement('div'), + n = { + animation: 'animationend', + OAnimation: 'oAnimationEnd', + MozAnimation: 'mozAnimationEnd', + WebkitAnimation: 'webkitAnimationEnd', + }; + for (t in n) if (void 0 !== e.style[t]) return n[t]; + return !1; + }, + }, + can: { + transition: function (t) { + var e, + n, + r, + i, + o = l.animation, + a = h.get.transitionExists(o), + s = h.get.displayType(!1); + if (void 0 === a || t) { + if ( + (h.verbose('Determining whether animation exists'), + (t = c.attr('class')), + (e = c.prop('tagName')), + (n = (e = w('<' + e + ' />') + .addClass(t) + .insertAfter(c)) + .addClass(o) + .removeClass(u.inward) + .removeClass(u.outward) + .addClass(u.animating) + .addClass(u.transition) + .css('animationName')), + (r = e.addClass(u.inward).css('animationName')), + s || + ((s = e + .attr('class', t) + .removeAttr('style') + .removeClass(u.hidden) + .removeClass(u.visible) + .show() + .css('display')), + h.verbose('Determining final display state', s), + h.save.displayType(s)), + e.remove(), + n != r) + ) + h.debug('Direction exists for animation', o), (i = !0); + else { + if ('none' == n || !n) + return void h.debug('No animation defined in css', o); + h.debug('Static animation found', o, s), (i = !1); + } + h.save.transitionExists(o, i); + } + return void 0 !== a ? a : i; + }, + animate: function () { + return void 0 !== h.can.transition(); + }, + }, + is: { + animating: function () { + return c.hasClass(u.animating); + }, + inward: function () { + return c.hasClass(u.inward); + }, + outward: function () { + return c.hasClass(u.outward); + }, + looping: function () { + return c.hasClass(u.looping); + }, + occurring: function (t) { + return ( + (t = '.' + (t = t || l.animation).replace(' ', '.')), + 0 < c.filter(t).length + ); + }, + visible: function () { + return c.is(':visible'); + }, + hidden: function () { + return 'hidden' === c.css('visibility'); + }, + supported: function () { + return !1 !== i; + }, + }, + hide: function () { + h.verbose('Hiding element'), + h.is.animating() && h.reset(), + A.blur(), + h.remove.display(), + h.remove.visible(), + h.set.hidden(), + h.force.hidden(), + l.onHide.call(A), + l.onComplete.call(A); + }, + show: function (t) { + h.verbose('Showing element', t), + h.remove.hidden(), + h.set.visible(), + h.force.visible(), + l.onShow.call(A), + l.onComplete.call(A); + }, + toggle: function () { + h.is.visible() ? h.hide() : h.show(); + }, + stop: function () { + h.debug('Stopping current animation'), c.triggerHandler(i); + }, + stopAll: function () { + h.debug('Stopping all animation'), + h.remove.queueCallback(), + c.triggerHandler(i); + }, + clear: { + queue: function () { + h.debug('Clearing animation queue'), h.remove.queueCallback(); + }, + }, + enable: function () { + h.verbose('Starting animation'), c.removeClass(u.disabled); + }, + disable: function () { + h.debug('Stopping animation'), c.addClass(u.disabled); + }, + setting: function (t, e) { + if ((h.debug('Changing setting', t, e), w.isPlainObject(t))) + w.extend(!0, l, t); + else { + if (void 0 === e) return l[t]; + w.isPlainObject(l[t]) ? w.extend(!0, l[t], e) : (l[t] = e); + } + }, + internal: function (t, e) { + if (w.isPlainObject(t)) w.extend(!0, h, t); + else { + if (void 0 === e) return h[t]; + h[t] = e; + } + }, + debug: function () { + !l.silent && + l.debug && + (l.performance + ? h.performance.log(arguments) + : ((h.debug = Function.prototype.bind.call( + console.info, + console, + l.name + ':', + )), + h.debug.apply(console, arguments))); + }, + verbose: function () { + !l.silent && + l.verbose && + l.debug && + (l.performance + ? h.performance.log(arguments) + : ((h.verbose = Function.prototype.bind.call( + console.info, + console, + l.name + ':', + )), + h.verbose.apply(console, arguments))); + }, + error: function () { + l.silent || + ((h.error = Function.prototype.bind.call( + console.error, + console, + l.name + ':', + )), + h.error.apply(console, arguments)); + }, + performance: { + log: function (t) { + var e, n; + l.performance && + ((n = (e = new Date().getTime()) - (f || e)), + (f = e), + g.push({ + Name: t[0], + Arguments: [].slice.call(t, 1) || '', + Element: A, + 'Execution Time': n, + })), + clearTimeout(h.performance.timer), + (h.performance.timer = setTimeout(h.performance.display, 500)); + }, + display: function () { + var t = l.name + ':', + n = 0; + (f = !1), + clearTimeout(h.performance.timer), + w.each(g, function (t, e) { + n += e['Execution Time']; + }), + (t += ' ' + n + 'ms'), + d && (t += " '" + d + "'"), + 1 < a.length && (t += ' (' + a.length + ')'), + (void 0 !== console.group || void 0 !== console.table) && + 0 < g.length && + (console.groupCollapsed(t), + console.table + ? console.table(g) + : w.each(g, function (t, e) { + console.log(e.Name + ': ' + e['Execution Time'] + 'ms'); + }), + console.groupEnd()), + (g = []); + }, + }, + invoke: function (r, t, e) { + var i, + o, + n, + a = s; + return ( + (t = t || b), + (e = A || e), + 'string' == typeof r && + void 0 !== a && + ((r = r.split(/[\. ]/)), + (i = r.length - 1), + w.each(r, function (t, e) { + var n = + t != i + ? e + r[t + 1].charAt(0).toUpperCase() + r[t + 1].slice(1) + : r; + if (!w.isPlainObject(a[n]) || t == i) + return void 0 !== a[n] + ? ((o = a[n]), !1) + : w.isPlainObject(a[e]) && t != i + ? void (a = a[e]) + : void 0 !== a[e] && ((o = a[e]), !1); + a = a[n]; + })), + w.isFunction(o) ? (n = o.apply(e, t)) : void 0 !== o && (n = o), + w.isArray(p) + ? p.push(n) + : void 0 !== p + ? (p = [p, n]) + : void 0 !== n && (p = n), + void 0 !== o && o + ); + }, + }; + h.initialize(); + }), + void 0 !== p ? p : this + ); + }), + (w.fn.transition.exists = {}), + (w.fn.transition.settings = { + name: 'Transition', + silent: !1, + debug: !1, + verbose: !1, + performance: !0, + namespace: 'transition', + interval: 0, + reverse: 'auto', + onStart: function () {}, + onComplete: function () {}, + onShow: function () {}, + onHide: function () {}, + useFailSafe: !0, + failSafeDelay: 100, + allowRepeats: !1, + displayType: !1, + animation: 'fade', + duration: !1, + queue: !0, + metadata: { displayType: 'display' }, + className: { + animating: 'animating', + disabled: 'disabled', + hidden: 'hidden', + inward: 'in', + loading: 'loading', + looping: 'looping', + outward: 'out', + transition: 'transition', + visible: 'visible', + }, + error: { + noAnimation: + 'Element is no longer attached to DOM. Unable to animate. Use silent setting to surpress this warning in production.', + repeated: 'That animation is already occurring, cancelling repeated animation', + method: 'The method you called is not defined', + support: 'This browser does not support CSS animations', + }, + }); + })(jQuery, window, document); + }, + {}, + ], + 64: [ + function (r, t, i) { + !function (u) { + !function () { + var a = r('./lib/request'), + t = r('./lib/response'), + s = r('xtend'), + e = r('builtin-status-codes'), + l = r('url'), + n = i; + (n.request = function (t, e) { + t = 'string' == typeof t ? l.parse(t) : s(t); + var n = -1 === u.location.protocol.search(/^https?:$/) ? 'http:' : '', + n = t.protocol || n, + r = t.hostname || t.host, + i = t.port, + o = t.path || '/', + n = + (r && -1 !== r.indexOf(':') && (r = '[' + r + ']'), + (t.url = (r ? n + '//' + r : '') + (i ? ':' + i : '') + o), + (t.method = (t.method || 'GET').toUpperCase()), + (t.headers = t.headers || {}), + new a(t)); + return e && n.on('response', e), n; + }), + (n.get = function (t, e) { + t = n.request(t, e); + return t.end(), t; + }), + (n.ClientRequest = a), + (n.IncomingMessage = t.IncomingMessage), + (n.Agent = function () {}), + (n.Agent.defaultMaxSockets = 4), + (n.globalAgent = new n.Agent()), + (n.STATUS_CODES = e), + (n.METHODS = [ + 'CHECKOUT', + 'CONNECT', + 'COPY', + 'DELETE', + 'GET', + 'HEAD', + 'LOCK', + 'M-SEARCH', + 'MERGE', + 'MKACTIVITY', + 'MKCOL', + 'MOVE', + 'NOTIFY', + 'OPTIONS', + 'PATCH', + 'POST', + 'PROPFIND', + 'PROPPATCH', + 'PURGE', + 'PUT', + 'REPORT', + 'SEARCH', + 'SUBSCRIBE', + 'TRACE', + 'UNLOCK', + 'UNSUBSCRIBE', + ]); + }.call(this); + }.call( + this, + 'undefined' != typeof global + ? global + : 'undefined' != typeof self + ? self + : 'undefined' != typeof window + ? window + : {}, + ); + }, + { + './lib/request': 66, + './lib/response': 67, + 'builtin-status-codes': 27, + url: 71, + xtend: 74, + }, + ], + 65: [ + function (t, e, s) { + !function (a) { + !function () { + (s.fetch = o(a.fetch) && o(a.ReadableStream)), + (s.writableStream = o(a.WritableStream)), + (s.abortController = o(a.AbortController)), + (s.blobConstructor = !1); + try { + new Blob([new ArrayBuffer(1)]), (s.blobConstructor = !0); + } catch (t) {} + var e; + function n() { + if (void 0 === e) + if (a.XMLHttpRequest) { + e = new a.XMLHttpRequest(); + try { + e.open('GET', a.XDomainRequest ? '/' : 'https://example.com'); + } catch (t) { + e = null; + } + } else e = null; + return e; + } + function t(t) { + var e = n(); + if (e) + try { + return (e.responseType = t), e.responseType === t; + } catch (t) {} + return !1; + } + var r = void 0 !== a.ArrayBuffer, + i = r && o(a.ArrayBuffer.prototype.slice); + function o(t) { + return 'function' == typeof t; + } + (s.arraybuffer = s.fetch || (r && t('arraybuffer'))), + (s.msstream = !s.fetch && i && t('ms-stream')), + (s.mozchunkedarraybuffer = !s.fetch && r && t('moz-chunked-arraybuffer')), + (s.overrideMimeType = s.fetch || (!!n() && o(n().overrideMimeType))), + (s.vbArray = o(a.VBArray)), + (e = null); + }.call(this); + }.call( + this, + 'undefined' != typeof global + ? global + : 'undefined' != typeof self + ? self + : 'undefined' != typeof window + ? window + : {}, + ); + }, + {}, + ], + 66: [ + function (o, a, t) { + !function (A, h, p) { + !function () { + var l = o('./capability'), + t = o('inherits'), + e = o('./response'), + i = o('readable-stream'), + u = o('to-arraybuffer'), + n = e.IncomingMessage, + c = e.readyStates; + e = a.exports = function (e) { + var t, + n = this, + r = + (i.Writable.call(n), + (n._opts = e), + (n._body = []), + (n._headers = {}), + e.auth && + n.setHeader('Authorization', 'Basic ' + new p(e.auth).toString('base64')), + Object.keys(e.headers).forEach(function (t) { + n.setHeader(t, e.headers[t]); + }), + !0); + if ('disable-fetch' === e.mode || ('requestTimeout' in e && !l.abortController)) + t = !(r = !1); + else if ('prefer-streaming' === e.mode) t = !1; + else if ('allow-wrong-content-type' === e.mode) t = !l.overrideMimeType; + else { + if (e.mode && 'default' !== e.mode && 'prefer-fast' !== e.mode) + throw new Error('Invalid value for opts.mode'); + t = !0; + } + (n._mode = + ((t = t), + (r = r), + l.fetch && r + ? 'fetch' + : l.mozchunkedarraybuffer + ? 'moz-chunked-arraybuffer' + : l.msstream + ? 'ms-stream' + : l.arraybuffer && t + ? 'arraybuffer' + : l.vbArray && t + ? 'text:vbarray' + : 'text')), + (n._fetchTimer = null), + n.on('finish', function () { + n._onFinish(); + }); + }; + t(e, i.Writable), + (e.prototype.setHeader = function (t, e) { + var n = t.toLowerCase(); + -1 === r.indexOf(n) && (this._headers[n] = { name: t, value: e }); + }), + (e.prototype.getHeader = function (t) { + t = this._headers[t.toLowerCase()]; + return t ? t.value : null; + }), + (e.prototype.removeHeader = function (t) { + delete this._headers[t.toLowerCase()]; + }), + (e.prototype._onFinish = function () { + var e = this; + if (!e._destroyed) { + var t = e._opts, + n = e._headers, + r = null, + i = + ('GET' !== t.method && + 'HEAD' !== t.method && + (r = l.arraybuffer + ? u(p.concat(e._body)) + : l.blobConstructor + ? new h.Blob( + e._body.map(function (t) { + return u(t); + }), + { type: (n['content-type'] || {}).value || '' }, + ) + : p.concat(e._body).toString()), + []); + if ( + (Object.keys(n).forEach(function (t) { + var e = n[t].name, + t = n[t].value; + Array.isArray(t) + ? t.forEach(function (t) { + i.push([e, t]); + }) + : i.push([e, t]); + }), + 'fetch' === e._mode) + ) { + var o, + a = null; + l.abortController && + ((a = (o = new AbortController()).signal), + (e._fetchAbortController = o), + 'requestTimeout' in t && + 0 !== t.requestTimeout && + (e._fetchTimer = h.setTimeout(function () { + e.emit('requestTimeout'), + e._fetchAbortController && e._fetchAbortController.abort(); + }, t.requestTimeout))), + h + .fetch(e._opts.url, { + method: e._opts.method, + headers: i, + body: r || void 0, + mode: 'cors', + credentials: t.withCredentials ? 'include' : 'same-origin', + signal: a, + }) + .then( + function (t) { + (e._fetchResponse = t), e._connect(); + }, + function (t) { + h.clearTimeout(e._fetchTimer), e._destroyed || e.emit('error', t); + }, + ); + } else { + var s = (e._xhr = new h.XMLHttpRequest()); + try { + s.open(e._opts.method, e._opts.url, !0); + } catch (t) { + return void A.nextTick(function () { + e.emit('error', t); + }); + } + 'responseType' in s && (s.responseType = e._mode.split(':')[0]), + 'withCredentials' in s && (s.withCredentials = !!t.withCredentials), + 'text' === e._mode && + 'overrideMimeType' in s && + s.overrideMimeType('text/plain; charset=x-user-defined'), + 'requestTimeout' in t && + ((s.timeout = t.requestTimeout), + (s.ontimeout = function () { + e.emit('requestTimeout'); + })), + i.forEach(function (t) { + s.setRequestHeader(t[0], t[1]); + }), + (e._response = null), + (s.onreadystatechange = function () { + switch (s.readyState) { + case c.LOADING: + case c.DONE: + e._onXHRProgress(); + } + }), + 'moz-chunked-arraybuffer' === e._mode && + (s.onprogress = function () { + e._onXHRProgress(); + }), + (s.onerror = function () { + e._destroyed || e.emit('error', new Error('XHR error')); + }); + try { + s.send(r); + } catch (t) { + return void A.nextTick(function () { + e.emit('error', t); + }); + } + } + } + }), + (e.prototype._onXHRProgress = function () { + !(function (t) { + try { + var e = t.status; + return null !== e && 0 !== e; + } catch (t) { + return; + } + })(this._xhr) || + this._destroyed || + (this._response || this._connect(), this._response._onXHRProgress()); + }), + (e.prototype._connect = function () { + var e = this; + e._destroyed || + ((e._response = new n(e._xhr, e._fetchResponse, e._mode, e._fetchTimer)), + e._response.on('error', function (t) { + e.emit('error', t); + }), + e.emit('response', e._response)); + }), + (e.prototype._write = function (t, e, n) { + this._body.push(t), n(); + }), + (e.prototype.abort = e.prototype.destroy = + function () { + (this._destroyed = !0), + h.clearTimeout(this._fetchTimer), + this._response && (this._response._destroyed = !0), + this._xhr + ? this._xhr.abort() + : this._fetchAbortController && this._fetchAbortController.abort(); + }), + (e.prototype.end = function (t, e, n) { + 'function' == typeof t && ((n = t), (t = void 0)), + i.Writable.prototype.end.call(this, t, e, n); + }), + (e.prototype.flushHeaders = function () {}), + (e.prototype.setTimeout = function () {}), + (e.prototype.setNoDelay = function () {}), + (e.prototype.setSocketKeepAlive = function () {}); + var r = [ + 'accept-charset', + 'accept-encoding', + 'access-control-request-headers', + 'access-control-request-method', + 'connection', + 'content-length', + 'cookie', + 'cookie2', + 'date', + 'dnt', + 'expect', + 'host', + 'keep-alive', + 'origin', + 'referer', + 'te', + 'trailer', + 'transfer-encoding', + 'upgrade', + 'via', + ]; + }.call(this); + }.call( + this, + o('_process'), + 'undefined' != typeof global + ? global + : 'undefined' != typeof self + ? self + : 'undefined' != typeof window + ? window + : {}, + o('buffer').Buffer, + ); + }, + { + './capability': 65, + './response': 67, + _process: 46, + buffer: 26, + inherits: 38, + 'readable-stream': 61, + 'to-arraybuffer': 69, + }, + ], + 67: [ + function (n, t, r) { + !function (u, c, A) { + !function () { + var a = n('./capability'), + t = n('inherits'), + s = n('readable-stream'), + l = (r.readyStates = { + UNSENT: 0, + OPENED: 1, + HEADERS_RECEIVED: 2, + LOADING: 3, + DONE: 4, + }), + e = (r.IncomingMessage = function (t, e, n, r) { + var i = this; + if ( + (s.Readable.call(i), + (i._mode = n), + (i.headers = {}), + (i.rawHeaders = []), + (i.trailers = {}), + (i.rawTrailers = []), + i.on('end', function () { + u.nextTick(function () { + i.emit('close'); + }); + }), + 'fetch' === n) + ) { + if ( + ((i._fetchResponse = e), + (i.url = e.url), + (i.statusCode = e.status), + (i.statusMessage = e.statusText), + e.headers.forEach(function (t, e) { + (i.headers[e.toLowerCase()] = t), i.rawHeaders.push(e, t); + }), + a.writableStream) + ) { + var n = new WritableStream({ + write: function (n) { + return new Promise(function (t, e) { + i._destroyed ? e() : i.push(new A(n)) ? t() : (i._resumeFetch = t); + }); + }, + close: function () { + c.clearTimeout(r), i._destroyed || i.push(null); + }, + abort: function (t) { + i._destroyed || i.emit('error', t); + }, + }); + try { + return void e.body.pipeTo(n).catch(function (t) { + c.clearTimeout(r), i._destroyed || i.emit('error', t); + }); + } catch (t) {} + } + var o = e.body.getReader(); + !(function e() { + o.read() + .then(function (t) { + if (!i._destroyed) { + if (t.done) return c.clearTimeout(r), void i.push(null); + i.push(new A(t.value)), e(); + } + }) + .catch(function (t) { + c.clearTimeout(r), i._destroyed || i.emit('error', t); + }); + })(); + } else + (i._xhr = t), + (i._pos = 0), + (i.url = t.responseURL), + (i.statusCode = t.status), + (i.statusMessage = t.statusText), + t + .getAllResponseHeaders() + .split(/\r?\n/) + .forEach(function (t) { + var e, + t = t.match(/^([^:]+):\s*(.*)/); + t && + ('set-cookie' === (e = t[1].toLowerCase()) + ? (void 0 === i.headers[e] && (i.headers[e] = []), + i.headers[e].push(t[2])) + : void 0 !== i.headers[e] + ? (i.headers[e] += ', ' + t[2]) + : (i.headers[e] = t[2]), + i.rawHeaders.push(t[1], t[2])); + }), + (i._charset = 'x-user-defined'), + a.overrideMimeType || + ((n = i.rawHeaders['mime-type']) && + (e = n.match(/;\s*charset=([^;])(;|$)/)) && + (i._charset = e[1].toLowerCase()), + i._charset || (i._charset = 'utf-8')); + }); + t(e, s.Readable), + (e.prototype._read = function () { + var t = this._resumeFetch; + t && ((this._resumeFetch = null), t()); + }), + (e.prototype._onXHRProgress = function () { + var e = this, + t = e._xhr, + n = null; + switch (e._mode) { + case 'text:vbarray': + if (t.readyState !== l.DONE) break; + try { + n = new c.VBArray(t.responseBody).toArray(); + } catch (t) {} + if (null !== n) { + e.push(new A(n)); + break; + } + case 'text': + try { + n = t.responseText; + } catch (t) { + e._mode = 'text:vbarray'; + break; + } + if (n.length > e._pos) { + var r = n.substr(e._pos); + if ('x-user-defined' === e._charset) { + for (var i = new A(r.length), o = 0; o < r.length; o++) + i[o] = 255 & r.charCodeAt(o); + e.push(i); + } else e.push(r, e._charset); + e._pos = n.length; + } + break; + case 'arraybuffer': + if (t.readyState !== l.DONE || !t.response) break; + (n = t.response), e.push(new A(new Uint8Array(n))); + break; + case 'moz-chunked-arraybuffer': + if (((n = t.response), t.readyState !== l.LOADING || !n)) break; + e.push(new A(new Uint8Array(n))); + break; + case 'ms-stream': + if (((n = t.response), t.readyState !== l.LOADING)) break; + var a = new c.MSStreamReader(); + (a.onprogress = function () { + a.result.byteLength > e._pos && + (e.push(new A(new Uint8Array(a.result.slice(e._pos)))), + (e._pos = a.result.byteLength)); + }), + (a.onload = function () { + e.push(null); + }), + a.readAsArrayBuffer(n); + } + e._xhr.readyState === l.DONE && 'ms-stream' !== e._mode && e.push(null); + }); + }.call(this); + }.call( + this, + n('_process'), + 'undefined' != typeof global + ? global + : 'undefined' != typeof self + ? self + : 'undefined' != typeof window + ? window + : {}, + n('buffer').Buffer, + ); + }, + { './capability': 65, _process: 46, buffer: 26, inherits: 38, 'readable-stream': 61 }, + ], + 68: [ + function (l, t, u) { + !function (n, s) { + !function () { + var r = l('process/browser.js').nextTick, + t = Function.prototype.apply, + i = Array.prototype.slice, + o = {}, + a = 0; + function e(t, e) { + (this._id = t), (this._clearFn = e); + } + (u.setTimeout = function () { + return new e(t.call(setTimeout, window, arguments), clearTimeout); + }), + (u.setInterval = function () { + return new e(t.call(setInterval, window, arguments), clearInterval); + }), + (u.clearTimeout = u.clearInterval = + function (t) { + t.close(); + }), + (e.prototype.unref = e.prototype.ref = function () {}), + (e.prototype.close = function () { + this._clearFn.call(window, this._id); + }), + (u.enroll = function (t, e) { + clearTimeout(t._idleTimeoutId), (t._idleTimeout = e); + }), + (u.unenroll = function (t) { + clearTimeout(t._idleTimeoutId), (t._idleTimeout = -1); + }), + (u._unrefActive = u.active = + function (t) { + clearTimeout(t._idleTimeoutId); + var e = t._idleTimeout; + 0 <= e && + (t._idleTimeoutId = setTimeout(function () { + t._onTimeout && t._onTimeout(); + }, e)); + }), + (u.setImmediate = + 'function' == typeof n + ? n + : function (t) { + var e = a++, + n = !(arguments.length < 2) && i.call(arguments, 1); + return ( + (o[e] = !0), + r(function () { + o[e] && (n ? t.apply(null, n) : t.call(null), u.clearImmediate(e)); + }), + e + ); + }), + (u.clearImmediate = + 'function' == typeof s + ? s + : function (t) { + delete o[t]; + }); + }.call(this); + }.call(this, l('timers').setImmediate, l('timers').clearImmediate); + }, + { 'process/browser.js': 46, timers: 68 }, + ], + 69: [ + function (t, e, n) { + var i = t('buffer').Buffer; + e.exports = function (t) { + if (t instanceof Uint8Array) { + if (0 === t.byteOffset && t.byteLength === t.buffer.byteLength) return t.buffer; + if ('function' == typeof t.buffer.slice) + return t.buffer.slice(t.byteOffset, t.byteOffset + t.byteLength); + } + if (i.isBuffer(t)) { + for (var e = new Uint8Array(t.length), n = t.length, r = 0; r < n; r++) e[r] = t[r]; + return e.buffer; + } + throw new Error('Argument must be a Buffer'); + }; + }, + { buffer: 26 }, + ], + 70: [ + function (t, i, o) { + !function (Ue) { + !function () { + var t, e, n, r; + (t = this), + (e = function () { + var t = + ('object' == typeof self && self.self === self && self) || + ('object' == typeof Ue && Ue.global === Ue && Ue) || + Function('return this')() || + {}, + r = Array.prototype, + U = Object.prototype, + N = 'undefined' != typeof Symbol ? Symbol.prototype : null, + P = r.push, + l = r.slice, + A = U.toString, + L = U.hasOwnProperty, + e = 'undefined' != typeof ArrayBuffer, + n = 'undefined' != typeof DataView, + Y = Array.isArray, + O = Object.keys, + G = Object.create, + z = e && ArrayBuffer.isView, + H = isNaN, + j = isFinite, + V = !{ toString: null }.propertyIsEnumerable('toString'), + q = [ + 'valueOf', + 'isPrototypeOf', + 'toString', + 'propertyIsEnumerable', + 'hasOwnProperty', + 'toLocaleString', + ], + W = Math.pow(2, 53) - 1; + function c(i, o) { + return ( + (o = null == o ? i.length - 1 : +o), + function () { + for ( + var t = Math.max(arguments.length - o, 0), e = Array(t), n = 0; + n < t; + n++ + ) + e[n] = arguments[n + o]; + switch (o) { + case 0: + return i.call(this, e); + case 1: + return i.call(this, arguments[0], e); + case 2: + return i.call(this, arguments[0], arguments[1], e); + } + for (var r = Array(o + 1), n = 0; n < o; n++) r[n] = arguments[n]; + return (r[o] = e), i.apply(this, r); + } + ); + } + function o(t) { + var e = typeof t; + return 'function' == e || ('object' == e && !!t); + } + function J(t) { + return void 0 === t; + } + function K(t) { + return !0 === t || !1 === t || '[object Boolean]' === A.call(t); + } + function i(t) { + var e = '[object ' + t + ']'; + return function (t) { + return A.call(t) === e; + }; + } + var Z = i('String'), + X = i('Number'), + a = i('Date'), + $ = i('RegExp'), + tt = i('Error'), + et = i('Symbol'), + nt = i('ArrayBuffer'), + s = i('Function'), + t = t.document && t.document.childNodes, + h = (s = + 'function' != typeof /./ && + 'object' != typeof Int8Array && + 'function' != typeof t + ? function (t) { + return 'function' == typeof t || !1; + } + : s), + t = i('Object'), + rt = n && t(new DataView(new ArrayBuffer(8))), + s = 'undefined' != typeof Map && t(new Map()), + n = i('DataView'); + var p = rt + ? function (t) { + return null != t && h(t.getInt8) && nt(t.buffer); + } + : n, + d = Y || i('Array'); + function f(t, e) { + return null != t && L.call(t, e); + } + var it = i('Arguments'), + ot = + (!(function () { + it(arguments) || + (it = function (t) { + return f(t, 'callee'); + }); + })(), + it); + function at(t) { + return X(t) && H(t); + } + function st(t) { + return function () { + return t; + }; + } + function lt(e) { + return function (t) { + t = e(t); + return 'number' == typeof t && 0 <= t && t <= W; + }; + } + function ut(e) { + return function (t) { + return null == t ? void 0 : t[e]; + }; + } + var g = ut('byteLength'), + ct = lt(g), + At = + /\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/; + var ht = e + ? function (t) { + return z ? z(t) && !p(t) : ct(t) && At.test(A.call(t)); + } + : st(!1), + m = ut('length'); + function pt(t, e) { + e = (function (e) { + for (var n = {}, t = e.length, r = 0; r < t; ++r) n[e[r]] = !0; + return { + contains: function (t) { + return !0 === n[t]; + }, + push: function (t) { + return (n[t] = !0), e.push(t); + }, + }; + })(e); + var n = q.length, + r = t.constructor, + i = (h(r) && r.prototype) || U, + o = 'constructor'; + for (f(t, o) && !e.contains(o) && e.push(o); n--; ) + (o = q[n]) in t && t[o] !== i[o] && !e.contains(o) && e.push(o); + } + function v(t) { + if (!o(t)) return []; + if (O) return O(t); + var e, + n = []; + for (e in t) f(t, e) && n.push(e); + return V && pt(t, n), n; + } + function dt(t, e) { + var n = v(e), + r = n.length; + if (null == t) return !r; + for (var i = Object(t), o = 0; o < r; o++) { + var a = n[o]; + if (e[a] !== i[a] || !(a in i)) return !1; + } + return !0; + } + function b(t) { + return t instanceof b + ? t + : this instanceof b + ? void (this._wrapped = t) + : new b(t); + } + function ft(t) { + return new Uint8Array(t.buffer || t, t.byteOffset || 0, g(t)); + } + (b.VERSION = '1.13.4'), + (b.prototype.valueOf = + b.prototype.toJSON = + b.prototype.value = + function () { + return this._wrapped; + }), + (b.prototype.toString = function () { + return String(this._wrapped); + }); + var gt = '[object DataView]'; + function mt(t, e, n, r) { + if (t === e) return 0 !== t || 1 / t == 1 / e; + if (null == t || null == e) return !1; + if (t != t) return e != e; + var i = typeof t; + return ( + ('function' == i || 'object' == i || 'object' == typeof e) && + (function t(e, n, r, i) { + e instanceof b && (e = e._wrapped); + n instanceof b && (n = n._wrapped); + var o = A.call(e); + if (o !== A.call(n)) return !1; + if (rt && '[object Object]' == o && p(e)) { + if (!p(n)) return !1; + o = gt; + } + switch (o) { + case '[object RegExp]': + case '[object String]': + return '' + e == '' + n; + case '[object Number]': + return +e != +e ? +n != +n : 0 == +e ? 1 / +e == 1 / n : +e == +n; + case '[object Date]': + case '[object Boolean]': + return +e == +n; + case '[object Symbol]': + return N.valueOf.call(e) === N.valueOf.call(n); + case '[object ArrayBuffer]': + case gt: + return t(ft(e), ft(n), r, i); + } + o = '[object Array]' === o; + if (!o && ht(e)) { + var a = g(e); + if (a !== g(n)) return !1; + if (e.buffer === n.buffer && e.byteOffset === n.byteOffset) return !0; + o = !0; + } + if (!o) { + if ('object' != typeof e || 'object' != typeof n) return !1; + var a = e.constructor, + s = n.constructor; + if ( + a !== s && + !(h(a) && a instanceof a && h(s) && s instanceof s) && + 'constructor' in e && + 'constructor' in n + ) + return !1; + } + r = r || []; + i = i || []; + var l = r.length; + for (; l--; ) if (r[l] === e) return i[l] === n; + r.push(e); + i.push(n); + if (o) { + if ((l = e.length) !== n.length) return !1; + for (; l--; ) if (!mt(e[l], n[l], r, i)) return !1; + } else { + var u, + c = v(e); + if (((l = c.length), v(n).length !== l)) return !1; + for (; l--; ) + if (((u = c[l]), !f(n, u) || !mt(e[u], n[u], r, i))) return !1; + } + r.pop(); + i.pop(); + return !0; + })(t, e, n, r) + ); + } + function u(t) { + if (!o(t)) return []; + var e, + n = []; + for (e in t) n.push(e); + return V && pt(t, n), n; + } + function vt(r) { + var i = m(r); + return function (t) { + if (null == t) return !1; + var e = u(t); + if (m(e)) return !1; + for (var n = 0; n < i; n++) if (!h(t[r[n]])) return !1; + return r !== yt || !h(t[bt]); + }; + } + var bt = 'forEach', + t = ['clear', 'delete'], + n = ['get', 'has', 'set'], + Y = t.concat(bt, n), + yt = t.concat(n), + e = ['add'].concat(t, bt, 'has'), + n = s ? vt(Y) : i('Map'), + t = s ? vt(yt) : i('WeakMap'), + Y = s ? vt(e) : i('Set'), + s = i('WeakSet'); + function y(t) { + for (var e = v(t), n = e.length, r = Array(n), i = 0; i < n; i++) + r[i] = t[e[i]]; + return r; + } + function wt(t) { + for (var e = {}, n = v(t), r = 0, i = n.length; r < i; r++) e[t[n[r]]] = n[r]; + return e; + } + function Et(t) { + var e, + n = []; + for (e in t) h(t[e]) && n.push(e); + return n.sort(); + } + function Bt(l, u) { + return function (t) { + var e = arguments.length; + if ((u && (t = Object(t)), !(e < 2 || null == t))) + for (var n = 1; n < e; n++) + for (var r = arguments[n], i = l(r), o = i.length, a = 0; a < o; a++) { + var s = i[a]; + (u && void 0 !== t[s]) || (t[s] = r[s]); + } + return t; + }; + } + var Ct = Bt(u), + w = Bt(v), + xt = Bt(u, !0); + function It(t) { + if (!o(t)) return {}; + if (G) return G(t); + var e = function () {}, + t = ((e.prototype = t), new e()); + return (e.prototype = null), t; + } + function Mt(t) { + return d(t) ? t : [t]; + } + function E(t) { + return b.toPath(t); + } + function Dt(t, e) { + for (var n = e.length, r = 0; r < n; r++) { + if (null == t) return; + t = t[e[r]]; + } + return n ? t : void 0; + } + function St(t, e, n) { + t = Dt(t, E(e)); + return J(t) ? n : t; + } + function kt(t) { + return t; + } + function B(e) { + return ( + (e = w({}, e)), + function (t) { + return dt(t, e); + } + ); + } + function Ft(e) { + return ( + (e = E(e)), + function (t) { + return Dt(t, e); + } + ); + } + function C(i, o, t) { + if (void 0 === o) return i; + switch (null == t ? 3 : t) { + case 1: + return function (t) { + return i.call(o, t); + }; + case 3: + return function (t, e, n) { + return i.call(o, t, e, n); + }; + case 4: + return function (t, e, n, r) { + return i.call(o, t, e, n, r); + }; + } + return function () { + return i.apply(o, arguments); + }; + } + function Qt(t, e, n) { + return null == t ? kt : h(t) ? C(t, e, n) : (o(t) && !d(t) ? B : Ft)(t); + } + function _t(t, e) { + return Qt(t, e, 1 / 0); + } + function x(t, e, n) { + return b.iteratee !== _t ? b.iteratee(t, e) : Qt(t, e, n); + } + function Tt() {} + function Rt(t, e) { + return ( + null == e && ((e = t), (t = 0)), t + Math.floor(Math.random() * (e - t + 1)) + ); + } + (b.toPath = Mt), (b.iteratee = _t); + var I = + Date.now || + function () { + return new Date().getTime(); + }; + function Ut(e) { + function n(t) { + return e[t]; + } + var t = '(?:' + v(e).join('|') + ')', + r = RegExp(t), + i = RegExp(t, 'g'); + return function (t) { + return r.test((t = null == t ? '' : '' + t)) ? t.replace(i, n) : t; + }; + } + var e = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '`': '`', + }, + Nt = Ut(e), + e = Ut(wt(e)), + Pt = (b.templateSettings = { + evaluate: /<%([\s\S]+?)%>/g, + interpolate: /<%=([\s\S]+?)%>/g, + escape: /<%-([\s\S]+?)%>/g, + }), + Lt = /(.)^/, + Yt = { + "'": "'", + '\\': '\\', + '\r': 'r', + '\n': 'n', + '\u2028': 'u2028', + '\u2029': 'u2029', + }, + Ot = /\\|'|\r|\n|\u2028|\u2029/g; + function Gt(t) { + return '\\' + Yt[t]; + } + var zt = /^\s*(\w|\$)+\s*$/; + var Ht = 0; + function jt(t, e, n, r, i) { + if (!(r instanceof e)) return t.apply(n, i); + (r = It(t.prototype)), (e = t.apply(r, i)); + return o(e) ? e : r; + } + var M = c(function (i, o) { + function a() { + for (var t = 0, e = o.length, n = Array(e), r = 0; r < e; r++) + n[r] = o[r] === s ? arguments[t++] : o[r]; + for (; t < arguments.length; ) n.push(arguments[t++]); + return jt(i, a, this, this, n); + } + var s = M.placeholder; + return a; + }), + Vt = + ((M.placeholder = b), + c(function (e, n, r) { + if (!h(e)) throw new TypeError('Bind must be called on a function'); + var i = c(function (t) { + return jt(e, i, n, this, r.concat(t)); + }); + return i; + })), + D = lt(m); + function S(t, e, n, r) { + if (((r = r || []), e || 0 === e)) { + if (e <= 0) return r.concat(t); + } else e = 1 / 0; + for (var i = r.length, o = 0, a = m(t); o < a; o++) { + var s = t[o]; + if (D(s) && (d(s) || ot(s))) + if (1 < e) S(s, e - 1, n, r), (i = r.length); + else for (var l = 0, u = s.length; l < u; ) r[i++] = s[l++]; + else n || (r[i++] = s); + } + return r; + } + var qt = c(function (t, e) { + var n = (e = S(e, !1, !1)).length; + if (n < 1) throw new Error('bindAll must be passed function names'); + for (; n--; ) { + var r = e[n]; + t[r] = Vt(t[r], t); + } + return t; + }); + var Wt = c(function (t, e, n) { + return setTimeout(function () { + return t.apply(null, n); + }, e); + }), + Jt = M(Wt, b, 1); + function Kt(t) { + return function () { + return !t.apply(this, arguments); + }; + } + function Zt(t, e) { + var n; + return function () { + return 0 < --t && (n = e.apply(this, arguments)), t <= 1 && (e = null), n; + }; + } + var Xt = M(Zt, 2); + function $t(t, e, n) { + e = x(e, n); + for (var r, i = v(t), o = 0, a = i.length; o < a; o++) + if (e(t[(r = i[o])], r, t)) return r; + } + function te(o) { + return function (t, e, n) { + e = x(e, n); + for (var r = m(t), i = 0 < o ? 0 : r - 1; 0 <= i && i < r; i += o) + if (e(t[i], i, t)) return i; + return -1; + }; + } + var ee = te(1), + ne = te(-1); + function re(t, e, n, r) { + for (var i = (n = x(n, r, 1))(e), o = 0, a = m(t); o < a; ) { + var s = Math.floor((o + a) / 2); + n(t[s]) < i ? (o = s + 1) : (a = s); + } + return o; + } + function ie(o, a, s) { + return function (t, e, n) { + var r = 0, + i = m(t); + if ('number' == typeof n) + 0 < o + ? (r = 0 <= n ? n : Math.max(n + i, r)) + : (i = 0 <= n ? Math.min(n + 1, i) : n + i + 1); + else if (s && n && i) return t[(n = s(t, e))] === e ? n : -1; + if (e != e) return 0 <= (n = a(l.call(t, r, i), at)) ? n + r : -1; + for (n = 0 < o ? r : i - 1; 0 <= n && n < i; n += o) if (t[n] === e) return n; + return -1; + }; + } + var oe = ie(1, ee, re), + ae = ie(-1, ne); + function se(t, e, n) { + e = (D(t) ? ee : $t)(t, e, n); + if (void 0 !== e && -1 !== e) return t[e]; + } + function k(t, e, n) { + if (((e = C(e, n)), D(t))) for (i = 0, o = t.length; i < o; i++) e(t[i], i, t); + else for (var r = v(t), i = 0, o = r.length; i < o; i++) e(t[r[i]], r[i], t); + return t; + } + function F(t, e, n) { + e = x(e, n); + for ( + var r = !D(t) && v(t), i = (r || t).length, o = Array(i), a = 0; + a < i; + a++ + ) { + var s = r ? r[a] : a; + o[a] = e(t[s], s, t); + } + return o; + } + function le(h) { + return function (t, e, n, r) { + var i = 3 <= arguments.length, + o = t, + a = C(e, r, 4), + s = n, + l = !D(o) && v(o), + u = (l || o).length, + c = 0 < h ? 0 : u - 1; + for (i || ((s = o[l ? l[c] : c]), (c += h)); 0 <= c && c < u; c += h) { + var A = l ? l[c] : c; + s = a(s, o[A], A, o); + } + return s; + }; + } + var ue = le(1), + ce = le(-1); + function Q(t, r, e) { + var i = []; + return ( + (r = x(r, e)), + k(t, function (t, e, n) { + r(t, e, n) && i.push(t); + }), + i + ); + } + function Ae(t, e, n) { + e = x(e, n); + for (var r = !D(t) && v(t), i = (r || t).length, o = 0; o < i; o++) { + var a = r ? r[o] : o; + if (!e(t[a], a, t)) return !1; + } + return !0; + } + function he(t, e, n) { + e = x(e, n); + for (var r = !D(t) && v(t), i = (r || t).length, o = 0; o < i; o++) { + var a = r ? r[o] : o; + if (e(t[a], a, t)) return !0; + } + return !1; + } + function _(t, e, n, r) { + return ( + D(t) || (t = y(t)), 0 <= oe(t, e, (n = 'number' == typeof n && !r ? n : 0)) + ); + } + var pe = c(function (t, n, r) { + var i, o; + return ( + h(n) ? (o = n) : ((n = E(n)), (i = n.slice(0, -1)), (n = n[n.length - 1])), + F(t, function (t) { + var e = o; + if (!e) { + if (null == (t = i && i.length ? Dt(t, i) : t)) return; + e = t[n]; + } + return null == e ? e : e.apply(t, r); + }) + ); + }); + function de(t, e) { + return F(t, Ft(e)); + } + function fe(t, r, e) { + var n, + i, + o = -1 / 0, + a = -1 / 0; + if (null == r || ('number' == typeof r && 'object' != typeof t[0] && null != t)) + for (var s = 0, l = (t = D(t) ? t : y(t)).length; s < l; s++) + null != (n = t[s]) && o < n && (o = n); + else + (r = x(r, e)), + k(t, function (t, e, n) { + (i = r(t, e, n)), + (a < i || (i === -1 / 0 && o === -1 / 0)) && ((o = t), (a = i)); + }); + return o; + } + var ge = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g; + function me(t) { + return t + ? d(t) + ? l.call(t) + : Z(t) + ? t.match(ge) + : D(t) + ? F(t, kt) + : y(t) + : []; + } + function ve(t, e, n) { + if (null == e || n) return (t = D(t) ? t : y(t))[Rt(t.length - 1)]; + for ( + var r = me(t), + n = m(r), + i = ((e = Math.max(Math.min(e, n), 0)), n - 1), + o = 0; + o < e; + o++ + ) { + var a = Rt(o, i), + s = r[o]; + (r[o] = r[a]), (r[a] = s); + } + return r.slice(0, e); + } + function T(o, e) { + return function (n, r, t) { + var i = e ? [[], []] : {}; + return ( + (r = x(r, t)), + k(n, function (t, e) { + e = r(t, e, n); + o(i, t, e); + }), + i + ); + }; + } + var be = T(function (t, e, n) { + f(t, n) ? t[n].push(e) : (t[n] = [e]); + }), + ye = T(function (t, e, n) { + t[n] = e; + }), + we = T(function (t, e, n) { + f(t, n) ? t[n]++ : (t[n] = 1); + }), + Ee = T(function (t, e, n) { + t[n ? 0 : 1].push(e); + }, !0); + function Be(t, e, n) { + return e in n; + } + var Ce = c(function (t, e) { + var n = {}, + r = e[0]; + if (null != t) { + h(r) + ? (1 < e.length && (r = C(r, e[1])), (e = u(t))) + : ((r = Be), (e = S(e, !1, !1)), (t = Object(t))); + for (var i = 0, o = e.length; i < o; i++) { + var a = e[i], + s = t[a]; + r(s, a, t) && (n[a] = s); + } + } + return n; + }), + xe = c(function (t, n) { + var e, + r = n[0]; + return ( + h(r) + ? ((r = Kt(r)), 1 < n.length && (e = n[1])) + : ((n = F(S(n, !1, !1), String)), + (r = function (t, e) { + return !_(n, e); + })), + Ce(t, r, e) + ); + }); + function Ie(t, e, n) { + return l.call(t, 0, Math.max(0, t.length - (null == e || n ? 1 : e))); + } + function Me(t, e, n) { + return null == t || t.length < 1 + ? null == e || n + ? void 0 + : [] + : null == e || n + ? t[0] + : Ie(t, t.length - e); + } + function R(t, e, n) { + return l.call(t, null == e || n ? 1 : e); + } + var De = c(function (t, e) { + return ( + (e = S(e, !0, !0)), + Q(t, function (t) { + return !_(e, t); + }) + ); + }), + Se = c(function (t, e) { + return De(t, e); + }); + function ke(t, e, n, r) { + K(e) || ((r = n), (n = e), (e = !1)), null != n && (n = x(n, r)); + for (var i = [], o = [], a = 0, s = m(t); a < s; a++) { + var l = t[a], + u = n ? n(l, a, t) : l; + e && !n + ? ((a && o === u) || i.push(l), (o = u)) + : n + ? _(o, u) || (o.push(u), i.push(l)) + : _(i, l) || i.push(l); + } + return i; + } + var Fe = c(function (t) { + return ke(S(t, !0, !0)); + }); + function Qe(t) { + for (var e = (t && fe(t, m).length) || 0, n = Array(e), r = 0; r < e; r++) + n[r] = de(t, r); + return n; + } + var _e = c(Qe); + function Te(t, e) { + return t._chain ? b(e).chain() : e; + } + function Re(n) { + return ( + k(Et(n), function (t) { + var e = (b[t] = n[t]); + b.prototype[t] = function () { + var t = [this._wrapped]; + return P.apply(t, arguments), Te(this, e.apply(b, t)); + }; + }), + b + ); + } + k(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function (e) { + var n = r[e]; + b.prototype[e] = function () { + var t = this._wrapped; + return ( + null != t && + (n.apply(t, arguments), + ('shift' !== e && 'splice' !== e) || 0 !== t.length || delete t[0]), + Te(this, t) + ); + }; + }), + k(['concat', 'join', 'slice'], function (t) { + var e = r[t]; + b.prototype[t] = function () { + var t = this._wrapped; + return Te(this, (t = null != t ? e.apply(t, arguments) : t)); + }; + }); + a = Re({ + __proto__: null, + VERSION: '1.13.4', + restArguments: c, + isObject: o, + isNull: function (t) { + return null === t; + }, + isUndefined: J, + isBoolean: K, + isElement: function (t) { + return !(!t || 1 !== t.nodeType); + }, + isString: Z, + isNumber: X, + isDate: a, + isRegExp: $, + isError: tt, + isSymbol: et, + isArrayBuffer: nt, + isDataView: p, + isArray: d, + isFunction: h, + isArguments: ot, + isFinite: function (t) { + return !et(t) && j(t) && !isNaN(parseFloat(t)); + }, + isNaN: at, + isTypedArray: ht, + isEmpty: function (t) { + if (null == t) return !0; + var e = m(t); + return 'number' == typeof e && (d(t) || Z(t) || ot(t)) + ? 0 === e + : 0 === m(v(t)); + }, + isMatch: dt, + isEqual: function (t, e) { + return mt(t, e); + }, + isMap: n, + isWeakMap: t, + isSet: Y, + isWeakSet: s, + keys: v, + allKeys: u, + values: y, + pairs: function (t) { + for (var e = v(t), n = e.length, r = Array(n), i = 0; i < n; i++) + r[i] = [e[i], t[e[i]]]; + return r; + }, + invert: wt, + functions: Et, + methods: Et, + extend: Ct, + extendOwn: w, + assign: w, + defaults: xt, + create: function (t, e) { + return (t = It(t)), e && w(t, e), t; + }, + clone: function (t) { + return o(t) ? (d(t) ? t.slice() : Ct({}, t)) : t; + }, + tap: function (t, e) { + return e(t), t; + }, + get: St, + has: function (t, e) { + for (var n = (e = E(e)).length, r = 0; r < n; r++) { + var i = e[r]; + if (!f(t, i)) return !1; + t = t[i]; + } + return !!n; + }, + mapObject: function (t, e, n) { + e = x(e, n); + for (var r = v(t), i = r.length, o = {}, a = 0; a < i; a++) { + var s = r[a]; + o[s] = e(t[s], s, t); + } + return o; + }, + identity: kt, + constant: st, + noop: Tt, + toPath: Mt, + property: Ft, + propertyOf: function (e) { + return null == e + ? Tt + : function (t) { + return St(e, t); + }; + }, + matcher: B, + matches: B, + times: function (t, e, n) { + var r = Array(Math.max(0, t)); + e = C(e, n, 1); + for (var i = 0; i < t; i++) r[i] = e(i); + return r; + }, + random: Rt, + now: I, + escape: Nt, + unescape: e, + templateSettings: Pt, + template: function (o, t, e) { + t = xt({}, (t = !t && e ? e : t), b.templateSettings); + var n, + e = RegExp( + [ + (t.escape || Lt).source, + (t.interpolate || Lt).source, + (t.evaluate || Lt).source, + ].join('|') + '|$', + 'g', + ), + a = 0, + s = "__p+='"; + if ( + (o.replace(e, function (t, e, n, r, i) { + return ( + (s += o.slice(a, i).replace(Ot, Gt)), + (a = i + t.length), + e + ? (s += "'+\n((__t=(" + e + "))==null?'':_.escape(__t))+\n'") + : n + ? (s += "'+\n((__t=(" + n + "))==null?'':__t)+\n'") + : r && (s += "';\n" + r + "\n__p+='"), + t + ); + }), + (s += "';\n"), + (e = t.variable)) + ) { + if (!zt.test(e)) throw new Error('variable is not a bare identifier: ' + e); + } else (s = 'with(obj||{}){\n' + s + '}\n'), (e = 'obj'); + s = + "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + + s + + 'return __p;\n'; + try { + n = new Function(e, '_', s); + } catch (t) { + throw ((t.source = s), t); + } + function r(t) { + return n.call(this, t, b); + } + return (r.source = 'function(' + e + '){\n' + s + '}'), r; + }, + result: function (t, e, n) { + var r = (e = E(e)).length; + if (!r) return h(n) ? n.call(t) : n; + for (var i = 0; i < r; i++) { + var o = null == t ? void 0 : t[e[i]]; + void 0 === o && ((o = n), (i = r)), (t = h(o) ? o.call(t) : o); + } + return t; + }, + uniqueId: function (t) { + var e = ++Ht + ''; + return t ? t + e : e; + }, + chain: function (t) { + return ((t = b(t))._chain = !0), t; + }, + iteratee: _t, + partial: M, + bind: Vt, + bindAll: qt, + memoize: function (r, i) { + function o(t) { + var e = o.cache, + n = '' + (i ? i.apply(this, arguments) : t); + return f(e, n) || (e[n] = r.apply(this, arguments)), e[n]; + } + return (o.cache = {}), o; + }, + delay: Wt, + defer: Jt, + throttle: function (n, r, i) { + function o() { + (c = !1 === i.leading ? 0 : I()), + (a = null), + (u = n.apply(s, l)), + a || (s = l = null); + } + function t() { + var t = I(), + e = (c || !1 !== i.leading || (c = t), r - (t - c)); + return ( + (s = this), + (l = arguments), + e <= 0 || r < e + ? (a && (clearTimeout(a), (a = null)), + (c = t), + (u = n.apply(s, l)), + a || (s = l = null)) + : a || !1 === i.trailing || (a = setTimeout(o, e)), + u + ); + } + var a, + s, + l, + u, + c = 0; + return ( + (i = i || {}), + (t.cancel = function () { + clearTimeout(a), (c = 0), (a = s = l = null); + }), + t + ); + }, + debounce: function (e, n, r) { + function i() { + var t = I() - a; + t < n + ? (o = setTimeout(i, n - t)) + : ((o = null), r || (l = e.apply(u, s)), o || (s = u = null)); + } + var o, + a, + s, + l, + u, + t = c(function (t) { + return ( + (u = this), + (s = t), + (a = I()), + o || ((o = setTimeout(i, n)), r && (l = e.apply(u, s))), + l + ); + }); + return ( + (t.cancel = function () { + clearTimeout(o), (o = s = u = null); + }), + t + ); + }, + wrap: function (t, e) { + return M(e, t); + }, + negate: Kt, + compose: function () { + var n = arguments, + r = n.length - 1; + return function () { + for (var t = r, e = n[r].apply(this, arguments); t--; ) + e = n[t].call(this, e); + return e; + }; + }, + after: function (t, e) { + return function () { + if (--t < 1) return e.apply(this, arguments); + }; + }, + before: Zt, + once: Xt, + findKey: $t, + findIndex: ee, + findLastIndex: ne, + sortedIndex: re, + indexOf: oe, + lastIndexOf: ae, + find: se, + detect: se, + findWhere: function (t, e) { + return se(t, B(e)); + }, + each: k, + forEach: k, + map: F, + collect: F, + reduce: ue, + foldl: ue, + inject: ue, + reduceRight: ce, + foldr: ce, + filter: Q, + select: Q, + reject: function (t, e, n) { + return Q(t, Kt(x(e)), n); + }, + every: Ae, + all: Ae, + some: he, + any: he, + contains: _, + includes: _, + include: _, + invoke: pe, + pluck: de, + where: function (t, e) { + return Q(t, B(e)); + }, + max: fe, + min: function (t, r, e) { + var n, + i, + o = 1 / 0, + a = 1 / 0; + if ( + null == r || + ('number' == typeof r && 'object' != typeof t[0] && null != t) + ) + for (var s = 0, l = (t = D(t) ? t : y(t)).length; s < l; s++) + null != (n = t[s]) && n < o && (o = n); + else + (r = x(r, e)), + k(t, function (t, e, n) { + ((i = r(t, e, n)) < a || (i === 1 / 0 && o === 1 / 0)) && + ((o = t), (a = i)); + }); + return o; + }, + shuffle: function (t) { + return ve(t, 1 / 0); + }, + sample: ve, + sortBy: function (t, r, e) { + var i = 0; + return ( + (r = x(r, e)), + de( + F(t, function (t, e, n) { + return { value: t, index: i++, criteria: r(t, e, n) }; + }).sort(function (t, e) { + var n = t.criteria, + r = e.criteria; + if (n !== r) { + if (r < n || void 0 === n) return 1; + if (n < r || void 0 === r) return -1; + } + return t.index - e.index; + }), + 'value', + ) + ); + }, + groupBy: be, + indexBy: ye, + countBy: we, + partition: Ee, + toArray: me, + size: function (t) { + return null == t ? 0 : (D(t) ? t : v(t)).length; + }, + pick: Ce, + omit: xe, + first: Me, + head: Me, + take: Me, + initial: Ie, + last: function (t, e, n) { + return null == t || t.length < 1 + ? null == e || n + ? void 0 + : [] + : null == e || n + ? t[t.length - 1] + : R(t, Math.max(0, t.length - e)); + }, + rest: R, + tail: R, + drop: R, + compact: function (t) { + return Q(t, Boolean); + }, + flatten: function (t, e) { + return S(t, e, !1); + }, + without: Se, + uniq: ke, + unique: ke, + union: Fe, + intersection: function (t) { + for (var e = [], n = arguments.length, r = 0, i = m(t); r < i; r++) { + var o = t[r]; + if (!_(e, o)) { + for (var a = 1; a < n && _(arguments[a], o); a++); + a === n && e.push(o); + } + } + return e; + }, + difference: De, + unzip: Qe, + transpose: Qe, + zip: _e, + object: function (t, e) { + for (var n = {}, r = 0, i = m(t); r < i; r++) + e ? (n[t[r]] = e[r]) : (n[t[r][0]] = t[r][1]); + return n; + }, + range: function (t, e, n) { + null == e && ((e = t || 0), (t = 0)), (n = n || (e < t ? -1 : 1)); + for ( + var r = Math.max(Math.ceil((e - t) / n), 0), i = Array(r), o = 0; + o < r; + o++, t += n + ) + i[o] = t; + return i; + }, + chunk: function (t, e) { + if (null == e || e < 1) return []; + for (var n = [], r = 0, i = t.length; r < i; ) n.push(l.call(t, r, (r += e))); + return n; + }, + mixin: Re, + default: b, + }); + return (a._ = a); + }), + 'object' == typeof o && void 0 !== i + ? (i.exports = e()) + : ((t = 'undefined' != typeof globalThis ? globalThis : t || self), + (n = t._), + ((r = t._ = e()).noConflict = function () { + return (t._ = n), r; + })); + }.call(this); + }.call( + this, + 'undefined' != typeof global + ? global + : 'undefined' != typeof self + ? self + : 'undefined' != typeof window + ? window + : {}, + ); + }, + {}, + ], + 71: [ + function (t, e, n) { + 'use strict'; + var B = t('punycode'), + C = t('./util'); + function w() { + (this.protocol = null), + (this.slashes = null), + (this.auth = null), + (this.host = null), + (this.port = null), + (this.hostname = null), + (this.hash = null), + (this.search = null), + (this.query = null), + (this.pathname = null), + (this.path = null), + (this.href = null); + } + (n.parse = i), + (n.resolve = function (t, e) { + return i(t, !1, !0).resolve(e); + }), + (n.resolveObject = function (t, e) { + return t ? i(t, !1, !0).resolveObject(e) : e; + }), + (n.format = function (t) { + C.isString(t) && (t = i(t)); + return t instanceof w ? t.format() : w.prototype.format.call(t); + }), + (n.Url = w); + var x = /^([a-z0-9.+-]+:)/i, + r = /:[0-9]*$/, + I = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, + n = ['{', '}', '|', '\\', '^', '`'].concat(['<', '>', '"', '`', ' ', '\r', '\n', '\t']), + M = ["'"].concat(n), + D = ['%', '/', '?', ';', '#'].concat(M), + S = ['/', '?', '#'], + k = /^[+a-z0-9A-Z_-]{0,63}$/, + F = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, + Q = { javascript: !0, 'javascript:': !0 }, + _ = { javascript: !0, 'javascript:': !0 }, + T = { + http: !0, + https: !0, + ftp: !0, + gopher: !0, + file: !0, + 'http:': !0, + 'https:': !0, + 'ftp:': !0, + 'gopher:': !0, + 'file:': !0, + }, + R = t('querystring'); + function i(t, e, n) { + if (t && C.isObject(t) && t instanceof w) return t; + var r = new w(); + return r.parse(t, e, n), r; + } + (w.prototype.parse = function (t, e, n) { + if (!C.isString(t)) + throw new TypeError("Parameter 'url' must be a string, not " + typeof t); + var r = t.indexOf('?'), + r = -1 !== r && r < t.indexOf('#') ? '?' : '#', + i = t.split(r); + i[0] = i[0].replace(/\\/g, '/'); + var o = (o = t = i.join(r)).trim(); + if (!n && 1 === t.split('#').length) { + i = I.exec(o); + if (i) + return ( + (this.path = o), + (this.href = o), + (this.pathname = i[1]), + i[2] + ? ((this.search = i[2]), + (this.query = e ? R.parse(this.search.substr(1)) : this.search.substr(1))) + : e && ((this.search = ''), (this.query = {})), + this + ); + } + var a, + r = x.exec(o); + if ( + (r && ((a = (r = r[0]).toLowerCase()), (this.protocol = a), (o = o.substr(r.length))), + !(n || r || o.match(/^\/\/[^@\/]+@[^@\/]+/)) || + !(y = '//' === o.substr(0, 2)) || + (r && _[r]) || + ((o = o.substr(2)), (this.slashes = !0)), + !_[r] && (y || (r && !T[r]))) + ) { + for (var s = -1, l = 0; l < S.length; l++) + -1 !== (u = o.indexOf(S[l])) && (-1 === s || u < s) && (s = u); + -1 !== (t = -1 === s ? o.lastIndexOf('@') : o.lastIndexOf('@', s)) && + ((i = o.slice(0, t)), (o = o.slice(t + 1)), (this.auth = decodeURIComponent(i))); + for (var u, s = -1, l = 0; l < D.length; l++) + -1 !== (u = o.indexOf(D[l])) && (-1 === s || u < s) && (s = u); + -1 === s && (s = o.length), + (this.host = o.slice(0, s)), + (o = o.slice(s)), + this.parseHost(), + (this.hostname = this.hostname || ''); + n = '[' === this.hostname[0] && ']' === this.hostname[this.hostname.length - 1]; + if (!n) + for (var c = this.hostname.split(/\./), l = 0, A = c.length; l < A; l++) { + var h = c[l]; + if (h && !h.match(k)) { + for (var p = '', d = 0, f = h.length; d < f; d++) + 127 < h.charCodeAt(d) ? (p += 'x') : (p += h[d]); + if (!p.match(k)) { + var g = c.slice(0, l), + m = c.slice(l + 1), + v = h.match(F); + v && (g.push(v[1]), m.unshift(v[2])), + m.length && (o = '/' + m.join('.') + o), + (this.hostname = g.join('.')); + break; + } + } + } + 255 < this.hostname.length + ? (this.hostname = '') + : (this.hostname = this.hostname.toLowerCase()), + n || (this.hostname = B.toASCII(this.hostname)); + var b = this.port ? ':' + this.port : '', + y = this.hostname || ''; + (this.host = y + b), + (this.href += this.host), + n && + ((this.hostname = this.hostname.substr(1, this.hostname.length - 2)), + '/' !== o[0] && (o = '/' + o)); + } + if (!Q[a]) + for (l = 0, A = M.length; l < A; l++) { + var w, + E = M[l]; + -1 !== o.indexOf(E) && + ((w = encodeURIComponent(E)) === E && (w = escape(E)), (o = o.split(E).join(w))); + } + (r = o.indexOf('#')), + -1 !== r && ((this.hash = o.substr(r)), (o = o.slice(0, r))), + (t = o.indexOf('?')); + return ( + -1 !== t + ? ((this.search = o.substr(t)), + (this.query = o.substr(t + 1)), + e && (this.query = R.parse(this.query)), + (o = o.slice(0, t))) + : e && ((this.search = ''), (this.query = {})), + o && (this.pathname = o), + T[a] && this.hostname && !this.pathname && (this.pathname = '/'), + (this.pathname || this.search) && + ((b = this.pathname || ''), (i = this.search || ''), (this.path = b + i)), + (this.href = this.format()), + this + ); + }), + (w.prototype.format = function () { + var t = this.auth || '', + e = + (t && ((t = (t = encodeURIComponent(t)).replace(/%3A/i, ':')), (t += '@')), + this.protocol || ''), + n = this.pathname || '', + r = this.hash || '', + i = !1, + o = '', + t = + (this.host + ? (i = t + this.host) + : this.hostname && + ((i = + t + + (-1 === this.hostname.indexOf(':') + ? this.hostname + : '[' + this.hostname + ']')), + this.port && (i += ':' + this.port)), + this.query && + C.isObject(this.query) && + Object.keys(this.query).length && + (o = R.stringify(this.query)), + this.search || (o && '?' + o) || ''); + return ( + e && ':' !== e.substr(-1) && (e += ':'), + this.slashes || ((!e || T[e]) && !1 !== i) + ? ((i = '//' + (i || '')), n && '/' !== n.charAt(0) && (n = '/' + n)) + : (i = i || ''), + r && '#' !== r.charAt(0) && (r = '#' + r), + t && '?' !== t.charAt(0) && (t = '?' + t), + e + + i + + (n = n.replace(/[?#]/g, function (t) { + return encodeURIComponent(t); + })) + + (t = t.replace('#', '%23')) + + r + ); + }), + (w.prototype.resolve = function (t) { + return this.resolveObject(i(t, !1, !0)).format(); + }), + (w.prototype.resolveObject = function (t) { + C.isString(t) && ((h = new w()).parse(t, !1, !0), (t = h)); + for (var e = new w(), n = Object.keys(this), r = 0; r < n.length; r++) { + var i = n[r]; + e[i] = this[i]; + } + if (((e.hash = t.hash), '' === t.href)) return (e.href = e.format()), e; + if (t.slashes && !t.protocol) { + for (var o = Object.keys(t), a = 0; a < o.length; a++) { + var s = o[a]; + 'protocol' !== s && (e[s] = t[s]); + } + return ( + T[e.protocol] && e.hostname && !e.pathname && (e.path = e.pathname = '/'), + (e.href = e.format()), + e + ); + } + if (t.protocol && t.protocol !== e.protocol) { + if (!T[t.protocol]) { + for (var l = Object.keys(t), u = 0; u < l.length; u++) { + var c = l[u]; + e[c] = t[c]; + } + return (e.href = e.format()), e; + } + if (((e.protocol = t.protocol), t.host || _[t.protocol])) e.pathname = t.pathname; + else { + for (var A = (t.pathname || '').split('/'); A.length && !(t.host = A.shift()); ); + t.host || (t.host = ''), + t.hostname || (t.hostname = ''), + '' !== A[0] && A.unshift(''), + A.length < 2 && A.unshift(''), + (e.pathname = A.join('/')); + } + return ( + (e.search = t.search), + (e.query = t.query), + (e.host = t.host || ''), + (e.auth = t.auth), + (e.hostname = t.hostname || t.host), + (e.port = t.port), + (e.pathname || e.search) && + ((h = e.pathname || ''), (p = e.search || ''), (e.path = h + p)), + (e.slashes = e.slashes || t.slashes), + (e.href = e.format()), + e + ); + } + var h = e.pathname && '/' === e.pathname.charAt(0), + p = t.host || (t.pathname && '/' === t.pathname.charAt(0)), + h = p || h || (e.host && t.pathname), + d = h, + f = (e.pathname && e.pathname.split('/')) || [], + A = (t.pathname && t.pathname.split('/')) || [], + g = e.protocol && !T[e.protocol]; + if ( + (g && + ((e.hostname = ''), + (e.port = null), + e.host && ('' === f[0] ? (f[0] = e.host) : f.unshift(e.host)), + (e.host = ''), + t.protocol && + ((t.hostname = null), + (t.port = null), + t.host && ('' === A[0] ? (A[0] = t.host) : A.unshift(t.host)), + (t.host = null)), + (h = h && ('' === A[0] || '' === f[0]))), + p) + ) + (e.host = (t.host || '' === t.host ? t : e).host), + (e.hostname = (t.hostname || '' === t.hostname ? t : e).hostname), + (e.search = t.search), + (e.query = t.query), + (f = A); + else if (A.length) + (f = f || []).pop(), (f = f.concat(A)), (e.search = t.search), (e.query = t.query); + else if (!C.isNullOrUndefined(t.search)) + return ( + g && + ((e.hostname = e.host = f.shift()), + (y = !!(e.host && 0 < e.host.indexOf('@')) && e.host.split('@')) && + ((e.auth = y.shift()), (e.host = e.hostname = y.shift()))), + (e.search = t.search), + (e.query = t.query), + (C.isNull(e.pathname) && C.isNull(e.search)) || + (e.path = (e.pathname || '') + (e.search || '')), + (e.href = e.format()), + e + ); + if (!f.length) + return ( + (e.pathname = null), + e.search ? (e.path = '/' + e.search) : (e.path = null), + (e.href = e.format()), + e + ); + for ( + var m = f.slice(-1)[0], + p = ((e.host || t.host || 1 < f.length) && ('.' === m || '..' === m)) || '' === m, + v = 0, + b = f.length; + 0 <= b; + b-- + ) + '.' === (m = f[b]) + ? f.splice(b, 1) + : '..' === m + ? (f.splice(b, 1), v++) + : v && (f.splice(b, 1), v--); + if (!h && !d) for (; v--; ) f.unshift('..'); + !h || '' === f[0] || (f[0] && '/' === f[0].charAt(0)) || f.unshift(''), + p && '/' !== f.join('/').substr(-1) && f.push(''); + var y, + d = '' === f[0] || (f[0] && '/' === f[0].charAt(0)); + return ( + g && + ((e.hostname = e.host = !d && f.length ? f.shift() : ''), + (y = !!(e.host && 0 < e.host.indexOf('@')) && e.host.split('@')) && + ((e.auth = y.shift()), (e.host = e.hostname = y.shift()))), + (h = h || (e.host && f.length)) && !d && f.unshift(''), + f.length ? (e.pathname = f.join('/')) : ((e.pathname = null), (e.path = null)), + (C.isNull(e.pathname) && C.isNull(e.search)) || + (e.path = (e.pathname || '') + (e.search || '')), + (e.auth = t.auth || e.auth), + (e.slashes = e.slashes || t.slashes), + (e.href = e.format()), + e + ); + }), + (w.prototype.parseHost = function () { + var t = this.host, + e = r.exec(t); + e && + (':' !== (e = e[0]) && (this.port = e.substr(1)), + (t = t.substr(0, t.length - e.length))), + t && (this.hostname = t); + }); + }, + { './util': 72, punycode: 47, querystring: 50 }, + ], + 72: [ + function (t, e, n) { + 'use strict'; + e.exports = { + isString: function (t) { + return 'string' == typeof t; + }, + isObject: function (t) { + return 'object' == typeof t && null !== t; + }, + isNull: function (t) { + return null === t; + }, + isNullOrUndefined: function (t) { + return null == t; + }, + }; + }, + {}, + ], + 73: [ + function (t, n, e) { + !function (e) { + !function () { + function r(t) { + try { + if (!e.localStorage) return; + } catch (t) { + return; + } + t = e.localStorage[t]; + return null != t && 'true' === String(t).toLowerCase(); + } + n.exports = function (t, e) { + if (r('noDeprecation')) return t; + var n = !1; + return function () { + if (!n) { + if (r('throwDeprecation')) throw new Error(e); + r('traceDeprecation') ? console.trace(e) : console.warn(e), (n = !0); + } + return t.apply(this, arguments); + }; + }; + }.call(this); + }.call( + this, + 'undefined' != typeof global + ? global + : 'undefined' != typeof self + ? self + : 'undefined' != typeof window + ? window + : {}, + ); + }, + {}, + ], + 74: [ + function (t, e, n) { + e.exports = function () { + for (var t = {}, e = 0; e < arguments.length; e++) { + var n, + r = arguments[e]; + for (n in r) i.call(r, n) && (t[n] = r[n]); + } + return t; + }; + var i = Object.prototype.hasOwnProperty; + }, + {}, + ], + 75: [ + function (t, e, n) { + var r = + '@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400italic,700");\n/*@import "../../node_modules/protvista/style/main.css";*/\n/*@import "../../node_modules/litemol /dist/css/LiteMol-plugin-light.css";*/\nsvg {\n overflow: hidden;\n}\n.up_pftv_buttons {\n display: table-cell;\n padding: 0 .5em 0 .5em;\n width: 198px;\n text-align: right;\n vertical-align: bottom;\n position: relative;\n box-sizing: border-box;\n}\n.bottom-aa-container {\n display: table;\n width: 100%;\n}\n.up_pftv_credit_container {\n display: table-cell;\n vertical-align: top;\n width: 198px;\n padding: 0 0.5em;\n box-sizing: border-box;\n}\n.up_pftv_credit {\n font-size: .9em;\n color: grey;\n}\n.up_pftv_credit:after {\n content: "";\n background: url("data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!-- Created with Inkscape (http%3A%2F%2Fwww.inkscape.org%2F) --%3E%3Csvg xmlns%3Asvg%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Asodipodi%3D%22http%3A%2F%2Fsodipodi.sourceforge.net%2FDTD%2Fsodipodi-0.dtd%22 xmlns%3Ainkscape%3D%22http%3A%2F%2Fwww.inkscape.org%2Fnamespaces%2Finkscape%22 width%3D%2264px%22 height%3D%2264px%22 id%3D%22svg2985%22 version%3D%221.1%22 inkscape%3Aversion%3D%220.48.4 r9939%22%3E %3Cg id%3D%22layer1%22 inkscape%3Alabel%3D%22Layer 1%22 inkscape%3Agroupmode%3D%22layer%22%3E %3Ctext xml%3Aspace%3D%22preserve%22 style%3D%22font-size%3A77.17918396000000300px%3Bfont-style%3Anormal%3Bfont-weight%3Anormal%3Bline-height%3A125%25%3Bletter-spacing%3A0px%3Bword-spacing%3A0px%3Bfill%3A%2397a2ae%3Bfill-opacity%3A1%3Bstroke%3Anone%3Bfont-family%3AScript MT Bold%3B-inkscape-font-specification%3AScript MT Bold%22 x%3D%2223.582533%22 y%3D%2255.973633%22 id%3D%22text3763%22 sodipodi%3Alinespacing%3D%22125%25%22 transform%3D%22scale(0.93289386%2C1.0719333)%22%3E%3Ctspan sodipodi%3Arole%3D%22line%22 id%3D%22tspan3765%22 x%3D%2223.582533%22 y%3D%2255.973633%22 style%3D%22font-style%3Anormal%3Bfont-variant%3Anormal%3Bfont-weight%3Abold%3Bfont-stretch%3Anormal%3Bfont-family%3ASerif%3B-inkscape-font-specification%3ASerif Bold%3Bfill%3A%2397a2ae%3Bfill-opacity%3A1%22%3Ei%3C%2Ftspan%3E%3C%2Ftext%3E %3C%2Fg%3E%3C%2Fsvg%3E");\n background-size: .9em .9em;\n background-repeat: no-repeat;\n display: inline-block;\n width: 1em;\n height: 1em;\n}\n.up_pftv_category-container {\n position: relative;\n border-right: 2px solid #b2f5ff;\n border-top: 1px solid #b2f5ff;\n}\n.up_pftv_category-container svg {\n cursor: move;\n}\n.up_pftv_container {\n position: relative;\n /*width: 960px;*/\n color: #557071 !important;\n font-family: \'Helvetica neue\', Helvetica, Arial, sans-serif !important;\n font-size: 13px !important;\n line-height: 1.5 !important;\n}\n.up_pftv_container a,\n.up_pftv_container a:link,\n.up_pftv_container a:hover,\n.up_pftv_container a:active,\n.up_pftv_container a:visited {\n color: #557071 !important;\n border: none;\n text-decoration: none !important;\n}\n.up_pftv_container h4 {\n font-size: 1em !important;\n font-weight: 500 !important;\n border-bottom: 1px solid #cacaca;\n margin-bottom: .7em;\n}\n.up_pftv_keepWithPrevious {\n margin-top: 0px;\n}\n.up_ptfv_pp-container {\n display: inline-block;\n margin: 5em 0 0 0.5em;\n vertical-align: top;\n}\n.up_pftv_navruler {\n margin-left: 195px;\n}\n.up_pftv_navruler svg {\n vertical-align: bottom;\n font-size: 14px;\n}\n.up_pftv_navruler svg {\n /*background-color: #FDF7EF;*/\n}\n/*Category and type tracks*/\n.up_pftv_category {\n margin-bottom: .1em;\n border-bottom: .1em solid #b2f5ff;\n display: table;\n width: 100%;\n}\n.up_pftv_category-name,\n.up_pftv_track-header {\n font-weight: 400;\n line-height: 2.1em;\n width: 198px;\n max-width: 198px;\n vertical-align: bottom;\n padding: .5em;\n border: none;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n.up_pftv_category-name {\n background-color: #b2f5ff;\n display: table-cell;\n box-sizing: border-box;\n}\n.up_pftv_category a:hover {\n background-color: #80EEFF;\n border-bottom: none;\n text-decoration: none;\n}\n.up_pftv_track-header {\n display: table-cell;\n background-color: #d9faff;\n box-sizing: border-box;\n /*line-height: 1.6em;\n margin: .05em 0;*/\n}\n.up_pftv_category-viewer,\n.up_pftv_track,\n.up_pftv_aaviewer {\n position: relative;\n vertical-align: bottom;\n /*width: 760px;*/\n}\n.up_pftv_track {\n display: table-cell;\n}\n.up_pftv_aaviewer {\n display: table-cell;\n}\n.up_pftv_category-viewer {\n display: table-cell;\n}\n.up_pftv_category-viewer svg,\n.up_pftv_track svg,\n.up_pftv_aaviewer svg {\n vertical-align: bottom;\n}\n.up_pftv_category-name {\n cursor: pointer;\n}\n.up_pftv_track-header-container {\n vertical-align: top;\n margin-top: 1px;\n background-color: #D9FAFF;\n}\n.up_pftv_category-tracks {\n display: table-row;\n}\n.up_pftv_track {\n border-top: 1px #b2f5ff solid;\n}\n.up_pftv_category-name.up_pftv_arrow-right:before {\n content: \' \';\n display: inline-block;\n width: 0;\n height: 0;\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n border-left: 5px solid #333;\n margin-right: 5px;\n}\n.up_pftv_category-name.up_pftv_arrow-down:before {\n content: \' \';\n display: inline-block;\n width: 0;\n height: 0;\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n border-top: 5px solid #333;\n margin-right: 5px;\n}\n.up_pftv_category-disabled {\n opacity: 0;\n display: none;\n}\n/* Ruler */\n.up_pftv_navruler .axis {\n font-size: 12px;\n}\n.up_pftv_navruler line,\n.up_pftv_navruler path {\n fill: none;\n stroke: black;\n}\n.up_pftv_aaviewer path {\n display: no;\n}\n.up_pftv_navruler .up_pftv_viewport {\n fill: #D7DCE0;\n fill-opacity: 0.4;\n}\n.up_pftv_navruler path.up_pftv_trapezoid {\n fill: #D7DCE0;\n stroke: none;\n fill-opacity: 0.4;\n stroke: none;\n}\n.up_pftv_highlight,\n.up_pftv_amino_acid_selector {\n fill: #FFE999;\n fill-opacity: 1;\n}\n.up_pftv_navruler .handle {\n fill: #D7DCE0;\n fill-opacity: 1;\n stroke: #000;\n stroke-width: 1px;\n}\n.up_pftv_navruler .handle:hover {\n fill-opacity: 1;\n}\n.up_pftv_aaviewer text {\n font-family: "Lucida Console", Monaco, monospace;\n font-size: 12px;\n}\n.up_pftv_feature {\n cursor: pointer;\n fill-opacity: .6;\n}\n.up_pftv_feature:hover {\n fill-opacity: .9;\n}\n.up_pftv_activeFeature {\n fill-opacity: .9 !important;\n}\n.up_pftv_variation-chart .up_pftv_block-area {\n fill: lightgrey;\n stroke: none;\n}\n.up_pftv_variation-chart .up_pftv_block-area:hover {\n fill: darkslategrey;\n cursor: pointer;\n}\n.up_pftv_variation-chart .up_pftv_line {\n fill: none;\n stroke: darkgrey;\n stroke-width: 1px;\n}\n.up_pftv_variation-chart .up_pftv_line:hover,\n.up_pftv_variation-chart .up_pftv_line:hover + .up_pftv_block-area {\n stroke: darkslategrey;\n cursor: pointer;\n}\n/* Dialogs */\n.up_pftv_dialog-container {\n margin: 0;\n padding: 0;\n}\n.up_pftv_dialog-container li a {\n display: block;\n line-height: 2em;\n padding: 0 .2em;\n cursor: pointer;\n}\n.up_pftv_legend {\n vertical-align: sub;\n width: 1.5em;\n display: inline-block;\n height: 1em;\n border-radius: .4em;\n border: 2px solid #ABABAB;\n margin-right: .5em;\n}\n.up_pftv_legend_double {\n height: 3em !important;\n}\n.up_pftv_legend_text {\n line-height: 2em;\n display: inline-block;\n vertical-align: top;\n}\n/* Close button */\n.up_pftv_tooltip-close {\n color: #FFF;\n background-color: #333333;\n position: absolute;\n top: -10px;\n right: -10px;\n cursor: pointer;\n border-radius: 20px;\n width: 20px;\n height: 20px;\n font-size: 14px !important;\n text-align: center;\n border: 1px solid #fff;\n}\n/* Tooltip */\n.up_pftv_tooltip-pin-container {\n display: inline-block;\n float: left;\n padding: 4px 10px 0 0;\n}\n/*.up_pftv_icon-frame {\n border-radius: 20px;\n width: 20px;\n height: 20px;\n text-align: center;\n border: 1px solid;\n margin: .2em;\n}*/\n.up_pftv_iconContainer-unpinned {\n background-color: lightgrey !important;\n color: black !important;\n}\n.up_pftv_iconContainer-unpinned:hover {\n background-color: grey !important;\n}\n.up_pftv_iconContainer-pinned {\n background-color: black !important;\n color: white !important;\n}\n.up_pftv_tooltip-container,\n.up_pftv_popupDialog-container {\n z-index: 50000;\n position: absolute;\n opacity: 0;\n display: none;\n}\n.up_pftv_tooltip-container {\n min-width: 220px;\n}\n.up_pftv_popupDialog-container {\n border: 1px solid #557071;\n background-color: #ffffff;\n padding: 0.5em;\n min-width: 210px;\n text-align: left;\n font-size: 13px;\n}\n.up_pftv_popupDialog-container table {\n border: 0px;\n background-color: #FFF;\n width: 100%;\n}\n.up_pftv_popupDialog-container td {\n padding: .2em;\n margin: 0;\n}\n.up_pftv_popupDialog-container td:first-child {\n font-size: small;\n}\n\n.up_pftv_tooltip-container table {\n font-size: 13px;\n border: 2px solid #CCC;\n border-spacing: 0;\n border-collapse: collapse;\n background-color: #FFF;\n -webkit-box-shadow: 5px 5px 2px 0px rgba(0, 0, 0, 0.1);\n -moz-box-shadow: 5px 5px 2px 0px rgba(0, 0, 0, 0.1);\n box-shadow: 5px 5px 2px 0px rgba(0, 0, 0, 0.1);\n width: 100%;\n}\n.up_pftv_tooltip-container table th {\n text-transform: capitalize;\n font-weight: 400;\n white-space: nowrap;\n letter-spacing: .05em;\n font-size: 1.1em;\n background-color: #595959;\n line-height: 2em;\n padding: 0 .7em;\n color: #FFF;\n text-align: center;\n}\n.up_pftv_tooltip-container table a {\n text-decoration: underline !important;\n}\n.up_pftv_tooltip-container table td {\n padding: .4em;\n margin: 0;\n border: 1px solid #CCC;\n}\n.up_pftv_tooltip-container td:first-child {\n font-weight: bold;\n}\n.up_pftv_tooltip-container .up_pftv_evidence-col {\n background-color: #FFF;\n}\n.up_pftv_tooltip-container .up_pftv_evidence-source {\n background-color: #FFF;\n}\n.up_pftv_tooltip-container .up_pftv_section {\n background-color: #B3B3B3;\n text-align: center;\n}\n.up_pftv_tooltip-container .up_pftv_subsection {\n color: black;\n}\n/* Features */\nsvg .up_pftv_chain {\n stroke: #CC9933;\n fill: #CC9933;\n}\nsvg .up_pftv_transit {\n stroke: #009966;\n fill: #009966;\n}\nsvg .up_pftv_init_met {\n stroke: #996633;\n fill: #996633;\n}\nsvg .up_pftv_propep {\n stroke: #99CCCC;\n fill: #99CCCC;\n}\nsvg .up_pftv_peptide {\n stroke: #006699;\n fill: #006699;\n}\nsvg .up_pftv_signal {\n stroke: #CC0033;\n fill: #CC0033;\n}\nsvg .up_pftv_turn {\n stroke: #0571AF;\n fill: #0571AF;\n}\nsvg .up_pftv_strand {\n stroke: #FFCC00;\n fill: #FFCC00;\n}\nsvg .up_pftv_helix {\n stroke: #FF0066;\n fill: #FF0066;\n}\nsvg .up_pftv_crosslnk {\n stroke: #FF6600;\n fill: #FF6600;\n}\nsvg .up_pftv_disulfid {\n stroke: #23B14D;\n fill: #23B14D;\n}\nsvg .up_pftv_region {\n stroke: #B33E00;\n fill: #B33E00;\n}\nsvg .up_pftv_coiled {\n stroke: #006699;\n fill: #006699;\n}\nsvg .up_pftv_motif {\n stroke: #402060;\n fill: #402060;\n}\nsvg .up_pftv_repeat {\n stroke: #9900FF;\n fill: #9900FF;\n}\nsvg .up_pftv_ca_bind {\n stroke: #FF3399;\n fill: #FF3399;\n}\nsvg .up_pftv_dna_bind {\n stroke: #009933;\n fill: #009933;\n}\nsvg .up_pftv_domain {\n stroke: #9999FF;\n fill: #9999FF;\n}\nsvg .up_pftv_zn_fing {\n stroke: #990066;\n fill: #990066;\n}\nsvg .up_pftv_np_bind {\n stroke: #FF9900;\n fill: #FF9900;\n}\nsvg .up_pftv_metal {\n stroke: #009900;\n fill: #009900;\n}\nsvg .up_pftv_site {\n stroke: #660033;\n fill: #660033;\n}\nsvg .up_pftv_binding {\n stroke: #006699;\n fill: #006699;\n}\nsvg .up_pftv_act_site {\n stroke: #FF6666;\n fill: #FF6666;\n}\nsvg .up_pftv_mod_res {\n stroke: #000066;\n fill: #000066;\n}\nsvg .up_pftv_lipid {\n stroke: #99CC33;\n fill: #99CC33;\n}\nsvg .up_pftv_carbohyd {\n stroke: #CC3366;\n fill: #CC3366;\n}\nsvg .up_pftv_variant {\n stroke-width: 2;\n}\nsvg .up_pftv_compbias {\n stroke: #FF3366;\n fill: #FF3366;\n}\nsvg .up_pftv_mutagen {\n stroke: #FF9900;\n fill: #FF9900;\n}\nsvg .up_pftv_conflict {\n stroke: #6633CC;\n fill: #6633CC;\n}\nsvg .up_pftv_non_cons {\n stroke: #FF0033;\n fill: #FF0033;\n}\nsvg .up_pftv_non_ter {\n stroke: #339933;\n fill: #339933;\n}\nsvg .up_pftv_unsure {\n stroke: #33FF00;\n fill: #33FF00;\n}\nsvg .up_pftv_non_std {\n stroke: #330066;\n fill: #330066;\n}\nsvg .up_pftv_topo_dom {\n stroke: #CC0000;\n fill: #CC0000;\n}\nsvg .up_pftv_transmem {\n stroke: #CC00CC;\n fill: #CC00CC;\n}\nsvg .up_pftv_intramem {\n stroke: #0000CC;\n fill: #0000CC;\n}\nsvg .up_pftv_unique {\n stroke: #fc3133;\n fill: #fd5a5d;\n}\nsvg .up_pftv_non_unique {\n stroke: #8585fc;\n fill: #5a60fb;\n}\nsvg .up_pftv_antigen {\n stroke: #996699;\n fill: #996699;\n}\n/* Variation */\n.up_pftv_variants-svg .axis path {\n display: none;\n}\n.up_pftv_variants-svg .axis text {\n font-size: 10px;\n font-family: \'Helvetica neue\', Helvetica, Arial, sans-serif;\n}\n.up_pftv_variants-svg .variation-y.axis line {\n stroke: #ccc;\n opacity: .4;\n}\n.up_pftv_variants-svg .variation-x.axis line {\n stroke: #000;\n}\n.up_pftv_variants-svg circle.main-seq {\n fill: #fff;\n stroke: steelblue;\n stroke-width: 1.5px;\n /*display: none;*/\n}\n.up_pftv_variants-svg .main-sequence {\n fill: green;\n}\n.up_pftv_variants-svg circle {\n cursor: pointer;\n fill-opacity: .6;\n}\n.up_pftv_variants-svg .up_pftv_variant_hidden {\n cursor: default;\n opacity: 0;\n}\n.up_pftv_variants-svg circle:hover {\n fill-opacity: 0.9;\n}\n.up_pftv_dialog_checkboxLabel {\n opacity: 0.9;\n}\n.up_pftv_dialog_checkboxLabel:hover {\n cursor: pointer;\n opacity: 1;\n}\n.up_pftv_message_wrapper {\n margin: .7em;\n}\n/*Taken from http://www.karimnassar.com/code/web/css-icons/*/\n.up_pftv_icon,\n.up_pftv_icon::before,\n.up_pftv_icon::after {\n position: relative;\n padding: 0;\n margin: 0;\n}\n.up_pftv_icon {\n font-size: 20px;\n color: transparent;\n}\n.up_pftv_icon.up_pftv_warning {\n display: inline-block;\n top: 0.225em;\n width: 1.15em;\n height: 1.15em;\n overflow: hidden;\n border: none;\n background-color: transparent;\n border-radius: 0.625em;\n}\n.up_pftv_icon.up_pftv_warning::before {\n content: "";\n display: block;\n top: -0.08em;\n left: 0.0em;\n position: absolute;\n border: transparent 0.6em solid;\n border-bottom-color: #fd3;\n border-bottom-width: 1em;\n border-top-width: 0;\n box-shadow: #999 0 1px 1px;\n}\n.up_pftv_icon.up_pftv_warning::after {\n display: block;\n position: absolute;\n top: 0.3em;\n left: 0;\n width: 100%;\n padding: 0 1px;\n text-align: center;\n content: "!";\n font-size: 0.65em;\n font-weight: bold;\n color: #333;\n}\n/* ICONS */\na.up_pftv_icon-button:hover {\n border: 1px solid #9CA8B4 !important;\n}\n.up_pftv_icon-button {\n border: 1px solid #D7DCE0 !important;\n border-radius: 2.5em;\n display: inline-block;\n text-indent: -9999px;\n width: 2.5em;\n height: 2.5em;\n background-size: 1.3em 1.3em !important;\n background-repeat: no-repeat !important;\n background-position: .6em .6em !important;\n margin: .2em;\n}\n.up_pftv_icon-download {\n background: url("data:image/svg+xml,%3Csvg width%3D%2260px%22 height%3D%2255px%22 viewBox%3D%2220 13 60 55%22 version%3D%221.1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E %3C!-- Generator%3A Sketch 41.1 (35376) - http%3A%2F%2Fwww.bohemiancoding.com%2Fsketch --%3E %3Cdesc%3ECreated with Sketch.%3C%2Fdesc%3E %3Cdefs%3E%3C%2Fdefs%3E %3Cpath d%3D%22M65.7143402%2C61.142849 C65.7143402%2C62.3928505 64.6786247%2C63.428566 63.4286232%2C63.428566 C62.1786217%2C63.428566 61.1429062%2C62.3928505 61.1429062%2C61.142849 C61.1429062%2C59.8928475 62.1786217%2C58.857132 63.4286232%2C58.857132 C64.6786247%2C58.857132 65.7143402%2C59.8928475 65.7143402%2C61.142849 Z M74.8572083%2C61.142849 C74.8572083%2C62.3928505 73.8214927%2C63.428566 72.5714912%2C63.428566 C71.3214898%2C63.428566 70.2857742%2C62.3928505 70.2857742%2C61.142849 C70.2857742%2C59.8928475 71.3214898%2C58.857132 72.5714912%2C58.857132 C73.8214927%2C58.857132 74.8572083%2C59.8928475 74.8572083%2C61.142849 Z M79.4286423%2C53.1428394 C79.4286423%2C51.24998 77.8929262%2C49.7142639 76.0000668%2C49.7142639 L59.4286184%2C49.7142639 L54.5714698%2C54.5714126 C53.2500396%2C55.8571284 51.5357519%2C56.5714149 49.7143211%2C56.5714149 C47.8928904%2C56.5714149 46.1786026%2C55.8571284 44.8571725%2C54.5714126 L40.0357382%2C49.7142639 L23.4285755%2C49.7142639 C21.5357161%2C49.7142639 20%2C51.24998 20%2C53.1428394 L20%2C64.5714245 C20%2C66.4642839 21.5357161%2C68 23.4285755%2C68 L76.0000668%2C68 C77.8929262%2C68 79.4286423%2C66.4642839 79.4286423%2C64.5714245 L79.4286423%2C53.1428394 Z M67.8214856%2C32.8213866 C67.4643423%2C31.9999571 66.6429127%2C31.4285278 65.7143402%2C31.4285278 L56.5714722%2C31.4285278 L56.5714722%2C15.4285088 C56.5714722%2C14.1785073 55.5357566%2C13.1427917 54.2857552%2C13.1427917 L45.1428871%2C13.1427917 C43.8928856%2C13.1427917 42.8571701%2C14.1785073 42.8571701%2C15.4285088 L42.8571701%2C31.4285278 L33.7143021%2C31.4285278 C32.7857295%2C31.4285278 31.9643%2C31.9999571 31.6071567%2C32.8213866 C31.2500134%2C33.6785305 31.4285851%2C34.6785317 32.1071573%2C35.3213896 L48.1071764%2C51.3214087 C48.5357483%2C51.785695 49.1428919%2C51.9999809 49.7143211%2C51.9999809 C50.2857504%2C51.9999809 50.892894%2C51.785695 51.3214659%2C51.3214087 L67.321485%2C35.3213896 C68.0000572%2C34.6785317 68.1786289%2C33.6785305 67.8214856%2C32.8213866 Z%22 id%3D%22%EF%80%99%22 stroke%3D%22none%22 fill%3D%22%2397A2AE%22 fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");\n}\n.up_pftv_icon-location {\n background: url("data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg width%3D%2237px%22 height%3D%2256px%22 viewBox%3D%220 0 37 56%22 version%3D%221.1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E %3C!-- Generator%3A Sketch 41.1 (35376) - http%3A%2F%2Fwww.bohemiancoding.com%2Fsketch --%3E %3Ctitle%3E%EF%81%81%3C%2Ftitle%3E %3Cdesc%3ECreated with Sketch.%3C%2Fdesc%3E %3Cdefs%3E%3C%2Fdefs%3E %3Cg id%3D%22Page-1%22 stroke%3D%22none%22 stroke-width%3D%221%22 fill%3D%22none%22 fill-rule%3D%22evenodd%22%3E %3Cg id%3D%22Artboard-2-Copy%22 transform%3D%22translate(-32.000000%2C -17.000000)%22 fill%3D%22%2397A2AE%22%3E %3Cpath d%3D%22M59.4286041%2C35.9999619 C59.4286041%2C41.0356821 55.3214564%2C45.1428299 50.2857361%2C45.1428299 C45.2500158%2C45.1428299 41.142868%2C41.0356821 41.142868%2C35.9999619 C41.142868%2C30.9642416 45.2500158%2C26.8570938 50.2857361%2C26.8570938 C55.3214564%2C26.8570938 59.4286041%2C30.9642416 59.4286041%2C35.9999619 Z M68.5714722%2C35.9999619 C68.5714722%2C25.8928069 60.392891%2C17.7142258 50.2857361%2C17.7142258 C40.1785812%2C17.7142258 32%2C25.8928069 32%2C35.9999619 C32%2C38.1785359 32.2500003%2C40.4285386 33.1785728%2C42.3928266 L46.2143027%2C70.0357167 C46.9285892%2C71.6071472 48.5714483%2C72.571434 50.2857361%2C72.571434 C52.0000238%2C72.571434 53.6428829%2C71.6071472 54.3928838%2C70.0357167 L67.3928993%2C42.3928266 C68.3214719%2C40.4285386 68.5714722%2C38.1785359 68.5714722%2C35.9999619 Z%22 id%3D%22%EF%81%81%22%3E%3C%2Fpath%3E %3C%2Fg%3E %3C%2Fg%3E%3C%2Fsvg%3E");\n}\n.up_pftv_icon-zoom-in {\n background: url("data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg width%3D%2260px%22 height%3D%2261px%22 viewBox%3D%220 0 60 61%22 version%3D%221.1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E %3C!-- Generator%3A Sketch 41.1 (35376) - http%3A%2F%2Fwww.bohemiancoding.com%2Fsketch --%3E %3Ctitle%3E%EF%80%8E%3C%2Ftitle%3E %3Cdesc%3ECreated with Sketch.%3C%2Fdesc%3E %3Cdefs%3E%3C%2Fdefs%3E %3Cg id%3D%22Page-1%22 stroke%3D%22none%22 stroke-width%3D%221%22 fill%3D%22none%22 fill-rule%3D%22evenodd%22%3E %3Cg id%3D%22Artboard-2-Copy-2%22 transform%3D%22translate(-20.000000%2C -17.000000)%22 fill%3D%22%2397A2AE%22%3E %3Cpath d%3D%22M56.5714722%2C41.7142544 C56.5714722%2C41.1071108 56.0357572%2C40.5713959 55.4286137%2C40.5713959 L47.4286041%2C40.5713959 L47.4286041%2C32.5713863 C47.4286041%2C31.9642428 46.8928892%2C31.4285278 46.2857456%2C31.4285278 L44.0000286%2C31.4285278 C43.392885%2C31.4285278 42.8571701%2C31.9642428 42.8571701%2C32.5713863 L42.8571701%2C40.5713959 L34.8571606%2C40.5713959 C34.250017%2C40.5713959 33.7143021%2C41.1071108 33.7143021%2C41.7142544 L33.7143021%2C43.9999714 C33.7143021%2C44.607115 34.250017%2C45.1428299 34.8571606%2C45.1428299 L42.8571701%2C45.1428299 L42.8571701%2C53.1428394 C42.8571701%2C53.749983 43.392885%2C54.2856979 44.0000286%2C54.2856979 L46.2857456%2C54.2856979 C46.8928892%2C54.2856979 47.4286041%2C53.749983 47.4286041%2C53.1428394 L47.4286041%2C45.1428299 L55.4286137%2C45.1428299 C56.0357572%2C45.1428299 56.5714722%2C44.607115 56.5714722%2C43.9999714 L56.5714722%2C41.7142544 Z M61.1429062%2C42.8571129 C61.1429062%2C51.678552 53.9643262%2C58.857132 45.1428871%2C58.857132 C36.321448%2C58.857132 29.142868%2C51.678552 29.142868%2C42.8571129 C29.142868%2C34.0356738 36.321448%2C26.8570938 45.1428871%2C26.8570938 C53.9643262%2C26.8570938 61.1429062%2C34.0356738 61.1429062%2C42.8571129 Z M79.4286423%2C72.571434 C79.4286423%2C71.3571469 78.9286417%2C70.178574 78.1072121%2C69.3571445 L65.8571975%2C57.1071299 C68.7500581%2C52.9285535 70.2857742%2C47.9285475 70.2857742%2C42.8571129 C70.2857742%2C28.9642392 59.0357608%2C17.7142258 45.1428871%2C17.7142258 C31.2500134%2C17.7142258 20%2C28.9642392 20%2C42.8571129 C20%2C56.7499866 31.2500134%2C68 45.1428871%2C68 C50.2143217%2C68 55.2143277%2C66.4642839 59.3929041%2C63.5714233 L71.6429187%2C75.7857236 C72.4643483%2C76.6428674 73.6429211%2C77.142868 74.8572083%2C77.142868 C77.3929256%2C77.142868 79.4286423%2C75.1071513 79.4286423%2C72.571434 Z%22 id%3D%22%EF%80%8E%22%3E%3C%2Fpath%3E %3C%2Fg%3E %3C%2Fg%3E%3C%2Fsvg%3E");\n}\n.up_pftv_icon-zoom-out {\n background: url("data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg width%3D%2260px%22 height%3D%2261px%22 viewBox%3D%220 0 60 61%22 version%3D%221.1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E %3C!-- Generator%3A Sketch 41.1 (35376) - http%3A%2F%2Fwww.bohemiancoding.com%2Fsketch --%3E %3Ctitle%3E%EF%80%90%3C%2Ftitle%3E %3Cdesc%3ECreated with Sketch.%3C%2Fdesc%3E %3Cdefs%3E%3C%2Fdefs%3E %3Cg id%3D%22Page-1%22 stroke%3D%22none%22 stroke-width%3D%221%22 fill%3D%22none%22 fill-rule%3D%22evenodd%22%3E %3Cg id%3D%22Artboard-2-Copy-3%22 transform%3D%22translate(-20.000000%2C -17.000000)%22 fill%3D%22%2397A2AE%22%3E %3Cpath d%3D%22M56.5714722%2C41.7142544 C56.5714722%2C41.1071108 56.0357572%2C40.5713959 55.4286137%2C40.5713959 L34.8571606%2C40.5713959 C34.250017%2C40.5713959 33.7143021%2C41.1071108 33.7143021%2C41.7142544 L33.7143021%2C43.9999714 C33.7143021%2C44.607115 34.250017%2C45.1428299 34.8571606%2C45.1428299 L55.4286137%2C45.1428299 C56.0357572%2C45.1428299 56.5714722%2C44.607115 56.5714722%2C43.9999714 L56.5714722%2C41.7142544 Z M61.1429062%2C42.8571129 C61.1429062%2C51.678552 53.9643262%2C58.857132 45.1428871%2C58.857132 C36.321448%2C58.857132 29.142868%2C51.678552 29.142868%2C42.8571129 C29.142868%2C34.0356738 36.321448%2C26.8570938 45.1428871%2C26.8570938 C53.9643262%2C26.8570938 61.1429062%2C34.0356738 61.1429062%2C42.8571129 Z M79.4286423%2C72.571434 C79.4286423%2C71.3571469 78.9286417%2C70.178574 78.1072121%2C69.3571445 L65.8571975%2C57.1071299 C68.7500581%2C52.9285535 70.2857742%2C47.9285475 70.2857742%2C42.8571129 C70.2857742%2C28.9642392 59.0357608%2C17.7142258 45.1428871%2C17.7142258 C31.2500134%2C17.7142258 20%2C28.9642392 20%2C42.8571129 C20%2C56.7499866 31.2500134%2C68 45.1428871%2C68 C50.2143217%2C68 55.2143277%2C66.4642839 59.3929041%2C63.5714233 L71.6429187%2C75.7857236 C72.4643483%2C76.6428674 73.6429211%2C77.142868 74.8572083%2C77.142868 C77.3929256%2C77.142868 79.4286423%2C75.1071513 79.4286423%2C72.571434 Z%22 id%3D%22%EF%80%90%22%3E%3C%2Fpath%3E %3C%2Fg%3E %3C%2Fg%3E%3C%2Fsvg%3E");\n}\n.up_pftv_icon-reset {\n background: url("data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!-- Created with Inkscape (http%3A%2F%2Fwww.inkscape.org%2F) --%3E%3Csvg xmlns%3Asvg%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 xmlns%3Ainkscape%3D%22http%3A%2F%2Fwww.inkscape.org%2Fnamespaces%2Finkscape%22 width%3D%2264px%22 height%3D%2264px%22 id%3D%22svg3813%22 version%3D%221.1%22 inkscape%3Aversion%3D%220.48.4 r9939%22%3E %3Cg id%3D%22layer1%22 inkscape%3Alabel%3D%22Layer 1%22 inkscape%3Agroupmode%3D%22layer%22%3E %3Cpath style%3D%22fill%3A%2397a2ae%3Bfill-opacity%3A1%3Bstroke%3A%23000000%3Bstroke-width%3A0%3Bstroke-miterlimit%3A4%3Bstroke-opacity%3A0%3Bstroke-dasharray%3Anone%22 d%3D%22M 32 1 C 23.252069 1 15.354939 4.6110155 9.71875 10.4375 L 0.5 7.84375 L 11.03125 31.1875 L 31.15625 16.5 L 21.53125 13.78125 C 24.616678 12.019026 28.18814 11 32 11 C 43.648187 11 53.09375 20.40202 53.09375 32 C 53.09375 43.59798 43.648187 53 32 53 C 27.960153 53 24.207801 51.836233 21 49.875 L 21 50 L 6.75 50 C 12.371455 57.87486 21.587074 63 32 63 C 49.120827 63 63 49.120827 63 32 C 63 14.879173 49.120827 1 32 1 z %22 id%3D%22path4899%22 %2F%3E %3C%2Fg%3E%3C%2Fsvg%3E");\n}\n.up_pftv_icon-info {\n background: url("data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3C!-- Created with Inkscape (http%3A%2F%2Fwww.inkscape.org%2F) --%3E%3Csvg xmlns%3Asvg%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Asodipodi%3D%22http%3A%2F%2Fsodipodi.sourceforge.net%2FDTD%2Fsodipodi-0.dtd%22 xmlns%3Ainkscape%3D%22http%3A%2F%2Fwww.inkscape.org%2Fnamespaces%2Finkscape%22 width%3D%2264px%22 height%3D%2264px%22 id%3D%22svg2985%22 version%3D%221.1%22 inkscape%3Aversion%3D%220.48.4 r9939%22%3E %3Cg id%3D%22layer1%22 inkscape%3Alabel%3D%22Layer 1%22 inkscape%3Agroupmode%3D%22layer%22%3E %3Ctext xml%3Aspace%3D%22preserve%22 style%3D%22font-size%3A77.17918396000000300px%3Bfont-style%3Anormal%3Bfont-weight%3Anormal%3Bline-height%3A125%25%3Bletter-spacing%3A0px%3Bword-spacing%3A0px%3Bfill%3A%2397a2ae%3Bfill-opacity%3A1%3Bstroke%3Anone%3Bfont-family%3AScript MT Bold%3B-inkscape-font-specification%3AScript MT Bold%22 x%3D%2223.582533%22 y%3D%2255.973633%22 id%3D%22text3763%22 sodipodi%3Alinespacing%3D%22125%25%22 transform%3D%22scale(0.93289386%2C1.0719333)%22%3E%3Ctspan sodipodi%3Arole%3D%22line%22 id%3D%22tspan3765%22 x%3D%2223.582533%22 y%3D%2255.973633%22 style%3D%22font-style%3Anormal%3Bfont-variant%3Anormal%3Bfont-weight%3Abold%3Bfont-stretch%3Anormal%3Bfont-family%3ASerif%3B-inkscape-font-specification%3ASerif Bold%3Bfill%3A%2397a2ae%3Bfill-opacity%3A1%22%3Ei%3C%2Ftspan%3E%3C%2Ftext%3E %3C%2Fg%3E%3C%2Fsvg%3E");\n}\n.up_pftv-clear {\n clear: both;\n}\n@font-face {\n font-family: \'fontello\';\n src: url("data:application/vnd.ms-fontobject;base64,eMAAANC/AAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAApv+ibQAAAAAAAAAAAAAAAAAAAAAAABAAZgBvAG4AdABlAGwAbABvAAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAQAGYAbwBuAHQAZQBsAGwAbwAAAAAAAAEAAAAPAIAAAwBwR1NVQrD+s+0AAAD8AAAAQk9TLzI+MEmlAAABQAAAAFZjbWFwRVKvZgAAAZgAAA1aY3Z0IAbx/uQAALO4AAAAIGZwZ22KkZBZAACz2AAAC3BnYXNwAAAAEAAAs7AAAAAIZ2x5ZrLdNoQAAA70AACTdmhlYWQJpdtdAACibAAAADZoaGVhBzEEFQAAoqQAAAAkaG10eK8A/nMAAKLIAAADZGxvY2FXyX7XAACmLAAAAbRtYXhwAmIMPQAAp+AAAAAgbmFtZcydHB4AAKgAAAACzXBvc3RiqRPEAACq0AAACN1wcmVw5UErvAAAv0gAAACGAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQMqAZAABQAAAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6ADo3gNS/2oAWgNgAKYAAAABAAAAAAAAAAAABQAAAAMAAAAsAAAABAAAAyoAAQAAAAACJAADAAEAAAAsAAMACgAAAyoABAH4AAAADgAIAAIABugA6KPopuis6MDo3v//AADoAOgD6KXoqeiu6ML//wAAAAAAAAAAAAAAAAABAA4ADgFOAVABVgF6AAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZABlAGYAZwBoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHUAdgB3AHgAeQB6AHsAfAB9AH4AfwCAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwAzQDOAM8A0ADRANIA0wDUANUA1gDXANgAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAACjAAAAAAAAAA2AAA6AAAAOgAAAAAAQAA6AMAAOgDAAAAAgAA6AQAAOgEAAAAAwAA6AUAAOgFAAAABAAA6AYAAOgGAAAABQAA6AcAAOgHAAAABgAA6AgAAOgIAAAABwAA6AkAAOgJAAAACAAA6AoAAOgKAAAACQAA6AsAAOgLAAAACgAA6AwAAOgMAAAACwAA6A0AAOgNAAAADAAA6A4AAOgOAAAADQAA6A8AAOgPAAAADgAA6BAAAOgQAAAADwAA6BEAAOgRAAAAEAAA6BIAAOgSAAAAEQAA6BMAAOgTAAAAEgAA6BQAAOgUAAAAEwAA6BUAAOgVAAAAFAAA6BYAAOgWAAAAFQAA6BcAAOgXAAAAFgAA6BgAAOgYAAAAFwAA6BkAAOgZAAAAGAAA6BoAAOgaAAAAGQAA6BsAAOgbAAAAGgAA6BwAAOgcAAAAGwAA6B0AAOgdAAAAHAAA6B4AAOgeAAAAHQAA6B8AAOgfAAAAHgAA6CAAAOggAAAAHwAA6CEAAOghAAAAIAAA6CIAAOgiAAAAIQAA6CMAAOgjAAAAIgAA6CQAAOgkAAAAIwAA6CUAAOglAAAAJAAA6CYAAOgmAAAAJQAA6CcAAOgnAAAAJgAA6CgAAOgoAAAAJwAA6CkAAOgpAAAAKAAA6CoAAOgqAAAAKQAA6CsAAOgrAAAAKgAA6CwAAOgsAAAAKwAA6C0AAOgtAAAALAAA6C4AAOguAAAALQAA6C8AAOgvAAAALgAA6DAAAOgwAAAALwAA6DEAAOgxAAAAMAAA6DIAAOgyAAAAMQAA6DMAAOgzAAAAMgAA6DQAAOg0AAAAMwAA6DUAAOg1AAAANAAA6DYAAOg2AAAANQAA6DcAAOg3AAAANgAA6DgAAOg4AAAANwAA6DkAAOg5AAAAOAAA6DoAAOg6AAAAOQAA6DsAAOg7AAAAOgAA6DwAAOg8AAAAOwAA6D0AAOg9AAAAPAAA6D4AAOg+AAAAPQAA6D8AAOg/AAAAPgAA6EAAAOhAAAAAPwAA6EEAAOhBAAAAQAAA6EIAAOhCAAAAQQAA6EMAAOhDAAAAQgAA6EQAAOhEAAAAQwAA6EUAAOhFAAAARAAA6EYAAOhGAAAARQAA6EcAAOhHAAAARgAA6EgAAOhIAAAARwAA6EkAAOhJAAAASAAA6EoAAOhKAAAASQAA6EsAAOhLAAAASgAA6EwAAOhMAAAASwAA6E0AAOhNAAAATAAA6E4AAOhOAAAATQAA6E8AAOhPAAAATgAA6FAAAOhQAAAATwAA6FEAAOhRAAAAUAAA6FIAAOhSAAAAUQAA6FMAAOhTAAAAUgAA6FQAAOhUAAAAUwAA6FUAAOhVAAAAVAAA6FYAAOhWAAAAVQAA6FcAAOhXAAAAVgAA6FgAAOhYAAAAVwAA6FkAAOhZAAAAWAAA6FoAAOhaAAAAWQAA6FsAAOhbAAAAWgAA6FwAAOhcAAAAWwAA6F0AAOhdAAAAXAAA6F4AAOheAAAAXQAA6F8AAOhfAAAAXgAA6GAAAOhgAAAAXwAA6GEAAOhhAAAAYAAA6GIAAOhiAAAAYQAA6GMAAOhjAAAAYgAA6GQAAOhkAAAAYwAA6GUAAOhlAAAAZAAA6GYAAOhmAAAAZQAA6GcAAOhnAAAAZgAA6GgAAOhoAAAAZwAA6GkAAOhpAAAAaAAA6GoAAOhqAAAAaQAA6GsAAOhrAAAAagAA6GwAAOhsAAAAawAA6G0AAOhtAAAAbAAA6G4AAOhuAAAAbQAA6G8AAOhvAAAAbgAA6HAAAOhwAAAAbwAA6HEAAOhxAAAAcAAA6HIAAOhyAAAAcQAA6HMAAOhzAAAAcgAA6HQAAOh0AAAAcwAA6HUAAOh1AAAAdAAA6HYAAOh2AAAAdQAA6HcAAOh3AAAAdgAA6HgAAOh4AAAAdwAA6HkAAOh5AAAAeAAA6HoAAOh6AAAAeQAA6HsAAOh7AAAAegAA6HwAAOh8AAAAewAA6H0AAOh9AAAAfAAA6H4AAOh+AAAAfQAA6H8AAOh/AAAAfgAA6IAAAOiAAAAAfwAA6IEAAOiBAAAAgAAA6IIAAOiCAAAAgQAA6IMAAOiDAAAAggAA6IQAAOiEAAAAgwAA6IUAAOiFAAAAhAAA6IYAAOiGAAAAhQAA6IcAAOiHAAAAhgAA6IgAAOiIAAAAhwAA6IkAAOiJAAAAiAAA6IoAAOiKAAAAiQAA6IsAAOiLAAAAigAA6IwAAOiMAAAAiwAA6I0AAOiNAAAAjAAA6I4AAOiOAAAAjQAA6I8AAOiPAAAAjgAA6JAAAOiQAAAAjwAA6JEAAOiRAAAAkAAA6JIAAOiSAAAAkQAA6JMAAOiTAAAAkgAA6JQAAOiUAAAAkwAA6JUAAOiVAAAAlAAA6JYAAOiWAAAAlQAA6JcAAOiXAAAAlgAA6JgAAOiYAAAAlwAA6JkAAOiZAAAAmAAA6JoAAOiaAAAAmQAA6JsAAOibAAAAmgAA6JwAAOicAAAAmwAA6J0AAOidAAAAnAAA6J4AAOieAAAAnQAA6J8AAOifAAAAngAA6KAAAOigAAAAnwAA6KEAAOihAAAAoAAA6KIAAOiiAAAAoQAA6KMAAOijAAAAogAA6KUAAOilAAAAowAA6KYAAOimAAAApAAA6KkAAOipAAAApQAA6KoAAOiqAAAApgAA6KsAAOirAAAApwAA6KwAAOisAAAAqAAA6K4AAOiuAAAAqQAA6K8AAOivAAAAqgAA6LAAAOiwAAAAqwAA6LEAAOixAAAArAAA6LIAAOiyAAAArQAA6LMAAOizAAAArgAA6LQAAOi0AAAArwAA6LUAAOi1AAAAsAAA6LYAAOi2AAAAsQAA6LcAAOi3AAAAsgAA6LgAAOi4AAAAswAA6LkAAOi5AAAAtAAA6LoAAOi6AAAAtQAA6LsAAOi7AAAAtgAA6LwAAOi8AAAAtwAA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AVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAAdwYWxldHRlBnNlYXJjaApmbGFzaGxpZ2h0BG1haWwFaGVhcnQLaGVhcnQtZW1wdHkEc3RhcgpzdGFyLWVtcHR5BHVzZXIFdXNlcnMIdXNlci1hZGQFdmlkZW8HcGljdHVyZQZjYW1lcmEGbGF5b3V0BG1lbnUFY2hlY2sGY2FuY2VsDmNhbmNlbC1jaXJjbGVkDmNhbmNlbC1zcXVhcmVkBHBsdXMMcGx1cy1jaXJjbGVkDHBsdXMtc3F1YXJlZAVtaW51cw1taW51cy1jaXJjbGVkDW1pbnVzLXNxdWFyZWQEaGVscAxoZWxwLWNpcmNsZWQEaW5mbwxpbmZvLWNpcmNsZWQEYmFjawRob21lBGxpbmsGYXR0YWNoBGxvY2sJbG9jay1vcGVuA2V5ZQN0YWcIYm9va21hcmsJYm9va21hcmtzBGZsYWcJdGh1bWJzLXVwC3RodW1icy1kb3duCGRvd25sb2FkBnVwbG9hZAx1cGxvYWQtY2xvdWQFcmVwbHkJcmVwbHktYWxsB2ZvcndhcmQFcXVvdGUEY29kZQZleHBvcnQGcGVuY2lsB2ZlYXRoZXIFcHJpbnQHcmV0d2VldAhrZXlib2FyZAdjb21tZW50BGNoYXQEYmVsbAlhdHRlbnRpb24FYWxlcnQFdmNhcmQHYWRkcmVzcwhsb2NhdGlvbgNtYXAJZGlyZWN0aW9uB2NvbXBhc3MDY3VwBXRyYXNoA2RvYwRkb2NzDWRvYy1sYW5kc2NhcGUIZG9jLXRleHQMZG9jLXRleHQtaW52CW5ld3NwYXBlcglib29rLW9wZW4EYm9vawZmb2xkZXIHYXJjaGl2ZQNib3gDcnNzBXBob25lA2NvZwV0b29scwVzaGFyZQlzaGFyZWFibGUGYmFza2V0A2JhZwhjYWxlbmRhcgVsb2dpbgZsb2dvdXQDbWljBG11dGUFc291bmQGdm9sdW1lBWNsb2NrCWhvdXJnbGFzcwRsYW1wCmxpZ2h0LWRvd24IbGlnaHQtdXAGYWRqdXN0BWJsb2NrC3Jlc2l6ZS1mdWxsDHJlc2l6ZS1zbWFsbAVwb3B1cAdwdWJsaXNoBndpbmRvdwthcnJvdy1jb21ibwxkb3duLWNpcmNsZWQMbGVmdC1jaXJjbGVkDXJpZ2h0LWNpcmNsZWQKdXAtY2lyY2xlZAlkb3duLW9wZW4JbGVmdC1vcGVuCnJpZ2h0LW9wZW4HdXAtb3Blbg5kb3duLW9wZW4tbWluaQ5sZWZ0LW9wZW4tbWluaQ9yaWdodC1vcGVuLW1pbmkMdXAtb3Blbi1taW5pDWRvd24tb3Blbi1iaWcNbGVmdC1vcGVuLWJpZw5yaWdodC1vcGVuLWJpZwt1cC1vcGVuLWJpZwRkb3duBGxlZnQFcmlnaHQCdXAIZG93bi1kaXIIbGVmdC1kaXIJcmlnaHQtZGlyBnVwLWRpcglkb3duLWJvbGQJbGVmdC1ib2xkCnJpZ2h0LWJvbGQHdXAtYm9sZAlkb3duLXRoaW4JbGVmdC10aGluCnJpZ2h0LXRoaW4HdXAtdGhpbgNjY3cCY3cKYXJyb3dzLWNjdwpsZXZlbC1kb3duCGxldmVsLXVwB3NodWZmbGUEbG9vcAZzd2l0Y2gEcGxheQRzdG9wBXBhdXNlBnJlY29yZAZ0by1lbmQIdG8tc3RhcnQMZmFzdC1mb3J3YXJkDWZhc3QtYmFja3dhcmQKcHJvZ3Jlc3MtMApwcm9ncmVzcy0xCnByb2dyZXNzLTIKcHJvZ3Jlc3MtMwZ0YXJnZXQEbGlzdAhsaXN0LWFkZAdiYXR0ZXJ5DGJhY2staW4tdGltZQdtb25pdG9yBm1vYmlsZQJjZAVpbmJveAdpbnN0YWxsBWdsb2JlBWNsb3VkDWNsb3VkLXRodW5kZXIFZmxhc2gEbW9vbgZmbGlnaHQLcGFwZXItcGxhbmUEbGVhZghsaWZlYnVveQVtb3VzZQlicmllZmNhc2UIc3VpdGNhc2UDZG90BWRvdC0yBWRvdC0zBWJy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");\n src: url("data:application/vnd.ms-fontobject;base64,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6CMAAOgjAAAAIgAA6CQAAOgkAAAAIwAA6CUAAOglAAAAJAAA6CYAAOgmAAAAJQAA6CcAAOgnAAAAJgAA6CgAAOgoAAAAJwAA6CkAAOgpAAAAKAAA6CoAAOgqAAAAKQAA6CsAAOgrAAAAKgAA6CwAAOgsAAAAKwAA6C0AAOgtAAAALAAA6C4AAOguAAAALQAA6C8AAOgvAAAALgAA6DAAAOgwAAAALwAA6DEAAOgxAAAAMAAA6DIAAOgyAAAAMQAA6DMAAOgzAAAAMgAA6DQAAOg0AAAAMwAA6DUAAOg1AAAANAAA6DYAAOg2AAAANQAA6DcAAOg3AAAANgAA6DgAAOg4AAAANwAA6DkAAOg5AAAAOAAA6DoAAOg6AAAAOQAA6DsAAOg7AAAAOgAA6DwAAOg8AAAAOwAA6D0AAOg9AAAAPAAA6D4AAOg+AAAAPQAA6D8AAOg/AAAAPgAA6EAAAOhAAAAAPwAA6EEAAOhBAAAAQAAA6EIAAOhCAAAAQQAA6EMAAOhDAAAAQgAA6EQAAOhEAAAAQwAA6EUAAOhFAAAARAAA6EYAAOhGAAAARQAA6EcAAOhHAAAARgAA6EgAAOhIAAAARwAA6EkAAOhJAAAASAAA6EoAAOhKAAAASQAA6EsAAOhLAAAASgAA6EwAAOhMAAAASwAA6E0AAOhNAAAATAAA6E4AAOhOAAAATQAA6E8AAOhPAAAATgAA6FAAAOhQAAAATwAA6FEAAOhRAAAAUAAA6FIAAOhSAAAAUQAA6FMAAOhTAAAAUgAA6FQAAOhUAAAAUwAA6FUAAOhVAAAAVAAA6FYAAOhWAAAAVQAA6FcAAOhXAAAAVgAA6FgAAOhYAAAAVwAA6FkAAOhZAAAAWAAA6FoAAOhaAAAAWQAA6FsAAOhbAAAAWgAA6FwAAOhcAAAAWwAA6F0AAOhdAAAAXAAA6F4AAOheAAAAXQAA6F8AAOhfAAAAXgAA6GAAAOhgAAAAXwAA6GEAAOhhAAAAYAAA6GIAAOhiAAAAYQAA6GMAAOhjAAAAYgAA6GQAAOhkAAAAYwAA6GUAAOhlAAAAZAAA6GYAAOhmAAAAZQAA6GcAAOhnAAAAZgAA6GgAAOhoAAAAZwAA6GkAAOhpAAAAaAAA6GoAAOhqAAAAaQAA6GsAAOhrAAAAagAA6GwAAOhsAAAAawAA6G0AAOhtAAAAbAAA6G4AAOhuAAAAbQAA6G8AAOhvAAAAbgAA6HAAAOhwAAAAbwAA6HEAAOhxAAAAcAAA6HIAAOhyAAAAcQAA6HMAAOhzAAAAcgAA6HQAAOh0AAAAcwAA6HUAAOh1AAAAdAAA6HYAAOh2AAAAdQAA6HcAAOh3AAAAdgAA6HgAAOh4AAAAdwAA6HkAAOh5AAAAeAAA6HoAAOh6AAAAeQAA6HsAAOh7AAAAegAA6HwAAOh8AAAAewAA6H0AAOh9AAAAfAAA6H4AAOh+AAAAfQAA6H8AAOh/AAAAfgAA6IAAAOiAAAAAfwAA6IEAAOiBAAAAgAAA6IIAAOiCAAAAgQAA6IMAAOiDAAAAggAA6IQAAOiEAAAAgwAA6IUAAOiFAAAAhAAA6IYAAOiGAAAAhQAA6IcAAOiHAAAAhgAA6IgAAOiIAAAAhwAA6IkAAOiJAAAAiAAA6IoAAOiKAAAAiQAA6IsAAOiLAAAAigAA6IwAAOiMAAAAiwAA6I0AAOiNAAAAjAAA6I4AAOiOAAAAjQAA6I8AAOiPAAAAjgAA6JAAAOiQAAAAjwAA6JEAAOiRAAAAkAAA6JIAAOiSAAAAkQAA6JMAAOiTAAAAkgAA6JQAAOiUAAAAkwAA6JUAAOiVAAAAlAAA6JYAAOiWAAAAlQAA6JcAAOiXAAAAlgAA6JgAAOiYAAAAlwAA6JkAAOiZAAAAmAAA6JoAAOiaAAAAmQAA6JsAAOibAAAAmgAA6JwAAOicAAAAmwAA6J0AAOidAAAAnAAA6J4AAOieAAAAnQAA6J8AAOifAAAAngAA6KAAAOigAAAAnwAA6KEAAOihAAAAoAAA6KIAAOiiAAAAoQAA6KMAAOijAAAAogAA6KUAAOilAAAAowAA6KYAAOimAAAApAAA6KkAAOipAAAApQAA6KoAAOiqAAAApgAA6KsAAOirAAAApwAA6KwAAOisAAAAqAAA6K4AAOiuAAAAqQAA6K8AAOivAAAAqgAA6LAAAOiwAAAAqwAA6LEAAOixAAAArAAA6LIAAOiyAAAArQAA6LMAAOizAAAArgAA6LQAAOi0AAAArwAA6LUAAOi1AAAAsAAA6LYAAOi2AAAAsQAA6LcAAOi3AAAAsgAA6LgAAOi4AAAAswAA6LkAAOi5AAAAtAAA6LoAAOi6AAAAtQAA6LsAAOi7AAAAtgAA6LwAAOi8AAAAtwAA6L0AAOi9AAAAuAAA6L4AAOi+AAAAuQAA6L8AAOi/AAAAugAA6MAAAOjAAAAAuwAA6MIAAOjCAAAAvAAA6MMAAOjDAAAAvQAA6MQAAOjEAAAAvgAA6MUAAOjFAAAAvwAA6MYAAOjGAAAAwAAA6McAAOjHAAAAwQAA6MgAAOjIAAAAwgAA6MkAAOjJAAAAwwAA6MoAAOjKAAAAxAAA6MsAAOjLAAAAxQAA6MwAAOjMAAAAxgAA6M0AAOjNAAAAxwAA6M4AAOjOAAAAyAAA6M8AAOjPAAAAyQAA6NAAAOjQAAAAygAA6NEAAOjRAAAAywAA6NIAAOjSAAAAzAAA6NMAAOjTAAAAzQAA6NQAAOjUAAAAzgAA6NUAAOjVAAAAzwAA6NYAAOjWAAAA0AAA6NcAAOjXAAAA0QAA6NgAAOjYAAAA0gAA6NkAAOjZAAAA0wAA6NoAAOjaAAAA1AAA6NsAAOjbAAAA1QAA6NwAAOjcAAAA1gAA6N0AAOjdAAAA1wAA6N4AAOjeAAAA2AAAAAL/9//iA9sDEgAXACAAJkAjAAIBAm8DAQEAAAFUAwEBAQBYAAABAEwZGB0cGCAZIC8EBRUrAR4BBgcGJgYHBh4BBw4CIyImNz4BNyQDMjY0JiIGFBYDWUg6EhoQTFQmHhIyAgJEuHy60goIwHgBIkgeLCw+LCwCbjB8VAYEHAgqLjpIDhpKSsqQduoiVP2KLEAqKkAsAAAAAgAA/8IDIgLqABEAGgAsQCkRAQIDBgEAAgJHAAEAAwIBA2AAAgAAAlQAAgIAWAAAAgBMExcTJwQFGCslFg8BBi8BBiMiJhA2IBYVFAclFBYyNjQmIgYDBB4YLiQgvkpSgL60AQDALv4YiLB+iLB+TiIcLiAgviq+AQC2voBYSqpYiH6yhn4AAAP/+f+WA5MDMAAUABwAKQAKtyYgGRYTCQMtKwEeAQ8BDgEnAQYuAjcBJjY/ATYWARY2JyYOAgEeAjYuBAYeAQMnPi4chhBcMv5oEk5IGhIBmAYUEIgYiP5+IF4gDjAoBgFeHkwwBgwoPEguCAooAsI+iBiGEBQG/mgSGEpMEgGYMlwQiBww/iogXCQOCCguARoeKAoILko8KAwIMEwAAAAC//4AAAOQAoAAEQAjACRAIQAAAQBvAAEDAW8AAwICA1QAAwMCWAACAwJMFzkXMwQFGCsTJjc2MyEyBwYHBg8BBiIvASYFNhURFAYjISImNRE0FwUWMjceIAQCGANOJhIIEA6ythA6ErayA0QUIhD84BAiFAGAEjgSAkoSFg4gDggGYGIKCmJgXgoU/pAQICAQAXAUCsgKCgAAAAABAAAAAANcAr4ADwASQA8MBAIARAEBAABmFBkCBRYrARYUBwkBJjQ3NjIfATc2MgMWRkb+mP6YRkY+skA4Oj6wAoRAuEL+tgFKQrhAOjo0NDoAAAACAAAAAANcArwADwAhACRAISEYDAQEAkQBAQACAgBUAQEAAAJYAwECAAJMJCUUGQQFGCsBFhQHCQEmNDc2Mh8BNzYyEzY0JyYjIg8BJyYjIgcGFBcBAxZGRv6Y/phGRkCwPjo4QLAKKiYmQDQ0aGowNkAoJiwBMgKCQLhA/rYBSkC4QDo6NDQ6/sIogiImMFxcMCYkgib+4gAAAAABAAD/pgNwAxYACQAVQBIHBgUEAwUARAEBAABmFhECBRYrARMhBRMlBRMlIQG4eAFA/vpe/vD+8F7++gFAAxb+sMT+pNDQAVzEAAAAAgAA/6YDcAMWAAkAEwA3QDQPCAIARRMSDAsFBAMCAQkCRAQBAgACAgBSBAECAAACVgMBAgACSgAAERAODQAJAAkWBQUVKwEFEyUFEyUhGwEHFyc3BycHJxcHA3D++l7+8P7wXv76AUB4eHiWPpCwODawjj4BxsT+pNDQAVzEAVD+sO58snIEysoEcrIAAAAAAQAA/5wDrAMgACoAG0AYIB4WEgQAAQFHAAEAAW8AAABmGxoTAgUVKyUWHQEhNTQ3PgE1NCYnLgMnNDY/ASYnJjYyFg8BFhUOAwcOARUUFgLgzPxUzF5ELAoCDg4OAgoEBAgEBFrgXAYMEgIODg4CCC5GgEgyamoySCJGPBY2LgwMBB4cEBQCBDImNnR0NlgIIhweBAwMMDQWPEYAAgAA/6YD6AMWACcATgAoQCVGRDw4Fw8FBwABAUcAAwEDbwABAAFvAgEAAGZBQCwrFBMQBAUVKwUjNTQmJzY1NCYnLgEnNDcmJyY2MhYPARYVDgEHDgEVFBYXFhceARclFh0BITU0Nz4BNTQmJy4BJzQ2PwEmJyY2MhYPARYVDgEHDgEVFBYD6OA8fCgaBgIYAgwGAgQ2iDgECAwCGAIGGio4cBIGBgL+GLb9SlRMOCYGAiAEBgQEBgQESrRKBAoOBCACBiY4WpY2Nj4eNhAiIggQIhgGIhomUFAmPAYYIhAIIiIQKjAYLiIIajDWTi6KuCwiIEA4FDAsChgsDhIEAi4kMmpqMlIIHiwYCiwwFDhAAAAAAgAA/5wD6AMgACgANABLQEgeHBQQBAIHBQEABAJHAAEHAW8ABwIHbwAEAwADBABtAAAAbgYBAgMDAlIGAQICA1YFAQMCA0o0MzIxMC8uLSwrKikZGBMIBRUrJRYdASE1Njc+ATU0JicuASc0Nj8BJicmNjIWDwEWFQ4DBw4BFRQWJTMVIxUjNSM1MzUzAmy0/OAkLl5GLggCKgQKBAQIBAZc5FwEDhICDg4OAgouSAFElpZklpZkgEA6asoODCJGPBY0MAwaMBAUAgQyJjZ0dDZYCCIcHgQMDC42FjxG7mSWlmSWAAAAAAIAAAAAA9QCvAAnACoAVkBTKQEDAgFHKgEBKAEEAkYADQwBAAENAF4LAQEKAQIDAQJeCQEDCAEEBQMEXgcBBQYGBVIHAQUFBlgABgUGTCUiHx4dHBsaGRgREzMRERERERAOBR0rASMVMxUjFTMVIxUzFRQGIyEiJj0BMzUjNTM1IzUzNSM1NDYzITIWFQE3JwPUZGRkZGRkGBD8fBAYZGRkZGRkGBADhBAY/aj6+gJYZGRkZGQ8EBgYEDxkZGRkZDwSFhYS/jSWlgAAAAP/+P+EA+gDQgAOAB4AJgBDQEAlJCMhIAgGBAIBRwIBAEUBAQACAG8FAQIEAm8GAQQDAwRSBgEEBANYAAMEA0wfHxAPHyYfJhgVDx4QHSIQBwUWKwEjJwcjIgYdAQMmNyU2FxMyFhURFAYjISImNRE0NjMBNScPAScHFQNYZHzWtDRMbAogAqgkDtAQFhYQ/SwQFhYQApxIpoKKXAIGlpZONKABKCYO+Aoi/owYEP4oEBgYEAHYEBj+PKKgPISq1lYAAAAEAAD/zgPoAu4ACAAkAC0ANwBmQGMKAQAJCAkACG0NAQgBCQgBawABBgkBBmsABQAHCQUHYAQLAgIACQACCWAMAQYDAwZUDAEGBgNYAAMGA0wvLiYlCgkBADQyLjcvNyopJS0mLSAdGhcSDwkkCiMFBAAIAQgOBRQrATIWFAYiJjQ2JTIWFREUBiMhIiY1ETQ2OwEyPwE2MyEyHwEWMwEyNjQmIgYUFgEyNjQmIyIVFBYB9EBWWHxYWAHOKjo6KvzgKDw8KHgcDB4KHgFUHgoeDBz+6GiSktCSkgHWDhQUDiQWAcJYfFhYfFiWOir+Pig8PCgBwio6HlwcHFwe/dqS0JKS0JIBfBYcFCIQFAAAAAQAAAAAAlgCigALABcAIwAvAElARgkCCAMAAwEBBAABYAsGCgMEBQUEVAsGCgMEBAVYBwEFBAVMJSQZGA0MAQArKCQvJS4fHBgjGSITEAwXDRYHBAALAQoMBRQrEzIdARQrASI9ATQzITIdARQrASI9ATQzATIdARQrASI9ATQzITIdARQrASI9ATQzqlBQWlBQAbhQUFpQUP78UFBaUFABuFBQWlBQAopQWlBQWlBQWlBQWlD+olBaUFBaUFBaUFBaUAADAAAAAAK8AlgACwAXACMAQkA/AAMHAQIAAwJgBgEAAAEEAAFgCAEEBQUEVAgBBAQFWAAFBAVMGRgNDAEAHxwYIxkiExAMFw0WBwQACwEKCQUUKwEyFhQGIyEiJjQ2MzUiJjQ2MyEyFhQGIxEyFhQGIyEiJjQ2MwKKFhweFP2oFB4cFhQeHBYCWBYcHhQWHB4U/agUHhwWAZAeKB4eKB5kHigeHige/tQeKB4eKB4AAAH//QAAAp8CwAATABVAEgkBAEUBAQAAZgEAABMBEgIFFCszIi8BJj4BFh8BAT4BFx4BBwEGI/kiFrQQCCw6EnYBKBA2GhgMDv6iFCQc7Bg4JAgYmgHaGAwOEDYa/dAgAAEAAAAAAdYCYgAdAB5AGx0WDgYEAAIBRwMBAgACbwEBAABmFBoUEwQFGCslFhQGIi8BBwYiJyY0PwEnJjQ3NjIfATc2MhYUDwEBxBIkMhKEhBIyEhAQiooQEBIyEoSEEjIkEorCEjIiEJiYEBASMhKcnhIyEhAQmJgQIjISngAAAgAA/7oDSAMCAAgAFAAoQCUUExIREA8ODQwLCgsBAAFHAgEAAQBvAAEBZgEABQQACAEIAwUUKwEyFhAGICYQNgE3JwcnBxcHFzcXNwGkrvb2/qT29gEEmlaamFiamliYmlYDAvb+pPb2AVz2/lyaVpiYVpqYVpiYVgAAAAIAAP/OAyAC7gAPABsAKEAlGxoZGBcWFRQTEhELAQABRwIBAAEAbwABAWYBAAkGAA8BDgMFFCsBMhYVERQGIyEiJjURNDYzATcnNycHJwcXBxc3ArwqOjoq/agoPDwoAcZWmppWmphYmppYmALuOir9qCg8PCgCWCo6/YJWmJpWmJhWmphWmAABAAAAAAJEAoAAEwA1QDIABQAFbwACAQJwBAYCAAEBAFQEBgIAAAFYAwEBAAFMAQAREA4MCwkHBgQCABMBEwcFFCsBMhQrARUUIj0BIyI0OwE1NDIdAQImHh7SZNIeHtJkAZBk0h4e0mTSHh7SAAAAAgAA/7oDSAMCAAgAFABEQEEFAQMEAgQDAm0GAQIHBAIHawgBAAAEAwAEXgAHAQEHUgAHBwFYAAEHAUwBABQTEhEQDw4NDAsKCQUEAAgBCAkFFCsBMhYQBiAmEDYTMzUjNSMVIxUzFTMBpK729v6k9vbiyMhmyspmAwL2/qT29gFc9v4qZsrKZsoAAAACAAD/zgMgAu4ADwAbAElARgQBAgMFAwIFbQkHAgUGAwUGawgBAAADAgADXgAGAQEGUgAGBgFYAAEGAUwQEAEAEBsQGxoZGBcWFRQTEhEJBgAPAQ4KBRQrATIWFREUBiMhIiY1ETQ2MwE1IzUjFSMVMxUzNQK8Kjo6Kv2oKDw8KAImyGTIyGQC7joq/agoPDwoAlgqOv4+ZMjIZMjIAAAAAQAAAAACRAGQAAcAIEAdAgEAAQEAVAIBAAABWAABAAFMAQAFAgAHAQYDBRQrATIUIyEiNDMCJh4e/fgeHgGQZGQAAAACAAD/ugNIAwIACAAMACZAIwQBAAIAbwACAwJvAAMBA28AAQFmAQAMCwoJBQQACAEIBQUUKwEyFhAGICYQNgEhFSEBpK729v6k9vYBqv4IAfgDAvb+pPb2AVz2/pBmAAACAAD/zgMgAu4ADwATACtAKAQBAAIAbwACAwJvBQEDAQNvAAEBZhAQAQAQExATEhEJBgAPAQ4GBRQrATIWFREUBiMhIiY1ETQ2MwE1IRUCvCo6Oir9qCg8PCgCJv4MAu46Kv2oKDw8KAJYKjr+PmRkAAAAAAIAAP+cAkQDIAAoADEAQUA+CwEAAgFHAAIBAAECAG0AAAQBAARrAAMAAQIDAWAGAQQFBQRUBgEEBAVYAAUEBUwqKS4tKTEqMSMTLjwHBRgrARYVFAcGDwEGBwYHFCsBIjU2Nz4BPwE2NzY1NCcmIyIHBhUjNjc2MzIDMhYOAS4BPgEB7lYqDEwuKAgGAhCAEAQYEEAYGBYMHBocQEQaHKYGbEZggoQsOgQ8WDoEPALkPnpAPBQ8HiIaEBwODGIaFjQQDhASLBooJiQsKjKiRir9SDxaNgI6XDYAAAAD//z/kAOaAywACAAWAD8AWEBVODYCAwUTAQIDAkcABgQFBAYFbQAFAwQFA2sAAwIEAwJrBwEAAAQGAARgCAECAQECVAgBAgIBWAABAgFMCgkBACcmIiAdGxEOCRYKFgUEAAgBCAkFFCsBNgASAAQAAgATMjY1NiYrASIGBxQWFxM2NTQmIyIHBgcVMzU0NzYyFxYVFAcGDwEGDwEGBwYHFTM1NDc2PwE2Aca+ARAG/vb+hP7uBgEMvB4mAiYeAhwmAiYcqBpqUkAoRARuEBBODBAQCAwWCgoVCwYOBGwEBhYcLgMqAv74/oT+7gYBCgF8ARL9HiYcHiYkHB4mAgFIIixOTBoqaAQEGhwYFBQYEhYMCA8HCBEJCBQ6CAQMEBQQEiIAAgAA/2oBzANSAAoAIAC1QAkeHRMSBAUDAUdLsB9QWEAoAAQBAwEEA20AAwUBAwVrAAUCAQUCawABAQBYBgEAAAxIBwECAg0CSRtLsCRQWEAnAAQBAwEEA20AAwUBAwVrAAUCAQUCawcBAgJuAAEBAFgGAQAADAFJG0AtAAQBAwEEA20AAwUBAwVrAAUCAQUCawcBAgJuBgEAAQEAVAYBAAABWAABAAFMWVlAFwwLAQAcGhcVEA8LIAwgBwUACgEKCAUUKwEyFhUUBiMiJj4BAyI/ATYiBgcnPgEzMgcDBjMyNxcOAQFgMDROODA0AkaQZC48DhpUHhpaxjROKkYQFixKHlS2A1I2KjJMNFxO/Biy/jgkFCxOYKL+9kA8KFZcAAAAAAP//P+QA5oDLAAIABMAKQBiQF8MAQMCIyIYFwQFBwJHAAcGBQYHBW0ABQQGBQRrCAEACQECAwACYAADAAYHAwZgCgEEAQEEVAoBBAQBWAABBAFMFRQKCQEAJiQgHhsZFCkVKRAOCRMKEwUEAAgBCAsFFCsBNgASAAQAAgAXIgYVBhYzMjY1NAMyNjcnBiMiPwE2IyIGBxc2MzIPAQYBxr4BEAb+9v6E/u4GAQzyKi4CIiAmLrQebDQSMBgOCioaMB52OBA0FgwMJBoDKgL++P6E/u4GAQoBfAESljAaHCAsIDr9rjQ0GCQmoGA6LhoiIphoAAABAAAAAANSAooAEAA5QDYOAQMADQECAwJHDwEARQQBAAADAgADXgACAQECUgACAgFYAAECAUwBAAwLCgkIBgAQARAFBRQrATIWFREUBiMhNSE1IRUnNxUC7ig8PCj9TgKK/gzS0gIcOir+3ig8jNJutLRuAAH//P/MA4gC8gAaACFAHgAFAAVvBAEAAgBvAAIBAm8DAQEBZhQjIREkIgYFGisBFgYrAREUDgErAREjESMiJjURIyImNwE2MhcDeBAKFlQCDhDMzMIcDlQWChABkBAsEAFQEBb+yg4ODAE2/soUFAE2FhABkhAQAAIAAP/OAyAC8gAcADwAPEA5AAYFBm8ABQQFbwAAAwIDAAJtAAQAAwAEA2AAAgEBAlQAAgIBWAABAgFMPDs2NSkoJCIbGhURBwUWKyU2MhcWDwEGIiY0PwE+ARcWFAcGJyYPAQYUFjI3ARYUDwEGIyInJjQ2MhcWPwE2NCcuAQ8BBiInJj8BNhYBJg4oECAgKjiacDiURpQ2EBAkIjJSlBo0ShoB7Dg4nkpMPjIOHCoOMkieHBwYQBwyECgOIiIyNpJ0Dg4iJCg4cJo4lEQSNBAoECAgMFKSGkwyGgJmOJo4nkgyDigeDjBInBxKGBoKGjIODiIkMjYGAAAAAAH//v90A7gDYAAxAB9AHAABAAABVAABAQBYAgEAAQBMAQAqKQAxATEDBRQrFyInLgE3ATYXHgEXFgcBDgEnJjY3ATYWBwEGFxY3NjcBNiYnJgcBBh4CNwE2FgcBBvRmREgEVgHwUF4sRgwaUP4mKGAgHgYsAUwYNBr+tCwYDAwYFgHaMiA8Njb+EkIEZIZKAfAYNBr+EFKMSEbAXgHwUBoMRixgUP4mKAogGGQqAU4aNBj+tCwaCAIEFgHaMnYQDjL+EkyGYgRAAe4YLhr+EFIAAAAAAgAA/7YCvAMIABsAIwA1QDIEAgYDAAUBBQABbQABAW4AAwUFA1QAAwMFWAAFAwVMAQAiIR4dGBcUEgsIABsBGwcFFCsBMhYVERQPAQYjISIvASY1ETQ2OwE1NDYyFh0BJRUzNTQmIgYCgBQoMDwqNv7eOCo8MB4UZGbEZv7UyDZcNgHcJhb+ejASEhAQEhIwAYYWJkZueHhuRlpaWjQ6OgAAAAABAAD/nAK8AyAAIwA7QDgABAMAAwQAbQIGAgABAwABawABAW4ABQMDBVQABQUDWAADBQNMAQAhHxwbGRgWFAwJACMBIwcFFCsBMhYVERQGDwEGIyEiLwEuATURNDYzITU0Ih0BIzU0NjMyHQECgBQoHBQ8NCz+3i40PBQcHhQBkMhkZmLIAcIoFP56FCYGFBAQFAYmFAGGFiaMbm4oFG545ngAAAMAAAAAA+gCdgAUAB0ALABDQEAiAQQFAUcGAQAAAwUAA2AABQAEAgUEYAcBAgEBAlQHAQICAVgAAQIBTBYVAQAqKCUkGhkVHRYdCwoAFAEUCAUUKwEyHgMUDgMiLgM0PgMTMjY0JiIGFBY3Fj4BFxQGIiY0NjMyDgEB9FyqcFYoKFZwqriqcFYoKFZwqlxcgoK4goJcCDoqBEJcQEAuDggQAnYySlA+HDxSSjIySlI8HD5QSjL+En6yfn6yftYIDAoOLD4+Wj4uMAAAAAL//v9aA9QDWgAcAC4AI0AgJx8XAwQBAAFHAAABAQBUAAAAAVgAAQABTCMhFRICBRQrARYGBxcWDwEGBwEGJwMmNjcBNjsBMh8BNicmNzYDNicHBiMiJyY/ASYHDgEXHgEDsCRYVBIQCjAMGP4wKhbSDAYSAdAaHJ4eEhyoNgocINIoBiAIBBIKDBwYMCwcDBQSQgM+arpAGBwanh4Q/rgeIgEwEioMAUgSGiiCnBwMCP4QIDAQBBIeCg4iIhJCHBoMAAABAAD/nAFoAyAACQAXQBQGBQQDAEQBAQAAZgEAAAkBCAIFFCsBMhYVEScHETQzATYWHLS0KAMgHhT8rrS0A1IyAAAAAAIAAP9qAiYDUgAMABYAUrcTEhEFBAUCREuwJFBYQBIEAQIBAnAAAQEAWAMBAAAMAUkbQBgEAQIBAnADAQABAQBUAwEAAAFYAAEAAUxZQBEODQEADRYOFQoIAAwBCwUFFCsBMhYVEScRNCYrATQzBzIWFREnBxE0MwH0FB6WHhRkKCgUHpaWKANSHhT8rrQCbBQeMpYeFPzgtLQDIDIAAAABAAD/tgOIAxIAFgAbQBgLAQABAUcOAQFFAAEAAW8AAABmGBwCBRYrATYWBw4CLgIGBxMjAzc+AR4DNgNqDhAIYIhUPjpEdlBaZLhcWnxIOERaqAJoBg4MipYeGjAgKEL+oALQIkIoIkRKMgoAAAAAAgAA/5wDIAMoABkAKwAeQBsDAQECAW8AAgACbwAAAGYbGiQiGisbKyYEBRUrAR4CFRQCIyIkNRE0PgI/ATY/ATYXFg4BBTIHBhURFBcWIyIuAT0BND4BAkYCcGh6LpD+4B4+LCguMjZVHwowJlD+UA4OMjQKDBo6QkI8AeAGDiIeSP5YVC4BVg4oMiAbHyJCaCYMTHp0Bg4yNv7CMjYKEEo+8j5MEgAAAgAA/5IDIAMgABwALwAeQBsAAAIAbwACAQJvAwEBAWYeHSclHS8eLyYEBRUrNy4CNTQSMzIEFREUDgIPAQYPAQYPAQYnJj4BJSI3NjURNCcmMzIeAR0BFA4C2gJuanwskAEgECIeGykOGyEyNlUfCjAmUAGwDA4wNAoMGjpCJDYq2gYOIh5IAapWLv6qChwgGhMdChIWIkJoJgxMenQGDjI2AT4yNgoQSj7yMEIeDAAC//j/tgPsAwgAHAAjAHe1HgECAQFHS7ALUFhAKQAHBgdvCQgCBgEGbwUBAQIBbwQBAgMDAmMAAwAAA1IAAwMAWQAAAwBNG0AoAAcGB28JCAIGAQZvBQEBAgFvBAECAwJvAAMAAANSAAMDAFkAAAMATVlAER0dHSMdIxETESITERY2CgUcKyUeAQ8BDgEjISImLwEmPwEzBzMyHwEhNzY7ASczJwUlMxEzEQPIEhIGHAQkFvzQFiQEHAoqnmKqsggEKAEsKAgEsqpiMP78/vymvsYKLBKaFBoaFJowGGyCCG5uCILW9PQBAP8AAAL/+P+2A+wDCAAGACMAaUuwC1BYQCgCAQAEAG8IAQQBBG8AAQUBbwcBBQYGBWMABgMDBlIABgYDWQADBgNNG0AnAgEABABvCAEEAQRvAAEFAW8HAQUGBW8ABgMDBlIABgYDWQADBgNNWUAMESITERY3ERERCQUdKwEFIxEjESMBHgEPAQ4BIyEiJi8BJj8BMwczMh8BITc2OwEnMwH0AQSkvqYC2BISBhwEJBb80BYkBBwKKp5iqrIIBCgBLCgIBLKqYgMI9P8AAQD+sgosEpoUGhoUmjAYbIIIbm4IggAAAQAAAAAD6AKkAB0AQUA+CQEFAAFHAAYABm8HAQAFAG8ABQIFbwMBAgEBAlIDAQICAVgEAQECAUwBABoYExEODAsKCAcGBAAdAR0IBRQrATIWFAYrATUzJwczFSMiJjQ2MzIXJjU0NjMyFhc2AvhkjIxkvmqwrmj4SmxqTA4GApxuWowYHAHuiMSIvubmvmiSaAIMGmyYaFIEAAAAAQAAAAADhAKyAA4AJkAjBQEAAQFHBgEBRQQBAEQAAQAAAVQAAQEAWAAAAQBMFBICBRYrJS4BIxUJARUyHgQXA4RW9ND+lgFqWpxqVjQkBgqYWtoBTgFCwDZWaGhWGgAAAgAAAAAD6AKyAAUAEgAtQCoRBAEDAQABRxIFAAMARRAMAwIEAUQAAAEBAFQAAAABWAABAAFMFxYCBRYrAQcXFQkBFzIeAh8BLgEjFQkBAWrU1P6WAWr6aJxKLgQEVqSK/pYBagIsvMSKAU4BQsBkkJAyMppY2gFOAUIAAAEAAAAAA4QCsgAMACdAJAsBAAEBRwoBAUUMAwIARAABAAABVAABAQBYAAABAEwXEAIFFislIgYHPgQzNQkBAhzS9FYEElJuynwBaP6Y/FqYFEKogGrA/r7+sgAAAgAAAAADFAKoABMAJwA/QDwJBAgDAAMAbwcBAwIDbwYBAgEBAlQGAQICAVgFAQECAUwVFAEAJCIeHRwbFCcVJxAOCgkIBwATARMKBRQrEzIXFgcGBwYjNTI3NicmIyImNDYhMhcWBwYHBiM1Mjc2JyYjIiY0NpKSJiZOUJAgInBGNhwQLjxWVgHgkiYmTlCQICJwRjYcEC48VlYCqJKMoqgkCEZsVjwkWHxYkoyiqCQIRmxWPCRYfFgAAAACAAAAAAPoApoADQAZAAi1GRENCQItKwEWFA8BFxYUBwYnCQE2BQkBBicmPwEnJjc2AXwQEPb2EBAeHv7AAUAeAUwBPv7CIB4gIPj4ICAeAnwOJAzg4gwkDh4eASABHh4e/uL+4B4eIB7i4B4gHgAAAgAA/9gD6ALkABUAJABGQEMjAQQCJBkCAQQDBAJHIgEBRQABAAIEAQJeAAUABAMFBGAGAQMAAANSBgEDAwBYAAADAEwAACEgFxYAFQAVFCU1BwUXKyU1NxUUBiMhIiY1ETQ2MyEOAQ8BIxEBIgYHND4FMzUFAQLuZB4U/RIUHhwWASAgNgwKggI4pphUAhAcPFCGUgFM/rQ8OFK8FB4eFAImFhwYMg4M/j4BXFKMCBxUSlxCLpz6/vwAAAACAAD/2AMMAvAACwAZABdAFAQBAEUZFQ0HBABEAAAAZhIRAQUUKwEeAR0BBwEHNwE3NgE3JicuASMnDwEWFxYXAs4gHvz+3u4yASL8Nv5aGAIyFi4MDhYSHBIYDAKoIEAQEPz+4DTwASD8DP04GCwyFhoCGFAQEhgYAAAAAf/g/2ICwANWADIAOEAOEgEAAQFHLSYIBgQFAERLsCFQWEALAAABAHAAAQEMAUkbQAkAAQABbwAAAGZZthkYFxYCBRQrFwYnJjc2NyY3HgI2LgE3PgE3DgEWFzI2NzYWFxYGBw4BBwYXFjcOAgcGFjcOAwc8BhQSAgQuZDAKLCwSEAYcFnQuGBIKEAyQIi6IDgwYHCzMDBAcNno4oGgCBGowHkIqbh6KFAwIGmR+mqIgXEQInq5GLGQULmA8AvACBEIgGG4cLCQGChgwHFBECAYYPBA4OA4IBAAAAAMAAP+2A9QDCAAVACkALQCQS7AJUFhAMgACAQECYwcBBQkICQUIbQMBAQoBAAQBAGELAQQACQUECV4ACAYGCFIACAgGVgAGCAZKG0AxAAIBAm8HAQUJCAkFCG0DAQEKAQAEAQBhCwEEAAkFBAleAAgGBghSAAgIBlYABggGSllAHxcWAQAtLCsqIyEgHx4cFikXKA4MCwoJBwAVARQMBRQrEyI3NjcyPgE7ATUhFTMyHgEzFgcGIxcyFh0BFAYrARchNyMiJj0BNDYzEyEDIUIaBAQIAl5cDCwBfC4MWl4CEgYEEAoUIiIUZCz9CCxiFCQkFJoCMEb+XAIOFgoEIh6Wlh4iCBIKOCYWrhYm+vomFq4WJv5EAUQAAAAAAgAAAAAD6AKKAAsAFwA/QDwJAQdFDgEBRAMBAgYEBgIEbQUBBAAGBABrAAcABgIHBl4AAAEBAFIAAAABWAABAAFMIRESERITIRAIBRwrNyEXISImNREjNxcjBTMHJzMRISchMhYV+gEQgP5AKjpmsK5kAopkrrBm/u6AAcIoPL6MPCgBLsbGysjIAQSMOioADgAAAAAD6AKKAA8AEwAXABsAHwAjACcAKwAvADMANwA7AD8AQwCsQKkcAQAaIA8fCx4HHQgDAgADXiQbDgoGBQIZEAwIBAQFAgReGBENCQQFFhQCEhMFEl4jFyIVIQUTAQETUiMXIhUhBRMTAVgAARMBTEBAODg0NDAwKCggIBgYEBABAEBDQENCQT8+PTw4Ozg7Ojk0NzQ3NjUwMzAzMjEvLi0sKCsoKyopJyYlJCAjICMiIR8eHRwYGxgbGhkXFhUUEBMQExIRCQYADwEOJQUUKwEyFhURFAYjISImNRE0NjMFFTM1FyMVMyUVMzUXIxUzJRUzNRcjFTMlFTM1FyMVMwc1IxUhNSEVITUjFSczNSM3NSMVA6IcKioc/KQcKiocAeBkMmRk/tRkMmRk/tRkMmRk/tRkMmRkMmQCiv4MAopkMmRklsgCiioc/jQeKCgeAcwcKmRkZJZk+mRklmT6ZGSWZPpkZJZklmRkZGRkZJZkMmRkAAEAAAAAAyACvAASAB9AHAkBAUQDAQABAG8CAQEBZgEADAoIBgASAREEBRQrATIWFREUBisBFScjIiY1ETQ2MwK8Kjo6KsjIyCg8PCgCvDoq/qIoPJaWPCgBXio6AAAAAAIAAP+cA+gDIAAUACQAREBBBAEABR4BAQACRwoBAUQHAQQDBG8AAwUDbwYBBQAFbwAAAQEAUgAAAAFYAgEBAAFMFhUgHx0bFSQWIyUiJhAIBRgrJSEyNzMVFAYrAQc1IyImNRE0NjsBJTIWFREUBisBFSchETQ2MwEiAV4CBAQ6KvqWMig8PCi+AmIqOjoqMpb+ojwo8AJcKDyWljwoASwqOvo6Kv7UKDyWlgGQKjoAA//4/5oDMgMeABkAKAAzABlAFjIBAQABRwAAAQBvAAEBZignGBYCBRQrAR4DFxYGBwYkJyY2JyY2Nz4BNzYWNzYWAz4CJy4BDgMXHgE2Nz4BNxcWBgcGJzYCeBAwKi4MFsCcpP72FhRADjgSaBoGGhgsIoSEXFiOOgQIUqbOji4GBFywGggaBAIOPjpgOE4BqiIkCCYkPsY6Oho+NnI2wNhUFjoKCCgCAoj9pCBqTAwWFhRMYkYSDBQMzgIKAgIoVhQkMkQAAAAD//r/tgPHAwgADAAQABQAPEA5AAEEAW8ABAUEbwcBBQACAwUCXgYBAwAAA1IGAQMDAFgAAAMATBERDQ0RFBEUExINEA0QExUyCAUXKwUWBiMhIicmNwE2MhcTNSMVNxEjEQO9ChQU/IQSCg0LAb4ILAgabm5uGBAiEBIQAw4SEv0kZGSuASz+1AAAAAP//f9+A4kDQABOAFIAVgBOQEsvAQQBCAcCAAMCRwABBAFvAAQFBG8GAQMCAAIDAG0AAABuBwEFAgIFUgcBBQUCVgACBQJKU1NPT1NWU1ZVVE9ST1JRUDk4EhEIBRQrJRYGDwEOAR8BFgYvASYGDwEOAS8BJg8BBiY/ATYmLwEuAT8BNjQvASY2PwE+AS8BNDYfARY2PwE2Fh8BHgE/ATYWDwEGFh8BHgEPAQYUFwU1IxU3ESMRA3UUCBhOGCACBAIgFlYWMgouDCIQMiI2ehYUCDYIGBhqGAoUVhQUVhQIGE4YIgIGHhZQGDIMLgwkDDIMLhaIFhAIPAoYGnIaCBRWEhL+1mRkZOoQIgYWBiwaUhgUCiwMEBZYFgIUTjAcRg4QGKQYKAIMBBwQTBAyEEwQIgYWBiwaUhoUCiYKEBZQFgIWVhYODlQOEBiqFiYCDAIcEEwQMhCoaGigAQT+/AAGAAD/zgPoAu4ADwATABcAGwAfADIAcEBtIAEEBQFHDAEAAAIJAAJeCxACCQAIBwkIXg8BBwAGBQcGXg4BBQoBBAMFBF4NAQMBAQNSDQEDAwFYAAEDAUwcHBgYFBQQEAEAKyoiIRwfHB8eHRgbGBsaGRQXFBcWFRATEBMSEQkGAA8BDhEFFCsBMhYVERQGIyEiJjURNDYzAREhESUVIzU3FSM1NxUjNQEXIzQzNjU0JjU0MhUUBhUUFhcDhCo6Oir84Cg8PCgDIPzgAV76+vr6+gJUBPoGVDa0OCoWAu46Kv2oKDw8KAJYKjr9RAJY/ajEWlqWWlqWWlr+wEZGFiwQUDBubjBQEBQgBgAAAgAA/5wD6AMgABsAKgA5QDYGAQAFAG8AAQIBcAADBAIDVAAFAAQCBQRgAAMDAlgAAgMCTAEAKCYlIxgWCwkHBAAbARoHBRQrATIVERQrASI1ESMiJyYvASY0PwE2NzY7ATU0MwUWFA8BBiMGIyEnITIWFwGqFBQuFLAQDAwOeAoKeA4MCBSwFAJiCgp2FgQODv7SKAFWEhQQAyAU/KQUFAG4BgIKUgYUBlIKAgS+FNAGFAZSDAbmCAgAAAACAAD/zgH0Au4ADgAXADBALQYBAUQEAQECAXADAQACAgBUAwEAAAJYAAIAAkwQDwEAFBMPFxAXAA4BDgUFFCsTMhYUAg8BLgQ1NDYTMjY0JiIGFBb6aJJ8QD4KIlZCNpJoOFBQcE5OAu6S0v7uVlQMLoSApkJokv58UHBOTnBQAAUAAP/KA+gC9AAbAB8AIwAnACsAIUAeKyopKCcmJSQjIiEgHx4dHBgNCRMARQAAAGYWAQUVKwEWFREUBwYiLwEHBi8BBwYmNRE0PwE2HwE3NhcBEQcRIREnESERBxEhEScRA9gQEAgQCtjYEhDa2BAiEOoSENjaEBD9/KgBkqgBkqoBkqgCWAoU/bgUCgYGiIgKCoiIChQUAkgUCpIKCoiICgr9rAH6aP4GAfpo/gYB+mj+BgH6aP4GAAAAAgAA/7ADXgMOABMAFgAItRYUEgoCLSsBHgEOAgcGAg8BAyUkNz4DFgcBFwNQCAYKChwKNrpAQjb+hAG6/hQ4FhwSVP7QHAMACBAcGDYWcP6kdnYBfDj2egoeCggGaP7o6gAAAAT//P98A8IDQAALABQAIwAsAEJAPyscAgQDAUcABAMCAwQCbQUBAAADBAADYAYBAgEBAlQGAQICAVgAAQIBTA0MAQAoJxEQDBQNFAcFAAsBCwcFFCsBNgAXFgAHBgAnJgATPgECJgQGEhYnPgQ/AQ4CBw4BBxMGFBYyNzY3BgHaxgEcBAL+7MjG/uICBAEW1JzcBOL+xtoE4EwEEEJYojw8BBBCLCqkPHgWKjoUNCSIAz4C/uzGyP7kBAIBFsbIARz8qALgATzaBOD+xNqcGlCwWEAKChpQsCwqQAoBCBQ4LBY0hiQAAAAC//z/xAKuAvgADwAcADVAMgUBAgMBAwIBbQABAW4EAQADAwBUBAEAAANYAAMAA0wREAEAFxYQHBEcCAcADwEPBgUUKwEyFgcDDgIiLgEnAyY+ARcyPgE0LgEiDgEUHgEBVJjCBkgCQIKQgEICSARQomZIgkJCgpCCQkKCAvhSLv2uDiwoKCwOAlIcOirYHiQYIh4eIhgkHgAAAAADAAD/gAL4A0AACwAfACsAe7UDAQACAUdLsBNQWEAtAAcFBAQHZQAAAgECAAFtAAEBbgADAAUHAwVgBgEEAgIEUgYBBAQCWQACBAJNG0AuAAcFBAUHBG0AAAIBAgABbQABAW4AAwAFBwMFYAYBBAICBFIGAQQEAlkAAgQCTVlACxESMhI4GhURCAUcKxMWIDcDDgIiLgEnAR4BHQEUBiAmPQE0Nj8BNjsBMhcHMy4BKwEiDwEzNzMyegGgejYCQoaUhEQCAbJegOD+yOCAXioWMFw0EgxUXBoSZhYKalRAUgHKRkb+Gg4sKiosDgMSEkoiCjpSUjoKIkoSMBoaoG4gEH5CAAIAAP+cArwDIAAPABMAMUAuBAEAAAIDAAJeBQEDAQEDUgUBAwMBWAABAwFMEBABABATEBMSEQkGAA8BDgYFFCsBMhYVERQGIyEiJjURNDYzAREhEQJYKjo6Kv4MKDw8KAH0/gwDIDoq/UQoPDwoArwqOvzgArz9RAAAAAAD//j/aAPwA1YAFgAaACIACrcdGxoYEwUDLSsBFgcDDgEnJS4BPwEHBicDJjclNhYfASUTJQMBEyUTFg8CA8omCJYEHBD+ahAQBBi0KAqgCiYBxhAcBEL9/JABiJABNoT+1kwKJsQaAeAKJP3UEA4EbgQcDlwwCiQCWiQMegQOEPRa/eJqAhz8sgHsUv7mIgw0ZgAAAgAAAAAD6AK8AA8AEwAiQB8AAAACAwACXgADAQEDUgADAwFYAAEDAUwREzUyBAUYKxE0NjMhMhYVERQGIyEiJjUBIREhPCgDICo6Oir84Cg8A4T84AMgAlgqOjoq/gwoPDwoAfT+DAAFAAD/nAK8AyAAAwATABcAGwAfAGNAYAsBAgAEBwIEXg0BBwAGAAcGXgAACgEBCQABXg4BCQAIBQkIXgwBBQMDBVIMAQUFA1gAAwUDTBwcGBgUFAUEAAAcHxwfHh0YGxgbGhkUFxQXFhUNCgQTBRIAAwADEQ8FFSsTNSEVEzIWFREUBiMhIiY1ETQ2MwERIREBFSE1ARUhNdQBGGwqOjoq/gwoPDwoAfT+DAGG/ugBGP7oATRaWgHsOir9RCg8PCgCvCo6/OACvP1EAlBYWP54WFgAAAQAAP+cArwDIAAPABMAFwAbAFNAUAgBAAkBAwIAA14AAgAGBwIGXgsBBwAEBQcEXgoBBQEBBVIKAQUFAVgAAQUBTBgYFBQQEAEAGBsYGxoZFBcUFxYVEBMQExIRCQYADwEODAUUKwEyFhURFAYjISImNRE0NjMXFSE1ETUhFSU1IRUCWCo6Oir+DCg8PCgoAaT+XAGk/l4DIDoq/UQoPDwoArwqOtBYWP4gWFjEWloACgAA/5wDIAMgAA8AEwAXABsAHwAjACcAKwAvADMAp0CkFAEAAAIIAAJeGQsCCBgBCQcICV4XAQcKAQYNBwZeDhoCDRsPAgwFDQxeEhYCBR0TAgQRBQReHAERABADERBeFQEDAQEDUhUBAwMBWAABAwFMMDAsLCgoJCQgIBwcGBgUFBAQAQAwMzAzMjEsLywvLi0oKygrKikkJyQnJiUgIyAjIiEcHxwfHh0YGxgbGhkUFxQXFhUQExATEhEJBgAPAQ4eBRQrATIWFREUBiMhIiY1ETQ2MwERIRElFSM1JRUjPQIzFScVIzUXFSM1FzUzHQIhNSU1MxUCvCo6Oir9qCg8PCgCWP2oAV76AZDIyPqWZGSW+v5wASxkAyA6Kv1EKDw8KAK8Kjr84AK8/UT6MjLIMjIyZGRkyMj6MjIyMjKWMjIyMjIAAAcAAP+cA4QDKAADAAcAIAAkACgALAAwABNAEC8tKykoJiMhHBEHBQMBBy0rJRUnNTcVJzUBFhURFAcFBiIGIiYjJyUmNRE0NzYXBSU2ARElESERBREBFQc1ExUHNQFUyMjIAuIWIP5yCAQGBAYCCv5yIBYWGAF+AX4Y/jj+wALk/sABBMjIyO5EUESARFBEAQoMHv2AIgygAgICAqAMIgKAHgwQCpqaCvzcAjCA/dACMID90AE6RFBEASBEUEQAAAEAAP98ArwDUAAlABZAExABAEUAAAEAbwABAWYZFyUCBRUrARYVERQGIyI1ETQnJSYHBgcFFhURFAcGIyInJiQnJjUDNDc+ARcCqhIYEC4M/mwgJCwMAZgSEgYKDgYI/nwSGgYOHJQqAlIIFP3ODhYkAgoMBtgKFBQY5AgU/doWBgQEBvIKEhACDBwYLj4WAAL//v/OA+oC7gAOAB4AZEuwDVBYQCMAAwQEA2MFAQACAQIAAW0AAQFuAAQCAgRUAAQEAlcAAgQCSxtAIgADBANvBQEAAgECAAFtAAEBbgAEAgIEVAAEBAJXAAIEAktZQBEBAB0aFxQREAkGAA4BDQYFFCsBMhYHAw4BIyEiJwMmNjMlFyE3PgE7ATIfARYzITIWA7ogEAIqAhQg/No0BCoCECADagr8sg4EIBSkNCIeIDYBVBQkAfQYGP48GBoyAcQYGG4ohBQcIh4kGAAAAAAE//z/zgPYAu4ACgATACoAOACdQAwqJwIAATgrAgkHAkdLsBBQWEA0AAcGCQYHZQAJBAYJBGsABARuCgEDAAIBAwJeAAEAAAUBAF4ABQYGBVIABQUGVggBBgUGShtANQAHBgkGBwltAAkEBgkEawAEBG4KAQMAAgEDAl4AAQAABQEAXgAFBgYFUgAFBQZWCAEGBQZKWUAYCws2MzEwLy4tLCkoHhwLEwsTGBQRCwUXKwEVITU0NjchMh4BJzIeARUhNDY3BRYXFgcDDgEHISInJgInJj4BPwEVITUDNSMVITUjFRQzITI2NQNI/UgaDAJgBhAclAYQHP4OGgwCkiIEBgZMBCAM/To0CAZCBgoOBhIoA0TaRv78RDABLBYaAlgyMhYaAgIagAIaFhYaAsggDhIk/j4WGgIyGgGKHhYsCBAoUFD+1GRQUGQyGAwAAAADAAD/zgOEAu4ACQATABcAQEA9AAQFAwUEA20AAwNuBgEAAAECAAFeAAIFBQJSAAICBVYHAQUCBUoUFAEAFBcUFxYVEg8MCwUEAAkBCAgFFCsBMhYdASE1NDYzExEhERQGIyEiJhMVITUDZgwS/HwSDBQDICoc/WwcKvoBLALuEgx4eAwS/SYCEv3uHigoAcxkZAAAAwAA/+IC+ALaAAcADwAYADhANQAAAAIDAAJgAAMABQYDBWAIAQYBAQZUCAEGBgFWBwQCAQYBShEQFRQQGBEYEhIREhIQCQUaKxEgABEjEAAhFTIAFSM0JiMXMhYUBiImNDYBOgG+dv6I/vbaATJ27qhyLkREXEREAtr+Qv7GAQoBdnb+ztim7rJCXkJCXkIAAf///7QDOQLuACUAD0AMGwEARAAAAGYpAQUVKwE2LwEuATY3PgIyHwEWHwEWAgAELwEmLwEmPwE+ATc+AR4BFxYBzaIsCB4WDioUIiQYERgHExUwbP7U/t4wFxUEEg4BAgEcGCo4NBIeLAEioiwIHiRINBgeAg0SBRQWMP7c/tZuMBYUBRgTDB4SIhQiGhYOHiwAAAIAAP+6A0gDAgAsADUATEBJKRoCAwErGBQCBAIDEgQCAAIDRyUjIB4EAUUPDQoIBABEAAEAAwIBA2AEAQIAAAJUBAECAgBYAAACAEwuLTIxLTUuNSIhGwUFFSsBFBcGByYHBhcGByYiByYnNiYHJic2NTQnNjcWNzYnNjcWMjcWFwYXFjcWFwYBMjY0JiIGFBYC+FAMFkZCNhQoLC6sLiwoFGxSDhRSUhQOSj42FCoqLqwuKioUNkJGFgxQ/qxMamqYamoBXkgyKCoSPjpOFBBSUhAUUG4UGjg0UEg0OBoSPjhQFgxQUAwWTjo+EiooMv8AaphsbJhqAAAAAAT/+v+aA/MDGgArADcAVgBeAB1AGllYQD8EAEQCAQEAAW8AAABmHRwbGhEQAwUUKxMOARQjBwYHBi8BJjc+ATc2Mj4BNzI+ATc2NzIXMgcGBwYXFhcWDwEGJy4BFwEWDwEGJwEmPwE2JRYHBicmDwEnNz4BJjc2NzYWBwYHBhYXFjc+ATc2FgE3FwcGLwEmmwgGAhEPBBAMRgsNAiAEBioeCAYCDiYWhjR6GgwUeCBQLCIECApMDgQqOvgBmhIUMBYQ/mIICEgMAjIQIDJoOCxSREQYDgIGDIAMDAQMIg4EJjomBigCBBL8qP5M9hQSLhYB+ggcFg8NBA4STAwMAhgEBhwwBg4eEFoGAgg0GDg6LgIIBkYIBDAYMv4kFhAqDhIB2AgMPgjAaD5YGgwsTk5GGDpIFjg4BhIGDEQKMhwoPgw6BAoC/UT4VvIUEC4SAAEAAP+cAyADIAAnAERAQSEBBQQUCwICAyYHAgEAA0cABAUEbwAFAwVvAAMCA28AAgACbwYBAAEAbwABAWYBACAeGxoTEQ4MBQQAJwEnBwUUKyUyFhQGIiY1NDY1JQYjIiY0NjMyFyU0JjU0NjIWFAYjIicFFhQHBTYCij5YWHxYAv78KjI+WFg+NiYBBAJYfFhYPjQm/voCAgEGJMhWflhYPgYQBJwgWHxYHpwEEAQ+WFZ+WCCcCCIInB4AAwAA/84D6ALuAAgAHQAyAGJAXwAFBgAGBQBtAAADBgADawABCAoIAQptAAoLCAoLawAEAAYFBAZgAAMAAgcDAmAMAQcACAEHCF4ACwkJC1QACwsJWAAJCwlMHx4vLSsqJSMhIB4yHzIiFSIRIxMSDQUbKwE0NjIWFAYiJicGKwE1Mz4BMzIXFhQHBiInJiMiBgUzFSMOASMiJyY0NzYyFxYzMjY3NgFUXoReXoRecg40oHYo0oSkeBAQEjISTnhkmAJQoHYo0IakdhISEDISUnRkmBYMAV5EXFyGXl5+PHh8nHQSMhIQEFJ8nHh8nHYSMhASElJ+XjwAAAAAAwAA/5wDhAMgAAgAEQAqAD9APB0BBAFGAAgGBAYIBG0ABwAGCAcGXgAEAAUABAVgAgEAAQEAVAIBAAABWAMBAQABTBIyEzIkExQTEgkFHSszNDYyFhQGIiYlNDYyFhQGIiYBBhYzIRUUIyEiPQEDIzU0OwEyHQEhERQHljxSOjpSPAH0PFI6OlI8/r4kBCoCMhT9chRsYhScFALAEig8PFI6OiooPDxSOjoBFgoaTBQUTAH0UBQUVv7uFgQAAAAAA//8/7oDXwMCABUAIQAlAEVAQgAEAwIDBAJtCAECAAMCAGsAAABuAAEABwYBB14ABgMDBlIABgYDVgUBAwYDShcWJSQjIiAfHh0cGxYhFyE5NAkFFisBFgcDBiMhIicCJyY3Nj8BNjMhMhcWATI+AjcjBiInIxIDISchA0McBGIIHv22HAxeAgUbBjA4EiYB4CYSTv6KOFQqEgRcJpQmXC7CAsBu/hwCnBoi/XgeHgJsHCIaBiUrEBA6/jBEbkQgvLz+6gFwdAAEAAD/nAOEAyAAFwAbAB8AIwBgQF0EAgwDAAkICQAIbQ8LDgMJCgEIAwkIXgUBAwAGBwMGXg0BBwEBB1INAQcHAVgAAQcBTCAgHBwYGAEAICMgIyIhHB8cHx4dGBsYGxoZFhUUExIREA4JBgAXARcQBRQrATIWFREUBiMhIiY1ETQ2OwEVMzUhFTM1ExEhERMVIzUhFSM1AyAqOjoq/UQoPDwoLqABIqAs/USgRgIIRgK8Oir9qCg8PCgCWCo6ZGRkZP1EAZD+cAMgqqqqqgAAAgAA/5wDhAMgABcAHgDOQA4dAQcFHgEGBxgBAgYDR0uwCVBYQC8ABQQHBAVlAAIGAwMCZQgBAAAEBQAEXgAHAAYCBwZeAAMBAQNSAAMDAVkAAQMBTRtLsA1QWEAwAAUEBwQFB20AAgYDAwJlCAEAAAQFAAReAAcABgIHBl4AAwEBA1IAAwMBWQABAwFNG0AxAAUEBwQFB20AAgYDBgIDbQgBAAAEBQAEXgAHAAYCBwZeAAMBAQNSAAMDAVkAAQMBTVlZQBcBABwbGhkTEhEQDw4NDAkGABcBFgkFFCsBMhYVERQGIyEiJj0BMxUhESEVIzU0NjMTNSE1ITUXAyAqOjoq/j4oOmIBwv4+YjooZP4+AcLIAyA6Kv1EKDw8KGRkAryWlio6/WJ4lnjCAAAAAAIAAP+cA4QDIAAXAB4AyEAKHgEHAxkBAAYCR0uwCVBYQDAAAwQHBANlAAAGBQUAZQACAAQDAgReAAcABgAHBl4IAQUBAQVSCAEFBQFZAAEFAU0bS7ANUFhAMQADBAcEAwdtAAAGBQUAZQACAAQDAgReAAcABgAHBl4IAQUBAQVSCAEFBQFZAAEFAU0bQDIAAwQHBAMHbQAABgUGAAVtAAIABAMCBF4ABwAGAAcGXggBBQEBBVIIAQUFAVkAAQUBTVlZQBIAAB0cGxoAFwAXERM1MxEJBRkrITUzFRQGIyEiJjURNDYzITIWHQEjNSERAQc1ITUhNQH2Yjoq/nAoPDwoAZAqOmL+bgMgxv4+AcJkZCg8PCgCvCo6OiqWlv1EAUbEeJZ4AAAAAwAA/2oCgANSACcAMAA4AMW2FQYCAQUBR0uwH1BYQC0ACAkACQgAbQAFBgEGBQFtBwQKAwALAQYFAAZgAAkJDEgDAQEBAlgAAgINAkkbS7AkUFhAKgAICQAJCABtAAUGAQYFAW0HBAoDAAsBBgUABmADAQEAAgECXAAJCQwJSRtAMAAJCAlvAAgACG8ABQYBBgUBbQcECgMACwEGBQAGYAMBAQICAVQDAQEBAlgAAgECTFlZQB8pKAEANzYzMi0sKDApMCIhHRoUEg8MCQcAJwEmDAUUKwEyHQEUBgcVMzIdARQjISI9ATQ7ATUuAT0BNDsBMh0BFBYgNj0BNDMFIiY9ASEVFAYTFSE1NDYyFgJsFIqEghQU/pgUFIKEihQeFHYBCHYU/vJQRgEsRkb+1EagRgHoFIpckAyEFDwUFDwUhAyQXIoUFIpCcnJCihTuMh6enh4yAgjU1B4yMgAAAAMAAP+mA3QDKgALAB0ALAAUQBEmJR8WFQ0GAEUAAABmFQEFFSsBFhQHAQYiJjQ3ATYDNx4BBw4DJwEeAjc2LgElASYSNzYWFwcuAQcGHgEDZBAQ/PISIiIQAw4itDJKNiIYZqCiVAEWLFguCgYILP7M/vIoiEAijlg0Ol4KBAQiAwoQKBD88g4cLA4DDiD+XjJcoCQYQkwOHgEUICwGBAowWGr+8oQBLkAgKkAyJh4KCChMAAX/+P+EA5IDQgANAB0AKQA3AEYAH0AcAAEAAW8DAQACAG8AAgJmHx4/PTc1HikfKQQFFCsTNh4CBw4CLgI+AQE2LgEnLgIHBh4BFx4CEyImND8BNhcWDwEGJy4BPwE2Fx4BDwEGIyIFFgYPAQYjIicmNj8BNhawKtbcXiocgLjMlBROTgHsCBZMOjh8TgoIFkw4OnxOEBIgEF4kJCAgYBDIEgoKNhoqEgoKNg4cDgGqCgwSYBAIHBAKDBJgEigCTCpe3NYqHE5OFJTMuID+PApOfDg6TBYICk58OjhMFgGSHioOYCAgJCReEHwKKBJgLBgKKBJgGpASKAo2CBoSKAo2CgoAAf/8AAADgAJiAAwACrcAAABmMgEFFSslFAYjISImNjcBNhYVA4AwIPz0FhIMEgMiHCi0Ii4KFAoBxBIWIgAAAAMAAP+SA5gDKgAIABEAFwBJQEYWFRQTBAIEAUcHAQQDAgMEAm0FAQAAAwQAA2AGAQIBAQJUBgECAgFYAAECAUwSEgoJAQASFxIXDg0JEQoRBQQACAEICAUUKwEyABAAIAAQABMyNhAmIAYQFhMVFwcnEQHMvgEO/vL+hP7yAQ6+ltLS/tbU1LiWMqoDKv7y/oT+8gEOAXwBDvzM1AEq0tL+1tQCbPSWMqoBEgADAAD/agIwA1IAGwAoAGIArEAQNTICAgM2AQQCWE0CAAYDR0uwH1BYQCcABQQGBAUGbQAGAAQGAGsAAgAEBQIEYAADAwFYAAEBDEgAAAANAEkbS7AkUFhAJgAFBAYEBQZtAAYABAYAawAAAG4AAgAEBQIEYAADAwFYAAEBDANJG0ArAAUEBgQFBm0ABgAEBgBrAAAAbgABAAMCAQNgAAIEBAJUAAICBFgABAIETFlZQAtTUhobJCcdGgcFGisBFA4BFB4BHQEUBiImPQE0PgE0LgE9ATQ2MhYVBQcGFxYzMjc2JyYjIhM0PgI/ATY1NwYiJxcUHwMWJhYjFA4CDwIGJgY1Bh0BPgI1NDIVFB4BFzU0LwImLwEuAQIwYGJiYKzYrGBiYmCu1K7+HhIECFx8hFgOHmBqeJAIHAwZHVwCZPRkBFotExERDB4MAgoGCAwPDwIiWgh0RDRCegZcKxINBQwHBAJuLGhePFxmLnYiTk4idi5mXDxeaCx2IE5OIAYOCAY0MgoUNv5KEh4kDhgcXB4yNjYyIForExUVAjAKEhIOCg8QEAIiAVogQgQmMCIeHiIwJgRCHlwpEw4IFAwWAAAAAAP/+/9oAr8DUgAGABcAMgCHQAwSDQIEBQMAAgEAAkdLsCFQWEAdAAQAAgAEAl4ABQUDWAADAwxIAAAAAVgAAQENAUkbS7AkUFhAGgAEAAIABAJeAAAAAQABXAAFBQNYAAMDDAVJG0AgAAMABQQDBWAABAACAAQCXgAAAQEAUgAAAAFYAAEAAUxZWUALMjEmJRcRIhEGBRgrFzUhFQYnBjchNC4CNz4BIBYXFg4DAQYWBhYGHwEWHwIWFzM2PwE2PwE+AicmINEBGkZIRs7+8khUQAYIrAFSqgoEKEBCMP6GBAgEDgIJCwILDh9YGFIYWBkVBBENBgYCEP46bmhoKgICzkiIWoZIeKyseDxqVlRsAbQEIAgeBg8TBA8TLHpaXnYjHQcdFhYiEsQAAAoAAAAAArwCvAAIABEAGgAjACwANQA9AEYATgBXAG9AbAALEQEKAAsKYAwBAAADBAADYA8GDgMEBwEFAgQFYA0BAgABCAIBYBABCAkJCFQQAQgICVgACQgJTFBPLi0lJBMSCgkBAFRTT1dQVzIxLTUuNSkoJCwlLBcWEhoTGg4NCREKEQUEAAgBCBIFFCsBMhYUBiImNDYTMjY0JiIGFBYlMhYVFCI1NDYlFgcOASY2NzYXMhYVFCI1NDYBMhYUBiImNDYnNhYHDgEnJhM2Fx4BBwYnJgEmNhceAQcGAyImNDYyFhQGAV5EXFyGXl5CLDo6Vjw8/v4UHmQeAjYcJA4mFgQOJFIUHmIc/ugQGBggGBjeJDgkDiYKHhocJA4ECh4iJAHMIjgkDgQMHtoQGBggGBgB/l6GXFyGXv74PFY8PFY8kBgQKCgQGMwcJA4EGCYOIugYECgoEBj+3h4oHh4oHj4kOCQOBAocAdIcJA4mChwiJP44JDgkDiYKHAIOHigeHigeAAAACgAA/2oD6ANSAAsAFAAdACkANgBDAE0AWgBnAHAA40uwH1BYQDQNAQIABQACBWAHDAIABgEBBAABYA4BBAADCgQDYA8BCAgJWAAJCQxIEAEKCgtYAAsLDQtJG0uwJFBYQDENAQIABQACBWAHDAIABgEBBAABYA4BBAADCgQDYBABCgALCgtcDwEICAlYAAkJDAhJG0A4AAkPAQgCCQhgDQECAAUAAgVgBwwCAAYBAQQAAWAOAQQAAwoEA2AQAQoLCwpUEAEKCgtYAAsKC0xZWUAvODcrKhYVDQwBAD49N0M4QzEwKjYrNiglIh8aGRUdFh0REAwUDRQHBAALAQoRBRQrATIWFRQrASI1NDYzJTIWFAYiJjQ2EzI2NCYiBhQWJRQrASI1NDY7ATIWASImPQE0NjIWHQEUBgMyFh0BFAYiJj0BNDYBBwYnJjc2NzYWAT4BFgYPAQ4BJyY3NhMXFgcGJicmJy4BNhYBJjYfARYGJyYDthQeMjAyHhT+bnKiouSgoHJSdnakdnb+9DIyMh4UMhQeAV4QGBggGBgQEBgYIBgYAYAiIh4cJAQeJDj9IA4mFgQOJA4mCh4kBjIkJB4KJg4eBg4EFiYCXCQ4JCIkOCQeAYYYECgoEBjqoOagoOag/iZ0pnZ2pnTIKCgQGBgBTh4UMhQeHhQyFB79RB4UMhQeHhQyFB4ClCIiGhwkBh4iOP2QEAQYJg4kDgQMHCQEAqQkJBwKBA4eBA4mGAT9NCQ4JCIkOCIeAAAKAAD/agPoA1IACwAUABoAJgAzAEAASgBXAGQAbQDjS7AfUFhANA0BAgAEAAIEYAcMAgAGAQEFAAFgDgEFAAMKBQNgDwEICAlYAAkJDEgQAQoKC1gACwsNC0kbS7AkUFhAMQ0BAgAEAAIEYAcMAgAGAQEFAAFgDgEFAAMKBQNgEAEKAAsKC1wPAQgICVgACQkMCEkbQDgACQ8BCAIJCGANAQIABAACBGAHDAIABgEBBQABYA4BBQADCgUDYBABCgsLClQQAQoKC1gACwoLTFlZQC81NCgnFRUNDAEAOzo0QDVALi0nMygzJSIfHBUaFRoXFhEQDBQNFAcEAAsBChEFFCsBMhYVFCsBIjU0NjMlMhYUBiImNDYTESIGFBYlFCsBIjU0NjsBMhYBIiY9ATQ2MhYdARQGAzIWHQEUBiImPQE0NgEHBicmNzY3NhYBPgEWBg8BDgEnJjc2ExcWBwYmJyYnLgE2FgEmNh8BFgYnJgO2FB4yMDIeFP5ucqKi5KCgeFZ4eP7yMjIyHhQyFB4BXhAYGCAYGBAQGBggGBgBgCIiHhwkBB4kOP0gDiYWBA4kDiYKHiQGMiQkHgomDh4GDgQWJgJcJDgkIiQ4JB4BhhgQKCgQGOqg5qCg5qD+JgGQdqZ0yCgoEBgYAU4eFDIUHh4UMhQe/UQeFDIUHh4UMhQeApQiIhocJAYeIjj9kBAEGCYOJA4EDBwkBAKkJCQcCgQOHgQOJhgE/TQkOCQiJDgiHgAFAAD/fgPAAz4ACAAJABEAEgAaADpANxkYDQwEAwIBRwQBAAACAwACYAUBAwEBA1QFAQMDAVgAAQMBTBQTAQATGhQaEA4FBAAIAQgGBRQrATIAEAAgABAABQEUFwEmIyIGEwUyNjU0JwEWAeDIARj+6P5y/uYBGgHI/ZJSAgJkhJjUagECmNZS/f5iAz7+6P5y/uYBGgGOARjc/vyEYgICUtb+ZmrWloJm/f5SAAAAAAIAAP/UAxgC6gAGAA0AH0AcDQwJCAYFBAMCCQEAAUcAAAEAbwABAWYZEAIFFisBIREnByc3ARcHFyERFwHcATxkkmSY/qBkmHr+xGQC6v7EfJhkkv6mZJJkATx6AAAAAAIAAP+cA4QDIAAGAA0AH0AcDQwLCAQBRQYFBAMEAEQAAQABbwAAAGYXEQIFFis3JyERJwcnAQcXIREXN5xqAShkkmQDhJpo/tpkkJJk/thqnGQCvJBkASZomgAAAwAA/84DIALuAA8AEwAcAEtASAkBBgIDAgYDbQcBAAACBgACXggBAwABBAMBYAAEBQUEUgAEBAVYAAUEBUwUFBAQAQAUHBQcGRcWFRATEBMSEQkGAA8BDgoFFCsBMhYVERQGIyEiJjURNDYzAREhEScRIRUhIiY1EQK8Kjo6Kv5wKDw6KgGQ/nDIASz+1Cg8Au46Kv5wKDw8KAGSKDr+DAGQ/nBk/tRkPCgBLAAAAAAFAAD/nAPoAyAAFwAgACkALQA0AHhAdQAKBwsHCmUSAQsGBgtjDgEMAwIDDAJtAA0BDXAPAQAJAQcKAAdgEQgQAwYAAwwGA18EAQIBAQJSBAECAgFYBQEBAgFMKioiIRkYAQA0MzIxMC8qLSotLCsmJSEpIikdHBggGSARDw4NDAsKCQgGABcBFhMFFCsBMhYVERQGKwE1MxEhETMVIyImNRE0NjMXMjU0JiIGFBYzMjU0JiIGFBYlNSEVHwEjESMRIwOEKjo6KsbI/N7IyCg8PCgeJhYgFhZ0JhYgFhYCsP2mxvKWuJYDIDwo/agqOmIBzv4yYjoqAlgoPKgmEBQWHhYmEBQWHhYGPj7G8P7UASwAAAAFAAD/zgPoAu4ADwAZACMAJwArAF5AWwAIAgkCCGUNAQkDAwljCgEABQsCAggAAmAEAQMABgcDBl8MAQcBAQdSDAEHBwFYAAEHAUwoKCQkERABACgrKCsqKSQnJCcmJSIhHhwWFBAZERkJBgAPAQ4OBRQrATIWFREUBiMhIiY1ETQ2MxciBhQWMzI1NCYHFBYzMjU0JiIGAREhEQE1IRUDhCo6Oir84Cg8PCiCEBYWECYWmhYQJhYgFgMq/N4DIv2mAu48KP2oKjo6KgJYKDxeFh4WJhAUJBAWJhAUFv24Acz+NAIcPDwAAgAA/2oBzANSAAIABQARQA4AAAEAbwABAWYSEQIFFisbASETAyHm5v405uYBzANS/pT9hAFuAAADAAD/kgOYAyoACAARABgAUkBPFQECBAFHCQEGAwQDBgRtBQEEAgMEAmsHAQAAAwYAA2AIAQIBAQJUCAECAgFYAAECAUwSEgoJAQASGBIYFxYUEw4NCREKEQUEAAgBCAoFFCsBMgAQACAAEAATMjYQJiAGEBYTFTMHJzM1Acy+AQ7+8v6E/vIBDr6U1NT+2NTU7nDKynADKv7y/oT+8gEOAXwBDvzM1AEq0tL+1tQCKs6+vs4AAAAAAwAA/5IDmAMqAAgAEQAYADpANxYBBQMVAQQFFAECBANHAAEAAwUBA2AABQAEAgUEXgACAAACVAACAgBYAAACAEwUEhMUExIGBRorARQAIAAQACAABRQWIDYQJiAGBSMVJzcVMwOY/vL+hP7yAQ4BfAEO/MzUASjU1P7Y1AIozL6+zAFevv7yAQ4BfgEM/vTAlNTUASrS0vBwysxyAAAAAAMAAP+SA5gDKgAIABEAGAA6QDcUAQQCFQEFBBYBAwUDRwAAAAIEAAJgAAQABQMEBV4AAwEBA1QAAwMBWAABAwFMFBITFBMSBgUaKxE0ACAAEAAgACU0JiAGEBYgNiUzNRcHNSMBDgF8AQ7+8v6E/vIDNNL+1tTUASrS/djMvr7MAV6+AQ7+8v6E/vIBDr6W0tL+1tTU7nLMynAAAAMAAP+SA5gDKgAIABEAGABRQE4VAQQCAUcFAQQCBgIEBm0JAQYDAgYDawABCAECBAECYAADAAADVAADAwBYBwEAAwBMEhIKCQEAEhgSGBcWFBMODQkRChEFBAAIAQgKBRQrBSIAEAAgABAAAyIGEBYgNhAmAzUjNxcjFQHMvv7yAQ4BfAEO/vK+lNTUASrS0vBwyspwbgEOAX4BDP70/oL+8gM00v7W1NQBKtL92MzAwMwAAAEAAAAAAkQCHgAQAA9ADAsBAEUAAABmEgEFFSsBBwYiLwEmNDc2HwE3NhcWFAI06hIsEuoQECYoxMQoJhABpuASEuAQMhAmJry8JiYQMgAAAQAAAAABaAKCABEAF0AUBgEBAAFHAAABAG8AAQFmGBECBRYrEzYyFxYPARcWBwYiLwEmNDc28g4yECYmuromJhAwEOIQEM4CchAQJCzEwiwkEBDsEC4Q1gAAAAAB/+4AAAFUAoIAEAAXQBQLAQABAUcAAQABbwAAAGYYFgIFFisTFxYUDwEGIicmPwEnJjc2MmLiEBDiEDAQJCS6uiQkEDICcuwQLhDsEBAkLMLELCQQAAAAAQAAAAACRAIIABAAD0AMBgEARAAAAGYeAQUVKwEWFAcGLwEHBicmND8BNjIXAjQQECYoxMQoJhAQ6hAwEAEYEDIQJia8vCYmEDIQ4BAQAAAB//MAAAHfAfAADQAGswYBAS0rATYXFg8BBi8BJjc2HwEBlRYaGhrEFhrEGhoYGqoB1hoaFhrAFhbAGhYYGJwAAf/0AAABFgJUAA0ABrMJAwEtKzcWBwYvASY/ATYXFg8B/BoaGhbAGBjAFhoaGpy0GhYaGsIYGsIaGhYarAAAAAH/8wAAARUCVAANAAazCwUBLSs/AScmNzYfARYPAQYnJg2enhoaGhbAGBjAFhoatKqsGhYaGsIaGMIaGhYAAAAB//QAAAHcAfAACwAGswUBAS0rNwYmPwE2HwEWBi8BPhowGMQaFsQYMBqq5hYuGr4aGr4aLhaeAAH/8wAAA28CVAANAAazCAMBLSsTCQE2FxYHAQYnASY3Nj8BcgF0FhoaGv50Fhr+dBoaGAI6/pwBZBoaFhr+eBYWAYgaFhgAAAH/9P+iAd4DHAANAAazCQMBLSsFFgcGJwEmNwE2FxYHAQHEGhoaFv54GBgBiBYaGhr+mhQaFhoaAYoYGgGKGhoWGv6MAAAAAAH/8/+iAd0DHAANAAazCwUBLSsXCQEmNzYXARYHAQYnJg0BZv6aGhoaFgGIGBj+eBYaGhQBcgF0GhYaGv52Ghj+dhoaFgAAAAH/9AAAA2wCVAAMAAazBwMBLSslCQEGJjcBNhcBFgcGAyT+jP6OGjAYAYwaFgGMGBgaggFm/poWLhoBhhoa/noaGBYAAQAA//IClALMAAYAHUAaAQEARAABAAFvAwICAABmAAAABgAGERIEBRYrCQIzESERApT+tv62wAEUAW7+hAF8AV7+ogABAAAAAALaAqgABgAfQBwBAQEAAUcCAQBFAAEBRAAAAQBvAAEBZhETAgUWKyUJARUhESEBev6GAXoBYP6gFAFKAUq+/uoAAAABAAAAAALaAqgABgAfQBwBAQABAUcAAQFFAgEARAABAAFvAAAAZhETAgUWKwkCNSERIQFeAXz+hP6iAV4CqP62/rbAARYAAAABAAD/8gKUAswABgAXQBQGAQBFAgEAAQBvAAEBZhEREAMFFysBIxEhESMBApTA/uzAAUoBUP6iAV4BfAABAAAAAAHMAiYAAgAVQBIBAQBEAQEAAGYAAAACAAICBRQrAQsBAczm5gIm/nABkAABAAAAAAGQAkQAAgAGswEAAS0rARElAZD+cAJE/jTmAAEAAAAAAZACRAACAAazAgABLSsRDQEBkP5wAkTm5gAAAQAAAAABzAImAAIAFUASAQEARQEBAABmAAAAAgACAgUUKzUbAebmlgGQ/nAAAAAAAQAA//IC+ALMAAYAHUAaAQEARAABAAFvAwICAABmAAAABgAGERIEBRYrCQIzESERAvj+hP6EwAF4AW7+hAF8AV7+ogABAAD/4gLaAtoABgAfQBwGAQEAAUcAAQBFBQEBRAAAAQBvAAEBZhERAgUWKwEVIREhFQEBegFg/qD+hgLavv6GwAF8AAEAAP/iAtoC2gAGAB9AHAEBAAEBRwABAUUCAQBEAAEAAW8AAABmERMCBRYrCQI1IREhAV4BfP6E/qIBXgLa/oT+hMABegAAAAEAAP/yAvgCzAAGABdAFAYBAEUCAQABAG8AAQFmEREQAwUXKwEjESERIwEC+MD+iMABfAFQ/qIBXgF8AAEAAP90AfQDSAAGAIqzAQEAREuwCVBYQA0DAgIAAQBwAAEBDAFJG0uwClBYQAsAAQABbwMCAgAAZhtLsA5QWEANAwICAAEAcAABAQwBSRtLsA9QWEALAAEAAW8DAgIAAGYbS7AVUFhADQMCAgABAHAAAQEMAUkbQAsAAQABbwMCAgAAZllZWVlZQAsAAAAGAAYREgQFFislByczETMRAfT6+qKwZPDwAuT9HAABAAAAAAPUAlgABgAmQCMBAQEAAUcCAQBFAAEBRAAAAQEAUgAAAAFWAAEAAUoREwIFFis3JzcVIRUh8PDwAuT9HGT6+qCyAAABAAAAAAPUAlgABgAmQCMGAQABAUcFAQFFAAEARAABAAABUgABAQBWAAABAEoREQIFFislNSE1ITUXAub9GgLm7mSisqD6AAABAAD/dAH0A0gABgAXQBQGAQBFAgEAAQBvAAEBZhEREAMFFysBIxEjESM3AfSisKL6Alr9GgLm7gAAAAABAAD/rAOsAuAAFwBDQEATCAICBAcBAQICRwUBBAMCAwQCbQYBAAADBAADYAACAQECVAACAgFYAAECAUwBABUUEhEPDgsJBgQAFwEXBwUUKwEyFhAGIyInNxYzMjYQJiIGBzMHJzM+AQIUqu7uqo5uRlRifrS0+rQCjri4fALwAuDw/qzwWEo8tAEAtK58zMym6gAAAQAA/8QDrAL4ABcAQ0BAEAUCBAERAQUEAkcCAQEDBAMBBG0GAQAAAwEAA2AABAUFBFQABAQFWAAFBAVMAQAUEg8NCgkHBgQDABcBFwcFFCsBMhYXMwcnMy4BIgYUFjMyNxcGIyImEDYBmKjuBHq4uJAEtPq0tH5oTkZujqjw8AL46KbOznystP60PExY8AFU8AAAAAL//v/EAzYC+AAOAB0AJUAiHRwXEQoEAQcAAQFHCQEBRRYBAEQAAQABbwAAAGYcEgIFFis/ARElNyYSNzY3FwYHDgEBBQcWAgcGByc2Nz4BJwe6dP7sWHQEdmSMBGRIWAQBogEUWHQEdmCQAmJIWARWcox0/twQVnoBUHhkEGYQSFj6AfoQVnr+sHhiFGgQSFj6XHQAAAAAAQAAAAAC6AKKAAsANEAxCAECAQkBAAICRwoBAEQAAQIBbwACAAACUgACAgBYAwEAAgBMAQAHBgUEAAsBCwQFFCs3IiY1ETMRITUXBzVkKjqMAWzw8Mg8KAFe/sqW3NyWAAAAAAEAAAAAA1ICTgALADJALwIBAgABAQECAkcDAQBFAAECAXAAAAICAFQAAAACVgMBAgACSgAAAAsACxMkBAUWKxMVJzcVITIWFREjNcjIyAImKDyMAV5aoKpkOir+6PAAAAMAAP+2A+gDCAAZACUANABiQF8hFwIABScYAgIELSgCAQcDRxYBA0UpAQZEAAMIAQAEAwBgAAUABAIFBGAJAQcBBgdUAAIAAQYCAWAJAQcHBlgABgcGTCYmAQAmNCYzLCogHh0bFRMNCwoIABkBGQoFFCsBIg4BBw4DKwE1MzI+ATc+AjsBNRcHNQUmKwE1MzIXDgEHBgE1Fwc1IyInNjc0NjcWMwLyNmY6NjA2ZnBCaGg2aDo2Pk6aViTS0v34SlxoaIxyDi4ECAH40tIkjHguGgwCVFoCBEBERj5AWiqMQERGUlhYeLS0ZFhOjGwQOgQM/vpktLR4dDoiAg4EWAABAAAAAAOEAooAGgA/QDwSAQMAEwEEAwJHEQEARQIGAgAFAQMEAANeAAQBAQRSAAQEAVgAAQQBTAEAGRgXFhUUEA4JBgAaARoHBRQrATIWFREUBiMhIiY1ETQ2OwE1Fwc1IxUhNSM1AyAqOjoq/UQoPDwo+sjI0gJslgIcOir+3ig8PCgBIio6brS0btLSjAACAAAAAAPoArQABgANAD1AOgQBAAENAwIDAAJHBQEBRQgBAkQEAQEAAAMBAF4AAwICA1IAAwMCVgACAwJKAAAMCwoJAAYABhEFBRUrARUhFSc3FQEHNSE1ITUCvP4MyMgDIMj+DAH0AlCMWqCqZP5coFqMZAAAAAABAAAAAAH0ApIACwAGswoFAS0rARYUBwEGJjURNDYXAeYODv5UGCIiGAF4Ch4K/vYQFB4CAh4UEAAAAAABAAAAAAJYAooADAAYQBUCAQABAG8AAQFmAQAHBAAMAQsDBRQrATIVERQjISI1ETQ2MwIOSkr+PkwkKAKKQP4qQkIB1iQcAAACAAAAAAISArwACAARACNAIAUCBAMAAQBvAwEBAWYKCQEADg0JEQoRBQQACAEIBgUUKwEyFREUIjURNCEyFREUIjURNAG4WrT+/Fq0ArxA/cZCQgI6QED9xkJCAjpAAAABAAAAAAK8ArwACAAYQBUCAQABAG8AAQFmAQAFBAAIAQgDBRQrATIWEAYgJhA2AV6SzMz+3MzMArzM/t7OzgEizAAAAAIAAAAAAlgCggALABQAGEAVAgEAAQBvAAEBZg0MERAMFA0UAwUUKwEWFAcFBiY1ETQ2FyUyFREUIjURNAGcDg7+lhYcHBYB3EqWAXYKGgrkDhIaAboaEg4oOv4uOjoB0joAAAACAAAAAAJYAoIADAAUABFADgAAAQBvAAEBZhMeAgUWKxM0NyU2FhURFAYnJSYnNDIVERQiNa4OAWwUHBwU/pQOrpaWAV4OCuQOEhr+RhoSDuQK9jo6/i46OgAAAAIAAAAAA3ACfAALABcACLUWEQoFAi0rARYUBwUGJjURNDYXBxYUBwUGJjURNDYXA2IODv6MFh4eFlIODv6YFCAgFAF2ChwI+A4QHAHiHBAO+AocCPgOEBwB4hwQDgAAAAIAAAAAA3ACfAAMABkACLUWEQkEAi0rETQ3JTYWFREUBiclJiU0NyU2FhURFAYnJSYOAXYUICAU/ooOAcYOAWgUICAU/pgOAV4OCvgOEBz+HhwQDvgIDg4K+A4QHP4eHBAO+AgAAAAAAgAAAAAD6AJYABAAFAApQCYAAQACAwECXgQBAwAAA1IEAQMDAFgAAAMATBERERQRFBQ1MwUFFysBFRQGIyEiJjURNDYzITIWFQMRIRED6Doq/OAoPDwoAyAqOmT84AHC+io6OioBLCg8PCj+1AEs/tQAAAADAAAAAAPoAlgAEAAUABgAOkA3AAEAAgQBAl4ABAcBBQMEBV4GAQMAAANSBgEDAwBYAAADAEwVFRERFRgVGBcWERQRFBQ1MwgFFysBFRQGIyEiJjURNDYzITIWFQMRIRE3NTMVA+g6KvzgKDw8KAMgKjpk/OAyyAHC+io6OioBLCg8PCj+1AEs/tQyxsYAAAAEAAAAAAPoAlgAEAAUABgAHABFQEIAAQACBAECXgYBBAoHCQMFAwQFXggBAwAAA1IIAQMDAFgAAAMATBkZFRURERkcGRwbGhUYFRgXFhEUERQUNTMLBRcrARUUBiMhIiY1ETQ2MyEyFhUDESERNzUzFTM1MxUD6Doq/OAoPDwoAyAqOmT84DLIMsgBwvoqOjoqASwoPDwo/tQBLP7UMsbGxsYAAAUAAAAAA+gCWAAQABQAGAAcACAAS0BIAAEAAgQBAl4IBgIECQwHCwQFAwQFXgoBAwAAA1IKAQMDAFgAAAMATBkZFRURESAfHh0ZHBkcGxoVGBUYFxYRFBEUFDUzDQUXKwEVFAYjISImNRE0NjMhMhYVAxEhETc1MxUzNTMVNzMVIwPoOir84Cg8PCgDICo6ZPzgMsgyyDLIyAHC+io6OioBLCg8PCj+1AEs/tQyxsbGxsbGAAIAAP+wA1wDDAAIACAAUEBNFRICBAAeCQIBBwJHCAEABABvAAQDBG8ABwIBAgcBbQABAW4FAQMCAgNSBQEDAwJWBgECAwJKAQAgHxsaGRgUEw8ODQwFBAAIAQgJBRQrATIWEAYgJhA2Ez4BNyM1My4BJxUjNQ4BBzMVIx4BFzUzAa6y/Pz+nPz81nywDMDADLB8RnyyDMLCDLJ8RgMM/P6c/PwBZPz89g6wfEZ8sA7Cwg6wfEZ8sA7CAAAABgAAAAACvAJYAAsAFwAjAC8AOwBHAGVAYgcOAgQPBgIFAgQFYBAIDQMCCQEDAAIDYBEKDAMAAQEAVBEKDAMAAAFYCwEBAAFMPTwxMCUkGRgNDAEAQ0A8Rz1GNzQwOzE6KygkLyUuHxwYIxkiExAMFw0WBwQACwEKEgUUKzcyFhQGKwEiJjQ2MzcyFhQGKwEiJjQ2MzcyFhQGKwEiJjQ2MxciJjQ2MyEyFhQGIxUyFhQGIyEiJjQ2MwUyFhQGIyEiJjQ2M2QUHh4UMhQeHBYyFB4eFDIUHhwWMhQeHhQyFB4cFvoUHh4UAV4WHB4UFhweFP6iFB4eFAFeFhweFP6iFB4eFMgeKB4eKB7IHigeHigeyB4oHh4oHmQeKB4eKB5kHigeHigeyB4oHh4oHgAAAAQAAAAAA+gCWAALABcAKwA3AFlAVg8KAgkACwAJC2AIDgQMBAAHBQIBAgABYA0BAgMDAlQNAQICA1gGAQMCA0wtLBkYDQwBADMwLDctNikoJiQjIR8eHBoYKxkrExAMFw0WBwQACwEKEAUUKwEyFhQGIyEiJjQ2MwUyFhQGIyEiJjQ2MyUyFCsBFRQiPQEjIjQ7ATU0Mh0BJTIWFAYjISImNDYzAV4WHB4U/tQUHhwWASwWHB4U/tQUHhwWA5geHqpkpB4epGT+PhYcHhT+1BQeHBYBkB4oHh4oHsgeKB4eKB7IZKoeHqpkqh4eqsgeKB4eKB4AAAAAAwAAAAAD6AKKABQAKwA3ADpANykfAgUEAUcAAgADBAIDYAYBBAAFAAQFYAAAAQEAVAAAAAFYAAEAAUwtLDMwLDctNiIzMiIHBRgrARQWOwEOASMhIiY0NjMhMhYXIyIGBzYnJicuAQYPAicmBhcWFxY2PwEXFiUyFhQGKwEiJjQ2MwMCSCpCHkRU/gyCioqCAfRURB5CKkiIChKIKhAUEAIIFpQaEBCILCIQChiSGgE+FiIiFiYWICAWAV5idi4mvN6+Ji54ugwOhh4KBhAEEjhCDBoOhB4QCho6RAzONlg4OFg2AAAAAAIAAP/EA6wC+AAXAB0AU0BQGgEEBh0cGxMIBQIEBwEBAgNHAAYDBAMGBG0FAQQCAwQCawcBAAADBgADYAACAQECVAACAgFYAAECAUwBABkYFRQSEQ8OCwkGBAAXARcIBRQrATIWEAYjIic3FjMyNjQmIgYHMwcnMz4BFzMVFwcnAhSq7u6qinJGUmR+tLT6sgSOuLh8BO6CRoIylgL48P6s8FhMPLT+tKx8zs6m6L7MgjKWAAIAAP+mA+gDFgAXABsAOEA1DwgCAQMBRwQBAAACAwACXgUBAwEBA1IFAQMDAVgAAQMBTBgYAQAYGxgbGhkNCgAXARYGBRQrATIWFREUBg8BFxYjISI/AScuATURNDYzAREhEQOEKjo6KNpWMkb+DGKCJNwoOjwoAyD84AMWPCj92ipGCCwmHDQOLAhGKgImKDz9egIs/dQAAwAA/3QCRANIAA8AGAAcARBLsAlQWEAdCAEFAAMCBQNgBwECAAECAVwABAQAWAYBAAAMBEkbS7AKUFhAJAYBAAAEBQAEXggBBQADAgUDYAcBAgEBAlQHAQICAVgAAQIBTBtLsA5QWEAdCAEFAAMCBQNgBwECAAECAVwABAQAWAYBAAAMBEkbS7APUFhAJAYBAAAEBQAEXggBBQADAgUDYAcBAgEBAlQHAQICAVgAAQIBTBtLsBVQWEAdCAEFAAMCBQNgBwECAAECAVwABAQAWAYBAAAMBEkbQCQGAQAABAUABF4IAQUAAwIFA2AHAQIBAQJUBwECAgFYAAECAUxZWVlZWUAbGRkREAEAGRwZHBsaFRQQGBEYCQYADwEOCQUUKwEyFhURFAYjISImNRE0NjMTMjY0JiIGFBY3ESERAeAqOjoq/oQoPDwovh4oKDoqKu7+XANIOir89Cg8PCgDDCo6/FQeKhweKB6WApT9bAACAAD/kgOYAyoACAARACtAKAQBAAMAbwADAgNvBQECAQJvAAEBZgoJAQAODQkRChEFBAAIAQgGBRQrATIAEAAgABAAEzI2NCYiBhQWAcy+AQ7+8v6E/vIBDr4+WFZ+WFgDKv7y/oT+8gEOAXwBDv2eWH5WWHxYAAAC//kAAAPvAkAAFwAjAGJLsAxQWEAhBAYCAgMFBQJlAAEAAwIBA14ABQAABVIABQUAWQAABQBNG0AiBAYCAgMFAwIFbQABAAMCAQNeAAUAAAVSAAUFAFkAAAUATVlAERkYISAdHBsaGCMZIzk1BwUWKwEWDwEOASMhIiYvASY3Nj8BNjMhMh8BFgUzJyEHMzIfASE3NgPHKAocBCQW/NAWJAQcCCgIHHgWHgIEHhZ4Hv7+smb91GayCAQoASwoBAGOKh6aFBoaFJogKAocdhYWdR0qcnIIZGQIAAAAAv/6/+gDjALWABoAKgA1QDIUAQUCAUcABQIGAgUGbQQBAQMBAgUBAl4ABgAABlQABgYAWAAABgBMNTQhEhEnNQcFGysBFg8BDgEjISImLwEmNxM2OwEHIxclIyczMhcTNiYjISIGHwEeATMhMjY3A3QYCiICIhb9OBYiAiIIFp4WMmgUhv4BAIgSZjIYWAIYFv18FhgCDgIiFAJQFiICATI0LLgUHh4UuDIuAXYuzNLSzC7+BhYgIBZKFh4eFgAABAAA/34DwAM+AAgAIQBVAGMAg0AVEwwCBAAlAQIEIBwCAwJaVgIFAwRHS7AMUFhAJgYBAAQAbwAEAgRvAAIDAm8AAwUFA2MABQEBBVQABQUBWQABBQFNG0AlBgEABABvAAQCBG8AAgMCbwADBQNvAAUBAQVUAAUFAVkAAQUBTVlAEwEAWVdIRzg2GRgFBAAIAQgHBRQrATIAEAAgABAAATQmJwYXHgE/AhYOARcWMx4BFxYHBhc2AQ4BBzIfAR4CFxYGFBYVFBYVFBYzMjYmNTQ+ATc2LgQjLgEGJjU0PgE3PgI3PgEDFjMyNyYHBg8BBiMOAQHgyAEY/uj+cv7mARoCYJx8EgIEHBAgFBYsLhYiPhweAgoYFiRW/i5wrigGEBwMHBQCBCRMEEgQCgIGGl4IEA4UMCIoAhA0FCIeKAgIEhoOBCpCQj6AYhpcGCkvSgIMHAM+/ub+cv7oARgBjgEa/iCE1ioYCCYaBgwCGC5CLEACRCBQPCwgcAIeDoxoAgMBBgoIDEI6NBQcUAQMVCxACCBUOBIiNiAYCggGAggeDgoiKAoODhIMBBr88BRELAoCDxEQAhgAAAAAAQAAAAAD6AKkABUALEApDAEBAgFHAAMAA28EAQACAG8AAgECbwABAWYBABIQCwoHBAAVARUFBRQrATIWFAYjISImNDYzFyY1NDYzMhYXNgL4ZIyMZP2+SmxqTBQCnG5ajBgcAe6IxIhokmgCDBpsmGhSBAACAAAAAAPoAqQAFQA2ADJALyABAgAtHQwDAQICRwADAANvBAEAAgBvAAIBAm8AAQFmAQASEAsKBwQAFQEVBQUUKwEyFhQGIyEiJjQ2MxcmNTQ2MzIWFzYHNjU0JyMmJzcyNTQnJg8BDgEVFB8BFhcPAQYVFBcWNzYC+GSMjGT9vkpsakwUApxuWowYHLQOHgQaDDIGCBASWyEYHgQIHjQCAggSEGQB7ojEiGiSaAIMGmyYaFIE2BAOFAwOAnQUDgQKEmIkIgwWCAIEDHIICAYKCAoUZAAAAAAB//z/lgGUAyQAEAAGsxAKAS0rFyY/ATYuAScmPgEWAh4CACgEJ08oBLgGBLC4CqAEugj+nGQEWrZcDE4QDNjKCP6UCE4m/mIAAAAAAQAA/8YDNAL4AA4AEEANDAMCAEUAAABmGAEFFSslNhInFhcWEAAgJyYnFiQCDGomSDQsgP8A/pSAKCB8ASbuagEkfBougP6W/wCAKDZGJgABAAD/iAPyAzQAGABEQEESBQIAAwFHAAQCBG8AAgMCbwABAAcAAQdtCAEHB24FAQMAAANSBQEDAwBYBgEAAwBMAAAAGAAYNxERERIREQkFGysFEyMHIzcnMxczAzMTIRceAgcUBg8BIQMBDHy0cGRQUGRwtHxk4AESJCQUNApMJCb+/uB4AZBkqqpkAZD+cAQEDhwUICICAv5wAAACAAD/5AOcAtQAGAAeAAi1HhoIAQItKwE2FgcGAgcOASclNwA3NiYHAS8BJjQ3NgABNRcGBwYDfg4QBAKMBAIYDP7qFgGEBgQKBP3acL4MDAgDYv3CoIIMEgLQBA4MBv2gDA4KBpYaAaQGBAoE/m4sTAQQBAQBMv0qzFJ0DA4AAAH/+P/iA64C8AAfABFADh4NAgBEAAAAZhoYAQUUKxM2BRYXFgcOAwcGJwYHBiY3PgM/ASIOAwcm7LYBRKgcBAZMbDBSNIr0QjAMRgosqraqODYONpqOtkYWAoZqKBYcBgQoin6KJGBcTGQYIhZkunhcFhQCGjJ2UvIAAAAG//z/kAOaAywACAARABoAIwAsADUAckBvEAsCAwIPDAIHAzMyLhoWFQYGByEeAgUGIh0CBAUFRwgBAAkBAgMAAmAAAwAHBgMHYAsBBgAFBAYFYAoBBAEBBFQKAQQEAVgAAQQBTCUkHBsKCQEAKSgkLCUsIB8bIxwjDg0JEQoRBQQACAEIDAUUKwE2ABIABAACABciBxc2Mhc3JgEmNDcnBhUWFwU2NycGIicHFjcyNjQmIgYUFiUXNic0JwcWFAHGvgEQBv72/oT+7gYBDL5eVD44hDg+WP6kHBxmLgIsAWhiUD48fDw+VmJcgIC4gIABWGguAixoHAMqAv74/oT+7gYBCgF8ARI6LGgcHGgu/fQ8fjw+WGZgVNgEKmgeHmgutIK2gIC2gmI+YF5gVD48fgAAAAL/9/9aAkMDYAATABwACLUcGA4EAi0rJRYGBwYmJwMmNjcnJjc2HwE2FhcHPgEuAQ4BHgECJxxaXl6iFmoUNDpgDhweEmJQlBzCHBgSMjgYEjKCUJoiHEpQAYBEhCi6Ig4SIMAWTE5oCjQ4GhI0OBoAAAAAAwAA/7YD6AMIABgAIAAtAKq1JQEJCwFHS7ANUFhAOwYDAgEHBQcBBW0MAQUABwUAawQBAAgHAAhrCgEICwsIYwACAAcBAgdgDQELCQkLUg0BCwsJWQAJCwlNG0A8BgMCAQcFBwEFbQwBBQAHBQBrBAEACAcACGsKAQgLBwgLawACAAcBAgdgDQELCQkLUg0BCwsJWQAJCwlNWUAeISEAACEtIS0sKykmIyIgHRsaABgAGBIkNSIRDgUZKwEVIRM2OwE2PwE+ATsBMhYXFhczMhcTITUDByEnJisBIhM1IQYHBiMhIjUnIRUByP44CgRgoBAVFw4SHN4aFAwSKqBgBAr+OqQcASQcDhyYHJYBrgYEBlT9EloKAa4BRmQBJGwaKS0aDA4YIFBs/txkAWI2Nhr9imRYTlRUpmQAAAQAAP+cA+gDIAAJABMAHQAkAFJATxsUAggHIx8CAAgCRwsJBgQCCgYACAEIAAFtBQMCAQFuAAcICAdUAAcHCFgACAcITB4eAQAeJB4kIiAdHBoZGBcWFREPDgwIBgAJAQkMBRQrATIWFREUBisBEQU0NjsBESMiJjUBFTMRIREzNTYyFzUmIyIHFQOEKjo6KjL8rjwoMjIoPAKebv3QbmKQJjQ6NjgCijwo/doqOgLuZCg8/RI6KgLyaP0SAu5oLpZCGBhCAAAAAQAAAAAA3AHMAAgAIEAdAgEAAQEAVAIBAAABWAABAAFMAQAFBAAIAQgDBRQrEzIWFAYiJjQ2bi5AQFxAQAHMQFpCQlpAAAAAAgAAAAACOgHMAAgAEQAtQCoFAgQDAAEBAFQFAgQDAAABWAMBAQABTAoJAQAODQkRChEFBAAIAQgGBRQrEzIWFAYiJjQ2ITIWFAYiJjQ2bi5AQFxAQAGMLkBCWkBAAcxAWkJAXEBAWkJAXEAAAwAAAAADmAHMAAgAEQAaADpANwgEBwIGBQABAQBUCAQHAgYFAAABWAUDAgEAAUwTEgoJAQAXFhIaExoODQkRChEFBAAIAQgJBRQrEzIWFAYiJjQ2ITIWFAYiJjQ2ITIWFAYiJjQ2bi5AQFxAQAGMLkBCWEJAAYwuQEBcQEABzEBaQkJaQEBaQkJaQEBaQkJaQAAAAAL//P9+A9gDSgANAB8ACLUfFAgBAi0rNzYeAgcGBwY3NDc+AQEWAAcGBwYnJicmJyY3Njc2AHYmXlIMJFaOVAQGNBgDbBr+pHYmVggIEh4gIhAIQCh2AcSqIgpQXiRUEgwaBAY8qgKoGv5EdCZCBg4iHiAQBgpUJnQBVgADAAAAAAPoAjoAFQAeACcATUBKJRkTCAQEBQFHAwgCAAcBBQQABWAKBgkDBAEBBFQKBgkDBAQBWAIBAQQBTCAfFxYBACMhHycgJx0bFh4XHhEPDAoGBAAVARULBRQrATIWFAYjIiYnDgEjIiY0NjMyFhc+AQEyNjcuASMiECEyECMiBgceAQMcVHh4VE6ePDqeTlZ4eFZOnjo6oP4APIYuLoQ+cgLAcnI+hiwshgI6auJsUEJCUGziak5CQk7+oEo6Okr++AEISjo6SgAC//IAAAPqArwAEAAcAChAJRwbGhkYFxYVFBMSCwEAAUcCAQABAG8AAQFmAQAJBgAQAQ8DBRQrATIWFREUBiMhIicBJjcBNjMBNyc3JwcnBxcHFzcDhio6Oir+IiYg/qwcHAFUHigBUkiAgEiAgEiAgEiAArw6Kv4MKDwcASgaHAEoGv3aSn6ASH5+SIB+SoAAAAAAAgAA/7oDSAMCAAQAEgAcQBkFAAIARQAAAgBvAAIBAm8AAQFmIigRAwUXKwERIT4BNx4BFRQGIyImJyEyNjUBcP6QEs76nNL2sKDsFgGoFB4DAv6Qks4QFO6grvjSnhwWAAAAAAP/+P+wA/wDEAAGABgAMAAlQCIYEwYDAQABRycUBQMARQAAAQBvAAECAW8AAgJmKyUYAwUXKxMmNzYfAQclNhYXFg8BBiMiJyUnNxcWFwUJAQYjIicuATcBNjc2HwETPgEXFgcDBiciKgoKLGI0AzYOJgwgIvwMEg4O/uI2MiQMBAEI/vT+ogwaDAwQCAoBdggUEhL24gokECYa/BgmARwKLioKGFAEDAIOICDiDArcDlAIBATMAab92hYICiYOAkwQBAYMnAFGEAYMGCb+liQYAAAAAwAA/5wDIAMgAAgAEQAaADZAMwYBAAIAbwcBAgQCbwgBBAEEbwUDAgEBZhMSCgkBABcWEhoTGQ4NCREKEAUEAAgBBwkFFCsBMhYVESMRNDMDMhYVESMRNDMDMhYdASM1NDMC7hYcyCi+FhzIKL4WHMgoAyAeFPyuA1Iy/tQeFP3aAiYy/tQeFPr6MgAB//7/2APUAvIAFAAKtwAAAGYjAQUVKwE2FREhIiY3EzYfARY2PwE2HwEWNwPEEPw8DAYI5hQUSgoWBp4QFnAUEgLcFhr9AA4KASAWFEIIAgruGhZoFBgAAwAAAAAD6AJEABQAHQAmAD9APAIIAgAHAQUDAAVgCQYEAwMBAQNUCQYEAwMDAVgAAQMBTB8eAQAjIh4mHyYcGxgXEA8LCgcEABQBFAoFFCsBMhYUBiMhIiY0NjIWFRQHMyY1NDYFFBYyNjQmIgYFMjY0JiIGFBYDAmCGhmD95F6IiL6GKKAoiP3ATGxMTGxMAp42TExsTEwCRIa+iIi+hoZgSDpAQmCG5jROTmpMTLhOakxMak4AAAMAAP/iA+gC7gAQACoANwAiQB8wLyAVAgEGAAIBRwABAgFvAAIAAm8AAABmIywaAwUXKzcFJQcOAgcOAiIuAScuAQEWFA8BJSYjIgYUFjMyNw0BBiclJjQ3JTYXATYmLwE3HgIHDgEmpgFOARQOAhIeHihQLiAwUChIPgMaGBhO/swWRCg2NigaCgEk/vQ8PP5gGBgBoDw8ASASCg4ORgYMFhIEJCLuqIhSChoUDBIuFhowECBKAT4OJg4sZiQgMCAERJggIOoOJg7qICD9XHSEGBYmCCiidBoIEgAFAAD/4gP6AtoAOQBBAEsAYwBmAGVAYisiAgcBZjUYAwIHFwEDAj0LAggDQgEFCDwGAgQFBkcAAQcBbwAHAgdvBgEEBQAFBABtAAAAbgACAAMIAgNgAAgFBQhSAAgIBVYABQgFSmVkY2BbWlZVUlFIRzg2JyUTCQUVKwEWBgciLwEmNz4BJw4DJy4BNTQ3NjcnDgEnNCY1JjYzNzQnNDMyNzIdATYzNhcUFhUWDwEVMzIWBRY3JwYHBhQ3PgInJiMiBiMlFhIWFCsBIjUnIwYHFCsBIjU2EzY7ATIDMwMD3B5QXgoCIAIEVj4qEC5IZDg0QDwyQAKMDAQKAgYEnAIILgYKngYIAggECLAMVnz+phwiBCIaLKgcPB4IJDwCCAL+PgpWUARWBjKwMAIGVgQKpgIIYAqCkEgBMlK8QgImBgQ8uDgmTFQuCAZGOlRAMhBkGAIGAjYEAgQcbgQIAghoFgQKAioECgIeZkjgBgzWDBwsghYYWEYGEgKyHP7u+AYEpqQCBAQSAhYI/rwBCAAAAwAA/4YDrAMyAAMAIwAnADJALyYjHAEEAwInJQIDAQMTDAMDAAEDRwACAwJvAAMBA28AAQABbwAAAGYmFyYZBAUYKxMBFwkBFhQHAQYiLwE2NTQmIyIHJyY0NwE2Mh8BBhUUFjMyNwkD2AFGsv66AhQODv3aECgQTAw6KhYcShAQAiYOLA5KDDwqGhb+OAGW/v7+aAEQAUay/roBpg4sDv3aEBBMFBwqPA5MECgQAiYODkwWGio6DP2+AZYBAv5qAAAAAAMAAP9qA6wDUAAPACAAMAAqS7AfUFhADAEBAAIAbwACAg0CSRtACgEBAAIAbwACAmZZtisqHxYDBRYrEx4CFRQGIiY1ND4BNzYyBR4CFRQGIiY1ND4CNzYyATYyFR4CFRQGIiY1ND4BqApQQmCEYEJQCgIKAmgKUEJghGAqNjQIAgr+wAIKClBCYIRgQlADTFaKbDpCXl5COmyKVgQEVopsOkJeXkIwWkJ2RAT+QAQEVopsOkJeXkI6bIoAAgAA/34CMAM+ABEAIwAkQCEAAQIBbwACAwJvAAMAAANUAAMDAFgAAAMATCgUGBcEBRgrAR4DFRQGIiY1ND4CNzYyAzYnJiIPAQ4CFRQWMzI1NDcBIg5cXEim5KZIXFwOAhIqAgQGEAQoICAkIhg6KgM2dsp0nFJypKRyUpx0ynYI/nAECgYGOi4wZjIYIkRemAAAAAP/7//sA5sC3AAZADYAVQA2QDMAAwECAQMCbQACBQECBWsABQQBBQRrAAQEbgAAAQEAVAAAAAFYAAEAAUwdLx0sJxoGBRorEwYuATY3PgIeAjY3NhcWBwYjIicuAQ4BBTYWBw4CIyInLgEOAQcGJicmPgMWFx4BPgEXNhcWBgcOAiMiJy4BDgEHBiYnJj4DFhceAT4BVRAoHAQQMD50jrCGQjgmICAmenBkekRmVC4CtCZAJigyXjJgfkRmVC4sDioOIEwsXlKARkRmVC4sJiAOBBAoMl4yYH5EZlQwKg4qDiBMLF5SgEZEZlQuAhYOBB4sDigoKCBkBiYwHiQoIG5GJhwcHpIgTiAiJiZGJhwcHiQOBBAoQiAsAiAoJhwcHtwgJg4sDiImJkYmHBogJA4EEChCICwCICgmHBweAAAACQAAAAAD6AK8AA8AEwAXABsAJwArAC8ANQBBAQFLsCpQWEBSFwEJBwwICWUfGhIDDAgHDGMbAQAABAUABF4dAQUAAgYFAl4YEwoDBhkeFAsEBwkGB14WEQ8DCBUQDgMNAwgNXxwBAwEBA1IcAQMDAVgAAQMBTBtAVBcBCQcMBwkMbR8aEgMMCAcMCGsbAQAABAUABF4dAQUAAgYFAl4YEwoDBhkeFAsEBwkGB14WEQ8DCBUQDgMNAwgNXxwBAwEBA1IcAQMDAVgAAQMBTFlATTY2MDAUFBAQAQA2QTZBQD8+PTw7Ojk4NzA1MDU0MzIxLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFBcUFxYVEBMQExIRCQYADwEOIAUUKwEyFhURFAYjISImNRE0NjMBESERATUhFRMzFSMXMzUzNTMVIxUjFSMzIzUzByM1MzcVIzUzFQcVIzUzNTM1MxUjFQOEKjo6KvzgKDw8KAMg/OADIPzgZB4etB4ePB4ePHgeHpY8PB4ePJY8Hh48HgK8PCj+DCo6OioB9Cg8/agBLP7UAcIyMv8AHh4eHh4eHh4eHh4ePB4eHh4eHh4eAAAAAAMAAP/OAyAC7gANABcAGwBGQEMBAQQFAUcAAwQABAMAbQAAAG4GAQEAAgUBAl4HAQUEBAVSBwEFBQRWAAQFBEoYGAAAGBsYGxoZFhMQDwANAAw0CAUVKwEXERQGIyEiJjURNDYzATUhFRQWMyEyNicVIzUCko46Kv2oKDw8KAH0/nAeFAEsFB4yZALunP3gKDw8KAJYKjr+1Pr6FB4e3MjIAAAAAgAA/2oCvANSABEAGQCES7AfUFhAHgADBAEEAwFtBwUCAwAABAMABF8ABgYMSAABAQ0BSRtLsCRQWEAdAAMEAQQDAW0AAQFuBwUCAwAABAMABF8ABgYMBkkbQCcABgAGbwADBAEEAwFtAAEBbgcFAgMABAQAVAcFAgMAAARXAAQABEtZWUALEREREREVNRAIBRwrATIWFREUBiMhIiY1ETQ2MxchJyEnMzczFzMCdhwqKhz90BwqKhw8Abgo/pgsbCSgJG4C7ioc/QgeKCgeAvgcKpYyZGRkAAAAAAL/+f+UA2QDMgAsADkACLU5MysVAi0rAR4BBwYuAgcOARcWFx4BFxYHBgcGJyYnLgEnBgcGJicmNjc+BTc2FhM+AS4DDgEeAwMYOhIwHEJAhlIcHAgWGAQoBA4kMjQeGCAaBjgSHggiUA4RGB9+rkosBhgYMKQgCAQaOE44EAQYOFA4AfSK8BQMHjIgCAQeFjg0ChgIIgwWEgo0TDgMChoKBAwwJCBeDjRwXlpCNAoUtP5KBESAgnI2CEyGhGouAAMAAP+mArwDFgAQACAALQA/QDwTAQUECQECAwJHBgEEBQRvAAUDBW8AAwACAQMCYAABAAABVAABAQBYAAABAEwiISgnIS0iLRcXGBUHBRgrJTYdARQGICY9ATQ2Fx4BMjYTNhcVFAYgJj0BNBceATI2ATIWHQEUBiAmPQE0NgKuDtD+5tIIBiC67LoiCATM/t7ODh687Lz+zpDOzv7gzs7QFBZkSnp6SmQIBAo0REQBMhAQdERcXER0FBQuOjoBdk42QDpSUjpANk4AAAL/+v/mA44C1AATACMAJEAhAAECAW8AAgMCbwADAAADVAADAwBYAAADAEw1NDc1BAUYKwEWDwEOASMhIiYvASY3EzYzITIXEzYmIyEiBh8BHgEzITI2NwN0GgwiAiIW/TgUJAIiCBaeFjIBmDIYWAIYFv18FhgCDgIiFgJOFiICATAsNLgUHh4UuDQsAXYuLv4GFiAgFkoWHh4WAAP/+P+wA5gDDAAkACoANwBeQFspIAIDBSUYAgIDKAEEAgwBAQQERwACAwQDAgRtAAQBAwQBawABAW4HAQAABgUABmAIAQUDAwVUCAEFBQNYAAMFA0wsKwEAMjErNyw3GxoUExAPCAcAJAEkCQUUKwEyFgcDDgIiLgEvARY2NzI2NCYiBhUUFw4BJy4BJyY3JicmNgEeARcnBiUyPgE0LgEiDgEUHgECCq7gCFwCRpCkjkYCBFKiOhwoKDoqCjCGQGZuBAikEgQI4P7oBEI6IGQByFKWTEyUppRMTJQDDGI4/bQSNDAwNBIeBlJMKDoqKhwUEDo+BApePno+Xiw4Yv4qIDYMzCyWJCocKiQkKhwqJAAAAAIAAP9qAhwDUgASACEAckAJHBkLAAQCAwFHS7AfUFhAFgADAwFYAAEBDEgEAQICAFgAAAANAEkbS7AkUFhAEwQBAgAAAgBcAAMDAVgAAQEMA0kbQBoAAQADAgEDXgQBAgAAAlQEAQICAFgAAAIATFlZQA0UExsaEyEUITcVBQUWKwEeARUUBiImNTQ2NxE0OwEyFhUDMjY1NCYnESMRDgEVFBYBkEBMnuCeTEAoqhQegkZkQDRkNkZkAWQkfExwnp5wTHwkAbwyHhT8rmRGOFgQAXL+kBBaOEZkAAAC//r/cAMaA1YAGQAtABBADRIBAEQAAABmKyoBBRQrARYGBwYnDwIGDwEGJi8BJjcBJicmNjc2Fgc2LgEGBw4BHwEeAR8BHgIyPgEDBhRgZkJAdkZoDiBMDBQCEAgUAQIYDhKOcmqybB4SVGQeCAgDBQIWB0MQDhgOFBACZHTGEgwKwgymHAQOBBAOYh4aAYIyRmqiFBSCvCxqPhQsDBYJEAcUBTEMCBACDgAABAAA/4gCgAM0ACoAMwA8AEUAh0CEFQwCBQslAQcEAkcACwwFDAsFbQADAAwLAwxgAAUQAQkEBQlgAAQABwoEB2AACgAGAAoGYA8BAAAOCAAOYAAIAAINCAJgEQENAQENVBEBDQ0BWAABDQFMPj0sKwEAQkE9RT5FOzo3NjAvKzMsMyknJCIhHxwaGRcREAkHBgQAKgEqEgUUKyUyFhQGIyInIyImNREmNTQ2MhYVFAcVFDsBNjMyFhQGIyInIyInFRQ7ATYTIgYUFjI2NCYBFBYyNjQmIgYBMjY0JiIGFBYCCDJGRjJQHqRYVkhGZEZITqQeUDJGRjJQHqQqJE6kHlAcKio4Kir+Dio4Kio4KgHWHCoqOCoqeEZkRkpsQAHQIkwyRkYyTCJyTkhGZEZKEMJOSAEsKDooKDooARgcKCg6KCj84ig6KCg6KAAEAAD/ugKAAwIALAA1AD4ARwBYQFUmIB8WFQwGBgMBRwoHAgMEBgQDBm0ABgUEBgVrAgEBCAEEAwEEYAkBBQAABVQJAQUFAFgAAAUATEA/NzZEQz9HQEc7OjY+Nz40MzAvKyobGhEQCwUUKwEUBw4DBw4DBxYVFAYiJjU0NxEmNTQ2MhYVFAcVNjc+AjcmNTQ2MhYFFBYyNjQmIgYTMjY0JiIGFBYBMjY0JiIGFBYCgEoGLE46LioqNBgERkZkRkhIRmRGSChiOjQyBEZGZEb9tCg4Kio4KEQcKio4KCgBrBwqKjgoKAKKUB46VjQYDg4QIDAkHlAyRkYyTiIBeiJMMkZGMkwizB4eEhY8LiBMMkZGMhwoKDooKP1GKDooKDooAlgoOigoOigAAAAFAAD/iAOsAzQAQwBMAFUAXgBnAHJAbzwzAgUKGg8CAQUrIhkQCQAGCAEDRwAKCwULCgVtDwwCCAEJAQgJbQAGAAsKBgtgBwEFAwEBCAUBYBAODQMJAAAJVBAODQMJCQBYBAICAAkATGBfZGNfZ2BnXVxZWFRTUE9LShU2FjcYNhY2FBEFHSslFhUUBiImNTQ3NTQrASInFRYVFAYiJjU0NzUGKwEiDgEdARYVFAYiJjU0NzU0NjsBMj0BJjU0NjIWFRQHFRQ7ATIWFQU0JiIGFBYyNhMUFjI2NCYiBhM0JiIGFBYyNgUyNjQmIgYUFgNkSEZkRkhMZCwiSEZkRkgeLmQiJgZIRmRGSFZYZExIRmRGSE5kVlb9Wio4KCg4KtQoOCoqOCiKKjgoKDgqARgcKio4KChwIk4yRkYyTiJyTgzMIk4yRkYyTiLMDCYcDHIiTjJGRjJOInJAbDSMIkwyRkYyTCKMNGxA4h4oKDooKALYHCgoOigo/SYeKCg6KCgoKDooKDooAAMAAP+6APADAgATABwAJQBEQEETCgkABAUCAUcAAgMFAwIFbQAFBAMFBGsAAQADAgEDYAYBBAAABFQGAQQEAFgAAAQATB4dIiEdJR4lExcZFAcFGCs3FhUUBiImNTQ3ESY1NDYyFhUUBycUFjI2NCYiBhMyNjQmIgYUFqhIRmRGSEhGZEZIdCg4Kio4KEQcKio4KCiiIk4yRkYyTiIBeiJMMkZGMkwibhwoKDooKP1GKDooKDooAAAGAAD/ugKAAwIAEwAcACUAOQBCAEsAYEBdOTAvJg0MAwIIAgQBRwgMAgQFAgUEAm0LAQIDBQIDawcBAQkBBQQBBWANCgIDAAADVA0KAgMDAFgGAQADAExEQx4dSEdDS0RLQUA9PDU0KyoiIR0lHiUTFBkXDgUYKxMUBxEWFRQGIiY1NDcRJjU0NjIWAzQmIgYUFjI2AzI2NCYiBhQWARYVFAYiJjU0NxEmNTQ2MhYVFAcnFBYyNjQmIgYTMjY0JiIGFBbwSEhGZEZISEZkRjIqOCgoOCpGHCoqOCgoAdxIRmRGSEhGZEZIdCg4Kio4KEQcKio4KCgCikwi/oYiTjJGRjJOIgF6IkwyRkb9dh4oKDooKAIwKDooKDoo/lwiTjJGRjJOIgF6IkwyRkYyTCJuHCgoOigo/UYoOigoOigAAAL/+f+uA2MDLgApADIAH0AcDAsCAEQAAgECbwABAAFvAAAAZjAvLCsZFwMFFCslHgEOAg8BBiY/AScHBiY/ATY/AT4COwEXPgQXMhcWFxYOAgcTFjI2NCYiBhQCHwYEFAZADZsgGgoogmocHgwfEwgWDhYkFzRHCiZ0eKpQCAYEAgo4YGQkDhZALCxALOwyPjgYKAZEDCAcboQoDBwgTzEQLR0OGgYOMnhYPgwGBApSrIJqHAEMFi5ALi5AAAAAAAMAAP/4A+gCsgAIAB0ALgAxQC4bAQABLBMCAgACRwACAAJwAAEAAAFUAAEBAFgDAQABAEwKCSQjGhgJHQodBAUUKyU2ABcWAgcGJhMiBhUUFxYOASYnNCY1NAAzMhcHJgUWFRQOASsBLgE3NjU0JzY3AZYiAWgODNgeMqyOqOgCAhwoIAICASLSSD5GKAFSigQcFAQWGgICUAYOsjgByAgG/eA2VmQB0v64HhAWHgQcFAgkCuIBOBJWBD6a3iYmGgQgFA4glnYOJQAAAAEAAAABAABtov+mXw889QALA+gAAAAA01VL3wAAAADTVUvf/+D/WgP8A2AAAAAIAAIAAAAAAAAAAQAAA1L/agAAA+v/4P/mA/wAAQAAAAAAAAAAAAAAAAAAANkD6AAAA9T/9wMVAAADhv/5A4T//gNcAAADXAAAA3AAAANwAAADrAAAA+gAAAPoAAAD1AAAA+j/+APoAAACWAAAArwAAAKb//0B1gAAA0gAAAMgAAACRAAAA0gAAAMgAAACRAAAA0gAAAMgAAACRAAAA5j//AHMAAADmP/8A1IAAAOE//wDIAAAA6v//gK8AAACvAAAA+gAAAPA//4BaAAAAiYAAAOEAAADIAAAAyAAAAPo//gD6P/4A+gAAAOEAAAD6AAAA4QAAAL6AAAD6AAAA+gAAAMMAAACuv/gA9QAAAPoAAAD6AAAAyAAAAPoAAADIP/4A8L/+gOF//0D6AAAA+gAAAH0AAAD6AAAA1wAAAPA//wCqf/8AvgAAAK8AAAD6f/4A+gAAAK8AAACvAAAAyAAAAOEAAACvAAAA+n//gPV//wDhAAAAvgAAAMg//8DSAAAA+j/+gMgAAAD6AAAA4QAAANb//wDhAAAA4QAAAOEAAACgAAAA3QAAAOO//gDgP/8A5gAAAIwAAACvP/7ArwAAAPoAAAD6AAAA8AAAAMYAAADhAAAAyAAAAPoAAAD6AAAAcwAAAOYAAADmAAAA5gAAAOYAAACRAAAAVUAAAFU/+4CRAAAAdL/8wEJ//QBCf/zAdD/9ANi//MB0f/0AdH/8wNg//QClAAAAtoAAALaAAAClAAAAcwAAAGQAAABkAAAAcwAAAL4AAAC2gAAAtoAAAL4AAAB9AAAA9QAAAPUAAAB9AAAA6wAAAOsAAADNP/+AugAAANSAAAD6AAAA4QAAAPoAAAB9AAAAlgAAAISAAACvAAAAlgAAAJYAAADcAAAA3AAAAPoAAAD6AAAA+gAAAPoAAADXAAAArwAAAPoAAAD6AAAA6wAAAPoAAACRAAAA5gAAAPn//kDhf/6A8AAAAPoAAAD6AAAAZD//AM0AAAD6AAAA5kAAAOs//gDmP/8AjH/9wPoAAAD6AAAANwAAAI6AAADmAAAA8L//APoAAAD6v/yA0gAAAPr//gDIAAAA9T//gPoAAAD6AAAA+kAAAOsAAADrAAAAjAAAAOJ/+8D6AAAAyAAAAK8AAADXP/5ArwAAAOG//oDkf/4AhwAAAMM//oCgAAAAoAAAAOsAAAA8AAAAoAAAANc//kD6AAAAAAAAABMAJAA4AEuAVgBpgHMAhQCYgLsA2ADxgQoBLAFEgVqBZoF2gYYBlwGlAbaByoHTAd8B7YIJAi2CUgJwgn8CjgKtgsgC3ILxAwqDIwMrgz+DTYNig3iDlgOyA8WD0YPhA+yEBAQSBCmEOQRUhHgEigS5BMUE2wT0BQWFMYVTBWqFeoWSBZ6Fu4XPBe+F/wYRhh6GOQZPBngGkAaiBrwG5gb4hwqHHQc8h2aHfgedh7WHzofoiA6IM4hfiHYIloieiLQI7IkSCUMJionRCecJ8wn+ihSKNwpUClsKcgqGCpmKsAq6CsWK0IraiuKK6oryivmLAosLixSLHQsliy6LN4s/C0ULSQtNC1MLW4tkC20LdIuKC5MLnAuji7YLyIvbi+gL9AwUDCYMNQw8jEWMUYxaDGaMcgx+DIsMmYyrjMAM1ozuDRQNMw1QDWaNeY2njbaN0g3qDiGOMA5LDlSOXo5yDoIOkY64DsaO7g8HDxAPHY8wDz+PWQ9rj3gPko+kD68Pxg/hkBOQLBBDkFYQfhC2EMqQ5hD+EReRKxFNkWkRfpGoEc2R/pIVkj2SVZJuwABAAAA2QBxAA4AAAAAAAIASgBaAHMAAAC9C3AAAAAAAAAAEgDeAAEAAAAAAAAANQAAAAEAAAAAAAEACAA1AAEAAAAAAAIABwA9AAEAAAAAAAMACABEAAEAAAAAAAQACABMAAEAAAAAAAUACwBUAAEAAAAAAAYACABfAAEAAAAAAAoAKwBnAAEAAAAAAAsAEwCSAAMAAQQJAAAAagClAAMAAQQJAAEAEAEPAAMAAQQJAAIADgEfAAMAAQQJAAMAEAEtAAMAAQQJAAQAEAE9AAMAAQQJAAUAFgFNAAMAAQQJAAYAEAFjAAMAAQQJAAoAVgFzAAMAAQQJAAsAJgHJQ29weXJpZ2h0IChDKSAyMDE2IGJ5IG9yaWdpbmFsIGF1dGhvcnMgQCBmb250ZWxsby5jb21mb250ZWxsb1JlZ3VsYXJmb250ZWxsb2ZvbnRlbGxvVmVyc2lvbiAxLjBmb250ZWxsb0dlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABDACkAIAAyADAAMQA2ACAAYgB5ACAAbwByAGkAZwBpAG4AYQBsACAAYQB1AHQAaABvAHIAcwAgAEAAIABmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQBmAG8AbgB0AGUAbABsAG8AUgBlAGcAdQBsAGEAcgBmAG8AbgB0AGUAbABsAG8AZgBvAG4AdABlAGwAbABvAFYAZQByAHMAaQBvAG4AIAAxAC4AMABmAG8AbgB0AGUAbABsAG8ARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2QECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAAdwYWxldHRlBnNlYXJjaApmbGFzaGxpZ2h0BG1haWwFaGVhcnQLaGVhcnQtZW1wdHkEc3RhcgpzdGFyLWVtcHR5BHVzZXIFdXNlcnMIdXNlci1hZGQFdmlkZW8HcGljdHVyZQZjYW1lcmEGbGF5b3V0BG1lbnUFY2hlY2sGY2FuY2VsDmNhbmNlbC1jaXJjbGVkDmNhbmNlbC1zcXVhcmVkBHBsdXMMcGx1cy1jaXJjbGVkDHBsdXMtc3F1YXJlZAVtaW51cw1taW51cy1jaXJjbGVkDW1pbnVzLXNxdWFyZWQEaGVscAxoZWxwLWNpcmNsZWQEaW5mbwxpbmZvLWNpcmNsZWQEYmFjawRob21lBGxpbmsGYXR0YWNoBGxvY2sJbG9jay1vcGVuA2V5ZQN0YWcIYm9va21hcmsJYm9va21hcmtzBGZsYWcJdGh1bWJzLXVwC3RodW1icy1kb3duCGRvd25sb2FkBnVwbG9hZAx1cGxvYWQtY2xvdWQFcmVwbHkJcmVwbHktYWxsB2ZvcndhcmQFcXVvdGUEY29kZQZleHBvcnQGcGVuY2lsB2ZlYXRoZXIFcHJpbnQHcmV0d2VldAhrZXlib2FyZAdjb21tZW50BGNoYXQEYmVsbAlhdHRlbnRpb24FYWxlcnQFdmNhcmQHYWRkcmVzcwhsb2NhdGlvbgNtYXAJZGlyZWN0aW9uB2NvbXBhc3MDY3VwBXRyYXNoA2RvYwRkb2NzDWRvYy1sYW5kc2NhcGUIZG9jLXRleHQMZG9jLXRleHQtaW52CW5ld3NwYXBlcglib29rLW9wZW4EYm9vawZmb2xkZXIHYXJjaGl2ZQNib3gDcnNzBXBob25lA2NvZwV0b29scwVzaGFyZQlzaGFyZWFibGUGYmFza2V0A2JhZwhjYWxlbmRhcgVsb2dpbgZsb2dvdXQDbWljBG11dGUFc291bmQGdm9sdW1lBWNsb2NrCWhvdXJnbGFzcwRsYW1wCmxpZ2h0LWRvd24IbGlnaHQtdXAGYWRqdXN0BWJsb2NrC3Jlc2l6ZS1mdWxsDHJlc2l6ZS1zbWFsbAVwb3B1cAdwdWJsaXNoBndpbmRvdwthcnJvdy1jb21ibwxkb3duLWNpcmNsZWQMbGVmdC1jaXJjbGVkDXJpZ2h0LWNpcmNsZWQKdXAtY2lyY2xlZAlkb3duLW9wZW4JbGVmdC1vcGVuCnJpZ2h0LW9wZW4HdXAtb3Blbg5kb3duLW9wZW4tbWluaQ5sZWZ0LW9wZW4tbWluaQ9yaWdodC1vcGVuLW1pbmkMdXAtb3Blbi1taW5pDWRvd24tb3Blbi1iaWcNbGVmdC1vcGVuLWJpZw5yaWdodC1vcGVuLWJpZwt1cC1vcGVuLWJpZwRkb3duBGxlZnQFcmlnaHQCdXAIZG93bi1kaXIIbGVmdC1kaXIJcmlnaHQtZGlyBnVwLWRpcglkb3duLWJvbGQJbGVmdC1ib2xkCnJpZ2h0LWJvbGQHdXAtYm9sZAlkb3duLXRoaW4JbGVmdC10aGluCnJpZ2h0LXRoaW4HdXAtdGhpbgNjY3cCY3cKYXJyb3dzLWNjdwpsZXZlbC1kb3duCGxldmVsLXVwB3NodWZmbGUEbG9vcAZzd2l0Y2gEcGxheQRzdG9wBXBhdXNlBnJlY29yZAZ0by1lbmQIdG8tc3RhcnQMZmFzdC1mb3J3YXJkDWZhc3QtYmFja3dhcmQKcHJvZ3Jlc3MtMApwcm9ncmVzcy0xCnByb2dyZXNzLTIKcHJvZ3Jlc3MtMwZ0YXJnZXQEbGlzdAhsaXN0LWFkZAdiYXR0ZXJ5DGJhY2staW4tdGltZQdtb25pdG9yBm1vYmlsZQJjZAVpbmJveAdpbnN0YWxsBWdsb2JlBWNsb3VkDWNsb3VkLXRodW5kZXIFZmxhc2gEbW9vbgZmbGlnaHQLcGFwZXItcGxhbmUEbGVhZghsaWZlYnVveQVtb3VzZQlicmllZmNhc2UIc3VpdGNhc2UDZG90BWRvdC0yBWRvdC0zBWJy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") format("embedded-opentype"), url("data:font/woff2;base64,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") format("woff2"), url("data:font/woff;base64,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") format("woff"), url("data:font/ttf;base64,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6DEAAOgxAAAAMAAA6DIAAOgyAAAAMQAA6DMAAOgzAAAAMgAA6DQAAOg0AAAAMwAA6DUAAOg1AAAANAAA6DYAAOg2AAAANQAA6DcAAOg3AAAANgAA6DgAAOg4AAAANwAA6DkAAOg5AAAAOAAA6DoAAOg6AAAAOQAA6DsAAOg7AAAAOgAA6DwAAOg8AAAAOwAA6D0AAOg9AAAAPAAA6D4AAOg+AAAAPQAA6D8AAOg/AAAAPgAA6EAAAOhAAAAAPwAA6EEAAOhBAAAAQAAA6EIAAOhCAAAAQQAA6EMAAOhDAAAAQgAA6EQAAOhEAAAAQwAA6EUAAOhFAAAARAAA6EYAAOhGAAAARQAA6EcAAOhHAAAARgAA6EgAAOhIAAAARwAA6EkAAOhJAAAASAAA6EoAAOhKAAAASQAA6EsAAOhLAAAASgAA6EwAAOhMAAAASwAA6E0AAOhNAAAATAAA6E4AAOhOAAAATQAA6E8AAOhPAAAATgAA6FAAAOhQAAAATwAA6FEAAOhRAAAAUAAA6FIAAOhSAAAAUQAA6FMAAOhTAAAAUgAA6FQAAOhUAAAAUwAA6FUAAOhVAAAAVAAA6FYAAOhWAAAAVQAA6FcAAOhXAAAAVgAA6FgAAOhYAAAAVwAA6FkAAOhZAAAAWAAA6FoAAOhaAAAAWQAA6FsAAOhbAAAAWgAA6FwAAOhcAAAAWwAA6F0AAOhdAAAAXAAA6F4AAOheAAAAXQAA6F8AAOhfAAAAXgAA6GAAAOhgAAAAXwAA6GEAAOhhAAAAYAAA6GIAAOhiAAAAYQAA6GMAAOhjAAAAYgAA6GQAAOhkAAAAYwAA6GUAAOhlAAAAZAAA6GYAAOhmAAAAZQAA6GcAAOhnAAAAZgAA6GgAAOhoAAAAZwAA6GkAAOhpAAAAaAAA6GoAAOhqAAAAaQAA6GsAAOhrAAAAagAA6GwAAOhsAAAAawAA6G0AAOhtAAAAbAAA6G4AAOhuAAAAbQAA6G8AAOhvAAAAbgAA6HAAAOhwAAAAbwAA6HEAAOhxAAAAcAAA6HIAAOhyAAAAcQAA6HMAAOhzAAAAcgAA6HQAAOh0AAAAcwAA6HUAAOh1AAAAdAAA6HYAAOh2AAAAdQAA6HcAAOh3AAAAdgAA6HgAAOh4AAAAdwAA6HkAAOh5AAAAeAAA6HoAAOh6AAAAeQAA6HsAAOh7AAAAegAA6HwAAOh8AAAAewAA6H0AAOh9AAAAfAAA6H4AAOh+AAAAfQAA6H8AAOh/AAAAfgAA6IAAAOiAAAAAfwAA6IEAAOiBAAAAgAAA6IIAAOiCAAAAgQAA6IMAAOiDAAAAggAA6IQAAOiEAAAAgwAA6IUAAOiFAAAAhAAA6IYAAOiGAAAAhQAA6IcAAOiHAAAAhgAA6IgAAOiIAAAAhwAA6IkAAOiJAAAAiAAA6IoAAOiKAAAAiQAA6IsAAOiLAAAAigAA6IwAAOiMAAAAiwAA6I0AAOiNAAAAjAAA6I4AAOiOAAAAjQAA6I8AAOiPAAAAjgAA6JAAAOiQAAAAjwAA6JEAAOiRAAAAkAAA6JIAAOiSAAAAkQAA6JMAAOiTAAAAkgAA6JQAAOiUAAAAkwAA6JUAAOiVAAAAlAAA6JYAAOiWAAAAlQAA6JcAAOiXAAAAlgAA6JgAAOiYAAAAlwAA6JkAAOiZAAAAmAAA6JoAAOiaAAAAmQAA6JsAAOibAAAAmgAA6JwAAOicAAAAmwAA6J0AAOidAAAAnAAA6J4AAOieAAAAnQAA6J8AAOifAAAAngAA6KAAAOigAAAAnwAA6KEAAOihAAAAoAAA6KIAAOiiAAAAoQAA6KMAAOijAAAAogAA6KUAAOilAAAAowAA6KYAAOimAAAApAAA6KkAAOipAAAApQAA6KoAAOiqAAAApgAA6KsAAOirAAAApwAA6KwAAOisAAAAqAAA6K4AAOiuAAAAqQAA6K8AAOivAAAAqgAA6LAAAOiwAAAAqwAA6LEAAOixAAAArAAA6LIAAOiyAAAArQAA6LMAAOizAAAArgAA6LQAAOi0AAAArwAA6LUAAOi1AAAAsAAA6LYAAOi2AAAAsQAA6LcAAOi3AAAAsgAA6LgAAOi4AAAAswAA6LkAAOi5AAAAtAAA6LoAAOi6AAAAtQAA6LsAAOi7AAAAtgAA6LwAAOi8AAAAtwAA6L0AAOi9AAAAuAAA6L4AAOi+AAAAuQAA6L8AAOi/AAAAugAA6MAAAOjAAAAAuwAA6MIAAOjCAAAAvAAA6MMAAOjDAAAAvQAA6MQAAOjEAAAAvgAA6MUAAOjFAAAAvwAA6MYAAOjGAAAAwAAA6McAAOjHAAAAwQAA6MgAAOjIAAAAwgAA6MkAAOjJAAAAwwAA6MoAAOjKAAAAxAAA6MsAAOjLAAAAxQAA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AasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAAdwYWxldHRlBnNlYXJjaApmbGFzaGxpZ2h0BG1haWwFaGVhcnQLaGVhcnQtZW1wdHkEc3RhcgpzdGFyLWVtcHR5BHVzZXIFdXNlcnMIdXNlci1hZGQFdmlkZW8HcGljdHVyZQZjYW1lcmEGbGF5b3V0BG1lbnUFY2hlY2sGY2FuY2VsDmNhbmNlbC1jaXJjbGVkDmNhbmNlbC1zcXVhcmVkBHBsdXMMcGx1cy1jaXJjbGVkDHBsdXMtc3F1YXJlZAVtaW51cw1taW51cy1jaXJjbGVkDW1pbnVzLXNxdWFyZWQEaGVscAxoZWxwLWNpcmNsZWQEaW5mbwxpbmZvLWNpcmNsZWQEYmFjawRob21lBGxpbmsGYXR0YWNoBGxvY2sJbG9jay1vcGVuA2V5ZQN0YWcIYm9va21hcmsJYm9va21hcmtzBGZsYWcJdGh1bWJzLXVwC3RodW1icy1kb3duCGRvd25sb2FkBnVwbG9hZAx1cGxvYWQtY2xvdWQFcmVwbHkJcmVwbHktYWxsB2ZvcndhcmQFcXVvdGUEY29kZQZleHBvcnQGcGVuY2lsB2ZlYXRoZXIFcHJpbnQHcmV0d2VldAhrZXlib2FyZAdjb21tZW50BGNoYXQEYmVsbAlhdHRlbnRpb24FYWxlcnQFdmNhcmQHYWRkcmVzcwhsb2NhdGlvbgNtYXAJZGlyZWN0aW9uB2NvbXBhc3MDY3VwBXRyYXNoA2RvYwRkb2NzDWRvYy1sYW5kc2NhcGUIZG9jLXRleHQMZG9jLXRleHQtaW52CW5ld3NwYXBlcglib29rLW9wZW4EYm9vawZmb2xkZXIHYXJjaGl2ZQNib3gDcnNzBXBob25lA2NvZwV0b29scwVzaGFyZQlzaGFyZWFibGUGYmFza2V0A2JhZwhjYWxlbmRhcgVsb2dpbgZsb2dvdXQDbWljBG11dGUFc291bmQGdm9sdW1lBWNsb2NrCWhvdXJnbGFzcwRsYW1wCmxpZ2h0LWRvd24IbGlnaHQtdXAGYWRqdXN0BWJsb2NrC3Jlc2l6ZS1mdWxsDHJlc2l6ZS1zbWFsbAVwb3B1cAdwdWJsaXNoBndpbmRvdwthcnJvdy1jb21ibwxkb3duLWNpcmNsZWQMbGVmdC1jaXJjbGVkDXJpZ2h0LWNpcmNsZWQKdXAtY2lyY2xlZAlkb3duLW9wZW4JbGVmdC1vcGVuCnJpZ2h0LW9wZW4HdXAtb3Blbg5kb3duLW9wZW4tbWluaQ5sZWZ0LW9wZW4tbWluaQ9yaWdodC1vcGVuLW1pbmkMdXAtb3Blbi1taW5pDWRvd24tb3Blbi1iaWcNbGVmdC1vcGVuLWJpZw5yaWdodC1vcGVuLWJpZwt1cC1vcGVuLWJpZwRkb3duBGxlZnQFcmlnaHQCdXAIZG93bi1kaXIIbGVmdC1kaXIJcmlnaHQtZGlyBnVwLWRpcglkb3duLWJvbGQJbGVmdC1ib2xkCnJpZ2h0LWJvbGQHdXAtYm9sZAlkb3duLXRoaW4JbGVmdC10aGluCnJpZ2h0LXRoaW4HdXAtdGhpbgNjY3cCY3cKYXJyb3dzLWNjdwpsZXZlbC1kb3duCGxldmVsLXVwB3NodWZmbGUEbG9vcAZzd2l0Y2gEcGxheQRzdG9wBXBhdXNlBnJlY29yZAZ0by1lbmQIdG8tc3RhcnQMZmFzdC1mb3J3YXJkDWZhc3QtYmFja3dhcmQKcHJvZ3Jlc3MtMApwcm9ncmVzcy0xCnByb2dyZXNzLTIKcHJvZ3Jlc3MtMwZ0YXJnZXQEbGlzdAhsaXN0LWFkZAdiYXR0ZXJ5DGJhY2staW4tdGltZQdtb25pdG9yBm1vYmlsZQJjZAVpbmJveAdpbnN0YWxsBWdsb2JlBWNsb3VkDWNsb3VkLXRodW5kZXIFZmxhc2gEbW9vbgZmbGlnaHQLcGFwZXItcGxhbmUEbGVhZghsaWZlYnVveQVtb3VzZQlicmllZmNhc2UIc3VpdGNhc2UDZG90BWRvdC0yBWRvdC0zBWJydXNoCGluZmluaXR5BWVyYXNlCWNoYXJ0LXBpZQpjaGFydC1saW5lCWNoYXJ0LWJhcgpjaGFydC1hcmVhBHRhcGUOZ3JhZHVhdGlvbi1jYXAIbGFuZ3VhZ2UGdGlja2V0BXdhdGVyB2Ryb3BsZXQDYWlyC2NyZWRpdC1jYXJkBmZsb3BweQljbGlwYm9hcmQJbWVnYXBob25lCGRhdGFiYXNlBWRyaXZl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") format("truetype"), url("data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 standalone%3D%22no%22%3F%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cmetadata%3ECopyright (C) 2016 by original authors %40 fontello.com%3C%2Fmetadata%3E%3Cdefs%3E%3Cfont id%3D%22fontello%22 horiz-adv-x%3D%221000%22 %3E%3Cfont-face font-family%3D%22fontello%22 font-weight%3D%22400%22 font-stretch%3D%22normal%22 units-per-em%3D%221000%22 ascent%3D%22850%22 descent%3D%22-150%22 %2F%3E%3Cmissing-glyph horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22palette%22 unicode%3D%22%26%23xe800%3B%22 d%3D%22M857 622q72-48 101-110t20-104-35-48q-16-4-54 10t-80 10-80-46q-30-46-21-75t34-65 23-50q-2-26-36-63t-126-74-216-37q-186 0-291 101t-95 245q8 118 104 235t216 151q290 84 536-80z m-318-466q30 0 52 22t22 54-22 53-52 21q-32 0-54-21t-22-53 22-54 54-22z%22 horiz-adv-x%3D%22980%22 %2F%3E%3Cglyph glyph-name%3D%22search%22 unicode%3D%22%26%23xe803%3B%22 d%3D%22M772 78q30-34 6-62l-46-46q-36-32-68 0l-190 190q-74-42-156-42-128 0-223 95t-95 223 90 219 218 91 224-95 96-223q0-88-46-162z m-678 358q0-88 68-156t156-68 151 63 63 153q0 88-68 155t-156 67-151-63-63-151z%22 horiz-adv-x%3D%22789%22 %2F%3E%3Cglyph glyph-name%3D%22flashlight%22 unicode%3D%22%26%23xe804%3B%22 d%3D%22M807 706q62-62 85-130t-5-92l-134-134q-16-16-62-26t-96-4l-408-408q-18-18-57-6t-75 50q-36 36-49 74t5 56l408 408q-6 50 4 96t26 62l136 136q24 28 92 4t130-86z m-448-408q32-32 80 14 46 46 14 82-14 14-38 10t-44-24-23-43 11-39z m336 298q30-30 68-50t62-25 28-1q2 4-4 27t-26 60-50 67-66 50-59 26-27 2 1-28 25-62 48-66z%22 horiz-adv-x%3D%22902%22 %2F%3E%3Cglyph glyph-name%3D%22mail%22 unicode%3D%22%26%23xe805%3B%22 d%3D%22M30 586q-32 18-28 40 2 14 26 14l846 0q38 0 20-32-8-14-24-22-14-6-192-102t-182-98q-16-10-46-10-28 0-46 10-4 2-182 98t-192 102z m850-100q20 10 20-10l0-368q0-16-17-32t-33-16l-800 0q-16 0-33 16t-17 32l0 368q0 20 20 10l384-200q18-10 46-10t46 10z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22heart%22 unicode%3D%22%26%23xe806%3B%22 d%3D%22M790 644q70-64 70-156t-70-158l-360-330-360 330q-70 66-70 158t70 156q62 58 151 58t153-58l56-52 58 52q62 58 150 58t152-58z%22 horiz-adv-x%3D%22860%22 %2F%3E%3Cglyph glyph-name%3D%22heart-empty%22 unicode%3D%22%26%23xe807%3B%22 d%3D%22M790 642q70-64 70-156t-70-156l-360-330-360 330q-70 64-70 156t70 156q64 58 152 58t150-58l58-52 56 52q64 58 152 58t152-58z m-54-260q42 40 42 104 0 66-38 100-38 38-102 38-52 0-104-48l-104-92-106 92q-48 48-102 48-64 0-104-38-38-36-38-100 0-66 44-104l306-286z%22 horiz-adv-x%3D%22860%22 %2F%3E%3Cglyph glyph-name%3D%22star%22 unicode%3D%22%26%23xe808%3B%22 d%3D%22M440 790l120-336 320 0-262-196 94-348-272 208-272-208 94 348-262 196 320 0z%22 horiz-adv-x%3D%22880%22 %2F%3E%3Cglyph glyph-name%3D%22star-empty%22 unicode%3D%22%26%23xe809%3B%22 d%3D%22M880 454l-262-196 94-348-272 208-272-208 94 348-262 196 320 0 120 336 120-336 320 0z m-440-238l150-124-62 178 144 114-176-4-56 202-54-202-176 4 142-114-62-178z%22 horiz-adv-x%3D%22880%22 %2F%3E%3Cglyph glyph-name%3D%22user%22 unicode%3D%22%26%23xe80a%3B%22 d%3D%22M736 128q204-72 204-122l0-106-940 0 0 106q0 50 204 122 94 34 128 69t34 95q0 22-22 49t-32 73q-2 12-9 18t-14 8-14 17-9 43q0 16 5 26t9 12l4 4q-8 50-12 88-4 54 41 112t157 58 158-58 40-112l-12-88q18-8 18-42-2-28-9-43t-14-17-14-8-9-18q-8-48-31-74t-23-48q0-60 35-95t127-69z%22 horiz-adv-x%3D%22940%22 %2F%3E%3Cglyph glyph-name%3D%22users%22 unicode%3D%22%26%23xe80b%3B%22 d%3D%22M1000-90l-224 0 0 150q0 54-30 81t-154 89q40 30 40 84 0 16-13 33t-19 51q-2 8-14 16t-14 42q0 24 12 30-6 34-8 60-4 38 23 78t95 40 96-40 24-78l-8-60q12-6 12-30-2-34-14-42t-14-16q-6-34-19-51t-13-33q0-42 21-66t77-48q112-46 130-80 6-8 9-61t5-101l0-48z m-488 262q182-78 182-124l0-138-694 0 0 184q0 44 84 78 76 32 104 64t28 88q0 20-19 44t-25 68q-2 10-18 22t-20 56q0 14 3 23t7 13l4 2q-6 46-10 82-4 50 33 103t127 53 127-53 33-103l-10-82q14-8 14-38-4-44-20-56t-18-22q-6-44-25-68t-19-44q0-56 28-88t104-64z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22user-add%22 unicode%3D%22%26%23xe80c%3B%22 d%3D%22M620 128q180-64 180-122l0-106-800 0 0 202q36 14 82 26 94 34 129 69t35 95q0 22-23 48t-31 74q-2 12-23 25t-25 61q0 16 5 26t9 12l4 4q-8 50-12 88-6 54 40 112t160 58 160-58 42-112l-14-88q18-8 18-42-2-28-9-43t-14-17-14-8-9-18q-10-46-33-73t-23-49q0-60 36-95t130-69z m230 272l150 0 0-100-150 0 0-150-100 0 0 150-150 0 0 100 150 0 0 150 100 0 0-150z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22video%22 unicode%3D%22%26%23xe80d%3B%22 d%3D%22M980 600l-100 0 0-100 100 0 0-100-100 0 0-100 100 0 0-100-100 0 0-100 100 0 0-60q0-16-12-28t-28-12l-900 0q-16 0-28 12t-12 28l0 60 100 0 0 100-100 0 0 100 100 0 0 100-100 0 0 100 100 0 0 100-100 0 0 60q0 18 12 29t28 11l900 0q16 0 28-11t12-29l0-60z m-600-400l250 150-250 150 0-300z%22 horiz-adv-x%3D%22980%22 %2F%3E%3Cglyph glyph-name%3D%22picture%22 unicode%3D%22%26%23xe80e%3B%22 d%3D%22M856 518l-100 0-124 150-214-150-180 0q-52 0-90-39t-38-91l0-160-108 296q-10 38 22 52l680 248q36 10 50-24z m106-90q16 0 27-12t11-28l0-472q0-16-11-28t-27-12l-724 0q-16 0-27 12t-11 28l0 472q0 16 11 28t27 12l724 0z m-56-452l0 162-72 160-166-60-130-132-138 170-92-214 0-86 598 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22camera%22 unicode%3D%22%26%23xe80f%3B%22 d%3D%22M500 450q64 0 107-44t43-106-44-106-106-44-106 44-44 106 44 106 106 44z m400 150q42 0 71-29t29-71l0-450q0-40-29-70t-71-30l-800 0q-40 0-70 30t-30 70l0 450q0 42 30 71t70 29l120 0q28 0 40 30l30 92q10 28 40 28l340 0q30 0 40-28l30-92q12-30 40-30l120 0z m-400-550q104 0 177 73t73 177-73 177-177 73-177-73-73-177 73-177 177-73z m366 380q14 0 24 11t10 25-10 24-24 10q-36 0-36-34 0-16 11-26t25-10z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22layout%22 unicode%3D%22%26%23xe810%3B%22 d%3D%22M170 650q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z m350 0q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z m-350-350q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z m350 0q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z%22 horiz-adv-x%3D%22600%22 %2F%3E%3Cglyph glyph-name%3D%22menu%22 unicode%3D%22%26%23xe811%3B%22 d%3D%22M650 400q22 0 36-15t14-35-15-35-35-15l-600 0q-20 0-35 15t-15 35 14 35 36 15l600 0z m-600 100q-20 0-35 15t-15 35 14 35 36 15l600 0q22 0 36-15t14-35-15-35-35-15l-600 0z m600-300q22 0 36-15t14-35-15-35-35-15l-600 0q-20 0-35 15t-15 35 14 35 36 15l600 0z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22check%22 unicode%3D%22%26%23xe812%3B%22 d%3D%22M249 0q-34 0-56 28l-180 236q-16 24-12 52t26 46 51 14 47-28l118-154 296 474q16 24 43 30t53-8q24-16 30-43t-8-53l-350-560q-20-32-56-32z%22 horiz-adv-x%3D%22667%22 %2F%3E%3Cglyph glyph-name%3D%22cancel%22 unicode%3D%22%26%23xe813%3B%22 d%3D%22M452 194q18-18 18-43t-18-43q-18-16-43-16t-43 16l-132 152-132-152q-18-16-43-16t-43 16q-16 18-16 43t16 43l138 156-138 158q-16 18-16 43t16 43q18 16 43 16t43-16l132-152 132 152q18 16 43 16t43-16q18-18 18-43t-18-43l-138-158z%22 horiz-adv-x%3D%22470%22 %2F%3E%3Cglyph glyph-name%3D%22cancel-circled%22 unicode%3D%22%26%23xe814%3B%22 d%3D%22M420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m86-420l154 154-86 86-154-152-152 152-88-86 154-154-154-152 88-86 152 152 154-152 86 86z%22 horiz-adv-x%3D%22840%22 %2F%3E%3Cglyph glyph-name%3D%22cancel-squared%22 unicode%3D%22%26%23xe815%3B%22 d%3D%22M700 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l600 0z m-146-638l86 86-154 152 154 154-86 86-154-152-152 152-88-86 154-154-154-152 88-86 152 152z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22plus%22 unicode%3D%22%26%23xe816%3B%22 d%3D%22M550 400q30 0 30-50t-30-50l-210 0 0-210q0-30-50-30t-50 30l0 210-210 0q-30 0-30 50t30 50l210 0 0 210q0 30 50 30t50-30l0-210 210 0z%22 horiz-adv-x%3D%22580%22 %2F%3E%3Cglyph glyph-name%3D%22plus-circled%22 unicode%3D%22%26%23xe817%3B%22 d%3D%22M420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m52-470l200 0 0 102-200 0 0 202-102 0 0-202-202 0 0-102 202 0 0-202 102 0 0 202z%22 horiz-adv-x%3D%22840%22 %2F%3E%3Cglyph glyph-name%3D%22plus-squared%22 unicode%3D%22%26%23xe818%3B%22 d%3D%22M700 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l600 0z m-50-450l0 100-200 0 0 200-100 0 0-200-200 0 0-100 200 0 0-200 100 0 0 200 200 0z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22minus%22 unicode%3D%22%26%23xe819%3B%22 d%3D%22M550 400q30 0 30-50t-30-50l-520 0q-30 0-30 50t30 50l520 0z%22 horiz-adv-x%3D%22580%22 %2F%3E%3Cglyph glyph-name%3D%22minus-circled%22 unicode%3D%22%26%23xe81a%3B%22 d%3D%22M420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m252-368l-504 0 0-102 504 0 0 102z%22 horiz-adv-x%3D%22840%22 %2F%3E%3Cglyph glyph-name%3D%22minus-squared%22 unicode%3D%22%26%23xe81b%3B%22 d%3D%22M700 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l600 0z m-50-450l0 100-500 0 0-100 500 0z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22help%22 unicode%3D%22%26%23xe81c%3B%22 d%3D%22M494 740q86-62 86-184 0-64-42-124-12-20-88-80l-46-30q-40-34-48-60-6-16-8-44 0-14-16-14l-128 0q-16 0-16 12 4 98 28 124 16 22 48 48t56 42l24 14q22 16 34 34 28 44 28 70 0 40-26 78-28 36-92 36-68 0-94-44-28-42-28-92l-166 0q6 162 114 232 70 42 166 42 130 0 214-60z m-216-636q44 0 73-30t27-74q-2-46-32-73t-74-25q-44 0-73 29t-27 75 32 73 74 25z%22 horiz-adv-x%3D%22580%22 %2F%3E%3Cglyph glyph-name%3D%22help-circled%22 unicode%3D%22%26%23xe81d%3B%22 d%3D%22M454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m-2-740q30 0 49 19t19 47q2 30-17 49t-49 19l-2 0q-28 0-47-18t-21-46q0-30 19-49t47-21l2 0z m166 328q26 34 26 78 0 78-54 116-52 38-134 38-64 0-104-26-68-42-72-146l0-4 110 0 0 4q0 26 16 54 16 24 54 24 40 0 52-20 16-20 16-44 0-18-16-40-8-12-20-20l-6-4q-6-4-16-11t-20-15-21-17-17-17q-14-20-18-78l0-8 108 0 0 4q0 12 4 28 6 20 28 36l28 18q46 34 56 50z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22info%22 unicode%3D%22%26%23xe81e%3B%22 d%3D%22M352 850q48 0 74-27t26-69q0-50-39-88t-95-38q-48 0-74 26t-24 72q0 46 35 85t97 39z m-206-1000q-100 0-54 178l60 254q14 56 0 56-12 0-54-18t-72-38l-26 44q90 78 189 126t151 48q78 0 36-162l-70-266q-16-64 6-64 44 0 118 60l30-40q-84-86-175-132t-139-46z%22 horiz-adv-x%3D%22460%22 %2F%3E%3Cglyph glyph-name%3D%22info-circled%22 unicode%3D%22%26%23xe81f%3B%22 d%3D%22M454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m52-152q-42 0-65-24t-23-50q-2-28 15-44t49-16q38 0 61 22t23 54q0 58-60 58z m-120-594q30 0 84 26t106 78l-18 24q-48-36-72-36-14 0-4 38l42 160q26 96-22 96-30 0-89-29t-115-75l16-26q52 34 74 34 12 0 0-34l-36-152q-26-104 34-104z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22back%22 unicode%3D%22%26%23xe820%3B%22 d%3D%22M750 540q40 0 70-29t30-71l0-290q0-40-30-70t-70-30l-690 0 0 140 650 0 0 210-500 0 0-110-210 180 210 180 0-110 540 0z%22 horiz-adv-x%3D%22850%22 %2F%3E%3Cglyph glyph-name%3D%22home%22 unicode%3D%22%26%23xe821%3B%22 d%3D%22M888 336q16-16 11-27t-27-11l-84 0 0-310q0-14-1-21t-8-13-23-6l-204 0 0 310-204 0 0-310-194 0q-28 0-35 10t-7 30l0 310-84 0q-22 0-27 11t11 27l400 402q16 16 38 16t38-16z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22link%22 unicode%3D%22%26%23xe822%3B%22 d%3D%22M294 116q14 14 34 14t36-14q32-34 0-70l-42-40q-56-56-132-56-78 0-134 56t-56 132q0 78 56 134l148 148q70 68 144 77t128-43q16-16 16-36t-16-36q-36-32-70 0-50 48-132-34l-148-146q-26-26-26-64t26-62q26-26 63-26t63 26z m450 574q56-56 56-132 0-78-56-134l-158-158q-74-72-150-72-62 0-112 50-14 14-14 34t14 36q14 14 35 14t35-14q50-48 122 24l158 156q28 28 28 64 0 38-28 62-24 26-56 31t-60-21l-50-50q-16-14-36-14t-34 14q-34 34 0 70l50 50q54 54 127 51t129-61z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22attach%22 unicode%3D%22%26%23xe823%3B%22 d%3D%22M244-140q-102 0-170 72-72 70-74 166t84 190l496 496q80 80 174 54 44-12 79-47t47-79q26-96-54-176l-474-474q-40-40-88-46-48-4-80 28-30 24-27 74t47 92l332 334q24 26 50 0t0-50l-332-332q-44-44-20-70 12-8 24-6 24 4 46 26l474 474q50 50 34 108-16 60-76 76-54 14-108-36l-494-494q-66-76-64-143t52-117q50-48 117-50t141 62l496 494q24 24 50 0 26-22 0-48l-496-496q-82-82-186-82z%22 horiz-adv-x%3D%22939%22 %2F%3E%3Cglyph glyph-name%3D%22lock%22 unicode%3D%22%26%23xe824%3B%22 d%3D%22M640 476q20 0 40-19t20-41l0-390q0-48-48-66l-60-18q-42-16-96-16l-290 0q-56 0-98 16l-60 18q-48 18-48 66l0 390q0 22 15 41t35 19l100 0 0 70q0 110 51 170t149 60 149-60 51-170l0-70 90 0z m-390 90l0-90 200 0 0 90q0 52-27 81t-73 29-73-29-27-81z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22lock-open%22 unicode%3D%22%26%23xe825%3B%22 d%3D%22M640 450q20 0 40-20t20-40l0-390q0-20-14-39t-34-25l-60-20q-52-16-96-16l-290 0q-46 0-98 16l-60 20q-20 6-34 25t-14 39l0 390q0 22 15 41t35 19l400 0 0 140q0 110-100 110t-100-110l0-40-100 0 0 20q0 110 51 170t149 60q200 0 200-230l0-120 90 0z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22eye%22 unicode%3D%22%26%23xe826%3B%22 d%3D%22M500 630q92 0 177-25t141-62 99-77 63-71 20-45-20-44-63-71-99-78-141-62-177-25-177 25-141 62-99 78-63 71-20 44 20 45 63 71 99 77 141 62 177 25z m0-494q92 0 157 63t65 151q0 90-65 153t-157 63-157-63-65-153q0-88 65-151t157-63z m0 214q8-8 37-2t50 11 25-9q0-44-33-75t-79-31-78 31-32 75q0 46 32 77t78 31q14 0 10-23t-12-47 2-38z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22tag%22 unicode%3D%22%26%23xe827%3B%22 d%3D%22M944 830q36-106-8-199t-128-157l18-24q16-28 6-54l-48-158q-12-30-36-46l-464-328q-42-30-64 4l-210 304q-12 18-9 39t21 33l464 328q26 18 54 18l158 0q30 0 48-26l28-40q168 130 114 286-10 28 18 40 32 8 38-20z m-216-468q40 32 34 80l-32-16q-8-4-12-4-18 0-28 18-12 30 16 40l24 14q-48 34-92 0-28-18-34-51t14-61q18-26 51-32t59 12z%22 horiz-adv-x%3D%22960%22 %2F%3E%3Cglyph glyph-name%3D%22bookmark%22 unicode%3D%22%26%23xe828%3B%22 d%3D%22M310 800q22 0 36-15t14-35l0-850-180 180-180-180 0 850q0 50 40 50l270 0z%22 horiz-adv-x%3D%22360%22 %2F%3E%3Cglyph glyph-name%3D%22bookmarks%22 unicode%3D%22%26%23xe829%3B%22 d%3D%22M500 850q20 0 35-15t15-35l0-850-150 180 0 620q0 20-15 35t-35 15l-100 0q0 50 40 50l210 0z m-250-150q20 0 35-15t15-35l0-800-150 180-150-180 0 800q0 50 40 50l210 0z%22 horiz-adv-x%3D%22550%22 %2F%3E%3Cglyph glyph-name%3D%22flag%22 unicode%3D%22%26%23xe82a%3B%22 d%3D%22M874 616q14 6 22-1t0-19q-96-138-164-213t-110-90-73-2-60 37-63 40-93-4-139-86l90-352-100 0-184 720 92 34q90 66 152 86t98 3 64-51 62-71 79-62 129-20 198 51z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22thumbs-up%22 unicode%3D%22%26%23xe82b%3B%22 d%3D%22M582 480q2-6 58-13t108-24 52-47q0-72-61-284t-107-212q-144 0-288 42t-144 88l0 342q0 14 15 34t46 45 53 41 62 43 46 31q50 34 104 100t85 104 41 26q48-76 29-137t-59-119-40-60z m-432-4q14 0 0-14-50-50-50-104l0-318q0-50 52-104 10-10-2-10-26 0-55 8t-62 45-33 99l0 242q0 62 33 100t63 47 54 9z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22thumbs-down%22 unicode%3D%22%26%23xe82c%3B%22 d%3D%22M218 218q-2 6-57 13t-108 24-53 47q0 72 62 285t106 213q144 0 288-43t144-89l0-342q0-10-8-24t-25-30-32-29-42-32-41-29-41-28l-33-22q-50-34-104-100t-85-104-41-26q-48 76-29 137t59 119 40 60z m432 4q-12 0 2 14 48 50 48 104l0 318q0 50-52 104-10 10 2 10 26 0 55-8t62-45 33-99l0-242q0-48-18-81t-45-48-48-21-39-6z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22download%22 unicode%3D%22%26%23xe82d%3B%22 d%3D%22M968 198q18-10 27-32t3-40l-28-154q-4-20-22-33t-40-13l-816 0q-22 0-40 13t-22 33l-28 154q-10 48 32 72l158 108 98 0-170-130 178 0q8 0 12-8l40-110 300 0 40 110q8 8 12 8l178 0-170 130 98 0z m-208 322l-260-244-260 244 166 0 0 256 190 0 0-256 164 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22upload%22 unicode%3D%22%26%23xe82e%3B%22 d%3D%22M500 776l260-244-164 0 0-256-190 0 0 256-166 0z m468-578q18-10 27-32t3-40l-28-154q-4-20-22-33t-40-13l-816 0q-22 0-40 13t-22 33l-28 154q-10 48 32 72l158 108 98 0-170-130 178 0q8 0 12-8l40-110 300 0 40 110q8 8 12 8l178 0-170 130 98 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22upload-cloud%22 unicode%3D%22%26%23xe82f%3B%22 d%3D%22M760 494q100 0 170-68t70-166-70-166-170-68l-190 0 0 190 106 0-176 230-174-230 104 0 0-190-248 0q-74 0-128 52t-54 124q0 74 53 126t129 52q14 0 20-2-2 12-2 38 0 108 78 184t188 76q90 0 160-52t94-134q28 4 40 4z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22reply%22 unicode%3D%22%26%23xe830%3B%22 d%3D%22M900 10q-86 152-208 197t-330 45l0-218-362 334 362 322 0-192q90 0 168-27t131-70 96-95 69-104 44-95 24-69z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22reply-all%22 unicode%3D%22%26%23xe831%3B%22 d%3D%22M362 556l-212-188 212-196 0-138-362 334 362 322 0-134z m250-58q104 0 182-50t115-122 60-144 27-122l4-50q-86 154-168 198t-220 44l0-218-362 334 362 322 0-192z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22forward%22 unicode%3D%22%26%23xe832%3B%22 d%3D%22M540 252q-210 0-332-45t-208-197q4 20 13 53t50 117 96 148 156 117 225 53l0 192 360-322-360-334 0 218z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22quote%22 unicode%3D%22%26%23xe833%3B%22 d%3D%22M146 680q146 0 184-146 38-140-40-302-80-168-224-204-32-8-66-8l0 70q112 0 182 108 54 86 26 146-16 36-62 36-60 0-103 44t-43 106 43 106 103 44z m420 0q146 0 184-146 38-140-40-302-80-168-224-204-32-8-66-8l0 70q112 0 182 108 54 86 26 146-16 36-62 36-60 0-103 44t-43 106 43 106 103 44z%22 horiz-adv-x%3D%22762%22 %2F%3E%3Cglyph glyph-name%3D%22code%22 unicode%3D%22%26%23xe834%3B%22 d%3D%22M380 636q16-14 16-32t-16-30l-246-224 246-226q16-12 16-30t-16-32q-30-30-60 0l-320 288 320 286q30 30 60 0z m302 0l318-286-318-288q-32-30-62 0-32 32 0 62l248 226-248 224q-32 30 0 62 30 30 62 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22export%22 unicode%3D%22%26%23xe835%3B%22 d%3D%22M750 60l0 56 100 82 0-188q0-20-15-35t-35-15l-750 0q-20 0-35 15t-15 35l0 550q0 22 14 36t36 14l288 0q-32-24-59-49t-39-39l-10-12-130 0 0-450 650 0z m-82 348q-166 0-242-41t-160-181q0 8 1 22t9 56 22 79 44 83 70 79 107 56 149 23l0 156 332-250-332-260 0 178z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22pencil%22 unicode%3D%22%26%23xe836%3B%22 d%3D%22M718 680q32-32 47-64t15-48l0-16-252-252-290-288-238-52 50 240 290 288 252 252q54 12 126-60z m-494-640l24 24q-2 44-52 94-22 22-45 35t-35 13l-14 2-22-24-18-80q28-16 46-34 24-24 36-48z%22 horiz-adv-x%3D%22780%22 %2F%3E%3Cglyph glyph-name%3D%22feather%22 unicode%3D%22%26%23xe837%3B%22 d%3D%22M60-138q-6-20-26-8-18 8-16 34 4 100 50 226-100 154-52 316 10-32 32-78t44-80 32-30q8 4 0 83t-11 166 25 157q22 44 80 94t104 70q-24-46-33-94t-4-78 21-32q12 0 84 120t106 122q46 4 114-29t82-65q12-24 0-79t-40-83q-44-44-146-62t-114-24q-16-10 12-34 54-48 176-20-56-80-136-114t-132-38-54-10q-4-24 49-54t101-14q-30-56-63-84t-54-35-76-11-85-8z%22 horiz-adv-x%3D%22698%22 %2F%3E%3Cglyph glyph-name%3D%22print%22 unicode%3D%22%26%23xe838%3B%22 d%3D%22M66 526q-26 0-22 22 4 10 12 14 2 0 49 17t93 32 58 15l44 0 0 150 380 0 0-150 46 0q12 0 57-15t92-32 49-17q18-8 12-26-4-10-20-10l-850 0z m860-56q20 0 37-19t17-41l0-174q0-22-17-41t-37-19l-100 0 44-250-760 0 44 250-98 0q-20 0-38 19t-18 41l0 174q0 22 18 41t38 19l870 0z m-716-444l560 0-70 324-420 0z%22 horiz-adv-x%3D%22980%22 %2F%3E%3Cglyph glyph-name%3D%22retweet%22 unicode%3D%22%26%23xe839%3B%22 d%3D%22M250 190l272 0 128-140-448 0q-42 0-71 30t-29 70l0 302-102 0 176 198 174-198-100 0 0-262z m650 60l100 0-174-200-176 200 102 0 0 260-274 0-128 140 450 0q40 0 70-29t30-71l0-300z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22keyboard%22 unicode%3D%22%26%23xe83a%3B%22 d%3D%22M930 650q28 0 49-21t21-49l0-460q0-30-21-50t-49-20l-860 0q-28 0-49 20t-21 50l0 460q0 28 21 49t49 21l860 0z m-380-100l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-300 150l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-300 150l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-300 150l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-50-250l0 100-100 0 0-100 100 0z m550 0l0 100-500 0 0-100 500 0z m150 0l0 100-100 0 0-100 100 0z m-150 150l100 0 0 100-100 0 0-100z m150 150l0 100-200 0 0-100 200 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22comment%22 unicode%3D%22%26%23xe83b%3B%22 d%3D%22M700 700q42 0 71-29t29-71l0-350q0-40-29-70t-71-30l-200 0 0-150-200 150-200 0q-40 0-70 30t-30 70l0 350q0 42 30 71t70 29l600 0z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22chat%22 unicode%3D%22%26%23xe83c%3B%22 d%3D%22M290 240l350 0q2 0 6 2l4 0 0-92q0-40-29-70t-71-30l-250 0-150-150 0 150-50 0q-40 0-70 30t-30 70l0 300q0 42 30 71t70 29l190 0 0-310z m610 560q42 0 71-29t29-71l0-300q0-40-29-70t-71-30l-50 0 0-150-150 150-350 0 0 400q0 42 30 71t70 29l450 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22bell%22 unicode%3D%22%26%23xe83d%3B%22 d%3D%22M632 426q16-34 40-52t45-22 44-23 35-55q22-62-74-161t-252-157q-164-58-297-45t-155 75q-20 54 12 111t18 111q-56 192-47 300t113 192q26 22 29 51t29 39q24 8 46-12t56-18q132 2 198-66t160-268z m-186-404q88 32 159 85t100 91 25 50q-8 22-49 33t-124 1-187-48q-102-38-173-87t-94-84-17-53q4-12 50-22t134-4 176 38z m-62 174q8 2 21 7t17 7l2-2q14-40-17-83t-89-63q-96-36-152 14 78 68 218 120z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22attention%22 unicode%3D%22%26%23xe83e%3B%22 d%3D%22M957-24q10-16 0-34-10-16-30-16l-892 0q-18 0-28 16-13 18-2 34l446 782q8 18 30 18t30-18z m-420 50l0 100-110 0 0-100 110 0z m0 174l0 300-110 0 0-300 110 0z%22 horiz-adv-x%3D%22962%22 %2F%3E%3Cglyph glyph-name%3D%22alert%22 unicode%3D%22%26%23xe83f%3B%22 d%3D%22M885 234q20-16 16-33t-28-23l-78-22q-24-6-40-28t-14-48l4-82q2-24-14-34t-38 0l-86 44q-22 12-47 4t-35-30l-46-88q-12-22-29-23t-33 19l-50 78q-34 48-88 20l-122-70q-22-14-32-6t-2 32l54 164q8 24-4 44t-36 22l-106 12q-24 4-29 18t15 30l86 76q20 16 20 41t-20 41l-86 76q-20 16-16 33t28 23l78 22q24 6 41 28t15 48l-6 82q0 26 15 36t37 0l80-38q24-10 49-2t37 30l46 80q12 22 30 21t30-23l50-86q12-22 35-29t45 7l136 84q22 14 30 6t0-32l-60-170q-10-22 2-41t38-21l114-12q26-2 30-16t-16-30l-86-76q-18-16-18-41t18-41z m-384-92l0 104-100 0 0-104 100 0z m0 160l0 260-100 0 0-260 100 0z%22 horiz-adv-x%3D%22901%22 %2F%3E%3Cglyph glyph-name%3D%22vcard%22 unicode%3D%22%26%23xe840%3B%22 d%3D%22M900 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-800 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l800 0z m0-700l0 600-800 0 0-600 800 0z m-450 196l0-90-250 0 0 90 250 0z m0 150l0-90-250 0 0 90 250 0z m0 150l0-90-250 0 0 90 250 0z m346-320l4-70-250 0q0 70 6 70 84 22 84 66 0 16-27 56t-27 88q0 110 90 110t90-110q0-48-28-88t-28-56q0-20 21-36t43-22z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22address%22 unicode%3D%22%26%23xe841%3B%22 d%3D%22M426 800q20 0 20-20l0-860q0-20-20-20l-46 0q-20 0-20 20l0 440-176 0q-16 0-28 6-12 2-26 12l-120 82q-10 6-10 16t10 16l120 82q14 10 26 12 8 4 28 4l176 0 0 190q0 20 20 20l46 0z m564-208q10-6 10-16t-10-16l-118-82q-22-12-26-12-14-6-28-6l-302 0-40 230 342 0q18 0 28-4t26-12z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22location%22 unicode%3D%22%26%23xe842%3B%22 d%3D%22M250 750q104 0 177-73t73-177q0-106-62-243t-126-223l-62-84q-10 12-27 35t-60 89-76 130-60 147-27 149q0 104 73 177t177 73z m0-388q56 0 96 40t40 96-40 95-96 39-95-39-39-95 39-96 95-40z%22 horiz-adv-x%3D%22500%22 %2F%3E%3Cglyph glyph-name%3D%22map%22 unicode%3D%22%26%23xe843%3B%22 d%3D%22M984 600q16-10 16-30l0-584q0-20-16-30-8-6-16-6t-18 6l-216 136-216-136q-18-10-34 0l-218 136-216-136q-16-10-34 0-16 10-16 30l0 584q0 20 16 30l234 146q18 10 34 0l216-136 218 136q16 10 32 0z m-750-450l0 506-168-104 0-506z m234-104l0 506-168 104 0-506z m234 104l0 506-170-104 0-506z m232-104l0 506-168 104 0-506z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22direction%22 unicode%3D%22%26%23xe844%3B%22 d%3D%22M848 768q8-8 11-16t-2-22-10-26-19-39-24-49q-54-112-147-286t-157-292l-66-118-54 380-380 56q442 246 696 368 20 10 48 25t39 20 25 9 23 1 17-11z m-92-96l-304-280 28-234z%22 horiz-adv-x%3D%22860%22 %2F%3E%3Cglyph glyph-name%3D%22compass%22 unicode%3D%22%26%23xe845%3B%22 d%3D%22M474 830q198 2 340-136t146-336q2-200-136-342t-338-146q-198-2-341 137t-145 337q-4 200 135 342t339 144z m12-858q156 2 266 114t108 270-115 267-269 107q-158-2-267-114t-107-270 114-267 270-107z m-234 154q4 26 12 66t41 128 77 132 125 76 141 42l60 10q-4-26-12-66t-41-128-77-132q-42-42-124-74t-142-42z m180 276q-22-20-22-48t22-50q20-22 49-22t49 22q52 52 88 186-136-36-186-88z%22 horiz-adv-x%3D%22960%22 %2F%3E%3Cglyph glyph-name%3D%22cup%22 unicode%3D%22%26%23xe846%3B%22 d%3D%22M340 760q152 0 249-41t91-87l-72-594q-2-14-34-36t-97-42-137-20-136 20-97 42-35 36l-72 594q-4 28 36 57t121 50 183 21z m0-216q72 0 137 15t98 33 33 30-33 29-98 32-137 15-137-15-98-32-33-29 33-30 98-33 137-15z%22 horiz-adv-x%3D%22681%22 %2F%3E%3Cglyph glyph-name%3D%22trash%22 unicode%3D%22%26%23xe847%3B%22 d%3D%22M50 458q122-70 330-70t330 70l-54-486q-2-14-35-36t-100-43-141-21-140 21-100 43-36 36z m488 300q94-18 158-55t64-71l0-10q0-58-112-99t-268-41-268 41-112 99l0 10q0 34 64 71t158 55l42 48q22 26 70 26l92 0q52 0 70-26z m-54-112l84 0q-92 110-104 126-14 16-32 16l-102 0q-22 0-32-16l-106-126 84 0 64 66 82 0z%22 horiz-adv-x%3D%22760%22 %2F%3E%3Cglyph glyph-name%3D%22doc%22 unicode%3D%22%26%23xe848%3B%22 d%3D%22M600 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-500 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l500 0z m0-800l0 700-500 0 0-700 500 0z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22docs%22 unicode%3D%22%26%23xe849%3B%22 d%3D%22M970 480q38-10 30-46l-150-556q-4-16-18-23t-30-3l-406 110q-16 4-24 18t-4 28l24 92-180-48q-40-10-50 26l-160 602q-10 36 28 48l454 122q16 4 30-3t18-23l66-244z m-888 190l144-542 392 106-144 540z m702-742l132 492-298 82 76-282q10-34-28-46l-196-52-26-102z%22 horiz-adv-x%3D%221001%22 %2F%3E%3Cglyph glyph-name%3D%22doc-landscape%22 unicode%3D%22%26%23xe84a%3B%22 d%3D%22M0 600q0 42 30 71t70 29l800 0q42 0 71-29t29-71l0-500q0-40-29-70t-71-30l-800 0q-40 0-70 30t-30 70l0 500z m900 0l-800 0 0-500 800 0 0 500z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22doc-text%22 unicode%3D%22%26%23xe84b%3B%22 d%3D%22M212 308l0 90 280 0 0-90-280 0z m388 492q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-500 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l500 0z m0-800l0 700-500 0 0-700 500 0z m-110 592l0-88-280 0 0 88 280 0z m0-392l0-88-280 0 0 88 280 0z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22doc-text-inv%22 unicode%3D%22%26%23xe84c%3B%22 d%3D%22M600 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-500 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l500 0z m-460-208l0-88 420 0 0 88-420 0z m420-480l0 88-420 0 0-88 420 0z m0 196l0 90-418 0 0-90 418 0z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22newspaper%22 unicode%3D%22%26%23xe84d%3B%22 d%3D%22M700 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l600 0z m0-800l0 700-600 0 0-700 600 0z m-250 250l0-50-250 0 0 50 250 0z m150 200l0-50-200 0 0 50 200 0z m-200 50l0 100 200 0 0-100-200 0z m-50 100l0-200-150 0 0 200 150 0z m-50-250l0-50-100 0 0 50 100 0z m50-50l0 50 250 0 0-50-250 0z m250-150l0-50-400 0 0 50 400 0z m-100 50l0 50 100 0 0-50-100 0z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22book-open%22 unicode%3D%22%26%23xe84e%3B%22 d%3D%22M340 238l0-68-200 80 0 68z m0 208l0-68-200 80 0 68z m538 346q22-12 22-42l0-640q0-34-32-46l-398-160q-8-2-10-2t-5-1-5-1-5 1-5 1l-10 2-398 160q-32 12-32 46l0 640q0 30 22 42 22 16 46 6l382-154 382 154q24 10 46-6z m-478-788l0 560-320 128 0-560z m420 128l0 560-320-128 0-560z m-60 186l0-68-200-80 0 68z m0 208l0-68-200-80 0 68z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22book%22 unicode%3D%22%26%23xe84f%3B%22 d%3D%22M682 594q18-8 18-28l0-562q0-14-12-25t-28-11q-46 0-46 36l0 522q0 12-12 18l-404 216q-32 10-68-10-44-20-56-44l408-228q18-8 18-28l0-550q0-22-18-28-6-4-16-4-14 0-20 4-8 6-202 127t-212 131q-26 18-26 34l-6 524q0 28 14 52 28 46 102 77t116 9z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22folder%22 unicode%3D%22%26%23xe850%3B%22 d%3D%22M954 500q32 0 40-12t6-36l-42-452q-2-24-12-37t-42-13l-806 0q-52 0-56 50l-42 452q-2 24 6 36t40 12l908 0z m-34 110l10-40-846 0 14 132q4 20 20 34t36 14l164 0q52 0 86-34l30-30q32-36 86-36l340 0q20 0 38-12t22-28z%22 horiz-adv-x%3D%221001%22 %2F%3E%3Cglyph glyph-name%3D%22archive%22 unicode%3D%22%26%23xe851%3B%22 d%3D%22M840 600l0-50-696 0 0 50q0 22 13 35t25 15l608 0q6 0 14-1t22-14 14-35z m-148 150q6 0 14-1t22-14 14-35l-498 0q0 22 13 35t25 15l410 0z m248-200q34-32 38-46 6-18 0-54l-76-450q-4-22-20-35t-28-15l-710 0q-52 0-60 50-6 26-39 223t-39 227q-10 22-3 44t10 26 21 20l10 10 30 30 0-80 836 0 0 80z m-248-270l0 100-70 0 0-80-260 0 0 80-68 0 0-100q0-50 48-50l300 0q22 0 35 12t13 24z%22 horiz-adv-x%3D%22981%22 %2F%3E%3Cglyph glyph-name%3D%22box%22 unicode%3D%22%26%23xe852%3B%22 d%3D%22M870 750q12 0 21-9t9-21l0-120-900 0 0 120q0 12 9 21t21 9l840 0z m-820-730l0 530 800 0 0-530q0-30-21-50t-49-20l-660 0q-28 0-49 20t-21 50z m250 430l0-100 300 0 0 100-300 0z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22rss%22 unicode%3D%22%26%23xe853%3B%22 d%3D%22M0 730q314 0 537-223t223-537l-118 0q0 266-188 453t-454 187l0 120z m0-238q218 0 371-153t153-369l-118 0q0 166-119 285t-287 119l0 118z m114-296q46 0 80-33t34-81q0-46-34-79t-80-33-80 33-34 79q0 48 34 81t80 33z%22 horiz-adv-x%3D%22760%22 %2F%3E%3Cglyph glyph-name%3D%22phone%22 unicode%3D%22%26%23xe854%3B%22 d%3D%22M461 290q162 162 118 206l-8 8q-30 30-41 48t-4 54 49 88q20 24 37 39t35 16 30 1 29-13 24-18 26-25 21-22q48-48-6-194t-204-294q-150-150-295-205t-193-7q-2 2-23 22t-25 25-18 24-13 31 2 30 15 35 38 37q42 34 70 47t54 2 35-18 39-37q44-44 208 120z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22cog%22 unicode%3D%22%26%23xe855%3B%22 d%3D%22M760 350q0-72 80-122-12-40-34-82-70 18-136-44-54-58-34-136-40-20-84-36-46 82-132 82t-132-82q-44 16-84 36 20 80-34 136-54 54-136 34-14 26-34 82 82 52 82 132 0 72-82 124 20 56 34 82 74-18 136 44 54 56 34 136 42 22 84 34 46-80 132-80t132 80q42-12 84-34-20-78 34-136 66-62 136-44 22-42 34-82-80-50-80-124z m-340-182q76 0 129 53t53 129-53 130-129 54-129-54-53-130 53-129 129-53z%22 horiz-adv-x%3D%22840%22 %2F%3E%3Cglyph glyph-name%3D%22tools%22 unicode%3D%22%26%23xe856%3B%22 d%3D%22M155 506q-8-8-11-22t-3-25-2-11q-2-2-17-15t-19-17q-16-14-28 4l-70 76q-11 12 2 24 2 2 18 14t20 16q6 6 27 6t37 14q14 14 18 38t10 30q2 0 9 7t26 22 41 31q134 90 186 96 122 0 148-2 12 0-8-8-120-52-152-76-80-56-36-114 34-46 38-48 8-8-2-14-2-2-38-35t-38-35q-14-8-18-4-42 48-71 60t-67-12z m286-26l410-476q18-22-2-38l-48-42q-22-14-38 4l-414 472q-8 8 0 20l72 62q12 8 20-2z m554 202q16-104-16-166-50-88-154-62-56 12-100-32l-82-78-68 78 68 70q24 24 31 53t6 65 5 58q12 56 140 112 12 6 18-3t2-15q-12-12-46-80-14-10-12-35t40-53q58-40 96 22 6 12 26 41t22 33q4 10 13 9t11-17z m-858-684l254 248 76-86-246-242q-20-20-38-4l-46 46q-22 18 0 38z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22share%22 unicode%3D%22%26%23xe857%3B%22 d%3D%22M650 200q62 0 106-43t44-107q0-62-44-106t-106-44-106 44-44 106q0 6 1 14t1 12l-260 156q-42-32-92-32-62 0-106 44t-44 106 44 106 106 44q54 0 92-30l260 156q0 4-1 12t-1 12q0 62 44 106t106 44 106-43 44-107q0-62-44-106t-106-44q-52 0-90 32l-262-156q2-8 2-26 0-16-2-24l262-156q36 30 90 30z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22shareable%22 unicode%3D%22%26%23xe858%3B%22 d%3D%22M340 350q0 68 47 114t113 46 113-46 47-114q0-66-47-113t-113-47-113 47-47 113z m-114 60q-14-60-66-60l-160 0 0 120 118 0q40 124 145 202t237 78q164 0 284-116 16-18 16-43t-16-43q-18-16-43-16t-43 16q-78 82-198 82-100 0-176-62t-98-158z m614-60l160 0 0-120-118 0q-40-124-144-202t-238-78q-164 0-282 118-18 18-18 43t18 41q16 18 41 18t43-18q82-82 198-82 100 0 176 63t98 157q12 60 66 60z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22basket%22 unicode%3D%22%26%23xe859%3B%22 d%3D%22M150 0q0 40 30 70t70 30q42 0 71-30t29-70q0-42-29-71t-71-29q-40 0-70 29t-30 71z m500 0q0 40 30 70t70 30q42 0 71-30t29-70q0-42-29-71t-71-29q-40 0-70 29t-30 71z m-322 236q-36-10-34-23t44-13l562 0 0-76q0-20-20-20l-654 0q-20 0-20 20l0 76-10 46-98 454-98 0 0 80q0 20 20 20l156 0q20 0 20-20l0-86 704 0 0-274q0-22-18-26z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22bag%22 unicode%3D%22%26%23xe85a%3B%22 d%3D%22M835 668q28-26 24-60l-98-648q-8-30-38-30l-586 0q-28 0-40 30-94 620-96 648-5 34 22 60 6 6 54 43t56 43q18 16 56 16l480 0q38 0 56-16 78-58 110-86z m-406-436q56 0 98 34t63 89 30 89 13 66l-92 0q-38-188-112-188t-112 188l-92 0q46-278 204-278z m-352 368l704 0-110 116-484 0z%22 horiz-adv-x%3D%22859%22 %2F%3E%3Cglyph glyph-name%3D%22calendar%22 unicode%3D%22%26%23xe85b%3B%22 d%3D%22M800 700q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-700 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l46 0 0-100 160 0 0 100 290 0 0-100 160 0 0 100 44 0z m0-700l0 400-700 0 0-400 700 0z m-540 800l0-170-70 0 0 170 70 0z m450 0l0-170-70 0 0 170 70 0z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22login%22 unicode%3D%22%26%23xe85c%3B%22 d%3D%22M800 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-450 0q-40 0-69 30t-29 70l0 100 98 0 0-100 450 0 0 700-450 0 0-150-98 0 0 150q0 42 29 71t69 29l450 0z m-350-670l0 120-450 0 0 150 450 0 0 120 200-194z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22logout%22 unicode%3D%22%26%23xe85d%3B%22 d%3D%22M502 0l0 100 98 0 0-100q0-40-29-70t-71-30l-400 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l400 0q42 0 71-29t29-71l0-150-98 0 0 150-402 0 0-700 402 0z m398 326l-198-196 0 120-450 0 0 150 450 0 0 120z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22mic%22 unicode%3D%22%26%23xe85e%3B%22 d%3D%22M620 488q20 0 20-20l0-138q0-92-69-164t-201-84l0-132 130 0q20 0 20-20l0-60q0-20-20-20l-360 0q-20 0-20 20l0 60q0 20 20 20l130 0 0 132q-132 12-201 84t-69 164l0 138q0 20 20 20l30 0q20 0 20-20l0-138q0-66 59-123t191-57 191 57 59 123l0 138q0 20 20 20l30 0z m-300-238q-80 0-115 25t-35 55l0 158 300 0 0-158q0-30-35-55t-115-25z m150 520l0-212-300 0 0 212q0 30 35 55t115 25 115-25 35-55z%22 horiz-adv-x%3D%22640%22 %2F%3E%3Cglyph glyph-name%3D%22mute%22 unicode%3D%22%26%23xe85f%3B%22 d%3D%22M868 778q16-16 16-36t-16-36l-782-782q-18-14-34-14-18 0-36 14-16 14-16 36t16 36l782 782q34 32 70 0z m-216-386l50 50q74-92 101-172t-7-116q-24-24-75-57t-131-71-161-45-165 23l278 276q44-32 88-54t67-25 33 1q6 10 2 34t-26 68-54 88z m-276 62l-270-270q-40 132 28 283t132 215q34 32 105 11t159-85l-52-50q-58 38-105 53t-57 5q-4-8-2-28t19-58 43-76z%22 horiz-adv-x%3D%22884%22 %2F%3E%3Cglyph glyph-name%3D%22sound%22 unicode%3D%22%26%23xe860%3B%22 d%3D%22M176 588q42 42 149-5t217-157 157-217 5-149q-28-28-92-67t-156-78-194-29-176 84-84 176 29 194 78 156 67 92z m464-480q8 10-3 49t-49 101-96 118q-56 58-118 96t-101 49-49 3q-8-10 3-49t49-101 94-120q58-56 120-94t101-49 49-3z m6 394q-18 0-34 16-16 14-16 35t16 35l94 96q36 32 72 0 32-36 0-72l-96-94q-16-16-36-16z m-180 124q-18 10-23 30t5 38l54 96q26 44 68 20 18-10 23-30t-5-38l-54-96q-14-26-42-26-14 0-26 6z m438-150q10-18 4-38t-24-30l-96-54q-16-8-24-8-28 0-44 26-10 18-4 38t24 30l96 54q18 10 38 5t30-23z%22 horiz-adv-x%3D%22910%22 %2F%3E%3Cglyph glyph-name%3D%22volume%22 unicode%3D%22%26%23xe861%3B%22 d%3D%22M896 180q0-34-24-57t-56-23l-780 0q-22 0-31 5t-3 15 24 20l802 452q28 18 48 7t20-45l0-374z%22 horiz-adv-x%3D%22896%22 %2F%3E%3Cglyph glyph-name%3D%22clock%22 unicode%3D%22%26%23xe862%3B%22 d%3D%22M460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-820q150 0 255 106t105 254q0 150-105 255t-255 105q-148 0-254-105t-106-255q0-148 106-254t254-106z m36 620l0-244 150-150-50-50-170 170 0 274 70 0z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22hourglass%22 unicode%3D%22%26%23xe863%3B%22 d%3D%22M560 622q0-44-48-96t-97-99-49-77 49-76 97-97 48-97l0-118q0-34-86-73t-194-39-194 39-86 73l0 118q0 46 48 97t97 97 49 76-49 77-97 99-48 96l0 118q0 32 87 71t193 39 193-39 87-71l0-118z m-482 112l-18-14q-4-8 4-14 92-52 216-52 132 0 220 50 14 10-16 30-96 54-202 54-120 0-204-54z m228-384q0 18 4 33t18 33 20 25 31 31 29 28q92 92 92 122l2 50q-100-54-222-54t-222 54l4-50q0-32 90-122 6-6 22-21t23-22l19-19t17-21 11-20 9-23 3-24q0-10-1-19t-6-18-8-16-11-17l-12-15t-15-16-16-15-18-16-17-16q-90-90-90-122l0-66q8 4 66 23t92 43 34 58q0 30 26 30t26-30q0-34 33-58t94-43 67-23l0 66q0 30-92 122-4 4-21 20t-22 21-18 19-18 22-12 20-9 23-2 23z%22 horiz-adv-x%3D%22560%22 %2F%3E%3Cglyph glyph-name%3D%22lamp%22 unicode%3D%22%26%23xe864%3B%22 d%3D%22M209-110l0 104 282 0 0-104q-70-42-142-40-70-2-140 40z m276 164l-270 0q0 72-36 140t-78 113-74 112-26 139q8 120 94 206t254 86q170 0 255-86t95-206q4-60-16-113t-52-96-65-85-57-96-24-114z m-378 496q-4-4 0-20t2-20 5-19 6-18 8-18 11-19 13-19 14-19 15-21 16-23q88-122 112-212l82 0q24 94 112 212 4 6 25 35t25 36 17 29 16 33 6 28 1 35q-16 196-244 196-226 0-242-196z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22light-down%22 unicode%3D%22%26%23xe865%3B%22 d%3D%22M350 510q68 0 114-47t46-113q0-68-46-114t-114-46q-66 0-113 46t-47 114q0 66 47 113t113 47z m0-264q44 0 73 30t29 74q0 42-29 72t-73 30q-42 0-72-30t-30-72q0-44 30-74t72-30z m-300 144q20 0 35-12t15-28q0-40-50-40t-50 40q0 16 15 28t35 12z m546 204q28-28-8-64-14-14-33-16t-29 10q-12 12-10 31t16 33q36 34 64 6z m54-204q20 0 35-12t15-28q0-40-50-40-48 0-48 40 0 16 14 28t34 12z m-300-290q16 0 28-15t12-35-12-35-28-15-28 15-12 35 12 35 28 15z m-238 62q36 36 64 8t-8-64q-14-14-33-16t-29 8q-30 28 6 64z m-10 430q28 28 64-8 14-14 16-33t-8-29q-30-28-64 6-36 36-8 64z m432-484q-34 36-6 64t64-8q14-14 16-33t-10-29q-30-28-64 6z m-184 492q-16 0-28 15t-12 35 12 35 28 15 28-15 12-35-12-35-28-15z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22light-up%22 unicode%3D%22%26%23xe866%3B%22 d%3D%22M950 390q20 0 35-12t15-28q0-40-50-40l-48 0q-50 0-50 40 0 16 15 28t35 12l48 0z m-450 234q114 0 195-80t81-194q0-116-81-196t-195-80-194 80-80 196q0 114 80 194t194 80z m0-474q82 0 141 58t59 142q0 82-59 141t-141 59-141-59-59-141q0-84 59-142t141-58z m-350 200q0-40-50-40l-50 0q-50 0-50 40 0 16 15 28t35 12l50 0q20 0 35-12t15-28z m350 350q-16 0-28 15t-12 35l0 50q0 20 12 35t28 15 28-15 12-35l0-50q0-20-12-35t-28-15z m0-700q16 0 28-15t12-35l0-50q0-20-12-35t-28-15-28 15-12 35l0 50q0 20 12 35t28 15z m368 660l-34-34q-34-34-64-8-28 28 8 64 4 6 34 36 36 34 64 6t-8-64z m-700-588q14 16 33 18t29-10q12-12 10-31t-16-33l-36-36q-14-14-33-16t-29 10q-30 28 6 64 6 4 36 34z m20 646l36-36q36-36 6-64-10-10-29-8t-33 16q-30 30-36 34-14 14-16 33t10 31q10 12 29 10t33-16z m590-702q-36 36-8 64t64-8l34-34q36-36 8-64t-64 6q-30 30-34 36z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22adjust%22 unicode%3D%22%26%23xe867%3B%22 d%3D%22M950 390q20 0 35-12t15-28q0-40-50-40l-48 0q-50 0-50 40 0 16 15 28t35 12l48 0z m-450 234q114 0 195-80t81-194q0-116-81-196t-195-80-194 80-80 196q0 114 80 194t194 80z m6-474l0 400q-86 0-146-59t-60-141q0-84 60-142t146-58z m-356 200q0-40-50-40l-50 0q-50 0-50 40 0 16 15 28t35 12l50 0q20 0 35-12t15-28z m350 350q-16 0-28 15t-12 35l0 50q0 20 12 35t28 15 28-15 12-35l0-50q0-20-12-35t-28-15z m0-700q16 0 28-15t12-35l0-50q0-20-12-35t-28-15-28 15-12 35l0 50q0 20 12 35t28 15z m368 660l-34-34q-34-34-64-8-28 28 8 64 4 6 34 36 36 34 64 6t-8-64z m-700-588q14 16 33 18t29-10q12-12 10-31t-16-33l-36-36q-14-14-33-16t-29 10q-30 28 6 64 6 4 36 34z m20 646l36-36q36-36 6-64-10-10-29-8t-33 16q-30 30-36 34-14 14-16 33t10 31q10 12 29 10t33-16z m590-702q-36 36-8 64t64-8l34-34q36-36 8-64t-64 6q-30 30-34 36z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22block%22 unicode%3D%22%26%23xe868%3B%22 d%3D%22M480 830q200 0 340-140t140-340q0-198-140-339t-340-141q-198 0-339 141t-141 339q0 200 141 340t339 140z m258-220z m-622-260q0-132 82-230l514 514q-100 82-232 82-152 0-258-107t-106-259z m106-258z m258-106q152 0 259 107t107 257q0 130-82 232l-514-514q98-82 230-82z%22 horiz-adv-x%3D%22960%22 %2F%3E%3Cglyph glyph-name%3D%22resize-full%22 unicode%3D%22%26%23xe869%3B%22 d%3D%22M476 746l316 0 0-316-100 124-146-152-100 100 152 146z m-230-444l100-100-152-146 122-100-316 0 0 316 100-122z%22 horiz-adv-x%3D%22792%22 %2F%3E%3Cglyph glyph-name%3D%22resize-small%22 unicode%3D%22%26%23xe86a%3B%22 d%3D%22M156 146l-106 100 296 0 0-296-100 106-146-156-100 100z m744 554l-154-144 104-100-294 0 0 294 100-104 144 154z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22popup%22 unicode%3D%22%26%23xe86b%3B%22 d%3D%22M700 750q42 0 71-29t29-71l0-400q0-40-29-70t-71-30l-400 0q-40 0-70 30t-30 70l0 402q0 40 29 69t71 29l400 0z m0-500l0 400-400 0 0-400 400 0z m-600 100l0-300 300 0 0-100-300 0q-40 0-70 30t-30 70l0 300 100 0z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22publish%22 unicode%3D%22%26%23xe86c%3B%22 d%3D%22M900 800q42 0 71-30t29-70l0-600q0-42-29-71t-71-29l-198 0 0 98 200 0 0 462-802 0 0-462 200 0 0-98-200 0q-40 0-70 29t-30 71l0 600q0 40 30 70t70 30l800 0z m-770-168q38 0 38 38 0 16-11 26t-27 10-27-11-11-25q0-16 11-27t27-11z m100 0q38 0 38 38 0 16-11 26t-27 10-27-11-11-25q0-16 11-27t27-11z m672 6l0 62-602 0 0-62 602 0z m-404-198l242-240-150 0 0-300-184 0 0 300-150 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22window%22 unicode%3D%22%26%23xe86d%3B%22 d%3D%22M900 750q42 0 71-30t29-70l0-600q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 600q0 40 30 70t70 30l800 0z m-670-94q-16 0-27-11t-11-25q0-16 11-27t27-11q38 0 38 38 0 16-11 26t-27 10z m-138-36q0-16 11-27t27-11q38 0 38 38 0 16-11 26t-27 10-27-11-11-25z m810-570l0 460-802 0 0-460 802 0z m0 540l0 60-602 0 0-60 602 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22arrow-combo%22 unicode%3D%22%26%23xe86e%3B%22 d%3D%22M230 850l230-364-460 0z m0-1000l-230 366 460 0z%22 horiz-adv-x%3D%22460%22 %2F%3E%3Cglyph glyph-name%3D%22down-circled%22 unicode%3D%22%26%23xe86f%3B%22 d%3D%22M460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-820q148 0 254 106t106 254q0 150-106 255t-254 105-254-105-106-255q0-148 106-254t254-106z m90 554l0-206 112 0-202-190-202 190 112 0 0 206 180 0z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22left-circled%22 unicode%3D%22%26%23xe870%3B%22 d%3D%22M920 350q0-190-135-325t-325-135-325 135-135 325q0 192 135 326t325 134 325-134 135-326z m-820 0q0-148 106-254t254-106 254 106 106 254q0 150-106 255t-254 105-254-105-106-255z m552-90l-204 0 0-112-190 202 190 204 0-114 204 0 0-180z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22right-circled%22 unicode%3D%22%26%23xe871%3B%22 d%3D%22M0 350q0 190 135 325t325 135 325-135 135-325-135-325-325-135-325 135-135 325z m820 0q0 150-105 255t-255 105q-148 0-254-105t-106-255q0-148 106-254t254-106q150 0 255 106t105 254z m-552 90l204 0 0 114 190-204-190-202 0 112-204 0 0 180z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22up-circled%22 unicode%3D%22%26%23xe872%3B%22 d%3D%22M460-110q-190 0-325 135t-135 325q0 192 135 326t325 134 325-134 135-326q0-190-135-325t-325-135z m0 820q-148 0-254-105t-106-255q0-148 106-254t254-106q150 0 255 106t105 254q0 150-105 255t-255 105z m-90-552l0 204-112 0 202 192 202-192-112 0 0-204-180 0z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22down-open%22 unicode%3D%22%26%23xe873%3B%22 d%3D%22M564 422l-234-224q-18-18-40-18t-40 18l-234 224q-16 16-16 41t16 41q38 38 78 0l196-188 196 188q40 38 78 0 16-16 16-41t-16-41z%22 horiz-adv-x%3D%22580%22 %2F%3E%3Cglyph glyph-name%3D%22left-open%22 unicode%3D%22%26%23xe874%3B%22 d%3D%22M242 626q14 16 39 16t41-16q38-36 0-80l-186-196 186-194q38-44 0-80-16-16-40-16t-40 16l-226 236q-16 16-16 38 0 24 16 40 206 214 226 236z%22 horiz-adv-x%3D%22341%22 %2F%3E%3Cglyph glyph-name%3D%22right-open%22 unicode%3D%22%26%23xe875%3B%22 d%3D%22M98 626l226-236q16-16 16-40 0-22-16-38l-226-236q-16-16-40-16t-40 16q-36 36 0 80l186 194-186 196q-36 44 0 80 16 16 41 16t39-16z%22 horiz-adv-x%3D%22340%22 %2F%3E%3Cglyph glyph-name%3D%22up-open%22 unicode%3D%22%26%23xe876%3B%22 d%3D%22M564 280q16-16 16-41t-16-41q-38-38-78 0l-196 188-196-188q-40-38-78 0-16 16-16 41t16 41l234 224q16 16 40 16t40-16z%22 horiz-adv-x%3D%22580%22 %2F%3E%3Cglyph glyph-name%3D%22down-open-mini%22 unicode%3D%22%26%23xe877%3B%22 d%3D%22M405 470q22 26 48 0 26-22 0-48l-196-192q-22-22-48 0l-196 192q-26 26 0 48 24 24 50 0l170-156z%22 horiz-adv-x%3D%22466%22 %2F%3E%3Cglyph glyph-name%3D%22left-open-mini%22 unicode%3D%22%26%23xe878%3B%22 d%3D%22M252 180q26-26 0-48-26-26-48 0l-192 194q-24 24 0 50l192 194q22 26 48 0 26-22 0-48l-156-172z%22 horiz-adv-x%3D%22265%22 %2F%3E%3Cglyph glyph-name%3D%22right-open-mini%22 unicode%3D%22%26%23xe879%3B%22 d%3D%22M13 180l158 170-158 172q-26 26 0 48 26 26 48 0l192-194q24-26 0-50l-192-194q-22-26-48 0-26 22 0 48z%22 horiz-adv-x%3D%22265%22 %2F%3E%3Cglyph glyph-name%3D%22up-open-mini%22 unicode%3D%22%26%23xe87a%3B%22 d%3D%22M62 230q-26-22-50 0-24 24 0 50l196 190q26 26 48 0l196-190q24-26 0-50-24-22-50 0l-170 158z%22 horiz-adv-x%3D%22464%22 %2F%3E%3Cglyph glyph-name%3D%22down-open-big%22 unicode%3D%22%26%23xe87b%3B%22 d%3D%22M63 570l370-356 372 356q22 26 48 0 26-22 0-48l-396-392q-22-22-48 0l-396 392q-26 26 0 48 24 24 50 0z%22 horiz-adv-x%3D%22866%22 %2F%3E%3Cglyph glyph-name%3D%22left-open-big%22 unicode%3D%22%26%23xe87c%3B%22 d%3D%22M452-20q26-26 0-48-26-26-48 0l-392 394q-24 24 0 50l392 394q22 26 48 0 26-22 0-48l-358-372z%22 horiz-adv-x%3D%22465%22 %2F%3E%3Cglyph glyph-name%3D%22right-open-big%22 unicode%3D%22%26%23xe87d%3B%22 d%3D%22M13-20l358 370-358 372q-26 26 0 48 26 26 48 0l392-394q24-26 0-50l-392-394q-22-26-48 0-26 22 0 48z%22 horiz-adv-x%3D%22465%22 %2F%3E%3Cglyph glyph-name%3D%22up-open-big%22 unicode%3D%22%26%23xe87e%3B%22 d%3D%22M804 130l-372 358-370-358q-26-22-50 0-24 24 0 50l396 390q26 26 48 0l396-390q24-26 0-50-26-22-48 0z%22 horiz-adv-x%3D%22864%22 %2F%3E%3Cglyph glyph-name%3D%22down%22 unicode%3D%22%26%23xe87f%3B%22 d%3D%22M660 366l-330-380-330 380 192 0 0 350 276 0 0-350 192 0z%22 horiz-adv-x%3D%22660%22 %2F%3E%3Cglyph glyph-name%3D%22left%22 unicode%3D%22%26%23xe880%3B%22 d%3D%22M378 20l-378 330 378 330 0-190 352 0 0-278-352 0 0-192z%22 horiz-adv-x%3D%22730%22 %2F%3E%3Cglyph glyph-name%3D%22right%22 unicode%3D%22%26%23xe881%3B%22 d%3D%22M350 680l380-330-380-330 0 192-350 0 0 278 350 0 0 190z%22 horiz-adv-x%3D%22730%22 %2F%3E%3Cglyph glyph-name%3D%22up%22 unicode%3D%22%26%23xe882%3B%22 d%3D%22M660 336l-192 0 0-350-276 0 0 350-192 0 330 380z%22 horiz-adv-x%3D%22660%22 %2F%3E%3Cglyph glyph-name%3D%22down-dir%22 unicode%3D%22%26%23xe883%3B%22 d%3D%22M460 550l-230-400-230 400 460 0z%22 horiz-adv-x%3D%22460%22 %2F%3E%3Cglyph glyph-name%3D%22left-dir%22 unicode%3D%22%26%23xe884%3B%22 d%3D%22M400 580l0-460-400 230z%22 horiz-adv-x%3D%22400%22 %2F%3E%3Cglyph glyph-name%3D%22right-dir%22 unicode%3D%22%26%23xe885%3B%22 d%3D%22M0 580l400-230-400-230 0 460z%22 horiz-adv-x%3D%22400%22 %2F%3E%3Cglyph glyph-name%3D%22up-dir%22 unicode%3D%22%26%23xe886%3B%22 d%3D%22M0 150l230 400 230-400-460 0z%22 horiz-adv-x%3D%22460%22 %2F%3E%3Cglyph glyph-name%3D%22down-bold%22 unicode%3D%22%26%23xe887%3B%22 d%3D%22M760 366l-380-380-380 380 192 0 0 350 376 0 0-350 192 0z%22 horiz-adv-x%3D%22760%22 %2F%3E%3Cglyph glyph-name%3D%22left-bold%22 unicode%3D%22%26%23xe888%3B%22 d%3D%22M378 730l0-190 352 0 0-378-352 0 0-192-378 380z%22 horiz-adv-x%3D%22730%22 %2F%3E%3Cglyph glyph-name%3D%22right-bold%22 unicode%3D%22%26%23xe889%3B%22 d%3D%22M350 730l380-380-380-380 0 192-350 0 0 378 350 0 0 190z%22 horiz-adv-x%3D%22730%22 %2F%3E%3Cglyph glyph-name%3D%22up-bold%22 unicode%3D%22%26%23xe88a%3B%22 d%3D%22M760 336l-192 0 0-350-376 0 0 350-192 0 380 380z%22 horiz-adv-x%3D%22760%22 %2F%3E%3Cglyph glyph-name%3D%22down-thin%22 unicode%3D%22%26%23xe88b%3B%22 d%3D%22M500 100l-250-240-250 240 162 0 0 740 176 0 0-740 162 0z%22 horiz-adv-x%3D%22500%22 %2F%3E%3Cglyph glyph-name%3D%22left-thin%22 unicode%3D%22%26%23xe88c%3B%22 d%3D%22M240 100l-240 250 240 250 0-160 740 0 0-178-740 0 0-162z%22 horiz-adv-x%3D%22980%22 %2F%3E%3Cglyph glyph-name%3D%22right-thin%22 unicode%3D%22%26%23xe88d%3B%22 d%3D%22M742 100l0 162-742 0 0 178 742 0 0 160 238-250z%22 horiz-adv-x%3D%22980%22 %2F%3E%3Cglyph glyph-name%3D%22up-thin%22 unicode%3D%22%26%23xe88e%3B%22 d%3D%22M500 602l-162 0 0-742-176 0 0 742-162 0 250 238z%22 horiz-adv-x%3D%22500%22 %2F%3E%3Cglyph glyph-name%3D%22ccw%22 unicode%3D%22%26%23xe88f%3B%22 d%3D%22M532 736q170 0 289-120t119-290-119-290-289-120q-142 0-252 88l70 74q84-60 182-60 126 0 216 90t90 218-90 218-216 90q-124 0-214-87t-92-211l142 0-184-204-184 204 124 0q2 166 122 283t286 117z%22 horiz-adv-x%3D%22940%22 %2F%3E%3Cglyph glyph-name%3D%22cw%22 unicode%3D%22%26%23xe890%3B%22 d%3D%22M408 760q168 0 287-116t123-282l122 0-184-206-184 206 144 0q-4 124-94 210t-214 86q-126 0-216-90t-90-218q0-126 90-216t216-90q104 0 182 60l70-76q-110-88-252-88-168 0-288 120t-120 290 120 290 288 120z%22 horiz-adv-x%3D%22940%22 %2F%3E%3Cglyph glyph-name%3D%22arrows-ccw%22 unicode%3D%22%26%23xe891%3B%22 d%3D%22M186 140l116 116 0-292-276 16 88 86q-116 122-114 290t120 288q100 100 240 116l4-102q-100-16-172-88-88-88-90-213t84-217z m332 598l276-16-88-86q116-122 114-290t-120-288q-96-98-240-118l-2 104q98 16 170 88 88 88 90 213t-84 217l-114-116z%22 horiz-adv-x%3D%22820%22 %2F%3E%3Cglyph glyph-name%3D%22level-down%22 unicode%3D%22%26%23xe892%3B%22 d%3D%22M100 200q-42 0-71 30t-29 70l0 350 140 0 0-310 364 0 0 150 240-220-240-220 0 150-404 0z%22 horiz-adv-x%3D%22744%22 %2F%3E%3Cglyph glyph-name%3D%22level-up%22 unicode%3D%22%26%23xe893%3B%22 d%3D%22M200 350l0-90-200 160 200 170 0-100 550 0q40 0 70-29t30-71l0-280-140 0 0 240-510 0z%22 horiz-adv-x%3D%22850%22 %2F%3E%3Cglyph glyph-name%3D%22shuffle%22 unicode%3D%22%26%23xe894%3B%22 d%3D%22M754 516q-54 0-105-32t-80-66-83-104q-48-62-75-94t-78-77-107-66-122-21l-104 0 0 140 104 0q54 0 106 32t81 66 83 104q62 82 101 126t116 88 163 44l36 0 0 120 210-180-210-180 0 100-36 0z m-484-88q-74 78-166 78l-104 0 0 140 104 0q140 0 254-108-14-16-37-45t-27-33q-8-12-24-32z m520-242l0 100 210-180-210-180 0 120-36 0q-140 0-260 116 46 58 72 92 0 2 6 9t8 11q84-88 174-88l36 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22loop%22 unicode%3D%22%26%23xe895%3B%22 d%3D%22M800 540q42 0 71-29t29-71l0-290q0-40-29-70t-71-30l-700 0q-40 0-70 30t-30 70l0 290q0 42 30 71t70 29l250 0 0 110 200-180-200-180 0 110-210 0 0-210 620 0 0 210-150 0 0 140 190 0z%22 horiz-adv-x%3D%22900%22 %2F%3E%3Cglyph glyph-name%3D%22switch%22 unicode%3D%22%26%23xe896%3B%22 d%3D%22M700 592l0-140-500 0 0-90-200 160 200 170 0-100 500 0z m300-420l-200-160 0 90-500 0 0 140 500 0 0 100z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22play%22 unicode%3D%22%26%23xe897%3B%22 d%3D%22M486 376q14-10 14-26 0-14-14-24l-428-266q-24-16-41-6t-17 40l0 514q0 30 17 40t41-6z%22 horiz-adv-x%3D%22500%22 %2F%3E%3Cglyph glyph-name%3D%22stop%22 unicode%3D%22%26%23xe898%3B%22 d%3D%22M526 650q74 0 74-64l0-470q0-66-74-66l-450 0q-76 0-76 66l0 470q0 36 18 50t58 14l450 0z%22 horiz-adv-x%3D%22600%22 %2F%3E%3Cglyph glyph-name%3D%22pause%22 unicode%3D%22%26%23xe899%3B%22 d%3D%22M440 700q90 0 90-64l0-570q0-66-90-66t-90 66l0 570q0 64 90 64z m-350 0q90 0 90-64l0-570q0-66-90-66t-90 66l0 570q0 64 90 64z%22 horiz-adv-x%3D%22530%22 %2F%3E%3Cglyph glyph-name%3D%22record%22 unicode%3D%22%26%23xe89a%3B%22 d%3D%22M350 700q146 0 248-102t102-248q0-144-102-247t-248-103-248 103-102 247q0 146 102 248t248 102z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22to-end%22 unicode%3D%22%26%23xe89b%3B%22 d%3D%22M412 374q14-10 14-24 0-12-14-22l-362-228q-22-14-36-5t-14 35l0 442q0 26 14 35t36-5z m114 268q74 0 74-58l0-466q0-58-74-58-76 0-76 58l0 466q0 58 76 58z%22 horiz-adv-x%3D%22600%22 %2F%3E%3Cglyph glyph-name%3D%22to-start%22 unicode%3D%22%26%23xe89c%3B%22 d%3D%22M174 350q0 14 14 24l364 228q20 14 34 5t14-35l0-442q0-26-14-35t-34 5l-364 228q-14 10-14 22z m-174 234q0 58 76 58 74 0 74-58l0-466q0-58-74-58-76 0-76 58l0 466z%22 horiz-adv-x%3D%22600%22 %2F%3E%3Cglyph glyph-name%3D%22fast-forward%22 unicode%3D%22%26%23xe89d%3B%22 d%3D%22M866 374q14-10 14-24t-14-22l-372-248q-22-14-37-6t-15 36l0 482q0 28 15 36t37-6z m-454 0q14-10 14-24t-14-22l-360-248q-20-14-36-6t-16 36l0 482q0 28 16 36t36-6z%22 horiz-adv-x%3D%22880%22 %2F%3E%3Cglyph glyph-name%3D%22fast-backward%22 unicode%3D%22%26%23xe89e%3B%22 d%3D%22M0 350q0 14 14 24l374 248q20 14 36 6t16-36l0-482q0-28-16-36t-36 6l-374 248q-14 8-14 22z m454 0q0 14 14 24l360 248q20 14 36 6t16-36l0-482q0-28-16-36t-36 6l-360 248q-14 8-14 22z%22 horiz-adv-x%3D%22880%22 %2F%3E%3Cglyph glyph-name%3D%22progress-0%22 unicode%3D%22%26%23xe89f%3B%22 d%3D%22M1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22progress-1%22 unicode%3D%22%26%23xe8a0%3B%22 d%3D%22M1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z m-750 50l0 198 200 0 0-198-200 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22progress-2%22 unicode%3D%22%26%23xe8a1%3B%22 d%3D%22M1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z m-750 50l0 198 200 0 0-198-200 0z m250 0l0 198 200 0 0-198-200 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22progress-3%22 unicode%3D%22%26%23xe8a2%3B%22 d%3D%22M1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z m-750 50l0 198 200 0 0-198-200 0z m250 0l0 198 200 0 0-198-200 0z m250 198l200 0 0-198-200 0 0 198z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22target%22 unicode%3D%22%26%23xe8a3%3B%22 d%3D%22M430 780q178 0 304-126t126-304-126-304-304-126-304 126-126 304 126 304 304 126z m36-778q124 14 212 102t100 212l-192 0 0 70 192 0q-12 124-100 212t-212 102l0-194-70 0 0 194q-124-14-213-102t-101-212l194 0 0-70-194 0q12-124 101-212t213-102l0 194 70 0 0-194z%22 horiz-adv-x%3D%22860%22 %2F%3E%3Cglyph glyph-name%3D%22list%22 unicode%3D%22%26%23xe8a5%3B%22 d%3D%22M100 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m0 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m0 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m200-100q-20 0-35 15t-15 35 15 35 35 15l350 0q22 0 36-15t14-35-15-35-35-15l-350 0z m350-100q22 0 36-15t14-35-15-35-35-15l-350 0q-20 0-35 15t-15 35 15 35 35 15l350 0z m0-200q22 0 36-15t14-35-15-35-35-15l-350 0q-20 0-35 15t-15 35 15 35 35 15l350 0z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22list-add%22 unicode%3D%22%26%23xe8a6%3B%22 d%3D%22M350 400q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z m0-200q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z m620 200q30 0 30-50t-30-50l-170 0 0-170q0-30-50-30t-50 30l0 170-164 0q-30 0-30 50t30 50l164 0 0 170q0 30 50 30t50-30l0-170 170 0z m-620 200q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22battery%22 unicode%3D%22%26%23xe8a9%3B%22 d%3D%22M770 350q0-98 36-157t78-59l66 0q-30-46-64-65t-118-19l-500 0q-130 0-199 94t-69 206q0 110 69 205t199 95l500 0q84 0 118-19t64-65l-66 0q-42 0-78-60t-36-156z m-136-90q10 12-8 26-136 134-178 164-16 10-26 13t-18-5-10-12-8-18l-22-56-148 66q-26 12-34 0-8-14 8-28 136-132 180-162 34-16 42-11t18 31l24 58 146-68q26-12 34 2z m310 192q22 0 39-27t17-71-17-72-39-28l-38 0q-22 0-38 28t-16 72 16 71 38 27l38 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22back-in-time%22 unicode%3D%22%26%23xe8aa%3B%22 d%3D%22M532 760q170 0 289-120t119-290-119-290-289-120q-138 0-252 88l70 76q82-60 182-60 126 0 216 90t90 216q0 128-90 218t-216 90q-124 0-213-86t-93-210l142 0-184-206-184 206 124 0q4 166 123 282t285 116z m-36-190l70 0 0-204 130-130-50-50-150 150 0 234z%22 horiz-adv-x%3D%22940%22 %2F%3E%3Cglyph glyph-name%3D%22monitor%22 unicode%3D%22%26%23xe8ab%3B%22 d%3D%22M900 790q42 0 71-30t29-70l0-550q0-42-29-77t-69-43l-218-44 86-38q50-28-20-28l-500 0q-98 0 32 52l36 14-220 44q-40 8-69 43t-29 77l0 550q0 40 30 70t70 30l800 0z m0-646l0 556-800 0 0-556 800 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22mobile%22 unicode%3D%22%26%23xe8ac%3B%22 d%3D%22M480 840q42 0 71-29t29-71l0-780q0-40-29-70t-71-30l-380 0q-40 0-70 30t-30 70l0 780q0 42 30 71t70 29l380 0z m-190-940q30 0 50 15t20 35q0 22-20 36t-50 14q-28 0-49-15t-21-35 21-35 49-15z m210 150l0 660-420 0 0-660 420 0z%22 horiz-adv-x%3D%22580%22 %2F%3E%3Cglyph glyph-name%3D%22cd%22 unicode%3D%22%26%23xe8ae%3B%22 d%3D%22M460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-610q62 0 106 44t44 106q0 64-43 107t-107 43q-62 0-106-44t-44-106 44-106 106-44z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22inbox%22 unicode%3D%22%26%23xe8af%3B%22 d%3D%22M967 398q40-42 30-72l-28-154q-4-20-22-33t-40-13l-816 0q-22 0-40 13t-22 33l-28 154q-8 32 32 72 8 10 36 38t68 67 52 51q22 22 52 22l516 0q30 0 52-22 16-16 53-52t67-65 38-39z m-266-32l178 0-102 114-556 0-102-114 178 0q8 0 12-8l40-100 300 0 40 100q4 8 12 8z%22 horiz-adv-x%3D%22999%22 %2F%3E%3Cglyph glyph-name%3D%22install%22 unicode%3D%22%26%23xe8b0%3B%22 d%3D%22M884 306q24-52 14-96l-34-184q-2-20-19-35t-39-15l-712 0q-22 0-39 15t-19 35l-34 184q-8 50 14 96l158 374q22 46 72 46l104 0-20-204-134 0 254-210 256 210-136 0-18 204 102 0q50 0 74-46z m-68-132q2 22-10 38t-34 16l-644 0q-22 0-34-16t-10-38l14-74q2-22 19-37t37-15l592 0q22 0 39 15t19 37z%22 horiz-adv-x%3D%22901%22 %2F%3E%3Cglyph glyph-name%3D%22globe%22 unicode%3D%22%26%23xe8b1%3B%22 d%3D%22M480 830q200 0 340-141t140-339q0-200-140-340t-340-140q-198 0-339 140t-141 340q0 198 141 339t339 141z m410-480q0 132-78 239t-202 149q-18-24-16-32 4-38 18-51t30-7l32 12t20 2q22-24 0-47t-45-56-1-77q34-64 96-64 28-2 43-36t17-66q10-80-14-140-22-44 14-76 86 112 86 250z m-466 404q-112-14-199-84t-127-174q6 0 22-2t28-3 26-4 24-8 12-13q4-12-14-45t-18-61q0-30 38-56t38-46q0-28 8-68t8-44q0-12 36-54t52-42q10 0 11 22t-2 54-3 40q0 32 14 74 12 42 59 70t55 46q16 34 9 61t-17 43-34 28-41 17-37 9-22 4q-16 6-42 7t-36-3-27 11-17 29q0 10 15 27t35 37 28 30q8 14 17 21t22 16 27 21q4 4 25 17t27 23z m-72-794q66-20 128-20 128 0 226 68-26 44-118 34-24-2-65-17t-47-17q-74-16-76-16-12-2-26-14t-22-18z%22 horiz-adv-x%3D%22960%22 %2F%3E%3Cglyph glyph-name%3D%22cloud%22 unicode%3D%22%26%23xe8b2%3B%22 d%3D%22M760 494q100 0 170-68t70-166-70-166-170-68l-578 0q-74 0-128 52t-54 124q0 74 53 126t129 52q2 0 10-1t10-1q-2 12-2 38 0 108 78 184t188 76q90 0 160-52t94-134q28 4 40 4z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22cloud-thunder%22 unicode%3D%22%26%23xe8b3%3B%22 d%3D%22M760 494q100 0 170-68t70-166-70-166-170-68l-578 0q-74 0-128 52t-54 124q0 74 53 126t129 52q2 0 10-1t10-1q-2 12-2 38 0 108 78 184t188 76q90 0 160-52t94-134q28 4 40 4z m-192-216q14 16 14 30 0 20-30 32l-4 0q-26 14-38 16l50 116q6 0 6 20 0 14-8 18-16 10-34-8-2-2-30-32t-61-66-45-52q-12-18-12-30 0-22 30-30l4-2q8-4 38-16l-52-114-2-8q-2-8-2-14 0-10 8-18 18-10 34 10 100 100 134 148z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22flash%22 unicode%3D%22%26%23xe8b4%3B%22 d%3D%22M40-100q-4 4 35 94t79 182 38 98-94 45-98 55q-4 12 84 120t180 209 96 97q6-4-74-186t-78-186 95-43 97-57q4-20-174-227t-186-201z%22 horiz-adv-x%3D%22400%22 %2F%3E%3Cglyph glyph-name%3D%22moon%22 unicode%3D%22%26%23xe8b5%3B%22 d%3D%22M524 238q106 106 125 252t-53 270q52-26 96-72 128-128 128-309t-128-309-310-128-310 128q-40 40-72 94 124-70 271-51t253 125z%22 horiz-adv-x%3D%22820%22 %2F%3E%3Cglyph glyph-name%3D%22flight%22 unicode%3D%22%26%23xe8b6%3B%22 d%3D%22M268-120l124 400-180 0-112-100-100 0 80 170-80 170 100 0 112-100 180 0-124 400 100 0 224-400 274 0t36-4 46-11 36-21 16-34q0-32-38-49t-74-19l-38-2-258 0-224-400-100 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22paper-plane%22 unicode%3D%22%26%23xe8b7%3B%22 d%3D%22M894 720q14 4 22-3t4-19q-2-6-72-310t-74-316q-2-14-14-19t-24 1l-248 134-30 16 22 26q388 420 394 426 4 4-1 9t-9 1l-550-402-112 44-190 76q-12 4-12 12t12 12q8 4 441 157t441 155z m-582-728l0 204 160-82q-130-116-142-128-18-14-18 6z%22 horiz-adv-x%3D%22921%22 %2F%3E%3Cglyph glyph-name%3D%22leaf%22 unicode%3D%22%26%23xe8b8%3B%22 d%3D%22M236 646q182 106 506 66 168-22 196-50 4-6-2-10-76-40-130-109t-78-132-65-132-93-105q-138-96-382-4-66-76-114-176-12-24-47-7t-25 39q44 100 129 193t176 153 176 106 141 68l54 20q-14 0-41-1t-104-14-148-38-162-84-161-141q-22 242 174 358z%22 horiz-adv-x%3D%22940%22 %2F%3E%3Cglyph glyph-name%3D%22lifebuoy%22 unicode%3D%22%26%23xe8b9%3B%22 d%3D%22M454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m0-60q-94 0-178-44l62-104q56 28 122 28t122-28l62 104q-88 46-190 44z m-246-522q-28 60-28 122 0 64 28 124l-102 62q-46-88-46-190 2-96 46-180z m258-278q98 4 178 46l-62 104q-60-30-122-30t-122 30l-62-104q86-46 190-46z m-6 180q92 0 156 65t64 155q0 92-64 156t-156 64-156-64-64-156q0-90 64-155t156-65z m252 98l104-62q46 96 44 190 0 96-44 180l-104-62q28-60 28-124 0-62-28-122z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22mouse%22 unicode%3D%22%26%23xe8ba%3B%22 d%3D%22M551 130q28-80-17-157t-139-111q-94-28-175 9t-103 117l-106 384q-20 68 6 134t84 106l-96 186q-14 34 14 48 30 18 48-14l98-192q80 22 154-16t102-116z m-324 274q28 10 40 36t4 54q-10 28-35 41t-53 5q-28-10-40-36t-4-54q10-28 35-41t53-5z%22 horiz-adv-x%3D%22561%22 %2F%3E%3Cglyph glyph-name%3D%22briefcase%22 unicode%3D%22%26%23xe8bb%3B%22 d%3D%22M456 326l0-100-456 0q8 226 10 292 4 108 100 108l160 0q16 26 37 67t23 45q14 26 23 32t37 6l222 0q26 0 36-7t22-31q18-32 60-112l160 0q96 0 100-108l10-292-454 0 0 100-90 0z m-74 354l-28-54 292 0-28 54q-14 26-42 26l-152 0q-28 0-42-26z m164-604l0 100 430 0q-6-88-10-166-6-84-90-84l-750 0q-90 0-90 84l-10 166 430 0 0-100 90 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22suitcase%22 unicode%3D%22%26%23xe8bc%3B%22 d%3D%22M900 650q42 0 71-30t29-70l0-550q0-42-29-71t-71-29l-50 0 0 750 50 0z m-900-100q0 40 30 70t70 30l50 0 0-750-50 0q-40 0-70 29t-30 71l0 550z m670 204l0-104 110 0 0-750-560 0 0 750 110 0 0 104q98 46 170 46t170-46z m-60-104l0 66q-52 24-110 24-54 0-110-24l0-66 220 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22dot%22 unicode%3D%22%26%23xe8bd%3B%22 d%3D%22M110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z%22 horiz-adv-x%3D%22220%22 %2F%3E%3Cglyph glyph-name%3D%22dot-2%22 unicode%3D%22%26%23xe8be%3B%22 d%3D%22M110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 32-32 78 32 78 78 32z m350 0q46 0 78-32t32-78q0-44-33-77t-77-33q-46 0-78 32t-32 78 32 78 78 32z%22 horiz-adv-x%3D%22570%22 %2F%3E%3Cglyph glyph-name%3D%22dot-3%22 unicode%3D%22%26%23xe8bf%3B%22 d%3D%22M110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z m350 0q46 0 78-32t32-78q0-44-33-77t-77-33-77 33-33 77q0 46 32 78t78 32z m350 0q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z%22 horiz-adv-x%3D%22920%22 %2F%3E%3Cglyph glyph-name%3D%22brush%22 unicode%3D%22%26%23xe8c0%3B%22 d%3D%22M118 170q38 34 85 29t87-45q42-40 48-87t-30-83q-86-84-228-102-84-12-80 14 0 4 6 10 52 60 64 145t48 119z m840 646q26-26-148-248t-292-338q-38-38-124-104-8-6-16 8-18 34-48 64-32 32-66 48-16 6-8 16 64 84 104 122 118 116 344 287t254 145z%22 horiz-adv-x%3D%22962%22 %2F%3E%3Cglyph glyph-name%3D%22infinity%22 unicode%3D%22%26%23xe8c2%3B%22 d%3D%22M796 570q84 0 144-53t60-167q0-112-60-166t-144-54q-78 0-157 40t-139 106q-58-66-137-106t-157-40q-86 0-146 54t-60 166q0 114 60 167t146 53q78 0 157-39t137-105q58 66 138 105t158 39z m-590-352q60 0 127 37t113 95q-46 58-112 95t-128 37q-114 0-114-132t114-132z m590 0q114 0 114 132t-114 132q-62 0-129-37t-111-95q44-58 111-95t129-37z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22erase%22 unicode%3D%22%26%23xe8c3%3B%22 d%3D%22M902 700q42 0 71-29t29-71l0-500q0-40-29-70t-71-30l-478 0q-38 0-70 28l-340 296q-28 26 0 54l340 296q30 26 70 26l478 0z m-140-550l72 74-128 126 128 128-72 72-128-126-128 126-72-72 128-128-128-126 72-74 128 128z%22 horiz-adv-x%3D%221002%22 %2F%3E%3Cglyph glyph-name%3D%22chart-pie%22 unicode%3D%22%26%23xe8c4%3B%22 d%3D%22M368 770l0-368-368 0q18 146 121 249t247 119z m106 0q156-20 261-139t105-279q0-174-123-298t-299-124q-160 0-278 105t-140 263l424 0q20 0 35 14t15 36l0 422z%22 horiz-adv-x%3D%22840%22 %2F%3E%3Cglyph glyph-name%3D%22chart-line%22 unicode%3D%22%26%23xe8c5%3B%22 d%3D%22M34 284q-42 10-32 56 10 42 54 32l98-24-52-80z m890-12q14 12 33 11t31-15q32-32-2-64l-252-226q-12-12-30-12-14 0-28 10l-286 220-54 14 50 80 36-8q12-4 16-8l264-204z m-490 220l-350-550q-12-22-38-22-12 0-24 8-16 10-20 29t6 33l374 588q8 16 28 20 18 6 36-6l246-156 226 326q10 16 28 19t34-9q38-24 12-62l-252-362q-24-36-62-12z%22 horiz-adv-x%3D%221003%22 %2F%3E%3Cglyph glyph-name%3D%22chart-bar%22 unicode%3D%22%26%23xe8c6%3B%22 d%3D%22M750 800q22 0 36-15t14-35l0-850-200 0 0 850q0 50 40 50l110 0z m-300-300q22 0 36-15t14-35l0-550-200 0 0 550q0 50 40 50l110 0z m-300-300q22 0 36-15t14-35l0-250-200 0 0 250q0 50 40 50l110 0z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22chart-area%22 unicode%3D%22%26%23xe8c7%3B%22 d%3D%22M964 732q16 22 16-4l0-768-964 0q-12 0-15 7t5 17l230 288q20 22 40 2l74-66q10-8 21-7t17 11l158 238q16 26 38 4l112-104q20-20 38 4z%22 horiz-adv-x%3D%22980%22 %2F%3E%3Cglyph glyph-name%3D%22tape%22 unicode%3D%22%26%23xe8c8%3B%22 d%3D%22M770 580q96 0 163-67t67-163q0-94-67-162t-163-68l-540 0q-94 0-162 68t-68 162q0 96 68 163t162 67q96 0 163-67t67-163q0-72-40-130l160 0q-40 64-40 130 0 96 68 163t162 67z m-670-230q0-52 38-91t92-39 92 39 38 91q0 54-38 92t-92 38-92-38-38-92z m670-130q54 0 92 39t38 91q0 54-38 92t-92 38-92-38-38-92q0-52 38-91t92-39z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22graduation-cap%22 unicode%3D%22%26%23xe8c9%3B%22 d%3D%22M166 238l334-168 276 136q-4-22-8-47t-6-35-11-23-24-23-45-22q-40-18-80-41t-63-34-39-11-40 13-64 37-80 40q-72 32-103 69t-47 109z m810 246q24-14 24-33t-24-33l-78-44-308 102q-22 36-90 36-40 0-67-16t-27-40 27-40 67-16q26 0 36 4l292-68-268-152q-60-32-120 0l-416 234q-24 14-24 33t24 33l416 234q60 32 120 0z m-128-442q18 116 13 182t-19 90l-14 22 70 38q6-8 12-28t17-101-7-197q-4-26-22-30t-35 5-15 19z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22language%22 unicode%3D%22%26%23xe8ca%3B%22 d%3D%22M988 306q30-82-10-176t-134-160q-10 0-12 2t-16 19-16 19q-2 6 2 10 86 60 117 152t-11 148q-16-38-39-76t-59-80-86-65-106-15q-52 6-84 41t-32 93q0 84 60 148 50 50 114 66l-2 100q-140-24-146-24-6-2-10 4 0 2-5 29t-5 31q-2 2 1 4t7 2l156 28q0 110-2 114 0 8 8 8 46 0 52 2 10 0 10-8l0-104q158 22 164 22 8 4 10-6 0-2 4-23t4-25q4-10-4-12l-176-30 0-102 12 0q86 0 148-36t86-100z m-370-160q28-6 62 6l-4 214q-34-12-60-40-44-44-44-108 0-66 46-72z m122 28q28 24 58 68t45 79 7 41q-36 18-96 18-2 0-6-1t-6-1z m-448 382q10-28 53-165t83-261 40-126q0-4-4-4l-86 0q-6 0-6 4l-50 166-176 0q-48-164-50-166 0-4-6-4l-86 0q-4 0-4 4 10 18 176 552 2 8 10 8l96 0q10 0 10-8z m-130-316l144 0-72 264z%22 horiz-adv-x%3D%221001%22 %2F%3E%3Cglyph glyph-name%3D%22ticket%22 unicode%3D%22%26%23xe8cb%3B%22 d%3D%22M216 272l326 326 178-178-326-326z m710 244q14-14 14-36t-14-36l-550-550q-16-16-36-16t-36 16l-76 76q12 20 12 48 0 42-29 72t-71 30q-22 0-50-14l-74 76q-16 16-16 36t16 36l550 550q14 14 36 14t36-14l74-76q-12-22-12-48 0-42 30-71t72-29q26 0 48 12z m-532-502l406 406-258 258-408-406z%22 horiz-adv-x%3D%22940%22 %2F%3E%3Cglyph glyph-name%3D%22water%22 unicode%3D%22%26%23xe8cc%3B%22 d%3D%22M168 844q10-86 50-155t73-123 33-112q0-66-48-113t-114-47-114 47-48 113q0 58 33 112t73 123 50 155q2 4 7 4t5-4z m616 0q10-86 50-155t73-123 33-112q0-66-48-113t-114-47-114 47-48 113q0 48 21 93t48 78 53 92 34 127q2 4 7 4t5-4z m-320-444q2 4 7 4t5-4q10-86 50-155t73-123 33-112q0-66-48-113t-114-47-114 47-48 113q0 58 33 112t73 123 50 155z%22 horiz-adv-x%3D%22940%22 %2F%3E%3Cglyph glyph-name%3D%22droplet%22 unicode%3D%22%26%23xe8cd%3B%22 d%3D%22M290 822q14-118 60-219t92-159 82-136 36-160q0-114-83-196t-197-82-197 82-83 196q0 82 36 160t82 136 92 159 60 219q2 8 11 8t9-8z m-42-392q2 4-2 14-6 6-14 6t-12-6l-40-58q-32-46-48-70t-34-75-18-101q0-24 17-41t41-17q58 0 58 68 0 94 42 246 2 6 5 17t5 17z%22 horiz-adv-x%3D%22560%22 %2F%3E%3Cglyph glyph-name%3D%22air%22 unicode%3D%22%26%23xe8ce%3B%22 d%3D%22M85 534q-16-14-36-12t-34 18q-14 14-12 36t18 36q48 40 79 60t89 40 129 4 159-66 155-53 100 16 89 67q38 30 70-6 32-40-6-72-122-110-234-110-100 0-222 70-68 38-119 52t-93 0-65-29-67-51z m736-110q38 32 70-6 32-40-6-72-40-34-65-53t-72-38-97-19q-96 0-222 70-68 38-119 52t-93 0-65-29-67-51q-14-14-35-12t-35 18q-32 40 6 72 38 34 60 50t69 38 88 23 105-15 134-56q68-38 119-52t93 0 65 29 67 51z m0-256q38 32 70-6 14-14 12-36t-18-36q-40-34-65-53t-72-38-97-19q-96 0-222 70-68 38-119 52t-93 1-66-29-66-52q-14-14-35-12t-35 18q-32 40 6 72 38 34 60 50t69 38 88 23 105-15 134-56q68-38 119-52t93 0 65 29 67 51z%22 horiz-adv-x%3D%22905%22 %2F%3E%3Cglyph glyph-name%3D%22credit-card%22 unicode%3D%22%26%23xe8cf%3B%22 d%3D%22M900 700q42 0 71-30t29-70l0-500q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 500q0 40 30 70t70 30l800 0z m0-600l0 300-800 0 0-300 800 0z m0 450l0 50-800 0 0-50 800 0z m-700-256l30 0 0-30-30 0 0 30z m180-60l30 0 0 30 30 0 0 30 60 0 0-30-30 0 0-30-30 0 0-30-60 0 0 30z m120-30l-30 0 0 30 30 0 0-30z m-150 0l-60 0 0 30 60 0 0-30z m30 60l0-30-30 0 0 60 60 0 0-30-30 0z m-120-30l0-30-60 0 0 30 30 0 0 30 30 0 0 30 60 0 0-30-30 0 0-30-30 0z%22 horiz-adv-x%3D%221000%22 %2F%3E%3Cglyph glyph-name%3D%22floppy%22 unicode%3D%22%26%23xe8d0%3B%22 d%3D%22M658 750l142-156 0-544q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l558 0z m-58-300l0 250-400 0 0-250q0-20 15-35t35-15l300 0q20 0 35 15t15 35z m-50 200l0-200-100 0 0 200 100 0z%22 horiz-adv-x%3D%22800%22 %2F%3E%3Cglyph glyph-name%3D%22clipboard%22 unicode%3D%22%26%23xe8d1%3B%22 d%3D%22M630 750q28 0 49-21t21-49l0-760q0-30-21-50t-49-20l-560 0q-28 0-49 20t-21 50l0 760q0 28 21 49t49 21l60-150 440 0z m-100-100l-360 0-44 100 108 0 36 100 160 0 36-100 110 0z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22megaphone%22 unicode%3D%22%26%23xe8d2%3B%22 d%3D%22M792 500q58-138 67-258t-39-140q-28-12-61 3t-65 40-99 41-149 8q-28-4-42-19t-6-37q22-56 46-108 4-10 24-22t24-20q14-34-22-46-50-22-102-40-30-10-54 42-32 76-58 132-6 12-34 17t-46 31q-30-10-38-14-34-12-74 12t-54 60q-17 32-5 79t43 61q126 52 213 108t124 103 59 92 25 78 15 59 36 36q48 20 130-70t142-228z m-28-300q8 4 10 38t-11 98-41 128q-28 66-67 123t-67 84-36 23-10-42 10-105 40-133 68-119 68-76 36-19z%22 horiz-adv-x%3D%22860%22 %2F%3E%3Cglyph glyph-name%3D%22database%22 unicode%3D%22%26%23xe8d3%3B%22 d%3D%22M686 208q14 20 14-2l0-100q0-74-104-135t-246-61q-140 0-245 61t-105 135l0 100q0 8 4 10t10-8q32-52 125-86t211-34 211 34 125 86z m2 254q8 16 12 0l0-116q0-68-102-114t-248-46q-144 0-247 46t-103 114l0 116q0 20 14 0 30-46 124-75t212-29 212 29 126 75z m-338 328q144 0 247-39t103-93l0-64q0-58-103-99t-247-41-247 41-103 99l0 64q0 54 103 93t247 39z%22 horiz-adv-x%3D%22700%22 %2F%3E%3Cglyph glyph-name%3D%22drive%22 unicode%3D%22%26%23xe8d4%3B%22 d%3D%22M884 304q26-44 14-96l-34-184q-2-20-19-35t-39-15l-712 0q-20 0-38 15t-20 35l-34 184q-8 52 14 96l158 374q22 46 72 46l408 0q50 0 74-46z m-68-132q2 22-10 38t-34 16l-644 0q-22 0-34-16t-10-38l14-74q2-22 19-37t39-15l590 0q22 0 39 15t19 37z%22 horiz-adv-x%3D%22902%22 %2F%3E%3Cglyph glyph-name%3D%22bucket%22 unicode%3D%22%26%23xe8d5%3B%22 d%3D%22M522 780q174 0 286-49t104-105q-6-38-48-307t-44-281q-2-18-37-44t-107-50-154-24-153 24-106 50-37 44q0 2-4 30 82-6 163 35t139 117q28 0 48 20t20 50q0 28-20 49t-50 21q-28 0-49-21t-21-49q0-20 10-36-48-58-115-89t-131-27q-102 10-157 57t-59 109q-8 122 156 184-18 94-22 138-8 56 104 105t284 49z m-452-470q4-32 37-59t91-39l-32 204q-100-44-96-106z m452 212q82 0 157 18t113 39 38 35-38 35-112 39-158 18q-82 0-156-18t-112-39-38-35 38-35 112-39 156-18z%22 horiz-adv-x%3D%22913%22 %2F%3E%3Cglyph glyph-name%3D%22thermometer%22 unicode%3D%22%26%23xe8d6%3B%22 d%3D%22M400 356q64-36 102-98t38-138q0-112-79-191t-191-79-191 79-79 191q0 76 38 138t102 98l0 444q0 50 40 50l170 0q20 0 35-15t15-35l0-444z m-130-406q70 0 120 50t50 120q0 56-32 100t-84 60l0 370-100 0 0-368q-54-16-89-61t-35-101q0-70 50-120t120-50z%22 horiz-adv-x%3D%22540%22 %2F%3E%3Cglyph glyph-name%3D%22key%22 unicode%3D%22%26%23xe8d7%3B%22 d%3D%22M774 612q20-116-28-215t-150-117q-66-12-130-2l-118-194-70-12-104-166q-14-28-46-32l-76-14q-12-4-22 4t-12 22l-16 98q-8 30 12 56l258 386q-24 50-38 120-18 106 53 187t185 101q106 20 195-45t107-177z m-126-76q30 44 21 97t-51 83q-42 32-92 22t-80-54q-8-12-12-23t-1-20 5-16 13-17 18-15 22-16 23-17q6-4 22-16t23-16 19-12 19-8 17 1 18 8 16 19z%22 horiz-adv-x%3D%22780%22 %2F%3E%3Cglyph glyph-name%3D%22flow-cascade%22 unicode%3D%22%26%23xe8d8%3B%22 d%3D%22M520 120q50 0 85-35t35-85-35-85-85-35q-80 0-110 74l-164 0q-88 0-131 54t-43 118l0 464q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-114q0-78 78-78l164 0q30 72 110 72 50 0 85-35t35-85-35-85-85-35q-80 0-110 74l-164 0q-42 0-78 16l0-194q0-78 78-78l164 0q30 72 110 72z m0 300q-28 0-49-20t-21-50q0-28 21-48t49-20 49 20 21 48q0 30-21 50t-49 20z m-470 280q0-28 21-48t49-20 49 20 21 48q0 30-21 50t-49 20-49-20-21-50z m470-768q28 0 49 20t21 48q0 30-21 50t-49 20-49-20-21-50q0-28 21-48t49-20z%22 horiz-adv-x%3D%22640%22 %2F%3E%3Cglyph glyph-name%3D%22flow-branch%22 unicode%3D%22%26%23xe8d9%3B%22 d%3D%22M640 650q0-80-74-110-6-58-28-101t-61-69-68-38-75-26q-42-14-63-22t-47-24-38-40-16-60q70-30 70-110 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-204q40 30 138 60 58 18 84 29t51 41 29 76q-70 32-70 108 0 50 35 85t85 35 85-35 35-85z m-588 0q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z m400 600q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z%22 horiz-adv-x%3D%22640%22 %2F%3E%3Cglyph glyph-name%3D%22flow-tree%22 unicode%3D%22%26%23xe8da%3B%22 d%3D%22M868 112q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 114q0 78-76 78l-100 0q-44 0-78 12l0-204q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 204q-30-12-76-12l-100 0q-34 0-53-19t-22-33-3-26l0-114q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 114q0 64 43 118t131 54l100 0q76 0 76 52l0 140q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-140q0-52 78-52l100 0q86 0 129-54t43-118l0-114z m-678-112q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m212 700q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m138-700q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m280-68q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z%22 horiz-adv-x%3D%22940%22 %2F%3E%3Cglyph glyph-name%3D%22flow-line%22 unicode%3D%22%26%23xe8db%3B%22 d%3D%22M168 162q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-378z m-116 488q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z%22 horiz-adv-x%3D%22240%22 %2F%3E%3Cglyph glyph-name%3D%22flow-parallel%22 unicode%3D%22%26%23xe8dc%3B%22 d%3D%22M240 650q0-76-72-110l0-378q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85z m-50-600q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m-70 532q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z m448-420q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-378z m-116 488q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z%22 horiz-adv-x%3D%22640%22 %2F%3E%3Cglyph glyph-name%3D%22rocket%22 unicode%3D%22%26%23xe8dd%3B%22 d%3D%22M543 236q6-50 8-81t-8-59-13-40-35-32-45-26-70-31-85-37q-32-12-45 4t-3 44l40 110-130 132-106-40q-28-12-43 2t-3 46q12 30 31 79t27 65 22 45 25 36 29 20 41 13l52 0t71-6q10 14 29 39t77 85 118 104 145 75 165 19q8 0 14-6 4-4 6-14 10-82-18-168t-76-151-98-118-86-81z m50 296q22-22 54-22t54 22q22 24 22 56t-22 56q-22 22-54 22t-54-22q-22-24-22-56t22-56z%22 horiz-adv-x%3D%22860%22 %2F%3E%3Cglyph glyph-name%3D%22gauge%22 unicode%3D%22%26%23xe8de%3B%22 d%3D%22M406 178q34 56 214 284t194 220q12-6-96-278t-138-326q-50-86-136-36t-38 136z m94 380q-168 0-284-127t-116-311q0-30 2-46 2-22-12-37t-34-17-36 12-18 34q0 8-1 26t-1 28q0 226 145 382t355 156q72 0 134-18l-70-86q-40 4-64 4z m362-62q138-154 138-376 0-38-2-56-2-20-16-33t-34-13l-4 0q-22 4-35 20t-11 36q2 14 2 46 0 150-80 268 6 14 20 51t22 57z%22 horiz-adv-x%3D%221000%22 %2F%3E%3C%2Ffont%3E%3C%2Fdefs%3E%3C%2Fsvg%3E") format("svg");\n font-weight: normal;\n font-style: normal;\n}\n.lm-plugin {\n font-family: "Helvetica Neue", "Source Sans Pro", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n /*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n /* info */\n /* badge */\n /* overlay */\n /* background */\n /* highlight */\n background: #eeece7;\n}\n.lm-plugin html {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\n.lm-plugin body {\n margin: 0;\n}\n.lm-plugin article,\n.lm-plugin aside,\n.lm-plugin details,\n.lm-plugin figcaption,\n.lm-plugin figure,\n.lm-plugin footer,\n.lm-plugin header,\n.lm-plugin hgroup,\n.lm-plugin main,\n.lm-plugin menu,\n.lm-plugin nav,\n.lm-plugin section,\n.lm-plugin summary {\n display: block;\n}\n.lm-plugin audio,\n.lm-plugin canvas,\n.lm-plugin progress,\n.lm-plugin video {\n display: inline-block;\n vertical-align: baseline;\n}\n.lm-plugin audio:not([controls]) {\n display: none;\n height: 0;\n}\n.lm-plugin [hidden],\n.lm-plugin template {\n display: none;\n}\n.lm-plugin a {\n background-color: transparent;\n}\n.lm-plugin a:active,\n.lm-plugin a:hover {\n outline: 0;\n}\n.lm-plugin abbr[title] {\n border-bottom: 1px dotted;\n}\n.lm-plugin b,\n.lm-plugin strong {\n font-weight: bold;\n}\n.lm-plugin dfn {\n font-style: italic;\n}\n.lm-plugin h1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n.lm-plugin mark {\n background: #ff0;\n color: #000;\n}\n.lm-plugin small {\n font-size: 80%;\n}\n.lm-plugin sub,\n.lm-plugin sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n.lm-plugin sup {\n top: -0.5em;\n}\n.lm-plugin sub {\n bottom: -0.25em;\n}\n.lm-plugin img {\n border: 0;\n}\n.lm-plugin svg:not(:root) {\n overflow: hidden;\n}\n.lm-plugin figure {\n margin: 1em 40px;\n}\n.lm-plugin hr {\n box-sizing: content-box;\n height: 0;\n}\n.lm-plugin pre {\n overflow: auto;\n}\n.lm-plugin code,\n.lm-plugin kbd,\n.lm-plugin pre,\n.lm-plugin samp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n.lm-plugin button,\n.lm-plugin input,\n.lm-plugin optgroup,\n.lm-plugin select,\n.lm-plugin textarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\n.lm-plugin button {\n overflow: visible;\n}\n.lm-plugin button,\n.lm-plugin select {\n text-transform: none;\n}\n.lm-plugin button,\n.lm-plugin html input[type="button"],\n.lm-plugin input[type="reset"],\n.lm-plugin input[type="submit"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\n.lm-plugin button[disabled],\n.lm-plugin html input[disabled] {\n cursor: default;\n}\n.lm-plugin button::-moz-focus-inner,\n.lm-plugin input::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n.lm-plugin input {\n line-height: normal;\n}\n.lm-plugin input[type="checkbox"],\n.lm-plugin input[type="radio"] {\n box-sizing: border-box;\n padding: 0;\n}\n.lm-plugin input[type="number"]::-webkit-inner-spin-button,\n.lm-plugin input[type="number"]::-webkit-outer-spin-button {\n height: auto;\n}\n.lm-plugin input[type="search"] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\n.lm-plugin input[type="search"]::-webkit-search-cancel-button,\n.lm-plugin input[type="search"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n.lm-plugin fieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n.lm-plugin legend {\n border: 0;\n padding: 0;\n}\n.lm-plugin textarea {\n overflow: auto;\n}\n.lm-plugin optgroup {\n font-weight: bold;\n}\n.lm-plugin table {\n border-collapse: collapse;\n border-spacing: 0;\n}\n.lm-plugin td,\n.lm-plugin th {\n padding: 0;\n}\n.lm-plugin * {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.lm-plugin *:before,\n.lm-plugin *:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.lm-plugin html {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.lm-plugin body {\n font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857;\n color: #333333;\n background-color: #fff;\n}\n.lm-plugin input,\n.lm-plugin button,\n.lm-plugin select,\n.lm-plugin textarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n.lm-plugin a {\n color: #337ab7;\n text-decoration: none;\n}\n.lm-plugin a:hover,\n.lm-plugin a:focus {\n color: #23527c;\n text-decoration: underline;\n}\n.lm-plugin a:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.lm-plugin figure {\n margin: 0;\n}\n.lm-plugin img {\n vertical-align: middle;\n}\n.lm-plugin .img-responsive {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.lm-plugin .img-rounded {\n border-radius: 0;\n}\n.lm-plugin .img-thumbnail {\n padding: 4px;\n line-height: 1.42857;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 0;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.lm-plugin .img-circle {\n border-radius: 50%;\n}\n.lm-plugin hr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.lm-plugin .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.lm-plugin .sr-only-focusable:active,\n.lm-plugin .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n.lm-plugin [role="button"] {\n cursor: pointer;\n}\n.lm-plugin h1,\n.lm-plugin h2,\n.lm-plugin h3,\n.lm-plugin h4,\n.lm-plugin h5,\n.lm-plugin h6,\n.lm-plugin .h1,\n.lm-plugin .h2,\n.lm-plugin .h3,\n.lm-plugin .h4,\n.lm-plugin .h5,\n.lm-plugin .h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\n.lm-plugin h1 small,\n.lm-plugin h1 .small,\n.lm-plugin h2 small,\n.lm-plugin h2 .small,\n.lm-plugin h3 small,\n.lm-plugin h3 .small,\n.lm-plugin h4 small,\n.lm-plugin h4 .small,\n.lm-plugin h5 small,\n.lm-plugin h5 .small,\n.lm-plugin h6 small,\n.lm-plugin h6 .small,\n.lm-plugin .h1 small,\n.lm-plugin .h1 .small,\n.lm-plugin .h2 small,\n.lm-plugin .h2 .small,\n.lm-plugin .h3 small,\n.lm-plugin .h3 .small,\n.lm-plugin .h4 small,\n.lm-plugin .h4 .small,\n.lm-plugin .h5 small,\n.lm-plugin .h5 .small,\n.lm-plugin .h6 small,\n.lm-plugin .h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777777;\n}\n.lm-plugin h1,\n.lm-plugin .h1,\n.lm-plugin h2,\n.lm-plugin .h2,\n.lm-plugin h3,\n.lm-plugin .h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\n.lm-plugin h1 small,\n.lm-plugin h1 .small,\n.lm-plugin .h1 small,\n.lm-plugin .h1 .small,\n.lm-plugin h2 small,\n.lm-plugin h2 .small,\n.lm-plugin .h2 small,\n.lm-plugin .h2 .small,\n.lm-plugin h3 small,\n.lm-plugin h3 .small,\n.lm-plugin .h3 small,\n.lm-plugin .h3 .small {\n font-size: 65%;\n}\n.lm-plugin h4,\n.lm-plugin .h4,\n.lm-plugin h5,\n.lm-plugin .h5,\n.lm-plugin h6,\n.lm-plugin .h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.lm-plugin h4 small,\n.lm-plugin h4 .small,\n.lm-plugin .h4 small,\n.lm-plugin .h4 .small,\n.lm-plugin h5 small,\n.lm-plugin h5 .small,\n.lm-plugin .h5 small,\n.lm-plugin .h5 .small,\n.lm-plugin h6 small,\n.lm-plugin h6 .small,\n.lm-plugin .h6 small,\n.lm-plugin .h6 .small {\n font-size: 75%;\n}\n.lm-plugin h1,\n.lm-plugin .h1 {\n font-size: 36px;\n}\n.lm-plugin h2,\n.lm-plugin .h2 {\n font-size: 30px;\n}\n.lm-plugin h3,\n.lm-plugin .h3 {\n font-size: 24px;\n}\n.lm-plugin h4,\n.lm-plugin .h4 {\n font-size: 18px;\n}\n.lm-plugin h5,\n.lm-plugin .h5 {\n font-size: 14px;\n}\n.lm-plugin h6,\n.lm-plugin .h6 {\n font-size: 12px;\n}\n.lm-plugin p {\n margin: 0 0 10px;\n}\n.lm-plugin .lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lm-plugin .lead {\n font-size: 21px;\n }\n}\n.lm-plugin small,\n.lm-plugin .small {\n font-size: 85%;\n}\n.lm-plugin mark,\n.lm-plugin .mark {\n background-color: #fcf8e3;\n padding: .2em;\n}\n.lm-plugin .text-left {\n text-align: left;\n}\n.lm-plugin .text-right {\n text-align: right;\n}\n.lm-plugin .text-center {\n text-align: center;\n}\n.lm-plugin .text-justify {\n text-align: justify;\n}\n.lm-plugin .text-nowrap {\n white-space: nowrap;\n}\n.lm-plugin .text-lowercase {\n text-transform: lowercase;\n}\n.lm-plugin .text-uppercase,\n.lm-plugin .initialism {\n text-transform: uppercase;\n}\n.lm-plugin .text-capitalize {\n text-transform: capitalize;\n}\n.lm-plugin .text-muted {\n color: #777777;\n}\n.lm-plugin .text-primary {\n color: #337ab7;\n}\n.lm-plugin a.text-primary:hover,\n.lm-plugin a.text-primary:focus {\n color: #286090;\n}\n.lm-plugin .text-success {\n color: #3c763d;\n}\n.lm-plugin a.text-success:hover,\n.lm-plugin a.text-success:focus {\n color: #2b542c;\n}\n.lm-plugin .text-info {\n color: #31708f;\n}\n.lm-plugin a.text-info:hover,\n.lm-plugin a.text-info:focus {\n color: #245269;\n}\n.lm-plugin .text-warning {\n color: #8a6d3b;\n}\n.lm-plugin a.text-warning:hover,\n.lm-plugin a.text-warning:focus {\n color: #66512c;\n}\n.lm-plugin .text-danger {\n color: #a94442;\n}\n.lm-plugin a.text-danger:hover,\n.lm-plugin a.text-danger:focus {\n color: #843534;\n}\n.lm-plugin .bg-primary {\n color: #fff;\n}\n.lm-plugin .bg-primary {\n background-color: #337ab7;\n}\n.lm-plugin a.bg-primary:hover,\n.lm-plugin a.bg-primary:focus {\n background-color: #286090;\n}\n.lm-plugin .bg-success {\n background-color: #dff0d8;\n}\n.lm-plugin a.bg-success:hover,\n.lm-plugin a.bg-success:focus {\n background-color: #c1e2b3;\n}\n.lm-plugin .bg-info {\n background-color: #d9edf7;\n}\n.lm-plugin a.bg-info:hover,\n.lm-plugin a.bg-info:focus {\n background-color: #afd9ee;\n}\n.lm-plugin .bg-warning {\n background-color: #fcf8e3;\n}\n.lm-plugin a.bg-warning:hover,\n.lm-plugin a.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.lm-plugin .bg-danger {\n background-color: #f2dede;\n}\n.lm-plugin a.bg-danger:hover,\n.lm-plugin a.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.lm-plugin .page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\n.lm-plugin ul,\n.lm-plugin ol {\n margin-top: 0;\n margin-bottom: 10px;\n}\n.lm-plugin ul ul,\n.lm-plugin ul ol,\n.lm-plugin ol ul,\n.lm-plugin ol ol {\n margin-bottom: 0;\n}\n.lm-plugin .lm-list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.lm-plugin .list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.lm-plugin .list-inline > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n}\n.lm-plugin dl {\n margin-top: 0;\n margin-bottom: 20px;\n}\n.lm-plugin dt,\n.lm-plugin dd {\n line-height: 1.42857;\n}\n.lm-plugin dt {\n font-weight: bold;\n}\n.lm-plugin dd {\n margin-left: 0;\n}\n.lm-plugin .dl-horizontal dd:before,\n.lm-plugin .dl-horizontal dd:after {\n content: " ";\n display: table;\n}\n.lm-plugin .dl-horizontal dd:after {\n clear: both;\n}\n@media (min-width: 768px) {\n .lm-plugin .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .lm-plugin .dl-horizontal dd {\n margin-left: 180px;\n }\n}\n.lm-plugin abbr[title],\n.lm-plugin abbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777777;\n}\n.lm-plugin .initialism {\n font-size: 90%;\n}\n.lm-plugin blockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\n.lm-plugin blockquote p:last-child,\n.lm-plugin blockquote ul:last-child,\n.lm-plugin blockquote ol:last-child {\n margin-bottom: 0;\n}\n.lm-plugin blockquote footer,\n.lm-plugin blockquote small,\n.lm-plugin blockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857;\n color: #777777;\n}\n.lm-plugin blockquote footer:before,\n.lm-plugin blockquote small:before,\n.lm-plugin blockquote .small:before {\n content: \'\\2014 \\00A0\';\n}\n.lm-plugin .blockquote-reverse,\n.lm-plugin blockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n text-align: right;\n}\n.lm-plugin .blockquote-reverse footer:before,\n.lm-plugin .blockquote-reverse small:before,\n.lm-plugin .blockquote-reverse .small:before,\n.lm-plugin blockquote.pull-right footer:before,\n.lm-plugin blockquote.pull-right small:before,\n.lm-plugin blockquote.pull-right .small:before {\n content: \'\';\n}\n.lm-plugin .blockquote-reverse footer:after,\n.lm-plugin .blockquote-reverse small:after,\n.lm-plugin .blockquote-reverse .small:after,\n.lm-plugin blockquote.pull-right footer:after,\n.lm-plugin blockquote.pull-right small:after,\n.lm-plugin blockquote.pull-right .small:after {\n content: \'\\00A0 \\2014\';\n}\n.lm-plugin address {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857;\n}\n.lm-plugin fieldset {\n padding: 0;\n margin: 0;\n border: 0;\n min-width: 0;\n}\n.lm-plugin legend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\n.lm-plugin label {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\n.lm-plugin input[type="search"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.lm-plugin input[type="radio"],\n.lm-plugin input[type="checkbox"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\n.lm-plugin input[type="file"] {\n display: block;\n}\n.lm-plugin input[type="range"] {\n display: block;\n width: 100%;\n}\n.lm-plugin select[multiple],\n.lm-plugin select[size] {\n height: auto;\n}\n.lm-plugin input[type="file"]:focus,\n.lm-plugin input[type="radio"]:focus,\n.lm-plugin input[type="checkbox"]:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.lm-plugin output {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857;\n color: #555555;\n}\n.lm-plugin .lm-form-control,\n.lm-plugin .lm-control-row select,\n.lm-plugin .lm-control-row button,\n.lm-plugin .lm-control-row input[type=text] {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 0;\n}\n.lm-plugin .lm-form-control:focus,\n.lm-plugin .lm-control-row select:focus,\n.lm-plugin .lm-control-row button:focus,\n.lm-plugin .lm-control-row input:focus[type=text] {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.lm-plugin .lm-form-control::-moz-placeholder,\n.lm-plugin .lm-control-row select::-moz-placeholder,\n.lm-plugin .lm-control-row button::-moz-placeholder,\n.lm-plugin .lm-control-row input[type=text]::-moz-placeholder {\n color: #999;\n opacity: 1;\n}\n.lm-plugin .lm-form-control:-ms-input-placeholder,\n.lm-plugin .lm-control-row select:-ms-input-placeholder,\n.lm-plugin .lm-control-row button:-ms-input-placeholder,\n.lm-plugin .lm-control-row input:-ms-input-placeholder[type=text] {\n color: #999;\n}\n.lm-plugin .lm-form-control::-webkit-input-placeholder,\n.lm-plugin .lm-control-row select::-webkit-input-placeholder,\n.lm-plugin .lm-control-row button::-webkit-input-placeholder,\n.lm-plugin .lm-control-row input[type=text]::-webkit-input-placeholder {\n color: #999;\n}\n.lm-plugin .lm-form-control::-ms-expand,\n.lm-plugin .lm-control-row select::-ms-expand,\n.lm-plugin .lm-control-row button::-ms-expand,\n.lm-plugin .lm-control-row input[type=text]::-ms-expand {\n border: 0;\n background-color: transparent;\n}\n.lm-plugin .lm-form-control[disabled],\n.lm-plugin .lm-control-row select[disabled],\n.lm-plugin .lm-control-row button[disabled],\n.lm-plugin .lm-control-row input[disabled][type=text],\n.lm-plugin .lm-form-control[readonly],\n.lm-plugin .lm-control-row select[readonly],\n.lm-plugin .lm-control-row button[readonly],\n.lm-plugin .lm-control-row input[readonly][type=text],\nfieldset[disabled] .lm-plugin .lm-form-control,\nfieldset[disabled] .lm-plugin .lm-control-row select,\nfieldset[disabled] .lm-plugin .lm-control-row button,\nfieldset[disabled] .lm-plugin .lm-control-row input[type=text] {\n background-color: #eeeeee;\n opacity: 1;\n}\n.lm-plugin .lm-form-control[disabled],\n.lm-plugin .lm-control-row select[disabled],\n.lm-plugin .lm-control-row button[disabled],\n.lm-plugin .lm-control-row input[disabled][type=text],\nfieldset[disabled] .lm-plugin .lm-form-control,\nfieldset[disabled] .lm-plugin .lm-control-row select,\nfieldset[disabled] .lm-plugin .lm-control-row button,\nfieldset[disabled] .lm-plugin .lm-control-row input[type=text] {\n cursor: not-allowed;\n}\n.lm-plugin textarea.lm-form-control {\n height: auto;\n}\n.lm-plugin input[type="search"] {\n -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n .lm-plugin input[type="date"].lm-form-control,\n .lm-plugin .lm-control-row input[type="date"][type=text],\n .lm-plugin input[type="time"].lm-form-control,\n .lm-plugin .lm-control-row input[type="time"][type=text],\n .lm-plugin input[type="datetime-local"].lm-form-control,\n .lm-plugin .lm-control-row input[type="datetime-local"][type=text],\n .lm-plugin input[type="month"].lm-form-control,\n .lm-plugin .lm-control-row input[type="month"][type=text] {\n line-height: 34px;\n }\n\n .lm-plugin input[type="date"].input-sm,\n .lm-plugin .input-group-sm > input.lm-form-control[type="date"],\n .lm-plugin .lm-control-row .input-group-sm > input[type="date"][type=text],\n .lm-plugin .input-group-sm > input.input-group-addon[type="date"],\n .lm-plugin .input-group-sm > .input-group-lm-btn > input.lm-btn[type="date"],\n .input-group-sm .lm-plugin input[type="date"],\n .lm-plugin input[type="time"].input-sm,\n .lm-plugin .input-group-sm > input.lm-form-control[type="time"],\n .lm-plugin .lm-control-row .input-group-sm > input[type="time"][type=text],\n .lm-plugin .input-group-sm > input.input-group-addon[type="time"],\n .lm-plugin .input-group-sm > .input-group-lm-btn > input.lm-btn[type="time"],\n .input-group-sm\n .lm-plugin input[type="time"],\n .lm-plugin input[type="datetime-local"].input-sm,\n .lm-plugin .input-group-sm > input.lm-form-control[type="datetime-local"],\n .lm-plugin .lm-control-row .input-group-sm > input[type="datetime-local"][type=text],\n .lm-plugin .input-group-sm > input.input-group-addon[type="datetime-local"],\n .lm-plugin .input-group-sm > .input-group-lm-btn > input.lm-btn[type="datetime-local"],\n .input-group-sm\n .lm-plugin input[type="datetime-local"],\n .lm-plugin input[type="month"].input-sm,\n .lm-plugin .input-group-sm > input.lm-form-control[type="month"],\n .lm-plugin .lm-control-row .input-group-sm > input[type="month"][type=text],\n .lm-plugin .input-group-sm > input.input-group-addon[type="month"],\n .lm-plugin .input-group-sm > .input-group-lm-btn > input.lm-btn[type="month"],\n .input-group-sm\n .lm-plugin input[type="month"] {\n line-height: 30px;\n }\n\n .lm-plugin input[type="date"].input-lg,\n .lm-plugin .input-group-lg > input.lm-form-control[type="date"],\n .lm-plugin .lm-control-row .input-group-lg > input[type="date"][type=text],\n .lm-plugin .input-group-lg > input.input-group-addon[type="date"],\n .lm-plugin .input-group-lg > .input-group-lm-btn > input.lm-btn[type="date"],\n .input-group-lg .lm-plugin input[type="date"],\n .lm-plugin input[type="time"].input-lg,\n .lm-plugin .input-group-lg > input.lm-form-control[type="time"],\n .lm-plugin .lm-control-row .input-group-lg > input[type="time"][type=text],\n .lm-plugin .input-group-lg > input.input-group-addon[type="time"],\n .lm-plugin .input-group-lg > .input-group-lm-btn > input.lm-btn[type="time"],\n .input-group-lg\n .lm-plugin input[type="time"],\n .lm-plugin input[type="datetime-local"].input-lg,\n .lm-plugin .input-group-lg > input.lm-form-control[type="datetime-local"],\n .lm-plugin .lm-control-row .input-group-lg > input[type="datetime-local"][type=text],\n .lm-plugin .input-group-lg > input.input-group-addon[type="datetime-local"],\n .lm-plugin .input-group-lg > .input-group-lm-btn > input.lm-btn[type="datetime-local"],\n .input-group-lg\n .lm-plugin input[type="datetime-local"],\n .lm-plugin input[type="month"].input-lg,\n .lm-plugin .input-group-lg > input.lm-form-control[type="month"],\n .lm-plugin .lm-control-row .input-group-lg > input[type="month"][type=text],\n .lm-plugin .input-group-lg > input.input-group-addon[type="month"],\n .lm-plugin .input-group-lg > .input-group-lm-btn > input.lm-btn[type="month"],\n .input-group-lg\n .lm-plugin input[type="month"] {\n line-height: 46px;\n }\n}\n.lm-plugin .form-group {\n margin-bottom: 15px;\n}\n.lm-plugin .radio,\n.lm-plugin .checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.lm-plugin .radio label,\n.lm-plugin .checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.lm-plugin .radio input[type="radio"],\n.lm-plugin .radio-inline input[type="radio"],\n.lm-plugin .checkbox input[type="checkbox"],\n.lm-plugin .checkbox-inline input[type="checkbox"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n.lm-plugin .radio + .radio,\n.lm-plugin .checkbox + .checkbox {\n margin-top: -5px;\n}\n.lm-plugin .radio-inline,\n.lm-plugin .checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.lm-plugin .radio-inline + .radio-inline,\n.lm-plugin .checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\n.lm-plugin input[type="radio"][disabled],\n.lm-plugin input[type="radio"].disabled,\nfieldset[disabled] .lm-plugin input[type="radio"],\n.lm-plugin input[type="checkbox"][disabled],\n.lm-plugin input[type="checkbox"].disabled,\nfieldset[disabled]\n .lm-plugin input[type="checkbox"] {\n cursor: not-allowed;\n}\n.lm-plugin .radio-inline.disabled,\nfieldset[disabled] .lm-plugin .radio-inline,\n.lm-plugin .checkbox-inline.disabled,\nfieldset[disabled]\n .lm-plugin .checkbox-inline {\n cursor: not-allowed;\n}\n.lm-plugin .radio.disabled label,\nfieldset[disabled] .lm-plugin .radio label,\n.lm-plugin .checkbox.disabled label,\nfieldset[disabled]\n .lm-plugin .checkbox label {\n cursor: not-allowed;\n}\n.lm-plugin .lm-form-control-static {\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n min-height: 34px;\n}\n.lm-plugin .lm-form-control-static.input-lg,\n.lm-plugin .input-group-lg > .lm-form-control-static.lm-form-control,\n.lm-plugin .lm-control-row .input-group-lg > select.lm-form-control-static,\n.lm-plugin .lm-control-row .input-group-lg > button.lm-form-control-static,\n.lm-plugin .lm-control-row .input-group-lg > input.lm-form-control-static[type=text],\n.lm-plugin .input-group-lg > .lm-form-control-static.input-group-addon,\n.lm-plugin .input-group-lg > .input-group-lm-btn > .lm-form-control-static.lm-btn,\n.lm-plugin .lm-control-row .input-group-lg > .input-group-lm-btn > button.lm-form-control-static,\n.lm-plugin .lm-form-control-static.input-sm,\n.lm-plugin .input-group-sm > .lm-form-control-static.lm-form-control,\n.lm-plugin .lm-control-row .input-group-sm > select.lm-form-control-static,\n.lm-plugin .lm-control-row .input-group-sm > button.lm-form-control-static,\n.lm-plugin .lm-control-row .input-group-sm > input.lm-form-control-static[type=text],\n.lm-plugin .input-group-sm > .lm-form-control-static.input-group-addon,\n.lm-plugin .input-group-sm > .input-group-lm-btn > .lm-form-control-static.lm-btn,\n.lm-plugin .lm-control-row .input-group-sm > .input-group-lm-btn > button.lm-form-control-static {\n padding-left: 0;\n padding-right: 0;\n}\n.lm-plugin .input-sm,\n.lm-plugin .input-group-sm > .lm-form-control,\n.lm-plugin .lm-control-row .input-group-sm > select,\n.lm-plugin .lm-control-row .input-group-sm > button,\n.lm-plugin .lm-control-row .input-group-sm > input[type=text],\n.lm-plugin .input-group-sm > .input-group-addon,\n.lm-plugin .input-group-sm > .input-group-lm-btn > .lm-btn,\n.lm-plugin .lm-control-row .input-group-sm > .input-group-lm-btn > button {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 0;\n}\n.lm-plugin select.input-sm,\n.lm-plugin .input-group-sm > select.lm-form-control,\n.lm-plugin .lm-control-row .input-group-sm > select,\n.lm-plugin .input-group-sm > select.input-group-addon,\n.lm-plugin .input-group-sm > .input-group-lm-btn > select.lm-btn {\n height: 30px;\n line-height: 30px;\n}\n.lm-plugin textarea.input-sm,\n.lm-plugin .input-group-sm > textarea.lm-form-control,\n.lm-plugin .input-group-sm > textarea.input-group-addon,\n.lm-plugin .input-group-sm > .input-group-lm-btn > textarea.lm-btn,\n.lm-plugin select[multiple].input-sm,\n.lm-plugin .input-group-sm > select.lm-form-control[multiple],\n.lm-plugin .lm-control-row .input-group-sm > select[multiple],\n.lm-plugin .input-group-sm > select.input-group-addon[multiple],\n.lm-plugin .input-group-sm > .input-group-lm-btn > select.lm-btn[multiple] {\n height: auto;\n}\n.lm-plugin .form-group-sm .lm-form-control,\n.lm-plugin .form-group-sm .lm-control-row select,\n.lm-plugin .lm-control-row .form-group-sm select,\n.lm-plugin .form-group-sm .lm-control-row button,\n.lm-plugin .lm-control-row .form-group-sm button,\n.lm-plugin .form-group-sm .lm-control-row input[type=text],\n.lm-plugin .lm-control-row .form-group-sm input[type=text] {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 0;\n}\n.lm-plugin .form-group-sm select.lm-form-control,\n.lm-plugin .form-group-sm .lm-control-row select,\n.lm-plugin .lm-control-row .form-group-sm select {\n height: 30px;\n line-height: 30px;\n}\n.lm-plugin .form-group-sm textarea.lm-form-control,\n.lm-plugin .form-group-sm select[multiple].lm-form-control,\n.lm-plugin .form-group-sm .lm-control-row select[multiple],\n.lm-plugin .lm-control-row .form-group-sm select[multiple] {\n height: auto;\n}\n.lm-plugin .form-group-sm .lm-form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.lm-plugin .input-lg,\n.lm-plugin .input-group-lg > .lm-form-control,\n.lm-plugin .lm-control-row .input-group-lg > select,\n.lm-plugin .lm-control-row .input-group-lg > button,\n.lm-plugin .lm-control-row .input-group-lg > input[type=text],\n.lm-plugin .input-group-lg > .input-group-addon,\n.lm-plugin .input-group-lg > .input-group-lm-btn > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lg > .input-group-lm-btn > button {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.33333;\n border-radius: 0;\n}\n.lm-plugin select.input-lg,\n.lm-plugin .input-group-lg > select.lm-form-control,\n.lm-plugin .lm-control-row .input-group-lg > select,\n.lm-plugin .input-group-lg > select.input-group-addon,\n.lm-plugin .input-group-lg > .input-group-lm-btn > select.lm-btn {\n height: 46px;\n line-height: 46px;\n}\n.lm-plugin textarea.input-lg,\n.lm-plugin .input-group-lg > textarea.lm-form-control,\n.lm-plugin .input-group-lg > textarea.input-group-addon,\n.lm-plugin .input-group-lg > .input-group-lm-btn > textarea.lm-btn,\n.lm-plugin select[multiple].input-lg,\n.lm-plugin .input-group-lg > select.lm-form-control[multiple],\n.lm-plugin .lm-control-row .input-group-lg > select[multiple],\n.lm-plugin .input-group-lg > select.input-group-addon[multiple],\n.lm-plugin .input-group-lg > .input-group-lm-btn > select.lm-btn[multiple] {\n height: auto;\n}\n.lm-plugin .form-group-lg .lm-form-control,\n.lm-plugin .form-group-lg .lm-control-row select,\n.lm-plugin .lm-control-row .form-group-lg select,\n.lm-plugin .form-group-lg .lm-control-row button,\n.lm-plugin .lm-control-row .form-group-lg button,\n.lm-plugin .form-group-lg .lm-control-row input[type=text],\n.lm-plugin .lm-control-row .form-group-lg input[type=text] {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.33333;\n border-radius: 0;\n}\n.lm-plugin .form-group-lg select.lm-form-control,\n.lm-plugin .form-group-lg .lm-control-row select,\n.lm-plugin .lm-control-row .form-group-lg select {\n height: 46px;\n line-height: 46px;\n}\n.lm-plugin .form-group-lg textarea.lm-form-control,\n.lm-plugin .form-group-lg select[multiple].lm-form-control,\n.lm-plugin .form-group-lg .lm-control-row select[multiple],\n.lm-plugin .lm-control-row .form-group-lg select[multiple] {\n height: auto;\n}\n.lm-plugin .form-group-lg .lm-form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.33333;\n}\n.lm-plugin .has-feedback {\n position: relative;\n}\n.lm-plugin .has-feedback .lm-form-control,\n.lm-plugin .has-feedback .lm-control-row select,\n.lm-plugin .lm-control-row .has-feedback select,\n.lm-plugin .has-feedback .lm-control-row button,\n.lm-plugin .lm-control-row .has-feedback button,\n.lm-plugin .has-feedback .lm-control-row input[type=text],\n.lm-plugin .lm-control-row .has-feedback input[type=text] {\n padding-right: 42.5px;\n}\n.lm-plugin .lm-form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.lm-plugin .input-lg + .lm-form-control-feedback,\n.lm-plugin .input-group-lg > .lm-form-control + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .input-group-lg > select + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .input-group-lg > button + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .input-group-lg > input[type=text] + .lm-form-control-feedback,\n.lm-plugin .input-group-lg > .input-group-addon + .lm-form-control-feedback,\n.lm-plugin .input-group-lg > .input-group-lm-btn > .lm-btn + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .input-group-lg > .input-group-lm-btn > button + .lm-form-control-feedback,\n.lm-plugin .input-group-lg + .lm-form-control-feedback,\n.lm-plugin .form-group-lg .lm-form-control + .lm-form-control-feedback,\n.lm-plugin .form-group-lg .lm-control-row select + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .form-group-lg select + .lm-form-control-feedback,\n.lm-plugin .form-group-lg .lm-control-row button + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .form-group-lg button + .lm-form-control-feedback,\n.lm-plugin .form-group-lg .lm-control-row input[type=text] + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .form-group-lg input[type=text] + .lm-form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.lm-plugin .input-sm + .lm-form-control-feedback,\n.lm-plugin .input-group-sm > .lm-form-control + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .input-group-sm > select + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .input-group-sm > button + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .input-group-sm > input[type=text] + .lm-form-control-feedback,\n.lm-plugin .input-group-sm > .input-group-addon + .lm-form-control-feedback,\n.lm-plugin .input-group-sm > .input-group-lm-btn > .lm-btn + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .input-group-sm > .input-group-lm-btn > button + .lm-form-control-feedback,\n.lm-plugin .input-group-sm + .lm-form-control-feedback,\n.lm-plugin .form-group-sm .lm-form-control + .lm-form-control-feedback,\n.lm-plugin .form-group-sm .lm-control-row select + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .form-group-sm select + .lm-form-control-feedback,\n.lm-plugin .form-group-sm .lm-control-row button + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .form-group-sm button + .lm-form-control-feedback,\n.lm-plugin .form-group-sm .lm-control-row input[type=text] + .lm-form-control-feedback,\n.lm-plugin .lm-control-row .form-group-sm input[type=text] + .lm-form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.lm-plugin .has-success .help-block,\n.lm-plugin .has-success .control-label,\n.lm-plugin .has-success .radio,\n.lm-plugin .has-success .checkbox,\n.lm-plugin .has-success .radio-inline,\n.lm-plugin .has-success .checkbox-inline,\n.lm-plugin .has-success.radio label,\n.lm-plugin .has-success.checkbox label,\n.lm-plugin .has-success.radio-inline label,\n.lm-plugin .has-success.checkbox-inline label {\n color: #3c763d;\n}\n.lm-plugin .has-success .lm-form-control,\n.lm-plugin .has-success .lm-control-row select,\n.lm-plugin .lm-control-row .has-success select,\n.lm-plugin .has-success .lm-control-row button,\n.lm-plugin .lm-control-row .has-success button,\n.lm-plugin .has-success .lm-control-row input[type=text],\n.lm-plugin .lm-control-row .has-success input[type=text] {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.lm-plugin .has-success .lm-form-control:focus,\n.lm-plugin .has-success .lm-control-row select:focus,\n.lm-plugin .lm-control-row .has-success select:focus,\n.lm-plugin .has-success .lm-control-row button:focus,\n.lm-plugin .lm-control-row .has-success button:focus,\n.lm-plugin .has-success .lm-control-row input:focus[type=text],\n.lm-plugin .lm-control-row .has-success input:focus[type=text] {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.lm-plugin .has-success .input-group-addon {\n color: #3c763d;\n border-color: #3c763d;\n background-color: #dff0d8;\n}\n.lm-plugin .has-success .lm-form-control-feedback {\n color: #3c763d;\n}\n.lm-plugin .has-warning .help-block,\n.lm-plugin .has-warning .control-label,\n.lm-plugin .has-warning .radio,\n.lm-plugin .has-warning .checkbox,\n.lm-plugin .has-warning .radio-inline,\n.lm-plugin .has-warning .checkbox-inline,\n.lm-plugin .has-warning.radio label,\n.lm-plugin .has-warning.checkbox label,\n.lm-plugin .has-warning.radio-inline label,\n.lm-plugin .has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.lm-plugin .has-warning .lm-form-control,\n.lm-plugin .has-warning .lm-control-row select,\n.lm-plugin .lm-control-row .has-warning select,\n.lm-plugin .has-warning .lm-control-row button,\n.lm-plugin .lm-control-row .has-warning button,\n.lm-plugin .has-warning .lm-control-row input[type=text],\n.lm-plugin .lm-control-row .has-warning input[type=text] {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.lm-plugin .has-warning .lm-form-control:focus,\n.lm-plugin .has-warning .lm-control-row select:focus,\n.lm-plugin .lm-control-row .has-warning select:focus,\n.lm-plugin .has-warning .lm-control-row button:focus,\n.lm-plugin .lm-control-row .has-warning button:focus,\n.lm-plugin .has-warning .lm-control-row input:focus[type=text],\n.lm-plugin .lm-control-row .has-warning input:focus[type=text] {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.lm-plugin .has-warning .input-group-addon {\n color: #8a6d3b;\n border-color: #8a6d3b;\n background-color: #fcf8e3;\n}\n.lm-plugin .has-warning .lm-form-control-feedback {\n color: #8a6d3b;\n}\n.lm-plugin .has-error .help-block,\n.lm-plugin .has-error .control-label,\n.lm-plugin .has-error .radio,\n.lm-plugin .has-error .checkbox,\n.lm-plugin .has-error .radio-inline,\n.lm-plugin .has-error .checkbox-inline,\n.lm-plugin .has-error.radio label,\n.lm-plugin .has-error.checkbox label,\n.lm-plugin .has-error.radio-inline label,\n.lm-plugin .has-error.checkbox-inline label {\n color: #a94442;\n}\n.lm-plugin .has-error .lm-form-control,\n.lm-plugin .has-error .lm-control-row select,\n.lm-plugin .lm-control-row .has-error select,\n.lm-plugin .has-error .lm-control-row button,\n.lm-plugin .lm-control-row .has-error button,\n.lm-plugin .has-error .lm-control-row input[type=text],\n.lm-plugin .lm-control-row .has-error input[type=text] {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.lm-plugin .has-error .lm-form-control:focus,\n.lm-plugin .has-error .lm-control-row select:focus,\n.lm-plugin .lm-control-row .has-error select:focus,\n.lm-plugin .has-error .lm-control-row button:focus,\n.lm-plugin .lm-control-row .has-error button:focus,\n.lm-plugin .has-error .lm-control-row input:focus[type=text],\n.lm-plugin .lm-control-row .has-error input:focus[type=text] {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.lm-plugin .has-error .input-group-addon {\n color: #a94442;\n border-color: #a94442;\n background-color: #f2dede;\n}\n.lm-plugin .has-error .lm-form-control-feedback {\n color: #a94442;\n}\n.lm-plugin .has-feedback label ~ .lm-form-control-feedback {\n top: 25px;\n}\n.lm-plugin .has-feedback label.sr-only ~ .lm-form-control-feedback {\n top: 0;\n}\n.lm-plugin .help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .lm-plugin .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n .lm-plugin .form-inline .lm-form-control,\n .lm-plugin .form-inline .lm-control-row select,\n .lm-plugin .lm-control-row .form-inline select,\n .lm-plugin .form-inline .lm-control-row button,\n .lm-plugin .lm-control-row .form-inline button,\n .lm-plugin .form-inline .lm-control-row input[type=text],\n .lm-plugin .lm-control-row .form-inline input[type=text] {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n\n .lm-plugin .form-inline .lm-form-control-static {\n display: inline-block;\n }\n\n .lm-plugin .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n\n .lm-plugin .form-inline .input-group .input-group-addon,\n .lm-plugin .form-inline .input-group .input-group-lm-btn,\n .lm-plugin .form-inline .input-group .lm-form-control,\n .lm-plugin .form-inline .input-group .lm-control-row select,\n .lm-plugin .lm-control-row .form-inline .input-group select,\n .lm-plugin .form-inline .input-group .lm-control-row button,\n .lm-plugin .lm-control-row .form-inline .input-group button,\n .lm-plugin .form-inline .input-group .lm-control-row input[type=text],\n .lm-plugin .lm-control-row .form-inline .input-group input[type=text] {\n width: auto;\n }\n\n .lm-plugin .form-inline .input-group > .lm-form-control,\n .lm-plugin .form-inline .lm-control-row .input-group > select,\n .lm-plugin .lm-control-row .form-inline .input-group > select,\n .lm-plugin .form-inline .lm-control-row .input-group > button,\n .lm-plugin .lm-control-row .form-inline .input-group > button,\n .lm-plugin .form-inline .lm-control-row .input-group > input[type=text],\n .lm-plugin .lm-control-row .form-inline .input-group > input[type=text] {\n width: 100%;\n }\n\n .lm-plugin .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n .lm-plugin .form-inline .radio,\n .lm-plugin .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n .lm-plugin .form-inline .radio label,\n .lm-plugin .form-inline .checkbox label {\n padding-left: 0;\n }\n\n .lm-plugin .form-inline .radio input[type="radio"],\n .lm-plugin .form-inline .checkbox input[type="checkbox"] {\n position: relative;\n margin-left: 0;\n }\n\n .lm-plugin .form-inline .has-feedback .lm-form-control-feedback {\n top: 0;\n }\n}\n.lm-plugin .form-horizontal .radio,\n.lm-plugin .form-horizontal .checkbox,\n.lm-plugin .form-horizontal .radio-inline,\n.lm-plugin .form-horizontal .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 7px;\n}\n.lm-plugin .form-horizontal .radio,\n.lm-plugin .form-horizontal .checkbox {\n min-height: 27px;\n}\n.lm-plugin .form-horizontal .form-group {\n margin-left: -15px;\n margin-right: -15px;\n}\n.lm-plugin .form-horizontal .form-group:before,\n.lm-plugin .form-horizontal .form-group:after {\n content: " ";\n display: table;\n}\n.lm-plugin .form-horizontal .form-group:after {\n clear: both;\n}\n@media (min-width: 768px) {\n .lm-plugin .form-horizontal .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: 7px;\n }\n}\n.lm-plugin .form-horizontal .has-feedback .lm-form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .lm-plugin .form-horizontal .form-group-lg .control-label {\n padding-top: 11px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .lm-plugin .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.lm-plugin .lm-btn,\n.lm-plugin .lm-control-row button {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 0;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.lm-plugin .lm-btn:focus,\n.lm-plugin .lm-control-row button:focus,\n.lm-plugin .lm-btn.focus,\n.lm-plugin .lm-control-row button.focus,\n.lm-plugin .lm-btn:active:focus,\n.lm-plugin .lm-control-row button:active:focus,\n.lm-plugin .lm-btn:active.focus,\n.lm-plugin .lm-control-row button:active.focus,\n.lm-plugin .lm-btn.active:focus,\n.lm-plugin .lm-control-row button.active:focus,\n.lm-plugin .lm-btn.active.focus,\n.lm-plugin .lm-control-row button.active.focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.lm-plugin .lm-btn:hover,\n.lm-plugin .lm-control-row button:hover,\n.lm-plugin .lm-btn:focus,\n.lm-plugin .lm-control-row button:focus,\n.lm-plugin .lm-btn.focus,\n.lm-plugin .lm-control-row button.focus {\n color: #333;\n text-decoration: none;\n}\n.lm-plugin .lm-btn:active,\n.lm-plugin .lm-control-row button:active,\n.lm-plugin .lm-btn.active,\n.lm-plugin .lm-control-row button.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.lm-plugin .lm-btn.disabled,\n.lm-plugin .lm-control-row button.disabled,\n.lm-plugin .lm-btn[disabled],\n.lm-plugin .lm-control-row button[disabled],\nfieldset[disabled] .lm-plugin .lm-btn,\nfieldset[disabled] .lm-plugin .lm-control-row button {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.lm-plugin a.lm-btn.disabled,\nfieldset[disabled] .lm-plugin a.lm-btn {\n pointer-events: none;\n}\n.lm-plugin .lm-btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.lm-plugin .lm-btn-default:focus,\n.lm-plugin .lm-btn-default.focus {\n color: #333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.lm-plugin .lm-btn-default:hover {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.lm-plugin .lm-btn-default:active,\n.lm-plugin .lm-btn-default.active,\n.open > .lm-plugin .lm-btn-default.dropdown-toggle {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.lm-plugin .lm-btn-default:active:hover,\n.lm-plugin .lm-btn-default:active:focus,\n.lm-plugin .lm-btn-default:active.focus,\n.lm-plugin .lm-btn-default.active:hover,\n.lm-plugin .lm-btn-default.active:focus,\n.lm-plugin .lm-btn-default.active.focus,\n.open > .lm-plugin .lm-btn-default.dropdown-toggle:hover,\n.open > .lm-plugin .lm-btn-default.dropdown-toggle:focus,\n.open > .lm-plugin .lm-btn-default.dropdown-toggle.focus {\n color: #333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.lm-plugin .lm-btn-default:active,\n.lm-plugin .lm-btn-default.active,\n.open > .lm-plugin .lm-btn-default.dropdown-toggle {\n background-image: none;\n}\n.lm-plugin .lm-btn-default.disabled:hover,\n.lm-plugin .lm-btn-default.disabled:focus,\n.lm-plugin .lm-btn-default.disabled.focus,\n.lm-plugin .lm-btn-default[disabled]:hover,\n.lm-plugin .lm-btn-default[disabled]:focus,\n.lm-plugin .lm-btn-default[disabled].focus,\nfieldset[disabled] .lm-plugin .lm-btn-default:hover,\nfieldset[disabled] .lm-plugin .lm-btn-default:focus,\nfieldset[disabled] .lm-plugin .lm-btn-default.focus {\n background-color: #fff;\n border-color: #ccc;\n}\n.lm-plugin .lm-btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.lm-plugin .lm-btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.lm-plugin .lm-btn-primary:focus,\n.lm-plugin .lm-btn-primary.focus {\n color: #fff;\n background-color: #286090;\n border-color: #122b40;\n}\n.lm-plugin .lm-btn-primary:hover {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.lm-plugin .lm-btn-primary:active,\n.lm-plugin .lm-btn-primary.active,\n.open > .lm-plugin .lm-btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.lm-plugin .lm-btn-primary:active:hover,\n.lm-plugin .lm-btn-primary:active:focus,\n.lm-plugin .lm-btn-primary:active.focus,\n.lm-plugin .lm-btn-primary.active:hover,\n.lm-plugin .lm-btn-primary.active:focus,\n.lm-plugin .lm-btn-primary.active.focus,\n.open > .lm-plugin .lm-btn-primary.dropdown-toggle:hover,\n.open > .lm-plugin .lm-btn-primary.dropdown-toggle:focus,\n.open > .lm-plugin .lm-btn-primary.dropdown-toggle.focus {\n color: #fff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.lm-plugin .lm-btn-primary:active,\n.lm-plugin .lm-btn-primary.active,\n.open > .lm-plugin .lm-btn-primary.dropdown-toggle {\n background-image: none;\n}\n.lm-plugin .lm-btn-primary.disabled:hover,\n.lm-plugin .lm-btn-primary.disabled:focus,\n.lm-plugin .lm-btn-primary.disabled.focus,\n.lm-plugin .lm-btn-primary[disabled]:hover,\n.lm-plugin .lm-btn-primary[disabled]:focus,\n.lm-plugin .lm-btn-primary[disabled].focus,\nfieldset[disabled] .lm-plugin .lm-btn-primary:hover,\nfieldset[disabled] .lm-plugin .lm-btn-primary:focus,\nfieldset[disabled] .lm-plugin .lm-btn-primary.focus {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.lm-plugin .lm-btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.lm-plugin .lm-btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.lm-plugin .lm-btn-success:focus,\n.lm-plugin .lm-btn-success.focus {\n color: #fff;\n background-color: #449d44;\n border-color: #255625;\n}\n.lm-plugin .lm-btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.lm-plugin .lm-btn-success:active,\n.lm-plugin .lm-btn-success.active,\n.open > .lm-plugin .lm-btn-success.dropdown-toggle {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.lm-plugin .lm-btn-success:active:hover,\n.lm-plugin .lm-btn-success:active:focus,\n.lm-plugin .lm-btn-success:active.focus,\n.lm-plugin .lm-btn-success.active:hover,\n.lm-plugin .lm-btn-success.active:focus,\n.lm-plugin .lm-btn-success.active.focus,\n.open > .lm-plugin .lm-btn-success.dropdown-toggle:hover,\n.open > .lm-plugin .lm-btn-success.dropdown-toggle:focus,\n.open > .lm-plugin .lm-btn-success.dropdown-toggle.focus {\n color: #fff;\n background-color: #398439;\n border-color: #255625;\n}\n.lm-plugin .lm-btn-success:active,\n.lm-plugin .lm-btn-success.active,\n.open > .lm-plugin .lm-btn-success.dropdown-toggle {\n background-image: none;\n}\n.lm-plugin .lm-btn-success.disabled:hover,\n.lm-plugin .lm-btn-success.disabled:focus,\n.lm-plugin .lm-btn-success.disabled.focus,\n.lm-plugin .lm-btn-success[disabled]:hover,\n.lm-plugin .lm-btn-success[disabled]:focus,\n.lm-plugin .lm-btn-success[disabled].focus,\nfieldset[disabled] .lm-plugin .lm-btn-success:hover,\nfieldset[disabled] .lm-plugin .lm-btn-success:focus,\nfieldset[disabled] .lm-plugin .lm-btn-success.focus {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.lm-plugin .lm-btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.lm-plugin .lm-btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.lm-plugin .lm-btn-info:focus,\n.lm-plugin .lm-btn-info.focus {\n color: #fff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.lm-plugin .lm-btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.lm-plugin .lm-btn-info:active,\n.lm-plugin .lm-btn-info.active,\n.open > .lm-plugin .lm-btn-info.dropdown-toggle {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.lm-plugin .lm-btn-info:active:hover,\n.lm-plugin .lm-btn-info:active:focus,\n.lm-plugin .lm-btn-info:active.focus,\n.lm-plugin .lm-btn-info.active:hover,\n.lm-plugin .lm-btn-info.active:focus,\n.lm-plugin .lm-btn-info.active.focus,\n.open > .lm-plugin .lm-btn-info.dropdown-toggle:hover,\n.open > .lm-plugin .lm-btn-info.dropdown-toggle:focus,\n.open > .lm-plugin .lm-btn-info.dropdown-toggle.focus {\n color: #fff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.lm-plugin .lm-btn-info:active,\n.lm-plugin .lm-btn-info.active,\n.open > .lm-plugin .lm-btn-info.dropdown-toggle {\n background-image: none;\n}\n.lm-plugin .lm-btn-info.disabled:hover,\n.lm-plugin .lm-btn-info.disabled:focus,\n.lm-plugin .lm-btn-info.disabled.focus,\n.lm-plugin .lm-btn-info[disabled]:hover,\n.lm-plugin .lm-btn-info[disabled]:focus,\n.lm-plugin .lm-btn-info[disabled].focus,\nfieldset[disabled] .lm-plugin .lm-btn-info:hover,\nfieldset[disabled] .lm-plugin .lm-btn-info:focus,\nfieldset[disabled] .lm-plugin .lm-btn-info.focus {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.lm-plugin .lm-btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.lm-plugin .lm-btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.lm-plugin .lm-btn-warning:focus,\n.lm-plugin .lm-btn-warning.focus {\n color: #fff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.lm-plugin .lm-btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.lm-plugin .lm-btn-warning:active,\n.lm-plugin .lm-btn-warning.active,\n.open > .lm-plugin .lm-btn-warning.dropdown-toggle {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.lm-plugin .lm-btn-warning:active:hover,\n.lm-plugin .lm-btn-warning:active:focus,\n.lm-plugin .lm-btn-warning:active.focus,\n.lm-plugin .lm-btn-warning.active:hover,\n.lm-plugin .lm-btn-warning.active:focus,\n.lm-plugin .lm-btn-warning.active.focus,\n.open > .lm-plugin .lm-btn-warning.dropdown-toggle:hover,\n.open > .lm-plugin .lm-btn-warning.dropdown-toggle:focus,\n.open > .lm-plugin .lm-btn-warning.dropdown-toggle.focus {\n color: #fff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.lm-plugin .lm-btn-warning:active,\n.lm-plugin .lm-btn-warning.active,\n.open > .lm-plugin .lm-btn-warning.dropdown-toggle {\n background-image: none;\n}\n.lm-plugin .lm-btn-warning.disabled:hover,\n.lm-plugin .lm-btn-warning.disabled:focus,\n.lm-plugin .lm-btn-warning.disabled.focus,\n.lm-plugin .lm-btn-warning[disabled]:hover,\n.lm-plugin .lm-btn-warning[disabled]:focus,\n.lm-plugin .lm-btn-warning[disabled].focus,\nfieldset[disabled] .lm-plugin .lm-btn-warning:hover,\nfieldset[disabled] .lm-plugin .lm-btn-warning:focus,\nfieldset[disabled] .lm-plugin .lm-btn-warning.focus {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.lm-plugin .lm-btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.lm-plugin .lm-btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.lm-plugin .lm-btn-danger:focus,\n.lm-plugin .lm-btn-danger.focus {\n color: #fff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.lm-plugin .lm-btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.lm-plugin .lm-btn-danger:active,\n.lm-plugin .lm-btn-danger.active,\n.open > .lm-plugin .lm-btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.lm-plugin .lm-btn-danger:active:hover,\n.lm-plugin .lm-btn-danger:active:focus,\n.lm-plugin .lm-btn-danger:active.focus,\n.lm-plugin .lm-btn-danger.active:hover,\n.lm-plugin .lm-btn-danger.active:focus,\n.lm-plugin .lm-btn-danger.active.focus,\n.open > .lm-plugin .lm-btn-danger.dropdown-toggle:hover,\n.open > .lm-plugin .lm-btn-danger.dropdown-toggle:focus,\n.open > .lm-plugin .lm-btn-danger.dropdown-toggle.focus {\n color: #fff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.lm-plugin .lm-btn-danger:active,\n.lm-plugin .lm-btn-danger.active,\n.open > .lm-plugin .lm-btn-danger.dropdown-toggle {\n background-image: none;\n}\n.lm-plugin .lm-btn-danger.disabled:hover,\n.lm-plugin .lm-btn-danger.disabled:focus,\n.lm-plugin .lm-btn-danger.disabled.focus,\n.lm-plugin .lm-btn-danger[disabled]:hover,\n.lm-plugin .lm-btn-danger[disabled]:focus,\n.lm-plugin .lm-btn-danger[disabled].focus,\nfieldset[disabled] .lm-plugin .lm-btn-danger:hover,\nfieldset[disabled] .lm-plugin .lm-btn-danger:focus,\nfieldset[disabled] .lm-plugin .lm-btn-danger.focus {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.lm-plugin .lm-btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.lm-plugin .lm-btn-link {\n color: #337ab7;\n font-weight: normal;\n border-radius: 0;\n}\n.lm-plugin .lm-btn-link,\n.lm-plugin .lm-btn-link:active,\n.lm-plugin .lm-btn-link.active,\n.lm-plugin .lm-btn-link[disabled],\nfieldset[disabled] .lm-plugin .lm-btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.lm-plugin .lm-btn-link,\n.lm-plugin .lm-btn-link:hover,\n.lm-plugin .lm-btn-link:focus,\n.lm-plugin .lm-btn-link:active {\n border-color: transparent;\n}\n.lm-plugin .lm-btn-link:hover,\n.lm-plugin .lm-btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.lm-plugin .lm-btn-link[disabled]:hover,\n.lm-plugin .lm-btn-link[disabled]:focus,\nfieldset[disabled] .lm-plugin .lm-btn-link:hover,\nfieldset[disabled] .lm-plugin .lm-btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.lm-plugin .lm-btn-lg,\n.lm-plugin .lm-btn-group-lg > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-lg > button {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.33333;\n border-radius: 0;\n}\n.lm-plugin .lm-btn-sm,\n.lm-plugin .lm-btn-group-sm > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-sm > button {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 0;\n}\n.lm-plugin .lm-btn-xs,\n.lm-plugin .lm-btn-group-xs > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-xs > button {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 0;\n}\n.lm-plugin .lm-btn-block,\n.lm-plugin .lm-control-row button {\n display: block;\n width: 100%;\n}\n.lm-plugin .lm-btn-block + .lm-btn-block,\n.lm-plugin .lm-control-row button + .lm-btn-block,\n.lm-plugin .lm-control-row .lm-btn-block + button,\n.lm-plugin .lm-control-row button + button {\n margin-top: 5px;\n}\n.lm-plugin input[type="submit"].lm-btn-block,\n.lm-plugin input[type="reset"].lm-btn-block,\n.lm-plugin input[type="button"].lm-btn-block {\n width: 100%;\n}\n.lm-plugin .lm-btn-group,\n.lm-plugin .lm-btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.lm-plugin .lm-btn-group > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group > button,\n.lm-plugin .lm-btn-group-vertical > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button {\n position: relative;\n float: left;\n}\n.lm-plugin .lm-btn-group > .lm-btn:hover,\n.lm-plugin .lm-control-row .lm-btn-group > button:hover,\n.lm-plugin .lm-btn-group > .lm-btn:focus,\n.lm-plugin .lm-control-row .lm-btn-group > button:focus,\n.lm-plugin .lm-btn-group > .lm-btn:active,\n.lm-plugin .lm-control-row .lm-btn-group > button:active,\n.lm-plugin .lm-btn-group > .lm-btn.active,\n.lm-plugin .lm-control-row .lm-btn-group > button.active,\n.lm-plugin .lm-btn-group-vertical > .lm-btn:hover,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button:hover,\n.lm-plugin .lm-btn-group-vertical > .lm-btn:focus,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button:focus,\n.lm-plugin .lm-btn-group-vertical > .lm-btn:active,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button:active,\n.lm-plugin .lm-btn-group-vertical > .lm-btn.active,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button.active {\n z-index: 2;\n}\n.lm-plugin .lm-btn-group .lm-btn + .lm-btn,\n.lm-plugin .lm-btn-group .lm-control-row button + .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group button + .lm-btn,\n.lm-plugin .lm-btn-group .lm-control-row .lm-btn + button,\n.lm-plugin .lm-control-row .lm-btn-group .lm-btn + button,\n.lm-plugin .lm-btn-group .lm-control-row button + button,\n.lm-plugin .lm-control-row .lm-btn-group button + button,\n.lm-plugin .lm-btn-group .lm-btn + .lm-btn-group,\n.lm-plugin .lm-btn-group .lm-control-row button + .lm-btn-group,\n.lm-plugin .lm-control-row .lm-btn-group button + .lm-btn-group,\n.lm-plugin .lm-btn-group .lm-btn-group + .lm-btn,\n.lm-plugin .lm-btn-group .lm-control-row .lm-btn-group + button,\n.lm-plugin .lm-control-row .lm-btn-group .lm-btn-group + button,\n.lm-plugin .lm-btn-group .lm-btn-group + .lm-btn-group {\n margin-left: -1px;\n}\n.lm-plugin .lm-btn-toolbar {\n margin-left: -5px;\n}\n.lm-plugin .lm-btn-toolbar:before,\n.lm-plugin .lm-btn-toolbar:after {\n content: " ";\n display: table;\n}\n.lm-plugin .lm-btn-toolbar:after {\n clear: both;\n}\n.lm-plugin .lm-btn-toolbar .lm-btn,\n.lm-plugin .lm-btn-toolbar .lm-control-row button,\n.lm-plugin .lm-control-row .lm-btn-toolbar button,\n.lm-plugin .lm-btn-toolbar .lm-btn-group,\n.lm-plugin .lm-btn-toolbar .input-group {\n float: left;\n}\n.lm-plugin .lm-btn-toolbar > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-toolbar > button,\n.lm-plugin .lm-btn-toolbar > .lm-btn-group,\n.lm-plugin .lm-btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.lm-plugin .lm-btn-group > .lm-btn:not(:first-child):not(:last-child):not(.dropdown-toggle),\n.lm-plugin .lm-control-row .lm-btn-group > button:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.lm-plugin .lm-btn-group > .lm-btn:first-child,\n.lm-plugin .lm-control-row .lm-btn-group > button:first-child {\n margin-left: 0;\n}\n.lm-plugin .lm-btn-group > .lm-btn:first-child:not(:last-child):not(.dropdown-toggle),\n.lm-plugin .lm-control-row .lm-btn-group > button:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.lm-plugin .lm-btn-group > .lm-btn:last-child:not(:first-child),\n.lm-plugin .lm-control-row .lm-btn-group > button:last-child:not(:first-child),\n.lm-plugin .lm-btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.lm-plugin .lm-btn-group > .lm-btn-group {\n float: left;\n}\n.lm-plugin .lm-btn-group > .lm-btn-group:not(:first-child):not(:last-child) > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group > .lm-btn-group:not(:first-child):not(:last-child) > button {\n border-radius: 0;\n}\n.lm-plugin .lm-btn-group > .lm-btn-group:first-child:not(:last-child) > .lm-btn:last-child,\n.lm-plugin .lm-control-row .lm-btn-group > .lm-btn-group:first-child:not(:last-child) > button:last-child,\n.lm-plugin .lm-btn-group > .lm-btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.lm-plugin .lm-btn-group > .lm-btn-group:last-child:not(:first-child) > .lm-btn:first-child,\n.lm-plugin .lm-control-row .lm-btn-group > .lm-btn-group:last-child:not(:first-child) > button:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.lm-plugin .lm-btn-group .dropdown-toggle:active,\n.lm-plugin .lm-btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.lm-plugin .lm-btn-group > .lm-btn + .dropdown-toggle,\n.lm-plugin .lm-control-row .lm-btn-group > button + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.lm-plugin .lm-btn-group > .lm-btn-lg + .dropdown-toggle,\n.lm-plugin .lm-btn-group-lg.lm-btn-group > .lm-btn + .dropdown-toggle,\n.lm-plugin .lm-control-row .lm-btn-group-lg.lm-btn-group > button + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n.lm-plugin .lm-btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.lm-plugin .lm-btn-group.open .dropdown-toggle.lm-btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.lm-plugin .lm-btn .caret,\n.lm-plugin .lm-control-row button .caret {\n margin-left: 0;\n}\n.lm-plugin .lm-btn-lg .caret,\n.lm-plugin .lm-btn-group-lg > .lm-btn .caret,\n.lm-plugin .lm-control-row .lm-btn-group-lg > button .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.lm-plugin .dropup .lm-btn-lg .caret,\n.lm-plugin .dropup .lm-btn-group-lg > .lm-btn .caret,\n.lm-plugin .dropup .lm-control-row .lm-btn-group-lg > button .caret,\n.lm-plugin .lm-control-row .dropup .lm-btn-group-lg > button .caret {\n border-width: 0 5px 5px;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button,\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group,\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > .lm-btn-group > button {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group:before,\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group:after {\n content: " ";\n display: table;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group:after {\n clear: both;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > .lm-btn-group > button {\n float: none;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn + .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button + .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > .lm-btn + button,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button + button,\n.lm-plugin .lm-btn-group-vertical > .lm-btn + .lm-btn-group,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button + .lm-btn-group,\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group + .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > .lm-btn-group + button,\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group + .lm-btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn:not(:first-child):not(:last-child),\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn:first-child:not(:last-child),\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button:first-child:not(:last-child) {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn:last-child:not(:first-child),\n.lm-plugin .lm-control-row .lm-btn-group-vertical > button:last-child:not(:first-child) {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group:not(:first-child):not(:last-child) > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > .lm-btn-group:not(:first-child):not(:last-child) > button {\n border-radius: 0;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group:first-child:not(:last-child) > .lm-btn:last-child,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > .lm-btn-group:first-child:not(:last-child) > button:last-child,\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.lm-plugin .lm-btn-group-vertical > .lm-btn-group:last-child:not(:first-child) > .lm-btn:first-child,\n.lm-plugin .lm-control-row .lm-btn-group-vertical > .lm-btn-group:last-child:not(:first-child) > button:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.lm-plugin .lm-btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.lm-plugin .lm-btn-group-justified > .lm-btn,\n.lm-plugin .lm-control-row .lm-btn-group-justified > button,\n.lm-plugin .lm-btn-group-justified > .lm-btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n}\n.lm-plugin .lm-btn-group-justified > .lm-btn-group .lm-btn,\n.lm-plugin .lm-btn-group-justified > .lm-btn-group .lm-control-row button,\n.lm-plugin .lm-control-row .lm-btn-group-justified > .lm-btn-group button {\n width: 100%;\n}\n.lm-plugin .lm-btn-group-justified > .lm-btn-group .dropdown-menu {\n left: auto;\n}\n.lm-plugin [data-toggle="buttons"] > .lm-btn input[type="radio"],\n.lm-plugin .lm-control-row [data-toggle="buttons"] > button input[type="radio"],\n.lm-plugin [data-toggle="buttons"] > .lm-btn input[type="checkbox"],\n.lm-plugin .lm-control-row [data-toggle="buttons"] > button input[type="checkbox"],\n.lm-plugin [data-toggle="buttons"] > .lm-btn-group > .lm-btn input[type="radio"],\n.lm-plugin .lm-control-row [data-toggle="buttons"] > .lm-btn-group > button input[type="radio"],\n.lm-plugin [data-toggle="buttons"] > .lm-btn-group > .lm-btn input[type="checkbox"],\n.lm-plugin .lm-control-row [data-toggle="buttons"] > .lm-btn-group > button input[type="checkbox"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.lm-plugin .input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.lm-plugin .input-group[class*="col-"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n}\n.lm-plugin .input-group .lm-form-control,\n.lm-plugin .input-group .lm-control-row select,\n.lm-plugin .lm-control-row .input-group select,\n.lm-plugin .input-group .lm-control-row button,\n.lm-plugin .lm-control-row .input-group button,\n.lm-plugin .input-group .lm-control-row input[type=text],\n.lm-plugin .lm-control-row .input-group input[type=text] {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.lm-plugin .input-group .lm-form-control:focus,\n.lm-plugin .input-group .lm-control-row select:focus,\n.lm-plugin .lm-control-row .input-group select:focus,\n.lm-plugin .input-group .lm-control-row button:focus,\n.lm-plugin .lm-control-row .input-group button:focus,\n.lm-plugin .input-group .lm-control-row input:focus[type=text],\n.lm-plugin .lm-control-row .input-group input:focus[type=text] {\n z-index: 3;\n}\n.lm-plugin .input-group-addon,\n.lm-plugin .input-group-lm-btn,\n.lm-plugin .input-group .lm-form-control,\n.lm-plugin .input-group .lm-control-row select,\n.lm-plugin .lm-control-row .input-group select,\n.lm-plugin .input-group .lm-control-row button,\n.lm-plugin .lm-control-row .input-group button,\n.lm-plugin .input-group .lm-control-row input[type=text],\n.lm-plugin .lm-control-row .input-group input[type=text] {\n display: table-cell;\n}\n.lm-plugin .input-group-addon:not(:first-child):not(:last-child),\n.lm-plugin .input-group-lm-btn:not(:first-child):not(:last-child),\n.lm-plugin .input-group .lm-form-control:not(:first-child):not(:last-child),\n.lm-plugin .input-group .lm-control-row select:not(:first-child):not(:last-child),\n.lm-plugin .lm-control-row .input-group select:not(:first-child):not(:last-child),\n.lm-plugin .input-group .lm-control-row button:not(:first-child):not(:last-child),\n.lm-plugin .lm-control-row .input-group button:not(:first-child):not(:last-child),\n.lm-plugin .input-group .lm-control-row input:not(:first-child):not(:last-child)[type=text],\n.lm-plugin .lm-control-row .input-group input:not(:first-child):not(:last-child)[type=text] {\n border-radius: 0;\n}\n.lm-plugin .input-group-addon,\n.lm-plugin .input-group-lm-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.lm-plugin .input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #ccc;\n border-radius: 0;\n}\n.lm-plugin .input-group-addon.input-sm,\n.lm-plugin .lm-control-row .input-group-sm > select.input-group-addon,\n.lm-plugin .lm-control-row .input-group-sm > button.input-group-addon,\n.lm-plugin .lm-control-row .input-group-sm > input.input-group-addon[type=text],\n.lm-plugin .input-group-sm > .input-group-addon,\n.lm-plugin .input-group-sm > .input-group-lm-btn > .input-group-addon.lm-btn,\n.lm-plugin .lm-control-row .input-group-sm > .input-group-lm-btn > button.input-group-addon {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 0;\n}\n.lm-plugin .input-group-addon.input-lg,\n.lm-plugin .lm-control-row .input-group-lg > select.input-group-addon,\n.lm-plugin .lm-control-row .input-group-lg > button.input-group-addon,\n.lm-plugin .lm-control-row .input-group-lg > input.input-group-addon[type=text],\n.lm-plugin .input-group-lg > .input-group-addon,\n.lm-plugin .input-group-lg > .input-group-lm-btn > .input-group-addon.lm-btn,\n.lm-plugin .lm-control-row .input-group-lg > .input-group-lm-btn > button.input-group-addon {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 0;\n}\n.lm-plugin .input-group-addon input[type="radio"],\n.lm-plugin .input-group-addon input[type="checkbox"] {\n margin-top: 0;\n}\n.lm-plugin .input-group .lm-form-control:first-child,\n.lm-plugin .input-group .lm-control-row select:first-child,\n.lm-plugin .lm-control-row .input-group select:first-child,\n.lm-plugin .input-group .lm-control-row button:first-child,\n.lm-plugin .lm-control-row .input-group button:first-child,\n.lm-plugin .input-group .lm-control-row input:first-child[type=text],\n.lm-plugin .lm-control-row .input-group input:first-child[type=text],\n.lm-plugin .input-group-addon:first-child,\n.lm-plugin .input-group-lm-btn:first-child > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn:first-child > button,\n.lm-plugin .input-group-lm-btn:first-child > .lm-btn-group > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn:first-child > .lm-btn-group > button,\n.lm-plugin .input-group-lm-btn:first-child > .dropdown-toggle,\n.lm-plugin .input-group-lm-btn:last-child > .lm-btn:not(:last-child):not(.dropdown-toggle),\n.lm-plugin .lm-control-row .input-group-lm-btn:last-child > button:not(:last-child):not(.dropdown-toggle),\n.lm-plugin .input-group-lm-btn:last-child > .lm-btn-group:not(:last-child) > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn:last-child > .lm-btn-group:not(:last-child) > button {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.lm-plugin .input-group-addon:first-child {\n border-right: 0;\n}\n.lm-plugin .input-group .lm-form-control:last-child,\n.lm-plugin .input-group .lm-control-row select:last-child,\n.lm-plugin .lm-control-row .input-group select:last-child,\n.lm-plugin .input-group .lm-control-row button:last-child,\n.lm-plugin .lm-control-row .input-group button:last-child,\n.lm-plugin .input-group .lm-control-row input:last-child[type=text],\n.lm-plugin .lm-control-row .input-group input:last-child[type=text],\n.lm-plugin .input-group-addon:last-child,\n.lm-plugin .input-group-lm-btn:last-child > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn:last-child > button,\n.lm-plugin .input-group-lm-btn:last-child > .lm-btn-group > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn:last-child > .lm-btn-group > button,\n.lm-plugin .input-group-lm-btn:last-child > .dropdown-toggle,\n.lm-plugin .input-group-lm-btn:first-child > .lm-btn:not(:first-child),\n.lm-plugin .lm-control-row .input-group-lm-btn:first-child > button:not(:first-child),\n.lm-plugin .input-group-lm-btn:first-child > .lm-btn-group:not(:first-child) > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn:first-child > .lm-btn-group:not(:first-child) > button {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.lm-plugin .input-group-addon:last-child {\n border-left: 0;\n}\n.lm-plugin .input-group-lm-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.lm-plugin .input-group-lm-btn > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn > button {\n position: relative;\n}\n.lm-plugin .input-group-lm-btn > .lm-btn + .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn > button + .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn > .lm-btn + button,\n.lm-plugin .lm-control-row .input-group-lm-btn > button + button {\n margin-left: -1px;\n}\n.lm-plugin .input-group-lm-btn > .lm-btn:hover,\n.lm-plugin .lm-control-row .input-group-lm-btn > button:hover,\n.lm-plugin .input-group-lm-btn > .lm-btn:focus,\n.lm-plugin .lm-control-row .input-group-lm-btn > button:focus,\n.lm-plugin .input-group-lm-btn > .lm-btn:active,\n.lm-plugin .lm-control-row .input-group-lm-btn > button:active {\n z-index: 2;\n}\n.lm-plugin .input-group-lm-btn:first-child > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn:first-child > button,\n.lm-plugin .input-group-lm-btn:first-child > .lm-btn-group {\n margin-right: -1px;\n}\n.lm-plugin .input-group-lm-btn:last-child > .lm-btn,\n.lm-plugin .lm-control-row .input-group-lm-btn:last-child > button,\n.lm-plugin .input-group-lm-btn:last-child > .lm-btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.lm-plugin .label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n}\n.lm-plugin .label:empty {\n display: none;\n}\n.lm-btn .lm-plugin .label,\n.lm-plugin .lm-control-row button .lm-plugin .label {\n position: relative;\n top: -1px;\n}\n.lm-plugin a.label:hover,\n.lm-plugin a.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.lm-plugin .label-default {\n background-color: #777777;\n}\n.lm-plugin .label-default[href]:hover,\n.lm-plugin .label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.lm-plugin .label-primary {\n background-color: #337ab7;\n}\n.lm-plugin .label-primary[href]:hover,\n.lm-plugin .label-primary[href]:focus {\n background-color: #286090;\n}\n.lm-plugin .label-success {\n background-color: #5cb85c;\n}\n.lm-plugin .label-success[href]:hover,\n.lm-plugin .label-success[href]:focus {\n background-color: #449d44;\n}\n.lm-plugin .label-info {\n background-color: #5bc0de;\n}\n.lm-plugin .label-info[href]:hover,\n.lm-plugin .label-info[href]:focus {\n background-color: #31b0d5;\n}\n.lm-plugin .label-warning {\n background-color: #f0ad4e;\n}\n.lm-plugin .label-warning[href]:hover,\n.lm-plugin .label-warning[href]:focus {\n background-color: #ec971f;\n}\n.lm-plugin .label-danger {\n background-color: #d9534f;\n}\n.lm-plugin .label-danger[href]:hover,\n.lm-plugin .label-danger[href]:focus {\n background-color: #c9302c;\n}\n.lm-plugin .badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n color: #fff;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: #777777;\n border-radius: 10px;\n}\n.lm-plugin .badge:empty {\n display: none;\n}\n.lm-btn .lm-plugin .badge,\n.lm-plugin .lm-control-row button .lm-plugin .badge {\n position: relative;\n top: -1px;\n}\n.lm-btn-xs .lm-plugin .badge,\n.lm-plugin .lm-btn-group-xs > .lm-btn .lm-plugin .badge,\n.lm-plugin .lm-control-row .lm-btn-group-xs > button .lm-plugin .badge,\n.lm-btn-group-xs > .lm-btn .lm-plugin .badge,\n.lm-plugin .lm-control-row .lm-btn-group-xs > button .lm-plugin .badge {\n top: 0;\n padding: 1px 5px;\n}\n.list-group-item.active > .lm-plugin .badge,\n.nav-pills > .active > a > .lm-plugin .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .lm-plugin .badge {\n float: right;\n}\n.list-group-item > .lm-plugin .badge + .lm-plugin .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .lm-plugin .badge {\n margin-left: 3px;\n}\n.lm-plugin a.badge:hover,\n.lm-plugin a.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.lm-plugin [class^="lm-icon-"]:before,\n.lm-plugin [class*=" lm-icon-"]:before {\n font-family: "fontello";\n font-style: normal;\n font-weight: normal;\n speak: none;\n display: inline-block;\n text-decoration: inherit;\n width: 1em;\n margin-right: .2em;\n text-align: center;\n /* opacity: .8; */\n /* For safety - reset parent styles, that can break glyph codes*/\n font-variant: normal;\n text-transform: none;\n /* fix buttons height, for twitter bootstrap */\n line-height: 1em;\n /* Animation center compensation - margins should be symmetric */\n /* remove if not needed */\n margin-left: .2em;\n /* you can be more comfortable with increased icons size */\n /* font-size: 120%; */\n /* Font smoothing. That was taken from TWBS */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n /* Uncomment for 3D effect */\n /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */\n}\n.lm-plugin .lm-icon-expand-layout:before {\n content: "\\e84a";\n}\n.lm-plugin .lm-icon-plus:before {\n content: "\\e816";\n}\n.lm-plugin .lm-icon-minus:before {\n content: "\\e819";\n}\n.lm-plugin .lm-icon-reset-scene:before {\n content: "\\e891";\n}\n.lm-plugin .lm-icon-ok:before {\n content: "\\e812";\n}\n.lm-plugin .lm-icon-cross:before {\n content: "\\e868";\n}\n.lm-plugin .lm-icon-off:before {\n content: "\\e813";\n}\n.lm-plugin .lm-icon-expand:before {\n content: "\\e885";\n}\n.lm-plugin .lm-icon-collapse:before {\n content: "\\e883";\n}\n.lm-plugin .lm-icon-visual-visibility:before {\n content: "\\e826";\n}\n.lm-plugin .lm-icon-abort:before {\n content: "\\e814";\n}\n.lm-plugin .lm-icon-focus-on-visual:before {\n content: "\\e8a3";\n}\n.lm-plugin .lm-icon-settings:before {\n content: "\\e855";\n}\n.lm-plugin .lm-icon-tools:before {\n content: "\\e856";\n}\n.lm-plugin .lm-icon-log:before {\n content: "\\e8a5";\n}\n.lm-plugin .lm-icon-remove:before {\n content: "\\e847";\n}\n.lm-plugin .lm-icon-help:before {\n content: \'\\e81c\';\n}\n.lm-plugin .lm-icon-info:before {\n content: \'\\e81e\';\n}\n.lm-plugin .lm-icon-left-open-big:before {\n content: \'\\e87c\';\n}\n.lm-plugin .lm-icon-right-open-big:before {\n content: \'\\e87d\';\n}\n.lm-plugin .lm-icon-left-open:before {\n content: \'\\e874\';\n}\n.lm-plugin .lm-icon-right-open:before {\n content: \'\\e875\';\n}\n.lm-plugin .lm-icon-screenshot:before {\n content: "\\e80f";\n}\n.lm-plugin .lm-icon-help:before {\n content: "\\e81c";\n}\n.lm-plugin .lm-icon-help-circle:before {\n content: "\\e81d";\n}\n.lm-plugin .lm-layout-expanded,\n.lm-plugin .lm-layout-standard {\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n}\n.lm-plugin .lm-layout-region {\n overflow: hidden;\n background: #eeece7;\n}\n.lm-plugin .lm-layout-static,\n.lm-plugin .lm-layout-scrollable {\n position: absolute;\n}\n.lm-plugin .lm-layout-scrollable {\n overflow-y: auto;\n}\n.lm-plugin .lm-layout-static {\n overflow: hidden;\n}\n.lm-plugin .lm-layout-main .lm-layout-static,\n.lm-plugin .lm-layout-bottom .lm-layout-static {\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n}\n.lm-plugin .lm-layout-right .lm-layout-static {\n left: 0;\n right: 0;\n top: 0;\n height: 42px;\n}\n.lm-plugin .lm-layout-right .lm-layout-scrollable {\n left: 0;\n right: 0;\n top: 43px;\n bottom: 0;\n}\n.lm-plugin .lm-layout-left .lm-layout-static {\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n}\n.lm-plugin .lm-layout-standard-outside {\n position: absolute;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-main {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-top {\n position: absolute;\n right: 0;\n height: 65px;\n top: -65px;\n width: 50%;\n border-left: 1px solid #cec9ba;\n border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-bottom {\n position: absolute;\n left: 0;\n right: 0;\n height: 65px;\n top: -65px;\n width: 50%;\n border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-right {\n position: absolute;\n width: 50%;\n right: 0;\n bottom: -295px;\n height: 295px;\n border-left: 1px solid #cec9ba;\n border-top: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-left {\n position: absolute;\n width: 50%;\n left: 0;\n bottom: 0;\n bottom: -295px;\n height: 295px;\n border-top: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-hide-right .lm-layout-right {\n display: none;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-hide-right .lm-layout-left {\n width: 100%;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-hide-left .lm-layout-left {\n display: none;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-hide-left .lm-layout-right {\n width: 100%;\n border-left: none;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-hide-top .lm-layout-top {\n display: none;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-hide-top .lm-layout-bottom {\n width: 100%;\n border-left: none;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-hide-bottom .lm-layout-bottom {\n display: none;\n}\n.lm-plugin .lm-layout-standard-outside .lm-layout-hide-bottom .lm-layout-top {\n width: 100%;\n border-left: none;\n}\n.lm-plugin .lm-layout-standard-landscape {\n position: absolute;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-main {\n position: absolute;\n left: 290px;\n right: 290px;\n bottom: 98px;\n top: 100px;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-top {\n position: absolute;\n left: 290px;\n right: 290px;\n height: 100px;\n top: 0;\n border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-bottom {\n position: absolute;\n left: 290px;\n right: 290px;\n height: 98px;\n bottom: 0;\n border-top: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-right {\n position: absolute;\n width: 290px;\n right: 0;\n bottom: 0;\n top: 0;\n border-left: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-left {\n position: absolute;\n width: 290px;\n left: 0;\n bottom: 0;\n top: 0;\n border-right: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-right .lm-layout-right {\n display: none;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-right .lm-layout-main,\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-right .lm-layout-top,\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-right .lm-layout-bottom {\n right: 0;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-left .lm-layout-left {\n display: none;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-left .lm-layout-main,\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-left .lm-layout-top,\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-left .lm-layout-bottom {\n left: 0;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-bottom .lm-layout-bottom {\n display: none;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-bottom .lm-layout-main {\n bottom: 0;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-top .lm-layout-top {\n display: none;\n}\n.lm-plugin .lm-layout-standard-landscape .lm-layout-hide-top .lm-layout-main {\n top: 0;\n}\n.lm-plugin .lm-layout-standard-portrait {\n position: absolute;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-main {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 361px;\n top: 65px;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-top {\n position: absolute;\n right: 0;\n height: 65px;\n top: 0;\n width: 50%;\n border-left: 1px solid #cec9ba;\n border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-bottom {\n position: absolute;\n left: 0;\n right: 0;\n height: 65px;\n width: 50%;\n border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-right {\n position: absolute;\n width: 50%;\n right: 0;\n bottom: 0;\n height: 361px;\n border-left: 1px solid #cec9ba;\n border-top: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-left {\n position: absolute;\n width: 50%;\n left: 0;\n bottom: 0;\n height: 361px;\n border-top: 1px solid #cec9ba;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-right .lm-layout-right {\n display: none;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-right .lm-layout-left {\n width: 100%;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-left .lm-layout-left {\n display: none;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-left .lm-layout-right {\n width: 100%;\n border-left: none;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-right.lm-layout-hide-left .lm-layout-main {\n bottom: 0;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-top .lm-layout-top {\n display: none;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-top .lm-layout-bottom {\n width: 100%;\n border-left: none;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-bottom .lm-layout-bottom {\n display: none;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-bottom .lm-layout-top {\n width: 100%;\n border-left: none;\n}\n.lm-plugin .lm-layout-standard-portrait .lm-layout-hide-top.lm-layout-hide-bottom .lm-layout-main {\n top: 0;\n}\n.lm-plugin .lm-layout-expanded {\n position: fixed;\n}\n@media (orientation: landscape) {\n .lm-plugin .lm-layout-expanded .lm-layout-main {\n position: absolute;\n left: 290px;\n right: 290px;\n bottom: 98px;\n top: 100px;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-top {\n position: absolute;\n left: 290px;\n right: 290px;\n height: 100px;\n top: 0;\n border-bottom: 1px solid #cec9ba;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-bottom {\n position: absolute;\n left: 290px;\n right: 290px;\n height: 98px;\n bottom: 0;\n border-top: 1px solid #cec9ba;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-right {\n position: absolute;\n width: 290px;\n right: 0;\n bottom: 0;\n top: 0;\n border-left: 1px solid #cec9ba;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-left {\n position: absolute;\n width: 290px;\n left: 0;\n bottom: 0;\n top: 0;\n border-right: 1px solid #cec9ba;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-right .lm-layout-right {\n display: none;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-right .lm-layout-main,\n .lm-plugin .lm-layout-expanded .lm-layout-hide-right .lm-layout-top,\n .lm-plugin .lm-layout-expanded .lm-layout-hide-right .lm-layout-bottom {\n right: 0;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-left .lm-layout-left {\n display: none;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-left .lm-layout-main,\n .lm-plugin .lm-layout-expanded .lm-layout-hide-left .lm-layout-top,\n .lm-plugin .lm-layout-expanded .lm-layout-hide-left .lm-layout-bottom {\n left: 0;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-bottom .lm-layout-bottom {\n display: none;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-bottom .lm-layout-main {\n bottom: 0;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-top .lm-layout-top {\n display: none;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-top .lm-layout-main {\n top: 0;\n }\n}\n@media (orientation: portrait) {\n .lm-plugin .lm-layout-expanded .lm-layout-main {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 361px;\n top: 65px;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-top {\n position: absolute;\n right: 0;\n height: 65px;\n top: 0;\n width: 50%;\n border-left: 1px solid #cec9ba;\n border-bottom: 1px solid #cec9ba;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-bottom {\n position: absolute;\n left: 0;\n right: 0;\n height: 65px;\n width: 50%;\n border-bottom: 1px solid #cec9ba;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-right {\n position: absolute;\n width: 50%;\n right: 0;\n bottom: 0;\n height: 361px;\n border-left: 1px solid #cec9ba;\n border-top: 1px solid #cec9ba;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-left {\n position: absolute;\n width: 50%;\n left: 0;\n bottom: 0;\n height: 361px;\n border-top: 1px solid #cec9ba;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-right .lm-layout-right {\n display: none;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-right .lm-layout-left {\n width: 100%;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-left .lm-layout-left {\n display: none;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-left .lm-layout-right {\n width: 100%;\n border-left: none;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-right.lm-layout-hide-left .lm-layout-main {\n bottom: 0;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-top .lm-layout-top {\n display: none;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-top .lm-layout-bottom {\n width: 100%;\n border-left: none;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-bottom .lm-layout-bottom {\n display: none;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-bottom .lm-layout-top {\n width: 100%;\n border-left: none;\n }\n\n .lm-plugin .lm-layout-expanded .lm-layout-hide-top.lm-layout-hide-bottom .lm-layout-main {\n top: 0;\n }\n}\n.lm-plugin ::-webkit-scrollbar {\n width: 10px;\n height: 10px;\n}\n.lm-plugin ::-webkit-scrollbar-track {\n border-radius: 0;\n background-color: #e9e6e0;\n}\n.lm-plugin ::-webkit-scrollbar-thumb {\n border-radius: 0;\n background-color: #f1f0eb;\n}\n.lm-plugin .lm-btn,\n.lm-plugin .lm-control-row button {\n padding: 0 10px;\n line-height: 32px;\n border: none;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.lm-plugin .lm-btn,\n.lm-plugin .lm-control-row button,\n.lm-plugin .lm-btn:active,\n.lm-plugin .lm-control-row button:active,\n.lm-plugin .lm-btn-link:focus,\n.lm-plugin .lm-btn:hover,\n.lm-plugin .lm-control-row button:hover {\n outline: none !important;\n}\n.lm-plugin .lm-btn-icon {\n height: 32px;\n width: 32px;\n line-height: 32px;\n padding: 0;\n text-align: center;\n}\n.lm-plugin .lm-btn-link .lm-icon {\n font-size: 100%;\n}\n.lm-plugin .lm-btn-link,\n.lm-plugin .lm-btn-link:active,\n.lm-plugin .lm-btn-link:focus {\n color: #332b1f;\n text-decoration: none;\n}\n.lm-plugin .lm-btn-link:hover {\n color: #ae5d04;\n text-decoration: none;\n}\n.lm-plugin .lm-btn-link-toggle-on {\n color: #332b1f;\n}\n.lm-plugin .lm-btn-link-toggle-off,\n.lm-plugin .lm-btn-link-toggle-off:active,\n.lm-plugin .lm-btn-link-toggle-off:focus {\n color: #9c835f;\n}\n.lm-plugin .lm-btn-link-toggle-off:hover,\n.lm-plugin .lm-btn-link-toggle-on:hover {\n color: #ae5d04;\n}\n.lm-plugin .lm-btn-remove,\n.lm-plugin .lm-btn-remove:active,\n.lm-plugin .lm-btn-remove:focus {\n color: #332b1f;\n background: #DE0A28;\n}\n.lm-plugin .lm-btn-remove:hover {\n color: #ae5d04;\n background: #ea0b2a;\n}\n.lm-plugin .lm-btn-remove[disabled],\n.lm-plugin .lm-btn-remove[disabled]:hover,\n.lm-plugin .lm-btn-remove[disabled]:active,\n.lm-plugin .lm-btn-remove[disabled]:focus {\n color: #362e21;\n}\n.lm-plugin .lm-btn-action,\n.lm-plugin .lm-btn-action:active,\n.lm-plugin .lm-btn-action:focus {\n color: #332b1f;\n background: #f3f2ee;\n}\n.lm-plugin .lm-btn-action:hover {\n color: #ae5d04;\n background: #f9f8f6;\n}\n.lm-plugin .lm-btn-action[disabled],\n.lm-plugin .lm-btn-action[disabled]:hover,\n.lm-plugin .lm-btn-action[disabled]:active,\n.lm-plugin .lm-btn-action[disabled]:focus {\n color: #362e21;\n}\n.lm-plugin .lm-btn-commit-on,\n.lm-plugin .lm-btn-commit-on:active,\n.lm-plugin .lm-btn-commit-on:focus {\n color: #974102;\n background: #f2f1ed;\n}\n.lm-plugin .lm-btn-commit-on:hover {\n color: #ae5d04;\n background: #f8f7f4;\n}\n.lm-plugin .lm-btn-commit-on[disabled],\n.lm-plugin .lm-btn-commit-on[disabled]:hover,\n.lm-plugin .lm-btn-commit-on[disabled]:active,\n.lm-plugin .lm-btn-commit-on[disabled]:focus {\n color: #9c4302;\n}\n.lm-plugin .lm-btn-commit-off,\n.lm-plugin .lm-btn-commit-off:active,\n.lm-plugin .lm-btn-commit-off:focus {\n color: #332b1f;\n background: #f6f5f3;\n}\n.lm-plugin .lm-btn-commit-off:hover {\n color: #ae5d04;\n background: #fcfbfa;\n}\n.lm-plugin .lm-btn-commit-off[disabled],\n.lm-plugin .lm-btn-commit-off[disabled]:hover,\n.lm-plugin .lm-btn-commit-off[disabled]:active,\n.lm-plugin .lm-btn-commit-off[disabled]:focus {\n color: #362e21;\n}\n.lm-plugin .lm-btn-remove:hover {\n color: #F2F4F7;\n}\n.lm-plugin .lm-btn-commit-on:hover {\n color: #fc6c03;\n}\n.lm-plugin .lm-btn-action {\n height: 32px;\n line-height: 32px;\n}\n.lm-plugin .lm-form-control,\n.lm-plugin .lm-control-row select,\n.lm-plugin .lm-control-row button,\n.lm-plugin .lm-control-row input[type=text] {\n width: 100%;\n background: #f3f2ee;\n color: #332b1f;\n border: none !important;\n padding: 0 10px;\n line-height: 30px;\n height: 32px;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n box-shadow: none !important;\n}\n.lm-plugin .lm-form-control:hover,\n.lm-plugin .lm-control-row select:hover,\n.lm-plugin .lm-control-row button:hover,\n.lm-plugin .lm-control-row input:hover[type=text] {\n color: #ae5d04;\n background-color: #e9e6e0;\n border: none;\n outline-offset: -1px;\n outline: 1px solid #c9c3b3;\n}\n.lm-plugin .lm-form-control:active,\n.lm-plugin .lm-control-row select:active,\n.lm-plugin .lm-control-row button:active,\n.lm-plugin .lm-control-row input:active[type=text],\n.lm-plugin .lm-form-control:focus,\n.lm-plugin .lm-control-row select:focus,\n.lm-plugin .lm-control-row button:focus,\n.lm-plugin .lm-control-row input:focus[type=text] {\n color: #332b1f;\n background-color: #f3f2ee;\n border: none;\n outline-offset: 0;\n outline: none;\n}\n.lm-plugin .lm-btn-commit {\n text-align: right;\n padding-top: 0;\n padding-bottom: 0;\n padding-right: 10px;\n padding-left: 0;\n line-height: 32px;\n border: none;\n overflow: hidden;\n}\n.lm-plugin .lm-btn-commit .lm-icon {\n display: block-inline;\n line-height: 32px;\n margin-right: 10px;\n width: 32px;\n text-align: center;\n float: left;\n}\n.lm-plugin select.lm-form-control,\n.lm-plugin .lm-control-row select {\n background: none;\n background-color: #f3f2ee;\n background-size: 8px 12px;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAMAAACzvE1FAAAADFBMVEUzMzMzMzMzMzMzMzMKAG/3AAAAA3RSTlMAf4C/aSLHAAAAPElEQVR42q3NMQ4AIAgEQTn//2cLdRKppSGzBYwzVXvznNWs8C58CiussPJj8h6NwgorrKRdTvuV9v16Afn0AYFOB7aYAAAAAElFTkSuQmCC);\n background-repeat: no-repeat;\n background-position: right 10px top 10px;\n}\n.lm-plugin select.lm-form-control:-moz-focusring,\n.lm-plugin .lm-control-row select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #332b1f;\n}\n.lm-plugin .lm-control-row {\n position: relative;\n height: 32px;\n background: #eeece7;\n margin-top: 1px;\n}\n.lm-plugin .lm-control-row > span {\n line-height: 32px;\n display: block;\n width: 120px;\n text-align: right;\n padding: 0 10px;\n color: #63533c;\n -webkit-user-select: none;\n /* Chrome/Safari */\n -moz-user-select: none;\n /* Firefox */\n -ms-user-select: none;\n /* IE10+ */\n /* Rules below not implemented in browsers yet */\n -o-user-select: none;\n user-select: none;\n cursor: default;\n}\n.lm-plugin .lm-control-row > div:nth-child(2) {\n background: #f3f2ee;\n position: absolute;\n left: 120px;\n top: 0;\n right: 0;\n bottom: 0;\n}\n.lm-plugin .lm-control-group {\n position: relative;\n}\n.lm-plugin .lm-toggle-button .lm-icon {\n display: inline-block;\n margin-right: 6px;\n}\n.lm-plugin .lm-toggle-button > div > button:hover {\n border-color: #e9e6e0 !important;\n border: none;\n outline-offset: -1px !important;\n outline: 1px solid #c9c3b3 !important;\n}\n.lm-plugin .lm-slider > div > div:first-child {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n padding-right: 50px;\n display: table;\n}\n.lm-plugin .lm-slider > div > div:first-child > div {\n height: 32px;\n display: table-cell;\n vertical-align: middle;\n padding: 0 14px;\n}\n.lm-plugin .lm-slider > div > div:last-child {\n position: absolute;\n height: 32px;\n right: 0;\n width: 50px;\n top: 0;\n bottom: 0;\n}\n.lm-plugin .lm-slider input[type=text] {\n text-align: right;\n}\n.lm-plugin .lm-slider input[type=range] {\n width: 100%;\n}\n.lm-plugin .lm-toggle-color-picker button {\n border: 10px solid #f3f2ee !important;\n margin: 0;\n text-align: center;\n padding-right: 10px;\n padding-left: 10px;\n}\n.lm-plugin .lm-toggle-color-picker button:hover {\n border-color: #e9e6e0 !important;\n border: none;\n outline-offset: -1px !important;\n outline: 1px solid #c9c3b3 !important;\n}\n.lm-plugin .lm-toggle-color-picker .lm-color-picker {\n position: absolute;\n z-index: 100000;\n background: #eeece7;\n border-top: 1px solid #eeece7;\n padding-bottom: 5px;\n width: 100%;\n}\n.lm-plugin .lm-toggle-color-picker-above .lm-color-picker {\n top: -85px;\n height: 85px;\n}\n.lm-plugin .lm-toggle-color-picker-below .lm-color-picker {\n top: 32px;\n height: 80px;\n}\n.lm-plugin .lm-control-subgroup {\n margin-top: 1px;\n}\n.lm-plugin .lm-control-subgroup .lm-control-row {\n margin-left: 10px !important;\n}\n.lm-plugin .lm-control-subgroup .lm-control-row > span {\n width: 110px !important;\n}\n.lm-plugin .lm-control-subgroup .lm-control-row > div:nth-child(2) {\n left: 110px !important;\n}\n.lm-plugin .lm-conrol-group-expander {\n display: block;\n position: absolute;\n line-height: 32px;\n padding: 0;\n left: 0;\n top: 0;\n width: 120px;\n text-align: left;\n}\n.lm-plugin .lm-conrol-group-expander .lm-icon {\n line-height: 29px;\n width: 31px;\n text-align: center;\n display: inline-block;\n font-size: 100%;\n}\n.lm-plugin .lm-plugin-layout_controls {\n position: absolute;\n left: 10px;\n top: 10px;\n}\n.lm-plugin .lm-plugin-layout_controls > button:first-child {\n margin-right: 6px;\n}\n.lm-plugin .lm-empty-control {\n display: none;\n}\n.lm-plugin .lm-control .lm-btn-block,\n.lm-plugin .lm-control .lm-control-row button,\n.lm-plugin .lm-control-row .lm-control button {\n margin-bottom: 0px;\n margin-top: 0px;\n}\n.lm-plugin .lm-row-text > div {\n line-height: 32px;\n text-align: center;\n}\n.lm-plugin .lm-slider-base {\n position: relative;\n height: 14px;\n padding: 5px 0;\n width: 100%;\n border-radius: 6px;\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.lm-plugin .lm-slider-base * {\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.lm-plugin .lm-slider-base-rail {\n position: absolute;\n width: 100%;\n background-color: #cec9ba;\n height: 4px;\n border-radius: 2px;\n}\n.lm-plugin .lm-slider-base-track {\n position: absolute;\n left: 0;\n height: 4px;\n border-radius: 6px;\n background-color: tint(#332b1f, 60%);\n}\n.lm-plugin .lm-slider-base-handle {\n position: absolute;\n margin-left: -11px;\n margin-top: -9px;\n width: 22px;\n height: 22px;\n cursor: pointer;\n border-radius: 50%;\n background-color: #332b1f;\n border: 4px solid #cec9ba;\n}\n.lm-plugin .lm-slider-base-handle:hover {\n background-color: #ae5d04;\n}\n.lm-plugin .lm-slider-base-mark {\n position: absolute;\n top: 18px;\n left: 0;\n width: 100%;\n font-size: 12px;\n}\n.lm-plugin .lm-slider-base-mark-text {\n position: absolute;\n display: inline-block;\n vertical-align: middle;\n text-align: center;\n cursor: pointer;\n color: #999;\n}\n.lm-plugin .lm-slider-base-mark-text-active {\n color: #666;\n}\n.lm-plugin .lm-slider-base-step {\n position: absolute;\n width: 100%;\n height: 4px;\n background: transparent;\n}\n.lm-plugin .lm-slider-base-dot {\n position: absolute;\n bottom: -2px;\n margin-left: -4px;\n width: 8px;\n height: 8px;\n border: 2px solid #e9e9e9;\n background-color: #fff;\n cursor: pointer;\n border-radius: 50%;\n vertical-align: middle;\n}\n.lm-plugin .lm-slider-base-dot:first-child {\n margin-left: -4px;\n}\n.lm-plugin .lm-slider-base-dot:last-child {\n margin-left: -4px;\n}\n.lm-plugin .lm-slider-base-dot-active {\n border-color: tint(#332b1f, 50%);\n}\n.lm-plugin .lm-slider-base-disabled {\n background-color: #e9e9e9;\n}\n.lm-plugin .lm-slider-base-disabled .lm-slider-base-track {\n background-color: #ccc;\n}\n.lm-plugin .lm-slider-base-disabled .lm-slider-base-handle,\n.lm-plugin .lm-slider-base-disabled .lm-slider-base-dot {\n border-color: #ccc;\n background-color: #fff;\n cursor: not-allowed;\n}\n.lm-plugin .lm-slider-base-disabled .lm-slider-base-mark-text,\n.lm-plugin .lm-slider-base-disabled .lm-slider-base-dot {\n cursor: not-allowed !important;\n}\n.lm-plugin .lm-slider-base-vertical {\n width: 14px;\n height: 100%;\n padding: 0 5px;\n}\n.lm-plugin .lm-slider-base-vertical .lm-slider-base-rail {\n height: 100%;\n width: 4px;\n}\n.lm-plugin .lm-slider-base-vertical .lm-slider-base-track {\n left: 5px;\n bottom: 0;\n width: 4px;\n}\n.lm-plugin .lm-slider-base-vertical .lm-slider-base-handle {\n margin-left: -5px;\n margin-bottom: -7px;\n}\n.lm-plugin .lm-slider-base-vertical .lm-slider-base-mark {\n top: 0;\n left: 18px;\n height: 100%;\n}\n.lm-plugin .lm-slider-base-vertical .lm-slider-base-step {\n height: 100%;\n width: 4px;\n}\n.lm-plugin .lm-slider-base-vertical .lm-slider-base-dot {\n left: 2px;\n margin-bottom: -4px;\n}\n.lm-plugin .lm-slider-base-vertical .lm-slider-base-dot:first-child {\n margin-bottom: -4px;\n}\n.lm-plugin .lm-slider-base-vertical .lm-slider-base-dot:last-child {\n margin-bottom: -4px;\n}\n.lm-plugin .lm-panel-header .lm-panel-expander {\n display: block;\n width: 100%;\n text-align: left;\n}\n.lm-plugin .lm-panel-header {\n height: 32px;\n border-color: #cec9ba;\n position: relative;\n}\n.lm-plugin .lm-panel-header .lm-panel-expander-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n right: 64px;\n}\n.lm-plugin .lm-panel-header .lm-panel-expander-wrapper button {\n display: block;\n width: 100%;\n text-align: left;\n height: 32px;\n line-height: 32px;\n border: none;\n font-weight: bold;\n padding-left: 0;\n background: #f6f5f3;\n}\n.lm-plugin .lm-panel-header .lm-panel-expander-wrapper button .lm-icon {\n display: inline-block;\n margin-right: 10px;\n width: 32px;\n text-align: center;\n}\n.lm-plugin .lm-panel-header .lm-panel-expander-wrapper button:hover {\n background: #f6f5f3;\n}\n.lm-plugin .lm-panel-header .lm-panel-description-standalone {\n width: 64px;\n}\n.lm-plugin .lm-panel-header .lm-panel-description-standalone > .lm-icon {\n margin-left: 32px;\n}\n.lm-plugin .lm-panel-header .lm-panel-description-with-action {\n width: 32px;\n margin-right: 32px;\n}\n.lm-plugin .lm-panel-header .lm-panel-description {\n color: #332b1f;\n float: right;\n background: #f6f5f3;\n}\n.lm-plugin .lm-panel-header .lm-panel-description > .lm-icon {\n display: block;\n width: 32px;\n height: 32px;\n line-height: 32px;\n text-align: center;\n font-size: 70%;\n cursor: default;\n background: #f6f5f3;\n color: #dcd4c6;\n}\n.lm-plugin .lm-panel-header .lm-panel-description .lm-panel-description-content {\n -webkit-user-select: none;\n /* Chrome/Safari */\n -moz-user-select: none;\n /* Firefox */\n -ms-user-select: none;\n /* IE10+ */\n /* Rules below not implemented in browsers yet */\n -o-user-select: none;\n user-select: none;\n cursor: default;\n color: #332b1f;\n display: none;\n position: absolute;\n left: 0;\n width: 100%;\n background: #c9c3b3;\n min-height: 32px;\n z-index: 1000000;\n padding: 6px 10px 6px 42px;\n text-align: left;\n}\n.lm-plugin .lm-panel-header .lm-panel-description .lm-panel-description-content > .lm-icon {\n position: absolute;\n width: 32px;\n height: 32px;\n line-height: 32px;\n text-align: center;\n font-size: 80%;\n cursor: default;\n top: 0;\n left: 0;\n}\n.lm-plugin .lm-panel-header .lm-panel-description:hover {\n color: #ae5d04;\n}\n.lm-plugin .lm-panel-header .lm-panel-description:hover > .lm-icon {\n color: #ae5d04;\n}\n.lm-plugin .lm-panel-header .lm-panel-description:hover .lm-panel-description-content {\n display: block;\n}\n.lm-plugin .lm-panel-body {\n background: #e0ddd4;\n}\n.lm-plugin .lm-panel {\n margin-bottom: 10px;\n}\n.lm-plugin .lm-transform-view {\n padding-top: 10px;\n}\n.lm-plugin .lm-expandable-group-color-stripe {\n position: absolute;\n left: 0;\n top: 30px;\n width: 120px;\n height: 2px;\n}\n.lm-plugin .lm-description {\n padding: 10px;\n font-size: 85%;\n background: #eeece7;\n text-align: center;\n -webkit-user-select: none;\n /* Chrome/Safari */\n -moz-user-select: none;\n /* Firefox */\n -ms-user-select: none;\n /* IE10+ */\n /* Rules below not implemented in browsers yet */\n -o-user-select: none;\n user-select: none;\n font-weight: light;\n cursor: default;\n}\n.lm-plugin .lm-description:not(:first-child) {\n border-top: 1px solid #e0ddd4;\n}\n.lm-plugin .lm-color-picker input {\n color: black !important;\n}\n.lm-plugin .lm-no-webgl {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n display: table;\n text-align: center;\n}\n.lm-plugin .lm-no-webgl > div {\n display: table-cell;\n vertical-align: middle;\n text-align: center;\n width: 100%;\n height: 100%;\n}\n.lm-plugin .lm-no-webgl > div b {\n font-size: 120%;\n}\n.lm-plugin .lm-loader-lm-btn-file {\n position: relative;\n overflow: hidden;\n}\n.lm-plugin .lm-loader-lm-btn-file input[type=file] {\n position: absolute;\n top: 0;\n right: 0;\n min-width: 100%;\n min-height: 100%;\n font-size: 100px;\n text-align: right;\n filter: alpha(opacity=0);\n opacity: 0;\n outline: none;\n background: white;\n cursor: inherit;\n display: block;\n}\n.lm-plugin .lm-entity-tree {\n overflow: hidden;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n padding-top: 10px;\n background: #e0ddd4;\n}\n.lm-plugin .lm-entity-tree .lm-entity-tree-children {\n overflow-x: hidden;\n overflow-y: auto;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 43px;\n padding: 10px 0;\n}\n.lm-plugin .lm-entity-store-header {\n height: 33px;\n position: relative;\n border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-entity-store-header > span {\n margin-left: 6px;\n display: inline-block;\n line-height: 32px;\n font-weight: bold;\n -webkit-user-select: none;\n /* Chrome/Safari */\n -moz-user-select: none;\n /* Firefox */\n -ms-user-select: none;\n /* IE10+ */\n /* Rules below not implemented in browsers yet */\n -o-user-select: none;\n user-select: none;\n cursor: default;\n}\n.lm-plugin .lm-entity-store-header button {\n display: block !important;\n height: 32px !important;\n margin: 0 !important;\n line-height: 32px !important;\n border: none !important;\n position: absolute;\n top: 0;\n}\n.lm-plugin .lm-entity-store-root {\n overflow-x: hidden;\n overflow-y: auto;\n position: absolute;\n bottom: 0;\n left: 0;\n top: 33px;\n right: 0;\n}\n.lm-plugin .lm-entity-tree-entry {\n height: 33px;\n position: relative;\n border-bottom: 1px solid #e0ddd4;\n}\n.lm-plugin .lm-entity-tree-entry-current {\n background: #f6f5f3 !important;\n}\n.lm-plugin .lm-entity-tree-entry-current .lm-entity-tree-entry-label {\n color: #974102;\n font-weight: bold;\n}\n.lm-plugin .lm-entity-tree-entry-current .lm-entity-tree-entry-label .lm-entity-tree-entry-label-tag {\n font-weight: normal;\n}\n.lm-plugin .lm-entity-tree-entry-current .lm-entity-tree-entry-label:hover {\n color: #ae5d04;\n}\n.lm-plugin .lm-entity-tree-entry-current-path {\n background: #f2f1ed !important;\n}\n.lm-plugin .lm-entity-tree-entry-current-path .lm-entity-tree-entry-label {\n color: #b04c02;\n}\n.lm-plugin .lm-entity-tree-entry-current-path .lm-entity-tree-entry-label:hover {\n color: #ae5d04;\n}\n.lm-plugin .lm-entity-tree-entry button,\n.lm-plugin .lm-entity-tree-entry > div {\n display: block !important;\n height: 32px !important;\n margin: 0 !important;\n line-height: 32px !important;\n border: none !important;\n position: absolute;\n top: 0;\n}\n.lm-plugin .lm-entity-tree-entry-toggle-group {\n width: 32px;\n height: 32px;\n padding: 0;\n left: 0;\n}\n.lm-plugin .lm-entity-tree-entry-toggle-visible {\n width: 32px;\n right: 0;\n padding: 0 !important;\n font-size: 80%;\n}\n.lm-plugin .lm-entity-tree-entry-toggle-visible-full,\n.lm-plugin .lm-entity-tree-entry-toggle-visible-full:focus,\n.lm-plugin .lm-entity-tree-entry-toggle-visible-full:active {\n color: #332b1f;\n}\n.lm-plugin .lm-entity-tree-entry-toggle-visible-partial,\n.lm-plugin .lm-entity-tree-entry-toggle-visible-partial:focus,\n.lm-plugin .lm-entity-tree-entry-toggle-visible-partial:active {\n color: #9c835f;\n}\n.lm-plugin .lm-entity-tree-entry-toggle-visible-none,\n.lm-plugin .lm-entity-tree-entry-toggle-visible-none:focus,\n.lm-plugin .lm-entity-tree-entry-toggle-visible-none:active {\n color: #dcd4c6;\n}\n.lm-plugin .lm-entity-tree-entry-remove {\n width: 32px;\n height: 32px;\n right: 32px;\n padding: 0 !important;\n text-align: center;\n font-size: 80%;\n color: #dcd4c6;\n}\n.lm-plugin .lm-entity-tree-entry-body {\n position: absolute;\n left: 32px;\n border-radius: 0 0 0 8px;\n right: 0;\n background: #eeece7;\n}\n.lm-plugin .lm-entity-tree-entry .lm-entity-badge {\n width: 32px;\n position: absolute;\n height: 32px;\n left: 0;\n top: 0;\n border-radius: 0 8px 0 8px;\n}\n.lm-plugin .lm-entity-tree-entry-label-wrap {\n right: 64px;\n overflow: hidden;\n left: 32px;\n height: 32px;\n position: absolute;\n}\n.lm-plugin .lm-entity-tree-entry-label {\n position: absolute;\n right: 0;\n top: 0;\n left: 0;\n text-align: left !important;\n width: 100%;\n padding: 0 10px !important;\n}\n.lm-plugin .lm-entity-tree-entry-label-tag {\n color: #726046;\n font-size: 70%;\n display: inline-block;\n margin-left: 6px;\n}\n.lm-plugin .lm-entity-tree-children-wrap {\n padding-left: 8px;\n}\n.lm-plugin .lm-entity-tree-root > .lm-entity-tree-entry {\n background: #eeece7;\n border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-entity-tree-root > .lm-entity-tree-entry .lm-entity-badge {\n border-top-right-radius: 0;\n}\n.lm-plugin .lm-entity-tree-root > .lm-entity-tree-entry .lm-entity-tree-entry-label {\n font-weight: bold;\n}\n.lm-plugin .lm-entity-tree-root > .lm-entity-tree-entry .lm-entity-tree-entry-toggle-group {\n display: none !important;\n}\n.lm-plugin .lm-entity-tree-root > .lm-entity-tree-entry .lm-entity-tree-entry-body {\n left: 24px !important;\n}\n.lm-plugin .lm-entity-tree-root > .lm-entity-tree-children-wrap {\n margin-top: 10px;\n padding-left: 0 !important;\n}\n.lm-plugin .lm-panel .lm-entity-tree-entry-toggle-visible {\n position: absolute;\n top: 0;\n right: 0;\n height: 32px;\n font-size: 100%;\n background: #eeece7;\n}\n.lm-plugin .lm-layout-hide-right .lm-entity-info {\n display: none;\n}\n.lm-plugin .lm-entity-info {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n top: 0;\n padding-top: 10px;\n background: #e0ddd4;\n}\n.lm-plugin .lm-entity-info .lm-entity-badge {\n position: absolute;\n width: 32px;\n height: 32px;\n left: 0;\n top: 0;\n border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-entity-info > div {\n position: relative;\n height: 32px;\n line-height: 32px;\n background: #eeece7;\n border-bottom: 1px solid #cec9ba;\n padding: 0 42px;\n text-align: center;\n}\n.lm-plugin .lm-entity-info > div > span {\n font-weight: bold;\n}\n.lm-plugin .lm-entity-info > div > span > span {\n display: inline-block;\n margin-left: 6px;\n font-size: 80%;\n color: #726046;\n font-weight: normal;\n}\n.lm-plugin .lm-entity-info .lm-remove-entity {\n position: absolute;\n right: 0;\n top: 0;\n}\n.lm-plugin .lm-entity-badge {\n font-weight: bold;\n color: #eceff3;\n text-align: center;\n display: table;\n cursor: default;\n}\n.lm-plugin .lm-entity-badge > div {\n margin: auto;\n display: inline-block;\n display: table-cell;\n vertical-align: middle;\n -webkit-user-select: none;\n /* Chrome/Safari */\n -moz-user-select: none;\n /* Firefox */\n -ms-user-select: none;\n /* IE10+ */\n /* Rules below not implemented in browsers yet */\n -o-user-select: none;\n user-select: none;\n cursor: default;\n}\n.lm-plugin .lm-entity-badge-Root {\n background: #eeece7;\n}\n.lm-plugin .lm-entity-badge-Group {\n background: #e98b39;\n}\n.lm-plugin .lm-entity-badge-Data {\n background: #bfc8c9;\n}\n.lm-plugin .lm-entity-badge-Object {\n background: #54d98c;\n}\n.lm-plugin .lm-entity-badge-Visual {\n background: #4aa3df;\n}\n.lm-plugin .lm-entity-badge-Selection {\n background: #ef8b80;\n}\n.lm-plugin .lm-entity-badge-Action {\n background: #46637f;\n}\n.lm-plugin .lm-entity-badge-Behaviour {\n background: #b07cc6;\n}\n.lm-plugin .lm-entity-badge-Root {\n background-repeat: no-repeat;\n background-position: center;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAACKUExURQAAAM4+K84/LM4+K5BhopJboCue1XmKi5RbpSud1R2tcolpRx2scys8Sis8Sn6SlOCFOiqYzhUYMDRPYSue1n6SlMiDTR6ncbVfNd+EOeCEOeCEOeCEORYZMMk/LH6RkxUcMhUYMSs8S32Rkyye1BUZL9+FOVpORWRSRCw8SxYYMB6tcxYZMSw9S+ECnyoAAAArdFJOUwB5/uoyc/FX9DjdS5SzyPT+acsS/fwdWEmk1NidrGb6bq+HgJY7eFVH955mjSdVAAAAn0lEQVQ4y93TyxaCIBCA4alQpFQsSs1Ku997/9drRtoxwV5Ww/m/BXAOAENc8hTonRb+3sn86OkrLfNPVgd6Ox55ezWb8KLUtr+mvLg2kjpAyguxLprbI6ORFVESobjbDSdE0ouSZrPvRQuO2BYbFGbxJmGcQ/wE9sP8nFbuNayoqS9jxT0ECey7f51E5O24Qh0uT3/HO8b+DqDUIH/SF4XSDWWIL+vnAAAAAElFTkSuQmCC);\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-general {\n padding: 6px 10px 6px 66px;\n position: relative;\n background: #f6f5f3;\n margin-bottom: 10px;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-general .lm-icon {\n display: block;\n width: 32px;\n height: 32px;\n line-height: 32px;\n position: absolute;\n text-align: center;\n left: 24px;\n top: 0;\n font-size: 80%;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-general > div {\n position: absolute;\n width: 56px;\n left: 0;\n top: 0;\n bottom: 0;\n background: #eeece7;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class {\n margin-bottom: 1px;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class > div:first-child {\n background: #f6f5f3;\n line-height: 32px;\n padding-left: 66px;\n font-weight: bold;\n position: relative;\n cursor: pointer;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class > div:first-child:hover {\n color: #ae5d04;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class > div:first-child > span {\n -webkit-user-select: none;\n /* Chrome/Safari */\n -moz-user-select: none;\n /* Firefox */\n -ms-user-select: none;\n /* IE10+ */\n /* Rules below not implemented in browsers yet */\n -o-user-select: none;\n user-select: none;\n cursor: default;\n cursor: pointer;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class > div:first-child > div:first-child {\n position: absolute;\n width: 24px;\n height: 32px;\n left: 0;\n top: 0;\n background: #eeece7;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class > div:first-child > div:nth-child(2) {\n position: absolute;\n width: 32px;\n height: 32px;\n left: 24px;\n top: 0;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class > div:nth-child(2) {\n padding: 6px 10px 6px 66px;\n margin-top: 1px;\n background: #eeece7;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class-expanded > div:nth-child(2) {\n display: block;\n}\n.lm-plugin .lm-entity-splash .lm-entity-splash-class-collapsed > div:nth-child(2) {\n display: none;\n}\n.lm-plugin .lm-task-state {\n line-height: 32px;\n}\n.lm-plugin .lm-task-state > span {\n -webkit-user-select: none;\n /* Chrome/Safari */\n -moz-user-select: none;\n /* Firefox */\n -ms-user-select: none;\n /* IE10+ */\n /* Rules below not implemented in browsers yet */\n -o-user-select: none;\n user-select: none;\n cursor: default;\n}\n.lm-plugin .lm-overlay {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n z-index: 1000;\n}\n.lm-plugin .lm-overlay .lm-overlay-background {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n background: transparent;\n}\n.lm-plugin .lm-overlay .lm-overlay-content-wrap {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n display: block;\n width: 100%;\n height: 100%;\n}\n.lm-plugin .lm-overlay .lm-overlay-content {\n text-align: center;\n}\n.lm-plugin .lm-overlay .lm-overlay-content > div {\n padding-top: 64px;\n}\n.lm-plugin .lm-overlay .lm-overlay-content > div .lm-task-state {\n text-align: center;\n}\n.lm-plugin .lm-overlay .lm-overlay-content > div .lm-task-state > div {\n height: 32px;\n margin-top: 10px;\n position: relative;\n text-align: center;\n width: 100%;\n}\n.lm-plugin .lm-overlay .lm-overlay-content > div .lm-task-state > div > div {\n height: 32px;\n line-height: 32px;\n display: inline-block;\n background: #eeece7;\n padding: 0 10px;\n font-weight: bold;\n -webkit-user-select: none;\n /* Chrome/Safari */\n -moz-user-select: none;\n /* Firefox */\n -ms-user-select: none;\n /* IE10+ */\n /* Rules below not implemented in browsers yet */\n -o-user-select: none;\n user-select: none;\n cursor: default;\n}\n.lm-plugin .lm-overlay .lm-overlay-content > div .lm-task-state > div > button {\n display: inline-block;\n margin-top: -3px;\n font-size: 140%;\n}\n.lm-plugin .lm-background-tasks {\n position: absolute;\n left: 0;\n bottom: 0;\n z-index: 1000;\n}\n.lm-plugin .lm-background-tasks .lm-task-state > div {\n height: 32px;\n margin-top: 1px;\n position: relative;\n width: 100%;\n background: #eeece7;\n}\n.lm-plugin .lm-background-tasks .lm-task-state > div > div {\n height: 32px;\n line-height: 32px;\n display: inline-block;\n padding: 0 10px;\n -webkit-user-select: none;\n /* Chrome/Safari */\n -moz-user-select: none;\n /* Firefox */\n -ms-user-select: none;\n /* IE10+ */\n /* Rules below not implemented in browsers yet */\n -o-user-select: none;\n user-select: none;\n cursor: default;\n}\n.lm-plugin .lm-background-tasks .lm-task-state > div > button {\n display: inline-block;\n margin-top: -3px;\n font-size: 140%;\n}\n.lm-plugin .lm-viewport {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n background: black;\n}\n.lm-plugin .lm-viewport .lm-btn-link {\n background: rgba(0, 0, 0, 0.2);\n}\n.lm-plugin .lm-viewport-expanded {\n position: fixed;\n z-index: 1000;\n}\n.lm-plugin .lm-viewport-host3d {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n -webkit-user-select: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-touch-callout: none;\n}\n.lm-plugin .lm-viewport-controls {\n position: absolute;\n right: 10px;\n top: 10px;\n}\n.lm-plugin .lm-viewport-controls-buttons {\n text-align: right;\n}\n.lm-plugin .lm-viewport-controls-buttons > button {\n padding: 0;\n text-align: center;\n width: 32px;\n}\n.lm-plugin .lm-viewport-controls-buttons > button:last-child {\n margin-left: 10px;\n}\n.lm-plugin .lm-viewport-controls-buttons .lm-btn-link,\n.lm-plugin .lm-viewport-controls-buttons .lm-btn-link-toggle-on {\n color: #eee;\n}\n.lm-plugin .lm-viewport-controls-buttons .lm-btn-link-toggle-off {\n color: #9c835f;\n}\n.lm-plugin .lm-viewport-controls-buttons .lm-btn-link:hover {\n color: #ae5d04;\n}\n.lm-plugin .lm-viewport-controls-scene-options {\n width: 290px;\n background: #e0ddd4;\n}\n.lm-plugin .lm-highlight-info {\n color: #ae5d04;\n padding: 6px 10px;\n background: #eeece7;\n position: absolute;\n top: 10px;\n left: 10px;\n text-align: left;\n min-height: 32px;\n max-width: 95%;\n z-index: 10000;\n -webkit-user-select: none;\n /* Chrome/Safari */\n -moz-user-select: none;\n /* Firefox */\n -ms-user-select: none;\n /* IE10+ */\n /* Rules below not implemented in browsers yet */\n -o-user-select: none;\n user-select: none;\n cursor: default;\n}\n.lm-plugin .lm-highlight-info-additional {\n font-size: 85%;\n display: inline-block;\n color: #fa911e;\n}\n.lm-plugin .lm-log-wrap {\n position: absolute;\n right: 0;\n top: 0;\n left: 0;\n bottom: 0;\n overflow: hidden;\n}\n.lm-plugin .lm-log {\n position: absolute;\n right: -20px;\n top: 0;\n left: 0;\n bottom: 0;\n overflow-y: scroll;\n overflow-x: hidden;\n font-size: 90%;\n background: #e0ddd4;\n}\n.lm-plugin .lm-log {\n color: #433829;\n}\n.lm-plugin .lm-log ul {\n padding: 0;\n margin: 0;\n}\n.lm-plugin .lm-log li {\n clear: both;\n margin: 0;\n background: #eeece7;\n position: relative;\n}\n.lm-plugin .lm-log li:not(:last-child) {\n border-bottom: 1px solid #cec9ba;\n}\n.lm-plugin .lm-log .lm-log-entry {\n margin-left: 110px;\n background: #ebe8e3;\n padding: 6px 25px 6px 10px;\n}\n.lm-plugin .lm-log .lm-log-timestamp {\n padding: 7px 10px 5px 10px;\n float: left;\n text-align: right;\n width: 110px;\n color: #726046;\n font-size: 90%;\n}\n.lm-plugin .lm-log .lm-log-timestamp small {\n font-size: 90%;\n}\n.lm-plugin .lm-log .label {\n margin-top: -3px;\n font-size: 7pt;\n}\n.lm-plugin .lm-log-entry-badge {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 6px;\n}\n.lm-plugin .lm-log-entry-message {\n background: #0CCA5D;\n}\n.lm-plugin .lm-log-entry-info {\n background: #5E3673;\n}\n.lm-plugin .lm-log-entry-error {\n background: #FD354B;\n}\n.lm-plugin .lm-log-entry-warning {\n background: #FCC937;\n}\n.lm-plugin .lm-transformer .lm-entity-badge {\n position: absolute;\n top: 0;\n right: 0;\n height: 32px;\n line-height: 32px;\n width: 32px;\n}\n.lm-plugin .lm-layout-right {\n background: #e0ddd4;\n}\n.lm-plugin .lm-transformer-wrapper {\n position: relative;\n}\n.lm-plugin .lm-transformer-wrapper .lm-entity-badge {\n left: 0;\n top: 0;\n}\n.lm-plugin .lm-transformer-wrapper:first-child .lm-panel-description-content {\n top: 33px;\n}\n.lm-plugin .lm-transformer-wrapper:not(:first-child) .lm-panel-description-content {\n bottom: 33px;\n}\n.lm-plugin .lm-toast-container {\n position: absolute;\n max-width: 100%;\n bottom: 10px;\n right: 10px;\n margin-left: 10px;\n z-index: 1001;\n}\n.lm-plugin .lm-toast-container .lm-toast-entry {\n color: #332b1f;\n background: #e0ddd4;\n position: relative;\n min-height: 32px;\n margin-top: 10px;\n border: 1px solid #cec9ba;\n display: table;\n}\n.lm-plugin .lm-toast-container .lm-toast-entry .lm-toast-title {\n height: 100%;\n line-height: 32px;\n padding: 0 10px;\n background: #eeece7;\n font-weight: bold;\n display: table-cell;\n -webkit-user-select: none;\n /* Chrome/Safari */\n -moz-user-select: none;\n /* Firefox */\n -ms-user-select: none;\n /* IE10+ */\n /* Rules below not implemented in browsers yet */\n -o-user-select: none;\n user-select: none;\n font-weight: light;\n cursor: pointer;\n}\n.lm-plugin .lm-toast-container .lm-toast-entry .lm-toast-message {\n padding: 6px 42px 6px 10px;\n display: table-cell;\n}\n.lm-plugin .lm-toast-container .lm-toast-entry .lm-toast-message a {\n text-decoration: none;\n color: #974102;\n font-weight: bold;\n}\n.lm-plugin .lm-toast-container .lm-toast-entry .lm-toast-message a:hover {\n text-decoration: underline;\n color: #fc6c03;\n}\n.lm-plugin .lm-toast-container .lm-toast-entry .lm-toast-message a:active,\n.lm-plugin .lm-toast-container .lm-toast-entry .lm-toast-message a:focus {\n color: #974102;\n outline-offset: 0;\n outline: none;\n}\n.lm-plugin .lm-toast-container .lm-toast-entry .lm-toast-hide {\n position: absolute;\n width: 42px;\n right: 0;\n top: 0;\n bottom: 0;\n}\n.lm-plugin .lm-toast-container .lm-toast-entry .lm-toast-hide .lm-btn-icon {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n text-align: right;\n padding-right: 5px;\n}\n.lm-plugin .lm-help-row {\n position: relative;\n height: 32px;\n background: #eeece7;\n margin-top: 1px;\n display: table;\n width: 100%;\n}\n.lm-plugin .lm-help-row > span {\n width: 120px;\n text-align: right;\n padding: 6px 10px;\n color: #63533c;\n display: table-cell;\n font-weight: bold;\n -webkit-user-select: none;\n /* Chrome/Safari */\n -moz-user-select: none;\n /* Firefox */\n -ms-user-select: none;\n /* IE10+ */\n /* Rules below not implemented in browsers yet */\n -o-user-select: none;\n user-select: none;\n cursor: default;\n}\n.lm-plugin .lm-help-row > div {\n background: #f3f2ee;\n position: relative;\n padding: 6px 10px;\n display: table-cell;\n}\n.lm-plugin .lm-logo {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n display: table;\n width: 100%;\n height: 100%;\n}\n.lm-plugin .lm-logo > div {\n display: table-cell;\n vertical-align: middle;\n text-align: center;\n}\n.lm-plugin .lm-logo > div > div {\n display: inline-block;\n position: relative;\n width: 50%;\n max-width: 450px;\n height: 130px;\n}\n.lm-plugin .lm-logo > div > div > div {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n}\n.lm-plugin .lm-logo > div > div > div:first-child {\n background: rgba(204, 201, 193, 0.85);\n}\n.lm-plugin .lm-logo-image {\n -webkit-user-select: none;\n /* Chrome/Safari */\n -moz-user-select: none;\n /* Firefox */\n -ms-user-select: none;\n /* IE10+ */\n /* Rules below not implemented in browsers yet */\n -o-user-select: none;\n user-select: none;\n cursor: default;\n margin: 20px;\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n background-image: url(data:image/png;base64,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);\n}\n.lm-plugin .lm-plugin-content {\n color: #332b1f;\n}\n/*!\n * # Semantic UI 2.2.12 - Label\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n.ui.label {\n display: inline-block;\n line-height: 1;\n vertical-align: baseline;\n margin: 0 .14285714em;\n background-color: #e8e8e8;\n background-image: none;\n padding: .5833em .833em;\n color: rgba(0,0,0,.6);\n text-transform: none;\n font-weight: 700;\n border: 0 solid transparent;\n border-radius: .28571429rem;\n -webkit-transition: background .1s ease;\n transition: background .1s ease;\n}\n.ui.label:first-child {\n margin-left: 0;\n}\n.ui.label:last-child {\n margin-right: 0;\n}\na.ui.label {\n cursor: pointer;\n}\n.ui.label>a {\n cursor: pointer;\n color: inherit;\n opacity: .5;\n -webkit-transition: .1s opacity ease;\n transition: .1s opacity ease;\n}\n.ui.label>a:hover {\n opacity: 1;\n}\n.ui.label>img {\n width: auto!important;\n vertical-align: middle;\n height: 2.1666em!important;\n}\n.ui.label>.icon {\n width: auto;\n margin: 0 .75em 0 0;\n}\n.ui.label>.detail {\n display: inline-block;\n vertical-align: top;\n font-weight: 700;\n margin-left: 1em;\n opacity: .8;\n}\n.ui.label>.detail .icon {\n margin: 0 .25em 0 0;\n}\n.ui.label>.close.icon,\n.ui.label>.delete.icon {\n cursor: pointer;\n margin-right: 0;\n margin-left: .5em;\n font-size: .92857143em;\n opacity: .5;\n -webkit-transition: background .1s ease;\n transition: background .1s ease;\n}\n.ui.label>.delete.icon:hover {\n opacity: 1;\n}\n.ui.labels>.label {\n margin: 0 .5em .5em 0;\n}\n.ui.header>.ui.label {\n margin-top: -.29165em;\n}\n.ui.attached.segment>.ui.top.left.attached.label,\n.ui.bottom.attached.segment>.ui.top.left.attached.label {\n border-top-left-radius: 0;\n}\n.ui.attached.segment>.ui.top.right.attached.label,\n.ui.bottom.attached.segment>.ui.top.right.attached.label {\n border-top-right-radius: 0;\n}\n.ui.top.attached.segment>.ui.bottom.left.attached.label {\n border-bottom-left-radius: 0;\n}\n.ui.top.attached.segment>.ui.bottom.right.attached.label {\n border-bottom-right-radius: 0;\n}\n.ui.top.attached.label+[class*="right floated"]+*,\n.ui.top.attached.label:first-child+:not(.attached) {\n margin-top: 2rem!important;\n}\n.ui.bottom.attached.label:first-child~:last-child:not(.attached) {\n margin-top: 0;\n margin-bottom: 2rem!important;\n}\n.ui.image.label {\n width: auto!important;\n margin-top: 0;\n margin-bottom: 0;\n max-width: 9999px;\n vertical-align: baseline;\n text-transform: none;\n background: #e8e8e8;\n padding: .5833em .833em .5833em .5em;\n border-radius: .28571429rem;\n box-shadow: none;\n}\n.ui.image.label img {\n display: inline-block;\n vertical-align: top;\n height: 2.1666em;\n margin: -.5833em .5em -.5833em -.5em;\n border-radius: .28571429rem 0 0 .28571429rem;\n}\n.ui.image.label .detail {\n background: rgba(0,0,0,.1);\n margin: -.5833em -.833em -.5833em .5em;\n padding: .5833em .833em;\n border-radius: 0 .28571429rem .28571429rem 0;\n}\n.ui.tag.label,\n.ui.tag.labels .label {\n margin-left: 1em;\n position: relative;\n padding-left: 1.5em;\n padding-right: 1.5em;\n border-radius: 0 .28571429rem .28571429rem 0;\n -webkit-transition: none;\n transition: none;\n}\n.ui.tag.label:before,\n.ui.tag.labels .label:before {\n position: absolute;\n -webkit-transform: translateY(-50%) translateX(50%) rotate(-45deg);\n transform: translateY(-50%) translateX(50%) rotate(-45deg);\n top: 50%;\n right: 100%;\n content: \'\';\n background-color: inherit;\n background-image: none;\n width: 1.56em;\n height: 1.56em;\n -webkit-transition: none;\n transition: none;\n}\n.ui.tag.label:after,\n.ui.tag.labels .label:after {\n position: absolute;\n content: \'\';\n top: 50%;\n left: -.25em;\n margin-top: -.25em;\n background-color: #fff!important;\n width: .5em;\n height: .5em;\n box-shadow: 0 -1px 1px 0 rgba(0,0,0,.3);\n border-radius: 500rem;\n}\n.ui.corner.label {\n position: absolute;\n top: 0;\n right: 0;\n margin: 0;\n padding: 0;\n text-align: center;\n border-color: #e8e8e8;\n width: 4em;\n height: 4em;\n z-index: 1;\n -webkit-transition: border-color .1s ease;\n transition: border-color .1s ease;\n}\n.ui.corner.label {\n background-color: transparent!important;\n}\n.ui.corner.label:after {\n position: absolute;\n content: "";\n right: 0;\n top: 0;\n z-index: -1;\n width: 0;\n height: 0;\n background-color: transparent!important;\n border-top: 0 solid transparent;\n border-right: 4em solid transparent;\n border-bottom: 4em solid transparent;\n border-left: 0 solid transparent;\n border-right-color: inherit;\n -webkit-transition: border-color .1s ease;\n transition: border-color .1s ease;\n}\n.ui.corner.label .icon {\n cursor: default;\n position: relative;\n top: .64285714em;\n left: .78571429em;\n font-size: 1.14285714em;\n margin: 0;\n}\n.ui.left.corner.label,\n.ui.left.corner.label:after {\n right: auto;\n left: 0;\n}\n.ui.left.corner.label:after {\n border-top: 4em solid transparent;\n border-right: 4em solid transparent;\n border-bottom: 0 solid transparent;\n border-left: 0 solid transparent;\n border-top-color: inherit;\n}\n.ui.left.corner.label .icon {\n left: -.78571429em;\n}\n.ui.segment>.ui.corner.label {\n top: -1px;\n right: -1px;\n}\n.ui.segment>.ui.left.corner.label {\n right: auto;\n left: -1px;\n}\n.ui.ribbon.label {\n position: relative;\n margin: 0;\n min-width: -webkit-max-content;\n min-width: -moz-max-content;\n min-width: max-content;\n border-radius: 0 .28571429rem .28571429rem 0;\n border-color: rgba(0,0,0,.15);\n}\n.ui.ribbon.label:after {\n position: absolute;\n content: \'\';\n top: 100%;\n left: 0;\n background-color: transparent!important;\n border-style: solid;\n border-width: 0 1.2em 1.2em 0;\n border-color: transparent;\n border-right-color: inherit;\n width: 0;\n height: 0;\n}\n.ui.ribbon.label {\n left: calc(-1rem - 1.2em);\n margin-right: -1.2em;\n padding-left: calc(1rem + 1.2em);\n padding-right: 1.2em;\n}\n.ui[class*="right ribbon"].label {\n left: calc(100% + 1rem + 1.2em);\n padding-left: 1.2em;\n padding-right: calc(1rem + 1.2em);\n}\n.ui[class*="right ribbon"].label {\n text-align: left;\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n border-radius: .28571429rem 0 0 .28571429rem;\n}\n.ui[class*="right ribbon"].label:after {\n left: auto;\n right: 0;\n border-style: solid;\n border-width: 1.2em 1.2em 0 0;\n border-color: transparent;\n border-top-color: inherit;\n}\n.ui.card .image>.ribbon.label,\n.ui.image>.ribbon.label {\n position: absolute;\n top: 1rem;\n}\n.ui.card .image>.ui.ribbon.label,\n.ui.image>.ui.ribbon.label {\n left: calc(.05rem - 1.2em);\n}\n.ui.card .image>.ui[class*="right ribbon"].label,\n.ui.image>.ui[class*="right ribbon"].label {\n left: calc(100% + -.05rem + 1.2em);\n padding-left: .833em;\n}\n.ui.table td>.ui.ribbon.label {\n left: calc(-.78571429em - 1.2em);\n}\n.ui.table td>.ui[class*="right ribbon"].label {\n left: calc(100% + .78571429em + 1.2em);\n padding-left: .833em;\n}\n.ui.attached.label,\n.ui[class*="top attached"].label {\n width: 100%;\n position: absolute;\n margin: 0;\n top: 0;\n left: 0;\n padding: .75em 1em;\n border-radius: .21428571rem .21428571rem 0 0;\n}\n.ui[class*="bottom attached"].label {\n top: auto;\n bottom: 0;\n border-radius: 0 0 .21428571rem .21428571rem;\n}\n.ui[class*="top left attached"].label {\n width: auto;\n margin-top: 0!important;\n border-radius: .21428571rem 0 .28571429rem 0;\n}\n.ui[class*="top right attached"].label {\n width: auto;\n left: auto;\n right: 0;\n border-radius: 0 .21428571rem 0 .28571429rem;\n}\n.ui[class*="bottom left attached"].label {\n width: auto;\n top: auto;\n bottom: 0;\n border-radius: 0 .28571429rem 0 .21428571rem;\n}\n.ui[class*="bottom right attached"].label {\n top: auto;\n bottom: 0;\n left: auto;\n right: 0;\n width: auto;\n border-radius: .28571429rem 0 .21428571rem 0;\n}\n.ui.label.disabled {\n opacity: .5;\n}\na.ui.label:hover,\na.ui.labels .label:hover {\n background-color: #e0e0e0;\n border-color: #e0e0e0;\n background-image: none;\n color: rgba(0,0,0,.8);\n}\n.ui.labels a.label:hover:before,\na.ui.label:hover:before {\n color: rgba(0,0,0,.8);\n}\n.ui.active.label {\n background-color: #d0d0d0;\n border-color: #d0d0d0;\n background-image: none;\n color: rgba(0,0,0,.95);\n}\n.ui.active.label:before {\n background-color: #d0d0d0;\n background-image: none;\n color: rgba(0,0,0,.95);\n}\na.ui.active.label:hover,\na.ui.labels .active.label:hover {\n background-color: #c8c8c8;\n border-color: #c8c8c8;\n background-image: none;\n color: rgba(0,0,0,.95);\n}\n.ui.labels a.active.label:ActiveHover:before,\na.ui.active.label:ActiveHover:before {\n background-color: #c8c8c8;\n background-image: none;\n color: rgba(0,0,0,.95);\n}\n.ui.label.visible:not(.dropdown),\n.ui.labels.visible .label {\n display: inline-block!important;\n}\n.ui.label.hidden,\n.ui.labels.hidden .label {\n display: none!important;\n}\n.ui.red.label,\n.ui.red.labels .label {\n background-color: #db2828!important;\n border-color: #db2828!important;\n color: #fff!important;\n}\n.ui.red.labels .label:hover,\na.ui.red.label:hover {\n background-color: #d01919!important;\n border-color: #d01919!important;\n color: #fff!important;\n}\n.ui.red.corner.label,\n.ui.red.corner.label:hover {\n background-color: transparent!important;\n}\n.ui.red.ribbon.label {\n border-color: #b21e1e!important;\n}\n.ui.basic.red.label {\n background-color: #fff!important;\n color: #db2828!important;\n border-color: #db2828!important;\n}\n.ui.basic.red.labels a.label:hover,\na.ui.basic.red.label:hover {\n background-color: #fff!important;\n color: #d01919!important;\n border-color: #d01919!important;\n}\n.ui.orange.label,\n.ui.orange.labels .label {\n background-color: #f2711c!important;\n border-color: #f2711c!important;\n color: #fff!important;\n}\n.ui.orange.labels .label:hover,\na.ui.orange.label:hover {\n background-color: #f26202!important;\n border-color: #f26202!important;\n color: #fff!important;\n}\n.ui.orange.corner.label,\n.ui.orange.corner.label:hover {\n background-color: transparent!important;\n}\n.ui.orange.ribbon.label {\n border-color: #cf590c!important;\n}\n.ui.basic.orange.label {\n background-color: #fff!important;\n color: #f2711c!important;\n border-color: #f2711c!important;\n}\n.ui.basic.orange.labels a.label:hover,\na.ui.basic.orange.label:hover {\n background-color: #fff!important;\n color: #f26202!important;\n border-color: #f26202!important;\n}\n.ui.yellow.label,\n.ui.yellow.labels .label {\n background-color: #fbbd08!important;\n border-color: #fbbd08!important;\n color: #fff!important;\n}\n.ui.yellow.labels .label:hover,\na.ui.yellow.label:hover {\n background-color: #eaae00!important;\n border-color: #eaae00!important;\n color: #fff!important;\n}\n.ui.yellow.corner.label,\n.ui.yellow.corner.label:hover {\n background-color: transparent!important;\n}\n.ui.yellow.ribbon.label {\n border-color: #cd9903!important;\n}\n.ui.basic.yellow.label {\n background-color: #fff!important;\n color: #fbbd08!important;\n border-color: #fbbd08!important;\n}\n.ui.basic.yellow.labels a.label:hover,\na.ui.basic.yellow.label:hover {\n background-color: #fff!important;\n color: #eaae00!important;\n border-color: #eaae00!important;\n}\n.ui.olive.label,\n.ui.olive.labels .label {\n background-color: #b5cc18!important;\n border-color: #b5cc18!important;\n color: #fff!important;\n}\n.ui.olive.labels .label:hover,\na.ui.olive.label:hover {\n background-color: #a7bd0d!important;\n border-color: #a7bd0d!important;\n color: #fff!important;\n}\n.ui.olive.corner.label,\n.ui.olive.corner.label:hover {\n background-color: transparent!important;\n}\n.ui.olive.ribbon.label {\n border-color: #198f35!important;\n}\n.ui.basic.olive.label {\n background-color: #fff!important;\n color: #b5cc18!important;\n border-color: #b5cc18!important;\n}\n.ui.basic.olive.labels a.label:hover,\na.ui.basic.olive.label:hover {\n background-color: #fff!important;\n color: #a7bd0d!important;\n border-color: #a7bd0d!important;\n}\n.ui.green.label,\n.ui.green.labels .label {\n background-color: #21ba45!important;\n border-color: #21ba45!important;\n color: #fff!important;\n}\n.ui.green.labels .label:hover,\na.ui.green.label:hover {\n background-color: #16ab39!important;\n border-color: #16ab39!important;\n color: #fff!important;\n}\n.ui.green.corner.label,\n.ui.green.corner.label:hover {\n background-color: transparent!important;\n}\n.ui.green.ribbon.label {\n border-color: #198f35!important;\n}\n.ui.basic.green.label {\n background-color: #fff!important;\n color: #21ba45!important;\n border-color: #21ba45!important;\n}\n.ui.basic.green.labels a.label:hover,\na.ui.basic.green.label:hover {\n background-color: #fff!important;\n color: #16ab39!important;\n border-color: #16ab39!important;\n}\n.ui.teal.label,\n.ui.teal.labels .label {\n background-color: #00b5ad!important;\n border-color: #00b5ad!important;\n color: #fff!important;\n}\n.ui.teal.labels .label:hover,\na.ui.teal.label:hover {\n background-color: #009c95!important;\n border-color: #009c95!important;\n color: #fff!important;\n}\n.ui.teal.corner.label,\n.ui.teal.corner.label:hover {\n background-color: transparent!important;\n}\n.ui.teal.ribbon.label {\n border-color: #00827c!important;\n}\n.ui.basic.teal.label {\n background-color: #fff!important;\n color: #00b5ad!important;\n border-color: #00b5ad!important;\n}\n.ui.basic.teal.labels a.label:hover,\na.ui.basic.teal.label:hover {\n background-color: #fff!important;\n color: #009c95!important;\n border-color: #009c95!important;\n}\n.ui.blue.label,\n.ui.blue.labels .label {\n background-color: #2185d0!important;\n border-color: #2185d0!important;\n color: #fff!important;\n}\n.ui.blue.labels .label:hover,\na.ui.blue.label:hover {\n background-color: #1678c2!important;\n border-color: #1678c2!important;\n color: #fff!important;\n}\n.ui.blue.corner.label,\n.ui.blue.corner.label:hover {\n background-color: transparent!important;\n}\n.ui.blue.ribbon.label {\n border-color: #1a69a4!important;\n}\n.ui.basic.blue.label {\n background-color: #fff!important;\n color: #2185d0!important;\n border-color: #2185d0!important;\n}\n.ui.basic.blue.labels a.label:hover,\na.ui.basic.blue.label:hover {\n background-color: #fff!important;\n color: #1678c2!important;\n border-color: #1678c2!important;\n}\n.ui.violet.label,\n.ui.violet.labels .label {\n background-color: #6435c9!important;\n border-color: #6435c9!important;\n color: #fff!important;\n}\n.ui.violet.labels .label:hover,\na.ui.violet.label:hover {\n background-color: #5829bb!important;\n border-color: #5829bb!important;\n color: #fff!important;\n}\n.ui.violet.corner.label,\n.ui.violet.corner.label:hover {\n background-color: transparent!important;\n}\n.ui.violet.ribbon.label {\n border-color: #502aa1!important;\n}\n.ui.basic.violet.label {\n background-color: #fff!important;\n color: #6435c9!important;\n border-color: #6435c9!important;\n}\n.ui.basic.violet.labels a.label:hover,\na.ui.basic.violet.label:hover {\n background-color: #fff!important;\n color: #5829bb!important;\n border-color: #5829bb!important;\n}\n.ui.purple.label,\n.ui.purple.labels .label {\n background-color: #a333c8!important;\n border-color: #a333c8!important;\n color: #fff!important;\n}\n.ui.purple.labels .label:hover,\na.ui.purple.label:hover {\n background-color: #9627ba!important;\n border-color: #9627ba!important;\n color: #fff!important;\n}\n.ui.purple.corner.label,\n.ui.purple.corner.label:hover {\n background-color: transparent!important;\n}\n.ui.purple.ribbon.label {\n border-color: #82299f!important;\n}\n.ui.basic.purple.label {\n background-color: #fff!important;\n color: #a333c8!important;\n border-color: #a333c8!important;\n}\n.ui.basic.purple.labels a.label:hover,\na.ui.basic.purple.label:hover {\n background-color: #fff!important;\n color: #9627ba!important;\n border-color: #9627ba!important;\n}\n.ui.pink.label,\n.ui.pink.labels .label {\n background-color: #e03997!important;\n border-color: #e03997!important;\n color: #fff!important;\n}\n.ui.pink.labels .label:hover,\na.ui.pink.label:hover {\n background-color: #e61a8d!important;\n border-color: #e61a8d!important;\n color: #fff!important;\n}\n.ui.pink.corner.label,\n.ui.pink.corner.label:hover {\n background-color: transparent!important;\n}\n.ui.pink.ribbon.label {\n border-color: #c71f7e!important;\n}\n.ui.basic.pink.label {\n background-color: #fff!important;\n color: #e03997!important;\n border-color: #e03997!important;\n}\n.ui.basic.pink.labels a.label:hover,\na.ui.basic.pink.label:hover {\n background-color: #fff!important;\n color: #e61a8d!important;\n border-color: #e61a8d!important;\n}\n.ui.brown.label,\n.ui.brown.labels .label {\n background-color: #a5673f!important;\n border-color: #a5673f!important;\n color: #fff!important;\n}\n.ui.brown.labels .label:hover,\na.ui.brown.label:hover {\n background-color: #975b33!important;\n border-color: #975b33!important;\n color: #fff!important;\n}\n.ui.brown.corner.label,\n.ui.brown.corner.label:hover {\n background-color: transparent!important;\n}\n.ui.brown.ribbon.label {\n border-color: #805031!important;\n}\n.ui.basic.brown.label {\n background-color: #fff!important;\n color: #a5673f!important;\n border-color: #a5673f!important;\n}\n.ui.basic.brown.labels a.label:hover,\na.ui.basic.brown.label:hover {\n background-color: #fff!important;\n color: #975b33!important;\n border-color: #975b33!important;\n}\n.ui.grey.label,\n.ui.grey.labels .label {\n background-color: #767676!important;\n border-color: #767676!important;\n color: #fff!important;\n}\n.ui.grey.labels .label:hover,\na.ui.grey.label:hover {\n background-color: #838383!important;\n border-color: #838383!important;\n color: #fff!important;\n}\n.ui.grey.corner.label,\n.ui.grey.corner.label:hover {\n background-color: transparent!important;\n}\n.ui.grey.ribbon.label {\n border-color: #805031!important;\n}\n.ui.basic.grey.label {\n background-color: #fff!important;\n color: #767676!important;\n border-color: #767676!important;\n}\n.ui.basic.grey.labels a.label:hover,\na.ui.basic.grey.label:hover {\n background-color: #fff!important;\n color: #838383!important;\n border-color: #838383!important;\n}\n.ui.black.label,\n.ui.black.labels .label {\n background-color: #1b1c1d!important;\n border-color: #1b1c1d!important;\n color: #fff!important;\n}\n.ui.black.labels .label:hover,\na.ui.black.label:hover {\n background-color: #27292a!important;\n border-color: #27292a!important;\n color: #fff!important;\n}\n.ui.black.corner.label,\n.ui.black.corner.label:hover {\n background-color: transparent!important;\n}\n.ui.black.ribbon.label {\n border-color: #805031!important;\n}\n.ui.basic.black.label {\n background-color: #fff!important;\n color: #1b1c1d!important;\n border-color: #1b1c1d!important;\n}\n.ui.basic.black.labels a.label:hover,\na.ui.basic.black.label:hover {\n background-color: #fff!important;\n color: #27292a!important;\n border-color: #27292a!important;\n}\n.ui.basic.label {\n background: none #fff;\n border: 1px solid rgba(34,36,38,.15);\n color: rgba(0,0,0,.87);\n box-shadow: none;\n}\na.ui.basic.label:hover {\n text-decoration: none;\n background: none #fff;\n color: #1e70bf;\n box-shadow: 1px solid rgba(34,36,38,.15);\n box-shadow: none;\n}\n.ui.basic.pointing.label:before {\n border-color: inherit;\n}\n.ui.fluid.labels>.label,\n.ui.label.fluid {\n width: 100%;\n box-sizing: border-box;\n}\n.ui.inverted.label,\n.ui.inverted.labels .label {\n color: rgba(255,255,255,.9)!important;\n}\n.ui.horizontal.label,\n.ui.horizontal.labels .label {\n margin: 0 .5em 0 0;\n padding: .4em .833em;\n min-width: 3em;\n text-align: center;\n}\n.ui.circular.label,\n.ui.circular.labels .label {\n min-width: 2em;\n min-height: 2em;\n padding: .5em!important;\n line-height: 1em;\n text-align: center;\n border-radius: 500rem;\n}\n.ui.empty.circular.label,\n.ui.empty.circular.labels .label {\n min-width: 0;\n min-height: 0;\n overflow: hidden;\n width: .5em;\n height: .5em;\n vertical-align: baseline;\n}\n.ui.pointing.label {\n position: relative;\n}\n.ui.attached.pointing.label {\n position: absolute;\n}\n.ui.pointing.label:before {\n background-color: inherit;\n background-image: inherit;\n border-width: none;\n border-style: solid;\n border-color: inherit;\n}\n.ui.pointing.label:before {\n position: absolute;\n content: \'\';\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n background-image: none;\n z-index: 2;\n width: .6666em;\n height: .6666em;\n -webkit-transition: background .1s ease;\n transition: background .1s ease;\n}\n.ui.pointing.label,\n.ui[class*="pointing above"].label {\n margin-top: 1em;\n}\n.ui.pointing.label:before,\n.ui[class*="pointing above"].label:before {\n border-width: 1px 0 0 1px;\n -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg);\n transform: translateX(-50%) translateY(-50%) rotate(45deg);\n top: 0;\n left: 50%;\n}\n.ui[class*="bottom pointing"].label,\n.ui[class*="pointing below"].label {\n margin-top: 0;\n margin-bottom: 1em;\n}\n.ui[class*="bottom pointing"].label:before,\n.ui[class*="pointing below"].label:before {\n border-width: 0 1px 1px 0;\n top: auto;\n right: auto;\n -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg);\n transform: translateX(-50%) translateY(-50%) rotate(45deg);\n top: 100%;\n left: 50%;\n}\n.ui[class*="left pointing"].label {\n margin-top: 0;\n margin-left: .6666em;\n}\n.ui[class*="left pointing"].label:before {\n border-width: 0 0 1px 1px;\n -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg);\n transform: translateX(-50%) translateY(-50%) rotate(45deg);\n bottom: auto;\n right: auto;\n top: 50%;\n left: 0;\n}\n.ui[class*="right pointing"].label {\n margin-top: 0;\n margin-right: .6666em;\n}\n.ui[class*="right pointing"].label:before {\n border-width: 1px 1px 0 0;\n -webkit-transform: translateX(50%) translateY(-50%) rotate(45deg);\n transform: translateX(50%) translateY(-50%) rotate(45deg);\n top: 50%;\n right: 0;\n bottom: auto;\n left: auto;\n}\n.ui.basic.pointing.label:before,\n.ui.basic[class*="pointing above"].label:before {\n margin-top: -1px;\n}\n.ui.basic[class*="bottom pointing"].label:before,\n.ui.basic[class*="pointing below"].label:before {\n bottom: auto;\n top: 100%;\n margin-top: 1px;\n}\n.ui.basic[class*="left pointing"].label:before {\n top: 50%;\n left: -1px;\n}\n.ui.basic[class*="right pointing"].label:before {\n top: 50%;\n right: -1px;\n}\n.ui.floating.label {\n position: absolute;\n z-index: 100;\n top: -1em;\n left: 100%;\n margin: 0 0 0 -1.5em!important;\n}\n.ui.mini.label,\n.ui.mini.labels .label {\n font-size: .64285714rem;\n}\n.ui.tiny.label,\n.ui.tiny.labels .label {\n font-size: .71428571rem;\n}\n.ui.small.label,\n.ui.small.labels .label {\n font-size: .78571429rem;\n}\n.ui.label,\n.ui.labels .label {\n font-size: .85714286rem;\n}\n.ui.large.label,\n.ui.large.labels .label {\n font-size: 1rem;\n}\n.ui.big.label,\n.ui.big.labels .label {\n font-size: 1.28571429rem;\n}\n.ui.huge.label,\n.ui.huge.labels .label {\n font-size: 1.42857143rem;\n}\n.ui.massive.label,\n.ui.massive.labels .label {\n font-size: 1.71428571rem;\n}\n/*!\n * # Semantic UI 2.2.12 - Dropdown\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n.ui.dropdown {\n cursor: pointer;\n position: relative;\n display: inline-block;\n outline: 0;\n text-align: left;\n -webkit-transition: box-shadow .1s ease,width .1s ease;\n transition: box-shadow .1s ease,width .1s ease;\n -webkit-tap-highlight-color: transparent;\n}\n.ui.dropdown .menu {\n cursor: auto;\n position: absolute;\n display: none;\n outline: 0;\n top: 100%;\n min-width: -webkit-max-content;\n min-width: -moz-max-content;\n min-width: max-content;\n margin: 0;\n padding: 0 0;\n background: #fff;\n font-size: 1em;\n text-shadow: none;\n text-align: left;\n box-shadow: 0 2px 3px 0 rgba(34,36,38,.15);\n border: 1px solid rgba(34,36,38,.15);\n border-radius: .28571429rem;\n -webkit-transition: opacity .1s ease;\n transition: opacity .1s ease;\n z-index: 11;\n will-change: transform,opacity;\n}\n.ui.dropdown .menu>* {\n white-space: nowrap;\n}\n.ui.dropdown>input:not(.search):first-child,\n.ui.dropdown>select {\n display: none!important;\n}\n.ui.dropdown>.dropdown.icon {\n position: relative;\n width: auto;\n font-size: .85714286em;\n margin: 0 0 0 1em;\n}\n.ui.dropdown .menu>.item .dropdown.icon {\n width: auto;\n float: right;\n margin: 0 0 0 1em;\n}\n.ui.dropdown .menu>.item .dropdown.icon+.text {\n margin-right: 1em;\n}\n.ui.dropdown>.text {\n display: inline-block;\n -webkit-transition: none;\n transition: none;\n}\n.ui.dropdown .menu>.item {\n position: relative;\n cursor: pointer;\n display: block;\n border: none;\n height: auto;\n text-align: left;\n border-top: none;\n line-height: 1em;\n color: rgba(0,0,0,.87);\n padding: .78571429rem 1.14285714rem!important;\n font-size: 1rem;\n text-transform: none;\n font-weight: 400;\n box-shadow: none;\n -webkit-touch-callout: none;\n}\n.ui.dropdown .menu>.item:first-child {\n border-top-width: 0;\n}\n.ui.dropdown .menu .item>[class*="right floated"],\n.ui.dropdown>.text>[class*="right floated"] {\n float: right!important;\n margin-right: 0!important;\n margin-left: 1em!important;\n}\n.ui.dropdown .menu .item>[class*="left floated"],\n.ui.dropdown>.text>[class*="left floated"] {\n float: left!important;\n margin-left: 0!important;\n margin-right: 1em!important;\n}\n.ui.dropdown .menu .item>.flag.floated,\n.ui.dropdown .menu .item>.icon.floated,\n.ui.dropdown .menu .item>.image.floated,\n.ui.dropdown .menu .item>img.floated {\n margin-top: 0;\n}\n.ui.dropdown .menu>.header {\n margin: 1rem 0 .75rem;\n padding: 0 1.14285714rem;\n color: rgba(0,0,0,.85);\n font-size: .78571429em;\n font-weight: 700;\n text-transform: uppercase;\n}\n.ui.dropdown .menu>.divider {\n border-top: 1px solid rgba(34,36,38,.1);\n height: 0;\n margin: .5em 0;\n}\n.ui.dropdown .menu>.input {\n width: auto;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n margin: 1.14285714rem .78571429rem;\n min-width: 10rem;\n}\n.ui.dropdown .menu>.header+.input {\n margin-top: 0;\n}\n.ui.dropdown .menu>.input:not(.transparent) input {\n padding: .5em 1em;\n}\n.ui.dropdown .menu>.input:not(.transparent) .button,\n.ui.dropdown .menu>.input:not(.transparent) .icon,\n.ui.dropdown .menu>.input:not(.transparent) .label {\n padding-top: .5em;\n padding-bottom: .5em;\n}\n.ui.dropdown .menu>.item>.description,\n.ui.dropdown>.text>.description {\n float: right;\n margin: 0 0 0 1em;\n color: rgba(0,0,0,.4);\n}\n.ui.dropdown .menu>.message {\n padding: .78571429rem 1.14285714rem;\n font-weight: 400;\n}\n.ui.dropdown .menu>.message:not(.ui) {\n color: rgba(0,0,0,.4);\n}\n.ui.dropdown .menu .menu {\n top: 0!important;\n left: 100%;\n right: auto;\n margin: 0 0 0 -.5em!important;\n border-radius: .28571429rem!important;\n z-index: 21!important;\n}\n.ui.dropdown .menu .menu:after {\n display: none;\n}\n.ui.dropdown>.text>.flag,\n.ui.dropdown>.text>.icon,\n.ui.dropdown>.text>.image,\n.ui.dropdown>.text>.label,\n.ui.dropdown>.text>img {\n margin-top: 0;\n}\n.ui.dropdown .menu>.item>.flag,\n.ui.dropdown .menu>.item>.icon,\n.ui.dropdown .menu>.item>.image,\n.ui.dropdown .menu>.item>.label,\n.ui.dropdown .menu>.item>img {\n margin-top: 0;\n}\n.ui.dropdown .menu>.item>.flag,\n.ui.dropdown .menu>.item>.icon,\n.ui.dropdown .menu>.item>.image,\n.ui.dropdown .menu>.item>.label,\n.ui.dropdown .menu>.item>img,\n.ui.dropdown>.text>.flag,\n.ui.dropdown>.text>.icon,\n.ui.dropdown>.text>.image,\n.ui.dropdown>.text>.label,\n.ui.dropdown>.text>img {\n margin-left: 0;\n float: none;\n margin-right: .78571429rem;\n}\n.ui.dropdown .menu>.item>.image,\n.ui.dropdown .menu>.item>img,\n.ui.dropdown>.text>.image,\n.ui.dropdown>.text>img {\n display: inline-block;\n vertical-align: top;\n width: auto;\n margin-top: -.5em;\n margin-bottom: -.5em;\n max-height: 2em;\n}\n.ui.dropdown .ui.menu>.item:before,\n.ui.menu .ui.dropdown .menu>.item:before {\n display: none;\n}\n.ui.menu .ui.dropdown .menu .active.item {\n border-left: none;\n}\n.ui.buttons>.ui.dropdown:last-child .menu,\n.ui.menu .right.dropdown.item .menu,\n.ui.menu .right.menu .dropdown:last-child .menu {\n left: auto;\n right: 0;\n}\n.ui.label.dropdown .menu {\n min-width: 100%;\n}\n.ui.dropdown.icon.button>.dropdown.icon {\n margin: 0;\n}\n.ui.button.dropdown .menu {\n min-width: 100%;\n}\n.ui.selection.dropdown {\n cursor: pointer;\n word-wrap: break-word;\n line-height: 1em;\n white-space: normal;\n outline: 0;\n -webkit-transform: rotateZ(0);\n transform: rotateZ(0);\n min-width: 14em;\n min-height: 2.71428571em;\n background: #fff;\n display: inline-block;\n padding: .78571429em 2.1em .78571429em 1em;\n color: rgba(0,0,0,.87);\n box-shadow: none;\n border: 1px solid rgba(34,36,38,.15);\n border-radius: .28571429rem;\n -webkit-transition: box-shadow .1s ease,width .1s ease;\n transition: box-shadow .1s ease,width .1s ease;\n}\n.ui.selection.dropdown.active,\n.ui.selection.dropdown.visible {\n z-index: 10;\n}\nselect.ui.dropdown {\n height: 38px;\n padding: .5em;\n border: 1px solid rgba(34,36,38,.15);\n visibility: visible;\n}\n.ui.selection.dropdown>.delete.icon,\n.ui.selection.dropdown>.dropdown.icon,\n.ui.selection.dropdown>.search.icon {\n cursor: pointer;\n position: absolute;\n width: auto;\n height: auto;\n line-height: 1.21428571em;\n top: .78571429em;\n right: 1em;\n z-index: 3;\n margin: -.78571429em;\n padding: .91666667em;\n opacity: .8;\n -webkit-transition: opacity .1s ease;\n transition: opacity .1s ease;\n}\n.ui.compact.selection.dropdown {\n min-width: 0;\n}\n.ui.selection.dropdown .menu {\n overflow-x: hidden;\n overflow-y: auto;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-overflow-scrolling: touch;\n border-top-width: 0!important;\n width: auto;\n outline: 0;\n margin: 0 -1px;\n min-width: calc(100% + 2px);\n width: calc(100% + 2px);\n border-radius: 0 0 .28571429rem .28571429rem;\n box-shadow: 0 2px 3px 0 rgba(34,36,38,.15);\n -webkit-transition: opacity .1s ease;\n transition: opacity .1s ease;\n}\n.ui.selection.dropdown .menu:after,\n.ui.selection.dropdown .menu:before {\n display: none;\n}\n.ui.selection.dropdown .menu>.message {\n padding: .78571429rem 1.14285714rem;\n}\n@media only screen and (max-width:767px) {\n .ui.selection.dropdown .menu {\n max-height: 8.01428571rem;\n }\n}\n@media only screen and (min-width:768px) {\n .ui.selection.dropdown .menu {\n max-height: 10.68571429rem;\n }\n}\n@media only screen and (min-width:992px) {\n .ui.selection.dropdown .menu {\n max-height: 16.02857143rem;\n }\n}\n@media only screen and (min-width:1920px) {\n .ui.selection.dropdown .menu {\n max-height: 21.37142857rem;\n }\n}\n.ui.selection.dropdown .menu>.item {\n border-top: 1px solid #fafafa;\n padding: .78571429rem 1.14285714rem!important;\n white-space: normal;\n word-wrap: normal;\n}\n.ui.selection.dropdown .menu>.hidden.addition.item {\n display: none;\n}\n.ui.selection.dropdown:hover {\n border-color: rgba(34,36,38,.35);\n box-shadow: none;\n}\n.ui.selection.active.dropdown {\n border-color: #96c8da;\n box-shadow: 0 2px 3px 0 rgba(34,36,38,.15);\n}\n.ui.selection.active.dropdown .menu {\n border-color: #96c8da;\n box-shadow: 0 2px 3px 0 rgba(34,36,38,.15);\n}\n.ui.selection.dropdown:focus {\n border-color: #96c8da;\n box-shadow: none;\n}\n.ui.selection.dropdown:focus .menu {\n border-color: #96c8da;\n box-shadow: 0 2px 3px 0 rgba(34,36,38,.15);\n}\n.ui.selection.visible.dropdown>.text:not(.default) {\n font-weight: 400;\n color: rgba(0,0,0,.8);\n}\n.ui.selection.active.dropdown:hover {\n border-color: #96c8da;\n box-shadow: 0 2px 3px 0 rgba(34,36,38,.15);\n}\n.ui.selection.active.dropdown:hover .menu {\n border-color: #96c8da;\n box-shadow: 0 2px 3px 0 rgba(34,36,38,.15);\n}\n.ui.active.selection.dropdown>.dropdown.icon,\n.ui.visible.selection.dropdown>.dropdown.icon {\n opacity: 1;\n z-index: 3;\n}\n.ui.active.selection.dropdown {\n border-bottom-left-radius: 0!important;\n border-bottom-right-radius: 0!important;\n}\n.ui.active.empty.selection.dropdown {\n border-radius: .28571429rem!important;\n box-shadow: none!important;\n}\n.ui.active.empty.selection.dropdown .menu {\n border: none!important;\n box-shadow: none!important;\n}\n.ui.search.dropdown {\n min-width: \'\';\n}\n.ui.search.dropdown>input.search {\n background: none transparent!important;\n border: none!important;\n box-shadow: none!important;\n cursor: text;\n top: 0;\n left: 1px;\n width: 100%;\n outline: 0;\n -webkit-tap-highlight-color: rgba(255,255,255,0);\n padding: inherit;\n}\n.ui.search.dropdown>input.search {\n position: absolute;\n z-index: 2;\n}\n.ui.search.dropdown>.text {\n cursor: text;\n position: relative;\n left: 1px;\n z-index: 3;\n}\n.ui.search.selection.dropdown>input.search {\n line-height: 1.21428571em;\n padding: .67857143em 2.1em .67857143em 1em;\n}\n.ui.search.selection.dropdown>span.sizer {\n line-height: 1.21428571em;\n padding: .67857143em 2.1em .67857143em 1em;\n display: none;\n white-space: pre;\n}\n.ui.search.dropdown.active>input.search,\n.ui.search.dropdown.visible>input.search {\n cursor: auto;\n}\n.ui.search.dropdown.active>.text,\n.ui.search.dropdown.visible>.text {\n pointer-events: none;\n}\n.ui.active.search.dropdown input.search:focus+.text .flag,\n.ui.active.search.dropdown input.search:focus+.text .icon {\n opacity: .45;\n}\n.ui.active.search.dropdown input.search:focus+.text {\n color: rgba(115,115,115,.87)!important;\n}\n.ui.search.dropdown .menu {\n overflow-x: hidden;\n overflow-y: auto;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-overflow-scrolling: touch;\n}\n@media only screen and (max-width:767px) {\n .ui.search.dropdown .menu {\n max-height: 8.01428571rem;\n }\n}\n@media only screen and (min-width:768px) {\n .ui.search.dropdown .menu {\n max-height: 10.68571429rem;\n }\n}\n@media only screen and (min-width:992px) {\n .ui.search.dropdown .menu {\n max-height: 16.02857143rem;\n }\n}\n@media only screen and (min-width:1920px) {\n .ui.search.dropdown .menu {\n max-height: 21.37142857rem;\n }\n}\n.ui.multiple.dropdown {\n padding: .22619048em 2.1em .22619048em .35714286em;\n}\n.ui.multiple.dropdown .menu {\n cursor: auto;\n}\n.ui.multiple.search.dropdown,\n.ui.multiple.search.dropdown>input.search {\n cursor: text;\n}\n.ui.multiple.dropdown>.label {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n display: inline-block;\n vertical-align: top;\n white-space: normal;\n font-size: 1em;\n padding: .35714286em .78571429em;\n margin: .14285714rem .28571429rem .14285714rem 0;\n box-shadow: 0 0 0 1px rgba(34,36,38,.15) inset;\n}\n.ui.multiple.dropdown .dropdown.icon {\n margin: \'\';\n padding: \'\';\n}\n.ui.multiple.dropdown>.text {\n position: static;\n padding: 0;\n max-width: 100%;\n margin: .45238095em 0 .45238095em .64285714em;\n line-height: 1.21428571em;\n}\n.ui.multiple.dropdown>.label~input.search {\n margin-left: .14285714em!important;\n}\n.ui.multiple.dropdown>.label~.text {\n display: none;\n}\n.ui.multiple.search.dropdown>.text {\n display: inline-block;\n position: absolute;\n top: 0;\n left: 0;\n padding: inherit;\n margin: .45238095em 0 .45238095em .64285714em;\n line-height: 1.21428571em;\n}\n.ui.multiple.search.dropdown>.label~.text {\n display: none;\n}\n.ui.multiple.search.dropdown>input.search {\n position: static;\n padding: 0;\n max-width: 100%;\n margin: .45238095em 0 .45238095em .64285714em;\n width: 2.2em;\n line-height: 1.21428571em;\n}\n.ui.inline.dropdown {\n cursor: pointer;\n display: inline-block;\n color: inherit;\n}\n.ui.inline.dropdown .dropdown.icon {\n margin: 0 .5em 0 .21428571em;\n vertical-align: baseline;\n}\n.ui.inline.dropdown>.text {\n font-weight: 700;\n}\n.ui.inline.dropdown .menu {\n cursor: auto;\n margin-top: .21428571em;\n border-radius: .28571429rem;\n}\n.ui.dropdown .menu .active.item {\n background: 0 0;\n font-weight: 700;\n color: rgba(0,0,0,.95);\n box-shadow: none;\n z-index: 12;\n}\n.ui.dropdown .menu>.item:hover {\n background: rgba(0,0,0,.05);\n color: rgba(0,0,0,.95);\n z-index: 13;\n}\n.ui.loading.dropdown>i.icon {\n height: 1em!important;\n}\n.ui.loading.selection.dropdown>i.icon {\n padding: 1.5em 1.28571429em!important;\n}\n.ui.loading.dropdown>i.icon:before {\n position: absolute;\n content: \'\';\n top: 50%;\n left: 50%;\n margin: -.64285714em 0 0 -.64285714em;\n width: 1.28571429em;\n height: 1.28571429em;\n border-radius: 500rem;\n border: .2em solid rgba(0,0,0,.1);\n}\n.ui.loading.dropdown>i.icon:after {\n position: absolute;\n content: \'\';\n top: 50%;\n left: 50%;\n box-shadow: 0 0 0 1px transparent;\n margin: -.64285714em 0 0 -.64285714em;\n width: 1.28571429em;\n height: 1.28571429em;\n -webkit-animation: dropdown-spin .6s linear;\n animation: dropdown-spin .6s linear;\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n border-radius: 500rem;\n border-color: #767676 transparent transparent;\n border-style: solid;\n border-width: .2em;\n}\n.ui.loading.dropdown.button>i.icon:after,\n.ui.loading.dropdown.button>i.icon:before {\n display: none;\n}\n@-webkit-keyframes dropdown-spin {\n from {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n }\n\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes dropdown-spin {\n from {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n }\n\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.ui.default.dropdown:not(.button)>.text,\n.ui.dropdown:not(.button)>.default.text {\n color: rgba(191,191,191,.87);\n}\n.ui.default.dropdown:not(.button)>input:focus~.text,\n.ui.dropdown:not(.button)>input:focus~.default.text {\n color: rgba(115,115,115,.87);\n}\n.ui.loading.dropdown>.text {\n -webkit-transition: none;\n transition: none;\n}\n.ui.dropdown .loading.menu {\n display: block;\n visibility: hidden;\n z-index: -1;\n}\n.ui.dropdown>.loading.menu {\n left: 0!important;\n right: auto!important;\n}\n.ui.dropdown>.menu .loading.menu {\n left: 100%!important;\n right: auto!important;\n}\n.ui.dropdown .menu .selected.item,\n.ui.dropdown.selected {\n background: rgba(0,0,0,.03);\n color: rgba(0,0,0,.95);\n}\n.ui.dropdown>.filtered.text {\n visibility: hidden;\n}\n.ui.dropdown .filtered.item {\n display: none!important;\n}\n.ui.dropdown.error,\n.ui.dropdown.error>.default.text,\n.ui.dropdown.error>.text {\n color: #9f3a38;\n}\n.ui.selection.dropdown.error {\n background: #fff6f6;\n border-color: #e0b4b4;\n}\n.ui.selection.dropdown.error:hover {\n border-color: #e0b4b4;\n}\n.ui.dropdown.error>.menu,\n.ui.dropdown.error>.menu .menu {\n border-color: #e0b4b4;\n}\n.ui.dropdown.error>.menu>.item {\n color: #9f3a38;\n}\n.ui.multiple.selection.error.dropdown>.label {\n border-color: #e0b4b4;\n}\n.ui.dropdown.error>.menu>.item:hover {\n background-color: #fff2f2;\n}\n.ui.dropdown.error>.menu .active.item {\n background-color: #fdcfcf;\n}\n.ui.disabled.dropdown,\n.ui.dropdown .menu>.disabled.item {\n cursor: default;\n pointer-events: none;\n opacity: .45;\n}\n.ui.dropdown .menu {\n left: 0;\n}\n.ui.dropdown .menu .right.menu,\n.ui.dropdown .right.menu>.menu {\n left: 100%!important;\n right: auto!important;\n border-radius: .28571429rem!important;\n}\n.ui.dropdown>.left.menu {\n left: auto!important;\n right: 0!important;\n}\n.ui.dropdown .menu .left.menu,\n.ui.dropdown>.left.menu .menu {\n left: auto;\n right: 100%;\n margin: 0 -.5em 0 0!important;\n border-radius: .28571429rem!important;\n}\n.ui.dropdown .item .left.dropdown.icon,\n.ui.dropdown .left.menu .item .dropdown.icon {\n width: auto;\n float: left;\n margin: 0;\n}\n.ui.dropdown .item .left.dropdown.icon,\n.ui.dropdown .left.menu .item .dropdown.icon {\n width: auto;\n float: left;\n margin: 0;\n}\n.ui.dropdown .item .left.dropdown.icon+.text,\n.ui.dropdown .left.menu .item .dropdown.icon+.text {\n margin-left: 1em;\n margin-right: 0;\n}\n.ui.upward.dropdown>.menu {\n top: auto;\n bottom: 100%;\n box-shadow: 0 0 3px 0 rgba(0,0,0,.08);\n border-radius: .28571429rem .28571429rem 0 0;\n}\n.ui.dropdown .upward.menu {\n top: auto!important;\n bottom: 0!important;\n}\n.ui.simple.upward.active.dropdown,\n.ui.simple.upward.dropdown:hover {\n border-radius: .28571429rem .28571429rem 0 0!important;\n}\n.ui.upward.dropdown.button:not(.pointing):not(.floating).active {\n border-radius: .28571429rem .28571429rem 0 0;\n}\n.ui.upward.selection.dropdown .menu {\n border-top-width: 1px!important;\n border-bottom-width: 0!important;\n box-shadow: 0 -2px 3px 0 rgba(0,0,0,.08);\n}\n.ui.upward.selection.dropdown:hover {\n box-shadow: 0 0 2px 0 rgba(0,0,0,.05);\n}\n.ui.active.upward.selection.dropdown {\n border-radius: 0 0 .28571429rem .28571429rem!important;\n}\n.ui.upward.selection.dropdown.visible {\n box-shadow: 0 0 3px 0 rgba(0,0,0,.08);\n border-radius: 0 0 .28571429rem .28571429rem!important;\n}\n.ui.upward.active.selection.dropdown:hover {\n box-shadow: 0 0 3px 0 rgba(0,0,0,.05);\n}\n.ui.upward.active.selection.dropdown:hover .menu {\n box-shadow: 0 -2px 3px 0 rgba(0,0,0,.08);\n}\n.ui.dropdown .scrolling.menu,\n.ui.scrolling.dropdown .menu {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.ui.scrolling.dropdown .menu {\n overflow-x: hidden;\n overflow-y: auto;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-overflow-scrolling: touch;\n min-width: 100%!important;\n width: auto!important;\n}\n.ui.dropdown .scrolling.menu {\n position: static;\n overflow-y: auto;\n border: none;\n box-shadow: none!important;\n border-radius: 0!important;\n margin: 0!important;\n min-width: 100%!important;\n width: auto!important;\n border-top: 1px solid rgba(34,36,38,.15);\n}\n.ui.dropdown .scrolling.menu>.item.item.item,\n.ui.scrolling.dropdown .menu .item.item.item {\n border-top: none;\n}\n.ui.dropdown .scrolling.menu .item:first-child,\n.ui.scrolling.dropdown .menu .item:first-child {\n border-top: none;\n}\n.ui.dropdown>.animating.menu .scrolling.menu,\n.ui.dropdown>.visible.menu .scrolling.menu {\n display: block;\n}\n@media all and (-ms-high-contrast:none) {\n .ui.dropdown .scrolling.menu,\n .ui.scrolling.dropdown .menu {\n min-width: calc(100% - 17px);\n }\n}\n@media only screen and (max-width:767px) {\n .ui.dropdown .scrolling.menu,\n .ui.scrolling.dropdown .menu {\n max-height: 10.28571429rem;\n }\n}\n@media only screen and (min-width:768px) {\n .ui.dropdown .scrolling.menu,\n .ui.scrolling.dropdown .menu {\n max-height: 15.42857143rem;\n }\n}\n@media only screen and (min-width:992px) {\n .ui.dropdown .scrolling.menu,\n .ui.scrolling.dropdown .menu {\n max-height: 20.57142857rem;\n }\n}\n@media only screen and (min-width:1920px) {\n .ui.dropdown .scrolling.menu,\n .ui.scrolling.dropdown .menu {\n max-height: 20.57142857rem;\n }\n}\n.ui.simple.dropdown .menu:after,\n.ui.simple.dropdown .menu:before {\n display: none;\n}\n.ui.simple.dropdown .menu {\n position: absolute;\n display: block;\n overflow: hidden;\n top: -9999px!important;\n opacity: 0;\n width: 0;\n height: 0;\n -webkit-transition: opacity .1s ease;\n transition: opacity .1s ease;\n}\n.ui.simple.active.dropdown,\n.ui.simple.dropdown:hover {\n border-bottom-left-radius: 0!important;\n border-bottom-right-radius: 0!important;\n}\n.ui.simple.active.dropdown>.menu,\n.ui.simple.dropdown:hover>.menu {\n overflow: visible;\n width: auto;\n height: auto;\n top: 100%!important;\n opacity: 1;\n}\n.ui.simple.dropdown:hover>.menu>.item:hover>.menu,\n.ui.simple.dropdown>.menu>.item:active>.menu {\n overflow: visible;\n width: auto;\n height: auto;\n top: 0!important;\n left: 100%!important;\n opacity: 1;\n}\n.ui.simple.disabled.dropdown:hover .menu {\n display: none;\n height: 0;\n width: 0;\n overflow: hidden;\n}\n.ui.simple.visible.dropdown>.menu {\n display: block;\n}\n.ui.fluid.dropdown {\n display: block;\n width: 100%;\n min-width: 0;\n}\n.ui.fluid.dropdown>.dropdown.icon {\n float: right;\n}\n.ui.floating.dropdown .menu {\n left: 0;\n right: auto;\n box-shadow: 0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)!important;\n border-radius: .28571429rem!important;\n}\n.ui.floating.dropdown>.menu {\n margin-top: .5em!important;\n border-radius: .28571429rem!important;\n}\n.ui.pointing.dropdown>.menu {\n top: 100%;\n margin-top: .78571429rem;\n border-radius: .28571429rem;\n}\n.ui.pointing.dropdown>.menu:after {\n display: block;\n position: absolute;\n pointer-events: none;\n content: \'\';\n visibility: visible;\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n width: .5em;\n height: .5em;\n box-shadow: -1px -1px 0 0 rgba(34,36,38,.15);\n background: #fff;\n z-index: 2;\n}\n.ui.pointing.dropdown>.menu:after {\n top: -.25em;\n left: 50%;\n margin: 0 0 0 -.25em;\n}\n.ui.top.left.pointing.dropdown>.menu {\n top: 100%;\n bottom: auto;\n left: 0;\n right: auto;\n margin: 1em 0 0;\n}\n.ui.top.left.pointing.dropdown>.menu {\n top: 100%;\n bottom: auto;\n left: 0;\n right: auto;\n margin: 1em 0 0;\n}\n.ui.top.left.pointing.dropdown>.menu:after {\n top: -.25em;\n left: 1em;\n right: auto;\n margin: 0;\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n}\n.ui.top.right.pointing.dropdown>.menu {\n top: 100%;\n bottom: auto;\n right: 0;\n left: auto;\n margin: 1em 0 0;\n}\n.ui.top.pointing.dropdown>.left.menu:after,\n.ui.top.right.pointing.dropdown>.menu:after {\n top: -.25em;\n left: auto!important;\n right: 1em!important;\n margin: 0;\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n}\n.ui.left.pointing.dropdown>.menu {\n top: 0;\n left: 100%;\n right: auto;\n margin: 0 0 0 1em;\n}\n.ui.left.pointing.dropdown>.menu:after {\n top: 1em;\n left: -.25em;\n margin: 0;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n}\n.ui.left:not(.top):not(.bottom).pointing.dropdown>.left.menu {\n left: auto!important;\n right: 100%!important;\n margin: 0 1em 0 0;\n}\n.ui.left:not(.top):not(.bottom).pointing.dropdown>.left.menu:after {\n top: 1em;\n left: auto;\n right: -.25em;\n margin: 0;\n -webkit-transform: rotate(135deg);\n transform: rotate(135deg);\n}\n.ui.right.pointing.dropdown>.menu {\n top: 0;\n left: auto;\n right: 100%;\n margin: 0 1em 0 0;\n}\n.ui.right.pointing.dropdown>.menu:after {\n top: 1em;\n left: auto;\n right: -.25em;\n margin: 0;\n -webkit-transform: rotate(135deg);\n transform: rotate(135deg);\n}\n.ui.bottom.pointing.dropdown>.menu {\n top: auto;\n bottom: 100%;\n left: 0;\n right: auto;\n margin: 0 0 1em;\n}\n.ui.bottom.pointing.dropdown>.menu:after {\n top: auto;\n bottom: -.25em;\n right: auto;\n margin: 0;\n -webkit-transform: rotate(-135deg);\n transform: rotate(-135deg);\n}\n.ui.bottom.pointing.dropdown>.menu .menu {\n top: auto!important;\n bottom: 0!important;\n}\n.ui.bottom.left.pointing.dropdown>.menu {\n left: 0;\n right: auto;\n}\n.ui.bottom.left.pointing.dropdown>.menu:after {\n left: 1em;\n right: auto;\n}\n.ui.bottom.right.pointing.dropdown>.menu {\n right: 0;\n left: auto;\n}\n.ui.bottom.right.pointing.dropdown>.menu:after {\n left: auto;\n right: 1em;\n}\n.ui.pointing.upward.dropdown .menu,\n.ui.top.pointing.upward.dropdown .menu {\n top: auto!important;\n bottom: 100%!important;\n margin: 0 0 .78571429rem;\n border-radius: .28571429rem;\n}\n.ui.pointing.upward.dropdown .menu:after,\n.ui.top.pointing.upward.dropdown .menu:after {\n top: 100%!important;\n bottom: auto!important;\n box-shadow: 1px 1px 0 0 rgba(34,36,38,.15);\n margin: -.25em 0 0;\n}\n.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu {\n top: auto!important;\n bottom: 0!important;\n margin: 0 1em 0 0;\n}\n.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after {\n top: auto!important;\n bottom: 0!important;\n margin: 0 0 1em 0;\n box-shadow: -1px -1px 0 0 rgba(34,36,38,.15);\n}\n.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu {\n top: auto!important;\n bottom: 0!important;\n margin: 0 0 0 1em;\n}\n.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after {\n top: auto!important;\n bottom: 0!important;\n margin: 0 0 1em 0;\n box-shadow: -1px -1px 0 0 rgba(34,36,38,.15);\n}\n@font-face {\n font-family: Dropdown;\n src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfuIIAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zjo82LgAAAFwAAABVGhlYWQAQ88bAAACxAAAADZoaGVhAwcB6QAAAvwAAAAkaG10eAS4ABIAAAMgAAAAIGxvY2EBNgDeAAADQAAAABJtYXhwAAoAFgAAA1QAAAAgbmFtZVcZpu4AAAN0AAABRXBvc3QAAwAAAAAEvAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDX//3//wAB/+MPLQADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAIABJQElABMAABM0NzY3BTYXFhUUDwEGJwYvASY1AAUGBwEACAUGBoAFCAcGgAUBEgcGBQEBAQcECQYHfwYBAQZ/BwYAAQAAAG4BJQESABMAADc0PwE2MzIfARYVFAcGIyEiJyY1AAWABgcIBYAGBgUI/wAHBgWABwaABQWABgcHBgUFBgcAAAABABIASQC3AW4AEwAANzQ/ATYXNhcWHQEUBwYnBi8BJjUSBoAFCAcFBgYFBwgFgAbbBwZ/BwEBBwQJ/wgEBwEBB38GBgAAAAABAAAASQClAW4AEwAANxE0NzYzMh8BFhUUDwEGIyInJjUABQYHCAWABgaABQgHBgVbAQAIBQYGgAUIBwWABgYFBwAAAAEAAAABAADZuaKOXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAAAAACgAUAB4AQgBkAIgAqgAAAAEAAAAIABQAAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAOAAAAAQAAAAAAAgAOAEcAAQAAAAAAAwAOACQAAQAAAAAABAAOAFUAAQAAAAAABQAWAA4AAQAAAAAABgAHADIAAQAAAAAACgA0AGMAAwABBAkAAQAOAAAAAwABBAkAAgAOAEcAAwABBAkAAwAOACQAAwABBAkABAAOAFUAAwABBAkABQAWAA4AAwABBAkABgAOADkAAwABBAkACgA0AGMAaQBjAG8AbQBvAG8AbgBWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AbgBSAGUAZwB1AGwAYQByAGkAYwBvAG0AbwBvAG4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) format(\'truetype\'),url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAAVwAAoAAAAABSgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAdkAAAHZLDXE/09TLzIAAALQAAAAYAAAAGAIIweQY21hcAAAAzAAAABMAAAATA9+4ghnYXNwAAADfAAAAAgAAAAIAAAAEGhlYWQAAAOEAAAANgAAADYAQ88baGhlYQAAA7wAAAAkAAAAJAMHAelobXR4AAAD4AAAACAAAAAgBLgAEm1heHAAAAQAAAAABgAAAAYACFAAbmFtZQAABAgAAAFFAAABRVcZpu5wb3N0AAAFUAAAACAAAAAgAAMAAAEABAQAAQEBCGljb21vb24AAQIAAQA6+BwC+BsD+BgEHgoAGVP/i4seCgAZU/+LiwwHi2v4lPh0BR0AAACIDx0AAACNER0AAAAJHQAAAdASAAkBAQgPERMWGyAlKmljb21vb25pY29tb29udTB1MXUyMHVGMEQ3dUYwRDh1RjBEOXVGMERBAAACAYkABgAIAgABAAQABwAKAA0AVgCfAOgBL/yUDvyUDvyUDvuUDvtvi/emFYuQjZCOjo+Pj42Qiwj3lIsFkIuQiY6Hj4iNhouGi4aJh4eHCPsU+xQFiIiGiYaLhouHjYeOCPsU9xQFiI+Jj4uQCA77b4v3FBWLkI2Pjo8I9xT3FAWPjo+NkIuQi5CJjogI9xT7FAWPh42Hi4aLhomHh4eIiIaJhosI+5SLBYaLh42HjoiPiY+LkAgO+92d928Vi5CNkI+OCPcU9xQFjo+QjZCLkIuPiY6Hj4iNhouGCIv7lAWLhomHh4iIh4eJhouGi4aNiI8I+xT3FAWHjomPi5AIDvvdi+YVi/eUBYuQjZCOjo+Pj42Qi5CLkImOhwj3FPsUBY+IjYaLhouGiYeHiAj7FPsUBYiHhomGi4aLh42Hj4iOiY+LkAgO+JQU+JQViwwKAAAAAAMCAAGQAAUAAAFMAWYAAABHAUwBZgAAAPUAGQCEAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA8NoB4P/g/+AB4AAgAAAAAQAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAA4AAAACgAIAAIAAgABACDw2v/9//8AAAAAACDw1//9//8AAf/jDy0AAwABAAAAAAAAAAAAAAABAAH//wAPAAEAAAABAAA5emozXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAUAAACAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoANABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoANABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format(\'woff\');\n font-weight: 400;\n font-style: normal;\n}\n.ui.dropdown>.dropdown.icon {\n font-family: Dropdown;\n line-height: 1;\n height: 1em;\n width: 1.23em;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n font-weight: 400;\n font-style: normal;\n text-align: center;\n}\n.ui.dropdown>.dropdown.icon {\n width: auto;\n}\n.ui.dropdown>.dropdown.icon:before {\n content: \'\\f0d7\';\n}\n.ui.dropdown .menu .item .dropdown.icon:before {\n content: \'\\f0da\';\n}\n.ui.dropdown .item .left.dropdown.icon:before,\n.ui.dropdown .left.menu .item .dropdown.icon:before {\n content: "\\f0d9";\n}\n.ui.vertical.menu .dropdown.item>.dropdown.icon:before {\n content: "\\f0da";\n}\n/*!\n * # Semantic UI 2.2.12 - Transition\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n.transition {\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n -webkit-animation-duration: .3s;\n animation-duration: .3s;\n -webkit-animation-timing-function: ease;\n animation-timing-function: ease;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n}\n.animating.transition {\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n visibility: visible!important;\n}\n.loading.transition {\n position: absolute;\n top: -99999px;\n left: -99999px;\n}\n.hidden.transition {\n display: none;\n visibility: hidden;\n}\n.visible.transition {\n display: block!important;\n visibility: visible!important;\n}\n.disabled.transition {\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.looping.transition {\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n}\n.transition.browse {\n -webkit-animation-duration: .5s;\n animation-duration: .5s;\n}\n.transition.browse.in {\n -webkit-animation-name: browseIn;\n animation-name: browseIn;\n}\n.transition.browse.left.out,\n.transition.browse.out {\n -webkit-animation-name: browseOutLeft;\n animation-name: browseOutLeft;\n}\n.transition.browse.right.out {\n -webkit-animation-name: browseOutRight;\n animation-name: browseOutRight;\n}\n@-webkit-keyframes browseIn {\n 0% {\n -webkit-transform: scale(.8) translateZ(0);\n transform: scale(.8) translateZ(0);\n z-index: -1;\n }\n\n 10% {\n -webkit-transform: scale(.8) translateZ(0);\n transform: scale(.8) translateZ(0);\n z-index: -1;\n opacity: .7;\n }\n\n 80% {\n -webkit-transform: scale(1.05) translateZ(0);\n transform: scale(1.05) translateZ(0);\n opacity: 1;\n z-index: 999;\n }\n\n 100% {\n -webkit-transform: scale(1) translateZ(0);\n transform: scale(1) translateZ(0);\n z-index: 999;\n }\n}\n@keyframes browseIn {\n 0% {\n -webkit-transform: scale(.8) translateZ(0);\n transform: scale(.8) translateZ(0);\n z-index: -1;\n }\n\n 10% {\n -webkit-transform: scale(.8) translateZ(0);\n transform: scale(.8) translateZ(0);\n z-index: -1;\n opacity: .7;\n }\n\n 80% {\n -webkit-transform: scale(1.05) translateZ(0);\n transform: scale(1.05) translateZ(0);\n opacity: 1;\n z-index: 999;\n }\n\n 100% {\n -webkit-transform: scale(1) translateZ(0);\n transform: scale(1) translateZ(0);\n z-index: 999;\n }\n}\n@-webkit-keyframes browseOutLeft {\n 0% {\n z-index: 999;\n -webkit-transform: translateX(0) rotateY(0) rotateX(0);\n transform: translateX(0) rotateY(0) rotateX(0);\n }\n\n 50% {\n z-index: -1;\n -webkit-transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);\n transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);\n }\n\n 80% {\n opacity: 1;\n }\n\n 100% {\n z-index: -1;\n -webkit-transform: translateX(0) rotateY(0) rotateX(0) translateZ(-10px);\n transform: translateX(0) rotateY(0) rotateX(0) translateZ(-10px);\n opacity: 0;\n }\n}\n@keyframes browseOutLeft {\n 0% {\n z-index: 999;\n -webkit-transform: translateX(0) rotateY(0) rotateX(0);\n transform: translateX(0) rotateY(0) rotateX(0);\n }\n\n 50% {\n z-index: -1;\n -webkit-transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);\n transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);\n }\n\n 80% {\n opacity: 1;\n }\n\n 100% {\n z-index: -1;\n -webkit-transform: translateX(0) rotateY(0) rotateX(0) translateZ(-10px);\n transform: translateX(0) rotateY(0) rotateX(0) translateZ(-10px);\n opacity: 0;\n }\n}\n@-webkit-keyframes browseOutRight {\n 0% {\n z-index: 999;\n -webkit-transform: translateX(0) rotateY(0) rotateX(0);\n transform: translateX(0) rotateY(0) rotateX(0);\n }\n\n 50% {\n z-index: 1;\n -webkit-transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);\n transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);\n }\n\n 80% {\n opacity: 1;\n }\n\n 100% {\n z-index: 1;\n -webkit-transform: translateX(0) rotateY(0) rotateX(0) translateZ(-10px);\n transform: translateX(0) rotateY(0) rotateX(0) translateZ(-10px);\n opacity: 0;\n }\n}\n@keyframes browseOutRight {\n 0% {\n z-index: 999;\n -webkit-transform: translateX(0) rotateY(0) rotateX(0);\n transform: translateX(0) rotateY(0) rotateX(0);\n }\n\n 50% {\n z-index: 1;\n -webkit-transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);\n transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);\n }\n\n 80% {\n opacity: 1;\n }\n\n 100% {\n z-index: 1;\n -webkit-transform: translateX(0) rotateY(0) rotateX(0) translateZ(-10px);\n transform: translateX(0) rotateY(0) rotateX(0) translateZ(-10px);\n opacity: 0;\n }\n}\n.drop.transition {\n -webkit-transform-origin: top center;\n transform-origin: top center;\n -webkit-animation-duration: .4s;\n animation-duration: .4s;\n -webkit-animation-timing-function: cubic-bezier(.34,1.61,.7,1);\n animation-timing-function: cubic-bezier(.34,1.61,.7,1);\n}\n.drop.transition.in {\n -webkit-animation-name: dropIn;\n animation-name: dropIn;\n}\n.drop.transition.out {\n -webkit-animation-name: dropOut;\n animation-name: dropOut;\n}\n@-webkit-keyframes dropIn {\n 0% {\n opacity: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n}\n@keyframes dropIn {\n 0% {\n opacity: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n}\n@-webkit-keyframes dropOut {\n 0% {\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n}\n@keyframes dropOut {\n 0% {\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n}\n.transition.fade.in {\n -webkit-animation-name: fadeIn;\n animation-name: fadeIn;\n}\n.transition[class*="fade up"].in {\n -webkit-animation-name: fadeInUp;\n animation-name: fadeInUp;\n}\n.transition[class*="fade down"].in {\n -webkit-animation-name: fadeInDown;\n animation-name: fadeInDown;\n}\n.transition[class*="fade left"].in {\n -webkit-animation-name: fadeInLeft;\n animation-name: fadeInLeft;\n}\n.transition[class*="fade right"].in {\n -webkit-animation-name: fadeInRight;\n animation-name: fadeInRight;\n}\n.transition.fade.out {\n -webkit-animation-name: fadeOut;\n animation-name: fadeOut;\n}\n.transition[class*="fade up"].out {\n -webkit-animation-name: fadeOutUp;\n animation-name: fadeOutUp;\n}\n.transition[class*="fade down"].out {\n -webkit-animation-name: fadeOutDown;\n animation-name: fadeOutDown;\n}\n.transition[class*="fade left"].out {\n -webkit-animation-name: fadeOutLeft;\n animation-name: fadeOutLeft;\n}\n.transition[class*="fade right"].out {\n -webkit-animation-name: fadeOutRight;\n animation-name: fadeOutRight;\n}\n@-webkit-keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n@-webkit-keyframes fadeInUp {\n 0% {\n opacity: 0;\n -webkit-transform: translateY(10%);\n transform: translateY(10%);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n}\n@keyframes fadeInUp {\n 0% {\n opacity: 0;\n -webkit-transform: translateY(10%);\n transform: translateY(10%);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n}\n@-webkit-keyframes fadeInDown {\n 0% {\n opacity: 0;\n -webkit-transform: translateY(-10%);\n transform: translateY(-10%);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n}\n@keyframes fadeInDown {\n 0% {\n opacity: 0;\n -webkit-transform: translateY(-10%);\n transform: translateY(-10%);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n}\n@-webkit-keyframes fadeInLeft {\n 0% {\n opacity: 0;\n -webkit-transform: translateX(10%);\n transform: translateX(10%);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n}\n@keyframes fadeInLeft {\n 0% {\n opacity: 0;\n -webkit-transform: translateX(10%);\n transform: translateX(10%);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n}\n@-webkit-keyframes fadeInRight {\n 0% {\n opacity: 0;\n -webkit-transform: translateX(-10%);\n transform: translateX(-10%);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n}\n@keyframes fadeInRight {\n 0% {\n opacity: 0;\n -webkit-transform: translateX(-10%);\n transform: translateX(-10%);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n}\n@-webkit-keyframes fadeOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n@keyframes fadeOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n@-webkit-keyframes fadeOutUp {\n 0% {\n opacity: 1;\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translateY(5%);\n transform: translateY(5%);\n }\n}\n@keyframes fadeOutUp {\n 0% {\n opacity: 1;\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translateY(5%);\n transform: translateY(5%);\n }\n}\n@-webkit-keyframes fadeOutDown {\n 0% {\n opacity: 1;\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translateY(-5%);\n transform: translateY(-5%);\n }\n}\n@keyframes fadeOutDown {\n 0% {\n opacity: 1;\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translateY(-5%);\n transform: translateY(-5%);\n }\n}\n@-webkit-keyframes fadeOutLeft {\n 0% {\n opacity: 1;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translateX(5%);\n transform: translateX(5%);\n }\n}\n@keyframes fadeOutLeft {\n 0% {\n opacity: 1;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translateX(5%);\n transform: translateX(5%);\n }\n}\n@-webkit-keyframes fadeOutRight {\n 0% {\n opacity: 1;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translateX(-5%);\n transform: translateX(-5%);\n }\n}\n@keyframes fadeOutRight {\n 0% {\n opacity: 1;\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translateX(-5%);\n transform: translateX(-5%);\n }\n}\n.flip.transition.in,\n.flip.transition.out {\n -webkit-animation-duration: .6s;\n animation-duration: .6s;\n}\n.horizontal.flip.transition.in {\n -webkit-animation-name: horizontalFlipIn;\n animation-name: horizontalFlipIn;\n}\n.horizontal.flip.transition.out {\n -webkit-animation-name: horizontalFlipOut;\n animation-name: horizontalFlipOut;\n}\n.vertical.flip.transition.in {\n -webkit-animation-name: verticalFlipIn;\n animation-name: verticalFlipIn;\n}\n.vertical.flip.transition.out {\n -webkit-animation-name: verticalFlipOut;\n animation-name: verticalFlipOut;\n}\n@-webkit-keyframes horizontalFlipIn {\n 0% {\n -webkit-transform: perspective(2000px) rotateY(-90deg);\n transform: perspective(2000px) rotateY(-90deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform: perspective(2000px) rotateY(0);\n transform: perspective(2000px) rotateY(0);\n opacity: 1;\n }\n}\n@keyframes horizontalFlipIn {\n 0% {\n -webkit-transform: perspective(2000px) rotateY(-90deg);\n transform: perspective(2000px) rotateY(-90deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform: perspective(2000px) rotateY(0);\n transform: perspective(2000px) rotateY(0);\n opacity: 1;\n }\n}\n@-webkit-keyframes verticalFlipIn {\n 0% {\n -webkit-transform: perspective(2000px) rotateX(-90deg);\n transform: perspective(2000px) rotateX(-90deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform: perspective(2000px) rotateX(0);\n transform: perspective(2000px) rotateX(0);\n opacity: 1;\n }\n}\n@keyframes verticalFlipIn {\n 0% {\n -webkit-transform: perspective(2000px) rotateX(-90deg);\n transform: perspective(2000px) rotateX(-90deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform: perspective(2000px) rotateX(0);\n transform: perspective(2000px) rotateX(0);\n opacity: 1;\n }\n}\n@-webkit-keyframes horizontalFlipOut {\n 0% {\n -webkit-transform: perspective(2000px) rotateY(0);\n transform: perspective(2000px) rotateY(0);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: perspective(2000px) rotateY(90deg);\n transform: perspective(2000px) rotateY(90deg);\n opacity: 0;\n }\n}\n@keyframes horizontalFlipOut {\n 0% {\n -webkit-transform: perspective(2000px) rotateY(0);\n transform: perspective(2000px) rotateY(0);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: perspective(2000px) rotateY(90deg);\n transform: perspective(2000px) rotateY(90deg);\n opacity: 0;\n }\n}\n@-webkit-keyframes verticalFlipOut {\n 0% {\n -webkit-transform: perspective(2000px) rotateX(0);\n transform: perspective(2000px) rotateX(0);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: perspective(2000px) rotateX(-90deg);\n transform: perspective(2000px) rotateX(-90deg);\n opacity: 0;\n }\n}\n@keyframes verticalFlipOut {\n 0% {\n -webkit-transform: perspective(2000px) rotateX(0);\n transform: perspective(2000px) rotateX(0);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: perspective(2000px) rotateX(-90deg);\n transform: perspective(2000px) rotateX(-90deg);\n opacity: 0;\n }\n}\n.scale.transition.in {\n -webkit-animation-name: scaleIn;\n animation-name: scaleIn;\n}\n.scale.transition.out {\n -webkit-animation-name: scaleOut;\n animation-name: scaleOut;\n}\n@-webkit-keyframes scaleIn {\n 0% {\n opacity: 0;\n -webkit-transform: scale(.8);\n transform: scale(.8);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n}\n@keyframes scaleIn {\n 0% {\n opacity: 0;\n -webkit-transform: scale(.8);\n transform: scale(.8);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n}\n@-webkit-keyframes scaleOut {\n 0% {\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale(.9);\n transform: scale(.9);\n }\n}\n@keyframes scaleOut {\n 0% {\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale(.9);\n transform: scale(.9);\n }\n}\n.transition.fly {\n -webkit-animation-duration: .6s;\n animation-duration: .6s;\n -webkit-transition-timing-function: cubic-bezier(.215,.61,.355,1);\n transition-timing-function: cubic-bezier(.215,.61,.355,1);\n}\n.transition.fly.in {\n -webkit-animation-name: flyIn;\n animation-name: flyIn;\n}\n.transition[class*="fly up"].in {\n -webkit-animation-name: flyInUp;\n animation-name: flyInUp;\n}\n.transition[class*="fly down"].in {\n -webkit-animation-name: flyInDown;\n animation-name: flyInDown;\n}\n.transition[class*="fly left"].in {\n -webkit-animation-name: flyInLeft;\n animation-name: flyInLeft;\n}\n.transition[class*="fly right"].in {\n -webkit-animation-name: flyInRight;\n animation-name: flyInRight;\n}\n.transition.fly.out {\n -webkit-animation-name: flyOut;\n animation-name: flyOut;\n}\n.transition[class*="fly up"].out {\n -webkit-animation-name: flyOutUp;\n animation-name: flyOutUp;\n}\n.transition[class*="fly down"].out {\n -webkit-animation-name: flyOutDown;\n animation-name: flyOutDown;\n}\n.transition[class*="fly left"].out {\n -webkit-animation-name: flyOutLeft;\n animation-name: flyOutLeft;\n}\n.transition[class*="fly right"].out {\n -webkit-animation-name: flyOutRight;\n animation-name: flyOutRight;\n}\n@-webkit-keyframes flyIn {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.3,.3,.3);\n transform: scale3d(.3,.3,.3);\n }\n\n 20% {\n -webkit-transform: scale3d(1.1,1.1,1.1);\n transform: scale3d(1.1,1.1,1.1);\n }\n\n 40% {\n -webkit-transform: scale3d(.9,.9,.9);\n transform: scale3d(.9,.9,.9);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(1.03,1.03,1.03);\n transform: scale3d(1.03,1.03,1.03);\n }\n\n 80% {\n -webkit-transform: scale3d(.97,.97,.97);\n transform: scale3d(.97,.97,.97);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: scale3d(1,1,1);\n transform: scale3d(1,1,1);\n }\n}\n@keyframes flyIn {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.3,.3,.3);\n transform: scale3d(.3,.3,.3);\n }\n\n 20% {\n -webkit-transform: scale3d(1.1,1.1,1.1);\n transform: scale3d(1.1,1.1,1.1);\n }\n\n 40% {\n -webkit-transform: scale3d(.9,.9,.9);\n transform: scale3d(.9,.9,.9);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(1.03,1.03,1.03);\n transform: scale3d(1.03,1.03,1.03);\n }\n\n 80% {\n -webkit-transform: scale3d(.97,.97,.97);\n transform: scale3d(.97,.97,.97);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: scale3d(1,1,1);\n transform: scale3d(1,1,1);\n }\n}\n@-webkit-keyframes flyInUp {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0,1500px,0);\n transform: translate3d(0,1500px,0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0,-20px,0);\n transform: translate3d(0,-20px,0);\n }\n\n 75% {\n -webkit-transform: translate3d(0,10px,0);\n transform: translate3d(0,10px,0);\n }\n\n 90% {\n -webkit-transform: translate3d(0,-5px,0);\n transform: translate3d(0,-5px,0);\n }\n\n 100% {\n -webkit-transform: translate3d(0,0,0);\n transform: translate3d(0,0,0);\n }\n}\n@keyframes flyInUp {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0,1500px,0);\n transform: translate3d(0,1500px,0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0,-20px,0);\n transform: translate3d(0,-20px,0);\n }\n\n 75% {\n -webkit-transform: translate3d(0,10px,0);\n transform: translate3d(0,10px,0);\n }\n\n 90% {\n -webkit-transform: translate3d(0,-5px,0);\n transform: translate3d(0,-5px,0);\n }\n\n 100% {\n -webkit-transform: translate3d(0,0,0);\n transform: translate3d(0,0,0);\n }\n}\n@-webkit-keyframes flyInDown {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0,-1500px,0);\n transform: translate3d(0,-1500px,0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0,25px,0);\n transform: translate3d(0,25px,0);\n }\n\n 75% {\n -webkit-transform: translate3d(0,-10px,0);\n transform: translate3d(0,-10px,0);\n }\n\n 90% {\n -webkit-transform: translate3d(0,5px,0);\n transform: translate3d(0,5px,0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n@keyframes flyInDown {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0,-1500px,0);\n transform: translate3d(0,-1500px,0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0,25px,0);\n transform: translate3d(0,25px,0);\n }\n\n 75% {\n -webkit-transform: translate3d(0,-10px,0);\n transform: translate3d(0,-10px,0);\n }\n\n 90% {\n -webkit-transform: translate3d(0,5px,0);\n transform: translate3d(0,5px,0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n@-webkit-keyframes flyInLeft {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(1500px,0,0);\n transform: translate3d(1500px,0,0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(-25px,0,0);\n transform: translate3d(-25px,0,0);\n }\n\n 75% {\n -webkit-transform: translate3d(10px,0,0);\n transform: translate3d(10px,0,0);\n }\n\n 90% {\n -webkit-transform: translate3d(-5px,0,0);\n transform: translate3d(-5px,0,0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n@keyframes flyInLeft {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(1500px,0,0);\n transform: translate3d(1500px,0,0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(-25px,0,0);\n transform: translate3d(-25px,0,0);\n }\n\n 75% {\n -webkit-transform: translate3d(10px,0,0);\n transform: translate3d(10px,0,0);\n }\n\n 90% {\n -webkit-transform: translate3d(-5px,0,0);\n transform: translate3d(-5px,0,0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n@-webkit-keyframes flyInRight {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-1500px,0,0);\n transform: translate3d(-1500px,0,0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(25px,0,0);\n transform: translate3d(25px,0,0);\n }\n\n 75% {\n -webkit-transform: translate3d(-10px,0,0);\n transform: translate3d(-10px,0,0);\n }\n\n 90% {\n -webkit-transform: translate3d(5px,0,0);\n transform: translate3d(5px,0,0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n@keyframes flyInRight {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-1500px,0,0);\n transform: translate3d(-1500px,0,0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(25px,0,0);\n transform: translate3d(25px,0,0);\n }\n\n 75% {\n -webkit-transform: translate3d(-10px,0,0);\n transform: translate3d(-10px,0,0);\n }\n\n 90% {\n -webkit-transform: translate3d(5px,0,0);\n transform: translate3d(5px,0,0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n@-webkit-keyframes flyOut {\n 20% {\n -webkit-transform: scale3d(.9,.9,.9);\n transform: scale3d(.9,.9,.9);\n }\n\n 50%, 55% {\n opacity: 1;\n -webkit-transform: scale3d(1.1,1.1,1.1);\n transform: scale3d(1.1,1.1,1.1);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(.3,.3,.3);\n transform: scale3d(.3,.3,.3);\n }\n}\n@keyframes flyOut {\n 20% {\n -webkit-transform: scale3d(.9,.9,.9);\n transform: scale3d(.9,.9,.9);\n }\n\n 50%, 55% {\n opacity: 1;\n -webkit-transform: scale3d(1.1,1.1,1.1);\n transform: scale3d(1.1,1.1,1.1);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(.3,.3,.3);\n transform: scale3d(.3,.3,.3);\n }\n}\n@-webkit-keyframes flyOutUp {\n 20% {\n -webkit-transform: translate3d(0,10px,0);\n transform: translate3d(0,10px,0);\n }\n\n 40%, 45% {\n opacity: 1;\n -webkit-transform: translate3d(0,-20px,0);\n transform: translate3d(0,-20px,0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0,2000px,0);\n transform: translate3d(0,2000px,0);\n }\n}\n@keyframes flyOutUp {\n 20% {\n -webkit-transform: translate3d(0,10px,0);\n transform: translate3d(0,10px,0);\n }\n\n 40%, 45% {\n opacity: 1;\n -webkit-transform: translate3d(0,-20px,0);\n transform: translate3d(0,-20px,0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0,2000px,0);\n transform: translate3d(0,2000px,0);\n }\n}\n@-webkit-keyframes flyOutDown {\n 20% {\n -webkit-transform: translate3d(0,-10px,0);\n transform: translate3d(0,-10px,0);\n }\n\n 40%, 45% {\n opacity: 1;\n -webkit-transform: translate3d(0,20px,0);\n transform: translate3d(0,20px,0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0,-2000px,0);\n transform: translate3d(0,-2000px,0);\n }\n}\n@keyframes flyOutDown {\n 20% {\n -webkit-transform: translate3d(0,-10px,0);\n transform: translate3d(0,-10px,0);\n }\n\n 40%, 45% {\n opacity: 1;\n -webkit-transform: translate3d(0,20px,0);\n transform: translate3d(0,20px,0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0,-2000px,0);\n transform: translate3d(0,-2000px,0);\n }\n}\n@-webkit-keyframes flyOutRight {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(20px,0,0);\n transform: translate3d(20px,0,0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(-2000px,0,0);\n transform: translate3d(-2000px,0,0);\n }\n}\n@keyframes flyOutRight {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(20px,0,0);\n transform: translate3d(20px,0,0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(-2000px,0,0);\n transform: translate3d(-2000px,0,0);\n }\n}\n@-webkit-keyframes flyOutLeft {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(-20px,0,0);\n transform: translate3d(-20px,0,0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(2000px,0,0);\n transform: translate3d(2000px,0,0);\n }\n}\n@keyframes flyOutLeft {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(-20px,0,0);\n transform: translate3d(-20px,0,0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(2000px,0,0);\n transform: translate3d(2000px,0,0);\n }\n}\n.transition.slide.in,\n.transition[class*="slide down"].in {\n -webkit-animation-name: slideInY;\n animation-name: slideInY;\n -webkit-transform-origin: top center;\n transform-origin: top center;\n}\n.transition[class*="slide up"].in {\n -webkit-animation-name: slideInY;\n animation-name: slideInY;\n -webkit-transform-origin: bottom center;\n transform-origin: bottom center;\n}\n.transition[class*="slide left"].in {\n -webkit-animation-name: slideInX;\n animation-name: slideInX;\n -webkit-transform-origin: center right;\n transform-origin: center right;\n}\n.transition[class*="slide right"].in {\n -webkit-animation-name: slideInX;\n animation-name: slideInX;\n -webkit-transform-origin: center left;\n transform-origin: center left;\n}\n.transition.slide.out,\n.transition[class*="slide down"].out {\n -webkit-animation-name: slideOutY;\n animation-name: slideOutY;\n -webkit-transform-origin: top center;\n transform-origin: top center;\n}\n.transition[class*="slide up"].out {\n -webkit-animation-name: slideOutY;\n animation-name: slideOutY;\n -webkit-transform-origin: bottom center;\n transform-origin: bottom center;\n}\n.transition[class*="slide left"].out {\n -webkit-animation-name: slideOutX;\n animation-name: slideOutX;\n -webkit-transform-origin: center right;\n transform-origin: center right;\n}\n.transition[class*="slide right"].out {\n -webkit-animation-name: slideOutX;\n animation-name: slideOutX;\n -webkit-transform-origin: center left;\n transform-origin: center left;\n}\n@-webkit-keyframes slideInY {\n 0% {\n opacity: 0;\n -webkit-transform: scaleY(0);\n transform: scaleY(0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: scaleY(1);\n transform: scaleY(1);\n }\n}\n@keyframes slideInY {\n 0% {\n opacity: 0;\n -webkit-transform: scaleY(0);\n transform: scaleY(0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: scaleY(1);\n transform: scaleY(1);\n }\n}\n@-webkit-keyframes slideInX {\n 0% {\n opacity: 0;\n -webkit-transform: scaleX(0);\n transform: scaleX(0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: scaleX(1);\n transform: scaleX(1);\n }\n}\n@keyframes slideInX {\n 0% {\n opacity: 0;\n -webkit-transform: scaleX(0);\n transform: scaleX(0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: scaleX(1);\n transform: scaleX(1);\n }\n}\n@-webkit-keyframes slideOutY {\n 0% {\n opacity: 1;\n -webkit-transform: scaleY(1);\n transform: scaleY(1);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scaleY(0);\n transform: scaleY(0);\n }\n}\n@keyframes slideOutY {\n 0% {\n opacity: 1;\n -webkit-transform: scaleY(1);\n transform: scaleY(1);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scaleY(0);\n transform: scaleY(0);\n }\n}\n@-webkit-keyframes slideOutX {\n 0% {\n opacity: 1;\n -webkit-transform: scaleX(1);\n transform: scaleX(1);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scaleX(0);\n transform: scaleX(0);\n }\n}\n@keyframes slideOutX {\n 0% {\n opacity: 1;\n -webkit-transform: scaleX(1);\n transform: scaleX(1);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scaleX(0);\n transform: scaleX(0);\n }\n}\n.transition.swing {\n -webkit-animation-duration: .8s;\n animation-duration: .8s;\n}\n.transition[class*="swing down"].in {\n -webkit-animation-name: swingInX;\n animation-name: swingInX;\n -webkit-transform-origin: top center;\n transform-origin: top center;\n}\n.transition[class*="swing up"].in {\n -webkit-animation-name: swingInX;\n animation-name: swingInX;\n -webkit-transform-origin: bottom center;\n transform-origin: bottom center;\n}\n.transition[class*="swing left"].in {\n -webkit-animation-name: swingInY;\n animation-name: swingInY;\n -webkit-transform-origin: center right;\n transform-origin: center right;\n}\n.transition[class*="swing right"].in {\n -webkit-animation-name: swingInY;\n animation-name: swingInY;\n -webkit-transform-origin: center left;\n transform-origin: center left;\n}\n.transition.swing.out,\n.transition[class*="swing down"].out {\n -webkit-animation-name: swingOutX;\n animation-name: swingOutX;\n -webkit-transform-origin: top center;\n transform-origin: top center;\n}\n.transition[class*="swing up"].out {\n -webkit-animation-name: swingOutX;\n animation-name: swingOutX;\n -webkit-transform-origin: bottom center;\n transform-origin: bottom center;\n}\n.transition[class*="swing left"].out {\n -webkit-animation-name: swingOutY;\n animation-name: swingOutY;\n -webkit-transform-origin: center right;\n transform-origin: center right;\n}\n.transition[class*="swing right"].out {\n -webkit-animation-name: swingOutY;\n animation-name: swingOutY;\n -webkit-transform-origin: center left;\n transform-origin: center left;\n}\n@-webkit-keyframes swingInX {\n 0% {\n -webkit-transform: perspective(1000px) rotateX(90deg);\n transform: perspective(1000px) rotateX(90deg);\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(1000px) rotateX(-30deg);\n transform: perspective(1000px) rotateX(-30deg);\n opacity: 1;\n }\n\n 60% {\n -webkit-transform: perspective(1000px) rotateX(15deg);\n transform: perspective(1000px) rotateX(15deg);\n }\n\n 80% {\n -webkit-transform: perspective(1000px) rotateX(-7.5deg);\n transform: perspective(1000px) rotateX(-7.5deg);\n }\n\n 100% {\n -webkit-transform: perspective(1000px) rotateX(0);\n transform: perspective(1000px) rotateX(0);\n }\n}\n@keyframes swingInX {\n 0% {\n -webkit-transform: perspective(1000px) rotateX(90deg);\n transform: perspective(1000px) rotateX(90deg);\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(1000px) rotateX(-30deg);\n transform: perspective(1000px) rotateX(-30deg);\n opacity: 1;\n }\n\n 60% {\n -webkit-transform: perspective(1000px) rotateX(15deg);\n transform: perspective(1000px) rotateX(15deg);\n }\n\n 80% {\n -webkit-transform: perspective(1000px) rotateX(-7.5deg);\n transform: perspective(1000px) rotateX(-7.5deg);\n }\n\n 100% {\n -webkit-transform: perspective(1000px) rotateX(0);\n transform: perspective(1000px) rotateX(0);\n }\n}\n@-webkit-keyframes swingInY {\n 0% {\n -webkit-transform: perspective(1000px) rotateY(-90deg);\n transform: perspective(1000px) rotateY(-90deg);\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(1000px) rotateY(30deg);\n transform: perspective(1000px) rotateY(30deg);\n opacity: 1;\n }\n\n 60% {\n -webkit-transform: perspective(1000px) rotateY(-17.5deg);\n transform: perspective(1000px) rotateY(-17.5deg);\n }\n\n 80% {\n -webkit-transform: perspective(1000px) rotateY(7.5deg);\n transform: perspective(1000px) rotateY(7.5deg);\n }\n\n 100% {\n -webkit-transform: perspective(1000px) rotateY(0);\n transform: perspective(1000px) rotateY(0);\n }\n}\n@keyframes swingInY {\n 0% {\n -webkit-transform: perspective(1000px) rotateY(-90deg);\n transform: perspective(1000px) rotateY(-90deg);\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(1000px) rotateY(30deg);\n transform: perspective(1000px) rotateY(30deg);\n opacity: 1;\n }\n\n 60% {\n -webkit-transform: perspective(1000px) rotateY(-17.5deg);\n transform: perspective(1000px) rotateY(-17.5deg);\n }\n\n 80% {\n -webkit-transform: perspective(1000px) rotateY(7.5deg);\n transform: perspective(1000px) rotateY(7.5deg);\n }\n\n 100% {\n -webkit-transform: perspective(1000px) rotateY(0);\n transform: perspective(1000px) rotateY(0);\n }\n}\n@-webkit-keyframes swingOutX {\n 0% {\n -webkit-transform: perspective(1000px) rotateX(0);\n transform: perspective(1000px) rotateX(0);\n }\n\n 40% {\n -webkit-transform: perspective(1000px) rotateX(-7.5deg);\n transform: perspective(1000px) rotateX(-7.5deg);\n }\n\n 60% {\n -webkit-transform: perspective(1000px) rotateX(17.5deg);\n transform: perspective(1000px) rotateX(17.5deg);\n }\n\n 80% {\n -webkit-transform: perspective(1000px) rotateX(-30deg);\n transform: perspective(1000px) rotateX(-30deg);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: perspective(1000px) rotateX(90deg);\n transform: perspective(1000px) rotateX(90deg);\n opacity: 0;\n }\n}\n@keyframes swingOutX {\n 0% {\n -webkit-transform: perspective(1000px) rotateX(0);\n transform: perspective(1000px) rotateX(0);\n }\n\n 40% {\n -webkit-transform: perspective(1000px) rotateX(-7.5deg);\n transform: perspective(1000px) rotateX(-7.5deg);\n }\n\n 60% {\n -webkit-transform: perspective(1000px) rotateX(17.5deg);\n transform: perspective(1000px) rotateX(17.5deg);\n }\n\n 80% {\n -webkit-transform: perspective(1000px) rotateX(-30deg);\n transform: perspective(1000px) rotateX(-30deg);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: perspective(1000px) rotateX(90deg);\n transform: perspective(1000px) rotateX(90deg);\n opacity: 0;\n }\n}\n@-webkit-keyframes swingOutY {\n 0% {\n -webkit-transform: perspective(1000px) rotateY(0);\n transform: perspective(1000px) rotateY(0);\n }\n\n 40% {\n -webkit-transform: perspective(1000px) rotateY(7.5deg);\n transform: perspective(1000px) rotateY(7.5deg);\n }\n\n 60% {\n -webkit-transform: perspective(1000px) rotateY(-10deg);\n transform: perspective(1000px) rotateY(-10deg);\n }\n\n 80% {\n -webkit-transform: perspective(1000px) rotateY(30deg);\n transform: perspective(1000px) rotateY(30deg);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: perspective(1000px) rotateY(-90deg);\n transform: perspective(1000px) rotateY(-90deg);\n opacity: 0;\n }\n}\n@keyframes swingOutY {\n 0% {\n -webkit-transform: perspective(1000px) rotateY(0);\n transform: perspective(1000px) rotateY(0);\n }\n\n 40% {\n -webkit-transform: perspective(1000px) rotateY(7.5deg);\n transform: perspective(1000px) rotateY(7.5deg);\n }\n\n 60% {\n -webkit-transform: perspective(1000px) rotateY(-10deg);\n transform: perspective(1000px) rotateY(-10deg);\n }\n\n 80% {\n -webkit-transform: perspective(1000px) rotateY(30deg);\n transform: perspective(1000px) rotateY(30deg);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: perspective(1000px) rotateY(-90deg);\n transform: perspective(1000px) rotateY(-90deg);\n opacity: 0;\n }\n}\n.flash.transition {\n -webkit-animation-duration: 750ms;\n animation-duration: 750ms;\n -webkit-animation-name: flash;\n animation-name: flash;\n}\n.shake.transition {\n -webkit-animation-duration: 750ms;\n animation-duration: 750ms;\n -webkit-animation-name: shake;\n animation-name: shake;\n}\n.bounce.transition {\n -webkit-animation-duration: 750ms;\n animation-duration: 750ms;\n -webkit-animation-name: bounce;\n animation-name: bounce;\n}\n.tada.transition {\n -webkit-animation-duration: 750ms;\n animation-duration: 750ms;\n -webkit-animation-name: tada;\n animation-name: tada;\n}\n.pulse.transition {\n -webkit-animation-duration: .5s;\n animation-duration: .5s;\n -webkit-animation-name: pulse;\n animation-name: pulse;\n}\n.jiggle.transition {\n -webkit-animation-duration: 750ms;\n animation-duration: 750ms;\n -webkit-animation-name: jiggle;\n animation-name: jiggle;\n}\n@-webkit-keyframes flash {\n 0%, 100%, 50% {\n opacity: 1;\n }\n\n 25%, 75% {\n opacity: 0;\n }\n}\n@keyframes flash {\n 0%, 100%, 50% {\n opacity: 1;\n }\n\n 25%, 75% {\n opacity: 0;\n }\n}\n@-webkit-keyframes shake {\n 0%, 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 10%, 30%, 50%, 70%, 90% {\n -webkit-transform: translateX(-10px);\n transform: translateX(-10px);\n }\n\n 20%, 40%, 60%, 80% {\n -webkit-transform: translateX(10px);\n transform: translateX(10px);\n }\n}\n@keyframes shake {\n 0%, 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 10%, 30%, 50%, 70%, 90% {\n -webkit-transform: translateX(-10px);\n transform: translateX(-10px);\n }\n\n 20%, 40%, 60%, 80% {\n -webkit-transform: translateX(10px);\n transform: translateX(10px);\n }\n}\n@-webkit-keyframes bounce {\n 0%, 100%, 20%, 50%, 80% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n\n 40% {\n -webkit-transform: translateY(-30px);\n transform: translateY(-30px);\n }\n\n 60% {\n -webkit-transform: translateY(-15px);\n transform: translateY(-15px);\n }\n}\n@keyframes bounce {\n 0%, 100%, 20%, 50%, 80% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n\n 40% {\n -webkit-transform: translateY(-30px);\n transform: translateY(-30px);\n }\n\n 60% {\n -webkit-transform: translateY(-15px);\n transform: translateY(-15px);\n }\n}\n@-webkit-keyframes tada {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n\n 10%, 20% {\n -webkit-transform: scale(.9) rotate(-3deg);\n transform: scale(.9) rotate(-3deg);\n }\n\n 30%, 50%, 70%, 90% {\n -webkit-transform: scale(1.1) rotate(3deg);\n transform: scale(1.1) rotate(3deg);\n }\n\n 40%, 60%, 80% {\n -webkit-transform: scale(1.1) rotate(-3deg);\n transform: scale(1.1) rotate(-3deg);\n }\n\n 100% {\n -webkit-transform: scale(1) rotate(0);\n transform: scale(1) rotate(0);\n }\n}\n@keyframes tada {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n\n 10%, 20% {\n -webkit-transform: scale(.9) rotate(-3deg);\n transform: scale(.9) rotate(-3deg);\n }\n\n 30%, 50%, 70%, 90% {\n -webkit-transform: scale(1.1) rotate(3deg);\n transform: scale(1.1) rotate(3deg);\n }\n\n 40%, 60%, 80% {\n -webkit-transform: scale(1.1) rotate(-3deg);\n transform: scale(1.1) rotate(-3deg);\n }\n\n 100% {\n -webkit-transform: scale(1) rotate(0);\n transform: scale(1) rotate(0);\n }\n}\n@-webkit-keyframes pulse {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 50% {\n -webkit-transform: scale(.9);\n transform: scale(.9);\n opacity: .7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes pulse {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 50% {\n -webkit-transform: scale(.9);\n transform: scale(.9);\n opacity: .7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}\n@-webkit-keyframes jiggle {\n 0% {\n -webkit-transform: scale3d(1,1,1);\n transform: scale3d(1,1,1);\n }\n\n 30% {\n -webkit-transform: scale3d(1.25,.75,1);\n transform: scale3d(1.25,.75,1);\n }\n\n 40% {\n -webkit-transform: scale3d(.75,1.25,1);\n transform: scale3d(.75,1.25,1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.15,.85,1);\n transform: scale3d(1.15,.85,1);\n }\n\n 65% {\n -webkit-transform: scale3d(.95,1.05,1);\n transform: scale3d(.95,1.05,1);\n }\n\n 75% {\n -webkit-transform: scale3d(1.05,.95,1);\n transform: scale3d(1.05,.95,1);\n }\n\n 100% {\n -webkit-transform: scale3d(1,1,1);\n transform: scale3d(1,1,1);\n }\n}\n@keyframes jiggle {\n 0% {\n -webkit-transform: scale3d(1,1,1);\n transform: scale3d(1,1,1);\n }\n\n 30% {\n -webkit-transform: scale3d(1.25,.75,1);\n transform: scale3d(1.25,.75,1);\n }\n\n 40% {\n -webkit-transform: scale3d(.75,1.25,1);\n transform: scale3d(.75,1.25,1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.15,.85,1);\n transform: scale3d(1.15,.85,1);\n }\n\n 65% {\n -webkit-transform: scale3d(.95,1.05,1);\n transform: scale3d(.95,1.05,1);\n }\n\n 75% {\n -webkit-transform: scale3d(1.05,.95,1);\n transform: scale3d(1.05,.95,1);\n }\n\n 100% {\n -webkit-transform: scale3d(1,1,1);\n transform: scale3d(1,1,1);\n }\n}\n/*@import "../../node_modules/semantic-ui-modal/modal.min.css";*/\n/*@import "../../node_modules/semantic-ui-dimmer/dimmer.min.css";*/\n/*!\n * # Semantic UI 2.2.12 - Button\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n.ui.button {\n cursor: pointer;\n display: inline-block;\n min-height: 1em;\n outline: 0;\n border: none;\n vertical-align: baseline;\n background: #e0e1e2 none;\n color: rgba(0,0,0,.6);\n font-family: Lato,\'Helvetica Neue\',Arial,Helvetica,sans-serif;\n margin: 0 .25em 0 0;\n padding: .78571429em 1.5em .78571429em;\n text-transform: none;\n text-shadow: none;\n font-weight: 700;\n line-height: 1em;\n font-style: normal;\n text-align: center;\n text-decoration: none;\n border-radius: .28571429rem;\n box-shadow: 0 0 0 1px transparent inset,0 0 0 0 rgba(34,36,38,.15) inset;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-transition: opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;\n transition: opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;\n will-change: \'\';\n -webkit-tap-highlight-color: transparent;\n}\n.ui.button:hover {\n background-color: #cacbcd;\n background-image: none;\n box-shadow: 0 0 0 1px transparent inset,0 0 0 0 rgba(34,36,38,.15) inset;\n color: rgba(0,0,0,.8);\n}\n.ui.button:hover .icon {\n opacity: .85;\n}\n.ui.button:focus {\n background-color: #cacbcd;\n color: rgba(0,0,0,.8);\n background-image: \'\'!important;\n box-shadow: \'\'!important;\n}\n.ui.button:focus .icon {\n opacity: .85;\n}\n.ui.active.button:active,\n.ui.button:active {\n background-color: #babbbc;\n background-image: \'\';\n color: rgba(0,0,0,.9);\n box-shadow: 0 0 0 1px transparent inset,none;\n}\n.ui.active.button {\n background-color: #c0c1c2;\n background-image: none;\n box-shadow: 0 0 0 1px transparent inset;\n color: rgba(0,0,0,.95);\n}\n.ui.active.button:hover {\n background-color: #c0c1c2;\n background-image: none;\n color: rgba(0,0,0,.95);\n}\n.ui.active.button:active {\n background-color: #c0c1c2;\n background-image: none;\n}\n.ui.loading.loading.loading.loading.loading.loading.button {\n position: relative;\n cursor: default;\n text-shadow: none!important;\n color: transparent!important;\n opacity: 1;\n pointer-events: auto;\n -webkit-transition: all 0s linear,opacity .1s ease;\n transition: all 0s linear,opacity .1s ease;\n}\n.ui.loading.button:before {\n position: absolute;\n content: \'\';\n top: 50%;\n left: 50%;\n margin: -.64285714em 0 0 -.64285714em;\n width: 1.28571429em;\n height: 1.28571429em;\n border-radius: 500rem;\n border: .2em solid rgba(0,0,0,.15);\n}\n.ui.loading.button:after {\n position: absolute;\n content: \'\';\n top: 50%;\n left: 50%;\n margin: -.64285714em 0 0 -.64285714em;\n width: 1.28571429em;\n height: 1.28571429em;\n -webkit-animation: button-spin .6s linear;\n animation: button-spin .6s linear;\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n border-radius: 500rem;\n border-color: #fff transparent transparent;\n border-style: solid;\n border-width: .2em;\n box-shadow: 0 0 0 1px transparent;\n}\n.ui.labeled.icon.loading.button .icon {\n background-color: transparent;\n box-shadow: none;\n}\n@-webkit-keyframes button-spin {\n from {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n }\n\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes button-spin {\n from {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n }\n\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.ui.basic.loading.button:not(.inverted):before {\n border-color: rgba(0,0,0,.1);\n}\n.ui.basic.loading.button:not(.inverted):after {\n border-top-color: #767676;\n}\n.ui.button:disabled,\n.ui.buttons .disabled.button,\n.ui.disabled.active.button,\n.ui.disabled.button,\n.ui.disabled.button:hover {\n cursor: default;\n opacity: .45!important;\n background-image: none!important;\n box-shadow: none!important;\n pointer-events: none!important;\n}\n.ui.basic.buttons .ui.disabled.button {\n border-color: rgba(34,36,38,.5);\n}\n.ui.animated.button {\n position: relative;\n overflow: hidden;\n padding-right: 0!important;\n vertical-align: middle;\n z-index: 1;\n}\n.ui.animated.button .content {\n will-change: transform,opacity;\n}\n.ui.animated.button .visible.content {\n position: relative;\n margin-right: 1.5em;\n}\n.ui.animated.button .hidden.content {\n position: absolute;\n width: 100%;\n}\n.ui.animated.button .hidden.content,\n.ui.animated.button .visible.content {\n -webkit-transition: right .3s ease 0s;\n transition: right .3s ease 0s;\n}\n.ui.animated.button .visible.content {\n left: auto;\n right: 0;\n}\n.ui.animated.button .hidden.content {\n top: 50%;\n left: auto;\n right: -100%;\n margin-top: -.5em;\n}\n.ui.animated.button:focus .visible.content,\n.ui.animated.button:hover .visible.content {\n left: auto;\n right: 200%;\n}\n.ui.animated.button:focus .hidden.content,\n.ui.animated.button:hover .hidden.content {\n left: auto;\n right: 0;\n}\n.ui.vertical.animated.button .hidden.content,\n.ui.vertical.animated.button .visible.content {\n -webkit-transition: top .3s ease,-webkit-transform .3s ease;\n transition: top .3s ease,-webkit-transform .3s ease;\n transition: top .3s ease,transform .3s ease;\n transition: top .3s ease,transform .3s ease,-webkit-transform .3s ease;\n}\n.ui.vertical.animated.button .visible.content {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n right: auto;\n}\n.ui.vertical.animated.button .hidden.content {\n top: -50%;\n left: 0;\n right: auto;\n}\n.ui.vertical.animated.button:focus .visible.content,\n.ui.vertical.animated.button:hover .visible.content {\n -webkit-transform: translateY(200%);\n transform: translateY(200%);\n right: auto;\n}\n.ui.vertical.animated.button:focus .hidden.content,\n.ui.vertical.animated.button:hover .hidden.content {\n top: 50%;\n right: auto;\n}\n.ui.fade.animated.button .hidden.content,\n.ui.fade.animated.button .visible.content {\n -webkit-transition: opacity .3s ease,-webkit-transform .3s ease;\n transition: opacity .3s ease,-webkit-transform .3s ease;\n transition: opacity .3s ease,transform .3s ease;\n transition: opacity .3s ease,transform .3s ease,-webkit-transform .3s ease;\n}\n.ui.fade.animated.button .visible.content {\n left: auto;\n right: auto;\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1);\n}\n.ui.fade.animated.button .hidden.content {\n opacity: 0;\n left: 0;\n right: auto;\n -webkit-transform: scale(1.5);\n transform: scale(1.5);\n}\n.ui.fade.animated.button:focus .visible.content,\n.ui.fade.animated.button:hover .visible.content {\n left: auto;\n right: auto;\n opacity: 0;\n -webkit-transform: scale(.75);\n transform: scale(.75);\n}\n.ui.fade.animated.button:focus .hidden.content,\n.ui.fade.animated.button:hover .hidden.content {\n left: 0;\n right: auto;\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1);\n}\n.ui.inverted.button {\n box-shadow: 0 0 0 2px #fff inset!important;\n background: transparent none;\n color: #fff;\n text-shadow: none!important;\n}\n.ui.inverted.buttons .button {\n margin: 0 0 0 -2px;\n}\n.ui.inverted.buttons .button:first-child {\n margin-left: 0;\n}\n.ui.inverted.vertical.buttons .button {\n margin: 0 0 -2px 0;\n}\n.ui.inverted.vertical.buttons .button:first-child {\n margin-top: 0;\n}\n.ui.inverted.button:hover {\n background: #fff;\n box-shadow: 0 0 0 2px #fff inset!important;\n color: rgba(0,0,0,.8);\n}\n.ui.inverted.button.active,\n.ui.inverted.button:focus {\n background: #fff;\n box-shadow: 0 0 0 2px #fff inset!important;\n color: rgba(0,0,0,.8);\n}\n.ui.inverted.button.active:focus {\n background: #dcddde;\n box-shadow: 0 0 0 2px #dcddde inset!important;\n color: rgba(0,0,0,.8);\n}\n.ui.labeled.button:not(.icon) {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n background: 0 0!important;\n padding: 0!important;\n border: none!important;\n box-shadow: none!important;\n}\n.ui.labeled.button>.button {\n margin: 0;\n}\n.ui.labeled.button>.label {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n margin: 0 0 0 -1px!important;\n padding: \'\';\n font-size: 1em;\n border-color: rgba(34,36,38,.15);\n}\n.ui.labeled.button>.tag.label:before {\n width: 1.85em;\n height: 1.85em;\n}\n.ui.labeled.button:not([class*="left labeled"])>.button {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ui.labeled.button:not([class*="left labeled"])>.label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ui[class*="left labeled"].button>.button {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ui[class*="left labeled"].button>.label {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ui.facebook.button {\n background-color: #3b5998;\n color: #fff;\n text-shadow: none;\n background-image: none;\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.facebook.button:hover {\n background-color: #304d8a;\n color: #fff;\n text-shadow: none;\n}\n.ui.facebook.button:active {\n background-color: #2d4373;\n color: #fff;\n text-shadow: none;\n}\n.ui.twitter.button {\n background-color: #55acee;\n color: #fff;\n text-shadow: none;\n background-image: none;\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.twitter.button:hover {\n background-color: #35a2f4;\n color: #fff;\n text-shadow: none;\n}\n.ui.twitter.button:active {\n background-color: #2795e9;\n color: #fff;\n text-shadow: none;\n}\n.ui.google.plus.button {\n background-color: #dd4b39;\n color: #fff;\n text-shadow: none;\n background-image: none;\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.google.plus.button:hover {\n background-color: #e0321c;\n color: #fff;\n text-shadow: none;\n}\n.ui.google.plus.button:active {\n background-color: #c23321;\n color: #fff;\n text-shadow: none;\n}\n.ui.linkedin.button {\n background-color: #1f88be;\n color: #fff;\n text-shadow: none;\n}\n.ui.linkedin.button:hover {\n background-color: #147baf;\n color: #fff;\n text-shadow: none;\n}\n.ui.linkedin.button:active {\n background-color: #186992;\n color: #fff;\n text-shadow: none;\n}\n.ui.youtube.button {\n background-color: #cc181e;\n color: #fff;\n text-shadow: none;\n background-image: none;\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.youtube.button:hover {\n background-color: #bd0d13;\n color: #fff;\n text-shadow: none;\n}\n.ui.youtube.button:active {\n background-color: #9e1317;\n color: #fff;\n text-shadow: none;\n}\n.ui.instagram.button {\n background-color: #49769c;\n color: #fff;\n text-shadow: none;\n background-image: none;\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.instagram.button:hover {\n background-color: #3d698e;\n color: #fff;\n text-shadow: none;\n}\n.ui.instagram.button:active {\n background-color: #395c79;\n color: #fff;\n text-shadow: none;\n}\n.ui.pinterest.button {\n background-color: #bd081c;\n color: #fff;\n text-shadow: none;\n background-image: none;\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.pinterest.button:hover {\n background-color: #ac0013;\n color: #fff;\n text-shadow: none;\n}\n.ui.pinterest.button:active {\n background-color: #8c0615;\n color: #fff;\n text-shadow: none;\n}\n.ui.vk.button {\n background-color: #4d7198;\n color: #fff;\n background-image: none;\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.vk.button:hover {\n background-color: #41648a;\n color: #fff;\n}\n.ui.vk.button:active {\n background-color: #3c5876;\n color: #fff;\n}\n.ui.button>.icon:not(.button) {\n height: .85714286em;\n opacity: .8;\n margin: 0 .42857143em 0 -.21428571em;\n -webkit-transition: opacity .1s ease;\n transition: opacity .1s ease;\n vertical-align: \'\';\n color: \'\';\n}\n.ui.button:not(.icon)>.icon:not(.button):not(.dropdown) {\n margin: 0 .42857143em 0 -.21428571em;\n}\n.ui.button:not(.icon)>.right.icon:not(.button):not(.dropdown) {\n margin: 0 -.21428571em 0 .42857143em;\n}\n.ui[class*="left floated"].button,\n.ui[class*="left floated"].buttons {\n float: left;\n margin-left: 0;\n margin-right: .25em;\n}\n.ui[class*="right floated"].button,\n.ui[class*="right floated"].buttons {\n float: right;\n margin-right: 0;\n margin-left: .25em;\n}\n.ui.compact.button,\n.ui.compact.buttons .button {\n padding: .58928571em 1.125em .58928571em;\n}\n.ui.compact.icon.button,\n.ui.compact.icon.buttons .button {\n padding: .58928571em .58928571em .58928571em;\n}\n.ui.compact.labeled.icon.button,\n.ui.compact.labeled.icon.buttons .button {\n padding: .58928571em 3.69642857em .58928571em;\n}\n.ui.mini.button,\n.ui.mini.buttons .button,\n.ui.mini.buttons .or {\n font-size: .78571429rem;\n}\n.ui.tiny.button,\n.ui.tiny.buttons .button,\n.ui.tiny.buttons .or {\n font-size: .85714286rem;\n}\n.ui.small.button,\n.ui.small.buttons .button,\n.ui.small.buttons .or {\n font-size: .92857143rem;\n}\n.ui.button,\n.ui.buttons .button,\n.ui.buttons .or {\n font-size: 1rem;\n}\n.ui.large.button,\n.ui.large.buttons .button,\n.ui.large.buttons .or {\n font-size: 1.14285714rem;\n}\n.ui.big.button,\n.ui.big.buttons .button,\n.ui.big.buttons .or {\n font-size: 1.28571429rem;\n}\n.ui.huge.button,\n.ui.huge.buttons .button,\n.ui.huge.buttons .or {\n font-size: 1.42857143rem;\n}\n.ui.massive.button,\n.ui.massive.buttons .button,\n.ui.massive.buttons .or {\n font-size: 1.71428571rem;\n}\n.ui.icon.button,\n.ui.icon.buttons .button {\n padding: .78571429em .78571429em .78571429em;\n}\n.ui.icon.button>.icon,\n.ui.icon.buttons .button>.icon {\n opacity: .9;\n margin: 0!important;\n vertical-align: top;\n}\n.ui.basic.button,\n.ui.basic.buttons .button {\n background: transparent none!important;\n color: rgba(0,0,0,.6)!important;\n font-weight: 400;\n border-radius: .28571429rem;\n text-transform: none;\n text-shadow: none!important;\n box-shadow: 0 0 0 1px rgba(34,36,38,.15) inset;\n}\n.ui.basic.buttons {\n box-shadow: none;\n border: 1px solid rgba(34,36,38,.15);\n border-radius: .28571429rem;\n}\n.ui.basic.buttons .button {\n border-radius: 0;\n}\n.ui.basic.button:hover,\n.ui.basic.buttons .button:hover {\n background: #fff!important;\n color: rgba(0,0,0,.8)!important;\n box-shadow: 0 0 0 1px rgba(34,36,38,.35) inset,0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.basic.button:focus,\n.ui.basic.buttons .button:focus {\n background: #fff!important;\n color: rgba(0,0,0,.8)!important;\n box-shadow: 0 0 0 1px rgba(34,36,38,.35) inset,0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.basic.button:active,\n.ui.basic.buttons .button:active {\n background: #f8f8f8!important;\n color: rgba(0,0,0,.9)!important;\n box-shadow: 0 0 0 1px rgba(0,0,0,.15) inset,0 1px 4px 0 rgba(34,36,38,.15) inset;\n}\n.ui.basic.active.button,\n.ui.basic.buttons .active.button {\n background: rgba(0,0,0,.05)!important;\n box-shadow: \'\'!important;\n color: rgba(0,0,0,.95);\n}\n.ui.basic.active.button:hover,\n.ui.basic.buttons .active.button:hover {\n background-color: rgba(0,0,0,.05);\n}\n.ui.basic.buttons .button:hover {\n box-shadow: 0 0 0 1px rgba(34,36,38,.35) inset,0 0 0 0 rgba(34,36,38,.15) inset inset;\n}\n.ui.basic.buttons .button:active {\n box-shadow: 0 0 0 1px rgba(0,0,0,.15) inset,0 1px 4px 0 rgba(34,36,38,.15) inset inset;\n}\n.ui.basic.buttons .active.button {\n box-shadow: \'\'!important;\n}\n.ui.basic.inverted.button,\n.ui.basic.inverted.buttons .button {\n background-color: transparent!important;\n color: #f9fafb!important;\n box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n}\n.ui.basic.inverted.button:hover,\n.ui.basic.inverted.buttons .button:hover {\n color: #fff!important;\n box-shadow: 0 0 0 2px #fff inset!important;\n}\n.ui.basic.inverted.button:focus,\n.ui.basic.inverted.buttons .button:focus {\n color: #fff!important;\n box-shadow: 0 0 0 2px #fff inset!important;\n}\n.ui.basic.inverted.button:active,\n.ui.basic.inverted.buttons .button:active {\n background-color: rgba(255,255,255,.08)!important;\n color: #fff!important;\n box-shadow: 0 0 0 2px rgba(255,255,255,.9) inset!important;\n}\n.ui.basic.inverted.active.button,\n.ui.basic.inverted.buttons .active.button {\n background-color: rgba(255,255,255,.08);\n color: #fff;\n text-shadow: none;\n box-shadow: 0 0 0 2px rgba(255,255,255,.7) inset;\n}\n.ui.basic.inverted.active.button:hover,\n.ui.basic.inverted.buttons .active.button:hover {\n background-color: rgba(255,255,255,.15);\n box-shadow: 0 0 0 2px #fff inset!important;\n}\n.ui.basic.buttons .button {\n border-left: 1px solid rgba(34,36,38,.15);\n box-shadow: none;\n}\n.ui.basic.vertical.buttons .button {\n border-left: none;\n}\n.ui.basic.vertical.buttons .button {\n border-left-width: 0;\n border-top: 1px solid rgba(34,36,38,.15);\n}\n.ui.basic.vertical.buttons .button:first-child {\n border-top-width: 0;\n}\n.ui.labeled.icon.button,\n.ui.labeled.icon.buttons .button {\n position: relative;\n padding-left: 4.07142857em!important;\n padding-right: 1.5em!important;\n}\n.ui.labeled.icon.button>.icon,\n.ui.labeled.icon.buttons>.button>.icon {\n position: absolute;\n height: 100%;\n line-height: 1;\n border-radius: 0;\n border-top-left-radius: inherit;\n border-bottom-left-radius: inherit;\n text-align: center;\n margin: 0;\n width: 2.57142857em;\n background-color: rgba(0,0,0,.05);\n color: \'\';\n box-shadow: -1px 0 0 0 transparent inset;\n}\n.ui.labeled.icon.button>.icon,\n.ui.labeled.icon.buttons>.button>.icon {\n top: 0;\n left: 0;\n}\n.ui[class*="right labeled"].icon.button {\n padding-right: 4.07142857em!important;\n padding-left: 1.5em!important;\n}\n.ui[class*="right labeled"].icon.button>.icon {\n left: auto;\n right: 0;\n border-radius: 0;\n border-top-right-radius: inherit;\n border-bottom-right-radius: inherit;\n box-shadow: 1px 0 0 0 transparent inset;\n}\n.ui.labeled.icon.button>.icon:after,\n.ui.labeled.icon.button>.icon:before,\n.ui.labeled.icon.buttons>.button>.icon:after,\n.ui.labeled.icon.buttons>.button>.icon:before {\n display: block;\n position: absolute;\n width: 100%;\n top: 50%;\n text-align: center;\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n}\n.ui.labeled.icon.buttons .button>.icon {\n border-radius: 0;\n}\n.ui.labeled.icon.buttons .button:first-child>.icon {\n border-top-left-radius: .28571429rem;\n border-bottom-left-radius: .28571429rem;\n}\n.ui.labeled.icon.buttons .button:last-child>.icon {\n border-top-right-radius: .28571429rem;\n border-bottom-right-radius: .28571429rem;\n}\n.ui.vertical.labeled.icon.buttons .button:first-child>.icon {\n border-radius: 0;\n border-top-left-radius: .28571429rem;\n}\n.ui.vertical.labeled.icon.buttons .button:last-child>.icon {\n border-radius: 0;\n border-bottom-left-radius: .28571429rem;\n}\n.ui.fluid[class*="left labeled"].icon.button,\n.ui.fluid[class*="right labeled"].icon.button {\n padding-left: 1.5em!important;\n padding-right: 1.5em!important;\n}\n.ui.button.toggle.active,\n.ui.buttons .button.toggle.active,\n.ui.toggle.buttons .active.button {\n background-color: #21ba45!important;\n box-shadow: none!important;\n text-shadow: none;\n color: #fff!important;\n}\n.ui.button.toggle.active:hover {\n background-color: #16ab39!important;\n text-shadow: none;\n color: #fff!important;\n}\n.ui.circular.button {\n border-radius: 10em;\n}\n.ui.circular.button>.icon {\n width: 1em;\n vertical-align: baseline;\n}\n.ui.buttons .or {\n position: relative;\n width: .3em;\n height: 2.57142857em;\n z-index: 3;\n}\n.ui.buttons .or:before {\n position: absolute;\n text-align: center;\n border-radius: 500rem;\n content: \'or\';\n top: 50%;\n left: 50%;\n background-color: #fff;\n text-shadow: none;\n margin-top: -.89285714em;\n margin-left: -.89285714em;\n width: 1.78571429em;\n height: 1.78571429em;\n line-height: 1.78571429em;\n color: rgba(0,0,0,.4);\n font-style: normal;\n font-weight: 700;\n box-shadow: 0 0 0 1px transparent inset;\n}\n.ui.buttons .or[data-text]:before {\n content: attr(data-text);\n}\n.ui.fluid.buttons .or {\n width: 0!important;\n}\n.ui.fluid.buttons .or:after {\n display: none;\n}\n.ui.attached.button {\n position: relative;\n display: block;\n margin: 0;\n border-radius: 0;\n box-shadow: 0 0 0 1px rgba(34,36,38,.15)!important;\n}\n.ui.attached.top.button {\n border-radius: .28571429rem .28571429rem 0 0;\n}\n.ui.attached.bottom.button {\n border-radius: 0 0 .28571429rem .28571429rem;\n}\n.ui.left.attached.button {\n display: inline-block;\n border-left: none;\n text-align: right;\n padding-right: .75em;\n border-radius: .28571429rem 0 0 .28571429rem;\n}\n.ui.right.attached.button {\n display: inline-block;\n text-align: left;\n padding-left: .75em;\n border-radius: 0 .28571429rem .28571429rem 0;\n}\n.ui.attached.buttons {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n border-radius: 0;\n width: auto!important;\n z-index: 2;\n margin-left: -1px;\n margin-right: -1px;\n}\n.ui.attached.buttons .button {\n margin: 0;\n}\n.ui.attached.buttons .button:first-child {\n border-radius: 0;\n}\n.ui.attached.buttons .button:last-child {\n border-radius: 0;\n}\n.ui[class*="top attached"].buttons {\n margin-bottom: -1px;\n border-radius: .28571429rem .28571429rem 0 0;\n}\n.ui[class*="top attached"].buttons .button:first-child {\n border-radius: .28571429rem 0 0 0;\n}\n.ui[class*="top attached"].buttons .button:last-child {\n border-radius: 0 .28571429rem 0 0;\n}\n.ui[class*="bottom attached"].buttons {\n margin-top: -1px;\n border-radius: 0 0 .28571429rem .28571429rem;\n}\n.ui[class*="bottom attached"].buttons .button:first-child {\n border-radius: 0 0 0 .28571429rem;\n}\n.ui[class*="bottom attached"].buttons .button:last-child {\n border-radius: 0 0 .28571429rem 0;\n}\n.ui[class*="left attached"].buttons {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n margin-right: 0;\n margin-left: -1px;\n border-radius: 0 .28571429rem .28571429rem 0;\n}\n.ui[class*="left attached"].buttons .button:first-child {\n margin-left: -1px;\n border-radius: 0 .28571429rem 0 0;\n}\n.ui[class*="left attached"].buttons .button:last-child {\n margin-left: -1px;\n border-radius: 0 0 .28571429rem 0;\n}\n.ui[class*="right attached"].buttons {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n margin-left: 0;\n margin-right: -1px;\n border-radius: .28571429rem 0 0 .28571429rem;\n}\n.ui[class*="right attached"].buttons .button:first-child {\n margin-left: -1px;\n border-radius: .28571429rem 0 0 0;\n}\n.ui[class*="right attached"].buttons .button:last-child {\n margin-left: -1px;\n border-radius: 0 0 0 .28571429rem;\n}\n.ui.fluid.button,\n.ui.fluid.buttons {\n width: 100%;\n}\n.ui.fluid.button {\n display: block;\n}\n.ui.two.buttons {\n width: 100%;\n}\n.ui.two.buttons>.button {\n width: 50%;\n}\n.ui.three.buttons {\n width: 100%;\n}\n.ui.three.buttons>.button {\n width: 33.333%;\n}\n.ui.four.buttons {\n width: 100%;\n}\n.ui.four.buttons>.button {\n width: 25%;\n}\n.ui.five.buttons {\n width: 100%;\n}\n.ui.five.buttons>.button {\n width: 20%;\n}\n.ui.six.buttons {\n width: 100%;\n}\n.ui.six.buttons>.button {\n width: 16.666%;\n}\n.ui.seven.buttons {\n width: 100%;\n}\n.ui.seven.buttons>.button {\n width: 14.285%;\n}\n.ui.eight.buttons {\n width: 100%;\n}\n.ui.eight.buttons>.button {\n width: 12.5%;\n}\n.ui.nine.buttons {\n width: 100%;\n}\n.ui.nine.buttons>.button {\n width: 11.11%;\n}\n.ui.ten.buttons {\n width: 100%;\n}\n.ui.ten.buttons>.button {\n width: 10%;\n}\n.ui.eleven.buttons {\n width: 100%;\n}\n.ui.eleven.buttons>.button {\n width: 9.09%;\n}\n.ui.twelve.buttons {\n width: 100%;\n}\n.ui.twelve.buttons>.button {\n width: 8.3333%;\n}\n.ui.fluid.vertical.buttons,\n.ui.fluid.vertical.buttons>.button {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n width: auto;\n}\n.ui.two.vertical.buttons>.button {\n height: 50%;\n}\n.ui.three.vertical.buttons>.button {\n height: 33.333%;\n}\n.ui.four.vertical.buttons>.button {\n height: 25%;\n}\n.ui.five.vertical.buttons>.button {\n height: 20%;\n}\n.ui.six.vertical.buttons>.button {\n height: 16.666%;\n}\n.ui.seven.vertical.buttons>.button {\n height: 14.285%;\n}\n.ui.eight.vertical.buttons>.button {\n height: 12.5%;\n}\n.ui.nine.vertical.buttons>.button {\n height: 11.11%;\n}\n.ui.ten.vertical.buttons>.button {\n height: 10%;\n}\n.ui.eleven.vertical.buttons>.button {\n height: 9.09%;\n}\n.ui.twelve.vertical.buttons>.button {\n height: 8.3333%;\n}\n.ui.black.button,\n.ui.black.buttons .button {\n background-color: #1b1c1d;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.black.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.black.button:hover,\n.ui.black.buttons .button:hover {\n background-color: #27292a;\n color: #fff;\n text-shadow: none;\n}\n.ui.black.button:focus,\n.ui.black.buttons .button:focus {\n background-color: #2f3032;\n color: #fff;\n text-shadow: none;\n}\n.ui.black.button:active,\n.ui.black.buttons .button:active {\n background-color: #343637;\n color: #fff;\n text-shadow: none;\n}\n.ui.black.active.button,\n.ui.black.button .active.button:active,\n.ui.black.buttons .active.button,\n.ui.black.buttons .active.button:active {\n background-color: #0f0f10;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.black.button,\n.ui.basic.black.buttons .button {\n box-shadow: 0 0 0 1px #1b1c1d inset!important;\n color: #1b1c1d!important;\n}\n.ui.basic.black.button:hover,\n.ui.basic.black.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #27292a inset!important;\n color: #27292a!important;\n}\n.ui.basic.black.button:focus,\n.ui.basic.black.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #2f3032 inset!important;\n color: #27292a!important;\n}\n.ui.basic.black.active.button,\n.ui.basic.black.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #0f0f10 inset!important;\n color: #343637!important;\n}\n.ui.basic.black.button:active,\n.ui.basic.black.buttons .button:active {\n box-shadow: 0 0 0 1px #343637 inset!important;\n color: #343637!important;\n}\n.ui.buttons:not(.vertical)>.basic.black.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.inverted.black.button,\n.ui.inverted.black.buttons .button {\n background-color: transparent;\n box-shadow: 0 0 0 2px #d4d4d5 inset!important;\n color: #fff;\n}\n.ui.inverted.black.button.active,\n.ui.inverted.black.button:active,\n.ui.inverted.black.button:focus,\n.ui.inverted.black.button:hover,\n.ui.inverted.black.buttons .button.active,\n.ui.inverted.black.buttons .button:active,\n.ui.inverted.black.buttons .button:focus,\n.ui.inverted.black.buttons .button:hover {\n box-shadow: none!important;\n color: #fff;\n}\n.ui.inverted.black.button:hover,\n.ui.inverted.black.buttons .button:hover {\n background-color: #000;\n}\n.ui.inverted.black.button:focus,\n.ui.inverted.black.buttons .button:focus {\n background-color: #000;\n}\n.ui.inverted.black.active.button,\n.ui.inverted.black.buttons .active.button {\n background-color: #000;\n}\n.ui.inverted.black.button:active,\n.ui.inverted.black.buttons .button:active {\n background-color: #000;\n}\n.ui.inverted.black.basic.button,\n.ui.inverted.black.basic.buttons .button,\n.ui.inverted.black.buttons .basic.button {\n background-color: transparent;\n box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n color: #fff!important;\n}\n.ui.inverted.black.basic.button:hover,\n.ui.inverted.black.basic.buttons .button:hover,\n.ui.inverted.black.buttons .basic.button:hover {\n box-shadow: 0 0 0 2px #000 inset!important;\n color: #fff!important;\n}\n.ui.inverted.black.basic.button:focus,\n.ui.inverted.black.basic.buttons .button:focus {\n box-shadow: 0 0 0 2px #000 inset!important;\n color: #545454!important;\n}\n.ui.inverted.black.basic.active.button,\n.ui.inverted.black.basic.buttons .active.button,\n.ui.inverted.black.buttons .basic.active.button {\n box-shadow: 0 0 0 2px #000 inset!important;\n color: #fff!important;\n}\n.ui.inverted.black.basic.button:active,\n.ui.inverted.black.basic.buttons .button:active,\n.ui.inverted.black.buttons .basic.button:active {\n box-shadow: 0 0 0 2px #000 inset!important;\n color: #fff!important;\n}\n.ui.grey.button,\n.ui.grey.buttons .button {\n background-color: #767676;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.grey.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.grey.button:hover,\n.ui.grey.buttons .button:hover {\n background-color: #838383;\n color: #fff;\n text-shadow: none;\n}\n.ui.grey.button:focus,\n.ui.grey.buttons .button:focus {\n background-color: #8a8a8a;\n color: #fff;\n text-shadow: none;\n}\n.ui.grey.button:active,\n.ui.grey.buttons .button:active {\n background-color: #909090;\n color: #fff;\n text-shadow: none;\n}\n.ui.grey.active.button,\n.ui.grey.button .active.button:active,\n.ui.grey.buttons .active.button,\n.ui.grey.buttons .active.button:active {\n background-color: #696969;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.grey.button,\n.ui.basic.grey.buttons .button {\n box-shadow: 0 0 0 1px #767676 inset!important;\n color: #767676!important;\n}\n.ui.basic.grey.button:hover,\n.ui.basic.grey.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #838383 inset!important;\n color: #838383!important;\n}\n.ui.basic.grey.button:focus,\n.ui.basic.grey.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #8a8a8a inset!important;\n color: #838383!important;\n}\n.ui.basic.grey.active.button,\n.ui.basic.grey.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #696969 inset!important;\n color: #909090!important;\n}\n.ui.basic.grey.button:active,\n.ui.basic.grey.buttons .button:active {\n box-shadow: 0 0 0 1px #909090 inset!important;\n color: #909090!important;\n}\n.ui.buttons:not(.vertical)>.basic.grey.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.inverted.grey.button,\n.ui.inverted.grey.buttons .button {\n background-color: transparent;\n box-shadow: 0 0 0 2px #d4d4d5 inset!important;\n color: #fff;\n}\n.ui.inverted.grey.button.active,\n.ui.inverted.grey.button:active,\n.ui.inverted.grey.button:focus,\n.ui.inverted.grey.button:hover,\n.ui.inverted.grey.buttons .button.active,\n.ui.inverted.grey.buttons .button:active,\n.ui.inverted.grey.buttons .button:focus,\n.ui.inverted.grey.buttons .button:hover {\n box-shadow: none!important;\n color: rgba(0,0,0,.6);\n}\n.ui.inverted.grey.button:hover,\n.ui.inverted.grey.buttons .button:hover {\n background-color: #cfd0d2;\n}\n.ui.inverted.grey.button:focus,\n.ui.inverted.grey.buttons .button:focus {\n background-color: #c7c9cb;\n}\n.ui.inverted.grey.active.button,\n.ui.inverted.grey.buttons .active.button {\n background-color: #cfd0d2;\n}\n.ui.inverted.grey.button:active,\n.ui.inverted.grey.buttons .button:active {\n background-color: #c2c4c5;\n}\n.ui.inverted.grey.basic.button,\n.ui.inverted.grey.basic.buttons .button,\n.ui.inverted.grey.buttons .basic.button {\n background-color: transparent;\n box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n color: #fff!important;\n}\n.ui.inverted.grey.basic.button:hover,\n.ui.inverted.grey.basic.buttons .button:hover,\n.ui.inverted.grey.buttons .basic.button:hover {\n box-shadow: 0 0 0 2px #cfd0d2 inset!important;\n color: #fff!important;\n}\n.ui.inverted.grey.basic.button:focus,\n.ui.inverted.grey.basic.buttons .button:focus {\n box-shadow: 0 0 0 2px #c7c9cb inset!important;\n color: #dcddde!important;\n}\n.ui.inverted.grey.basic.active.button,\n.ui.inverted.grey.basic.buttons .active.button,\n.ui.inverted.grey.buttons .basic.active.button {\n box-shadow: 0 0 0 2px #cfd0d2 inset!important;\n color: #fff!important;\n}\n.ui.inverted.grey.basic.button:active,\n.ui.inverted.grey.basic.buttons .button:active,\n.ui.inverted.grey.buttons .basic.button:active {\n box-shadow: 0 0 0 2px #c2c4c5 inset!important;\n color: #fff!important;\n}\n.ui.brown.button,\n.ui.brown.buttons .button {\n background-color: #a5673f;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.brown.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.brown.button:hover,\n.ui.brown.buttons .button:hover {\n background-color: #975b33;\n color: #fff;\n text-shadow: none;\n}\n.ui.brown.button:focus,\n.ui.brown.buttons .button:focus {\n background-color: #90532b;\n color: #fff;\n text-shadow: none;\n}\n.ui.brown.button:active,\n.ui.brown.buttons .button:active {\n background-color: #805031;\n color: #fff;\n text-shadow: none;\n}\n.ui.brown.active.button,\n.ui.brown.button .active.button:active,\n.ui.brown.buttons .active.button,\n.ui.brown.buttons .active.button:active {\n background-color: #995a31;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.brown.button,\n.ui.basic.brown.buttons .button {\n box-shadow: 0 0 0 1px #a5673f inset!important;\n color: #a5673f!important;\n}\n.ui.basic.brown.button:hover,\n.ui.basic.brown.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #975b33 inset!important;\n color: #975b33!important;\n}\n.ui.basic.brown.button:focus,\n.ui.basic.brown.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #90532b inset!important;\n color: #975b33!important;\n}\n.ui.basic.brown.active.button,\n.ui.basic.brown.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #995a31 inset!important;\n color: #805031!important;\n}\n.ui.basic.brown.button:active,\n.ui.basic.brown.buttons .button:active {\n box-shadow: 0 0 0 1px #805031 inset!important;\n color: #805031!important;\n}\n.ui.buttons:not(.vertical)>.basic.brown.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.inverted.brown.button,\n.ui.inverted.brown.buttons .button {\n background-color: transparent;\n box-shadow: 0 0 0 2px #d67c1c inset!important;\n color: #d67c1c;\n}\n.ui.inverted.brown.button.active,\n.ui.inverted.brown.button:active,\n.ui.inverted.brown.button:focus,\n.ui.inverted.brown.button:hover,\n.ui.inverted.brown.buttons .button.active,\n.ui.inverted.brown.buttons .button:active,\n.ui.inverted.brown.buttons .button:focus,\n.ui.inverted.brown.buttons .button:hover {\n box-shadow: none!important;\n color: #fff;\n}\n.ui.inverted.brown.button:hover,\n.ui.inverted.brown.buttons .button:hover {\n background-color: #c86f11;\n}\n.ui.inverted.brown.button:focus,\n.ui.inverted.brown.buttons .button:focus {\n background-color: #c16808;\n}\n.ui.inverted.brown.active.button,\n.ui.inverted.brown.buttons .active.button {\n background-color: #cc6f0d;\n}\n.ui.inverted.brown.button:active,\n.ui.inverted.brown.buttons .button:active {\n background-color: #a96216;\n}\n.ui.inverted.brown.basic.button,\n.ui.inverted.brown.basic.buttons .button,\n.ui.inverted.brown.buttons .basic.button {\n background-color: transparent;\n box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n color: #fff!important;\n}\n.ui.inverted.brown.basic.button:hover,\n.ui.inverted.brown.basic.buttons .button:hover,\n.ui.inverted.brown.buttons .basic.button:hover {\n box-shadow: 0 0 0 2px #c86f11 inset!important;\n color: #d67c1c!important;\n}\n.ui.inverted.brown.basic.button:focus,\n.ui.inverted.brown.basic.buttons .button:focus {\n box-shadow: 0 0 0 2px #c16808 inset!important;\n color: #d67c1c!important;\n}\n.ui.inverted.brown.basic.active.button,\n.ui.inverted.brown.basic.buttons .active.button,\n.ui.inverted.brown.buttons .basic.active.button {\n box-shadow: 0 0 0 2px #cc6f0d inset!important;\n color: #d67c1c!important;\n}\n.ui.inverted.brown.basic.button:active,\n.ui.inverted.brown.basic.buttons .button:active,\n.ui.inverted.brown.buttons .basic.button:active {\n box-shadow: 0 0 0 2px #a96216 inset!important;\n color: #d67c1c!important;\n}\n.ui.blue.button,\n.ui.blue.buttons .button {\n background-color: #2185d0;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.blue.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.blue.button:hover,\n.ui.blue.buttons .button:hover {\n background-color: #1678c2;\n color: #fff;\n text-shadow: none;\n}\n.ui.blue.button:focus,\n.ui.blue.buttons .button:focus {\n background-color: #0d71bb;\n color: #fff;\n text-shadow: none;\n}\n.ui.blue.button:active,\n.ui.blue.buttons .button:active {\n background-color: #1a69a4;\n color: #fff;\n text-shadow: none;\n}\n.ui.blue.active.button,\n.ui.blue.button .active.button:active,\n.ui.blue.buttons .active.button,\n.ui.blue.buttons .active.button:active {\n background-color: #1279c6;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.blue.button,\n.ui.basic.blue.buttons .button {\n box-shadow: 0 0 0 1px #2185d0 inset!important;\n color: #2185d0!important;\n}\n.ui.basic.blue.button:hover,\n.ui.basic.blue.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #1678c2 inset!important;\n color: #1678c2!important;\n}\n.ui.basic.blue.button:focus,\n.ui.basic.blue.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #0d71bb inset!important;\n color: #1678c2!important;\n}\n.ui.basic.blue.active.button,\n.ui.basic.blue.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #1279c6 inset!important;\n color: #1a69a4!important;\n}\n.ui.basic.blue.button:active,\n.ui.basic.blue.buttons .button:active {\n box-shadow: 0 0 0 1px #1a69a4 inset!important;\n color: #1a69a4!important;\n}\n.ui.buttons:not(.vertical)>.basic.blue.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.inverted.blue.button,\n.ui.inverted.blue.buttons .button {\n background-color: transparent;\n box-shadow: 0 0 0 2px #54c8ff inset!important;\n color: #54c8ff;\n}\n.ui.inverted.blue.button.active,\n.ui.inverted.blue.button:active,\n.ui.inverted.blue.button:focus,\n.ui.inverted.blue.button:hover,\n.ui.inverted.blue.buttons .button.active,\n.ui.inverted.blue.buttons .button:active,\n.ui.inverted.blue.buttons .button:focus,\n.ui.inverted.blue.buttons .button:hover {\n box-shadow: none!important;\n color: #fff;\n}\n.ui.inverted.blue.button:hover,\n.ui.inverted.blue.buttons .button:hover {\n background-color: #3ac0ff;\n}\n.ui.inverted.blue.button:focus,\n.ui.inverted.blue.buttons .button:focus {\n background-color: #2bbbff;\n}\n.ui.inverted.blue.active.button,\n.ui.inverted.blue.buttons .active.button {\n background-color: #3ac0ff;\n}\n.ui.inverted.blue.button:active,\n.ui.inverted.blue.buttons .button:active {\n background-color: #21b8ff;\n}\n.ui.inverted.blue.basic.button,\n.ui.inverted.blue.basic.buttons .button,\n.ui.inverted.blue.buttons .basic.button {\n background-color: transparent;\n box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n color: #fff!important;\n}\n.ui.inverted.blue.basic.button:hover,\n.ui.inverted.blue.basic.buttons .button:hover,\n.ui.inverted.blue.buttons .basic.button:hover {\n box-shadow: 0 0 0 2px #3ac0ff inset!important;\n color: #54c8ff!important;\n}\n.ui.inverted.blue.basic.button:focus,\n.ui.inverted.blue.basic.buttons .button:focus {\n box-shadow: 0 0 0 2px #2bbbff inset!important;\n color: #54c8ff!important;\n}\n.ui.inverted.blue.basic.active.button,\n.ui.inverted.blue.basic.buttons .active.button,\n.ui.inverted.blue.buttons .basic.active.button {\n box-shadow: 0 0 0 2px #3ac0ff inset!important;\n color: #54c8ff!important;\n}\n.ui.inverted.blue.basic.button:active,\n.ui.inverted.blue.basic.buttons .button:active,\n.ui.inverted.blue.buttons .basic.button:active {\n box-shadow: 0 0 0 2px #21b8ff inset!important;\n color: #54c8ff!important;\n}\n.ui.green.button,\n.ui.green.buttons .button {\n background-color: #21ba45;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.green.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.green.button:hover,\n.ui.green.buttons .button:hover {\n background-color: #16ab39;\n color: #fff;\n text-shadow: none;\n}\n.ui.green.button:focus,\n.ui.green.buttons .button:focus {\n background-color: #0ea432;\n color: #fff;\n text-shadow: none;\n}\n.ui.green.button:active,\n.ui.green.buttons .button:active {\n background-color: #198f35;\n color: #fff;\n text-shadow: none;\n}\n.ui.green.active.button,\n.ui.green.button .active.button:active,\n.ui.green.buttons .active.button,\n.ui.green.buttons .active.button:active {\n background-color: #13ae38;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.green.button,\n.ui.basic.green.buttons .button {\n box-shadow: 0 0 0 1px #21ba45 inset!important;\n color: #21ba45!important;\n}\n.ui.basic.green.button:hover,\n.ui.basic.green.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #16ab39 inset!important;\n color: #16ab39!important;\n}\n.ui.basic.green.button:focus,\n.ui.basic.green.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #0ea432 inset!important;\n color: #16ab39!important;\n}\n.ui.basic.green.active.button,\n.ui.basic.green.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #13ae38 inset!important;\n color: #198f35!important;\n}\n.ui.basic.green.button:active,\n.ui.basic.green.buttons .button:active {\n box-shadow: 0 0 0 1px #198f35 inset!important;\n color: #198f35!important;\n}\n.ui.buttons:not(.vertical)>.basic.green.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.inverted.green.button,\n.ui.inverted.green.buttons .button {\n background-color: transparent;\n box-shadow: 0 0 0 2px #2ecc40 inset!important;\n color: #2ecc40;\n}\n.ui.inverted.green.button.active,\n.ui.inverted.green.button:active,\n.ui.inverted.green.button:focus,\n.ui.inverted.green.button:hover,\n.ui.inverted.green.buttons .button.active,\n.ui.inverted.green.buttons .button:active,\n.ui.inverted.green.buttons .button:focus,\n.ui.inverted.green.buttons .button:hover {\n box-shadow: none!important;\n color: #fff;\n}\n.ui.inverted.green.button:hover,\n.ui.inverted.green.buttons .button:hover {\n background-color: #22be34;\n}\n.ui.inverted.green.button:focus,\n.ui.inverted.green.buttons .button:focus {\n background-color: #19b82b;\n}\n.ui.inverted.green.active.button,\n.ui.inverted.green.buttons .active.button {\n background-color: #1fc231;\n}\n.ui.inverted.green.button:active,\n.ui.inverted.green.buttons .button:active {\n background-color: #25a233;\n}\n.ui.inverted.green.basic.button,\n.ui.inverted.green.basic.buttons .button,\n.ui.inverted.green.buttons .basic.button {\n background-color: transparent;\n box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n color: #fff!important;\n}\n.ui.inverted.green.basic.button:hover,\n.ui.inverted.green.basic.buttons .button:hover,\n.ui.inverted.green.buttons .basic.button:hover {\n box-shadow: 0 0 0 2px #22be34 inset!important;\n color: #2ecc40!important;\n}\n.ui.inverted.green.basic.button:focus,\n.ui.inverted.green.basic.buttons .button:focus {\n box-shadow: 0 0 0 2px #19b82b inset!important;\n color: #2ecc40!important;\n}\n.ui.inverted.green.basic.active.button,\n.ui.inverted.green.basic.buttons .active.button,\n.ui.inverted.green.buttons .basic.active.button {\n box-shadow: 0 0 0 2px #1fc231 inset!important;\n color: #2ecc40!important;\n}\n.ui.inverted.green.basic.button:active,\n.ui.inverted.green.basic.buttons .button:active,\n.ui.inverted.green.buttons .basic.button:active {\n box-shadow: 0 0 0 2px #25a233 inset!important;\n color: #2ecc40!important;\n}\n.ui.orange.button,\n.ui.orange.buttons .button {\n background-color: #f2711c;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.orange.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.orange.button:hover,\n.ui.orange.buttons .button:hover {\n background-color: #f26202;\n color: #fff;\n text-shadow: none;\n}\n.ui.orange.button:focus,\n.ui.orange.buttons .button:focus {\n background-color: #e55b00;\n color: #fff;\n text-shadow: none;\n}\n.ui.orange.button:active,\n.ui.orange.buttons .button:active {\n background-color: #cf590c;\n color: #fff;\n text-shadow: none;\n}\n.ui.orange.active.button,\n.ui.orange.button .active.button:active,\n.ui.orange.buttons .active.button,\n.ui.orange.buttons .active.button:active {\n background-color: #f56100;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.orange.button,\n.ui.basic.orange.buttons .button {\n box-shadow: 0 0 0 1px #f2711c inset!important;\n color: #f2711c!important;\n}\n.ui.basic.orange.button:hover,\n.ui.basic.orange.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #f26202 inset!important;\n color: #f26202!important;\n}\n.ui.basic.orange.button:focus,\n.ui.basic.orange.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #e55b00 inset!important;\n color: #f26202!important;\n}\n.ui.basic.orange.active.button,\n.ui.basic.orange.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #f56100 inset!important;\n color: #cf590c!important;\n}\n.ui.basic.orange.button:active,\n.ui.basic.orange.buttons .button:active {\n box-shadow: 0 0 0 1px #cf590c inset!important;\n color: #cf590c!important;\n}\n.ui.buttons:not(.vertical)>.basic.orange.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.inverted.orange.button,\n.ui.inverted.orange.buttons .button {\n background-color: transparent;\n box-shadow: 0 0 0 2px #ff851b inset!important;\n color: #ff851b;\n}\n.ui.inverted.orange.button.active,\n.ui.inverted.orange.button:active,\n.ui.inverted.orange.button:focus,\n.ui.inverted.orange.button:hover,\n.ui.inverted.orange.buttons .button.active,\n.ui.inverted.orange.buttons .button:active,\n.ui.inverted.orange.buttons .button:focus,\n.ui.inverted.orange.buttons .button:hover {\n box-shadow: none!important;\n color: #fff;\n}\n.ui.inverted.orange.button:hover,\n.ui.inverted.orange.buttons .button:hover {\n background-color: #ff7701;\n}\n.ui.inverted.orange.button:focus,\n.ui.inverted.orange.buttons .button:focus {\n background-color: #f17000;\n}\n.ui.inverted.orange.active.button,\n.ui.inverted.orange.buttons .active.button {\n background-color: #ff7701;\n}\n.ui.inverted.orange.button:active,\n.ui.inverted.orange.buttons .button:active {\n background-color: #e76b00;\n}\n.ui.inverted.orange.basic.button,\n.ui.inverted.orange.basic.buttons .button,\n.ui.inverted.orange.buttons .basic.button {\n background-color: transparent;\n box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n color: #fff!important;\n}\n.ui.inverted.orange.basic.button:hover,\n.ui.inverted.orange.basic.buttons .button:hover,\n.ui.inverted.orange.buttons .basic.button:hover {\n box-shadow: 0 0 0 2px #ff7701 inset!important;\n color: #ff851b!important;\n}\n.ui.inverted.orange.basic.button:focus,\n.ui.inverted.orange.basic.buttons .button:focus {\n box-shadow: 0 0 0 2px #f17000 inset!important;\n color: #ff851b!important;\n}\n.ui.inverted.orange.basic.active.button,\n.ui.inverted.orange.basic.buttons .active.button,\n.ui.inverted.orange.buttons .basic.active.button {\n box-shadow: 0 0 0 2px #ff7701 inset!important;\n color: #ff851b!important;\n}\n.ui.inverted.orange.basic.button:active,\n.ui.inverted.orange.basic.buttons .button:active,\n.ui.inverted.orange.buttons .basic.button:active {\n box-shadow: 0 0 0 2px #e76b00 inset!important;\n color: #ff851b!important;\n}\n.ui.pink.button,\n.ui.pink.buttons .button {\n background-color: #e03997;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.pink.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.pink.button:hover,\n.ui.pink.buttons .button:hover {\n background-color: #e61a8d;\n color: #fff;\n text-shadow: none;\n}\n.ui.pink.button:focus,\n.ui.pink.buttons .button:focus {\n background-color: #e10f85;\n color: #fff;\n text-shadow: none;\n}\n.ui.pink.button:active,\n.ui.pink.buttons .button:active {\n background-color: #c71f7e;\n color: #fff;\n text-shadow: none;\n}\n.ui.pink.active.button,\n.ui.pink.button .active.button:active,\n.ui.pink.buttons .active.button,\n.ui.pink.buttons .active.button:active {\n background-color: #ea158d;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.pink.button,\n.ui.basic.pink.buttons .button {\n box-shadow: 0 0 0 1px #e03997 inset!important;\n color: #e03997!important;\n}\n.ui.basic.pink.button:hover,\n.ui.basic.pink.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #e61a8d inset!important;\n color: #e61a8d!important;\n}\n.ui.basic.pink.button:focus,\n.ui.basic.pink.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #e10f85 inset!important;\n color: #e61a8d!important;\n}\n.ui.basic.pink.active.button,\n.ui.basic.pink.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #ea158d inset!important;\n color: #c71f7e!important;\n}\n.ui.basic.pink.button:active,\n.ui.basic.pink.buttons .button:active {\n box-shadow: 0 0 0 1px #c71f7e inset!important;\n color: #c71f7e!important;\n}\n.ui.buttons:not(.vertical)>.basic.pink.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.inverted.pink.button,\n.ui.inverted.pink.buttons .button {\n background-color: transparent;\n box-shadow: 0 0 0 2px #ff8edf inset!important;\n color: #ff8edf;\n}\n.ui.inverted.pink.button.active,\n.ui.inverted.pink.button:active,\n.ui.inverted.pink.button:focus,\n.ui.inverted.pink.button:hover,\n.ui.inverted.pink.buttons .button.active,\n.ui.inverted.pink.buttons .button:active,\n.ui.inverted.pink.buttons .button:focus,\n.ui.inverted.pink.buttons .button:hover {\n box-shadow: none!important;\n color: #fff;\n}\n.ui.inverted.pink.button:hover,\n.ui.inverted.pink.buttons .button:hover {\n background-color: #ff74d8;\n}\n.ui.inverted.pink.button:focus,\n.ui.inverted.pink.buttons .button:focus {\n background-color: #ff65d3;\n}\n.ui.inverted.pink.active.button,\n.ui.inverted.pink.buttons .active.button {\n background-color: #ff74d8;\n}\n.ui.inverted.pink.button:active,\n.ui.inverted.pink.buttons .button:active {\n background-color: #ff5bd1;\n}\n.ui.inverted.pink.basic.button,\n.ui.inverted.pink.basic.buttons .button,\n.ui.inverted.pink.buttons .basic.button {\n background-color: transparent;\n box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n color: #fff!important;\n}\n.ui.inverted.pink.basic.button:hover,\n.ui.inverted.pink.basic.buttons .button:hover,\n.ui.inverted.pink.buttons .basic.button:hover {\n box-shadow: 0 0 0 2px #ff74d8 inset!important;\n color: #ff8edf!important;\n}\n.ui.inverted.pink.basic.button:focus,\n.ui.inverted.pink.basic.buttons .button:focus {\n box-shadow: 0 0 0 2px #ff65d3 inset!important;\n color: #ff8edf!important;\n}\n.ui.inverted.pink.basic.active.button,\n.ui.inverted.pink.basic.buttons .active.button,\n.ui.inverted.pink.buttons .basic.active.button {\n box-shadow: 0 0 0 2px #ff74d8 inset!important;\n color: #ff8edf!important;\n}\n.ui.inverted.pink.basic.button:active,\n.ui.inverted.pink.basic.buttons .button:active,\n.ui.inverted.pink.buttons .basic.button:active {\n box-shadow: 0 0 0 2px #ff5bd1 inset!important;\n color: #ff8edf!important;\n}\n.ui.violet.button,\n.ui.violet.buttons .button {\n background-color: #6435c9;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.violet.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.violet.button:hover,\n.ui.violet.buttons .button:hover {\n background-color: #5829bb;\n color: #fff;\n text-shadow: none;\n}\n.ui.violet.button:focus,\n.ui.violet.buttons .button:focus {\n background-color: #4f20b5;\n color: #fff;\n text-shadow: none;\n}\n.ui.violet.button:active,\n.ui.violet.buttons .button:active {\n background-color: #502aa1;\n color: #fff;\n text-shadow: none;\n}\n.ui.violet.active.button,\n.ui.violet.button .active.button:active,\n.ui.violet.buttons .active.button,\n.ui.violet.buttons .active.button:active {\n background-color: #5626bf;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.violet.button,\n.ui.basic.violet.buttons .button {\n box-shadow: 0 0 0 1px #6435c9 inset!important;\n color: #6435c9!important;\n}\n.ui.basic.violet.button:hover,\n.ui.basic.violet.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #5829bb inset!important;\n color: #5829bb!important;\n}\n.ui.basic.violet.button:focus,\n.ui.basic.violet.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #4f20b5 inset!important;\n color: #5829bb!important;\n}\n.ui.basic.violet.active.button,\n.ui.basic.violet.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #5626bf inset!important;\n color: #502aa1!important;\n}\n.ui.basic.violet.button:active,\n.ui.basic.violet.buttons .button:active {\n box-shadow: 0 0 0 1px #502aa1 inset!important;\n color: #502aa1!important;\n}\n.ui.buttons:not(.vertical)>.basic.violet.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.inverted.violet.button,\n.ui.inverted.violet.buttons .button {\n background-color: transparent;\n box-shadow: 0 0 0 2px #a291fb inset!important;\n color: #a291fb;\n}\n.ui.inverted.violet.button.active,\n.ui.inverted.violet.button:active,\n.ui.inverted.violet.button:focus,\n.ui.inverted.violet.button:hover,\n.ui.inverted.violet.buttons .button.active,\n.ui.inverted.violet.buttons .button:active,\n.ui.inverted.violet.buttons .button:focus,\n.ui.inverted.violet.buttons .button:hover {\n box-shadow: none!important;\n color: #fff;\n}\n.ui.inverted.violet.button:hover,\n.ui.inverted.violet.buttons .button:hover {\n background-color: #8a73ff;\n}\n.ui.inverted.violet.button:focus,\n.ui.inverted.violet.buttons .button:focus {\n background-color: #7d64ff;\n}\n.ui.inverted.violet.active.button,\n.ui.inverted.violet.buttons .active.button {\n background-color: #8a73ff;\n}\n.ui.inverted.violet.button:active,\n.ui.inverted.violet.buttons .button:active {\n background-color: #7860f9;\n}\n.ui.inverted.violet.basic.button,\n.ui.inverted.violet.basic.buttons .button,\n.ui.inverted.violet.buttons .basic.button {\n background-color: transparent;\n box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n color: #fff!important;\n}\n.ui.inverted.violet.basic.button:hover,\n.ui.inverted.violet.basic.buttons .button:hover,\n.ui.inverted.violet.buttons .basic.button:hover {\n box-shadow: 0 0 0 2px #8a73ff inset!important;\n color: #a291fb!important;\n}\n.ui.inverted.violet.basic.button:focus,\n.ui.inverted.violet.basic.buttons .button:focus {\n box-shadow: 0 0 0 2px #7d64ff inset!important;\n color: #a291fb!important;\n}\n.ui.inverted.violet.basic.active.button,\n.ui.inverted.violet.basic.buttons .active.button,\n.ui.inverted.violet.buttons .basic.active.button {\n box-shadow: 0 0 0 2px #8a73ff inset!important;\n color: #a291fb!important;\n}\n.ui.inverted.violet.basic.button:active,\n.ui.inverted.violet.basic.buttons .button:active,\n.ui.inverted.violet.buttons .basic.button:active {\n box-shadow: 0 0 0 2px #7860f9 inset!important;\n color: #a291fb!important;\n}\n.ui.purple.button,\n.ui.purple.buttons .button {\n background-color: #a333c8;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.purple.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.purple.button:hover,\n.ui.purple.buttons .button:hover {\n background-color: #9627ba;\n color: #fff;\n text-shadow: none;\n}\n.ui.purple.button:focus,\n.ui.purple.buttons .button:focus {\n background-color: #8f1eb4;\n color: #fff;\n text-shadow: none;\n}\n.ui.purple.button:active,\n.ui.purple.buttons .button:active {\n background-color: #82299f;\n color: #fff;\n text-shadow: none;\n}\n.ui.purple.active.button,\n.ui.purple.button .active.button:active,\n.ui.purple.buttons .active.button,\n.ui.purple.buttons .active.button:active {\n background-color: #9724be;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.purple.button,\n.ui.basic.purple.buttons .button {\n box-shadow: 0 0 0 1px #a333c8 inset!important;\n color: #a333c8!important;\n}\n.ui.basic.purple.button:hover,\n.ui.basic.purple.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #9627ba inset!important;\n color: #9627ba!important;\n}\n.ui.basic.purple.button:focus,\n.ui.basic.purple.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #8f1eb4 inset!important;\n color: #9627ba!important;\n}\n.ui.basic.purple.active.button,\n.ui.basic.purple.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #9724be inset!important;\n color: #82299f!important;\n}\n.ui.basic.purple.button:active,\n.ui.basic.purple.buttons .button:active {\n box-shadow: 0 0 0 1px #82299f inset!important;\n color: #82299f!important;\n}\n.ui.buttons:not(.vertical)>.basic.purple.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.inverted.purple.button,\n.ui.inverted.purple.buttons .button {\n background-color: transparent;\n box-shadow: 0 0 0 2px #dc73ff inset!important;\n color: #dc73ff;\n}\n.ui.inverted.purple.button.active,\n.ui.inverted.purple.button:active,\n.ui.inverted.purple.button:focus,\n.ui.inverted.purple.button:hover,\n.ui.inverted.purple.buttons .button.active,\n.ui.inverted.purple.buttons .button:active,\n.ui.inverted.purple.buttons .button:focus,\n.ui.inverted.purple.buttons .button:hover {\n box-shadow: none!important;\n color: #fff;\n}\n.ui.inverted.purple.button:hover,\n.ui.inverted.purple.buttons .button:hover {\n background-color: #d65aff;\n}\n.ui.inverted.purple.button:focus,\n.ui.inverted.purple.buttons .button:focus {\n background-color: #d24aff;\n}\n.ui.inverted.purple.active.button,\n.ui.inverted.purple.buttons .active.button {\n background-color: #d65aff;\n}\n.ui.inverted.purple.button:active,\n.ui.inverted.purple.buttons .button:active {\n background-color: #cf40ff;\n}\n.ui.inverted.purple.basic.button,\n.ui.inverted.purple.basic.buttons .button,\n.ui.inverted.purple.buttons .basic.button {\n background-color: transparent;\n box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n color: #fff!important;\n}\n.ui.inverted.purple.basic.button:hover,\n.ui.inverted.purple.basic.buttons .button:hover,\n.ui.inverted.purple.buttons .basic.button:hover {\n box-shadow: 0 0 0 2px #d65aff inset!important;\n color: #dc73ff!important;\n}\n.ui.inverted.purple.basic.button:focus,\n.ui.inverted.purple.basic.buttons .button:focus {\n box-shadow: 0 0 0 2px #d24aff inset!important;\n color: #dc73ff!important;\n}\n.ui.inverted.purple.basic.active.button,\n.ui.inverted.purple.basic.buttons .active.button,\n.ui.inverted.purple.buttons .basic.active.button {\n box-shadow: 0 0 0 2px #d65aff inset!important;\n color: #dc73ff!important;\n}\n.ui.inverted.purple.basic.button:active,\n.ui.inverted.purple.basic.buttons .button:active,\n.ui.inverted.purple.buttons .basic.button:active {\n box-shadow: 0 0 0 2px #cf40ff inset!important;\n color: #dc73ff!important;\n}\n.ui.red.button,\n.ui.red.buttons .button {\n background-color: #db2828;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.red.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.red.button:hover,\n.ui.red.buttons .button:hover {\n background-color: #d01919;\n color: #fff;\n text-shadow: none;\n}\n.ui.red.button:focus,\n.ui.red.buttons .button:focus {\n background-color: #ca1010;\n color: #fff;\n text-shadow: none;\n}\n.ui.red.button:active,\n.ui.red.buttons .button:active {\n background-color: #b21e1e;\n color: #fff;\n text-shadow: none;\n}\n.ui.red.active.button,\n.ui.red.button .active.button:active,\n.ui.red.buttons .active.button,\n.ui.red.buttons .active.button:active {\n background-color: #d41515;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.red.button,\n.ui.basic.red.buttons .button {\n box-shadow: 0 0 0 1px #db2828 inset!important;\n color: #db2828!important;\n}\n.ui.basic.red.button:hover,\n.ui.basic.red.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #d01919 inset!important;\n color: #d01919!important;\n}\n.ui.basic.red.button:focus,\n.ui.basic.red.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #ca1010 inset!important;\n color: #d01919!important;\n}\n.ui.basic.red.active.button,\n.ui.basic.red.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #d41515 inset!important;\n color: #b21e1e!important;\n}\n.ui.basic.red.button:active,\n.ui.basic.red.buttons .button:active {\n box-shadow: 0 0 0 1px #b21e1e inset!important;\n color: #b21e1e!important;\n}\n.ui.buttons:not(.vertical)>.basic.red.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.inverted.red.button,\n.ui.inverted.red.buttons .button {\n background-color: transparent;\n box-shadow: 0 0 0 2px #ff695e inset!important;\n color: #ff695e;\n}\n.ui.inverted.red.button.active,\n.ui.inverted.red.button:active,\n.ui.inverted.red.button:focus,\n.ui.inverted.red.button:hover,\n.ui.inverted.red.buttons .button.active,\n.ui.inverted.red.buttons .button:active,\n.ui.inverted.red.buttons .button:focus,\n.ui.inverted.red.buttons .button:hover {\n box-shadow: none!important;\n color: #fff;\n}\n.ui.inverted.red.button:hover,\n.ui.inverted.red.buttons .button:hover {\n background-color: #ff5144;\n}\n.ui.inverted.red.button:focus,\n.ui.inverted.red.buttons .button:focus {\n background-color: #ff4335;\n}\n.ui.inverted.red.active.button,\n.ui.inverted.red.buttons .active.button {\n background-color: #ff5144;\n}\n.ui.inverted.red.button:active,\n.ui.inverted.red.buttons .button:active {\n background-color: #ff392b;\n}\n.ui.inverted.red.basic.button,\n.ui.inverted.red.basic.buttons .button,\n.ui.inverted.red.buttons .basic.button {\n background-color: transparent;\n box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n color: #fff!important;\n}\n.ui.inverted.red.basic.button:hover,\n.ui.inverted.red.basic.buttons .button:hover,\n.ui.inverted.red.buttons .basic.button:hover {\n box-shadow: 0 0 0 2px #ff5144 inset!important;\n color: #ff695e!important;\n}\n.ui.inverted.red.basic.button:focus,\n.ui.inverted.red.basic.buttons .button:focus {\n box-shadow: 0 0 0 2px #ff4335 inset!important;\n color: #ff695e!important;\n}\n.ui.inverted.red.basic.active.button,\n.ui.inverted.red.basic.buttons .active.button,\n.ui.inverted.red.buttons .basic.active.button {\n box-shadow: 0 0 0 2px #ff5144 inset!important;\n color: #ff695e!important;\n}\n.ui.inverted.red.basic.button:active,\n.ui.inverted.red.basic.buttons .button:active,\n.ui.inverted.red.buttons .basic.button:active {\n box-shadow: 0 0 0 2px #ff392b inset!important;\n color: #ff695e!important;\n}\n.ui.teal.button,\n.ui.teal.buttons .button {\n background-color: #00b5ad;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.teal.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.teal.button:hover,\n.ui.teal.buttons .button:hover {\n background-color: #009c95;\n color: #fff;\n text-shadow: none;\n}\n.ui.teal.button:focus,\n.ui.teal.buttons .button:focus {\n background-color: #008c86;\n color: #fff;\n text-shadow: none;\n}\n.ui.teal.button:active,\n.ui.teal.buttons .button:active {\n background-color: #00827c;\n color: #fff;\n text-shadow: none;\n}\n.ui.teal.active.button,\n.ui.teal.button .active.button:active,\n.ui.teal.buttons .active.button,\n.ui.teal.buttons .active.button:active {\n background-color: #009c95;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.teal.button,\n.ui.basic.teal.buttons .button {\n box-shadow: 0 0 0 1px #00b5ad inset!important;\n color: #00b5ad!important;\n}\n.ui.basic.teal.button:hover,\n.ui.basic.teal.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #009c95 inset!important;\n color: #009c95!important;\n}\n.ui.basic.teal.button:focus,\n.ui.basic.teal.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #008c86 inset!important;\n color: #009c95!important;\n}\n.ui.basic.teal.active.button,\n.ui.basic.teal.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #009c95 inset!important;\n color: #00827c!important;\n}\n.ui.basic.teal.button:active,\n.ui.basic.teal.buttons .button:active {\n box-shadow: 0 0 0 1px #00827c inset!important;\n color: #00827c!important;\n}\n.ui.buttons:not(.vertical)>.basic.teal.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.inverted.teal.button,\n.ui.inverted.teal.buttons .button {\n background-color: transparent;\n box-shadow: 0 0 0 2px #6dffff inset!important;\n color: #6dffff;\n}\n.ui.inverted.teal.button.active,\n.ui.inverted.teal.button:active,\n.ui.inverted.teal.button:focus,\n.ui.inverted.teal.button:hover,\n.ui.inverted.teal.buttons .button.active,\n.ui.inverted.teal.buttons .button:active,\n.ui.inverted.teal.buttons .button:focus,\n.ui.inverted.teal.buttons .button:hover {\n box-shadow: none!important;\n color: rgba(0,0,0,.6);\n}\n.ui.inverted.teal.button:hover,\n.ui.inverted.teal.buttons .button:hover {\n background-color: #54ffff;\n}\n.ui.inverted.teal.button:focus,\n.ui.inverted.teal.buttons .button:focus {\n background-color: #4ff;\n}\n.ui.inverted.teal.active.button,\n.ui.inverted.teal.buttons .active.button {\n background-color: #54ffff;\n}\n.ui.inverted.teal.button:active,\n.ui.inverted.teal.buttons .button:active {\n background-color: #3affff;\n}\n.ui.inverted.teal.basic.button,\n.ui.inverted.teal.basic.buttons .button,\n.ui.inverted.teal.buttons .basic.button {\n background-color: transparent;\n box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n color: #fff!important;\n}\n.ui.inverted.teal.basic.button:hover,\n.ui.inverted.teal.basic.buttons .button:hover,\n.ui.inverted.teal.buttons .basic.button:hover {\n box-shadow: 0 0 0 2px #54ffff inset!important;\n color: #6dffff!important;\n}\n.ui.inverted.teal.basic.button:focus,\n.ui.inverted.teal.basic.buttons .button:focus {\n box-shadow: 0 0 0 2px #4ff inset!important;\n color: #6dffff!important;\n}\n.ui.inverted.teal.basic.active.button,\n.ui.inverted.teal.basic.buttons .active.button,\n.ui.inverted.teal.buttons .basic.active.button {\n box-shadow: 0 0 0 2px #54ffff inset!important;\n color: #6dffff!important;\n}\n.ui.inverted.teal.basic.button:active,\n.ui.inverted.teal.basic.buttons .button:active,\n.ui.inverted.teal.buttons .basic.button:active {\n box-shadow: 0 0 0 2px #3affff inset!important;\n color: #6dffff!important;\n}\n.ui.olive.button,\n.ui.olive.buttons .button {\n background-color: #b5cc18;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.olive.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.olive.button:hover,\n.ui.olive.buttons .button:hover {\n background-color: #a7bd0d;\n color: #fff;\n text-shadow: none;\n}\n.ui.olive.button:focus,\n.ui.olive.buttons .button:focus {\n background-color: #a0b605;\n color: #fff;\n text-shadow: none;\n}\n.ui.olive.button:active,\n.ui.olive.buttons .button:active {\n background-color: #8d9e13;\n color: #fff;\n text-shadow: none;\n}\n.ui.olive.active.button,\n.ui.olive.button .active.button:active,\n.ui.olive.buttons .active.button,\n.ui.olive.buttons .active.button:active {\n background-color: #aac109;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.olive.button,\n.ui.basic.olive.buttons .button {\n box-shadow: 0 0 0 1px #b5cc18 inset!important;\n color: #b5cc18!important;\n}\n.ui.basic.olive.button:hover,\n.ui.basic.olive.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #a7bd0d inset!important;\n color: #a7bd0d!important;\n}\n.ui.basic.olive.button:focus,\n.ui.basic.olive.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #a0b605 inset!important;\n color: #a7bd0d!important;\n}\n.ui.basic.olive.active.button,\n.ui.basic.olive.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #aac109 inset!important;\n color: #8d9e13!important;\n}\n.ui.basic.olive.button:active,\n.ui.basic.olive.buttons .button:active {\n box-shadow: 0 0 0 1px #8d9e13 inset!important;\n color: #8d9e13!important;\n}\n.ui.buttons:not(.vertical)>.basic.olive.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.inverted.olive.button,\n.ui.inverted.olive.buttons .button {\n background-color: transparent;\n box-shadow: 0 0 0 2px #d9e778 inset!important;\n color: #d9e778;\n}\n.ui.inverted.olive.button.active,\n.ui.inverted.olive.button:active,\n.ui.inverted.olive.button:focus,\n.ui.inverted.olive.button:hover,\n.ui.inverted.olive.buttons .button.active,\n.ui.inverted.olive.buttons .button:active,\n.ui.inverted.olive.buttons .button:focus,\n.ui.inverted.olive.buttons .button:hover {\n box-shadow: none!important;\n color: rgba(0,0,0,.6);\n}\n.ui.inverted.olive.button:hover,\n.ui.inverted.olive.buttons .button:hover {\n background-color: #d8ea5c;\n}\n.ui.inverted.olive.button:focus,\n.ui.inverted.olive.buttons .button:focus {\n background-color: #daef47;\n}\n.ui.inverted.olive.active.button,\n.ui.inverted.olive.buttons .active.button {\n background-color: #daed59;\n}\n.ui.inverted.olive.button:active,\n.ui.inverted.olive.buttons .button:active {\n background-color: #cddf4d;\n}\n.ui.inverted.olive.basic.button,\n.ui.inverted.olive.basic.buttons .button,\n.ui.inverted.olive.buttons .basic.button {\n background-color: transparent;\n box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n color: #fff!important;\n}\n.ui.inverted.olive.basic.button:hover,\n.ui.inverted.olive.basic.buttons .button:hover,\n.ui.inverted.olive.buttons .basic.button:hover {\n box-shadow: 0 0 0 2px #d8ea5c inset!important;\n color: #d9e778!important;\n}\n.ui.inverted.olive.basic.button:focus,\n.ui.inverted.olive.basic.buttons .button:focus {\n box-shadow: 0 0 0 2px #daef47 inset!important;\n color: #d9e778!important;\n}\n.ui.inverted.olive.basic.active.button,\n.ui.inverted.olive.basic.buttons .active.button,\n.ui.inverted.olive.buttons .basic.active.button {\n box-shadow: 0 0 0 2px #daed59 inset!important;\n color: #d9e778!important;\n}\n.ui.inverted.olive.basic.button:active,\n.ui.inverted.olive.basic.buttons .button:active,\n.ui.inverted.olive.buttons .basic.button:active {\n box-shadow: 0 0 0 2px #cddf4d inset!important;\n color: #d9e778!important;\n}\n.ui.yellow.button,\n.ui.yellow.buttons .button {\n background-color: #fbbd08;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.yellow.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.yellow.button:hover,\n.ui.yellow.buttons .button:hover {\n background-color: #eaae00;\n color: #fff;\n text-shadow: none;\n}\n.ui.yellow.button:focus,\n.ui.yellow.buttons .button:focus {\n background-color: #daa300;\n color: #fff;\n text-shadow: none;\n}\n.ui.yellow.button:active,\n.ui.yellow.buttons .button:active {\n background-color: #cd9903;\n color: #fff;\n text-shadow: none;\n}\n.ui.yellow.active.button,\n.ui.yellow.button .active.button:active,\n.ui.yellow.buttons .active.button,\n.ui.yellow.buttons .active.button:active {\n background-color: #eaae00;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.yellow.button,\n.ui.basic.yellow.buttons .button {\n box-shadow: 0 0 0 1px #fbbd08 inset!important;\n color: #fbbd08!important;\n}\n.ui.basic.yellow.button:hover,\n.ui.basic.yellow.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #eaae00 inset!important;\n color: #eaae00!important;\n}\n.ui.basic.yellow.button:focus,\n.ui.basic.yellow.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #daa300 inset!important;\n color: #eaae00!important;\n}\n.ui.basic.yellow.active.button,\n.ui.basic.yellow.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #eaae00 inset!important;\n color: #cd9903!important;\n}\n.ui.basic.yellow.button:active,\n.ui.basic.yellow.buttons .button:active {\n box-shadow: 0 0 0 1px #cd9903 inset!important;\n color: #cd9903!important;\n}\n.ui.buttons:not(.vertical)>.basic.yellow.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.inverted.yellow.button,\n.ui.inverted.yellow.buttons .button {\n background-color: transparent;\n box-shadow: 0 0 0 2px #ffe21f inset!important;\n color: #ffe21f;\n}\n.ui.inverted.yellow.button.active,\n.ui.inverted.yellow.button:active,\n.ui.inverted.yellow.button:focus,\n.ui.inverted.yellow.button:hover,\n.ui.inverted.yellow.buttons .button.active,\n.ui.inverted.yellow.buttons .button:active,\n.ui.inverted.yellow.buttons .button:focus,\n.ui.inverted.yellow.buttons .button:hover {\n box-shadow: none!important;\n color: rgba(0,0,0,.6);\n}\n.ui.inverted.yellow.button:hover,\n.ui.inverted.yellow.buttons .button:hover {\n background-color: #ffdf05;\n}\n.ui.inverted.yellow.button:focus,\n.ui.inverted.yellow.buttons .button:focus {\n background-color: #f5d500;\n}\n.ui.inverted.yellow.active.button,\n.ui.inverted.yellow.buttons .active.button {\n background-color: #ffdf05;\n}\n.ui.inverted.yellow.button:active,\n.ui.inverted.yellow.buttons .button:active {\n background-color: #ebcd00;\n}\n.ui.inverted.yellow.basic.button,\n.ui.inverted.yellow.basic.buttons .button,\n.ui.inverted.yellow.buttons .basic.button {\n background-color: transparent;\n box-shadow: 0 0 0 2px rgba(255,255,255,.5) inset!important;\n color: #fff!important;\n}\n.ui.inverted.yellow.basic.button:hover,\n.ui.inverted.yellow.basic.buttons .button:hover,\n.ui.inverted.yellow.buttons .basic.button:hover {\n box-shadow: 0 0 0 2px #ffdf05 inset!important;\n color: #ffe21f!important;\n}\n.ui.inverted.yellow.basic.button:focus,\n.ui.inverted.yellow.basic.buttons .button:focus {\n box-shadow: 0 0 0 2px #f5d500 inset!important;\n color: #ffe21f!important;\n}\n.ui.inverted.yellow.basic.active.button,\n.ui.inverted.yellow.basic.buttons .active.button,\n.ui.inverted.yellow.buttons .basic.active.button {\n box-shadow: 0 0 0 2px #ffdf05 inset!important;\n color: #ffe21f!important;\n}\n.ui.inverted.yellow.basic.button:active,\n.ui.inverted.yellow.basic.buttons .button:active,\n.ui.inverted.yellow.buttons .basic.button:active {\n box-shadow: 0 0 0 2px #ebcd00 inset!important;\n color: #ffe21f!important;\n}\n.ui.primary.button,\n.ui.primary.buttons .button {\n background-color: #2185d0;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.primary.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.primary.button:hover,\n.ui.primary.buttons .button:hover {\n background-color: #1678c2;\n color: #fff;\n text-shadow: none;\n}\n.ui.primary.button:focus,\n.ui.primary.buttons .button:focus {\n background-color: #0d71bb;\n color: #fff;\n text-shadow: none;\n}\n.ui.primary.button:active,\n.ui.primary.buttons .button:active {\n background-color: #1a69a4;\n color: #fff;\n text-shadow: none;\n}\n.ui.primary.active.button,\n.ui.primary.button .active.button:active,\n.ui.primary.buttons .active.button,\n.ui.primary.buttons .active.button:active {\n background-color: #1279c6;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.primary.button,\n.ui.basic.primary.buttons .button {\n box-shadow: 0 0 0 1px #2185d0 inset!important;\n color: #2185d0!important;\n}\n.ui.basic.primary.button:hover,\n.ui.basic.primary.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #1678c2 inset!important;\n color: #1678c2!important;\n}\n.ui.basic.primary.button:focus,\n.ui.basic.primary.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #0d71bb inset!important;\n color: #1678c2!important;\n}\n.ui.basic.primary.active.button,\n.ui.basic.primary.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #1279c6 inset!important;\n color: #1a69a4!important;\n}\n.ui.basic.primary.button:active,\n.ui.basic.primary.buttons .button:active {\n box-shadow: 0 0 0 1px #1a69a4 inset!important;\n color: #1a69a4!important;\n}\n.ui.buttons:not(.vertical)>.basic.primary.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.secondary.button,\n.ui.secondary.buttons .button {\n background-color: #1b1c1d;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.secondary.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.secondary.button:hover,\n.ui.secondary.buttons .button:hover {\n background-color: #27292a;\n color: #fff;\n text-shadow: none;\n}\n.ui.secondary.button:focus,\n.ui.secondary.buttons .button:focus {\n background-color: #2e3032;\n color: #fff;\n text-shadow: none;\n}\n.ui.secondary.button:active,\n.ui.secondary.buttons .button:active {\n background-color: #343637;\n color: #fff;\n text-shadow: none;\n}\n.ui.secondary.active.button,\n.ui.secondary.button .active.button:active,\n.ui.secondary.buttons .active.button,\n.ui.secondary.buttons .active.button:active {\n background-color: #27292a;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.secondary.button,\n.ui.basic.secondary.buttons .button {\n box-shadow: 0 0 0 1px #1b1c1d inset!important;\n color: #1b1c1d!important;\n}\n.ui.basic.secondary.button:hover,\n.ui.basic.secondary.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #27292a inset!important;\n color: #27292a!important;\n}\n.ui.basic.secondary.button:focus,\n.ui.basic.secondary.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #2e3032 inset!important;\n color: #27292a!important;\n}\n.ui.basic.secondary.active.button,\n.ui.basic.secondary.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #27292a inset!important;\n color: #343637!important;\n}\n.ui.basic.secondary.button:active,\n.ui.basic.secondary.buttons .button:active {\n box-shadow: 0 0 0 1px #343637 inset!important;\n color: #343637!important;\n}\n.ui.buttons:not(.vertical)>.basic.primary.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.positive.button,\n.ui.positive.buttons .button {\n background-color: #21ba45;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.positive.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.positive.button:hover,\n.ui.positive.buttons .button:hover {\n background-color: #16ab39;\n color: #fff;\n text-shadow: none;\n}\n.ui.positive.button:focus,\n.ui.positive.buttons .button:focus {\n background-color: #0ea432;\n color: #fff;\n text-shadow: none;\n}\n.ui.positive.button:active,\n.ui.positive.buttons .button:active {\n background-color: #198f35;\n color: #fff;\n text-shadow: none;\n}\n.ui.positive.active.button,\n.ui.positive.button .active.button:active,\n.ui.positive.buttons .active.button,\n.ui.positive.buttons .active.button:active {\n background-color: #13ae38;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.positive.button,\n.ui.basic.positive.buttons .button {\n box-shadow: 0 0 0 1px #21ba45 inset!important;\n color: #21ba45!important;\n}\n.ui.basic.positive.button:hover,\n.ui.basic.positive.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #16ab39 inset!important;\n color: #16ab39!important;\n}\n.ui.basic.positive.button:focus,\n.ui.basic.positive.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #0ea432 inset!important;\n color: #16ab39!important;\n}\n.ui.basic.positive.active.button,\n.ui.basic.positive.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #13ae38 inset!important;\n color: #198f35!important;\n}\n.ui.basic.positive.button:active,\n.ui.basic.positive.buttons .button:active {\n box-shadow: 0 0 0 1px #198f35 inset!important;\n color: #198f35!important;\n}\n.ui.buttons:not(.vertical)>.basic.primary.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.negative.button,\n.ui.negative.buttons .button {\n background-color: #db2828;\n color: #fff;\n text-shadow: none;\n background-image: none;\n}\n.ui.negative.button {\n box-shadow: 0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.negative.button:hover,\n.ui.negative.buttons .button:hover {\n background-color: #d01919;\n color: #fff;\n text-shadow: none;\n}\n.ui.negative.button:focus,\n.ui.negative.buttons .button:focus {\n background-color: #ca1010;\n color: #fff;\n text-shadow: none;\n}\n.ui.negative.button:active,\n.ui.negative.buttons .button:active {\n background-color: #b21e1e;\n color: #fff;\n text-shadow: none;\n}\n.ui.negative.active.button,\n.ui.negative.button .active.button:active,\n.ui.negative.buttons .active.button,\n.ui.negative.buttons .active.button:active {\n background-color: #d41515;\n color: #fff;\n text-shadow: none;\n}\n.ui.basic.negative.button,\n.ui.basic.negative.buttons .button {\n box-shadow: 0 0 0 1px #db2828 inset!important;\n color: #db2828!important;\n}\n.ui.basic.negative.button:hover,\n.ui.basic.negative.buttons .button:hover {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #d01919 inset!important;\n color: #d01919!important;\n}\n.ui.basic.negative.button:focus,\n.ui.basic.negative.buttons .button:focus {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #ca1010 inset!important;\n color: #d01919!important;\n}\n.ui.basic.negative.active.button,\n.ui.basic.negative.buttons .active.button {\n background: 0 0!important;\n box-shadow: 0 0 0 1px #d41515 inset!important;\n color: #b21e1e!important;\n}\n.ui.basic.negative.button:active,\n.ui.basic.negative.buttons .button:active {\n box-shadow: 0 0 0 1px #b21e1e inset!important;\n color: #b21e1e!important;\n}\n.ui.buttons:not(.vertical)>.basic.primary.button:not(:first-child) {\n margin-left: -1px;\n}\n.ui.buttons {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n font-size: 0;\n vertical-align: baseline;\n margin: 0 .25em 0 0;\n}\n.ui.buttons:not(.basic):not(.inverted) {\n box-shadow: none;\n}\n.ui.buttons:after {\n content: ".";\n display: block;\n height: 0;\n clear: both;\n visibility: hidden;\n}\n.ui.buttons .button {\n -webkit-box-flex: 1;\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n margin: 0;\n border-radius: 0;\n margin: 0;\n}\n.ui.buttons:not(.basic):not(.inverted)>.button,\n.ui.buttons>.ui.button:not(.basic):not(.inverted) {\n box-shadow: 0 0 0 1px transparent inset,0 0 0 0 rgba(34,36,38,.15) inset;\n}\n.ui.buttons .button:first-child {\n border-left: none;\n margin-left: 0;\n border-top-left-radius: .28571429rem;\n border-bottom-left-radius: .28571429rem;\n}\n.ui.buttons .button:last-child {\n border-top-right-radius: .28571429rem;\n border-bottom-right-radius: .28571429rem;\n}\n.ui.vertical.buttons {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.ui.vertical.buttons .button {\n display: block;\n float: none;\n width: 100%;\n margin: 0;\n box-shadow: none;\n border-radius: 0;\n}\n.ui.vertical.buttons .button:first-child {\n border-top-left-radius: .28571429rem;\n border-top-right-radius: .28571429rem;\n}\n.ui.vertical.buttons .button:last-child {\n margin-bottom: 0;\n border-bottom-left-radius: .28571429rem;\n border-bottom-right-radius: .28571429rem;\n}\n.ui.vertical.buttons .button:only-child {\n border-radius: .28571429rem;\n}\n/*!\r\n * # Range slider for Semantic UI.\r\n * \r\n */\n.ui.range {\n width: 100%;\n height: 20px;\n}\n.ui.range .inner {\n margin: 0 10px 0 10px;\n height: 20px;\n position: relative;\n}\n.ui.range .inner:hover {\n cursor: pointer;\n}\n.ui.range .inner .track {\n position: absolute;\n width: 100%;\n height: 4px;\n border-radius: 4px;\n top: 9px;\n left: 0;\n background-color: rgba(0,0,0,.05);\n}\n.ui.inverted.range .inner .track {\n background-color: rgba(255,255,255,.08);\n}\n.ui.range .inner .track-fill {\n position: absolute;\n width: 0;\n height: 4px;\n border-radius: 4px;\n top: 9px;\n left: 0;\n background-color: #1b1c1d;\n}\n.ui.inverted.range .inner .track-fill {\n background-color: #545454;\n}\n.ui.range .inner .thumb {\n position: absolute;\n top: 0;\n left: 0;\n height: 20px;\n width: 20px;\n background: #fff linear-gradient(transparent, rgba(0, 0, 0, 0.05));\n background: #fff -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.05));\n background: #fff -o-linear-gradient(transparent, rgba(0, 0, 0, 0.05));\n background: #fff -moz-linear-gradient(transparent, rgba(0, 0, 0, 0.05));\n border-radius: 100%;\n box-shadow: 0 1px 2px 0 rgba(34,36,38,.15),0 0 0 1px rgba(34,36,38,.15) inset;\n}\n/*--------------\r\n Colors\r\n---------------*/\n/* Red */\n.ui.red.range .inner .track-fill {\n background-color: #DB2828;\n}\n.ui.red.inverted.range .inner .track-fill {\n background-color: #FF695E;\n}\n/* Orange */\n.ui.orange.range .inner .track-fill {\n background-color: #F2711C;\n}\n.ui.orange.inverted.range .inner .track-fill {\n background-color: #FF851B;\n}\n/* Yellow */\n.ui.yellow.range .inner .track-fill {\n background-color: #FBBD08;\n}\n.ui.yellow.inverted.range .inner .track-fill {\n background-color: #FFE21F;\n}\n/* Olive */\n.ui.olive.range .inner .track-fill {\n background-color: #B5CC18;\n}\n.ui.olive.inverted.range .inner .track-fill {\n background-color: #D9E778;\n}\n/* Green */\n.ui.green.range .inner .track-fill {\n background-color: #21BA45;\n}\n.ui.green.inverted.range .inner .track-fill {\n background-color: #2ECC40;\n}\n/* Teal */\n.ui.teal.range .inner .track-fill {\n background-color: #00B5AD;\n}\n.ui.teal.inverted.range .inner .track-fill {\n background-color: #6DFFFF;\n}\n/* Blue */\n.ui.blue.range .inner .track-fill {\n background-color: #2185D0;\n}\n.ui.blue.inverted.range .inner .track-fill {\n background-color: #54C8FF;\n}\n/* Violet */\n.ui.violet.range .inner .track-fill {\n background-color: #6435C9;\n}\n.ui.violet.inverted.range .inner .track-fill {\n background-color: #A291FB;\n}\n/* Purple */\n.ui.purple.range .inner .track-fill {\n background-color: #A333C8;\n}\n.ui.purple.inverted.range .inner .track-fill {\n background-color: #DC73FF;\n}\n/* Pink */\n.ui.pink.range .inner .track-fill {\n background-color: #E03997;\n}\n.ui.pink.inverted.range .inner .track-fill {\n background-color: #FF8EDF;\n}\n/* Brown */\n.ui.brown.range .inner .track-fill {\n background-color: #A5673F;\n}\n.ui.brown.inverted.range .inner .track-fill {\n background-color: #D67C1C;\n}\n/* Grey */\n.ui.grey.range .inner .track-fill {\n background-color: #767676;\n}\n.ui.grey.inverted.range .inner .track-fill {\n background-color: #DCDDDE;\n}\n/* Black */\n.ui.black.range .inner .track-fill {\n background-color: #1b1c1d;\n}\n.ui.black.inverted.range .inner .track-fill {\n background-color: #545454;\n}\n/*--------------\r\n Disabled\r\n---------------*/\n.ui.range.disabled {\n opacity: .5;\n}\n.ui.range.disabled .inner:hover {\n cursor: auto;\n}\n.ui.range.disabled .inner .track-fill {\n background: #ccc;\n}\n/* padding so that track headers do not interfere with arrows */\n.up_pftv_track-header,\n.up_pftv_category-name {\n padding-right: 25px;\n}\n.pv-inner-container {\n width: 100%;\n height: 100%;\n overflow-x: auto;\n position: relative;\n /*white-space: nowrap;*/\n}\n.pv-inner-container .logo {\n position: absolute;\n z-index: 1000;\n left: 5px;\n top: 4px;\n font-size: 13px;\n font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n background-color: whitesmoke;\n /*font-weight: bold;*/\n /*padding: 5px;*/\n /*border-radius: 5px;*/\n}\n.pv-inner-container .logo a {\n text-decoration: none;\n}\n.pv3d-pv {\n height: 100%;\n /*min-width: 400px;*/\n}\n.pv3d-lm {\n /*min-width: 400px;*/\n}\n.pv3d-invisible {\n display: none;\n}\n.pv3d-div-table {\n display: table;\n}\n.pv3d-div-table-column {\n display: table-row;\n}\n.pv3d-div-table-column {\n display: table-column;\n}\n.pv3d-svg-icon {\n fill: rgba(0, 0, 0, 0.5);\n cursor: pointer !important;\n}\n.up_pftv_container .pv3d-svg-icon {\n position: absolute;\n}\n.up_pftv_container .pv3d-svg-icon.selected {\n fill: rgba(0, 0, 0, 1);\n}\n.pv3d-lm-transparency-slider {\n width: 100%;\n}\n.pv3d-header {\n position: absolute;\n z-index: 100;\n padding-top: 5px;\n padding-bottom: 3px;\n border-bottom: 1px dotted lightgray;\n margin-bottom: 3px;\n}\n.pv3d-header * {\n vertical-align: middle;\n box-sizing: border-box;\n}\n.pv3d-header .label {\n font-size: 13px;\n}\n.pv3d-header-pv,\n.pv3d-header-lm {\n display: inline-block;\n width: 100%;\n}\n.pv3d-header-pv {\n text-align: right;\n background-color: white;\n}\n.pv3d-content.pv-container {\n width: 100%;\n position: absolute;\n}\n.pv3d-content.lm-container {\n width: 50%;\n position: absolute;\n top: 0;\n}\n.pv3d-footer {\n padding-left: 5px;\n padding-right: 5px;\n}\n.pv3d-header,\n.pv3d-footer {\n font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n font-size: 13px;\n font-style: normal;\n font-variant: normal;\n font-weight: 500;\n box-sizing: border-box;\n}\n.pv3d-header-pv .unp-link {\n display: inline-block;\n float: right;\n}\n.pv3d-header-lm .lm-list {\n display: inline-block;\n}\n/* !IMPORTANT needed to overwrite the semantics ui styles*/\n.pv3d-header-lm .dropdown input {\n padding-top: 4px !important;\n padding-bottom: 4px !important;\n}\n.pv3d-header-lm .dropdown.icon {\n top: 4px !important;\n}\n.pv3d-header-lm .selection.dropdown {\n min-height: 0;\n min-width: 95px;\n padding-top: 4px;\n padding-bottom: 4px;\n line-height: 13px;\n}\n.pv3d-header-lm .selection.dropdown .menu>.item {\n font-size: 13px;\n}\n.pv3d-header-lm .confidence {\n padding-top: 4px;\n padding-bottom: 4px;\n font-size: 13px;\n line-height: 13px;\n display: none;\n}\n.pv3d-header-lm .pv3d-svg-icon {\n position: relative;\n height: 25px;\n width: 25px;\n /* IE needs both width and height */\n fill: #c2c2c2;\n display: inline;\n /* For example vuetify sets display:block for all svg elements which causes the arrows to be placed in separate rows making the header three times as high as it should be */\n}\n.pv3d-header .pdb-link {\n display: inline-block;\n left: 0;\n}\n.pv3d-pv {\n position: relative;\n display: inline-block;\n vertical-align: top;\n width: calc(50% - 2px);\n}\n.pv3d-split-bar {\n vertical-align: top;\n height: 100%;\n display: inline-block;\n width: 4px;\n background: transparent;\n cursor: col-resize;\n}\n.pv3d-lm {\n vertical-align: top;\n position: relative;\n display: inline-block;\n width: calc(50% - 2px);\n height: 100%;\n top: 0;\n}\n.pv3d-content .lm-component-container {\n position: relative;\n}\n.pv3d-footer .pv3d-lm-transparency-slider {\n vertical-align: middle;\n}\n.pv3d-pv-bars {\n position: absolute;\n top: 0;\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n}\n.pv3d-pv-structure-bar,\n.pv3d-pv-highlight-bar {\n position: absolute;\n top: 0;\n height: 100%;\n display: none;\n}\n.pv3d-pv-highlight-bar {\n background-color: rgba(255, 255, 0, 0.5);\n}\n.pv3d-pv-structure-bar {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.message-container {\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8);\n z-index: 1000;\n color: white;\n text-align: center;\n display: none;\n}\n.message {\n position: relative;\n top: 50%;\n font-weight: bold;\n}\n.ui.range .inner .thumb {\n width: 15px;\n height: 15px;\n top: 2.5px;\n}\n.pv3d-button {\n font-size: 17px;\n /*padding-top: 2px;*/\n background: rgba(0, 0, 0, 0.2);\n cursor: pointer;\n width: 23px;\n height: 23px;\n border-radius: 3px;\n text-align: center;\n}\n.pv3d-button:hover {\n background: rgba(0, 0, 0, 0.4);\n}\n.pv3d-download {\n float: right;\n padding-top: 3px;\n margin-right: 10px;\n}\n.user-highlights {\n /*float: right;*/\n padding-top: 3px;\n margin-right: 10px;\n background-color: rgba(50,50,50,0.3);\n}\n.pv3d-download>svg {\n width: 13px;\n height: 13px;\n}\n.pv3d-download>svg path {\n fill: rgba(0, 0, 0, 0.6);\n}\n.pv3d-download>svg:hover path {\n fill: rgba(0, 0, 0, 1);\n}\n.pv3d-error-close-button {\n color: #f6f5f3;\n font-sze: 20px;\n position: absolute;\n right: 10px;\n text-decoration: none;\n top: 10px;\n}\n.pv3d-error-close-button:after {\n content: \'✖\';\n /* UTF-8 symbol */\n}\n.pv3d-lm .user-highlights div.item.selected {\n font-weight: bold;\n}\n.pv3d-loader-container {\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n color: white;\n text-align: center;\n}\n.pv3d-loader {\n position: absolute;\n top: 50%;\n left: 50%;\n margin-left: -50px;\n margin-top: -50px;\n border: 16px solid #f3f3f3;\n /* Light grey */\n border-top: 16px solid #3498db;\n /* Blue */\n border-radius: 50%;\n width: 120px;\n height: 120px;\n animation: pv3d-spin 2s linear infinite;\n}\n@keyframes pv3d-spin {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n.up_pftv_category-name {\n vertical-align: inherit;\n}\n.center-items {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n'; + t('browserify-css').createStyle( + r, + { href: 'src\\css\\styles.css' }, + { insertAt: 'bottom' }, + ), + (e.exports = r); + }, + { 'browserify-css': 24 }, + ], + 76: [ + function (t, e, n) { + 'use strict'; + var g, m; + (g = jQuery), + window, + (m = document), + (g.fn.range = function (h) { + var t = g(this), + p = h, + d = 'string' == typeof p, + f = [].slice.call(arguments, 1); + return ( + t.each(function () { + var l, + e, + n, + i, + u = g.isPlainObject(h) + ? g.extend(!0, {}, g.fn.range.settings, h) + : g.extend({}, g.fn.range.settings), + t = u.namespace, + o = (u.min, u.max, u.step), + r = (u.start, u.input, 'module-' + t), + a = g(this), + c = this, + s = a.data(r), + A = { + initialize: function () { + A.instantiate(), A.sanitize(); + }, + instantiate: function () { + (s = A), + a.data(r, A), + g(c).html( + "<div class='inner'><div class='track'></div><div class='track-fill'></div><div class='thumb'></div></div>", + ), + (l = g(c).children('.inner')[0]), + (e = g(c).find('.thumb')[0]), + (n = g(c).find('.track-fill')[0]), + A.determinePrecision(), + A.setValuePosition(u.start), + g(c) + .find('.track, .thumb, .inner') + .on('mousedown', function (t) { + t.stopImmediatePropagation(), + t.preventDefault(), + g(this).closest('.range').trigger('mousedown', t); + }), + g(c) + .find('.track, .thumb, .inner') + .on('touchstart', function (t) { + t.stopImmediatePropagation(), + t.preventDefault(), + g(this).closest('.range').trigger('touchstart', t); + }), + g(c).on('mousedown', function (t, e) { + A.rangeMousedown(t, !1, e); + }), + g(c).on('touchstart', function (t, e) { + A.rangeMousedown(t, !0, e); + }); + }, + sanitize: function () { + 'number' != typeof u.min && (u.min = parseInt(u.min) || 0), + 'number' != typeof u.max && (u.max = parseInt(u.max) || !1), + 'number' != typeof u.start && (u.start = parseInt(u.start) || 0); + }, + determinePrecision: function () { + var t = String(u.step).split('.'), + t = 2 == t.length ? t[1].length : 0; + i = Math.pow(10, t); + }, + determineValue: function (t, e, n) { + var r = u.max - u.min, + n = Math.round((((n - t) / (e - t)) * r) / o) * o; + return Math.round(n * i) / i + u.min; + }, + determinePosition: function (t) { + t = (t - u.min) / (u.max - u.min); + return Math.round(t * g(l).width()) + g(n).position().left - 10; + }, + setValue: function (t, e) { + void 0 === e && (e = !0), + u.input && g(u.input).val(t), + u.onChange && u.onChange(t, { triggeredByUser: e }); + }, + setPosition: function (t) { + g(e).css({ left: String(t) + 'px' }), + g(n).css({ width: String(t + 10) + 'px' }); + }, + rangeMousedown: function (t, n, e) { + var r, i, o, a, s; + g(c).hasClass('disabled') || + (t.preventDefault(), + (r = g(l).offset().left), + (i = r + g(l).width()), + (o = (n ? e.originalEvent.touches[0] : void 0 !== t.pageX ? t : e).pageX), + (a = A.determineValue(r, i, o)), + r <= o && o <= i && (A.setPosition(o - r - 10), A.setValue(a)), + (s = function (t) { + t.preventDefault(), + (o = (n ? t.originalEvent.touches[0] : t).pageX), + (a = A.determineValue(r, i, o)), + r <= o && + o <= i && + a >= u.min && + a <= u.max && + (A.setPosition(o - r - 10), A.setValue(a)); + }), + (t = function t(e) { + n + ? (g(m).off('touchmove', s), g(m).off('touchend', t)) + : (g(m).off('mousemove', s), g(m).off('mouseup', t)); + }), + n + ? (g(m).on('touchmove', s), g(m).on('touchend', t)) + : (g(m).on('mousemove', s), g(m).on('mouseup', t))); + }, + setValuePosition: function (t, e) { + void 0 === e && (e = !0); + var n = A.determinePosition(t); + A.setPosition(n), A.setValue(t, e); + }, + invoke: function (t) { + 'set value' === t && 0 < f.length && s.setValuePosition(f[0], !1); + }, + }; + d ? (void 0 === s && A.initialize(), A.invoke(p)) : A.initialize(); + }), + this + ); + }), + (g.fn.range.settings = { + name: 'Range', + namespace: 'range', + min: 0, + max: !1, + step: 1, + start: 0, + input: !1, + onChange: function (t) {}, + }); + }, + {}, + ], + 77: [ + function (t, e, n) { + 'use strict'; + function Y(t, e) { + if (!(t instanceof e)) throw new TypeError('Cannot call a class as a function'); + } + var O = t('./lm.plugin.js'), + G = t('./settings'); + t('../node_modules/semantic-ui-transition/transition.min'), + t('../node_modules/semantic-ui-dropdown/dropdown.min'), + t('./lib/semantic-ui-range/range'); + e.exports = function () { + var c = O(), + u = + ((t.prototype.setPdbRecord = function (t) { + this.pdbRecord = t; + }), + (t.prototype.getPdbRecord = function () { + return this.pdbRecord; + }), + (t.prototype.setModelId = function (t) { + this.modelId = t; + }), + (t.prototype.getModelId = function () { + return this.modelId; + }), + (t.prototype.setSelectionId = function (t) { + this.selectionId = t; + }), + (t.prototype.getSelectionId = function () { + return this.selectionId; + }), + (t.prototype.setInteractiveHighlightsGroupId = function (t) { + this.interactiveHighlightsGroupId = t; + }), + (t.prototype.getInteractiveHighlightsGroupId = function () { + return this.interactiveHighlightsGroupId; + }), + (t.prototype.setSelectionGroupId = function (t) { + this.selectionGroupId = t; + }), + (t.prototype.getSelectionGroupId = function () { + return this.selectionGroupId; + }), + (t.prototype.setObservedResidues = function (t) { + this.observedResidues = t; + }), + (t.prototype.getObservedResidues = function () { + return this.observedResidues; + }), + (t.prototype.setUserHighlightVisualIds = function (t) { + this.userHighlightVisualIds = t; + }), + (t.prototype.getUserHighlightVisualIds = function () { + return this.userHighlightVisualIds; + }), + (t.prototype.setUserHighlightSelectionIds = function (t) { + this.userHighlightSelectionIds = t; + }), + (t.prototype.getUserHighlightSelectionIds = function () { + return this.userHighlightSelectionIds; + }), + t); + function t() { + Y(this, t), + (this.pdbRecord = void 0), + (this.modelId = void 0), + (this.selectionId = void 0), + (this.selectionGroupId = void 0), + (this.interactiveHighlightsGroupId = void 0), + (this.observedResidues = []), + (this.userHighlightVisualIds = []); + } + n.prototype.exportToPyMol = function () {}; + var U = n; + function n(t, e) { + Y(this, n), (this.selectionDef = t), (this.visualDef = e); + } + var A = void 0, + h = {}, + p = void 0, + d = {}; + function r(t) { + var e = []; + return ( + t.forEach(function (t) { + -1 === e.indexOf(t) && e.push(t); + }), + e + ); + } + function o(e) { + return r( + A.pdbRecords + .filter(function (t) { + return t.getPdbId() === e; + }) + .map(function (t) { + return t.getChainId(); + }), + ); + } + function i(t) { + var t = void 0 === t ? l() : t, + e = s(), + t = o(t).map(function (t) { + return { name: t, value: t }; + }); + 0 !== t.length && + ((t[0].selected = !0), + e.dropdown('change values', t), + s().dropdown('set selected', A.activeStructure.chainId)); + } + function e() { + var t = a(), + e = r( + A.pdbRecords.map(function (t) { + return t.getPdbId(); + }), + ).map(function (t) { + return { name: t, value: t }; + }); + (e[0].selected = !0), t.dropdown({ values: e, action: 'activate' }), i(); + } + function a() { + return A.container.find('.lm-pdb-id-list'); + } + function s() { + return A.container.find('.lm-pdb-chain-list'); + } + function f() { + return A.container.find('.user-highlights'); + } + function g(t) { + return $(f().find('div.item')[t]).hasClass('selected'); + } + function l() { + return a().find('.text').text(); + } + function m() { + return s().dropdown('get value'); + } + function v() { + return A.container.find('.pv3d-header-lm .pdb-link'); + } + function b() { + a().dropdown('setting', 'onChange', function (t, e, n) { + i(t); + }), + s().dropdown('setting', 'onChange', function (t) { + t && N(); + }); + } + function y() { + var t = v(), + e = (t.removeClass('pv3d-invisible'), A.activeStructure.record.getSource()); + 'PDB' === e + ? ((t[0].childNodes[0].nodeValue = 'PDB: '), + t.attr('href', 'https://www.ebi.ac.uk/pdbe/entry/pdb/' + A.activeStructure.pdbId), + t.find('.detail').text(A.activeStructure.pdbId)) + : 'SMR' === e + ? ((t[0].childNodes[0].nodeValue = 'SMR: '), + t.attr( + 'href', + 'https://swissmodel.expasy.org/repository/uniprot/' + A.uniprotId, + ), + t.find('.detail').text(A.uniprotId + ' (' + A.activeStructure.pdbId + ')')) + : 'AF' === e + ? ((t[0].childNodes[0].nodeValue = 'AF: '), + t.attr('href', 'https://alphafold.ebi.ac.uk/entry/' + A.uniprotId), + t.find('.detail').text(A.uniprotId + ' (' + A.activeStructure.pdbId + ')')) + : t.css('display', 'none'); + } + function w(t) { + for (var e = l(), n = a().find('.item'), r = void 0, i = 0; i < n.length; i++) + if (A.container.find(n[i]).attr('data-value') === e) { + r = i; + break; + } + var t = r + t; + 0 <= t && + t < n.length && + ((t = A.container.find(n[t]).attr('data-value')), + A.activeStructure.set(t, o(t)[0])); + } + function E(t) { + A.container + .find('.transparency-slider') + .attr('title', 'Surface transparency: ' + t + '%'); + } + function B(t) { + t.data && 0 < t.data.residues.length + ? (A.pv.highlightActivePosition(t.data.residues[0].seqNumber), + ((t = t.data.residues[0]).unpSeqNumber = A.activeStructure.record.mapPosPdbToUnp( + t.seqNumber, + )), + A.eventEmitter.emit('structureMouseOn', t)) + : (A.pv.dehighlightActivePosition(), A.eventEmitter.emit('structureMouseOff')); + } + function C() { + var t; + (t = G.lmInitSurfaceTransparency), + A.container.find('.transparency-slider').range({ + min: 0, + max: 100, + start: 2 * t, + onChange: function (t) { + R(parseFloat(t) / 100), E(t); + }, + }), + R(t / 100), + E(t), + b(), + A.container.find('.pv3d-header .shift-left').on('click', function () { + return w(-1); + }), + A.container.find('.pv3d-header .shift-right').on('click', function () { + return w(1); + }), + c.registerHighlightCallback(B); + } + function N() { + A.activeStructure.set(l(), m()); + } + function x() { + I && + (c.setAFConfidenceVisibility(h[p].getModelId(), A.afConfident), + _(h[p].getPdbRecord().getPdbId())); + } + var I = function () { + var t = h[p].getPdbRecord().getSource(); + return ( + A.opts.alphaFoldConfidence && + ('AF' === t || ('USER' == t && A.opts.alphaFoldConfidence.applyToUserStructures)) + ); + }; + function M(t) { + var e = h[t.getId()].getModelId(), + n = t.getChainId(), + r = c.getController().context.select(e)[0].props.model.data.residues.isHet, + i = c.getController().context.select(e)[0].props.model.data.residues.seqNumber, + o = c.getController().context.select(e)[0].props.model.data.residues.authAsymId; + t.setObservedResidues( + i.filter(function (t, e) { + return o[e] === n && !r[e]; + }), + ); + } + var D = function (t, e) { + return '' + G.interactiveSelectionPrefix + t + '-' + e; + }; + function S(i, o, e) { + var n, + t = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : void 0; + { + if (0 !== o.sequenceNumbers.length) + return ( + (n = []), + (t ? [t] : Object.keys(h)).forEach(function (r) { + var t = c + .createGroup( + 'interactive_highlights', + 'Interactive highlights', + h[r].getSelectionId(), + ) + .then(function (t) { + var e = D(r, i), + n = h[r]; + return c.createSelectionFromList({ + rootId: t, + name: e, + chainId: n.getPdbRecord().getChainId(), + sequenceNumbers: o.sequenceNumbers.map(function (t) { + return n.getPdbRecord().mapPosUnpToPdb(t); + }), + atomNames: o.atomNames, + selectionId: e, + }); + }) + .then(function (t) { + return c + .createVisual( + t, + { style: c.getStyleDefinition(e.type, e.params, e.color, e.alpha) }, + !0, + ) + .then(function () { + return c.hideEntityIfInHiddenModel(t); + }); + }); + n.push(t); + }), + Promise.all(n).then(function () { + d[i] = new U(o, e); + }) + ); + console.warn('Setting interative visual with empty selection.'); + } + } + function k(t) { + if (!(Object.keys(d).indexOf(t) < 0)) { + for (var e in h) c.removeEntity(D(e, t)); + delete d[t]; + } + } + function F(e) { + var t, + u = {}; + for (t in h) + (function (t) { + var a = h[t].getModelId(); + if ((a in u || (u[a] = []), !h[t].getPdbRecord())) return; + var s = h[t].getPdbRecord(), + l = s.getChainId(); + e.forEach(function (n) { + var r = s.mapPosUnpToPdb(n.seqBegin), + i = s.mapPosUnpToPdb(n.seqEnd), + o = n.boundary; + ((o && (s.isValidPdbPos(r) || s.isValidPdbPos(i))) || !o) && + (o + ? u[a].push({ + chainId: l, + begin: r, + end: i, + color: n.color, + boundaryOnly: o, + }) + : s.getObservedRanges().forEach(function (t) { + var e = s.mapPosStructToUnp(t.start.posPDBSequence), + t = s.mapPosStructToUnp(t.end.posPDBSequence); + n.seqEnd < e || + n.seqBegin > t || + ((r = Math.max(s.mapPosUnpToPdb(Math.max(n.seqBegin, e)), 0)), + (i = Math.min( + s.mapPosUnpToPdb(Math.min(n.seqEnd, t)), + s.getPdbEnd(), + )), + u[a].push({ + chainId: l, + begin: r, + end: i, + color: n.color, + boundaryOnly: o, + })); + })); + }), + (u[a] = u[a].concat([])); + })(t); + Object.keys(u).forEach(function (t) { + return c.colorSelections(t, u[t], [ + G.userSelectionPrefix, + G.interactiveSelectionPrefix, + ]); + }); + } + function Q() { + c.resetVisuals(G.userSelectionPrefix); + } + function _(t) { + var e, + n = []; + for (e in h) + h[e].getPdbRecord().getPdbId() === t && + (n = n.concat(h[e].getUserHighlightVisualIds())); + var r = A.afConfident; + f() + .find('div.item') + .each(function (e) { + A.opts.extraHighlights.content[e].visualIds && + A.opts.extraHighlights.content[e].visualIds.forEach(function (t) { + (void 0 === n || 0 <= n.indexOf(t)) && + (g(e) ? c.showSelectionVisual(t, r) : c.hideSelectionVisual(t, r)); + }); + }); + } + function T() { + c.dehighlightAll(); + } + function P() { + return c; + } + function R(t) { + return c.setSurfaceTransparency(t, G.userSelectionPrefix); + } + function L() { + var n, + l = f(); + A.opts.extraHighlights && + 0 < A.opts.extraHighlights.content.length && + A.opts.extraHighlights.controlVisibility + ? ((n = []), + A.opts.extraHighlights.content.forEach(function (t, e) { + n.push({ name: t.label, value: e }); + }), + l.dropdown({ + placeholder: A.opts.extraHighlights.label, + values: n, + action: 'hide', + onChange: function (n) { + var t = l.find('div.item').filter(function (t, e) { + return $(e).data('value') == n; + }); + if (t.length) { + t.toggleClass('selected'); + var e = n, + r = t.hasClass('selected'), + i = A.activeStructure.pdbId; + if (A.opts.extraHighlights.content[e].visualIds) { + var o, + a = A.afConfident, + s = []; + for (o in h) + h[o].getPdbRecord().getPdbId() == i && + (s = s.concat(h[o].getUserHighlightVisualIds())); + A.opts.extraHighlights.content[e].visualIds.forEach(function (t) { + 0 <= s.indexOf(t) && + (r ? c.showSelectionVisual(t, a) : c.hideSelectionVisual(t, a)); + }); + } + } + }, + }), + l.find('div.item').each(function (t, e) { + A.opts.extraHighlights.content[t].showOnStart && $(e).addClass('selected'); + }), + l.find('div.text').removeClass('default')) + : l.css('display', 'none'); + } + return { + initialize: function (t) { + (A = t.globals), + (t = A.opts).lmInitSurfaceTransparency && + (G.lmInitSurfaceTransparency = t.lmInitSurfaceTransparency), + c.initializePlugin(A), + L(), + 'pdbRecords' in A && e(), + C(); + }, + destroy: function () { + c.destroyPlugin(); + }, + loadRecord: function (i) { + var t, + n = + 1 < arguments.length && void 0 !== arguments[1] + ? arguments[1] + : { focus: !0, hideOthers: !0 }, + o = i.getId(); + if ((p = o) in h) + return ( + n.focus && c.focusSelection(h[o].getSelectionId()), + n.hideOthers && + c.hideModelsExcept([h[o].getModelId()]).then(function () { + return _(h[o].getPdbRecord().getPdbId()); + }), + ((t = i.getObservedResidues()) && 0 !== t.length) || M(i), + y(), + x(), + Promise.resolve() + ); + h[o] = new u(); + var e, + r, + a = void 0, + s = A.opts.extraHighlights ? A.opts.extraHighlights.content : [], + l = []; + return ( + (e = i), + (r = n.hideOthers), + c + .loadMolecule( + e.getPdbId(), + e.getSource(), + e.getFormat(), + e.getCoordinatesFile(), + A.opts.alphaFoldConfidence ? A.opts.alphaFoldConfidence.threshold : void 0, + ) + .then(function (t) { + return ( + h[e.getId()].setPdbRecord(e), + h[e.getId()].setModelId(t), + r ? c.hideModelsExcept([t]) : Promise.resolve() + ); + }) + .then(function () { + return y(), Promise.resolve(); + }) + .then(function () { + return M(i), Promise.resolve(); + }) + .then(function () { + return c.createGroup( + A.settings.pvMappedStructuresCat.name, + 'Uniprot mapping', + h[i.getId()].getModelId(), + ); + }) + .then(function (t) { + return ( + (t = t), + (n = + (e = i).getPdbId().toUpperCase() + + ':' + + e.getChainId() + + ' (' + + e.getPdbStart() + + '-' + + e.getPdbEnd() + + ')'), + c.createSelectionFromRange({ + rootId: t, + name: n, + chainId: e.getChainId(), + beginIx: e.getPdbStart(), + endIx: e.getPdbEnd(), + selectionId: t + '_' + n, + }) + ); + var e, n; + }) + .then(function (t) { + if (((a = t), 0 === c.getEntity(a).length)) + throw Error( + 'Invalid mapping (the structure file does not contain the selection)', + ); + return ( + h[o].setSelectionId(a), n.focus && c.focusSelection(a), c.createVisual(a) + ); + }) + .then(function (t) { + var e; + return I() + ? ((e = h[i.getId()].getModelId()), + c + .createVisualsForAFConfidence( + e, + t, + A.opts.alphaFoldConfidence.threshold, + ) + .then(x)) + : Promise.resolve(); + }) + .then(function () { + return c.createGroup('Selections', 'Selections', a); + }) + .then(function (r) { + h[o].setSelectionGroupId(r); + var t = s.map(function (t, e) { + var n = t.sequenceNumbers.join(); + return c.createSelectionFromList({ + rootId: r, + name: n, + chainId: i.getChainId(), + sequenceNumbers: t.sequenceNumbers.map(function (t) { + return i.mapPosUnpToPdb(t); + }), + atomNames: t.atomNames, + selectionId: '' + G.userSelectionPrefix + r + '_sel' + e, + }); + }); + return Promise.all(t); + }) + .then(function (t) { + return ( + h[o].setUserHighlightSelectionIds( + t.filter(function (t) { + return void 0 !== t; + }), + ), + (l = t), + I() + ? Promise.all( + t + .filter(function (t) { + return void 0 !== t; + }) + .map(function (t) { + return c.createSubSelectionForAFCofidence( + t, + A.opts.alphaFoldConfidence.threshold, + ); + }), + ).then(function () { + return t; + }) + : Promise.resolve(t) + ); + }) + .then(function (t) { + t = t.map(function (t, e) { + return void 0 !== t + ? c.createVisual( + t, + (n = { + style: c.getStyleDefinition( + s[e].visual.type, + s[e].visual.params, + s[e].visual.color, + s[e].visual.alpha, + ), + }), + I(), + ) + : Promise.resolve(void 0); + }); + return Promise.all(t); + }) + .then(function (t) { + var e = t.filter(function (t) { + return void 0 !== t; + }); + h[o].setUserHighlightVisualIds(e), + t.forEach(function (t, e) { + var n; + void 0 !== t && + ((n = l[e]), + (s[e].selectionId = n), + g(e) || !A.opts.extraHighlights.controlVisibility + ? c.showEntity(n, A.afConfident) + : c.hideEntity(n), + void 0 === s[e].visualIds && (s[e].visualIds = []), + s[e].visualIds.push(t)); + }); + }) + .then(function () { + Object.keys(d).forEach(function (t) { + var e = d[t]; + return S(t, e.selectionDef, e.visualDef, o); + }); + }) + ); + }, + mapFeatures: function (t, n) { + F( + t.map(function (t, e) { + return { + seqBegin: t.begin, + seqEnd: t.end, + color: { r: (e = (e = n[e]).split(/[(,)]/))[1], g: e[2], b: e[3] }, + boundary: 0 <= A.settings.boundaryFeatureTypes.indexOf(t.type), + }; + }), + ); + }, + unmapFeature: function (t) { + Q(); + }, + getPlugin: P, + highlightResidue: function (t) { + for (var e in (T(), h)) { + var n; + !h[e].getPdbRecord() || + ((n = h[e].getPdbRecord()).isInObservedRanges(t) && + c.highlightResidue(h[e].getModelId(), n.getChainId(), n.mapPosUnpToPdb(t))); + } + }, + focusResidue: function (t, e) { + for (var n in h) { + var r; + !h[n].getPdbRecord() || + ((r = h[n].getPdbRecord()).isInObservedRanges(t) && + c.focusResidue(h[n].getModelId(), r.getChainId(), r.mapPosUnpToPdb(t), e)); + } + }, + dehighlightAll: T, + moleculeLoaded: function () { + return c.moleculeLoaded(); + }, + setSurfaceTransparency: R, + populateHeaderPdbIds: e, + updateHeader: function () { + (A.activeStructure.pdbId === l() && A.activeStructure.chainId === m()) || + (a().dropdown('setting', 'onChange', function (t) {}), + s().dropdown('setting', 'onChange', function (t) {}), + l() !== A.activeStructure.pdbId && + a().dropdown('set selected', A.activeStructure.pdbId), + i(), + b()); + }, + registerCallbacksAndEvents: C, + showErrorMessage: function (t) { + (A.lmErrorMessageContainer.find('.message')[0].innerHTML = t), + A.lmErrorMessageContainer.css('display', 'block'); + }, + hideErrorMessage: function () { + A.lmErrorMessageContainer.css('display', 'none'); + }, + getAuthSeqNumber: function (t, e) { + var n = h[t.getId()].getModelId(); + return c.getAuthSeqNumber(n, t.getChainId(), e); + }, + getAuthSeqNumberRange: function (t, e, n) { + var r = h[t.getId()].getModelId(); + return c.getAuthSeqNumberRange(r, t.getChainId(), e, n); + }, + highlightRegion: function (t, e) { + F([{ seqBegin: t, seqEnd: e, color: G.colors.lmHighlight }]); + }, + highlightCallback: B, + resetVisuals: Q, + groupSelected: function () { + return 1 <= A.pvContainer.find('.pv3d-svg-icon.selected').length; + }, + setVisualInteractive: S, + clearVisualInteractive: k, + clearVisualInteractiveAll: function () { + Object.keys(d).forEach(k); + }, + getVisualsInteractive: function () { + return d; + }, + getHeaderPdbId: l, + getHeaderChainId: m, + getHeaderPdbIdList: a, + getHeaderPdbChainList: s, + getHeaderLinkContainer: v, + setAFConfidenceVisibility: x, + }; + }; + }, + { + '../node_modules/semantic-ui-dropdown/dropdown.min': 62, + '../node_modules/semantic-ui-transition/transition.min': 63, + './lib/semantic-ui-range/range': 76, + './lm.plugin.js': 78, + './settings': 82, + }, + ], + 78: [ + function (t, e, n) { + 'use strict'; + var C = + Object.assign || + function (t) { + for (var e = 1; e < arguments.length; e++) { + var n, + r = arguments[e]; + for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (t[n] = r[n]); + } + return t; + }; + function x(t) { + if (Array.isArray(t)) { + for (var e = 0, n = Array(t.length); e < t.length; e++) n[e] = t[e]; + return n; + } + return Array.from(t); + } + var r, + b, + y, + a, + w, + E, + B = t('color-blend'), + I = t('litemol').default, + M = + (t('./settings'), + t('browserify-css/config/jshint').globals, + (window.LiteMol = I), + t('./pdb.mapping.js').STRUCTURE_FORMAT), + D = + ((r = 0), + (b = I.Core), + (y = I.Visualization), + (a = I.Bootstrap), + (w = b.Structure.Query), + Object.defineProperty(i.prototype, 'colorMap', { + get: function () { + var n = b.Utils.FastMap.create(); + return ( + this.uniqueColors.forEach(function (t, e) { + return n.set(e, t); + }), + n + ); + }, + enumerable: !0, + configurable: !0, + }), + (i.prototype.addColor = function (t) { + var e = t.r + '-' + t.g + '-' + t.b; + if (this.map.has(e)) return this.map.get(e); + var n = this.uniqueColors.length; + return ( + this.uniqueColors.push(y.Color.fromRgb(t.r, t.g, t.b)), this.map.set(e, n), n + ); + }), + (E = i), + { + createTheme: function (t, e) { + for ( + var n, + r, + i = new E(), + o = (i.addColor(e.base), new Uint8Array(t.data.atoms.count)), + a = 0, + s = e.entries; + a < s.length; + a++ + ) + for ( + var l = s[a], + u = void 0, + u = ( + ('query' in l) + ? l.query + : l.boundaryOnly + ? w.or( + k( + l.entity_id.toString(), + { authAsymId: l.struct_asym_id }, + { seqNumber: l.start_residue_number }, + { seqNumber: l.start_residue_number }, + ), + k( + l.entity_id.toString(), + { authAsymId: l.struct_asym_id }, + { seqNumber: l.end_residue_number }, + { seqNumber: l.end_residue_number }, + ), + ) + : k( + l.entity_id.toString(), + { authAsymId: l.struct_asym_id }, + { seqNumber: l.start_residue_number }, + { seqNumber: l.end_residue_number }, + ) + ).compile(), + c = i.addColor(l.color), + A = 0, + h = u(t.queryContext).fragments; + A < h.length; + A++ + ) + for (var p = 0, d = h[A].atomIndices; p < d.length; p++) { + var f, + g = d[p], + m = c; + 0 != o[g] && + ((f = { + r: 255 * (f = i.uniqueColors[o[g]]).r, + g: 255 * f.g, + b: 255 * f.b, + }), + (m = i.addColor( + ((f = f), + (n = l.color), + (r = void 0) === r && (r = 0.2), + (f.a = 1), + (n.a = 1), + B.darken(f, n)), + ))), + (o[g] = m); + } + var e = { r: 0.6, g: 0.6, b: 0.6 }, + v = b.Utils.FastMap.create(), + e = + (v.set('Uniform', e), + v.set('Selection', { r: 0, g: 0, b: 1 }), + v.set('Highlight', { r: 1, g: 1, b: 0 }), + y.Theme.createColorMapMapping( + function (t) { + return o[t]; + }, + i.colorMap, + e, + )); + return y.Theme.createMapping(e, { colors: v, isSticky: !0 }); + }, + applyTheme: function (t, e, n) { + for ( + var r = 0, + i = t.selectEntities( + a.Tree.Selection.byRef(e).subtree().ofType(a.Entity.Molecule.Visual), + ); + r < i.length; + r++ + ) { + var o = i[r]; + t.command(a.Command.Visual.UpdateBasicTheme, { visual: o, theme: n }); + } + }, + }); + function i() { + (this.uniqueColors = []), (this.map = b.Utils.FastMap.create()); + } + var S = I.Core.Structure.Query; + function k(t, e, n, r, i) { + return S.Builder.build(function () { + return ( + (b = e), + (y = n), + (w = r), + (E = i), + function (t) { + for ( + var e = t.structure.data, + n = e.residues, + e = e.chains, + r = n.seqNumber, + i = n.atomStartIndex, + o = n.atomEndIndex, + a = (e.entityId, e.count), + s = e.residueStartIndex, + l = e.residueEndIndex, + u = new S.FragmentSeqBuilder(t), + c = t.structure.parent, + A = e.sourceChainIndex, + h = c && A, + p = new F('string' == typeof b ? { asymId: b } : b, h ? c.data.chains : e), + d = 0; + d < a; + d++ + ) + if (p.isSatisfied(h ? A[d] : d)) { + for (var f, g = s[d], m = l[d], v = -1; g < m; g++) + if (r[g] >= y.seqNumber) { + v = g; + break; + } + if (g !== m) { + for (g = v; g < m && !(r[g] >= w.seqNumber); g++); + (f = g), + t.hasRange(i[v], o[f]) && + (!n.isHet.reduce(function (t, e) { + return t && e; + }, !0) || + E) && + u.add(S.Fragment.ofIndexRange(t, i[v], o[f])); + } + } + return u.getSeq(); + } + ); + var b, y, w, E; + }); + } + o.prototype.isSatisfied = function (t) { + for (var e = 0, n = this.columns; e < n.length; e++) { + var r = n[e]; + if (r.value !== r.array[t]) return !1; + } + return !0; + }; + var F = o; + function o(t, e) { + this.columns = []; + for (var n = 0, r = Object.keys(t); n < r.length; n++) { + var i = r[n]; + void 0 !== t[i] && e[i] && this.columns.push({ value: t[i], array: e[i] }); + } + } + e.exports = function () { + return ( + (u = I = I || {}), + (p = { + surfaceTransparencyAlpha: 0.3, + modelPrefix: 'mod', + selectionPrefix: 'sel', + visualPrefix: 'vis', + groupPrefix: 'gr', + confidenceInfix: 'confidence', + }), + (d = void 0), + (c = {}), + u.Plugin.Views, + (f = u.Bootstrap), + (g = u.Core.Structure.Query), + (m = g.Algebraic), + (v = f.Entity.Transformer), + (o = f.Tree), + (b = o.Transform), + f.Components.LayoutRegion, + u.Visualization, + (i = f.Visualization), + (a = f.Command), + (n = f.Event), + (r = []), + (y = function () { + A(); + var t = i.Molecule.Default.ForType.get('Surface'); + return ( + (t.theme.transparency.alpha = p.surfaceTransparencyAlpha), + (t.theme.colors = t.theme.colors.set('Uniform', { r: 0.75, g: 0.75, b: 0.75 })), + t + ); + }), + (s = function (t) { + var e = t.rootId, + n = t.name, + r = t.chainId, + i = t.residues, + o = t.atomNames; + if (0 === i.length) return Promise.resolve(void 0); + A(); + var a = h(e)[0]; + if (!a) return Promise.reject('Non-existing entity'); + var s = i + .map(function (t) { + return '' + t.authAsymId + t.seqNumber; + }) + .join(''), + l = + void 0 !== t.selectionId + ? t.selectionId + : ((t = e), + (e = r), + (r = s), + p.selectionPrefix + + (t ? t + '-' : '') + + (e ? e + '-' : '') + + (r ? r + '-' : '')); + if (0 < h(l).length) return Promise.resolve(l); + s = g.residues.apply(null, i); + if (o && 0 < o.length) { + for (var u = m.equal(m.atomName, m.value(o[0])), c = 1; c < o.length; c++) + u = m.or(u, m.equal(m.atomName, m.value(o[c]))); + s = s.intersectWith(m.query(u)); + } + t = f.Tree.Transform.build().add( + a, + v.Molecule.CreateSelectionFromQuery, + { query: s, name: n }, + { ref: l, isBinding: !1 }, + ); + return d.applyTransform(t).then(function () { + return Promise.resolve(l); + }); + }), + (w = function (t, e) { + A(); + t = d.context.select(t)[0]; + f.Command.Entity.SetVisibility.dispatch(d.context, { entity: t, visible: e }); + }), + { + initializePlugin: function (t) { + var e = t.lmContainerId, + i = t.activeStructure, + o = t.opts.labelCallback; + d || + ((t = u.Plugin.getDefaultSpecification()), + o && + t.behaviours.push(function (t) { + t.highlight.addProvider(function (t) { + if (0 === t.kind) return null; + for ( + var e = t.elements[0], n = t.source; + 'M_M' != n.type.info.shortName; + + ) + n = n.parent; + var t = n.props.model.data.atoms, + r = { + authName: t.authName[e], + elementSymbol: t.elementSymbol[e], + name: t.name[e], + }, + t = t.residueIndex[e], + e = n.props.model.data.residues; + if (e.isHet[t]) return null; + (e = { + asymId: e.asymId[t], + authAsymId: e.authAsymId[t], + authName: e.authName[t], + authSeqNumber: e.authSeqNumber[t], + entityId: e.entityId[t], + name: e.name[t], + seqNumber: e.seqNumber[t], + }), + (e.unpSeqNumber = e.authSeqNumber), + (t = i.record.mapPosPdbToUnp(e.seqNumber)); + return o({ atomInfo: r, resInfo: e, unpPos: t }); + }); + }), + (d = u.Plugin.create({ + target: '#' + e, + viewportBackground: '#ffffff', + layoutState: { + collapsedControlsLayout: + u.Bootstrap.Components.CollapsedControlsLayout.Landscape, + hideControls: !0, + isExpanded: !1, + }, + allowAnalytics: !1, + customSpecification: t, + })), + n.Molecule.ModelHighlight.getStream(d.context).subscribe(function (e) { + r.forEach(function (t) { + t(e); + }); + })); + }, + destroyPlugin: function () { + A(), d.destroy(); + }, + loadMolecule: function (t, e, n, r, i) { + A(); + var o = p.modelPrefix + t, + a = l(o); + if (0 < h(o).length) return Promise.resolve(o); + var s = void 0; + if (n === M.mmCIF) s = u.Core.Formats.Molecule.SupportedFormats.mmCIF; + else { + if (n !== M.PDB) throw Error('Unsuported format of the structure file'); + s = u.Core.Formats.Molecule.SupportedFormats.PDB; + } + n = b + .build() + .add(d.context.tree.root, v.Data.Download, { url: r, type: 'String', id: t }) + .then(v.Molecule.CreateFromData, { format: s, customId: t }, { isBinding: !0 }) + .then(v.Molecule.CreateModel, { modelIndex: 0 }, { isBinding: !1, ref: o }) + .then(v.Molecule.CreateMacromoleculeVisual, { + polymer: !0, + polymerRef: a, + het: !0, + water: !0, + }); + return d.applyTransform(n).then(function () { + var t = h(a); + if (0 === t.length) + throw Error( + 'Litemol could not access or process the structure file <br/> (' + r + ')', + ); + return ( + (c[a] = C({}, t[0].props.model.theme, { isSticky: !0 })), Promise.resolve(o) + ); + }); + }, + registerHighlightCallback: function (t) { + r.push(t); + }, + highlightResidue: function (t, e, n) { + A(); + t = d.selectEntities(t)[0]; + t && + ((e = k(0, { authAsymId: e }, { seqNumber: n }, { seqNumber: n })), + a.Molecule.Highlight.dispatch(d.context, { model: t, query: e, isOn: !0 })); + }, + focusResidue: function (t, e, n, r) { + A(); + t = d.selectEntities(t)[0]; + t && + ((e = k( + 0, + { authAsymId: e }, + { seqNumber: n }, + { seqNumber: n }, + ).ambientResidues(r)), + a.Molecule.FocusQuery.dispatch(d.context, { model: t, query: e })); + }, + dehighlightAll: function () { + A(), + d + .selectEntities(o.Selection.subtree().ofType(f.Entity.Molecule.Model)) + .forEach(function (t) { + a.Molecule.Highlight.dispatch(d.context, { + model: t, + query: u.Core.Structure.Query.everything(), + isOn: !1, + }); + }); + }, + createSelectionFromRange: function (t) { + t.residues = []; + for (var e = t.beginIx; e <= t.endIx; e++) + t.residues.push({ authAsymId: t.chainId, seqNumber: e }); + return s(t); + }, + createSelectionFromList: function (e) { + return ( + (e.residues = e.sequenceNumbers.map(function (t) { + return { authAsymId: e.chainId, seqNumber: t }; + })), + s(e) + ); + }, + colorSelections: function (t, n) { + var r, + e, + l, + u, + c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : []; + A(), + 0 != n.length && + (t = d.selectEntities(t)[0]) && + ((r = []), + n.forEach(function (t) { + var e; + 'selectionId' in n[0] + ? 0 < (e = d.context.select(t.selectionId)).length && + r.push({ + query: e[0].transform.params.query, + color: { r: t.color.r, g: t.color.g, b: t.color.b }, + }) + : r.push({ + entity_id: '1', + struct_asym_id: t.chainId, + start_residue_number: t.begin, + end_residue_number: t.end, + boundaryOnly: t.boundaryOnly, + color: { r: t.color.r, g: t.color.g, b: t.color.b }, + }); + }), + (e = { base: { r: 192, g: 192, b: 192 }, entries: r }), + (l = D.createTheme(t.props.model, e)), + ((u = D.createTheme(t.props.model, e)).transparency = { + alpha: p.surfaceTransparencyAlpha, + }), + d + .selectEntities( + f.Tree.Selection.subtree(t).ofType(f.Entity.Molecule.Visual), + ) + .forEach(function (t) { + var e = !0, + n = !0, + r = !1, + i = void 0; + try { + for ( + var o, a = c[Symbol.iterator](); + !(n = (o = a.next()).done); + n = !0 + ) { + var s = o.value; + if (0 <= t.ref.search(s)) { + e = !1; + break; + } + } + } catch (t) { + (r = !0), (i = t); + } finally { + try { + !n && a.return && a.return(); + } finally { + if (r) throw i; + } + } + 0 == t.ref.search(p.visualPrefix) && + e && + ('Surface' === t.props.style.type + ? D.applyTheme(d, t.ref, u) + : D.applyTheme(d, t.ref, l)); + })); + }, + focusSelection: function (t) { + A(), a.Entity.Focus.dispatch(d.context, h(t)); + }, + hideModelsExcept: function (e) { + A(); + var n = []; + return ( + d + .selectEntities(f.Tree.Selection.subtree().ofType(f.Entity.Molecule.Model)) + .forEach(function (t) { + n.push( + f.Command.Entity.SetVisibility.dispatch(d.context, { + entity: t, + visible: 0 <= e.indexOf(t.ref), + }), + ); + }), + Promise.all(n) + ); + }, + hideEntity: (E = function (t) { + A(), w(t, !1); + }), + hideEntityIfInHiddenModel: function (t) { + for (var e = h(t)[0]; e.type.id != f.Entity.Molecule.Model.id; ) e = e.parent; + 0 < e.state.visibility && E(t); + }, + showEntity: (B = function (e) { + var t = !(1 < arguments.length && void 0 !== arguments[1]) || arguments[1]; + A(), + t + ? w(e, !0) + : d + .selectEntities(o.Selection.subtree().ofType(f.Entity.Molecule.Model)) + .forEach(function (t) { + t.ref.indexOf(p.confidenceInfix) < 0 && w(e, !0); + }); + }), + toggleEntity: function (t, e) { + A(); + t = h(t)[0]; + (t.state.isCollapsed && !1 === e) || + (!t.state.isCollapsed && !0 === e) || + d.command(u.Bootstrap.Command.Entity.ToggleExpanded, t); + }, + createGroup: function (t, e, n) { + A(); + var r = p.groupPrefix + t + '-' + n; + if (0 < h(r).length) return Promise.resolve(r); + n = f.Tree.Transform.build().add( + h(n)[0], + v.Basic.CreateGroup, + { label: t, description: e }, + { ref: r }, + ); + return d.applyTransform(n).then(function () { + return Promise.resolve(r); + }); + }, + removeEntity: function (t) { + A(); + t = h(t); + 0 < t.length && d.command(u.Bootstrap.Command.Tree.RemoveNode, t[0]); + }, + createVisual: function (e, t) { + var n = 2 < arguments.length && void 0 !== arguments[2] && arguments[2]; + if ((A(), 0 == h(e).length)) + return ( + console.warn('Trying to create visual for non-existing entity ' + e), + Promise.resolve(void 0) + ); + var r = y(), + i = (void 0 === t && (t = { style: r }), l(e)); + if (0 < h(i).length) return Promise.resolve(i); + var o = p.confidenceInfix + '-' + i, + r = h(e)[0], + a = void 0, + s = + (!n || + (0 < + (s = d + .selectEntities( + f.Tree.Selection.subtree(r).ofType(f.Entity.Molecule.Selection), + ) + .filter(function (t) { + return t.ref !== e; + })).length && + (a = s[0])), + f.Tree.Transform.build().add(r, v.Molecule.CreateVisual, t, { ref: i })); + return ( + n && a && s.add(a, v.Molecule.CreateVisual, t, { ref: o }), + d.applyTransform(s).then(function () { + return ( + (c[i] = C({}, h(i)[0].props.model.theme, { isSticky: !0 })), + n && a && (c[o] = C({}, h(o)[0].props.model.theme, { isSticky: !0 })), + i + ); + }) + ); + }, + resetVisuals: function () { + var t, + e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ''; + for (t in (A(), c)) { + var n, + r = h(t)[0]; + 0 <= r.ref.search(e) || + ((n = c[t]), + 'Surface' == r.props.style.type && + (n.transparency.alpha = p.surfaceTransparencyAlpha), + d.command(f.Command.Visual.UpdateBasicTheme, { visual: r, theme: n })); + } + }, + moleculeLoaded: function () { + return ( + A(), + 0 < + d.selectEntities(f.Tree.Selection.subtree().ofType(f.Entity.Molecule.Visual)) + .length + ); + }, + setSurfaceTransparency: function (t, n) { + A(), + (p.surfaceTransparencyAlpha = t), + d + .selectEntities(f.Tree.Selection.subtree().ofType(f.Entity.Molecule.Visual)) + .forEach(function (t) { + var e; + 'Surface' === t.props.style.type && + t.ref.search(n) < 0 && + (((e = C({}, t.props.model.theme, { isSticky: !0 })).transparency = { + alpha: p.surfaceTransparencyAlpha, + }), + D.applyTheme(d, t.ref, e)); + }); + }, + selectNodes: h, + getController: function () { + return d; + }, + getLiteMol: function () { + return u; + }, + getEntity: h, + getStyleDefinition: function (t, e, n, r) { + return { + type: t, + params: e, + theme: { + template: i.Molecule.Default.UniformThemeTemplate, + colors: i.Molecule.Default.UniformThemeTemplate.colors.set('Uniform', n), + transparency: { alpha: r }, + }, + }; + }, + getAuthSeqNumber: function (t, e, n) { + if (0 !== (t = h(t)).length) { + (e = g.residues({ authAsymId: e, seqNumber: n })), + (n = g.apply(e, t[0].props.model).unionFragment()); + if (0 !== n.residueIndices.length) + return t[0].props.model.data.residues.authSeqNumber[n.residueIndices[0]]; + } + }, + getAuthSeqNumberRange: function (t, e, n, r) { + var i = h(t); + if (0 === i.length) return []; + for (var o = void 0, a = n; a <= r; a++) + var s = { authAsymId: e, seqNumber: a }, + o = o ? g.or(o, g.residues(s)) : g.residues(s); + return 0 === + (t = g.apply(o, i[0].props.model).unionFragment()).residueIndices.length + ? [] + : t.residueIndices.map(function (t) { + return i[0].props.model.data.residues.authSeqNumber[t]; + }); + }, + createVisualsForAFConfidence: function (t, e, n) { + var r = d.selectEntities(t)[0], + i = [].concat( + x( + new Set( + r.props.model.data.atoms.residueIndex.filter(function (t, e) { + return r.props.model.data.atoms.tempFactor[e] > n; + }), + ), + ), + ), + o = g.residuesFromIndices(i), + i = '' + p.selectionPrefix + p.confidenceInfix + '-' + t, + a = '' + p.visualPrefix + p.confidenceInfix + '-' + t, + s = i + '-surf', + l = a + '-surf', + t = f.Tree.Transform.build() + .add( + r, + v.Molecule.CreateSelectionFromQuery, + { query: o, name: 'Confident' }, + { ref: i, isBinding: !1 }, + ) + .then( + v.Molecule.CreateVisual, + { style: f.Visualization.Molecule.Default.ForType.get('Cartoons') }, + { ref: a }, + ); + return d + .applyTransform(t) + .then(function () { + var t = d.selectEntities(e)[0].parent, + t = f.Tree.Transform.build() + .add( + t, + v.Molecule.CreateSelectionFromQuery, + { query: o, name: 'Confident surface' }, + { ref: s, isBinding: !1 }, + ) + .then(v.Molecule.CreateVisual, { style: y() }, { ref: l }); + return d.applyTransform(t); + }) + .then(function () { + var t = h(a)[0]; + (c[a] = C({}, t.props.model.theme, { isSticky: !0 })), + (t = h(l)[0]), + (c[l] = C({}, t.props.model.theme, { isSticky: !0 })), + E(a), + E(l); + }); + }, + setAFConfidenceVisibility: function (t, e) { + var t = d.selectEntities(t)[0], + n = d + .selectEntities(f.Tree.Selection.subtree(t).ofType(f.Entity.Molecule.Visual)) + .filter(function (t) { + return 0 <= t.ref.indexOf('' + p.confidenceInfix); + }), + r = [t.children[0].ref, t.children[1].children[0].children[0]]; + d.selectEntities(f.Tree.Selection.subtree(t).ofType(f.Entity.Group)), + e + ? (r.forEach(function (t) { + return E(t); + }), + n.forEach(function (t) { + return B(t); + })) + : (n.forEach(function (t) { + return E(t); + }), + r.forEach(function (t) { + return B(t); + })); + }, + createSubSelectionForAFCofidence: function (t, n) { + var e = d.selectEntities(t)[0], + r = d.selectEntities( + f.Tree.Selection.byRef(t).ancestorOfType(f.Entity.Molecule.Model), + )[0], + i = [].concat( + x( + new Set( + r.props.model.data.atoms.residueIndex.filter(function (t, e) { + return r.props.model.data.atoms.tempFactor[e] > n; + }), + ), + ), + ), + i = g.residuesFromIndices(i), + t = t + '-' + p.confidenceInfix, + e = f.Tree.Transform.build().add( + e, + v.Molecule.CreateSelectionFromQuery, + { query: i, name: 'Confident' }, + { ref: t, isBinding: !1 }, + ); + return d.applyTransform(e); + }, + showSelectionVisual: function (t, e) { + var t = h(t)[0].parent, + t = d.selectEntities(o.Selection.subtree(t).ofType(f.Entity.Molecule.Visual)), + n = t.filter(function (t) { + return 0 <= t.ref.indexOf(p.confidenceInfix); + }), + t = t.filter(function (t) { + return t.ref.indexOf(p.confidenceInfix) < 0; + }), + r = !0, + i = !1; + e || (i = !(r = !1)), + n.forEach(function (t) { + return w(t.ref, r); + }), + t.forEach(function (t) { + return w(t.ref, i); + }); + }, + hideSelectionVisual: function (t) { + E(h(t)[0].parent); + }, + } + ); + function A() { + if (!d.instance) throw new ReferenceError('LiteMol plugin controller not available.'); + } + function h(t) { + return A(), d.context.select(t); + } + function l(t) { + return p.visualPrefix + t; + } + var u, p, d, c, f, g, m, v, o, b, i, a, n, r, y, s, w, E, B; + }; + }, + { + './pdb.mapping.js': 79, + './settings': 82, + 'browserify-css/config/jshint': 25, + 'color-blend': 28, + litemol: 43, + }, + ], + 79: [ + function (t, e, n) { + 'use strict'; + function r(t, e) { + if (!(t instanceof e)) throw new TypeError('Cannot call a class as a function'); + } + function O(t) { + r(this, O), (this.start = new i(t.start)), (this.end = new i(t.end)); + } + function G(t, e) { + r(this, G), (this.start = t), (this.end = e); + } + function z(t) { + r(this, z), + (this.unpStart = t.unp_start), + (this.pdbStart = t.start), + (this.unpEnd = t.unp_end), + (this.pdbEnd = t.end); + } + var H = t('lodash'), + j = t('./settings').useCorsForSmr, + V = t('./settings').corsServer, + q = { PDB: 0, mmCIF: 1 }, + i = function t(e) { + r(this, t), + (this.posPDBStructure = e.author_residue_number), + (this.insertionCode = e.author_insertion_code), + (this.posPDBSequence = e.residue_number); + }; + e.exports = { + pdbMapping: function (t) { + var r = void 0, + i = void 0, + e = void 0, + n = void 0, + o = void 0, + a = void 0, + s = void 0, + l = void 0, + u = void 0, + c = void 0, + A = void 0, + h = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 'PDB', + p = void 0; + if ('PDB' === h) + (r = t.pdb_id), + (i = t.chain_id), + (e = q.mmCIF), + (o = t.experimental_method), + (a = t.coverage), + (s = parseInt(t.start)), + (l = parseInt(t.end)), + (u = parseInt(t.unp_start)), + (c = parseInt(t.unp_end)), + (p = 'https://www.ebi.ac.uk/pdbe/static/entry/' + r + '_updated.cif'), + (A = t.tax_id); + else if ('SMR' === h) { + var d = t.template.match(/(.+)\.(.+)+\.(.+)/), + r = d[1] + '.' + d[2], + i = d[3], + e = q.PDB, + o = t.provider + ' (' + t.method + ')', + a = t.coverage, + s = parseInt(t.from), + l = parseInt(t.to), + u = parseInt(t.from), + c = parseInt(t.to), + p = t.coordinates; + j && (p = V + p); + } else if ('AF' === h) + (r = t.entryId), + (i = 'A'), + (e = q.mmCIF), + (n = t.uniprotDescription), + (s = parseInt(t.uniprotStart)), + (l = parseInt(t.uniprotEnd)), + (u = parseInt(t.uniprotStart)), + (c = parseInt(t.uniprotEnd)), + (p = t.cifUrl); + else { + if ('USER' !== h) throw Error('Unknown source of PDB mapping data'); + if ( + ((r = t.id), + (i = t.chainId), + (e = 'PDB' === t.structure.format.toUpperCase() ? q.PDB : q.mmCIF), + (o = 'unknown'), + (a = + (parseInt(t.end) - parseInt(t.start)) / + (parseInt(t.seqEnd) - parseInt(t.seqStart))), + (s = parseInt(t.start)), + (l = parseInt(t.end)), + (u = parseInt(t.seqStart)), + (c = parseInt(t.seqEnd)), + void 0 !== t.structure.uri) + ) + p = t.structure.uri; + else { + if (void 0 === t.structure.data) + throw Error( + 'Structure information parameter requires information about uri or data.', + ); + p = 'data:text/plain;base64,' + btoa(t.structure.data); + } + } + function f() { + return g() + m(); + } + function g() { + return r; + } + function m() { + return i; + } + function v() { + return e; + } + function b() { + return o; + } + function y() { + return n; + } + function w() { + return a; + } + function E() { + return s; + } + function B() { + return l; + } + function C() { + return u; + } + function x() { + return c; + } + function I() { + return A; + } + function M() { + return R; + } + function D() { + return k; + } + function S() { + return h; + } + var R = [], + U = [ + P( + new O({ + start: { + author_residue_number: s, + author_insertion_code: void 0, + residue_number: 1, + }, + end: { + author_residue_number: l, + author_insertion_code: void 0, + residue_number: c - u, + }, + }), + ), + ], + k = [], + N = [], + F = function () { + return x() - C(); + }, + Q = function () { + return U; + }; + function P(t) { + t = H.cloneDeep(t); + return ( + 'SMR' === h + ? (t.end.posPDBSequence += 1) + : ((t.start.posPDBSequence -= s - 1), (t.end.posPDBSequence -= s - 1)), + t + ); + } + function _(t) { + var e = 0, + n = null, + r = !0, + i = !1, + o = void 0; + try { + for (var a, s = Y()[Symbol.iterator](); !(r = (a = s.next()).done); r = !0) { + var l = a.value; + if (l.start > t) break; + n && + (e += + parseInt(l.pdbStart.residue_number) - + parseInt(n.pdbEnd.residue_number) - + 1), + (n = l); + } + } catch (t) { + (i = !0), (o = t); + } finally { + try { + !r && s.return && s.return(); + } finally { + if (i) throw o; + } + } + return e; + } + function T(t) { + return C() + t - 1 - _(t); + } + function L() { + return n ? y() : 'Experimental method: ' + b(); + } + var Y = function () { + return N; + }; + return { + getId: f, + getPdbId: g, + getChainId: m, + getFormat: v, + getUniprotDescription: y, + getExperimentalMethod: b, + getCoverage: w, + getLength: F, + getPdbStart: E, + getPdbEnd: B, + getUnpStart: C, + getUnpEnd: x, + mapPosUnpToPdb: function (t) { + return E() + parseInt(t) + _(t) - C(); + }, + mapPosPdbToUnp: function (t) { + return C() + parseInt(t) - _(t) - E(); + }, + mapPosStructToUnp: T, + getTaxId: I, + getSource: S, + getCoordinatesFile: function () { + return p; + }, + getDescription: L, + getObservedResidues: M, + setObservedResidues: function (t) { + R = t; + }, + getObservedRanges: Q, + setObservedRanges: function (t) { + U = t + .filter(function (t) { + return t.start.posPDBSequence <= l && t.end.posPDBSequence >= s; + }) + .map(P); + var e = Q().sort(function (t, e) { + return t.start.posPDBSequence - e.start.posPDBSequence; + }); + if (0 === e.length) + console.warn( + 'Structure ' + r + ':' + i + ' has no observed range in the mapped region.', + ); + else { + (k = []), + 1 < e[0].start.posPDBSequence && + k.push(new G(1, e[0].start.posPDBSequence - 1)); + for (var n = 1; n < e.length; n++) + k.push(new G(e[n - 1].end.posPDBSequence + 1, e[n].start.posPDBSequence - 1)); + F() >= e[e.length - 1].end.posPDBSequence && + k.push(new G(e[e.length - 1].end.posPDBSequence + 1, F() + 1)); + } + }, + getInsertedRanges: Y, + parseInsertedRanges: function (t, e) { + var n = Object.keys(t)[0]; + N = t[n].UniProt[e].mappings + .filter(function (t) { + return t.chain_id.toUpperCase() === m().toUpperCase(); + }) + .map(function (t) { + return new z(t); + }); + }, + getUnobservedRanges: D, + getSeqRangeFromObservedRange: function (t) { + return [ + Math.max(this.getUnpStart(), this.mapPosStructToUnp(t.start.posPDBSequence)), + Math.min(this.mapPosStructToUnp(t.end.posPDBSequence), this.getUnpEnd()), + ]; + }, + setTaxId: function (t) { + A = t; + }, + isValidPdbPos: function (t) { + return E() <= t && t <= B(); + }, + isValidPdbRegion: function (t, e) { + return (E() <= t && t <= B()) || (E() <= e && e <= B()) || (t <= E() && B() <= e); + }, + isInObservedRanges: function (t) { + for (var e = Q(), n = 0; n < e.length; ++n) { + var r = e[n]; + if (t >= T(r.start.posPDBSequence) && t <= T(r.end.posPDBSequence)) return !0; + } + return !1; + }, + idMatch: function (t, e) { + return ( + g().toLowerCase() === t.toLowerCase() && m().toLowerCase() === e.toLowerCase() + ); + }, + isPDB: function () { + return 'PDB' === S(); + }, + content: { + id: f(), + pdbId: g(), + chainId: m(), + format: v(), + description: L(), + experimentalMethod: b(), + coverage: w(), + pdbStart: E(), + podbEnd: B(), + unpStart: C(), + unpEnd: x(), + taxId: I(), + source: S(), + observedResidues: M(), + observedRanges: Q(), + unobservedRanges: D(), + }, + }; + }, + ObservedRange: O, + STRUCTURE_FORMAT: q, + }; + }, + { './settings': 82, lodash: 44 }, + ], + 80: [ + function (t, e, n) { + 'use strict'; + var v = + Object.assign || + function (t) { + for (var e = 1; e < arguments.length; e++) { + var n, + r = arguments[e]; + for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (t[n] = r[n]); + } + return t; + }; + var b = t('downloadjs'), + y = t('./svg.symbols'), + w = t('ProtVista'), + E = t('./settings').pvPredictProteinCat.id, + B = t('./settings').urlPredictProtein; + function C(t, e) { + return (t = t.closest('.up_pftv_category')), (e = e), t.parent().hasClass(e); + } + function x(t) { + return 0 <= t.attr('class').indexOf('selected'); + } + e.exports = function () { + var l = void 0, + u = void 0, + o = [], + r = { highlightByHovering: !1 }; + function i() { + return u.container.find('.pv3d-header-pv .unp-link'); + } + function t() { + u.pvContainer + .find('.up_pftv_category-name, .up_pftv_track-header') + .each(function (t, e) { + var n, + r, + i, + e = $(e); + 0 < + e.parents( + 'div[class="up_pftv_category_' + u.settings.pvMappedStructuresCat.id + '"]', + ).length || + 0 < + e.parents( + 'div[class="up_pftv_category_' + + u.settings.pvMappedStructuresCat.idPredicted + + '"]', + ).length || + 0 < + e.parents( + 'div[class="up_pftv_category_' + + u.settings.pvMappedStructuresCat.idProvided + + '"]', + ).length || + (e.hasClass('up_pftv_track-header') && + 0 < + e.parents('div[class="' + u.settings.pvVariationCat.clazz + '"]').length) || + ((i = e.closest('.up_pftv_category')), + 0 < e.parent().find(y.svgIconSelector).length || + ((0 <= e.attr('class').split(' ').indexOf('up_pftv_track-header') + ? e.parent().parent() + : i + ).css('position', 'relative'), + (n = 0.5 * (i = i.find('a')).outerHeight()), + (r = i.outerWidth() - 1.2 * n), + (i = i.outerHeight() / 2 - n / 2), + (i = y.createJQSvgIcon(y.arrowCircleRight, i, r, n)).prependTo(e.parent()), + C(i, u.settings.pvVariationCat.clazz) && o.push(i))); + }); + } + function e() { + t(), u.pvContainer.find(c()).css('cursor', 'pointer'); + } + function a(t) { + var i = u.settings.variationColors.min, + e = u.settings.variationColors.max, + o = [e[0] - i[0], e[1] - i[1], e[2] - i[2]]; + for (var n = void 0, r = g(), a = 0; a < r.length; a++) { + var s = r[a]; + u.pvContainer.find(s.categoryContainer[0]).parent().is(t) && + !(function () { + var t = s.categoryViewer.variationCountArray, + e = Math.max.apply( + Math, + (function (t) { + if (Array.isArray(t)) { + for (var e = 0, n = Array(t.length); e < t.length; e++) n[e] = t[e]; + return n; + } + return Array.from(t); + })(t), + ); + n = t.map(function (t) { + return t / e; + }); + })(); + } + return { + catData: n.map(function (t, e) { + return { begin: e, end: e, type: 'VARIANT' }; + }), + catColors: n.map(function (t) { + for (var e = t, n = [0, 0, 0], r = 0; r < 3; r++) n[r] = i[r] + o[r] * e; + return '(' + n[0] + ',' + n[1] + ',' + n[2] + ')'; + }), + }; + } + function n() { + var t, e, n, r; + u.activeStructure.isSet() && + ((e = u.activeStructure.record.getUnpStart()), + (r = u.activeStructure.record.getUnpEnd()), + (t = (n = l.xScale)(2) - n(1)), + (e = n(e) - t / 2), + (n = n(r) - e + t / 2), + (r = u.container.find('.pv3d-pv-structure-bar')).css('display', 'block'), + r.css('left', e + 'px'), + r.css('width', n + 'px')); + } + function s() { + return u.container.find('.pv3d-pv-highlight-bar'); + } + function c() { + return '.variation-y.axis.left text, .variation-y.axis.right text'; + } + function A() { + u.pv.registerCallback('variantDataUpdated', function (t) { + o.forEach(function (t) { + x(t) && (t.click(), t.click()); + }); + }); + } + function h(t, e) { + 0 < t.length && t.attr('class', t.attr('class').replace(' ' + e, '')); + } + function p(t) { + t = t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function (t, e, n, r) { + return e + e + n + n + r + r; + }); + t = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t); + return t ? [parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)] : null; + } + function d() { + var t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0], + r = {}; + return ( + g().forEach(function (n) { + 'features' in n.categoryViewer || + (!t && + (n.name === u.settings.pvMappedStructuresCat.id || + n.name === u.settings.pvMappedStructuresCat.idPredicted || + n.name === u.settings.pvMappedStructuresCat.idProvided)) || + ((r[n.name] = []), + n.data.forEach(function (e) { + var t = n.tracks.filter(function (t) { + return t.type === e.type; + })[0]; + r[n.name].push({ + type: e.type, + begin: e.begin, + end: e.end, + description: e.description, + internalId: e.internalId, + categoryTitle: n.header.text(), + trackTitle: t.titleContainer.text(), + }); + })); + }), + r + ); + } + function f() { + u.pvContainer.find(y.svgIconSelector).each(function (t, e) { + function i(t) { + var e = t.closest('div').find('.up_pftv_track'), + t = u.pv.getTrackData(e), + n = t.map(function (t) { + return e.find('.up_pftv_feature[name="' + t.internalId + '"]').css('stroke'); + }); + return { trackData: t, trackColors: n }; + } + $(e) + .off() + .on('click', function (t) { + var n, e, r; + u.lm.moleculeLoaded() && + ((t = $(t.target)), + (t = (e = t).is('svg') ? e : e.closest('svg')), + l.deselectFeature(), + x(t) + ? (u.activeFeature.unset(), h(t, 'selected')) + : ((n = { trackData: [], trackColors: [] }), + 0 < t.closest('.up_pftv_category-tracks').length + ? ((e = i(t)), + (n.trackData = n.trackData.concat(e.trackData)), + (n.trackColors = n.trackColors.concat(e.trackColors))) + : ((e = t.closest('.up_pftv_category')), + C(t, u.settings.pvVariationCat.clazz) + ? ((r = a(e.parent())), + (n.trackData = r.catData), + (n.trackColors = r.catColors)) + : e + .find('.up_pftv_category-tracks ' + y.svgIconSelector) + .each(function (t, e) { + e = i($(e)); + (n.trackData = n.trackData.concat(e.trackData)), + (n.trackColors = n.trackColors.concat(e.trackColors)); + })), + u.activeFeature.unset(), + u.activeFeature.set(n.trackData, n.trackColors), + t.attr('class', t.attr('class') + ' selected'))); + }); + }), + u.pvContainer.find(c()).each(function (t, e) { + $(e) + .off() + .on('click', function (t) { + var e = g().filter(function (t) { + return 'features' in t.categoryViewer; + })[0].categoryViewer.features, + n = $(t.target) + .parent() + .attr('class') + .match(/up_pftv_aa_([^ ]*)/)[1], + r = ('loss' === (n = 'd' === n ? 'del' : n) && (n = '*'), []), + i = []; + e.forEach(function (t) { + t.variants.forEach(function (t) { + var e; + t.alternativeSequence === n && + ((e = u.container + .find('.up_pftv_variant[name="' + t.internalId + '"]') + .attr('fill')), + r.push(t), + i.push('(' + p(e).join(',') + ')')); + }); + }), + 0 < i.length ? u.activeFeature.set(r, i) : u.activeFeature.unset(); + }); + }); + } + function g() { + return l.categories; + } + function m() { + return l; + } + return { + initialize: function (t) { + (u = t.globals), + void 0 !== t.opts.highlightByHovering && + (r.highlightByHovering = t.opts.highlightByHovering); + var o, + e = t.fasta.split('\n').slice(1).join(''), + n = []; + 'pdbRecords' in u && + ((o = { sequence: e, features: [] }), + u.pdbRecords.forEach(function (e, n) { + var r = void 0, + t = e.getSource(), + i = '', + r = + 'PDB' === t + ? u.settings.pvMappedStructuresCat.id + : 'SMR' === t || 'AF' === t + ? ((i = t + ': '), u.settings.pvMappedStructuresCat.idPredicted) + : u.settings.pvMappedStructuresCat.idProvided; + e.getObservedRanges().forEach(function (t) { + t = e.getSeqRangeFromObservedRange(t); + o.features.push({ + category: r, + type: + '' + i + e.getPdbId().toUpperCase() + ':' + e.getChainId().toUpperCase(), + description: '\n' + e.getDescription(), + color: u.settings.colors.pvStructureObserved, + ftId: n, + begin: t[0], + end: t[1], + }); + }), + e.getUnobservedRanges().forEach(function (t) { + o.features.push({ + category: r, + type: e.getPdbId().toUpperCase() + ':' + e.getChainId().toUpperCase(), + description: e.getDescription(), + color: u.settings.colors.pvStructureUnobserved, + ftId: n, + begin: Math.max(e.getUnpStart(), e.mapPosStructToUnp(t.start)), + end: Math.min(e.mapPosStructToUnp(t.end), e.getUnpEnd()), + }); + }); + }), + (n = [ + { + source: 'SIFTS API', + useExtension: !1, + url: 'data:text/plain,' + encodeURI(JSON.stringify(o)), + }, + ]), + t.opts.customDataSources && + (t.opts.customDataSources.forEach(function (t) { + void 0 === t.url && + (t.url = 'data:text/plain,' + encodeURI(JSON.stringify(t.data))); + }), + (n = n.concat(t.opts.customDataSources)))), + (void 0 === t.opts.exclusions || t.opts.exclusions.indexOf(E) < 0) && + n.push( + (function (t) { + var e = void 0; + e = + void 0 !== u.uniprotId + ? { source: 'PREDICT PROTEIN', useExtension: !1, url: B } + : { + source: 'PREDICT PROTEIN', + payload: JSON.stringify({ protein: { sequence: t } }), + contentType: 'application/json', + url: B.replace(/\/$/, ''), + unpack: function (t) { + return t.data; + }, + }; + return e; + })(e), + ), + (l = new w( + v({}, t.opts, { + el: document.getElementById(u.pvContainerId), + uniprotacc: u.uniprotId, + sequence: u.opts.sequence, + defaultSources: !0, + customDataSources: n, + }), + )), + (e = i()).removeClass('pv3d-invisible'), + e.attr('href', 'http://www.uniprot.org/uniprot/' + u.uniprotId), + e.find('.detail').text(u.uniprotId); + }, + registerCallback: function (t, e) { + l.getDispatcher().on(t, function (t) { + e(t); + }); + }, + getPlugin: m, + getTrackData: function (t) { + for (var e = g(), n = 0; n < e.length; n++) + for (var r = e[n], i = 0; i < r.tracks.length; i++) { + var o = r.tracks[i]; + if (u.pvContainer.find(o.trackContainer[0]).is(t)) return o.data; + } + }, + modifyHtmlStructure: function () { + var t; + 0 === u.pvContainer.find('.pv3d-pv-bars').length && + ((t = $('<div class="pv3d-pv-bars"></div>').appendTo( + u.pvContainer.find('.up_pftv_category-container'), + )).append('<div class="pv3d-pv-highlight-bar"></div>'), + t.append('<div class="pv3d-pv-structure-bar"></div>')), + e(); + }, + createOverlaySymbolsAndLinks: e, + highlightActiveStructure: n, + highlightActivePosition: function (t) { + var e = l.xScale, + t = u.activeStructure.record.mapPosPdbToUnp(t), + n = e(t), + e = e(t + 1) - n; + (t = s()).css('display', 'block'), + t.css('left', n - e / 2 + 'px'), + t.css('width', e + 'px'); + }, + dehighlightActivePosition: function () { + s().css('display', 'none'); + }, + registerCallbacksAndEvents: function () { + var e; + u.pv.registerCallback('featureSelected', function (t) { + var e; + t.feature.category === u.settings.pvMappedStructuresCat.id || + t.feature.category === u.settings.pvMappedStructuresCat.idPredicted || + t.feature.category === u.settings.pvMappedStructuresCat.idProvided + ? ((e = u.pdbRecords[t.feature.ftId]), + u.activeStructure.set(e.getPdbId(), e.getChainId()), + u.activeFeature.overlay(), + l.deselectFeature()) + : (0 === (e = t.color).indexOf('#') && (e = 'rgb(' + p(t.color).join() + ')'), + u.activeFeature.set([t.feature], [e])); + }), + u.pv.registerCallback('featureDeselected', function (t) { + u.activeFeature.unset(); + }), + u.pv.registerCallback('regionHighlighted', function (t) { + u.activeHighlight.set(t.begin, t.end); + }), + u.pvContainer.find('.up_pftv_category-viewer').each(function (t, e) { + var n = !1; + $(e) + .mousedown(function () { + n = !1; + }) + .mousemove(function () { + n = !0; + }) + .mouseup(function () { + var t = n; + (n = !1), t || u.activeHighlight.unset(); + }); + }), + f(), + A(), + (e = void 0), + u.container + .find('.up_pftv_category-viewer svg, .up_pftv_track svg, .up_pftv_aaviewer svg') + .off() + .on('mousemove', function (t) { + (t = Math.round(u.pv.getPlugin().xScale.invert(t.offsetX))), + (t = Math.max(t, 1)); + u.lm.highlightResidue(t), + e !== t && ((e = t), u.eventEmitter.emit('sequenceMouseOn', t)); + }) + .on('mouseout', function (t) { + u.lm.dehighlightAll(), u.eventEmitter.emit('sequenceMouseOff'), (e = void 0); + }), + u.container + .find('.up_pftv_category-container') + .off() + .on('wheel mousemove', function (t) { + ('wheel' === t.type || ('mousemove' === t.type && 1 === t.which)) && + u.pv.highlightActiveStructure(); + }), + r.highlightByHovering && + u.container + .find('path.up_pftv_feature') + .off() + .hover( + function (t) { + var e, + n, + r, + i, + t = t.target, + o = t.getAttribute('name'); + 0 !== o.indexOf(u.settings.pvMappedStructuresCat.id) && + 0 !== o.indexOf(u.settings.pvMappedStructuresCat.idPredicted) && + 0 !== o.indexOf(u.settings.pvMappedStructuresCat.idProvided) && + ((n = t.closest('div.up_pftv_category')), + (e = $(n).parent().attr('class').replace('up_pftv_category_', '')), + (n = g() + .filter(function (t) { + return t.name === e; + })[0] + .data.filter(function (t) { + return t.internalId === o; + })[0]), + (t = $(t).css('stroke')), + (r = u.activeFeature.features), + void 0 === (i = u.activeFeature.colors) && (i = []), + u.lm.mapFeatures( + (r = void 0 === r ? [] : r).concat([n]), + i.concat([t]), + )); + }, + function (t) { + u.activeFeature.overlay(); + }, + ); + }, + deselectAllOverlayIcons: function () { + h(u.pvContainer.find(y.svgIconSelector), 'selected'); + }, + resized: function () { + var t = u.container.find('.pv3d-pv-bars'), + e = u.pvContainer.find('.up_pftv_category-viewer'); + 0 < e.length && + (t.css('left', e.position().left + 'px'), t.css('width', e.width())), + n(); + }, + extractAnnotationData: d, + setCategoriesTooltips: function (t, e) { + void 0 === t || t + ? void 0 !== e && + e.forEach(function (t) { + u.pvContainer + .find('div.up_pftv_category_' + t[0] + ' a.up_pftv_category-name') + .attr('title', t[1]); + }) + : u.pvContainer.find('a.up_pftv_category-name').removeAttr('title'); + }, + reorderCategories: function () { + var t = u.pvContainer.find('.' + u.settings.pvPredictProteinCat.clazz), + e = u.pvContainer.find('.' + u.settings.pvVariationCat.clazz), + n = u.pvContainer.find('.' + u.settings.pvCategories.clazz), + r = u.pvContainer + .find('div[class*="' + u.settings.pvCategoryPrefix + '"]') + .toArray(), + i = + (0 < t.length && + (t.detach(), + 0 < e.length && r.slice(-1).pop() === e[0] ? t.insertBefore(e) : n.append(t)), + u.opts.categoryOrder), + o = u.pvContainer.find('.' + u.settings.pvCustomCategoryContainer.clazz); + if (i) + for (var a = i.length - 1; 0 <= a; --a) { + var s = i[a], + s = u.pvContainer.find($('.' + u.settings.pvCategoryPrefix + s)); + 0 < s.length && (s.detach(), 0 < o.length ? s.insertAfter(o) : n.prepend(s)); + } + }, + exportToCsv: function () { + for ( + var e, + n, + r = l.sequence.length, + i = + ((e = d(!0)), + (n = {}), + Object.keys(e).forEach(function (t) { + e[t].forEach(function (t) { + var e = t.categoryTitle + ' - ' + t.trackTitle; + (e in n) || (n[e] = []), n[e].push(t); + }); + }), + n), + o = {}, + t = Object.keys(i), + a = + (t.forEach(function (t) { + var n = Array.from({ length: r }, function () { + return 0; + }); + i[t].forEach(function (t) { + for (var e = t.begin; e <= t.end; ++e) + n[e] = t.description || t.internalId; + }), + (o[t] = n); + }), + t.join(';') + '\n'), + s = 0; + s < r; + ++s + ) + !(function (e) { + a += + t + .map(function (t) { + return o[t][e]; + }) + .join(';') + '\n'; + })(s); + b(a, u.uniprotId + '.csv', 'text/plain'); + }, + getHeaderLinkContainer: i, + }; + }; + }, + { './settings': 82, './svg.symbols': 83, ProtVista: 11, downloadjs: 34 }, + ], + 81: [ + function (t, e, n) { + 'use strict'; + var r = t('./settings').useCorsForSmr, + i = t('./settings').corsServer, + o = t('./settings').urlPredictProtein; + function a(t, e) { + return void 0 === e && (e = 'GET'), $.ajax({ type: e, url: t }); + } + function s(t) { + return 'https://alphafold.ebi.ac.uk/api/prediction/' + t; + } + e.exports = { + getFastaByUniprotId: function (t) { + return a('https://rest.uniprot.org/uniprotkb/' + t + '.fasta'); + }, + getUnpToPdbMapping: function (t) { + return a('https://www.ebi.ac.uk/pdbe/api/mappings/best_structures/' + t); + }, + getUnpToSmrMapping: function (t) { + return a( + r + ? i + + 'https://swissmodel.expasy.org/repository/uniprot/' + + t + + '.json?provider=swissmodel' + : 'https://swissmodel.expasy.org/repository/uniprot/' + + t + + '.json?provider=swissmodel', + ).then(function (t) { + return t.result; + }); + }, + getUnpToAfMapping: function (t) { + return a(s(t)); + }, + getPredictProtein: function (t) { + return a('' + o + t + '?format=molart'); + }, + getObservedRanges: function (t, e) { + return a( + 'https://www.ebi.ac.uk/pdbe/api/pdb/entry/polymer_coverage/' + t + '/chain/' + e, + ); + }, + getUniprotSegments: function (t) { + return a('https://www.ebi.ac.uk/pdbe/api/mappings/uniprot/' + t); + }, + getAfURL: s, + getAfCifURL: function (t) { + return 'https://alphafold.ebi.ac.uk/files/AF-' + t + '-F1-model_v1.cif'; + }, + }; + }, + { './settings': 82 }, + ], + 82: [ + function (t, e, n) { + 'use strict'; + e.exports = { + homepage: 'https://github.com/davidhoksza/MolArt/', + loadAllChains: !0, + pvMappedStructuresCat: { + id: 'EXPERIMENTAL_STRUCTURES', + idPredicted: 'PREDICTED_STRUCTURES', + idProvided: 'USER_PROVIDED_STRUCTURES', + name: 'Experimental structures', + namePredicted: 'Predicted structures', + nameProvided: 'Provided structures', + clazz: 'up_pftv_category_EXPERIMENTAL_STRUCTURES', + clazzPred: 'up_pftv_category_PREDICTED_STRUCTURES', + clazzProvided: 'up_pftv_category_PROVIDED_STRUCTURES', + }, + pvPredictProteinCat: { + id: 'PREDICT_PROTEIN', + clazz: 'up_pftv_category_PREDICT_PROTEIN', + }, + pvVariationCat: { clazz: 'up_pftv_category_VARIATION' }, + pvCategories: { clazz: 'up_pftv_category-container' }, + pvCategoryPrefix: 'up_pftv_category_', + pvCustomCategoryContainer: { clazz: 'up_pftv_category_on_the_fly' }, + variationColors: { min: [200, 200, 200], max: [50, 50, 50] }, + boundaryFeatureTypes: ['DISULFID'], + useCorsForSmr: !1, + sortStructuresOptions: { id: 'id' }, + corsServer: 'https://dobrman.ms.mff.cuni.cz/', + urlPredictProtein: 'https://api.predictprotein.org/v1/results/molart/', + colors: { + pvStructureObserved: '#2E86C1', + pvStructureUnobserved: '#BDBFC1', + lmHighlight: { r: 255, g: 233, b: 153 }, + }, + lmInitSurfaceTransparency: 15, + interactiveSelectionPrefix: 'interactive_sel_', + userSelectionPrefix: 'user_selection_', + }; + }, + {}, + ], + 83: [ + function (t, e, n) { + 'use strict'; + var r = 'pv3d-svg-icon'; + e.exports = { + svgIconSelector: '.pv3d-svg-icon', + arrowCircleRight: + '\n <svg class="' + + r + + '" viewBox="0 0 1792 1792" version="1.1" shape-rendering="geometricPrecision" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> \n <path d="M1413 896q0-27-18-45l-91-91-362-362q-18-18-45-18t-45 18l-91 91q-18 18-18 45t18 45l189 189h-502q-26 0-45 19t-19 45v128q0 26 19 45t45 19h502l-189 189q-19 19-19 45t19 45l91 91q18 18 45 18t45-18l362-362 91-91q18-18 18-45zm251 0q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/>\n </svg>\n ', + arrowCircleLeft: + '\n <svg class="' + + r + + '" viewBox="0 0 24 28" version="1.1" shape-rendering="geometricPrecision" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> \n <path d="M20 15v-2c0-0.547-0.453-1-1-1h-7.844l2.953-2.953c0.187-0.187 0.297-0.438 0.297-0.703s-0.109-0.516-0.297-0.703l-1.422-1.422c-0.187-0.187-0.438-0.281-0.703-0.281s-0.516 0.094-0.703 0.281l-7.078 7.078c-0.187 0.187-0.281 0.438-0.281 0.703s0.094 0.516 0.281 0.703l7.078 7.078c0.187 0.187 0.438 0.281 0.703 0.281s0.516-0.094 0.703-0.281l1.422-1.422c0.187-0.187 0.281-0.438 0.281-0.703s-0.094-0.516-0.281-0.703l-2.953-2.953h7.844c0.547 0 1-0.453 1-1zM24 14c0 6.625-5.375 12-12 12s-12-5.375-12-12 5.375-12 12-12 12 5.375 12 12z"></path>\n </svg>\n ', + controllerPrevious: + '\n <svg class="' + + r + + '" viewBox="0 0 20 20" version="1.1" shape-rendering="geometricPrecision" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> \n <path d="M14.959 4.571l-7.203 4.949c0 0-0.279 0.201-0.279 0.481s0.279 0.479 0.279 0.479l7.203 4.951c0.572 0.38 1.041 0.099 1.041-0.626v-9.609c0-0.727-0.469-1.008-1.041-0.625zM6 4h-1c-0.553 0-1 0.048-1 0.6v10.8c0 0.552 0.447 0.6 1 0.6h1c0.553 0 1-0.048 1-0.6v-10.8c0-0.552-0.447-0.6-1-0.6z"></path>\n </svg> \n ', + controllerNext: + '\n <svg class="' + + r + + '" viewBox="0 0 20 20" version="1.1" shape-rendering="geometricPrecision" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> \n <path d="M12.244 9.52l-7.203-4.949c-0.572-0.383-1.041-0.102-1.041 0.625v9.609c0 0.725 0.469 1.006 1.041 0.625l7.203-4.951c0 0 0.279-0.199 0.279-0.478s-0.279-0.481-0.279-0.481zM14 4h1c0.553 0 1 0.048 1 0.6v10.8c0 0.552-0.447 0.6-1 0.6h-1c-0.553 0-1-0.048-1-0.6v-10.8c0-0.552 0.447-0.6 1-0.6z"></path>\n </svg> \n ', + download: + '\n <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="768" height="768" viewBox="0 0 768 768">\n <path fill="#000" d="M672 448c-19.2 0-32 12.8-32 32v128c0 19.2-12.8 32-32 32h-448c-19.2 0-32-12.8-32-32v-128c0-19.2-12.8-32-32-32s-32 12.8-32 32v128c0 54.4 41.6 96 96 96h448c54.4 0 96-41.6 96-96v-128c0-19.2-12.8-32-32-32z"></path>\n <path fill="#000" d="M361.6 502.4c3.2 3.2 6.4 6.4 9.6 6.4 3.2 3.2 9.6 3.2 12.8 3.2s9.6 0 12.8-3.2c3.2-3.2 6.4-3.2 9.6-6.4l160-160c12.8-12.8 12.8-32 0-44.8s-32-12.8-44.8 0l-105.6 105.6v-307.2c0-19.2-12.8-32-32-32s-32 12.8-32 32v307.2l-105.6-105.6c-12.8-12.8-32-12.8-44.8 0s-12.8 32 0 44.8l160 160z"></path>\n </svg> \n ', + createJQSvgIcon: function (t, e, n, r, i) { + t = $(t); + return ( + t.css('top', e + 'px'), + t.css('left', n + 'px'), + r && t.css('width', r + 'px'), + i && t.css('height', r + 'px'), + t + ); + }, + }; + }, + {}, + ], + MolArt: [ + function (g, t, e) { + 'use strict'; + function n(t, e) { + if (!(t instanceof e)) throw new TypeError('Cannot call a class as a function'); + } + g('./css/styles.css'); + var r, + l = g('downloadjs'), + c = + (window.$ || + ((r = g('jquery')), (window.$ = r), window.jQuery || (window.jQuery = window.$)), + g('events')), + m = g('./lm.controller.js'), + v = g('./pv.controller.js'), + b = g('./services'), + y = g('./pdb.mapping'), + w = g('./svg.symbols'); + g('http').globalAgent; + (i.prototype.set = function (e, n) { + var t = this; + if (this.pdbId !== e || this.chainId !== n) { + var r = this.globals.pdbRecords.filter(function (t) { + return t.idMatch(e, n); + }); + if (0 === r.length) + return ( + console.warn('Selected PDB ID and chain did not match any record.'), + Promise.resolve() + ); + (this.record = r[0]), + (this.pdbId = this.record.getPdbId()), + (this.chainId = this.record.getChainId()), + (this.source = this.record.getSource()); + var i, + o, + a, + s = this; + return ( + (i = r[0]), + (o = this.globals), + (a = o.lm.loadRecord(i)), + o.settings.loadAllChains && + o.pdbRecords.forEach(function (t) { + t.getPdbId() === i.getPdbId() && + t.getId() !== i.getId() && + (a = a.then(function () { + return o.lm.loadRecord(t, { focus: !1, hideOthers: !1 }); + })); + }), + a + .then( + function () { + t.globals.lm.updateHeader(), + t.globals.pv.highlightActiveStructure(), + t.globals.activeFeature.overlay(), + t.globals.lm.hideErrorMessage(), + t.globals.eventEmitter.emit('structureLoaded'); + }, + function (t) { + throw (console.log(t), s.globals.lm.showErrorMessage(t), t); + }, + ) + .then(function () { + t.globals.opts.alphaFoldConfidence && + ('AF' == t.source || + ('USER' == t.source && + t.globals.opts.alphaFoldConfidence.applyToUserStructures)) + ? t.globals.container.find('.confidence').css('display', 'inline-block') + : t.globals.container.find('.confidence').css('display', 'none'); + }) + ); + } + }), + (i.prototype.getSeqStrRange = function () { + if (!this.isSet()) throw new Error('No structure loaded.'); + var e = this.record; + return this.record.getObservedRanges().map(function (t) { + return e.getSeqRangeFromObservedRange(t); + }); + }), + (i.prototype.isSet = function () { + return void 0 !== this.pdbId; + }), + (i.prototype.getPyMolFileName = function () { + var t = this.globals.opts.pyMOLExportFileName, + e = this.record.getSource(); + return t && t[e] + ? t[e].replace('{id}', this.pdbId).replace('{chain}', this.chainId) + : this.pdbId + '_' + this.chainId + '.py'; + }), + (i.prototype.exportToPymol = function () { + var c = this, + e = this.globals, + A = + "import __main__\n__main__.pymol_argv = ['pymol', '-qei']\nimport pymol\npymol.finish_launching()\nfrom pymol import cmd\ncmd.delete('all')\n"; + function h(t) { + return e.opts.pyMolCategoriesLabels && t in e.opts.pyMolCategoriesLabels + ? e.opts.pyMolCategoriesLabels[t] + : t; + } + var p = function (t) { + return h(t) + .replace('&', 'and') + .replace(/[^a-zA-Z0-9_]/g, '_'); + }, + t = this.record.getSource(); + if ('PDB' === t || 'USER' === t) + A += "cmd.load('" + this.record.getCoordinatesFile() + "')\n"; + else if ('SMR' === t) { + var n = this.record + .getCoordinatesFile() + .replace(this.globals.settings.corsServer, ''), + r = + this.globals.uniprotId + + '.' + + this.record.getPdbId() + + '.' + + this.record.getChainId() + + '.' + + this.record.getPdbStart() + + '-' + + this.record.getPdbEnd(); + A += "cmd.load('" + n + "', '" + r + "', 0, 'pdb')\n"; + } else { + if ('AF' !== t) throw Error('Unknown structure source'); + n = e.activeStructure.record.getCoordinatesFile(); + A += "cmd.load('" + n + "', '" + this.globals.uniprotId + "', 0, 'cif')\n"; + } + A += 'cmd.set("orthoscopic", "on")\n'; + var i, + o = this.globals.pv.extractAnnotationData(), + a = {}; + for (i in o) a[p(i)] = o[i]; + var d = '_full_residues', + f = '_c-alpha', + s = + (Object.keys(a).forEach(function (l) { + var u = {}; + a[l].forEach(function (t) { + (n = l), + (e = t.type), + (r = h(e)), + (r = 'CHAIN' === e ? 'CHAIN_' : r) == n && (r += '_'); + var e = p(r), + n = e + d, + r = e + f, + e = p('' + t.type + t.begin + '-' + t.end), + i = e + d, + e = e + f, + o = c.record.mapPosUnpToPdb(t.begin), + a = c.record.mapPosUnpToPdb(t.end), + o = c.globals.lm.getAuthSeqNumberRange(c.record, o, a), + a = void 0, + s = void 0; + 1 === o.length + ? ((a = o[0]), (s = o[0])) + : 1 < o.length && ((a = o[0]), (s = o[o.length - 1])), + void 0 !== a && + void 0 !== s && + (n in u || ((u[n] = []), (u[r] = [])), + u[n].push(i), + u[r].push(e), + (o = + 'chain ' + + c.chainId + + ' and ' + + (g('./settings').boundaryFeatureTypes.indexOf(t.type) < 0 + ? 'resi ' + a + '-' + s + : '(resi ' + a + ') or (resi ' + s + ')')), + (A = + A + + "cmd.select('" + + i + + "', '" + + o + + "')\ncmd.select('" + + e + + "', '" + + ('(' + o + ') and name CA') + + "')\n")); + }), + Object.keys(u).forEach(function (t) { + return (A += "cmd.group('" + t + "', '" + u[t].join(' ') + "')\n"); + }), + (A += "cmd.group('" + l + "', '" + Object.keys(u).join(' ') + "')\n"); + }), + this.globals.lm.getVisualsInteractive()); + Object.keys(s).forEach(function (t) { + var n = s[t].selectionDef, + e = n.structureNumbers, + e = (e = + e && 0 !== e.length + ? e + : n.sequenceNumbers.map(function (t) { + return c.record.mapPosUnpToPdb(t); + })) + .map(function (t) { + return c.globals.lm.getAuthSeqNumber(c.record, t); + }) + .filter(function (t, e) { + return ( + void 0 === t && + console.warn( + 'Sequence-structure mapping not found for sequence position ' + + n.sequenceNumbers[e] + + '.', + ), + void 0 !== t + ); + }), + e = 'chain ' + c.chainId + ' and (resi ' + e.join(' or resi ') + ')'; + A = + A + + "cmd.select('" + + t + + d + + "', '" + + e + + "')\ncmd.select('" + + t + + f + + "', '" + + ('(' + e + ') and name CA') + + "')\n"; + }), + l(A, this.getPyMolFileName(), 'text/plain'); + }); + var E = i; + function i(t) { + n(this, i), + (this.pdbId = void 0), + (this.chainId = void 0), + (this.record = void 0), + (this.source = void 0), + (this.globals = t); + } + (o.prototype.set = function (t, e) { + (this.features = t), (this.colors = e), this.overlay(); + }), + (o.prototype.unset = function () { + (this.features = void 0), + (this.colors = void 0), + this.overlay(), + this.globals.activeHighlight.overlay(); + }), + (o.prototype.overlay = function () { + this.features + ? this.globals.lm.mapFeatures(this.features, this.colors) + : this.globals.lm.unmapFeature(), + this.globals.pv.deselectAllOverlayIcons(); + }); + var B = o; + function o(t) { + n(this, o), (this.features = void 0), (this.colors = void 0), (this.globals = t); + } + (a.prototype.set = function (t, e) { + (this.begin = t), (this.end = e), this.overlay(); + }), + (a.prototype.unset = function () { + (this.begin = void 0), (this.end = void 0), this.overlay(); + }), + (a.prototype.isSet = function () { + return void 0 !== this.begin; + }), + (a.prototype.overlay = function () { + this.isSet() + ? (this.globals.pv.deselectAllOverlayIcons(), + this.globals.lm.highlightRegion(this.begin, this.end)) + : this.globals.lm.groupSelected() || this.globals.lm.resetVisuals(); + }); + var C = a; + function a(t) { + n(this, a), (this.begin = void 0), (this.end = void 0), (this.globals = t); + } + function x(t) { + $('#' + t + ' .pv3d-loader-container').remove(); + } + function s(t) { + (e = t), + Object.keys(e).forEach(function (t) { + 'string' == typeof e[t] && (e[t] = e[t].trim()); + }); + var e, + A = !1, + h = { + lmCallbackRegistered: !1, + pv: v(), + lm: m(), + eventEmitter: new c.EventEmitter(), + afConfident: void 0, + opts: {}, + settings: g('./settings'), + }; + if ( + ((h.activeStructure = new E(h)), + (h.activeFeature = new B(h)), + (h.activeHighlight = new C(h)), + (h.uniprotId = t.uniprotId), + (h.sequence = t.sequence), + void 0 !== h.uniprotId && void 0 !== h.sequence) + ) + throw new Error('UniProt ID and sequence are mutually exclusive!'); + (h.containerId = t.containerId), + (h.pvContainerId = h.containerId + 'ProtVista'), + (h.lmContainerId = h.containerId + 'LiteMol'), + (n = h.containerId), + $('#' + n).append( + '<div class="pv3d-loader-container"><div class="pv3d-loader"></div></div>', + ), + (this.globals = h), + 0 === $('#' + h.containerId).height() && + $('#' + h.containerId).css('height', '100vh'), + (h.container = jQuery('<div class="pv-inner-container"></div>').appendTo( + $('#' + h.containerId), + )), + (h.downloadMessage = $( + '\n <div class="message-container"> \n <div class="message"> \n \n <div class="content center-items">\n <button class="ui button pymol">\n PyMOL\n </button>\n <button class="ui button csv">\n CSV\n </button>\n </div>\n </div>\n </div>\n ', + ).appendTo(h.container)), + h.downloadMessage.click(function () { + h.downloadMessage.css('display', 'none'); + }), + h.downloadMessage.find('.pymol').click(function () { + h.activeStructure.exportToPymol(), h.downloadMessage.css('display', 'none'); + }), + h.downloadMessage.find('.csv').click(function () { + h.pv.exportToCsv(), h.downloadMessage.css('display', 'none'); + }); + var n = $('<div class="pv3d-pv"></div>').appendTo(h.container), + r = $('<div class="pv3d-lm"></div>').appendTo(h.container), + i = + ((h.splitBar = $('<div class="pv3d-split-bar"></div>')), + (h.errorMessageContainer = $( + '\n <div class="message-container">\n <div class="message">.</div>\n </div>', + ).appendTo(h.container)), + (h.lmErrorMessageContainer = $( + '\n <div class="message-container">\n <a href="#" class="pv3d-error-close-button"></a>\n <div class="message">.</div> \n </div>', + ).appendTo(r)), + h.container.append(n), + h.container.append(h.splitBar), + h.container.append(r), + h.container.append( + '<span class="logo ui label"><a href="' + + h.settings.homepage + + '" target="_blank">MolArt</a></span>', + ), + $( + ' \n <div class="pv3d-header pv3d-header-pv">\n <a class="ui label unp-link pv3d-invisible" href="" target="_blank">\n UniProt:\n <div class="detail"></div>\n </a>\n </div>\n ', + )), + o = $( + ' \n <div class="pv3d-header pv3d-header-lm">\n \n <div class="pv3d-button pv3d-download" title="Export to PyMol">\n ' + + w.download + + '\n </div>\n \n <a class="ui label pdb-link pv3d-invisible" href="" target="_blank"> \n <div class="detail"></div>\n </a>\n <div class="lm-list">\n <div class="lm-pdb-id-list ui search selection dropdown">\n <div class="text"></div>\n <i class="dropdown icon"></i>\n </div>\n :\n <div class="lm-pdb-chain-list ui search selection dropdown">\n <div class="text"></div>\n <i class="dropdown icon"></i>\n </div>\n </div>\n <div class="user-highlights ui selection dropdown">\n <div class="text"></div> \n <i class="dropdown icon"></i>\n </div>\n <div class="ui button confidence">\n <div class="text af-confident">Show confident regions</div>\n <div class="text af-all" style="display: none">Show all regions</div>\n </div> \n </div>\n ', + ), + a = + (h.opts.alphaFoldConfidence && + (h.afConfident = !h.opts.alphaFoldConfidence.startWithAll), + o.find('.confidence').on('click', function () { + var t, e; + null != h.opts.alphaFoldConfidence && + ((h.afConfident = !h.afConfident), + (t = o.find('.af-confident')), + (e = o.find('.af-all')), + h.afConfident + ? (t.css('display', 'none'), e.css('display', 'block')) + : (t.css('display', 'block'), e.css('display', 'none')), + h.lm.setAFConfidenceVisibility()); + }), + o.find('.lm-list')), + s = w.createJQSvgIcon(w.controllerPrevious, 0, 0), + l = w.createJQSvgIcon(w.controllerNext, 0, 0), + s = + (s.addClass('shift-left'), + l.addClass('shift-right'), + a.prepend(s), + a.append(l), + n.append(i), + r.append(o), + (h.pvContainer = $( + '<div id="' + h.pvContainerId + '" class="pv-container pv3d-content"></div>', + )), + (h.lmContainer = $( + '\n <div class="lm-container pv3d-content">\n <div id="' + + h.lmContainerId + + '" class="lm-component-container">\n </div>\n <div class="pv3d-footer">\n <div style="display: table; width: 100%;">\n <div style="display: table-row;"></div> \n \x3c!--<div style="display: table-cell; width: 1px; padding-right: 10px">--\x3e\n \x3c!--<label>Transparency: </label>--\x3e\n \x3c!--</div> --\x3e\n <div style="display: table-cell;">\n <div class="ui segment transparency-slider-container">\n <div class="ui range transparency-slider"></div>\n </div>\n \x3c!--<input class="pv3d-lm-transparency-slider" type="range" value="30" min="0" max="100"> --\x3e\n </div> \n </div>\n </div>\n </div>\n ', + )), + n.append(h.pvContainer), + r.append(h.lmContainer), + h.container + .find('.pv3d-content') + .css('height', 'calc(100% - ' + i.outerHeight(!0) + 'px)'), + h.lmContainer.find('.pv3d-footer')), + a = + (h.lmContainer + .find('.lm-component-container') + .css('height', 'calc(100% - ' + s.outerHeight(!0) + 'px)'), + $( + '<iframe style="height: 0; background-color: transparent; margin: 0; padding: 0; overflow: hidden; border-width: 0; position: absolute; width: 100%;"></iframe>', + )); + function u() { + var t = h.container.find('.pv3d-header.pv3d-header-pv').outerHeight(); + h.pvContainer.css('top', t + 'px'); + var e = h.container.offset().top - h.pvContainer.offset().top + t; + h.container.find('.pv3d-header').css('top', e + 'px'), + h.container.find('.logo').css('top', e + 4 + 'px'), + h.container.find('.pv3d-lm .message-container').css('top', e + 'px'), + h.lmContainer.css('top', e + t + 'px'); + } + function p(t) { + var e, + n, + t = !(0 < arguments.length && void 0 !== t) || t; + (t && !A) || + ((e = h.container.find('.pv3d-pv').width()), + (n = h.container.find('.pv3d-lm').width()), + h.container.find('.pv3d-header.pv3d-header-pv').width(e), + h.container.find('.pv3d-header.pv3d-header-lm').width(n), + h.lmContainer.width(n), + u(), + (e = h.container.find('.pv3d-header').outerHeight()), + (n = h.lmContainer.find('.pv3d-footer').height()), + (n = (e = h.container.height() - e) - n), + h.lmContainer.find('.lm-component-container').height(n), + h.lmContainer.height(e), + t && h.pv.resized()); + } + function d(t, e) { + var n = []; + return b.getUnpToSmrMapping(t).then( + function (t) { + return ( + 0 !== t.structures.length && + (n = t.structures.map(function (t) { + return y.pdbMapping(t, 'SMR'); + })), + (n = + e.smrIds && 0 < e.smrIds.length + ? n.filter(function (t) { + return t.isPDB() || 0 <= e.smrIds.indexOf(t.getPdbId()); + }) + : n).sort(function (t, e) { + return e.getCoverage() - t.getCoverage(); + }), + n + ); + }, + function (t) { + return []; + }, + ); + } + function f(t) { + var e = []; + return b.getUnpToAfMapping(t).then( + function (t) { + return (e = + t !== {} && 0 < t.length + ? t.map(function (t) { + return y.pdbMapping(t, 'AF'); + }) + : e); + }, + function (t) { + return []; + }, + ); + } + n.append(a), + a[0].contentWindow.addEventListener('resize', function (t) { + p(); + }), + h.splitBar.mousedown(function (t) { + t.preventDefault(), + h.container.mousemove(function (t) { + var e; + t.preventDefault(), + (t = + (((t = t).pageX - h.container.offset().left) / h.container.width()) * 100), + (e = h.splitBar.width()), + $(h.container.find('.pv3d-pv')).css( + 'width', + 'calc(' + t + '% - ' + e / 2 + 'px)', + ), + $(h.container.find('.pv3d-lm')).css( + 'width', + 'calc(' + (100 - t) + '% - ' + e / 2 + 'px)', + ), + window.dispatchEvent(new Event('resize')), + p(); + }); + }), + h.container.mouseup(function () { + h.container.unbind('mousemove'), h.pv.highlightActiveStructure(); + }), + h.container.on('scroll', function () { + u(); + }), + h.container.find('.pv3d-button.pv3d-download').on('click', function () { + h.downloadMessage.css('display', 'block'); + }), + $(window).on('resize', function () { + p(); + }), + h.container.find('.pv3d-error-close-button').on('click', function () { + $(this).parent().css('display', 'none'); + }), + (function (u) { + h.opts = u; + return (function (t) { + return ( + t.sequenceStructureMapping + ? function (t) { + return ( + (h.pdbRecords = t.sequenceStructureMapping.map(function (t) { + var e = y.pdbMapping(t, 'USER'), + t = t.coverage.map(function (t) { + return new y.ObservedRange(t); + }); + return e.setObservedRanges(t), e; + })), + Promise.resolve() + ); + } + : function (a) { + var i = !0; + return b + .getUnpToPdbMapping(a.uniprotId) + .then( + function (t) { + (h.pdbRecords = + ((n = t[a.uniprotId].map(function (t) { + return y.pdbMapping(t, 'PDB'); + })), + (r = []), + n.forEach(function (t) { + var e = (function (t, e) { + for (var n = 0; n < e.length; n++) + if ( + t.getId() === e[n].getId() && + t.isPDB() === e[n].isPDB() + ) + return n; + return -1; + })(t, r); + 0 <= e + ? n[e].setTaxId(n[e].getTaxId() + ',' + t.getTaxId()) + : r.push(t); + }), + r)), + a.pdbIds && + 0 < a.pdbIds.length && + ((t = a.pdbIds), + (o = {}), + t.forEach(function (t) { + var e = (t = t.toLowerCase().trim()), + n = void 0, + r = t.indexOf(':'); + 0 < r && + ((e = t.substring(0, r).trim()), + (n = t.substring(r + 1).trim())), + Object.keys(o).indexOf(e) < 0 && (o[e] = []), + void 0 !== n && o[e].indexOf(n) < 0 && o[e].push(n); + }), + (i = o), + (h.pdbRecords = h.pdbRecords.filter(function (t) { + var e = t.getPdbId().toLowerCase(), + t = t.getChainId().toLowerCase(); + return ( + 0 <= Object.keys(i).indexOf(e) && + (0 === i[e].length || 0 <= i[e].indexOf(t)) + ); + }))); + var n, + r, + i, + o, + t = h.pdbRecords.map(function (t) { + return b.getObservedRanges(t.getPdbId(), t.getChainId()); + }); + return Promise.all(t) + .then(function (t) { + for (var e = 0; e < t.length; e++) { + var n = t[e][ + h.pdbRecords[e].getPdbId() + ].molecules[0].chains[0].observed.map(function (t) { + return new y.ObservedRange(t); + }); + h.pdbRecords[e].setObservedRanges(n); + } + }) + .then(function () { + var r = h.pdbRecords + .map(function (t) { + return t.getPdbId(); + }) + .filter(function (t, e, n) { + return n.indexOf(t) === e; + }), + t = r.map(function (t) { + return b.getUniprotSegments(t); + }); + return Promise.all(t).then(function (n) { + h.pdbRecords.forEach(function (t) { + var e = r.indexOf(t.getPdbId()); + t.parseInsertedRanges(n[e], h.uniprotId); + }); + }); + }); + }, + function (t) { + return ( + h.pdbRecords || (h.pdbRecords = []), + (i = !1), + Promise.all([f(a.uniprotId), d(a.uniprotId, a)]).then( + function (t) { + h.pdbRecords = h.pdbRecords.concat(t[0]).concat(t[1]); + }, + ) + ); + }, + ) + .then(function () { + var t, e, n, r; + return ( + h.pdbRecords || (h.pdbRecords = []), + a.alwaysLoadPredicted && i + ? ((t = []), + (e = f(a.uniprotId)), + (n = d(a.uniprotId, a)), + Array.isArray(a.alwaysLoadPredicted) + ? (0 <= + (r = a.alwaysLoadPredicted.map(function (t) { + return t.toUpperCase(); + })).indexOf('SMR') && t.push(n), + 0 <= r.indexOf('AF') && t.push(e)) + : (t = [e, n]), + Promise.all(t).then(function (t) { + var e = !0, + n = !1, + r = void 0; + try { + for ( + var i, o = t[Symbol.iterator](); + !(e = (i = o.next()).done); + e = !0 + ) { + var a = i.value; + h.pdbRecords = h.pdbRecords.concat(a); + } + } catch (t) { + (n = !0), (r = t); + } finally { + try { + !e && o.return && o.return(); + } finally { + if (n) throw r; + } + } + })) + : Promise.resolve() + ); + }) + .then(function () { + 0 === h.pdbRecords.length + ? delete h.pdbRecords + : (h.pdbRecords = (function (t, e, n) { + if ( + e.sortStructures && + e.sortStructures === n.sortStructuresOptions.id + ) + return t.sort(function (t, e) { + return t.getId() < e.getId() + ? -1 + : t.getId() == e.getId() + ? 0 + : 1; + }); + return t; + })(h.pdbRecords, a, h.settings)); + }); + } + )(t); + })((h.uniprotId, u)) + .then(function () { + if (h.opts.uniprotId) return b.getFastaByUniprotId(h.opts.uniprotId); + if (h.opts.sequence) return Promise.resolve('\n' + h.opts.sequence); + throw Error("Either 'uniprotId' or 'sequence' parameter needs to be provided."); + }) + .then( + function (e) { + if ( + (h.pv.initialize({ globals: h, fasta: e, opts: u }), + h.lm.initialize({ globals: h }), + 'pdbRecords' in h || + (h.lm.showErrorMessage( + 'No PDB mapping or Swissprot or AlphaFold model available for UniprotId ' + + h.uniprotId, + ), + h.eventEmitter.emit('pvReady'), + (A = !0)), + 'pdbRecords' in h) + ) { + var t = u.defaultStructureId, + n = h.pdbRecords[0]; + if (t) { + var r = !1, + i = !0, + e = !1, + o = void 0; + try { + for ( + var a, s = h.pdbRecords[Symbol.iterator](); + !(i = (a = s.next()).done); + i = !0 + ) { + var l = a.value; + if (l.getPdbId().toLowerCase() === t.toLowerCase()) { + (n = l), (r = !0); + break; + } + } + } catch (t) { + (e = !0), (o = t); + } finally { + try { + !i && s.return && s.return(); + } finally { + if (e) throw o; + } + } + r || + console.warn( + 'Default structure required (' + t + ') but not found in', + h.pdbRecords, + ); + } + h.activeStructure.set(n.getPdbId(), n.getChainId()).then(function () { + h.eventEmitter.emit('lmReady'); + }), + h.pv.getPlugin().getDispatcher().on('ready', c), + 0 < h.pv.getPlugin().categories.length && c(); + } + }, + function (t) { + var e; + (e = 'UniProt record ' + h.uniprotId + ' could not be retrieved.'), + x(h.containerId), + (h.errorMessageContainer.find('.message')[0].innerHTML = e), + h.errorMessageContainer.css('display', 'block'), + h.eventEmitter.emit('pvReady'); + }, + ); + function c() { + h.pvContainer + .find( + '.up_pftv_category_PREDICTED_STRUCTURES .up_pftv_track-header,.up_pftv_category_EXPERIMENTAL_STRUCTURES .up_pftv_track-header', + ) + .css('text-transform', 'uppercase'), + h.pv.modifyHtmlStructure(), + h.pv.resized(), + h.pv.registerCallbacksAndEvents(), + h.pv.setCategoriesTooltips(u.enableCategoriesTooltips, u.categoriesTooltips), + h.pv.reorderCategories(u), + h.eventEmitter.emit('pvReady'), + (A = !0), + p(); + } + })(t).then(function () { + var t; + (t = h.container.find('.pv3d-header')), + h.container + .find('.pv3d-content') + .css('height', 'calc(100% - ' + t.outerHeight(!0) + 'px)'), + x(h.containerId); + }); + } + (s.prototype.destroy = function () { + this.getLmController().destroy(), $('#' + this.globals.containerId).empty(); + }), + (s.prototype.loaded = function () { + try { + return this.getLmController().getPlugin().moleculeLoaded(); + } catch (t) { + return !1; + } + }), + (s.prototype.getGlobals = function () { + return this.globals; + }), + (s.prototype.getPvController = function () { + return this.getGlobals().pv; + }), + (s.prototype.getLmController = function () { + return this.getGlobals().lm; + }), + (s.prototype.on = function (t, e) { + this.globals.eventEmitter.on(t, e); + }), + (s.prototype.highlightInSequence = function (t, e) { + this.getPvController().getPlugin().highlightRegion(t, t), + e && + (this.getPvController().getPlugin().zoomIn(), + this.getPvController().highlightActiveStructure()); + }), + (s.prototype.deHighlightInSequence = function () { + this.getPvController().resetHighlight(); + }), + (s.prototype.highlightInStructure = function (t) { + this.getLmController().highlightResidue(t); + }), + (s.prototype.hideSequenceView = function (t) { + $(this.globals.pvContainer).css('display', 'none'), + $(this.globals.lmContainer).css('width', '100%'); + }), + (s.prototype.focusInStructure = function (t) { + var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0; + this.getLmController().focusResidue(t, e); + }), + (s.prototype.deHighlightInStructure = function () { + this.getLmController().dehighlightAll(); + }), + (s.prototype.structureLoaded = function () { + return this.globals.activeStructure.isSet(); + }), + (s.prototype.getSeqStrRanges = function () { + return this.globals.activeStructure.getSeqStrRange(); + }), + (t.exports = s); + }, + { + './css/styles.css': 75, + './lm.controller.js': 77, + './pdb.mapping': 79, + './pv.controller.js': 80, + './services': 81, + './settings': 82, + './svg.symbols': 83, + downloadjs: 34, + events: 35, + http: 64, + jquery: 40, + }, + ], + }, + {}, + ['MolArt'], + )('MolArt'); +}); diff --git a/src/components/FunctionalArea/ContextMenu/ContextMenu.component.tsx b/src/components/FunctionalArea/ContextMenu/ContextMenu.component.tsx index dc0d34ca..e70d0683 100644 --- a/src/components/FunctionalArea/ContextMenu/ContextMenu.component.tsx +++ b/src/components/FunctionalArea/ContextMenu/ContextMenu.component.tsx @@ -1,12 +1,14 @@ import { contextMenuSelector } from '@/redux/contextMenu/contextMenu.selector'; -// import { useAppDispatch } from '@/redux/hooks/useAppDispatch'; +import { useAppDispatch } from '@/redux/hooks/useAppDispatch'; import { useAppSelector } from '@/redux/hooks/useAppSelector'; import React from 'react'; import { twMerge } from 'tailwind-merge'; import { searchedBioEntityElementUniProtIdSelector } from '@/redux/bioEntity/bioEntity.selectors'; +import { openMolArtModalById } from '@/redux/modal/modal.slice'; +import { closeContextMenu } from '@/redux/contextMenu/contextMenu.slice'; export const ContextMenu = (): React.ReactNode => { - // const dispatch = useAppDispatch(); + const dispatch = useAppDispatch(); const { isOpen, coordinates } = useAppSelector(contextMenuSelector); const unitProtId = useAppSelector(searchedBioEntityElementUniProtIdSelector); @@ -16,6 +18,13 @@ export const ContextMenu = (): React.ReactNode => { return isUnitProtIdAvailable() ? unitProtId : 'no UnitProt ID available'; }; + const handleOpenMolArtClick = (): void => { + if (isUnitProtIdAvailable()) { + dispatch(closeContextMenu()); + dispatch(openMolArtModalById(unitProtId)); + } + }; + return ( <div className={twMerge( @@ -25,14 +34,16 @@ export const ContextMenu = (): React.ReactNode => { // eslint-disable-next-line no-magic-numbers style={{ left: `${coordinates[0]}px`, top: `${coordinates[1]}px` }} > - <div + <button className={twMerge( - 'cursor-pointer', + 'cursor-pointer text-xs font-normal', !isUnitProtIdAvailable() ? 'cursor-not-allowed text-greyscale-700' : '', )} + onClick={handleOpenMolArtClick} + type="button" > Open MolArt ({getUnitProtId()}) - </div> + </button> </div> ); }; diff --git a/src/components/FunctionalArea/Modal/Modal.component.tsx b/src/components/FunctionalArea/Modal/Modal.component.tsx index 4ca533ed..c7a65a98 100644 --- a/src/components/FunctionalArea/Modal/Modal.component.tsx +++ b/src/components/FunctionalArea/Modal/Modal.component.tsx @@ -6,6 +6,7 @@ import { Icon } from '@/shared/Icon'; import { twMerge } from 'tailwind-merge'; import { MODAL_ROLE } from './Modal.constants'; import { OverviewImagesModal } from './OverviewImagesModal'; +import { MolArtModal } from './MolArtModal/MolArtModal.component'; export const Modal = (): React.ReactNode => { const dispatch = useAppDispatch(); @@ -32,6 +33,7 @@ export const Modal = (): React.ReactNode => { </button> </div> {isOpen && modalName === 'overview-images' && <OverviewImagesModal />} + {isOpen && modalName === 'mol-art' && <MolArtModal />} </div> </div> </div> diff --git a/src/components/FunctionalArea/Modal/MolArtModal/MolArtModal.component.tsx b/src/components/FunctionalArea/Modal/MolArtModal/MolArtModal.component.tsx new file mode 100644 index 00000000..9a841361 --- /dev/null +++ b/src/components/FunctionalArea/Modal/MolArtModal/MolArtModal.component.tsx @@ -0,0 +1,43 @@ +import * as React from 'react'; +import { useAppSelector } from '@/redux/hooks/useAppSelector'; +import { currentSelectedBioEntityIdSelector } from '@/redux/modal/modal.selector'; +import { useEffect } from 'react'; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +declare function require(name: string): any; + +export const MolArtModal: React.FC = () => { + const uniprot = useAppSelector(currentSelectedBioEntityIdSelector); + const MolArt = require('MolArt'); + + // useEffect(() => { + // const script = document.createElement('script'); + + // script.src = '/molart.js'; + // script.async = true; + + // document.body.appendChild(script); + + // return () => { + // document.body.removeChild(script); + // }; + // }, []); + + useEffect(() => { + const molart = new MolArt({ + uniprotId: uniprot, + containerId: 'molArtContainer', + }); + + // eslint-disable-next-line no-console + // console.log(molart.destroy(), 'testow molart'); + + return () => { + molart.destroy(); + }; + }, [uniprot, MolArt]); + + return ( + <div className="flex h-full w-full items-center justify-center bg-white" id="molArtContainer" /> + ); +}; diff --git a/src/components/FunctionalArea/Modal/MolArtModal/index.ts b/src/components/FunctionalArea/Modal/MolArtModal/index.ts new file mode 100644 index 00000000..405af4c2 --- /dev/null +++ b/src/components/FunctionalArea/Modal/MolArtModal/index.ts @@ -0,0 +1 @@ +export { MolArtModal } from './MolArtModal.component'; diff --git a/src/components/Map/MapAdditionalOptions/MapAdditionalOptions.component.test.tsx b/src/components/Map/MapAdditionalOptions/MapAdditionalOptions.component.test.tsx index 4fddb0e3..19571c28 100644 --- a/src/components/Map/MapAdditionalOptions/MapAdditionalOptions.component.test.tsx +++ b/src/components/Map/MapAdditionalOptions/MapAdditionalOptions.component.test.tsx @@ -68,8 +68,8 @@ describe('MapAdditionalOptions - component', () => { const actions = store.getActions(); expect(actions[FIRST_ARRAY_ELEMENT]).toStrictEqual({ - payload: undefined, - type: 'modal/openOverviewImagesModal', + payload: 0, + type: 'modal/openOverviewImagesModalById', }); }); }); diff --git a/src/components/Map/MapViewer/utils/config/reactionsLayer/useOlMapReactionsLayer.ts b/src/components/Map/MapViewer/utils/config/reactionsLayer/useOlMapReactionsLayer.ts index 3c4fbb64..8b784426 100644 --- a/src/components/Map/MapViewer/utils/config/reactionsLayer/useOlMapReactionsLayer.ts +++ b/src/components/Map/MapViewer/utils/config/reactionsLayer/useOlMapReactionsLayer.ts @@ -12,12 +12,13 @@ import Stroke from 'ol/style/Stroke'; import Style from 'ol/style/Style'; import { useMemo } from 'react'; import { useSelector } from 'react-redux'; +import { Feature } from 'ol'; import { getLineFeature } from './getLineFeature'; const getReactionsLines = (reactions: Reaction[]): LinePoint[] => reactions.map(({ lines }) => lines.map(({ start, end }): LinePoint => [start, end])).flat(); -export const useOlMapReactionsLayer = (): VectorLayer<VectorSource<Geometry>> => { +export const useOlMapReactionsLayer = (): VectorLayer<VectorSource<Feature<Geometry>>> => { const pointToProjection = usePointToProjection(); const reactions = useSelector(allReactionsSelectorOfCurrentMap); const reactionsLines = getReactionsLines(reactions); diff --git a/src/components/Map/MapViewer/utils/listeners/mapRightClick/handleBioEntityResults.ts b/src/components/Map/MapViewer/utils/listeners/mapRightClick/handleBioEntityResults.ts index e42c06b2..be06232a 100644 --- a/src/components/Map/MapViewer/utils/listeners/mapRightClick/handleBioEntityResults.ts +++ b/src/components/Map/MapViewer/utils/listeners/mapRightClick/handleBioEntityResults.ts @@ -1,6 +1,5 @@ import { getMultiBioEntity } from '@/redux/bioEntity/bioEntity.thunks'; import { setCurrentSelectedBioEntityId } from '@/redux/contextMenu/contextMenu.slice'; -// import { openBioEntityDrawerById } from '@/redux/drawer/drawer.slice'; import { AppDispatch } from '@/redux/store'; import { ElementSearchResult } from '@/types/models'; diff --git a/src/redux/map/map.constants.ts b/src/redux/map/map.constants.ts index e02cb78f..5a4cd084 100644 --- a/src/redux/map/map.constants.ts +++ b/src/redux/map/map.constants.ts @@ -16,6 +16,8 @@ export const BACKGROUND_ID_DEFAULT: number = 0; export const OVERVIEW_IMAGE_ID_DEFAULT: number = 0; +export const MOL_ART_UNIPROT_ID_DEFAULT: string = ''; + export const MAP_DATA_INITIAL_STATE: MapData = { projectId: PROJECT_ID, meshId: '', diff --git a/src/redux/modal/modal.constants.ts b/src/redux/modal/modal.constants.ts index 2266911d..8d8f27bd 100644 --- a/src/redux/modal/modal.constants.ts +++ b/src/redux/modal/modal.constants.ts @@ -1,4 +1,4 @@ -import { OVERVIEW_IMAGE_ID_DEFAULT } from '../map/map.constants'; +import { MOL_ART_UNIPROT_ID_DEFAULT, OVERVIEW_IMAGE_ID_DEFAULT } from '../map/map.constants'; import { ModalState } from './modal.types'; export const MODAL_INITIAL_STATE: ModalState = { @@ -8,4 +8,7 @@ export const MODAL_INITIAL_STATE: ModalState = { overviewImagesState: { imageId: OVERVIEW_IMAGE_ID_DEFAULT, }, + molArtState: { + uniprotId: MOL_ART_UNIPROT_ID_DEFAULT, + }, }; diff --git a/src/redux/modal/modal.mock.ts b/src/redux/modal/modal.mock.ts index 2f202d4b..47c46050 100644 --- a/src/redux/modal/modal.mock.ts +++ b/src/redux/modal/modal.mock.ts @@ -1,4 +1,4 @@ -import { OVERVIEW_IMAGE_ID_DEFAULT } from '../map/map.constants'; +import { MOL_ART_UNIPROT_ID_DEFAULT, OVERVIEW_IMAGE_ID_DEFAULT } from '../map/map.constants'; import { ModalState } from './modal.types'; export const MODAL_INITIAL_STATE_MOCK: ModalState = { @@ -8,4 +8,7 @@ export const MODAL_INITIAL_STATE_MOCK: ModalState = { overviewImagesState: { imageId: OVERVIEW_IMAGE_ID_DEFAULT, }, + molArtState: { + uniprotId: MOL_ART_UNIPROT_ID_DEFAULT, + }, }; diff --git a/src/redux/modal/modal.reducers.ts b/src/redux/modal/modal.reducers.ts index b5534465..e707efc9 100644 --- a/src/redux/modal/modal.reducers.ts +++ b/src/redux/modal/modal.reducers.ts @@ -23,3 +23,15 @@ export const openOverviewImagesModalByIdReducer = ( imageId: action.payload, }; }; + +export const openMolArtModalByIdReducer = ( + state: ModalState, + action: PayloadAction<string | undefined>, +): void => { + state.isOpen = true; + state.modalName = 'mol-art'; + state.modalTitle = 'MolArt'; + state.molArtState = { + uniprotId: action.payload, + }; +}; diff --git a/src/redux/modal/modal.selector.ts b/src/redux/modal/modal.selector.ts index c233d253..22768142 100644 --- a/src/redux/modal/modal.selector.ts +++ b/src/redux/modal/modal.selector.ts @@ -1,5 +1,5 @@ import { createSelector } from '@reduxjs/toolkit'; -import { OVERVIEW_IMAGE_ID_DEFAULT } from '../map/map.constants'; +import { OVERVIEW_IMAGE_ID_DEFAULT, MOL_ART_UNIPROT_ID_DEFAULT } from '../map/map.constants'; import { rootSelector } from '../root/root.selectors'; export const modalSelector = createSelector(rootSelector, state => state.modal); @@ -10,3 +10,8 @@ export const currentOverviewImageId = createSelector( modalSelector, modal => modal?.overviewImagesState.imageId || OVERVIEW_IMAGE_ID_DEFAULT, ); + +export const currentSelectedBioEntityIdSelector = createSelector( + modalSelector, + modal => modal?.molArtState.uniprotId || MOL_ART_UNIPROT_ID_DEFAULT, +); diff --git a/src/redux/modal/modal.slice.ts b/src/redux/modal/modal.slice.ts index a5ae1796..32798f62 100644 --- a/src/redux/modal/modal.slice.ts +++ b/src/redux/modal/modal.slice.ts @@ -4,6 +4,7 @@ import { closeModalReducer, openModalReducer, openOverviewImagesModalByIdReducer, + openMolArtModalByIdReducer, } from './modal.reducers'; const modalSlice = createSlice({ @@ -13,9 +14,11 @@ const modalSlice = createSlice({ openModal: openModalReducer, closeModal: closeModalReducer, openOverviewImagesModalById: openOverviewImagesModalByIdReducer, + openMolArtModalById: openMolArtModalByIdReducer, }, }); -export const { openModal, closeModal, openOverviewImagesModalById } = modalSlice.actions; +export const { openModal, closeModal, openOverviewImagesModalById, openMolArtModalById } = + modalSlice.actions; export default modalSlice.reducer; diff --git a/src/redux/modal/modal.types.ts b/src/redux/modal/modal.types.ts index cad6ec7d..69c6e466 100644 --- a/src/redux/modal/modal.types.ts +++ b/src/redux/modal/modal.types.ts @@ -4,9 +4,14 @@ export type OverviewImagesModalState = { imageId?: number; }; +export type MolArtModalState = { + uniprotId: string | undefined; +}; + export interface ModalState { isOpen: boolean; modalName: ModalName; modalTitle: string; overviewImagesState: OverviewImagesModalState; + molArtState: MolArtModalState; } diff --git a/src/types/modal.ts b/src/types/modal.ts index edfac1fd..cf584f9e 100644 --- a/src/types/modal.ts +++ b/src/types/modal.ts @@ -1 +1 @@ -export type ModalName = 'none' | 'overview-images'; +export type ModalName = 'none' | 'overview-images' | 'mol-art'; diff --git a/yarn.lock b/yarn.lock index 3ad8581e..c630d838 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,7 +7,7 @@ "resolved" "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" "version" "1.2.6" -"@adobe/css-tools@^4.3.0": +"@adobe/css-tools@^4.3.1": "integrity" "sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==" "resolved" "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.2.tgz" "version" "4.3.2" @@ -25,58 +25,58 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13": - "integrity" "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==" - "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz" - "version" "7.22.13" +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": + "integrity" "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==" + "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz" + "version" "7.23.5" dependencies: - "@babel/highlight" "^7.22.13" + "@babel/highlight" "^7.23.4" "chalk" "^2.4.2" -"@babel/compat-data@^7.22.9": - "integrity" "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==" - "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz" - "version" "7.23.2" +"@babel/compat-data@^7.23.5": + "integrity" "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==" + "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz" + "version" "7.23.5" "@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.8.0": - "integrity" "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==" - "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz" - "version" "7.23.2" + "integrity" "sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==" + "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.23.6.tgz" + "version" "7.23.6" dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-module-transforms" "^7.23.0" - "@babel/helpers" "^7.23.2" - "@babel/parser" "^7.23.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.6" + "@babel/parser" "^7.23.6" "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.2" - "@babel/types" "^7.23.0" + "@babel/traverse" "^7.23.6" + "@babel/types" "^7.23.6" "convert-source-map" "^2.0.0" "debug" "^4.1.0" "gensync" "^1.0.0-beta.2" "json5" "^2.2.3" "semver" "^6.3.1" -"@babel/generator@^7.23.0", "@babel/generator@^7.7.2": - "integrity" "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==" - "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz" - "version" "7.23.0" +"@babel/generator@^7.23.6", "@babel/generator@^7.7.2": + "integrity" "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==" + "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz" + "version" "7.23.6" dependencies: - "@babel/types" "^7.23.0" + "@babel/types" "^7.23.6" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" "jsesc" "^2.5.1" -"@babel/helper-compilation-targets@^7.22.15": - "integrity" "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==" - "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz" - "version" "7.22.15" +"@babel/helper-compilation-targets@^7.23.6": + "integrity" "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz" + "version" "7.23.6" dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.15" - "browserslist" "^4.21.9" + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + "browserslist" "^4.22.2" "lru-cache" "^5.1.1" "semver" "^6.3.1" @@ -107,10 +107,10 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.23.0": - "integrity" "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==" - "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz" - "version" "7.23.0" +"@babel/helper-module-transforms@^7.23.3": + "integrity" "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz" + "version" "7.23.3" dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-module-imports" "^7.22.15" @@ -137,43 +137,43 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-string-parser@^7.22.5": - "integrity" "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==" - "resolved" "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz" - "version" "7.22.5" +"@babel/helper-string-parser@^7.23.4": + "integrity" "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz" + "version" "7.23.4" "@babel/helper-validator-identifier@^7.22.20": "integrity" "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz" "version" "7.22.20" -"@babel/helper-validator-option@^7.22.15": - "integrity" "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==" - "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz" - "version" "7.22.15" +"@babel/helper-validator-option@^7.23.5": + "integrity" "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz" + "version" "7.23.5" -"@babel/helpers@^7.23.2": - "integrity" "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==" - "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz" - "version" "7.23.2" +"@babel/helpers@^7.23.6": + "integrity" "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==" + "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz" + "version" "7.23.6" dependencies: "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.2" - "@babel/types" "^7.23.0" + "@babel/traverse" "^7.23.6" + "@babel/types" "^7.23.6" -"@babel/highlight@^7.22.13": - "integrity" "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==" - "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz" - "version" "7.22.20" +"@babel/highlight@^7.23.4": + "integrity" "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==" + "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz" + "version" "7.23.4" dependencies: "@babel/helper-validator-identifier" "^7.22.20" "chalk" "^2.4.2" "js-tokens" "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0": - "integrity" "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==" - "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz" - "version" "7.23.0" +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.6": + "integrity" "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==" + "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz" + "version" "7.23.6" "@babel/plugin-syntax-async-generators@^7.8.4": "integrity" "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==" @@ -211,9 +211,9 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.7.2": - "integrity" "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz" - "version" "7.22.5" + "integrity" "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz" + "version" "7.23.3" dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -267,23 +267,23 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - "integrity" "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==" - "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz" - "version" "7.22.5" + "integrity" "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz" + "version" "7.23.3" dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.15", "@babel/runtime@^7.9.2": - "integrity" "sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==" - "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.1.tgz" - "version" "7.23.1" +"@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.22.15", "@babel/runtime@^7.23.2", "@babel/runtime@^7.9.2": + "integrity" "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==" + "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.6.tgz" + "version" "7.23.6" dependencies: "regenerator-runtime" "^0.14.0" -"@babel/runtime@7.22.15": - "integrity" "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==" - "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz" - "version" "7.22.15" +"@babel/runtime@7.23.4": + "integrity" "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==" + "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz" + "version" "7.23.4" dependencies: "regenerator-runtime" "^0.14.0" @@ -296,28 +296,28 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.23.2": - "integrity" "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==" - "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz" - "version" "7.23.2" +"@babel/traverse@^7.23.6": + "integrity" "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==" + "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz" + "version" "7.23.6" dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.0" - "@babel/types" "^7.23.0" - "debug" "^4.1.0" + "@babel/parser" "^7.23.6" + "@babel/types" "^7.23.6" + "debug" "^4.3.1" "globals" "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.3.3": - "integrity" "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==" - "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz" - "version" "7.23.0" +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.3.3": + "integrity" "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==" + "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz" + "version" "7.23.6" dependencies: - "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" "to-fast-properties" "^2.0.0" @@ -332,15 +332,15 @@ "version" "1.5.0" "@commitlint/cli@^17.7.1": - "integrity" "sha512-t3N7TZq7lOeqTOyEgfGcaltHqEJf7YDlPg75MldeVPPyz14jZq/+mbGF9tueDLFX8R6RwdymrN6D+U5XwZ8Iwg==" - "resolved" "https://registry.npmjs.org/@commitlint/cli/-/cli-17.7.2.tgz" - "version" "17.7.2" - dependencies: - "@commitlint/format" "^17.4.4" - "@commitlint/lint" "^17.7.0" - "@commitlint/load" "^17.7.2" - "@commitlint/read" "^17.5.1" - "@commitlint/types" "^17.4.4" + "integrity" "sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg==" + "resolved" "https://registry.npmjs.org/@commitlint/cli/-/cli-17.8.1.tgz" + "version" "17.8.1" + dependencies: + "@commitlint/format" "^17.8.1" + "@commitlint/lint" "^17.8.1" + "@commitlint/load" "^17.8.1" + "@commitlint/read" "^17.8.1" + "@commitlint/types" "^17.8.1" "execa" "^5.0.0" "lodash.isfunction" "^3.0.9" "resolve-from" "5.0.0" @@ -348,72 +348,72 @@ "yargs" "^17.0.0" "@commitlint/config-conventional@^17.7.0": - "integrity" "sha512-iicqh2o6et+9kWaqsQiEYZzfLbtoWv9uZl8kbI8EGfnc0HeGafQBF7AJ0ylN9D/2kj6txltsdyQs8+2fTMwWEw==" - "resolved" "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.7.0.tgz" - "version" "17.7.0" + "integrity" "sha512-NxCOHx1kgneig3VLauWJcDWS40DVjg7nKOpBEEK9E5fjJpQqLCilcnKkIIjdBH98kEO1q3NpE5NSrZ2kl/QGJg==" + "resolved" "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.8.1.tgz" + "version" "17.8.1" dependencies: "conventional-changelog-conventionalcommits" "^6.1.0" -"@commitlint/config-validator@^17.6.7": - "integrity" "sha512-vJSncmnzwMvpr3lIcm0I8YVVDJTzyjy7NZAeXbTXy+MPUdAr9pKyyg7Tx/ebOQ9kqzE6O9WT6jg2164br5UdsQ==" - "resolved" "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.6.7.tgz" - "version" "17.6.7" +"@commitlint/config-validator@^17.8.1": + "integrity" "sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA==" + "resolved" "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.8.1.tgz" + "version" "17.8.1" dependencies: - "@commitlint/types" "^17.4.4" + "@commitlint/types" "^17.8.1" "ajv" "^8.11.0" -"@commitlint/ensure@^17.6.7": - "integrity" "sha512-mfDJOd1/O/eIb/h4qwXzUxkmskXDL9vNPnZ4AKYKiZALz4vHzwMxBSYtyL2mUIDeU9DRSpEUins8SeKtFkYHSw==" - "resolved" "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.6.7.tgz" - "version" "17.6.7" +"@commitlint/ensure@^17.8.1": + "integrity" "sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow==" + "resolved" "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.8.1.tgz" + "version" "17.8.1" dependencies: - "@commitlint/types" "^17.4.4" + "@commitlint/types" "^17.8.1" "lodash.camelcase" "^4.3.0" "lodash.kebabcase" "^4.1.1" "lodash.snakecase" "^4.1.1" "lodash.startcase" "^4.4.0" "lodash.upperfirst" "^4.3.1" -"@commitlint/execute-rule@^17.4.0": - "integrity" "sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==" - "resolved" "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz" - "version" "17.4.0" +"@commitlint/execute-rule@^17.8.1": + "integrity" "sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ==" + "resolved" "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.8.1.tgz" + "version" "17.8.1" -"@commitlint/format@^17.4.4": - "integrity" "sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ==" - "resolved" "https://registry.npmjs.org/@commitlint/format/-/format-17.4.4.tgz" - "version" "17.4.4" +"@commitlint/format@^17.8.1": + "integrity" "sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg==" + "resolved" "https://registry.npmjs.org/@commitlint/format/-/format-17.8.1.tgz" + "version" "17.8.1" dependencies: - "@commitlint/types" "^17.4.4" + "@commitlint/types" "^17.8.1" "chalk" "^4.1.0" -"@commitlint/is-ignored@^17.7.0": - "integrity" "sha512-043rA7m45tyEfW7Zv2vZHF++176MLHH9h70fnPoYlB1slKBeKl8BwNIlnPg4xBdRBVNPaCqvXxWswx2GR4c9Hw==" - "resolved" "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.7.0.tgz" - "version" "17.7.0" +"@commitlint/is-ignored@^17.8.1": + "integrity" "sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g==" + "resolved" "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.8.1.tgz" + "version" "17.8.1" dependencies: - "@commitlint/types" "^17.4.4" + "@commitlint/types" "^17.8.1" "semver" "7.5.4" -"@commitlint/lint@^17.7.0": - "integrity" "sha512-TCQihm7/uszA5z1Ux1vw+Nf3yHTgicus/+9HiUQk+kRSQawByxZNESeQoX9ujfVd3r4Sa+3fn0JQAguG4xvvbA==" - "resolved" "https://registry.npmjs.org/@commitlint/lint/-/lint-17.7.0.tgz" - "version" "17.7.0" - dependencies: - "@commitlint/is-ignored" "^17.7.0" - "@commitlint/parse" "^17.7.0" - "@commitlint/rules" "^17.7.0" - "@commitlint/types" "^17.4.4" - -"@commitlint/load@^17.7.2", "@commitlint/load@>6.1.1": - "integrity" "sha512-XA7WTnsjHZ4YH6ZYsrnxgLdXzriwMMq+utZUET6spbOEEIPBCDLdOQXS26P+v3TTO4hUHOEhzUquaBv3jbBixw==" - "resolved" "https://registry.npmjs.org/@commitlint/load/-/load-17.7.2.tgz" - "version" "17.7.2" - dependencies: - "@commitlint/config-validator" "^17.6.7" - "@commitlint/execute-rule" "^17.4.0" - "@commitlint/resolve-extends" "^17.6.7" - "@commitlint/types" "^17.4.4" +"@commitlint/lint@^17.8.1": + "integrity" "sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA==" + "resolved" "https://registry.npmjs.org/@commitlint/lint/-/lint-17.8.1.tgz" + "version" "17.8.1" + dependencies: + "@commitlint/is-ignored" "^17.8.1" + "@commitlint/parse" "^17.8.1" + "@commitlint/rules" "^17.8.1" + "@commitlint/types" "^17.8.1" + +"@commitlint/load@^17.8.1", "@commitlint/load@>6.1.1": + "integrity" "sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA==" + "resolved" "https://registry.npmjs.org/@commitlint/load/-/load-17.8.1.tgz" + "version" "17.8.1" + dependencies: + "@commitlint/config-validator" "^17.8.1" + "@commitlint/execute-rule" "^17.8.1" + "@commitlint/resolve-extends" "^17.8.1" + "@commitlint/types" "^17.8.1" "@types/node" "20.5.1" "chalk" "^4.1.0" "cosmiconfig" "^8.0.0" @@ -423,72 +423,72 @@ "lodash.uniq" "^4.5.0" "resolve-from" "^5.0.0" "ts-node" "^10.8.1" - "typescript" "^4.6.4 || ^5.0.0" + "typescript" "^4.6.4 || ^5.2.2" -"@commitlint/message@^17.4.2": - "integrity" "sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q==" - "resolved" "https://registry.npmjs.org/@commitlint/message/-/message-17.4.2.tgz" - "version" "17.4.2" +"@commitlint/message@^17.8.1": + "integrity" "sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA==" + "resolved" "https://registry.npmjs.org/@commitlint/message/-/message-17.8.1.tgz" + "version" "17.8.1" -"@commitlint/parse@^17.7.0": - "integrity" "sha512-dIvFNUMCUHqq5Abv80mIEjLVfw8QNuA4DS7OWip4pcK/3h5wggmjVnlwGCDvDChkw2TjK1K6O+tAEV78oxjxag==" - "resolved" "https://registry.npmjs.org/@commitlint/parse/-/parse-17.7.0.tgz" - "version" "17.7.0" +"@commitlint/parse@^17.8.1": + "integrity" "sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw==" + "resolved" "https://registry.npmjs.org/@commitlint/parse/-/parse-17.8.1.tgz" + "version" "17.8.1" dependencies: - "@commitlint/types" "^17.4.4" + "@commitlint/types" "^17.8.1" "conventional-changelog-angular" "^6.0.0" "conventional-commits-parser" "^4.0.0" -"@commitlint/read@^17.5.1": - "integrity" "sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg==" - "resolved" "https://registry.npmjs.org/@commitlint/read/-/read-17.5.1.tgz" - "version" "17.5.1" +"@commitlint/read@^17.8.1": + "integrity" "sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w==" + "resolved" "https://registry.npmjs.org/@commitlint/read/-/read-17.8.1.tgz" + "version" "17.8.1" dependencies: - "@commitlint/top-level" "^17.4.0" - "@commitlint/types" "^17.4.4" + "@commitlint/top-level" "^17.8.1" + "@commitlint/types" "^17.8.1" "fs-extra" "^11.0.0" "git-raw-commits" "^2.0.11" "minimist" "^1.2.6" -"@commitlint/resolve-extends@^17.6.7": - "integrity" "sha512-PfeoAwLHtbOaC9bGn/FADN156CqkFz6ZKiVDMjuC2N5N0740Ke56rKU7Wxdwya8R8xzLK9vZzHgNbuGhaOVKIg==" - "resolved" "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.6.7.tgz" - "version" "17.6.7" +"@commitlint/resolve-extends@^17.8.1": + "integrity" "sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q==" + "resolved" "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.8.1.tgz" + "version" "17.8.1" dependencies: - "@commitlint/config-validator" "^17.6.7" - "@commitlint/types" "^17.4.4" + "@commitlint/config-validator" "^17.8.1" + "@commitlint/types" "^17.8.1" "import-fresh" "^3.0.0" "lodash.mergewith" "^4.6.2" "resolve-from" "^5.0.0" "resolve-global" "^1.0.0" -"@commitlint/rules@^17.7.0": - "integrity" "sha512-J3qTh0+ilUE5folSaoK91ByOb8XeQjiGcdIdiB/8UT1/Rd1itKo0ju/eQVGyFzgTMYt8HrDJnGTmNWwcMR1rmA==" - "resolved" "https://registry.npmjs.org/@commitlint/rules/-/rules-17.7.0.tgz" - "version" "17.7.0" +"@commitlint/rules@^17.8.1": + "integrity" "sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA==" + "resolved" "https://registry.npmjs.org/@commitlint/rules/-/rules-17.8.1.tgz" + "version" "17.8.1" dependencies: - "@commitlint/ensure" "^17.6.7" - "@commitlint/message" "^17.4.2" - "@commitlint/to-lines" "^17.4.0" - "@commitlint/types" "^17.4.4" + "@commitlint/ensure" "^17.8.1" + "@commitlint/message" "^17.8.1" + "@commitlint/to-lines" "^17.8.1" + "@commitlint/types" "^17.8.1" "execa" "^5.0.0" -"@commitlint/to-lines@^17.4.0": - "integrity" "sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg==" - "resolved" "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.4.0.tgz" - "version" "17.4.0" +"@commitlint/to-lines@^17.8.1": + "integrity" "sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA==" + "resolved" "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.8.1.tgz" + "version" "17.8.1" -"@commitlint/top-level@^17.4.0": - "integrity" "sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g==" - "resolved" "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.4.0.tgz" - "version" "17.4.0" +"@commitlint/top-level@^17.8.1": + "integrity" "sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA==" + "resolved" "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.8.1.tgz" + "version" "17.8.1" dependencies: "find-up" "^5.0.0" -"@commitlint/types@^17.4.4": - "integrity" "sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==" - "resolved" "https://registry.npmjs.org/@commitlint/types/-/types-17.4.4.tgz" - "version" "17.4.4" +"@commitlint/types@^17.8.1": + "integrity" "sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==" + "resolved" "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz" + "version" "17.8.1" dependencies: "chalk" "^4.1.0" @@ -539,14 +539,14 @@ "eslint-visitor-keys" "^3.3.0" "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.0", "@eslint-community/regexpp@^4.6.1": - "integrity" "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==" - "resolved" "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz" - "version" "4.9.1" + "integrity" "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==" + "resolved" "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz" + "version" "4.10.0" -"@eslint/eslintrc@^2.1.2": - "integrity" "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==" - "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz" - "version" "2.1.2" +"@eslint/eslintrc@^2.1.4": + "integrity" "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==" + "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" + "version" "2.1.4" dependencies: "ajv" "^6.12.4" "debug" "^4.3.2" @@ -558,17 +558,17 @@ "minimatch" "^3.1.2" "strip-json-comments" "^3.1.1" -"@eslint/js@8.50.0": - "integrity" "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==" - "resolved" "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz" - "version" "8.50.0" +"@eslint/js@8.56.0": + "integrity" "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==" + "resolved" "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz" + "version" "8.56.0" -"@humanwhocodes/config-array@^0.11.11": - "integrity" "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==" - "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz" - "version" "0.11.11" +"@humanwhocodes/config-array@^0.11.13": + "integrity" "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==" + "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz" + "version" "0.11.13" dependencies: - "@humanwhocodes/object-schema" "^1.2.1" + "@humanwhocodes/object-schema" "^2.0.1" "debug" "^4.1.1" "minimatch" "^3.0.5" @@ -577,10 +577,10 @@ "resolved" "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" "version" "1.0.1" -"@humanwhocodes/object-schema@^1.2.1": - "integrity" "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" - "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" - "version" "1.2.1" +"@humanwhocodes/object-schema@^2.0.1": + "integrity" "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==" + "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz" + "version" "2.0.1" "@istanbuljs/load-nyc-config@^1.0.0": "integrity" "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==" @@ -815,9 +815,9 @@ "version" "1.4.15" "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - "integrity" "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==" - "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz" - "version" "0.3.19" + "integrity" "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==" + "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz" + "version" "0.3.20" dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -843,13 +843,13 @@ "glob" "7.1.7" "@next/font@^13.5.2": - "integrity" "sha512-rOMki1/9BP9N93RZABiiF0EidMGgyCvNVSKvLLAnMkVh/IYk4Z827+NRuxCyRQCeT3vv/AeCiP5SFPAP10SPrQ==" - "resolved" "https://registry.npmjs.org/@next/font/-/font-13.5.4.tgz" - "version" "13.5.4" + "integrity" "sha512-urmUq05uCVJsBqAAJEV+xK5OTTodrSxdiG+351SOSjlWctywdBM6qX+K9pIe3K48RxjfnxlBbXjGyOJAji+pfw==" + "resolved" "https://registry.npmjs.org/@next/font/-/font-13.5.6.tgz" + "version" "13.5.6" -"@next/swc-darwin-arm64@13.4.19": - "integrity" "sha512-vv1qrjXeGbuF2mOkhkdxMDtv9np7W4mcBtaDnHU+yJG+bBwa6rYsYSCI/9Xm5+TuF5SbZbrWO6G1NfTh1TMjvQ==" - "resolved" "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.19.tgz" +"@next/swc-darwin-x64@13.4.19": + "integrity" "sha512-jyzO6wwYhx6F+7gD8ddZfuqO4TtpJdw3wyOduR4fxTUCm3aLw7YmHGYNjS0xRSYGAkLpBkH1E0RcelyId6lNsw==" + "resolved" "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.19.tgz" "version" "13.4.19" "@nodelib/fs.scandir@2.1.5": @@ -878,7 +878,7 @@ "resolved" "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.8.4.tgz" "version" "3.8.4" -"@pkgr/utils@^2.3.1": +"@pkgr/utils@^2.4.2": "integrity" "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==" "resolved" "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz" "version" "2.4.2" @@ -891,9 +891,9 @@ "tslib" "^2.6.0" "@reduxjs/toolkit@^1.9.6": - "integrity" "sha512-Gc4ikl90ORF4viIdAkY06JNUnODjKfGxZRwATM30EdHq8hLSVoSrwXne5dd739yenP5bJxAX7tLuOWK5RPGtrw==" - "resolved" "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.6.tgz" - "version" "1.9.6" + "integrity" "sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==" + "resolved" "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz" + "version" "1.9.7" dependencies: "immer" "^9.0.21" "redux" "^4.2.1" @@ -901,9 +901,9 @@ "reselect" "^4.1.8" "@rushstack/eslint-patch@^1.1.3": - "integrity" "sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==" - "resolved" "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz" - "version" "1.5.1" + "integrity" "sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==" + "resolved" "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.6.1.tgz" + "version" "1.6.1" "@sinclair/typebox@^0.27.8": "integrity" "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" @@ -946,11 +946,11 @@ "pretty-format" "^27.0.2" "@testing-library/jest-dom@^6.1.3": - "integrity" "sha512-YzpjRHoCBWPzpPNtg6gnhasqtE/5O4qz8WCwDEaxtfnPO6gkaLrnuXusrGSPyhIGPezr1HM7ZH0CFaUTY9PJEQ==" - "resolved" "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.1.3.tgz" - "version" "6.1.3" + "integrity" "sha512-3y04JLW+EceVPy2Em3VwNr95dOKqA8DhR0RJHhHKDZNYXcVXnEK7WIrpj4eYU8SVt/qYZ2aRWt/WgQ+grNES8g==" + "resolved" "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.1.5.tgz" + "version" "6.1.5" dependencies: - "@adobe/css-tools" "^4.3.0" + "@adobe/css-tools" "^4.3.1" "@babel/runtime" "^7.9.2" "aria-query" "^5.0.0" "chalk" "^3.0.0" @@ -960,9 +960,9 @@ "redent" "^3.0.0" "@testing-library/react@^14.0.0": - "integrity" "sha512-S04gSNJbYE30TlIMLTzv6QCTzt9AqIF5y6s6SzVFILNcNvbV/jU96GeiTPillGQo+Ny64M/5PV7klNYYgv5Dfg==" - "resolved" "https://registry.npmjs.org/@testing-library/react/-/react-14.0.0.tgz" - "version" "14.0.0" + "integrity" "sha512-z4p7DVBTPjKM5qDZ0t5ZjzkpSNb+fZy1u6bzO7kk8oeGagpPCAtgh4cx1syrfp7a+QWkM021jGqjJaxJJnXAZg==" + "resolved" "https://registry.npmjs.org/@testing-library/react/-/react-14.1.2.tgz" + "version" "14.1.2" dependencies: "@babel/runtime" "^7.12.5" "@testing-library/dom" "^9.0.0" @@ -994,14 +994,14 @@ "version" "1.0.4" "@types/aria-query@^5.0.1": - "integrity" "sha512-PHKZuMN+K5qgKIWhBodXzQslTo5P+K/6LqeKXS6O/4liIDdZqaX5RXrCK++LAw+y/nptN48YmUMFiQHRSWYwtQ==" - "resolved" "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.2.tgz" - "version" "5.0.2" + "integrity" "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==" + "resolved" "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz" + "version" "5.0.4" "@types/babel__core@^7.1.14": - "integrity" "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==" - "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz" - "version" "7.20.2" + "integrity" "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==" + "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" + "version" "7.20.5" dependencies: "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" @@ -1010,65 +1010,70 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - "integrity" "sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==" - "resolved" "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.5.tgz" - "version" "7.6.5" + "integrity" "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==" + "resolved" "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz" + "version" "7.6.8" dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - "integrity" "sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==" - "resolved" "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.2.tgz" - "version" "7.4.2" + "integrity" "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==" + "resolved" "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz" + "version" "7.4.4" dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - "integrity" "sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==" - "resolved" "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.2.tgz" - "version" "7.20.2" + "integrity" "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==" + "resolved" "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz" + "version" "7.20.4" dependencies: "@babel/types" "^7.20.7" +"@types/downloadjs@^1.4.2": + "integrity" "sha512-mp3w70vsaiLRT9ix92fmI9Ob2yJAPZm6tShJtofo2uHbN11G2i6a0ApIEjBl/kv3e9V7Pv7jMjk1bUwYWvMHvA==" + "resolved" "https://registry.npmjs.org/@types/downloadjs/-/downloadjs-1.4.6.tgz" + "version" "1.4.6" + "@types/graceful-fs@^4.1.3": - "integrity" "sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==" - "resolved" "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.7.tgz" - "version" "4.1.7" + "integrity" "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==" + "resolved" "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz" + "version" "4.1.9" dependencies: "@types/node" "*" "@types/hoist-non-react-statics@^3.3.0", "@types/hoist-non-react-statics@^3.3.1": - "integrity" "sha512-YIQtIg4PKr7ZyqNPZObpxfHsHEmuB8dXCxd6qVcGuQVDK2bpsF7bYNnBJ4Nn7giuACZg+WewExgrtAJ3XnA4Xw==" - "resolved" "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" - "version" "3.3.2" + "integrity" "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==" + "resolved" "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz" + "version" "3.3.5" dependencies: "@types/react" "*" "hoist-non-react-statics" "^3.3.0" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - "integrity" "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - "resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" - "version" "2.0.4" + "integrity" "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + "resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz" + "version" "2.0.6" "@types/istanbul-lib-report@*": - "integrity" "sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==" - "resolved" "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz" - "version" "3.0.1" + "integrity" "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==" + "resolved" "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz" + "version" "3.0.3" dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - "integrity" "sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==" - "resolved" "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.2.tgz" - "version" "3.0.2" + "integrity" "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==" + "resolved" "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz" + "version" "3.0.4" dependencies: "@types/istanbul-lib-report" "*" "@types/jest@^29.5.5", "@types/jest@>= 28": - "integrity" "sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==" - "resolved" "https://registry.npmjs.org/@types/jest/-/jest-29.5.5.tgz" - "version" "29.5.5" + "integrity" "sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ==" + "resolved" "https://registry.npmjs.org/@types/jest/-/jest-29.5.11.tgz" + "version" "29.5.11" dependencies: "expect" "^29.0.0" "pretty-format" "^29.0.0" @@ -1083,9 +1088,9 @@ "parse5" "^7.0.0" "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.9": - "integrity" "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==" - "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz" - "version" "7.0.13" + "integrity" "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" + "version" "7.0.15" "@types/json5@^0.0.29": "integrity" "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" @@ -1093,9 +1098,9 @@ "version" "0.0.29" "@types/minimist@^1.2.0": - "integrity" "sha512-ZYFzrvyWUNhaPomn80dsMNgMeXxNWZBdkuG/hWlUvXvbdUH8ZERNBGXnU87McuGcWDsyzX2aChCv/SVN348k3A==" - "resolved" "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.3.tgz" - "version" "1.2.3" + "integrity" "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==" + "resolved" "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz" + "version" "1.2.5" "@types/node@*", "@types/node@20.6.2": "integrity" "sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==" @@ -1103,9 +1108,11 @@ "version" "20.6.2" "@types/node@^18.17.5": - "integrity" "sha512-0OVfGupTl3NBFr8+iXpfZ8NR7jfFO+P1Q+IO/q0wbo02wYkP5gy36phojeYWpLQ6WAMjl+VfmqUk2YbUfp0irA==" - "resolved" "https://registry.npmjs.org/@types/node/-/node-18.18.3.tgz" - "version" "18.18.3" + "integrity" "sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-18.19.3.tgz" + "version" "18.19.3" + dependencies: + "undici-types" "~5.26.4" "@types/node@20.5.1": "integrity" "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==" @@ -1113,19 +1120,26 @@ "version" "20.5.1" "@types/normalize-package-data@^2.4.0": - "integrity" "sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==" - "resolved" "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.2.tgz" - "version" "2.4.2" + "integrity" "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==" + "resolved" "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz" + "version" "2.4.4" "@types/openlayers@^4.6.20": - "integrity" "sha512-TYgdyK1WyLFcwlFkz2A7lK0stj3MFdVZeUc6+AWCmqsAHk+0o9V8TOgMqdPpb0cVIxknHwxty/g8VawWTt/FRw==" - "resolved" "https://registry.npmjs.org/@types/openlayers/-/openlayers-4.6.20.tgz" - "version" "4.6.20" + "integrity" "sha512-7jCPIa4D4LV03Rttae1AEqvkIN0+nc6Snz4IgA/IjsJD5O3ONxpscqIOdp1qAGuAsikR/ZC9vrPF9np8JRc6ig==" + "resolved" "https://registry.npmjs.org/@types/openlayers/-/openlayers-4.6.23.tgz" + "version" "4.6.23" "@types/prop-types@*": - "integrity" "sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ==" - "resolved" "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.8.tgz" - "version" "15.7.8" + "integrity" "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + "resolved" "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz" + "version" "15.7.11" + +"@types/react-dom@^15.5.6": + "integrity" "sha512-5HZym3/G/kcfkvfIGhpbpqdhr117NI+io6Wl7BZO7Gt8DaixZ/JeJO+Q0Z/ZqoOzwm9SXCADGmohy9n7HcR5EQ==" + "resolved" "https://registry.npmjs.org/@types/react-dom/-/react-dom-15.5.21.tgz" + "version" "15.5.21" + dependencies: + "@types/react" "^15" "@types/react-dom@^16.8 || ^17.0 || ^18.0", "@types/react-dom@^18.0.0", "@types/react-dom@18.2.7": "integrity" "sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==" @@ -1135,9 +1149,9 @@ "@types/react" "*" "@types/react-redux@^7.1.26": - "integrity" "sha512-xj7d9z32p1K/eBmO+OEy+qfaWXtcPlN8f1Xk3Ne0p/ZRQ867RI5bQ/bpBtxbqU1AHNhKJSgGvld/P2myU2uYkg==" - "resolved" "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.27.tgz" - "version" "7.1.27" + "integrity" "sha512-NF8m5AjWCkert+fosDsN3hAlHzpjSiXlVy9EgQEmLoBhaNXbmyeGs/aj5dQzKuF+/q+S7JQagorGDW8pJ28Hmg==" + "resolved" "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.33.tgz" + "version" "7.1.33" dependencies: "@types/hoist-non-react-statics" "^3.3.0" "@types/react" "*" @@ -1153,6 +1167,11 @@ "@types/scheduler" "*" "csstype" "^3.0.2" +"@types/react@^15", "@types/react@^15.6.16": + "integrity" "sha512-PExkMXrnmoRHdedMzPZxdCmrG2nE6coDeDTzSR8TWHYqb150nNnRFKPNUrFlOlAjFD+Fwq3SvNiLhT4BRl8XvA==" + "resolved" "https://registry.npmjs.org/@types/react/-/react-15.7.28.tgz" + "version" "15.7.28" + "@types/redux-mock-store@^1.0.6": "integrity" "sha512-eg5RDfhJTXuoJjOMyXiJbaDb1B8tfTaJixscmu+jOusj6adGC0Krntz09Tf4gJgXeCqCrM5bBMd+B7ez0izcAQ==" "resolved" "https://registry.npmjs.org/@types/redux-mock-store/-/redux-mock-store-1.0.6.tgz" @@ -1161,14 +1180,14 @@ "redux" "^4.0.5" "@types/scheduler@*": - "integrity" "sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ==" - "resolved" "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.4.tgz" - "version" "0.16.4" + "integrity" "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + "resolved" "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz" + "version" "0.16.8" "@types/semver@^7.3.12", "@types/semver@^7.5.0": - "integrity" "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==" - "resolved" "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz" - "version" "7.5.3" + "integrity" "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==" + "resolved" "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz" + "version" "7.5.6" "@types/sinonjs__fake-timers@8.1.1": "integrity" "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==" @@ -1176,19 +1195,19 @@ "version" "8.1.1" "@types/sizzle@^2.3.2": - "integrity" "sha512-jA2llq2zNkg8HrALI7DtWzhALcVH0l7i89yhY3iBdOz6cBPeACoFq+fkQrjHA39t1hnSFOboZ7A/AY5MMZSlag==" - "resolved" "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.4.tgz" - "version" "2.3.4" + "integrity" "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==" + "resolved" "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz" + "version" "2.3.8" "@types/stack-utils@^2.0.0": - "integrity" "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" - "resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" - "version" "2.0.1" + "integrity" "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" + "resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz" + "version" "2.0.3" "@types/tough-cookie@*": - "integrity" "sha512-THo502dA5PzG/sfQH+42Lw3fvmYkceefOspdCwpHRul8ik2Jv1K8I5OZz1AT3/rs46kwgMCe9bSBmDLYkkOMGg==" - "resolved" "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.3.tgz" - "version" "4.0.3" + "integrity" "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==" + "resolved" "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz" + "version" "4.0.5" "@types/use-sync-external-store@^0.0.3": "integrity" "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" @@ -1196,34 +1215,34 @@ "version" "0.0.3" "@types/yargs-parser@*": - "integrity" "sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==" - "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.1.tgz" - "version" "21.0.1" + "integrity" "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz" + "version" "21.0.3" "@types/yargs@^17.0.8": - "integrity" "sha512-Y3vDy2X6zw/ZCumcwLpdhM5L7jmyGpmBCTYMHDLqT2IKVMYRRLdv6ZakA+wxhra6Z/3bwhNbNl9bDGXaFU+6rw==" - "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.26.tgz" - "version" "17.0.26" + "integrity" "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==" + "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz" + "version" "17.0.32" dependencies: "@types/yargs-parser" "*" "@types/yauzl@^2.9.1": - "integrity" "sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw==" - "resolved" "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.1.tgz" - "version" "2.10.1" + "integrity" "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==" + "resolved" "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz" + "version" "2.10.3" dependencies: "@types/node" "*" "@typescript-eslint/eslint-plugin@^6.4.0", "@typescript-eslint/eslint-plugin@^6.7.0": - "integrity" "sha512-DAbgDXwtX+pDkAHwiGhqP3zWUGpW49B7eqmgpPtg+BKJXwdct79ut9+ifqOFPJGClGKSHXn2PTBatCnldJRUoA==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.4.tgz" - "version" "6.7.4" + "integrity" "sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.15.0.tgz" + "version" "6.15.0" dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.7.4" - "@typescript-eslint/type-utils" "6.7.4" - "@typescript-eslint/utils" "6.7.4" - "@typescript-eslint/visitor-keys" "6.7.4" + "@typescript-eslint/scope-manager" "6.15.0" + "@typescript-eslint/type-utils" "6.15.0" + "@typescript-eslint/utils" "6.15.0" + "@typescript-eslint/visitor-keys" "6.15.0" "debug" "^4.3.4" "graphemer" "^1.4.0" "ignore" "^5.2.4" @@ -1232,14 +1251,14 @@ "ts-api-utils" "^1.0.1" "@typescript-eslint/parser@^5.4.2 || ^6.0.0", "@typescript-eslint/parser@^6.0.0 || ^6.0.0-alpha", "@typescript-eslint/parser@^6.4.0", "@typescript-eslint/parser@^6.7.0": - "integrity" "sha512-I5zVZFY+cw4IMZUeNCU7Sh2PO5O57F7Lr0uyhgCJmhN/BuTlnc55KxPonR4+EM3GBdfiCyGZye6DgMjtubQkmA==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.4.tgz" - "version" "6.7.4" - dependencies: - "@typescript-eslint/scope-manager" "6.7.4" - "@typescript-eslint/types" "6.7.4" - "@typescript-eslint/typescript-estree" "6.7.4" - "@typescript-eslint/visitor-keys" "6.7.4" + "integrity" "sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.15.0.tgz" + "version" "6.15.0" + dependencies: + "@typescript-eslint/scope-manager" "6.15.0" + "@typescript-eslint/types" "6.15.0" + "@typescript-eslint/typescript-estree" "6.15.0" + "@typescript-eslint/visitor-keys" "6.15.0" "debug" "^4.3.4" "@typescript-eslint/scope-manager@5.62.0": @@ -1250,21 +1269,21 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/scope-manager@6.7.4": - "integrity" "sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz" - "version" "6.7.4" +"@typescript-eslint/scope-manager@6.15.0": + "integrity" "sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz" + "version" "6.15.0" dependencies: - "@typescript-eslint/types" "6.7.4" - "@typescript-eslint/visitor-keys" "6.7.4" + "@typescript-eslint/types" "6.15.0" + "@typescript-eslint/visitor-keys" "6.15.0" -"@typescript-eslint/type-utils@6.7.4": - "integrity" "sha512-n+g3zi1QzpcAdHFP9KQF+rEFxMb2KxtnJGID3teA/nxKHOVi3ylKovaqEzGBbVY2pBttU6z85gp0D00ufLzViQ==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.4.tgz" - "version" "6.7.4" +"@typescript-eslint/type-utils@6.15.0": + "integrity" "sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.15.0.tgz" + "version" "6.15.0" dependencies: - "@typescript-eslint/typescript-estree" "6.7.4" - "@typescript-eslint/utils" "6.7.4" + "@typescript-eslint/typescript-estree" "6.15.0" + "@typescript-eslint/utils" "6.15.0" "debug" "^4.3.4" "ts-api-utils" "^1.0.1" @@ -1273,10 +1292,10 @@ "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz" "version" "5.62.0" -"@typescript-eslint/types@6.7.4": - "integrity" "sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.4.tgz" - "version" "6.7.4" +"@typescript-eslint/types@6.15.0": + "integrity" "sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.15.0.tgz" + "version" "6.15.0" "@typescript-eslint/typescript-estree@5.62.0": "integrity" "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==" @@ -1291,13 +1310,13 @@ "semver" "^7.3.7" "tsutils" "^3.21.0" -"@typescript-eslint/typescript-estree@6.7.4": - "integrity" "sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz" - "version" "6.7.4" +"@typescript-eslint/typescript-estree@6.15.0": + "integrity" "sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz" + "version" "6.15.0" dependencies: - "@typescript-eslint/types" "6.7.4" - "@typescript-eslint/visitor-keys" "6.7.4" + "@typescript-eslint/types" "6.15.0" + "@typescript-eslint/visitor-keys" "6.15.0" "debug" "^4.3.4" "globby" "^11.1.0" "is-glob" "^4.0.3" @@ -1318,17 +1337,17 @@ "eslint-scope" "^5.1.1" "semver" "^7.3.7" -"@typescript-eslint/utils@6.7.4": - "integrity" "sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.4.tgz" - "version" "6.7.4" +"@typescript-eslint/utils@6.15.0": + "integrity" "sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.15.0.tgz" + "version" "6.15.0" dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.7.4" - "@typescript-eslint/types" "6.7.4" - "@typescript-eslint/typescript-estree" "6.7.4" + "@typescript-eslint/scope-manager" "6.15.0" + "@typescript-eslint/types" "6.15.0" + "@typescript-eslint/typescript-estree" "6.15.0" "semver" "^7.5.4" "@typescript-eslint/visitor-keys@5.62.0": @@ -1339,14 +1358,19 @@ "@typescript-eslint/types" "5.62.0" "eslint-visitor-keys" "^3.3.0" -"@typescript-eslint/visitor-keys@6.7.4": - "integrity" "sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz" - "version" "6.7.4" +"@typescript-eslint/visitor-keys@6.15.0": + "integrity" "sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz" + "version" "6.15.0" dependencies: - "@typescript-eslint/types" "6.7.4" + "@typescript-eslint/types" "6.15.0" "eslint-visitor-keys" "^3.4.1" +"@ungap/structured-clone@^1.2.0": + "integrity" "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + "resolved" "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" + "version" "1.2.0" + "abab@^2.0.6": "integrity" "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" "resolved" "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz" @@ -1366,14 +1390,14 @@ "version" "5.3.2" "acorn-walk@^8.0.2", "acorn-walk@^8.1.1": - "integrity" "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" - "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" - "version" "8.2.0" + "integrity" "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==" + "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz" + "version" "8.3.1" "acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^8.1.0", "acorn@^8.4.1", "acorn@^8.8.1", "acorn@^8.9.0": - "integrity" "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz" - "version" "8.10.0" + "integrity" "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz" + "version" "8.11.2" "agent-base@6": "integrity" "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==" @@ -1510,7 +1534,7 @@ "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" "version" "2.0.1" -"aria-query@^5.0.0", "aria-query@^5.1.3": +"aria-query@^5.0.0", "aria-query@^5.3.0": "integrity" "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==" "resolved" "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz" "version" "5.3.0" @@ -1537,7 +1561,7 @@ "resolved" "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz" "version" "1.0.0" -"array-includes@^3.1.6": +"array-includes@^3.1.6", "array-includes@^3.1.7": "integrity" "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==" "resolved" "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz" "version" "3.1.7" @@ -1553,7 +1577,7 @@ "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" "version" "2.1.0" -"array.prototype.findlastindex@^1.2.2": +"array.prototype.findlastindex@^1.2.3": "integrity" "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==" "resolved" "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz" "version" "1.2.3" @@ -1564,7 +1588,7 @@ "es-shim-unscopables" "^1.0.0" "get-intrinsic" "^1.2.1" -"array.prototype.flat@^1.3.1": +"array.prototype.flat@^1.3.1", "array.prototype.flat@^1.3.2": "integrity" "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==" "resolved" "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz" "version" "1.3.2" @@ -1574,7 +1598,7 @@ "es-abstract" "^1.22.1" "es-shim-unscopables" "^1.0.0" -"array.prototype.flatmap@^1.3.1": +"array.prototype.flatmap@^1.3.1", "array.prototype.flatmap@^1.3.2": "integrity" "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==" "resolved" "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz" "version" "1.3.2" @@ -1625,10 +1649,10 @@ "resolved" "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" "version" "1.0.0" -"ast-types-flow@^0.0.7": - "integrity" "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" - "resolved" "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz" - "version" "0.0.7" +"ast-types-flow@^0.0.8": + "integrity" "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==" + "resolved" "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz" + "version" "0.0.8" "astral-regex@^2.0.0": "integrity" "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" @@ -1636,9 +1660,9 @@ "version" "2.0.0" "async@^3.2.0": - "integrity" "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - "resolved" "https://registry.npmjs.org/async/-/async-3.2.4.tgz" - "version" "3.2.4" + "integrity" "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + "resolved" "https://registry.npmjs.org/async/-/async-3.2.5.tgz" + "version" "3.2.5" "asynciterator.prototype@^1.0.0": "integrity" "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==" @@ -1684,17 +1708,17 @@ "resolved" "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz" "version" "1.12.0" -"axe-core@^4.6.2": - "integrity" "sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g==" - "resolved" "https://registry.npmjs.org/axe-core/-/axe-core-4.8.2.tgz" - "version" "4.8.2" +"axe-core@=4.7.0": + "integrity" "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==" + "resolved" "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz" + "version" "4.7.0" "axios-hooks@^5.0.0": - "integrity" "sha512-EpmObd+mW/+TqXzFWzTMwfRWmQwWMUf64tIpumOzPtxDJuUux4bwvnqSTwglR+AvwVcBLp3jKDaok3YgRuntNg==" - "resolved" "https://registry.npmjs.org/axios-hooks/-/axios-hooks-5.0.0.tgz" - "version" "5.0.0" + "integrity" "sha512-A047WTutYx5mYzfPc+CFblEliHLlLQ9zyrCJGtQeu5RyX0aLiAaOqqSvu2C6ts4fHFZfK9IPflqppIeIjldlrg==" + "resolved" "https://registry.npmjs.org/axios-hooks/-/axios-hooks-5.0.2.tgz" + "version" "5.0.2" dependencies: - "@babel/runtime" "7.22.15" + "@babel/runtime" "7.23.4" "dequal" "2.0.3" "lru-cache" "^10.0.1" @@ -1715,7 +1739,7 @@ "form-data" "^4.0.0" "proxy-from-env" "^1.1.0" -"axobject-query@^3.1.1": +"axobject-query@^3.2.1": "integrity" "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==" "resolved" "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz" "version" "3.2.1" @@ -1800,9 +1824,9 @@ "tweetnacl" "^0.14.3" "big-integer@^1.6.44": - "integrity" "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" - "resolved" "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz" - "version" "1.6.51" + "integrity" "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==" + "resolved" "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz" + "version" "1.6.52" "binary-extensions@^2.0.0": "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" @@ -1850,14 +1874,14 @@ dependencies: "fill-range" "^7.0.1" -"browserslist@^4.21.10", "browserslist@^4.21.9", "browserslist@>= 4.21.0": - "integrity" "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==" - "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz" - "version" "4.22.1" +"browserslist@^4.21.10", "browserslist@^4.22.2", "browserslist@>= 4.21.0": + "integrity" "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==" + "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz" + "version" "4.22.2" dependencies: - "caniuse-lite" "^1.0.30001541" - "electron-to-chromium" "^1.4.535" - "node-releases" "^2.0.13" + "caniuse-lite" "^1.0.30001565" + "electron-to-chromium" "^1.4.601" + "node-releases" "^2.0.14" "update-browserslist-db" "^1.0.13" "bser@2.1.1": @@ -1885,6 +1909,11 @@ "base64-js" "^1.3.1" "ieee754" "^1.1.13" +"builtin-modules@^3.3.0": + "integrity" "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==" + "resolved" "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz" + "version" "3.3.0" + "builtins@^5.0.1": "integrity" "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==" "resolved" "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz" @@ -1916,13 +1945,14 @@ "resolved" "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz" "version" "2.3.0" -"call-bind@^1.0.0", "call-bind@^1.0.2": - "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" - "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - "version" "1.0.2" +"call-bind@^1.0.0", "call-bind@^1.0.2", "call-bind@^1.0.4", "call-bind@^1.0.5": + "integrity" "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==" + "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz" + "version" "1.0.5" dependencies: - "function-bind" "^1.1.1" - "get-intrinsic" "^1.0.2" + "function-bind" "^1.1.2" + "get-intrinsic" "^1.2.1" + "set-function-length" "^1.1.1" "callsites@^3.0.0": "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" @@ -1953,10 +1983,10 @@ "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" "version" "6.3.0" -"caniuse-lite@^1.0.30001406", "caniuse-lite@^1.0.30001520", "caniuse-lite@^1.0.30001541": - "integrity" "sha512-qxdO8KPWPQ+Zk6bvNpPeQIOH47qZSYdFZd6dXQzb2KzhnSXju4Kd7H1PkSJx6NICSMgo/IhRZRhhfPTHYpJUCA==" - "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001543.tgz" - "version" "1.0.30001543" +"caniuse-lite@^1.0.30001406", "caniuse-lite@^1.0.30001520", "caniuse-lite@^1.0.30001565": + "integrity" "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==" + "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz" + "version" "1.0.30001570" "caseless@~0.12.0": "integrity" "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" @@ -2072,9 +2102,9 @@ "restore-cursor" "^4.0.0" "cli-spinners@^2.5.0": - "integrity" "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==" - "resolved" "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz" - "version" "2.9.1" + "integrity" "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==" + "resolved" "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz" + "version" "2.9.2" "cli-table3@~0.6.1": "integrity" "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==" @@ -2135,6 +2165,11 @@ "resolved" "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz" "version" "1.0.2" +"color-blend@1.0.0": + "integrity" "sha512-4lA+Ru3c3wDcOvcGKihqrcchqyb4nm7v4rZJpu7rFRjfGGHeJ4VZN6hNAnIuBrPkv/OBMhjBI5XDbQcb4mHtzA==" + "resolved" "https://registry.npmjs.org/color-blend/-/color-blend-1.0.0.tgz" + "version" "1.0.0" + "color-convert@^1.9.0": "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" @@ -2149,7 +2184,7 @@ dependencies: "color-name" "~1.1.4" -"color-name@^1.1.4", "color-name@~1.1.4": +"color-name@^1.0.0", "color-name@^1.1.4", "color-name@~1.1.4": "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" "version" "1.1.4" @@ -2159,6 +2194,26 @@ "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" "version" "1.1.3" +"color-parse@^2.0.0": + "integrity" "sha512-g2Z+QnWsdHLppAbrpcFWo629kLOnOPtpxYV69GCqm92gqSgyXbzlfyN3MXs0412fPBkFmiuS+rXposgBgBa6Kg==" + "resolved" "https://registry.npmjs.org/color-parse/-/color-parse-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "color-name" "^1.0.0" + +"color-rgba@^3.0.0": + "integrity" "sha512-PPwZYkEY3M2THEHHV6Y95sGUie77S7X8v+h1r6LSAPF3/LL2xJ8duUXSrkic31Nzc4odPwHgUbiX/XuTYzQHQg==" + "resolved" "https://registry.npmjs.org/color-rgba/-/color-rgba-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "color-parse" "^2.0.0" + "color-space" "^2.0.0" + +"color-space@^2.0.0", "color-space@^2.0.1": + "integrity" "sha512-nKqUYlo0vZATVOFHY810BSYjmCARrG7e5R3UE3CQlyjJTvv5kSSmPG1kzm/oDyyqjehM+lW1RnEt9It9GNa5JA==" + "resolved" "https://registry.npmjs.org/color-space/-/color-space-2.0.1.tgz" + "version" "2.0.1" + "colorette@^2.0.16", "colorette@^2.0.20": "integrity" "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" "resolved" "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" @@ -2268,7 +2323,7 @@ "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" "version" "2.0.0" -"core-util-is@1.0.2": +"core-util-is@~1.0.0", "core-util-is@1.0.2": "integrity" "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" "version" "1.0.2" @@ -2348,14 +2403,14 @@ "cssom" "~0.3.6" "csstype@^3.0.2": - "integrity" "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" - "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz" - "version" "3.1.2" + "integrity" "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" + "version" "3.1.3" "cypress@^13.2.0": - "integrity" "sha512-mpI8qcTwLGiA4zEQvTC/U1xGUezVV4V8HQCOYjlEOrVmU1etVvxOjkCXHGwrlYdZU/EPmUiWfsO3yt1o+Q2bgw==" - "resolved" "https://registry.npmjs.org/cypress/-/cypress-13.3.0.tgz" - "version" "13.3.0" + "integrity" "sha512-k1Wl5PQcA/4UoTffYKKaxA0FJKwg8yenYNYRzLt11CUR0Kln+h7Udne6mdU1cUIdXBDTVZWtmiUjzqGs7/pEpw==" + "resolved" "https://registry.npmjs.org/cypress/-/cypress-13.6.1.tgz" + "version" "13.6.1" dependencies: "@cypress/request" "^3.0.0" "@cypress/xvfb" "^1.2.4" @@ -2415,6 +2470,11 @@ optionalDependencies: "@commitlint/load" ">6.1.1" +"d3@^3.4.13": + "integrity" "sha512-yFk/2idb8OHPKkbAL8QaOaqENNoMhIaSHZerk3oQsECwkObkCpJyjYwCe+OHiq6UEdhe1m8ZGARRRO3ljFjlKg==" + "resolved" "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz" + "version" "3.5.17" + "damerau-levenshtein@^1.0.8": "integrity" "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" "resolved" "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz" @@ -2460,7 +2520,7 @@ dependencies: "ms" "^2.1.1" -"debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2", "debug@^4.3.4", "debug@4", "debug@4.3.4": +"debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.1", "debug@^4.3.2", "debug@^4.3.4", "debug@4", "debug@4.3.4": "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" "version" "4.3.4" @@ -2501,14 +2561,14 @@ "version" "0.7.0" "deep-equal@^2.0.5": - "integrity" "sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==" - "resolved" "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.2.tgz" - "version" "2.2.2" + "integrity" "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==" + "resolved" "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz" + "version" "2.2.3" dependencies: "array-buffer-byte-length" "^1.0.0" - "call-bind" "^1.0.2" + "call-bind" "^1.0.5" "es-get-iterator" "^1.1.3" - "get-intrinsic" "^1.2.1" + "get-intrinsic" "^1.2.2" "is-arguments" "^1.1.1" "is-array-buffer" "^3.0.2" "is-date-object" "^1.0.5" @@ -2518,11 +2578,11 @@ "object-is" "^1.1.5" "object-keys" "^1.1.1" "object.assign" "^4.1.4" - "regexp.prototype.flags" "^1.5.0" + "regexp.prototype.flags" "^1.5.1" "side-channel" "^1.0.4" "which-boxed-primitive" "^1.0.2" "which-collection" "^1.0.1" - "which-typed-array" "^1.1.9" + "which-typed-array" "^1.1.13" "deep-is@^0.1.3": "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" @@ -2559,10 +2619,10 @@ dependencies: "clone" "^1.0.2" -"define-data-property@^1.0.1": - "integrity" "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==" - "resolved" "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz" - "version" "1.1.0" +"define-data-property@^1.0.1", "define-data-property@^1.1.1": + "integrity" "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==" + "resolved" "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz" + "version" "1.1.1" dependencies: "get-intrinsic" "^1.2.1" "gopd" "^1.0.1" @@ -2573,7 +2633,7 @@ "resolved" "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz" "version" "3.0.0" -"define-properties@^1.1.3", "define-properties@^1.1.4", "define-properties@^1.2.0", "define-properties@^1.2.1": +"define-properties@^1.1.3", "define-properties@^1.2.0", "define-properties@^1.2.1": "integrity" "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==" "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" "version" "1.2.1" @@ -2667,6 +2727,11 @@ dependencies: "is-obj" "^2.0.0" +"downloadjs@^1.4.7": + "integrity" "sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q==" + "resolved" "https://registry.npmjs.org/downloadjs/-/downloadjs-1.4.7.tgz" + "version" "1.4.7" + "downshift@^8.2.3": "integrity" "sha512-1HkvqaMTZpk24aqnXaRDnT+N5JCbpFpW+dCogB11+x+FCtfkFX0MbAO4vr/JdXi1VYQF174KjNUveBXqaXTPtg==" "resolved" "https://registry.npmjs.org/downshift/-/downshift-8.2.3.tgz" @@ -2701,10 +2766,10 @@ "jsbn" "~0.1.0" "safer-buffer" "^2.1.0" -"electron-to-chromium@^1.4.535": - "integrity" "sha512-aoCqgU6r9+o9/S7wkcSbmPRFi7OWZWiXS9rtjEd+Ouyu/Xyw5RSq2XN8s5Qp8IaFOLiRrhQCphCIjAxgG3eCAg==" - "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.540.tgz" - "version" "1.4.540" +"electron-to-chromium@^1.4.601": + "integrity" "sha512-/bKPPcgZVUziECqDc+0HkT87+0zhaWSZHNXqF8FLd2lQcptpmUFwoCSWjCdOng9Gdq+afKArPdEg/0ZW461Eng==" + "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.615.tgz" + "version" "1.4.615" "emittery@^0.13.1": "integrity" "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==" @@ -2757,25 +2822,25 @@ "is-arrayish" "^0.2.1" "es-abstract@^1.22.1": - "integrity" "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==" - "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz" - "version" "1.22.2" + "integrity" "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==" + "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz" + "version" "1.22.3" dependencies: "array-buffer-byte-length" "^1.0.0" "arraybuffer.prototype.slice" "^1.0.2" "available-typed-arrays" "^1.0.5" - "call-bind" "^1.0.2" + "call-bind" "^1.0.5" "es-set-tostringtag" "^2.0.1" "es-to-primitive" "^1.2.1" "function.prototype.name" "^1.1.6" - "get-intrinsic" "^1.2.1" + "get-intrinsic" "^1.2.2" "get-symbol-description" "^1.0.0" "globalthis" "^1.0.3" "gopd" "^1.0.1" - "has" "^1.0.3" "has-property-descriptors" "^1.0.0" "has-proto" "^1.0.1" "has-symbols" "^1.0.3" + "hasown" "^2.0.0" "internal-slot" "^1.0.5" "is-array-buffer" "^3.0.2" "is-callable" "^1.2.7" @@ -2785,7 +2850,7 @@ "is-string" "^1.0.7" "is-typed-array" "^1.1.12" "is-weakref" "^1.0.2" - "object-inspect" "^1.12.3" + "object-inspect" "^1.13.1" "object-keys" "^1.1.1" "object.assign" "^4.1.4" "regexp.prototype.flags" "^1.5.1" @@ -2799,7 +2864,7 @@ "typed-array-byte-offset" "^1.0.0" "typed-array-length" "^1.0.4" "unbox-primitive" "^1.0.2" - "which-typed-array" "^1.1.11" + "which-typed-array" "^1.1.13" "es-get-iterator@^1.1.3": "integrity" "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==" @@ -2816,7 +2881,7 @@ "isarray" "^2.0.5" "stop-iteration-iterator" "^1.0.0" -"es-iterator-helpers@^1.0.12": +"es-iterator-helpers@^1.0.12", "es-iterator-helpers@^1.0.15": "integrity" "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==" "resolved" "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz" "version" "1.0.15" @@ -2837,20 +2902,20 @@ "safe-array-concat" "^1.0.1" "es-set-tostringtag@^2.0.1": - "integrity" "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==" - "resolved" "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz" - "version" "2.0.1" + "integrity" "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==" + "resolved" "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz" + "version" "2.0.2" dependencies: - "get-intrinsic" "^1.1.3" - "has" "^1.0.3" + "get-intrinsic" "^1.2.2" "has-tostringtag" "^1.0.0" + "hasown" "^2.0.0" "es-shim-unscopables@^1.0.0": - "integrity" "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==" - "resolved" "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz" - "version" "1.0.0" + "integrity" "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==" + "resolved" "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz" + "version" "1.0.2" dependencies: - "has" "^1.0.3" + "hasown" "^2.0.0" "es-to-primitive@^1.2.1": "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==" @@ -2892,6 +2957,11 @@ optionalDependencies: "source-map" "~0.6.1" +"eslint-compat-utils@^0.1.2": + "integrity" "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==" + "resolved" "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz" + "version" "0.1.2" + "eslint-config-airbnb-base@^15.0.0": "integrity" "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==" "resolved" "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz" @@ -2927,14 +2997,14 @@ "eslint-plugin-react-hooks" "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" "eslint-config-prettier@^9.0.0": - "integrity" "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==" - "resolved" "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz" - "version" "9.0.0" + "integrity" "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==" + "resolved" "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz" + "version" "9.1.0" "eslint-config-standard-with-typescript@^39.0.0": - "integrity" "sha512-5+SPKis3yr6T1X6wSA7HhDuumTRMrTDMcsTrIWhdZuI+sX3e8SPGZYzuJxVxdc239Yo718dEVEVyJhHI6jUjrQ==" - "resolved" "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-39.1.0.tgz" - "version" "39.1.0" + "integrity" "sha512-t6B5Ep8E4I18uuoYeYxINyqcXb2UbC0SOOTxRtBSt2JUs+EzeXbfe2oaiPs71AIdnoWhXDO2fYOHz8df3kV84A==" + "resolved" "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-39.1.1.tgz" + "version" "39.1.1" dependencies: "@typescript-eslint/parser" "^6.4.0" "eslint-config-standard" "17.1.0" @@ -2944,7 +3014,7 @@ "resolved" "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz" "version" "17.1.0" -"eslint-import-resolver-node@^0.3.6", "eslint-import-resolver-node@^0.3.7": +"eslint-import-resolver-node@^0.3.6", "eslint-import-resolver-node@^0.3.9": "integrity" "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==" "resolved" "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz" "version" "0.3.9" @@ -2973,69 +3043,71 @@ dependencies: "debug" "^3.2.7" -"eslint-plugin-es-x@^7.1.0": - "integrity" "sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==" - "resolved" "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.2.0.tgz" - "version" "7.2.0" +"eslint-plugin-es-x@^7.5.0": + "integrity" "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==" + "resolved" "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz" + "version" "7.5.0" dependencies: "@eslint-community/eslint-utils" "^4.1.2" "@eslint-community/regexpp" "^4.6.0" + "eslint-compat-utils" "^0.1.2" "eslint-plugin-import@*", "eslint-plugin-import@^2.25.2", "eslint-plugin-import@^2.25.3", "eslint-plugin-import@^2.26.0", "eslint-plugin-import@^2.28.1": - "integrity" "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==" - "resolved" "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz" - "version" "2.28.1" - dependencies: - "array-includes" "^3.1.6" - "array.prototype.findlastindex" "^1.2.2" - "array.prototype.flat" "^1.3.1" - "array.prototype.flatmap" "^1.3.1" + "integrity" "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==" + "resolved" "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz" + "version" "2.29.1" + dependencies: + "array-includes" "^3.1.7" + "array.prototype.findlastindex" "^1.2.3" + "array.prototype.flat" "^1.3.2" + "array.prototype.flatmap" "^1.3.2" "debug" "^3.2.7" "doctrine" "^2.1.0" - "eslint-import-resolver-node" "^0.3.7" + "eslint-import-resolver-node" "^0.3.9" "eslint-module-utils" "^2.8.0" - "has" "^1.0.3" - "is-core-module" "^2.13.0" + "hasown" "^2.0.0" + "is-core-module" "^2.13.1" "is-glob" "^4.0.3" "minimatch" "^3.1.2" - "object.fromentries" "^2.0.6" - "object.groupby" "^1.0.0" - "object.values" "^1.1.6" + "object.fromentries" "^2.0.7" + "object.groupby" "^1.0.1" + "object.values" "^1.1.7" "semver" "^6.3.1" - "tsconfig-paths" "^3.14.2" + "tsconfig-paths" "^3.15.0" "eslint-plugin-jsx-a11y@^6.5.1", "eslint-plugin-jsx-a11y@^6.7.1": - "integrity" "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==" - "resolved" "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz" - "version" "6.7.1" - dependencies: - "@babel/runtime" "^7.20.7" - "aria-query" "^5.1.3" - "array-includes" "^3.1.6" - "array.prototype.flatmap" "^1.3.1" - "ast-types-flow" "^0.0.7" - "axe-core" "^4.6.2" - "axobject-query" "^3.1.1" + "integrity" "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==" + "resolved" "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz" + "version" "6.8.0" + dependencies: + "@babel/runtime" "^7.23.2" + "aria-query" "^5.3.0" + "array-includes" "^3.1.7" + "array.prototype.flatmap" "^1.3.2" + "ast-types-flow" "^0.0.8" + "axe-core" "=4.7.0" + "axobject-query" "^3.2.1" "damerau-levenshtein" "^1.0.8" "emoji-regex" "^9.2.2" - "has" "^1.0.3" - "jsx-ast-utils" "^3.3.3" - "language-tags" "=1.0.5" + "es-iterator-helpers" "^1.0.15" + "hasown" "^2.0.0" + "jsx-ast-utils" "^3.3.5" + "language-tags" "^1.0.9" "minimatch" "^3.1.2" - "object.entries" "^1.1.6" - "object.fromentries" "^2.0.6" - "semver" "^6.3.0" + "object.entries" "^1.1.7" + "object.fromentries" "^2.0.7" "eslint-plugin-n@^15.0.0 || ^16.0.0 ", "eslint-plugin-n@^16.1.0": - "integrity" "sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg==" - "resolved" "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.1.0.tgz" - "version" "16.1.0" + "integrity" "sha512-IkqJjGoWYGskVaJA7WQuN8PINIxc0N/Pk/jLeYT4ees6Fo5lAhpwGsYek6gS9tCUxgDC4zJ+OwY2bY/6/9OMKQ==" + "resolved" "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.4.0.tgz" + "version" "16.4.0" dependencies: "@eslint-community/eslint-utils" "^4.4.0" "builtins" "^5.0.1" - "eslint-plugin-es-x" "^7.1.0" + "eslint-plugin-es-x" "^7.5.0" "get-tsconfig" "^4.7.0" "ignore" "^5.2.4" + "is-builtin-module" "^3.2.1" "is-core-module" "^2.12.1" "minimatch" "^3.1.2" "resolve" "^1.22.2" @@ -3090,9 +3162,9 @@ "postcss" "^8.4.4" "eslint-plugin-testing-library@^6.0.1": - "integrity" "sha512-3BV6FWtLbpKFb4Y1obSdt8PC9xSqz6T+7EHB/6pSCXqVjKPoS67ck903feKMKQphd5VhrX+N51yHuVaPa7elsw==" - "resolved" "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-6.0.2.tgz" - "version" "6.0.2" + "integrity" "sha512-+LCYJU81WF2yQ+Xu4A135CgK8IszcFcyMF4sWkbiu6Oj+Nel0TrkZq/HvDw0/1WuO3dhDQsZA/OpEMGd0NfcUw==" + "resolved" "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-6.2.0.tgz" + "version" "6.2.0" dependencies: "@typescript-eslint/utils" "^5.58.0" @@ -3117,18 +3189,19 @@ "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" "version" "3.4.3" -"eslint@*", "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.23.0 || ^8.0.0", "eslint@^7.32.0 || ^8.2.0", "eslint@^7.5.0 || ^8.0.0", "eslint@^8.0.1", "eslint@^8.49.0", "eslint@>=7.0.0", "eslint@>=8", "eslint@>=8.0.0": - "integrity" "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==" - "resolved" "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz" - "version" "8.50.0" +"eslint@*", "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.23.0 || ^8.0.0", "eslint@^7.32.0 || ^8.2.0", "eslint@^7.5.0 || ^8.0.0", "eslint@^8.0.1", "eslint@^8.49.0", "eslint@>=6.0.0", "eslint@>=7.0.0", "eslint@>=8", "eslint@>=8.0.0": + "integrity" "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==" + "resolved" "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz" + "version" "8.56.0" dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.50.0" - "@humanwhocodes/config-array" "^0.11.11" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.56.0" + "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" "ajv" "^6.12.4" "chalk" "^4.0.0" "cross-spawn" "^7.0.2" @@ -3213,6 +3286,11 @@ "resolved" "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz" "version" "5.0.1" +"events@^1.1.1": + "integrity" "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==" + "resolved" "https://registry.npmjs.org/events/-/events-1.1.1.tgz" + "version" "1.1.1" + "execa@^5.0.0": "integrity" "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==" "resolved" "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" @@ -3344,9 +3422,9 @@ "version" "1.3.0" "fast-glob@^3.2.12", "fast-glob@^3.2.5", "fast-glob@^3.2.9", "fast-glob@^3.3.0", "fast-glob@^3.3.1": - "integrity" "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==" - "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz" - "version" "3.3.1" + "integrity" "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==" + "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" + "version" "3.3.2" dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -3365,9 +3443,9 @@ "version" "2.0.6" "fastq@^1.6.0": - "integrity" "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==" - "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" - "version" "1.15.0" + "integrity" "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==" + "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz" + "version" "1.16.0" dependencies: "reusify" "^1.0.4" @@ -3399,6 +3477,11 @@ dependencies: "flat-cache" "^3.0.4" +"file-saver@^1.3.2": + "integrity" "sha512-spKHSBQIxxS81N/O21WmuXA2F6wppUCsutpzenOeZzOCCJ5gEfcbqJP983IrpLXzYmXnMUa6J03SubcNPdKrlg==" + "resolved" "https://registry.npmjs.org/file-saver/-/file-saver-1.3.8.tgz" + "version" "1.3.8" + "fill-range@^7.0.1": "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" @@ -3424,15 +3507,7 @@ "resolved" "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz" "version" "1.1.0" -"find-up@^4.0.0": - "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" - "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "locate-path" "^5.0.0" - "path-exists" "^4.0.0" - -"find-up@^4.1.0": +"find-up@^4.0.0", "find-up@^4.1.0": "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" "version" "4.1.0" @@ -3459,15 +3534,15 @@ "resolve-dir" "^1.0.1" "flat-cache@^3.0.4": - "integrity" "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==" - "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz" - "version" "3.1.0" + "integrity" "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==" + "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz" + "version" "3.2.0" dependencies: - "flatted" "^3.2.7" + "flatted" "^3.2.9" "keyv" "^4.5.3" "rimraf" "^3.0.2" -"flatted@^3.2.7": +"flatted@^3.2.9": "integrity" "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==" "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz" "version" "3.2.9" @@ -3508,14 +3583,14 @@ "mime-types" "^2.1.12" "fraction.js@^4.2.0": - "integrity" "sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==" - "resolved" "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.6.tgz" - "version" "4.3.6" + "integrity" "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==" + "resolved" "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz" + "version" "4.3.7" "fs-extra@^11.0.0": - "integrity" "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==" - "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz" - "version" "11.1.1" + "integrity" "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz" + "version" "11.2.0" dependencies: "graceful-fs" "^4.2.0" "jsonfile" "^6.0.1" @@ -3551,10 +3626,10 @@ "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" "version" "2.3.3" -"function-bind@^1.1.1": - "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - "version" "1.1.1" +"function-bind@^1.1.1", "function-bind@^1.1.2": + "integrity" "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + "version" "1.1.2" "function.prototype.name@^1.1.5", "function.prototype.name@^1.1.6": "integrity" "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==" @@ -3577,9 +3652,9 @@ "version" "1.0.0-beta.2" "geotiff@^2.0.7": - "integrity" "sha512-FKvFTNowMU5K6lHYY2f83d4lS2rsCNdpUC28AX61x9ZzzqPNaWFElWv93xj0eJFaNyOYA63ic5OzJ88dHpoA5Q==" - "resolved" "https://registry.npmjs.org/geotiff/-/geotiff-2.0.7.tgz" - "version" "2.0.7" + "integrity" "sha512-B/iFJuFfRpmPHXf8aIRPRgUWwfaNb6dlsynkM8SWeHAPu7CpyvfqEa43KlBt7xxq5OTVysQacFHxhCn3SZhRKQ==" + "resolved" "https://registry.npmjs.org/geotiff/-/geotiff-2.1.0.tgz" + "version" "2.1.0" dependencies: "@petamoriken/float16" "^3.4.7" "lerc" "^3.0.0" @@ -3588,21 +3663,22 @@ "quick-lru" "^6.1.1" "web-worker" "^1.2.0" "xml-utils" "^1.0.2" + "zstddec" "^0.1.0" "get-caller-file@^2.0.5": "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" "version" "2.0.5" -"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.1", "get-intrinsic@^1.1.3", "get-intrinsic@^1.2.0", "get-intrinsic@^1.2.1": - "integrity" "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==" - "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz" - "version" "1.2.1" +"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.1", "get-intrinsic@^1.1.3", "get-intrinsic@^1.2.0", "get-intrinsic@^1.2.1", "get-intrinsic@^1.2.2": + "integrity" "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==" + "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz" + "version" "1.2.2" dependencies: - "function-bind" "^1.1.1" - "has" "^1.0.3" + "function-bind" "^1.1.2" "has-proto" "^1.0.1" "has-symbols" "^1.0.3" + "hasown" "^2.0.0" "get-package-type@^0.1.0": "integrity" "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" @@ -3668,7 +3744,7 @@ "split2" "^3.0.0" "through2" "^4.0.0" -"glob-parent@^5.1.2": +"glob-parent@^5.1.2", "glob-parent@~5.1.2": "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" "version" "5.1.2" @@ -3682,27 +3758,20 @@ dependencies: "is-glob" "^4.0.3" -"glob-parent@~5.1.2": - "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" - "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - "version" "5.1.2" - dependencies: - "is-glob" "^4.0.1" - "glob-to-regexp@^0.4.1": "integrity" "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" "resolved" "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" "version" "0.4.1" -"glob@^7.1.3", "glob@^7.1.4", "glob@7.2.3": - "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==" - "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - "version" "7.2.3" +"glob@^7.1.3", "glob@^7.1.4", "glob@7.1.7": + "integrity" "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" + "version" "7.1.7" dependencies: "fs.realpath" "^1.0.0" "inflight" "^1.0.4" "inherits" "2" - "minimatch" "^3.1.1" + "minimatch" "^3.0.4" "once" "^1.3.0" "path-is-absolute" "^1.0.0" @@ -3718,15 +3787,15 @@ "once" "^1.3.0" "path-is-absolute" "^1.0.0" -"glob@7.1.7": - "integrity" "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==" - "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" - "version" "7.1.7" +"glob@7.2.3": + "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + "version" "7.2.3" dependencies: "fs.realpath" "^1.0.0" "inflight" "^1.0.4" "inherits" "2" - "minimatch" "^3.0.4" + "minimatch" "^3.1.1" "once" "^1.3.0" "path-is-absolute" "^1.0.0" @@ -3770,9 +3839,9 @@ "version" "11.12.0" "globals@^13.19.0": - "integrity" "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==" - "resolved" "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz" - "version" "13.22.0" + "integrity" "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==" + "resolved" "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" + "version" "13.24.0" dependencies: "type-fest" "^0.20.2" @@ -3833,11 +3902,11 @@ "version" "4.0.0" "has-property-descriptors@^1.0.0": - "integrity" "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==" - "resolved" "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" - "version" "1.0.0" + "integrity" "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==" + "resolved" "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz" + "version" "1.0.1" dependencies: - "get-intrinsic" "^1.1.1" + "get-intrinsic" "^1.2.2" "has-proto@^1.0.1": "integrity" "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" @@ -3856,10 +3925,12 @@ dependencies: "has-symbols" "^1.0.2" -"has@^1.0.3": - "integrity" "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==" - "resolved" "https://registry.npmjs.org/has/-/has-1.0.4.tgz" - "version" "1.0.4" +"hasown@^2.0.0": + "integrity" "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==" + "resolved" "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "function-bind" "^1.1.2" "hoist-non-react-statics@^3.3.0", "hoist-non-react-statics@^3.3.2": "integrity" "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==" @@ -3965,9 +4036,14 @@ "version" "1.2.1" "ignore@^5.2.0", "ignore@^5.2.4": - "integrity" "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==" - "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" - "version" "5.2.4" + "integrity" "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==" + "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz" + "version" "5.3.0" + +"immediate@~3.0.5": + "integrity" "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + "resolved" "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" + "version" "3.0.6" "immer@^9.0.21": "integrity" "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==" @@ -4008,7 +4084,7 @@ "once" "^1.3.0" "wrappy" "1" -"inherits@^2.0.3", "inherits@^2.0.4", "inherits@2": +"inherits@^2.0.3", "inherits@^2.0.4", "inherits@~2.0.3", "inherits@2": "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" "version" "2.0.4" @@ -4045,12 +4121,12 @@ "wrap-ansi" "^7.0.0" "internal-slot@^1.0.4", "internal-slot@^1.0.5": - "integrity" "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==" - "resolved" "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz" - "version" "1.0.5" + "integrity" "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==" + "resolved" "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz" + "version" "1.0.6" dependencies: - "get-intrinsic" "^1.2.0" - "has" "^1.0.3" + "get-intrinsic" "^1.2.2" + "hasown" "^2.0.0" "side-channel" "^1.0.4" "is-arguments@^1.1.1": @@ -4109,6 +4185,13 @@ "resolved" "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" "version" "2.0.5" +"is-builtin-module@^3.2.1": + "integrity" "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==" + "resolved" "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "builtin-modules" "^3.3.0" + "is-callable@^1.1.3", "is-callable@^1.1.4", "is-callable@^1.2.7": "integrity" "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" @@ -4121,12 +4204,12 @@ dependencies: "ci-info" "^3.2.0" -"is-core-module@^2.11.0", "is-core-module@^2.12.1", "is-core-module@^2.13.0", "is-core-module@^2.5.0", "is-core-module@^2.9.0": - "integrity" "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==" - "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz" - "version" "2.13.0" +"is-core-module@^2.11.0", "is-core-module@^2.12.1", "is-core-module@^2.13.0", "is-core-module@^2.13.1", "is-core-module@^2.5.0": + "integrity" "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==" + "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" + "version" "2.13.1" dependencies: - "has" "^1.0.3" + "hasown" "^2.0.0" "is-date-object@^1.0.1", "is-date-object@^1.0.5": "integrity" "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==" @@ -4358,6 +4441,11 @@ "resolved" "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" "version" "2.0.5" +"isarray@~1.0.0": + "integrity" "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "version" "1.0.0" + "isexe@^2.0.0": "integrity" "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" @@ -4369,9 +4457,9 @@ "version" "0.1.2" "istanbul-lib-coverage@^3.0.0", "istanbul-lib-coverage@^3.2.0": - "integrity" "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" - "resolved" "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" - "version" "3.2.0" + "integrity" "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==" + "resolved" "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz" + "version" "3.2.2" "istanbul-lib-instrument@^5.0.4": "integrity" "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==" @@ -4836,9 +4924,19 @@ "jest-cli" "^29.7.0" "jiti@^1.18.2": - "integrity" "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==" - "resolved" "https://registry.npmjs.org/jiti/-/jiti-1.20.0.tgz" - "version" "1.20.0" + "integrity" "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==" + "resolved" "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz" + "version" "1.21.0" + +"jquery@^2.1.4": + "integrity" "sha512-lBHj60ezci2u1v2FqnZIraShGgEXq35qCzMv4lITyHGppTnA13rwR0MgwyNJh9TnDs3aXUvd1xjAotfraMHX/Q==" + "resolved" "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz" + "version" "2.2.4" + +"jquery@^3.6.0": + "integrity" "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" + "resolved" "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz" + "version" "3.7.1" "js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0": "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" @@ -4981,7 +5079,7 @@ "json-schema" "0.4.0" "verror" "1.10.0" -"jsx-ast-utils@^2.4.1 || ^3.0.0", "jsx-ast-utils@^3.3.3": +"jsx-ast-utils@^2.4.1 || ^3.0.0", "jsx-ast-utils@^3.3.5": "integrity" "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==" "resolved" "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz" "version" "3.3.5" @@ -4991,10 +5089,20 @@ "object.assign" "^4.1.4" "object.values" "^1.1.6" +"jszip@^3.1.2": + "integrity" "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==" + "resolved" "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz" + "version" "3.10.1" + dependencies: + "lie" "~3.3.0" + "pako" "~1.0.2" + "readable-stream" "~2.3.6" + "setimmediate" "^1.0.5" + "keyv@^4.5.3": - "integrity" "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==" - "resolved" "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz" - "version" "4.5.3" + "integrity" "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==" + "resolved" "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" + "version" "4.5.4" dependencies: "json-buffer" "3.0.1" @@ -5008,17 +5116,17 @@ "resolved" "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" "version" "3.0.3" -"language-subtag-registry@~0.3.2": +"language-subtag-registry@^0.3.20": "integrity" "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" "resolved" "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz" "version" "0.3.22" -"language-tags@=1.0.5": - "integrity" "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==" - "resolved" "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz" - "version" "1.0.5" +"language-tags@^1.0.9": + "integrity" "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==" + "resolved" "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz" + "version" "1.0.9" dependencies: - "language-subtag-registry" "~0.3.2" + "language-subtag-registry" "^0.3.20" "lazy-ass@^1.6.0": "integrity" "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==" @@ -5043,11 +5151,23 @@ "prelude-ls" "^1.2.1" "type-check" "~0.4.0" -"lilconfig@^2.0.5", "lilconfig@^2.1.0", "lilconfig@2.1.0": +"lie@~3.3.0": + "integrity" "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==" + "resolved" "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "immediate" "~3.0.5" + +"lilconfig@^2.1.0", "lilconfig@2.1.0": "integrity" "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==" "resolved" "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" "version" "2.1.0" +"lilconfig@^3.0.0": + "integrity" "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==" + "resolved" "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz" + "version" "3.0.0" + "lines-and-columns@^1.1.6": "integrity" "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" @@ -5095,6 +5215,13 @@ "rfdc" "^1.3.0" "wrap-ansi" "^8.1.0" +"litemol@github:dsehnal/LiteMol": + "resolved" "git+ssh://git@github.com/dsehnal/LiteMol.git#2ce0190a9b369841c1c3ee7322c2f5dda3e7800e" + "version" "2.4.2" + dependencies: + "@types/react" "^15.6.16" + "@types/react-dom" "^15.5.6" + "locate-path@^5.0.0": "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==" "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" @@ -5216,9 +5343,9 @@ "js-tokens" "^3.0.0 || ^4.0.0" "lru-cache@^10.0.1": - "integrity" "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" - "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz" - "version" "10.0.1" + "integrity" "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz" + "version" "10.1.0" "lru-cache@^5.1.1": "integrity" "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==" @@ -5366,6 +5493,23 @@ "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" "version" "1.0.4" +"molart@github:davidhoksza/MolArt": + "resolved" "git+ssh://git@github.com/davidhoksza/MolArt.git#7fa1d23558af0938bd74621ff2ee125f9a4c8d05" + "version" "1.16.0" + dependencies: + "@types/downloadjs" "^1.4.2" + "color-blend" "1.0.0" + "downloadjs" "^1.4.7" + "events" "^1.1.1" + "jquery" "^3.6.0" + "litemol" "github:dsehnal/LiteMol" + "lodash" "^4.17.21" + "ProtVista" "git+https://github.com/davidhoksza/protvista.git#scaling" + "semantic-ui-button" "2.2.12" + "semantic-ui-dropdown" "2.2.12" + "semantic-ui-label" "2.2.12" + "semantic-ui-transition" "2.2.12" + "moo-color@^1.0.2": "integrity" "sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==" "resolved" "https://registry.npmjs.org/moo-color/-/moo-color-1.0.3.tgz" @@ -5393,9 +5537,9 @@ "thenify-all" "^1.0.0" "nanoid@^3.3.4", "nanoid@^3.3.6": - "integrity" "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" - "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz" - "version" "3.3.6" + "integrity" "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" + "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz" + "version" "3.3.7" "natural-compare@^1.4.0": "integrity" "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" @@ -5436,10 +5580,10 @@ "resolved" "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" "version" "0.4.0" -"node-releases@^2.0.13": - "integrity" "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" - "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz" - "version" "2.0.13" +"node-releases@^2.0.14": + "integrity" "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" + "version" "2.0.14" "normalize-package-data@^2.5.0": "integrity" "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==" @@ -5500,10 +5644,10 @@ "resolved" "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" "version" "3.0.0" -"object-inspect@^1.12.3", "object-inspect@^1.9.0": - "integrity" "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" - "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" - "version" "1.12.3" +"object-inspect@^1.13.1", "object-inspect@^1.9.0": + "integrity" "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" + "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" + "version" "1.13.1" "object-is@^1.1.5": "integrity" "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==" @@ -5519,16 +5663,16 @@ "version" "1.1.1" "object.assign@^4.1.2", "object.assign@^4.1.4": - "integrity" "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==" - "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" - "version" "4.1.4" + "integrity" "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==" + "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz" + "version" "4.1.5" dependencies: - "call-bind" "^1.0.2" - "define-properties" "^1.1.4" + "call-bind" "^1.0.5" + "define-properties" "^1.2.1" "has-symbols" "^1.0.3" "object-keys" "^1.1.1" -"object.entries@^1.1.5", "object.entries@^1.1.6": +"object.entries@^1.1.5", "object.entries@^1.1.6", "object.entries@^1.1.7": "integrity" "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==" "resolved" "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz" "version" "1.1.7" @@ -5537,7 +5681,7 @@ "define-properties" "^1.2.0" "es-abstract" "^1.22.1" -"object.fromentries@^2.0.6": +"object.fromentries@^2.0.6", "object.fromentries@^2.0.7": "integrity" "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==" "resolved" "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz" "version" "2.0.7" @@ -5546,7 +5690,7 @@ "define-properties" "^1.2.0" "es-abstract" "^1.22.1" -"object.groupby@^1.0.0": +"object.groupby@^1.0.1": "integrity" "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==" "resolved" "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz" "version" "1.0.1" @@ -5564,7 +5708,7 @@ "define-properties" "^1.2.0" "es-abstract" "^1.22.1" -"object.values@^1.1.6": +"object.values@^1.1.6", "object.values@^1.1.7": "integrity" "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==" "resolved" "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz" "version" "1.1.7" @@ -5573,18 +5717,13 @@ "define-properties" "^1.2.0" "es-abstract" "^1.22.1" -"ol-contextmenu@^5.3.0": - "integrity" "sha512-AO9rGKaQpLAzqpEva7mukhkWrGkL/o1s8tXPsYuYBGMoiTBbXffgTikXjTmq1m7l3gDwXWWWi6R2ROda5lgXNw==" - "resolved" "https://registry.npmjs.org/ol-contextmenu/-/ol-contextmenu-5.3.0.tgz" - "version" "5.3.0" - dependencies: - "tiny-emitter" "^2.1.0" - -"ol@^8.1.0", "ol@> 7.x <= 8.x": - "integrity" "sha512-cx3SH2plpFS9fM8pp1nCypgQXGJD7Mcb1E3mEySmy5XEw1DUEo+kkNzgtAZz5qupekqi7aU9iBJEjCoMfqvO2Q==" - "resolved" "https://registry.npmjs.org/ol/-/ol-8.1.0.tgz" - "version" "8.1.0" +"ol@^8.1.0": + "integrity" "sha512-/m1ddd7Jsp4Kbg+l7+ozR5aKHAZNQOBAoNZ5pM9Jvh4Etkf0WGkXr9qXd7PnhmwiC1Hnc2Toz9XjCzBBvexfXw==" + "resolved" "https://registry.npmjs.org/ol/-/ol-8.2.0.tgz" + "version" "8.2.0" dependencies: + "color-rgba" "^3.0.0" + "color-space" "^2.0.1" "earcut" "^2.2.3" "geotiff" "^2.0.7" "pbf" "3.2.1" @@ -5665,7 +5804,14 @@ dependencies: "p-try" "^2.0.0" -"p-limit@^3.0.2", "p-limit@^3.1.0": +"p-limit@^3.0.2": + "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "yocto-queue" "^0.1.0" + +"p-limit@^3.1.0": "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" "version" "3.1.0" @@ -5703,6 +5849,11 @@ "resolved" "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz" "version" "2.1.0" +"pako@~1.0.2": + "integrity" "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + "resolved" "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" + "version" "1.0.11" + "parent-module@^1.0.0": "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==" "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" @@ -5834,12 +5985,12 @@ "camelcase-css" "^2.0.1" "postcss-load-config@^4.0.1": - "integrity" "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==" - "resolved" "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz" - "version" "4.0.1" + "integrity" "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==" + "resolved" "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz" + "version" "4.0.2" dependencies: - "lilconfig" "^2.0.5" - "yaml" "^2.1.1" + "lilconfig" "^3.0.0" + "yaml" "^2.3.4" "postcss-nested@^6.0.1": "integrity" "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==" @@ -5897,14 +6048,14 @@ "fast-diff" "^1.1.2" "prettier-plugin-tailwindcss@^0.5.6": - "integrity" "sha512-2Xgb+GQlkPAUCFi3sV+NOYcSI5XgduvDBL2Zt/hwJudeKXkyvRS65c38SB0yb9UB40+1rL83I6m0RtlOQ8eHdg==" - "resolved" "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.6.tgz" - "version" "0.5.6" + "integrity" "sha512-9x3t1s2Cjbut2QiP+O0mDqV3gLXTe2CgRlQDgucopVkUdw26sQi53p/q4qvGxMLBDfk/dcTV57Aa/zYwz9l8Ew==" + "resolved" "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.9.tgz" + "version" "0.5.9" "prettier@^3.0", "prettier@^3.0.3", "prettier@>=3.0.0": - "integrity" "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==" - "resolved" "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz" - "version" "3.0.3" + "integrity" "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==" + "resolved" "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz" + "version" "3.1.1" "pretty-bytes@^5.6.0": "integrity" "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" @@ -5938,6 +6089,11 @@ "ansi-styles" "^5.0.0" "react-is" "^18.0.0" +"process-nextick-args@~2.0.0": + "integrity" "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + "version" "2.0.1" + "process@^0.11.10": "integrity" "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" "resolved" "https://registry.npmjs.org/process/-/process-0.11.10.tgz" @@ -5965,6 +6121,16 @@ "resolved" "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz" "version" "3.6.0" +"ProtVista@git+https://github.com/davidhoksza/protvista.git#scaling": + "resolved" "git+ssh://git@github.com/davidhoksza/protvista.git#d5e8390c7a58a902d1d815524acf7e118729360a" + "version" "2.0.6" + dependencies: + "d3" "^3.4.13" + "file-saver" "^1.3.2" + "jquery" "^2.1.4" + "jszip" "^3.1.2" + "underscore" "^1.7.0" + "proxy-from-env@^1.1.0": "integrity" "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" "resolved" "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" @@ -5989,9 +6155,9 @@ "once" "^1.3.1" "punycode@^2.1.0", "punycode@^2.1.1": - "integrity" "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" - "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" - "version" "2.3.0" + "integrity" "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" + "version" "2.3.1" "pure-rand@^6.0.0": "integrity" "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==" @@ -6068,7 +6234,12 @@ "loose-envify" "^1.1.0" "scheduler" "^0.23.0" -"react-is@^16.13.1", "react-is@^16.7.0": +"react-is@^16.13.1": + "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + "version" "16.13.1" + +"react-is@^16.7.0": "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" "version" "16.13.1" @@ -6078,12 +6249,7 @@ "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" "version" "17.0.2" -"react-is@^18.0.0": - "integrity" "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - "resolved" "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" - "version" "18.2.0" - -"react-is@^18.2.0": +"react-is@^18.0.0", "react-is@^18.2.0": "integrity" "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" "resolved" "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" "version" "18.2.0" @@ -6142,6 +6308,19 @@ "string_decoder" "^1.1.1" "util-deprecate" "^1.0.1" +"readable-stream@~2.3.6": + "integrity" "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + "version" "2.3.8" + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.3" + "isarray" "~1.0.0" + "process-nextick-args" "~2.0.0" + "safe-buffer" "~5.1.1" + "string_decoder" "~1.1.1" + "util-deprecate" "~1.0.1" + "readdirp@~3.6.0": "integrity" "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==" "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" @@ -6189,9 +6368,9 @@ "which-builtin-type" "^1.1.3" "regenerator-runtime@^0.14.0": - "integrity" "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz" - "version" "0.14.0" + "integrity" "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" + "version" "0.14.1" "regexp.prototype.flags@^1.5.0", "regexp.prototype.flags@^1.5.1": "integrity" "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==" @@ -6279,20 +6458,20 @@ "version" "2.0.2" "resolve@^1.1.7", "resolve@^1.10.0", "resolve@^1.20.0", "resolve@^1.22.2", "resolve@^1.22.4": - "integrity" "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==" - "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz" - "version" "1.22.6" + "integrity" "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" + "version" "1.22.8" dependencies: "is-core-module" "^2.13.0" "path-parse" "^1.0.7" "supports-preserve-symlinks-flag" "^1.0.0" "resolve@^2.0.0-next.4": - "integrity" "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==" - "resolved" "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz" - "version" "2.0.0-next.4" + "integrity" "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz" + "version" "2.0.0-next.5" dependencies: - "is-core-module" "^2.9.0" + "is-core-module" "^2.13.0" "path-parse" "^1.0.7" "supports-preserve-symlinks-flag" "^1.0.0" @@ -6375,6 +6554,11 @@ "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" "version" "5.2.1" +"safe-buffer@~5.1.0", "safe-buffer@~5.1.1": + "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" + "safe-regex-test@^1.0.0": "integrity" "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==" "resolved" "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" @@ -6403,6 +6587,26 @@ dependencies: "loose-envify" "^1.1.0" +"semantic-ui-button@2.2.12": + "integrity" "sha512-z5E23bbb2txw60/Dgekf/1qDyFvU1JahiG05/XqOLaLCutXoep3cMtcFRoeyID6b2EwPQ84IHFXVskL3LNXQuQ==" + "resolved" "https://registry.npmjs.org/semantic-ui-button/-/semantic-ui-button-2.2.12.tgz" + "version" "2.2.12" + +"semantic-ui-dropdown@2.2.12": + "integrity" "sha512-ODFIjI7HnTEQBXg0OGt3rnw10e+ixJE7DicGXM3r3SfDqZ1ZZ6WJhPEGYMAXceKWZqgxPTRKxLoV+q8XyHYCUA==" + "resolved" "https://registry.npmjs.org/semantic-ui-dropdown/-/semantic-ui-dropdown-2.2.12.tgz" + "version" "2.2.12" + +"semantic-ui-label@2.2.12": + "integrity" "sha512-fVfFZdzKDjP889mA8/p+cH1xsFSjSN96vb2bv9n8jK5Kt4lmYZCD2eyvXui8Vr4cexY15/CgIHL79aXm4t2o7g==" + "resolved" "https://registry.npmjs.org/semantic-ui-label/-/semantic-ui-label-2.2.12.tgz" + "version" "2.2.12" + +"semantic-ui-transition@2.2.12": + "integrity" "sha512-42M5sXYvYMu/4z14ixbj9T3Be+r559WPwhty56kmuUucItEmYdD0XEHdpvyzKjJFR4x4Z3MNLaiCqoBEqQbvOQ==" + "resolved" "https://registry.npmjs.org/semantic-ui-transition/-/semantic-ui-transition-2.2.12.tgz" + "version" "2.2.12" + "semver@^6.3.0": "integrity" "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" @@ -6425,6 +6629,16 @@ "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" "version" "5.7.2" +"set-function-length@^1.1.1": + "integrity" "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==" + "resolved" "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "define-data-property" "^1.1.1" + "get-intrinsic" "^1.2.1" + "gopd" "^1.0.1" + "has-property-descriptors" "^1.0.0" + "set-function-name@^2.0.0", "set-function-name@^2.0.1": "integrity" "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==" "resolved" "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz" @@ -6434,6 +6648,11 @@ "functions-have-names" "^1.2.3" "has-property-descriptors" "^1.0.0" +"setimmediate@^1.0.5": + "integrity" "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + "resolved" "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" + "version" "1.0.5" + "shebang-command@^2.0.0": "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -6541,9 +6760,9 @@ "spdx-license-ids" "^3.0.0" "spdx-license-ids@^3.0.0": - "integrity" "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==" - "resolved" "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz" - "version" "3.0.15" + "integrity" "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==" + "resolved" "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz" + "version" "3.0.16" "split-on-first@^1.0.0": "integrity" "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" @@ -6563,9 +6782,9 @@ "version" "1.0.3" "sshpk@^1.14.1": - "integrity" "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==" - "resolved" "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" - "version" "1.17.0" + "integrity" "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==" + "resolved" "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz" + "version" "1.18.0" dependencies: "asn1" "~0.2.3" "assert-plus" "^1.0.0" @@ -6608,6 +6827,13 @@ dependencies: "safe-buffer" "~5.2.0" +"string_decoder@~1.1.1": + "integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "safe-buffer" "~5.1.0" + "string-argv@0.3.2": "integrity" "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==" "resolved" "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz" @@ -6708,7 +6934,12 @@ "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" "version" "3.0.0" -"strip-bom@^4.0.0", "strip-bom@4.0.0": +"strip-bom@^4.0.0": + "integrity" "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" + "version" "4.0.0" + +"strip-bom@4.0.0": "integrity" "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" "version" "4.0.0" @@ -6794,12 +7025,12 @@ "version" "3.2.4" "synckit@^0.8.5": - "integrity" "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==" - "resolved" "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz" - "version" "0.8.5" + "integrity" "sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA==" + "resolved" "https://registry.npmjs.org/synckit/-/synckit-0.8.6.tgz" + "version" "0.8.6" dependencies: - "@pkgr/utils" "^2.3.1" - "tslib" "^2.5.0" + "@pkgr/utils" "^2.4.2" + "tslib" "^2.6.2" "tailwind-merge@^1.14.0": "integrity" "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==" @@ -6873,9 +7104,9 @@ "any-promise" "^1.0.0" "throttleit@^1.0.0": - "integrity" "sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==" - "resolved" "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz" - "version" "1.0.0" + "integrity" "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==" + "resolved" "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz" + "version" "1.0.1" "through@^2.3.6", "through@^2.3.8", "through@>=2.2.7 <3": "integrity" "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" @@ -6889,11 +7120,6 @@ dependencies: "readable-stream" "3" -"tiny-emitter@^2.1.0": - "integrity" "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" - "resolved" "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz" - "version" "2.1.0" - "titleize@^3.0.0": "integrity" "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==" "resolved" "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz" @@ -6968,9 +7194,9 @@ "version" "0.1.13" "ts-node@^10.8.1", "ts-node@>=10", "ts-node@>=9.0.0": - "integrity" "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==" - "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" - "version" "10.9.1" + "integrity" "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==" + "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz" + "version" "10.9.2" dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" @@ -6986,10 +7212,10 @@ "v8-compile-cache-lib" "^3.0.1" "yn" "3.1.1" -"tsconfig-paths@^3.14.2": - "integrity" "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==" - "resolved" "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz" - "version" "3.14.2" +"tsconfig-paths@^3.15.0": + "integrity" "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==" + "resolved" "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz" + "version" "3.15.0" dependencies: "@types/json5" "^0.0.29" "json5" "^1.0.2" @@ -7001,7 +7227,7 @@ "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" "version" "1.14.1" -"tslib@^2.1.0", "tslib@^2.4.0", "tslib@^2.5.0", "tslib@^2.6.0", "tslib@^2.6.2": +"tslib@^2.1.0", "tslib@^2.4.0", "tslib@^2.6.0", "tslib@^2.6.2": "integrity" "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" "version" "2.6.2" @@ -7111,10 +7337,10 @@ "for-each" "^0.3.3" "is-typed-array" "^1.1.9" -"typescript@*", "typescript@^4.6.4 || ^5.0.0", "typescript@^5.2.2", "typescript@>=2.7", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", "typescript@>=3.3.1", "typescript@>=4", "typescript@>=4.2.0", "typescript@>=4.9.5": - "integrity" "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==" - "resolved" "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz" - "version" "5.2.2" +"typescript@*", "typescript@^4.6.4 || ^5.2.2", "typescript@^5.2.2", "typescript@>=2.7", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", "typescript@>=3.3.1", "typescript@>=4", "typescript@>=4.2.0", "typescript@>=4.9.5": + "integrity" "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==" + "resolved" "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz" + "version" "5.3.3" "unbox-primitive@^1.0.2": "integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==" @@ -7126,15 +7352,25 @@ "has-symbols" "^1.0.3" "which-boxed-primitive" "^1.0.2" +"underscore@^1.7.0": + "integrity" "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + "resolved" "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz" + "version" "1.13.6" + +"undici-types@~5.26.4": + "integrity" "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "resolved" "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" + "version" "5.26.5" + "universalify@^0.2.0": "integrity" "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==" "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz" "version" "0.2.0" "universalify@^2.0.0": - "integrity" "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - "resolved" "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" - "version" "2.0.0" + "integrity" "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" + "resolved" "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" + "version" "2.0.1" "untildify@^4.0.0": "integrity" "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" @@ -7174,7 +7410,7 @@ "resolved" "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz" "version" "1.2.0" -"util-deprecate@^1.0.1", "util-deprecate@^1.0.2": +"util-deprecate@^1.0.1", "util-deprecate@^1.0.2", "util-deprecate@~1.0.1": "integrity" "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" "version" "1.0.2" @@ -7190,9 +7426,9 @@ "version" "3.0.1" "v8-to-istanbul@^9.0.1": - "integrity" "sha512-ZGBe7VAivuuoQXTeckpbYKTdtjXGcm3ZUHXC0PAk0CzFyuYvwi73a58iEKI3GkGD1c3EHc+EgfR1w5pgbfzJlQ==" - "resolved" "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.2.tgz" - "version" "9.1.2" + "integrity" "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==" + "resolved" "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz" + "version" "9.2.0" dependencies: "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" @@ -7313,13 +7549,13 @@ "is-weakmap" "^2.0.1" "is-weakset" "^2.0.1" -"which-typed-array@^1.1.11", "which-typed-array@^1.1.9": - "integrity" "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==" - "resolved" "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz" - "version" "1.1.11" +"which-typed-array@^1.1.11", "which-typed-array@^1.1.13", "which-typed-array@^1.1.9": + "integrity" "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==" + "resolved" "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz" + "version" "1.1.13" dependencies: "available-typed-arrays" "^1.0.5" - "call-bind" "^1.0.2" + "call-bind" "^1.0.4" "for-each" "^0.3.3" "gopd" "^1.0.1" "has-tostringtag" "^1.0.0" @@ -7384,9 +7620,9 @@ "signal-exit" "^3.0.7" "ws@^8.11.0": - "integrity" "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==" - "resolved" "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz" - "version" "8.14.2" + "integrity" "sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==" + "resolved" "https://registry.npmjs.org/ws/-/ws-8.15.1.tgz" + "version" "8.15.1" "xml-name-validator@^4.0.0": "integrity" "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==" @@ -7423,7 +7659,12 @@ "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" "version" "4.0.0" -"yaml@^2.1.1", "yaml@2.3.1": +"yaml@^2.3.4": + "integrity" "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==" + "resolved" "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz" + "version" "2.3.4" + +"yaml@2.3.1": "integrity" "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==" "resolved" "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz" "version" "2.3.1" @@ -7470,18 +7711,23 @@ "version" "0.1.0" "zod-fixture@^2.5.0": - "integrity" "sha512-lMQcUI5RC9zdkU26RUaOTDsUo1xWHEHtkVrERn6Cs/sRe+s/0qzltHQlRZMwYuvGh5SGPRI3Xy4eOToVJCj9sQ==" - "resolved" "https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.5.0.tgz" - "version" "2.5.0" + "integrity" "sha512-qjLe9TbZL22+MVMovGc6pB7O/7iXwquS4hXX3YImYzZ1p8FN3XEpYzjfR86dDQwBs/mf/jyYjwibPXktzXEljA==" + "resolved" "https://registry.npmjs.org/zod-fixture/-/zod-fixture-2.5.1.tgz" + "version" "2.5.1" dependencies: "randexp" "^0.5.3" "zod@^3.22.2", "zod@>=3.0.0": - "integrity" "sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==" - "resolved" "https://registry.npmjs.org/zod/-/zod-3.22.3.tgz" - "version" "3.22.3" + "integrity" "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==" + "resolved" "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz" + "version" "3.22.4" "zod@3.21.4": "integrity" "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==" "resolved" "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz" "version" "3.21.4" + +"zstddec@^0.1.0": + "integrity" "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==" + "resolved" "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz" + "version" "0.1.0" -- GitLab