import { defineComponent as bl, openBlock as B2, createElementBlock as ns, createElementVNode as u2, normalizeClass as Ul, toDisplayString as o3, unref as q3, ref as E3, createTextVNode as cl, Fragment as D5, renderList as a4, createCommentVNode as Y3, createVNode as Ra, withCtx as zl, onMounted as Ef, computed as L5, createBlock as xf } from "../vue.esm-browser.prod.js";
import { c as w3, D as Sf, _ as Bl } from "./index.6a15f04e.es.js";
const As = {
  allRenderFn: !1,
  cmpDidLoad: !0,
  cmpDidUnload: !1,
  cmpDidUpdate: !0,
  cmpDidRender: !0,
  cmpWillLoad: !0,
  cmpWillUpdate: !0,
  cmpWillRender: !0,
  connectedCallback: !0,
  disconnectedCallback: !0,
  element: !0,
  event: !0,
  hasRenderFn: !0,
  lifecycle: !0,
  hostListener: !0,
  hostListenerTargetWindow: !0,
  hostListenerTargetDocument: !0,
  hostListenerTargetBody: !0,
  hostListenerTargetParent: !1,
  hostListenerTarget: !0,
  member: !0,
  method: !0,
  mode: !0,
  observeAttribute: !0,
  prop: !0,
  propMutable: !0,
  reflect: !0,
  scoped: !0,
  shadowDom: !0,
  slot: !0,
  cssAnnotations: !0,
  state: !0,
  style: !0,
  svg: !0,
  updatable: !0,
  vdomAttribute: !0,
  vdomXlink: !0,
  vdomClass: !0,
  vdomFunctional: !0,
  vdomKey: !0,
  vdomListener: !0,
  vdomRef: !0,
  vdomPropOrAttr: !0,
  vdomRender: !0,
  vdomStyle: !0,
  vdomText: !0,
  watchCallback: !0,
  taskQueue: !0,
  hotModuleReplacement: !1,
  isDebug: !1,
  isDev: !1,
  isTesting: !1,
  hydrateServerSide: !1,
  hydrateClientSide: !1,
  lifecycleDOMEvents: !1,
  lazyLoad: !1,
  profile: !1,
  slotRelocation: !0,
  appendChildSlotFix: !1,
  cloneNodeFix: !1,
  hydratedAttribute: !1,
  hydratedClass: !0,
  safari10: !1,
  scriptDataOpts: !1,
  scopedSlotTextContentFix: !1,
  shadowDomShim: !1,
  slotChildNodesFix: !1,
  invisiblePrehydration: !0,
  propBoolean: !0,
  propNumber: !0,
  propString: !0,
  cssVarShim: !1,
  constructableCSS: !0,
  cmpShouldUpdate: !0,
  devTools: !1,
  dynamicImportShim: !1,
  shadowDelegatesFocus: !0,
  initializeNextTick: !1,
  asyncLoading: !1,
  asyncQueue: !1,
  transformTagName: !1,
  attachStyles: !0
};
let W3, n0, Ql, i0 = !1, Hl = !1, iu = !1, _s = !1, M5 = null, $5 = !1;
const Cl = typeof window < "u" ? window : {};
As.cssVarShim && Cl.CSS;
const Lo = Cl.document || { head: {} };
Cl.HTMLElement || class {
};
const H2 = {
  $flags$: 0,
  $resourcesUrl$: "",
  jmp: (s) => s(),
  raf: (s) => requestAnimationFrame(s),
  ael: (s, n, a, b) => s.addEventListener(n, a, b),
  rel: (s, n, a, b) => s.removeEventListener(n, a, b),
  ce: (s, n) => new CustomEvent(s, n)
}, Gl = As.shadowDomShim && As.shadowDom ? /* @__PURE__ */ (() => (Lo.head.attachShadow + "").indexOf("[native") > -1)() : !0, Lf = /* @__PURE__ */ (() => {
  let s = !1;
  try {
    Lo.addEventListener("e", null, Object.defineProperty({}, "passive", {
      get() {
        s = !0;
      }
    }));
  } catch {
  }
  return s;
})(), Tf = (s) => Promise.resolve(s), _f = As.constructableCSS ? /* @__PURE__ */ (() => {
  try {
    return new CSSStyleSheet(), typeof new CSSStyleSheet().replace == "function";
  } catch {
  }
  return !1;
})() : !1, s0 = (s, n, a, b) => {
  a && a.map(([g, C, x]) => {
    const I = Rf(s, g), P = Af(n, x), M = Of(g);
    H2.ael(I, C, P, M), (n.$rmListeners$ = n.$rmListeners$ || []).push(() => H2.rel(I, C, P, M));
  });
}, Af = (s, n) => (a) => {
  try {
    As.lazyLoad || s.$hostElement$[n](a);
  } catch (b) {
    wl(b);
  }
}, Rf = (s, n) => n & 4 ? Lo : n & 8 ? Cl : n & 16 ? Lo.body : s, Of = (s) => Lf ? {
  passive: (s & 1) !== 0,
  capture: (s & 2) !== 0
} : (s & 2) !== 0, l4 = "http://www.w3.org/1999/xlink", S3 = (s, n = "") => () => {
}, u4 = /* @__PURE__ */ new WeakMap(), kf = (s, n, a) => {
  let b = jl.get(s);
  _f && a ? (b = b || new CSSStyleSheet(), b.replace(n)) : b = n, jl.set(s, b);
}, If = (s, n, a, b) => {
  let g = o0(n, a);
  const C = jl.get(g);
  if (s = s.nodeType === 11 ? s : Lo, C)
    if (typeof C == "string") {
      s = s.head || s;
      let x = u4.get(s), I;
      x || u4.set(s, x = /* @__PURE__ */ new Set()), x.has(g) || (I = Lo.createElement("style"), I.innerHTML = C, s.insertBefore(I, s.querySelector("link")), x && x.add(g));
    } else
      s.adoptedStyleSheets.includes(C) || (s.adoptedStyleSheets = [...s.adoptedStyleSheets, C]);
  return g;
}, Nf = (s) => {
  const n = s.$cmpMeta$, a = s.$hostElement$, b = n.$flags$, g = S3("attachStyles", n.$tagName$), C = If(Gl && a.shadowRoot ? a.shadowRoot : a.getRootNode(), n, s.$modeName$);
  b & 10 && (a["s-sc"] = C, a.classList.add(C + "-h"), b & 2 && a.classList.add(C + "-s")), g();
}, o0 = (s, n) => "sc-" + (n && s.$flags$ & 32 ? s.$tagName$ + "-" + n : s.$tagName$), Df = (s) => g0.map((n) => n(s)).find((n) => !!n), Mf = (s) => g0.push(s), c4 = {}, $f = "http://www.w3.org/2000/svg", Ff = "http://www.w3.org/1999/xhtml", Pf = (s) => s != null, su = (s) => (s = typeof s, s === "object" || s === "function"), Ot = (s, n, ...a) => {
  let b = null, g = null, C = null, x = !1, I = !1;
  const P = [], M = (j) => {
    for (let K = 0; K < j.length; K++)
      b = j[K], Array.isArray(b) ? M(b) : b != null && typeof b != "boolean" && ((x = typeof s != "function" && !su(b)) && (b = String(b)), x && I ? P[P.length - 1].$text$ += b : P.push(x ? ql(null, b) : b), I = x);
  };
  if (M(a), n) {
    n.key && (g = n.key), n.name && (C = n.name);
    {
      const j = n.className || n.class;
      j && (n.class = typeof j != "object" ? j : Object.keys(j).filter((K) => j[K]).join(" "));
    }
  }
  if (typeof s == "function")
    return s(n === null ? {} : n, P, zf);
  const U = ql(s, null);
  return U.$attrs$ = n, P.length > 0 && (U.$children$ = P), U.$key$ = g, U.$name$ = C, U;
}, ql = (s, n) => {
  const a = {
    $flags$: 0,
    $tag$: s,
    $text$: n,
    $elm$: null,
    $children$: null
  };
  return a.$attrs$ = null, a.$key$ = null, a.$name$ = null, a;
}, To = {}, Uf = (s) => s && s.$tag$ === To, zf = {
  forEach: (s, n) => s.map(f4).forEach(n),
  map: (s, n) => s.map(f4).map(n).map(Bf)
}, f4 = (s) => ({
  vattrs: s.$attrs$,
  vchildren: s.$children$,
  vkey: s.$key$,
  vname: s.$name$,
  vtag: s.$tag$,
  vtext: s.$text$
}), Bf = (s) => {
  if (typeof s.vtag == "function") {
    const a = Object.assign({}, s.vattrs);
    return s.vkey && (a.key = s.vkey), s.vname && (a.name = s.vname), Ot(s.vtag, a, ...s.vchildren || []);
  }
  const n = ql(s.vtag, s.vtext);
  return n.$attrs$ = s.vattrs, n.$children$ = s.vchildren, n.$key$ = s.vkey, n.$name$ = s.vname, n;
}, h4 = (s, n, a, b, g, C) => {
  if (a !== b) {
    let x = b4(s, n), I = n.toLowerCase();
    if (n === "class") {
      const P = s.classList, M = d4(a), U = d4(b);
      P.remove(...M.filter((j) => j && !U.includes(j))), P.add(...U.filter((j) => j && !M.includes(j)));
    } else if (n === "style") {
      for (const P in a)
        (!b || b[P] == null) && (P.includes("-") ? s.style.removeProperty(P) : s.style[P] = "");
      for (const P in b)
        (!a || b[P] !== a[P]) && (P.includes("-") ? s.style.setProperty(P, b[P]) : s.style[P] = b[P]);
    } else if (n !== "key")
      if (n === "ref")
        b && b(s);
      else if (!s.__lookupSetter__(n) && n[0] === "o" && n[1] === "n")
        n[2] === "-" ? n = n.slice(3) : b4(Cl, I) ? n = I.slice(2) : n = I[2] + n.slice(3), a && H2.rel(s, n, a, !1), b && H2.ael(s, n, b, !1);
      else {
        const P = su(b);
        if ((x || P && b !== null) && !g)
          try {
            if (s.tagName.includes("-"))
              s[n] = b;
            else {
              const U = b == null ? "" : b;
              n === "list" ? x = !1 : (a == null || s[n] != U) && (s[n] = U);
            }
          } catch {
          }
        let M = !1;
        I !== (I = I.replace(/^xlink\:?/, "")) && (n = I, M = !0), b == null || b === !1 ? (b !== !1 || s.getAttribute(n) === "") && (M ? s.removeAttributeNS(l4, n) : s.removeAttribute(n)) : (!x || C & 4 || g) && !P && (b = b === !0 ? "" : b, M ? s.setAttributeNS(l4, n, b) : s.setAttribute(n, b));
      }
  }
}, Hf = /\s/, d4 = (s) => s ? s.split(Hf) : [], a0 = (s, n, a, b) => {
  const g = n.$elm$.nodeType === 11 && n.$elm$.host ? n.$elm$.host : n.$elm$, C = s && s.$attrs$ || c4, x = n.$attrs$ || c4;
  for (b in C)
    b in x || h4(g, b, C[b], void 0, a, n.$flags$);
  for (b in x)
    h4(g, b, C[b], x[b], a, n.$flags$);
}, Wl = (s, n, a, b) => {
  const g = n.$children$[a];
  let C = 0, x, I, P;
  if (i0 || (iu = !0, g.$tag$ === "slot" && (W3 && b.classList.add(W3 + "-s"), g.$flags$ |= g.$children$ ? 2 : 1)), g.$text$ !== null)
    x = g.$elm$ = Lo.createTextNode(g.$text$);
  else if (g.$flags$ & 1)
    x = g.$elm$ = Lo.createTextNode("");
  else {
    if (_s || (_s = g.$tag$ === "svg"), x = g.$elm$ = Lo.createElementNS(_s ? $f : Ff, g.$flags$ & 2 ? "slot-fb" : g.$tag$), _s && g.$tag$ === "foreignObject" && (_s = !1), a0(null, g, _s), Pf(W3) && x["s-si"] !== W3 && x.classList.add(x["s-si"] = W3), g.$children$)
      for (C = 0; C < g.$children$.length; ++C)
        I = Wl(s, g, C, x), I && x.appendChild(I);
    g.$tag$ === "svg" ? _s = !1 : x.tagName === "foreignObject" && (_s = !0);
  }
  return x["s-hn"] = Ql, g.$flags$ & 3 && (x["s-sr"] = !0, x["s-cr"] = n0, x["s-sn"] = g.$name$ || "", P = s && s.$children$ && s.$children$[a], P && P.$tag$ === g.$tag$ && s.$elm$ && fl(s.$elm$, !1)), x;
}, fl = (s, n) => {
  H2.$flags$ |= 1;
  const a = s.childNodes;
  for (let b = a.length - 1; b >= 0; b--) {
    const g = a[b];
    g["s-hn"] !== Ql && g["s-ol"] && (c0(g).insertBefore(g, ou(g)), g["s-ol"].remove(), g["s-ol"] = void 0, iu = !0), n && fl(g, n);
  }
  H2.$flags$ &= -2;
}, l0 = (s, n, a, b, g, C) => {
  let x = s["s-cr"] && s["s-cr"].parentNode || s, I;
  for (x.shadowRoot && x.tagName === Ql && (x = x.shadowRoot); g <= C; ++g)
    b[g] && (I = Wl(null, a, g, s), I && (b[g].$elm$ = I, x.insertBefore(I, ou(n))));
}, u0 = (s, n, a, b, g) => {
  for (; n <= a; ++n)
    (b = s[n]) && (g = b.$elm$, d0(b), Hl = !0, g["s-ol"] ? g["s-ol"].remove() : fl(g, !0), g.remove());
}, Gf = (s, n, a, b) => {
  let g = 0, C = 0, x = 0, I = 0, P = n.length - 1, M = n[0], U = n[P], j = b.length - 1, K = b[0], Z = b[j], re, V;
  for (; g <= P && C <= j; )
    if (M == null)
      M = n[++g];
    else if (U == null)
      U = n[--P];
    else if (K == null)
      K = b[++C];
    else if (Z == null)
      Z = b[--j];
    else if (Il(M, K))
      j3(M, K), M = n[++g], K = b[++C];
    else if (Il(U, Z))
      j3(U, Z), U = n[--P], Z = b[--j];
    else if (Il(M, Z))
      (M.$tag$ === "slot" || Z.$tag$ === "slot") && fl(M.$elm$.parentNode, !1), j3(M, Z), s.insertBefore(M.$elm$, U.$elm$.nextSibling), M = n[++g], Z = b[--j];
    else if (Il(U, K))
      (M.$tag$ === "slot" || Z.$tag$ === "slot") && fl(U.$elm$.parentNode, !1), j3(U, K), s.insertBefore(U.$elm$, M.$elm$), U = n[--P], K = b[++C];
    else {
      for (x = -1, I = g; I <= P; ++I)
        if (n[I] && n[I].$key$ !== null && n[I].$key$ === K.$key$) {
          x = I;
          break;
        }
      x >= 0 ? (V = n[x], V.$tag$ !== K.$tag$ ? re = Wl(n && n[C], a, x, s) : (j3(V, K), n[x] = void 0, re = V.$elm$), K = b[++C]) : (re = Wl(n && n[C], a, C, s), K = b[++C]), re && c0(M.$elm$).insertBefore(re, ou(M.$elm$));
    }
  g > P ? l0(s, b[j + 1] == null ? null : b[j + 1].$elm$, a, b, C, j) : C > j && u0(n, g, P);
}, Il = (s, n) => s.$tag$ === n.$tag$ ? s.$tag$ === "slot" ? s.$name$ === n.$name$ : s.$key$ === n.$key$ : !1, ou = (s) => s && s["s-ol"] || s, c0 = (s) => (s["s-ol"] ? s["s-ol"] : s).parentNode, j3 = (s, n) => {
  const a = n.$elm$ = s.$elm$, b = s.$children$, g = n.$children$, C = n.$tag$, x = n.$text$;
  let I;
  x === null ? (_s = C === "svg" ? !0 : C === "foreignObject" ? !1 : _s, C === "slot" || a0(s, n, _s), b !== null && g !== null ? Gf(a, b, n, g) : g !== null ? (s.$text$ !== null && (a.textContent = ""), l0(a, null, n, g, 0, g.length - 1)) : b !== null && u0(b, 0, b.length - 1), _s && C === "svg" && (_s = !1)) : (I = a["s-cr"]) ? I.parentNode.textContent = x : s.$text$ !== x && (a.data = x);
}, f0 = (s) => {
  const n = s.childNodes;
  let a, b, g, C, x, I;
  for (b = 0, g = n.length; b < g; b++)
    if (a = n[b], a.nodeType === 1) {
      if (a["s-sr"]) {
        for (x = a["s-sn"], a.hidden = !1, C = 0; C < g; C++)
          if (I = n[C].nodeType, n[C]["s-hn"] !== a["s-hn"] || x !== "") {
            if (I === 1 && x === n[C].getAttribute("slot")) {
              a.hidden = !0;
              break;
            }
          } else if (I === 1 || I === 3 && n[C].textContent.trim() !== "") {
            a.hidden = !0;
            break;
          }
      }
      f0(a);
    }
}, So = [], h0 = (s) => {
  let n, a, b, g, C, x, I = 0;
  const P = s.childNodes, M = P.length;
  for (; I < M; I++) {
    if (n = P[I], n["s-sr"] && (a = n["s-cr"]) && a.parentNode)
      for (b = a.parentNode.childNodes, g = n["s-sn"], x = b.length - 1; x >= 0; x--)
        a = b[x], !a["s-cn"] && !a["s-nr"] && a["s-hn"] !== n["s-hn"] && (p4(a, g) ? (C = So.find((U) => U.$nodeToRelocate$ === a), Hl = !0, a["s-sn"] = a["s-sn"] || g, C ? C.$slotRefNode$ = n : So.push({
          $slotRefNode$: n,
          $nodeToRelocate$: a
        }), a["s-sr"] && So.map((U) => {
          p4(U.$nodeToRelocate$, a["s-sn"]) && (C = So.find((j) => j.$nodeToRelocate$ === a), C && !U.$slotRefNode$ && (U.$slotRefNode$ = C.$slotRefNode$));
        })) : So.some((U) => U.$nodeToRelocate$ === a) || So.push({
          $nodeToRelocate$: a
        }));
    n.nodeType === 1 && h0(n);
  }
}, p4 = (s, n) => s.nodeType === 1 ? s.getAttribute("slot") === null && n === "" || s.getAttribute("slot") === n : s["s-sn"] === n ? !0 : n === "", d0 = (s) => {
  s.$attrs$ && s.$attrs$.ref && s.$attrs$.ref(null), s.$children$ && s.$children$.map(d0);
}, qf = (s, n) => {
  const a = s.$hostElement$, b = s.$cmpMeta$, g = s.$vnode$ || ql(null, null), C = Uf(n) ? n : Ot(null, null, n);
  Ql = a.tagName, b.$attrsToReflect$ && (C.$attrs$ = C.$attrs$ || {}, b.$attrsToReflect$.map(([x, I]) => C.$attrs$[I] = a[x])), C.$tag$ = null, C.$flags$ |= 4, s.$vnode$ = C, C.$elm$ = g.$elm$ = a.shadowRoot || a, W3 = a["s-sc"], n0 = a["s-cr"], i0 = Gl && (b.$flags$ & 1) !== 0, Hl = !1, j3(g, C);
  {
    if (H2.$flags$ |= 1, iu) {
      h0(C.$elm$);
      let x, I, P, M, U, j, K = 0;
      for (; K < So.length; K++)
        x = So[K], I = x.$nodeToRelocate$, I["s-ol"] || (P = Lo.createTextNode(""), P["s-nr"] = I, I.parentNode.insertBefore(I["s-ol"] = P, I));
      for (K = 0; K < So.length; K++)
        if (x = So[K], I = x.$nodeToRelocate$, x.$slotRefNode$) {
          for (M = x.$slotRefNode$.parentNode, U = x.$slotRefNode$.nextSibling, P = I["s-ol"]; P = P.previousSibling; )
            if (j = P["s-nr"], j && j["s-sn"] === I["s-sn"] && M === j.parentNode && (j = j.nextSibling, !j || !j["s-nr"])) {
              U = j;
              break;
            }
          (!U && M !== I.parentNode || I.nextSibling !== U) && I !== U && (!I["s-hn"] && I["s-ol"] && (I["s-hn"] = I["s-ol"].parentNode.nodeName), M.insertBefore(I, U));
        } else
          I.nodeType === 1 && (I.hidden = !0);
    }
    Hl && f0(C.$elm$), H2.$flags$ &= -2, So.length = 0;
  }
}, Wf = (s) => s, k1 = (s, n, a) => {
  const b = Wf(s);
  return {
    emit: (g) => jf(b, n, {
      bubbles: !!(a & 4),
      composed: !!(a & 2),
      cancelable: !!(a & 1),
      detail: g
    })
  };
}, jf = (s, n, a) => {
  const b = H2.ce(n, a);
  return s.dispatchEvent(b), b;
}, Vf = (s, n) => {
}, au = (s, n) => (s.$flags$ |= 16, Vf(s, s.$ancestorComponent$), ch(() => Yf(s, n))), Yf = (s, n) => {
  const a = s.$hostElement$, b = S3("scheduleUpdate", s.$cmpMeta$.$tagName$), g = a;
  let C;
  return n ? C = K3(g, "componentWillLoad") : C = K3(g, "componentWillUpdate"), C = m4(C, () => K3(g, "componentWillRender")), b(), m4(C, () => Kf(s, g, n));
}, Kf = async (s, n, a) => {
  const b = s.$hostElement$, g = S3("update", s.$cmpMeta$.$tagName$);
  b["s-rc"], a && Nf(s);
  const C = S3("render", s.$cmpMeta$.$tagName$);
  Xf(s, n, b), C(), g(), Jf(s);
}, Xf = (s, n, a) => {
  try {
    M5 = n, n = n.render && n.render(), s.$flags$ &= -17, s.$flags$ |= 2, (As.hasRenderFn || As.reflect) && (As.vdomRender || As.reflect) && (As.hydrateServerSide || qf(s, n));
  } catch (I) {
    wl(I, s.$hostElement$);
  }
  return M5 = null, null;
}, g4 = () => M5, Jf = (s) => {
  const n = s.$cmpMeta$.$tagName$, a = s.$hostElement$, b = S3("postUpdate", n), g = a;
  s.$ancestorComponent$, K3(g, "componentDidRender"), s.$flags$ & 64 ? (K3(g, "componentDidUpdate"), b()) : (s.$flags$ |= 64, K3(g, "componentDidLoad"), b());
}, v4 = (s) => {
  {
    const n = yl(s), a = n.$hostElement$.isConnected;
    return a && (n.$flags$ & 18) === 2 && au(n, !1), a;
  }
}, K3 = (s, n, a) => {
  if (s && s[n])
    try {
      return s[n](a);
    } catch (b) {
      wl(b);
    }
}, m4 = (s, n) => s && s.then ? s.then(n) : n(), Zf = (s, n) => s != null && !su(s) ? n & 4 ? s === "false" ? !1 : s === "" || !!s : n & 2 ? parseFloat(s) : n & 1 ? String(s) : s : s, Qf = (s, n) => yl(s).$instanceValues$.get(n), eh = (s, n, a, b) => {
  const g = yl(s), C = s, x = g.$instanceValues$.get(n), I = g.$flags$, P = C;
  a = Zf(a, b.$members$[n][0]);
  const M = Number.isNaN(x) && Number.isNaN(a);
  if (a !== x && !M) {
    g.$instanceValues$.set(n, a);
    {
      if (b.$watchers$ && I & 128) {
        const j = b.$watchers$[n];
        j && j.map((K) => {
          try {
            P[K](a, x, n);
          } catch (Z) {
            wl(Z, C);
          }
        });
      }
      if ((I & 18) === 2) {
        if (P.componentShouldUpdate && P.componentShouldUpdate(a, x, n) === !1)
          return;
        au(g, !1);
      }
    }
  }
}, th = (s, n, a) => {
  if (n.$members$) {
    s.watchers && (n.$watchers$ = s.watchers);
    const b = Object.entries(n.$members$), g = s.prototype;
    b.map(([C, [x]]) => {
      (x & 31 || x & 32) && Object.defineProperty(g, C, {
        get() {
          return Qf(this, C);
        },
        set(I) {
          eh(this, C, I, n);
        },
        configurable: !0,
        enumerable: !0
      });
    });
    {
      const C = /* @__PURE__ */ new Map();
      g.attributeChangedCallback = function(x, I, P) {
        H2.jmp(() => {
          const M = C.get(x);
          if (this.hasOwnProperty(M))
            P = this[M], delete this[M];
          else if (g.hasOwnProperty(M) && typeof this[M] == "number" && this[M] == P)
            return;
          this[M] = P === null && typeof this[M] == "boolean" ? !1 : P;
        });
      }, s.observedAttributes = b.filter(([x, I]) => I[0] & 15).map(([x, I]) => {
        const P = I[1] || x;
        return C.set(P, x), I[0] & 512 && n.$attrsToReflect$.push([x, P]), P;
      });
    }
  }
  return s;
}, rh = async (s, n, a, b, g) => {
  if ((n.$flags$ & 32) === 0 && (g = s.constructor, n.$flags$ |= 32, customElements.whenDefined(a.$tagName$).then(() => n.$flags$ |= 128), g.style)) {
    let x = g.style;
    typeof x != "string" && (x = x[n.$modeName$ = Df(s)]);
    const I = o0(a, n.$modeName$);
    if (!jl.has(I)) {
      const P = S3("registerStyles", a.$tagName$);
      kf(I, x, !!(a.$flags$ & 1)), P();
    }
  }
  n.$ancestorComponent$, (() => au(n, !0))();
}, nh = (s) => {
}, ih = (s) => {
  if ((H2.$flags$ & 1) === 0) {
    const n = yl(s), a = n.$cmpMeta$, b = S3("connectedCallback", a.$tagName$);
    n.$flags$ & 1 ? (s0(s, n, a.$listeners$), nh(n.$lazyInstance$)) : (n.$flags$ |= 1, a.$flags$ & 12 && sh(s), a.$members$ && Object.entries(a.$members$).map(([g, [C]]) => {
      if (C & 31 && s.hasOwnProperty(g)) {
        const x = s[g];
        delete s[g], s[g] = x;
      }
    }), rh(s, n, a)), b();
  }
}, sh = (s) => {
  const n = s["s-cr"] = Lo.createComment("");
  n["s-cn"] = !0, s.insertBefore(n, s.firstChild);
}, oh = (s) => {
  if ((H2.$flags$ & 1) === 0) {
    const n = yl(s);
    n.$rmListeners$ && (n.$rmListeners$.map((a) => a()), n.$rmListeners$ = void 0);
  }
}, Rs = (s, n) => {
  const a = {
    $flags$: n[0],
    $tagName$: n[1]
  };
  a.$members$ = n[2], a.$listeners$ = n[3], a.$watchers$ = s.$watchers$, a.$attrsToReflect$ = [], !Gl && a.$flags$ & 1 && (a.$flags$ |= 8);
  const b = s.prototype.connectedCallback, g = s.prototype.disconnectedCallback;
  return Object.assign(s.prototype, {
    __registerHost() {
      ah(this, a);
    },
    connectedCallback() {
      ih(this), b && b.call(this);
    },
    disconnectedCallback() {
      oh(this), g && g.call(this);
    },
    __attachShadow() {
      Gl ? this.attachShadow({
        mode: "open",
        delegatesFocus: !!(a.$flags$ & 16)
      }) : this.shadowRoot = this;
    }
  }), s.is = a.$tagName$, th(s, a);
}, p0 = /* @__PURE__ */ new WeakMap(), yl = (s) => p0.get(s), ah = (s, n) => {
  const a = {
    $flags$: 0,
    $hostElement$: s,
    $cmpMeta$: n,
    $instanceValues$: /* @__PURE__ */ new Map()
  };
  return s0(s, a, n.$listeners$), p0.set(s, a);
}, b4 = (s, n) => n in s, wl = (s, n) => (0, console.error)(s, n);
As.isTesting;
const jl = /* @__PURE__ */ new Map(), g0 = [], C4 = [], v0 = [], lh = (s, n) => (a) => {
  s.push(a), $5 || ($5 = !0, n && H2.$flags$ & 4 ? uh(F5) : H2.raf(F5));
}, y4 = (s) => {
  for (let n = 0; n < s.length; n++)
    try {
      s[n](performance.now());
    } catch (a) {
      wl(a);
    }
  s.length = 0;
}, F5 = () => {
  y4(C4), y4(v0), ($5 = C4.length > 0) && H2.raf(F5);
}, uh = (s) => Tf().then(s), ch = /* @__PURE__ */ lh(v0, !0);
As.isDev, As.isTesting;
class fh {
  constructor() {
    this.defaultRowSize = 32;
  }
}
class hh {
  constructor() {
    this.defaultRowSize = 27;
  }
}
class dh {
  constructor() {
    this.defaultRowSize = 42;
  }
}
const m0 = "default", ph = [m0, "material", "compact", "darkMaterial", "darkCompact"];
class e5 {
  constructor(n) {
    this.customRowSize = 0, this.customRowSize = n.rowSize, this.register("default");
  }
  get theme() {
    return this.currentTheme;
  }
  get rowSize() {
    return this.customRowSize || this.currentTheme.defaultRowSize;
  }
  set rowSize(n) {
    this.customRowSize = n;
  }
  register(n) {
    switch (e5.getTheme(n)) {
      case "material":
      case "darkMaterial":
        this.currentTheme = new dh();
        break;
      case "compact":
      case "darkCompact":
        this.currentTheme = new fh();
        break;
      default:
        this.currentTheme = new hh();
        break;
    }
  }
  static getTheme(n) {
    return ph.indexOf(n) > -1 ? n : m0;
  }
}
Mf((s) => {
  let n = s.theme || s.getAttribute("theme");
  typeof n == "string" && (n = n.trim());
  const a = e5.getTheme(n);
  return a !== n && s.setAttribute("theme", a), a;
});
function gh(s, n, a, b) {
  var g = -1, C = s == null ? 0 : s.length;
  for (b && C && (a = s[++g]); ++g < C; )
    a = n(a, s[g], g, s);
  return a;
}
var vh = gh;
function mh(s) {
  return function(n, a, b) {
    for (var g = -1, C = Object(n), x = b(n), I = x.length; I--; ) {
      var P = x[s ? I : ++g];
      if (a(C[P], P, C) === !1)
        break;
    }
    return n;
  };
}
var bh = mh, Ch = bh(), yh = Ch;
function wh(s, n) {
  for (var a = -1, b = Array(s); ++a < s; )
    b[a] = n(a);
  return b;
}
var Eh = wh, Oa = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function lu(s, n, a) {
  return a = {
    path: n,
    exports: {},
    require: function(b, g) {
      return xh();
    }
  }, s(a, a.exports), a.exports;
}
function xh() {
  throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs");
}
var Sh = typeof Oa == "object" && Oa && Oa.Object === Object && Oa, b0 = Sh, Lh = typeof self == "object" && self && self.Object === Object && self, Th = b0 || Lh || Function("return this")(), ea = Th, _h = ea.Symbol, a3 = _h, C0 = Object.prototype, Ah = C0.hasOwnProperty, Rh = C0.toString, al = a3 ? a3.toStringTag : void 0;
function Oh(s) {
  var n = Ah.call(s, al), a = s[al];
  try {
    s[al] = void 0;
    var b = !0;
  } catch {
  }
  var g = Rh.call(s);
  return b && (n ? s[al] = a : delete s[al]), g;
}
var kh = Oh, Ih = Object.prototype, Nh = Ih.toString;
function Dh(s) {
  return Nh.call(s);
}
var Mh = Dh, $h = "[object Null]", Fh = "[object Undefined]", w4 = a3 ? a3.toStringTag : void 0;
function Ph(s) {
  return s == null ? s === void 0 ? Fh : $h : w4 && w4 in Object(s) ? kh(s) : Mh(s);
}
var O3 = Ph;
function Uh(s) {
  return s != null && typeof s == "object";
}
var L3 = Uh, zh = "[object Arguments]";
function Bh(s) {
  return L3(s) && O3(s) == zh;
}
var E4 = Bh, y0 = Object.prototype, Hh = y0.hasOwnProperty, Gh = y0.propertyIsEnumerable, qh = E4(function() {
  return arguments;
}()) ? E4 : function(s) {
  return L3(s) && Hh.call(s, "callee") && !Gh.call(s, "callee");
}, w0 = qh, Wh = Array.isArray, S2 = Wh;
function jh() {
  return !1;
}
var Vh = jh, P5 = lu(function(s, n) {
  var a = n && !n.nodeType && n, b = a && !0 && s && !s.nodeType && s, g = b && b.exports === a, C = g ? ea.Buffer : void 0, x = C ? C.isBuffer : void 0, I = x || Vh;
  s.exports = I;
}), Yh = 9007199254740991, Kh = /^(?:0|[1-9]\d*)$/;
function Xh(s, n) {
  var a = typeof s;
  return n = n == null ? Yh : n, !!n && (a == "number" || a != "symbol" && Kh.test(s)) && s > -1 && s % 1 == 0 && s < n;
}
var uu = Xh, Jh = 9007199254740991;
function Zh(s) {
  return typeof s == "number" && s > -1 && s % 1 == 0 && s <= Jh;
}
var cu = Zh, Qh = "[object Arguments]", ed = "[object Array]", td = "[object Boolean]", rd = "[object Date]", nd = "[object Error]", id = "[object Function]", sd = "[object Map]", od = "[object Number]", ad = "[object Object]", ld = "[object RegExp]", ud = "[object Set]", cd = "[object String]", fd = "[object WeakMap]", hd = "[object ArrayBuffer]", dd = "[object DataView]", pd = "[object Float32Array]", gd = "[object Float64Array]", vd = "[object Int8Array]", md = "[object Int16Array]", bd = "[object Int32Array]", Cd = "[object Uint8Array]", yd = "[object Uint8ClampedArray]", wd = "[object Uint16Array]", Ed = "[object Uint32Array]", hn = {};
hn[pd] = hn[gd] = hn[vd] = hn[md] = hn[bd] = hn[Cd] = hn[yd] = hn[wd] = hn[Ed] = !0;
hn[Qh] = hn[ed] = hn[hd] = hn[td] = hn[dd] = hn[rd] = hn[nd] = hn[id] = hn[sd] = hn[od] = hn[ad] = hn[ld] = hn[ud] = hn[cd] = hn[fd] = !1;
function xd(s) {
  return L3(s) && cu(s.length) && !!hn[O3(s)];
}
var Sd = xd;
function Ld(s) {
  return function(n) {
    return s(n);
  };
}
var Td = Ld, x4 = lu(function(s, n) {
  var a = n && !n.nodeType && n, b = a && !0 && s && !s.nodeType && s, g = b && b.exports === a, C = g && b0.process, x = function() {
    try {
      var I = b && b.require && b.require("util").types;
      return I || C && C.binding && C.binding("util");
    } catch {
    }
  }();
  s.exports = x;
}), S4 = x4 && x4.isTypedArray, _d = S4 ? Td(S4) : Sd, E0 = _d, Ad = Object.prototype, Rd = Ad.hasOwnProperty;
function Od(s, n) {
  var a = S2(s), b = !a && w0(s), g = !a && !b && P5(s), C = !a && !b && !g && E0(s), x = a || b || g || C, I = x ? Eh(s.length, String) : [], P = I.length;
  for (var M in s)
    (n || Rd.call(s, M)) && !(x && (M == "length" || g && (M == "offset" || M == "parent") || C && (M == "buffer" || M == "byteLength" || M == "byteOffset") || uu(M, P))) && I.push(M);
  return I;
}
var kd = Od, Id = Object.prototype;
function Nd(s) {
  var n = s && s.constructor, a = typeof n == "function" && n.prototype || Id;
  return s === a;
}
var Dd = Nd;
function Md(s, n) {
  return function(a) {
    return s(n(a));
  };
}
var $d = Md, Fd = $d(Object.keys, Object), Pd = Fd, Ud = Object.prototype, zd = Ud.hasOwnProperty;
function Bd(s) {
  if (!Dd(s))
    return Pd(s);
  var n = [];
  for (var a in Object(s))
    zd.call(s, a) && a != "constructor" && n.push(a);
  return n;
}
var x0 = Bd;
function Hd(s) {
  var n = typeof s;
  return s != null && (n == "object" || n == "function");
}
var l3 = Hd, Gd = "[object AsyncFunction]", qd = "[object Function]", Wd = "[object GeneratorFunction]", jd = "[object Proxy]";
function Vd(s) {
  if (!l3(s))
    return !1;
  var n = O3(s);
  return n == qd || n == Wd || n == Gd || n == jd;
}
var S0 = Vd;
function Yd(s) {
  return s != null && cu(s.length) && !S0(s);
}
var k3 = Yd;
function Kd(s) {
  return k3(s) ? kd(s) : x0(s);
}
var El = Kd;
function Xd(s, n) {
  return s && yh(s, n, El);
}
var Jd = Xd;
function Zd(s, n) {
  return function(a, b) {
    if (a == null)
      return a;
    if (!k3(a))
      return s(a, b);
    for (var g = a.length, C = n ? g : -1, x = Object(a); (n ? C-- : ++C < g) && b(x[C], C, x) !== !1; )
      ;
    return a;
  };
}
var Qd = Zd, e8 = Qd(Jd), t5 = e8;
function t8() {
  this.__data__ = [], this.size = 0;
}
var r8 = t8;
function n8(s, n) {
  return s === n || s !== s && n !== n;
}
var fu = n8;
function i8(s, n) {
  for (var a = s.length; a--; )
    if (fu(s[a][0], n))
      return a;
  return -1;
}
var r5 = i8, s8 = Array.prototype, o8 = s8.splice;
function a8(s) {
  var n = this.__data__, a = r5(n, s);
  if (a < 0)
    return !1;
  var b = n.length - 1;
  return a == b ? n.pop() : o8.call(n, a, 1), --this.size, !0;
}
var l8 = a8;
function u8(s) {
  var n = this.__data__, a = r5(n, s);
  return a < 0 ? void 0 : n[a][1];
}
var c8 = u8;
function f8(s) {
  return r5(this.__data__, s) > -1;
}
var h8 = f8;
function d8(s, n) {
  var a = this.__data__, b = r5(a, s);
  return b < 0 ? (++this.size, a.push([s, n])) : a[b][1] = n, this;
}
var p8 = d8;
function el(s) {
  var n = -1, a = s == null ? 0 : s.length;
  for (this.clear(); ++n < a; ) {
    var b = s[n];
    this.set(b[0], b[1]);
  }
}
el.prototype.clear = r8;
el.prototype.delete = l8;
el.prototype.get = c8;
el.prototype.has = h8;
el.prototype.set = p8;
var n5 = el;
function g8() {
  this.__data__ = new n5(), this.size = 0;
}
var v8 = g8;
function m8(s) {
  var n = this.__data__, a = n.delete(s);
  return this.size = n.size, a;
}
var b8 = m8;
function C8(s) {
  return this.__data__.get(s);
}
var y8 = C8;
function w8(s) {
  return this.__data__.has(s);
}
var E8 = w8, x8 = ea["__core-js_shared__"], T5 = x8, L4 = function() {
  var s = /[^.]+$/.exec(T5 && T5.keys && T5.keys.IE_PROTO || "");
  return s ? "Symbol(src)_1." + s : "";
}();
function S8(s) {
  return !!L4 && L4 in s;
}
var L8 = S8, T8 = Function.prototype, _8 = T8.toString;
function A8(s) {
  if (s != null) {
    try {
      return _8.call(s);
    } catch {
    }
    try {
      return s + "";
    } catch {
    }
  }
  return "";
}
var I3 = A8, R8 = /[\\^$.*+?()[\]{}|]/g, O8 = /^\[object .+?Constructor\]$/, k8 = Function.prototype, I8 = Object.prototype, N8 = k8.toString, D8 = I8.hasOwnProperty, M8 = RegExp(
  "^" + N8.call(D8).replace(R8, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
);
function $8(s) {
  if (!l3(s) || L8(s))
    return !1;
  var n = S0(s) ? M8 : O8;
  return n.test(I3(s));
}
var F8 = $8;
function P8(s, n) {
  return s == null ? void 0 : s[n];
}
var U8 = P8;
function z8(s, n) {
  var a = U8(s, n);
  return F8(a) ? a : void 0;
}
var N3 = z8, B8 = N3(ea, "Map"), hl = B8, H8 = N3(Object, "create"), dl = H8;
function G8() {
  this.__data__ = dl ? dl(null) : {}, this.size = 0;
}
var q8 = G8;
function W8(s) {
  var n = this.has(s) && delete this.__data__[s];
  return this.size -= n ? 1 : 0, n;
}
var j8 = W8, V8 = "__lodash_hash_undefined__", Y8 = Object.prototype, K8 = Y8.hasOwnProperty;
function X8(s) {
  var n = this.__data__;
  if (dl) {
    var a = n[s];
    return a === V8 ? void 0 : a;
  }
  return K8.call(n, s) ? n[s] : void 0;
}
var J8 = X8, Z8 = Object.prototype, Q8 = Z8.hasOwnProperty;
function ep(s) {
  var n = this.__data__;
  return dl ? n[s] !== void 0 : Q8.call(n, s);
}
var tp = ep, rp = "__lodash_hash_undefined__";
function np(s, n) {
  var a = this.__data__;
  return this.size += this.has(s) ? 0 : 1, a[s] = dl && n === void 0 ? rp : n, this;
}
var ip = np;
function tl(s) {
  var n = -1, a = s == null ? 0 : s.length;
  for (this.clear(); ++n < a; ) {
    var b = s[n];
    this.set(b[0], b[1]);
  }
}
tl.prototype.clear = q8;
tl.prototype.delete = j8;
tl.prototype.get = J8;
tl.prototype.has = tp;
tl.prototype.set = ip;
var T4 = tl;
function sp() {
  this.size = 0, this.__data__ = {
    hash: new T4(),
    map: new (hl || n5)(),
    string: new T4()
  };
}
var op = sp;
function ap(s) {
  var n = typeof s;
  return n == "string" || n == "number" || n == "symbol" || n == "boolean" ? s !== "__proto__" : s === null;
}
var lp = ap;
function up(s, n) {
  var a = s.__data__;
  return lp(n) ? a[typeof n == "string" ? "string" : "hash"] : a.map;
}
var i5 = up;
function cp(s) {
  var n = i5(this, s).delete(s);
  return this.size -= n ? 1 : 0, n;
}
var fp = cp;
function hp(s) {
  return i5(this, s).get(s);
}
var dp = hp;
function pp(s) {
  return i5(this, s).has(s);
}
var gp = pp;
function vp(s, n) {
  var a = i5(this, s), b = a.size;
  return a.set(s, n), this.size += a.size == b ? 0 : 1, this;
}
var mp = vp;
function rl(s) {
  var n = -1, a = s == null ? 0 : s.length;
  for (this.clear(); ++n < a; ) {
    var b = s[n];
    this.set(b[0], b[1]);
  }
}
rl.prototype.clear = op;
rl.prototype.delete = fp;
rl.prototype.get = dp;
rl.prototype.has = gp;
rl.prototype.set = mp;
var s5 = rl, bp = 200;
function Cp(s, n) {
  var a = this.__data__;
  if (a instanceof n5) {
    var b = a.__data__;
    if (!hl || b.length < bp - 1)
      return b.push([s, n]), this.size = ++a.size, this;
    a = this.__data__ = new s5(b);
  }
  return a.set(s, n), this.size = a.size, this;
}
var yp = Cp;
function nl(s) {
  var n = this.__data__ = new n5(s);
  this.size = n.size;
}
nl.prototype.clear = v8;
nl.prototype.delete = b8;
nl.prototype.get = y8;
nl.prototype.has = E8;
nl.prototype.set = yp;
var $l = nl, wp = "__lodash_hash_undefined__";
function Ep(s) {
  return this.__data__.set(s, wp), this;
}
var xp = Ep;
function Sp(s) {
  return this.__data__.has(s);
}
var Lp = Sp;
function Vl(s) {
  var n = -1, a = s == null ? 0 : s.length;
  for (this.__data__ = new s5(); ++n < a; )
    this.add(s[n]);
}
Vl.prototype.add = Vl.prototype.push = xp;
Vl.prototype.has = Lp;
var Tp = Vl;
function _p(s, n) {
  for (var a = -1, b = s == null ? 0 : s.length; ++a < b; )
    if (n(s[a], a, s))
      return !0;
  return !1;
}
var Ap = _p;
function Rp(s, n) {
  return s.has(n);
}
var Op = Rp, kp = 1, Ip = 2;
function Np(s, n, a, b, g, C) {
  var x = a & kp, I = s.length, P = n.length;
  if (I != P && !(x && P > I))
    return !1;
  var M = C.get(s), U = C.get(n);
  if (M && U)
    return M == n && U == s;
  var j = -1, K = !0, Z = a & Ip ? new Tp() : void 0;
  for (C.set(s, n), C.set(n, s); ++j < I; ) {
    var re = s[j], V = n[j];
    if (b)
      var at = x ? b(V, re, j, n, s, C) : b(re, V, j, s, n, C);
    if (at !== void 0) {
      if (at)
        continue;
      K = !1;
      break;
    }
    if (Z) {
      if (!Ap(n, function(Tt, Wt) {
        if (!Op(Z, Wt) && (re === Tt || g(re, Tt, a, b, C)))
          return Z.push(Wt);
      })) {
        K = !1;
        break;
      }
    } else if (!(re === V || g(re, V, a, b, C))) {
      K = !1;
      break;
    }
  }
  return C.delete(s), C.delete(n), K;
}
var L0 = Np, Dp = ea.Uint8Array, _4 = Dp;
function Mp(s) {
  var n = -1, a = Array(s.size);
  return s.forEach(function(b, g) {
    a[++n] = [g, b];
  }), a;
}
var $p = Mp;
function Fp(s) {
  var n = -1, a = Array(s.size);
  return s.forEach(function(b) {
    a[++n] = b;
  }), a;
}
var Pp = Fp, Up = 1, zp = 2, Bp = "[object Boolean]", Hp = "[object Date]", Gp = "[object Error]", qp = "[object Map]", Wp = "[object Number]", jp = "[object RegExp]", Vp = "[object Set]", Yp = "[object String]", Kp = "[object Symbol]", Xp = "[object ArrayBuffer]", Jp = "[object DataView]", A4 = a3 ? a3.prototype : void 0, _5 = A4 ? A4.valueOf : void 0;
function Zp(s, n, a, b, g, C, x) {
  switch (a) {
    case Jp:
      if (s.byteLength != n.byteLength || s.byteOffset != n.byteOffset)
        return !1;
      s = s.buffer, n = n.buffer;
    case Xp:
      return !(s.byteLength != n.byteLength || !C(new _4(s), new _4(n)));
    case Bp:
    case Hp:
    case Wp:
      return fu(+s, +n);
    case Gp:
      return s.name == n.name && s.message == n.message;
    case jp:
    case Yp:
      return s == n + "";
    case qp:
      var I = $p;
    case Vp:
      var P = b & Up;
      if (I || (I = Pp), s.size != n.size && !P)
        return !1;
      var M = x.get(s);
      if (M)
        return M == n;
      b |= zp, x.set(s, n);
      var U = L0(I(s), I(n), b, g, C, x);
      return x.delete(s), U;
    case Kp:
      if (_5)
        return _5.call(s) == _5.call(n);
  }
  return !1;
}
var Qp = Zp;
function eg(s, n) {
  for (var a = -1, b = n.length, g = s.length; ++a < b; )
    s[g + a] = n[a];
  return s;
}
var tg = eg;
function rg(s, n, a) {
  var b = n(s);
  return S2(s) ? b : tg(b, a(s));
}
var ng = rg;
function ig(s, n) {
  for (var a = -1, b = s == null ? 0 : s.length, g = 0, C = []; ++a < b; ) {
    var x = s[a];
    n(x, a, s) && (C[g++] = x);
  }
  return C;
}
var sg = ig;
function og() {
  return [];
}
var ag = og, lg = Object.prototype, ug = lg.propertyIsEnumerable, R4 = Object.getOwnPropertySymbols, cg = R4 ? function(s) {
  return s == null ? [] : (s = Object(s), sg(R4(s), function(n) {
    return ug.call(s, n);
  }));
} : ag, fg = cg;
function hg(s) {
  return ng(s, El, fg);
}
var O4 = hg, dg = 1, pg = Object.prototype, gg = pg.hasOwnProperty;
function vg(s, n, a, b, g, C) {
  var x = a & dg, I = O4(s), P = I.length, M = O4(n), U = M.length;
  if (P != U && !x)
    return !1;
  for (var j = P; j--; ) {
    var K = I[j];
    if (!(x ? K in n : gg.call(n, K)))
      return !1;
  }
  var Z = C.get(s), re = C.get(n);
  if (Z && re)
    return Z == n && re == s;
  var V = !0;
  C.set(s, n), C.set(n, s);
  for (var at = x; ++j < P; ) {
    K = I[j];
    var Tt = s[K], Wt = n[K];
    if (b)
      var b1 = x ? b(Wt, Tt, K, n, s, C) : b(Tt, Wt, K, s, n, C);
    if (!(b1 === void 0 ? Tt === Wt || g(Tt, Wt, a, b, C) : b1)) {
      V = !1;
      break;
    }
    at || (at = K == "constructor");
  }
  if (V && !at) {
    var R1 = s.constructor, C1 = n.constructor;
    R1 != C1 && "constructor" in s && "constructor" in n && !(typeof R1 == "function" && R1 instanceof R1 && typeof C1 == "function" && C1 instanceof C1) && (V = !1);
  }
  return C.delete(s), C.delete(n), V;
}
var mg = vg, bg = N3(ea, "DataView"), U5 = bg, Cg = N3(ea, "Promise"), z5 = Cg, yg = N3(ea, "Set"), B5 = yg, wg = N3(ea, "WeakMap"), H5 = wg, k4 = "[object Map]", Eg = "[object Object]", I4 = "[object Promise]", N4 = "[object Set]", D4 = "[object WeakMap]", M4 = "[object DataView]", xg = I3(U5), Sg = I3(hl), Lg = I3(z5), Tg = I3(B5), _g = I3(H5), y3 = O3;
(U5 && y3(new U5(new ArrayBuffer(1))) != M4 || hl && y3(new hl()) != k4 || z5 && y3(z5.resolve()) != I4 || B5 && y3(new B5()) != N4 || H5 && y3(new H5()) != D4) && (y3 = function(s) {
  var n = O3(s), a = n == Eg ? s.constructor : void 0, b = a ? I3(a) : "";
  if (b)
    switch (b) {
      case xg:
        return M4;
      case Sg:
        return k4;
      case Lg:
        return I4;
      case Tg:
        return N4;
      case _g:
        return D4;
    }
  return n;
});
var G5 = y3, Ag = 1, $4 = "[object Arguments]", F4 = "[object Array]", Nl = "[object Object]", Rg = Object.prototype, P4 = Rg.hasOwnProperty;
function Og(s, n, a, b, g, C) {
  var x = S2(s), I = S2(n), P = x ? F4 : G5(s), M = I ? F4 : G5(n);
  P = P == $4 ? Nl : P, M = M == $4 ? Nl : M;
  var U = P == Nl, j = M == Nl, K = P == M;
  if (K && P5(s)) {
    if (!P5(n))
      return !1;
    x = !0, U = !1;
  }
  if (K && !U)
    return C || (C = new $l()), x || E0(s) ? L0(s, n, a, b, g, C) : Qp(s, n, P, a, b, g, C);
  if (!(a & Ag)) {
    var Z = U && P4.call(s, "__wrapped__"), re = j && P4.call(n, "__wrapped__");
    if (Z || re) {
      var V = Z ? s.value() : s, at = re ? n.value() : n;
      return C || (C = new $l()), g(V, at, a, b, C);
    }
  }
  return K ? (C || (C = new $l()), mg(s, n, a, b, g, C)) : !1;
}
var kg = Og;
function T0(s, n, a, b, g) {
  return s === n ? !0 : s == null || n == null || !L3(s) && !L3(n) ? s !== s && n !== n : kg(s, n, a, b, T0, g);
}
var _0 = T0, Ig = 1, Ng = 2;
function Dg(s, n, a, b) {
  var g = a.length, C = g, x = !b;
  if (s == null)
    return !C;
  for (s = Object(s); g--; ) {
    var I = a[g];
    if (x && I[2] ? I[1] !== s[I[0]] : !(I[0] in s))
      return !1;
  }
  for (; ++g < C; ) {
    I = a[g];
    var P = I[0], M = s[P], U = I[1];
    if (x && I[2]) {
      if (M === void 0 && !(P in s))
        return !1;
    } else {
      var j = new $l();
      if (b)
        var K = b(M, U, P, s, n, j);
      if (!(K === void 0 ? _0(U, M, Ig | Ng, b, j) : K))
        return !1;
    }
  }
  return !0;
}
var Mg = Dg;
function $g(s) {
  return s === s && !l3(s);
}
var A0 = $g;
function Fg(s) {
  for (var n = El(s), a = n.length; a--; ) {
    var b = n[a], g = s[b];
    n[a] = [b, g, A0(g)];
  }
  return n;
}
var Pg = Fg;
function Ug(s, n) {
  return function(a) {
    return a == null ? !1 : a[s] === n && (n !== void 0 || s in Object(a));
  };
}
var R0 = Ug;
function zg(s) {
  var n = Pg(s);
  return n.length == 1 && n[0][2] ? R0(n[0][0], n[0][1]) : function(a) {
    return a === s || Mg(a, s, n);
  };
}
var Bg = zg, Hg = "[object Symbol]";
function Gg(s) {
  return typeof s == "symbol" || L3(s) && O3(s) == Hg;
}
var T3 = Gg, qg = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, Wg = /^\w*$/;
function jg(s, n) {
  if (S2(s))
    return !1;
  var a = typeof s;
  return a == "number" || a == "symbol" || a == "boolean" || s == null || T3(s) ? !0 : Wg.test(s) || !qg.test(s) || n != null && s in Object(n);
}
var hu = jg, Vg = "Expected a function";
function du(s, n) {
  if (typeof s != "function" || n != null && typeof n != "function")
    throw new TypeError(Vg);
  var a = function() {
    var b = arguments, g = n ? n.apply(this, b) : b[0], C = a.cache;
    if (C.has(g))
      return C.get(g);
    var x = s.apply(this, b);
    return a.cache = C.set(g, x) || C, x;
  };
  return a.cache = new (du.Cache || s5)(), a;
}
du.Cache = s5;
var Yg = du, Kg = 500;
function Xg(s) {
  var n = Yg(s, function(b) {
    return a.size === Kg && a.clear(), b;
  }), a = n.cache;
  return n;
}
var Jg = Xg, Zg = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, Qg = /\\(\\)?/g, ev = Jg(function(s) {
  var n = [];
  return s.charCodeAt(0) === 46 && n.push(""), s.replace(Zg, function(a, b, g, C) {
    n.push(g ? C.replace(Qg, "$1") : b || a);
  }), n;
}), tv = ev;
function rv(s, n) {
  for (var a = -1, b = s == null ? 0 : s.length, g = Array(b); ++a < b; )
    g[a] = n(s[a], a, s);
  return g;
}
var pu = rv, nv = 1 / 0, U4 = a3 ? a3.prototype : void 0, z4 = U4 ? U4.toString : void 0;
function O0(s) {
  if (typeof s == "string")
    return s;
  if (S2(s))
    return pu(s, O0) + "";
  if (T3(s))
    return z4 ? z4.call(s) : "";
  var n = s + "";
  return n == "0" && 1 / s == -nv ? "-0" : n;
}
var iv = O0;
function sv(s) {
  return s == null ? "" : iv(s);
}
var ov = sv;
function av(s, n) {
  return S2(s) ? s : hu(s, n) ? [s] : tv(ov(s));
}
var k0 = av, lv = 1 / 0;
function uv(s) {
  if (typeof s == "string" || T3(s))
    return s;
  var n = s + "";
  return n == "0" && 1 / s == -lv ? "-0" : n;
}
var o5 = uv;
function cv(s, n) {
  n = k0(n, s);
  for (var a = 0, b = n.length; s != null && a < b; )
    s = s[o5(n[a++])];
  return a && a == b ? s : void 0;
}
var I0 = cv;
function fv(s, n, a) {
  var b = s == null ? void 0 : I0(s, n);
  return b === void 0 ? a : b;
}
var hv = fv;
function dv(s, n) {
  return s != null && n in Object(s);
}
var pv = dv;
function gv(s, n, a) {
  n = k0(n, s);
  for (var b = -1, g = n.length, C = !1; ++b < g; ) {
    var x = o5(n[b]);
    if (!(C = s != null && a(s, x)))
      break;
    s = s[x];
  }
  return C || ++b != g ? C : (g = s == null ? 0 : s.length, !!g && cu(g) && uu(x, g) && (S2(s) || w0(s)));
}
var vv = gv;
function mv(s, n) {
  return s != null && vv(s, n, pv);
}
var bv = mv, Cv = 1, yv = 2;
function wv(s, n) {
  return hu(s) && A0(n) ? R0(o5(s), n) : function(a) {
    var b = hv(a, s);
    return b === void 0 && b === n ? bv(a, s) : _0(n, b, Cv | yv);
  };
}
var Ev = wv;
function xv(s) {
  return s;
}
var gu = xv;
function Sv(s) {
  return function(n) {
    return n == null ? void 0 : n[s];
  };
}
var N0 = Sv;
function Lv(s) {
  return function(n) {
    return I0(n, s);
  };
}
var Tv = Lv;
function _v(s) {
  return hu(s) ? N0(o5(s)) : Tv(s);
}
var Av = _v;
function Rv(s) {
  return typeof s == "function" ? s : s == null ? gu : typeof s == "object" ? S2(s) ? Ev(s[0], s[1]) : Bg(s) : Av(s);
}
var xl = Rv;
function Ov(s, n, a, b, g) {
  return g(s, function(C, x, I) {
    a = b ? (b = !1, C) : n(a, C, x, I);
  }), a;
}
var kv = Ov;
function Iv(s, n, a) {
  var b = S2(s) ? vh : kv, g = arguments.length < 3;
  return b(s, xl(n), a, g, t5);
}
var x2 = Iv;
function Nv(s, n) {
  for (var a = -1, b = s == null ? 0 : s.length; ++a < b && n(s[a], a, s) !== !1; )
    ;
  return s;
}
var Dv = Nv;
function Mv(s) {
  return typeof s == "function" ? s : gu;
}
var $v = Mv;
function Fv(s, n) {
  var a = S2(s) ? Dv : t5;
  return a(s, $v(n));
}
var Pv = Fv, Ji = Pv;
function Uv(s) {
  return function(n, a, b) {
    var g = Object(n);
    if (!k3(n)) {
      var C = xl(a);
      n = El(n), a = function(I) {
        return C(g[I], I, g);
      };
    }
    var x = s(n, a, b);
    return x > -1 ? g[C ? n[x] : x] : void 0;
  };
}
var zv = Uv;
function Bv(s, n, a, b) {
  for (var g = s.length, C = a + (b ? 1 : -1); b ? C-- : ++C < g; )
    if (n(s[C], C, s))
      return C;
  return -1;
}
var D0 = Bv, Hv = /\s/;
function Gv(s) {
  for (var n = s.length; n-- && Hv.test(s.charAt(n)); )
    ;
  return n;
}
var qv = Gv, Wv = /^\s+/;
function jv(s) {
  return s && s.slice(0, qv(s) + 1).replace(Wv, "");
}
var Vv = jv, B4 = 0 / 0, Yv = /^[-+]0x[0-9a-f]+$/i, Kv = /^0b[01]+$/i, Xv = /^0o[0-7]+$/i, Jv = parseInt;
function Zv(s) {
  if (typeof s == "number")
    return s;
  if (T3(s))
    return B4;
  if (l3(s)) {
    var n = typeof s.valueOf == "function" ? s.valueOf() : s;
    s = l3(n) ? n + "" : n;
  }
  if (typeof s != "string")
    return s === 0 ? s : +s;
  s = Vv(s);
  var a = Kv.test(s);
  return a || Xv.test(s) ? Jv(s.slice(2), a ? 2 : 8) : Yv.test(s) ? B4 : +s;
}
var q5 = Zv, H4 = 1 / 0, Qv = 17976931348623157e292;
function em(s) {
  if (!s)
    return s === 0 ? s : 0;
  if (s = q5(s), s === H4 || s === -H4) {
    var n = s < 0 ? -1 : 1;
    return n * Qv;
  }
  return s === s ? s : 0;
}
var Fl = em;
function tm(s) {
  var n = Fl(s), a = n % 1;
  return n === n ? a ? n - a : n : 0;
}
var _3 = tm, rm = Math.max;
function nm(s, n, a) {
  var b = s == null ? 0 : s.length;
  if (!b)
    return -1;
  var g = a == null ? 0 : _3(a);
  return g < 0 && (g = rm(b + g, 0)), D0(s, xl(n), g);
}
var vu = nm, im = zv(vu), G4 = im;
const sm = (s, n, a) => {
  const b = s.get(n);
  b ? b.includes(a) || b.push(a) : s.set(n, [a]);
}, om = (s, n) => {
  let a;
  return (...b) => {
    a && clearTimeout(a), a = setTimeout(() => {
      a = 0, s(...b);
    }, n);
  };
}, am = (s) => !("isConnected" in s) || s.isConnected, q4 = om((s) => {
  for (let n of s.keys())
    s.set(n, s.get(n).filter(am));
}, 2e3), lm = ({ on: s }) => {
  const n = /* @__PURE__ */ new Map();
  typeof g4 == "function" && (s("dispose", () => {
    n.clear();
  }), s("get", (a) => {
    const b = g4();
    b && sm(n, a, b);
  }), s("set", (a) => {
    const b = n.get(a);
    b && n.set(a, b.filter(v4)), q4(n);
  }), s("reset", () => {
    n.forEach((a) => a.forEach(v4)), q4(n);
  }));
}, um = (s, n = (a, b) => a !== b) => {
  let a = new Map(Object.entries(s != null ? s : {}));
  const b = {
    dispose: [],
    get: [],
    set: [],
    reset: []
  }, g = () => {
    a = new Map(Object.entries(s != null ? s : {})), b.reset.forEach((K) => K());
  }, C = () => {
    b.dispose.forEach((K) => K()), g();
  }, x = (K) => (b.get.forEach((Z) => Z(K)), a.get(K)), I = (K, Z) => {
    const re = a.get(K);
    n(Z, re, K) && (a.set(K, Z), b.set.forEach((V) => V(K, Z, re)));
  }, P = typeof Proxy > "u" ? {} : new Proxy(s, {
    get(K, Z) {
      return x(Z);
    },
    ownKeys(K) {
      return Array.from(a.keys());
    },
    getOwnPropertyDescriptor() {
      return {
        enumerable: !0,
        configurable: !0
      };
    },
    has(K, Z) {
      return a.has(Z);
    },
    set(K, Z, re) {
      return I(Z, re), !0;
    }
  }), M = (K, Z) => (b[K].push(Z), () => {
    cm(b[K], Z);
  });
  return {
    state: P,
    get: x,
    set: I,
    on: M,
    onChange: (K, Z) => {
      const re = M("set", (at, Tt) => {
        at === K && Z(Tt);
      }), V = M("reset", () => Z(s[K]));
      return () => {
        re(), V();
      };
    },
    use: (...K) => K.forEach((Z) => {
      Z.set && M("set", Z.set), Z.get && M("get", Z.get), Z.reset && M("reset", Z.reset);
    }),
    dispose: C,
    reset: g
  };
}, cm = (s, n) => {
  const a = s.indexOf(n);
  a >= 0 && (s[a] = s[s.length - 1], s.length--);
}, a5 = (s, n) => {
  const a = um(s, n);
  return lm(a), a;
};
var fm = Math.ceil, hm = Math.max;
function dm(s, n, a, b) {
  for (var g = -1, C = hm(fm((n - s) / (a || 1)), 0), x = Array(C); C--; )
    x[b ? C : ++g] = s, s += a;
  return x;
}
var pm = dm;
function gm(s, n, a) {
  if (!l3(a))
    return !1;
  var b = typeof n;
  return (b == "number" ? k3(a) && uu(n, a.length) : b == "string" && n in a) ? fu(a[n], s) : !1;
}
var mu = gm;
function vm(s) {
  return function(n, a, b) {
    return b && typeof b != "number" && mu(n, a, b) && (a = b = void 0), n = Fl(n), a === void 0 ? (a = n, n = 0) : a = Fl(a), b = b === void 0 ? n < a ? 1 : -1 : Fl(b), pm(n, a, b, s);
  };
}
var mm = vm, bm = mm(), Cm = bm;
const ym = (s) => ({
  set(n, a) {
    switch (n) {
      case "trimmed":
        const b = s.get("proxyItems"), g = wm(a), C = b.reduce((x, I) => (g[I] || x.push(I), x), []);
        s.set("items", C);
        break;
    }
  }
});
function wm(s) {
  const n = {};
  for (let a in s)
    for (let b in s[a])
      n[b] = n[b] || s[a][b];
  return n;
}
function pi(s, n) {
  for (let a in n)
    s.set(a, n[a]);
}
const Em = (s) => ({
  set(n, a) {
    if (!xm(n))
      return;
    const b = s.get("items").reduce((C, x) => (C[x] = !0, C), {}), g = a.reduce((C, x) => (b[x] && C.push(x), C), []);
    s.set("items", g);
  }
});
function xm(s) {
  return s === "proxyItems";
}
class Yl {
  constructor(n) {
    const a = this.dataStore = a5({
      items: [],
      proxyItems: [],
      source: [],
      groupingDepth: 0,
      groups: {},
      type: n,
      trimmed: {}
    });
    a.use(Em(a)), a.use(ym(a));
  }
  get store() {
    return this.dataStore;
  }
  updateData(n, a, b = !1) {
    b || this.store.set("trimmed", {}), this.store.set("items", []);
    const g = Cm(0, (n == null ? void 0 : n.length) || 0);
    pi(this.store, {
      source: n,
      proxyItems: [...g]
    }), this.store.set("items", g), a && pi(this.store, {
      groupingDepth: a.depth,
      groups: a.groups
    });
  }
  addTrimmed(n) {
    let a = this.store.get("trimmed");
    a = Object.assign(Object.assign({}, a), n), pi(this.store, { trimmed: a });
  }
  setData(n) {
    const a = Object.assign({}, n);
    pi(this.store, a);
  }
  refresh() {
    const n = this.store.get("source");
    this.store.set("source", [...n]);
  }
}
function Sm(s, n) {
  return s.get("items")[n];
}
function l5(s) {
  const n = s.get("source");
  return s.get("items").map((a) => n[a]);
}
function Qo(s, n) {
  const a = s.get("items");
  return s.get("source")[a[n]];
}
function Kl(s, n) {
  const a = s.get("items"), b = s.get("source");
  for (let g in n) {
    const C = a[g];
    b[C] = n[g];
  }
  s.set("source", [...b]);
}
function M0(s, n) {
  s.set("items", n);
}
function Lm(s, n) {
  const a = s.get("items"), b = s.get("source"), g = vu(b, { prop: n });
  return a.indexOf(g);
}
const u3 = ["rowPinStart", "rgRow", "rowPinEnd"], is = ["colPinStart", "rgCol", "colPinEnd"];
function Tm(s) {
  return u3.indexOf(s) > -1;
}
function _m(s, n) {
  var a = -1, b = k3(s) ? Array(s.length) : [];
  return t5(s, function(g, C, x) {
    b[++a] = n(g, C, x);
  }), b;
}
var Am = _m;
function Rm(s, n) {
  var a = S2(s) ? pu : Am;
  return a(s, xl(n));
}
var Om = Rm;
class D3 {
  constructor(n) {
    this.revogrid = n, this.subscriptions = {};
  }
  addEventListener(n, a) {
    this.revogrid.addEventListener(n, a), this.subscriptions[n] = a;
  }
  removeEventListener(n) {
    this.revogrid.removeEventListener(n, this.subscriptions[n]), delete this.subscriptions[n];
  }
  emit(n, a) {
    const b = new CustomEvent(n, { detail: a, cancelable: !0 });
    return this.revogrid.dispatchEvent(b), b;
  }
  clearSubscriptions() {
    for (let n in this.subscriptions)
      this.removeEventListener(n);
  }
  destroy() {
    this.clearSubscriptions();
  }
}
class A5 extends D3 {
  static gatherGroup(n, a, b, g = 0) {
    const C = Object.assign(Object.assign({}, a), { level: g, ids: [] });
    for (let x in b.columns) {
      const I = x, P = n.columns[I], M = b.columns[I];
      S2(P) && S2(M) && (P.push(...M), M.length && n.columnGrouping[I].push(Object.assign(Object.assign({}, C), { ids: Om(M, "prop") })));
    }
    for (let x in b.columnGrouping) {
      const I = x, P = b.columnGrouping[I];
      n.columnGrouping[I].push(...P);
    }
    return n.maxLevel = Math.max(n.maxLevel, b.maxLevel), n;
  }
  static isColGrouping(n) {
    return !!n.children;
  }
}
class to {
  constructor() {
    this.sorting = null, this.dataSources = x2(is, (n, a) => (n[a] = new Yl(a), n), {});
  }
  get order() {
    return x2(this.sorting, (n, a, b) => (n[b] = a.order, n), {});
  }
  get stores() {
    return this.dataSources;
  }
  column(n, a) {
    return this.getColumn(n, a || "rgCol");
  }
  getColumn(n, a) {
    return Qo(this.dataSources[a].store, n);
  }
  getRawColumns() {
    return x2(this.dataSources, (n, a, b) => (n[b] = a.store.get("source"), n), {
      rgCol: [],
      colPinStart: [],
      colPinEnd: []
    });
  }
  getColumns(n = "all") {
    return n !== "all" ? this.dataSources[n].store.get("source") : is.reduce((a, b) => (a.push(...this.dataSources[b].store.get("source")), a), []);
  }
  getColumnIndexByProp(n, a) {
    return Lm(this.dataSources[a].store, n);
  }
  getColumnByProp(n, a) {
    const b = this.dataSources[a].store.get("source");
    return G4(b, { prop: n });
  }
  refreshByType(n) {
    this.dataSources[n].refresh();
  }
  setColumns(n) {
    return Ji(is, (a) => {
      this.dataSources[a].updateData(n.columns[a], {
        depth: n.maxLevel,
        groups: x2(n.columnGrouping[a], (b, g) => (b[g.level] || (b[g.level] = []), b[g.level].push(g), b), {})
      });
    }), this.sorting = n.sort, n;
  }
  updateColumns(n) {
    const a = n.reduce((g, C) => {
      const x = to.getColumnType(C);
      return g[x] || (g[x] = {}), g[x][C.prop] = C, g;
    }, {}), b = {};
    Ji(a, (g, C) => {
      const x = this.dataSources[C].store.get("source");
      b[C] = x.reduce((I, P, M) => {
        const U = g[P.prop];
        return U && (I[M] = U), I;
      }, {});
    }), Ji(b, (g, C) => Kl(this.dataSources[C].store, g));
  }
  updateColumn(n, a) {
    const b = to.getColumnType(n);
    Kl(this.dataSources[b].store, { [a]: n });
  }
  updateColumnSorting(n, a, b, g) {
    return g || this.clearSorting(), n.order = b, this.sorting[n.prop] = n, this.updateColumn(n, a), n;
  }
  clearSorting() {
    const n = x2(this.sorting, (a, b) => {
      const g = to.getColumnType(b);
      return a[g] = !0, a;
    }, {});
    Ji(n, (a, b) => {
      const g = this.dataSources[b].store.get("source");
      Ji(g, (C) => C.order = void 0), this.dataSources[b].setData({ source: [...g] });
    }), this.sorting = {};
  }
  static getSizes(n) {
    return x2(n, (a, b, g) => (b.size && (a[g] = b.size), a), {});
  }
  static getColumnByProp(n, a) {
    return G4(n, (b) => A5.isColGrouping(b) ? to.getColumnByProp(b.children, a) : b.prop === a);
  }
  static getColumns(n, a = 0, b) {
    return x2(n, (g, C) => {
      if (A5.isColGrouping(C))
        return A5.gatherGroup(g, C, to.getColumns(C.children, a + 1, b), a);
      const x = Object.assign(Object.assign({}, C.columnType && b && b[C.columnType]), C);
      return x.pin ? g.columns[x.pin].push(x) : g.columns.rgCol.push(x), x.order && (g.sort[x.prop] = x), x.beforeSetup && x.beforeSetup(x), g;
    }, {
      columns: {
        rgCol: [],
        colPinStart: [],
        colPinEnd: []
      },
      columnGrouping: {
        rgCol: [],
        colPinStart: [],
        colPinEnd: []
      },
      maxLevel: a,
      sort: {}
    });
  }
  static getColumnType(n) {
    return n.pin ? n.pin : "rgCol";
  }
}
class km {
  constructor(n) {
    this.dimensionProvider = n, this.stores = x2(u3, (a, b) => (a[b] = new Yl(b), a), {});
  }
  setData(n, a = "rgRow", b, g = !1) {
    return this.stores[a].updateData([...n], b, g), this.dimensionProvider.setData(n, a, a !== "rgRow"), n;
  }
  getModel(n, a = "rgRow") {
    const b = this.stores[a].store;
    return Qo(b, n);
  }
  setCellData({ type: n, rowIndex: a, prop: b, val: g }) {
    const C = this.getModel(a, n);
    C[b] = g, Kl(this.stores[n].store, { [a]: C });
  }
  refresh(n = "all") {
    Tm(n) && this.refreshItems(n), u3.forEach((a) => this.refreshItems(a));
  }
  refreshItems(n = "rgRow") {
    const a = this.stores[n].store.get("items");
    this.stores[n].setData({ items: [...a] });
  }
  setGrouping({ depth: n }, a = "rgRow") {
    this.stores[a].setData({ groupingDepth: n });
  }
  setTrimmed(n, a = "rgRow") {
    const b = this.stores[a];
    b.addTrimmed(n), a === "rgRow" && this.dimensionProvider.setData(l5(b.store), a);
  }
}
var Im = 4294967295, Nm = Im - 1, Dm = Math.floor, Mm = Math.min;
function $m(s, n, a, b) {
  var g = 0, C = s == null ? 0 : s.length;
  if (C === 0)
    return 0;
  n = a(n);
  for (var x = n !== n, I = n === null, P = T3(n), M = n === void 0; g < C; ) {
    var U = Dm((g + C) / 2), j = a(s[U]), K = j !== void 0, Z = j === null, re = j === j, V = T3(j);
    if (x)
      var at = b || re;
    else
      M ? at = re && (b || K) : I ? at = re && K && (b || !Z) : P ? at = re && K && !Z && (b || !V) : Z || V ? at = !1 : at = b ? j <= n : j < n;
    at ? g = U + 1 : C = U;
  }
  return Mm(C, Nm);
}
var Fm = $m, Pm = 4294967295, Um = Pm >>> 1;
function zm(s, n, a) {
  var b = 0, g = s == null ? b : s.length;
  if (typeof n == "number" && n === n && g <= Um) {
    for (; b < g; ) {
      var C = b + g >>> 1, x = s[C];
      x !== null && !T3(x) && (a ? x <= n : x < n) ? b = C + 1 : g = C;
    }
    return g;
  }
  return Fm(s, n, gu, a);
}
var Bm = zm;
function Hm(s, n) {
  return Bm(s, n);
}
var bu = Hm;
function Gm(s, n) {
  return s < n;
}
function qm(s, n, a = Gm) {
  const b = [];
  let g = 0, C = 0, x = 0;
  for (; x < s.length + n.length; ) {
    let I = g >= s.length, P = C >= n.length;
    !I && (P || a(s[g], n[C])) ? (b[x] = s[g], g++) : (b[x] = n[C], C++), x++;
  }
  return b;
}
function $0(s) {
  const n = s.createElement("div"), a = n.style;
  a.visibility = "hidden", a.overflow = "scroll", a.msOverflowStyle = "scrollbar", s.body.appendChild(n);
  const b = s.createElement("div");
  n.appendChild(b);
  const g = n.offsetWidth - b.offsetWidth;
  return n.parentNode.removeChild(n), g;
}
function W4(s, n, a) {
  return (a[1] - a[0]) * (s - n[0]) / (n[1] - n[0]) + a[0];
}
async function pl(s = 0) {
  await new Promise((n) => {
    setTimeout(() => n(), s);
  });
}
function Wm(s, n) {
  let a = [];
  const b = {}, g = {};
  let C = 0;
  const x = Object.assign(Object.assign({}, s.sizes), n);
  let I = [];
  Ji(n, (M, U) => {
    s.sizes[U] ? C += M - s.sizes[U] : (C += M - (s.realSize ? s.originItemSize : 0), I.splice(bu(I, parseInt(U, 10)), 0, parseInt(U, 10)));
  });
  const P = qm(s.indexes, I);
  return x2(P, (M, U, j) => {
    const K = {
      itemIndex: U,
      start: 0,
      end: 0
    };
    return M ? K.start = (U - M.itemIndex - 1) * s.originItemSize + M.end : K.start = U * s.originItemSize, K.end = K.start + x[U], a.push(K.start), g[U] = b[j] = K, K;
  }, void 0), {
    indexes: P,
    positionIndexes: [...a],
    positionIndexToItem: Object.assign({}, b),
    indexToItem: g,
    realSize: s.realSize + C,
    sizes: x
  };
}
function X3({ indexes: s, positionIndexes: n, originItemSize: a, positionIndexToItem: b }, g) {
  const C = {
    itemIndex: 0,
    start: 0,
    end: 0
  }, x = s.length ? bu(n, g) : 0;
  if (!x)
    return C.itemIndex = Math.floor(g / a), C.start = C.itemIndex * a, C.end = C.start + a, C;
  const I = b[x - 1];
  if (I.end > g)
    return I;
  const P = g - I.end, M = Math.floor(P / a);
  return C.itemIndex = I.itemIndex + 1 + M, C.start = I.end + M * a, C.end = C.start + a, C;
}
function x3(s, n) {
  let a = {
    itemIndex: n,
    start: 0,
    end: 0
  };
  if (s.indexToItem[n])
    return s.indexToItem[n];
  const b = s.indexes.length ? bu(s.indexes, n) : 0;
  if (!b)
    return a.start = a.itemIndex * s.originItemSize, a.end = a.start + s.originItemSize, a;
  const g = s.indexToItem[s.indexes[b - 1]];
  return a.start = g.end + (n - g.itemIndex - 1) * s.originItemSize, a.end = a.start + s.originItemSize, a;
}
function F0() {
  return {
    indexes: [],
    sizes: {},
    positionIndexToItem: {},
    indexToItem: {},
    positionIndexes: []
  };
}
function j4() {
  return Object.assign(Object.assign({}, F0()), {
    realSize: 0,
    originItemSize: 0,
    frameOffset: 0
  });
}
class jm {
  constructor() {
    this.store = a5(j4());
  }
  getCurrentState() {
    const n = j4(), a = Object.keys(n);
    return x2(a, (b, g) => {
      const C = this.store.get(g);
      return b[g] = C, b;
    }, n);
  }
  setRealSize(n) {
    let a = 0;
    for (let b = 0; b < n; b++)
      a += this.store.get("sizes")[b] || this.store.get("originItemSize");
    pi(this.store, { realSize: a });
  }
  setStore(n) {
    pi(this.store, n);
  }
  drop() {
    pi(this.store, F0());
  }
  setDimensionSize(n) {
    const a = Wm(this.getCurrentState(), n);
    return pi(this.store, a), a;
  }
}
class Vm {
  constructor(n) {
    this.viewports = n, this.stores = x2([...u3, ...is], (a, b) => (a[b] = new jm(), a), {});
  }
  setDimensionSize(n, a) {
    this.stores[n].setDimensionSize(a), this.viewports.stores[n].setViewPortDimension(a);
  }
  setRealSize(n, a) {
    this.viewports.stores[a].setViewport({ realCount: n }), this.stores[a].setRealSize(n);
  }
  setData(n, a, b = !1) {
    this.setRealSize(n.length, a), b && this.setNoVirtual(a), this.setViewPortCoordinate({
      coordinate: this.viewports.stores[a].store.get("lastCoordinate"),
      type: a
    });
  }
  setNoVirtual(n) {
    const a = this.stores[n].getCurrentState();
    this.viewports.stores[n].setViewport({ virtualSize: a.realSize });
  }
  drop() {
    for (let n of is)
      this.stores[n].drop();
  }
  setColumns(n, a, b = !1) {
    this.stores[n].setDimensionSize(a), b && this.setNoVirtual(n), this.setViewPortCoordinate({
      coordinate: this.viewports.stores[n].store.get("lastCoordinate"),
      type: n
    });
  }
  setViewPortCoordinate({ coordinate: n, type: a }) {
    const b = this.stores[a].getCurrentState();
    this.viewports.stores[a].setViewPortCoordinate(n, b);
  }
  getViewPortPos(n) {
    const a = this.stores[n.dimension].getCurrentState();
    return x3(a, n.coordinate).start;
  }
  setSettings(n, a) {
    let b = [];
    switch (a) {
      case "rgCol":
        b = is;
        break;
      case "rgRow":
        b = u3;
        break;
    }
    for (let g of b)
      this.stores[g].setStore(n);
  }
}
function Ym(s, n, a, b, g) {
  const C = X3(g, s), x = Cu(n);
  let I;
  if (x) {
    let P = C.itemIndex - (x.itemIndex || 0);
    if (P) {
      const M = Km(Math.abs(P), Object.assign(Object.assign({ positiveDirection: P > -1 }, g), n));
      if (M && (I = M), I) {
        const U = U0(C, a, b, I, g);
        U.length && P0(I.items, U, I);
      }
    }
  }
  if (!I) {
    const P = z0({
      start: C.start,
      startIndex: C.itemIndex,
      origSize: g.originItemSize,
      maxSize: b,
      maxCount: a,
      sizes: g.sizes
    });
    I = {
      items: P,
      start: 0,
      end: P.length - 1
    };
  }
  return I;
}
function P0(s, n, a) {
  s.splice(a.end + 1, 0, ...n), a.start >= a.end && !(a.start === a.end && a.start === 0) && (a.start += n.length), a.end += n.length;
}
function U0(s, n, a, b, g) {
  const C = yu(b);
  return z0({
    sizes: g.sizes,
    start: C.end,
    startIndex: C.itemIndex + 1,
    origSize: g.originItemSize,
    maxSize: a - (C.end - s.start),
    maxCount: n
  });
}
function z0(s, n = 0) {
  const a = [];
  let b = s.startIndex, g = n;
  for (; g <= s.maxSize && b < s.maxCount; ) {
    const C = W5(b, s.sizes, s.origSize);
    a.push({
      start: s.start + g,
      end: s.start + g + C,
      itemIndex: b,
      size: C
    }), g += C, b++;
  }
  return a;
}
function Km(s, n) {
  const a = [...n.items], b = a.length;
  let g = {
    start: n.start,
    end: n.end
  };
  if (s > b)
    return null;
  if (n.positiveDirection) {
    let x = yu(n), I = g.start;
    const P = I + s;
    for (; I < P; I++) {
      const M = x.itemIndex + 1, U = W5(M, n.sizes, n.originItemSize);
      if (x.end + U > n.realSize)
        break;
      let j = I % b;
      if (!a[j])
        throw new Error("incorrect index");
      a[j] = x = {
        start: x.end,
        end: x.end + U,
        itemIndex: M,
        size: U
      }, g.start++, g.end = j;
    }
  } else {
    let x = Cu(n);
    const I = g.end;
    for (let P = 0; P < s; P++) {
      const M = x.itemIndex - 1, U = W5(M, n.sizes, n.originItemSize);
      let j = I - P;
      if (j = (j < 0 ? b + j : j) % b, !a[j])
        throw new Error("incorrect index");
      a[j] = x = {
        start: x.start - U,
        end: x.start,
        itemIndex: M,
        size: U
      }, g.start = j, g.end--;
    }
  }
  const C = {
    start: (g.start < 0 ? b + g.start : g.start) % b,
    end: (g.end < 0 ? b + g.end : g.end) % b
  };
  return Object.assign({ items: a }, C);
}
function W5(s, n, a = 0) {
  return n && n[s] ? n[s] : a;
}
function Xm(s, n) {
  return n && s >= n.start && s <= n.end;
}
function Cu(s) {
  return s.items[s.start];
}
function yu(s) {
  return s.items[s.end];
}
function Jm() {
  return {
    items: [],
    start: 0,
    end: 0,
    virtualSize: 0,
    realCount: 0,
    lastCoordinate: 0
  };
}
class B0 {
  constructor() {
    this.store = a5(Jm()), this.store.onChange("realCount", () => this.clear());
  }
  setViewPortCoordinate(n, a) {
    let b = this.store.get("virtualSize");
    if (!b)
      return;
    const g = a.frameOffset, C = g * 2 * a.originItemSize;
    b += C;
    let x = b;
    a.realSize > b && (x = a.realSize - b);
    let I = {
      lastCoordinate: n
    }, P = n;
    P -= g * a.originItemSize, P = P < 0 ? 0 : P < x ? P : x;
    const M = Cu(this.getItems()), U = yu(this.getItems());
    if (!Xm(P, M))
      I = Object.assign(Object.assign({}, I), Ym(P, this.getItems(), this.store.get("realCount"), b, a)), pi(this.store, Object.assign({}, I));
    else if (M && this.store.get("virtualSize") + P > (U == null ? void 0 : U.end)) {
      const j = U0(M, this.store.get("realCount"), b + P - M.start, this.getItems(), a);
      if (j.length) {
        const K = [...this.store.get("items")], Z = {
          start: this.store.get("start"),
          end: this.store.get("end")
        };
        P0(K, j, Z), I = Object.assign(Object.assign(Object.assign({}, I), { items: [...K] }), Z), pi(this.store, Object.assign({}, I));
      }
    }
  }
  setViewPortDimension(n) {
    const a = this.store.get("items"), b = a.length;
    if (!b)
      return;
    let g = 0, C = 0, x = this.store.get("start");
    for (; C < b; ) {
      const I = a[x];
      g && (I.start += g, I.end += g);
      const P = n[I.itemIndex];
      if (P) {
        const M = P - I.size;
        g += M, I.size = P, I.end = I.start + P;
      }
      x++, C++, x === b && (x = 0);
    }
    pi(this.store, { items: [...a] });
  }
  getItems() {
    return {
      items: this.store.get("items"),
      start: this.store.get("start"),
      end: this.store.get("end")
    };
  }
  setViewport(n) {
    pi(this.store, n);
  }
  clear() {
    this.store.set("items", []);
  }
}
class Zm {
  constructor() {
    this.stores = x2([...u3, ...is], (n, a) => (n[a] = new B0(), n), {});
  }
  setViewport(n, a) {
    this.stores[n].setViewport(a);
  }
}
const Qm = 7;
var Xl;
(function(s) {
  s.headerClickAutosize = "headerClickAutoSize", s.autoSizeOnTextOverlap = "autoSizeOnTextOverlap", s.autoSizeAll = "autoSizeAll";
})(Xl || (Xl = {}));
class eb extends D3 {
  constructor(n, a, b) {
    super(n), this.providers = a, this.config = b, this.autoSizeColumns = null, this.dataResolve = null, this.dataReject = null, this.letterBlockSize = (b == null ? void 0 : b.letterBlockSize) || Qm, b != null && b.preciseSize && (this.precsizeCalculationArea = this.initiatePresizeElement(), n.appendChild(this.precsizeCalculationArea));
    const g = ({ detail: { source: M } }) => {
      this.setSource(M);
    }, C = ({ detail: M }) => {
      this.afteredit(M);
    }, x = ({ detail: M }) => {
      this.afterEditAll(M);
    }, I = ({ detail: { columns: M } }) => {
      this.columnSet(M);
    }, P = ({ detail: M }) => {
      const U = to.getColumnType(M), j = this.getColumnSize(M.index, U);
      j && this.providers.dimensionProvider.setDimensionSize(U, {
        [M.index]: j
      });
    };
    switch (this.addEventListener("beforecolumnsset", I), b == null ? void 0 : b.mode) {
      case Xl.autoSizeOnTextOverlap:
        this.addEventListener("aftersourceset", g), this.addEventListener("afteredit", C);
        break;
      case Xl.autoSizeAll:
        this.addEventListener("aftersourceset", g), this.addEventListener("afteredit", x);
        break;
      default:
        this.addEventListener("headerdblClick", P);
        break;
    }
  }
  async setSource(n) {
    let a = this.autoSizeColumns;
    if (this.dataReject && (this.dataReject(), this.clearPromise()), !a) {
      const b = new Promise((g, C) => {
        this.dataResolve = g, this.dataReject = C;
      });
      try {
        a = await b;
      } catch {
        return;
      }
    }
    Ji(a, (b, g) => {
      const C = {};
      Ji(a[g], (x) => {
        x.size = C[x.index] = n.reduce((I, P) => Math.max(I, this.getLength(P[x.prop])), 0);
      }), this.providers.dimensionProvider.setDimensionSize(g, C);
    });
  }
  getLength(n) {
    var a;
    if (!n)
      return 0;
    try {
      const g = n.toString();
      return !((a = this.config) === null || a === void 0) && a.preciseSize ? (this.precsizeCalculationArea.innerText = g, this.precsizeCalculationArea.scrollWidth + 15 * 2) : g.length * this.letterBlockSize + 15 * 2;
    } catch {
      return 0;
    }
  }
  afteredit(n) {
    let a;
    this.isRangeEdit(n) ? a = n.data : a = { 0: { [n.prop]: n.val } }, Ji(this.autoSizeColumns, (b, g) => {
      const C = {};
      Ji(b, (x) => {
        const I = x2(a, (P, M) => typeof M[x.prop] > "u" ? P : Math.max(P || 0, this.getLength(M[x.prop])), void 0);
        I && x.size < I && (x.size = C[x.index] = I);
      }), this.providers.dimensionProvider.setDimensionSize(g, C);
    });
  }
  afterEditAll(n) {
    const a = {};
    this.isRangeEdit(n) ? Ji(n.data, (b) => Ji(b, (g, C) => a[C] = !0)) : a[n.prop] = !0, Ji(this.autoSizeColumns, (b, g) => {
      const C = {};
      Ji(b, (x) => {
        if (a[x.prop]) {
          const I = this.getColumnSize(x.index, g);
          I && (C[x.index] = I);
        }
      }), this.providers.dimensionProvider.setDimensionSize(g, C);
    });
  }
  getColumnSize(n, a) {
    const b = this.autoSizeColumns[a][n];
    return b ? x2(this.providers.dataProvider.stores, (g, C) => {
      const x = x2(C.store.get("items"), (I, P, M) => {
        const U = Qo(C.store, M);
        return Math.max(I || 0, this.getLength(U[b.prop]));
      }, 0);
      return Math.max(g, x);
    }, b.size || 0) : 0;
  }
  columnSet(n) {
    var a;
    for (let b of is) {
      const g = b, C = n[g];
      for (let x in C)
        (C[x].autoSize || ((a = this.config) === null || a === void 0 ? void 0 : a.allColumns)) && (this.autoSizeColumns || (this.autoSizeColumns = {}), this.autoSizeColumns[g] || (this.autoSizeColumns[g] = {}), this.autoSizeColumns[g][x] = Object.assign(Object.assign({}, C[x]), { index: parseInt(x, 10) }));
    }
    this.dataResolve && (this.dataResolve(this.autoSizeColumns), this.clearPromise());
  }
  clearPromise() {
    this.dataResolve = null, this.dataReject = null;
  }
  isRangeEdit(n) {
    return !!n.data;
  }
  initiatePresizeElement() {
    const n = {
      position: "absolute",
      fontSize: "14px",
      height: "0",
      width: "0",
      whiteSpace: "nowrap",
      top: "0",
      overflowX: "scroll"
    }, a = document.createElement("div");
    for (let b in n)
      a.style[b] = n[b];
    return a.classList.add("revo-test-container"), a;
  }
  destroy() {
    var n;
    super.destroy(), (n = this.precsizeCalculationArea) === null || n === void 0 || n.remove();
  }
}
const j5 = "rv-filter", tb = "active", ll = "hasFilter", rb = ({ column: s }) => Ot(
  "span",
  null,
  Ot(
    "button",
    { class: {
      [j5]: !0,
      [tb]: s && !!s[ll]
    } },
    Ot(
      "svg",
      { class: "filter-img", viewBox: "0 0 64 64" },
      Ot(
        "g",
        { stroke: "none", "stroke-width": "1", fill: "none", "fill-rule": "evenodd" },
        Ot("path", { d: "M43,48 L43,56 L21,56 L21,48 L43,48 Z M53,28 L53,36 L12,36 L12,28 L53,28 Z M64,8 L64,16 L0,16 L0,8 L64,8 Z", fill: "currentColor" })
      )
    )
  )
);
function H0(s) {
  return s.classList.contains(j5) ? !0 : s == null ? void 0 : s.closest(`.${j5}`);
}
const Q3 = (s, n) => typeof s > "u" || s === null && !n ? !0 : (typeof s != "string" && (s = JSON.stringify(s)), s.toLocaleLowerCase() === n), V5 = (s, n) => !Q3(s, n);
V5.extra = "input";
Q3.extra = "input";
const wu = function(s, n) {
  let a;
  return typeof s == "number" ? (a = parseFloat(n == null ? void 0 : n.toString()), s > a) : !1;
};
wu.extra = "input";
const G0 = function(s, n) {
  return Q3(s, n) || wu(s, n);
};
G0.extra = "input";
const Eu = function(s, n) {
  let a;
  return typeof s == "number" ? (a = parseFloat(n == null ? void 0 : n.toString()), s < a) : !1;
};
Eu.extra = "input";
const q0 = function(s, n) {
  return Q3(s, n) || Eu(s, n);
};
q0.extra = "input";
const W0 = (s) => !(s === "" || s === null || s === void 0), nb = (s) => !W0(s), j0 = (s, n) => s ? n ? (typeof s != "string" && (s = JSON.stringify(s)), typeof n != "string" && (n = JSON.stringify(n)), s.toLocaleLowerCase().indexOf(n.toLocaleLowerCase()) === 0) : !0 : !1;
j0.extra = "input";
const xu = (s, n) => s ? n ? (typeof s != "string" && (s = JSON.stringify(s)), s.toLocaleLowerCase().indexOf(n.toString().toLowerCase()) > -1) : !0 : !1, V0 = (s, n) => !xu(s, n);
V0.extra = "input";
xu.extra = "input";
const ib = {
  none: "None",
  empty: "Not set",
  notEmpty: "Set",
  eq: "Equal",
  notEq: "Not equal",
  begins: "Begins with",
  contains: "Contains",
  notContains: "Does not contain",
  eqN: "=",
  neqN: "!=",
  gt: ">",
  gte: ">=",
  lt: "<",
  lte: "<="
}, sb = {
  none: () => !0,
  empty: nb,
  notEmpty: W0,
  eq: Q3,
  notEq: V5,
  begins: j0,
  contains: xu,
  notContains: V0,
  eqN: Q3,
  neqN: V5,
  gt: wu,
  gte: G0,
  lt: Eu,
  lte: q0
}, ob = {
  string: ["notEmpty", "empty", "eq", "notEq", "begins", "contains", "notContains"],
  number: ["notEmpty", "empty", "eqN", "neqN", "gt", "gte", "lt", "lte"]
}, Y0 = "filter";
class ab extends D3 {
  constructor(n, a, b) {
    super(n), this.revogrid = n, this.filterCollection = {}, this.possibleFilters = Object.assign({}, ob), this.possibleFilterNames = Object.assign({}, ib), this.possibleFilterEntities = Object.assign({}, sb), b && this.initConfig(b);
    const g = (x) => this.headerclick(x), C = () => {
      Object.keys(this.filterCollection).length && this.filterByProps(this.filterCollection);
    };
    this.addEventListener("headerclick", g), this.addEventListener("aftersourceset", C), this.revogrid.registerVNode([
      Ot("revogr-filter-panel", { uuid: `filter-${a}`, filterNames: this.possibleFilterNames, filterEntities: this.possibleFilterEntities, onFilterChange: (x) => this.onFilterChange(x.detail), ref: (x) => this.pop = x })
    ]);
  }
  initConfig(n) {
    if (n.collection && (this.filterCollection = Object.assign({}, n.collection)), n.customFilters)
      for (let a in n.customFilters) {
        const b = n.customFilters[a];
        this.possibleFilters[b.columnFilterType] || (this.possibleFilters[b.columnFilterType] = []), this.possibleFilters[b.columnFilterType].push(a), this.possibleFilterEntities[a] = b.func, this.possibleFilterNames[a] = b.name;
      }
    if (n.include) {
      const a = {};
      for (let b in this.possibleFilters) {
        const g = this.possibleFilters[b].filter((C) => n.include.indexOf(C) > -1);
        g.length && (a[b] = g);
      }
      Object.keys(a).length > 0 && (this.possibleFilters = a);
    }
  }
  async headerclick(n) {
    var a;
    const b = (a = n.detail.originalEvent) === null || a === void 0 ? void 0 : a.target;
    if (!H0(b))
      return;
    n.preventDefault();
    const g = await this.pop.getChanges();
    if (g && (g == null ? void 0 : g.prop) === n.detail.prop) {
      this.pop.show();
      return;
    }
    const C = this.revogrid.getBoundingClientRect(), x = b.getBoundingClientRect(), I = n.detail.prop;
    this.pop.filterTypes = this.getColumnFilter(n.detail.filter), this.pop.show(Object.assign(Object.assign({}, this.filterCollection[I]), { x: x.x - C.x, y: x.y - C.y + x.height, prop: I }));
  }
  getColumnFilter(n) {
    let a = "string";
    if (!n)
      return { [a]: this.possibleFilters[a] };
    if (this.isValidType(n))
      a = n;
    else if (typeof n == "object" && n.length)
      return n.reduce((b, g) => (this.isValidType(g) && (b[g] = this.possibleFilters[g]), b), {});
    return { [a]: this.possibleFilters[a] };
  }
  isValidType(n) {
    return !!(typeof n == "string" && this.possibleFilters[n]);
  }
  async onFilterChange(n) {
    this.filterByProps({ [n.prop]: n });
  }
  async filterByProps(n, a = !1) {
    a && (this.filterCollection = {});
    for (const b in n) {
      const { type: g, value: C } = n[b];
      if (g === "none")
        delete this.filterCollection[b];
      else {
        const x = this.possibleFilterEntities[g];
        this.filterCollection[b] = {
          filter: x,
          value: C,
          type: g
        };
      }
    }
    await this.runFiltering();
  }
  async doFiltering(n, a, b) {
    const g = [];
    b.forEach((M) => {
      const U = Object.assign({}, M), j = n[U.prop];
      U[ll] && !j && (delete U[ll], g.push(U)), !U[ll] && j && (g.push(U), U[ll] = !0);
    });
    const C = this.getRowFilter(a, n), { defaultPrevented: x, detail: I } = this.emit("beforefiltertrimmed", { collection: n, itemsToFilter: C, source: a });
    x || (await this.revogrid.addTrimmed(I.itemsToFilter, Y0)).defaultPrevented || (await this.revogrid.updateColumns(g), this.emit("afterFilterApply"));
  }
  async clearFiltering() {
    this.filterCollection = {}, await this.runFiltering();
  }
  async runFiltering() {
    const { source: n, columns: a } = await this.getData(), { defaultPrevented: b, detail: g } = this.emit("beforefilterapply", { collection: this.filterCollection, source: n, columns: a });
    b || this.doFiltering(g.collection, g.source, g.columns);
  }
  async getData() {
    const n = await this.revogrid.getSource(), a = await this.revogrid.getColumns();
    return {
      source: n,
      columns: a
    };
  }
  getRowFilter(n, a) {
    const b = {};
    return n.forEach((g, C) => {
      for (const x in a) {
        const I = a[x], P = I.filter;
        P(g[x], I.value) || (b[C] = !0);
      }
    }), b;
  }
}
var lb = "[object String]";
function ub(s) {
  return typeof s == "string" || !S2(s) && L3(s) && O3(s) == lb;
}
var K0 = ub, cb = N0("length"), fb = cb, hb = "\\ud800-\\udfff", db = "\\u0300-\\u036f", pb = "\\ufe20-\\ufe2f", gb = "\\u20d0-\\u20ff", vb = db + pb + gb, mb = "\\ufe0e\\ufe0f", bb = "\\u200d", Cb = RegExp("[" + bb + hb + vb + mb + "]");
function yb(s) {
  return Cb.test(s);
}
var wb = yb, X0 = "\\ud800-\\udfff", Eb = "\\u0300-\\u036f", xb = "\\ufe20-\\ufe2f", Sb = "\\u20d0-\\u20ff", Lb = Eb + xb + Sb, Tb = "\\ufe0e\\ufe0f", _b = "[" + X0 + "]", Y5 = "[" + Lb + "]", K5 = "\\ud83c[\\udffb-\\udfff]", Ab = "(?:" + Y5 + "|" + K5 + ")", J0 = "[^" + X0 + "]", Z0 = "(?:\\ud83c[\\udde6-\\uddff]){2}", Q0 = "[\\ud800-\\udbff][\\udc00-\\udfff]", Rb = "\\u200d", ec = Ab + "?", tc = "[" + Tb + "]?", Ob = "(?:" + Rb + "(?:" + [J0, Z0, Q0].join("|") + ")" + tc + ec + ")*", kb = tc + ec + Ob, Ib = "(?:" + [J0 + Y5 + "?", Y5, Z0, Q0, _b].join("|") + ")", V4 = RegExp(K5 + "(?=" + K5 + ")|" + Ib + kb, "g");
function Nb(s) {
  for (var n = V4.lastIndex = 0; V4.test(s); )
    ++n;
  return n;
}
var Db = Nb;
function Mb(s) {
  return wb(s) ? Db(s) : fb(s);
}
var $b = Mb, Fb = "[object Map]", Pb = "[object Set]";
function Ub(s) {
  if (s == null)
    return 0;
  if (k3(s))
    return K0(s) ? $b(s) : s.length;
  var n = G5(s);
  return n == Fb || n == Pb ? s.size : x0(s).length;
}
var Y4 = Ub;
class zb extends D3 {
  constructor(n) {
    super(n), this.revogrid = n, this.sorting = null, this.sortingFunc = null;
    const a = ({ detail: C }) => {
      if (this.hasSorting && this.emit("beforesourcesortingapply").defaultPrevented)
        return;
      const x = this.setData(C.source, C.type);
      x && (C.source = x);
    }, b = async ({ detail: { order: C } }) => {
      const x = await this.revogrid.getColumns(), I = {};
      for (let P in C) {
        const M = to.getColumnByProp(x, P), U = (M == null ? void 0 : M.cellCompare) || this.defaultCellCompare;
        I[P] = C[P] == "desc" ? this.descCellCompare(U) : U;
      }
      this.sort(C, I);
    }, g = async (C) => {
      var x, I;
      C.defaultPrevented || !C.detail.column.sortable || this.headerclick(C.detail.column, C.detail.index, (I = (x = C.detail) === null || x === void 0 ? void 0 : x.originalEvent) === null || I === void 0 ? void 0 : I.shiftKey);
    };
    this.addEventListener("beforesourceset", a), this.addEventListener("aftercolumnsset", b), this.addEventListener("initialHeaderClick", g);
  }
  get hasSorting() {
    return !!this.sorting;
  }
  async headerclick(n, a, b) {
    let g = this.getNextOrder(n.order);
    const C = this.emit("beforesorting", { column: n, order: g, additive: b });
    if (C.defaultPrevented)
      return;
    g = C.detail.order;
    const x = await this.revogrid.updateColumnSorting(C.detail.column, a, g, b), I = this.emit("beforesortingapply", { column: x, order: g, additive: b });
    if (I.defaultPrevented)
      return;
    g = I.detail.order;
    const P = (n == null ? void 0 : n.cellCompare) || this.defaultCellCompare, M = g == "asc" ? P : g == "desc" ? this.descCellCompare(P) : void 0;
    if (b && this.sorting) {
      const U = {}, j = {};
      Object.assign(U, this.sorting), Object.assign(j, this.sortingFunc), n.prop in U && Y4(U) > 1 && g === void 0 ? (delete U[n.prop], delete j[n.prop]) : (U[n.prop] = g, j[n.prop] = M), this.sort(U, j);
    } else
      this.sort({ [n.prop]: g }, { [n.prop]: M });
  }
  setData(n, a) {
    if (a === "rgRow" && this.sortingFunc)
      return this.sortItems(n, this.sortingFunc);
  }
  async sort(n, a) {
    if (!Y4(n)) {
      this.sorting = null, this.sortingFunc = null;
      return;
    }
    this.sorting = n, this.sortingFunc = a;
    const b = await this.revogrid.getSourceStore(), g = b.get("source"), C = this.sortIndexByItems([...b.get("proxyItems")], g, this.sortingFunc);
    pi(b, {
      proxyItems: C,
      source: [...g]
    }), this.emit("afterSortingApply");
  }
  defaultCellCompare(n, a, b) {
    var g, C;
    const x = (g = a[n]) === null || g === void 0 ? void 0 : g.toString().toLowerCase(), I = (C = b[n]) === null || C === void 0 ? void 0 : C.toString().toLowerCase();
    return x == I ? 0 : x > I ? 1 : -1;
  }
  descCellCompare(n) {
    return (a, b, g) => -1 * n(a, b, g);
  }
  sortIndexByItems(n, a, b) {
    for (let g in b)
      if (typeof b[g] > "u")
        return [...Array(n.length).keys()];
    return n.sort((g, C) => {
      let x = 0;
      for (let I in b) {
        const P = b[I], M = a[g], U = a[C];
        if (x = P(I, M, U), x)
          break;
      }
      return x;
    });
  }
  sortItems(n, a) {
    return n.sort((b, g) => {
      let C = 0;
      for (let x in a) {
        const I = a[x];
        if (C = I(x, b, g), C)
          break;
      }
      return C;
    });
  }
  getNextOrder(n) {
    switch (n) {
      case void 0:
        return "asc";
      case "asc":
        return "desc";
      case "desc":
        return;
    }
  }
}
function Bb(s, n, a) {
  return s === s && (a !== void 0 && (s = s <= a ? s : a), n !== void 0 && (s = s >= n ? s : n)), s;
}
var Hb = Bb, Gb = 4294967295;
function qb(s) {
  return s ? Hb(_3(s), 0, Gb) : 0;
}
var Wb = qb;
function jb(s, n, a, b) {
  var g = s.length;
  for (a = _3(a), a < 0 && (a = -a > g ? 0 : g + a), b = b === void 0 || b > g ? g : _3(b), b < 0 && (b += g), b = a > b ? 0 : Wb(b); a < b; )
    s[a++] = n;
  return s;
}
var Vb = jb;
function Yb(s, n, a, b) {
  var g = s == null ? 0 : s.length;
  return g ? (a && typeof a != "number" && mu(s, n, a) && (a = 0, b = g), Vb(s, n, a, b)) : [];
}
var Kb = Yb;
const rc = 30, nc = "data-rgCol", Xb = "data-rgRow", J3 = "grid-uuid", Jb = "disabled", Zb = "rgCell", ic = "rgHeaderCell", Qb = "sortable", sc = "header-rgRow", eC = "actual-rgRow", tC = "revo-drag-icon", K4 = "revo-draggable", oc = "focused-cell", rC = "selection-border-range", nC = "temp-bg-range", iC = "autofill-handle", ac = "edit-input-wrapper", sC = "Draggable item", il = "__rvgr", gl = `${il}-depth`, u5 = `${il}-name`, vl = `${il}-id`, lc = `${il}-value`, X5 = `${il}-column`, A3 = `${il}-expanded`, oC = "group-expand", uc = "groupExpandClick", R5 = "rgRow";
function aC(s, n) {
  const a = [], b = {};
  return s.forEach((g, C) => {
    const x = JSON.stringify(n(g));
    b[x] || (b[x] = /* @__PURE__ */ new Map(), a.push({
      children: b[x],
      id: x
    })), b[x].set(C, g);
  }), a;
}
function X4(s, n, { prevExpanded: a, expandedAll: b }) {
  const g = aC(s, n), C = [], x = {};
  let I = 0, P = 0;
  const M = {}, U = {};
  return g.forEach((j) => {
    const K = Su(j.id);
    if (!K)
      return;
    let Z = 0, re = !!b, V = re;
    const at = [];
    K.reduce((Tt, Wt) => {
      Tt.push(Wt);
      const b1 = Tt.join(",");
      if (!x[b1]) {
        if (V = b || a && a[b1], C.push(lC(Wt, b1, Z, j.id, V)), Z && !V && !re) {
          const R1 = Tt.slice(0, Tt.length - 1);
          a && R1.length && a[R1.join(",")] || (M[I] = !0);
        }
        I++, x[b1] = at;
      }
      return Z++, P = Z, Tt;
    }, []), j.children.forEach((Tt, Wt) => {
      !V && !re && (M[I] = !0), C.push(Tt), U[Wt] = I, at.push(I), I++;
    });
  }), {
    sourceWithGroups: C,
    depth: P,
    trimmed: M,
    oldNewIndexMap: U,
    childrenByGroup: x
  };
}
function lC(s, n, a, b, g = !1) {
  return {
    [u5]: s,
    [gl]: a,
    [vl]: b,
    [lc]: n,
    [A3]: g
  };
}
function uC(s) {
  return s && s[u5];
}
function ka(s) {
  return s && typeof s[u5] < "u";
}
function cc(s) {
  return s && typeof s[X5] < "u";
}
function cC(s) {
  return typeof s.push < "u";
}
function fC(s, n) {
  const a = s.length;
  let b = 0;
  for (; b < a; b++)
    if (s[b] !== n[b])
      return b;
  return b;
}
function Su(s) {
  const n = JSON.parse(s);
  return cC(n) ? n : null;
}
function hC(s, n, a) {
  const b = Su(a[vl]);
  if (!b)
    return !1;
  const g = fC(s, b);
  return n[gl] < g;
}
const dC = {
  mime: "text/csv",
  fileKind: "csv",
  bom: !0,
  columnDelimiter: ",",
  rowDelimiter: `\r
`,
  encoding: ""
}, pC = String.fromCharCode(13), gC = String.fromCharCode(10), vC = String.fromCharCode(34), mC = String.fromCharCode(65279), bC = new RegExp('"', "g");
class CC {
  constructor(n = {}) {
    this.options = Object.assign(Object.assign({}, dC), n);
  }
  doExport({ data: n, headers: a, props: b }) {
    let g = this.options.bom ? mC : "";
    return (a == null ? void 0 : a.length) > 0 && a.forEach((C) => {
      !C.length || (g += this.prepareHeader(C, this.options.columnDelimiter), g += this.options.rowDelimiter);
    }), n.forEach((C, x) => {
      if (x > 0 && (g += this.options.rowDelimiter), ka(C)) {
        g += this.parseCell(uC(C), this.options.columnDelimiter);
        return;
      }
      g += b.map((I) => this.parseCell(C[I], this.options.columnDelimiter)).join(this.options.columnDelimiter);
    }), g;
  }
  prepareHeader(n, a) {
    let b = "";
    const g = n.map((C) => this.parseCell(C, a, !0));
    return b += g.join(a), b;
  }
  parseCell(n, a, b = !1) {
    let g = n;
    typeof n != "string" && (g = JSON.stringify(n));
    const C = [pC, vC, gC, a];
    return typeof g > "u" ? "" : g !== "" && (b || C.some((x) => g.indexOf(x) >= 0)) ? `"${g.replace(bC, '""')}"` : g;
  }
}
var V3;
(function(s) {
  s.csv = "csv";
})(V3 || (V3 = {}));
class yC extends D3 {
  async exportString(n = {}, a = V3.csv) {
    const b = await this.beforeexport();
    return b ? this.formatter(a, n).doExport(b) : null;
  }
  async exportBlob(n = {}, a = V3.csv) {
    return await this.getBlob(this.formatter(a, n));
  }
  async exportFile(n = {}, a = V3.csv) {
    const b = this.formatter(a, n), g = await this.getBlob(b), C = window.URL || window.webkitURL, x = document.createElement("a"), { filename: I, fileKind: P } = b.options, M = `${I}.${P}`, U = C.createObjectURL(g);
    x.style.display = "none", x.setAttribute("href", U), x.setAttribute("download", M), this.revogrid.appendChild(x), x.dispatchEvent(new MouseEvent("click")), this.revogrid.removeChild(x), await pl(120), C.revokeObjectURL(U);
  }
  async getBlob(n) {
    const a = `${n.options.mime};charset=${n.options.encoding}`;
    if (typeof Blob < "u") {
      const b = await this.beforeexport();
      return b ? new Blob([n.doExport(b)], { type: a }) : null;
    }
    return null;
  }
  async beforeexport() {
    let n = await this.getData();
    const a = this.emit("beforeexport", { data: n });
    return a.defaultPrevented ? null : a.detail.data;
  }
  async getData() {
    const n = await this.getSource(), a = [], b = [];
    is.forEach((C, x) => {
      b.push(this.getColPerSource(C).then((I) => a[x] = I));
    }), await Promise.all(b);
    const g = {
      headers: [],
      props: []
    };
    for (let C of a)
      C.headers.forEach((x, I) => {
        g.headers[I] || (g.headers[I] = []), g.headers[I].push(...x);
      }), g.props.push(...C.props);
    return Object.assign({ data: n }, g);
  }
  async getColPerSource(n) {
    const a = await this.revogrid.getColumnStore(n), b = a.get("source"), g = a.get("items"), C = a.get("groupingDepth"), x = a.get("groups"), I = [], P = [], M = g.reduce((j, K, Z) => {
      const re = b[K].prop;
      return I.push(b[K].name || ""), P.push(re), j[re] = Z, j;
    }, {}), U = this.getGroupHeaders(C, x, g, M);
    return U.push(I), {
      headers: U,
      props: P
    };
  }
  getGroupHeaders(n, a, b, g) {
    const C = [], x = Kb(new Array(b.length), "");
    for (let I = 0; I < n; I++) {
      const P = [...x];
      if (C.push(P), !a[I])
        continue;
      a[I].forEach((U) => {
        const j = this.findGroupStartIndex(U.ids, g);
        typeof j == "number" && (P[j] = U.name);
      });
    }
    return C;
  }
  findGroupStartIndex(n, a) {
    let b;
    return n.forEach((g) => {
      const C = a[g];
      typeof C == "number" && (typeof b != "number" || b > C) && (b = C);
    }), b;
  }
  async getSource() {
    const n = [], a = [];
    return u3.forEach((b) => {
      const g = [];
      n.push(g);
      const C = this.revogrid.getVisibleSource(b).then((x) => g.push(...x));
      a.push(C);
    }), await Promise.all(a), n.reduce((b, g) => (b.push(...g), b), []);
  }
  formatter(n, a = {}) {
    switch (n) {
      case V3.csv:
        return new CC(a);
      default:
        throw new Error("Unknown format");
    }
  }
}
function wC(s, n) {
  const a = n[s], b = a[vl], g = {};
  let C = s + 1;
  const x = n.length;
  for (; C < x; ) {
    const I = n[C];
    if (ka(I)) {
      if (b !== I[vl])
        break;
      I[A3] = !1;
    }
    g[C++] = !0;
  }
  return a[A3] = !1, { trimmed: g };
}
function EC(s, n, a) {
  const b = a[s], g = n[b], C = Su(g[vl]), x = {};
  if (!C)
    return { trimmed: x };
  const I = [];
  g[A3] = !0;
  let P = b + 1;
  const M = n.length;
  let U = 0;
  for (; P < M; ) {
    const K = n[P], Z = ka(K);
    if (Z)
      if (hC(C, g, K))
        U || (U = K[gl]);
      else
        break;
    (!U || Z && U === K[gl]) && (x[P] = !1, I.push(P)), P++;
  }
  const j = {
    trimmed: x
  };
  if (I.length) {
    const K = [...a];
    K.splice(s + 1, 0, ...I), j.items = K;
  }
  return j;
}
const Pl = "grouping";
function xC(s, n, a) {
  const b = {};
  for (let g in s) {
    if (g === Pl)
      continue;
    const C = s[g], x = {};
    for (let I in C) {
      let P = n[I];
      a && (P = a[P]), C[I] && (x[P] = !0, P !== parseInt(I, 10) && (b[g] = x));
    }
  }
  return b;
}
class SC extends D3 {
  constructor(n, a) {
    super(n), this.revogrid = n, this.providers = a;
  }
  get hasProps() {
    var n, a, b;
    return ((n = this.options) === null || n === void 0 ? void 0 : n.props) && ((b = (a = this.options) === null || a === void 0 ? void 0 : a.props) === null || b === void 0 ? void 0 : b.length);
  }
  get store() {
    return this.providers.dataProvider.stores[R5].store;
  }
  get rowItems() {
    return this.store.get("items");
  }
  get trimmed() {
    return this.store.get("trimmed");
  }
  onFocus(n) {
    ka(n.detail.model) && n.preventDefault();
  }
  onExpand({ virtualIndex: n }) {
    const { source: a } = this.getSource();
    let b = this.trimmed[Pl], g = Sm(this.store, n);
    if (a[g][A3]) {
      const { trimmed: I } = wC(g, a);
      b = Object.assign(Object.assign({}, b), I), this.revogrid.clearFocus();
    } else {
      const { trimmed: I, items: P } = EC(n, a, this.rowItems);
      b = Object.assign(Object.assign({}, b), I), P && M0(this.store, P);
    }
    this.store.set("source", a), this.revogrid.addTrimmed(b, Pl);
  }
  getSource(n = !1) {
    const a = this.store.get("source"), b = this.store.get("proxyItems");
    let g = 0;
    return b.reduce((C, x) => {
      const I = a[x];
      return n ? (ka(I) ? I[A3] && (C.prevExpanded[I[lc]] = !0) : (C.source.push(I), C.oldNewIndexes[x] = g, g++), C) : (C.source.push(I), C);
    }, {
      source: [],
      prevExpanded: {},
      oldNewIndexes: {}
    });
  }
  setColumnGrouping(n) {
    return n != null && n.length ? (n[0][X5] = !0, !0) : !1;
  }
  setColumns({ columns: n }) {
    for (let a of is)
      if (this.setColumnGrouping(n[a]))
        break;
  }
  onDrag(n) {
    const { from: a, to: b } = n.detail, g = b - a >= 0, { source: C } = this.getSource(), x = this.rowItems;
    let I = g ? a : b;
    const P = g ? b : a;
    for (; I < P; I++) {
      const M = C[x[I]];
      if (ka(M)) {
        n.preventDefault();
        return;
      }
    }
  }
  beforeTrimmedApply(n, a) {
    if (a === Y0) {
      const b = this.store.get("source");
      for (let g in n)
        n[g] && ka(b[g]) && (n[g] = !1);
    }
  }
  subscribe() {
    this.addEventListener("beforesourceset", ({ detail: n }) => this.onDataSet(n)), this.addEventListener("beforecolumnsset", ({ detail: n }) => this.setColumns(n)), this.addEventListener("beforetrimmed", ({ detail: { trimmed: n, trimmedType: a } }) => this.beforeTrimmedApply(n, a)), this.addEventListener("afterSortingApply", () => this.doSourceUpdate()), this.addEventListener("beforecellfocus", (n) => this.onFocus(n)), this.addEventListener("roworderchanged", (n) => this.onDrag(n)), this.addEventListener(uc, ({ detail: n }) => this.onExpand(n));
  }
  doSourceUpdate(n) {
    if (!this.hasProps)
      return;
    const { source: a, prevExpanded: b, oldNewIndexes: g } = this.getSource(!0), { sourceWithGroups: C, depth: x, trimmed: I, oldNewIndexMap: P, childrenByGroup: M } = X4(
      a,
      (U) => {
        var j;
        return (j = this.options) === null || j === void 0 ? void 0 : j.props.map((K) => U[K]);
      },
      Object.assign({ prevExpanded: b }, n)
    );
    this.providers.dataProvider.setData(C, R5, { depth: x }, !0), this.updateTrimmed(I, M, g, P);
  }
  onDataSet(n) {
    if (!this.hasProps || !(n != null && n.source) || !n.source.length)
      return;
    const a = n.source.filter((M) => !ka(M)), b = this.revogrid.grouping || {}, { sourceWithGroups: g, depth: C, trimmed: x, oldNewIndexMap: I, childrenByGroup: P } = X4(
      a,
      (M) => {
        var U;
        return (U = this.options) === null || U === void 0 ? void 0 : U.props.map((j) => M[j]);
      },
      Object.assign({}, b || {})
    );
    n.source = g, this.providers.dataProvider.setGrouping({ depth: C }), this.updateTrimmed(x, P, I);
  }
  setGrouping(n) {
    if (this.clearSubscriptions(), this.options = n, !n.props || !Object.keys(n.props).length) {
      this.clearGrouping();
      return;
    }
    const { source: a } = this.getSource();
    a.length && this.doSourceUpdate(Object.assign({}, n));
    for (let b of is)
      if (this.setColumnGrouping(this.providers.columnProvider.getColumns(b))) {
        this.providers.columnProvider.refreshByType(b);
        break;
      }
    this.subscribe();
  }
  clearGrouping() {
    is.forEach((b) => {
      const g = this.providers.columnProvider.getColumns(b);
      let C = !1;
      g.forEach((x) => {
        cc(x) && (delete x[X5], C = !0);
      }), C && this.providers.columnProvider.refreshByType(b);
    });
    const { source: n, oldNewIndexes: a } = this.getSource(!0);
    this.providers.dataProvider.setData(n, R5, void 0, !0), this.updateTrimmed(void 0, void 0, a);
  }
  updateTrimmed(n = {}, a = {}, b, g) {
    const C = xC(this.trimmed, b, g);
    for (let x in C)
      this.revogrid.addTrimmed(C[x], x);
    this.revogrid.addTrimmed(Object.assign({}, n), Pl);
  }
}
class LC {
  constructor() {
    this.parentY = 0;
  }
  start(n, { pos: a, text: b, event: g }) {
    var C;
    const { top: x } = n.getBoundingClientRect();
    this.parentY = x, this.text && (this.text.innerText = b), this.move(a), this.moveTip({ x: g.x, y: g.y }), (C = this.el) === null || C === void 0 || C.classList.remove("hidden");
  }
  end() {
    var n;
    (n = this.el) === null || n === void 0 || n.classList.add("hidden");
  }
  move(n) {
    this.moveElement(n.end - this.parentY);
  }
  moveTip({ x: n, y: a }) {
    !this.draggable || (this.draggable.style.left = `${n}px`, this.draggable.style.top = `${a}px`);
  }
  moveElement(n) {
    !this.rgRow || (this.rgRow.style.transform = `translateY(${n}px)`);
  }
}
const TC = ({ ref: s }) => {
  const n = new LC();
  return s(n), Ot(
    "div",
    { class: "draggable-wrapper hidden", ref: (a) => n.el = a },
    Ot(
      "div",
      { class: "draggable", ref: (a) => n.draggable = a },
      Ot("span", { class: "revo-alt-icon" }),
      Ot("span", { ref: (a) => n.text = a })
    ),
    Ot("div", { class: "drag-position", ref: (a) => n.rgRow = a })
  );
}, _C = ({ viewports: s, dimensions: n, orderRef: a, nakedClick: b, registerElement: g, onScroll: C }, x) => {
  const I = (M, U) => {
    U === M.target && b(M);
  };
  let P;
  return [
    Ot(
      "div",
      { class: "main-viewport", ref: (M) => P = M, onClick: (M) => I(M, P) },
      Ot(
        "div",
        { class: "viewports" },
        x,
        Ot("revogr-scroll-virtual", { class: "vertical", dimension: "rgRow", viewportStore: s.rgRow.store, dimensionStore: n.rgRow.store, ref: (M) => g(M, "rowScroll"), onScrollVirtual: (M) => C(M.detail) }),
        Ot(TC, { ref: a })
      )
    ),
    Ot("revogr-scroll-virtual", { class: "horizontal", dimension: "rgCol", viewportStore: s.rgCol.store, dimensionStore: n.rgCol.store, ref: (M) => g(M, "colScroll"), onScrollVirtual: (M) => C(M.detail) })
  ];
};
function Dl(s) {
  return s === fc;
}
function AC(s, n) {
  const a = {};
  let b = ["x", "y"];
  for (let g of b)
    if (s[g] < 0)
      return a[g] = s[g], a;
  for (let g of b)
    if (s[g] >= n[g])
      return a[g] = s[g] - n[g], a;
  return null;
}
function J4(s, n) {
  const a = Object.assign({}, s);
  let b = ["x", "y"];
  for (let g of b)
    s[g] < 0 && (a[g] = 0);
  for (let g of b)
    s[g] >= n[g] && (a[g] = n[g] - 1);
  return a;
}
function Ia(s, n) {
  return s && n ? {
    x: Math.min(s.x, n.x),
    y: Math.min(s.y, n.y),
    x1: Math.max(s.x, n.x),
    y1: Math.max(s.y, n.y)
  } : null;
}
function RC(s) {
  return s.x === s.x1 && s.y === s.y1;
}
function OC() {
  return {
    range: null,
    tempRange: null,
    tempRangeType: null,
    focus: null,
    edit: null,
    lastCell: null
  };
}
class G3 {
  constructor() {
    this.unsubscribe = [], this.store = a5(OC()), this.store.on("set", (n, a) => {
      n === "tempRange" && !a && this.store.set("tempRangeType", null);
    });
  }
  onChange(n, a) {
    this.unsubscribe.push(this.store.onChange(n, a));
  }
  clearFocus() {
    pi(this.store, { focus: null, range: null, edit: null, tempRange: null });
  }
  setFocus(n, a) {
    pi(this.store, {
      focus: n,
      range: Ia(n, a),
      edit: null,
      tempRange: null
    });
  }
  setTempArea(n) {
    pi(this.store, { tempRange: n == null ? void 0 : n.area, tempRangeType: n == null ? void 0 : n.type, edit: null });
  }
  clearTemp() {
    pi(this.store, { tempRange: null });
  }
  setRangeArea(n) {
    pi(this.store, { range: n, edit: null, tempRange: null });
  }
  setRange(n, a) {
    this.setRangeArea(Ia(n, a));
  }
  setLastCell(n) {
    pi(this.store, { lastCell: n });
  }
  setEdit(n) {
    const a = this.store.get("focus");
    if (a && typeof n == "string") {
      pi(this.store, {
        edit: { x: a.x, y: a.y, val: n }
      });
      return;
    }
    pi(this.store, { edit: null });
  }
  dispose() {
    this.unsubscribe.forEach((n) => n()), this.store.dispose();
  }
}
const fc = -1;
class kC {
  constructor() {
    this.dirty = !1, this.stores = {}, this.columnStores = {}, this.rowStores = {}, this.sections = [];
  }
  get focusedStore() {
    var n;
    for (let a in this.stores)
      for (let b in this.stores[a]) {
        const g = (n = this.stores[a][b]) === null || n === void 0 ? void 0 : n.store.get("focus");
        if (g)
          return {
            entity: this.stores[a][b],
            cell: g,
            position: {
              x: parseInt(b, 10),
              y: parseInt(a, 10)
            }
          };
      }
    return null;
  }
  get edit() {
    var n;
    return (n = this.focusedStore) === null || n === void 0 ? void 0 : n.entity.store.get("edit");
  }
  get focused() {
    var n;
    return (n = this.focusedStore) === null || n === void 0 ? void 0 : n.entity.store.get("focus");
  }
  registerSection(n) {
    if (!n) {
      this.sections.length = 0, this.dirty = !0;
      return;
    }
    this.sections.indexOf(n) === -1 && this.sections.push(n);
  }
  beforeUpdate() {
    if (this.dirty) {
      for (let n in this.stores)
        for (let a in this.stores[n])
          this.stores[n][a].dispose();
      this.dirty = !1;
    }
  }
  registerColumn(n) {
    return Dl(n) ? new G3() : this.columnStores[n] ? this.columnStores[n] : (this.columnStores[n] = new G3(), this.columnStores[n]);
  }
  registerRow(n) {
    return Dl(n) ? new G3() : this.rowStores[n] ? this.rowStores[n] : (this.rowStores[n] = new G3(), this.rowStores[n]);
  }
  register({ x: n, y: a }) {
    var b, g;
    return Dl(n) || Dl(a) ? new G3() : (this.stores[a] || (this.stores[a] = {}), this.stores[a][n] ? this.stores[a][n] : (this.stores[a][n] = new G3(), (b = this.stores[a][n]) === null || b === void 0 || b.onChange("range", (C) => {
      this.columnStores[n].setRangeArea(C), this.rowStores[a].setRangeArea(C);
    }), (g = this.stores[a][n]) === null || g === void 0 || g.store.on("dispose", () => {
      var C, x;
      (C = this.columnStores[n]) === null || C === void 0 || C.dispose(), (x = this.rowStores[a]) === null || x === void 0 || x.dispose(), delete this.rowStores[a], delete this.columnStores[n], this.stores[a] && delete this.stores[a][n], Object.keys(this.stores[a] || {}).length || delete this.stores[a];
    }), this.stores[a][n]));
  }
  setEditByCell({ x: n, y: a }, b) {
    const g = this.stores[a][n];
    this.focus(g, { focus: b, end: b }), this.setEdit("");
  }
  focus(n, { focus: a, end: b }) {
    let g;
    for (let P in this.stores)
      for (let M in this.stores[P]) {
        const U = this.stores[P][M];
        U !== n ? U.clearFocus() : g = { x: parseInt(M, 10), y: parseInt(P, 10) };
      }
    if (!g)
      return;
    const C = n.store.get("lastCell"), x = AC(a, C);
    let I;
    if (x)
      for (let P in x) {
        let M = P, U;
        switch (M) {
          case "x":
            U = this.getXStores(g.y);
            break;
          case "y":
            U = this.getYStores(g.x);
            break;
        }
        if (x[M] >= 0)
          I = U[++g[M]];
        else {
          I = U[--g[M]];
          const j = I == null ? void 0 : I.store.get("lastCell");
          j && (x[M] = j[M] + x[M]);
        }
      }
    if (I) {
      let P = Object.assign(Object.assign({}, a), x);
      this.focus(I, { focus: P, end: P });
      return;
    }
    a = J4(a, C), b = J4(a, C), n.setFocus(a, b);
  }
  clearAll() {
    var n;
    for (let a in this.stores)
      for (let b in this.stores[a])
        (n = this.stores[a][b]) === null || n === void 0 || n.clearFocus();
  }
  setEdit(n) {
    !this.focusedStore || this.focusedStore.entity.setEdit(n);
  }
  getXStores(n) {
    return this.stores[n];
  }
  getYStores(n) {
    const a = {};
    for (let b in this.stores)
      a[b] = this.stores[b][n];
    return a;
  }
}
const Lu = "header", hc = "footer", dc = "content", IC = "data";
function NC(s, n) {
  return {
    x: s.viewports[s.colType].store.get("realCount"),
    y: s.viewports[n].store.get("realCount")
  };
}
var Tu = lu(function(s, n) {
  (function() {
    var a, b = "4.17.21", g = 200, C = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", x = "Expected a function", I = "Invalid `variable` option passed into `_.template`", P = "__lodash_hash_undefined__", M = 500, U = "__lodash_placeholder__", j = 1, K = 2, Z = 4, re = 1, V = 2, at = 1, Tt = 2, Wt = 4, b1 = 8, R1 = 16, C1 = 32, D1 = 64, M1 = 128, B1 = 256, V1 = 512, Y1 = 30, tn = "...", Vt = 800, w1 = 16, l1 = 1, Yt = 2, Or = 3, pr = 1 / 0, wr = 9007199254740991, rn = 17976931348623157e292, xn = 0 / 0, nn = 4294967295, Mi = nn - 1, c2 = nn >>> 1, gi = [
      ["ary", M1],
      ["bind", at],
      ["bindKey", Tt],
      ["curry", b1],
      ["curryRight", R1],
      ["flip", V1],
      ["partial", C1],
      ["partialRight", D1],
      ["rearg", B1]
    ], Sr = "[object Arguments]", dn = "[object Array]", Lr = "[object AsyncFunction]", Ai = "[object Boolean]", Zn = "[object Date]", Sn = "[object DOMException]", ve = "[object Error]", ye = "[object Function]", Ae = "[object GeneratorFunction]", de = "[object Map]", Ee = "[object Number]", ae = "[object Null]", pe = "[object Object]", Na = "[object Promise]", Da = "[object Proxy]", Os = "[object RegExp]", Ue = "[object Set]", Le = "[object String]", we = "[object Symbol]", Ze = "[object Undefined]", ge = "[object WeakMap]", Be = "[object WeakSet]", We = "[object ArrayBuffer]", he = "[object DataView]", Ve = "[object Float32Array]", Ge = "[object Float64Array]", qe = "[object Int8Array]", be = "[object Int16Array]", Re = "[object Int32Array]", Ie = "[object Uint8Array]", oe = "[object Uint8ClampedArray]", je = "[object Uint16Array]", Fe = "[object Uint32Array]", ke = /\b__p \+= '';/g, me = /\b(__p \+=) '' \+/g, De = /(__e\(.*?\)|\b__t\)) \+\n'';/g, Te = /&(?:amp|lt|gt|quot|#39);/g, Oe = /[&<>"']/g, xe = RegExp(Te.source), Me = RegExp(Oe.source), Ne = /<%-([\s\S]+?)%>/g, $e = /<%([\s\S]+?)%>/g, Pe = /<%=([\s\S]+?)%>/g, _e = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, He = /^\w*$/, Ye = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, Ke = /[\\^$.*+?()[\]{}|]/g, Ce = RegExp(Ke.source), Xe = /^\s+/, Je = /\s/, Qe = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, fe = /\{\n\/\* \[wrapped with (.+)\] \*/, le = /,? & /, vi = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g, ro = /[()=,{}\[\]\/\s]/, G2 = /\\(\\)?/g, _o = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, ks = /\w*$/, q2 = /^[-+]0x[0-9a-f]+$/i, Ao = /^0b[01]+$/i, Is = /^\[object .+?Constructor\]$/, c1 = /^0o[0-7]+$/i, mr = /^(?:0|[1-9]\d*)$/, Ro = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, no = /($^)/, hr = /['\n\r\u2028\u2029\\]/g, u1 = "\\ud800-\\udfff", f2 = "\\u0300-\\u036f", io = "\\ufe20-\\ufe2f", $i = "\\u20d0-\\u20ff", or = f2 + io + $i, W = "\\u2700-\\u27bf", ss = "a-z\\xdf-\\xf6\\xf8-\\xff", W2 = "\\xac\\xb1\\xd7\\xf7", Ct = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", I1 = "\\u2000-\\u206f", so = " \\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", L2 = "A-Z\\xc0-\\xd6\\xd8-\\xde", Fi = "\\ufe0e\\ufe0f", Ri = W2 + Ct + I1 + so, Oo = "['\u2019]", E1 = "[" + u1 + "]", ko = "[" + Ri + "]", os = "[" + or + "]", as = "\\d+", Gt = "[" + W + "]", $t = "[" + ss + "]", ot = "[^" + u1 + Ri + as + W + ss + L2 + "]", it = "\\ud83c[\\udffb-\\udfff]", mt = "(?:" + os + "|" + it + ")", ta = "[^" + u1 + "]", yt = "(?:\\ud83c[\\udde6-\\uddff]){2}", pt = "[\\ud800-\\udbff][\\udc00-\\udfff]", vt = "[" + L2 + "]", n1 = "\\u200d", i1 = "(?:" + $t + "|" + ot + ")", Nt = "(?:" + vt + "|" + ot + ")", It = "(?:" + Oo + "(?:d|ll|m|re|s|t|ve))?", s1 = "(?:" + Oo + "(?:D|LL|M|RE|S|T|VE))?", Kt = mt + "?", v1 = "[" + Fi + "]?", _t = "(?:" + n1 + "(?:" + [ta, yt, pt].join("|") + ")" + v1 + Kt + ")*", wt = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", Mt = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", bt = v1 + Kt + _t, Ft = "(?:" + [Gt, yt, pt].join("|") + ")" + bt, Pt = "(?:" + [ta + os + "?", os, yt, pt, E1].join("|") + ")", gt = RegExp(Oo, "g"), St = RegExp(os, "g"), At = RegExp(it + "(?=" + it + ")|" + Pt + bt, "g"), Dt = RegExp([
      vt + "?" + $t + "+" + It + "(?=" + [ko, vt, "$"].join("|") + ")",
      Nt + "+" + s1 + "(?=" + [ko, vt + i1, "$"].join("|") + ")",
      vt + "?" + i1 + "+" + It,
      vt + "+" + s1,
      Mt,
      wt,
      as,
      Ft
    ].join("|"), "g"), e1 = RegExp("[" + n1 + u1 + or + Fi + "]"), t1 = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/, Xt = [
      "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"
    ], Jt = -1, Et = {};
    Et[Ve] = Et[Ge] = Et[qe] = Et[be] = Et[Re] = Et[Ie] = Et[oe] = Et[je] = Et[Fe] = !0, Et[Sr] = Et[dn] = Et[We] = Et[Ai] = Et[he] = Et[Zn] = Et[ve] = Et[ye] = Et[de] = Et[Ee] = Et[pe] = Et[Os] = Et[Ue] = Et[Le] = Et[ge] = !1;
    var xt = {};
    xt[Sr] = xt[dn] = xt[We] = xt[he] = xt[Ai] = xt[Zn] = xt[Ve] = xt[Ge] = xt[qe] = xt[be] = xt[Re] = xt[de] = xt[Ee] = xt[pe] = xt[Os] = xt[Ue] = xt[Le] = xt[we] = xt[Ie] = xt[oe] = xt[je] = xt[Fe] = !0, xt[ve] = xt[ye] = xt[ge] = !1;
    var r1 = {
      \u00C0: "A",
      \u00C1: "A",
      \u00C2: "A",
      \u00C3: "A",
      \u00C4: "A",
      \u00C5: "A",
      \u00E0: "a",
      \u00E1: "a",
      \u00E2: "a",
      \u00E3: "a",
      \u00E4: "a",
      \u00E5: "a",
      \u00C7: "C",
      \u00E7: "c",
      \u00D0: "D",
      \u00F0: "d",
      \u00C8: "E",
      \u00C9: "E",
      \u00CA: "E",
      \u00CB: "E",
      \u00E8: "e",
      \u00E9: "e",
      \u00EA: "e",
      \u00EB: "e",
      \u00CC: "I",
      \u00CD: "I",
      \u00CE: "I",
      \u00CF: "I",
      \u00EC: "i",
      \u00ED: "i",
      \u00EE: "i",
      \u00EF: "i",
      \u00D1: "N",
      \u00F1: "n",
      \u00D2: "O",
      \u00D3: "O",
      \u00D4: "O",
      \u00D5: "O",
      \u00D6: "O",
      \u00D8: "O",
      \u00F2: "o",
      \u00F3: "o",
      \u00F4: "o",
      \u00F5: "o",
      \u00F6: "o",
      \u00F8: "o",
      \u00D9: "U",
      \u00DA: "U",
      \u00DB: "U",
      \u00DC: "U",
      \u00F9: "u",
      \u00FA: "u",
      \u00FB: "u",
      \u00FC: "u",
      \u00DD: "Y",
      \u00FD: "y",
      \u00FF: "y",
      \u00C6: "Ae",
      \u00E6: "ae",
      \u00DE: "Th",
      \u00FE: "th",
      \u00DF: "ss",
      \u0100: "A",
      \u0102: "A",
      \u0104: "A",
      \u0101: "a",
      \u0103: "a",
      \u0105: "a",
      \u0106: "C",
      \u0108: "C",
      \u010A: "C",
      \u010C: "C",
      \u0107: "c",
      \u0109: "c",
      \u010B: "c",
      \u010D: "c",
      \u010E: "D",
      \u0110: "D",
      \u010F: "d",
      \u0111: "d",
      \u0112: "E",
      \u0114: "E",
      \u0116: "E",
      \u0118: "E",
      \u011A: "E",
      \u0113: "e",
      \u0115: "e",
      \u0117: "e",
      \u0119: "e",
      \u011B: "e",
      \u011C: "G",
      \u011E: "G",
      \u0120: "G",
      \u0122: "G",
      \u011D: "g",
      \u011F: "g",
      \u0121: "g",
      \u0123: "g",
      \u0124: "H",
      \u0126: "H",
      \u0125: "h",
      \u0127: "h",
      \u0128: "I",
      \u012A: "I",
      \u012C: "I",
      \u012E: "I",
      \u0130: "I",
      \u0129: "i",
      \u012B: "i",
      \u012D: "i",
      \u012F: "i",
      \u0131: "i",
      \u0134: "J",
      \u0135: "j",
      \u0136: "K",
      \u0137: "k",
      \u0138: "k",
      \u0139: "L",
      \u013B: "L",
      \u013D: "L",
      \u013F: "L",
      \u0141: "L",
      \u013A: "l",
      \u013C: "l",
      \u013E: "l",
      \u0140: "l",
      \u0142: "l",
      \u0143: "N",
      \u0145: "N",
      \u0147: "N",
      \u014A: "N",
      \u0144: "n",
      \u0146: "n",
      \u0148: "n",
      \u014B: "n",
      \u014C: "O",
      \u014E: "O",
      \u0150: "O",
      \u014D: "o",
      \u014F: "o",
      \u0151: "o",
      \u0154: "R",
      \u0156: "R",
      \u0158: "R",
      \u0155: "r",
      \u0157: "r",
      \u0159: "r",
      \u015A: "S",
      \u015C: "S",
      \u015E: "S",
      \u0160: "S",
      \u015B: "s",
      \u015D: "s",
      \u015F: "s",
      \u0161: "s",
      \u0162: "T",
      \u0164: "T",
      \u0166: "T",
      \u0163: "t",
      \u0165: "t",
      \u0167: "t",
      \u0168: "U",
      \u016A: "U",
      \u016C: "U",
      \u016E: "U",
      \u0170: "U",
      \u0172: "U",
      \u0169: "u",
      \u016B: "u",
      \u016D: "u",
      \u016F: "u",
      \u0171: "u",
      \u0173: "u",
      \u0174: "W",
      \u0175: "w",
      \u0176: "Y",
      \u0177: "y",
      \u0178: "Y",
      \u0179: "Z",
      \u017B: "Z",
      \u017D: "Z",
      \u017A: "z",
      \u017C: "z",
      \u017E: "z",
      \u0132: "IJ",
      \u0133: "ij",
      \u0152: "Oe",
      \u0153: "oe",
      \u0149: "'n",
      \u017F: "s"
    }, o1 = {
      "&": "&amp;",
      "<": "&lt;",
      ">": "&gt;",
      '"': "&quot;",
      "'": "&#39;"
    }, h1 = {
      "&amp;": "&",
      "&lt;": "<",
      "&gt;": ">",
      "&quot;": '"',
      "&#39;": "'"
    }, Ut = {
      "\\": "\\",
      "'": "'",
      "\n": "n",
      "\r": "r",
      "\u2028": "u2028",
      "\u2029": "u2029"
    }, qt = parseFloat, Ma = parseInt, Kr = typeof Oa == "object" && Oa && Oa.Object === Object && Oa, ra = typeof self == "object" && self && self.Object === Object && self, sn = Kr || ra || Function("return this")(), Pi = n && !n.nodeType && n, Gr = Pi && !0 && s && !s.nodeType && s, Oi = Gr && Gr.exports === Pi, Ns = Oi && Kr.process, mi = function() {
      try {
        var ce = Gr && Gr.require && Gr.require("util").types;
        return ce || Ns && Ns.binding && Ns.binding("util");
      } catch {
      }
    }(), ls = mi && mi.isArrayBuffer, kr = mi && mi.isDate, Ds = mi && mi.isMap, $a = mi && mi.isRegExp, Qn = mi && mi.isSet, Pn = mi && mi.isTypedArray;
    function gr(ce, st, ze) {
      switch (ze.length) {
        case 0:
          return ce.call(st);
        case 1:
          return ce.call(st, ze[0]);
        case 2:
          return ce.call(st, ze[0], ze[1]);
        case 3:
          return ce.call(st, ze[0], ze[1], ze[2]);
      }
      return ce.apply(st, ze);
    }
    function bi(ce, st, ze, p1) {
      for (var $1 = -1, J1 = ce == null ? 0 : ce.length; ++$1 < J1; ) {
        var un = ce[$1];
        st(p1, un, ze(un), ce);
      }
      return p1;
    }
    function Er(ce, st) {
      for (var ze = -1, p1 = ce == null ? 0 : ce.length; ++ze < p1 && st(ce[ze], ze, ce) !== !1; )
        ;
      return ce;
    }
    function Ci(ce, st) {
      for (var ze = ce == null ? 0 : ce.length; ze-- && st(ce[ze], ze, ce) !== !1; )
        ;
      return ce;
    }
    function ei(ce, st) {
      for (var ze = -1, p1 = ce == null ? 0 : ce.length; ++ze < p1; )
        if (!st(ce[ze], ze, ce))
          return !1;
      return !0;
    }
    function $r(ce, st) {
      for (var ze = -1, p1 = ce == null ? 0 : ce.length, $1 = 0, J1 = []; ++ze < p1; ) {
        var un = ce[ze];
        st(un, ze, ce) && (J1[$1++] = un);
      }
      return J1;
    }
    function Ln(ce, st) {
      var ze = ce == null ? 0 : ce.length;
      return !!ze && on(ce, st, 0) > -1;
    }
    function Tn(ce, st, ze) {
      for (var p1 = -1, $1 = ce == null ? 0 : ce.length; ++p1 < $1; )
        if (ze(st, ce[p1]))
          return !0;
      return !1;
    }
    function q1(ce, st) {
      for (var ze = -1, p1 = ce == null ? 0 : ce.length, $1 = Array(p1); ++ze < p1; )
        $1[ze] = st(ce[ze], ze, ce);
      return $1;
    }
    function br(ce, st) {
      for (var ze = -1, p1 = st.length, $1 = ce.length; ++ze < p1; )
        ce[$1 + ze] = st[ze];
      return ce;
    }
    function Un(ce, st, ze, p1) {
      var $1 = -1, J1 = ce == null ? 0 : ce.length;
      for (p1 && J1 && (ze = ce[++$1]); ++$1 < J1; )
        ze = st(ze, ce[$1], $1, ce);
      return ze;
    }
    function yi(ce, st, ze, p1) {
      var $1 = ce == null ? 0 : ce.length;
      for (p1 && $1 && (ze = ce[--$1]); $1--; )
        ze = st(ze, ce[$1], $1, ce);
      return ze;
    }
    function zn(ce, st) {
      for (var ze = -1, p1 = ce == null ? 0 : ce.length; ++ze < p1; )
        if (st(ce[ze], ze, ce))
          return !0;
      return !1;
    }
    var pn = An("length");
    function sr(ce) {
      return ce.split("");
    }
    function wi(ce) {
      return ce.match(vi) || [];
    }
    function Bn(ce, st, ze) {
      var p1;
      return ze(ce, function($1, J1, un) {
        if (st($1, J1, un))
          return p1 = J1, !1;
      }), p1;
    }
    function qr(ce, st, ze, p1) {
      for (var $1 = ce.length, J1 = ze + (p1 ? 1 : -1); p1 ? J1-- : ++J1 < $1; )
        if (st(ce[J1], J1, ce))
          return J1;
      return -1;
    }
    function on(ce, st, ze) {
      return st === st ? Fa(ce, st, ze) : qr(ce, ri, ze);
    }
    function ti(ce, st, ze, p1) {
      for (var $1 = ze - 1, J1 = ce.length; ++$1 < J1; )
        if (p1(ce[$1], st))
          return $1;
      return -1;
    }
    function ri(ce) {
      return ce !== ce;
    }
    function _n(ce, st) {
      var ze = ce == null ? 0 : ce.length;
      return ze ? Rn(ce, st) / ze : xn;
    }
    function An(ce) {
      return function(st) {
        return st == null ? a : st[ce];
      };
    }
    function Hn(ce) {
      return function(st) {
        return ce == null ? a : ce[st];
      };
    }
    function ni(ce, st, ze, p1, $1) {
      return $1(ce, function(J1, un, vr) {
        ze = p1 ? (p1 = !1, J1) : st(ze, J1, un, vr);
      }), ze;
    }
    function ii(ce, st) {
      var ze = ce.length;
      for (ce.sort(st); ze--; )
        ce[ze] = ce[ze].value;
      return ce;
    }
    function Rn(ce, st) {
      for (var ze, p1 = -1, $1 = ce.length; ++p1 < $1; ) {
        var J1 = st(ce[p1]);
        J1 !== a && (ze = ze === a ? J1 : ze + J1);
      }
      return ze;
    }
    function Gn(ce, st) {
      for (var ze = -1, p1 = Array(ce); ++ze < ce; )
        p1[ze] = st(ze);
      return p1;
    }
    function gn(ce, st) {
      return q1(st, function(ze) {
        return [ze, ce[ze]];
      });
    }
    function Ir(ce) {
      return ce && ce.slice(0, us(ce) + 1).replace(Xe, "");
    }
    function cr(ce) {
      return function(st) {
        return ce(st);
      };
    }
    function vn(ce, st) {
      return q1(st, function(ze) {
        return ce[ze];
      });
    }
    function an(ce, st) {
      return ce.has(st);
    }
    function Tr(ce, st) {
      for (var ze = -1, p1 = ce.length; ++ze < p1 && on(st, ce[ze], 0) > -1; )
        ;
      return ze;
    }
    function Wr(ce, st) {
      for (var ze = ce.length; ze-- && on(st, ce[ze], 0) > -1; )
        ;
      return ze;
    }
    function qn(ce, st) {
      for (var ze = ce.length, p1 = 0; ze--; )
        ce[ze] === st && ++p1;
      return p1;
    }
    var Ei = Hn(r1), si = Hn(o1);
    function xi(ce) {
      return "\\" + Ut[ce];
    }
    function oi(ce, st) {
      return ce == null ? a : ce[st];
    }
    function jr(ce) {
      return e1.test(ce);
    }
    function ln(ce) {
      return t1.test(ce);
    }
    function Zi(ce) {
      for (var st, ze = []; !(st = ce.next()).done; )
        ze.push(st.value);
      return ze;
    }
    function ar(ce) {
      var st = -1, ze = Array(ce.size);
      return ce.forEach(function(p1, $1) {
        ze[++st] = [$1, p1];
      }), ze;
    }
    function Wn(ce, st) {
      return function(ze) {
        return ce(st(ze));
      };
    }
    function j2(ce, st) {
      for (var ze = -1, p1 = ce.length, $1 = 0, J1 = []; ++ze < p1; ) {
        var un = ce[ze];
        (un === st || un === U) && (ce[ze] = U, J1[$1++] = ze);
      }
      return J1;
    }
    function a1(ce) {
      var st = -1, ze = Array(ce.size);
      return ce.forEach(function(p1) {
        ze[++st] = p1;
      }), ze;
    }
    function c3(ce) {
      var st = -1, ze = Array(ce.size);
      return ce.forEach(function(p1) {
        ze[++st] = [p1, p1];
      }), ze;
    }
    function Fa(ce, st, ze) {
      for (var p1 = ze - 1, $1 = ce.length; ++p1 < $1; )
        if (ce[p1] === st)
          return p1;
      return -1;
    }
    function na(ce, st, ze) {
      for (var p1 = ze + 1; p1--; )
        if (ce[p1] === st)
          return p1;
      return p1;
    }
    function j1(ce) {
      return jr(ce) ? Ms(ce) : pn(ce);
    }
    function On(ce) {
      return jr(ce) ? Pa(ce) : sr(ce);
    }
    function us(ce) {
      for (var st = ce.length; st-- && Je.test(ce.charAt(st)); )
        ;
      return st;
    }
    var V2 = Hn(h1);
    function Ms(ce) {
      for (var st = At.lastIndex = 0; At.test(ce); )
        ++st;
      return st;
    }
    function Pa(ce) {
      return ce.match(At) || [];
    }
    function Io(ce) {
      return ce.match(Dt) || [];
    }
    var Ui = function ce(st) {
      st = st == null ? sn : T2.defaults(sn.Object(), st, T2.pick(sn, Xt));
      var ze = st.Array, p1 = st.Date, $1 = st.Error, J1 = st.Function, un = st.Math, vr = st.Object, _2 = st.RegExp, $s = st.String, kn = st.TypeError, h2 = ze.prototype, cs = J1.prototype, zi = vr.prototype, Fs = st["__core-js_shared__"], d2 = cs.toString, Z1 = zi.hasOwnProperty, ai = 0, Qi = function() {
        var i = /[^.]+$/.exec(Fs && Fs.keys && Fs.keys.IE_PROTO || "");
        return i ? "Symbol(src)_1." + i : "";
      }(), Bi = zi.toString, No = d2.call(vr), f3 = sn._, ia = _2(
        "^" + d2.call(Z1).replace(Ke, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
      ), Y2 = Oi ? st.Buffer : a, In = st.Symbol, Ps = st.Uint8Array, Us = Y2 ? Y2.allocUnsafe : a, fs = Wn(vr.getPrototypeOf, vr), hs = vr.create, zs = zi.propertyIsEnumerable, ki = h2.splice, Bs = In ? In.isConcatSpreadable : a, p2 = In ? In.iterator : a, Fr = In ? In.toStringTag : a, mn = function() {
        try {
          var i = zr(vr, "defineProperty");
          return i({}, "", {}), i;
        } catch {
        }
      }(), Nn = st.clearTimeout !== sn.clearTimeout && st.clearTimeout, Si = p1 && p1.now !== sn.Date.now && p1.now, O1 = st.setTimeout !== sn.setTimeout && st.setTimeout, ds = un.ceil, A2 = un.floor, oo = vr.getOwnPropertySymbols, Hs = Y2 ? Y2.isBuffer : a, g2 = st.isFinite, K2 = h2.join, ao = Wn(vr.keys, vr), Xr = un.max, Jr = un.min, Ua = p1.now, ps = st.parseInt, v2 = un.random, gs = h2.reverse, R2 = zr(st, "DataView"), m2 = zr(st, "Map"), lo = zr(st, "Promise"), O2 = zr(st, "Set"), Li = zr(st, "WeakMap"), uo = zr(vr, "create"), e2 = Li && new Li(), Hi = {}, za = Hr(R2), bn = Hr(m2), k2 = Hr(lo), h3 = Hr(O2), co = Hr(Li), Do = In ? In.prototype : a, Cr = Do ? Do.valueOf : a, Pr = Do ? Do.toString : a;
      function B(i) {
        if (Xn(i) && !X1(i) && !(i instanceof H1)) {
          if (i instanceof qi)
            return i;
          if (Z1.call(i, "__wrapped__"))
            return en(i);
        }
        return new qi(i);
      }
      var lr = function() {
        function i() {
        }
        return function(c) {
          if (!Fn(c))
            return {};
          if (hs)
            return hs(c);
          i.prototype = c;
          var E = new i();
          return i.prototype = a, E;
        };
      }();
      function Gi() {
      }
      function qi(i, c) {
        this.__wrapped__ = i, this.__actions__ = [], this.__chain__ = !!c, this.__index__ = 0, this.__values__ = a;
      }
      B.templateSettings = {
        escape: Ne,
        evaluate: $e,
        interpolate: Pe,
        variable: "",
        imports: {
          _: B
        }
      }, B.prototype = Gi.prototype, B.prototype.constructor = B, qi.prototype = lr(Gi.prototype), qi.prototype.constructor = qi;
      function H1(i) {
        this.__wrapped__ = i, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = !1, this.__iteratees__ = [], this.__takeCount__ = nn, this.__views__ = [];
      }
      function sa() {
        var i = new H1(this.__wrapped__);
        return i.__actions__ = Vn(this.__actions__), i.__dir__ = this.__dir__, i.__filtered__ = this.__filtered__, i.__iteratees__ = Vn(this.__iteratees__), i.__takeCount__ = this.__takeCount__, i.__views__ = Vn(this.__views__), i;
      }
      function Mo() {
        if (this.__filtered__) {
          var i = new H1(this);
          i.__dir__ = -1, i.__filtered__ = !0;
        } else
          i = this.clone(), i.__dir__ *= -1;
        return i;
      }
      function Ba() {
        var i = this.__wrapped__.value(), c = this.__dir__, E = X1(i), A = c < 0, F = E ? i.length : 0, G = Js(0, F, this.__views__), X = G.start, te = G.end, Se = te - X, ht = A ? te : X - 1, dt = this.__iteratees__, Lt = dt.length, d1 = 0, A1 = Jr(Se, this.__takeCount__);
        if (!E || !A && F == Se && A1 == Se)
          return ya(i, this.__actions__);
        var P1 = [];
        e:
          for (; Se-- && d1 < A1; ) {
            ht += c;
            for (var ir = -1, U1 = i[ht]; ++ir < Lt; ) {
              var ur = dt[ir], fr = ur.iteratee, Ls = ur.type, z2 = fr(U1);
              if (Ls == Yt)
                U1 = z2;
              else if (!z2) {
                if (Ls == l1)
                  continue e;
                break e;
              }
            }
            P1[d1++] = U1;
          }
        return P1;
      }
      H1.prototype = lr(Gi.prototype), H1.prototype.constructor = H1;
      function b2(i) {
        var c = -1, E = i == null ? 0 : i.length;
        for (this.clear(); ++c < E; ) {
          var A = i[c];
          this.set(A[0], A[1]);
        }
      }
      function Ha() {
        this.__data__ = uo ? uo(null) : {}, this.size = 0;
      }
      function oa(i) {
        var c = this.has(i) && delete this.__data__[i];
        return this.size -= c ? 1 : 0, c;
      }
      function d3(i) {
        var c = this.__data__;
        if (uo) {
          var E = c[i];
          return E === P ? a : E;
        }
        return Z1.call(c, i) ? c[i] : a;
      }
      function aa(i) {
        var c = this.__data__;
        return uo ? c[i] !== a : Z1.call(c, i);
      }
      function $o(i, c) {
        var E = this.__data__;
        return this.size += this.has(i) ? 0 : 1, E[i] = uo && c === a ? P : c, this;
      }
      b2.prototype.clear = Ha, b2.prototype.delete = oa, b2.prototype.get = d3, b2.prototype.has = aa, b2.prototype.set = $o;
      function t2(i) {
        var c = -1, E = i == null ? 0 : i.length;
        for (this.clear(); ++c < E; ) {
          var A = i[c];
          this.set(A[0], A[1]);
        }
      }
      function la() {
        this.__data__ = [], this.size = 0;
      }
      function C2(i) {
        var c = this.__data__, E = n2(c, i);
        if (E < 0)
          return !1;
        var A = c.length - 1;
        return E == A ? c.pop() : ki.call(c, E, 1), --this.size, !0;
      }
      function ua(i) {
        var c = this.__data__, E = n2(c, i);
        return E < 0 ? a : c[E][1];
      }
      function fo(i) {
        return n2(this.__data__, i) > -1;
      }
      function Dn(i, c) {
        var E = this.__data__, A = n2(E, i);
        return A < 0 ? (++this.size, E.push([i, c])) : E[A][1] = c, this;
      }
      t2.prototype.clear = la, t2.prototype.delete = C2, t2.prototype.get = ua, t2.prototype.has = fo, t2.prototype.set = Dn;
      function dr(i) {
        var c = -1, E = i == null ? 0 : i.length;
        for (this.clear(); ++c < E; ) {
          var A = i[c];
          this.set(A[0], A[1]);
        }
      }
      function I2() {
        this.size = 0, this.__data__ = {
          hash: new b2(),
          map: new (m2 || t2)(),
          string: new b2()
        };
      }
      function Ga(i) {
        var c = Dr(this, i).delete(i);
        return this.size -= c ? 1 : 0, c;
      }
      function ca(i) {
        return Dr(this, i).get(i);
      }
      function Fo(i) {
        return Dr(this, i).has(i);
      }
      function li(i, c) {
        var E = Dr(this, i), A = E.size;
        return E.set(i, c), this.size += E.size == A ? 0 : 1, this;
      }
      dr.prototype.clear = I2, dr.prototype.delete = Ga, dr.prototype.get = ca, dr.prototype.has = Fo, dr.prototype.set = li;
      function G1(i) {
        var c = -1, E = i == null ? 0 : i.length;
        for (this.__data__ = new dr(); ++c < E; )
          this.add(i[c]);
      }
      function Ti(i) {
        return this.__data__.set(i, P), this;
      }
      function r2(i) {
        return this.__data__.has(i);
      }
      G1.prototype.add = G1.prototype.push = Ti, G1.prototype.has = r2;
      function Vr(i) {
        var c = this.__data__ = new t2(i);
        this.size = c.size;
      }
      function ho() {
        this.__data__ = new t2(), this.size = 0;
      }
      function Gs(i) {
        var c = this.__data__, E = c.delete(i);
        return this.size = c.size, E;
      }
      function po(i) {
        return this.__data__.get(i);
      }
      function fa(i) {
        return this.__data__.has(i);
      }
      function vs(i, c) {
        var E = this.__data__;
        if (E instanceof t2) {
          var A = E.__data__;
          if (!m2 || A.length < g - 1)
            return A.push([i, c]), this.size = ++E.size, this;
          E = this.__data__ = new dr(A);
        }
        return E.set(i, c), this.size = E.size, this;
      }
      Vr.prototype.clear = ho, Vr.prototype.delete = Gs, Vr.prototype.get = po, Vr.prototype.has = fa, Vr.prototype.set = vs;
      function X2(i, c) {
        var E = X1(i), A = !E && b3(i), F = !E && !A && i3(i), G = !E && !A && !F && B3(i), X = E || A || F || G, te = X ? Gn(i.length, $s) : [], Se = te.length;
        for (var ht in i)
          (c || Z1.call(i, ht)) && !(X && (ht == "length" || F && (ht == "offset" || ht == "parent") || G && (ht == "buffer" || ht == "byteLength" || ht == "byteOffset") || L(ht, Se))) && te.push(ht);
        return te;
      }
      function Ii(i) {
        var c = i.length;
        return c ? i[Ja(0, c - 1)] : a;
      }
      function ha(i, c) {
        return Qr(Vn(i), ms(c, 0, i.length));
      }
      function J2(i) {
        return Qr(Vn(i));
      }
      function ui(i, c, E) {
        (E !== a && !Eo(i[c], E) || E === a && !(c in i)) && D2(i, c, E);
      }
      function N2(i, c, E) {
        var A = i[c];
        (!(Z1.call(i, c) && Eo(A, E)) || E === a && !(c in i)) && D2(i, c, E);
      }
      function n2(i, c) {
        for (var E = i.length; E--; )
          if (Eo(i[E][0], c))
            return E;
        return -1;
      }
      function Po(i, c, E, A) {
        return y2(i, function(F, G, X) {
          c(A, F, E(F), X);
        }), A;
      }
      function Uo(i, c) {
        return i && Mn(c, Xi(c), i);
      }
      function qa(i, c) {
        return i && Mn(c, ts(c), i);
      }
      function D2(i, c, E) {
        c == "__proto__" && mn ? mn(i, c, {
          configurable: !0,
          enumerable: !0,
          value: E,
          writable: !0
        }) : i[c] = E;
      }
      function zo(i, c) {
        for (var E = -1, A = c.length, F = ze(A), G = i == null; ++E < A; )
          F[E] = G ? a : v5(i, c[E]);
        return F;
      }
      function ms(i, c, E) {
        return i === i && (E !== a && (i = i <= E ? i : E), c !== a && (i = i >= c ? i : c)), i;
      }
      function Ni(i, c, E, A, F, G) {
        var X, te = c & j, Se = c & K, ht = c & Z;
        if (E && (X = F ? E(i, A, F, G) : E(i)), X !== a)
          return X;
        if (!Fn(i))
          return i;
        var dt = X1(i);
        if (dt) {
          if (X = t(i), !te)
            return Vn(i, X);
        } else {
          var Lt = Zr(i), d1 = Lt == ye || Lt == Ae;
          if (i3(i))
            return nr(i, te);
          if (Lt == pe || Lt == Sr || d1 && !F) {
            if (X = Se || d1 ? {} : u(i), !te)
              return Se ? F1(i, qa(X, i)) : _r(i, Uo(X, i));
          } else {
            if (!xt[Lt])
              return F ? i : {};
            X = o(i, Lt, te);
          }
        }
        G || (G = new Vr());
        var A1 = G.get(i);
        if (A1)
          return A1;
        G.set(i, X), ju(i) ? i.forEach(function(U1) {
          X.add(Ni(U1, c, E, U1, i, G));
        }) : qu(i) && i.forEach(function(U1, ur) {
          X.set(ur, Ni(U1, c, E, ur, i, G));
        });
        var P1 = ht ? Se ? x1 : L1 : Se ? ts : Xi, ir = dt ? a : P1(i);
        return Er(ir || i, function(U1, ur) {
          ir && (ur = U1, U1 = i[ur]), N2(X, ur, Ni(U1, c, E, ur, i, G));
        }), X;
      }
      function Bo(i) {
        var c = Xi(i);
        return function(E) {
          return da(E, i, c);
        };
      }
      function da(i, c, E) {
        var A = E.length;
        if (i == null)
          return !A;
        for (i = vr(i); A--; ) {
          var F = E[A], G = c[F], X = i[F];
          if (X === a && !(F in i) || !G(X))
            return !1;
        }
        return !0;
      }
      function Wa(i, c, E) {
        if (typeof i != "function")
          throw new kn(x);
        return fn(function() {
          i.apply(a, E);
        }, c);
      }
      function go(i, c, E, A) {
        var F = -1, G = Ln, X = !0, te = i.length, Se = [], ht = c.length;
        if (!te)
          return Se;
        E && (c = q1(c, cr(E))), A ? (G = Tn, X = !1) : c.length >= g && (G = an, X = !1, c = new G1(c));
        e:
          for (; ++F < te; ) {
            var dt = i[F], Lt = E == null ? dt : E(dt);
            if (dt = A || dt !== 0 ? dt : 0, X && Lt === Lt) {
              for (var d1 = ht; d1--; )
                if (c[d1] === Lt)
                  continue e;
              Se.push(dt);
            } else
              G(c, Lt, A) || Se.push(dt);
          }
        return Se;
      }
      var y2 = Jo(yr), bs = Jo(qs, !0);
      function Ho(i, c) {
        var E = !0;
        return y2(i, function(A, F, G) {
          return E = !!c(A, F, G), E;
        }), E;
      }
      function Z2(i, c, E) {
        for (var A = -1, F = i.length; ++A < F; ) {
          var G = i[A], X = c(G);
          if (X != null && (te === a ? X === X && !Ss(X) : E(X, te)))
            var te = X, Se = G;
        }
        return Se;
      }
      function ja(i, c, E, A) {
        var F = i.length;
        for (E = tr(E), E < 0 && (E = -E > F ? 0 : F + E), A = A === a || A > F ? F : tr(A), A < 0 && (A += F), A = E > A ? 0 : Yu(A); E < A; )
          i[E++] = c;
        return i;
      }
      function Cn(i, c) {
        var E = [];
        return y2(i, function(A, F, G) {
          c(A, F, G) && E.push(A);
        }), E;
      }
      function yn(i, c, E, A, F) {
        var G = -1, X = i.length;
        for (E || (E = w), F || (F = []); ++G < X; ) {
          var te = i[G];
          c > 0 && E(te) ? c > 1 ? yn(te, c - 1, E, A, F) : br(F, te) : A || (F[F.length] = te);
        }
        return F;
      }
      var pa = r(), ga = r(!0);
      function yr(i, c) {
        return i && pa(i, c, Xi);
      }
      function qs(i, c) {
        return i && ga(i, c, Xi);
      }
      function Cs(i, c) {
        return $r(c, function(E) {
          return Ta(i[E]);
        });
      }
      function M2(i, c) {
        c = U2(c, i);
        for (var E = 0, A = c.length; i != null && E < A; )
          i = i[Mr(c[E++])];
        return E && E == A ? i : a;
      }
      function Go(i, c, E) {
        var A = c(i);
        return X1(i) ? A : br(A, E(i));
      }
      function Nr(i) {
        return i == null ? i === a ? Ze : ae : Fr && Fr in vr(i) ? z1(i) : Ht(i);
      }
      function i2(i, c) {
        return i > c;
      }
      function Ws(i, c) {
        return i != null && Z1.call(i, c);
      }
      function js(i, c) {
        return i != null && c in vr(i);
      }
      function Vs(i, c, E) {
        return i >= Jr(c, E) && i < Xr(c, E);
      }
      function Q2(i, c, E) {
        for (var A = E ? Tn : Ln, F = i[0].length, G = i.length, X = G, te = ze(G), Se = 1 / 0, ht = []; X--; ) {
          var dt = i[X];
          X && c && (dt = q1(dt, cr(c))), Se = Jr(dt.length, Se), te[X] = !E && (c || F >= 120 && dt.length >= 120) ? new G1(X && dt) : a;
        }
        dt = i[0];
        var Lt = -1, d1 = te[0];
        e:
          for (; ++Lt < F && ht.length < Se; ) {
            var A1 = dt[Lt], P1 = c ? c(A1) : A1;
            if (A1 = E || A1 !== 0 ? A1 : 0, !(d1 ? an(d1, P1) : A(ht, P1, E))) {
              for (X = G; --X; ) {
                var ir = te[X];
                if (!(ir ? an(ir, P1) : A(i[X], P1, E)))
                  continue e;
              }
              d1 && d1.push(P1), ht.push(A1);
            }
          }
        return ht;
      }
      function Ys(i, c, E, A) {
        return yr(i, function(F, G, X) {
          c(A, E(F), G, X);
        }), A;
      }
      function s2(i, c, E) {
        c = U2(c, i), i = _1(i, c);
        var A = i == null ? i : i[Mr(Qs(c))];
        return A == null ? a : gr(A, i, E);
      }
      function ys(i) {
        return Xn(i) && Nr(i) == Sr;
      }
      function vo(i) {
        return Xn(i) && Nr(i) == We;
      }
      function p3(i) {
        return Xn(i) && Nr(i) == Zn;
      }
      function o2(i, c, E, A, F) {
        return i === c ? !0 : i == null || c == null || !Xn(i) && !Xn(c) ? i !== i && c !== c : va(i, c, E, A, o2, F);
      }
      function va(i, c, E, A, F, G) {
        var X = X1(i), te = X1(c), Se = X ? dn : Zr(i), ht = te ? dn : Zr(c);
        Se = Se == Sr ? pe : Se, ht = ht == Sr ? pe : ht;
        var dt = Se == pe, Lt = ht == pe, d1 = Se == ht;
        if (d1 && i3(i)) {
          if (!i3(c))
            return !1;
          X = !0, dt = !1;
        }
        if (d1 && !dt)
          return G || (G = new Vr()), X || B3(i) ? g1(i, c, E, A, F, G) : y1(i, c, Se, E, A, F, G);
        if (!(E & re)) {
          var A1 = dt && Z1.call(i, "__wrapped__"), P1 = Lt && Z1.call(c, "__wrapped__");
          if (A1 || P1) {
            var ir = A1 ? i.value() : i, U1 = P1 ? c.value() : c;
            return G || (G = new Vr()), F(ir, U1, E, A, G);
          }
        }
        return d1 ? (G || (G = new Vr()), Zt(i, c, E, A, F, G)) : !1;
      }
      function Va(i) {
        return Xn(i) && Zr(i) == de;
      }
      function mo(i, c, E, A) {
        var F = E.length, G = F, X = !A;
        if (i == null)
          return !G;
        for (i = vr(i); F--; ) {
          var te = E[F];
          if (X && te[2] ? te[1] !== i[te[0]] : !(te[0] in i))
            return !1;
        }
        for (; ++F < G; ) {
          te = E[F];
          var Se = te[0], ht = i[Se], dt = te[1];
          if (X && te[2]) {
            if (ht === a && !(Se in i))
              return !1;
          } else {
            var Lt = new Vr();
            if (A)
              var d1 = A(ht, dt, Se, i, c, Lt);
            if (!(d1 === a ? o2(dt, ht, re | V, A, Lt) : d1))
              return !1;
          }
        }
        return !0;
      }
      function bo(i) {
        if (!Fn(i) || Y(i))
          return !1;
        var c = Ta(i) ? ia : Is;
        return c.test(Hr(i));
      }
      function S(i) {
        return Xn(i) && Nr(i) == Os;
      }
      function $2(i) {
        return Xn(i) && Zr(i) == Ue;
      }
      function v(i) {
        return Xn(i) && Rl(i.length) && !!Et[Nr(i)];
      }
      function Ya(i) {
        return typeof i == "function" ? i : i == null ? rs : typeof i == "object" ? X1(i) ? Xa(i[0], i[1]) : Co(i) : s4(i);
      }
      function ft(i) {
        if (!Q(i))
          return ao(i);
        var c = [];
        for (var E in vr(i))
          Z1.call(i, E) && E != "constructor" && c.push(E);
        return c;
      }
      function Ka(i) {
        if (!Fn(i))
          return Qt(i);
        var c = Q(i), E = [];
        for (var A in i)
          A == "constructor" && (c || !Z1.call(i, A)) || E.push(A);
        return E;
      }
      function ci(i, c) {
        return i < c;
      }
      function wn(i, c) {
        var E = -1, A = es(i) ? ze(i.length) : [];
        return y2(i, function(F, G, X) {
          A[++E] = c(F, G, X);
        }), A;
      }
      function Co(i) {
        var c = Ar(i);
        return c.length == 1 && c[0][2] ? ct(c[0][0], c[0][1]) : function(E) {
          return E === i || mo(E, i, c);
        };
      }
      function Xa(i, c) {
        return R(i) && et(c) ? ct(Mr(i), c) : function(E) {
          var A = v5(E, i);
          return A === a && A === c ? m5(E, i) : o2(c, A, re | V);
        };
      }
      function Q1(i, c, E, A, F) {
        i !== c && pa(c, function(G, X) {
          if (F || (F = new Vr()), Fn(G))
            M3(i, c, X, E, Q1, A, F);
          else {
            var te = A ? A(W1(i, X), G, X + "", i, c, F) : a;
            te === a && (te = G), ui(i, X, te);
          }
        }, ts);
      }
      function M3(i, c, E, A, F, G, X) {
        var te = W1(i, E), Se = W1(c, E), ht = X.get(Se);
        if (ht) {
          ui(i, E, ht);
          return;
        }
        var dt = G ? G(te, Se, E + "", i, c, X) : a, Lt = dt === a;
        if (Lt) {
          var d1 = X1(Se), A1 = !d1 && i3(Se), P1 = !d1 && !A1 && B3(Se);
          dt = Se, d1 || A1 || P1 ? X1(te) ? dt = te : hi(te) ? dt = Vn(te) : A1 ? (Lt = !1, dt = nr(Se, !0)) : P1 ? (Lt = !1, dt = wa(Se, !0)) : dt = [] : ol(Se) || b3(Se) ? (dt = te, b3(te) ? dt = Ku(te) : (!Fn(te) || Ta(te)) && (dt = u(Se))) : Lt = !1;
        }
        Lt && (X.set(Se, dt), F(dt, Se, A, G, X), X.delete(Se)), ui(i, E, dt);
      }
      function $3(i, c) {
        var E = i.length;
        if (!!E)
          return c += c < 0 ? E : 0, L(c, E) ? i[c] : a;
      }
      function ma(i, c, E) {
        c.length ? c = q1(c, function(G) {
          return X1(G) ? function(X) {
            return M2(X, G.length === 1 ? G[0] : G);
          } : G;
        }) : c = [rs];
        var A = -1;
        c = q1(c, cr(lt()));
        var F = wn(i, function(G, X, te) {
          var Se = q1(c, function(ht) {
            return ht(G);
          });
          return { criteria: Se, index: ++A, value: G };
        });
        return ii(F, function(G, X) {
          return jn(G, X, E);
        });
      }
      function _i(i, c) {
        return yo(i, c, function(E, A) {
          return m5(i, A);
        });
      }
      function yo(i, c, E) {
        for (var A = -1, F = c.length, G = {}; ++A < F; ) {
          var X = c[A], te = M2(i, X);
          E(te, X) && Wi(G, U2(X, i), te);
        }
        return G;
      }
      function w2(i) {
        return function(c) {
          return M2(c, i);
        };
      }
      function g3(i, c, E, A) {
        var F = A ? ti : on, G = -1, X = c.length, te = i;
        for (i === c && (c = Vn(c)), E && (te = q1(i, cr(E))); ++G < X; )
          for (var Se = 0, ht = c[G], dt = E ? E(ht) : ht; (Se = F(te, dt, Se, A)) > -1; )
            te !== i && ki.call(te, Se, 1), ki.call(i, Se, 1);
        return i;
      }
      function F3(i, c) {
        for (var E = i ? c.length : 0, A = E - 1; E--; ) {
          var F = c[E];
          if (E == A || F !== G) {
            var G = F;
            L(F) ? ki.call(i, F, 1) : Es(i, F);
          }
        }
        return i;
      }
      function Ja(i, c) {
        return i + A2(v2() * (c - i + 1));
      }
      function P3(i, c, E, A) {
        for (var F = -1, G = Xr(ds((c - i) / (E || 1)), 0), X = ze(G); G--; )
          X[A ? G : ++F] = i, i += E;
        return X;
      }
      function Za(i, c) {
        var E = "";
        if (!i || c < 1 || c > wr)
          return E;
        do
          c % 2 && (E += i), c = A2(c / 2), c && (i += i);
        while (c);
        return E;
      }
      function K1(i, c) {
        return Br(f1(i, c, rs), i + "");
      }
      function qo(i) {
        return Ii(H3(i));
      }
      function Wo(i, c) {
        var E = H3(i);
        return Qr(E, ms(c, 0, E.length));
      }
      function Wi(i, c, E, A) {
        if (!Fn(i))
          return i;
        c = U2(c, i);
        for (var F = -1, G = c.length, X = G - 1, te = i; te != null && ++F < G; ) {
          var Se = Mr(c[F]), ht = E;
          if (Se === "__proto__" || Se === "constructor" || Se === "prototype")
            return i;
          if (F != X) {
            var dt = te[Se];
            ht = A ? A(dt, Se, te) : a, ht === a && (ht = Fn(dt) ? dt : L(c[F + 1]) ? [] : {});
          }
          N2(te, Se, ht), te = te[Se];
        }
        return i;
      }
      var rr = e2 ? function(i, c) {
        return e2.set(i, c), i;
      } : rs, Qa = mn ? function(i, c) {
        return mn(i, "toString", {
          configurable: !0,
          enumerable: !1,
          value: C5(c),
          writable: !0
        });
      } : rs;
      function ba(i) {
        return Qr(H3(i));
      }
      function cn(i, c, E) {
        var A = -1, F = i.length;
        c < 0 && (c = -c > F ? 0 : F + c), E = E > F ? F : E, E < 0 && (E += F), F = c > E ? 0 : E - c >>> 0, c >>>= 0;
        for (var G = ze(F); ++A < F; )
          G[A] = i[A + c];
        return G;
      }
      function Ks(i, c) {
        var E;
        return y2(i, function(A, F, G) {
          return E = c(A, F, G), !E;
        }), !!E;
      }
      function F2(i, c, E) {
        var A = 0, F = i == null ? A : i.length;
        if (typeof c == "number" && c === c && F <= c2) {
          for (; A < F; ) {
            var G = A + F >>> 1, X = i[G];
            X !== null && !Ss(X) && (E ? X <= c : X < c) ? A = G + 1 : F = G;
          }
          return F;
        }
        return ws(i, c, rs, E);
      }
      function ws(i, c, E, A) {
        var F = 0, G = i == null ? 0 : i.length;
        if (G === 0)
          return 0;
        c = E(c);
        for (var X = c !== c, te = c === null, Se = Ss(c), ht = c === a; F < G; ) {
          var dt = A2((F + G) / 2), Lt = E(i[dt]), d1 = Lt !== a, A1 = Lt === null, P1 = Lt === Lt, ir = Ss(Lt);
          if (X)
            var U1 = A || P1;
          else
            ht ? U1 = P1 && (A || d1) : te ? U1 = P1 && d1 && (A || !A1) : Se ? U1 = P1 && d1 && !A1 && (A || !ir) : A1 || ir ? U1 = !1 : U1 = A ? Lt <= c : Lt < c;
          U1 ? F = dt + 1 : G = dt;
        }
        return Jr(G, Mi);
      }
      function v3(i, c) {
        for (var E = -1, A = i.length, F = 0, G = []; ++E < A; ) {
          var X = i[E], te = c ? c(X) : X;
          if (!E || !Eo(te, Se)) {
            var Se = te;
            G[F++] = X === 0 ? 0 : X;
          }
        }
        return G;
      }
      function $(i) {
        return typeof i == "number" ? i : Ss(i) ? xn : +i;
      }
      function Yr(i) {
        if (typeof i == "string")
          return i;
        if (X1(i))
          return q1(i, Yr) + "";
        if (Ss(i))
          return Pr ? Pr.call(i) : "";
        var c = i + "";
        return c == "0" && 1 / i == -pr ? "-0" : c;
      }
      function P2(i, c, E) {
        var A = -1, F = Ln, G = i.length, X = !0, te = [], Se = te;
        if (E)
          X = !1, F = Tn;
        else if (G >= g) {
          var ht = c ? null : nt(i);
          if (ht)
            return a1(ht);
          X = !1, F = an, Se = new G1();
        } else
          Se = c ? [] : te;
        e:
          for (; ++A < G; ) {
            var dt = i[A], Lt = c ? c(dt) : dt;
            if (dt = E || dt !== 0 ? dt : 0, X && Lt === Lt) {
              for (var d1 = Se.length; d1--; )
                if (Se[d1] === Lt)
                  continue e;
              c && Se.push(Lt), te.push(dt);
            } else
              F(Se, Lt, E) || (Se !== te && Se.push(Lt), te.push(dt));
          }
        return te;
      }
      function Es(i, c) {
        return c = U2(c, i), i = _1(i, c), i == null || delete i[Mr(Qs(c))];
      }
      function Ca(i, c, E, A) {
        return Wi(i, c, E(M2(i, c)), A);
      }
      function jo(i, c, E, A) {
        for (var F = i.length, G = A ? F : -1; (A ? G-- : ++G < F) && c(i[G], G, i); )
          ;
        return E ? cn(i, A ? 0 : G, A ? G + 1 : F) : cn(i, A ? G + 1 : 0, A ? F : G);
      }
      function ya(i, c) {
        var E = i;
        return E instanceof H1 && (E = E.value()), Un(c, function(A, F) {
          return F.func.apply(F.thisArg, br([A], F.args));
        }, E);
      }
      function e3(i, c, E) {
        var A = i.length;
        if (A < 2)
          return A ? P2(i[0]) : [];
        for (var F = -1, G = ze(A); ++F < A; )
          for (var X = i[F], te = -1; ++te < A; )
            te != F && (G[F] = go(G[F] || X, i[te], c, E));
        return P2(yn(G, 1), c, E);
      }
      function Vo(i, c, E) {
        for (var A = -1, F = i.length, G = c.length, X = {}; ++A < F; ) {
          var te = A < G ? c[A] : a;
          E(X, i[A], te);
        }
        return X;
      }
      function t3(i) {
        return hi(i) ? i : [];
      }
      function m3(i) {
        return typeof i == "function" ? i : rs;
      }
      function U2(i, c) {
        return X1(i) ? i : R(i, c) ? [i] : Yi(Rr(i));
      }
      var Yo = K1;
      function xs(i, c, E) {
        var A = i.length;
        return E = E === a ? A : E, !c && E >= A ? i : cn(i, c, E);
      }
      var er = Nn || function(i) {
        return sn.clearTimeout(i);
      };
      function nr(i, c) {
        if (c)
          return i.slice();
        var E = i.length, A = Us ? Us(E) : new i.constructor(E);
        return i.copy(A), A;
      }
      function En(i) {
        var c = new i.constructor(i.byteLength);
        return new Ps(c).set(new Ps(i)), c;
      }
      function Ko(i, c) {
        var E = c ? En(i.buffer) : i.buffer;
        return new i.constructor(E, i.byteOffset, i.byteLength);
      }
      function Xs(i) {
        var c = new i.constructor(i.source, ks.exec(i));
        return c.lastIndex = i.lastIndex, c;
      }
      function Xo(i) {
        return Cr ? vr(Cr.call(i)) : {};
      }
      function wa(i, c) {
        var E = c ? En(i.buffer) : i.buffer;
        return new i.constructor(E, i.byteOffset, i.length);
      }
      function U3(i, c) {
        if (i !== c) {
          var E = i !== a, A = i === null, F = i === i, G = Ss(i), X = c !== a, te = c === null, Se = c === c, ht = Ss(c);
          if (!te && !ht && !G && i > c || G && X && Se && !te && !ht || A && X && Se || !E && Se || !F)
            return 1;
          if (!A && !G && !ht && i < c || ht && E && F && !A && !G || te && E && F || !X && F || !Se)
            return -1;
        }
        return 0;
      }
      function jn(i, c, E) {
        for (var A = -1, F = i.criteria, G = c.criteria, X = F.length, te = E.length; ++A < X; ) {
          var Se = U3(F[A], G[A]);
          if (Se) {
            if (A >= te)
              return Se;
            var ht = E[A];
            return Se * (ht == "desc" ? -1 : 1);
          }
        }
        return i.index - c.index;
      }
      function Ea(i, c, E, A) {
        for (var F = -1, G = i.length, X = E.length, te = -1, Se = c.length, ht = Xr(G - X, 0), dt = ze(Se + ht), Lt = !A; ++te < Se; )
          dt[te] = c[te];
        for (; ++F < X; )
          (Lt || F < G) && (dt[E[F]] = i[F]);
        for (; ht--; )
          dt[te++] = i[F++];
        return dt;
      }
      function r3(i, c, E, A) {
        for (var F = -1, G = i.length, X = -1, te = E.length, Se = -1, ht = c.length, dt = Xr(G - te, 0), Lt = ze(dt + ht), d1 = !A; ++F < dt; )
          Lt[F] = i[F];
        for (var A1 = F; ++Se < ht; )
          Lt[A1 + Se] = c[Se];
        for (; ++X < te; )
          (d1 || F < G) && (Lt[A1 + E[X]] = i[F++]);
        return Lt;
      }
      function Vn(i, c) {
        var E = -1, A = i.length;
        for (c || (c = ze(A)); ++E < A; )
          c[E] = i[E];
        return c;
      }
      function Mn(i, c, E, A) {
        var F = !E;
        E || (E = {});
        for (var G = -1, X = c.length; ++G < X; ) {
          var te = c[G], Se = A ? A(E[te], i[te], te, E, i) : a;
          Se === a && (Se = i[te]), F ? D2(E, te, Se) : N2(E, te, Se);
        }
        return E;
      }
      function _r(i, c) {
        return Mn(i, N1(i), c);
      }
      function F1(i, c) {
        return Mn(i, ji(i), c);
      }
      function E2(i, c) {
        return function(E, A) {
          var F = X1(E) ? bi : Po, G = c ? c() : {};
          return F(E, i, lt(A, 2), G);
        };
      }
      function Ur(i) {
        return K1(function(c, E) {
          var A = -1, F = E.length, G = F > 1 ? E[F - 1] : a, X = F > 2 ? E[2] : a;
          for (G = i.length > 3 && typeof G == "function" ? (F--, G) : a, X && T(E[0], E[1], X) && (G = F < 3 ? a : G, F = 1), c = vr(c); ++A < F; ) {
            var te = E[A];
            te && i(c, te, A, G);
          }
          return c;
        });
      }
      function Jo(i, c) {
        return function(E, A) {
          if (E == null)
            return E;
          if (!es(E))
            return i(E, A);
          for (var F = E.length, G = c ? F : -1, X = vr(E); (c ? G-- : ++G < F) && A(X[G], G, X) !== !1; )
            ;
          return E;
        };
      }
      function r(i) {
        return function(c, E, A) {
          for (var F = -1, G = vr(c), X = A(c), te = X.length; te--; ) {
            var Se = X[i ? te : ++F];
            if (E(G[Se], Se, G) === !1)
              break;
          }
          return c;
        };
      }
      function p(i, c, E) {
        var A = c & at, F = y(i);
        function G() {
          var X = this && this !== sn && this instanceof G ? F : i;
          return X.apply(A ? E : this, arguments);
        }
        return G;
      }
      function m(i) {
        return function(c) {
          c = Rr(c);
          var E = jr(c) ? On(c) : a, A = E ? E[0] : c.charAt(0), F = E ? xs(E, 1).join("") : c.slice(1);
          return A[i]() + F;
        };
      }
      function d(i) {
        return function(c) {
          return Un(n4(r4(c).replace(gt, "")), i, "");
        };
      }
      function y(i) {
        return function() {
          var c = arguments;
          switch (c.length) {
            case 0:
              return new i();
            case 1:
              return new i(c[0]);
            case 2:
              return new i(c[0], c[1]);
            case 3:
              return new i(c[0], c[1], c[2]);
            case 4:
              return new i(c[0], c[1], c[2], c[3]);
            case 5:
              return new i(c[0], c[1], c[2], c[3], c[4]);
            case 6:
              return new i(c[0], c[1], c[2], c[3], c[4], c[5]);
            case 7:
              return new i(c[0], c[1], c[2], c[3], c[4], c[5], c[6]);
          }
          var E = lr(i.prototype), A = i.apply(E, c);
          return Fn(A) ? A : E;
        };
      }
      function l(i, c, E) {
        var A = y(i);
        function F() {
          for (var G = arguments.length, X = ze(G), te = G, Se = Yn(F); te--; )
            X[te] = arguments[te];
          var ht = G < 3 && X[0] !== Se && X[G - 1] !== Se ? [] : j2(X, Se);
          if (G -= ht.length, G < E)
            return se(
              i,
              c,
              O,
              F.placeholder,
              a,
              X,
              ht,
              a,
              a,
              E - G
            );
          var dt = this && this !== sn && this instanceof F ? A : i;
          return gr(dt, this, X);
        }
        return F;
      }
      function _(i) {
        return function(c, E, A) {
          var F = vr(c);
          if (!es(c)) {
            var G = lt(E, 3);
            c = Xi(c), E = function(te) {
              return G(F[te], te, F);
            };
          }
          var X = i(c, E, A);
          return X > -1 ? F[G ? c[X] : X] : a;
        };
      }
      function h(i) {
        return jt(function(c) {
          var E = c.length, A = E, F = qi.prototype.thru;
          for (i && c.reverse(); A--; ) {
            var G = c[A];
            if (typeof G != "function")
              throw new kn(x);
            if (F && !X && zt(G) == "wrapper")
              var X = new qi([], !0);
          }
          for (A = X ? A : E; ++A < E; ) {
            G = c[A];
            var te = zt(G), Se = te == "wrapper" ? m1(G) : a;
            Se && q(Se[0]) && Se[1] == (M1 | b1 | C1 | B1) && !Se[4].length && Se[9] == 1 ? X = X[zt(Se[0])].apply(X, Se[3]) : X = G.length == 1 && q(G) ? X[te]() : X.thru(G);
          }
          return function() {
            var ht = arguments, dt = ht[0];
            if (X && ht.length == 1 && X1(dt))
              return X.plant(dt).value();
            for (var Lt = 0, d1 = E ? c[Lt].apply(this, ht) : dt; ++Lt < E; )
              d1 = c[Lt].call(this, d1);
            return d1;
          };
        });
      }
      function O(i, c, E, A, F, G, X, te, Se, ht) {
        var dt = c & M1, Lt = c & at, d1 = c & Tt, A1 = c & (b1 | R1), P1 = c & V1, ir = d1 ? a : y(i);
        function U1() {
          for (var ur = arguments.length, fr = ze(ur), Ls = ur; Ls--; )
            fr[Ls] = arguments[Ls];
          if (A1)
            var z2 = Yn(U1), Ts = qn(fr, z2);
          if (A && (fr = Ea(fr, A, F, A1)), G && (fr = r3(fr, G, X, A1)), ur -= Ts, A1 && ur < ht) {
            var di = j2(fr, z2);
            return se(
              i,
              c,
              O,
              U1.placeholder,
              E,
              fr,
              di,
              te,
              Se,
              ht - ur
            );
          }
          var xo = Lt ? E : this, Aa = d1 ? xo[i] : i;
          return ur = fr.length, te ? fr = T1(fr, te) : P1 && ur > 1 && fr.reverse(), dt && Se < ur && (fr.length = Se), this && this !== sn && this instanceof U1 && (Aa = ir || y(Aa)), Aa.apply(xo, fr);
        }
        return U1;
      }
      function D(i, c) {
        return function(E, A) {
          return Ys(E, i, c(A), {});
        };
      }
      function k(i, c) {
        return function(E, A) {
          var F;
          if (E === a && A === a)
            return c;
          if (E !== a && (F = E), A !== a) {
            if (F === a)
              return A;
            typeof E == "string" || typeof A == "string" ? (E = Yr(E), A = Yr(A)) : (E = $(E), A = $(A)), F = i(E, A);
          }
          return F;
        };
      }
      function z(i) {
        return jt(function(c) {
          return c = q1(c, cr(lt())), K1(function(E) {
            var A = this;
            return i(c, function(F) {
              return gr(F, A, E);
            });
          });
        });
      }
      function H(i, c) {
        c = c === a ? " " : Yr(c);
        var E = c.length;
        if (E < 2)
          return E ? Za(c, i) : c;
        var A = Za(c, ds(i / j1(c)));
        return jr(c) ? xs(On(A), 0, i).join("") : A.slice(0, i);
      }
      function ie(i, c, E, A) {
        var F = c & at, G = y(i);
        function X() {
          for (var te = -1, Se = arguments.length, ht = -1, dt = A.length, Lt = ze(dt + Se), d1 = this && this !== sn && this instanceof X ? G : i; ++ht < dt; )
            Lt[ht] = A[ht];
          for (; Se--; )
            Lt[ht++] = arguments[++te];
          return gr(d1, F ? E : this, Lt);
        }
        return X;
      }
      function J(i) {
        return function(c, E, A) {
          return A && typeof A != "number" && T(c, E, A) && (E = A = a), c = _a(c), E === a ? (E = c, c = 0) : E = _a(E), A = A === a ? c < E ? 1 : -1 : _a(A), P3(c, E, A, i);
        };
      }
      function ne(i) {
        return function(c, E) {
          return typeof c == "string" && typeof E == "string" || (c = eo(c), E = eo(E)), i(c, E);
        };
      }
      function se(i, c, E, A, F, G, X, te, Se, ht) {
        var dt = c & b1, Lt = dt ? X : a, d1 = dt ? a : X, A1 = dt ? G : a, P1 = dt ? a : G;
        c |= dt ? C1 : D1, c &= ~(dt ? D1 : C1), c & Wt || (c &= ~(at | Tt));
        var ir = [
          i,
          c,
          F,
          A1,
          Lt,
          P1,
          d1,
          te,
          Se,
          ht
        ], U1 = E.apply(a, ir);
        return q(i) && xr(U1, ir), U1.placeholder = A, a2(U1, i, c);
      }
      function ee(i) {
        var c = un[i];
        return function(E, A) {
          if (E = eo(E), A = A == null ? 0 : Jr(tr(A), 292), A && g2(E)) {
            var F = (Rr(E) + "e").split("e"), G = c(F[0] + "e" + (+F[1] + A));
            return F = (Rr(G) + "e").split("e"), +(F[0] + "e" + (+F[1] - A));
          }
          return c(E);
        };
      }
      var nt = O2 && 1 / a1(new O2([, -0]))[1] == pr ? function(i) {
        return new O2(i);
      } : E5;
      function tt(i) {
        return function(c) {
          var E = Zr(c);
          return E == de ? ar(c) : E == Ue ? c3(c) : gn(c, i(c));
        };
      }
      function rt(i, c, E, A, F, G, X, te) {
        var Se = c & Tt;
        if (!Se && typeof i != "function")
          throw new kn(x);
        var ht = A ? A.length : 0;
        if (ht || (c &= ~(C1 | D1), A = F = a), X = X === a ? X : Xr(tr(X), 0), te = te === a ? te : tr(te), ht -= F ? F.length : 0, c & D1) {
          var dt = A, Lt = F;
          A = F = a;
        }
        var d1 = Se ? a : m1(i), A1 = [
          i,
          c,
          E,
          A,
          F,
          dt,
          Lt,
          G,
          X,
          te
        ];
        if (d1 && Bt(A1, d1), i = A1[0], c = A1[1], E = A1[2], A = A1[3], F = A1[4], te = A1[9] = A1[9] === a ? Se ? 0 : i.length : Xr(A1[9] - ht, 0), !te && c & (b1 | R1) && (c &= ~(b1 | R1)), !c || c == at)
          var P1 = p(i, c, E);
        else
          c == b1 || c == R1 ? P1 = l(i, c, te) : (c == C1 || c == (at | C1)) && !F.length ? P1 = ie(i, c, E, A) : P1 = O.apply(a, A1);
        var ir = d1 ? rr : xr;
        return a2(ir(P1, A1), i, c);
      }
      function ut(i, c, E, A) {
        return i === a || Eo(i, zi[E]) && !Z1.call(A, E) ? c : i;
      }
      function kt(i, c, E, A, F, G) {
        return Fn(i) && Fn(c) && (G.set(c, i), Q1(i, c, a, kt, G), G.delete(c)), i;
      }
      function S1(i) {
        return ol(i) ? a : i;
      }
      function g1(i, c, E, A, F, G) {
        var X = E & re, te = i.length, Se = c.length;
        if (te != Se && !(X && Se > te))
          return !1;
        var ht = G.get(i), dt = G.get(c);
        if (ht && dt)
          return ht == c && dt == i;
        var Lt = -1, d1 = !0, A1 = E & V ? new G1() : a;
        for (G.set(i, c), G.set(c, i); ++Lt < te; ) {
          var P1 = i[Lt], ir = c[Lt];
          if (A)
            var U1 = X ? A(ir, P1, Lt, c, i, G) : A(P1, ir, Lt, i, c, G);
          if (U1 !== a) {
            if (U1)
              continue;
            d1 = !1;
            break;
          }
          if (A1) {
            if (!zn(c, function(ur, fr) {
              if (!an(A1, fr) && (P1 === ur || F(P1, ur, E, A, G)))
                return A1.push(fr);
            })) {
              d1 = !1;
              break;
            }
          } else if (!(P1 === ir || F(P1, ir, E, A, G))) {
            d1 = !1;
            break;
          }
        }
        return G.delete(i), G.delete(c), d1;
      }
      function y1(i, c, E, A, F, G, X) {
        switch (E) {
          case he:
            if (i.byteLength != c.byteLength || i.byteOffset != c.byteOffset)
              return !1;
            i = i.buffer, c = c.buffer;
          case We:
            return !(i.byteLength != c.byteLength || !G(new Ps(i), new Ps(c)));
          case Ai:
          case Zn:
          case Ee:
            return Eo(+i, +c);
          case ve:
            return i.name == c.name && i.message == c.message;
          case Os:
          case Le:
            return i == c + "";
          case de:
            var te = ar;
          case Ue:
            var Se = A & re;
            if (te || (te = a1), i.size != c.size && !Se)
              return !1;
            var ht = X.get(i);
            if (ht)
              return ht == c;
            A |= V, X.set(i, c);
            var dt = g1(te(i), te(c), A, F, G, X);
            return X.delete(i), dt;
          case we:
            if (Cr)
              return Cr.call(i) == Cr.call(c);
        }
        return !1;
      }
      function Zt(i, c, E, A, F, G) {
        var X = E & re, te = L1(i), Se = te.length, ht = L1(c), dt = ht.length;
        if (Se != dt && !X)
          return !1;
        for (var Lt = Se; Lt--; ) {
          var d1 = te[Lt];
          if (!(X ? d1 in c : Z1.call(c, d1)))
            return !1;
        }
        var A1 = G.get(i), P1 = G.get(c);
        if (A1 && P1)
          return A1 == c && P1 == i;
        var ir = !0;
        G.set(i, c), G.set(c, i);
        for (var U1 = X; ++Lt < Se; ) {
          d1 = te[Lt];
          var ur = i[d1], fr = c[d1];
          if (A)
            var Ls = X ? A(fr, ur, d1, c, i, G) : A(ur, fr, d1, i, c, G);
          if (!(Ls === a ? ur === fr || F(ur, fr, E, A, G) : Ls)) {
            ir = !1;
            break;
          }
          U1 || (U1 = d1 == "constructor");
        }
        if (ir && !U1) {
          var z2 = i.constructor, Ts = c.constructor;
          z2 != Ts && "constructor" in i && "constructor" in c && !(typeof z2 == "function" && z2 instanceof z2 && typeof Ts == "function" && Ts instanceof Ts) && (ir = !1);
        }
        return G.delete(i), G.delete(c), ir;
      }
      function jt(i) {
        return Br(f1(i, a, Ru), i + "");
      }
      function L1(i) {
        return Go(i, Xi, N1);
      }
      function x1(i) {
        return Go(i, ts, ji);
      }
      var m1 = e2 ? function(i) {
        return e2.get(i);
      } : E5;
      function zt(i) {
        for (var c = i.name + "", E = Hi[c], A = Z1.call(Hi, c) ? E.length : 0; A--; ) {
          var F = E[A], G = F.func;
          if (G == null || G == i)
            return F.name;
        }
        return c;
      }
      function Yn(i) {
        var c = Z1.call(B, "placeholder") ? B : i;
        return c.placeholder;
      }
      function lt() {
        var i = B.iteratee || y5;
        return i = i === y5 ? Ya : i, arguments.length ? i(arguments[0], arguments[1]) : i;
      }
      function Dr(i, c) {
        var E = i.__data__;
        return N(c) ? E[typeof c == "string" ? "string" : "hash"] : E.map;
      }
      function Ar(i) {
        for (var c = Xi(i), E = c.length; E--; ) {
          var A = c[E], F = i[A];
          c[E] = [A, F, et(F)];
        }
        return c;
      }
      function zr(i, c) {
        var E = oi(i, c);
        return bo(E) ? E : a;
      }
      function z1(i) {
        var c = Z1.call(i, Fr), E = i[Fr];
        try {
          i[Fr] = a;
          var A = !0;
        } catch {
        }
        var F = Bi.call(i);
        return A && (c ? i[Fr] = E : delete i[Fr]), F;
      }
      var N1 = oo ? function(i) {
        return i == null ? [] : (i = vr(i), $r(oo(i), function(c) {
          return zs.call(i, c);
        }));
      } : x5, ji = oo ? function(i) {
        for (var c = []; i; )
          br(c, N1(i)), i = fs(i);
        return c;
      } : x5, Zr = Nr;
      (R2 && Zr(new R2(new ArrayBuffer(1))) != he || m2 && Zr(new m2()) != de || lo && Zr(lo.resolve()) != Na || O2 && Zr(new O2()) != Ue || Li && Zr(new Li()) != ge) && (Zr = function(i) {
        var c = Nr(i), E = c == pe ? i.constructor : a, A = E ? Hr(E) : "";
        if (A)
          switch (A) {
            case za:
              return he;
            case bn:
              return de;
            case k2:
              return Na;
            case h3:
              return Ue;
            case co:
              return ge;
          }
        return c;
      });
      function Js(i, c, E) {
        for (var A = -1, F = E.length; ++A < F; ) {
          var G = E[A], X = G.size;
          switch (G.type) {
            case "drop":
              i += X;
              break;
            case "dropRight":
              c -= X;
              break;
            case "take":
              c = Jr(c, i + X);
              break;
            case "takeRight":
              i = Xr(i, c - X);
              break;
          }
        }
        return { start: i, end: c };
      }
      function Kn(i) {
        var c = i.match(fe);
        return c ? c[1].split(le) : [];
      }
      function e(i, c, E) {
        c = U2(c, i);
        for (var A = -1, F = c.length, G = !1; ++A < F; ) {
          var X = Mr(c[A]);
          if (!(G = i != null && E(i, X)))
            break;
          i = i[X];
        }
        return G || ++A != F ? G : (F = i == null ? 0 : i.length, !!F && Rl(F) && L(X, F) && (X1(i) || b3(i)));
      }
      function t(i) {
        var c = i.length, E = new i.constructor(c);
        return c && typeof i[0] == "string" && Z1.call(i, "index") && (E.index = i.index, E.input = i.input), E;
      }
      function u(i) {
        return typeof i.constructor == "function" && !Q(i) ? lr(fs(i)) : {};
      }
      function o(i, c, E) {
        var A = i.constructor;
        switch (c) {
          case We:
            return En(i);
          case Ai:
          case Zn:
            return new A(+i);
          case he:
            return Ko(i, E);
          case Ve:
          case Ge:
          case qe:
          case be:
          case Re:
          case Ie:
          case oe:
          case je:
          case Fe:
            return wa(i, E);
          case de:
            return new A();
          case Ee:
          case Le:
            return new A(i);
          case Os:
            return Xs(i);
          case Ue:
            return new A();
          case we:
            return Xo(i);
        }
      }
      function f(i, c) {
        var E = c.length;
        if (!E)
          return i;
        var A = E - 1;
        return c[A] = (E > 1 ? "& " : "") + c[A], c = c.join(E > 2 ? ", " : " "), i.replace(Qe, `{
/* [wrapped with ` + c + `] */
`);
      }
      function w(i) {
        return X1(i) || b3(i) || !!(Bs && i && i[Bs]);
      }
      function L(i, c) {
        var E = typeof i;
        return c = c == null ? wr : c, !!c && (E == "number" || E != "symbol" && mr.test(i)) && i > -1 && i % 1 == 0 && i < c;
      }
      function T(i, c, E) {
        if (!Fn(E))
          return !1;
        var A = typeof c;
        return (A == "number" ? es(E) && L(c, E.length) : A == "string" && c in E) ? Eo(E[c], i) : !1;
      }
      function R(i, c) {
        if (X1(i))
          return !1;
        var E = typeof i;
        return E == "number" || E == "symbol" || E == "boolean" || i == null || Ss(i) ? !0 : He.test(i) || !_e.test(i) || c != null && i in vr(c);
      }
      function N(i) {
        var c = typeof i;
        return c == "string" || c == "number" || c == "symbol" || c == "boolean" ? i !== "__proto__" : i === null;
      }
      function q(i) {
        var c = zt(i), E = B[c];
        if (typeof E != "function" || !(c in H1.prototype))
          return !1;
        if (i === E)
          return !0;
        var A = m1(E);
        return !!A && i === A[0];
      }
      function Y(i) {
        return !!Qi && Qi in i;
      }
      var ue = Fs ? Ta : S5;
      function Q(i) {
        var c = i && i.constructor, E = typeof c == "function" && c.prototype || zi;
        return i === E;
      }
      function et(i) {
        return i === i && !Fn(i);
      }
      function ct(i, c) {
        return function(E) {
          return E == null ? !1 : E[i] === c && (c !== a || i in vr(E));
        };
      }
      function Rt(i) {
        var c = _l(i, function(A) {
          return E.size === M && E.clear(), A;
        }), E = c.cache;
        return c;
      }
      function Bt(i, c) {
        var E = i[1], A = c[1], F = E | A, G = F < (at | Tt | M1), X = A == M1 && E == b1 || A == M1 && E == B1 && i[7].length <= c[8] || A == (M1 | B1) && c[7].length <= c[8] && E == b1;
        if (!(G || X))
          return i;
        A & at && (i[2] = c[2], F |= E & at ? 0 : Wt);
        var te = c[3];
        if (te) {
          var Se = i[3];
          i[3] = Se ? Ea(Se, te, c[4]) : te, i[4] = Se ? j2(i[3], U) : c[4];
        }
        return te = c[5], te && (Se = i[5], i[5] = Se ? r3(Se, te, c[6]) : te, i[6] = Se ? j2(i[5], U) : c[6]), te = c[7], te && (i[7] = te), A & M1 && (i[8] = i[8] == null ? c[8] : Jr(i[8], c[8])), i[9] == null && (i[9] = c[9]), i[0] = c[0], i[1] = F, i;
      }
      function Qt(i) {
        var c = [];
        if (i != null)
          for (var E in vr(i))
            c.push(E);
        return c;
      }
      function Ht(i) {
        return Bi.call(i);
      }
      function f1(i, c, E) {
        return c = Xr(c === a ? i.length - 1 : c, 0), function() {
          for (var A = arguments, F = -1, G = Xr(A.length - c, 0), X = ze(G); ++F < G; )
            X[F] = A[c + F];
          F = -1;
          for (var te = ze(c + 1); ++F < c; )
            te[F] = A[F];
          return te[c] = E(X), gr(i, this, te);
        };
      }
      function _1(i, c) {
        return c.length < 2 ? i : M2(i, cn(c, 0, -1));
      }
      function T1(i, c) {
        for (var E = i.length, A = Jr(c.length, E), F = Vn(i); A--; ) {
          var G = c[A];
          i[A] = L(G, E) ? F[G] : a;
        }
        return i;
      }
      function W1(i, c) {
        if (!(c === "constructor" && typeof i[c] == "function") && c != "__proto__")
          return i[c];
      }
      var xr = Vi(rr), fn = O1 || function(i, c) {
        return sn.setTimeout(i, c);
      }, Br = Vi(Qa);
      function a2(i, c, E) {
        var A = c + "";
        return Br(i, f(A, $n(Kn(A), E)));
      }
      function Vi(i) {
        var c = 0, E = 0;
        return function() {
          var A = Ua(), F = w1 - (A - E);
          if (E = A, F > 0) {
            if (++c >= Vt)
              return arguments[0];
          } else
            c = 0;
          return i.apply(a, arguments);
        };
      }
      function Qr(i, c) {
        var E = -1, A = i.length, F = A - 1;
        for (c = c === a ? A : c; ++E < c; ) {
          var G = Ja(E, F), X = i[G];
          i[G] = i[E], i[E] = X;
        }
        return i.length = c, i;
      }
      var Yi = Rt(function(i) {
        var c = [];
        return i.charCodeAt(0) === 46 && c.push(""), i.replace(Ye, function(E, A, F, G) {
          c.push(F ? G.replace(G2, "$1") : A || E);
        }), c;
      });
      function Mr(i) {
        if (typeof i == "string" || Ss(i))
          return i;
        var c = i + "";
        return c == "0" && 1 / i == -pr ? "-0" : c;
      }
      function Hr(i) {
        if (i != null) {
          try {
            return d2.call(i);
          } catch {
          }
          try {
            return i + "";
          } catch {
          }
        }
        return "";
      }
      function $n(i, c) {
        return Er(gi, function(E) {
          var A = "_." + E[0];
          c & E[1] && !Ln(i, A) && i.push(A);
        }), i.sort();
      }
      function en(i) {
        if (i instanceof H1)
          return i.clone();
        var c = new qi(i.__wrapped__, i.__chain__);
        return c.__actions__ = Vn(i.__actions__), c.__index__ = i.__index__, c.__values__ = i.__values__, c;
      }
      function l2(i, c, E) {
        (E ? T(i, c, E) : c === a) ? c = 1 : c = Xr(tr(c), 0);
        var A = i == null ? 0 : i.length;
        if (!A || c < 1)
          return [];
        for (var F = 0, G = 0, X = ze(ds(A / c)); F < A; )
          X[G++] = cn(i, F, F += c);
        return X;
      }
      function n3(i) {
        for (var c = -1, E = i == null ? 0 : i.length, A = 0, F = []; ++c < E; ) {
          var G = i[c];
          G && (F[A++] = G);
        }
        return F;
      }
      function Zo() {
        var i = arguments.length;
        if (!i)
          return [];
        for (var c = ze(i - 1), E = arguments[0], A = i; A--; )
          c[A - 1] = arguments[A];
        return br(X1(E) ? Vn(E) : [E], yn(c, 1));
      }
      var Di = K1(function(i, c) {
        return hi(i) ? go(i, yn(c, 1, hi, !0)) : [];
      }), Zs = K1(function(i, c) {
        var E = Qs(c);
        return hi(E) && (E = a), hi(i) ? go(i, yn(c, 1, hi, !0), lt(E, 2)) : [];
      }), fi = K1(function(i, c) {
        var E = Qs(c);
        return hi(E) && (E = a), hi(i) ? go(i, yn(c, 1, hi, !0), a, E) : [];
      });
      function sl(i, c, E) {
        var A = i == null ? 0 : i.length;
        return A ? (c = E || c === a ? 1 : tr(c), cn(i, c < 0 ? 0 : c, A)) : [];
      }
      function wo(i, c, E) {
        var A = i == null ? 0 : i.length;
        return A ? (c = E || c === a ? 1 : tr(c), c = A - c, cn(i, 0, c < 0 ? 0 : c)) : [];
      }
      function xa(i, c) {
        return i && i.length ? jo(i, lt(c, 3), !0, !0) : [];
      }
      function Sa(i, c) {
        return i && i.length ? jo(i, lt(c, 3), !0) : [];
      }
      function Ki(i, c, E, A) {
        var F = i == null ? 0 : i.length;
        return F ? (E && typeof E != "number" && T(i, c, E) && (E = 0, A = F), ja(i, c, E, A)) : [];
      }
      function La(i, c, E) {
        var A = i == null ? 0 : i.length;
        if (!A)
          return -1;
        var F = E == null ? 0 : tr(E);
        return F < 0 && (F = Xr(A + F, 0)), qr(i, lt(c, 3), F);
      }
      function z3(i, c, E) {
        var A = i == null ? 0 : i.length;
        if (!A)
          return -1;
        var F = A - 1;
        return E !== a && (F = tr(E), F = E < 0 ? Xr(A + F, 0) : Jr(F, A - 1)), qr(i, lt(c, 3), F, !0);
      }
      function Ru(i) {
        var c = i == null ? 0 : i.length;
        return c ? yn(i, 1) : [];
      }
      function yc(i) {
        var c = i == null ? 0 : i.length;
        return c ? yn(i, pr) : [];
      }
      function wc(i, c) {
        var E = i == null ? 0 : i.length;
        return E ? (c = c === a ? 1 : tr(c), yn(i, c)) : [];
      }
      function Ec(i) {
        for (var c = -1, E = i == null ? 0 : i.length, A = {}; ++c < E; ) {
          var F = i[c];
          A[F[0]] = F[1];
        }
        return A;
      }
      function Ou(i) {
        return i && i.length ? i[0] : a;
      }
      function xc(i, c, E) {
        var A = i == null ? 0 : i.length;
        if (!A)
          return -1;
        var F = E == null ? 0 : tr(E);
        return F < 0 && (F = Xr(A + F, 0)), on(i, c, F);
      }
      function Sc(i) {
        var c = i == null ? 0 : i.length;
        return c ? cn(i, 0, -1) : [];
      }
      var Lc = K1(function(i) {
        var c = q1(i, t3);
        return c.length && c[0] === i[0] ? Q2(c) : [];
      }), Tc = K1(function(i) {
        var c = Qs(i), E = q1(i, t3);
        return c === Qs(E) ? c = a : E.pop(), E.length && E[0] === i[0] ? Q2(E, lt(c, 2)) : [];
      }), _c = K1(function(i) {
        var c = Qs(i), E = q1(i, t3);
        return c = typeof c == "function" ? c : a, c && E.pop(), E.length && E[0] === i[0] ? Q2(E, a, c) : [];
      });
      function Ac(i, c) {
        return i == null ? "" : K2.call(i, c);
      }
      function Qs(i) {
        var c = i == null ? 0 : i.length;
        return c ? i[c - 1] : a;
      }
      function Rc(i, c, E) {
        var A = i == null ? 0 : i.length;
        if (!A)
          return -1;
        var F = A;
        return E !== a && (F = tr(E), F = F < 0 ? Xr(A + F, 0) : Jr(F, A - 1)), c === c ? na(i, c, F) : qr(i, ri, F, !0);
      }
      function Oc(i, c) {
        return i && i.length ? $3(i, tr(c)) : a;
      }
      var kc = K1(ku);
      function ku(i, c) {
        return i && i.length && c && c.length ? g3(i, c) : i;
      }
      function Ic(i, c, E) {
        return i && i.length && c && c.length ? g3(i, c, lt(E, 2)) : i;
      }
      function Nc(i, c, E) {
        return i && i.length && c && c.length ? g3(i, c, a, E) : i;
      }
      var Dc = jt(function(i, c) {
        var E = i == null ? 0 : i.length, A = zo(i, c);
        return F3(i, q1(c, function(F) {
          return L(F, E) ? +F : F;
        }).sort(U3)), A;
      });
      function Mc(i, c) {
        var E = [];
        if (!(i && i.length))
          return E;
        var A = -1, F = [], G = i.length;
        for (c = lt(c, 3); ++A < G; ) {
          var X = i[A];
          c(X, A, i) && (E.push(X), F.push(A));
        }
        return F3(i, F), E;
      }
      function c5(i) {
        return i == null ? i : gs.call(i);
      }
      function $c(i, c, E) {
        var A = i == null ? 0 : i.length;
        return A ? (E && typeof E != "number" && T(i, c, E) ? (c = 0, E = A) : (c = c == null ? 0 : tr(c), E = E === a ? A : tr(E)), cn(i, c, E)) : [];
      }
      function Fc(i, c) {
        return F2(i, c);
      }
      function Pc(i, c, E) {
        return ws(i, c, lt(E, 2));
      }
      function Uc(i, c) {
        var E = i == null ? 0 : i.length;
        if (E) {
          var A = F2(i, c);
          if (A < E && Eo(i[A], c))
            return A;
        }
        return -1;
      }
      function zc(i, c) {
        return F2(i, c, !0);
      }
      function Bc(i, c, E) {
        return ws(i, c, lt(E, 2), !0);
      }
      function Hc(i, c) {
        var E = i == null ? 0 : i.length;
        if (E) {
          var A = F2(i, c, !0) - 1;
          if (Eo(i[A], c))
            return A;
        }
        return -1;
      }
      function Gc(i) {
        return i && i.length ? v3(i) : [];
      }
      function qc(i, c) {
        return i && i.length ? v3(i, lt(c, 2)) : [];
      }
      function Wc(i) {
        var c = i == null ? 0 : i.length;
        return c ? cn(i, 1, c) : [];
      }
      function jc(i, c, E) {
        return i && i.length ? (c = E || c === a ? 1 : tr(c), cn(i, 0, c < 0 ? 0 : c)) : [];
      }
      function Vc(i, c, E) {
        var A = i == null ? 0 : i.length;
        return A ? (c = E || c === a ? 1 : tr(c), c = A - c, cn(i, c < 0 ? 0 : c, A)) : [];
      }
      function Yc(i, c) {
        return i && i.length ? jo(i, lt(c, 3), !1, !0) : [];
      }
      function Kc(i, c) {
        return i && i.length ? jo(i, lt(c, 3)) : [];
      }
      var Xc = K1(function(i) {
        return P2(yn(i, 1, hi, !0));
      }), Jc = K1(function(i) {
        var c = Qs(i);
        return hi(c) && (c = a), P2(yn(i, 1, hi, !0), lt(c, 2));
      }), Zc = K1(function(i) {
        var c = Qs(i);
        return c = typeof c == "function" ? c : a, P2(yn(i, 1, hi, !0), a, c);
      });
      function Qc(i) {
        return i && i.length ? P2(i) : [];
      }
      function e7(i, c) {
        return i && i.length ? P2(i, lt(c, 2)) : [];
      }
      function t7(i, c) {
        return c = typeof c == "function" ? c : a, i && i.length ? P2(i, a, c) : [];
      }
      function f5(i) {
        if (!(i && i.length))
          return [];
        var c = 0;
        return i = $r(i, function(E) {
          if (hi(E))
            return c = Xr(E.length, c), !0;
        }), Gn(c, function(E) {
          return q1(i, An(E));
        });
      }
      function Iu(i, c) {
        if (!(i && i.length))
          return [];
        var E = f5(i);
        return c == null ? E : q1(E, function(A) {
          return gr(c, a, A);
        });
      }
      var r7 = K1(function(i, c) {
        return hi(i) ? go(i, c) : [];
      }), n7 = K1(function(i) {
        return e3($r(i, hi));
      }), i7 = K1(function(i) {
        var c = Qs(i);
        return hi(c) && (c = a), e3($r(i, hi), lt(c, 2));
      }), s7 = K1(function(i) {
        var c = Qs(i);
        return c = typeof c == "function" ? c : a, e3($r(i, hi), a, c);
      }), o7 = K1(f5);
      function a7(i, c) {
        return Vo(i || [], c || [], N2);
      }
      function l7(i, c) {
        return Vo(i || [], c || [], Wi);
      }
      var u7 = K1(function(i) {
        var c = i.length, E = c > 1 ? i[c - 1] : a;
        return E = typeof E == "function" ? (i.pop(), E) : a, Iu(i, E);
      });
      function Nu(i) {
        var c = B(i);
        return c.__chain__ = !0, c;
      }
      function c7(i, c) {
        return c(i), i;
      }
      function Sl(i, c) {
        return c(i);
      }
      var f7 = jt(function(i) {
        var c = i.length, E = c ? i[0] : 0, A = this.__wrapped__, F = function(G) {
          return zo(G, i);
        };
        return c > 1 || this.__actions__.length || !(A instanceof H1) || !L(E) ? this.thru(F) : (A = A.slice(E, +E + (c ? 1 : 0)), A.__actions__.push({
          func: Sl,
          args: [F],
          thisArg: a
        }), new qi(A, this.__chain__).thru(function(G) {
          return c && !G.length && G.push(a), G;
        }));
      });
      function h7() {
        return Nu(this);
      }
      function d7() {
        return new qi(this.value(), this.__chain__);
      }
      function p7() {
        this.__values__ === a && (this.__values__ = Vu(this.value()));
        var i = this.__index__ >= this.__values__.length, c = i ? a : this.__values__[this.__index__++];
        return { done: i, value: c };
      }
      function g7() {
        return this;
      }
      function v7(i) {
        for (var c, E = this; E instanceof Gi; ) {
          var A = en(E);
          A.__index__ = 0, A.__values__ = a, c ? F.__wrapped__ = A : c = A;
          var F = A;
          E = E.__wrapped__;
        }
        return F.__wrapped__ = i, c;
      }
      function m7() {
        var i = this.__wrapped__;
        if (i instanceof H1) {
          var c = i;
          return this.__actions__.length && (c = new H1(this)), c = c.reverse(), c.__actions__.push({
            func: Sl,
            args: [c5],
            thisArg: a
          }), new qi(c, this.__chain__);
        }
        return this.thru(c5);
      }
      function b7() {
        return ya(this.__wrapped__, this.__actions__);
      }
      var C7 = E2(function(i, c, E) {
        Z1.call(i, E) ? ++i[E] : D2(i, E, 1);
      });
      function y7(i, c, E) {
        var A = X1(i) ? ei : Ho;
        return E && T(i, c, E) && (c = a), A(i, lt(c, 3));
      }
      function w7(i, c) {
        var E = X1(i) ? $r : Cn;
        return E(i, lt(c, 3));
      }
      var E7 = _(La), x7 = _(z3);
      function S7(i, c) {
        return yn(Ll(i, c), 1);
      }
      function L7(i, c) {
        return yn(Ll(i, c), pr);
      }
      function T7(i, c, E) {
        return E = E === a ? 1 : tr(E), yn(Ll(i, c), E);
      }
      function Du(i, c) {
        var E = X1(i) ? Er : y2;
        return E(i, lt(c, 3));
      }
      function Mu(i, c) {
        var E = X1(i) ? Ci : bs;
        return E(i, lt(c, 3));
      }
      var _7 = E2(function(i, c, E) {
        Z1.call(i, E) ? i[E].push(c) : D2(i, E, [c]);
      });
      function A7(i, c, E, A) {
        i = es(i) ? i : H3(i), E = E && !A ? tr(E) : 0;
        var F = i.length;
        return E < 0 && (E = Xr(F + E, 0)), Ol(i) ? E <= F && i.indexOf(c, E) > -1 : !!F && on(i, c, E) > -1;
      }
      var R7 = K1(function(i, c, E) {
        var A = -1, F = typeof c == "function", G = es(i) ? ze(i.length) : [];
        return y2(i, function(X) {
          G[++A] = F ? gr(c, X, E) : s2(X, c, E);
        }), G;
      }), O7 = E2(function(i, c, E) {
        D2(i, E, c);
      });
      function Ll(i, c) {
        var E = X1(i) ? q1 : wn;
        return E(i, lt(c, 3));
      }
      function k7(i, c, E, A) {
        return i == null ? [] : (X1(c) || (c = c == null ? [] : [c]), E = A ? a : E, X1(E) || (E = E == null ? [] : [E]), ma(i, c, E));
      }
      var I7 = E2(function(i, c, E) {
        i[E ? 0 : 1].push(c);
      }, function() {
        return [[], []];
      });
      function N7(i, c, E) {
        var A = X1(i) ? Un : ni, F = arguments.length < 3;
        return A(i, lt(c, 4), E, F, y2);
      }
      function D7(i, c, E) {
        var A = X1(i) ? yi : ni, F = arguments.length < 3;
        return A(i, lt(c, 4), E, F, bs);
      }
      function M7(i, c) {
        var E = X1(i) ? $r : Cn;
        return E(i, Al(lt(c, 3)));
      }
      function $7(i) {
        var c = X1(i) ? Ii : qo;
        return c(i);
      }
      function F7(i, c, E) {
        (E ? T(i, c, E) : c === a) ? c = 1 : c = tr(c);
        var A = X1(i) ? ha : Wo;
        return A(i, c);
      }
      function P7(i) {
        var c = X1(i) ? J2 : ba;
        return c(i);
      }
      function U7(i) {
        if (i == null)
          return 0;
        if (es(i))
          return Ol(i) ? j1(i) : i.length;
        var c = Zr(i);
        return c == de || c == Ue ? i.size : ft(i).length;
      }
      function z7(i, c, E) {
        var A = X1(i) ? zn : Ks;
        return E && T(i, c, E) && (c = a), A(i, lt(c, 3));
      }
      var B7 = K1(function(i, c) {
        if (i == null)
          return [];
        var E = c.length;
        return E > 1 && T(i, c[0], c[1]) ? c = [] : E > 2 && T(c[0], c[1], c[2]) && (c = [c[0]]), ma(i, yn(c, 1), []);
      }), Tl = Si || function() {
        return sn.Date.now();
      };
      function H7(i, c) {
        if (typeof c != "function")
          throw new kn(x);
        return i = tr(i), function() {
          if (--i < 1)
            return c.apply(this, arguments);
        };
      }
      function $u(i, c, E) {
        return c = E ? a : c, c = i && c == null ? i.length : c, rt(i, M1, a, a, a, a, c);
      }
      function Fu(i, c) {
        var E;
        if (typeof c != "function")
          throw new kn(x);
        return i = tr(i), function() {
          return --i > 0 && (E = c.apply(this, arguments)), i <= 1 && (c = a), E;
        };
      }
      var h5 = K1(function(i, c, E) {
        var A = at;
        if (E.length) {
          var F = j2(E, Yn(h5));
          A |= C1;
        }
        return rt(i, A, c, E, F);
      }), Pu = K1(function(i, c, E) {
        var A = at | Tt;
        if (E.length) {
          var F = j2(E, Yn(Pu));
          A |= C1;
        }
        return rt(c, A, i, E, F);
      });
      function Uu(i, c, E) {
        c = E ? a : c;
        var A = rt(i, b1, a, a, a, a, a, c);
        return A.placeholder = Uu.placeholder, A;
      }
      function zu(i, c, E) {
        c = E ? a : c;
        var A = rt(i, R1, a, a, a, a, a, c);
        return A.placeholder = zu.placeholder, A;
      }
      function Bu(i, c, E) {
        var A, F, G, X, te, Se, ht = 0, dt = !1, Lt = !1, d1 = !0;
        if (typeof i != "function")
          throw new kn(x);
        c = eo(c) || 0, Fn(E) && (dt = !!E.leading, Lt = "maxWait" in E, G = Lt ? Xr(eo(E.maxWait) || 0, c) : G, d1 = "trailing" in E ? !!E.trailing : d1);
        function A1(di) {
          var xo = A, Aa = F;
          return A = F = a, ht = di, X = i.apply(Aa, xo), X;
        }
        function P1(di) {
          return ht = di, te = fn(ur, c), dt ? A1(di) : X;
        }
        function ir(di) {
          var xo = di - Se, Aa = di - ht, o4 = c - xo;
          return Lt ? Jr(o4, G - Aa) : o4;
        }
        function U1(di) {
          var xo = di - Se, Aa = di - ht;
          return Se === a || xo >= c || xo < 0 || Lt && Aa >= G;
        }
        function ur() {
          var di = Tl();
          if (U1(di))
            return fr(di);
          te = fn(ur, ir(di));
        }
        function fr(di) {
          return te = a, d1 && A ? A1(di) : (A = F = a, X);
        }
        function Ls() {
          te !== a && er(te), ht = 0, A = Se = F = te = a;
        }
        function z2() {
          return te === a ? X : fr(Tl());
        }
        function Ts() {
          var di = Tl(), xo = U1(di);
          if (A = arguments, F = this, Se = di, xo) {
            if (te === a)
              return P1(Se);
            if (Lt)
              return er(te), te = fn(ur, c), A1(Se);
          }
          return te === a && (te = fn(ur, c)), X;
        }
        return Ts.cancel = Ls, Ts.flush = z2, Ts;
      }
      var G7 = K1(function(i, c) {
        return Wa(i, 1, c);
      }), q7 = K1(function(i, c, E) {
        return Wa(i, eo(c) || 0, E);
      });
      function W7(i) {
        return rt(i, V1);
      }
      function _l(i, c) {
        if (typeof i != "function" || c != null && typeof c != "function")
          throw new kn(x);
        var E = function() {
          var A = arguments, F = c ? c.apply(this, A) : A[0], G = E.cache;
          if (G.has(F))
            return G.get(F);
          var X = i.apply(this, A);
          return E.cache = G.set(F, X) || G, X;
        };
        return E.cache = new (_l.Cache || dr)(), E;
      }
      _l.Cache = dr;
      function Al(i) {
        if (typeof i != "function")
          throw new kn(x);
        return function() {
          var c = arguments;
          switch (c.length) {
            case 0:
              return !i.call(this);
            case 1:
              return !i.call(this, c[0]);
            case 2:
              return !i.call(this, c[0], c[1]);
            case 3:
              return !i.call(this, c[0], c[1], c[2]);
          }
          return !i.apply(this, c);
        };
      }
      function j7(i) {
        return Fu(2, i);
      }
      var V7 = Yo(function(i, c) {
        c = c.length == 1 && X1(c[0]) ? q1(c[0], cr(lt())) : q1(yn(c, 1), cr(lt()));
        var E = c.length;
        return K1(function(A) {
          for (var F = -1, G = Jr(A.length, E); ++F < G; )
            A[F] = c[F].call(this, A[F]);
          return gr(i, this, A);
        });
      }), d5 = K1(function(i, c) {
        var E = j2(c, Yn(d5));
        return rt(i, C1, a, c, E);
      }), Hu = K1(function(i, c) {
        var E = j2(c, Yn(Hu));
        return rt(i, D1, a, c, E);
      }), Y7 = jt(function(i, c) {
        return rt(i, B1, a, a, a, c);
      });
      function K7(i, c) {
        if (typeof i != "function")
          throw new kn(x);
        return c = c === a ? c : tr(c), K1(i, c);
      }
      function X7(i, c) {
        if (typeof i != "function")
          throw new kn(x);
        return c = c == null ? 0 : Xr(tr(c), 0), K1(function(E) {
          var A = E[c], F = xs(E, 0, c);
          return A && br(F, A), gr(i, this, F);
        });
      }
      function J7(i, c, E) {
        var A = !0, F = !0;
        if (typeof i != "function")
          throw new kn(x);
        return Fn(E) && (A = "leading" in E ? !!E.leading : A, F = "trailing" in E ? !!E.trailing : F), Bu(i, c, {
          leading: A,
          maxWait: c,
          trailing: F
        });
      }
      function Z7(i) {
        return $u(i, 1);
      }
      function Q7(i, c) {
        return d5(m3(c), i);
      }
      function e6() {
        if (!arguments.length)
          return [];
        var i = arguments[0];
        return X1(i) ? i : [i];
      }
      function t6(i) {
        return Ni(i, Z);
      }
      function r6(i, c) {
        return c = typeof c == "function" ? c : a, Ni(i, Z, c);
      }
      function n6(i) {
        return Ni(i, j | Z);
      }
      function i6(i, c) {
        return c = typeof c == "function" ? c : a, Ni(i, j | Z, c);
      }
      function s6(i, c) {
        return c == null || da(i, c, Xi(c));
      }
      function Eo(i, c) {
        return i === c || i !== i && c !== c;
      }
      var o6 = ne(i2), a6 = ne(function(i, c) {
        return i >= c;
      }), b3 = ys(function() {
        return arguments;
      }()) ? ys : function(i) {
        return Xn(i) && Z1.call(i, "callee") && !zs.call(i, "callee");
      }, X1 = ze.isArray, l6 = ls ? cr(ls) : vo;
      function es(i) {
        return i != null && Rl(i.length) && !Ta(i);
      }
      function hi(i) {
        return Xn(i) && es(i);
      }
      function u6(i) {
        return i === !0 || i === !1 || Xn(i) && Nr(i) == Ai;
      }
      var i3 = Hs || S5, c6 = kr ? cr(kr) : p3;
      function f6(i) {
        return Xn(i) && i.nodeType === 1 && !ol(i);
      }
      function h6(i) {
        if (i == null)
          return !0;
        if (es(i) && (X1(i) || typeof i == "string" || typeof i.splice == "function" || i3(i) || B3(i) || b3(i)))
          return !i.length;
        var c = Zr(i);
        if (c == de || c == Ue)
          return !i.size;
        if (Q(i))
          return !ft(i).length;
        for (var E in i)
          if (Z1.call(i, E))
            return !1;
        return !0;
      }
      function d6(i, c) {
        return o2(i, c);
      }
      function p6(i, c, E) {
        E = typeof E == "function" ? E : a;
        var A = E ? E(i, c) : a;
        return A === a ? o2(i, c, a, E) : !!A;
      }
      function p5(i) {
        if (!Xn(i))
          return !1;
        var c = Nr(i);
        return c == ve || c == Sn || typeof i.message == "string" && typeof i.name == "string" && !ol(i);
      }
      function g6(i) {
        return typeof i == "number" && g2(i);
      }
      function Ta(i) {
        if (!Fn(i))
          return !1;
        var c = Nr(i);
        return c == ye || c == Ae || c == Lr || c == Da;
      }
      function Gu(i) {
        return typeof i == "number" && i == tr(i);
      }
      function Rl(i) {
        return typeof i == "number" && i > -1 && i % 1 == 0 && i <= wr;
      }
      function Fn(i) {
        var c = typeof i;
        return i != null && (c == "object" || c == "function");
      }
      function Xn(i) {
        return i != null && typeof i == "object";
      }
      var qu = Ds ? cr(Ds) : Va;
      function v6(i, c) {
        return i === c || mo(i, c, Ar(c));
      }
      function m6(i, c, E) {
        return E = typeof E == "function" ? E : a, mo(i, c, Ar(c), E);
      }
      function b6(i) {
        return Wu(i) && i != +i;
      }
      function C6(i) {
        if (ue(i))
          throw new $1(C);
        return bo(i);
      }
      function y6(i) {
        return i === null;
      }
      function w6(i) {
        return i == null;
      }
      function Wu(i) {
        return typeof i == "number" || Xn(i) && Nr(i) == Ee;
      }
      function ol(i) {
        if (!Xn(i) || Nr(i) != pe)
          return !1;
        var c = fs(i);
        if (c === null)
          return !0;
        var E = Z1.call(c, "constructor") && c.constructor;
        return typeof E == "function" && E instanceof E && d2.call(E) == No;
      }
      var g5 = $a ? cr($a) : S;
      function E6(i) {
        return Gu(i) && i >= -wr && i <= wr;
      }
      var ju = Qn ? cr(Qn) : $2;
      function Ol(i) {
        return typeof i == "string" || !X1(i) && Xn(i) && Nr(i) == Le;
      }
      function Ss(i) {
        return typeof i == "symbol" || Xn(i) && Nr(i) == we;
      }
      var B3 = Pn ? cr(Pn) : v;
      function x6(i) {
        return i === a;
      }
      function S6(i) {
        return Xn(i) && Zr(i) == ge;
      }
      function L6(i) {
        return Xn(i) && Nr(i) == Be;
      }
      var T6 = ne(ci), _6 = ne(function(i, c) {
        return i <= c;
      });
      function Vu(i) {
        if (!i)
          return [];
        if (es(i))
          return Ol(i) ? On(i) : Vn(i);
        if (p2 && i[p2])
          return Zi(i[p2]());
        var c = Zr(i), E = c == de ? ar : c == Ue ? a1 : H3;
        return E(i);
      }
      function _a(i) {
        if (!i)
          return i === 0 ? i : 0;
        if (i = eo(i), i === pr || i === -pr) {
          var c = i < 0 ? -1 : 1;
          return c * rn;
        }
        return i === i ? i : 0;
      }
      function tr(i) {
        var c = _a(i), E = c % 1;
        return c === c ? E ? c - E : c : 0;
      }
      function Yu(i) {
        return i ? ms(tr(i), 0, nn) : 0;
      }
      function eo(i) {
        if (typeof i == "number")
          return i;
        if (Ss(i))
          return xn;
        if (Fn(i)) {
          var c = typeof i.valueOf == "function" ? i.valueOf() : i;
          i = Fn(c) ? c + "" : c;
        }
        if (typeof i != "string")
          return i === 0 ? i : +i;
        i = Ir(i);
        var E = Ao.test(i);
        return E || c1.test(i) ? Ma(i.slice(2), E ? 2 : 8) : q2.test(i) ? xn : +i;
      }
      function Ku(i) {
        return Mn(i, ts(i));
      }
      function A6(i) {
        return i ? ms(tr(i), -wr, wr) : i === 0 ? i : 0;
      }
      function Rr(i) {
        return i == null ? "" : Yr(i);
      }
      var R6 = Ur(function(i, c) {
        if (Q(c) || es(c)) {
          Mn(c, Xi(c), i);
          return;
        }
        for (var E in c)
          Z1.call(c, E) && N2(i, E, c[E]);
      }), Xu = Ur(function(i, c) {
        Mn(c, ts(c), i);
      }), kl = Ur(function(i, c, E, A) {
        Mn(c, ts(c), i, A);
      }), O6 = Ur(function(i, c, E, A) {
        Mn(c, Xi(c), i, A);
      }), k6 = jt(zo);
      function I6(i, c) {
        var E = lr(i);
        return c == null ? E : Uo(E, c);
      }
      var N6 = K1(function(i, c) {
        i = vr(i);
        var E = -1, A = c.length, F = A > 2 ? c[2] : a;
        for (F && T(c[0], c[1], F) && (A = 1); ++E < A; )
          for (var G = c[E], X = ts(G), te = -1, Se = X.length; ++te < Se; ) {
            var ht = X[te], dt = i[ht];
            (dt === a || Eo(dt, zi[ht]) && !Z1.call(i, ht)) && (i[ht] = G[ht]);
          }
        return i;
      }), D6 = K1(function(i) {
        return i.push(a, kt), gr(Ju, a, i);
      });
      function M6(i, c) {
        return Bn(i, lt(c, 3), yr);
      }
      function $6(i, c) {
        return Bn(i, lt(c, 3), qs);
      }
      function F6(i, c) {
        return i == null ? i : pa(i, lt(c, 3), ts);
      }
      function P6(i, c) {
        return i == null ? i : ga(i, lt(c, 3), ts);
      }
      function U6(i, c) {
        return i && yr(i, lt(c, 3));
      }
      function z6(i, c) {
        return i && qs(i, lt(c, 3));
      }
      function B6(i) {
        return i == null ? [] : Cs(i, Xi(i));
      }
      function H6(i) {
        return i == null ? [] : Cs(i, ts(i));
      }
      function v5(i, c, E) {
        var A = i == null ? a : M2(i, c);
        return A === a ? E : A;
      }
      function G6(i, c) {
        return i != null && e(i, c, Ws);
      }
      function m5(i, c) {
        return i != null && e(i, c, js);
      }
      var q6 = D(function(i, c, E) {
        c != null && typeof c.toString != "function" && (c = Bi.call(c)), i[c] = E;
      }, C5(rs)), W6 = D(function(i, c, E) {
        c != null && typeof c.toString != "function" && (c = Bi.call(c)), Z1.call(i, c) ? i[c].push(E) : i[c] = [E];
      }, lt), j6 = K1(s2);
      function Xi(i) {
        return es(i) ? X2(i) : ft(i);
      }
      function ts(i) {
        return es(i) ? X2(i, !0) : Ka(i);
      }
      function V6(i, c) {
        var E = {};
        return c = lt(c, 3), yr(i, function(A, F, G) {
          D2(E, c(A, F, G), A);
        }), E;
      }
      function Y6(i, c) {
        var E = {};
        return c = lt(c, 3), yr(i, function(A, F, G) {
          D2(E, F, c(A, F, G));
        }), E;
      }
      var K6 = Ur(function(i, c, E) {
        Q1(i, c, E);
      }), Ju = Ur(function(i, c, E, A) {
        Q1(i, c, E, A);
      }), X6 = jt(function(i, c) {
        var E = {};
        if (i == null)
          return E;
        var A = !1;
        c = q1(c, function(G) {
          return G = U2(G, i), A || (A = G.length > 1), G;
        }), Mn(i, x1(i), E), A && (E = Ni(E, j | K | Z, S1));
        for (var F = c.length; F--; )
          Es(E, c[F]);
        return E;
      });
      function J6(i, c) {
        return Zu(i, Al(lt(c)));
      }
      var Z6 = jt(function(i, c) {
        return i == null ? {} : _i(i, c);
      });
      function Zu(i, c) {
        if (i == null)
          return {};
        var E = q1(x1(i), function(A) {
          return [A];
        });
        return c = lt(c), yo(i, E, function(A, F) {
          return c(A, F[0]);
        });
      }
      function Q6(i, c, E) {
        c = U2(c, i);
        var A = -1, F = c.length;
        for (F || (F = 1, i = a); ++A < F; ) {
          var G = i == null ? a : i[Mr(c[A])];
          G === a && (A = F, G = E), i = Ta(G) ? G.call(i) : G;
        }
        return i;
      }
      function e9(i, c, E) {
        return i == null ? i : Wi(i, c, E);
      }
      function t9(i, c, E, A) {
        return A = typeof A == "function" ? A : a, i == null ? i : Wi(i, c, E, A);
      }
      var Qu = tt(Xi), e4 = tt(ts);
      function r9(i, c, E) {
        var A = X1(i), F = A || i3(i) || B3(i);
        if (c = lt(c, 4), E == null) {
          var G = i && i.constructor;
          F ? E = A ? new G() : [] : Fn(i) ? E = Ta(G) ? lr(fs(i)) : {} : E = {};
        }
        return (F ? Er : yr)(i, function(X, te, Se) {
          return c(E, X, te, Se);
        }), E;
      }
      function n9(i, c) {
        return i == null ? !0 : Es(i, c);
      }
      function i9(i, c, E) {
        return i == null ? i : Ca(i, c, m3(E));
      }
      function s9(i, c, E, A) {
        return A = typeof A == "function" ? A : a, i == null ? i : Ca(i, c, m3(E), A);
      }
      function H3(i) {
        return i == null ? [] : vn(i, Xi(i));
      }
      function o9(i) {
        return i == null ? [] : vn(i, ts(i));
      }
      function a9(i, c, E) {
        return E === a && (E = c, c = a), E !== a && (E = eo(E), E = E === E ? E : 0), c !== a && (c = eo(c), c = c === c ? c : 0), ms(eo(i), c, E);
      }
      function l9(i, c, E) {
        return c = _a(c), E === a ? (E = c, c = 0) : E = _a(E), i = eo(i), Vs(i, c, E);
      }
      function u9(i, c, E) {
        if (E && typeof E != "boolean" && T(i, c, E) && (c = E = a), E === a && (typeof c == "boolean" ? (E = c, c = a) : typeof i == "boolean" && (E = i, i = a)), i === a && c === a ? (i = 0, c = 1) : (i = _a(i), c === a ? (c = i, i = 0) : c = _a(c)), i > c) {
          var A = i;
          i = c, c = A;
        }
        if (E || i % 1 || c % 1) {
          var F = v2();
          return Jr(i + F * (c - i + qt("1e-" + ((F + "").length - 1))), c);
        }
        return Ja(i, c);
      }
      var c9 = d(function(i, c, E) {
        return c = c.toLowerCase(), i + (E ? t4(c) : c);
      });
      function t4(i) {
        return b5(Rr(i).toLowerCase());
      }
      function r4(i) {
        return i = Rr(i), i && i.replace(Ro, Ei).replace(St, "");
      }
      function f9(i, c, E) {
        i = Rr(i), c = Yr(c);
        var A = i.length;
        E = E === a ? A : ms(tr(E), 0, A);
        var F = E;
        return E -= c.length, E >= 0 && i.slice(E, F) == c;
      }
      function h9(i) {
        return i = Rr(i), i && Me.test(i) ? i.replace(Oe, si) : i;
      }
      function d9(i) {
        return i = Rr(i), i && Ce.test(i) ? i.replace(Ke, "\\$&") : i;
      }
      var p9 = d(function(i, c, E) {
        return i + (E ? "-" : "") + c.toLowerCase();
      }), g9 = d(function(i, c, E) {
        return i + (E ? " " : "") + c.toLowerCase();
      }), v9 = m("toLowerCase");
      function m9(i, c, E) {
        i = Rr(i), c = tr(c);
        var A = c ? j1(i) : 0;
        if (!c || A >= c)
          return i;
        var F = (c - A) / 2;
        return H(A2(F), E) + i + H(ds(F), E);
      }
      function b9(i, c, E) {
        i = Rr(i), c = tr(c);
        var A = c ? j1(i) : 0;
        return c && A < c ? i + H(c - A, E) : i;
      }
      function C9(i, c, E) {
        i = Rr(i), c = tr(c);
        var A = c ? j1(i) : 0;
        return c && A < c ? H(c - A, E) + i : i;
      }
      function y9(i, c, E) {
        return E || c == null ? c = 0 : c && (c = +c), ps(Rr(i).replace(Xe, ""), c || 0);
      }
      function w9(i, c, E) {
        return (E ? T(i, c, E) : c === a) ? c = 1 : c = tr(c), Za(Rr(i), c);
      }
      function E9() {
        var i = arguments, c = Rr(i[0]);
        return i.length < 3 ? c : c.replace(i[1], i[2]);
      }
      var x9 = d(function(i, c, E) {
        return i + (E ? "_" : "") + c.toLowerCase();
      });
      function S9(i, c, E) {
        return E && typeof E != "number" && T(i, c, E) && (c = E = a), E = E === a ? nn : E >>> 0, E ? (i = Rr(i), i && (typeof c == "string" || c != null && !g5(c)) && (c = Yr(c), !c && jr(i)) ? xs(On(i), 0, E) : i.split(c, E)) : [];
      }
      var L9 = d(function(i, c, E) {
        return i + (E ? " " : "") + b5(c);
      });
      function T9(i, c, E) {
        return i = Rr(i), E = E == null ? 0 : ms(tr(E), 0, i.length), c = Yr(c), i.slice(E, E + c.length) == c;
      }
      function _9(i, c, E) {
        var A = B.templateSettings;
        E && T(i, c, E) && (c = a), i = Rr(i), c = kl({}, c, A, ut);
        var F = kl({}, c.imports, A.imports, ut), G = Xi(F), X = vn(F, G), te, Se, ht = 0, dt = c.interpolate || no, Lt = "__p += '", d1 = _2(
          (c.escape || no).source + "|" + dt.source + "|" + (dt === Pe ? _o : no).source + "|" + (c.evaluate || no).source + "|$",
          "g"
        ), A1 = "//# sourceURL=" + (Z1.call(c, "sourceURL") ? (c.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++Jt + "]") + `
`;
        i.replace(d1, function(U1, ur, fr, Ls, z2, Ts) {
          return fr || (fr = Ls), Lt += i.slice(ht, Ts).replace(hr, xi), ur && (te = !0, Lt += `' +
__e(` + ur + `) +
'`), z2 && (Se = !0, Lt += `';
` + z2 + `;
__p += '`), fr && (Lt += `' +
((__t = (` + fr + `)) == null ? '' : __t) +
'`), ht = Ts + U1.length, U1;
        }), Lt += `';
`;
        var P1 = Z1.call(c, "variable") && c.variable;
        if (!P1)
          Lt = `with (obj) {
` + Lt + `
}
`;
        else if (ro.test(P1))
          throw new $1(I);
        Lt = (Se ? Lt.replace(ke, "") : Lt).replace(me, "$1").replace(De, "$1;"), Lt = "function(" + (P1 || "obj") + `) {
` + (P1 ? "" : `obj || (obj = {});
`) + "var __t, __p = ''" + (te ? ", __e = _.escape" : "") + (Se ? `, __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
` : `;
`) + Lt + `return __p
}`;
        var ir = i4(function() {
          return J1(G, A1 + "return " + Lt).apply(a, X);
        });
        if (ir.source = Lt, p5(ir))
          throw ir;
        return ir;
      }
      function A9(i) {
        return Rr(i).toLowerCase();
      }
      function R9(i) {
        return Rr(i).toUpperCase();
      }
      function O9(i, c, E) {
        if (i = Rr(i), i && (E || c === a))
          return Ir(i);
        if (!i || !(c = Yr(c)))
          return i;
        var A = On(i), F = On(c), G = Tr(A, F), X = Wr(A, F) + 1;
        return xs(A, G, X).join("");
      }
      function k9(i, c, E) {
        if (i = Rr(i), i && (E || c === a))
          return i.slice(0, us(i) + 1);
        if (!i || !(c = Yr(c)))
          return i;
        var A = On(i), F = Wr(A, On(c)) + 1;
        return xs(A, 0, F).join("");
      }
      function I9(i, c, E) {
        if (i = Rr(i), i && (E || c === a))
          return i.replace(Xe, "");
        if (!i || !(c = Yr(c)))
          return i;
        var A = On(i), F = Tr(A, On(c));
        return xs(A, F).join("");
      }
      function N9(i, c) {
        var E = Y1, A = tn;
        if (Fn(c)) {
          var F = "separator" in c ? c.separator : F;
          E = "length" in c ? tr(c.length) : E, A = "omission" in c ? Yr(c.omission) : A;
        }
        i = Rr(i);
        var G = i.length;
        if (jr(i)) {
          var X = On(i);
          G = X.length;
        }
        if (E >= G)
          return i;
        var te = E - j1(A);
        if (te < 1)
          return A;
        var Se = X ? xs(X, 0, te).join("") : i.slice(0, te);
        if (F === a)
          return Se + A;
        if (X && (te += Se.length - te), g5(F)) {
          if (i.slice(te).search(F)) {
            var ht, dt = Se;
            for (F.global || (F = _2(F.source, Rr(ks.exec(F)) + "g")), F.lastIndex = 0; ht = F.exec(dt); )
              var Lt = ht.index;
            Se = Se.slice(0, Lt === a ? te : Lt);
          }
        } else if (i.indexOf(Yr(F), te) != te) {
          var d1 = Se.lastIndexOf(F);
          d1 > -1 && (Se = Se.slice(0, d1));
        }
        return Se + A;
      }
      function D9(i) {
        return i = Rr(i), i && xe.test(i) ? i.replace(Te, V2) : i;
      }
      var M9 = d(function(i, c, E) {
        return i + (E ? " " : "") + c.toUpperCase();
      }), b5 = m("toUpperCase");
      function n4(i, c, E) {
        return i = Rr(i), c = E ? a : c, c === a ? ln(i) ? Io(i) : wi(i) : i.match(c) || [];
      }
      var i4 = K1(function(i, c) {
        try {
          return gr(i, a, c);
        } catch (E) {
          return p5(E) ? E : new $1(E);
        }
      }), $9 = jt(function(i, c) {
        return Er(c, function(E) {
          E = Mr(E), D2(i, E, h5(i[E], i));
        }), i;
      });
      function F9(i) {
        var c = i == null ? 0 : i.length, E = lt();
        return i = c ? q1(i, function(A) {
          if (typeof A[1] != "function")
            throw new kn(x);
          return [E(A[0]), A[1]];
        }) : [], K1(function(A) {
          for (var F = -1; ++F < c; ) {
            var G = i[F];
            if (gr(G[0], this, A))
              return gr(G[1], this, A);
          }
        });
      }
      function P9(i) {
        return Bo(Ni(i, j));
      }
      function C5(i) {
        return function() {
          return i;
        };
      }
      function U9(i, c) {
        return i == null || i !== i ? c : i;
      }
      var z9 = h(), B9 = h(!0);
      function rs(i) {
        return i;
      }
      function y5(i) {
        return Ya(typeof i == "function" ? i : Ni(i, j));
      }
      function H9(i) {
        return Co(Ni(i, j));
      }
      function G9(i, c) {
        return Xa(i, Ni(c, j));
      }
      var q9 = K1(function(i, c) {
        return function(E) {
          return s2(E, i, c);
        };
      }), W9 = K1(function(i, c) {
        return function(E) {
          return s2(i, E, c);
        };
      });
      function w5(i, c, E) {
        var A = Xi(c), F = Cs(c, A);
        E == null && !(Fn(c) && (F.length || !A.length)) && (E = c, c = i, i = this, F = Cs(c, Xi(c)));
        var G = !(Fn(E) && "chain" in E) || !!E.chain, X = Ta(i);
        return Er(F, function(te) {
          var Se = c[te];
          i[te] = Se, X && (i.prototype[te] = function() {
            var ht = this.__chain__;
            if (G || ht) {
              var dt = i(this.__wrapped__), Lt = dt.__actions__ = Vn(this.__actions__);
              return Lt.push({ func: Se, args: arguments, thisArg: i }), dt.__chain__ = ht, dt;
            }
            return Se.apply(i, br([this.value()], arguments));
          });
        }), i;
      }
      function j9() {
        return sn._ === this && (sn._ = f3), this;
      }
      function E5() {
      }
      function V9(i) {
        return i = tr(i), K1(function(c) {
          return $3(c, i);
        });
      }
      var Y9 = z(q1), K9 = z(ei), X9 = z(zn);
      function s4(i) {
        return R(i) ? An(Mr(i)) : w2(i);
      }
      function J9(i) {
        return function(c) {
          return i == null ? a : M2(i, c);
        };
      }
      var Z9 = J(), Q9 = J(!0);
      function x5() {
        return [];
      }
      function S5() {
        return !1;
      }
      function ef() {
        return {};
      }
      function tf() {
        return "";
      }
      function rf() {
        return !0;
      }
      function nf(i, c) {
        if (i = tr(i), i < 1 || i > wr)
          return [];
        var E = nn, A = Jr(i, nn);
        c = lt(c), i -= nn;
        for (var F = Gn(A, c); ++E < i; )
          c(E);
        return F;
      }
      function sf(i) {
        return X1(i) ? q1(i, Mr) : Ss(i) ? [i] : Vn(Yi(Rr(i)));
      }
      function of(i) {
        var c = ++ai;
        return Rr(i) + c;
      }
      var af = k(function(i, c) {
        return i + c;
      }, 0), lf = ee("ceil"), uf = k(function(i, c) {
        return i / c;
      }, 1), cf = ee("floor");
      function ff(i) {
        return i && i.length ? Z2(i, rs, i2) : a;
      }
      function hf(i, c) {
        return i && i.length ? Z2(i, lt(c, 2), i2) : a;
      }
      function df(i) {
        return _n(i, rs);
      }
      function pf(i, c) {
        return _n(i, lt(c, 2));
      }
      function gf(i) {
        return i && i.length ? Z2(i, rs, ci) : a;
      }
      function vf(i, c) {
        return i && i.length ? Z2(i, lt(c, 2), ci) : a;
      }
      var mf = k(function(i, c) {
        return i * c;
      }, 1), bf = ee("round"), Cf = k(function(i, c) {
        return i - c;
      }, 0);
      function yf(i) {
        return i && i.length ? Rn(i, rs) : 0;
      }
      function wf(i, c) {
        return i && i.length ? Rn(i, lt(c, 2)) : 0;
      }
      return B.after = H7, B.ary = $u, B.assign = R6, B.assignIn = Xu, B.assignInWith = kl, B.assignWith = O6, B.at = k6, B.before = Fu, B.bind = h5, B.bindAll = $9, B.bindKey = Pu, B.castArray = e6, B.chain = Nu, B.chunk = l2, B.compact = n3, B.concat = Zo, B.cond = F9, B.conforms = P9, B.constant = C5, B.countBy = C7, B.create = I6, B.curry = Uu, B.curryRight = zu, B.debounce = Bu, B.defaults = N6, B.defaultsDeep = D6, B.defer = G7, B.delay = q7, B.difference = Di, B.differenceBy = Zs, B.differenceWith = fi, B.drop = sl, B.dropRight = wo, B.dropRightWhile = xa, B.dropWhile = Sa, B.fill = Ki, B.filter = w7, B.flatMap = S7, B.flatMapDeep = L7, B.flatMapDepth = T7, B.flatten = Ru, B.flattenDeep = yc, B.flattenDepth = wc, B.flip = W7, B.flow = z9, B.flowRight = B9, B.fromPairs = Ec, B.functions = B6, B.functionsIn = H6, B.groupBy = _7, B.initial = Sc, B.intersection = Lc, B.intersectionBy = Tc, B.intersectionWith = _c, B.invert = q6, B.invertBy = W6, B.invokeMap = R7, B.iteratee = y5, B.keyBy = O7, B.keys = Xi, B.keysIn = ts, B.map = Ll, B.mapKeys = V6, B.mapValues = Y6, B.matches = H9, B.matchesProperty = G9, B.memoize = _l, B.merge = K6, B.mergeWith = Ju, B.method = q9, B.methodOf = W9, B.mixin = w5, B.negate = Al, B.nthArg = V9, B.omit = X6, B.omitBy = J6, B.once = j7, B.orderBy = k7, B.over = Y9, B.overArgs = V7, B.overEvery = K9, B.overSome = X9, B.partial = d5, B.partialRight = Hu, B.partition = I7, B.pick = Z6, B.pickBy = Zu, B.property = s4, B.propertyOf = J9, B.pull = kc, B.pullAll = ku, B.pullAllBy = Ic, B.pullAllWith = Nc, B.pullAt = Dc, B.range = Z9, B.rangeRight = Q9, B.rearg = Y7, B.reject = M7, B.remove = Mc, B.rest = K7, B.reverse = c5, B.sampleSize = F7, B.set = e9, B.setWith = t9, B.shuffle = P7, B.slice = $c, B.sortBy = B7, B.sortedUniq = Gc, B.sortedUniqBy = qc, B.split = S9, B.spread = X7, B.tail = Wc, B.take = jc, B.takeRight = Vc, B.takeRightWhile = Yc, B.takeWhile = Kc, B.tap = c7, B.throttle = J7, B.thru = Sl, B.toArray = Vu, B.toPairs = Qu, B.toPairsIn = e4, B.toPath = sf, B.toPlainObject = Ku, B.transform = r9, B.unary = Z7, B.union = Xc, B.unionBy = Jc, B.unionWith = Zc, B.uniq = Qc, B.uniqBy = e7, B.uniqWith = t7, B.unset = n9, B.unzip = f5, B.unzipWith = Iu, B.update = i9, B.updateWith = s9, B.values = H3, B.valuesIn = o9, B.without = r7, B.words = n4, B.wrap = Q7, B.xor = n7, B.xorBy = i7, B.xorWith = s7, B.zip = o7, B.zipObject = a7, B.zipObjectDeep = l7, B.zipWith = u7, B.entries = Qu, B.entriesIn = e4, B.extend = Xu, B.extendWith = kl, w5(B, B), B.add = af, B.attempt = i4, B.camelCase = c9, B.capitalize = t4, B.ceil = lf, B.clamp = a9, B.clone = t6, B.cloneDeep = n6, B.cloneDeepWith = i6, B.cloneWith = r6, B.conformsTo = s6, B.deburr = r4, B.defaultTo = U9, B.divide = uf, B.endsWith = f9, B.eq = Eo, B.escape = h9, B.escapeRegExp = d9, B.every = y7, B.find = E7, B.findIndex = La, B.findKey = M6, B.findLast = x7, B.findLastIndex = z3, B.findLastKey = $6, B.floor = cf, B.forEach = Du, B.forEachRight = Mu, B.forIn = F6, B.forInRight = P6, B.forOwn = U6, B.forOwnRight = z6, B.get = v5, B.gt = o6, B.gte = a6, B.has = G6, B.hasIn = m5, B.head = Ou, B.identity = rs, B.includes = A7, B.indexOf = xc, B.inRange = l9, B.invoke = j6, B.isArguments = b3, B.isArray = X1, B.isArrayBuffer = l6, B.isArrayLike = es, B.isArrayLikeObject = hi, B.isBoolean = u6, B.isBuffer = i3, B.isDate = c6, B.isElement = f6, B.isEmpty = h6, B.isEqual = d6, B.isEqualWith = p6, B.isError = p5, B.isFinite = g6, B.isFunction = Ta, B.isInteger = Gu, B.isLength = Rl, B.isMap = qu, B.isMatch = v6, B.isMatchWith = m6, B.isNaN = b6, B.isNative = C6, B.isNil = w6, B.isNull = y6, B.isNumber = Wu, B.isObject = Fn, B.isObjectLike = Xn, B.isPlainObject = ol, B.isRegExp = g5, B.isSafeInteger = E6, B.isSet = ju, B.isString = Ol, B.isSymbol = Ss, B.isTypedArray = B3, B.isUndefined = x6, B.isWeakMap = S6, B.isWeakSet = L6, B.join = Ac, B.kebabCase = p9, B.last = Qs, B.lastIndexOf = Rc, B.lowerCase = g9, B.lowerFirst = v9, B.lt = T6, B.lte = _6, B.max = ff, B.maxBy = hf, B.mean = df, B.meanBy = pf, B.min = gf, B.minBy = vf, B.stubArray = x5, B.stubFalse = S5, B.stubObject = ef, B.stubString = tf, B.stubTrue = rf, B.multiply = mf, B.nth = Oc, B.noConflict = j9, B.noop = E5, B.now = Tl, B.pad = m9, B.padEnd = b9, B.padStart = C9, B.parseInt = y9, B.random = u9, B.reduce = N7, B.reduceRight = D7, B.repeat = w9, B.replace = E9, B.result = Q6, B.round = bf, B.runInContext = ce, B.sample = $7, B.size = U7, B.snakeCase = x9, B.some = z7, B.sortedIndex = Fc, B.sortedIndexBy = Pc, B.sortedIndexOf = Uc, B.sortedLastIndex = zc, B.sortedLastIndexBy = Bc, B.sortedLastIndexOf = Hc, B.startCase = L9, B.startsWith = T9, B.subtract = Cf, B.sum = yf, B.sumBy = wf, B.template = _9, B.times = nf, B.toFinite = _a, B.toInteger = tr, B.toLength = Yu, B.toLower = A9, B.toNumber = eo, B.toSafeInteger = A6, B.toString = Rr, B.toUpper = R9, B.trim = O9, B.trimEnd = k9, B.trimStart = I9, B.truncate = N9, B.unescape = D9, B.uniqueId = of, B.upperCase = M9, B.upperFirst = b5, B.each = Du, B.eachRight = Mu, B.first = Ou, w5(B, function() {
        var i = {};
        return yr(B, function(c, E) {
          Z1.call(B.prototype, E) || (i[E] = c);
        }), i;
      }(), { chain: !1 }), B.VERSION = b, Er(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(i) {
        B[i].placeholder = B;
      }), Er(["drop", "take"], function(i, c) {
        H1.prototype[i] = function(E) {
          E = E === a ? 1 : Xr(tr(E), 0);
          var A = this.__filtered__ && !c ? new H1(this) : this.clone();
          return A.__filtered__ ? A.__takeCount__ = Jr(E, A.__takeCount__) : A.__views__.push({
            size: Jr(E, nn),
            type: i + (A.__dir__ < 0 ? "Right" : "")
          }), A;
        }, H1.prototype[i + "Right"] = function(E) {
          return this.reverse()[i](E).reverse();
        };
      }), Er(["filter", "map", "takeWhile"], function(i, c) {
        var E = c + 1, A = E == l1 || E == Or;
        H1.prototype[i] = function(F) {
          var G = this.clone();
          return G.__iteratees__.push({
            iteratee: lt(F, 3),
            type: E
          }), G.__filtered__ = G.__filtered__ || A, G;
        };
      }), Er(["head", "last"], function(i, c) {
        var E = "take" + (c ? "Right" : "");
        H1.prototype[i] = function() {
          return this[E](1).value()[0];
        };
      }), Er(["initial", "tail"], function(i, c) {
        var E = "drop" + (c ? "" : "Right");
        H1.prototype[i] = function() {
          return this.__filtered__ ? new H1(this) : this[E](1);
        };
      }), H1.prototype.compact = function() {
        return this.filter(rs);
      }, H1.prototype.find = function(i) {
        return this.filter(i).head();
      }, H1.prototype.findLast = function(i) {
        return this.reverse().find(i);
      }, H1.prototype.invokeMap = K1(function(i, c) {
        return typeof i == "function" ? new H1(this) : this.map(function(E) {
          return s2(E, i, c);
        });
      }), H1.prototype.reject = function(i) {
        return this.filter(Al(lt(i)));
      }, H1.prototype.slice = function(i, c) {
        i = tr(i);
        var E = this;
        return E.__filtered__ && (i > 0 || c < 0) ? new H1(E) : (i < 0 ? E = E.takeRight(-i) : i && (E = E.drop(i)), c !== a && (c = tr(c), E = c < 0 ? E.dropRight(-c) : E.take(c - i)), E);
      }, H1.prototype.takeRightWhile = function(i) {
        return this.reverse().takeWhile(i).reverse();
      }, H1.prototype.toArray = function() {
        return this.take(nn);
      }, yr(H1.prototype, function(i, c) {
        var E = /^(?:filter|find|map|reject)|While$/.test(c), A = /^(?:head|last)$/.test(c), F = B[A ? "take" + (c == "last" ? "Right" : "") : c], G = A || /^find/.test(c);
        !F || (B.prototype[c] = function() {
          var X = this.__wrapped__, te = A ? [1] : arguments, Se = X instanceof H1, ht = te[0], dt = Se || X1(X), Lt = function(ur) {
            var fr = F.apply(B, br([ur], te));
            return A && d1 ? fr[0] : fr;
          };
          dt && E && typeof ht == "function" && ht.length != 1 && (Se = dt = !1);
          var d1 = this.__chain__, A1 = !!this.__actions__.length, P1 = G && !d1, ir = Se && !A1;
          if (!G && dt) {
            X = ir ? X : new H1(this);
            var U1 = i.apply(X, te);
            return U1.__actions__.push({ func: Sl, args: [Lt], thisArg: a }), new qi(U1, d1);
          }
          return P1 && ir ? i.apply(this, te) : (U1 = this.thru(Lt), P1 ? A ? U1.value()[0] : U1.value() : U1);
        });
      }), Er(["pop", "push", "shift", "sort", "splice", "unshift"], function(i) {
        var c = h2[i], E = /^(?:push|sort|unshift)$/.test(i) ? "tap" : "thru", A = /^(?:pop|shift)$/.test(i);
        B.prototype[i] = function() {
          var F = arguments;
          if (A && !this.__chain__) {
            var G = this.value();
            return c.apply(X1(G) ? G : [], F);
          }
          return this[E](function(X) {
            return c.apply(X1(X) ? X : [], F);
          });
        };
      }), yr(H1.prototype, function(i, c) {
        var E = B[c];
        if (E) {
          var A = E.name + "";
          Z1.call(Hi, A) || (Hi[A] = []), Hi[A].push({ name: c, func: E });
        }
      }), Hi[O(a, Tt).name] = [{
        name: "wrapper",
        func: a
      }], H1.prototype.clone = sa, H1.prototype.reverse = Mo, H1.prototype.value = Ba, B.prototype.at = f7, B.prototype.chain = h7, B.prototype.commit = d7, B.prototype.next = p7, B.prototype.plant = v7, B.prototype.reverse = m7, B.prototype.toJSON = B.prototype.valueOf = B.prototype.value = b7, B.prototype.first = B.prototype.head, p2 && (B.prototype[p2] = g7), B;
    }, T2 = Ui();
    Gr ? ((Gr.exports = T2)._ = T2, Pi._ = T2) : sn._ = T2;
  }).call(Oa);
});
class DC {
  constructor(n, a) {
    var b, g;
    this.sv = n, this.storesByType = {}, this.storesXToType = {}, this.storesYToType = {}, (b = this.sv.selectionStoreConnector) === null || b === void 0 || b.beforeUpdate(), this.columns = this.getViewportColumnData(a), (g = this.sv.scrollingService) === null || g === void 0 || g.unregister();
  }
  onColumnResize(n, a, b) {
    var g;
    (g = this.sv.dimensionProvider) === null || g === void 0 || g.setDimensionSize(n, a.detail);
    const C = Tu.reduce(a.detail || {}, (x, I, P) => {
      const M = Qo(b, parseInt(P, 10));
      return M && (x[M.prop] = Object.assign(Object.assign({}, M), { size: I })), x;
    }, {});
    this.sv.resize(C);
  }
  getViewportColumnData(n) {
    const a = [];
    let b = 0;
    return is.forEach((g) => {
      const C = this.sv.columnProvider.stores[g].store;
      if (!C.get("items").length)
        return;
      const x = {
        colType: g,
        position: { x: b, y: 1 },
        contentHeight: n,
        fixWidth: g !== "rgCol",
        uuid: `${this.sv.uuid}-${b}`,
        viewports: this.sv.viewportProvider.stores,
        dimensions: this.sv.dimensionProvider.stores,
        rowStores: this.sv.dataProvider.stores,
        colStore: C,
        onHeaderresize: (U) => this.onColumnResize(g, U, C)
      };
      g === "rgCol" && (x.onResizeViewport = (U) => {
        var j;
        return (j = this.sv.viewportProvider) === null || j === void 0 ? void 0 : j.setViewport(U.detail.dimension, { virtualSize: U.detail.size });
      });
      const I = this.gatherColumnData(x), P = this.registerCol(I.position.x, g), M = this.dataViewPort(x).reduce((U, j) => {
        const K = this.registerSegment(j.position);
        K.setLastCell(j.lastCell);
        const Z = this.registerRow(j.position.y, j.type), re = Object.assign(Object.assign({}, j), { rowSelectionStore: Z, segmentSelectionStore: K.store, ref: (V) => this.sv.selectionStoreConnector.registerSection(V), onSetRange: (V) => K.setRangeArea(V.detail), onSetTempRange: (V) => K.setTempArea(V.detail), onFocusCell: (V) => {
          K.clearFocus(), this.sv.selectionStoreConnector.focus(K, V.detail);
        } });
        return U.push(re), U;
      }, []);
      a.push(Object.assign(Object.assign({}, I), {
        columnSelectionStore: P,
        dataPorts: M
      })), b++;
    }), a;
  }
  registerSegment(n) {
    return this.sv.selectionStoreConnector.register(n);
  }
  registerRow(n, a) {
    return this.storesByType[a] = n, this.storesYToType[n] = a, this.sv.selectionStoreConnector.registerRow(n).store;
  }
  registerCol(n, a) {
    return this.storesByType[a] = n, this.storesXToType[n] = a, this.sv.selectionStoreConnector.registerColumn(n).store;
  }
  gatherColumnData(n) {
    const a = n.uuid, b = n.dimensions[n.colType].store.get("realSize"), g = {
      contentWidth: b,
      class: n.colType,
      [`${J3}`]: n.uuid,
      contentHeight: n.contentHeight,
      key: n.colType,
      onResizeViewport: n.onResizeViewport
    };
    n.fixWidth && (g.style = { minWidth: `${b}px` });
    const C = {
      parent: a,
      colData: l5(n.colStore),
      dimensionCol: n.dimensions[n.colType].store,
      groups: n.colStore.get("groups"),
      groupingDepth: n.colStore.get("groupingDepth"),
      onHeaderresize: n.onHeaderresize
    };
    return {
      prop: g,
      position: n.position,
      headerProp: C,
      parent: a,
      viewportCol: n.viewports[n.colType].store
    };
  }
  dataViewPort(n) {
    const a = {
      rowPinStart: Lu,
      rgRow: dc,
      rowPinEnd: hc
    };
    let b = 0;
    return u3.reduce((g, C) => {
      const x = n.viewports[C].store.get("realCount") || C === "rgRow", I = Object.assign(Object.assign({}, n), { position: Object.assign(Object.assign({}, n.position), { y: x ? b : fc }) });
      return g.push(this.dataPartition(I, C, a[C], C !== "rgRow")), x && b++, g;
    }, []);
  }
  dataPartition(n, a, b, g) {
    return {
      colData: n.colStore,
      viewportCol: n.viewports[n.colType].store,
      viewportRow: n.viewports[a].store,
      lastCell: NC(n, a),
      slot: b,
      type: a,
      canDrag: !g,
      position: n.position,
      uuid: `${n.uuid}-${n.position.x}-${n.position.y}`,
      dataStore: n.rowStores[a].store,
      dimensionCol: n.dimensions[n.colType].store,
      dimensionRow: n.dimensions[a].store,
      style: g ? { height: `${n.dimensions[a].store.get("realSize")}px` } : void 0
    };
  }
  scrollToCell(n) {
    for (let a in n) {
      const b = n[a];
      this.sv.scrollingService.onScroll({ dimension: a === "x" ? "rgCol" : "rgRow", coordinate: b });
    }
  }
  clearFocused() {
    this.sv.selectionStoreConnector.clearAll();
  }
  clearEdit() {
    this.sv.selectionStoreConnector.setEdit(!1);
  }
  getFocused() {
    const n = this.sv.selectionStoreConnector.focusedStore;
    if (!n)
      return null;
    const a = this.storesXToType[n.position.x], b = this.sv.columnProvider.getColumn(n.cell.x, a), g = this.storesYToType[n.position.x], C = this.sv.dataProvider.getModel(n.cell.x, g);
    return {
      column: b,
      model: C,
      cell: n.cell,
      colType: a,
      rowType: g
    };
  }
  setEdit(n, a, b, g) {
    var C;
    const x = this.storesByType, I = {
      x: x[b],
      y: x[g]
    };
    (C = this.sv.selectionStoreConnector) === null || C === void 0 || C.setEditByCell(I, { x: a, y: n });
  }
}
const MC = ({ resize: s, editors: n, rowClass: a, readonly: b, range: g, columns: C, useClipboard: x, columnFilter: I, registerElement: P, onEdit: M, onScroll: U }) => {
  const j = [];
  for (let K of C) {
    const Z = [
      Ot("revogr-header", Object.assign({ viewportCol: K.viewportCol }, K.headerProp, { selectionStore: K.columnSelectionStore, slot: Lu, columnFilter: I, canResize: s }))
    ];
    K.dataPorts.forEach((re, V) => {
      const at = K.prop.key + (V + 1), Tt = Ot(
        "revogr-overlay-selection",
        Object.assign({}, re, { slot: re.slot, selectionStore: re.segmentSelectionStore, editors: n, readonly: b, range: g, useClipboard: x, onSetEdit: ({ detail: Wt }) => M(Wt) }),
        Ot("revogr-data", Object.assign({}, re, { [J3]: re.uuid }, { key: at, readonly: b, range: g, rowClass: a, rowSelectionStore: re.rowSelectionStore, slot: IC })),
        Ot("revogr-temp-range", { selectionStore: re.segmentSelectionStore, dimensionRow: re.dimensionRow, dimensionCol: re.dimensionCol }),
        Ot("revogr-focus", { selectionStore: re.segmentSelectionStore, dimensionRow: re.dimensionRow, dimensionCol: re.dimensionCol })
      );
      Z.push(Tt);
    }), j.push(Ot("revogr-viewport-scroll", Object.assign({}, K.prop, { ref: (re) => P(re, K.prop.key), onScrollViewport: (re) => U(re.detail, K.prop.key) }), Z));
  }
  return j;
};
class $C {
  constructor(n) {
    this.setViewport = n, this.elements = {};
  }
  async onScroll(n, a) {
    let b;
    for (let C in this.elements)
      if (this.isPinnedColumn(a) && n.dimension === "rgCol") {
        if (C === a || !n.delta)
          continue;
        for (let x of this.elements[C])
          x.changeScroll && (b = x.changeScroll(n));
      } else {
        if (n.dimension === "rgCol" && C === "headerRow")
          continue;
        for (let x of this.elements[C])
          x.setScroll(n);
      }
    let g = n;
    b && (g = await b), this.setViewport(g);
  }
  isPinnedColumn(n) {
    return ["colPinStart", "colPinEnd"].indexOf(n) > -1;
  }
  registerElements(n) {
    this.elements = n;
  }
  registerElement(n, a) {
    this.elements[a] || (this.elements[a] = []), n ? this.elements[a].push(n) : this.elements[a] && delete this.elements[a];
  }
  unregister() {
    delete this.elements, this.elements = {};
  }
}
class FC extends D3 {
  constructor(n, a) {
    super(n), this.dimensionProvider = a, this.stretchedColumn = null, this.scrollSize = $0(document);
    const b = ({ detail: { columns: g } }) => this.applyStretch(g);
    this.addEventListener("beforecolumnapplied", b);
  }
  setScroll({ type: n, hasScroll: a }) {
    var b;
    n === "rgRow" && this.stretchedColumn && ((b = this.stretchedColumn) === null || b === void 0 ? void 0 : b.initialSize) === this.stretchedColumn.size && a && (this.stretchedColumn.size -= this.scrollSize, this.apply(), this.dropChanges());
  }
  activateChanges() {
    const n = ({ detail: a }) => this.setScroll(a);
    this.addEventListener("scrollchange", n);
  }
  dropChanges() {
    this.stretchedColumn = null, this.removeEventListener("scrollchange");
  }
  apply() {
    if (!this.stretchedColumn)
      return;
    const n = "rgCol";
    this.dimensionProvider.setDimensionSize(n, { [this.stretchedColumn.index]: this.stretchedColumn.size });
  }
  applyStretch(n) {
    this.dropChanges();
    let a = this.revogrid.clientWidth - 1;
    if (Tu.each(n, (b, g) => {
      const C = this.dimensionProvider.stores[g].store.get("realSize");
      a -= C;
    }), a > 0) {
      const b = n.rgCol.length - 1, g = n.rgCol[b], C = (g == null ? void 0 : g.size) || this.revogrid.colSize || 0, x = a + C - 1;
      g && !g.autoSize && C < x && (this.stretchedColumn = {
        initialSize: x,
        index: b,
        size: x
      }, this.apply(), this.activateChanges());
    }
  }
}
function PC(s) {
  return !!s.applyStretch;
}
const UC = `.revo-drag-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:7px;background-size:cover;background-repeat:no-repeat}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#6200ee;height:34px;line-height:34px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#2ee072;border:1px solid #20d565}.revo-button.light{border:2px solid #cedefa;line-height:32px;background:none;color:#4876ca;box-shadow:none}revo-grid[theme=default]{font-size:12px}revo-grid[theme=default] revogr-header{text-align:center;line-height:30px;background-color:#f8f9fa}revo-grid[theme=default] revogr-header .group-rgRow{box-shadow:none}revo-grid[theme=default] revogr-header .header-rgRow,revo-grid[theme=default] revogr-header .group-rgRow{text-transform:uppercase;font-size:12px;color:#61656a}revo-grid[theme=default] revogr-header .header-rgRow{height:30px;box-shadow:0 -1px 0 0 #c0c0c0 inset}revo-grid[theme=default] revogr-header .rgHeaderCell{box-shadow:-1px 0 0 0 #c0c0c0, -1px 0 0 0 #c0c0c0 inset, 0 -1px 0 0 #c0c0c0, 0 -1px 0 0 #c0c0c0 inset}revo-grid[theme=default] revogr-header .rgHeaderCell.focused-cell{background:rgba(233, 234, 237, 0.5)}revo-grid[theme=default] .rowHeaders{background-color:#f8f9fa}revo-grid[theme=default] .rowHeaders revogr-data .rgCell{color:#61656a;box-shadow:0 -1px 0 0 #c0c0c0 inset, -1px 0 0 0 #c0c0c0 inset}revo-grid[theme=default] .rowHeaders revogr-header{box-shadow:0 -1px 0 0 #c0c0c0 inset, -1px 0 0 0 #c0c0c0 inset}revo-grid[theme=default] revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child{box-shadow:0 -1px 0 0 #e2e3e3 inset, -1px 0 0 0 #c0c0c0 inset}revo-grid[theme=default] revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 #c0c0c0 inset, -1px 0 0 0 #c0c0c0 inset}revo-grid[theme=default] revogr-viewport-scroll.colPinEnd,revo-grid[theme=default] revogr-viewport-scroll.colPinEnd revogr-header{box-shadow:1px 0 0 #c0c0c0 inset}revo-grid[theme=default] .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 #e2e3e3 inset, -1px 0 0 0 #e2e3e3 inset, 0 -1px 0 0 #e2e3e3 inset}revo-grid[theme=default] revogr-data{text-align:center}revo-grid[theme=default] revogr-data .rgRow{line-height:27px;box-shadow:0 -1px 0 0 #e2e3e3 inset, -1px 0 0 0 #e2e3e3 inset}revo-grid[theme=default] revogr-data .rgRow.focused-rgRow{background-color:rgba(233, 234, 237, 0.5)}revo-grid[theme=default] revogr-data .rgCell{box-shadow:0 -1px 0 0 #e2e3e3 inset, -1px 0 0 0 #e2e3e3 inset}revo-grid[theme=default] revogr-data .rgCell.disabled{background-color:0 -1px 0 0 #e2e3e3 inset, -1px 0 0 0 #e2e3e3 inset}revo-grid[theme=material]{font-family:Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"}revo-grid[theme=material] revogr-header{line-height:50px;font-weight:600;text-align:left}revo-grid[theme=material] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=material] revogr-header .header-rgRow{height:50px}revo-grid[theme=material] revogr-data{text-align:left}revo-grid[theme=material] revogr-data .rgRow{line-height:42px}revo-grid[theme=material] revogr-data .rgCell{padding:0 15px}revo-grid[theme=material] .viewports{width:100%}revo-grid[theme=material] .rowHeaders{background-color:#f7faff}revo-grid[theme=material] .rowHeaders revogr-data .rgCell{color:#757a82}revo-grid[theme=material] revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=material] revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 #f1f1f1, 0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=material] revogr-header .rgHeaderCell.sortable:hover{background-color:#f1f1f1}revo-grid[theme=material] revogr-header .rgHeaderCell.focused-cell{background:rgba(233, 234, 237, 0.5)}revo-grid[theme=material] .footer-wrapper revogr-data{box-shadow:0 -1px 0 #f1f1f1}revo-grid[theme=material] revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 #f1f1f1 inset}revo-grid[theme=material] revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 #f1f1f1}revo-grid[theme=material] revogr-data .rgRow{box-shadow:0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=material] revogr-data .rgRow.focused-rgRow{background-color:rgba(233, 234, 237, 0.5)}revo-grid[theme=material] revogr-data .rgCell{color:rgba(0, 0, 0, 0.87)}revo-grid[theme=material] revogr-data .rgCell.disabled{background-color:#f7f7f7}revo-grid[theme=material] revogr-data .revo-draggable>.revo-drag-icon{background-color:#d4d4d4}revo-grid[theme=material] revogr-data .revo-draggable:hover>.revo-drag-icon{background-color:black}revo-grid[theme=darkMaterial]{font-family:Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";color:#d8d8d8}revo-grid[theme=darkMaterial] revogr-header{line-height:50px;font-weight:600;text-align:left}revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=darkMaterial] revogr-header .header-rgRow{height:50px}revo-grid[theme=darkMaterial] revogr-data{text-align:left}revo-grid[theme=darkMaterial] revogr-data .rgRow{line-height:42px}revo-grid[theme=darkMaterial] revogr-data .rgCell{padding:0 15px}revo-grid[theme=darkMaterial] .viewports{width:100%}revo-grid[theme=darkMaterial] .rowHeaders{background-color:rgba(40, 39, 43, 0.8)}revo-grid[theme=darkMaterial] .rowHeaders revogr-data .rgCell{color:rgba(216, 216, 216, 0.8)}revo-grid[theme=darkMaterial] revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 #404040 inset}revo-grid[theme=darkMaterial] revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 #404040, 0 -1px 0 0 #404040 inset}revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell.sortable:hover{background-color:rgba(64, 64, 64, 0.5)}revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell.focused-cell{background:rgba(115, 148, 160, 0.15)}revo-grid[theme=darkMaterial] .footer-wrapper revogr-data{box-shadow:0 -1px 0 #404040}revo-grid[theme=darkMaterial] revogr-data .rgCell{color:rgba(216, 216, 216, 0.9)}revo-grid[theme=darkMaterial] revogr-data .rgRow{box-shadow:0 -1px 0 0 #404040 inset}revo-grid[theme=darkMaterial] revogr-data .rgRow.focused-rgRow{background-color:rgba(115, 148, 160, 0.15)}revo-grid[theme=darkMaterial] revogr-data .revo-draggable>.revo-drag-icon{background-color:rgba(216, 216, 216, 0.5)}revo-grid[theme=darkMaterial] revogr-data .revo-draggable:hover>.revo-drag-icon{background-color:rgba(216, 216, 216, 0.7)}revo-grid[theme=darkMaterial] revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 #404040 inset}revo-grid[theme=darkMaterial] revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 #404040}revo-grid[theme=darkCompact]{font-family:Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";color:#d8d8d8}revo-grid[theme=darkCompact] revogr-header{line-height:45px;font-weight:600;text-align:left}revo-grid[theme=darkCompact] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=darkCompact] revogr-header .header-rgRow{height:45px}revo-grid[theme=darkCompact] revogr-data{text-align:left}revo-grid[theme=darkCompact] revogr-data .rgRow{line-height:32px}revo-grid[theme=darkCompact] revogr-data .rgCell{padding:0 15px}revo-grid[theme=darkCompact] .viewports{width:100%}revo-grid[theme=darkCompact] .rowHeaders{background-color:rgba(40, 39, 43, 0.8)}revo-grid[theme=darkCompact] .rowHeaders revogr-data .rgCell{color:rgba(216, 216, 216, 0.8)}revo-grid[theme=darkCompact] revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 #404040 inset}revo-grid[theme=darkCompact] revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 #404040, 0 -1px 0 0 #404040 inset}revo-grid[theme=darkCompact] revogr-header .rgHeaderCell.sortable:hover{background-color:rgba(64, 64, 64, 0.5)}revo-grid[theme=darkCompact] revogr-header .rgHeaderCell.focused-cell{background:rgba(115, 148, 160, 0.15)}revo-grid[theme=darkCompact] .footer-wrapper revogr-data{box-shadow:0 -1px 0 #404040}revo-grid[theme=darkCompact] revogr-data .rgCell{color:rgba(216, 216, 216, 0.9)}revo-grid[theme=darkCompact] revogr-data .rgRow{box-shadow:0 -1px 0 0 #404040 inset}revo-grid[theme=darkCompact] revogr-data .rgRow.focused-rgRow{background-color:rgba(115, 148, 160, 0.15)}revo-grid[theme=darkCompact] revogr-data .revo-draggable>.revo-drag-icon{background-color:rgba(216, 216, 216, 0.5)}revo-grid[theme=darkCompact] revogr-data .revo-draggable:hover>.revo-drag-icon{background-color:rgba(216, 216, 216, 0.7)}revo-grid[theme=darkCompact] revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 #404040 inset}revo-grid[theme=darkCompact] revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 #404040}revo-grid[theme=compact]{font-family:Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"}revo-grid[theme=compact] revogr-header{line-height:45px;font-weight:600;text-align:left}revo-grid[theme=compact] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=compact] revogr-header .header-rgRow{height:45px}revo-grid[theme=compact] revogr-data{text-align:left}revo-grid[theme=compact] revogr-data .rgRow{line-height:32px}revo-grid[theme=compact] revogr-data .rgCell{padding:0 15px}revo-grid[theme=compact] .viewports{width:100%}revo-grid[theme=compact] .rowHeaders{background-color:#f7faff}revo-grid[theme=compact] .rowHeaders revogr-data .rgCell{color:#757a82}revo-grid[theme=compact] revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=compact] revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 #f1f1f1, 0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=compact] revogr-header .rgHeaderCell.sortable:hover{background-color:#f1f1f1}revo-grid[theme=compact] revogr-header .rgHeaderCell.focused-cell{background:rgba(233, 234, 237, 0.5)}revo-grid[theme=compact] .footer-wrapper revogr-data{box-shadow:0 -1px 0 #f1f1f1}revo-grid[theme=compact] revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 #f1f1f1 inset}revo-grid[theme=compact] revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 #f1f1f1}revo-grid[theme=compact] revogr-data .rgRow{box-shadow:0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=compact] revogr-data .rgRow.focused-rgRow{background-color:rgba(233, 234, 237, 0.5)}revo-grid[theme=compact] revogr-data .rgCell{color:rgba(0, 0, 0, 0.87)}revo-grid[theme=compact] revogr-data .rgCell.disabled{background-color:#f7f7f7}revo-grid[theme=compact] revogr-data .revo-draggable>.revo-drag-icon{background-color:#d4d4d4}revo-grid[theme=compact] revogr-data .revo-draggable:hover>.revo-drag-icon{background-color:black}revo-grid[theme=compact] revo-dropdown .rv-dr-root{padding:0px 9px}revo-grid{display:block;height:100%;font-family:Helvetica, Arial, Sans-Serif, serif;font-size:14px;position:relative;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;width:100%;height:100%}revo-grid .footer-wrapper,revo-grid .header-wrapper{width:100%}revo-grid .footer-wrapper revogr-data,revo-grid .header-wrapper revogr-data{z-index:3}revo-grid revo-dropdown{width:100%}revo-grid revo-dropdown .rv-dr-root{max-height:100%}revo-grid revo-dropdown.shrink label{opacity:0}revo-grid .viewports{max-height:100%;display:flex;flex-direction:row;align-items:flex-start;max-width:100%}revo-grid .main-viewport{flex-grow:1;height:0;display:flex;flex-direction:row}revo-grid .draggable{position:fixed;height:30px;line-height:30px;background:#fff;border-radius:3px;display:block;z-index:100;margin-top:5px;margin-right:-20px;box-shadow:0 4px 20px 0 rgba(0, 0, 0, 0.15);padding-left:20px;padding-right:5px}revo-grid .draggable.hidden{display:none}revo-grid .draggable .revo-alt-icon{background-color:black;position:absolute;left:5px;top:10px}revo-grid .draggable-wrapper.hidden{display:none}revo-grid .drag-position{position:absolute;left:0;right:0;height:1px;z-index:2;background:red}revo-grid .clipboard{position:absolute;left:0;top:0}revo-grid revogr-scroll-virtual{position:relative}revo-grid revogr-scroll-virtual.vertical,revo-grid revogr-scroll-virtual.horizontal{z-index:3}`, zC = class extends HTMLElement {
  constructor() {
    super(), this.__registerHost(), this.beforeedit = k1(this, "beforeedit", 7), this.beforerangeedit = k1(this, "beforerangeedit", 7), this.afteredit = k1(this, "afteredit", 7), this.beforeautofill = k1(this, "beforeautofill", 7), this.beforeaange = k1(this, "beforeaange", 7), this.roworderchanged = k1(this, "roworderchanged", 7), this.beforesourcesortingapply = k1(this, "beforesourcesortingapply", 7), this.beforesortingapply = k1(this, "beforesortingapply", 7), this.beforesorting = k1(this, "beforesorting", 7), this.rowdragstart = k1(this, "rowdragstart", 7), this.headerclick = k1(this, "headerclick", 7), this.beforecellfocus = k1(this, "beforecellfocus", 7), this.beforefocuslost = k1(this, "beforefocuslost", 7), this.beforesourceset = k1(this, "beforesourceset", 7), this.aftersourceset = k1(this, "aftersourceset", 7), this.beforecolumnsset = k1(this, "beforecolumnsset", 7), this.beforecolumnapplied = k1(this, "beforecolumnapplied", 7), this.aftercolumnsset = k1(this, "aftercolumnsset", 7), this.beforefilterapply = k1(this, "beforefilterapply", 7), this.beforefiltertrimmed = k1(this, "beforefiltertrimmed", 7), this.beforetrimmed = k1(this, "beforetrimmed", 7), this.aftertrimmed = k1(this, "aftertrimmed", 7), this.viewportscroll = k1(this, "viewportscroll", 7), this.beforeexport = k1(this, "beforeexport", 7), this.beforeeditstart = k1(this, "beforeeditstart", 7), this.aftercolumnresize = k1(this, "aftercolumnresize", 7), this.frameSize = 1, this.rowSize = 0, this.colSize = 100, this.range = !1, this.readonly = !1, this.resize = !1, this.canFocus = !0, this.useClipboard = !0, this.columns = [], this.source = [], this.pinnedTopSource = [], this.pinnedBottomSource = [], this.rowDefinitions = [], this.editors = {}, this.columnTypes = {}, this.theme = "default", this.rowClass = "", this.autoSizeColumn = !1, this.filter = !1, this.trimmedRows = {}, this.exporting = !1, this.stretch = !0, this.extraElements = [], this.uuid = null, this.viewport = null, this.internalPlugins = [], this.subscribers = {};
  }
  async refresh(s = "all") {
    this.dataProvider.refresh(s);
  }
  async scrollToRow(s = 0) {
    const n = this.dimensionProvider.getViewPortPos({
      coordinate: s,
      dimension: "rgRow"
    });
    await this.scrollToCoordinate({ y: n });
  }
  async scrollToColumnIndex(s = 0) {
    const n = this.dimensionProvider.getViewPortPos({
      coordinate: s,
      dimension: "rgCol"
    });
    await this.scrollToCoordinate({ x: n });
  }
  async scrollToColumnProp(s) {
    const n = this.columnProvider.getColumnIndexByProp(s, "rgCol");
    if (n < 0)
      return;
    const a = this.dimensionProvider.getViewPortPos({
      coordinate: n,
      dimension: "rgCol"
    });
    await this.scrollToCoordinate({ x: a });
  }
  async updateColumns(s) {
    this.columnProvider.updateColumns(s);
  }
  async addTrimmed(s, n = "external", a = "rgRow") {
    const b = this.beforetrimmed.emit({
      trimmed: s,
      trimmedType: n,
      type: a
    });
    return b.defaultPrevented || (this.dataProvider.setTrimmed({ [n]: b.detail.trimmed }, a), this.aftertrimmed.emit()), b;
  }
  async scrollToCoordinate(s) {
    var n;
    (n = this.viewport) === null || n === void 0 || n.scrollToCell(s);
  }
  async setCellEdit(s, n, a = "rgRow") {
    var b;
    const g = to.getColumnByProp(this.columns, n);
    !g || (await pl(), (b = this.viewport) === null || b === void 0 || b.setEdit(s, this.columnProvider.getColumnIndexByProp(n, "rgCol"), g.pin || "rgCol", a));
  }
  async registerVNode(s) {
    this.extraElements.push(...s), this.extraElements = [...this.extraElements];
  }
  async getSource(s = "rgRow") {
    return this.dataProvider.stores[s].store.get("source");
  }
  async getVisibleSource(s = "rgRow") {
    return l5(this.dataProvider.stores[s].store);
  }
  async getSourceStore(s = "rgRow") {
    return this.dataProvider.stores[s].store;
  }
  async getColumnStore(s = "rgCol") {
    return this.columnProvider.stores[s].store;
  }
  async updateColumnSorting(s, n, a, b) {
    return this.columnProvider.updateColumnSorting(s, n, a, b);
  }
  async clearSorting() {
    this.columnProvider.clearSorting();
  }
  async getColumns() {
    return this.columnProvider.getColumns();
  }
  async clearFocus() {
    var s;
    const n = await this.getFocused();
    this.beforefocuslost.emit(n).defaultPrevented || (this.selectionStoreConnector.clearAll(), (s = this.viewport) === null || s === void 0 || s.clearFocused());
  }
  async getPlugins() {
    return [...this.internalPlugins];
  }
  async getFocused() {
    var s;
    return (s = this.viewport) === null || s === void 0 ? void 0 : s.getFocused();
  }
  handleOutsideClick({ target: s }) {
    s != null && s.closest(`[${J3}="${this.uuid}"]`) || this.clearFocus();
  }
  onRowDragStarted(s) {
    var n;
    s.cancelBubble = !0;
    const a = this.rowdragstart.emit(s.detail);
    if (a.defaultPrevented) {
      s.preventDefault();
      return;
    }
    (n = this.orderService) === null || n === void 0 || n.start(this.element, Object.assign(Object.assign({}, s.detail), a.detail));
  }
  onRowDragEnd() {
    var s;
    (s = this.orderService) === null || s === void 0 || s.end();
  }
  onRowDrag({ detail: s }) {
    var n;
    (n = this.orderService) === null || n === void 0 || n.move(s);
  }
  onRowMouseMove(s) {
    var n;
    s.cancelBubble = !0, (n = this.orderService) === null || n === void 0 || n.moveTip(s.detail);
  }
  async onBeforeEdit(s) {
    s.cancelBubble = !0;
    const { defaultPrevented: n, detail: a } = this.beforeedit.emit(s.detail);
    await pl(), n || (this.dataProvider.setCellData(a), this.afteredit.emit(a));
  }
  onBeforeRangeEdit(s) {
    s.cancelBubble = !0;
    const { defaultPrevented: n } = this.beforerangeedit.emit(s.detail);
    if (n) {
      s.preventDefault();
      return;
    }
    this.afteredit.emit(s.detail);
  }
  onRangeChanged(s) {
    s.cancelBubble = !0, this.beforeaange.emit(s.detail).defaultPrevented && s.preventDefault(), this.beforeautofill.emit(s.detail).defaultPrevented;
  }
  onRowDropped(s) {
    s.cancelBubble = !0;
    const { defaultPrevented: n } = this.roworderchanged.emit(s.detail);
    n && s.preventDefault();
  }
  onHeaderClick(s) {
    const { defaultPrevented: n } = this.headerclick.emit(Object.assign(Object.assign({}, s.detail.column), { originalEvent: s.detail.originalEvent }));
    n && s.preventDefault();
  }
  onCellFocus(s) {
    s.cancelBubble = !0;
    const { defaultPrevented: n } = this.beforecellfocus.emit(s.detail);
    (!this.canFocus || n) && s.preventDefault();
  }
  columnChanged(s = []) {
    this.dimensionProvider.drop();
    const n = to.getColumns(s, 0, this.columnTypes);
    this.beforecolumnsset.emit(n);
    for (let b of is) {
      const g = n.columns[b];
      this.dimensionProvider.setRealSize(g.length, b), this.dimensionProvider.setColumns(b, to.getSizes(g), b !== "rgCol");
    }
    this.beforecolumnapplied.emit(n);
    const a = this.columnProvider.setColumns(n);
    this.aftercolumnsset.emit({
      columns: a,
      order: this.columnProvider.order
    });
  }
  themeChanged(s) {
    this.themeService.register(s), this.dimensionProvider.setSettings({ originItemSize: this.themeService.rowSize, frameOffset: this.frameSize || 0 }, "rgRow"), this.dimensionProvider.setSettings({ originItemSize: this.colSize, frameOffset: this.frameSize || 0 }, "rgCol");
  }
  dataChanged(s = []) {
    let n = [...s];
    n = this.beforesourceset.emit({
      type: "rgRow",
      source: n
    }).detail.source, n = this.dataProvider.setData(n, "rgRow"), this.aftersourceset.emit({
      type: "rgRow",
      source: n
    });
  }
  dataBottomChanged(s = []) {
    this.dataProvider.setData(s, "rowPinEnd");
  }
  dataTopChanged(s = []) {
    this.dataProvider.setData(s, "rowPinStart");
  }
  rowDefChanged(s = []) {
    if (!s.length)
      return;
    const n = x2(s, (a, b) => (a[b.type] || (a[b.type] = {}), b.size && (a[b.type].sizes || (a[b.type].sizes = {}), a[b.type].sizes[b.index] = b.size), a), {});
    Ji(n, (a, b) => {
      a.sizes && this.dimensionProvider.setDimensionSize(b, a.sizes);
    });
  }
  trimmedRowsChanged(s = {}) {
    this.addTrimmed(s);
  }
  groupingChanged(s = {}) {
    let n;
    for (let a of this.internalPlugins) {
      const b = a;
      if (b.setGrouping) {
        n = b;
        break;
      }
    }
    !n || n.setGrouping(s || {});
  }
  applyStretch(s) {
    let n = this.internalPlugins.filter((a) => PC(a))[0];
    if (s)
      n ? n.applyStretch(this.columnProvider.getRawColumns()) : this.internalPlugins.push(new FC(this.element, this.dimensionProvider));
    else if (n) {
      const a = this.internalPlugins.indexOf(n);
      this.internalPlugins.splice(a, 1);
    }
  }
  connectedCallback() {
    this.viewportProvider = new Zm(), this.themeService = new e5({
      rowSize: this.rowSize
    }), this.dimensionProvider = new Vm(this.viewportProvider), this.columnProvider = new to(), this.dataProvider = new km(this.dimensionProvider), this.uuid = `${new Date().getTime()}-rvgrid`, this.autoSizeColumn && this.internalPlugins.push(new eb(this.element, {
      dataProvider: this.dataProvider,
      columnProvider: this.columnProvider,
      dimensionProvider: this.dimensionProvider
    }, typeof this.autoSizeColumn == "object" ? this.autoSizeColumn : void 0)), this.filter && this.internalPlugins.push(new ab(this.element, this.uuid, typeof this.filter == "object" ? this.filter : void 0)), this.exporting && this.internalPlugins.push(new yC(this.element)), this.internalPlugins.push(new zb(this.element)), this.plugins && this.plugins.forEach((s) => {
      this.internalPlugins.push(new s(this.element));
    }), this.internalPlugins.push(new SC(this.element, {
      dataProvider: this.dataProvider,
      columnProvider: this.columnProvider
    })), this.applyStretch(this.stretch), this.themeChanged(this.theme), this.columnChanged(this.columns), this.dataChanged(this.source), this.dataTopChanged(this.pinnedTopSource), this.dataBottomChanged(this.pinnedBottomSource), this.trimmedRowsChanged(this.trimmedRows), this.rowDefChanged(this.rowDefinitions), this.groupingChanged(this.grouping), this.selectionStoreConnector = new kC(), this.scrollingService = new $C((s) => {
      this.dimensionProvider.setViewPortCoordinate({
        coordinate: s.coordinate,
        type: s.dimension
      }), this.viewportscroll.emit(s);
    }), this.subscribers = { click: this.handleOutsideClick.bind(this) };
    for (let s in this.subscribers)
      document.addEventListener(s, this.subscribers[s]);
  }
  disconnectedCallback() {
    Ji(this.internalPlugins, (s) => s.destroy()), this.internalPlugins = [];
    for (let s in this.subscribers)
      document.removeEventListener(s, this.subscribers[s]), delete this.subscribers[s];
  }
  render() {
    const s = this.dimensionProvider.stores.rgRow.store.get("realSize");
    this.viewport = new DC({
      columnProvider: this.columnProvider,
      dataProvider: this.dataProvider,
      dimensionProvider: this.dimensionProvider,
      viewportProvider: this.viewportProvider,
      uuid: this.uuid,
      scrollingService: this.scrollingService,
      orderService: this.orderService,
      selectionStoreConnector: this.selectionStoreConnector,
      resize: (a) => this.aftercolumnresize.emit(a)
    }, s);
    const n = [];
    if (this.rowHeaders) {
      const a = this.viewport.columns[0];
      n.push(Ot("revogr-row-headers", { height: s, resize: this.resize, dataPorts: a.dataPorts, headerProp: a.headerProp, uiid: a.prop[J3], rowHeaderColumn: typeof this.rowHeaders == "object" ? this.rowHeaders : void 0, onScrollViewport: ({ detail: b }) => this.scrollingService.onScroll(b, "headerRow"), onElementToScroll: ({ detail: b }) => this.scrollingService.registerElement(b, "headerRow") }));
    }
    return n.push(Ot(MC, { columnFilter: !!this.filter, resize: this.resize, readonly: this.readonly, range: this.range, rowClass: this.rowClass, editors: this.editors, useClipboard: this.useClipboard, columns: this.viewport.columns, onEdit: (a) => {
      this.beforeeditstart.emit(a).defaultPrevented || this.selectionStoreConnector.setEdit(a.isCancel ? !1 : a.val);
    }, registerElement: (a, b) => this.scrollingService.registerElement(a, b), onScroll: (a) => this.scrollingService.onScroll(a) })), Ot(To, Object.assign({}, { [`${J3}`]: this.uuid }), Ot(_C, { viewports: this.viewportProvider.stores, dimensions: this.dimensionProvider.stores, orderRef: (a) => this.orderService = a, registerElement: (a, b) => this.scrollingService.registerElement(a, b), nakedClick: () => this.viewport.clearEdit(), onScroll: (a) => this.scrollingService.onScroll(a) }, n), this.extraElements);
  }
  get element() {
    return this;
  }
  static get watchers() {
    return {
      columns: ["columnChanged"],
      theme: ["themeChanged"],
      source: ["dataChanged"],
      pinnedBottomSource: ["dataBottomChanged"],
      pinnedTopSource: ["dataTopChanged"],
      rowDefinitions: ["rowDefChanged"],
      trimmedRows: ["trimmedRowsChanged"],
      grouping: ["groupingChanged"],
      stretch: ["applyStretch"]
    };
  }
  static get style() {
    return UC;
  }
}, BC = class extends HTMLElement {
  constructor() {
    super(), this.__registerHost(), this.copyRegion = k1(this, "copyRegion", 3), this.pasteRegion = k1(this, "pasteRegion", 3);
  }
  onPaste(s) {
    const n = this.getData(s), a = n.types.indexOf("text/html") > -1, b = a ? n.getData("text/html") : n.getData("text"), g = a ? this.htmlParse(b) : this.textParse(b);
    this.pasteRegion.emit(g), s.preventDefault();
  }
  copyStarted(s) {
    this.copyRegion.emit(this.getData(s)), s.preventDefault();
  }
  async doCopy(s, n) {
    s.setData("text/plain", n ? this.parserCopy(n) : "");
  }
  parserCopy(s) {
    return s.map((n) => n.join("	")).join(`
`);
  }
  textParse(s) {
    const n = [], a = s.split(/\r\n|\n|\r/);
    for (let b in a)
      n.push(a[b].split("	"));
    return n;
  }
  htmlParse(s) {
    const n = [], a = document.createRange().createContextualFragment(s).querySelector("table");
    for (const b of Array.from(a.rows))
      n.push(Array.from(b.cells).map((g) => g.innerText));
    return n;
  }
  getData(s) {
    var n;
    return s.clipboardData || ((n = window) === null || n === void 0 ? void 0 : n.clipboardData);
  }
};
class R3 {
  constructor(n, a) {
    this.dataStore = n, this.source = a, this.unsubscribe = [], this.hasGrouping = !1, this.unsubscribe.push(a.onChange("source", (b) => this.checkGrouping(b))), this.checkGrouping(a.get("source"));
  }
  get columns() {
    return l5(this.source);
  }
  checkGrouping(n) {
    for (let a of n) {
      if (cc(a)) {
        this.hasGrouping = !0;
        return;
      }
      this.hasGrouping = !1;
    }
  }
  isReadOnly(n, a) {
    var b;
    const g = (b = this.columns[a]) === null || b === void 0 ? void 0 : b.readonly;
    if (typeof g == "function") {
      const C = this.rowDataModel(n, a);
      return g(C);
    }
    return g;
  }
  static doMerge(n, a) {
    let b = Object.assign(Object.assign({}, a), n);
    return a.class && (typeof a.class == "object" && typeof b.class == "object" ? b.class = Object.assign(Object.assign({}, a.class), b.class) : typeof a.class == "string" && typeof b.class == "object" ? b.class[a.class] = !0 : typeof b.class == "string" && (b.class += " " + a.class)), a.style && (b.style = Object.assign(Object.assign({}, a.style), b.style)), b;
  }
  mergeProperties(n, a, b) {
    var g;
    const C = {
      [Zb]: !0,
      [Jb]: this.isReadOnly(n, a)
    };
    let x = Object.assign(Object.assign({}, b), { class: C });
    const I = (g = this.columns[a]) === null || g === void 0 ? void 0 : g.cellProperties;
    if (I) {
      const P = this.rowDataModel(n, a), M = I(P);
      return M ? R3.doMerge(x, M) : x;
    }
    return x;
  }
  customRenderer(n, a, b) {
    var g;
    const C = (g = this.columns[a]) === null || g === void 0 ? void 0 : g.cellTemplate;
    if (C)
      return C(Ot, b);
  }
  getRowClass(n, a) {
    return (Qo(this.dataStore, n) || {})[a] || "";
  }
  getCellData(n, a) {
    const b = this.rowDataModel(n, a);
    return R3.getData(b.model[b.prop]);
  }
  getSaveData(n, a, b) {
    typeof b > "u" && (b = this.getCellData(n, a));
    const g = this.rowDataModel(n, a);
    return {
      prop: g.prop,
      rowIndex: n,
      val: b,
      model: g.model,
      type: this.dataStore.get("type")
    };
  }
  getCellEditor(n, a, b) {
    var g;
    const C = (g = this.columns[a]) === null || g === void 0 ? void 0 : g.editor;
    if (!!C)
      return typeof C == "string" ? b[C] : C;
  }
  rowDataModel(n, a) {
    const b = this.columns[a], g = b == null ? void 0 : b.prop, C = Qo(this.dataStore, n) || {};
    return {
      prop: g,
      model: C,
      data: this.dataStore.get("source"),
      column: b,
      rowIndex: n
    };
  }
  getRangeData(n) {
    const a = {}, b = n.oldProps.length, g = this.copyRangeArray(n.oldRange, n.oldProps, this.dataStore), C = g.length;
    for (let x = n.newRange.y, I = 0; x < n.newRange.y1 + 1; x++, I++) {
      const P = g[I % C];
      for (let M = n.newRange.x, U = 0; M < n.newRange.x1 + 1; M++, U++) {
        if (x >= n.oldRange.y && x <= n.oldRange.y1 && M >= n.oldRange.x && M <= n.oldRange.x1)
          continue;
        const j = this.columns[M].prop, K = U % b;
        this.isReadOnly(x, M) || (a[x] || (a[x] = {}), a[x][j] = P[K]);
      }
    }
    return a;
  }
  getTransformedDataToApply(n, a) {
    const b = {}, g = a.length, C = this.columns.length, x = this.dataStore.get("items").length;
    let I = n.y, P = 0;
    for (let U = 0; I < x && U < g; I++, U++) {
      const j = a[U % g], K = (j == null ? void 0 : j.length) || 0;
      let Z = n.x;
      for (let re = 0; Z < C && re < K; Z++, re++) {
        const V = this.columns[Z].prop, at = re % C;
        this.isReadOnly(I, Z) || (b[I] || (b[I] = {}), b[I][V] = j[at]);
      }
      P = Math.max(P, Z - 1);
    }
    const M = Ia(n, {
      y: I - 1,
      x: P
    });
    return {
      changed: b,
      range: M
    };
  }
  applyRangeData(n) {
    const a = {};
    for (let b in n) {
      const g = a[b] = Qo(this.dataStore, parseInt(b, 10));
      for (let C in n[b])
        g[C] = n[b][C];
    }
    Kl(this.dataStore, a);
  }
  getRangeStaticData(n, a) {
    const b = {};
    for (let g = n.y, C = 0; g < n.y1 + 1; g++, C++)
      for (let x = n.x, I = 0; x < n.x1 + 1; x++, I++) {
        const P = this.columns[x].prop;
        this.isReadOnly(g, x) || (b[g] || (b[g] = {}), b[g][P] = a);
      }
    return b;
  }
  copyRangeArray(n, a, b) {
    const g = [];
    for (let C = n.y; C < n.y1 + 1; C++) {
      const x = [];
      for (let I of a) {
        const P = Qo(b, C);
        x.push(P[I]);
      }
      g.push(x);
    }
    return g;
  }
  static getData(n) {
    return typeof n > "u" || n === null ? "" : n.toString();
  }
  destroy() {
    this.unsubscribe.forEach((n) => n());
  }
}
const HC = ({ model: s, canDrag: n, onDragStart: a }) => {
  const b = [];
  return s.column.rowDrag && GC(s.column.rowDrag, s) && (n ? b.push(Ot(
    "span",
    { class: K4, onMouseDown: (g) => a(g) },
    Ot("span", { class: tC })
  )) : b.push(Ot("span", { class: K4 }))), b.push(`${R3.getData(s.model[s.prop])}`), b;
};
function GC(s, n) {
  return typeof s == "function" ? s(n) : !!s;
}
const pc = 10, J5 = ({ rowClass: s, size: n, start: a, style: b, depth: g }, C) => Ot("div", { class: `rgRow ${s || ""}`, style: Object.assign(Object.assign({}, b), { height: `${n}px`, transform: `translateY(${a}px)`, paddingLeft: g ? `${pc * g}px` : void 0 }) }, C);
function qC(s, n, a) {
  const b = new CustomEvent(uc, {
    detail: {
      model: n,
      virtualIndex: a
    },
    cancelable: !0,
    bubbles: !0
  });
  s.target.dispatchEvent(b);
}
const WC = (s) => {
  const { model: n, itemIndex: a, hasExpand: b } = s, g = n[u5], C = n[A3], x = parseInt(n[gl], 10) || 0;
  return b ? Ot(
    J5,
    Object.assign({}, s, { rowClass: "groupingRow", depth: x }),
    Ot(
      "button",
      { class: { [oC]: !0 }, onClick: (I) => qC(I, n, a) },
      Ot(
        "svg",
        { "aria-hidden": "true", style: { transform: `rotate(${C ? 0 : -90}deg)` }, focusable: "false", viewBox: "0 0 448 512" },
        Ot("path", { fill: "currentColor", d: "M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z" })
      )
    ),
    g
  ) : Ot(J5, Object.assign({}, s, { rowClass: "groupingRow", depth: x }));
}, jC = `.revo-drag-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:7px;background-size:cover;background-repeat:no-repeat}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#6200ee;height:34px;line-height:34px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#2ee072;border:1px solid #20d565}.revo-button.light{border:2px solid #cedefa;line-height:32px;background:none;color:#4876ca;box-shadow:none}revogr-data{display:block;width:100%;position:relative}revogr-data .rgRow{position:absolute;width:100%;left:0}revogr-data .rgRow.groupingRow{font-weight:600}revogr-data .rgRow.groupingRow .group-expand{width:25px;height:100%;max-height:25px;margin-right:2px;background-color:transparent;border-color:transparent}revogr-data .rgRow.groupingRow .group-expand svg{width:7px}revogr-data .revo-draggable{border:none;height:32px;display:inline-flex;outline:0;padding:0;font-size:0.8125rem;box-sizing:border-box;align-items:center;white-space:nowrap;vertical-align:middle;justify-content:center;text-decoration:none;width:24px;height:100%;cursor:pointer}revogr-data .revo-draggable>.revo-drag-icon{vertical-align:middle;display:inline-block;pointer-events:none;transition:background-color 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}revogr-data .rgCell{top:0;position:absolute;box-sizing:border-box;height:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}revogr-data .rgCell.align-center{text-align:center}revogr-data .rgCell.align-left{text-align:left}revogr-data .rgCell.align-right{text-align:right}`, VC = class extends HTMLElement {
  constructor() {
    super(), this.__registerHost(), this.dragStartCell = k1(this, "dragStartCell", 7);
  }
  onStoreChange() {
    var s;
    (s = this.columnService) === null || s === void 0 || s.destroy(), this.columnService = new R3(this.dataStore, this.colData);
  }
  connectedCallback() {
    this.onStoreChange();
  }
  disconnectedCallback() {
    var s;
    (s = this.columnService) === null || s === void 0 || s.destroy();
  }
  render() {
    var s;
    const n = this.viewportRow.get("items"), a = this.viewportCol.get("items");
    if (!this.columnService.columns.length || !n.length || !a.length)
      return "";
    const b = (s = this.rowSelectionStore) === null || s === void 0 ? void 0 : s.get("range"), g = [], C = this.dataStore.get("groupingDepth");
    for (let x of n) {
      const I = Qo(this.dataStore, x.itemIndex);
      if (ka(I)) {
        g.push(Ot(WC, Object.assign({}, x, { model: I, hasExpand: this.columnService.hasGrouping })));
        continue;
      }
      const P = [];
      let M = this.rowClass ? this.columnService.getRowClass(x.itemIndex, this.rowClass) : "";
      b && x.itemIndex >= b.y && x.itemIndex <= b.y1 && (M += " focused-rgRow");
      for (let U of a)
        P.push(this.getCellRenderer(x, U, this.canDrag, this.columnService.hasGrouping ? C : 0));
      g.push(Ot(J5, { rowClass: M, size: x.size, start: x.start }, P));
    }
    return g;
  }
  getCellRenderer(s, n, a = !1, b = 0) {
    const g = this.columnService.rowDataModel(s.itemIndex, n.itemIndex), C = {
      [nc]: n.itemIndex,
      [Xb]: s.itemIndex,
      style: {
        width: `${n.size}px`,
        transform: `translateX(${n.start}px)`
      }
    };
    b && !n.itemIndex && (C.style.paddingLeft = `${pc * b}px`);
    const x = this.columnService.mergeProperties(s.itemIndex, n.itemIndex, C), I = this.columnService.customRenderer(s.itemIndex, n.itemIndex, g);
    if (typeof I < "u")
      return Ot("div", Object.assign({}, x), I);
    if (!g.column) {
      console.error("Investigate column problem");
      return;
    }
    return Ot("div", Object.assign({}, x), Ot(HC, { model: g, canDrag: a, onDragStart: (P) => this.dragStartCell.emit(P) }));
  }
  get element() {
    return this;
  }
  static get watchers() {
    return {
      dataStore: ["onStoreChange"],
      colData: ["onStoreChange"]
    };
  }
  static get style() {
    return jC;
  }
};
var Z5;
(function(s) {
  s[s.MOUSE_LEFT = 1] = "MOUSE_LEFT", s[s.MOUSE_RIGHT = 3] = "MOUSE_RIGHT", s[s.MOUSE_MIDDLE = 2] = "MOUSE_MIDDLE", s[s.BACKSPACE = 8] = "BACKSPACE", s[s.COMMA = 188] = "COMMA", s[s.INSERT = 45] = "INSERT", s[s.DELETE = 46] = "DELETE", s[s.END = 35] = "END", s[s.ENTER = 13] = "ENTER", s[s.ESCAPE = 27] = "ESCAPE", s[s.CONTROL = 17] = "CONTROL", s[s.COMMAND_LEFT = 91] = "COMMAND_LEFT", s[s.COMMAND_RIGHT = 93] = "COMMAND_RIGHT", s[s.COMMAND_FIREFOX = 224] = "COMMAND_FIREFOX", s[s.ALT = 18] = "ALT", s[s.HOME = 36] = "HOME", s[s.PAGE_DOWN = 34] = "PAGE_DOWN", s[s.PAGE_UP = 33] = "PAGE_UP", s[s.PERIOD = 190] = "PERIOD", s[s.SPACE = 32] = "SPACE", s[s.SHIFT = 16] = "SHIFT", s[s.CAPS_LOCK = 20] = "CAPS_LOCK", s[s.TAB = 9] = "TAB", s[s.ARROW_RIGHT = 39] = "ARROW_RIGHT", s[s.ARROW_LEFT = 37] = "ARROW_LEFT", s[s.ARROW_UP = 38] = "ARROW_UP", s[s.ARROW_DOWN = 40] = "ARROW_DOWN", s[s.F1 = 112] = "F1", s[s.F2 = 113] = "F2", s[s.F3 = 114] = "F3", s[s.F4 = 115] = "F4", s[s.F5 = 116] = "F5", s[s.F6 = 117] = "F6", s[s.F7 = 118] = "F7", s[s.F8 = 119] = "F8", s[s.F9 = 120] = "F9", s[s.F10 = 121] = "F10", s[s.F11 = 122] = "F11", s[s.F12 = 123] = "F12", s[s.A = 65] = "A", s[s.C = 67] = "C", s[s.D = 68] = "D", s[s.F = 70] = "F", s[s.L = 76] = "L", s[s.O = 79] = "O", s[s.P = 80] = "P", s[s.S = 83] = "S", s[s.V = 86] = "V", s[s.X = 88] = "X";
})(Z5 || (Z5 = {}));
var Jn;
(function(s) {
  s.ENTER = "Enter", s.ENTER_NUM = "NumpadEnter", s.V = "KeyV", s.C = "KeyC", s.ESCAPE = "Escape", s.TAB = "Tab", s.BACKSPACE = "Backspace", s.DELETE = "Delete", s.ARROW_RIGHT = "ArrowRight", s.ARROW_LEFT = "ArrowLeft", s.ARROW_UP = "ArrowUp", s.ARROW_DOWN = "ArrowDown", s.SHIFT = "Shift";
})(Jn || (Jn = {}));
const Ml = Z5;
var Q5;
(function(s) {
  s.mac = "Mac";
})(Q5 || (Q5 = {}));
const YC = Q5;
function KC(s) {
  return s !== s;
}
var XC = KC;
function JC(s, n, a) {
  for (var b = a - 1, g = s.length; ++b < g; )
    if (s[b] === n)
      return b;
  return -1;
}
var ZC = JC;
function QC(s, n, a) {
  return n === n ? ZC(s, n, a) : D0(s, XC, a);
}
var ey = QC;
function ty(s, n) {
  return pu(n, function(a) {
    return s[a];
  });
}
var ry = ty;
function ny(s) {
  return s == null ? [] : ry(s, El(s));
}
var iy = ny, sy = Math.max;
function oy(s, n, a, b) {
  s = k3(s) ? s : iy(s), a = a && !b ? _3(a) : 0;
  var g = s.length;
  return a < 0 && (a = sy(g + a, 0)), K0(s) ? a <= g && s.indexOf(n, a) > -1 : !!g && ey(s, n, a) > -1;
}
var ay = oy;
function ly(s) {
  return s === 32 || s >= 48 && s <= 57 || s >= 96 && s <= 111 || s >= 186 && s <= 192 || s >= 219 && s <= 222 || s >= 226 || s >= 65 && s <= 90;
}
function Z4(s, n) {
  return n.includes(YC.mac) ? ay([Ml.COMMAND_LEFT, Ml.COMMAND_RIGHT, Ml.COMMAND_FIREFOX], s) : Ml.CONTROL === s;
}
function uy(s) {
  return Jn.BACKSPACE === s || Jn.DELETE === s;
}
function cy(s) {
  return Jn.TAB === s;
}
function gc(s) {
  return s === Jn.ENTER || s === Jn.ENTER_NUM;
}
class fy {
  constructor(n, a) {
    this.column = n, this.saveCallback = a, this.element = null, this.editCell = null;
  }
  async componentDidRender() {
    var n;
    this.editInput && (await pl(), (n = this.editInput) === null || n === void 0 || n.focus());
  }
  onKeyDown(n) {
    const a = gc(n.code), b = cy(n.code);
    (b || a) && n.target && this.saveCallback && (this.editInput.blur(), this.saveCallback(n.target.value, b));
  }
  render() {
    var n;
    return Ot("input", { type: "text", value: ((n = this.editCell) === null || n === void 0 ? void 0 : n.val) || "", ref: (a) => {
      this.editInput = a;
    }, onKeyDown: (a) => this.onKeyDown(a) });
  }
}
const hy = `.revo-drag-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:7px;background-size:cover;background-repeat:no-repeat}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#6200ee;height:34px;line-height:34px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#2ee072;border:1px solid #20d565}.revo-button.light{border:2px solid #cedefa;line-height:32px;background:none;color:#4876ca;box-shadow:none}revogr-edit{display:block;position:absolute;background-color:#fff}revogr-edit input{height:100%;width:100%;box-sizing:border-box}revogr-edit revo-dropdown{height:100%}revogr-edit revo-dropdown.shrink fieldset legend>span{display:none}`, dy = class extends HTMLElement {
  constructor() {
    super(), this.__registerHost(), this.cellEdit = k1(this, "cellEdit", 3), this.closeEdit = k1(this, "closeEdit", 3), this.currentEditor = null;
  }
  onSave(s, n) {
    this.editCell && this.cellEdit.emit({
      rgCol: this.editCell.x,
      rgRow: this.editCell.y,
      val: s,
      preventFocus: n
    });
  }
  componentWillRender() {
    this.currentEditor || (this.editor ? this.currentEditor = new this.editor(this.column, (s, n) => this.onSave(s, n), (s) => this.closeEdit.emit(s)) : this.currentEditor = new fy(this.column, (s, n) => this.onSave(s, n)));
  }
  componentDidRender() {
    !this.currentEditor || (this.currentEditor.element = this.element.firstElementChild, this.currentEditor.componentDidRender && this.currentEditor.componentDidRender());
  }
  disconnectedCallback() {
    !this.currentEditor || (this.currentEditor.disconnectedCallback && this.currentEditor.disconnectedCallback(), this.currentEditor.element && (this.currentEditor.element = null), this.currentEditor = null);
  }
  render() {
    return this.currentEditor ? (this.currentEditor.editCell = this.editCell, Ot(To, { class: ac }, this.currentEditor.render(Ot))) : "";
  }
  get element() {
    return this;
  }
  static get style() {
    return hy;
  }
}, Q4 = (s, n) => Ot("button", Object.assign({}, s, { class: Object.assign(Object.assign({}, typeof s.class == "object" ? s.class : s.class ? { [s.class]: !0 } : ""), { ["revo-button"]: !0 }) }), n);
(function() {
  Element.prototype.matches || (Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector), Element.prototype.closest || (Element.prototype.closest = function(n) {
    let a = this;
    do {
      if (Element.prototype.matches.call(a, n))
        return a;
      a = a.parentElement || a.parentNode;
    } while (a !== null && a.nodeType === 1);
    return null;
  });
})();
const py = `.revo-drag-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:7px;background-size:cover;background-repeat:no-repeat}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#6200ee;height:34px;line-height:34px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#2ee072;border:1px solid #20d565}.revo-button.light{border:2px solid #cedefa;line-height:32px;background:none;color:#4876ca;box-shadow:none}revogr-filter-panel{position:absolute;display:block;top:0;left:0;z-index:100;opacity:1;transform:none;background-color:#fff;transform-origin:62px 0px;box-shadow:0 5px 18px -2px rgba(0, 0, 0, 0.2);padding:10px;border-radius:4px;min-width:150px;text-align:left}revogr-filter-panel label{color:gray;font-size:13px;font-weight:600;display:block;padding:8px 0}revogr-filter-panel select{width:100%}revogr-filter-panel input[type=text]{border:0;min-height:34px;margin:5px 0;background:#f3f3f3;border-radius:5px;padding:0 10px;box-sizing:border-box}revogr-filter-panel button{margin-top:10px;margin-right:5px}.rgHeaderCell:hover .rv-filter{transition:opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.rgHeaderCell:hover .rv-filter,.rgHeaderCell .rv-filter.active{opacity:1}.rgHeaderCell .rv-filter{height:24px;width:24px;background:none;border:0;opacity:0;visibility:visible;cursor:pointer;border-radius:4px}.rgHeaderCell .rv-filter.active{color:#10224a}.rgHeaderCell .rv-filter .filter-img{color:gray;width:11px}.select-css{display:block;font-family:sans-serif;font-weight:600;color:#444;line-height:1.3;padding:0.6em 1.4em 0.5em 0.8em;width:100%;max-width:100%;box-sizing:border-box;margin:0;border:1px solid #f1f1f1;box-shadow:transparent;border-radius:0.5em;appearance:none;background-color:#fff;background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"), linear-gradient(to bottom, #ffffff 0%, #ffffff 100%);background-repeat:no-repeat, repeat;background-position:right 0.7em top 50%, 0 0;background-size:0.65em auto, 100%;}.select-css::-ms-expand{display:none}.select-css:hover{border-color:#c5c5c5}.select-css:focus{border-color:#f1f1f1;box-shadow:0 0 1px 3px rgba(59, 153, 252, 0.7);box-shadow:0 0 0 3px -moz-mac-focusring;color:#222;outline:none}.select-css option{font-weight:normal}.select-css:disabled,.select-css[aria-disabled=true]{color:gray;background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"), linear-gradient(to bottom, #ffffff 0%, #ffffff 100%)}.select-css:disabled:hover,.select-css[aria-disabled=true]{border-color:#f1f1f1}`, O5 = "none", gy = class extends HTMLElement {
  constructor() {
    super(), this.__registerHost(), this.filterChange = k1(this, "filterChange", 7), this.filterTypes = {}, this.filterNames = {}, this.filterEntities = {};
  }
  onMouseDown(s) {
    if (this.changes && !s.defaultPrevented) {
      const n = s.target;
      this.isOutside(n) && !H0(n) && (this.changes = void 0);
    }
  }
  async show(s) {
    this.changes = s, this.changes && (this.changes.type = this.changes.type || O5);
  }
  async getChanges() {
    return this.changes;
  }
  renderConditions(s) {
    const n = [];
    for (let a in this.filterTypes)
      n.push(Ot("option", { value: O5 }, this.filterNames[O5])), n.push(...this.filterTypes[a].map((b) => Ot("option", { value: b, selected: s === b }, this.filterNames[b]))), n.push(Ot("option", { disabled: !0 }));
    return n;
  }
  renderExtra(s, n) {
    switch (this.extraElement = void 0, s) {
      case "input":
        return Ot("input", { type: "text", value: n, onInput: (a) => this.onInput(a), onKeyDown: (a) => this.onKeyDown(a), ref: (a) => this.extraElement = a });
      default:
        return "";
    }
  }
  render() {
    if (!this.changes || !this.changes)
      return Ot(To, { style: { display: "none" } });
    const s = {
      display: "block",
      left: `${this.changes.x}px`,
      top: `${this.changes.y}px`
    };
    return Ot(To, { style: s }, Ot("label", null, "Filter by condition"), Ot("select", { class: "select-css", onChange: (n) => this.onFilterChange(n) }, this.renderConditions(this.changes.type)), Ot("div", null, this.renderExtra(this.filterEntities[this.changes.type].extra, this.changes.value)), Ot(Q4, { class: { green: !0 }, onClick: () => this.onSave() }, "Save"), Ot(Q4, { class: { light: !0 }, onClick: () => this.onCancel() }, "Cancel"));
  }
  onFilterChange(s) {
    if (!this.changes)
      throw new Error("Changes required per edit");
    const a = s.target.value;
    this.changes = Object.assign(Object.assign({}, this.changes), { type: a });
  }
  onInput(s) {
    this.changes.value = s.target.value, s.preventDefault();
  }
  onKeyDown(s) {
    s.key.toLowerCase() === "enter" && this.onSave(), s.stopPropagation();
  }
  onCancel() {
    this.changes = void 0;
  }
  onSave() {
    var s, n;
    if (!this.changes)
      throw new Error("Changes required per edit");
    this.filterChange.emit({
      prop: this.changes.prop,
      type: this.changes.type,
      value: (n = (s = this.extraElement) === null || s === void 0 ? void 0 : s.value) === null || n === void 0 ? void 0 : n.trim()
    }), this.changes = void 0;
  }
  isOutside(s) {
    return s.classList.contains(`[uuid="${this.uuid}"]`) ? !1 : !(s != null && s.closest(`[uuid="${this.uuid}"]`));
  }
  static get style() {
    return py;
  }
};
function eu({ x: s, y: n }, { el: a, rows: b, cols: g }) {
  const { top: C, left: x, height: I, width: P } = a.getBoundingClientRect();
  let M = n - C;
  M >= I && (M = I - 1);
  let U = s - x;
  U >= P && (U = P - 1);
  const j = X3(b, M), K = X3(g, U);
  return K.itemIndex < 0 && (K.itemIndex = 0), j.itemIndex < 0 && (j.itemIndex = 0), { x: K.itemIndex, y: j.itemIndex };
}
function vy(s, n, a, b = !1) {
  const g = (C) => {
    const x = { x: s.x, y: s.y }, I = b ? { x: s.x1, y: s.y1 } : x, P = I[C] > n[C] ? I : x;
    return P[C] += a[C], { start: x, end: I };
  };
  return a.x ? g("x") : a.y ? g("y") : null;
}
function vc({ x: s, y: n }, { lastCell: a }) {
  return s >= a.x || n >= a.y;
}
function my({ x: s, y: n }) {
  return s < 0 || n < 0;
}
function by(s, n) {
  const a = ["x", "y"];
  for (let b of a)
    if (s[b] !== n[b])
      return { [b]: 1 };
  return null;
}
function Cy(s, n) {
  const a = {}, b = ["x", "y"];
  for (let g of b)
    a[g] = Math.abs(s[g] - n[g]);
  return a.x > a.y ? { x: 1 } : a.y > a.x ? { y: 1 } : null;
}
function yy(s) {
  return {
    left: `${s.left}px`,
    top: `${s.top}px`,
    width: `${s.width}px`,
    height: `${s.height}px`
  };
}
function tu({ x: s, y: n, x1: a, y1: b }, g, C) {
  const x = x3(g, n).start, I = x3(C, s).start, P = x3(g, b).end, M = x3(C, a).end;
  return {
    left: I,
    right: M,
    top: x,
    bottom: P,
    width: M - I,
    height: P - x
  };
}
function Jl(s, n, a) {
  const b = tu(s, n, a);
  return yy(b);
}
const wy = `.revo-drag-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:7px;background-size:cover;background-repeat:no-repeat}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#6200ee;height:34px;line-height:34px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#2ee072;border:1px solid #20d565}.revo-button.light{border:2px solid #cedefa;line-height:32px;background:none;color:#4876ca;box-shadow:none}revogr-focus.focused-cell{box-shadow:-1px 0 0 #0d63e8 inset, 1px 0 0 #0d63e8 inset, 0 -1px 0 #0d63e8 inset, 0 1px 0 #0d63e8 inset;position:absolute;pointer-events:none;z-index:9;display:block}`, Ey = class extends HTMLElement {
  constructor() {
    super(), this.__registerHost();
  }
  changed(s) {
    s == null || s.scrollIntoView({
      block: "nearest",
      inline: "nearest"
    });
  }
  componentDidRender() {
    this.el && this.changed(this.el);
  }
  render() {
    const s = this.selectionStore.get("focus");
    if (s) {
      const n = Jl(Object.assign(Object.assign({}, s), { x1: s.x, y1: s.y }), this.dimensionRow.state, this.dimensionCol.state);
      return Ot(To, { class: oc, style: n });
    }
  }
  get el() {
    return this;
  }
  static get style() {
    return wy;
  }
};
var xy = function() {
  try {
    var s = N3(Object, "defineProperty");
    return s({}, "", {}), s;
  } catch {
  }
}(), e0 = xy;
function Sy(s, n, a) {
  n == "__proto__" && e0 ? e0(s, n, {
    configurable: !0,
    enumerable: !0,
    value: a,
    writable: !0
  }) : s[n] = a;
}
var Ly = Sy;
function Ty(s, n, a, b) {
  for (var g = -1, C = s == null ? 0 : s.length; ++g < C; ) {
    var x = s[g];
    n(b, x, a(x), s);
  }
  return b;
}
var _y = Ty;
function Ay(s, n, a, b) {
  return t5(s, function(g, C, x) {
    n(b, g, a(g), x);
  }), b;
}
var Ry = Ay;
function Oy(s, n) {
  return function(a, b) {
    var g = S2(a) ? _y : Ry, C = n ? n() : {};
    return g(a, s, xl(b), C);
  };
}
var ky = Oy, Iy = ky(function(s, n, a) {
  Ly(s, a, n);
}), Ny = Iy;
const Dy = ({ column: s }) => Ot("i", { class: s.order });
var Z3;
(function(s) {
  s.start = "resize:start", s.move = "resize:move", s.end = "resize:end";
})(Z3 || (Z3 = {}));
const C3 = {
  "resizable-r": { bit: 1, cursor: "ew-resize" },
  "resizable-rb": { bit: 3, cursor: "se-resize" },
  "resizable-b": { bit: 2, cursor: "s-resize" },
  "resizable-lb": { bit: 6, cursor: "sw-resize" },
  "resizable-l": { bit: 4, cursor: "w-resize" },
  "resizable-lt": { bit: 12, cursor: "nw-resize" },
  "resizable-t": { bit: 8, cursor: "n-resize" },
  "resizable-rt": { bit: 9, cursor: "ne-resize" }
}, s3 = {
  l: 1,
  t: 2,
  w: 4,
  h: 8
}, My = (s) => Object.assign(Object.assign({}, s), { fitParent: s.fitParent || !1, active: s.active || [], disableAttributes: s.disableAttributes || [], minWidth: s.minWidth || 0, minHeight: s.minHeight || 0 });
class Zl {
  constructor(n, a) {
    this.initialProps = n, this.$event = a, this.mouseX = 0, this.mouseY = 0, this.width = 0, this.height = 0, this.changeX = 0, this.changeY = 0, this.disableCalcMap = 15, this.props = My(n), this.mouseMoveFunc = this.handleMove.bind(this), this.mouseUpFunc = this.handleUp.bind(this), this.minW = this.props.minWidth, this.minH = this.props.minHeight, this.maxW = this.props.maxWidth, this.maxH = this.props.maxHeight, this.parent = { width: 0, height: 0 }, this.resizeState = 0;
  }
  set(n) {
    this.$el = n, this.props.disableAttributes.forEach((a) => {
      switch (a) {
        case "l":
          this.disableCalcMap &= ~s3.l;
          break;
        case "t":
          this.disableCalcMap &= ~s3.t;
          break;
        case "w":
          this.disableCalcMap &= ~s3.w;
          break;
        case "h":
          this.disableCalcMap &= ~s3.h;
      }
    });
  }
  emitEvent(n, a) {
    !this.$event || this.$event(Object.assign({ eventName: n, width: this.width + this.changeX, height: this.height + this.changeY, changedX: this.changeX, changedY: this.changeY }, a));
  }
  static isTouchEvent(n) {
    var a;
    return ((a = n.touches) === null || a === void 0 ? void 0 : a.length) >= 0;
  }
  handleMove(n) {
    if (!this.resizeState)
      return;
    let a, b;
    Zl.isTouchEvent(n) ? (a = n.touches[0].clientY, b = n.touches[0].clientX) : (a = n.clientY, b = n.clientX);
    let g = this.resizeState & C3["resizable-r"].bit || this.resizeState & C3["resizable-l"].bit;
    if ((this.resizeState & C3["resizable-t"].bit || this.resizeState & C3["resizable-b"].bit) && this.disableCalcMap & s3.h) {
      let x = a - this.mouseY, I = this.changeY + x;
      const P = this.height + I;
      P < this.minH && (I = -(this.height - this.minH)), this.maxH && P > this.maxH && (I = this.maxH - this.height), this.changeY = I, this.mouseY = a, this.activeResizer && (this.activeResizer.style.bottom = `${-this.changeY}px`);
    }
    if (g && this.disableCalcMap & s3.w) {
      let x = b - this.mouseX, I = this.changeX + x;
      const P = this.width + I;
      P < this.minW && (I = -(this.width - this.minW)), this.maxW && P > this.maxW && (I = this.maxW - this.width), this.changeX = I, this.mouseX = b, this.activeResizer && (this.activeResizer.style.right = `${-this.changeX}px`);
    }
    this.emitEvent(Z3.move);
  }
  handleDown(n) {
    if (!n.defaultPrevented) {
      this.dropInitial();
      for (let a in C3) {
        const b = n.target;
        if (this.$el.contains(b) && (b == null ? void 0 : b.classList.contains(a))) {
          document.body.style.cursor = C3[a].cursor, Zl.isTouchEvent(n) ? this.setInitials(n.touches[0], b) : (n.preventDefault && n.preventDefault(), this.setInitials(n, b)), this.resizeState = C3[a].bit;
          const g = Z3.start;
          this.emitEvent(g);
          break;
        }
      }
      this.bindMove();
    }
  }
  handleUp(n) {
    if (n.preventDefault(), this.resizeState !== 0) {
      this.resizeState = 0, document.body.style.cursor = "";
      const a = Z3.end;
      this.emitEvent(a);
    }
    this.dropInitial(), this.unbindMove();
  }
  setInitials({ clientX: n, clientY: a }, b) {
    const g = getComputedStyle(this.$el);
    if (this.$el.classList.add("active"), this.activeResizer = b, this.disableCalcMap & s3.w) {
      this.mouseX = n, this.width = this.$el.clientWidth, this.parent.width = this.$el.parentElement.clientWidth;
      const C = parseFloat(g.paddingLeft) + parseFloat(g.paddingRight);
      this.minW = Math.max(C, this.initialProps.minWidth || 0), this.initialProps.maxWidth && (this.maxW = Math.max(this.width, this.initialProps.maxWidth));
    }
    if (this.disableCalcMap & s3.h) {
      this.mouseY = a, this.height = this.$el.clientHeight, this.parent.height = this.$el.parentElement.clientHeight;
      const C = parseFloat(g.paddingTop) + parseFloat(g.paddingBottom);
      this.minH = Math.max(C, this.initialProps.minHeight || 0), this.initialProps.maxHeight && (this.maxH = Math.max(this.height, this.initialProps.maxHeight));
    }
  }
  dropInitial() {
    this.changeX = this.changeY = this.minW = this.minH, this.width = this.height = 0, this.activeResizer && this.activeResizer.removeAttribute("style"), this.$el.classList.remove("active"), this.activeResizer = null;
  }
  bindMove() {
    document.documentElement.addEventListener("mouseup", this.mouseUpFunc, !0), document.documentElement.addEventListener("touchend", this.mouseUpFunc, !0), document.documentElement.addEventListener("mousemove", this.mouseMoveFunc, !0), document.documentElement.addEventListener("touchmove", this.mouseMoveFunc, !0), document.documentElement.addEventListener("mouseleave", this.mouseUpFunc);
  }
  unbindMove() {
    document.documentElement.removeEventListener("mouseup", this.mouseUpFunc, !0), document.documentElement.removeEventListener("touchend", this.mouseUpFunc, !0), document.documentElement.removeEventListener("mousemove", this.mouseMoveFunc, !0), document.documentElement.removeEventListener("touchmove", this.mouseMoveFunc, !0), document.documentElement.removeEventListener("mouseleave", this.mouseUpFunc);
  }
}
const $y = (s, n) => {
  const a = [], b = s.canResize && new Zl(s, (g) => {
    g.eventName === Z3.end && s.onResize && s.onResize(g);
  }) || null;
  if (s.canResize) {
    if (s.active)
      for (let g in s.active)
        a.push(Ot("div", { onClick: (C) => C.preventDefault(), onDblClick: (C) => {
          C.preventDefault(), s.onDoubleClick && s.onDoubleClick();
        }, onMouseDown: (C) => b == null ? void 0 : b.handleDown(C), onTouchStart: (C) => b == null ? void 0 : b.handleDown(C), class: `resizable resizable-${s.active[g]}` }));
  } else if (s.active)
    for (let g in s.active)
      a.push(Ot("div", { onClick: (C) => C.preventDefault(), onDblClick: (C) => {
        C.preventDefault(), s.onDoubleClick && s.onDoubleClick();
      }, class: `no-resize resizable resizable-${s.active[g]}` }));
  return Ot(
    "div",
    Object.assign({}, s, { ref: (g) => b == null ? void 0 : b.set(g) }),
    n,
    a
  );
}, mc = ({ data: s, props: n }, a) => {
  let b = (s == null ? void 0 : s.name) || "", g = n;
  if (s != null && s.columnTemplate && (b = s.columnTemplate(Ot, s)), s != null && s.columnProperties) {
    const C = s.columnProperties(s);
    C && typeof C == "object" && (g = R3.doMerge(n, C));
  }
  return Ot(
    $y,
    Object.assign({}, g),
    Ot("div", { class: "header-content" }, b),
    a
  );
}, Fy = (s) => {
  var n, a, b, g, C, x;
  const I = {
    [ic]: !0,
    [Qb]: !!(!((n = s.data) === null || n === void 0) && n.sortable)
  };
  !((a = s.data) === null || a === void 0) && a.order && (I[s.data.order] = !0);
  const P = {
    [nc]: s.column.itemIndex,
    canResize: s.canResize,
    minWidth: ((b = s.data) === null || b === void 0 ? void 0 : b.minSize) || rc,
    maxWidth: (g = s.data) === null || g === void 0 ? void 0 : g.maxSize,
    active: ["r"],
    class: I,
    style: { width: `${s.column.size}px`, transform: `translateX(${s.column.start}px)` },
    onResize: s.onResize,
    onDoubleClick(M) {
      s.onDoubleClick({ column: s.data, index: s.column.itemIndex, originalEvent: M });
    },
    onClick(M) {
      M.defaultPrevented || !s.onClick || s.onClick({ column: s.data, index: s.column.itemIndex, originalEvent: M });
    }
  };
  return s.range && s.column.itemIndex >= s.range.x && s.column.itemIndex <= s.range.x1 && typeof P.class == "object" && (P.class[oc] = !0), Ot(
    mc,
    { data: s.data, props: P },
    !((C = s.data) === null || C === void 0) && C.order ? Ot(Dy, { column: s.data }) : "",
    s.canFilter && ((x = s.data) === null || x === void 0 ? void 0 : x.filter) !== !1 ? Ot(rb, { column: s.data }) : ""
  );
}, Py = (s) => {
  const n = {
    canResize: s.canResize,
    minWidth: s.group.ids.length * rc,
    maxWidth: 0,
    active: ["r"],
    class: {
      [ic]: !0
    },
    style: {
      transform: `translateX(${s.start}px)`,
      width: `${s.end - s.start}px`
    },
    onResize: s.onResize
  };
  return Ot(mc, { data: s.group, props: n });
}, Uy = ({ depth: s, groups: n, visibleProps: a, dimensionCol: b, canResize: g, onResize: C }) => {
  const x = [];
  for (let I = 0; I < s; I++) {
    if (n[I])
      for (let P of n[I]) {
        const M = vu(P.ids, (U) => typeof a[U] == "number");
        if (M > -1) {
          const j = a[P.ids[M]] - M, K = j + P.ids.length - 1, Z = x3(b, j).start, re = x3(b, K).end;
          x.push(Ot(Py, { start: Z, end: re, group: P, canResize: g, onResize: (V) => C(V.changedX, j, K) }));
        }
      }
    x.push(Ot("div", { class: `${sc} group` }));
  }
  return x;
}, zy = `@charset "UTF-8";.revo-drag-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:7px;background-size:cover;background-repeat:no-repeat}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#6200ee;height:34px;line-height:34px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#2ee072;border:1px solid #20d565}.revo-button.light{border:2px solid #cedefa;line-height:32px;background:none;color:#4876ca;box-shadow:none}revogr-header{position:relative;z-index:5;display:block}revogr-header .rgHeaderCell{display:flex}revogr-header .rgHeaderCell.align-center{text-align:center}revogr-header .rgHeaderCell.align-left{text-align:left}revogr-header .rgHeaderCell.align-right{text-align:right}revogr-header .rgHeaderCell.sortable{cursor:pointer}revogr-header .rgHeaderCell i.asc:after,revogr-header .rgHeaderCell i.desc:after{font-size:13px}revogr-header .rgHeaderCell i.asc:after{content:"\u2191"}revogr-header .rgHeaderCell i.desc:after{content:"\u2193"}revogr-header .rgHeaderCell,revogr-header .grouped-cell{position:absolute;box-sizing:border-box;height:100%;z-index:1}revogr-header .header-rgRow{display:block;position:relative}revogr-header .header-rgRow.group{z-index:0}revogr-header .group-rgRow{position:relative}revogr-header .rgHeaderCell.active{z-index:10}revogr-header .rgHeaderCell.active .resizable{background-color:deepskyblue}revogr-header .rgHeaderCell .header-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1}revogr-header .rgHeaderCell .resizable{display:block;position:absolute;z-index:90;touch-action:none;user-select:none}revogr-header .rgHeaderCell .resizable:hover{background-color:deepskyblue}revogr-header .rgHeaderCell>.resizable-r{cursor:ew-resize;width:6px;right:0;top:0;height:100%}revogr-header .rgHeaderCell>.resizable-rb{cursor:se-resize;width:6px;height:6px;right:0;bottom:0}revogr-header .rgHeaderCell>.resizable-b{cursor:s-resize;height:6px;bottom:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-lb{cursor:sw-resize;width:6px;height:6px;left:0;bottom:0}revogr-header .rgHeaderCell>.resizable-l{cursor:w-resize;width:6px;left:0;height:100%;top:0}revogr-header .rgHeaderCell>.resizable-lt{cursor:nw-resize;width:6px;height:6px;left:0;top:0}revogr-header .rgHeaderCell>.resizable-t{cursor:n-resize;height:6px;top:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-rt{cursor:ne-resize;width:6px;height:6px;right:0;top:0}revogr-header .rv-filter{visibility:hidden}`, By = class extends HTMLElement {
  constructor() {
    super(), this.__registerHost(), this.initialHeaderClick = k1(this, "initialHeaderClick", 7), this.headerresize = k1(this, "headerresize", 7), this.headerdblClick = k1(this, "headerdblClick", 7), this.parent = "", this.groupingDepth = 0;
  }
  onResize({ width: s }, n) {
    this.headerresize.emit({ [n]: s || 0 });
  }
  onResizeGroup(s, n, a) {
    const b = {}, g = Ny(this.viewportCol.get("items"), "itemIndex"), C = s / (a - n + 1);
    for (let x = n; x <= a; x++) {
      const I = g[x];
      I && (b[x] = I.size + C);
    }
    this.headerresize.emit(b);
  }
  render() {
    var s;
    const n = this.viewportCol.get("items"), a = (s = this.selectionStore) === null || s === void 0 ? void 0 : s.get("range"), b = [], g = {};
    for (let C of n) {
      const x = this.colData[C.itemIndex];
      b.push(Ot(Fy, { range: a, column: C, data: x, canFilter: !!this.columnFilter, canResize: this.canResize, onResize: (I) => this.onResize(I, C.itemIndex), onDoubleClick: (I) => this.headerdblClick.emit(I), onClick: (I) => this.initialHeaderClick.emit(I) })), g[x == null ? void 0 : x.prop] = C.itemIndex;
    }
    return [
      Ot("div", { class: "group-rgRow" }, Ot(Uy, { canResize: this.canResize, visibleProps: g, groups: this.groups, dimensionCol: this.dimensionCol.state, depth: this.groupingDepth, onResize: (C, x, I) => this.onResizeGroup(C, x, I) })),
      Ot("div", { class: `${sc} ${eC}` }, b)
    ];
  }
  get element() {
    return this;
  }
  static get style() {
    return zy;
  }
};
var Hy = function() {
  return ea.Date.now();
}, k5 = Hy, Gy = "Expected a function", qy = Math.max, Wy = Math.min;
function jy(s, n, a) {
  var b, g, C, x, I, P, M = 0, U = !1, j = !1, K = !0;
  if (typeof s != "function")
    throw new TypeError(Gy);
  n = q5(n) || 0, l3(a) && (U = !!a.leading, j = "maxWait" in a, C = j ? qy(q5(a.maxWait) || 0, n) : C, K = "trailing" in a ? !!a.trailing : K);
  function Z(D1) {
    var M1 = b, B1 = g;
    return b = g = void 0, M = D1, x = s.apply(B1, M1), x;
  }
  function re(D1) {
    return M = D1, I = setTimeout(Tt, n), U ? Z(D1) : x;
  }
  function V(D1) {
    var M1 = D1 - P, B1 = D1 - M, V1 = n - M1;
    return j ? Wy(V1, C - B1) : V1;
  }
  function at(D1) {
    var M1 = D1 - P, B1 = D1 - M;
    return P === void 0 || M1 >= n || M1 < 0 || j && B1 >= C;
  }
  function Tt() {
    var D1 = k5();
    if (at(D1))
      return Wt(D1);
    I = setTimeout(Tt, V(D1));
  }
  function Wt(D1) {
    return I = void 0, K && b ? Z(D1) : (b = g = void 0, x);
  }
  function b1() {
    I !== void 0 && clearTimeout(I), M = 0, b = P = g = I = void 0;
  }
  function R1() {
    return I === void 0 ? x : Wt(k5());
  }
  function C1() {
    var D1 = k5(), M1 = at(D1);
    if (b = arguments, g = this, P = D1, M1) {
      if (I === void 0)
        return re(P);
      if (j)
        return clearTimeout(I), I = setTimeout(Tt, n), Z(P);
    }
    return I === void 0 && (I = setTimeout(Tt, n)), x;
  }
  return C1.cancel = b1, C1.flush = R1, C1;
}
var _u = jy;
class Vy {
  constructor(n) {
    this.config = n, this.currentCell = null, this.previousRow = null;
  }
  endOrder(n, a) {
    if (this.currentCell === null)
      return;
    const b = this.getCell(n, a);
    b.y !== this.currentCell.y && (b.y < 0 ? b.y = 0 : b.y < this.currentCell.y && b.y++, this.config.positionChanged(this.currentCell.y, b.y)), this.clear();
  }
  startOrder(n, a) {
    return this.currentCell = this.getCell(n, a), this.currentCell;
  }
  move(n, a) {
    const b = this.getRow(n, a);
    return this.previousRow === b.itemIndex || b.itemIndex < -1 ? null : (this.previousRow = b.itemIndex, b);
  }
  clear() {
    this.currentCell = null, this.previousRow = null;
  }
  getRow(n, { el: a, rows: b }) {
    const { top: g } = a.getBoundingClientRect(), C = n - g, x = X3(b, C);
    return {
      itemIndex: x.itemIndex,
      start: x.start + g,
      end: x.end + g
    };
  }
  getCell({ x: n, y: a }, { el: b, rows: g, cols: C }) {
    const { top: x, left: I } = b.getBoundingClientRect(), P = a - x, M = n - I, U = X3(g, P);
    return { x: X3(C, M).itemIndex, y: U.itemIndex };
  }
}
const Yy = class extends HTMLElement {
  constructor() {
    super(), this.__registerHost(), this.internalRowDragStart = k1(this, "internalRowDragStart", 7), this.internalRowDragEnd = k1(this, "internalRowDragEnd", 7), this.internalRowDrag = k1(this, "internalRowDrag", 7), this.internalRowMouseMove = k1(this, "internalRowMouseMove", 7), this.initialRowDropped = k1(this, "initialRowDropped", 7), this.rowMoveFunc = _u((s) => {
      const n = this.rowOrderService.move(s, this.getData());
      n !== null && this.internalRowDrag.emit(n);
    }, 5);
  }
  onMouseOut() {
    this.clearOrder();
  }
  onMouseUp(s) {
    this.endOrder(s);
  }
  async dragStart(s) {
    s.preventDefault(), this.moveFunc && this.clearOrder();
    const n = this.getData(), a = this.rowOrderService.startOrder(s, n), b = this.rowOrderService.getRow(s.y, n);
    this.internalRowDragStart.emit({ cell: a, text: sC, pos: b, event: s }).defaultPrevented || (this.moveFunc = (C) => this.move(C), document.addEventListener("mousemove", this.moveFunc));
  }
  async endOrder(s) {
    this.rowOrderService.endOrder(s, this.getData()), this.clearOrder();
  }
  async clearOrder() {
    this.rowOrderService.clear(), document.removeEventListener("mousemove", this.moveFunc), this.moveFunc = null, this.internalRowDragEnd.emit();
  }
  move({ x: s, y: n }) {
    this.internalRowMouseMove.emit({ x: s, y: n }), this.rowMoveFunc(n);
  }
  connectedCallback() {
    this.rowOrderService = new Vy({ positionChanged: (s, n) => this.onPositionChanged(s, n) });
  }
  onPositionChanged(s, n) {
    if (this.initialRowDropped.emit({ from: s, to: n }).defaultPrevented)
      return;
    const b = [...this.dataStore.get("items")], g = b.splice(s, 1);
    b.splice(n, 0, ...g), M0(this.dataStore, b);
  }
  getData() {
    return {
      el: this.parent,
      rows: this.dimensionRow.state,
      cols: this.dimensionCol.state
    };
  }
};
class Ky {
  constructor(n, a) {
    this.store = n, this.config = a, this.store = n;
  }
  get edited() {
    return this.store.get("edit");
  }
  get focused() {
    return this.store.get("focus");
  }
  get ranged() {
    return this.store.get("range");
  }
  changeRange(n) {
    return this.config.changeRange(n);
  }
  focus(n, a = !1) {
    if (!n)
      return !1;
    let b = n;
    if (a) {
      let g = this.store.get("focus");
      if (g)
        return this.config.changeRange(Ia(g, b));
    }
    return this.config.focus(n, b);
  }
}
function Xy(s) {
  return !!(s != null && s.closest(`.${ac}`));
}
class Jy {
  constructor(n) {
    this.sv = n, this.ctrlDown = !1;
  }
  async keyDown(n, a) {
    if (!!this.sv.selectionStoreService.focused) {
      if (Z4(n.keyCode, navigator.platform) && (this.ctrlDown = !0), Jn.TAB === n.code) {
        this.keyChangeSelection(n, a);
        return;
      }
      if (this.sv.selectionStoreService.edited) {
        switch (n.code) {
          case Jn.ESCAPE:
            this.sv.doEdit(void 0, !0);
            break;
        }
        return;
      }
      if (uy(n.code)) {
        this.sv.clearCell();
        return;
      }
      if (gc(n.code)) {
        this.sv.doEdit();
        return;
      }
      if (!this.isCopy(n)) {
        if (this.isPaste(n)) {
          this.sv.internalPaste();
          return;
        }
        if (ly(n.keyCode)) {
          this.sv.doEdit(n.key);
          return;
        }
        await this.keyChangeSelection(n, a);
      }
    }
  }
  async keyChangeSelection(n, a) {
    const b = this.changeDirectionKey(n, a);
    if (!b)
      return !1;
    await pl();
    const g = this.sv.selectionStore.get("range"), C = this.sv.selectionStore.get("focus");
    return this.keyPositionChange(b.changes, this.sv.getData(), g, C, b.isMulti);
  }
  keyPositionChange(n, a, b, g, C = !1) {
    if (!b || !g)
      return !1;
    const x = vy(b, g, n, C);
    if (!x)
      return !1;
    if (C) {
      if (vc(x.end, a) || my(x.start))
        return !1;
      const I = Ia(x.start, x.end);
      return this.sv.selectionStoreService.changeRange(I);
    }
    return this.sv.selectionStoreService.focus(x.start);
  }
  keyUp(n) {
    Z4(n.keyCode, navigator.platform) && (this.ctrlDown = !1);
  }
  isCopy(n) {
    return this.ctrlDown && n.code == Jn.C;
  }
  isPaste(n) {
    return this.ctrlDown && n.code == Jn.V;
  }
  changeDirectionKey(n, a) {
    const b = a && n.shiftKey;
    switch (n.code) {
      case Jn.TAB:
      case Jn.ARROW_UP:
      case Jn.ARROW_DOWN:
      case Jn.ARROW_LEFT:
      case Jn.ARROW_RIGHT:
        n.preventDefault();
        break;
    }
    switch (n.code) {
      case Jn.ARROW_UP:
        return { changes: { y: -1 }, isMulti: b };
      case Jn.ARROW_DOWN:
        return { changes: { y: 1 }, isMulti: b };
      case Jn.ARROW_LEFT:
        return { changes: { x: -1 }, isMulti: b };
      case Jn.TAB:
      case Jn.ARROW_RIGHT:
        return { changes: { x: 1 }, isMulti: b };
    }
  }
}
function Zy(s, n, a) {
  var b = -1, g = s.length;
  n < 0 && (n = -n > g ? 0 : g + n), a = a > g ? g : a, a < 0 && (a += g), g = n > a ? 0 : a - n >>> 0, n >>>= 0;
  for (var C = Array(g); ++b < g; )
    C[b] = s[b + n];
  return C;
}
var Qy = Zy;
function ew(s, n, a) {
  var b = s == null ? 0 : s.length;
  return b ? (a && typeof a != "number" && mu(s, n, a) ? (n = 0, a = b) : (n = n == null ? 0 : _3(n), a = a === void 0 ? b : _3(a)), Qy(s, n, a)) : [];
}
var ru = ew, ul;
(function(s) {
  s.selection = "Selection", s.autoFill = "AutoFill";
})(ul || (ul = {}));
class tw {
  constructor(n) {
    this.sv = n, this.autoFillType = null, this.autoFillInitial = null, this.autoFillStart = null, this.autoFillLast = null;
  }
  renderAutofill(n, a) {
    let b;
    return n ? b = tu(n, this.sv.dimensionRow.state, this.sv.dimensionCol.state) : b = tu(Object.assign(Object.assign({}, a), { x1: a.x, y1: a.y }), this.sv.dimensionRow.state, this.sv.dimensionCol.state), Ot("div", { class: iC, style: { left: `${b.right}px`, top: `${b.bottom}px` }, onMouseDown: (g) => this.selectionStart(g, this.sv.getData(), ul.autoFill) });
  }
  get isAutoFill() {
    return !!this.autoFillType;
  }
  selectionMouseMove(n) {
    this.onMouseMoveAutofill || (this.onMouseMoveAutofill = _u((a, b) => this.doAutofillMouseMove(a, b), 5)), this.isAutoFill && this.onMouseMoveAutofill(n, this.sv.getData());
  }
  getFocus() {
    let n = this.sv.selectionStoreService.focused;
    const a = this.sv.selectionStoreService.ranged;
    return a && (n = { x: a.x, y: a.y }), !n && !a ? null : n;
  }
  doAutofillMouseMove({ x: n, y: a }, b) {
    if (!this.autoFillInitial)
      return;
    let g = eu({ x: n, y: a }, b), C;
    this.autoFillLast && (C = by(this.autoFillStart, this.autoFillLast)), (!this.autoFillLast || !C) && (C = Cy(this.autoFillStart, g), this.autoFillLast || (this.autoFillLast = this.autoFillStart)), C && (Ji(C, (x, I) => {
      x && (g = Object.assign(Object.assign({}, this.autoFillLast), { [I]: g[I] }));
    }), !vc(g, b) && (this.autoFillLast = g, this.sv.setTempRange({
      area: Ia(this.autoFillInitial, this.autoFillLast),
      type: this.autoFillType
    })));
  }
  selectionStart(n, a, b = ul.selection) {
    const { top: g, left: C } = n.target.getBoundingClientRect();
    this.autoFillInitial = this.getFocus(), this.autoFillType = b, this.autoFillStart = eu({ x: C, y: g }, a), n.preventDefault();
  }
  clearAutoFillSelection() {
    this.autoFillInitial && (this.autoFillInitial = this.getFocus(), this.autoFillType === ul.autoFill ? this.applyRangeWithData(this.autoFillInitial, this.autoFillLast) : this.applyRangeOnly(this.autoFillInitial, this.autoFillLast)), this.autoFillType = null, this.autoFillInitial = null, this.autoFillLast = null, this.autoFillStart = null;
  }
  onRangeApply(n, a) {
    const b = {};
    for (let C in n)
      b[C] = Qo(this.sv.dataStore, parseInt(C, 10));
    this.sv.internalRangeDataApply({
      data: n,
      models: b,
      type: this.sv.dataStore.get("type")
    }).defaultPrevented || this.sv.columnService.applyRangeData(n), this.sv.setRange(a);
  }
  applyRangeWithData(n, a) {
    if (!n || !a)
      return;
    const b = this.sv.selectionStoreService.ranged, g = Ia(n, a), C = [...this.sv.columnService.columns], x = {
      type: this.sv.dataStore.get("type"),
      newData: {},
      newRange: g,
      oldRange: b,
      newProps: ru(C, g.x, g.x1 + 1).map((P) => P.prop),
      oldProps: ru(C, b.x, b.x1 + 1).map((P) => P.prop)
    };
    if (x.newData = this.sv.columnService.getRangeData(x), this.sv.internalSelectionChanged(x).defaultPrevented) {
      this.sv.setTempRange(null);
      return;
    }
    this.onRangeApply(x.newData, g);
  }
  applyRangeOnly(n, a) {
    if (!n || !a)
      return;
    const b = Ia(n, a);
    this.sv.setRange(b);
  }
}
class rw {
  constructor(n) {
    this.sv = n;
  }
  onCopy(n) {
    if (this.sv.internalCopy().defaultPrevented)
      return !1;
    let b = this.sv.selectionStoreService.focused, g = this.sv.selectionStoreService.ranged, C;
    if (g || (g = Ia(b, b)), g) {
      const x = [...this.sv.columnService.columns], I = ru(x, g.x, g.x1 + 1).map((P) => P.prop);
      C = this.sv.columnService.copyRangeArray(g, I, this.sv.dataStore);
    }
    return this.clipboard.doCopy(n, C), !0;
  }
  renderClipboard() {
    return Ot("revogr-clipboard", { onCopyRegion: (n) => this.onCopy(n.detail), ref: (n) => this.clipboard = n, onPasteRegion: (n) => this.onPaste(n.detail) });
  }
  onPaste(n) {
    const a = this.sv.selectionStoreService.focused, b = this.sv.selectionStoreService.edited !== null;
    if (!a || b)
      return;
    const { changed: g, range: C } = this.sv.columnService.getTransformedDataToApply(a, n);
    this.sv.onRangeApply(g, C);
  }
}
const nw = `.revo-drag-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:7px;background-size:cover;background-repeat:no-repeat}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#6200ee;height:34px;line-height:34px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#2ee072;border:1px solid #20d565}.revo-button.light{border:2px solid #cedefa;line-height:32px;background:none;color:#4876ca;box-shadow:none}revogr-overlay-selection{display:block;position:relative;width:100%}revogr-overlay-selection .autofill-handle{position:absolute;width:10px;height:10px;background:#0d63e8;margin-left:-9px;margin-top:-9px;border:1px solid white;box-sizing:border-box;z-index:10;cursor:crosshair}revogr-overlay-selection .selection-border-range{position:absolute;pointer-events:none;z-index:9}revogr-overlay-selection .selection-border-range{box-shadow:-1px 0 0 #0d63e8 inset, 1px 0 0 #0d63e8 inset, 0 -1px 0 #0d63e8 inset, 0 1px 0 #0d63e8 inset}revogr-overlay-selection revogr-edit{z-index:10}`, iw = class extends HTMLElement {
  constructor() {
    super(), this.__registerHost(), this.internalCopy = k1(this, "internalCopy", 7), this.internalPaste = k1(this, "internalPaste", 7), this.internalCellEdit = k1(this, "internalCellEdit", 7), this.internalFocusCell = k1(this, "internalFocusCell", 7), this.setEdit = k1(this, "setEdit", 3), this.setRange = k1(this, "setRange", 7), this.setTempRange = k1(this, "setTempRange", 7), this.focusCell = k1(this, "focusCell", 3), this.internalSelectionChanged = k1(this, "internalSelectionChanged", 7), this.internalRangeDataApply = k1(this, "internalRangeDataApply", 7), this.keyboardService = null, this.autoFillService = null, this.clipboardService = null;
  }
  onMouseMove(s) {
    this.selectionStoreService.focused && this.autoFillService.selectionMouseMove(s);
  }
  onMouseOut() {
    this.autoFillService.clearAutoFillSelection();
  }
  onMouseUp() {
    this.autoFillService.clearAutoFillSelection();
  }
  onCellDrag(s) {
    var n;
    (n = this.orderEditor) === null || n === void 0 || n.dragStart(s.detail);
  }
  onKeyUp(s) {
    var n;
    (n = this.keyboardService) === null || n === void 0 || n.keyUp(s);
  }
  onKeyDown(s) {
    var n;
    s.defaultPrevented || (n = this.keyboardService) === null || n === void 0 || n.keyDown(s, this.range);
  }
  selectionServiceSet(s) {
    this.selectionStoreService = new Ky(s, {
      changeRange: (n) => {
        var a;
        return !(!((a = this.setRange.emit(n)) === null || a === void 0) && a.defaultPrevented);
      },
      focus: (n, a) => {
        var b;
        const g = { focus: n, end: a }, { defaultPrevented: C } = this.internalFocusCell.emit(this.columnService.getSaveData(n.y, n.x));
        return C ? !1 : !(!((b = this.focusCell.emit(g)) === null || b === void 0) && b.defaultPrevented);
      }
    }), this.keyboardService = new Jy({
      selectionStoreService: this.selectionStoreService,
      selectionStore: s,
      doEdit: (n, a) => this.doEdit(n, a),
      clearCell: () => this.clearCell(),
      getData: () => this.getData(),
      internalPaste: () => this.internalPaste.emit()
    }), this.createAutoFillService(), this.createClipboardService();
  }
  createAutoFillService() {
    this.autoFillService = new tw({
      selectionStoreService: this.selectionStoreService,
      dimensionRow: this.dimensionRow,
      dimensionCol: this.dimensionCol,
      columnService: this.columnService,
      dataStore: this.dataStore,
      setTempRange: (s) => this.setTempRange.emit(s),
      internalSelectionChanged: (s) => this.internalSelectionChanged.emit(s),
      internalRangeDataApply: (s) => this.internalRangeDataApply.emit(s),
      setRange: (s) => this.setRange.emit(s),
      getData: () => this.getData()
    });
  }
  columnServiceSet() {
    var s;
    (s = this.columnService) === null || s === void 0 || s.destroy(), this.columnService = new R3(this.dataStore, this.colData), this.createAutoFillService(), this.createClipboardService();
  }
  createClipboardService() {
    this.clipboardService = new rw({
      selectionStoreService: this.selectionStoreService,
      columnService: this.columnService,
      dataStore: this.dataStore,
      onRangeApply: (s, n) => this.autoFillService.onRangeApply(s, n),
      internalCopy: () => this.internalCopy.emit()
    });
  }
  connectedCallback() {
    this.columnServiceSet(), this.selectionServiceSet(this.selectionStore);
  }
  disconnectedCallback() {
    var s;
    (s = this.columnService) === null || s === void 0 || s.destroy();
  }
  renderRange(s) {
    const n = Jl(s, this.dimensionRow.state, this.dimensionCol.state);
    return [Ot("div", { class: rC, style: n })];
  }
  renderEditCell() {
    const s = this.selectionStore.get("edit");
    if (this.readonly || !s)
      return;
    const n = s.val || this.columnService.getCellData(s.y, s.x), a = Object.assign(Object.assign({}, s), this.columnService.getSaveData(s.y, s.x, n)), b = Jl(Object.assign(Object.assign({}, s), { x1: s.x, y1: s.y }), this.dimensionRow.state, this.dimensionCol.state);
    return Ot("revogr-edit", { onCellEdit: (g) => this.onCellEdit(g.detail), onCloseEdit: (g) => this.closeEdit(g), editCell: a, column: this.columnService.columns[s.x], editor: this.columnService.getCellEditor(s.y, s.x, this.editors), style: b });
  }
  render() {
    const s = this.selectionStoreService.ranged, n = this.selectionStoreService.focused, a = [];
    (s || n) && this.useClipboard && a.push(this.clipboardService.renderClipboard()), s && a.push(...this.renderRange(s));
    const b = this.renderEditCell();
    return b && a.push(b), n && !this.readonly && !b && this.range && a.push(this.autoFillService.renderAutofill(s, n)), this.canDrag && a.push(Ot("revogr-order-editor", { ref: (g) => this.orderEditor = g, dataStore: this.dataStore, dimensionRow: this.dimensionRow, dimensionCol: this.dimensionCol, parent: this.element, onInternalRowDragStart: (g) => this.onRowDragStart(g) })), Ot(To, { onDblClick: () => this.doEdit(), onMouseDown: (g) => this.onElementMouseDown(g) }, a, Ot("slot", { name: "data" }));
  }
  onElementMouseDown(s) {
    if (Xy(s.target))
      return;
    const n = this.getData();
    if (s.defaultPrevented)
      return;
    const a = eu({ x: s.x, y: s.y }, n);
    this.selectionStoreService.focus(a, this.range && s.shiftKey), this.range && this.autoFillService.selectionStart(s, n);
  }
  doEdit(s = "", n = !1) {
    var a;
    if (this.canEdit()) {
      const b = this.selectionStore.get("focus"), g = this.columnService.getSaveData(b.y, b.x);
      (a = this.setEdit) === null || a === void 0 || a.emit(Object.assign(Object.assign({}, g), {
        isCancel: n,
        val: s
      }));
    }
  }
  closeEdit(s) {
    this.doEdit(void 0, !0), s != null && s.detail && this.focusNext();
  }
  async focusNext() {
    await this.keyboardService.keyChangeSelection(new KeyboardEvent("keydown", {
      code: Jn.ARROW_DOWN
    }), this.range) || this.closeEdit();
  }
  clearCell() {
    if (this.selectionStoreService.ranged && !RC(this.selectionStoreService.ranged)) {
      const s = this.columnService.getRangeStaticData(this.selectionStoreService.ranged, "");
      this.autoFillService.onRangeApply(s, this.selectionStoreService.ranged);
    } else if (this.canEdit()) {
      const s = this.selectionStoreService.focused;
      this.onCellEdit({ rgRow: s.y, rgCol: s.x, val: "" }, !0);
    }
  }
  onCellEdit(s, n = !1) {
    const a = this.columnService.getSaveData(s.rgRow, s.rgCol, s.val);
    this.internalCellEdit.emit(a), !n && !s.preventFocus && this.focusNext();
  }
  onRowDragStart({ detail: s }) {
    s.text = this.columnService.getCellData(s.cell.y, s.cell.x);
  }
  canEdit() {
    var s;
    if (this.readonly)
      return !1;
    const n = this.selectionStoreService.focused;
    return n && !(!((s = this.columnService) === null || s === void 0) && s.isReadOnly(n.y, n.x));
  }
  getData() {
    return {
      el: this.element,
      rows: this.dimensionRow.state,
      cols: this.dimensionCol.state,
      lastCell: this.lastCell
    };
  }
  get element() {
    return this;
  }
  static get watchers() {
    return {
      selectionStore: ["selectionServiceSet"],
      dimensionRow: ["createAutoFillService"],
      dimensionCol: ["createAutoFillService"],
      dataStore: ["columnServiceSet"],
      colData: ["columnServiceSet"]
    };
  }
  static get style() {
    return nw;
  }
}, sw = (s) => (n, { rowIndex: a }) => s + a, ow = 10, aw = class extends HTMLElement {
  constructor() {
    super(), this.__registerHost(), this.scrollViewport = k1(this, "scrollViewport", 3), this.elementToScroll = k1(this, "elementToScroll", 3);
  }
  render() {
    var s;
    const n = [], a = new B0();
    let b = 1;
    for (let P of this.dataPorts) {
      const M = P.dataStore.get("items").length, U = new Yl(P.type);
      U.updateData(P.dataStore.get("source"));
      const j = new Yl("colPinStart"), K = Object.assign({ cellTemplate: sw(b) }, this.rowHeaderColumn);
      j.updateData([K]);
      const Z = Object.assign(Object.assign({}, P), { dataStore: U.store, colData: j.store, viewportCol: a.store, readonly: !0, range: !1 });
      n.push(Ot("revogr-data", Object.assign({}, Z))), b += M;
    }
    const g = ((s = this.rowHeaderColumn) === null || s === void 0 ? void 0 : s.size) || (b.toString().length + 1) * ow;
    a.setViewport({
      realCount: 1,
      virtualSize: 0,
      items: [
        {
          size: g,
          start: 0,
          end: g,
          itemIndex: 0
        }
      ]
    });
    const C = `${this.uiid}-rowHeaders`, x = {
      [J3]: C,
      contentHeight: this.height,
      contentWidth: 0,
      style: { minWidth: `${g}px` },
      ref: (P) => this.elementToScroll.emit(P),
      onScrollViewport: (P) => this.scrollViewport.emit(P.detail)
    }, I = Object.assign(Object.assign({}, this.headerProp), { colData: typeof this.rowHeaderColumn == "object" ? [this.rowHeaderColumn] : [], viewportCol: a.store, canResize: !1, parent: C, slot: "header" });
    return Ot(To, { class: "rowHeaders", key: "rowHeaders" }, Ot("revogr-viewport-scroll", Object.assign({}, x), Ot("revogr-header", Object.assign({}, I)), n));
  }
}, t0 = {
  contentSize: 0,
  clientSize: 0,
  virtualSize: 0,
  maxSize: 0
};
class ml {
  constructor(n) {
    this.cfg = n, this.preventArtificialScroll = { rgRow: null, rgCol: null }, this.previousScroll = { rgRow: 0, rgCol: 0 }, this.params = { rgRow: Object.assign({}, t0), rgCol: Object.assign({}, t0) };
  }
  static getVirtualContentSize(n, a, b = 0) {
    return n + (b ? a - b : 0);
  }
  setParams(n, a) {
    const b = ml.getVirtualContentSize(n.contentSize, n.clientSize, n.virtualSize);
    this.params[a] = Object.assign(Object.assign({}, n), { maxSize: b - n.clientSize, virtualContentSize: b });
  }
  setScroll(n) {
    this.cancelScroll(n.dimension), this.preventArtificialScroll[n.dimension] = window.requestAnimationFrame(() => {
      const a = this.getParams(n.dimension);
      n.coordinate = Math.ceil(n.coordinate), this.previousScroll[n.dimension] = this.wrapCoordinate(n.coordinate, a), this.preventArtificialScroll[n.dimension] = null, this.cfg.afterScroll(Object.assign(Object.assign({}, n), { coordinate: a.virtualSize ? this.convert(n.coordinate, a, !1) : n.coordinate }));
    });
  }
  scroll(n, a, b = !1, g) {
    if (this.cancelScroll(a), !b && this.previousScroll[a] === n) {
      this.previousScroll[a] = 0;
      return;
    }
    const C = this.getParams(a);
    this.cfg.beforeScroll({
      dimension: a,
      coordinate: C.virtualSize ? this.convert(n, C) : n,
      delta: g
    });
  }
  getParams(n) {
    return this.params[n];
  }
  wrapCoordinate(n, a) {
    return n < 0 ? 0 : n > a.maxSize ? a.maxSize : n;
  }
  cancelScroll(n) {
    return typeof this.preventArtificialScroll[n] == "number" ? (window.cancelAnimationFrame(this.preventArtificialScroll[n]), this.preventArtificialScroll[n] = null, !0) : !1;
  }
  convert(n, a, b = !0) {
    const g = a.clientSize, C = [0, a.virtualContentSize - g], x = [0, a.contentSize - a.virtualSize];
    return b ? W4(n, C, x) : W4(n, x, C);
  }
}
const lw = `.revo-drag-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:7px;background-size:cover;background-repeat:no-repeat}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#6200ee;height:34px;line-height:34px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#2ee072;border:1px solid #20d565}.revo-button.light{border:2px solid #cedefa;line-height:32px;background:none;color:#4876ca;box-shadow:none}revogr-scroll-virtual[auto-hide]{position:absolute;z-index:100}revogr-scroll-virtual[auto-hide].vertical{right:0;top:0}revogr-scroll-virtual[auto-hide].vertical:hover{min-width:20px}revogr-scroll-virtual[auto-hide].horizontal{bottom:0;left:0}revogr-scroll-virtual[auto-hide].horizontal:hover{min-height:20px}revogr-scroll-virtual.vertical{overflow-y:auto;overflow-x:hidden;height:100%}revogr-scroll-virtual.vertical>div{width:1px}revogr-scroll-virtual.horizontal{overflow-x:auto;overflow-y:hidden;width:100%}revogr-scroll-virtual.horizontal>div{height:1px}`, uw = class extends HTMLElement {
  constructor() {
    super(), this.__registerHost(), this.scrollVirtual = k1(this, "scrollVirtual", 7), this.scrollSize = 0, this.isAutoHide = !1, this.autoHideTimeout = 0, this.dimension = "rgRow";
  }
  async setScroll(s) {
    var n;
    this.dimension === s.dimension && ((n = this.scrollService) === null || n === void 0 || n.setScroll(s));
  }
  async changeScroll(s) {
    if (s.delta) {
      switch (s.dimension) {
        case "rgCol":
          s.coordinate = this.element.scrollLeft + s.delta;
          break;
        case "rgRow":
          s.coordinate = this.element.scrollTop + s.delta;
          break;
      }
      this.setScroll(s);
    }
    return s;
  }
  set size(s) {
    if (this.dimension === "rgRow") {
      this.element.style.minWidth = `${s}px`;
      return;
    }
    this.element.style.minHeight = `${s}px`;
  }
  get size() {
    return this.dimension === "rgRow" ? this.element.clientHeight : this.element.clientWidth;
  }
  connectedCallback() {
    this.scrollService = new ml({
      beforeScroll: (s) => this.scrollVirtual.emit(s),
      afterScroll: (s) => {
        const n = s.dimension === "rgRow" ? "scrollTop" : "scrollLeft";
        this.element[n] = s.coordinate;
      }
    });
  }
  disconnectedCallback() {
    clearTimeout(this.autoHideTimeout);
  }
  componentWillLoad() {
    this.scrollSize = $0(document), this.isAutoHide = !this.scrollSize;
  }
  componentDidRender() {
    const s = this.dimension === "rgRow" ? "scrollHeight" : "scrollWidth";
    this.element[s] > this.size ? this.size = this.scrollSize : this.size = 0, this.scrollService.setParams({
      contentSize: this.dimensionStore.get("realSize"),
      clientSize: this.size,
      virtualSize: this.viewportStore.get("virtualSize")
    }, this.dimension);
  }
  onScroll(s) {
    var n;
    let a = "scrollLeft";
    this.dimension === "rgRow" && (a = "scrollTop"), this.isAutoHide && (this.size = 20, this.autoHideTimeout = this.autoHide(this.autoHideTimeout));
    const b = s.target;
    (n = this.scrollService) === null || n === void 0 || n.scroll(b[a] || 0, this.dimension);
  }
  autoHide(s) {
    return clearTimeout(s), setTimeout(() => {
      this.size = 0;
    }, 6e3);
  }
  render() {
    const s = this.dimension === "rgRow" ? "height" : "width";
    return Ot(To, Object.assign({}, { "auto-hide": this.isAutoHide }, { onScroll: (n) => this.onScroll(n) }), Ot("div", { style: { [s]: `${this.extContentSize(this.viewportStore.get("virtualSize"), this.dimensionStore.get("realSize"))}px` } }));
  }
  extContentSize(s, n) {
    return ml.getVirtualContentSize(n, this.size, s);
  }
  get element() {
    return this;
  }
  static get style() {
    return lw;
  }
}, cw = `.revo-drag-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:7px;background-size:cover;background-repeat:no-repeat}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#6200ee;height:34px;line-height:34px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#2ee072;border:1px solid #20d565}.revo-button.light{border:2px solid #cedefa;line-height:32px;background:none;color:#4876ca;box-shadow:none}.temp-bg-range{display:block;position:absolute;pointer-events:none;z-index:9;border:1px solid #ff5e00;box-sizing:border-box}.temp-bg-range.Selection{border:1px dashed gray}.temp-bg-range>div{width:1px;height:1px;position:absolute}.temp-bg-range>div.top{top:-1px}.temp-bg-range>div.bottom{bottom:-1px}.temp-bg-range>div.left{left:-1px}.temp-bg-range>div.right{right:-1px}`, fw = class extends HTMLElement {
  constructor() {
    super(), this.__registerHost(), this.onChange = Tu.throttle((s) => this.doChange(s), 300);
  }
  doChange(s) {
    s == null || s.scrollIntoView({
      block: "nearest",
      inline: "nearest"
    });
  }
  componentDidRender() {
    this.el && this.onChange(this.el);
  }
  render() {
    const s = this.selectionStore.get("tempRange"), n = this.selectionStore.get("tempRangeType");
    if (!s)
      return;
    let a = "bottom", b = "right";
    const g = this.getRange();
    if (!g)
      return;
    s.y < g.y && (a = "top"), s.x < g.x && (b = "left");
    const C = `${b} ${a}`, x = Jl(s, this.dimensionRow.state, this.dimensionCol.state);
    return Ot(To, { class: {
      [nC]: !0,
      [n || ""]: !0
    }, style: x }, Ot("div", { class: C, ref: (I) => this.el = I }));
  }
  getRange() {
    const s = this.selectionStore.get("range");
    if (s)
      return s;
    const n = this.selectionStore.get("focus");
    return n ? Object.assign(Object.assign({}, n), { x1: n.x, y1: n.y }) : null;
  }
  static get style() {
    return cw;
  }
};
var hw = "Expected a function";
function dw(s, n, a) {
  var b = !0, g = !0;
  if (typeof s != "function")
    throw new TypeError(hw);
  return l3(a) && (b = "leading" in a ? !!a.leading : b, g = "trailing" in a ? !!a.trailing : g), _u(s, n, {
    leading: b,
    maxWait: n,
    trailing: g
  });
}
var pw = dw;
async function gw() {
  if (!("ResizeObserver" in window)) {
    const s = await import("./resize-observer.946ecf99.es.js");
    window.ResizeObserver = s.ResizeObserver;
  }
}
class vw {
  constructor(n, a) {
    this.events = a, this.resizeObserver = null, this.resize = pw((b, g) => {
      var C;
      return (C = this.events) === null || C === void 0 ? void 0 : C.resize(b, g);
    }, 10), this.init(n);
  }
  async init(n) {
    var a;
    await gw(), this.resizeObserver = new ResizeObserver(this.resize), (a = this.resizeObserver) === null || a === void 0 || a.observe(n);
  }
  destroy() {
    var n;
    (n = this.resizeObserver) === null || n === void 0 || n.disconnect(), this.resizeObserver = null;
  }
}
const mw = `.revo-drag-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 438 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M421.875,70.40625 C426.432292,70.40625 430.175781,68.9414062 433.105469,66.0117188 C436.035156,63.0820312 437.5,59.3385417 437.5,54.78125 L437.5,54.78125 L437.5,15.71875 C437.5,11.1614583 436.035156,7.41796875 433.105469,4.48828125 C430.175781,1.55859375 426.432292,0.09375 421.875,0.09375 L421.875,0.09375 L15.625,0.09375 C11.0677083,0.09375 7.32421875,1.55859375 4.39453125,4.48828125 C1.46484375,7.41796875 0,11.1614583 0,15.71875 L0,15.71875 L0,54.78125 C0,59.3385417 1.46484375,63.0820312 4.39453125,66.0117188 C7.32421875,68.9414062 11.0677083,70.40625 15.625,70.40625 L15.625,70.40625 L421.875,70.40625 Z M421.875,226.65625 C426.432292,226.65625 430.175781,225.191406 433.105469,222.261719 C436.035156,219.332031 437.5,215.588542 437.5,211.03125 L437.5,211.03125 L437.5,171.96875 C437.5,167.411458 436.035156,163.667969 433.105469,160.738281 C430.175781,157.808594 426.432292,156.34375 421.875,156.34375 L421.875,156.34375 L15.625,156.34375 C11.0677083,156.34375 7.32421875,157.808594 4.39453125,160.738281 C1.46484375,163.667969 0,167.411458 0,171.96875 L0,171.96875 L0,211.03125 C0,215.588542 1.46484375,219.332031 4.39453125,222.261719 C7.32421875,225.191406 11.0677083,226.65625 15.625,226.65625 L15.625,226.65625 L421.875,226.65625 Z M421.875,382.90625 C426.432292,382.90625 430.175781,381.441406 433.105469,378.511719 C436.035156,375.582031 437.5,371.838542 437.5,367.28125 L437.5,367.28125 L437.5,328.21875 C437.5,323.661458 436.035156,319.917969 433.105469,316.988281 C430.175781,314.058594 426.432292,312.59375 421.875,312.59375 L421.875,312.59375 L15.625,312.59375 C11.0677083,312.59375 7.32421875,314.058594 4.39453125,316.988281 C1.46484375,319.917969 0,323.661458 0,328.21875 L0,328.21875 L0,367.28125 C0,371.838542 1.46484375,375.582031 4.39453125,378.511719 C7.32421875,381.441406 11.0677083,382.90625 15.625,382.90625 L15.625,382.90625 L421.875,382.90625 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:7px;background-size:cover;background-repeat:no-repeat}.revo-alt-icon{-webkit-mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#6200ee;height:34px;line-height:34px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#2ee072;border:1px solid #20d565}.revo-button.light{border:2px solid #cedefa;line-height:32px;background:none;color:#4876ca;box-shadow:none}.rowHeaders{z-index:2;font-size:10px;display:flex;height:100%}.rowHeaders revogr-data .rgCell{text-align:center}.rowHeaders .rgCell{padding:0 1em !important;min-width:100%}revogr-viewport-scroll{-ms-overflow-style:none;scrollbar-width:none;overflow-x:auto;overflow-y:hidden;position:relative;z-index:1;height:100%}revogr-viewport-scroll::-webkit-scrollbar{display:none;-webkit-appearance:none}revogr-viewport-scroll.colPinStart,revogr-viewport-scroll.colPinEnd{z-index:2}revogr-viewport-scroll.rgCol{flex-grow:1}revogr-viewport-scroll .content-wrapper{overflow:hidden}revogr-viewport-scroll .inner-content-table{display:flex;flex-direction:column;max-height:100%;width:100%;min-width:100%;position:relative;z-index:0}revogr-viewport-scroll .vertical-inner{overflow-y:auto;position:relative;width:100%;flex-grow:1;-ms-overflow-style:none;scrollbar-width:none;}revogr-viewport-scroll .vertical-inner::-webkit-scrollbar{display:none;-webkit-appearance:none}revogr-viewport-scroll .vertical-inner revogr-data,revogr-viewport-scroll .vertical-inner revogr-overlay-selection{height:100%}`, bw = class extends HTMLElement {
  constructor() {
    super(), this.__registerHost(), this.scrollViewport = k1(this, "scrollViewport", 3), this.resizeViewport = k1(this, "resizeViewport", 7), this.scrollchange = k1(this, "scrollchange", 7), this.scrollThrottling = 30, this.contentWidth = 0, this.contentHeight = 0, this.oldValY = this.contentHeight, this.oldValX = this.contentWidth, this.mouseWheelScroll = { rgCol: 0, rgRow: 0 };
  }
  async setScroll(s) {
    var n;
    this.latestScrollUpdate(s.dimension), (n = this.scrollService) === null || n === void 0 || n.setScroll(s);
  }
  async changeScroll(s) {
    if (s.delta) {
      switch (s.dimension) {
        case "rgCol":
          s.coordinate = this.horizontalScroll.scrollLeft + s.delta;
          break;
        case "rgRow":
          s.coordinate = this.verticalScroll.scrollTop + s.delta;
          break;
      }
      this.setScroll(s);
    }
    return s;
  }
  connectedCallback() {
    "ontouchstart" in document.documentElement ? this.scrollThrottling = 0 : (this.verticalMouseWheel = this.onVerticalMouseWheel.bind(this, "rgRow", "deltaY"), this.horizontalMouseWheel = this.onHorizontalMouseWheel.bind(this, "rgCol", "deltaX")), this.scrollService = new ml({
      beforeScroll: (s) => this.scrollViewport.emit(s),
      afterScroll: (s) => {
        switch (s.dimension) {
          case "rgCol":
            this.horizontalScroll.scrollLeft = s.coordinate;
            break;
          case "rgRow":
            this.verticalScroll.scrollTop = s.coordinate;
            break;
        }
      }
    });
  }
  componentDidLoad() {
    this.horisontalResize = new vw(this.horizontalScroll, {
      resize: (s) => {
        var n, a;
        let b = ((n = s[0]) === null || n === void 0 ? void 0 : n.contentRect.height) || 0;
        b && (b -= this.header.clientHeight + this.footer.clientHeight);
        const g = {
          rgRow: {
            size: b,
            contentSize: this.contentHeight,
            scroll: this.verticalScroll.scrollTop
          },
          rgCol: {
            size: ((a = s[0]) === null || a === void 0 ? void 0 : a.contentRect.width) || 0,
            contentSize: this.contentWidth,
            scroll: this.horizontalScroll.scrollLeft
          }
        };
        Ji(g, (C, x) => {
          var I;
          this.resizeViewport.emit({ dimension: x, size: C.size }), (I = this.scrollService) === null || I === void 0 || I.scroll(C.scroll, x, !0), this.setScrollVisibility(x, C.size, C.contentSize);
        });
      }
    });
  }
  setScrollVisibility(s, n, a) {
    const b = n < a;
    let g, C;
    switch (s) {
      case "rgCol":
        g = this.horizontalScroll, C = this.horizontalMouseWheel;
        break;
      case "rgRow":
        g = this.verticalScroll, C = this.verticalMouseWheel;
        break;
    }
    b ? (g.classList.add(`scroll-${s}`), g.addEventListener("mousewheel", C)) : (g.classList.remove(`scroll-${s}`), g.removeEventListener("mousewheel", C)), this.scrollchange.emit({ type: s, hasScroll: b });
  }
  disconnectedCallback() {
    this.verticalScroll.removeEventListener("mousewheel", this.verticalMouseWheel), this.horizontalScroll.removeEventListener("mousewheel", this.horizontalMouseWheel), this.horisontalResize.destroy();
  }
  async componentDidRender() {
    this.contentHeight < this.oldValY && this.verticalScroll && (this.verticalScroll.scrollTop += this.contentHeight - this.oldValY), this.oldValY = this.contentHeight, this.contentWidth < this.oldValX && (this.horizontalScroll.scrollLeft += this.contentWidth - this.oldValX), this.oldValX = this.contentWidth, this.scrollService.setParams({
      contentSize: this.contentHeight,
      clientSize: this.verticalScroll.clientHeight,
      virtualSize: 0
    }, "rgRow"), this.scrollService.setParams({
      contentSize: this.contentWidth,
      clientSize: this.horizontalScroll.clientWidth,
      virtualSize: 0
    }, "rgCol"), this.setScrollVisibility("rgRow", this.verticalScroll.clientHeight, this.contentHeight), this.setScrollVisibility("rgCol", this.horizontalScroll.clientWidth, this.contentWidth);
  }
  render() {
    return Ot(To, { onScroll: (s) => this.onScroll("rgCol", s) }, Ot("div", { class: "inner-content-table", style: { width: `${this.contentWidth}px` } }, Ot("div", { class: "header-wrapper", ref: (s) => this.header = s }, Ot("slot", { name: Lu })), Ot("div", { class: "vertical-inner", ref: (s) => this.verticalScroll = s, onScroll: (s) => this.onScroll("rgRow", s) }, Ot("div", { class: "content-wrapper", style: { height: `${this.contentHeight}px` } }, Ot("slot", { name: dc }))), Ot("div", { class: "footer-wrapper", ref: (s) => this.footer = s }, Ot("slot", { name: hc }))));
  }
  onScroll(s, n) {
    var a;
    const b = n.target;
    let g = 0;
    switch (s) {
      case "rgCol":
        g = b == null ? void 0 : b.scrollLeft;
        break;
      case "rgRow":
        g = b == null ? void 0 : b.scrollTop;
        break;
    }
    new Date().getTime() - this.mouseWheelScroll[s] > this.scrollThrottling && ((a = this.scrollService) === null || a === void 0 || a.scroll(g, s));
  }
  latestScrollUpdate(s) {
    this.mouseWheelScroll[s] = new Date().getTime();
  }
  onVerticalMouseWheel(s, n, a) {
    var b;
    a.preventDefault();
    const g = this.verticalScroll.scrollTop + a[n];
    (b = this.scrollService) === null || b === void 0 || b.scroll(g, s, void 0, a[n]), this.latestScrollUpdate(s);
  }
  onHorizontalMouseWheel(s, n, a) {
    var b;
    a.preventDefault();
    const g = this.horizontalScroll.scrollLeft + a[n];
    (b = this.scrollService) === null || b === void 0 || b.scroll(g, s, void 0, a[n]), this.latestScrollUpdate(s);
  }
  get horizontalScroll() {
    return this;
  }
  static get style() {
    return mw;
  }
}, Cw = /* @__PURE__ */ Rs(zC, [0, "revo-grid", { rowHeaders: [4, "row-headers"], frameSize: [2, "frame-size"], rowSize: [2, "row-size"], colSize: [2, "col-size"], range: [4], readonly: [4], resize: [4], canFocus: [4, "can-focus"], useClipboard: [4, "use-clipboard"], columns: [16], source: [16], pinnedTopSource: [16], pinnedBottomSource: [16], rowDefinitions: [16], editors: [16], plugins: [16], columnTypes: [16], theme: [1537], rowClass: [513, "row-class"], autoSizeColumn: [4, "auto-size-column"], filter: [4], trimmedRows: [16], exporting: [4], grouping: [16], stretch: [8], extraElements: [32] }, [[0, "internalRowDragStart", "onRowDragStarted"], [0, "internalRowDragEnd", "onRowDragEnd"], [0, "internalRowDrag", "onRowDrag"], [0, "internalRowMouseMove", "onRowMouseMove"], [0, "internalCellEdit", "onBeforeEdit"], [0, "internalRangeDataApply", "onBeforeRangeEdit"], [0, "internalSelectionChanged", "onRangeChanged"], [0, "initialRowDropped", "onRowDropped"], [0, "initialHeaderClick", "onHeaderClick"], [0, "internalFocusCell", "onCellFocus"]]]), yw = /* @__PURE__ */ Rs(BC, [0, "revogr-clipboard", null, [[4, "paste", "onPaste"], [4, "copy", "copyStarted"]]]), ww = /* @__PURE__ */ Rs(VC, [0, "revogr-data", { readonly: [4], range: [4], canDrag: [4, "can-drag"], rowClass: [1, "row-class"], rowSelectionStore: [16], viewportRow: [16], viewportCol: [16], dimensionRow: [16], colData: [16], dataStore: [16] }]), Ew = /* @__PURE__ */ Rs(dy, [0, "revogr-edit", { editCell: [16], column: [16], editor: [16] }]), xw = /* @__PURE__ */ Rs(gy, [0, "revogr-filter-panel", { uuid: [1537], filterTypes: [16], filterNames: [16], filterEntities: [16], changes: [32] }, [[5, "mousedown", "onMouseDown"]]]), Sw = /* @__PURE__ */ Rs(Ey, [0, "revogr-focus", { selectionStore: [16], dimensionRow: [16], dimensionCol: [16] }]), Lw = /* @__PURE__ */ Rs(By, [0, "revogr-header", { viewportCol: [16], dimensionCol: [16], selectionStore: [16], parent: [1], groups: [16], groupingDepth: [2, "grouping-depth"], canResize: [4, "can-resize"], colData: [16], columnFilter: [4, "column-filter"] }]), Tw = /* @__PURE__ */ Rs(Yy, [0, "revogr-order-editor", { parent: [16], dimensionRow: [16], dimensionCol: [16], dataStore: [16] }, [[5, "mouseleave", "onMouseOut"], [5, "mouseup", "onMouseUp"]]]), _w = /* @__PURE__ */ Rs(iw, [4, "revogr-overlay-selection", { readonly: [4], range: [4], canDrag: [4, "can-drag"], useClipboard: [4, "use-clipboard"], selectionStore: [16], dimensionRow: [16], dimensionCol: [16], dataStore: [16], colData: [16], lastCell: [16], editors: [16] }, [[5, "mousemove", "onMouseMove"], [5, "mouseleave", "onMouseOut"], [5, "mouseup", "onMouseUp"], [0, "dragStartCell", "onCellDrag"], [4, "keyup", "onKeyUp"], [4, "keydown", "onKeyDown"]]]), Aw = /* @__PURE__ */ Rs(aw, [0, "revogr-row-headers", { height: [2], dataPorts: [16], headerProp: [16], uiid: [1], resize: [4], rowHeaderColumn: [16] }]), Rw = /* @__PURE__ */ Rs(uw, [0, "revogr-scroll-virtual", { dimension: [1], viewportStore: [16], dimensionStore: [16] }]), Ow = /* @__PURE__ */ Rs(fw, [0, "revogr-temp-range", { selectionStore: [16], dimensionRow: [16], dimensionCol: [16] }]), kw = /* @__PURE__ */ Rs(bw, [4, "revogr-viewport-scroll", { contentWidth: [2, "content-width"], contentHeight: [2, "content-height"] }]), Iw = (s) => {
  typeof customElements < "u" && [
    Cw,
    yw,
    ww,
    Ew,
    xw,
    Sw,
    Lw,
    Tw,
    _w,
    Aw,
    Rw,
    Ow,
    kw
  ].forEach((n) => {
    customElements.get(n.is) || customElements.define(n.is, n, s);
  });
};
var bc = { exports: {} };
/*! @preserve
 * numeral.js
 * version : 2.0.6
 * author : Adam Draper
 * license : MIT
 * http://adamwdraper.github.com/Numeral-js/
 */
(function(s) {
  (function(n, a) {
    s.exports ? s.exports = a() : n.numeral = a();
  })(w3, function() {
    var n, a, b = "2.0.6", g = {}, C = {}, x = {
      currentLocale: "en",
      zeroFormat: null,
      nullFormat: null,
      defaultFormat: "0,0",
      scalePercentBy100: !0
    }, I = {
      currentLocale: x.currentLocale,
      zeroFormat: x.zeroFormat,
      nullFormat: x.nullFormat,
      defaultFormat: x.defaultFormat,
      scalePercentBy100: x.scalePercentBy100
    };
    function P(M, U) {
      this._input = M, this._value = U;
    }
    return n = function(M) {
      var U, j, K, Z;
      if (n.isNumeral(M))
        U = M.value();
      else if (M === 0 || typeof M > "u")
        U = 0;
      else if (M === null || a.isNaN(M))
        U = null;
      else if (typeof M == "string")
        if (I.zeroFormat && M === I.zeroFormat)
          U = 0;
        else if (I.nullFormat && M === I.nullFormat || !M.replace(/[^0-9]+/g, "").length)
          U = null;
        else {
          for (j in g)
            if (Z = typeof g[j].regexps.unformat == "function" ? g[j].regexps.unformat() : g[j].regexps.unformat, Z && M.match(Z)) {
              K = g[j].unformat;
              break;
            }
          K = K || n._.stringToNumber, U = K(M);
        }
      else
        U = Number(M) || null;
      return new P(M, U);
    }, n.version = b, n.isNumeral = function(M) {
      return M instanceof P;
    }, n._ = a = {
      numberToFormat: function(M, U, j) {
        var K = C[n.options.currentLocale], Z = !1, re = !1, V = 0, at = "", Tt = 1e12, Wt = 1e9, b1 = 1e6, R1 = 1e3, C1 = "", D1 = !1, M1, B1, V1, Y1, tn, Vt, w1;
        if (M = M || 0, B1 = Math.abs(M), n._.includes(U, "(") ? (Z = !0, U = U.replace(/[\(|\)]/g, "")) : (n._.includes(U, "+") || n._.includes(U, "-")) && (tn = n._.includes(U, "+") ? U.indexOf("+") : M < 0 ? U.indexOf("-") : -1, U = U.replace(/[\+|\-]/g, "")), n._.includes(U, "a") && (M1 = U.match(/a(k|m|b|t)?/), M1 = M1 ? M1[1] : !1, n._.includes(U, " a") && (at = " "), U = U.replace(new RegExp(at + "a[kmbt]?"), ""), B1 >= Tt && !M1 || M1 === "t" ? (at += K.abbreviations.trillion, M = M / Tt) : B1 < Tt && B1 >= Wt && !M1 || M1 === "b" ? (at += K.abbreviations.billion, M = M / Wt) : B1 < Wt && B1 >= b1 && !M1 || M1 === "m" ? (at += K.abbreviations.million, M = M / b1) : (B1 < b1 && B1 >= R1 && !M1 || M1 === "k") && (at += K.abbreviations.thousand, M = M / R1)), n._.includes(U, "[.]") && (re = !0, U = U.replace("[.]", ".")), V1 = M.toString().split(".")[0], Y1 = U.split(".")[1], Vt = U.indexOf(","), V = (U.split(".")[0].split(",")[0].match(/0/g) || []).length, Y1 ? (n._.includes(Y1, "[") ? (Y1 = Y1.replace("]", ""), Y1 = Y1.split("["), C1 = n._.toFixed(M, Y1[0].length + Y1[1].length, j, Y1[1].length)) : C1 = n._.toFixed(M, Y1.length, j), V1 = C1.split(".")[0], n._.includes(C1, ".") ? C1 = K.delimiters.decimal + C1.split(".")[1] : C1 = "", re && Number(C1.slice(1)) === 0 && (C1 = "")) : V1 = n._.toFixed(M, 0, j), at && !M1 && Number(V1) >= 1e3 && at !== K.abbreviations.trillion)
          switch (V1 = String(Number(V1) / 1e3), at) {
            case K.abbreviations.thousand:
              at = K.abbreviations.million;
              break;
            case K.abbreviations.million:
              at = K.abbreviations.billion;
              break;
            case K.abbreviations.billion:
              at = K.abbreviations.trillion;
              break;
          }
        if (n._.includes(V1, "-") && (V1 = V1.slice(1), D1 = !0), V1.length < V)
          for (var l1 = V - V1.length; l1 > 0; l1--)
            V1 = "0" + V1;
        return Vt > -1 && (V1 = V1.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1" + K.delimiters.thousands)), U.indexOf(".") === 0 && (V1 = ""), w1 = V1 + C1 + (at || ""), Z ? w1 = (Z && D1 ? "(" : "") + w1 + (Z && D1 ? ")" : "") : tn >= 0 ? w1 = tn === 0 ? (D1 ? "-" : "+") + w1 : w1 + (D1 ? "-" : "+") : D1 && (w1 = "-" + w1), w1;
      },
      stringToNumber: function(M) {
        var U = C[I.currentLocale], j = M, K = {
          thousand: 3,
          million: 6,
          billion: 9,
          trillion: 12
        }, Z, re, V;
        if (I.zeroFormat && M === I.zeroFormat)
          re = 0;
        else if (I.nullFormat && M === I.nullFormat || !M.replace(/[^0-9]+/g, "").length)
          re = null;
        else {
          re = 1, U.delimiters.decimal !== "." && (M = M.replace(/\./g, "").replace(U.delimiters.decimal, "."));
          for (Z in K)
            if (V = new RegExp("[^a-zA-Z]" + U.abbreviations[Z] + "(?:\\)|(\\" + U.currency.symbol + ")?(?:\\))?)?$"), j.match(V)) {
              re *= Math.pow(10, K[Z]);
              break;
            }
          re *= (M.split("-").length + Math.min(M.split("(").length - 1, M.split(")").length - 1)) % 2 ? 1 : -1, M = M.replace(/[^0-9\.]+/g, ""), re *= Number(M);
        }
        return re;
      },
      isNaN: function(M) {
        return typeof M == "number" && isNaN(M);
      },
      includes: function(M, U) {
        return M.indexOf(U) !== -1;
      },
      insert: function(M, U, j) {
        return M.slice(0, j) + U + M.slice(j);
      },
      reduce: function(M, U) {
        if (this === null)
          throw new TypeError("Array.prototype.reduce called on null or undefined");
        if (typeof U != "function")
          throw new TypeError(U + " is not a function");
        var j = Object(M), K = j.length >>> 0, Z = 0, re;
        if (arguments.length === 3)
          re = arguments[2];
        else {
          for (; Z < K && !(Z in j); )
            Z++;
          if (Z >= K)
            throw new TypeError("Reduce of empty array with no initial value");
          re = j[Z++];
        }
        for (; Z < K; Z++)
          Z in j && (re = U(re, j[Z], Z, j));
        return re;
      },
      multiplier: function(M) {
        var U = M.toString().split(".");
        return U.length < 2 ? 1 : Math.pow(10, U[1].length);
      },
      correctionFactor: function() {
        var M = Array.prototype.slice.call(arguments);
        return M.reduce(function(U, j) {
          var K = a.multiplier(j);
          return U > K ? U : K;
        }, 1);
      },
      toFixed: function(M, U, j, K) {
        var Z = M.toString().split("."), re = U - (K || 0), V, at, Tt, Wt;
        return Z.length === 2 ? V = Math.min(Math.max(Z[1].length, re), U) : V = re, Tt = Math.pow(10, V), Wt = (j(M + "e+" + V) / Tt).toFixed(V), K > U - V && (at = new RegExp("\\.?0{1," + (K - (U - V)) + "}$"), Wt = Wt.replace(at, "")), Wt;
      }
    }, n.options = I, n.formats = g, n.locales = C, n.locale = function(M) {
      return M && (I.currentLocale = M.toLowerCase()), I.currentLocale;
    }, n.localeData = function(M) {
      if (!M)
        return C[I.currentLocale];
      if (M = M.toLowerCase(), !C[M])
        throw new Error("Unknown locale : " + M);
      return C[M];
    }, n.reset = function() {
      for (var M in x)
        I[M] = x[M];
    }, n.zeroFormat = function(M) {
      I.zeroFormat = typeof M == "string" ? M : null;
    }, n.nullFormat = function(M) {
      I.nullFormat = typeof M == "string" ? M : null;
    }, n.defaultFormat = function(M) {
      I.defaultFormat = typeof M == "string" ? M : "0.0";
    }, n.register = function(M, U, j) {
      if (U = U.toLowerCase(), this[M + "s"][U])
        throw new TypeError(U + " " + M + " already registered.");
      return this[M + "s"][U] = j, j;
    }, n.validate = function(M, U) {
      var j, K, Z, re, V, at, Tt, Wt;
      if (typeof M != "string" && (M += "", console.warn && console.warn("Numeral.js: Value is not string. It has been co-erced to: ", M)), M = M.trim(), M.match(/^\d+$/))
        return !0;
      if (M === "")
        return !1;
      try {
        Tt = n.localeData(U);
      } catch {
        Tt = n.localeData(n.locale());
      }
      return Z = Tt.currency.symbol, V = Tt.abbreviations, j = Tt.delimiters.decimal, Tt.delimiters.thousands === "." ? K = "\\." : K = Tt.delimiters.thousands, Wt = M.match(/^[^\d]+/), Wt !== null && (M = M.substr(1), Wt[0] !== Z) || (Wt = M.match(/[^\d]+$/), Wt !== null && (M = M.slice(0, -1), Wt[0] !== V.thousand && Wt[0] !== V.million && Wt[0] !== V.billion && Wt[0] !== V.trillion)) ? !1 : (at = new RegExp(K + "{2}"), M.match(/[^\d.,]/g) ? !1 : (re = M.split(j), re.length > 2 ? !1 : re.length < 2 ? !!re[0].match(/^\d+.*\d$/) && !re[0].match(at) : re[0].length === 1 ? !!re[0].match(/^\d+$/) && !re[0].match(at) && !!re[1].match(/^\d+$/) : !!re[0].match(/^\d+.*\d$/) && !re[0].match(at) && !!re[1].match(/^\d+$/)));
    }, n.fn = P.prototype = {
      clone: function() {
        return n(this);
      },
      format: function(M, U) {
        var j = this._value, K = M || I.defaultFormat, Z, re, V;
        if (U = U || Math.round, j === 0 && I.zeroFormat !== null)
          re = I.zeroFormat;
        else if (j === null && I.nullFormat !== null)
          re = I.nullFormat;
        else {
          for (Z in g)
            if (K.match(g[Z].regexps.format)) {
              V = g[Z].format;
              break;
            }
          V = V || n._.numberToFormat, re = V(j, K, U);
        }
        return re;
      },
      value: function() {
        return this._value;
      },
      input: function() {
        return this._input;
      },
      set: function(M) {
        return this._value = Number(M), this;
      },
      add: function(M) {
        var U = a.correctionFactor.call(null, this._value, M);
        function j(K, Z, re, V) {
          return K + Math.round(U * Z);
        }
        return this._value = a.reduce([this._value, M], j, 0) / U, this;
      },
      subtract: function(M) {
        var U = a.correctionFactor.call(null, this._value, M);
        function j(K, Z, re, V) {
          return K - Math.round(U * Z);
        }
        return this._value = a.reduce([M], j, Math.round(this._value * U)) / U, this;
      },
      multiply: function(M) {
        function U(j, K, Z, re) {
          var V = a.correctionFactor(j, K);
          return Math.round(j * V) * Math.round(K * V) / Math.round(V * V);
        }
        return this._value = a.reduce([this._value, M], U, 1), this;
      },
      divide: function(M) {
        function U(j, K, Z, re) {
          var V = a.correctionFactor(j, K);
          return Math.round(j * V) / Math.round(K * V);
        }
        return this._value = a.reduce([this._value, M], U), this;
      },
      difference: function(M) {
        return Math.abs(n(this._value).subtract(M).value());
      }
    }, n.register("locale", "en", {
      delimiters: {
        thousands: ",",
        decimal: "."
      },
      abbreviations: {
        thousand: "k",
        million: "m",
        billion: "b",
        trillion: "t"
      },
      ordinal: function(M) {
        var U = M % 10;
        return ~~(M % 100 / 10) === 1 ? "th" : U === 1 ? "st" : U === 2 ? "nd" : U === 3 ? "rd" : "th";
      },
      currency: {
        symbol: "$"
      }
    }), function() {
      n.register("format", "bps", {
        regexps: {
          format: /(BPS)/,
          unformat: /(BPS)/
        },
        format: function(M, U, j) {
          var K = n._.includes(U, " BPS") ? " " : "", Z;
          return M = M * 1e4, U = U.replace(/\s?BPS/, ""), Z = n._.numberToFormat(M, U, j), n._.includes(Z, ")") ? (Z = Z.split(""), Z.splice(-1, 0, K + "BPS"), Z = Z.join("")) : Z = Z + K + "BPS", Z;
        },
        unformat: function(M) {
          return +(n._.stringToNumber(M) * 1e-4).toFixed(15);
        }
      });
    }(), function() {
      var M = {
        base: 1e3,
        suffixes: ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]
      }, U = {
        base: 1024,
        suffixes: ["B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"]
      }, j = M.suffixes.concat(U.suffixes.filter(function(Z) {
        return M.suffixes.indexOf(Z) < 0;
      })), K = j.join("|");
      K = "(" + K.replace("B", "B(?!PS)") + ")", n.register("format", "bytes", {
        regexps: {
          format: /([0\s]i?b)/,
          unformat: new RegExp(K)
        },
        format: function(Z, re, V) {
          var at, Tt = n._.includes(re, "ib") ? U : M, Wt = n._.includes(re, " b") || n._.includes(re, " ib") ? " " : "", b1, R1, C1;
          for (re = re.replace(/\s?i?b/, ""), b1 = 0; b1 <= Tt.suffixes.length; b1++)
            if (R1 = Math.pow(Tt.base, b1), C1 = Math.pow(Tt.base, b1 + 1), Z === null || Z === 0 || Z >= R1 && Z < C1) {
              Wt += Tt.suffixes[b1], R1 > 0 && (Z = Z / R1);
              break;
            }
          return at = n._.numberToFormat(Z, re, V), at + Wt;
        },
        unformat: function(Z) {
          var re = n._.stringToNumber(Z), V, at;
          if (re) {
            for (V = M.suffixes.length - 1; V >= 0; V--) {
              if (n._.includes(Z, M.suffixes[V])) {
                at = Math.pow(M.base, V);
                break;
              }
              if (n._.includes(Z, U.suffixes[V])) {
                at = Math.pow(U.base, V);
                break;
              }
            }
            re *= at || 1;
          }
          return re;
        }
      });
    }(), function() {
      n.register("format", "currency", {
        regexps: {
          format: /(\$)/
        },
        format: function(M, U, j) {
          var K = n.locales[n.options.currentLocale], Z = {
            before: U.match(/^([\+|\-|\(|\s|\$]*)/)[0],
            after: U.match(/([\+|\-|\)|\s|\$]*)$/)[0]
          }, re, V, at;
          for (U = U.replace(/\s?\$\s?/, ""), re = n._.numberToFormat(M, U, j), M >= 0 ? (Z.before = Z.before.replace(/[\-\(]/, ""), Z.after = Z.after.replace(/[\-\)]/, "")) : M < 0 && !n._.includes(Z.before, "-") && !n._.includes(Z.before, "(") && (Z.before = "-" + Z.before), at = 0; at < Z.before.length; at++)
            switch (V = Z.before[at], V) {
              case "$":
                re = n._.insert(re, K.currency.symbol, at);
                break;
              case " ":
                re = n._.insert(re, " ", at + K.currency.symbol.length - 1);
                break;
            }
          for (at = Z.after.length - 1; at >= 0; at--)
            switch (V = Z.after[at], V) {
              case "$":
                re = at === Z.after.length - 1 ? re + K.currency.symbol : n._.insert(re, K.currency.symbol, -(Z.after.length - (1 + at)));
                break;
              case " ":
                re = at === Z.after.length - 1 ? re + " " : n._.insert(re, " ", -(Z.after.length - (1 + at) + K.currency.symbol.length - 1));
                break;
            }
          return re;
        }
      });
    }(), function() {
      n.register("format", "exponential", {
        regexps: {
          format: /(e\+|e-)/,
          unformat: /(e\+|e-)/
        },
        format: function(M, U, j) {
          var K, Z = typeof M == "number" && !n._.isNaN(M) ? M.toExponential() : "0e+0", re = Z.split("e");
          return U = U.replace(/e[\+|\-]{1}0/, ""), K = n._.numberToFormat(Number(re[0]), U, j), K + "e" + re[1];
        },
        unformat: function(M) {
          var U = n._.includes(M, "e+") ? M.split("e+") : M.split("e-"), j = Number(U[0]), K = Number(U[1]);
          K = n._.includes(M, "e-") ? K *= -1 : K;
          function Z(re, V, at, Tt) {
            var Wt = n._.correctionFactor(re, V), b1 = re * Wt * (V * Wt) / (Wt * Wt);
            return b1;
          }
          return n._.reduce([j, Math.pow(10, K)], Z, 1);
        }
      });
    }(), function() {
      n.register("format", "ordinal", {
        regexps: {
          format: /(o)/
        },
        format: function(M, U, j) {
          var K = n.locales[n.options.currentLocale], Z, re = n._.includes(U, " o") ? " " : "";
          return U = U.replace(/\s?o/, ""), re += K.ordinal(M), Z = n._.numberToFormat(M, U, j), Z + re;
        }
      });
    }(), function() {
      n.register("format", "percentage", {
        regexps: {
          format: /(%)/,
          unformat: /(%)/
        },
        format: function(M, U, j) {
          var K = n._.includes(U, " %") ? " " : "", Z;
          return n.options.scalePercentBy100 && (M = M * 100), U = U.replace(/\s?\%/, ""), Z = n._.numberToFormat(M, U, j), n._.includes(Z, ")") ? (Z = Z.split(""), Z.splice(-1, 0, K + "%"), Z = Z.join("")) : Z = Z + K + "%", Z;
        },
        unformat: function(M) {
          var U = n._.stringToNumber(M);
          return n.options.scalePercentBy100 ? U * 0.01 : U;
        }
      });
    }(), function() {
      n.register("format", "time", {
        regexps: {
          format: /(:)/,
          unformat: /(:)/
        },
        format: function(M, U, j) {
          var K = Math.floor(M / 60 / 60), Z = Math.floor((M - K * 60 * 60) / 60), re = Math.round(M - K * 60 * 60 - Z * 60);
          return K + ":" + (Z < 10 ? "0" + Z : Z) + ":" + (re < 10 ? "0" + re : re);
        },
        unformat: function(M) {
          var U = M.split(":"), j = 0;
          return U.length === 3 ? (j = j + Number(U[0]) * 60 * 60, j = j + Number(U[1]) * 60, j = j + Number(U[2])) : U.length === 2 && (j = j + Number(U[0]) * 60, j = j + Number(U[1])), Number(j);
        }
      });
    }(), n;
  });
})(bc);
const Nw = bc.exports, Cc = (s) => Nw(s).format("0[.][0]a"), Dw = { class: "px-2.5 py-0.5 mr-0 flex items-center inline-flex items-center md:rounded text-xs font-medium leading-4 bg-gray-200 text-gray-700" }, Mw = { className: "hidden md:inline" }, I5 = /* @__PURE__ */ bl({
  __name: "DataTag",
  props: {
    value: null,
    unit: null,
    icon: null
  },
  setup(s) {
    const n = s;
    return (a, b) => (B2(), ns("div", Dw, [
      u2("div", null, [
        u2("i", {
          class: Ul(`pr-2 fa ${n.icon}`)
        }, null, 2)
      ]),
      u2("div", null, [
        u2("span", null, o3(q3(Cc)(+n.value)), 1),
        u2("span", Mw, o3(" ") + o3(n.unit), 1)
      ])
    ]));
  }
}), $w = ["data-cy"], Fw = /* @__PURE__ */ u2("svg", {
  class: "-mr-1 ml-1 h-5 w-5",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 20 20",
  fill: "currentColor",
  "aria-hidden": "true"
}, [
  /* @__PURE__ */ u2("path", {
    fillRule: "evenodd",
    d: "M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z",
    clipRule: "evenodd"
  })
], -1), Pw = {
  key: 0,
  class: "text-xs pl-2 py-2 font-semibold"
}, Uw = ["data-cy", "id", "onClick"], zw = /* @__PURE__ */ bl({
  __name: "DPDropdown",
  props: {
    name: null,
    sections: null,
    orientation: null
  },
  setup(s) {
    const n = s, a = E3(!1), b = () => void (a.value = !a.value), g = () => void setTimeout(() => a.value = !1, 200);
    return (C, x) => (B2(), ns("div", {
      "data-cy": `dropdown-${n.name.toLowerCase()}`,
      style: { zIndex: 5 },
      class: "relative inline-block text-left"
    }, [
      u2("div", null, [
        u2("button", {
          type: "button",
          class: "dp-btn-sm px-1 sm:px-2 sm:px-2 py-0",
          id: "options-menu",
          onClick: b,
          onBlur: g
        }, [
          cl(o3(n.name) + " ", 1),
          Fw
        ], 32)
      ]),
      u2("div", {
        class: Ul([
          "absolute  w-56 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 divide-y divide-gray-100",
          {
            hidden: !a.value,
            "origin-top-left left-0": n.orientation === "left",
            "origin-top-right right-0": n.orientation !== "left"
          }
        ]),
        role: "menu",
        "aria-orientation": "vertical",
        "aria-labelledby": "options-menu"
      }, [
        (B2(!0), ns(D5, null, a4(n.sections, (I, P) => (B2(), ns("div", {
          class: "py-1",
          key: P
        }, [
          I.title ? (B2(), ns("div", Pw, o3(I.title), 1)) : Y3("", !0),
          (B2(!0), ns(D5, null, a4(I.options, (M, U) => (B2(), ns("a", {
            key: `${P}-${U}`,
            "data-cy": `dropdown-option-${M.id}`,
            id: M.id,
            onClick: M.onClick,
            class: "block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900 cursor-pointer",
            role: "menuitem"
          }, o3(M.name), 9, Uw))), 128))
        ]))), 128))
      ], 2)
    ], 8, $w));
  }
}), Bw = {
  class: "bg-gray-100 py-2",
  "data-cy": "block-datatable"
}, Hw = { class: "flex justify-between items-center flex-wrap" }, Gw = { class: "flex justify-end md:space-x-2 ml-2" }, qw = {
  key: 0,
  class: "min-w-0 flex items-center pr-2 sm:divide-x flex-wrap"
}, Ww = { class: "pr-2 sm:flex hidden space-x-2" }, jw = /* @__PURE__ */ bl({
  __name: "Header",
  props: {
    previewMode: { type: Boolean },
    queryOpen: { type: Boolean },
    rows: null,
    columns: null,
    cells: null,
    getCsvText: null,
    downloadLocal: null,
    downloadRemote: null
  },
  emits: ["toggle-query-open"],
  setup(s, { emit: n }) {
    const a = s, b = function(I) {
      return function(...P) {
        return I.apply(this, P).catch((M) => {
          console.error(M);
        });
      };
    }, g = [
      {
        title: "Current State",
        options: [
          {
            name: "Copy CSV to clipboard",
            onClick: async () => Sf.copyOnce(await a.getCsvText()),
            id: "copy-clipboard"
          },
          {
            name: "Download CSV",
            onClick: b(a.downloadLocal),
            id: "download-csv"
          }
        ]
      }
    ], C = [
      {
        title: "Original Data",
        options: [
          {
            name: "Download CSV",
            onClick: b(() => a.downloadRemote("CSV")),
            id: "download-original-csv"
          },
          {
            name: "Download Excel",
            onClick: b(() => a.downloadRemote("EXCEL")),
            id: "download-original-excel"
          }
        ]
      }
    ], x = [
      ...g,
      ...window.dpLocal ? [] : C
    ];
    return (I, P) => (B2(), ns("div", Bw, [
      u2("div", Hw, [
        u2("div", Gw, [
          Ra(I5, {
            value: a.rows,
            icon: "fa-bars",
            unit: "rows"
          }, null, 8, ["value"]),
          Ra(I5, {
            value: a.columns,
            icon: "fa-columns",
            unit: "columns"
          }, null, 8, ["value"]),
          Ra(I5, {
            value: a.cells,
            icon: "fa-th-large",
            unit: "cells"
          }, null, 8, ["value"])
        ]),
        a.previewMode ? Y3("", !0) : (B2(), ns("div", qw, [
          u2("div", Ww, [
            Ra(Bl, {
              onClick: P[0] || (P[0] = (M) => n("toggle-query-open")),
              icon: `fa ${a.queryOpen ? "fa-caret-up" : "fa-caret-down"}`,
              disabled: a.previewMode,
              "data-cy": "btn-open-query",
              class: "dp-btn-info"
            }, {
              default: zl(() => [
                cl(" Run SQL Query ")
              ]),
              _: 1
            }, 8, ["icon", "disabled"])
          ]),
          Ra(zw, {
            name: "Export",
            sections: x
          })
        ]))
      ])
    ]));
  }
});
var N5 = { exports: {} }, r0;
function Au() {
  return r0 || (r0 = 1, function(s, n) {
    (function(a, b) {
      s.exports = b();
    })(w3, function() {
      var a = navigator.userAgent, b = navigator.platform, g = /gecko\/\d/i.test(a), C = /MSIE \d/.test(a), x = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(a), I = /Edge\/(\d+)/.exec(a), P = C || x || I, M = P && (C ? document.documentMode || 6 : +(I || x)[1]), U = !I && /WebKit\//.test(a), j = U && /Qt\/\d+\.\d+/.test(a), K = !I && /Chrome\/(\d+)/.exec(a), Z = K && +K[1], re = /Opera\//.test(a), V = /Apple Computer/.test(navigator.vendor), at = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(a), Tt = /PhantomJS/.test(a), Wt = V && (/Mobile\/\w+/.test(a) || navigator.maxTouchPoints > 2), b1 = /Android/.test(a), R1 = Wt || b1 || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(a), C1 = Wt || /Mac/.test(b), D1 = /\bCrOS\b/.test(a), M1 = /win/i.test(b), B1 = re && a.match(/Version\/(\d*\.\d*)/);
      B1 && (B1 = Number(B1[1])), B1 && B1 >= 15 && (re = !1, U = !0);
      var V1 = C1 && (j || re && (B1 == null || B1 < 12.11)), Y1 = g || P && M >= 9;
      function tn(e) {
        return new RegExp("(^|\\s)" + e + "(?:$|\\s)\\s*");
      }
      var Vt = function(e, t) {
        var u = e.className, o = tn(t).exec(u);
        if (o) {
          var f = u.slice(o.index + o[0].length);
          e.className = u.slice(0, o.index) + (f ? o[1] + f : "");
        }
      };
      function w1(e) {
        for (var t = e.childNodes.length; t > 0; --t)
          e.removeChild(e.firstChild);
        return e;
      }
      function l1(e, t) {
        return w1(e).appendChild(t);
      }
      function Yt(e, t, u, o) {
        var f = document.createElement(e);
        if (u && (f.className = u), o && (f.style.cssText = o), typeof t == "string")
          f.appendChild(document.createTextNode(t));
        else if (t)
          for (var w = 0; w < t.length; ++w)
            f.appendChild(t[w]);
        return f;
      }
      function Or(e, t, u, o) {
        var f = Yt(e, t, u, o);
        return f.setAttribute("role", "presentation"), f;
      }
      var pr;
      document.createRange ? pr = function(e, t, u, o) {
        var f = document.createRange();
        return f.setEnd(o || e, u), f.setStart(e, t), f;
      } : pr = function(e, t, u) {
        var o = document.body.createTextRange();
        try {
          o.moveToElementText(e.parentNode);
        } catch {
          return o;
        }
        return o.collapse(!0), o.moveEnd("character", u), o.moveStart("character", t), o;
      };
      function wr(e, t) {
        if (t.nodeType == 3 && (t = t.parentNode), e.contains)
          return e.contains(t);
        do
          if (t.nodeType == 11 && (t = t.host), t == e)
            return !0;
        while (t = t.parentNode);
      }
      function rn() {
        var e;
        try {
          e = document.activeElement;
        } catch {
          e = document.body || null;
        }
        for (; e && e.shadowRoot && e.shadowRoot.activeElement; )
          e = e.shadowRoot.activeElement;
        return e;
      }
      function xn(e, t) {
        var u = e.className;
        tn(t).test(u) || (e.className += (u ? " " : "") + t);
      }
      function nn(e, t) {
        for (var u = e.split(" "), o = 0; o < u.length; o++)
          u[o] && !tn(u[o]).test(t) && (t += " " + u[o]);
        return t;
      }
      var Mi = function(e) {
        e.select();
      };
      Wt ? Mi = function(e) {
        e.selectionStart = 0, e.selectionEnd = e.value.length;
      } : P && (Mi = function(e) {
        try {
          e.select();
        } catch {
        }
      });
      function c2(e) {
        var t = Array.prototype.slice.call(arguments, 1);
        return function() {
          return e.apply(null, t);
        };
      }
      function gi(e, t, u) {
        t || (t = {});
        for (var o in e)
          e.hasOwnProperty(o) && (u !== !1 || !t.hasOwnProperty(o)) && (t[o] = e[o]);
        return t;
      }
      function Sr(e, t, u, o, f) {
        t == null && (t = e.search(/[^\s\u00a0]/), t == -1 && (t = e.length));
        for (var w = o || 0, L = f || 0; ; ) {
          var T = e.indexOf("	", w);
          if (T < 0 || T >= t)
            return L + (t - w);
          L += T - w, L += u - L % u, w = T + 1;
        }
      }
      var dn = function() {
        this.id = null, this.f = null, this.time = 0, this.handler = c2(this.onTimeout, this);
      };
      dn.prototype.onTimeout = function(e) {
        e.id = 0, e.time <= +new Date() ? e.f() : setTimeout(e.handler, e.time - +new Date());
      }, dn.prototype.set = function(e, t) {
        this.f = t;
        var u = +new Date() + e;
        (!this.id || u < this.time) && (clearTimeout(this.id), this.id = setTimeout(this.handler, e), this.time = u);
      };
      function Lr(e, t) {
        for (var u = 0; u < e.length; ++u)
          if (e[u] == t)
            return u;
        return -1;
      }
      var Ai = 50, Zn = { toString: function() {
        return "CodeMirror.Pass";
      } }, Sn = { scroll: !1 }, ve = { origin: "*mouse" }, ye = { origin: "+move" };
      function Ae(e, t, u) {
        for (var o = 0, f = 0; ; ) {
          var w = e.indexOf("	", o);
          w == -1 && (w = e.length);
          var L = w - o;
          if (w == e.length || f + L >= t)
            return o + Math.min(L, t - f);
          if (f += w - o, f += u - f % u, o = w + 1, f >= t)
            return o;
        }
      }
      var de = [""];
      function Ee(e) {
        for (; de.length <= e; )
          de.push(ae(de) + " ");
        return de[e];
      }
      function ae(e) {
        return e[e.length - 1];
      }
      function pe(e, t) {
        for (var u = [], o = 0; o < e.length; o++)
          u[o] = t(e[o], o);
        return u;
      }
      function Na(e, t, u) {
        for (var o = 0, f = u(t); o < e.length && u(e[o]) <= f; )
          o++;
        e.splice(o, 0, t);
      }
      function Da() {
      }
      function Os(e, t) {
        var u;
        return Object.create ? u = Object.create(e) : (Da.prototype = e, u = new Da()), t && gi(t, u), u;
      }
      var Ue = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;
      function Le(e) {
        return /\w/.test(e) || e > "\x80" && (e.toUpperCase() != e.toLowerCase() || Ue.test(e));
      }
      function we(e, t) {
        return t ? t.source.indexOf("\\w") > -1 && Le(e) ? !0 : t.test(e) : Le(e);
      }
      function Ze(e) {
        for (var t in e)
          if (e.hasOwnProperty(t) && e[t])
            return !1;
        return !0;
      }
      var ge = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;
      function Be(e) {
        return e.charCodeAt(0) >= 768 && ge.test(e);
      }
      function We(e, t, u) {
        for (; (u < 0 ? t > 0 : t < e.length) && Be(e.charAt(t)); )
          t += u;
        return t;
      }
      function he(e, t, u) {
        for (var o = t > u ? -1 : 1; ; ) {
          if (t == u)
            return t;
          var f = (t + u) / 2, w = o < 0 ? Math.ceil(f) : Math.floor(f);
          if (w == t)
            return e(w) ? t : u;
          e(w) ? u = w : t = w + o;
        }
      }
      function Ve(e, t, u, o) {
        if (!e)
          return o(t, u, "ltr", 0);
        for (var f = !1, w = 0; w < e.length; ++w) {
          var L = e[w];
          (L.from < u && L.to > t || t == u && L.to == t) && (o(Math.max(L.from, t), Math.min(L.to, u), L.level == 1 ? "rtl" : "ltr", w), f = !0);
        }
        f || o(t, u, "ltr");
      }
      var Ge = null;
      function qe(e, t, u) {
        var o;
        Ge = null;
        for (var f = 0; f < e.length; ++f) {
          var w = e[f];
          if (w.from < t && w.to > t)
            return f;
          w.to == t && (w.from != w.to && u == "before" ? o = f : Ge = f), w.from == t && (w.from != w.to && u != "before" ? o = f : Ge = f);
        }
        return o != null ? o : Ge;
      }
      var be = function() {
        var e = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN", t = "nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";
        function u(N) {
          return N <= 247 ? e.charAt(N) : 1424 <= N && N <= 1524 ? "R" : 1536 <= N && N <= 1785 ? t.charAt(N - 1536) : 1774 <= N && N <= 2220 ? "r" : 8192 <= N && N <= 8203 ? "w" : N == 8204 ? "b" : "L";
        }
        var o = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/, f = /[stwN]/, w = /[LRr]/, L = /[Lb1n]/, T = /[1n]/;
        function R(N, q, Y) {
          this.level = N, this.from = q, this.to = Y;
        }
        return function(N, q) {
          var Y = q == "ltr" ? "L" : "R";
          if (N.length == 0 || q == "ltr" && !o.test(N))
            return !1;
          for (var ue = N.length, Q = [], et = 0; et < ue; ++et)
            Q.push(u(N.charCodeAt(et)));
          for (var ct = 0, Rt = Y; ct < ue; ++ct) {
            var Bt = Q[ct];
            Bt == "m" ? Q[ct] = Rt : Rt = Bt;
          }
          for (var Qt = 0, Ht = Y; Qt < ue; ++Qt) {
            var f1 = Q[Qt];
            f1 == "1" && Ht == "r" ? Q[Qt] = "n" : w.test(f1) && (Ht = f1, f1 == "r" && (Q[Qt] = "R"));
          }
          for (var _1 = 1, T1 = Q[0]; _1 < ue - 1; ++_1) {
            var W1 = Q[_1];
            W1 == "+" && T1 == "1" && Q[_1 + 1] == "1" ? Q[_1] = "1" : W1 == "," && T1 == Q[_1 + 1] && (T1 == "1" || T1 == "n") && (Q[_1] = T1), T1 = W1;
          }
          for (var xr = 0; xr < ue; ++xr) {
            var fn = Q[xr];
            if (fn == ",")
              Q[xr] = "N";
            else if (fn == "%") {
              var Br = void 0;
              for (Br = xr + 1; Br < ue && Q[Br] == "%"; ++Br)
                ;
              for (var a2 = xr && Q[xr - 1] == "!" || Br < ue && Q[Br] == "1" ? "1" : "N", Vi = xr; Vi < Br; ++Vi)
                Q[Vi] = a2;
              xr = Br - 1;
            }
          }
          for (var Qr = 0, Yi = Y; Qr < ue; ++Qr) {
            var Mr = Q[Qr];
            Yi == "L" && Mr == "1" ? Q[Qr] = "L" : w.test(Mr) && (Yi = Mr);
          }
          for (var Hr = 0; Hr < ue; ++Hr)
            if (f.test(Q[Hr])) {
              var $n = void 0;
              for ($n = Hr + 1; $n < ue && f.test(Q[$n]); ++$n)
                ;
              for (var en = (Hr ? Q[Hr - 1] : Y) == "L", l2 = ($n < ue ? Q[$n] : Y) == "L", n3 = en == l2 ? en ? "L" : "R" : Y, Zo = Hr; Zo < $n; ++Zo)
                Q[Zo] = n3;
              Hr = $n - 1;
            }
          for (var Di = [], Zs, fi = 0; fi < ue; )
            if (L.test(Q[fi])) {
              var sl = fi;
              for (++fi; fi < ue && L.test(Q[fi]); ++fi)
                ;
              Di.push(new R(0, sl, fi));
            } else {
              var wo = fi, xa = Di.length, Sa = q == "rtl" ? 1 : 0;
              for (++fi; fi < ue && Q[fi] != "L"; ++fi)
                ;
              for (var Ki = wo; Ki < fi; )
                if (T.test(Q[Ki])) {
                  wo < Ki && (Di.splice(xa, 0, new R(1, wo, Ki)), xa += Sa);
                  var La = Ki;
                  for (++Ki; Ki < fi && T.test(Q[Ki]); ++Ki)
                    ;
                  Di.splice(xa, 0, new R(2, La, Ki)), xa += Sa, wo = Ki;
                } else
                  ++Ki;
              wo < fi && Di.splice(xa, 0, new R(1, wo, fi));
            }
          return q == "ltr" && (Di[0].level == 1 && (Zs = N.match(/^\s+/)) && (Di[0].from = Zs[0].length, Di.unshift(new R(0, 0, Zs[0].length))), ae(Di).level == 1 && (Zs = N.match(/\s+$/)) && (ae(Di).to -= Zs[0].length, Di.push(new R(0, ue - Zs[0].length, ue)))), q == "rtl" ? Di.reverse() : Di;
        };
      }();
      function Re(e, t) {
        var u = e.order;
        return u == null && (u = e.order = be(e.text, t)), u;
      }
      var Ie = [], oe = function(e, t, u) {
        if (e.addEventListener)
          e.addEventListener(t, u, !1);
        else if (e.attachEvent)
          e.attachEvent("on" + t, u);
        else {
          var o = e._handlers || (e._handlers = {});
          o[t] = (o[t] || Ie).concat(u);
        }
      };
      function je(e, t) {
        return e._handlers && e._handlers[t] || Ie;
      }
      function Fe(e, t, u) {
        if (e.removeEventListener)
          e.removeEventListener(t, u, !1);
        else if (e.detachEvent)
          e.detachEvent("on" + t, u);
        else {
          var o = e._handlers, f = o && o[t];
          if (f) {
            var w = Lr(f, u);
            w > -1 && (o[t] = f.slice(0, w).concat(f.slice(w + 1)));
          }
        }
      }
      function ke(e, t) {
        var u = je(e, t);
        if (!!u.length)
          for (var o = Array.prototype.slice.call(arguments, 2), f = 0; f < u.length; ++f)
            u[f].apply(null, o);
      }
      function me(e, t, u) {
        return typeof t == "string" && (t = { type: t, preventDefault: function() {
          this.defaultPrevented = !0;
        } }), ke(e, u || t.type, e, t), Ne(t) || t.codemirrorIgnore;
      }
      function De(e) {
        var t = e._handlers && e._handlers.cursorActivity;
        if (!!t)
          for (var u = e.curOp.cursorActivityHandlers || (e.curOp.cursorActivityHandlers = []), o = 0; o < t.length; ++o)
            Lr(u, t[o]) == -1 && u.push(t[o]);
      }
      function Te(e, t) {
        return je(e, t).length > 0;
      }
      function Oe(e) {
        e.prototype.on = function(t, u) {
          oe(this, t, u);
        }, e.prototype.off = function(t, u) {
          Fe(this, t, u);
        };
      }
      function xe(e) {
        e.preventDefault ? e.preventDefault() : e.returnValue = !1;
      }
      function Me(e) {
        e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0;
      }
      function Ne(e) {
        return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == !1;
      }
      function $e(e) {
        xe(e), Me(e);
      }
      function Pe(e) {
        return e.target || e.srcElement;
      }
      function _e(e) {
        var t = e.which;
        return t == null && (e.button & 1 ? t = 1 : e.button & 2 ? t = 3 : e.button & 4 && (t = 2)), C1 && e.ctrlKey && t == 1 && (t = 3), t;
      }
      var He = function() {
        if (P && M < 9)
          return !1;
        var e = Yt("div");
        return "draggable" in e || "dragDrop" in e;
      }(), Ye;
      function Ke(e) {
        if (Ye == null) {
          var t = Yt("span", "\u200B");
          l1(e, Yt("span", [t, document.createTextNode("x")])), e.firstChild.offsetHeight != 0 && (Ye = t.offsetWidth <= 1 && t.offsetHeight > 2 && !(P && M < 8));
        }
        var u = Ye ? Yt("span", "\u200B") : Yt("span", "\xA0", null, "display: inline-block; width: 1px; margin-right: -1px");
        return u.setAttribute("cm-text", ""), u;
      }
      var Ce;
      function Xe(e) {
        if (Ce != null)
          return Ce;
        var t = l1(e, document.createTextNode("A\u062EA")), u = pr(t, 0, 1).getBoundingClientRect(), o = pr(t, 1, 2).getBoundingClientRect();
        return w1(e), !u || u.left == u.right ? !1 : Ce = o.right - u.right < 3;
      }
      var Je = `

b`.split(/\n/).length != 3 ? function(e) {
        for (var t = 0, u = [], o = e.length; t <= o; ) {
          var f = e.indexOf(`
`, t);
          f == -1 && (f = e.length);
          var w = e.slice(t, e.charAt(f - 1) == "\r" ? f - 1 : f), L = w.indexOf("\r");
          L != -1 ? (u.push(w.slice(0, L)), t += L + 1) : (u.push(w), t = f + 1);
        }
        return u;
      } : function(e) {
        return e.split(/\r\n?|\n/);
      }, Qe = window.getSelection ? function(e) {
        try {
          return e.selectionStart != e.selectionEnd;
        } catch {
          return !1;
        }
      } : function(e) {
        var t;
        try {
          t = e.ownerDocument.selection.createRange();
        } catch {
        }
        return !t || t.parentElement() != e ? !1 : t.compareEndPoints("StartToEnd", t) != 0;
      }, fe = function() {
        var e = Yt("div");
        return "oncopy" in e ? !0 : (e.setAttribute("oncopy", "return;"), typeof e.oncopy == "function");
      }(), le = null;
      function vi(e) {
        if (le != null)
          return le;
        var t = l1(e, Yt("span", "x")), u = t.getBoundingClientRect(), o = pr(t, 0, 1).getBoundingClientRect();
        return le = Math.abs(u.left - o.left) > 1;
      }
      var ro = {}, G2 = {};
      function _o(e, t) {
        arguments.length > 2 && (t.dependencies = Array.prototype.slice.call(arguments, 2)), ro[e] = t;
      }
      function ks(e, t) {
        G2[e] = t;
      }
      function q2(e) {
        if (typeof e == "string" && G2.hasOwnProperty(e))
          e = G2[e];
        else if (e && typeof e.name == "string" && G2.hasOwnProperty(e.name)) {
          var t = G2[e.name];
          typeof t == "string" && (t = { name: t }), e = Os(t, e), e.name = t.name;
        } else {
          if (typeof e == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(e))
            return q2("application/xml");
          if (typeof e == "string" && /^[\w\-]+\/[\w\-]+\+json$/.test(e))
            return q2("application/json");
        }
        return typeof e == "string" ? { name: e } : e || { name: "null" };
      }
      function Ao(e, t) {
        t = q2(t);
        var u = ro[t.name];
        if (!u)
          return Ao(e, "text/plain");
        var o = u(e, t);
        if (Is.hasOwnProperty(t.name)) {
          var f = Is[t.name];
          for (var w in f)
            !f.hasOwnProperty(w) || (o.hasOwnProperty(w) && (o["_" + w] = o[w]), o[w] = f[w]);
        }
        if (o.name = t.name, t.helperType && (o.helperType = t.helperType), t.modeProps)
          for (var L in t.modeProps)
            o[L] = t.modeProps[L];
        return o;
      }
      var Is = {};
      function c1(e, t) {
        var u = Is.hasOwnProperty(e) ? Is[e] : Is[e] = {};
        gi(t, u);
      }
      function mr(e, t) {
        if (t === !0)
          return t;
        if (e.copyState)
          return e.copyState(t);
        var u = {};
        for (var o in t) {
          var f = t[o];
          f instanceof Array && (f = f.concat([])), u[o] = f;
        }
        return u;
      }
      function Ro(e, t) {
        for (var u; e.innerMode && (u = e.innerMode(t), !(!u || u.mode == e)); )
          t = u.state, e = u.mode;
        return u || { mode: e, state: t };
      }
      function no(e, t, u) {
        return e.startState ? e.startState(t, u) : !0;
      }
      var hr = function(e, t, u) {
        this.pos = this.start = 0, this.string = e, this.tabSize = t || 8, this.lastColumnPos = this.lastColumnValue = 0, this.lineStart = 0, this.lineOracle = u;
      };
      hr.prototype.eol = function() {
        return this.pos >= this.string.length;
      }, hr.prototype.sol = function() {
        return this.pos == this.lineStart;
      }, hr.prototype.peek = function() {
        return this.string.charAt(this.pos) || void 0;
      }, hr.prototype.next = function() {
        if (this.pos < this.string.length)
          return this.string.charAt(this.pos++);
      }, hr.prototype.eat = function(e) {
        var t = this.string.charAt(this.pos), u;
        if (typeof e == "string" ? u = t == e : u = t && (e.test ? e.test(t) : e(t)), u)
          return ++this.pos, t;
      }, hr.prototype.eatWhile = function(e) {
        for (var t = this.pos; this.eat(e); )
          ;
        return this.pos > t;
      }, hr.prototype.eatSpace = function() {
        for (var e = this.pos; /[\s\u00a0]/.test(this.string.charAt(this.pos)); )
          ++this.pos;
        return this.pos > e;
      }, hr.prototype.skipToEnd = function() {
        this.pos = this.string.length;
      }, hr.prototype.skipTo = function(e) {
        var t = this.string.indexOf(e, this.pos);
        if (t > -1)
          return this.pos = t, !0;
      }, hr.prototype.backUp = function(e) {
        this.pos -= e;
      }, hr.prototype.column = function() {
        return this.lastColumnPos < this.start && (this.lastColumnValue = Sr(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue), this.lastColumnPos = this.start), this.lastColumnValue - (this.lineStart ? Sr(this.string, this.lineStart, this.tabSize) : 0);
      }, hr.prototype.indentation = function() {
        return Sr(this.string, null, this.tabSize) - (this.lineStart ? Sr(this.string, this.lineStart, this.tabSize) : 0);
      }, hr.prototype.match = function(e, t, u) {
        if (typeof e == "string") {
          var o = function(L) {
            return u ? L.toLowerCase() : L;
          }, f = this.string.substr(this.pos, e.length);
          if (o(f) == o(e))
            return t !== !1 && (this.pos += e.length), !0;
        } else {
          var w = this.string.slice(this.pos).match(e);
          return w && w.index > 0 ? null : (w && t !== !1 && (this.pos += w[0].length), w);
        }
      }, hr.prototype.current = function() {
        return this.string.slice(this.start, this.pos);
      }, hr.prototype.hideFirstChars = function(e, t) {
        this.lineStart += e;
        try {
          return t();
        } finally {
          this.lineStart -= e;
        }
      }, hr.prototype.lookAhead = function(e) {
        var t = this.lineOracle;
        return t && t.lookAhead(e);
      }, hr.prototype.baseToken = function() {
        var e = this.lineOracle;
        return e && e.baseToken(this.pos);
      };
      function u1(e, t) {
        if (t -= e.first, t < 0 || t >= e.size)
          throw new Error("There is no line " + (t + e.first) + " in the document.");
        for (var u = e; !u.lines; )
          for (var o = 0; ; ++o) {
            var f = u.children[o], w = f.chunkSize();
            if (t < w) {
              u = f;
              break;
            }
            t -= w;
          }
        return u.lines[t];
      }
      function f2(e, t, u) {
        var o = [], f = t.line;
        return e.iter(t.line, u.line + 1, function(w) {
          var L = w.text;
          f == u.line && (L = L.slice(0, u.ch)), f == t.line && (L = L.slice(t.ch)), o.push(L), ++f;
        }), o;
      }
      function io(e, t, u) {
        var o = [];
        return e.iter(t, u, function(f) {
          o.push(f.text);
        }), o;
      }
      function $i(e, t) {
        var u = t - e.height;
        if (u)
          for (var o = e; o; o = o.parent)
            o.height += u;
      }
      function or(e) {
        if (e.parent == null)
          return null;
        for (var t = e.parent, u = Lr(t.lines, e), o = t.parent; o; t = o, o = o.parent)
          for (var f = 0; o.children[f] != t; ++f)
            u += o.children[f].chunkSize();
        return u + t.first;
      }
      function W(e, t) {
        var u = e.first;
        e:
          do {
            for (var o = 0; o < e.children.length; ++o) {
              var f = e.children[o], w = f.height;
              if (t < w) {
                e = f;
                continue e;
              }
              t -= w, u += f.chunkSize();
            }
            return u;
          } while (!e.lines);
        for (var L = 0; L < e.lines.length; ++L) {
          var T = e.lines[L], R = T.height;
          if (t < R)
            break;
          t -= R;
        }
        return u + L;
      }
      function ss(e, t) {
        return t >= e.first && t < e.first + e.size;
      }
      function W2(e, t) {
        return String(e.lineNumberFormatter(t + e.firstLineNumber));
      }
      function Ct(e, t, u) {
        if (u === void 0 && (u = null), !(this instanceof Ct))
          return new Ct(e, t, u);
        this.line = e, this.ch = t, this.sticky = u;
      }
      function I1(e, t) {
        return e.line - t.line || e.ch - t.ch;
      }
      function so(e, t) {
        return e.sticky == t.sticky && I1(e, t) == 0;
      }
      function L2(e) {
        return Ct(e.line, e.ch);
      }
      function Fi(e, t) {
        return I1(e, t) < 0 ? t : e;
      }
      function Ri(e, t) {
        return I1(e, t) < 0 ? e : t;
      }
      function Oo(e, t) {
        return Math.max(e.first, Math.min(t, e.first + e.size - 1));
      }
      function E1(e, t) {
        if (t.line < e.first)
          return Ct(e.first, 0);
        var u = e.first + e.size - 1;
        return t.line > u ? Ct(u, u1(e, u).text.length) : ko(t, u1(e, t.line).text.length);
      }
      function ko(e, t) {
        var u = e.ch;
        return u == null || u > t ? Ct(e.line, t) : u < 0 ? Ct(e.line, 0) : e;
      }
      function os(e, t) {
        for (var u = [], o = 0; o < t.length; o++)
          u[o] = E1(e, t[o]);
        return u;
      }
      var as = function(e, t) {
        this.state = e, this.lookAhead = t;
      }, Gt = function(e, t, u, o) {
        this.state = t, this.doc = e, this.line = u, this.maxLookAhead = o || 0, this.baseTokens = null, this.baseTokenPos = 1;
      };
      Gt.prototype.lookAhead = function(e) {
        var t = this.doc.getLine(this.line + e);
        return t != null && e > this.maxLookAhead && (this.maxLookAhead = e), t;
      }, Gt.prototype.baseToken = function(e) {
        if (!this.baseTokens)
          return null;
        for (; this.baseTokens[this.baseTokenPos] <= e; )
          this.baseTokenPos += 2;
        var t = this.baseTokens[this.baseTokenPos + 1];
        return {
          type: t && t.replace(/( |^)overlay .*/, ""),
          size: this.baseTokens[this.baseTokenPos] - e
        };
      }, Gt.prototype.nextLine = function() {
        this.line++, this.maxLookAhead > 0 && this.maxLookAhead--;
      }, Gt.fromSaved = function(e, t, u) {
        return t instanceof as ? new Gt(e, mr(e.mode, t.state), u, t.lookAhead) : new Gt(e, mr(e.mode, t), u);
      }, Gt.prototype.save = function(e) {
        var t = e !== !1 ? mr(this.doc.mode, this.state) : this.state;
        return this.maxLookAhead > 0 ? new as(t, this.maxLookAhead) : t;
      };
      function $t(e, t, u, o) {
        var f = [e.state.modeGen], w = {};
        i1(
          e,
          t.text,
          e.doc.mode,
          u,
          function(N, q) {
            return f.push(N, q);
          },
          w,
          o
        );
        for (var L = u.state, T = function(N) {
          u.baseTokens = f;
          var q = e.state.overlays[N], Y = 1, ue = 0;
          u.state = !0, i1(e, t.text, q.mode, u, function(Q, et) {
            for (var ct = Y; ue < Q; ) {
              var Rt = f[Y];
              Rt > Q && f.splice(Y, 1, Q, f[Y + 1], Rt), Y += 2, ue = Math.min(Q, Rt);
            }
            if (!!et)
              if (q.opaque)
                f.splice(ct, Y - ct, Q, "overlay " + et), Y = ct + 2;
              else
                for (; ct < Y; ct += 2) {
                  var Bt = f[ct + 1];
                  f[ct + 1] = (Bt ? Bt + " " : "") + "overlay " + et;
                }
          }, w), u.state = L, u.baseTokens = null, u.baseTokenPos = 1;
        }, R = 0; R < e.state.overlays.length; ++R)
          T(R);
        return { styles: f, classes: w.bgClass || w.textClass ? w : null };
      }
      function ot(e, t, u) {
        if (!t.styles || t.styles[0] != e.state.modeGen) {
          var o = it(e, or(t)), f = t.text.length > e.options.maxHighlightLength && mr(e.doc.mode, o.state), w = $t(e, t, o);
          f && (o.state = f), t.stateAfter = o.save(!f), t.styles = w.styles, w.classes ? t.styleClasses = w.classes : t.styleClasses && (t.styleClasses = null), u === e.doc.highlightFrontier && (e.doc.modeFrontier = Math.max(e.doc.modeFrontier, ++e.doc.highlightFrontier));
        }
        return t.styles;
      }
      function it(e, t, u) {
        var o = e.doc, f = e.display;
        if (!o.mode.startState)
          return new Gt(o, !0, t);
        var w = Nt(e, t, u), L = w > o.first && u1(o, w - 1).stateAfter, T = L ? Gt.fromSaved(o, L, w) : new Gt(o, no(o.mode), w);
        return o.iter(w, t, function(R) {
          mt(e, R.text, T);
          var N = T.line;
          R.stateAfter = N == t - 1 || N % 5 == 0 || N >= f.viewFrom && N < f.viewTo ? T.save() : null, T.nextLine();
        }), u && (o.modeFrontier = T.line), T;
      }
      function mt(e, t, u, o) {
        var f = e.doc.mode, w = new hr(t, e.options.tabSize, u);
        for (w.start = w.pos = o || 0, t == "" && ta(f, u.state); !w.eol(); )
          yt(f, w, u.state), w.start = w.pos;
      }
      function ta(e, t) {
        if (e.blankLine)
          return e.blankLine(t);
        if (!!e.innerMode) {
          var u = Ro(e, t);
          if (u.mode.blankLine)
            return u.mode.blankLine(u.state);
        }
      }
      function yt(e, t, u, o) {
        for (var f = 0; f < 10; f++) {
          o && (o[0] = Ro(e, u).mode);
          var w = e.token(t, u);
          if (t.pos > t.start)
            return w;
        }
        throw new Error("Mode " + e.name + " failed to advance stream.");
      }
      var pt = function(e, t, u) {
        this.start = e.start, this.end = e.pos, this.string = e.current(), this.type = t || null, this.state = u;
      };
      function vt(e, t, u, o) {
        var f = e.doc, w = f.mode, L;
        t = E1(f, t);
        var T = u1(f, t.line), R = it(e, t.line, u), N = new hr(T.text, e.options.tabSize, R), q;
        for (o && (q = []); (o || N.pos < t.ch) && !N.eol(); )
          N.start = N.pos, L = yt(w, N, R.state), o && q.push(new pt(N, L, mr(f.mode, R.state)));
        return o ? q : new pt(N, L, R.state);
      }
      function n1(e, t) {
        if (e)
          for (; ; ) {
            var u = e.match(/(?:^|\s+)line-(background-)?(\S+)/);
            if (!u)
              break;
            e = e.slice(0, u.index) + e.slice(u.index + u[0].length);
            var o = u[1] ? "bgClass" : "textClass";
            t[o] == null ? t[o] = u[2] : new RegExp("(?:^|\\s)" + u[2] + "(?:$|\\s)").test(t[o]) || (t[o] += " " + u[2]);
          }
        return e;
      }
      function i1(e, t, u, o, f, w, L) {
        var T = u.flattenSpans;
        T == null && (T = e.options.flattenSpans);
        var R = 0, N = null, q = new hr(t, e.options.tabSize, o), Y, ue = e.options.addModeClass && [null];
        for (t == "" && n1(ta(u, o.state), w); !q.eol(); ) {
          if (q.pos > e.options.maxHighlightLength ? (T = !1, L && mt(e, t, o, q.pos), q.pos = t.length, Y = null) : Y = n1(yt(u, q, o.state, ue), w), ue) {
            var Q = ue[0].name;
            Q && (Y = "m-" + (Y ? Q + " " + Y : Q));
          }
          if (!T || N != Y) {
            for (; R < q.start; )
              R = Math.min(q.start, R + 5e3), f(R, N);
            N = Y;
          }
          q.start = q.pos;
        }
        for (; R < q.pos; ) {
          var et = Math.min(q.pos, R + 5e3);
          f(et, N), R = et;
        }
      }
      function Nt(e, t, u) {
        for (var o, f, w = e.doc, L = u ? -1 : t - (e.doc.mode.innerMode ? 1e3 : 100), T = t; T > L; --T) {
          if (T <= w.first)
            return w.first;
          var R = u1(w, T - 1), N = R.stateAfter;
          if (N && (!u || T + (N instanceof as ? N.lookAhead : 0) <= w.modeFrontier))
            return T;
          var q = Sr(R.text, null, e.options.tabSize);
          (f == null || o > q) && (f = T - 1, o = q);
        }
        return f;
      }
      function It(e, t) {
        if (e.modeFrontier = Math.min(e.modeFrontier, t), !(e.highlightFrontier < t - 10)) {
          for (var u = e.first, o = t - 1; o > u; o--) {
            var f = u1(e, o).stateAfter;
            if (f && (!(f instanceof as) || o + f.lookAhead < t)) {
              u = o + 1;
              break;
            }
          }
          e.highlightFrontier = Math.min(e.highlightFrontier, u);
        }
      }
      var s1 = !1, Kt = !1;
      function v1() {
        s1 = !0;
      }
      function _t() {
        Kt = !0;
      }
      function wt(e, t, u) {
        this.marker = e, this.from = t, this.to = u;
      }
      function Mt(e, t) {
        if (e)
          for (var u = 0; u < e.length; ++u) {
            var o = e[u];
            if (o.marker == t)
              return o;
          }
      }
      function bt(e, t) {
        for (var u, o = 0; o < e.length; ++o)
          e[o] != t && (u || (u = [])).push(e[o]);
        return u;
      }
      function Ft(e, t, u) {
        var o = u && window.WeakSet && (u.markedSpans || (u.markedSpans = /* @__PURE__ */ new WeakSet()));
        o && e.markedSpans && o.has(e.markedSpans) ? e.markedSpans.push(t) : (e.markedSpans = e.markedSpans ? e.markedSpans.concat([t]) : [t], o && o.add(e.markedSpans)), t.marker.attachLine(e);
      }
      function Pt(e, t, u) {
        var o;
        if (e)
          for (var f = 0; f < e.length; ++f) {
            var w = e[f], L = w.marker, T = w.from == null || (L.inclusiveLeft ? w.from <= t : w.from < t);
            if (T || w.from == t && L.type == "bookmark" && (!u || !w.marker.insertLeft)) {
              var R = w.to == null || (L.inclusiveRight ? w.to >= t : w.to > t);
              (o || (o = [])).push(new wt(L, w.from, R ? null : w.to));
            }
          }
        return o;
      }
      function gt(e, t, u) {
        var o;
        if (e)
          for (var f = 0; f < e.length; ++f) {
            var w = e[f], L = w.marker, T = w.to == null || (L.inclusiveRight ? w.to >= t : w.to > t);
            if (T || w.from == t && L.type == "bookmark" && (!u || w.marker.insertLeft)) {
              var R = w.from == null || (L.inclusiveLeft ? w.from <= t : w.from < t);
              (o || (o = [])).push(new wt(
                L,
                R ? null : w.from - t,
                w.to == null ? null : w.to - t
              ));
            }
          }
        return o;
      }
      function St(e, t) {
        if (t.full)
          return null;
        var u = ss(e, t.from.line) && u1(e, t.from.line).markedSpans, o = ss(e, t.to.line) && u1(e, t.to.line).markedSpans;
        if (!u && !o)
          return null;
        var f = t.from.ch, w = t.to.ch, L = I1(t.from, t.to) == 0, T = Pt(u, f, L), R = gt(o, w, L), N = t.text.length == 1, q = ae(t.text).length + (N ? f : 0);
        if (T)
          for (var Y = 0; Y < T.length; ++Y) {
            var ue = T[Y];
            if (ue.to == null) {
              var Q = Mt(R, ue.marker);
              Q ? N && (ue.to = Q.to == null ? null : Q.to + q) : ue.to = f;
            }
          }
        if (R)
          for (var et = 0; et < R.length; ++et) {
            var ct = R[et];
            if (ct.to != null && (ct.to += q), ct.from == null) {
              var Rt = Mt(T, ct.marker);
              Rt || (ct.from = q, N && (T || (T = [])).push(ct));
            } else
              ct.from += q, N && (T || (T = [])).push(ct);
          }
        T && (T = At(T)), R && R != T && (R = At(R));
        var Bt = [T];
        if (!N) {
          var Qt = t.text.length - 2, Ht;
          if (Qt > 0 && T)
            for (var f1 = 0; f1 < T.length; ++f1)
              T[f1].to == null && (Ht || (Ht = [])).push(new wt(T[f1].marker, null, null));
          for (var _1 = 0; _1 < Qt; ++_1)
            Bt.push(Ht);
          Bt.push(R);
        }
        return Bt;
      }
      function At(e) {
        for (var t = 0; t < e.length; ++t) {
          var u = e[t];
          u.from != null && u.from == u.to && u.marker.clearWhenEmpty !== !1 && e.splice(t--, 1);
        }
        return e.length ? e : null;
      }
      function Dt(e, t, u) {
        var o = null;
        if (e.iter(t.line, u.line + 1, function(Q) {
          if (Q.markedSpans)
            for (var et = 0; et < Q.markedSpans.length; ++et) {
              var ct = Q.markedSpans[et].marker;
              ct.readOnly && (!o || Lr(o, ct) == -1) && (o || (o = [])).push(ct);
            }
        }), !o)
          return null;
        for (var f = [{ from: t, to: u }], w = 0; w < o.length; ++w)
          for (var L = o[w], T = L.find(0), R = 0; R < f.length; ++R) {
            var N = f[R];
            if (!(I1(N.to, T.from) < 0 || I1(N.from, T.to) > 0)) {
              var q = [R, 1], Y = I1(N.from, T.from), ue = I1(N.to, T.to);
              (Y < 0 || !L.inclusiveLeft && !Y) && q.push({ from: N.from, to: T.from }), (ue > 0 || !L.inclusiveRight && !ue) && q.push({ from: T.to, to: N.to }), f.splice.apply(f, q), R += q.length - 3;
            }
          }
        return f;
      }
      function e1(e) {
        var t = e.markedSpans;
        if (!!t) {
          for (var u = 0; u < t.length; ++u)
            t[u].marker.detachLine(e);
          e.markedSpans = null;
        }
      }
      function t1(e, t) {
        if (!!t) {
          for (var u = 0; u < t.length; ++u)
            t[u].marker.attachLine(e);
          e.markedSpans = t;
        }
      }
      function Xt(e) {
        return e.inclusiveLeft ? -1 : 0;
      }
      function Jt(e) {
        return e.inclusiveRight ? 1 : 0;
      }
      function Et(e, t) {
        var u = e.lines.length - t.lines.length;
        if (u != 0)
          return u;
        var o = e.find(), f = t.find(), w = I1(o.from, f.from) || Xt(e) - Xt(t);
        if (w)
          return -w;
        var L = I1(o.to, f.to) || Jt(e) - Jt(t);
        return L || t.id - e.id;
      }
      function xt(e, t) {
        var u = Kt && e.markedSpans, o;
        if (u)
          for (var f = void 0, w = 0; w < u.length; ++w)
            f = u[w], f.marker.collapsed && (t ? f.from : f.to) == null && (!o || Et(o, f.marker) < 0) && (o = f.marker);
        return o;
      }
      function r1(e) {
        return xt(e, !0);
      }
      function o1(e) {
        return xt(e, !1);
      }
      function h1(e, t) {
        var u = Kt && e.markedSpans, o;
        if (u)
          for (var f = 0; f < u.length; ++f) {
            var w = u[f];
            w.marker.collapsed && (w.from == null || w.from < t) && (w.to == null || w.to > t) && (!o || Et(o, w.marker) < 0) && (o = w.marker);
          }
        return o;
      }
      function Ut(e, t, u, o, f) {
        var w = u1(e, t), L = Kt && w.markedSpans;
        if (L)
          for (var T = 0; T < L.length; ++T) {
            var R = L[T];
            if (!!R.marker.collapsed) {
              var N = R.marker.find(0), q = I1(N.from, u) || Xt(R.marker) - Xt(f), Y = I1(N.to, o) || Jt(R.marker) - Jt(f);
              if (!(q >= 0 && Y <= 0 || q <= 0 && Y >= 0) && (q <= 0 && (R.marker.inclusiveRight && f.inclusiveLeft ? I1(N.to, u) >= 0 : I1(N.to, u) > 0) || q >= 0 && (R.marker.inclusiveRight && f.inclusiveLeft ? I1(N.from, o) <= 0 : I1(N.from, o) < 0)))
                return !0;
            }
          }
      }
      function qt(e) {
        for (var t; t = r1(e); )
          e = t.find(-1, !0).line;
        return e;
      }
      function Ma(e) {
        for (var t; t = o1(e); )
          e = t.find(1, !0).line;
        return e;
      }
      function Kr(e) {
        for (var t, u; t = o1(e); )
          e = t.find(1, !0).line, (u || (u = [])).push(e);
        return u;
      }
      function ra(e, t) {
        var u = u1(e, t), o = qt(u);
        return u == o ? t : or(o);
      }
      function sn(e, t) {
        if (t > e.lastLine())
          return t;
        var u = u1(e, t), o;
        if (!Pi(e, u))
          return t;
        for (; o = o1(u); )
          u = o.find(1, !0).line;
        return or(u) + 1;
      }
      function Pi(e, t) {
        var u = Kt && t.markedSpans;
        if (u) {
          for (var o = void 0, f = 0; f < u.length; ++f)
            if (o = u[f], !!o.marker.collapsed) {
              if (o.from == null)
                return !0;
              if (!o.marker.widgetNode && o.from == 0 && o.marker.inclusiveLeft && Gr(e, t, o))
                return !0;
            }
        }
      }
      function Gr(e, t, u) {
        if (u.to == null) {
          var o = u.marker.find(1, !0);
          return Gr(e, o.line, Mt(o.line.markedSpans, u.marker));
        }
        if (u.marker.inclusiveRight && u.to == t.text.length)
          return !0;
        for (var f = void 0, w = 0; w < t.markedSpans.length; ++w)
          if (f = t.markedSpans[w], f.marker.collapsed && !f.marker.widgetNode && f.from == u.to && (f.to == null || f.to != u.from) && (f.marker.inclusiveLeft || u.marker.inclusiveRight) && Gr(e, t, f))
            return !0;
      }
      function Oi(e) {
        e = qt(e);
        for (var t = 0, u = e.parent, o = 0; o < u.lines.length; ++o) {
          var f = u.lines[o];
          if (f == e)
            break;
          t += f.height;
        }
        for (var w = u.parent; w; u = w, w = u.parent)
          for (var L = 0; L < w.children.length; ++L) {
            var T = w.children[L];
            if (T == u)
              break;
            t += T.height;
          }
        return t;
      }
      function Ns(e) {
        if (e.height == 0)
          return 0;
        for (var t = e.text.length, u, o = e; u = r1(o); ) {
          var f = u.find(0, !0);
          o = f.from.line, t += f.from.ch - f.to.ch;
        }
        for (o = e; u = o1(o); ) {
          var w = u.find(0, !0);
          t -= o.text.length - w.from.ch, o = w.to.line, t += o.text.length - w.to.ch;
        }
        return t;
      }
      function mi(e) {
        var t = e.display, u = e.doc;
        t.maxLine = u1(u, u.first), t.maxLineLength = Ns(t.maxLine), t.maxLineChanged = !0, u.iter(function(o) {
          var f = Ns(o);
          f > t.maxLineLength && (t.maxLineLength = f, t.maxLine = o);
        });
      }
      var ls = function(e, t, u) {
        this.text = e, t1(this, t), this.height = u ? u(this) : 1;
      };
      ls.prototype.lineNo = function() {
        return or(this);
      }, Oe(ls);
      function kr(e, t, u, o) {
        e.text = t, e.stateAfter && (e.stateAfter = null), e.styles && (e.styles = null), e.order != null && (e.order = null), e1(e), t1(e, u);
        var f = o ? o(e) : 1;
        f != e.height && $i(e, f);
      }
      function Ds(e) {
        e.parent = null, e1(e);
      }
      var $a = {}, Qn = {};
      function Pn(e, t) {
        if (!e || /^\s*$/.test(e))
          return null;
        var u = t.addModeClass ? Qn : $a;
        return u[e] || (u[e] = e.replace(/\S+/g, "cm-$&"));
      }
      function gr(e, t) {
        var u = Or("span", null, null, U ? "padding-right: .1px" : null), o = {
          pre: Or("pre", [u], "CodeMirror-line"),
          content: u,
          col: 0,
          pos: 0,
          cm: e,
          trailingSpace: !1,
          splitSpaces: e.getOption("lineWrapping")
        };
        t.measure = {};
        for (var f = 0; f <= (t.rest ? t.rest.length : 0); f++) {
          var w = f ? t.rest[f - 1] : t.line, L = void 0;
          o.pos = 0, o.addToken = Er, Xe(e.display.measure) && (L = Re(w, e.doc.direction)) && (o.addToken = ei(o.addToken, L)), o.map = [];
          var T = t != e.display.externalMeasured && or(w);
          Ln(w, o, ot(e, w, T)), w.styleClasses && (w.styleClasses.bgClass && (o.bgClass = nn(w.styleClasses.bgClass, o.bgClass || "")), w.styleClasses.textClass && (o.textClass = nn(w.styleClasses.textClass, o.textClass || ""))), o.map.length == 0 && o.map.push(0, 0, o.content.appendChild(Ke(e.display.measure))), f == 0 ? (t.measure.map = o.map, t.measure.cache = {}) : ((t.measure.maps || (t.measure.maps = [])).push(o.map), (t.measure.caches || (t.measure.caches = [])).push({}));
        }
        if (U) {
          var R = o.content.lastChild;
          (/\bcm-tab\b/.test(R.className) || R.querySelector && R.querySelector(".cm-tab")) && (o.content.className = "cm-tab-wrap-hack");
        }
        return ke(e, "renderLine", e, t.line, o.pre), o.pre.className && (o.textClass = nn(o.pre.className, o.textClass || "")), o;
      }
      function bi(e) {
        var t = Yt("span", "\u2022", "cm-invalidchar");
        return t.title = "\\u" + e.charCodeAt(0).toString(16), t.setAttribute("aria-label", t.title), t;
      }
      function Er(e, t, u, o, f, w, L) {
        if (!!t) {
          var T = e.splitSpaces ? Ci(t, e.trailingSpace) : t, R = e.cm.state.specialChars, N = !1, q;
          if (!R.test(t))
            e.col += t.length, q = document.createTextNode(T), e.map.push(e.pos, e.pos + t.length, q), P && M < 9 && (N = !0), e.pos += t.length;
          else {
            q = document.createDocumentFragment();
            for (var Y = 0; ; ) {
              R.lastIndex = Y;
              var ue = R.exec(t), Q = ue ? ue.index - Y : t.length - Y;
              if (Q) {
                var et = document.createTextNode(T.slice(Y, Y + Q));
                P && M < 9 ? q.appendChild(Yt("span", [et])) : q.appendChild(et), e.map.push(e.pos, e.pos + Q, et), e.col += Q, e.pos += Q;
              }
              if (!ue)
                break;
              Y += Q + 1;
              var ct = void 0;
              if (ue[0] == "	") {
                var Rt = e.cm.options.tabSize, Bt = Rt - e.col % Rt;
                ct = q.appendChild(Yt("span", Ee(Bt), "cm-tab")), ct.setAttribute("role", "presentation"), ct.setAttribute("cm-text", "	"), e.col += Bt;
              } else
                ue[0] == "\r" || ue[0] == `
` ? (ct = q.appendChild(Yt("span", ue[0] == "\r" ? "\u240D" : "\u2424", "cm-invalidchar")), ct.setAttribute("cm-text", ue[0]), e.col += 1) : (ct = e.cm.options.specialCharPlaceholder(ue[0]), ct.setAttribute("cm-text", ue[0]), P && M < 9 ? q.appendChild(Yt("span", [ct])) : q.appendChild(ct), e.col += 1);
              e.map.push(e.pos, e.pos + 1, ct), e.pos++;
            }
          }
          if (e.trailingSpace = T.charCodeAt(t.length - 1) == 32, u || o || f || N || w || L) {
            var Qt = u || "";
            o && (Qt += o), f && (Qt += f);
            var Ht = Yt("span", [q], Qt, w);
            if (L)
              for (var f1 in L)
                L.hasOwnProperty(f1) && f1 != "style" && f1 != "class" && Ht.setAttribute(f1, L[f1]);
            return e.content.appendChild(Ht);
          }
          e.content.appendChild(q);
        }
      }
      function Ci(e, t) {
        if (e.length > 1 && !/  /.test(e))
          return e;
        for (var u = t, o = "", f = 0; f < e.length; f++) {
          var w = e.charAt(f);
          w == " " && u && (f == e.length - 1 || e.charCodeAt(f + 1) == 32) && (w = "\xA0"), o += w, u = w == " ";
        }
        return o;
      }
      function ei(e, t) {
        return function(u, o, f, w, L, T, R) {
          f = f ? f + " cm-force-border" : "cm-force-border";
          for (var N = u.pos, q = N + o.length; ; ) {
            for (var Y = void 0, ue = 0; ue < t.length && (Y = t[ue], !(Y.to > N && Y.from <= N)); ue++)
              ;
            if (Y.to >= q)
              return e(u, o, f, w, L, T, R);
            e(u, o.slice(0, Y.to - N), f, w, null, T, R), w = null, o = o.slice(Y.to - N), N = Y.to;
          }
        };
      }
      function $r(e, t, u, o) {
        var f = !o && u.widgetNode;
        f && e.map.push(e.pos, e.pos + t, f), !o && e.cm.display.input.needsContentAttribute && (f || (f = e.content.appendChild(document.createElement("span"))), f.setAttribute("cm-marker", u.id)), f && (e.cm.display.input.setUneditable(f), e.content.appendChild(f)), e.pos += t, e.trailingSpace = !1;
      }
      function Ln(e, t, u) {
        var o = e.markedSpans, f = e.text, w = 0;
        if (!o) {
          for (var L = 1; L < u.length; L += 2)
            t.addToken(t, f.slice(w, w = u[L]), Pn(u[L + 1], t.cm.options));
          return;
        }
        for (var T = f.length, R = 0, N = 1, q = "", Y, ue, Q = 0, et, ct, Rt, Bt, Qt; ; ) {
          if (Q == R) {
            et = ct = Rt = ue = "", Qt = null, Bt = null, Q = 1 / 0;
            for (var Ht = [], f1 = void 0, _1 = 0; _1 < o.length; ++_1) {
              var T1 = o[_1], W1 = T1.marker;
              if (W1.type == "bookmark" && T1.from == R && W1.widgetNode)
                Ht.push(W1);
              else if (T1.from <= R && (T1.to == null || T1.to > R || W1.collapsed && T1.to == R && T1.from == R)) {
                if (T1.to != null && T1.to != R && Q > T1.to && (Q = T1.to, ct = ""), W1.className && (et += " " + W1.className), W1.css && (ue = (ue ? ue + ";" : "") + W1.css), W1.startStyle && T1.from == R && (Rt += " " + W1.startStyle), W1.endStyle && T1.to == Q && (f1 || (f1 = [])).push(W1.endStyle, T1.to), W1.title && ((Qt || (Qt = {})).title = W1.title), W1.attributes)
                  for (var xr in W1.attributes)
                    (Qt || (Qt = {}))[xr] = W1.attributes[xr];
                W1.collapsed && (!Bt || Et(Bt.marker, W1) < 0) && (Bt = T1);
              } else
                T1.from > R && Q > T1.from && (Q = T1.from);
            }
            if (f1)
              for (var fn = 0; fn < f1.length; fn += 2)
                f1[fn + 1] == Q && (ct += " " + f1[fn]);
            if (!Bt || Bt.from == R)
              for (var Br = 0; Br < Ht.length; ++Br)
                $r(t, 0, Ht[Br]);
            if (Bt && (Bt.from || 0) == R) {
              if ($r(
                t,
                (Bt.to == null ? T + 1 : Bt.to) - R,
                Bt.marker,
                Bt.from == null
              ), Bt.to == null)
                return;
              Bt.to == R && (Bt = !1);
            }
          }
          if (R >= T)
            break;
          for (var a2 = Math.min(T, Q); ; ) {
            if (q) {
              var Vi = R + q.length;
              if (!Bt) {
                var Qr = Vi > a2 ? q.slice(0, a2 - R) : q;
                t.addToken(
                  t,
                  Qr,
                  Y ? Y + et : et,
                  Rt,
                  R + Qr.length == Q ? ct : "",
                  ue,
                  Qt
                );
              }
              if (Vi >= a2) {
                q = q.slice(a2 - R), R = a2;
                break;
              }
              R = Vi, Rt = "";
            }
            q = f.slice(w, w = u[N++]), Y = Pn(u[N++], t.cm.options);
          }
        }
      }
      function Tn(e, t, u) {
        this.line = t, this.rest = Kr(t), this.size = this.rest ? or(ae(this.rest)) - u + 1 : 1, this.node = this.text = null, this.hidden = Pi(e, t);
      }
      function q1(e, t, u) {
        for (var o = [], f, w = t; w < u; w = f) {
          var L = new Tn(e.doc, u1(e.doc, w), w);
          f = w + L.size, o.push(L);
        }
        return o;
      }
      var br = null;
      function Un(e) {
        br ? br.ops.push(e) : e.ownsGroup = br = {
          ops: [e],
          delayedCallbacks: []
        };
      }
      function yi(e) {
        var t = e.delayedCallbacks, u = 0;
        do {
          for (; u < t.length; u++)
            t[u].call(null);
          for (var o = 0; o < e.ops.length; o++) {
            var f = e.ops[o];
            if (f.cursorActivityHandlers)
              for (; f.cursorActivityCalled < f.cursorActivityHandlers.length; )
                f.cursorActivityHandlers[f.cursorActivityCalled++].call(null, f.cm);
          }
        } while (u < t.length);
      }
      function zn(e, t) {
        var u = e.ownsGroup;
        if (!!u)
          try {
            yi(u);
          } finally {
            br = null, t(u);
          }
      }
      var pn = null;
      function sr(e, t) {
        var u = je(e, t);
        if (!!u.length) {
          var o = Array.prototype.slice.call(arguments, 2), f;
          br ? f = br.delayedCallbacks : pn ? f = pn : (f = pn = [], setTimeout(wi, 0));
          for (var w = function(T) {
            f.push(function() {
              return u[T].apply(null, o);
            });
          }, L = 0; L < u.length; ++L)
            w(L);
        }
      }
      function wi() {
        var e = pn;
        pn = null;
        for (var t = 0; t < e.length; ++t)
          e[t]();
      }
      function Bn(e, t, u, o) {
        for (var f = 0; f < t.changes.length; f++) {
          var w = t.changes[f];
          w == "text" ? ri(e, t) : w == "gutter" ? An(e, t, u, o) : w == "class" ? _n(e, t) : w == "widget" && Hn(e, t, o);
        }
        t.changes = null;
      }
      function qr(e) {
        return e.node == e.text && (e.node = Yt("div", null, null, "position: relative"), e.text.parentNode && e.text.parentNode.replaceChild(e.node, e.text), e.node.appendChild(e.text), P && M < 8 && (e.node.style.zIndex = 2)), e.node;
      }
      function on(e, t) {
        var u = t.bgClass ? t.bgClass + " " + (t.line.bgClass || "") : t.line.bgClass;
        if (u && (u += " CodeMirror-linebackground"), t.background)
          u ? t.background.className = u : (t.background.parentNode.removeChild(t.background), t.background = null);
        else if (u) {
          var o = qr(t);
          t.background = o.insertBefore(Yt("div", null, u), o.firstChild), e.display.input.setUneditable(t.background);
        }
      }
      function ti(e, t) {
        var u = e.display.externalMeasured;
        return u && u.line == t.line ? (e.display.externalMeasured = null, t.measure = u.measure, u.built) : gr(e, t);
      }
      function ri(e, t) {
        var u = t.text.className, o = ti(e, t);
        t.text == t.node && (t.node = o.pre), t.text.parentNode.replaceChild(o.pre, t.text), t.text = o.pre, o.bgClass != t.bgClass || o.textClass != t.textClass ? (t.bgClass = o.bgClass, t.textClass = o.textClass, _n(e, t)) : u && (t.text.className = u);
      }
      function _n(e, t) {
        on(e, t), t.line.wrapClass ? qr(t).className = t.line.wrapClass : t.node != t.text && (t.node.className = "");
        var u = t.textClass ? t.textClass + " " + (t.line.textClass || "") : t.line.textClass;
        t.text.className = u || "";
      }
      function An(e, t, u, o) {
        if (t.gutter && (t.node.removeChild(t.gutter), t.gutter = null), t.gutterBackground && (t.node.removeChild(t.gutterBackground), t.gutterBackground = null), t.line.gutterClass) {
          var f = qr(t);
          t.gutterBackground = Yt(
            "div",
            null,
            "CodeMirror-gutter-background " + t.line.gutterClass,
            "left: " + (e.options.fixedGutter ? o.fixedPos : -o.gutterTotalWidth) + "px; width: " + o.gutterTotalWidth + "px"
          ), e.display.input.setUneditable(t.gutterBackground), f.insertBefore(t.gutterBackground, t.text);
        }
        var w = t.line.gutterMarkers;
        if (e.options.lineNumbers || w) {
          var L = qr(t), T = t.gutter = Yt("div", null, "CodeMirror-gutter-wrapper", "left: " + (e.options.fixedGutter ? o.fixedPos : -o.gutterTotalWidth) + "px");
          if (T.setAttribute("aria-hidden", "true"), e.display.input.setUneditable(T), L.insertBefore(T, t.text), t.line.gutterClass && (T.className += " " + t.line.gutterClass), e.options.lineNumbers && (!w || !w["CodeMirror-linenumbers"]) && (t.lineNumber = T.appendChild(
            Yt(
              "div",
              W2(e.options, u),
              "CodeMirror-linenumber CodeMirror-gutter-elt",
              "left: " + o.gutterLeft["CodeMirror-linenumbers"] + "px; width: " + e.display.lineNumInnerWidth + "px"
            )
          )), w)
            for (var R = 0; R < e.display.gutterSpecs.length; ++R) {
              var N = e.display.gutterSpecs[R].className, q = w.hasOwnProperty(N) && w[N];
              q && T.appendChild(Yt(
                "div",
                [q],
                "CodeMirror-gutter-elt",
                "left: " + o.gutterLeft[N] + "px; width: " + o.gutterWidth[N] + "px"
              ));
            }
        }
      }
      function Hn(e, t, u) {
        t.alignable && (t.alignable = null);
        for (var o = tn("CodeMirror-linewidget"), f = t.node.firstChild, w = void 0; f; f = w)
          w = f.nextSibling, o.test(f.className) && t.node.removeChild(f);
        ii(e, t, u);
      }
      function ni(e, t, u, o) {
        var f = ti(e, t);
        return t.text = t.node = f.pre, f.bgClass && (t.bgClass = f.bgClass), f.textClass && (t.textClass = f.textClass), _n(e, t), An(e, t, u, o), ii(e, t, o), t.node;
      }
      function ii(e, t, u) {
        if (Rn(e, t.line, t, u, !0), t.rest)
          for (var o = 0; o < t.rest.length; o++)
            Rn(e, t.rest[o], t, u, !1);
      }
      function Rn(e, t, u, o, f) {
        if (!!t.widgets)
          for (var w = qr(u), L = 0, T = t.widgets; L < T.length; ++L) {
            var R = T[L], N = Yt("div", [R.node], "CodeMirror-linewidget" + (R.className ? " " + R.className : ""));
            R.handleMouseEvents || N.setAttribute("cm-ignore-events", "true"), Gn(R, N, u, o), e.display.input.setUneditable(N), f && R.above ? w.insertBefore(N, u.gutter || u.text) : w.appendChild(N), sr(R, "redraw");
          }
      }
      function Gn(e, t, u, o) {
        if (e.noHScroll) {
          (u.alignable || (u.alignable = [])).push(t);
          var f = o.wrapperWidth;
          t.style.left = o.fixedPos + "px", e.coverGutter || (f -= o.gutterTotalWidth, t.style.paddingLeft = o.gutterTotalWidth + "px"), t.style.width = f + "px";
        }
        e.coverGutter && (t.style.zIndex = 5, t.style.position = "relative", e.noHScroll || (t.style.marginLeft = -o.gutterTotalWidth + "px"));
      }
      function gn(e) {
        if (e.height != null)
          return e.height;
        var t = e.doc.cm;
        if (!t)
          return 0;
        if (!wr(document.body, e.node)) {
          var u = "position: relative;";
          e.coverGutter && (u += "margin-left: -" + t.display.gutters.offsetWidth + "px;"), e.noHScroll && (u += "width: " + t.display.wrapper.clientWidth + "px;"), l1(t.display.measure, Yt("div", [e.node], null, u));
        }
        return e.height = e.node.parentNode.offsetHeight;
      }
      function Ir(e, t) {
        for (var u = Pe(t); u != e.wrapper; u = u.parentNode)
          if (!u || u.nodeType == 1 && u.getAttribute("cm-ignore-events") == "true" || u.parentNode == e.sizer && u != e.mover)
            return !0;
      }
      function cr(e) {
        return e.lineSpace.offsetTop;
      }
      function vn(e) {
        return e.mover.offsetHeight - e.lineSpace.offsetHeight;
      }
      function an(e) {
        if (e.cachedPaddingH)
          return e.cachedPaddingH;
        var t = l1(e.measure, Yt("pre", "x", "CodeMirror-line-like")), u = window.getComputedStyle ? window.getComputedStyle(t) : t.currentStyle, o = { left: parseInt(u.paddingLeft), right: parseInt(u.paddingRight) };
        return !isNaN(o.left) && !isNaN(o.right) && (e.cachedPaddingH = o), o;
      }
      function Tr(e) {
        return Ai - e.display.nativeBarWidth;
      }
      function Wr(e) {
        return e.display.scroller.clientWidth - Tr(e) - e.display.barWidth;
      }
      function qn(e) {
        return e.display.scroller.clientHeight - Tr(e) - e.display.barHeight;
      }
      function Ei(e, t, u) {
        var o = e.options.lineWrapping, f = o && Wr(e);
        if (!t.measure.heights || o && t.measure.width != f) {
          var w = t.measure.heights = [];
          if (o) {
            t.measure.width = f;
            for (var L = t.text.firstChild.getClientRects(), T = 0; T < L.length - 1; T++) {
              var R = L[T], N = L[T + 1];
              Math.abs(R.bottom - N.bottom) > 2 && w.push((R.bottom + N.top) / 2 - u.top);
            }
          }
          w.push(u.bottom - u.top);
        }
      }
      function si(e, t, u) {
        if (e.line == t)
          return { map: e.measure.map, cache: e.measure.cache };
        if (e.rest) {
          for (var o = 0; o < e.rest.length; o++)
            if (e.rest[o] == t)
              return { map: e.measure.maps[o], cache: e.measure.caches[o] };
          for (var f = 0; f < e.rest.length; f++)
            if (or(e.rest[f]) > u)
              return { map: e.measure.maps[f], cache: e.measure.caches[f], before: !0 };
        }
      }
      function xi(e, t) {
        t = qt(t);
        var u = or(t), o = e.display.externalMeasured = new Tn(e.doc, t, u);
        o.lineN = u;
        var f = o.built = gr(e, o);
        return o.text = f.pre, l1(e.display.lineMeasure, f.pre), o;
      }
      function oi(e, t, u, o) {
        return Zi(e, ln(e, t), u, o);
      }
      function jr(e, t) {
        if (t >= e.display.viewFrom && t < e.display.viewTo)
          return e.display.view[Z1(e, t)];
        var u = e.display.externalMeasured;
        if (u && t >= u.lineN && t < u.lineN + u.size)
          return u;
      }
      function ln(e, t) {
        var u = or(t), o = jr(e, u);
        o && !o.text ? o = null : o && o.changes && (Bn(e, o, u, h2(e)), e.curOp.forceUpdate = !0), o || (o = xi(e, t));
        var f = si(o, t, u);
        return {
          line: t,
          view: o,
          rect: null,
          map: f.map,
          cache: f.cache,
          before: f.before,
          hasHeights: !1
        };
      }
      function Zi(e, t, u, o, f) {
        t.before && (u = -1);
        var w = u + (o || ""), L;
        return t.cache.hasOwnProperty(w) ? L = t.cache[w] : (t.rect || (t.rect = t.view.text.getBoundingClientRect()), t.hasHeights || (Ei(e, t.view, t.rect), t.hasHeights = !0), L = a1(e, t, u, o), L.bogus || (t.cache[w] = L)), {
          left: L.left,
          right: L.right,
          top: f ? L.rtop : L.top,
          bottom: f ? L.rbottom : L.bottom
        };
      }
      var ar = { left: 0, right: 0, top: 0, bottom: 0 };
      function Wn(e, t, u) {
        for (var o, f, w, L, T, R, N = 0; N < e.length; N += 3)
          if (T = e[N], R = e[N + 1], t < T ? (f = 0, w = 1, L = "left") : t < R ? (f = t - T, w = f + 1) : (N == e.length - 3 || t == R && e[N + 3] > t) && (w = R - T, f = w - 1, t >= R && (L = "right")), f != null) {
            if (o = e[N + 2], T == R && u == (o.insertLeft ? "left" : "right") && (L = u), u == "left" && f == 0)
              for (; N && e[N - 2] == e[N - 3] && e[N - 1].insertLeft; )
                o = e[(N -= 3) + 2], L = "left";
            if (u == "right" && f == R - T)
              for (; N < e.length - 3 && e[N + 3] == e[N + 4] && !e[N + 5].insertLeft; )
                o = e[(N += 3) + 2], L = "right";
            break;
          }
        return { node: o, start: f, end: w, collapse: L, coverStart: T, coverEnd: R };
      }
      function j2(e, t) {
        var u = ar;
        if (t == "left")
          for (var o = 0; o < e.length && (u = e[o]).left == u.right; o++)
            ;
        else
          for (var f = e.length - 1; f >= 0 && (u = e[f]).left == u.right; f--)
            ;
        return u;
      }
      function a1(e, t, u, o) {
        var f = Wn(t.map, u, o), w = f.node, L = f.start, T = f.end, R = f.collapse, N;
        if (w.nodeType == 3) {
          for (var q = 0; q < 4; q++) {
            for (; L && Be(t.line.text.charAt(f.coverStart + L)); )
              --L;
            for (; f.coverStart + T < f.coverEnd && Be(t.line.text.charAt(f.coverStart + T)); )
              ++T;
            if (P && M < 9 && L == 0 && T == f.coverEnd - f.coverStart ? N = w.parentNode.getBoundingClientRect() : N = j2(pr(w, L, T).getClientRects(), o), N.left || N.right || L == 0)
              break;
            T = L, L = L - 1, R = "right";
          }
          P && M < 11 && (N = c3(e.display.measure, N));
        } else {
          L > 0 && (R = o = "right");
          var Y;
          e.options.lineWrapping && (Y = w.getClientRects()).length > 1 ? N = Y[o == "right" ? Y.length - 1 : 0] : N = w.getBoundingClientRect();
        }
        if (P && M < 9 && !L && (!N || !N.left && !N.right)) {
          var ue = w.parentNode.getClientRects()[0];
          ue ? N = { left: ue.left, right: ue.left + kn(e.display), top: ue.top, bottom: ue.bottom } : N = ar;
        }
        for (var Q = N.top - t.rect.top, et = N.bottom - t.rect.top, ct = (Q + et) / 2, Rt = t.view.measure.heights, Bt = 0; Bt < Rt.length - 1 && !(ct < Rt[Bt]); Bt++)
          ;
        var Qt = Bt ? Rt[Bt - 1] : 0, Ht = Rt[Bt], f1 = {
          left: (R == "right" ? N.right : N.left) - t.rect.left,
          right: (R == "left" ? N.left : N.right) - t.rect.left,
          top: Qt,
          bottom: Ht
        };
        return !N.left && !N.right && (f1.bogus = !0), e.options.singleCursorHeightPerLine || (f1.rtop = Q, f1.rbottom = et), f1;
      }
      function c3(e, t) {
        if (!window.screen || screen.logicalXDPI == null || screen.logicalXDPI == screen.deviceXDPI || !vi(e))
          return t;
        var u = screen.logicalXDPI / screen.deviceXDPI, o = screen.logicalYDPI / screen.deviceYDPI;
        return {
          left: t.left * u,
          right: t.right * u,
          top: t.top * o,
          bottom: t.bottom * o
        };
      }
      function Fa(e) {
        if (e.measure && (e.measure.cache = {}, e.measure.heights = null, e.rest))
          for (var t = 0; t < e.rest.length; t++)
            e.measure.caches[t] = {};
      }
      function na(e) {
        e.display.externalMeasure = null, w1(e.display.lineMeasure);
        for (var t = 0; t < e.display.view.length; t++)
          Fa(e.display.view[t]);
      }
      function j1(e) {
        na(e), e.display.cachedCharWidth = e.display.cachedTextHeight = e.display.cachedPaddingH = null, e.options.lineWrapping || (e.display.maxLineChanged = !0), e.display.lineNumChars = null;
      }
      function On() {
        return K && b1 ? -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) : window.pageXOffset || (document.documentElement || document.body).scrollLeft;
      }
      function us() {
        return K && b1 ? -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) : window.pageYOffset || (document.documentElement || document.body).scrollTop;
      }
      function V2(e) {
        var t = qt(e), u = t.widgets, o = 0;
        if (u)
          for (var f = 0; f < u.length; ++f)
            u[f].above && (o += gn(u[f]));
        return o;
      }
      function Ms(e, t, u, o, f) {
        if (!f) {
          var w = V2(t);
          u.top += w, u.bottom += w;
        }
        if (o == "line")
          return u;
        o || (o = "local");
        var L = Oi(t);
        if (o == "local" ? L += cr(e.display) : L -= e.display.viewOffset, o == "page" || o == "window") {
          var T = e.display.lineSpace.getBoundingClientRect();
          L += T.top + (o == "window" ? 0 : us());
          var R = T.left + (o == "window" ? 0 : On());
          u.left += R, u.right += R;
        }
        return u.top += L, u.bottom += L, u;
      }
      function Pa(e, t, u) {
        if (u == "div")
          return t;
        var o = t.left, f = t.top;
        if (u == "page")
          o -= On(), f -= us();
        else if (u == "local" || !u) {
          var w = e.display.sizer.getBoundingClientRect();
          o += w.left, f += w.top;
        }
        var L = e.display.lineSpace.getBoundingClientRect();
        return { left: o - L.left, top: f - L.top };
      }
      function Io(e, t, u, o, f) {
        return o || (o = u1(e.doc, t.line)), Ms(e, o, oi(e, o, t.ch, f), u);
      }
      function Ui(e, t, u, o, f, w) {
        o = o || u1(e.doc, t.line), f || (f = ln(e, o));
        function L(et, ct) {
          var Rt = Zi(e, f, et, ct ? "right" : "left", w);
          return ct ? Rt.left = Rt.right : Rt.right = Rt.left, Ms(e, o, Rt, u);
        }
        var T = Re(o, e.doc.direction), R = t.ch, N = t.sticky;
        if (R >= o.text.length ? (R = o.text.length, N = "before") : R <= 0 && (R = 0, N = "after"), !T)
          return L(N == "before" ? R - 1 : R, N == "before");
        function q(et, ct, Rt) {
          var Bt = T[ct], Qt = Bt.level == 1;
          return L(Rt ? et - 1 : et, Qt != Rt);
        }
        var Y = qe(T, R, N), ue = Ge, Q = q(R, Y, N == "before");
        return ue != null && (Q.other = q(R, ue, N != "before")), Q;
      }
      function T2(e, t) {
        var u = 0;
        t = E1(e.doc, t), e.options.lineWrapping || (u = kn(e.display) * t.ch);
        var o = u1(e.doc, t.line), f = Oi(o) + cr(e.display);
        return { left: u, right: u, top: f, bottom: f + o.height };
      }
      function ce(e, t, u, o, f) {
        var w = Ct(e, t, u);
        return w.xRel = f, o && (w.outside = o), w;
      }
      function st(e, t, u) {
        var o = e.doc;
        if (u += e.display.viewOffset, u < 0)
          return ce(o.first, 0, null, -1, -1);
        var f = W(o, u), w = o.first + o.size - 1;
        if (f > w)
          return ce(o.first + o.size - 1, u1(o, w).text.length, null, 1, 1);
        t < 0 && (t = 0);
        for (var L = u1(o, f); ; ) {
          var T = J1(e, L, f, t, u), R = h1(L, T.ch + (T.xRel > 0 || T.outside > 0 ? 1 : 0));
          if (!R)
            return T;
          var N = R.find(1);
          if (N.line == f)
            return N;
          L = u1(o, f = N.line);
        }
      }
      function ze(e, t, u, o) {
        o -= V2(t);
        var f = t.text.length, w = he(function(L) {
          return Zi(e, u, L - 1).bottom <= o;
        }, f, 0);
        return f = he(function(L) {
          return Zi(e, u, L).top > o;
        }, w, f), { begin: w, end: f };
      }
      function p1(e, t, u, o) {
        u || (u = ln(e, t));
        var f = Ms(e, t, Zi(e, u, o), "line").top;
        return ze(e, t, u, f);
      }
      function $1(e, t, u, o) {
        return e.bottom <= u ? !1 : e.top > u ? !0 : (o ? e.left : e.right) > t;
      }
      function J1(e, t, u, o, f) {
        f -= Oi(t);
        var w = ln(e, t), L = V2(t), T = 0, R = t.text.length, N = !0, q = Re(t, e.doc.direction);
        if (q) {
          var Y = (e.options.lineWrapping ? vr : un)(e, t, u, w, q, o, f);
          N = Y.level != 1, T = N ? Y.from : Y.to - 1, R = N ? Y.to : Y.from - 1;
        }
        var ue = null, Q = null, et = he(function(_1) {
          var T1 = Zi(e, w, _1);
          return T1.top += L, T1.bottom += L, $1(T1, o, f, !1) ? (T1.top <= f && T1.left <= o && (ue = _1, Q = T1), !0) : !1;
        }, T, R), ct, Rt, Bt = !1;
        if (Q) {
          var Qt = o - Q.left < Q.right - o, Ht = Qt == N;
          et = ue + (Ht ? 0 : 1), Rt = Ht ? "after" : "before", ct = Qt ? Q.left : Q.right;
        } else {
          !N && (et == R || et == T) && et++, Rt = et == 0 ? "after" : et == t.text.length ? "before" : Zi(e, w, et - (N ? 1 : 0)).bottom + L <= f == N ? "after" : "before";
          var f1 = Ui(e, Ct(u, et, Rt), "line", t, w);
          ct = f1.left, Bt = f < f1.top ? -1 : f >= f1.bottom ? 1 : 0;
        }
        return et = We(t.text, et, 1), ce(u, et, Rt, Bt, o - ct);
      }
      function un(e, t, u, o, f, w, L) {
        var T = he(function(Y) {
          var ue = f[Y], Q = ue.level != 1;
          return $1(Ui(
            e,
            Ct(u, Q ? ue.to : ue.from, Q ? "before" : "after"),
            "line",
            t,
            o
          ), w, L, !0);
        }, 0, f.length - 1), R = f[T];
        if (T > 0) {
          var N = R.level != 1, q = Ui(
            e,
            Ct(u, N ? R.from : R.to, N ? "after" : "before"),
            "line",
            t,
            o
          );
          $1(q, w, L, !0) && q.top > L && (R = f[T - 1]);
        }
        return R;
      }
      function vr(e, t, u, o, f, w, L) {
        var T = ze(e, t, o, L), R = T.begin, N = T.end;
        /\s/.test(t.text.charAt(N - 1)) && N--;
        for (var q = null, Y = null, ue = 0; ue < f.length; ue++) {
          var Q = f[ue];
          if (!(Q.from >= N || Q.to <= R)) {
            var et = Q.level != 1, ct = Zi(e, o, et ? Math.min(N, Q.to) - 1 : Math.max(R, Q.from)).right, Rt = ct < w ? w - ct + 1e9 : ct - w;
            (!q || Y > Rt) && (q = Q, Y = Rt);
          }
        }
        return q || (q = f[f.length - 1]), q.from < R && (q = { from: R, to: q.to, level: q.level }), q.to > N && (q = { from: q.from, to: N, level: q.level }), q;
      }
      var _2;
      function $s(e) {
        if (e.cachedTextHeight != null)
          return e.cachedTextHeight;
        if (_2 == null) {
          _2 = Yt("pre", null, "CodeMirror-line-like");
          for (var t = 0; t < 49; ++t)
            _2.appendChild(document.createTextNode("x")), _2.appendChild(Yt("br"));
          _2.appendChild(document.createTextNode("x"));
        }
        l1(e.measure, _2);
        var u = _2.offsetHeight / 50;
        return u > 3 && (e.cachedTextHeight = u), w1(e.measure), u || 1;
      }
      function kn(e) {
        if (e.cachedCharWidth != null)
          return e.cachedCharWidth;
        var t = Yt("span", "xxxxxxxxxx"), u = Yt("pre", [t], "CodeMirror-line-like");
        l1(e.measure, u);
        var o = t.getBoundingClientRect(), f = (o.right - o.left) / 10;
        return f > 2 && (e.cachedCharWidth = f), f || 10;
      }
      function h2(e) {
        for (var t = e.display, u = {}, o = {}, f = t.gutters.clientLeft, w = t.gutters.firstChild, L = 0; w; w = w.nextSibling, ++L) {
          var T = e.display.gutterSpecs[L].className;
          u[T] = w.offsetLeft + w.clientLeft + f, o[T] = w.clientWidth;
        }
        return {
          fixedPos: cs(t),
          gutterTotalWidth: t.gutters.offsetWidth,
          gutterLeft: u,
          gutterWidth: o,
          wrapperWidth: t.wrapper.clientWidth
        };
      }
      function cs(e) {
        return e.scroller.getBoundingClientRect().left - e.sizer.getBoundingClientRect().left;
      }
      function zi(e) {
        var t = $s(e.display), u = e.options.lineWrapping, o = u && Math.max(5, e.display.scroller.clientWidth / kn(e.display) - 3);
        return function(f) {
          if (Pi(e.doc, f))
            return 0;
          var w = 0;
          if (f.widgets)
            for (var L = 0; L < f.widgets.length; L++)
              f.widgets[L].height && (w += f.widgets[L].height);
          return u ? w + (Math.ceil(f.text.length / o) || 1) * t : w + t;
        };
      }
      function Fs(e) {
        var t = e.doc, u = zi(e);
        t.iter(function(o) {
          var f = u(o);
          f != o.height && $i(o, f);
        });
      }
      function d2(e, t, u, o) {
        var f = e.display;
        if (!u && Pe(t).getAttribute("cm-not-content") == "true")
          return null;
        var w, L, T = f.lineSpace.getBoundingClientRect();
        try {
          w = t.clientX - T.left, L = t.clientY - T.top;
        } catch {
          return null;
        }
        var R = st(e, w, L), N;
        if (o && R.xRel > 0 && (N = u1(e.doc, R.line).text).length == R.ch) {
          var q = Sr(N, N.length, e.options.tabSize) - N.length;
          R = Ct(R.line, Math.max(0, Math.round((w - an(e.display).left) / kn(e.display)) - q));
        }
        return R;
      }
      function Z1(e, t) {
        if (t >= e.display.viewTo || (t -= e.display.viewFrom, t < 0))
          return null;
        for (var u = e.display.view, o = 0; o < u.length; o++)
          if (t -= u[o].size, t < 0)
            return o;
      }
      function ai(e, t, u, o) {
        t == null && (t = e.doc.first), u == null && (u = e.doc.first + e.doc.size), o || (o = 0);
        var f = e.display;
        if (o && u < f.viewTo && (f.updateLineNumbers == null || f.updateLineNumbers > t) && (f.updateLineNumbers = t), e.curOp.viewChanged = !0, t >= f.viewTo)
          Kt && ra(e.doc, t) < f.viewTo && Bi(e);
        else if (u <= f.viewFrom)
          Kt && sn(e.doc, u + o) > f.viewFrom ? Bi(e) : (f.viewFrom += o, f.viewTo += o);
        else if (t <= f.viewFrom && u >= f.viewTo)
          Bi(e);
        else if (t <= f.viewFrom) {
          var w = No(e, u, u + o, 1);
          w ? (f.view = f.view.slice(w.index), f.viewFrom = w.lineN, f.viewTo += o) : Bi(e);
        } else if (u >= f.viewTo) {
          var L = No(e, t, t, -1);
          L ? (f.view = f.view.slice(0, L.index), f.viewTo = L.lineN) : Bi(e);
        } else {
          var T = No(e, t, t, -1), R = No(e, u, u + o, 1);
          T && R ? (f.view = f.view.slice(0, T.index).concat(q1(e, T.lineN, R.lineN)).concat(f.view.slice(R.index)), f.viewTo += o) : Bi(e);
        }
        var N = f.externalMeasured;
        N && (u < N.lineN ? N.lineN += o : t < N.lineN + N.size && (f.externalMeasured = null));
      }
      function Qi(e, t, u) {
        e.curOp.viewChanged = !0;
        var o = e.display, f = e.display.externalMeasured;
        if (f && t >= f.lineN && t < f.lineN + f.size && (o.externalMeasured = null), !(t < o.viewFrom || t >= o.viewTo)) {
          var w = o.view[Z1(e, t)];
          if (w.node != null) {
            var L = w.changes || (w.changes = []);
            Lr(L, u) == -1 && L.push(u);
          }
        }
      }
      function Bi(e) {
        e.display.viewFrom = e.display.viewTo = e.doc.first, e.display.view = [], e.display.viewOffset = 0;
      }
      function No(e, t, u, o) {
        var f = Z1(e, t), w, L = e.display.view;
        if (!Kt || u == e.doc.first + e.doc.size)
          return { index: f, lineN: u };
        for (var T = e.display.viewFrom, R = 0; R < f; R++)
          T += L[R].size;
        if (T != t) {
          if (o > 0) {
            if (f == L.length - 1)
              return null;
            w = T + L[f].size - t, f++;
          } else
            w = T - t;
          t += w, u += w;
        }
        for (; ra(e.doc, u) != u; ) {
          if (f == (o < 0 ? 0 : L.length - 1))
            return null;
          u += o * L[f - (o < 0 ? 1 : 0)].size, f += o;
        }
        return { index: f, lineN: u };
      }
      function f3(e, t, u) {
        var o = e.display, f = o.view;
        f.length == 0 || t >= o.viewTo || u <= o.viewFrom ? (o.view = q1(e, t, u), o.viewFrom = t) : (o.viewFrom > t ? o.view = q1(e, t, o.viewFrom).concat(o.view) : o.viewFrom < t && (o.view = o.view.slice(Z1(e, t))), o.viewFrom = t, o.viewTo < u ? o.view = o.view.concat(q1(e, o.viewTo, u)) : o.viewTo > u && (o.view = o.view.slice(0, Z1(e, u)))), o.viewTo = u;
      }
      function ia(e) {
        for (var t = e.display.view, u = 0, o = 0; o < t.length; o++) {
          var f = t[o];
          !f.hidden && (!f.node || f.changes) && ++u;
        }
        return u;
      }
      function Y2(e) {
        e.display.input.showSelection(e.display.input.prepareSelection());
      }
      function In(e, t) {
        t === void 0 && (t = !0);
        var u = e.doc, o = {}, f = o.cursors = document.createDocumentFragment(), w = o.selection = document.createDocumentFragment(), L = e.options.$customCursor;
        L && (t = !0);
        for (var T = 0; T < u.sel.ranges.length; T++)
          if (!(!t && T == u.sel.primIndex)) {
            var R = u.sel.ranges[T];
            if (!(R.from().line >= e.display.viewTo || R.to().line < e.display.viewFrom)) {
              var N = R.empty();
              if (L) {
                var q = L(e, R);
                q && Ps(e, q, f);
              } else
                (N || e.options.showCursorWhenSelecting) && Ps(e, R.head, f);
              N || fs(e, R, w);
            }
          }
        return o;
      }
      function Ps(e, t, u) {
        var o = Ui(e, t, "div", null, null, !e.options.singleCursorHeightPerLine), f = u.appendChild(Yt("div", "\xA0", "CodeMirror-cursor"));
        if (f.style.left = o.left + "px", f.style.top = o.top + "px", f.style.height = Math.max(0, o.bottom - o.top) * e.options.cursorHeight + "px", /\bcm-fat-cursor\b/.test(e.getWrapperElement().className)) {
          var w = Io(e, t, "div", null, null), L = w.right - w.left;
          f.style.width = (L > 0 ? L : e.defaultCharWidth()) + "px";
        }
        if (o.other) {
          var T = u.appendChild(Yt("div", "\xA0", "CodeMirror-cursor CodeMirror-secondarycursor"));
          T.style.display = "", T.style.left = o.other.left + "px", T.style.top = o.other.top + "px", T.style.height = (o.other.bottom - o.other.top) * 0.85 + "px";
        }
      }
      function Us(e, t) {
        return e.top - t.top || e.left - t.left;
      }
      function fs(e, t, u) {
        var o = e.display, f = e.doc, w = document.createDocumentFragment(), L = an(e.display), T = L.left, R = Math.max(o.sizerWidth, Wr(e) - o.sizer.offsetLeft) - L.right, N = f.direction == "ltr";
        function q(Ht, f1, _1, T1) {
          f1 < 0 && (f1 = 0), f1 = Math.round(f1), T1 = Math.round(T1), w.appendChild(Yt("div", null, "CodeMirror-selected", "position: absolute; left: " + Ht + `px;
                             top: ` + f1 + "px; width: " + (_1 == null ? R - Ht : _1) + `px;
                             height: ` + (T1 - f1) + "px"));
        }
        function Y(Ht, f1, _1) {
          var T1 = u1(f, Ht), W1 = T1.text.length, xr, fn;
          function Br(Qr, Yi) {
            return Io(e, Ct(Ht, Qr), "div", T1, Yi);
          }
          function a2(Qr, Yi, Mr) {
            var Hr = p1(e, T1, null, Qr), $n = Yi == "ltr" == (Mr == "after") ? "left" : "right", en = Mr == "after" ? Hr.begin : Hr.end - (/\s/.test(T1.text.charAt(Hr.end - 1)) ? 2 : 1);
            return Br(en, $n)[$n];
          }
          var Vi = Re(T1, f.direction);
          return Ve(Vi, f1 || 0, _1 == null ? W1 : _1, function(Qr, Yi, Mr, Hr) {
            var $n = Mr == "ltr", en = Br(Qr, $n ? "left" : "right"), l2 = Br(Yi - 1, $n ? "right" : "left"), n3 = f1 == null && Qr == 0, Zo = _1 == null && Yi == W1, Di = Hr == 0, Zs = !Vi || Hr == Vi.length - 1;
            if (l2.top - en.top <= 3) {
              var fi = (N ? n3 : Zo) && Di, sl = (N ? Zo : n3) && Zs, wo = fi ? T : ($n ? en : l2).left, xa = sl ? R : ($n ? l2 : en).right;
              q(wo, en.top, xa - wo, en.bottom);
            } else {
              var Sa, Ki, La, z3;
              $n ? (Sa = N && n3 && Di ? T : en.left, Ki = N ? R : a2(Qr, Mr, "before"), La = N ? T : a2(Yi, Mr, "after"), z3 = N && Zo && Zs ? R : l2.right) : (Sa = N ? a2(Qr, Mr, "before") : T, Ki = !N && n3 && Di ? R : en.right, La = !N && Zo && Zs ? T : l2.left, z3 = N ? a2(Yi, Mr, "after") : R), q(Sa, en.top, Ki - Sa, en.bottom), en.bottom < l2.top && q(T, en.bottom, null, l2.top), q(La, l2.top, z3 - La, l2.bottom);
            }
            (!xr || Us(en, xr) < 0) && (xr = en), Us(l2, xr) < 0 && (xr = l2), (!fn || Us(en, fn) < 0) && (fn = en), Us(l2, fn) < 0 && (fn = l2);
          }), { start: xr, end: fn };
        }
        var ue = t.from(), Q = t.to();
        if (ue.line == Q.line)
          Y(ue.line, ue.ch, Q.ch);
        else {
          var et = u1(f, ue.line), ct = u1(f, Q.line), Rt = qt(et) == qt(ct), Bt = Y(ue.line, ue.ch, Rt ? et.text.length + 1 : null).end, Qt = Y(Q.line, Rt ? 0 : null, Q.ch).start;
          Rt && (Bt.top < Qt.top - 2 ? (q(Bt.right, Bt.top, null, Bt.bottom), q(T, Qt.top, Qt.left, Qt.bottom)) : q(Bt.right, Bt.top, Qt.left - Bt.right, Bt.bottom)), Bt.bottom < Qt.top && q(T, Bt.bottom, null, Qt.top);
        }
        u.appendChild(w);
      }
      function hs(e) {
        if (!!e.state.focused) {
          var t = e.display;
          clearInterval(t.blinker);
          var u = !0;
          t.cursorDiv.style.visibility = "", e.options.cursorBlinkRate > 0 ? t.blinker = setInterval(function() {
            e.hasFocus() || p2(e), t.cursorDiv.style.visibility = (u = !u) ? "" : "hidden";
          }, e.options.cursorBlinkRate) : e.options.cursorBlinkRate < 0 && (t.cursorDiv.style.visibility = "hidden");
        }
      }
      function zs(e) {
        e.hasFocus() || (e.display.input.focus(), e.state.focused || Bs(e));
      }
      function ki(e) {
        e.state.delayingBlurEvent = !0, setTimeout(function() {
          e.state.delayingBlurEvent && (e.state.delayingBlurEvent = !1, e.state.focused && p2(e));
        }, 100);
      }
      function Bs(e, t) {
        e.state.delayingBlurEvent && !e.state.draggingText && (e.state.delayingBlurEvent = !1), e.options.readOnly != "nocursor" && (e.state.focused || (ke(e, "focus", e, t), e.state.focused = !0, xn(e.display.wrapper, "CodeMirror-focused"), !e.curOp && e.display.selForContextMenu != e.doc.sel && (e.display.input.reset(), U && setTimeout(function() {
          return e.display.input.reset(!0);
        }, 20)), e.display.input.receivedFocus()), hs(e));
      }
      function p2(e, t) {
        e.state.delayingBlurEvent || (e.state.focused && (ke(e, "blur", e, t), e.state.focused = !1, Vt(e.display.wrapper, "CodeMirror-focused")), clearInterval(e.display.blinker), setTimeout(function() {
          e.state.focused || (e.display.shift = !1);
        }, 150));
      }
      function Fr(e) {
        for (var t = e.display, u = t.lineDiv.offsetTop, o = Math.max(0, t.scroller.getBoundingClientRect().top), f = t.lineDiv.getBoundingClientRect().top, w = 0, L = 0; L < t.view.length; L++) {
          var T = t.view[L], R = e.options.lineWrapping, N = void 0, q = 0;
          if (!T.hidden) {
            if (f += T.line.height, P && M < 8) {
              var Y = T.node.offsetTop + T.node.offsetHeight;
              N = Y - u, u = Y;
            } else {
              var ue = T.node.getBoundingClientRect();
              N = ue.bottom - ue.top, !R && T.text.firstChild && (q = T.text.firstChild.getBoundingClientRect().right - ue.left - 1);
            }
            var Q = T.line.height - N;
            if ((Q > 5e-3 || Q < -5e-3) && (f < o && (w -= Q), $i(T.line, N), mn(T.line), T.rest))
              for (var et = 0; et < T.rest.length; et++)
                mn(T.rest[et]);
            if (q > e.display.sizerWidth) {
              var ct = Math.ceil(q / kn(e.display));
              ct > e.display.maxLineLength && (e.display.maxLineLength = ct, e.display.maxLine = T.line, e.display.maxLineChanged = !0);
            }
          }
        }
        Math.abs(w) > 2 && (t.scroller.scrollTop += w);
      }
      function mn(e) {
        if (e.widgets)
          for (var t = 0; t < e.widgets.length; ++t) {
            var u = e.widgets[t], o = u.node.parentNode;
            o && (u.height = o.offsetHeight);
          }
      }
      function Nn(e, t, u) {
        var o = u && u.top != null ? Math.max(0, u.top) : e.scroller.scrollTop;
        o = Math.floor(o - cr(e));
        var f = u && u.bottom != null ? u.bottom : o + e.wrapper.clientHeight, w = W(t, o), L = W(t, f);
        if (u && u.ensure) {
          var T = u.ensure.from.line, R = u.ensure.to.line;
          T < w ? (w = T, L = W(t, Oi(u1(t, T)) + e.wrapper.clientHeight)) : Math.min(R, t.lastLine()) >= L && (w = W(t, Oi(u1(t, R)) - e.wrapper.clientHeight), L = R);
        }
        return { from: w, to: Math.max(L, w + 1) };
      }
      function Si(e, t) {
        if (!me(e, "scrollCursorIntoView")) {
          var u = e.display, o = u.sizer.getBoundingClientRect(), f = null;
          if (t.top + o.top < 0 ? f = !0 : t.bottom + o.top > (window.innerHeight || document.documentElement.clientHeight) && (f = !1), f != null && !Tt) {
            var w = Yt("div", "\u200B", null, `position: absolute;
                         top: ` + (t.top - u.viewOffset - cr(e.display)) + `px;
                         height: ` + (t.bottom - t.top + Tr(e) + u.barHeight) + `px;
                         left: ` + t.left + "px; width: " + Math.max(2, t.right - t.left) + "px;");
            e.display.lineSpace.appendChild(w), w.scrollIntoView(f), e.display.lineSpace.removeChild(w);
          }
        }
      }
      function O1(e, t, u, o) {
        o == null && (o = 0);
        var f;
        !e.options.lineWrapping && t == u && (u = t.sticky == "before" ? Ct(t.line, t.ch + 1, "before") : t, t = t.ch ? Ct(t.line, t.sticky == "before" ? t.ch - 1 : t.ch, "after") : t);
        for (var w = 0; w < 5; w++) {
          var L = !1, T = Ui(e, t), R = !u || u == t ? T : Ui(e, u);
          f = {
            left: Math.min(T.left, R.left),
            top: Math.min(T.top, R.top) - o,
            right: Math.max(T.left, R.left),
            bottom: Math.max(T.bottom, R.bottom) + o
          };
          var N = A2(e, f), q = e.doc.scrollTop, Y = e.doc.scrollLeft;
          if (N.scrollTop != null && (Jr(e, N.scrollTop), Math.abs(e.doc.scrollTop - q) > 1 && (L = !0)), N.scrollLeft != null && (ps(e, N.scrollLeft), Math.abs(e.doc.scrollLeft - Y) > 1 && (L = !0)), !L)
            break;
        }
        return f;
      }
      function ds(e, t) {
        var u = A2(e, t);
        u.scrollTop != null && Jr(e, u.scrollTop), u.scrollLeft != null && ps(e, u.scrollLeft);
      }
      function A2(e, t) {
        var u = e.display, o = $s(e.display);
        t.top < 0 && (t.top = 0);
        var f = e.curOp && e.curOp.scrollTop != null ? e.curOp.scrollTop : u.scroller.scrollTop, w = qn(e), L = {};
        t.bottom - t.top > w && (t.bottom = t.top + w);
        var T = e.doc.height + vn(u), R = t.top < o, N = t.bottom > T - o;
        if (t.top < f)
          L.scrollTop = R ? 0 : t.top;
        else if (t.bottom > f + w) {
          var q = Math.min(t.top, (N ? T : t.bottom) - w);
          q != f && (L.scrollTop = q);
        }
        var Y = e.options.fixedGutter ? 0 : u.gutters.offsetWidth, ue = e.curOp && e.curOp.scrollLeft != null ? e.curOp.scrollLeft : u.scroller.scrollLeft - Y, Q = Wr(e) - u.gutters.offsetWidth, et = t.right - t.left > Q;
        return et && (t.right = t.left + Q), t.left < 10 ? L.scrollLeft = 0 : t.left < ue ? L.scrollLeft = Math.max(0, t.left + Y - (et ? 0 : 10)) : t.right > Q + ue - 3 && (L.scrollLeft = t.right + (et ? 0 : 10) - Q), L;
      }
      function oo(e, t) {
        t != null && (ao(e), e.curOp.scrollTop = (e.curOp.scrollTop == null ? e.doc.scrollTop : e.curOp.scrollTop) + t);
      }
      function Hs(e) {
        ao(e);
        var t = e.getCursor();
        e.curOp.scrollToPos = { from: t, to: t, margin: e.options.cursorScrollMargin };
      }
      function g2(e, t, u) {
        (t != null || u != null) && ao(e), t != null && (e.curOp.scrollLeft = t), u != null && (e.curOp.scrollTop = u);
      }
      function K2(e, t) {
        ao(e), e.curOp.scrollToPos = t;
      }
      function ao(e) {
        var t = e.curOp.scrollToPos;
        if (t) {
          e.curOp.scrollToPos = null;
          var u = T2(e, t.from), o = T2(e, t.to);
          Xr(e, u, o, t.margin);
        }
      }
      function Xr(e, t, u, o) {
        var f = A2(e, {
          left: Math.min(t.left, u.left),
          top: Math.min(t.top, u.top) - o,
          right: Math.max(t.right, u.right),
          bottom: Math.max(t.bottom, u.bottom) + o
        });
        g2(e, f.scrollLeft, f.scrollTop);
      }
      function Jr(e, t) {
        Math.abs(e.doc.scrollTop - t) < 2 || (g || oa(e, { top: t }), Ua(e, t, !0), g && oa(e), Gi(e, 100));
      }
      function Ua(e, t, u) {
        t = Math.max(0, Math.min(e.display.scroller.scrollHeight - e.display.scroller.clientHeight, t)), !(e.display.scroller.scrollTop == t && !u) && (e.doc.scrollTop = t, e.display.scrollbars.setScrollTop(t), e.display.scroller.scrollTop != t && (e.display.scroller.scrollTop = t));
      }
      function ps(e, t, u, o) {
        t = Math.max(0, Math.min(t, e.display.scroller.scrollWidth - e.display.scroller.clientWidth)), !((u ? t == e.doc.scrollLeft : Math.abs(e.doc.scrollLeft - t) < 2) && !o) && (e.doc.scrollLeft = t, t2(e), e.display.scroller.scrollLeft != t && (e.display.scroller.scrollLeft = t), e.display.scrollbars.setScrollLeft(t));
      }
      function v2(e) {
        var t = e.display, u = t.gutters.offsetWidth, o = Math.round(e.doc.height + vn(e.display));
        return {
          clientHeight: t.scroller.clientHeight,
          viewHeight: t.wrapper.clientHeight,
          scrollWidth: t.scroller.scrollWidth,
          clientWidth: t.scroller.clientWidth,
          viewWidth: t.wrapper.clientWidth,
          barLeft: e.options.fixedGutter ? u : 0,
          docHeight: o,
          scrollHeight: o + Tr(e) + t.barHeight,
          nativeBarWidth: t.nativeBarWidth,
          gutterWidth: u
        };
      }
      var gs = function(e, t, u) {
        this.cm = u;
        var o = this.vert = Yt("div", [Yt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar"), f = this.horiz = Yt("div", [Yt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar");
        o.tabIndex = f.tabIndex = -1, e(o), e(f), oe(o, "scroll", function() {
          o.clientHeight && t(o.scrollTop, "vertical");
        }), oe(f, "scroll", function() {
          f.clientWidth && t(f.scrollLeft, "horizontal");
        }), this.checkedZeroWidth = !1, P && M < 8 && (this.horiz.style.minHeight = this.vert.style.minWidth = "18px");
      };
      gs.prototype.update = function(e) {
        var t = e.scrollWidth > e.clientWidth + 1, u = e.scrollHeight > e.clientHeight + 1, o = e.nativeBarWidth;
        if (u) {
          this.vert.style.display = "block", this.vert.style.bottom = t ? o + "px" : "0";
          var f = e.viewHeight - (t ? o : 0);
          this.vert.firstChild.style.height = Math.max(0, e.scrollHeight - e.clientHeight + f) + "px";
        } else
          this.vert.scrollTop = 0, this.vert.style.display = "", this.vert.firstChild.style.height = "0";
        if (t) {
          this.horiz.style.display = "block", this.horiz.style.right = u ? o + "px" : "0", this.horiz.style.left = e.barLeft + "px";
          var w = e.viewWidth - e.barLeft - (u ? o : 0);
          this.horiz.firstChild.style.width = Math.max(0, e.scrollWidth - e.clientWidth + w) + "px";
        } else
          this.horiz.style.display = "", this.horiz.firstChild.style.width = "0";
        return !this.checkedZeroWidth && e.clientHeight > 0 && (o == 0 && this.zeroWidthHack(), this.checkedZeroWidth = !0), { right: u ? o : 0, bottom: t ? o : 0 };
      }, gs.prototype.setScrollLeft = function(e) {
        this.horiz.scrollLeft != e && (this.horiz.scrollLeft = e), this.disableHoriz && this.enableZeroWidthBar(this.horiz, this.disableHoriz, "horiz");
      }, gs.prototype.setScrollTop = function(e) {
        this.vert.scrollTop != e && (this.vert.scrollTop = e), this.disableVert && this.enableZeroWidthBar(this.vert, this.disableVert, "vert");
      }, gs.prototype.zeroWidthHack = function() {
        var e = C1 && !at ? "12px" : "18px";
        this.horiz.style.height = this.vert.style.width = e, this.horiz.style.visibility = this.vert.style.visibility = "hidden", this.disableHoriz = new dn(), this.disableVert = new dn();
      }, gs.prototype.enableZeroWidthBar = function(e, t, u) {
        e.style.visibility = "";
        function o() {
          var f = e.getBoundingClientRect(), w = u == "vert" ? document.elementFromPoint(f.right - 1, (f.top + f.bottom) / 2) : document.elementFromPoint((f.right + f.left) / 2, f.bottom - 1);
          w != e ? e.style.visibility = "hidden" : t.set(1e3, o);
        }
        t.set(1e3, o);
      }, gs.prototype.clear = function() {
        var e = this.horiz.parentNode;
        e.removeChild(this.horiz), e.removeChild(this.vert);
      };
      var R2 = function() {
      };
      R2.prototype.update = function() {
        return { bottom: 0, right: 0 };
      }, R2.prototype.setScrollLeft = function() {
      }, R2.prototype.setScrollTop = function() {
      }, R2.prototype.clear = function() {
      };
      function m2(e, t) {
        t || (t = v2(e));
        var u = e.display.barWidth, o = e.display.barHeight;
        lo(e, t);
        for (var f = 0; f < 4 && u != e.display.barWidth || o != e.display.barHeight; f++)
          u != e.display.barWidth && e.options.lineWrapping && Fr(e), lo(e, v2(e)), u = e.display.barWidth, o = e.display.barHeight;
      }
      function lo(e, t) {
        var u = e.display, o = u.scrollbars.update(t);
        u.sizer.style.paddingRight = (u.barWidth = o.right) + "px", u.sizer.style.paddingBottom = (u.barHeight = o.bottom) + "px", u.heightForcer.style.borderBottom = o.bottom + "px solid transparent", o.right && o.bottom ? (u.scrollbarFiller.style.display = "block", u.scrollbarFiller.style.height = o.bottom + "px", u.scrollbarFiller.style.width = o.right + "px") : u.scrollbarFiller.style.display = "", o.bottom && e.options.coverGutterNextToScrollbar && e.options.fixedGutter ? (u.gutterFiller.style.display = "block", u.gutterFiller.style.height = o.bottom + "px", u.gutterFiller.style.width = t.gutterWidth + "px") : u.gutterFiller.style.display = "";
      }
      var O2 = { native: gs, null: R2 };
      function Li(e) {
        e.display.scrollbars && (e.display.scrollbars.clear(), e.display.scrollbars.addClass && Vt(e.display.wrapper, e.display.scrollbars.addClass)), e.display.scrollbars = new O2[e.options.scrollbarStyle](function(t) {
          e.display.wrapper.insertBefore(t, e.display.scrollbarFiller), oe(t, "mousedown", function() {
            e.state.focused && setTimeout(function() {
              return e.display.input.focus();
            }, 0);
          }), t.setAttribute("cm-not-content", "true");
        }, function(t, u) {
          u == "horizontal" ? ps(e, t) : Jr(e, t);
        }, e), e.display.scrollbars.addClass && xn(e.display.wrapper, e.display.scrollbars.addClass);
      }
      var uo = 0;
      function e2(e) {
        e.curOp = {
          cm: e,
          viewChanged: !1,
          startHeight: e.doc.height,
          forceUpdate: !1,
          updateInput: 0,
          typing: !1,
          changeObjs: null,
          cursorActivityHandlers: null,
          cursorActivityCalled: 0,
          selectionChanged: !1,
          updateMaxLine: !1,
          scrollLeft: null,
          scrollTop: null,
          scrollToPos: null,
          focus: !1,
          id: ++uo,
          markArrays: null
        }, Un(e.curOp);
      }
      function Hi(e) {
        var t = e.curOp;
        t && zn(t, function(u) {
          for (var o = 0; o < u.ops.length; o++)
            u.ops[o].cm.curOp = null;
          za(u);
        });
      }
      function za(e) {
        for (var t = e.ops, u = 0; u < t.length; u++)
          bn(t[u]);
        for (var o = 0; o < t.length; o++)
          k2(t[o]);
        for (var f = 0; f < t.length; f++)
          h3(t[f]);
        for (var w = 0; w < t.length; w++)
          co(t[w]);
        for (var L = 0; L < t.length; L++)
          Do(t[L]);
      }
      function bn(e) {
        var t = e.cm, u = t.display;
        sa(t), e.updateMaxLine && mi(t), e.mustUpdate = e.viewChanged || e.forceUpdate || e.scrollTop != null || e.scrollToPos && (e.scrollToPos.from.line < u.viewFrom || e.scrollToPos.to.line >= u.viewTo) || u.maxLineChanged && t.options.lineWrapping, e.update = e.mustUpdate && new H1(t, e.mustUpdate && { top: e.scrollTop, ensure: e.scrollToPos }, e.forceUpdate);
      }
      function k2(e) {
        e.updatedDisplay = e.mustUpdate && b2(e.cm, e.update);
      }
      function h3(e) {
        var t = e.cm, u = t.display;
        e.updatedDisplay && Fr(t), e.barMeasure = v2(t), u.maxLineChanged && !t.options.lineWrapping && (e.adjustWidthTo = oi(t, u.maxLine, u.maxLine.text.length).left + 3, t.display.sizerWidth = e.adjustWidthTo, e.barMeasure.scrollWidth = Math.max(u.scroller.clientWidth, u.sizer.offsetLeft + e.adjustWidthTo + Tr(t) + t.display.barWidth), e.maxScrollLeft = Math.max(0, u.sizer.offsetLeft + e.adjustWidthTo - Wr(t))), (e.updatedDisplay || e.selectionChanged) && (e.preparedSelection = u.input.prepareSelection());
      }
      function co(e) {
        var t = e.cm;
        e.adjustWidthTo != null && (t.display.sizer.style.minWidth = e.adjustWidthTo + "px", e.maxScrollLeft < t.doc.scrollLeft && ps(t, Math.min(t.display.scroller.scrollLeft, e.maxScrollLeft), !0), t.display.maxLineChanged = !1);
        var u = e.focus && e.focus == rn();
        e.preparedSelection && t.display.input.showSelection(e.preparedSelection, u), (e.updatedDisplay || e.startHeight != t.doc.height) && m2(t, e.barMeasure), e.updatedDisplay && $o(t, e.barMeasure), e.selectionChanged && hs(t), t.state.focused && e.updateInput && t.display.input.reset(e.typing), u && zs(e.cm);
      }
      function Do(e) {
        var t = e.cm, u = t.display, o = t.doc;
        if (e.updatedDisplay && Ha(t, e.update), u.wheelStartX != null && (e.scrollTop != null || e.scrollLeft != null || e.scrollToPos) && (u.wheelStartX = u.wheelStartY = null), e.scrollTop != null && Ua(t, e.scrollTop, e.forceScroll), e.scrollLeft != null && ps(t, e.scrollLeft, !0, !0), e.scrollToPos) {
          var f = O1(
            t,
            E1(o, e.scrollToPos.from),
            E1(o, e.scrollToPos.to),
            e.scrollToPos.margin
          );
          Si(t, f);
        }
        var w = e.maybeHiddenMarkers, L = e.maybeUnhiddenMarkers;
        if (w)
          for (var T = 0; T < w.length; ++T)
            w[T].lines.length || ke(w[T], "hide");
        if (L)
          for (var R = 0; R < L.length; ++R)
            L[R].lines.length && ke(L[R], "unhide");
        u.wrapper.offsetHeight && (o.scrollTop = t.display.scroller.scrollTop), e.changeObjs && ke(t, "changes", t, e.changeObjs), e.update && e.update.finish();
      }
      function Cr(e, t) {
        if (e.curOp)
          return t();
        e2(e);
        try {
          return t();
        } finally {
          Hi(e);
        }
      }
      function Pr(e, t) {
        return function() {
          if (e.curOp)
            return t.apply(e, arguments);
          e2(e);
          try {
            return t.apply(e, arguments);
          } finally {
            Hi(e);
          }
        };
      }
      function B(e) {
        return function() {
          if (this.curOp)
            return e.apply(this, arguments);
          e2(this);
          try {
            return e.apply(this, arguments);
          } finally {
            Hi(this);
          }
        };
      }
      function lr(e) {
        return function() {
          var t = this.cm;
          if (!t || t.curOp)
            return e.apply(this, arguments);
          e2(t);
          try {
            return e.apply(this, arguments);
          } finally {
            Hi(t);
          }
        };
      }
      function Gi(e, t) {
        e.doc.highlightFrontier < e.display.viewTo && e.state.highlight.set(t, c2(qi, e));
      }
      function qi(e) {
        var t = e.doc;
        if (!(t.highlightFrontier >= e.display.viewTo)) {
          var u = +new Date() + e.options.workTime, o = it(e, t.highlightFrontier), f = [];
          t.iter(o.line, Math.min(t.first + t.size, e.display.viewTo + 500), function(w) {
            if (o.line >= e.display.viewFrom) {
              var L = w.styles, T = w.text.length > e.options.maxHighlightLength ? mr(t.mode, o.state) : null, R = $t(e, w, o, !0);
              T && (o.state = T), w.styles = R.styles;
              var N = w.styleClasses, q = R.classes;
              q ? w.styleClasses = q : N && (w.styleClasses = null);
              for (var Y = !L || L.length != w.styles.length || N != q && (!N || !q || N.bgClass != q.bgClass || N.textClass != q.textClass), ue = 0; !Y && ue < L.length; ++ue)
                Y = L[ue] != w.styles[ue];
              Y && f.push(o.line), w.stateAfter = o.save(), o.nextLine();
            } else
              w.text.length <= e.options.maxHighlightLength && mt(e, w.text, o), w.stateAfter = o.line % 5 == 0 ? o.save() : null, o.nextLine();
            if (+new Date() > u)
              return Gi(e, e.options.workDelay), !0;
          }), t.highlightFrontier = o.line, t.modeFrontier = Math.max(t.modeFrontier, o.line), f.length && Cr(e, function() {
            for (var w = 0; w < f.length; w++)
              Qi(e, f[w], "text");
          });
        }
      }
      var H1 = function(e, t, u) {
        var o = e.display;
        this.viewport = t, this.visible = Nn(o, e.doc, t), this.editorIsHidden = !o.wrapper.offsetWidth, this.wrapperHeight = o.wrapper.clientHeight, this.wrapperWidth = o.wrapper.clientWidth, this.oldDisplayWidth = Wr(e), this.force = u, this.dims = h2(e), this.events = [];
      };
      H1.prototype.signal = function(e, t) {
        Te(e, t) && this.events.push(arguments);
      }, H1.prototype.finish = function() {
        for (var e = 0; e < this.events.length; e++)
          ke.apply(null, this.events[e]);
      };
      function sa(e) {
        var t = e.display;
        !t.scrollbarsClipped && t.scroller.offsetWidth && (t.nativeBarWidth = t.scroller.offsetWidth - t.scroller.clientWidth, t.heightForcer.style.height = Tr(e) + "px", t.sizer.style.marginBottom = -t.nativeBarWidth + "px", t.sizer.style.borderRightWidth = Tr(e) + "px", t.scrollbarsClipped = !0);
      }
      function Mo(e) {
        if (e.hasFocus())
          return null;
        var t = rn();
        if (!t || !wr(e.display.lineDiv, t))
          return null;
        var u = { activeElt: t };
        if (window.getSelection) {
          var o = window.getSelection();
          o.anchorNode && o.extend && wr(e.display.lineDiv, o.anchorNode) && (u.anchorNode = o.anchorNode, u.anchorOffset = o.anchorOffset, u.focusNode = o.focusNode, u.focusOffset = o.focusOffset);
        }
        return u;
      }
      function Ba(e) {
        if (!(!e || !e.activeElt || e.activeElt == rn()) && (e.activeElt.focus(), !/^(INPUT|TEXTAREA)$/.test(e.activeElt.nodeName) && e.anchorNode && wr(document.body, e.anchorNode) && wr(document.body, e.focusNode))) {
          var t = window.getSelection(), u = document.createRange();
          u.setEnd(e.anchorNode, e.anchorOffset), u.collapse(!1), t.removeAllRanges(), t.addRange(u), t.extend(e.focusNode, e.focusOffset);
        }
      }
      function b2(e, t) {
        var u = e.display, o = e.doc;
        if (t.editorIsHidden)
          return Bi(e), !1;
        if (!t.force && t.visible.from >= u.viewFrom && t.visible.to <= u.viewTo && (u.updateLineNumbers == null || u.updateLineNumbers >= u.viewTo) && u.renderedView == u.view && ia(e) == 0)
          return !1;
        la(e) && (Bi(e), t.dims = h2(e));
        var f = o.first + o.size, w = Math.max(t.visible.from - e.options.viewportMargin, o.first), L = Math.min(f, t.visible.to + e.options.viewportMargin);
        u.viewFrom < w && w - u.viewFrom < 20 && (w = Math.max(o.first, u.viewFrom)), u.viewTo > L && u.viewTo - L < 20 && (L = Math.min(f, u.viewTo)), Kt && (w = ra(e.doc, w), L = sn(e.doc, L));
        var T = w != u.viewFrom || L != u.viewTo || u.lastWrapHeight != t.wrapperHeight || u.lastWrapWidth != t.wrapperWidth;
        f3(e, w, L), u.viewOffset = Oi(u1(e.doc, u.viewFrom)), e.display.mover.style.top = u.viewOffset + "px";
        var R = ia(e);
        if (!T && R == 0 && !t.force && u.renderedView == u.view && (u.updateLineNumbers == null || u.updateLineNumbers >= u.viewTo))
          return !1;
        var N = Mo(e);
        return R > 4 && (u.lineDiv.style.display = "none"), d3(e, u.updateLineNumbers, t.dims), R > 4 && (u.lineDiv.style.display = ""), u.renderedView = u.view, Ba(N), w1(u.cursorDiv), w1(u.selectionDiv), u.gutters.style.height = u.sizer.style.minHeight = 0, T && (u.lastWrapHeight = t.wrapperHeight, u.lastWrapWidth = t.wrapperWidth, Gi(e, 400)), u.updateLineNumbers = null, !0;
      }
      function Ha(e, t) {
        for (var u = t.viewport, o = !0; ; o = !1) {
          if (!o || !e.options.lineWrapping || t.oldDisplayWidth == Wr(e)) {
            if (u && u.top != null && (u = { top: Math.min(e.doc.height + vn(e.display) - qn(e), u.top) }), t.visible = Nn(e.display, e.doc, u), t.visible.from >= e.display.viewFrom && t.visible.to <= e.display.viewTo)
              break;
          } else
            o && (t.visible = Nn(e.display, e.doc, u));
          if (!b2(e, t))
            break;
          Fr(e);
          var f = v2(e);
          Y2(e), m2(e, f), $o(e, f), t.force = !1;
        }
        t.signal(e, "update", e), (e.display.viewFrom != e.display.reportedViewFrom || e.display.viewTo != e.display.reportedViewTo) && (t.signal(e, "viewportChange", e, e.display.viewFrom, e.display.viewTo), e.display.reportedViewFrom = e.display.viewFrom, e.display.reportedViewTo = e.display.viewTo);
      }
      function oa(e, t) {
        var u = new H1(e, t);
        if (b2(e, u)) {
          Fr(e), Ha(e, u);
          var o = v2(e);
          Y2(e), m2(e, o), $o(e, o), u.finish();
        }
      }
      function d3(e, t, u) {
        var o = e.display, f = e.options.lineNumbers, w = o.lineDiv, L = w.firstChild;
        function T(et) {
          var ct = et.nextSibling;
          return U && C1 && e.display.currentWheelTarget == et ? et.style.display = "none" : et.parentNode.removeChild(et), ct;
        }
        for (var R = o.view, N = o.viewFrom, q = 0; q < R.length; q++) {
          var Y = R[q];
          if (!Y.hidden)
            if (!Y.node || Y.node.parentNode != w) {
              var ue = ni(e, Y, N, u);
              w.insertBefore(ue, L);
            } else {
              for (; L != Y.node; )
                L = T(L);
              var Q = f && t != null && t <= N && Y.lineNumber;
              Y.changes && (Lr(Y.changes, "gutter") > -1 && (Q = !1), Bn(e, Y, N, u)), Q && (w1(Y.lineNumber), Y.lineNumber.appendChild(document.createTextNode(W2(e.options, N)))), L = Y.node.nextSibling;
            }
          N += Y.size;
        }
        for (; L; )
          L = T(L);
      }
      function aa(e) {
        var t = e.gutters.offsetWidth;
        e.sizer.style.marginLeft = t + "px", sr(e, "gutterChanged", e);
      }
      function $o(e, t) {
        e.display.sizer.style.minHeight = t.docHeight + "px", e.display.heightForcer.style.top = t.docHeight + "px", e.display.gutters.style.height = t.docHeight + e.display.barHeight + Tr(e) + "px";
      }
      function t2(e) {
        var t = e.display, u = t.view;
        if (!(!t.alignWidgets && (!t.gutters.firstChild || !e.options.fixedGutter))) {
          for (var o = cs(t) - t.scroller.scrollLeft + e.doc.scrollLeft, f = t.gutters.offsetWidth, w = o + "px", L = 0; L < u.length; L++)
            if (!u[L].hidden) {
              e.options.fixedGutter && (u[L].gutter && (u[L].gutter.style.left = w), u[L].gutterBackground && (u[L].gutterBackground.style.left = w));
              var T = u[L].alignable;
              if (T)
                for (var R = 0; R < T.length; R++)
                  T[R].style.left = w;
            }
          e.options.fixedGutter && (t.gutters.style.left = o + f + "px");
        }
      }
      function la(e) {
        if (!e.options.lineNumbers)
          return !1;
        var t = e.doc, u = W2(e.options, t.first + t.size - 1), o = e.display;
        if (u.length != o.lineNumChars) {
          var f = o.measure.appendChild(Yt(
            "div",
            [Yt("div", u)],
            "CodeMirror-linenumber CodeMirror-gutter-elt"
          )), w = f.firstChild.offsetWidth, L = f.offsetWidth - w;
          return o.lineGutter.style.width = "", o.lineNumInnerWidth = Math.max(w, o.lineGutter.offsetWidth - L) + 1, o.lineNumWidth = o.lineNumInnerWidth + L, o.lineNumChars = o.lineNumInnerWidth ? u.length : -1, o.lineGutter.style.width = o.lineNumWidth + "px", aa(e.display), !0;
        }
        return !1;
      }
      function C2(e, t) {
        for (var u = [], o = !1, f = 0; f < e.length; f++) {
          var w = e[f], L = null;
          if (typeof w != "string" && (L = w.style, w = w.className), w == "CodeMirror-linenumbers")
            if (t)
              o = !0;
            else
              continue;
          u.push({ className: w, style: L });
        }
        return t && !o && u.push({ className: "CodeMirror-linenumbers", style: null }), u;
      }
      function ua(e) {
        var t = e.gutters, u = e.gutterSpecs;
        w1(t), e.lineGutter = null;
        for (var o = 0; o < u.length; ++o) {
          var f = u[o], w = f.className, L = f.style, T = t.appendChild(Yt("div", null, "CodeMirror-gutter " + w));
          L && (T.style.cssText = L), w == "CodeMirror-linenumbers" && (e.lineGutter = T, T.style.width = (e.lineNumWidth || 1) + "px");
        }
        t.style.display = u.length ? "" : "none", aa(e);
      }
      function fo(e) {
        ua(e.display), ai(e), t2(e);
      }
      function Dn(e, t, u, o) {
        var f = this;
        this.input = u, f.scrollbarFiller = Yt("div", null, "CodeMirror-scrollbar-filler"), f.scrollbarFiller.setAttribute("cm-not-content", "true"), f.gutterFiller = Yt("div", null, "CodeMirror-gutter-filler"), f.gutterFiller.setAttribute("cm-not-content", "true"), f.lineDiv = Or("div", null, "CodeMirror-code"), f.selectionDiv = Yt("div", null, null, "position: relative; z-index: 1"), f.cursorDiv = Yt("div", null, "CodeMirror-cursors"), f.measure = Yt("div", null, "CodeMirror-measure"), f.lineMeasure = Yt("div", null, "CodeMirror-measure"), f.lineSpace = Or(
          "div",
          [f.measure, f.lineMeasure, f.selectionDiv, f.cursorDiv, f.lineDiv],
          null,
          "position: relative; outline: none"
        );
        var w = Or("div", [f.lineSpace], "CodeMirror-lines");
        f.mover = Yt("div", [w], null, "position: relative"), f.sizer = Yt("div", [f.mover], "CodeMirror-sizer"), f.sizerWidth = null, f.heightForcer = Yt("div", null, null, "position: absolute; height: " + Ai + "px; width: 1px;"), f.gutters = Yt("div", null, "CodeMirror-gutters"), f.lineGutter = null, f.scroller = Yt("div", [f.sizer, f.heightForcer, f.gutters], "CodeMirror-scroll"), f.scroller.setAttribute("tabIndex", "-1"), f.wrapper = Yt("div", [f.scrollbarFiller, f.gutterFiller, f.scroller], "CodeMirror"), f.wrapper.setAttribute("translate", "no"), P && M < 8 && (f.gutters.style.zIndex = -1, f.scroller.style.paddingRight = 0), !U && !(g && R1) && (f.scroller.draggable = !0), e && (e.appendChild ? e.appendChild(f.wrapper) : e(f.wrapper)), f.viewFrom = f.viewTo = t.first, f.reportedViewFrom = f.reportedViewTo = t.first, f.view = [], f.renderedView = null, f.externalMeasured = null, f.viewOffset = 0, f.lastWrapHeight = f.lastWrapWidth = 0, f.updateLineNumbers = null, f.nativeBarWidth = f.barHeight = f.barWidth = 0, f.scrollbarsClipped = !1, f.lineNumWidth = f.lineNumInnerWidth = f.lineNumChars = null, f.alignWidgets = !1, f.cachedCharWidth = f.cachedTextHeight = f.cachedPaddingH = null, f.maxLine = null, f.maxLineLength = 0, f.maxLineChanged = !1, f.wheelDX = f.wheelDY = f.wheelStartX = f.wheelStartY = null, f.shift = !1, f.selForContextMenu = null, f.activeTouch = null, f.gutterSpecs = C2(o.gutters, o.lineNumbers), ua(f), u.init(f);
      }
      var dr = 0, I2 = null;
      P ? I2 = -0.53 : g ? I2 = 15 : K ? I2 = -0.7 : V && (I2 = -1 / 3);
      function Ga(e) {
        var t = e.wheelDeltaX, u = e.wheelDeltaY;
        return t == null && e.detail && e.axis == e.HORIZONTAL_AXIS && (t = e.detail), u == null && e.detail && e.axis == e.VERTICAL_AXIS ? u = e.detail : u == null && (u = e.wheelDelta), { x: t, y: u };
      }
      function ca(e) {
        var t = Ga(e);
        return t.x *= I2, t.y *= I2, t;
      }
      function Fo(e, t) {
        K && Z >= 102 && (e.display.chromeScrollHack == null ? e.display.sizer.style.pointerEvents = "none" : clearTimeout(e.display.chromeScrollHack), e.display.chromeScrollHack = setTimeout(function() {
          e.display.chromeScrollHack = null, e.display.sizer.style.pointerEvents = "";
        }, 100));
        var u = Ga(t), o = u.x, f = u.y, w = I2;
        t.deltaMode === 0 && (o = t.deltaX, f = t.deltaY, w = 1);
        var L = e.display, T = L.scroller, R = T.scrollWidth > T.clientWidth, N = T.scrollHeight > T.clientHeight;
        if (!!(o && R || f && N)) {
          if (f && C1 && U) {
            e:
              for (var q = t.target, Y = L.view; q != T; q = q.parentNode)
                for (var ue = 0; ue < Y.length; ue++)
                  if (Y[ue].node == q) {
                    e.display.currentWheelTarget = q;
                    break e;
                  }
          }
          if (o && !g && !re && w != null) {
            f && N && Jr(e, Math.max(0, T.scrollTop + f * w)), ps(e, Math.max(0, T.scrollLeft + o * w)), (!f || f && N) && xe(t), L.wheelStartX = null;
            return;
          }
          if (f && w != null) {
            var Q = f * w, et = e.doc.scrollTop, ct = et + L.wrapper.clientHeight;
            Q < 0 ? et = Math.max(0, et + Q - 50) : ct = Math.min(e.doc.height, ct + Q + 50), oa(e, { top: et, bottom: ct });
          }
          dr < 20 && t.deltaMode !== 0 && (L.wheelStartX == null ? (L.wheelStartX = T.scrollLeft, L.wheelStartY = T.scrollTop, L.wheelDX = o, L.wheelDY = f, setTimeout(function() {
            if (L.wheelStartX != null) {
              var Rt = T.scrollLeft - L.wheelStartX, Bt = T.scrollTop - L.wheelStartY, Qt = Bt && L.wheelDY && Bt / L.wheelDY || Rt && L.wheelDX && Rt / L.wheelDX;
              L.wheelStartX = L.wheelStartY = null, Qt && (I2 = (I2 * dr + Qt) / (dr + 1), ++dr);
            }
          }, 200)) : (L.wheelDX += o, L.wheelDY += f));
        }
      }
      var li = function(e, t) {
        this.ranges = e, this.primIndex = t;
      };
      li.prototype.primary = function() {
        return this.ranges[this.primIndex];
      }, li.prototype.equals = function(e) {
        if (e == this)
          return !0;
        if (e.primIndex != this.primIndex || e.ranges.length != this.ranges.length)
          return !1;
        for (var t = 0; t < this.ranges.length; t++) {
          var u = this.ranges[t], o = e.ranges[t];
          if (!so(u.anchor, o.anchor) || !so(u.head, o.head))
            return !1;
        }
        return !0;
      }, li.prototype.deepCopy = function() {
        for (var e = [], t = 0; t < this.ranges.length; t++)
          e[t] = new G1(L2(this.ranges[t].anchor), L2(this.ranges[t].head));
        return new li(e, this.primIndex);
      }, li.prototype.somethingSelected = function() {
        for (var e = 0; e < this.ranges.length; e++)
          if (!this.ranges[e].empty())
            return !0;
        return !1;
      }, li.prototype.contains = function(e, t) {
        t || (t = e);
        for (var u = 0; u < this.ranges.length; u++) {
          var o = this.ranges[u];
          if (I1(t, o.from()) >= 0 && I1(e, o.to()) <= 0)
            return u;
        }
        return -1;
      };
      var G1 = function(e, t) {
        this.anchor = e, this.head = t;
      };
      G1.prototype.from = function() {
        return Ri(this.anchor, this.head);
      }, G1.prototype.to = function() {
        return Fi(this.anchor, this.head);
      }, G1.prototype.empty = function() {
        return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch;
      };
      function Ti(e, t, u) {
        var o = e && e.options.selectionsMayTouch, f = t[u];
        t.sort(function(ue, Q) {
          return I1(ue.from(), Q.from());
        }), u = Lr(t, f);
        for (var w = 1; w < t.length; w++) {
          var L = t[w], T = t[w - 1], R = I1(T.to(), L.from());
          if (o && !L.empty() ? R > 0 : R >= 0) {
            var N = Ri(T.from(), L.from()), q = Fi(T.to(), L.to()), Y = T.empty() ? L.from() == L.head : T.from() == T.head;
            w <= u && --u, t.splice(--w, 2, new G1(Y ? q : N, Y ? N : q));
          }
        }
        return new li(t, u);
      }
      function r2(e, t) {
        return new li([new G1(e, t || e)], 0);
      }
      function Vr(e) {
        return e.text ? Ct(
          e.from.line + e.text.length - 1,
          ae(e.text).length + (e.text.length == 1 ? e.from.ch : 0)
        ) : e.to;
      }
      function ho(e, t) {
        if (I1(e, t.from) < 0)
          return e;
        if (I1(e, t.to) <= 0)
          return Vr(t);
        var u = e.line + t.text.length - (t.to.line - t.from.line) - 1, o = e.ch;
        return e.line == t.to.line && (o += Vr(t).ch - t.to.ch), Ct(u, o);
      }
      function Gs(e, t) {
        for (var u = [], o = 0; o < e.sel.ranges.length; o++) {
          var f = e.sel.ranges[o];
          u.push(new G1(
            ho(f.anchor, t),
            ho(f.head, t)
          ));
        }
        return Ti(e.cm, u, e.sel.primIndex);
      }
      function po(e, t, u) {
        return e.line == t.line ? Ct(u.line, e.ch - t.ch + u.ch) : Ct(u.line + (e.line - t.line), e.ch);
      }
      function fa(e, t, u) {
        for (var o = [], f = Ct(e.first, 0), w = f, L = 0; L < t.length; L++) {
          var T = t[L], R = po(T.from, f, w), N = po(Vr(T), f, w);
          if (f = T.to, w = N, u == "around") {
            var q = e.sel.ranges[L], Y = I1(q.head, q.anchor) < 0;
            o[L] = new G1(Y ? N : R, Y ? R : N);
          } else
            o[L] = new G1(R, R);
        }
        return new li(o, e.sel.primIndex);
      }
      function vs(e) {
        e.doc.mode = Ao(e.options, e.doc.modeOption), X2(e);
      }
      function X2(e) {
        e.doc.iter(function(t) {
          t.stateAfter && (t.stateAfter = null), t.styles && (t.styles = null);
        }), e.doc.modeFrontier = e.doc.highlightFrontier = e.doc.first, Gi(e, 100), e.state.modeGen++, e.curOp && ai(e);
      }
      function Ii(e, t) {
        return t.from.ch == 0 && t.to.ch == 0 && ae(t.text) == "" && (!e.cm || e.cm.options.wholeLineUpdateBefore);
      }
      function ha(e, t, u, o) {
        function f(Qt) {
          return u ? u[Qt] : null;
        }
        function w(Qt, Ht, f1) {
          kr(Qt, Ht, f1, o), sr(Qt, "change", Qt, t);
        }
        function L(Qt, Ht) {
          for (var f1 = [], _1 = Qt; _1 < Ht; ++_1)
            f1.push(new ls(N[_1], f(_1), o));
          return f1;
        }
        var T = t.from, R = t.to, N = t.text, q = u1(e, T.line), Y = u1(e, R.line), ue = ae(N), Q = f(N.length - 1), et = R.line - T.line;
        if (t.full)
          e.insert(0, L(0, N.length)), e.remove(N.length, e.size - N.length);
        else if (Ii(e, t)) {
          var ct = L(0, N.length - 1);
          w(Y, Y.text, Q), et && e.remove(T.line, et), ct.length && e.insert(T.line, ct);
        } else if (q == Y)
          if (N.length == 1)
            w(q, q.text.slice(0, T.ch) + ue + q.text.slice(R.ch), Q);
          else {
            var Rt = L(1, N.length - 1);
            Rt.push(new ls(ue + q.text.slice(R.ch), Q, o)), w(q, q.text.slice(0, T.ch) + N[0], f(0)), e.insert(T.line + 1, Rt);
          }
        else if (N.length == 1)
          w(q, q.text.slice(0, T.ch) + N[0] + Y.text.slice(R.ch), f(0)), e.remove(T.line + 1, et);
        else {
          w(q, q.text.slice(0, T.ch) + N[0], f(0)), w(Y, ue + Y.text.slice(R.ch), Q);
          var Bt = L(1, N.length - 1);
          et > 1 && e.remove(T.line + 1, et - 1), e.insert(T.line + 1, Bt);
        }
        sr(e, "change", e, t);
      }
      function J2(e, t, u) {
        function o(f, w, L) {
          if (f.linked)
            for (var T = 0; T < f.linked.length; ++T) {
              var R = f.linked[T];
              if (R.doc != w) {
                var N = L && R.sharedHist;
                u && !N || (t(R.doc, N), o(R.doc, f, N));
              }
            }
        }
        o(e, null, !0);
      }
      function ui(e, t) {
        if (t.cm)
          throw new Error("This document is already in use.");
        e.doc = t, t.cm = e, Fs(e), vs(e), N2(e), e.options.direction = t.direction, e.options.lineWrapping || mi(e), e.options.mode = t.modeOption, ai(e);
      }
      function N2(e) {
        (e.doc.direction == "rtl" ? xn : Vt)(e.display.lineDiv, "CodeMirror-rtl");
      }
      function n2(e) {
        Cr(e, function() {
          N2(e), ai(e);
        });
      }
      function Po(e) {
        this.done = [], this.undone = [], this.undoDepth = e ? e.undoDepth : 1 / 0, this.lastModTime = this.lastSelTime = 0, this.lastOp = this.lastSelOp = null, this.lastOrigin = this.lastSelOrigin = null, this.generation = this.maxGeneration = e ? e.maxGeneration : 1;
      }
      function Uo(e, t) {
        var u = { from: L2(t.from), to: Vr(t), text: f2(e, t.from, t.to) };
        return da(e, u, t.from.line, t.to.line + 1), J2(e, function(o) {
          return da(o, u, t.from.line, t.to.line + 1);
        }, !0), u;
      }
      function qa(e) {
        for (; e.length; ) {
          var t = ae(e);
          if (t.ranges)
            e.pop();
          else
            break;
        }
      }
      function D2(e, t) {
        if (t)
          return qa(e.done), ae(e.done);
        if (e.done.length && !ae(e.done).ranges)
          return ae(e.done);
        if (e.done.length > 1 && !e.done[e.done.length - 2].ranges)
          return e.done.pop(), ae(e.done);
      }
      function zo(e, t, u, o) {
        var f = e.history;
        f.undone.length = 0;
        var w = +new Date(), L, T;
        if ((f.lastOp == o || f.lastOrigin == t.origin && t.origin && (t.origin.charAt(0) == "+" && f.lastModTime > w - (e.cm ? e.cm.options.historyEventDelay : 500) || t.origin.charAt(0) == "*")) && (L = D2(f, f.lastOp == o)))
          T = ae(L.changes), I1(t.from, t.to) == 0 && I1(t.from, T.to) == 0 ? T.to = Vr(t) : L.changes.push(Uo(e, t));
        else {
          var R = ae(f.done);
          for ((!R || !R.ranges) && Bo(e.sel, f.done), L = {
            changes: [Uo(e, t)],
            generation: f.generation
          }, f.done.push(L); f.done.length > f.undoDepth; )
            f.done.shift(), f.done[0].ranges || f.done.shift();
        }
        f.done.push(u), f.generation = ++f.maxGeneration, f.lastModTime = f.lastSelTime = w, f.lastOp = f.lastSelOp = o, f.lastOrigin = f.lastSelOrigin = t.origin, T || ke(e, "historyAdded");
      }
      function ms(e, t, u, o) {
        var f = t.charAt(0);
        return f == "*" || f == "+" && u.ranges.length == o.ranges.length && u.somethingSelected() == o.somethingSelected() && new Date() - e.history.lastSelTime <= (e.cm ? e.cm.options.historyEventDelay : 500);
      }
      function Ni(e, t, u, o) {
        var f = e.history, w = o && o.origin;
        u == f.lastSelOp || w && f.lastSelOrigin == w && (f.lastModTime == f.lastSelTime && f.lastOrigin == w || ms(e, w, ae(f.done), t)) ? f.done[f.done.length - 1] = t : Bo(t, f.done), f.lastSelTime = +new Date(), f.lastSelOrigin = w, f.lastSelOp = u, o && o.clearRedo !== !1 && qa(f.undone);
      }
      function Bo(e, t) {
        var u = ae(t);
        u && u.ranges && u.equals(e) || t.push(e);
      }
      function da(e, t, u, o) {
        var f = t["spans_" + e.id], w = 0;
        e.iter(Math.max(e.first, u), Math.min(e.first + e.size, o), function(L) {
          L.markedSpans && ((f || (f = t["spans_" + e.id] = {}))[w] = L.markedSpans), ++w;
        });
      }
      function Wa(e) {
        if (!e)
          return null;
        for (var t, u = 0; u < e.length; ++u)
          e[u].marker.explicitlyCleared ? t || (t = e.slice(0, u)) : t && t.push(e[u]);
        return t ? t.length ? t : null : e;
      }
      function go(e, t) {
        var u = t["spans_" + e.id];
        if (!u)
          return null;
        for (var o = [], f = 0; f < t.text.length; ++f)
          o.push(Wa(u[f]));
        return o;
      }
      function y2(e, t) {
        var u = go(e, t), o = St(e, t);
        if (!u)
          return o;
        if (!o)
          return u;
        for (var f = 0; f < u.length; ++f) {
          var w = u[f], L = o[f];
          if (w && L) {
            e:
              for (var T = 0; T < L.length; ++T) {
                for (var R = L[T], N = 0; N < w.length; ++N)
                  if (w[N].marker == R.marker)
                    continue e;
                w.push(R);
              }
          } else
            L && (u[f] = L);
        }
        return u;
      }
      function bs(e, t, u) {
        for (var o = [], f = 0; f < e.length; ++f) {
          var w = e[f];
          if (w.ranges) {
            o.push(u ? li.prototype.deepCopy.call(w) : w);
            continue;
          }
          var L = w.changes, T = [];
          o.push({ changes: T });
          for (var R = 0; R < L.length; ++R) {
            var N = L[R], q = void 0;
            if (T.push({ from: N.from, to: N.to, text: N.text }), t)
              for (var Y in N)
                (q = Y.match(/^spans_(\d+)$/)) && Lr(t, Number(q[1])) > -1 && (ae(T)[Y] = N[Y], delete N[Y]);
          }
        }
        return o;
      }
      function Ho(e, t, u, o) {
        if (o) {
          var f = e.anchor;
          if (u) {
            var w = I1(t, f) < 0;
            w != I1(u, f) < 0 ? (f = t, t = u) : w != I1(t, u) < 0 && (t = u);
          }
          return new G1(f, t);
        } else
          return new G1(u || t, t);
      }
      function Z2(e, t, u, o, f) {
        f == null && (f = e.cm && (e.cm.display.shift || e.extend)), yr(e, new li([Ho(e.sel.primary(), t, u, f)], 0), o);
      }
      function ja(e, t, u) {
        for (var o = [], f = e.cm && (e.cm.display.shift || e.extend), w = 0; w < e.sel.ranges.length; w++)
          o[w] = Ho(e.sel.ranges[w], t[w], null, f);
        var L = Ti(e.cm, o, e.sel.primIndex);
        yr(e, L, u);
      }
      function Cn(e, t, u, o) {
        var f = e.sel.ranges.slice(0);
        f[t] = u, yr(e, Ti(e.cm, f, e.sel.primIndex), o);
      }
      function yn(e, t, u, o) {
        yr(e, r2(t, u), o);
      }
      function pa(e, t, u) {
        var o = {
          ranges: t.ranges,
          update: function(f) {
            this.ranges = [];
            for (var w = 0; w < f.length; w++)
              this.ranges[w] = new G1(
                E1(e, f[w].anchor),
                E1(e, f[w].head)
              );
          },
          origin: u && u.origin
        };
        return ke(e, "beforeSelectionChange", e, o), e.cm && ke(e.cm, "beforeSelectionChange", e.cm, o), o.ranges != t.ranges ? Ti(e.cm, o.ranges, o.ranges.length - 1) : t;
      }
      function ga(e, t, u) {
        var o = e.history.done, f = ae(o);
        f && f.ranges ? (o[o.length - 1] = t, qs(e, t, u)) : yr(e, t, u);
      }
      function yr(e, t, u) {
        qs(e, t, u), Ni(e, e.sel, e.cm ? e.cm.curOp.id : NaN, u);
      }
      function qs(e, t, u) {
        (Te(e, "beforeSelectionChange") || e.cm && Te(e.cm, "beforeSelectionChange")) && (t = pa(e, t, u));
        var o = u && u.bias || (I1(t.primary().head, e.sel.primary().head) < 0 ? -1 : 1);
        Cs(e, Go(e, t, o, !0)), !(u && u.scroll === !1) && e.cm && e.cm.getOption("readOnly") != "nocursor" && Hs(e.cm);
      }
      function Cs(e, t) {
        t.equals(e.sel) || (e.sel = t, e.cm && (e.cm.curOp.updateInput = 1, e.cm.curOp.selectionChanged = !0, De(e.cm)), sr(e, "cursorActivity", e));
      }
      function M2(e) {
        Cs(e, Go(e, e.sel, null, !1));
      }
      function Go(e, t, u, o) {
        for (var f, w = 0; w < t.ranges.length; w++) {
          var L = t.ranges[w], T = t.ranges.length == e.sel.ranges.length && e.sel.ranges[w], R = i2(e, L.anchor, T && T.anchor, u, o), N = L.head == L.anchor ? R : i2(e, L.head, T && T.head, u, o);
          (f || R != L.anchor || N != L.head) && (f || (f = t.ranges.slice(0, w)), f[w] = new G1(R, N));
        }
        return f ? Ti(e.cm, f, t.primIndex) : t;
      }
      function Nr(e, t, u, o, f) {
        var w = u1(e, t.line);
        if (w.markedSpans)
          for (var L = 0; L < w.markedSpans.length; ++L) {
            var T = w.markedSpans[L], R = T.marker, N = "selectLeft" in R ? !R.selectLeft : R.inclusiveLeft, q = "selectRight" in R ? !R.selectRight : R.inclusiveRight;
            if ((T.from == null || (N ? T.from <= t.ch : T.from < t.ch)) && (T.to == null || (q ? T.to >= t.ch : T.to > t.ch))) {
              if (f && (ke(R, "beforeCursorEnter"), R.explicitlyCleared))
                if (w.markedSpans) {
                  --L;
                  continue;
                } else
                  break;
              if (!R.atomic)
                continue;
              if (u) {
                var Y = R.find(o < 0 ? 1 : -1), ue = void 0;
                if ((o < 0 ? q : N) && (Y = Ws(e, Y, -o, Y && Y.line == t.line ? w : null)), Y && Y.line == t.line && (ue = I1(Y, u)) && (o < 0 ? ue < 0 : ue > 0))
                  return Nr(e, Y, t, o, f);
              }
              var Q = R.find(o < 0 ? -1 : 1);
              return (o < 0 ? N : q) && (Q = Ws(e, Q, o, Q.line == t.line ? w : null)), Q ? Nr(e, Q, t, o, f) : null;
            }
          }
        return t;
      }
      function i2(e, t, u, o, f) {
        var w = o || 1, L = Nr(e, t, u, w, f) || !f && Nr(e, t, u, w, !0) || Nr(e, t, u, -w, f) || !f && Nr(e, t, u, -w, !0);
        return L || (e.cantEdit = !0, Ct(e.first, 0));
      }
      function Ws(e, t, u, o) {
        return u < 0 && t.ch == 0 ? t.line > e.first ? E1(e, Ct(t.line - 1)) : null : u > 0 && t.ch == (o || u1(e, t.line)).text.length ? t.line < e.first + e.size - 1 ? Ct(t.line + 1, 0) : null : new Ct(t.line, t.ch + u);
      }
      function js(e) {
        e.setSelection(Ct(e.firstLine(), 0), Ct(e.lastLine()), Sn);
      }
      function Vs(e, t, u) {
        var o = {
          canceled: !1,
          from: t.from,
          to: t.to,
          text: t.text,
          origin: t.origin,
          cancel: function() {
            return o.canceled = !0;
          }
        };
        return u && (o.update = function(f, w, L, T) {
          f && (o.from = E1(e, f)), w && (o.to = E1(e, w)), L && (o.text = L), T !== void 0 && (o.origin = T);
        }), ke(e, "beforeChange", e, o), e.cm && ke(e.cm, "beforeChange", e.cm, o), o.canceled ? (e.cm && (e.cm.curOp.updateInput = 2), null) : { from: o.from, to: o.to, text: o.text, origin: o.origin };
      }
      function Q2(e, t, u) {
        if (e.cm) {
          if (!e.cm.curOp)
            return Pr(e.cm, Q2)(e, t, u);
          if (e.cm.state.suppressEdits)
            return;
        }
        if (!((Te(e, "beforeChange") || e.cm && Te(e.cm, "beforeChange")) && (t = Vs(e, t, !0), !t))) {
          var o = s1 && !u && Dt(e, t.from, t.to);
          if (o)
            for (var f = o.length - 1; f >= 0; --f)
              Ys(e, { from: o[f].from, to: o[f].to, text: f ? [""] : t.text, origin: t.origin });
          else
            Ys(e, t);
        }
      }
      function Ys(e, t) {
        if (!(t.text.length == 1 && t.text[0] == "" && I1(t.from, t.to) == 0)) {
          var u = Gs(e, t);
          zo(e, t, u, e.cm ? e.cm.curOp.id : NaN), vo(e, t, u, St(e, t));
          var o = [];
          J2(e, function(f, w) {
            !w && Lr(o, f.history) == -1 && (mo(f.history, t), o.push(f.history)), vo(f, t, null, St(f, t));
          });
        }
      }
      function s2(e, t, u) {
        var o = e.cm && e.cm.state.suppressEdits;
        if (!(o && !u)) {
          for (var f = e.history, w, L = e.sel, T = t == "undo" ? f.done : f.undone, R = t == "undo" ? f.undone : f.done, N = 0; N < T.length && (w = T[N], !(u ? w.ranges && !w.equals(e.sel) : !w.ranges)); N++)
            ;
          if (N != T.length) {
            for (f.lastOrigin = f.lastSelOrigin = null; ; )
              if (w = T.pop(), w.ranges) {
                if (Bo(w, R), u && !w.equals(e.sel)) {
                  yr(e, w, { clearRedo: !1 });
                  return;
                }
                L = w;
              } else if (o) {
                T.push(w);
                return;
              } else
                break;
            var q = [];
            Bo(L, R), R.push({ changes: q, generation: f.generation }), f.generation = w.generation || ++f.maxGeneration;
            for (var Y = Te(e, "beforeChange") || e.cm && Te(e.cm, "beforeChange"), ue = function(ct) {
              var Rt = w.changes[ct];
              if (Rt.origin = t, Y && !Vs(e, Rt, !1))
                return T.length = 0, {};
              q.push(Uo(e, Rt));
              var Bt = ct ? Gs(e, Rt) : ae(T);
              vo(e, Rt, Bt, y2(e, Rt)), !ct && e.cm && e.cm.scrollIntoView({ from: Rt.from, to: Vr(Rt) });
              var Qt = [];
              J2(e, function(Ht, f1) {
                !f1 && Lr(Qt, Ht.history) == -1 && (mo(Ht.history, Rt), Qt.push(Ht.history)), vo(Ht, Rt, null, y2(Ht, Rt));
              });
            }, Q = w.changes.length - 1; Q >= 0; --Q) {
              var et = ue(Q);
              if (et)
                return et.v;
            }
          }
        }
      }
      function ys(e, t) {
        if (t != 0 && (e.first += t, e.sel = new li(pe(e.sel.ranges, function(f) {
          return new G1(
            Ct(f.anchor.line + t, f.anchor.ch),
            Ct(f.head.line + t, f.head.ch)
          );
        }), e.sel.primIndex), e.cm)) {
          ai(e.cm, e.first, e.first - t, t);
          for (var u = e.cm.display, o = u.viewFrom; o < u.viewTo; o++)
            Qi(e.cm, o, "gutter");
        }
      }
      function vo(e, t, u, o) {
        if (e.cm && !e.cm.curOp)
          return Pr(e.cm, vo)(e, t, u, o);
        if (t.to.line < e.first) {
          ys(e, t.text.length - 1 - (t.to.line - t.from.line));
          return;
        }
        if (!(t.from.line > e.lastLine())) {
          if (t.from.line < e.first) {
            var f = t.text.length - 1 - (e.first - t.from.line);
            ys(e, f), t = {
              from: Ct(e.first, 0),
              to: Ct(t.to.line + f, t.to.ch),
              text: [ae(t.text)],
              origin: t.origin
            };
          }
          var w = e.lastLine();
          t.to.line > w && (t = {
            from: t.from,
            to: Ct(w, u1(e, w).text.length),
            text: [t.text[0]],
            origin: t.origin
          }), t.removed = f2(e, t.from, t.to), u || (u = Gs(e, t)), e.cm ? p3(e.cm, t, o) : ha(e, t, o), qs(e, u, Sn), e.cantEdit && i2(e, Ct(e.firstLine(), 0)) && (e.cantEdit = !1);
        }
      }
      function p3(e, t, u) {
        var o = e.doc, f = e.display, w = t.from, L = t.to, T = !1, R = w.line;
        e.options.lineWrapping || (R = or(qt(u1(o, w.line))), o.iter(R, L.line + 1, function(Q) {
          if (Q == f.maxLine)
            return T = !0, !0;
        })), o.sel.contains(t.from, t.to) > -1 && De(e), ha(o, t, u, zi(e)), e.options.lineWrapping || (o.iter(R, w.line + t.text.length, function(Q) {
          var et = Ns(Q);
          et > f.maxLineLength && (f.maxLine = Q, f.maxLineLength = et, f.maxLineChanged = !0, T = !1);
        }), T && (e.curOp.updateMaxLine = !0)), It(o, w.line), Gi(e, 400);
        var N = t.text.length - (L.line - w.line) - 1;
        t.full ? ai(e) : w.line == L.line && t.text.length == 1 && !Ii(e.doc, t) ? Qi(e, w.line, "text") : ai(e, w.line, L.line + 1, N);
        var q = Te(e, "changes"), Y = Te(e, "change");
        if (Y || q) {
          var ue = {
            from: w,
            to: L,
            text: t.text,
            removed: t.removed,
            origin: t.origin
          };
          Y && sr(e, "change", e, ue), q && (e.curOp.changeObjs || (e.curOp.changeObjs = [])).push(ue);
        }
        e.display.selForContextMenu = null;
      }
      function o2(e, t, u, o, f) {
        var w;
        o || (o = u), I1(o, u) < 0 && (w = [o, u], u = w[0], o = w[1]), typeof t == "string" && (t = e.splitLines(t)), Q2(e, { from: u, to: o, text: t, origin: f });
      }
      function va(e, t, u, o) {
        u < e.line ? e.line += o : t < e.line && (e.line = t, e.ch = 0);
      }
      function Va(e, t, u, o) {
        for (var f = 0; f < e.length; ++f) {
          var w = e[f], L = !0;
          if (w.ranges) {
            w.copied || (w = e[f] = w.deepCopy(), w.copied = !0);
            for (var T = 0; T < w.ranges.length; T++)
              va(w.ranges[T].anchor, t, u, o), va(w.ranges[T].head, t, u, o);
            continue;
          }
          for (var R = 0; R < w.changes.length; ++R) {
            var N = w.changes[R];
            if (u < N.from.line)
              N.from = Ct(N.from.line + o, N.from.ch), N.to = Ct(N.to.line + o, N.to.ch);
            else if (t <= N.to.line) {
              L = !1;
              break;
            }
          }
          L || (e.splice(0, f + 1), f = 0);
        }
      }
      function mo(e, t) {
        var u = t.from.line, o = t.to.line, f = t.text.length - (o - u) - 1;
        Va(e.done, u, o, f), Va(e.undone, u, o, f);
      }
      function bo(e, t, u, o) {
        var f = t, w = t;
        return typeof t == "number" ? w = u1(e, Oo(e, t)) : f = or(t), f == null ? null : (o(w, f) && e.cm && Qi(e.cm, f, u), w);
      }
      function S(e) {
        this.lines = e, this.parent = null;
        for (var t = 0, u = 0; u < e.length; ++u)
          e[u].parent = this, t += e[u].height;
        this.height = t;
      }
      S.prototype = {
        chunkSize: function() {
          return this.lines.length;
        },
        removeInner: function(e, t) {
          for (var u = e, o = e + t; u < o; ++u) {
            var f = this.lines[u];
            this.height -= f.height, Ds(f), sr(f, "delete");
          }
          this.lines.splice(e, t);
        },
        collapse: function(e) {
          e.push.apply(e, this.lines);
        },
        insertInner: function(e, t, u) {
          this.height += u, this.lines = this.lines.slice(0, e).concat(t).concat(this.lines.slice(e));
          for (var o = 0; o < t.length; ++o)
            t[o].parent = this;
        },
        iterN: function(e, t, u) {
          for (var o = e + t; e < o; ++e)
            if (u(this.lines[e]))
              return !0;
        }
      };
      function $2(e) {
        this.children = e;
        for (var t = 0, u = 0, o = 0; o < e.length; ++o) {
          var f = e[o];
          t += f.chunkSize(), u += f.height, f.parent = this;
        }
        this.size = t, this.height = u, this.parent = null;
      }
      $2.prototype = {
        chunkSize: function() {
          return this.size;
        },
        removeInner: function(e, t) {
          this.size -= t;
          for (var u = 0; u < this.children.length; ++u) {
            var o = this.children[u], f = o.chunkSize();
            if (e < f) {
              var w = Math.min(t, f - e), L = o.height;
              if (o.removeInner(e, w), this.height -= L - o.height, f == w && (this.children.splice(u--, 1), o.parent = null), (t -= w) == 0)
                break;
              e = 0;
            } else
              e -= f;
          }
          if (this.size - t < 25 && (this.children.length > 1 || !(this.children[0] instanceof S))) {
            var T = [];
            this.collapse(T), this.children = [new S(T)], this.children[0].parent = this;
          }
        },
        collapse: function(e) {
          for (var t = 0; t < this.children.length; ++t)
            this.children[t].collapse(e);
        },
        insertInner: function(e, t, u) {
          this.size += t.length, this.height += u;
          for (var o = 0; o < this.children.length; ++o) {
            var f = this.children[o], w = f.chunkSize();
            if (e <= w) {
              if (f.insertInner(e, t, u), f.lines && f.lines.length > 50) {
                for (var L = f.lines.length % 25 + 25, T = L; T < f.lines.length; ) {
                  var R = new S(f.lines.slice(T, T += 25));
                  f.height -= R.height, this.children.splice(++o, 0, R), R.parent = this;
                }
                f.lines = f.lines.slice(0, L), this.maybeSpill();
              }
              break;
            }
            e -= w;
          }
        },
        maybeSpill: function() {
          if (!(this.children.length <= 10)) {
            var e = this;
            do {
              var t = e.children.splice(e.children.length - 5, 5), u = new $2(t);
              if (e.parent) {
                e.size -= u.size, e.height -= u.height;
                var f = Lr(e.parent.children, e);
                e.parent.children.splice(f + 1, 0, u);
              } else {
                var o = new $2(e.children);
                o.parent = e, e.children = [o, u], e = o;
              }
              u.parent = e.parent;
            } while (e.children.length > 10);
            e.parent.maybeSpill();
          }
        },
        iterN: function(e, t, u) {
          for (var o = 0; o < this.children.length; ++o) {
            var f = this.children[o], w = f.chunkSize();
            if (e < w) {
              var L = Math.min(t, w - e);
              if (f.iterN(e, L, u))
                return !0;
              if ((t -= L) == 0)
                break;
              e = 0;
            } else
              e -= w;
          }
        }
      };
      var v = function(e, t, u) {
        if (u)
          for (var o in u)
            u.hasOwnProperty(o) && (this[o] = u[o]);
        this.doc = e, this.node = t;
      };
      v.prototype.clear = function() {
        var e = this.doc.cm, t = this.line.widgets, u = this.line, o = or(u);
        if (!(o == null || !t)) {
          for (var f = 0; f < t.length; ++f)
            t[f] == this && t.splice(f--, 1);
          t.length || (u.widgets = null);
          var w = gn(this);
          $i(u, Math.max(0, u.height - w)), e && (Cr(e, function() {
            Ya(e, u, -w), Qi(e, o, "widget");
          }), sr(e, "lineWidgetCleared", e, this, o));
        }
      }, v.prototype.changed = function() {
        var e = this, t = this.height, u = this.doc.cm, o = this.line;
        this.height = null;
        var f = gn(this) - t;
        !f || (Pi(this.doc, o) || $i(o, o.height + f), u && Cr(u, function() {
          u.curOp.forceUpdate = !0, Ya(u, o, f), sr(u, "lineWidgetChanged", u, e, or(o));
        }));
      }, Oe(v);
      function Ya(e, t, u) {
        Oi(t) < (e.curOp && e.curOp.scrollTop || e.doc.scrollTop) && oo(e, u);
      }
      function ft(e, t, u, o) {
        var f = new v(e, u, o), w = e.cm;
        return w && f.noHScroll && (w.display.alignWidgets = !0), bo(e, t, "widget", function(L) {
          var T = L.widgets || (L.widgets = []);
          if (f.insertAt == null ? T.push(f) : T.splice(Math.min(T.length, Math.max(0, f.insertAt)), 0, f), f.line = L, w && !Pi(e, L)) {
            var R = Oi(L) < e.scrollTop;
            $i(L, L.height + gn(f)), R && oo(w, f.height), w.curOp.forceUpdate = !0;
          }
          return !0;
        }), w && sr(w, "lineWidgetAdded", w, f, typeof t == "number" ? t : or(t)), f;
      }
      var Ka = 0, ci = function(e, t) {
        this.lines = [], this.type = t, this.doc = e, this.id = ++Ka;
      };
      ci.prototype.clear = function() {
        if (!this.explicitlyCleared) {
          var e = this.doc.cm, t = e && !e.curOp;
          if (t && e2(e), Te(this, "clear")) {
            var u = this.find();
            u && sr(this, "clear", u.from, u.to);
          }
          for (var o = null, f = null, w = 0; w < this.lines.length; ++w) {
            var L = this.lines[w], T = Mt(L.markedSpans, this);
            e && !this.collapsed ? Qi(e, or(L), "text") : e && (T.to != null && (f = or(L)), T.from != null && (o = or(L))), L.markedSpans = bt(L.markedSpans, T), T.from == null && this.collapsed && !Pi(this.doc, L) && e && $i(L, $s(e.display));
          }
          if (e && this.collapsed && !e.options.lineWrapping)
            for (var R = 0; R < this.lines.length; ++R) {
              var N = qt(this.lines[R]), q = Ns(N);
              q > e.display.maxLineLength && (e.display.maxLine = N, e.display.maxLineLength = q, e.display.maxLineChanged = !0);
            }
          o != null && e && this.collapsed && ai(e, o, f + 1), this.lines.length = 0, this.explicitlyCleared = !0, this.atomic && this.doc.cantEdit && (this.doc.cantEdit = !1, e && M2(e.doc)), e && sr(e, "markerCleared", e, this, o, f), t && Hi(e), this.parent && this.parent.clear();
        }
      }, ci.prototype.find = function(e, t) {
        e == null && this.type == "bookmark" && (e = 1);
        for (var u, o, f = 0; f < this.lines.length; ++f) {
          var w = this.lines[f], L = Mt(w.markedSpans, this);
          if (L.from != null && (u = Ct(t ? w : or(w), L.from), e == -1))
            return u;
          if (L.to != null && (o = Ct(t ? w : or(w), L.to), e == 1))
            return o;
        }
        return u && { from: u, to: o };
      }, ci.prototype.changed = function() {
        var e = this, t = this.find(-1, !0), u = this, o = this.doc.cm;
        !t || !o || Cr(o, function() {
          var f = t.line, w = or(t.line), L = jr(o, w);
          if (L && (Fa(L), o.curOp.selectionChanged = o.curOp.forceUpdate = !0), o.curOp.updateMaxLine = !0, !Pi(u.doc, f) && u.height != null) {
            var T = u.height;
            u.height = null;
            var R = gn(u) - T;
            R && $i(f, f.height + R);
          }
          sr(o, "markerChanged", o, e);
        });
      }, ci.prototype.attachLine = function(e) {
        if (!this.lines.length && this.doc.cm) {
          var t = this.doc.cm.curOp;
          (!t.maybeHiddenMarkers || Lr(t.maybeHiddenMarkers, this) == -1) && (t.maybeUnhiddenMarkers || (t.maybeUnhiddenMarkers = [])).push(this);
        }
        this.lines.push(e);
      }, ci.prototype.detachLine = function(e) {
        if (this.lines.splice(Lr(this.lines, e), 1), !this.lines.length && this.doc.cm) {
          var t = this.doc.cm.curOp;
          (t.maybeHiddenMarkers || (t.maybeHiddenMarkers = [])).push(this);
        }
      }, Oe(ci);
      function wn(e, t, u, o, f) {
        if (o && o.shared)
          return Xa(e, t, u, o, f);
        if (e.cm && !e.cm.curOp)
          return Pr(e.cm, wn)(e, t, u, o, f);
        var w = new ci(e, f), L = I1(t, u);
        if (o && gi(o, w, !1), L > 0 || L == 0 && w.clearWhenEmpty !== !1)
          return w;
        if (w.replacedWith && (w.collapsed = !0, w.widgetNode = Or("span", [w.replacedWith], "CodeMirror-widget"), o.handleMouseEvents || w.widgetNode.setAttribute("cm-ignore-events", "true"), o.insertLeft && (w.widgetNode.insertLeft = !0)), w.collapsed) {
          if (Ut(e, t.line, t, u, w) || t.line != u.line && Ut(e, u.line, t, u, w))
            throw new Error("Inserting collapsed marker partially overlapping an existing one");
          _t();
        }
        w.addToHistory && zo(e, { from: t, to: u, origin: "markText" }, e.sel, NaN);
        var T = t.line, R = e.cm, N;
        if (e.iter(T, u.line + 1, function(Y) {
          R && w.collapsed && !R.options.lineWrapping && qt(Y) == R.display.maxLine && (N = !0), w.collapsed && T != t.line && $i(Y, 0), Ft(Y, new wt(
            w,
            T == t.line ? t.ch : null,
            T == u.line ? u.ch : null
          ), e.cm && e.cm.curOp), ++T;
        }), w.collapsed && e.iter(t.line, u.line + 1, function(Y) {
          Pi(e, Y) && $i(Y, 0);
        }), w.clearOnEnter && oe(w, "beforeCursorEnter", function() {
          return w.clear();
        }), w.readOnly && (v1(), (e.history.done.length || e.history.undone.length) && e.clearHistory()), w.collapsed && (w.id = ++Ka, w.atomic = !0), R) {
          if (N && (R.curOp.updateMaxLine = !0), w.collapsed)
            ai(R, t.line, u.line + 1);
          else if (w.className || w.startStyle || w.endStyle || w.css || w.attributes || w.title)
            for (var q = t.line; q <= u.line; q++)
              Qi(R, q, "text");
          w.atomic && M2(R.doc), sr(R, "markerAdded", R, w);
        }
        return w;
      }
      var Co = function(e, t) {
        this.markers = e, this.primary = t;
        for (var u = 0; u < e.length; ++u)
          e[u].parent = this;
      };
      Co.prototype.clear = function() {
        if (!this.explicitlyCleared) {
          this.explicitlyCleared = !0;
          for (var e = 0; e < this.markers.length; ++e)
            this.markers[e].clear();
          sr(this, "clear");
        }
      }, Co.prototype.find = function(e, t) {
        return this.primary.find(e, t);
      }, Oe(Co);
      function Xa(e, t, u, o, f) {
        o = gi(o), o.shared = !1;
        var w = [wn(e, t, u, o, f)], L = w[0], T = o.widgetNode;
        return J2(e, function(R) {
          T && (o.widgetNode = T.cloneNode(!0)), w.push(wn(R, E1(R, t), E1(R, u), o, f));
          for (var N = 0; N < R.linked.length; ++N)
            if (R.linked[N].isParent)
              return;
          L = ae(w);
        }), new Co(w, L);
      }
      function Q1(e) {
        return e.findMarks(Ct(e.first, 0), e.clipPos(Ct(e.lastLine())), function(t) {
          return t.parent;
        });
      }
      function M3(e, t) {
        for (var u = 0; u < t.length; u++) {
          var o = t[u], f = o.find(), w = e.clipPos(f.from), L = e.clipPos(f.to);
          if (I1(w, L)) {
            var T = wn(e, w, L, o.primary, o.primary.type);
            o.markers.push(T), T.parent = o;
          }
        }
      }
      function $3(e) {
        for (var t = function(o) {
          var f = e[o], w = [f.primary.doc];
          J2(f.primary.doc, function(R) {
            return w.push(R);
          });
          for (var L = 0; L < f.markers.length; L++) {
            var T = f.markers[L];
            Lr(w, T.doc) == -1 && (T.parent = null, f.markers.splice(L--, 1));
          }
        }, u = 0; u < e.length; u++)
          t(u);
      }
      var ma = 0, _i = function(e, t, u, o, f) {
        if (!(this instanceof _i))
          return new _i(e, t, u, o, f);
        u == null && (u = 0), $2.call(this, [new S([new ls("", null)])]), this.first = u, this.scrollTop = this.scrollLeft = 0, this.cantEdit = !1, this.cleanGeneration = 1, this.modeFrontier = this.highlightFrontier = u;
        var w = Ct(u, 0);
        this.sel = r2(w), this.history = new Po(null), this.id = ++ma, this.modeOption = t, this.lineSep = o, this.direction = f == "rtl" ? "rtl" : "ltr", this.extend = !1, typeof e == "string" && (e = this.splitLines(e)), ha(this, { from: w, to: w, text: e }), yr(this, r2(w), Sn);
      };
      _i.prototype = Os($2.prototype, {
        constructor: _i,
        iter: function(e, t, u) {
          u ? this.iterN(e - this.first, t - e, u) : this.iterN(this.first, this.first + this.size, e);
        },
        insert: function(e, t) {
          for (var u = 0, o = 0; o < t.length; ++o)
            u += t[o].height;
          this.insertInner(e - this.first, t, u);
        },
        remove: function(e, t) {
          this.removeInner(e - this.first, t);
        },
        getValue: function(e) {
          var t = io(this, this.first, this.first + this.size);
          return e === !1 ? t : t.join(e || this.lineSeparator());
        },
        setValue: lr(function(e) {
          var t = Ct(this.first, 0), u = this.first + this.size - 1;
          Q2(this, {
            from: t,
            to: Ct(u, u1(this, u).text.length),
            text: this.splitLines(e),
            origin: "setValue",
            full: !0
          }, !0), this.cm && g2(this.cm, 0, 0), yr(this, r2(t), Sn);
        }),
        replaceRange: function(e, t, u, o) {
          t = E1(this, t), u = u ? E1(this, u) : t, o2(this, e, t, u, o);
        },
        getRange: function(e, t, u) {
          var o = f2(this, E1(this, e), E1(this, t));
          return u === !1 ? o : u === "" ? o.join("") : o.join(u || this.lineSeparator());
        },
        getLine: function(e) {
          var t = this.getLineHandle(e);
          return t && t.text;
        },
        getLineHandle: function(e) {
          if (ss(this, e))
            return u1(this, e);
        },
        getLineNumber: function(e) {
          return or(e);
        },
        getLineHandleVisualStart: function(e) {
          return typeof e == "number" && (e = u1(this, e)), qt(e);
        },
        lineCount: function() {
          return this.size;
        },
        firstLine: function() {
          return this.first;
        },
        lastLine: function() {
          return this.first + this.size - 1;
        },
        clipPos: function(e) {
          return E1(this, e);
        },
        getCursor: function(e) {
          var t = this.sel.primary(), u;
          return e == null || e == "head" ? u = t.head : e == "anchor" ? u = t.anchor : e == "end" || e == "to" || e === !1 ? u = t.to() : u = t.from(), u;
        },
        listSelections: function() {
          return this.sel.ranges;
        },
        somethingSelected: function() {
          return this.sel.somethingSelected();
        },
        setCursor: lr(function(e, t, u) {
          yn(this, E1(this, typeof e == "number" ? Ct(e, t || 0) : e), null, u);
        }),
        setSelection: lr(function(e, t, u) {
          yn(this, E1(this, e), E1(this, t || e), u);
        }),
        extendSelection: lr(function(e, t, u) {
          Z2(this, E1(this, e), t && E1(this, t), u);
        }),
        extendSelections: lr(function(e, t) {
          ja(this, os(this, e), t);
        }),
        extendSelectionsBy: lr(function(e, t) {
          var u = pe(this.sel.ranges, e);
          ja(this, os(this, u), t);
        }),
        setSelections: lr(function(e, t, u) {
          if (!!e.length) {
            for (var o = [], f = 0; f < e.length; f++)
              o[f] = new G1(
                E1(this, e[f].anchor),
                E1(this, e[f].head || e[f].anchor)
              );
            t == null && (t = Math.min(e.length - 1, this.sel.primIndex)), yr(this, Ti(this.cm, o, t), u);
          }
        }),
        addSelection: lr(function(e, t, u) {
          var o = this.sel.ranges.slice(0);
          o.push(new G1(E1(this, e), E1(this, t || e))), yr(this, Ti(this.cm, o, o.length - 1), u);
        }),
        getSelection: function(e) {
          for (var t = this.sel.ranges, u, o = 0; o < t.length; o++) {
            var f = f2(this, t[o].from(), t[o].to());
            u = u ? u.concat(f) : f;
          }
          return e === !1 ? u : u.join(e || this.lineSeparator());
        },
        getSelections: function(e) {
          for (var t = [], u = this.sel.ranges, o = 0; o < u.length; o++) {
            var f = f2(this, u[o].from(), u[o].to());
            e !== !1 && (f = f.join(e || this.lineSeparator())), t[o] = f;
          }
          return t;
        },
        replaceSelection: function(e, t, u) {
          for (var o = [], f = 0; f < this.sel.ranges.length; f++)
            o[f] = e;
          this.replaceSelections(o, t, u || "+input");
        },
        replaceSelections: lr(function(e, t, u) {
          for (var o = [], f = this.sel, w = 0; w < f.ranges.length; w++) {
            var L = f.ranges[w];
            o[w] = { from: L.from(), to: L.to(), text: this.splitLines(e[w]), origin: u };
          }
          for (var T = t && t != "end" && fa(this, o, t), R = o.length - 1; R >= 0; R--)
            Q2(this, o[R]);
          T ? ga(this, T) : this.cm && Hs(this.cm);
        }),
        undo: lr(function() {
          s2(this, "undo");
        }),
        redo: lr(function() {
          s2(this, "redo");
        }),
        undoSelection: lr(function() {
          s2(this, "undo", !0);
        }),
        redoSelection: lr(function() {
          s2(this, "redo", !0);
        }),
        setExtending: function(e) {
          this.extend = e;
        },
        getExtending: function() {
          return this.extend;
        },
        historySize: function() {
          for (var e = this.history, t = 0, u = 0, o = 0; o < e.done.length; o++)
            e.done[o].ranges || ++t;
          for (var f = 0; f < e.undone.length; f++)
            e.undone[f].ranges || ++u;
          return { undo: t, redo: u };
        },
        clearHistory: function() {
          var e = this;
          this.history = new Po(this.history), J2(this, function(t) {
            return t.history = e.history;
          }, !0);
        },
        markClean: function() {
          this.cleanGeneration = this.changeGeneration(!0);
        },
        changeGeneration: function(e) {
          return e && (this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null), this.history.generation;
        },
        isClean: function(e) {
          return this.history.generation == (e || this.cleanGeneration);
        },
        getHistory: function() {
          return {
            done: bs(this.history.done),
            undone: bs(this.history.undone)
          };
        },
        setHistory: function(e) {
          var t = this.history = new Po(this.history);
          t.done = bs(e.done.slice(0), null, !0), t.undone = bs(e.undone.slice(0), null, !0);
        },
        setGutterMarker: lr(function(e, t, u) {
          return bo(this, e, "gutter", function(o) {
            var f = o.gutterMarkers || (o.gutterMarkers = {});
            return f[t] = u, !u && Ze(f) && (o.gutterMarkers = null), !0;
          });
        }),
        clearGutter: lr(function(e) {
          var t = this;
          this.iter(function(u) {
            u.gutterMarkers && u.gutterMarkers[e] && bo(t, u, "gutter", function() {
              return u.gutterMarkers[e] = null, Ze(u.gutterMarkers) && (u.gutterMarkers = null), !0;
            });
          });
        }),
        lineInfo: function(e) {
          var t;
          if (typeof e == "number") {
            if (!ss(this, e) || (t = e, e = u1(this, e), !e))
              return null;
          } else if (t = or(e), t == null)
            return null;
          return {
            line: t,
            handle: e,
            text: e.text,
            gutterMarkers: e.gutterMarkers,
            textClass: e.textClass,
            bgClass: e.bgClass,
            wrapClass: e.wrapClass,
            widgets: e.widgets
          };
        },
        addLineClass: lr(function(e, t, u) {
          return bo(this, e, t == "gutter" ? "gutter" : "class", function(o) {
            var f = t == "text" ? "textClass" : t == "background" ? "bgClass" : t == "gutter" ? "gutterClass" : "wrapClass";
            if (!o[f])
              o[f] = u;
            else {
              if (tn(u).test(o[f]))
                return !1;
              o[f] += " " + u;
            }
            return !0;
          });
        }),
        removeLineClass: lr(function(e, t, u) {
          return bo(this, e, t == "gutter" ? "gutter" : "class", function(o) {
            var f = t == "text" ? "textClass" : t == "background" ? "bgClass" : t == "gutter" ? "gutterClass" : "wrapClass", w = o[f];
            if (w)
              if (u == null)
                o[f] = null;
              else {
                var L = w.match(tn(u));
                if (!L)
                  return !1;
                var T = L.index + L[0].length;
                o[f] = w.slice(0, L.index) + (!L.index || T == w.length ? "" : " ") + w.slice(T) || null;
              }
            else
              return !1;
            return !0;
          });
        }),
        addLineWidget: lr(function(e, t, u) {
          return ft(this, e, t, u);
        }),
        removeLineWidget: function(e) {
          e.clear();
        },
        markText: function(e, t, u) {
          return wn(this, E1(this, e), E1(this, t), u, u && u.type || "range");
        },
        setBookmark: function(e, t) {
          var u = {
            replacedWith: t && (t.nodeType == null ? t.widget : t),
            insertLeft: t && t.insertLeft,
            clearWhenEmpty: !1,
            shared: t && t.shared,
            handleMouseEvents: t && t.handleMouseEvents
          };
          return e = E1(this, e), wn(this, e, e, u, "bookmark");
        },
        findMarksAt: function(e) {
          e = E1(this, e);
          var t = [], u = u1(this, e.line).markedSpans;
          if (u)
            for (var o = 0; o < u.length; ++o) {
              var f = u[o];
              (f.from == null || f.from <= e.ch) && (f.to == null || f.to >= e.ch) && t.push(f.marker.parent || f.marker);
            }
          return t;
        },
        findMarks: function(e, t, u) {
          e = E1(this, e), t = E1(this, t);
          var o = [], f = e.line;
          return this.iter(e.line, t.line + 1, function(w) {
            var L = w.markedSpans;
            if (L)
              for (var T = 0; T < L.length; T++) {
                var R = L[T];
                !(R.to != null && f == e.line && e.ch >= R.to || R.from == null && f != e.line || R.from != null && f == t.line && R.from >= t.ch) && (!u || u(R.marker)) && o.push(R.marker.parent || R.marker);
              }
            ++f;
          }), o;
        },
        getAllMarks: function() {
          var e = [];
          return this.iter(function(t) {
            var u = t.markedSpans;
            if (u)
              for (var o = 0; o < u.length; ++o)
                u[o].from != null && e.push(u[o].marker);
          }), e;
        },
        posFromIndex: function(e) {
          var t, u = this.first, o = this.lineSeparator().length;
          return this.iter(function(f) {
            var w = f.text.length + o;
            if (w > e)
              return t = e, !0;
            e -= w, ++u;
          }), E1(this, Ct(u, t));
        },
        indexFromPos: function(e) {
          e = E1(this, e);
          var t = e.ch;
          if (e.line < this.first || e.ch < 0)
            return 0;
          var u = this.lineSeparator().length;
          return this.iter(this.first, e.line, function(o) {
            t += o.text.length + u;
          }), t;
        },
        copy: function(e) {
          var t = new _i(
            io(this, this.first, this.first + this.size),
            this.modeOption,
            this.first,
            this.lineSep,
            this.direction
          );
          return t.scrollTop = this.scrollTop, t.scrollLeft = this.scrollLeft, t.sel = this.sel, t.extend = !1, e && (t.history.undoDepth = this.history.undoDepth, t.setHistory(this.getHistory())), t;
        },
        linkedDoc: function(e) {
          e || (e = {});
          var t = this.first, u = this.first + this.size;
          e.from != null && e.from > t && (t = e.from), e.to != null && e.to < u && (u = e.to);
          var o = new _i(io(this, t, u), e.mode || this.modeOption, t, this.lineSep, this.direction);
          return e.sharedHist && (o.history = this.history), (this.linked || (this.linked = [])).push({ doc: o, sharedHist: e.sharedHist }), o.linked = [{ doc: this, isParent: !0, sharedHist: e.sharedHist }], M3(o, Q1(this)), o;
        },
        unlinkDoc: function(e) {
          if (e instanceof se && (e = e.doc), this.linked)
            for (var t = 0; t < this.linked.length; ++t) {
              var u = this.linked[t];
              if (u.doc == e) {
                this.linked.splice(t, 1), e.unlinkDoc(this), $3(Q1(this));
                break;
              }
            }
          if (e.history == this.history) {
            var o = [e.id];
            J2(e, function(f) {
              return o.push(f.id);
            }, !0), e.history = new Po(null), e.history.done = bs(this.history.done, o), e.history.undone = bs(this.history.undone, o);
          }
        },
        iterLinkedDocs: function(e) {
          J2(this, e);
        },
        getMode: function() {
          return this.mode;
        },
        getEditor: function() {
          return this.cm;
        },
        splitLines: function(e) {
          return this.lineSep ? e.split(this.lineSep) : Je(e);
        },
        lineSeparator: function() {
          return this.lineSep || `
`;
        },
        setDirection: lr(function(e) {
          e != "rtl" && (e = "ltr"), e != this.direction && (this.direction = e, this.iter(function(t) {
            return t.order = null;
          }), this.cm && n2(this.cm));
        })
      }), _i.prototype.eachLine = _i.prototype.iter;
      var yo = 0;
      function w2(e) {
        var t = this;
        if (Ja(t), !(me(t, e) || Ir(t.display, e))) {
          xe(e), P && (yo = +new Date());
          var u = d2(t, e, !0), o = e.dataTransfer.files;
          if (!(!u || t.isReadOnly()))
            if (o && o.length && window.FileReader && window.File)
              for (var f = o.length, w = Array(f), L = 0, T = function() {
                ++L == f && Pr(t, function() {
                  u = E1(t.doc, u);
                  var Q = {
                    from: u,
                    to: u,
                    text: t.doc.splitLines(
                      w.filter(function(et) {
                        return et != null;
                      }).join(t.doc.lineSeparator())
                    ),
                    origin: "paste"
                  };
                  Q2(t.doc, Q), ga(t.doc, r2(E1(t.doc, u), E1(t.doc, Vr(Q))));
                })();
              }, R = function(Q, et) {
                if (t.options.allowDropFileTypes && Lr(t.options.allowDropFileTypes, Q.type) == -1) {
                  T();
                  return;
                }
                var ct = new FileReader();
                ct.onerror = function() {
                  return T();
                }, ct.onload = function() {
                  var Rt = ct.result;
                  if (/[\x00-\x08\x0e-\x1f]{2}/.test(Rt)) {
                    T();
                    return;
                  }
                  w[et] = Rt, T();
                }, ct.readAsText(Q);
              }, N = 0; N < o.length; N++)
                R(o[N], N);
            else {
              if (t.state.draggingText && t.doc.sel.contains(u) > -1) {
                t.state.draggingText(e), setTimeout(function() {
                  return t.display.input.focus();
                }, 20);
                return;
              }
              try {
                var q = e.dataTransfer.getData("Text");
                if (q) {
                  var Y;
                  if (t.state.draggingText && !t.state.draggingText.copy && (Y = t.listSelections()), qs(t.doc, r2(u, u)), Y)
                    for (var ue = 0; ue < Y.length; ++ue)
                      o2(t.doc, "", Y[ue].anchor, Y[ue].head, "drag");
                  t.replaceSelection(q, "around", "paste"), t.display.input.focus();
                }
              } catch {
              }
            }
        }
      }
      function g3(e, t) {
        if (P && (!e.state.draggingText || +new Date() - yo < 100)) {
          $e(t);
          return;
        }
        if (!(me(e, t) || Ir(e.display, t)) && (t.dataTransfer.setData("Text", e.getSelection()), t.dataTransfer.effectAllowed = "copyMove", t.dataTransfer.setDragImage && !V)) {
          var u = Yt("img", null, null, "position: fixed; left: 0; top: 0;");
          u.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==", re && (u.width = u.height = 1, e.display.wrapper.appendChild(u), u._top = u.offsetTop), t.dataTransfer.setDragImage(u, 0, 0), re && u.parentNode.removeChild(u);
        }
      }
      function F3(e, t) {
        var u = d2(e, t);
        if (!!u) {
          var o = document.createDocumentFragment();
          Ps(e, u, o), e.display.dragCursor || (e.display.dragCursor = Yt("div", null, "CodeMirror-cursors CodeMirror-dragcursors"), e.display.lineSpace.insertBefore(e.display.dragCursor, e.display.cursorDiv)), l1(e.display.dragCursor, o);
        }
      }
      function Ja(e) {
        e.display.dragCursor && (e.display.lineSpace.removeChild(e.display.dragCursor), e.display.dragCursor = null);
      }
      function P3(e) {
        if (!!document.getElementsByClassName) {
          for (var t = document.getElementsByClassName("CodeMirror"), u = [], o = 0; o < t.length; o++) {
            var f = t[o].CodeMirror;
            f && u.push(f);
          }
          u.length && u[0].operation(function() {
            for (var w = 0; w < u.length; w++)
              e(u[w]);
          });
        }
      }
      var Za = !1;
      function K1() {
        Za || (qo(), Za = !0);
      }
      function qo() {
        var e;
        oe(window, "resize", function() {
          e == null && (e = setTimeout(function() {
            e = null, P3(Wo);
          }, 100));
        }), oe(window, "blur", function() {
          return P3(p2);
        });
      }
      function Wo(e) {
        var t = e.display;
        t.cachedCharWidth = t.cachedTextHeight = t.cachedPaddingH = null, t.scrollbarsClipped = !1, e.setSize();
      }
      for (var Wi = {
        3: "Pause",
        8: "Backspace",
        9: "Tab",
        13: "Enter",
        16: "Shift",
        17: "Ctrl",
        18: "Alt",
        19: "Pause",
        20: "CapsLock",
        27: "Esc",
        32: "Space",
        33: "PageUp",
        34: "PageDown",
        35: "End",
        36: "Home",
        37: "Left",
        38: "Up",
        39: "Right",
        40: "Down",
        44: "PrintScrn",
        45: "Insert",
        46: "Delete",
        59: ";",
        61: "=",
        91: "Mod",
        92: "Mod",
        93: "Mod",
        106: "*",
        107: "=",
        109: "-",
        110: ".",
        111: "/",
        145: "ScrollLock",
        173: "-",
        186: ";",
        187: "=",
        188: ",",
        189: "-",
        190: ".",
        191: "/",
        192: "`",
        219: "[",
        220: "\\",
        221: "]",
        222: "'",
        224: "Mod",
        63232: "Up",
        63233: "Down",
        63234: "Left",
        63235: "Right",
        63272: "Delete",
        63273: "Home",
        63275: "End",
        63276: "PageUp",
        63277: "PageDown",
        63302: "Insert"
      }, rr = 0; rr < 10; rr++)
        Wi[rr + 48] = Wi[rr + 96] = String(rr);
      for (var Qa = 65; Qa <= 90; Qa++)
        Wi[Qa] = String.fromCharCode(Qa);
      for (var ba = 1; ba <= 12; ba++)
        Wi[ba + 111] = Wi[ba + 63235] = "F" + ba;
      var cn = {};
      cn.basic = {
        Left: "goCharLeft",
        Right: "goCharRight",
        Up: "goLineUp",
        Down: "goLineDown",
        End: "goLineEnd",
        Home: "goLineStartSmart",
        PageUp: "goPageUp",
        PageDown: "goPageDown",
        Delete: "delCharAfter",
        Backspace: "delCharBefore",
        "Shift-Backspace": "delCharBefore",
        Tab: "defaultTab",
        "Shift-Tab": "indentAuto",
        Enter: "newlineAndIndent",
        Insert: "toggleOverwrite",
        Esc: "singleSelection"
      }, cn.pcDefault = {
        "Ctrl-A": "selectAll",
        "Ctrl-D": "deleteLine",
        "Ctrl-Z": "undo",
        "Shift-Ctrl-Z": "redo",
        "Ctrl-Y": "redo",
        "Ctrl-Home": "goDocStart",
        "Ctrl-End": "goDocEnd",
        "Ctrl-Up": "goLineUp",
        "Ctrl-Down": "goLineDown",
        "Ctrl-Left": "goGroupLeft",
        "Ctrl-Right": "goGroupRight",
        "Alt-Left": "goLineStart",
        "Alt-Right": "goLineEnd",
        "Ctrl-Backspace": "delGroupBefore",
        "Ctrl-Delete": "delGroupAfter",
        "Ctrl-S": "save",
        "Ctrl-F": "find",
        "Ctrl-G": "findNext",
        "Shift-Ctrl-G": "findPrev",
        "Shift-Ctrl-F": "replace",
        "Shift-Ctrl-R": "replaceAll",
        "Ctrl-[": "indentLess",
        "Ctrl-]": "indentMore",
        "Ctrl-U": "undoSelection",
        "Shift-Ctrl-U": "redoSelection",
        "Alt-U": "redoSelection",
        fallthrough: "basic"
      }, cn.emacsy = {
        "Ctrl-F": "goCharRight",
        "Ctrl-B": "goCharLeft",
        "Ctrl-P": "goLineUp",
        "Ctrl-N": "goLineDown",
        "Ctrl-A": "goLineStart",
        "Ctrl-E": "goLineEnd",
        "Ctrl-V": "goPageDown",
        "Shift-Ctrl-V": "goPageUp",
        "Ctrl-D": "delCharAfter",
        "Ctrl-H": "delCharBefore",
        "Alt-Backspace": "delWordBefore",
        "Ctrl-K": "killLine",
        "Ctrl-T": "transposeChars",
        "Ctrl-O": "openLine"
      }, cn.macDefault = {
        "Cmd-A": "selectAll",
        "Cmd-D": "deleteLine",
        "Cmd-Z": "undo",
        "Shift-Cmd-Z": "redo",
        "Cmd-Y": "redo",
        "Cmd-Home": "goDocStart",
        "Cmd-Up": "goDocStart",
        "Cmd-End": "goDocEnd",
        "Cmd-Down": "goDocEnd",
        "Alt-Left": "goGroupLeft",
        "Alt-Right": "goGroupRight",
        "Cmd-Left": "goLineLeft",
        "Cmd-Right": "goLineRight",
        "Alt-Backspace": "delGroupBefore",
        "Ctrl-Alt-Backspace": "delGroupAfter",
        "Alt-Delete": "delGroupAfter",
        "Cmd-S": "save",
        "Cmd-F": "find",
        "Cmd-G": "findNext",
        "Shift-Cmd-G": "findPrev",
        "Cmd-Alt-F": "replace",
        "Shift-Cmd-Alt-F": "replaceAll",
        "Cmd-[": "indentLess",
        "Cmd-]": "indentMore",
        "Cmd-Backspace": "delWrappedLineLeft",
        "Cmd-Delete": "delWrappedLineRight",
        "Cmd-U": "undoSelection",
        "Shift-Cmd-U": "redoSelection",
        "Ctrl-Up": "goDocStart",
        "Ctrl-Down": "goDocEnd",
        fallthrough: ["basic", "emacsy"]
      }, cn.default = C1 ? cn.macDefault : cn.pcDefault;
      function Ks(e) {
        var t = e.split(/-(?!$)/);
        e = t[t.length - 1];
        for (var u, o, f, w, L = 0; L < t.length - 1; L++) {
          var T = t[L];
          if (/^(cmd|meta|m)$/i.test(T))
            w = !0;
          else if (/^a(lt)?$/i.test(T))
            u = !0;
          else if (/^(c|ctrl|control)$/i.test(T))
            o = !0;
          else if (/^s(hift)?$/i.test(T))
            f = !0;
          else
            throw new Error("Unrecognized modifier name: " + T);
        }
        return u && (e = "Alt-" + e), o && (e = "Ctrl-" + e), w && (e = "Cmd-" + e), f && (e = "Shift-" + e), e;
      }
      function F2(e) {
        var t = {};
        for (var u in e)
          if (e.hasOwnProperty(u)) {
            var o = e[u];
            if (/^(name|fallthrough|(de|at)tach)$/.test(u))
              continue;
            if (o == "...") {
              delete e[u];
              continue;
            }
            for (var f = pe(u.split(" "), Ks), w = 0; w < f.length; w++) {
              var L = void 0, T = void 0;
              w == f.length - 1 ? (T = f.join(" "), L = o) : (T = f.slice(0, w + 1).join(" "), L = "...");
              var R = t[T];
              if (!R)
                t[T] = L;
              else if (R != L)
                throw new Error("Inconsistent bindings for " + T);
            }
            delete e[u];
          }
        for (var N in t)
          e[N] = t[N];
        return e;
      }
      function ws(e, t, u, o) {
        t = P2(t);
        var f = t.call ? t.call(e, o) : t[e];
        if (f === !1)
          return "nothing";
        if (f === "...")
          return "multi";
        if (f != null && u(f))
          return "handled";
        if (t.fallthrough) {
          if (Object.prototype.toString.call(t.fallthrough) != "[object Array]")
            return ws(e, t.fallthrough, u, o);
          for (var w = 0; w < t.fallthrough.length; w++) {
            var L = ws(e, t.fallthrough[w], u, o);
            if (L)
              return L;
          }
        }
      }
      function v3(e) {
        var t = typeof e == "string" ? e : Wi[e.keyCode];
        return t == "Ctrl" || t == "Alt" || t == "Shift" || t == "Mod";
      }
      function $(e, t, u) {
        var o = e;
        return t.altKey && o != "Alt" && (e = "Alt-" + e), (V1 ? t.metaKey : t.ctrlKey) && o != "Ctrl" && (e = "Ctrl-" + e), (V1 ? t.ctrlKey : t.metaKey) && o != "Mod" && (e = "Cmd-" + e), !u && t.shiftKey && o != "Shift" && (e = "Shift-" + e), e;
      }
      function Yr(e, t) {
        if (re && e.keyCode == 34 && e.char)
          return !1;
        var u = Wi[e.keyCode];
        return u == null || e.altGraphKey ? !1 : (e.keyCode == 3 && e.code && (u = e.code), $(u, e, t));
      }
      function P2(e) {
        return typeof e == "string" ? cn[e] : e;
      }
      function Es(e, t) {
        for (var u = e.doc.sel.ranges, o = [], f = 0; f < u.length; f++) {
          for (var w = t(u[f]); o.length && I1(w.from, ae(o).to) <= 0; ) {
            var L = o.pop();
            if (I1(L.from, w.from) < 0) {
              w.from = L.from;
              break;
            }
          }
          o.push(w);
        }
        Cr(e, function() {
          for (var T = o.length - 1; T >= 0; T--)
            o2(e.doc, "", o[T].from, o[T].to, "+delete");
          Hs(e);
        });
      }
      function Ca(e, t, u) {
        var o = We(e.text, t + u, u);
        return o < 0 || o > e.text.length ? null : o;
      }
      function jo(e, t, u) {
        var o = Ca(e, t.ch, u);
        return o == null ? null : new Ct(t.line, o, u < 0 ? "after" : "before");
      }
      function ya(e, t, u, o, f) {
        if (e) {
          t.doc.direction == "rtl" && (f = -f);
          var w = Re(u, t.doc.direction);
          if (w) {
            var L = f < 0 ? ae(w) : w[0], T = f < 0 == (L.level == 1), R = T ? "after" : "before", N;
            if (L.level > 0 || t.doc.direction == "rtl") {
              var q = ln(t, u);
              N = f < 0 ? u.text.length - 1 : 0;
              var Y = Zi(t, q, N).top;
              N = he(function(ue) {
                return Zi(t, q, ue).top == Y;
              }, f < 0 == (L.level == 1) ? L.from : L.to - 1, N), R == "before" && (N = Ca(u, N, 1));
            } else
              N = f < 0 ? L.to : L.from;
            return new Ct(o, N, R);
          }
        }
        return new Ct(o, f < 0 ? u.text.length : 0, f < 0 ? "before" : "after");
      }
      function e3(e, t, u, o) {
        var f = Re(t, e.doc.direction);
        if (!f)
          return jo(t, u, o);
        u.ch >= t.text.length ? (u.ch = t.text.length, u.sticky = "before") : u.ch <= 0 && (u.ch = 0, u.sticky = "after");
        var w = qe(f, u.ch, u.sticky), L = f[w];
        if (e.doc.direction == "ltr" && L.level % 2 == 0 && (o > 0 ? L.to > u.ch : L.from < u.ch))
          return jo(t, u, o);
        var T = function(Bt, Qt) {
          return Ca(t, Bt instanceof Ct ? Bt.ch : Bt, Qt);
        }, R, N = function(Bt) {
          return e.options.lineWrapping ? (R = R || ln(e, t), p1(e, t, R, Bt)) : { begin: 0, end: t.text.length };
        }, q = N(u.sticky == "before" ? T(u, -1) : u.ch);
        if (e.doc.direction == "rtl" || L.level == 1) {
          var Y = L.level == 1 == o < 0, ue = T(u, Y ? 1 : -1);
          if (ue != null && (Y ? ue <= L.to && ue <= q.end : ue >= L.from && ue >= q.begin)) {
            var Q = Y ? "before" : "after";
            return new Ct(u.line, ue, Q);
          }
        }
        var et = function(Bt, Qt, Ht) {
          for (var f1 = function(xr, fn) {
            return fn ? new Ct(u.line, T(xr, 1), "before") : new Ct(u.line, xr, "after");
          }; Bt >= 0 && Bt < f.length; Bt += Qt) {
            var _1 = f[Bt], T1 = Qt > 0 == (_1.level != 1), W1 = T1 ? Ht.begin : T(Ht.end, -1);
            if (_1.from <= W1 && W1 < _1.to || (W1 = T1 ? _1.from : T(_1.to, -1), Ht.begin <= W1 && W1 < Ht.end))
              return f1(W1, T1);
          }
        }, ct = et(w + o, o, q);
        if (ct)
          return ct;
        var Rt = o > 0 ? q.end : T(q.begin, -1);
        return Rt != null && !(o > 0 && Rt == t.text.length) && (ct = et(o > 0 ? 0 : f.length - 1, o, N(Rt)), ct) ? ct : null;
      }
      var Vo = {
        selectAll: js,
        singleSelection: function(e) {
          return e.setSelection(e.getCursor("anchor"), e.getCursor("head"), Sn);
        },
        killLine: function(e) {
          return Es(e, function(t) {
            if (t.empty()) {
              var u = u1(e.doc, t.head.line).text.length;
              return t.head.ch == u && t.head.line < e.lastLine() ? { from: t.head, to: Ct(t.head.line + 1, 0) } : { from: t.head, to: Ct(t.head.line, u) };
            } else
              return { from: t.from(), to: t.to() };
          });
        },
        deleteLine: function(e) {
          return Es(e, function(t) {
            return {
              from: Ct(t.from().line, 0),
              to: E1(e.doc, Ct(t.to().line + 1, 0))
            };
          });
        },
        delLineLeft: function(e) {
          return Es(e, function(t) {
            return {
              from: Ct(t.from().line, 0),
              to: t.from()
            };
          });
        },
        delWrappedLineLeft: function(e) {
          return Es(e, function(t) {
            var u = e.charCoords(t.head, "div").top + 5, o = e.coordsChar({ left: 0, top: u }, "div");
            return { from: o, to: t.from() };
          });
        },
        delWrappedLineRight: function(e) {
          return Es(e, function(t) {
            var u = e.charCoords(t.head, "div").top + 5, o = e.coordsChar({ left: e.display.lineDiv.offsetWidth + 100, top: u }, "div");
            return { from: t.from(), to: o };
          });
        },
        undo: function(e) {
          return e.undo();
        },
        redo: function(e) {
          return e.redo();
        },
        undoSelection: function(e) {
          return e.undoSelection();
        },
        redoSelection: function(e) {
          return e.redoSelection();
        },
        goDocStart: function(e) {
          return e.extendSelection(Ct(e.firstLine(), 0));
        },
        goDocEnd: function(e) {
          return e.extendSelection(Ct(e.lastLine()));
        },
        goLineStart: function(e) {
          return e.extendSelectionsBy(
            function(t) {
              return t3(e, t.head.line);
            },
            { origin: "+move", bias: 1 }
          );
        },
        goLineStartSmart: function(e) {
          return e.extendSelectionsBy(
            function(t) {
              return U2(e, t.head);
            },
            { origin: "+move", bias: 1 }
          );
        },
        goLineEnd: function(e) {
          return e.extendSelectionsBy(
            function(t) {
              return m3(e, t.head.line);
            },
            { origin: "+move", bias: -1 }
          );
        },
        goLineRight: function(e) {
          return e.extendSelectionsBy(function(t) {
            var u = e.cursorCoords(t.head, "div").top + 5;
            return e.coordsChar({ left: e.display.lineDiv.offsetWidth + 100, top: u }, "div");
          }, ye);
        },
        goLineLeft: function(e) {
          return e.extendSelectionsBy(function(t) {
            var u = e.cursorCoords(t.head, "div").top + 5;
            return e.coordsChar({ left: 0, top: u }, "div");
          }, ye);
        },
        goLineLeftSmart: function(e) {
          return e.extendSelectionsBy(function(t) {
            var u = e.cursorCoords(t.head, "div").top + 5, o = e.coordsChar({ left: 0, top: u }, "div");
            return o.ch < e.getLine(o.line).search(/\S/) ? U2(e, t.head) : o;
          }, ye);
        },
        goLineUp: function(e) {
          return e.moveV(-1, "line");
        },
        goLineDown: function(e) {
          return e.moveV(1, "line");
        },
        goPageUp: function(e) {
          return e.moveV(-1, "page");
        },
        goPageDown: function(e) {
          return e.moveV(1, "page");
        },
        goCharLeft: function(e) {
          return e.moveH(-1, "char");
        },
        goCharRight: function(e) {
          return e.moveH(1, "char");
        },
        goColumnLeft: function(e) {
          return e.moveH(-1, "column");
        },
        goColumnRight: function(e) {
          return e.moveH(1, "column");
        },
        goWordLeft: function(e) {
          return e.moveH(-1, "word");
        },
        goGroupRight: function(e) {
          return e.moveH(1, "group");
        },
        goGroupLeft: function(e) {
          return e.moveH(-1, "group");
        },
        goWordRight: function(e) {
          return e.moveH(1, "word");
        },
        delCharBefore: function(e) {
          return e.deleteH(-1, "codepoint");
        },
        delCharAfter: function(e) {
          return e.deleteH(1, "char");
        },
        delWordBefore: function(e) {
          return e.deleteH(-1, "word");
        },
        delWordAfter: function(e) {
          return e.deleteH(1, "word");
        },
        delGroupBefore: function(e) {
          return e.deleteH(-1, "group");
        },
        delGroupAfter: function(e) {
          return e.deleteH(1, "group");
        },
        indentAuto: function(e) {
          return e.indentSelection("smart");
        },
        indentMore: function(e) {
          return e.indentSelection("add");
        },
        indentLess: function(e) {
          return e.indentSelection("subtract");
        },
        insertTab: function(e) {
          return e.replaceSelection("	");
        },
        insertSoftTab: function(e) {
          for (var t = [], u = e.listSelections(), o = e.options.tabSize, f = 0; f < u.length; f++) {
            var w = u[f].from(), L = Sr(e.getLine(w.line), w.ch, o);
            t.push(Ee(o - L % o));
          }
          e.replaceSelections(t);
        },
        defaultTab: function(e) {
          e.somethingSelected() ? e.indentSelection("add") : e.execCommand("insertTab");
        },
        transposeChars: function(e) {
          return Cr(e, function() {
            for (var t = e.listSelections(), u = [], o = 0; o < t.length; o++)
              if (!!t[o].empty()) {
                var f = t[o].head, w = u1(e.doc, f.line).text;
                if (w) {
                  if (f.ch == w.length && (f = new Ct(f.line, f.ch - 1)), f.ch > 0)
                    f = new Ct(f.line, f.ch + 1), e.replaceRange(
                      w.charAt(f.ch - 1) + w.charAt(f.ch - 2),
                      Ct(f.line, f.ch - 2),
                      f,
                      "+transpose"
                    );
                  else if (f.line > e.doc.first) {
                    var L = u1(e.doc, f.line - 1).text;
                    L && (f = new Ct(f.line, 1), e.replaceRange(
                      w.charAt(0) + e.doc.lineSeparator() + L.charAt(L.length - 1),
                      Ct(f.line - 1, L.length - 1),
                      f,
                      "+transpose"
                    ));
                  }
                }
                u.push(new G1(f, f));
              }
            e.setSelections(u);
          });
        },
        newlineAndIndent: function(e) {
          return Cr(e, function() {
            for (var t = e.listSelections(), u = t.length - 1; u >= 0; u--)
              e.replaceRange(e.doc.lineSeparator(), t[u].anchor, t[u].head, "+input");
            t = e.listSelections();
            for (var o = 0; o < t.length; o++)
              e.indentLine(t[o].from().line, null, !0);
            Hs(e);
          });
        },
        openLine: function(e) {
          return e.replaceSelection(`
`, "start");
        },
        toggleOverwrite: function(e) {
          return e.toggleOverwrite();
        }
      };
      function t3(e, t) {
        var u = u1(e.doc, t), o = qt(u);
        return o != u && (t = or(o)), ya(!0, e, o, t, 1);
      }
      function m3(e, t) {
        var u = u1(e.doc, t), o = Ma(u);
        return o != u && (t = or(o)), ya(!0, e, u, t, -1);
      }
      function U2(e, t) {
        var u = t3(e, t.line), o = u1(e.doc, u.line), f = Re(o, e.doc.direction);
        if (!f || f[0].level == 0) {
          var w = Math.max(u.ch, o.text.search(/\S/)), L = t.line == u.line && t.ch <= w && t.ch;
          return Ct(u.line, L ? 0 : w, u.sticky);
        }
        return u;
      }
      function Yo(e, t, u) {
        if (typeof t == "string" && (t = Vo[t], !t))
          return !1;
        e.display.input.ensurePolled();
        var o = e.display.shift, f = !1;
        try {
          e.isReadOnly() && (e.state.suppressEdits = !0), u && (e.display.shift = !1), f = t(e) != Zn;
        } finally {
          e.display.shift = o, e.state.suppressEdits = !1;
        }
        return f;
      }
      function xs(e, t, u) {
        for (var o = 0; o < e.state.keyMaps.length; o++) {
          var f = ws(t, e.state.keyMaps[o], u, e);
          if (f)
            return f;
        }
        return e.options.extraKeys && ws(t, e.options.extraKeys, u, e) || ws(t, e.options.keyMap, u, e);
      }
      var er = new dn();
      function nr(e, t, u, o) {
        var f = e.state.keySeq;
        if (f) {
          if (v3(t))
            return "handled";
          if (/\'$/.test(t) ? e.state.keySeq = null : er.set(50, function() {
            e.state.keySeq == f && (e.state.keySeq = null, e.display.input.reset());
          }), En(e, f + " " + t, u, o))
            return !0;
        }
        return En(e, t, u, o);
      }
      function En(e, t, u, o) {
        var f = xs(e, t, o);
        return f == "multi" && (e.state.keySeq = t), f == "handled" && sr(e, "keyHandled", e, t, u), (f == "handled" || f == "multi") && (xe(u), hs(e)), !!f;
      }
      function Ko(e, t) {
        var u = Yr(t, !0);
        return u ? t.shiftKey && !e.state.keySeq ? nr(e, "Shift-" + u, t, function(o) {
          return Yo(e, o, !0);
        }) || nr(e, u, t, function(o) {
          if (typeof o == "string" ? /^go[A-Z]/.test(o) : o.motion)
            return Yo(e, o);
        }) : nr(e, u, t, function(o) {
          return Yo(e, o);
        }) : !1;
      }
      function Xs(e, t, u) {
        return nr(e, "'" + u + "'", t, function(o) {
          return Yo(e, o, !0);
        });
      }
      var Xo = null;
      function wa(e) {
        var t = this;
        if (!(e.target && e.target != t.display.input.getField()) && (t.curOp.focus = rn(), !me(t, e))) {
          P && M < 11 && e.keyCode == 27 && (e.returnValue = !1);
          var u = e.keyCode;
          t.display.shift = u == 16 || e.shiftKey;
          var o = Ko(t, e);
          re && (Xo = o ? u : null, !o && u == 88 && !fe && (C1 ? e.metaKey : e.ctrlKey) && t.replaceSelection("", null, "cut")), g && !C1 && !o && u == 46 && e.shiftKey && !e.ctrlKey && document.execCommand && document.execCommand("cut"), u == 18 && !/\bCodeMirror-crosshair\b/.test(t.display.lineDiv.className) && U3(t);
        }
      }
      function U3(e) {
        var t = e.display.lineDiv;
        xn(t, "CodeMirror-crosshair");
        function u(o) {
          (o.keyCode == 18 || !o.altKey) && (Vt(t, "CodeMirror-crosshair"), Fe(document, "keyup", u), Fe(document, "mouseover", u));
        }
        oe(document, "keyup", u), oe(document, "mouseover", u);
      }
      function jn(e) {
        e.keyCode == 16 && (this.doc.sel.shift = !1), me(this, e);
      }
      function Ea(e) {
        var t = this;
        if (!(e.target && e.target != t.display.input.getField()) && !(Ir(t.display, e) || me(t, e) || e.ctrlKey && !e.altKey || C1 && e.metaKey)) {
          var u = e.keyCode, o = e.charCode;
          if (re && u == Xo) {
            Xo = null, xe(e);
            return;
          }
          if (!(re && (!e.which || e.which < 10) && Ko(t, e))) {
            var f = String.fromCharCode(o == null ? u : o);
            f != "\b" && (Xs(t, e, f) || t.display.input.onKeyPress(e));
          }
        }
      }
      var r3 = 400, Vn = function(e, t, u) {
        this.time = e, this.pos = t, this.button = u;
      };
      Vn.prototype.compare = function(e, t, u) {
        return this.time + r3 > e && I1(t, this.pos) == 0 && u == this.button;
      };
      var Mn, _r;
      function F1(e, t) {
        var u = +new Date();
        return _r && _r.compare(u, e, t) ? (Mn = _r = null, "triple") : Mn && Mn.compare(u, e, t) ? (_r = new Vn(u, e, t), Mn = null, "double") : (Mn = new Vn(u, e, t), _r = null, "single");
      }
      function E2(e) {
        var t = this, u = t.display;
        if (!(me(t, e) || u.activeTouch && u.input.supportsTouch())) {
          if (u.input.ensurePolled(), u.shift = e.shiftKey, Ir(u, e)) {
            U || (u.scroller.draggable = !1, setTimeout(function() {
              return u.scroller.draggable = !0;
            }, 100));
            return;
          }
          if (!_(t, e)) {
            var o = d2(t, e), f = _e(e), w = o ? F1(o, f) : "single";
            window.focus(), f == 1 && t.state.selectingText && t.state.selectingText(e), !(o && Ur(t, f, o, w, e)) && (f == 1 ? o ? r(t, o, w, e) : Pe(e) == u.scroller && xe(e) : f == 2 ? (o && Z2(t.doc, o), setTimeout(function() {
              return u.input.focus();
            }, 20)) : f == 3 && (Y1 ? t.display.input.onContextMenu(e) : ki(t)));
          }
        }
      }
      function Ur(e, t, u, o, f) {
        var w = "Click";
        return o == "double" ? w = "Double" + w : o == "triple" && (w = "Triple" + w), w = (t == 1 ? "Left" : t == 2 ? "Middle" : "Right") + w, nr(e, $(w, f), f, function(L) {
          if (typeof L == "string" && (L = Vo[L]), !L)
            return !1;
          var T = !1;
          try {
            e.isReadOnly() && (e.state.suppressEdits = !0), T = L(e, u) != Zn;
          } finally {
            e.state.suppressEdits = !1;
          }
          return T;
        });
      }
      function Jo(e, t, u) {
        var o = e.getOption("configureMouse"), f = o ? o(e, t, u) : {};
        if (f.unit == null) {
          var w = D1 ? u.shiftKey && u.metaKey : u.altKey;
          f.unit = w ? "rectangle" : t == "single" ? "char" : t == "double" ? "word" : "line";
        }
        return (f.extend == null || e.doc.extend) && (f.extend = e.doc.extend || u.shiftKey), f.addNew == null && (f.addNew = C1 ? u.metaKey : u.ctrlKey), f.moveOnDrag == null && (f.moveOnDrag = !(C1 ? u.altKey : u.ctrlKey)), f;
      }
      function r(e, t, u, o) {
        P ? setTimeout(c2(zs, e), 0) : e.curOp.focus = rn();
        var f = Jo(e, u, o), w = e.doc.sel, L;
        e.options.dragDrop && He && !e.isReadOnly() && u == "single" && (L = w.contains(t)) > -1 && (I1((L = w.ranges[L]).from(), t) < 0 || t.xRel > 0) && (I1(L.to(), t) > 0 || t.xRel < 0) ? p(e, o, t, f) : d(e, o, t, f);
      }
      function p(e, t, u, o) {
        var f = e.display, w = !1, L = Pr(e, function(N) {
          U && (f.scroller.draggable = !1), e.state.draggingText = !1, e.state.delayingBlurEvent && (e.hasFocus() ? e.state.delayingBlurEvent = !1 : ki(e)), Fe(f.wrapper.ownerDocument, "mouseup", L), Fe(f.wrapper.ownerDocument, "mousemove", T), Fe(f.scroller, "dragstart", R), Fe(f.scroller, "drop", L), w || (xe(N), o.addNew || Z2(e.doc, u, null, null, o.extend), U && !V || P && M == 9 ? setTimeout(function() {
            f.wrapper.ownerDocument.body.focus({ preventScroll: !0 }), f.input.focus();
          }, 20) : f.input.focus());
        }), T = function(N) {
          w = w || Math.abs(t.clientX - N.clientX) + Math.abs(t.clientY - N.clientY) >= 10;
        }, R = function() {
          return w = !0;
        };
        U && (f.scroller.draggable = !0), e.state.draggingText = L, L.copy = !o.moveOnDrag, oe(f.wrapper.ownerDocument, "mouseup", L), oe(f.wrapper.ownerDocument, "mousemove", T), oe(f.scroller, "dragstart", R), oe(f.scroller, "drop", L), e.state.delayingBlurEvent = !0, setTimeout(function() {
          return f.input.focus();
        }, 20), f.scroller.dragDrop && f.scroller.dragDrop();
      }
      function m(e, t, u) {
        if (u == "char")
          return new G1(t, t);
        if (u == "word")
          return e.findWordAt(t);
        if (u == "line")
          return new G1(Ct(t.line, 0), E1(e.doc, Ct(t.line + 1, 0)));
        var o = u(e, t);
        return new G1(o.from, o.to);
      }
      function d(e, t, u, o) {
        P && ki(e);
        var f = e.display, w = e.doc;
        xe(t);
        var L, T, R = w.sel, N = R.ranges;
        if (o.addNew && !o.extend ? (T = w.sel.contains(u), T > -1 ? L = N[T] : L = new G1(u, u)) : (L = w.sel.primary(), T = w.sel.primIndex), o.unit == "rectangle")
          o.addNew || (L = new G1(u, u)), u = d2(e, t, !0, !0), T = -1;
        else {
          var q = m(e, u, o.unit);
          o.extend ? L = Ho(L, q.anchor, q.head, o.extend) : L = q;
        }
        o.addNew ? T == -1 ? (T = N.length, yr(
          w,
          Ti(e, N.concat([L]), T),
          { scroll: !1, origin: "*mouse" }
        )) : N.length > 1 && N[T].empty() && o.unit == "char" && !o.extend ? (yr(
          w,
          Ti(e, N.slice(0, T).concat(N.slice(T + 1)), 0),
          { scroll: !1, origin: "*mouse" }
        ), R = w.sel) : Cn(w, T, L, ve) : (T = 0, yr(w, new li([L], 0), ve), R = w.sel);
        var Y = u;
        function ue(Ht) {
          if (I1(Y, Ht) != 0)
            if (Y = Ht, o.unit == "rectangle") {
              for (var f1 = [], _1 = e.options.tabSize, T1 = Sr(u1(w, u.line).text, u.ch, _1), W1 = Sr(u1(w, Ht.line).text, Ht.ch, _1), xr = Math.min(T1, W1), fn = Math.max(T1, W1), Br = Math.min(u.line, Ht.line), a2 = Math.min(e.lastLine(), Math.max(u.line, Ht.line)); Br <= a2; Br++) {
                var Vi = u1(w, Br).text, Qr = Ae(Vi, xr, _1);
                xr == fn ? f1.push(new G1(Ct(Br, Qr), Ct(Br, Qr))) : Vi.length > Qr && f1.push(new G1(Ct(Br, Qr), Ct(Br, Ae(Vi, fn, _1))));
              }
              f1.length || f1.push(new G1(u, u)), yr(
                w,
                Ti(e, R.ranges.slice(0, T).concat(f1), T),
                { origin: "*mouse", scroll: !1 }
              ), e.scrollIntoView(Ht);
            } else {
              var Yi = L, Mr = m(e, Ht, o.unit), Hr = Yi.anchor, $n;
              I1(Mr.anchor, Hr) > 0 ? ($n = Mr.head, Hr = Ri(Yi.from(), Mr.anchor)) : ($n = Mr.anchor, Hr = Fi(Yi.to(), Mr.head));
              var en = R.ranges.slice(0);
              en[T] = y(e, new G1(E1(w, Hr), $n)), yr(w, Ti(e, en, T), ve);
            }
        }
        var Q = f.wrapper.getBoundingClientRect(), et = 0;
        function ct(Ht) {
          var f1 = ++et, _1 = d2(e, Ht, !0, o.unit == "rectangle");
          if (!!_1)
            if (I1(_1, Y) != 0) {
              e.curOp.focus = rn(), ue(_1);
              var T1 = Nn(f, w);
              (_1.line >= T1.to || _1.line < T1.from) && setTimeout(Pr(e, function() {
                et == f1 && ct(Ht);
              }), 150);
            } else {
              var W1 = Ht.clientY < Q.top ? -20 : Ht.clientY > Q.bottom ? 20 : 0;
              W1 && setTimeout(Pr(e, function() {
                et == f1 && (f.scroller.scrollTop += W1, ct(Ht));
              }), 50);
            }
        }
        function Rt(Ht) {
          e.state.selectingText = !1, et = 1 / 0, Ht && (xe(Ht), f.input.focus()), Fe(f.wrapper.ownerDocument, "mousemove", Bt), Fe(f.wrapper.ownerDocument, "mouseup", Qt), w.history.lastSelOrigin = null;
        }
        var Bt = Pr(e, function(Ht) {
          Ht.buttons === 0 || !_e(Ht) ? Rt(Ht) : ct(Ht);
        }), Qt = Pr(e, Rt);
        e.state.selectingText = Qt, oe(f.wrapper.ownerDocument, "mousemove", Bt), oe(f.wrapper.ownerDocument, "mouseup", Qt);
      }
      function y(e, t) {
        var u = t.anchor, o = t.head, f = u1(e.doc, u.line);
        if (I1(u, o) == 0 && u.sticky == o.sticky)
          return t;
        var w = Re(f);
        if (!w)
          return t;
        var L = qe(w, u.ch, u.sticky), T = w[L];
        if (T.from != u.ch && T.to != u.ch)
          return t;
        var R = L + (T.from == u.ch == (T.level != 1) ? 0 : 1);
        if (R == 0 || R == w.length)
          return t;
        var N;
        if (o.line != u.line)
          N = (o.line - u.line) * (e.doc.direction == "ltr" ? 1 : -1) > 0;
        else {
          var q = qe(w, o.ch, o.sticky), Y = q - L || (o.ch - u.ch) * (T.level == 1 ? -1 : 1);
          q == R - 1 || q == R ? N = Y < 0 : N = Y > 0;
        }
        var ue = w[R + (N ? -1 : 0)], Q = N == (ue.level == 1), et = Q ? ue.from : ue.to, ct = Q ? "after" : "before";
        return u.ch == et && u.sticky == ct ? t : new G1(new Ct(u.line, et, ct), o);
      }
      function l(e, t, u, o) {
        var f, w;
        if (t.touches)
          f = t.touches[0].clientX, w = t.touches[0].clientY;
        else
          try {
            f = t.clientX, w = t.clientY;
          } catch {
            return !1;
          }
        if (f >= Math.floor(e.display.gutters.getBoundingClientRect().right))
          return !1;
        o && xe(t);
        var L = e.display, T = L.lineDiv.getBoundingClientRect();
        if (w > T.bottom || !Te(e, u))
          return Ne(t);
        w -= T.top - L.viewOffset;
        for (var R = 0; R < e.display.gutterSpecs.length; ++R) {
          var N = L.gutters.childNodes[R];
          if (N && N.getBoundingClientRect().right >= f) {
            var q = W(e.doc, w), Y = e.display.gutterSpecs[R];
            return ke(e, u, e, q, Y.className, t), Ne(t);
          }
        }
      }
      function _(e, t) {
        return l(e, t, "gutterClick", !0);
      }
      function h(e, t) {
        Ir(e.display, t) || O(e, t) || me(e, t, "contextmenu") || Y1 || e.display.input.onContextMenu(t);
      }
      function O(e, t) {
        return Te(e, "gutterContextMenu") ? l(e, t, "gutterContextMenu", !1) : !1;
      }
      function D(e) {
        e.display.wrapper.className = e.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") + e.options.theme.replace(/(^|\s)\s*/g, " cm-s-"), j1(e);
      }
      var k = { toString: function() {
        return "CodeMirror.Init";
      } }, z = {}, H = {};
      function ie(e) {
        var t = e.optionHandlers;
        function u(o, f, w, L) {
          e.defaults[o] = f, w && (t[o] = L ? function(T, R, N) {
            N != k && w(T, R, N);
          } : w);
        }
        e.defineOption = u, e.Init = k, u("value", "", function(o, f) {
          return o.setValue(f);
        }, !0), u("mode", null, function(o, f) {
          o.doc.modeOption = f, vs(o);
        }, !0), u("indentUnit", 2, vs, !0), u("indentWithTabs", !1), u("smartIndent", !0), u("tabSize", 4, function(o) {
          X2(o), j1(o), ai(o);
        }, !0), u("lineSeparator", null, function(o, f) {
          if (o.doc.lineSep = f, !!f) {
            var w = [], L = o.doc.first;
            o.doc.iter(function(R) {
              for (var N = 0; ; ) {
                var q = R.text.indexOf(f, N);
                if (q == -1)
                  break;
                N = q + f.length, w.push(Ct(L, q));
              }
              L++;
            });
            for (var T = w.length - 1; T >= 0; T--)
              o2(o.doc, f, w[T], Ct(w[T].line, w[T].ch + f.length));
          }
        }), u("specialChars", /[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g, function(o, f, w) {
          o.state.specialChars = new RegExp(f.source + (f.test("	") ? "" : "|	"), "g"), w != k && o.refresh();
        }), u("specialCharPlaceholder", bi, function(o) {
          return o.refresh();
        }, !0), u("electricChars", !0), u("inputStyle", R1 ? "contenteditable" : "textarea", function() {
          throw new Error("inputStyle can not (yet) be changed in a running editor");
        }, !0), u("spellcheck", !1, function(o, f) {
          return o.getInputField().spellcheck = f;
        }, !0), u("autocorrect", !1, function(o, f) {
          return o.getInputField().autocorrect = f;
        }, !0), u("autocapitalize", !1, function(o, f) {
          return o.getInputField().autocapitalize = f;
        }, !0), u("rtlMoveVisually", !M1), u("wholeLineUpdateBefore", !0), u("theme", "default", function(o) {
          D(o), fo(o);
        }, !0), u("keyMap", "default", function(o, f, w) {
          var L = P2(f), T = w != k && P2(w);
          T && T.detach && T.detach(o, L), L.attach && L.attach(o, T || null);
        }), u("extraKeys", null), u("configureMouse", null), u("lineWrapping", !1, ne, !0), u("gutters", [], function(o, f) {
          o.display.gutterSpecs = C2(f, o.options.lineNumbers), fo(o);
        }, !0), u("fixedGutter", !0, function(o, f) {
          o.display.gutters.style.left = f ? cs(o.display) + "px" : "0", o.refresh();
        }, !0), u("coverGutterNextToScrollbar", !1, function(o) {
          return m2(o);
        }, !0), u("scrollbarStyle", "native", function(o) {
          Li(o), m2(o), o.display.scrollbars.setScrollTop(o.doc.scrollTop), o.display.scrollbars.setScrollLeft(o.doc.scrollLeft);
        }, !0), u("lineNumbers", !1, function(o, f) {
          o.display.gutterSpecs = C2(o.options.gutters, f), fo(o);
        }, !0), u("firstLineNumber", 1, fo, !0), u("lineNumberFormatter", function(o) {
          return o;
        }, fo, !0), u("showCursorWhenSelecting", !1, Y2, !0), u("resetSelectionOnContextMenu", !0), u("lineWiseCopyCut", !0), u("pasteLinesPerSelection", !0), u("selectionsMayTouch", !1), u("readOnly", !1, function(o, f) {
          f == "nocursor" && (p2(o), o.display.input.blur()), o.display.input.readOnlyChanged(f);
        }), u("screenReaderLabel", null, function(o, f) {
          f = f === "" ? null : f, o.display.input.screenReaderLabelChanged(f);
        }), u("disableInput", !1, function(o, f) {
          f || o.display.input.reset();
        }, !0), u("dragDrop", !0, J), u("allowDropFileTypes", null), u("cursorBlinkRate", 530), u("cursorScrollMargin", 0), u("cursorHeight", 1, Y2, !0), u("singleCursorHeightPerLine", !0, Y2, !0), u("workTime", 100), u("workDelay", 100), u("flattenSpans", !0, X2, !0), u("addModeClass", !1, X2, !0), u("pollInterval", 100), u("undoDepth", 200, function(o, f) {
          return o.doc.history.undoDepth = f;
        }), u("historyEventDelay", 1250), u("viewportMargin", 10, function(o) {
          return o.refresh();
        }, !0), u("maxHighlightLength", 1e4, X2, !0), u("moveInputWithCursor", !0, function(o, f) {
          f || o.display.input.resetPosition();
        }), u("tabindex", null, function(o, f) {
          return o.display.input.getField().tabIndex = f || "";
        }), u("autofocus", null), u("direction", "ltr", function(o, f) {
          return o.doc.setDirection(f);
        }, !0), u("phrases", null);
      }
      function J(e, t, u) {
        var o = u && u != k;
        if (!t != !o) {
          var f = e.display.dragFunctions, w = t ? oe : Fe;
          w(e.display.scroller, "dragstart", f.start), w(e.display.scroller, "dragenter", f.enter), w(e.display.scroller, "dragover", f.over), w(e.display.scroller, "dragleave", f.leave), w(e.display.scroller, "drop", f.drop);
        }
      }
      function ne(e) {
        e.options.lineWrapping ? (xn(e.display.wrapper, "CodeMirror-wrap"), e.display.sizer.style.minWidth = "", e.display.sizerWidth = null) : (Vt(e.display.wrapper, "CodeMirror-wrap"), mi(e)), Fs(e), ai(e), j1(e), setTimeout(function() {
          return m2(e);
        }, 100);
      }
      function se(e, t) {
        var u = this;
        if (!(this instanceof se))
          return new se(e, t);
        this.options = t = t ? gi(t) : {}, gi(z, t, !1);
        var o = t.value;
        typeof o == "string" ? o = new _i(o, t.mode, null, t.lineSeparator, t.direction) : t.mode && (o.modeOption = t.mode), this.doc = o;
        var f = new se.inputStyles[t.inputStyle](this), w = this.display = new Dn(e, o, f, t);
        w.wrapper.CodeMirror = this, D(this), t.lineWrapping && (this.display.wrapper.className += " CodeMirror-wrap"), Li(this), this.state = {
          keyMaps: [],
          overlays: [],
          modeGen: 0,
          overwrite: !1,
          delayingBlurEvent: !1,
          focused: !1,
          suppressEdits: !1,
          pasteIncoming: -1,
          cutIncoming: -1,
          selectingText: !1,
          draggingText: !1,
          highlight: new dn(),
          keySeq: null,
          specialChars: null
        }, t.autofocus && !R1 && w.input.focus(), P && M < 11 && setTimeout(function() {
          return u.display.input.reset(!0);
        }, 20), ee(this), K1(), e2(this), this.curOp.forceUpdate = !0, ui(this, o), t.autofocus && !R1 || this.hasFocus() ? setTimeout(function() {
          u.hasFocus() && !u.state.focused && Bs(u);
        }, 20) : p2(this);
        for (var L in H)
          H.hasOwnProperty(L) && H[L](this, t[L], k);
        la(this), t.finishInit && t.finishInit(this);
        for (var T = 0; T < nt.length; ++T)
          nt[T](this);
        Hi(this), U && t.lineWrapping && getComputedStyle(w.lineDiv).textRendering == "optimizelegibility" && (w.lineDiv.style.textRendering = "auto");
      }
      se.defaults = z, se.optionHandlers = H;
      function ee(e) {
        var t = e.display;
        oe(t.scroller, "mousedown", Pr(e, E2)), P && M < 11 ? oe(t.scroller, "dblclick", Pr(e, function(R) {
          if (!me(e, R)) {
            var N = d2(e, R);
            if (!(!N || _(e, R) || Ir(e.display, R))) {
              xe(R);
              var q = e.findWordAt(N);
              Z2(e.doc, q.anchor, q.head);
            }
          }
        })) : oe(t.scroller, "dblclick", function(R) {
          return me(e, R) || xe(R);
        }), oe(t.scroller, "contextmenu", function(R) {
          return h(e, R);
        }), oe(t.input.getField(), "contextmenu", function(R) {
          t.scroller.contains(R.target) || h(e, R);
        });
        var u, o = { end: 0 };
        function f() {
          t.activeTouch && (u = setTimeout(function() {
            return t.activeTouch = null;
          }, 1e3), o = t.activeTouch, o.end = +new Date());
        }
        function w(R) {
          if (R.touches.length != 1)
            return !1;
          var N = R.touches[0];
          return N.radiusX <= 1 && N.radiusY <= 1;
        }
        function L(R, N) {
          if (N.left == null)
            return !0;
          var q = N.left - R.left, Y = N.top - R.top;
          return q * q + Y * Y > 20 * 20;
        }
        oe(t.scroller, "touchstart", function(R) {
          if (!me(e, R) && !w(R) && !_(e, R)) {
            t.input.ensurePolled(), clearTimeout(u);
            var N = +new Date();
            t.activeTouch = {
              start: N,
              moved: !1,
              prev: N - o.end <= 300 ? o : null
            }, R.touches.length == 1 && (t.activeTouch.left = R.touches[0].pageX, t.activeTouch.top = R.touches[0].pageY);
          }
        }), oe(t.scroller, "touchmove", function() {
          t.activeTouch && (t.activeTouch.moved = !0);
        }), oe(t.scroller, "touchend", function(R) {
          var N = t.activeTouch;
          if (N && !Ir(t, R) && N.left != null && !N.moved && new Date() - N.start < 300) {
            var q = e.coordsChar(t.activeTouch, "page"), Y;
            !N.prev || L(N, N.prev) ? Y = new G1(q, q) : !N.prev.prev || L(N, N.prev.prev) ? Y = e.findWordAt(q) : Y = new G1(Ct(q.line, 0), E1(e.doc, Ct(q.line + 1, 0))), e.setSelection(Y.anchor, Y.head), e.focus(), xe(R);
          }
          f();
        }), oe(t.scroller, "touchcancel", f), oe(t.scroller, "scroll", function() {
          t.scroller.clientHeight && (Jr(e, t.scroller.scrollTop), ps(e, t.scroller.scrollLeft, !0), ke(e, "scroll", e));
        }), oe(t.scroller, "mousewheel", function(R) {
          return Fo(e, R);
        }), oe(t.scroller, "DOMMouseScroll", function(R) {
          return Fo(e, R);
        }), oe(t.wrapper, "scroll", function() {
          return t.wrapper.scrollTop = t.wrapper.scrollLeft = 0;
        }), t.dragFunctions = {
          enter: function(R) {
            me(e, R) || $e(R);
          },
          over: function(R) {
            me(e, R) || (F3(e, R), $e(R));
          },
          start: function(R) {
            return g3(e, R);
          },
          drop: Pr(e, w2),
          leave: function(R) {
            me(e, R) || Ja(e);
          }
        };
        var T = t.input.getField();
        oe(T, "keyup", function(R) {
          return jn.call(e, R);
        }), oe(T, "keydown", Pr(e, wa)), oe(T, "keypress", Pr(e, Ea)), oe(T, "focus", function(R) {
          return Bs(e, R);
        }), oe(T, "blur", function(R) {
          return p2(e, R);
        });
      }
      var nt = [];
      se.defineInitHook = function(e) {
        return nt.push(e);
      };
      function tt(e, t, u, o) {
        var f = e.doc, w;
        u == null && (u = "add"), u == "smart" && (f.mode.indent ? w = it(e, t).state : u = "prev");
        var L = e.options.tabSize, T = u1(f, t), R = Sr(T.text, null, L);
        T.stateAfter && (T.stateAfter = null);
        var N = T.text.match(/^\s*/)[0], q;
        if (!o && !/\S/.test(T.text))
          q = 0, u = "not";
        else if (u == "smart" && (q = f.mode.indent(w, T.text.slice(N.length), T.text), q == Zn || q > 150)) {
          if (!o)
            return;
          u = "prev";
        }
        u == "prev" ? t > f.first ? q = Sr(u1(f, t - 1).text, null, L) : q = 0 : u == "add" ? q = R + e.options.indentUnit : u == "subtract" ? q = R - e.options.indentUnit : typeof u == "number" && (q = R + u), q = Math.max(0, q);
        var Y = "", ue = 0;
        if (e.options.indentWithTabs)
          for (var Q = Math.floor(q / L); Q; --Q)
            ue += L, Y += "	";
        if (ue < q && (Y += Ee(q - ue)), Y != N)
          return o2(f, Y, Ct(t, 0), Ct(t, N.length), "+input"), T.stateAfter = null, !0;
        for (var et = 0; et < f.sel.ranges.length; et++) {
          var ct = f.sel.ranges[et];
          if (ct.head.line == t && ct.head.ch < N.length) {
            var Rt = Ct(t, N.length);
            Cn(f, et, new G1(Rt, Rt));
            break;
          }
        }
      }
      var rt = null;
      function ut(e) {
        rt = e;
      }
      function kt(e, t, u, o, f) {
        var w = e.doc;
        e.display.shift = !1, o || (o = w.sel);
        var L = +new Date() - 200, T = f == "paste" || e.state.pasteIncoming > L, R = Je(t), N = null;
        if (T && o.ranges.length > 1)
          if (rt && rt.text.join(`
`) == t) {
            if (o.ranges.length % rt.text.length == 0) {
              N = [];
              for (var q = 0; q < rt.text.length; q++)
                N.push(w.splitLines(rt.text[q]));
            }
          } else
            R.length == o.ranges.length && e.options.pasteLinesPerSelection && (N = pe(R, function(Bt) {
              return [Bt];
            }));
        for (var Y = e.curOp.updateInput, ue = o.ranges.length - 1; ue >= 0; ue--) {
          var Q = o.ranges[ue], et = Q.from(), ct = Q.to();
          Q.empty() && (u && u > 0 ? et = Ct(et.line, et.ch - u) : e.state.overwrite && !T ? ct = Ct(ct.line, Math.min(u1(w, ct.line).text.length, ct.ch + ae(R).length)) : T && rt && rt.lineWise && rt.text.join(`
`) == R.join(`
`) && (et = ct = Ct(et.line, 0)));
          var Rt = {
            from: et,
            to: ct,
            text: N ? N[ue % N.length] : R,
            origin: f || (T ? "paste" : e.state.cutIncoming > L ? "cut" : "+input")
          };
          Q2(e.doc, Rt), sr(e, "inputRead", e, Rt);
        }
        t && !T && g1(e, t), Hs(e), e.curOp.updateInput < 2 && (e.curOp.updateInput = Y), e.curOp.typing = !0, e.state.pasteIncoming = e.state.cutIncoming = -1;
      }
      function S1(e, t) {
        var u = e.clipboardData && e.clipboardData.getData("Text");
        if (u)
          return e.preventDefault(), !t.isReadOnly() && !t.options.disableInput && t.hasFocus() && Cr(t, function() {
            return kt(t, u, 0, null, "paste");
          }), !0;
      }
      function g1(e, t) {
        if (!(!e.options.electricChars || !e.options.smartIndent))
          for (var u = e.doc.sel, o = u.ranges.length - 1; o >= 0; o--) {
            var f = u.ranges[o];
            if (!(f.head.ch > 100 || o && u.ranges[o - 1].head.line == f.head.line)) {
              var w = e.getModeAt(f.head), L = !1;
              if (w.electricChars) {
                for (var T = 0; T < w.electricChars.length; T++)
                  if (t.indexOf(w.electricChars.charAt(T)) > -1) {
                    L = tt(e, f.head.line, "smart");
                    break;
                  }
              } else
                w.electricInput && w.electricInput.test(u1(e.doc, f.head.line).text.slice(0, f.head.ch)) && (L = tt(e, f.head.line, "smart"));
              L && sr(e, "electricInput", e, f.head.line);
            }
          }
      }
      function y1(e) {
        for (var t = [], u = [], o = 0; o < e.doc.sel.ranges.length; o++) {
          var f = e.doc.sel.ranges[o].head.line, w = { anchor: Ct(f, 0), head: Ct(f + 1, 0) };
          u.push(w), t.push(e.getRange(w.anchor, w.head));
        }
        return { text: t, ranges: u };
      }
      function Zt(e, t, u, o) {
        e.setAttribute("autocorrect", u ? "" : "off"), e.setAttribute("autocapitalize", o ? "" : "off"), e.setAttribute("spellcheck", !!t);
      }
      function jt() {
        var e = Yt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; min-height: 1em; outline: none"), t = Yt("div", [e], null, "overflow: hidden; position: relative; width: 3px; height: 0px;");
        return U ? e.style.width = "1000px" : e.setAttribute("wrap", "off"), Wt && (e.style.border = "1px solid black"), Zt(e), t;
      }
      function L1(e) {
        var t = e.optionHandlers, u = e.helpers = {};
        e.prototype = {
          constructor: e,
          focus: function() {
            window.focus(), this.display.input.focus();
          },
          setOption: function(o, f) {
            var w = this.options, L = w[o];
            w[o] == f && o != "mode" || (w[o] = f, t.hasOwnProperty(o) && Pr(this, t[o])(this, f, L), ke(this, "optionChange", this, o));
          },
          getOption: function(o) {
            return this.options[o];
          },
          getDoc: function() {
            return this.doc;
          },
          addKeyMap: function(o, f) {
            this.state.keyMaps[f ? "push" : "unshift"](P2(o));
          },
          removeKeyMap: function(o) {
            for (var f = this.state.keyMaps, w = 0; w < f.length; ++w)
              if (f[w] == o || f[w].name == o)
                return f.splice(w, 1), !0;
          },
          addOverlay: B(function(o, f) {
            var w = o.token ? o : e.getMode(this.options, o);
            if (w.startState)
              throw new Error("Overlays may not be stateful.");
            Na(
              this.state.overlays,
              {
                mode: w,
                modeSpec: o,
                opaque: f && f.opaque,
                priority: f && f.priority || 0
              },
              function(L) {
                return L.priority;
              }
            ), this.state.modeGen++, ai(this);
          }),
          removeOverlay: B(function(o) {
            for (var f = this.state.overlays, w = 0; w < f.length; ++w) {
              var L = f[w].modeSpec;
              if (L == o || typeof o == "string" && L.name == o) {
                f.splice(w, 1), this.state.modeGen++, ai(this);
                return;
              }
            }
          }),
          indentLine: B(function(o, f, w) {
            typeof f != "string" && typeof f != "number" && (f == null ? f = this.options.smartIndent ? "smart" : "prev" : f = f ? "add" : "subtract"), ss(this.doc, o) && tt(this, o, f, w);
          }),
          indentSelection: B(function(o) {
            for (var f = this.doc.sel.ranges, w = -1, L = 0; L < f.length; L++) {
              var T = f[L];
              if (T.empty())
                T.head.line > w && (tt(this, T.head.line, o, !0), w = T.head.line, L == this.doc.sel.primIndex && Hs(this));
              else {
                var R = T.from(), N = T.to(), q = Math.max(w, R.line);
                w = Math.min(this.lastLine(), N.line - (N.ch ? 0 : 1)) + 1;
                for (var Y = q; Y < w; ++Y)
                  tt(this, Y, o);
                var ue = this.doc.sel.ranges;
                R.ch == 0 && f.length == ue.length && ue[L].from().ch > 0 && Cn(this.doc, L, new G1(R, ue[L].to()), Sn);
              }
            }
          }),
          getTokenAt: function(o, f) {
            return vt(this, o, f);
          },
          getLineTokens: function(o, f) {
            return vt(this, Ct(o), f, !0);
          },
          getTokenTypeAt: function(o) {
            o = E1(this.doc, o);
            var f = ot(this, u1(this.doc, o.line)), w = 0, L = (f.length - 1) / 2, T = o.ch, R;
            if (T == 0)
              R = f[2];
            else
              for (; ; ) {
                var N = w + L >> 1;
                if ((N ? f[N * 2 - 1] : 0) >= T)
                  L = N;
                else if (f[N * 2 + 1] < T)
                  w = N + 1;
                else {
                  R = f[N * 2 + 2];
                  break;
                }
              }
            var q = R ? R.indexOf("overlay ") : -1;
            return q < 0 ? R : q == 0 ? null : R.slice(0, q - 1);
          },
          getModeAt: function(o) {
            var f = this.doc.mode;
            return f.innerMode ? e.innerMode(f, this.getTokenAt(o).state).mode : f;
          },
          getHelper: function(o, f) {
            return this.getHelpers(o, f)[0];
          },
          getHelpers: function(o, f) {
            var w = [];
            if (!u.hasOwnProperty(f))
              return w;
            var L = u[f], T = this.getModeAt(o);
            if (typeof T[f] == "string")
              L[T[f]] && w.push(L[T[f]]);
            else if (T[f])
              for (var R = 0; R < T[f].length; R++) {
                var N = L[T[f][R]];
                N && w.push(N);
              }
            else
              T.helperType && L[T.helperType] ? w.push(L[T.helperType]) : L[T.name] && w.push(L[T.name]);
            for (var q = 0; q < L._global.length; q++) {
              var Y = L._global[q];
              Y.pred(T, this) && Lr(w, Y.val) == -1 && w.push(Y.val);
            }
            return w;
          },
          getStateAfter: function(o, f) {
            var w = this.doc;
            return o = Oo(w, o == null ? w.first + w.size - 1 : o), it(this, o + 1, f).state;
          },
          cursorCoords: function(o, f) {
            var w, L = this.doc.sel.primary();
            return o == null ? w = L.head : typeof o == "object" ? w = E1(this.doc, o) : w = o ? L.from() : L.to(), Ui(this, w, f || "page");
          },
          charCoords: function(o, f) {
            return Io(this, E1(this.doc, o), f || "page");
          },
          coordsChar: function(o, f) {
            return o = Pa(this, o, f || "page"), st(this, o.left, o.top);
          },
          lineAtHeight: function(o, f) {
            return o = Pa(this, { top: o, left: 0 }, f || "page").top, W(this.doc, o + this.display.viewOffset);
          },
          heightAtLine: function(o, f, w) {
            var L = !1, T;
            if (typeof o == "number") {
              var R = this.doc.first + this.doc.size - 1;
              o < this.doc.first ? o = this.doc.first : o > R && (o = R, L = !0), T = u1(this.doc, o);
            } else
              T = o;
            return Ms(this, T, { top: 0, left: 0 }, f || "page", w || L).top + (L ? this.doc.height - Oi(T) : 0);
          },
          defaultTextHeight: function() {
            return $s(this.display);
          },
          defaultCharWidth: function() {
            return kn(this.display);
          },
          getViewport: function() {
            return { from: this.display.viewFrom, to: this.display.viewTo };
          },
          addWidget: function(o, f, w, L, T) {
            var R = this.display;
            o = Ui(this, E1(this.doc, o));
            var N = o.bottom, q = o.left;
            if (f.style.position = "absolute", f.setAttribute("cm-ignore-events", "true"), this.display.input.setUneditable(f), R.sizer.appendChild(f), L == "over")
              N = o.top;
            else if (L == "above" || L == "near") {
              var Y = Math.max(R.wrapper.clientHeight, this.doc.height), ue = Math.max(R.sizer.clientWidth, R.lineSpace.clientWidth);
              (L == "above" || o.bottom + f.offsetHeight > Y) && o.top > f.offsetHeight ? N = o.top - f.offsetHeight : o.bottom + f.offsetHeight <= Y && (N = o.bottom), q + f.offsetWidth > ue && (q = ue - f.offsetWidth);
            }
            f.style.top = N + "px", f.style.left = f.style.right = "", T == "right" ? (q = R.sizer.clientWidth - f.offsetWidth, f.style.right = "0px") : (T == "left" ? q = 0 : T == "middle" && (q = (R.sizer.clientWidth - f.offsetWidth) / 2), f.style.left = q + "px"), w && ds(this, { left: q, top: N, right: q + f.offsetWidth, bottom: N + f.offsetHeight });
          },
          triggerOnKeyDown: B(wa),
          triggerOnKeyPress: B(Ea),
          triggerOnKeyUp: jn,
          triggerOnMouseDown: B(E2),
          execCommand: function(o) {
            if (Vo.hasOwnProperty(o))
              return Vo[o].call(null, this);
          },
          triggerElectric: B(function(o) {
            g1(this, o);
          }),
          findPosH: function(o, f, w, L) {
            var T = 1;
            f < 0 && (T = -1, f = -f);
            for (var R = E1(this.doc, o), N = 0; N < f && (R = x1(this.doc, R, T, w, L), !R.hitSide); ++N)
              ;
            return R;
          },
          moveH: B(function(o, f) {
            var w = this;
            this.extendSelectionsBy(function(L) {
              return w.display.shift || w.doc.extend || L.empty() ? x1(w.doc, L.head, o, f, w.options.rtlMoveVisually) : o < 0 ? L.from() : L.to();
            }, ye);
          }),
          deleteH: B(function(o, f) {
            var w = this.doc.sel, L = this.doc;
            w.somethingSelected() ? L.replaceSelection("", null, "+delete") : Es(this, function(T) {
              var R = x1(L, T.head, o, f, !1);
              return o < 0 ? { from: R, to: T.head } : { from: T.head, to: R };
            });
          }),
          findPosV: function(o, f, w, L) {
            var T = 1, R = L;
            f < 0 && (T = -1, f = -f);
            for (var N = E1(this.doc, o), q = 0; q < f; ++q) {
              var Y = Ui(this, N, "div");
              if (R == null ? R = Y.left : Y.left = R, N = m1(this, Y, T, w), N.hitSide)
                break;
            }
            return N;
          },
          moveV: B(function(o, f) {
            var w = this, L = this.doc, T = [], R = !this.display.shift && !L.extend && L.sel.somethingSelected();
            if (L.extendSelectionsBy(function(q) {
              if (R)
                return o < 0 ? q.from() : q.to();
              var Y = Ui(w, q.head, "div");
              q.goalColumn != null && (Y.left = q.goalColumn), T.push(Y.left);
              var ue = m1(w, Y, o, f);
              return f == "page" && q == L.sel.primary() && oo(w, Io(w, ue, "div").top - Y.top), ue;
            }, ye), T.length)
              for (var N = 0; N < L.sel.ranges.length; N++)
                L.sel.ranges[N].goalColumn = T[N];
          }),
          findWordAt: function(o) {
            var f = this.doc, w = u1(f, o.line).text, L = o.ch, T = o.ch;
            if (w) {
              var R = this.getHelper(o, "wordChars");
              (o.sticky == "before" || T == w.length) && L ? --L : ++T;
              for (var N = w.charAt(L), q = we(N, R) ? function(Y) {
                return we(Y, R);
              } : /\s/.test(N) ? function(Y) {
                return /\s/.test(Y);
              } : function(Y) {
                return !/\s/.test(Y) && !we(Y);
              }; L > 0 && q(w.charAt(L - 1)); )
                --L;
              for (; T < w.length && q(w.charAt(T)); )
                ++T;
            }
            return new G1(Ct(o.line, L), Ct(o.line, T));
          },
          toggleOverwrite: function(o) {
            o != null && o == this.state.overwrite || ((this.state.overwrite = !this.state.overwrite) ? xn(this.display.cursorDiv, "CodeMirror-overwrite") : Vt(this.display.cursorDiv, "CodeMirror-overwrite"), ke(this, "overwriteToggle", this, this.state.overwrite));
          },
          hasFocus: function() {
            return this.display.input.getField() == rn();
          },
          isReadOnly: function() {
            return !!(this.options.readOnly || this.doc.cantEdit);
          },
          scrollTo: B(function(o, f) {
            g2(this, o, f);
          }),
          getScrollInfo: function() {
            var o = this.display.scroller;
            return {
              left: o.scrollLeft,
              top: o.scrollTop,
              height: o.scrollHeight - Tr(this) - this.display.barHeight,
              width: o.scrollWidth - Tr(this) - this.display.barWidth,
              clientHeight: qn(this),
              clientWidth: Wr(this)
            };
          },
          scrollIntoView: B(function(o, f) {
            o == null ? (o = { from: this.doc.sel.primary().head, to: null }, f == null && (f = this.options.cursorScrollMargin)) : typeof o == "number" ? o = { from: Ct(o, 0), to: null } : o.from == null && (o = { from: o, to: null }), o.to || (o.to = o.from), o.margin = f || 0, o.from.line != null ? K2(this, o) : Xr(this, o.from, o.to, o.margin);
          }),
          setSize: B(function(o, f) {
            var w = this, L = function(R) {
              return typeof R == "number" || /^\d+$/.test(String(R)) ? R + "px" : R;
            };
            o != null && (this.display.wrapper.style.width = L(o)), f != null && (this.display.wrapper.style.height = L(f)), this.options.lineWrapping && na(this);
            var T = this.display.viewFrom;
            this.doc.iter(T, this.display.viewTo, function(R) {
              if (R.widgets) {
                for (var N = 0; N < R.widgets.length; N++)
                  if (R.widgets[N].noHScroll) {
                    Qi(w, T, "widget");
                    break;
                  }
              }
              ++T;
            }), this.curOp.forceUpdate = !0, ke(this, "refresh", this);
          }),
          operation: function(o) {
            return Cr(this, o);
          },
          startOperation: function() {
            return e2(this);
          },
          endOperation: function() {
            return Hi(this);
          },
          refresh: B(function() {
            var o = this.display.cachedTextHeight;
            ai(this), this.curOp.forceUpdate = !0, j1(this), g2(this, this.doc.scrollLeft, this.doc.scrollTop), aa(this.display), (o == null || Math.abs(o - $s(this.display)) > 0.5 || this.options.lineWrapping) && Fs(this), ke(this, "refresh", this);
          }),
          swapDoc: B(function(o) {
            var f = this.doc;
            return f.cm = null, this.state.selectingText && this.state.selectingText(), ui(this, o), j1(this), this.display.input.reset(), g2(this, o.scrollLeft, o.scrollTop), this.curOp.forceScroll = !0, sr(this, "swapDoc", this, f), f;
          }),
          phrase: function(o) {
            var f = this.options.phrases;
            return f && Object.prototype.hasOwnProperty.call(f, o) ? f[o] : o;
          },
          getInputField: function() {
            return this.display.input.getField();
          },
          getWrapperElement: function() {
            return this.display.wrapper;
          },
          getScrollerElement: function() {
            return this.display.scroller;
          },
          getGutterElement: function() {
            return this.display.gutters;
          }
        }, Oe(e), e.registerHelper = function(o, f, w) {
          u.hasOwnProperty(o) || (u[o] = e[o] = { _global: [] }), u[o][f] = w;
        }, e.registerGlobalHelper = function(o, f, w, L) {
          e.registerHelper(o, f, L), u[o]._global.push({ pred: w, val: L });
        };
      }
      function x1(e, t, u, o, f) {
        var w = t, L = u, T = u1(e, t.line), R = f && e.direction == "rtl" ? -u : u;
        function N() {
          var Qt = t.line + R;
          return Qt < e.first || Qt >= e.first + e.size ? !1 : (t = new Ct(Qt, t.ch, t.sticky), T = u1(e, Qt));
        }
        function q(Qt) {
          var Ht;
          if (o == "codepoint") {
            var f1 = T.text.charCodeAt(t.ch + (u > 0 ? 0 : -1));
            if (isNaN(f1))
              Ht = null;
            else {
              var _1 = u > 0 ? f1 >= 55296 && f1 < 56320 : f1 >= 56320 && f1 < 57343;
              Ht = new Ct(t.line, Math.max(0, Math.min(T.text.length, t.ch + u * (_1 ? 2 : 1))), -u);
            }
          } else
            f ? Ht = e3(e.cm, T, t, u) : Ht = jo(T, t, u);
          if (Ht == null)
            if (!Qt && N())
              t = ya(f, e.cm, T, t.line, R);
            else
              return !1;
          else
            t = Ht;
          return !0;
        }
        if (o == "char" || o == "codepoint")
          q();
        else if (o == "column")
          q(!0);
        else if (o == "word" || o == "group")
          for (var Y = null, ue = o == "group", Q = e.cm && e.cm.getHelper(t, "wordChars"), et = !0; !(u < 0 && !q(!et)); et = !1) {
            var ct = T.text.charAt(t.ch) || `
`, Rt = we(ct, Q) ? "w" : ue && ct == `
` ? "n" : !ue || /\s/.test(ct) ? null : "p";
            if (ue && !et && !Rt && (Rt = "s"), Y && Y != Rt) {
              u < 0 && (u = 1, q(), t.sticky = "after");
              break;
            }
            if (Rt && (Y = Rt), u > 0 && !q(!et))
              break;
          }
        var Bt = i2(e, t, w, L, !0);
        return so(w, Bt) && (Bt.hitSide = !0), Bt;
      }
      function m1(e, t, u, o) {
        var f = e.doc, w = t.left, L;
        if (o == "page") {
          var T = Math.min(e.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight), R = Math.max(T - 0.5 * $s(e.display), 3);
          L = (u > 0 ? t.bottom : t.top) + u * R;
        } else
          o == "line" && (L = u > 0 ? t.bottom + 3 : t.top - 3);
        for (var N; N = st(e, w, L), !!N.outside; ) {
          if (u < 0 ? L <= 0 : L >= f.height) {
            N.hitSide = !0;
            break;
          }
          L += u * 5;
        }
        return N;
      }
      var zt = function(e) {
        this.cm = e, this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null, this.polling = new dn(), this.composing = null, this.gracePeriod = !1, this.readDOMTimeout = null;
      };
      zt.prototype.init = function(e) {
        var t = this, u = this, o = u.cm, f = u.div = e.lineDiv;
        f.contentEditable = !0, Zt(f, o.options.spellcheck, o.options.autocorrect, o.options.autocapitalize);
        function w(T) {
          for (var R = T.target; R; R = R.parentNode) {
            if (R == f)
              return !0;
            if (/\bCodeMirror-(?:line)?widget\b/.test(R.className))
              break;
          }
          return !1;
        }
        oe(f, "paste", function(T) {
          !w(T) || me(o, T) || S1(T, o) || M <= 11 && setTimeout(Pr(o, function() {
            return t.updateFromDOM();
          }), 20);
        }), oe(f, "compositionstart", function(T) {
          t.composing = { data: T.data, done: !1 };
        }), oe(f, "compositionupdate", function(T) {
          t.composing || (t.composing = { data: T.data, done: !1 });
        }), oe(f, "compositionend", function(T) {
          t.composing && (T.data != t.composing.data && t.readFromDOMSoon(), t.composing.done = !0);
        }), oe(f, "touchstart", function() {
          return u.forceCompositionEnd();
        }), oe(f, "input", function() {
          t.composing || t.readFromDOMSoon();
        });
        function L(T) {
          if (!(!w(T) || me(o, T))) {
            if (o.somethingSelected())
              ut({ lineWise: !1, text: o.getSelections() }), T.type == "cut" && o.replaceSelection("", null, "cut");
            else if (o.options.lineWiseCopyCut) {
              var R = y1(o);
              ut({ lineWise: !0, text: R.text }), T.type == "cut" && o.operation(function() {
                o.setSelections(R.ranges, 0, Sn), o.replaceSelection("", null, "cut");
              });
            } else
              return;
            if (T.clipboardData) {
              T.clipboardData.clearData();
              var N = rt.text.join(`
`);
              if (T.clipboardData.setData("Text", N), T.clipboardData.getData("Text") == N) {
                T.preventDefault();
                return;
              }
            }
            var q = jt(), Y = q.firstChild;
            o.display.lineSpace.insertBefore(q, o.display.lineSpace.firstChild), Y.value = rt.text.join(`
`);
            var ue = rn();
            Mi(Y), setTimeout(function() {
              o.display.lineSpace.removeChild(q), ue.focus(), ue == f && u.showPrimarySelection();
            }, 50);
          }
        }
        oe(f, "copy", L), oe(f, "cut", L);
      }, zt.prototype.screenReaderLabelChanged = function(e) {
        e ? this.div.setAttribute("aria-label", e) : this.div.removeAttribute("aria-label");
      }, zt.prototype.prepareSelection = function() {
        var e = In(this.cm, !1);
        return e.focus = rn() == this.div, e;
      }, zt.prototype.showSelection = function(e, t) {
        !e || !this.cm.display.view.length || ((e.focus || t) && this.showPrimarySelection(), this.showMultipleSelections(e));
      }, zt.prototype.getSelection = function() {
        return this.cm.display.wrapper.ownerDocument.getSelection();
      }, zt.prototype.showPrimarySelection = function() {
        var e = this.getSelection(), t = this.cm, u = t.doc.sel.primary(), o = u.from(), f = u.to();
        if (t.display.viewTo == t.display.viewFrom || o.line >= t.display.viewTo || f.line < t.display.viewFrom) {
          e.removeAllRanges();
          return;
        }
        var w = zr(t, e.anchorNode, e.anchorOffset), L = zr(t, e.focusNode, e.focusOffset);
        if (!(w && !w.bad && L && !L.bad && I1(Ri(w, L), o) == 0 && I1(Fi(w, L), f) == 0)) {
          var T = t.display.view, R = o.line >= t.display.viewFrom && Yn(t, o) || { node: T[0].measure.map[2], offset: 0 }, N = f.line < t.display.viewTo && Yn(t, f);
          if (!N) {
            var q = T[T.length - 1].measure, Y = q.maps ? q.maps[q.maps.length - 1] : q.map;
            N = { node: Y[Y.length - 1], offset: Y[Y.length - 2] - Y[Y.length - 3] };
          }
          if (!R || !N) {
            e.removeAllRanges();
            return;
          }
          var ue = e.rangeCount && e.getRangeAt(0), Q;
          try {
            Q = pr(R.node, R.offset, N.offset, N.node);
          } catch {
          }
          Q && (!g && t.state.focused ? (e.collapse(R.node, R.offset), Q.collapsed || (e.removeAllRanges(), e.addRange(Q))) : (e.removeAllRanges(), e.addRange(Q)), ue && e.anchorNode == null ? e.addRange(ue) : g && this.startGracePeriod()), this.rememberSelection();
        }
      }, zt.prototype.startGracePeriod = function() {
        var e = this;
        clearTimeout(this.gracePeriod), this.gracePeriod = setTimeout(function() {
          e.gracePeriod = !1, e.selectionChanged() && e.cm.operation(function() {
            return e.cm.curOp.selectionChanged = !0;
          });
        }, 20);
      }, zt.prototype.showMultipleSelections = function(e) {
        l1(this.cm.display.cursorDiv, e.cursors), l1(this.cm.display.selectionDiv, e.selection);
      }, zt.prototype.rememberSelection = function() {
        var e = this.getSelection();
        this.lastAnchorNode = e.anchorNode, this.lastAnchorOffset = e.anchorOffset, this.lastFocusNode = e.focusNode, this.lastFocusOffset = e.focusOffset;
      }, zt.prototype.selectionInEditor = function() {
        var e = this.getSelection();
        if (!e.rangeCount)
          return !1;
        var t = e.getRangeAt(0).commonAncestorContainer;
        return wr(this.div, t);
      }, zt.prototype.focus = function() {
        this.cm.options.readOnly != "nocursor" && ((!this.selectionInEditor() || rn() != this.div) && this.showSelection(this.prepareSelection(), !0), this.div.focus());
      }, zt.prototype.blur = function() {
        this.div.blur();
      }, zt.prototype.getField = function() {
        return this.div;
      }, zt.prototype.supportsTouch = function() {
        return !0;
      }, zt.prototype.receivedFocus = function() {
        var e = this, t = this;
        this.selectionInEditor() ? setTimeout(function() {
          return e.pollSelection();
        }, 20) : Cr(this.cm, function() {
          return t.cm.curOp.selectionChanged = !0;
        });
        function u() {
          t.cm.state.focused && (t.pollSelection(), t.polling.set(t.cm.options.pollInterval, u));
        }
        this.polling.set(this.cm.options.pollInterval, u);
      }, zt.prototype.selectionChanged = function() {
        var e = this.getSelection();
        return e.anchorNode != this.lastAnchorNode || e.anchorOffset != this.lastAnchorOffset || e.focusNode != this.lastFocusNode || e.focusOffset != this.lastFocusOffset;
      }, zt.prototype.pollSelection = function() {
        if (!(this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged())) {
          var e = this.getSelection(), t = this.cm;
          if (b1 && K && this.cm.display.gutterSpecs.length && lt(e.anchorNode)) {
            this.cm.triggerOnKeyDown({ type: "keydown", keyCode: 8, preventDefault: Math.abs }), this.blur(), this.focus();
            return;
          }
          if (!this.composing) {
            this.rememberSelection();
            var u = zr(t, e.anchorNode, e.anchorOffset), o = zr(t, e.focusNode, e.focusOffset);
            u && o && Cr(t, function() {
              yr(t.doc, r2(u, o), Sn), (u.bad || o.bad) && (t.curOp.selectionChanged = !0);
            });
          }
        }
      }, zt.prototype.pollContent = function() {
        this.readDOMTimeout != null && (clearTimeout(this.readDOMTimeout), this.readDOMTimeout = null);
        var e = this.cm, t = e.display, u = e.doc.sel.primary(), o = u.from(), f = u.to();
        if (o.ch == 0 && o.line > e.firstLine() && (o = Ct(o.line - 1, u1(e.doc, o.line - 1).length)), f.ch == u1(e.doc, f.line).text.length && f.line < e.lastLine() && (f = Ct(f.line + 1, 0)), o.line < t.viewFrom || f.line > t.viewTo - 1)
          return !1;
        var w, L, T;
        o.line == t.viewFrom || (w = Z1(e, o.line)) == 0 ? (L = or(t.view[0].line), T = t.view[0].node) : (L = or(t.view[w].line), T = t.view[w - 1].node.nextSibling);
        var R = Z1(e, f.line), N, q;
        if (R == t.view.length - 1 ? (N = t.viewTo - 1, q = t.lineDiv.lastChild) : (N = or(t.view[R + 1].line) - 1, q = t.view[R + 1].node.previousSibling), !T)
          return !1;
        for (var Y = e.doc.splitLines(Ar(e, T, q, L, N)), ue = f2(e.doc, Ct(L, 0), Ct(N, u1(e.doc, N).text.length)); Y.length > 1 && ue.length > 1; )
          if (ae(Y) == ae(ue))
            Y.pop(), ue.pop(), N--;
          else if (Y[0] == ue[0])
            Y.shift(), ue.shift(), L++;
          else
            break;
        for (var Q = 0, et = 0, ct = Y[0], Rt = ue[0], Bt = Math.min(ct.length, Rt.length); Q < Bt && ct.charCodeAt(Q) == Rt.charCodeAt(Q); )
          ++Q;
        for (var Qt = ae(Y), Ht = ae(ue), f1 = Math.min(
          Qt.length - (Y.length == 1 ? Q : 0),
          Ht.length - (ue.length == 1 ? Q : 0)
        ); et < f1 && Qt.charCodeAt(Qt.length - et - 1) == Ht.charCodeAt(Ht.length - et - 1); )
          ++et;
        if (Y.length == 1 && ue.length == 1 && L == o.line)
          for (; Q && Q > o.ch && Qt.charCodeAt(Qt.length - et - 1) == Ht.charCodeAt(Ht.length - et - 1); )
            Q--, et++;
        Y[Y.length - 1] = Qt.slice(0, Qt.length - et).replace(/^\u200b+/, ""), Y[0] = Y[0].slice(Q).replace(/\u200b+$/, "");
        var _1 = Ct(L, Q), T1 = Ct(N, ue.length ? ae(ue).length - et : 0);
        if (Y.length > 1 || Y[0] || I1(_1, T1))
          return o2(e.doc, Y, _1, T1, "+input"), !0;
      }, zt.prototype.ensurePolled = function() {
        this.forceCompositionEnd();
      }, zt.prototype.reset = function() {
        this.forceCompositionEnd();
      }, zt.prototype.forceCompositionEnd = function() {
        !this.composing || (clearTimeout(this.readDOMTimeout), this.composing = null, this.updateFromDOM(), this.div.blur(), this.div.focus());
      }, zt.prototype.readFromDOMSoon = function() {
        var e = this;
        this.readDOMTimeout == null && (this.readDOMTimeout = setTimeout(function() {
          if (e.readDOMTimeout = null, e.composing)
            if (e.composing.done)
              e.composing = null;
            else
              return;
          e.updateFromDOM();
        }, 80));
      }, zt.prototype.updateFromDOM = function() {
        var e = this;
        (this.cm.isReadOnly() || !this.pollContent()) && Cr(this.cm, function() {
          return ai(e.cm);
        });
      }, zt.prototype.setUneditable = function(e) {
        e.contentEditable = "false";
      }, zt.prototype.onKeyPress = function(e) {
        e.charCode == 0 || this.composing || (e.preventDefault(), this.cm.isReadOnly() || Pr(this.cm, kt)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0));
      }, zt.prototype.readOnlyChanged = function(e) {
        this.div.contentEditable = String(e != "nocursor");
      }, zt.prototype.onContextMenu = function() {
      }, zt.prototype.resetPosition = function() {
      }, zt.prototype.needsContentAttribute = !0;
      function Yn(e, t) {
        var u = jr(e, t.line);
        if (!u || u.hidden)
          return null;
        var o = u1(e.doc, t.line), f = si(u, o, t.line), w = Re(o, e.doc.direction), L = "left";
        if (w) {
          var T = qe(w, t.ch);
          L = T % 2 ? "right" : "left";
        }
        var R = Wn(f.map, t.ch, L);
        return R.offset = R.collapse == "right" ? R.end : R.start, R;
      }
      function lt(e) {
        for (var t = e; t; t = t.parentNode)
          if (/CodeMirror-gutter-wrapper/.test(t.className))
            return !0;
        return !1;
      }
      function Dr(e, t) {
        return t && (e.bad = !0), e;
      }
      function Ar(e, t, u, o, f) {
        var w = "", L = !1, T = e.doc.lineSeparator(), R = !1;
        function N(Q) {
          return function(et) {
            return et.id == Q;
          };
        }
        function q() {
          L && (w += T, R && (w += T), L = R = !1);
        }
        function Y(Q) {
          Q && (q(), w += Q);
        }
        function ue(Q) {
          if (Q.nodeType == 1) {
            var et = Q.getAttribute("cm-text");
            if (et) {
              Y(et);
              return;
            }
            var ct = Q.getAttribute("cm-marker"), Rt;
            if (ct) {
              var Bt = e.findMarks(Ct(o, 0), Ct(f + 1, 0), N(+ct));
              Bt.length && (Rt = Bt[0].find(0)) && Y(f2(e.doc, Rt.from, Rt.to).join(T));
              return;
            }
            if (Q.getAttribute("contenteditable") == "false")
              return;
            var Qt = /^(pre|div|p|li|table|br)$/i.test(Q.nodeName);
            if (!/^br$/i.test(Q.nodeName) && Q.textContent.length == 0)
              return;
            Qt && q();
            for (var Ht = 0; Ht < Q.childNodes.length; Ht++)
              ue(Q.childNodes[Ht]);
            /^(pre|p)$/i.test(Q.nodeName) && (R = !0), Qt && (L = !0);
          } else
            Q.nodeType == 3 && Y(Q.nodeValue.replace(/\u200b/g, "").replace(/\u00a0/g, " "));
        }
        for (; ue(t), t != u; )
          t = t.nextSibling, R = !1;
        return w;
      }
      function zr(e, t, u) {
        var o;
        if (t == e.display.lineDiv) {
          if (o = e.display.lineDiv.childNodes[u], !o)
            return Dr(e.clipPos(Ct(e.display.viewTo - 1)), !0);
          t = null, u = 0;
        } else
          for (o = t; ; o = o.parentNode) {
            if (!o || o == e.display.lineDiv)
              return null;
            if (o.parentNode && o.parentNode == e.display.lineDiv)
              break;
          }
        for (var f = 0; f < e.display.view.length; f++) {
          var w = e.display.view[f];
          if (w.node == o)
            return z1(w, t, u);
        }
      }
      function z1(e, t, u) {
        var o = e.text.firstChild, f = !1;
        if (!t || !wr(o, t))
          return Dr(Ct(or(e.line), 0), !0);
        if (t == o && (f = !0, t = o.childNodes[u], u = 0, !t)) {
          var w = e.rest ? ae(e.rest) : e.line;
          return Dr(Ct(or(w), w.text.length), f);
        }
        var L = t.nodeType == 3 ? t : null, T = t;
        for (!L && t.childNodes.length == 1 && t.firstChild.nodeType == 3 && (L = t.firstChild, u && (u = L.nodeValue.length)); T.parentNode != o; )
          T = T.parentNode;
        var R = e.measure, N = R.maps;
        function q(Rt, Bt, Qt) {
          for (var Ht = -1; Ht < (N ? N.length : 0); Ht++)
            for (var f1 = Ht < 0 ? R.map : N[Ht], _1 = 0; _1 < f1.length; _1 += 3) {
              var T1 = f1[_1 + 2];
              if (T1 == Rt || T1 == Bt) {
                var W1 = or(Ht < 0 ? e.line : e.rest[Ht]), xr = f1[_1] + Qt;
                return (Qt < 0 || T1 != Rt) && (xr = f1[_1 + (Qt ? 1 : 0)]), Ct(W1, xr);
              }
            }
        }
        var Y = q(L, T, u);
        if (Y)
          return Dr(Y, f);
        for (var ue = T.nextSibling, Q = L ? L.nodeValue.length - u : 0; ue; ue = ue.nextSibling) {
          if (Y = q(ue, ue.firstChild, 0), Y)
            return Dr(Ct(Y.line, Y.ch - Q), f);
          Q += ue.textContent.length;
        }
        for (var et = T.previousSibling, ct = u; et; et = et.previousSibling) {
          if (Y = q(et, et.firstChild, -1), Y)
            return Dr(Ct(Y.line, Y.ch + ct), f);
          ct += et.textContent.length;
        }
      }
      var N1 = function(e) {
        this.cm = e, this.prevInput = "", this.pollingFast = !1, this.polling = new dn(), this.hasSelection = !1, this.composing = null;
      };
      N1.prototype.init = function(e) {
        var t = this, u = this, o = this.cm;
        this.createField(e);
        var f = this.textarea;
        e.wrapper.insertBefore(this.wrapper, e.wrapper.firstChild), Wt && (f.style.width = "0px"), oe(f, "input", function() {
          P && M >= 9 && t.hasSelection && (t.hasSelection = null), u.poll();
        }), oe(f, "paste", function(L) {
          me(o, L) || S1(L, o) || (o.state.pasteIncoming = +new Date(), u.fastPoll());
        });
        function w(L) {
          if (!me(o, L)) {
            if (o.somethingSelected())
              ut({ lineWise: !1, text: o.getSelections() });
            else if (o.options.lineWiseCopyCut) {
              var T = y1(o);
              ut({ lineWise: !0, text: T.text }), L.type == "cut" ? o.setSelections(T.ranges, null, Sn) : (u.prevInput = "", f.value = T.text.join(`
`), Mi(f));
            } else
              return;
            L.type == "cut" && (o.state.cutIncoming = +new Date());
          }
        }
        oe(f, "cut", w), oe(f, "copy", w), oe(e.scroller, "paste", function(L) {
          if (!(Ir(e, L) || me(o, L))) {
            if (!f.dispatchEvent) {
              o.state.pasteIncoming = +new Date(), u.focus();
              return;
            }
            var T = new Event("paste");
            T.clipboardData = L.clipboardData, f.dispatchEvent(T);
          }
        }), oe(e.lineSpace, "selectstart", function(L) {
          Ir(e, L) || xe(L);
        }), oe(f, "compositionstart", function() {
          var L = o.getCursor("from");
          u.composing && u.composing.range.clear(), u.composing = {
            start: L,
            range: o.markText(L, o.getCursor("to"), { className: "CodeMirror-composing" })
          };
        }), oe(f, "compositionend", function() {
          u.composing && (u.poll(), u.composing.range.clear(), u.composing = null);
        });
      }, N1.prototype.createField = function(e) {
        this.wrapper = jt(), this.textarea = this.wrapper.firstChild;
      }, N1.prototype.screenReaderLabelChanged = function(e) {
        e ? this.textarea.setAttribute("aria-label", e) : this.textarea.removeAttribute("aria-label");
      }, N1.prototype.prepareSelection = function() {
        var e = this.cm, t = e.display, u = e.doc, o = In(e);
        if (e.options.moveInputWithCursor) {
          var f = Ui(e, u.sel.primary().head, "div"), w = t.wrapper.getBoundingClientRect(), L = t.lineDiv.getBoundingClientRect();
          o.teTop = Math.max(0, Math.min(
            t.wrapper.clientHeight - 10,
            f.top + L.top - w.top
          )), o.teLeft = Math.max(0, Math.min(
            t.wrapper.clientWidth - 10,
            f.left + L.left - w.left
          ));
        }
        return o;
      }, N1.prototype.showSelection = function(e) {
        var t = this.cm, u = t.display;
        l1(u.cursorDiv, e.cursors), l1(u.selectionDiv, e.selection), e.teTop != null && (this.wrapper.style.top = e.teTop + "px", this.wrapper.style.left = e.teLeft + "px");
      }, N1.prototype.reset = function(e) {
        if (!(this.contextMenuPending || this.composing)) {
          var t = this.cm;
          if (t.somethingSelected()) {
            this.prevInput = "";
            var u = t.getSelection();
            this.textarea.value = u, t.state.focused && Mi(this.textarea), P && M >= 9 && (this.hasSelection = u);
          } else
            e || (this.prevInput = this.textarea.value = "", P && M >= 9 && (this.hasSelection = null));
        }
      }, N1.prototype.getField = function() {
        return this.textarea;
      }, N1.prototype.supportsTouch = function() {
        return !1;
      }, N1.prototype.focus = function() {
        if (this.cm.options.readOnly != "nocursor" && (!R1 || rn() != this.textarea))
          try {
            this.textarea.focus();
          } catch {
          }
      }, N1.prototype.blur = function() {
        this.textarea.blur();
      }, N1.prototype.resetPosition = function() {
        this.wrapper.style.top = this.wrapper.style.left = 0;
      }, N1.prototype.receivedFocus = function() {
        this.slowPoll();
      }, N1.prototype.slowPoll = function() {
        var e = this;
        this.pollingFast || this.polling.set(this.cm.options.pollInterval, function() {
          e.poll(), e.cm.state.focused && e.slowPoll();
        });
      }, N1.prototype.fastPoll = function() {
        var e = !1, t = this;
        t.pollingFast = !0;
        function u() {
          var o = t.poll();
          !o && !e ? (e = !0, t.polling.set(60, u)) : (t.pollingFast = !1, t.slowPoll());
        }
        t.polling.set(20, u);
      }, N1.prototype.poll = function() {
        var e = this, t = this.cm, u = this.textarea, o = this.prevInput;
        if (this.contextMenuPending || !t.state.focused || Qe(u) && !o && !this.composing || t.isReadOnly() || t.options.disableInput || t.state.keySeq)
          return !1;
        var f = u.value;
        if (f == o && !t.somethingSelected())
          return !1;
        if (P && M >= 9 && this.hasSelection === f || C1 && /[\uf700-\uf7ff]/.test(f))
          return t.display.input.reset(), !1;
        if (t.doc.sel == t.display.selForContextMenu) {
          var w = f.charCodeAt(0);
          if (w == 8203 && !o && (o = "\u200B"), w == 8666)
            return this.reset(), this.cm.execCommand("undo");
        }
        for (var L = 0, T = Math.min(o.length, f.length); L < T && o.charCodeAt(L) == f.charCodeAt(L); )
          ++L;
        return Cr(t, function() {
          kt(
            t,
            f.slice(L),
            o.length - L,
            null,
            e.composing ? "*compose" : null
          ), f.length > 1e3 || f.indexOf(`
`) > -1 ? u.value = e.prevInput = "" : e.prevInput = f, e.composing && (e.composing.range.clear(), e.composing.range = t.markText(
            e.composing.start,
            t.getCursor("to"),
            { className: "CodeMirror-composing" }
          ));
        }), !0;
      }, N1.prototype.ensurePolled = function() {
        this.pollingFast && this.poll() && (this.pollingFast = !1);
      }, N1.prototype.onKeyPress = function() {
        P && M >= 9 && (this.hasSelection = null), this.fastPoll();
      }, N1.prototype.onContextMenu = function(e) {
        var t = this, u = t.cm, o = u.display, f = t.textarea;
        t.contextMenuPending && t.contextMenuPending();
        var w = d2(u, e), L = o.scroller.scrollTop;
        if (!w || re)
          return;
        var T = u.options.resetSelectionOnContextMenu;
        T && u.doc.sel.contains(w) == -1 && Pr(u, yr)(u.doc, r2(w), Sn);
        var R = f.style.cssText, N = t.wrapper.style.cssText, q = t.wrapper.offsetParent.getBoundingClientRect();
        t.wrapper.style.cssText = "position: static", f.style.cssText = `position: absolute; width: 30px; height: 30px;
      top: ` + (e.clientY - q.top - 5) + "px; left: " + (e.clientX - q.left - 5) + `px;
      z-index: 1000; background: ` + (P ? "rgba(255, 255, 255, .05)" : "transparent") + `;
      outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);`;
        var Y;
        U && (Y = window.scrollY), o.input.focus(), U && window.scrollTo(null, Y), o.input.reset(), u.somethingSelected() || (f.value = t.prevInput = " "), t.contextMenuPending = Q, o.selForContextMenu = u.doc.sel, clearTimeout(o.detectingSelectAll);
        function ue() {
          if (f.selectionStart != null) {
            var ct = u.somethingSelected(), Rt = "\u200B" + (ct ? f.value : "");
            f.value = "\u21DA", f.value = Rt, t.prevInput = ct ? "" : "\u200B", f.selectionStart = 1, f.selectionEnd = Rt.length, o.selForContextMenu = u.doc.sel;
          }
        }
        function Q() {
          if (t.contextMenuPending == Q && (t.contextMenuPending = !1, t.wrapper.style.cssText = N, f.style.cssText = R, P && M < 9 && o.scrollbars.setScrollTop(o.scroller.scrollTop = L), f.selectionStart != null)) {
            (!P || P && M < 9) && ue();
            var ct = 0, Rt = function() {
              o.selForContextMenu == u.doc.sel && f.selectionStart == 0 && f.selectionEnd > 0 && t.prevInput == "\u200B" ? Pr(u, js)(u) : ct++ < 10 ? o.detectingSelectAll = setTimeout(Rt, 500) : (o.selForContextMenu = null, o.input.reset());
            };
            o.detectingSelectAll = setTimeout(Rt, 200);
          }
        }
        if (P && M >= 9 && ue(), Y1) {
          $e(e);
          var et = function() {
            Fe(window, "mouseup", et), setTimeout(Q, 20);
          };
          oe(window, "mouseup", et);
        } else
          setTimeout(Q, 50);
      }, N1.prototype.readOnlyChanged = function(e) {
        e || this.reset(), this.textarea.disabled = e == "nocursor", this.textarea.readOnly = !!e;
      }, N1.prototype.setUneditable = function() {
      }, N1.prototype.needsContentAttribute = !1;
      function ji(e, t) {
        if (t = t ? gi(t) : {}, t.value = e.value, !t.tabindex && e.tabIndex && (t.tabindex = e.tabIndex), !t.placeholder && e.placeholder && (t.placeholder = e.placeholder), t.autofocus == null) {
          var u = rn();
          t.autofocus = u == e || e.getAttribute("autofocus") != null && u == document.body;
        }
        function o() {
          e.value = T.getValue();
        }
        var f;
        if (e.form && (oe(e.form, "submit", o), !t.leaveSubmitMethodAlone)) {
          var w = e.form;
          f = w.submit;
          try {
            var L = w.submit = function() {
              o(), w.submit = f, w.submit(), w.submit = L;
            };
          } catch {
          }
        }
        t.finishInit = function(R) {
          R.save = o, R.getTextArea = function() {
            return e;
          }, R.toTextArea = function() {
            R.toTextArea = isNaN, o(), e.parentNode.removeChild(R.getWrapperElement()), e.style.display = "", e.form && (Fe(e.form, "submit", o), !t.leaveSubmitMethodAlone && typeof e.form.submit == "function" && (e.form.submit = f));
          };
        }, e.style.display = "none";
        var T = se(
          function(R) {
            return e.parentNode.insertBefore(R, e.nextSibling);
          },
          t
        );
        return T;
      }
      function Zr(e) {
        e.off = Fe, e.on = oe, e.wheelEventPixels = ca, e.Doc = _i, e.splitLines = Je, e.countColumn = Sr, e.findColumn = Ae, e.isWordChar = Le, e.Pass = Zn, e.signal = ke, e.Line = ls, e.changeEnd = Vr, e.scrollbarModel = O2, e.Pos = Ct, e.cmpPos = I1, e.modes = ro, e.mimeModes = G2, e.resolveMode = q2, e.getMode = Ao, e.modeExtensions = Is, e.extendMode = c1, e.copyState = mr, e.startState = no, e.innerMode = Ro, e.commands = Vo, e.keyMap = cn, e.keyName = Yr, e.isModifierKey = v3, e.lookupKey = ws, e.normalizeKeyMap = F2, e.StringStream = hr, e.SharedTextMarker = Co, e.TextMarker = ci, e.LineWidget = v, e.e_preventDefault = xe, e.e_stopPropagation = Me, e.e_stop = $e, e.addClass = xn, e.contains = wr, e.rmClass = Vt, e.keyNames = Wi;
      }
      ie(se), L1(se);
      var Js = "iter insert remove copy getEditor constructor".split(" ");
      for (var Kn in _i.prototype)
        _i.prototype.hasOwnProperty(Kn) && Lr(Js, Kn) < 0 && (se.prototype[Kn] = function(e) {
          return function() {
            return e.apply(this.doc, arguments);
          };
        }(_i.prototype[Kn]));
      return Oe(_i), se.inputStyles = { textarea: N1, contenteditable: zt }, se.defineMode = function(e) {
        !se.defaults.mode && e != "null" && (se.defaults.mode = e), _o.apply(this, arguments);
      }, se.defineMIME = ks, se.defineMode("null", function() {
        return { token: function(e) {
          return e.skipToEnd();
        } };
      }), se.defineMIME("text/plain", "null"), se.defineExtension = function(e, t) {
        se.prototype[e] = t;
      }, se.defineDocExtension = function(e, t) {
        _i.prototype[e] = t;
      }, se.fromTextArea = ji, Zr(se), se.version = "5.65.6", se;
    });
  }(N5)), N5.exports;
}
(function(s, n) {
  (function(a) {
    a(Au());
  })(function(a) {
    a.defineMode("sql", function(U, j) {
      var K = j.client || {}, Z = j.atoms || { false: !0, true: !0, null: !0 }, re = j.builtin || P(M), V = j.keywords || P(I), at = j.operatorChars || /^[*+\-%<>!=&|~^\/]/, Tt = j.support || {}, Wt = j.hooks || {}, b1 = j.dateSQL || { date: !0, time: !0, timestamp: !0 }, R1 = j.backslashStringEscapes !== !1, C1 = j.brackets || /^[\{}\(\)\[\]]/, D1 = j.punctuation || /^[;.,:]/;
      function M1(Vt, w1) {
        var l1 = Vt.next();
        if (Wt[l1]) {
          var Yt = Wt[l1](Vt, w1);
          if (Yt !== !1)
            return Yt;
        }
        if (Tt.hexNumber && (l1 == "0" && Vt.match(/^[xX][0-9a-fA-F]+/) || (l1 == "x" || l1 == "X") && Vt.match(/^'[0-9a-fA-F]+'/)))
          return "number";
        if (Tt.binaryNumber && ((l1 == "b" || l1 == "B") && Vt.match(/^'[01]+'/) || l1 == "0" && Vt.match(/^b[01]+/)))
          return "number";
        if (l1.charCodeAt(0) > 47 && l1.charCodeAt(0) < 58)
          return Vt.match(/^[0-9]*(\.[0-9]+)?([eE][-+]?[0-9]+)?/), Tt.decimallessFloat && Vt.match(/^\.(?!\.)/), "number";
        if (l1 == "?" && (Vt.eatSpace() || Vt.eol() || Vt.eat(";")))
          return "variable-3";
        if (l1 == "'" || l1 == '"' && Tt.doubleQuote)
          return w1.tokenize = B1(l1), w1.tokenize(Vt, w1);
        if ((Tt.nCharCast && (l1 == "n" || l1 == "N") || Tt.charsetCast && l1 == "_" && Vt.match(/[a-z][a-z0-9]*/i)) && (Vt.peek() == "'" || Vt.peek() == '"'))
          return "keyword";
        if (Tt.escapeConstant && (l1 == "e" || l1 == "E") && (Vt.peek() == "'" || Vt.peek() == '"' && Tt.doubleQuote))
          return w1.tokenize = function(pr, wr) {
            return (wr.tokenize = B1(pr.next(), !0))(pr, wr);
          }, "keyword";
        if (Tt.commentSlashSlash && l1 == "/" && Vt.eat("/"))
          return Vt.skipToEnd(), "comment";
        if (Tt.commentHash && l1 == "#" || l1 == "-" && Vt.eat("-") && (!Tt.commentSpaceRequired || Vt.eat(" ")))
          return Vt.skipToEnd(), "comment";
        if (l1 == "/" && Vt.eat("*"))
          return w1.tokenize = V1(1), w1.tokenize(Vt, w1);
        if (l1 == ".") {
          if (Tt.zerolessFloat && Vt.match(/^(?:\d+(?:e[+-]?\d+)?)/i))
            return "number";
          if (Vt.match(/^\.+/))
            return null;
          if (Tt.ODBCdotTable && Vt.match(/^[\w\d_$#]+/))
            return "variable-2";
        } else {
          if (at.test(l1))
            return Vt.eatWhile(at), "operator";
          if (C1.test(l1))
            return "bracket";
          if (D1.test(l1))
            return Vt.eatWhile(D1), "punctuation";
          if (l1 == "{" && (Vt.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/) || Vt.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/)))
            return "number";
          Vt.eatWhile(/^[_\w\d]/);
          var Or = Vt.current().toLowerCase();
          return b1.hasOwnProperty(Or) && (Vt.match(/^( )+'[^']*'/) || Vt.match(/^( )+"[^"]*"/)) ? "number" : Z.hasOwnProperty(Or) ? "atom" : re.hasOwnProperty(Or) ? "type" : V.hasOwnProperty(Or) ? "keyword" : K.hasOwnProperty(Or) ? "builtin" : null;
        }
      }
      function B1(Vt, w1) {
        return function(l1, Yt) {
          for (var Or = !1, pr; (pr = l1.next()) != null; ) {
            if (pr == Vt && !Or) {
              Yt.tokenize = M1;
              break;
            }
            Or = (R1 || w1) && !Or && pr == "\\";
          }
          return "string";
        };
      }
      function V1(Vt) {
        return function(w1, l1) {
          var Yt = w1.match(/^.*?(\/\*|\*\/)/);
          return Yt ? Yt[1] == "/*" ? l1.tokenize = V1(Vt + 1) : Vt > 1 ? l1.tokenize = V1(Vt - 1) : l1.tokenize = M1 : w1.skipToEnd(), "comment";
        };
      }
      function Y1(Vt, w1, l1) {
        w1.context = {
          prev: w1.context,
          indent: Vt.indentation(),
          col: Vt.column(),
          type: l1
        };
      }
      function tn(Vt) {
        Vt.indent = Vt.context.indent, Vt.context = Vt.context.prev;
      }
      return {
        startState: function() {
          return { tokenize: M1, context: null };
        },
        token: function(Vt, w1) {
          if (Vt.sol() && w1.context && w1.context.align == null && (w1.context.align = !1), w1.tokenize == M1 && Vt.eatSpace())
            return null;
          var l1 = w1.tokenize(Vt, w1);
          if (l1 == "comment")
            return l1;
          w1.context && w1.context.align == null && (w1.context.align = !0);
          var Yt = Vt.current();
          return Yt == "(" ? Y1(Vt, w1, ")") : Yt == "[" ? Y1(Vt, w1, "]") : w1.context && w1.context.type == Yt && tn(w1), l1;
        },
        indent: function(Vt, w1) {
          var l1 = Vt.context;
          if (!l1)
            return a.Pass;
          var Yt = w1.charAt(0) == l1.type;
          return l1.align ? l1.col + (Yt ? 0 : 1) : l1.indent + (Yt ? 0 : U.indentUnit);
        },
        blockCommentStart: "/*",
        blockCommentEnd: "*/",
        lineComment: Tt.commentSlashSlash ? "//" : Tt.commentHash ? "#" : "--",
        closeBrackets: "()[]{}''\"\"``"
      };
    });
    function b(U) {
      for (var j; (j = U.next()) != null; )
        if (j == "`" && !U.eat("`"))
          return "variable-2";
      return U.backUp(U.current().length - 1), U.eatWhile(/\w/) ? "variable-2" : null;
    }
    function g(U) {
      for (var j; (j = U.next()) != null; )
        if (j == '"' && !U.eat('"'))
          return "variable-2";
      return U.backUp(U.current().length - 1), U.eatWhile(/\w/) ? "variable-2" : null;
    }
    function C(U) {
      return U.eat("@") && (U.match("session."), U.match("local."), U.match("global.")), U.eat("'") ? (U.match(/^.*'/), "variable-2") : U.eat('"') ? (U.match(/^.*"/), "variable-2") : U.eat("`") ? (U.match(/^.*`/), "variable-2") : U.match(/^[0-9a-zA-Z$\.\_]+/) ? "variable-2" : null;
    }
    function x(U) {
      return U.eat("N") ? "atom" : U.match(/^[a-zA-Z.#!?]/) ? "variable-2" : null;
    }
    var I = "alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit ";
    function P(U) {
      for (var j = {}, K = U.split(" "), Z = 0; Z < K.length; ++Z)
        j[K[Z]] = !0;
      return j;
    }
    var M = "bool boolean bit blob enum long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision real date datetime year unsigned signed decimal numeric";
    a.defineMIME("text/x-sql", {
      name: "sql",
      keywords: P(I + "begin"),
      builtin: P(M),
      atoms: P("false true null unknown"),
      dateSQL: P("date time timestamp"),
      support: P("ODBCdotTable doubleQuote binaryNumber hexNumber")
    }), a.defineMIME("text/x-mssql", {
      name: "sql",
      client: P("$partition binary_checksum checksum connectionproperty context_info current_request_id error_line error_message error_number error_procedure error_severity error_state formatmessage get_filestream_transaction_context getansinull host_id host_name isnull isnumeric min_active_rowversion newid newsequentialid rowcount_big xact_state object_id"),
      keywords: P(I + "begin trigger proc view index for add constraint key primary foreign collate clustered nonclustered declare exec go if use index holdlock nolock nowait paglock readcommitted readcommittedlock readpast readuncommitted repeatableread rowlock serializable snapshot tablock tablockx updlock with"),
      builtin: P("bigint numeric bit smallint decimal smallmoney int tinyint money float real char varchar text nchar nvarchar ntext binary varbinary image cursor timestamp hierarchyid uniqueidentifier sql_variant xml table "),
      atoms: P("is not null like and or in left right between inner outer join all any some cross unpivot pivot exists"),
      operatorChars: /^[*+\-%<>!=^\&|\/]/,
      brackets: /^[\{}\(\)]/,
      punctuation: /^[;.,:/]/,
      backslashStringEscapes: !1,
      dateSQL: P("date datetimeoffset datetime2 smalldatetime datetime time"),
      hooks: {
        "@": C
      }
    }), a.defineMIME("text/x-mysql", {
      name: "sql",
      client: P("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),
      keywords: P(I + "accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),
      builtin: P("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),
      atoms: P("false true null unknown"),
      operatorChars: /^[*+\-%<>!=&|^]/,
      dateSQL: P("date time timestamp"),
      support: P("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),
      hooks: {
        "@": C,
        "`": b,
        "\\": x
      }
    }), a.defineMIME("text/x-mariadb", {
      name: "sql",
      client: P("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),
      keywords: P(I + "accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group group_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),
      builtin: P("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),
      atoms: P("false true null unknown"),
      operatorChars: /^[*+\-%<>!=&|^]/,
      dateSQL: P("date time timestamp"),
      support: P("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),
      hooks: {
        "@": C,
        "`": b,
        "\\": x
      }
    }), a.defineMIME("text/x-sqlite", {
      name: "sql",
      client: P("auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width"),
      keywords: P(I + "abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without"),
      builtin: P("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real"),
      atoms: P("null current_date current_time current_timestamp"),
      operatorChars: /^[*+\-%<>!=&|/~]/,
      dateSQL: P("date time timestamp datetime"),
      support: P("decimallessFloat zerolessFloat"),
      identifierQuote: '"',
      hooks: {
        "@": C,
        ":": C,
        "?": C,
        $: C,
        '"': g,
        "`": b
      }
    }), a.defineMIME("text/x-cassandra", {
      name: "sql",
      client: {},
      keywords: P("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),
      builtin: P("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),
      atoms: P("false true infinity NaN"),
      operatorChars: /^[<>=]/,
      dateSQL: {},
      support: P("commentSlashSlash decimallessFloat"),
      hooks: {}
    }), a.defineMIME("text/x-plsql", {
      name: "sql",
      client: P("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),
      keywords: P("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),
      builtin: P("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),
      operatorChars: /^[*\/+\-%<>!=~]/,
      dateSQL: P("date time timestamp"),
      support: P("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")
    }), a.defineMIME("text/x-hive", {
      name: "sql",
      keywords: P("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year"),
      builtin: P("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar"),
      atoms: P("false true null unknown"),
      operatorChars: /^[*+\-%<>!=]/,
      dateSQL: P("date timestamp"),
      support: P("ODBCdotTable doubleQuote binaryNumber hexNumber")
    }), a.defineMIME("text/x-pgsql", {
      name: "sql",
      client: P("source"),
      keywords: P(I + "a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone"),
      builtin: P("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),
      atoms: P("false true null unknown"),
      operatorChars: /^[*\/+\-%<>!=&|^\/#@?~]/,
      backslashStringEscapes: !1,
      dateSQL: P("date time timestamp"),
      support: P("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant")
    }), a.defineMIME("text/x-gql", {
      name: "sql",
      keywords: P("ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where"),
      atoms: P("false true"),
      builtin: P("blob datetime first key __key__ string integer double boolean null"),
      operatorChars: /^[*+\-%<>!=]/
    }), a.defineMIME("text/x-gpsql", {
      name: "sql",
      client: P("source"),
      keywords: P("abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone"),
      builtin: P("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),
      atoms: P("false true null unknown"),
      operatorChars: /^[*+\-%<>!=&|^\/#@?~]/,
      dateSQL: P("date time timestamp"),
      support: P("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")
    }), a.defineMIME("text/x-sparksql", {
      name: "sql",
      keywords: P("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"),
      builtin: P("abs acos acosh add_months aggregate and any approx_count_distinct approx_percentile array array_contains array_distinct array_except array_intersect array_join array_max array_min array_position array_remove array_repeat array_sort array_union arrays_overlap arrays_zip ascii asin asinh assert_true atan atan2 atanh avg base64 between bigint bin binary bit_and bit_count bit_get bit_length bit_or bit_xor bool_and bool_or boolean bround btrim cardinality case cast cbrt ceil ceiling char char_length character_length chr coalesce collect_list collect_set concat concat_ws conv corr cos cosh cot count count_if count_min_sketch covar_pop covar_samp crc32 cume_dist current_catalog current_database current_date current_timestamp current_timezone current_user date date_add date_format date_from_unix_date date_part date_sub date_trunc datediff day dayofmonth dayofweek dayofyear decimal decode degrees delimited dense_rank div double e element_at elt encode every exists exp explode explode_outer expm1 extract factorial filter find_in_set first first_value flatten float floor forall format_number format_string from_csv from_json from_unixtime from_utc_timestamp get_json_object getbit greatest grouping grouping_id hash hex hour hypot if ifnull in initcap inline inline_outer input_file_block_length input_file_block_start input_file_name inputformat instr int isnan isnotnull isnull java_method json_array_length json_object_keys json_tuple kurtosis lag last last_day last_value lcase lead least left length levenshtein like ln locate log log10 log1p log2 lower lpad ltrim make_date make_dt_interval make_interval make_timestamp make_ym_interval map map_concat map_entries map_filter map_from_arrays map_from_entries map_keys map_values map_zip_with max max_by md5 mean min min_by minute mod monotonically_increasing_id month months_between named_struct nanvl negative next_day not now nth_value ntile nullif nvl nvl2 octet_length or outputformat overlay parse_url percent_rank percentile percentile_approx pi pmod posexplode posexplode_outer position positive pow power printf quarter radians raise_error rand randn random rank rcfile reflect regexp regexp_extract regexp_extract_all regexp_like regexp_replace repeat replace reverse right rint rlike round row_number rpad rtrim schema_of_csv schema_of_json second sentences sequence sequencefile serde session_window sha sha1 sha2 shiftleft shiftright shiftrightunsigned shuffle sign signum sin sinh size skewness slice smallint some sort_array soundex space spark_partition_id split sqrt stack std stddev stddev_pop stddev_samp str_to_map string struct substr substring substring_index sum tan tanh textfile timestamp timestamp_micros timestamp_millis timestamp_seconds tinyint to_csv to_date to_json to_timestamp to_unix_timestamp to_utc_timestamp transform transform_keys transform_values translate trim trunc try_add try_divide typeof ucase unbase64 unhex uniontype unix_date unix_micros unix_millis unix_seconds unix_timestamp upper uuid var_pop var_samp variance version weekday weekofyear when width_bucket window xpath xpath_boolean xpath_double xpath_float xpath_int xpath_long xpath_number xpath_short xpath_string xxhash64 year zip_with"),
      atoms: P("false true null"),
      operatorChars: /^[*\/+\-%<>!=~&|^]/,
      dateSQL: P("date time timestamp"),
      support: P("ODBCdotTable doubleQuote zerolessFloat")
    }), a.defineMIME("text/x-esper", {
      name: "sql",
      client: P("source"),
      keywords: P("alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window"),
      builtin: {},
      atoms: P("false true null"),
      operatorChars: /^[*+\-%<>!=&|^\/#@?~]/,
      dateSQL: P("time"),
      support: P("decimallessFloat zerolessFloat binaryNumber hexNumber")
    });
  });
})();
(function(s, n) {
  (function(a) {
    a(Au());
  })(function(a) {
    a.defineOption("autoRefresh", !1, function(C, x) {
      C.state.autoRefresh && (g(C, C.state.autoRefresh), C.state.autoRefresh = null), x && C.display.wrapper.offsetHeight == 0 && b(C, C.state.autoRefresh = { delay: x.delay || 250 });
    });
    function b(C, x) {
      function I() {
        C.display.wrapper.offsetHeight ? (g(C, x), C.display.lastWrapHeight != C.display.wrapper.clientHeight && C.refresh()) : x.timeout = setTimeout(I, x.delay);
      }
      x.timeout = setTimeout(I, x.delay), x.hurry = function() {
        clearTimeout(x.timeout), x.timeout = setTimeout(I, 50);
      }, a.on(window, "mouseup", x.hurry), a.on(window, "keyup", x.hurry);
    }
    function g(C, x) {
      clearTimeout(x.timeout), a.off(window, "mouseup", x.hurry), a.off(window, "keyup", x.hurry);
    }
  });
})();
var Vw = Au();
const Yw = { class: "h-48 flex flex-col justify-start border-b border-gray-200" }, Kw = { class: "flex flex-col flex-fixed h-full query-container" }, Xw = ["value"], Jw = { class: "flex justify-start flex-fixed my-2 px-2" }, Zw = {
  key: 0,
  class: "w-full bg-red-100",
  "data-cy": "alasql-error-msg"
}, Qw = /* @__PURE__ */ bl({
  __name: "QueryArea",
  props: {
    initialQuery: null,
    errors: null
  },
  emits: ["query-change", "run-query", "clear-query"],
  setup(s, { emit: n }) {
    const a = s, b = {
      theme: "eclipse",
      mode: "sql",
      lineNumbers: !1,
      autoRefresh: !0
    }, g = E3(), C = E3(), x = (I) => void n("query-change", I);
    return Ef(() => {
      g.value ? (C.value = Vw.fromTextArea(g.value, b), C.value.on("change", (I) => {
        x(I.getValue());
      }), x(C.value.getValue())) : console.error("Couldn't find codemirror textarea element");
    }), (I, P) => (B2(), ns(D5, null, [
      u2("div", Yw, [
        u2("div", Kw, [
          u2("textarea", {
            ref_key: "cmEl",
            ref: g,
            value: a.initialQuery
          }, null, 8, Xw),
          u2("div", Jw, [
            Ra(Bl, {
              onClick: P[0] || (P[0] = (M) => n("run-query")),
              icon: "fa fa-play",
              "data-cy": "btn-run-query",
              class: "w-28 dp-btn-primary"
            }, {
              default: zl(() => [
                cl(" Run Query ")
              ]),
              _: 1
            }),
            Ra(Bl, {
              onClick: P[1] || (P[1] = (M) => n("clear-query")),
              icon: "fa fa-undo",
              class: "ml-2 w-28 dp-btn-secondary-gray",
              "data-cy": "btn-reset-data"
            }, {
              default: zl(() => [
                cl(" Reset Data ")
              ]),
              _: 1
            })
          ])
        ])
      ]),
      a.errors ? (B2(), ns("div", Zw, o3(a.errors), 1)) : Y3("", !0)
    ], 64));
  }
});
var nu = { exports: {} };
(function(s, n) {
  (function(a, b) {
    s.exports = b();
  })(w3, function() {
    function a() {
      return null;
    }
    var b, g, C, x, I, P, M, U, j, K, Z, re, V, at, Tt, Wt, b1, R1, C1, D1, M1, B1, V1, Y1, tn, Vt, w1, l1, Yt, Or, pr, wr, rn, xn, nn, Mi, c2, gi, Sr, dn, Lr, Ai, Zn, Sn, ve, ye, Ae, de, Ee, ae, pe, Na, Da, Os, Ue, Le, we, Ze, ge, Be, We, he, Ve, Ge, qe, be, Re, Ie, oe, je, Fe, ke, me, De, Te, Oe, xe, Me, Ne, $e, Pe, _e, He, Ye, Ke, Ce, Xe, Je, Qe, fe, le, vi, ro, G2, _o, ks, q2, Ao, Is, c1, mr, Ro, no, hr, u1, f2, io, $i, or, W, ss, W2, Ct, I1, so, L2, Fi, Ri, Oo, E1, ko, os, as, Gt, $t, ot, it, mt, ta, yt, pt, vt, n1, i1, Nt, It, s1, Kt, v1, _t, wt, Mt, bt, Ft, Pt, gt, St, At, Dt, e1, t1, Xt, Jt, Et, xt, r1, o1, h1, Ut, qt, Ma, Kr, ra, sn, Pi, Gr, Oi, Ns, mi, ls, kr, Ds, $a, Qn, Pn, gr, bi, Er, Ci, ei, $r, Ln, Tn, q1, br, Un, yi, zn, pn, sr, wi, Bn, qr, on, ti, ri, _n, An, Hn, ni, ii, Rn, Gn, gn, Ir, cr, vn, an, Tr, Wr, qn, Ei, si, xi, oi, jr, ln, Zi, ar, Wn, j2, a1, c3, Fa, na, j1, On, us, V2, Ms, Pa, Io, Ui, T2, ce, st, ze, p1, $1, J1, un, vr, _2, $s, kn, h2, cs, zi, Fs, d2, Z1, ai, Qi, Bi, No, f3, ia, Y2, In, Ps, Us, fs, hs, zs, ki, Bs, p2, Fr, mn, Nn, Si, O1, ds, A2, oo, Hs, g2, K2, ao, Xr, Jr, Ua, ps, v2, gs, R2, m2, lo, O2, Li, uo, e2, Hi, za, bn, k2, h3, co, Do, Cr, Pr, B, lr, Gi, qi, H1, sa, Mo, Ba, b2, Ha, oa, d3, aa, $o, t2, la, C2, ua, fo, Dn, dr, I2, Ga, ca, Fo, li, G1, Ti, r2, Vr, ho, Gs, po, fa, vs, X2, Ii, ha, J2, ui, N2, n2, Po, Uo, qa, D2, zo, ms, Ni, Bo, da, Wa, go, y2, bs, Ho, Z2, ja, Cn, yn, pa, ga, yr, qs, Cs, M2, Go, Nr, i2, Ws, js, Vs, Q2, Ys, s2, ys, vo, p3, o2, va, Va, mo, bo, S = function(r, p, m, d) {
      if (p = p || [], typeof importScripts == "function" || !S.webworker)
        return arguments.length === 0 ? new $.Select({ columns: [new $.Column({ columnid: "*" })], from: [new $.ParamValue({ param: 0 })] }) : arguments.length === 1 && r.constructor === Array ? S.promise(r) : (typeof p == "function" && (d = m, m = p, p = []), typeof p != "object" && (p = [p]), typeof r == "string" && r[0] === "#" && typeof document == "object" ? r = document.querySelector(r).textContent : typeof r == "object" && r instanceof HTMLElement ? r = r.textContent : typeof r == "function" && (r = r.toString(), r = (/\/\*([\S\s]+)\*\//m.exec(r) || ["", "Function given as SQL. Plese Provide SQL string or have a /* ... */ syle comment with SQL in the function."])[1]), S.exec(r, p, m, d));
      d = S.lastid++, S.buffer[d] = m, S.webworker.postMessage({ id: d, sql: r, params: p });
    }, $2 = (S.version = "2.1.5-develop-eec33e2f", S.debug = void 0, er = [1, 108], nr = [1, 107], Sn = [10, 309, 605, 766], ve = [10, 309, 313, 605, 766], ye = [1, 115], Ae = [1, 116], de = [1, 117], Ee = [1, 118], ae = [1, 119], pe = [1, 120], Ks = [130, 356, 413], Na = [1, 128], Da = [1, 127], Os = [1, 135], Ue = [1, 165], Le = [1, 176], we = [1, 179], Ze = [1, 174], ge = [1, 182], Be = [1, 186], We = [1, 161], he = [1, 183], Ve = [1, 170], Ge = [1, 172], qe = [1, 175], be = [1, 184], Re = [1, 200], Ie = [1, 201], oe = [1, 167], je = [1, 194], Fe = [1, 189], ke = [1, 190], me = [1, 195], De = [1, 196], Te = [1, 197], Oe = [1, 198], xe = [1, 199], Me = [1, 202], Ne = [1, 203], $e = [1, 177], Pe = [1, 178], _e = [1, 180], He = [1, 181], Ye = [1, 187], Ke = [1, 193], Ce = [1, 185], Xe = [1, 188], Je = [1, 173], Qe = [1, 171], fe = [1, 192], le = [1, 204], vi = [2, 4, 5], ro = [2, 475], G2 = [1, 207], _o = [1, 212], ks = [1, 221], q2 = [1, 217], Ao = [10, 72, 78, 93, 98, 118, 128, 162, 168, 169, 183, 198, 232, 249, 251, 309, 313, 605, 766], Is = [2, 4, 5, 10, 72, 76, 77, 78, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 183, 185, 187, 198, 244, 245, 284, 285, 286, 287, 288, 289, 290, 309, 313, 423, 427, 605, 766], c1 = [2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], mr = [1, 250], Ro = [1, 257], no = [1, 266], hr = [1, 271], u1 = [1, 270], f2 = [2, 4, 5, 10, 72, 77, 78, 93, 98, 107, 118, 128, 131, 132, 137, 143, 145, 149, 152, 154, 156, 162, 168, 169, 179, 180, 181, 183, 198, 232, 244, 245, 249, 251, 269, 270, 274, 275, 277, 284, 285, 286, 287, 288, 289, 290, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 305, 306, 309, 313, 315, 320, 423, 427, 605, 766], io = [2, 162], $i = [1, 282], or = [10, 74, 78, 309, 313, 508, 605, 766], W = [2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 193, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 300, 303, 305, 309, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 346, 347, 359, 371, 372, 373, 376, 377, 389, 392, 399, 403, 404, 405, 406, 407, 408, 409, 411, 412, 420, 421, 423, 427, 429, 436, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 517, 518, 519, 520, 605, 766], ss = [2, 4, 5, 10, 53, 72, 89, 124, 146, 156, 189, 270, 271, 292, 309, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 508, 510, 511, 520, 605, 766], W2 = [1, 563], Ct = [1, 565], I1 = [2, 507], so = [1, 571], L2 = [1, 582], Fi = [1, 585], Ri = [1, 586], Oo = [10, 78, 89, 132, 137, 146, 189, 299, 309, 313, 473, 605, 766], E1 = [10, 74, 309, 313, 605, 766], ko = [2, 571], os = [1, 604], as = [2, 4, 5, 156], Gt = [1, 642], $t = [1, 614], ot = [1, 648], it = [1, 649], mt = [1, 622], ta = [1, 633], yt = [1, 620], pt = [1, 628], vt = [1, 621], n1 = [1, 629], i1 = [1, 631], Nt = [1, 623], It = [1, 624], s1 = [1, 643], Kt = [1, 640], v1 = [1, 641], _t = [1, 617], wt = [1, 619], Mt = [1, 611], bt = [1, 612], Ft = [1, 613], Pt = [1, 615], gt = [1, 616], St = [1, 618], At = [1, 625], Dt = [1, 626], e1 = [1, 630], t1 = [1, 632], Xt = [1, 634], Jt = [1, 635], Et = [1, 636], xt = [1, 637], r1 = [1, 638], o1 = [1, 644], h1 = [1, 645], Ut = [1, 646], qt = [1, 647], Ma = [2, 290], Kr = [2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 300, 303, 309, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 346, 359, 371, 372, 376, 377, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 429, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], ra = [2, 363], sn = [1, 670], Pi = [1, 680], Gr = [2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 429, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], Oi = [1, 696], Ns = [1, 705], mi = [1, 704], ls = [2, 4, 5, 10, 72, 74, 78, 93, 98, 118, 128, 162, 168, 169, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 249, 251, 309, 313, 605, 766], kr = [10, 72, 74, 78, 93, 98, 118, 128, 162, 168, 169, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 249, 251, 309, 313, 605, 766], Mn = [2, 202], E2 = [1, 727], Ds = [10, 72, 78, 93, 98, 118, 128, 162, 168, 169, 183, 232, 249, 251, 309, 313, 605, 766], F2 = [2, 163], Yr = [1, 730], $a = [2, 4, 5, 112], Qn = [1, 743], Pn = [1, 762], gr = [1, 742], bi = [1, 741], Er = [1, 736], Ci = [1, 737], ei = [1, 739], $r = [1, 740], Ln = [1, 744], Tn = [1, 745], q1 = [1, 746], br = [1, 747], Un = [1, 748], yi = [1, 749], zn = [1, 750], pn = [1, 751], sr = [1, 752], wi = [1, 753], Bn = [1, 754], qr = [1, 755], on = [1, 756], ti = [1, 757], ri = [1, 758], _n = [1, 759], An = [1, 761], Hn = [1, 763], ni = [1, 764], ii = [1, 765], Rn = [1, 766], Gn = [1, 767], gn = [1, 768], Ir = [1, 769], cr = [1, 772], vn = [1, 773], an = [1, 774], Tr = [1, 775], Wr = [1, 776], qn = [1, 777], Ei = [1, 778], si = [1, 779], xi = [1, 780], oi = [1, 781], jr = [1, 782], ln = [1, 783], Zi = [74, 89, 189], ar = [10, 74, 78, 154, 187, 230, 300, 309, 313, 346, 359, 371, 372, 376, 377, 605, 766], Wn = [1, 800], j2 = [10, 74, 78, 303, 309, 313, 605, 766], a1 = [1, 801], c3 = [1, 807], Fa = [1, 808], na = [1, 812], j1 = [10, 74, 78, 309, 313, 605, 766], On = [2, 4, 5, 77, 131, 132, 137, 143, 145, 149, 152, 154, 156, 179, 180, 181, 244, 245, 269, 270, 274, 275, 277, 284, 285, 286, 287, 288, 289, 290, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 305, 306, 315, 320, 423, 427], us = [10, 72, 78, 93, 98, 107, 118, 128, 162, 168, 169, 183, 198, 232, 249, 251, 309, 313, 605, 766], V2 = [2, 4, 5, 10, 72, 77, 78, 93, 98, 107, 118, 128, 131, 132, 137, 143, 145, 149, 152, 154, 156, 162, 164, 168, 169, 179, 180, 181, 183, 185, 187, 195, 198, 232, 244, 245, 249, 251, 269, 270, 274, 275, 277, 284, 285, 286, 287, 288, 289, 290, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 305, 306, 309, 313, 315, 320, 423, 427, 605, 766], Ms = [2, 4, 5, 132, 299], Pa = [1, 847], Io = [10, 74, 76, 78, 309, 313, 605, 766], Ui = [2, 742], T2 = [10, 74, 76, 78, 132, 139, 141, 145, 152, 309, 313, 423, 427, 605, 766], ce = [2, 1165], st = [10, 74, 76, 78, 139, 141, 145, 152, 309, 313, 423, 427, 605, 766], ze = [10, 74, 76, 78, 139, 141, 145, 309, 313, 423, 427, 605, 766], p1 = [10, 74, 78, 139, 141, 309, 313, 605, 766], $1 = [10, 78, 89, 132, 146, 189, 299, 309, 313, 473, 605, 766], J1 = [338, 341, 342], un = [2, 768], vr = [1, 872], _2 = [1, 873], $s = [1, 874], kn = [1, 875], h2 = [1, 884], cs = [1, 883], zi = [164, 166, 337], Fs = [2, 448], d2 = [1, 939], Z1 = [2, 4, 5, 77, 131, 156, 292, 293, 294, 295, 296], ai = [1, 954], Qi = [2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 118, 122, 124, 128, 129, 130, 131, 132, 134, 135, 137, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 314, 316, 317, 318, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], Bi = [2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 314, 315, 316, 317, 318, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], No = [2, 379], f3 = [1, 961], ia = [309, 311, 313], Y2 = [74, 303], In = [74, 303, 429], Ps = [1, 968], Us = [2, 4, 5, 10, 53, 72, 74, 76, 78, 89, 93, 95, 98, 99, 107, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], fs = [74, 429], hs = [1, 981], zs = [1, 980], ki = [1, 987], Bs = [10, 72, 78, 93, 98, 118, 128, 162, 168, 169, 232, 249, 251, 309, 313, 605, 766], p2 = [1, 1013], Fr = [10, 72, 78, 309, 313, 605, 766], mn = [1, 1019], Nn = [1, 1020], Si = [1, 1021], O1 = [2, 4, 5, 10, 72, 74, 76, 77, 78, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 198, 244, 245, 284, 285, 286, 287, 288, 289, 290, 309, 313, 423, 427, 605, 766], ds = [1, 1071], A2 = [1, 1070], oo = [1, 1084], Hs = [1, 1083], g2 = [1, 1091], K2 = [10, 72, 74, 78, 93, 98, 107, 118, 128, 162, 168, 169, 183, 198, 232, 249, 251, 309, 313, 605, 766], ao = [1, 1123], Xr = [10, 78, 89, 146, 189, 309, 313, 473, 605, 766], Jr = [1, 1143], Ua = [1, 1142], ps = [1, 1141], v2 = [2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 300, 303, 309, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 346, 359, 371, 372, 376, 377, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], gs = [1, 1157], R2 = [2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 118, 122, 124, 128, 129, 130, 131, 132, 134, 135, 137, 139, 140, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 314, 316, 317, 318, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], m2 = [2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 118, 122, 124, 128, 129, 130, 131, 132, 134, 135, 137, 139, 140, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 314, 316, 318, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], lo = [2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 118, 122, 124, 128, 129, 130, 131, 132, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 314, 316, 317, 318, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], O2 = [2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 118, 122, 124, 128, 129, 130, 131, 132, 134, 135, 137, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 314, 316, 317, 318, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], Li = [2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 118, 122, 124, 128, 129, 130, 131, 132, 134, 135, 137, 139, 140, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 317, 323, 324, 325, 326, 327, 328, 329, 333, 334, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], uo = [2, 410], e2 = [2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 107, 118, 122, 128, 129, 130, 131, 132, 134, 135, 137, 143, 145, 146, 148, 149, 150, 152, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 317, 333, 334, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], Hi = [2, 288], za = [2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 429, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], bn = [10, 78, 309, 313, 605, 766], k2 = [1, 1193], h3 = [10, 77, 78, 143, 145, 152, 181, 305, 309, 313, 423, 427, 605, 766], co = [10, 74, 78, 309, 311, 313, 467, 605, 766], Do = [1, 1204], Cr = [10, 72, 78, 118, 128, 162, 168, 169, 232, 249, 251, 309, 313, 605, 766], Pr = [10, 72, 74, 78, 93, 98, 118, 128, 162, 168, 169, 183, 198, 232, 249, 251, 309, 313, 605, 766], B = [2, 4, 5, 72, 76, 77, 78, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 185, 187, 244, 245, 284, 285, 286, 287, 288, 289, 290, 423, 427], lr = [2, 4, 5, 72, 74, 76, 77, 78, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 185, 187, 244, 245, 284, 285, 286, 287, 288, 289, 290, 423, 427], Gi = [2, 1089], qi = [2, 4, 5, 72, 74, 76, 77, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 185, 187, 244, 245, 284, 285, 286, 287, 288, 289, 290, 423, 427], H1 = [1, 1256], sa = [10, 74, 78, 128, 309, 311, 313, 467, 605, 766], Mo = [115, 116, 124], Ba = [2, 588], b2 = [1, 1285], Ha = [76, 139], oa = [2, 728], d3 = [1, 1302], aa = [1, 1303], $o = [2, 4, 5, 10, 53, 72, 76, 89, 124, 146, 156, 189, 230, 270, 271, 292, 309, 313, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 508, 510, 511, 520, 605, 766], t2 = [2, 333], la = [1, 1327], C2 = [1, 1341], ua = [1, 1343], fo = [2, 491], Dn = [74, 78], dr = [10, 309, 311, 313, 467, 605, 766], I2 = [10, 72, 78, 118, 162, 168, 169, 232, 249, 251, 309, 313, 605, 766], Ga = [1, 1359], ca = [1, 1363], Fo = [1, 1364], li = [1, 1366], G1 = [1, 1367], Ti = [1, 1368], r2 = [1, 1369], Vr = [1, 1370], ho = [1, 1371], Gs = [1, 1372], po = [1, 1373], fa = [10, 72, 74, 78, 93, 98, 118, 128, 162, 168, 169, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 249, 251, 309, 313, 605, 766], vs = [1, 1398], X2 = [10, 72, 78, 118, 162, 168, 169, 249, 251, 309, 313, 605, 766], Ii = [10, 72, 78, 93, 98, 118, 128, 162, 168, 169, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 249, 251, 309, 313, 605, 766], ha = [1, 1496], J2 = [1, 1498], ui = [2, 4, 5, 77, 143, 145, 152, 156, 181, 292, 293, 294, 295, 296, 305, 423, 427], N2 = [1, 1512], n2 = [10, 72, 74, 78, 162, 168, 169, 249, 251, 309, 313, 605, 766], Po = [1, 1530], Uo = [1, 1532], qa = [1, 1533], D2 = [1, 1529], zo = [1, 1528], ms = [1, 1527], Ni = [1, 1534], Bo = [1, 1524], da = [1, 1525], Wa = [1, 1526], go = [1, 1552], y2 = [2, 4, 5, 10, 53, 72, 89, 124, 146, 156, 189, 270, 271, 292, 309, 313, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 508, 510, 511, 520, 605, 766], bs = [1, 1563], Ho = [1, 1571], Z2 = [1, 1570], ja = [10, 72, 78, 162, 168, 169, 249, 251, 309, 313, 605, 766], Cn = [10, 72, 78, 93, 98, 118, 128, 162, 168, 169, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 249, 251, 309, 313, 605, 766], yn = [2, 4, 5, 10, 72, 78, 93, 98, 118, 128, 162, 168, 169, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 249, 251, 309, 313, 605, 766], pa = [1, 1631], ga = [1, 1633], yr = [1, 1630], qs = [1, 1632], Cs = [187, 193, 371, 372, 373, 376], M2 = [2, 519], Go = [1, 1638], Nr = [1, 1657], i2 = [10, 72, 78, 162, 168, 169, 309, 313, 605, 766], Ws = [1, 1667], js = [1, 1668], Vs = [1, 1669], Q2 = [1, 1690], Ys = [4, 10, 247, 309, 313, 346, 359, 605, 766], s2 = [1, 1738], ys = [10, 72, 74, 78, 118, 162, 168, 169, 239, 249, 251, 309, 313, 605, 766], vo = [2, 4, 5, 77], p3 = [1, 1832], o2 = [1, 1844], va = [1, 1863], Va = [10, 72, 78, 162, 168, 169, 309, 313, 418, 605, 766], mo = [10, 74, 78, 230, 309, 313, 605, 766], I = { trace: function() {
    }, yy: {}, symbols_: { error: 2, Literal: 3, LITERAL: 4, BRALITERAL: 5, NonReserved: 6, LiteralWithSpaces: 7, main: 8, Statements: 9, EOF: 10, Statements_group0: 11, AStatement: 12, ExplainStatement: 13, EXPLAIN: 14, QUERY: 15, PLAN: 16, Statement: 17, AlterTable: 18, AttachDatabase: 19, Call: 20, CreateDatabase: 21, CreateIndex: 22, CreateGraph: 23, CreateTable: 24, CreateView: 25, CreateEdge: 26, CreateVertex: 27, Declare: 28, Delete: 29, DetachDatabase: 30, DropDatabase: 31, DropIndex: 32, DropTable: 33, DropView: 34, If: 35, Insert: 36, Merge: 37, Reindex: 38, RenameTable: 39, Select: 40, ShowCreateTable: 41, ShowColumns: 42, ShowDatabases: 43, ShowIndex: 44, ShowTables: 45, TruncateTable: 46, WithSelect: 47, CreateTrigger: 48, DropTrigger: 49, BeginTransaction: 50, CommitTransaction: 51, RollbackTransaction: 52, EndTransaction: 53, UseDatabase: 54, Update: 55, JavaScript: 56, Source: 57, Assert: 58, While: 59, Continue: 60, Break: 61, BeginEnd: 62, Print: 63, Require: 64, SetVariable: 65, ExpressionStatement: 66, AddRule: 67, Query: 68, Echo: 69, CreateFunction: 70, CreateAggregate: 71, WITH: 72, WithTablesList: 73, COMMA: 74, WithTable: 75, AS: 76, LPAR: 77, RPAR: 78, SelectClause: 79, Select_option0: 80, IntoClause: 81, FromClause: 82, Select_option1: 83, WhereClause: 84, GroupClause: 85, OrderClause: 86, LimitClause: 87, UnionClause: 88, SEARCH: 89, Select_repetition0: 90, Select_option2: 91, PivotClause: 92, PIVOT: 93, Expression: 94, FOR: 95, PivotClause_option0: 96, PivotClause_option1: 97, UNPIVOT: 98, IN: 99, ColumnsList: 100, PivotClause_option2: 101, PivotClause2: 102, AsList: 103, AsLiteral: 104, AsPart: 105, RemoveClause: 106, REMOVE: 107, RemoveClause_option0: 108, RemoveColumnsList: 109, RemoveColumn: 110, Column: 111, LIKE: 112, StringValue: 113, ArrowDot: 114, ARROW: 115, DOT: 116, SearchSelector: 117, ORDER: 118, BY: 119, OrderExpressionsList: 120, SearchSelector_option0: 121, DOTDOT: 122, CARET: 123, EQ: 124, SearchSelector_repetition_plus0: 125, SearchSelector_repetition_plus1: 126, SearchSelector_option1: 127, WHERE: 128, OF: 129, CLASS: 130, NUMBER: 131, STRING: 132, SLASH: 133, VERTEX: 134, EDGE: 135, EXCLAMATION: 136, SHARP: 137, MODULO: 138, GT: 139, LT: 140, GTGT: 141, LTLT: 142, DOLLAR: 143, Json: 144, AT: 145, SET: 146, SetColumnsList: 147, TO: 148, VALUE: 149, ROW: 150, ExprList: 151, COLON: 152, PlusStar: 153, NOT: 154, SearchSelector_repetition2: 155, IF: 156, SearchSelector_repetition3: 157, Aggregator: 158, SearchSelector_repetition4: 159, SearchSelector_group0: 160, SearchSelector_repetition5: 161, UNION: 162, SearchSelectorList: 163, ALL: 164, SearchSelector_repetition6: 165, ANY: 166, SearchSelector_repetition7: 167, INTERSECT: 168, EXCEPT: 169, AND: 170, OR: 171, PATH: 172, RETURN: 173, ResultColumns: 174, REPEAT: 175, SearchSelector_repetition8: 176, SearchSelectorList_repetition0: 177, SearchSelectorList_repetition1: 178, PLUS: 179, STAR: 180, QUESTION: 181, SearchFrom: 182, FROM: 183, SelectModifier: 184, DISTINCT: 185, TopClause: 186, UNIQUE: 187, SelectClause_option0: 188, SELECT: 189, COLUMN: 190, MATRIX: 191, TEXTSTRING: 192, INDEX: 193, RECORDSET: 194, TOP: 195, NumValue: 196, TopClause_option0: 197, INTO: 198, Table: 199, FuncValue: 200, ParamValue: 201, VarValue: 202, FromTablesList: 203, JoinTablesList: 204, ApplyClause: 205, CROSS: 206, APPLY: 207, OUTER: 208, FromTable: 209, FromTable_option0: 210, FromTable_option1: 211, INDEXED: 212, INSERTED: 213, FromString: 214, JoinTable: 215, JoinMode: 216, JoinTableAs: 217, OnClause: 218, JoinTableAs_option0: 219, JoinTableAs_option1: 220, JoinModeMode: 221, NATURAL: 222, JOIN: 223, INNER: 224, LEFT: 225, RIGHT: 226, FULL: 227, SEMI: 228, ANTI: 229, ON: 230, USING: 231, GROUP: 232, GroupExpressionsList: 233, HavingClause: 234, GroupExpression: 235, GROUPING: 236, ROLLUP: 237, CUBE: 238, HAVING: 239, CORRESPONDING: 240, OrderExpression: 241, NullsOrder: 242, NULLS: 243, FIRST: 244, LAST: 245, DIRECTION: 246, COLLATE: 247, NOCASE: 248, LIMIT: 249, OffsetClause: 250, OFFSET: 251, LimitClause_option0: 252, FETCH: 253, LimitClause_option1: 254, LimitClause_option2: 255, LimitClause_option3: 256, ResultColumn: 257, Star: 258, AggrValue: 259, Op: 260, LogicValue: 261, NullValue: 262, ExistsValue: 263, CaseValue: 264, CastClause: 265, ArrayValue: 266, NewClause: 267, Expression_group0: 268, CURRENT_TIMESTAMP: 269, JAVASCRIPT: 270, CREATE: 271, FUNCTION: 272, AGGREGATE: 273, NEW: 274, CAST: 275, ColumnType: 276, CONVERT: 277, PrimitiveValue: 278, OverClause: 279, OVER: 280, OverPartitionClause: 281, OverOrderByClause: 282, PARTITION: 283, SUM: 284, COUNT: 285, MIN: 286, MAX: 287, AVG: 288, AGGR: 289, ARRAY: 290, FuncValue_option0: 291, REPLACE: 292, DATEADD: 293, DATEDIFF: 294, TIMESTAMPDIFF: 295, INTERVAL: 296, TRUE: 297, FALSE: 298, NSTRING: 299, NULL: 300, EXISTS: 301, ARRAYLBRA: 302, RBRA: 303, ParamValue_group0: 304, BRAQUESTION: 305, CASE: 306, WhensList: 307, ElseClause: 308, END: 309, When: 310, WHEN: 311, THEN: 312, ELSE: 313, REGEXP: 314, TILDA: 315, GLOB: 316, ESCAPE: 317, NOT_LIKE: 318, BARBAR: 319, MINUS: 320, AMPERSAND: 321, BAR: 322, GE: 323, LE: 324, EQEQ: 325, EQEQEQ: 326, NE: 327, NEEQEQ: 328, NEEQEQEQ: 329, CondOp: 330, AllSome: 331, ColFunc: 332, BETWEEN: 333, NOT_BETWEEN: 334, IS: 335, DOUBLECOLON: 336, SOME: 337, UPDATE: 338, SetColumn: 339, SetColumn_group0: 340, DELETE: 341, INSERT: 342, Into: 343, Values: 344, ValuesListsList: 345, DEFAULT: 346, VALUES: 347, ValuesList: 348, Value: 349, DateValue: 350, TemporaryClause: 351, TableClass: 352, IfNotExists: 353, CreateTableDefClause: 354, CreateTableOptionsClause: 355, TABLE: 356, CreateTableOptions: 357, CreateTableOption: 358, IDENTITY: 359, TEMP: 360, ColumnDefsList: 361, ConstraintsList: 362, Constraint: 363, ConstraintName: 364, PrimaryKey: 365, ForeignKey: 366, UniqueKey: 367, IndexKey: 368, Check: 369, CONSTRAINT: 370, CHECK: 371, PRIMARY: 372, KEY: 373, PrimaryKey_option0: 374, ColsList: 375, FOREIGN: 376, REFERENCES: 377, ForeignKey_option0: 378, OnForeignKeyClause: 379, ParColsList: 380, OnDeleteClause: 381, OnUpdateClause: 382, NO: 383, ACTION: 384, UniqueKey_option0: 385, UniqueKey_option1: 386, ColumnDef: 387, ColumnConstraintsClause: 388, ColumnConstraints: 389, SingularColumnType: 390, NumberMax: 391, ENUM: 392, MAXNUM: 393, ColumnConstraintsList: 394, ColumnConstraint: 395, ParLiteral: 396, ColumnConstraint_option0: 397, ColumnConstraint_option1: 398, DROP: 399, DropTable_group0: 400, IfExists: 401, TablesList: 402, ALTER: 403, RENAME: 404, ADD: 405, MODIFY: 406, ATTACH: 407, DATABASE: 408, DETACH: 409, AsClause: 410, USE: 411, SHOW: 412, VIEW: 413, CreateView_option0: 414, CreateView_option1: 415, SubqueryRestriction: 416, READ: 417, ONLY: 418, OPTION: 419, SOURCE: 420, ASSERT: 421, JsonObject: 422, ATLBRA: 423, JsonArray: 424, JsonValue: 425, JsonPrimitiveValue: 426, LCUR: 427, JsonPropertiesList: 428, RCUR: 429, JsonElementsList: 430, JsonProperty: 431, OnOff: 432, SetPropsList: 433, AtDollar: 434, SetProp: 435, OFF: 436, COMMIT: 437, TRANSACTION: 438, ROLLBACK: 439, BEGIN: 440, ElseStatement: 441, WHILE: 442, CONTINUE: 443, BREAK: 444, PRINT: 445, REQUIRE: 446, StringValuesList: 447, PluginsList: 448, Plugin: 449, ECHO: 450, DECLARE: 451, DeclaresList: 452, DeclareItem: 453, TRUNCATE: 454, MERGE: 455, MergeInto: 456, MergeUsing: 457, MergeOn: 458, MergeMatchedList: 459, OutputClause: 460, MergeMatched: 461, MergeNotMatched: 462, MATCHED: 463, MergeMatchedAction: 464, MergeNotMatchedAction: 465, TARGET: 466, OUTPUT: 467, CreateVertex_option0: 468, CreateVertex_option1: 469, CreateVertex_option2: 470, CreateVertexSet: 471, SharpValue: 472, CONTENT: 473, CreateEdge_option0: 474, GRAPH: 475, GraphList: 476, GraphVertexEdge: 477, GraphElement: 478, GraphVertexEdge_option0: 479, GraphVertexEdge_option1: 480, GraphElementVar: 481, GraphVertexEdge_option2: 482, GraphVertexEdge_option3: 483, GraphVertexEdge_option4: 484, GraphVar: 485, GraphAsClause: 486, GraphAtClause: 487, GraphElement2: 488, GraphElement2_option0: 489, GraphElement2_option1: 490, GraphElement2_option2: 491, GraphElement2_option3: 492, GraphElement_option0: 493, GraphElement_option1: 494, GraphElement_option2: 495, SharpLiteral: 496, GraphElement_option3: 497, GraphElement_option4: 498, GraphElement_option5: 499, ColonLiteral: 500, DeleteVertex: 501, DeleteVertex_option0: 502, DeleteEdge: 503, DeleteEdge_option0: 504, DeleteEdge_option1: 505, DeleteEdge_option2: 506, Term: 507, COLONDASH: 508, TermsList: 509, QUESTIONDASH: 510, CALL: 511, TRIGGER: 512, BeforeAfter: 513, InsertDeleteUpdate: 514, CreateTrigger_option0: 515, CreateTrigger_option1: 516, BEFORE: 517, AFTER: 518, INSTEAD: 519, REINDEX: 520, A: 521, ABSENT: 522, ABSOLUTE: 523, ACCORDING: 524, ADA: 525, ADMIN: 526, ALWAYS: 527, ASC: 528, ASSERTION: 529, ASSIGNMENT: 530, ATTRIBUTE: 531, ATTRIBUTES: 532, BASE64: 533, BERNOULLI: 534, BLOCKED: 535, BOM: 536, BREADTH: 537, C: 538, CASCADE: 539, CATALOG: 540, CATALOG_NAME: 541, CHAIN: 542, CHARACTERISTICS: 543, CHARACTERS: 544, CHARACTER_SET_CATALOG: 545, CHARACTER_SET_NAME: 546, CHARACTER_SET_SCHEMA: 547, CLASS_ORIGIN: 548, COBOL: 549, COLLATION: 550, COLLATION_CATALOG: 551, COLLATION_NAME: 552, COLLATION_SCHEMA: 553, COLUMNS: 554, COLUMN_NAME: 555, COMMAND_FUNCTION: 556, COMMAND_FUNCTION_CODE: 557, COMMITTED: 558, CONDITION_NUMBER: 559, CONNECTION: 560, CONNECTION_NAME: 561, CONSTRAINTS: 562, CONSTRAINT_CATALOG: 563, CONSTRAINT_NAME: 564, CONSTRAINT_SCHEMA: 565, CONSTRUCTOR: 566, CONTROL: 567, CURSOR_NAME: 568, DATA: 569, DATETIME_INTERVAL_CODE: 570, DATETIME_INTERVAL_PRECISION: 571, DB: 572, DEFAULTS: 573, DEFERRABLE: 574, DEFERRED: 575, DEFINED: 576, DEFINER: 577, DEGREE: 578, DEPTH: 579, DERIVED: 580, DESC: 581, DESCRIPTOR: 582, DIAGNOSTICS: 583, DISPATCH: 584, DOCUMENT: 585, DOMAIN: 586, DYNAMIC_FUNCTION: 587, DYNAMIC_FUNCTION_CODE: 588, EMPTY: 589, ENCODING: 590, ENFORCED: 591, EXCLUDE: 592, EXCLUDING: 593, EXPRESSION: 594, FILE: 595, FINAL: 596, FLAG: 597, FOLLOWING: 598, FORTRAN: 599, FOUND: 600, FS: 601, G: 602, GENERAL: 603, GENERATED: 604, GO: 605, GOTO: 606, GRANTED: 607, HEX: 608, HIERARCHY: 609, ID: 610, IGNORE: 611, IMMEDIATE: 612, IMMEDIATELY: 613, IMPLEMENTATION: 614, INCLUDING: 615, INCREMENT: 616, INDENT: 617, INITIALLY: 618, INPUT: 619, INSTANCE: 620, INSTANTIABLE: 621, INTEGRITY: 622, INVOKER: 623, ISOLATION: 624, K: 625, KEY_MEMBER: 626, KEY_TYPE: 627, LENGTH: 628, LEVEL: 629, LIBRARY: 630, LINK: 631, LOCATION: 632, LOCATOR: 633, M: 634, MAP: 635, MAPPING: 636, MAXVALUE: 637, MESSAGE_LENGTH: 638, MESSAGE_OCTET_LENGTH: 639, MESSAGE_TEXT: 640, MINVALUE: 641, MORE: 642, MUMPS: 643, NAME: 644, NAMES: 645, NAMESPACE: 646, NESTING: 647, NEXT: 648, NFC: 649, NFD: 650, NFKC: 651, NFKD: 652, NIL: 653, NORMALIZED: 654, NULLABLE: 655, OBJECT: 656, OCTETS: 657, OPTIONS: 658, ORDERING: 659, ORDINALITY: 660, OTHERS: 661, OVERRIDING: 662, P: 663, PAD: 664, PARAMETER_MODE: 665, PARAMETER_NAME: 666, PARAMETER_ORDINAL_POSITION: 667, PARAMETER_SPECIFIC_CATALOG: 668, PARAMETER_SPECIFIC_NAME: 669, PARAMETER_SPECIFIC_SCHEMA: 670, PARTIAL: 671, PASCAL: 672, PASSING: 673, PASSTHROUGH: 674, PERMISSION: 675, PLACING: 676, PLI: 677, PRECEDING: 678, PRESERVE: 679, PRIOR: 680, PRIVILEGES: 681, PUBLIC: 682, RECOVERY: 683, RELATIVE: 684, REPEATABLE: 685, REQUIRING: 686, RESPECT: 687, RESTART: 688, RESTORE: 689, RESTRICT: 690, RETURNED_CARDINALITY: 691, RETURNED_LENGTH: 692, RETURNED_OCTET_LENGTH: 693, RETURNED_SQLSTATE: 694, RETURNING: 695, ROLE: 696, ROUTINE: 697, ROUTINE_CATALOG: 698, ROUTINE_NAME: 699, ROUTINE_SCHEMA: 700, ROW_COUNT: 701, SCALE: 702, SCHEMA: 703, SCHEMA_NAME: 704, SCOPE_CATALOG: 705, SCOPE_NAME: 706, SCOPE_SCHEMA: 707, SECTION: 708, SECURITY: 709, SELECTIVE: 710, SELF: 711, SEQUENCE: 712, SERIALIZABLE: 713, SERVER: 714, SERVER_NAME: 715, SESSION: 716, SETS: 717, SIMPLE: 718, SIZE: 719, SPACE: 720, SPECIFIC_NAME: 721, STANDALONE: 722, STATE: 723, STATEMENT: 724, STRIP: 725, STRUCTURE: 726, STYLE: 727, SUBCLASS_ORIGIN: 728, T: 729, TABLE_NAME: 730, TEMPORARY: 731, TIES: 732, TOKEN: 733, TOP_LEVEL_COUNT: 734, TRANSACTIONS_COMMITTED: 735, TRANSACTIONS_ROLLED_BACK: 736, TRANSACTION_ACTIVE: 737, TRANSFORM: 738, TRANSFORMS: 739, TRIGGER_CATALOG: 740, TRIGGER_NAME: 741, TRIGGER_SCHEMA: 742, TYPE: 743, UNBOUNDED: 744, UNCOMMITTED: 745, UNDER: 746, UNLINK: 747, UNNAMED: 748, UNTYPED: 749, URI: 750, USAGE: 751, USER_DEFINED_TYPE_CATALOG: 752, USER_DEFINED_TYPE_CODE: 753, USER_DEFINED_TYPE_NAME: 754, USER_DEFINED_TYPE_SCHEMA: 755, VALID: 756, VERSION: 757, WHITESPACE: 758, WORK: 759, WRAPPER: 760, WRITE: 761, XMLDECLARATION: 762, XMLSCHEMA: 763, YES: 764, ZONE: 765, SEMICOLON: 766, PERCENT: 767, ROWS: 768, FuncValue_option0_group0: 769, $accept: 0, $end: 1 }, terminals_: { 2: "error", 4: "LITERAL", 5: "BRALITERAL", 10: "EOF", 14: "EXPLAIN", 15: "QUERY", 16: "PLAN", 53: "EndTransaction", 72: "WITH", 74: "COMMA", 76: "AS", 77: "LPAR", 78: "RPAR", 89: "SEARCH", 93: "PIVOT", 95: "FOR", 98: "UNPIVOT", 99: "IN", 107: "REMOVE", 112: "LIKE", 115: "ARROW", 116: "DOT", 118: "ORDER", 119: "BY", 122: "DOTDOT", 123: "CARET", 124: "EQ", 128: "WHERE", 129: "OF", 130: "CLASS", 131: "NUMBER", 132: "STRING", 133: "SLASH", 134: "VERTEX", 135: "EDGE", 136: "EXCLAMATION", 137: "SHARP", 138: "MODULO", 139: "GT", 140: "LT", 141: "GTGT", 142: "LTLT", 143: "DOLLAR", 145: "AT", 146: "SET", 148: "TO", 149: "VALUE", 150: "ROW", 152: "COLON", 154: "NOT", 156: "IF", 162: "UNION", 164: "ALL", 166: "ANY", 168: "INTERSECT", 169: "EXCEPT", 170: "AND", 171: "OR", 172: "PATH", 173: "RETURN", 175: "REPEAT", 179: "PLUS", 180: "STAR", 181: "QUESTION", 183: "FROM", 185: "DISTINCT", 187: "UNIQUE", 189: "SELECT", 190: "COLUMN", 191: "MATRIX", 192: "TEXTSTRING", 193: "INDEX", 194: "RECORDSET", 195: "TOP", 198: "INTO", 206: "CROSS", 207: "APPLY", 208: "OUTER", 212: "INDEXED", 213: "INSERTED", 222: "NATURAL", 223: "JOIN", 224: "INNER", 225: "LEFT", 226: "RIGHT", 227: "FULL", 228: "SEMI", 229: "ANTI", 230: "ON", 231: "USING", 232: "GROUP", 236: "GROUPING", 237: "ROLLUP", 238: "CUBE", 239: "HAVING", 240: "CORRESPONDING", 243: "NULLS", 244: "FIRST", 245: "LAST", 246: "DIRECTION", 247: "COLLATE", 248: "NOCASE", 249: "LIMIT", 251: "OFFSET", 253: "FETCH", 269: "CURRENT_TIMESTAMP", 270: "JAVASCRIPT", 271: "CREATE", 272: "FUNCTION", 273: "AGGREGATE", 274: "NEW", 275: "CAST", 277: "CONVERT", 280: "OVER", 283: "PARTITION", 284: "SUM", 285: "COUNT", 286: "MIN", 287: "MAX", 288: "AVG", 289: "AGGR", 290: "ARRAY", 292: "REPLACE", 293: "DATEADD", 294: "DATEDIFF", 295: "TIMESTAMPDIFF", 296: "INTERVAL", 297: "TRUE", 298: "FALSE", 299: "NSTRING", 300: "NULL", 301: "EXISTS", 302: "ARRAYLBRA", 303: "RBRA", 305: "BRAQUESTION", 306: "CASE", 309: "END", 311: "WHEN", 312: "THEN", 313: "ELSE", 314: "REGEXP", 315: "TILDA", 316: "GLOB", 317: "ESCAPE", 318: "NOT_LIKE", 319: "BARBAR", 320: "MINUS", 321: "AMPERSAND", 322: "BAR", 323: "GE", 324: "LE", 325: "EQEQ", 326: "EQEQEQ", 327: "NE", 328: "NEEQEQ", 329: "NEEQEQEQ", 333: "BETWEEN", 334: "NOT_BETWEEN", 335: "IS", 336: "DOUBLECOLON", 337: "SOME", 338: "UPDATE", 341: "DELETE", 342: "INSERT", 346: "DEFAULT", 347: "VALUES", 350: "DateValue", 356: "TABLE", 359: "IDENTITY", 360: "TEMP", 370: "CONSTRAINT", 371: "CHECK", 372: "PRIMARY", 373: "KEY", 376: "FOREIGN", 377: "REFERENCES", 383: "NO", 384: "ACTION", 389: "ColumnConstraints", 392: "ENUM", 393: "MAXNUM", 399: "DROP", 403: "ALTER", 404: "RENAME", 405: "ADD", 406: "MODIFY", 407: "ATTACH", 408: "DATABASE", 409: "DETACH", 411: "USE", 412: "SHOW", 413: "VIEW", 417: "READ", 418: "ONLY", 419: "OPTION", 420: "SOURCE", 421: "ASSERT", 423: "ATLBRA", 427: "LCUR", 429: "RCUR", 436: "OFF", 437: "COMMIT", 438: "TRANSACTION", 439: "ROLLBACK", 440: "BEGIN", 442: "WHILE", 443: "CONTINUE", 444: "BREAK", 445: "PRINT", 446: "REQUIRE", 450: "ECHO", 451: "DECLARE", 454: "TRUNCATE", 455: "MERGE", 463: "MATCHED", 466: "TARGET", 467: "OUTPUT", 473: "CONTENT", 475: "GRAPH", 508: "COLONDASH", 510: "QUESTIONDASH", 511: "CALL", 512: "TRIGGER", 517: "BEFORE", 518: "AFTER", 519: "INSTEAD", 520: "REINDEX", 521: "A", 522: "ABSENT", 523: "ABSOLUTE", 524: "ACCORDING", 525: "ADA", 526: "ADMIN", 527: "ALWAYS", 528: "ASC", 529: "ASSERTION", 530: "ASSIGNMENT", 531: "ATTRIBUTE", 532: "ATTRIBUTES", 533: "BASE64", 534: "BERNOULLI", 535: "BLOCKED", 536: "BOM", 537: "BREADTH", 538: "C", 539: "CASCADE", 540: "CATALOG", 541: "CATALOG_NAME", 542: "CHAIN", 543: "CHARACTERISTICS", 544: "CHARACTERS", 545: "CHARACTER_SET_CATALOG", 546: "CHARACTER_SET_NAME", 547: "CHARACTER_SET_SCHEMA", 548: "CLASS_ORIGIN", 549: "COBOL", 550: "COLLATION", 551: "COLLATION_CATALOG", 552: "COLLATION_NAME", 553: "COLLATION_SCHEMA", 554: "COLUMNS", 555: "COLUMN_NAME", 556: "COMMAND_FUNCTION", 557: "COMMAND_FUNCTION_CODE", 558: "COMMITTED", 559: "CONDITION_NUMBER", 560: "CONNECTION", 561: "CONNECTION_NAME", 562: "CONSTRAINTS", 563: "CONSTRAINT_CATALOG", 564: "CONSTRAINT_NAME", 565: "CONSTRAINT_SCHEMA", 566: "CONSTRUCTOR", 567: "CONTROL", 568: "CURSOR_NAME", 569: "DATA", 570: "DATETIME_INTERVAL_CODE", 571: "DATETIME_INTERVAL_PRECISION", 572: "DB", 573: "DEFAULTS", 574: "DEFERRABLE", 575: "DEFERRED", 576: "DEFINED", 577: "DEFINER", 578: "DEGREE", 579: "DEPTH", 580: "DERIVED", 581: "DESC", 582: "DESCRIPTOR", 583: "DIAGNOSTICS", 584: "DISPATCH", 585: "DOCUMENT", 586: "DOMAIN", 587: "DYNAMIC_FUNCTION", 588: "DYNAMIC_FUNCTION_CODE", 589: "EMPTY", 590: "ENCODING", 591: "ENFORCED", 592: "EXCLUDE", 593: "EXCLUDING", 594: "EXPRESSION", 595: "FILE", 596: "FINAL", 597: "FLAG", 598: "FOLLOWING", 599: "FORTRAN", 600: "FOUND", 601: "FS", 602: "G", 603: "GENERAL", 604: "GENERATED", 605: "GO", 606: "GOTO", 607: "GRANTED", 608: "HEX", 609: "HIERARCHY", 610: "ID", 611: "IGNORE", 612: "IMMEDIATE", 613: "IMMEDIATELY", 614: "IMPLEMENTATION", 615: "INCLUDING", 616: "INCREMENT", 617: "INDENT", 618: "INITIALLY", 619: "INPUT", 620: "INSTANCE", 621: "INSTANTIABLE", 622: "INTEGRITY", 623: "INVOKER", 624: "ISOLATION", 625: "K", 626: "KEY_MEMBER", 627: "KEY_TYPE", 628: "LENGTH", 629: "LEVEL", 630: "LIBRARY", 631: "LINK", 632: "LOCATION", 633: "LOCATOR", 634: "M", 635: "MAP", 636: "MAPPING", 637: "MAXVALUE", 638: "MESSAGE_LENGTH", 639: "MESSAGE_OCTET_LENGTH", 640: "MESSAGE_TEXT", 641: "MINVALUE", 642: "MORE", 643: "MUMPS", 644: "NAME", 645: "NAMES", 646: "NAMESPACE", 647: "NESTING", 648: "NEXT", 649: "NFC", 650: "NFD", 651: "NFKC", 652: "NFKD", 653: "NIL", 654: "NORMALIZED", 655: "NULLABLE", 656: "OBJECT", 657: "OCTETS", 658: "OPTIONS", 659: "ORDERING", 660: "ORDINALITY", 661: "OTHERS", 662: "OVERRIDING", 663: "P", 664: "PAD", 665: "PARAMETER_MODE", 666: "PARAMETER_NAME", 667: "PARAMETER_ORDINAL_POSITION", 668: "PARAMETER_SPECIFIC_CATALOG", 669: "PARAMETER_SPECIFIC_NAME", 670: "PARAMETER_SPECIFIC_SCHEMA", 671: "PARTIAL", 672: "PASCAL", 673: "PASSING", 674: "PASSTHROUGH", 675: "PERMISSION", 676: "PLACING", 677: "PLI", 678: "PRECEDING", 679: "PRESERVE", 680: "PRIOR", 681: "PRIVILEGES", 682: "PUBLIC", 683: "RECOVERY", 684: "RELATIVE", 685: "REPEATABLE", 686: "REQUIRING", 687: "RESPECT", 688: "RESTART", 689: "RESTORE", 690: "RESTRICT", 691: "RETURNED_CARDINALITY", 692: "RETURNED_LENGTH", 693: "RETURNED_OCTET_LENGTH", 694: "RETURNED_SQLSTATE", 695: "RETURNING", 696: "ROLE", 697: "ROUTINE", 698: "ROUTINE_CATALOG", 699: "ROUTINE_NAME", 700: "ROUTINE_SCHEMA", 701: "ROW_COUNT", 702: "SCALE", 703: "SCHEMA", 704: "SCHEMA_NAME", 705: "SCOPE_CATALOG", 706: "SCOPE_NAME", 707: "SCOPE_SCHEMA", 708: "SECTION", 709: "SECURITY", 710: "SELECTIVE", 711: "SELF", 712: "SEQUENCE", 713: "SERIALIZABLE", 714: "SERVER", 715: "SERVER_NAME", 716: "SESSION", 717: "SETS", 718: "SIMPLE", 719: "SIZE", 720: "SPACE", 721: "SPECIFIC_NAME", 722: "STANDALONE", 723: "STATE", 724: "STATEMENT", 725: "STRIP", 726: "STRUCTURE", 727: "STYLE", 728: "SUBCLASS_ORIGIN", 729: "T", 730: "TABLE_NAME", 731: "TEMPORARY", 732: "TIES", 733: "TOKEN", 734: "TOP_LEVEL_COUNT", 735: "TRANSACTIONS_COMMITTED", 736: "TRANSACTIONS_ROLLED_BACK", 737: "TRANSACTION_ACTIVE", 738: "TRANSFORM", 739: "TRANSFORMS", 740: "TRIGGER_CATALOG", 741: "TRIGGER_NAME", 742: "TRIGGER_SCHEMA", 743: "TYPE", 744: "UNBOUNDED", 745: "UNCOMMITTED", 746: "UNDER", 747: "UNLINK", 748: "UNNAMED", 749: "UNTYPED", 750: "URI", 751: "USAGE", 752: "USER_DEFINED_TYPE_CATALOG", 753: "USER_DEFINED_TYPE_CODE", 754: "USER_DEFINED_TYPE_NAME", 755: "USER_DEFINED_TYPE_SCHEMA", 756: "VALID", 757: "VERSION", 758: "WHITESPACE", 759: "WORK", 760: "WRAPPER", 761: "WRITE", 762: "XMLDECLARATION", 763: "XMLSCHEMA", 764: "YES", 765: "ZONE", 766: "SEMICOLON", 767: "PERCENT", 768: "ROWS" }, productions_: [0, [3, 1], [3, 1], [3, 2], [7, 1], [7, 2], [8, 2], [9, 3], [9, 1], [9, 1], [13, 2], [13, 4], [12, 1], [17, 0], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [47, 3], [73, 3], [73, 1], [75, 5], [40, 10], [40, 4], [92, 8], [92, 11], [102, 4], [104, 2], [104, 1], [103, 3], [103, 1], [105, 1], [105, 3], [106, 3], [109, 3], [109, 1], [110, 1], [110, 2], [114, 1], [114, 1], [117, 1], [117, 5], [117, 5], [117, 1], [117, 2], [117, 1], [117, 2], [117, 2], [117, 3], [117, 4], [117, 4], [117, 4], [117, 4], [117, 4], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 2], [117, 2], [117, 2], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 2], [117, 3], [117, 4], [117, 3], [117, 1], [117, 4], [117, 2], [117, 2], [117, 4], [117, 4], [117, 4], [117, 4], [117, 4], [117, 5], [117, 4], [117, 4], [117, 4], [117, 4], [117, 4], [117, 4], [117, 4], [117, 4], [117, 6], [163, 3], [163, 1], [153, 1], [153, 1], [153, 1], [182, 2], [79, 4], [79, 4], [79, 4], [79, 3], [184, 1], [184, 2], [184, 2], [184, 2], [184, 2], [184, 2], [184, 2], [184, 2], [186, 3], [186, 4], [186, 0], [81, 0], [81, 2], [81, 2], [81, 2], [81, 2], [81, 2], [82, 2], [82, 3], [82, 5], [82, 0], [205, 6], [205, 7], [205, 6], [205, 7], [203, 1], [203, 3], [209, 4], [209, 5], [209, 3], [209, 3], [209, 2], [209, 3], [209, 1], [209, 3], [209, 2], [209, 3], [209, 1], [209, 1], [209, 2], [209, 3], [209, 1], [209, 1], [209, 2], [209, 3], [209, 1], [209, 2], [209, 3], [214, 1], [199, 3], [199, 1], [204, 2], [204, 2], [204, 1], [204, 1], [215, 3], [217, 1], [217, 2], [217, 3], [217, 3], [217, 2], [217, 3], [217, 4], [217, 5], [217, 1], [217, 2], [217, 3], [217, 1], [217, 2], [217, 3], [216, 1], [216, 2], [221, 1], [221, 2], [221, 2], [221, 3], [221, 2], [221, 3], [221, 2], [221, 3], [221, 2], [221, 2], [221, 2], [218, 2], [218, 2], [218, 0], [84, 0], [84, 2], [85, 0], [85, 4], [233, 1], [233, 3], [235, 5], [235, 4], [235, 4], [235, 1], [234, 0], [234, 2], [88, 0], [88, 2], [88, 3], [88, 2], [88, 2], [88, 3], [88, 4], [88, 3], [88, 3], [86, 0], [86, 3], [120, 1], [120, 3], [242, 2], [242, 2], [241, 1], [241, 2], [241, 3], [241, 3], [241, 4], [87, 0], [87, 3], [87, 8], [250, 0], [250, 2], [174, 3], [174, 1], [257, 3], [257, 2], [257, 3], [257, 2], [257, 3], [257, 2], [257, 1], [258, 5], [258, 3], [258, 1], [111, 5], [111, 3], [111, 3], [111, 1], [94, 1], [94, 1], [94, 1], [94, 1], [94, 1], [94, 1], [94, 1], [94, 1], [94, 1], [94, 1], [94, 1], [94, 1], [94, 1], [94, 1], [94, 1], [94, 1], [94, 1], [94, 1], [94, 3], [94, 3], [94, 3], [94, 1], [94, 1], [56, 1], [70, 5], [71, 5], [267, 2], [267, 2], [265, 6], [265, 8], [265, 6], [265, 8], [278, 1], [278, 1], [278, 1], [278, 1], [278, 1], [278, 1], [278, 1], [259, 5], [259, 6], [259, 6], [279, 0], [279, 4], [279, 4], [279, 5], [281, 3], [282, 3], [158, 1], [158, 1], [158, 1], [158, 1], [158, 1], [158, 1], [158, 1], [158, 1], [158, 1], [200, 5], [200, 3], [200, 4], [200, 4], [200, 8], [200, 8], [200, 8], [200, 8], [200, 8], [200, 3], [151, 1], [151, 3], [196, 1], [261, 1], [261, 1], [113, 1], [113, 1], [262, 1], [202, 2], [263, 4], [266, 3], [201, 2], [201, 2], [201, 1], [201, 1], [264, 5], [264, 4], [307, 2], [307, 1], [310, 4], [308, 2], [308, 0], [260, 3], [260, 3], [260, 3], [260, 3], [260, 5], [260, 3], [260, 5], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [260, 5], [260, 3], [260, 3], [260, 3], [260, 5], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [260, 6], [260, 6], [260, 3], [260, 3], [260, 2], [260, 2], [260, 2], [260, 2], [260, 2], [260, 3], [260, 5], [260, 6], [260, 5], [260, 6], [260, 4], [260, 5], [260, 3], [260, 4], [260, 3], [260, 4], [260, 3], [260, 3], [260, 3], [260, 3], [260, 3], [332, 1], [332, 1], [332, 4], [330, 1], [330, 1], [330, 1], [330, 1], [330, 1], [330, 1], [331, 1], [331, 1], [331, 1], [55, 6], [55, 4], [147, 1], [147, 3], [339, 3], [339, 4], [29, 5], [29, 3], [36, 5], [36, 4], [36, 7], [36, 6], [36, 5], [36, 4], [36, 5], [36, 8], [36, 7], [36, 4], [36, 6], [36, 7], [344, 1], [344, 1], [343, 0], [343, 1], [345, 3], [345, 1], [345, 1], [345, 5], [345, 3], [345, 3], [348, 1], [348, 3], [349, 1], [349, 1], [349, 1], [349, 1], [349, 1], [349, 1], [100, 1], [100, 3], [24, 9], [24, 5], [352, 1], [352, 1], [355, 0], [355, 1], [357, 2], [357, 1], [358, 1], [358, 3], [358, 3], [358, 3], [351, 0], [351, 1], [353, 0], [353, 3], [354, 3], [354, 1], [354, 2], [362, 1], [362, 3], [363, 2], [363, 2], [363, 2], [363, 2], [363, 2], [364, 0], [364, 2], [369, 4], [365, 6], [366, 9], [380, 3], [379, 0], [379, 2], [381, 4], [382, 4], [367, 6], [368, 5], [368, 5], [375, 1], [375, 1], [375, 3], [375, 3], [361, 1], [361, 3], [387, 3], [387, 2], [387, 1], [390, 6], [390, 4], [390, 1], [390, 4], [276, 2], [276, 1], [391, 1], [391, 1], [388, 0], [388, 1], [394, 2], [394, 1], [396, 3], [395, 2], [395, 5], [395, 3], [395, 6], [395, 1], [395, 2], [395, 4], [395, 2], [395, 1], [395, 2], [395, 1], [395, 1], [395, 3], [395, 5], [33, 4], [402, 3], [402, 1], [401, 0], [401, 2], [18, 6], [18, 6], [18, 6], [18, 8], [18, 6], [39, 5], [19, 4], [19, 7], [19, 6], [19, 9], [30, 3], [21, 4], [21, 6], [21, 9], [21, 6], [410, 0], [410, 2], [54, 3], [54, 2], [31, 4], [31, 5], [31, 5], [22, 8], [22, 9], [32, 3], [43, 2], [43, 4], [43, 3], [43, 5], [45, 2], [45, 4], [45, 4], [45, 6], [42, 4], [42, 6], [44, 4], [44, 6], [41, 4], [41, 6], [25, 11], [25, 8], [416, 3], [416, 3], [416, 5], [34, 4], [66, 2], [57, 2], [58, 2], [58, 2], [58, 4], [144, 4], [144, 2], [144, 2], [144, 2], [144, 2], [144, 1], [144, 2], [144, 2], [425, 1], [425, 1], [426, 1], [426, 1], [426, 1], [426, 1], [426, 1], [426, 1], [426, 1], [426, 3], [422, 3], [422, 4], [422, 2], [424, 2], [424, 3], [424, 1], [428, 3], [428, 1], [431, 3], [431, 3], [431, 3], [430, 3], [430, 1], [65, 4], [65, 3], [65, 4], [65, 5], [65, 5], [65, 6], [434, 1], [434, 1], [433, 3], [433, 2], [435, 1], [435, 1], [435, 3], [432, 1], [432, 1], [51, 2], [52, 2], [50, 2], [35, 4], [35, 3], [441, 2], [59, 3], [60, 1], [61, 1], [62, 3], [63, 2], [63, 2], [64, 2], [64, 2], [449, 1], [449, 1], [69, 2], [447, 3], [447, 1], [448, 3], [448, 1], [28, 2], [452, 1], [452, 3], [453, 3], [453, 4], [453, 5], [453, 6], [46, 3], [37, 6], [456, 1], [456, 2], [457, 2], [458, 2], [459, 2], [459, 2], [459, 1], [459, 1], [461, 4], [461, 6], [464, 1], [464, 3], [462, 5], [462, 7], [462, 7], [462, 9], [462, 7], [462, 9], [465, 3], [465, 6], [465, 3], [465, 6], [460, 0], [460, 2], [460, 5], [460, 4], [460, 7], [27, 6], [472, 2], [471, 0], [471, 2], [471, 2], [471, 1], [26, 8], [23, 3], [23, 4], [476, 3], [476, 1], [477, 3], [477, 7], [477, 6], [477, 3], [477, 4], [481, 1], [481, 1], [485, 2], [486, 3], [487, 2], [488, 4], [478, 4], [478, 3], [478, 2], [478, 1], [500, 2], [496, 2], [496, 2], [501, 4], [503, 6], [67, 3], [67, 2], [509, 3], [509, 1], [507, 1], [507, 4], [68, 2], [20, 2], [48, 9], [48, 8], [48, 9], [513, 0], [513, 1], [513, 1], [513, 1], [513, 2], [514, 1], [514, 1], [514, 1], [49, 3], [38, 2], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [11, 1], [11, 1], [80, 0], [80, 1], [83, 0], [83, 1], [90, 0], [90, 2], [91, 0], [91, 1], [96, 0], [96, 1], [97, 0], [97, 1], [101, 0], [101, 1], [108, 0], [108, 1], [121, 0], [121, 1], [125, 1], [125, 2], [126, 1], [126, 2], [127, 0], [127, 1], [155, 0], [155, 2], [157, 0], [157, 2], [159, 0], [159, 2], [160, 1], [160, 1], [161, 0], [161, 2], [165, 0], [165, 2], [167, 0], [167, 2], [176, 0], [176, 2], [177, 0], [177, 2], [178, 0], [178, 2], [188, 0], [188, 1], [197, 0], [197, 1], [210, 0], [210, 1], [211, 0], [211, 1], [219, 0], [219, 1], [220, 0], [220, 1], [252, 0], [252, 1], [254, 0], [254, 1], [255, 0], [255, 1], [256, 0], [256, 1], [268, 1], [268, 1], [769, 1], [769, 1], [291, 0], [291, 1], [304, 1], [304, 1], [340, 1], [340, 1], [374, 0], [374, 1], [378, 0], [378, 1], [385, 0], [385, 1], [386, 0], [386, 1], [397, 0], [397, 1], [398, 0], [398, 1], [400, 1], [400, 1], [414, 0], [414, 1], [415, 0], [415, 1], [468, 0], [468, 1], [469, 0], [469, 1], [470, 0], [470, 1], [474, 0], [474, 1], [479, 0], [479, 1], [480, 0], [480, 1], [482, 0], [482, 1], [483, 0], [483, 1], [484, 0], [484, 1], [489, 0], [489, 1], [490, 0], [490, 1], [491, 0], [491, 1], [492, 0], [492, 1], [493, 0], [493, 1], [494, 0], [494, 1], [495, 0], [495, 1], [497, 0], [497, 1], [498, 0], [498, 1], [499, 0], [499, 1], [502, 0], [502, 2], [504, 0], [504, 2], [505, 0], [505, 2], [506, 0], [506, 2], [515, 0], [515, 1], [516, 0], [516, 1]], performAction: function(r, p, m, d, y, l, _) {
      var h = l.length - 1;
      switch (y) {
        case 1:
          S.options.casesensitive ? this.$ = l[h] : this.$ = l[h].toLowerCase();
          break;
        case 2:
          this.$ = $3(l[h].substr(1, l[h].length - 2));
          break;
        case 3:
          this.$ = l[h].toLowerCase();
          break;
        case 4:
          this.$ = l[h];
          break;
        case 5:
          this.$ = l[h] ? l[h - 1] + " " + l[h] : l[h - 1];
          break;
        case 6:
          return new d.Statements({ statements: l[h - 1] });
        case 7:
          this.$ = l[h - 2], l[h] && l[h - 2].push(l[h]);
          break;
        case 8:
        case 9:
        case 70:
        case 80:
        case 85:
        case 143:
        case 177:
        case 205:
        case 206:
        case 242:
        case 261:
        case 276:
        case 358:
        case 376:
        case 455:
        case 478:
        case 479:
        case 483:
        case 491:
        case 532:
        case 533:
        case 570:
        case 653:
        case 663:
        case 687:
        case 689:
        case 691:
        case 705:
        case 706:
        case 736:
        case 760:
          this.$ = [l[h]];
          break;
        case 10:
        case 11:
          this.$ = l[h], l[h].explain = !0;
          break;
        case 12:
          this.$ = l[h], d.exists && (this.$.exists = d.exists), delete d.exists, d.queries && (this.$.queries = d.queries), delete d.queries;
          break;
        case 13:
        case 162:
        case 172:
        case 237:
        case 238:
        case 240:
        case 248:
        case 250:
        case 259:
        case 270:
        case 273:
        case 379:
        case 495:
        case 505:
        case 507:
        case 519:
        case 525:
        case 526:
        case 571:
          this.$ = void 0;
          break;
        case 68:
          this.$ = new d.WithSelect({ withs: l[h - 1], select: l[h] });
          break;
        case 69:
        case 569:
          l[h - 2].push(l[h]), this.$ = l[h - 2];
          break;
        case 71:
          this.$ = { name: l[h - 4], select: l[h - 1] };
          break;
        case 72:
          d.extend(this.$, l[h - 9]), d.extend(this.$, l[h - 8]), d.extend(this.$, l[h - 7]), d.extend(this.$, l[h - 6]), d.extend(this.$, l[h - 5]), d.extend(this.$, l[h - 4]), d.extend(this.$, l[h - 3]), d.extend(this.$, l[h - 2]), d.extend(this.$, l[h - 1]), d.extend(this.$, l[h]), this.$ = l[h - 9];
          break;
        case 73:
          this.$ = new d.Search({ selectors: l[h - 2], from: l[h] }), d.extend(this.$, l[h - 1]);
          break;
        case 74:
          this.$ = { pivot: { expr: l[h - 5], columnid: l[h - 3], inlist: l[h - 2], as: l[h] } };
          break;
        case 75:
          this.$ = { unpivot: { tocolumnid: l[h - 8], forcolumnid: l[h - 6], inlist: l[h - 3], as: l[h] } };
          break;
        case 76:
        case 524:
        case 553:
        case 589:
        case 623:
        case 640:
        case 641:
        case 644:
        case 666:
          this.$ = l[h - 1];
          break;
        case 77:
        case 78:
        case 86:
        case 147:
        case 185:
        case 247:
        case 283:
        case 291:
        case 292:
        case 293:
        case 294:
        case 295:
        case 296:
        case 297:
        case 298:
        case 299:
        case 300:
        case 301:
        case 302:
        case 303:
        case 304:
        case 307:
        case 308:
        case 323:
        case 324:
        case 325:
        case 326:
        case 327:
        case 328:
        case 378:
        case 444:
        case 445:
        case 446:
        case 447:
        case 448:
        case 449:
        case 520:
        case 546:
        case 550:
        case 552:
        case 627:
        case 628:
        case 629:
        case 630:
        case 631:
        case 632:
        case 636:
        case 638:
        case 639:
        case 648:
        case 664:
        case 665:
        case 727:
        case 742:
        case 743:
        case 745:
        case 746:
        case 752:
        case 753:
          this.$ = l[h];
          break;
        case 79:
        case 84:
        case 735:
        case 759:
          this.$ = l[h - 2], this.$.push(l[h]);
          break;
        case 81:
          this.$ = { expr: l[h] };
          break;
        case 82:
          this.$ = { expr: l[h - 2], as: l[h] };
          break;
        case 83:
          this.$ = { removecolumns: l[h] };
          break;
        case 87:
          this.$ = { like: l[h] };
          break;
        case 90:
        case 104:
          this.$ = { srchid: "PROP", args: [l[h]] };
          break;
        case 91:
          this.$ = { srchid: "ORDERBY", args: l[h - 1] };
          break;
        case 92:
          var O = (O = l[h - 1]) || "ASC";
          this.$ = { srchid: "ORDERBY", args: [{ expression: new d.Column({ columnid: "_" }), direction: O }] };
          break;
        case 93:
          this.$ = { srchid: "PARENT" };
          break;
        case 94:
          this.$ = { srchid: "APROP", args: [l[h]] };
          break;
        case 95:
          this.$ = { selid: "ROOT" };
          break;
        case 96:
          this.$ = { srchid: "EQ", args: [l[h]] };
          break;
        case 97:
          this.$ = { srchid: "LIKE", args: [l[h]] };
          break;
        case 98:
        case 99:
          this.$ = { selid: "WITH", args: l[h - 1] };
          break;
        case 100:
          this.$ = { srchid: l[h - 3].toUpperCase(), args: l[h - 1] };
          break;
        case 101:
          this.$ = { srchid: "WHERE", args: [l[h - 1]] };
          break;
        case 102:
          this.$ = { selid: "OF", args: [l[h - 1]] };
          break;
        case 103:
          this.$ = { srchid: "CLASS", args: [l[h - 1]] };
          break;
        case 105:
          this.$ = { srchid: "NAME", args: [l[h].substr(1, l[h].length - 2)] };
          break;
        case 106:
          this.$ = { srchid: "CHILD" };
          break;
        case 107:
          this.$ = { srchid: "VERTEX" };
          break;
        case 108:
          this.$ = { srchid: "EDGE" };
          break;
        case 109:
          this.$ = { srchid: "REF" };
          break;
        case 110:
          this.$ = { srchid: "SHARP", args: [l[h]] };
          break;
        case 111:
          this.$ = { srchid: "ATTR", args: l[h] === void 0 ? void 0 : [l[h]] };
          break;
        case 112:
          this.$ = { srchid: "ATTR" };
          break;
        case 113:
          this.$ = { srchid: "OUT" };
          break;
        case 114:
          this.$ = { srchid: "IN" };
          break;
        case 115:
          this.$ = { srchid: "OUTOUT" };
          break;
        case 116:
          this.$ = { srchid: "ININ" };
          break;
        case 117:
          this.$ = { srchid: "CONTENT" };
          break;
        case 118:
          this.$ = { srchid: "EX", args: [new d.Json({ value: l[h] })] };
          break;
        case 119:
          this.$ = { srchid: "AT", args: [l[h]] };
          break;
        case 120:
          this.$ = { srchid: "AS", args: [l[h]] };
          break;
        case 121:
          this.$ = { srchid: "SET", args: l[h - 1] };
          break;
        case 122:
          this.$ = { selid: "TO", args: [l[h]] };
          break;
        case 123:
          this.$ = { srchid: "VALUE" };
          break;
        case 124:
          this.$ = { srchid: "ROW", args: l[h - 1] };
          break;
        case 125:
          this.$ = { srchid: "CLASS", args: [l[h]] };
          break;
        case 126:
          this.$ = { selid: l[h], args: [l[h - 1]] };
          break;
        case 127:
          this.$ = { selid: "NOT", args: l[h - 1] };
          break;
        case 128:
          this.$ = { selid: "IF", args: l[h - 1] };
          break;
        case 129:
          this.$ = { selid: l[h - 3], args: l[h - 1] };
          break;
        case 130:
          this.$ = { selid: "DISTINCT", args: l[h - 1] };
          break;
        case 131:
          this.$ = { selid: "UNION", args: l[h - 1] };
          break;
        case 132:
          this.$ = { selid: "UNIONALL", args: l[h - 1] };
          break;
        case 133:
          this.$ = { selid: "ALL", args: [l[h - 1]] };
          break;
        case 134:
          this.$ = { selid: "ANY", args: [l[h - 1]] };
          break;
        case 135:
          this.$ = { selid: "INTERSECT", args: l[h - 1] };
          break;
        case 136:
          this.$ = { selid: "EXCEPT", args: l[h - 1] };
          break;
        case 137:
          this.$ = { selid: "AND", args: l[h - 1] };
          break;
        case 138:
          this.$ = { selid: "OR", args: l[h - 1] };
          break;
        case 139:
          this.$ = { selid: "PATH", args: [l[h - 1]] };
          break;
        case 140:
          this.$ = { srchid: "RETURN", args: l[h - 1] };
          break;
        case 141:
          this.$ = { selid: "REPEAT", sels: l[h - 3], args: l[h - 1] };
          break;
        case 142:
          this.$ = l[h - 2], this.$.push(l[h]);
          break;
        case 144:
          this.$ = "PLUS";
          break;
        case 145:
          this.$ = "STAR";
          break;
        case 146:
          this.$ = "QUESTION";
          break;
        case 148:
        case 149:
          this.$ = new d.Select({ columns: l[h], distinct: !0 }), d.extend(this.$, l[h - 3]), d.extend(this.$, l[h - 1]);
          break;
        case 150:
          this.$ = new d.Select({ columns: l[h], all: !0 }), d.extend(this.$, l[h - 3]), d.extend(this.$, l[h - 1]);
          break;
        case 151:
          l[h] ? (this.$ = new d.Select({ columns: l[h] }), d.extend(this.$, l[h - 2]), d.extend(this.$, l[h - 1])) : this.$ = new d.Select({ columns: [new d.Column({ columnid: "_" })], modifier: "COLUMN" });
          break;
        case 152:
          l[h] == "SELECT" ? this.$ = void 0 : this.$ = { modifier: l[h] };
          break;
        case 153:
          this.$ = { modifier: "VALUE" };
          break;
        case 154:
          this.$ = { modifier: "ROW" };
          break;
        case 155:
          this.$ = { modifier: "COLUMN" };
          break;
        case 156:
          this.$ = { modifier: "MATRIX" };
          break;
        case 157:
          this.$ = { modifier: "TEXTSTRING" };
          break;
        case 158:
          this.$ = { modifier: "INDEX" };
          break;
        case 159:
          this.$ = { modifier: "RECORDSET" };
          break;
        case 160:
          this.$ = { top: l[h - 1], percent: l[h] !== void 0 || void 0 };
          break;
        case 161:
          this.$ = { top: l[h - 1] };
          break;
        case 163:
        case 333:
        case 527:
        case 528:
        case 728:
          this.$ = void 0;
          break;
        case 164:
        case 165:
        case 166:
        case 167:
          this.$ = { into: l[h] };
          break;
        case 168:
          var D = (z = (z = l[h]).substr(1, z.length - 2)).substr(-3).toUpperCase(), k = z.substr(-4).toUpperCase();
          z[0] == "#" ? this.$ = { into: new d.FuncValue({ funcid: "HTML", args: [new d.StringValue({ value: z }), new d.Json({ value: { headers: !0 } })] }) } : D == "XLS" || D == "CSV" || D == "TAB" ? this.$ = { into: new d.FuncValue({ funcid: D, args: [new d.StringValue({ value: z }), new d.Json({ value: { headers: !0 } })] }) } : k != "XLSX" && k != "JSON" || (this.$ = { into: new d.FuncValue({ funcid: k, args: [new d.StringValue({ value: z }), new d.Json({ value: { headers: !0 } })] }) });
          break;
        case 169:
          this.$ = { from: l[h] };
          break;
        case 170:
          this.$ = { from: l[h - 1], joins: l[h] };
          break;
        case 171:
          this.$ = { from: l[h - 2], joins: l[h - 1] };
          break;
        case 173:
          this.$ = new d.Apply({ select: l[h - 2], applymode: "CROSS", as: l[h] });
          break;
        case 174:
          this.$ = new d.Apply({ select: l[h - 3], applymode: "CROSS", as: l[h] });
          break;
        case 175:
          this.$ = new d.Apply({ select: l[h - 2], applymode: "OUTER", as: l[h] });
          break;
        case 176:
          this.$ = new d.Apply({ select: l[h - 3], applymode: "OUTER", as: l[h] });
          break;
        case 178:
        case 243:
        case 456:
        case 534:
        case 535:
          this.$ = l[h - 2], l[h - 2].push(l[h]);
          break;
        case 179:
          this.$ = l[h - 2], this.$.as = l[h];
          break;
        case 180:
          this.$ = l[h - 3], this.$.as = l[h];
          break;
        case 181:
          this.$ = l[h - 1], this.$.as = "default";
          break;
        case 182:
          this.$ = new d.Json({ value: l[h - 2] }), l[h - 2].as = l[h];
          break;
        case 183:
          this.$ = l[h - 1], l[h - 1].as = l[h];
          break;
        case 184:
          this.$ = l[h - 2], l[h - 2].as = l[h];
          break;
        case 186:
        case 642:
        case 645:
          this.$ = l[h - 2];
          break;
        case 187:
        case 191:
        case 195:
        case 198:
          this.$ = l[h - 1], l[h - 1].as = l[h];
          break;
        case 188:
        case 192:
        case 196:
        case 199:
          this.$ = l[h - 2], l[h - 2].as = l[h];
          break;
        case 189:
        case 190:
        case 194:
        case 197:
          this.$ = l[h], l[h].as = "default";
          break;
        case 193:
          this.$ = { inserted: !0 };
          break;
        case 200:
          if (D = (z = (z = l[h]).substr(1, z.length - 2)).substr(-3).toUpperCase(), k = z.substr(-4).toUpperCase(), z[0] == "#")
            H = new d.FuncValue({ funcid: "HTML", args: [new d.StringValue({ value: z }), new d.Json({ value: { headers: !0 } })] });
          else if (D == "XLS" || D == "CSV" || D == "TAB")
            H = new d.FuncValue({ funcid: D, args: [new d.StringValue({ value: z }), new d.Json({ value: { headers: !0 } })] });
          else {
            if (k != "XLSX" && k != "JSON")
              throw new Error("Unknown string in FROM clause");
            H = new d.FuncValue({ funcid: k, args: [new d.StringValue({ value: z }), new d.Json({ value: { headers: !0 } })] });
          }
          this.$ = H;
          break;
        case 201:
          l[h - 2] == "INFORMATION_SCHEMA" ? this.$ = new d.FuncValue({ funcid: l[h - 2], args: [new d.StringValue({ value: l[h] })] }) : this.$ = new d.Table({ databaseid: l[h - 2], tableid: l[h] });
          break;
        case 202:
          this.$ = new d.Table({ tableid: l[h] });
          break;
        case 203:
        case 204:
          this.$ = l[h - 1], l[h - 1].push(l[h]);
          break;
        case 207:
          this.$ = new d.Join(l[h - 2]), d.extend(this.$, l[h - 1]), d.extend(this.$, l[h]);
          break;
        case 208:
          this.$ = { table: l[h] };
          break;
        case 209:
          this.$ = { table: l[h - 1], as: l[h] };
          break;
        case 210:
          this.$ = { table: l[h - 2], as: l[h] };
          break;
        case 211:
          this.$ = { json: new d.Json({ value: l[h - 2], as: l[h] }) };
          break;
        case 212:
          this.$ = { param: l[h - 1], as: l[h] };
          break;
        case 213:
          this.$ = { param: l[h - 2], as: l[h] };
          break;
        case 214:
          this.$ = { select: l[h - 2], as: l[h] };
          break;
        case 215:
          this.$ = { select: l[h - 3], as: l[h] };
          break;
        case 216:
          this.$ = { func: l[h], as: "default" };
          break;
        case 217:
          this.$ = { func: l[h - 1], as: l[h] };
          break;
        case 218:
          this.$ = { func: l[h - 2], as: l[h] };
          break;
        case 219:
          this.$ = { variable: l[h], as: "default" };
          break;
        case 220:
          this.$ = { variable: l[h - 1], as: l[h] };
          break;
        case 221:
          this.$ = { variable: l[h - 2], as: l[h] };
          break;
        case 222:
          this.$ = { joinmode: l[h] };
          break;
        case 223:
          this.$ = { joinmode: l[h - 1], natural: !0 };
          break;
        case 224:
        case 225:
          this.$ = "INNER";
          break;
        case 226:
        case 227:
          this.$ = "LEFT";
          break;
        case 228:
        case 229:
          this.$ = "RIGHT";
          break;
        case 230:
        case 231:
          this.$ = "OUTER";
          break;
        case 232:
          this.$ = "SEMI";
          break;
        case 233:
          this.$ = "ANTI";
          break;
        case 234:
          this.$ = "CROSS";
          break;
        case 235:
          this.$ = { on: l[h] };
          break;
        case 236:
        case 701:
          this.$ = { using: l[h] };
          break;
        case 239:
          this.$ = { where: new d.Expression({ expression: l[h] }) };
          break;
        case 241:
          this.$ = { group: l[h - 1] }, d.extend(this.$, l[h]);
          break;
        case 244:
          this.$ = new d.GroupExpression({ type: "GROUPING SETS", group: l[h - 1] });
          break;
        case 245:
          this.$ = new d.GroupExpression({ type: "ROLLUP", group: l[h - 1] });
          break;
        case 246:
          this.$ = new d.GroupExpression({ type: "CUBE", group: l[h - 1] });
          break;
        case 249:
          this.$ = { having: l[h] };
          break;
        case 251:
          this.$ = { union: l[h] };
          break;
        case 252:
          this.$ = { unionall: l[h] };
          break;
        case 253:
          this.$ = { except: l[h] };
          break;
        case 254:
          this.$ = { intersect: l[h] };
          break;
        case 255:
          this.$ = { union: l[h], corresponding: !0 };
          break;
        case 256:
          this.$ = { unionall: l[h], corresponding: !0 };
          break;
        case 257:
          this.$ = { except: l[h], corresponding: !0 };
          break;
        case 258:
          this.$ = { intersect: l[h], corresponding: !0 };
          break;
        case 260:
          this.$ = { order: l[h] };
          break;
        case 262:
          this.$ = l[h - 2], l[h - 2].push(l[h]);
          break;
        case 263:
          this.$ = { nullsOrder: "FIRST" };
          break;
        case 264:
          this.$ = { nullsOrder: "LAST" };
          break;
        case 265:
          this.$ = new d.Expression({ expression: l[h], direction: "ASC" });
          break;
        case 266:
          this.$ = new d.Expression({ expression: l[h - 1], direction: l[h].toUpperCase() });
          break;
        case 267:
          this.$ = new d.Expression({ expression: l[h - 2], direction: l[h - 1].toUpperCase() }), d.extend(this.$, l[h]);
          break;
        case 268:
          this.$ = new d.Expression({ expression: l[h - 2], direction: "ASC", nocase: !0 });
          break;
        case 269:
          this.$ = new d.Expression({ expression: l[h - 3], direction: l[h].toUpperCase(), nocase: !0 });
          break;
        case 271:
          this.$ = { limit: l[h - 1] }, d.extend(this.$, l[h]);
          break;
        case 272:
          this.$ = { limit: l[h - 2], offset: l[h - 6] };
          break;
        case 274:
          this.$ = { offset: l[h] };
          break;
        case 275:
        case 513:
        case 537:
        case 652:
        case 662:
        case 686:
        case 688:
        case 692:
          l[h - 2].push(l[h]), this.$ = l[h - 2];
          break;
        case 277:
        case 279:
        case 281:
          l[h - 2].as = l[h], this.$ = l[h - 2];
          break;
        case 278:
        case 280:
        case 282:
          l[h - 1].as = l[h], this.$ = l[h - 1];
          break;
        case 284:
          this.$ = new d.Column({ columid: l[h], tableid: l[h - 2], databaseid: l[h - 4] });
          break;
        case 285:
          this.$ = new d.Column({ columnid: l[h], tableid: l[h - 2] });
          break;
        case 286:
          this.$ = new d.Column({ columnid: l[h] });
          break;
        case 287:
          this.$ = new d.Column({ columnid: l[h], tableid: l[h - 2], databaseid: l[h - 4] });
          break;
        case 288:
        case 289:
          this.$ = new d.Column({ columnid: l[h], tableid: l[h - 2] });
          break;
        case 290:
          this.$ = new d.Column({ columnid: l[h] });
          break;
        case 305:
          this.$ = new d.DomainValueValue();
          break;
        case 306:
          this.$ = new d.Json({ value: l[h] });
          break;
        case 309:
        case 310:
        case 311:
          d.queries || (d.queries = []), d.queries.push(l[h - 1]), l[h - 1].queriesidx = d.queries.length, this.$ = l[h - 1];
          break;
        case 312:
          this.$ = l[h];
          break;
        case 313:
          this.$ = new d.FuncValue({ funcid: "CURRENT_TIMESTAMP" });
          break;
        case 314:
          this.$ = new d.JavaScript({ value: l[h].substr(2, l[h].length - 4) });
          break;
        case 315:
          this.$ = new d.JavaScript({ value: 'alasql.fn["' + l[h - 2] + '"] = ' + l[h].substr(2, l[h].length - 4) });
          break;
        case 316:
          this.$ = new d.JavaScript({ value: 'alasql.aggr["' + l[h - 2] + '"] = ' + l[h].substr(2, l[h].length - 4) });
          break;
        case 317:
          this.$ = new d.FuncValue({ funcid: l[h], newid: !0 });
          break;
        case 318:
          this.$ = l[h], d.extend(this.$, { newid: !0 });
          break;
        case 319:
          this.$ = new d.Convert({ expression: l[h - 3] }), d.extend(this.$, l[h - 1]);
          break;
        case 320:
          this.$ = new d.Convert({ expression: l[h - 5], style: l[h - 1] }), d.extend(this.$, l[h - 3]);
          break;
        case 321:
          this.$ = new d.Convert({ expression: l[h - 1] }), d.extend(this.$, l[h - 3]);
          break;
        case 322:
          this.$ = new d.Convert({ expression: l[h - 3], style: l[h - 1] }), d.extend(this.$, l[h - 5]);
          break;
        case 329:
          this.$ = new d.FuncValue({ funcid: "CURRENT_TIMESTAMP" });
          break;
        case 330:
          1 < l[h - 2].length && (l[h - 4].toUpperCase() == "MAX" || l[h - 4].toUpperCase() == "MIN") ? this.$ = new d.FuncValue({ funcid: l[h - 4], args: l[h - 2] }) : this.$ = new d.AggrValue({ aggregatorid: l[h - 4].toUpperCase(), expression: l[h - 2].pop(), over: l[h] });
          break;
        case 331:
          this.$ = new d.AggrValue({ aggregatorid: l[h - 5].toUpperCase(), expression: l[h - 2], distinct: !0, over: l[h] });
          break;
        case 332:
          this.$ = new d.AggrValue({ aggregatorid: l[h - 5].toUpperCase(), expression: l[h - 2], over: l[h] });
          break;
        case 334:
        case 335:
          this.$ = new d.Over(), d.extend(this.$, l[h - 1]);
          break;
        case 336:
          this.$ = new d.Over(), d.extend(this.$, l[h - 2]), d.extend(this.$, l[h - 1]);
          break;
        case 337:
          this.$ = { partition: l[h] };
          break;
        case 338:
          this.$ = { order: l[h] };
          break;
        case 339:
          this.$ = "SUM";
          break;
        case 340:
          this.$ = "COUNT";
          break;
        case 341:
          this.$ = "MIN";
          break;
        case 342:
        case 548:
          this.$ = "MAX";
          break;
        case 343:
          this.$ = "AVG";
          break;
        case 344:
          this.$ = "FIRST";
          break;
        case 345:
          this.$ = "LAST";
          break;
        case 346:
          this.$ = "AGGR";
          break;
        case 347:
          this.$ = "ARRAY";
          break;
        case 348:
          O = l[h - 4], D = l[h - 1], (!(1 < D.length) || O.toUpperCase() != "MIN" && O.toUpperCase() != "MAX") && S.aggr[l[h - 4]] ? this.$ = new d.AggrValue({ aggregatorid: "REDUCE", funcid: O, expression: D.pop(), distinct: l[h - 2] == "DISTINCT" }) : this.$ = new d.FuncValue({ funcid: O, args: D });
          break;
        case 349:
          this.$ = new d.FuncValue({ funcid: l[h - 2] });
          break;
        case 350:
          this.$ = new d.FuncValue({ funcid: "IIF", args: l[h - 1] });
          break;
        case 351:
          this.$ = new d.FuncValue({ funcid: "REPLACE", args: l[h - 1] });
          break;
        case 352:
          this.$ = new d.FuncValue({ funcid: "DATEADD", args: [new d.StringValue({ value: l[h - 5] }), l[h - 3], l[h - 1]] });
          break;
        case 353:
          this.$ = new d.FuncValue({ funcid: "DATEADD", args: [l[h - 5], l[h - 3], l[h - 1]] });
          break;
        case 354:
          this.$ = new d.FuncValue({ funcid: "DATEDIFF", args: [new d.StringValue({ value: l[h - 5] }), l[h - 3], l[h - 1]] });
          break;
        case 355:
          this.$ = new d.FuncValue({ funcid: "DATEDIFF", args: [l[h - 5], l[h - 3], l[h - 1]] });
          break;
        case 356:
          this.$ = new d.FuncValue({ funcid: "TIMESTAMPDIFF", args: [new d.StringValue({ value: l[h - 5] }), l[h - 3], l[h - 1]] });
          break;
        case 357:
          this.$ = new d.FuncValue({ funcid: "INTERVAL", args: [l[h - 1], new d.StringValue({ value: l[h].toLowerCase() })] });
          break;
        case 359:
          l[h - 2].push(l[h]), this.$ = l[h - 2];
          break;
        case 360:
          this.$ = new d.NumValue({ value: +l[h] });
          break;
        case 361:
          this.$ = new d.LogicValue({ value: !0 });
          break;
        case 362:
          this.$ = new d.LogicValue({ value: !1 });
          break;
        case 363:
          this.$ = new d.StringValue({ value: l[h].substr(1, l[h].length - 2).replace(/(\\\')/g, "'").replace(/(\'\')/g, "'") });
          break;
        case 364:
          this.$ = new d.StringValue({ value: l[h].substr(2, l[h].length - 3).replace(/(\\\')/g, "'").replace(/(\'\')/g, "'") });
          break;
        case 365:
          this.$ = new d.NullValue({ value: void 0 });
          break;
        case 366:
          this.$ = new d.VarValue({ variable: l[h] });
          break;
        case 367:
          d.exists || (d.exists = []), this.$ = new d.ExistsValue({ value: l[h - 1], existsidx: d.exists.length }), d.exists.push(l[h - 1]);
          break;
        case 368:
          this.$ = new d.ArrayValue({ value: l[h - 1] });
          break;
        case 369:
        case 370:
          this.$ = new d.ParamValue({ param: l[h] });
          break;
        case 371:
          d.question === void 0 && (d.question = 0), this.$ = new d.ParamValue({ param: d.question++ });
          break;
        case 372:
          d.question === void 0 && (d.question = 0), this.$ = new d.ParamValue({ param: d.question++, array: !0 });
          break;
        case 373:
          this.$ = new d.CaseValue({ expression: l[h - 3], whens: l[h - 2], elses: l[h - 1] });
          break;
        case 374:
          this.$ = new d.CaseValue({ whens: l[h - 2], elses: l[h - 1] });
          break;
        case 375:
        case 703:
        case 704:
          this.$ = l[h - 1], this.$.push(l[h]);
          break;
        case 377:
          this.$ = { when: l[h - 2], then: l[h] };
          break;
        case 380:
        case 381:
          this.$ = new d.Op({ left: l[h - 2], op: "REGEXP", right: l[h] });
          break;
        case 382:
          this.$ = new d.Op({ left: l[h - 2], op: "GLOB", right: l[h] });
          break;
        case 383:
          this.$ = new d.Op({ left: l[h - 2], op: "LIKE", right: l[h] });
          break;
        case 384:
          this.$ = new d.Op({ left: l[h - 4], op: "LIKE", right: l[h - 2], escape: l[h] });
          break;
        case 385:
          this.$ = new d.Op({ left: l[h - 2], op: "NOT LIKE", right: l[h] });
          break;
        case 386:
          this.$ = new d.Op({ left: l[h - 4], op: "NOT LIKE", right: l[h - 2], escape: l[h] });
          break;
        case 387:
          this.$ = new d.Op({ left: l[h - 2], op: "||", right: l[h] });
          break;
        case 388:
          this.$ = new d.Op({ left: l[h - 2], op: "+", right: l[h] });
          break;
        case 389:
          this.$ = new d.Op({ left: l[h - 2], op: "-", right: l[h] });
          break;
        case 390:
          this.$ = new d.Op({ left: l[h - 2], op: "*", right: l[h] });
          break;
        case 391:
          this.$ = new d.Op({ left: l[h - 2], op: "/", right: l[h] });
          break;
        case 392:
          this.$ = new d.Op({ left: l[h - 2], op: "%", right: l[h] });
          break;
        case 393:
          this.$ = new d.Op({ left: l[h - 2], op: "^", right: l[h] });
          break;
        case 394:
          this.$ = new d.Op({ left: l[h - 2], op: ">>", right: l[h] });
          break;
        case 395:
          this.$ = new d.Op({ left: l[h - 2], op: "<<", right: l[h] });
          break;
        case 396:
          this.$ = new d.Op({ left: l[h - 2], op: "&", right: l[h] });
          break;
        case 397:
          this.$ = new d.Op({ left: l[h - 2], op: "|", right: l[h] });
          break;
        case 398:
        case 399:
        case 401:
          this.$ = new d.Op({ left: l[h - 2], op: "->", right: l[h] });
          break;
        case 400:
          this.$ = new d.Op({ left: l[h - 4], op: "->", right: l[h - 1] });
          break;
        case 402:
        case 403:
        case 405:
          this.$ = new d.Op({ left: l[h - 2], op: "!", right: l[h] });
          break;
        case 404:
          this.$ = new d.Op({ left: l[h - 4], op: "!", right: l[h - 1] });
          break;
        case 406:
          this.$ = new d.Op({ left: l[h - 2], op: ">", right: l[h] });
          break;
        case 407:
          this.$ = new d.Op({ left: l[h - 2], op: ">=", right: l[h] });
          break;
        case 408:
          this.$ = new d.Op({ left: l[h - 2], op: "<", right: l[h] });
          break;
        case 409:
          this.$ = new d.Op({ left: l[h - 2], op: "<=", right: l[h] });
          break;
        case 410:
          this.$ = new d.Op({ left: l[h - 2], op: "=", right: l[h] });
          break;
        case 411:
          this.$ = new d.Op({ left: l[h - 2], op: "==", right: l[h] });
          break;
        case 412:
          this.$ = new d.Op({ left: l[h - 2], op: "===", right: l[h] });
          break;
        case 413:
          this.$ = new d.Op({ left: l[h - 2], op: "!=", right: l[h] });
          break;
        case 414:
          this.$ = new d.Op({ left: l[h - 2], op: "!==", right: l[h] });
          break;
        case 415:
          this.$ = new d.Op({ left: l[h - 2], op: "!===", right: l[h] });
          break;
        case 416:
          d.queries || (d.queries = []), this.$ = new d.Op({ left: l[h - 5], op: l[h - 4], allsome: l[h - 3], right: l[h - 1], queriesidx: d.queries.length }), d.queries.push(l[h - 1]);
          break;
        case 417:
          this.$ = new d.Op({ left: l[h - 5], op: l[h - 4], allsome: l[h - 3], right: l[h - 1] });
          break;
        case 418:
          l[h - 2].op == "BETWEEN1" ? l[h - 2].left.op == "AND" ? this.$ = new d.Op({ left: l[h - 2].left.left, op: "AND", right: new d.Op({ left: l[h - 2].left.right, op: "BETWEEN", right1: l[h - 2].right, right2: l[h] }) }) : this.$ = new d.Op({ left: l[h - 2].left, op: "BETWEEN", right1: l[h - 2].right, right2: l[h] }) : l[h - 2].op == "NOT BETWEEN1" ? l[h - 2].left.op == "AND" ? this.$ = new d.Op({ left: l[h - 2].left.left, op: "AND", right: new d.Op({ left: l[h - 2].left.right, op: "NOT BETWEEN", right1: l[h - 2].right, right2: l[h] }) }) : this.$ = new d.Op({ left: l[h - 2].left, op: "NOT BETWEEN", right1: l[h - 2].right, right2: l[h] }) : this.$ = new d.Op({ left: l[h - 2], op: "AND", right: l[h] });
          break;
        case 419:
          this.$ = new d.Op({ left: l[h - 2], op: "OR", right: l[h] });
          break;
        case 420:
          this.$ = new d.UniOp({ op: "NOT", right: l[h] });
          break;
        case 421:
          this.$ = new d.UniOp({ op: "-", right: l[h] });
          break;
        case 422:
          this.$ = new d.UniOp({ op: "+", right: l[h] });
          break;
        case 423:
          this.$ = new d.UniOp({ op: "~", right: l[h] });
          break;
        case 424:
          this.$ = new d.UniOp({ op: "#", right: l[h] });
          break;
        case 425:
          this.$ = new d.UniOp({ right: l[h - 1] });
          break;
        case 426:
          d.queries || (d.queries = []), this.$ = new d.Op({ left: l[h - 4], op: "IN", right: l[h - 1], queriesidx: d.queries.length }), d.queries.push(l[h - 1]);
          break;
        case 427:
          d.queries || (d.queries = []), this.$ = new d.Op({ left: l[h - 5], op: "NOT IN", right: l[h - 1], queriesidx: d.queries.length }), d.queries.push(l[h - 1]);
          break;
        case 428:
          this.$ = new d.Op({ left: l[h - 4], op: "IN", right: l[h - 1] });
          break;
        case 429:
          this.$ = new d.Op({ left: l[h - 5], op: "NOT IN", right: l[h - 1] });
          break;
        case 430:
          this.$ = new d.Op({ left: l[h - 3], op: "IN", right: [] });
          break;
        case 431:
          this.$ = new d.Op({ left: l[h - 4], op: "NOT IN", right: [] });
          break;
        case 432:
        case 434:
          this.$ = new d.Op({ left: l[h - 2], op: "IN", right: l[h] });
          break;
        case 433:
        case 435:
          this.$ = new d.Op({ left: l[h - 3], op: "NOT IN", right: l[h] });
          break;
        case 436:
          this.$ = new d.Op({ left: l[h - 2], op: "BETWEEN1", right: l[h] });
          break;
        case 437:
          this.$ = new d.Op({ left: l[h - 2], op: "NOT BETWEEN1", right: l[h] });
          break;
        case 438:
          this.$ = new d.Op({ op: "IS", left: l[h - 2], right: l[h] });
          break;
        case 439:
          this.$ = new d.Op({ op: "IS", left: l[h - 2], right: new d.UniOp({ op: "NOT", right: new d.NullValue({ value: void 0 }) }) });
          break;
        case 440:
          this.$ = new d.Convert({ expression: l[h - 2] }), d.extend(this.$, l[h]);
          break;
        case 441:
        case 442:
          this.$ = l[h];
          break;
        case 443:
          this.$ = l[h - 1];
          break;
        case 450:
          this.$ = "ALL";
          break;
        case 451:
          this.$ = "SOME";
          break;
        case 452:
          this.$ = "ANY";
          break;
        case 453:
          this.$ = new d.Update({ table: l[h - 4], columns: l[h - 2], where: l[h] });
          break;
        case 454:
          this.$ = new d.Update({ table: l[h - 2], columns: l[h] });
          break;
        case 457:
          this.$ = new d.SetColumn({ column: l[h - 2], expression: l[h] });
          break;
        case 458:
          this.$ = new d.SetColumn({ variable: l[h - 2], expression: l[h], method: l[h - 3] });
          break;
        case 459:
          this.$ = new d.Delete({ table: l[h - 2], where: l[h] });
          break;
        case 460:
          this.$ = new d.Delete({ table: l[h] });
          break;
        case 461:
          this.$ = new d.Insert({ into: l[h - 2], values: l[h] });
          break;
        case 462:
          this.$ = new d.Insert({ into: l[h - 1], values: l[h] });
          break;
        case 463:
        case 465:
          this.$ = new d.Insert({ into: l[h - 2], values: l[h], orreplace: !0 });
          break;
        case 464:
        case 466:
          this.$ = new d.Insert({ into: l[h - 1], values: l[h], orreplace: !0 });
          break;
        case 467:
          this.$ = new d.Insert({ into: l[h - 2], default: !0 });
          break;
        case 468:
          this.$ = new d.Insert({ into: l[h - 5], columns: l[h - 3], values: l[h] });
          break;
        case 469:
          this.$ = new d.Insert({ into: l[h - 4], columns: l[h - 2], values: l[h] });
          break;
        case 470:
          this.$ = new d.Insert({ into: l[h - 1], select: l[h] });
          break;
        case 471:
          this.$ = new d.Insert({ into: l[h - 1], select: l[h], orreplace: !0 });
          break;
        case 472:
          this.$ = new d.Insert({ into: l[h - 4], columns: l[h - 2], select: l[h] });
          break;
        case 477:
          this.$ = [l[h - 1]];
          break;
        case 480:
          this.$ = l[h - 4], l[h - 4].push(l[h - 1]);
          break;
        case 481:
        case 482:
        case 484:
        case 492:
          this.$ = l[h - 2], l[h - 2].push(l[h]);
          break;
        case 493:
          this.$ = new d.CreateTable({ table: l[h - 4] }), d.extend(this.$, l[h - 7]), d.extend(this.$, l[h - 6]), d.extend(this.$, l[h - 5]), d.extend(this.$, l[h - 2]), d.extend(this.$, l[h]);
          break;
        case 494:
          this.$ = new d.CreateTable({ table: l[h] }), d.extend(this.$, l[h - 3]), d.extend(this.$, l[h - 2]), d.extend(this.$, l[h - 1]);
          break;
        case 496:
          this.$ = { class: !0 };
          break;
        case 506:
          this.$ = { temporary: !0 };
          break;
        case 508:
          this.$ = { ifnotexists: !0 };
          break;
        case 509:
          this.$ = { columns: l[h - 2], constraints: l[h] };
          break;
        case 510:
          this.$ = { columns: l[h] };
          break;
        case 511:
          this.$ = { as: l[h] };
          break;
        case 512:
        case 536:
          this.$ = [l[h]];
          break;
        case 514:
        case 515:
        case 516:
        case 517:
        case 518:
          l[h].constraintid = l[h - 1], this.$ = l[h];
          break;
        case 521:
          this.$ = { type: "CHECK", expression: l[h - 1] };
          break;
        case 522:
          this.$ = { type: "PRIMARY KEY", columns: l[h - 1], clustered: (l[h - 3] + "").toUpperCase() };
          break;
        case 523:
          this.$ = { type: "FOREIGN KEY", columns: l[h - 5], fktable: l[h - 2], fkcolumns: l[h - 1] };
          break;
        case 529:
          this.$ = { type: "UNIQUE", columns: l[h - 1], clustered: (l[h - 3] + "").toUpperCase() };
          break;
        case 538:
          this.$ = new d.ColumnDef({ columnid: l[h - 2] }), d.extend(this.$, l[h - 1]), d.extend(this.$, l[h]);
          break;
        case 539:
          this.$ = new d.ColumnDef({ columnid: l[h - 1] }), d.extend(this.$, l[h]);
          break;
        case 540:
          this.$ = new d.ColumnDef({ columnid: l[h], dbtypeid: "" });
          break;
        case 541:
          this.$ = { dbtypeid: l[h - 5], dbsize: l[h - 3], dbprecision: +l[h - 1] };
          break;
        case 542:
          this.$ = { dbtypeid: l[h - 3], dbsize: l[h - 1] };
          break;
        case 543:
          this.$ = { dbtypeid: l[h] };
          break;
        case 544:
          this.$ = { dbtypeid: "ENUM", enumvalues: l[h - 1] };
          break;
        case 545:
          this.$ = l[h - 1], l[h - 1].dbtypeid += "[" + l[h] + "]";
          break;
        case 547:
        case 754:
          this.$ = +l[h];
          break;
        case 549:
          this.$ = void 0;
          break;
        case 551:
          d.extend(l[h - 1], l[h]), this.$ = l[h - 1];
          break;
        case 554:
          this.$ = { primarykey: !0 };
          break;
        case 555:
        case 556:
          this.$ = { foreignkey: { table: l[h - 1], columnid: l[h] } };
          break;
        case 557:
          this.$ = { identity: { value: l[h - 3], step: l[h - 1] } };
          break;
        case 558:
          this.$ = { identity: { value: 1, step: 1 } };
          break;
        case 559:
        case 561:
          this.$ = { default: l[h] };
          break;
        case 560:
          this.$ = { default: l[h - 1] };
          break;
        case 562:
          this.$ = { null: !0 };
          break;
        case 563:
          this.$ = { notnull: !0 };
          break;
        case 564:
          this.$ = { check: l[h] };
          break;
        case 565:
          this.$ = { unique: !0 };
          break;
        case 566:
          this.$ = { onupdate: l[h] };
          break;
        case 567:
          this.$ = { onupdate: l[h - 1] };
          break;
        case 568:
          this.$ = new d.DropTable({ tables: l[h], type: l[h - 2] }), d.extend(this.$, l[h - 1]);
          break;
        case 572:
          this.$ = { ifexists: !0 };
          break;
        case 573:
          this.$ = new d.AlterTable({ table: l[h - 3], renameto: l[h] });
          break;
        case 574:
          this.$ = new d.AlterTable({ table: l[h - 3], addcolumn: l[h] });
          break;
        case 575:
          this.$ = new d.AlterTable({ table: l[h - 3], modifycolumn: l[h] });
          break;
        case 576:
          this.$ = new d.AlterTable({ table: l[h - 5], renamecolumn: l[h - 2], to: l[h] });
          break;
        case 577:
          this.$ = new d.AlterTable({ table: l[h - 3], dropcolumn: l[h] });
          break;
        case 578:
          this.$ = new d.AlterTable({ table: l[h - 2], renameto: l[h] });
          break;
        case 579:
          this.$ = new d.AttachDatabase({ databaseid: l[h], engineid: l[h - 2].toUpperCase() });
          break;
        case 580:
          this.$ = new d.AttachDatabase({ databaseid: l[h - 3], engineid: l[h - 5].toUpperCase(), args: l[h - 1] });
          break;
        case 581:
          this.$ = new d.AttachDatabase({ databaseid: l[h - 2], engineid: l[h - 4].toUpperCase(), as: l[h] });
          break;
        case 582:
          this.$ = new d.AttachDatabase({ databaseid: l[h - 5], engineid: l[h - 7].toUpperCase(), as: l[h], args: l[h - 3] });
          break;
        case 583:
          this.$ = new d.DetachDatabase({ databaseid: l[h] });
          break;
        case 584:
          this.$ = new d.CreateDatabase({ databaseid: l[h] }), d.extend(this.$, l[h]);
          break;
        case 585:
          this.$ = new d.CreateDatabase({ engineid: l[h - 4].toUpperCase(), databaseid: l[h - 1], as: l[h] }), d.extend(this.$, l[h - 2]);
          break;
        case 586:
          this.$ = new d.CreateDatabase({ engineid: l[h - 7].toUpperCase(), databaseid: l[h - 4], args: l[h - 2], as: l[h] }), d.extend(this.$, l[h - 5]);
          break;
        case 587:
          this.$ = new d.CreateDatabase({ engineid: l[h - 4].toUpperCase(), as: l[h], args: [l[h - 1]] }), d.extend(this.$, l[h - 2]);
          break;
        case 588:
          this.$ = void 0;
          break;
        case 590:
        case 591:
          this.$ = new d.UseDatabase({ databaseid: l[h] });
          break;
        case 592:
          this.$ = new d.DropDatabase({ databaseid: l[h] }), d.extend(this.$, l[h - 1]);
          break;
        case 593:
        case 594:
          this.$ = new d.DropDatabase({ databaseid: l[h], engineid: l[h - 3].toUpperCase() }), d.extend(this.$, l[h - 1]);
          break;
        case 595:
          this.$ = new d.CreateIndex({ indexid: l[h - 5], table: l[h - 3], columns: l[h - 1] });
          break;
        case 596:
          this.$ = new d.CreateIndex({ indexid: l[h - 5], table: l[h - 3], columns: l[h - 1], unique: !0 });
          break;
        case 597:
          this.$ = new d.DropIndex({ indexid: l[h] });
          break;
        case 598:
          this.$ = new d.ShowDatabases();
          break;
        case 599:
          this.$ = new d.ShowDatabases({ like: l[h] });
          break;
        case 600:
          this.$ = new d.ShowDatabases({ engineid: l[h - 1].toUpperCase() });
          break;
        case 601:
          this.$ = new d.ShowDatabases({ engineid: l[h - 3].toUpperCase(), like: l[h] });
          break;
        case 602:
          this.$ = new d.ShowTables();
          break;
        case 603:
          this.$ = new d.ShowTables({ like: l[h] });
          break;
        case 604:
          this.$ = new d.ShowTables({ databaseid: l[h] });
          break;
        case 605:
          this.$ = new d.ShowTables({ like: l[h], databaseid: l[h - 2] });
          break;
        case 606:
          this.$ = new d.ShowColumns({ table: l[h] });
          break;
        case 607:
          this.$ = new d.ShowColumns({ table: l[h - 2], databaseid: l[h] });
          break;
        case 608:
          this.$ = new d.ShowIndex({ table: l[h] });
          break;
        case 609:
          this.$ = new d.ShowIndex({ table: l[h - 2], databaseid: l[h] });
          break;
        case 610:
          this.$ = new d.ShowCreateTable({ table: l[h] });
          break;
        case 611:
          this.$ = new d.ShowCreateTable({ table: l[h - 2], databaseid: l[h] });
          break;
        case 612:
          this.$ = new d.CreateTable({ table: l[h - 6], view: !0, select: l[h - 1], viewcolumns: l[h - 4] }), d.extend(this.$, l[h - 9]), d.extend(this.$, l[h - 7]);
          break;
        case 613:
          this.$ = new d.CreateTable({ table: l[h - 3], view: !0, select: l[h - 1] }), d.extend(this.$, l[h - 6]), d.extend(this.$, l[h - 4]);
          break;
        case 617:
          this.$ = new d.DropTable({ tables: l[h], view: !0 }), d.extend(this.$, l[h - 1]);
          break;
        case 618:
        case 764:
          this.$ = new d.ExpressionStatement({ expression: l[h] });
          break;
        case 619:
          this.$ = new d.Source({ url: l[h].value });
          break;
        case 620:
          this.$ = new d.Assert({ value: l[h] });
          break;
        case 621:
          this.$ = new d.Assert({ value: l[h].value });
          break;
        case 622:
          this.$ = new d.Assert({ value: l[h], message: l[h - 2] });
          break;
        case 624:
        case 635:
        case 637:
          this.$ = l[h].value;
          break;
        case 625:
        case 633:
          this.$ = +l[h].value;
          break;
        case 626:
          this.$ = !!l[h].value;
          break;
        case 634:
          this.$ = "" + l[h].value;
          break;
        case 643:
          this.$ = {};
          break;
        case 646:
          this.$ = [];
          break;
        case 647:
          d.extend(l[h - 2], l[h]), this.$ = l[h - 2];
          break;
        case 649:
          this.$ = {}, this.$[l[h - 2].substr(1, l[h - 2].length - 2)] = l[h];
          break;
        case 650:
        case 651:
          this.$ = {}, this.$[l[h - 2]] = l[h];
          break;
        case 654:
          this.$ = new d.SetVariable({ variable: l[h - 2].toLowerCase(), value: l[h] });
          break;
        case 655:
          this.$ = new d.SetVariable({ variable: l[h - 1].toLowerCase(), value: l[h] });
          break;
        case 656:
          this.$ = new d.SetVariable({ variable: l[h - 2], expression: l[h] });
          break;
        case 657:
          this.$ = new d.SetVariable({ variable: l[h - 3], props: l[h - 2], expression: l[h] });
          break;
        case 658:
          this.$ = new d.SetVariable({ variable: l[h - 2], expression: l[h], method: l[h - 3] });
          break;
        case 659:
          this.$ = new d.SetVariable({ variable: l[h - 3], props: l[h - 2], expression: l[h], method: l[h - 4] });
          break;
        case 660:
          this.$ = "@";
          break;
        case 661:
          this.$ = "$";
          break;
        case 667:
          this.$ = !0;
          break;
        case 668:
          this.$ = !1;
          break;
        case 669:
          this.$ = new d.CommitTransaction();
          break;
        case 670:
          this.$ = new d.RollbackTransaction();
          break;
        case 671:
          this.$ = new d.BeginTransaction();
          break;
        case 672:
          this.$ = new d.If({ expression: l[h - 2], thenstat: l[h - 1], elsestat: l[h] }), l[h - 1].exists && (this.$.exists = l[h - 1].exists), l[h - 1].queries && (this.$.queries = l[h - 1].queries);
          break;
        case 673:
          this.$ = new d.If({ expression: l[h - 1], thenstat: l[h] }), l[h].exists && (this.$.exists = l[h].exists), l[h].queries && (this.$.queries = l[h].queries);
          break;
        case 674:
          this.$ = l[h];
          break;
        case 675:
          this.$ = new d.While({ expression: l[h - 1], loopstat: l[h] }), l[h].exists && (this.$.exists = l[h].exists), l[h].queries && (this.$.queries = l[h].queries);
          break;
        case 676:
          this.$ = new d.Continue();
          break;
        case 677:
          this.$ = new d.Break();
          break;
        case 678:
          this.$ = new d.BeginEnd({ statements: l[h - 1] });
          break;
        case 679:
          this.$ = new d.Print({ exprs: l[h] });
          break;
        case 680:
          this.$ = new d.Print({ select: l[h] });
          break;
        case 681:
          this.$ = new d.Require({ paths: l[h] });
          break;
        case 682:
          this.$ = new d.Require({ plugins: l[h] });
          break;
        case 683:
        case 684:
          this.$ = l[h].toUpperCase();
          break;
        case 685:
          this.$ = new d.Echo({ expr: l[h] });
          break;
        case 690:
          this.$ = new d.Declare({ declares: l[h] });
          break;
        case 693:
          this.$ = { variable: l[h - 1] }, d.extend(this.$, l[h]);
          break;
        case 694:
          this.$ = { variable: l[h - 2] }, d.extend(this.$, l[h]);
          break;
        case 695:
          this.$ = { variable: l[h - 3], expression: l[h] }, d.extend(this.$, l[h - 2]);
          break;
        case 696:
          this.$ = { variable: l[h - 4], expression: l[h] }, d.extend(this.$, l[h - 2]);
          break;
        case 697:
          this.$ = new d.TruncateTable({ table: l[h] });
          break;
        case 698:
          this.$ = new d.Merge(), d.extend(this.$, l[h - 4]), d.extend(this.$, l[h - 3]), d.extend(this.$, l[h - 2]), d.extend(this.$, { matches: l[h - 1] }), d.extend(this.$, l[h]);
          break;
        case 699:
        case 700:
          this.$ = { into: l[h] };
          break;
        case 702:
          this.$ = { on: l[h] };
          break;
        case 707:
          this.$ = { matched: !0, action: l[h] };
          break;
        case 708:
          this.$ = { matched: !0, expr: l[h - 2], action: l[h] };
          break;
        case 709:
          this.$ = { delete: !0 };
          break;
        case 710:
          this.$ = { update: l[h] };
          break;
        case 711:
        case 712:
          this.$ = { matched: !1, bytarget: !0, action: l[h] };
          break;
        case 713:
        case 714:
          this.$ = { matched: !1, bytarget: !0, expr: l[h - 2], action: l[h] };
          break;
        case 715:
          this.$ = { matched: !1, bysource: !0, action: l[h] };
          break;
        case 716:
          this.$ = { matched: !1, bysource: !0, expr: l[h - 2], action: l[h] };
          break;
        case 717:
          this.$ = { insert: !0, values: l[h] };
          break;
        case 718:
          this.$ = { insert: !0, values: l[h], columns: l[h - 3] };
          break;
        case 719:
          this.$ = { insert: !0, defaultvalues: !0 };
          break;
        case 720:
          this.$ = { insert: !0, defaultvalues: !0, columns: l[h - 3] };
          break;
        case 722:
          this.$ = { output: { columns: l[h] } };
          break;
        case 723:
          this.$ = { output: { columns: l[h - 3], intovar: l[h], method: l[h - 1] } };
          break;
        case 724:
          this.$ = { output: { columns: l[h - 2], intotable: l[h] } };
          break;
        case 725:
          this.$ = { output: { columns: l[h - 5], intotable: l[h - 3], intocolumns: l[h - 1] } };
          break;
        case 726:
          this.$ = new d.CreateVertex({ class: l[h - 3], sharp: l[h - 2], name: l[h - 1] }), d.extend(this.$, l[h]);
          break;
        case 729:
          this.$ = { sets: l[h] };
          break;
        case 730:
          this.$ = { content: l[h] };
          break;
        case 731:
          this.$ = { select: l[h] };
          break;
        case 732:
          this.$ = new d.CreateEdge({ from: l[h - 3], to: l[h - 1], name: l[h - 5] }), d.extend(this.$, l[h]);
          break;
        case 733:
          this.$ = new d.CreateGraph({ graph: l[h] });
          break;
        case 734:
          this.$ = new d.CreateGraph({ from: l[h] });
          break;
        case 737:
          this.$ = l[h - 2], l[h - 1] && (this.$.json = new d.Json({ value: l[h - 1] })), l[h] && (this.$.as = l[h]);
          break;
        case 738:
          this.$ = { source: l[h - 6], target: l[h] }, l[h - 3] && (this.$.json = new d.Json({ value: l[h - 3] })), l[h - 2] && (this.$.as = l[h - 2]), d.extend(this.$, l[h - 4]);
          break;
        case 739:
          this.$ = { source: l[h - 5], target: l[h] }, l[h - 2] && (this.$.json = new d.Json({ value: l[h - 3] })), l[h - 1] && (this.$.as = l[h - 2]);
          break;
        case 740:
          this.$ = { source: l[h - 2], target: l[h] };
          break;
        case 744:
          this.$ = { vars: l[h], method: l[h - 1] };
          break;
        case 747:
        case 748:
          k = l[h - 1], this.$ = { prop: l[h - 3], sharp: l[h - 2], name: k === void 0 ? void 0 : k.substr(1, k.length - 2), class: l[h] };
          break;
        case 749:
          var z = l[h - 1];
          this.$ = { sharp: l[h - 2], name: z === void 0 ? void 0 : z.substr(1, z.length - 2), class: l[h] };
          break;
        case 750:
          var H = l[h - 1];
          this.$ = { name: H === void 0 ? void 0 : H.substr(1, H.length - 2), class: l[h] };
          break;
        case 751:
          this.$ = { class: l[h] };
          break;
        case 757:
          this.$ = new d.AddRule({ left: l[h - 2], right: l[h] });
          break;
        case 758:
          this.$ = new d.AddRule({ right: l[h] });
          break;
        case 761:
          this.$ = new d.Term({ termid: l[h] });
          break;
        case 762:
          this.$ = new d.Term({ termid: l[h - 3], args: l[h - 1] });
          break;
        case 765:
          this.$ = new d.CreateTrigger({ trigger: l[h - 6], when: l[h - 5], action: l[h - 4], table: l[h - 2], statement: l[h] }), l[h].exists && (this.$.exists = l[h].exists), l[h].queries && (this.$.queries = l[h].queries);
          break;
        case 766:
          this.$ = new d.CreateTrigger({ trigger: l[h - 5], when: l[h - 4], action: l[h - 3], table: l[h - 1], funcid: l[h] });
          break;
        case 767:
          this.$ = new d.CreateTrigger({ trigger: l[h - 6], when: l[h - 4], action: l[h - 3], table: l[h - 5], statement: l[h] }), l[h].exists && (this.$.exists = l[h].exists), l[h].queries && (this.$.queries = l[h].queries);
          break;
        case 768:
        case 769:
        case 771:
          this.$ = "AFTER";
          break;
        case 770:
          this.$ = "BEFORE";
          break;
        case 772:
          this.$ = "INSTEADOF";
          break;
        case 773:
          this.$ = "INSERT";
          break;
        case 774:
          this.$ = "DELETE";
          break;
        case 775:
          this.$ = "UPDATE";
          break;
        case 776:
          this.$ = new d.DropTrigger({ trigger: l[h] });
          break;
        case 777:
          this.$ = new d.Reindex({ indexid: l[h] });
          break;
        case 1051:
        case 1071:
        case 1073:
        case 1075:
        case 1079:
        case 1081:
        case 1083:
        case 1085:
        case 1087:
        case 1089:
          this.$ = [];
          break;
        case 1052:
        case 1066:
        case 1068:
        case 1072:
        case 1074:
        case 1076:
        case 1080:
        case 1082:
        case 1084:
        case 1086:
        case 1088:
        case 1090:
          l[h - 1].push(l[h]);
          break;
        case 1065:
        case 1067:
          this.$ = [l[h]];
      }
    }, table: [v([10, 605, 766], b = [2, 13], { 8: 1, 9: 2, 12: 3, 13: 4, 17: 5, 18: 7, 19: 8, 20: 9, 21: 10, 22: 11, 23: 12, 24: 13, 25: 14, 26: 15, 27: 16, 28: 17, 29: 18, 30: 19, 31: 20, 32: 21, 33: 22, 34: 23, 35: 24, 36: 25, 37: 26, 38: 27, 39: 28, 40: 29, 41: 30, 42: 31, 43: 32, 44: 33, 45: 34, 46: 35, 47: 36, 48: 37, 49: 38, 50: 39, 51: 40, 52: 41, 54: 43, 55: 44, 56: 45, 57: 46, 58: 47, 59: 48, 60: 49, 61: 50, 62: 51, 63: 52, 64: 53, 65: 54, 66: 55, 67: 56, 68: 57, 69: 58, 70: 59, 71: 60, 79: 75, 507: 95, 184: 99, 3: 100, 2: g = [1, 104], 4: C = [1, 102], 5: x = [1, 103], 14: I = [1, 6], 53: P = [1, 42], 72: M = [1, 79], 89: U = [1, 76], 124: j = [1, 94], 146: K = [1, 93], 156: Z = [1, 69], 189: re = [1, 101], 270: V = [1, 85], 271: at = [1, 64], 292: Tt = [1, 71], 338: Wt = [1, 84], 341: b1 = [1, 66], 342: R1 = [1, 70], 399: C1 = [1, 68], 403: D1 = [1, 61], 404: M1 = [1, 74], 407: B1 = [1, 62], 409: V1 = [1, 67], 411: Y1 = [1, 83], 412: tn = [1, 77], 420: Vt = [1, 86], 421: w1 = [1, 87], 437: l1 = [1, 81], 439: Yt = [1, 82], 440: Or = [1, 80], 442: pr = [1, 88], 443: wr = [1, 89], 444: rn = [1, 90], 445: xn = [1, 91], 446: nn = [1, 92], 450: Mi = [1, 98], 451: c2 = [1, 65], 454: gi = [1, 78], 455: Sr = [1, 72], 508: dn = [1, 96], 510: Lr = [1, 97], 511: Ai = [1, 63], 520: Zn = [1, 73] }), { 1: [3] }, { 10: [1, 105], 11: 106, 605: er, 766: nr }, v(Sn, [2, 8]), v(Sn, [2, 9]), v(ve, [2, 12]), v(Sn, b, { 17: 5, 18: 7, 19: 8, 20: 9, 21: 10, 22: 11, 23: 12, 24: 13, 25: 14, 26: 15, 27: 16, 28: 17, 29: 18, 30: 19, 31: 20, 32: 21, 33: 22, 34: 23, 35: 24, 36: 25, 37: 26, 38: 27, 39: 28, 40: 29, 41: 30, 42: 31, 43: 32, 44: 33, 45: 34, 46: 35, 47: 36, 48: 37, 49: 38, 50: 39, 51: 40, 52: 41, 54: 43, 55: 44, 56: 45, 57: 46, 58: 47, 59: 48, 60: 49, 61: 50, 62: 51, 63: 52, 64: 53, 65: 54, 66: 55, 67: 56, 68: 57, 69: 58, 70: 59, 71: 60, 79: 75, 507: 95, 184: 99, 3: 100, 12: 109, 2: g, 4: C, 5: x, 15: [1, 110], 53: P, 72: M, 89: U, 124: j, 146: K, 156: Z, 189: re, 270: V, 271: at, 292: Tt, 338: Wt, 341: b1, 342: R1, 399: C1, 403: D1, 404: M1, 407: B1, 409: V1, 411: Y1, 412: tn, 420: Vt, 421: w1, 437: l1, 439: Yt, 440: Or, 442: pr, 443: wr, 444: rn, 445: xn, 446: nn, 450: Mi, 451: c2, 454: gi, 455: Sr, 508: dn, 510: Lr, 511: Ai, 520: Zn }), v(ve, [2, 14]), v(ve, [2, 15]), v(ve, [2, 16]), v(ve, [2, 17]), v(ve, [2, 18]), v(ve, [2, 19]), v(ve, [2, 20]), v(ve, [2, 21]), v(ve, [2, 22]), v(ve, [2, 23]), v(ve, [2, 24]), v(ve, [2, 25]), v(ve, [2, 26]), v(ve, [2, 27]), v(ve, [2, 28]), v(ve, [2, 29]), v(ve, [2, 30]), v(ve, [2, 31]), v(ve, [2, 32]), v(ve, [2, 33]), v(ve, [2, 34]), v(ve, [2, 35]), v(ve, [2, 36]), v(ve, [2, 37]), v(ve, [2, 38]), v(ve, [2, 39]), v(ve, [2, 40]), v(ve, [2, 41]), v(ve, [2, 42]), v(ve, [2, 43]), v(ve, [2, 44]), v(ve, [2, 45]), v(ve, [2, 46]), v(ve, [2, 47]), v(ve, [2, 48]), v(ve, [2, 49]), v(ve, [2, 50]), v(ve, [2, 51]), v(ve, [2, 52]), v(ve, [2, 53]), v(ve, [2, 54]), v(ve, [2, 55]), v(ve, [2, 56]), v(ve, [2, 57]), v(ve, [2, 58]), v(ve, [2, 59]), v(ve, [2, 60]), v(ve, [2, 61]), v(ve, [2, 62]), v(ve, [2, 63]), v(ve, [2, 64]), v(ve, [2, 65]), v(ve, [2, 66]), v(ve, [2, 67]), { 356: [1, 111] }, { 2: g, 3: 112, 4: C, 5: x }, { 2: g, 3: 114, 4: C, 5: x, 156: ye, 200: 113, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe }, v(Ks, [2, 505], { 3: 122, 351: 126, 2: g, 4: C, 5: x, 134: Na, 135: Da, 187: [1, 124], 193: [1, 123], 272: [1, 130], 273: [1, 131], 360: [1, 132], 408: [1, 121], 475: [1, 125], 512: [1, 129] }), { 145: Os, 452: 133, 453: 134 }, { 183: [1, 136] }, { 408: [1, 137] }, { 2: g, 3: 139, 4: C, 5: x, 130: [1, 145], 193: [1, 140], 356: [1, 144], 400: 141, 408: [1, 138], 413: [1, 142], 512: [1, 143] }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 146, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(vi, ro, { 343: 205, 171: [1, 206], 198: G2 }), v(vi, ro, { 343: 208, 198: G2 }), { 2: g, 3: 220, 4: C, 5: x, 77: _o, 132: ks, 143: ge, 144: 213, 145: Be, 152: he, 156: ye, 181: be, 198: [1, 211], 199: 214, 200: 216, 201: 215, 202: 218, 209: 210, 213: q2, 214: 219, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 305: Ce, 422: 191, 423: fe, 427: le, 456: 209 }, { 2: g, 3: 222, 4: C, 5: x }, { 356: [1, 223] }, v(Ao, [2, 1047], { 80: 224, 106: 225, 107: [1, 226] }), v(Is, [2, 1051], { 90: 227 }), { 2: g, 3: 231, 4: C, 5: x, 190: [1, 229], 193: [1, 232], 271: [1, 228], 356: [1, 233], 408: [1, 230] }, { 356: [1, 234] }, { 2: g, 3: 237, 4: C, 5: x, 73: 235, 75: 236 }, v([309, 605, 766], b, { 12: 3, 13: 4, 17: 5, 18: 7, 19: 8, 20: 9, 21: 10, 22: 11, 23: 12, 24: 13, 25: 14, 26: 15, 27: 16, 28: 17, 29: 18, 30: 19, 31: 20, 32: 21, 33: 22, 34: 23, 35: 24, 36: 25, 37: 26, 38: 27, 39: 28, 40: 29, 41: 30, 42: 31, 43: 32, 44: 33, 45: 34, 46: 35, 47: 36, 48: 37, 49: 38, 50: 39, 51: 40, 52: 41, 54: 43, 55: 44, 56: 45, 57: 46, 58: 47, 59: 48, 60: 49, 61: 50, 62: 51, 63: 52, 64: 53, 65: 54, 66: 55, 67: 56, 68: 57, 69: 58, 70: 59, 71: 60, 79: 75, 507: 95, 184: 99, 3: 100, 9: 239, 2: g, 4: C, 5: x, 14: I, 53: P, 72: M, 89: U, 124: j, 146: K, 156: Z, 189: re, 270: V, 271: at, 292: Tt, 338: Wt, 341: b1, 342: R1, 399: C1, 403: D1, 404: M1, 407: B1, 409: V1, 411: Y1, 412: tn, 420: Vt, 421: w1, 437: l1, 438: [1, 238], 439: Yt, 440: Or, 442: pr, 443: wr, 444: rn, 445: xn, 446: nn, 450: Mi, 451: c2, 454: gi, 455: Sr, 508: dn, 510: Lr, 511: Ai, 520: Zn }), { 438: [1, 240] }, { 438: [1, 241] }, { 2: g, 3: 243, 4: C, 5: x, 408: [1, 242] }, { 2: g, 3: 245, 4: C, 5: x, 199: 244 }, v(c1, [2, 314]), { 113: 246, 132: we, 299: _e }, { 2: g, 3: 114, 4: C, 5: x, 113: 252, 131: Le, 132: [1, 249], 143: ge, 144: 247, 145: mr, 152: he, 156: ye, 181: be, 196: 251, 200: 256, 201: 255, 261: 253, 262: 254, 269: Ro, 278: 248, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 305: Ce, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 258, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(ve, [2, 676]), v(ve, [2, 677]), { 2: g, 3: 169, 4: C, 5: x, 40: 260, 56: 166, 77: Ue, 79: 75, 89: U, 94: 261, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 151: 259, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 184: 99, 189: re, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 267, 4: C, 5: x, 113: 264, 132: we, 299: _e, 447: 262, 448: 263, 449: 265, 450: no }, { 2: g, 3: 268, 4: C, 5: x, 143: hr, 145: u1, 434: 269 }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 272, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 508: [1, 273] }, { 2: g, 3: 100, 4: C, 5: x, 507: 275, 509: 274 }, { 2: g, 3: 114, 4: C, 5: x, 156: ye, 200: 276, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 277, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(f2, io, { 186: 281, 164: [1, 280], 185: [1, 278], 187: [1, 279], 195: $i }), v(or, [2, 761], { 77: [1, 283] }), v([2, 4, 5, 10, 72, 77, 78, 93, 98, 107, 118, 128, 131, 132, 137, 143, 145, 152, 154, 156, 162, 164, 168, 169, 179, 180, 181, 183, 185, 187, 195, 198, 232, 244, 245, 249, 251, 269, 270, 274, 275, 277, 284, 285, 286, 287, 288, 289, 290, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 305, 306, 309, 313, 315, 320, 423, 427, 605, 766], [2, 152], { 149: [1, 284], 150: [1, 285], 190: [1, 286], 191: [1, 287], 192: [1, 288], 193: [1, 289], 194: [1, 290] }), v(W, [2, 1]), v(W, [2, 2]), { 6: 291, 131: [1, 440], 172: [1, 463], 243: [1, 439], 244: [1, 374], 245: [1, 408], 249: [1, 412], 373: [1, 405], 384: [1, 296], 405: [1, 298], 413: [1, 550], 417: [1, 472], 419: [1, 444], 420: [1, 510], 436: [1, 443], 438: [1, 526], 443: [1, 343], 463: [1, 419], 467: [1, 449], 473: [1, 342], 517: [1, 308], 518: [1, 300], 519: [1, 400], 521: [1, 292], 522: [1, 293], 523: [1, 294], 524: [1, 295], 525: [1, 297], 526: [1, 299], 527: [1, 301], 528: [1, 302], 529: [1, 303], 530: [1, 304], 531: [1, 305], 532: [1, 306], 533: [1, 307], 534: [1, 309], 535: [1, 310], 536: [1, 311], 537: [1, 312], 538: [1, 313], 539: [1, 314], 540: [1, 315], 541: [1, 316], 542: [1, 317], 543: [1, 318], 544: [1, 319], 545: [1, 320], 546: [1, 321], 547: [1, 322], 548: [1, 323], 549: [1, 324], 550: [1, 325], 551: [1, 326], 552: [1, 327], 553: [1, 328], 554: [1, 329], 555: [1, 330], 556: [1, 331], 557: [1, 332], 558: [1, 333], 559: [1, 334], 560: [1, 335], 561: [1, 336], 562: [1, 337], 563: [1, 338], 564: [1, 339], 565: [1, 340], 566: [1, 341], 567: [1, 344], 568: [1, 345], 569: [1, 346], 570: [1, 347], 571: [1, 348], 572: [1, 349], 573: [1, 350], 574: [1, 351], 575: [1, 352], 576: [1, 353], 577: [1, 354], 578: [1, 355], 579: [1, 356], 580: [1, 357], 581: [1, 358], 582: [1, 359], 583: [1, 360], 584: [1, 361], 585: [1, 362], 586: [1, 363], 587: [1, 364], 588: [1, 365], 589: [1, 366], 590: [1, 367], 591: [1, 368], 592: [1, 369], 593: [1, 370], 594: [1, 371], 595: [1, 372], 596: [1, 373], 597: [1, 375], 598: [1, 376], 599: [1, 377], 600: [1, 378], 601: [1, 379], 602: [1, 380], 603: [1, 381], 604: [1, 382], 605: [1, 383], 606: [1, 384], 607: [1, 385], 608: [1, 386], 609: [1, 387], 610: [1, 388], 611: [1, 389], 612: [1, 390], 613: [1, 391], 614: [1, 392], 615: [1, 393], 616: [1, 394], 617: [1, 395], 618: [1, 396], 619: [1, 397], 620: [1, 398], 621: [1, 399], 622: [1, 401], 623: [1, 402], 624: [1, 403], 625: [1, 404], 626: [1, 406], 627: [1, 407], 628: [1, 409], 629: [1, 410], 630: [1, 411], 631: [1, 413], 632: [1, 414], 633: [1, 415], 634: [1, 416], 635: [1, 417], 636: [1, 418], 637: [1, 420], 638: [1, 421], 639: [1, 422], 640: [1, 423], 641: [1, 424], 642: [1, 425], 643: [1, 426], 644: [1, 427], 645: [1, 428], 646: [1, 429], 647: [1, 430], 648: [1, 431], 649: [1, 432], 650: [1, 433], 651: [1, 434], 652: [1, 435], 653: [1, 436], 654: [1, 437], 655: [1, 438], 656: [1, 441], 657: [1, 442], 658: [1, 445], 659: [1, 446], 660: [1, 447], 661: [1, 448], 662: [1, 450], 663: [1, 451], 664: [1, 452], 665: [1, 453], 666: [1, 454], 667: [1, 455], 668: [1, 456], 669: [1, 457], 670: [1, 458], 671: [1, 459], 672: [1, 460], 673: [1, 461], 674: [1, 462], 675: [1, 464], 676: [1, 465], 677: [1, 466], 678: [1, 467], 679: [1, 468], 680: [1, 469], 681: [1, 470], 682: [1, 471], 683: [1, 473], 684: [1, 474], 685: [1, 475], 686: [1, 476], 687: [1, 477], 688: [1, 478], 689: [1, 479], 690: [1, 480], 691: [1, 481], 692: [1, 482], 693: [1, 483], 694: [1, 484], 695: [1, 485], 696: [1, 486], 697: [1, 487], 698: [1, 488], 699: [1, 489], 700: [1, 490], 701: [1, 491], 702: [1, 492], 703: [1, 493], 704: [1, 494], 705: [1, 495], 706: [1, 496], 707: [1, 497], 708: [1, 498], 709: [1, 499], 710: [1, 500], 711: [1, 501], 712: [1, 502], 713: [1, 503], 714: [1, 504], 715: [1, 505], 716: [1, 506], 717: [1, 507], 718: [1, 508], 719: [1, 509], 720: [1, 511], 721: [1, 512], 722: [1, 513], 723: [1, 514], 724: [1, 515], 725: [1, 516], 726: [1, 517], 727: [1, 518], 728: [1, 519], 729: [1, 520], 730: [1, 521], 731: [1, 522], 732: [1, 523], 733: [1, 524], 734: [1, 525], 735: [1, 527], 736: [1, 528], 737: [1, 529], 738: [1, 530], 739: [1, 531], 740: [1, 532], 741: [1, 533], 742: [1, 534], 743: [1, 535], 744: [1, 536], 745: [1, 537], 746: [1, 538], 747: [1, 539], 748: [1, 540], 749: [1, 541], 750: [1, 542], 751: [1, 543], 752: [1, 544], 753: [1, 545], 754: [1, 546], 755: [1, 547], 756: [1, 548], 757: [1, 549], 758: [1, 551], 759: [1, 552], 760: [1, 553], 761: [1, 554], 762: [1, 555], 763: [1, 556], 764: [1, 557], 765: [1, 558] }, { 1: [2, 6] }, v(Sn, b, { 17: 5, 18: 7, 19: 8, 20: 9, 21: 10, 22: 11, 23: 12, 24: 13, 25: 14, 26: 15, 27: 16, 28: 17, 29: 18, 30: 19, 31: 20, 32: 21, 33: 22, 34: 23, 35: 24, 36: 25, 37: 26, 38: 27, 39: 28, 40: 29, 41: 30, 42: 31, 43: 32, 44: 33, 45: 34, 46: 35, 47: 36, 48: 37, 49: 38, 50: 39, 51: 40, 52: 41, 54: 43, 55: 44, 56: 45, 57: 46, 58: 47, 59: 48, 60: 49, 61: 50, 62: 51, 63: 52, 64: 53, 65: 54, 66: 55, 67: 56, 68: 57, 69: 58, 70: 59, 71: 60, 79: 75, 507: 95, 184: 99, 3: 100, 12: 559, 2: g, 4: C, 5: x, 53: P, 72: M, 89: U, 124: j, 146: K, 156: Z, 189: re, 270: V, 271: at, 292: Tt, 338: Wt, 341: b1, 342: R1, 399: C1, 403: D1, 404: M1, 407: B1, 409: V1, 411: Y1, 412: tn, 420: Vt, 421: w1, 437: l1, 439: Yt, 440: Or, 442: pr, 443: wr, 444: rn, 445: xn, 446: nn, 450: Mi, 451: c2, 454: gi, 455: Sr, 508: dn, 510: Lr, 511: Ai, 520: Zn }), v(ss, [2, 1045]), v(ss, [2, 1046]), v(Sn, [2, 10]), { 16: [1, 560] }, { 2: g, 3: 245, 4: C, 5: x, 199: 561 }, { 408: [1, 562] }, v(ve, [2, 764]), { 77: W2 }, { 77: [1, 564] }, { 77: Ct }, { 77: [1, 566] }, { 77: [1, 567] }, { 77: [1, 568] }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 569, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(vi, I1, { 353: 570, 156: so }), { 408: [1, 572] }, { 2: g, 3: 573, 4: C, 5: x }, { 193: [1, 574] }, { 2: g, 3: 580, 4: C, 5: x, 132: L2, 137: Fi, 143: hr, 145: u1, 152: Ri, 183: [1, 576], 434: 587, 476: 575, 477: 577, 478: 578, 481: 579, 485: 584, 496: 581, 500: 583 }, { 130: [1, 591], 352: 588, 356: [1, 590], 413: [1, 589] }, { 113: 593, 132: we, 183: [2, 1145], 299: _e, 474: 592 }, v(Oo, [2, 1139], { 468: 594, 3: 595, 2: g, 4: C, 5: x }), { 2: g, 3: 596, 4: C, 5: x }, { 4: [1, 597] }, { 4: [1, 598] }, v(Ks, [2, 506]), v(ve, [2, 690], { 74: [1, 599] }), v(E1, [2, 691]), { 2: g, 3: 600, 4: C, 5: x }, { 2: g, 3: 245, 4: C, 5: x, 199: 601 }, { 2: g, 3: 602, 4: C, 5: x }, v(vi, ko, { 401: 603, 156: os }), { 408: [1, 605] }, { 2: g, 3: 606, 4: C, 5: x }, v(vi, ko, { 401: 607, 156: os }), v(vi, ko, { 401: 608, 156: os }), { 2: g, 3: 609, 4: C, 5: x }, v(as, [2, 1133]), v(as, [2, 1134]), v(ve, b, { 17: 5, 18: 7, 19: 8, 20: 9, 21: 10, 22: 11, 23: 12, 24: 13, 25: 14, 26: 15, 27: 16, 28: 17, 29: 18, 30: 19, 31: 20, 32: 21, 33: 22, 34: 23, 35: 24, 36: 25, 37: 26, 38: 27, 39: 28, 40: 29, 41: 30, 42: 31, 43: 32, 44: 33, 45: 34, 46: 35, 47: 36, 48: 37, 49: 38, 50: 39, 51: 40, 52: 41, 54: 43, 55: 44, 56: 45, 57: 46, 58: 47, 59: 48, 60: 49, 61: 50, 62: 51, 63: 52, 64: 53, 65: 54, 66: 55, 67: 56, 68: 57, 69: 58, 70: 59, 71: 60, 79: 75, 507: 95, 184: 99, 3: 100, 12: 610, 114: 627, 330: 639, 2: g, 4: C, 5: x, 53: P, 72: M, 89: U, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: ta, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 146: K, 154: s1, 156: Z, 170: Kt, 171: v1, 179: _t, 180: wt, 189: re, 270: V, 271: at, 292: Tt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt, 338: Wt, 341: b1, 342: R1, 399: C1, 403: D1, 404: M1, 407: B1, 409: V1, 411: Y1, 412: tn, 420: Vt, 421: w1, 437: l1, 439: Yt, 440: Or, 442: pr, 443: wr, 444: rn, 445: xn, 446: nn, 450: Mi, 451: c2, 454: gi, 455: Sr, 508: dn, 510: Lr, 511: Ai, 520: Zn }), v(c1, [2, 291]), v(c1, [2, 292]), v(c1, [2, 293]), v(c1, [2, 294]), v(c1, [2, 295]), v(c1, [2, 296]), v(c1, [2, 297]), v(c1, [2, 298]), v(c1, [2, 299]), v(c1, [2, 300]), v(c1, [2, 301]), v(c1, [2, 302]), v(c1, [2, 303]), v(c1, [2, 304]), v(c1, [2, 305]), v(c1, [2, 306]), v(c1, [2, 307]), v(c1, [2, 308]), { 2: g, 3: 169, 4: C, 5: x, 26: 656, 27: 655, 36: 651, 40: 650, 56: 166, 77: Ue, 79: 75, 89: U, 94: 653, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 184: 99, 189: re, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 268: 652, 269: oe, 270: V, 271: [1, 657], 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: [1, 654], 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 342: R1, 422: 191, 423: fe, 427: le }, v(c1, [2, 312]), v(c1, [2, 313]), { 77: [1, 658] }, v([2, 4, 5, 10, 53, 72, 74, 76, 78, 89, 93, 95, 98, 99, 107, 112, 115, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], Ma, { 77: W2, 116: [1, 659] }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 660, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 661, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 662, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 663, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 664, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(c1, [2, 286]), v([2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 239, 244, 245, 246, 247, 249, 251, 253, 269, 270, 271, 274, 275, 277, 284, 285, 286, 287, 288, 289, 290, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 305, 306, 309, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 346, 359, 371, 372, 376, 377, 399, 403, 404, 407, 409, 411, 412, 418, 420, 421, 423, 427, 429, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766, 767, 768], [2, 360]), v(Kr, [2, 361]), v(Kr, [2, 362]), v(Kr, ra), v(Kr, [2, 364]), v([2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 300, 303, 309, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 346, 359, 371, 372, 376, 377, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 429, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], [2, 365]), { 2: g, 3: 666, 4: C, 5: x, 131: [1, 667], 304: 665 }, { 2: g, 3: 668, 4: C, 5: x }, v(Kr, [2, 371]), v(Kr, [2, 372]), { 2: g, 3: 669, 4: C, 5: x, 77: sn, 113: 671, 131: Le, 132: we, 143: ge, 152: he, 181: be, 196: 672, 201: 674, 261: 673, 297: $e, 298: Pe, 299: _e, 305: Ce, 422: 675, 427: le }, { 77: [1, 676] }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 677, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 307: 678, 310: 679, 311: Pi, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 77: [1, 681] }, { 77: [1, 682] }, v(Gr, [2, 628]), { 2: g, 3: 697, 4: C, 5: x, 77: Oi, 111: 692, 113: 690, 131: Le, 132: we, 143: ge, 144: 687, 145: mr, 152: he, 156: ye, 181: be, 196: 689, 200: 695, 201: 694, 261: 691, 262: 693, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 303: [1, 685], 305: Ce, 422: 191, 423: fe, 424: 683, 425: 686, 426: 688, 427: le, 430: 684 }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 261, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 151: 698, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 699, 4: C, 5: x, 156: ye, 200: 700, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe }, { 77: [2, 339] }, { 77: [2, 340] }, { 77: [2, 341] }, { 77: [2, 342] }, { 77: [2, 343] }, { 77: [2, 344] }, { 77: [2, 345] }, { 77: [2, 346] }, { 77: [2, 347] }, { 2: g, 3: 706, 4: C, 5: x, 131: Ns, 132: mi, 428: 701, 429: [1, 702], 431: 703 }, { 2: g, 3: 245, 4: C, 5: x, 199: 707 }, { 292: [1, 708] }, v(vi, [2, 476]), { 2: g, 3: 245, 4: C, 5: x, 199: 709 }, { 231: [1, 711], 457: 710 }, { 231: [2, 699] }, { 2: g, 3: 220, 4: C, 5: x, 77: _o, 132: ks, 143: ge, 144: 213, 145: Be, 152: he, 156: ye, 181: be, 199: 214, 200: 216, 201: 215, 202: 218, 209: 712, 213: q2, 214: 219, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 305: Ce, 422: 191, 423: fe, 427: le }, { 40: 713, 79: 75, 89: U, 184: 99, 189: re }, v(ls, [2, 1095], { 210: 714, 76: [1, 715] }), v(kr, [2, 185], { 3: 716, 2: g, 4: C, 5: x, 76: [1, 717], 154: [1, 718] }), v(kr, [2, 189], { 3: 719, 2: g, 4: C, 5: x, 76: [1, 720] }), v(kr, [2, 190], { 3: 721, 2: g, 4: C, 5: x, 76: [1, 722] }), v(kr, [2, 193]), v(kr, [2, 194], { 3: 723, 2: g, 4: C, 5: x, 76: [1, 724] }), v(kr, [2, 197], { 3: 725, 2: g, 4: C, 5: x, 76: [1, 726] }), v([2, 4, 5, 10, 72, 74, 76, 78, 93, 98, 118, 128, 154, 162, 168, 169, 183, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 249, 251, 309, 313, 605, 766], Mn, { 77: W2, 116: E2 }), v([2, 4, 5, 10, 72, 74, 76, 78, 93, 98, 118, 128, 162, 168, 169, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 249, 251, 309, 313, 605, 766], [2, 200]), v(ve, [2, 777]), { 2: g, 3: 245, 4: C, 5: x, 199: 728 }, v(Ds, F2, { 81: 729, 198: Yr }), v(Ao, [2, 1048]), v($a, [2, 1061], { 108: 731, 190: [1, 732] }), v([10, 78, 183, 309, 313, 605, 766], F2, { 422: 191, 81: 733, 117: 734, 3: 735, 114: 738, 144: 760, 158: 770, 160: 771, 2: g, 4: C, 5: x, 72: Qn, 76: Pn, 77: gr, 112: bi, 115: ot, 116: it, 118: Er, 122: Ci, 123: ei, 124: $r, 128: Ln, 129: Tn, 130: q1, 131: br, 132: Un, 133: yi, 134: zn, 135: pn, 136: sr, 137: wi, 138: Bn, 139: qr, 140: on, 141: ti, 142: ri, 143: _n, 145: An, 146: Hn, 148: ni, 149: ii, 150: Rn, 152: Gn, 154: gn, 156: Ir, 162: cr, 164: vn, 166: an, 168: Tr, 169: Wr, 170: qn, 171: Ei, 172: si, 173: xi, 175: oi, 185: jr, 187: ln, 198: Yr, 244: Re, 245: Ie, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 423: fe, 427: le }), { 356: [1, 784] }, { 183: [1, 785] }, v(ve, [2, 598], { 112: [1, 786] }), { 408: [1, 787] }, { 183: [1, 788] }, v(ve, [2, 602], { 112: [1, 789], 183: [1, 790] }), { 2: g, 3: 245, 4: C, 5: x, 199: 791 }, { 40: 792, 74: [1, 793], 79: 75, 89: U, 184: 99, 189: re }, v(Zi, [2, 70]), { 76: [1, 794] }, v(ve, [2, 671]), { 11: 106, 309: [1, 795], 605: er, 766: nr }, v(ve, [2, 669]), v(ve, [2, 670]), { 2: g, 3: 796, 4: C, 5: x }, v(ve, [2, 591]), { 146: [1, 797] }, v([2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 95, 124, 128, 143, 145, 146, 148, 149, 152, 154, 156, 181, 183, 187, 189, 230, 270, 271, 292, 300, 305, 309, 313, 338, 341, 342, 346, 347, 359, 371, 372, 376, 377, 399, 403, 404, 405, 406, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 508, 510, 511, 517, 518, 519, 520, 605, 766], Mn, { 116: E2 }), v(ve, [2, 619]), v(ve, [2, 620]), v(ve, [2, 621]), v(ve, ra, { 74: [1, 798] }), { 77: sn, 113: 671, 131: Le, 132: we, 143: ge, 152: he, 181: be, 196: 672, 201: 674, 261: 673, 297: $e, 298: Pe, 299: _e, 305: Ce, 422: 675, 427: le }, v(ar, [2, 323]), v(ar, [2, 324]), v(ar, [2, 325]), v(ar, [2, 326]), v(ar, [2, 327]), v(ar, [2, 328]), v(ar, [2, 329]), v(ve, b, { 17: 5, 18: 7, 19: 8, 20: 9, 21: 10, 22: 11, 23: 12, 24: 13, 25: 14, 26: 15, 27: 16, 28: 17, 29: 18, 30: 19, 31: 20, 32: 21, 33: 22, 34: 23, 35: 24, 36: 25, 37: 26, 38: 27, 39: 28, 40: 29, 41: 30, 42: 31, 43: 32, 44: 33, 45: 34, 46: 35, 47: 36, 48: 37, 49: 38, 50: 39, 51: 40, 52: 41, 54: 43, 55: 44, 56: 45, 57: 46, 58: 47, 59: 48, 60: 49, 61: 50, 62: 51, 63: 52, 64: 53, 65: 54, 66: 55, 67: 56, 68: 57, 69: 58, 70: 59, 71: 60, 79: 75, 507: 95, 184: 99, 3: 100, 114: 627, 330: 639, 12: 799, 2: g, 4: C, 5: x, 53: P, 72: M, 89: U, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: ta, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 146: K, 154: s1, 156: Z, 170: Kt, 171: v1, 179: _t, 180: wt, 189: re, 270: V, 271: at, 292: Tt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt, 338: Wt, 341: b1, 342: R1, 399: C1, 403: D1, 404: M1, 407: B1, 409: V1, 411: Y1, 412: tn, 420: Vt, 421: w1, 437: l1, 439: Yt, 440: Or, 442: pr, 443: wr, 444: rn, 445: xn, 446: nn, 450: Mi, 451: c2, 454: gi, 455: Sr, 508: dn, 510: Lr, 511: Ai, 520: Zn }), v(ve, [2, 679], { 74: Wn }), v(ve, [2, 680]), v(j2, [2, 358], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), v(ve, [2, 681], { 74: [1, 802] }), v(ve, [2, 682], { 74: [1, 803] }), v(E1, [2, 687]), v(E1, [2, 689]), v(E1, [2, 683]), v(E1, [2, 684]), { 114: 809, 115: ot, 116: it, 124: [1, 804], 230: c3, 432: 805, 433: 806, 436: Fa }, { 2: g, 3: 810, 4: C, 5: x }, v(vi, [2, 660]), v(vi, [2, 661]), v(ve, [2, 618], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), { 2: g, 3: 100, 4: C, 5: x, 507: 275, 509: 811 }, v(ve, [2, 758], { 74: na }), v(j1, [2, 760]), v(ve, [2, 763]), v(ve, [2, 685], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), v(On, io, { 186: 813, 195: $i }), v(On, io, { 186: 814, 195: $i }), v(On, io, { 186: 815, 195: $i }), v(us, [2, 1091], { 259: 147, 200: 148, 260: 149, 111: 150, 258: 151, 196: 152, 261: 153, 113: 154, 262: 155, 201: 156, 202: 157, 263: 158, 264: 159, 265: 160, 144: 162, 266: 163, 267: 164, 56: 166, 158: 168, 3: 169, 422: 191, 188: 816, 174: 817, 257: 818, 94: 819, 2: g, 4: C, 5: x, 77: Ue, 131: Le, 132: we, 137: Ze, 143: ge, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 179: Ge, 180: qe, 181: be, 244: Re, 245: Ie, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 423: fe, 427: le }), { 77: [1, 821], 131: Le, 196: 820 }, { 2: g, 3: 100, 4: C, 5: x, 507: 275, 509: 822 }, v(V2, [2, 153]), v(V2, [2, 154]), v(V2, [2, 155]), v(V2, [2, 156]), v(V2, [2, 157]), v(V2, [2, 158]), v(V2, [2, 159]), v(W, [2, 3]), v(W, [2, 778]), v(W, [2, 779]), v(W, [2, 780]), v(W, [2, 781]), v(W, [2, 782]), v(W, [2, 783]), v(W, [2, 784]), v(W, [2, 785]), v(W, [2, 786]), v(W, [2, 787]), v(W, [2, 788]), v(W, [2, 789]), v(W, [2, 790]), v(W, [2, 791]), v(W, [2, 792]), v(W, [2, 793]), v(W, [2, 794]), v(W, [2, 795]), v(W, [2, 796]), v(W, [2, 797]), v(W, [2, 798]), v(W, [2, 799]), v(W, [2, 800]), v(W, [2, 801]), v(W, [2, 802]), v(W, [2, 803]), v(W, [2, 804]), v(W, [2, 805]), v(W, [2, 806]), v(W, [2, 807]), v(W, [2, 808]), v(W, [2, 809]), v(W, [2, 810]), v(W, [2, 811]), v(W, [2, 812]), v(W, [2, 813]), v(W, [2, 814]), v(W, [2, 815]), v(W, [2, 816]), v(W, [2, 817]), v(W, [2, 818]), v(W, [2, 819]), v(W, [2, 820]), v(W, [2, 821]), v(W, [2, 822]), v(W, [2, 823]), v(W, [2, 824]), v(W, [2, 825]), v(W, [2, 826]), v(W, [2, 827]), v(W, [2, 828]), v(W, [2, 829]), v(W, [2, 830]), v(W, [2, 831]), v(W, [2, 832]), v(W, [2, 833]), v(W, [2, 834]), v(W, [2, 835]), v(W, [2, 836]), v(W, [2, 837]), v(W, [2, 838]), v(W, [2, 839]), v(W, [2, 840]), v(W, [2, 841]), v(W, [2, 842]), v(W, [2, 843]), v(W, [2, 844]), v(W, [2, 845]), v(W, [2, 846]), v(W, [2, 847]), v(W, [2, 848]), v(W, [2, 849]), v(W, [2, 850]), v(W, [2, 851]), v(W, [2, 852]), v(W, [2, 853]), v(W, [2, 854]), v(W, [2, 855]), v(W, [2, 856]), v(W, [2, 857]), v(W, [2, 858]), v(W, [2, 859]), v(W, [2, 860]), v(W, [2, 861]), v(W, [2, 862]), v(W, [2, 863]), v(W, [2, 864]), v(W, [2, 865]), v(W, [2, 866]), v(W, [2, 867]), v(W, [2, 868]), v(W, [2, 869]), v(W, [2, 870]), v(W, [2, 871]), v(W, [2, 872]), v(W, [2, 873]), v(W, [2, 874]), v(W, [2, 875]), v(W, [2, 876]), v(W, [2, 877]), v(W, [2, 878]), v(W, [2, 879]), v(W, [2, 880]), v(W, [2, 881]), v(W, [2, 882]), v(W, [2, 883]), v(W, [2, 884]), v(W, [2, 885]), v(W, [2, 886]), v(W, [2, 887]), v(W, [2, 888]), v(W, [2, 889]), v(W, [2, 890]), v(W, [2, 891]), v(W, [2, 892]), v(W, [2, 893]), v(W, [2, 894]), v(W, [2, 895]), v(W, [2, 896]), v(W, [2, 897]), v(W, [2, 898]), v(W, [2, 899]), v(W, [2, 900]), v(W, [2, 901]), v(W, [2, 902]), v(W, [2, 903]), v(W, [2, 904]), v(W, [2, 905]), v(W, [2, 906]), v(W, [2, 907]), v(W, [2, 908]), v(W, [2, 909]), v(W, [2, 910]), v(W, [2, 911]), v(W, [2, 912]), v(W, [2, 913]), v(W, [2, 914]), v(W, [2, 915]), v(W, [2, 916]), v(W, [2, 917]), v(W, [2, 918]), v(W, [2, 919]), v(W, [2, 920]), v(W, [2, 921]), v(W, [2, 922]), v(W, [2, 923]), v(W, [2, 924]), v(W, [2, 925]), v(W, [2, 926]), v(W, [2, 927]), v(W, [2, 928]), v(W, [2, 929]), v(W, [2, 930]), v(W, [2, 931]), v(W, [2, 932]), v(W, [2, 933]), v(W, [2, 934]), v(W, [2, 935]), v(W, [2, 936]), v(W, [2, 937]), v(W, [2, 938]), v(W, [2, 939]), v(W, [2, 940]), v(W, [2, 941]), v(W, [2, 942]), v(W, [2, 943]), v(W, [2, 944]), v(W, [2, 945]), v(W, [2, 946]), v(W, [2, 947]), v(W, [2, 948]), v(W, [2, 949]), v(W, [2, 950]), v(W, [2, 951]), v(W, [2, 952]), v(W, [2, 953]), v(W, [2, 954]), v(W, [2, 955]), v(W, [2, 956]), v(W, [2, 957]), v(W, [2, 958]), v(W, [2, 959]), v(W, [2, 960]), v(W, [2, 961]), v(W, [2, 962]), v(W, [2, 963]), v(W, [2, 964]), v(W, [2, 965]), v(W, [2, 966]), v(W, [2, 967]), v(W, [2, 968]), v(W, [2, 969]), v(W, [2, 970]), v(W, [2, 971]), v(W, [2, 972]), v(W, [2, 973]), v(W, [2, 974]), v(W, [2, 975]), v(W, [2, 976]), v(W, [2, 977]), v(W, [2, 978]), v(W, [2, 979]), v(W, [2, 980]), v(W, [2, 981]), v(W, [2, 982]), v(W, [2, 983]), v(W, [2, 984]), v(W, [2, 985]), v(W, [2, 986]), v(W, [2, 987]), v(W, [2, 988]), v(W, [2, 989]), v(W, [2, 990]), v(W, [2, 991]), v(W, [2, 992]), v(W, [2, 993]), v(W, [2, 994]), v(W, [2, 995]), v(W, [2, 996]), v(W, [2, 997]), v(W, [2, 998]), v(W, [2, 999]), v(W, [2, 1e3]), v(W, [2, 1001]), v(W, [2, 1002]), v(W, [2, 1003]), v(W, [2, 1004]), v(W, [2, 1005]), v(W, [2, 1006]), v(W, [2, 1007]), v(W, [2, 1008]), v(W, [2, 1009]), v(W, [2, 1010]), v(W, [2, 1011]), v(W, [2, 1012]), v(W, [2, 1013]), v(W, [2, 1014]), v(W, [2, 1015]), v(W, [2, 1016]), v(W, [2, 1017]), v(W, [2, 1018]), v(W, [2, 1019]), v(W, [2, 1020]), v(W, [2, 1021]), v(W, [2, 1022]), v(W, [2, 1023]), v(W, [2, 1024]), v(W, [2, 1025]), v(W, [2, 1026]), v(W, [2, 1027]), v(W, [2, 1028]), v(W, [2, 1029]), v(W, [2, 1030]), v(W, [2, 1031]), v(W, [2, 1032]), v(W, [2, 1033]), v(W, [2, 1034]), v(W, [2, 1035]), v(W, [2, 1036]), v(W, [2, 1037]), v(W, [2, 1038]), v(W, [2, 1039]), v(W, [2, 1040]), v(W, [2, 1041]), v(W, [2, 1042]), v(W, [2, 1043]), v(W, [2, 1044]), v(Sn, [2, 7]), v(Sn, b, { 17: 5, 18: 7, 19: 8, 20: 9, 21: 10, 22: 11, 23: 12, 24: 13, 25: 14, 26: 15, 27: 16, 28: 17, 29: 18, 30: 19, 31: 20, 32: 21, 33: 22, 34: 23, 35: 24, 36: 25, 37: 26, 38: 27, 39: 28, 40: 29, 41: 30, 42: 31, 43: 32, 44: 33, 45: 34, 46: 35, 47: 36, 48: 37, 49: 38, 50: 39, 51: 40, 52: 41, 54: 43, 55: 44, 56: 45, 57: 46, 58: 47, 59: 48, 60: 49, 61: 50, 62: 51, 63: 52, 64: 53, 65: 54, 66: 55, 67: 56, 68: 57, 69: 58, 70: 59, 71: 60, 79: 75, 507: 95, 184: 99, 3: 100, 12: 823, 2: g, 4: C, 5: x, 53: P, 72: M, 89: U, 124: j, 146: K, 156: Z, 189: re, 270: V, 271: at, 292: Tt, 338: Wt, 341: b1, 342: R1, 399: C1, 403: D1, 404: M1, 407: B1, 409: V1, 411: Y1, 412: tn, 420: Vt, 421: w1, 437: l1, 439: Yt, 440: Or, 442: pr, 443: wr, 444: rn, 445: xn, 446: nn, 450: Mi, 451: c2, 454: gi, 455: Sr, 508: dn, 510: Lr, 511: Ai, 520: Zn }), { 399: [1, 827], 404: [1, 824], 405: [1, 825], 406: [1, 826] }, { 2: g, 3: 828, 4: C, 5: x }, v(On, [2, 1115], { 291: 829, 769: 831, 78: [1, 830], 164: [1, 833], 185: [1, 832] }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 261, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 151: 834, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 261, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 151: 835, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 836, 4: C, 5: x, 132: [1, 837] }, { 2: g, 3: 838, 4: C, 5: x, 132: [1, 839] }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 840, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 841, 4: C, 5: x, 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 2: g, 3: 842, 4: C, 5: x }, { 154: [1, 843] }, v(Ms, I1, { 353: 844, 156: so }), { 230: [1, 845] }, { 2: g, 3: 846, 4: C, 5: x }, v(ve, [2, 733], { 74: Pa }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 848, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(j1, [2, 736]), v(Io, [2, 1147], { 422: 191, 479: 849, 144: 850, 139: Ui, 141: Ui, 145: mr, 423: fe, 427: le }), { 139: [1, 851], 141: [1, 852] }, v(T2, ce, { 493: 854, 496: 855, 77: [1, 853], 137: Fi }), v(st, [2, 1171], { 497: 856, 132: [1, 857] }), v(ze, [2, 1175], { 499: 858, 500: 859, 152: Ri }), v(ze, [2, 751]), v(p1, [2, 743]), { 2: g, 3: 860, 4: C, 5: x, 131: [1, 861] }, { 2: g, 3: 862, 4: C, 5: x }, { 2: g, 3: 863, 4: C, 5: x }, v(vi, I1, { 353: 864, 156: so }), v(vi, I1, { 353: 865, 156: so }), v(as, [2, 495]), v(as, [2, 496]), { 183: [1, 866] }, { 183: [2, 1146] }, v($1, [2, 1141], { 469: 867, 472: 868, 137: [1, 869] }), v(Oo, [2, 1140]), v(J1, un, { 513: 870, 95: vr, 230: [1, 871], 517: _2, 518: $s, 519: kn }), { 76: [1, 876] }, { 76: [1, 877] }, { 145: Os, 453: 878 }, { 4: h2, 7: 882, 76: [1, 880], 276: 879, 390: 881, 392: cs }, v(ve, [2, 460], { 128: [1, 885] }), v(ve, [2, 583]), { 2: g, 3: 886, 4: C, 5: x }, { 301: [1, 887] }, v(Ms, ko, { 401: 888, 156: os }), v(ve, [2, 597]), { 2: g, 3: 245, 4: C, 5: x, 199: 890, 402: 889 }, { 2: g, 3: 245, 4: C, 5: x, 199: 890, 402: 891 }, v(ve, [2, 776]), v(Sn, [2, 673], { 441: 892, 313: [1, 893] }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 894, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 895, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 896, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 897, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 898, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 899, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 900, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 901, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 902, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 903, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 904, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 905, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 906, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 907, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 908, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 909, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 910, 4: C, 5: x, 77: [1, 912], 131: Le, 156: ye, 196: 911, 200: 913, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe }, { 2: g, 3: 914, 4: C, 5: x, 77: [1, 916], 131: Le, 156: ye, 196: 915, 200: 917, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe }, v(zi, [2, 444], { 259: 147, 200: 148, 260: 149, 111: 150, 258: 151, 196: 152, 261: 153, 113: 154, 262: 155, 201: 156, 202: 157, 263: 158, 264: 159, 265: 160, 144: 162, 266: 163, 267: 164, 56: 166, 158: 168, 3: 169, 422: 191, 94: 918, 2: g, 4: C, 5: x, 77: Ue, 131: Le, 132: we, 137: Ze, 143: ge, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 179: Ge, 180: qe, 181: be, 244: Re, 245: Ie, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 423: fe, 427: le }), v(zi, [2, 445], { 259: 147, 200: 148, 260: 149, 111: 150, 258: 151, 196: 152, 261: 153, 113: 154, 262: 155, 201: 156, 202: 157, 263: 158, 264: 159, 265: 160, 144: 162, 266: 163, 267: 164, 56: 166, 158: 168, 3: 169, 422: 191, 94: 919, 2: g, 4: C, 5: x, 77: Ue, 131: Le, 132: we, 137: Ze, 143: ge, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 179: Ge, 180: qe, 181: be, 244: Re, 245: Ie, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 423: fe, 427: le }), v(zi, [2, 446], { 259: 147, 200: 148, 260: 149, 111: 150, 258: 151, 196: 152, 261: 153, 113: 154, 262: 155, 201: 156, 202: 157, 263: 158, 264: 159, 265: 160, 144: 162, 266: 163, 267: 164, 56: 166, 158: 168, 3: 169, 422: 191, 94: 920, 2: g, 4: C, 5: x, 77: Ue, 131: Le, 132: we, 137: Ze, 143: ge, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 179: Ge, 180: qe, 181: be, 244: Re, 245: Ie, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 423: fe, 427: le }), v(zi, [2, 447], { 259: 147, 200: 148, 260: 149, 111: 150, 258: 151, 196: 152, 261: 153, 113: 154, 262: 155, 201: 156, 202: 157, 263: 158, 264: 159, 265: 160, 144: 162, 266: 163, 267: 164, 56: 166, 158: 168, 3: 169, 422: 191, 94: 921, 2: g, 4: C, 5: x, 77: Ue, 131: Le, 132: we, 137: Ze, 143: ge, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 179: Ge, 180: qe, 181: be, 244: Re, 245: Ie, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 423: fe, 427: le }), v(zi, Fs, { 259: 147, 200: 148, 260: 149, 111: 150, 258: 151, 196: 152, 261: 153, 113: 154, 262: 155, 201: 156, 202: 157, 263: 158, 264: 159, 265: 160, 144: 162, 266: 163, 267: 164, 56: 166, 158: 168, 3: 169, 422: 191, 94: 922, 2: g, 4: C, 5: x, 77: Ue, 131: Le, 132: we, 137: Ze, 143: ge, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 179: Ge, 180: qe, 181: be, 244: Re, 245: Ie, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 423: fe, 427: le }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 923, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 924, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(zi, [2, 449], { 259: 147, 200: 148, 260: 149, 111: 150, 258: 151, 196: 152, 261: 153, 113: 154, 262: 155, 201: 156, 202: 157, 263: 158, 264: 159, 265: 160, 144: 162, 266: 163, 267: 164, 56: 166, 158: 168, 3: 169, 422: 191, 94: 925, 2: g, 4: C, 5: x, 77: Ue, 131: Le, 132: we, 137: Ze, 143: ge, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 179: Ge, 180: qe, 181: be, 244: Re, 245: Ie, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 423: fe, 427: le }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 926, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 927, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 164: [1, 929], 166: [1, 931], 331: 928, 337: [1, 930] }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 932, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 933, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 697, 4: C, 5: x, 77: [1, 934], 111: 937, 145: d2, 156: ye, 200: 938, 202: 936, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 332: 935 }, { 99: [1, 940], 300: [1, 941] }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 942, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 943, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 944, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 4: h2, 7: 882, 276: 945, 390: 881, 392: cs }, v(Z1, [2, 88]), v(Z1, [2, 89]), { 78: [1, 946] }, { 78: [1, 947] }, { 78: [1, 948] }, { 78: [1, 949], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, v(vi, ro, { 343: 208, 77: Ct, 198: G2 }), { 78: [2, 1111] }, { 78: [2, 1112] }, { 134: Na, 135: Da }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 261, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 151: 950, 152: he, 154: Ve, 156: ye, 158: 168, 164: [1, 952], 179: Ge, 180: qe, 181: be, 185: [1, 951], 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 953, 4: C, 5: x, 149: ai, 180: [1, 955] }, v([2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 118, 122, 128, 129, 130, 131, 132, 134, 135, 137, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 317, 333, 334, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], [2, 420], { 114: 627, 330: 639, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 335: Ut }), v(Qi, [2, 421], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 180: wt, 315: bt, 319: gt }), v(Qi, [2, 422], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 180: wt, 315: bt, 319: gt }), v(Bi, [2, 423], { 114: 627, 330: 639, 319: gt }), v(Bi, [2, 424], { 114: 627, 330: 639, 319: gt }), v(Kr, [2, 369]), v(Kr, [2, 1117]), v(Kr, [2, 1118]), v(Kr, [2, 370]), v([2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], [2, 366]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 956, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(Gr, [2, 624]), v(Gr, [2, 625]), v(Gr, [2, 626]), v(Gr, [2, 627]), v(Gr, [2, 629]), { 40: 957, 79: 75, 89: U, 184: 99, 189: re }, { 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 307: 958, 310: 679, 311: Pi, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 308: 959, 309: No, 310: 960, 311: Pi, 313: f3 }, v(ia, [2, 376]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 962, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 963, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 4: h2, 7: 882, 276: 964, 390: 881, 392: cs }, v(Gr, [2, 630]), { 74: [1, 966], 303: [1, 965] }, v(Gr, [2, 646]), v(Y2, [2, 653]), v(In, [2, 631]), v(In, [2, 632]), v(In, [2, 633]), v(In, [2, 634]), v(In, [2, 635]), v(In, [2, 636]), v(In, [2, 637]), v(In, [2, 638]), v(In, [2, 639]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 967, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v([2, 4, 5, 10, 53, 72, 74, 76, 78, 89, 93, 95, 98, 99, 107, 112, 115, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 429, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], Ma, { 77: W2, 116: Ps }), { 74: Wn, 303: [1, 969] }, v(Us, [2, 317], { 77: W2 }), v(c1, [2, 318]), { 74: [1, 971], 429: [1, 970] }, v(Gr, [2, 643]), v(fs, [2, 648]), { 152: [1, 972] }, { 152: [1, 973] }, { 152: [1, 974] }, { 40: 979, 77: [1, 978], 79: 75, 89: U, 143: ge, 144: 982, 145: mr, 149: hs, 152: he, 181: be, 184: 99, 189: re, 201: 983, 305: Ce, 344: 975, 345: 976, 346: [1, 977], 347: zs, 422: 191, 423: fe, 427: le }, v(vi, ro, { 343: 984, 198: G2 }), { 77: ki, 143: ge, 144: 982, 145: mr, 149: hs, 152: he, 181: be, 201: 983, 305: Ce, 344: 985, 345: 986, 347: zs, 422: 191, 423: fe, 427: le }, { 230: [1, 989], 458: 988 }, { 2: g, 3: 220, 4: C, 5: x, 77: _o, 132: ks, 143: ge, 144: 213, 145: Be, 152: he, 156: ye, 181: be, 199: 214, 200: 216, 201: 215, 202: 218, 209: 990, 213: q2, 214: 219, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 305: Ce, 422: 191, 423: fe, 427: le }, { 231: [2, 700] }, { 78: [1, 991] }, v(kr, [2, 1097], { 211: 992, 3: 993, 2: g, 4: C, 5: x }), v(ls, [2, 1096]), v(kr, [2, 183]), { 2: g, 3: 994, 4: C, 5: x }, { 212: [1, 995] }, v(kr, [2, 187]), { 2: g, 3: 996, 4: C, 5: x }, v(kr, [2, 191]), { 2: g, 3: 997, 4: C, 5: x }, v(kr, [2, 195]), { 2: g, 3: 998, 4: C, 5: x }, v(kr, [2, 198]), { 2: g, 3: 999, 4: C, 5: x }, { 2: g, 3: 1e3, 4: C, 5: x }, { 148: [1, 1001] }, v(Bs, [2, 172], { 82: 1002, 183: [1, 1003] }), { 2: g, 3: 220, 4: C, 5: x, 132: [1, 1008], 143: ge, 145: [1, 1009], 152: he, 156: ye, 181: be, 199: 1004, 200: 1005, 201: 1006, 202: 1007, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 305: Ce }, { 2: g, 3: 1014, 4: C, 5: x, 109: 1010, 110: 1011, 111: 1012, 112: p2 }, v($a, [2, 1062]), v(Fr, [2, 1053], { 91: 1015, 182: 1016, 183: [1, 1017] }), v(Is, [2, 1052], { 153: 1018, 179: mn, 180: Nn, 181: Si }), v([2, 4, 5, 10, 72, 74, 76, 78, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 198, 244, 245, 284, 285, 286, 287, 288, 289, 290, 309, 313, 423, 427, 605, 766], [2, 90], { 77: [1, 1022] }), { 119: [1, 1023] }, v(O1, [2, 93]), { 2: g, 3: 1024, 4: C, 5: x }, v(O1, [2, 95]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1025, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1026, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 735, 4: C, 5: x, 72: Qn, 76: Pn, 77: gr, 112: bi, 114: 738, 115: ot, 116: it, 117: 1028, 118: Er, 122: Ci, 123: ei, 124: $r, 125: 1027, 128: Ln, 129: Tn, 130: q1, 131: br, 132: Un, 133: yi, 134: zn, 135: pn, 136: sr, 137: wi, 138: Bn, 139: qr, 140: on, 141: ti, 142: ri, 143: _n, 144: 760, 145: An, 146: Hn, 148: ni, 149: ii, 150: Rn, 152: Gn, 154: gn, 156: Ir, 158: 770, 160: 771, 162: cr, 164: vn, 166: an, 168: Tr, 169: Wr, 170: qn, 171: Ei, 172: si, 173: xi, 175: oi, 185: jr, 187: ln, 244: Re, 245: Ie, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 422: 191, 423: fe, 427: le }, { 77: [1, 1029] }, { 77: [1, 1030] }, { 77: [1, 1031] }, { 77: [1, 1032] }, v(O1, [2, 104]), v(O1, [2, 105]), v(O1, [2, 106]), v(O1, [2, 107]), v(O1, [2, 108]), v(O1, [2, 109]), { 2: g, 3: 1033, 4: C, 5: x }, { 2: g, 3: 1034, 4: C, 5: x, 133: [1, 1035] }, v(O1, [2, 113]), v(O1, [2, 114]), v(O1, [2, 115]), v(O1, [2, 116]), v(O1, [2, 117]), v(O1, [2, 118]), { 2: g, 3: 1036, 4: C, 5: x, 77: sn, 113: 671, 131: Le, 132: we, 143: ge, 152: he, 181: be, 196: 672, 201: 674, 261: 673, 297: $e, 298: Pe, 299: _e, 305: Ce, 422: 675, 427: le }, { 145: [1, 1037] }, { 77: [1, 1038] }, { 145: [1, 1039] }, v(O1, [2, 123]), { 77: [1, 1040] }, { 2: g, 3: 1041, 4: C, 5: x }, { 77: [1, 1042] }, { 77: [1, 1043] }, { 77: [1, 1044] }, { 77: [1, 1045] }, { 77: [1, 1046], 164: [1, 1047] }, { 77: [1, 1048] }, { 77: [1, 1049] }, { 77: [1, 1050] }, { 77: [1, 1051] }, { 77: [1, 1052] }, { 77: [1, 1053] }, { 77: [1, 1054] }, { 77: [1, 1055] }, { 77: [1, 1056] }, { 77: [2, 1077] }, { 77: [2, 1078] }, { 2: g, 3: 245, 4: C, 5: x, 199: 1057 }, { 2: g, 3: 245, 4: C, 5: x, 199: 1058 }, { 113: 1059, 132: we, 299: _e }, v(ve, [2, 600], { 112: [1, 1060] }), { 2: g, 3: 245, 4: C, 5: x, 199: 1061 }, { 113: 1062, 132: we, 299: _e }, { 2: g, 3: 1063, 4: C, 5: x }, v(ve, [2, 697]), v(ve, [2, 68]), { 2: g, 3: 237, 4: C, 5: x, 75: 1064 }, { 77: [1, 1065] }, v(ve, [2, 678]), v(ve, [2, 590]), { 2: g, 3: 1014, 4: C, 5: x, 111: 1068, 143: ds, 145: A2, 147: 1066, 339: 1067, 340: 1069 }, { 144: 1072, 145: mr, 422: 191, 423: fe, 427: le }, v(ve, [2, 675]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1073, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(zi, Fs, { 259: 147, 200: 148, 260: 149, 111: 150, 258: 151, 196: 152, 261: 153, 113: 154, 262: 155, 201: 156, 202: 157, 263: 158, 264: 159, 265: 160, 144: 162, 266: 163, 267: 164, 56: 166, 158: 168, 3: 169, 422: 191, 94: 1074, 2: g, 4: C, 5: x, 77: Ue, 131: Le, 132: we, 137: Ze, 143: ge, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 179: Ge, 180: qe, 181: be, 244: Re, 245: Ie, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 423: fe, 427: le }), { 113: 1075, 132: we, 299: _e }, { 2: g, 3: 267, 4: C, 5: x, 449: 1076, 450: no }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1078, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 230: c3, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le, 432: 1077, 436: Fa }, v(ve, [2, 655]), { 114: 1080, 115: ot, 116: it, 124: [1, 1079] }, v(ve, [2, 667]), v(ve, [2, 668]), { 2: g, 3: 1082, 4: C, 5: x, 77: oo, 131: Hs, 435: 1081 }, { 114: 809, 115: ot, 116: it, 124: [1, 1085], 433: 1086 }, v(ve, [2, 757], { 74: na }), { 2: g, 3: 100, 4: C, 5: x, 507: 1087 }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 819, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 174: 1088, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 257: 818, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 819, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 174: 1089, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 257: 818, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 819, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 174: 1090, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 257: 818, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(us, [2, 151]), v(us, [2, 1092], { 74: g2 }), v(K2, [2, 276]), v(K2, [2, 283], { 114: 627, 330: 639, 3: 1093, 113: 1095, 2: g, 4: C, 5: x, 76: [1, 1092], 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 131: [1, 1094], 132: we, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 299: _e, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), v(f2, [2, 1093], { 197: 1096, 767: [1, 1097] }), { 131: Le, 196: 1098 }, { 74: na, 78: [1, 1099] }, v(Sn, [2, 11]), { 148: [1, 1100], 190: [1, 1101] }, { 190: [1, 1102] }, { 190: [1, 1103] }, { 190: [1, 1104] }, v(ve, [2, 579], { 76: [1, 1106], 77: [1, 1105] }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 261, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 151: 1107, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(Kr, [2, 349]), v(On, [2, 1116]), v(On, [2, 1113]), v(On, [2, 1114]), { 74: Wn, 78: [1, 1108] }, { 74: Wn, 78: [1, 1109] }, { 74: [1, 1110] }, { 74: [1, 1111] }, { 74: [1, 1112] }, { 74: [1, 1113] }, { 74: [1, 1114], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, v(Kr, [2, 357]), v(ve, [2, 584]), { 301: [1, 1115] }, { 2: g, 3: 1116, 4: C, 5: x, 113: 1117, 132: we, 299: _e }, { 2: g, 3: 245, 4: C, 5: x, 199: 1118 }, { 230: [1, 1119] }, { 2: g, 3: 580, 4: C, 5: x, 132: L2, 137: Fi, 143: hr, 145: u1, 152: Ri, 434: 587, 477: 1120, 478: 578, 481: 579, 485: 584, 496: 581, 500: 583 }, v(ve, [2, 734], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), v(j1, [2, 1149], { 480: 1121, 486: 1122, 76: ao }), v(Io, [2, 1148]), { 2: g, 3: 1126, 4: C, 5: x, 132: L2, 137: Fi, 144: 1125, 145: mr, 152: Ri, 422: 191, 423: fe, 427: le, 478: 1124, 496: 581, 500: 583 }, { 2: g, 3: 1126, 4: C, 5: x, 132: L2, 137: Fi, 143: hr, 145: u1, 152: Ri, 434: 587, 478: 1128, 481: 1127, 485: 584, 496: 581, 500: 583 }, { 2: g, 3: 580, 4: C, 5: x, 132: L2, 137: Fi, 143: hr, 145: u1, 152: Ri, 434: 587, 476: 1129, 477: 577, 478: 578, 481: 579, 485: 584, 496: 581, 500: 583 }, v(st, [2, 1167], { 494: 1130, 132: [1, 1131] }), v(T2, [2, 1166]), v(ze, [2, 1173], { 498: 1132, 500: 1133, 152: Ri }), v(st, [2, 1172]), v(ze, [2, 750]), v(ze, [2, 1176]), v(T2, [2, 753]), v(T2, [2, 754]), v(ze, [2, 752]), v(p1, [2, 744]), { 2: g, 3: 245, 4: C, 5: x, 199: 1134 }, { 2: g, 3: 245, 4: C, 5: x, 199: 1135 }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1136, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(Xr, [2, 1143], { 470: 1137, 113: 1138, 132: we, 299: _e }), v($1, [2, 1142]), { 2: g, 3: 1139, 4: C, 5: x }, { 338: Jr, 341: Ua, 342: ps, 514: 1140 }, { 2: g, 3: 245, 4: C, 5: x, 199: 1144 }, v(J1, [2, 769]), v(J1, [2, 770]), v(J1, [2, 771]), { 129: [1, 1145] }, { 270: [1, 1146] }, { 270: [1, 1147] }, v(E1, [2, 692]), v(E1, [2, 693], { 124: [1, 1148] }), { 4: h2, 7: 882, 276: 1149, 390: 881, 392: cs }, v([2, 4, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 300, 303, 309, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 346, 359, 371, 372, 376, 377, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], [2, 546], { 5: [1, 1150] }), v([2, 5, 10, 53, 72, 74, 76, 78, 89, 93, 95, 98, 99, 107, 112, 115, 116, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 300, 303, 309, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 346, 359, 371, 372, 376, 377, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], [2, 543], { 4: [1, 1152], 77: [1, 1151] }), { 77: [1, 1153] }, v(v2, [2, 4]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1154, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(ve, [2, 592]), v(Ms, [2, 572]), { 2: g, 3: 1155, 4: C, 5: x, 113: 1156, 132: we, 299: _e }, v(ve, [2, 568], { 74: gs }), v(E1, [2, 570]), v(ve, [2, 617], { 74: gs }), v(ve, [2, 672]), v(ve, b, { 17: 5, 18: 7, 19: 8, 20: 9, 21: 10, 22: 11, 23: 12, 24: 13, 25: 14, 26: 15, 27: 16, 28: 17, 29: 18, 30: 19, 31: 20, 32: 21, 33: 22, 34: 23, 35: 24, 36: 25, 37: 26, 38: 27, 39: 28, 40: 29, 41: 30, 42: 31, 43: 32, 44: 33, 45: 34, 46: 35, 47: 36, 48: 37, 49: 38, 50: 39, 51: 40, 52: 41, 54: 43, 55: 44, 56: 45, 57: 46, 58: 47, 59: 48, 60: 49, 61: 50, 62: 51, 63: 52, 64: 53, 65: 54, 66: 55, 67: 56, 68: 57, 69: 58, 70: 59, 71: 60, 79: 75, 507: 95, 184: 99, 3: 100, 12: 1158, 2: g, 4: C, 5: x, 53: P, 72: M, 89: U, 124: j, 146: K, 156: Z, 189: re, 270: V, 271: at, 292: Tt, 338: Wt, 341: b1, 342: R1, 399: C1, 403: D1, 404: M1, 407: B1, 409: V1, 411: Y1, 412: tn, 420: Vt, 421: w1, 437: l1, 439: Yt, 440: Or, 442: pr, 443: wr, 444: rn, 445: xn, 446: nn, 450: Mi, 451: c2, 454: gi, 455: Sr, 508: dn, 510: Lr, 511: Ai, 520: Zn }), v(R2, [2, 380], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 315: bt, 319: gt, 320: St, 321: At, 322: Dt }), v(Bi, [2, 381], { 114: 627, 330: 639, 319: gt }), v(R2, [2, 382], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 315: bt, 319: gt, 320: St, 321: At, 322: Dt }), v(m2, [2, 383], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 315: bt, 317: [1, 1159], 319: gt, 320: St, 321: At, 322: Dt }), v(m2, [2, 385], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 315: bt, 317: [1, 1160], 319: gt, 320: St, 321: At, 322: Dt }), v(c1, [2, 387], { 114: 627, 330: 639 }), v(Qi, [2, 388], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 180: wt, 315: bt, 319: gt }), v(Qi, [2, 389], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 180: wt, 315: bt, 319: gt }), v(lo, [2, 390], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 136: pt, 315: bt, 319: gt }), v(lo, [2, 391], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 136: pt, 315: bt, 319: gt }), v(lo, [2, 392], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 136: pt, 315: bt, 319: gt }), v([2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 112, 118, 122, 123, 124, 128, 129, 130, 131, 132, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 179, 180, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 314, 316, 317, 318, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], [2, 393], { 114: 627, 330: 639, 115: ot, 116: it, 136: pt, 315: bt, 319: gt }), v(O2, [2, 394], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 179: _t, 180: wt, 315: bt, 319: gt, 320: St }), v(O2, [2, 395], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 179: _t, 180: wt, 315: bt, 319: gt, 320: St }), v(O2, [2, 396], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 179: _t, 180: wt, 315: bt, 319: gt, 320: St }), v(O2, [2, 397], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 179: _t, 180: wt, 315: bt, 319: gt, 320: St }), v(Us, [2, 398], { 77: W2 }), v(c1, [2, 399]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1161, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(c1, [2, 401]), v(Us, [2, 402], { 77: W2 }), v(c1, [2, 403]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1162, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(c1, [2, 405]), v(Li, [2, 406], { 114: 627, 330: 639, 112: $t, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 335: Ut }), v(Li, [2, 407], { 114: 627, 330: 639, 112: $t, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 335: Ut }), v(Li, [2, 408], { 114: 627, 330: 639, 112: $t, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 335: Ut }), v(Li, [2, 409], { 114: 627, 330: 639, 112: $t, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 335: Ut }), v([2, 4, 5, 10, 53, 72, 89, 99, 124, 139, 140, 146, 154, 156, 170, 171, 189, 270, 271, 292, 309, 313, 323, 324, 325, 326, 327, 328, 329, 333, 334, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 508, 510, 511, 520, 605, 766], uo, { 114: 627, 330: 639, 112: $t, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 335: Ut }), v(Li, [2, 411], { 114: 627, 330: 639, 112: $t, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 335: Ut }), v(Li, [2, 412], { 114: 627, 330: 639, 112: $t, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 335: Ut }), v(Li, [2, 413], { 114: 627, 330: 639, 112: $t, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 335: Ut }), v(Li, [2, 414], { 114: 627, 330: 639, 112: $t, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 335: Ut }), v(Li, [2, 415], { 114: 627, 330: 639, 112: $t, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 335: Ut }), { 77: [1, 1163] }, { 77: [2, 450] }, { 77: [2, 451] }, { 77: [2, 452] }, v(e2, [2, 418], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 335: Ut }), v([2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 107, 118, 122, 128, 129, 130, 131, 132, 134, 135, 137, 143, 145, 146, 148, 149, 150, 152, 156, 162, 164, 166, 168, 169, 171, 172, 173, 175, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 317, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], [2, 419], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut }), { 2: g, 3: 169, 4: C, 5: x, 40: 1164, 56: 166, 77: Ue, 78: [1, 1166], 79: 75, 89: U, 94: 261, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 151: 1165, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 184: 99, 189: re, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(c1, [2, 432]), v(c1, [2, 434]), v(c1, [2, 441]), v(c1, [2, 442]), { 2: g, 3: 669, 4: C, 5: x, 77: [1, 1167] }, { 2: g, 3: 697, 4: C, 5: x, 77: [1, 1168], 111: 937, 145: d2, 156: ye, 200: 938, 202: 1170, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 332: 1169 }, v(c1, [2, 439]), v(e2, [2, 436], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 335: Ut }), v(e2, [2, 437], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 335: Ut }), v([2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 99, 107, 118, 122, 124, 128, 129, 130, 131, 132, 134, 135, 137, 139, 140, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 181, 183, 185, 187, 189, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 239, 244, 245, 246, 247, 249, 251, 270, 271, 284, 285, 286, 287, 288, 289, 290, 292, 299, 303, 309, 311, 312, 313, 317, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 467, 473, 508, 510, 511, 520, 605, 766], [2, 438], { 114: 627, 330: 639, 112: $t, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt }), v(c1, [2, 440]), v(c1, [2, 309]), v(c1, [2, 310]), v(c1, [2, 311]), v(c1, [2, 425]), { 74: Wn, 78: [1, 1171] }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1172, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1173, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(c1, Hi), v(za, [2, 289]), v(c1, [2, 285]), { 78: [1, 1175], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 78: [1, 1176] }, { 308: 1177, 309: No, 310: 960, 311: Pi, 313: f3 }, { 309: [1, 1178] }, v(ia, [2, 375]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1179, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 312: [1, 1180], 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 76: [1, 1181], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 74: [1, 1182] }, v(Gr, [2, 644]), { 2: g, 3: 697, 4: C, 5: x, 77: Oi, 111: 692, 113: 690, 131: Le, 132: we, 143: ge, 144: 687, 145: mr, 152: he, 156: ye, 181: be, 196: 689, 200: 695, 201: 694, 261: 691, 262: 693, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 303: [1, 1183], 305: Ce, 422: 191, 423: fe, 425: 1184, 426: 688, 427: le }, { 78: [1, 1185], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 2: g, 3: 1186, 4: C, 5: x, 149: ai }, v(c1, [2, 368]), v(Gr, [2, 641]), { 2: g, 3: 706, 4: C, 5: x, 131: Ns, 132: mi, 429: [1, 1187], 431: 1188 }, { 2: g, 3: 697, 4: C, 5: x, 77: Oi, 111: 692, 113: 690, 131: Le, 132: we, 143: ge, 144: 687, 145: mr, 152: he, 156: ye, 181: be, 196: 689, 200: 695, 201: 694, 261: 691, 262: 693, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 305: Ce, 422: 191, 423: fe, 425: 1189, 426: 688, 427: le }, { 2: g, 3: 697, 4: C, 5: x, 77: Oi, 111: 692, 113: 690, 131: Le, 132: we, 143: ge, 144: 687, 145: mr, 152: he, 156: ye, 181: be, 196: 689, 200: 695, 201: 694, 261: 691, 262: 693, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 305: Ce, 422: 191, 423: fe, 425: 1190, 426: 688, 427: le }, { 2: g, 3: 697, 4: C, 5: x, 77: Oi, 111: 692, 113: 690, 131: Le, 132: we, 143: ge, 144: 687, 145: mr, 152: he, 156: ye, 181: be, 196: 689, 200: 695, 201: 694, 261: 691, 262: 693, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 305: Ce, 422: 191, 423: fe, 425: 1191, 426: 688, 427: le }, { 77: ki, 143: ge, 144: 982, 145: mr, 152: he, 181: be, 201: 983, 305: Ce, 345: 1192, 422: 191, 423: fe, 427: le }, v(bn, [2, 462], { 74: k2 }), { 149: hs, 344: 1194, 347: zs }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1198, 100: 1195, 111: 1197, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 348: 1196, 422: 191, 423: fe, 427: le }, v(bn, [2, 470]), v(h3, [2, 473]), v(h3, [2, 474]), v(co, [2, 478]), v(co, [2, 479]), { 2: g, 3: 245, 4: C, 5: x, 199: 1199 }, { 77: ki, 143: ge, 144: 982, 145: mr, 152: he, 181: be, 201: 983, 305: Ce, 345: 1200, 422: 191, 423: fe, 427: le }, v(bn, [2, 466], { 74: k2 }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1198, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 348: 1196, 422: 191, 423: fe, 427: le }, { 311: Do, 459: 1201, 461: 1202, 462: 1203 }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1205, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 230: [2, 701] }, v(kr, [2, 181], { 3: 1206, 2: g, 4: C, 5: x, 76: [1, 1207] }), v(kr, [2, 182]), v(kr, [2, 1098]), v(kr, [2, 184]), v(kr, [2, 186]), v(kr, [2, 188]), v(kr, [2, 192]), v(kr, [2, 196]), v(kr, [2, 199]), v([2, 4, 5, 10, 53, 72, 74, 76, 77, 78, 89, 93, 95, 98, 118, 124, 128, 143, 145, 146, 148, 149, 152, 154, 156, 162, 168, 169, 181, 183, 187, 189, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 249, 251, 270, 271, 292, 300, 305, 309, 313, 338, 341, 342, 346, 347, 359, 371, 372, 376, 377, 399, 403, 404, 405, 406, 407, 409, 411, 412, 420, 421, 423, 427, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 508, 510, 511, 517, 518, 519, 520, 605, 766], [2, 201]), { 2: g, 3: 1208, 4: C, 5: x }, v(Cr, [2, 1049], { 83: 1209, 92: 1210, 93: [1, 1211], 98: [1, 1212] }), { 2: g, 3: 220, 4: C, 5: x, 77: [1, 1214], 132: ks, 143: ge, 144: 213, 145: Be, 152: he, 156: ye, 181: be, 199: 214, 200: 216, 201: 215, 202: 218, 203: 1213, 209: 1215, 213: q2, 214: 219, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 305: Ce, 422: 191, 423: fe, 427: le }, v(Ds, [2, 164]), v(Ds, [2, 165]), v(Ds, [2, 166]), v(Ds, [2, 167]), v(Ds, [2, 168]), { 2: g, 3: 669, 4: C, 5: x }, v(Ao, [2, 83], { 74: [1, 1216] }), v(Pr, [2, 85]), v(Pr, [2, 86]), { 113: 1217, 132: we, 299: _e }, v([10, 72, 74, 78, 93, 98, 118, 124, 128, 162, 168, 169, 183, 198, 206, 208, 222, 223, 224, 225, 226, 227, 228, 229, 232, 249, 251, 309, 313, 605, 766], Ma, { 116: Ps }), v(Fr, [2, 73]), v(Fr, [2, 1054]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1218, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(O1, [2, 126]), v(O1, [2, 144]), v(O1, [2, 145]), v(O1, [2, 146]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 78: [2, 1069], 94: 261, 111: 150, 113: 154, 127: 1219, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 151: 1220, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 77: [1, 1221] }, v(O1, [2, 94]), v([2, 4, 5, 10, 72, 74, 76, 77, 78, 118, 122, 124, 128, 129, 130, 131, 132, 134, 135, 137, 139, 140, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 181, 183, 185, 187, 198, 244, 245, 284, 285, 286, 287, 288, 289, 290, 309, 313, 423, 427, 605, 766], [2, 96], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), v([2, 4, 5, 10, 72, 74, 76, 77, 78, 112, 118, 122, 124, 128, 129, 130, 131, 132, 134, 135, 137, 139, 140, 143, 145, 146, 148, 149, 150, 152, 154, 156, 162, 164, 166, 168, 169, 170, 171, 172, 173, 175, 181, 183, 185, 187, 198, 244, 245, 284, 285, 286, 287, 288, 289, 290, 309, 313, 423, 427, 605, 766], [2, 97], { 114: 627, 330: 639, 99: Gt, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), { 2: g, 3: 735, 4: C, 5: x, 72: Qn, 76: Pn, 77: gr, 78: [1, 1222], 112: bi, 114: 738, 115: ot, 116: it, 117: 1223, 118: Er, 122: Ci, 123: ei, 124: $r, 128: Ln, 129: Tn, 130: q1, 131: br, 132: Un, 133: yi, 134: zn, 135: pn, 136: sr, 137: wi, 138: Bn, 139: qr, 140: on, 141: ti, 142: ri, 143: _n, 144: 760, 145: An, 146: Hn, 148: ni, 149: ii, 150: Rn, 152: Gn, 154: gn, 156: Ir, 158: 770, 160: 771, 162: cr, 164: vn, 166: an, 168: Tr, 169: Wr, 170: qn, 171: Ei, 172: si, 173: xi, 175: oi, 185: jr, 187: ln, 244: Re, 245: Ie, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 422: 191, 423: fe, 427: le }, v(B, [2, 1065], { 153: 1018, 179: mn, 180: Nn, 181: Si }), { 2: g, 3: 735, 4: C, 5: x, 72: Qn, 76: Pn, 77: gr, 112: bi, 114: 738, 115: ot, 116: it, 117: 1225, 118: Er, 122: Ci, 123: ei, 124: $r, 126: 1224, 128: Ln, 129: Tn, 130: q1, 131: br, 132: Un, 133: yi, 134: zn, 135: pn, 136: sr, 137: wi, 138: Bn, 139: qr, 140: on, 141: ti, 142: ri, 143: _n, 144: 760, 145: An, 146: Hn, 148: ni, 149: ii, 150: Rn, 152: Gn, 154: gn, 156: Ir, 158: 770, 160: 771, 162: cr, 164: vn, 166: an, 168: Tr, 169: Wr, 170: qn, 171: Ei, 172: si, 173: xi, 175: oi, 185: jr, 187: ln, 244: Re, 245: Ie, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1226, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1227, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 1228, 4: C, 5: x }, v(O1, [2, 110]), v(O1, [2, 111]), v(O1, [2, 112]), v(O1, [2, 119]), { 2: g, 3: 1229, 4: C, 5: x }, { 2: g, 3: 1014, 4: C, 5: x, 111: 1068, 143: ds, 145: A2, 147: 1230, 339: 1067, 340: 1069 }, { 2: g, 3: 1231, 4: C, 5: x }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 261, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 151: 1232, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(O1, [2, 125]), v(B, [2, 1071], { 155: 1233 }), v(B, [2, 1073], { 157: 1234 }), v(B, [2, 1075], { 159: 1235 }), v(B, [2, 1079], { 161: 1236 }), v(lr, Gi, { 163: 1237, 178: 1238 }), { 77: [1, 1239] }, v(B, [2, 1081], { 165: 1240 }), v(B, [2, 1083], { 167: 1241 }), v(lr, Gi, { 178: 1238, 163: 1242 }), v(lr, Gi, { 178: 1238, 163: 1243 }), v(lr, Gi, { 178: 1238, 163: 1244 }), v(lr, Gi, { 178: 1238, 163: 1245 }), { 2: g, 3: 735, 4: C, 5: x, 72: Qn, 76: Pn, 77: gr, 112: bi, 114: 738, 115: ot, 116: it, 117: 1246, 118: Er, 122: Ci, 123: ei, 124: $r, 128: Ln, 129: Tn, 130: q1, 131: br, 132: Un, 133: yi, 134: zn, 135: pn, 136: sr, 137: wi, 138: Bn, 139: qr, 140: on, 141: ti, 142: ri, 143: _n, 144: 760, 145: An, 146: Hn, 148: ni, 149: ii, 150: Rn, 152: Gn, 154: gn, 156: Ir, 158: 770, 160: 771, 162: cr, 164: vn, 166: an, 168: Tr, 169: Wr, 170: qn, 171: Ei, 172: si, 173: xi, 175: oi, 185: jr, 187: ln, 244: Re, 245: Ie, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 819, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 174: 1247, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 257: 818, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(qi, [2, 1085], { 176: 1248 }), v(ve, [2, 610], { 183: [1, 1249] }), v(ve, [2, 606], { 183: [1, 1250] }), v(ve, [2, 599]), { 113: 1251, 132: we, 299: _e }, v(ve, [2, 608], { 183: [1, 1252] }), v(ve, [2, 603]), v(ve, [2, 604], { 112: [1, 1253] }), v(Zi, [2, 69]), { 40: 1254, 79: 75, 89: U, 184: 99, 189: re }, v(ve, [2, 454], { 74: H1, 128: [1, 1255] }), v(sa, [2, 455]), { 124: [1, 1257] }, { 2: g, 3: 1258, 4: C, 5: x }, v(vi, [2, 1119]), v(vi, [2, 1120]), v(ve, [2, 622]), v(j2, [2, 359], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), v(Li, uo, { 114: 627, 330: 639, 112: $t, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 335: Ut }), v(E1, [2, 686]), v(E1, [2, 688]), v(ve, [2, 654]), v(ve, [2, 656], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1259, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 1082, 4: C, 5: x, 77: oo, 131: Hs, 435: 1260 }, v(Mo, [2, 663]), v(Mo, [2, 664]), v(Mo, [2, 665]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1261, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1262, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 114: 1080, 115: ot, 116: it, 124: [1, 1263] }, v(j1, [2, 759]), v(us, [2, 148], { 74: g2 }), v(us, [2, 149], { 74: g2 }), v(us, [2, 150], { 74: g2 }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 819, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 257: 1264, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 1265, 4: C, 5: x, 113: 1267, 131: [1, 1266], 132: we, 299: _e }, v(K2, [2, 278]), v(K2, [2, 280]), v(K2, [2, 282]), v(f2, [2, 160]), v(f2, [2, 1094]), { 78: [1, 1268] }, v(or, [2, 762]), { 2: g, 3: 1269, 4: C, 5: x }, { 2: g, 3: 1270, 4: C, 5: x }, { 2: g, 3: 1272, 4: C, 5: x, 387: 1271 }, { 2: g, 3: 1272, 4: C, 5: x, 387: 1273 }, { 2: g, 3: 1274, 4: C, 5: x }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 261, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 151: 1275, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 1276, 4: C, 5: x }, { 74: Wn, 78: [1, 1277] }, v(Kr, [2, 350]), v(Kr, [2, 351]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1278, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1279, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1280, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1281, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1282, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(Ms, [2, 508]), v(ve, Ba, { 410: 1283, 76: b2, 77: [1, 1284] }), v(ve, Ba, { 410: 1286, 76: b2 }), { 77: [1, 1287] }, { 2: g, 3: 245, 4: C, 5: x, 199: 1288 }, v(j1, [2, 735]), v(j1, [2, 737]), v(j1, [2, 1150]), { 143: hr, 145: u1, 434: 1289 }, v(Ha, [2, 1151], { 422: 191, 482: 1290, 144: 1291, 145: mr, 423: fe, 427: le }), { 76: ao, 139: [2, 1155], 484: 1292, 486: 1293 }, v([10, 74, 76, 78, 132, 139, 145, 152, 309, 313, 423, 427, 605, 766], ce, { 493: 854, 496: 855, 137: Fi }), v(j1, [2, 740]), v(j1, Ui), { 74: Pa, 78: [1, 1294] }, v(ze, [2, 1169], { 495: 1295, 500: 1296, 152: Ri }), v(st, [2, 1168]), v(ze, [2, 749]), v(ze, [2, 1174]), v(ve, [2, 494], { 77: [1, 1297] }), { 76: [1, 1299], 77: [1, 1298] }, { 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 148: [1, 1300], 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, v(bn, oa, { 79: 75, 184: 99, 471: 1301, 40: 1304, 89: U, 146: d3, 189: re, 473: aa }), v(Xr, [2, 1144]), v($1, [2, 727]), { 230: [1, 1305] }, v($o, [2, 773]), v($o, [2, 774]), v($o, [2, 775]), v(J1, un, { 513: 1306, 95: vr, 517: _2, 518: $s, 519: kn }), v(J1, [2, 772]), v(ve, [2, 315]), v(ve, [2, 316]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1307, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(E1, [2, 694], { 124: [1, 1308] }), v(v2, [2, 545]), { 131: [1, 1310], 391: 1309, 393: [1, 1311] }, v(v2, [2, 5]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1198, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 348: 1312, 422: 191, 423: fe, 427: le }, v(ve, [2, 459], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), v(ve, [2, 593]), v(ve, [2, 594]), { 2: g, 3: 245, 4: C, 5: x, 199: 1313 }, v(ve, [2, 674]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1314, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1315, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 78: [1, 1316], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 78: [1, 1317], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 2: g, 3: 169, 4: C, 5: x, 40: 1318, 56: 166, 77: Ue, 79: 75, 89: U, 94: 261, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 151: 1319, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 184: 99, 189: re, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 78: [1, 1320] }, { 74: Wn, 78: [1, 1321] }, v(c1, [2, 430]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1322, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 40: 1323, 56: 166, 77: Ue, 78: [1, 1325], 79: 75, 89: U, 94: 261, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 151: 1324, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 184: 99, 189: re, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(c1, [2, 433]), v(c1, [2, 435]), v(c1, t2, { 279: 1326, 280: la }), { 78: [1, 1328], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 78: [1, 1329], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 2: g, 3: 1330, 4: C, 5: x, 180: [1, 1331] }, v(Gr, [2, 623]), v(c1, [2, 367]), { 309: [1, 1332] }, v(c1, [2, 374]), { 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 309: [2, 378], 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1333, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 4: h2, 7: 882, 276: 1334, 390: 881, 392: cs }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1335, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(Gr, [2, 645]), v(Y2, [2, 652]), v(In, [2, 640]), v(za, Hi), v(Gr, [2, 642]), v(fs, [2, 647]), v(fs, [2, 649]), v(fs, [2, 650]), v(fs, [2, 651]), v(bn, [2, 461], { 74: k2 }), { 77: [1, 1337], 143: ge, 144: 1338, 145: mr, 152: he, 181: be, 201: 1339, 305: Ce, 422: 191, 423: fe, 427: le }, v(bn, [2, 467]), { 74: C2, 78: [1, 1340] }, { 74: ua, 78: [1, 1342] }, v([74, 78, 99, 112, 115, 116, 123, 124, 133, 136, 138, 139, 140, 141, 142, 154, 170, 171, 179, 180, 314, 315, 316, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 333, 334, 335, 336], fo), v(Dn, [2, 483], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), { 40: 1346, 77: ki, 79: 75, 89: U, 143: ge, 144: 982, 145: mr, 149: hs, 152: he, 181: be, 184: 99, 189: re, 201: 983, 305: Ce, 344: 1344, 345: 1345, 347: zs, 422: 191, 423: fe, 427: le }, v(bn, [2, 465], { 74: k2 }), v(ve, [2, 721], { 460: 1347, 461: 1348, 462: 1349, 311: Do, 467: [1, 1350] }), v(dr, [2, 705]), v(dr, [2, 706]), { 154: [1, 1352], 463: [1, 1351] }, { 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 311: [2, 702], 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, v(kr, [2, 179]), { 2: g, 3: 1353, 4: C, 5: x }, v(ve, [2, 578]), v(I2, [2, 238], { 84: 1354, 128: [1, 1355] }), v(Cr, [2, 1050]), { 77: [1, 1356] }, { 77: [1, 1357] }, v(Bs, [2, 169], { 204: 1358, 215: 1360, 205: 1361, 216: 1362, 221: 1365, 74: Ga, 206: ca, 208: Fo, 222: li, 223: G1, 224: Ti, 225: r2, 226: Vr, 227: ho, 228: Gs, 229: po }), { 2: g, 3: 220, 4: C, 5: x, 40: 713, 77: _o, 79: 75, 89: U, 132: ks, 143: ge, 144: 213, 145: Be, 152: he, 156: ye, 181: be, 184: 99, 189: re, 199: 214, 200: 216, 201: 215, 202: 218, 203: 1374, 209: 1215, 213: q2, 214: 219, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 305: Ce, 422: 191, 423: fe, 427: le }, v(fa, [2, 177]), { 2: g, 3: 1014, 4: C, 5: x, 110: 1375, 111: 1012, 112: p2 }, v(Pr, [2, 87]), v(Fr, [2, 147], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), { 78: [1, 1376] }, { 74: Wn, 78: [2, 1070] }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 78: [2, 1063], 94: 1381, 111: 150, 113: 154, 120: 1377, 121: 1378, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 241: 1379, 244: Re, 245: Ie, 246: [1, 1380], 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(O1, [2, 98]), v(B, [2, 1066], { 153: 1018, 179: mn, 180: Nn, 181: Si }), { 2: g, 3: 735, 4: C, 5: x, 72: Qn, 76: Pn, 77: gr, 78: [1, 1382], 112: bi, 114: 738, 115: ot, 116: it, 117: 1383, 118: Er, 122: Ci, 123: ei, 124: $r, 128: Ln, 129: Tn, 130: q1, 131: br, 132: Un, 133: yi, 134: zn, 135: pn, 136: sr, 137: wi, 138: Bn, 139: qr, 140: on, 141: ti, 142: ri, 143: _n, 144: 760, 145: An, 146: Hn, 148: ni, 149: ii, 150: Rn, 152: Gn, 154: gn, 156: Ir, 158: 770, 160: 771, 162: cr, 164: vn, 166: an, 168: Tr, 169: Wr, 170: qn, 171: Ei, 172: si, 173: xi, 175: oi, 185: jr, 187: ln, 244: Re, 245: Ie, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 422: 191, 423: fe, 427: le }, v(B, [2, 1067], { 153: 1018, 179: mn, 180: Nn, 181: Si }), { 78: [1, 1384], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 78: [1, 1385], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 78: [1, 1386] }, v(O1, [2, 120]), { 74: H1, 78: [1, 1387] }, v(O1, [2, 122]), { 74: Wn, 78: [1, 1388] }, { 2: g, 3: 735, 4: C, 5: x, 72: Qn, 76: Pn, 77: gr, 78: [1, 1389], 112: bi, 114: 738, 115: ot, 116: it, 117: 1390, 118: Er, 122: Ci, 123: ei, 124: $r, 128: Ln, 129: Tn, 130: q1, 131: br, 132: Un, 133: yi, 134: zn, 135: pn, 136: sr, 137: wi, 138: Bn, 139: qr, 140: on, 141: ti, 142: ri, 143: _n, 144: 760, 145: An, 146: Hn, 148: ni, 149: ii, 150: Rn, 152: Gn, 154: gn, 156: Ir, 158: 770, 160: 771, 162: cr, 164: vn, 166: an, 168: Tr, 169: Wr, 170: qn, 171: Ei, 172: si, 173: xi, 175: oi, 185: jr, 187: ln, 244: Re, 245: Ie, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 422: 191, 423: fe, 427: le }, { 2: g, 3: 735, 4: C, 5: x, 72: Qn, 76: Pn, 77: gr, 78: [1, 1391], 112: bi, 114: 738, 115: ot, 116: it, 117: 1392, 118: Er, 122: Ci, 123: ei, 124: $r, 128: Ln, 129: Tn, 130: q1, 131: br, 132: Un, 133: yi, 134: zn, 135: pn, 136: sr, 137: wi, 138: Bn, 139: qr, 140: on, 141: ti, 142: ri, 143: _n, 144: 760, 145: An, 146: Hn, 148: ni, 149: ii, 150: Rn, 152: Gn, 154: gn, 156: Ir, 158: 770, 160: 771, 162: cr, 164: vn, 166: an, 168: Tr, 169: Wr, 170: qn, 171: Ei, 172: si, 173: xi, 175: oi, 185: jr, 187: ln, 244: Re, 245: Ie, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 422: 191, 423: fe, 427: le }, { 2: g, 3: 735, 4: C, 5: x, 72: Qn, 76: Pn, 77: gr, 78: [1, 1393], 112: bi, 114: 738, 115: ot, 116: it, 117: 1394, 118: Er, 122: Ci, 123: ei, 124: $r, 128: Ln, 129: Tn, 130: q1, 131: br, 132: Un, 133: yi, 134: zn, 135: pn, 136: sr, 137: wi, 138: Bn, 139: qr, 140: on, 141: ti, 142: ri, 143: _n, 144: 760, 145: An, 146: Hn, 148: ni, 149: ii, 150: Rn, 152: Gn, 154: gn, 156: Ir, 158: 770, 160: 771, 162: cr, 164: vn, 166: an, 168: Tr, 169: Wr, 170: qn, 171: Ei, 172: si, 173: xi, 175: oi, 185: jr, 187: ln, 244: Re, 245: Ie, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 422: 191, 423: fe, 427: le }, { 2: g, 3: 735, 4: C, 5: x, 72: Qn, 76: Pn, 77: gr, 78: [1, 1395], 112: bi, 114: 738, 115: ot, 116: it, 117: 1396, 118: Er, 122: Ci, 123: ei, 124: $r, 128: Ln, 129: Tn, 130: q1, 131: br, 132: Un, 133: yi, 134: zn, 135: pn, 136: sr, 137: wi, 138: Bn, 139: qr, 140: on, 141: ti, 142: ri, 143: _n, 144: 760, 145: An, 146: Hn, 148: ni, 149: ii, 150: Rn, 152: Gn, 154: gn, 156: Ir, 158: 770, 160: 771, 162: cr, 164: vn, 166: an, 168: Tr, 169: Wr, 170: qn, 171: Ei, 172: si, 173: xi, 175: oi, 185: jr, 187: ln, 244: Re, 245: Ie, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 422: 191, 423: fe, 427: le }, { 74: vs, 78: [1, 1397] }, v(Dn, [2, 143], { 422: 191, 3: 735, 114: 738, 144: 760, 158: 770, 160: 771, 117: 1399, 2: g, 4: C, 5: x, 72: Qn, 76: Pn, 77: gr, 112: bi, 115: ot, 116: it, 118: Er, 122: Ci, 123: ei, 124: $r, 128: Ln, 129: Tn, 130: q1, 131: br, 132: Un, 133: yi, 134: zn, 135: pn, 136: sr, 137: wi, 138: Bn, 139: qr, 140: on, 141: ti, 142: ri, 143: _n, 145: An, 146: Hn, 148: ni, 149: ii, 150: Rn, 152: Gn, 154: gn, 156: Ir, 162: cr, 164: vn, 166: an, 168: Tr, 169: Wr, 170: qn, 171: Ei, 172: si, 173: xi, 175: oi, 185: jr, 187: ln, 244: Re, 245: Ie, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 423: fe, 427: le }), v(lr, Gi, { 178: 1238, 163: 1400 }), { 2: g, 3: 735, 4: C, 5: x, 72: Qn, 76: Pn, 77: gr, 78: [1, 1401], 112: bi, 114: 738, 115: ot, 116: it, 117: 1402, 118: Er, 122: Ci, 123: ei, 124: $r, 128: Ln, 129: Tn, 130: q1, 131: br, 132: Un, 133: yi, 134: zn, 135: pn, 136: sr, 137: wi, 138: Bn, 139: qr, 140: on, 141: ti, 142: ri, 143: _n, 144: 760, 145: An, 146: Hn, 148: ni, 149: ii, 150: Rn, 152: Gn, 154: gn, 156: Ir, 158: 770, 160: 771, 162: cr, 164: vn, 166: an, 168: Tr, 169: Wr, 170: qn, 171: Ei, 172: si, 173: xi, 175: oi, 185: jr, 187: ln, 244: Re, 245: Ie, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 422: 191, 423: fe, 427: le }, { 2: g, 3: 735, 4: C, 5: x, 72: Qn, 76: Pn, 77: gr, 78: [1, 1403], 112: bi, 114: 738, 115: ot, 116: it, 117: 1404, 118: Er, 122: Ci, 123: ei, 124: $r, 128: Ln, 129: Tn, 130: q1, 131: br, 132: Un, 133: yi, 134: zn, 135: pn, 136: sr, 137: wi, 138: Bn, 139: qr, 140: on, 141: ti, 142: ri, 143: _n, 144: 760, 145: An, 146: Hn, 148: ni, 149: ii, 150: Rn, 152: Gn, 154: gn, 156: Ir, 158: 770, 160: 771, 162: cr, 164: vn, 166: an, 168: Tr, 169: Wr, 170: qn, 171: Ei, 172: si, 173: xi, 175: oi, 185: jr, 187: ln, 244: Re, 245: Ie, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 422: 191, 423: fe, 427: le }, { 74: vs, 78: [1, 1405] }, { 74: vs, 78: [1, 1406] }, { 74: vs, 78: [1, 1407] }, { 74: vs, 78: [1, 1408] }, { 78: [1, 1409], 153: 1018, 179: mn, 180: Nn, 181: Si }, { 74: g2, 78: [1, 1410] }, { 2: g, 3: 735, 4: C, 5: x, 72: Qn, 74: [1, 1411], 76: Pn, 77: gr, 112: bi, 114: 738, 115: ot, 116: it, 117: 1412, 118: Er, 122: Ci, 123: ei, 124: $r, 128: Ln, 129: Tn, 130: q1, 131: br, 132: Un, 133: yi, 134: zn, 135: pn, 136: sr, 137: wi, 138: Bn, 139: qr, 140: on, 141: ti, 142: ri, 143: _n, 144: 760, 145: An, 146: Hn, 148: ni, 149: ii, 150: Rn, 152: Gn, 154: gn, 156: Ir, 158: 770, 160: 771, 162: cr, 164: vn, 166: an, 168: Tr, 169: Wr, 170: qn, 171: Ei, 172: si, 173: xi, 175: oi, 185: jr, 187: ln, 244: Re, 245: Ie, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 422: 191, 423: fe, 427: le }, { 2: g, 3: 1413, 4: C, 5: x }, { 2: g, 3: 1414, 4: C, 5: x }, v(ve, [2, 601]), { 2: g, 3: 1415, 4: C, 5: x }, { 113: 1416, 132: we, 299: _e }, { 78: [1, 1417] }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1418, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 1014, 4: C, 5: x, 111: 1068, 143: ds, 145: A2, 339: 1419, 340: 1069 }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1420, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 124: [1, 1421] }, v(ve, [2, 657], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), v(Mo, [2, 662]), { 78: [1, 1422], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, v(ve, [2, 658], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1423, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(K2, [2, 275]), v(K2, [2, 277]), v(K2, [2, 279]), v(K2, [2, 281]), v(f2, [2, 161]), v(ve, [2, 573]), { 148: [1, 1424] }, v(ve, [2, 574]), v(j1, [2, 540], { 390: 881, 7: 882, 276: 1425, 4: h2, 389: [1, 1426], 392: cs }), v(ve, [2, 575]), v(ve, [2, 577]), { 74: Wn, 78: [1, 1427] }, v(ve, [2, 581]), v(Kr, [2, 348]), { 74: [1, 1428], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 74: [1, 1429], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 74: [1, 1430], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 74: [1, 1431], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 74: [1, 1432], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, v(ve, [2, 585]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 261, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 151: 1433, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 1434, 4: C, 5: x }, v(ve, [2, 587]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1381, 111: 150, 113: 154, 120: 1435, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 241: 1379, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 77: [1, 1436] }, { 2: g, 3: 1437, 4: C, 5: x }, { 76: ao, 139: [2, 1153], 483: 1438, 486: 1439 }, v(Ha, [2, 1152]), { 139: [1, 1440] }, { 139: [2, 1156] }, v(j1, [2, 741]), v(ze, [2, 748]), v(ze, [2, 1170]), { 2: g, 3: 1272, 4: C, 5: x, 76: [1, 1443], 354: 1441, 361: 1442, 387: 1444 }, { 2: g, 3: 1014, 4: C, 5: x, 100: 1445, 111: 1446 }, { 40: 1447, 79: 75, 89: U, 184: 99, 189: re }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1448, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(bn, [2, 726]), { 2: g, 3: 1014, 4: C, 5: x, 111: 1068, 143: ds, 145: A2, 147: 1449, 339: 1067, 340: 1069 }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 261, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 151: 1450, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(bn, [2, 731]), { 2: g, 3: 245, 4: C, 5: x, 199: 1451 }, { 338: Jr, 341: Ua, 342: ps, 514: 1452 }, v(E1, [2, 695], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1453, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 74: [1, 1454], 78: [1, 1455] }, v(Dn, [2, 547]), v(Dn, [2, 548]), { 74: ua, 78: [1, 1456] }, v(E1, [2, 569]), v(R2, [2, 384], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 315: bt, 319: gt, 320: St, 321: At, 322: Dt }), v(R2, [2, 386], { 114: 627, 330: 639, 115: ot, 116: it, 123: mt, 133: yt, 136: pt, 138: vt, 141: Nt, 142: It, 179: _t, 180: wt, 315: bt, 319: gt, 320: St, 321: At, 322: Dt }), v(c1, [2, 400]), v(c1, [2, 404]), { 78: [1, 1457] }, { 74: Wn, 78: [1, 1458] }, v(c1, [2, 426]), v(c1, [2, 428]), { 78: [1, 1459], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 78: [1, 1460] }, { 74: Wn, 78: [1, 1461] }, v(c1, [2, 431]), v(c1, [2, 330]), { 77: [1, 1462] }, v(c1, t2, { 279: 1463, 280: la }), v(c1, t2, { 279: 1464, 280: la }), v(za, [2, 287]), v(c1, [2, 284]), v(c1, [2, 373]), v(ia, [2, 377], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), { 74: [1, 1466], 78: [1, 1465] }, { 74: [1, 1468], 78: [1, 1467], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 2: g, 3: 1330, 4: C, 5: x }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1198, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 348: 1469, 422: 191, 423: fe, 427: le }, v(co, [2, 481]), v(co, [2, 482]), { 40: 1472, 77: ki, 79: 75, 89: U, 143: ge, 144: 982, 145: mr, 149: hs, 152: he, 181: be, 184: 99, 189: re, 201: 983, 305: Ce, 344: 1470, 345: 1471, 347: zs, 422: 191, 423: fe, 427: le }, { 2: g, 3: 1014, 4: C, 5: x, 111: 1473 }, v(co, [2, 477]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1474, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 77: ki, 143: ge, 144: 982, 145: mr, 152: he, 181: be, 201: 983, 305: Ce, 345: 1475, 422: 191, 423: fe, 427: le }, v(bn, [2, 464], { 74: k2 }), v(bn, [2, 471]), v(ve, [2, 698]), v(dr, [2, 703]), v(dr, [2, 704]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 819, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 174: 1476, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 257: 818, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 170: [1, 1478], 312: [1, 1477] }, { 463: [1, 1479] }, v(kr, [2, 180]), v(X2, [2, 240], { 85: 1480, 232: [1, 1481] }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1482, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1483, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 1484, 4: C, 5: x }, v(Bs, [2, 170], { 216: 1362, 221: 1365, 215: 1485, 205: 1486, 206: ca, 208: Fo, 222: li, 223: G1, 224: Ti, 225: r2, 226: Vr, 227: ho, 228: Gs, 229: po }), { 2: g, 3: 220, 4: C, 5: x, 77: _o, 132: ks, 143: ge, 144: 213, 145: Be, 152: he, 156: ye, 181: be, 199: 214, 200: 216, 201: 215, 202: 218, 209: 1487, 213: q2, 214: 219, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 305: Ce, 422: 191, 423: fe, 427: le }, v(Ii, [2, 205]), v(Ii, [2, 206]), { 2: g, 3: 220, 4: C, 5: x, 77: [1, 1492], 143: ge, 144: 1490, 145: Be, 152: he, 156: ye, 181: be, 199: 1489, 200: 1493, 201: 1491, 202: 1494, 217: 1488, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 305: Ce, 422: 191, 423: fe, 427: le }, { 207: [1, 1495], 223: ha }, { 207: [1, 1497], 223: J2 }, v(ui, [2, 222]), { 206: [1, 1501], 208: [1, 1500], 221: 1499, 223: G1, 224: Ti, 225: r2, 226: Vr, 227: ho, 228: Gs, 229: po }, v(ui, [2, 224]), { 223: [1, 1502] }, { 208: [1, 1504], 223: [1, 1503] }, { 208: [1, 1506], 223: [1, 1505] }, { 208: [1, 1507] }, { 223: [1, 1508] }, { 223: [1, 1509] }, { 74: Ga, 204: 1510, 205: 1361, 206: ca, 208: Fo, 215: 1360, 216: 1362, 221: 1365, 222: li, 223: G1, 224: Ti, 225: r2, 226: Vr, 227: ho, 228: Gs, 229: po }, v(Pr, [2, 84]), v(O1, [2, 100]), { 74: N2, 78: [1, 1511] }, { 78: [1, 1513] }, v(n2, [2, 261]), { 78: [2, 1064] }, v(n2, [2, 265], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 246: [1, 1514], 247: [1, 1515], 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), v(O1, [2, 99]), v(B, [2, 1068], { 153: 1018, 179: mn, 180: Nn, 181: Si }), v(O1, [2, 101]), v(O1, [2, 102]), v(O1, [2, 103]), v(O1, [2, 121]), v(O1, [2, 124]), v(O1, [2, 127]), v(B, [2, 1072], { 153: 1018, 179: mn, 180: Nn, 181: Si }), v(O1, [2, 128]), v(B, [2, 1074], { 153: 1018, 179: mn, 180: Nn, 181: Si }), v(O1, [2, 129]), v(B, [2, 1076], { 153: 1018, 179: mn, 180: Nn, 181: Si }), v(O1, [2, 130]), v(B, [2, 1080], { 153: 1018, 179: mn, 180: Nn, 181: Si }), v(O1, [2, 131]), v(lr, [2, 1087], { 177: 1516 }), v(lr, [2, 1090], { 153: 1018, 179: mn, 180: Nn, 181: Si }), { 74: vs, 78: [1, 1517] }, v(O1, [2, 133]), v(B, [2, 1082], { 153: 1018, 179: mn, 180: Nn, 181: Si }), v(O1, [2, 134]), v(B, [2, 1084], { 153: 1018, 179: mn, 180: Nn, 181: Si }), v(O1, [2, 135]), v(O1, [2, 136]), v(O1, [2, 137]), v(O1, [2, 138]), v(O1, [2, 139]), v(O1, [2, 140]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 261, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 151: 1518, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(qi, [2, 1086], { 153: 1018, 179: mn, 180: Nn, 181: Si }), v(ve, [2, 611]), v(ve, [2, 607]), v(ve, [2, 609]), v(ve, [2, 605]), v(Zi, [2, 71]), v(ve, [2, 453], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), v(sa, [2, 456]), v(sa, [2, 457], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1519, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(Mo, [2, 666]), v(ve, [2, 659], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), { 2: g, 3: 1520, 4: C, 5: x }, v(j1, [2, 549], { 388: 1521, 394: 1522, 395: 1523, 369: 1531, 154: Po, 187: Uo, 230: qa, 300: D2, 346: zo, 359: ms, 371: Ni, 372: Bo, 376: da, 377: Wa }), v(j1, [2, 539]), v(ve, [2, 580], { 76: [1, 1535] }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1536, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1537, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1538, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1539, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1540, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 74: Wn, 78: [1, 1541] }, v(ve, [2, 589]), { 74: N2, 78: [1, 1542] }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1381, 111: 150, 113: 154, 120: 1543, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 241: 1379, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v([10, 74, 78, 139, 309, 313, 605, 766], [2, 745]), { 139: [1, 1544] }, { 139: [2, 1154] }, { 2: g, 3: 1126, 4: C, 5: x, 132: L2, 137: Fi, 143: hr, 145: u1, 152: Ri, 434: 587, 478: 1128, 481: 1545, 485: 584, 496: 581, 500: 583 }, { 78: [1, 1546] }, { 74: [1, 1547], 78: [2, 510] }, { 40: 1548, 79: 75, 89: U, 184: 99, 189: re }, v(Dn, [2, 536]), { 74: C2, 78: [1, 1549] }, v(fa, fo), v(ve, [2, 1137], { 415: 1550, 416: 1551, 72: go }), v(bn, oa, { 79: 75, 184: 99, 114: 627, 330: 639, 40: 1304, 471: 1553, 89: U, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 146: d3, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 189: re, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt, 473: aa }), v(bn, [2, 729], { 74: H1 }), v(bn, [2, 730], { 74: Wn }), v([10, 53, 72, 89, 124, 146, 156, 189, 270, 271, 292, 309, 313, 338, 341, 342, 399, 403, 404, 407, 409, 411, 412, 420, 421, 437, 439, 440, 442, 443, 444, 445, 446, 450, 451, 454, 455, 508, 510, 511, 520, 605, 766], [2, 1185], { 515: 1554, 3: 1555, 2: g, 4: C, 5: x, 76: [1, 1556] }), v(y2, [2, 1187], { 516: 1557, 76: [1, 1558] }), v(E1, [2, 696], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), { 131: [1, 1559] }, v(v2, [2, 542]), v(v2, [2, 544]), v(c1, [2, 416]), v(c1, [2, 417]), v(c1, [2, 443]), v(c1, [2, 427]), v(c1, [2, 429]), { 118: bs, 281: 1560, 282: 1561, 283: [1, 1562] }, v(c1, [2, 331]), v(c1, [2, 332]), v(c1, [2, 319]), { 131: [1, 1564] }, v(c1, [2, 321]), { 131: [1, 1565] }, { 74: ua, 78: [1, 1566] }, { 77: ki, 143: ge, 144: 982, 145: mr, 152: he, 181: be, 201: 983, 305: Ce, 345: 1567, 422: 191, 423: fe, 427: le }, v(bn, [2, 469], { 74: k2 }), v(bn, [2, 472]), v(fa, [2, 492]), v(Dn, [2, 484], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), v(bn, [2, 463], { 74: k2 }), v(ve, [2, 722], { 74: g2, 198: [1, 1568] }), { 338: Ho, 341: Z2, 464: 1569 }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1572, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 119: [1, 1574], 170: [1, 1575], 312: [1, 1573] }, v(ja, [2, 259], { 86: 1576, 118: [1, 1577] }), { 119: [1, 1578] }, v(I2, [2, 239], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), { 95: [1, 1579], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 95: [1, 1580] }, v(Ii, [2, 203]), v(Ii, [2, 204]), v(fa, [2, 178]), v(Ii, [2, 237], { 218: 1581, 230: [1, 1582], 231: [1, 1583] }), v(Cn, [2, 208], { 3: 1584, 2: g, 4: C, 5: x, 76: [1, 1585] }), v(yn, [2, 1099], { 219: 1586, 76: [1, 1587] }), { 2: g, 3: 1588, 4: C, 5: x, 76: [1, 1589] }, { 40: 1590, 79: 75, 89: U, 184: 99, 189: re }, v(Cn, [2, 216], { 3: 1591, 2: g, 4: C, 5: x, 76: [1, 1592] }), v(Cn, [2, 219], { 3: 1593, 2: g, 4: C, 5: x, 76: [1, 1594] }), { 77: [1, 1595] }, v(ui, [2, 234]), { 77: [1, 1596] }, v(ui, [2, 230]), v(ui, [2, 223]), { 223: J2 }, { 223: ha }, v(ui, [2, 225]), v(ui, [2, 226]), { 223: [1, 1597] }, v(ui, [2, 228]), { 223: [1, 1598] }, { 223: [1, 1599] }, v(ui, [2, 232]), v(ui, [2, 233]), { 78: [1, 1600], 205: 1486, 206: ca, 208: Fo, 215: 1485, 216: 1362, 221: 1365, 222: li, 223: G1, 224: Ti, 225: r2, 226: Vr, 227: ho, 228: Gs, 229: po }, v(O1, [2, 91]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1381, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 241: 1601, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(O1, [2, 92]), v(n2, [2, 266], { 242: 1602, 243: [1, 1603] }), { 248: [1, 1604] }, v(Dn, [2, 142], { 422: 191, 3: 735, 114: 738, 144: 760, 158: 770, 160: 771, 117: 1605, 2: g, 4: C, 5: x, 72: Qn, 76: Pn, 77: gr, 112: bi, 115: ot, 116: it, 118: Er, 122: Ci, 123: ei, 124: $r, 128: Ln, 129: Tn, 130: q1, 131: br, 132: Un, 133: yi, 134: zn, 135: pn, 136: sr, 137: wi, 138: Bn, 139: qr, 140: on, 141: ti, 142: ri, 143: _n, 145: An, 146: Hn, 148: ni, 149: ii, 150: Rn, 152: Gn, 154: gn, 156: Ir, 162: cr, 164: vn, 166: an, 168: Tr, 169: Wr, 170: qn, 171: Ei, 172: si, 173: xi, 175: oi, 185: jr, 187: ln, 244: Re, 245: Ie, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 423: fe, 427: le }), v(O1, [2, 132]), { 74: Wn, 78: [1, 1606] }, v(sa, [2, 458], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), v(ve, [2, 576]), v(j1, [2, 538]), v(j1, [2, 550], { 369: 1531, 395: 1607, 154: Po, 187: Uo, 230: qa, 300: D2, 346: zo, 359: ms, 371: Ni, 372: Bo, 376: da, 377: Wa }), v(ar, [2, 552]), { 373: [1, 1608] }, { 373: [1, 1609] }, { 2: g, 3: 245, 4: C, 5: x, 199: 1610 }, v(ar, [2, 558], { 77: [1, 1611] }), { 2: g, 3: 114, 4: C, 5: x, 77: [1, 1613], 113: 252, 131: Le, 132: we, 143: ge, 152: he, 156: ye, 181: be, 196: 251, 200: 1614, 201: 255, 261: 253, 262: 254, 269: Ro, 278: 1612, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 305: Ce }, v(ar, [2, 562]), { 300: [1, 1615] }, v(ar, [2, 564]), v(ar, [2, 565]), { 338: [1, 1616] }, { 77: [1, 1617] }, { 2: g, 3: 1618, 4: C, 5: x }, { 78: [1, 1619], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 78: [1, 1620], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 78: [1, 1621], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 78: [1, 1622], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 78: [1, 1623], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, v(ve, Ba, { 410: 1624, 76: b2 }), v(ve, [2, 595]), { 74: N2, 78: [1, 1625] }, { 2: g, 3: 1126, 4: C, 5: x, 132: L2, 137: Fi, 143: hr, 145: u1, 152: Ri, 434: 587, 478: 1128, 481: 1626, 485: 584, 496: 581, 500: 583 }, v(j1, [2, 739]), v(ve, [2, 497], { 355: 1627, 357: 1628, 358: 1629, 4: pa, 247: ga, 346: yr, 359: qs }), v(Cs, M2, { 3: 1272, 362: 1634, 387: 1635, 363: 1636, 364: 1637, 2: g, 4: C, 5: x, 370: Go }), { 78: [2, 511] }, { 76: [1, 1639] }, v(ve, [2, 613]), v(ve, [2, 1138]), { 371: [1, 1641], 417: [1, 1640] }, v(bn, [2, 732]), v(ve, b, { 17: 5, 18: 7, 19: 8, 20: 9, 21: 10, 22: 11, 23: 12, 24: 13, 25: 14, 26: 15, 27: 16, 28: 17, 29: 18, 30: 19, 31: 20, 32: 21, 33: 22, 34: 23, 35: 24, 36: 25, 37: 26, 38: 27, 39: 28, 40: 29, 41: 30, 42: 31, 43: 32, 44: 33, 45: 34, 46: 35, 47: 36, 48: 37, 49: 38, 50: 39, 51: 40, 52: 41, 54: 43, 55: 44, 56: 45, 57: 46, 58: 47, 59: 48, 60: 49, 61: 50, 62: 51, 63: 52, 64: 53, 65: 54, 66: 55, 67: 56, 68: 57, 69: 58, 70: 59, 71: 60, 79: 75, 507: 95, 184: 99, 3: 100, 12: 1642, 2: g, 4: C, 5: x, 53: P, 72: M, 89: U, 124: j, 146: K, 156: Z, 189: re, 270: V, 271: at, 292: Tt, 338: Wt, 341: b1, 342: R1, 399: C1, 403: D1, 404: M1, 407: B1, 409: V1, 411: Y1, 412: tn, 420: Vt, 421: w1, 437: l1, 439: Yt, 440: Or, 442: pr, 443: wr, 444: rn, 445: xn, 446: nn, 450: Mi, 451: c2, 454: gi, 455: Sr, 508: dn, 510: Lr, 511: Ai, 520: Zn }), v(ve, [2, 766]), v(y2, [2, 1186]), v(ve, b, { 17: 5, 18: 7, 19: 8, 20: 9, 21: 10, 22: 11, 23: 12, 24: 13, 25: 14, 26: 15, 27: 16, 28: 17, 29: 18, 30: 19, 31: 20, 32: 21, 33: 22, 34: 23, 35: 24, 36: 25, 37: 26, 38: 27, 39: 28, 40: 29, 41: 30, 42: 31, 43: 32, 44: 33, 45: 34, 46: 35, 47: 36, 48: 37, 49: 38, 50: 39, 51: 40, 52: 41, 54: 43, 55: 44, 56: 45, 57: 46, 58: 47, 59: 48, 60: 49, 61: 50, 62: 51, 63: 52, 64: 53, 65: 54, 66: 55, 67: 56, 68: 57, 69: 58, 70: 59, 71: 60, 79: 75, 507: 95, 184: 99, 3: 100, 12: 1643, 2: g, 4: C, 5: x, 53: P, 72: M, 89: U, 124: j, 146: K, 156: Z, 189: re, 270: V, 271: at, 292: Tt, 338: Wt, 341: b1, 342: R1, 399: C1, 403: D1, 404: M1, 407: B1, 409: V1, 411: Y1, 412: tn, 420: Vt, 421: w1, 437: l1, 439: Yt, 440: Or, 442: pr, 443: wr, 444: rn, 445: xn, 446: nn, 450: Mi, 451: c2, 454: gi, 455: Sr, 508: dn, 510: Lr, 511: Ai, 520: Zn }), v(y2, [2, 1188]), { 78: [1, 1644] }, { 78: [1, 1645], 118: bs, 282: 1646 }, { 78: [1, 1647] }, { 119: [1, 1648] }, { 119: [1, 1649] }, { 78: [1, 1650] }, { 78: [1, 1651] }, v(co, [2, 480]), v(bn, [2, 468], { 74: k2 }), { 2: g, 3: 245, 4: C, 5: x, 143: hr, 145: u1, 199: 1653, 434: 1652 }, v(dr, [2, 707]), v(dr, [2, 709]), { 146: [1, 1654] }, { 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 312: [1, 1655], 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, { 342: Nr, 465: 1656 }, { 420: [1, 1659], 466: [1, 1658] }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1660, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(i2, [2, 270], { 87: 1661, 249: [1, 1662], 251: [1, 1663] }), { 119: [1, 1664] }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1670, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 233: 1665, 235: 1666, 236: Ws, 237: js, 238: Vs, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 1671, 4: C, 5: x }, { 2: g, 3: 1672, 4: C, 5: x }, v(Ii, [2, 207]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1673, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 1014, 4: C, 5: x, 100: 1674, 111: 1446 }, v(Cn, [2, 209]), { 2: g, 3: 1675, 4: C, 5: x }, v(Cn, [2, 1101], { 220: 1676, 3: 1677, 2: g, 4: C, 5: x }), v(yn, [2, 1100]), v(Cn, [2, 212]), { 2: g, 3: 1678, 4: C, 5: x }, { 78: [1, 1679] }, v(Cn, [2, 217]), { 2: g, 3: 1680, 4: C, 5: x }, v(Cn, [2, 220]), { 2: g, 3: 1681, 4: C, 5: x }, { 40: 1682, 79: 75, 89: U, 184: 99, 189: re }, { 40: 1683, 79: 75, 89: U, 184: 99, 189: re }, v(ui, [2, 227]), v(ui, [2, 229]), v(ui, [2, 231]), v(Bs, [2, 171]), v(n2, [2, 262]), v(n2, [2, 267]), { 244: [1, 1684], 245: [1, 1685] }, v(n2, [2, 268], { 246: [1, 1686] }), v(lr, [2, 1088], { 153: 1018, 179: mn, 180: Nn, 181: Si }), v(O1, [2, 141]), v(ar, [2, 551]), v(ar, [2, 554]), { 377: [1, 1687] }, v(ar, [2, 1131], { 398: 1688, 396: 1689, 77: Q2 }), { 131: Le, 196: 1691 }, v(ar, [2, 559]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1692, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(ar, [2, 561]), v(ar, [2, 563]), { 2: g, 3: 114, 4: C, 5: x, 77: [1, 1694], 113: 252, 131: Le, 132: we, 143: ge, 152: he, 156: ye, 181: be, 196: 251, 200: 256, 201: 255, 261: 253, 262: 254, 269: Ro, 278: 1693, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 305: Ce }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1695, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(ve, [2, 582]), v(Kr, [2, 352]), v(Kr, [2, 353]), v(Kr, [2, 354]), v(Kr, [2, 355]), v(Kr, [2, 356]), v(ve, [2, 586]), v(ve, [2, 596]), v(j1, [2, 738]), v(ve, [2, 493]), v(ve, [2, 498], { 358: 1696, 4: pa, 247: ga, 346: yr, 359: qs }), v(Ys, [2, 500]), v(Ys, [2, 501]), { 124: [1, 1697] }, { 124: [1, 1698] }, { 124: [1, 1699] }, { 74: [1, 1700], 78: [2, 509] }, v(Dn, [2, 537]), v(Dn, [2, 512]), { 187: [1, 1708], 193: [1, 1709], 365: 1701, 366: 1702, 367: 1703, 368: 1704, 369: 1705, 371: Ni, 372: [1, 1706], 373: [1, 1710], 376: [1, 1707] }, { 2: g, 3: 1711, 4: C, 5: x }, { 40: 1712, 79: 75, 89: U, 184: 99, 189: re }, { 418: [1, 1713] }, { 419: [1, 1714] }, v(ve, [2, 765]), v(ve, [2, 767]), v(v2, [2, 541]), v(c1, [2, 334]), { 78: [1, 1715] }, v(c1, [2, 335]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1670, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 233: 1716, 235: 1666, 236: Ws, 237: js, 238: Vs, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1381, 111: 150, 113: 154, 120: 1717, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 241: 1379, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(c1, [2, 320]), v(c1, [2, 322]), { 2: g, 3: 1718, 4: C, 5: x }, v(ve, [2, 724], { 77: [1, 1719] }), { 2: g, 3: 1014, 4: C, 5: x, 111: 1068, 143: ds, 145: A2, 147: 1720, 339: 1067, 340: 1069 }, { 338: Ho, 341: Z2, 464: 1721 }, v(dr, [2, 711]), { 77: [1, 1723], 346: [1, 1724], 347: [1, 1722] }, { 170: [1, 1726], 312: [1, 1725] }, { 170: [1, 1728], 312: [1, 1727] }, { 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 312: [1, 1729], 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, v(Fr, [2, 250], { 88: 1730, 162: [1, 1731], 168: [1, 1733], 169: [1, 1732] }), { 131: Le, 196: 1734 }, { 131: Le, 196: 1735 }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1381, 111: 150, 113: 154, 120: 1736, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 241: 1379, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, v(X2, [2, 248], { 234: 1737, 74: s2, 239: [1, 1739] }), v(ys, [2, 242]), { 146: [1, 1740] }, { 77: [1, 1741] }, { 77: [1, 1742] }, v(ys, [2, 247], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), { 78: [2, 1055], 96: 1743, 99: [1, 1745], 102: 1744 }, { 99: [1, 1746] }, v(Ii, [2, 235], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), v(Ii, [2, 236], { 74: C2 }), v(Cn, [2, 210]), v(Cn, [2, 211]), v(Cn, [2, 1102]), v(Cn, [2, 213]), { 2: g, 3: 1747, 4: C, 5: x, 76: [1, 1748] }, v(Cn, [2, 218]), v(Cn, [2, 221]), { 78: [1, 1749] }, { 78: [1, 1750] }, v(n2, [2, 263]), v(n2, [2, 264]), v(n2, [2, 269]), { 2: g, 3: 245, 4: C, 5: x, 199: 1751 }, v(ar, [2, 556]), v(ar, [2, 1132]), { 2: g, 3: 1752, 4: C, 5: x }, { 74: [1, 1753] }, { 78: [1, 1754], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, v(ar, [2, 566]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1755, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 78: [1, 1756], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, v(Ys, [2, 499]), { 2: g, 3: 1757, 4: C, 5: x }, { 131: Le, 196: 1758 }, { 2: g, 3: 1759, 4: C, 5: x }, v(Cs, M2, { 364: 1637, 363: 1760, 370: Go }), v(j1, [2, 514]), v(j1, [2, 515]), v(j1, [2, 516]), v(j1, [2, 517]), v(j1, [2, 518]), { 373: [1, 1761] }, { 373: [1, 1762] }, v(vo, [2, 1125], { 385: 1763, 373: [1, 1764] }), { 2: g, 3: 1765, 4: C, 5: x }, { 2: g, 3: 1766, 4: C, 5: x }, v(Cs, [2, 520]), v(ve, [2, 1135], { 414: 1767, 416: 1768, 72: go }), v(ve, [2, 614]), v(ve, [2, 615], { 370: [1, 1769] }), v(c1, [2, 336]), v([78, 118], [2, 337], { 74: s2 }), { 74: N2, 78: [2, 338] }, v(ve, [2, 723]), { 2: g, 3: 1014, 4: C, 5: x, 100: 1770, 111: 1446 }, v(dr, [2, 710], { 74: H1 }), v(dr, [2, 708]), { 77: ki, 143: ge, 144: 982, 145: mr, 152: he, 181: be, 201: 983, 305: Ce, 345: 1771, 422: 191, 423: fe, 427: le }, { 2: g, 3: 1014, 4: C, 5: x, 100: 1772, 111: 1446 }, { 347: [1, 1773] }, { 342: Nr, 465: 1774 }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1775, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 342: Nr, 465: 1776 }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1777, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 342: Nr, 465: 1778 }, v(Fr, [2, 72]), { 40: 1779, 79: 75, 89: U, 164: [1, 1780], 184: 99, 189: re, 240: [1, 1781] }, { 40: 1782, 79: 75, 89: U, 184: 99, 189: re, 240: [1, 1783] }, { 40: 1784, 79: 75, 89: U, 184: 99, 189: re, 240: [1, 1785] }, v(i2, [2, 273], { 250: 1786, 251: [1, 1787] }), { 252: 1788, 253: [2, 1103], 768: [1, 1789] }, v(ja, [2, 260], { 74: N2 }), v(X2, [2, 241]), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1670, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 235: 1790, 236: Ws, 237: js, 238: Vs, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1791, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 77: [1, 1792] }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1670, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 233: 1793, 235: 1666, 236: Ws, 237: js, 238: Vs, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1670, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 233: 1794, 235: 1666, 236: Ws, 237: js, 238: Vs, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 78: [1, 1795] }, { 78: [2, 1056] }, { 77: [1, 1796] }, { 77: [1, 1797] }, v(Cn, [2, 214]), { 2: g, 3: 1798, 4: C, 5: x }, { 2: g, 3: 1799, 4: C, 5: x, 76: [1, 1800] }, { 2: g, 3: 1801, 4: C, 5: x, 76: [1, 1802] }, v(ar, [2, 1129], { 397: 1803, 396: 1804, 77: Q2 }), { 78: [1, 1805] }, { 131: Le, 196: 1806 }, v(ar, [2, 560]), { 78: [1, 1807], 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, v(ar, [2, 521]), v(Ys, [2, 502]), v(Ys, [2, 503]), v(Ys, [2, 504]), v(Dn, [2, 513]), { 2: g, 3: 1809, 4: C, 5: x, 77: [2, 1121], 374: 1808 }, { 77: [1, 1810] }, { 2: g, 3: 1812, 4: C, 5: x, 77: [2, 1127], 386: 1811 }, v(vo, [2, 1126]), { 77: [1, 1813] }, { 77: [1, 1814] }, v(ve, [2, 612]), v(ve, [2, 1136]), v(Cs, M2, { 364: 1637, 363: 1815, 370: Go }), { 74: C2, 78: [1, 1816] }, v(dr, [2, 717], { 74: k2 }), { 74: C2, 78: [1, 1817] }, v(dr, [2, 719]), v(dr, [2, 712]), { 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 312: [1, 1818], 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, v(dr, [2, 715]), { 99: Gt, 112: $t, 114: 627, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 312: [1, 1819], 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 330: 639, 333: o1, 334: h1, 335: Ut, 336: qt }, v(dr, [2, 713]), v(Fr, [2, 251]), { 40: 1820, 79: 75, 89: U, 184: 99, 189: re, 240: [1, 1821] }, { 40: 1822, 79: 75, 89: U, 184: 99, 189: re }, v(Fr, [2, 253]), { 40: 1823, 79: 75, 89: U, 184: 99, 189: re }, v(Fr, [2, 254]), { 40: 1824, 79: 75, 89: U, 184: 99, 189: re }, v(i2, [2, 271]), { 131: Le, 196: 1825 }, { 253: [1, 1826] }, { 253: [2, 1104] }, v(ys, [2, 243]), v(X2, [2, 249], { 114: 627, 330: 639, 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1670, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 233: 1827, 235: 1666, 236: Ws, 237: js, 238: Vs, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 74: s2, 78: [1, 1828] }, { 74: s2, 78: [1, 1829] }, v(Cr, [2, 1057], { 97: 1830, 104: 1831, 3: 1833, 2: g, 4: C, 5: x, 76: p3 }), { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1836, 103: 1834, 105: 1835, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 1014, 4: C, 5: x, 100: 1837, 111: 1446 }, v(Cn, [2, 215]), v(Ii, [2, 173]), { 2: g, 3: 1838, 4: C, 5: x }, v(Ii, [2, 175]), { 2: g, 3: 1839, 4: C, 5: x }, v(ar, [2, 555]), v(ar, [2, 1130]), v(ar, [2, 553]), { 78: [1, 1840] }, v(ar, [2, 567]), { 77: [1, 1841] }, { 77: [2, 1122] }, { 2: g, 3: 1843, 4: C, 5: x, 132: o2, 375: 1842 }, { 77: [1, 1845] }, { 77: [2, 1128] }, { 2: g, 3: 1014, 4: C, 5: x, 100: 1846, 111: 1446 }, { 2: g, 3: 1014, 4: C, 5: x, 100: 1847, 111: 1446 }, v(ve, [2, 616]), v(ve, [2, 725]), { 346: [1, 1849], 347: [1, 1848] }, { 342: Nr, 465: 1850 }, { 338: Ho, 341: Z2, 464: 1851 }, v(Fr, [2, 252]), { 40: 1852, 79: 75, 89: U, 184: 99, 189: re }, v(Fr, [2, 255]), v(Fr, [2, 257]), v(Fr, [2, 258]), v(i2, [2, 274]), { 131: [2, 1105], 254: 1853, 648: [1, 1854] }, { 74: s2, 78: [1, 1855] }, v(ys, [2, 245]), v(ys, [2, 246]), v(Cr, [2, 74]), v(Cr, [2, 1058]), { 2: g, 3: 1856, 4: C, 5: x }, v(Cr, [2, 78]), { 74: [1, 1858], 78: [1, 1857] }, v(Dn, [2, 80]), v(Dn, [2, 81], { 114: 627, 330: 639, 76: [1, 1859], 99: Gt, 112: $t, 115: ot, 116: it, 123: mt, 124: a1, 133: yt, 136: pt, 138: vt, 139: n1, 140: i1, 141: Nt, 142: It, 154: s1, 170: Kt, 171: v1, 179: _t, 180: wt, 314: Mt, 315: bt, 316: Ft, 318: Pt, 319: gt, 320: St, 321: At, 322: Dt, 323: e1, 324: t1, 325: Xt, 326: Jt, 327: Et, 328: xt, 329: r1, 333: o1, 334: h1, 335: Ut, 336: qt }), { 74: C2, 78: [1, 1860] }, v(Ii, [2, 174]), v(Ii, [2, 176]), v(ar, [2, 557]), { 2: g, 3: 1843, 4: C, 5: x, 132: o2, 375: 1861 }, { 74: va, 78: [1, 1862] }, v(Dn, [2, 532]), v(Dn, [2, 533]), { 2: g, 3: 1014, 4: C, 5: x, 100: 1864, 111: 1446 }, { 74: C2, 78: [1, 1865] }, { 74: C2, 78: [1, 1866] }, { 77: ki, 143: ge, 144: 982, 145: mr, 152: he, 181: be, 201: 983, 305: Ce, 345: 1867, 422: 191, 423: fe, 427: le }, { 347: [1, 1868] }, v(dr, [2, 714]), v(dr, [2, 716]), v(Fr, [2, 256]), { 131: Le, 196: 1869 }, { 131: [2, 1106] }, v(ys, [2, 244]), v(Cr, [2, 77]), { 78: [2, 76] }, { 2: g, 3: 169, 4: C, 5: x, 56: 166, 77: Ue, 94: 1836, 105: 1870, 111: 150, 113: 154, 131: Le, 132: we, 137: Ze, 143: ge, 144: 162, 145: Be, 149: We, 152: he, 154: Ve, 156: ye, 158: 168, 179: Ge, 180: qe, 181: be, 196: 152, 200: 148, 201: 156, 202: 157, 244: Re, 245: Ie, 258: 151, 259: 147, 260: 149, 261: 153, 262: 155, 263: 158, 264: 159, 265: 160, 266: 163, 267: 164, 269: oe, 270: V, 274: je, 275: Fe, 277: ke, 284: me, 285: De, 286: Te, 287: Oe, 288: xe, 289: Me, 290: Ne, 292: Ae, 293: de, 294: Ee, 295: ae, 296: pe, 297: $e, 298: Pe, 299: _e, 300: He, 301: Ye, 302: Ke, 305: Ce, 306: Xe, 315: Je, 320: Qe, 422: 191, 423: fe, 427: le }, { 2: g, 3: 1871, 4: C, 5: x }, { 78: [1, 1872] }, { 74: va, 78: [1, 1873] }, { 377: [1, 1874] }, { 2: g, 3: 1875, 4: C, 5: x, 132: [1, 1876] }, { 74: C2, 78: [1, 1877] }, v(j1, [2, 530]), v(j1, [2, 531]), v(dr, [2, 718], { 74: k2 }), v(dr, [2, 720]), v(Va, [2, 1107], { 255: 1878, 768: [1, 1879] }), v(Dn, [2, 79]), v(Dn, [2, 82]), v(Cr, [2, 1059], { 3: 1833, 101: 1880, 104: 1881, 2: g, 4: C, 5: x, 76: p3 }), v(j1, [2, 522]), { 2: g, 3: 245, 4: C, 5: x, 199: 1882 }, v(Dn, [2, 534]), v(Dn, [2, 535]), v(j1, [2, 529]), v(i2, [2, 1109], { 256: 1883, 418: [1, 1884] }), v(Va, [2, 1108]), v(Cr, [2, 75]), v(Cr, [2, 1060]), v(mo, [2, 1123], { 378: 1885, 380: 1886, 77: [1, 1887] }), v(i2, [2, 272]), v(i2, [2, 1110]), v(j1, [2, 525], { 379: 1888, 381: 1889, 230: [1, 1890] }), v(mo, [2, 1124]), { 2: g, 3: 1843, 4: C, 5: x, 132: o2, 375: 1891 }, v(j1, [2, 523]), { 230: [1, 1893], 382: 1892 }, { 341: [1, 1894] }, { 74: va, 78: [1, 1895] }, v(j1, [2, 526]), { 338: [1, 1896] }, { 383: [1, 1897] }, v(mo, [2, 524]), { 383: [1, 1898] }, { 384: [1, 1899] }, { 384: [1, 1900] }, { 230: [2, 527] }, v(j1, [2, 528])], defaultActions: { 105: [2, 6], 195: [2, 339], 196: [2, 340], 197: [2, 341], 198: [2, 342], 199: [2, 343], 200: [2, 344], 201: [2, 345], 202: [2, 346], 203: [2, 347], 210: [2, 699], 593: [2, 1146], 655: [2, 1111], 656: [2, 1112], 712: [2, 700], 782: [2, 1077], 783: [2, 1078], 929: [2, 450], 930: [2, 451], 931: [2, 452], 990: [2, 701], 1293: [2, 1156], 1380: [2, 1064], 1439: [2, 1154], 1548: [2, 511], 1744: [2, 1056], 1789: [2, 1104], 1809: [2, 1122], 1812: [2, 1128], 1854: [2, 1106], 1857: [2, 76], 1899: [2, 527] }, parseError: function(r, p) {
      var m;
      if (!p.recoverable)
        throw (m = new Error(r)).hash = p, m;
      this.trace(r);
    }, parse: function(r) {
      var p, m = this, d = [0], y = [null], l = [], _ = this.table, h = "", O = 0, D = 0, k = 0, z = 2, H = 1, ie = l.slice.call(arguments, 1), J = Object.create(this.lexer), ne = { yy: {} };
      for (p in this.yy)
        Object.prototype.hasOwnProperty.call(this.yy, p) && (ne.yy[p] = this.yy[p]);
      J.setInput(r, ne.yy), ne.yy.lexer = J, ne.yy.parser = this, J.yylloc === void 0 && (J.yylloc = {});
      var se = J.yylloc, ee = (l.push(se), J.options && J.options.ranges);
      typeof ne.yy.parseError == "function" ? this.parseError = ne.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
      for (var nt, tt, rt, ut, kt, S1, g1, y1, Zt = function() {
        var zt = J.lex() || H;
        return zt = typeof zt != "number" && m.symbols_[zt] || zt;
      }, jt = {}; ; ) {
        if (rt = d[d.length - 1], (ut = this.defaultActions[rt] || (nt == null && (nt = Zt()), _[rt] && _[rt][nt])) === void 0 || !ut.length || !ut[0]) {
          var L1, x1 = "", m1 = function(zt) {
            for (var Yn = d.length - 1, lt = 0; ; ) {
              if (z.toString() in _[zt])
                return lt;
              if (zt === 0 || Yn < 2)
                return !1;
              zt = d[Yn -= 2], ++lt;
            }
          };
          if (k)
            tt !== H && (L1 = m1(rt));
          else {
            for (kt in L1 = m1(rt), y1 = [], _[rt])
              this.terminals_[kt] && z < kt && y1.push("'" + this.terminals_[kt] + "'");
            x1 = J.showPosition ? "Parse error on line " + (O + 1) + `:
` + J.showPosition() + `
Expecting ` + y1.join(", ") + ", got '" + (this.terminals_[nt] || nt) + "'" : "Parse error on line " + (O + 1) + ": Unexpected " + (nt == H ? "end of input" : "'" + (this.terminals_[nt] || nt) + "'"), this.parseError(x1, { text: J.match, token: this.terminals_[nt] || nt, line: J.yylineno, loc: se, expected: y1, recoverable: L1 !== !1 });
          }
          if (k == 3) {
            if (nt === H || tt === H)
              throw new Error(x1 || "Parsing halted while starting to recover from another error.");
            D = J.yyleng, h = J.yytext, O = J.yylineno, se = J.yylloc, nt = Zt();
          }
          if (L1 === !1)
            throw new Error(x1 || "Parsing halted. No suitable error recovery rule available.");
          m1 = L1, d.length = d.length - 2 * m1, y.length = y.length - m1, l.length = l.length - m1, tt = nt == z ? null : nt, nt = z, rt = d[d.length - 1], ut = _[rt] && _[rt][z], k = 3;
        }
        if (ut[0] instanceof Array && 1 < ut.length)
          throw new Error("Parse Error: multiple actions possible at state: " + rt + ", token: " + nt);
        switch (ut[0]) {
          case 1:
            d.push(nt), y.push(J.yytext), l.push(J.yylloc), d.push(ut[1]), nt = null, tt ? (nt = tt, tt = null) : (D = J.yyleng, h = J.yytext, O = J.yylineno, se = J.yylloc, 0 < k && k--);
            break;
          case 2:
            if (S1 = this.productions_[ut[1]][1], jt.$ = y[y.length - S1], jt._$ = { first_line: l[l.length - (S1 || 1)].first_line, last_line: l[l.length - 1].last_line, first_column: l[l.length - (S1 || 1)].first_column, last_column: l[l.length - 1].last_column }, ee && (jt._$.range = [l[l.length - (S1 || 1)].range[0], l[l.length - 1].range[1]]), (g1 = this.performAction.apply(jt, [h, D, O, ne.yy, ut[1], y, l].concat(ie))) !== void 0)
              return g1;
            S1 && (d = d.slice(0, -1 * S1 * 2), y = y.slice(0, -1 * S1), l = l.slice(0, -1 * S1)), d.push(this.productions_[ut[1]][0]), y.push(jt.$), l.push(jt._$), g1 = _[d[d.length - 2]][d[d.length - 1]], d.push(g1);
            break;
          case 3:
            return !0;
        }
      }
      return !0;
    } }, bo = ["A", "ABSENT", "ABSOLUTE", "ACCORDING", "ACTION", "ADA", "ADD", "ADMIN", "AFTER", "ALWAYS", "ASC", "ASSERTION", "ASSIGNMENT", "ATTRIBUTE", "ATTRIBUTES", "BASE64", "BEFORE", "BERNOULLI", "BLOCKED", "BOM", "BREADTH", "C", "CASCADE", "CATALOG", "CATALOG_NAME", "CHAIN", "CHARACTERISTICS", "CHARACTERS", "CHARACTER_SET_CATALOG", "CHARACTER_SET_NAME", "CHARACTER_SET_SCHEMA", "CLASS_ORIGIN", "COBOL", "COLLATION", "COLLATION_CATALOG", "COLLATION_NAME", "COLLATION_SCHEMA", "COLUMNS", "COLUMN_NAME", "COMMAND_FUNCTION", "COMMAND_FUNCTION_CODE", "COMMITTED", "CONDITION_NUMBER", "CONNECTION", "CONNECTION_NAME", "CONSTRAINTS", "CONSTRAINT_CATALOG", "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", "CONSTRUCTOR", "CONTENT", "CONTINUE", "CONTROL", "CURSOR_NAME", "DATA", "DATETIME_INTERVAL_CODE", "DATETIME_INTERVAL_PRECISION", "DB", "DEFAULTS", "DEFERRABLE", "DEFERRED", "DEFINED", "DEFINER", "DEGREE", "DEPTH", "DERIVED", "DESC", "DESCRIPTOR", "DIAGNOSTICS", "DISPATCH", "DOCUMENT", "DOMAIN", "DYNAMIC_FUNCTION", "DYNAMIC_FUNCTION_CODE", "EMPTY", "ENCODING", "ENFORCED", "EXCLUDE", "EXCLUDING", "EXPRESSION", "FILE", "FINAL", "FIRST", "FLAG", "FOLLOWING", "FORTRAN", "FOUND", "FS", "G", "GENERAL", "GENERATED", "GO", "GOTO", "GRANTED", "HEX", "HIERARCHY", "ID", "IGNORE", "IMMEDIATE", "IMMEDIATELY", "IMPLEMENTATION", "INCLUDING", "INCREMENT", "INDENT", "INITIALLY", "INPUT", "INSTANCE", "INSTANTIABLE", "INSTEAD", "INTEGRITY", "INVOKER", "ISOLATION", "K", "KEY", "KEY_MEMBER", "KEY_TYPE", "LAST", "LENGTH", "LEVEL", "LIBRARY", "LIMIT", "LINK", "LOCATION", "LOCATOR", "M", "MAP", "MAPPING", "MATCHED", "MAXVALUE", "MESSAGE_LENGTH", "MESSAGE_OCTET_LENGTH", "MESSAGE_TEXT", "MINVALUE", "MORE", "MUMPS", "NAME", "NAMES", "NAMESPACE", "NESTING", "NEXT", "NFC", "NFD", "NFKC", "NFKD", "NIL", "NORMALIZED", "NULLABLE", "NULLS", "NUMBER", "OBJECT", "OCTETS", "OFF", "OPTION", "OPTIONS", "ORDERING", "ORDINALITY", "OTHERS", "OUTPUT", "OVERRIDING", "P", "PAD", "PARAMETER_MODE", "PARAMETER_NAME", "PARAMETER_ORDINAL_POSITION", "PARAMETER_SPECIFIC_CATALOG", "PARAMETER_SPECIFIC_NAME", "PARAMETER_SPECIFIC_SCHEMA", "PARTIAL", "PASCAL", "PASSING", "PASSTHROUGH", "PATH", "PERMISSION", "PLACING", "PLI", "PRECEDING", "PRESERVE", "PRIOR", "PRIVILEGES", "PUBLIC", "READ", "RECOVERY", "RELATIVE", "REPEATABLE", "REQUIRING", "RESPECT", "RESTART", "RESTORE", "RESTRICT", "RETURNED_CARDINALITY", "RETURNED_LENGTH", "RETURNED_OCTET_LENGTH", "RETURNED_SQLSTATE", "RETURNING", "ROLE", "ROUTINE", "ROUTINE_CATALOG", "ROUTINE_NAME", "ROUTINE_SCHEMA", "ROW_COUNT", "SCALE", "SCHEMA", "SCHEMA_NAME", "SCOPE_CATALOG", "SCOPE_NAME", "SCOPE_SCHEMA", "SECTION", "SECURITY", "SELECTIVE", "SELF", "SEQUENCE", "SERIALIZABLE", "SERVER", "SERVER_NAME", "SESSION", "SETS", "SIMPLE", "SIZE", "SOURCE", "SPACE", "SPECIFIC_NAME", "STANDALONE", "STATE", "STATEMENT", "STRIP", "STRUCTURE", "STYLE", "SUBCLASS_ORIGIN", "T", "TABLE_NAME", "TEMPORARY", "TIES", "TOKEN", "TOP_LEVEL_COUNT", "TRANSACTION", "TRANSACTIONS_COMMITTED", "TRANSACTIONS_ROLLED_BACK", "TRANSACTION_ACTIVE", "TRANSFORM", "TRANSFORMS", "TRIGGER_CATALOG", "TRIGGER_NAME", "TRIGGER_SCHEMA", "TYPE", "UNBOUNDED", "UNCOMMITTED", "UNDER", "UNLINK", "UNNAMED", "UNTYPED", "URI", "USAGE", "USER_DEFINED_TYPE_CATALOG", "USER_DEFINED_TYPE_CODE", "USER_DEFINED_TYPE_NAME", "USER_DEFINED_TYPE_SCHEMA", "VALID", "VERSION", "VIEW", "WHITESPACE", "WORK", "WRAPPER", "WRITE", "XMLDECLARATION", "XMLSCHEMA", "YES", "ZONE"], I.parseError = function(r, p) {
      if (!(p.expected && -1 < p.expected.indexOf("'LITERAL'") && /[a-zA-Z_][a-zA-Z_0-9]*/.test(p.token) && -1 < bo.indexOf(p.token)))
        throw new SyntaxError(r);
    }, I.lexer = ss = { EOF: 1, parseError: function(r, p) {
      if (!this.yy.parser)
        throw new Error(r);
      this.yy.parser.parseError(r, p);
    }, setInput: function(r, p) {
      return this.yy = p || this.yy || {}, this._input = r, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this;
    }, input: function() {
      var r = this._input[0];
      return this.yytext += r, this.yyleng++, this.offset++, this.match += r, this.matched += r, r.match(/(?:\r\n?|\n).*/g) ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), r;
    }, unput: function(d) {
      var p = d.length, m = d.split(/(?:\r\n?|\n)/g), d = (this._input = d + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - p), this.offset -= p, this.match.split(/(?:\r\n?|\n)/g)), y = (this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), m.length - 1 && (this.yylineno -= m.length - 1), this.yylloc.range);
      return this.yylloc = { first_line: this.yylloc.first_line, last_line: this.yylineno + 1, first_column: this.yylloc.first_column, last_column: m ? (m.length === d.length ? this.yylloc.first_column : 0) + d[d.length - m.length].length - m[0].length : this.yylloc.first_column - p }, this.options.ranges && (this.yylloc.range = [y[0], y[0] + this.yyleng - p]), this.yyleng = this.yytext.length, this;
    }, more: function() {
      return this._more = !0, this;
    }, reject: function() {
      return this.options.backtrack_lexer ? (this._backtrack = !0, this) : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
` + this.showPosition(), { text: "", token: null, line: this.yylineno });
    }, less: function(r) {
      this.unput(this.match.slice(r));
    }, pastInput: function() {
      var r = this.matched.substr(0, this.matched.length - this.match.length);
      return (20 < r.length ? "..." : "") + r.substr(-20).replace(/\n/g, "");
    }, upcomingInput: function() {
      var r = this.match;
      return r.length < 20 && (r += this._input.substr(0, 20 - r.length)), (r.substr(0, 20) + (20 < r.length ? "..." : "")).replace(/\n/g, "");
    }, showPosition: function() {
      var r = this.pastInput(), p = new Array(r.length + 1).join("-");
      return r + this.upcomingInput() + `
` + p + "^";
    }, test_match: function(r, p) {
      var m, d;
      if (this.options.backtrack_lexer && (d = { yylineno: this.yylineno, yylloc: { first_line: this.yylloc.first_line, last_line: this.last_line, first_column: this.yylloc.first_column, last_column: this.yylloc.last_column }, yytext: this.yytext, match: this.match, matches: this.matches, matched: this.matched, yyleng: this.yyleng, offset: this.offset, _more: this._more, _input: this._input, yy: this.yy, conditionStack: this.conditionStack.slice(0), done: this.done }, this.options.ranges && (d.yylloc.range = this.yylloc.range.slice(0))), (m = r[0].match(/(?:\r\n?|\n).*/g)) && (this.yylineno += m.length), this.yylloc = { first_line: this.yylloc.last_line, last_line: this.yylineno + 1, first_column: this.yylloc.last_column, last_column: m ? m[m.length - 1].length - m[m.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + r[0].length }, this.yytext += r[0], this.match += r[0], this.matches = r, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(r[0].length), this.matched += r[0], m = this.performAction.call(this, this.yy, this, p, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), m)
        return m;
      if (this._backtrack)
        for (var y in d)
          this[y] = d[y];
      return !1;
    }, next: function() {
      if (this.done)
        return this.EOF;
      this._input || (this.done = !0), this._more || (this.yytext = "", this.match = "");
      for (var r, p, m, d, y = this._currentRules(), l = 0; l < y.length; l++)
        if ((m = this._input.match(this.rules[y[l]])) && (!p || m[0].length > p[0].length)) {
          if (p = m, d = l, this.options.backtrack_lexer) {
            if ((r = this.test_match(m, y[l])) !== !1)
              return r;
            if (!this._backtrack)
              return !1;
            p = !1;
          } else if (!this.options.flex)
            break;
        }
      return p ? (r = this.test_match(p, y[d])) !== !1 && r : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
` + this.showPosition(), { text: "", token: null, line: this.yylineno });
    }, lex: function() {
      var r = this.next();
      return r || this.lex();
    }, begin: function(r) {
      this.conditionStack.push(r);
    }, popState: function() {
      return 0 < this.conditionStack.length - 1 ? this.conditionStack.pop() : this.conditionStack[0];
    }, _currentRules: function() {
      return (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]] : this.conditions.INITIAL).rules;
    }, topState: function(r) {
      return 0 <= (r = this.conditionStack.length - 1 - Math.abs(r || 0)) ? this.conditionStack[r] : "INITIAL";
    }, pushState: function(r) {
      this.begin(r);
    }, stateStackSize: function() {
      return this.conditionStack.length;
    }, options: { "case-insensitive": !0 }, performAction: function(r, p, m, d) {
      switch (m) {
        case 0:
          return 270;
        case 1:
          return 305;
        case 2:
          return 423;
        case 3:
          return 302;
        case 4:
        case 5:
          return 5;
        case 6:
        case 7:
          return 299;
        case 8:
        case 9:
          return 132;
        case 10:
          return;
        case 11:
          break;
        case 12:
          return 319;
        case 13:
          return 322;
        case 14:
          return p.yytext = "VALUE", 89;
        case 15:
          return p.yytext = "VALUE", 189;
        case 16:
          return p.yytext = "ROW", 189;
        case 17:
          return p.yytext = "COLUMN", 189;
        case 18:
          return p.yytext = "MATRIX", 189;
        case 19:
          return p.yytext = "INDEX", 189;
        case 20:
          return p.yytext = "RECORDSET", 189;
        case 21:
          return p.yytext = "TEXT", 189;
        case 22:
          return p.yytext = "SELECT", 189;
        case 23:
          return 523;
        case 24:
          return 384;
        case 25:
          return 405;
        case 26:
          return 518;
        case 27:
          return 289;
        case 28:
        case 29:
          return 273;
        case 30:
          return 164;
        case 31:
          return 403;
        case 32:
          return 170;
        case 33:
          return 229;
        case 34:
          return 166;
        case 35:
          return 207;
        case 36:
          return 290;
        case 37:
          return 76;
        case 38:
          return 421;
        case 39:
          return 246;
        case 40:
          return 407;
        case 41:
          return 359;
        case 42:
          return 288;
        case 43:
          return 517;
        case 44:
          return 440;
        case 45:
          return 333;
        case 46:
          return 444;
        case 47:
          return 334;
        case 48:
          return 318;
        case 49:
          return 119;
        case 50:
          return 112;
        case 51:
          return 318;
        case 52:
          return 112;
        case 53:
          return 318;
        case 54:
          return 112;
        case 55:
          return 318;
        case 56:
          return 511;
        case 57:
          return 306;
        case 58:
          return 275;
        case 59:
          return 371;
        case 60:
          return 130;
        case 61:
          return "CLOSE";
        case 62:
          return 247;
        case 63:
        case 64:
          return 190;
        case 65:
          return 437;
        case 66:
          return 370;
        case 67:
          return 473;
        case 68:
          return 443;
        case 69:
          return 277;
        case 70:
          return 240;
        case 71:
          return 285;
        case 72:
          return 271;
        case 73:
          return 206;
        case 74:
          return 238;
        case 75:
          return 269;
        case 76:
          return "CURSOR";
        case 77:
          return 408;
        case 78:
          return 293;
        case 79:
          return 294;
        case 80:
          return 295;
        case 81:
          return 451;
        case 82:
          return 346;
        case 83:
          return 341;
        case 84:
          return "DELETED";
        case 85:
          return 246;
        case 86:
          return 409;
        case 87:
          return 185;
        case 88:
          return 399;
        case 89:
          return 450;
        case 90:
          return 135;
        case 91:
          return 309;
        case 92:
          return 392;
        case 93:
          return 313;
        case 94:
          return 317;
        case 95:
          return 169;
        case 96:
        case 97:
          return 511;
        case 98:
          return 301;
        case 99:
          return 14;
        case 100:
          return 298;
        case 101:
          return 253;
        case 102:
          return 244;
        case 103:
          return 95;
        case 104:
          return 376;
        case 105:
          return 183;
        case 106:
          return 227;
        case 107:
          return 272;
        case 108:
          return 316;
        case 109:
          return 605;
        case 110:
          return 475;
        case 111:
          return 232;
        case 112:
          return 236;
        case 113:
          return 239;
        case 114:
          return 156;
        case 115:
          return 359;
        case 116:
          return 335;
        case 117:
          return 99;
        case 118:
          return 193;
        case 119:
          return 212;
        case 120:
          return 224;
        case 121:
          return 519;
        case 122:
          return 342;
        case 123:
          return 213;
        case 124:
          return 168;
        case 125:
          return 296;
        case 126:
          return 198;
        case 127:
          return 223;
        case 128:
          return 373;
        case 129:
          return 245;
        case 130:
          return "LET";
        case 131:
          return 225;
        case 132:
          return 112;
        case 133:
          return 249;
        case 134:
          return 463;
        case 135:
          return 191;
        case 136:
          return 287;
        case 137:
          return 393;
        case 138:
          return 286;
        case 139:
          return 455;
        case 140:
          return 169;
        case 141:
          return 406;
        case 142:
          return 222;
        case 143:
          return 648;
        case 144:
          return 274;
        case 145:
          return 248;
        case 146:
          return 383;
        case 147:
          return 154;
        case 148:
          return 300;
        case 149:
          return 243;
        case 150:
          return 436;
        case 151:
          return 230;
        case 152:
          return 418;
        case 153:
          return 129;
        case 154:
          return 251;
        case 155:
          return "OPEN";
        case 156:
          return 419;
        case 157:
          return 171;
        case 158:
          return 118;
        case 159:
          return 208;
        case 160:
          return 280;
        case 161:
          return 172;
        case 162:
          return 283;
        case 163:
          return 767;
        case 164:
          return 93;
        case 165:
          return 16;
        case 166:
          return 372;
        case 167:
          return 445;
        case 168:
          return 680;
        case 169:
          return 15;
        case 170:
          return 417;
        case 171:
          return 194;
        case 172:
          return "REDUCE";
        case 173:
          return 377;
        case 174:
          return 314;
        case 175:
          return 520;
        case 176:
          return 684;
        case 177:
          return 107;
        case 178:
          return 404;
        case 179:
          return 175;
        case 180:
          return 292;
        case 181:
          return 446;
        case 182:
          return 689;
        case 183:
        case 184:
          return 173;
        case 185:
          return 226;
        case 186:
          return 439;
        case 187:
          return 237;
        case 188:
          return 150;
        case 189:
          return 768;
        case 190:
          return 408;
        case 191:
          return 89;
        case 192:
          return 228;
        case 193:
        case 194:
          return 146;
        case 195:
          return 412;
        case 196:
          return 337;
        case 197:
          return 420;
        case 198:
          return "STRATEGY";
        case 199:
          return "STORE";
        case 200:
          return 284;
        case 201:
        case 202:
          return 356;
        case 203:
          return 466;
        case 204:
        case 205:
          return 360;
        case 206:
          return 192;
        case 207:
          return 312;
        case 208:
          return "TIMEOUT";
        case 209:
          return 148;
        case 210:
          return 195;
        case 211:
        case 212:
          return 438;
        case 213:
          return 512;
        case 214:
          return 297;
        case 215:
          return 454;
        case 216:
          return 162;
        case 217:
          return 187;
        case 218:
          return 98;
        case 219:
          return 338;
        case 220:
          return 411;
        case 221:
          return 231;
        case 222:
          return 149;
        case 223:
          return 347;
        case 224:
          return 134;
        case 225:
          return 413;
        case 226:
          return 311;
        case 227:
          return 128;
        case 228:
          return 442;
        case 229:
          return 72;
        case 230:
          return 438;
        case 231:
        case 232:
          return 131;
        case 233:
          return 115;
        case 234:
          return 137;
        case 235:
          return 179;
        case 236:
          return 320;
        case 237:
          return 180;
        case 238:
          return 133;
        case 239:
          return 138;
        case 240:
          return 329;
        case 241:
          return 326;
        case 242:
          return 328;
        case 243:
          return 325;
        case 244:
          return 323;
        case 245:
          return 321;
        case 246:
          return 322;
        case 247:
          return 142;
        case 248:
          return 141;
        case 249:
          return 139;
        case 250:
          return 324;
        case 251:
          return 327;
        case 252:
          return 140;
        case 253:
          return 124;
        case 254:
          return 327;
        case 255:
          return 77;
        case 256:
          return 78;
        case 257:
          return 145;
        case 258:
          return 427;
        case 259:
          return 429;
        case 260:
          return 303;
        case 261:
          return 508;
        case 262:
          return 510;
        case 263:
          return 122;
        case 264:
          return 116;
        case 265:
          return 74;
        case 266:
          return 336;
        case 267:
          return 152;
        case 268:
          return 766;
        case 269:
          return 143;
        case 270:
          return 181;
        case 271:
          return 136;
        case 272:
          return 123;
        case 273:
          return 315;
        case 274:
          return 4;
        case 275:
          return 10;
        case 276:
          return "INVALID";
      }
    }, rules: [/^(?:``([^\`])+``)/i, /^(?:\[\?\])/i, /^(?:@\[)/i, /^(?:ARRAY\[)/i, /^(?:\[([^\]'])*?\])/i, /^(?:`([^\`'])*?`)/i, /^(?:N(['](\\.|[^']|\\')*?['])+)/i, /^(?:X(['](\\.|[^']|\\')*?['])+)/i, /^(?:(['](\\.|[^']|\\')*?['])+)/i, /^(?:(["](\\.|[^"]|\\")*?["])+)/i, /^(?:--(.*?)($|\r\n|\r|\n))/i, /^(?:\s+)/i, /^(?:\|\|)/i, /^(?:\|)/i, /^(?:VALUE\s+OF\s+SEARCH\b)/i, /^(?:VALUE\s+OF\s+SELECT\b)/i, /^(?:ROW\s+OF\s+SELECT\b)/i, /^(?:COLUMN\s+OF\s+SELECT\b)/i, /^(?:MATRIX\s+OF\s+SELECT\b)/i, /^(?:INDEX\s+OF\s+SELECT\b)/i, /^(?:RECORDSET\s+OF\s+SELECT\b)/i, /^(?:TEXT\s+OF\s+SELECT\b)/i, /^(?:SELECT\b)/i, /^(?:ABSOLUTE\b)/i, /^(?:ACTION\b)/i, /^(?:ADD\b)/i, /^(?:AFTER\b)/i, /^(?:AGGR\b)/i, /^(?:AGGREGATE\b)/i, /^(?:AGGREGATOR\b)/i, /^(?:ALL\b)/i, /^(?:ALTER\b)/i, /^(?:AND\b)/i, /^(?:ANTI\b)/i, /^(?:ANY\b)/i, /^(?:APPLY\b)/i, /^(?:ARRAY\b)/i, /^(?:AS\b)/i, /^(?:ASSERT\b)/i, /^(?:ASC\b)/i, /^(?:ATTACH\b)/i, /^(?:AUTO(_)?INCREMENT\b)/i, /^(?:AVG\b)/i, /^(?:BEFORE\b)/i, /^(?:BEGIN\b)/i, /^(?:BETWEEN\b)/i, /^(?:BREAK\b)/i, /^(?:NOT\s+BETWEEN\b)/i, /^(?:NOT\s+LIKE\b)/i, /^(?:BY\b)/i, /^(?:~~\*)/i, /^(?:!~~\*)/i, /^(?:~~)/i, /^(?:!~~)/i, /^(?:ILIKE\b)/i, /^(?:NOT\s+ILIKE\b)/i, /^(?:CALL\b)/i, /^(?:CASE\b)/i, /^(?:CAST\b)/i, /^(?:CHECK\b)/i, /^(?:CLASS\b)/i, /^(?:CLOSE\b)/i, /^(?:COLLATE\b)/i, /^(?:COLUMN\b)/i, /^(?:COLUMNS\b)/i, /^(?:COMMIT\b)/i, /^(?:CONSTRAINT\b)/i, /^(?:CONTENT\b)/i, /^(?:CONTINUE\b)/i, /^(?:CONVERT\b)/i, /^(?:CORRESPONDING\b)/i, /^(?:COUNT\b)/i, /^(?:CREATE\b)/i, /^(?:CROSS\b)/i, /^(?:CUBE\b)/i, /^(?:CURRENT_TIMESTAMP\b)/i, /^(?:CURSOR\b)/i, /^(?:DATABASE(S)?)/i, /^(?:DATEADD\b)/i, /^(?:DATEDIFF\b)/i, /^(?:TIMESTAMPDIFF\b)/i, /^(?:DECLARE\b)/i, /^(?:DEFAULT\b)/i, /^(?:DELETE\b)/i, /^(?:DELETED\b)/i, /^(?:DESC\b)/i, /^(?:DETACH\b)/i, /^(?:DISTINCT\b)/i, /^(?:DROP\b)/i, /^(?:ECHO\b)/i, /^(?:EDGE\b)/i, /^(?:END\b)/i, /^(?:ENUM\b)/i, /^(?:ELSE\b)/i, /^(?:ESCAPE\b)/i, /^(?:EXCEPT\b)/i, /^(?:EXEC\b)/i, /^(?:EXECUTE\b)/i, /^(?:EXISTS\b)/i, /^(?:EXPLAIN\b)/i, /^(?:FALSE\b)/i, /^(?:FETCH\b)/i, /^(?:FIRST\b)/i, /^(?:FOR\b)/i, /^(?:FOREIGN\b)/i, /^(?:FROM\b)/i, /^(?:FULL\b)/i, /^(?:FUNCTION\b)/i, /^(?:GLOB\b)/i, /^(?:GO\b)/i, /^(?:GRAPH\b)/i, /^(?:GROUP\b)/i, /^(?:GROUPING\b)/i, /^(?:HAVING\b)/i, /^(?:IF\b)/i, /^(?:IDENTITY\b)/i, /^(?:IS\b)/i, /^(?:IN\b)/i, /^(?:INDEX\b)/i, /^(?:INDEXED\b)/i, /^(?:INNER\b)/i, /^(?:INSTEAD\b)/i, /^(?:INSERT\b)/i, /^(?:INSERTED\b)/i, /^(?:INTERSECT\b)/i, /^(?:INTERVAL\b)/i, /^(?:INTO\b)/i, /^(?:JOIN\b)/i, /^(?:KEY\b)/i, /^(?:LAST\b)/i, /^(?:LET\b)/i, /^(?:LEFT\b)/i, /^(?:LIKE\b)/i, /^(?:LIMIT\b)/i, /^(?:MATCHED\b)/i, /^(?:MATRIX\b)/i, /^(?:MAX(\s+)?(?=\())/i, /^(?:MAX(\s+)?(?=(,|\))))/i, /^(?:MIN(\s+)?(?=\())/i, /^(?:MERGE\b)/i, /^(?:MINUS\b)/i, /^(?:MODIFY\b)/i, /^(?:NATURAL\b)/i, /^(?:NEXT\b)/i, /^(?:NEW\b)/i, /^(?:NOCASE\b)/i, /^(?:NO\b)/i, /^(?:NOT\b)/i, /^(?:NULL\b)/i, /^(?:NULLS\b)/i, /^(?:OFF\b)/i, /^(?:ON\b)/i, /^(?:ONLY\b)/i, /^(?:OF\b)/i, /^(?:OFFSET\b)/i, /^(?:OPEN\b)/i, /^(?:OPTION\b)/i, /^(?:OR\b)/i, /^(?:ORDER\b)/i, /^(?:OUTER\b)/i, /^(?:OVER\b)/i, /^(?:PATH\b)/i, /^(?:PARTITION\b)/i, /^(?:PERCENT\b)/i, /^(?:PIVOT\b)/i, /^(?:PLAN\b)/i, /^(?:PRIMARY\b)/i, /^(?:PRINT\b)/i, /^(?:PRIOR\b)/i, /^(?:QUERY\b)/i, /^(?:READ\b)/i, /^(?:RECORDSET\b)/i, /^(?:REDUCE\b)/i, /^(?:REFERENCES\b)/i, /^(?:REGEXP\b)/i, /^(?:REINDEX\b)/i, /^(?:RELATIVE\b)/i, /^(?:REMOVE\b)/i, /^(?:RENAME\b)/i, /^(?:REPEAT\b)/i, /^(?:REPLACE\b)/i, /^(?:REQUIRE\b)/i, /^(?:RESTORE\b)/i, /^(?:RETURN\b)/i, /^(?:RETURNS\b)/i, /^(?:RIGHT\b)/i, /^(?:ROLLBACK\b)/i, /^(?:ROLLUP\b)/i, /^(?:ROW\b)/i, /^(?:ROWS\b)/i, /^(?:SCHEMA(S)?)/i, /^(?:SEARCH\b)/i, /^(?:SEMI\b)/i, /^(?:SET\b)/i, /^(?:SETS\b)/i, /^(?:SHOW\b)/i, /^(?:SOME\b)/i, /^(?:SOURCE\b)/i, /^(?:STRATEGY\b)/i, /^(?:STORE\b)/i, /^(?:SUM\b)/i, /^(?:TABLE\b)/i, /^(?:TABLES\b)/i, /^(?:TARGET\b)/i, /^(?:TEMP\b)/i, /^(?:TEMPORARY\b)/i, /^(?:TEXTSTRING\b)/i, /^(?:THEN\b)/i, /^(?:TIMEOUT\b)/i, /^(?:TO\b)/i, /^(?:TOP\b)/i, /^(?:TRAN\b)/i, /^(?:TRANSACTION\b)/i, /^(?:TRIGGER\b)/i, /^(?:TRUE\b)/i, /^(?:TRUNCATE\b)/i, /^(?:UNION\b)/i, /^(?:UNIQUE\b)/i, /^(?:UNPIVOT\b)/i, /^(?:UPDATE\b)/i, /^(?:USE\b)/i, /^(?:USING\b)/i, /^(?:VALUE\b)/i, /^(?:VALUES\b)/i, /^(?:VERTEX\b)/i, /^(?:VIEW\b)/i, /^(?:WHEN\b)/i, /^(?:WHERE\b)/i, /^(?:WHILE\b)/i, /^(?:WITH\b)/i, /^(?:WORK\b)/i, /^(?:(\d*[.])?\d+[eE]\d+)/i, /^(?:(\d*[.])?\d+)/i, /^(?:->)/i, /^(?:#)/i, /^(?:\+)/i, /^(?:-)/i, /^(?:\*)/i, /^(?:\/)/i, /^(?:%)/i, /^(?:!===)/i, /^(?:===)/i, /^(?:!==)/i, /^(?:==)/i, /^(?:>=)/i, /^(?:&)/i, /^(?:\|)/i, /^(?:<<)/i, /^(?:>>)/i, /^(?:>)/i, /^(?:<=)/i, /^(?:<>)/i, /^(?:<)/i, /^(?:=)/i, /^(?:!=)/i, /^(?:\()/i, /^(?:\))/i, /^(?:@)/i, /^(?:\{)/i, /^(?:\})/i, /^(?:\])/i, /^(?::-)/i, /^(?:\?-)/i, /^(?:\.\.)/i, /^(?:\.)/i, /^(?:,)/i, /^(?:::)/i, /^(?::)/i, /^(?:;)/i, /^(?:\$)/i, /^(?:\?)/i, /^(?:!)/i, /^(?:\^)/i, /^(?:~)/i, /^(?:[0-9]*[a-zA-Z_]+[a-zA-Z_0-9]*)/i, /^(?:$)/i, /^(?:.)/i], conditions: { INITIAL: { rules: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276], inclusive: !0 } } }, new ((Ya.prototype = I).Parser = Ya)());
    function v(r, p, m, d) {
      for (m = m || {}, d = r.length; d--; m[r[d]] = p)
        ;
      return m;
    }
    function Ya() {
      this.yy = {};
    }
    a !== void 0 && (n.parser = $2, n.Parser = $2.Parser, n.parse = function() {
      return $2.parse.apply($2, arguments);
    }, n.main = function(r) {
      return r[1] || (console.log("Usage: " + r[0] + " FILE"), process.exit(1)), r = a().readFileSync(a().normalize(r[1]), "utf8"), n.parser.parse(r);
    }, a.main === s && n.main(process.argv.slice(1))), S.prettyflag = !1, S.pretty = function(r, d) {
      var m = S.prettyflag, d = (S.prettyflag = !d, S.parse(r).toString());
      return S.prettyflag = m, d;
    };
    var ft = S.utils = {};
    function Ka(r) {
      return "(y=" + r + ",y===y?y:undefined)";
    }
    function ci(r, p) {
      return "(y=" + r + ',typeof y=="undefined"?undefined:' + p + ")";
    }
    function wn() {
      return !0;
    }
    function Co() {
    }
    function Xa(r) {
      return r = r[0] === String.fromCharCode(65279) ? r.substr(1) : r;
    }
    var Q1 = ft.escapeq = function(r) {
      return ("" + r).replace(/["'\\\n\r\u2028\u2029]/g, function(p) {
        switch (p) {
          case '"':
          case "'":
          case "\\":
            return "\\" + p;
          case `
`:
            return "\\n";
          case "\r":
            return "\\r";
          case "\u2028":
            return "\\u2028";
          case "\u2029":
            return "\\u2029";
        }
      });
    }, M3 = ft.undoubleq = function(r) {
      return r.replace(/(\')/g, "''");
    }, $3 = ft.doubleq = function(r) {
      return r.replace(/(\'\')/g, "\\'");
    }, ma = (ft.doubleqq = function(r) {
      return r.replace(/\'/g, "'");
    }, ft.global = typeof self < "u" ? self : typeof window < "u" ? window : typeof w3 < "u" ? w3 : Function("return this")(), ft.isNativeFunction = function(r) {
      return typeof r == "function" && !!~r.toString().indexOf("[native code]");
    }, ft.isWebWorker = function() {
      try {
        var r = ft.global.importScripts;
        return ft.isNativeFunction(r);
      } catch {
        return !1;
      }
    }(), ft.isNode = function() {
      try {
        return ft.isNativeFunction(ft.global.process.reallyExit);
      } catch {
        return !1;
      }
    }(), ft.isBrowser = function() {
      try {
        return ft.isNativeFunction(ft.global.location.reload);
      } catch {
        return !1;
      }
    }(), ft.isBrowserify = ft.isBrowser && typeof process < "u" && process.browser, ft.isRequireJS = ft.isBrowser && typeof a.specified == "function", ft.isMeteor = typeof Meteor < "u" && Meteor.release, ft.isMeteorClient = ft.isMeteorClient = ft.isMeteor && Meteor.isClient, ft.isMeteorServer = ft.isMeteor && Meteor.isServer, ft.isCordova = typeof cordova == "object", ft.isReactNative = !1, ft.hasIndexedDB = !!ft.global.indexedDB, ft.isArray = function(r) {
      return Object.prototype.toString.call(r) === "[object Array]";
    }, ft.loadFile = function(r, p, m, d) {
      var y, l;
      ft.isNode || ft.isMeteorServer || (ft.isCordova ? ft.global.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(_) {
        _.root.getFile(r, { create: !1 }, function(h) {
          h.file(function(O) {
            var D = new FileReader();
            D.onloadend = function(k) {
              m(Xa(this.result));
            }, D.readAsText(O);
          });
        });
      }) : typeof r == "string" ? r.substr(0, 1) === "#" && typeof document < "u" ? (l = document.querySelector(r).textContent, m(l)) : ((y = new XMLHttpRequest()).onreadystatechange = function() {
        if (y.readyState === 4) {
          if (y.status === 200)
            m && m(Xa(y.responseText));
          else if (d)
            return d(y);
        }
      }, y.open("GET", r, p), y.responseType = "text", y.send()) : r instanceof Event && (l = r.target.files, p = new FileReader(), l[0].name, p.onload = function(_) {
        _ = _.target.result, m(Xa(_));
      }, p.readAsText(l[0])));
    });
    ft.loadBinaryFile = function(r, p, m, d = (y) => {
      throw y;
    }) {
      var y, l;
      ft.isNode || ft.isMeteorServer || (typeof r == "string" ? ((y = new XMLHttpRequest()).open("GET", r, p), y.responseType = "arraybuffer", y.onload = function() {
        for (var _ = new Uint8Array(y.response), h = [], O = 0; O < _.length; ++O)
          h[O] = String.fromCharCode(_[O]);
        m(h.join(""));
      }, y.onerror = d, y.send()) : r instanceof Event ? (p = r.target.files, l = new FileReader(), p[0].name, l.onload = function(_) {
        _ = _.target.result, m(_);
      }, l.onerror = d(), l.readAsArrayBuffer(p[0])) : r instanceof Blob && m(r));
    }, ft.removeFile = function(r, p) {
      if (!ft.isNode)
        throw new Error("You can remove files only in Node.js and Apache Cordova");
    }, ft.deleteFile = function(r, p) {
    }, ft.autoExtFilename = function(r, p, m) {
      return m = m || {}, typeof r != "string" || r.match(/^[A-z]+:\/\/|\n|\..{2,4}$/) || m.autoExt === 0 || m.autoExt === !1 ? r : r + "." + p;
    }, ft.fileExists = function(r, p) {
      if (!ft.isNode)
        throw new Error("You can use exists() only in Node.js or Apach Cordova");
    }, ft.saveFile = function(r, p, m, d) {
      var y, l, _ = 1;
      return r === void 0 ? (_ = p, m && (_ = m(_))) : ft.isNode || (_i() === 9 ? (y = (y = (y = p.replace(/\r\n/g, "&#A;&#D;")).replace(/\n/g, "&#D;")).replace(/\t/g, "&#9;"), (l = ft.global.open("about:blank", "_blank")).document.write(y), l.document.close(), l.document.execCommand("SaveAs", !1, r), l.close()) : (S.utils.extend(y = { disableAutoBom: !1 }, d), l = new Blob([p], { type: "text/plain;charset=utf-8" }), Jo(l, r, y.disableAutoBom), m && (_ = m(_)))), _;
    };
    function _i() {
      var r = navigator.userAgent.toLowerCase();
      return r.indexOf("msie") !== -1 && parseInt(r.split("msie")[1]);
    }
    function yo() {
      var r = S.private.externalXlsxLib;
      if (r || (r = ft.isNode || ft.isBrowserify || ft.isMeteorServer ? r : ft.global.XLSX || null) !== null)
        return r;
      throw new Error("Please include the xlsx.js library");
    }
    var w2 = ft.hash = function(r) {
      for (var p = 2166136261, m = r.length; m; )
        p = (p ^= r.charCodeAt(--m)) + ((p << 1) + (p << 4) + (p << 7) + (p << 8) + (p << 24));
      return p;
    }, g3 = ft.arrayUnion = function(r, p) {
      var m = p.slice(0);
      return r.forEach(function(d) {
        m.indexOf(d) < 0 && m.push(d);
      }), m;
    }, F3 = ft.arrayDiff = function(r, p) {
      return r.filter(function(m) {
        return p.indexOf(m) < 0;
      });
    }, Ja = ft.arrayIntersect = function(r, p) {
      var m = [];
      return r.forEach(function(d) {
        var y = !1;
        p.forEach(function(l) {
          y = y || d === l;
        }), y && m.push(d);
      }), m;
    }, P3 = ft.arrayUnionDeep = function(r, p) {
      var m = p.slice(0);
      return r.forEach(function(d) {
        var y = !1;
        m.forEach(function(l) {
          y = y || Wo(d, l);
        }), y || m.push(d);
      }), m;
    }, Za = ft.arrayExceptDeep = function(r, p) {
      var m = [];
      return r.forEach(function(d) {
        var y = !1;
        p.forEach(function(l) {
          y = y || Wo(d, l);
        }), y || m.push(d);
      }), m;
    }, K1 = ft.arrayIntersectDeep = function(r, p) {
      var m = [];
      return r.forEach(function(d) {
        var y = !1;
        p.forEach(function(l) {
          y = y || Wo(d, l, !0);
        }), y && m.push(d);
      }), m;
    }, qo = ft.cloneDeep = function r(p) {
      if (p === null || typeof p != "object")
        return p;
      if (p instanceof Date)
        return new Date(p);
      if (p instanceof String)
        return p.toString();
      if (p instanceof Number)
        return +p;
      var m, d = p.constructor();
      for (m in p)
        p.hasOwnProperty(m) && (d[m] = r(p[m]));
      return d;
    }, Wo = ft.deepEqual = function(r, p) {
      if (r !== p) {
        if (typeof r != "object" || r === null || typeof p != "object" || p === null || Object.keys(r).length !== Object.keys(p).length)
          return !1;
        for (var m in r)
          if (!Wo(r[m], p[m]))
            return !1;
      }
      return !0;
    }, Wi = ft.distinctArray = function(r) {
      for (var p = {}, m = 0, d = r.length; m < d; m++) {
        var y = typeof r[m] == "object" ? Object.keys(r[m]).sort().map(function(h) {
          return h + "`" + r[m][h];
        }).join("`") : r[m];
        p[y] = r[m];
      }
      var l, _ = [];
      for (l in p)
        _.push(p[l]);
      return _;
    }, rr = ft.extend = function(r, p) {
      for (var m in r = r || {}, p)
        p.hasOwnProperty(m) && (r[m] = p[m]);
      return r;
    }, Qa = ft.getValueOf = function(r) {
      return typeof r == "object" && (r instanceof String || r instanceof Number) ? r.valueOf() : r;
    }, ba = ft.flatArray = function(r) {
      var p;
      return r && r.length !== 0 ? typeof r == "object" && r instanceof S.Recordset ? r.data.map(function(m) {
        return Qa(m[r.columns[0].columnid]);
      }) : (p = Object.keys(r[0])[0]) === void 0 ? [] : r.map(function(m) {
        return m[p];
      }) : [];
    }, cn = (ft.arrayOfArrays = function(r) {
      return r.map(function(p) {
        var m, d = [];
        for (m in p)
          d.push(p[m]);
        return d;
      });
    }, Array.isArray || (Array.isArray = function(r) {
      return Object.prototype.toString.call(r) === "[object Array]";
    }), ft.xlsnc = function(r) {
      var p = String.fromCharCode(65 + r % 26);
      return 26 <= r && (r = (r / 26 | 0) - 1, p = String.fromCharCode(65 + r % 26) + p, 26 < r && (r = (r / 26 | 0) - 1, p = String.fromCharCode(65 + r % 26) + p)), p;
    }, ft.xlscn = function(r) {
      var p = r.charCodeAt(0) - 65;
      return 1 < r.length && (p = 26 * (p + 1) + r.charCodeAt(1) - 65, 2 < r.length && (p = 26 * (p + 1) + r.charCodeAt(2) - 65)), p;
    }, ft.domEmptyChildren = function(r) {
      for (var p = r.childNodes.length; p--; )
        r.removeChild(r.lastChild);
    }, ft.like = function(r, p, m) {
      m = m || "";
      for (var d = 0, y = "^"; d < r.length; ) {
        var l = r[d], _ = "";
        d < r.length - 1 && (_ = r[d + 1]), l === m ? (y += "\\" + _, d++) : l === "[" && _ === "^" ? (y += "[^", d++) : l === "[" || l === "]" ? y += l : l === "%" ? y += ".*" : l === "_" ? y += "." : -1 < "/.*+?|(){}".indexOf(l) ? y += "\\" + l : y += l, d++;
      }
      return y += "$", -1 < ("" + (p || "")).toUpperCase().search(RegExp(y.toUpperCase()));
    }, ft.glob = function(r, p) {
      for (var m = 0, d = "^"; m < p.length; ) {
        var y = p[m], l = "";
        m < p.length - 1 && (l = p[m + 1]), y === "[" && l === "^" ? (d += "[^", m++) : y === "[" || y === "]" ? d += y : y === "*" ? d += ".*" : y === "?" ? d += "." : -1 < "/.*+?|(){}".indexOf(y) ? d += "\\" + y : d += y, m++;
      }
      return d += "$", -1 < ("" + (r || "")).toUpperCase().search(RegExp(d.toUpperCase()));
    }, ft.findAlaSQLPath = function() {
      if (!ft.isWebWorker) {
        if (ft.isMeteorClient)
          return "/packages/dist/";
        if (ft.isMeteorServer)
          return "assets/packages/dist/";
        if (!ft.isNode && ft.isBrowser)
          for (var r = document.getElementsByTagName("script"), p = 0; p < r.length; p++) {
            if (r[p].src.substr(-16).toLowerCase() === "alasql-worker.js")
              return r[p].src.substr(0, r[p].src.length - 16);
            if (r[p].src.substr(-20).toLowerCase() === "alasql-worker.min.js")
              return r[p].src.substr(0, r[p].src.length - 20);
            if (r[p].src.substr(-9).toLowerCase() === "alasql.js")
              return r[p].src.substr(0, r[p].src.length - 9);
            if (r[p].src.substr(-13).toLowerCase() === "alasql.min.js")
              return r[p].src.substr(0, r[p].src.length - 13);
          }
      }
      return "";
    }, S.path = S.utils.findAlaSQLPath(), S.utils.uncomment = function(r) {
      for (var p, m = !1, d = !1, y = !1, l = 0, _ = (r = ("__" + r + "__").split("")).length; l < _; l++) {
        var h = r[l - 1] !== "\\" || r[l - 2] === "\\";
        m ? r[l] === p && h && (m = !1) : d ? r[l] === "*" && r[l + 1] === "/" ? (r[l] = r[l + 1] = "", d = !1, l++) : r[l] = "" : y ? (r[l + 1] !== `
` && r[l + 1] !== "\r" || (y = !1), r[l] = "") : r[l] === '"' || r[l] === "'" ? (m = !0, p = r[l]) : r[l] === "[" && r[l - 1] !== "@" ? (m = !0, p = "]") : r[l] === "/" && r[l + 1] === "*" && (d = !(r[l] = ""));
      }
      return r = r.join("").slice(2, -2);
    }, S.parser = $2, S.parser.parseError = function(r, p) {
      throw new Error("Have you used a reserved keyword without `escaping` it?\n" + r);
    }, S.parse = function(r) {
      return $2.parse(S.utils.uncomment(r));
    }, S.engines = {}, S.databases = {}, S.databasenum = 0, S.options = {}, S.options.errorlog = !1, S.options.valueof = !1, S.options.dropifnotexists = !1, S.options.datetimeformat = "sql", S.options.casesensitive = !0, S.options.logtarget = "output", S.options.logprompt = !0, S.options.progress = !1, S.options.modifier = void 0, S.options.columnlookup = 10, S.options.autovertex = !0, S.options.usedbo = !0, S.options.autocommit = !0, S.options.cache = !0, S.options.tsql = !0, S.options.mysql = !0, S.options.postgres = !0, S.options.oracle = !0, S.options.sqlite = !0, S.options.orientdb = !0, S.options.nocount = !1, S.options.nan = !1, S.options.excel = { cellDates: !0 }, S.options.joinstar = "overwrite", S.options.loopbreak = 1e5, S.options, S.vars = {}, S.declares = {}, S.prompthistory = [], S.plugins = {}, S.from = {}, S.into = {}, S.fn = {}, S.aggr = {}, S.busy = 0, S.MAXSQLCACHESIZE = 1e4, S.DEFAULTDATABASEID = "alasql", S.lastid = 0, S.buffer = {}, S.private = { externalXlsxLib: null }, S.setXLSX = function(r) {
      S.private.externalXlsxLib = r;
    }, S.use = function(r) {
      if (r = r || S.DEFAULTDATABASEID, S.useid !== r) {
        if (S.databases[r] === void 0)
          throw Error("Database does not exist: " + r);
        S.useid = r, r = S.databases[S.useid], S.tables = r.tables, r.resetSqlCache(), S.options.usedbo && (S.databases.dbo = r);
      }
    }, S.autoval = function(r, p, m, d) {
      if (d = d ? S.databases[d] : S.databases[S.useid], !d.tables[r])
        throw new Error("Tablename not found: " + r);
      if (d.tables[r].identities[p])
        return m ? d.tables[r].identities[p].value || null : d.tables[r].identities[p].value - d.tables[r].identities[p].step || null;
      throw new Error("Colname not found: " + p);
    }, S.exec = function(r, p, m, d) {
      if (typeof p == "function" && (d = m, m = p, p = {}), delete S.error, p = p || {}, !S.options.errorlog)
        return S.dexec(S.useid, r, p, m, d);
      try {
        return S.dexec(S.useid, r, p, m, d);
      } catch (y) {
        S.error = y, m && m(null, S.error);
      }
    }, S.dexec = function(r, p, m, d, y) {
      var l = S.databases[r];
      if (S.options.cache) {
        var _ = w2(p);
        if ((h = l.sqlCache[_]) && l.dbversion === h.dbversion)
          return h(m, d);
      }
      var h, O = S.parse(p);
      if (O.statements)
        return O.statements.length === 0 ? 0 : O.statements.length === 1 ? O.statements[0].compile ? (h = O.statements[0].compile(r, m)) ? (h.sql = p, h.dbversion = l.dbversion, S.options.cache && (l.sqlCacheSize > S.MAXSQLCACHESIZE && l.resetSqlCache(), l.sqlCacheSize++, l.sqlCache[_] = h), S.res = h(m, d, y)) : void 0 : (S.precompile(O.statements[0], S.useid, m), S.res = O.statements[0].execute(r, m, d, y)) : d ? void S.adrun(r, O, m, d, y) : S.drun(r, O, m, d, y);
    }, S.drun = function(r, p, m, d, y) {
      for (var l, _ = S.useid, h = (_ !== r && S.use(r), []), O = 0, D = p.statements.length; O < D; O++)
        p.statements[O] && (p.statements[O].compile ? (l = p.statements[O].compile(S.useid), h.push(S.res = l(m, null, y))) : (S.precompile(p.statements[O], S.useid, m), h.push(S.res = p.statements[O].execute(S.useid, m))));
      return _ !== r && S.use(_), d && d(h), S.res = h;
    }, S.adrun = function(r, p, m, d, y) {
      var l = 0, _ = p.statements.length, h = (S.options.progress !== !1 && S.options.progress(_, l++), S.useid), O = (h !== r && S.use(r), []);
      (function D(k) {
        k !== void 0 && O.push(k), k = p.statements.shift(), k ? (k.compile ? k.compile(S.useid)(m, D, y) : (S.precompile(p.statements[0], S.useid, m), k.execute(S.useid, m, D)), S.options.progress !== !1 && S.options.progress(_, l++)) : (h !== r && S.use(h), d(O));
      })();
    }, S.compile = function(d, p) {
      p = p || S.useid;
      var m, d = S.parse(d);
      if (d.statements.length === 1)
        return (m = d.statements[0].compile(p)).promise = function(y) {
          return new Promise(function(l, _) {
            m(y, function(h, O) {
              O ? _(O) : l(h);
            });
          });
        }, m;
      throw new Error("Cannot compile, because number of statements in SQL is not equal to 1");
    }, ft.global.Promise || ft.isNode || function() {
      function r(o) {
        return typeof o == "function";
      }
      function p() {
        return function() {
          setTimeout(m, 1);
        };
      }
      function m() {
        for (var o = 0; o < Zt; o += 2)
          (0, zt[o])(zt[o + 1]), zt[o] = void 0, zt[o + 1] = void 0;
        Zt = 0;
      }
      function d() {
      }
      function y(o) {
        try {
          return o.then;
        } catch (f) {
          return ji.error = f, ji;
        }
      }
      function l(o, f, w) {
        jt(function(L) {
          var T = !1, R = function(N, q, Y, ue) {
            try {
              N.call(q, Y, ue);
            } catch (Q) {
              return Q;
            }
          }(w, f, function(N) {
            T || (T = !0, (f !== N ? h : D)(L, N));
          }, function(N) {
            T || (T = !0, k(L, N));
          }, L._label);
          !T && R && (T = !0, k(L, R));
        }, o);
      }
      function _(o, f, w) {
        var L, T;
        f.constructor === o.constructor && w === lt && constructor.resolve === Dr ? (L = o, (T = f)._state === z1 ? D(L, T._result) : T._state === N1 ? k(L, T._result) : z(T, void 0, function(R) {
          h(L, R);
        }, function(R) {
          k(L, R);
        })) : w === ji ? k(o, ji.error) : w !== void 0 && r(w) ? l(o, f, w) : D(o, f);
      }
      function h(o, f) {
        var w;
        o === f ? k(o, new TypeError("You cannot resolve a promise with itself")) : typeof (w = f) == "function" || typeof w == "object" && w !== null ? _(o, f, y(f)) : D(o, f);
      }
      function O(o) {
        o._onerror && o._onerror(o._result), H(o);
      }
      function D(o, f) {
        o._state === zr && (o._result = f, o._state = z1, o._subscribers.length !== 0 && jt(H, o));
      }
      function k(o, f) {
        o._state === zr && (o._state = N1, o._result = f, jt(O, o));
      }
      function z(o, f, w, L) {
        var T = o._subscribers, R = T.length;
        o._onerror = null, T[R] = f, T[R + z1] = w, T[R + N1] = L, R === 0 && o._state && jt(H, o);
      }
      function H(o) {
        var f = o._subscribers, w = o._state;
        if (f.length !== 0) {
          for (var L, T, R = o._result, N = 0; N < f.length; N += 3)
            L = f[N], T = f[N + w], L ? J(w, L, T, R) : T(R);
          o._subscribers.length = 0;
        }
      }
      function ie() {
        this.error = null;
      }
      function J(o, f, w, L) {
        var T, R, N, q, Y = r(w);
        if (Y) {
          if ((T = function(ue, Q) {
            try {
              return ue(Q);
            } catch (et) {
              return Zr.error = et, Zr;
            }
          }(w, L)) === Zr ? (q = !0, R = T.error, T = null) : N = !0, f === T)
            return k(f, new TypeError("A promises callback cannot return that same promise."));
        } else
          T = L, N = !0;
        f._state === zr && (Y && N ? h(f, T) : q ? k(f, R) : o === z1 ? D(f, T) : o === N1 && k(f, T));
      }
      function ne(o) {
        o[Ar] = Js++, o._state = void 0, o._result = void 0, o._subscribers = [];
      }
      function se(o) {
        if (this[Ar] = Js++, this._result = this._state = void 0, this._subscribers = [], d !== o) {
          if (typeof o != "function")
            throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");
          if (!(this instanceof se))
            throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
          var f = this;
          try {
            o(function(w) {
              h(f, w);
            }, function(w) {
              k(f, w);
            });
          } catch (w) {
            k(f, w);
          }
        }
      }
      function ee(o, f) {
        this._instanceConstructor = o, this.promise = new o(d), this.promise[Ar] || ne(this.promise), Array.isArray(f) ? (this._input = f, this.length = f.length, this._remaining = f.length, this._result = new Array(this.length), this.length !== 0 && (this.length = this.length || 0, this._enumerate(), this._remaining !== 0) || D(this.promise, this._result)) : k(this.promise, new Error("Array Methods must be provided an Array"));
      }
      function nt(o) {
        var f = this;
        return new f(y1(o) ? function(w, L) {
          for (var T = o.length, R = 0; R < T; R++)
            f.resolve(o[R]).then(w, L);
        } : function(w, L) {
          L(new TypeError("You must pass an array to race."));
        });
      }
      function tt(o) {
        var f = new this(d);
        return k(f, o), f;
      }
      var rt, ut, kt, S1, g1, y1 = Array.isArray || function(o) {
        return Object.prototype.toString.call(o) === "[object Array]";
      }, Zt = 0, jt = function(o, f) {
        zt[Zt] = o, zt[Zt + 1] = f, (Zt += 2) === 2 && (ut ? ut(m) : Yn());
      }, L1 = typeof window < "u" ? window : void 0, t = L1 || {}, t = t.MutationObserver || t.WebKitMutationObserver, x1 = typeof self > "u" && typeof process < "u" && {}.toString.call(process) === "[object process]", m1 = typeof Uint8ClampedArray < "u" && typeof importScripts < "u" && typeof MessageChannel < "u", zt = new Array(1e3), Yn = x1 ? function() {
        process.nextTick(m);
      } : t ? (S1 = 0, x1 = new t(m), g1 = document.createTextNode(""), x1.observe(g1, { characterData: !0 }), function() {
        g1.data = S1 = ++S1 % 2;
      }) : m1 ? ((kt = new MessageChannel()).port1.onmessage = m, function() {
        kt.port2.postMessage(0);
      }) : (L1 === void 0 ? function() {
        try {
          var o = a();
          return rt = o.runOnLoop || o.runOnContext, function() {
            rt(m);
          };
        } catch {
          return p();
        }
      } : p)(), lt = function(o, f) {
        var w, L = this, T = new this.constructor(d), R = (T[Ar] === void 0 && ne(T), L._state);
        return R ? (w = arguments[R - 1], jt(function() {
          J(R, T, w, L._result);
        })) : z(L, T, o, f), T;
      }, Dr = function(o) {
        var f;
        return o && typeof o == "object" && o.constructor === this ? o : (h(f = new this(d), o), f);
      }, Ar = Math.random().toString(36).substring(16), zr = void 0, z1 = 1, N1 = 2, ji = new ie(), Zr = new ie(), Js = 0, Kn = se, e = (se.all = function(o) {
        return new e(this, o).promise;
      }, se.race = nt, se.resolve = Dr, se.reject = tt, se._setScheduler = function(o) {
        ut = o;
      }, se._setAsap = function(o) {
        jt = o;
      }, se._asap = jt, se.prototype = { constructor: se, then: lt, catch: function(o) {
        return this.then(null, o);
      } }, ee), t = (ee.prototype._enumerate = function() {
        for (var o = this.length, f = this._input, w = 0; this._state === zr && w < o; w++)
          this._eachEntry(f[w], w);
      }, ee.prototype._eachEntry = function(o, f) {
        var w, L, T = this._instanceConstructor, R = T.resolve;
        R === Dr ? (w = y(o)) === lt && o._state !== zr ? this._settledAt(o._state, f, o._result) : typeof w != "function" ? (this._remaining--, this._result[f] = o) : T === Kn ? (_(L = new T(d), o, w), this._willSettleAt(L, f)) : this._willSettleAt(new T(function(N) {
          N(o);
        }), f) : this._willSettleAt(R(o), f);
      }, ee.prototype._settledAt = function(o, f, w) {
        var L = this.promise;
        L._state === zr && (this._remaining--, o === N1 ? k(L, w) : this._result[f] = w), this._remaining === 0 && D(L, this._result);
      }, ee.prototype._willSettleAt = function(o, f) {
        var w = this;
        z(o, void 0, function(L) {
          w._settledAt(z1, f, L);
        }, function(L) {
          w._settledAt(N1, f, L);
        });
      }, function() {
        var o;
        if (typeof w3 < "u")
          o = w3;
        else if (typeof self < "u")
          o = self;
        else
          try {
            o = Function("return this")();
          } catch {
            throw new Error("polyfill failed because global object is unavailable in this environment");
          }
        var f = o.Promise;
        f && Object.prototype.toString.call(f.resolve()) === "[object Promise]" && !f.cast || (o.Promise = Kn);
      }), u = { Promise: Kn, polyfill: t };
      s.exports ? s.exports = u : this !== void 0 && (this.ES6Promise = u), t();
    }.call(this), function(r, p, m, d) {
      return new ft.global.Promise(function(y, l) {
        S(r, p, function(_, h) {
          h ? l(h) : (m && d && S.options.progress !== !1 && S.options.progress(m, d), y(_));
        });
      });
    }), Ks = (S.promise = function(r, p) {
      if (typeof Promise > "u")
        throw new Error("Please include a Promise/A+ library");
      if (typeof r == "string")
        return cn(r, p);
      if (!ft.isArray(r) || r.length < 1 || p !== void 0)
        throw new Error("Error in .promise parameters");
      var m = r;
      if (!(m.length < 1)) {
        for (var d, y, l = [], _ = 0; _ < m.length; _++) {
          if (typeof (y = m[_]) == "string" && (y = [y]), !ft.isArray(y) || y.length < 1 || 2 < y.length)
            throw new Error("Error in .promise parameter");
          d = y[0], y = y[1] || void 0, l.push(cn(d, y, _, m.length));
        }
        return ft.global.Promise.all(l);
      }
    }, S.Database = function(r) {
      var p = this;
      if (p === S)
        if (r) {
          if (p = S.databases[r], !(S.databases[r] = p))
            throw new Error('Database "' + r + '" not found');
        } else
          p = S.databases.alasql, S.options.tsql && (S.databases.tempdb = S.databases.alasql);
      return r = r || "db" + S.databasenum++, p.databaseid = r, (S.databases[r] = p).dbversion = 0, p.tables = {}, p.views = {}, p.triggers = {}, p.indices = {}, p.objects = {}, p.counter = 0, p.resetSqlCache(), p;
    }), F2 = (Ks.prototype.resetSqlCache = function() {
      this.sqlCache = {}, this.sqlCacheSize = 0;
    }, Ks.prototype.exec = function(r, p, m) {
      return S.dexec(this.databaseid, r, p, m);
    }, Ks.prototype.autoval = function(r, p, m) {
      return S.autoval(r, p, m, this.databaseid);
    }, Ks.prototype.transaction = function(r) {
      return r(new S.Transaction(this.databaseid));
    }, S.Transaction = function(r) {
      return this.transactionid = Date.now(), this.databaseid = r, this.commited = !1, this.dbversion = S.databases[r].dbversion, this.bank = JSON.stringify(S.databases[r]), this;
    }), ws = (F2.prototype.commit = function() {
      this.commited = !0, S.databases[this.databaseid].dbversion = Date.now(), delete this.bank;
    }, F2.prototype.rollback = function() {
      if (this.commited)
        throw new Error("Transaction already commited");
      S.databases[this.databaseid] = JSON.parse(this.bank), delete this.bank;
    }, F2.prototype.exec = function(r, p, m) {
      return S.dexec(this.databaseid, r, p, m);
    }, F2.prototype.executeSQL = F2.prototype.exec, S.Table = function(r) {
      this.data = [], this.columns = [], this.xcolumns = {}, this.inddefs = {}, this.indices = {}, this.uniqs = {}, this.uniqdefs = {}, this.identities = {}, this.checks = [], this.checkfns = [], this.beforeinsert = {}, this.afterinsert = {}, this.insteadofinsert = {}, this.beforedelete = {}, this.afterdelete = {}, this.insteadofdelete = {}, this.beforeupdate = {}, this.afterupdate = {}, this.insteadofupdate = {}, rr(this, r);
    }), v3 = (ws.prototype.indexColumns = function() {
      var r = this;
      r.xcolumns = {}, r.columns.forEach(function(p) {
        r.xcolumns[p.columnid] = p;
      });
    }, S.View = function(r) {
      this.columns = [], this.xcolumns = {}, this.query = [], rr(this, r);
    }, S.Query = function(r) {
      this.alasql = S, this.columns = [], this.xcolumns = {}, this.selectGroup = [], this.groupColumns = {}, rr(this, r);
    }), $ = (S.Recordset = function(r) {
      rr(this, r);
    }, $2.yy = S.yy = {}), Yr = ($.extend = rr, $.casesensitive = S.options.casesensitive, $.Base = function(r) {
      return $.extend(this, r);
    });
    function P2(r, p, m) {
      var d, y, l, _, h = {}, O = qo(this.selectors);
      return O !== void 0 && 0 < O.length && (O && O[0] && O[0].srchid === "PROP" && O[0].args && O[0].args[0] && (O[0].args[0].toUpperCase() === "XML" ? (h.mode = "XML", O.shift()) : O[0].args[0].toUpperCase() === "HTML" ? (h.mode = "HTML", O.shift()) : O[0].args[0].toUpperCase() === "JSON" && (h.mode = "JSON", O.shift())), 0 < O.length && O[0].srchid === "VALUE" && (h.value = !0, O.shift())), this.from instanceof $.Column ? (y = this.from.databaseid || r, d = S.databases[y].tables[this.from.columnid].data) : this.from instanceof $.FuncValue && S.from[this.from.funcid.toUpperCase()] ? (y = this.from.args.map(function(D) {
        return D = D.toJS(), new Function("params,alasql", "var y;return " + D).bind(this)(p, S);
      }), d = S.from[this.from.funcid.toUpperCase()].apply(this, y)) : this.from === void 0 ? d = S.databases[r].objects : (y = new Function("params,alasql", "var y;return " + this.from.toJS()), d = y(p, S), typeof Mongo == "object" && typeof Mongo.Collection != "object" && d instanceof Mongo.Collection && (d = d.find().fetch())), r = O !== void 0 && 0 < O.length ? function D(k, z, H) {
        var ie, J, ne, se, ee = k[z], nt = S.options.loopbreak || 1e5;
        if (ee.selid) {
          if (ee.selid === "PATH") {
            for (var tt = [{ node: H, stack: [] }], rt = {}, ut = S.databases[S.useid].objects; 0 < tt.length; ) {
              var kt, S1 = tt.shift(), g1 = S1.node, y1 = S1.stack;
              if (0 < (Dr = D(ee.args, 0, g1)).length)
                return z + 1 + 1 > k.length ? y1 : (kt = [], y1 && 0 < y1.length && y1.forEach(function(z1) {
                  kt = kt.concat(D(k, z + 1, z1));
                }), kt);
              rt[g1.$id] === void 0 && (rt[g1.$id] = !0, g1.$out && 0 < g1.$out.length && g1.$out.forEach(function(N1) {
                var N1 = ut[N1], ji = y1.concat(N1);
                ji.push(ut[N1.$out[0]]), tt.push({ node: ut[N1.$out[0]], stack: ji });
              }));
            }
            return [];
          }
          if (ee.selid === "NOT")
            return 0 < (lt = D(ee.args, 0, H)).length ? [] : z + 1 + 1 > k.length ? [H] : D(k, z + 1, H);
          if (ee.selid === "DISTINCT")
            return (lt = ee.args === void 0 || ee.args.length === 0 ? Wi(H) : D(ee.args, 0, H)).length === 0 ? [] : (Ar = Wi(lt), z + 1 + 1 > k.length ? Ar : D(k, z + 1, Ar));
          if (ee.selid === "AND")
            return Ar = !0, ee.args.forEach(function(z1) {
              Ar = Ar && 0 < D(z1, 0, H).length;
            }), Ar ? z + 1 + 1 > k.length ? [H] : D(k, z + 1, H) : [];
          if (ee.selid === "OR")
            return Ar = !1, ee.args.forEach(function(z1) {
              Ar = Ar || 0 < D(z1, 0, H).length;
            }), Ar ? z + 1 + 1 > k.length ? [H] : D(k, z + 1, H) : [];
          if (ee.selid === "ALL")
            return (lt = D(ee.args[0], 0, H)).length === 0 ? [] : z + 1 + 1 > k.length ? lt : D(k, z + 1, lt);
          if (ee.selid === "ANY")
            return (lt = D(ee.args[0], 0, H)).length === 0 ? [] : z + 1 + 1 > k.length ? [lt[0]] : D(k, z + 1, [lt[0]]);
          if (ee.selid === "UNIONALL")
            return lt = [], ee.args.forEach(function(z1) {
              lt = lt.concat(D(z1, 0, H));
            }), lt.length === 0 ? [] : z + 1 + 1 > k.length ? lt : D(k, z + 1, lt);
          if (ee.selid === "UNION")
            return lt = [], ee.args.forEach(function(z1) {
              lt = lt.concat(D(z1, 0, H));
            }), (lt = Wi(lt)).length === 0 ? [] : z + 1 + 1 > k.length ? lt : D(k, z + 1, lt);
          if (ee.selid === "IF")
            return (lt = D(ee.args, 0, H)).length === 0 ? [] : z + 1 + 1 > k.length ? [H] : D(k, z + 1, H);
          if (ee.selid === "REPEAT") {
            var Zt, jt = ee.args[0].value, L1 = ee.args[1] ? ee.args[1].value : jt, x1 = (ee.args[2] && (Zt = ee.args[2].variable), []);
            if (jt === 0 && (x1 = z + 1 + 1 > k.length ? [H] : (Zt && (S.vars[Zt] = 0), x1.concat(D(k, z + 1, H)))), 0 < L1)
              for (var m1 = [{ value: H, lvl: 1 }], zt = 0; 0 < m1.length; ) {
                var Yn, lt = m1[0];
                if (m1.shift(), lt.lvl <= L1 && (Zt && (S.vars[Zt] = lt.lvl), (Yn = D(ee.sels, 0, lt.value)).forEach(function(z1) {
                  m1.push({ value: z1, lvl: lt.lvl + 1 });
                }), lt.lvl >= jt && (z + 1 + 1 > k.length ? x1 = x1.concat(Yn) : Yn.forEach(function(z1) {
                  x1 = x1.concat(D(k, z + 1, z1));
                }))), nt < ++zt)
                  throw new Error("Infinite loop brake. Number of iterations = " + zt);
              }
            return x1;
          }
          if (ee.selid === "OF")
            return z + 1 + 1 > k.length ? [H] : (J = [], Object.keys(H).forEach(function(z1) {
              S.vars[ee.args[0].variable] = z1, J = J.concat(D(k, z + 1, H[z1]));
            }), J);
          if (ee.selid === "TO")
            return ne = [], (ne = (ie = S.vars[ee.args[0]]) !== void 0 ? ie.slice(0) : []).push(H), z + 1 + 1 > k.length ? [H] : (S.vars[ee.args[0]] = ne, J = D(k, z + 1, H), S.vars[ee.args[0]] = ie, J);
          if (ee.selid === "ARRAY")
            return 0 < (lt = D(ee.args, 0, H)).length ? (se = lt, z + 1 + 1 > k.length ? [se] : D(k, z + 1, se)) : [];
          if (ee.selid === "SUM")
            return 0 < (lt = D(ee.args, 0, H)).length ? (se = lt.reduce(function(z1, N1) {
              return z1 + N1;
            }, 0), z + 1 + 1 > k.length ? [se] : D(k, z + 1, se)) : [];
          if (ee.selid === "AVG")
            return 0 < (lt = D(ee.args, 0, H)).length ? (se = lt.reduce(function(z1, N1) {
              return z1 + N1;
            }, 0) / lt.length, z + 1 + 1 > k.length ? [se] : D(k, z + 1, se)) : [];
          if (ee.selid === "COUNT")
            return 0 < (lt = D(ee.args, 0, H)).length ? (se = lt.length, z + 1 + 1 > k.length ? [se] : D(k, z + 1, se)) : [];
          if (ee.selid === "FIRST")
            return 0 < (lt = D(ee.args, 0, H)).length ? (se = lt[0], z + 1 + 1 > k.length ? [se] : D(k, z + 1, se)) : [];
          if (ee.selid === "LAST")
            return 0 < (lt = D(ee.args, 0, H)).length ? (se = lt[lt.length - 1], z + 1 + 1 > k.length ? [se] : D(k, z + 1, se)) : [];
          if (ee.selid === "MIN")
            return (lt = D(ee.args, 0, H)).length === 0 ? [] : (se = lt.reduce(function(z1, N1) {
              return Math.min(z1, N1);
            }, 1 / 0), z + 1 + 1 > k.length ? [se] : D(k, z + 1, se));
          if (ee.selid === "MAX")
            return (lt = D(ee.args, 0, H)).length === 0 ? [] : (se = lt.reduce(function(z1, N1) {
              return Math.max(z1, N1);
            }, -1 / 0), z + 1 + 1 > k.length ? [se] : D(k, z + 1, se));
          if (ee.selid === "PLUS") {
            for (x1 = [], m1 = D(ee.args, 0, H).slice(), zt = (z + 1 + 1 > k.length ? x1 = x1.concat(m1) : m1.forEach(function(z1) {
              x1 = x1.concat(D(k, z + 1, z1));
            }), 0); 0 < m1.length; )
              if (lt = m1.shift(), lt = D(ee.args, 0, lt), m1 = m1.concat(lt), z + 1 + 1 > k.length ? x1 = x1.concat(lt) : lt.forEach(function(z1) {
                z1 = D(k, z + 1, z1), x1 = x1.concat(z1);
              }), nt < ++zt)
                throw new Error("Infinite loop brake. Number of iterations = " + zt);
            return x1;
          }
          if (ee.selid === "STAR") {
            for (x1 = [], x1 = D(k, z + 1, H), m1 = D(ee.args, 0, H).slice(), z + 1 + 1 > k.length ? x1 = x1.concat(m1) : m1.forEach(function(z1) {
              x1 = x1.concat(D(k, z + 1, z1));
            }), zt = 0; 0 < m1.length; )
              if (lt = m1[0], m1.shift(), lt = D(ee.args, 0, lt), m1 = m1.concat(lt), z + 1 + 1 <= k.length && lt.forEach(function(z1) {
                x1 = x1.concat(D(k, z + 1, z1));
              }), nt < ++zt)
                throw new Error("Infinite loop brake. Number of iterations = " + zt);
            return x1;
          }
          if (ee.selid === "QUESTION")
            return x1 = (x1 = []).concat(D(k, z + 1, H)), lt = D(ee.args, 0, H), z + 1 + 1 <= k.length && lt.forEach(function(z1) {
              x1 = x1.concat(D(k, z + 1, z1));
            }), x1;
          if (ee.selid !== "WITH") {
            if (ee.selid === "ROOT")
              return z + 1 + 1 > k.length ? [H] : D(k, z + 1, d);
            throw new Error("Wrong selector " + ee.selid);
          }
          if ((lt = D(ee.args, 0, H)).length === 0)
            return [];
          var Dr = { status: 1, values: lt };
        } else {
          if (!ee.srchid)
            throw new Error("Selector not found");
          Dr = S.srch[ee.srchid.toUpperCase()](H, ee.args, h, p);
        }
        var Ar = [];
        if ((Dr = Dr === void 0 ? { status: 1, values: [H] } : Dr).status === 1) {
          var zr = Dr.values;
          if (z + 1 + 1 > k.length)
            Ar = zr;
          else
            for (zt = 0; zt < Dr.values.length; zt++)
              Ar = Ar.concat(D(k, z + 1, zr[zt]));
        }
        return Ar;
      }(O, 0, d) : d, this.into ? (this.into.args[0] !== void 0 && (l = new Function("params,alasql", "var y;return " + this.into.args[0].toJS())(p, S)), this.into.args[1] !== void 0 && (_ = new Function("params,alasql", "var y;return " + this.into.args[1].toJS())(p, S)), r = S.into[this.into.funcid.toUpperCase()](l, _, r, [], m)) : (h.value && 0 < r.length && (r = r[0]), m && (r = m(r))), r;
    }
    Yr.prototype.toString = function() {
    }, Yr.prototype.toType = function() {
    }, Yr.prototype.toJS = function() {
    }, Yr.prototype.compile = Co, Yr.prototype.exec = function() {
    }, Yr.prototype.compile = Co, Yr.prototype.exec = function() {
    }, $.Statements = function(r) {
      return $.extend(this, r);
    }, $.Statements.prototype.toString = function() {
      return this.statements.map(function(r) {
        return r.toString();
      }).join("; ");
    }, $.Statements.prototype.compile = function(r) {
      var p = this.statements.map(function(m) {
        return m.compile(r);
      });
      return p.length === 1 ? p[0] : function(m, d) {
        var y = p.map(function(l) {
          return l(m);
        });
        return d && d(y), y;
      };
    }, $.Search = function(r) {
      return $.extend(this, r);
    }, $.Search.prototype.toString = function() {
      var r = "SEARCH ";
      return this.selectors && (r += this.selectors.toString()), this.from && (r += "FROM " + this.from.toString()), r;
    }, $.Search.prototype.toJS = function(r) {
      return "this.queriesfn[" + (this.queriesidx - 1) + "](this.params,null," + r + ")";
    }, $.Search.prototype.compile = function(r) {
      function p(y, l) {
        var _;
        return P2.bind(d)(m, y, function(h) {
          _ = ya(p.query, h), l && (_ = l(_));
        }), _;
      }
      var m = r, d = this;
      return p.query = {}, p;
    }, S.srch = {}, S.srch.PROP = function(r, p, m) {
      var d;
      return m.mode === "XML" ? (d = [], r.children.forEach(function(y) {
        y.name.toUpperCase() === p[0].toUpperCase() && d.push(y);
      }), 0 < d.length ? { status: 1, values: d } : { status: -1, values: [] }) : typeof r != "object" || r === null || typeof p != "object" || r[p[0]] === void 0 ? { status: -1, values: [] } : { status: 1, values: [r[p[0]]] };
    }, S.srch.APROP = function(r, p) {
      return typeof r != "object" || r === null || typeof p != "object" || r[p[0]] === void 0 ? { status: 1, values: [void 0] } : { status: 1, values: [r[p[0]]] };
    }, S.srch.EQ = function(r, p, m, d) {
      return p = p[0].toJS("x", ""), r === new Function("x,alasql,params", "return " + p)(r, S, d) ? { status: 1, values: [r] } : { status: -1, values: [] };
    }, S.srch.LIKE = function(r, p, m, d) {
      return p = p[0].toJS("x", ""), p = new Function("x,alasql,params", "return " + p), r.toUpperCase().match(new RegExp("^" + p(r, S, d).toUpperCase().replace(/%/g, ".*").replace(/\?|_/g, ".") + "$"), "g") ? { status: 1, values: [r] } : { status: -1, values: [] };
    }, S.srch.ATTR = function(r, p, m) {
      if (m.mode === "XML")
        return p === void 0 ? { status: 1, values: [r.attributes] } : typeof r == "object" && typeof r.attributes == "object" && r.attributes[p[0]] !== void 0 ? { status: 1, values: [r.attributes[p[0]]] } : { status: -1, values: [] };
      throw new Error("ATTR is not using in usual mode");
    }, S.srch.CONTENT = function(r, p, m) {
      if (m.mode === "XML")
        return { status: 1, values: [r.content] };
      throw new Error("ATTR is not using in usual mode");
    }, S.srch.SHARP = function(r, p) {
      return p = S.databases[S.useid].objects[p[0]], r !== void 0 && r === p ? { status: 1, values: [r] } : { status: -1, values: [] };
    }, S.srch.PARENT = function() {
      return console.error("PARENT not implemented", arguments), { status: -1, values: [] };
    }, S.srch.CHILD = function(r, p, m) {
      return typeof r == "object" ? Array.isArray(r) ? { status: 1, values: r } : m.mode === "XML" ? { status: 1, values: Object.keys(r.children).map(function(d) {
        return r.children[d];
      }) } : { status: 1, values: Object.keys(r).map(function(d) {
        return r[d];
      }) } : { status: 1, values: [] };
    }, S.srch.KEYS = function(r) {
      return typeof r == "object" && r !== null ? { status: 1, values: Object.keys(r) } : { status: 1, values: [] };
    }, S.srch.WHERE = function(r, p, m, d) {
      return p = p[0].toJS("x", ""), new Function("x,alasql,params", "return " + p)(r, S, d) ? { status: 1, values: [r] } : { status: -1, values: [] };
    }, S.srch.NAME = function(r, p) {
      return r.name === p[0] ? { status: 1, values: [r] } : { status: -1, values: [] };
    }, S.srch.CLASS = function(r, p) {
      return r.$class == p ? { status: 1, values: [r] } : { status: -1, values: [] };
    }, S.srch.VERTEX = function(r) {
      return r.$node === "VERTEX" ? { status: 1, values: [r] } : { status: -1, values: [] };
    }, S.srch.INSTANCEOF = function(r, p) {
      return r instanceof S.fn[p[0]] ? { status: 1, values: [r] } : { status: -1, values: [] };
    }, S.srch.EDGE = function(r) {
      return r.$node === "EDGE" ? { status: 1, values: [r] } : { status: -1, values: [] };
    }, S.srch.EX = function(r, p, m, d) {
      return p = p[0].toJS("x", ""), { status: 1, values: [new Function("x,alasql,params", "return " + p)(r, S, d)] };
    }, S.srch.RETURN = function(r, p, m, d) {
      var y = {};
      return p && 0 < p.length && p.forEach(function(l) {
        var _ = l.toJS("x", ""), _ = new Function("x,alasql,params", "return " + _);
        l.as === void 0 && (l.as = l.toString()), y[l.as] = _(r, S, d);
      }), { status: 1, values: [y] };
    }, S.srch.REF = function(r) {
      return { status: 1, values: [S.databases[S.useid].objects[r]] };
    }, S.srch.OUT = function(r) {
      return r.$out && 0 < r.$out.length ? { status: 1, values: r.$out.map(function(p) {
        return S.databases[S.useid].objects[p];
      }) } : { status: -1, values: [] };
    }, S.srch.OUTOUT = function(r) {
      var p;
      return r.$out && 0 < r.$out.length ? (p = [], r.$out.forEach(function(m) {
        m = S.databases[S.useid].objects[m], m && m.$out && 0 < m.$out.length && m.$out.forEach(function(d) {
          p = p.concat(S.databases[S.useid].objects[d]);
        });
      }), { status: 1, values: p }) : { status: -1, values: [] };
    }, S.srch.IN = function(r) {
      return r.$in && 0 < r.$in.length ? { status: 1, values: r.$in.map(function(p) {
        return S.databases[S.useid].objects[p];
      }) } : { status: -1, values: [] };
    }, S.srch.ININ = function(r) {
      var p;
      return r.$in && 0 < r.$in.length ? (p = [], r.$in.forEach(function(m) {
        m = S.databases[S.useid].objects[m], m && m.$in && 0 < m.$in.length && m.$in.forEach(function(d) {
          p = p.concat(S.databases[S.useid].objects[d]);
        });
      }), { status: 1, values: p }) : { status: -1, values: [] };
    }, S.srch.AS = function(r, p) {
      return { status: 1, values: [S.vars[p[0]] = r] };
    }, S.srch.AT = function(r, p) {
      return { status: 1, values: [S.vars[p[0]]] };
    }, S.srch.CLONEDEEP = function(r) {
      return { status: 1, values: [qo(r)] };
    }, S.srch.SET = function(r, p, m, d) {
      return p = p.map(function(y) {
        return y.method === "@" ? "alasql.vars['" + y.variable + "']=" + y.expression.toJS("x", "") : y.method === "$" ? "params['" + y.variable + "']=" + y.expression.toJS("x", "") : "x['" + y.column.columnid + "']=" + y.expression.toJS("x", "");
      }).join(";"), new Function("x,params,alasql", p)(r, d, S), { status: 1, values: [r] };
    }, S.srch.ROW = function(r, p, m, d) {
      var y = (y = "var y;return [") + p.map(function(l) {
        return l.toJS("x", "");
      }).join(",") + "]";
      return { status: 1, values: [new Function("x,params,alasql", y)(r, d, S)] };
    }, S.srch.D3 = function(r) {
      return r.$node !== "VERTEX" && r.$node === "EDGE" && (r.source = r.$in[0], r.target = r.$out[0]), { status: 1, values: [r] };
    };
    function Es(r, p, m) {
      var d;
      if (0 <= p ? ((d = m.sources[p]).data = r, typeof d.data == "function" && (d.getfn = d.data, d.dontcache = d.getfn.dontcache, d.joinmode != "OUTER" && d.joinmode != "RIGHT" && d.joinmode != "ANTI" || (d.dontcache = !1), d.data = {})) : m.queriesdata[-p - 1] = ba(r), m.sourceslen--, !(0 < m.sourceslen))
        return Ca(m);
    }
    function Ca(r) {
      var p, m, d, y, l, _ = r.scope;
      if (jo(r), r.data = [], r.xgroups = {}, r.groups = [], function Zt(jt, L1, x1) {
        if (x1 >= jt.sources.length)
          jt.wherefn(L1, jt.params, S) && (jt.groupfn ? jt.groupfn(L1, jt.params, S) : jt.data.push(jt.selectfn(L1, jt.params, S)));
        else if (jt.sources[x1].applyselect)
          (m1 = jt.sources[x1]).applyselect(jt.params, function(u) {
            if (0 < u.length)
              for (var o = 0; o < u.length; o++)
                L1[m1.alias] = u[o], Zt(jt, L1, x1 + 1);
            else
              m1.applymode == "OUTER" && (L1[m1.alias] = {}, Zt(jt, L1, x1 + 1));
          }, L1);
        else {
          var m1 = jt.sources[x1], zt = jt.sources[x1 + 1], Yn = m1.alias || m1.tableid, lt = !1, Dr = m1.data, Ar = !1, zr = (m1.getfn && (!m1.getfn || m1.dontcache) || m1.joinmode == "RIGHT" || m1.joinmode == "OUTER" || m1.joinmode == "ANTI" || m1.optimization != "ix" || (Dr = m1.ix[m1.onleftfn(L1, jt.params, S)] || [], Ar = !0), 0);
          if (Dr === void 0)
            throw new Error("Data source number " + x1 + " in undefined");
          for (var z1 = Dr.length; (Kn = Dr[zr]) || !Ar && m1.getfn && (Kn = m1.getfn(zr)) || zr < z1; ) {
            Ar || !m1.getfn || m1.dontcache || (Dr[zr] = Kn), L1[Yn] = Kn;
            var N1, ji, Zr = !m1.onleftfn;
            Zr || (N1 = m1.onleftfn(L1, jt.params, S), ji = m1.onrightfn(L1, jt.params, S), (N1 instanceof String || N1 instanceof Number) && (N1 = N1.valueOf()), (ji instanceof String || ji instanceof Number) && (ji = N1.valueOf()), Zr = N1 == ji), Zr && m1.onmiddlefn(L1, jt.params, S) && (m1.joinmode != "SEMI" && m1.joinmode != "ANTI" && Zt(jt, L1, x1 + 1), m1.joinmode != "LEFT" && m1.joinmode != "INNER" && (Kn._rightjoin = !0), lt = !0), zr++;
          }
          if (m1.joinmode != "LEFT" && m1.joinmode != "OUTER" && m1.joinmode != "SEMI" || lt || (L1[Yn] = {}, Zt(jt, L1, x1 + 1)), x1 == 0)
            for (var Js = x1 + 1; Js < jt.sources.length; Js++) {
              if (zt.joinmode == "OUTER" || zt.joinmode == "RIGHT" || zt.joinmode == "ANTI") {
                L1[m1.alias] = {};
                for (var Kn, e = 0, t = zt.data.length; (Kn = zt.data[e]) || zt.getfn && (Kn = zt.getfn(e)) || e < t; )
                  zt.getfn && !zt.dontcache && (zt.data[e] = Kn), Kn._rightjoin ? delete Kn._rightjoin : (L1[zt.alias] = Kn, Zt(jt, L1, Js + 1)), e++;
              }
              m1 = jt.sources[Js], zt = jt.sources[Js + 1];
            }
          L1[Yn] = void 0;
        }
      }(r, _, 0), r.groupfn) {
        r.data = [], r.groups.length === 0 && r.allgroups.length === 0 && (k = {}, 0 < r.selectGroup.length && r.selectGroup.forEach(function(Zt) {
          Zt.aggregatorid == "COUNT" || Zt.aggregatorid == "SUM" ? k[Zt.nick] = 0 : k[Zt.nick] = void 0;
        }), r.groups = [k]), 0 < r.aggrKeys.length && (p = "", r.aggrKeys.forEach(function(Zt) {
          p += "g['" + Zt.nick + "']=alasql.aggr['" + Zt.funcid + "'](undefined,g['" + Zt.nick + "'],3);";
        }), m = new Function("g,params,alasql", "var y;" + p));
        for (var h = 0, O = r.groups.length; h < O; h++) {
          var D, k = r.groups[h];
          m && m(k, r.params, S), r.havingfn && !r.havingfn(k, r.params, S) || (D = r.selectgfn(k, r.params, S), r.data.push(D));
        }
      }
      var z = r;
      if (z.distinct) {
        for (var H, ie = {}, J = Object.keys(z.data[0] || []), ne = 0, se = z.data.length; ne < se; ne++) {
          var ee = J.map(function(Zt) {
            return z.data[ne][Zt];
          }).join("`");
          ie[ee] = z.data[ne];
        }
        for (H in z.data = [], ie)
          z.data.push(ie[H]);
      }
      if (r.unionallfn) {
        if (r.corresponding)
          r.unionallfn.query.modifier || (r.unionallfn.query.modifier = void 0), ut = r.unionallfn(r.params);
        else
          for (r.unionallfn.query.modifier || (r.unionallfn.query.modifier = "RECORDSET"), ut = [], O = (kt = r.unionallfn(r.params)).data.length, h = 0; h < O; h++) {
            for (var nt = {}, tt = Math.min(r.columns.length, kt.columns.length) - 1; 0 <= tt; tt--)
              nt[r.columns[tt].columnid] = kt.data[h][kt.columns[tt].columnid];
            ut.push(nt);
          }
        r.data = r.data.concat(ut);
      } else if (r.unionfn) {
        if (r.corresponding)
          r.unionfn.query.modifier || (r.unionfn.query.modifier = "ARRAY"), ut = r.unionfn(r.params);
        else
          for (r.unionfn.query.modifier || (r.unionfn.query.modifier = "RECORDSET"), ut = [], O = (kt = r.unionfn(r.params)).data.length, h = 0; h < O; h++) {
            nt = {};
            for (var rt = Math.min(r.columns.length, kt.columns.length), tt = 0; tt < rt; tt++)
              nt[r.columns[tt].columnid] = kt.data[h][kt.columns[tt].columnid];
            ut.push(nt);
          }
        r.data = P3(r.data, ut);
      } else if (r.exceptfn) {
        if (r.corresponding) {
          r.exceptfn.query.modifier || (r.exceptfn.query.modifier = "ARRAY");
          var ut = r.exceptfn(r.params);
        } else {
          r.exceptfn.query.modifier || (r.exceptfn.query.modifier = "RECORDSET");
          for (var kt, ut = [], h = 0, O = (kt = r.exceptfn(r.params)).data.length; h < O; h++) {
            for (nt = {}, tt = Math.min(r.columns.length, kt.columns.length) - 1; 0 <= tt; tt--)
              nt[r.columns[tt].columnid] = kt.data[h][kt.columns[tt].columnid];
            ut.push(nt);
          }
        }
        r.data = Za(r.data, ut);
      } else if (r.intersectfn) {
        if (r.corresponding)
          r.intersectfn.query.modifier || (r.intersectfn.query.modifier = void 0), ut = r.intersectfn(r.params);
        else
          for (r.intersectfn.query.modifier || (r.intersectfn.query.modifier = "RECORDSET"), ut = [], O = (kt = r.intersectfn(r.params)).data.length, h = 0; h < O; h++) {
            for (nt = {}, rt = Math.min(r.columns.length, kt.columns.length), tt = 0; tt < rt; tt++)
              nt[r.columns[tt].columnid] = kt.data[h][kt.columns[tt].columnid];
            ut.push(nt);
          }
        r.data = K1(r.data, ut);
      }
      if (r.orderfn && (r.explain && (d = Date.now()), r.data = r.data.sort(r.orderfn), r.explain && r.explaination.push({ explid: r.explid++, description: "QUERY BY", ms: Date.now() - d })), _ = r, _.limit && (d = 0, _.offset && (d = (d = 0 | _.offset || 0) < 0 ? 0 : d), y = _.percent ? (_.data.length * _.limit / 100 | 0) + d : (0 | _.limit) + d, _.data = _.data.slice(d, y)), typeof angular < "u" && r.removeKeys.push("$$hashKey"), 0 < r.removeKeys.length) {
        var S1 = r.removeKeys;
        if (0 < (rt = S1.length))
          for (O = r.data.length, h = 0; h < O; h++)
            for (tt = 0; tt < rt; tt++)
              delete r.data[h][S1[tt]];
        0 < r.columns.length && (r.columns = r.columns.filter(function(Zt) {
          var jt = !1;
          return S1.forEach(function(L1) {
            Zt.columnid == L1 && (jt = !0);
          }), !jt;
        }));
      }
      if (r.removeLikeKeys !== void 0 && 0 < r.removeLikeKeys.length) {
        for (var g1 = r.removeLikeKeys, h = 0, O = r.data.length; h < O; h++)
          for (var y1 in nt = r.data[h])
            for (tt = 0; tt < r.removeLikeKeys.length; tt++)
              S.utils.like(r.removeLikeKeys[tt], y1) && delete nt[y1];
        0 < r.columns.length && (r.columns = r.columns.filter(function(Zt) {
          var jt = !1;
          return g1.forEach(function(L1) {
            S.utils.like(L1, Zt.columnid) && (jt = !0);
          }), !jt;
        }));
      }
      if (r.pivotfn && r.pivotfn(), r.unpivotfn && r.unpivotfn(), r.intoallfn)
        return l = r.intoallfn(r.columns, r.cb, r.params, r.alasql);
      if (r.intofn) {
        for (O = r.data.length, h = 0; h < O; h++)
          r.intofn(r.data[h], h, r.params, r.alasql);
        return r.cb && r.cb(r.data.length, r.A, r.B), r.data.length;
      }
      return l = r.data, l = r.cb ? r.cb(r.data, r.A, r.B) : l;
    }
    S.srch.ORDERBY = function(r, p) {
      return { status: 1, values: r.sort(function(m) {
        var d, y, l;
        if (m)
          return m.length === 1 && m[0].expression && typeof m[0].expression == "function" ? (d = m[0].expression, function(_, h) {
            return _ = d(_), h = d(h), h < _ ? 1 : _ === h ? 0 : -1;
          }) : (l = y = "", m.forEach(function(_) {
            var h, O = "";
            _.expression instanceof $.NumValue && (_.expression = self.columns[_.expression.value - 1]), y = _.expression instanceof $.Column ? (h = _.expression.columnid, S.options.valueof && (O = ".valueOf()"), _.nocase && (O += ".toUpperCase()"), h === "_" ? y + ("if(a" + O + (_.direction === "ASC" ? ">" : "<")) + "b" + O + ")return 1;if(a" + O + "==b" + O + "){" : y + ("if((a['" + h + "']||'')" + O + (_.direction === "ASC" ? ">" : "<")) + "(b['" + h + "']||'')" + O + ")return 1;if((a['" + h + "']||'')" + O + "==(b['" + h + "']||'')" + O + "){") : (O = ".valueOf()", _.nocase && (O += ".toUpperCase()"), (y += "if((" + _.toJS("a", "") + "||'')" + O + (_.direction === "ASC" ? ">(" : "<(") + _.toJS("b", "") + "||'')" + O + ")return 1;") + "if((" + _.toJS("a", "") + "||'')" + O + "==(" + _.toJS("b", "") + "||'')" + O + "){"), l += "}";
          }), y = y + "return 0;" + l + "return -1", new Function("a,b", y));
      }(p)) };
    };
    var jo = function(r) {
      for (var p = 0, m = r.sources.length; p < m; p++) {
        var d, y = r.sources[p];
        if (delete y.ix, 0 < p && y.optimization == "ix" && y.onleftfn && y.onrightfn) {
          if (y.databaseid && S.databases[y.databaseid].tables[y.tableid] && (S.databases[y.databaseid].tables[y.tableid].indices || (r.database.tables[y.tableid].indices = {}), d = S.databases[y.databaseid].tables[y.tableid].indices[w2(y.onrightfns + "`" + y.srcwherefns)], !S.databases[y.databaseid].tables[y.tableid].dirty && d && (y.ix = d)), !y.ix) {
            y.ix = {};
            for (var l, _, h = {}, O = 0, D = y.data.length; (l = y.data[O]) || y.getfn && (l = y.getfn(O)) || O < D; )
              y.getfn && !y.dontcache && (y.data[O] = l), h[y.alias || y.tableid] = l, y.srcwherefn(h, r.params, S) && (_ = y.onrightfn(h, r.params, S), (y.ix[_] || (y.ix[_] = [])).push(l)), O++;
            y.databaseid && S.databases[y.databaseid].tables[y.tableid] && (S.databases[y.databaseid].tables[y.tableid].indices[w2(y.onrightfns + "`" + y.srcwherefns)] = y.ix);
          }
        } else if (y.wxleftfn) {
          if (S.databases[y.databaseid].engineid || (d = S.databases[y.databaseid].tables[y.tableid].indices[w2(y.wxleftfns + "`")]), !S.databases[y.databaseid].tables[y.tableid].dirty && d)
            y.ix = d, y.data = y.ix[y.wxrightfn(null, r.params, S)];
          else {
            for (y.ix = {}, h = {}, O = 0, D = y.data.length; (l = y.data[O]) || y.getfn && (l = y.getfn(O)) || O < D; )
              y.getfn && !y.dontcache && (y.data[O] = l), h[y.alias || y.tableid] = y.data[O], _ = y.wxleftfn(h, r.params, S), (y.ix[_] || (y.ix[_] = [])).push(y.data[O]), O++;
            S.databases[y.databaseid].engineid || (S.databases[y.databaseid].tables[y.tableid].indices[w2(y.wxleftfns + "`")] = y.ix);
          }
          y.srcwherefns && (y.data ? (h = {}, y.data = y.data.filter(function(z) {
            return h[y.alias] = z, y.srcwherefn(h, r.params, S);
          })) : y.data = []);
        } else if (y.srcwherefns && !y.dontcache)
          if (y.data) {
            for (var h = {}, k = (y.data = y.data.filter(function(H) {
              return h[y.alias] = H, y.srcwherefn(h, r.params, S);
            }), h = {}, O = 0, D = y.data.length, []); (l = y.data[O]) || y.getfn && (l = y.getfn(O)) || O < D; )
              y.getfn && !y.dontcache && (y.data[O] = l), h[y.alias] = l, y.srcwherefn(h, r.params, S) && k.push(l), O++;
            y.data = k;
          } else
            y.data = [];
        y.databaseid && S.databases[y.databaseid].tables[y.tableid];
      }
    };
    function ya(r, p) {
      if (p !== void 0 && typeof p != "number" && typeof p != "string" && typeof p != "boolean") {
        var m = r.modifier || S.options.modifier, d = r.columns;
        if (d === void 0 || d.length == 0)
          if (0 < p.length) {
            for (var y = {}, l = Math.min(p.length, S.options.columnlookup || 10) - 1; 0 <= l; l--)
              for (var _ in p[l])
                y[_] = !0;
            d = Object.keys(y).map(function(ie) {
              return { columnid: ie };
            });
          } else
            d = [];
        if (m === "VALUE")
          p = 0 < p.length ? (_ = d && 0 < d.length ? d[0].columnid : Object.keys(p[0])[0], p[0][_]) : void 0;
        else if (m === "ROW")
          if (0 < p.length) {
            var h = [];
            for (_ in p[0])
              h.push(p[0][_]);
            p = h;
          } else
            p = void 0;
        else if (m === "COLUMN") {
          var O = [];
          if (0 < p.length) {
            _ = d && 0 < d.length ? d[0].columnid : Object.keys(p[0])[0];
            for (var l = 0, D = p.length; l < D; l++)
              O.push(p[l][_]);
          }
          p = O;
        } else if (m === "MATRIX") {
          for (O = [], l = 0; l < p.length; l++) {
            for (var h = [], k = p[l], z = 0; z < d.length; z++)
              h.push(k[d[z].columnid]);
            O.push(h);
          }
          p = O;
        } else if (m === "INDEX") {
          for (var O = {}, H = d && 0 < d.length ? (_ = d[0].columnid, d[1].columnid) : (_ = (r = Object.keys(p[0]))[0], r[1]), l = 0, D = p.length; l < D; l++)
            O[p[l][_]] = p[l][H];
          p = O;
        } else if (m === "RECORDSET")
          p = new S.Recordset({ columns: d, data: p });
        else if (m === "TEXTSTRING") {
          for (_ = d && 0 < d.length ? d[0].columnid : Object.keys(p[0])[0], l = 0, D = p.length; l < D; l++)
            p[l] = p[l][_];
          p = p.join(`
`);
        }
      }
      return p;
    }
    function e3(r, p, m) {
      var d = "", y = [], l = {};
      return p.forEach(function(_) {
        var h;
        r.ixsources = {}, r.sources.forEach(function(O) {
          r.ixsources[O.alias] = O;
        }), r.ixsources[_] && (h = r.ixsources[_].columns), m && S.options.joinstar == "json" && (d += "r['" + _ + "']={};"), h && 0 < h.length ? h.forEach(function(O) {
          m && S.options.joinstar == "underscore" ? y.push("'" + _ + "_" + O.columnid + "':p['" + _ + "']['" + O.columnid + "']") : m && S.options.joinstar == "json" ? d += "r['" + _ + "']['" + O.columnid + "']=p['" + _ + "']['" + O.columnid + "'];" : (k = "p['" + _ + "']['" + O.columnid + "']", l[O.columnid] ? (D = k + " !== undefined ? " + k + " : " + l[O.columnid].value, y[l[O.columnid].id] = l[O.columnid].key + D, l[O.columnid].value = D) : (D = "'" + O.columnid + "':", y.push(D + k), l[O.columnid] = { id: y.length - 1, value: k, key: D })), r.selectColumns[Q1(O.columnid)] = !0;
          var D, k = { columnid: O.columnid, dbtypeid: O.dbtypeid, dbsize: O.dbsize, dbprecision: O.dbprecision, dbenum: O.dbenum };
          r.columns.push(k), r.xcolumns[k.columnid] = k;
        }) : (d += 'var w=p["' + _ + '"];for(var k in w){r[k]=w[k]};', r.dirtyColumns = !0);
      }), { s: y.join(","), sp: d };
    }
    $.Select = function(r) {
      return $.extend(this, r);
    }, $.Select.prototype.toString = function() {
      var r = "";
      return this.explain && (r += "EXPLAIN "), r += "SELECT ", this.modifier && (r += this.modifier + " "), this.distinct && (r += "DISTINCT "), this.top && (r += "TOP " + this.top.value + " ", this.percent && (r += "PERCENT ")), r += this.columns.map(function(p) {
        var m = p.toString();
        return p.as !== void 0 && (m += " AS " + p.as), m;
      }).join(", "), this.from && (r += " FROM " + this.from.map(function(p) {
        var m = p.toString();
        return p.as && (m += " AS " + p.as), m;
      }).join(",")), this.joins && (r += this.joins.map(function(p) {
        var m = " ";
        if (p.joinmode && (m += p.joinmode + " "), p.table)
          m += "JOIN " + p.table.toString();
        else if (p.select)
          m += "JOIN (" + p.select.toString() + ")";
        else {
          if (!(p instanceof S.yy.Apply))
            throw new Error("Wrong type in JOIN mode");
          m += p.toString();
        }
        return p.as && (m += " AS " + p.as), p.using && (m += " USING " + p.using.toString()), p.on && (m += " ON " + p.on.toString()), m;
      }).join("")), this.where && (r += " WHERE " + this.where.toString()), this.group && 0 < this.group.length && (r += " GROUP BY " + this.group.map(function(p) {
        return p.toString();
      }).join(", ")), this.having && (r += " HAVING " + this.having.toString()), this.order && 0 < this.order.length && (r += " ORDER BY " + this.order.map(function(p) {
        return p.toString();
      }).join(", ")), this.limit && (r += " LIMIT " + this.limit.value), this.offset && (r += " OFFSET " + this.offset.value), this.union && (r += " UNION " + (this.corresponding ? "CORRESPONDING " : "") + this.union.toString()), this.unionall && (r += " UNION ALL " + (this.corresponding ? "CORRESPONDING " : "") + this.unionall.toString()), this.except && (r += " EXCEPT " + (this.corresponding ? "CORRESPONDING " : "") + this.except.toString()), this.intersect && (r += " INTERSECT " + (this.corresponding ? "CORRESPONDING " : "") + this.intersect.toString()), r;
    }, $.Select.prototype.toJS = function(r) {
      return "alasql.utils.flatArray(this.queriesfn[" + (this.queriesidx - 1) + "](this.params,null," + r + "))[0]";
    }, $.Select.prototype.compile = function(r, p) {
      function m(l, _, h) {
        var O, D, k, z, H;
        return y.params = l, l = h, h = function(ie, J) {
          if (J)
            return _(J, null);
          if (0 < y.rownums.length)
            for (var ne = 0, se = ie.length; ne < se; ne++)
              for (var ee = 0, nt = y.rownums.length; ee < nt; ee++)
                ie[ne][y.rownums[ee]] = ne + 1;
          return J = ya(y, ie), _ && _(J), J;
        }, (O = y).sources.length, O.sourceslen = O.sources.length, H = O.sourceslen, (O.query = O).A = D, O.B = k, O.cb = h, O.oldscope = l, O.queriesfn && (O.sourceslen += O.queriesfn.length, H += O.queriesfn.length, O.queriesdata = [], O.queriesfn.forEach(function(ie, J) {
          ie.query.params = O.params, Es([], -J - 1, O);
        })), D = l ? qo(l) : {}, O.scope = D, O.sources.forEach(function(ie, J) {
          ie.query = O, J = ie.datafn(O, O.params, Es, J, S), J !== void 0 && ((O.intofn || O.intoallfn) && Array.isArray(J) && (J = J.length), z = J), ie.queriesdata = O.queriesdata;
        }), z = O.sources.length != 0 && H !== 0 ? z : Ca(O);
      }
      var d = S.databases[r], y = new v3();
      return y.removeKeys = [], y.aggrKeys = [], y.explain = this.explain, y.explaination = [], y.explid = 1, y.modifier = this.modifier, y.database = d, this.compileWhereExists(y), this.compileQueries(y), y.defcols = this.compileDefCols(y, r), y.fromfn = this.compileFrom(y), this.joins && this.compileJoins(y), y.rownums = [], this.compileSelectGroup0(y), this.group || 0 < y.selectGroup.length ? y.selectgfns = this.compileSelectGroup1(y) : y.selectfns = this.compileSelect1(y, p), this.compileRemoveColumns(y), this.where && this.compileWhereJoins(y), y.wherefn = this.compileWhere(y), (this.group || 0 < y.selectGroup.length) && (y.groupfn = this.compileGroup(y)), this.having && (y.havingfn = this.compileHaving(y)), this.order && (y.orderfn = this.compileOrder(y, p)), this.group || 0 < y.selectGroup.length ? y.selectgfn = this.compileSelectGroup2(y) : y.selectfn = this.compileSelect2(y, p), y.distinct = this.distinct, this.pivot && (y.pivotfn = this.compilePivot(y)), this.unpivot && (y.pivotfn = this.compileUnpivot(y)), this.top ? y.limit = this.top.value : this.limit && (y.limit = this.limit.value, this.offset && (y.offset = this.offset.value)), y.percent = this.percent, y.corresponding = this.corresponding, this.union ? (y.unionfn = this.union.compile(r), this.union.order ? y.orderfn = this.union.compileOrder(y, p) : y.orderfn = null) : this.unionall ? (y.unionallfn = this.unionall.compile(r), this.unionall.order ? y.orderfn = this.unionall.compileOrder(y, p) : y.orderfn = null) : this.except ? (y.exceptfn = this.except.compile(r), this.except.order ? y.orderfn = this.except.compileOrder(y, p) : y.orderfn = null) : this.intersect && (y.intersectfn = this.intersect.compile(r), this.intersect.order ? y.intersectfn = this.intersect.compileOrder(y, p) : y.orderfn = null), this.into && (this.into instanceof $.Table ? S.options.autocommit && S.databases[this.into.databaseid || r].engineid ? y.intoallfns = 'return alasql.engines["' + S.databases[this.into.databaseid || r].engineid + '"].intoTable("' + (this.into.databaseid || r) + '","' + this.into.tableid + '",this.data, columns, cb);' : y.intofns = "alasql.databases['" + (this.into.databaseid || r) + "'].tables['" + this.into.tableid + "'].data.push(r);" : this.into instanceof $.VarValue ? y.intoallfns = 'alasql.vars["' + this.into.variable + '"]=this.data;res=this.data.length;if(cb)res=cb(res);return res;' : this.into instanceof $.FuncValue ? (d = "return alasql.into[" + JSON.stringify(this.into.funcid.toUpperCase()) + "](", this.into.args && 0 < this.into.args.length ? (d += this.into.args[0].toJS() + ",", 1 < this.into.args.length ? d += this.into.args[1].toJS() + "," : d += "undefined,") : d += "undefined, undefined,", y.intoallfns = d + "this.data,columns,cb)") : this.into instanceof $.ParamValue && (y.intofns = "params['" + this.into.param + "'].push(r)"), y.intofns ? y.intofn = new Function("r,i,params,alasql", "var y;" + y.intofns) : y.intoallfns && (y.intoallfn = new Function("columns,cb,params,alasql", "var y;" + y.intoallfns))), m.query = y, m;
    }, $.Select.prototype.execute = function(r, p, m) {
      return this.compile(r)(p, m);
    }, $.ExistsValue = function(r) {
      return $.extend(this, r);
    }, $.ExistsValue.prototype.toString = function() {
      return "EXISTS(" + this.value.toString() + ")";
    }, $.ExistsValue.prototype.toType = function() {
      return "boolean";
    }, $.ExistsValue.prototype.toJS = function(r, p, m) {
      return "this.existsfn[" + this.existsidx + "](params,null," + r + ").data.length";
    }, $.Select.prototype.compileWhereExists = function(r) {
      this.exists && (r.existsfn = this.exists.map(function(p) {
        return p = p.compile(r.database.databaseid), p.query.modifier = "RECORDSET", p;
      }));
    }, $.Select.prototype.compileQueries = function(r) {
      this.queries && (r.queriesfn = this.queries.map(function(p) {
        return p = p.compile(r.database.databaseid), p.query.modifier = "RECORDSET", p;
      }));
    }, S.precompile = function(r, p, m) {
      r && (r.params = m, r.queries && (r.queriesfn = r.queries.map(function(d) {
        return d = d.compile(p || r.database.databaseid), d.query.modifier = "RECORDSET", d;
      })), r.exists && (r.existsfn = r.exists.map(function(d) {
        return d = d.compile(p || r.database.databaseid), d.query.modifier = "RECORDSET", d;
      })));
    }, $.Select.prototype.compileFrom = function(r) {
      r.sources = [], r.aliases = {}, this.from && (this.from.forEach(function(p) {
        var m = "", d = p.as || p.tableid;
        if (p instanceof $.Table)
          r.aliases[d] = { tableid: p.tableid, databaseid: p.databaseid || r.database.databaseid, type: "table" };
        else if (p instanceof $.Select)
          r.aliases[d] = { type: "subquery" };
        else if (p instanceof $.Search)
          r.aliases[d] = { type: "subsearch" };
        else if (p instanceof $.ParamValue)
          r.aliases[d] = { type: "paramvalue" };
        else if (p instanceof $.FuncValue)
          r.aliases[d] = { type: "funcvalue" };
        else if (p instanceof $.VarValue)
          r.aliases[d] = { type: "varvalue" };
        else if (p instanceof $.FromData)
          r.aliases[d] = { type: "fromdata" };
        else if (p instanceof $.Json)
          r.aliases[d] = { type: "json" };
        else {
          if (!p.inserted)
            throw new Error("Wrong table at FROM");
          r.aliases[d] = { type: "inserted" };
        }
        var y = { alias: d, databaseid: p.databaseid || r.database.databaseid, tableid: p.tableid, joinmode: "INNER", onmiddlefn: wn, srcwherefns: "", srcwherefn: wn };
        if (p instanceof $.Table)
          y.columns = S.databases[y.databaseid].tables[y.tableid].columns, S.options.autocommit && S.databases[y.databaseid].engineid && !S.databases[y.databaseid].tables[y.tableid].view ? y.datafn = function(l, _, h, O, D) {
            return D.engines[D.databases[y.databaseid].engineid].fromTable(y.databaseid, y.tableid, h, O, l);
          } : S.databases[y.databaseid].tables[y.tableid].view ? y.datafn = function(l, _, h, O, D) {
            return D = D.databases[y.databaseid].tables[y.tableid].select(_), D = h ? h(D, O, l) : D;
          } : y.datafn = function(l, _, h, O, D) {
            return D = D.databases[y.databaseid].tables[y.tableid].data, D = h ? h(D, O, l) : D;
          };
        else if (p instanceof $.Select)
          y.subquery = p.compile(r.database.databaseid), y.subquery.query.modifier === void 0 && (y.subquery.query.modifier = "RECORDSET"), y.columns = y.subquery.query.columns, y.datafn = function(l, _, h, O, D) {
            var k;
            return y.subquery(l.params, function(z) {
              return k = z.data, k = h ? h(k, O, l) : k;
            }), k;
          };
        else if (p instanceof $.Search)
          y.subsearch = p, y.columns = [], y.datafn = function(l, _, h, O, D) {
            var k;
            return y.subsearch.execute(l.database.databaseid, l.params, function(z) {
              return k = z, k = h ? h(k, O, l) : k;
            }), k;
          };
        else if (p instanceof $.ParamValue)
          m = "var res = alasql.prepareFromData(params['" + p.param + "']", p.array && (m += ",true"), m += ");if(cb)res=cb(res,idx,query);return res", y.datafn = new Function("query,params,cb,idx,alasql", m);
        else if (p.inserted)
          m = "var res = alasql.prepareFromData(alasql.inserted", p.array && (m += ",true"), m += ");if(cb)res=cb(res,idx,query);return res", y.datafn = new Function("query,params,cb,idx,alasql", m);
        else if (p instanceof $.Json)
          m = "var res = alasql.prepareFromData(" + p.toJS(), p.array && (m += ",true"), m += ");if(cb)res=cb(res,idx,query);return res", y.datafn = new Function("query,params,cb,idx,alasql", m);
        else if (p instanceof $.VarValue)
          m = "var res = alasql.prepareFromData(alasql.vars['" + p.variable + "']", p.array && (m += ",true"), m += ");if(cb)res=cb(res,idx,query);return res", y.datafn = new Function("query,params,cb,idx,alasql", m);
        else if (p instanceof $.FuncValue)
          m = "var res=alasql.from[" + JSON.stringify(p.funcid.toUpperCase()) + "](", p.args && 0 < p.args.length ? (p.args[0] ? m += p.args[0].toJS("query.oldscope") + "," : m += "null,", p.args[1] ? m += p.args[1].toJS("query.oldscope") + "," : m += "null,") : m += "null,null,", m += "cb,idx,query);/*if(cb)res=cb(res,idx,query);*/return res", y.datafn = new Function("query, params, cb, idx, alasql", m);
        else {
          if (!(p instanceof $.FromData))
            throw new Error("Wrong table at FROM");
          y.datafn = function(l, _, h, O, D) {
            var k = p.data;
            return k = h ? h(k, O, l) : k;
          };
        }
        r.sources.push(y);
      }), r.defaultTableid = r.sources[0].alias);
    }, S.prepareFromData = function(r, p) {
      var m, d, y = r;
      if (typeof r == "string") {
        if (y = r.split(/\r?\n/), p)
          for (m = 0, d = y.length; m < d; m++)
            y[m] = [y[m]];
      } else if (p)
        for (y = [], m = 0, d = r.length; m < d; m++)
          y.push([r[m]]);
      else if (typeof r == "object" && !Array.isArray(r))
        if (typeof Mongo < "u" && Mongo.Collection !== void 0 && r instanceof Mongo.Collection)
          y = r.find().fetch();
        else
          for (var l in y = [], r)
            r.hasOwnProperty(l) && y.push([l, r[l]]);
      return y;
    }, $.Select.prototype.compileJoins = function(r) {
      this.joins.forEach(function(p) {
        var m;
        if (p.joinmode === "CROSS") {
          if (p.using || p.on)
            throw new Error("CROSS JOIN cannot have USING or ON clauses");
          p.joinmode = "INNER";
        }
        if (p instanceof $.Apply)
          (m = { alias: p.as, applymode: p.applymode, onmiddlefn: wn, srcwherefns: "", srcwherefn: wn, columns: [] }).applyselect = p.select.compile(r.database.databaseid), m.columns = m.applyselect.query.columns, m.datafn = function(z, H, ie, J, ne) {
            var se;
            return se = ie ? ie(se, J, z) : se;
          };
        else {
          if (p.table) {
            if (k = p.table, m = { alias: p.as || k.tableid, databaseid: k.databaseid || r.database.databaseid, tableid: k.tableid, joinmode: p.joinmode, onmiddlefn: wn, srcwherefns: "", srcwherefn: wn, columns: [] }, !S.databases[m.databaseid].tables[m.tableid])
              throw new Error("Table '" + m.tableid + "' is not exists in database '" + m.databaseid + "'");
            m.columns = S.databases[m.databaseid].tables[m.tableid].columns, S.options.autocommit && S.databases[m.databaseid].engineid ? m.datafn = function(z, H, ie, J, ne) {
              return ne.engines[ne.databases[m.databaseid].engineid].fromTable(m.databaseid, m.tableid, ie, J, z);
            } : S.databases[m.databaseid].tables[m.tableid].view ? m.datafn = function(z, H, ie, J, ne) {
              return ne = ne.databases[m.databaseid].tables[m.tableid].select(H), ne = ie ? ie(ne, J, z) : ne;
            } : m.datafn = function(z, H, ie, J, ne) {
              return ne = ne.databases[m.databaseid].tables[m.tableid].data, ne = ie ? ie(ne, J, z) : ne;
            }, r.aliases[m.alias] = { tableid: k.tableid, databaseid: k.databaseid || r.database.databaseid };
          } else
            p.select ? (k = p.select, (m = { alias: p.as, joinmode: p.joinmode, onmiddlefn: wn, srcwherefns: "", srcwherefn: wn, columns: [] }).subquery = k.compile(r.database.databaseid), m.subquery.query.modifier === void 0 && (m.subquery.query.modifier = "RECORDSET"), m.columns = m.subquery.query.columns, m.datafn = function(z, H, ie, J, ne) {
              return m.subquery(z.params, null, ie, J).data;
            }, r.aliases[m.alias] = { type: "subquery" }) : p.param ? (m = { alias: p.as, joinmode: p.joinmode, onmiddlefn: wn, srcwherefns: "", srcwherefn: wn }, D = "var res=alasql.prepareFromData(params['" + p.param.param + "']", p.array && (D += ",true"), D += ");if(cb)res=cb(res, idx, query);return res", m.datafn = new Function("query,params,cb,idx, alasql", D), r.aliases[m.alias] = { type: "paramvalue" }) : p.variable ? (m = { alias: p.as, joinmode: p.joinmode, onmiddlefn: wn, srcwherefns: "", srcwherefn: wn }, D = "var res=alasql.prepareFromData(alasql.vars['" + p.variable + "']", p.array && (D += ",true"), D += ");if(cb)res=cb(res, idx, query);return res", m.datafn = new Function("query,params,cb,idx, alasql", D), r.aliases[m.alias] = { type: "varvalue" }) : p.func && (m = { alias: p.as, joinmode: p.joinmode, onmiddlefn: wn, srcwherefns: "", srcwherefn: wn }, k = "var res=alasql.from[" + JSON.stringify(p.func.funcid.toUpperCase()) + "](", (D = p.func.args) && 0 < D.length ? (D[0] ? k += D[0].toJS("query.oldscope") + "," : k += "null,", D[1] ? k += D[1].toJS("query.oldscope") + "," : k += "null,") : k += "null,null,", k += "cb,idx,query);/*if(cb)res=cb(res,idx,query);*/return res", m.datafn = new Function("query, params, cb, idx, alasql", k), r.aliases[m.alias] = { type: "funcvalue" });
          var d, y, l, _, h = m.alias;
          if (p.natural) {
            if (p.using || p.on)
              throw new Error("NATURAL JOIN cannot have USING or ON clauses");
            if (0 < r.sources.length) {
              var O = r.sources[r.sources.length - 1], D = S.databases[O.databaseid].tables[O.tableid], k = S.databases[m.databaseid].tables[m.tableid];
              if (!D || !k)
                throw new Error("In this version of Alasql NATURAL JOIN works for tables with predefined columns only");
              var D = D.columns.map(function(z) {
                return z.columnid;
              }), k = k.columns.map(function(z) {
                return z.columnid;
              });
              p.using = Ja(D, k).map(function(z) {
                return { columnid: z };
              });
            }
          }
          p.using ? (O = r.sources[r.sources.length - 1], m.onleftfns = p.using.map(function(z) {
            return "p['" + (O.alias || O.tableid) + "']['" + z.columnid + "']";
          }).join('+"`"+'), m.onleftfn = new Function("p,params,alasql", "var y;return " + m.onleftfns), m.onrightfns = p.using.map(function(z) {
            return "p['" + (m.alias || m.tableid) + "']['" + z.columnid + "']";
          }).join('+"`"+'), m.onrightfn = new Function("p,params,alasql", "var y;return " + m.onrightfns), m.optimization = "ix") : p.on && (p.on instanceof $.Op && p.on.op === "=" && !p.on.allsome ? (d = k = D = "", y = !(m.optimization = "ix"), l = p.on.left.toJS("p", r.defaultTableid, r.defcols), _ = p.on.right.toJS("p", r.defaultTableid, r.defcols), -1 < l.indexOf("p['" + h + "']") && !(-1 < _.indexOf("p['" + h + "']")) ? (l.match(/p\['.*?'\]/g) || []).every(function(z) {
            return z === "p['" + h + "']";
          }) ? k = l : y = !0 : !(-1 < l.indexOf("p['" + h + "']")) && -1 < _.indexOf("p['" + h + "']") && (_.match(/p\['.*?'\]/g) || []).every(function(z) {
            return z === "p['" + h + "']";
          }) ? D = l : y = !0, -1 < _.indexOf("p['" + h + "']") && !(-1 < l.indexOf("p['" + h + "']")) ? (_.match(/p\['.*?'\]/g) || []).every(function(z) {
            return z === "p['" + h + "']";
          }) ? k = _ : y = !0 : !(-1 < _.indexOf("p['" + h + "']")) && -1 < l.indexOf("p['" + h + "']") && (l.match(/p\['.*?'\]/g) || []).every(function(z) {
            return z === "p['" + h + "']";
          }) ? D = _ : y = !0, y && (D = k = "", d = p.on.toJS("p", r.defaultTableid, r.defcols), m.optimization = "no"), m.onleftfns = D, m.onrightfns = k, m.onmiddlefns = d || "true", m.onleftfn = new Function("p,params,alasql", "var y;return " + m.onleftfns), m.onrightfn = new Function("p,params,alasql", "var y;return " + m.onrightfns), m.onmiddlefn = new Function("p,params,alasql", "var y;return " + m.onmiddlefns)) : (m.optimization = "no", m.onmiddlefns = p.on.toJS("p", r.defaultTableid, r.defcols), m.onmiddlefn = new Function("p,params,alasql", "var y;return " + p.on.toJS("p", r.defaultTableid, r.defcols))));
        }
        r.sources.push(m);
      });
    }, $.Select.prototype.compileWhere = function(r) {
      var p;
      return this.where ? typeof this.where == "function" ? this.where : (p = this.where.toJS("p", r.defaultTableid, r.defcols), r.wherefns = p, new Function("p,params,alasql", "var y;return " + p)) : function() {
        return !0;
      };
    }, $.Select.prototype.compileWhereJoins = function(r) {
    }, $.Select.prototype.compileGroup = function(r) {
      p = 0 < r.sources.length ? r.sources[0].alias : "";
      var p, m = r.defcols, d = [[]], y = (this.group && (d = Yo(this.group, r)), []), l = (d.forEach(function(_) {
        y = g3(y, _);
      }), r.allgroups = y, r.ingroup = [], "");
      return d.forEach(function(D) {
        l += "var g=this.xgroups[";
        var h = D.map(function(H) {
          var z = H.split("	")[0], H = H.split("	")[1];
          return z === "" ? "1" : (r.ingroup.push(z), H);
        }), h = (h.length === 0 && (h = ["''"]), l = (l = (l = l + h.join('+"`"+') + "];if(!g) {this.groups.push((g=this.xgroups[") + h.join('+"`"+') + "] = {") + D.map(function(H) {
          var z = H.split("	")[0], H = H.split("	")[1];
          return z === "" ? "" : "'" + z + "':" + H + ",";
        }).join(""), F3(y, D)), O = (l += h.map(function(k) {
          return "'" + k.split("	")[0] + "':null,";
        }).join(""), ""), D = "";
        r.groupStar !== void 0 && (D += "for(var f in p['" + r.groupStar + "']) {g[f]=p['" + r.groupStar + "'][f];};"), l = (l = (l += r.selectGroup.map(function(k) {
          var z = k.expression.toJS("p", p, m), H = k.nick;
          return k instanceof $.AggrValue ? (k.distinct && (O += ",g['$$_VALUES_" + H + "']={},g['$$_VALUES_" + H + "'][" + z + "]=true"), k.aggregatorid === "SUM" ? "'" + H + "':(" + z + ")||0," : k.aggregatorid === "MIN" || k.aggregatorid === "MAX" || k.aggregatorid === "FIRST" || k.aggregatorid === "LAST" ? "'" + H + "':" + z + "," : k.aggregatorid === "ARRAY" ? "'" + H + "':[" + z + "]," : k.aggregatorid === "COUNT" ? k.expression.columnid === "*" ? "'" + H + "':1," : "'" + H + "':(typeof " + z + ' == "undefined" || ' + z + " === null) ? 0 : 1," : k.aggregatorid === "AVG" ? (r.removeKeys.push("_SUM_" + H), r.removeKeys.push("_COUNT_" + H), "'" + H + "':" + z + ",'_SUM_" + H + "':(" + z + ")||0,'_COUNT_" + H + "':(typeof " + z + ' == "undefined" || ' + z + " === null) ? 0 : 1,") : k.aggregatorid === "AGGR" ? (O += ",g['" + H + "']=" + k.expression.toJS("g", -1), "") : k.aggregatorid === "REDUCE" ? (r.aggrKeys.push(k), "'" + H + "':alasql.aggr['" + k.funcid + "'](" + z + ",undefined,1),") : "") : "";
        }).join("")) + "}" + O + ",g));" + D + "} else {") + r.selectGroup.map(function(k) {
          var z, H, ie = k.nick, J = k.expression.toJS("p", p, m);
          return k instanceof $.AggrValue ? (H = z = "", k.distinct && (z = "if(typeof " + J + `!="undefined" && (!g['$$_VALUES_` + ie + "'][" + J + "])) {", H = "g['$$_VALUES_" + ie + "'][" + J + "]=true;}"), k.aggregatorid === "SUM" ? z + "g['" + ie + "']+=(" + J + "||0);" + H : k.aggregatorid === "COUNT" ? k.expression.columnid === "*" ? z + "g['" + ie + "']++;" + H : z + "if(typeof " + J + '!="undefined" && ' + J + " !== null) g['" + ie + "']++;" + H : k.aggregatorid === "ARRAY" ? z + "g['" + ie + "'].push(" + J + ");" + H : k.aggregatorid === "MIN" ? z + "if ((y=" + J + ") < g['" + ie + "']) g['" + ie + "'] = y;" + H : k.aggregatorid === "MAX" ? z + "if ((y=" + J + ") > g['" + ie + "']) g['" + ie + "'] = y;" + H : k.aggregatorid === "FIRST" ? "" : k.aggregatorid === "LAST" ? z + "g['" + ie + "']=" + J + ";" + H : k.aggregatorid === "AVG" ? z + "g['_SUM_" + ie + "']+=(y=" + J + ")||0;g['_COUNT_" + ie + `']+=(typeof y == "undefined" || y === null) ? 0 : 1;g['` + ie + "']=g['_SUM_" + ie + "']/g['_COUNT_" + ie + "'];" + H : k.aggregatorid === "AGGR" ? z + "g['" + ie + "']=" + k.expression.toJS("g", -1) + ";" + H : k.aggregatorid === "REDUCE" ? z + "g['" + ie + "']=alasql.aggr." + k.funcid + "(" + J + ",g['" + ie + "'],2);" + H : "") : "";
        }).join("") + "}";
      }), new Function("p,params,alasql", "var y;" + l);
    }, $.Select.prototype.compileSelect1 = function(r, p) {
      var m = this, d = (r.columns = [], r.xcolumns = {}, r.selectColumns = {}, r.dirtyColumns = !1, "var r={"), y = "", l = [];
      return this.columns.forEach(function(_) {
        if (_ instanceof $.Column)
          if (_.columnid === "*")
            _.func ? y += "r=params['" + _.param + "'](p['" + r.sources[0].alias + "'],p,params,alasql);" : (_.tableid ? (h = e3(r, [_.tableid], !1)).s && (l = l.concat(h.s)) : (h = e3(r, Object.keys(r.aliases), !0)).s && (l = l.concat(h.s)), y += h.sp);
          else {
            var h = _.tableid, O = _.databaseid || r.sources[0].databaseid || r.database.databaseid;
            if (h = (h = h || r.defcols[_.columnid]) || r.defaultTableid, _.columnid !== "_" ? p && 1 < p.length && Array.isArray(p[0]) && 1 <= p[0].length && p[0][0].hasOwnProperty("sheetid") ? y = 'var r={};var w=p["' + h + '"];var cols=[' + m.columns.map(function(z) {
              return "'" + z.columnid + "'";
            }).join(",") + "];var colas=[" + m.columns.map(function(z) {
              return "'" + (z.as || z.columnid) + "'";
            }).join(",") + "];for (var i=0;i<Object.keys(p['" + h + "']).length;i++) for(var k=0;k<cols.length;k++){if (!r.hasOwnProperty(i)) r[i]={}; r[i][colas[k]]=w[i][cols[k]];}" : l.push("'" + Q1(_.as || _.columnid) + "':p['" + h + "']['" + _.columnid + "']") : l.push("'" + Q1(_.as || _.columnid) + "':p['" + h + "']"), r.selectColumns[Q1(_.as || _.columnid)] = !0, r.aliases[h] && r.aliases[h].type === "table") {
              if (!S.databases[O].tables[r.aliases[h].tableid])
                throw new Error("Table '" + h + "' does not exist in database");
              var D = S.databases[O].tables[r.aliases[h].tableid].columns, O = S.databases[O].tables[r.aliases[h].tableid].xcolumns;
              if (O && 0 < D.length) {
                if (h = O[_.columnid], h === void 0)
                  throw new Error("Column does not exist: " + _.columnid);
                var k = { columnid: _.as || _.columnid, dbtypeid: h.dbtypeid, dbsize: h.dbsize, dbpecision: h.dbprecision, dbenum: h.dbenum };
                r.columns.push(k), r.xcolumns[k.columnid] = k;
              } else {
                var k = { columnid: _.as || _.columnid };
                r.columns.push(k), r.xcolumns[k.columnid] = k, r.dirtyColumns = !0;
              }
            } else {
              var k = { columnid: _.as || _.columnid };
              r.columns.push(k), r.xcolumns[k.columnid] = k;
            }
          }
        else
          k = (_ instanceof $.AggrValue ? (m.group || (m.group = [""]), _.as || (_.as = Q1(_.toString())), _.aggregatorid === "SUM" || _.aggregatorid === "MAX" || _.aggregatorid === "MIN" || _.aggregatorid === "FIRST" || _.aggregatorid === "LAST" || _.aggregatorid === "AVG" || _.aggregatorid === "ARRAY" || _.aggregatorid === "REDUCE" ? l.push("'" + Q1(_.as) + "':" + Ka(_.expression.toJS("p", r.defaultTableid, r.defcols))) : _.aggregatorid === "COUNT" && l.push("'" + Q1(_.as) + "':1")) : (l.push("'" + Q1(_.as || _.columnid || _.toString()) + "':" + Ka(_.toJS("p", r.defaultTableid, r.defcols))), r.selectColumns[Q1(_.as || _.columnid || _.toString())] = !0), { columnid: _.as || _.columnid || _.toString() }), r.columns.push(k), r.xcolumns[k.columnid] = k;
      }), d += l.join(",") + "};" + y;
    }, $.Select.prototype.compileSelect2 = function(r, p) {
      var m = r.selectfns;
      return this.orderColumns && 0 < this.orderColumns.length && this.orderColumns.forEach(function(d, y) {
        y = "$$$" + y, d instanceof $.Column && r.xcolumns[d.columnid] ? m += "r['" + y + "']=r['" + d.columnid + "'];" : d instanceof $.ParamValue && r.xcolumns[p[d.param]] ? m += "r['" + y + "']=r['" + p[d.param] + "'];" : m += "r['" + y + "']=" + d.toJS("p", r.defaultTableid, r.defcols) + ";", r.removeKeys.push(y);
      }), new Function("p,params,alasql", "var y;" + m + "return r");
    }, $.Select.prototype.compileSelectGroup0 = function(r) {
      var p = this;
      p.columns.forEach(function(m, d) {
        if (m instanceof $.Column && m.columnid === "*")
          r.groupStar = m.tableid || "default";
        else {
          for (var y, l = m instanceof $.Column ? Q1(m.columnid) : Q1(m.toString(!0)), _ = 0; _ < d; _++)
            if (l === p.columns[_].nick) {
              l = p.columns[_].nick + ":" + d;
              break;
            }
          m.nick = l, !p.group || -1 < (y = p.group.findIndex(function(h) {
            return h.columnid === m.columnid && h.tableid === m.tableid;
          })) && (p.group[y].nick = l), !m.funcid || m.funcid.toUpperCase() !== "ROWNUM" && m.funcid.toUpperCase() !== "ROW_NUMBER" || r.rownums.push(m.as);
        }
      }), this.columns.forEach(function(m) {
        m.findAggregator && m.findAggregator(r);
      }), this.having && this.having.findAggregator && this.having.findAggregator(r);
    }, $.Select.prototype.compileSelectGroup1 = function(r) {
      var p = "var r = {};";
      return this.columns.forEach(function(m) {
        if (m instanceof $.Column && m.columnid === "*")
          return p += "for(var k in g) {r[k]=g[k]};", "";
        var d = m.as;
        d === void 0 && (d = m instanceof $.Column ? Q1(m.columnid) : m.nick), r.groupColumns[d] = m.nick, p = (p += "r['" + d + "']=") + Ka(m.toJS("g", "")) + ";";
        for (var y = 0; y < r.removeKeys.length; y++)
          if (r.removeKeys[y] === d) {
            r.removeKeys.splice(y, 1);
            break;
          }
      }), p;
    }, $.Select.prototype.compileSelectGroup2 = function(r) {
      var p = r.selectgfns;
      return this.columns.forEach(function(m) {
        -1 < r.ingroup.indexOf(m.nick) && (p += "r['" + (m.as || m.nick) + "']=g['" + m.nick + "'];");
      }), this.orderColumns && 0 < this.orderColumns.length && this.orderColumns.forEach(function(m, d) {
        d = "$$$" + d, m instanceof $.Column && r.groupColumns[m.columnid] ? p += "r['" + d + "']=r['" + m.columnid + "'];" : p += "r['" + d + "']=" + m.toJS("g", "") + ";", r.removeKeys.push(d);
      }), new Function("g,params,alasql", "var y;" + p + "return r");
    }, $.Select.prototype.compileRemoveColumns = function(r) {
      this.removecolumns !== void 0 && (r.removeKeys = r.removeKeys.concat(this.removecolumns.filter(function(p) {
        return p.like === void 0;
      }).map(function(p) {
        return p.columnid;
      })), r.removeLikeKeys = this.removecolumns.filter(function(p) {
        return p.like !== void 0;
      }).map(function(p) {
        return p.like.value;
      }));
    }, $.Select.prototype.compileHaving = function(r) {
      var p;
      return this.having ? (p = this.having.toJS("g", -1), r.havingfns = p, new Function("g,params,alasql", "var y;return " + p)) : function() {
        return !0;
      };
    }, $.Select.prototype.compileOrder = function(r, p) {
      var m, d, y, l, _ = this;
      if (_.orderColumns = [], this.order)
        return this.order && this.order.length == 1 && this.order[0].expression && typeof this.order[0].expression == "function" ? (m = this.order[0].expression, d = this.order[0].nullsOrder == "FIRST" ? -1 : this.order[0].nullsOrder == "LAST" ? 1 : 0, function(h, O) {
          if (h = m(h), O = m(O), d) {
            if (h == null)
              return O == null ? 0 : d;
            if (O == null)
              return -d;
          }
          return O < h ? 1 : h == O ? 0 : -1;
        }) : (l = y = "", this.order.forEach(function(h, H) {
          z = h.expression instanceof $.NumValue ? _.columns[h.expression.value - 1] : h.expression, _.orderColumns.push(z);
          var D, k, z = "$$$" + H, H = "";
          h.expression instanceof $.Column && (D = h.expression.columnid, r.xcolumns[D] ? (k = r.xcolumns[D].dbtypeid) != "DATE" && k != "DATETIME" && k != "DATETIME2" && k != "STRING" && k != "NUMBER" || (H = ".valueOf()") : S.options.valueof && (H = ".valueOf()")), h.expression instanceof $.ParamValue && (D = p[h.expression.param], r.xcolumns[D] ? (k = r.xcolumns[D].dbtypeid) != "DATE" && k != "DATETIME" && k != "DATETIME2" && k != "STRING" && k != "NUMBER" || (H = ".valueOf()") : S.options.valueof && (H = ".valueOf()")), h.nocase && (H += ".toUpperCase()"), h.nullsOrder && (h.nullsOrder == "FIRST" ? y += "if((a['" + z + "'] != null) && (b['" + z + "'] == null)) return 1;" : h.nullsOrder == "LAST" && (y += "if((a['" + z + "'] == null) && (b['" + z + "'] != null)) return 1;"), y += "if((a['" + z + "'] == null) == (b['" + z + "'] == null)) {", l += "}"), y = y + ("if((a['" + z + "']||'')" + H + (h.direction == "ASC" ? ">" : "<")) + "(b['" + z + "']||'')" + H + ")return 1;if((a['" + z + "']||'')" + H + "==(b['" + z + "']||'')" + H + "){", l += "}";
        }), y = y + "return 0;" + l + "return -1", r.orderfns = y, new Function("a,b", "var y;" + y));
    }, $.Select.prototype.compilePivot = function(r) {
      var p = this, m = p.pivot.columnid, d = p.pivot.expr.aggregatorid, y = p.pivot.inlist, l = null;
      if ((l = (p.pivot.expr.expression.hasOwnProperty("columnid") ? p.pivot.expr : p.pivot.expr.expression).expression.columnid) == null)
        throw "columnid not found";
      return y = y && y.map(function(_) {
        return _.expr.columnid;
      }), function() {
        var _ = this, h = _.columns.filter(function(ee) {
          return ee.columnid != m && ee.columnid != l;
        }).map(function(ee) {
          return ee.columnid;
        }), O = [], D = {}, k = {}, z = {}, H = [];
        if (_.data.forEach(function(ee) {
          if (!y || -1 < y.indexOf(ee[m])) {
            var nt = h.map(function(rt) {
              return ee[rt];
            }).join("`"), tt = k[nt];
            if (tt || (tt = {}, k[nt] = tt, H.push(tt), h.forEach(function(rt) {
              tt[rt] = ee[rt];
            })), z[nt] || (z[nt] = {}), z[nt][ee[m]] ? z[nt][ee[m]]++ : z[nt][ee[m]] = 1, D[ee[m]] || (D[ee[m]] = !0, O.push(ee[m])), d == "SUM" || d == "AVG")
              tt[ee[m]] === void 0 && (tt[ee[m]] = 0), tt[ee[m]] += +ee[l];
            else if (d == "COUNT")
              tt[ee[m]] === void 0 && (tt[ee[m]] = 0), tt[ee[m]]++;
            else if (d == "MIN")
              tt[ee[m]] === void 0 && (tt[ee[m]] = ee[l]), ee[l] < tt[ee[m]] && (tt[ee[m]] = ee[l]);
            else if (d == "MAX")
              tt[ee[m]] === void 0 && (tt[ee[m]] = ee[l]), ee[l] > tt[ee[m]] && (tt[ee[m]] = ee[l]);
            else if (d == "FIRST")
              tt[ee[m]] === void 0 && (tt[ee[m]] = ee[l]);
            else if (d == "LAST")
              tt[ee[m]] = ee[l];
            else {
              if (!S.aggr[d])
                throw new Error("Wrong aggregator in PIVOT clause");
              S.aggr[d](tt[ee[m]], ee[l]);
            }
          }
        }), d == "AVG")
          for (var ie in k) {
            var J, ne = k[ie];
            for (J in ne)
              h.indexOf(J) == -1 && J != l && (ne[J] = ne[J] / z[ie][J]);
          }
        _.data = H, y && (O = y);
        var se = _.columns.filter(function(ee) {
          return ee.columnid == l;
        })[0];
        _.columns = _.columns.filter(function(ee) {
          return !(ee.columnid == m || ee.columnid == l);
        }), O.forEach(function(ee) {
          var nt = qo(se);
          nt.columnid = ee, _.columns.push(nt);
        });
      };
    }, $.Select.prototype.compileUnpivot = function(r) {
      var p = this.unpivot.tocolumnid, m = this.unpivot.forcolumnid, d = this.unpivot.inlist.map(function(y) {
        return y.columnid;
      });
      return function() {
        var y = [], l = r.columns.map(function(_) {
          return _.columnid;
        }).filter(function(_) {
          return d.indexOf(_) == -1 && _ != m && _ != p;
        });
        r.data.forEach(function(_) {
          d.forEach(function(h) {
            var O = {};
            l.forEach(function(D) {
              O[D] = _[D];
            }), O[m] = h, O[p] = _[h], y.push(O);
          });
        }), r.data = y;
      };
    };
    var Vo = function(r, p) {
      for (var m = [], d = 0, y = r.length, l = 0; l < y + 1; l++) {
        for (var _, h = [], O = 0; O < y; O++)
          _ = r[O] instanceof $.Column ? (r[O].nick = Q1(r[O].columnid), p.groupColumns[Q1(r[O].columnid)] = r[O].nick, r[O].nick + "	" + r[O].toJS("p", p.sources[0].alias, p.defcols)) : (p.groupColumns[Q1(r[O].toString())] = Q1(r[O].toString()), Q1(r[O].toString()) + "	" + r[O].toJS("p", p.sources[0].alias, p.defcols)), d & 1 << O && h.push(_);
        m.push(h), d = 1 + (d << 1);
      }
      return m;
    }, t3 = function(r, p) {
      for (var m = [], d = r.length, y = 1 << d, l = 0; l < y; l++) {
        for (var _ = [], h = 0; h < d; h++)
          l & 1 << h && (_ = _.concat(Yo(r[h], p)));
        m.push(_);
      }
      return m;
    }, m3 = function(r, p) {
      return r.reduce(function(m, d) {
        return m = m.concat(Yo(d, p));
      }, []);
    }, U2 = function(r, p) {
      for (var m = [], d = 0; d < r.length; d++)
        for (var y = 0; y < p.length; y++)
          m.push(r[d].concat(p[y]));
      return m;
    };
    function Yo(r, p) {
      if (Array.isArray(r)) {
        for (var m = [[]], d = 0; d < r.length; d++)
          if (r[d] instanceof $.Column)
            r[d].nick = r[d].nick ? Q1(r[d].nick) : Q1(r[d].columnid), p.groupColumns[r[d].nick] = r[d].nick, m = m.map(function(y) {
              return y.concat(r[d].nick + "	" + r[d].toJS("p", p.sources[0].alias, p.defcols));
            });
          else if (r[d] instanceof $.FuncValue)
            p.groupColumns[Q1(r[d].toString())] = Q1(r[d].toString()), m = m.map(function(y) {
              return y.concat(Q1(r[d].toString()) + "	" + r[d].toJS("p", p.sources[0].alias, p.defcols));
            });
          else if (r[d] instanceof $.GroupExpression)
            if (r[d].type == "ROLLUP")
              m = U2(m, Vo(r[d].group, p));
            else if (r[d].type == "CUBE")
              m = U2(m, t3(r[d].group, p));
            else {
              if (r[d].type != "GROUPING SETS")
                throw new Error("Unknown grouping function");
              m = U2(m, m3(r[d].group, p));
            }
          else
            m = r[d] === "" ? [["1	1"]] : m.map(function(y) {
              return p.groupColumns[Q1(r[d].toString())] = Q1(r[d].toString()), y.concat(Q1(r[d].toString()) + "	" + r[d].toJS("p", p.sources[0].alias, p.defcols));
            });
        return m;
      }
      return r instanceof $.FuncValue ? (p.groupColumns[Q1(r.toString())] = Q1(r.toString()), [r.toString() + "	" + r.toJS("p", p.sources[0].alias, p.defcols)]) : r instanceof $.Column ? (r.nick = Q1(r.columnid), p.groupColumns[r.nick] = r.nick, [r.nick + "	" + r.toJS("p", p.sources[0].alias, p.defcols)]) : (p.groupColumns[Q1(r.toString())] = Q1(r.toString()), [Q1(r.toString()) + "	" + r.toJS("p", p.sources[0].alias, p.defcols)]);
    }
    $.Select.prototype.compileDefCols = function(r, p) {
      var m = { ".": {} };
      return this.from && this.from.forEach(function(d) {
        if (m["."][d.as || d.tableid] = !0, d instanceof $.Table) {
          var y = d.as || d.tableid, l = S.databases[d.databaseid || p].tables[d.tableid];
          if (l === void 0)
            throw new Error("Table does not exist: " + d.tableid);
          l.columns && l.columns.forEach(function(_) {
            m[_.columnid] ? m[_.columnid] = "-" : m[_.columnid] = y;
          });
        } else if (!(d instanceof $.Select || d instanceof $.Search || d instanceof $.ParamValue || d instanceof $.VarValue || d instanceof $.FuncValue || d instanceof $.FromData || d instanceof $.Json || d.inserted))
          throw new Error("Unknown type of FROM clause");
      }), this.joins && this.joins.forEach(function(d) {
        if (m["."][d.as || d.table.tableid] = !0, d.table) {
          var y = d.table.tableid, y = (d.as && (y = d.as), d.as || d.table.tableid), l = S.databases[d.table.databaseid || p].tables[d.table.tableid];
          l.columns && l.columns.forEach(function(_) {
            m[_.columnid] ? m[_.columnid] = "-" : m[_.columnid] = y;
          });
        } else if (!d.select && !d.param && !d.func)
          throw new Error("Unknown type of FROM clause");
      }), m;
    }, $.Union = function(r) {
      return $.extend(this, r);
    }, $.Union.prototype.toString = function() {
      return "UNION";
    }, $.Union.prototype.compile = function(r) {
      return null;
    }, $.Apply = function(r) {
      return $.extend(this, r);
    }, $.Apply.prototype.toString = function() {
      var r = this.applymode + " APPLY (" + this.select.toString() + ")";
      return this.as && (r += " AS " + this.as), r;
    }, $.Over = function(r) {
      return $.extend(this, r);
    }, $.Over.prototype.toString = function() {
      var r = "OVER (";
      return this.partition && (r += "PARTITION BY " + this.partition.toString(), this.order && (r += " ")), this.order && (r += "ORDER BY " + this.order.toString()), r += ")";
    }, $.ExpressionStatement = function(r) {
      return $.extend(this, r);
    }, $.ExpressionStatement.prototype.toString = function() {
      return this.expression.toString();
    }, $.ExpressionStatement.prototype.execute = function(r, p, m) {
      if (this.expression)
        return S.precompile(this, r, p), r = new Function("params,alasql,p", "var y;return " + this.expression.toJS("({})", "", null)).bind(this)(p, S), m ? m(r) : r;
    }, $.Expression = function(r) {
      return $.extend(this, r);
    }, $.Expression.prototype.toString = function() {
      var r = this.expression.toString();
      return this.order && (r += " " + this.order.toString()), this.nocase && (r += " COLLATE NOCASE"), this.direction && (r += " " + this.direction), r;
    }, $.Expression.prototype.findAggregator = function(r) {
      this.expression.findAggregator && this.expression.findAggregator(r);
    }, $.Expression.prototype.toJS = function(r, p, m) {
      return this.expression.reduced ? "true" : this.expression.toJS(r, p, m);
    }, $.Expression.prototype.compile = function(r, p, m) {
      return !!this.reduced || new Function("p", "var y;return " + this.toJS(r, p, m));
    }, $.JavaScript = function(r) {
      return $.extend(this, r);
    }, $.JavaScript.prototype.toString = function() {
      return "``" + this.value + "``";
    }, $.JavaScript.prototype.toJS = function() {
      return "(" + this.value + ")";
    }, $.JavaScript.prototype.execute = function(r, p, m) {
      var d = 1;
      return new Function("params,alasql,p", this.value)(p, S), d = m ? m(d) : d;
    }, $.Literal = function(r) {
      return $.extend(this, r);
    }, $.Literal.prototype.toString = function() {
      var r = this.value;
      return r = this.value1 ? this.value1 + "." + r : r;
    }, $.Join = function(r) {
      return $.extend(this, r);
    }, $.Join.prototype.toString = function() {
      var r = " ";
      return this.joinmode && (r += this.joinmode + " "), r += "JOIN " + this.table.toString();
    }, $.Table = function(r) {
      return $.extend(this, r);
    }, $.Table.prototype.toString = function() {
      var r = this.tableid;
      return r = this.databaseid ? this.databaseid + "." + r : r;
    }, $.View = function(r) {
      return $.extend(this, r);
    }, $.View.prototype.toString = function() {
      var r = this.viewid;
      return r = this.databaseid ? this.databaseid + "." + r : r;
    }, $.Op = function(r) {
      return $.extend(this, r);
    }, $.Op.prototype.toString = function() {
      var r;
      return this.op === "IN" || this.op === "NOT IN" ? this.left.toString() + " " + this.op + " (" + this.right.toString() + ")" : this.allsome ? this.left.toString() + " " + this.op + " " + this.allsome + " (" + this.right.toString() + ")" : this.op === "->" || this.op === "!" ? (r = this.left.toString() + this.op, typeof this.right != "string" && typeof this.right != "number" && (r += "("), r += this.right.toString(), typeof this.right != "string" && typeof this.right != "number" && (r += ")"), r) : this.op === "BETWEEN" || this.op === "NOT BETWEEN" ? this.left.toString() + " " + this.op + " " + this.right1.toString() + " AND " + this.right2.toString() : this.left.toString() + " " + this.op + " " + (this.allsome ? this.allsome + " " : "") + this.right.toString();
    }, $.Op.prototype.findAggregator = function(r) {
      this.left && this.left.findAggregator && this.left.findAggregator(r), this.right && this.right.findAggregator && !this.allsome && this.right.findAggregator(r);
    }, $.Op.prototype.toType = function(r) {
      if (-1 < ["-", "*", "/", "%", "^"].indexOf(this.op))
        return "number";
      if (-1 < ["||"].indexOf(this.op))
        return "string";
      if (this.op === "+") {
        if (this.left.toType(r) === "string" || this.right.toType(r) === "string")
          return "string";
        if (this.left.toType(r) === "number" || this.right.toType(r) === "number")
          return "number";
      }
      return -1 < ["AND", "OR", "NOT", "=", "==", "===", "!=", "!==", "!===", ">", ">=", "<", "<=", "IN", "NOT IN", "LIKE", "NOT LIKE", "REGEXP", "GLOB"].indexOf(this.op) || this.op === "BETWEEN" || this.op === "NOT BETWEEN" || this.op === "IS NULL" || this.op === "IS NOT NULL" || this.allsome ? "boolean" : this.op ? "unknown" : this.left.toType();
    }, $.Op.prototype.toJS = function(r, p, m) {
      function d() {
        return D(O.left);
      }
      function y() {
        return D(O.right);
      }
      var l, _ = [], h = this.op, O = this, D = function(H) {
        return H.toJS && (H = H.toJS(r, p, m)), "y[" + (_.push(H) - 1) + "]";
      };
      if (this.op === "=" ? h = "===" : this.op === "<>" ? h = "!=" : this.op === "OR" && (h = "||"), this.op === "->" && (z = "(" + d() + "||{})", l = typeof this.right == "string" ? z + '["' + this.right + '"]' : typeof this.right == "number" ? z + "[" + this.right + "]" : this.right instanceof $.FuncValue ? (l = [], this.right.args && this.right.args.length !== 0 && (l = this.right.args.map(D)), z + "[" + JSON.stringify(this.right.funcid) + "](" + l.join(",") + ")") : z + "[" + y() + "]"), this.op === "!" && typeof this.right == "string" && (l = "alasql.databases[alasql.useid].objects[" + d() + ']["' + this.right + '"]'), this.op === "IS" && (z = d(), k = y(), l = this.right instanceof $.NullValue || this.right.op === "NOT" && this.right.right instanceof $.NullValue ? `(
					(${z}==null)   // Cant be ===
					===
					(${k}==null)  // Cant be ===
				)` : `(
					(${z} == ${k})
					||
					(
						${z}  < 0
						&& 
						true == ${k} 
					) 
				)`), this.op === "==" && (l = "alasql.utils.deepEqual(" + d() + "," + y() + ")"), this.op !== "===" && this.op !== "!===" || (l = "(" + (this.op === "!===" ? "!" : "") + "((" + d() + ").valueOf()===(" + y() + ").valueOf()))"), this.op === "!==" && (l = "(!alasql.utils.deepEqual(" + d() + "," + y() + "))"), this.op === "||" && (l = "(''+(" + d() + "||'')+(" + y() + '||""))'), this.op !== "LIKE" && this.op !== "NOT LIKE" || (l = "(" + (this.op === "NOT LIKE" ? "!" : "") + "alasql.utils.like(" + y() + "," + d(), this.escape && (l += "," + D(this.escape)), l += "))"), this.op === "REGEXP" && (l = "alasql.stdfn.REGEXP_LIKE(" + d() + "," + y() + ")"), this.op === "GLOB" && (l = "alasql.utils.glob(" + d() + "," + y() + ")"), this.op !== "BETWEEN" && this.op !== "NOT BETWEEN" || (z = d(), l = "(" + (this.op === "NOT BETWEEN" ? "!" : "") + "((" + D(this.right1) + "<=" + z + ") && (" + z + "<=" + D(this.right2) + ")))"), this.op === "IN" && (l = this.right instanceof $.Select ? (l = (l = "(") + "alasql.utils.flatArray(this.queriesfn[" + this.queriesidx + "](params,null," + r + ")).indexOf(") + "alasql.utils.getValueOf(" + d() + "))>-1)" : Array.isArray(this.right) ? "([" + this.right.map(D).join(",") + "].indexOf(alasql.utils.getValueOf(" + d() + "))>-1)" : "(" + y() + ".indexOf(" + d() + ")>-1)"), this.op === "NOT IN" && (this.right instanceof $.Select ? l = (l = (l = "(") + "alasql.utils.flatArray(this.queriesfn[" + this.queriesidx + "](params,null,p)).indexOf(") + "alasql.utils.getValueOf(" + d() + "))<0)" : Array.isArray(this.right) ? (l = "([" + this.right.map(D).join(",") + "].indexOf(", l += "alasql.utils.getValueOf(" + d() + "))<0)") : (l = "(" + y() + ".indexOf(", l += d() + ")==-1)")), this.allsome === "ALL") {
        if (this.right instanceof $.Select)
          l = "alasql.utils.flatArray(this.query.queriesfn[" + this.queriesidx + "](params,null,p))";
        else {
          if (!Array.isArray(this.right))
            throw new Error("NOT IN operator without SELECT");
          l = "" + (this.right.length == 1 ? D(this.right[0]) : "[" + this.right.map(D).join(",") + "]");
        }
        l = (l += ".every(function(b){return (") + d() + ")" + h + "b})";
      }
      if (this.allsome === "SOME" || this.allsome === "ANY") {
        if (this.right instanceof $.Select)
          l = "alasql.utils.flatArray(this.query.queriesfn[" + this.queriesidx + "](params,null,p))";
        else {
          if (!Array.isArray(this.right))
            throw new Error("SOME/ANY operator without SELECT");
          l = "" + (this.right.length == 1 ? D(this.right[0]) : "[" + this.right.map(D).join(",") + "]");
        }
        l = (l += ".some(function(b){return (") + d() + ")" + h + "b})";
      }
      if (this.op === "AND") {
        if (this.left.reduced) {
          if (this.right.reduced)
            return "true";
          l = y();
        } else
          this.right.reduced && (l = d());
        h = "&&";
      }
      var k = l || "(" + d() + h + y() + ")", z = "y=[(" + _.join("), (") + ")]";
      return h === "&&" || h === "||" || h === "IS" || h === "IS NULL" || h === "IS NOT NULL" ? "(" + z + ", " + k + ")" : "(" + z + ", y.some(function(e){return e == null}) ? void 0 : " + k + ")";
    }, $.VarValue = function(r) {
      return $.extend(this, r);
    }, $.VarValue.prototype.toString = function() {
      return "@" + this.variable;
    }, $.VarValue.prototype.toType = function() {
      return "unknown";
    }, $.VarValue.prototype.toJS = function() {
      return "alasql.vars['" + this.variable + "']";
    }, $.NumValue = function(r) {
      return $.extend(this, r);
    }, $.NumValue.prototype.toString = function() {
      return this.value.toString();
    }, $.NumValue.prototype.toType = function() {
      return "number";
    }, $.NumValue.prototype.toJS = function() {
      return "" + this.value;
    }, $.StringValue = function(r) {
      return $.extend(this, r);
    }, $.StringValue.prototype.toString = function() {
      return "'" + this.value.toString() + "'";
    }, $.StringValue.prototype.toType = function() {
      return "string";
    }, $.StringValue.prototype.toJS = function() {
      return "'" + Q1(this.value) + "'";
    }, $.DomainValueValue = function(r) {
      return $.extend(this, r);
    }, $.DomainValueValue.prototype.toString = function() {
      return "VALUE";
    }, $.DomainValueValue.prototype.toType = function() {
      return "object";
    }, $.DomainValueValue.prototype.toJS = function(r, p, m) {
      return r;
    }, $.ArrayValue = function(r) {
      return $.extend(this, r);
    }, $.ArrayValue.prototype.toString = function() {
      return "ARRAY[]";
    }, $.ArrayValue.prototype.toType = function() {
      return "object";
    }, $.ArrayValue.prototype.toJS = function(r, p, m) {
      return "[(" + this.value.map(function(d) {
        return d.toJS(r, p, m);
      }).join("), (") + ")]";
    }, $.LogicValue = function(r) {
      return $.extend(this, r);
    }, $.LogicValue.prototype.toString = function() {
      return this.value ? "TRUE" : "FALSE";
    }, $.LogicValue.prototype.toType = function() {
      return "boolean";
    }, $.LogicValue.prototype.toJS = function() {
      return this.value ? "true" : "false";
    }, $.NullValue = function(r) {
      return $.extend(this, r);
    }, $.NullValue.prototype.toString = function() {
      return "NULL";
    }, $.NullValue.prototype.toJS = function() {
      return "undefined";
    }, $.ParamValue = function(r) {
      return $.extend(this, r);
    }, $.ParamValue.prototype.toString = function() {
      return "$" + this.param;
    }, $.ParamValue.prototype.toJS = function() {
      return typeof this.param == "string" ? "params['" + this.param + "']" : "params[" + this.param + "]";
    }, $.UniOp = function(r) {
      return $.extend(this, r);
    }, $.UniOp.prototype.toString = function() {
      var r = void 0;
      return this.op === "~" && (r = this.op + this.right.toString()), this.op === "-" && (r = this.op + this.right.toString()), this.op === "+" && (r = this.op + this.right.toString()), this.op === "#" && (r = this.op + this.right.toString()), this.op === "NOT" && (r = this.op + "(" + this.right.toString() + ")"), r = (r = this.op === null ? "(" + this.right.toString() + ")" : r) || "(" + this.right.toString() + ")";
    }, $.UniOp.prototype.findAggregator = function(r) {
      this.right.findAggregator && this.right.findAggregator(r);
    }, $.UniOp.prototype.toType = function() {
      return this.op === "-" || this.op === "+" ? "number" : this.op === "NOT" ? "boolean" : void 0;
    }, $.UniOp.prototype.toJS = function(r, p, m) {
      return this.op === "~" ? "(~(" + this.right.toJS(r, p, m) + "))" : this.op === "-" ? "(-(" + this.right.toJS(r, p, m) + "))" : this.op === "+" ? "(" + this.right.toJS(r, p, m) + ")" : this.op === "NOT" ? "!(" + this.right.toJS(r, p, m) + ")" : this.op === "#" ? this.right instanceof $.Column ? "(alasql.databases[alasql.useid].objects['" + this.right.columnid + "'])" : "(alasql.databases[alasql.useid].objects[" + this.right.toJS(r, p, m) + "])" : this.op == null ? "(" + this.right.toJS(r, p, m) + ")" : void 0;
    }, $.Column = function(r) {
      return $.extend(this, r);
    }, $.Column.prototype.toString = function() {
      var r = this.columnid == +this.columnid ? "[" + this.columnid + "]" : this.columnid;
      return this.tableid && (r = +this.columnid === this.columnid ? this.tableid + r : this.tableid + "." + r, this.databaseid && (r = this.databaseid + "." + r)), r;
    }, $.Column.prototype.toJS = function(r, p, m) {
      var d = "";
      if (this.tableid || p !== "" || m)
        if (r === "g")
          d = "g['" + this.nick + "']";
        else if (this.tableid)
          d = this.columnid !== "_" ? r + "['" + this.tableid + "']['" + this.columnid + "']" : r === "g" ? "g['_']" : r + "['" + this.tableid + "']";
        else if (m) {
          if (m = m[this.columnid], m === "-")
            throw new Error('Cannot resolve column "' + this.columnid + '" because it exists in two source tables');
          d = m ? this.columnid !== "_" ? r + "['" + m + "']['" + this.columnid + "']" : r + "['" + m + "']" : this.columnid !== "_" ? r + "['" + (this.tableid || p) + "']['" + this.columnid + "']" : r + "['" + (this.tableid || p) + "']";
        } else
          d = p === -1 ? r + "['" + this.columnid + "']" : this.columnid !== "_" ? r + "['" + (this.tableid || p) + "']['" + this.columnid + "']" : r + "['" + (this.tableid || p) + "']";
      else
        d = this.columnid !== "_" ? r + "['" + this.columnid + "']" : r === "g" ? "g['_']" : r;
      return d;
    }, $.AggrValue = function(r) {
      return $.extend(this, r);
    }, $.AggrValue.prototype.toString = function() {
      var r = "";
      return this.aggregatorid === "REDUCE" ? r += this.funcid.replace(xs, "") + "(" : r += this.aggregatorid + "(", this.distinct && (r += "DISTINCT "), this.expression && (r += this.expression.toString()), r += ")", this.over && (r += " " + this.over.toString()), r;
    }, $.AggrValue.prototype.findAggregator = function(r) {
      var p = Q1(this.toString()) + ":" + r.selectGroup.length;
      if (!(m = !1)) {
        if (!this.nick) {
          this.nick = p;
          for (var m = !1, d = 0; d < r.removeKeys.length; d++)
            if (r.removeKeys[d] === p) {
              m = !0;
              break;
            }
          m || r.removeKeys.push(p);
        }
        r.selectGroup.push(this);
      }
    }, $.AggrValue.prototype.toType = function() {
      return -1 < ["SUM", "COUNT", "AVG", "MIN", "MAX", "AGGR", "VAR", "STDDEV"].indexOf(this.aggregatorid) ? "number" : -1 < ["ARRAY"].indexOf(this.aggregatorid) ? "array" : (["FIRST", "LAST"].indexOf(this.aggregatorid), this.expression.toType());
    }, $.AggrValue.prototype.toJS = function() {
      var r = this.nick;
      return "g['" + (r = r === void 0 ? this.toString() : r) + "']";
    }, $.OrderExpression = function(r) {
      return $.extend(this, r);
    }, $.OrderExpression.prototype.toString = $.Expression.prototype.toString, $.GroupExpression = function(r) {
      return $.extend(this, r);
    }, $.GroupExpression.prototype.toString = function() {
      return this.type + "(" + this.group.toString() + ")";
    }, $.FromData = function(r) {
      return $.extend(this, r);
    }, $.FromData.prototype.toString = function() {
      return this.data ? "DATA(" + (1e16 * Math.random() | 0) + ")" : "?";
    }, $.FromData.prototype.toJS = function() {
    }, $.Select.prototype.exec = function(r, p) {
      this.preparams && (r = this.preparams.concat(r));
      var l = S.useid, m = S.databases[l], d = this.toString(), y = w2(d), l = this.compile(l);
      if (l)
        return l.sql = d, l.dbversion = m.dbversion, m.sqlCacheSize > S.MAXSQLCACHESIZE && m.resetSqlCache(), m.sqlCacheSize++, m.sqlCache[y] = l, S.res = l(r, p);
    }, $.Select.prototype.Select = function() {
      var r = this, p = [];
      if (1 < arguments.length)
        p = Array.prototype.slice.call(arguments);
      else {
        if (arguments.length != 1)
          throw new Error("Wrong number of arguments of Select() function");
        p = Array.isArray(arguments[0]) ? arguments[0] : [arguments[0]];
      }
      return r.columns = [], p.forEach(function(m) {
        var d;
        typeof m == "string" ? r.columns.push(new $.Column({ columnid: m })) : typeof m == "function" && (d = 0, r.preparams ? d = r.preparams.length : r.preparams = [], r.preparams.push(m), r.columns.push(new $.Column({ columnid: "*", func: m, param: d })));
      }), r;
    }, $.Select.prototype.From = function(r) {
      var p = this;
      if (p.from || (p.from = []), Array.isArray(r)) {
        var m = 0;
        p.preparams ? m = p.preparams.length : p.preparams = [], p.preparams.push(r), p.from.push(new $.ParamValue({ param: m }));
      } else {
        if (typeof r != "string")
          throw new Error("Unknown arguments in From() function");
        p.from.push(new $.Table({ tableid: r }));
      }
      return p;
    }, $.Select.prototype.OrderBy = function() {
      var r = this, p = [];
      if (r.order = [], arguments.length == 0)
        p = ["_"];
      else if (1 < arguments.length)
        p = Array.prototype.slice.call(arguments);
      else {
        if (arguments.length != 1)
          throw new Error("Wrong number of arguments of Select() function");
        p = Array.isArray(arguments[0]) ? arguments[0] : [arguments[0]];
      }
      return 0 < p.length && p.forEach(function(m) {
        var d = new $.Column({ columnid: m });
        r.order.push(new $.OrderExpression({ expression: d = typeof m == "function" ? m : d, direction: "ASC" }));
      }), r;
    }, $.Select.prototype.Top = function(r) {
      return this.top = new $.NumValue({ value: r }), this;
    }, $.Select.prototype.GroupBy = function() {
      var r = this, p = [];
      if (1 < arguments.length)
        p = Array.prototype.slice.call(arguments);
      else {
        if (arguments.length != 1)
          throw new Error("Wrong number of arguments of Select() function");
        p = Array.isArray(arguments[0]) ? arguments[0] : [arguments[0]];
      }
      return r.group = [], p.forEach(function(m) {
        m = new $.Column({ columnid: m }), r.group.push(m);
      }), r;
    }, $.Select.prototype.Where = function(r) {
      return typeof r == "function" && (this.where = r), this;
    }, $.FuncValue = function(r) {
      return $.extend(this, r);
    };
    for (var xs = /[^0-9A-Z_$]+/i, er = ($.FuncValue.prototype.toString = function() {
      var r = "";
      return S.fn[this.funcid] || S.aggr[this.funcid] ? r += this.funcid : (S.stdlib[this.funcid.toUpperCase()] || S.stdfn[this.funcid.toUpperCase()]) && (r += this.funcid.toUpperCase().replace(xs, "")), this.funcid !== "CURRENT_TIMESTAMP" && (r += "(", this.args && 0 < this.args.length && (r += this.args.map(function(p) {
        return p.toString();
      }).join(",")), r += ")"), r;
    }, $.FuncValue.prototype.execute = function(r, p, m) {
      var d = 1;
      return S.precompile(this, r, p), new Function("params,alasql", "var y;return " + this.toJS("", "", null))(p, S), d = m ? m(d) : d;
    }, $.FuncValue.prototype.findAggregator = function(r) {
      this.args && 0 < this.args.length && this.args.forEach(function(p) {
        p.findAggregator && p.findAggregator(r);
      });
    }, $.FuncValue.prototype.toJS = function(r, p, m) {
      var d = "", y = this.funcid;
      return !S.fn[y] && S.stdlib[y.toUpperCase()] ? this.args && 0 < this.args.length ? d += S.stdlib[y.toUpperCase()].apply(this, this.args.map(function(l) {
        return l.toJS(r, p);
      })) : d += S.stdlib[y.toUpperCase()]() : (!S.fn[y] && S.stdfn[y.toUpperCase()] ? (this.newid && (d += "new "), d += "alasql.stdfn[" + JSON.stringify(this.funcid.toUpperCase()) + "](", this.args && 0 < this.args.length && (d += this.args.map(function(l) {
        return l.toJS(r, p, m);
      }).join(","))) : (this.newid && (d += "new "), d += "alasql.fn[" + JSON.stringify(this.funcid) + "](", this.args && 0 < this.args.length && (d += this.args.map(function(l) {
        return l.toJS(r, p, m);
      }).join(","))), d += ")"), d;
    }, S.stdlib = {}), nr = S.stdfn = {}, En = (er.ABS = function(r) {
      return "Math.abs(" + r + ")";
    }, er.CLONEDEEP = function(r) {
      return "alasql.utils.cloneDeep(" + r + ")";
    }, nr.CONCAT = function() {
      return Array.prototype.slice.call(arguments).join("");
    }, er.EXP = function(r) {
      return "Math.pow(Math.E," + r + ")";
    }, er.IIF = function(r, p, m) {
      if (arguments.length == 3)
        return "((" + r + ")?(" + p + "):(" + m + "))";
      throw new Error("Number of arguments of IFF is not equals to 3");
    }, er.IFNULL = function(r, p) {
      return "((typeof " + r + ' ==="undefined" || null ===  ' + r + ")?" + p + ":" + r + ")";
    }, er.INSTR = function(r, p) {
      return "((" + r + ").indexOf(" + p + ")+1)";
    }, er.LEN = er.LENGTH = function(r) {
      return ci(r, "y.length");
    }, er.LOWER = er.LCASE = function(r) {
      return ci(r, "String(y).toLowerCase()");
    }, er.LTRIM = function(r) {
      return ci(r, 'y.replace(/^[ ]+/,"")');
    }, er.RTRIM = function(r) {
      return ci(r, 'y.replace(/[ ]+$/,"")');
    }, er.MAX = er.GREATEST = function() {
      return "[" + Array.prototype.join.call(arguments, ",") + "].reduce(function (a, b) { return a > b ? a : b; })";
    }, er.MIN = er.LEAST = function() {
      return "[" + Array.prototype.join.call(arguments, ",") + "].reduce(function (a, b) { return a < b ? a : b; })";
    }, er.SUBSTRING = er.SUBSTR = er.MID = function(r, p, m) {
      return arguments.length == 2 ? ci(r, "y.substr(" + p + "-1)") : arguments.length == 3 ? ci(r, "y.substr(" + p + "-1," + m + ")") : void 0;
    }, nr.REGEXP_LIKE = function(r, p, m) {
      return -1 < (r || "").search(RegExp(p, m));
    }, er.ISNULL = er.NULLIF = function(r, p) {
      return "(" + r + "==" + p + "?undefined:" + r + ")";
    }, er.POWER = function(r, p) {
      return "Math.pow(" + r + "," + p + ")";
    }, er.RANDOM = function(r) {
      return arguments.length == 0 ? "Math.random()" : "(Math.random()*(" + r + ")|0)";
    }, er.ROUND = function(r, p) {
      return arguments.length == 2 ? "Math.round((" + r + ")*Math.pow(10,(" + p + ")))/Math.pow(10,(" + p + "))" : "Math.round(" + r + ")";
    }, er.CEIL = er.CEILING = function(r) {
      return "Math.ceil(" + r + ")";
    }, er.FLOOR = function(r) {
      return "Math.floor(" + r + ")";
    }, er.ROWNUM = function() {
      return "1";
    }, er.ROW_NUMBER = function() {
      return "1";
    }, er.SQRT = function(r) {
      return "Math.sqrt(" + r + ")";
    }, er.TRIM = function(r) {
      return ci(r, "y.trim()");
    }, er.UPPER = er.UCASE = function(r) {
      return ci(r, "String(y).toUpperCase()");
    }, nr.CONCAT_WS = function() {
      var r = Array.prototype.slice.call(arguments);
      return (r = r.filter((p) => p != null)).slice(1, r.length).join(r[0] || "");
    }, S.aggr.GROUP_CONCAT = function(r, p, m) {
      return m === 1 ? "" + r : m === 2 ? p + "," + r : p;
    }, S.aggr.median = S.aggr.MEDIAN = function(r, p, m) {
      var d;
      return m === 2 ? (r !== null && p.push(r), p) : m === 1 ? r === null ? [] : [r] : p.length ? (d = (m = p.sort((y, l) => l < y ? 1 : y < l ? -1 : 0))[(p = 0 | (r = (m.length + 1) / 2)) - 1], r != p && (typeof d == "number" || d instanceof Number) ? (d + m[p]) / 2 : d) : null;
    }, S.aggr.QUART = function(r, p, m, d) {
      return m === 2 ? (r !== null && p.push(r), p) : m === 1 ? r === null ? [] : [r] : p.length ? (d = d || 1, m = p.sort(function(y, l) {
        return y === l ? 0 : l < y ? 1 : -1;
      }), r = d * (m.length + 1) / 4, Number.isInteger(r) ? m[r - 1] : m[Math.floor(r)]) : p;
    }, S.aggr.QUART2 = function(r, p, m) {
      return S.aggr.QUART(r, p, m, 2);
    }, S.aggr.QUART3 = function(r, p, m) {
      return S.aggr.QUART(r, p, m, 3);
    }, S.aggr.VAR = function(r, p, m) {
      if (m === 1)
        return r === null ? { arr: [], sum: 0 } : { arr: [r], sum: r };
      if (m === 2)
        return r !== null && (p.arr.push(r), p.sum += r), p;
      for (var d = p.arr.length, y = p.sum / d, l = 0, _ = 0; _ < d; _++)
        l += (p.arr[_] - y) * (p.arr[_] - y);
      return l /= d - 1;
    }, S.aggr.STDEV = function(r, p, m) {
      return m === 1 || m === 2 ? S.aggr.VAR(r, p, m) : Math.sqrt(S.aggr.VAR(r, p, m));
    }, S.aggr.VARP = function(r, p, m) {
      if (m == 1)
        return { arr: [r], sum: r };
      if (m == 2)
        return p.arr.push(r), p.sum += r, p;
      for (var d = p.arr.length, y = p.sum / d, l = 0, _ = 0; _ < d; _++)
        l += (p.arr[_] - y) * (p.arr[_] - y);
      return l /= d;
    }, S.aggr.STD = S.aggr.STDDEV = S.aggr.STDEVP = function(r, p, m) {
      return m == 1 || m == 2 ? S.aggr.VARP(r, p, m) : Math.sqrt(S.aggr.VARP(r, p, m));
    }, S._aggrOriginal = S.aggr, S.aggr = {}, Object.keys(S._aggrOriginal).forEach(function(r) {
      S.aggr[r] = function(p, m, d) {
        if (d !== 3 || m !== void 0)
          return S._aggrOriginal[r].apply(null, arguments);
      };
    }), nr.REPLACE = function(r, p, m) {
      return (r || "").split(p).join(m);
    }, []), Ko = 0; Ko < 256; Ko++)
      En[Ko] = (Ko < 16 ? "0" : "") + Ko.toString(16);
    nr.NEWID = nr.UUID = nr.GEN_RANDOM_UUID = function() {
      var r = 4294967295 * Math.random() | 0, p = 4294967295 * Math.random() | 0, m = 4294967295 * Math.random() | 0, d = 4294967295 * Math.random() | 0;
      return En[255 & r] + En[r >> 8 & 255] + En[r >> 16 & 255] + En[r >> 24 & 255] + "-" + En[255 & p] + En[p >> 8 & 255] + "-" + En[p >> 16 & 15 | 64] + En[p >> 24 & 255] + "-" + En[63 & m | 128] + En[m >> 8 & 255] + "-" + En[m >> 16 & 255] + En[m >> 24 & 255] + En[255 & d] + En[d >> 8 & 255] + En[d >> 16 & 255] + En[d >> 24 & 255];
    }, $.CaseValue = function(r) {
      return $.extend(this, r);
    }, $.CaseValue.prototype.toString = function() {
      var r = "CASE ";
      return this.expression && (r += this.expression.toString()), this.whens && (r += this.whens.map(function(p) {
        return " WHEN " + p.when.toString() + " THEN " + p.then.toString();
      }).join()), r += " END";
    }, $.CaseValue.prototype.findAggregator = function(r) {
      this.expression && this.expression.findAggregator && this.expression.findAggregator(r), this.whens && 0 < this.whens.length && this.whens.forEach(function(p) {
        p.when.findAggregator && p.when.findAggregator(r), p.then.findAggregator && p.then.findAggregator(r);
      }), this.elses && this.elses.findAggregator && this.elses.findAggregator(r);
    }, $.CaseValue.prototype.toJS = function(r, p, m) {
      var d = "((function(" + r + ",params,alasql){var y,r;";
      return this.expression ? d = (d += "v=" + this.expression.toJS(r, p, m) + ";") + (this.whens || []).map(function(y) {
        return " if(v==" + y.when.toJS(r, p, m) + ") {r=" + y.then.toJS(r, p, m) + "}";
      }).join(" else ") : d += (this.whens || []).map(function(y) {
        return " if(" + y.when.toJS(r, p, m) + ") {r=" + y.then.toJS(r, p, m) + "}";
      }).join(" else "), this.elses && (d += " else {r=" + this.elses.toJS(r, p, m) + "}"), d += ";return r;}).bind(this))(" + r + ",params,alasql)";
    }, $.Json = function(r) {
      return $.extend(this, r);
    }, $.Json.prototype.toString = function() {
      var r = "";
      return r + Xs(this.value) + "";
    };
    var Xs = S.utils.JSONtoString = function(r) {
      var p = "";
      if (typeof r == "string")
        p = '"' + r + '"';
      else if (typeof r == "number")
        p = r;
      else if (typeof r == "boolean")
        p = r;
      else {
        if (typeof r != "object")
          throw new Error("2Can not show JSON object " + JSON.stringify(r));
        if (Array.isArray(r))
          p += "[" + r.map(function(l) {
            return Xs(l);
          }).join(",") + "]";
        else if (!r.toJS || r instanceof $.Json) {
          var m, p = "{", d = [];
          for (m in r) {
            var y = "";
            if (typeof m == "string")
              y += '"' + m + '"';
            else {
              if (typeof m != "number" && typeof m != "boolean")
                throw new Error("THis is not ES6... no expressions on left side yet");
              y += m;
            }
            y += ":" + Xs(r[m]), d.push(y);
          }
          p += d.join(",") + "}";
        } else {
          if (!r.toString)
            throw new Error("1Can not show JSON object " + JSON.stringify(r));
          p = r.toString();
        }
      }
      return p;
    };
    function Xo(r, p, m, d) {
      var y = "";
      if (typeof r == "string")
        y = '"' + r + '"';
      else if (typeof r == "number")
        y = "(" + r + ")";
      else if (typeof r == "boolean")
        y = r;
      else {
        if (typeof r != "object")
          throw new Error("2Can not parse JSON object " + JSON.stringify(r));
        if (Array.isArray(r))
          y += "[" + r.map(function(O) {
            return Xo(O, p, m, d);
          }).join(",") + "]";
        else if (!r.toJS || r instanceof $.Json) {
          var l, y = "{", _ = [];
          for (l in r) {
            var h = "";
            if (typeof l == "string")
              h += '"' + l + '"';
            else {
              if (typeof l != "number" && typeof l != "boolean")
                throw new Error("THis is not ES6... no expressions on left side yet");
              h += l;
            }
            h += ":" + Xo(r[l], p, m, d), _.push(h);
          }
          y += _.join(",") + "}";
        } else {
          if (!r.toJS)
            throw new Error("1Can not parse JSON object " + JSON.stringify(r));
          y = r.toJS(p, m, d);
        }
      }
      return y;
    }
    $.Json.prototype.toJS = function(r, p, m) {
      return Xo(this.value, r, p, m);
    }, $.Convert = function(r) {
      return $.extend(this, r);
    }, $.Convert.prototype.toString = function() {
      var r = "CONVERT(";
      return r += this.dbtypeid, this.dbsize !== void 0 && (r += "(" + this.dbsize, this.dbprecision && (r += "," + this.dbprecision), r += ")"), r += "," + this.expression.toString(), this.style && (r += "," + this.style), r += ")";
    }, $.Convert.prototype.toJS = function(r, p, m) {
      return "alasql.stdfn.CONVERT(" + this.expression.toJS(r, p, m) + ',{dbtypeid:"' + this.dbtypeid + '",dbsize:' + this.dbsize + ",dbprecision:" + this.dbprecision + ",style:" + this.style + "})";
    }, S.stdfn.CONVERT = function(h, p) {
      var m = h;
      if (p.style) {
        var d = /\d{8}/.test(m) ? new Date(+m.substr(0, 4), +m.substr(4, 2) - 1, +m.substr(6, 2)) : jn(m);
        switch (p.style) {
          case 1:
            m = ("0" + (d.getMonth() + 1)).substr(-2) + "/" + ("0" + d.getDate()).substr(-2) + "/" + ("0" + d.getYear()).substr(-2);
            break;
          case 2:
            m = ("0" + d.getYear()).substr(-2) + "." + ("0" + (d.getMonth() + 1)).substr(-2) + "." + ("0" + d.getDate()).substr(-2);
            break;
          case 3:
            m = ("0" + d.getDate()).substr(-2) + "/" + ("0" + (d.getMonth() + 1)).substr(-2) + "/" + ("0" + d.getYear()).substr(-2);
            break;
          case 4:
            m = ("0" + d.getDate()).substr(-2) + "." + ("0" + (d.getMonth() + 1)).substr(-2) + "." + ("0" + d.getYear()).substr(-2);
            break;
          case 5:
            m = ("0" + d.getDate()).substr(-2) + "-" + ("0" + (d.getMonth() + 1)).substr(-2) + "-" + ("0" + d.getYear()).substr(-2);
            break;
          case 6:
            m = ("0" + d.getDate()).substr(-2) + " " + d.toString().substr(4, 3).toLowerCase() + " " + ("0" + d.getYear()).substr(-2);
            break;
          case 7:
            m = d.toString().substr(4, 3) + " " + ("0" + d.getDate()).substr(-2) + "," + ("0" + d.getYear()).substr(-2);
            break;
          case 8:
          case 108:
            m = ("0" + d.getHours()).substr(-2) + ":" + ("0" + d.getMinutes()).substr(-2) + ":" + ("0" + d.getSeconds()).substr(-2);
            break;
          case 10:
            m = ("0" + (d.getMonth() + 1)).substr(-2) + "-" + ("0" + d.getDate()).substr(-2) + "-" + ("0" + d.getYear()).substr(-2);
            break;
          case 11:
            m = ("0" + d.getYear()).substr(-2) + "/" + ("0" + (d.getMonth() + 1)).substr(-2) + "/" + ("0" + d.getDate()).substr(-2);
            break;
          case 12:
            m = ("0" + d.getYear()).substr(-2) + ("0" + (d.getMonth() + 1)).substr(-2) + ("0" + d.getDate()).substr(-2);
            break;
          case 101:
            m = ("0" + (d.getMonth() + 1)).substr(-2) + "/" + ("0" + d.getDate()).substr(-2) + "/" + d.getFullYear();
            break;
          case 102:
            m = d.getFullYear() + "." + ("0" + (d.getMonth() + 1)).substr(-2) + "." + ("0" + d.getDate()).substr(-2);
            break;
          case 103:
            m = ("0" + d.getDate()).substr(-2) + "/" + ("0" + (d.getMonth() + 1)).substr(-2) + "/" + d.getFullYear();
            break;
          case 104:
            m = ("0" + d.getDate()).substr(-2) + "." + ("0" + (d.getMonth() + 1)).substr(-2) + "." + d.getFullYear();
            break;
          case 105:
            m = ("0" + d.getDate()).substr(-2) + "-" + ("0" + (d.getMonth() + 1)).substr(-2) + "-" + d.getFullYear();
            break;
          case 106:
            m = ("0" + d.getDate()).substr(-2) + " " + d.toString().substr(4, 3).toLowerCase() + " " + d.getFullYear();
            break;
          case 107:
            m = d.toString().substr(4, 3) + " " + ("0" + d.getDate()).substr(-2) + "," + d.getFullYear();
            break;
          case 110:
            m = ("0" + (d.getMonth() + 1)).substr(-2) + "-" + ("0" + d.getDate()).substr(-2) + "-" + d.getFullYear();
            break;
          case 111:
            m = d.getFullYear() + "/" + ("0" + (d.getMonth() + 1)).substr(-2) + "/" + ("0" + d.getDate()).substr(-2);
            break;
          case 112:
            m = d.getFullYear() + ("0" + (d.getMonth() + 1)).substr(-2) + ("0" + d.getDate()).substr(-2);
            break;
          default:
            throw new Error("The CONVERT style " + p.style + " is not realized yet.");
        }
      }
      var y, l, _, h = p.dbtypeid.toUpperCase();
      if (p.dbtypeid == "Date")
        return jn(m);
      if (h == "DATE")
        return l = (y = jn(m)).getFullYear() + "." + ("0" + (y.getMonth() + 1)).substr(-2) + "." + ("0" + y.getDate()).substr(-2);
      if (h == "DATETIME" || h == "DATETIME2")
        return l = (y = jn(m)).getFullYear() + "." + ("0" + (y.getMonth() + 1)).substr(-2) + "." + ("0" + y.getDate()).substr(-2), (l += " " + ("0" + y.getHours()).substr(-2) + ":" + ("0" + y.getMinutes()).substr(-2) + ":" + ("0" + y.getSeconds()).substr(-2)) + "." + ("00" + y.getMilliseconds()).substr(-3);
      if (-1 < ["MONEY"].indexOf(h))
        return (0 | (_ = +m)) + 100 * _ % 100 / 100;
      if (-1 < ["BOOLEAN"].indexOf(h))
        return !!m;
      if (-1 < ["INT", "INTEGER", "SMALLINT", "BIGINT", "SERIAL", "SMALLSERIAL", "BIGSERIAL"].indexOf(p.dbtypeid.toUpperCase()))
        return 0 | m;
      if (-1 < ["STRING", "VARCHAR", "NVARCHAR", "CHARACTER VARIABLE"].indexOf(p.dbtypeid.toUpperCase()))
        return p.dbsize ? ("" + m).substr(0, p.dbsize) : "" + m;
      if (-1 < ["CHAR", "CHARACTER", "NCHAR"].indexOf(h))
        return (m + new Array(p.dbsize + 1).join(" ")).substr(0, p.dbsize);
      if (-1 < ["NUMBER", "FLOAT", "DECIMAL", "NUMERIC"].indexOf(h))
        return _ = +m, _ = p.dbsize !== void 0 ? parseFloat(_.toPrecision(p.dbsize)) : _, p.dbprecision !== void 0 ? parseFloat(_.toFixed(p.dbprecision)) : _;
      if (-1 < ["JSON"].indexOf(h)) {
        if (typeof m == "object")
          return m;
        try {
          return JSON.parse(m);
        } catch {
          throw new Error("Cannot convert string to JSON");
        }
      }
      return m;
    }, $.ColumnDef = function(r) {
      return $.extend(this, r);
    }, $.ColumnDef.prototype.toString = function() {
      var r = this.columnid;
      return this.dbtypeid && (r += " " + this.dbtypeid), this.dbsize && (r += "(" + this.dbsize, this.dbprecision && (r += "," + this.dbprecision), r += ")"), this.primarykey && (r += " PRIMARY KEY"), this.notnull && (r += " NOT NULL"), r;
    }, $.CreateTable = function(r) {
      return $.extend(this, r);
    }, $.CreateTable.prototype.toString = function() {
      var r = "CREATE";
      return this.temporary && (r += " TEMPORARY"), this.view ? r += " VIEW" : r += " " + (this.class ? "CLASS" : "TABLE"), this.ifnotexists && (r += " IF  NOT EXISTS"), r += " " + this.table.toString(), this.viewcolumns && (r += "(" + this.viewcolumns.map(function(p) {
        return p.toString();
      }).join(",") + ")"), this.as ? r += " AS " + this.as : r += " (" + this.columns.map(function(p) {
        return p.toString();
      }).join(",") + ")", this.view && this.select && (r += " AS " + this.select.toString()), r;
    }, $.CreateTable.prototype.execute = function(r, p, m) {
      var d = S.databases[this.table.databaseid || r], y = this.table.tableid;
      if (!y)
        throw new Error("Table name is not defined");
      var l = this.columns, _ = this.constraints || [];
      if (this.ifnotexists && d.tables[y])
        return m ? m(0) : 0;
      if (d.tables[y])
        throw new Error("Can not create table '" + y + "', because it already exists in the database '" + d.databaseid + "'");
      var h, O, D = d.tables[y] = new S.Table(), k = (this.class && (D.isclass = !0), []), z = [];
      return l && l.forEach(function(H) {
        var ie, J = H.dbtypeid, J = (S.fn[J] || (J = J.toUpperCase()), -1 < ["SERIAL", "SMALLSERIAL", "BIGSERIAL"].indexOf(J) && (H.identity = { value: 1, step: 1 }), { columnid: H.columnid, dbtypeid: J, dbsize: H.dbsize, dbprecision: H.dbprecision, notnull: H.notnull, identity: H.identity });
        if (H.identity && (D.identities[H.columnid] = { value: +H.identity.value, step: +H.identity.step }), H.check && D.checks.push({ id: H.check.constrantid, fn: new Function("r", "var y;return " + H.check.expression.toJS("r", "")) }), H.default && k.push("'" + H.columnid + "':" + H.default.toJS("r", "")), H.primarykey && ((ie = D.pk = {}).columns = [H.columnid], ie.onrightfns = "r['" + H.columnid + "']", ie.onrightfn = new Function("r", "var y;return " + ie.onrightfns), ie.hh = w2(ie.onrightfns), D.uniqs[ie.hh] = {}), H.unique && (ie = {}, D.uk = D.uk || [], D.uk.push(ie), ie.columns = [H.columnid], ie.onrightfns = "r['" + H.columnid + "']", ie.onrightfn = new Function("r", "var y;return " + ie.onrightfns), ie.hh = w2(ie.onrightfns), D.uniqs[ie.hh] = {}), H.foreignkey) {
          var ne = H.foreignkey.table, se = S.databases[ne.databaseid || r].tables[ne.tableid];
          if (ne.columnid === void 0) {
            if (!(se.pk.columns && 0 < se.pk.columns.length))
              throw new Error("FOREIGN KEY allowed only to tables with PRIMARY KEYs");
            ne.columnid = se.pk.columns[0];
          }
          D.checks.push({ fn: function(ee) {
            var nt = {};
            if (ee[H.columnid] === void 0 || (nt[ne.columnid] = ee[H.columnid], ee = se.pk.onrightfn(nt), se.uniqs[se.pk.hh][ee]))
              return !0;
            throw new Error("Foreign key violation");
          } });
        }
        H.onupdate && z.push("r['" + H.columnid + "']=" + H.onupdate.toJS("r", "")), D.columns.push(J), D.xcolumns[J.columnid] = J;
      }), D.defaultfns = k.join(","), D.onupdatefns = z.join(";"), _.forEach(function(H) {
        var ie;
        if (H.type === "PRIMARY KEY") {
          if (D.pk)
            throw new Error("Primary key already exists");
          var J = D.pk = {};
          J.columns = H.columns, J.onrightfns = J.columns.map(function(se) {
            return "r['" + se + "']";
          }).join("+'`'+"), J.onrightfn = new Function("r", "var y;return " + J.onrightfns), J.hh = w2(J.onrightfns), D.uniqs[J.hh] = {};
        } else if (H.type === "CHECK")
          ie = new Function("r", "var y;return " + H.expression.toJS("r", ""));
        else if (H.type === "UNIQUE")
          J = {}, D.uk = D.uk || [], D.uk.push(J), J.columns = H.columns, J.onrightfns = J.columns.map(function(se) {
            return "r['" + se + "']";
          }).join("+'`'+"), J.onrightfn = new Function("r", "var y;return " + J.onrightfns), J.hh = w2(J.onrightfns), D.uniqs[J.hh] = {};
        else if (H.type === "FOREIGN KEY") {
          var ne = H.fktable, J = (H.fkcolumns && 0 < H.fkcolumns.length && (ne.fkcolumns = H.fkcolumns), S.databases[ne.databaseid || r].tables[ne.tableid]);
          if (ne.fkcolumns === void 0 && (ne.fkcolumns = J.pk.columns), ne.columns = H.columns, ne.fkcolumns.length > ne.columns.length)
            throw new Error("Invalid foreign key on table " + D.tableid);
          ie = function(ee) {
            var nt = {};
            if (ne.fkcolumns.forEach(function(ut, kt) {
              ee[ne.columns[kt]] != null && (nt[ut] = ee[ne.columns[kt]]);
            }), Object.keys(nt).length === 0)
              return !0;
            if (Object.keys(nt).length !== ne.columns.length)
              throw new Error("Invalid foreign key on table " + D.tableid);
            var tt = S.databases[ne.databaseid || r].tables[ne.tableid], rt = tt.pk.onrightfn(nt);
            if (tt.uniqs[tt.pk.hh][rt])
              return !0;
            throw new Error("Foreign key violation");
          };
        }
        ie && D.checks.push({ fn: ie, id: H.constraintid, fk: H.type === "FOREIGN KEY" });
      }), this.view && this.viewcolumns && (h = this).viewcolumns.forEach(function(H, ie) {
        h.select.columns[ie].as = H.columnid;
      }), this.view && this.select && (D.view = !0, D.select = this.select.compile(this.table.databaseid || r)), d.engineid ? S.engines[d.engineid].createTable(this.table.databaseid || r, y, this.ifnotexists, m) : (D.insert = function(H, ie) {
        var J = S.inserted, ne = (S.inserted = [H], this), se = !1, ee = !1;
        for (g1 in ne.beforeinsert)
          (nt = ne.beforeinsert[g1]) && (nt.funcid ? S.fn[nt.funcid](H) === !1 && (ee = ee || !0) : nt.statement && nt.statement.execute(r) === !1 && (ee = ee || !0));
        if (!ee) {
          var nt, tt = !1;
          for (g1 in ne.insteadofinsert)
            tt = !0, (nt = ne.insteadofinsert[g1]) && (nt.funcid ? S.fn[nt.funcid](H) : nt.statement && nt.statement.execute(r));
          if (!tt) {
            for (var rt in ne.identities) {
              var ut = ne.identities[rt];
              H[rt] = ut.value;
            }
            if (ne.checks && 0 < ne.checks.length && ne.checks.forEach(function(y1) {
              if (!y1.fn(H))
                throw new Error("Violation of CHECK constraint " + (y1.id || ""));
            }), ne.columns.forEach(function(y1) {
              if (y1.notnull && H[y1.columnid] === void 0)
                throw new Error("Wrong NULL value in NOT NULL column " + y1.columnid);
            }), ne.pk) {
              var kt, S1 = (kt = ne.pk).onrightfn(H);
              if (ne.uniqs[kt.hh][S1] !== void 0) {
                if (!ie)
                  throw new Error("Cannot insert record, because it already exists in primary key index");
                se = ne.uniqs[kt.hh][S1];
              }
            }
            if (ne.uk && ne.uk.length && ne.uk.forEach(function(y1) {
              var Zt = y1.onrightfn(H);
              if (ne.uniqs[y1.hh][Zt] !== void 0) {
                if (!ie)
                  throw new Error("Cannot insert record, because it already exists in unique index");
                se = ne.uniqs[y1.hh][Zt];
              }
            }), se)
              ne.update(function(y1) {
                for (var Zt in H)
                  y1[Zt] = H[Zt];
              }, ne.data.indexOf(se), p);
            else {
              for (var rt in ne.data.push(H), ne.identities)
                (ut = ne.identities[rt]).value += ut.step;
              ne.pk && (S1 = (kt = ne.pk).onrightfn(H), ne.uniqs[kt.hh][S1] = H), ne.uk && ne.uk.length && ne.uk.forEach(function(y1) {
                var Zt = y1.onrightfn(H);
                ne.uniqs[y1.hh][Zt] = H;
              });
            }
            for (var g1 in ne.afterinsert)
              (nt = ne.afterinsert[g1]) && (nt.funcid ? S.fn[nt.funcid](H) : nt.statement && nt.statement.execute(r));
            S.inserted = J;
          }
        }
      }, D.delete = function(H) {
        var ie = this, J = ie.data[H], ne = !1;
        for (se in ie.beforedelete)
          (nt = ie.beforedelete[se]) && (nt.funcid ? S.fn[nt.funcid](J) === !1 && (ne = ne || !0) : nt.statement && nt.statement.execute(r) === !1 && (ne = ne || !0));
        if (ne)
          return !1;
        var se, ee = !1;
        for (se in ie.insteadofdelete) {
          var nt, ee = !0;
          (nt = ie.insteadofdelete[se]) && (nt.funcid ? S.fn[nt.funcid](J) : nt.statement && nt.statement.execute(r));
        }
        if (!ee) {
          if (this.pk) {
            var H = this.pk, tt = H.onrightfn(J);
            if (this.uniqs[H.hh][tt] === void 0)
              throw new Error("Something wrong with primary key index on table");
            this.uniqs[H.hh][tt] = void 0;
          }
          ie.uk && ie.uk.length && ie.uk.forEach(function(rt) {
            var ut = rt.onrightfn(J);
            if (ie.uniqs[rt.hh][ut] === void 0)
              throw new Error("Something wrong with unique index on table");
            ie.uniqs[rt.hh][ut] = void 0;
          });
        }
      }, D.deleteall = function() {
        this.data.length = 0, this.pk && (this.uniqs[this.pk.hh] = {}), D.uk && D.uk.length && D.uk.forEach(function(H) {
          D.uniqs[H.hh] = {};
        });
      }, D.update = function(H, ie, J) {
        var ne, se = qo(this.data[ie]);
        if (this.pk && ((ne = this.pk).pkaddr = ne.onrightfn(se, J), this.uniqs[ne.hh][ne.pkaddr] === void 0))
          throw new Error("Something wrong with index on table");
        D.uk && D.uk.length && D.uk.forEach(function(ut) {
          if (ut.ukaddr = ut.onrightfn(se), D.uniqs[ut.hh][ut.ukaddr] === void 0)
            throw new Error("Something wrong with unique index on table");
        }), H(se, J, S);
        var ee = !1;
        for (rt in D.beforeupdate)
          (tt = D.beforeupdate[rt]) && (tt.funcid ? S.fn[tt.funcid](this.data[ie], se) === !1 && (ee = ee || !0) : tt.statement && tt.statement.execute(r) === !1 && (ee = ee || !0));
        if (ee)
          return !1;
        var nt = !1;
        for (rt in D.insteadofupdate) {
          var tt, nt = !0;
          (tt = D.insteadofupdate[rt]) && (tt.funcid ? S.fn[tt.funcid](this.data[ie], se) : tt.statement && tt.statement.execute(r));
        }
        if (!nt) {
          if (D.checks && 0 < D.checks.length && D.checks.forEach(function(ut) {
            if (!ut.fn(se))
              throw new Error("Violation of CHECK constraint " + (ut.id || ""));
          }), D.columns.forEach(function(ut) {
            if (ut.notnull && se[ut.columnid] === void 0)
              throw new Error("Wrong NULL value in NOT NULL column " + ut.columnid);
          }), this.pk && (ne.newpkaddr = ne.onrightfn(se), this.uniqs[ne.hh][ne.newpkaddr] !== void 0 && ne.newpkaddr !== ne.pkaddr))
            throw new Error("Record already exists");
          for (var rt in D.uk && D.uk.length && D.uk.forEach(function(ut) {
            if (ut.newukaddr = ut.onrightfn(se), D.uniqs[ut.hh][ut.newukaddr] !== void 0 && ut.newukaddr !== ut.ukaddr)
              throw new Error("Record already exists");
          }), this.pk && (this.uniqs[ne.hh][ne.pkaddr] = void 0, this.uniqs[ne.hh][ne.newpkaddr] = se), D.uk && D.uk.length && D.uk.forEach(function(ut) {
            D.uniqs[ut.hh][ut.ukaddr] = void 0, D.uniqs[ut.hh][ut.newukaddr] = se;
          }), this.data[ie] = se, D.afterupdate)
            (tt = D.afterupdate[rt]) && (tt.funcid ? S.fn[tt.funcid](this.data[ie], se) : tt.statement && tt.statement.execute(r));
        }
      }, S.options.nocount || (O = 1), m ? m(O) : O);
    }, S.fn.Date = Object, S.fn.Date = Date, S.fn.Number = Number, S.fn.String = String, S.fn.Boolean = Boolean, nr.EXTEND = S.utils.extend, nr.CHAR = String.fromCharCode.bind(String), nr.ASCII = function(r) {
      return r.charCodeAt(0);
    }, nr.COALESCE = function() {
      for (var r = 0; r < arguments.length; r++)
        if (arguments[r] != null && (typeof arguments[r] != "number" || !isNaN(arguments[r])))
          return arguments[r];
    }, nr.USER = function() {
      return "alasql";
    }, nr.OBJECT_ID = function(r) {
      return !!S.tables[r];
    }, nr.DATE = function(r) {
      return /\d{8}/.test(r) ? new Date(+r.substr(0, 4), +r.substr(4, 2) - 1, +r.substr(6, 2)) : jn(r);
    }, nr.NOW = function() {
      var r = new Date(), p = r.getFullYear() + "-" + ("0" + (r.getMonth() + 1)).substr(-2) + "-" + ("0" + r.getDate()).substr(-2);
      return (p += " " + ("0" + r.getHours()).substr(-2) + ":" + ("0" + r.getMinutes()).substr(-2) + ":" + ("0" + r.getSeconds()).substr(-2)) + ("." + ("00" + r.getMilliseconds()).substr(-3));
    }, nr.GETDATE = nr.NOW, nr.CURRENT_TIMESTAMP = nr.NOW, nr.SECOND = function(r) {
      return (r = jn(r)).getSeconds();
    }, nr.MINUTE = function(r) {
      return (r = jn(r)).getMinutes();
    }, nr.HOUR = function(r) {
      return (r = jn(r)).getHours();
    }, nr.DAYOFWEEK = nr.WEEKDAY = function(r) {
      return (r = jn(r)).getDay();
    }, nr.DAY = nr.DAYOFMONTH = function(r) {
      return (r = jn(r)).getDate();
    }, nr.MONTH = function(r) {
      return (r = jn(r)).getMonth() + 1;
    }, nr.YEAR = function(r) {
      return (r = jn(r)).getFullYear();
    };
    var wa = { year: 31536e6, quarter: 7884e6, month: 2592e6, week: 6048e5, day: 864e5, dayofyear: 864e5, weekday: 864e5, hour: 36e5, minute: 6e4, second: 1e3, millisecond: 1, microsecond: 1e-3 }, U3 = (S.stdfn.DATEDIFF = function(r, p, m) {
      return (jn(m).getTime() - jn(p).getTime()) / wa[r.toLowerCase()];
    }, S.stdfn.DATEADD = function(r, p, m) {
      var d = jn(m);
      switch (r = r.toLowerCase()) {
        case "year":
          d.setFullYear(d.getFullYear() + p);
          break;
        case "quarter":
          d.setMonth(d.getMonth() + 3 * p);
          break;
        case "month":
          d.setMonth(d.getMonth() + p);
          break;
        default:
          d = new Date(d.getTime() + p * wa[r]);
      }
      return d;
    }, S.stdfn.INTERVAL = function(r, p) {
      return r * wa[p.toLowerCase()];
    }, S.stdfn.DATE_ADD = S.stdfn.ADDDATE = function(r, p) {
      return r = jn(r).getTime() + p, new Date(r);
    }, S.stdfn.DATE_SUB = S.stdfn.SUBDATE = function(r, p) {
      return r = jn(r).getTime() - p, new Date(r);
    }, /^\d{4}\.\d{2}\.\d{2} \d{2}:\d{2}:\d{2}/);
    function jn(r) {
      return typeof r == "string" && U3.test(r) && (r = r.replace(".", "-").replace(".", "-")), new Date(r);
    }
    function Ea(r) {
      var p = "";
      if (r === void 0)
        p += "undefined";
      else if (Array.isArray(r)) {
        var m, p = (p = (p = p + "<style>table {border:1px black solid; border-collapse: collapse; border-spacing: 0px;}") + "td,th {border:1px black solid; padding-left:5px; padding-right:5px}th {background-color: #EEE}") + "</style><table>", d = [];
        for (m in r[0])
          d.push(m);
        p += "<tr><th>#", d.forEach(function(h) {
          p += "<th>" + h;
        });
        for (var y = 0, l = r.length; y < l; y++)
          p += "<tr><th>" + (y + 1), d.forEach(function(h) {
            p += "<td> ", r[y][h] == +r[y][h] ? (p += '<div style="text-align:right">', r[y][h] === void 0 ? p += "NULL" : p += r[y][h], p += "</div>") : r[y][h] === void 0 ? p += "NULL" : typeof r[y][h] == "string" ? p += r[y][h] : p += Xs(r[y][h]);
          });
        p += "</table>";
      } else
        p += "<p>" + Xs(r) + "</p>";
      return p;
    }
    function r3(r, p, m) {
      var d;
      m <= 0 || (d = (p - r.scrollTop) / m * 10, setTimeout(function() {
        r.scrollTop !== p && (r.scrollTop = r.scrollTop + d, r3(r, p, m - 10));
      }, 10));
    }
    function Vn(r, p, m, d, y, l) {
      var _ = {};
      function h(O) {
        return O && S.options.casesensitive === !1 ? O.toLowerCase() : O;
      }
      m = m || {}, S.utils.extend(_, m), _.headers === void 0 && (_.headers = !0), p = S.utils.autoExtFilename(p, "xls", m), S.utils.loadBinaryFile(p, !!d, function(O) {
        D = O instanceof ArrayBuffer ? (H = function(S1) {
          for (var g1 = "", y1 = 0, Zt = 10240; y1 < S1.byteLength / Zt; ++y1)
            g1 += String.fromCharCode.apply(null, new Uint8Array(S1.slice(y1 * Zt, y1 * Zt + Zt)));
          return g1 += String.fromCharCode.apply(null, new Uint8Array(S1.slice(y1 * Zt)));
        }(O), r.read(btoa(H), { type: "base64", ...S.options.excel, ...m })) : r.read(O, { type: "binary", ...S.options.excel, ...m }), k = _.sheetid === void 0 ? D.SheetNames[0] : typeof _.sheetid == "number" ? D.SheetNames[_.sheetid] : _.sheetid;
        var D, k, z = [];
        if (_.range === void 0 ? J = D.Sheets[k]["!ref"] : (J = _.range, D.Sheets[k][J] && (J = D.Sheets[k][J])), J) {
          for (var H = J.split(":"), O = H[0].match(/[A-Z]+/)[0], ie = +H[0].match(/[0-9]+/)[0], J = H[1].match(/[A-Z]+/)[0], ne = +H[1].match(/[0-9]+/)[0], se = {}, ee = S.utils.xlscn(O), nt = S.utils.xlscn(J), tt = ee; tt <= nt; tt++) {
            var rt = S.utils.xlsnc(tt);
            _.headers ? D.Sheets[k][rt + "" + ie] ? se[rt] = h(D.Sheets[k][rt + "" + ie].v) : se[rt] = h(rt) : se[rt] = rt;
          }
          _.headers && ie++;
          for (var ut = ie; ut <= ne; ut++) {
            for (var kt = {}, tt = ee; tt <= nt; tt++)
              rt = S.utils.xlsnc(tt), D.Sheets[k][rt + "" + ut] && (kt[se[rt]] = D.Sheets[k][rt + "" + ut].v);
            z.push(kt);
          }
        } else
          z.push([]);
        0 < z.length && z[z.length - 1] && Object.keys(z[z.length - 1]).length == 0 && z.pop(), d && d(z, y, l);
      }, function(O) {
        throw O;
      });
    }
    $.DropTable = function(r) {
      return $.extend(this, r);
    }, $.DropTable.prototype.toString = function() {
      var r = "DROP ";
      return this.view ? r += "VIEW" : r += "TABLE", this.ifexists && (r += " IF EXISTS"), r += " " + this.tables.toString();
    }, $.DropTable.prototype.execute = function(r, p, m) {
      var d = this.ifexists, y = 0, l = 0, _ = this.tables.length;
      return this.tables.forEach(function(h) {
        var O = S.databases[h.databaseid || r], D = h.tableid;
        if (!d || O.tables[D]) {
          if (O.tables[D])
            O.engineid ? S.engines[O.engineid].dropTable(h.databaseid || r, D, d, function(k) {
              delete O.tables[D], y += k, ++l == _ && m && m(y);
            }) : (delete O.tables[D], y++, ++l == _ && m && m(y));
          else if (!S.options.dropifnotexists)
            throw new Error("Can not drop table '" + h.tableid + "', because it does not exist in the database.");
        } else
          ++l == _ && m && m(y);
      }), y;
    }, $.TruncateTable = function(r) {
      return $.extend(this, r);
    }, $.TruncateTable.prototype.toString = function() {
      var r = "TRUNCATE TABLE";
      return r += " " + this.table.toString();
    }, $.TruncateTable.prototype.execute = function(r, p, m) {
      var d = S.databases[this.table.databaseid || r], y = this.table.tableid;
      if (d.engineid)
        return S.engines[d.engineid].truncateTable(this.table.databaseid || r, y, this.ifexists, m);
      if (d.tables[y])
        return d.tables[y].data = [], m ? m(0) : 0;
      throw new Error("Cannot truncate table becaues it does not exist");
    }, $.CreateVertex = function(r) {
      return $.extend(this, r);
    }, $.CreateVertex.prototype.toString = function() {
      var r = "CREATE VERTEX ";
      return this.class && (r += this.class + " "), this.sharp && (r += "#" + this.sharp + " "), this.sets ? r += this.sets.toString() : this.content ? r += this.content.toString() : this.select && (r += this.select.toString()), r;
    }, $.CreateVertex.prototype.toJS = function(r) {
      return "this.queriesfn[" + (this.queriesidx - 1) + "](this.params,null," + r + ")";
    }, $.CreateVertex.prototype.compile = function(r) {
      var p, m, d, y = r, l = this.sharp;
      return this.name !== void 0 && (m = "x.name=" + this.name.toJS(), p = new Function("x", m)), this.sets && 0 < this.sets.length && (m = this.sets.map(function(_) {
        return "x['" + _.column.columnid + "']=" + _.expression.toJS("x", "");
      }).join(";"), d = new Function("x,params,alasql", m)), function(_, h) {
        var D = S.databases[y], O = l !== void 0 ? l : D.counter++, O = { $id: O, $node: "VERTEX" }, D = D.objects[O.$id] = O;
        return p && p(O), d && d(O, _, S), D = h ? h(D) : D;
      };
    }, $.CreateEdge = function(r) {
      return $.extend(this, r);
    }, $.CreateEdge.prototype.toString = function() {
      var r = "CREATE EDGE ";
      return this.class && (r += this.class + " "), r;
    }, $.CreateEdge.prototype.toJS = function(r) {
      return "this.queriesfn[" + (this.queriesidx - 1) + "](this.params,null," + r + ")";
    }, $.CreateEdge.prototype.compile = function(r) {
      var p, m, d, y = r, l = new Function("params,alasql", "var y;return " + this.from.toJS()), _ = new Function("params,alasql", "var y;return " + this.to.toJS());
      return this.name !== void 0 && (m = "x.name=" + this.name.toJS(), p = new Function("x", m)), this.sets && 0 < this.sets.length && (m = this.sets.map(function(h) {
        return "x['" + h.column.columnid + "']=" + h.expression.toJS("x", "");
      }).join(";"), d = new Function("x,params,alasql", "var y;" + m)), function(h, O) {
        var D = 0, k = S.databases[y], z = { $id: k.counter++, $node: "EDGE" }, H = l(h, S), ie = _(h, S);
        return z.$in = [H.$id], z.$out = [ie.$id], H.$out === void 0 && (H.$out = []), H.$out.push(z.$id), ie.$in, ie.$in.push(z.$id), D = k.objects[z.$id] = z, p && p(z), d && d(z, h, S), D = O ? O(D) : D;
      };
    }, $.CreateGraph = function(r) {
      return $.extend(this, r);
    }, $.CreateGraph.prototype.toString = function() {
      var r = "CREATE GRAPH ";
      return this.class && (r += this.class + " "), r;
    }, $.CreateGraph.prototype.execute = function(r, p, m) {
      var d = [];
      return this.from && S.from[this.from.funcid] && (this.graph = S.from[this.from.funcid.toUpperCase()]), this.graph.forEach(function(_) {
        if (_.source) {
          var h, O, D, k, z = {}, H = (_.as !== void 0 && (S.vars[_.as] = z), _.prop !== void 0 && (z.name = _.prop), _.sharp !== void 0 && (z.$id = _.sharp), _.name !== void 0 && (z.name = _.name), _.class !== void 0 && (z.$class = _.class), S.databases[r]);
          if (z.$id === void 0 && (z.$id = H.counter++), z.$node = "EDGE", _.json !== void 0 && rr(z, new Function("params,alasql", "var y;return " + _.json.toJS())(p, S)), _.source.vars ? h = typeof (O = S.vars[_.source.vars]) == "object" ? O : H.objects[O] : ((k = _.source.sharp) === void 0 && (k = _.source.prop), (h = S.databases[r].objects[k]) !== void 0 || !S.options.autovertex || _.source.prop === void 0 && _.source.name === void 0 || (h = y(_.source.prop || _.source.name)) === void 0 && (h = l(_.source))), _.source.vars ? D = typeof (O = S.vars[_.target.vars]) == "object" ? O : H.objects[O] : ((k = _.target.sharp) === void 0 && (k = _.target.prop), (D = S.databases[r].objects[k]) !== void 0 || !S.options.autovertex || _.target.prop === void 0 && _.target.name === void 0 || (D = y(_.target.prop || _.target.name)) === void 0 && (D = l(_.target))), z.$in = [h.$id], z.$out = [D.$id], h.$out === void 0 && (h.$out = []), h.$out.push(z.$id), D.$in === void 0 && (D.$in = []), D.$in.push(z.$id), (H.objects[z.$id] = z).$class !== void 0) {
            if (S.databases[r].tables[z.$class] === void 0)
              throw new Error("No such class. Pleace use CREATE CLASS");
            S.databases[r].tables[z.$class].data.push(z);
          }
          d.push(z.$id);
        } else
          l(_);
      }), d = m ? m(d) : d;
      function y(_) {
        var h, O = S.databases[S.useid].objects;
        for (h in O)
          if (O[h].name === _)
            return O[h];
      }
      function l(_) {
        var h = {}, O = (_.as !== void 0 && (S.vars[_.as] = h), _.prop !== void 0 && (h.$id = _.prop, h.name = _.prop), _.sharp !== void 0 && (h.$id = _.sharp), _.name !== void 0 && (h.name = _.name), _.class !== void 0 && (h.$class = _.class), S.databases[r]);
        if (h.$id === void 0 && (h.$id = O.counter++), h.$node = "VERTEX", _.json !== void 0 && rr(h, new Function("params,alasql", "var y;return " + _.json.toJS())(p, S)), (O.objects[h.$id] = h).$class !== void 0) {
          if (S.databases[r].tables[h.$class] === void 0)
            throw new Error("No such class. Pleace use CREATE CLASS");
          S.databases[r].tables[h.$class].data.push(h);
        }
        return d.push(h.$id), h;
      }
    }, $.CreateGraph.prototype.compile1 = function(r) {
      var p, m, d, y = r, l = new Function("params,alasql", "var y;return " + this.from.toJS()), _ = new Function("params,alasql", "var y;return " + this.to.toJS());
      return this.name !== void 0 && (m = "x.name=" + this.name.toJS(), p = new Function("x", m)), this.sets && 0 < this.sets.length && (m = this.sets.map(function(h) {
        return "x['" + h.column.columnid + "']=" + h.expression.toJS("x", "");
      }).join(";"), d = new Function("x,params,alasql", "var y;" + m)), function(h, O) {
        var D = 0, k = S.databases[y], z = { $id: k.counter++, $node: "EDGE" }, H = l(h, S), ie = _(h, S);
        return z.$in = [H.$id], z.$out = [ie.$id], H.$out === void 0 && (H.$out = []), H.$out.push(z.$id), ie.$in === void 0 && (ie.$in = []), ie.$in.push(z.$id), D = k.objects[z.$id] = z, p && p(z), d && d(z, h, S), D = O ? O(D) : D;
      };
    }, $.AlterTable = function(r) {
      return $.extend(this, r);
    }, $.AlterTable.prototype.toString = function() {
      var r = "ALTER TABLE " + this.table.toString();
      return this.renameto && (r += " RENAME TO " + this.renameto), r;
    }, $.AlterTable.prototype.execute = function(r, p, m) {
      if ((J = S.databases[r]).dbversion = Date.now(), this.renameto) {
        var d = this.table.tableid, y = this.renameto, l = 1;
        if (J.tables[y])
          throw new Error("Can not rename a table '" + d + "' to '" + y + "', because the table with this name already exists");
        if (y === d)
          throw new Error("Can not rename a table '" + d + "' to itself");
        return J.tables[y] = J.tables[d], delete J.tables[d], l = 1, m && m(l), l;
      }
      if (this.addcolumn) {
        (J = S.databases[this.table.databaseid || r]).dbversion++;
        var _ = this.table.tableid, h = J.tables[_], O = this.addcolumn.columnid;
        if (h.xcolumns[O])
          throw new Error('Cannot add column "' + O + '", because it already exists in the table "' + _ + '"');
        var D = { columnid: O, dbtypeid: this.addcolumn.dbtypeid, dbsize: this.dbsize, dbprecision: this.dbprecision, dbenum: this.dbenum, defaultfns: null };
        h.columns.push(D), h.xcolumns[O] = D;
        for (var k = 0, z = h.data.length; k < z; k++)
          h.data[k][O] = void 0;
        return m ? m(1) : 1;
      }
      if (this.modifycolumn) {
        if (_ = ((J = S.databases[this.table.databaseid || r]).dbversion++, this.table.tableid), h = J.tables[_], O = this.modifycolumn.columnid, h.xcolumns[O])
          return (D = h.xcolumns[O]).dbtypeid = this.dbtypeid, D.dbsize = this.dbsize, D.dbprecision = this.dbprecision, D.dbenum = this.dbenum, m ? m(1) : 1;
        throw new Error('Cannot modify column "' + O + '", because it was not found in the table "' + _ + '"');
      }
      if (this.renamecolumn) {
        (J = S.databases[this.table.databaseid || r]).dbversion++;
        var _ = this.table.tableid, h = J.tables[_], O = this.renamecolumn, H = this.to;
        if (!h.xcolumns[O])
          throw new Error('Column "' + O + '" is not found in the table "' + _ + '"');
        if (h.xcolumns[H])
          throw new Error('Column "' + H + '" already exists in the table "' + _ + '"');
        if (O == H)
          return m ? m(0) : 0;
        for (var ie = 0; ie < h.columns.length; ie++)
          h.columns[ie].columnid == O && (h.columns[ie].columnid = H);
        for (h.xcolumns[H] = h.xcolumns[O], delete h.xcolumns[O], k = 0, z = h.data.length; k < z; k++)
          h.data[k][H] = h.data[k][O], delete h.data[k][O];
        return h.data.length;
      }
      if (this.dropcolumn) {
        (J = S.databases[this.table.databaseid || r]).dbversion++;
        for (var J, _ = this.table.tableid, h = J.tables[_], O = this.dropcolumn, ne = !1, ie = 0; ie < h.columns.length; ie++)
          if (h.columns[ie].columnid == O) {
            ne = !0, h.columns.splice(ie, 1);
            break;
          }
        if (!ne)
          throw new Error('Cannot drop column "' + O + '", because it was not found in the table "' + _ + '"');
        for (delete h.xcolumns[O], k = 0, z = h.data.length; k < z; k++)
          delete h.data[k][O];
        return m ? m(h.data.length) : h.data.length;
      }
      throw Error("Unknown ALTER TABLE method");
    }, $.CreateIndex = function(r) {
      return $.extend(this, r);
    }, $.CreateIndex.prototype.toString = function() {
      var r = "CREATE";
      return this.unique && (r += " UNIQUE"), r = (r += " INDEX " + this.indexid + " ON " + this.table.toString()) + ("(" + this.columns.toString() + ")");
    }, $.CreateIndex.prototype.execute = function(d, p, m) {
      var d = S.databases[d], y = this.table.tableid, l = d.tables[y], _ = this.indexid, h = (d.indices[_] = y, this.columns.map(function(J) {
        return J.expression.toJS("r", "");
      }).join("+'`'+")), O = new Function("r,params,alasql", "return " + h);
      if (this.unique) {
        l.uniqdefs[_] = { rightfns: h };
        var D = l.uniqs[_] = {};
        if (0 < l.data.length)
          for (var k = 0, z = l.data.length; k < z; k++)
            D[ie = h(l.data[k])] || (D[ie] = { num: 0 }), D[ie].num++;
      } else {
        var d = w2(h), H = (l.inddefs[_] = { rightfns: h, hh: d }, l.indices[d] = {}, l.indices[d] = {});
        if (0 < l.data.length)
          for (var ie, k = 0, z = l.data.length; k < z; k++)
            H[ie = O(l.data[k], p, S)] || (H[ie] = []), H[ie].push(l.data[k]);
      }
      return y = 1, y = m ? m(y) : y;
    }, $.Reindex = function(r) {
      return $.extend(this, r);
    }, $.Reindex.prototype.toString = function() {
      return "REINDEX " + this.indexid;
    }, $.Reindex.prototype.execute = function(y, p, m) {
      var y = S.databases[y], d = this.indexid, d = y.indices[d], y = (y.tables[d].indexColumns(), 1);
      return y = m ? m(y) : y;
    }, $.DropIndex = function(r) {
      return $.extend(this, r);
    }, $.DropIndex.prototype.toString = function() {
      return "DROP INDEX" + this.indexid;
    }, $.DropIndex.prototype.compile = function(r) {
      return this.indexid, function() {
        return 1;
      };
    }, $.WithSelect = function(r) {
      return $.extend(this, r);
    }, $.WithSelect.prototype.toString = function() {
      var r = "WITH ";
      return (r += this.withs.map(function(p) {
        return p.name + " AS (" + p.select.toString() + ")";
      }).join(",") + " ") + this.select.toString();
    }, $.WithSelect.prototype.execute = function(r, p, m) {
      var d = this, y = [];
      return d.withs.forEach(function(l) {
        y.push(S.databases[r].tables[l.name]), (S.databases[r].tables[l.name] = new ws({ tableid: l.name })).data = l.select.execute(r, p);
      }), this.select.execute(r, p, function(l) {
        return d.withs.forEach(function(_, h) {
          y[h] ? S.databases[r].tables[_.name] = y[h] : delete S.databases[r].tables[_.name];
        }), l = m ? m(l) : l;
      });
    }, $.If = function(r) {
      return $.extend(this, r);
    }, $.If.prototype.toString = function() {
      var r = "IF ", r = (r += this.expression.toString()) + (" " + this.thenstat.toString());
      return this.elsestat && (r += " ELSE " + this.thenstat.toString()), r;
    }, $.If.prototype.execute = function(r, p, m) {
      var d;
      return new Function("params,alasql,p", "var y;return " + this.expression.toJS("({})", "", null)).bind(this)(p, S) ? d = this.thenstat.execute(r, p, m) : this.elsestat ? d = this.elsestat.execute(r, p, m) : m && (d = m(d)), d;
    }, $.While = function(r) {
      return $.extend(this, r);
    }, $.While.prototype.toString = function() {
      var r = "WHILE ";
      return (r += this.expression.toString()) + (" " + this.loopstat.toString());
    }, $.While.prototype.execute = function(r, p, m) {
      var d = this, y = [], l = new Function("params,alasql,p", "var y;return " + this.expression.toJS());
      if (m) {
        var _ = !1, h = function(D) {
          _ ? y.push(D) : _ = !0, setTimeout(function() {
            l(p, S) ? d.loopstat.execute(r, p, h) : y = m(y);
          }, 0);
        };
        h();
      } else
        for (; l(p, S); ) {
          var O = d.loopstat.execute(r, p);
          y.push(O);
        }
      return y;
    }, $.Break = function(r) {
      return $.extend(this, r);
    }, $.Break.prototype.toString = function() {
      return "BREAK";
    }, $.Break.prototype.execute = function(r, p, m, d) {
      var y = 1;
      return y = m ? m(y) : y;
    }, $.Continue = function(r) {
      return $.extend(this, r);
    }, $.Continue.prototype.toString = function() {
      return "CONTINUE";
    }, $.Continue.prototype.execute = function(r, p, m, d) {
      var y = 1;
      return y = m ? m(y) : y;
    }, $.BeginEnd = function(r) {
      return $.extend(this, r);
    }, $.BeginEnd.prototype.toString = function() {
      return "BEGIN " + this.statements.toString() + " END";
    }, $.BeginEnd.prototype.execute = function(r, p, m, d) {
      var y = this, l = [], _ = 0;
      return function h() {
        y.statements[_].execute(r, p, function(O) {
          if (l.push(O), ++_ < y.statements.length)
            return h();
          m && (l = m(l));
        });
      }(), l;
    }, $.Insert = function(r) {
      return $.extend(this, r);
    }, $.Insert.prototype.toString = function() {
      var r = "INSERT ";
      return this.orreplace && (r += "OR REPLACE "), this.replaceonly && (r = "REPLACE "), r += "INTO " + this.into.toString(), this.columns && (r += "(" + this.columns.toString() + ")"), this.values && (r += " VALUES " + this.values.map(function(p) {
        return "(" + p.toString() + ")";
      }).join(",")), this.select && (r += " " + this.select.toString()), r;
    }, $.Insert.prototype.toJS = function(r, p, m) {
      return "this.queriesfn[" + (this.queriesidx - 1) + "](this.params,null," + r + ")";
    }, $.Insert.prototype.compile = function(r) {
      var p = this, m = (r = p.into.databaseid || r, S.databases[r]), d = p.into.tableid, y = m.tables[d];
      if (!y)
        throw "Table '" + d + "' could not be found";
      var l, h = "", _ = "", h = "db.tables['" + d + "'].dirty=true;", O = "var a,aa=[],x;";
      if (this.values) {
        this.exists && (this.existsfn = this.exists.map(function(H) {
          return H = H.compile(r), H.query.modifier = "RECORDSET", H;
        })), this.queries && (this.queriesfn = this.queries.map(function(H) {
          return H = H.compile(r), H.query.modifier = "RECORDSET", H;
        })), p.values.forEach(function(H) {
          var ie = [];
          p.columns ? p.columns.forEach(function(J, ne) {
            var se = "'" + J.columnid + "':";
            y.xcolumns && y.xcolumns[J.columnid] ? 0 <= ["INT", "FLOAT", "NUMBER", "MONEY"].indexOf(y.xcolumns[J.columnid].dbtypeid) ? se += "(x=" + H[ne].toJS() + ",x==undefined?undefined:+x)" : S.fn[y.xcolumns[J.columnid].dbtypeid] ? se = (se += "(new " + y.xcolumns[J.columnid].dbtypeid + "(") + H[ne].toJS() + "))" : se += H[ne].toJS() : se += H[ne].toJS(), ie.push(se);
          }) : Array.isArray(H) && y.columns && 0 < y.columns.length ? y.columns.forEach(function(J, ne) {
            var se = "'" + J.columnid + "':";
            0 <= ["INT", "FLOAT", "NUMBER", "MONEY"].indexOf(J.dbtypeid) ? se += "+" + H[ne].toJS() : S.fn[J.dbtypeid] ? se = (se += "(new " + J.dbtypeid + "(") + H[ne].toJS() + "))" : se += H[ne].toJS(), ie.push(se);
          }) : _ = Xo(H), m.tables[d].defaultfns && ie.unshift(m.tables[d].defaultfns), h += _ ? "a=" + _ + ";" : "a={" + ie.join(",") + "};", m.tables[d].isclass && (h = h + "var db=alasql.databases['" + r + `'];a.$class="` + d + '";a.$id=db.counter++;db.objects[a.$id]=a;'), m.tables[d].insert ? h = (h += "var db=alasql.databases['" + r + "'];") + "db.tables['" + d + "'].insert(a," + (p.orreplace ? "true" : "false") + ");" : h += "aa.push(a);";
        }), l = O + h, m.tables[d].insert || (h += "alasql.databases['" + r + "'].tables['" + d + "'].data=alasql.databases['" + r + "'].tables['" + d + "'].data.concat(aa);"), m.tables[d].insert && m.tables[d].isclass ? h += "return a.$id;" : h += "return " + p.values.length;
        var D = new Function("db, params, alasql", "var y;" + O + h).bind(this);
      } else if (this.select) {
        this.select.modifier = "RECORDSET";
        var k, z = this.select.compile(r);
        if (m.engineid && S.engines[m.engineid].intoTable)
          return function(H, ie) {
            return H = z(H), S.engines[m.engineid].intoTable(m.databaseid, d, H.data, null, ie);
          };
        O = "return alasql.utils.extend(r,{" + y.defaultfns + "})", k = new Function("r,db,params,alasql", O), D = function(H, ie, J) {
          var ne = z(ie).data;
          if (H.tables[d].insert)
            for (var se = 0, ee = ne.length; se < ee; se++) {
              var nt = qo(ne[se]);
              k(nt, H, ie, J), H.tables[d].insert(nt, p.orreplace);
            }
          else
            H.tables[d].data = H.tables[d].data.concat(ne);
          return J.options.nocount ? void 0 : ne.length;
        };
      } else {
        if (!this.default)
          throw new Error("Wrong INSERT parameters");
        O = "db.tables['" + d + "'].data.push({" + y.defaultfns + "});return 1;", D = new Function("db,params,alasql", O);
      }
      return m.engineid && S.engines[m.engineid].intoTable && S.options.autocommit ? function(H, ie) {
        return H = new Function("db,params", "var y;" + l + "return aa;")(m, H), S.engines[m.engineid].intoTable(m.databaseid, d, H, null, ie);
      } : function(ne, ie) {
        var J = S.databases[r], ne = (S.options.autocommit && J.engineid && S.engines[J.engineid].loadTableData(r, d), D(J, ne, S));
        return S.options.autocommit && J.engineid && S.engines[J.engineid].saveTableData(r, d), S.options.nocount && (ne = void 0), ie && ie(ne), ne;
      };
    }, $.Insert.prototype.execute = function(r, p, m) {
      return this.compile(r)(p, m);
    }, $.CreateTrigger = function(r) {
      return $.extend(this, r);
    }, $.CreateTrigger.prototype.toString = function() {
      var r = "CREATE TRIGGER " + this.trigger + " ";
      return this.when && (r += this.when + " "), r += this.action + " ON ", this.table.databaseid && (r += this.table.databaseid + "."), r = (r += this.table.tableid + " ") + this.statement.toString();
    }, $.CreateTrigger.prototype.execute = function(l, p, m) {
      var d = 1, y = this.trigger, l = (l = this.table.databaseid || l, S.databases[l]), _ = this.table.tableid, h = { action: this.action, when: this.when, statement: this.statement, funcid: this.funcid, tableid: this.table.tableid };
      return (l.triggers[y] = h).action == "INSERT" && h.when == "BEFORE" ? l.tables[_].beforeinsert[y] = h : h.action == "INSERT" && h.when == "AFTER" ? l.tables[_].afterinsert[y] = h : h.action == "INSERT" && h.when == "INSTEADOF" ? l.tables[_].insteadofinsert[y] = h : h.action == "DELETE" && h.when == "BEFORE" ? l.tables[_].beforedelete[y] = h : h.action == "DELETE" && h.when == "AFTER" ? l.tables[_].afterdelete[y] = h : h.action == "DELETE" && h.when == "INSTEADOF" ? l.tables[_].insteadofdelete[y] = h : h.action == "UPDATE" && h.when == "BEFORE" ? l.tables[_].beforeupdate[y] = h : h.action == "UPDATE" && h.when == "AFTER" ? l.tables[_].afterupdate[y] = h : h.action == "UPDATE" && h.when == "INSTEADOF" && (l.tables[_].insteadofupdate[y] = h), d = m ? m(d) : d;
    }, $.DropTrigger = function(r) {
      return $.extend(this, r);
    }, $.DropTrigger.prototype.toString = function() {
      return "DROP TRIGGER " + this.trigger;
    }, $.DropTrigger.prototype.execute = function(y, p, m) {
      var d = 0, y = S.databases[y], l = this.trigger;
      if (!y.triggers[l])
        throw new Error("Trigger not found");
      var _ = y.triggers[l].tableid;
      if (_)
        return d = 1, delete y.tables[_].beforeinsert[l], delete y.tables[_].afterinsert[l], delete y.tables[_].insteadofinsert[l], delete y.tables[_].beforedelete[l], delete y.tables[_].afterdelete[l], delete y.tables[_].insteadofdelete[l], delete y.tables[_].beforeupdate[l], delete y.tables[_].afterupdate[l], delete y.tables[_].insteadofupdate[l], delete y.triggers[l], d = m ? m(d) : d;
      throw new Error("Trigger Table not found");
    }, $.Delete = function(r) {
      return $.extend(this, r);
    }, $.Delete.prototype.toString = function() {
      var r = "DELETE FROM " + this.table.toString();
      return this.where && (r += " WHERE " + this.where.toString()), r;
    }, $.Delete.prototype.compile = function(r) {
      r = this.table.databaseid || r;
      var p, m = this.table.tableid, d = S.databases[r];
      return this.where ? (this.exists && (this.existsfn = this.exists.map(function(y) {
        return y = y.compile(r), y.query.modifier = "RECORDSET", y;
      })), this.queries && (this.queriesfn = this.queries.map(function(y) {
        return y = y.compile(r), y.query.modifier = "RECORDSET", y;
      })), p = new Function("r,params,alasql", "var y;return (" + this.where.toJS("r", "") + ")").bind(this), function(y, l) {
        if (d.engineid && S.engines[d.engineid].deleteFromTable)
          return S.engines[d.engineid].deleteFromTable(r, m, p, y, l);
        S.options.autocommit && d.engineid && (d.engineid == "LOCALSTORAGE" || d.engineid == "FILESTORAGE") && S.engines[d.engineid].loadTableData(r, m);
        for (var _, h = d.tables[m], O = h.data.length, D = [], k = 0, z = h.data.length; k < z; k++)
          p(h.data[k], y, S) ? h.delete && h.delete(k, y, S) : D.push(h.data[k]);
        for (_ in h.data = D, h.afterdelete) {
          var H = h.afterdelete[_];
          H && (H.funcid ? S.fn[H.funcid]() : H.statement && H.statement.execute(r));
        }
        return O -= h.data.length, S.options.autocommit && d.engineid && (d.engineid == "LOCALSTORAGE" || d.engineid == "FILESTORAGE") && S.engines[d.engineid].saveTableData(r, m), l && l(O), O;
      }) : function(y, l) {
        S.options.autocommit && d.engineid && S.engines[d.engineid].loadTableData(r, m), d.tables[m].dirty = !0;
        var _, h = d.tables[m].data.length;
        for (_ in d.tables[m].data.length = 0, d.tables[m].uniqs)
          d.tables[m].uniqs[_] = {};
        for (_ in d.tables[m].indices)
          d.tables[m].indices[_] = {};
        return S.options.autocommit && d.engineid && S.engines[d.engineid].saveTableData(r, m), l && l(h), h;
      };
    }, $.Delete.prototype.execute = function(r, p, m) {
      return this.compile(r)(p, m);
    }, $.Update = function(r) {
      return $.extend(this, r);
    }, $.Update.prototype.toString = function() {
      var r = "UPDATE " + this.table.toString();
      return this.columns && (r += " SET " + this.columns.toString()), this.where && (r += " WHERE " + this.where.toString()), r;
    }, $.SetColumn = function(r) {
      return $.extend(this, r);
    }, $.SetColumn.prototype.toString = function() {
      return this.column.toString() + "=" + this.expression.toString();
    }, $.Update.prototype.compile = function(r) {
      r = this.table.databaseid || r;
      var p, m = this.table.tableid, d = (this.where && (this.exists && (this.existsfn = this.exists.map(function(l) {
        return l = l.compile(r), l.query.modifier = "RECORDSET", l;
      })), this.queries && (this.queriesfn = this.queries.map(function(l) {
        return l = l.compile(r), l.query.modifier = "RECORDSET", l;
      })), p = new Function("r,params,alasql", "var y;return " + this.where.toJS("r", "")).bind(this)), S.databases[r].tables[m].onupdatefns || ""), y = (d += ";", this.columns.forEach(function(l) {
        d += "r['" + l.column.columnid + "']=" + l.expression.toJS("r", "") + ";";
      }), new Function("r,params,alasql", "var y;" + d));
      return function(l, _) {
        var h = S.databases[r];
        if (h.engineid && S.engines[h.engineid].updateTable)
          return S.engines[h.engineid].updateTable(r, m, y, p, l, _);
        S.options.autocommit && h.engineid && S.engines[h.engineid].loadTableData(r, m);
        var O = h.tables[m];
        if (!O)
          throw new Error("Table '" + m + "' not exists");
        for (var D = 0, k = 0, z = O.data.length; k < z; k++)
          p && !p(O.data[k], l, S) || (O.update ? O.update(y, k, l) : y(O.data[k], l, S), D++);
        return S.options.autocommit && h.engineid && S.engines[h.engineid].saveTableData(r, m), _ && _(D), D;
      };
    }, $.Update.prototype.execute = function(r, p, m) {
      return this.compile(r)(p, m);
    }, $.Merge = function(r) {
      return $.extend(this, r);
    }, $.Merge.prototype.toString = function() {
      var r = "MERGE ";
      return r += this.into.tableid + " ", this.into.as && (r += "AS " + this.into.as + " "), r += "USING " + this.using.tableid + " ", this.using.as && (r += "AS " + this.using.as + " "), r += "ON " + this.on.toString() + " ", this.matches.forEach(function(p) {
        r += "WHEN ", p.matched || (r += "NOT "), r += "MATCHED ", p.bytarget && (r += "BY TARGET "), p.bysource && (r += "BY SOURCE "), p.expr && (r += "AND " + p.expr.toString() + " "), r += "THEN ", p.action.delete && (r += "DELETE "), p.action.insert && (r += "INSERT ", p.action.columns && (r += "(" + p.action.columns.toString() + ") "), p.action.values && (r += "VALUES (" + p.action.values.toString() + ") "), p.action.defaultvalues && (r += "DEFAULT VALUES ")), p.action.update && (r = (r += "UPDATE ") + p.action.update.map(function(m) {
          return m.toString();
        }).join(",") + " ");
      }), r;
    }, $.Merge.prototype.execute = function(r, p, m) {
      var d = 1;
      return d = m ? m(d) : d;
    }, $.CreateDatabase = function(r) {
      return $.extend(this, r);
    }, $.CreateDatabase.prototype.toString = function() {
      var r = "CREATE";
      return this.engineid && (r += " " + this.engineid), r += " DATABASE", this.ifnotexists && (r += " IF NOT EXISTS"), r += " " + this.databaseid, this.args && 0 < this.args.length && (r += "(" + this.args.map(function(p) {
        return p.toString();
      }).join(", ") + ")"), this.as && (r += " AS " + this.as), r;
    }, $.CreateDatabase.prototype.execute = function(r, p, m) {
      if (this.args && 0 < this.args.length && this.args.map(function(l) {
        return new Function("params,alasql", "var y;return " + l.toJS())(p, S);
      }), this.engineid)
        return y = S.engines[this.engineid].createDatabase(this.databaseid, this.args, this.ifnotexists, this.as, m);
      var d = this.databaseid;
      if (S.databases[d])
        throw new Error("Database '" + d + "' already exists");
      new S.Database(d);
      var y = 1;
      return m ? m(y) : y;
    }, $.AttachDatabase = function(r) {
      return $.extend(this, r);
    }, $.AttachDatabase.prototype.toString = function(r) {
      var p = "ATTACH";
      return this.engineid && (p += " " + this.engineid), p += " DATABASE " + this.databaseid, r && (p += "(", 0 < r.length && (p += r.map(function(m) {
        return m.toString();
      }).join(", ")), p += ")"), this.as && (p += " AS " + this.as), p;
    }, $.AttachDatabase.prototype.execute = function(r, p, m) {
      if (S.engines[this.engineid])
        return S.engines[this.engineid].attachDatabase(this.databaseid, this.as, this.args, p, m);
      throw new Error('Engine "' + this.engineid + '" is not defined.');
    }, $.DetachDatabase = function(r) {
      return $.extend(this, r);
    }, $.DetachDatabase.prototype.toString = function() {
      var r = "DETACH";
      return r += " DATABASE " + this.databaseid;
    }, $.DetachDatabase.prototype.execute = function(r, p, m) {
      if (!S.databases[this.databaseid].engineid)
        throw new Error('Cannot detach database "' + this.engineid + '", because it was not attached.');
      var d = this.databaseid;
      if (d === S.DEFAULTDATABASEID)
        throw new Error("Drop of default database is prohibited");
      if (S.databases[d]) {
        var y = S.databases[d].engineid && S.databases[d].engineid == "FILESTORAGE", l = S.databases[d].filename || "";
        delete S.databases[d], y && (S.databases[d] = {}, S.databases[d].isDetached = !0, S.databases[d].filename = l), d === S.useid && S.use(), y = 1;
      } else {
        if (!this.ifexists)
          throw new Error("Database '" + d + "' does not exist");
        y = 0;
      }
      return m && m(y), y;
    }, $.UseDatabase = function(r) {
      return $.extend(this, r);
    }, $.UseDatabase.prototype.toString = function() {
      return "USE DATABASE " + this.databaseid;
    }, $.UseDatabase.prototype.execute = function(r, p, m) {
      var d = this.databaseid;
      if (!S.databases[d])
        throw new Error("Database '" + d + "' does not exist");
      return S.use(d), m && m(1), 1;
    }, $.DropDatabase = function(r) {
      return $.extend(this, r);
    }, $.DropDatabase.prototype.toString = function() {
      var r = "DROP";
      return this.ifexists && (r += " IF EXISTS"), r += " DATABASE " + this.databaseid;
    }, $.DropDatabase.prototype.execute = function(r, p, m) {
      if (this.engineid)
        return S.engines[this.engineid].dropDatabase(this.databaseid, this.ifexists, m);
      var d, y = this.databaseid;
      if (y === S.DEFAULTDATABASEID)
        throw new Error("Drop of default database is prohibited");
      if (S.databases[y]) {
        if (S.databases[y].engineid)
          throw new Error("Cannot drop database '" + y + "', because it is attached. Detach it.");
        delete S.databases[y], y === S.useid && S.use(), d = 1;
      } else {
        if (!this.ifexists)
          throw new Error("Database '" + y + "' does not exist");
        d = 0;
      }
      return m && m(d), d;
    }, $.Declare = function(r) {
      return $.extend(this, r);
    }, $.Declare.prototype.toString = function() {
      var r = "DECLARE ";
      return r = this.declares && 0 < this.declares.length ? this.declares.map(function(p) {
        var m = "", m = (m += "@" + p.variable + " ") + p.dbtypeid;
        return this.dbsize && (m += "(" + this.dbsize, this.dbprecision && (m += "," + this.dbprecision), m += ")"), p.expression && (m += " = " + p.expression.toString()), m;
      }).join(",") : r;
    }, $.Declare.prototype.execute = function(r, p, m) {
      var d = 1;
      return this.declares && 0 < this.declares.length && this.declares.map(function(y) {
        var l = y.dbtypeid;
        S.fn[l] || (l = l.toUpperCase()), S.declares[y.variable] = { dbtypeid: l, dbsize: y.dbsize, dbprecision: y.dbprecision }, y.expression && (S.vars[y.variable] = new Function("params,alasql", "return " + y.expression.toJS("({})", "", null))(p, S), S.declares[y.variable] && (S.vars[y.variable] = S.stdfn.CONVERT(S.vars[y.variable], S.declares[y.variable])));
      }), d = m ? m(d) : d;
    }, $.ShowDatabases = function(r) {
      return $.extend(this, r);
    }, $.ShowDatabases.prototype.toString = function() {
      var r = "SHOW DATABASES";
      return this.like && (r += "LIKE " + this.like.toString()), r;
    }, $.ShowDatabases.prototype.execute = function(r, p, m) {
      if (this.engineid)
        return S.engines[this.engineid].showDatabases(this.like, m);
      var d, y = this, l = [];
      for (d in S.databases)
        l.push({ databaseid: d });
      return y.like && l && 0 < l.length && (l = l.filter(function(_) {
        return S.utils.like(y.like.value, _.databaseid);
      })), m && m(l), l;
    }, $.ShowTables = function(r) {
      return $.extend(this, r);
    }, $.ShowTables.prototype.toString = function() {
      var r = "SHOW TABLES";
      return this.databaseid && (r += " FROM " + this.databaseid), this.like && (r += " LIKE " + this.like.toString()), r;
    }, $.ShowTables.prototype.execute = function(y, p, m) {
      var d, y = S.databases[this.databaseid || y], l = this, _ = [];
      for (d in y.tables)
        _.push({ tableid: d });
      return l.like && _ && 0 < _.length && (_ = _.filter(function(h) {
        return S.utils.like(l.like.value, h.tableid);
      })), m && m(_), _;
    }, $.ShowColumns = function(r) {
      return $.extend(this, r);
    }, $.ShowColumns.prototype.toString = function() {
      var r = "SHOW COLUMNS";
      return this.table.tableid && (r += " FROM " + this.table.tableid), this.databaseid && (r += " FROM " + this.databaseid), r;
    }, $.ShowColumns.prototype.execute = function(d, p, m) {
      var d = S.databases[this.databaseid || d].tables[this.table.tableid];
      return d && d.columns ? (d = d.columns.map(function(y) {
        return { columnid: y.columnid, dbtypeid: y.dbtypeid, dbsize: y.dbsize };
      }), m && m(d), d) : (m && m([]), []);
    }, $.ShowIndex = function(r) {
      return $.extend(this, r);
    }, $.ShowIndex.prototype.toString = function() {
      var r = "SHOW INDEX";
      return this.table.tableid && (r += " FROM " + this.table.tableid), this.databaseid && (r += " FROM " + this.databaseid), r;
    }, $.ShowIndex.prototype.execute = function(r, p, m) {
      var d = S.databases[this.databaseid || r].tables[this.table.tableid], y = [];
      if (d && d.indices)
        for (var l in d.indices)
          y.push({ hh: l, len: Object.keys(d.indices[l]).length });
      return m && m(y), y;
    }, $.ShowCreateTable = function(r) {
      return $.extend(this, r);
    }, $.ShowCreateTable.prototype.toString = function() {
      var r = "SHOW CREATE TABLE " + this.table.tableid;
      return this.databaseid && (r += " FROM " + this.databaseid), r;
    }, $.ShowCreateTable.prototype.execute = function(d) {
      var p, m, d = S.databases[this.databaseid || d].tables[this.table.tableid];
      if (d)
        return p = "CREATE TABLE " + this.table.tableid + " (", m = [], d.columns && (d.columns.forEach(function(y) {
          var l = y.columnid + " " + y.dbtypeid;
          y.dbsize && (l += "(" + y.dbsize + ")"), y.primarykey && (l += " PRIMARY KEY"), m.push(l);
        }), p += m.join(", ")), p + ")";
      throw new Error('There is no such table "' + this.table.tableid + '"');
    }, $.SetVariable = function(r) {
      return $.extend(this, r);
    }, $.SetVariable.prototype.toString = function() {
      var r = "SET ";
      return this.value !== void 0 && (r += this.variable.toUpperCase() + " " + (this.value ? "ON" : "OFF")), this.expression && (r += this.method + this.variable + " = " + this.expression.toString()), r;
    }, $.SetVariable.prototype.execute = function(r, p, m) {
      this.value !== void 0 ? ((d = this.value) == "ON" ? d = !0 : d == "OFF" && (d = !1), S.options[this.variable] = d) : this.expression && (this.exists && (this.existsfn = this.exists.map(function(l) {
        return l = l.compile(r), l.query && !l.query.modifier && (l.query.modifier = "RECORDSET"), l;
      })), this.queries && (this.queriesfn = this.queries.map(function(l) {
        return l = l.compile(r), l.query && !l.query.modifier && (l.query.modifier = "RECORDSET"), l;
      })), y = new Function("params,alasql", "return " + this.expression.toJS("({})", "", null)).bind(this)(p, S), S.declares[this.variable] && (y = S.stdfn.CONVERT(y, S.declares[this.variable])), this.props && 0 < this.props.length ? (d = this.method == "@" ? "alasql.vars['" + this.variable + "']" : "params['" + this.variable + "']", d += this.props.map(function(l) {
        return typeof l == "string" ? "['" + l + "']" : typeof l == "number" ? "[" + l + "]" : "[" + l.toJS() + "]";
      }).join(), new Function("value,params,alasql", "var y;" + d + "=value")(y, p, S)) : this.method == "@" ? S.vars[this.variable] = y : p[this.variable] = y);
      var d, y = 1;
      return y = m ? m(y) : y;
    }, S.test = function(r, p, m) {
      if (arguments.length === 0)
        S.log(S.con.results);
      else {
        var d = Date.now();
        if (arguments.length === 1)
          m(), S.con.log(Date.now() - d);
        else {
          arguments.length === 2 && (m = p, p = 1);
          for (var y = 0; y < p; y++)
            m();
          S.con.results[r] = Date.now() - d;
        }
      }
    }, S.log = function(r, p) {
      var m, d = S.useid, y = S.options.logtarget;
      if (ft.isNode && (y = "console"), m = typeof r == "string" ? S(r, p) : r, y === "console" || ft.isNode)
        typeof r == "string" && S.options.logprompt && console.log(d + ">", r), Array.isArray(m) && console.table ? console.table(m) : console.log(Xs(m));
      else {
        var p = y === "output" ? document.getElementsByTagName("output")[0] : typeof y == "string" ? document.getElementById(y) : y, l = "";
        if (typeof r == "string" && S.options.logprompt && (l += "<pre><code>" + S.pretty(r) + "</code></pre>"), Array.isArray(m))
          if (m.length === 0)
            l += "<p>[ ]</p>";
          else if (typeof m[0] != "object" || Array.isArray(m[0]))
            for (var _ = 0, h = m.length; _ < h; _++)
              l += "<p>" + Ea(m[_]) + "</p>";
          else
            l += Ea(m);
        else
          l += Ea(m);
        p.innerHTML += l;
      }
    }, S.clear = function() {
      var r = S.options.logtarget;
      ft.isNode || ft.isMeteorServer ? console.clear && console.clear() : (r === "output" ? document.getElementsByTagName("output")[0] : typeof r == "string" ? document.getElementById(r) : r).innerHTML = "";
    }, S.write = function(r) {
      var p = S.options.logtarget;
      ft.isNode || ft.isMeteorServer ? console.log && console.log(r) : (p === "output" ? document.getElementsByTagName("output")[0] : typeof p == "string" ? document.getElementById(p) : p).innerHTML += r;
    }, S.prompt = function(r, p, m) {
      if (ft.isNode)
        throw new Error("The prompt not realized for Node.js");
      var d = 0;
      if (typeof r == "string" && (r = document.getElementById(r)), (p = typeof p == "string" ? document.getElementById(p) : p).textContent = S.useid, m) {
        S.prompthistory.push(m), d = S.prompthistory.length;
        try {
          var y = Date.now();
          S.log(m), S.write('<p style="color:blue">' + (Date.now() - y) + " ms</p>");
        } catch (l) {
          S.write("<p>" + S.useid + "&gt;&nbsp;<b>" + m + "</b></p>"), S.write('<p style="color:red">' + l + "<p>");
        }
      }
      y = r.getBoundingClientRect().top + document.getElementsByTagName("body")[0].scrollTop, r3(document.getElementsByTagName("body")[0], y, 500), r.onkeydown = function(l) {
        if (l.which === 13) {
          var _ = r.value, h = S.useid;
          r.value = "", S.prompthistory.push(_), d = S.prompthistory.length;
          try {
            var O = Date.now();
            S.log(_), S.write('<p style="color:blue">' + (Date.now() - O) + " ms</p>");
          } catch (D) {
            S.write("<p>" + h + "&gt;&nbsp;" + S.pretty(_, !1) + "</p>"), S.write('<p style="color:red">' + D + "<p>");
          }
          r.focus(), p.textContent = S.useid, O = r.getBoundingClientRect().top + document.getElementsByTagName("body")[0].scrollTop, r3(document.getElementsByTagName("body")[0], O, 500);
        } else
          l.which === 38 ? (--d < 0 && (d = 0), S.prompthistory[d] && (r.value = S.prompthistory[d], l.preventDefault())) : l.which === 40 && (++d >= S.prompthistory.length ? (d = S.prompthistory.length, r.value = "") : S.prompthistory[d] && (r.value = S.prompthistory[d], l.preventDefault()));
      };
    }, $.BeginTransaction = function(r) {
      return $.extend(this, r);
    }, $.BeginTransaction.prototype.toString = function() {
      return "BEGIN TRANSACTION";
    }, $.BeginTransaction.prototype.execute = function(r, p, m) {
      return S.databases[r].engineid ? S.engines[S.databases[S.useid].engineid].begin(r, m) : (m && m(1), 1);
    }, $.CommitTransaction = function(r) {
      return $.extend(this, r);
    }, $.CommitTransaction.prototype.toString = function() {
      return "COMMIT TRANSACTION";
    }, $.CommitTransaction.prototype.execute = function(r, p, m) {
      return S.databases[r].engineid ? S.engines[S.databases[S.useid].engineid].commit(r, m) : (m && m(1), 1);
    }, $.RollbackTransaction = function(r) {
      return $.extend(this, r);
    }, $.RollbackTransaction.prototype.toString = function() {
      return "ROLLBACK TRANSACTION";
    }, $.RollbackTransaction.prototype.execute = function(r, p, m) {
      return S.databases[r].engineid ? S.engines[S.databases[r].engineid].rollback(r, m) : (m && m(1), 1);
    }, S.options.tsql && (S.stdfn.OBJECT_ID = function(d, p) {
      p = (p = p === void 0 ? "T" : p).toUpperCase();
      var m, d = d.split("."), _ = S.useid, y = d[0], l = (d.length == 2 && (_ = d[0], y = d[1]), S.databases[_].tables), _ = S.databases[_].databaseid;
      for (m in l)
        if (m == y)
          return (!l[m].view || p != "V") && (l[m].view || p != "T") ? void 0 : _ + "." + m;
    }), S.options.mysql && (S.fn.TIMESTAMPDIFF = function(r, p, m) {
      return S.stdfn.DATEDIFF(r, p, m);
    }), (S.options.mysql || S.options.sqlite) && (S.from.INFORMATION_SCHEMA = function(r, p, m, d, y) {
      if (r != "VIEWS" && r != "TABLES")
        throw new Error("Unknown INFORMATION_SCHEMA table");
      var l, _ = [];
      for (l in S.databases) {
        var h, O = S.databases[l].tables;
        for (h in O)
          (O[h].view && r == "VIEWS" || !O[h].view && r == "TABLES") && _.push({ TABLE_CATALOG: l, TABLE_NAME: h });
      }
      return _ = m ? m(_, d, y) : _;
    }), S.options.postgres, S.options.oracle, S.options.sqlite, S.into.SQL = function(r, p, m, d, y) {
      typeof r == "object" && (p = r, r = void 0);
      var l = {};
      if (S.utils.extend(l, p), l.tableid === void 0)
        throw new Error("Table for INSERT TO is not defined.");
      var _ = "";
      d.length === 0 && typeof m[0] == "object" && (d = Object.keys(m[0]).map(function(D) {
        return { columnid: D };
      }));
      for (var h = 0, O = m.length; h < O; h++)
        _ = (_ = (_ += "INSERT INTO " + p.tableid + "(") + d.map(function(D) {
          return D.columnid;
        }).join(",") + ") VALUES (") + d.map(function(D) {
          var k = m[h][D.columnid];
          return D.typeid ? D.typeid !== "STRING" && D.typeid !== "VARCHAR" && D.typeid !== "NVARCHAR" && D.typeid !== "CHAR" && D.typeid !== "NCHAR" || (k = "'" + M3(k) + "'") : typeof k == "string" && (k = "'" + M3(k) + "'"), k;
        }) + `);
`;
      return r = S.utils.autoExtFilename(r, "sql", p), l = S.utils.saveFile(r, _), l = y ? y(l) : l;
    }, S.into.HTML = function(r, p, m, d, y) {
      var l = 1;
      if (typeof document != "object") {
        var _ = { headers: !0 }, p = (S.utils.extend(_, p), document.querySelector(r));
        if (!p)
          throw new Error("Selected HTML element is not found");
        d.length === 0 && typeof m[0] == "object" && (d = Object.keys(m[0]).map(function(ne) {
          return { columnid: ne };
        }));
        var r = document.createElement("table"), h = document.createElement("thead");
        if (r.appendChild(h), _.headers) {
          for (var O = document.createElement("tr"), D = 0; D < d.length; D++)
            (H = document.createElement("th")).textContent = d[D].columnid, O.appendChild(H);
          h.appendChild(O);
        }
        var k = document.createElement("tbody");
        r.appendChild(k);
        for (var z = 0; z < m.length; z++) {
          for (var H, O = document.createElement("tr"), D = 0; D < d.length; D++)
            (H = document.createElement("td")).textContent = m[z][d[D].columnid], O.appendChild(H);
          k.appendChild(O);
        }
        S.utils.domEmptyChildren(p), p.appendChild(r);
      }
      return l = y ? y(l) : l;
    }, S.into.JSON = function(r, p, _, d, y) {
      var l = 1, _ = (typeof r == "object" && (p = r, r = void 0), JSON.stringify(_));
      return r = S.utils.autoExtFilename(r, "json", p), l = S.utils.saveFile(r, _), l = y ? y(l) : l;
    }, S.into.TXT = function(r, p, m, d, y) {
      d.length === 0 && 0 < m.length && (d = Object.keys(m[0]).map(function(O) {
        return { columnid: O };
      })), typeof r == "object" && (p = r, r = void 0);
      var l, _ = m.length, h = "";
      return 0 < m.length && (l = d[0].columnid, h += m.map(function(O) {
        return O[l];
      }).join(`
`)), r = S.utils.autoExtFilename(r, "txt", p), _ = S.utils.saveFile(r, h), _ = y ? y(_) : _;
    }, S.into.TAB = S.into.TSV = function(r, p, m, d, y) {
      var l = {};
      return S.utils.extend(l, p), l.separator = "	", r = S.utils.autoExtFilename(r, "tab", p), l.autoExt = !1, S.into.CSV(r, l, m, d, y);
    }, S.into.CSV = function(r, p, m, d, y) {
      d.length === 0 && 0 < m.length && (d = Object.keys(m[0]).map(function(O) {
        return { columnid: O };
      })), typeof r == "object" && (p = r, r = void 0);
      var l = { headers: !0, separator: ";", quote: '"', utf8Bom: !0 }, _ = (p && !p.headers && p.headers !== void 0 && (l.utf8Bom = !1), S.utils.extend(l, p), m.length), h = l.utf8Bom ? "\uFEFF" : "";
      return l.headers && (h += l.quote + d.map(function(O) {
        return O.columnid.trim();
      }).join(l.quote + l.separator + l.quote) + l.quote + `\r
`), m.forEach(function(O) {
        h += d.map(function(D) {
          return D = O[D.columnid], D = +(D = l.quote !== "" ? (D + "").replace(new RegExp("\\" + l.quote, "g"), l.quote + l.quote) : D) != D ? l.quote + D + l.quote : D;
        }).join(l.separator) + `\r
`;
      }), r = S.utils.autoExtFilename(r, "csv", p), _ = S.utils.saveFile(r, h, null, { disableAutoBom: !0 }), _ = y ? y(_) : _;
    }, S.into.XLS = function(h, p, m, d, y) {
      typeof h == "object" && (p = h, h = void 0);
      var _ = {}, l = (p && p.sheets && (_ = p.sheets), { headers: !0 }), _ = (_.Sheet1 !== void 0 ? l = _[0] : p !== void 0 && (l = p), l.sheetid === void 0 && (l.sheetid = "Sheet1"), function() {
        var O = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" 		xmlns="http://www.w3.org/TR/REC-html40"><head> 		<meta charset="utf-8" /> 		<!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets> ';
        O = (O += " <x:ExcelWorksheet><x:Name>" + l.sheetid + "</x:Name><x:WorksheetOptions><x:DisplayGridlines/>     </x:WorksheetOptions> 		</x:ExcelWorksheet>") + "</x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body", l.style !== void 0 && (O += ' style="', typeof l.style == "function" ? O += l.style(l) : O += l.style, O += '"');
        {
          var D;
          O += "><table>", l.caption !== void 0 && (D = l.caption, O += "<caption", (D = typeof D == "string" ? { title: D } : D).style !== void 0 && (O += ' style="', typeof D.style == "function" ? O += D.style(l, D) : O += D.style, O += '" '), O = (O += ">") + D.title + "</caption>");
        }
        return l.columns !== void 0 ? d = l.columns : d.length == 0 && 0 < m.length && typeof m[0] == "object" && (d = Array.isArray(m[0]) ? m[0].map(function(k, z) {
          return { columnid: z };
        }) : Object.keys(m[0]).map(function(k) {
          return { columnid: k };
        })), d.forEach(function(k, z) {
          l.column !== void 0 && rr(k, l.column), k.width === void 0 && (l.column && l.column.width != "undefined" ? k.width = l.column.width : k.width = "120px"), typeof k.width == "number" && (k.width = k.width + "px"), k.columnid === void 0 && (k.columnid = z), k.title === void 0 && (k.title = "" + k.columnid.trim()), l.headers && Array.isArray(l.headers) && (k.title = l.headers[z]);
        }), O += "<colgroups>", d.forEach(function(k) {
          O += '<col style="width: ' + k.width + '"></col>';
        }), O += "</colgroups>", l.headers && (O += "<thead><tr>", d.forEach(function(k, z) {
          O += "<th ", k.style !== void 0 && (O += ' style="', typeof k.style == "function" ? O += k.style(l, k, z) : O += k.style, O += '" '), O += ">", k.title !== void 0 && (typeof k.title == "function" ? O += k.title(l, k, z) : O += k.title), O += "</th>";
        }), O += "</tr></thead>"), O += "<tbody>", m && 0 < m.length && m.forEach(function(k, z) {
          var H;
          z > l.limit || (O += "<tr", rr(H = {}, l.row), l.rows && l.rows[z] && rr(H, l.rows[z]), H !== void 0 && H.style !== void 0 && (O += ' style="', typeof H.style == "function" ? O += H.style(l, k, z) : O += H.style, O += '" '), O += ">", d.forEach(function(ie, J) {
            var ne = {}, se = (rr(ne, l.cell), rr(ne, H.cell), l.column !== void 0 && rr(ne, l.column.cell), rr(ne, ie.cell), l.cells && l.cells[z] && l.cells[z][J] && rr(ne, l.cells[z][J]), k[ie.columnid]), ee = (typeof ne.value == "function" && (se = ne.value(se, l, k, ie, ne, z, J)), ne.typeid), nt = ((ee = typeof ee == "function" ? ee(se, l, k, ie, ne, z, J) : ee) === void 0 && (typeof se == "number" ? ee = "number" : typeof se == "string" ? ee = "string" : typeof se == "boolean" ? ee = "boolean" : typeof se == "object" && se instanceof Date && (ee = "date")), ""), nt = (ee == "money" ? nt = 'mso-number-format:"\\#\\,\\#\\#0\\\\ _\u0440_\\.";white-space:normal;' : ee == "number" ? nt = " " : ee == "date" ? nt = 'mso-number-format:"Short Date";' : p.types && p.types[ee] && p.types[ee].typestyle && (nt = p.types[ee].typestyle), O += "<td style='" + (nt = nt || 'mso-number-format:"\\@";') + "' ", ne.style !== void 0 && (O += ' style="', typeof ne.style == "function" ? O += ne.style(se, l, k, ie, z, J) : O += ne.style, O += '" '), O += ">", ne.format);
            if (se === void 0)
              O += "";
            else if (nt !== void 0)
              if (typeof nt == "function")
                O += nt(se);
              else {
                if (typeof nt != "string")
                  throw new Error("Unknown format type. Should be function or string");
                O += se;
              }
            else
              O += ee == "number" || ee == "date" ? se.toString() : ee == "money" ? (+se).toFixed(2) : se;
            O += "</td>";
          }), O += "</tr>");
        }), O = (O += "</tbody></table>") + "</body></html>";
      }()), h = (h = S.utils.autoExtFilename(h, "xls", p), S.utils.saveFile(h, _));
      return h = y ? y(h) : h;
    }, S.into.XLSXML = function(r, p, O, d, y) {
      p = p || {}, typeof r == "object" && (p = r, r = void 0);
      var l, _ = {}, h = p && p.sheets ? (_ = p.sheets, l = O, d) : (_.Sheet1 = p, l = [O], [d]), O = (r = S.utils.autoExtFilename(r, "xls", p), S.utils.saveFile(r, function() {
        var D = "", k = " </Styles>", z = {}, H = 62;
        function ie(rt) {
          var ut, kt = "";
          for (ut in rt) {
            for (var S1 in kt += "<" + ut, rt[ut])
              kt += " ", S1.substr(0, 2) == "x:" ? kt += S1 : kt += "ss:", kt += S1 + '="' + rt[ut][S1] + '"';
            kt += "/>";
          }
          var g1 = w2(kt);
          return z[g1] || (z[g1] = { styleid: H }, D = (D += '<Style ss:ID="s' + H + '">') + kt + "</Style>", H++), "s" + z[g1].styleid;
        }
        var J, ne = 0;
        for (J in _) {
          var se = _[J], ee = se.dataidx !== void 0 ? se.dataidx : ne++, nt = function(rt) {
            try {
              return Object.values(rt);
            } catch {
              return Object.keys(rt).map(function(kt) {
                return rt[kt];
              });
            }
          }(l[ee]), tt = void 0;
          se.columns !== void 0 ? tt = se.columns : ((tt = h[ee]) === void 0 || tt.length == 0 && 0 < nt.length) && typeof nt[0] == "object" && (tt = Array.isArray(nt[0]) ? nt[0].map(function(rt, ut) {
            return { columnid: ut };
          }) : Object.keys(nt[0]).map(function(rt) {
            return { columnid: rt };
          })), tt.forEach(function(rt, ut) {
            se.column !== void 0 && rr(rt, se.column), rt.width === void 0 && (se.column && se.column.width !== void 0 ? rt.width = se.column.width : rt.width = 120), typeof rt.width == "number" && (rt.width = rt.width), rt.columnid === void 0 && (rt.columnid = ut), rt.title === void 0 && (rt.title = "" + rt.columnid.trim()), se.headers && Array.isArray(se.headers) && (rt.title = se.headers[ut]);
          }), k += '<Worksheet ss:Name="' + J + '"> 	  			<Table ss:ExpandedColumnCount="' + tt.length + '" ss:ExpandedRowCount="' + ((se.headers ? 1 : 0) + Math.min(nt.length, se.limit || nt.length)) + '" x:FullColumns="1" 	   			x:FullRows="1" ss:DefaultColumnWidth="65" ss:DefaultRowHeight="15">', tt.forEach(function(rt, ut) {
            k += '<Column ss:Index="' + (ut + 1) + '" ss:AutoFitWidth="0" ss:Width="' + rt.width + '"/>';
          }), se.headers && (k += '<Row ss:AutoFitHeight="0">', tt.forEach(function(rt, ut) {
            var kt;
            k += "<Cell ", rt.style !== void 0 && (kt = {}, typeof rt.style == "function" ? rr(kt, rt.style(se, rt, ut)) : rr(kt, rt.style), k += 'ss:StyleID="' + ie(kt) + '"'), k += '><Data ss:Type="String">', rt.title !== void 0 && (typeof rt.title == "function" ? k += rt.title(se, rt, ut) : k += rt.title), k += "</Data></Cell>";
          }), k += "</Row>"), nt && 0 < nt.length && nt.forEach(function(rt, ut) {
            var kt, S1;
            ut > se.limit || (rr(kt = {}, se.row), se.rows && se.rows[ut] && rr(kt, se.rows[ut]), k += "<Row ", kt !== void 0 && (S1 = {}, kt.style !== void 0 && (typeof kt.style == "function" ? rr(S1, kt.style(se, rt, ut)) : rr(S1, kt.style), k += 'ss:StyleID="' + ie(S1) + '"')), k += ">", tt.forEach(function(zt, y1) {
              var Zt = {}, jt = (rr(Zt, se.cell), rr(Zt, kt.cell), se.column !== void 0 && rr(Zt, se.column.cell), rr(Zt, zt.cell), se.cells && se.cells[ut] && se.cells[ut][y1] && rr(Zt, se.cells[ut][y1]), rt[zt.columnid]), L1 = (typeof Zt.value == "function" && (jt = Zt.value(jt, se, rt, zt, Zt, ut, y1)), Zt.typeid), x1 = ((L1 = typeof L1 == "function" ? L1(jt, se, rt, zt, Zt, ut, y1) : L1) === void 0 && (typeof jt == "number" ? L1 = "number" : typeof jt == "string" ? L1 = "string" : typeof jt == "boolean" ? L1 = "boolean" : typeof jt == "object" && jt instanceof Date && (L1 = "date")), "String"), m1 = (L1 == "number" ? x1 = "Number" : L1 == "date" && (x1 = "Date"), L1 == "money" || L1 == "number" || L1 == "date" || p.types && p.types[L1] && p.types[L1].typestyle && p.types[L1].typestyle, k += "<Cell ", {}), zt = (Zt.style !== void 0 && (typeof Zt.style == "function" ? rr(m1, Zt.style(jt, se, rt, zt, ut, y1)) : rr(m1, Zt.style), k += 'ss:StyleID="' + ie(m1) + '"'), k = k + ">" + ('<Data ss:Type="' + x1 + '">'), Zt.format);
              if (jt === void 0)
                k += "";
              else if (zt !== void 0)
                if (typeof zt == "function")
                  k += zt(jt);
                else {
                  if (typeof zt != "string")
                    throw new Error("Unknown format type. Should be function or string");
                  k += jt;
                }
              else
                k += L1 == "number" || L1 == "date" ? jt.toString() : L1 == "money" ? (+jt).toFixed(2) : jt;
              k += "</Data></Cell>";
            }), k += "</Row>");
          }), k += "</Table></Worksheet>";
        }
        return '<?xml version="1.0"?> 		<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" 		 xmlns:o="urn:schemas-microsoft-com:office:office" 		 xmlns:x="urn:schemas-microsoft-com:office:excel" 		 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" 		 xmlns:html="http://www.w3.org/TR/REC-html40"> 		 <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> 		 </DocumentProperties> 		 <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office"> 		  <AllowPNG/> 		 </OfficeDocumentSettings> 		 <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> 		  <ActiveSheet>0</ActiveSheet> 		 </ExcelWorkbook> 		 <Styles> 		  <Style ss:ID="Default" ss:Name="Normal"> 		   <Alignment ss:Vertical="Bottom"/> 		   <Borders/> 		   <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="12" ss:Color="#000000"/> 		   <Interior/> 		   <NumberFormat/> 		   <Protection/> 		  </Style>' + D + (k += "</Workbook>");
      }()));
      return O = y ? y(O) : O;
    }, S.into.XLSX = function(r, p, m, d, y) {
      var l = 1, _ = (p = p || {}, Wo(d, [{ columnid: "_" }]) && (m = m.map(function(k) {
        return k._;
      }), d = void 0), r = S.utils.autoExtFilename(r, "xlsx", p), yo()), h = (typeof r == "object" && (p = r, r = void 0), { SheetNames: [], Sheets: {} });
      return p.sourcefilename ? S.utils.loadBinaryFile(p.sourcefilename, !!y, function(k) {
        h = _.read(k, { type: "binary", ...S.options.excel, ...p }), O();
      }) : O(), l = y ? y(l) : l;
      function O() {
        if (typeof p == "object" && Array.isArray(p) ? m && 0 < m.length && m.forEach(function(z, H) {
          D(p[H], z, void 0, H + 1);
        }) : D(p, m, d, 1), r === void 0)
          l = h;
        else if (k = yo(), ft.isNode || ft.isMeteorServer)
          k.writeFile(h, r);
        else {
          var k = k.write(h, { bookType: "xlsx", bookSST: !1, type: "binary" });
          if (_i() == 9)
            throw new Error("Cannot save XLSX files in IE9. Please use XLS() export function");
          Jo(new Blob([function(z) {
            for (var H = new ArrayBuffer(z.length), ie = new Uint8Array(H), J = 0; J != z.length; ++J)
              ie[J] = 255 & z.charCodeAt(J);
            return H;
          }(k)], { type: "application/octet-stream" }), r);
        }
      }
      function D(tt, z, H, ne) {
        var J, ne = { sheetid: "Sheet " + ne, headers: !0 }, se = (S.utils.extend(ne, tt), Object.keys(z).length), ee = ((!H || H.length == 0) && 0 < se && (H = Object.keys(z[0]).map(function(g1) {
          return { columnid: g1 };
        })), {}), ee = (-1 < h.SheetNames.indexOf(ne.sheetid) || (h.SheetNames.push(ne.sheetid), h.Sheets[ne.sheetid] = {}), h.Sheets[ne.sheetid]), tt = "A1", nt = S.utils.xlscn((tt = ne.range ? ne.range : tt).match(/[A-Z]+/)[0]), tt = +tt.match(/[0-9]+/)[0] - 1, rt = (J = h.Sheets[ne.sheetid]["!ref"] ? (J = h.Sheets[ne.sheetid]["!ref"], ut = S.utils.xlscn(J.match(/[A-Z]+/)[0]), +J.match(/[0-9]+/)[0] - 1) : ut = 1, H.length ? 0 : 1), rt = Math.max(nt + H.length - 1 + rt, ut), ut = Math.max(tt + se + 2, J), kt = 1 + tt;
        h.Sheets[ne.sheetid]["!ref"] = "A1:" + S.utils.xlsnc(rt) + ut, ne.headers && (H.forEach(function(g1, y1) {
          ee[S.utils.xlsnc(nt + y1) + "" + kt] = { v: g1.columnid.trim() };
        }), kt++);
        for (var S1 = 0; S1 < se; S1++)
          H.forEach(function(g1, y1) {
            var Zt = { v: z[S1][g1.columnid] };
            typeof z[S1][g1.columnid] == "number" ? Zt.t = "n" : typeof z[S1][g1.columnid] == "string" ? Zt.t = "s" : typeof z[S1][g1.columnid] == "boolean" ? Zt.t = "b" : typeof z[S1][g1.columnid] == "object" && z[S1][g1.columnid] instanceof Date && (Zt.t = "d"), ee[S.utils.xlsnc(nt + y1) + "" + kt] = Zt;
          }), kt++;
      }
    }, S.from.METEOR = function(r, p, m, d, y) {
      return r = r.find(p).fetch(), r = m ? m(r, d, y) : r;
    }, S.from.TABLETOP = function(_, p, m, d, y) {
      var l = [], _ = { headers: !0, simpleSheet: !0, key: _ };
      return S.utils.extend(_, p), _.callback = function(h) {
        l = h, m && (l = m(l, d, y));
      }, Tabletop.init(_), null;
    }, S.from.HTML = function(r, _, m, d, y) {
      var l = {}, _ = (S.utils.extend(l, _), document.querySelector(r));
      if (!_ && _.tagName !== "TABLE")
        throw new Error("Selected HTML element is not a TABLE");
      var h = [];
      if ((O = l.headers) && !Array.isArray(O))
        for (var O = [], D = _.querySelector("thead tr").children, k = 0; k < D.length; k++)
          D.item(k).style && D.item(k).style.display === "none" && l.skipdisplaynone ? O.push(void 0) : O.push(D.item(k).textContent);
      for (var z = _.querySelectorAll("tbody tr"), H = 0; H < z.length; H++) {
        for (var ie = z.item(H).children, J = {}, k = 0; k < ie.length; k++)
          ie.item(k).style && ie.item(k).style.display === "none" && l.skipdisplaynone || (O ? J[O[k]] = ie.item(k).textContent : J[k] = ie.item(k).textContent);
        h.push(J);
      }
      return h = m ? m(h, d, y) : h;
    }, S.from.RANGE = function(r, p, m, d, y) {
      for (var l = [], _ = r; _ <= p; _++)
        l.push(_);
      return l = m ? m(l, d, y) : l;
    }, S.from.FILE = function(r, p, m, d, y) {
      if (typeof r == "string")
        l = r;
      else {
        if (!(r instanceof Event))
          throw new Error("Wrong usage of FILE() function");
        l = r.target.files[0].name;
      }
      var l = l.split("."), l = l[l.length - 1].toUpperCase();
      if (S.from[l])
        return S.from[l](r, p, m, d, y);
      throw new Error("Cannot recognize file type for loading");
    }, S.from.JSON = function(r, p, m, d, y) {
      var l;
      return r = S.utils.autoExtFilename(r, "json", p), S.utils.loadFile(r, !!m, function(_) {
        l = JSON.parse(_), m && (l = m(l, d, y));
      }), l;
    }, S.from.TXT = function(r, p, m, d, y) {
      var l;
      return r = S.utils.autoExtFilename(r, "txt", p), S.utils.loadFile(r, !!m, function(_) {
        (l = _.split(/\r?\n/))[l.length - 1] === "" && l.pop();
        for (var h = 0, O = l.length; h < O; h++)
          l[h] == +l[h] && (l[h] = +l[h]), l[h] = [l[h]];
        m && (l = m(l, d, y));
      }), l;
    }, S.from.TAB = S.from.TSV = function(r, p, m, d, y) {
      return (p = p || {}).separator = "	", r = S.utils.autoExtFilename(r, "tab", p), p.autoext = !1, S.from.CSV(r, p, m, d, y);
    }, S.from.CSV = function(r, p, m, d, y) {
      r = "" + r;
      var l, _ = { separator: ",", quote: '"', headers: !0 }, h = (S.utils.extend(_, p), []);
      function O(D) {
        var k, z, H, ie = _.separator.charCodeAt(0), J = _.quote.charCodeAt(0), ne = {}, se = {}, ee = [], nt = D.length, tt = 0, rt = 0;
        function ut() {
          if (nt <= tt)
            return se;
          if (z)
            return z = !1, ne;
          var g1 = tt;
          if (D.charCodeAt(g1) === J) {
            for (var y1 = g1; y1++ < nt; )
              if (D.charCodeAt(y1) === J) {
                if (D.charCodeAt(y1 + 1) !== J)
                  break;
                ++y1;
              }
            return tt = y1 + 2, (Zt = D.charCodeAt(y1 + 1)) === 13 ? (z = !0, D.charCodeAt(y1 + 2) === 10 && ++tt) : Zt === 10 && (z = !0), D.substring(g1 + 1, y1).replace(/""/g, '"');
          }
          for (; tt < nt; ) {
            var Zt, jt = 1;
            if ((Zt = D.charCodeAt(tt++)) === 10)
              z = !0;
            else if (Zt === 13)
              z = !0, D.charCodeAt(tt) === 10 && (++tt, ++jt);
            else if (Zt !== ie)
              continue;
            return D.substring(g1, tt - jt);
          }
          return D.substring(g1);
        }
        for (; (k = ut()) !== se; ) {
          for (var kt, S1 = []; k !== ne && k !== se; )
            S1.push(k.trim()), k = ut();
          _.headers ? (rt === 0 ? typeof _.headers == "boolean" ? h = S1 : Array.isArray(_.headers) && (h = _.headers, kt = {}, h.forEach(function(g1, y1) {
            kt[g1] = S1[y1], kt[g1] !== void 0 && kt[g1].length !== 0 && kt[g1].trim() == +kt[g1] && (kt[g1] = +kt[g1]);
          }), ee.push(kt)) : (kt = {}, h.forEach(function(g1, y1) {
            kt[g1] = S1[y1], kt[g1] !== void 0 && kt[g1].length !== 0 && kt[g1].trim() == +kt[g1] && (kt[g1] = +kt[g1]);
          }), ee.push(kt)), rt++) : ee.push(S1);
        }
        l = ee, _.headers && y && y.sources && y.sources[d] && (H = y.sources[d].columns = [], h.forEach(function(g1) {
          H.push({ columnid: g1 });
        })), m && (l = m(l, d, y));
      }
      return new RegExp(`
`).test(r) ? O(r) : (r = S.utils.autoExtFilename(r, "csv", p), S.utils.loadFile(r, !!m, O, y.cb)), l;
    }, S.from.XLS = function(r, p, m, d, y) {
      return r = S.utils.autoExtFilename(r, "xls", p = p || {}), p.autoExt = !1, Vn(yo(), r, p, m, d, y);
    }, S.from.XLSX = function(r, p, m, d, y) {
      return r = S.utils.autoExtFilename(r, "xlsx", p = p || {}), p.autoExt = !1, Vn(yo(), r, p, m, d, y);
    }, S.from.ODS = function(r, p, m, d, y) {
      return r = S.utils.autoExtFilename(r, "ods", p = p || {}), p.autoExt = !1, Vn(yo(), r, p, m, d, y);
    }, S.from.XML = function(r, p, m, d, y) {
      var l;
      return S.utils.loadFile(r, !!m, function(_) {
        function h() {
          var ie = D(/^([^<]*)/);
          return ie ? ie[1] : "";
        }
        function O() {
          var ie = D(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/);
          if (ie)
            return { name: ie[1], value: ie[2].replace(/^['"]|['"]$/g, "") };
        }
        function D(ie) {
          if (ie = H.match(ie), ie)
            return H = H.slice(ie[0].length), ie;
        }
        function k() {
          return H.length == 0;
        }
        function z(ie) {
          return H.indexOf(ie) == 0;
        }
        var H;
        H = (H = (H = _).trim()).replace(/<!--[\s\S]*?-->/g, ""), function() {
          if (D(/^<\?xml\s*/)) {
            for (var ie = { attributes: {} }; !k() && !z("?>"); ) {
              var J = O();
              if (!J)
                return;
              ie.attributes[J.name] = J.value;
            }
            D(/\?>\s*/);
          }
        }(), l = function ie() {
          var J = D(/^<([\w-:.]+)\s*/);
          if (!!J) {
            for (var ne = { name: J[1], attributes: {}, children: [] }; !(k() || z(">") || z("?>") || z("/>")); ) {
              var se = O();
              if (!se)
                return ne;
              ne.attributes[se.name] = se.value;
            }
            if (D(/^\s*\/>\s*/))
              return ne;
            D(/\??>\s*/), ne.content = h();
            for (var ee; ee = ie(); )
              ne.children.push(ee);
            return D(/^<\/[\w-:.]+>\s*/), ne;
          }
        }(), m && (l = m(l, d, y));
      }), l;
    }, S.from.GEXF = function(r, p, m, d, y) {
      var l;
      return S("SEARCH FROM XML(" + r + ")", [], function(_) {
        l = _, m && (l = m(l));
      }), l;
    }, $.Print = function(r) {
      return $.extend(this, r);
    }, $.Print.prototype.toString = function() {
      var r = "PRINT";
      return this.statement && (r += " " + this.statement.toString()), r;
    }, $.Print.prototype.execute = function(r, p, m) {
      var d, y = this, l = 1;
      return S.precompile(this, r, p), this.exprs && 0 < this.exprs.length ? (d = this.exprs.map(function(_) {
        return _ = new Function("params,alasql,p", "var y;return " + _.toJS("({})", "", null)).bind(y)(p, S), Xs(_);
      }), console.log.apply(console, d)) : this.select ? (d = this.select.execute(r, p), console.log(Xs(d))) : console.log(), l = m ? m(l) : l;
    }, $.Source = function(r) {
      return $.extend(this, r);
    }, $.Source.prototype.toString = function() {
      var r = "SOURCE";
      return this.url && (r += " '" + this.url + " '"), r;
    }, $.Source.prototype.execute = function(r, p, m) {
      var d;
      return ma(this.url, !!m, function(y) {
        return d = S(y), d = m ? m(d) : d;
      }, function(y) {
        throw y;
      }), d;
    }, $.Require = function(r) {
      return $.extend(this, r);
    }, $.Require.prototype.toString = function() {
      var r = "REQUIRE";
      return this.paths && 0 < this.paths.length && (r += this.paths.map(function(p) {
        return p.toString();
      }).join(",")), this.plugins && 0 < this.plugins.length && (r += this.plugins.map(function(p) {
        return p.toUpperCase();
      }).join(",")), r;
    }, $.Require.prototype.execute = function(r, p, m) {
      var d = this, y = 0, l = "";
      return this.paths && 0 < this.paths.length ? this.paths.forEach(function(_) {
        ma(_.value, !!m, function(h) {
          l += h, ++y < d.paths.length || (new Function("params,alasql", l)(p, S), m && (y = m(y)));
        });
      }) : this.plugins && 0 < this.plugins.length ? this.plugins.forEach(function(_) {
        S.plugins[_] || ma(S.path + "/alasql-" + _.toLowerCase() + ".js", !!m, function(h) {
          l += h, ++y < d.plugins.length || (new Function("params,alasql", l)(p, S), S.plugins[_] = !0, m && (y = m(y)));
        });
      }) : m && (y = m(y)), y;
    }, $.Assert = function(r) {
      return $.extend(this, r);
    }, $.Source.prototype.toString = function() {
      var r = "ASSERT";
      return this.value && (r += " " + JSON.stringify(this.value)), r;
    }, $.Assert.prototype.execute = function(r) {
      if (Wo(S.res, this.value))
        return 1;
      throw new Error((this.message || "Assert wrong") + ": " + JSON.stringify(S.res) + " == " + JSON.stringify(this.value));
    };
    var Mn = S.engines.WEBSQL = function() {
    }, _r = (Mn.createDatabase = function(r, l, m, d) {
      var y, l = openDatabase(r, l[0], l[1], l[2]);
      if (this.dbid && ((y = S.createDatabase(this.dbid)).engineid = "WEBSQL", y.wdbid = r, y.wdb = y), l)
        return d && d(1), 1;
      throw new Error('Cannot create WebSQL database "' + this.dbid + '"');
    }, Mn.dropDatabase = function(r) {
      throw new Error("This is impossible to drop WebSQL database.");
    }, Mn.attachDatabase = function(r, p, m, d, y) {
      if (S.databases[p])
        throw new Error('Unable to attach database as "' + p + '" because it already exists');
      return S.openDatabase(r, m[0], m[1], m[2]), 1;
    }, S.engines.INDEXEDDB = function() {
    }), F1 = (ft.hasIndexedDB && (typeof ft.global.indexedDB.webkitGetDatabaseNames == "function" ? _r.getDatabaseNames = ft.global.indexedDB.webkitGetDatabaseNames.bind(ft.global.indexedDB) : (_r.getDatabaseNames = function() {
      var r = {}, p = { contains: function(m) {
        return !0;
      }, notsupported: !0 };
      return setTimeout(function() {
        r.onsuccess({ target: { result: p } });
      }, 0), r;
    }, _r.getDatabaseNamesNotSupported = !0)), _r.showDatabases = function(r, p) {
      _r.getDatabaseNames().onsuccess = function(m) {
        var d = m.target.result;
        if (_r.getDatabaseNamesNotSupported)
          throw new Error("SHOW DATABASE is not supported in this browser");
        var y, l = [];
        r && (y = new RegExp(r.value.replace(/\%/g, ".*"), "g"));
        for (var _ = 0; _ < d.length; _++)
          r && !d[_].match(y) || l.push({ databaseid: d[_] });
        p(l);
      };
    }, _r.createDatabase = function(r, p, m, d, y) {
      var l = ft.global.indexedDB;
      m ? l.open(r, 1).onsuccess = function(_) {
        _.target.result.close(), y && y(1);
      } : ((l = l.open(r, 1)).onupgradeneeded = function(_) {
        _.target.transaction.abort();
      }, l.onsuccess = function(_) {
        if (!m)
          throw new Error('IndexedDB: Cannot create new database "' + r + '" because it already exists');
        y && y(0);
      });
    }, _r.createDatabase = function(r, p, m, d, y) {
      var l, _, h, O = ft.global.indexedDB;
      _r.getDatabaseNamesNotSupported ? m ? (l = !0, (_ = O.open(r)).onupgradeneeded = function(D) {
        l = !1;
      }, _.onsuccess = function(D) {
        D.target.result.close(), l ? y && y(0) : y && y(1);
      }) : ((h = O.open(r)).onupgradeneeded = function(D) {
        D.target.transaction.abort();
      }, h.onabort = function(D) {
        y && y(1);
      }, h.onsuccess = function(D) {
        throw D.target.result.close(), new Error('IndexedDB: Cannot create new database "' + r + '" because it already exists');
      }) : (h = _r.getDatabaseNames()).onsuccess = function(D) {
        if (D.target.result.contains(r)) {
          if (m)
            return void (y && y(0));
          throw new Error('IndexedDB: Cannot create new database "' + r + '" because it already exists');
        }
        O.open(r, 1).onsuccess = function(k) {
          k.target.result.close(), y && y(1);
        };
      };
    }, _r.dropDatabase = function(r, p, m) {
      var d = ft.global.indexedDB;
      _r.getDatabaseNames().onsuccess = function(y) {
        if (!y.target.result.contains(r)) {
          if (p)
            return void (m && m(0));
          throw new Error('IndexedDB: Cannot drop new database "' + r + '" because it does not exist');
        }
        d.deleteDatabase(r).onsuccess = function(l) {
          m && m(1);
        };
      };
    }, _r.attachDatabase = function(r, p, m, d, y) {
      if (!ft.hasIndexedDB)
        throw new Error("The current browser does not support IndexedDB");
      var l = ft.global.indexedDB;
      _r.getDatabaseNames().onsuccess = function(_) {
        if (!_.target.result.contains(r))
          throw new Error('IndexedDB: Cannot attach database "' + r + '" because it does not exist');
        l.open(r).onsuccess = function(h) {
          for (var O = h.target.result, D = new S.Database(p || r), k = (D.engineid = "INDEXEDDB", D.ixdbid = r, D.tables = [], O.objectStoreNames), z = 0; z < k.length; z++)
            D.tables[k[z]] = {};
          h.target.result.close(), y && y(1);
        };
      };
    }, _r.createTable = function(r, p, m, d) {
      var y = ft.global.indexedDB, l = S.databases[r].ixdbid;
      _r.getDatabaseNames().onsuccess = function(_) {
        if (!_.target.result.contains(l))
          throw new Error('IndexedDB: Cannot create table in database "' + l + '" because it does not exist');
        _ = y.open(l), _.onversionchange = function(h) {
          h.target.result.close();
        }, _.onsuccess = function(D) {
          var O = D.target.result.version, D = (D.target.result.close(), y.open(l, O + 1));
          D.onupgradeneeded = function(k) {
            k.target.result.createObjectStore(p, { autoIncrement: !0 });
          }, D.onsuccess = function(k) {
            k.target.result.close(), d && d(1);
          }, D.onerror = function(k) {
            throw k;
          }, D.onblocked = function(k) {
            throw new Error('Cannot create table "' + p + '" because database "' + r + '"  is blocked');
          };
        };
      };
    }, _r.dropTable = function(r, p, m, d) {
      var y = ft.global.indexedDB, l = S.databases[r].ixdbid;
      _r.getDatabaseNames().onsuccess = function(_) {
        if (!_.target.result.contains(l))
          throw new Error('IndexedDB: Cannot drop table in database "' + l + '" because it does not exist');
        _ = y.open(l), _.onversionchange = function(h) {
          h.target.result.close();
        }, _.onsuccess = function(D) {
          var O = D.target.result.version, D = (D.target.result.close(), y.open(l, O + 1));
          D.onupgradeneeded = function(k) {
            if (k = k.target.result, k.objectStoreNames.contains(p))
              k.deleteObjectStore(p), delete S.databases[r].tables[p];
            else if (!m)
              throw new Error('IndexedDB: Cannot drop table "' + p + '" because it does not exist');
          }, D.onsuccess = function(k) {
            k.target.result.close(), d && d(1);
          }, D.onerror = function(k) {
            throw k;
          }, D.onblocked = function(k) {
            throw new Error('Cannot drop table "' + p + '" because database "' + r + '" is blocked');
          };
        };
      };
    }, _r.intoTable = function(_, p, m, d, y) {
      var l = ft.global.indexedDB, _ = S.databases[_].ixdbid;
      l.open(_).onsuccess = function(h) {
        for (var O = h.target.result, h = O.transaction([p], "readwrite"), D = h.objectStore(p), k = 0, z = m.length; k < z; k++)
          D.add(m[k]);
        h.oncomplete = function() {
          O.close(), y && y(z);
        };
      };
    }, _r.fromTable = function(_, p, m, d, y) {
      var l = ft.global.indexedDB, _ = S.databases[_].ixdbid;
      l.open(_).onsuccess = function(k) {
        var O = [], D = k.target.result, k = D.transaction([p]).objectStore(p).openCursor();
        k.onblocked = function(z) {
        }, k.onerror = function(z) {
        }, k.onsuccess = function(z) {
          z = z.target.result, z ? (O.push(z.value), z.continue()) : (D.close(), m && m(O, d, y));
        };
      };
    }, _r.deleteFromTable = function(_, p, m, d, y) {
      var l = ft.global.indexedDB, _ = S.databases[_].ixdbid;
      l.open(_).onsuccess = function(D) {
        var O = D.target.result, D = O.transaction([p], "readwrite").objectStore(p).openCursor(), k = 0;
        D.onblocked = function(z) {
        }, D.onerror = function(z) {
        }, D.onsuccess = function(z) {
          z = z.target.result, z ? (m && !m(z.value, d) || (z.delete(), k++), z.continue()) : (O.close(), y && y(k));
        };
      };
    }, _r.updateTable = function(h, p, m, d, y, l) {
      var _ = ft.global.indexedDB, h = S.databases[h].ixdbid;
      _.open(h).onsuccess = function(k) {
        var D = k.target.result, k = D.transaction([p], "readwrite").objectStore(p).openCursor(), z = 0;
        k.onblocked = function(H) {
        }, k.onerror = function(H) {
        }, k.onsuccess = function(J) {
          var ie, J = J.target.result;
          J ? (d && !d(J.value, y) || (ie = J.value, m(ie, y), J.update(ie), z++), J.continue()) : (D.close(), l && l(z));
        };
      };
    }, S.engines.LOCALSTORAGE = function() {
    }), E2 = (F1.get = function(m) {
      var p, m = localStorage.getItem(m);
      if (m !== void 0) {
        try {
          p = JSON.parse(m);
        } catch {
          throw new Error("Cannot parse JSON object from localStorage" + m);
        }
        return p;
      }
    }, F1.set = function(r, p) {
      p === void 0 ? localStorage.removeItem(r) : localStorage.setItem(r, JSON.stringify(p));
    }, F1.storeTable = function(m, p) {
      var m = S.databases[m], d = m.tables[p], y = {};
      y.columns = d.columns, y.data = d.data, y.identities = d.identities, F1.set(m.lsdbid + "." + p, y);
    }, F1.restoreTable = function(d, p) {
      var m, d = S.databases[d], y = F1.get(d.lsdbid + "." + p), l = new S.Table();
      for (m in y)
        l[m] = y[m];
      return (d.tables[p] = l).indexColumns(), l;
    }, F1.removeTable = function(r, p) {
      r = S.databases[r], localStorage.removeItem(r.lsdbid + "." + p);
    }, F1.createDatabase = function(r, p, m, d, y) {
      var l = 1, _ = F1.get("alasql");
      if (m && _ && _.databases && _.databases[r])
        l = 0;
      else {
        if ((_ = _ || { databases: {} }).databases && _.databases[r])
          throw new Error('localStorage: Cannot create new database "' + r + '" because it already exists');
        _.databases[r] = !0, F1.set("alasql", _), F1.set(r, { databaseid: r, tables: {} });
      }
      return l = y ? y(l) : l;
    }, F1.dropDatabase = function(r, p, m) {
      var d, y = 1, l = F1.get("alasql");
      if (p && l && l.databases && !l.databases[r])
        y = 0;
      else {
        if (!l) {
          if (p)
            return m ? m(0) : 0;
          throw new Error("There is no any AlaSQL databases in localStorage");
        }
        if (l.databases && !l.databases[r])
          throw new Error('localStorage: Cannot drop database "' + r + '" because there is no such database');
        for (d in delete l.databases[r], F1.set("alasql", l), F1.get(r).tables)
          localStorage.removeItem(r + "." + d);
        localStorage.removeItem(r);
      }
      return y = m ? m(y) : y;
    }, F1.attachDatabase = function(r, p, m, d, y) {
      var l = 1;
      if (S.databases[p])
        throw new Error('Unable to attach database as "' + p + '" because it already exists');
      var _ = new S.Database(p = p || r);
      if (_.engineid = "LOCALSTORAGE", _.lsdbid = r, _.tables = F1.get(r).tables, !S.options.autocommit && _.tables)
        for (var h in _.tables)
          F1.restoreTable(p, h);
      return l = y ? y(l) : l;
    }, F1.showDatabases = function(r, p) {
      var m, d = [], y = F1.get("alasql");
      if (r && (m = new RegExp(r.value.replace(/%/g, ".*"), "g")), y && y.databases) {
        for (var l in y.databases)
          d.push({ databaseid: l });
        r && d && 0 < d.length && (d = d.filter(function(_) {
          return _.databaseid.match(m);
        }));
      }
      return d = p ? p(d) : d;
    }, F1.createTable = function(r, p, m, d) {
      var y = 1, l = S.databases[r].lsdbid;
      if (F1.get(l + "." + p) && !m)
        throw new Error('Table "' + p + '" alsready exists in localStorage database "' + l + '"');
      return m = F1.get(l), S.databases[r].tables[p], m.tables[p] = !0, F1.set(l, m), F1.storeTable(r, p), y = d ? d(y) : y;
    }, F1.truncateTable = function(r, p, m, d) {
      var y = 1, l = S.databases[r].lsdbid, l = S.options.autocommit ? F1.get(l) : S.databases[r];
      if (m || l.tables[p])
        return F1.restoreTable(r, p).data = [], F1.storeTable(r, p), y = d ? d(y) : y;
      throw new Error('Cannot truncate table "' + p + '" in localStorage, because it does not exist');
    }, F1.dropTable = function(r, p, m, d) {
      var y = 1, l = S.databases[r].lsdbid, _ = S.options.autocommit ? F1.get(l) : S.databases[r];
      if (m || _.tables[p])
        return delete _.tables[p], F1.set(l, _), F1.removeTable(r, p), y = d ? d(y) : y;
      throw new Error('Cannot drop table "' + p + '" in localStorage, because it does not exist');
    }, F1.fromTable = function(r, p, m, d, y) {
      return S.databases[r].lsdbid, r = F1.restoreTable(r, p).data, r = m ? m(r, d, y) : r;
    }, F1.intoTable = function(r, p, m, d, y) {
      S.databases[r].lsdbid;
      var l, _ = m.length, h = F1.restoreTable(r, p);
      for (l in h.identities) {
        var O, D = h.identities[l];
        for (O in m)
          m[O][l] = D.value, D.value += D.step;
      }
      return h.data || (h.data = []), h.data = h.data.concat(m), F1.storeTable(r, p), _ = y ? y(_) : _;
    }, F1.loadTableData = function(r, p) {
      S.databases[r], S.databases[r].lsdbid, F1.restoreTable(r, p);
    }, F1.saveTableData = function(d, p) {
      var m = S.databases[d], d = S.databases[d].lsdbid;
      F1.storeTable(d, p), m.tables[p].data = void 0;
    }, F1.begin = F1.commit = function(r, p) {
      var m = S.databases[r], d = S.databases[r].lsdbid, y = { databaseid: d, tables: {} };
      if (m.tables)
        for (var l in m.tables)
          y.tables[l] = !0, F1.storeTable(r, l);
      return F1.set(d, y), p ? p(1) : 1;
    }, F1.rollback = function(r, p) {
    }, S.engines.SQLITE = function() {
    }), Ur = (E2.createDatabase = function(r, p, m, d, y) {
      throw new Error("Connot create SQLITE database in memory. Attach it.");
    }, E2.dropDatabase = function(r) {
      throw new Error("This is impossible to drop SQLite database. Detach it.");
    }, E2.attachDatabase = function(r, p, m, d, y) {
      var l;
      if (S.databases[p])
        throw new Error('Unable to attach database as "' + p + '" because it already exists');
      if (m[0] && m[0] instanceof $.StringValue || m[0] instanceof $.ParamValue)
        return m[0] instanceof $.StringValue ? l = m[0].value : m[0] instanceof $.ParamValue && (l = d[m[0].param]), S.utils.loadBinaryFile(l, !0, function(O) {
          var h = new S.Database(p || r), O = (h.engineid = "SQLITE", h.sqldbid = r, h.sqldb = new SQL.Database(O));
          h.tables = [], O.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values.forEach(function(z) {
            h.tables[z[1]] = {};
            var k = h.tables[z[1]].columns = [], z = S.parse(z[4]).statements[0].columns;
            z && 0 < z.length && z.forEach(function(H) {
              k.push(H);
            });
          }), y(1);
        }, function(_) {
          throw new Error('Cannot open SQLite database file "' + m[0].value + '"');
        }), 1;
      throw new Error("Cannot attach SQLite database without a file");
    }, E2.fromTable = function(l, p, m, d, y) {
      var l = S.databases[l].sqldb.exec("SELECT * FROM " + p), _ = y.sources[d].columns = [], h = (0 < l[0].columns.length && l[0].columns.forEach(function(O) {
        _.push({ columnid: O });
      }), []);
      0 < l[0].values.length && l[0].values.forEach(function(O) {
        var D = {};
        _.forEach(function(k, z) {
          D[k.columnid] = O[z];
        }), h.push(D);
      }), m && m(h, d, y);
    }, E2.intoTable = function(r, p, m, d, y) {
      for (var l = S.databases[r].sqldb, _ = 0, h = m.length; _ < h; _++) {
        var k = "INSERT INTO " + p + " (", O = m[_], D = Object.keys(O), k = (k = k + D.join(",") + ") VALUES (") + D.map(function(z) {
          return z = O[z], z = typeof z == "string" ? "'" + z + "'" : z;
        }).join(",") + ")";
        l.exec(k);
      }
      return r = h, y && y(r), r;
    }, S.engines.FILESTORAGE = S.engines.FILE = function() {
    });
    if (Ur.createDatabase = function(r, p, m, d, y) {
      var l = 1, _ = p[0].value;
      return S.utils.fileExists(_, function(h) {
        if (h) {
          if (m)
            return l = 0, l = y ? y(l) : l;
          throw new Error("Cannot create new database file, because it already exists");
        }
        S.utils.saveFile(_, JSON.stringify({ tables: {} }), function(O) {
          y && (l = y(l));
        });
      }), l;
    }, Ur.dropDatabase = function(r, p, m) {
      var d, y = "";
      return typeof r == "object" && r.value ? y = r.value : (y = (S.databases[r] || {}).filename || "", delete S.databases[r]), S.utils.fileExists(y, function(l) {
        if (l)
          d = 1, S.utils.deleteFile(y, function() {
            d = 1, m && (d = m(d));
          });
        else {
          if (!p)
            throw new Error("Cannot drop database file, because it does not exist");
          d = 0, m && (d = m(d));
        }
      }), d;
    }, Ur.attachDatabase = function(r, p, m, d, y) {
      var l = 1;
      if (S.databases[p])
        throw new Error('Unable to attach database as "' + p + '" because it already exists');
      var _ = new S.Database(p || r);
      return _.engineid = "FILESTORAGE", _.filename = m[0].value, ma(_.filename, !!y, function(h) {
        try {
          _.data = JSON.parse(h);
        } catch {
          throw new Error("Data in FileStorage database are corrupted");
        }
        if (_.tables = _.data.tables, !S.options.autocommit && _.tables)
          for (var O in _.tables)
            _.tables[O].data = _.data[O];
        y && (l = y(l));
      }), l;
    }, Ur.createTable = function(r, p, m, d) {
      var y = S.databases[r];
      if (y.data[p] && !m)
        throw new Error('Table "' + p + '" alsready exists in the database "' + fsdbid + '"');
      return m = S.databases[r].tables[p], y.data.tables[p] = { columns: m.columns }, y.data[p] = [], Ur.updateFile(r), d && d(1), 1;
    }, Ur.updateFile = function(r) {
      var p = S.databases[r];
      p.issaving ? p.postsave = !0 : (p.issaving = !0, p.postsave = !1, S.utils.saveFile(p.filename, JSON.stringify(p.data), function() {
        p.issaving = !1, p.postsave && setTimeout(function() {
          Ur.updateFile(r);
        }, 50);
      }));
    }, Ur.dropTable = function(r, p, m, d) {
      var y = S.databases[r];
      if (m || y.tables[p])
        return delete y.tables[p], delete y.data.tables[p], delete y.data[p], Ur.updateFile(r), d && d(1), 1;
      throw new Error('Cannot drop table "' + p + '" in fileStorage, because it does not exist');
    }, Ur.fromTable = function(r, p, m, d, y) {
      return r = S.databases[r].data[p], r = m ? m(r, d, y) : r;
    }, Ur.intoTable = function(r, p, m, d, y) {
      var l = S.databases[r], _ = m.length, h = (h = l.data[p]) || [];
      return l.data[p] = h.concat(m), Ur.updateFile(r), y && y(_), _;
    }, Ur.loadTableData = function(r, p) {
      r = S.databases[r], r.tables[p].data = r.data[p];
    }, Ur.saveTableData = function(r, p) {
      var m = S.databases[r];
      m.data[p] = m.tables[p].data, m.tables[p].data = null, Ur.updateFile(r);
    }, Ur.begin = Ur.commit = function(r, p) {
      var m = S.databases[r];
      if (m.tables)
        for (var d in m.tables)
          m.data.tables[d] = { columns: m.tables[d].columns }, m.data[d] = m.tables[d].data;
      return Ur.updateFile(r), p ? p(1) : 1;
    }, Ur.rollback = function(r, p) {
      var m = 1, d = S.databases[r];
      d.dbversion++, function y() {
        setTimeout(function() {
          if (d.issaving)
            return y();
          S.loadFile(d.filename, !!p, function(l) {
            for (var _ in d.data = l, d.tables = {}, d.data.tables) {
              var h = new S.Table({ columns: d.data.tables[_].columns });
              rr(h, d.data.tables[_]), d.tables[_] = h, S.options.autocommit || (d.tables[_].data = d.data[_]), d.tables[_].indexColumns();
            }
            delete S.databases[r], S.databases[r] = new S.Database(r), rr(S.databases[r], d), S.databases[r].engineid = "FILESTORAGE", S.databases[r].filename = d.filename, p && (m = p(m));
          });
        }, 100);
      }();
    }, ft.isBrowser && !ft.isWebWorker) {
      if (!(S = S || !1))
        throw new Error("alasql was not found");
      S.worker = function() {
        throw new Error("Can find webworker in this enviroment");
      }, typeof Worker < "u" && (S.worker = function(r, p, m) {
        if ((r = r === !0 ? void 0 : r) === void 0)
          for (var d = document.getElementsByTagName("script"), y = 0; y < d.length; y++) {
            if (d[y].src.substr(-16).toLowerCase() === "alasql-worker.js") {
              r = d[y].src.substr(0, d[y].src.length - 16) + "alasql.js";
              break;
            }
            if (d[y].src.substr(-20).toLowerCase() === "alasql-worker.min.js") {
              r = d[y].src.substr(0, d[y].src.length - 20) + "alasql.min.js";
              break;
            }
            if (d[y].src.substr(-9).toLowerCase() === "alasql.js") {
              r = d[y].src;
              break;
            }
            if (d[y].src.substr(-13).toLowerCase() === "alasql.min.js") {
              r = d[y].src.substr(0, d[y].src.length - 13) + "alasql.min.js";
              break;
            }
          }
        if (r === void 0)
          throw new Error("Path to alasql.js is not specified");
        var l;
        r !== !1 ? (l = (l = "importScripts('") + r + "');self.onmessage = function(event) {alasql(event.data.sql,event.data.params, function(data){postMessage({id:event.data.id, data:data});});}", l = new Blob([l], { type: "text/plain" }), S.webworker = new Worker(URL.createObjectURL(l)), S.webworker.onmessage = function(_) {
          var h = _.data.id;
          S.buffer[h](_.data.data), delete S.buffer[h];
        }, S.webworker.onerror = function(_) {
          throw _;
        }, 1 < arguments.length && (l = "REQUIRE " + p.map(function(_) {
          return '"' + _ + '"';
        }).join(","), S(l, [], m))) : r === !1 && delete S.webworker;
      });
      var Jo = Jo || function(r) {
        var p, m, d, y, l, _, h, O, D, k, z;
        if (!(r === void 0 || typeof navigator < "u" && /MSIE [1-9]\./.test(navigator.userAgent)))
          return z = r.document, p = function() {
            return r.URL || r.webkitURL || r;
          }, m = z.createElementNS("http://www.w3.org/1999/xhtml", "a"), d = "download" in m, y = /constructor/i.test(r.HTMLElement) || r.safari, l = /CriOS\/[\d]+/.test(navigator.userAgent), _ = function(H) {
            (r.setImmediate || r.setTimeout)(function() {
              throw H;
            }, 0);
          }, h = 4e4, O = function(H) {
            setTimeout(function() {
              typeof H == "string" ? p().revokeObjectURL(H) : H.remove();
            }, h);
          }, D = function(H) {
            return /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(H.type) ? new Blob([String.fromCharCode(65279), H], { type: H.type }) : H;
          }, z = (k = function(H, ie, nt) {
            nt || (H = D(H));
            var ne, se, ee = this, nt = H.type === "application/octet-stream", tt = function() {
              for (var rt = ee, ut = "writestart progress write writeend".split(" "), kt = void 0, S1 = (ut = [].concat(ut)).length; S1--; ) {
                var g1 = rt["on" + ut[S1]];
                if (typeof g1 == "function")
                  try {
                    g1.call(rt, kt || rt);
                  } catch (y1) {
                    _(y1);
                  }
              }
            };
            ee.readyState = ee.INIT, d ? (ne = p().createObjectURL(H), setTimeout(function() {
              var rt, ut;
              m.href = ne, m.download = ie, rt = m, ut = new MouseEvent("click"), rt.dispatchEvent(ut), tt(), O(ne), ee.readyState = ee.DONE;
            })) : (l || nt && y) && r.FileReader ? ((se = new FileReader()).onloadend = function() {
              var rt = l ? se.result : se.result.replace(/^data:[^;]*;/, "data:attachment/file;");
              r.open(rt, "_blank") || (r.location.href = rt), ee.readyState = ee.DONE, tt();
            }, se.readAsDataURL(H), ee.readyState = ee.INIT) : (ne = ne || p().createObjectURL(H), !nt && r.open(ne, "_blank") || (r.location.href = ne), ee.readyState = ee.DONE, tt(), O(ne));
          }).prototype, typeof navigator < "u" && navigator.msSaveOrOpenBlob ? function(H, ie, J) {
            return ie = ie || H.name || "download", J || (H = D(H)), navigator.msSaveOrOpenBlob(H, ie);
          } : (z.abort = function() {
          }, z.readyState = z.INIT = 0, z.WRITING = 1, z.DONE = 2, z.error = z.onwritestart = z.onprogress = z.onwrite = z.onabort = z.onerror = z.onwriteend = null, function(H, ie, J) {
            return new k(H, ie || H.name || "download", J);
          });
      }(typeof self < "u" && self || typeof window < "u" && window || this.content);
      s.exports && (s.exports.saveAs = Jo), (ft.isCordova || ft.isMeteorServer || ft.isNode) && console.warn("It looks like you are using the browser version of AlaSQL. Please use the alasql.fs.js file instead."), S.utils.saveAs = Jo;
    }
    return new Ks("alasql"), S.use("alasql"), S;
  });
})(nu, nu.exports);
const eE = nu.exports, tE = ["source", "columns", "id"], rE = {
  key: 2,
  class: "w-full flex justify-center"
}, nE = {
  string: "green",
  double: "blue",
  boolean: "indigo",
  timestamp: "red",
  category: "orange",
  integer: "teal",
  index: "black",
  unknown: "black"
}, iE = {
  string: "font",
  timestamp: "calendar",
  category: "cubes",
  double: "bar-chart",
  boolean: "toggle-on",
  integer: "bar-chart",
  index: "list-ol",
  unknown: "circle"
}, sE = "SELECT * FROM $table", oE = 10, aE = 8, cE = /* @__PURE__ */ bl({
  __name: "DataTable",
  props: {
    singleBlockEmbed: { type: Boolean },
    data: null,
    cells: null,
    schema: null,
    previewMode: { type: Boolean },
    refId: null,
    getCsvText: null,
    downloadLocal: null,
    downloadRemote: null
  },
  emits: ["load-full"],
  setup(s, { emit: n }) {
    const a = s, b = E3(sE), g = E3(), C = E3(!1), x = E3(), I = L5(() => {
      var at, Tt;
      return (Tt = (at = g.value) == null ? void 0 : at.schema) != null ? Tt : a.schema;
    }), P = L5(() => {
      var at, Tt;
      return (Tt = (at = g.value) == null ? void 0 : at.data) != null ? Tt : a.data;
    });
    Iw();
    const M = (at, Tt, Wt) => {
      const b1 = Tt[at], R1 = Wt[at];
      return b1 === R1 ? 0 : b1 > R1 ? 1 : -1;
    }, U = (at, Tt) => {
      const Wt = Tt.type || "unknown", b1 = iE[Wt], R1 = nE[Wt];
      return at(
        "div",
        {
          class: "flex items-center w-full whitespace-nowrap overflow-hidden"
        },
        at("i", {
          class: `fa fa-${b1} pr-2 text-${R1}-400`
        }),
        at("div", {}, Tt.name)
      );
    }, j = (at) => {
      switch (at) {
        case "double":
        case "integer":
          return "number";
        case "timestamp":
          return "date";
        case "category":
          return "select";
        default:
          return "string";
      }
    }, K = L5(() => {
      const at = a.data[0];
      return a.previewMode || !at ? [] : (I.value && I.value.length ? I.value.map((Wt) => Wt.name) : Object.keys(at)).map((Wt) => {
        const b1 = I.value && I.value.find((D1) => D1.name === Wt), R1 = b1 && b1.type ? b1.type : "string", C1 = j(R1);
        return {
          prop: Wt,
          name: Wt,
          size: 200,
          sortable: !0,
          columnType: C1,
          type: R1,
          filter: C1,
          autoSize: !0,
          cellCompare: C1 === "number" ? M : void 0,
          columnTemplate: U
        };
      });
    }), Z = () => {
      var Wt;
      const at = (b1, R1) => {
        const C1 = (Y1) => Number(Y1) === Y1 && `${Y1}`.includes(".") ? "double" : Number(Y1) === Y1 ? "integer" : Boolean(Y1) === Y1 ? "boolean" : "string", D1 = Math.min(oE, a.data.length - 1), M1 = R1.slice(0, D1).map((Y1) => Y1[b1]), B1 = M1.map(C1);
        return B1.every(
          (Y1) => Y1 === B1[0]
        ) && B1[0] !== "string" ? B1[0] : [...new Set(M1)].length <= aE ? "category" : "string";
      }, Tt = (b1) => Object.keys(b1[0]).map((C1) => ({
        name: C1,
        type: at(C1, b1)
      }));
      x.value = null;
      try {
        const b1 = (Wt = b.value) == null ? void 0 : Wt.replace(/\$table/g, "?"), R1 = eE(b1, [a.data]), C1 = R1.length ? Tt(R1) : [];
        g.value = { data: R1, schema: C1 };
      } catch (b1) {
        x.value = b1;
      }
    }, re = (at) => {
      b.value = at;
    }, V = () => {
      g.value = null, x.value = null;
    };
    return (at, Tt) => (B2(), ns("div", {
      "data-cy": "block-datatable",
      class: Ul([
        "rounded shadow w-full",
        { "h-full flex flex-col": a.singleBlockEmbed }
      ])
    }, [
      Ra(jw, {
        "single-block-embed": a.singleBlockEmbed,
        "preview-mode": a.previewMode,
        "query-open": C.value,
        rows: a.data.length,
        columns: q3(K).length,
        cells: a.cells,
        "get-csv-text": a.getCsvText,
        "download-local": a.downloadLocal,
        "download-remote": a.downloadRemote,
        onToggleQueryOpen: Tt[0] || (Tt[0] = (Wt) => C.value = !C.value)
      }, null, 8, ["single-block-embed", "preview-mode", "query-open", "rows", "columns", "cells", "get-csv-text", "download-local", "download-remote"]),
      C.value ? (B2(), xf(Qw, {
        key: 0,
        errors: x.value,
        initialQuery: b.value,
        onQueryChange: re,
        onRunQuery: Z,
        onClearQuery: V
      }, null, 8, ["errors", "initialQuery"])) : Y3("", !0),
      q3(K).length && !a.previewMode ? (B2(), ns("revo-grid", {
        key: 1,
        theme: "compact",
        source: q3(P),
        columns: q3(K),
        class: Ul({
          "flex-1": a.singleBlockEmbed,
          "h-96": !a.singleBlockEmbed
        }),
        resize: !0,
        autoSizeColumn: !0,
        rowHeaders: !0,
        filter: !0,
        readonly: !0,
        exporting: !0,
        id: `grid-${a.refId}`
      }, null, 10, tE)) : Y3("", !0),
      a.previewMode ? (B2(), ns("div", rE, [
        Ra(Bl, {
          dataCy: "button-load-dataset",
          onClick: Tt[1] || (Tt[1] = (Wt) => n("load-full")),
          icon: "fa fa-table"
        }, {
          default: zl(() => [
            cl(" Click to load dataset (" + o3(q3(Cc)(a.cells)) + " cells) ", 1)
          ]),
          _: 1
        })
      ])) : Y3("", !0)
    ], 2));
  }
});
export {
  cE as default
};
