Team:MSP-Maastricht/JSkatex

(function(e) {

   if (typeof exports === "object" && typeof module !== "undefined") {
       module.exports = e()
   } else if (typeof define === "function" && define.amd) {
       define([], e)
   } else {
       var t;
       if (typeof window !== "undefined") {
           t = window
       } else if (typeof global !== "undefined") {
           t = global
       } else if (typeof self !== "undefined") {
           t = self
       } else {
           t = this
       }
       t.katex = e()
   }

})(function() {

   var e, t, r;
   return function a(e, t, r) {
       function i(s, l) {
           if (!t[s]) {
               if (!e[s]) {
                   var o = typeof require == "function" && require;
                   if (!l && o) return o(s, !0);
                   if (n) return n(s, !0);
                   var u = new Error("Cannot find module '" + s + "'");
                   throw u.code = "MODULE_NOT_FOUND", u
               }
               var p = t[s] = {
                   exports: {}
               };
               e[s][0].call(p.exports, function(t) {
                   var r = e[s][1][t];
                   return i(r ? r : t)
               }, p, p.exports, a, e, t, r)
           }
           return t[s].exports
       }
       var n = typeof require == "function" && require;
       for (var s = 0; s < r.length; s++) i(r[s]);
       return i
   }({
       1: [function(e, t, r) {
           var a = e("./src/ParseError");
           var i = e("./src/Settings");
           var n = e("./src/buildTree");
           var s = e("./src/parseTree");
           var l = e("./src/utils");
           var o = function(e, t, r) {
               l.clearNode(t);
               var a = new i(r);
               var o = s(e, a);
               var u = n(o, e, a).toNode();
               t.appendChild(u)
           };
           if (typeof document !== "undefined") {
               if (document.compatMode !== "CSS1Compat") {
                   typeof console !== "undefined" && console.warn("Warning: KaTeX doesn't work in quirks mode. Make sure your " + "website has a suitable doctype.");
                   o = function() {
                       throw new a("KaTeX doesn't work in quirks mode.")
                   }
               }
           }
           var u = function(e, t) {
               var r = new i(t);
               var a = s(e, r);
               return n(a, e, r).toMarkup()
           };
           var p = function(e, t) {
               var r = new i(t);
               return s(e, r)
           };
           t.exports = {
               render: o,
               renderToString: u,
               __parse: p,
               ParseError: a
           }
       }, {
           "./src/ParseError": 6,
           "./src/Settings": 8,
           "./src/buildTree": 13,
           "./src/parseTree": 22,
           "./src/utils": 25
       }],
       2: [function(e, t, r) {
           "use strict";
           function a(e) {
               if (!e.__matchAtRelocatable) {
                   var t = e.source + "|()";
                   var r = "g" + (e.ignoreCase ? "i" : "") + (e.multiline ? "m" : "") + (e.unicode ? "u" : "");
                   e.__matchAtRelocatable = new RegExp(t, r)
               }
               return e.__matchAtRelocatable
           }
           function i(e, t, r) {
               if (e.global || e.sticky) {
                   throw new Error("matchAt(...): Only non-global regexes are supported")
               }
               var i = a(e);
               i.lastIndex = r;
               var n = i.exec(t);
               if (n[n.length - 1] == null) {
                   n.length = n.length - 1;
                   return n
               } else {
                   return null
               }
           }
           t.exports = i
       }, {}],
       3: [function(e, t, r) {
           var a = e("match-at");
           var i = e("./ParseError");
           function n(e) {
               this.input = e;
               this.pos = 0
           }
           function s(e, t, r, a) {
               this.text = e;
               this.start = t;
               this.end = r;
               this.lexer = a
           }
           s.prototype.range = function(e, t) {
               if (e.lexer !== this.lexer) {
                   return new s(t)
               }
               return new s(t, this.start, e.end, this.lexer)
           };
           var l = new RegExp("([ \r\n	]+)|" + "([!-\\[\\]-\u2027\u202a-\ud7ff\uf900-\uffff]" + "|[\ud800-\udbff][\udc00-\udfff]" + "|\\\\(?:[a-zA-Z]+|[^\ud800-\udfff])" + ")");
           n.prototype.lex = function() {
               var e = this.input;
               var t = this.pos;
               if (t === e.length) {
                   return new s("EOF", t, t, this)
               }
               var r = a(l, e, t);
               if (r === null) {
                   throw new i("Unexpected character: '" + e[t] + "'", new s(e[t], t, t + 1, this))
               }
               var n = r[2] || " ";
               var o = this.pos;
               this.pos += r[0].length;
               var u = this.pos;
               return new s(n, o, u, this)
           };
           t.exports = n
       }, {
           "./ParseError": 6,
           "match-at": 2
       }],
       4: [function(e, t, r) {
           var a = e("./Lexer");
           function i(e, t) {
               this.lexer = new a(e);
               this.macros = t;
               this.stack = [];
               this.discardedWhiteSpace = []
           }
           i.prototype.nextToken = function() {
               for (;;) {
                   if (this.stack.length === 0) {
                       this.stack.push(this.lexer.lex())
                   }
                   var e = this.stack.pop();
                   var t = e.text;
                   if (!(t.charAt(0) === "\\" && this.macros.hasOwnProperty(t))) {
                       return e
                   }
                   var r = this.macros[t];
                   if (typeof r === "string") {
                       var i = new a(r);
                       r = [];
                       var n = i.lex();
                       while (n.text !== "EOF") {
                           r.push(n);
                           n = i.lex()
                       }
                       r.reverse();
                       this.macros[t] = r
                   }
                   this.stack = this.stack.concat(r)
               }
           };
           i.prototype.get = function(e) {
               this.discardedWhiteSpace = [];
               var t = this.nextToken();
               if (e) {
                   while (t.text === " ") {
                       this.discardedWhiteSpace.push(t);
                       t = this.nextToken()
                   }
               }
               return t
           };
           i.prototype.unget = function(e) {
               this.stack.push(e);
               while (this.discardedWhiteSpace.length !== 0) {
                   this.stack.push(this.discardedWhiteSpace.pop())
               }
           };
           t.exports = i
       }, {
           "./Lexer": 3
       }],
       5: [function(e, t, r) {
           function a(e) {
               this.style = e.style;
               this.color = e.color;
               this.size = e.size;
               this.phantom = e.phantom;
               this.font = e.font;
               if (e.parentStyle === undefined) {
                   this.parentStyle = e.style
               } else {
                   this.parentStyle = e.parentStyle
               }
               if (e.parentSize === undefined) {
                   this.parentSize = e.size
               } else {
                   this.parentSize = e.parentSize
               }
           }
           a.prototype.extend = function(e) {
               var t = {
                   style: this.style,
                   size: this.size,
                   color: this.color,
                   parentStyle: this.style,
                   parentSize: this.size,
                   phantom: this.phantom,
                   font: this.font
               };
               for (var r in e) {
                   if (e.hasOwnProperty(r)) {
                       t[r] = e[r]
                   }
               }
               return new a(t)
           };
           a.prototype.withStyle = function(e) {
               return this.extend({
                   style: e
               })
           };
           a.prototype.withSize = function(e) {
               return this.extend({
                   size: e
               })
           };
           a.prototype.withColor = function(e) {
               return this.extend({
                   color: e
               })
           };
           a.prototype.withPhantom = function() {
               return this.extend({
                   phantom: true
               })
           };
           a.prototype.withFont = function(e) {
               return this.extend({
                   font: e || this.font
               })
           };
           a.prototype.reset = function() {
               return this.extend({})
           };
           var i = {
               "katex-blue": "#6495ed",
               "katex-orange": "#ffa500",
               "katex-pink": "#ff00af",
               "katex-red": "#df0030",
               "katex-green": "#28ae7b",
               "katex-gray": "gray",
               "katex-purple": "#9d38bd",
               "katex-blueA": "#ccfaff",
               "katex-blueB": "#80f6ff",
               "katex-blueC": "#63d9ea",
               "katex-blueD": "#11accd",
               "katex-blueE": "#0c7f99",
               "katex-tealA": "#94fff5",
               "katex-tealB": "#26edd5",
               "katex-tealC": "#01d1c1",
               "katex-tealD": "#01a995",
               "katex-tealE": "#208170",
               "katex-greenA": "#b6ffb0",
               "katex-greenB": "#8af281",
               "katex-greenC": "#74cf70",
               "katex-greenD": "#1fab54",
               "katex-greenE": "#0d923f",
               "katex-goldA": "#ffd0a9",
               "katex-goldB": "#ffbb71",
               "katex-goldC": "#ff9c39",
               "katex-goldD": "#e07d10",
               "katex-goldE": "#a75a05",
               "katex-redA": "#fca9a9",
               "katex-redB": "#ff8482",
               "katex-redC": "#f9685d",
               "katex-redD": "#e84d39",
               "katex-redE": "#bc2612",
               "katex-maroonA": "#ffbde0",
               "katex-maroonB": "#ff92c6",
               "katex-maroonC": "#ed5fa6",
               "katex-maroonD": "#ca337c",
               "katex-maroonE": "#9e034e",
               "katex-purpleA": "#ddd7ff",
               "katex-purpleB": "#c6b9fc",
               "katex-purpleC": "#aa87ff",
               "katex-purpleD": "#7854ab",
               "katex-purpleE": "#543b78",
               "katex-mintA": "#f5f9e8",
               "katex-mintB": "#edf2df",
               "katex-mintC": "#e0e5cc",
               "katex-grayA": "#f6f7f7",
               "katex-grayB": "#f0f1f2",
               "katex-grayC": "#e3e5e6",
               "katex-grayD": "#d6d8da",
               "katex-grayE": "#babec2",
               "katex-grayF": "#888d93",
               "katex-grayG": "#626569",
               "katex-grayH": "#3b3e40",
               "katex-grayI": "#21242c",
               "katex-kaBlue": "#314453",
               "katex-kaGreen": "#71B307"
           };
           a.prototype.getColor = function() {
               if (this.phantom) {
                   return "transparent"
               } else {
                   return i[this.color] || this.color
               }
           };
           t.exports = a
       }, {}],
       6: [function(e, t, r) {
           function a(e, t) {
               var r = "KaTeX parse error: " + e;
               var i;
               var n;
               if (t && t.lexer && t.start <= t.end) {
                   var s = t.lexer.input;
                   i = t.start;
                   n = t.end;
                   if (i === s.length) {
                       r += " at end of input: "
                   } else {
                       r += " at position " + (i + 1) + ": "
                   }
                   var l = s.slice(i, n).replace(/[^]/g, "$&\u0332");
                   var o;
                   if (i > 15) {
                       o = "\u2026" + s.slice(i - 15, i)
                   } else {
                       o = s.slice(0, i)
                   }
                   var u;
                   if (n + 15 < s.length) {
                       u = s.slice(n, n + 15) + "\u2026"
                   } else {
                       u = s.slice(n)
                   }
                   r += o + l + u
               }
               var p = new Error(r);
               p.name = "ParseError";
               p.__proto__ = a.prototype;
               p.position = i;
               return p
           }
           a.prototype.__proto__ = Error.prototype;
           t.exports = a
       }, {}],
       7: [function(e, t, r) {
           var a = e("./functions");
           var i = e("./environments");
           var n = e("./MacroExpander");
           var s = e("./symbols");
           var l = e("./utils");
           var o = e("./unicodeRegexes").cjkRegex;
           var u = e("./parseData");
           var p = e("./ParseError");
           function h(e, t) {
               this.gullet = new n(e, t.macros);
               this.settings = t;
               this.leftrightDepth = 0
           }
           var c = u.ParseNode;
           function m(e, t, r) {
               this.result = e;
               this.isFunction = t;
               this.token = r
           }
           h.prototype.expect = function(e, t) {
               if (this.nextToken.text !== e) {
                   throw new p("Expected '" + e + "', got '" + this.nextToken.text + "'", this.nextToken)
               }
               if (t !== false) {
                   this.consume()
               }
           };
           h.prototype.consume = function() {
               this.nextToken = this.gullet.get(this.mode === "math")
           };
           h.prototype.switchMode = function(e) {
               this.gullet.unget(this.nextToken);
               this.mode = e;
               this.consume()
           };
           h.prototype.parse = function() {
               this.mode = "math";
               this.consume();
               var e = this.parseInput();
               return e
           };
           h.prototype.parseInput = function() {
               var e = this.parseExpression(false);
               this.expect("EOF", false);
               return e
           };
           var f = ["}", "\\end", "\\right", "&", "\\\\", "\\cr"];
           h.prototype.parseExpression = function(e, t) {
               var r = [];
               while (true) {
                   var i = this.nextToken;
                   if (f.indexOf(i.text) !== -1) {
                       break
                   }
                   if (t && i.text === t) {
                       break
                   }
                   if (e && a[i.text] && a[i.text].infix) {
                       break
                   }
                   var n = this.parseAtom();
                   if (!n) {
                       if (!this.settings.throwOnError && i.text[0] === "\\") {
                           var s = this.handleUnsupportedCmd();
                           r.push(s);
                           continue
                       }
                       break
                   }
                   r.push(n)
               }
               return this.handleInfixNodes(r)
           };
           h.prototype.handleInfixNodes = function(e) {
               var t = -1;
               var r;
               for (var a = 0; a < e.length; a++) {
                   var i = e[a];
                   if (i.type === "infix") {
                       if (t !== -1) {
                           throw new p("only one infix operator per group", i.value.token)
                       }
                       t = a;
                       r = i.value.replaceWith
                   }
               }
               if (t !== -1) {
                   var n;
                   var s;
                   var l = e.slice(0, t);
                   var o = e.slice(t + 1);
                   if (l.length === 1 && l[0].type === "ordgroup") {
                       n = l[0]
                   } else {
                       n = new c("ordgroup", l, this.mode)
                   }
                   if (o.length === 1 && o[0].type === "ordgroup") {
                       s = o[0]
                   } else {
                       s = new c("ordgroup", o, this.mode)
                   }
                   var u = this.callFunction(r, [n, s], null);
                   return [new c(u.type, u, this.mode)]
               } else {
                   return e
               }
           };
           var v = 1;
           h.prototype.handleSupSubscript = function(e) {
               var t = this.nextToken;
               var r = t.text;
               this.consume();
               var i = this.parseGroup();
               if (!i) {
                   if (!this.settings.throwOnError && this.nextToken.text[0] === "\\") {
                       return this.handleUnsupportedCmd()
                   } else {
                       throw new p("Expected group after '" + r + "'", t)
                   }
               } else if (i.isFunction) {
                   var n = a[i.result].greediness;
                   if (n > v) {
                       return this.parseFunction(i)
                   } else {
                       throw new p("Got function '" + i.result + "' with no arguments " + "as " + e, t)
                   }
               } else {
                   return i.result
               }
           };
           h.prototype.handleUnsupportedCmd = function() {
               var e = this.nextToken.text;
               var t = [];
               for (var r = 0; r < e.length; r++) {
                   t.push(new c("textord", e[r], "text"))
               }
               var a = new c("text", {
                   body: t,
                   type: "text"
               }, this.mode);
               var i = new c("color", {
                   color: this.settings.errorColor,
                   value: [a],
                   type: "color"
               }, this.mode);
               this.consume();
               return i
           };
           h.prototype.parseAtom = function() {
               var e = this.parseImplicitGroup();
               if (this.mode === "text") {
                   return e
               }
               var t;
               var r;
               while (true) {
                   var a = this.nextToken;
                   if (a.text === "\\limits" || a.text === "\\nolimits") {
                       if (!e || e.type !== "op") {
                           throw new p("Limit controls must follow a math operator", a)
                       } else {
                           var i = a.text === "\\limits";
                           e.value.limits = i;
                           e.value.alwaysHandleSupSub = true
                       }
                       this.consume()
                   } else if (a.text === "^") {
                       if (t) {
                           throw new p("Double superscript", a)
                       }
                       t = this.handleSupSubscript("superscript")
                   } else if (a.text === "_") {
                       if (r) {
                           throw new p("Double subscript", a)
                       }
                       r = this.handleSupSubscript("subscript")
                   } else if (a.text === "'") {
                       var n = new c("textord", "\\prime", this.mode);
                       var s = [n];
                       this.consume();
                       while (this.nextToken.text === "'") {
                           s.push(n);
                           this.consume()
                       }
                       t = new c("ordgroup", s, this.mode)
                   } else {
                       break
                   }
               }
               if (t || r) {
                   return new c("supsub", {
                       base: e,
                       sup: t,
                       sub: r
                   }, this.mode)
               } else {
                   return e
               }
           };
           var d = ["\\tiny", "\\scriptsize", "\\footnotesize", "\\small", "\\normalsize", "\\large", "\\Large", "\\LARGE", "\\huge", "\\Huge"];
           var g = ["\\displaystyle", "\\textstyle", "\\scriptstyle", "\\scriptscriptstyle"];
           h.prototype.parseImplicitGroup = function() {
               var e = this.parseSymbol();
               if (e == null) {
                   return this.parseFunction()
               }
               var t = e.result;
               var r;
               if (t === "\\left") {
                   var a = this.parseFunction(e);
                   ++this.leftrightDepth;
                   r = this.parseExpression(false);
                   --this.leftrightDepth;
                   this.expect("\\right", false);
                   var n = this.parseFunction();
                   return new c("leftright", {
                       body: r,
                       left: a.value.value,
                       right: n.value.value
                   }, this.mode)
               } else if (t === "\\begin") {
                   var s = this.parseFunction(e);
                   var o = s.value.name;
                   if (!i.hasOwnProperty(o)) {
                       throw new p("No such environment: " + o, s.value.nameGroup)
                   }
                   var u = i[o];
                   var h = this.parseArguments("\\begin{" + o + "}", u);
                   var m = {
                       mode: this.mode,
                       envName: o,
                       parser: this,
                       positions: h.pop()
                   };
                   var f = u.handler(m, h);
                   this.expect("\\end", false);
                   var v = this.nextToken;
                   var y = this.parseFunction();
                   if (y.value.name !== o) {
                       throw new p("Mismatch: \\begin{" + o + "} matched " + "by \\end{" + y.value.name + "}", v)
                   }
                   f.position = y.position;
                   return f
               } else if (l.contains(d, t)) {
                   r = this.parseExpression(false);
                   return new c("sizing", {
                       size: "size" + (l.indexOf(d, t) + 1),
                       value: r
                   }, this.mode)
               } else if (l.contains(g, t)) {
                   r = this.parseExpression(true);
                   return new c("styling", {
                       style: t.slice(1, t.length - 5),
                       value: r
                   }, this.mode)
               } else {
                   return this.parseFunction(e)
               }
           };
           h.prototype.parseFunction = function(e) {
               if (!e) {
                   e = this.parseGroup()
               }
               if (e) {
                   if (e.isFunction) {
                       var t = e.result;
                       var r = a[t];
                       if (this.mode === "text" && !r.allowedInText) {
                           throw new p("Can't use function '" + t + "' in text mode", e.token)
                       }
                       var i = this.parseArguments(t, r);
                       var n = e.token;
                       var s = this.callFunction(t, i, i.pop(), n);
                       return new c(s.type, s, this.mode)
                   } else {
                       return e.result
                   }
               } else {
                   return null
               }
           };
           h.prototype.callFunction = function(e, t, r, i) {
               var n = {
                   funcName: e,
                   parser: this,
                   positions: r,
                   token: i
               };
               return a[e].handler(n, t)
           };
           h.prototype.parseArguments = function(e, t) {
               var r = t.numArgs + t.numOptionalArgs;
               if (r === 0) {
                   return [
                       [this.pos]
                   ]
               }
               var i = t.greediness;
               var n = [this.pos];
               var s = [];
               for (var l = 0; l < r; l++) {
                   var o = this.nextToken;
                   var u = t.argTypes && t.argTypes[l];
                   var h;
                   if (l < t.numOptionalArgs) {
                       if (u) {
                           h = this.parseGroupOfType(u, true)
                       } else {
                           h = this.parseGroup(true)
                       }
                       if (!h) {
                           s.push(null);
                           n.push(this.pos);
                           continue
                       }
                   } else {
                       if (u) {
                           h = this.parseGroupOfType(u)
                       } else {
                           h = this.parseGroup()
                       }
                       if (!h) {
                           if (!this.settings.throwOnError && this.nextToken.text[0] === "\\") {
                               h = new m(this.handleUnsupportedCmd(this.nextToken.text), false)
                           } else {
                               throw new p("Expected group after '" + e + "'", o)
                           }
                       }
                   }
                   var c;
                   if (h.isFunction) {
                       var f = a[h.result].greediness;
                       if (f > i) {
                           c = this.parseFunction(h)
                       } else {
                           throw new p("Got function '" + h.result + "' as " + "argument to '" + e + "'", o)
                       }
                   } else {
                       c = h.result
                   }
                   s.push(c);
                   n.push(this.pos)
               }
               s.push(n);
               return s
           };
           h.prototype.parseGroupOfType = function(e, t) {
               var r = this.mode;
               if (e === "original") {
                   e = r
               }
               if (e === "color") {
                   return this.parseColorGroup(t)
               }
               if (e === "size") {
                   return this.parseSizeGroup(t)
               }
               this.switchMode(e);
               if (e === "text") {
                   while (this.nextToken.text === " ") {
                       this.consume()
                   }
               }
               var a = this.parseGroup(t);
               this.switchMode(r);
               return a
           };
           h.prototype.parseStringGroup = function(e, t) {
               if (t && this.nextToken.text !== "[") {
                   return null
               }
               var r = this.mode;
               this.mode = "text";
               this.expect(t ? "[" : "{");
               var a = "";
               var i = this.nextToken;
               var n = i;
               while (this.nextToken.text !== (t ? "]" : "}")) {
                   if (this.nextToken.text === "EOF") {
                       throw new p("Unexpected end of input in " + e, i.range(this.nextToken, a))
                   }
                   n = this.nextToken;
                   a += n.text;
                   this.consume()
               }
               this.mode = r;
               this.expect(t ? "]" : "}");
               return i.range(n, a)
           };
           h.prototype.parseRegexGroup = function(e, t) {
               var r = this.mode;
               this.mode = "text";
               var a = this.nextToken;
               var i = a;
               var n = "";
               while (this.nextToken.text !== "EOF" && e.test(n + this.nextToken.text)) {
                   i = this.nextToken;
                   n += i.text;
                   this.consume()
               }
               if (n === "") {
                   throw new p("Invalid " + t + ": '" + a.text + "'", a)
               }
               this.mode = r;
               return a.range(i, n)
           };
           h.prototype.parseColorGroup = function(e) {
               var t = this.parseStringGroup("color", e);
               if (!t) {
                   return null
               }
               var r = /^(#[a-z0-9]+|[a-z]+)$/i.exec(t.text);
               if (!r) {
                   throw new p("Invalid color: '" + t.text + "'", t)
               }
               return new m(new c("color", r[0], this.mode), false)
           };
           h.prototype.parseSizeGroup = function(e) {
               var t;
               if (!e && this.nextToken.text !== "{") {
                   t = this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2}$/, "size")
               } else {
                   t = this.parseStringGroup("size", e)
               }
               if (!t) {
                   return null
               }
               var r = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t.text);
               if (!r) {
                   throw new p("Invalid size: '" + t.text + "'", t)
               }
               var a = {
                   number: +(r[1] + r[2]),
                   unit: r[3]
               };
               if (a.unit !== "em" && a.unit !== "ex" && a.unit !== "mu") {
                   throw new p("Invalid unit: '" + a.unit + "'", t)
               }
               return new m(new c("color", a, this.mode), false)
           };
           h.prototype.parseGroup = function(e) {
               var t = this.nextToken;
               if (this.nextToken.text === (e ? "[" : "{")) {
                   this.consume();
                   var r = this.parseExpression(false, e ? "]" : null);
                   var a = this.nextToken;
                   this.expect(e ? "]" : "}");
                   if (this.mode === "text") {
                       this.formLigatures(r)
                   }
                   return new m(new c("ordgroup", r, this.mode, t, a), false)
               } else {
                   return e ? null : this.parseSymbol()
               }
           };
           h.prototype.formLigatures = function(e) {
               var t;
               var r = e.length - 1;
               for (t = 0; t < r; ++t) {
                   var a = e[t];
                   var i = a.value;
                   if (i === "-" && e[t + 1].value === "-") {
                       if (t + 1 < r && e[t + 2].value === "-") {
                           e.splice(t, 3, new c("textord", "---", "text", a, e[t + 2]));
                           r -= 2
                       } else {
                           e.splice(t, 2, new c("textord", "--", "text", a, e[t + 1]));
                           r -= 1
                       }
                   }
                   if ((i === "'" || i === "`") && e[t + 1].value === i) {
                       e.splice(t, 2, new c("textord", i + i, "text", a, e[t + 1]));
                       r -= 1
                   }
               }
           };
           h.prototype.parseSymbol = function() {
               var e = this.nextToken;
               if (a[e.text]) {
                   this.consume();
                   return new m(e.text, true, e)
               } else if (s[this.mode][e.text]) {
                   this.consume();
                   return new m(new c(s[this.mode][e.text].group, e.text, this.mode, e), false, e)
               } else if (this.mode === "text" && o.test(e.text)) {
                   this.consume();
                   return new m(new c("textord", e.text, this.mode, e), false, e)
               } else {
                   return null
               }
           };
           h.prototype.ParseNode = c;
           t.exports = h
       }, {
           "./MacroExpander": 4,
           "./ParseError": 6,
           "./environments": 16,
           "./functions": 19,
           "./parseData": 21,
           "./symbols": 23,
           "./unicodeRegexes": 24,
           "./utils": 25
       }],
       8: [function(e, t, r) {
           function a(e, t) {
               return e === undefined ? t : e
           }
           function i(e) {
               e = e || {};
               this.displayMode = a(e.displayMode, false);
               this.throwOnError = a(e.throwOnError, true);
               this.errorColor = a(e.errorColor, "#cc0000");
               this.macros = e.macros || {}
           }
           t.exports = i
       }, {}],
       9: [function(e, t, r) {
           var a = e("./fontMetrics.js").sigmas;
           var i = [{}, {}, {}];
           var n;
           for (var s in a) {
               if (a.hasOwnProperty(s)) {
                   for (n = 0; n < 3; n++) {
                       i[n][s] = a[s][n]
                   }
               }
           }
           for (n = 0; n < 3; n++) {
               i[n].emPerEx = a.xHeight[n] / a.quad[n]
           }
           function l(e, t, r, a) {
               this.id = e;
               this.size = t;
               this.cramped = a;
               this.sizeMultiplier = r;
               this.metrics = i[t > 0 ? t - 1 : 0]
           }
           l.prototype.sup = function() {
               return y[x[this.id]]
           };
           l.prototype.sub = function() {
               return y[b[this.id]]
           };
           l.prototype.fracNum = function() {
               return y[w[this.id]]
           };
           l.prototype.fracDen = function() {
               return y[k[this.id]]
           };
           l.prototype.cramp = function() {
               return y[z[this.id]]
           };
           l.prototype.cls = function() {
               return d[this.size] + (this.cramped ? " cramped" : " uncramped")
           };
           l.prototype.reset = function() {
               return g[this.size]
           };
           l.prototype.isTight = function() {
               return this.size >= 2
           };
           var o = 0;
           var u = 1;
           var p = 2;
           var h = 3;
           var c = 4;
           var m = 5;
           var f = 6;
           var v = 7;
           var d = ["displaystyle textstyle", "textstyle", "scriptstyle", "scriptscriptstyle"];
           var g = ["reset-textstyle", "reset-textstyle", "reset-scriptstyle", "reset-scriptscriptstyle"];
           var y = [new l(o, 0, 1, false), new l(u, 0, 1, true), new l(p, 1, 1, false), new l(h, 1, 1, true), new l(c, 2, .7, false), new l(m, 2, .7, true), new l(f, 3, .5, false), new l(v, 3, .5, true)];
           var x = [c, m, c, m, f, v, f, v];
           var b = [m, m, m, m, v, v, v, v];
           var w = [p, h, c, m, f, v, f, v];
           var k = [h, h, m, m, v, v, v, v];
           var z = [u, u, h, h, m, m, v, v];
           t.exports = {
               DISPLAY: y[o],
               TEXT: y[p],
               SCRIPT: y[c],
               SCRIPTSCRIPT: y[f]
           }
       }, {
           "./fontMetrics.js": 17
       }],
       10: [function(e, t, r) {
           var a = e("./domTree");
           var i = e("./fontMetrics");
           var n = e("./symbols");
           var s = e("./utils");
           var l = ["\\Gamma", "\\Delta", "\\Theta", "\\Lambda", "\\Xi", "\\Pi", "\\Sigma", "\\Upsilon", "\\Phi", "\\Psi", "\\Omega"];
           var o = ["\u0131", "\u0237", "\xa3"];
           var u = function(e, t, r, s, l) {
               if (n[r][e] && n[r][e].replace) {
                   e = n[r][e].replace
               }
               var o = i.getCharacterMetrics(e, t);
               var u;
               if (o) {
                   var p = o.italic;
                   if (r === "text") {
                       p = 0
                   }
                   u = new a.symbolNode(e, o.height, o.depth, p, o.skew, l)
               } else {
                   typeof console !== "undefined" && console.warn("No character metrics for '" + e + "' in style '" + t + "'");
                   u = new a.symbolNode(e, 0, 0, 0, 0, l)
               }
               if (s) {
                   if (s.style.isTight()) {
                       u.classes.push("mtight")
                   }
                   if (s.getColor()) {
                       u.style.color = s.getColor()
                   }
               }
               return u
           };
           var p = function(e, t, r, a) {
               if (e === "\\" || n[t][e].font === "main") {
                   return u(e, "Main-Regular", t, r, a)
               } else {
                   return u(e, "AMS-Regular", t, r, a.concat(["amsrm"]))
               }
           };
           var h = function(e, t, r, a, i) {
               if (i === "mathord") {
                   return c(e, t, r, a)
               } else if (i === "textord") {
                   return u(e, "Main-Regular", t, r, a.concat(["mathrm"]))
               } else {
                   throw new Error("unexpected type: " + i + " in mathDefault")
               }
           };
           var c = function(e, t, r, a) {
               if (/[0-9]/.test(e.charAt(0)) || s.contains(o, e) || s.contains(l, e)) {
                   return u(e, "Main-Italic", t, r, a.concat(["mainit"]))
               } else {
                   return u(e, "Math-Italic", t, r, a.concat(["mathit"]))
               }
           };
           var m = function(e, t, r) {
               var a = e.mode;
               var l = e.value;
               if (n[a][l] && n[a][l].replace) {
                   l = n[a][l].replace
               }
               var p = ["mord"];
               var m = t.font;
               if (m) {
                   if (m === "mathit" || s.contains(o, l)) {
                       return c(l, a, t, p)
                   } else {
                       var f = k[m].fontName;
                       if (i.getCharacterMetrics(l, f)) {
                           return u(l, f, a, t, p.concat([m]))
                       } else {
                           return h(l, a, t, p, r)
                       }
                   }
               } else {
                   return h(l, a, t, p, r)
               }
           };
           var f = function(e) {
               var t = 0;
               var r = 0;
               var a = 0;
               if (e.children) {
                   for (var i = 0; i < e.children.length; i++) {
                       if (e.children[i].height > t) {
                           t = e.children[i].height
                       }
                       if (e.children[i].depth > r) {
                           r = e.children[i].depth
                       }
                       if (e.children[i].maxFontSize > a) {
                           a = e.children[i].maxFontSize
                       }
                   }
               }
               e.height = t;
               e.depth = r;
               e.maxFontSize = a
           };
           var v = function(e, t, r) {
               var i = new a.span(e, t, r);
               f(i);
               return i
           };
           var d = function(e, t) {
               e.children = t.concat(e.children);
               f(e)
           };
           var g = function(e) {
               var t = new a.documentFragment(e);
               f(t);
               return t
           };
           var y = function(e, t) {
               var r = v([], [new a.symbolNode("\u200b")]);
               r.style.fontSize = t / e.style.sizeMultiplier + "em";
               var i = v(["fontsize-ensurer", "reset-" + e.size, "size5"], [r]);
               return i
           };
           var x = function(e, t, r, i) {
               var n;
               var s;
               var l;
               if (t === "individualShift") {
                   var o = e;
                   e = [o[0]];
                   n = -o[0].shift - o[0].elem.depth;
                   s = n;
                   for (l = 1; l < o.length; l++) {
                       var u = -o[l].shift - s - o[l].elem.depth;
                       var p = u - (o[l - 1].elem.height + o[l - 1].elem.depth);
                       s = s + u;
                       e.push({
                           type: "kern",
                           size: p
                       });
                       e.push(o[l])
                   }
               } else if (t === "top") {
                   var h = r;
                   for (l = 0; l < e.length; l++) {
                       if (e[l].type === "kern") {
                           h -= e[l].size
                       } else {
                           h -= e[l].elem.height + e[l].elem.depth
                       }
                   }
                   n = h
               } else if (t === "bottom") {
                   n = -r
               } else if (t === "shift") {
                   n = -e[0].elem.depth - r
               } else if (t === "firstBaseline") {
                   n = -e[0].elem.depth
               } else {
                   n = 0
               }
               var c = 0;
               for (l = 0; l < e.length; l++) {
                   if (e[l].type === "elem") {
                       c = Math.max(c, e[l].elem.maxFontSize)
                   }
               }
               var m = y(i, c);
               var f = [];
               s = n;
               for (l = 0; l < e.length; l++) {
                   if (e[l].type === "kern") {
                       s += e[l].size
                   } else {
                       var d = e[l].elem;
                       var g = -d.depth - s;
                       s += d.height + d.depth;
                       var x = v([], [m, d]);
                       x.height -= g;
                       x.depth += g;
                       x.style.top = g + "em";
                       f.push(x)
                   }
               }
               var b = v(["baseline-fix"], [m, new a.symbolNode("\u200b")]);
               f.push(b);
               var w = v(["vlist"], f);
               w.height = Math.max(s, w.height);
               w.depth = Math.max(-n, w.depth);
               return w
           };
           var b = {
               size1: .5,
               size2: .7,
               size3: .8,
               size4: .9,
               size5: 1,
               size6: 1.2,
               size7: 1.44,
               size8: 1.73,
               size9: 2.07,
               size10: 2.49
           };
           var w = {
               "\\qquad": {
                   size: "2em",
                   className: "qquad"
               },
               "\\quad": {
                   size: "1em",
                   className: "quad"
               },
               "\\enspace": {
                   size: "0.5em",
                   className: "enspace"
               },
               "\\;": {
                   size: "0.277778em",
                   className: "thickspace"
               },
               "\\:": {
                   size: "0.22222em",
                   className: "mediumspace"
               },
               "\\,": {
                   size: "0.16667em",
                   className: "thinspace"
               },
               "\\!": {
                   size: "-0.16667em",
                   className: "negativethinspace"
               }
           };
           var k = {
               mathbf: {
                   variant: "bold",
                   fontName: "Main-Bold"
               },
               mathrm: {
                   variant: "normal",
                   fontName: "Main-Regular"
               },
               textit: {
                   variant: "italic",
                   fontName: "Main-Italic"
               },
               mathbb: {
                   variant: "double-struck",
                   fontName: "AMS-Regular"
               },
               mathcal: {
                   variant: "script",
                   fontName: "Caligraphic-Regular"
               },
               mathfrak: {
                   variant: "fraktur",
                   fontName: "Fraktur-Regular"
               },
               mathscr: {
                   variant: "script",
                   fontName: "Script-Regular"
               },
               mathsf: {
                   variant: "sans-serif",
                   fontName: "SansSerif-Regular"
               },
               mathtt: {
                   variant: "monospace",
                   fontName: "Typewriter-Regular"
               }
           };
           t.exports = {
               fontMap: k,
               makeSymbol: u,
               mathsym: p,
               makeSpan: v,
               makeFragment: g,
               makeVList: x,
               makeOrd: m,
               prependChildren: d,
               sizingMultiplier: b,
               spacingFunctions: w
           }
       }, {
           "./domTree": 15,
           "./fontMetrics": 17,
           "./symbols": 23,
           "./utils": 25
       }],
       11: [function(e, t, r) {
           var a = e("./ParseError");
           var i = e("./Style");
           var n = e("./buildCommon");
           var s = e("./delimiter");
           var l = e("./domTree");
           var o = e("./fontMetrics");
           var u = e("./utils");
           var p = n.makeSpan;
           var h = function(e) {
               return e instanceof l.span && e.classes[0] === "mspace"
           };
           var c = function(e) {
               return e && e.classes[0] === "mbin"
           };
           var m = function(e, t) {
               if (e) {
                   return u.contains(["mbin", "mopen", "mrel", "mop", "mpunct"], e.classes[0])
               } else {
                   return t
               }
           };
           var f = function(e, t) {
               if (e) {
                   return u.contains(["mrel", "mclose", "mpunct"], e.classes[0])
               } else {
                   return t
               }
           };
           var v = function(e, t, r) {
               var a = [];
               for (var i = 0; i < e.length; i++) {
                   var s = e[i];
                   var o = z(s, t);
                   if (o instanceof l.documentFragment) {
                       Array.prototype.push.apply(a, o.children)
                   } else {
                       a.push(o)
                   }
               }
               var u = null;
               for (i = 0; i < a.length; i++) {
                   if (h(a[i])) {
                       u = u || [];
                       u.push(a[i]);
                       a.splice(i, 1);
                       i--
                   } else if (u) {
                       if (a[i] instanceof l.symbolNode) {
                           a[i] = p([].concat(a[i].classes), [a[i]])
                       }
                       n.prependChildren(a[i], u);
                       u = null
                   }
               }
               if (u) {
                   Array.prototype.push.apply(a, u)
               }
               for (i = 0; i < a.length; i++) {
                   if (c(a[i]) && (m(a[i - 1], r) || f(a[i + 1], r))) {
                       a[i].classes[0] = "mord"
                   }
               }
               return a
           };
           var d = function(e) {
               if (e instanceof l.documentFragment) {
                   if (e.children.length) {
                       return d(e.children[e.children.length - 1])
                   }
               } else {
                   if (u.contains(["mord", "mop", "mbin", "mrel", "mopen", "mclose", "mpunct", "minner"], e.classes[0])) {
                       return e.classes[0]
                   }
               }
               return null
           };
           var g = function(e, t) {
               if (!e) {
                   return false
               } else if (e.type === "op") {
                   return e.value.limits && (t.style.size === i.DISPLAY.size || e.value.alwaysHandleSupSub)
               } else if (e.type === "accent") {
                   return x(e.value.base)
               } else {
                   return null
               }
           };
           var y = function(e) {
               if (!e) {
                   return false
               } else if (e.type === "ordgroup") {
                   if (e.value.length === 1) {
                       return y(e.value[0])
                   } else {
                       return e
                   }
               } else if (e.type === "color") {
                   if (e.value.value.length === 1) {
                       return y(e.value.value[0])
                   } else {
                       return e
                   }
               } else if (e.type === "font") {
                   return y(e.value.body)
               } else {
                   return e
               }
           };
           var x = function(e) {
               var t = y(e);
               return t.type === "mathord" || t.type === "textord" || t.type === "bin" || t.type === "rel" || t.type === "inner" || t.type === "open" || t.type === "close" || t.type === "punct"
           };
           var b = function(e, t) {
               return p(t.concat(["sizing", "reset-" + e.size, "size5", e.style.reset(), i.TEXT.cls(), "nulldelimiter"]))
           };
           var w = {};
           w.mathord = function(e, t) {
               return n.makeOrd(e, t, "mathord")
           };
           w.textord = function(e, t) {
               return n.makeOrd(e, t, "textord")
           };
           w.bin = function(e, t) {
               return n.mathsym(e.value, e.mode, t, ["mbin"])
           };
           w.rel = function(e, t) {
               return n.mathsym(e.value, e.mode, t, ["mrel"])
           };
           w.open = function(e, t) {
               return n.mathsym(e.value, e.mode, t, ["mopen"])
           };
           w.close = function(e, t) {
               return n.mathsym(e.value, e.mode, t, ["mclose"])
           };
           w.inner = function(e, t) {
               return n.mathsym(e.value, e.mode, t, ["minner"])
           };
           w.punct = function(e, t) {
               return n.mathsym(e.value, e.mode, t, ["mpunct"])
           };
           w.ordgroup = function(e, t) {
               return p(["mord", t.style.cls()], v(e.value, t.reset(), true), t)
           };
           w.text = function(e, t) {
               var r = t.withFont(e.value.style);
               var a = v(e.value.body, r, true);
               for (var i = 0; i < a.length - 1; i++) {
                   if (a[i].tryCombine(a[i + 1])) {
                       a.splice(i + 1, 1);
                       i--
                   }
               }
               return p(["mord", "text", r.style.cls()], a, r)
           };
           w.color = function(e, t) {
               var r = v(e.value.value, t.withColor(e.value.color), false);
               return new n.makeFragment(r)
           };
           w.supsub = function(e, t) {
               if (g(e.value.base, t)) {
                   return w[e.value.base.type](e, t)
               }
               var r = z(e.value.base, t.reset());
               var a;
               var s;
               var u;
               var h;
               var c = t.style;
               var m;
               if (e.value.sup) {
                   m = t.withStyle(c.sup());
                   u = z(e.value.sup, m);
                   a = p([c.reset(), c.sup().cls()], [u], m)
               }
               if (e.value.sub) {
                   m = t.withStyle(c.sub());
                   h = z(e.value.sub, m);
                   s = p([c.reset(), c.sub().cls()], [h], m)
               }
               var f;
               var v;
               if (x(e.value.base)) {
                   f = 0;
                   v = 0
               } else {
                   f = r.height - c.metrics.supDrop;
                   v = r.depth + c.metrics.subDrop
               }
               var y;
               if (c === i.DISPLAY) {
                   y = c.metrics.sup1
               } else if (c.cramped) {
                   y = c.metrics.sup3
               } else {
                   y = c.metrics.sup2
               }
               var b = i.TEXT.sizeMultiplier * c.sizeMultiplier;
               var k = .5 / o.metrics.ptPerEm / b + "em";
               var S;
               if (!e.value.sup) {
                   v = Math.max(v, c.metrics.sub1, h.height - .8 * c.metrics.xHeight);
                   S = n.makeVList([{
                       type: "elem",
                       elem: s
                   }], "shift", v, t);
                   S.children[0].style.marginRight = k;
                   if (r instanceof l.symbolNode) {
                       S.children[0].style.marginLeft = -r.italic + "em"
                   }
               } else if (!e.value.sub) {
                   f = Math.max(f, y, u.depth + .25 * c.metrics.xHeight);
                   S = n.makeVList([{
                       type: "elem",
                       elem: a
                   }], "shift", -f, t);
                   S.children[0].style.marginRight = k
               } else {
                   f = Math.max(f, y, u.depth + .25 * c.metrics.xHeight);
                   v = Math.max(v, c.metrics.sub2);
                   var M = o.metrics.defaultRuleThickness;
                   if (f - u.depth - (h.height - v) < 4 * M) {
                       v = 4 * M - (f - u.depth) + h.height;
                       var T = .8 * c.metrics.xHeight - (f - u.depth);
                       if (T > 0) {
                           f += T;
                           v -= T
                       }
                   }
                   S = n.makeVList([{
                       type: "elem",
                       elem: s,
                       shift: v
                   }, {
                       type: "elem",
                       elem: a,
                       shift: -f
                   }], "individualShift", null, t);
                   if (r instanceof l.symbolNode) {
                       S.children[0].style.marginLeft = -r.italic + "em"
                   }
                   S.children[0].style.marginRight = k;
                   S.children[1].style.marginRight = k
               }
               var A = d(r) || "mord";
               return p([A], [r, p(["msupsub"], [S])], t)
           };
           w.genfrac = function(e, t) {
               var r = t.style;
               if (e.value.size === "display") {
                   r = i.DISPLAY
               } else if (e.value.size === "text") {
                   r = i.TEXT
               }
               var a = r.fracNum();
               var l = r.fracDen();
               var u;
               u = t.withStyle(a);
               var h = z(e.value.numer, u);
               var c = p([r.reset(), a.cls()], [h], u);
               u = t.withStyle(l);
               var m = z(e.value.denom, u);
               var f = p([r.reset(), l.cls()], [m], u);
               var v;
               if (e.value.hasBarLine) {
                   v = o.metrics.defaultRuleThickness / t.style.sizeMultiplier
               } else {
                   v = 0
               }
               var d;
               var g;
               var y;
               if (r.size === i.DISPLAY.size) {
                   d = r.metrics.num1;
                   if (v > 0) {
                       g = 3 * v
                   } else {
                       g = 7 * o.metrics.defaultRuleThickness
                   }
                   y = r.metrics.denom1
               } else {
                   if (v > 0) {
                       d = r.metrics.num2;
                       g = v
                   } else {
                       d = r.metrics.num3;
                       g = 3 * o.metrics.defaultRuleThickness
                   }
                   y = r.metrics.denom2
               }
               var x;
               if (v === 0) {
                   var w = d - h.depth - (m.height - y);
                   if (w < g) {
                       d += .5 * (g - w);
                       y += .5 * (g - w)
                   }
                   x = n.makeVList([{
                       type: "elem",
                       elem: f,
                       shift: y
                   }, {
                       type: "elem",
                       elem: c,
                       shift: -d
                   }], "individualShift", null, t)
               } else {
                   var k = r.metrics.axisHeight;
                   if (d - h.depth - (k + .5 * v) < g) {
                       d += g - (d - h.depth - (k + .5 * v))
                   }
                   if (k - .5 * v - (m.height - y) < g) {
                       y += g - (k - .5 * v - (m.height - y))
                   }
                   var S = p([t.style.reset(), i.TEXT.cls(), "frac-line"]);
                   S.height = v;
                   var M = -(k - .5 * v);
                   x = n.makeVList([{
                       type: "elem",
                       elem: f,
                       shift: y
                   }, {
                       type: "elem",
                       elem: S,
                       shift: M
                   }, {
                       type: "elem",
                       elem: c,
                       shift: -d
                   }], "individualShift", null, t)
               }
               x.height *= r.sizeMultiplier / t.style.sizeMultiplier;
               x.depth *= r.sizeMultiplier / t.style.sizeMultiplier;
               var T;
               if (r.size === i.DISPLAY.size) {
                   T = r.metrics.delim1
               } else {
                   T = r.metrics.delim2
               }
               var A;
               var N;
               if (e.value.leftDelim == null) {
                   A = b(t, ["mopen"])
               } else {
                   A = s.customSizedDelim(e.value.leftDelim, T, true, t.withStyle(r), e.mode, ["mopen"])
               }
               if (e.value.rightDelim == null) {
                   N = b(t, ["mclose"])
               } else {
                   N = s.customSizedDelim(e.value.rightDelim, T, true, t.withStyle(r), e.mode, ["mclose"])
               }
               return p(["mord", t.style.reset(), r.cls()], [A, p(["mfrac"], [x]), N], t)
           };
           var k = function(e, t) {
               var r = e.number;
               if (e.unit === "ex") {
                   r *= t.metrics.emPerEx
               } else if (e.unit === "mu") {
                   r /= 18
               }
               return r
           };
           w.array = function(e, t) {
               var r;
               var i;
               var s = e.value.body.length;
               var l = 0;
               var h = new Array(s);
               var c = t.style;
               var m = 1 / o.metrics.ptPerEm;
               var f = 5 * m;
               var v = 12 * m;
               var d = u.deflt(e.value.arraystretch, 1);
               var g = d * v;
               var y = .7 * g;
               var x = .3 * g;
               var b = 0;
               for (r = 0; r < e.value.body.length; ++r) {
                   var w = e.value.body[r];
                   var S = y;
                   var M = x;
                   if (l < w.length) {
                       l = w.length
                   }
                   var T = new Array(w.length);
                   for (i = 0; i < w.length; ++i) {
                       var A = z(w[i], t);
                       if (M < A.depth) {
                           M = A.depth
                       }
                       if (S < A.height) {
                           S = A.height
                       }
                       T[i] = A
                   }
                   var N = 0;
                   if (e.value.rowGaps[r]) {
                       N = k(e.value.rowGaps[r].value, c);
                       if (N > 0) {
                           N += x;
                           if (M < N) {
                               M = N
                           }
                           N = 0
                       }
                   }
                   T.height = S;
                   T.depth = M;
                   b += S;
                   T.pos = b;
                   b += M + N;
                   h[r] = T
               }
               var q = b / 2 + c.metrics.axisHeight;
               var R = e.value.cols || [];
               var E = [];
               var C;
               var D;
               for (i = 0, D = 0; i < l || D < R.length; ++i, ++D) {
                   var O = R[D] || {};
                   var P = true;
                   while (O.type === "separator") {
                       if (!P) {
                           C = p(["arraycolsep"], []);
                           C.style.width = o.metrics.doubleRuleSep + "em";
                           E.push(C)
                       }
                       if (O.separator === "|") {
                           var F = p(["vertical-separator"], []);
                           F.style.height = b + "em";
                           F.style.verticalAlign = -(b - q) + "em";
                           E.push(F)
                       } else {
                           throw new a("Invalid separator type: " + O.separator)
                       }
                       D++;
                       O = R[D] || {};
                       P = false
                   }
                   if (i >= l) {
                       continue
                   }
                   var I;
                   if (i > 0 || e.value.hskipBeforeAndAfter) {
                       I = u.deflt(O.pregap, f);
                       if (I !== 0) {
                           C = p(["arraycolsep"], []);
                           C.style.width = I + "em";
                           E.push(C)
                       }
                   }
                   var L = [];
                   for (r = 0; r < s; ++r) {
                       var B = h[r];
                       var G = B[i];
                       if (!G) {
                           continue
                       }
                       var V = B.pos - q;
                       G.depth = B.depth;
                       G.height = B.height;
                       L.push({
                           type: "elem",
                           elem: G,
                           shift: V
                       })
                   }
                   L = n.makeVList(L, "individualShift", null, t);
                   L = p(["col-align-" + (O.align || "c")], [L]);
                   E.push(L);
                   if (i < l - 1 || e.value.hskipBeforeAndAfter) {
                       I = u.deflt(O.postgap, f);
                       if (I !== 0) {
                           C = p(["arraycolsep"], []);
                           C.style.width = I + "em";
                           E.push(C)
                       }
                   }
               }
               h = p(["mtable"], E);
               return p(["mord"], [h], t)
           };
           w.spacing = function(e, t) {
               if (e.value === "\\ " || e.value === "\\space" || e.value === " " || e.value === "~") {
                   if (e.mode === "text") {
                       return n.makeOrd(e, t, "textord")
                   } else {
                       return p(["mspace"], [n.mathsym(e.value, e.mode, t)], t)
                   }
               } else {
                   return p(["mspace", n.spacingFunctions[e.value].className], [], t)
               }
           };
           w.llap = function(e, t) {
               var r = p(["inner"], [z(e.value.body, t.reset())]);
               var a = p(["fix"], []);
               return p(["mord", "llap", t.style.cls()], [r, a], t)
           };
           w.rlap = function(e, t) {
               var r = p(["inner"], [z(e.value.body, t.reset())]);
               var a = p(["fix"], []);
               return p(["mord", "rlap", t.style.cls()], [r, a], t)
           };
           w.op = function(e, t) {
               var r;
               var a;
               var s = false;
               if (e.type === "supsub") {
                   r = e.value.sup;
                   a = e.value.sub;
                   e = e.value.base;
                   s = true
               }
               var l = t.style;
               var h = ["\\smallint"];
               var c = false;
               if (l.size === i.DISPLAY.size && e.value.symbol && !u.contains(h, e.value.body)) {
                   c = true
               }
               var m;
               var f = 0;
               var d = 0;
               if (e.value.symbol) {
                   var g = c ? "Size2-Regular" : "Size1-Regular";
                   m = n.makeSymbol(e.value.body, g, "math", t, ["mop", "op-symbol", c ? "large-op" : "small-op"]);
                   f = (m.height - m.depth) / 2 - l.metrics.axisHeight * l.sizeMultiplier;
                   d = m.italic
               } else if (e.value.value) {
                   var y = v(e.value.value, t, true);
                   m = p(["mop"], y, t)
               } else {
                   var x = [];
                   for (var b = 1; b < e.value.body.length; b++) {
                       x.push(n.mathsym(e.value.body[b], e.mode))
                   }
                   m = p(["mop"], x, t)
               }
               if (s) {
                   m = p([], [m]);
                   var w;
                   var k;
                   var S;
                   var M;
                   var T;
                   if (r) {
                       T = t.withStyle(l.sup());
                       var A = z(r, T);
                       w = p([l.reset(), l.sup().cls()], [A], T);
                       k = Math.max(o.metrics.bigOpSpacing1, o.metrics.bigOpSpacing3 - A.depth)
                   }
                   if (a) {
                       T = t.withStyle(l.sub());
                       var N = z(a, T);
                       S = p([l.reset(), l.sub().cls()], [N], T);
                       M = Math.max(o.metrics.bigOpSpacing2, o.metrics.bigOpSpacing4 - N.height)
                   }
                   var q;
                   var R;
                   var E;
                   if (!r) {
                       R = m.height - f;
                       q = n.makeVList([{
                           type: "kern",
                           size: o.metrics.bigOpSpacing5
                       }, {
                           type: "elem",
                           elem: S
                       }, {
                           type: "kern",
                           size: M
                       }, {
                           type: "elem",
                           elem: m
                       }], "top", R, t);
                       q.children[0].style.marginLeft = -d + "em"
                   } else if (!a) {
                       E = m.depth + f;
                       q = n.makeVList([{
                           type: "elem",
                           elem: m
                       }, {
                           type: "kern",
                           size: k
                       }, {
                           type: "elem",
                           elem: w
                       }, {
                           type: "kern",
                           size: o.metrics.bigOpSpacing5
                       }], "bottom", E, t);
                       q.children[1].style.marginLeft = d + "em"
                   } else if (!r && !a) {
                       return m
                   } else {
                       E = o.metrics.bigOpSpacing5 + S.height + S.depth + M + m.depth + f;
                       q = n.makeVList([{
                           type: "kern",
                           size: o.metrics.bigOpSpacing5
                       }, {
                           type: "elem",
                           elem: S
                       }, {
                           type: "kern",
                           size: M
                       }, {
                           type: "elem",
                           elem: m
                       }, {
                           type: "kern",
                           size: k
                       }, {
                           type: "elem",
                           elem: w
                       }, {
                           type: "kern",
                           size: o.metrics.bigOpSpacing5
                       }], "bottom", E, t);
                       q.children[0].style.marginLeft = -d + "em";
                       q.children[2].style.marginLeft = d + "em"
                   }
                   return p(["mop", "op-limits"], [q], t)
               } else {
                   if (e.value.symbol) {
                       m.style.top = f + "em"
                   }
                   return m
               }
           };
           w.mod = function(e, t) {
               var r = [];
               if (e.value.modType === "bmod") {
                   if (!t.style.isTight()) {
                       r.push(p(["mspace", "negativemediumspace"], [], t))
                   }
                   r.push(p(["mspace", "thickspace"], [], t))
               } else if (t.style.size === i.DISPLAY.size) {
                   r.push(p(["mspace", "quad"], [], t))
               } else if (e.value.modType === "mod") {
                   r.push(p(["mspace", "twelvemuspace"], [], t))
               } else {
                   r.push(p(["mspace", "eightmuspace"], [], t))
               }
               if (e.value.modType === "pod" || e.value.modType === "pmod") {
                   r.push(n.mathsym("(", e.mode))
               }
               if (e.value.modType !== "pod") {
                   var a = [n.mathsym("m", e.mode), n.mathsym("o", e.mode), n.mathsym("d", e.mode)];
                   if (e.value.modType === "bmod") {
                       r.push(p(["mbin"], a, t));
                       r.push(p(["mspace", "thickspace"], [], t));
                       if (!t.style.isTight()) {
                           r.push(p(["mspace", "negativemediumspace"], [], t))
                       }
                   } else {
                       Array.prototype.push.apply(r, a);
                       r.push(p(["mspace", "sixmuspace"], [], t))
                   }
               }
               if (e.value.value) {
                   Array.prototype.push.apply(r, v(e.value.value, t, false))
               }
               if (e.value.modType === "pod" || e.value.modType === "pmod") {
                   r.push(n.mathsym(")", e.mode))
               }
               return n.makeFragment(r)
           };
           w.katex = function(e, t) {
               var r = p(["k"], [n.mathsym("K", e.mode)], t);
               var a = p(["a"], [n.mathsym("A", e.mode)], t);
               a.height = (a.height + .2) * .75;
               a.depth = (a.height - .2) * .75;
               var i = p(["t"], [n.mathsym("T", e.mode)], t);
               var s = p(["e"], [n.mathsym("E", e.mode)], t);
               s.height = s.height - .2155;
               s.depth = s.depth + .2155;
               var l = p(["x"], [n.mathsym("X", e.mode)], t);
               return p(["mord", "katex-logo"], [r, a, i, s, l], t)
           };
           w.overline = function(e, t) {
               var r = t.style;
               var a = z(e.value.body, t.withStyle(r.cramp()));
               var s = o.metrics.defaultRuleThickness / r.sizeMultiplier;
               var l = p([r.reset(), i.TEXT.cls(), "overline-line"]);
               l.height = s;
               l.maxFontSize = 1;
               var u = n.makeVList([{
                   type: "elem",
                   elem: a
               }, {
                   type: "kern",
                   size: 3 * s
               }, {
                   type: "elem",
                   elem: l
               }, {
                   type: "kern",
                   size: s
               }], "firstBaseline", null, t);
               return p(["mord", "overline"], [u], t)
           };
           w.underline = function(e, t) {
               var r = t.style;
               var a = z(e.value.body, t);
               var s = o.metrics.defaultRuleThickness / r.sizeMultiplier;
               var l = p([r.reset(), i.TEXT.cls(), "underline-line"]);
               l.height = s;
               l.maxFontSize = 1;
               var u = n.makeVList([{
                   type: "kern",
                   size: s
               }, {
                   type: "elem",
                   elem: l
               }, {
                   type: "kern",
                   size: 3 * s
               }, {
                   type: "elem",
                   elem: a
               }], "top", a.height, t);
               return p(["mord", "underline"], [u], t)
           };
           w.sqrt = function(e, t) {
               var r = t.style;
               var a = z(e.value.body, t.withStyle(r.cramp()));
               var l = o.metrics.defaultRuleThickness / r.sizeMultiplier;
               var u = p([r.reset(), i.TEXT.cls(), "sqrt-line"], [], t);
               u.height = l;
               u.maxFontSize = 1;
               var h = l;
               if (r.id < i.TEXT.id) {
                   h = r.metrics.xHeight
               }
               var c = l + h / 4;
               var m = (a.height + a.depth) * r.sizeMultiplier;
               var f = m + c + l;
               var v = p(["sqrt-sign"], [s.customSizedDelim("\\surd", f, false, t, e.mode)], t);
               var d = v.height + v.depth - l;
               if (d > a.height + a.depth + c) {
                   c = (c + d - a.height - a.depth) / 2
               }
               var g = -(a.height + c + l) + v.height;
               v.style.top = g + "em";
               v.height -= g;
               v.depth += g;
               var y;
               if (a.height === 0 && a.depth === 0) {
                   y = p()
               } else {
                   y = n.makeVList([{
                       type: "elem",
                       elem: a
                   }, {
                       type: "kern",
                       size: c
                   }, {
                       type: "elem",
                       elem: u
                   }, {
                       type: "kern",
                       size: l
                   }], "firstBaseline", null, t)
               }
               if (!e.value.index) {
                   return p(["mord", "sqrt"], [v, y], t)
               } else {
                   var x = t.withStyle(i.SCRIPTSCRIPT);
                   var b = z(e.value.index, x);
                   var w = p([r.reset(), i.SCRIPTSCRIPT.cls()], [b], x);
                   var k = Math.max(v.height, y.height);
                   var S = Math.max(v.depth, y.depth);
                   var M = .6 * (k - S);
                   var T = n.makeVList([{
                       type: "elem",
                       elem: w
                   }], "shift", -M, t);
                   var A = p(["root"], [T]);
                   return p(["mord", "sqrt"], [A, v, y], t)
               }
           };
           w.sizing = function(e, t) {
               var r = v(e.value.value, t.withSize(e.value.size), false);
               var a = t.style;
               var i = n.sizingMultiplier[e.value.size];
               i = i * a.sizeMultiplier;
               for (var s = 0; s < r.length; s++) {
                   var l = u.indexOf(r[s].classes, "sizing");
                   if (l < 0) {
                       r[s].classes.push("sizing", "reset-" + t.size, e.value.size, a.cls());
                       r[s].maxFontSize = i
                   } else if (r[s].classes[l + 1] === "reset-" + e.value.size) {
                       r[s].classes[l + 1] = "reset-" + t.size
                   }
               }
               return n.makeFragment(r)
           };
           w.styling = function(e, t) {
               var r = {
                   display: i.DISPLAY,
                   text: i.TEXT,
                   script: i.SCRIPT,
                   scriptscript: i.SCRIPTSCRIPT
               };
               var a = r[e.value.style];
               var s = t.withStyle(a);
               var l = v(e.value.value, s, false);
               for (var o = 0; o < l.length; o++) {
                   var p = u.indexOf(l[o].classes, a.reset());
                   if (p < 0) {
                       l[o].classes.push(t.style.reset(), a.cls())
                   } else {
                       l[o].classes[p] = t.style.reset()
                   }
               }
               return new n.makeFragment(l)
           };
           w.font = function(e, t) {
               var r = e.value.font;
               return z(e.value.body, t.withFont(r))
           };
           w.delimsizing = function(e, t) {
               var r = e.value.value;
               if (r === ".") {
                   return p([e.value.mclass])
               }
               return s.sizedDelim(r, e.value.size, t, e.mode, [e.value.mclass])
           };
           w.leftright = function(e, t) {
               var r = v(e.value.body, t.reset(), true);
               var a = 0;
               var i = 0;
               var n = false;
               for (var l = 0; l < r.length; l++) {
                   if (r[l].isMiddle) {
                       n = true
                   } else {
                       a = Math.max(r[l].height, a);
                       i = Math.max(r[l].depth, i)
                   }
               }
               var o = t.style;
               a *= o.sizeMultiplier;
               i *= o.sizeMultiplier;
               var u;
               if (e.value.left === ".") {
                   u = b(t, ["mopen"])
               } else {
                   u = s.leftRightDelim(e.value.left, a, i, t, e.mode, ["mopen"])
               }
               r.unshift(u);
               if (n) {
                   for (l = 1; l < r.length; l++) {
                       if (r[l].isMiddle) {
                           r[l] = s.leftRightDelim(r[l].isMiddle.value, a, i, r[l].isMiddle.options, e.mode, [])
                       }
                   }
               }
               var h;
               if (e.value.right === ".") {
                   h = b(t, ["mclose"])
               } else {
                   h = s.leftRightDelim(e.value.right, a, i, t, e.mode, ["mclose"])
               }
               r.push(h);
               return p(["minner", o.cls()], r, t)
           };
           w.middle = function(e, t) {
               var r;
               if (e.value.value === ".") {
                   r = b(t, [])
               } else {
                   r = s.sizedDelim(e.value.value, 1, t, e.mode, []);
                   r.isMiddle = {
                       value: e.value.value,
                       options: t
                   }
               }
               return r
           };
           w.rule = function(e, t) {
               var r = p(["mord", "rule"], [], t);
               var a = t.style;
               var i = 0;
               if (e.value.shift) {
                   i = k(e.value.shift, a)
               }
               var n = k(e.value.width, a);
               var s = k(e.value.height, a);
               i /= a.sizeMultiplier;
               n /= a.sizeMultiplier;
               s /= a.sizeMultiplier;
               r.style.borderRightWidth = n + "em";
               r.style.borderTopWidth = s + "em";
               r.style.bottom = i + "em";
               r.width = n;
               r.height = s + i;
               r.depth = -i;
               return r
           };
           w.kern = function(e, t) {
               var r = p(["mord", "rule"], [], t);
               var a = t.style;
               var i = 0;
               if (e.value.dimension) {
                   i = k(e.value.dimension, a)
               }
               i /= a.sizeMultiplier;
               r.style.marginLeft = i + "em";
               return r
           };
           w.accent = function(e, t) {
               var r = e.value.base;
               var a = t.style;
               var i;
               if (e.type === "supsub") {
                   var s = e;
                   e = s.value.base;
                   r = e.value.base;
                   s.value.base = r;
                   i = z(s, t.reset())
               }
               var l = z(r, t.withStyle(a.cramp()));
               var o;
               if (x(r)) {
                   var u = y(r);
                   var h = z(u, t.withStyle(a.cramp()));
                   o = h.skew
               } else {
                   o = 0
               }
               var c = Math.min(l.height, a.metrics.xHeight);
               var m = n.makeSymbol(e.value.accent, "Main-Regular", "math", t);
               m.italic = 0;
               var f = e.value.accent === "\\vec" ? "accent-vec" : null;
               var v = p(["accent-body", f], [p([], [m])]);
               v = n.makeVList([{
                   type: "elem",
                   elem: l
               }, {
                   type: "kern",
                   size: -c
               }, {
                   type: "elem",
                   elem: v
               }], "firstBaseline", null, t);
               v.children[1].style.marginLeft = 2 * o + "em";
               var d = p(["mord", "accent"], [v], t);
               if (i) {
                   i.children[0] = d;
                   i.height = Math.max(d.height, i.height);
                   i.classes[0] = "mord";
                   return i
               } else {
                   return d
               }
           };
           w.phantom = function(e, t) {
               var r = v(e.value.value, t.withPhantom(), false);
               return new n.makeFragment(r)
           };
           w.mclass = function(e, t) {
               var r = v(e.value.value, t, true);
               return p([e.value.mclass], r, t)
           };
           var z = function(e, t) {
               if (!e) {
                   return p()
               }
               if (w[e.type]) {
                   var r = w[e.type](e, t);
                   var i;
                   if (t.style !== t.parentStyle) {
                       i = t.style.sizeMultiplier / t.parentStyle.sizeMultiplier;
                       r.height *= i;
                       r.depth *= i
                   }
                   if (t.size !== t.parentSize) {
                       i = n.sizingMultiplier[t.size] / n.sizingMultiplier[t.parentSize];
                       r.height *= i;
                       r.depth *= i
                   }
                   return r
               } else {
                   throw new a("Got group of unknown type: '" + e.type + "'")
               }
           };
           var S = function(e, t) {
               e = JSON.parse(JSON.stringify(e));
               var r = v(e, t, true);
               var a = p(["base", t.style.cls()], r, t);
               var i = p(["strut"]);
               var n = p(["strut", "bottom"]);
               i.style.height = a.height + "em";
               n.style.height = a.height + a.depth + "em";
               n.style.verticalAlign = -a.depth + "em";
               var s = p(["katex-html"], [i, n, a]);
               s.setAttribute("aria-hidden", "true");
               return s
           };
           t.exports = S
       }, {
           "./ParseError": 6,
           "./Style": 9,
           "./buildCommon": 10,
           "./delimiter": 14,
           "./domTree": 15,
           "./fontMetrics": 17,
           "./utils": 25
       }],
       12: [function(e, t, r) {
           var a = e("./buildCommon");
           var i = e("./fontMetrics");
           var n = e("./mathMLTree");
           var s = e("./ParseError");
           var l = e("./symbols");
           var o = e("./utils");
           var u = a.makeSpan;
           var p = a.fontMap;
           var h = function(e, t) {
               if (l[t][e] && l[t][e].replace) {
                   e = l[t][e].replace
               }
               return new n.TextNode(e)
           };
           var c = function(e, t) {
               var r = t.font;
               if (!r) {
                   return null
               }
               var a = e.mode;
               if (r === "mathit") {
                   return "italic"
               }
               var n = e.value;
               if (o.contains(["\\imath", "\\jmath"], n)) {
                   return null
               }
               if (l[a][n] && l[a][n].replace) {
                   n = l[a][n].replace
               }
               var s = p[r].fontName;
               if (i.getCharacterMetrics(n, s)) {
                   return p[t.font].variant
               }
               return null
           };
           var m = {};
           m.mathord = function(e, t) {
               var r = new n.MathNode("mi", [h(e.value, e.mode)]);
               var a = c(e, t);
               if (a) {
                   r.setAttribute("mathvariant", a)
               }
               return r
           };
           m.textord = function(e, t) {
               var r = h(e.value, e.mode);
               var a = c(e, t) || "normal";
               var i;
               if (/[0-9]/.test(e.value)) {
                   i = new n.MathNode("mn", [r]);
                   if (t.font) {
                       i.setAttribute("mathvariant", a)
                   }
               } else {
                   i = new n.MathNode("mi", [r]);
                   i.setAttribute("mathvariant", a)
               }
               return i
           };
           m.bin = function(e) {
               var t = new n.MathNode("mo", [h(e.value, e.mode)]);
               return t
           };
           m.rel = function(e) {
               var t = new n.MathNode("mo", [h(e.value, e.mode)]);
               return t
           };
           m.open = function(e) {
               var t = new n.MathNode("mo", [h(e.value, e.mode)]);
               return t
           };
           m.close = function(e) {
               var t = new n.MathNode("mo", [h(e.value, e.mode)]);
               return t
           };
           m.inner = function(e) {
               var t = new n.MathNode("mo", [h(e.value, e.mode)]);
               return t
           };
           m.punct = function(e) {
               var t = new n.MathNode("mo", [h(e.value, e.mode)]);
               t.setAttribute("separator", "true");
               return t
           };
           m.ordgroup = function(e, t) {
               var r = f(e.value, t);
               var a = new n.MathNode("mrow", r);
               return a
           };
           m.text = function(e, t) {
               var r = f(e.value.body, t);
               var a = new n.MathNode("mtext", r);
               return a
           };
           m.color = function(e, t) {
               var r = f(e.value.value, t);
               var a = new n.MathNode("mstyle", r);
               a.setAttribute("mathcolor", e.value.color);
               return a
           };
           m.supsub = function(e, t) {
               var r = [v(e.value.base, t)];
               if (e.value.sub) {
                   r.push(v(e.value.sub, t))
               }
               if (e.value.sup) {
                   r.push(v(e.value.sup, t))
               }
               var a;
               if (!e.value.sub) {
                   a = "msup"
               } else if (!e.value.sup) {
                   a = "msub"
               } else {
                   a = "msubsup"
               }
               var i = new n.MathNode(a, r);
               return i
           };
           m.genfrac = function(e, t) {
               var r = new n.MathNode("mfrac", [v(e.value.numer, t), v(e.value.denom, t)]);
               if (!e.value.hasBarLine) {
                   r.setAttribute("linethickness", "0px")
               }
               if (e.value.leftDelim != null || e.value.rightDelim != null) {
                   var a = [];
                   if (e.value.leftDelim != null) {
                       var i = new n.MathNode("mo", [new n.TextNode(e.value.leftDelim)]);
                       i.setAttribute("fence", "true");
                       a.push(i)
                   }
                   a.push(r);
                   if (e.value.rightDelim != null) {
                       var s = new n.MathNode("mo", [new n.TextNode(e.value.rightDelim)]);
                       s.setAttribute("fence", "true");
                       a.push(s)
                   }
                   var l = new n.MathNode("mrow", a);
                   return l
               }
               return r
           };
           m.array = function(e, t) {
               return new n.MathNode("mtable", e.value.body.map(function(e) {
                   return new n.MathNode("mtr", e.map(function(e) {
                       return new n.MathNode("mtd", [v(e, t)])
                   }))
               }))
           };
           m.sqrt = function(e, t) {
               var r;
               if (e.value.index) {
                   r = new n.MathNode("mroot", [v(e.value.body, t), v(e.value.index, t)])
               } else {
                   r = new n.MathNode("msqrt", [v(e.value.body, t)])
               }
               return r
           };
           m.leftright = function(e, t) {
               var r = f(e.value.body, t);
               if (e.value.left !== ".") {
                   var a = new n.MathNode("mo", [h(e.value.left, e.mode)]);
                   a.setAttribute("fence", "true");
                   r.unshift(a)
               }
               if (e.value.right !== ".") {
                   var i = new n.MathNode("mo", [h(e.value.right, e.mode)]);
                   i.setAttribute("fence", "true");
                   r.push(i)
               }
               var s = new n.MathNode("mrow", r);
               return s
           };
           m.middle = function(e, t) {
               var r = new n.MathNode("mo", [h(e.value.middle, e.mode)]);
               r.setAttribute("fence", "true");
               return r
           };
           m.accent = function(e, t) {
               var r = new n.MathNode("mo", [h(e.value.accent, e.mode)]);
               var a = new n.MathNode("mover", [v(e.value.base, t), r]);
               a.setAttribute("accent", "true");
               return a
           };
           m.spacing = function(e) {
               var t;
               if (e.value === "\\ " || e.value === "\\space" || e.value === " " || e.value === "~") {
                   t = new n.MathNode("mtext", [new n.TextNode("\xa0")])
               } else {
                   t = new n.MathNode("mspace");
                   t.setAttribute("width", a.spacingFunctions[e.value].size)
               }
               return t
           };
           m.op = function(e, t) {
               var r;
               if (e.value.symbol) {
                   r = new n.MathNode("mo", [h(e.value.body, e.mode)])
               } else if (e.value.value) {
                   r = new n.MathNode("mo", f(e.value.value, t))
               } else {
                   r = new n.MathNode("mi", [new n.TextNode(e.value.body.slice(1))])
               }
               return r
           };
           m.mod = function(e, t) {
               var r = [];
               if (e.value.modType === "pod" || e.value.modType === "pmod") {
                   r.push(new n.MathNode("mo", [h("(", e.mode)]))
               }
               if (e.value.modType !== "pod") {
                   r.push(new n.MathNode("mo", [h("mod", e.mode)]))
               }
               if (e.value.value) {
                   var a = new n.MathNode("mspace");
                   a.setAttribute("width", "0.333333em");
                   r.push(a);
                   r = r.concat(f(e.value.value, t))
               }
               if (e.value.modType === "pod" || e.value.modType === "pmod") {
                   r.push(new n.MathNode("mo", [h(")", e.mode)]))
               }
               return new n.MathNode("mo", r)
           };
           m.katex = function(e) {
               var t = new n.MathNode("mtext", [new n.TextNode("KaTeX")]);
               return t
           };
           m.font = function(e, t) {
               var r = e.value.font;
               return v(e.value.body, t.withFont(r))
           };
           m.delimsizing = function(e) {
               var t = [];
               if (e.value.value !== ".") {
                   t.push(h(e.value.value, e.mode))
               }
               var r = new n.MathNode("mo", t);
               if (e.value.mclass === "mopen" || e.value.mclass === "mclose") {
                   r.setAttribute("fence", "true")
               } else {
                   r.setAttribute("fence", "false")
               }
               return r
           };
           m.styling = function(e, t) {
               var r = f(e.value.value, t);
               var a = new n.MathNode("mstyle", r);
               var i = {
                   display: ["0", "true"],
                   text: ["0", "false"],
                   script: ["1", "false"],
                   scriptscript: ["2", "false"]
               };
               var s = i[e.value.style];
               a.setAttribute("scriptlevel", s[0]);
               a.setAttribute("displaystyle", s[1]);
               return a
           };
           m.sizing = function(e, t) {
               var r = f(e.value.value, t);
               var i = new n.MathNode("mstyle", r);
               i.setAttribute("mathsize", a.sizingMultiplier[e.value.size] + "em");
               return i
           };
           m.overline = function(e, t) {
               var r = new n.MathNode("mo", [new n.TextNode("\u203e")]);
               r.setAttribute("stretchy", "true");
               var a = new n.MathNode("mover", [v(e.value.body, t), r]);
               a.setAttribute("accent", "true");
               return a
           };
           m.underline = function(e, t) {
               var r = new n.MathNode("mo", [new n.TextNode("\u203e")]);
               r.setAttribute("stretchy", "true");
               var a = new n.MathNode("munder", [v(e.value.body, t), r]);
               a.setAttribute("accentunder", "true");
               return a
           };
           m.rule = function(e) {
               var t = new n.MathNode("mrow");
               return t
           };
           m.kern = function(e) {
               var t = new n.MathNode("mrow");
               return t
           };
           m.llap = function(e, t) {
               var r = new n.MathNode("mpadded", [v(e.value.body, t)]);
               r.setAttribute("lspace", "-1width");
               r.setAttribute("width", "0px");
               return r
           };
           m.rlap = function(e, t) {
               var r = new n.MathNode("mpadded", [v(e.value.body, t)]);
               r.setAttribute("width", "0px");
               return r
           };
           m.phantom = function(e, t) {
               var r = f(e.value.value, t);
               return new n.MathNode("mphantom", r)
           };
           m.mclass = function(e, t) {
               var r = f(e.value.value, t);
               return new n.MathNode("mstyle", r)
           };
           var f = function(e, t) {
               var r = [];
               for (var a = 0; a < e.length; a++) {
                   var i = e[a];
                   r.push(v(i, t))
               }
               return r
           };
           var v = function(e, t) {
               if (!e) {
                   return new n.MathNode("mrow")
               }
               if (m[e.type]) {
                   return m[e.type](e, t)
               } else {
                   throw new s("Got group of unknown type: '" + e.type + "'")
               }
           };
           var d = function(e, t, r) {
               var a = f(e, r);
               var i = new n.MathNode("mrow", a);
               var s = new n.MathNode("annotation", [new n.TextNode(t)]);
               s.setAttribute("encoding", "application/x-tex");
               var l = new n.MathNode("semantics", [i, s]);
               var o = new n.MathNode("math", [l]);
               return u(["katex-mathml"], [o])
           };
           t.exports = d
       }, {
           "./ParseError": 6,
           "./buildCommon": 10,
           "./fontMetrics": 17,
           "./mathMLTree": 20,
           "./symbols": 23,
           "./utils": 25
       }],
       13: [function(e, t, r) {
           var a = e("./buildHTML");
           var i = e("./buildMathML");
           var n = e("./buildCommon");
           var s = e("./Options");
           var l = e("./Settings");
           var o = e("./Style");
           var u = n.makeSpan;
           var p = function(e, t, r) {
               r = r || new l({});
               var n = o.TEXT;
               if (r.displayMode) {
                   n = o.DISPLAY
               }
               var p = new s({
                   style: n,
                   size: "size5"
               });
               var h = i(e, t, p);
               var c = a(e, p);
               var m = u(["katex"], [h, c]);
               if (r.displayMode) {
                   return u(["katex-display"], [m])
               } else {
                   return m
               }
           };
           t.exports = p
       }, {
           "./Options": 5,
           "./Settings": 8,
           "./Style": 9,
           "./buildCommon": 10,
           "./buildHTML": 11,
           "./buildMathML": 12
       }],
       14: [function(e, t, r) {
           var a = e("./ParseError");
           var i = e("./Style");
           var n = e("./buildCommon");
           var s = e("./fontMetrics");
           var l = e("./symbols");
           var o = e("./utils");
           var u = n.makeSpan;
           var p = function(e, t) {
               if (l.math[e] && l.math[e].replace) {
                   return s.getCharacterMetrics(l.math[e].replace, t)
               } else {
                   return s.getCharacterMetrics(e, t)
               }
           };
           var h = function(e, t, r, a) {
               return n.makeSymbol(e, "Size" + t + "-Regular", r, a)
           };
           var c = function(e, t, r, a) {
               a = a || [];
               var i = u(a.concat(["style-wrap", r.style.reset(), t.cls()]), [e], r);
               var n = t.sizeMultiplier / r.style.sizeMultiplier;
               i.height *= n;
               i.depth *= n;
               i.maxFontSize = t.sizeMultiplier;
               return i
           };
           var m = function(e, t, r, a, i, s) {
               var l = n.makeSymbol(e, "Main-Regular", i, a);
               var o = c(l, t, a, s);
               if (r) {
                   var u = (1 - a.style.sizeMultiplier / t.sizeMultiplier) * a.style.metrics.axisHeight;
                   o.style.top = u + "em";
                   o.height -= u;
                   o.depth += u
               }
               return o
           };
           var f = function(e, t, r, a, n, s) {
               var l = h(e, t, n, a);
               var o = c(u(["delimsizing", "size" + t], [l], a), i.TEXT, a, s);
               if (r) {
                   var p = (1 - a.style.sizeMultiplier) * a.style.metrics.axisHeight;
                   o.style.top = p + "em";
                   o.height -= p;
                   o.depth += p
               }
               return o
           };
           var v = function(e, t, r) {
               var a;
               if (t === "Size1-Regular") {
                   a = "delim-size1"
               } else if (t === "Size4-Regular") {
                   a = "delim-size4"
               }
               var i = u(["delimsizinginner", a], [u([], [n.makeSymbol(e, t, r)])]);
               return {
                   type: "elem",
                   elem: i
               }
           };
           var d = function(e, t, r, a, s, l) {
               var o;
               var h;
               var m;
               var f;
               o = m = f = e;
               h = null;
               var d = "Size1-Regular";
               if (e === "\\uparrow") {
                   m = f = "\u23d0"
               } else if (e === "\\Uparrow") {
                   m = f = "\u2016"
               } else if (e === "\\downarrow") {
                   o = m = "\u23d0"
               } else if (e === "\\Downarrow") {
                   o = m = "\u2016"
               } else if (e === "\\updownarrow") {
                   o = "\\uparrow";
                   m = "\u23d0";
                   f = "\\downarrow"
               } else if (e === "\\Updownarrow") {
                   o = "\\Uparrow";
                   m = "\u2016";
                   f = "\\Downarrow"
               } else if (e === "[" || e === "\\lbrack") {
                   o = "\u23a1";
                   m = "\u23a2";
                   f = "\u23a3";
                   d = "Size4-Regular"
               } else if (e === "]" || e === "\\rbrack") {
                   o = "\u23a4";
                   m = "\u23a5";
                   f = "\u23a6";
                   d = "Size4-Regular"
               } else if (e === "\\lfloor") {
                   m = o = "\u23a2";
                   f = "\u23a3";
                   d = "Size4-Regular"
               } else if (e === "\\lceil") {
                   o = "\u23a1";
                   m = f = "\u23a2";
                   d = "Size4-Regular"
               } else if (e === "\\rfloor") {
                   m = o = "\u23a5";
                   f = "\u23a6";
                   d = "Size4-Regular"
               } else if (e === "\\rceil") {
                   o = "\u23a4";
                   m = f = "\u23a5";
                   d = "Size4-Regular"
               } else if (e === "(") {
                   o = "\u239b";
                   m = "\u239c";
                   f = "\u239d";
                   d = "Size4-Regular"
               } else if (e === ")") {
                   o = "\u239e";
                   m = "\u239f";
                   f = "\u23a0";
                   d = "Size4-Regular"
               } else if (e === "\\{" || e === "\\lbrace") {
                   o = "\u23a7";
                   h = "\u23a8";
                   f = "\u23a9";
                   m = "\u23aa";
                   d = "Size4-Regular"
               } else if (e === "\\}" || e === "\\rbrace") {
                   o = "\u23ab";
                   h = "\u23ac";
                   f = "\u23ad";
                   m = "\u23aa";
                   d = "Size4-Regular"
               } else if (e === "\\lgroup") {
                   o = "\u23a7";
                   f = "\u23a9";
                   m = "\u23aa";
                   d = "Size4-Regular"
               } else if (e === "\\rgroup") {
                   o = "\u23ab";
                   f = "\u23ad";
                   m = "\u23aa";
                   d = "Size4-Regular"
               } else if (e === "\\lmoustache") {
                   o = "\u23a7";
                   f = "\u23ad";
                   m = "\u23aa";
                   d = "Size4-Regular"
               } else if (e === "\\rmoustache") {
                   o = "\u23ab";
                   f = "\u23a9";
                   m = "\u23aa";
                   d = "Size4-Regular"
               } else if (e === "\\surd") {
                   o = "\ue001";
                   f = "\u23b7";
                   m = "\ue000";
                   d = "Size4-Regular"
               }
               var g = p(o, d);
               var y = g.height + g.depth;
               var x = p(m, d);
               var b = x.height + x.depth;
               var w = p(f, d);
               var k = w.height + w.depth;
               var z = 0;
               var S = 1;
               if (h !== null) {
                   var M = p(h, d);
                   z = M.height + M.depth;
                   S = 2
               }
               var T = y + k + z;
               var A = Math.ceil((t - T) / (S * b));
               var N = T + A * S * b;
               var q = a.style.metrics.axisHeight;
               if (r) {
                   q *= a.style.sizeMultiplier
               }
               var R = N / 2 - q;
               var E = [];
               E.push(v(f, d, s));
               var C;
               if (h === null) {
                   for (C = 0; C < A; C++) {
                       E.push(v(m, d, s))
                   }
               } else {
                   for (C = 0; C < A; C++) {
                       E.push(v(m, d, s))
                   }
                   E.push(v(h, d, s));
                   for (C = 0; C < A; C++) {
                       E.push(v(m, d, s))
                   }
               }
               E.push(v(o, d, s));
               var D = n.makeVList(E, "bottom", R, a);
               return c(u(["delimsizing", "mult"], [D], a), i.TEXT, a, l)
           };
           var g = ["(", ")", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\\lfloor", "\\rfloor", "\\lceil", "\\rceil", "\\surd"];
           var y = ["\\uparrow", "\\downarrow", "\\updownarrow", "\\Uparrow", "\\Downarrow", "\\Updownarrow", "|", "\\|", "\\vert", "\\Vert", "\\lvert", "\\rvert", "\\lVert", "\\rVert", "\\lgroup", "\\rgroup", "\\lmoustache", "\\rmoustache"];
           var x = ["<", ">", "\\langle", "\\rangle", "/", "\\backslash", "\\lt", "\\gt"];
           var b = [0, 1.2, 1.8, 2.4, 3];
           var w = function(e, t, r, i, n) {
               if (e === "<" || e === "\\lt") {
                   e = "\\langle"
               } else if (e === ">" || e === "\\gt") {
                   e = "\\rangle"
               }
               if (o.contains(g, e) || o.contains(x, e)) {
                   return f(e, t, false, r, i, n)
               } else if (o.contains(y, e)) {
                   return d(e, b[t], false, r, i, n)
               } else {
                   throw new a("Illegal delimiter: '" + e + "'")
               }
           };
           var k = [{
               type: "small",
               style: i.SCRIPTSCRIPT
           }, {
               type: "small",
               style: i.SCRIPT
           }, {
               type: "small",
               style: i.TEXT
           }, {
               type: "large",
               size: 1
           }, {
               type: "large",
               size: 2
           }, {
               type: "large",
               size: 3
           }, {
               type: "large",
               size: 4
           }];
           var z = [{
               type: "small",
               style: i.SCRIPTSCRIPT
           }, {
               type: "small",
               style: i.SCRIPT
           }, {
               type: "small",
               style: i.TEXT
           }, {
               type: "stack"
           }];
           var S = [{
               type: "small",
               style: i.SCRIPTSCRIPT
           }, {
               type: "small",
               style: i.SCRIPT
           }, {
               type: "small",
               style: i.TEXT
           }, {
               type: "large",
               size: 1
           }, {
               type: "large",
               size: 2
           }, {
               type: "large",
               size: 3
           }, {
               type: "large",
               size: 4
           }, {
               type: "stack"
           }];
           var M = function(e) {
               if (e.type === "small") {
                   return "Main-Regular"
               } else if (e.type === "large") {
                   return "Size" + e.size + "-Regular"
               } else if (e.type === "stack") {
                   return "Size4-Regular"
               }
           };
           var T = function(e, t, r, a) {
               var i = Math.min(2, 3 - a.style.size);
               for (var n = i; n < r.length; n++) {
                   if (r[n].type === "stack") {
                       break
                   }
                   var s = p(e, M(r[n]));
                   var l = s.height + s.depth;
                   if (r[n].type === "small") {
                       l *= r[n].style.sizeMultiplier
                   }
                   if (l > t) {
                       return r[n]
                   }
               }
               return r[r.length - 1]
           };
           var A = function(e, t, r, a, i, n) {
               if (e === "<" || e === "\\lt") {
                   e = "\\langle"
               } else if (e === ">" || e === "\\gt") {
                   e = "\\rangle"
               }
               var s;
               if (o.contains(x, e)) {
                   s = k
               } else if (o.contains(g, e)) {
                   s = S
               } else {
                   s = z
               }
               var l = T(e, t, s, a);
               if (l.type === "small") {
                   return m(e, l.style, r, a, i, n)
               } else if (l.type === "large") {
                   return f(e, l.size, r, a, i, n)
               } else if (l.type === "stack") {
                   return d(e, t, r, a, i, n)
               }
           };
           var N = function(e, t, r, a, i, n) {
               var l = a.style.metrics.axisHeight * a.style.sizeMultiplier;
               var o = 901;
               var u = 5 / s.metrics.ptPerEm;
               var p = Math.max(t - l, r + l);
               var h = Math.max(p / 500 * o, 2 * p - u);
               return A(e, h, true, a, i, n)
           };
           t.exports = {
               sizedDelim: w,
               customSizedDelim: A,
               leftRightDelim: N
           }
       }, {
           "./ParseError": 6,
           "./Style": 9,
           "./buildCommon": 10,
           "./fontMetrics": 17,
           "./symbols": 23,
           "./utils": 25
       }],
       15: [function(e, t, r) {
           var a = e("./unicodeRegexes");
           var i = e("./utils");
           var n = function(e) {
               e = e.slice();
               for (var t = e.length - 1; t >= 0; t--) {
                   if (!e[t]) {
                       e.splice(t, 1)
                   }
               }
               return e.join(" ")
           };
           function s(e, t, r) {
               this.classes = e || [];
               this.children = t || [];
               this.height = 0;
               this.depth = 0;
               this.maxFontSize = 0;
               this.style = {};
               this.attributes = {};
               if (r) {
                   if (r.style.isTight()) {
                       this.classes.push("mtight")
                   }
                   if (r.getColor()) {
                       this.style.color = r.getColor()
                   }
               }
           }
           s.prototype.setAttribute = function(e, t) {
               this.attributes[e] = t
           };
           s.prototype.tryCombine = function(e) {
               return false
           };
           s.prototype.toNode = function() {
               var e = document.createElement("span");
               e.className = n(this.classes);
               for (var t in this.style) {
                   if (Object.prototype.hasOwnProperty.call(this.style, t)) {
                       e.style[t] = this.style[t]
                   }
               }
               for (var r in this.attributes) {
                   if (Object.prototype.hasOwnProperty.call(this.attributes, r)) {
                       e.setAttribute(r, this.attributes[r])
                   }
               }
               for (var a = 0; a < this.children.length; a++) {
                   e.appendChild(this.children[a].toNode())
               }
               return e
           };
           s.prototype.toMarkup = function() {
               var e = "<span";
               if (this.classes.length) {
                   e += ' class="';
                   e += i.escape(n(this.classes));
                   e += '"'
               }
               var t = "";
               for (var r in this.style) {
                   if (this.style.hasOwnProperty(r)) {
                       t += i.hyphenate(r) + ":" + this.style[r] + ";"
                   }
               }
               if (t) {
                   e += ' style="' + i.escape(t) + '"'
               }
               for (var a in this.attributes) {
                   if (Object.prototype.hasOwnProperty.call(this.attributes, a)) {
                       e += " " + a + '="';
                       e += i.escape(this.attributes[a]);
                       e += '"'
                   }
               }
               e += ">";
               for (var s = 0; s < this.children.length; s++) {
                   e += this.children[s].toMarkup()
               }
               e += "</span>";
               return e
           };
           function l(e) {
               this.children = e || [];
               this.height = 0;
               this.depth = 0;
               this.maxFontSize = 0
           }
           l.prototype.toNode = function() {
               var e = document.createDocumentFragment();
               for (var t = 0; t < this.children.length; t++) {
                   e.appendChild(this.children[t].toNode())
               }
               return e
           };
           l.prototype.toMarkup = function() {
               var e = "";
               for (var t = 0; t < this.children.length; t++) {
                   e += this.children[t].toMarkup()
               }
               return e
           };
           var o = {
               "\xee": "\u0131\u0302",
               "\xef": "\u0131\u0308",
               "\xed": "\u0131\u0301",
               "\xec": "\u0131\u0300"
           };
           function u(e, t, r, i, n, s, l) {
               this.value = e || "";
               this.height = t || 0;
               this.depth = r || 0;
               this.italic = i || 0;
               this.skew = n || 0;
               this.classes = s || [];
               this.style = l || {};
               this.maxFontSize = 0;
               if (a.cjkRegex.test(e)) {
                   if (a.hangulRegex.test(e)) {
                       this.classes.push("hangul_fallback")
                   } else {
                       this.classes.push("cjk_fallback")
                   }
               }
               if (/[\xee\xef\xed\xec]/.test(this.value)) {
                   this.value = o[this.value]
               }
           }
           u.prototype.tryCombine = function(e) {
               if (!e || !(e instanceof u) || this.italic > 0 || n(this.classes) !== n(e.classes) || this.skew !== e.skew || this.maxFontSize !== e.maxFontSize) {
                   return false
               }
               for (var t in this.style) {
                   if (this.style.hasOwnProperty(t) && this.style[t] !== e.style[t]) {
                       return false
                   }
               }
               for (t in e.style) {
                   if (e.style.hasOwnProperty(t) && this.style[t] !== e.style[t]) {
                       return false
                   }
               }
               this.value += e.value;
               this.height = Math.max(this.height, e.height);
               this.depth = Math.max(this.depth, e.depth);
               this.italic = e.italic;
               return true
           };
           u.prototype.toNode = function() {
               var e = document.createTextNode(this.value);
               var t = null;
               if (this.italic > 0) {
                   t = document.createElement("span");
                   t.style.marginRight = this.italic + "em"
               }
               if (this.classes.length > 0) {
                   t = t || document.createElement("span");
                   t.className = n(this.classes)
               }
               for (var r in this.style) {
                   if (this.style.hasOwnProperty(r)) {
                       t = t || document.createElement("span");
                       t.style[r] = this.style[r]
                   }
               }
               if (t) {
                   t.appendChild(e);
                   return t
               } else {
                   return e
               }
           };
           u.prototype.toMarkup = function() {
               var e = false;
               var t = "<span";
               if (this.classes.length) {
                   e = true;
                   t += ' class="';
                   t += i.escape(n(this.classes));
                   t += '"'
               }
               var r = "";
               if (this.italic > 0) {
                   r += "margin-right:" + this.italic + "em;"
               }
               for (var a in this.style) {
                   if (this.style.hasOwnProperty(a)) {
                       r += i.hyphenate(a) + ":" + this.style[a] + ";"
                   }
               }
               if (r) {
                   e = true;
                   t += ' style="' + i.escape(r) + '"'
               }
               var s = i.escape(this.value);
               if (e) {
                   t += ">";
                   t += s;
                   t += "</span>";
                   return t
               } else {
                   return s
               }
           };
           t.exports = {
               span: s,
               documentFragment: l,
               symbolNode: u
           }
       }, {
           "./unicodeRegexes": 24,
           "./utils": 25
       }],
       16: [function(e, t, r) {
           var a = e("./parseData");
           var i = e("./ParseError");
           var n = e("./Style");
           var s = a.ParseNode;
           function l(e, t) {
               var r = [];
               var a = [r];
               var n = [];
               while (true) {
                   var l = e.parseExpression(false, null);
                   r.push(new s("ordgroup", l, e.mode));
                   var o = e.nextToken.text;
                   if (o === "&") {
                       e.consume()
                   } else if (o === "\\end") {
                       break
                   } else if (o === "\\\\" || o === "\\cr") {
                       var u = e.parseFunction();
                       n.push(u.value.size);
                       r = [];
                       a.push(r)
                   } else {
                       throw new i("Expected & or \\\\ or \\end", e.nextToken)
                   }
               }
               t.body = a;
               t.rowGaps = n;
               return new s(t.type, t, e.mode)
           }
           function o(e, r, a) {
               if (typeof e === "string") {
                   e = [e]
               }
               if (typeof r === "number") {
                   r = {
                       numArgs: r
                   }
               }
               var i = {
                   numArgs: r.numArgs || 0,
                   argTypes: r.argTypes,
                   greediness: 1,
                   allowedInText: !!r.allowedInText,
                   numOptionalArgs: r.numOptionalArgs || 0,
                   handler: a
               };
               for (var n = 0; n < e.length; ++n) {
                   t.exports[e[n]] = i
               }
           }
           o("array", {
               numArgs: 1
           }, function(e, t) {
               var r = t[0];
               r = r.value.map ? r.value : [r];
               var a = r.map(function(e) {
                   var t = e.value;
                   if ("lcr".indexOf(t) !== -1) {
                       return {
                           type: "align",
                           align: t
                       }
                   } else if (t === "|") {
                       return {
                           type: "separator",
                           separator: "|"
                       }
                   }
                   throw new i("Unknown column alignment: " + e.value, e)
               });
               var n = {
                   type: "array",
                   cols: a,
                   hskipBeforeAndAfter: true
               };
               n = l(e.parser, n);
               return n
           });
           o(["matrix", "pmatrix", "bmatrix", "Bmatrix", "vmatrix", "Vmatrix"], {}, function(e) {
               var t = {
                   matrix: null,
                   pmatrix: ["(", ")"],
                   bmatrix: ["[", "]"],
                   Bmatrix: ["\\{", "\\}"],
                   vmatrix: ["|", "|"],
                   Vmatrix: ["\\Vert", "\\Vert"]
               } [e.envName];
               var r = {
                   type: "array",
                   hskipBeforeAndAfter: false
               };
               r = l(e.parser, r);
               if (t) {
                   r = new s("leftright", {
                       body: [r],
                       left: t[0],
                       right: t[1]
                   }, e.mode)
               }
               return r
           });
           o("cases", {}, function(e) {
               var t = {
                   type: "array",
                   arraystretch: 1.2,
                   cols: [{
                       type: "align",
                       align: "l",
                       pregap: 0,
                       postgap: n.TEXT.metrics.quad
                   }, {
                       type: "align",
                       align: "l",
                       pregap: 0,
                       postgap: 0
                   }]
               };
               t = l(e.parser, t);
               t = new s("leftright", {
                   body: [t],
                   left: "\\{",
                   right: "."
               }, e.mode);
               return t
           });
           o("aligned", {}, function(e) {
               var t = {
                   type: "array",
                   cols: []
               };
               t = l(e.parser, t);
               var r = new s("ordgroup", [], e.mode);
               var a = 0;
               t.value.body.forEach(function(e) {
                   var t;
                   for (t = 1; t < e.length; t += 2) {
                       e[t].value.unshift(r)
                   }
                   if (a < e.length) {
                       a = e.length
                   }
               });
               for (var i = 0; i < a; ++i) {
                   var n = "r";
                   var o = 0;
                   if (i % 2 === 1) {
                       n = "l"
                   } else if (i > 0) {
                       o = 2
                   }
                   t.value.cols[i] = {
                       type: "align",
                       align: n,
                       pregap: o,
                       postgap: 0
                   }
               }
               return t
           })
       }, {
           "./ParseError": 6,
           "./Style": 9,
           "./parseData": 21
       }],
       17: [function(e, t, r) {
           var a = e("./Style");
           var i = e("./unicodeRegexes").cjkRegex;
           var n = {
               slant: [.25, .25, .25],
               space: [0, 0, 0],
               stretch: [0, 0, 0],
               shrink: [0, 0, 0],
               xHeight: [.431, .431, .431],
               quad: [1, 1.171, 1.472],
               extraSpace: [0, 0, 0],
               num1: [.677, .732, .925],
               num2: [.394, .384, .387],
               num3: [.444, .471, .504],
               denom1: [.686, .752, 1.025],
               denom2: [.345, .344, .532],
               sup1: [.413, .503, .504],
               sup2: [.363, .431, .404],
               sup3: [.289, .286, .294],
               sub1: [.15, .143, .2],
               sub2: [.247, .286, .4],
               supDrop: [.386, .353, .494],
               subDrop: [.05, .071, .1],
               delim1: [2.39, 1.7, 1.98],
               delim2: [1.01, 1.157, 1.42],
               axisHeight: [.25, .25, .25]
           };
           var s = 0;
           var l = 0;
           var o = 0;
           var u = 0;
           var p = .431;
           var h = 1;
           var c = 0;
           var m = .04;
           var f = .111;
           var v = .166;
           var d = .2;
           var g = .6;
           var y = .1;
           var x = 10;
           var b = 2 / x;
           var w = {
               defaultRuleThickness: m,
               bigOpSpacing1: f,
               bigOpSpacing2: v,
               bigOpSpacing3: d,
               bigOpSpacing4: g,
               bigOpSpacing5: y,
               ptPerEm: x,
               doubleRuleSep: b
           };
           var k = e("./fontMetricsData");
           var z = {
               "\xc0": "A",
               "\xc1": "A",
               "\xc2": "A",
               "\xc3": "A",
               "\xc4": "A",
               "\xc5": "A",
               "\xc6": "A",
               "\xc7": "C",
               "\xc8": "E",
               "\xc9": "E",
               "\xca": "E",
               "\xcb": "E",
               "\xcc": "I",
               "\xcd": "I",
               "\xce": "I",
               "\xcf": "I",
               "\xd0": "D",
               "\xd1": "N",
               "\xd2": "O",
               "\xd3": "O",
               "\xd4": "O",
               "\xd5": "O",
               "\xd6": "O",
               "\xd8": "O",
               "\xd9": "U",
               "\xda": "U",
               "\xdb": "U",
               "\xdc": "U",
               "\xdd": "Y",
               "\xde": "o",
               "\xdf": "B",
               "\xe0": "a",
               "\xe1": "a",
               "\xe2": "a",
               "\xe3": "a",
               "\xe4": "a",
               "\xe5": "a",
               "\xe6": "a",
               "\xe7": "c",
               "\xe8": "e",
               "\xe9": "e",
               "\xea": "e",
               "\xeb": "e",
               "\xec": "i",
               "\xed": "i",
               "\xee": "i",
               "\xef": "i",
               "\xf0": "d",
               "\xf1": "n",
               "\xf2": "o",
               "\xf3": "o",
               "\xf4": "o",
               "\xf5": "o",
               "\xf6": "o",
               "\xf8": "o",
               "\xf9": "u",
               "\xfa": "u",
               "\xfb": "u",
               "\xfc": "u",
               "\xfd": "y",
               "\xfe": "o",
               "\xff": "y",
               "\u0410": "A",
               "\u0411": "B",
               "\u0412": "B",
               "\u0413": "F",
               "\u0414": "A",
               "\u0415": "E",
               "\u0416": "K",
               "\u0417": "3",
               "\u0418": "N",
               "\u0419": "N",
               "\u041a": "K",
               "\u041b": "N",
               "\u041c": "M",
               "\u041d": "H",
               "\u041e": "O",
               "\u041f": "N",
               "\u0420": "P",
               "\u0421": "C",
               "\u0422": "T",
               "\u0423": "y",
               "\u0424": "O",
               "\u0425": "X",
               "\u0426": "U",
               "\u0427": "h",
               "\u0428": "W",
               "\u0429": "W",
               "\u042a": "B",
               "\u042b": "X",
               "\u042c": "B",
               "\u042d": "3",
               "\u042e": "X",
               "\u042f": "R",
               "\u0430": "a",
               "\u0431": "b",
               "\u0432": "a",
               "\u0433": "r",
               "\u0434": "y",
               "\u0435": "e",
               "\u0436": "m",
               "\u0437": "e",
               "\u0438": "n",
               "\u0439": "n",
               "\u043a": "n",
               "\u043b": "n",
               "\u043c": "m",
               "\u043d": "n",
               "\u043e": "o",
               "\u043f": "n",
               "\u0440": "p",
               "\u0441": "c",
               "\u0442": "o",
               "\u0443": "y",
               "\u0444": "b",
               "\u0445": "x",
               "\u0446": "n",
               "\u0447": "n",
               "\u0448": "w",
               "\u0449": "w",
               "\u044a": "a",
               "\u044b": "m",
               "\u044c": "a",
               "\u044d": "e",
               "\u044e": "m",
               "\u044f": "r"
           };
           var S = function(e, t) {
               var r = e.charCodeAt(0);
               if (e[0] in z) {
                   r = z[e[0]].charCodeAt(0)
               } else if (i.test(e[0])) {
                   r = "M".charCodeAt(0)
               }
               var a = k[t][r];
               if (a) {
                   return {
                       depth: a[0],
                       height: a[1],
                       italic: a[2],
                       skew: a[3],
                       width: a[4]
                   }
               }
           };
           t.exports = {
               metrics: w,
               sigmas: n,
               getCharacterMetrics: S
           }
       }, {
           "./Style": 9,
           "./fontMetricsData": 18,
           "./unicodeRegexes": 24
       }],
       18: [function(e, t, r) {
           t.exports = {
               "AMS-Regular": {
                   65: [0, .68889, 0, 0],
                   66: [0, .68889, 0, 0],
                   67: [0, .68889, 0, 0],
                   68: [0, .68889, 0, 0],
                   69: [0, .68889, 0, 0],
                   70: [0, .68889, 0, 0],
                   71: [0, .68889, 0, 0],
                   72: [0, .68889, 0, 0],
                   73: [0, .68889, 0, 0],
                   74: [.16667, .68889, 0, 0],
                   75: [0, .68889, 0, 0],
                   76: [0, .68889, 0, 0],
                   77: [0, .68889, 0, 0],
                   78: [0, .68889, 0, 0],
                   79: [.16667, .68889, 0, 0],
                   80: [0, .68889, 0, 0],
                   81: [.16667, .68889, 0, 0],
                   82: [0, .68889, 0, 0],
                   83: [0, .68889, 0, 0],
                   84: [0, .68889, 0, 0],
                   85: [0, .68889, 0, 0],
                   86: [0, .68889, 0, 0],
                   87: [0, .68889, 0, 0],
                   88: [0, .68889, 0, 0],
                   89: [0, .68889, 0, 0],
                   90: [0, .68889, 0, 0],
                   107: [0, .68889, 0, 0],
                   165: [0, .675, .025, 0],
                   174: [.15559, .69224, 0, 0],
                   240: [0, .68889, 0, 0],
                   295: [0, .68889, 0, 0],
                   710: [0, .825, 0, 0],
                   732: [0, .9, 0, 0],
                   770: [0, .825, 0, 0],
                   771: [0, .9, 0, 0],
                   989: [.08167, .58167, 0, 0],
                   1008: [0, .43056, .04028, 0],
                   8245: [0, .54986, 0, 0],
                   8463: [0, .68889, 0, 0],
                   8487: [0, .68889, 0, 0],
                   8498: [0, .68889, 0, 0],
                   8502: [0, .68889, 0, 0],
                   8503: [0, .68889, 0, 0],
                   8504: [0, .68889, 0, 0],
                   8513: [0, .68889, 0, 0],
                   8592: [-.03598, .46402, 0, 0],
                   8594: [-.03598, .46402, 0, 0],
                   8602: [-.13313, .36687, 0, 0],
                   8603: [-.13313, .36687, 0, 0],
                   8606: [.01354, .52239, 0, 0],
                   8608: [.01354, .52239, 0, 0],
                   8610: [.01354, .52239, 0, 0],
                   8611: [.01354, .52239, 0, 0],
                   8619: [0, .54986, 0, 0],
                   8620: [0, .54986, 0, 0],
                   8621: [-.13313, .37788, 0, 0],
                   8622: [-.13313, .36687, 0, 0],
                   8624: [0, .69224, 0, 0],
                   8625: [0, .69224, 0, 0],
                   8630: [0, .43056, 0, 0],
                   8631: [0, .43056, 0, 0],
                   8634: [.08198, .58198, 0, 0],
                   8635: [.08198, .58198, 0, 0],
                   8638: [.19444, .69224, 0, 0],
                   8639: [.19444, .69224, 0, 0],
                   8642: [.19444, .69224, 0, 0],
                   8643: [.19444, .69224, 0, 0],
                   8644: [.1808, .675, 0, 0],
                   8646: [.1808, .675, 0, 0],
                   8647: [.1808, .675, 0, 0],
                   8648: [.19444, .69224, 0, 0],
                   8649: [.1808, .675, 0, 0],
                   8650: [.19444, .69224, 0, 0],
                   8651: [.01354, .52239, 0, 0],
                   8652: [.01354, .52239, 0, 0],
                   8653: [-.13313, .36687, 0, 0],
                   8654: [-.13313, .36687, 0, 0],
                   8655: [-.13313, .36687, 0, 0],
                   8666: [.13667, .63667, 0, 0],
                   8667: [.13667, .63667, 0, 0],
                   8669: [-.13313, .37788, 0, 0],
                   8672: [-.064, .437, 0, 0],
                   8674: [-.064, .437, 0, 0],
                   8705: [0, .825, 0, 0],
                   8708: [0, .68889, 0, 0],
                   8709: [.08167, .58167, 0, 0],
                   8717: [0, .43056, 0, 0],
                   8722: [-.03598, .46402, 0, 0],
                   8724: [.08198, .69224, 0, 0],
                   8726: [.08167, .58167, 0, 0],
                   8733: [0, .69224, 0, 0],
                   8736: [0, .69224, 0, 0],
                   8737: [0, .69224, 0, 0],
                   8738: [.03517, .52239, 0, 0],
                   8739: [.08167, .58167, 0, 0],
                   8740: [.25142, .74111, 0, 0],
                   8741: [.08167, .58167, 0, 0],
                   8742: [.25142, .74111, 0, 0],
                   8756: [0, .69224, 0, 0],
                   8757: [0, .69224, 0, 0],
                   8764: [-.13313, .36687, 0, 0],
                   8765: [-.13313, .37788, 0, 0],
                   8769: [-.13313, .36687, 0, 0],
                   8770: [-.03625, .46375, 0, 0],
                   8774: [.30274, .79383, 0, 0],
                   8776: [-.01688, .48312, 0, 0],
                   8778: [.08167, .58167, 0, 0],
                   8782: [.06062, .54986, 0, 0],
                   8783: [.06062, .54986, 0, 0],
                   8785: [.08198, .58198, 0, 0],
                   8786: [.08198, .58198, 0, 0],
                   8787: [.08198, .58198, 0, 0],
                   8790: [0, .69224, 0, 0],
                   8791: [.22958, .72958, 0, 0],
                   8796: [.08198, .91667, 0, 0],
                   8806: [.25583, .75583, 0, 0],
                   8807: [.25583, .75583, 0, 0],
                   8808: [.25142, .75726, 0, 0],
                   8809: [.25142, .75726, 0, 0],
                   8812: [.25583, .75583, 0, 0],
                   8814: [.20576, .70576, 0, 0],
                   8815: [.20576, .70576, 0, 0],
                   8816: [.30274, .79383, 0, 0],
                   8817: [.30274, .79383, 0, 0],
                   8818: [.22958, .72958, 0, 0],
                   8819: [.22958, .72958, 0, 0],
                   8822: [.1808, .675, 0, 0],
                   8823: [.1808, .675, 0, 0],
                   8828: [.13667, .63667, 0, 0],
                   8829: [.13667, .63667, 0, 0],
                   8830: [.22958, .72958, 0, 0],
                   8831: [.22958, .72958, 0, 0],
                   8832: [.20576, .70576, 0, 0],
                   8833: [.20576, .70576, 0, 0],
                   8840: [.30274, .79383, 0, 0],
                   8841: [.30274, .79383, 0, 0],
                   8842: [.13597, .63597, 0, 0],
                   8843: [.13597, .63597, 0, 0],
                   8847: [.03517, .54986, 0, 0],
                   8848: [.03517, .54986, 0, 0],
                   8858: [.08198, .58198, 0, 0],
                   8859: [.08198, .58198, 0, 0],
                   8861: [.08198, .58198, 0, 0],
                   8862: [0, .675, 0, 0],
                   8863: [0, .675, 0, 0],
                   8864: [0, .675, 0, 0],
                   8865: [0, .675, 0, 0],
                   8872: [0, .69224, 0, 0],
                   8873: [0, .69224, 0, 0],
                   8874: [0, .69224, 0, 0],
                   8876: [0, .68889, 0, 0],
                   8877: [0, .68889, 0, 0],
                   8878: [0, .68889, 0, 0],
                   8879: [0, .68889, 0, 0],
                   8882: [.03517, .54986, 0, 0],
                   8883: [.03517, .54986, 0, 0],
                   8884: [.13667, .63667, 0, 0],
                   8885: [.13667, .63667, 0, 0],
                   8888: [0, .54986, 0, 0],
                   8890: [.19444, .43056, 0, 0],
                   8891: [.19444, .69224, 0, 0],
                   8892: [.19444, .69224, 0, 0],
                   8901: [0, .54986, 0, 0],
                   8903: [.08167, .58167, 0, 0],
                   8905: [.08167, .58167, 0, 0],
                   8906: [.08167, .58167, 0, 0],
                   8907: [0, .69224, 0, 0],
                   8908: [0, .69224, 0, 0],
                   8909: [-.03598, .46402, 0, 0],
                   8910: [0, .54986, 0, 0],
                   8911: [0, .54986, 0, 0],
                   8912: [.03517, .54986, 0, 0],
                   8913: [.03517, .54986, 0, 0],
                   8914: [0, .54986, 0, 0],
                   8915: [0, .54986, 0, 0],
                   8916: [0, .69224, 0, 0],
                   8918: [.0391, .5391, 0, 0],
                   8919: [.0391, .5391, 0, 0],
                   8920: [.03517, .54986, 0, 0],
                   8921: [.03517, .54986, 0, 0],
                   8922: [.38569, .88569, 0, 0],
                   8923: [.38569, .88569, 0, 0],
                   8926: [.13667, .63667, 0, 0],
                   8927: [.13667, .63667, 0, 0],
                   8928: [.30274, .79383, 0, 0],
                   8929: [.30274, .79383, 0, 0],
                   8934: [.23222, .74111, 0, 0],
                   8935: [.23222, .74111, 0, 0],
                   8936: [.23222, .74111, 0, 0],
                   8937: [.23222, .74111, 0, 0],
                   8938: [.20576, .70576, 0, 0],
                   8939: [.20576, .70576, 0, 0],
                   8940: [.30274, .79383, 0, 0],
                   8941: [.30274, .79383, 0, 0],
                   8994: [.19444, .69224, 0, 0],
                   8995: [.19444, .69224, 0, 0],
                   9416: [.15559, .69224, 0, 0],
                   9484: [0, .69224, 0, 0],
                   9488: [0, .69224, 0, 0],
                   9492: [0, .37788, 0, 0],
                   9496: [0, .37788, 0, 0],
                   9585: [.19444, .68889, 0, 0],
                   9586: [.19444, .74111, 0, 0],
                   9632: [0, .675, 0, 0],
                   9633: [0, .675, 0, 0],
                   9650: [0, .54986, 0, 0],
                   9651: [0, .54986, 0, 0],
                   9654: [.03517, .54986, 0, 0],
                   9660: [0, .54986, 0, 0],
                   9661: [0, .54986, 0, 0],
                   9664: [.03517, .54986, 0, 0],
                   9674: [.11111, .69224, 0, 0],
                   9733: [.19444, .69224, 0, 0],
                   10003: [0, .69224, 0, 0],
                   10016: [0, .69224, 0, 0],
                   10731: [.11111, .69224, 0, 0],
                   10846: [.19444, .75583, 0, 0],
                   10877: [.13667, .63667, 0, 0],
                   10878: [.13667, .63667, 0, 0],
                   10885: [.25583, .75583, 0, 0],
                   10886: [.25583, .75583, 0, 0],
                   10887: [.13597, .63597, 0, 0],
                   10888: [.13597, .63597, 0, 0],
                   10889: [.26167, .75726, 0, 0],
                   10890: [.26167, .75726, 0, 0],
                   10891: [.48256, .98256, 0, 0],
                   10892: [.48256, .98256, 0, 0],
                   10901: [.13667, .63667, 0, 0],
                   10902: [.13667, .63667, 0, 0],
                   10933: [.25142, .75726, 0, 0],
                   10934: [.25142, .75726, 0, 0],
                   10935: [.26167, .75726, 0, 0],
                   10936: [.26167, .75726, 0, 0],
                   10937: [.26167, .75726, 0, 0],
                   10938: [.26167, .75726, 0, 0],
                   10949: [.25583, .75583, 0, 0],
                   10950: [.25583, .75583, 0, 0],
                   10955: [.28481, .79383, 0, 0],
                   10956: [.28481, .79383, 0, 0],
                   57350: [.08167, .58167, 0, 0],
                   57351: [.08167, .58167, 0, 0],
                   57352: [.08167, .58167, 0, 0],
                   57353: [0, .43056, .04028, 0],
                   57356: [.25142, .75726, 0, 0],
                   57357: [.25142, .75726, 0, 0],
                   57358: [.41951, .91951, 0, 0],
                   57359: [.30274, .79383, 0, 0],
                   57360: [.30274, .79383, 0, 0],
                   57361: [.41951, .91951, 0, 0],
                   57366: [.25142, .75726, 0, 0],
                   57367: [.25142, .75726, 0, 0],
                   57368: [.25142, .75726, 0, 0],
                   57369: [.25142, .75726, 0, 0],
                   57370: [.13597, .63597, 0, 0],
                   57371: [.13597, .63597, 0, 0]
               },
               "Caligraphic-Regular": {
                   48: [0, .43056, 0, 0],
                   49: [0, .43056, 0, 0],
                   50: [0, .43056, 0, 0],
                   51: [.19444, .43056, 0, 0],
                   52: [.19444, .43056, 0, 0],
                   53: [.19444, .43056, 0, 0],
                   54: [0, .64444, 0, 0],
                   55: [.19444, .43056, 0, 0],
                   56: [0, .64444, 0, 0],
                   57: [.19444, .43056, 0, 0],
                   65: [0, .68333, 0, .19445],
                   66: [0, .68333, .03041, .13889],
                   67: [0, .68333, .05834, .13889],
                   68: [0, .68333, .02778, .08334],
                   69: [0, .68333, .08944, .11111],
                   70: [0, .68333, .09931, .11111],
                   71: [.09722, .68333, .0593, .11111],
                   72: [0, .68333, .00965, .11111],
                   73: [0, .68333, .07382, 0],
                   74: [.09722, .68333, .18472, .16667],
                   75: [0, .68333, .01445, .05556],
                   76: [0, .68333, 0, .13889],
                   77: [0, .68333, 0, .13889],
                   78: [0, .68333, .14736, .08334],
                   79: [0, .68333, .02778, .11111],
                   80: [0, .68333, .08222, .08334],
                   81: [.09722, .68333, 0, .11111],
                   82: [0, .68333, 0, .08334],
                   83: [0, .68333, .075, .13889],
                   84: [0, .68333, .25417, 0],
                   85: [0, .68333, .09931, .08334],
                   86: [0, .68333, .08222, 0],
                   87: [0, .68333, .08222, .08334],
                   88: [0, .68333, .14643, .13889],
                   89: [.09722, .68333, .08222, .08334],
                   90: [0, .68333, .07944, .13889]
               },
               "Fraktur-Regular": {
                   33: [0, .69141, 0, 0],
                   34: [0, .69141, 0, 0],
                   38: [0, .69141, 0, 0],
                   39: [0, .69141, 0, 0],
                   40: [.24982, .74947, 0, 0],
                   41: [.24982, .74947, 0, 0],
                   42: [0, .62119, 0, 0],
                   43: [.08319, .58283, 0, 0],
                   44: [0, .10803, 0, 0],
                   45: [.08319, .58283, 0, 0],
                   46: [0, .10803, 0, 0],
                   47: [.24982, .74947, 0, 0],
                   48: [0, .47534, 0, 0],
                   49: [0, .47534, 0, 0],
                   50: [0, .47534, 0, 0],
                   51: [.18906, .47534, 0, 0],
                   52: [.18906, .47534, 0, 0],
                   53: [.18906, .47534, 0, 0],
                   54: [0, .69141, 0, 0],
                   55: [.18906, .47534, 0, 0],
                   56: [0, .69141, 0, 0],
                   57: [.18906, .47534, 0, 0],
                   58: [0, .47534, 0, 0],
                   59: [.12604, .47534, 0, 0],
                   61: [-.13099, .36866, 0, 0],
                   63: [0, .69141, 0, 0],
                   65: [0, .69141, 0, 0],
                   66: [0, .69141, 0, 0],
                   67: [0, .69141, 0, 0],
                   68: [0, .69141, 0, 0],
                   69: [0, .69141, 0, 0],
                   70: [.12604, .69141, 0, 0],
                   71: [0, .69141, 0, 0],
                   72: [.06302, .69141, 0, 0],
                   73: [0, .69141, 0, 0],
                   74: [.12604, .69141, 0, 0],
                   75: [0, .69141, 0, 0],
                   76: [0, .69141, 0, 0],
                   77: [0, .69141, 0, 0],
                   78: [0, .69141, 0, 0],
                   79: [0, .69141, 0, 0],
                   80: [.18906, .69141, 0, 0],
                   81: [.03781, .69141, 0, 0],
                   82: [0, .69141, 0, 0],
                   83: [0, .69141, 0, 0],
                   84: [0, .69141, 0, 0],
                   85: [0, .69141, 0, 0],
                   86: [0, .69141, 0, 0],
                   87: [0, .69141, 0, 0],
                   88: [0, .69141, 0, 0],
                   89: [.18906, .69141, 0, 0],
                   90: [.12604, .69141, 0, 0],
                   91: [.24982, .74947, 0, 0],
                   93: [.24982, .74947, 0, 0],
                   94: [0, .69141, 0, 0],
                   97: [0, .47534, 0, 0],
                   98: [0, .69141, 0, 0],
                   99: [0, .47534, 0, 0],
                   100: [0, .62119, 0, 0],
                   101: [0, .47534, 0, 0],
                   102: [.18906, .69141, 0, 0],
                   103: [.18906, .47534, 0, 0],
                   104: [.18906, .69141, 0, 0],
                   105: [0, .69141, 0, 0],
                   106: [0, .69141, 0, 0],
                   107: [0, .69141, 0, 0],
                   108: [0, .69141, 0, 0],
                   109: [0, .47534, 0, 0],
                   110: [0, .47534, 0, 0],
                   111: [0, .47534, 0, 0],
                   112: [.18906, .52396, 0, 0],
                   113: [.18906, .47534, 0, 0],
                   114: [0, .47534, 0, 0],
                   115: [0, .47534, 0, 0],
                   116: [0, .62119, 0, 0],
                   117: [0, .47534, 0, 0],
                   118: [0, .52396, 0, 0],
                   119: [0, .52396, 0, 0],
                   120: [.18906, .47534, 0, 0],
                   121: [.18906, .47534, 0, 0],
                   122: [.18906, .47534, 0, 0],
                   8216: [0, .69141, 0, 0],
                   8217: [0, .69141, 0, 0],
                   58112: [0, .62119, 0, 0],
                   58113: [0, .62119, 0, 0],
                   58114: [.18906, .69141, 0, 0],
                   58115: [.18906, .69141, 0, 0],
                   58116: [.18906, .47534, 0, 0],
                   58117: [0, .69141, 0, 0],
                   58118: [0, .62119, 0, 0],
                   58119: [0, .47534, 0, 0]
               },
               "Main-Bold": {
                   33: [0, .69444, 0, 0],
                   34: [0, .69444, 0, 0],
                   35: [.19444, .69444, 0, 0],
                   36: [.05556, .75, 0, 0],
                   37: [.05556, .75, 0, 0],
                   38: [0, .69444, 0, 0],
                   39: [0, .69444, 0, 0],
                   40: [.25, .75, 0, 0],
                   41: [.25, .75, 0, 0],
                   42: [0, .75, 0, 0],
                   43: [.13333, .63333, 0, 0],
                   44: [.19444, .15556, 0, 0],
                   45: [0, .44444, 0, 0],
                   46: [0, .15556, 0, 0],
                   47: [.25, .75, 0, 0],
                   48: [0, .64444, 0, 0],
                   49: [0, .64444, 0, 0],
                   50: [0, .64444, 0, 0],
                   51: [0, .64444, 0, 0],
                   52: [0, .64444, 0, 0],
                   53: [0, .64444, 0, 0],
                   54: [0, .64444, 0, 0],
                   55: [0, .64444, 0, 0],
                   56: [0, .64444, 0, 0],
                   57: [0, .64444, 0, 0],
                   58: [0, .44444, 0, 0],
                   59: [.19444, .44444, 0, 0],
                   60: [.08556, .58556, 0, 0],
                   61: [-.10889, .39111, 0, 0],
                   62: [.08556, .58556, 0, 0],
                   63: [0, .69444, 0, 0],
                   64: [0, .69444, 0, 0],
                   65: [0, .68611, 0, 0],
                   66: [0, .68611, 0, 0],
                   67: [0, .68611, 0, 0],
                   68: [0, .68611, 0, 0],
                   69: [0, .68611, 0, 0],
                   70: [0, .68611, 0, 0],
                   71: [0, .68611, 0, 0],
                   72: [0, .68611, 0, 0],
                   73: [0, .68611, 0, 0],
                   74: [0, .68611, 0, 0],
                   75: [0, .68611, 0, 0],
                   76: [0, .68611, 0, 0],
                   77: [0, .68611, 0, 0],
                   78: [0, .68611, 0, 0],
                   79: [0, .68611, 0, 0],
                   80: [0, .68611, 0, 0],
                   81: [.19444, .68611, 0, 0],
                   82: [0, .68611, 0, 0],
                   83: [0, .68611, 0, 0],
                   84: [0, .68611, 0, 0],
                   85: [0, .68611, 0, 0],
                   86: [0, .68611, .01597, 0],
                   87: [0, .68611, .01597, 0],
                   88: [0, .68611, 0, 0],
                   89: [0, .68611, .02875, 0],
                   90: [0, .68611, 0, 0],
                   91: [.25, .75, 0, 0],
                   92: [.25, .75, 0, 0],
                   93: [.25, .75, 0, 0],
                   94: [0, .69444, 0, 0],
                   95: [.31, .13444, .03194, 0],
                   96: [0, .69444, 0, 0],
                   97: [0, .44444, 0, 0],
                   98: [0, .69444, 0, 0],
                   99: [0, .44444, 0, 0],
                   100: [0, .69444, 0, 0],
                   101: [0, .44444, 0, 0],
                   102: [0, .69444, .10903, 0],
                   103: [.19444, .44444, .01597, 0],
                   104: [0, .69444, 0, 0],
                   105: [0, .69444, 0, 0],
                   106: [.19444, .69444, 0, 0],
                   107: [0, .69444, 0, 0],
                   108: [0, .69444, 0, 0],
                   109: [0, .44444, 0, 0],
                   110: [0, .44444, 0, 0],
                   111: [0, .44444, 0, 0],
                   112: [.19444, .44444, 0, 0],
                   113: [.19444, .44444, 0, 0],
                   114: [0, .44444, 0, 0],
                   115: [0, .44444, 0, 0],
                   116: [0, .63492, 0, 0],
                   117: [0, .44444, 0, 0],
                   118: [0, .44444, .01597, 0],
                   119: [0, .44444, .01597, 0],
                   120: [0, .44444, 0, 0],
                   121: [.19444, .44444, .01597, 0],
                   122: [0, .44444, 0, 0],
                   123: [.25, .75, 0, 0],
                   124: [.25, .75, 0, 0],
                   125: [.25, .75, 0, 0],
                   126: [.35, .34444, 0, 0],
                   168: [0, .69444, 0, 0],
                   172: [0, .44444, 0, 0],
                   175: [0, .59611, 0, 0],
                   176: [0, .69444, 0, 0],
                   177: [.13333, .63333, 0, 0],
                   180: [0, .69444, 0, 0],
                   215: [.13333, .63333, 0, 0],
                   247: [.13333, .63333, 0, 0],
                   305: [0, .44444, 0, 0],
                   567: [.19444, .44444, 0, 0],
                   710: [0, .69444, 0, 0],
                   711: [0, .63194, 0, 0],
                   713: [0, .59611, 0, 0],
                   714: [0, .69444, 0, 0],
                   715: [0, .69444, 0, 0],
                   728: [0, .69444, 0, 0],
                   729: [0, .69444, 0, 0],
                   730: [0, .69444, 0, 0],
                   732: [0, .69444, 0, 0],
                   768: [0, .69444, 0, 0],
                   769: [0, .69444, 0, 0],
                   770: [0, .69444, 0, 0],
                   771: [0, .69444, 0, 0],
                   772: [0, .59611, 0, 0],
                   774: [0, .69444, 0, 0],
                   775: [0, .69444, 0, 0],
                   776: [0, .69444, 0, 0],
                   778: [0, .69444, 0, 0],
                   779: [0, .69444, 0, 0],
                   780: [0, .63194, 0, 0],
                   824: [.19444, .69444, 0, 0],
                   915: [0, .68611, 0, 0],
                   916: [0, .68611, 0, 0],
                   920: [0, .68611, 0, 0],
                   923: [0, .68611, 0, 0],
                   926: [0, .68611, 0, 0],
                   928: [0, .68611, 0, 0],
                   931: [0, .68611, 0, 0],
                   933: [0, .68611, 0, 0],
                   934: [0, .68611, 0, 0],
                   936: [0, .68611, 0, 0],
                   937: [0, .68611, 0, 0],
                   8211: [0, .44444, .03194, 0],
                   8212: [0, .44444, .03194, 0],
                   8216: [0, .69444, 0, 0],
                   8217: [0, .69444, 0, 0],
                   8220: [0, .69444, 0, 0],
                   8221: [0, .69444, 0, 0],
                   8224: [.19444, .69444, 0, 0],
                   8225: [.19444, .69444, 0, 0],
                   8242: [0, .55556, 0, 0],
                   8407: [0, .72444, .15486, 0],
                   8463: [0, .69444, 0, 0],
                   8465: [0, .69444, 0, 0],
                   8467: [0, .69444, 0, 0],
                   8472: [.19444, .44444, 0, 0],
                   8476: [0, .69444, 0, 0],
                   8501: [0, .69444, 0, 0],
                   8592: [-.10889, .39111, 0, 0],
                   8593: [.19444, .69444, 0, 0],
                   8594: [-.10889, .39111, 0, 0],
                   8595: [.19444, .69444, 0, 0],
                   8596: [-.10889, .39111, 0, 0],
                   8597: [.25, .75, 0, 0],
                   8598: [.19444, .69444, 0, 0],
                   8599: [.19444, .69444, 0, 0],
                   8600: [.19444, .69444, 0, 0],
                   8601: [.19444, .69444, 0, 0],
                   8636: [-.10889, .39111, 0, 0],
                   8637: [-.10889, .39111, 0, 0],
                   8640: [-.10889, .39111, 0, 0],
                   8641: [-.10889, .39111, 0, 0],
                   8656: [-.10889, .39111, 0, 0],
                   8657: [.19444, .69444, 0, 0],
                   8658: [-.10889, .39111, 0, 0],
                   8659: [.19444, .69444, 0, 0],
                   8660: [-.10889, .39111, 0, 0],
                   8661: [.25, .75, 0, 0],
                   8704: [0, .69444, 0, 0],
                   8706: [0, .69444, .06389, 0],
                   8707: [0, .69444, 0, 0],
                   8709: [.05556, .75, 0, 0],
                   8711: [0, .68611, 0, 0],
                   8712: [.08556, .58556, 0, 0],
                   8715: [.08556, .58556, 0, 0],
                   8722: [.13333, .63333, 0, 0],
                   8723: [.13333, .63333, 0, 0],
                   8725: [.25, .75, 0, 0],
                   8726: [.25, .75, 0, 0],
                   8727: [-.02778, .47222, 0, 0],
                   8728: [-.02639, .47361, 0, 0],
                   8729: [-.02639, .47361, 0, 0],
                   8730: [.18, .82, 0, 0],
                   8733: [0, .44444, 0, 0],
                   8734: [0, .44444, 0, 0],
                   8736: [0, .69224, 0, 0],
                   8739: [.25, .75, 0, 0],
                   8741: [.25, .75, 0, 0],
                   8743: [0, .55556, 0, 0],
                   8744: [0, .55556, 0, 0],
                   8745: [0, .55556, 0, 0],
                   8746: [0, .55556, 0, 0],
                   8747: [.19444, .69444, .12778, 0],
                   8764: [-.10889, .39111, 0, 0],
                   8768: [.19444, .69444, 0, 0],
                   8771: [.00222, .50222, 0, 0],
                   8776: [.02444, .52444, 0, 0],
                   8781: [.00222, .50222, 0, 0],
                   8801: [.00222, .50222, 0, 0],
                   8804: [.19667, .69667, 0, 0],
                   8805: [.19667, .69667, 0, 0],
                   8810: [.08556, .58556, 0, 0],
                   8811: [.08556, .58556, 0, 0],
                   8826: [.08556, .58556, 0, 0],
                   8827: [.08556, .58556, 0, 0],
                   8834: [.08556, .58556, 0, 0],
                   8835: [.08556, .58556, 0, 0],
                   8838: [.19667, .69667, 0, 0],
                   8839: [.19667, .69667, 0, 0],
                   8846: [0, .55556, 0, 0],
                   8849: [.19667, .69667, 0, 0],
                   8850: [.19667, .69667, 0, 0],
                   8851: [0, .55556, 0, 0],
                   8852: [0, .55556, 0, 0],
                   8853: [.13333, .63333, 0, 0],
                   8854: [.13333, .63333, 0, 0],
                   8855: [.13333, .63333, 0, 0],
                   8856: [.13333, .63333, 0, 0],
                   8857: [.13333, .63333, 0, 0],
                   8866: [0, .69444, 0, 0],
                   8867: [0, .69444, 0, 0],
                   8868: [0, .69444, 0, 0],
                   8869: [0, .69444, 0, 0],
                   8900: [-.02639, .47361, 0, 0],
                   8901: [-.02639, .47361, 0, 0],
                   8902: [-.02778, .47222, 0, 0],
                   8968: [.25, .75, 0, 0],
                   8969: [.25, .75, 0, 0],
                   8970: [.25, .75, 0, 0],
                   8971: [.25, .75, 0, 0],
                   8994: [-.13889, .36111, 0, 0],
                   8995: [-.13889, .36111, 0, 0],
                   9651: [.19444, .69444, 0, 0],
                   9657: [-.02778, .47222, 0, 0],
                   9661: [.19444, .69444, 0, 0],
                   9667: [-.02778, .47222, 0, 0],
                   9711: [.19444, .69444, 0, 0],
                   9824: [.12963, .69444, 0, 0],
                   9825: [.12963, .69444, 0, 0],
                   9826: [.12963, .69444, 0, 0],
                   9827: [.12963, .69444, 0, 0],
                   9837: [0, .75, 0, 0],
                   9838: [.19444, .69444, 0, 0],
                   9839: [.19444, .69444, 0, 0],
                   10216: [.25, .75, 0, 0],
                   10217: [.25, .75, 0, 0],
                   10815: [0, .68611, 0, 0],
                   10927: [.19667, .69667, 0, 0],
                   10928: [.19667, .69667, 0, 0]
               },
               "Main-Italic": {
                   33: [0, .69444, .12417, 0],
                   34: [0, .69444, .06961, 0],
                   35: [.19444, .69444, .06616, 0],
                   37: [.05556, .75, .13639, 0],
                   38: [0, .69444, .09694, 0],
                   39: [0, .69444, .12417, 0],
                   40: [.25, .75, .16194, 0],
                   41: [.25, .75, .03694, 0],
                   42: [0, .75, .14917, 0],
                   43: [.05667, .56167, .03694, 0],
                   44: [.19444, .10556, 0, 0],
                   45: [0, .43056, .02826, 0],
                   46: [0, .10556, 0, 0],
                   47: [.25, .75, .16194, 0],
                   48: [0, .64444, .13556, 0],
                   49: [0, .64444, .13556, 0],
                   50: [0, .64444, .13556, 0],
                   51: [0, .64444, .13556, 0],
                   52: [.19444, .64444, .13556, 0],
                   53: [0, .64444, .13556, 0],
                   54: [0, .64444, .13556, 0],
                   55: [.19444, .64444, .13556, 0],
                   56: [0, .64444, .13556, 0],
                   57: [0, .64444, .13556, 0],
                   58: [0, .43056, .0582, 0],
                   59: [.19444, .43056, .0582, 0],
                   61: [-.13313, .36687, .06616, 0],
                   63: [0, .69444, .1225, 0],
                   64: [0, .69444, .09597, 0],
                   65: [0, .68333, 0, 0],
                   66: [0, .68333, .10257, 0],
                   67: [0, .68333, .14528, 0],
                   68: [0, .68333, .09403, 0],
                   69: [0, .68333, .12028, 0],
                   70: [0, .68333, .13305, 0],
                   71: [0, .68333, .08722, 0],
                   72: [0, .68333, .16389, 0],
                   73: [0, .68333, .15806, 0],
                   74: [0, .68333, .14028, 0],
                   75: [0, .68333, .14528, 0],
                   76: [0, .68333, 0, 0],
                   77: [0, .68333, .16389, 0],
                   78: [0, .68333, .16389, 0],
                   79: [0, .68333, .09403, 0],
                   80: [0, .68333, .10257, 0],
                   81: [.19444, .68333, .09403, 0],
                   82: [0, .68333, .03868, 0],
                   83: [0, .68333, .11972, 0],
                   84: [0, .68333, .13305, 0],
                   85: [0, .68333, .16389, 0],
                   86: [0, .68333, .18361, 0],
                   87: [0, .68333, .18361, 0],
                   88: [0, .68333, .15806, 0],
                   89: [0, .68333, .19383, 0],
                   90: [0, .68333, .14528, 0],
                   91: [.25, .75, .1875, 0],
                   93: [.25, .75, .10528, 0],
                   94: [0, .69444, .06646, 0],
                   95: [.31, .12056, .09208, 0],
                   97: [0, .43056, .07671, 0],
                   98: [0, .69444, .06312, 0],
                   99: [0, .43056, .05653, 0],
                   100: [0, .69444, .10333, 0],
                   101: [0, .43056, .07514, 0],
                   102: [.19444, .69444, .21194, 0],
                   103: [.19444, .43056, .08847, 0],
                   104: [0, .69444, .07671, 0],
                   105: [0, .65536, .1019, 0],
                   106: [.19444, .65536, .14467, 0],
                   107: [0, .69444, .10764, 0],
                   108: [0, .69444, .10333, 0],
                   109: [0, .43056, .07671, 0],
                   110: [0, .43056, .07671, 0],
                   111: [0, .43056, .06312, 0],
                   112: [.19444, .43056, .06312, 0],
                   113: [.19444, .43056, .08847, 0],
                   114: [0, .43056, .10764, 0],
                   115: [0, .43056, .08208, 0],
                   116: [0, .61508, .09486, 0],
                   117: [0, .43056, .07671, 0],
                   118: [0, .43056, .10764, 0],
                   119: [0, .43056, .10764, 0],
                   120: [0, .43056, .12042, 0],
                   121: [.19444, .43056, .08847, 0],
                   122: [0, .43056, .12292, 0],
                   126: [.35, .31786, .11585, 0],
                   163: [0, .69444, 0, 0],
                   305: [0, .43056, 0, .02778],
                   567: [.19444, .43056, 0, .08334],
                   768: [0, .69444, 0, 0],
                   769: [0, .69444, .09694, 0],
                   770: [0, .69444, .06646, 0],
                   771: [0, .66786, .11585, 0],
                   772: [0, .56167, .10333, 0],
                   774: [0, .69444, .10806, 0],
                   775: [0, .66786, .11752, 0],
                   776: [0, .66786, .10474, 0],
                   778: [0, .69444, 0, 0],
                   779: [0, .69444, .1225, 0],
                   780: [0, .62847, .08295, 0],
                   915: [0, .68333, .13305, 0],
                   916: [0, .68333, 0, 0],
                   920: [0, .68333, .09403, 0],
                   923: [0, .68333, 0, 0],
                   926: [0, .68333, .15294, 0],
                   928: [0, .68333, .16389, 0],
                   931: [0, .68333, .12028, 0],
                   933: [0, .68333, .11111, 0],
                   934: [0, .68333, .05986, 0],
                   936: [0, .68333, .11111, 0],
                   937: [0, .68333, .10257, 0],
                   8211: [0, .43056, .09208, 0],
                   8212: [0, .43056, .09208, 0],
                   8216: [0, .69444, .12417, 0],
                   8217: [0, .69444, .12417, 0],
                   8220: [0, .69444, .1685, 0],
                   8221: [0, .69444, .06961, 0],
                   8463: [0, .68889, 0, 0]
               },
               "Main-Regular": {
                   32: [0, 0, 0, 0],
                   33: [0, .69444, 0, 0],
                   34: [0, .69444, 0, 0],
                   35: [.19444, .69444, 0, 0],
                   36: [.05556, .75, 0, 0],
                   37: [.05556, .75, 0, 0],
                   38: [0, .69444, 0, 0],
                   39: [0, .69444, 0, 0],
                   40: [.25, .75, 0, 0],
                   41: [.25, .75, 0, 0],
                   42: [0, .75, 0, 0],
                   43: [.08333, .58333, 0, 0],
                   44: [.19444, .10556, 0, 0],
                   45: [0, .43056, 0, 0],
                   46: [0, .10556, 0, 0],
                   47: [.25, .75, 0, 0],
                   48: [0, .64444, 0, 0],
                   49: [0, .64444, 0, 0],
                   50: [0, .64444, 0, 0],
                   51: [0, .64444, 0, 0],
                   52: [0, .64444, 0, 0],
                   53: [0, .64444, 0, 0],
                   54: [0, .64444, 0, 0],
                   55: [0, .64444, 0, 0],
                   56: [0, .64444, 0, 0],
                   57: [0, .64444, 0, 0],
                   58: [0, .43056, 0, 0],
                   59: [.19444, .43056, 0, 0],
                   60: [.0391, .5391, 0, 0],
                   61: [-.13313, .36687, 0, 0],
                   62: [.0391, .5391, 0, 0],
                   63: [0, .69444, 0, 0],
                   64: [0, .69444, 0, 0],
                   65: [0, .68333, 0, 0],
                   66: [0, .68333, 0, 0],
                   67: [0, .68333, 0, 0],
                   68: [0, .68333, 0, 0],
                   69: [0, .68333, 0, 0],
                   70: [0, .68333, 0, 0],
                   71: [0, .68333, 0, 0],
                   72: [0, .68333, 0, 0],
                   73: [0, .68333, 0, 0],
                   74: [0, .68333, 0, 0],
                   75: [0, .68333, 0, 0],
                   76: [0, .68333, 0, 0],
                   77: [0, .68333, 0, 0],
                   78: [0, .68333, 0, 0],
                   79: [0, .68333, 0, 0],
                   80: [0, .68333, 0, 0],
                   81: [.19444, .68333, 0, 0],
                   82: [0, .68333, 0, 0],
                   83: [0, .68333, 0, 0],
                   84: [0, .68333, 0, 0],
                   85: [0, .68333, 0, 0],
                   86: [0, .68333, .01389, 0],
                   87: [0, .68333, .01389, 0],
                   88: [0, .68333, 0, 0],
                   89: [0, .68333, .025, 0],
                   90: [0, .68333, 0, 0],
                   91: [.25, .75, 0, 0],
                   92: [.25, .75, 0, 0],
                   93: [.25, .75, 0, 0],
                   94: [0, .69444, 0, 0],
                   95: [.31, .12056, .02778, 0],
                   96: [0, .69444, 0, 0],
                   97: [0, .43056, 0, 0],
                   98: [0, .69444, 0, 0],
                   99: [0, .43056, 0, 0],
                   100: [0, .69444, 0, 0],
                   101: [0, .43056, 0, 0],
                   102: [0, .69444, .07778, 0],
                   103: [.19444, .43056, .01389, 0],
                   104: [0, .69444, 0, 0],
                   105: [0, .66786, 0, 0],
                   106: [.19444, .66786, 0, 0],
                   107: [0, .69444, 0, 0],
                   108: [0, .69444, 0, 0],
                   109: [0, .43056, 0, 0],
                   110: [0, .43056, 0, 0],
                   111: [0, .43056, 0, 0],
                   112: [.19444, .43056, 0, 0],
                   113: [.19444, .43056, 0, 0],
                   114: [0, .43056, 0, 0],
                   115: [0, .43056, 0, 0],
                   116: [0, .61508, 0, 0],
                   117: [0, .43056, 0, 0],
                   118: [0, .43056, .01389, 0],
                   119: [0, .43056, .01389, 0],
                   120: [0, .43056, 0, 0],
                   121: [.19444, .43056, .01389, 0],
                   122: [0, .43056, 0, 0],
                   123: [.25, .75, 0, 0],
                   124: [.25, .75, 0, 0],
                   125: [.25, .75, 0, 0],
                   126: [.35, .31786, 0, 0],
                   160: [0, 0, 0, 0],
                   168: [0, .66786, 0, 0],
                   172: [0, .43056, 0, 0],
                   175: [0, .56778, 0, 0],
                   176: [0, .69444, 0, 0],
                   177: [.08333, .58333, 0, 0],
                   180: [0, .69444, 0, 0],
                   215: [.08333, .58333, 0, 0],
                   247: [.08333, .58333, 0, 0],
                   305: [0, .43056, 0, 0],
                   567: [.19444, .43056, 0, 0],
                   710: [0, .69444, 0, 0],
                   711: [0, .62847, 0, 0],
                   713: [0, .56778, 0, 0],
                   714: [0, .69444, 0, 0],
                   715: [0, .69444, 0, 0],
                   728: [0, .69444, 0, 0],
                   729: [0, .66786, 0, 0],
                   730: [0, .69444, 0, 0],
                   732: [0, .66786, 0, 0],
                   768: [0, .69444, 0, 0],
                   769: [0, .69444, 0, 0],
                   770: [0, .69444, 0, 0],
                   771: [0, .66786, 0, 0],
                   772: [0, .56778, 0, 0],
                   774: [0, .69444, 0, 0],
                   775: [0, .66786, 0, 0],
                   776: [0, .66786, 0, 0],
                   778: [0, .69444, 0, 0],
                   779: [0, .69444, 0, 0],
                   780: [0, .62847, 0, 0],
                   824: [.19444, .69444, 0, 0],
                   915: [0, .68333, 0, 0],
                   916: [0, .68333, 0, 0],
                   920: [0, .68333, 0, 0],
                   923: [0, .68333, 0, 0],
                   926: [0, .68333, 0, 0],
                   928: [0, .68333, 0, 0],
                   931: [0, .68333, 0, 0],
                   933: [0, .68333, 0, 0],
                   934: [0, .68333, 0, 0],
                   936: [0, .68333, 0, 0],
                   937: [0, .68333, 0, 0],
                   8211: [0, .43056, .02778, 0],
                   8212: [0, .43056, .02778, 0],
                   8216: [0, .69444, 0, 0],
                   8217: [0, .69444, 0, 0],
                   8220: [0, .69444, 0, 0],
                   8221: [0, .69444, 0, 0],
                   8224: [.19444, .69444, 0, 0],
                   8225: [.19444, .69444, 0, 0],
                   8230: [0, .12, 0, 0],
                   8242: [0, .55556, 0, 0],
                   8407: [0, .71444, .15382, 0],
                   8463: [0, .68889, 0, 0],
                   8465: [0, .69444, 0, 0],
                   8467: [0, .69444, 0, .11111],
                   8472: [.19444, .43056, 0, .11111],
                   8476: [0, .69444, 0, 0],
                   8501: [0, .69444, 0, 0],
                   8592: [-.13313, .36687, 0, 0],
                   8593: [.19444, .69444, 0, 0],
                   8594: [-.13313, .36687, 0, 0],
                   8595: [.19444, .69444, 0, 0],
                   8596: [-.13313, .36687, 0, 0],
                   8597: [.25, .75, 0, 0],
                   8598: [.19444, .69444, 0, 0],
                   8599: [.19444, .69444, 0, 0],
                   8600: [.19444, .69444, 0, 0],
                   8601: [.19444, .69444, 0, 0],
                   8614: [.011, .511, 0, 0],
                   8617: [.011, .511, 0, 0],
                   8618: [.011, .511, 0, 0],
                   8636: [-.13313, .36687, 0, 0],
                   8637: [-.13313, .36687, 0, 0],
                   8640: [-.13313, .36687, 0, 0],
                   8641: [-.13313, .36687, 0, 0],
                   8652: [.011, .671, 0, 0],
                   8656: [-.13313, .36687, 0, 0],
                   8657: [.19444, .69444, 0, 0],
                   8658: [-.13313, .36687, 0, 0],
                   8659: [.19444, .69444, 0, 0],
                   8660: [-.13313, .36687, 0, 0],
                   8661: [.25, .75, 0, 0],
                   8704: [0, .69444, 0, 0],
                   8706: [0, .69444, .05556, .08334],
                   8707: [0, .69444, 0, 0],
                   8709: [.05556, .75, 0, 0],
                   8711: [0, .68333, 0, 0],
                   8712: [.0391, .5391, 0, 0],
                   8715: [.0391, .5391, 0, 0],
                   8722: [.08333, .58333, 0, 0],
                   8723: [.08333, .58333, 0, 0],
                   8725: [.25, .75, 0, 0],
                   8726: [.25, .75, 0, 0],
                   8727: [-.03472, .46528, 0, 0],
                   8728: [-.05555, .44445, 0, 0],
                   8729: [-.05555, .44445, 0, 0],
                   8730: [.2, .8, 0, 0],
                   8733: [0, .43056, 0, 0],
                   8734: [0, .43056, 0, 0],
                   8736: [0, .69224, 0, 0],
                   8739: [.25, .75, 0, 0],
                   8741: [.25, .75, 0, 0],
                   8743: [0, .55556, 0, 0],
                   8744: [0, .55556, 0, 0],
                   8745: [0, .55556, 0, 0],
                   8746: [0, .55556, 0, 0],
                   8747: [.19444, .69444, .11111, 0],
                   8764: [-.13313, .36687, 0, 0],
                   8768: [.19444, .69444, 0, 0],
                   8771: [-.03625, .46375, 0, 0],
                   8773: [-.022, .589, 0, 0],
                   8776: [-.01688, .48312, 0, 0],
                   8781: [-.03625, .46375, 0, 0],
                   8784: [-.133, .67, 0, 0],
                   8800: [.215, .716, 0, 0],
                   8801: [-.03625, .46375, 0, 0],
                   8804: [.13597, .63597, 0, 0],
                   8805: [.13597, .63597, 0, 0],
                   8810: [.0391, .5391, 0, 0],
                   8811: [.0391, .5391, 0, 0],
                   8826: [.0391, .5391, 0, 0],
                   8827: [.0391, .5391, 0, 0],
                   8834: [.0391, .5391, 0, 0],
                   8835: [.0391, .5391, 0, 0],
                   8838: [.13597, .63597, 0, 0],
                   8839: [.13597, .63597, 0, 0],
                   8846: [0, .55556, 0, 0],
                   8849: [.13597, .63597, 0, 0],
                   8850: [.13597, .63597, 0, 0],
                   8851: [0, .55556, 0, 0],
                   8852: [0, .55556, 0, 0],
                   8853: [.08333, .58333, 0, 0],
                   8854: [.08333, .58333, 0, 0],
                   8855: [.08333, .58333, 0, 0],
                   8856: [.08333, .58333, 0, 0],
                   8857: [.08333, .58333, 0, 0],
                   8866: [0, .69444, 0, 0],
                   8867: [0, .69444, 0, 0],
                   8868: [0, .69444, 0, 0],
                   8869: [0, .69444, 0, 0],
                   8872: [.249, .75, 0, 0],
                   8900: [-.05555, .44445, 0, 0],
                   8901: [-.05555, .44445, 0, 0],
                   8902: [-.03472, .46528, 0, 0],
                   8904: [.005, .505, 0, 0],
                   8942: [.03, .9, 0, 0],
                   8943: [-.19, .31, 0, 0],
                   8945: [-.1, .82, 0, 0],
                   8968: [.25, .75, 0, 0],
                   8969: [.25, .75, 0, 0],
                   8970: [.25, .75, 0, 0],
                   8971: [.25, .75, 0, 0],
                   8994: [-.14236, .35764, 0, 0],
                   8995: [-.14236, .35764, 0, 0],
                   9136: [.244, .744, 0, 0],
                   9137: [.244, .744, 0, 0],
                   9651: [.19444, .69444, 0, 0],
                   9657: [-.03472, .46528, 0, 0],
                   9661: [.19444, .69444, 0, 0],
                   9667: [-.03472, .46528, 0, 0],
                   9711: [.19444, .69444, 0, 0],
                   9824: [.12963, .69444, 0, 0],
                   9825: [.12963, .69444, 0, 0],
                   9826: [.12963, .69444, 0, 0],
                   9827: [.12963, .69444, 0, 0],
                   9837: [0, .75, 0, 0],
                   9838: [.19444, .69444, 0, 0],
                   9839: [.19444, .69444, 0, 0],
                   10216: [.25, .75, 0, 0],
                   10217: [.25, .75, 0, 0],
                   10222: [.244, .744, 0, 0],
                   10223: [.244, .744, 0, 0],
                   10229: [.011, .511, 0, 0],
                   10230: [.011, .511, 0, 0],
                   10231: [.011, .511, 0, 0],
                   10232: [.024, .525, 0, 0],
                   10233: [.024, .525, 0, 0],
                   10234: [.024, .525, 0, 0],
                   10236: [.011, .511, 0, 0],
                   10815: [0, .68333, 0, 0],
                   10927: [.13597, .63597, 0, 0],
                   10928: [.13597, .63597, 0, 0]
               },
               "Math-BoldItalic": {
                   47: [.19444, .69444, 0, 0],
                   65: [0, .68611, 0, 0],
                   66: [0, .68611, .04835, 0],
                   67: [0, .68611, .06979, 0],
                   68: [0, .68611, .03194, 0],
                   69: [0, .68611, .05451, 0],
                   70: [0, .68611, .15972, 0],
                   71: [0, .68611, 0, 0],
                   72: [0, .68611, .08229, 0],
                   73: [0, .68611, .07778, 0],
                   74: [0, .68611, .10069, 0],
                   75: [0, .68611, .06979, 0],
                   76: [0, .68611, 0, 0],
                   77: [0, .68611, .11424, 0],
                   78: [0, .68611, .11424, 0],
                   79: [0, .68611, .03194, 0],
                   80: [0, .68611, .15972, 0],
                   81: [.19444, .68611, 0, 0],
                   82: [0, .68611, .00421, 0],
                   83: [0, .68611, .05382, 0],
                   84: [0, .68611, .15972, 0],
                   85: [0, .68611, .11424, 0],
                   86: [0, .68611, .25555, 0],
                   87: [0, .68611, .15972, 0],
                   88: [0, .68611, .07778, 0],
                   89: [0, .68611, .25555, 0],
                   90: [0, .68611, .06979, 0],
                   97: [0, .44444, 0, 0],
                   98: [0, .69444, 0, 0],
                   99: [0, .44444, 0, 0],
                   100: [0, .69444, 0, 0],
                   101: [0, .44444, 0, 0],
                   102: [.19444, .69444, .11042, 0],
                   103: [.19444, .44444, .03704, 0],
                   104: [0, .69444, 0, 0],
                   105: [0, .69326, 0, 0],
                   106: [.19444, .69326, .0622, 0],
                   107: [0, .69444, .01852, 0],
                   108: [0, .69444, .0088, 0],
                   109: [0, .44444, 0, 0],
                   110: [0, .44444, 0, 0],
                   111: [0, .44444, 0, 0],
                   112: [.19444, .44444, 0, 0],
                   113: [.19444, .44444, .03704, 0],
                   114: [0, .44444, .03194, 0],
                   115: [0, .44444, 0, 0],
                   116: [0, .63492, 0, 0],
                   117: [0, .44444, 0, 0],
                   118: [0, .44444, .03704, 0],
                   119: [0, .44444, .02778, 0],
                   120: [0, .44444, 0, 0],
                   121: [.19444, .44444, .03704, 0],
                   122: [0, .44444, .04213, 0],
                   915: [0, .68611, .15972, 0],
                   916: [0, .68611, 0, 0],
                   920: [0, .68611, .03194, 0],
                   923: [0, .68611, 0, 0],
                   926: [0, .68611, .07458, 0],
                   928: [0, .68611, .08229, 0],
                   931: [0, .68611, .05451, 0],
                   933: [0, .68611, .15972, 0],
                   934: [0, .68611, 0, 0],
                   936: [0, .68611, .11653, 0],
                   937: [0, .68611, .04835, 0],
                   945: [0, .44444, 0, 0],
                   946: [.19444, .69444, .03403, 0],
                   947: [.19444, .44444, .06389, 0],
                   948: [0, .69444, .03819, 0],
                   949: [0, .44444, 0, 0],
                   950: [.19444, .69444, .06215, 0],
                   951: [.19444, .44444, .03704, 0],
                   952: [0, .69444, .03194, 0],
                   953: [0, .44444, 0, 0],
                   954: [0, .44444, 0, 0],
                   955: [0, .69444, 0, 0],
                   956: [.19444, .44444, 0, 0],
                   957: [0, .44444, .06898, 0],
                   958: [.19444, .69444, .03021, 0],
                   959: [0, .44444, 0, 0],
                   960: [0, .44444, .03704, 0],
                   961: [.19444, .44444, 0, 0],
                   962: [.09722, .44444, .07917, 0],
                   963: [0, .44444, .03704, 0],
                   964: [0, .44444, .13472, 0],
                   965: [0, .44444, .03704, 0],
                   966: [.19444, .44444, 0, 0],
                   967: [.19444, .44444, 0, 0],
                   968: [.19444, .69444, .03704, 0],
                   969: [0, .44444, .03704, 0],
                   977: [0, .69444, 0, 0],
                   981: [.19444, .69444, 0, 0],
                   982: [0, .44444, .03194, 0],
                   1009: [.19444, .44444, 0, 0],
                   1013: [0, .44444, 0, 0]
               },
               "Math-Italic": {
                   47: [.19444, .69444, 0, 0],
                   65: [0, .68333, 0, .13889],
                   66: [0, .68333, .05017, .08334],
                   67: [0, .68333, .07153, .08334],
                   68: [0, .68333, .02778, .05556],
                   69: [0, .68333, .05764, .08334],
                   70: [0, .68333, .13889, .08334],
                   71: [0, .68333, 0, .08334],
                   72: [0, .68333, .08125, .05556],
                   73: [0, .68333, .07847, .11111],
                   74: [0, .68333, .09618, .16667],
                   75: [0, .68333, .07153, .05556],
                   76: [0, .68333, 0, .02778],
                   77: [0, .68333, .10903, .08334],
                   78: [0, .68333, .10903, .08334],
                   79: [0, .68333, .02778, .08334],
                   80: [0, .68333, .13889, .08334],
                   81: [.19444, .68333, 0, .08334],
                   82: [0, .68333, .00773, .08334],
                   83: [0, .68333, .05764, .08334],
                   84: [0, .68333, .13889, .08334],
                   85: [0, .68333, .10903, .02778],
                   86: [0, .68333, .22222, 0],
                   87: [0, .68333, .13889, 0],
                   88: [0, .68333, .07847, .08334],
                   89: [0, .68333, .22222, 0],
                   90: [0, .68333, .07153, .08334],
                   97: [0, .43056, 0, 0],
                   98: [0, .69444, 0, 0],
                   99: [0, .43056, 0, .05556],
                   100: [0, .69444, 0, .16667],
                   101: [0, .43056, 0, .05556],
                   102: [.19444, .69444, .10764, .16667],
                   103: [.19444, .43056, .03588, .02778],
                   104: [0, .69444, 0, 0],
                   105: [0, .65952, 0, 0],
                   106: [.19444, .65952, .05724, 0],
                   107: [0, .69444, .03148, 0],
                   108: [0, .69444, .01968, .08334],
                   109: [0, .43056, 0, 0],
                   110: [0, .43056, 0, 0],
                   111: [0, .43056, 0, .05556],
                   112: [.19444, .43056, 0, .08334],
                   113: [.19444, .43056, .03588, .08334],
                   114: [0, .43056, .02778, .05556],
                   115: [0, .43056, 0, .05556],
                   116: [0, .61508, 0, .08334],
                   117: [0, .43056, 0, .02778],
                   118: [0, .43056, .03588, .02778],
                   119: [0, .43056, .02691, .08334],
                   120: [0, .43056, 0, .02778],
                   121: [.19444, .43056, .03588, .05556],
                   122: [0, .43056, .04398, .05556],
                   915: [0, .68333, .13889, .08334],
                   916: [0, .68333, 0, .16667],
                   920: [0, .68333, .02778, .08334],
                   923: [0, .68333, 0, .16667],
                   926: [0, .68333, .07569, .08334],
                   928: [0, .68333, .08125, .05556],
                   931: [0, .68333, .05764, .08334],
                   933: [0, .68333, .13889, .05556],
                   934: [0, .68333, 0, .08334],
                   936: [0, .68333, .11, .05556],
                   937: [0, .68333, .05017, .08334],
                   945: [0, .43056, .0037, .02778],
                   946: [.19444, .69444, .05278, .08334],
                   947: [.19444, .43056, .05556, 0],
                   948: [0, .69444, .03785, .05556],
                   949: [0, .43056, 0, .08334],
                   950: [.19444, .69444, .07378, .08334],
                   951: [.19444, .43056, .03588, .05556],
                   952: [0, .69444, .02778, .08334],
                   953: [0, .43056, 0, .05556],
                   954: [0, .43056, 0, 0],
                   955: [0, .69444, 0, 0],
                   956: [.19444, .43056, 0, .02778],
                   957: [0, .43056, .06366, .02778],
                   958: [.19444, .69444, .04601, .11111],
                   959: [0, .43056, 0, .05556],
                   960: [0, .43056, .03588, 0],
                   961: [.19444, .43056, 0, .08334],
                   962: [.09722, .43056, .07986, .08334],
                   963: [0, .43056, .03588, 0],
                   964: [0, .43056, .1132, .02778],
                   965: [0, .43056, .03588, .02778],
                   966: [.19444, .43056, 0, .08334],
                   967: [.19444, .43056, 0, .05556],
                   968: [.19444, .69444, .03588, .11111],
                   969: [0, .43056, .03588, 0],
                   977: [0, .69444, 0, .08334],
                   981: [.19444, .69444, 0, .08334],
                   982: [0, .43056, .02778, 0],
                   1009: [.19444, .43056, 0, .08334],
                   1013: [0, .43056, 0, .05556]
               },
               "Math-Regular": {
                   65: [0, .68333, 0, .13889],
                   66: [0, .68333, .05017, .08334],
                   67: [0, .68333, .07153, .08334],
                   68: [0, .68333, .02778, .05556],
                   69: [0, .68333, .05764, .08334],
                   70: [0, .68333, .13889, .08334],
                   71: [0, .68333, 0, .08334],
                   72: [0, .68333, .08125, .05556],
                   73: [0, .68333, .07847, .11111],
                   74: [0, .68333, .09618, .16667],
                   75: [0, .68333, .07153, .05556],
                   76: [0, .68333, 0, .02778],
                   77: [0, .68333, .10903, .08334],
                   78: [0, .68333, .10903, .08334],
                   79: [0, .68333, .02778, .08334],
                   80: [0, .68333, .13889, .08334],
                   81: [.19444, .68333, 0, .08334],
                   82: [0, .68333, .00773, .08334],
                   83: [0, .68333, .05764, .08334],
                   84: [0, .68333, .13889, .08334],
                   85: [0, .68333, .10903, .02778],
                   86: [0, .68333, .22222, 0],
                   87: [0, .68333, .13889, 0],
                   88: [0, .68333, .07847, .08334],
                   89: [0, .68333, .22222, 0],
                   90: [0, .68333, .07153, .08334],
                   97: [0, .43056, 0, 0],
                   98: [0, .69444, 0, 0],
                   99: [0, .43056, 0, .05556],
                   100: [0, .69444, 0, .16667],
                   101: [0, .43056, 0, .05556],
                   102: [.19444, .69444, .10764, .16667],
                   103: [.19444, .43056, .03588, .02778],
                   104: [0, .69444, 0, 0],
                   105: [0, .65952, 0, 0],
                   106: [.19444, .65952, .05724, 0],
                   107: [0, .69444, .03148, 0],
                   108: [0, .69444, .01968, .08334],
                   109: [0, .43056, 0, 0],
                   110: [0, .43056, 0, 0],
                   111: [0, .43056, 0, .05556],
                   112: [.19444, .43056, 0, .08334],
                   113: [.19444, .43056, .03588, .08334],
                   114: [0, .43056, .02778, .05556],
                   115: [0, .43056, 0, .05556],
                   116: [0, .61508, 0, .08334],
                   117: [0, .43056, 0, .02778],
                   118: [0, .43056, .03588, .02778],
                   119: [0, .43056, .02691, .08334],
                   120: [0, .43056, 0, .02778],
                   121: [.19444, .43056, .03588, .05556],
                   122: [0, .43056, .04398, .05556],
                   915: [0, .68333, .13889, .08334],
                   916: [0, .68333, 0, .16667],
                   920: [0, .68333, .02778, .08334],
                   923: [0, .68333, 0, .16667],
                   926: [0, .68333, .07569, .08334],
                   928: [0, .68333, .08125, .05556],
                   931: [0, .68333, .05764, .08334],
                   933: [0, .68333, .13889, .05556],
                   934: [0, .68333, 0, .08334],
                   936: [0, .68333, .11, .05556],
                   937: [0, .68333, .05017, .08334],
                   945: [0, .43056, .0037, .02778],
                   946: [.19444, .69444, .05278, .08334],
                   947: [.19444, .43056, .05556, 0],
                   948: [0, .69444, .03785, .05556],
                   949: [0, .43056, 0, .08334],
                   950: [.19444, .69444, .07378, .08334],
                   951: [.19444, .43056, .03588, .05556],
                   952: [0, .69444, .02778, .08334],
                   953: [0, .43056, 0, .05556],
                   954: [0, .43056, 0, 0],
                   955: [0, .69444, 0, 0],
                   956: [.19444, .43056, 0, .02778],
                   957: [0, .43056, .06366, .02778],
                   958: [.19444, .69444, .04601, .11111],
                   959: [0, .43056, 0, .05556],
                   960: [0, .43056, .03588, 0],
                   961: [.19444, .43056, 0, .08334],
                   962: [.09722, .43056, .07986, .08334],
                   963: [0, .43056, .03588, 0],
                   964: [0, .43056, .1132, .02778],
                   965: [0, .43056, .03588, .02778],
                   966: [.19444, .43056, 0, .08334],
                   967: [.19444, .43056, 0, .05556],
                   968: [.19444, .69444, .03588, .11111],
                   969: [0, .43056, .03588, 0],
                   977: [0, .69444, 0, .08334],
                   981: [.19444, .69444, 0, .08334],
                   982: [0, .43056, .02778, 0],
                   1009: [.19444, .43056, 0, .08334],
                   1013: [0, .43056, 0, .05556]
               },
               "SansSerif-Regular": {
                   33: [0, .69444, 0, 0],
                   34: [0, .69444, 0, 0],
                   35: [.19444, .69444, 0, 0],
                   36: [.05556, .75, 0, 0],
                   37: [.05556, .75, 0, 0],
                   38: [0, .69444, 0, 0],
                   39: [0, .69444, 0, 0],
                   40: [.25, .75, 0, 0],
                   41: [.25, .75, 0, 0],
                   42: [0, .75, 0, 0],
                   43: [.08333, .58333, 0, 0],
                   44: [.125, .08333, 0, 0],
                   45: [0, .44444, 0, 0],
                   46: [0, .08333, 0, 0],
                   47: [.25, .75, 0, 0],
                   48: [0, .65556, 0, 0],
                   49: [0, .65556, 0, 0],
                   50: [0, .65556, 0, 0],
                   51: [0, .65556, 0, 0],
                   52: [0, .65556, 0, 0],
                   53: [0, .65556, 0, 0],
                   54: [0, .65556, 0, 0],
                   55: [0, .65556, 0, 0],
                   56: [0, .65556, 0, 0],
                   57: [0, .65556, 0, 0],
                   58: [0, .44444, 0, 0],
                   59: [.125, .44444, 0, 0],
                   61: [-.13, .37, 0, 0],
                   63: [0, .69444, 0, 0],
                   64: [0, .69444, 0, 0],
                   65: [0, .69444, 0, 0],
                   66: [0, .69444, 0, 0],
                   67: [0, .69444, 0, 0],
                   68: [0, .69444, 0, 0],
                   69: [0, .69444, 0, 0],
                   70: [0, .69444, 0, 0],
                   71: [0, .69444, 0, 0],
                   72: [0, .69444, 0, 0],
                   73: [0, .69444, 0, 0],
                   74: [0, .69444, 0, 0],
                   75: [0, .69444, 0, 0],
                   76: [0, .69444, 0, 0],
                   77: [0, .69444, 0, 0],
                   78: [0, .69444, 0, 0],
                   79: [0, .69444, 0, 0],
                   80: [0, .69444, 0, 0],
                   81: [.125, .69444, 0, 0],
                   82: [0, .69444, 0, 0],
                   83: [0, .69444, 0, 0],
                   84: [0, .69444, 0, 0],
                   85: [0, .69444, 0, 0],
                   86: [0, .69444, .01389, 0],
                   87: [0, .69444, .01389, 0],
                   88: [0, .69444, 0, 0],
                   89: [0, .69444, .025, 0],
                   90: [0, .69444, 0, 0],
                   91: [.25, .75, 0, 0],
                   93: [.25, .75, 0, 0],
                   94: [0, .69444, 0, 0],
                   95: [.35, .09444, .02778, 0],
                   97: [0, .44444, 0, 0],
                   98: [0, .69444, 0, 0],
                   99: [0, .44444, 0, 0],
                   100: [0, .69444, 0, 0],
                   101: [0, .44444, 0, 0],
                   102: [0, .69444, .06944, 0],
                   103: [.19444, .44444, .01389, 0],
                   104: [0, .69444, 0, 0],
                   105: [0, .67937, 0, 0],
                   106: [.19444, .67937, 0, 0],
                   107: [0, .69444, 0, 0],
                   108: [0, .69444, 0, 0],
                   109: [0, .44444, 0, 0],
                   110: [0, .44444, 0, 0],
                   111: [0, .44444, 0, 0],
                   112: [.19444, .44444, 0, 0],
                   113: [.19444, .44444, 0, 0],
                   114: [0, .44444, .01389, 0],
                   115: [0, .44444, 0, 0],
                   116: [0, .57143, 0, 0],
                   117: [0, .44444, 0, 0],
                   118: [0, .44444, .01389, 0],
                   119: [0, .44444, .01389, 0],
                   120: [0, .44444, 0, 0],
                   121: [.19444, .44444, .01389, 0],
                   122: [0, .44444, 0, 0],
                   126: [.35, .32659, 0, 0],
                   305: [0, .44444, 0, 0],
                   567: [.19444, .44444, 0, 0],
                   768: [0, .69444, 0, 0],
                   769: [0, .69444, 0, 0],
                   770: [0, .69444, 0, 0],
                   771: [0, .67659, 0, 0],
                   772: [0, .60889, 0, 0],
                   774: [0, .69444, 0, 0],
                   775: [0, .67937, 0, 0],
                   776: [0, .67937, 0, 0],
                   778: [0, .69444, 0, 0],
                   779: [0, .69444, 0, 0],
                   780: [0, .63194, 0, 0],
                   915: [0, .69444, 0, 0],
                   916: [0, .69444, 0, 0],
                   920: [0, .69444, 0, 0],
                   923: [0, .69444, 0, 0],
                   926: [0, .69444, 0, 0],
                   928: [0, .69444, 0, 0],
                   931: [0, .69444, 0, 0],
                   933: [0, .69444, 0, 0],
                   934: [0, .69444, 0, 0],
                   936: [0, .69444, 0, 0],
                   937: [0, .69444, 0, 0],
                   8211: [0, .44444, .02778, 0],
                   8212: [0, .44444, .02778, 0],
                   8216: [0, .69444, 0, 0],
                   8217: [0, .69444, 0, 0],
                   8220: [0, .69444, 0, 0],
                   8221: [0, .69444, 0, 0]
               },
               "Script-Regular": {
                   65: [0, .7, .22925, 0],
                   66: [0, .7, .04087, 0],
                   67: [0, .7, .1689, 0],
                   68: [0, .7, .09371, 0],
                   69: [0, .7, .18583, 0],
                   70: [0, .7, .13634, 0],
                   71: [0, .7, .17322, 0],
                   72: [0, .7, .29694, 0],
                   73: [0, .7, .19189, 0],
                   74: [.27778, .7, .19189, 0],
                   75: [0, .7, .31259, 0],
                   76: [0, .7, .19189, 0],
                   77: [0, .7, .15981, 0],
                   78: [0, .7, .3525, 0],
                   79: [0, .7, .08078, 0],
                   80: [0, .7, .08078, 0],
                   81: [0, .7, .03305, 0],
                   82: [0, .7, .06259, 0],
                   83: [0, .7, .19189, 0],
                   84: [0, .7, .29087, 0],
                   85: [0, .7, .25815, 0],
                   86: [0, .7, .27523, 0],
                   87: [0, .7, .27523, 0],
                   88: [0, .7, .26006, 0],
                   89: [0, .7, .2939, 0],
                   90: [0, .7, .24037, 0]
               },
               "Size1-Regular": {
                   40: [.35001, .85, 0, 0],
                   41: [.35001, .85, 0, 0],
                   47: [.35001, .85, 0, 0],
                   91: [.35001, .85, 0, 0],
                   92: [.35001, .85, 0, 0],
                   93: [.35001, .85, 0, 0],
                   123: [.35001, .85, 0, 0],
                   125: [.35001, .85, 0, 0],
                   710: [0, .72222, 0, 0],
                   732: [0, .72222, 0, 0],
                   770: [0, .72222, 0, 0],
                   771: [0, .72222, 0, 0],
                   8214: [-99e-5, .601, 0, 0],
                   8593: [1e-5, .6, 0, 0],
                   8595: [1e-5, .6, 0, 0],
                   8657: [1e-5, .6, 0, 0],
                   8659: [1e-5, .6, 0, 0],
                   8719: [.25001, .75, 0, 0],
                   8720: [.25001, .75, 0, 0],
                   8721: [.25001, .75, 0, 0],
                   8730: [.35001, .85, 0, 0],
                   8739: [-.00599, .606, 0, 0],
                   8741: [-.00599, .606, 0, 0],
                   8747: [.30612, .805, .19445, 0],
                   8748: [.306, .805, .19445, 0],
                   8749: [.306, .805, .19445, 0],
                   8750: [.30612, .805, .19445, 0],
                   8896: [.25001, .75, 0, 0],
                   8897: [.25001, .75, 0, 0],
                   8898: [.25001, .75, 0, 0],
                   8899: [.25001, .75, 0, 0],
                   8968: [.35001, .85, 0, 0],
                   8969: [.35001, .85, 0, 0],
                   8970: [.35001, .85, 0, 0],
                   8971: [.35001, .85, 0, 0],
                   9168: [-99e-5, .601, 0, 0],
                   10216: [.35001, .85, 0, 0],
                   10217: [.35001, .85, 0, 0],
                   10752: [.25001, .75, 0, 0],
                   10753: [.25001, .75, 0, 0],
                   10754: [.25001, .75, 0, 0],
                   10756: [.25001, .75, 0, 0],
                   10758: [.25001, .75, 0, 0]
               },
               "Size2-Regular": {
                   40: [.65002, 1.15, 0, 0],
                   41: [.65002, 1.15, 0, 0],
                   47: [.65002, 1.15, 0, 0],
                   91: [.65002, 1.15, 0, 0],
                   92: [.65002, 1.15, 0, 0],
                   93: [.65002, 1.15, 0, 0],
                   123: [.65002, 1.15, 0, 0],
                   125: [.65002, 1.15, 0, 0],
                   710: [0, .75, 0, 0],
                   732: [0, .75, 0, 0],
                   770: [0, .75, 0, 0],
                   771: [0, .75, 0, 0],
                   8719: [.55001, 1.05, 0, 0],
                   8720: [.55001, 1.05, 0, 0],
                   8721: [.55001, 1.05, 0, 0],
                   8730: [.65002, 1.15, 0, 0],
                   8747: [.86225, 1.36, .44445, 0],
                   8748: [.862, 1.36, .44445, 0],
                   8749: [.862, 1.36, .44445, 0],
                   8750: [.86225, 1.36, .44445, 0],
                   8896: [.55001, 1.05, 0, 0],
                   8897: [.55001, 1.05, 0, 0],
                   8898: [.55001, 1.05, 0, 0],
                   8899: [.55001, 1.05, 0, 0],
                   8968: [.65002, 1.15, 0, 0],
                   8969: [.65002, 1.15, 0, 0],
                   8970: [.65002, 1.15, 0, 0],
                   8971: [.65002, 1.15, 0, 0],
                   10216: [.65002, 1.15, 0, 0],
                   10217: [.65002, 1.15, 0, 0],
                   10752: [.55001, 1.05, 0, 0],
                   10753: [.55001, 1.05, 0, 0],
                   10754: [.55001, 1.05, 0, 0],
                   10756: [.55001, 1.05, 0, 0],
                   10758: [.55001, 1.05, 0, 0]
               },
               "Size3-Regular": {
                   40: [.95003, 1.45, 0, 0],
                   41: [.95003, 1.45, 0, 0],
                   47: [.95003, 1.45, 0, 0],
                   91: [.95003, 1.45, 0, 0],
                   92: [.95003, 1.45, 0, 0],
                   93: [.95003, 1.45, 0, 0],
                   123: [.95003, 1.45, 0, 0],
                   125: [.95003, 1.45, 0, 0],
                   710: [0, .75, 0, 0],
                   732: [0, .75, 0, 0],
                   770: [0, .75, 0, 0],
                   771: [0, .75, 0, 0],
                   8730: [.95003, 1.45, 0, 0],
                   8968: [.95003, 1.45, 0, 0],
                   8969: [.95003, 1.45, 0, 0],
                   8970: [.95003, 1.45, 0, 0],
                   8971: [.95003, 1.45, 0, 0],
                   10216: [.95003, 1.45, 0, 0],
                   10217: [.95003, 1.45, 0, 0]
               },
               "Size4-Regular": {
                   40: [1.25003, 1.75, 0, 0],
                   41: [1.25003, 1.75, 0, 0],
                   47: [1.25003, 1.75, 0, 0],
                   91: [1.25003, 1.75, 0, 0],
                   92: [1.25003, 1.75, 0, 0],
                   93: [1.25003, 1.75, 0, 0],
                   123: [1.25003, 1.75, 0, 0],
                   125: [1.25003, 1.75, 0, 0],
                   710: [0, .825, 0, 0],
                   732: [0, .825, 0, 0],
                   770: [0, .825, 0, 0],
                   771: [0, .825, 0, 0],
                   8730: [1.25003, 1.75, 0, 0],
                   8968: [1.25003, 1.75, 0, 0],
                   8969: [1.25003, 1.75, 0, 0],
                   8970: [1.25003, 1.75, 0, 0],
                   8971: [1.25003, 1.75, 0, 0],
                   9115: [.64502, 1.155, 0, 0],
                   9116: [1e-5, .6, 0, 0],
                   9117: [.64502, 1.155, 0, 0],
                   9118: [.64502, 1.155, 0, 0],
                   9119: [1e-5, .6, 0, 0],
                   9120: [.64502, 1.155, 0, 0],
                   9121: [.64502, 1.155, 0, 0],
                   9122: [-99e-5, .601, 0, 0],
                   9123: [.64502, 1.155, 0, 0],
                   9124: [.64502, 1.155, 0, 0],
                   9125: [-99e-5, .601, 0, 0],
                   9126: [.64502, 1.155, 0, 0],
                   9127: [1e-5, .9, 0, 0],
                   9128: [.65002, 1.15, 0, 0],
                   9129: [.90001, 0, 0, 0],
                   9130: [0, .3, 0, 0],
                   9131: [1e-5, .9, 0, 0],
                   9132: [.65002, 1.15, 0, 0],
                   9133: [.90001, 0, 0, 0],
                   9143: [.88502, .915, 0, 0],
                   10216: [1.25003, 1.75, 0, 0],
                   10217: [1.25003, 1.75, 0, 0],
                   57344: [-.00499, .605, 0, 0],
                   57345: [-.00499, .605, 0, 0],
                   57680: [0, .12, 0, 0],
                   57681: [0, .12, 0, 0],
                   57682: [0, .12, 0, 0],
                   57683: [0, .12, 0, 0]
               },
               "Typewriter-Regular": {
                   33: [0, .61111, 0, 0],
                   34: [0, .61111, 0, 0],
                   35: [0, .61111, 0, 0],
                   36: [.08333, .69444, 0, 0],
                   37: [.08333, .69444, 0, 0],
                   38: [0, .61111, 0, 0],
                   39: [0, .61111, 0, 0],
                   40: [.08333, .69444, 0, 0],
                   41: [.08333, .69444, 0, 0],
                   42: [0, .52083, 0, 0],
                   43: [-.08056, .53055, 0, 0],
                   44: [.13889, .125, 0, 0],
                   45: [-.08056, .53055, 0, 0],
                   46: [0, .125, 0, 0],
                   47: [.08333, .69444, 0, 0],
                   48: [0, .61111, 0, 0],
                   49: [0, .61111, 0, 0],
                   50: [0, .61111, 0, 0],
                   51: [0, .61111, 0, 0],
                   52: [0, .61111, 0, 0],
                   53: [0, .61111, 0, 0],
                   54: [0, .61111, 0, 0],
                   55: [0, .61111, 0, 0],
                   56: [0, .61111, 0, 0],
                   57: [0, .61111, 0, 0],
                   58: [0, .43056, 0, 0],
                   59: [.13889, .43056, 0, 0],
                   60: [-.05556, .55556, 0, 0],
                   61: [-.19549, .41562, 0, 0],
                   62: [-.05556, .55556, 0, 0],
                   63: [0, .61111, 0, 0],
                   64: [0, .61111, 0, 0],
                   65: [0, .61111, 0, 0],
                   66: [0, .61111, 0, 0],
                   67: [0, .61111, 0, 0],
                   68: [0, .61111, 0, 0],
                   69: [0, .61111, 0, 0],
                   70: [0, .61111, 0, 0],
                   71: [0, .61111, 0, 0],
                   72: [0, .61111, 0, 0],
                   73: [0, .61111, 0, 0],
                   74: [0, .61111, 0, 0],
                   75: [0, .61111, 0, 0],
                   76: [0, .61111, 0, 0],
                   77: [0, .61111, 0, 0],
                   78: [0, .61111, 0, 0],
                   79: [0, .61111, 0, 0],
                   80: [0, .61111, 0, 0],
                   81: [.13889, .61111, 0, 0],
                   82: [0, .61111, 0, 0],
                   83: [0, .61111, 0, 0],
                   84: [0, .61111, 0, 0],
                   85: [0, .61111, 0, 0],
                   86: [0, .61111, 0, 0],
                   87: [0, .61111, 0, 0],
                   88: [0, .61111, 0, 0],
                   89: [0, .61111, 0, 0],
                   90: [0, .61111, 0, 0],
                   91: [.08333, .69444, 0, 0],
                   92: [.08333, .69444, 0, 0],
                   93: [.08333, .69444, 0, 0],
                   94: [0, .61111, 0, 0],
                   95: [.09514, 0, 0, 0],
                   96: [0, .61111, 0, 0],
                   97: [0, .43056, 0, 0],
                   98: [0, .61111, 0, 0],
                   99: [0, .43056, 0, 0],
                   100: [0, .61111, 0, 0],
                   101: [0, .43056, 0, 0],
                   102: [0, .61111, 0, 0],
                   103: [.22222, .43056, 0, 0],
                   104: [0, .61111, 0, 0],
                   105: [0, .61111, 0, 0],
                   106: [.22222, .61111, 0, 0],
                   107: [0, .61111, 0, 0],
                   108: [0, .61111, 0, 0],
                   109: [0, .43056, 0, 0],
                   110: [0, .43056, 0, 0],
                   111: [0, .43056, 0, 0],
                   112: [.22222, .43056, 0, 0],
                   113: [.22222, .43056, 0, 0],
                   114: [0, .43056, 0, 0],
                   115: [0, .43056, 0, 0],
                   116: [0, .55358, 0, 0],
                   117: [0, .43056, 0, 0],
                   118: [0, .43056, 0, 0],
                   119: [0, .43056, 0, 0],
                   120: [0, .43056, 0, 0],
                   121: [.22222, .43056, 0, 0],
                   122: [0, .43056, 0, 0],
                   123: [.08333, .69444, 0, 0],
                   124: [.08333, .69444, 0, 0],
                   125: [.08333, .69444, 0, 0],
                   126: [0, .61111, 0, 0],
                   127: [0, .61111, 0, 0],
                   305: [0, .43056, 0, 0],
                   567: [.22222, .43056, 0, 0],
                   768: [0, .61111, 0, 0],
                   769: [0, .61111, 0, 0],
                   770: [0, .61111, 0, 0],
                   771: [0, .61111, 0, 0],
                   772: [0, .56555, 0, 0],
                   774: [0, .61111, 0, 0],
                   776: [0, .61111, 0, 0],
                   778: [0, .61111, 0, 0],
                   780: [0, .56597, 0, 0],
                   915: [0, .61111, 0, 0],
                   916: [0, .61111, 0, 0],
                   920: [0, .61111, 0, 0],
                   923: [0, .61111, 0, 0],
                   926: [0, .61111, 0, 0],
                   928: [0, .61111, 0, 0],
                   931: [0, .61111, 0, 0],
                   933: [0, .61111, 0, 0],
                   934: [0, .61111, 0, 0],
                   936: [0, .61111, 0, 0],
                   937: [0, .61111, 0, 0],
                   2018: [0, .61111, 0, 0],
                   2019: [0, .61111, 0, 0],
                   8242: [0, .61111, 0, 0]
               }
           }
       }, {}],
       19: [function(e, t, r) {
           var a = e("./utils");
           var i = e("./ParseError");
           var n = e("./parseData");
           var s = n.ParseNode;
           function l(e, r, a) {
               if (typeof e === "string") {
                   e = [e]
               }
               if (typeof r === "number") {
                   r = {
                       numArgs: r
                   }
               }
               var i = {
                   numArgs: r.numArgs,
                   argTypes: r.argTypes,
                   greediness: r.greediness === undefined ? 1 : r.greediness,
                   allowedInText: !!r.allowedInText,
                   numOptionalArgs: r.numOptionalArgs || 0,
                   infix: !!r.infix,
                   handler: a
               };
               for (var n = 0; n < e.length; ++n) {
                   t.exports[e[n]] = i
               }
           }
           var o = function(e) {
               if (e.type === "ordgroup") {
                   return e.value
               } else {
                   return [e]
               }
           };
           l("\\sqrt", {
               numArgs: 1,
               numOptionalArgs: 1
           }, function(e, t) {
               var r = t[0];
               var a = t[1];
               return {
                   type: "sqrt",
                   body: a,
                   index: r
               }
           });
           var u = {
               "\\text": undefined,
               "\\textrm": "mathrm",
               "\\textsf": "mathsf",
               "\\texttt": "mathtt",
               "\\textnormal": "mathrm",
               "\\textbf": "mathbf",
               "\\textit": "textit"
           };
           l(["\\text", "\\textrm", "\\textsf", "\\texttt", "\\textnormal", "\\textbf", "\\textit"], {
               numArgs: 1,
               argTypes: ["text"],
               greediness: 2,
               allowedInText: true
           }, function(e, t) {
               var r = t[0];
               return {
                   type: "text",
                   body: o(r),
                   style: u[e.funcName]
               }
           });
           l("\\color", {
               numArgs: 2,
               allowedInText: true,
               greediness: 3,
               argTypes: ["color", "original"]
           }, function(e, t) {
               var r = t[0];
               var a = t[1];
               return {
                   type: "color",
                   color: r.value,
                   value: o(a)
               }
           });
           l("\\overline", {
               numArgs: 1
           }, function(e, t) {
               var r = t[0];
               return {
                   type: "overline",
                   body: r
               }
           });
           l("\\underline", {
               numArgs: 1
           }, function(e, t) {
               var r = t[0];
               return {
                   type: "underline",
                   body: r
               }
           });
           l("\\rule", {
               numArgs: 2,
               numOptionalArgs: 1,
               argTypes: ["size", "size", "size"]
           }, function(e, t) {
               var r = t[0];
               var a = t[1];
               var i = t[2];
               return {
                   type: "rule",
                   shift: r && r.value,
                   width: a.value,
                   height: i.value
               }
           });
           l(["\\kern", "\\mkern"], {
               numArgs: 1,
               argTypes: ["size"]
           }, function(e, t) {
               return {
                   type: "kern",
                   dimension: t[0].value
               }
           });
           l("\\KaTeX", {
               numArgs: 0
           }, function(e) {
               return {
                   type: "katex"
               }
           });
           l("\\phantom", {
               numArgs: 1
           }, function(e, t) {
               var r = t[0];
               return {
                   type: "phantom",
                   value: o(r)
               }
           });
           l(["\\mathord", "\\mathbin", "\\mathrel", "\\mathopen", "\\mathclose", "\\mathpunct", "\\mathinner"], {
               numArgs: 1
           }, function(e, t) {
               var r = t[0];
               return {
                   type: "mclass",
                   mclass: "m" + e.funcName.substr(5),
                   value: o(r)
               }
           });
           l("\\stackrel", {
               numArgs: 2
           }, function(e, t) {
               var r = t[0];
               var a = t[1];
               var i = new s("op", {
                   type: "op",
                   limits: true,
                   alwaysHandleSupSub: true,
                   symbol: false,
                   value: o(a)
               }, a.mode);
               var n = new s("supsub", {
                   base: i,
                   sup: r,
                   sub: null
               }, r.mode);
               return {
                   type: "mclass",
                   mclass: "mrel",
                   value: [n]
               }
           });
           l("\\bmod", {
               numArgs: 0
           }, function(e, t) {
               return {
                   type: "mod",
                   modType: "bmod",
                   value: null
               }
           });
           l(["\\pod", "\\pmod", "\\mod"], {
               numArgs: 1
           }, function(e, t) {
               var r = t[0];
               return {
                   type: "mod",
                   modType: e.funcName.substr(1),
                   value: o(r)
               }
           });
           var p = {
               "\\bigl": {
                   mclass: "mopen",
                   size: 1
               },
               "\\Bigl": {
                   mclass: "mopen",
                   size: 2
               },
               "\\biggl": {
                   mclass: "mopen",
                   size: 3
               },
               "\\Biggl": {
                   mclass: "mopen",
                   size: 4
               },
               "\\bigr": {
                   mclass: "mclose",
                   size: 1
               },
               "\\Bigr": {
                   mclass: "mclose",
                   size: 2
               },
               "\\biggr": {
                   mclass: "mclose",
                   size: 3
               },
               "\\Biggr": {
                   mclass: "mclose",
                   size: 4
               },
               "\\bigm": {
                   mclass: "mrel",
                   size: 1
               },
               "\\Bigm": {
                   mclass: "mrel",
                   size: 2
               },
               "\\biggm": {
                   mclass: "mrel",
                   size: 3
               },
               "\\Biggm": {
                   mclass: "mrel",
                   size: 4
               },
               "\\big": {
                   mclass: "mord",
                   size: 1
               },
               "\\Big": {
                   mclass: "mord",
                   size: 2
               },
               "\\bigg": {
                   mclass: "mord",
                   size: 3
               },
               "\\Bigg": {
                   mclass: "mord",
                   size: 4
               }
           };
           var h = ["(", ")", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\\lfloor", "\\rfloor", "\\lceil", "\\rceil", "<", ">", "\\langle", "\\rangle", "\\lt", "\\gt", "\\lvert", "\\rvert", "\\lVert", "\\rVert", "\\lgroup", "\\rgroup", "\\lmoustache", "\\rmoustache", "/", "\\backslash", "|", "\\vert", "\\|", "\\Vert", "\\uparrow", "\\Uparrow", "\\downarrow", "\\Downarrow", "\\updownarrow", "\\Updownarrow", "."];
           var c = {
               "\\Bbb": "\\mathbb",
               "\\bold": "\\mathbf",
               "\\frak": "\\mathfrak"
           };
           l(["\\blue", "\\orange", "\\pink", "\\red", "\\green", "\\gray", "\\purple", "\\blueA", "\\blueB", "\\blueC", "\\blueD", "\\blueE", "\\tealA", "\\tealB", "\\tealC", "\\tealD", "\\tealE", "\\greenA", "\\greenB", "\\greenC", "\\greenD", "\\greenE", "\\goldA", "\\goldB", "\\goldC", "\\goldD", "\\goldE", "\\redA", "\\redB", "\\redC", "\\redD", "\\redE", "\\maroonA", "\\maroonB", "\\maroonC", "\\maroonD", "\\maroonE", "\\purpleA", "\\purpleB", "\\purpleC", "\\purpleD", "\\purpleE", "\\mintA", "\\mintB", "\\mintC", "\\grayA", "\\grayB", "\\grayC", "\\grayD", "\\grayE", "\\grayF", "\\grayG", "\\grayH", "\\grayI", "\\kaBlue", "\\kaGreen"], {
               numArgs: 1,
               allowedInText: true,
               greediness: 3
           }, function(e, t) {
               var r = t[0];
               return {
                   type: "color",
                   color: "katex-" + e.funcName.slice(1),
                   value: o(r)
               }
           });
           l(["\\arcsin", "\\arccos", "\\arctan", "\\arg", "\\cos", "\\cosh", "\\cot", "\\coth", "\\csc", "\\deg", "\\dim", "\\exp", "\\hom", "\\ker", "\\lg", "\\ln", "\\log", "\\sec", "\\sin", "\\sinh", "\\tan", "\\tanh"], {
               numArgs: 0
           }, function(e) {
               return {
                   type: "op",
                   limits: false,
                   symbol: false,
                   body: e.funcName
               }
           });
           l(["\\det", "\\gcd", "\\inf", "\\lim", "\\liminf", "\\limsup", "\\max", "\\min", "\\Pr", "\\sup"], {
               numArgs: 0
           }, function(e) {
               return {
                   type: "op",
                   limits: true,
                   symbol: false,
                   body: e.funcName
               }
           });
           l(["\\int", "\\iint", "\\iiint", "\\oint"], {
               numArgs: 0
           }, function(e) {
               return {
                   type: "op",
                   limits: false,
                   symbol: true,
                   body: e.funcName
               }
           });
           l(["\\coprod", "\\bigvee", "\\bigwedge", "\\biguplus", "\\bigcap", "\\bigcup", "\\intop", "\\prod", "\\sum", "\\bigotimes", "\\bigoplus", "\\bigodot", "\\bigsqcup", "\\smallint"], {
               numArgs: 0
           }, function(e) {
               return {
                   type: "op",
                   limits: true,
                   symbol: true,
                   body: e.funcName
               }
           });
           l("\\mathop", {
               numArgs: 1
           }, function(e, t) {
               var r = t[0];
               return {
                   type: "op",
                   limits: false,
                   symbol: false,
                   value: o(r)
               }
           });
           l(["\\dfrac", "\\frac", "\\tfrac", "\\dbinom", "\\binom", "\\tbinom", "\\\\atopfrac"], {
               numArgs: 2,
               greediness: 2
           }, function(e, t) {
               var r = t[0];
               var a = t[1];
               var i;
               var n = null;
               var s = null;
               var l = "auto";
               switch (e.funcName) {
                   case "\\dfrac":
                   case "\\frac":
                   case "\\tfrac":
                       i = true;
                       break;
                   case "\\\\atopfrac":
                       i = false;
                       break;
                   case "\\dbinom":
                   case "\\binom":
                   case "\\tbinom":
                       i = false;
                       n = "(";
                       s = ")";
                       break;
                   default:
                       throw new Error("Unrecognized genfrac command")
               }
               switch (e.funcName) {
                   case "\\dfrac":
                   case "\\dbinom":
                       l = "display";
                       break;
                   case "\\tfrac":
                   case "\\tbinom":
                       l = "text";
                       break
               }
               return {
                   type: "genfrac",
                   numer: r,
                   denom: a,
                   hasBarLine: i,
                   leftDelim: n,
                   rightDelim: s,
                   size: l
               }
           });
           l(["\\llap", "\\rlap"], {
               numArgs: 1,
               allowedInText: true
           }, function(e, t) {
               var r = t[0];
               return {
                   type: e.funcName.slice(1),
                   body: r
               }
           });
           var m = function(e, t) {
               if (a.contains(h, e.value)) {
                   return e
               } else {
                   throw new i("Invalid delimiter: '" + e.value + "' after '" + t.funcName + "'", e)
               }
           };
           l(["\\bigl", "\\Bigl", "\\biggl", "\\Biggl", "\\bigr", "\\Bigr", "\\biggr", "\\Biggr", "\\bigm", "\\Bigm", "\\biggm", "\\Biggm", "\\big", "\\Big", "\\bigg", "\\Bigg"], {
               numArgs: 1
           }, function(e, t) {
               var r = m(t[0], e);
               return {
                   type: "delimsizing",
                   size: p[e.funcName].size,
                   mclass: p[e.funcName].mclass,
                   value: r.value
               }
           });
           l(["\\left", "\\right"], {
               numArgs: 1
           }, function(e, t) {
               var r = m(t[0], e);
               return {
                   type: "leftright",
                   value: r.value
               }
           });
           l("\\middle", {
               numArgs: 1
           }, function(e, t) {
               var r = m(t[0], e);
               if (!e.parser.leftrightDepth) {
                   throw new i("\\middle without preceding \\left", r)
               }
               return {
                   type: "middle",
                   value: r.value
               }
           });
           l(["\\tiny", "\\scriptsize", "\\footnotesize", "\\small", "\\normalsize", "\\large", "\\Large", "\\LARGE", "\\huge", "\\Huge"], 0, null);
           l(["\\displaystyle", "\\textstyle", "\\scriptstyle", "\\scriptscriptstyle"], 0, null);
           l(["\\mathrm", "\\mathit", "\\mathbf", "\\mathbb", "\\mathcal", "\\mathfrak", "\\mathscr", "\\mathsf", "\\mathtt", "\\Bbb", "\\bold", "\\frak"], {
               numArgs: 1,
               greediness: 2
           }, function(e, t) {
               var r = t[0];
               var a = e.funcName;
               if (a in c) {
                   a = c[a]
               }
               return {
                   type: "font",
                   font: a.slice(1),
                   body: r
               }
           });
           l(["\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot"], {
               numArgs: 1
           }, function(e, t) {
               var r = t[0];
               return {
                   type: "accent",
                   accent: e.funcName,
                   base: r
               }
           });
           l(["\\over", "\\choose", "\\atop"], {
               numArgs: 0,
               infix: true
           }, function(e) {
               var t;
               switch (e.funcName) {
                   case "\\over":
                       t = "\\frac";
                       break;
                   case "\\choose":
                       t = "\\binom";
                       break;
                   case "\\atop":
                       t = "\\\\atopfrac";
                       break;
                   default:
                       throw new Error("Unrecognized infix genfrac command")
               }
               return {
                   type: "infix",
                   replaceWith: t,
                   token: e.token
               }
           });
           l(["\\\\", "\\cr"], {
               numArgs: 0,
               numOptionalArgs: 1,
               argTypes: ["size"]
           }, function(e, t) {
               var r = t[0];
               return {
                   type: "cr",
                   size: r
               }
           });
           l(["\\begin", "\\end"], {
               numArgs: 1,
               argTypes: ["text"]
           }, function(e, t) {
               var r = t[0];
               if (r.type !== "ordgroup") {
                   throw new i("Invalid environment name", r)
               }
               var a = "";
               for (var n = 0; n < r.value.length; ++n) {
                   a += r.value[n].value
               }
               return {
                   type: "environment",
                   name: a,
                   nameGroup: r
               }
           })
       }, {
           "./ParseError": 6,
           "./parseData": 21,
           "./utils": 25
       }],
       20: [function(e, t, r) {
           var a = e("./utils");
           function i(e, t) {
               this.type = e;
               this.attributes = {};
               this.children = t || []
           }
           i.prototype.setAttribute = function(e, t) {
               this.attributes[e] = t
           };
           i.prototype.toNode = function() {
               var e = document.createElementNS("http://www.w3.org/1998/Math/MathML", this.type);
               for (var t in this.attributes) {
                   if (Object.prototype.hasOwnProperty.call(this.attributes, t)) {
                       e.setAttribute(t, this.attributes[t])
                   }
               }
               for (var r = 0; r < this.children.length; r++) {
                   e.appendChild(this.children[r].toNode())
               }
               return e
           };
           i.prototype.toMarkup = function() {
               var e = "<" + this.type;
               for (var t in this.attributes) {
                   if (Object.prototype.hasOwnProperty.call(this.attributes, t)) {
                       e += " " + t + '="';
                       e += a.escape(this.attributes[t]);
                       e += '"'
                   }
               }
               e += ">";
               for (var r = 0; r < this.children.length; r++) {
                   e += this.children[r].toMarkup()
               }
               e += "</" + this.type + ">";
               return e
           };
           function n(e) {
               this.text = e
           }
           n.prototype.toNode = function() {
               return document.createTextNode(this.text)
           };
           n.prototype.toMarkup = function() {
               return a.escape(this.text)
           };
           t.exports = {
               MathNode: i,
               TextNode: n
           }
       }, {
           "./utils": 25
       }],
       21: [function(e, t, r) {
           function a(e, t, r, a, i) {
               this.type = e;
               this.value = t;
               this.mode = r;
               if (a && (!i || i.lexer === a.lexer)) {
                   this.lexer = a.lexer;
                   this.start = a.start;
                   this.end = (i || a).end
               }
           }
           t.exports = {
               ParseNode: a
           }
       }, {}],
       22: [function(e, t, r) {
           var a = e("./Parser");
           var i = function(e, t) {
               if (!(typeof e === "string" || e instanceof String)) {
                   throw new TypeError("KaTeX can only parse string typed expression")
               }
               var r = new a(e, t);
               return r.parse()
           };
           t.exports = i
       }, {
           "./Parser": 7
       }],
       23: [function(e, t, r) {
           t.exports = {
               math: {},
               text: {}
           };
           function a(e, r, a, i, n) {
               t.exports[e][n] = {
                   font: r,
                   group: a,
                   replace: i
               }
           }
           var i = "math";
           var n = "text";
           var s = "main";
           var l = "ams";
           var o = "accent";
           var u = "bin";
           var p = "close";
           var h = "inner";
           var c = "mathord";
           var m = "op";
           var f = "open";
           var v = "punct";
           var d = "rel";
           var g = "spacing";
           var y = "textord";
           a(i, s, d, "\u2261", "\\equiv");
           a(i, s, d, "\u227a", "\\prec");
           a(i, s, d, "\u227b", "\\succ");
           a(i, s, d, "\u223c", "\\sim");
           a(i, s, d, "\u22a5", "\\perp");
           a(i, s, d, "\u2aaf", "\\preceq");
           a(i, s, d, "\u2ab0", "\\succeq");
           a(i, s, d, "\u2243", "\\simeq");
           a(i, s, d, "\u2223", "\\mid");
           a(i, s, d, "\u226a", "\\ll");
           a(i, s, d, "\u226b", "\\gg");
           a(i, s, d, "\u224d", "\\asymp");
           a(i, s, d, "\u2225", "\\parallel");
           a(i, s, d, "\u22c8", "\\bowtie");
           a(i, s, d, "\u2323", "\\smile");
           a(i, s, d, "\u2291", "\\sqsubseteq");
           a(i, s, d, "\u2292", "\\sqsupseteq");
           a(i, s, d, "\u2250", "\\doteq");
           a(i, s, d, "\u2322", "\\frown");
           a(i, s, d, "\u220b", "\\ni");
           a(i, s, d, "\u221d", "\\propto");
           a(i, s, d, "\u22a2", "\\vdash");
           a(i, s, d, "\u22a3", "\\dashv");
           a(i, s, d, "\u220b", "\\owns");
           a(i, s, v, ".", "\\ldotp");
           a(i, s, v, "\u22c5", "\\cdotp");
           a(i, s, y, "#", "\\#");
           a(n, s, y, "#", "\\#");
           a(i, s, y, "&", "\\&");
           a(n, s, y, "&", "\\&");
           a(i, s, y, "\u2135", "\\aleph");
           a(i, s, y, "\u2200", "\\forall");
           a(i, s, y, "\u210f", "\\hbar");
           a(i, s, y, "\u2203", "\\exists");
           a(i, s, y, "\u2207", "\\nabla");
           a(i, s, y, "\u266d", "\\flat");
           a(i, s, y, "\u2113", "\\ell");
           a(i, s, y, "\u266e", "\\natural");
           a(i, s, y, "\u2663", "\\clubsuit");
           a(i, s, y, "\u2118", "\\wp");
           a(i, s, y, "\u266f", "\\sharp");
           a(i, s, y, "\u2662", "\\diamondsuit");
           a(i, s, y, "\u211c", "\\Re");
           a(i, s, y, "\u2661", "\\heartsuit");
           a(i, s, y, "\u2111", "\\Im");
           a(i, s, y, "\u2660", "\\spadesuit");
           a(i, s, y, "\u2020", "\\dag");
           a(i, s, y, "\u2021", "\\ddag");
           a(i, s, p, "\u23b1", "\\rmoustache");
           a(i, s, f, "\u23b0", "\\lmoustache");
           a(i, s, p, "\u27ef", "\\rgroup");
           a(i, s, f, "\u27ee", "\\lgroup");
           a(i, s, u, "\u2213", "\\mp");
           a(i, s, u, "\u2296", "\\ominus");
           a(i, s, u, "\u228e", "\\uplus");
           a(i, s, u, "\u2293", "\\sqcap");
           a(i, s, u, "\u2217", "\\ast");
           a(i, s, u, "\u2294", "\\sqcup");
           a(i, s, u, "\u25ef", "\\bigcirc");
           a(i, s, u, "\u2219", "\\bullet");
           a(i, s, u, "\u2021", "\\ddagger");
           a(i, s, u, "\u2240", "\\wr");
           a(i, s, u, "\u2a3f", "\\amalg");
           a(i, s, d, "\u27f5", "\\longleftarrow");
           a(i, s, d, "\u21d0", "\\Leftarrow");
           a(i, s, d, "\u27f8", "\\Longleftarrow");
           a(i, s, d, "\u27f6", "\\longrightarrow");
           a(i, s, d, "\u21d2", "\\Rightarrow");
           a(i, s, d, "\u27f9", "\\Longrightarrow");
           a(i, s, d, "\u2194", "\\leftrightarrow");
           a(i, s, d, "\u27f7", "\\longleftrightarrow");
           a(i, s, d, "\u21d4", "\\Leftrightarrow");
           a(i, s, d, "\u27fa", "\\Longleftrightarrow");
           a(i, s, d, "\u21a6", "\\mapsto");
           a(i, s, d, "\u27fc", "\\longmapsto");
           a(i, s, d, "\u2197", "\\nearrow");
           a(i, s, d, "\u21a9", "\\hookleftarrow");
           a(i, s, d, "\u21aa", "\\hookrightarrow");
           a(i, s, d, "\u2198", "\\searrow");
           a(i, s, d, "\u21bc", "\\leftharpoonup");
           a(i, s, d, "\u21c0", "\\rightharpoonup");
           a(i, s, d, "\u2199", "\\swarrow");
           a(i, s, d, "\u21bd", "\\leftharpoondown");
           a(i, s, d, "\u21c1", "\\rightharpoondown");
           a(i, s, d, "\u2196", "\\nwarrow");
           a(i, s, d, "\u21cc", "\\rightleftharpoons");
           a(i, l, d, "\u226e", "\\nless");
           a(i, l, d, "\ue010", "\\nleqslant");
           a(i, l, d, "\ue011", "\\nleqq");
           a(i, l, d, "\u2a87", "\\lneq");
           a(i, l, d, "\u2268", "\\lneqq");
           a(i, l, d, "\ue00c", "\\lvertneqq");
           a(i, l, d, "\u22e6", "\\lnsim");
           a(i, l, d, "\u2a89", "\\lnapprox");
           a(i, l, d, "\u2280", "\\nprec");
           a(i, l, d, "\u22e0", "\\npreceq");
           a(i, l, d, "\u22e8", "\\precnsim");
           a(i, l, d, "\u2ab9", "\\precnapprox");
           a(i, l, d, "\u2241", "\\nsim");
           a(i, l, d, "\ue006", "\\nshortmid");
           a(i, l, d, "\u2224", "\\nmid");
           a(i, l, d, "\u22ac", "\\nvdash");
           a(i, l, d, "\u22ad", "\\nvDash");
           a(i, l, d, "\u22ea", "\\ntriangleleft");
           a(i, l, d, "\u22ec", "\\ntrianglelefteq");
           a(i, l, d, "\u228a", "\\subsetneq");
           a(i, l, d, "\ue01a", "\\varsubsetneq");
           a(i, l, d, "\u2acb", "\\subsetneqq");
           a(i, l, d, "\ue017", "\\varsubsetneqq");
           a(i, l, d, "\u226f", "\\ngtr");
           a(i, l, d, "\ue00f", "\\ngeqslant");
           a(i, l, d, "\ue00e", "\\ngeqq");
           a(i, l, d, "\u2a88", "\\gneq");
           a(i, l, d, "\u2269", "\\gneqq");
           a(i, l, d, "\ue00d", "\\gvertneqq");
           a(i, l, d, "\u22e7", "\\gnsim");
           a(i, l, d, "\u2a8a", "\\gnapprox");
           a(i, l, d, "\u2281", "\\nsucc");
           a(i, l, d, "\u22e1", "\\nsucceq");
           a(i, l, d, "\u22e9", "\\succnsim");
           a(i, l, d, "\u2aba", "\\succnapprox");
           a(i, l, d, "\u2246", "\\ncong");
           a(i, l, d, "\ue007", "\\nshortparallel");
           a(i, l, d, "\u2226", "\\nparallel");
           a(i, l, d, "\u22af", "\\nVDash");
           a(i, l, d, "\u22eb", "\\ntriangleright");
           a(i, l, d, "\u22ed", "\\ntrianglerighteq");
           a(i, l, d, "\ue018", "\\nsupseteqq");
           a(i, l, d, "\u228b", "\\supsetneq");
           a(i, l, d, "\ue01b", "\\varsupsetneq");
           a(i, l, d, "\u2acc", "\\supsetneqq");
           a(i, l, d, "\ue019", "\\varsupsetneqq");
           a(i, l, d, "\u22ae", "\\nVdash");
           a(i, l, d, "\u2ab5", "\\precneqq");
           a(i, l, d, "\u2ab6", "\\succneqq");
           a(i, l, d, "\ue016", "\\nsubseteqq");
           a(i, l, u, "\u22b4", "\\unlhd");
           a(i, l, u, "\u22b5", "\\unrhd");
           a(i, l, d, "\u219a", "\\nleftarrow");
           a(i, l, d, "\u219b", "\\nrightarrow");
           a(i, l, d, "\u21cd", "\\nLeftarrow");
           a(i, l, d, "\u21cf", "\\nRightarrow");
           a(i, l, d, "\u21ae", "\\nleftrightarrow");
           a(i, l, d, "\u21ce", "\\nLeftrightarrow");
           a(i, l, d, "\u25b3", "\\vartriangle");
           a(i, l, y, "\u210f", "\\hslash");
           a(i, l, y, "\u25bd", "\\triangledown");
           a(i, l, y, "\u25ca", "\\lozenge");
           a(i, l, y, "\u24c8", "\\circledS");
           a(i, l, y, "\xae", "\\circledR");
           a(i, l, y, "\u2221", "\\measuredangle");
           a(i, l, y, "\u2204", "\\nexists");
           a(i, l, y, "\u2127", "\\mho");
           a(i, l, y, "\u2132", "\\Finv");
           a(i, l, y, "\u2141", "\\Game");
           a(i, l, y, "k", "\\Bbbk");
           a(i, l, y, "\u2035", "\\backprime");
           a(i, l, y, "\u25b2", "\\blacktriangle");
           a(i, l, y, "\u25bc", "\\blacktriangledown");
           a(i, l, y, "\u25a0", "\\blacksquare");
           a(i, l, y, "\u29eb", "\\blacklozenge");
           a(i, l, y, "\u2605", "\\bigstar");
           a(i, l, y, "\u2222", "\\sphericalangle");
           a(i, l, y, "\u2201", "\\complement");
           a(i, l, y, "\xf0", "\\eth");
           a(i, l, y, "\u2571", "\\diagup");
           a(i, l, y, "\u2572", "\\diagdown");
           a(i, l, y, "\u25a1", "\\square");
           a(i, l, y, "\u25a1", "\\Box");
           a(i, l, y, "\u25ca", "\\Diamond");
           a(i, l, y, "\xa5", "\\yen");
           a(i, l, y, "\u2713", "\\checkmark");
           a(i, l, y, "\u2136", "\\beth");
           a(i, l, y, "\u2138", "\\daleth");
           a(i, l, y, "\u2137", "\\gimel");
           a(i, l, y, "\u03dd", "\\digamma");
           a(i, l, y, "\u03f0", "\\varkappa");
           a(i, l, f, "\u250c", "\\ulcorner");
           a(i, l, p, "\u2510", "\\urcorner");
           a(i, l, f, "\u2514", "\\llcorner");
           a(i, l, p, "\u2518", "\\lrcorner");
           a(i, l, d, "\u2266", "\\leqq");
           a(i, l, d, "\u2a7d", "\\leqslant");
           a(i, l, d, "\u2a95", "\\eqslantless");
           a(i, l, d, "\u2272", "\\lesssim");
           a(i, l, d, "\u2a85", "\\lessapprox");
           a(i, l, d, "\u224a", "\\approxeq");
           a(i, l, u, "\u22d6", "\\lessdot");
           a(i, l, d, "\u22d8", "\\lll");
           a(i, l, d, "\u2276", "\\lessgtr");
           a(i, l, d, "\u22da", "\\lesseqgtr");
           a(i, l, d, "\u2a8b", "\\lesseqqgtr");
           a(i, l, d, "\u2251", "\\doteqdot");
           a(i, l, d, "\u2253", "\\risingdotseq");
           a(i, l, d, "\u2252", "\\fallingdotseq");
           a(i, l, d, "\u223d", "\\backsim");
           a(i, l, d, "\u22cd", "\\backsimeq");
           a(i, l, d, "\u2ac5", "\\subseteqq");
           a(i, l, d, "\u22d0", "\\Subset");
           a(i, l, d, "\u228f", "\\sqsubset");
           a(i, l, d, "\u227c", "\\preccurlyeq");
           a(i, l, d, "\u22de", "\\curlyeqprec");
           a(i, l, d, "\u227e", "\\precsim");
           a(i, l, d, "\u2ab7", "\\precapprox");
           a(i, l, d, "\u22b2", "\\vartriangleleft");
           a(i, l, d, "\u22b4", "\\trianglelefteq");
           a(i, l, d, "\u22a8", "\\vDash");
           a(i, l, d, "\u22aa", "\\Vvdash");
           a(i, l, d, "\u2323", "\\smallsmile");
           a(i, l, d, "\u2322", "\\smallfrown");
           a(i, l, d, "\u224f", "\\bumpeq");
           a(i, l, d, "\u224e", "\\Bumpeq");
           a(i, l, d, "\u2267", "\\geqq");
           a(i, l, d, "\u2a7e", "\\geqslant");
           a(i, l, d, "\u2a96", "\\eqslantgtr");
           a(i, l, d, "\u2273", "\\gtrsim");
           a(i, l, d, "\u2a86", "\\gtrapprox");
           a(i, l, u, "\u22d7", "\\gtrdot");
           a(i, l, d, "\u22d9", "\\ggg");
           a(i, l, d, "\u2277", "\\gtrless");
           a(i, l, d, "\u22db", "\\gtreqless");
           a(i, l, d, "\u2a8c", "\\gtreqqless");
           a(i, l, d, "\u2256", "\\eqcirc");
           a(i, l, d, "\u2257", "\\circeq");
           a(i, l, d, "\u225c", "\\triangleq");
           a(i, l, d, "\u223c", "\\thicksim");
           a(i, l, d, "\u2248", "\\thickapprox");
           a(i, l, d, "\u2ac6", "\\supseteqq");
           a(i, l, d, "\u22d1", "\\Supset");
           a(i, l, d, "\u2290", "\\sqsupset");
           a(i, l, d, "\u227d", "\\succcurlyeq");
           a(i, l, d, "\u22df", "\\curlyeqsucc");
           a(i, l, d, "\u227f", "\\succsim");
           a(i, l, d, "\u2ab8", "\\succapprox");
           a(i, l, d, "\u22b3", "\\vartriangleright");
           a(i, l, d, "\u22b5", "\\trianglerighteq");
           a(i, l, d, "\u22a9", "\\Vdash");
           a(i, l, d, "\u2223", "\\shortmid");
           a(i, l, d, "\u2225", "\\shortparallel");
           a(i, l, d, "\u226c", "\\between");
           a(i, l, d, "\u22d4", "\\pitchfork");
           a(i, l, d, "\u221d", "\\varpropto");
           a(i, l, d, "\u25c0", "\\blacktriangleleft");
           a(i, l, d, "\u2234", "\\therefore");
           a(i, l, d, "\u220d", "\\backepsilon");
           a(i, l, d, "\u25b6", "\\blacktriangleright");
           a(i, l, d, "\u2235", "\\because");
           a(i, l, d, "\u22d8", "\\llless");
           a(i, l, d, "\u22d9", "\\gggtr");
           a(i, l, u, "\u22b2", "\\lhd");
           a(i, l, u, "\u22b3", "\\rhd");
           a(i, l, d, "\u2242", "\\eqsim");
           a(i, s, d, "\u22c8", "\\Join");
           a(i, l, d, "\u2251", "\\Doteq");
           a(i, l, u, "\u2214", "\\dotplus");
           a(i, l, u, "\u2216", "\\smallsetminus");
           a(i, l, u, "\u22d2", "\\Cap");
           a(i, l, u, "\u22d3", "\\Cup");
           a(i, l, u, "\u2a5e", "\\doublebarwedge");
           a(i, l, u, "\u229f", "\\boxminus");
           a(i, l, u, "\u229e", "\\boxplus");
           a(i, l, u, "\u22c7", "\\divideontimes");
           a(i, l, u, "\u22c9", "\\ltimes");
           a(i, l, u, "\u22ca", "\\rtimes");
           a(i, l, u, "\u22cb", "\\leftthreetimes");
           a(i, l, u, "\u22cc", "\\rightthreetimes");
           a(i, l, u, "\u22cf", "\\curlywedge");
           a(i, l, u, "\u22ce", "\\curlyvee");
           a(i, l, u, "\u229d", "\\circleddash");
           a(i, l, u, "\u229b", "\\circledast");
           a(i, l, u, "\u22c5", "\\centerdot");
           a(i, l, u, "\u22ba", "\\intercal");
           a(i, l, u, "\u22d2", "\\doublecap");
           a(i, l, u, "\u22d3", "\\doublecup");
           a(i, l, u, "\u22a0", "\\boxtimes");
           a(i, l, d, "\u21e2", "\\dashrightarrow");
           a(i, l, d, "\u21e0", "\\dashleftarrow");
           a(i, l, d, "\u21c7", "\\leftleftarrows");
           a(i, l, d, "\u21c6", "\\leftrightarrows");
           a(i, l, d, "\u21da", "\\Lleftarrow");
           a(i, l, d, "\u219e", "\\twoheadleftarrow");
           a(i, l, d, "\u21a2", "\\leftarrowtail");
           a(i, l, d, "\u21ab", "\\looparrowleft");
           a(i, l, d, "\u21cb", "\\leftrightharpoons");
           a(i, l, d, "\u21b6", "\\curvearrowleft");
           a(i, l, d, "\u21ba", "\\circlearrowleft");
           a(i, l, d, "\u21b0", "\\Lsh");
           a(i, l, d, "\u21c8", "\\upuparrows");
           a(i, l, d, "\u21bf", "\\upharpoonleft");
           a(i, l, d, "\u21c3", "\\downharpoonleft");
           a(i, l, d, "\u22b8", "\\multimap");
           a(i, l, d, "\u21ad", "\\leftrightsquigarrow");
           a(i, l, d, "\u21c9", "\\rightrightarrows");
           a(i, l, d, "\u21c4", "\\rightleftarrows");
           a(i, l, d, "\u21a0", "\\twoheadrightarrow");
           a(i, l, d, "\u21a3", "\\rightarrowtail");
           a(i, l, d, "\u21ac", "\\looparrowright");
           a(i, l, d, "\u21b7", "\\curvearrowright");
           a(i, l, d, "\u21bb", "\\circlearrowright");
           a(i, l, d, "\u21b1", "\\Rsh");
           a(i, l, d, "\u21ca", "\\downdownarrows");
           a(i, l, d, "\u21be", "\\upharpoonright");
           a(i, l, d, "\u21c2", "\\downharpoonright");
           a(i, l, d, "\u21dd", "\\rightsquigarrow");
           a(i, l, d, "\u21dd", "\\leadsto");
           a(i, l, d, "\u21db", "\\Rrightarrow");
           a(i, l, d, "\u21be", "\\restriction");
           a(i, s, y, "\u2018", "`");
           a(i, s, y, "$", "\\$");
           a(n, s, y, "$", "\\$");
           a(i, s, y, "%", "\\%");
           a(n, s, y, "%", "\\%");
           a(i, s, y, "_", "\\_");
           a(n, s, y, "_", "\\_");
           a(i, s, y, "\u2220", "\\angle");
           a(i, s, y, "\u221e", "\\infty");
           a(i, s, y, "\u2032", "\\prime");
           a(i, s, y, "\u25b3", "\\triangle");
           a(i, s, y, "\u0393", "\\Gamma");
           a(i, s, y, "\u0394", "\\Delta");
           a(i, s, y, "\u0398", "\\Theta");
           a(i, s, y, "\u039b", "\\Lambda");
           a(i, s, y, "\u039e", "\\Xi");
           a(i, s, y, "\u03a0", "\\Pi");
           a(i, s, y, "\u03a3", "\\Sigma");
           a(i, s, y, "\u03a5", "\\Upsilon");
           a(i, s, y, "\u03a6", "\\Phi");
           a(i, s, y, "\u03a8", "\\Psi");
           a(i, s, y, "\u03a9", "\\Omega");
           a(i, s, y, "\xac", "\\neg");
           a(i, s, y, "\xac", "\\lnot");
           a(i, s, y, "\u22a4", "\\top");
           a(i, s, y, "\u22a5", "\\bot");
           a(i, s, y, "\u2205", "\\emptyset");
           a(i, l, y, "\u2205", "\\varnothing");
           a(i, s, c, "\u03b1", "\\alpha");
           a(i, s, c, "\u03b2", "\\beta");
           a(i, s, c, "\u03b3", "\\gamma");
           a(i, s, c, "\u03b4", "\\delta");
           a(i, s, c, "\u03f5", "\\epsilon");
           a(i, s, c, "\u03b6", "\\zeta");
           a(i, s, c, "\u03b7", "\\eta");
           a(i, s, c, "\u03b8", "\\theta");
           a(i, s, c, "\u03b9", "\\iota");
           a(i, s, c, "\u03ba", "\\kappa");
           a(i, s, c, "\u03bb", "\\lambda");
           a(i, s, c, "\u03bc", "\\mu");
           a(i, s, c, "\u03bd", "\\nu");
           a(i, s, c, "\u03be", "\\xi");
           a(i, s, c, "o", "\\omicron");
           a(i, s, c, "\u03c0", "\\pi");
           a(i, s, c, "\u03c1", "\\rho");
           a(i, s, c, "\u03c3", "\\sigma");
           a(i, s, c, "\u03c4", "\\tau");
           a(i, s, c, "\u03c5", "\\upsilon");
           a(i, s, c, "\u03d5", "\\phi");
           a(i, s, c, "\u03c7", "\\chi");
           a(i, s, c, "\u03c8", "\\psi");
           a(i, s, c, "\u03c9", "\\omega");
           a(i, s, c, "\u03b5", "\\varepsilon");
           a(i, s, c, "\u03d1", "\\vartheta");
           a(i, s, c, "\u03d6", "\\varpi");
           a(i, s, c, "\u03f1", "\\varrho");
           a(i, s, c, "\u03c2", "\\varsigma");
           a(i, s, c, "\u03c6", "\\varphi");
           a(i, s, u, "\u2217", "*");
           a(i, s, u, "+", "+");
           a(i, s, u, "\u2212", "-");
           a(i, s, u, "\u22c5", "\\cdot");
           a(i, s, u, "\u2218", "\\circ");
           a(i, s, u, "\xf7", "\\div");
           a(i, s, u, "\xb1", "\\pm");
           a(i, s, u, "\xd7", "\\times");
           a(i, s, u, "\u2229", "\\cap");
           a(i, s, u, "\u222a", "\\cup");
           a(i, s, u, "\u2216", "\\setminus");
           a(i, s, u, "\u2227", "\\land");
           a(i, s, u, "\u2228", "\\lor");
           a(i, s, u, "\u2227", "\\wedge");
           a(i, s, u, "\u2228", "\\vee");
           a(i, s, y, "\u221a", "\\surd");
           a(i, s, f, "(", "(");
           a(i, s, f, "[", "[");
           a(i, s, f, "\u27e8", "\\langle");
           a(i, s, f, "\u2223", "\\lvert");
           a(i, s, f, "\u2225", "\\lVert");
           a(i, s, p, ")", ")");
           a(i, s, p, "]", "]");
           a(i, s, p, "?", "?");
           a(i, s, p, "!", "!");
           a(i, s, p, "\u27e9", "\\rangle");
           a(i, s, p, "\u2223", "\\rvert");
           a(i, s, p, "\u2225", "\\rVert");
           a(i, s, d, "=", "=");
           a(i, s, d, "<", "<");
           a(i, s, d, ">", ">");
           a(i, s, d, ":", ":");
           a(i, s, d, "\u2248", "\\approx");
           a(i, s, d, "\u2245", "\\cong");
           a(i, s, d, "\u2265", "\\ge");
           a(i, s, d, "\u2265", "\\geq");
           a(i, s, d, "\u2190", "\\gets");
           a(i, s, d, ">", "\\gt");
           a(i, s, d, "\u2208", "\\in");
           a(i, s, d, "\u2209", "\\notin");
           a(i, s, d, "\u2282", "\\subset");
           a(i, s, d, "\u2283", "\\supset");
           a(i, s, d, "\u2286", "\\subseteq");
           a(i, s, d, "\u2287", "\\supseteq");
           a(i, l, d, "\u2288", "\\nsubseteq");
           a(i, l, d, "\u2289", "\\nsupseteq");
           a(i, s, d, "\u22a8", "\\models");
           a(i, s, d, "\u2190", "\\leftarrow");
           a(i, s, d, "\u2264", "\\le");
           a(i, s, d, "\u2264", "\\leq");
           a(i, s, d, "<", "\\lt");
           a(i, s, d, "\u2260", "\\ne");
           a(i, s, d, "\u2260", "\\neq");
           a(i, s, d, "\u2192", "\\rightarrow");
           a(i, s, d, "\u2192", "\\to");
           a(i, l, d, "\u2271", "\\ngeq");
           a(i, l, d, "\u2270", "\\nleq");
           a(i, s, g, null, "\\!");
           a(i, s, g, "\xa0", "\\ ");
           a(i, s, g, "\xa0", "~");
           a(i, s, g, null, "\\,");
           a(i, s, g, null, "\\:");
           a(i, s, g, null, "\\;");
           a(i, s, g, null, "\\enspace");
           a(i, s, g, null, "\\qquad");
           a(i, s, g, null, "\\quad");
           a(i, s, g, "\xa0", "\\space");
           a(i, s, v, ",", ",");
           a(i, s, v, ";", ";");
           a(i, s, v, ":", "\\colon");
           a(i, l, u, "\u22bc", "\\barwedge");
           a(i, l, u, "\u22bb", "\\veebar");
           a(i, s, u, "\u2299", "\\odot");
           a(i, s, u, "\u2295", "\\oplus");
           a(i, s, u, "\u2297", "\\otimes");
           a(i, s, y, "\u2202", "\\partial");
           a(i, s, u, "\u2298", "\\oslash");
           a(i, l, u, "\u229a", "\\circledcirc");
           a(i, l, u, "\u22a1", "\\boxdot");
           a(i, s, u, "\u25b3", "\\bigtriangleup");
           a(i, s, u, "\u25bd", "\\bigtriangledown");
           a(i, s, u, "\u2020", "\\dagger");
           a(i, s, u, "\u22c4", "\\diamond");
           a(i, s, u, "\u22c6", "\\star");
           a(i, s, u, "\u25c3", "\\triangleleft");
           a(i, s, u, "\u25b9", "\\triangleright");
           a(i, s, f, "{", "\\{");
           a(n, s, y, "{", "\\{");
           a(i, s, p, "}", "\\}");
           a(n, s, y, "}", "\\}");
           a(i, s, f, "{", "\\lbrace");
           a(i, s, p, "}", "\\rbrace");
           a(i, s, f, "[", "\\lbrack");
           a(i, s, p, "]", "\\rbrack");
           a(i, s, f, "\u230a", "\\lfloor");
           a(i, s, p, "\u230b", "\\rfloor");
           a(i, s, f, "\u2308", "\\lceil");
           a(i, s, p, "\u2309", "\\rceil");
           a(i, s, y, "\\", "\\backslash");
           a(i, s, y, "\u2223", "|");
           a(i, s, y, "\u2223", "\\vert");
           a(i, s, y, "\u2225", "\\|");
           a(i, s, y, "\u2225", "\\Vert");
           a(i, s, d, "\u2191", "\\uparrow");
           a(i, s, d, "\u21d1", "\\Uparrow");
           a(i, s, d, "\u2193", "\\downarrow");
           a(i, s, d, "\u21d3", "\\Downarrow");
           a(i, s, d, "\u2195", "\\updownarrow");
           a(i, s, d, "\u21d5", "\\Updownarrow");
           a(i, i, m, "\u2210", "\\coprod");
           a(i, i, m, "\u22c1", "\\bigvee");
           a(i, i, m, "\u22c0", "\\bigwedge");
           a(i, i, m, "\u2a04", "\\biguplus");
           a(i, i, m, "\u22c2", "\\bigcap");
           a(i, i, m, "\u22c3", "\\bigcup");
           a(i, i, m, "\u222b", "\\int");
           a(i, i, m, "\u222b", "\\intop");
           a(i, i, m, "\u222c", "\\iint");
           a(i, i, m, "\u222d", "\\iiint");
           a(i, i, m, "\u220f", "\\prod");
           a(i, i, m, "\u2211", "\\sum");
           a(i, i, m, "\u2a02", "\\bigotimes");
           a(i, i, m, "\u2a01", "\\bigoplus");
           a(i, i, m, "\u2a00", "\\bigodot");
           a(i, i, m, "\u222e", "\\oint");
           a(i, i, m, "\u2a06", "\\bigsqcup");
           a(i, i, m, "\u222b", "\\smallint");
           a(n, s, h, "\u2026", "\\textellipsis");
           a(i, s, h, "\u2026", "\\mathellipsis");
           a(n, s, h, "\u2026", "\\ldots");
           a(i, s, h, "\u2026", "\\ldots");
           a(i, s, h, "\u22ef", "\\cdots");
           a(i, s, h, "\u22f1", "\\ddots");
           a(i, s, y, "\u22ee", "\\vdots");
           a(i, s, o, "\xb4", "\\acute");
           a(i, s, o, "`", "\\grave");
           a(i, s, o, "\xa8", "\\ddot");
           a(i, s, o, "~", "\\tilde");
           a(i, s, o, "\xaf", "\\bar");
           a(i, s, o, "\u02d8", "\\breve");
           a(i, s, o, "\u02c7", "\\check");
           a(i, s, o, "^", "\\hat");
           a(i, s, o, "\u20d7", "\\vec");
           a(i, s, o, "\u02d9", "\\dot");
           a(i, s, c, "\u0131", "\\imath");
           a(i, s, c, "\u0237", "\\jmath");
           a(n, s, y, "\u2013", "--");
           a(n, s, y, "\u2014", "---");
           a(n, s, y, "\u2018", "`");
           a(n, s, y, "\u2019", "'");
           a(n, s, y, "\u201c", "``");
           a(n, s, y, "\u201d", "");
           a(i, s, y, "\xb0", "\\degree");
           a(n, s, y, "\xb0", "\\degree");
           a(i, s, c, "\xa3", "\\pounds");
           a(i, l, y, "\u2720", "\\maltese");
           a(n, l, y, "\u2720", "\\maltese");
           a(n, s, g, "\xa0", "\\ ");
           a(n, s, g, "\xa0", " ");
           a(n, s, g, "\xa0", "~");
           var x;
           var b;
           var w = '0123456789/@."';
           for (x = 0; x < w.length; x++) {
               b = w.charAt(x);
               a(i, s, y, b, b)
           }
           var k = '0123456789!@*()-=+[]";:?/.,';
           for (x = 0; x < k.length; x++) {
               b = k.charAt(x);
               a(n, s, y, b, b)
           }
           var z = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
           for (x = 0; x < z.length; x++) {
               b = z.charAt(x);
               a(i, s, c, b, b);
               a(n, s, y, b, b)
           }
           for (x = 192; x <= 214; x++) {
               b = String.fromCharCode(x);
               a(n, s, y, b, b)
           }
           for (x = 216; x <= 246; x++) {
               b = String.fromCharCode(x);
               a(n, s, y, b, b)
           }
           for (x = 248; x <= 255; x++) {
               b = String.fromCharCode(x);
               a(n, s, y, b, b)
           }
           for (x = 1040; x <= 1103; x++) {
               b = String.fromCharCode(x);
               a(n, s, y, b, b)
           }
           a(n, s, y, "\u2013", "\u2013");
           a(n, s, y, "\u2014", "\u2014");
           a(n, s, y, "\u2018", "\u2018");
           a(n, s, y, "\u2019", "\u2019");
           a(n, s, y, "\u201c", "\u201c");
           a(n, s, y, "\u201d", "\u201d")
       }, {}],
       24: [function(e, t, r) {
           var a = /[\uAC00-\uD7AF]/;
           var i = /[\u3040-\u309F]|[\u30A0-\u30FF]|[\u4E00-\u9FAF]|[\uAC00-\uD7AF]/;
           t.exports = {
               cjkRegex: i,
               hangulRegex: a
           }
       }, {}],
       25: [function(e, t, r) {
           var a = Array.prototype.indexOf;
           var i = function(e, t) {
               if (e == null) {
                   return -1
               }
               if (a && e.indexOf === a) {
                   return e.indexOf(t)
               }
               var r = 0;
               var i = e.length;
               for (; r < i; r++) {
                   if (e[r] === t) {
                       return r
                   }
               }
               return -1
           };
           var n = function(e, t) {
               return i(e, t) !== -1
           };
           var s = function(e, t) {
               return e === undefined ? t : e
           };
           var l = /([A-Z])/g;
           var o = function(e) {
               return e.replace(l, "-$1").toLowerCase()
           };
           var u = {
               "&": "&",
               ">": ">",
               "<": "<",
               '"': """,
               "'": "'"
           };
           var p = /[&><"']/g;
           function h(e) {
               return u[e]
           }
           function c(e) {
               return ("" + e).replace(p, h)
           }
           var m;
           if (typeof document !== "undefined") {
               var f = document.createElement("span");
               if ("textContent" in f) {
                   m = function(e, t) {
                       e.textContent = t
                   }
               } else {
                   m = function(e, t) {
                       e.innerText = t
                   }
               }
           }
           function v(e) {
               m(e, "")
           }
           t.exports = {
               contains: n,
               deflt: s,
               escape: c,
               hyphenate: o,
               indexOf: i,
               setTextContent: m,
               clearNode: v
           }
       }, {}]
   }, {}, [1])(1)

});