import { j as xt, T as St } from "../TextEditor-BkvWfPZ7.js";
import { tags as e } from "@lezer/highlight";
import { EditorView as H, Decoration as N, WidgetType as kt, ViewPlugin as Dt, keymap as At } from "@codemirror/view";
import { HighlightStyle as Tt, syntaxHighlighting as Nt } from "@codemirror/language";
import { StateEffect as Ct, StateField as Rt, RangeSetBuilder as Ht, Annotation as Z, Compartment as $t, EditorState as Ut } from "@codemirror/state";
import { setPromptLineEffect as M, setPromptSymbolEffect as I, PromptSymbolField as y, PromptLineField as q } from "../mongo-shell/state.js";
import { c as b, g as Vt, n as Ot } from "../_plugin-vue2_normalizer-5m4abzWv.js";
function C() {
  return C = Object.assign ? Object.assign.bind() : function(t) {
    for (var n = 1; n < arguments.length; n++) {
      var o = arguments[n];
      for (var s in o) ({}).hasOwnProperty.call(o, s) && (t[s] = o[s]);
    }
    return t;
  }, C.apply(null, arguments);
}
var Ft = (t) => {
  var {
    theme: n,
    settings: o = {},
    styles: s = []
  } = t, c = {
    ".cm-gutters": {}
  }, r = {};
  o.background && (r.backgroundColor = o.background), o.backgroundImage && (r.backgroundImage = o.backgroundImage), o.foreground && (r.color = o.foreground), o.fontSize && (r.fontSize = o.fontSize), (o.background || o.foreground) && (c["&"] = r), o.fontFamily && (c["&.cm-editor .cm-scroller"] = {
    fontFamily: o.fontFamily
  }), o.gutterBackground && (c[".cm-gutters"].backgroundColor = o.gutterBackground), o.gutterForeground && (c[".cm-gutters"].color = o.gutterForeground), o.gutterBorder && (c[".cm-gutters"].borderRightColor = o.gutterBorder), o.caret && (c[".cm-content"] = {
    caretColor: o.caret
  }, c[".cm-cursor, .cm-dropCursor"] = {
    borderLeftColor: o.caret
  });
  var i = {};
  o.gutterActiveForeground && (i.color = o.gutterActiveForeground), o.lineHighlight && (c[".cm-activeLine"] = {
    backgroundColor: o.lineHighlight
  }, i.backgroundColor = o.lineHighlight), c[".cm-activeLineGutter"] = i, o.selection && (c["&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection"] = {
    background: o.selection + " !important"
  }), o.selectionMatch && (c["& .cm-selectionMatch"] = {
    backgroundColor: o.selectionMatch
  });
  var a = H.theme(c, {
    dark: n === "dark"
  }), l = Tt.define(s), u = [a, Nt(l)];
  return u;
}, p = {
  background: "#272822",
  foreground: "#f8f8f2",
  selection: "#4a4a76",
  cursor: "#f8f8f0",
  activeLine: "#3e3d3257",
  keyword: "#F92672",
  variable: "#FD971F",
  function: "#66D9EF",
  string: "#E6DB74",
  constant: "#AE81FF",
  type: "#66D9EF",
  class: "#A6E22E",
  number: "#AE81FF",
  comment: "#88846f",
  heading: "#A6E22E",
  invalid: "#F44747",
  regexp: "#E6DB74",
  tag: "#F92672"
}, Bt = {
  background: p.background,
  foreground: p.foreground,
  caret: p.cursor,
  selection: p.selection,
  selectionMatch: p.selection,
  gutterBackground: p.background,
  gutterForeground: p.foreground,
  lineHighlight: p.activeLine
}, Mt = [{
  tag: e.keyword,
  color: p.keyword
}, {
  tag: [e.name, e.deleted, e.character, e.macroName],
  color: p.variable
}, {
  tag: [e.propertyName],
  color: p.function
}, {
  tag: [e.processingInstruction, e.string, e.inserted, e.special(e.string)],
  color: p.string
}, {
  tag: [e.function(e.variableName), e.labelName],
  color: p.function
}, {
  tag: [e.color, e.constant(e.name), e.standard(e.name)],
  color: p.constant
}, {
  tag: [e.definition(e.name), e.separator],
  color: p.variable
}, {
  tag: [e.className],
  color: p.class
}, {
  tag: [e.number, e.changed, e.annotation, e.modifier, e.self, e.namespace],
  color: p.number
}, {
  tag: [e.typeName],
  color: p.type,
  fontStyle: p.type
}, {
  tag: [e.operator, e.operatorKeyword],
  color: p.keyword
}, {
  tag: [e.url, e.escape, e.regexp, e.link],
  color: p.regexp
}, {
  tag: [e.meta, e.comment],
  color: p.comment
}, {
  tag: e.tagName,
  color: p.tag
}, {
  tag: e.strong,
  fontWeight: "bold"
}, {
  tag: e.emphasis,
  fontStyle: "italic"
}, {
  tag: e.link,
  textDecoration: "underline"
}, {
  tag: e.heading,
  fontWeight: "bold",
  color: p.heading
}, {
  tag: [e.atom, e.bool, e.special(e.variableName)],
  color: p.variable
}, {
  tag: e.invalid,
  color: p.invalid
}, {
  tag: e.strikethrough,
  textDecoration: "line-through"
}], Q = (t) => {
  var {
    theme: n = "dark",
    settings: o = {},
    styles: s = []
  } = t || {};
  return Ft({
    theme: n,
    settings: C({}, Bt, o),
    styles: [...Mt, ...s]
  });
};
Q();
const It = {
  isFocused: Boolean,
  keymap: {
    type: String,
    validater(t) {
      return ["default", "vim", "emacs"].includes(t);
    },
    default: "default"
  },
  lineWrapping: Boolean,
  keybindings: {
    type: Object,
    default: () => ({})
  },
  contextMenuItems: [Array, Function],
  vimConfig: Object,
  vimKeymaps: Array,
  clipboard: Object,
  promptSymbol: {
    type: String,
    default: "mongo> "
  },
  maxPromptSymbolLength: {
    type: Number,
    default: 30
  },
  output: Object,
  extensions: [Array, Function]
};
class Pt extends kt {
  constructor(n) {
    super(), this.html = n;
  }
  toDOM() {
    const n = document.createElement("pre");
    return n.className = "ansi-output", n.innerHTML = this.html, n;
  }
}
const tt = Ct.define(), Gt = Rt.define({
  create() {
    return N.none;
  },
  update(t, n) {
    t = t.map(n.changes);
    for (let o of n.effects)
      if (o.is(tt)) {
        const { pos: s, html: c } = o.value, r = N.widget({
          widget: new Pt(c),
          block: !0
        }).range(s);
        t = t.update({ add: [r] });
      }
    return t;
  },
  provide: (t) => H.decorations.from(t)
}), jt = /^[^\n]+>\s/, _t = N.mark({
  class: "cm-mongo-prompt"
}), zt = Dt.fromClass(class {
  constructor(t) {
    this.decorations = this.buildDecorations(t);
  }
  update(t) {
    (t.docChanged || t.viewportChanged) && (this.decorations = this.buildDecorations(t.view));
  }
  buildDecorations(t) {
    const n = new Ht();
    for (let { from: o, to: s } of t.visibleRanges)
      for (let c = o; c <= s; ) {
        const r = t.state.doc.lineAt(c), a = r.text.match(jt);
        a && n.add(r.from, r.from + a[0].length, _t), c = r.to + 1;
      }
    return n.finish();
  }
}, {
  decorations: (t) => t.decorations
});
function Xt() {
  return [
    xt(),
    zt
  ];
}
var ot = {}, m = {};
const Jt = "Á", Kt = "á", Yt = "Ă", Wt = "ă", Zt = "∾", Qt = "∿", to = "∾̳", oo = "Â", no = "â", so = "´", co = "А", ro = "а", eo = "Æ", ao = "æ", io = "⁡", lo = "𝔄", uo = "𝔞", po = "À", go = "à", fo = "ℵ", mo = "ℵ", ho = "Α", bo = "α", vo = "Ā", yo = "ā", qo = "⨿", wo = "&", Lo = "&", Eo = "⩕", xo = "⩓", So = "∧", ko = "⩜", Do = "⩘", Ao = "⩚", To = "∠", No = "⦤", Co = "∠", Ro = "⦨", Ho = "⦩", $o = "⦪", Uo = "⦫", Vo = "⦬", Oo = "⦭", Fo = "⦮", Bo = "⦯", Mo = "∡", Io = "∟", Po = "⊾", Go = "⦝", jo = "∢", _o = "Å", zo = "⍼", Xo = "Ą", Jo = "ą", Ko = "𝔸", Yo = "𝕒", Wo = "⩯", Zo = "≈", Qo = "⩰", tn = "≊", on = "≋", nn = "'", sn = "⁡", cn = "≈", rn = "≊", en = "Å", an = "å", ln = "𝒜", un = "𝒶", pn = "≔", dn = "*", gn = "≈", fn = "≍", mn = "Ã", hn = "ã", bn = "Ä", vn = "ä", yn = "∳", qn = "⨑", wn = "≌", Ln = "϶", En = "‵", xn = "∽", Sn = "⋍", kn = "∖", Dn = "⫧", An = "⊽", Tn = "⌅", Nn = "⌆", Cn = "⌅", Rn = "⎵", Hn = "⎶", $n = "≌", Un = "Б", Vn = "б", On = "„", Fn = "∵", Bn = "∵", Mn = "∵", In = "⦰", Pn = "϶", Gn = "ℬ", jn = "ℬ", _n = "Β", zn = "β", Xn = "ℶ", Jn = "≬", Kn = "𝔅", Yn = "𝔟", Wn = "⋂", Zn = "◯", Qn = "⋃", ts = "⨀", os = "⨁", ns = "⨂", ss = "⨆", cs = "★", rs = "▽", es = "△", as = "⨄", is = "⋁", ls = "⋀", us = "⤍", ps = "⧫", ds = "▪", gs = "▴", fs = "▾", ms = "◂", hs = "▸", bs = "␣", vs = "▒", ys = "░", qs = "▓", ws = "█", Ls = "=⃥", Es = "≡⃥", xs = "⫭", Ss = "⌐", ks = "𝔹", Ds = "𝕓", As = "⊥", Ts = "⊥", Ns = "⋈", Cs = "⧉", Rs = "┐", Hs = "╕", $s = "╖", Us = "╗", Vs = "┌", Os = "╒", Fs = "╓", Bs = "╔", Ms = "─", Is = "═", Ps = "┬", Gs = "╤", js = "╥", _s = "╦", zs = "┴", Xs = "╧", Js = "╨", Ks = "╩", Ys = "⊟", Ws = "⊞", Zs = "⊠", Qs = "┘", tc = "╛", oc = "╜", nc = "╝", sc = "└", cc = "╘", rc = "╙", ec = "╚", ac = "│", ic = "║", lc = "┼", uc = "╪", pc = "╫", dc = "╬", gc = "┤", fc = "╡", mc = "╢", hc = "╣", bc = "├", vc = "╞", yc = "╟", qc = "╠", wc = "‵", Lc = "˘", Ec = "˘", xc = "¦", Sc = "𝒷", kc = "ℬ", Dc = "⁏", Ac = "∽", Tc = "⋍", Nc = "⧅", Cc = "\\", Rc = "⟈", Hc = "•", $c = "•", Uc = "≎", Vc = "⪮", Oc = "≏", Fc = "≎", Bc = "≏", Mc = "Ć", Ic = "ć", Pc = "⩄", Gc = "⩉", jc = "⩋", _c = "∩", zc = "⋒", Xc = "⩇", Jc = "⩀", Kc = "ⅅ", Yc = "∩︀", Wc = "⁁", Zc = "ˇ", Qc = "ℭ", tr = "⩍", or = "Č", nr = "č", sr = "Ç", cr = "ç", rr = "Ĉ", er = "ĉ", ar = "∰", ir = "⩌", lr = "⩐", ur = "Ċ", pr = "ċ", dr = "¸", gr = "¸", fr = "⦲", mr = "¢", hr = "·", br = "·", vr = "𝔠", yr = "ℭ", qr = "Ч", wr = "ч", Lr = "✓", Er = "✓", xr = "Χ", Sr = "χ", kr = "ˆ", Dr = "≗", Ar = "↺", Tr = "↻", Nr = "⊛", Cr = "⊚", Rr = "⊝", Hr = "⊙", $r = "®", Ur = "Ⓢ", Vr = "⊖", Or = "⊕", Fr = "⊗", Br = "○", Mr = "⧃", Ir = "≗", Pr = "⨐", Gr = "⫯", jr = "⧂", _r = "∲", zr = "”", Xr = "’", Jr = "♣", Kr = "♣", Yr = ":", Wr = "∷", Zr = "⩴", Qr = "≔", te = "≔", oe = ",", ne = "@", se = "∁", ce = "∘", re = "∁", ee = "ℂ", ae = "≅", ie = "⩭", le = "≡", ue = "∮", pe = "∯", de = "∮", ge = "𝕔", fe = "ℂ", me = "∐", he = "∐", be = "©", ve = "©", ye = "℗", qe = "∳", we = "↵", Le = "✗", Ee = "⨯", xe = "𝒞", Se = "𝒸", ke = "⫏", De = "⫑", Ae = "⫐", Te = "⫒", Ne = "⋯", Ce = "⤸", Re = "⤵", He = "⋞", $e = "⋟", Ue = "↶", Ve = "⤽", Oe = "⩈", Fe = "⩆", Be = "≍", Me = "∪", Ie = "⋓", Pe = "⩊", Ge = "⊍", je = "⩅", _e = "∪︀", ze = "↷", Xe = "⤼", Je = "⋞", Ke = "⋟", Ye = "⋎", We = "⋏", Ze = "¤", Qe = "↶", ta = "↷", oa = "⋎", na = "⋏", sa = "∲", ca = "∱", ra = "⌭", ea = "†", aa = "‡", ia = "ℸ", la = "↓", ua = "↡", pa = "⇓", da = "‐", ga = "⫤", fa = "⊣", ma = "⤏", ha = "˝", ba = "Ď", va = "ď", ya = "Д", qa = "д", wa = "‡", La = "⇊", Ea = "ⅅ", xa = "ⅆ", Sa = "⤑", ka = "⩷", Da = "°", Aa = "∇", Ta = "Δ", Na = "δ", Ca = "⦱", Ra = "⥿", Ha = "𝔇", $a = "𝔡", Ua = "⥥", Va = "⇃", Oa = "⇂", Fa = "´", Ba = "˙", Ma = "˝", Ia = "`", Pa = "˜", Ga = "⋄", ja = "⋄", _a = "⋄", za = "♦", Xa = "♦", Ja = "¨", Ka = "ⅆ", Ya = "ϝ", Wa = "⋲", Za = "÷", Qa = "÷", ti = "⋇", oi = "⋇", ni = "Ђ", si = "ђ", ci = "⌞", ri = "⌍", ei = "$", ai = "𝔻", ii = "𝕕", li = "¨", ui = "˙", pi = "⃜", di = "≐", gi = "≑", fi = "≐", mi = "∸", hi = "∔", bi = "⊡", vi = "⌆", yi = "∯", qi = "¨", wi = "⇓", Li = "⇐", Ei = "⇔", xi = "⫤", Si = "⟸", ki = "⟺", Di = "⟹", Ai = "⇒", Ti = "⊨", Ni = "⇑", Ci = "⇕", Ri = "∥", Hi = "⤓", $i = "↓", Ui = "↓", Vi = "⇓", Oi = "⇵", Fi = "̑", Bi = "⇊", Mi = "⇃", Ii = "⇂", Pi = "⥐", Gi = "⥞", ji = "⥖", _i = "↽", zi = "⥟", Xi = "⥗", Ji = "⇁", Ki = "↧", Yi = "⊤", Wi = "⤐", Zi = "⌟", Qi = "⌌", tl = "𝒟", ol = "𝒹", nl = "Ѕ", sl = "ѕ", cl = "⧶", rl = "Đ", el = "đ", al = "⋱", il = "▿", ll = "▾", ul = "⇵", pl = "⥯", dl = "⦦", gl = "Џ", fl = "џ", ml = "⟿", hl = "É", bl = "é", vl = "⩮", yl = "Ě", ql = "ě", wl = "Ê", Ll = "ê", El = "≖", xl = "≕", Sl = "Э", kl = "э", Dl = "⩷", Al = "Ė", Tl = "ė", Nl = "≑", Cl = "ⅇ", Rl = "≒", Hl = "𝔈", $l = "𝔢", Ul = "⪚", Vl = "È", Ol = "è", Fl = "⪖", Bl = "⪘", Ml = "⪙", Il = "∈", Pl = "⏧", Gl = "ℓ", jl = "⪕", _l = "⪗", zl = "Ē", Xl = "ē", Jl = "∅", Kl = "∅", Yl = "◻", Wl = "∅", Zl = "▫", Ql = " ", tu = " ", ou = " ", nu = "Ŋ", su = "ŋ", cu = " ", ru = "Ę", eu = "ę", au = "𝔼", iu = "𝕖", lu = "⋕", uu = "⧣", pu = "⩱", du = "ε", gu = "Ε", fu = "ε", mu = "ϵ", hu = "≖", bu = "≕", vu = "≂", yu = "⪖", qu = "⪕", wu = "⩵", Lu = "=", Eu = "≂", xu = "≟", Su = "⇌", ku = "≡", Du = "⩸", Au = "⧥", Tu = "⥱", Nu = "≓", Cu = "ℯ", Ru = "ℰ", Hu = "≐", $u = "⩳", Uu = "≂", Vu = "Η", Ou = "η", Fu = "Ð", Bu = "ð", Mu = "Ë", Iu = "ë", Pu = "€", Gu = "!", ju = "∃", _u = "∃", zu = "ℰ", Xu = "ⅇ", Ju = "ⅇ", Ku = "≒", Yu = "Ф", Wu = "ф", Zu = "♀", Qu = "ﬃ", tp = "ﬀ", op = "ﬄ", np = "𝔉", sp = "𝔣", cp = "ﬁ", rp = "◼", ep = "▪", ap = "fj", ip = "♭", lp = "ﬂ", up = "▱", pp = "ƒ", dp = "𝔽", gp = "𝕗", fp = "∀", mp = "∀", hp = "⋔", bp = "⫙", vp = "ℱ", yp = "⨍", qp = "½", wp = "⅓", Lp = "¼", Ep = "⅕", xp = "⅙", Sp = "⅛", kp = "⅔", Dp = "⅖", Ap = "¾", Tp = "⅗", Np = "⅜", Cp = "⅘", Rp = "⅚", Hp = "⅝", $p = "⅞", Up = "⁄", Vp = "⌢", Op = "𝒻", Fp = "ℱ", Bp = "ǵ", Mp = "Γ", Ip = "γ", Pp = "Ϝ", Gp = "ϝ", jp = "⪆", _p = "Ğ", zp = "ğ", Xp = "Ģ", Jp = "Ĝ", Kp = "ĝ", Yp = "Г", Wp = "г", Zp = "Ġ", Qp = "ġ", td = "≥", od = "≧", nd = "⪌", sd = "⋛", cd = "≥", rd = "≧", ed = "⩾", ad = "⪩", id = "⩾", ld = "⪀", ud = "⪂", pd = "⪄", dd = "⋛︀", gd = "⪔", fd = "𝔊", md = "𝔤", hd = "≫", bd = "⋙", vd = "⋙", yd = "ℷ", qd = "Ѓ", wd = "ѓ", Ld = "⪥", Ed = "≷", xd = "⪒", Sd = "⪤", kd = "⪊", Dd = "⪊", Ad = "⪈", Td = "≩", Nd = "⪈", Cd = "≩", Rd = "⋧", Hd = "𝔾", $d = "𝕘", Ud = "`", Vd = "≥", Od = "⋛", Fd = "≧", Bd = "⪢", Md = "≷", Id = "⩾", Pd = "≳", Gd = "𝒢", jd = "ℊ", _d = "≳", zd = "⪎", Xd = "⪐", Jd = "⪧", Kd = "⩺", Yd = ">", Wd = ">", Zd = "≫", Qd = "⋗", tg = "⦕", og = "⩼", ng = "⪆", sg = "⥸", cg = "⋗", rg = "⋛", eg = "⪌", ag = "≷", ig = "≳", lg = "≩︀", ug = "≩︀", pg = "ˇ", dg = " ", gg = "½", fg = "ℋ", mg = "Ъ", hg = "ъ", bg = "⥈", vg = "↔", yg = "⇔", qg = "↭", wg = "^", Lg = "ℏ", Eg = "Ĥ", xg = "ĥ", Sg = "♥", kg = "♥", Dg = "…", Ag = "⊹", Tg = "𝔥", Ng = "ℌ", Cg = "ℋ", Rg = "⤥", Hg = "⤦", $g = "⇿", Ug = "∻", Vg = "↩", Og = "↪", Fg = "𝕙", Bg = "ℍ", Mg = "―", Ig = "─", Pg = "𝒽", Gg = "ℋ", jg = "ℏ", _g = "Ħ", zg = "ħ", Xg = "≎", Jg = "≏", Kg = "⁃", Yg = "‐", Wg = "Í", Zg = "í", Qg = "⁣", tf = "Î", of = "î", nf = "И", sf = "и", cf = "İ", rf = "Е", ef = "е", af = "¡", lf = "⇔", uf = "𝔦", pf = "ℑ", df = "Ì", gf = "ì", ff = "ⅈ", mf = "⨌", hf = "∭", bf = "⧜", vf = "℩", yf = "Ĳ", qf = "ĳ", wf = "Ī", Lf = "ī", Ef = "ℑ", xf = "ⅈ", Sf = "ℐ", kf = "ℑ", Df = "ı", Af = "ℑ", Tf = "⊷", Nf = "Ƶ", Cf = "⇒", Rf = "℅", Hf = "∞", $f = "⧝", Uf = "ı", Vf = "⊺", Of = "∫", Ff = "∬", Bf = "ℤ", Mf = "∫", If = "⊺", Pf = "⋂", Gf = "⨗", jf = "⨼", _f = "⁣", zf = "⁢", Xf = "Ё", Jf = "ё", Kf = "Į", Yf = "į", Wf = "𝕀", Zf = "𝕚", Qf = "Ι", tm = "ι", om = "⨼", nm = "¿", sm = "𝒾", cm = "ℐ", rm = "∈", em = "⋵", am = "⋹", im = "⋴", lm = "⋳", um = "∈", pm = "⁢", dm = "Ĩ", gm = "ĩ", fm = "І", mm = "і", hm = "Ï", bm = "ï", vm = "Ĵ", ym = "ĵ", qm = "Й", wm = "й", Lm = "𝔍", Em = "𝔧", xm = "ȷ", Sm = "𝕁", km = "𝕛", Dm = "𝒥", Am = "𝒿", Tm = "Ј", Nm = "ј", Cm = "Є", Rm = "є", Hm = "Κ", $m = "κ", Um = "ϰ", Vm = "Ķ", Om = "ķ", Fm = "К", Bm = "к", Mm = "𝔎", Im = "𝔨", Pm = "ĸ", Gm = "Х", jm = "х", _m = "Ќ", zm = "ќ", Xm = "𝕂", Jm = "𝕜", Km = "𝒦", Ym = "𝓀", Wm = "⇚", Zm = "Ĺ", Qm = "ĺ", th = "⦴", oh = "ℒ", nh = "Λ", sh = "λ", ch = "⟨", rh = "⟪", eh = "⦑", ah = "⟨", ih = "⪅", lh = "ℒ", uh = "«", ph = "⇤", dh = "⤟", gh = "←", fh = "↞", mh = "⇐", hh = "⤝", bh = "↩", vh = "↫", yh = "⤹", qh = "⥳", wh = "↢", Lh = "⤙", Eh = "⤛", xh = "⪫", Sh = "⪭", kh = "⪭︀", Dh = "⤌", Ah = "⤎", Th = "❲", Nh = "{", Ch = "[", Rh = "⦋", Hh = "⦏", $h = "⦍", Uh = "Ľ", Vh = "ľ", Oh = "Ļ", Fh = "ļ", Bh = "⌈", Mh = "{", Ih = "Л", Ph = "л", Gh = "⤶", jh = "“", _h = "„", zh = "⥧", Xh = "⥋", Jh = "↲", Kh = "≤", Yh = "≦", Wh = "⟨", Zh = "⇤", Qh = "←", tb = "←", ob = "⇐", nb = "⇆", sb = "↢", cb = "⌈", rb = "⟦", eb = "⥡", ab = "⥙", ib = "⇃", lb = "⌊", ub = "↽", pb = "↼", db = "⇇", gb = "↔", fb = "↔", mb = "⇔", hb = "⇆", bb = "⇋", vb = "↭", yb = "⥎", qb = "↤", wb = "⊣", Lb = "⥚", Eb = "⋋", xb = "⧏", Sb = "⊲", kb = "⊴", Db = "⥑", Ab = "⥠", Tb = "⥘", Nb = "↿", Cb = "⥒", Rb = "↼", Hb = "⪋", $b = "⋚", Ub = "≤", Vb = "≦", Ob = "⩽", Fb = "⪨", Bb = "⩽", Mb = "⩿", Ib = "⪁", Pb = "⪃", Gb = "⋚︀", jb = "⪓", _b = "⪅", zb = "⋖", Xb = "⋚", Jb = "⪋", Kb = "⋚", Yb = "≦", Wb = "≶", Zb = "≶", Qb = "⪡", tv = "≲", ov = "⩽", nv = "≲", sv = "⥼", cv = "⌊", rv = "𝔏", ev = "𝔩", av = "≶", iv = "⪑", lv = "⥢", uv = "↽", pv = "↼", dv = "⥪", gv = "▄", fv = "Љ", mv = "љ", hv = "⇇", bv = "≪", vv = "⋘", yv = "⌞", qv = "⇚", wv = "⥫", Lv = "◺", Ev = "Ŀ", xv = "ŀ", Sv = "⎰", kv = "⎰", Dv = "⪉", Av = "⪉", Tv = "⪇", Nv = "≨", Cv = "⪇", Rv = "≨", Hv = "⋦", $v = "⟬", Uv = "⇽", Vv = "⟦", Ov = "⟵", Fv = "⟵", Bv = "⟸", Mv = "⟷", Iv = "⟷", Pv = "⟺", Gv = "⟼", jv = "⟶", _v = "⟶", zv = "⟹", Xv = "↫", Jv = "↬", Kv = "⦅", Yv = "𝕃", Wv = "𝕝", Zv = "⨭", Qv = "⨴", ty = "∗", oy = "_", ny = "↙", sy = "↘", cy = "◊", ry = "◊", ey = "⧫", ay = "(", iy = "⦓", ly = "⇆", uy = "⌟", py = "⇋", dy = "⥭", gy = "‎", fy = "⊿", my = "‹", hy = "𝓁", by = "ℒ", vy = "↰", yy = "↰", qy = "≲", wy = "⪍", Ly = "⪏", Ey = "[", xy = "‘", Sy = "‚", ky = "Ł", Dy = "ł", Ay = "⪦", Ty = "⩹", Ny = "<", Cy = "<", Ry = "≪", Hy = "⋖", $y = "⋋", Uy = "⋉", Vy = "⥶", Oy = "⩻", Fy = "◃", By = "⊴", My = "◂", Iy = "⦖", Py = "⥊", Gy = "⥦", jy = "≨︀", _y = "≨︀", zy = "¯", Xy = "♂", Jy = "✠", Ky = "✠", Yy = "↦", Wy = "↦", Zy = "↧", Qy = "↤", tq = "↥", oq = "▮", nq = "⨩", sq = "М", cq = "м", rq = "—", eq = "∺", aq = "∡", iq = " ", lq = "ℳ", uq = "𝔐", pq = "𝔪", dq = "℧", gq = "µ", fq = "*", mq = "⫰", hq = "∣", bq = "·", vq = "⊟", yq = "−", qq = "∸", wq = "⨪", Lq = "∓", Eq = "⫛", xq = "…", Sq = "∓", kq = "⊧", Dq = "𝕄", Aq = "𝕞", Tq = "∓", Nq = "𝓂", Cq = "ℳ", Rq = "∾", Hq = "Μ", $q = "μ", Uq = "⊸", Vq = "⊸", Oq = "∇", Fq = "Ń", Bq = "ń", Mq = "∠⃒", Iq = "≉", Pq = "⩰̸", Gq = "≋̸", jq = "ŉ", _q = "≉", zq = "♮", Xq = "ℕ", Jq = "♮", Kq = " ", Yq = "≎̸", Wq = "≏̸", Zq = "⩃", Qq = "Ň", tw = "ň", ow = "Ņ", nw = "ņ", sw = "≇", cw = "⩭̸", rw = "⩂", ew = "Н", aw = "н", iw = "–", lw = "⤤", uw = "↗", pw = "⇗", dw = "↗", gw = "≠", fw = "≐̸", mw = "​", hw = "​", bw = "​", vw = "​", yw = "≢", qw = "⤨", ww = "≂̸", Lw = "≫", Ew = "≪", xw = `
`, Sw = "∄", kw = "∄", Dw = "𝔑", Aw = "𝔫", Tw = "≧̸", Nw = "≱", Cw = "≱", Rw = "≧̸", Hw = "⩾̸", $w = "⩾̸", Uw = "⋙̸", Vw = "≵", Ow = "≫⃒", Fw = "≯", Bw = "≯", Mw = "≫̸", Iw = "↮", Pw = "⇎", Gw = "⫲", jw = "∋", _w = "⋼", zw = "⋺", Xw = "∋", Jw = "Њ", Kw = "њ", Yw = "↚", Ww = "⇍", Zw = "‥", Qw = "≦̸", tL = "≰", oL = "↚", nL = "⇍", sL = "↮", cL = "⇎", rL = "≰", eL = "≦̸", aL = "⩽̸", iL = "⩽̸", lL = "≮", uL = "⋘̸", pL = "≴", dL = "≪⃒", gL = "≮", fL = "⋪", mL = "⋬", hL = "≪̸", bL = "∤", vL = "⁠", yL = " ", qL = "𝕟", wL = "ℕ", LL = "⫬", EL = "¬", xL = "≢", SL = "≭", kL = "∦", DL = "∉", AL = "≠", TL = "≂̸", NL = "∄", CL = "≯", RL = "≱", HL = "≧̸", $L = "≫̸", UL = "≹", VL = "⩾̸", OL = "≵", FL = "≎̸", BL = "≏̸", ML = "∉", IL = "⋵̸", PL = "⋹̸", GL = "∉", jL = "⋷", _L = "⋶", zL = "⧏̸", XL = "⋪", JL = "⋬", KL = "≮", YL = "≰", WL = "≸", ZL = "≪̸", QL = "⩽̸", tE = "≴", oE = "⪢̸", nE = "⪡̸", sE = "∌", cE = "∌", rE = "⋾", eE = "⋽", aE = "⊀", iE = "⪯̸", lE = "⋠", uE = "∌", pE = "⧐̸", dE = "⋫", gE = "⋭", fE = "⊏̸", mE = "⋢", hE = "⊐̸", bE = "⋣", vE = "⊂⃒", yE = "⊈", qE = "⊁", wE = "⪰̸", LE = "⋡", EE = "≿̸", xE = "⊃⃒", SE = "⊉", kE = "≁", DE = "≄", AE = "≇", TE = "≉", NE = "∤", CE = "∦", RE = "∦", HE = "⫽⃥", $E = "∂̸", UE = "⨔", VE = "⊀", OE = "⋠", FE = "⊀", BE = "⪯̸", ME = "⪯̸", IE = "⤳̸", PE = "↛", GE = "⇏", jE = "↝̸", _E = "↛", zE = "⇏", XE = "⋫", JE = "⋭", KE = "⊁", YE = "⋡", WE = "⪰̸", ZE = "𝒩", QE = "𝓃", tx = "∤", ox = "∦", nx = "≁", sx = "≄", cx = "≄", rx = "∤", ex = "∦", ax = "⋢", ix = "⋣", lx = "⊄", ux = "⫅̸", px = "⊈", dx = "⊂⃒", gx = "⊈", fx = "⫅̸", mx = "⊁", hx = "⪰̸", bx = "⊅", vx = "⫆̸", yx = "⊉", qx = "⊃⃒", wx = "⊉", Lx = "⫆̸", Ex = "≹", xx = "Ñ", Sx = "ñ", kx = "≸", Dx = "⋪", Ax = "⋬", Tx = "⋫", Nx = "⋭", Cx = "Ν", Rx = "ν", Hx = "#", $x = "№", Ux = " ", Vx = "≍⃒", Ox = "⊬", Fx = "⊭", Bx = "⊮", Mx = "⊯", Ix = "≥⃒", Px = ">⃒", Gx = "⤄", jx = "⧞", _x = "⤂", zx = "≤⃒", Xx = "<⃒", Jx = "⊴⃒", Kx = "⤃", Yx = "⊵⃒", Wx = "∼⃒", Zx = "⤣", Qx = "↖", tS = "⇖", oS = "↖", nS = "⤧", sS = "Ó", cS = "ó", rS = "⊛", eS = "Ô", aS = "ô", iS = "⊚", lS = "О", uS = "о", pS = "⊝", dS = "Ő", gS = "ő", fS = "⨸", mS = "⊙", hS = "⦼", bS = "Œ", vS = "œ", yS = "⦿", qS = "𝔒", wS = "𝔬", LS = "˛", ES = "Ò", xS = "ò", SS = "⧁", kS = "⦵", DS = "Ω", AS = "∮", TS = "↺", NS = "⦾", CS = "⦻", RS = "‾", HS = "⧀", $S = "Ō", US = "ō", VS = "Ω", OS = "ω", FS = "Ο", BS = "ο", MS = "⦶", IS = "⊖", PS = "𝕆", GS = "𝕠", jS = "⦷", _S = "“", zS = "‘", XS = "⦹", JS = "⊕", KS = "↻", YS = "⩔", WS = "∨", ZS = "⩝", QS = "ℴ", t1 = "ℴ", o1 = "ª", n1 = "º", s1 = "⊶", c1 = "⩖", r1 = "⩗", e1 = "⩛", a1 = "Ⓢ", i1 = "𝒪", l1 = "ℴ", u1 = "Ø", p1 = "ø", d1 = "⊘", g1 = "Õ", f1 = "õ", m1 = "⨶", h1 = "⨷", b1 = "⊗", v1 = "Ö", y1 = "ö", q1 = "⌽", w1 = "‾", L1 = "⏞", E1 = "⎴", x1 = "⏜", S1 = "¶", k1 = "∥", D1 = "∥", A1 = "⫳", T1 = "⫽", N1 = "∂", C1 = "∂", R1 = "П", H1 = "п", $1 = "%", U1 = ".", V1 = "‰", O1 = "⊥", F1 = "‱", B1 = "𝔓", M1 = "𝔭", I1 = "Φ", P1 = "φ", G1 = "ϕ", j1 = "ℳ", _1 = "☎", z1 = "Π", X1 = "π", J1 = "⋔", K1 = "ϖ", Y1 = "ℏ", W1 = "ℎ", Z1 = "ℏ", Q1 = "⨣", tk = "⊞", ok = "⨢", nk = "+", sk = "∔", ck = "⨥", rk = "⩲", ek = "±", ak = "±", ik = "⨦", lk = "⨧", uk = "±", pk = "ℌ", dk = "⨕", gk = "𝕡", fk = "ℙ", mk = "£", hk = "⪷", bk = "⪻", vk = "≺", yk = "≼", qk = "⪷", wk = "≺", Lk = "≼", Ek = "≺", xk = "⪯", Sk = "≼", kk = "≾", Dk = "⪯", Ak = "⪹", Tk = "⪵", Nk = "⋨", Ck = "⪯", Rk = "⪳", Hk = "≾", $k = "′", Uk = "″", Vk = "ℙ", Ok = "⪹", Fk = "⪵", Bk = "⋨", Mk = "∏", Ik = "∏", Pk = "⌮", Gk = "⌒", jk = "⌓", _k = "∝", zk = "∝", Xk = "∷", Jk = "∝", Kk = "≾", Yk = "⊰", Wk = "𝒫", Zk = "𝓅", Qk = "Ψ", tD = "ψ", oD = " ", nD = "𝔔", sD = "𝔮", cD = "⨌", rD = "𝕢", eD = "ℚ", aD = "⁗", iD = "𝒬", lD = "𝓆", uD = "ℍ", pD = "⨖", dD = "?", gD = "≟", fD = '"', mD = '"', hD = "⇛", bD = "∽̱", vD = "Ŕ", yD = "ŕ", qD = "√", wD = "⦳", LD = "⟩", ED = "⟫", xD = "⦒", SD = "⦥", kD = "⟩", DD = "»", AD = "⥵", TD = "⇥", ND = "⤠", CD = "⤳", RD = "→", HD = "↠", $D = "⇒", UD = "⤞", VD = "↪", OD = "↬", FD = "⥅", BD = "⥴", MD = "⤖", ID = "↣", PD = "↝", GD = "⤚", jD = "⤜", _D = "∶", zD = "ℚ", XD = "⤍", JD = "⤏", KD = "⤐", YD = "❳", WD = "}", ZD = "]", QD = "⦌", tA = "⦎", oA = "⦐", nA = "Ř", sA = "ř", cA = "Ŗ", rA = "ŗ", eA = "⌉", aA = "}", iA = "Р", lA = "р", uA = "⤷", pA = "⥩", dA = "”", gA = "”", fA = "↳", mA = "ℜ", hA = "ℛ", bA = "ℜ", vA = "ℝ", yA = "ℜ", qA = "▭", wA = "®", LA = "®", EA = "∋", xA = "⇋", SA = "⥯", kA = "⥽", DA = "⌋", AA = "𝔯", TA = "ℜ", NA = "⥤", CA = "⇁", RA = "⇀", HA = "⥬", $A = "Ρ", UA = "ρ", VA = "ϱ", OA = "⟩", FA = "⇥", BA = "→", MA = "→", IA = "⇒", PA = "⇄", GA = "↣", jA = "⌉", _A = "⟧", zA = "⥝", XA = "⥕", JA = "⇂", KA = "⌋", YA = "⇁", WA = "⇀", ZA = "⇄", QA = "⇌", tT = "⇉", oT = "↝", nT = "↦", sT = "⊢", cT = "⥛", rT = "⋌", eT = "⧐", aT = "⊳", iT = "⊵", lT = "⥏", uT = "⥜", pT = "⥔", dT = "↾", gT = "⥓", fT = "⇀", mT = "˚", hT = "≓", bT = "⇄", vT = "⇌", yT = "‏", qT = "⎱", wT = "⎱", LT = "⫮", ET = "⟭", xT = "⇾", ST = "⟧", kT = "⦆", DT = "𝕣", AT = "ℝ", TT = "⨮", NT = "⨵", CT = "⥰", RT = ")", HT = "⦔", $T = "⨒", UT = "⇉", VT = "⇛", OT = "›", FT = "𝓇", BT = "ℛ", MT = "↱", IT = "↱", PT = "]", GT = "’", jT = "’", _T = "⋌", zT = "⋊", XT = "▹", JT = "⊵", KT = "▸", YT = "⧎", WT = "⧴", ZT = "⥨", QT = "℞", tN = "Ś", oN = "ś", nN = "‚", sN = "⪸", cN = "Š", rN = "š", eN = "⪼", aN = "≻", iN = "≽", lN = "⪰", uN = "⪴", pN = "Ş", dN = "ş", gN = "Ŝ", fN = "ŝ", mN = "⪺", hN = "⪶", bN = "⋩", vN = "⨓", yN = "≿", qN = "С", wN = "с", LN = "⊡", EN = "⋅", xN = "⩦", SN = "⤥", kN = "↘", DN = "⇘", AN = "↘", TN = "§", NN = ";", CN = "⤩", RN = "∖", HN = "∖", $N = "✶", UN = "𝔖", VN = "𝔰", ON = "⌢", FN = "♯", BN = "Щ", MN = "щ", IN = "Ш", PN = "ш", GN = "↓", jN = "←", _N = "∣", zN = "∥", XN = "→", JN = "↑", KN = "­", YN = "Σ", WN = "σ", ZN = "ς", QN = "ς", tC = "∼", oC = "⩪", nC = "≃", sC = "≃", cC = "⪞", rC = "⪠", eC = "⪝", aC = "⪟", iC = "≆", lC = "⨤", uC = "⥲", pC = "←", dC = "∘", gC = "∖", fC = "⨳", mC = "⧤", hC = "∣", bC = "⌣", vC = "⪪", yC = "⪬", qC = "⪬︀", wC = "Ь", LC = "ь", EC = "⌿", xC = "⧄", SC = "/", kC = "𝕊", DC = "𝕤", AC = "♠", TC = "♠", NC = "∥", CC = "⊓", RC = "⊓︀", HC = "⊔", $C = "⊔︀", UC = "√", VC = "⊏", OC = "⊑", FC = "⊏", BC = "⊑", MC = "⊐", IC = "⊒", PC = "⊐", GC = "⊒", jC = "□", _C = "□", zC = "⊓", XC = "⊏", JC = "⊑", KC = "⊐", YC = "⊒", WC = "⊔", ZC = "▪", QC = "□", tR = "▪", oR = "→", nR = "𝒮", sR = "𝓈", cR = "∖", rR = "⌣", eR = "⋆", aR = "⋆", iR = "☆", lR = "★", uR = "ϵ", pR = "ϕ", dR = "¯", gR = "⊂", fR = "⋐", mR = "⪽", hR = "⫅", bR = "⊆", vR = "⫃", yR = "⫁", qR = "⫋", wR = "⊊", LR = "⪿", ER = "⥹", xR = "⊂", SR = "⋐", kR = "⊆", DR = "⫅", AR = "⊆", TR = "⊊", NR = "⫋", CR = "⫇", RR = "⫕", HR = "⫓", $R = "⪸", UR = "≻", VR = "≽", OR = "≻", FR = "⪰", BR = "≽", MR = "≿", IR = "⪰", PR = "⪺", GR = "⪶", jR = "⋩", _R = "≿", zR = "∋", XR = "∑", JR = "∑", KR = "♪", YR = "¹", WR = "²", ZR = "³", QR = "⊃", t0 = "⋑", o0 = "⪾", n0 = "⫘", s0 = "⫆", c0 = "⊇", r0 = "⫄", e0 = "⊃", a0 = "⊇", i0 = "⟉", l0 = "⫗", u0 = "⥻", p0 = "⫂", d0 = "⫌", g0 = "⊋", f0 = "⫀", m0 = "⊃", h0 = "⋑", b0 = "⊇", v0 = "⫆", y0 = "⊋", q0 = "⫌", w0 = "⫈", L0 = "⫔", E0 = "⫖", x0 = "⤦", S0 = "↙", k0 = "⇙", D0 = "↙", A0 = "⤪", T0 = "ß", N0 = "	", C0 = "⌖", R0 = "Τ", H0 = "τ", $0 = "⎴", U0 = "Ť", V0 = "ť", O0 = "Ţ", F0 = "ţ", B0 = "Т", M0 = "т", I0 = "⃛", P0 = "⌕", G0 = "𝔗", j0 = "𝔱", _0 = "∴", z0 = "∴", X0 = "∴", J0 = "Θ", K0 = "θ", Y0 = "ϑ", W0 = "ϑ", Z0 = "≈", Q0 = "∼", tH = "  ", oH = " ", nH = " ", sH = "≈", cH = "∼", rH = "Þ", eH = "þ", aH = "˜", iH = "∼", lH = "≃", uH = "≅", pH = "≈", dH = "⨱", gH = "⊠", fH = "×", mH = "⨰", hH = "∭", bH = "⤨", vH = "⌶", yH = "⫱", qH = "⊤", wH = "𝕋", LH = "𝕥", EH = "⫚", xH = "⤩", SH = "‴", kH = "™", DH = "™", AH = "▵", TH = "▿", NH = "◃", CH = "⊴", RH = "≜", HH = "▹", $H = "⊵", UH = "◬", VH = "≜", OH = "⨺", FH = "⃛", BH = "⨹", MH = "⧍", IH = "⨻", PH = "⏢", GH = "𝒯", jH = "𝓉", _H = "Ц", zH = "ц", XH = "Ћ", JH = "ћ", KH = "Ŧ", YH = "ŧ", WH = "≬", ZH = "↞", QH = "↠", t$ = "Ú", o$ = "ú", n$ = "↑", s$ = "↟", c$ = "⇑", r$ = "⥉", e$ = "Ў", a$ = "ў", i$ = "Ŭ", l$ = "ŭ", u$ = "Û", p$ = "û", d$ = "У", g$ = "у", f$ = "⇅", m$ = "Ű", h$ = "ű", b$ = "⥮", v$ = "⥾", y$ = "𝔘", q$ = "𝔲", w$ = "Ù", L$ = "ù", E$ = "⥣", x$ = "↿", S$ = "↾", k$ = "▀", D$ = "⌜", A$ = "⌜", T$ = "⌏", N$ = "◸", C$ = "Ū", R$ = "ū", H$ = "¨", $$ = "_", U$ = "⏟", V$ = "⎵", O$ = "⏝", F$ = "⋃", B$ = "⊎", M$ = "Ų", I$ = "ų", P$ = "𝕌", G$ = "𝕦", j$ = "⤒", _$ = "↑", z$ = "↑", X$ = "⇑", J$ = "⇅", K$ = "↕", Y$ = "↕", W$ = "⇕", Z$ = "⥮", Q$ = "↿", tU = "↾", oU = "⊎", nU = "↖", sU = "↗", cU = "υ", rU = "ϒ", eU = "ϒ", aU = "Υ", iU = "υ", lU = "↥", uU = "⊥", pU = "⇈", dU = "⌝", gU = "⌝", fU = "⌎", mU = "Ů", hU = "ů", bU = "◹", vU = "𝒰", yU = "𝓊", qU = "⋰", wU = "Ũ", LU = "ũ", EU = "▵", xU = "▴", SU = "⇈", kU = "Ü", DU = "ü", AU = "⦧", TU = "⦜", NU = "ϵ", CU = "ϰ", RU = "∅", HU = "ϕ", $U = "ϖ", UU = "∝", VU = "↕", OU = "⇕", FU = "ϱ", BU = "ς", MU = "⊊︀", IU = "⫋︀", PU = "⊋︀", GU = "⫌︀", jU = "ϑ", _U = "⊲", zU = "⊳", XU = "⫨", JU = "⫫", KU = "⫩", YU = "В", WU = "в", ZU = "⊢", QU = "⊨", tV = "⊩", oV = "⊫", nV = "⫦", sV = "⊻", cV = "∨", rV = "⋁", eV = "≚", aV = "⋮", iV = "|", lV = "‖", uV = "|", pV = "‖", dV = "∣", gV = "|", fV = "❘", mV = "≀", hV = " ", bV = "𝔙", vV = "𝔳", yV = "⊲", qV = "⊂⃒", wV = "⊃⃒", LV = "𝕍", EV = "𝕧", xV = "∝", SV = "⊳", kV = "𝒱", DV = "𝓋", AV = "⫋︀", TV = "⊊︀", NV = "⫌︀", CV = "⊋︀", RV = "⊪", HV = "⦚", $V = "Ŵ", UV = "ŵ", VV = "⩟", OV = "∧", FV = "⋀", BV = "≙", MV = "℘", IV = "𝔚", PV = "𝔴", GV = "𝕎", jV = "𝕨", _V = "℘", zV = "≀", XV = "≀", JV = "𝒲", KV = "𝓌", YV = "⋂", WV = "◯", ZV = "⋃", QV = "▽", tO = "𝔛", oO = "𝔵", nO = "⟷", sO = "⟺", cO = "Ξ", rO = "ξ", eO = "⟵", aO = "⟸", iO = "⟼", lO = "⋻", uO = "⨀", pO = "𝕏", dO = "𝕩", gO = "⨁", fO = "⨂", mO = "⟶", hO = "⟹", bO = "𝒳", vO = "𝓍", yO = "⨆", qO = "⨄", wO = "△", LO = "⋁", EO = "⋀", xO = "Ý", SO = "ý", kO = "Я", DO = "я", AO = "Ŷ", TO = "ŷ", NO = "Ы", CO = "ы", RO = "¥", HO = "𝔜", $O = "𝔶", UO = "Ї", VO = "ї", OO = "𝕐", FO = "𝕪", BO = "𝒴", MO = "𝓎", IO = "Ю", PO = "ю", GO = "ÿ", jO = "Ÿ", _O = "Ź", zO = "ź", XO = "Ž", JO = "ž", KO = "З", YO = "з", WO = "Ż", ZO = "ż", QO = "ℨ", tF = "​", oF = "Ζ", nF = "ζ", sF = "𝔷", cF = "ℨ", rF = "Ж", eF = "ж", aF = "⇝", iF = "𝕫", lF = "ℤ", uF = "𝒵", pF = "𝓏", dF = "‍", gF = "‌", nt = {
  Aacute: Jt,
  aacute: Kt,
  Abreve: Yt,
  abreve: Wt,
  ac: Zt,
  acd: Qt,
  acE: to,
  Acirc: oo,
  acirc: no,
  acute: so,
  Acy: co,
  acy: ro,
  AElig: eo,
  aelig: ao,
  af: io,
  Afr: lo,
  afr: uo,
  Agrave: po,
  agrave: go,
  alefsym: fo,
  aleph: mo,
  Alpha: ho,
  alpha: bo,
  Amacr: vo,
  amacr: yo,
  amalg: qo,
  amp: wo,
  AMP: Lo,
  andand: Eo,
  And: xo,
  and: So,
  andd: ko,
  andslope: Do,
  andv: Ao,
  ang: To,
  ange: No,
  angle: Co,
  angmsdaa: Ro,
  angmsdab: Ho,
  angmsdac: $o,
  angmsdad: Uo,
  angmsdae: Vo,
  angmsdaf: Oo,
  angmsdag: Fo,
  angmsdah: Bo,
  angmsd: Mo,
  angrt: Io,
  angrtvb: Po,
  angrtvbd: Go,
  angsph: jo,
  angst: _o,
  angzarr: zo,
  Aogon: Xo,
  aogon: Jo,
  Aopf: Ko,
  aopf: Yo,
  apacir: Wo,
  ap: Zo,
  apE: Qo,
  ape: tn,
  apid: on,
  apos: nn,
  ApplyFunction: sn,
  approx: cn,
  approxeq: rn,
  Aring: en,
  aring: an,
  Ascr: ln,
  ascr: un,
  Assign: pn,
  ast: dn,
  asymp: gn,
  asympeq: fn,
  Atilde: mn,
  atilde: hn,
  Auml: bn,
  auml: vn,
  awconint: yn,
  awint: qn,
  backcong: wn,
  backepsilon: Ln,
  backprime: En,
  backsim: xn,
  backsimeq: Sn,
  Backslash: kn,
  Barv: Dn,
  barvee: An,
  barwed: Tn,
  Barwed: Nn,
  barwedge: Cn,
  bbrk: Rn,
  bbrktbrk: Hn,
  bcong: $n,
  Bcy: Un,
  bcy: Vn,
  bdquo: On,
  becaus: Fn,
  because: Bn,
  Because: Mn,
  bemptyv: In,
  bepsi: Pn,
  bernou: Gn,
  Bernoullis: jn,
  Beta: _n,
  beta: zn,
  beth: Xn,
  between: Jn,
  Bfr: Kn,
  bfr: Yn,
  bigcap: Wn,
  bigcirc: Zn,
  bigcup: Qn,
  bigodot: ts,
  bigoplus: os,
  bigotimes: ns,
  bigsqcup: ss,
  bigstar: cs,
  bigtriangledown: rs,
  bigtriangleup: es,
  biguplus: as,
  bigvee: is,
  bigwedge: ls,
  bkarow: us,
  blacklozenge: ps,
  blacksquare: ds,
  blacktriangle: gs,
  blacktriangledown: fs,
  blacktriangleleft: ms,
  blacktriangleright: hs,
  blank: bs,
  blk12: vs,
  blk14: ys,
  blk34: qs,
  block: ws,
  bne: Ls,
  bnequiv: Es,
  bNot: xs,
  bnot: Ss,
  Bopf: ks,
  bopf: Ds,
  bot: As,
  bottom: Ts,
  bowtie: Ns,
  boxbox: Cs,
  boxdl: Rs,
  boxdL: Hs,
  boxDl: $s,
  boxDL: Us,
  boxdr: Vs,
  boxdR: Os,
  boxDr: Fs,
  boxDR: Bs,
  boxh: Ms,
  boxH: Is,
  boxhd: Ps,
  boxHd: Gs,
  boxhD: js,
  boxHD: _s,
  boxhu: zs,
  boxHu: Xs,
  boxhU: Js,
  boxHU: Ks,
  boxminus: Ys,
  boxplus: Ws,
  boxtimes: Zs,
  boxul: Qs,
  boxuL: tc,
  boxUl: oc,
  boxUL: nc,
  boxur: sc,
  boxuR: cc,
  boxUr: rc,
  boxUR: ec,
  boxv: ac,
  boxV: ic,
  boxvh: lc,
  boxvH: uc,
  boxVh: pc,
  boxVH: dc,
  boxvl: gc,
  boxvL: fc,
  boxVl: mc,
  boxVL: hc,
  boxvr: bc,
  boxvR: vc,
  boxVr: yc,
  boxVR: qc,
  bprime: wc,
  breve: Lc,
  Breve: Ec,
  brvbar: xc,
  bscr: Sc,
  Bscr: kc,
  bsemi: Dc,
  bsim: Ac,
  bsime: Tc,
  bsolb: Nc,
  bsol: Cc,
  bsolhsub: Rc,
  bull: Hc,
  bullet: $c,
  bump: Uc,
  bumpE: Vc,
  bumpe: Oc,
  Bumpeq: Fc,
  bumpeq: Bc,
  Cacute: Mc,
  cacute: Ic,
  capand: Pc,
  capbrcup: Gc,
  capcap: jc,
  cap: _c,
  Cap: zc,
  capcup: Xc,
  capdot: Jc,
  CapitalDifferentialD: Kc,
  caps: Yc,
  caret: Wc,
  caron: Zc,
  Cayleys: Qc,
  ccaps: tr,
  Ccaron: or,
  ccaron: nr,
  Ccedil: sr,
  ccedil: cr,
  Ccirc: rr,
  ccirc: er,
  Cconint: ar,
  ccups: ir,
  ccupssm: lr,
  Cdot: ur,
  cdot: pr,
  cedil: dr,
  Cedilla: gr,
  cemptyv: fr,
  cent: mr,
  centerdot: hr,
  CenterDot: br,
  cfr: vr,
  Cfr: yr,
  CHcy: qr,
  chcy: wr,
  check: Lr,
  checkmark: Er,
  Chi: xr,
  chi: Sr,
  circ: kr,
  circeq: Dr,
  circlearrowleft: Ar,
  circlearrowright: Tr,
  circledast: Nr,
  circledcirc: Cr,
  circleddash: Rr,
  CircleDot: Hr,
  circledR: $r,
  circledS: Ur,
  CircleMinus: Vr,
  CirclePlus: Or,
  CircleTimes: Fr,
  cir: Br,
  cirE: Mr,
  cire: Ir,
  cirfnint: Pr,
  cirmid: Gr,
  cirscir: jr,
  ClockwiseContourIntegral: _r,
  CloseCurlyDoubleQuote: zr,
  CloseCurlyQuote: Xr,
  clubs: Jr,
  clubsuit: Kr,
  colon: Yr,
  Colon: Wr,
  Colone: Zr,
  colone: Qr,
  coloneq: te,
  comma: oe,
  commat: ne,
  comp: se,
  compfn: ce,
  complement: re,
  complexes: ee,
  cong: ae,
  congdot: ie,
  Congruent: le,
  conint: ue,
  Conint: pe,
  ContourIntegral: de,
  copf: ge,
  Copf: fe,
  coprod: me,
  Coproduct: he,
  copy: be,
  COPY: ve,
  copysr: ye,
  CounterClockwiseContourIntegral: qe,
  crarr: we,
  cross: Le,
  Cross: Ee,
  Cscr: xe,
  cscr: Se,
  csub: ke,
  csube: De,
  csup: Ae,
  csupe: Te,
  ctdot: Ne,
  cudarrl: Ce,
  cudarrr: Re,
  cuepr: He,
  cuesc: $e,
  cularr: Ue,
  cularrp: Ve,
  cupbrcap: Oe,
  cupcap: Fe,
  CupCap: Be,
  cup: Me,
  Cup: Ie,
  cupcup: Pe,
  cupdot: Ge,
  cupor: je,
  cups: _e,
  curarr: ze,
  curarrm: Xe,
  curlyeqprec: Je,
  curlyeqsucc: Ke,
  curlyvee: Ye,
  curlywedge: We,
  curren: Ze,
  curvearrowleft: Qe,
  curvearrowright: ta,
  cuvee: oa,
  cuwed: na,
  cwconint: sa,
  cwint: ca,
  cylcty: ra,
  dagger: ea,
  Dagger: aa,
  daleth: ia,
  darr: la,
  Darr: ua,
  dArr: pa,
  dash: da,
  Dashv: ga,
  dashv: fa,
  dbkarow: ma,
  dblac: ha,
  Dcaron: ba,
  dcaron: va,
  Dcy: ya,
  dcy: qa,
  ddagger: wa,
  ddarr: La,
  DD: Ea,
  dd: xa,
  DDotrahd: Sa,
  ddotseq: ka,
  deg: Da,
  Del: Aa,
  Delta: Ta,
  delta: Na,
  demptyv: Ca,
  dfisht: Ra,
  Dfr: Ha,
  dfr: $a,
  dHar: Ua,
  dharl: Va,
  dharr: Oa,
  DiacriticalAcute: Fa,
  DiacriticalDot: Ba,
  DiacriticalDoubleAcute: Ma,
  DiacriticalGrave: Ia,
  DiacriticalTilde: Pa,
  diam: Ga,
  diamond: ja,
  Diamond: _a,
  diamondsuit: za,
  diams: Xa,
  die: Ja,
  DifferentialD: Ka,
  digamma: Ya,
  disin: Wa,
  div: Za,
  divide: Qa,
  divideontimes: ti,
  divonx: oi,
  DJcy: ni,
  djcy: si,
  dlcorn: ci,
  dlcrop: ri,
  dollar: ei,
  Dopf: ai,
  dopf: ii,
  Dot: li,
  dot: ui,
  DotDot: pi,
  doteq: di,
  doteqdot: gi,
  DotEqual: fi,
  dotminus: mi,
  dotplus: hi,
  dotsquare: bi,
  doublebarwedge: vi,
  DoubleContourIntegral: yi,
  DoubleDot: qi,
  DoubleDownArrow: wi,
  DoubleLeftArrow: Li,
  DoubleLeftRightArrow: Ei,
  DoubleLeftTee: xi,
  DoubleLongLeftArrow: Si,
  DoubleLongLeftRightArrow: ki,
  DoubleLongRightArrow: Di,
  DoubleRightArrow: Ai,
  DoubleRightTee: Ti,
  DoubleUpArrow: Ni,
  DoubleUpDownArrow: Ci,
  DoubleVerticalBar: Ri,
  DownArrowBar: Hi,
  downarrow: $i,
  DownArrow: Ui,
  Downarrow: Vi,
  DownArrowUpArrow: Oi,
  DownBreve: Fi,
  downdownarrows: Bi,
  downharpoonleft: Mi,
  downharpoonright: Ii,
  DownLeftRightVector: Pi,
  DownLeftTeeVector: Gi,
  DownLeftVectorBar: ji,
  DownLeftVector: _i,
  DownRightTeeVector: zi,
  DownRightVectorBar: Xi,
  DownRightVector: Ji,
  DownTeeArrow: Ki,
  DownTee: Yi,
  drbkarow: Wi,
  drcorn: Zi,
  drcrop: Qi,
  Dscr: tl,
  dscr: ol,
  DScy: nl,
  dscy: sl,
  dsol: cl,
  Dstrok: rl,
  dstrok: el,
  dtdot: al,
  dtri: il,
  dtrif: ll,
  duarr: ul,
  duhar: pl,
  dwangle: dl,
  DZcy: gl,
  dzcy: fl,
  dzigrarr: ml,
  Eacute: hl,
  eacute: bl,
  easter: vl,
  Ecaron: yl,
  ecaron: ql,
  Ecirc: wl,
  ecirc: Ll,
  ecir: El,
  ecolon: xl,
  Ecy: Sl,
  ecy: kl,
  eDDot: Dl,
  Edot: Al,
  edot: Tl,
  eDot: Nl,
  ee: Cl,
  efDot: Rl,
  Efr: Hl,
  efr: $l,
  eg: Ul,
  Egrave: Vl,
  egrave: Ol,
  egs: Fl,
  egsdot: Bl,
  el: Ml,
  Element: Il,
  elinters: Pl,
  ell: Gl,
  els: jl,
  elsdot: _l,
  Emacr: zl,
  emacr: Xl,
  empty: Jl,
  emptyset: Kl,
  EmptySmallSquare: Yl,
  emptyv: Wl,
  EmptyVerySmallSquare: Zl,
  emsp13: Ql,
  emsp14: tu,
  emsp: ou,
  ENG: nu,
  eng: su,
  ensp: cu,
  Eogon: ru,
  eogon: eu,
  Eopf: au,
  eopf: iu,
  epar: lu,
  eparsl: uu,
  eplus: pu,
  epsi: du,
  Epsilon: gu,
  epsilon: fu,
  epsiv: mu,
  eqcirc: hu,
  eqcolon: bu,
  eqsim: vu,
  eqslantgtr: yu,
  eqslantless: qu,
  Equal: wu,
  equals: Lu,
  EqualTilde: Eu,
  equest: xu,
  Equilibrium: Su,
  equiv: ku,
  equivDD: Du,
  eqvparsl: Au,
  erarr: Tu,
  erDot: Nu,
  escr: Cu,
  Escr: Ru,
  esdot: Hu,
  Esim: $u,
  esim: Uu,
  Eta: Vu,
  eta: Ou,
  ETH: Fu,
  eth: Bu,
  Euml: Mu,
  euml: Iu,
  euro: Pu,
  excl: Gu,
  exist: ju,
  Exists: _u,
  expectation: zu,
  exponentiale: Xu,
  ExponentialE: Ju,
  fallingdotseq: Ku,
  Fcy: Yu,
  fcy: Wu,
  female: Zu,
  ffilig: Qu,
  fflig: tp,
  ffllig: op,
  Ffr: np,
  ffr: sp,
  filig: cp,
  FilledSmallSquare: rp,
  FilledVerySmallSquare: ep,
  fjlig: ap,
  flat: ip,
  fllig: lp,
  fltns: up,
  fnof: pp,
  Fopf: dp,
  fopf: gp,
  forall: fp,
  ForAll: mp,
  fork: hp,
  forkv: bp,
  Fouriertrf: vp,
  fpartint: yp,
  frac12: qp,
  frac13: wp,
  frac14: Lp,
  frac15: Ep,
  frac16: xp,
  frac18: Sp,
  frac23: kp,
  frac25: Dp,
  frac34: Ap,
  frac35: Tp,
  frac38: Np,
  frac45: Cp,
  frac56: Rp,
  frac58: Hp,
  frac78: $p,
  frasl: Up,
  frown: Vp,
  fscr: Op,
  Fscr: Fp,
  gacute: Bp,
  Gamma: Mp,
  gamma: Ip,
  Gammad: Pp,
  gammad: Gp,
  gap: jp,
  Gbreve: _p,
  gbreve: zp,
  Gcedil: Xp,
  Gcirc: Jp,
  gcirc: Kp,
  Gcy: Yp,
  gcy: Wp,
  Gdot: Zp,
  gdot: Qp,
  ge: td,
  gE: od,
  gEl: nd,
  gel: sd,
  geq: cd,
  geqq: rd,
  geqslant: ed,
  gescc: ad,
  ges: id,
  gesdot: ld,
  gesdoto: ud,
  gesdotol: pd,
  gesl: dd,
  gesles: gd,
  Gfr: fd,
  gfr: md,
  gg: hd,
  Gg: bd,
  ggg: vd,
  gimel: yd,
  GJcy: qd,
  gjcy: wd,
  gla: Ld,
  gl: Ed,
  glE: xd,
  glj: Sd,
  gnap: kd,
  gnapprox: Dd,
  gne: Ad,
  gnE: Td,
  gneq: Nd,
  gneqq: Cd,
  gnsim: Rd,
  Gopf: Hd,
  gopf: $d,
  grave: Ud,
  GreaterEqual: Vd,
  GreaterEqualLess: Od,
  GreaterFullEqual: Fd,
  GreaterGreater: Bd,
  GreaterLess: Md,
  GreaterSlantEqual: Id,
  GreaterTilde: Pd,
  Gscr: Gd,
  gscr: jd,
  gsim: _d,
  gsime: zd,
  gsiml: Xd,
  gtcc: Jd,
  gtcir: Kd,
  gt: Yd,
  GT: Wd,
  Gt: Zd,
  gtdot: Qd,
  gtlPar: tg,
  gtquest: og,
  gtrapprox: ng,
  gtrarr: sg,
  gtrdot: cg,
  gtreqless: rg,
  gtreqqless: eg,
  gtrless: ag,
  gtrsim: ig,
  gvertneqq: lg,
  gvnE: ug,
  Hacek: pg,
  hairsp: dg,
  half: gg,
  hamilt: fg,
  HARDcy: mg,
  hardcy: hg,
  harrcir: bg,
  harr: vg,
  hArr: yg,
  harrw: qg,
  Hat: wg,
  hbar: Lg,
  Hcirc: Eg,
  hcirc: xg,
  hearts: Sg,
  heartsuit: kg,
  hellip: Dg,
  hercon: Ag,
  hfr: Tg,
  Hfr: Ng,
  HilbertSpace: Cg,
  hksearow: Rg,
  hkswarow: Hg,
  hoarr: $g,
  homtht: Ug,
  hookleftarrow: Vg,
  hookrightarrow: Og,
  hopf: Fg,
  Hopf: Bg,
  horbar: Mg,
  HorizontalLine: Ig,
  hscr: Pg,
  Hscr: Gg,
  hslash: jg,
  Hstrok: _g,
  hstrok: zg,
  HumpDownHump: Xg,
  HumpEqual: Jg,
  hybull: Kg,
  hyphen: Yg,
  Iacute: Wg,
  iacute: Zg,
  ic: Qg,
  Icirc: tf,
  icirc: of,
  Icy: nf,
  icy: sf,
  Idot: cf,
  IEcy: rf,
  iecy: ef,
  iexcl: af,
  iff: lf,
  ifr: uf,
  Ifr: pf,
  Igrave: df,
  igrave: gf,
  ii: ff,
  iiiint: mf,
  iiint: hf,
  iinfin: bf,
  iiota: vf,
  IJlig: yf,
  ijlig: qf,
  Imacr: wf,
  imacr: Lf,
  image: Ef,
  ImaginaryI: xf,
  imagline: Sf,
  imagpart: kf,
  imath: Df,
  Im: Af,
  imof: Tf,
  imped: Nf,
  Implies: Cf,
  incare: Rf,
  in: "∈",
  infin: Hf,
  infintie: $f,
  inodot: Uf,
  intcal: Vf,
  int: Of,
  Int: Ff,
  integers: Bf,
  Integral: Mf,
  intercal: If,
  Intersection: Pf,
  intlarhk: Gf,
  intprod: jf,
  InvisibleComma: _f,
  InvisibleTimes: zf,
  IOcy: Xf,
  iocy: Jf,
  Iogon: Kf,
  iogon: Yf,
  Iopf: Wf,
  iopf: Zf,
  Iota: Qf,
  iota: tm,
  iprod: om,
  iquest: nm,
  iscr: sm,
  Iscr: cm,
  isin: rm,
  isindot: em,
  isinE: am,
  isins: im,
  isinsv: lm,
  isinv: um,
  it: pm,
  Itilde: dm,
  itilde: gm,
  Iukcy: fm,
  iukcy: mm,
  Iuml: hm,
  iuml: bm,
  Jcirc: vm,
  jcirc: ym,
  Jcy: qm,
  jcy: wm,
  Jfr: Lm,
  jfr: Em,
  jmath: xm,
  Jopf: Sm,
  jopf: km,
  Jscr: Dm,
  jscr: Am,
  Jsercy: Tm,
  jsercy: Nm,
  Jukcy: Cm,
  jukcy: Rm,
  Kappa: Hm,
  kappa: $m,
  kappav: Um,
  Kcedil: Vm,
  kcedil: Om,
  Kcy: Fm,
  kcy: Bm,
  Kfr: Mm,
  kfr: Im,
  kgreen: Pm,
  KHcy: Gm,
  khcy: jm,
  KJcy: _m,
  kjcy: zm,
  Kopf: Xm,
  kopf: Jm,
  Kscr: Km,
  kscr: Ym,
  lAarr: Wm,
  Lacute: Zm,
  lacute: Qm,
  laemptyv: th,
  lagran: oh,
  Lambda: nh,
  lambda: sh,
  lang: ch,
  Lang: rh,
  langd: eh,
  langle: ah,
  lap: ih,
  Laplacetrf: lh,
  laquo: uh,
  larrb: ph,
  larrbfs: dh,
  larr: gh,
  Larr: fh,
  lArr: mh,
  larrfs: hh,
  larrhk: bh,
  larrlp: vh,
  larrpl: yh,
  larrsim: qh,
  larrtl: wh,
  latail: Lh,
  lAtail: Eh,
  lat: xh,
  late: Sh,
  lates: kh,
  lbarr: Dh,
  lBarr: Ah,
  lbbrk: Th,
  lbrace: Nh,
  lbrack: Ch,
  lbrke: Rh,
  lbrksld: Hh,
  lbrkslu: $h,
  Lcaron: Uh,
  lcaron: Vh,
  Lcedil: Oh,
  lcedil: Fh,
  lceil: Bh,
  lcub: Mh,
  Lcy: Ih,
  lcy: Ph,
  ldca: Gh,
  ldquo: jh,
  ldquor: _h,
  ldrdhar: zh,
  ldrushar: Xh,
  ldsh: Jh,
  le: Kh,
  lE: Yh,
  LeftAngleBracket: Wh,
  LeftArrowBar: Zh,
  leftarrow: Qh,
  LeftArrow: tb,
  Leftarrow: ob,
  LeftArrowRightArrow: nb,
  leftarrowtail: sb,
  LeftCeiling: cb,
  LeftDoubleBracket: rb,
  LeftDownTeeVector: eb,
  LeftDownVectorBar: ab,
  LeftDownVector: ib,
  LeftFloor: lb,
  leftharpoondown: ub,
  leftharpoonup: pb,
  leftleftarrows: db,
  leftrightarrow: gb,
  LeftRightArrow: fb,
  Leftrightarrow: mb,
  leftrightarrows: hb,
  leftrightharpoons: bb,
  leftrightsquigarrow: vb,
  LeftRightVector: yb,
  LeftTeeArrow: qb,
  LeftTee: wb,
  LeftTeeVector: Lb,
  leftthreetimes: Eb,
  LeftTriangleBar: xb,
  LeftTriangle: Sb,
  LeftTriangleEqual: kb,
  LeftUpDownVector: Db,
  LeftUpTeeVector: Ab,
  LeftUpVectorBar: Tb,
  LeftUpVector: Nb,
  LeftVectorBar: Cb,
  LeftVector: Rb,
  lEg: Hb,
  leg: $b,
  leq: Ub,
  leqq: Vb,
  leqslant: Ob,
  lescc: Fb,
  les: Bb,
  lesdot: Mb,
  lesdoto: Ib,
  lesdotor: Pb,
  lesg: Gb,
  lesges: jb,
  lessapprox: _b,
  lessdot: zb,
  lesseqgtr: Xb,
  lesseqqgtr: Jb,
  LessEqualGreater: Kb,
  LessFullEqual: Yb,
  LessGreater: Wb,
  lessgtr: Zb,
  LessLess: Qb,
  lesssim: tv,
  LessSlantEqual: ov,
  LessTilde: nv,
  lfisht: sv,
  lfloor: cv,
  Lfr: rv,
  lfr: ev,
  lg: av,
  lgE: iv,
  lHar: lv,
  lhard: uv,
  lharu: pv,
  lharul: dv,
  lhblk: gv,
  LJcy: fv,
  ljcy: mv,
  llarr: hv,
  ll: bv,
  Ll: vv,
  llcorner: yv,
  Lleftarrow: qv,
  llhard: wv,
  lltri: Lv,
  Lmidot: Ev,
  lmidot: xv,
  lmoustache: Sv,
  lmoust: kv,
  lnap: Dv,
  lnapprox: Av,
  lne: Tv,
  lnE: Nv,
  lneq: Cv,
  lneqq: Rv,
  lnsim: Hv,
  loang: $v,
  loarr: Uv,
  lobrk: Vv,
  longleftarrow: Ov,
  LongLeftArrow: Fv,
  Longleftarrow: Bv,
  longleftrightarrow: Mv,
  LongLeftRightArrow: Iv,
  Longleftrightarrow: Pv,
  longmapsto: Gv,
  longrightarrow: jv,
  LongRightArrow: _v,
  Longrightarrow: zv,
  looparrowleft: Xv,
  looparrowright: Jv,
  lopar: Kv,
  Lopf: Yv,
  lopf: Wv,
  loplus: Zv,
  lotimes: Qv,
  lowast: ty,
  lowbar: oy,
  LowerLeftArrow: ny,
  LowerRightArrow: sy,
  loz: cy,
  lozenge: ry,
  lozf: ey,
  lpar: ay,
  lparlt: iy,
  lrarr: ly,
  lrcorner: uy,
  lrhar: py,
  lrhard: dy,
  lrm: gy,
  lrtri: fy,
  lsaquo: my,
  lscr: hy,
  Lscr: by,
  lsh: vy,
  Lsh: yy,
  lsim: qy,
  lsime: wy,
  lsimg: Ly,
  lsqb: Ey,
  lsquo: xy,
  lsquor: Sy,
  Lstrok: ky,
  lstrok: Dy,
  ltcc: Ay,
  ltcir: Ty,
  lt: Ny,
  LT: Cy,
  Lt: Ry,
  ltdot: Hy,
  lthree: $y,
  ltimes: Uy,
  ltlarr: Vy,
  ltquest: Oy,
  ltri: Fy,
  ltrie: By,
  ltrif: My,
  ltrPar: Iy,
  lurdshar: Py,
  luruhar: Gy,
  lvertneqq: jy,
  lvnE: _y,
  macr: zy,
  male: Xy,
  malt: Jy,
  maltese: Ky,
  Map: "⤅",
  map: Yy,
  mapsto: Wy,
  mapstodown: Zy,
  mapstoleft: Qy,
  mapstoup: tq,
  marker: oq,
  mcomma: nq,
  Mcy: sq,
  mcy: cq,
  mdash: rq,
  mDDot: eq,
  measuredangle: aq,
  MediumSpace: iq,
  Mellintrf: lq,
  Mfr: uq,
  mfr: pq,
  mho: dq,
  micro: gq,
  midast: fq,
  midcir: mq,
  mid: hq,
  middot: bq,
  minusb: vq,
  minus: yq,
  minusd: qq,
  minusdu: wq,
  MinusPlus: Lq,
  mlcp: Eq,
  mldr: xq,
  mnplus: Sq,
  models: kq,
  Mopf: Dq,
  mopf: Aq,
  mp: Tq,
  mscr: Nq,
  Mscr: Cq,
  mstpos: Rq,
  Mu: Hq,
  mu: $q,
  multimap: Uq,
  mumap: Vq,
  nabla: Oq,
  Nacute: Fq,
  nacute: Bq,
  nang: Mq,
  nap: Iq,
  napE: Pq,
  napid: Gq,
  napos: jq,
  napprox: _q,
  natural: zq,
  naturals: Xq,
  natur: Jq,
  nbsp: Kq,
  nbump: Yq,
  nbumpe: Wq,
  ncap: Zq,
  Ncaron: Qq,
  ncaron: tw,
  Ncedil: ow,
  ncedil: nw,
  ncong: sw,
  ncongdot: cw,
  ncup: rw,
  Ncy: ew,
  ncy: aw,
  ndash: iw,
  nearhk: lw,
  nearr: uw,
  neArr: pw,
  nearrow: dw,
  ne: gw,
  nedot: fw,
  NegativeMediumSpace: mw,
  NegativeThickSpace: hw,
  NegativeThinSpace: bw,
  NegativeVeryThinSpace: vw,
  nequiv: yw,
  nesear: qw,
  nesim: ww,
  NestedGreaterGreater: Lw,
  NestedLessLess: Ew,
  NewLine: xw,
  nexist: Sw,
  nexists: kw,
  Nfr: Dw,
  nfr: Aw,
  ngE: Tw,
  nge: Nw,
  ngeq: Cw,
  ngeqq: Rw,
  ngeqslant: Hw,
  nges: $w,
  nGg: Uw,
  ngsim: Vw,
  nGt: Ow,
  ngt: Fw,
  ngtr: Bw,
  nGtv: Mw,
  nharr: Iw,
  nhArr: Pw,
  nhpar: Gw,
  ni: jw,
  nis: _w,
  nisd: zw,
  niv: Xw,
  NJcy: Jw,
  njcy: Kw,
  nlarr: Yw,
  nlArr: Ww,
  nldr: Zw,
  nlE: Qw,
  nle: tL,
  nleftarrow: oL,
  nLeftarrow: nL,
  nleftrightarrow: sL,
  nLeftrightarrow: cL,
  nleq: rL,
  nleqq: eL,
  nleqslant: aL,
  nles: iL,
  nless: lL,
  nLl: uL,
  nlsim: pL,
  nLt: dL,
  nlt: gL,
  nltri: fL,
  nltrie: mL,
  nLtv: hL,
  nmid: bL,
  NoBreak: vL,
  NonBreakingSpace: yL,
  nopf: qL,
  Nopf: wL,
  Not: LL,
  not: EL,
  NotCongruent: xL,
  NotCupCap: SL,
  NotDoubleVerticalBar: kL,
  NotElement: DL,
  NotEqual: AL,
  NotEqualTilde: TL,
  NotExists: NL,
  NotGreater: CL,
  NotGreaterEqual: RL,
  NotGreaterFullEqual: HL,
  NotGreaterGreater: $L,
  NotGreaterLess: UL,
  NotGreaterSlantEqual: VL,
  NotGreaterTilde: OL,
  NotHumpDownHump: FL,
  NotHumpEqual: BL,
  notin: ML,
  notindot: IL,
  notinE: PL,
  notinva: GL,
  notinvb: jL,
  notinvc: _L,
  NotLeftTriangleBar: zL,
  NotLeftTriangle: XL,
  NotLeftTriangleEqual: JL,
  NotLess: KL,
  NotLessEqual: YL,
  NotLessGreater: WL,
  NotLessLess: ZL,
  NotLessSlantEqual: QL,
  NotLessTilde: tE,
  NotNestedGreaterGreater: oE,
  NotNestedLessLess: nE,
  notni: sE,
  notniva: cE,
  notnivb: rE,
  notnivc: eE,
  NotPrecedes: aE,
  NotPrecedesEqual: iE,
  NotPrecedesSlantEqual: lE,
  NotReverseElement: uE,
  NotRightTriangleBar: pE,
  NotRightTriangle: dE,
  NotRightTriangleEqual: gE,
  NotSquareSubset: fE,
  NotSquareSubsetEqual: mE,
  NotSquareSuperset: hE,
  NotSquareSupersetEqual: bE,
  NotSubset: vE,
  NotSubsetEqual: yE,
  NotSucceeds: qE,
  NotSucceedsEqual: wE,
  NotSucceedsSlantEqual: LE,
  NotSucceedsTilde: EE,
  NotSuperset: xE,
  NotSupersetEqual: SE,
  NotTilde: kE,
  NotTildeEqual: DE,
  NotTildeFullEqual: AE,
  NotTildeTilde: TE,
  NotVerticalBar: NE,
  nparallel: CE,
  npar: RE,
  nparsl: HE,
  npart: $E,
  npolint: UE,
  npr: VE,
  nprcue: OE,
  nprec: FE,
  npreceq: BE,
  npre: ME,
  nrarrc: IE,
  nrarr: PE,
  nrArr: GE,
  nrarrw: jE,
  nrightarrow: _E,
  nRightarrow: zE,
  nrtri: XE,
  nrtrie: JE,
  nsc: KE,
  nsccue: YE,
  nsce: WE,
  Nscr: ZE,
  nscr: QE,
  nshortmid: tx,
  nshortparallel: ox,
  nsim: nx,
  nsime: sx,
  nsimeq: cx,
  nsmid: rx,
  nspar: ex,
  nsqsube: ax,
  nsqsupe: ix,
  nsub: lx,
  nsubE: ux,
  nsube: px,
  nsubset: dx,
  nsubseteq: gx,
  nsubseteqq: fx,
  nsucc: mx,
  nsucceq: hx,
  nsup: bx,
  nsupE: vx,
  nsupe: yx,
  nsupset: qx,
  nsupseteq: wx,
  nsupseteqq: Lx,
  ntgl: Ex,
  Ntilde: xx,
  ntilde: Sx,
  ntlg: kx,
  ntriangleleft: Dx,
  ntrianglelefteq: Ax,
  ntriangleright: Tx,
  ntrianglerighteq: Nx,
  Nu: Cx,
  nu: Rx,
  num: Hx,
  numero: $x,
  numsp: Ux,
  nvap: Vx,
  nvdash: Ox,
  nvDash: Fx,
  nVdash: Bx,
  nVDash: Mx,
  nvge: Ix,
  nvgt: Px,
  nvHarr: Gx,
  nvinfin: jx,
  nvlArr: _x,
  nvle: zx,
  nvlt: Xx,
  nvltrie: Jx,
  nvrArr: Kx,
  nvrtrie: Yx,
  nvsim: Wx,
  nwarhk: Zx,
  nwarr: Qx,
  nwArr: tS,
  nwarrow: oS,
  nwnear: nS,
  Oacute: sS,
  oacute: cS,
  oast: rS,
  Ocirc: eS,
  ocirc: aS,
  ocir: iS,
  Ocy: lS,
  ocy: uS,
  odash: pS,
  Odblac: dS,
  odblac: gS,
  odiv: fS,
  odot: mS,
  odsold: hS,
  OElig: bS,
  oelig: vS,
  ofcir: yS,
  Ofr: qS,
  ofr: wS,
  ogon: LS,
  Ograve: ES,
  ograve: xS,
  ogt: SS,
  ohbar: kS,
  ohm: DS,
  oint: AS,
  olarr: TS,
  olcir: NS,
  olcross: CS,
  oline: RS,
  olt: HS,
  Omacr: $S,
  omacr: US,
  Omega: VS,
  omega: OS,
  Omicron: FS,
  omicron: BS,
  omid: MS,
  ominus: IS,
  Oopf: PS,
  oopf: GS,
  opar: jS,
  OpenCurlyDoubleQuote: _S,
  OpenCurlyQuote: zS,
  operp: XS,
  oplus: JS,
  orarr: KS,
  Or: YS,
  or: WS,
  ord: ZS,
  order: QS,
  orderof: t1,
  ordf: o1,
  ordm: n1,
  origof: s1,
  oror: c1,
  orslope: r1,
  orv: e1,
  oS: a1,
  Oscr: i1,
  oscr: l1,
  Oslash: u1,
  oslash: p1,
  osol: d1,
  Otilde: g1,
  otilde: f1,
  otimesas: m1,
  Otimes: h1,
  otimes: b1,
  Ouml: v1,
  ouml: y1,
  ovbar: q1,
  OverBar: w1,
  OverBrace: L1,
  OverBracket: E1,
  OverParenthesis: x1,
  para: S1,
  parallel: k1,
  par: D1,
  parsim: A1,
  parsl: T1,
  part: N1,
  PartialD: C1,
  Pcy: R1,
  pcy: H1,
  percnt: $1,
  period: U1,
  permil: V1,
  perp: O1,
  pertenk: F1,
  Pfr: B1,
  pfr: M1,
  Phi: I1,
  phi: P1,
  phiv: G1,
  phmmat: j1,
  phone: _1,
  Pi: z1,
  pi: X1,
  pitchfork: J1,
  piv: K1,
  planck: Y1,
  planckh: W1,
  plankv: Z1,
  plusacir: Q1,
  plusb: tk,
  pluscir: ok,
  plus: nk,
  plusdo: sk,
  plusdu: ck,
  pluse: rk,
  PlusMinus: ek,
  plusmn: ak,
  plussim: ik,
  plustwo: lk,
  pm: uk,
  Poincareplane: pk,
  pointint: dk,
  popf: gk,
  Popf: fk,
  pound: mk,
  prap: hk,
  Pr: bk,
  pr: vk,
  prcue: yk,
  precapprox: qk,
  prec: wk,
  preccurlyeq: Lk,
  Precedes: Ek,
  PrecedesEqual: xk,
  PrecedesSlantEqual: Sk,
  PrecedesTilde: kk,
  preceq: Dk,
  precnapprox: Ak,
  precneqq: Tk,
  precnsim: Nk,
  pre: Ck,
  prE: Rk,
  precsim: Hk,
  prime: $k,
  Prime: Uk,
  primes: Vk,
  prnap: Ok,
  prnE: Fk,
  prnsim: Bk,
  prod: Mk,
  Product: Ik,
  profalar: Pk,
  profline: Gk,
  profsurf: jk,
  prop: _k,
  Proportional: zk,
  Proportion: Xk,
  propto: Jk,
  prsim: Kk,
  prurel: Yk,
  Pscr: Wk,
  pscr: Zk,
  Psi: Qk,
  psi: tD,
  puncsp: oD,
  Qfr: nD,
  qfr: sD,
  qint: cD,
  qopf: rD,
  Qopf: eD,
  qprime: aD,
  Qscr: iD,
  qscr: lD,
  quaternions: uD,
  quatint: pD,
  quest: dD,
  questeq: gD,
  quot: fD,
  QUOT: mD,
  rAarr: hD,
  race: bD,
  Racute: vD,
  racute: yD,
  radic: qD,
  raemptyv: wD,
  rang: LD,
  Rang: ED,
  rangd: xD,
  range: SD,
  rangle: kD,
  raquo: DD,
  rarrap: AD,
  rarrb: TD,
  rarrbfs: ND,
  rarrc: CD,
  rarr: RD,
  Rarr: HD,
  rArr: $D,
  rarrfs: UD,
  rarrhk: VD,
  rarrlp: OD,
  rarrpl: FD,
  rarrsim: BD,
  Rarrtl: MD,
  rarrtl: ID,
  rarrw: PD,
  ratail: GD,
  rAtail: jD,
  ratio: _D,
  rationals: zD,
  rbarr: XD,
  rBarr: JD,
  RBarr: KD,
  rbbrk: YD,
  rbrace: WD,
  rbrack: ZD,
  rbrke: QD,
  rbrksld: tA,
  rbrkslu: oA,
  Rcaron: nA,
  rcaron: sA,
  Rcedil: cA,
  rcedil: rA,
  rceil: eA,
  rcub: aA,
  Rcy: iA,
  rcy: lA,
  rdca: uA,
  rdldhar: pA,
  rdquo: dA,
  rdquor: gA,
  rdsh: fA,
  real: mA,
  realine: hA,
  realpart: bA,
  reals: vA,
  Re: yA,
  rect: qA,
  reg: wA,
  REG: LA,
  ReverseElement: EA,
  ReverseEquilibrium: xA,
  ReverseUpEquilibrium: SA,
  rfisht: kA,
  rfloor: DA,
  rfr: AA,
  Rfr: TA,
  rHar: NA,
  rhard: CA,
  rharu: RA,
  rharul: HA,
  Rho: $A,
  rho: UA,
  rhov: VA,
  RightAngleBracket: OA,
  RightArrowBar: FA,
  rightarrow: BA,
  RightArrow: MA,
  Rightarrow: IA,
  RightArrowLeftArrow: PA,
  rightarrowtail: GA,
  RightCeiling: jA,
  RightDoubleBracket: _A,
  RightDownTeeVector: zA,
  RightDownVectorBar: XA,
  RightDownVector: JA,
  RightFloor: KA,
  rightharpoondown: YA,
  rightharpoonup: WA,
  rightleftarrows: ZA,
  rightleftharpoons: QA,
  rightrightarrows: tT,
  rightsquigarrow: oT,
  RightTeeArrow: nT,
  RightTee: sT,
  RightTeeVector: cT,
  rightthreetimes: rT,
  RightTriangleBar: eT,
  RightTriangle: aT,
  RightTriangleEqual: iT,
  RightUpDownVector: lT,
  RightUpTeeVector: uT,
  RightUpVectorBar: pT,
  RightUpVector: dT,
  RightVectorBar: gT,
  RightVector: fT,
  ring: mT,
  risingdotseq: hT,
  rlarr: bT,
  rlhar: vT,
  rlm: yT,
  rmoustache: qT,
  rmoust: wT,
  rnmid: LT,
  roang: ET,
  roarr: xT,
  robrk: ST,
  ropar: kT,
  ropf: DT,
  Ropf: AT,
  roplus: TT,
  rotimes: NT,
  RoundImplies: CT,
  rpar: RT,
  rpargt: HT,
  rppolint: $T,
  rrarr: UT,
  Rrightarrow: VT,
  rsaquo: OT,
  rscr: FT,
  Rscr: BT,
  rsh: MT,
  Rsh: IT,
  rsqb: PT,
  rsquo: GT,
  rsquor: jT,
  rthree: _T,
  rtimes: zT,
  rtri: XT,
  rtrie: JT,
  rtrif: KT,
  rtriltri: YT,
  RuleDelayed: WT,
  ruluhar: ZT,
  rx: QT,
  Sacute: tN,
  sacute: oN,
  sbquo: nN,
  scap: sN,
  Scaron: cN,
  scaron: rN,
  Sc: eN,
  sc: aN,
  sccue: iN,
  sce: lN,
  scE: uN,
  Scedil: pN,
  scedil: dN,
  Scirc: gN,
  scirc: fN,
  scnap: mN,
  scnE: hN,
  scnsim: bN,
  scpolint: vN,
  scsim: yN,
  Scy: qN,
  scy: wN,
  sdotb: LN,
  sdot: EN,
  sdote: xN,
  searhk: SN,
  searr: kN,
  seArr: DN,
  searrow: AN,
  sect: TN,
  semi: NN,
  seswar: CN,
  setminus: RN,
  setmn: HN,
  sext: $N,
  Sfr: UN,
  sfr: VN,
  sfrown: ON,
  sharp: FN,
  SHCHcy: BN,
  shchcy: MN,
  SHcy: IN,
  shcy: PN,
  ShortDownArrow: GN,
  ShortLeftArrow: jN,
  shortmid: _N,
  shortparallel: zN,
  ShortRightArrow: XN,
  ShortUpArrow: JN,
  shy: KN,
  Sigma: YN,
  sigma: WN,
  sigmaf: ZN,
  sigmav: QN,
  sim: tC,
  simdot: oC,
  sime: nC,
  simeq: sC,
  simg: cC,
  simgE: rC,
  siml: eC,
  simlE: aC,
  simne: iC,
  simplus: lC,
  simrarr: uC,
  slarr: pC,
  SmallCircle: dC,
  smallsetminus: gC,
  smashp: fC,
  smeparsl: mC,
  smid: hC,
  smile: bC,
  smt: vC,
  smte: yC,
  smtes: qC,
  SOFTcy: wC,
  softcy: LC,
  solbar: EC,
  solb: xC,
  sol: SC,
  Sopf: kC,
  sopf: DC,
  spades: AC,
  spadesuit: TC,
  spar: NC,
  sqcap: CC,
  sqcaps: RC,
  sqcup: HC,
  sqcups: $C,
  Sqrt: UC,
  sqsub: VC,
  sqsube: OC,
  sqsubset: FC,
  sqsubseteq: BC,
  sqsup: MC,
  sqsupe: IC,
  sqsupset: PC,
  sqsupseteq: GC,
  square: jC,
  Square: _C,
  SquareIntersection: zC,
  SquareSubset: XC,
  SquareSubsetEqual: JC,
  SquareSuperset: KC,
  SquareSupersetEqual: YC,
  SquareUnion: WC,
  squarf: ZC,
  squ: QC,
  squf: tR,
  srarr: oR,
  Sscr: nR,
  sscr: sR,
  ssetmn: cR,
  ssmile: rR,
  sstarf: eR,
  Star: aR,
  star: iR,
  starf: lR,
  straightepsilon: uR,
  straightphi: pR,
  strns: dR,
  sub: gR,
  Sub: fR,
  subdot: mR,
  subE: hR,
  sube: bR,
  subedot: vR,
  submult: yR,
  subnE: qR,
  subne: wR,
  subplus: LR,
  subrarr: ER,
  subset: xR,
  Subset: SR,
  subseteq: kR,
  subseteqq: DR,
  SubsetEqual: AR,
  subsetneq: TR,
  subsetneqq: NR,
  subsim: CR,
  subsub: RR,
  subsup: HR,
  succapprox: $R,
  succ: UR,
  succcurlyeq: VR,
  Succeeds: OR,
  SucceedsEqual: FR,
  SucceedsSlantEqual: BR,
  SucceedsTilde: MR,
  succeq: IR,
  succnapprox: PR,
  succneqq: GR,
  succnsim: jR,
  succsim: _R,
  SuchThat: zR,
  sum: XR,
  Sum: JR,
  sung: KR,
  sup1: YR,
  sup2: WR,
  sup3: ZR,
  sup: QR,
  Sup: t0,
  supdot: o0,
  supdsub: n0,
  supE: s0,
  supe: c0,
  supedot: r0,
  Superset: e0,
  SupersetEqual: a0,
  suphsol: i0,
  suphsub: l0,
  suplarr: u0,
  supmult: p0,
  supnE: d0,
  supne: g0,
  supplus: f0,
  supset: m0,
  Supset: h0,
  supseteq: b0,
  supseteqq: v0,
  supsetneq: y0,
  supsetneqq: q0,
  supsim: w0,
  supsub: L0,
  supsup: E0,
  swarhk: x0,
  swarr: S0,
  swArr: k0,
  swarrow: D0,
  swnwar: A0,
  szlig: T0,
  Tab: N0,
  target: C0,
  Tau: R0,
  tau: H0,
  tbrk: $0,
  Tcaron: U0,
  tcaron: V0,
  Tcedil: O0,
  tcedil: F0,
  Tcy: B0,
  tcy: M0,
  tdot: I0,
  telrec: P0,
  Tfr: G0,
  tfr: j0,
  there4: _0,
  therefore: z0,
  Therefore: X0,
  Theta: J0,
  theta: K0,
  thetasym: Y0,
  thetav: W0,
  thickapprox: Z0,
  thicksim: Q0,
  ThickSpace: tH,
  ThinSpace: oH,
  thinsp: nH,
  thkap: sH,
  thksim: cH,
  THORN: rH,
  thorn: eH,
  tilde: aH,
  Tilde: iH,
  TildeEqual: lH,
  TildeFullEqual: uH,
  TildeTilde: pH,
  timesbar: dH,
  timesb: gH,
  times: fH,
  timesd: mH,
  tint: hH,
  toea: bH,
  topbot: vH,
  topcir: yH,
  top: qH,
  Topf: wH,
  topf: LH,
  topfork: EH,
  tosa: xH,
  tprime: SH,
  trade: kH,
  TRADE: DH,
  triangle: AH,
  triangledown: TH,
  triangleleft: NH,
  trianglelefteq: CH,
  triangleq: RH,
  triangleright: HH,
  trianglerighteq: $H,
  tridot: UH,
  trie: VH,
  triminus: OH,
  TripleDot: FH,
  triplus: BH,
  trisb: MH,
  tritime: IH,
  trpezium: PH,
  Tscr: GH,
  tscr: jH,
  TScy: _H,
  tscy: zH,
  TSHcy: XH,
  tshcy: JH,
  Tstrok: KH,
  tstrok: YH,
  twixt: WH,
  twoheadleftarrow: ZH,
  twoheadrightarrow: QH,
  Uacute: t$,
  uacute: o$,
  uarr: n$,
  Uarr: s$,
  uArr: c$,
  Uarrocir: r$,
  Ubrcy: e$,
  ubrcy: a$,
  Ubreve: i$,
  ubreve: l$,
  Ucirc: u$,
  ucirc: p$,
  Ucy: d$,
  ucy: g$,
  udarr: f$,
  Udblac: m$,
  udblac: h$,
  udhar: b$,
  ufisht: v$,
  Ufr: y$,
  ufr: q$,
  Ugrave: w$,
  ugrave: L$,
  uHar: E$,
  uharl: x$,
  uharr: S$,
  uhblk: k$,
  ulcorn: D$,
  ulcorner: A$,
  ulcrop: T$,
  ultri: N$,
  Umacr: C$,
  umacr: R$,
  uml: H$,
  UnderBar: $$,
  UnderBrace: U$,
  UnderBracket: V$,
  UnderParenthesis: O$,
  Union: F$,
  UnionPlus: B$,
  Uogon: M$,
  uogon: I$,
  Uopf: P$,
  uopf: G$,
  UpArrowBar: j$,
  uparrow: _$,
  UpArrow: z$,
  Uparrow: X$,
  UpArrowDownArrow: J$,
  updownarrow: K$,
  UpDownArrow: Y$,
  Updownarrow: W$,
  UpEquilibrium: Z$,
  upharpoonleft: Q$,
  upharpoonright: tU,
  uplus: oU,
  UpperLeftArrow: nU,
  UpperRightArrow: sU,
  upsi: cU,
  Upsi: rU,
  upsih: eU,
  Upsilon: aU,
  upsilon: iU,
  UpTeeArrow: lU,
  UpTee: uU,
  upuparrows: pU,
  urcorn: dU,
  urcorner: gU,
  urcrop: fU,
  Uring: mU,
  uring: hU,
  urtri: bU,
  Uscr: vU,
  uscr: yU,
  utdot: qU,
  Utilde: wU,
  utilde: LU,
  utri: EU,
  utrif: xU,
  uuarr: SU,
  Uuml: kU,
  uuml: DU,
  uwangle: AU,
  vangrt: TU,
  varepsilon: NU,
  varkappa: CU,
  varnothing: RU,
  varphi: HU,
  varpi: $U,
  varpropto: UU,
  varr: VU,
  vArr: OU,
  varrho: FU,
  varsigma: BU,
  varsubsetneq: MU,
  varsubsetneqq: IU,
  varsupsetneq: PU,
  varsupsetneqq: GU,
  vartheta: jU,
  vartriangleleft: _U,
  vartriangleright: zU,
  vBar: XU,
  Vbar: JU,
  vBarv: KU,
  Vcy: YU,
  vcy: WU,
  vdash: ZU,
  vDash: QU,
  Vdash: tV,
  VDash: oV,
  Vdashl: nV,
  veebar: sV,
  vee: cV,
  Vee: rV,
  veeeq: eV,
  vellip: aV,
  verbar: iV,
  Verbar: lV,
  vert: uV,
  Vert: pV,
  VerticalBar: dV,
  VerticalLine: gV,
  VerticalSeparator: fV,
  VerticalTilde: mV,
  VeryThinSpace: hV,
  Vfr: bV,
  vfr: vV,
  vltri: yV,
  vnsub: qV,
  vnsup: wV,
  Vopf: LV,
  vopf: EV,
  vprop: xV,
  vrtri: SV,
  Vscr: kV,
  vscr: DV,
  vsubnE: AV,
  vsubne: TV,
  vsupnE: NV,
  vsupne: CV,
  Vvdash: RV,
  vzigzag: HV,
  Wcirc: $V,
  wcirc: UV,
  wedbar: VV,
  wedge: OV,
  Wedge: FV,
  wedgeq: BV,
  weierp: MV,
  Wfr: IV,
  wfr: PV,
  Wopf: GV,
  wopf: jV,
  wp: _V,
  wr: zV,
  wreath: XV,
  Wscr: JV,
  wscr: KV,
  xcap: YV,
  xcirc: WV,
  xcup: ZV,
  xdtri: QV,
  Xfr: tO,
  xfr: oO,
  xharr: nO,
  xhArr: sO,
  Xi: cO,
  xi: rO,
  xlarr: eO,
  xlArr: aO,
  xmap: iO,
  xnis: lO,
  xodot: uO,
  Xopf: pO,
  xopf: dO,
  xoplus: gO,
  xotime: fO,
  xrarr: mO,
  xrArr: hO,
  Xscr: bO,
  xscr: vO,
  xsqcup: yO,
  xuplus: qO,
  xutri: wO,
  xvee: LO,
  xwedge: EO,
  Yacute: xO,
  yacute: SO,
  YAcy: kO,
  yacy: DO,
  Ycirc: AO,
  ycirc: TO,
  Ycy: NO,
  ycy: CO,
  yen: RO,
  Yfr: HO,
  yfr: $O,
  YIcy: UO,
  yicy: VO,
  Yopf: OO,
  yopf: FO,
  Yscr: BO,
  yscr: MO,
  YUcy: IO,
  yucy: PO,
  yuml: GO,
  Yuml: jO,
  Zacute: _O,
  zacute: zO,
  Zcaron: XO,
  zcaron: JO,
  Zcy: KO,
  zcy: YO,
  Zdot: WO,
  zdot: ZO,
  zeetrf: QO,
  ZeroWidthSpace: tF,
  Zeta: oF,
  zeta: nF,
  zfr: sF,
  Zfr: cF,
  ZHcy: rF,
  zhcy: eF,
  zigrarr: aF,
  zopf: iF,
  Zopf: lF,
  Zscr: uF,
  zscr: pF,
  zwj: dF,
  zwnj: gF
}, fF = "Á", mF = "á", hF = "Â", bF = "â", vF = "´", yF = "Æ", qF = "æ", wF = "À", LF = "à", EF = "&", xF = "&", SF = "Å", kF = "å", DF = "Ã", AF = "ã", TF = "Ä", NF = "ä", CF = "¦", RF = "Ç", HF = "ç", $F = "¸", UF = "¢", VF = "©", OF = "©", FF = "¤", BF = "°", MF = "÷", IF = "É", PF = "é", GF = "Ê", jF = "ê", _F = "È", zF = "è", XF = "Ð", JF = "ð", KF = "Ë", YF = "ë", WF = "½", ZF = "¼", QF = "¾", tB = ">", oB = ">", nB = "Í", sB = "í", cB = "Î", rB = "î", eB = "¡", aB = "Ì", iB = "ì", lB = "¿", uB = "Ï", pB = "ï", dB = "«", gB = "<", fB = "<", mB = "¯", hB = "µ", bB = "·", vB = " ", yB = "¬", qB = "Ñ", wB = "ñ", LB = "Ó", EB = "ó", xB = "Ô", SB = "ô", kB = "Ò", DB = "ò", AB = "ª", TB = "º", NB = "Ø", CB = "ø", RB = "Õ", HB = "õ", $B = "Ö", UB = "ö", VB = "¶", OB = "±", FB = "£", BB = '"', MB = '"', IB = "»", PB = "®", GB = "®", jB = "§", _B = "­", zB = "¹", XB = "²", JB = "³", KB = "ß", YB = "Þ", WB = "þ", ZB = "×", QB = "Ú", tM = "ú", oM = "Û", nM = "û", sM = "Ù", cM = "ù", rM = "¨", eM = "Ü", aM = "ü", iM = "Ý", lM = "ý", uM = "¥", pM = "ÿ", dM = {
  Aacute: fF,
  aacute: mF,
  Acirc: hF,
  acirc: bF,
  acute: vF,
  AElig: yF,
  aelig: qF,
  Agrave: wF,
  agrave: LF,
  amp: EF,
  AMP: xF,
  Aring: SF,
  aring: kF,
  Atilde: DF,
  atilde: AF,
  Auml: TF,
  auml: NF,
  brvbar: CF,
  Ccedil: RF,
  ccedil: HF,
  cedil: $F,
  cent: UF,
  copy: VF,
  COPY: OF,
  curren: FF,
  deg: BF,
  divide: MF,
  Eacute: IF,
  eacute: PF,
  Ecirc: GF,
  ecirc: jF,
  Egrave: _F,
  egrave: zF,
  ETH: XF,
  eth: JF,
  Euml: KF,
  euml: YF,
  frac12: WF,
  frac14: ZF,
  frac34: QF,
  gt: tB,
  GT: oB,
  Iacute: nB,
  iacute: sB,
  Icirc: cB,
  icirc: rB,
  iexcl: eB,
  Igrave: aB,
  igrave: iB,
  iquest: lB,
  Iuml: uB,
  iuml: pB,
  laquo: dB,
  lt: gB,
  LT: fB,
  macr: mB,
  micro: hB,
  middot: bB,
  nbsp: vB,
  not: yB,
  Ntilde: qB,
  ntilde: wB,
  Oacute: LB,
  oacute: EB,
  Ocirc: xB,
  ocirc: SB,
  Ograve: kB,
  ograve: DB,
  ordf: AB,
  ordm: TB,
  Oslash: NB,
  oslash: CB,
  Otilde: RB,
  otilde: HB,
  Ouml: $B,
  ouml: UB,
  para: VB,
  plusmn: OB,
  pound: FB,
  quot: BB,
  QUOT: MB,
  raquo: IB,
  reg: PB,
  REG: GB,
  sect: jB,
  shy: _B,
  sup1: zB,
  sup2: XB,
  sup3: JB,
  szlig: KB,
  THORN: YB,
  thorn: WB,
  times: ZB,
  Uacute: QB,
  uacute: tM,
  Ucirc: oM,
  ucirc: nM,
  Ugrave: sM,
  ugrave: cM,
  uml: rM,
  Uuml: eM,
  uuml: aM,
  Yacute: iM,
  yacute: lM,
  yen: uM,
  yuml: pM
}, gM = "&", fM = "'", mM = ">", hM = "<", bM = '"', st = {
  amp: gM,
  apos: fM,
  gt: mM,
  lt: hM,
  quot: bM
};
var $ = {};
const vM = {
  0: 65533,
  128: 8364,
  130: 8218,
  131: 402,
  132: 8222,
  133: 8230,
  134: 8224,
  135: 8225,
  136: 710,
  137: 8240,
  138: 352,
  139: 8249,
  140: 338,
  142: 381,
  145: 8216,
  146: 8217,
  147: 8220,
  148: 8221,
  149: 8226,
  150: 8211,
  151: 8212,
  152: 732,
  153: 8482,
  154: 353,
  155: 8250,
  156: 339,
  158: 382,
  159: 376
};
var yM = b && b.__importDefault || function(t) {
  return t && t.__esModule ? t : { default: t };
};
Object.defineProperty($, "__esModule", { value: !0 });
var P = yM(vM), qM = (
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
  String.fromCodePoint || function(t) {
    var n = "";
    return t > 65535 && (t -= 65536, n += String.fromCharCode(t >>> 10 & 1023 | 55296), t = 56320 | t & 1023), n += String.fromCharCode(t), n;
  }
);
function wM(t) {
  return t >= 55296 && t <= 57343 || t > 1114111 ? "�" : (t in P.default && (t = P.default[t]), qM(t));
}
$.default = wM;
var k = b && b.__importDefault || function(t) {
  return t && t.__esModule ? t : { default: t };
};
Object.defineProperty(m, "__esModule", { value: !0 });
m.decodeHTML = m.decodeHTMLStrict = m.decodeXML = void 0;
var R = k(nt), LM = k(dM), EM = k(st), G = k($), xM = /&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;
m.decodeXML = ct(EM.default);
m.decodeHTMLStrict = ct(R.default);
function ct(t) {
  var n = rt(t);
  return function(o) {
    return String(o).replace(xM, n);
  };
}
var j = function(t, n) {
  return t < n ? 1 : -1;
};
m.decodeHTML = function() {
  for (var t = Object.keys(LM.default).sort(j), n = Object.keys(R.default).sort(j), o = 0, s = 0; o < n.length; o++)
    t[s] === n[o] ? (n[o] += ";?", s++) : n[o] += ";";
  var c = new RegExp("&(?:" + n.join("|") + "|#[xX][\\da-fA-F]+;?|#\\d+;?)", "g"), r = rt(R.default);
  function i(a) {
    return a.substr(-1) !== ";" && (a += ";"), r(a);
  }
  return function(a) {
    return String(a).replace(c, i);
  };
}();
function rt(t) {
  return function(o) {
    if (o.charAt(1) === "#") {
      var s = o.charAt(2);
      return s === "X" || s === "x" ? G.default(parseInt(o.substr(3), 16)) : G.default(parseInt(o.substr(2), 10));
    }
    return t[o.slice(1, -1)] || o;
  };
}
var d = {}, et = b && b.__importDefault || function(t) {
  return t && t.__esModule ? t : { default: t };
};
Object.defineProperty(d, "__esModule", { value: !0 });
d.escapeUTF8 = d.escape = d.encodeNonAsciiHTML = d.encodeHTML = d.encodeXML = void 0;
var SM = et(st), at = lt(SM.default), it = ut(at);
d.encodeXML = gt(at);
var kM = et(nt), U = lt(kM.default), DM = ut(U);
d.encodeHTML = TM(U, DM);
d.encodeNonAsciiHTML = gt(U);
function lt(t) {
  return Object.keys(t).sort().reduce(function(n, o) {
    return n[t[o]] = "&" + o + ";", n;
  }, {});
}
function ut(t) {
  for (var n = [], o = [], s = 0, c = Object.keys(t); s < c.length; s++) {
    var r = c[s];
    r.length === 1 ? n.push("\\" + r) : o.push(r);
  }
  n.sort();
  for (var i = 0; i < n.length - 1; i++) {
    for (var a = i; a < n.length - 1 && n[a].charCodeAt(1) + 1 === n[a + 1].charCodeAt(1); )
      a += 1;
    var l = 1 + a - i;
    l < 3 || n.splice(i, l, n[i] + "-" + n[a]);
  }
  return o.unshift("[" + n.join("") + "]"), new RegExp(o.join("|"), "g");
}
var pt = /(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g, AM = (
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
  String.prototype.codePointAt != null ? (
    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
    function(t) {
      return t.codePointAt(0);
    }
  ) : (
    // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
    function(t) {
      return (t.charCodeAt(0) - 55296) * 1024 + t.charCodeAt(1) - 56320 + 65536;
    }
  )
);
function D(t) {
  return "&#x" + (t.length > 1 ? AM(t) : t.charCodeAt(0)).toString(16).toUpperCase() + ";";
}
function TM(t, n) {
  return function(o) {
    return o.replace(n, function(s) {
      return t[s];
    }).replace(pt, D);
  };
}
var dt = new RegExp(it.source + "|" + pt.source, "g");
function NM(t) {
  return t.replace(dt, D);
}
d.escape = NM;
function CM(t) {
  return t.replace(it, D);
}
d.escapeUTF8 = CM;
function gt(t) {
  return function(n) {
    return n.replace(dt, function(o) {
      return t[o] || D(o);
    });
  };
}
(function(t) {
  Object.defineProperty(t, "__esModule", { value: !0 }), t.decodeXMLStrict = t.decodeHTML5Strict = t.decodeHTML4Strict = t.decodeHTML5 = t.decodeHTML4 = t.decodeHTMLStrict = t.decodeHTML = t.decodeXML = t.encodeHTML5 = t.encodeHTML4 = t.escapeUTF8 = t.escape = t.encodeNonAsciiHTML = t.encodeHTML = t.encodeXML = t.encode = t.decodeStrict = t.decode = void 0;
  var n = m, o = d;
  function s(l, u) {
    return (!u || u <= 0 ? n.decodeXML : n.decodeHTML)(l);
  }
  t.decode = s;
  function c(l, u) {
    return (!u || u <= 0 ? n.decodeXML : n.decodeHTMLStrict)(l);
  }
  t.decodeStrict = c;
  function r(l, u) {
    return (!u || u <= 0 ? o.encodeXML : o.encodeHTML)(l);
  }
  t.encode = r;
  var i = d;
  Object.defineProperty(t, "encodeXML", { enumerable: !0, get: function() {
    return i.encodeXML;
  } }), Object.defineProperty(t, "encodeHTML", { enumerable: !0, get: function() {
    return i.encodeHTML;
  } }), Object.defineProperty(t, "encodeNonAsciiHTML", { enumerable: !0, get: function() {
    return i.encodeNonAsciiHTML;
  } }), Object.defineProperty(t, "escape", { enumerable: !0, get: function() {
    return i.escape;
  } }), Object.defineProperty(t, "escapeUTF8", { enumerable: !0, get: function() {
    return i.escapeUTF8;
  } }), Object.defineProperty(t, "encodeHTML4", { enumerable: !0, get: function() {
    return i.encodeHTML;
  } }), Object.defineProperty(t, "encodeHTML5", { enumerable: !0, get: function() {
    return i.encodeHTML;
  } });
  var a = m;
  Object.defineProperty(t, "decodeXML", { enumerable: !0, get: function() {
    return a.decodeXML;
  } }), Object.defineProperty(t, "decodeHTML", { enumerable: !0, get: function() {
    return a.decodeHTML;
  } }), Object.defineProperty(t, "decodeHTMLStrict", { enumerable: !0, get: function() {
    return a.decodeHTMLStrict;
  } }), Object.defineProperty(t, "decodeHTML4", { enumerable: !0, get: function() {
    return a.decodeHTML;
  } }), Object.defineProperty(t, "decodeHTML5", { enumerable: !0, get: function() {
    return a.decodeHTML;
  } }), Object.defineProperty(t, "decodeHTML4Strict", { enumerable: !0, get: function() {
    return a.decodeHTMLStrict;
  } }), Object.defineProperty(t, "decodeHTML5Strict", { enumerable: !0, get: function() {
    return a.decodeHTMLStrict;
  } }), Object.defineProperty(t, "decodeXMLStrict", { enumerable: !0, get: function() {
    return a.decodeXML;
  } });
})(ot);
function RM(t, n) {
  if (!(t instanceof n))
    throw new TypeError("Cannot call a class as a function");
}
function HM(t, n) {
  for (var o = 0; o < n.length; o++) {
    var s = n[o];
    s.enumerable = s.enumerable || !1, s.configurable = !0, "value" in s && (s.writable = !0), Object.defineProperty(t, s.key, s);
  }
}
function $M(t, n, o) {
  return n && HM(t.prototype, n), t;
}
function ft(t, n) {
  var o = typeof Symbol < "u" && t[Symbol.iterator] || t["@@iterator"];
  if (!o) {
    if (Array.isArray(t) || (o = UM(t)) || n) {
      o && (t = o);
      var s = 0, c = function() {
      };
      return { s: c, n: function() {
        return s >= t.length ? { done: !0 } : { done: !1, value: t[s++] };
      }, e: function(u) {
        throw u;
      }, f: c };
    }
    throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
  }
  var r = !0, i = !1, a;
  return { s: function() {
    o = o.call(t);
  }, n: function() {
    var u = o.next();
    return r = u.done, u;
  }, e: function(u) {
    i = !0, a = u;
  }, f: function() {
    try {
      !r && o.return != null && o.return();
    } finally {
      if (i) throw a;
    }
  } };
}
function UM(t, n) {
  if (t) {
    if (typeof t == "string") return _(t, n);
    var o = Object.prototype.toString.call(t).slice(8, -1);
    if (o === "Object" && t.constructor && (o = t.constructor.name), o === "Map" || o === "Set") return Array.from(t);
    if (o === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)) return _(t, n);
  }
}
function _(t, n) {
  (n == null || n > t.length) && (n = t.length);
  for (var o = 0, s = new Array(n); o < n; o++)
    s[o] = t[o];
  return s;
}
var VM = ot, z = {
  fg: "#FFF",
  bg: "#000",
  newline: !1,
  escapeXML: !1,
  stream: !1,
  colors: OM()
};
function OM() {
  var t = {
    0: "#000",
    1: "#A00",
    2: "#0A0",
    3: "#A50",
    4: "#00A",
    5: "#A0A",
    6: "#0AA",
    7: "#AAA",
    8: "#555",
    9: "#F55",
    10: "#5F5",
    11: "#FF5",
    12: "#55F",
    13: "#F5F",
    14: "#5FF",
    15: "#FFF"
  };
  return L(0, 5).forEach(function(n) {
    L(0, 5).forEach(function(o) {
      L(0, 5).forEach(function(s) {
        return FM(n, o, s, t);
      });
    });
  }), L(0, 23).forEach(function(n) {
    var o = n + 232, s = mt(n * 10 + 8);
    t[o] = "#" + s + s + s;
  }), t;
}
function FM(t, n, o, s) {
  var c = 16 + t * 36 + n * 6 + o, r = t > 0 ? t * 40 + 55 : 0, i = n > 0 ? n * 40 + 55 : 0, a = o > 0 ? o * 40 + 55 : 0;
  s[c] = BM([r, i, a]);
}
function mt(t) {
  for (var n = t.toString(16); n.length < 2; )
    n = "0" + n;
  return n;
}
function BM(t) {
  var n = [], o = ft(t), s;
  try {
    for (o.s(); !(s = o.n()).done; ) {
      var c = s.value;
      n.push(mt(c));
    }
  } catch (r) {
    o.e(r);
  } finally {
    o.f();
  }
  return "#" + n.join("");
}
function X(t, n, o, s) {
  var c;
  return n === "text" ? c = GM(o, s) : n === "display" ? c = IM(t, o, s) : n === "xterm256Foreground" ? c = x(t, s.colors[o]) : n === "xterm256Background" ? c = S(t, s.colors[o]) : n === "rgb" && (c = MM(t, o)), c;
}
function MM(t, n) {
  n = n.substring(2).slice(0, -1);
  var o = +n.substr(0, 2), s = n.substring(5).split(";"), c = s.map(function(r) {
    return ("0" + Number(r).toString(16)).substr(-2);
  }).join("");
  return E(t, (o === 38 ? "color:#" : "background-color:#") + c);
}
function IM(t, n, o) {
  n = parseInt(n, 10);
  var s = {
    "-1": function() {
      return "<br/>";
    },
    0: function() {
      return t.length && ht(t);
    },
    1: function() {
      return h(t, "b");
    },
    3: function() {
      return h(t, "i");
    },
    4: function() {
      return h(t, "u");
    },
    8: function() {
      return E(t, "display:none");
    },
    9: function() {
      return h(t, "strike");
    },
    22: function() {
      return E(t, "font-weight:normal;text-decoration:none;font-style:normal");
    },
    23: function() {
      return K(t, "i");
    },
    24: function() {
      return K(t, "u");
    },
    39: function() {
      return x(t, o.fg);
    },
    49: function() {
      return S(t, o.bg);
    },
    53: function() {
      return E(t, "text-decoration:overline");
    }
  }, c;
  return s[n] ? c = s[n]() : 4 < n && n < 7 ? c = h(t, "blink") : 29 < n && n < 38 ? c = x(t, o.colors[n - 30]) : 39 < n && n < 48 ? c = S(t, o.colors[n - 40]) : 89 < n && n < 98 ? c = x(t, o.colors[8 + (n - 90)]) : 99 < n && n < 108 && (c = S(t, o.colors[8 + (n - 100)])), c;
}
function ht(t) {
  var n = t.slice(0);
  return t.length = 0, n.reverse().map(function(o) {
    return "</" + o + ">";
  }).join("");
}
function L(t, n) {
  for (var o = [], s = t; s <= n; s++)
    o.push(s);
  return o;
}
function PM(t) {
  return function(n) {
    return (t === null || n.category !== t) && t !== "all";
  };
}
function J(t) {
  t = parseInt(t, 10);
  var n = null;
  return t === 0 ? n = "all" : t === 1 ? n = "bold" : 2 < t && t < 5 ? n = "underline" : 4 < t && t < 7 ? n = "blink" : t === 8 ? n = "hide" : t === 9 ? n = "strike" : 29 < t && t < 38 || t === 39 || 89 < t && t < 98 ? n = "foreground-color" : (39 < t && t < 48 || t === 49 || 99 < t && t < 108) && (n = "background-color"), n;
}
function GM(t, n) {
  return n.escapeXML ? VM.encodeXML(t) : t;
}
function h(t, n, o) {
  return o || (o = ""), t.push(n), "<".concat(n).concat(o ? ' style="'.concat(o, '"') : "", ">");
}
function E(t, n) {
  return h(t, "span", n);
}
function x(t, n) {
  return h(t, "span", "color:" + n);
}
function S(t, n) {
  return h(t, "span", "background-color:" + n);
}
function K(t, n) {
  var o;
  if (t.slice(-1)[0] === n && (o = t.pop()), o)
    return "</" + n + ">";
}
function jM(t, n, o) {
  var s = !1, c = 3;
  function r() {
    return "";
  }
  function i(g, f) {
    return o("xterm256Foreground", f), "";
  }
  function a(g, f) {
    return o("xterm256Background", f), "";
  }
  function l(g) {
    return n.newline ? o("display", -1) : o("text", g), "";
  }
  function u(g, f) {
    s = !0, f.trim().length === 0 && (f = "0"), f = f.trimRight(";").split(";");
    var w = ft(f), B;
    try {
      for (w.s(); !(B = w.n()).done; ) {
        var Lt = B.value;
        o("display", Lt);
      }
    } catch (Et) {
      w.e(Et);
    } finally {
      w.f();
    }
    return "";
  }
  function A(g) {
    return o("text", g), "";
  }
  function bt(g) {
    return o("rgb", g), "";
  }
  var V = [{
    pattern: /^\x08+/,
    sub: r
  }, {
    pattern: /^\x1b\[[012]?K/,
    sub: r
  }, {
    pattern: /^\x1b\[\(B/,
    sub: r
  }, {
    pattern: /^\x1b\[[34]8;2;\d+;\d+;\d+m/,
    sub: bt
  }, {
    pattern: /^\x1b\[38;5;(\d+)m/,
    sub: i
  }, {
    pattern: /^\x1b\[48;5;(\d+)m/,
    sub: a
  }, {
    pattern: /^\n/,
    sub: l
  }, {
    pattern: /^\r+\n/,
    sub: l
  }, {
    pattern: /^\r/,
    sub: l
  }, {
    pattern: /^\x1b\[((?:\d{1,3};?)+|)m/,
    sub: u
  }, {
    // CSI n J
    // ED - Erase in Display Clears part of the screen.
    // If n is 0 (or missing), clear from cursor to end of screen.
    // If n is 1, clear from cursor to beginning of the screen.
    // If n is 2, clear entire screen (and moves cursor to upper left on DOS ANSI.SYS).
    // If n is 3, clear entire screen and delete all lines saved in the scrollback buffer
    //   (this feature was added for xterm and is supported by other terminal applications).
    pattern: /^\x1b\[\d?J/,
    sub: r
  }, {
    // CSI n ; m f
    // HVP - Horizontal Vertical Position Same as CUP
    pattern: /^\x1b\[\d{0,3};\d{0,3}f/,
    sub: r
  }, {
    // catch-all for CSI sequences?
    pattern: /^\x1b\[?[\d;]{0,3}/,
    sub: r
  }, {
    /**
     * extracts real text - not containing:
     * - `\x1b' - ESC - escape (Ascii 27)
     * - '\x08' - BS - backspace (Ascii 8)
     * - `\n` - Newline - linefeed (LF) (ascii 10)
     * - `\r` - Windows Carriage Return (CR)
     */
    pattern: /^(([^\x1b\x08\r\n])+)/,
    sub: A
  }];
  function vt(g, f) {
    f > c && s || (s = !1, t = t.replace(g.pattern, g.sub));
  }
  var O = [], yt = t, v = yt.length;
  t: for (; v > 0; ) {
    for (var T = 0, F = 0, qt = V.length; F < qt; T = ++F) {
      var wt = V[T];
      if (vt(wt, T), t.length !== v) {
        v = t.length;
        continue t;
      }
    }
    if (t.length === v)
      break;
    O.push(0), v = t.length;
  }
  return O;
}
function _M(t, n, o) {
  return n !== "text" && (t = t.filter(PM(J(o))), t.push({
    token: n,
    data: o,
    category: J(o)
  })), t;
}
var zM = /* @__PURE__ */ function() {
  function t(n) {
    RM(this, t), n = n || {}, n.colors && (n.colors = Object.assign({}, z.colors, n.colors)), this.options = Object.assign({}, z, n), this.stack = [], this.stickyStack = [];
  }
  return $M(t, [{
    key: "toHtml",
    value: function(o) {
      var s = this;
      o = typeof o == "string" ? [o] : o;
      var c = this.stack, r = this.options, i = [];
      return this.stickyStack.forEach(function(a) {
        var l = X(c, a.token, a.data, r);
        l && i.push(l);
      }), jM(o.join(""), r, function(a, l) {
        var u = X(c, a, l, r);
        u && i.push(u), r.stream && (s.stickyStack = _M(s.stickyStack, a, l));
      }), c.length && i.push(ht(c)), i.join("");
    }
  }]), t;
}(), XM = zM;
const JM = /* @__PURE__ */ Vt(XM), KM = new JM(), Y = Z.define(), W = Z.define(), YM = {
  props: It,
  data() {
    return {
      shell: null,
      commandHistory: [],
      historyIndex: -1,
      promptLine: 0
    };
  },
  watch: {
    keymap() {
      this.textEditor && this.applyKeymap();
    },
    vimOptions() {
      this.textEditor && this.applyKeymap();
    },
    lineWrapping() {
      this.textEditor && this.applyLineWrapping();
    },
    isFocused() {
      this.textEditor && this.applyFocus();
    },
    promptSymbol(t) {
      this.textEditor ? this.textEditor.dispatchChange({
        effects: [
          I.of(t)
        ]
      }) : this.initialize();
    },
    output(t) {
      const n = this.textEditor.getLength();
      let o = t.output;
      if (typeof o == "string" && /\x1b\[[0-9;]*m/.test(o)) {
        const s = KM.toHtml(o);
        this.textEditor.dispatchChange({
          changes: { from: n, insert: `
` },
          effects: tt.of({ pos: n + 1, html: s }),
          scrollIntoView: !0
        });
      } else if (typeof o == "object") {
        let s;
        try {
          s = JSON.stringify(o, null, 2);
        } catch (c) {
          console.warn("Failed to stringify JSON output for mongo shell: ", c.message), s = JSON.stringify(t.output);
        }
        this.textEditor.dispatchChange({
          changes: { from: n, insert: `
${s}` },
          scrollIntoView: !0
        });
      } else
        this.textEditor.dispatchChange({
          changes: { from: n, insert: `
${o}` },
          scrollIntoView: !0
        });
      this.resetPrompt();
    }
  },
  computed: {
    vimOptions() {
      return {
        config: this.vimConfig,
        keymaps: this.vimKeymaps,
        clipboard: this.clipboard
      };
    },
    replaceExtensions() {
      const t = Ut.transactionFilter.of((o) => {
        if (!o.docChanged) return o;
        let s = !0;
        const c = o.startState.field(q), r = o.startState.field(y), i = this.getPromptText(r);
        return o.changes.iterChanges((a) => {
          const l = o.startState.doc.lineAt(a), u = l.number - 1, A = a - l.from;
          (u < c || u === c && A < i.length) && (s = !1);
        }), s ? o : [o.startState.update({ annotations: W.of(!0) })];
      }), n = H.updateListener.of((o) => {
        for (const s of o.transactions)
          if (s.annotation(W)) {
            const c = o.state.field(q);
            o.view.dispatch({
              selection: {
                anchor: o.state.doc.line(c + 1).to
              },
              scrollIntoView: !0
            });
          } else if (s.annotation(Y)) {
            const c = o.state.doc, r = o.state.field(q), i = o.state.field(y), a = this.getPromptText(i), l = c.line(r + 1), u = c.sliceString(
              l.from + a.length,
              c.length
            ).trim();
            if (!u) {
              console.warn("Failed to find valid command to run");
              return;
            }
            if (this.commandHistory.push(u), this.historyIndex = this.commandHistory.length, u === "clear") {
              this.initialize(), this.$emit("clear");
              return;
            }
            this.$emit("bks-shell-run-command", u);
          }
      });
      return (o) => {
        const s = this.extensions || [];
        return [
          this.buildKeymap(),
          ...s,
          ...o,
          Xt(),
          Q({
            settings: {
              selection: "",
              selectionMatch: ""
            }
          }),
          t,
          n,
          Gt,
          q,
          y
        ];
      };
    }
  },
  methods: {
    applyLineWrapping() {
      this.textEditor.setLineWrapping(this.lineWrapping);
    },
    applyKeymap() {
      this.textEditor.setKeymap(this.keymap, this.vimOptions);
    },
    applyFocus() {
      this.isFocused && this.textEditor.focus();
    },
    getPromptText(t) {
      if (t.length <= this.maxPromptSymbolLength) return t;
      const n = Math.floor((this.maxPromptSymbolLength - 3) / 2), o = this.maxPromptSymbolLength - 3 - n, s = t.substring(0, n), c = t.substring(t.length - o);
      return `${s}...${c}`;
    },
    buildKeymap() {
      return new $t().of(At.of([
        {
          key: "Shift-Enter",
          run: () => !1
        },
        {
          key: "Enter",
          run: (n) => (n.dispatch({
            annotations: Y.of(!0)
          }), !0)
        },
        {
          key: "Ctrl-ArrowUp",
          run: () => (this.navigateHistory(-1), !0)
        },
        {
          key: "Ctrl-ArrowDown",
          run: () => (this.navigateHistory(1), !0)
        }
      ]));
    },
    resetPrompt() {
      const t = this.textEditor.getStateField(y), n = `
${this.getPromptText(t)}`, o = this.textEditor.getLength();
      this.textEditor.dispatchChange({
        changes: { from: o, insert: n },
        selection: { anchor: o + n.length },
        scrollIntoView: !0
      });
      const s = this.textEditor.getLineAt(o + n.length).number - 1;
      this.textEditor.dispatchChange({
        effects: [
          M.of(s)
        ]
      });
    },
    navigateHistory(t) {
      if (this.commandHistory.length === 0) return;
      const n = this.textEditor.getStateField(y), o = this.textEditor.getStateField(q);
      this.historyIndex += t, this.historyIndex < 0 && (this.historyIndex = 0);
      const s = this.textEditor.getLineInfo(o + 1).from + n.length, c = this.textEditor.getLength();
      if (this.historyIndex >= this.commandHistory.length) {
        this.textEditor.dispatchChange({
          changes: { from: s, to: c, insert: "" }
        });
        return;
      }
      const r = this.commandHistory[this.historyIndex];
      this.textEditor.dispatchChange({
        changes: { from: s, to: c, insert: r }
      });
      const i = this.textEditor.getLength();
      this.textEditor.dispatchChange({
        selection: { anchor: i },
        scrollIntoView: !0
      });
    },
    constructTextEditor() {
      return new St();
    },
    async initialize() {
      this.textEditor && (this.textEditor.destroy(), this.textEditor = null), await this.$nextTick(), this.promptLine = 0;
      const t = this.constructTextEditor();
      t.initialize({
        parent: this.$refs.shell,
        focus: !0,
        onValueChange: (o) => {
        },
        initialValue: this.getPromptText(this.promptSymbol),
        // languageId: undefined, // We use mongoMode() extension instead
        keybindings: this.keybindings,
        lineNumbers: !1,
        lineWrapping: this.lineWrapping,
        keymap: this.keymap,
        replaceExtensions: this.replaceExtensions,
        vimOptions: this.vimOptions
      }), this.textEditor = t;
      const n = this.textEditor.getLength();
      this.textEditor.dispatchChange({
        effects: [
          M.of(0),
          I.of(this.promptSymbol)
        ],
        selection: { anchor: n }
      }), this.$emit("bks-initialized");
    }
  },
  async mounted() {
  }
};
var WM = function() {
  var n = this, o = n._self._c;
  return o("div", { ref: "shell", staticClass: "BksUiKit BksTextEditor BksMongoShell" });
}, ZM = [], QM = /* @__PURE__ */ Ot(
  YM,
  WM,
  ZM
);
const aI = QM.exports;
export {
  aI as default
};
//# sourceMappingURL=mongo-shell.js.map
