diff --git a/lib/docs/commonmark.js b/lib/docs/commonmark.js
deleted file mode 100644
index 8a3762ea80..0000000000
--- a/lib/docs/commonmark.js
+++ /dev/null
@@ -1,10270 +0,0 @@
-/* commonmark 0.30.0 https://github.com/commonmark/commonmark.js @license BSD3 */
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (global = global || self, factory(global.commonmark = {}));
-}(this, (function (exports) { 'use strict';
-
- function isContainer(node) {
- switch (node._type) {
- case "document":
- case "block_quote":
- case "list":
- case "item":
- case "paragraph":
- case "heading":
- case "emph":
- case "strong":
- case "link":
- case "image":
- case "custom_inline":
- case "custom_block":
- return true;
- default:
- return false;
- }
- }
-
- var resumeAt = function(node, entering) {
- this.current = node;
- this.entering = entering === true;
- };
-
- var next = function() {
- var cur = this.current;
- var entering = this.entering;
-
- if (cur === null) {
- return null;
- }
-
- var container = isContainer(cur);
-
- if (entering && container) {
- if (cur._firstChild) {
- this.current = cur._firstChild;
- this.entering = true;
- } else {
- // stay on node but exit
- this.entering = false;
- }
- } else if (cur === this.root) {
- this.current = null;
- } else if (cur._next === null) {
- this.current = cur._parent;
- this.entering = false;
- } else {
- this.current = cur._next;
- this.entering = true;
- }
-
- return { entering: entering, node: cur };
- };
-
- var NodeWalker = function(root) {
- return {
- current: root,
- root: root,
- entering: true,
- next: next,
- resumeAt: resumeAt
- };
- };
-
- var Node = function(nodeType, sourcepos) {
- this._type = nodeType;
- this._parent = null;
- this._firstChild = null;
- this._lastChild = null;
- this._prev = null;
- this._next = null;
- this._sourcepos = sourcepos;
- this._lastLineBlank = false;
- this._lastLineChecked = false;
- this._open = true;
- this._string_content = null;
- this._literal = null;
- this._listData = {};
- this._info = null;
- this._destination = null;
- this._title = null;
- this._isFenced = false;
- this._fenceChar = null;
- this._fenceLength = 0;
- this._fenceOffset = null;
- this._level = null;
- this._onEnter = null;
- this._onExit = null;
- };
-
- var proto = Node.prototype;
-
- Object.defineProperty(proto, "isContainer", {
- get: function() {
- return isContainer(this);
- }
- });
-
- Object.defineProperty(proto, "type", {
- get: function() {
- return this._type;
- }
- });
-
- Object.defineProperty(proto, "firstChild", {
- get: function() {
- return this._firstChild;
- }
- });
-
- Object.defineProperty(proto, "lastChild", {
- get: function() {
- return this._lastChild;
- }
- });
-
- Object.defineProperty(proto, "next", {
- get: function() {
- return this._next;
- }
- });
-
- Object.defineProperty(proto, "prev", {
- get: function() {
- return this._prev;
- }
- });
-
- Object.defineProperty(proto, "parent", {
- get: function() {
- return this._parent;
- }
- });
-
- Object.defineProperty(proto, "sourcepos", {
- get: function() {
- return this._sourcepos;
- }
- });
-
- Object.defineProperty(proto, "literal", {
- get: function() {
- return this._literal;
- },
- set: function(s) {
- this._literal = s;
- }
- });
-
- Object.defineProperty(proto, "destination", {
- get: function() {
- return this._destination;
- },
- set: function(s) {
- this._destination = s;
- }
- });
-
- Object.defineProperty(proto, "title", {
- get: function() {
- return this._title;
- },
- set: function(s) {
- this._title = s;
- }
- });
-
- Object.defineProperty(proto, "info", {
- get: function() {
- return this._info;
- },
- set: function(s) {
- this._info = s;
- }
- });
-
- Object.defineProperty(proto, "level", {
- get: function() {
- return this._level;
- },
- set: function(s) {
- this._level = s;
- }
- });
-
- Object.defineProperty(proto, "listType", {
- get: function() {
- return this._listData.type;
- },
- set: function(t) {
- this._listData.type = t;
- }
- });
-
- Object.defineProperty(proto, "listTight", {
- get: function() {
- return this._listData.tight;
- },
- set: function(t) {
- this._listData.tight = t;
- }
- });
-
- Object.defineProperty(proto, "listStart", {
- get: function() {
- return this._listData.start;
- },
- set: function(n) {
- this._listData.start = n;
- }
- });
-
- Object.defineProperty(proto, "listDelimiter", {
- get: function() {
- return this._listData.delimiter;
- },
- set: function(delim) {
- this._listData.delimiter = delim;
- }
- });
-
- Object.defineProperty(proto, "onEnter", {
- get: function() {
- return this._onEnter;
- },
- set: function(s) {
- this._onEnter = s;
- }
- });
-
- Object.defineProperty(proto, "onExit", {
- get: function() {
- return this._onExit;
- },
- set: function(s) {
- this._onExit = s;
- }
- });
-
- Node.prototype.appendChild = function(child) {
- child.unlink();
- child._parent = this;
- if (this._lastChild) {
- this._lastChild._next = child;
- child._prev = this._lastChild;
- this._lastChild = child;
- } else {
- this._firstChild = child;
- this._lastChild = child;
- }
- };
-
- Node.prototype.prependChild = function(child) {
- child.unlink();
- child._parent = this;
- if (this._firstChild) {
- this._firstChild._prev = child;
- child._next = this._firstChild;
- this._firstChild = child;
- } else {
- this._firstChild = child;
- this._lastChild = child;
- }
- };
-
- Node.prototype.unlink = function() {
- if (this._prev) {
- this._prev._next = this._next;
- } else if (this._parent) {
- this._parent._firstChild = this._next;
- }
- if (this._next) {
- this._next._prev = this._prev;
- } else if (this._parent) {
- this._parent._lastChild = this._prev;
- }
- this._parent = null;
- this._next = null;
- this._prev = null;
- };
-
- Node.prototype.insertAfter = function(sibling) {
- sibling.unlink();
- sibling._next = this._next;
- if (sibling._next) {
- sibling._next._prev = sibling;
- }
- sibling._prev = this;
- this._next = sibling;
- sibling._parent = this._parent;
- if (!sibling._next) {
- sibling._parent._lastChild = sibling;
- }
- };
-
- Node.prototype.insertBefore = function(sibling) {
- sibling.unlink();
- sibling._prev = this._prev;
- if (sibling._prev) {
- sibling._prev._next = sibling;
- }
- sibling._next = this;
- this._prev = sibling;
- sibling._parent = this._parent;
- if (!sibling._prev) {
- sibling._parent._firstChild = sibling;
- }
- };
-
- Node.prototype.walker = function() {
- var walker = new NodeWalker(this);
- return walker;
- };
-
- /* Example of use of walker:
-
- var walker = w.walker();
- var event;
-
- while (event = walker.next()) {
- console.log(event.entering, event.node.type);
- }
-
- */
-
- var encodeCache = {};
-
-
- // Create a lookup array where anything but characters in `chars` string
- // and alphanumeric chars is percent-encoded.
- //
- function getEncodeCache(exclude) {
- var i, ch, cache = encodeCache[exclude];
- if (cache) { return cache; }
-
- cache = encodeCache[exclude] = [];
-
- for (i = 0; i < 128; i++) {
- ch = String.fromCharCode(i);
-
- if (/^[0-9a-z]$/i.test(ch)) {
- // always allow unencoded alphanumeric characters
- cache.push(ch);
- } else {
- cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));
- }
- }
-
- for (i = 0; i < exclude.length; i++) {
- cache[exclude.charCodeAt(i)] = exclude[i];
- }
-
- return cache;
- }
-
-
- // Encode unsafe characters with percent-encoding, skipping already
- // encoded sequences.
- //
- // - string - string to encode
- // - exclude - list of characters to ignore (in addition to a-zA-Z0-9)
- // - keepEscaped - don't encode '%' in a correct escape sequence (default: true)
- //
- function encode(string, exclude, keepEscaped) {
- var i, l, code, nextCode, cache,
- result = '';
-
- if (typeof exclude !== 'string') {
- // encode(string, keepEscaped)
- keepEscaped = exclude;
- exclude = encode.defaultChars;
- }
-
- if (typeof keepEscaped === 'undefined') {
- keepEscaped = true;
- }
-
- cache = getEncodeCache(exclude);
-
- for (i = 0, l = string.length; i < l; i++) {
- code = string.charCodeAt(i);
-
- if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {
- if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {
- result += string.slice(i, i + 3);
- i += 2;
- continue;
- }
- }
-
- if (code < 128) {
- result += cache[code];
- continue;
- }
-
- if (code >= 0xD800 && code <= 0xDFFF) {
- if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {
- nextCode = string.charCodeAt(i + 1);
- if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {
- result += encodeURIComponent(string[i] + string[i + 1]);
- i++;
- continue;
- }
- }
- result += '%EF%BF%BD';
- continue;
- }
-
- result += encodeURIComponent(string[i]);
- }
-
- return result;
- }
-
- encode.defaultChars = ";/?:@&=+$,-_.!~*'()#";
- encode.componentChars = "-_.!~*'()";
-
-
- var encode_1 = encode;
-
- var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
-
- function unwrapExports (x) {
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
- }
-
- function createCommonjsModule(fn, module) {
- return module = { exports: {} }, fn(module, module.exports), module.exports;
- }
-
- function getCjsExportFromNamespace (n) {
- return n && n['default'] || n;
- }
-
- var Aacute = "Á";
- var aacute = "á";
- var Abreve = "Ă";
- var abreve = "ă";
- var ac = "∾";
- var acd = "∿";
- var acE = "∾̳";
- var Acirc = "Â";
- var acirc = "â";
- var acute = "´";
- var Acy = "А";
- var acy = "а";
- var AElig = "Æ";
- var aelig = "æ";
- var af = "";
- var Afr = "𝔄";
- var afr = "𝔞";
- var Agrave = "À";
- var agrave = "à";
- var alefsym = "ℵ";
- var aleph = "ℵ";
- var Alpha = "Α";
- var alpha = "α";
- var Amacr = "Ā";
- var amacr = "ā";
- var amalg = "⨿";
- var amp = "&";
- var AMP = "&";
- var andand = "⩕";
- var And = "⩓";
- var and = "∧";
- var andd = "⩜";
- var andslope = "⩘";
- var andv = "⩚";
- var ang = "∠";
- var ange = "⦤";
- var angle = "∠";
- var angmsdaa = "⦨";
- var angmsdab = "⦩";
- var angmsdac = "⦪";
- var angmsdad = "⦫";
- var angmsdae = "⦬";
- var angmsdaf = "⦭";
- var angmsdag = "⦮";
- var angmsdah = "⦯";
- var angmsd = "∡";
- var angrt = "∟";
- var angrtvb = "⊾";
- var angrtvbd = "⦝";
- var angsph = "∢";
- var angst = "Å";
- var angzarr = "⍼";
- var Aogon = "Ą";
- var aogon = "ą";
- var Aopf = "𝔸";
- var aopf = "𝕒";
- var apacir = "⩯";
- var ap = "≈";
- var apE = "⩰";
- var ape = "≊";
- var apid = "≋";
- var apos = "'";
- var ApplyFunction = "";
- var approx = "≈";
- var approxeq = "≊";
- var Aring = "Å";
- var aring = "å";
- var Ascr = "𝒜";
- var ascr = "𝒶";
- var Assign = "≔";
- var ast = "*";
- var asymp = "≈";
- var asympeq = "≍";
- var Atilde = "Ã";
- var atilde = "ã";
- var Auml = "Ä";
- var auml = "ä";
- var awconint = "∳";
- var awint = "⨑";
- var backcong = "≌";
- var backepsilon = "϶";
- var backprime = "‵";
- var backsim = "∽";
- var backsimeq = "⋍";
- var Backslash = "∖";
- var Barv = "⫧";
- var barvee = "⊽";
- var barwed = "⌅";
- var Barwed = "⌆";
- var barwedge = "⌅";
- var bbrk = "⎵";
- var bbrktbrk = "⎶";
- var bcong = "≌";
- var Bcy = "Б";
- var bcy = "б";
- var bdquo = "„";
- var becaus = "∵";
- var because = "∵";
- var Because = "∵";
- var bemptyv = "⦰";
- var bepsi = "϶";
- var bernou = "ℬ";
- var Bernoullis = "ℬ";
- var Beta = "Β";
- var beta = "β";
- var beth = "ℶ";
- var between = "≬";
- var Bfr = "𝔅";
- var bfr = "𝔟";
- var bigcap = "⋂";
- var bigcirc = "◯";
- var bigcup = "⋃";
- var bigodot = "⨀";
- var bigoplus = "⨁";
- var bigotimes = "⨂";
- var bigsqcup = "⨆";
- var bigstar = "★";
- var bigtriangledown = "▽";
- var bigtriangleup = "△";
- var biguplus = "⨄";
- var bigvee = "⋁";
- var bigwedge = "⋀";
- var bkarow = "⤍";
- var blacklozenge = "⧫";
- var blacksquare = "▪";
- var blacktriangle = "▴";
- var blacktriangledown = "▾";
- var blacktriangleleft = "◂";
- var blacktriangleright = "▸";
- var blank = "␣";
- var blk12 = "▒";
- var blk14 = "░";
- var blk34 = "▓";
- var block = "█";
- var bne = "=⃥";
- var bnequiv = "≡⃥";
- var bNot = "⫭";
- var bnot = "⌐";
- var Bopf = "𝔹";
- var bopf = "𝕓";
- var bot = "⊥";
- var bottom = "⊥";
- var bowtie = "⋈";
- var boxbox = "⧉";
- var boxdl = "┐";
- var boxdL = "╕";
- var boxDl = "╖";
- var boxDL = "╗";
- var boxdr = "┌";
- var boxdR = "╒";
- var boxDr = "╓";
- var boxDR = "╔";
- var boxh = "─";
- var boxH = "═";
- var boxhd = "┬";
- var boxHd = "╤";
- var boxhD = "╥";
- var boxHD = "╦";
- var boxhu = "┴";
- var boxHu = "╧";
- var boxhU = "╨";
- var boxHU = "╩";
- var boxminus = "⊟";
- var boxplus = "⊞";
- var boxtimes = "⊠";
- var boxul = "┘";
- var boxuL = "╛";
- var boxUl = "╜";
- var boxUL = "╝";
- var boxur = "└";
- var boxuR = "╘";
- var boxUr = "╙";
- var boxUR = "╚";
- var boxv = "│";
- var boxV = "║";
- var boxvh = "┼";
- var boxvH = "╪";
- var boxVh = "╫";
- var boxVH = "╬";
- var boxvl = "┤";
- var boxvL = "╡";
- var boxVl = "╢";
- var boxVL = "╣";
- var boxvr = "├";
- var boxvR = "╞";
- var boxVr = "╟";
- var boxVR = "╠";
- var bprime = "‵";
- var breve = "˘";
- var Breve = "˘";
- var brvbar = "¦";
- var bscr = "𝒷";
- var Bscr = "ℬ";
- var bsemi = "⁏";
- var bsim = "∽";
- var bsime = "⋍";
- var bsolb = "⧅";
- var bsol = "\\";
- var bsolhsub = "⟈";
- var bull = "•";
- var bullet = "•";
- var bump = "≎";
- var bumpE = "⪮";
- var bumpe = "≏";
- var Bumpeq = "≎";
- var bumpeq = "≏";
- var Cacute = "Ć";
- var cacute = "ć";
- var capand = "⩄";
- var capbrcup = "⩉";
- var capcap = "⩋";
- var cap = "∩";
- var Cap = "⋒";
- var capcup = "⩇";
- var capdot = "⩀";
- var CapitalDifferentialD = "ⅅ";
- var caps = "∩︀";
- var caret = "⁁";
- var caron = "ˇ";
- var Cayleys = "ℭ";
- var ccaps = "⩍";
- var Ccaron = "Č";
- var ccaron = "č";
- var Ccedil = "Ç";
- var ccedil = "ç";
- var Ccirc = "Ĉ";
- var ccirc = "ĉ";
- var Cconint = "∰";
- var ccups = "⩌";
- var ccupssm = "⩐";
- var Cdot = "Ċ";
- var cdot = "ċ";
- var cedil = "¸";
- var Cedilla = "¸";
- var cemptyv = "⦲";
- var cent = "¢";
- var centerdot = "·";
- var CenterDot = "·";
- var cfr = "𝔠";
- var Cfr = "ℭ";
- var CHcy = "Ч";
- var chcy = "ч";
- var check = "✓";
- var checkmark = "✓";
- var Chi = "Χ";
- var chi = "χ";
- var circ = "ˆ";
- var circeq = "≗";
- var circlearrowleft = "↺";
- var circlearrowright = "↻";
- var circledast = "⊛";
- var circledcirc = "⊚";
- var circleddash = "⊝";
- var CircleDot = "⊙";
- var circledR = "®";
- var circledS = "Ⓢ";
- var CircleMinus = "⊖";
- var CirclePlus = "⊕";
- var CircleTimes = "⊗";
- var cir = "○";
- var cirE = "⧃";
- var cire = "≗";
- var cirfnint = "⨐";
- var cirmid = "⫯";
- var cirscir = "⧂";
- var ClockwiseContourIntegral = "∲";
- var CloseCurlyDoubleQuote = "”";
- var CloseCurlyQuote = "’";
- var clubs = "♣";
- var clubsuit = "♣";
- var colon = ":";
- var Colon = "∷";
- var Colone = "⩴";
- var colone = "≔";
- var coloneq = "≔";
- var comma = ",";
- var commat = "@";
- var comp = "∁";
- var compfn = "∘";
- var complement = "∁";
- var complexes = "ℂ";
- var cong = "≅";
- var congdot = "⩭";
- var Congruent = "≡";
- var conint = "∮";
- var Conint = "∯";
- var ContourIntegral = "∮";
- var copf = "𝕔";
- var Copf = "ℂ";
- var coprod = "∐";
- var Coproduct = "∐";
- var copy = "©";
- var COPY = "©";
- var copysr = "℗";
- var CounterClockwiseContourIntegral = "∳";
- var crarr = "↵";
- var cross = "✗";
- var Cross = "⨯";
- var Cscr = "𝒞";
- var cscr = "𝒸";
- var csub = "⫏";
- var csube = "⫑";
- var csup = "⫐";
- var csupe = "⫒";
- var ctdot = "⋯";
- var cudarrl = "⤸";
- var cudarrr = "⤵";
- var cuepr = "⋞";
- var cuesc = "⋟";
- var cularr = "↶";
- var cularrp = "⤽";
- var cupbrcap = "⩈";
- var cupcap = "⩆";
- var CupCap = "≍";
- var cup = "∪";
- var Cup = "⋓";
- var cupcup = "⩊";
- var cupdot = "⊍";
- var cupor = "⩅";
- var cups = "∪︀";
- var curarr = "↷";
- var curarrm = "⤼";
- var curlyeqprec = "⋞";
- var curlyeqsucc = "⋟";
- var curlyvee = "⋎";
- var curlywedge = "⋏";
- var curren = "¤";
- var curvearrowleft = "↶";
- var curvearrowright = "↷";
- var cuvee = "⋎";
- var cuwed = "⋏";
- var cwconint = "∲";
- var cwint = "∱";
- var cylcty = "⌭";
- var dagger = "†";
- var Dagger = "‡";
- var daleth = "ℸ";
- var darr = "↓";
- var Darr = "↡";
- var dArr = "⇓";
- var dash = "‐";
- var Dashv = "⫤";
- var dashv = "⊣";
- var dbkarow = "⤏";
- var dblac = "˝";
- var Dcaron = "Ď";
- var dcaron = "ď";
- var Dcy = "Д";
- var dcy = "д";
- var ddagger = "‡";
- var ddarr = "⇊";
- var DD = "ⅅ";
- var dd = "ⅆ";
- var DDotrahd = "⤑";
- var ddotseq = "⩷";
- var deg = "°";
- var Del = "∇";
- var Delta = "Δ";
- var delta = "δ";
- var demptyv = "⦱";
- var dfisht = "⥿";
- var Dfr = "𝔇";
- var dfr = "𝔡";
- var dHar = "⥥";
- var dharl = "⇃";
- var dharr = "⇂";
- var DiacriticalAcute = "´";
- var DiacriticalDot = "˙";
- var DiacriticalDoubleAcute = "˝";
- var DiacriticalGrave = "`";
- var DiacriticalTilde = "˜";
- var diam = "⋄";
- var diamond = "⋄";
- var Diamond = "⋄";
- var diamondsuit = "♦";
- var diams = "♦";
- var die = "¨";
- var DifferentialD = "ⅆ";
- var digamma = "ϝ";
- var disin = "⋲";
- var div = "÷";
- var divide = "÷";
- var divideontimes = "⋇";
- var divonx = "⋇";
- var DJcy = "Ђ";
- var djcy = "ђ";
- var dlcorn = "⌞";
- var dlcrop = "⌍";
- var dollar = "$";
- var Dopf = "𝔻";
- var dopf = "𝕕";
- var Dot = "¨";
- var dot = "˙";
- var DotDot = "⃜";
- var doteq = "≐";
- var doteqdot = "≑";
- var DotEqual = "≐";
- var dotminus = "∸";
- var dotplus = "∔";
- var dotsquare = "⊡";
- var doublebarwedge = "⌆";
- var DoubleContourIntegral = "∯";
- var DoubleDot = "¨";
- var DoubleDownArrow = "⇓";
- var DoubleLeftArrow = "⇐";
- var DoubleLeftRightArrow = "⇔";
- var DoubleLeftTee = "⫤";
- var DoubleLongLeftArrow = "⟸";
- var DoubleLongLeftRightArrow = "⟺";
- var DoubleLongRightArrow = "⟹";
- var DoubleRightArrow = "⇒";
- var DoubleRightTee = "⊨";
- var DoubleUpArrow = "⇑";
- var DoubleUpDownArrow = "⇕";
- var DoubleVerticalBar = "∥";
- var DownArrowBar = "⤓";
- var downarrow = "↓";
- var DownArrow = "↓";
- var Downarrow = "⇓";
- var DownArrowUpArrow = "⇵";
- var DownBreve = "̑";
- var downdownarrows = "⇊";
- var downharpoonleft = "⇃";
- var downharpoonright = "⇂";
- var DownLeftRightVector = "⥐";
- var DownLeftTeeVector = "⥞";
- var DownLeftVectorBar = "⥖";
- var DownLeftVector = "↽";
- var DownRightTeeVector = "⥟";
- var DownRightVectorBar = "⥗";
- var DownRightVector = "⇁";
- var DownTeeArrow = "↧";
- var DownTee = "⊤";
- var drbkarow = "⤐";
- var drcorn = "⌟";
- var drcrop = "⌌";
- var Dscr = "𝒟";
- var dscr = "𝒹";
- var DScy = "Ѕ";
- var dscy = "ѕ";
- var dsol = "⧶";
- var Dstrok = "Đ";
- var dstrok = "đ";
- var dtdot = "⋱";
- var dtri = "▿";
- var dtrif = "▾";
- var duarr = "⇵";
- var duhar = "⥯";
- var dwangle = "⦦";
- var DZcy = "Џ";
- var dzcy = "џ";
- var dzigrarr = "⟿";
- var Eacute = "É";
- var eacute = "é";
- var easter = "⩮";
- var Ecaron = "Ě";
- var ecaron = "ě";
- var Ecirc = "Ê";
- var ecirc = "ê";
- var ecir = "≖";
- var ecolon = "≕";
- var Ecy = "Э";
- var ecy = "э";
- var eDDot = "⩷";
- var Edot = "Ė";
- var edot = "ė";
- var eDot = "≑";
- var ee = "ⅇ";
- var efDot = "≒";
- var Efr = "𝔈";
- var efr = "𝔢";
- var eg = "⪚";
- var Egrave = "È";
- var egrave = "è";
- var egs = "⪖";
- var egsdot = "⪘";
- var el = "⪙";
- var Element = "∈";
- var elinters = "⏧";
- var ell = "ℓ";
- var els = "⪕";
- var elsdot = "⪗";
- var Emacr = "Ē";
- var emacr = "ē";
- var empty = "∅";
- var emptyset = "∅";
- var EmptySmallSquare = "◻";
- var emptyv = "∅";
- var EmptyVerySmallSquare = "▫";
- var emsp13 = " ";
- var emsp14 = " ";
- var emsp = " ";
- var ENG = "Ŋ";
- var eng = "ŋ";
- var ensp = " ";
- var Eogon = "Ę";
- var eogon = "ę";
- var Eopf = "𝔼";
- var eopf = "𝕖";
- var epar = "⋕";
- var eparsl = "⧣";
- var eplus = "⩱";
- var epsi = "ε";
- var Epsilon = "Ε";
- var epsilon = "ε";
- var epsiv = "ϵ";
- var eqcirc = "≖";
- var eqcolon = "≕";
- var eqsim = "≂";
- var eqslantgtr = "⪖";
- var eqslantless = "⪕";
- var Equal = "⩵";
- var equals = "=";
- var EqualTilde = "≂";
- var equest = "≟";
- var Equilibrium = "⇌";
- var equiv = "≡";
- var equivDD = "⩸";
- var eqvparsl = "⧥";
- var erarr = "⥱";
- var erDot = "≓";
- var escr = "ℯ";
- var Escr = "ℰ";
- var esdot = "≐";
- var Esim = "⩳";
- var esim = "≂";
- var Eta = "Η";
- var eta = "η";
- var ETH = "Ð";
- var eth = "ð";
- var Euml = "Ë";
- var euml = "ë";
- var euro = "€";
- var excl = "!";
- var exist = "∃";
- var Exists = "∃";
- var expectation = "ℰ";
- var exponentiale = "ⅇ";
- var ExponentialE = "ⅇ";
- var fallingdotseq = "≒";
- var Fcy = "Ф";
- var fcy = "ф";
- var female = "♀";
- var ffilig = "ffi";
- var fflig = "ff";
- var ffllig = "ffl";
- var Ffr = "𝔉";
- var ffr = "𝔣";
- var filig = "fi";
- var FilledSmallSquare = "◼";
- var FilledVerySmallSquare = "▪";
- var fjlig = "fj";
- var flat = "♭";
- var fllig = "fl";
- var fltns = "▱";
- var fnof = "ƒ";
- var Fopf = "𝔽";
- var fopf = "𝕗";
- var forall = "∀";
- var ForAll = "∀";
- var fork = "⋔";
- var forkv = "⫙";
- var Fouriertrf = "ℱ";
- var fpartint = "⨍";
- var frac12 = "½";
- var frac13 = "⅓";
- var frac14 = "¼";
- var frac15 = "⅕";
- var frac16 = "⅙";
- var frac18 = "⅛";
- var frac23 = "⅔";
- var frac25 = "⅖";
- var frac34 = "¾";
- var frac35 = "⅗";
- var frac38 = "⅜";
- var frac45 = "⅘";
- var frac56 = "⅚";
- var frac58 = "⅝";
- var frac78 = "⅞";
- var frasl = "⁄";
- var frown = "⌢";
- var fscr = "𝒻";
- var Fscr = "ℱ";
- var gacute = "ǵ";
- var Gamma = "Γ";
- var gamma = "γ";
- var Gammad = "Ϝ";
- var gammad = "ϝ";
- var gap = "⪆";
- var Gbreve = "Ğ";
- var gbreve = "ğ";
- var Gcedil = "Ģ";
- var Gcirc = "Ĝ";
- var gcirc = "ĝ";
- var Gcy = "Г";
- var gcy = "г";
- var Gdot = "Ġ";
- var gdot = "ġ";
- var ge = "≥";
- var gE = "≧";
- var gEl = "⪌";
- var gel = "⋛";
- var geq = "≥";
- var geqq = "≧";
- var geqslant = "⩾";
- var gescc = "⪩";
- var ges = "⩾";
- var gesdot = "⪀";
- var gesdoto = "⪂";
- var gesdotol = "⪄";
- var gesl = "⋛︀";
- var gesles = "⪔";
- var Gfr = "𝔊";
- var gfr = "𝔤";
- var gg = "≫";
- var Gg = "⋙";
- var ggg = "⋙";
- var gimel = "ℷ";
- var GJcy = "Ѓ";
- var gjcy = "ѓ";
- var gla = "⪥";
- var gl = "≷";
- var glE = "⪒";
- var glj = "⪤";
- var gnap = "⪊";
- var gnapprox = "⪊";
- var gne = "⪈";
- var gnE = "≩";
- var gneq = "⪈";
- var gneqq = "≩";
- var gnsim = "⋧";
- var Gopf = "𝔾";
- var gopf = "𝕘";
- var grave = "`";
- var GreaterEqual = "≥";
- var GreaterEqualLess = "⋛";
- var GreaterFullEqual = "≧";
- var GreaterGreater = "⪢";
- var GreaterLess = "≷";
- var GreaterSlantEqual = "⩾";
- var GreaterTilde = "≳";
- var Gscr = "𝒢";
- var gscr = "ℊ";
- var gsim = "≳";
- var gsime = "⪎";
- var gsiml = "⪐";
- var gtcc = "⪧";
- var gtcir = "⩺";
- var gt = ">";
- var GT = ">";
- var Gt = "≫";
- var gtdot = "⋗";
- var gtlPar = "⦕";
- var gtquest = "⩼";
- var gtrapprox = "⪆";
- var gtrarr = "⥸";
- var gtrdot = "⋗";
- var gtreqless = "⋛";
- var gtreqqless = "⪌";
- var gtrless = "≷";
- var gtrsim = "≳";
- var gvertneqq = "≩︀";
- var gvnE = "≩︀";
- var Hacek = "ˇ";
- var hairsp = " ";
- var half = "½";
- var hamilt = "ℋ";
- var HARDcy = "Ъ";
- var hardcy = "ъ";
- var harrcir = "⥈";
- var harr = "↔";
- var hArr = "⇔";
- var harrw = "↭";
- var Hat = "^";
- var hbar = "ℏ";
- var Hcirc = "Ĥ";
- var hcirc = "ĥ";
- var hearts = "♥";
- var heartsuit = "♥";
- var hellip = "…";
- var hercon = "⊹";
- var hfr = "𝔥";
- var Hfr = "ℌ";
- var HilbertSpace = "ℋ";
- var hksearow = "⤥";
- var hkswarow = "⤦";
- var hoarr = "⇿";
- var homtht = "∻";
- var hookleftarrow = "↩";
- var hookrightarrow = "↪";
- var hopf = "𝕙";
- var Hopf = "ℍ";
- var horbar = "―";
- var HorizontalLine = "─";
- var hscr = "𝒽";
- var Hscr = "ℋ";
- var hslash = "ℏ";
- var Hstrok = "Ħ";
- var hstrok = "ħ";
- var HumpDownHump = "≎";
- var HumpEqual = "≏";
- var hybull = "⁃";
- var hyphen = "‐";
- var Iacute = "Í";
- var iacute = "í";
- var ic = "";
- var Icirc = "Î";
- var icirc = "î";
- var Icy = "И";
- var icy = "и";
- var Idot = "İ";
- var IEcy = "Е";
- var iecy = "е";
- var iexcl = "¡";
- var iff = "⇔";
- var ifr = "𝔦";
- var Ifr = "ℑ";
- var Igrave = "Ì";
- var igrave = "ì";
- var ii = "ⅈ";
- var iiiint = "⨌";
- var iiint = "∭";
- var iinfin = "⧜";
- var iiota = "℩";
- var IJlig = "IJ";
- var ijlig = "ij";
- var Imacr = "Ī";
- var imacr = "ī";
- var image = "ℑ";
- var ImaginaryI = "ⅈ";
- var imagline = "ℐ";
- var imagpart = "ℑ";
- var imath = "ı";
- var Im = "ℑ";
- var imof = "⊷";
- var imped = "Ƶ";
- var Implies = "⇒";
- var incare = "℅";
- var infin = "∞";
- var infintie = "⧝";
- var inodot = "ı";
- var intcal = "⊺";
- var int = "∫";
- var Int = "∬";
- var integers = "ℤ";
- var Integral = "∫";
- var intercal = "⊺";
- var Intersection = "⋂";
- var intlarhk = "⨗";
- var intprod = "⨼";
- var InvisibleComma = "";
- var InvisibleTimes = "";
- var IOcy = "Ё";
- var iocy = "ё";
- var Iogon = "Į";
- var iogon = "į";
- var Iopf = "𝕀";
- var iopf = "𝕚";
- var Iota = "Ι";
- var iota = "ι";
- var iprod = "⨼";
- var iquest = "¿";
- var iscr = "𝒾";
- var Iscr = "ℐ";
- var isin = "∈";
- var isindot = "⋵";
- var isinE = "⋹";
- var isins = "⋴";
- var isinsv = "⋳";
- var isinv = "∈";
- var it = "";
- var Itilde = "Ĩ";
- var itilde = "ĩ";
- var Iukcy = "І";
- var iukcy = "і";
- var Iuml = "Ï";
- var iuml = "ï";
- var Jcirc = "Ĵ";
- var jcirc = "ĵ";
- var Jcy = "Й";
- var jcy = "й";
- var Jfr = "𝔍";
- var jfr = "𝔧";
- var jmath = "ȷ";
- var Jopf = "𝕁";
- var jopf = "𝕛";
- var Jscr = "𝒥";
- var jscr = "𝒿";
- var Jsercy = "Ј";
- var jsercy = "ј";
- var Jukcy = "Є";
- var jukcy = "є";
- var Kappa = "Κ";
- var kappa = "κ";
- var kappav = "ϰ";
- var Kcedil = "Ķ";
- var kcedil = "ķ";
- var Kcy = "К";
- var kcy = "к";
- var Kfr = "𝔎";
- var kfr = "𝔨";
- var kgreen = "ĸ";
- var KHcy = "Х";
- var khcy = "х";
- var KJcy = "Ќ";
- var kjcy = "ќ";
- var Kopf = "𝕂";
- var kopf = "𝕜";
- var Kscr = "𝒦";
- var kscr = "𝓀";
- var lAarr = "⇚";
- var Lacute = "Ĺ";
- var lacute = "ĺ";
- var laemptyv = "⦴";
- var lagran = "ℒ";
- var Lambda = "Λ";
- var lambda = "λ";
- var lang = "⟨";
- var Lang = "⟪";
- var langd = "⦑";
- var langle = "⟨";
- var lap = "⪅";
- var Laplacetrf = "ℒ";
- var laquo = "«";
- var larrb = "⇤";
- var larrbfs = "⤟";
- var larr = "←";
- var Larr = "↞";
- var lArr = "⇐";
- var larrfs = "⤝";
- var larrhk = "↩";
- var larrlp = "↫";
- var larrpl = "⤹";
- var larrsim = "⥳";
- var larrtl = "↢";
- var latail = "⤙";
- var lAtail = "⤛";
- var lat = "⪫";
- var late = "⪭";
- var lates = "⪭︀";
- var lbarr = "⤌";
- var lBarr = "⤎";
- var lbbrk = "❲";
- var lbrace = "{";
- var lbrack = "[";
- var lbrke = "⦋";
- var lbrksld = "⦏";
- var lbrkslu = "⦍";
- var Lcaron = "Ľ";
- var lcaron = "ľ";
- var Lcedil = "Ļ";
- var lcedil = "ļ";
- var lceil = "⌈";
- var lcub = "{";
- var Lcy = "Л";
- var lcy = "л";
- var ldca = "⤶";
- var ldquo = "“";
- var ldquor = "„";
- var ldrdhar = "⥧";
- var ldrushar = "⥋";
- var ldsh = "↲";
- var le = "≤";
- var lE = "≦";
- var LeftAngleBracket = "⟨";
- var LeftArrowBar = "⇤";
- var leftarrow = "←";
- var LeftArrow = "←";
- var Leftarrow = "⇐";
- var LeftArrowRightArrow = "⇆";
- var leftarrowtail = "↢";
- var LeftCeiling = "⌈";
- var LeftDoubleBracket = "⟦";
- var LeftDownTeeVector = "⥡";
- var LeftDownVectorBar = "⥙";
- var LeftDownVector = "⇃";
- var LeftFloor = "⌊";
- var leftharpoondown = "↽";
- var leftharpoonup = "↼";
- var leftleftarrows = "⇇";
- var leftrightarrow = "↔";
- var LeftRightArrow = "↔";
- var Leftrightarrow = "⇔";
- var leftrightarrows = "⇆";
- var leftrightharpoons = "⇋";
- var leftrightsquigarrow = "↭";
- var LeftRightVector = "⥎";
- var LeftTeeArrow = "↤";
- var LeftTee = "⊣";
- var LeftTeeVector = "⥚";
- var leftthreetimes = "⋋";
- var LeftTriangleBar = "⧏";
- var LeftTriangle = "⊲";
- var LeftTriangleEqual = "⊴";
- var LeftUpDownVector = "⥑";
- var LeftUpTeeVector = "⥠";
- var LeftUpVectorBar = "⥘";
- var LeftUpVector = "↿";
- var LeftVectorBar = "⥒";
- var LeftVector = "↼";
- var lEg = "⪋";
- var leg = "⋚";
- var leq = "≤";
- var leqq = "≦";
- var leqslant = "⩽";
- var lescc = "⪨";
- var les = "⩽";
- var lesdot = "⩿";
- var lesdoto = "⪁";
- var lesdotor = "⪃";
- var lesg = "⋚︀";
- var lesges = "⪓";
- var lessapprox = "⪅";
- var lessdot = "⋖";
- var lesseqgtr = "⋚";
- var lesseqqgtr = "⪋";
- var LessEqualGreater = "⋚";
- var LessFullEqual = "≦";
- var LessGreater = "≶";
- var lessgtr = "≶";
- var LessLess = "⪡";
- var lesssim = "≲";
- var LessSlantEqual = "⩽";
- var LessTilde = "≲";
- var lfisht = "⥼";
- var lfloor = "⌊";
- var Lfr = "𝔏";
- var lfr = "𝔩";
- var lg = "≶";
- var lgE = "⪑";
- var lHar = "⥢";
- var lhard = "↽";
- var lharu = "↼";
- var lharul = "⥪";
- var lhblk = "▄";
- var LJcy = "Љ";
- var ljcy = "љ";
- var llarr = "⇇";
- var ll = "≪";
- var Ll = "⋘";
- var llcorner = "⌞";
- var Lleftarrow = "⇚";
- var llhard = "⥫";
- var lltri = "◺";
- var Lmidot = "Ŀ";
- var lmidot = "ŀ";
- var lmoustache = "⎰";
- var lmoust = "⎰";
- var lnap = "⪉";
- var lnapprox = "⪉";
- var lne = "⪇";
- var lnE = "≨";
- var lneq = "⪇";
- var lneqq = "≨";
- var lnsim = "⋦";
- var loang = "⟬";
- var loarr = "⇽";
- var lobrk = "⟦";
- var longleftarrow = "⟵";
- var LongLeftArrow = "⟵";
- var Longleftarrow = "⟸";
- var longleftrightarrow = "⟷";
- var LongLeftRightArrow = "⟷";
- var Longleftrightarrow = "⟺";
- var longmapsto = "⟼";
- var longrightarrow = "⟶";
- var LongRightArrow = "⟶";
- var Longrightarrow = "⟹";
- var looparrowleft = "↫";
- var looparrowright = "↬";
- var lopar = "⦅";
- var Lopf = "𝕃";
- var lopf = "𝕝";
- var loplus = "⨭";
- var lotimes = "⨴";
- var lowast = "∗";
- var lowbar = "_";
- var LowerLeftArrow = "↙";
- var LowerRightArrow = "↘";
- var loz = "◊";
- var lozenge = "◊";
- var lozf = "⧫";
- var lpar = "(";
- var lparlt = "⦓";
- var lrarr = "⇆";
- var lrcorner = "⌟";
- var lrhar = "⇋";
- var lrhard = "⥭";
- var lrm = "";
- var lrtri = "⊿";
- var lsaquo = "‹";
- var lscr = "𝓁";
- var Lscr = "ℒ";
- var lsh = "↰";
- var Lsh = "↰";
- var lsim = "≲";
- var lsime = "⪍";
- var lsimg = "⪏";
- var lsqb = "[";
- var lsquo = "‘";
- var lsquor = "‚";
- var Lstrok = "Ł";
- var lstrok = "ł";
- var ltcc = "⪦";
- var ltcir = "⩹";
- var lt = "<";
- var LT = "<";
- var Lt = "≪";
- var ltdot = "⋖";
- var lthree = "⋋";
- var ltimes = "⋉";
- var ltlarr = "⥶";
- var ltquest = "⩻";
- var ltri = "◃";
- var ltrie = "⊴";
- var ltrif = "◂";
- var ltrPar = "⦖";
- var lurdshar = "⥊";
- var luruhar = "⥦";
- var lvertneqq = "≨︀";
- var lvnE = "≨︀";
- var macr = "¯";
- var male = "♂";
- var malt = "✠";
- var maltese = "✠";
- var map = "↦";
- var mapsto = "↦";
- var mapstodown = "↧";
- var mapstoleft = "↤";
- var mapstoup = "↥";
- var marker = "▮";
- var mcomma = "⨩";
- var Mcy = "М";
- var mcy = "м";
- var mdash = "—";
- var mDDot = "∺";
- var measuredangle = "∡";
- var MediumSpace = " ";
- var Mellintrf = "ℳ";
- var Mfr = "𝔐";
- var mfr = "𝔪";
- var mho = "℧";
- var micro = "µ";
- var midast = "*";
- var midcir = "⫰";
- var mid = "∣";
- var middot = "·";
- var minusb = "⊟";
- var minus = "−";
- var minusd = "∸";
- var minusdu = "⨪";
- var MinusPlus = "∓";
- var mlcp = "⫛";
- var mldr = "…";
- var mnplus = "∓";
- var models = "⊧";
- var Mopf = "𝕄";
- var mopf = "𝕞";
- var mp = "∓";
- var mscr = "𝓂";
- var Mscr = "ℳ";
- var mstpos = "∾";
- var Mu = "Μ";
- var mu = "μ";
- var multimap = "⊸";
- var mumap = "⊸";
- var nabla = "∇";
- var Nacute = "Ń";
- var nacute = "ń";
- var nang = "∠⃒";
- var nap = "≉";
- var napE = "⩰̸";
- var napid = "≋̸";
- var napos = "ʼn";
- var napprox = "≉";
- var natural = "♮";
- var naturals = "ℕ";
- var natur = "♮";
- var nbsp = " ";
- var nbump = "≎̸";
- var nbumpe = "≏̸";
- var ncap = "⩃";
- var Ncaron = "Ň";
- var ncaron = "ň";
- var Ncedil = "Ņ";
- var ncedil = "ņ";
- var ncong = "≇";
- var ncongdot = "⩭̸";
- var ncup = "⩂";
- var Ncy = "Н";
- var ncy = "н";
- var ndash = "–";
- var nearhk = "⤤";
- var nearr = "↗";
- var neArr = "⇗";
- var nearrow = "↗";
- var ne = "≠";
- var nedot = "≐̸";
- var NegativeMediumSpace = "";
- var NegativeThickSpace = "";
- var NegativeThinSpace = "";
- var NegativeVeryThinSpace = "";
- var nequiv = "≢";
- var nesear = "⤨";
- var nesim = "≂̸";
- var NestedGreaterGreater = "≫";
- var NestedLessLess = "≪";
- var NewLine = "\n";
- var nexist = "∄";
- var nexists = "∄";
- var Nfr = "𝔑";
- var nfr = "𝔫";
- var ngE = "≧̸";
- var nge = "≱";
- var ngeq = "≱";
- var ngeqq = "≧̸";
- var ngeqslant = "⩾̸";
- var nges = "⩾̸";
- var nGg = "⋙̸";
- var ngsim = "≵";
- var nGt = "≫⃒";
- var ngt = "≯";
- var ngtr = "≯";
- var nGtv = "≫̸";
- var nharr = "↮";
- var nhArr = "⇎";
- var nhpar = "⫲";
- var ni = "∋";
- var nis = "⋼";
- var nisd = "⋺";
- var niv = "∋";
- var NJcy = "Њ";
- var njcy = "њ";
- var nlarr = "↚";
- var nlArr = "⇍";
- var nldr = "‥";
- var nlE = "≦̸";
- var nle = "≰";
- var nleftarrow = "↚";
- var nLeftarrow = "⇍";
- var nleftrightarrow = "↮";
- var nLeftrightarrow = "⇎";
- var nleq = "≰";
- var nleqq = "≦̸";
- var nleqslant = "⩽̸";
- var nles = "⩽̸";
- var nless = "≮";
- var nLl = "⋘̸";
- var nlsim = "≴";
- var nLt = "≪⃒";
- var nlt = "≮";
- var nltri = "⋪";
- var nltrie = "⋬";
- var nLtv = "≪̸";
- var nmid = "∤";
- var NoBreak = "";
- var NonBreakingSpace = " ";
- var nopf = "𝕟";
- var Nopf = "ℕ";
- var Not = "⫬";
- var not = "¬";
- var NotCongruent = "≢";
- var NotCupCap = "≭";
- var NotDoubleVerticalBar = "∦";
- var NotElement = "∉";
- var NotEqual = "≠";
- var NotEqualTilde = "≂̸";
- var NotExists = "∄";
- var NotGreater = "≯";
- var NotGreaterEqual = "≱";
- var NotGreaterFullEqual = "≧̸";
- var NotGreaterGreater = "≫̸";
- var NotGreaterLess = "≹";
- var NotGreaterSlantEqual = "⩾̸";
- var NotGreaterTilde = "≵";
- var NotHumpDownHump = "≎̸";
- var NotHumpEqual = "≏̸";
- var notin = "∉";
- var notindot = "⋵̸";
- var notinE = "⋹̸";
- var notinva = "∉";
- var notinvb = "⋷";
- var notinvc = "⋶";
- var NotLeftTriangleBar = "⧏̸";
- var NotLeftTriangle = "⋪";
- var NotLeftTriangleEqual = "⋬";
- var NotLess = "≮";
- var NotLessEqual = "≰";
- var NotLessGreater = "≸";
- var NotLessLess = "≪̸";
- var NotLessSlantEqual = "⩽̸";
- var NotLessTilde = "≴";
- var NotNestedGreaterGreater = "⪢̸";
- var NotNestedLessLess = "⪡̸";
- var notni = "∌";
- var notniva = "∌";
- var notnivb = "⋾";
- var notnivc = "⋽";
- var NotPrecedes = "⊀";
- var NotPrecedesEqual = "⪯̸";
- var NotPrecedesSlantEqual = "⋠";
- var NotReverseElement = "∌";
- var NotRightTriangleBar = "⧐̸";
- var NotRightTriangle = "⋫";
- var NotRightTriangleEqual = "⋭";
- var NotSquareSubset = "⊏̸";
- var NotSquareSubsetEqual = "⋢";
- var NotSquareSuperset = "⊐̸";
- var NotSquareSupersetEqual = "⋣";
- var NotSubset = "⊂⃒";
- var NotSubsetEqual = "⊈";
- var NotSucceeds = "⊁";
- var NotSucceedsEqual = "⪰̸";
- var NotSucceedsSlantEqual = "⋡";
- var NotSucceedsTilde = "≿̸";
- var NotSuperset = "⊃⃒";
- var NotSupersetEqual = "⊉";
- var NotTilde = "≁";
- var NotTildeEqual = "≄";
- var NotTildeFullEqual = "≇";
- var NotTildeTilde = "≉";
- var NotVerticalBar = "∤";
- var nparallel = "∦";
- var npar = "∦";
- var nparsl = "⫽⃥";
- var npart = "∂̸";
- var npolint = "⨔";
- var npr = "⊀";
- var nprcue = "⋠";
- var nprec = "⊀";
- var npreceq = "⪯̸";
- var npre = "⪯̸";
- var nrarrc = "⤳̸";
- var nrarr = "↛";
- var nrArr = "⇏";
- var nrarrw = "↝̸";
- var nrightarrow = "↛";
- var nRightarrow = "⇏";
- var nrtri = "⋫";
- var nrtrie = "⋭";
- var nsc = "⊁";
- var nsccue = "⋡";
- var nsce = "⪰̸";
- var Nscr = "𝒩";
- var nscr = "𝓃";
- var nshortmid = "∤";
- var nshortparallel = "∦";
- var nsim = "≁";
- var nsime = "≄";
- var nsimeq = "≄";
- var nsmid = "∤";
- var nspar = "∦";
- var nsqsube = "⋢";
- var nsqsupe = "⋣";
- var nsub = "⊄";
- var nsubE = "⫅̸";
- var nsube = "⊈";
- var nsubset = "⊂⃒";
- var nsubseteq = "⊈";
- var nsubseteqq = "⫅̸";
- var nsucc = "⊁";
- var nsucceq = "⪰̸";
- var nsup = "⊅";
- var nsupE = "⫆̸";
- var nsupe = "⊉";
- var nsupset = "⊃⃒";
- var nsupseteq = "⊉";
- var nsupseteqq = "⫆̸";
- var ntgl = "≹";
- var Ntilde = "Ñ";
- var ntilde = "ñ";
- var ntlg = "≸";
- var ntriangleleft = "⋪";
- var ntrianglelefteq = "⋬";
- var ntriangleright = "⋫";
- var ntrianglerighteq = "⋭";
- var Nu = "Ν";
- var nu = "ν";
- var num = "#";
- var numero = "№";
- var numsp = " ";
- var nvap = "≍⃒";
- var nvdash = "⊬";
- var nvDash = "⊭";
- var nVdash = "⊮";
- var nVDash = "⊯";
- var nvge = "≥⃒";
- var nvgt = ">⃒";
- var nvHarr = "⤄";
- var nvinfin = "⧞";
- var nvlArr = "⤂";
- var nvle = "≤⃒";
- var nvlt = "<⃒";
- var nvltrie = "⊴⃒";
- var nvrArr = "⤃";
- var nvrtrie = "⊵⃒";
- var nvsim = "∼⃒";
- var nwarhk = "⤣";
- var nwarr = "↖";
- var nwArr = "⇖";
- var nwarrow = "↖";
- var nwnear = "⤧";
- var Oacute = "Ó";
- var oacute = "ó";
- var oast = "⊛";
- var Ocirc = "Ô";
- var ocirc = "ô";
- var ocir = "⊚";
- var Ocy = "О";
- var ocy = "о";
- var odash = "⊝";
- var Odblac = "Ő";
- var odblac = "ő";
- var odiv = "⨸";
- var odot = "⊙";
- var odsold = "⦼";
- var OElig = "Œ";
- var oelig = "œ";
- var ofcir = "⦿";
- var Ofr = "𝔒";
- var ofr = "𝔬";
- var ogon = "˛";
- var Ograve = "Ò";
- var ograve = "ò";
- var ogt = "⧁";
- var ohbar = "⦵";
- var ohm = "Ω";
- var oint = "∮";
- var olarr = "↺";
- var olcir = "⦾";
- var olcross = "⦻";
- var oline = "‾";
- var olt = "⧀";
- var Omacr = "Ō";
- var omacr = "ō";
- var Omega = "Ω";
- var omega = "ω";
- var Omicron = "Ο";
- var omicron = "ο";
- var omid = "⦶";
- var ominus = "⊖";
- var Oopf = "𝕆";
- var oopf = "𝕠";
- var opar = "⦷";
- var OpenCurlyDoubleQuote = "“";
- var OpenCurlyQuote = "‘";
- var operp = "⦹";
- var oplus = "⊕";
- var orarr = "↻";
- var Or = "⩔";
- var or = "∨";
- var ord = "⩝";
- var order = "ℴ";
- var orderof = "ℴ";
- var ordf = "ª";
- var ordm = "º";
- var origof = "⊶";
- var oror = "⩖";
- var orslope = "⩗";
- var orv = "⩛";
- var oS = "Ⓢ";
- var Oscr = "𝒪";
- var oscr = "ℴ";
- var Oslash = "Ø";
- var oslash = "ø";
- var osol = "⊘";
- var Otilde = "Õ";
- var otilde = "õ";
- var otimesas = "⨶";
- var Otimes = "⨷";
- var otimes = "⊗";
- var Ouml = "Ö";
- var ouml = "ö";
- var ovbar = "⌽";
- var OverBar = "‾";
- var OverBrace = "⏞";
- var OverBracket = "⎴";
- var OverParenthesis = "⏜";
- var para = "¶";
- var parallel = "∥";
- var par = "∥";
- var parsim = "⫳";
- var parsl = "⫽";
- var part = "∂";
- var PartialD = "∂";
- var Pcy = "П";
- var pcy = "п";
- var percnt = "%";
- var period = ".";
- var permil = "‰";
- var perp = "⊥";
- var pertenk = "‱";
- var Pfr = "𝔓";
- var pfr = "𝔭";
- var Phi = "Φ";
- var phi = "φ";
- var phiv = "ϕ";
- var phmmat = "ℳ";
- var phone = "☎";
- var Pi = "Π";
- var pi = "π";
- var pitchfork = "⋔";
- var piv = "ϖ";
- var planck = "ℏ";
- var planckh = "ℎ";
- var plankv = "ℏ";
- var plusacir = "⨣";
- var plusb = "⊞";
- var pluscir = "⨢";
- var plus = "+";
- var plusdo = "∔";
- var plusdu = "⨥";
- var pluse = "⩲";
- var PlusMinus = "±";
- var plusmn = "±";
- var plussim = "⨦";
- var plustwo = "⨧";
- var pm = "±";
- var Poincareplane = "ℌ";
- var pointint = "⨕";
- var popf = "𝕡";
- var Popf = "ℙ";
- var pound = "£";
- var prap = "⪷";
- var Pr = "⪻";
- var pr = "≺";
- var prcue = "≼";
- var precapprox = "⪷";
- var prec = "≺";
- var preccurlyeq = "≼";
- var Precedes = "≺";
- var PrecedesEqual = "⪯";
- var PrecedesSlantEqual = "≼";
- var PrecedesTilde = "≾";
- var preceq = "⪯";
- var precnapprox = "⪹";
- var precneqq = "⪵";
- var precnsim = "⋨";
- var pre = "⪯";
- var prE = "⪳";
- var precsim = "≾";
- var prime = "′";
- var Prime = "″";
- var primes = "ℙ";
- var prnap = "⪹";
- var prnE = "⪵";
- var prnsim = "⋨";
- var prod = "∏";
- var Product = "∏";
- var profalar = "⌮";
- var profline = "⌒";
- var profsurf = "⌓";
- var prop = "∝";
- var Proportional = "∝";
- var Proportion = "∷";
- var propto = "∝";
- var prsim = "≾";
- var prurel = "⊰";
- var Pscr = "𝒫";
- var pscr = "𝓅";
- var Psi = "Ψ";
- var psi = "ψ";
- var puncsp = " ";
- var Qfr = "𝔔";
- var qfr = "𝔮";
- var qint = "⨌";
- var qopf = "𝕢";
- var Qopf = "ℚ";
- var qprime = "⁗";
- var Qscr = "𝒬";
- var qscr = "𝓆";
- var quaternions = "ℍ";
- var quatint = "⨖";
- var quest = "?";
- var questeq = "≟";
- var quot = "\"";
- var QUOT = "\"";
- var rAarr = "⇛";
- var race = "∽̱";
- var Racute = "Ŕ";
- var racute = "ŕ";
- var radic = "√";
- var raemptyv = "⦳";
- var rang = "⟩";
- var Rang = "⟫";
- var rangd = "⦒";
- var range = "⦥";
- var rangle = "⟩";
- var raquo = "»";
- var rarrap = "⥵";
- var rarrb = "⇥";
- var rarrbfs = "⤠";
- var rarrc = "⤳";
- var rarr = "→";
- var Rarr = "↠";
- var rArr = "⇒";
- var rarrfs = "⤞";
- var rarrhk = "↪";
- var rarrlp = "↬";
- var rarrpl = "⥅";
- var rarrsim = "⥴";
- var Rarrtl = "⤖";
- var rarrtl = "↣";
- var rarrw = "↝";
- var ratail = "⤚";
- var rAtail = "⤜";
- var ratio = "∶";
- var rationals = "ℚ";
- var rbarr = "⤍";
- var rBarr = "⤏";
- var RBarr = "⤐";
- var rbbrk = "❳";
- var rbrace = "}";
- var rbrack = "]";
- var rbrke = "⦌";
- var rbrksld = "⦎";
- var rbrkslu = "⦐";
- var Rcaron = "Ř";
- var rcaron = "ř";
- var Rcedil = "Ŗ";
- var rcedil = "ŗ";
- var rceil = "⌉";
- var rcub = "}";
- var Rcy = "Р";
- var rcy = "р";
- var rdca = "⤷";
- var rdldhar = "⥩";
- var rdquo = "”";
- var rdquor = "”";
- var rdsh = "↳";
- var real = "ℜ";
- var realine = "ℛ";
- var realpart = "ℜ";
- var reals = "ℝ";
- var Re = "ℜ";
- var rect = "▭";
- var reg = "®";
- var REG = "®";
- var ReverseElement = "∋";
- var ReverseEquilibrium = "⇋";
- var ReverseUpEquilibrium = "⥯";
- var rfisht = "⥽";
- var rfloor = "⌋";
- var rfr = "𝔯";
- var Rfr = "ℜ";
- var rHar = "⥤";
- var rhard = "⇁";
- var rharu = "⇀";
- var rharul = "⥬";
- var Rho = "Ρ";
- var rho = "ρ";
- var rhov = "ϱ";
- var RightAngleBracket = "⟩";
- var RightArrowBar = "⇥";
- var rightarrow = "→";
- var RightArrow = "→";
- var Rightarrow = "⇒";
- var RightArrowLeftArrow = "⇄";
- var rightarrowtail = "↣";
- var RightCeiling = "⌉";
- var RightDoubleBracket = "⟧";
- var RightDownTeeVector = "⥝";
- var RightDownVectorBar = "⥕";
- var RightDownVector = "⇂";
- var RightFloor = "⌋";
- var rightharpoondown = "⇁";
- var rightharpoonup = "⇀";
- var rightleftarrows = "⇄";
- var rightleftharpoons = "⇌";
- var rightrightarrows = "⇉";
- var rightsquigarrow = "↝";
- var RightTeeArrow = "↦";
- var RightTee = "⊢";
- var RightTeeVector = "⥛";
- var rightthreetimes = "⋌";
- var RightTriangleBar = "⧐";
- var RightTriangle = "⊳";
- var RightTriangleEqual = "⊵";
- var RightUpDownVector = "⥏";
- var RightUpTeeVector = "⥜";
- var RightUpVectorBar = "⥔";
- var RightUpVector = "↾";
- var RightVectorBar = "⥓";
- var RightVector = "⇀";
- var ring = "˚";
- var risingdotseq = "≓";
- var rlarr = "⇄";
- var rlhar = "⇌";
- var rlm = "";
- var rmoustache = "⎱";
- var rmoust = "⎱";
- var rnmid = "⫮";
- var roang = "⟭";
- var roarr = "⇾";
- var robrk = "⟧";
- var ropar = "⦆";
- var ropf = "𝕣";
- var Ropf = "ℝ";
- var roplus = "⨮";
- var rotimes = "⨵";
- var RoundImplies = "⥰";
- var rpar = ")";
- var rpargt = "⦔";
- var rppolint = "⨒";
- var rrarr = "⇉";
- var Rrightarrow = "⇛";
- var rsaquo = "›";
- var rscr = "𝓇";
- var Rscr = "ℛ";
- var rsh = "↱";
- var Rsh = "↱";
- var rsqb = "]";
- var rsquo = "’";
- var rsquor = "’";
- var rthree = "⋌";
- var rtimes = "⋊";
- var rtri = "▹";
- var rtrie = "⊵";
- var rtrif = "▸";
- var rtriltri = "⧎";
- var RuleDelayed = "⧴";
- var ruluhar = "⥨";
- var rx = "℞";
- var Sacute = "Ś";
- var sacute = "ś";
- var sbquo = "‚";
- var scap = "⪸";
- var Scaron = "Š";
- var scaron = "š";
- var Sc = "⪼";
- var sc = "≻";
- var sccue = "≽";
- var sce = "⪰";
- var scE = "⪴";
- var Scedil = "Ş";
- var scedil = "ş";
- var Scirc = "Ŝ";
- var scirc = "ŝ";
- var scnap = "⪺";
- var scnE = "⪶";
- var scnsim = "⋩";
- var scpolint = "⨓";
- var scsim = "≿";
- var Scy = "С";
- var scy = "с";
- var sdotb = "⊡";
- var sdot = "⋅";
- var sdote = "⩦";
- var searhk = "⤥";
- var searr = "↘";
- var seArr = "⇘";
- var searrow = "↘";
- var sect = "§";
- var semi = ";";
- var seswar = "⤩";
- var setminus = "∖";
- var setmn = "∖";
- var sext = "✶";
- var Sfr = "𝔖";
- var sfr = "𝔰";
- var sfrown = "⌢";
- var sharp = "♯";
- var SHCHcy = "Щ";
- var shchcy = "щ";
- var SHcy = "Ш";
- var shcy = "ш";
- var ShortDownArrow = "↓";
- var ShortLeftArrow = "←";
- var shortmid = "∣";
- var shortparallel = "∥";
- var ShortRightArrow = "→";
- var ShortUpArrow = "↑";
- var shy = "";
- var Sigma = "Σ";
- var sigma = "σ";
- var sigmaf = "ς";
- var sigmav = "ς";
- var sim = "∼";
- var simdot = "⩪";
- var sime = "≃";
- var simeq = "≃";
- var simg = "⪞";
- var simgE = "⪠";
- var siml = "⪝";
- var simlE = "⪟";
- var simne = "≆";
- var simplus = "⨤";
- var simrarr = "⥲";
- var slarr = "←";
- var SmallCircle = "∘";
- var smallsetminus = "∖";
- var smashp = "⨳";
- var smeparsl = "⧤";
- var smid = "∣";
- var smile = "⌣";
- var smt = "⪪";
- var smte = "⪬";
- var smtes = "⪬︀";
- var SOFTcy = "Ь";
- var softcy = "ь";
- var solbar = "⌿";
- var solb = "⧄";
- var sol = "/";
- var Sopf = "𝕊";
- var sopf = "𝕤";
- var spades = "♠";
- var spadesuit = "♠";
- var spar = "∥";
- var sqcap = "⊓";
- var sqcaps = "⊓︀";
- var sqcup = "⊔";
- var sqcups = "⊔︀";
- var Sqrt = "√";
- var sqsub = "⊏";
- var sqsube = "⊑";
- var sqsubset = "⊏";
- var sqsubseteq = "⊑";
- var sqsup = "⊐";
- var sqsupe = "⊒";
- var sqsupset = "⊐";
- var sqsupseteq = "⊒";
- var square = "□";
- var Square = "□";
- var SquareIntersection = "⊓";
- var SquareSubset = "⊏";
- var SquareSubsetEqual = "⊑";
- var SquareSuperset = "⊐";
- var SquareSupersetEqual = "⊒";
- var SquareUnion = "⊔";
- var squarf = "▪";
- var squ = "□";
- var squf = "▪";
- var srarr = "→";
- var Sscr = "𝒮";
- var sscr = "𝓈";
- var ssetmn = "∖";
- var ssmile = "⌣";
- var sstarf = "⋆";
- var Star = "⋆";
- var star = "☆";
- var starf = "★";
- var straightepsilon = "ϵ";
- var straightphi = "ϕ";
- var strns = "¯";
- var sub = "⊂";
- var Sub = "⋐";
- var subdot = "⪽";
- var subE = "⫅";
- var sube = "⊆";
- var subedot = "⫃";
- var submult = "⫁";
- var subnE = "⫋";
- var subne = "⊊";
- var subplus = "⪿";
- var subrarr = "⥹";
- var subset = "⊂";
- var Subset = "⋐";
- var subseteq = "⊆";
- var subseteqq = "⫅";
- var SubsetEqual = "⊆";
- var subsetneq = "⊊";
- var subsetneqq = "⫋";
- var subsim = "⫇";
- var subsub = "⫕";
- var subsup = "⫓";
- var succapprox = "⪸";
- var succ = "≻";
- var succcurlyeq = "≽";
- var Succeeds = "≻";
- var SucceedsEqual = "⪰";
- var SucceedsSlantEqual = "≽";
- var SucceedsTilde = "≿";
- var succeq = "⪰";
- var succnapprox = "⪺";
- var succneqq = "⪶";
- var succnsim = "⋩";
- var succsim = "≿";
- var SuchThat = "∋";
- var sum = "∑";
- var Sum = "∑";
- var sung = "♪";
- var sup1 = "¹";
- var sup2 = "²";
- var sup3 = "³";
- var sup = "⊃";
- var Sup = "⋑";
- var supdot = "⪾";
- var supdsub = "⫘";
- var supE = "⫆";
- var supe = "⊇";
- var supedot = "⫄";
- var Superset = "⊃";
- var SupersetEqual = "⊇";
- var suphsol = "⟉";
- var suphsub = "⫗";
- var suplarr = "⥻";
- var supmult = "⫂";
- var supnE = "⫌";
- var supne = "⊋";
- var supplus = "⫀";
- var supset = "⊃";
- var Supset = "⋑";
- var supseteq = "⊇";
- var supseteqq = "⫆";
- var supsetneq = "⊋";
- var supsetneqq = "⫌";
- var supsim = "⫈";
- var supsub = "⫔";
- var supsup = "⫖";
- var swarhk = "⤦";
- var swarr = "↙";
- var swArr = "⇙";
- var swarrow = "↙";
- var swnwar = "⤪";
- var szlig = "ß";
- var Tab = "\t";
- var target = "⌖";
- var Tau = "Τ";
- var tau = "τ";
- var tbrk = "⎴";
- var Tcaron = "Ť";
- var tcaron = "ť";
- var Tcedil = "Ţ";
- var tcedil = "ţ";
- var Tcy = "Т";
- var tcy = "т";
- var tdot = "⃛";
- var telrec = "⌕";
- var Tfr = "𝔗";
- var tfr = "𝔱";
- var there4 = "∴";
- var therefore = "∴";
- var Therefore = "∴";
- var Theta = "Θ";
- var theta = "θ";
- var thetasym = "ϑ";
- var thetav = "ϑ";
- var thickapprox = "≈";
- var thicksim = "∼";
- var ThickSpace = " ";
- var ThinSpace = " ";
- var thinsp = " ";
- var thkap = "≈";
- var thksim = "∼";
- var THORN = "Þ";
- var thorn = "þ";
- var tilde = "˜";
- var Tilde = "∼";
- var TildeEqual = "≃";
- var TildeFullEqual = "≅";
- var TildeTilde = "≈";
- var timesbar = "⨱";
- var timesb = "⊠";
- var times = "×";
- var timesd = "⨰";
- var tint = "∭";
- var toea = "⤨";
- var topbot = "⌶";
- var topcir = "⫱";
- var top = "⊤";
- var Topf = "𝕋";
- var topf = "𝕥";
- var topfork = "⫚";
- var tosa = "⤩";
- var tprime = "‴";
- var trade = "™";
- var TRADE = "™";
- var triangle = "▵";
- var triangledown = "▿";
- var triangleleft = "◃";
- var trianglelefteq = "⊴";
- var triangleq = "≜";
- var triangleright = "▹";
- var trianglerighteq = "⊵";
- var tridot = "◬";
- var trie = "≜";
- var triminus = "⨺";
- var TripleDot = "⃛";
- var triplus = "⨹";
- var trisb = "⧍";
- var tritime = "⨻";
- var trpezium = "⏢";
- var Tscr = "𝒯";
- var tscr = "𝓉";
- var TScy = "Ц";
- var tscy = "ц";
- var TSHcy = "Ћ";
- var tshcy = "ћ";
- var Tstrok = "Ŧ";
- var tstrok = "ŧ";
- var twixt = "≬";
- var twoheadleftarrow = "↞";
- var twoheadrightarrow = "↠";
- var Uacute = "Ú";
- var uacute = "ú";
- var uarr = "↑";
- var Uarr = "↟";
- var uArr = "⇑";
- var Uarrocir = "⥉";
- var Ubrcy = "Ў";
- var ubrcy = "ў";
- var Ubreve = "Ŭ";
- var ubreve = "ŭ";
- var Ucirc = "Û";
- var ucirc = "û";
- var Ucy = "У";
- var ucy = "у";
- var udarr = "⇅";
- var Udblac = "Ű";
- var udblac = "ű";
- var udhar = "⥮";
- var ufisht = "⥾";
- var Ufr = "𝔘";
- var ufr = "𝔲";
- var Ugrave = "Ù";
- var ugrave = "ù";
- var uHar = "⥣";
- var uharl = "↿";
- var uharr = "↾";
- var uhblk = "▀";
- var ulcorn = "⌜";
- var ulcorner = "⌜";
- var ulcrop = "⌏";
- var ultri = "◸";
- var Umacr = "Ū";
- var umacr = "ū";
- var uml = "¨";
- var UnderBar = "_";
- var UnderBrace = "⏟";
- var UnderBracket = "⎵";
- var UnderParenthesis = "⏝";
- var Union = "⋃";
- var UnionPlus = "⊎";
- var Uogon = "Ų";
- var uogon = "ų";
- var Uopf = "𝕌";
- var uopf = "𝕦";
- var UpArrowBar = "⤒";
- var uparrow = "↑";
- var UpArrow = "↑";
- var Uparrow = "⇑";
- var UpArrowDownArrow = "⇅";
- var updownarrow = "↕";
- var UpDownArrow = "↕";
- var Updownarrow = "⇕";
- var UpEquilibrium = "⥮";
- var upharpoonleft = "↿";
- var upharpoonright = "↾";
- var uplus = "⊎";
- var UpperLeftArrow = "↖";
- var UpperRightArrow = "↗";
- var upsi = "υ";
- var Upsi = "ϒ";
- var upsih = "ϒ";
- var Upsilon = "Υ";
- var upsilon = "υ";
- var UpTeeArrow = "↥";
- var UpTee = "⊥";
- var upuparrows = "⇈";
- var urcorn = "⌝";
- var urcorner = "⌝";
- var urcrop = "⌎";
- var Uring = "Ů";
- var uring = "ů";
- var urtri = "◹";
- var Uscr = "𝒰";
- var uscr = "𝓊";
- var utdot = "⋰";
- var Utilde = "Ũ";
- var utilde = "ũ";
- var utri = "▵";
- var utrif = "▴";
- var uuarr = "⇈";
- var Uuml = "Ü";
- var uuml = "ü";
- var uwangle = "⦧";
- var vangrt = "⦜";
- var varepsilon = "ϵ";
- var varkappa = "ϰ";
- var varnothing = "∅";
- var varphi = "ϕ";
- var varpi = "ϖ";
- var varpropto = "∝";
- var varr = "↕";
- var vArr = "⇕";
- var varrho = "ϱ";
- var varsigma = "ς";
- var varsubsetneq = "⊊︀";
- var varsubsetneqq = "⫋︀";
- var varsupsetneq = "⊋︀";
- var varsupsetneqq = "⫌︀";
- var vartheta = "ϑ";
- var vartriangleleft = "⊲";
- var vartriangleright = "⊳";
- var vBar = "⫨";
- var Vbar = "⫫";
- var vBarv = "⫩";
- var Vcy = "В";
- var vcy = "в";
- var vdash = "⊢";
- var vDash = "⊨";
- var Vdash = "⊩";
- var VDash = "⊫";
- var Vdashl = "⫦";
- var veebar = "⊻";
- var vee = "∨";
- var Vee = "⋁";
- var veeeq = "≚";
- var vellip = "⋮";
- var verbar = "|";
- var Verbar = "‖";
- var vert = "|";
- var Vert = "‖";
- var VerticalBar = "∣";
- var VerticalLine = "|";
- var VerticalSeparator = "❘";
- var VerticalTilde = "≀";
- var VeryThinSpace = " ";
- var Vfr = "𝔙";
- var vfr = "𝔳";
- var vltri = "⊲";
- var vnsub = "⊂⃒";
- var vnsup = "⊃⃒";
- var Vopf = "𝕍";
- var vopf = "𝕧";
- var vprop = "∝";
- var vrtri = "⊳";
- var Vscr = "𝒱";
- var vscr = "𝓋";
- var vsubnE = "⫋︀";
- var vsubne = "⊊︀";
- var vsupnE = "⫌︀";
- var vsupne = "⊋︀";
- var Vvdash = "⊪";
- var vzigzag = "⦚";
- var Wcirc = "Ŵ";
- var wcirc = "ŵ";
- var wedbar = "⩟";
- var wedge = "∧";
- var Wedge = "⋀";
- var wedgeq = "≙";
- var weierp = "℘";
- var Wfr = "𝔚";
- var wfr = "𝔴";
- var Wopf = "𝕎";
- var wopf = "𝕨";
- var wp = "℘";
- var wr = "≀";
- var wreath = "≀";
- var Wscr = "𝒲";
- var wscr = "𝓌";
- var xcap = "⋂";
- var xcirc = "◯";
- var xcup = "⋃";
- var xdtri = "▽";
- var Xfr = "𝔛";
- var xfr = "𝔵";
- var xharr = "⟷";
- var xhArr = "⟺";
- var Xi = "Ξ";
- var xi = "ξ";
- var xlarr = "⟵";
- var xlArr = "⟸";
- var xmap = "⟼";
- var xnis = "⋻";
- var xodot = "⨀";
- var Xopf = "𝕏";
- var xopf = "𝕩";
- var xoplus = "⨁";
- var xotime = "⨂";
- var xrarr = "⟶";
- var xrArr = "⟹";
- var Xscr = "𝒳";
- var xscr = "𝓍";
- var xsqcup = "⨆";
- var xuplus = "⨄";
- var xutri = "△";
- var xvee = "⋁";
- var xwedge = "⋀";
- var Yacute = "Ý";
- var yacute = "ý";
- var YAcy = "Я";
- var yacy = "я";
- var Ycirc = "Ŷ";
- var ycirc = "ŷ";
- var Ycy = "Ы";
- var ycy = "ы";
- var yen = "¥";
- var Yfr = "𝔜";
- var yfr = "𝔶";
- var YIcy = "Ї";
- var yicy = "ї";
- var Yopf = "𝕐";
- var yopf = "𝕪";
- var Yscr = "𝒴";
- var yscr = "𝓎";
- var YUcy = "Ю";
- var yucy = "ю";
- var yuml = "ÿ";
- var Yuml = "Ÿ";
- var Zacute = "Ź";
- var zacute = "ź";
- var Zcaron = "Ž";
- var zcaron = "ž";
- var Zcy = "З";
- var zcy = "з";
- var Zdot = "Ż";
- var zdot = "ż";
- var zeetrf = "ℨ";
- var ZeroWidthSpace = "";
- var Zeta = "Ζ";
- var zeta = "ζ";
- var zfr = "𝔷";
- var Zfr = "ℨ";
- var ZHcy = "Ж";
- var zhcy = "ж";
- var zigrarr = "⇝";
- var zopf = "𝕫";
- var Zopf = "ℤ";
- var Zscr = "𝒵";
- var zscr = "𝓏";
- var zwj = "";
- var zwnj = "";
- var entities = {
- Aacute: Aacute,
- aacute: aacute,
- Abreve: Abreve,
- abreve: abreve,
- ac: ac,
- acd: acd,
- acE: acE,
- Acirc: Acirc,
- acirc: acirc,
- acute: acute,
- Acy: Acy,
- acy: acy,
- AElig: AElig,
- aelig: aelig,
- af: af,
- Afr: Afr,
- afr: afr,
- Agrave: Agrave,
- agrave: agrave,
- alefsym: alefsym,
- aleph: aleph,
- Alpha: Alpha,
- alpha: alpha,
- Amacr: Amacr,
- amacr: amacr,
- amalg: amalg,
- amp: amp,
- AMP: AMP,
- andand: andand,
- And: And,
- and: and,
- andd: andd,
- andslope: andslope,
- andv: andv,
- ang: ang,
- ange: ange,
- angle: angle,
- angmsdaa: angmsdaa,
- angmsdab: angmsdab,
- angmsdac: angmsdac,
- angmsdad: angmsdad,
- angmsdae: angmsdae,
- angmsdaf: angmsdaf,
- angmsdag: angmsdag,
- angmsdah: angmsdah,
- angmsd: angmsd,
- angrt: angrt,
- angrtvb: angrtvb,
- angrtvbd: angrtvbd,
- angsph: angsph,
- angst: angst,
- angzarr: angzarr,
- Aogon: Aogon,
- aogon: aogon,
- Aopf: Aopf,
- aopf: aopf,
- apacir: apacir,
- ap: ap,
- apE: apE,
- ape: ape,
- apid: apid,
- apos: apos,
- ApplyFunction: ApplyFunction,
- approx: approx,
- approxeq: approxeq,
- Aring: Aring,
- aring: aring,
- Ascr: Ascr,
- ascr: ascr,
- Assign: Assign,
- ast: ast,
- asymp: asymp,
- asympeq: asympeq,
- Atilde: Atilde,
- atilde: atilde,
- Auml: Auml,
- auml: auml,
- awconint: awconint,
- awint: awint,
- backcong: backcong,
- backepsilon: backepsilon,
- backprime: backprime,
- backsim: backsim,
- backsimeq: backsimeq,
- Backslash: Backslash,
- Barv: Barv,
- barvee: barvee,
- barwed: barwed,
- Barwed: Barwed,
- barwedge: barwedge,
- bbrk: bbrk,
- bbrktbrk: bbrktbrk,
- bcong: bcong,
- Bcy: Bcy,
- bcy: bcy,
- bdquo: bdquo,
- becaus: becaus,
- because: because,
- Because: Because,
- bemptyv: bemptyv,
- bepsi: bepsi,
- bernou: bernou,
- Bernoullis: Bernoullis,
- Beta: Beta,
- beta: beta,
- beth: beth,
- between: between,
- Bfr: Bfr,
- bfr: bfr,
- bigcap: bigcap,
- bigcirc: bigcirc,
- bigcup: bigcup,
- bigodot: bigodot,
- bigoplus: bigoplus,
- bigotimes: bigotimes,
- bigsqcup: bigsqcup,
- bigstar: bigstar,
- bigtriangledown: bigtriangledown,
- bigtriangleup: bigtriangleup,
- biguplus: biguplus,
- bigvee: bigvee,
- bigwedge: bigwedge,
- bkarow: bkarow,
- blacklozenge: blacklozenge,
- blacksquare: blacksquare,
- blacktriangle: blacktriangle,
- blacktriangledown: blacktriangledown,
- blacktriangleleft: blacktriangleleft,
- blacktriangleright: blacktriangleright,
- blank: blank,
- blk12: blk12,
- blk14: blk14,
- blk34: blk34,
- block: block,
- bne: bne,
- bnequiv: bnequiv,
- bNot: bNot,
- bnot: bnot,
- Bopf: Bopf,
- bopf: bopf,
- bot: bot,
- bottom: bottom,
- bowtie: bowtie,
- boxbox: boxbox,
- boxdl: boxdl,
- boxdL: boxdL,
- boxDl: boxDl,
- boxDL: boxDL,
- boxdr: boxdr,
- boxdR: boxdR,
- boxDr: boxDr,
- boxDR: boxDR,
- boxh: boxh,
- boxH: boxH,
- boxhd: boxhd,
- boxHd: boxHd,
- boxhD: boxhD,
- boxHD: boxHD,
- boxhu: boxhu,
- boxHu: boxHu,
- boxhU: boxhU,
- boxHU: boxHU,
- boxminus: boxminus,
- boxplus: boxplus,
- boxtimes: boxtimes,
- boxul: boxul,
- boxuL: boxuL,
- boxUl: boxUl,
- boxUL: boxUL,
- boxur: boxur,
- boxuR: boxuR,
- boxUr: boxUr,
- boxUR: boxUR,
- boxv: boxv,
- boxV: boxV,
- boxvh: boxvh,
- boxvH: boxvH,
- boxVh: boxVh,
- boxVH: boxVH,
- boxvl: boxvl,
- boxvL: boxvL,
- boxVl: boxVl,
- boxVL: boxVL,
- boxvr: boxvr,
- boxvR: boxvR,
- boxVr: boxVr,
- boxVR: boxVR,
- bprime: bprime,
- breve: breve,
- Breve: Breve,
- brvbar: brvbar,
- bscr: bscr,
- Bscr: Bscr,
- bsemi: bsemi,
- bsim: bsim,
- bsime: bsime,
- bsolb: bsolb,
- bsol: bsol,
- bsolhsub: bsolhsub,
- bull: bull,
- bullet: bullet,
- bump: bump,
- bumpE: bumpE,
- bumpe: bumpe,
- Bumpeq: Bumpeq,
- bumpeq: bumpeq,
- Cacute: Cacute,
- cacute: cacute,
- capand: capand,
- capbrcup: capbrcup,
- capcap: capcap,
- cap: cap,
- Cap: Cap,
- capcup: capcup,
- capdot: capdot,
- CapitalDifferentialD: CapitalDifferentialD,
- caps: caps,
- caret: caret,
- caron: caron,
- Cayleys: Cayleys,
- ccaps: ccaps,
- Ccaron: Ccaron,
- ccaron: ccaron,
- Ccedil: Ccedil,
- ccedil: ccedil,
- Ccirc: Ccirc,
- ccirc: ccirc,
- Cconint: Cconint,
- ccups: ccups,
- ccupssm: ccupssm,
- Cdot: Cdot,
- cdot: cdot,
- cedil: cedil,
- Cedilla: Cedilla,
- cemptyv: cemptyv,
- cent: cent,
- centerdot: centerdot,
- CenterDot: CenterDot,
- cfr: cfr,
- Cfr: Cfr,
- CHcy: CHcy,
- chcy: chcy,
- check: check,
- checkmark: checkmark,
- Chi: Chi,
- chi: chi,
- circ: circ,
- circeq: circeq,
- circlearrowleft: circlearrowleft,
- circlearrowright: circlearrowright,
- circledast: circledast,
- circledcirc: circledcirc,
- circleddash: circleddash,
- CircleDot: CircleDot,
- circledR: circledR,
- circledS: circledS,
- CircleMinus: CircleMinus,
- CirclePlus: CirclePlus,
- CircleTimes: CircleTimes,
- cir: cir,
- cirE: cirE,
- cire: cire,
- cirfnint: cirfnint,
- cirmid: cirmid,
- cirscir: cirscir,
- ClockwiseContourIntegral: ClockwiseContourIntegral,
- CloseCurlyDoubleQuote: CloseCurlyDoubleQuote,
- CloseCurlyQuote: CloseCurlyQuote,
- clubs: clubs,
- clubsuit: clubsuit,
- colon: colon,
- Colon: Colon,
- Colone: Colone,
- colone: colone,
- coloneq: coloneq,
- comma: comma,
- commat: commat,
- comp: comp,
- compfn: compfn,
- complement: complement,
- complexes: complexes,
- cong: cong,
- congdot: congdot,
- Congruent: Congruent,
- conint: conint,
- Conint: Conint,
- ContourIntegral: ContourIntegral,
- copf: copf,
- Copf: Copf,
- coprod: coprod,
- Coproduct: Coproduct,
- copy: copy,
- COPY: COPY,
- copysr: copysr,
- CounterClockwiseContourIntegral: CounterClockwiseContourIntegral,
- crarr: crarr,
- cross: cross,
- Cross: Cross,
- Cscr: Cscr,
- cscr: cscr,
- csub: csub,
- csube: csube,
- csup: csup,
- csupe: csupe,
- ctdot: ctdot,
- cudarrl: cudarrl,
- cudarrr: cudarrr,
- cuepr: cuepr,
- cuesc: cuesc,
- cularr: cularr,
- cularrp: cularrp,
- cupbrcap: cupbrcap,
- cupcap: cupcap,
- CupCap: CupCap,
- cup: cup,
- Cup: Cup,
- cupcup: cupcup,
- cupdot: cupdot,
- cupor: cupor,
- cups: cups,
- curarr: curarr,
- curarrm: curarrm,
- curlyeqprec: curlyeqprec,
- curlyeqsucc: curlyeqsucc,
- curlyvee: curlyvee,
- curlywedge: curlywedge,
- curren: curren,
- curvearrowleft: curvearrowleft,
- curvearrowright: curvearrowright,
- cuvee: cuvee,
- cuwed: cuwed,
- cwconint: cwconint,
- cwint: cwint,
- cylcty: cylcty,
- dagger: dagger,
- Dagger: Dagger,
- daleth: daleth,
- darr: darr,
- Darr: Darr,
- dArr: dArr,
- dash: dash,
- Dashv: Dashv,
- dashv: dashv,
- dbkarow: dbkarow,
- dblac: dblac,
- Dcaron: Dcaron,
- dcaron: dcaron,
- Dcy: Dcy,
- dcy: dcy,
- ddagger: ddagger,
- ddarr: ddarr,
- DD: DD,
- dd: dd,
- DDotrahd: DDotrahd,
- ddotseq: ddotseq,
- deg: deg,
- Del: Del,
- Delta: Delta,
- delta: delta,
- demptyv: demptyv,
- dfisht: dfisht,
- Dfr: Dfr,
- dfr: dfr,
- dHar: dHar,
- dharl: dharl,
- dharr: dharr,
- DiacriticalAcute: DiacriticalAcute,
- DiacriticalDot: DiacriticalDot,
- DiacriticalDoubleAcute: DiacriticalDoubleAcute,
- DiacriticalGrave: DiacriticalGrave,
- DiacriticalTilde: DiacriticalTilde,
- diam: diam,
- diamond: diamond,
- Diamond: Diamond,
- diamondsuit: diamondsuit,
- diams: diams,
- die: die,
- DifferentialD: DifferentialD,
- digamma: digamma,
- disin: disin,
- div: div,
- divide: divide,
- divideontimes: divideontimes,
- divonx: divonx,
- DJcy: DJcy,
- djcy: djcy,
- dlcorn: dlcorn,
- dlcrop: dlcrop,
- dollar: dollar,
- Dopf: Dopf,
- dopf: dopf,
- Dot: Dot,
- dot: dot,
- DotDot: DotDot,
- doteq: doteq,
- doteqdot: doteqdot,
- DotEqual: DotEqual,
- dotminus: dotminus,
- dotplus: dotplus,
- dotsquare: dotsquare,
- doublebarwedge: doublebarwedge,
- DoubleContourIntegral: DoubleContourIntegral,
- DoubleDot: DoubleDot,
- DoubleDownArrow: DoubleDownArrow,
- DoubleLeftArrow: DoubleLeftArrow,
- DoubleLeftRightArrow: DoubleLeftRightArrow,
- DoubleLeftTee: DoubleLeftTee,
- DoubleLongLeftArrow: DoubleLongLeftArrow,
- DoubleLongLeftRightArrow: DoubleLongLeftRightArrow,
- DoubleLongRightArrow: DoubleLongRightArrow,
- DoubleRightArrow: DoubleRightArrow,
- DoubleRightTee: DoubleRightTee,
- DoubleUpArrow: DoubleUpArrow,
- DoubleUpDownArrow: DoubleUpDownArrow,
- DoubleVerticalBar: DoubleVerticalBar,
- DownArrowBar: DownArrowBar,
- downarrow: downarrow,
- DownArrow: DownArrow,
- Downarrow: Downarrow,
- DownArrowUpArrow: DownArrowUpArrow,
- DownBreve: DownBreve,
- downdownarrows: downdownarrows,
- downharpoonleft: downharpoonleft,
- downharpoonright: downharpoonright,
- DownLeftRightVector: DownLeftRightVector,
- DownLeftTeeVector: DownLeftTeeVector,
- DownLeftVectorBar: DownLeftVectorBar,
- DownLeftVector: DownLeftVector,
- DownRightTeeVector: DownRightTeeVector,
- DownRightVectorBar: DownRightVectorBar,
- DownRightVector: DownRightVector,
- DownTeeArrow: DownTeeArrow,
- DownTee: DownTee,
- drbkarow: drbkarow,
- drcorn: drcorn,
- drcrop: drcrop,
- Dscr: Dscr,
- dscr: dscr,
- DScy: DScy,
- dscy: dscy,
- dsol: dsol,
- Dstrok: Dstrok,
- dstrok: dstrok,
- dtdot: dtdot,
- dtri: dtri,
- dtrif: dtrif,
- duarr: duarr,
- duhar: duhar,
- dwangle: dwangle,
- DZcy: DZcy,
- dzcy: dzcy,
- dzigrarr: dzigrarr,
- Eacute: Eacute,
- eacute: eacute,
- easter: easter,
- Ecaron: Ecaron,
- ecaron: ecaron,
- Ecirc: Ecirc,
- ecirc: ecirc,
- ecir: ecir,
- ecolon: ecolon,
- Ecy: Ecy,
- ecy: ecy,
- eDDot: eDDot,
- Edot: Edot,
- edot: edot,
- eDot: eDot,
- ee: ee,
- efDot: efDot,
- Efr: Efr,
- efr: efr,
- eg: eg,
- Egrave: Egrave,
- egrave: egrave,
- egs: egs,
- egsdot: egsdot,
- el: el,
- Element: Element,
- elinters: elinters,
- ell: ell,
- els: els,
- elsdot: elsdot,
- Emacr: Emacr,
- emacr: emacr,
- empty: empty,
- emptyset: emptyset,
- EmptySmallSquare: EmptySmallSquare,
- emptyv: emptyv,
- EmptyVerySmallSquare: EmptyVerySmallSquare,
- emsp13: emsp13,
- emsp14: emsp14,
- emsp: emsp,
- ENG: ENG,
- eng: eng,
- ensp: ensp,
- Eogon: Eogon,
- eogon: eogon,
- Eopf: Eopf,
- eopf: eopf,
- epar: epar,
- eparsl: eparsl,
- eplus: eplus,
- epsi: epsi,
- Epsilon: Epsilon,
- epsilon: epsilon,
- epsiv: epsiv,
- eqcirc: eqcirc,
- eqcolon: eqcolon,
- eqsim: eqsim,
- eqslantgtr: eqslantgtr,
- eqslantless: eqslantless,
- Equal: Equal,
- equals: equals,
- EqualTilde: EqualTilde,
- equest: equest,
- Equilibrium: Equilibrium,
- equiv: equiv,
- equivDD: equivDD,
- eqvparsl: eqvparsl,
- erarr: erarr,
- erDot: erDot,
- escr: escr,
- Escr: Escr,
- esdot: esdot,
- Esim: Esim,
- esim: esim,
- Eta: Eta,
- eta: eta,
- ETH: ETH,
- eth: eth,
- Euml: Euml,
- euml: euml,
- euro: euro,
- excl: excl,
- exist: exist,
- Exists: Exists,
- expectation: expectation,
- exponentiale: exponentiale,
- ExponentialE: ExponentialE,
- fallingdotseq: fallingdotseq,
- Fcy: Fcy,
- fcy: fcy,
- female: female,
- ffilig: ffilig,
- fflig: fflig,
- ffllig: ffllig,
- Ffr: Ffr,
- ffr: ffr,
- filig: filig,
- FilledSmallSquare: FilledSmallSquare,
- FilledVerySmallSquare: FilledVerySmallSquare,
- fjlig: fjlig,
- flat: flat,
- fllig: fllig,
- fltns: fltns,
- fnof: fnof,
- Fopf: Fopf,
- fopf: fopf,
- forall: forall,
- ForAll: ForAll,
- fork: fork,
- forkv: forkv,
- Fouriertrf: Fouriertrf,
- fpartint: fpartint,
- frac12: frac12,
- frac13: frac13,
- frac14: frac14,
- frac15: frac15,
- frac16: frac16,
- frac18: frac18,
- frac23: frac23,
- frac25: frac25,
- frac34: frac34,
- frac35: frac35,
- frac38: frac38,
- frac45: frac45,
- frac56: frac56,
- frac58: frac58,
- frac78: frac78,
- frasl: frasl,
- frown: frown,
- fscr: fscr,
- Fscr: Fscr,
- gacute: gacute,
- Gamma: Gamma,
- gamma: gamma,
- Gammad: Gammad,
- gammad: gammad,
- gap: gap,
- Gbreve: Gbreve,
- gbreve: gbreve,
- Gcedil: Gcedil,
- Gcirc: Gcirc,
- gcirc: gcirc,
- Gcy: Gcy,
- gcy: gcy,
- Gdot: Gdot,
- gdot: gdot,
- ge: ge,
- gE: gE,
- gEl: gEl,
- gel: gel,
- geq: geq,
- geqq: geqq,
- geqslant: geqslant,
- gescc: gescc,
- ges: ges,
- gesdot: gesdot,
- gesdoto: gesdoto,
- gesdotol: gesdotol,
- gesl: gesl,
- gesles: gesles,
- Gfr: Gfr,
- gfr: gfr,
- gg: gg,
- Gg: Gg,
- ggg: ggg,
- gimel: gimel,
- GJcy: GJcy,
- gjcy: gjcy,
- gla: gla,
- gl: gl,
- glE: glE,
- glj: glj,
- gnap: gnap,
- gnapprox: gnapprox,
- gne: gne,
- gnE: gnE,
- gneq: gneq,
- gneqq: gneqq,
- gnsim: gnsim,
- Gopf: Gopf,
- gopf: gopf,
- grave: grave,
- GreaterEqual: GreaterEqual,
- GreaterEqualLess: GreaterEqualLess,
- GreaterFullEqual: GreaterFullEqual,
- GreaterGreater: GreaterGreater,
- GreaterLess: GreaterLess,
- GreaterSlantEqual: GreaterSlantEqual,
- GreaterTilde: GreaterTilde,
- Gscr: Gscr,
- gscr: gscr,
- gsim: gsim,
- gsime: gsime,
- gsiml: gsiml,
- gtcc: gtcc,
- gtcir: gtcir,
- gt: gt,
- GT: GT,
- Gt: Gt,
- gtdot: gtdot,
- gtlPar: gtlPar,
- gtquest: gtquest,
- gtrapprox: gtrapprox,
- gtrarr: gtrarr,
- gtrdot: gtrdot,
- gtreqless: gtreqless,
- gtreqqless: gtreqqless,
- gtrless: gtrless,
- gtrsim: gtrsim,
- gvertneqq: gvertneqq,
- gvnE: gvnE,
- Hacek: Hacek,
- hairsp: hairsp,
- half: half,
- hamilt: hamilt,
- HARDcy: HARDcy,
- hardcy: hardcy,
- harrcir: harrcir,
- harr: harr,
- hArr: hArr,
- harrw: harrw,
- Hat: Hat,
- hbar: hbar,
- Hcirc: Hcirc,
- hcirc: hcirc,
- hearts: hearts,
- heartsuit: heartsuit,
- hellip: hellip,
- hercon: hercon,
- hfr: hfr,
- Hfr: Hfr,
- HilbertSpace: HilbertSpace,
- hksearow: hksearow,
- hkswarow: hkswarow,
- hoarr: hoarr,
- homtht: homtht,
- hookleftarrow: hookleftarrow,
- hookrightarrow: hookrightarrow,
- hopf: hopf,
- Hopf: Hopf,
- horbar: horbar,
- HorizontalLine: HorizontalLine,
- hscr: hscr,
- Hscr: Hscr,
- hslash: hslash,
- Hstrok: Hstrok,
- hstrok: hstrok,
- HumpDownHump: HumpDownHump,
- HumpEqual: HumpEqual,
- hybull: hybull,
- hyphen: hyphen,
- Iacute: Iacute,
- iacute: iacute,
- ic: ic,
- Icirc: Icirc,
- icirc: icirc,
- Icy: Icy,
- icy: icy,
- Idot: Idot,
- IEcy: IEcy,
- iecy: iecy,
- iexcl: iexcl,
- iff: iff,
- ifr: ifr,
- Ifr: Ifr,
- Igrave: Igrave,
- igrave: igrave,
- ii: ii,
- iiiint: iiiint,
- iiint: iiint,
- iinfin: iinfin,
- iiota: iiota,
- IJlig: IJlig,
- ijlig: ijlig,
- Imacr: Imacr,
- imacr: imacr,
- image: image,
- ImaginaryI: ImaginaryI,
- imagline: imagline,
- imagpart: imagpart,
- imath: imath,
- Im: Im,
- imof: imof,
- imped: imped,
- Implies: Implies,
- incare: incare,
- "in": "∈",
- infin: infin,
- infintie: infintie,
- inodot: inodot,
- intcal: intcal,
- int: int,
- Int: Int,
- integers: integers,
- Integral: Integral,
- intercal: intercal,
- Intersection: Intersection,
- intlarhk: intlarhk,
- intprod: intprod,
- InvisibleComma: InvisibleComma,
- InvisibleTimes: InvisibleTimes,
- IOcy: IOcy,
- iocy: iocy,
- Iogon: Iogon,
- iogon: iogon,
- Iopf: Iopf,
- iopf: iopf,
- Iota: Iota,
- iota: iota,
- iprod: iprod,
- iquest: iquest,
- iscr: iscr,
- Iscr: Iscr,
- isin: isin,
- isindot: isindot,
- isinE: isinE,
- isins: isins,
- isinsv: isinsv,
- isinv: isinv,
- it: it,
- Itilde: Itilde,
- itilde: itilde,
- Iukcy: Iukcy,
- iukcy: iukcy,
- Iuml: Iuml,
- iuml: iuml,
- Jcirc: Jcirc,
- jcirc: jcirc,
- Jcy: Jcy,
- jcy: jcy,
- Jfr: Jfr,
- jfr: jfr,
- jmath: jmath,
- Jopf: Jopf,
- jopf: jopf,
- Jscr: Jscr,
- jscr: jscr,
- Jsercy: Jsercy,
- jsercy: jsercy,
- Jukcy: Jukcy,
- jukcy: jukcy,
- Kappa: Kappa,
- kappa: kappa,
- kappav: kappav,
- Kcedil: Kcedil,
- kcedil: kcedil,
- Kcy: Kcy,
- kcy: kcy,
- Kfr: Kfr,
- kfr: kfr,
- kgreen: kgreen,
- KHcy: KHcy,
- khcy: khcy,
- KJcy: KJcy,
- kjcy: kjcy,
- Kopf: Kopf,
- kopf: kopf,
- Kscr: Kscr,
- kscr: kscr,
- lAarr: lAarr,
- Lacute: Lacute,
- lacute: lacute,
- laemptyv: laemptyv,
- lagran: lagran,
- Lambda: Lambda,
- lambda: lambda,
- lang: lang,
- Lang: Lang,
- langd: langd,
- langle: langle,
- lap: lap,
- Laplacetrf: Laplacetrf,
- laquo: laquo,
- larrb: larrb,
- larrbfs: larrbfs,
- larr: larr,
- Larr: Larr,
- lArr: lArr,
- larrfs: larrfs,
- larrhk: larrhk,
- larrlp: larrlp,
- larrpl: larrpl,
- larrsim: larrsim,
- larrtl: larrtl,
- latail: latail,
- lAtail: lAtail,
- lat: lat,
- late: late,
- lates: lates,
- lbarr: lbarr,
- lBarr: lBarr,
- lbbrk: lbbrk,
- lbrace: lbrace,
- lbrack: lbrack,
- lbrke: lbrke,
- lbrksld: lbrksld,
- lbrkslu: lbrkslu,
- Lcaron: Lcaron,
- lcaron: lcaron,
- Lcedil: Lcedil,
- lcedil: lcedil,
- lceil: lceil,
- lcub: lcub,
- Lcy: Lcy,
- lcy: lcy,
- ldca: ldca,
- ldquo: ldquo,
- ldquor: ldquor,
- ldrdhar: ldrdhar,
- ldrushar: ldrushar,
- ldsh: ldsh,
- le: le,
- lE: lE,
- LeftAngleBracket: LeftAngleBracket,
- LeftArrowBar: LeftArrowBar,
- leftarrow: leftarrow,
- LeftArrow: LeftArrow,
- Leftarrow: Leftarrow,
- LeftArrowRightArrow: LeftArrowRightArrow,
- leftarrowtail: leftarrowtail,
- LeftCeiling: LeftCeiling,
- LeftDoubleBracket: LeftDoubleBracket,
- LeftDownTeeVector: LeftDownTeeVector,
- LeftDownVectorBar: LeftDownVectorBar,
- LeftDownVector: LeftDownVector,
- LeftFloor: LeftFloor,
- leftharpoondown: leftharpoondown,
- leftharpoonup: leftharpoonup,
- leftleftarrows: leftleftarrows,
- leftrightarrow: leftrightarrow,
- LeftRightArrow: LeftRightArrow,
- Leftrightarrow: Leftrightarrow,
- leftrightarrows: leftrightarrows,
- leftrightharpoons: leftrightharpoons,
- leftrightsquigarrow: leftrightsquigarrow,
- LeftRightVector: LeftRightVector,
- LeftTeeArrow: LeftTeeArrow,
- LeftTee: LeftTee,
- LeftTeeVector: LeftTeeVector,
- leftthreetimes: leftthreetimes,
- LeftTriangleBar: LeftTriangleBar,
- LeftTriangle: LeftTriangle,
- LeftTriangleEqual: LeftTriangleEqual,
- LeftUpDownVector: LeftUpDownVector,
- LeftUpTeeVector: LeftUpTeeVector,
- LeftUpVectorBar: LeftUpVectorBar,
- LeftUpVector: LeftUpVector,
- LeftVectorBar: LeftVectorBar,
- LeftVector: LeftVector,
- lEg: lEg,
- leg: leg,
- leq: leq,
- leqq: leqq,
- leqslant: leqslant,
- lescc: lescc,
- les: les,
- lesdot: lesdot,
- lesdoto: lesdoto,
- lesdotor: lesdotor,
- lesg: lesg,
- lesges: lesges,
- lessapprox: lessapprox,
- lessdot: lessdot,
- lesseqgtr: lesseqgtr,
- lesseqqgtr: lesseqqgtr,
- LessEqualGreater: LessEqualGreater,
- LessFullEqual: LessFullEqual,
- LessGreater: LessGreater,
- lessgtr: lessgtr,
- LessLess: LessLess,
- lesssim: lesssim,
- LessSlantEqual: LessSlantEqual,
- LessTilde: LessTilde,
- lfisht: lfisht,
- lfloor: lfloor,
- Lfr: Lfr,
- lfr: lfr,
- lg: lg,
- lgE: lgE,
- lHar: lHar,
- lhard: lhard,
- lharu: lharu,
- lharul: lharul,
- lhblk: lhblk,
- LJcy: LJcy,
- ljcy: ljcy,
- llarr: llarr,
- ll: ll,
- Ll: Ll,
- llcorner: llcorner,
- Lleftarrow: Lleftarrow,
- llhard: llhard,
- lltri: lltri,
- Lmidot: Lmidot,
- lmidot: lmidot,
- lmoustache: lmoustache,
- lmoust: lmoust,
- lnap: lnap,
- lnapprox: lnapprox,
- lne: lne,
- lnE: lnE,
- lneq: lneq,
- lneqq: lneqq,
- lnsim: lnsim,
- loang: loang,
- loarr: loarr,
- lobrk: lobrk,
- longleftarrow: longleftarrow,
- LongLeftArrow: LongLeftArrow,
- Longleftarrow: Longleftarrow,
- longleftrightarrow: longleftrightarrow,
- LongLeftRightArrow: LongLeftRightArrow,
- Longleftrightarrow: Longleftrightarrow,
- longmapsto: longmapsto,
- longrightarrow: longrightarrow,
- LongRightArrow: LongRightArrow,
- Longrightarrow: Longrightarrow,
- looparrowleft: looparrowleft,
- looparrowright: looparrowright,
- lopar: lopar,
- Lopf: Lopf,
- lopf: lopf,
- loplus: loplus,
- lotimes: lotimes,
- lowast: lowast,
- lowbar: lowbar,
- LowerLeftArrow: LowerLeftArrow,
- LowerRightArrow: LowerRightArrow,
- loz: loz,
- lozenge: lozenge,
- lozf: lozf,
- lpar: lpar,
- lparlt: lparlt,
- lrarr: lrarr,
- lrcorner: lrcorner,
- lrhar: lrhar,
- lrhard: lrhard,
- lrm: lrm,
- lrtri: lrtri,
- lsaquo: lsaquo,
- lscr: lscr,
- Lscr: Lscr,
- lsh: lsh,
- Lsh: Lsh,
- lsim: lsim,
- lsime: lsime,
- lsimg: lsimg,
- lsqb: lsqb,
- lsquo: lsquo,
- lsquor: lsquor,
- Lstrok: Lstrok,
- lstrok: lstrok,
- ltcc: ltcc,
- ltcir: ltcir,
- lt: lt,
- LT: LT,
- Lt: Lt,
- ltdot: ltdot,
- lthree: lthree,
- ltimes: ltimes,
- ltlarr: ltlarr,
- ltquest: ltquest,
- ltri: ltri,
- ltrie: ltrie,
- ltrif: ltrif,
- ltrPar: ltrPar,
- lurdshar: lurdshar,
- luruhar: luruhar,
- lvertneqq: lvertneqq,
- lvnE: lvnE,
- macr: macr,
- male: male,
- malt: malt,
- maltese: maltese,
- "Map": "⤅",
- map: map,
- mapsto: mapsto,
- mapstodown: mapstodown,
- mapstoleft: mapstoleft,
- mapstoup: mapstoup,
- marker: marker,
- mcomma: mcomma,
- Mcy: Mcy,
- mcy: mcy,
- mdash: mdash,
- mDDot: mDDot,
- measuredangle: measuredangle,
- MediumSpace: MediumSpace,
- Mellintrf: Mellintrf,
- Mfr: Mfr,
- mfr: mfr,
- mho: mho,
- micro: micro,
- midast: midast,
- midcir: midcir,
- mid: mid,
- middot: middot,
- minusb: minusb,
- minus: minus,
- minusd: minusd,
- minusdu: minusdu,
- MinusPlus: MinusPlus,
- mlcp: mlcp,
- mldr: mldr,
- mnplus: mnplus,
- models: models,
- Mopf: Mopf,
- mopf: mopf,
- mp: mp,
- mscr: mscr,
- Mscr: Mscr,
- mstpos: mstpos,
- Mu: Mu,
- mu: mu,
- multimap: multimap,
- mumap: mumap,
- nabla: nabla,
- Nacute: Nacute,
- nacute: nacute,
- nang: nang,
- nap: nap,
- napE: napE,
- napid: napid,
- napos: napos,
- napprox: napprox,
- natural: natural,
- naturals: naturals,
- natur: natur,
- nbsp: nbsp,
- nbump: nbump,
- nbumpe: nbumpe,
- ncap: ncap,
- Ncaron: Ncaron,
- ncaron: ncaron,
- Ncedil: Ncedil,
- ncedil: ncedil,
- ncong: ncong,
- ncongdot: ncongdot,
- ncup: ncup,
- Ncy: Ncy,
- ncy: ncy,
- ndash: ndash,
- nearhk: nearhk,
- nearr: nearr,
- neArr: neArr,
- nearrow: nearrow,
- ne: ne,
- nedot: nedot,
- NegativeMediumSpace: NegativeMediumSpace,
- NegativeThickSpace: NegativeThickSpace,
- NegativeThinSpace: NegativeThinSpace,
- NegativeVeryThinSpace: NegativeVeryThinSpace,
- nequiv: nequiv,
- nesear: nesear,
- nesim: nesim,
- NestedGreaterGreater: NestedGreaterGreater,
- NestedLessLess: NestedLessLess,
- NewLine: NewLine,
- nexist: nexist,
- nexists: nexists,
- Nfr: Nfr,
- nfr: nfr,
- ngE: ngE,
- nge: nge,
- ngeq: ngeq,
- ngeqq: ngeqq,
- ngeqslant: ngeqslant,
- nges: nges,
- nGg: nGg,
- ngsim: ngsim,
- nGt: nGt,
- ngt: ngt,
- ngtr: ngtr,
- nGtv: nGtv,
- nharr: nharr,
- nhArr: nhArr,
- nhpar: nhpar,
- ni: ni,
- nis: nis,
- nisd: nisd,
- niv: niv,
- NJcy: NJcy,
- njcy: njcy,
- nlarr: nlarr,
- nlArr: nlArr,
- nldr: nldr,
- nlE: nlE,
- nle: nle,
- nleftarrow: nleftarrow,
- nLeftarrow: nLeftarrow,
- nleftrightarrow: nleftrightarrow,
- nLeftrightarrow: nLeftrightarrow,
- nleq: nleq,
- nleqq: nleqq,
- nleqslant: nleqslant,
- nles: nles,
- nless: nless,
- nLl: nLl,
- nlsim: nlsim,
- nLt: nLt,
- nlt: nlt,
- nltri: nltri,
- nltrie: nltrie,
- nLtv: nLtv,
- nmid: nmid,
- NoBreak: NoBreak,
- NonBreakingSpace: NonBreakingSpace,
- nopf: nopf,
- Nopf: Nopf,
- Not: Not,
- not: not,
- NotCongruent: NotCongruent,
- NotCupCap: NotCupCap,
- NotDoubleVerticalBar: NotDoubleVerticalBar,
- NotElement: NotElement,
- NotEqual: NotEqual,
- NotEqualTilde: NotEqualTilde,
- NotExists: NotExists,
- NotGreater: NotGreater,
- NotGreaterEqual: NotGreaterEqual,
- NotGreaterFullEqual: NotGreaterFullEqual,
- NotGreaterGreater: NotGreaterGreater,
- NotGreaterLess: NotGreaterLess,
- NotGreaterSlantEqual: NotGreaterSlantEqual,
- NotGreaterTilde: NotGreaterTilde,
- NotHumpDownHump: NotHumpDownHump,
- NotHumpEqual: NotHumpEqual,
- notin: notin,
- notindot: notindot,
- notinE: notinE,
- notinva: notinva,
- notinvb: notinvb,
- notinvc: notinvc,
- NotLeftTriangleBar: NotLeftTriangleBar,
- NotLeftTriangle: NotLeftTriangle,
- NotLeftTriangleEqual: NotLeftTriangleEqual,
- NotLess: NotLess,
- NotLessEqual: NotLessEqual,
- NotLessGreater: NotLessGreater,
- NotLessLess: NotLessLess,
- NotLessSlantEqual: NotLessSlantEqual,
- NotLessTilde: NotLessTilde,
- NotNestedGreaterGreater: NotNestedGreaterGreater,
- NotNestedLessLess: NotNestedLessLess,
- notni: notni,
- notniva: notniva,
- notnivb: notnivb,
- notnivc: notnivc,
- NotPrecedes: NotPrecedes,
- NotPrecedesEqual: NotPrecedesEqual,
- NotPrecedesSlantEqual: NotPrecedesSlantEqual,
- NotReverseElement: NotReverseElement,
- NotRightTriangleBar: NotRightTriangleBar,
- NotRightTriangle: NotRightTriangle,
- NotRightTriangleEqual: NotRightTriangleEqual,
- NotSquareSubset: NotSquareSubset,
- NotSquareSubsetEqual: NotSquareSubsetEqual,
- NotSquareSuperset: NotSquareSuperset,
- NotSquareSupersetEqual: NotSquareSupersetEqual,
- NotSubset: NotSubset,
- NotSubsetEqual: NotSubsetEqual,
- NotSucceeds: NotSucceeds,
- NotSucceedsEqual: NotSucceedsEqual,
- NotSucceedsSlantEqual: NotSucceedsSlantEqual,
- NotSucceedsTilde: NotSucceedsTilde,
- NotSuperset: NotSuperset,
- NotSupersetEqual: NotSupersetEqual,
- NotTilde: NotTilde,
- NotTildeEqual: NotTildeEqual,
- NotTildeFullEqual: NotTildeFullEqual,
- NotTildeTilde: NotTildeTilde,
- NotVerticalBar: NotVerticalBar,
- nparallel: nparallel,
- npar: npar,
- nparsl: nparsl,
- npart: npart,
- npolint: npolint,
- npr: npr,
- nprcue: nprcue,
- nprec: nprec,
- npreceq: npreceq,
- npre: npre,
- nrarrc: nrarrc,
- nrarr: nrarr,
- nrArr: nrArr,
- nrarrw: nrarrw,
- nrightarrow: nrightarrow,
- nRightarrow: nRightarrow,
- nrtri: nrtri,
- nrtrie: nrtrie,
- nsc: nsc,
- nsccue: nsccue,
- nsce: nsce,
- Nscr: Nscr,
- nscr: nscr,
- nshortmid: nshortmid,
- nshortparallel: nshortparallel,
- nsim: nsim,
- nsime: nsime,
- nsimeq: nsimeq,
- nsmid: nsmid,
- nspar: nspar,
- nsqsube: nsqsube,
- nsqsupe: nsqsupe,
- nsub: nsub,
- nsubE: nsubE,
- nsube: nsube,
- nsubset: nsubset,
- nsubseteq: nsubseteq,
- nsubseteqq: nsubseteqq,
- nsucc: nsucc,
- nsucceq: nsucceq,
- nsup: nsup,
- nsupE: nsupE,
- nsupe: nsupe,
- nsupset: nsupset,
- nsupseteq: nsupseteq,
- nsupseteqq: nsupseteqq,
- ntgl: ntgl,
- Ntilde: Ntilde,
- ntilde: ntilde,
- ntlg: ntlg,
- ntriangleleft: ntriangleleft,
- ntrianglelefteq: ntrianglelefteq,
- ntriangleright: ntriangleright,
- ntrianglerighteq: ntrianglerighteq,
- Nu: Nu,
- nu: nu,
- num: num,
- numero: numero,
- numsp: numsp,
- nvap: nvap,
- nvdash: nvdash,
- nvDash: nvDash,
- nVdash: nVdash,
- nVDash: nVDash,
- nvge: nvge,
- nvgt: nvgt,
- nvHarr: nvHarr,
- nvinfin: nvinfin,
- nvlArr: nvlArr,
- nvle: nvle,
- nvlt: nvlt,
- nvltrie: nvltrie,
- nvrArr: nvrArr,
- nvrtrie: nvrtrie,
- nvsim: nvsim,
- nwarhk: nwarhk,
- nwarr: nwarr,
- nwArr: nwArr,
- nwarrow: nwarrow,
- nwnear: nwnear,
- Oacute: Oacute,
- oacute: oacute,
- oast: oast,
- Ocirc: Ocirc,
- ocirc: ocirc,
- ocir: ocir,
- Ocy: Ocy,
- ocy: ocy,
- odash: odash,
- Odblac: Odblac,
- odblac: odblac,
- odiv: odiv,
- odot: odot,
- odsold: odsold,
- OElig: OElig,
- oelig: oelig,
- ofcir: ofcir,
- Ofr: Ofr,
- ofr: ofr,
- ogon: ogon,
- Ograve: Ograve,
- ograve: ograve,
- ogt: ogt,
- ohbar: ohbar,
- ohm: ohm,
- oint: oint,
- olarr: olarr,
- olcir: olcir,
- olcross: olcross,
- oline: oline,
- olt: olt,
- Omacr: Omacr,
- omacr: omacr,
- Omega: Omega,
- omega: omega,
- Omicron: Omicron,
- omicron: omicron,
- omid: omid,
- ominus: ominus,
- Oopf: Oopf,
- oopf: oopf,
- opar: opar,
- OpenCurlyDoubleQuote: OpenCurlyDoubleQuote,
- OpenCurlyQuote: OpenCurlyQuote,
- operp: operp,
- oplus: oplus,
- orarr: orarr,
- Or: Or,
- or: or,
- ord: ord,
- order: order,
- orderof: orderof,
- ordf: ordf,
- ordm: ordm,
- origof: origof,
- oror: oror,
- orslope: orslope,
- orv: orv,
- oS: oS,
- Oscr: Oscr,
- oscr: oscr,
- Oslash: Oslash,
- oslash: oslash,
- osol: osol,
- Otilde: Otilde,
- otilde: otilde,
- otimesas: otimesas,
- Otimes: Otimes,
- otimes: otimes,
- Ouml: Ouml,
- ouml: ouml,
- ovbar: ovbar,
- OverBar: OverBar,
- OverBrace: OverBrace,
- OverBracket: OverBracket,
- OverParenthesis: OverParenthesis,
- para: para,
- parallel: parallel,
- par: par,
- parsim: parsim,
- parsl: parsl,
- part: part,
- PartialD: PartialD,
- Pcy: Pcy,
- pcy: pcy,
- percnt: percnt,
- period: period,
- permil: permil,
- perp: perp,
- pertenk: pertenk,
- Pfr: Pfr,
- pfr: pfr,
- Phi: Phi,
- phi: phi,
- phiv: phiv,
- phmmat: phmmat,
- phone: phone,
- Pi: Pi,
- pi: pi,
- pitchfork: pitchfork,
- piv: piv,
- planck: planck,
- planckh: planckh,
- plankv: plankv,
- plusacir: plusacir,
- plusb: plusb,
- pluscir: pluscir,
- plus: plus,
- plusdo: plusdo,
- plusdu: plusdu,
- pluse: pluse,
- PlusMinus: PlusMinus,
- plusmn: plusmn,
- plussim: plussim,
- plustwo: plustwo,
- pm: pm,
- Poincareplane: Poincareplane,
- pointint: pointint,
- popf: popf,
- Popf: Popf,
- pound: pound,
- prap: prap,
- Pr: Pr,
- pr: pr,
- prcue: prcue,
- precapprox: precapprox,
- prec: prec,
- preccurlyeq: preccurlyeq,
- Precedes: Precedes,
- PrecedesEqual: PrecedesEqual,
- PrecedesSlantEqual: PrecedesSlantEqual,
- PrecedesTilde: PrecedesTilde,
- preceq: preceq,
- precnapprox: precnapprox,
- precneqq: precneqq,
- precnsim: precnsim,
- pre: pre,
- prE: prE,
- precsim: precsim,
- prime: prime,
- Prime: Prime,
- primes: primes,
- prnap: prnap,
- prnE: prnE,
- prnsim: prnsim,
- prod: prod,
- Product: Product,
- profalar: profalar,
- profline: profline,
- profsurf: profsurf,
- prop: prop,
- Proportional: Proportional,
- Proportion: Proportion,
- propto: propto,
- prsim: prsim,
- prurel: prurel,
- Pscr: Pscr,
- pscr: pscr,
- Psi: Psi,
- psi: psi,
- puncsp: puncsp,
- Qfr: Qfr,
- qfr: qfr,
- qint: qint,
- qopf: qopf,
- Qopf: Qopf,
- qprime: qprime,
- Qscr: Qscr,
- qscr: qscr,
- quaternions: quaternions,
- quatint: quatint,
- quest: quest,
- questeq: questeq,
- quot: quot,
- QUOT: QUOT,
- rAarr: rAarr,
- race: race,
- Racute: Racute,
- racute: racute,
- radic: radic,
- raemptyv: raemptyv,
- rang: rang,
- Rang: Rang,
- rangd: rangd,
- range: range,
- rangle: rangle,
- raquo: raquo,
- rarrap: rarrap,
- rarrb: rarrb,
- rarrbfs: rarrbfs,
- rarrc: rarrc,
- rarr: rarr,
- Rarr: Rarr,
- rArr: rArr,
- rarrfs: rarrfs,
- rarrhk: rarrhk,
- rarrlp: rarrlp,
- rarrpl: rarrpl,
- rarrsim: rarrsim,
- Rarrtl: Rarrtl,
- rarrtl: rarrtl,
- rarrw: rarrw,
- ratail: ratail,
- rAtail: rAtail,
- ratio: ratio,
- rationals: rationals,
- rbarr: rbarr,
- rBarr: rBarr,
- RBarr: RBarr,
- rbbrk: rbbrk,
- rbrace: rbrace,
- rbrack: rbrack,
- rbrke: rbrke,
- rbrksld: rbrksld,
- rbrkslu: rbrkslu,
- Rcaron: Rcaron,
- rcaron: rcaron,
- Rcedil: Rcedil,
- rcedil: rcedil,
- rceil: rceil,
- rcub: rcub,
- Rcy: Rcy,
- rcy: rcy,
- rdca: rdca,
- rdldhar: rdldhar,
- rdquo: rdquo,
- rdquor: rdquor,
- rdsh: rdsh,
- real: real,
- realine: realine,
- realpart: realpart,
- reals: reals,
- Re: Re,
- rect: rect,
- reg: reg,
- REG: REG,
- ReverseElement: ReverseElement,
- ReverseEquilibrium: ReverseEquilibrium,
- ReverseUpEquilibrium: ReverseUpEquilibrium,
- rfisht: rfisht,
- rfloor: rfloor,
- rfr: rfr,
- Rfr: Rfr,
- rHar: rHar,
- rhard: rhard,
- rharu: rharu,
- rharul: rharul,
- Rho: Rho,
- rho: rho,
- rhov: rhov,
- RightAngleBracket: RightAngleBracket,
- RightArrowBar: RightArrowBar,
- rightarrow: rightarrow,
- RightArrow: RightArrow,
- Rightarrow: Rightarrow,
- RightArrowLeftArrow: RightArrowLeftArrow,
- rightarrowtail: rightarrowtail,
- RightCeiling: RightCeiling,
- RightDoubleBracket: RightDoubleBracket,
- RightDownTeeVector: RightDownTeeVector,
- RightDownVectorBar: RightDownVectorBar,
- RightDownVector: RightDownVector,
- RightFloor: RightFloor,
- rightharpoondown: rightharpoondown,
- rightharpoonup: rightharpoonup,
- rightleftarrows: rightleftarrows,
- rightleftharpoons: rightleftharpoons,
- rightrightarrows: rightrightarrows,
- rightsquigarrow: rightsquigarrow,
- RightTeeArrow: RightTeeArrow,
- RightTee: RightTee,
- RightTeeVector: RightTeeVector,
- rightthreetimes: rightthreetimes,
- RightTriangleBar: RightTriangleBar,
- RightTriangle: RightTriangle,
- RightTriangleEqual: RightTriangleEqual,
- RightUpDownVector: RightUpDownVector,
- RightUpTeeVector: RightUpTeeVector,
- RightUpVectorBar: RightUpVectorBar,
- RightUpVector: RightUpVector,
- RightVectorBar: RightVectorBar,
- RightVector: RightVector,
- ring: ring,
- risingdotseq: risingdotseq,
- rlarr: rlarr,
- rlhar: rlhar,
- rlm: rlm,
- rmoustache: rmoustache,
- rmoust: rmoust,
- rnmid: rnmid,
- roang: roang,
- roarr: roarr,
- robrk: robrk,
- ropar: ropar,
- ropf: ropf,
- Ropf: Ropf,
- roplus: roplus,
- rotimes: rotimes,
- RoundImplies: RoundImplies,
- rpar: rpar,
- rpargt: rpargt,
- rppolint: rppolint,
- rrarr: rrarr,
- Rrightarrow: Rrightarrow,
- rsaquo: rsaquo,
- rscr: rscr,
- Rscr: Rscr,
- rsh: rsh,
- Rsh: Rsh,
- rsqb: rsqb,
- rsquo: rsquo,
- rsquor: rsquor,
- rthree: rthree,
- rtimes: rtimes,
- rtri: rtri,
- rtrie: rtrie,
- rtrif: rtrif,
- rtriltri: rtriltri,
- RuleDelayed: RuleDelayed,
- ruluhar: ruluhar,
- rx: rx,
- Sacute: Sacute,
- sacute: sacute,
- sbquo: sbquo,
- scap: scap,
- Scaron: Scaron,
- scaron: scaron,
- Sc: Sc,
- sc: sc,
- sccue: sccue,
- sce: sce,
- scE: scE,
- Scedil: Scedil,
- scedil: scedil,
- Scirc: Scirc,
- scirc: scirc,
- scnap: scnap,
- scnE: scnE,
- scnsim: scnsim,
- scpolint: scpolint,
- scsim: scsim,
- Scy: Scy,
- scy: scy,
- sdotb: sdotb,
- sdot: sdot,
- sdote: sdote,
- searhk: searhk,
- searr: searr,
- seArr: seArr,
- searrow: searrow,
- sect: sect,
- semi: semi,
- seswar: seswar,
- setminus: setminus,
- setmn: setmn,
- sext: sext,
- Sfr: Sfr,
- sfr: sfr,
- sfrown: sfrown,
- sharp: sharp,
- SHCHcy: SHCHcy,
- shchcy: shchcy,
- SHcy: SHcy,
- shcy: shcy,
- ShortDownArrow: ShortDownArrow,
- ShortLeftArrow: ShortLeftArrow,
- shortmid: shortmid,
- shortparallel: shortparallel,
- ShortRightArrow: ShortRightArrow,
- ShortUpArrow: ShortUpArrow,
- shy: shy,
- Sigma: Sigma,
- sigma: sigma,
- sigmaf: sigmaf,
- sigmav: sigmav,
- sim: sim,
- simdot: simdot,
- sime: sime,
- simeq: simeq,
- simg: simg,
- simgE: simgE,
- siml: siml,
- simlE: simlE,
- simne: simne,
- simplus: simplus,
- simrarr: simrarr,
- slarr: slarr,
- SmallCircle: SmallCircle,
- smallsetminus: smallsetminus,
- smashp: smashp,
- smeparsl: smeparsl,
- smid: smid,
- smile: smile,
- smt: smt,
- smte: smte,
- smtes: smtes,
- SOFTcy: SOFTcy,
- softcy: softcy,
- solbar: solbar,
- solb: solb,
- sol: sol,
- Sopf: Sopf,
- sopf: sopf,
- spades: spades,
- spadesuit: spadesuit,
- spar: spar,
- sqcap: sqcap,
- sqcaps: sqcaps,
- sqcup: sqcup,
- sqcups: sqcups,
- Sqrt: Sqrt,
- sqsub: sqsub,
- sqsube: sqsube,
- sqsubset: sqsubset,
- sqsubseteq: sqsubseteq,
- sqsup: sqsup,
- sqsupe: sqsupe,
- sqsupset: sqsupset,
- sqsupseteq: sqsupseteq,
- square: square,
- Square: Square,
- SquareIntersection: SquareIntersection,
- SquareSubset: SquareSubset,
- SquareSubsetEqual: SquareSubsetEqual,
- SquareSuperset: SquareSuperset,
- SquareSupersetEqual: SquareSupersetEqual,
- SquareUnion: SquareUnion,
- squarf: squarf,
- squ: squ,
- squf: squf,
- srarr: srarr,
- Sscr: Sscr,
- sscr: sscr,
- ssetmn: ssetmn,
- ssmile: ssmile,
- sstarf: sstarf,
- Star: Star,
- star: star,
- starf: starf,
- straightepsilon: straightepsilon,
- straightphi: straightphi,
- strns: strns,
- sub: sub,
- Sub: Sub,
- subdot: subdot,
- subE: subE,
- sube: sube,
- subedot: subedot,
- submult: submult,
- subnE: subnE,
- subne: subne,
- subplus: subplus,
- subrarr: subrarr,
- subset: subset,
- Subset: Subset,
- subseteq: subseteq,
- subseteqq: subseteqq,
- SubsetEqual: SubsetEqual,
- subsetneq: subsetneq,
- subsetneqq: subsetneqq,
- subsim: subsim,
- subsub: subsub,
- subsup: subsup,
- succapprox: succapprox,
- succ: succ,
- succcurlyeq: succcurlyeq,
- Succeeds: Succeeds,
- SucceedsEqual: SucceedsEqual,
- SucceedsSlantEqual: SucceedsSlantEqual,
- SucceedsTilde: SucceedsTilde,
- succeq: succeq,
- succnapprox: succnapprox,
- succneqq: succneqq,
- succnsim: succnsim,
- succsim: succsim,
- SuchThat: SuchThat,
- sum: sum,
- Sum: Sum,
- sung: sung,
- sup1: sup1,
- sup2: sup2,
- sup3: sup3,
- sup: sup,
- Sup: Sup,
- supdot: supdot,
- supdsub: supdsub,
- supE: supE,
- supe: supe,
- supedot: supedot,
- Superset: Superset,
- SupersetEqual: SupersetEqual,
- suphsol: suphsol,
- suphsub: suphsub,
- suplarr: suplarr,
- supmult: supmult,
- supnE: supnE,
- supne: supne,
- supplus: supplus,
- supset: supset,
- Supset: Supset,
- supseteq: supseteq,
- supseteqq: supseteqq,
- supsetneq: supsetneq,
- supsetneqq: supsetneqq,
- supsim: supsim,
- supsub: supsub,
- supsup: supsup,
- swarhk: swarhk,
- swarr: swarr,
- swArr: swArr,
- swarrow: swarrow,
- swnwar: swnwar,
- szlig: szlig,
- Tab: Tab,
- target: target,
- Tau: Tau,
- tau: tau,
- tbrk: tbrk,
- Tcaron: Tcaron,
- tcaron: tcaron,
- Tcedil: Tcedil,
- tcedil: tcedil,
- Tcy: Tcy,
- tcy: tcy,
- tdot: tdot,
- telrec: telrec,
- Tfr: Tfr,
- tfr: tfr,
- there4: there4,
- therefore: therefore,
- Therefore: Therefore,
- Theta: Theta,
- theta: theta,
- thetasym: thetasym,
- thetav: thetav,
- thickapprox: thickapprox,
- thicksim: thicksim,
- ThickSpace: ThickSpace,
- ThinSpace: ThinSpace,
- thinsp: thinsp,
- thkap: thkap,
- thksim: thksim,
- THORN: THORN,
- thorn: thorn,
- tilde: tilde,
- Tilde: Tilde,
- TildeEqual: TildeEqual,
- TildeFullEqual: TildeFullEqual,
- TildeTilde: TildeTilde,
- timesbar: timesbar,
- timesb: timesb,
- times: times,
- timesd: timesd,
- tint: tint,
- toea: toea,
- topbot: topbot,
- topcir: topcir,
- top: top,
- Topf: Topf,
- topf: topf,
- topfork: topfork,
- tosa: tosa,
- tprime: tprime,
- trade: trade,
- TRADE: TRADE,
- triangle: triangle,
- triangledown: triangledown,
- triangleleft: triangleleft,
- trianglelefteq: trianglelefteq,
- triangleq: triangleq,
- triangleright: triangleright,
- trianglerighteq: trianglerighteq,
- tridot: tridot,
- trie: trie,
- triminus: triminus,
- TripleDot: TripleDot,
- triplus: triplus,
- trisb: trisb,
- tritime: tritime,
- trpezium: trpezium,
- Tscr: Tscr,
- tscr: tscr,
- TScy: TScy,
- tscy: tscy,
- TSHcy: TSHcy,
- tshcy: tshcy,
- Tstrok: Tstrok,
- tstrok: tstrok,
- twixt: twixt,
- twoheadleftarrow: twoheadleftarrow,
- twoheadrightarrow: twoheadrightarrow,
- Uacute: Uacute,
- uacute: uacute,
- uarr: uarr,
- Uarr: Uarr,
- uArr: uArr,
- Uarrocir: Uarrocir,
- Ubrcy: Ubrcy,
- ubrcy: ubrcy,
- Ubreve: Ubreve,
- ubreve: ubreve,
- Ucirc: Ucirc,
- ucirc: ucirc,
- Ucy: Ucy,
- ucy: ucy,
- udarr: udarr,
- Udblac: Udblac,
- udblac: udblac,
- udhar: udhar,
- ufisht: ufisht,
- Ufr: Ufr,
- ufr: ufr,
- Ugrave: Ugrave,
- ugrave: ugrave,
- uHar: uHar,
- uharl: uharl,
- uharr: uharr,
- uhblk: uhblk,
- ulcorn: ulcorn,
- ulcorner: ulcorner,
- ulcrop: ulcrop,
- ultri: ultri,
- Umacr: Umacr,
- umacr: umacr,
- uml: uml,
- UnderBar: UnderBar,
- UnderBrace: UnderBrace,
- UnderBracket: UnderBracket,
- UnderParenthesis: UnderParenthesis,
- Union: Union,
- UnionPlus: UnionPlus,
- Uogon: Uogon,
- uogon: uogon,
- Uopf: Uopf,
- uopf: uopf,
- UpArrowBar: UpArrowBar,
- uparrow: uparrow,
- UpArrow: UpArrow,
- Uparrow: Uparrow,
- UpArrowDownArrow: UpArrowDownArrow,
- updownarrow: updownarrow,
- UpDownArrow: UpDownArrow,
- Updownarrow: Updownarrow,
- UpEquilibrium: UpEquilibrium,
- upharpoonleft: upharpoonleft,
- upharpoonright: upharpoonright,
- uplus: uplus,
- UpperLeftArrow: UpperLeftArrow,
- UpperRightArrow: UpperRightArrow,
- upsi: upsi,
- Upsi: Upsi,
- upsih: upsih,
- Upsilon: Upsilon,
- upsilon: upsilon,
- UpTeeArrow: UpTeeArrow,
- UpTee: UpTee,
- upuparrows: upuparrows,
- urcorn: urcorn,
- urcorner: urcorner,
- urcrop: urcrop,
- Uring: Uring,
- uring: uring,
- urtri: urtri,
- Uscr: Uscr,
- uscr: uscr,
- utdot: utdot,
- Utilde: Utilde,
- utilde: utilde,
- utri: utri,
- utrif: utrif,
- uuarr: uuarr,
- Uuml: Uuml,
- uuml: uuml,
- uwangle: uwangle,
- vangrt: vangrt,
- varepsilon: varepsilon,
- varkappa: varkappa,
- varnothing: varnothing,
- varphi: varphi,
- varpi: varpi,
- varpropto: varpropto,
- varr: varr,
- vArr: vArr,
- varrho: varrho,
- varsigma: varsigma,
- varsubsetneq: varsubsetneq,
- varsubsetneqq: varsubsetneqq,
- varsupsetneq: varsupsetneq,
- varsupsetneqq: varsupsetneqq,
- vartheta: vartheta,
- vartriangleleft: vartriangleleft,
- vartriangleright: vartriangleright,
- vBar: vBar,
- Vbar: Vbar,
- vBarv: vBarv,
- Vcy: Vcy,
- vcy: vcy,
- vdash: vdash,
- vDash: vDash,
- Vdash: Vdash,
- VDash: VDash,
- Vdashl: Vdashl,
- veebar: veebar,
- vee: vee,
- Vee: Vee,
- veeeq: veeeq,
- vellip: vellip,
- verbar: verbar,
- Verbar: Verbar,
- vert: vert,
- Vert: Vert,
- VerticalBar: VerticalBar,
- VerticalLine: VerticalLine,
- VerticalSeparator: VerticalSeparator,
- VerticalTilde: VerticalTilde,
- VeryThinSpace: VeryThinSpace,
- Vfr: Vfr,
- vfr: vfr,
- vltri: vltri,
- vnsub: vnsub,
- vnsup: vnsup,
- Vopf: Vopf,
- vopf: vopf,
- vprop: vprop,
- vrtri: vrtri,
- Vscr: Vscr,
- vscr: vscr,
- vsubnE: vsubnE,
- vsubne: vsubne,
- vsupnE: vsupnE,
- vsupne: vsupne,
- Vvdash: Vvdash,
- vzigzag: vzigzag,
- Wcirc: Wcirc,
- wcirc: wcirc,
- wedbar: wedbar,
- wedge: wedge,
- Wedge: Wedge,
- wedgeq: wedgeq,
- weierp: weierp,
- Wfr: Wfr,
- wfr: wfr,
- Wopf: Wopf,
- wopf: wopf,
- wp: wp,
- wr: wr,
- wreath: wreath,
- Wscr: Wscr,
- wscr: wscr,
- xcap: xcap,
- xcirc: xcirc,
- xcup: xcup,
- xdtri: xdtri,
- Xfr: Xfr,
- xfr: xfr,
- xharr: xharr,
- xhArr: xhArr,
- Xi: Xi,
- xi: xi,
- xlarr: xlarr,
- xlArr: xlArr,
- xmap: xmap,
- xnis: xnis,
- xodot: xodot,
- Xopf: Xopf,
- xopf: xopf,
- xoplus: xoplus,
- xotime: xotime,
- xrarr: xrarr,
- xrArr: xrArr,
- Xscr: Xscr,
- xscr: xscr,
- xsqcup: xsqcup,
- xuplus: xuplus,
- xutri: xutri,
- xvee: xvee,
- xwedge: xwedge,
- Yacute: Yacute,
- yacute: yacute,
- YAcy: YAcy,
- yacy: yacy,
- Ycirc: Ycirc,
- ycirc: ycirc,
- Ycy: Ycy,
- ycy: ycy,
- yen: yen,
- Yfr: Yfr,
- yfr: yfr,
- YIcy: YIcy,
- yicy: yicy,
- Yopf: Yopf,
- yopf: yopf,
- Yscr: Yscr,
- yscr: yscr,
- YUcy: YUcy,
- yucy: yucy,
- yuml: yuml,
- Yuml: Yuml,
- Zacute: Zacute,
- zacute: zacute,
- Zcaron: Zcaron,
- zcaron: zcaron,
- Zcy: Zcy,
- zcy: zcy,
- Zdot: Zdot,
- zdot: zdot,
- zeetrf: zeetrf,
- ZeroWidthSpace: ZeroWidthSpace,
- Zeta: Zeta,
- zeta: zeta,
- zfr: zfr,
- Zfr: Zfr,
- ZHcy: ZHcy,
- zhcy: zhcy,
- zigrarr: zigrarr,
- zopf: zopf,
- Zopf: Zopf,
- Zscr: Zscr,
- zscr: zscr,
- zwj: zwj,
- zwnj: zwnj
- };
-
- var entities$1 = /*#__PURE__*/Object.freeze({
- __proto__: null,
- Aacute: Aacute,
- aacute: aacute,
- Abreve: Abreve,
- abreve: abreve,
- ac: ac,
- acd: acd,
- acE: acE,
- Acirc: Acirc,
- acirc: acirc,
- acute: acute,
- Acy: Acy,
- acy: acy,
- AElig: AElig,
- aelig: aelig,
- af: af,
- Afr: Afr,
- afr: afr,
- Agrave: Agrave,
- agrave: agrave,
- alefsym: alefsym,
- aleph: aleph,
- Alpha: Alpha,
- alpha: alpha,
- Amacr: Amacr,
- amacr: amacr,
- amalg: amalg,
- amp: amp,
- AMP: AMP,
- andand: andand,
- And: And,
- and: and,
- andd: andd,
- andslope: andslope,
- andv: andv,
- ang: ang,
- ange: ange,
- angle: angle,
- angmsdaa: angmsdaa,
- angmsdab: angmsdab,
- angmsdac: angmsdac,
- angmsdad: angmsdad,
- angmsdae: angmsdae,
- angmsdaf: angmsdaf,
- angmsdag: angmsdag,
- angmsdah: angmsdah,
- angmsd: angmsd,
- angrt: angrt,
- angrtvb: angrtvb,
- angrtvbd: angrtvbd,
- angsph: angsph,
- angst: angst,
- angzarr: angzarr,
- Aogon: Aogon,
- aogon: aogon,
- Aopf: Aopf,
- aopf: aopf,
- apacir: apacir,
- ap: ap,
- apE: apE,
- ape: ape,
- apid: apid,
- apos: apos,
- ApplyFunction: ApplyFunction,
- approx: approx,
- approxeq: approxeq,
- Aring: Aring,
- aring: aring,
- Ascr: Ascr,
- ascr: ascr,
- Assign: Assign,
- ast: ast,
- asymp: asymp,
- asympeq: asympeq,
- Atilde: Atilde,
- atilde: atilde,
- Auml: Auml,
- auml: auml,
- awconint: awconint,
- awint: awint,
- backcong: backcong,
- backepsilon: backepsilon,
- backprime: backprime,
- backsim: backsim,
- backsimeq: backsimeq,
- Backslash: Backslash,
- Barv: Barv,
- barvee: barvee,
- barwed: barwed,
- Barwed: Barwed,
- barwedge: barwedge,
- bbrk: bbrk,
- bbrktbrk: bbrktbrk,
- bcong: bcong,
- Bcy: Bcy,
- bcy: bcy,
- bdquo: bdquo,
- becaus: becaus,
- because: because,
- Because: Because,
- bemptyv: bemptyv,
- bepsi: bepsi,
- bernou: bernou,
- Bernoullis: Bernoullis,
- Beta: Beta,
- beta: beta,
- beth: beth,
- between: between,
- Bfr: Bfr,
- bfr: bfr,
- bigcap: bigcap,
- bigcirc: bigcirc,
- bigcup: bigcup,
- bigodot: bigodot,
- bigoplus: bigoplus,
- bigotimes: bigotimes,
- bigsqcup: bigsqcup,
- bigstar: bigstar,
- bigtriangledown: bigtriangledown,
- bigtriangleup: bigtriangleup,
- biguplus: biguplus,
- bigvee: bigvee,
- bigwedge: bigwedge,
- bkarow: bkarow,
- blacklozenge: blacklozenge,
- blacksquare: blacksquare,
- blacktriangle: blacktriangle,
- blacktriangledown: blacktriangledown,
- blacktriangleleft: blacktriangleleft,
- blacktriangleright: blacktriangleright,
- blank: blank,
- blk12: blk12,
- blk14: blk14,
- blk34: blk34,
- block: block,
- bne: bne,
- bnequiv: bnequiv,
- bNot: bNot,
- bnot: bnot,
- Bopf: Bopf,
- bopf: bopf,
- bot: bot,
- bottom: bottom,
- bowtie: bowtie,
- boxbox: boxbox,
- boxdl: boxdl,
- boxdL: boxdL,
- boxDl: boxDl,
- boxDL: boxDL,
- boxdr: boxdr,
- boxdR: boxdR,
- boxDr: boxDr,
- boxDR: boxDR,
- boxh: boxh,
- boxH: boxH,
- boxhd: boxhd,
- boxHd: boxHd,
- boxhD: boxhD,
- boxHD: boxHD,
- boxhu: boxhu,
- boxHu: boxHu,
- boxhU: boxhU,
- boxHU: boxHU,
- boxminus: boxminus,
- boxplus: boxplus,
- boxtimes: boxtimes,
- boxul: boxul,
- boxuL: boxuL,
- boxUl: boxUl,
- boxUL: boxUL,
- boxur: boxur,
- boxuR: boxuR,
- boxUr: boxUr,
- boxUR: boxUR,
- boxv: boxv,
- boxV: boxV,
- boxvh: boxvh,
- boxvH: boxvH,
- boxVh: boxVh,
- boxVH: boxVH,
- boxvl: boxvl,
- boxvL: boxvL,
- boxVl: boxVl,
- boxVL: boxVL,
- boxvr: boxvr,
- boxvR: boxvR,
- boxVr: boxVr,
- boxVR: boxVR,
- bprime: bprime,
- breve: breve,
- Breve: Breve,
- brvbar: brvbar,
- bscr: bscr,
- Bscr: Bscr,
- bsemi: bsemi,
- bsim: bsim,
- bsime: bsime,
- bsolb: bsolb,
- bsol: bsol,
- bsolhsub: bsolhsub,
- bull: bull,
- bullet: bullet,
- bump: bump,
- bumpE: bumpE,
- bumpe: bumpe,
- Bumpeq: Bumpeq,
- bumpeq: bumpeq,
- Cacute: Cacute,
- cacute: cacute,
- capand: capand,
- capbrcup: capbrcup,
- capcap: capcap,
- cap: cap,
- Cap: Cap,
- capcup: capcup,
- capdot: capdot,
- CapitalDifferentialD: CapitalDifferentialD,
- caps: caps,
- caret: caret,
- caron: caron,
- Cayleys: Cayleys,
- ccaps: ccaps,
- Ccaron: Ccaron,
- ccaron: ccaron,
- Ccedil: Ccedil,
- ccedil: ccedil,
- Ccirc: Ccirc,
- ccirc: ccirc,
- Cconint: Cconint,
- ccups: ccups,
- ccupssm: ccupssm,
- Cdot: Cdot,
- cdot: cdot,
- cedil: cedil,
- Cedilla: Cedilla,
- cemptyv: cemptyv,
- cent: cent,
- centerdot: centerdot,
- CenterDot: CenterDot,
- cfr: cfr,
- Cfr: Cfr,
- CHcy: CHcy,
- chcy: chcy,
- check: check,
- checkmark: checkmark,
- Chi: Chi,
- chi: chi,
- circ: circ,
- circeq: circeq,
- circlearrowleft: circlearrowleft,
- circlearrowright: circlearrowright,
- circledast: circledast,
- circledcirc: circledcirc,
- circleddash: circleddash,
- CircleDot: CircleDot,
- circledR: circledR,
- circledS: circledS,
- CircleMinus: CircleMinus,
- CirclePlus: CirclePlus,
- CircleTimes: CircleTimes,
- cir: cir,
- cirE: cirE,
- cire: cire,
- cirfnint: cirfnint,
- cirmid: cirmid,
- cirscir: cirscir,
- ClockwiseContourIntegral: ClockwiseContourIntegral,
- CloseCurlyDoubleQuote: CloseCurlyDoubleQuote,
- CloseCurlyQuote: CloseCurlyQuote,
- clubs: clubs,
- clubsuit: clubsuit,
- colon: colon,
- Colon: Colon,
- Colone: Colone,
- colone: colone,
- coloneq: coloneq,
- comma: comma,
- commat: commat,
- comp: comp,
- compfn: compfn,
- complement: complement,
- complexes: complexes,
- cong: cong,
- congdot: congdot,
- Congruent: Congruent,
- conint: conint,
- Conint: Conint,
- ContourIntegral: ContourIntegral,
- copf: copf,
- Copf: Copf,
- coprod: coprod,
- Coproduct: Coproduct,
- copy: copy,
- COPY: COPY,
- copysr: copysr,
- CounterClockwiseContourIntegral: CounterClockwiseContourIntegral,
- crarr: crarr,
- cross: cross,
- Cross: Cross,
- Cscr: Cscr,
- cscr: cscr,
- csub: csub,
- csube: csube,
- csup: csup,
- csupe: csupe,
- ctdot: ctdot,
- cudarrl: cudarrl,
- cudarrr: cudarrr,
- cuepr: cuepr,
- cuesc: cuesc,
- cularr: cularr,
- cularrp: cularrp,
- cupbrcap: cupbrcap,
- cupcap: cupcap,
- CupCap: CupCap,
- cup: cup,
- Cup: Cup,
- cupcup: cupcup,
- cupdot: cupdot,
- cupor: cupor,
- cups: cups,
- curarr: curarr,
- curarrm: curarrm,
- curlyeqprec: curlyeqprec,
- curlyeqsucc: curlyeqsucc,
- curlyvee: curlyvee,
- curlywedge: curlywedge,
- curren: curren,
- curvearrowleft: curvearrowleft,
- curvearrowright: curvearrowright,
- cuvee: cuvee,
- cuwed: cuwed,
- cwconint: cwconint,
- cwint: cwint,
- cylcty: cylcty,
- dagger: dagger,
- Dagger: Dagger,
- daleth: daleth,
- darr: darr,
- Darr: Darr,
- dArr: dArr,
- dash: dash,
- Dashv: Dashv,
- dashv: dashv,
- dbkarow: dbkarow,
- dblac: dblac,
- Dcaron: Dcaron,
- dcaron: dcaron,
- Dcy: Dcy,
- dcy: dcy,
- ddagger: ddagger,
- ddarr: ddarr,
- DD: DD,
- dd: dd,
- DDotrahd: DDotrahd,
- ddotseq: ddotseq,
- deg: deg,
- Del: Del,
- Delta: Delta,
- delta: delta,
- demptyv: demptyv,
- dfisht: dfisht,
- Dfr: Dfr,
- dfr: dfr,
- dHar: dHar,
- dharl: dharl,
- dharr: dharr,
- DiacriticalAcute: DiacriticalAcute,
- DiacriticalDot: DiacriticalDot,
- DiacriticalDoubleAcute: DiacriticalDoubleAcute,
- DiacriticalGrave: DiacriticalGrave,
- DiacriticalTilde: DiacriticalTilde,
- diam: diam,
- diamond: diamond,
- Diamond: Diamond,
- diamondsuit: diamondsuit,
- diams: diams,
- die: die,
- DifferentialD: DifferentialD,
- digamma: digamma,
- disin: disin,
- div: div,
- divide: divide,
- divideontimes: divideontimes,
- divonx: divonx,
- DJcy: DJcy,
- djcy: djcy,
- dlcorn: dlcorn,
- dlcrop: dlcrop,
- dollar: dollar,
- Dopf: Dopf,
- dopf: dopf,
- Dot: Dot,
- dot: dot,
- DotDot: DotDot,
- doteq: doteq,
- doteqdot: doteqdot,
- DotEqual: DotEqual,
- dotminus: dotminus,
- dotplus: dotplus,
- dotsquare: dotsquare,
- doublebarwedge: doublebarwedge,
- DoubleContourIntegral: DoubleContourIntegral,
- DoubleDot: DoubleDot,
- DoubleDownArrow: DoubleDownArrow,
- DoubleLeftArrow: DoubleLeftArrow,
- DoubleLeftRightArrow: DoubleLeftRightArrow,
- DoubleLeftTee: DoubleLeftTee,
- DoubleLongLeftArrow: DoubleLongLeftArrow,
- DoubleLongLeftRightArrow: DoubleLongLeftRightArrow,
- DoubleLongRightArrow: DoubleLongRightArrow,
- DoubleRightArrow: DoubleRightArrow,
- DoubleRightTee: DoubleRightTee,
- DoubleUpArrow: DoubleUpArrow,
- DoubleUpDownArrow: DoubleUpDownArrow,
- DoubleVerticalBar: DoubleVerticalBar,
- DownArrowBar: DownArrowBar,
- downarrow: downarrow,
- DownArrow: DownArrow,
- Downarrow: Downarrow,
- DownArrowUpArrow: DownArrowUpArrow,
- DownBreve: DownBreve,
- downdownarrows: downdownarrows,
- downharpoonleft: downharpoonleft,
- downharpoonright: downharpoonright,
- DownLeftRightVector: DownLeftRightVector,
- DownLeftTeeVector: DownLeftTeeVector,
- DownLeftVectorBar: DownLeftVectorBar,
- DownLeftVector: DownLeftVector,
- DownRightTeeVector: DownRightTeeVector,
- DownRightVectorBar: DownRightVectorBar,
- DownRightVector: DownRightVector,
- DownTeeArrow: DownTeeArrow,
- DownTee: DownTee,
- drbkarow: drbkarow,
- drcorn: drcorn,
- drcrop: drcrop,
- Dscr: Dscr,
- dscr: dscr,
- DScy: DScy,
- dscy: dscy,
- dsol: dsol,
- Dstrok: Dstrok,
- dstrok: dstrok,
- dtdot: dtdot,
- dtri: dtri,
- dtrif: dtrif,
- duarr: duarr,
- duhar: duhar,
- dwangle: dwangle,
- DZcy: DZcy,
- dzcy: dzcy,
- dzigrarr: dzigrarr,
- Eacute: Eacute,
- eacute: eacute,
- easter: easter,
- Ecaron: Ecaron,
- ecaron: ecaron,
- Ecirc: Ecirc,
- ecirc: ecirc,
- ecir: ecir,
- ecolon: ecolon,
- Ecy: Ecy,
- ecy: ecy,
- eDDot: eDDot,
- Edot: Edot,
- edot: edot,
- eDot: eDot,
- ee: ee,
- efDot: efDot,
- Efr: Efr,
- efr: efr,
- eg: eg,
- Egrave: Egrave,
- egrave: egrave,
- egs: egs,
- egsdot: egsdot,
- el: el,
- Element: Element,
- elinters: elinters,
- ell: ell,
- els: els,
- elsdot: elsdot,
- Emacr: Emacr,
- emacr: emacr,
- empty: empty,
- emptyset: emptyset,
- EmptySmallSquare: EmptySmallSquare,
- emptyv: emptyv,
- EmptyVerySmallSquare: EmptyVerySmallSquare,
- emsp13: emsp13,
- emsp14: emsp14,
- emsp: emsp,
- ENG: ENG,
- eng: eng,
- ensp: ensp,
- Eogon: Eogon,
- eogon: eogon,
- Eopf: Eopf,
- eopf: eopf,
- epar: epar,
- eparsl: eparsl,
- eplus: eplus,
- epsi: epsi,
- Epsilon: Epsilon,
- epsilon: epsilon,
- epsiv: epsiv,
- eqcirc: eqcirc,
- eqcolon: eqcolon,
- eqsim: eqsim,
- eqslantgtr: eqslantgtr,
- eqslantless: eqslantless,
- Equal: Equal,
- equals: equals,
- EqualTilde: EqualTilde,
- equest: equest,
- Equilibrium: Equilibrium,
- equiv: equiv,
- equivDD: equivDD,
- eqvparsl: eqvparsl,
- erarr: erarr,
- erDot: erDot,
- escr: escr,
- Escr: Escr,
- esdot: esdot,
- Esim: Esim,
- esim: esim,
- Eta: Eta,
- eta: eta,
- ETH: ETH,
- eth: eth,
- Euml: Euml,
- euml: euml,
- euro: euro,
- excl: excl,
- exist: exist,
- Exists: Exists,
- expectation: expectation,
- exponentiale: exponentiale,
- ExponentialE: ExponentialE,
- fallingdotseq: fallingdotseq,
- Fcy: Fcy,
- fcy: fcy,
- female: female,
- ffilig: ffilig,
- fflig: fflig,
- ffllig: ffllig,
- Ffr: Ffr,
- ffr: ffr,
- filig: filig,
- FilledSmallSquare: FilledSmallSquare,
- FilledVerySmallSquare: FilledVerySmallSquare,
- fjlig: fjlig,
- flat: flat,
- fllig: fllig,
- fltns: fltns,
- fnof: fnof,
- Fopf: Fopf,
- fopf: fopf,
- forall: forall,
- ForAll: ForAll,
- fork: fork,
- forkv: forkv,
- Fouriertrf: Fouriertrf,
- fpartint: fpartint,
- frac12: frac12,
- frac13: frac13,
- frac14: frac14,
- frac15: frac15,
- frac16: frac16,
- frac18: frac18,
- frac23: frac23,
- frac25: frac25,
- frac34: frac34,
- frac35: frac35,
- frac38: frac38,
- frac45: frac45,
- frac56: frac56,
- frac58: frac58,
- frac78: frac78,
- frasl: frasl,
- frown: frown,
- fscr: fscr,
- Fscr: Fscr,
- gacute: gacute,
- Gamma: Gamma,
- gamma: gamma,
- Gammad: Gammad,
- gammad: gammad,
- gap: gap,
- Gbreve: Gbreve,
- gbreve: gbreve,
- Gcedil: Gcedil,
- Gcirc: Gcirc,
- gcirc: gcirc,
- Gcy: Gcy,
- gcy: gcy,
- Gdot: Gdot,
- gdot: gdot,
- ge: ge,
- gE: gE,
- gEl: gEl,
- gel: gel,
- geq: geq,
- geqq: geqq,
- geqslant: geqslant,
- gescc: gescc,
- ges: ges,
- gesdot: gesdot,
- gesdoto: gesdoto,
- gesdotol: gesdotol,
- gesl: gesl,
- gesles: gesles,
- Gfr: Gfr,
- gfr: gfr,
- gg: gg,
- Gg: Gg,
- ggg: ggg,
- gimel: gimel,
- GJcy: GJcy,
- gjcy: gjcy,
- gla: gla,
- gl: gl,
- glE: glE,
- glj: glj,
- gnap: gnap,
- gnapprox: gnapprox,
- gne: gne,
- gnE: gnE,
- gneq: gneq,
- gneqq: gneqq,
- gnsim: gnsim,
- Gopf: Gopf,
- gopf: gopf,
- grave: grave,
- GreaterEqual: GreaterEqual,
- GreaterEqualLess: GreaterEqualLess,
- GreaterFullEqual: GreaterFullEqual,
- GreaterGreater: GreaterGreater,
- GreaterLess: GreaterLess,
- GreaterSlantEqual: GreaterSlantEqual,
- GreaterTilde: GreaterTilde,
- Gscr: Gscr,
- gscr: gscr,
- gsim: gsim,
- gsime: gsime,
- gsiml: gsiml,
- gtcc: gtcc,
- gtcir: gtcir,
- gt: gt,
- GT: GT,
- Gt: Gt,
- gtdot: gtdot,
- gtlPar: gtlPar,
- gtquest: gtquest,
- gtrapprox: gtrapprox,
- gtrarr: gtrarr,
- gtrdot: gtrdot,
- gtreqless: gtreqless,
- gtreqqless: gtreqqless,
- gtrless: gtrless,
- gtrsim: gtrsim,
- gvertneqq: gvertneqq,
- gvnE: gvnE,
- Hacek: Hacek,
- hairsp: hairsp,
- half: half,
- hamilt: hamilt,
- HARDcy: HARDcy,
- hardcy: hardcy,
- harrcir: harrcir,
- harr: harr,
- hArr: hArr,
- harrw: harrw,
- Hat: Hat,
- hbar: hbar,
- Hcirc: Hcirc,
- hcirc: hcirc,
- hearts: hearts,
- heartsuit: heartsuit,
- hellip: hellip,
- hercon: hercon,
- hfr: hfr,
- Hfr: Hfr,
- HilbertSpace: HilbertSpace,
- hksearow: hksearow,
- hkswarow: hkswarow,
- hoarr: hoarr,
- homtht: homtht,
- hookleftarrow: hookleftarrow,
- hookrightarrow: hookrightarrow,
- hopf: hopf,
- Hopf: Hopf,
- horbar: horbar,
- HorizontalLine: HorizontalLine,
- hscr: hscr,
- Hscr: Hscr,
- hslash: hslash,
- Hstrok: Hstrok,
- hstrok: hstrok,
- HumpDownHump: HumpDownHump,
- HumpEqual: HumpEqual,
- hybull: hybull,
- hyphen: hyphen,
- Iacute: Iacute,
- iacute: iacute,
- ic: ic,
- Icirc: Icirc,
- icirc: icirc,
- Icy: Icy,
- icy: icy,
- Idot: Idot,
- IEcy: IEcy,
- iecy: iecy,
- iexcl: iexcl,
- iff: iff,
- ifr: ifr,
- Ifr: Ifr,
- Igrave: Igrave,
- igrave: igrave,
- ii: ii,
- iiiint: iiiint,
- iiint: iiint,
- iinfin: iinfin,
- iiota: iiota,
- IJlig: IJlig,
- ijlig: ijlig,
- Imacr: Imacr,
- imacr: imacr,
- image: image,
- ImaginaryI: ImaginaryI,
- imagline: imagline,
- imagpart: imagpart,
- imath: imath,
- Im: Im,
- imof: imof,
- imped: imped,
- Implies: Implies,
- incare: incare,
- infin: infin,
- infintie: infintie,
- inodot: inodot,
- intcal: intcal,
- int: int,
- Int: Int,
- integers: integers,
- Integral: Integral,
- intercal: intercal,
- Intersection: Intersection,
- intlarhk: intlarhk,
- intprod: intprod,
- InvisibleComma: InvisibleComma,
- InvisibleTimes: InvisibleTimes,
- IOcy: IOcy,
- iocy: iocy,
- Iogon: Iogon,
- iogon: iogon,
- Iopf: Iopf,
- iopf: iopf,
- Iota: Iota,
- iota: iota,
- iprod: iprod,
- iquest: iquest,
- iscr: iscr,
- Iscr: Iscr,
- isin: isin,
- isindot: isindot,
- isinE: isinE,
- isins: isins,
- isinsv: isinsv,
- isinv: isinv,
- it: it,
- Itilde: Itilde,
- itilde: itilde,
- Iukcy: Iukcy,
- iukcy: iukcy,
- Iuml: Iuml,
- iuml: iuml,
- Jcirc: Jcirc,
- jcirc: jcirc,
- Jcy: Jcy,
- jcy: jcy,
- Jfr: Jfr,
- jfr: jfr,
- jmath: jmath,
- Jopf: Jopf,
- jopf: jopf,
- Jscr: Jscr,
- jscr: jscr,
- Jsercy: Jsercy,
- jsercy: jsercy,
- Jukcy: Jukcy,
- jukcy: jukcy,
- Kappa: Kappa,
- kappa: kappa,
- kappav: kappav,
- Kcedil: Kcedil,
- kcedil: kcedil,
- Kcy: Kcy,
- kcy: kcy,
- Kfr: Kfr,
- kfr: kfr,
- kgreen: kgreen,
- KHcy: KHcy,
- khcy: khcy,
- KJcy: KJcy,
- kjcy: kjcy,
- Kopf: Kopf,
- kopf: kopf,
- Kscr: Kscr,
- kscr: kscr,
- lAarr: lAarr,
- Lacute: Lacute,
- lacute: lacute,
- laemptyv: laemptyv,
- lagran: lagran,
- Lambda: Lambda,
- lambda: lambda,
- lang: lang,
- Lang: Lang,
- langd: langd,
- langle: langle,
- lap: lap,
- Laplacetrf: Laplacetrf,
- laquo: laquo,
- larrb: larrb,
- larrbfs: larrbfs,
- larr: larr,
- Larr: Larr,
- lArr: lArr,
- larrfs: larrfs,
- larrhk: larrhk,
- larrlp: larrlp,
- larrpl: larrpl,
- larrsim: larrsim,
- larrtl: larrtl,
- latail: latail,
- lAtail: lAtail,
- lat: lat,
- late: late,
- lates: lates,
- lbarr: lbarr,
- lBarr: lBarr,
- lbbrk: lbbrk,
- lbrace: lbrace,
- lbrack: lbrack,
- lbrke: lbrke,
- lbrksld: lbrksld,
- lbrkslu: lbrkslu,
- Lcaron: Lcaron,
- lcaron: lcaron,
- Lcedil: Lcedil,
- lcedil: lcedil,
- lceil: lceil,
- lcub: lcub,
- Lcy: Lcy,
- lcy: lcy,
- ldca: ldca,
- ldquo: ldquo,
- ldquor: ldquor,
- ldrdhar: ldrdhar,
- ldrushar: ldrushar,
- ldsh: ldsh,
- le: le,
- lE: lE,
- LeftAngleBracket: LeftAngleBracket,
- LeftArrowBar: LeftArrowBar,
- leftarrow: leftarrow,
- LeftArrow: LeftArrow,
- Leftarrow: Leftarrow,
- LeftArrowRightArrow: LeftArrowRightArrow,
- leftarrowtail: leftarrowtail,
- LeftCeiling: LeftCeiling,
- LeftDoubleBracket: LeftDoubleBracket,
- LeftDownTeeVector: LeftDownTeeVector,
- LeftDownVectorBar: LeftDownVectorBar,
- LeftDownVector: LeftDownVector,
- LeftFloor: LeftFloor,
- leftharpoondown: leftharpoondown,
- leftharpoonup: leftharpoonup,
- leftleftarrows: leftleftarrows,
- leftrightarrow: leftrightarrow,
- LeftRightArrow: LeftRightArrow,
- Leftrightarrow: Leftrightarrow,
- leftrightarrows: leftrightarrows,
- leftrightharpoons: leftrightharpoons,
- leftrightsquigarrow: leftrightsquigarrow,
- LeftRightVector: LeftRightVector,
- LeftTeeArrow: LeftTeeArrow,
- LeftTee: LeftTee,
- LeftTeeVector: LeftTeeVector,
- leftthreetimes: leftthreetimes,
- LeftTriangleBar: LeftTriangleBar,
- LeftTriangle: LeftTriangle,
- LeftTriangleEqual: LeftTriangleEqual,
- LeftUpDownVector: LeftUpDownVector,
- LeftUpTeeVector: LeftUpTeeVector,
- LeftUpVectorBar: LeftUpVectorBar,
- LeftUpVector: LeftUpVector,
- LeftVectorBar: LeftVectorBar,
- LeftVector: LeftVector,
- lEg: lEg,
- leg: leg,
- leq: leq,
- leqq: leqq,
- leqslant: leqslant,
- lescc: lescc,
- les: les,
- lesdot: lesdot,
- lesdoto: lesdoto,
- lesdotor: lesdotor,
- lesg: lesg,
- lesges: lesges,
- lessapprox: lessapprox,
- lessdot: lessdot,
- lesseqgtr: lesseqgtr,
- lesseqqgtr: lesseqqgtr,
- LessEqualGreater: LessEqualGreater,
- LessFullEqual: LessFullEqual,
- LessGreater: LessGreater,
- lessgtr: lessgtr,
- LessLess: LessLess,
- lesssim: lesssim,
- LessSlantEqual: LessSlantEqual,
- LessTilde: LessTilde,
- lfisht: lfisht,
- lfloor: lfloor,
- Lfr: Lfr,
- lfr: lfr,
- lg: lg,
- lgE: lgE,
- lHar: lHar,
- lhard: lhard,
- lharu: lharu,
- lharul: lharul,
- lhblk: lhblk,
- LJcy: LJcy,
- ljcy: ljcy,
- llarr: llarr,
- ll: ll,
- Ll: Ll,
- llcorner: llcorner,
- Lleftarrow: Lleftarrow,
- llhard: llhard,
- lltri: lltri,
- Lmidot: Lmidot,
- lmidot: lmidot,
- lmoustache: lmoustache,
- lmoust: lmoust,
- lnap: lnap,
- lnapprox: lnapprox,
- lne: lne,
- lnE: lnE,
- lneq: lneq,
- lneqq: lneqq,
- lnsim: lnsim,
- loang: loang,
- loarr: loarr,
- lobrk: lobrk,
- longleftarrow: longleftarrow,
- LongLeftArrow: LongLeftArrow,
- Longleftarrow: Longleftarrow,
- longleftrightarrow: longleftrightarrow,
- LongLeftRightArrow: LongLeftRightArrow,
- Longleftrightarrow: Longleftrightarrow,
- longmapsto: longmapsto,
- longrightarrow: longrightarrow,
- LongRightArrow: LongRightArrow,
- Longrightarrow: Longrightarrow,
- looparrowleft: looparrowleft,
- looparrowright: looparrowright,
- lopar: lopar,
- Lopf: Lopf,
- lopf: lopf,
- loplus: loplus,
- lotimes: lotimes,
- lowast: lowast,
- lowbar: lowbar,
- LowerLeftArrow: LowerLeftArrow,
- LowerRightArrow: LowerRightArrow,
- loz: loz,
- lozenge: lozenge,
- lozf: lozf,
- lpar: lpar,
- lparlt: lparlt,
- lrarr: lrarr,
- lrcorner: lrcorner,
- lrhar: lrhar,
- lrhard: lrhard,
- lrm: lrm,
- lrtri: lrtri,
- lsaquo: lsaquo,
- lscr: lscr,
- Lscr: Lscr,
- lsh: lsh,
- Lsh: Lsh,
- lsim: lsim,
- lsime: lsime,
- lsimg: lsimg,
- lsqb: lsqb,
- lsquo: lsquo,
- lsquor: lsquor,
- Lstrok: Lstrok,
- lstrok: lstrok,
- ltcc: ltcc,
- ltcir: ltcir,
- lt: lt,
- LT: LT,
- Lt: Lt,
- ltdot: ltdot,
- lthree: lthree,
- ltimes: ltimes,
- ltlarr: ltlarr,
- ltquest: ltquest,
- ltri: ltri,
- ltrie: ltrie,
- ltrif: ltrif,
- ltrPar: ltrPar,
- lurdshar: lurdshar,
- luruhar: luruhar,
- lvertneqq: lvertneqq,
- lvnE: lvnE,
- macr: macr,
- male: male,
- malt: malt,
- maltese: maltese,
- map: map,
- mapsto: mapsto,
- mapstodown: mapstodown,
- mapstoleft: mapstoleft,
- mapstoup: mapstoup,
- marker: marker,
- mcomma: mcomma,
- Mcy: Mcy,
- mcy: mcy,
- mdash: mdash,
- mDDot: mDDot,
- measuredangle: measuredangle,
- MediumSpace: MediumSpace,
- Mellintrf: Mellintrf,
- Mfr: Mfr,
- mfr: mfr,
- mho: mho,
- micro: micro,
- midast: midast,
- midcir: midcir,
- mid: mid,
- middot: middot,
- minusb: minusb,
- minus: minus,
- minusd: minusd,
- minusdu: minusdu,
- MinusPlus: MinusPlus,
- mlcp: mlcp,
- mldr: mldr,
- mnplus: mnplus,
- models: models,
- Mopf: Mopf,
- mopf: mopf,
- mp: mp,
- mscr: mscr,
- Mscr: Mscr,
- mstpos: mstpos,
- Mu: Mu,
- mu: mu,
- multimap: multimap,
- mumap: mumap,
- nabla: nabla,
- Nacute: Nacute,
- nacute: nacute,
- nang: nang,
- nap: nap,
- napE: napE,
- napid: napid,
- napos: napos,
- napprox: napprox,
- natural: natural,
- naturals: naturals,
- natur: natur,
- nbsp: nbsp,
- nbump: nbump,
- nbumpe: nbumpe,
- ncap: ncap,
- Ncaron: Ncaron,
- ncaron: ncaron,
- Ncedil: Ncedil,
- ncedil: ncedil,
- ncong: ncong,
- ncongdot: ncongdot,
- ncup: ncup,
- Ncy: Ncy,
- ncy: ncy,
- ndash: ndash,
- nearhk: nearhk,
- nearr: nearr,
- neArr: neArr,
- nearrow: nearrow,
- ne: ne,
- nedot: nedot,
- NegativeMediumSpace: NegativeMediumSpace,
- NegativeThickSpace: NegativeThickSpace,
- NegativeThinSpace: NegativeThinSpace,
- NegativeVeryThinSpace: NegativeVeryThinSpace,
- nequiv: nequiv,
- nesear: nesear,
- nesim: nesim,
- NestedGreaterGreater: NestedGreaterGreater,
- NestedLessLess: NestedLessLess,
- NewLine: NewLine,
- nexist: nexist,
- nexists: nexists,
- Nfr: Nfr,
- nfr: nfr,
- ngE: ngE,
- nge: nge,
- ngeq: ngeq,
- ngeqq: ngeqq,
- ngeqslant: ngeqslant,
- nges: nges,
- nGg: nGg,
- ngsim: ngsim,
- nGt: nGt,
- ngt: ngt,
- ngtr: ngtr,
- nGtv: nGtv,
- nharr: nharr,
- nhArr: nhArr,
- nhpar: nhpar,
- ni: ni,
- nis: nis,
- nisd: nisd,
- niv: niv,
- NJcy: NJcy,
- njcy: njcy,
- nlarr: nlarr,
- nlArr: nlArr,
- nldr: nldr,
- nlE: nlE,
- nle: nle,
- nleftarrow: nleftarrow,
- nLeftarrow: nLeftarrow,
- nleftrightarrow: nleftrightarrow,
- nLeftrightarrow: nLeftrightarrow,
- nleq: nleq,
- nleqq: nleqq,
- nleqslant: nleqslant,
- nles: nles,
- nless: nless,
- nLl: nLl,
- nlsim: nlsim,
- nLt: nLt,
- nlt: nlt,
- nltri: nltri,
- nltrie: nltrie,
- nLtv: nLtv,
- nmid: nmid,
- NoBreak: NoBreak,
- NonBreakingSpace: NonBreakingSpace,
- nopf: nopf,
- Nopf: Nopf,
- Not: Not,
- not: not,
- NotCongruent: NotCongruent,
- NotCupCap: NotCupCap,
- NotDoubleVerticalBar: NotDoubleVerticalBar,
- NotElement: NotElement,
- NotEqual: NotEqual,
- NotEqualTilde: NotEqualTilde,
- NotExists: NotExists,
- NotGreater: NotGreater,
- NotGreaterEqual: NotGreaterEqual,
- NotGreaterFullEqual: NotGreaterFullEqual,
- NotGreaterGreater: NotGreaterGreater,
- NotGreaterLess: NotGreaterLess,
- NotGreaterSlantEqual: NotGreaterSlantEqual,
- NotGreaterTilde: NotGreaterTilde,
- NotHumpDownHump: NotHumpDownHump,
- NotHumpEqual: NotHumpEqual,
- notin: notin,
- notindot: notindot,
- notinE: notinE,
- notinva: notinva,
- notinvb: notinvb,
- notinvc: notinvc,
- NotLeftTriangleBar: NotLeftTriangleBar,
- NotLeftTriangle: NotLeftTriangle,
- NotLeftTriangleEqual: NotLeftTriangleEqual,
- NotLess: NotLess,
- NotLessEqual: NotLessEqual,
- NotLessGreater: NotLessGreater,
- NotLessLess: NotLessLess,
- NotLessSlantEqual: NotLessSlantEqual,
- NotLessTilde: NotLessTilde,
- NotNestedGreaterGreater: NotNestedGreaterGreater,
- NotNestedLessLess: NotNestedLessLess,
- notni: notni,
- notniva: notniva,
- notnivb: notnivb,
- notnivc: notnivc,
- NotPrecedes: NotPrecedes,
- NotPrecedesEqual: NotPrecedesEqual,
- NotPrecedesSlantEqual: NotPrecedesSlantEqual,
- NotReverseElement: NotReverseElement,
- NotRightTriangleBar: NotRightTriangleBar,
- NotRightTriangle: NotRightTriangle,
- NotRightTriangleEqual: NotRightTriangleEqual,
- NotSquareSubset: NotSquareSubset,
- NotSquareSubsetEqual: NotSquareSubsetEqual,
- NotSquareSuperset: NotSquareSuperset,
- NotSquareSupersetEqual: NotSquareSupersetEqual,
- NotSubset: NotSubset,
- NotSubsetEqual: NotSubsetEqual,
- NotSucceeds: NotSucceeds,
- NotSucceedsEqual: NotSucceedsEqual,
- NotSucceedsSlantEqual: NotSucceedsSlantEqual,
- NotSucceedsTilde: NotSucceedsTilde,
- NotSuperset: NotSuperset,
- NotSupersetEqual: NotSupersetEqual,
- NotTilde: NotTilde,
- NotTildeEqual: NotTildeEqual,
- NotTildeFullEqual: NotTildeFullEqual,
- NotTildeTilde: NotTildeTilde,
- NotVerticalBar: NotVerticalBar,
- nparallel: nparallel,
- npar: npar,
- nparsl: nparsl,
- npart: npart,
- npolint: npolint,
- npr: npr,
- nprcue: nprcue,
- nprec: nprec,
- npreceq: npreceq,
- npre: npre,
- nrarrc: nrarrc,
- nrarr: nrarr,
- nrArr: nrArr,
- nrarrw: nrarrw,
- nrightarrow: nrightarrow,
- nRightarrow: nRightarrow,
- nrtri: nrtri,
- nrtrie: nrtrie,
- nsc: nsc,
- nsccue: nsccue,
- nsce: nsce,
- Nscr: Nscr,
- nscr: nscr,
- nshortmid: nshortmid,
- nshortparallel: nshortparallel,
- nsim: nsim,
- nsime: nsime,
- nsimeq: nsimeq,
- nsmid: nsmid,
- nspar: nspar,
- nsqsube: nsqsube,
- nsqsupe: nsqsupe,
- nsub: nsub,
- nsubE: nsubE,
- nsube: nsube,
- nsubset: nsubset,
- nsubseteq: nsubseteq,
- nsubseteqq: nsubseteqq,
- nsucc: nsucc,
- nsucceq: nsucceq,
- nsup: nsup,
- nsupE: nsupE,
- nsupe: nsupe,
- nsupset: nsupset,
- nsupseteq: nsupseteq,
- nsupseteqq: nsupseteqq,
- ntgl: ntgl,
- Ntilde: Ntilde,
- ntilde: ntilde,
- ntlg: ntlg,
- ntriangleleft: ntriangleleft,
- ntrianglelefteq: ntrianglelefteq,
- ntriangleright: ntriangleright,
- ntrianglerighteq: ntrianglerighteq,
- Nu: Nu,
- nu: nu,
- num: num,
- numero: numero,
- numsp: numsp,
- nvap: nvap,
- nvdash: nvdash,
- nvDash: nvDash,
- nVdash: nVdash,
- nVDash: nVDash,
- nvge: nvge,
- nvgt: nvgt,
- nvHarr: nvHarr,
- nvinfin: nvinfin,
- nvlArr: nvlArr,
- nvle: nvle,
- nvlt: nvlt,
- nvltrie: nvltrie,
- nvrArr: nvrArr,
- nvrtrie: nvrtrie,
- nvsim: nvsim,
- nwarhk: nwarhk,
- nwarr: nwarr,
- nwArr: nwArr,
- nwarrow: nwarrow,
- nwnear: nwnear,
- Oacute: Oacute,
- oacute: oacute,
- oast: oast,
- Ocirc: Ocirc,
- ocirc: ocirc,
- ocir: ocir,
- Ocy: Ocy,
- ocy: ocy,
- odash: odash,
- Odblac: Odblac,
- odblac: odblac,
- odiv: odiv,
- odot: odot,
- odsold: odsold,
- OElig: OElig,
- oelig: oelig,
- ofcir: ofcir,
- Ofr: Ofr,
- ofr: ofr,
- ogon: ogon,
- Ograve: Ograve,
- ograve: ograve,
- ogt: ogt,
- ohbar: ohbar,
- ohm: ohm,
- oint: oint,
- olarr: olarr,
- olcir: olcir,
- olcross: olcross,
- oline: oline,
- olt: olt,
- Omacr: Omacr,
- omacr: omacr,
- Omega: Omega,
- omega: omega,
- Omicron: Omicron,
- omicron: omicron,
- omid: omid,
- ominus: ominus,
- Oopf: Oopf,
- oopf: oopf,
- opar: opar,
- OpenCurlyDoubleQuote: OpenCurlyDoubleQuote,
- OpenCurlyQuote: OpenCurlyQuote,
- operp: operp,
- oplus: oplus,
- orarr: orarr,
- Or: Or,
- or: or,
- ord: ord,
- order: order,
- orderof: orderof,
- ordf: ordf,
- ordm: ordm,
- origof: origof,
- oror: oror,
- orslope: orslope,
- orv: orv,
- oS: oS,
- Oscr: Oscr,
- oscr: oscr,
- Oslash: Oslash,
- oslash: oslash,
- osol: osol,
- Otilde: Otilde,
- otilde: otilde,
- otimesas: otimesas,
- Otimes: Otimes,
- otimes: otimes,
- Ouml: Ouml,
- ouml: ouml,
- ovbar: ovbar,
- OverBar: OverBar,
- OverBrace: OverBrace,
- OverBracket: OverBracket,
- OverParenthesis: OverParenthesis,
- para: para,
- parallel: parallel,
- par: par,
- parsim: parsim,
- parsl: parsl,
- part: part,
- PartialD: PartialD,
- Pcy: Pcy,
- pcy: pcy,
- percnt: percnt,
- period: period,
- permil: permil,
- perp: perp,
- pertenk: pertenk,
- Pfr: Pfr,
- pfr: pfr,
- Phi: Phi,
- phi: phi,
- phiv: phiv,
- phmmat: phmmat,
- phone: phone,
- Pi: Pi,
- pi: pi,
- pitchfork: pitchfork,
- piv: piv,
- planck: planck,
- planckh: planckh,
- plankv: plankv,
- plusacir: plusacir,
- plusb: plusb,
- pluscir: pluscir,
- plus: plus,
- plusdo: plusdo,
- plusdu: plusdu,
- pluse: pluse,
- PlusMinus: PlusMinus,
- plusmn: plusmn,
- plussim: plussim,
- plustwo: plustwo,
- pm: pm,
- Poincareplane: Poincareplane,
- pointint: pointint,
- popf: popf,
- Popf: Popf,
- pound: pound,
- prap: prap,
- Pr: Pr,
- pr: pr,
- prcue: prcue,
- precapprox: precapprox,
- prec: prec,
- preccurlyeq: preccurlyeq,
- Precedes: Precedes,
- PrecedesEqual: PrecedesEqual,
- PrecedesSlantEqual: PrecedesSlantEqual,
- PrecedesTilde: PrecedesTilde,
- preceq: preceq,
- precnapprox: precnapprox,
- precneqq: precneqq,
- precnsim: precnsim,
- pre: pre,
- prE: prE,
- precsim: precsim,
- prime: prime,
- Prime: Prime,
- primes: primes,
- prnap: prnap,
- prnE: prnE,
- prnsim: prnsim,
- prod: prod,
- Product: Product,
- profalar: profalar,
- profline: profline,
- profsurf: profsurf,
- prop: prop,
- Proportional: Proportional,
- Proportion: Proportion,
- propto: propto,
- prsim: prsim,
- prurel: prurel,
- Pscr: Pscr,
- pscr: pscr,
- Psi: Psi,
- psi: psi,
- puncsp: puncsp,
- Qfr: Qfr,
- qfr: qfr,
- qint: qint,
- qopf: qopf,
- Qopf: Qopf,
- qprime: qprime,
- Qscr: Qscr,
- qscr: qscr,
- quaternions: quaternions,
- quatint: quatint,
- quest: quest,
- questeq: questeq,
- quot: quot,
- QUOT: QUOT,
- rAarr: rAarr,
- race: race,
- Racute: Racute,
- racute: racute,
- radic: radic,
- raemptyv: raemptyv,
- rang: rang,
- Rang: Rang,
- rangd: rangd,
- range: range,
- rangle: rangle,
- raquo: raquo,
- rarrap: rarrap,
- rarrb: rarrb,
- rarrbfs: rarrbfs,
- rarrc: rarrc,
- rarr: rarr,
- Rarr: Rarr,
- rArr: rArr,
- rarrfs: rarrfs,
- rarrhk: rarrhk,
- rarrlp: rarrlp,
- rarrpl: rarrpl,
- rarrsim: rarrsim,
- Rarrtl: Rarrtl,
- rarrtl: rarrtl,
- rarrw: rarrw,
- ratail: ratail,
- rAtail: rAtail,
- ratio: ratio,
- rationals: rationals,
- rbarr: rbarr,
- rBarr: rBarr,
- RBarr: RBarr,
- rbbrk: rbbrk,
- rbrace: rbrace,
- rbrack: rbrack,
- rbrke: rbrke,
- rbrksld: rbrksld,
- rbrkslu: rbrkslu,
- Rcaron: Rcaron,
- rcaron: rcaron,
- Rcedil: Rcedil,
- rcedil: rcedil,
- rceil: rceil,
- rcub: rcub,
- Rcy: Rcy,
- rcy: rcy,
- rdca: rdca,
- rdldhar: rdldhar,
- rdquo: rdquo,
- rdquor: rdquor,
- rdsh: rdsh,
- real: real,
- realine: realine,
- realpart: realpart,
- reals: reals,
- Re: Re,
- rect: rect,
- reg: reg,
- REG: REG,
- ReverseElement: ReverseElement,
- ReverseEquilibrium: ReverseEquilibrium,
- ReverseUpEquilibrium: ReverseUpEquilibrium,
- rfisht: rfisht,
- rfloor: rfloor,
- rfr: rfr,
- Rfr: Rfr,
- rHar: rHar,
- rhard: rhard,
- rharu: rharu,
- rharul: rharul,
- Rho: Rho,
- rho: rho,
- rhov: rhov,
- RightAngleBracket: RightAngleBracket,
- RightArrowBar: RightArrowBar,
- rightarrow: rightarrow,
- RightArrow: RightArrow,
- Rightarrow: Rightarrow,
- RightArrowLeftArrow: RightArrowLeftArrow,
- rightarrowtail: rightarrowtail,
- RightCeiling: RightCeiling,
- RightDoubleBracket: RightDoubleBracket,
- RightDownTeeVector: RightDownTeeVector,
- RightDownVectorBar: RightDownVectorBar,
- RightDownVector: RightDownVector,
- RightFloor: RightFloor,
- rightharpoondown: rightharpoondown,
- rightharpoonup: rightharpoonup,
- rightleftarrows: rightleftarrows,
- rightleftharpoons: rightleftharpoons,
- rightrightarrows: rightrightarrows,
- rightsquigarrow: rightsquigarrow,
- RightTeeArrow: RightTeeArrow,
- RightTee: RightTee,
- RightTeeVector: RightTeeVector,
- rightthreetimes: rightthreetimes,
- RightTriangleBar: RightTriangleBar,
- RightTriangle: RightTriangle,
- RightTriangleEqual: RightTriangleEqual,
- RightUpDownVector: RightUpDownVector,
- RightUpTeeVector: RightUpTeeVector,
- RightUpVectorBar: RightUpVectorBar,
- RightUpVector: RightUpVector,
- RightVectorBar: RightVectorBar,
- RightVector: RightVector,
- ring: ring,
- risingdotseq: risingdotseq,
- rlarr: rlarr,
- rlhar: rlhar,
- rlm: rlm,
- rmoustache: rmoustache,
- rmoust: rmoust,
- rnmid: rnmid,
- roang: roang,
- roarr: roarr,
- robrk: robrk,
- ropar: ropar,
- ropf: ropf,
- Ropf: Ropf,
- roplus: roplus,
- rotimes: rotimes,
- RoundImplies: RoundImplies,
- rpar: rpar,
- rpargt: rpargt,
- rppolint: rppolint,
- rrarr: rrarr,
- Rrightarrow: Rrightarrow,
- rsaquo: rsaquo,
- rscr: rscr,
- Rscr: Rscr,
- rsh: rsh,
- Rsh: Rsh,
- rsqb: rsqb,
- rsquo: rsquo,
- rsquor: rsquor,
- rthree: rthree,
- rtimes: rtimes,
- rtri: rtri,
- rtrie: rtrie,
- rtrif: rtrif,
- rtriltri: rtriltri,
- RuleDelayed: RuleDelayed,
- ruluhar: ruluhar,
- rx: rx,
- Sacute: Sacute,
- sacute: sacute,
- sbquo: sbquo,
- scap: scap,
- Scaron: Scaron,
- scaron: scaron,
- Sc: Sc,
- sc: sc,
- sccue: sccue,
- sce: sce,
- scE: scE,
- Scedil: Scedil,
- scedil: scedil,
- Scirc: Scirc,
- scirc: scirc,
- scnap: scnap,
- scnE: scnE,
- scnsim: scnsim,
- scpolint: scpolint,
- scsim: scsim,
- Scy: Scy,
- scy: scy,
- sdotb: sdotb,
- sdot: sdot,
- sdote: sdote,
- searhk: searhk,
- searr: searr,
- seArr: seArr,
- searrow: searrow,
- sect: sect,
- semi: semi,
- seswar: seswar,
- setminus: setminus,
- setmn: setmn,
- sext: sext,
- Sfr: Sfr,
- sfr: sfr,
- sfrown: sfrown,
- sharp: sharp,
- SHCHcy: SHCHcy,
- shchcy: shchcy,
- SHcy: SHcy,
- shcy: shcy,
- ShortDownArrow: ShortDownArrow,
- ShortLeftArrow: ShortLeftArrow,
- shortmid: shortmid,
- shortparallel: shortparallel,
- ShortRightArrow: ShortRightArrow,
- ShortUpArrow: ShortUpArrow,
- shy: shy,
- Sigma: Sigma,
- sigma: sigma,
- sigmaf: sigmaf,
- sigmav: sigmav,
- sim: sim,
- simdot: simdot,
- sime: sime,
- simeq: simeq,
- simg: simg,
- simgE: simgE,
- siml: siml,
- simlE: simlE,
- simne: simne,
- simplus: simplus,
- simrarr: simrarr,
- slarr: slarr,
- SmallCircle: SmallCircle,
- smallsetminus: smallsetminus,
- smashp: smashp,
- smeparsl: smeparsl,
- smid: smid,
- smile: smile,
- smt: smt,
- smte: smte,
- smtes: smtes,
- SOFTcy: SOFTcy,
- softcy: softcy,
- solbar: solbar,
- solb: solb,
- sol: sol,
- Sopf: Sopf,
- sopf: sopf,
- spades: spades,
- spadesuit: spadesuit,
- spar: spar,
- sqcap: sqcap,
- sqcaps: sqcaps,
- sqcup: sqcup,
- sqcups: sqcups,
- Sqrt: Sqrt,
- sqsub: sqsub,
- sqsube: sqsube,
- sqsubset: sqsubset,
- sqsubseteq: sqsubseteq,
- sqsup: sqsup,
- sqsupe: sqsupe,
- sqsupset: sqsupset,
- sqsupseteq: sqsupseteq,
- square: square,
- Square: Square,
- SquareIntersection: SquareIntersection,
- SquareSubset: SquareSubset,
- SquareSubsetEqual: SquareSubsetEqual,
- SquareSuperset: SquareSuperset,
- SquareSupersetEqual: SquareSupersetEqual,
- SquareUnion: SquareUnion,
- squarf: squarf,
- squ: squ,
- squf: squf,
- srarr: srarr,
- Sscr: Sscr,
- sscr: sscr,
- ssetmn: ssetmn,
- ssmile: ssmile,
- sstarf: sstarf,
- Star: Star,
- star: star,
- starf: starf,
- straightepsilon: straightepsilon,
- straightphi: straightphi,
- strns: strns,
- sub: sub,
- Sub: Sub,
- subdot: subdot,
- subE: subE,
- sube: sube,
- subedot: subedot,
- submult: submult,
- subnE: subnE,
- subne: subne,
- subplus: subplus,
- subrarr: subrarr,
- subset: subset,
- Subset: Subset,
- subseteq: subseteq,
- subseteqq: subseteqq,
- SubsetEqual: SubsetEqual,
- subsetneq: subsetneq,
- subsetneqq: subsetneqq,
- subsim: subsim,
- subsub: subsub,
- subsup: subsup,
- succapprox: succapprox,
- succ: succ,
- succcurlyeq: succcurlyeq,
- Succeeds: Succeeds,
- SucceedsEqual: SucceedsEqual,
- SucceedsSlantEqual: SucceedsSlantEqual,
- SucceedsTilde: SucceedsTilde,
- succeq: succeq,
- succnapprox: succnapprox,
- succneqq: succneqq,
- succnsim: succnsim,
- succsim: succsim,
- SuchThat: SuchThat,
- sum: sum,
- Sum: Sum,
- sung: sung,
- sup1: sup1,
- sup2: sup2,
- sup3: sup3,
- sup: sup,
- Sup: Sup,
- supdot: supdot,
- supdsub: supdsub,
- supE: supE,
- supe: supe,
- supedot: supedot,
- Superset: Superset,
- SupersetEqual: SupersetEqual,
- suphsol: suphsol,
- suphsub: suphsub,
- suplarr: suplarr,
- supmult: supmult,
- supnE: supnE,
- supne: supne,
- supplus: supplus,
- supset: supset,
- Supset: Supset,
- supseteq: supseteq,
- supseteqq: supseteqq,
- supsetneq: supsetneq,
- supsetneqq: supsetneqq,
- supsim: supsim,
- supsub: supsub,
- supsup: supsup,
- swarhk: swarhk,
- swarr: swarr,
- swArr: swArr,
- swarrow: swarrow,
- swnwar: swnwar,
- szlig: szlig,
- Tab: Tab,
- target: target,
- Tau: Tau,
- tau: tau,
- tbrk: tbrk,
- Tcaron: Tcaron,
- tcaron: tcaron,
- Tcedil: Tcedil,
- tcedil: tcedil,
- Tcy: Tcy,
- tcy: tcy,
- tdot: tdot,
- telrec: telrec,
- Tfr: Tfr,
- tfr: tfr,
- there4: there4,
- therefore: therefore,
- Therefore: Therefore,
- Theta: Theta,
- theta: theta,
- thetasym: thetasym,
- thetav: thetav,
- thickapprox: thickapprox,
- thicksim: thicksim,
- ThickSpace: ThickSpace,
- ThinSpace: ThinSpace,
- thinsp: thinsp,
- thkap: thkap,
- thksim: thksim,
- THORN: THORN,
- thorn: thorn,
- tilde: tilde,
- Tilde: Tilde,
- TildeEqual: TildeEqual,
- TildeFullEqual: TildeFullEqual,
- TildeTilde: TildeTilde,
- timesbar: timesbar,
- timesb: timesb,
- times: times,
- timesd: timesd,
- tint: tint,
- toea: toea,
- topbot: topbot,
- topcir: topcir,
- top: top,
- Topf: Topf,
- topf: topf,
- topfork: topfork,
- tosa: tosa,
- tprime: tprime,
- trade: trade,
- TRADE: TRADE,
- triangle: triangle,
- triangledown: triangledown,
- triangleleft: triangleleft,
- trianglelefteq: trianglelefteq,
- triangleq: triangleq,
- triangleright: triangleright,
- trianglerighteq: trianglerighteq,
- tridot: tridot,
- trie: trie,
- triminus: triminus,
- TripleDot: TripleDot,
- triplus: triplus,
- trisb: trisb,
- tritime: tritime,
- trpezium: trpezium,
- Tscr: Tscr,
- tscr: tscr,
- TScy: TScy,
- tscy: tscy,
- TSHcy: TSHcy,
- tshcy: tshcy,
- Tstrok: Tstrok,
- tstrok: tstrok,
- twixt: twixt,
- twoheadleftarrow: twoheadleftarrow,
- twoheadrightarrow: twoheadrightarrow,
- Uacute: Uacute,
- uacute: uacute,
- uarr: uarr,
- Uarr: Uarr,
- uArr: uArr,
- Uarrocir: Uarrocir,
- Ubrcy: Ubrcy,
- ubrcy: ubrcy,
- Ubreve: Ubreve,
- ubreve: ubreve,
- Ucirc: Ucirc,
- ucirc: ucirc,
- Ucy: Ucy,
- ucy: ucy,
- udarr: udarr,
- Udblac: Udblac,
- udblac: udblac,
- udhar: udhar,
- ufisht: ufisht,
- Ufr: Ufr,
- ufr: ufr,
- Ugrave: Ugrave,
- ugrave: ugrave,
- uHar: uHar,
- uharl: uharl,
- uharr: uharr,
- uhblk: uhblk,
- ulcorn: ulcorn,
- ulcorner: ulcorner,
- ulcrop: ulcrop,
- ultri: ultri,
- Umacr: Umacr,
- umacr: umacr,
- uml: uml,
- UnderBar: UnderBar,
- UnderBrace: UnderBrace,
- UnderBracket: UnderBracket,
- UnderParenthesis: UnderParenthesis,
- Union: Union,
- UnionPlus: UnionPlus,
- Uogon: Uogon,
- uogon: uogon,
- Uopf: Uopf,
- uopf: uopf,
- UpArrowBar: UpArrowBar,
- uparrow: uparrow,
- UpArrow: UpArrow,
- Uparrow: Uparrow,
- UpArrowDownArrow: UpArrowDownArrow,
- updownarrow: updownarrow,
- UpDownArrow: UpDownArrow,
- Updownarrow: Updownarrow,
- UpEquilibrium: UpEquilibrium,
- upharpoonleft: upharpoonleft,
- upharpoonright: upharpoonright,
- uplus: uplus,
- UpperLeftArrow: UpperLeftArrow,
- UpperRightArrow: UpperRightArrow,
- upsi: upsi,
- Upsi: Upsi,
- upsih: upsih,
- Upsilon: Upsilon,
- upsilon: upsilon,
- UpTeeArrow: UpTeeArrow,
- UpTee: UpTee,
- upuparrows: upuparrows,
- urcorn: urcorn,
- urcorner: urcorner,
- urcrop: urcrop,
- Uring: Uring,
- uring: uring,
- urtri: urtri,
- Uscr: Uscr,
- uscr: uscr,
- utdot: utdot,
- Utilde: Utilde,
- utilde: utilde,
- utri: utri,
- utrif: utrif,
- uuarr: uuarr,
- Uuml: Uuml,
- uuml: uuml,
- uwangle: uwangle,
- vangrt: vangrt,
- varepsilon: varepsilon,
- varkappa: varkappa,
- varnothing: varnothing,
- varphi: varphi,
- varpi: varpi,
- varpropto: varpropto,
- varr: varr,
- vArr: vArr,
- varrho: varrho,
- varsigma: varsigma,
- varsubsetneq: varsubsetneq,
- varsubsetneqq: varsubsetneqq,
- varsupsetneq: varsupsetneq,
- varsupsetneqq: varsupsetneqq,
- vartheta: vartheta,
- vartriangleleft: vartriangleleft,
- vartriangleright: vartriangleright,
- vBar: vBar,
- Vbar: Vbar,
- vBarv: vBarv,
- Vcy: Vcy,
- vcy: vcy,
- vdash: vdash,
- vDash: vDash,
- Vdash: Vdash,
- VDash: VDash,
- Vdashl: Vdashl,
- veebar: veebar,
- vee: vee,
- Vee: Vee,
- veeeq: veeeq,
- vellip: vellip,
- verbar: verbar,
- Verbar: Verbar,
- vert: vert,
- Vert: Vert,
- VerticalBar: VerticalBar,
- VerticalLine: VerticalLine,
- VerticalSeparator: VerticalSeparator,
- VerticalTilde: VerticalTilde,
- VeryThinSpace: VeryThinSpace,
- Vfr: Vfr,
- vfr: vfr,
- vltri: vltri,
- vnsub: vnsub,
- vnsup: vnsup,
- Vopf: Vopf,
- vopf: vopf,
- vprop: vprop,
- vrtri: vrtri,
- Vscr: Vscr,
- vscr: vscr,
- vsubnE: vsubnE,
- vsubne: vsubne,
- vsupnE: vsupnE,
- vsupne: vsupne,
- Vvdash: Vvdash,
- vzigzag: vzigzag,
- Wcirc: Wcirc,
- wcirc: wcirc,
- wedbar: wedbar,
- wedge: wedge,
- Wedge: Wedge,
- wedgeq: wedgeq,
- weierp: weierp,
- Wfr: Wfr,
- wfr: wfr,
- Wopf: Wopf,
- wopf: wopf,
- wp: wp,
- wr: wr,
- wreath: wreath,
- Wscr: Wscr,
- wscr: wscr,
- xcap: xcap,
- xcirc: xcirc,
- xcup: xcup,
- xdtri: xdtri,
- Xfr: Xfr,
- xfr: xfr,
- xharr: xharr,
- xhArr: xhArr,
- Xi: Xi,
- xi: xi,
- xlarr: xlarr,
- xlArr: xlArr,
- xmap: xmap,
- xnis: xnis,
- xodot: xodot,
- Xopf: Xopf,
- xopf: xopf,
- xoplus: xoplus,
- xotime: xotime,
- xrarr: xrarr,
- xrArr: xrArr,
- Xscr: Xscr,
- xscr: xscr,
- xsqcup: xsqcup,
- xuplus: xuplus,
- xutri: xutri,
- xvee: xvee,
- xwedge: xwedge,
- Yacute: Yacute,
- yacute: yacute,
- YAcy: YAcy,
- yacy: yacy,
- Ycirc: Ycirc,
- ycirc: ycirc,
- Ycy: Ycy,
- ycy: ycy,
- yen: yen,
- Yfr: Yfr,
- yfr: yfr,
- YIcy: YIcy,
- yicy: yicy,
- Yopf: Yopf,
- yopf: yopf,
- Yscr: Yscr,
- yscr: yscr,
- YUcy: YUcy,
- yucy: yucy,
- yuml: yuml,
- Yuml: Yuml,
- Zacute: Zacute,
- zacute: zacute,
- Zcaron: Zcaron,
- zcaron: zcaron,
- Zcy: Zcy,
- zcy: zcy,
- Zdot: Zdot,
- zdot: zdot,
- zeetrf: zeetrf,
- ZeroWidthSpace: ZeroWidthSpace,
- Zeta: Zeta,
- zeta: zeta,
- zfr: zfr,
- Zfr: Zfr,
- ZHcy: ZHcy,
- zhcy: zhcy,
- zigrarr: zigrarr,
- zopf: zopf,
- Zopf: Zopf,
- Zscr: Zscr,
- zscr: zscr,
- zwj: zwj,
- zwnj: zwnj,
- 'default': entities
- });
-
- var Aacute$1 = "Á";
- var aacute$1 = "á";
- var Acirc$1 = "Â";
- var acirc$1 = "â";
- var acute$1 = "´";
- var AElig$1 = "Æ";
- var aelig$1 = "æ";
- var Agrave$1 = "À";
- var agrave$1 = "à";
- var amp$1 = "&";
- var AMP$1 = "&";
- var Aring$1 = "Å";
- var aring$1 = "å";
- var Atilde$1 = "Ã";
- var atilde$1 = "ã";
- var Auml$1 = "Ä";
- var auml$1 = "ä";
- var brvbar$1 = "¦";
- var Ccedil$1 = "Ç";
- var ccedil$1 = "ç";
- var cedil$1 = "¸";
- var cent$1 = "¢";
- var copy$1 = "©";
- var COPY$1 = "©";
- var curren$1 = "¤";
- var deg$1 = "°";
- var divide$1 = "÷";
- var Eacute$1 = "É";
- var eacute$1 = "é";
- var Ecirc$1 = "Ê";
- var ecirc$1 = "ê";
- var Egrave$1 = "È";
- var egrave$1 = "è";
- var ETH$1 = "Ð";
- var eth$1 = "ð";
- var Euml$1 = "Ë";
- var euml$1 = "ë";
- var frac12$1 = "½";
- var frac14$1 = "¼";
- var frac34$1 = "¾";
- var gt$1 = ">";
- var GT$1 = ">";
- var Iacute$1 = "Í";
- var iacute$1 = "í";
- var Icirc$1 = "Î";
- var icirc$1 = "î";
- var iexcl$1 = "¡";
- var Igrave$1 = "Ì";
- var igrave$1 = "ì";
- var iquest$1 = "¿";
- var Iuml$1 = "Ï";
- var iuml$1 = "ï";
- var laquo$1 = "«";
- var lt$1 = "<";
- var LT$1 = "<";
- var macr$1 = "¯";
- var micro$1 = "µ";
- var middot$1 = "·";
- var nbsp$1 = " ";
- var not$1 = "¬";
- var Ntilde$1 = "Ñ";
- var ntilde$1 = "ñ";
- var Oacute$1 = "Ó";
- var oacute$1 = "ó";
- var Ocirc$1 = "Ô";
- var ocirc$1 = "ô";
- var Ograve$1 = "Ò";
- var ograve$1 = "ò";
- var ordf$1 = "ª";
- var ordm$1 = "º";
- var Oslash$1 = "Ø";
- var oslash$1 = "ø";
- var Otilde$1 = "Õ";
- var otilde$1 = "õ";
- var Ouml$1 = "Ö";
- var ouml$1 = "ö";
- var para$1 = "¶";
- var plusmn$1 = "±";
- var pound$1 = "£";
- var quot$1 = "\"";
- var QUOT$1 = "\"";
- var raquo$1 = "»";
- var reg$1 = "®";
- var REG$1 = "®";
- var sect$1 = "§";
- var shy$1 = "";
- var sup1$1 = "¹";
- var sup2$1 = "²";
- var sup3$1 = "³";
- var szlig$1 = "ß";
- var THORN$1 = "Þ";
- var thorn$1 = "þ";
- var times$1 = "×";
- var Uacute$1 = "Ú";
- var uacute$1 = "ú";
- var Ucirc$1 = "Û";
- var ucirc$1 = "û";
- var Ugrave$1 = "Ù";
- var ugrave$1 = "ù";
- var uml$1 = "¨";
- var Uuml$1 = "Ü";
- var uuml$1 = "ü";
- var Yacute$1 = "Ý";
- var yacute$1 = "ý";
- var yen$1 = "¥";
- var yuml$1 = "ÿ";
- var legacy = {
- Aacute: Aacute$1,
- aacute: aacute$1,
- Acirc: Acirc$1,
- acirc: acirc$1,
- acute: acute$1,
- AElig: AElig$1,
- aelig: aelig$1,
- Agrave: Agrave$1,
- agrave: agrave$1,
- amp: amp$1,
- AMP: AMP$1,
- Aring: Aring$1,
- aring: aring$1,
- Atilde: Atilde$1,
- atilde: atilde$1,
- Auml: Auml$1,
- auml: auml$1,
- brvbar: brvbar$1,
- Ccedil: Ccedil$1,
- ccedil: ccedil$1,
- cedil: cedil$1,
- cent: cent$1,
- copy: copy$1,
- COPY: COPY$1,
- curren: curren$1,
- deg: deg$1,
- divide: divide$1,
- Eacute: Eacute$1,
- eacute: eacute$1,
- Ecirc: Ecirc$1,
- ecirc: ecirc$1,
- Egrave: Egrave$1,
- egrave: egrave$1,
- ETH: ETH$1,
- eth: eth$1,
- Euml: Euml$1,
- euml: euml$1,
- frac12: frac12$1,
- frac14: frac14$1,
- frac34: frac34$1,
- gt: gt$1,
- GT: GT$1,
- Iacute: Iacute$1,
- iacute: iacute$1,
- Icirc: Icirc$1,
- icirc: icirc$1,
- iexcl: iexcl$1,
- Igrave: Igrave$1,
- igrave: igrave$1,
- iquest: iquest$1,
- Iuml: Iuml$1,
- iuml: iuml$1,
- laquo: laquo$1,
- lt: lt$1,
- LT: LT$1,
- macr: macr$1,
- micro: micro$1,
- middot: middot$1,
- nbsp: nbsp$1,
- not: not$1,
- Ntilde: Ntilde$1,
- ntilde: ntilde$1,
- Oacute: Oacute$1,
- oacute: oacute$1,
- Ocirc: Ocirc$1,
- ocirc: ocirc$1,
- Ograve: Ograve$1,
- ograve: ograve$1,
- ordf: ordf$1,
- ordm: ordm$1,
- Oslash: Oslash$1,
- oslash: oslash$1,
- Otilde: Otilde$1,
- otilde: otilde$1,
- Ouml: Ouml$1,
- ouml: ouml$1,
- para: para$1,
- plusmn: plusmn$1,
- pound: pound$1,
- quot: quot$1,
- QUOT: QUOT$1,
- raquo: raquo$1,
- reg: reg$1,
- REG: REG$1,
- sect: sect$1,
- shy: shy$1,
- sup1: sup1$1,
- sup2: sup2$1,
- sup3: sup3$1,
- szlig: szlig$1,
- THORN: THORN$1,
- thorn: thorn$1,
- times: times$1,
- Uacute: Uacute$1,
- uacute: uacute$1,
- Ucirc: Ucirc$1,
- ucirc: ucirc$1,
- Ugrave: Ugrave$1,
- ugrave: ugrave$1,
- uml: uml$1,
- Uuml: Uuml$1,
- uuml: uuml$1,
- Yacute: Yacute$1,
- yacute: yacute$1,
- yen: yen$1,
- yuml: yuml$1
- };
-
- var legacy$1 = /*#__PURE__*/Object.freeze({
- __proto__: null,
- Aacute: Aacute$1,
- aacute: aacute$1,
- Acirc: Acirc$1,
- acirc: acirc$1,
- acute: acute$1,
- AElig: AElig$1,
- aelig: aelig$1,
- Agrave: Agrave$1,
- agrave: agrave$1,
- amp: amp$1,
- AMP: AMP$1,
- Aring: Aring$1,
- aring: aring$1,
- Atilde: Atilde$1,
- atilde: atilde$1,
- Auml: Auml$1,
- auml: auml$1,
- brvbar: brvbar$1,
- Ccedil: Ccedil$1,
- ccedil: ccedil$1,
- cedil: cedil$1,
- cent: cent$1,
- copy: copy$1,
- COPY: COPY$1,
- curren: curren$1,
- deg: deg$1,
- divide: divide$1,
- Eacute: Eacute$1,
- eacute: eacute$1,
- Ecirc: Ecirc$1,
- ecirc: ecirc$1,
- Egrave: Egrave$1,
- egrave: egrave$1,
- ETH: ETH$1,
- eth: eth$1,
- Euml: Euml$1,
- euml: euml$1,
- frac12: frac12$1,
- frac14: frac14$1,
- frac34: frac34$1,
- gt: gt$1,
- GT: GT$1,
- Iacute: Iacute$1,
- iacute: iacute$1,
- Icirc: Icirc$1,
- icirc: icirc$1,
- iexcl: iexcl$1,
- Igrave: Igrave$1,
- igrave: igrave$1,
- iquest: iquest$1,
- Iuml: Iuml$1,
- iuml: iuml$1,
- laquo: laquo$1,
- lt: lt$1,
- LT: LT$1,
- macr: macr$1,
- micro: micro$1,
- middot: middot$1,
- nbsp: nbsp$1,
- not: not$1,
- Ntilde: Ntilde$1,
- ntilde: ntilde$1,
- Oacute: Oacute$1,
- oacute: oacute$1,
- Ocirc: Ocirc$1,
- ocirc: ocirc$1,
- Ograve: Ograve$1,
- ograve: ograve$1,
- ordf: ordf$1,
- ordm: ordm$1,
- Oslash: Oslash$1,
- oslash: oslash$1,
- Otilde: Otilde$1,
- otilde: otilde$1,
- Ouml: Ouml$1,
- ouml: ouml$1,
- para: para$1,
- plusmn: plusmn$1,
- pound: pound$1,
- quot: quot$1,
- QUOT: QUOT$1,
- raquo: raquo$1,
- reg: reg$1,
- REG: REG$1,
- sect: sect$1,
- shy: shy$1,
- sup1: sup1$1,
- sup2: sup2$1,
- sup3: sup3$1,
- szlig: szlig$1,
- THORN: THORN$1,
- thorn: thorn$1,
- times: times$1,
- Uacute: Uacute$1,
- uacute: uacute$1,
- Ucirc: Ucirc$1,
- ucirc: ucirc$1,
- Ugrave: Ugrave$1,
- ugrave: ugrave$1,
- uml: uml$1,
- Uuml: Uuml$1,
- uuml: uuml$1,
- Yacute: Yacute$1,
- yacute: yacute$1,
- yen: yen$1,
- yuml: yuml$1,
- 'default': legacy
- });
-
- var amp$2 = "&";
- var apos$1 = "'";
- var gt$2 = ">";
- var lt$2 = "<";
- var quot$2 = "\"";
- var xml = {
- amp: amp$2,
- apos: apos$1,
- gt: gt$2,
- lt: lt$2,
- quot: quot$2
- };
-
- var xml$1 = /*#__PURE__*/Object.freeze({
- __proto__: null,
- amp: amp$2,
- apos: apos$1,
- gt: gt$2,
- lt: lt$2,
- quot: quot$2,
- 'default': xml
- });
-
- var decode = {
- "0": 65533,
- "128": 8364,
- "130": 8218,
- "131": 402,
- "132": 8222,
- "133": 8230,
- "134": 8224,
- "135": 8225,
- "136": 710,
- "137": 8240,
- "138": 352,
- "139": 8249,
- "140": 338,
- "142": 381,
- "145": 8216,
- "146": 8217,
- "147": 8220,
- "148": 8221,
- "149": 8226,
- "150": 8211,
- "151": 8212,
- "152": 732,
- "153": 8482,
- "154": 353,
- "155": 8250,
- "156": 339,
- "158": 382,
- "159": 376
- };
-
- var decode$1 = /*#__PURE__*/Object.freeze({
- __proto__: null,
- 'default': decode
- });
-
- var require$$0 = getCjsExportFromNamespace(decode$1);
-
- var decode_codepoint = createCommonjsModule(function (module, exports) {
- var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- var decode_json_1 = __importDefault(require$$0);
- // modified version of https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119
- function decodeCodePoint(codePoint) {
- if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {
- return "\uFFFD";
- }
- if (codePoint in decode_json_1.default) {
- codePoint = decode_json_1.default[codePoint];
- }
- var output = "";
- if (codePoint > 0xffff) {
- codePoint -= 0x10000;
- output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);
- codePoint = 0xdc00 | (codePoint & 0x3ff);
- }
- output += String.fromCharCode(codePoint);
- return output;
- }
- exports.default = decodeCodePoint;
- });
-
- unwrapExports(decode_codepoint);
-
- var require$$1 = getCjsExportFromNamespace(entities$1);
-
- var require$$1$1 = getCjsExportFromNamespace(legacy$1);
-
- var require$$0$1 = getCjsExportFromNamespace(xml$1);
-
- var decode$2 = createCommonjsModule(function (module, exports) {
- var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.decodeHTML = exports.decodeHTMLStrict = exports.decodeXML = void 0;
- var entities_json_1 = __importDefault(require$$1);
- var legacy_json_1 = __importDefault(require$$1$1);
- var xml_json_1 = __importDefault(require$$0$1);
- var decode_codepoint_1 = __importDefault(decode_codepoint);
- exports.decodeXML = getStrictDecoder(xml_json_1.default);
- exports.decodeHTMLStrict = getStrictDecoder(entities_json_1.default);
- function getStrictDecoder(map) {
- var keys = Object.keys(map).join("|");
- var replace = getReplacer(map);
- keys += "|#[xX][\\da-fA-F]+|#\\d+";
- var re = new RegExp("&(?:" + keys + ");", "g");
- return function (str) { return String(str).replace(re, replace); };
- }
- var sorter = function (a, b) { return (a < b ? 1 : -1); };
- exports.decodeHTML = (function () {
- var legacy = Object.keys(legacy_json_1.default).sort(sorter);
- var keys = Object.keys(entities_json_1.default).sort(sorter);
- for (var i = 0, j = 0; i < keys.length; i++) {
- if (legacy[j] === keys[i]) {
- keys[i] += ";?";
- j++;
- }
- else {
- keys[i] += ";";
- }
- }
- var re = new RegExp("&(?:" + keys.join("|") + "|#[xX][\\da-fA-F]+;?|#\\d+;?)", "g");
- var replace = getReplacer(entities_json_1.default);
- function replacer(str) {
- if (str.substr(-1) !== ";")
- str += ";";
- return replace(str);
- }
- //TODO consider creating a merged map
- return function (str) { return String(str).replace(re, replacer); };
- })();
- function getReplacer(map) {
- return function replace(str) {
- if (str.charAt(1) === "#") {
- var secondChar = str.charAt(2);
- if (secondChar === "X" || secondChar === "x") {
- return decode_codepoint_1.default(parseInt(str.substr(3), 16));
- }
- return decode_codepoint_1.default(parseInt(str.substr(2), 10));
- }
- return map[str.slice(1, -1)];
- };
- }
- });
-
- unwrapExports(decode$2);
- var decode_1 = decode$2.decodeHTML;
- var decode_2 = decode$2.decodeHTMLStrict;
- var decode_3 = decode$2.decodeXML;
-
- var encode$1 = createCommonjsModule(function (module, exports) {
- var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.escape = exports.encodeHTML = exports.encodeXML = void 0;
- var xml_json_1 = __importDefault(require$$0$1);
- var inverseXML = getInverseObj(xml_json_1.default);
- var xmlReplacer = getInverseReplacer(inverseXML);
- exports.encodeXML = getInverse(inverseXML, xmlReplacer);
- var entities_json_1 = __importDefault(require$$1);
- var inverseHTML = getInverseObj(entities_json_1.default);
- var htmlReplacer = getInverseReplacer(inverseHTML);
- exports.encodeHTML = getInverse(inverseHTML, htmlReplacer);
- function getInverseObj(obj) {
- return Object.keys(obj)
- .sort()
- .reduce(function (inverse, name) {
- inverse[obj[name]] = "&" + name + ";";
- return inverse;
- }, {});
- }
- function getInverseReplacer(inverse) {
- var single = [];
- var multiple = [];
- for (var _i = 0, _a = Object.keys(inverse); _i < _a.length; _i++) {
- var k = _a[_i];
- if (k.length === 1) {
- // Add value to single array
- single.push("\\" + k);
- }
- else {
- // Add value to multiple array
- multiple.push(k);
- }
- }
- // Add ranges to single characters.
- single.sort();
- for (var start = 0; start < single.length - 1; start++) {
- // Find the end of a run of characters
- var end = start;
- while (end < single.length - 1 &&
- single[end].charCodeAt(1) + 1 === single[end + 1].charCodeAt(1)) {
- end += 1;
- }
- var count = 1 + end - start;
- // We want to replace at least three characters
- if (count < 3)
- continue;
- single.splice(start, count, single[start] + "-" + single[end]);
- }
- multiple.unshift("[" + single.join("") + "]");
- return new RegExp(multiple.join("|"), "g");
- }
- var reNonASCII = /(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g;
- function singleCharReplacer(c) {
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- return "" + c.codePointAt(0).toString(16).toUpperCase() + ";";
- }
- function getInverse(inverse, re) {
- return function (data) {
- return data
- .replace(re, function (name) { return inverse[name]; })
- .replace(reNonASCII, singleCharReplacer);
- };
- }
- var reXmlChars = getInverseReplacer(inverseXML);
- function escape(data) {
- return data
- .replace(reXmlChars, singleCharReplacer)
- .replace(reNonASCII, singleCharReplacer);
- }
- exports.escape = escape;
- });
-
- unwrapExports(encode$1);
- var encode_1$1 = encode$1.escape;
- var encode_2 = encode$1.encodeHTML;
- var encode_3 = encode$1.encodeXML;
-
- var lib = createCommonjsModule(function (module, exports) {
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.encode = exports.decodeStrict = exports.decode = void 0;
-
-
- /**
- * Decodes a string with entities.
- *
- * @param data String to decode.
- * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.
- */
- function decode(data, level) {
- return (!level || level <= 0 ? decode$2.decodeXML : decode$2.decodeHTML)(data);
- }
- exports.decode = decode;
- /**
- * Decodes a string with entities. Does not allow missing trailing semicolons for entities.
- *
- * @param data String to decode.
- * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.
- */
- function decodeStrict(data, level) {
- return (!level || level <= 0 ? decode$2.decodeXML : decode$2.decodeHTMLStrict)(data);
- }
- exports.decodeStrict = decodeStrict;
- /**
- * Encodes a string with entities.
- *
- * @param data String to encode.
- * @param level Optional level to encode at. 0 = XML, 1 = HTML. Default is 0.
- */
- function encode(data, level) {
- return (!level || level <= 0 ? encode$1.encodeXML : encode$1.encodeHTML)(data);
- }
- exports.encode = encode;
- var encode_2 = encode$1;
- Object.defineProperty(exports, "encodeXML", { enumerable: true, get: function () { return encode_2.encodeXML; } });
- Object.defineProperty(exports, "encodeHTML", { enumerable: true, get: function () { return encode_2.encodeHTML; } });
- Object.defineProperty(exports, "escape", { enumerable: true, get: function () { return encode_2.escape; } });
- // Legacy aliases
- Object.defineProperty(exports, "encodeHTML4", { enumerable: true, get: function () { return encode_2.encodeHTML; } });
- Object.defineProperty(exports, "encodeHTML5", { enumerable: true, get: function () { return encode_2.encodeHTML; } });
- var decode_2 = decode$2;
- Object.defineProperty(exports, "decodeXML", { enumerable: true, get: function () { return decode_2.decodeXML; } });
- Object.defineProperty(exports, "decodeHTML", { enumerable: true, get: function () { return decode_2.decodeHTML; } });
- Object.defineProperty(exports, "decodeHTMLStrict", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });
- // Legacy aliases
- Object.defineProperty(exports, "decodeHTML4", { enumerable: true, get: function () { return decode_2.decodeHTML; } });
- Object.defineProperty(exports, "decodeHTML5", { enumerable: true, get: function () { return decode_2.decodeHTML; } });
- Object.defineProperty(exports, "decodeHTML4Strict", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });
- Object.defineProperty(exports, "decodeHTML5Strict", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });
- Object.defineProperty(exports, "decodeXMLStrict", { enumerable: true, get: function () { return decode_2.decodeXML; } });
- });
-
- unwrapExports(lib);
- var lib_1 = lib.encode;
- var lib_2 = lib.decodeStrict;
- var lib_3 = lib.decode;
- var lib_4 = lib.encodeXML;
- var lib_5 = lib.encodeHTML;
- var lib_6 = lib.encodeHTML4;
- var lib_7 = lib.encodeHTML5;
- var lib_8 = lib.decodeXML;
- var lib_9 = lib.decodeHTML;
- var lib_10 = lib.decodeHTMLStrict;
- var lib_11 = lib.decodeHTML4;
- var lib_12 = lib.decodeHTML5;
- var lib_13 = lib.decodeHTML4Strict;
- var lib_14 = lib.decodeHTML5Strict;
- var lib_15 = lib.decodeXMLStrict;
-
- var C_BACKSLASH = 92;
-
- var ENTITY = "&(?:#x[a-f0-9]{1,6}|#[0-9]{1,7}|[a-z][a-z0-9]{1,31});";
-
- var TAGNAME = "[A-Za-z][A-Za-z0-9-]*";
- var ATTRIBUTENAME = "[a-zA-Z_:][a-zA-Z0-9:._-]*";
- var UNQUOTEDVALUE = "[^\"'=<>`\\x00-\\x20]+";
- var SINGLEQUOTEDVALUE = "'[^']*'";
- var DOUBLEQUOTEDVALUE = '"[^"]*"';
- var ATTRIBUTEVALUE =
- "(?:" +
- UNQUOTEDVALUE +
- "|" +
- SINGLEQUOTEDVALUE +
- "|" +
- DOUBLEQUOTEDVALUE +
- ")";
- var ATTRIBUTEVALUESPEC = "(?:" + "\\s*=" + "\\s*" + ATTRIBUTEVALUE + ")";
- var ATTRIBUTE = "(?:" + "\\s+" + ATTRIBUTENAME + ATTRIBUTEVALUESPEC + "?)";
- var OPENTAG = "<" + TAGNAME + ATTRIBUTE + "*" + "\\s*/?>";
- var CLOSETAG = "" + TAGNAME + "\\s*[>]";
- var HTMLCOMMENT = "|";
- var PROCESSINGINSTRUCTION = "[<][?][\\s\\S]*?[?][>]";
- var DECLARATION = "]*>";
- var CDATA = "";
- var HTMLTAG =
- "(?:" +
- OPENTAG +
- "|" +
- CLOSETAG +
- "|" +
- HTMLCOMMENT +
- "|" +
- PROCESSINGINSTRUCTION +
- "|" +
- DECLARATION +
- "|" +
- CDATA +
- ")";
- var reHtmlTag = new RegExp("^" + HTMLTAG);
-
- var reBackslashOrAmp = /[\\&]/;
-
- var ESCAPABLE = "[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]";
-
- var reEntityOrEscapedChar = new RegExp("\\\\" + ESCAPABLE + "|" + ENTITY, "gi");
-
- var XMLSPECIAL = '[&<>"]';
-
- var reXmlSpecial = new RegExp(XMLSPECIAL, "g");
-
- var unescapeChar = function(s) {
- if (s.charCodeAt(0) === C_BACKSLASH) {
- return s.charAt(1);
- } else {
- return lib_9(s);
- }
- };
-
- // Replace entities and backslash escapes with literal characters.
- var unescapeString = function(s) {
- if (reBackslashOrAmp.test(s)) {
- return s.replace(reEntityOrEscapedChar, unescapeChar);
- } else {
- return s;
- }
- };
-
- var normalizeURI = function(uri) {
- try {
- return encode_1(uri);
- } catch (err) {
- return uri;
- }
- };
-
- var replaceUnsafeChar = function(s) {
- switch (s) {
- case "&":
- return "&";
- case "<":
- return "<";
- case ">":
- return ">";
- case '"':
- return """;
- default:
- return s;
- }
- };
-
- var escapeXml = function(s) {
- if (reXmlSpecial.test(s)) {
- return s.replace(reXmlSpecial, replaceUnsafeChar);
- } else {
- return s;
- }
- };
-
- // derived from https://github.com/mathiasbynens/String.fromCodePoint
- /*! http://mths.be/fromcodepoint v0.2.1 by @mathias */
-
- var _fromCodePoint;
-
- function fromCodePoint(_) {
- return _fromCodePoint(_);
- }
-
- if (String.fromCodePoint) {
- _fromCodePoint = function(_) {
- try {
- return String.fromCodePoint(_);
- } catch (e) {
- if (e instanceof RangeError) {
- return String.fromCharCode(0xfffd);
- }
- throw e;
- }
- };
- } else {
- var stringFromCharCode = String.fromCharCode;
- var floor = Math.floor;
- _fromCodePoint = function() {
- var MAX_SIZE = 0x4000;
- var codeUnits = [];
- var highSurrogate;
- var lowSurrogate;
- var index = -1;
- var length = arguments.length;
- if (!length) {
- return "";
- }
- var result = "";
- while (++index < length) {
- var codePoint = Number(arguments[index]);
- if (
- !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`
- codePoint < 0 || // not a valid Unicode code point
- codePoint > 0x10ffff || // not a valid Unicode code point
- floor(codePoint) !== codePoint // not an integer
- ) {
- return String.fromCharCode(0xfffd);
- }
- if (codePoint <= 0xffff) {
- // BMP code point
- codeUnits.push(codePoint);
- } else {
- // Astral code point; split in surrogate halves
- // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
- codePoint -= 0x10000;
- highSurrogate = (codePoint >> 10) + 0xd800;
- lowSurrogate = (codePoint % 0x400) + 0xdc00;
- codeUnits.push(highSurrogate, lowSurrogate);
- }
- if (index + 1 === length || codeUnits.length > MAX_SIZE) {
- result += stringFromCharCode.apply(null, codeUnits);
- codeUnits.length = 0;
- }
- }
- return result;
- };
- }
-
- /*! http://mths.be/repeat v0.2.0 by @mathias */
- if (!String.prototype.repeat) {
- (function() {
- var defineProperty = (function() {
- // IE 8 only supports `Object.defineProperty` on DOM elements
- try {
- var object = {};
- var $defineProperty = Object.defineProperty;
- var result = $defineProperty(object, object, object) && $defineProperty;
- } catch(error) {}
- return result;
- }());
- var repeat = function(count) {
- if (this == null) {
- throw TypeError();
- }
- var string = String(this);
- // `ToInteger`
- var n = count ? Number(count) : 0;
- if (n != n) { // better `isNaN`
- n = 0;
- }
- // Account for out-of-bounds indices
- if (n < 0 || n == Infinity) {
- throw RangeError();
- }
- var result = '';
- while (n) {
- if (n % 2 == 1) {
- result += string;
- }
- if (n > 1) {
- string += string;
- }
- n >>= 1;
- }
- return result;
- };
- if (defineProperty) {
- defineProperty(String.prototype, 'repeat', {
- 'value': repeat,
- 'configurable': true,
- 'writable': true
- });
- } else {
- String.prototype.repeat = repeat;
- }
- }());
- }
-
- var normalizeURI$1 = normalizeURI;
- var unescapeString$1 = unescapeString;
-
- // Constants for character codes:
-
- var C_NEWLINE = 10;
- var C_ASTERISK = 42;
- var C_UNDERSCORE = 95;
- var C_BACKTICK = 96;
- var C_OPEN_BRACKET = 91;
- var C_CLOSE_BRACKET = 93;
- var C_LESSTHAN = 60;
- var C_BANG = 33;
- var C_BACKSLASH$1 = 92;
- var C_AMPERSAND = 38;
- var C_OPEN_PAREN = 40;
- var C_CLOSE_PAREN = 41;
- var C_COLON = 58;
- var C_SINGLEQUOTE = 39;
- var C_DOUBLEQUOTE = 34;
-
- // Some regexps used in inline parser:
-
- var ESCAPABLE$1 = ESCAPABLE;
- var ESCAPED_CHAR = "\\\\" + ESCAPABLE$1;
-
- var ENTITY$1 = ENTITY;
- var reHtmlTag$1 = reHtmlTag;
-
- var rePunctuation = new RegExp(
- /^[!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/
- );
-
- var reLinkTitle = new RegExp(
- '^(?:"(' +
- ESCAPED_CHAR +
- '|[^"\\x00])*"' +
- "|" +
- "'(" +
- ESCAPED_CHAR +
- "|[^'\\x00])*'" +
- "|" +
- "\\((" +
- ESCAPED_CHAR +
- "|[^()\\x00])*\\))"
- );
-
- var reLinkDestinationBraces = /^(?:<(?:[^<>\n\\\x00]|\\.)*>)/;
-
- var reEscapable = new RegExp("^" + ESCAPABLE$1);
-
- var reEntityHere = new RegExp("^" + ENTITY$1, "i");
-
- var reTicks = /`+/;
-
- var reTicksHere = /^`+/;
-
- var reEllipses = /\.\.\./g;
-
- var reDash = /--+/g;
-
- var reEmailAutolink = /^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/;
-
- var reAutolink = /^<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\x00-\x20]*>/i;
-
- var reSpnl = /^ *(?:\n *)?/;
-
- var reWhitespaceChar = /^[ \t\n\x0b\x0c\x0d]/;
-
- var reUnicodeWhitespaceChar = /^\s/;
-
- var reFinalSpace = / *$/;
-
- var reInitialSpace = /^ */;
-
- var reSpaceAtEndOfLine = /^ *(?:\n|$)/;
-
- var reLinkLabel = /^\[(?:[^\\\[\]]|\\.){0,1000}\]/s;
-
- // Matches a string of non-special characters.
- var reMain = /^[^\n`\[\]\\!<&*_'"]+/m;
-
- var text = function(s) {
- var node = new Node("text");
- node._literal = s;
- return node;
- };
-
- // normalize a reference in reference link (remove []s, trim,
- // collapse internal space, unicode case fold.
- // See commonmark/commonmark.js#168.
- var normalizeReference = function(string) {
- return string
- .slice(1, string.length - 1)
- .trim()
- .replace(/[ \t\r\n]+/, " ")
- .toLowerCase()
- .toUpperCase();
- };
-
- // INLINE PARSER
-
- // These are methods of an InlineParser object, defined below.
- // An InlineParser keeps track of a subject (a string to be
- // parsed) and a position in that subject.
-
- // If re matches at current position in the subject, advance
- // position in subject and return the match; otherwise return null.
- var match = function(re) {
- var m = re.exec(this.subject.slice(this.pos));
- if (m === null) {
- return null;
- } else {
- this.pos += m.index + m[0].length;
- return m[0];
- }
- };
-
- // Returns the code for the character at the current subject position, or -1
- // there are no more characters.
- var peek = function() {
- if (this.pos < this.subject.length) {
- return this.subject.charCodeAt(this.pos);
- } else {
- return -1;
- }
- };
-
- // Parse zero or more space characters, including at most one newline
- var spnl = function() {
- this.match(reSpnl);
- return true;
- };
-
- // All of the parsers below try to match something at the current position
- // in the subject. If they succeed in matching anything, they
- // return the inline matched, advancing the subject.
-
- // Attempt to parse backticks, adding either a backtick code span or a
- // literal sequence of backticks.
- var parseBackticks = function(block) {
- var ticks = this.match(reTicksHere);
- if (ticks === null) {
- return false;
- }
- var afterOpenTicks = this.pos;
- var matched;
- var node;
- var contents;
- while ((matched = this.match(reTicks)) !== null) {
- if (matched === ticks) {
- node = new Node("code");
- contents = this.subject
- .slice(afterOpenTicks, this.pos - ticks.length)
- .replace(/\n/gm, " ");
- if (
- contents.length > 0 &&
- contents.match(/[^ ]/) !== null &&
- contents[0] == " " &&
- contents[contents.length - 1] == " "
- ) {
- node._literal = contents.slice(1, contents.length - 1);
- } else {
- node._literal = contents;
- }
- const doc = this.options.autoDoc;
- if (doc) {
- const decl_hash = doc.detectDeclPath(contents);
- if (decl_hash) {
- var l = new Node("link");
- l.destination = decl_hash;
- l.appendChild(node);
- node = l;
- }
- }
- block.appendChild(node);
- return true;
- }
- }
- // If we got here, we didn't match a closing backtick sequence.
- this.pos = afterOpenTicks;
- block.appendChild(text(ticks));
- return true;
- };
-
- // Parse a backslash-escaped special character, adding either the escaped
- // character, a hard line break (if the backslash is followed by a newline),
- // or a literal backslash to the block's children. Assumes current character
- // is a backslash.
- var parseBackslash = function(block) {
- var subj = this.subject;
- var node;
- this.pos += 1;
- if (this.peek() === C_NEWLINE) {
- this.pos += 1;
- node = new Node("linebreak");
- block.appendChild(node);
- } else if (reEscapable.test(subj.charAt(this.pos))) {
- block.appendChild(text(subj.charAt(this.pos)));
- this.pos += 1;
- } else {
- block.appendChild(text("\\"));
- }
- return true;
- };
-
- // Attempt to parse an autolink (URL or email in pointy brackets).
- var parseAutolink = function(block) {
- var m;
- var dest;
- var node;
- if ((m = this.match(reEmailAutolink))) {
- dest = m.slice(1, m.length - 1);
- node = new Node("link");
- node._destination = normalizeURI$1("mailto:" + dest);
- node._title = "";
- node.appendChild(text(dest));
- block.appendChild(node);
- return true;
- } else if ((m = this.match(reAutolink))) {
- dest = m.slice(1, m.length - 1);
- node = new Node("link");
- node._destination = normalizeURI$1(dest);
- node._title = "";
- node.appendChild(text(dest));
- block.appendChild(node);
- return true;
- } else {
- return false;
- }
- };
-
- // Attempt to parse a raw HTML tag.
- var parseHtmlTag = function(block) {
- var m = this.match(reHtmlTag$1);
- if (m === null) {
- return false;
- } else {
- var node = new Node("html_inline");
- node._literal = m;
- block.appendChild(node);
- return true;
- }
- };
-
- // Scan a sequence of characters with code cc, and return information about
- // the number of delimiters and whether they are positioned such that
- // they can open and/or close emphasis or strong emphasis. A utility
- // function for strong/emph parsing.
- var scanDelims = function(cc) {
- var numdelims = 0;
- var char_before, char_after, cc_after;
- var startpos = this.pos;
- var left_flanking, right_flanking, can_open, can_close;
- var after_is_whitespace,
- after_is_punctuation,
- before_is_whitespace,
- before_is_punctuation;
-
- if (cc === C_SINGLEQUOTE || cc === C_DOUBLEQUOTE) {
- numdelims++;
- this.pos++;
- } else {
- while (this.peek() === cc) {
- numdelims++;
- this.pos++;
- }
- }
-
- if (numdelims === 0) {
- return null;
- }
-
- char_before = startpos === 0 ? "\n" : this.subject.charAt(startpos - 1);
-
- cc_after = this.peek();
- if (cc_after === -1) {
- char_after = "\n";
- } else {
- char_after = fromCodePoint(cc_after);
- }
-
- after_is_whitespace = reUnicodeWhitespaceChar.test(char_after);
- after_is_punctuation = rePunctuation.test(char_after);
- before_is_whitespace = reUnicodeWhitespaceChar.test(char_before);
- before_is_punctuation = rePunctuation.test(char_before);
-
- left_flanking =
- !after_is_whitespace &&
- (!after_is_punctuation ||
- before_is_whitespace ||
- before_is_punctuation);
- right_flanking =
- !before_is_whitespace &&
- (!before_is_punctuation || after_is_whitespace || after_is_punctuation);
- if (cc === C_UNDERSCORE) {
- can_open = left_flanking && (!right_flanking || before_is_punctuation);
- can_close = right_flanking && (!left_flanking || after_is_punctuation);
- } else if (cc === C_SINGLEQUOTE || cc === C_DOUBLEQUOTE) {
- can_open = left_flanking && !right_flanking;
- can_close = right_flanking;
- } else {
- can_open = left_flanking;
- can_close = right_flanking;
- }
- this.pos = startpos;
- return { numdelims: numdelims, can_open: can_open, can_close: can_close };
- };
-
- // Handle a delimiter marker for emphasis or a quote.
- var handleDelim = function(cc, block) {
- var res = this.scanDelims(cc);
- if (!res) {
- return false;
- }
- var numdelims = res.numdelims;
- var startpos = this.pos;
- var contents;
-
- this.pos += numdelims;
- if (cc === C_SINGLEQUOTE) {
- contents = "\u2019";
- } else if (cc === C_DOUBLEQUOTE) {
- contents = "\u201C";
- } else {
- contents = this.subject.slice(startpos, this.pos);
- }
- var node = text(contents);
- block.appendChild(node);
-
- // Add entry to stack for this opener
- if (
- (res.can_open || res.can_close) &&
- (this.options.smart || (cc !== C_SINGLEQUOTE && cc !== C_DOUBLEQUOTE))
- ) {
- this.delimiters = {
- cc: cc,
- numdelims: numdelims,
- origdelims: numdelims,
- node: node,
- previous: this.delimiters,
- next: null,
- can_open: res.can_open,
- can_close: res.can_close
- };
- if (this.delimiters.previous !== null) {
- this.delimiters.previous.next = this.delimiters;
- }
- }
-
- return true;
- };
-
- var removeDelimiter = function(delim) {
- if (delim.previous !== null) {
- delim.previous.next = delim.next;
- }
- if (delim.next === null) {
- // top of stack
- this.delimiters = delim.previous;
- } else {
- delim.next.previous = delim.previous;
- }
- };
-
- var removeDelimitersBetween = function(bottom, top) {
- if (bottom.next !== top) {
- bottom.next = top;
- top.previous = bottom;
- }
- };
-
- var processEmphasis = function(stack_bottom) {
- var opener, closer, old_closer;
- var opener_inl, closer_inl;
- var tempstack;
- var use_delims;
- var tmp, next;
- var opener_found;
- var openers_bottom = [];
- var openers_bottom_index;
- var odd_match = false;
-
- for (var i = 0; i < 8; i++) {
- openers_bottom[i] = stack_bottom;
- }
- // find first closer above stack_bottom:
- closer = this.delimiters;
- while (closer !== null && closer.previous !== stack_bottom) {
- closer = closer.previous;
- }
- // move forward, looking for closers, and handling each
- while (closer !== null) {
- var closercc = closer.cc;
- if (!closer.can_close) {
- closer = closer.next;
- } else {
- // found emphasis closer. now look back for first matching opener:
- opener = closer.previous;
- opener_found = false;
- switch (closercc) {
- case C_SINGLEQUOTE:
- openers_bottom_index = 0;
- break;
- case C_DOUBLEQUOTE:
- openers_bottom_index = 1;
- break;
- case C_UNDERSCORE:
- openers_bottom_index = 2;
- break;
- case C_ASTERISK:
- openers_bottom_index = 3 + (closer.can_open ? 3 : 0)
- + (closer.origdelims % 3);
- break;
- }
- while (
- opener !== null &&
- opener !== stack_bottom &&
- opener !== openers_bottom[openers_bottom_index]
- ) {
- odd_match =
- (closer.can_open || opener.can_close) &&
- closer.origdelims % 3 !== 0 &&
- (opener.origdelims + closer.origdelims) % 3 === 0;
- if (opener.cc === closer.cc && opener.can_open && !odd_match) {
- opener_found = true;
- break;
- }
- opener = opener.previous;
- }
- old_closer = closer;
-
- if (closercc === C_ASTERISK || closercc === C_UNDERSCORE) {
- if (!opener_found) {
- closer = closer.next;
- } else {
- // calculate actual number of delimiters used from closer
- use_delims =
- closer.numdelims >= 2 && opener.numdelims >= 2 ? 2 : 1;
-
- opener_inl = opener.node;
- closer_inl = closer.node;
-
- // remove used delimiters from stack elts and inlines
- opener.numdelims -= use_delims;
- closer.numdelims -= use_delims;
- opener_inl._literal = opener_inl._literal.slice(
- 0,
- opener_inl._literal.length - use_delims
- );
- closer_inl._literal = closer_inl._literal.slice(
- 0,
- closer_inl._literal.length - use_delims
- );
-
- // build contents for new emph element
- var emph = new Node(use_delims === 1 ? "emph" : "strong");
-
- tmp = opener_inl._next;
- while (tmp && tmp !== closer_inl) {
- next = tmp._next;
- tmp.unlink();
- emph.appendChild(tmp);
- tmp = next;
- }
-
- opener_inl.insertAfter(emph);
-
- // remove elts between opener and closer in delimiters stack
- removeDelimitersBetween(opener, closer);
-
- // if opener has 0 delims, remove it and the inline
- if (opener.numdelims === 0) {
- opener_inl.unlink();
- this.removeDelimiter(opener);
- }
-
- if (closer.numdelims === 0) {
- closer_inl.unlink();
- tempstack = closer.next;
- this.removeDelimiter(closer);
- closer = tempstack;
- }
- }
- } else if (closercc === C_SINGLEQUOTE) {
- closer.node._literal = "\u2019";
- if (opener_found) {
- opener.node._literal = "\u2018";
- }
- closer = closer.next;
- } else if (closercc === C_DOUBLEQUOTE) {
- closer.node._literal = "\u201D";
- if (opener_found) {
- opener.node.literal = "\u201C";
- }
- closer = closer.next;
- }
- if (!opener_found) {
- // Set lower bound for future searches for openers:
- openers_bottom[openers_bottom_index] =
- old_closer.previous;
- if (!old_closer.can_open) {
- // We can remove a closer that can't be an opener,
- // once we've seen there's no matching opener:
- this.removeDelimiter(old_closer);
- }
- }
- }
- }
-
- // remove all delimiters
- while (this.delimiters !== null && this.delimiters !== stack_bottom) {
- this.removeDelimiter(this.delimiters);
- }
- };
-
- // Attempt to parse link title (sans quotes), returning the string
- // or null if no match.
- var parseLinkTitle = function() {
- var title = this.match(reLinkTitle);
- if (title === null) {
- return null;
- } else {
- // chop off quotes from title and unescape:
- return unescapeString$1(title.substr(1, title.length - 2));
- }
- };
-
- // Attempt to parse link destination, returning the string or
- // null if no match.
- var parseLinkDestination = function() {
- var res = this.match(reLinkDestinationBraces);
- if (res === null) {
- if (this.peek() === C_LESSTHAN) {
- return null;
- }
- // TODO handrolled parser; res should be null or the string
- var savepos = this.pos;
- var openparens = 0;
- var c;
- while ((c = this.peek()) !== -1) {
- if (
- c === C_BACKSLASH$1 &&
- reEscapable.test(this.subject.charAt(this.pos + 1))
- ) {
- this.pos += 1;
- if (this.peek() !== -1) {
- this.pos += 1;
- }
- } else if (c === C_OPEN_PAREN) {
- this.pos += 1;
- openparens += 1;
- } else if (c === C_CLOSE_PAREN) {
- if (openparens < 1) {
- break;
- } else {
- this.pos += 1;
- openparens -= 1;
- }
- } else if (reWhitespaceChar.exec(fromCodePoint(c)) !== null) {
- break;
- } else {
- this.pos += 1;
- }
- }
- if (this.pos === savepos && c !== C_CLOSE_PAREN) {
- return null;
- }
- if (openparens !== 0) {
- return null;
- }
- res = this.subject.substr(savepos, this.pos - savepos);
- return normalizeURI$1(unescapeString$1(res));
- } else {
- // chop off surrounding <..>:
- return normalizeURI$1(unescapeString$1(res.substr(1, res.length - 2)));
- }
- };
-
- // Attempt to parse a link label, returning number of characters parsed.
- var parseLinkLabel = function() {
- var m = this.match(reLinkLabel);
- if (m === null || m.length > 1001) {
- return 0;
- } else {
- return m.length;
- }
- };
-
- // Add open bracket to delimiter stack and add a text node to block's children.
- var parseOpenBracket = function(block) {
- var startpos = this.pos;
- this.pos += 1;
-
- var node = text("[");
- block.appendChild(node);
-
- // Add entry to stack for this opener
- this.addBracket(node, startpos, false);
- return true;
- };
-
- // IF next character is [, and ! delimiter to delimiter stack and
- // add a text node to block's children. Otherwise just add a text node.
- var parseBang = function(block) {
- var startpos = this.pos;
- this.pos += 1;
- if (this.peek() === C_OPEN_BRACKET) {
- this.pos += 1;
-
- var node = text("![");
- block.appendChild(node);
-
- // Add entry to stack for this opener
- this.addBracket(node, startpos + 1, true);
- } else {
- block.appendChild(text("!"));
- }
- return true;
- };
-
- // Try to match close bracket against an opening in the delimiter
- // stack. Add either a link or image, or a plain [ character,
- // to block's children. If there is a matching delimiter,
- // remove it from the delimiter stack.
- var parseCloseBracket = function(block) {
- var startpos;
- var is_image;
- var dest;
- var title;
- var matched = false;
- var reflabel;
- var opener;
-
- this.pos += 1;
- startpos = this.pos;
-
- // get last [ or ![
- opener = this.brackets;
-
- if (opener === null) {
- // no matched opener, just return a literal
- block.appendChild(text("]"));
- return true;
- }
-
- if (!opener.active) {
- // no matched opener, just return a literal
- block.appendChild(text("]"));
- // take opener off brackets stack
- this.removeBracket();
- return true;
- }
-
- // If we got here, open is a potential opener
- is_image = opener.image;
-
- // Check to see if we have a link/image
-
- var savepos = this.pos;
-
- // Inline link?
- if (this.peek() === C_OPEN_PAREN) {
- this.pos++;
- if (
- this.spnl() &&
- (dest = this.parseLinkDestination()) !== null &&
- this.spnl() &&
- // make sure there's a space before the title:
- ((reWhitespaceChar.test(this.subject.charAt(this.pos - 1)) &&
- (title = this.parseLinkTitle())) ||
- true) &&
- this.spnl() &&
- this.peek() === C_CLOSE_PAREN
- ) {
- this.pos += 1;
- matched = true;
- } else {
- this.pos = savepos;
- }
- }
-
- if (!matched) {
- // Next, see if there's a link label
- var beforelabel = this.pos;
- var n = this.parseLinkLabel();
- if (n > 2) {
- reflabel = this.subject.slice(beforelabel, beforelabel + n);
- } else if (!opener.bracketAfter) {
- // Empty or missing second label means to use the first label as the reference.
- // The reference must not contain a bracket. If we know there's a bracket, we don't even bother checking it.
- reflabel = this.subject.slice(opener.index, startpos);
- }
- if (n === 0) {
- // If shortcut reference link, rewind before spaces we skipped.
- this.pos = savepos;
- }
-
- if (reflabel) {
- // lookup rawlabel in refmap
- var link = this.refmap[normalizeReference(reflabel)];
- if (link) {
- dest = link.destination;
- title = link.title;
- matched = true;
- }
- }
- }
-
- if (matched) {
- var node = new Node(is_image ? "image" : "link");
- node._destination = dest;
- node._title = title || "";
-
- var tmp, next;
- tmp = opener.node._next;
- while (tmp) {
- next = tmp._next;
- tmp.unlink();
- node.appendChild(tmp);
- tmp = next;
- }
- block.appendChild(node);
- this.processEmphasis(opener.previousDelimiter);
- this.removeBracket();
- opener.node.unlink();
-
- // We remove this bracket and processEmphasis will remove later delimiters.
- // Now, for a link, we also deactivate earlier link openers.
- // (no links in links)
- if (!is_image) {
- opener = this.brackets;
- while (opener !== null) {
- if (!opener.image) {
- opener.active = false; // deactivate this opener
- }
- opener = opener.previous;
- }
- }
-
- return true;
- } else {
- // no match
-
- this.removeBracket(); // remove this opener from stack
- this.pos = startpos;
- block.appendChild(text("]"));
- return true;
- }
- };
-
- var addBracket = function(node, index, image) {
- if (this.brackets !== null) {
- this.brackets.bracketAfter = true;
- }
- this.brackets = {
- node: node,
- previous: this.brackets,
- previousDelimiter: this.delimiters,
- index: index,
- image: image,
- active: true
- };
- };
-
- var removeBracket = function() {
- this.brackets = this.brackets.previous;
- };
-
- // Attempt to parse an entity.
- var parseEntity = function(block) {
- var m;
- if ((m = this.match(reEntityHere))) {
- block.appendChild(text(lib_9(m)));
- return true;
- } else {
- return false;
- }
- };
-
- // Parse a run of ordinary characters, or a single character with
- // a special meaning in markdown, as a plain string.
- var parseString = function(block) {
- var m;
- if ((m = this.match(reMain))) {
- if (this.options.smart) {
- block.appendChild(
- text(
- m
- .replace(reEllipses, "\u2026")
- .replace(reDash, function(chars) {
- var enCount = 0;
- var emCount = 0;
- if (chars.length % 3 === 0) {
- // If divisible by 3, use all em dashes
- emCount = chars.length / 3;
- } else if (chars.length % 2 === 0) {
- // If divisible by 2, use all en dashes
- enCount = chars.length / 2;
- } else if (chars.length % 3 === 2) {
- // If 2 extra dashes, use en dash for last 2; em dashes for rest
- enCount = 1;
- emCount = (chars.length - 2) / 3;
- } else {
- // Use en dashes for last 4 hyphens; em dashes for rest
- enCount = 2;
- emCount = (chars.length - 4) / 3;
- }
- return (
- "\u2014".repeat(emCount) +
- "\u2013".repeat(enCount)
- );
- })
- )
- );
- } else {
- block.appendChild(text(m));
- }
- return true;
- } else {
- return false;
- }
- };
-
- // Parse a newline. If it was preceded by two spaces, return a hard
- // line break; otherwise a soft line break.
- var parseNewline = function(block) {
- this.pos += 1; // assume we're at a \n
- // check previous node for trailing spaces
- var lastc = block._lastChild;
- if (
- lastc &&
- lastc.type === "text" &&
- lastc._literal[lastc._literal.length - 1] === " "
- ) {
- var hardbreak = lastc._literal[lastc._literal.length - 2] === " ";
- lastc._literal = lastc._literal.replace(reFinalSpace, "");
- block.appendChild(new Node(hardbreak ? "linebreak" : "softbreak"));
- } else {
- block.appendChild(new Node("softbreak"));
- }
- this.match(reInitialSpace); // gobble leading spaces in next line
- return true;
- };
-
- // Attempt to parse a link reference, modifying refmap.
- var parseReference = function(s, refmap) {
- this.subject = s;
- this.pos = 0;
- var rawlabel;
- var dest;
- var title;
- var matchChars;
- var startpos = this.pos;
-
- // label:
- matchChars = this.parseLinkLabel();
- if (matchChars === 0) {
- return 0;
- } else {
- rawlabel = this.subject.substr(0, matchChars);
- }
-
- // colon:
- if (this.peek() === C_COLON) {
- this.pos++;
- } else {
- this.pos = startpos;
- return 0;
- }
-
- // link url
- this.spnl();
-
- dest = this.parseLinkDestination();
- if (dest === null) {
- this.pos = startpos;
- return 0;
- }
-
- var beforetitle = this.pos;
- this.spnl();
- if (this.pos !== beforetitle) {
- title = this.parseLinkTitle();
- }
- if (title === null) {
- title = "";
- // rewind before spaces
- this.pos = beforetitle;
- }
-
- // make sure we're at line end:
- var atLineEnd = true;
- if (this.match(reSpaceAtEndOfLine) === null) {
- if (title === "") {
- atLineEnd = false;
- } else {
- // the potential title we found is not at the line end,
- // but it could still be a legal link reference if we
- // discard the title
- title = "";
- // rewind before spaces
- this.pos = beforetitle;
- // and instead check if the link URL is at the line end
- atLineEnd = this.match(reSpaceAtEndOfLine) !== null;
- }
- }
-
- if (!atLineEnd) {
- this.pos = startpos;
- return 0;
- }
-
- var normlabel = normalizeReference(rawlabel);
- if (normlabel === "") {
- // label must contain non-whitespace characters
- this.pos = startpos;
- return 0;
- }
-
- if (!refmap[normlabel]) {
- refmap[normlabel] = { destination: dest, title: title };
- }
- return this.pos - startpos;
- };
-
- // Parse the next inline element in subject, advancing subject position.
- // On success, add the result to block's children and return true.
- // On failure, return false.
- var parseInline = function(block) {
- var res = false;
- var c = this.peek();
- if (c === -1) {
- return false;
- }
- switch (c) {
- case C_NEWLINE:
- res = this.parseNewline(block);
- break;
- case C_BACKSLASH$1:
- res = this.parseBackslash(block);
- break;
- case C_BACKTICK:
- res = this.parseBackticks(block);
- break;
- case C_ASTERISK:
- case C_UNDERSCORE:
- res = this.handleDelim(c, block);
- break;
- case C_SINGLEQUOTE:
- case C_DOUBLEQUOTE:
- res = this.options.smart && this.handleDelim(c, block);
- break;
- case C_OPEN_BRACKET:
- res = this.parseOpenBracket(block);
- break;
- case C_BANG:
- res = this.parseBang(block);
- break;
- case C_CLOSE_BRACKET:
- res = this.parseCloseBracket(block);
- break;
- case C_LESSTHAN:
- res = this.parseAutolink(block) || this.parseHtmlTag(block);
- break;
- case C_AMPERSAND:
- res = this.parseEntity(block);
- break;
- default:
- res = this.parseString(block);
- break;
- }
- if (!res) {
- this.pos += 1;
- block.appendChild(text(fromCodePoint(c)));
- }
-
- return true;
- };
-
- // Parse string content in block into inline children,
- // using refmap to resolve references.
- var parseInlines = function(block) {
- this.subject = block._string_content.trim();
- this.pos = 0;
- this.delimiters = null;
- this.brackets = null;
- while (this.parseInline(block)) {}
- block._string_content = null; // allow raw string to be garbage collected
- this.processEmphasis(null);
- };
-
- // The InlineParser object.
- function InlineParser(options) {
- return {
- subject: "",
- delimiters: null, // used by handleDelim method
- brackets: null,
- pos: 0,
- refmap: {},
- match: match,
- peek: peek,
- spnl: spnl,
- parseBackticks: parseBackticks,
- parseBackslash: parseBackslash,
- parseAutolink: parseAutolink,
- parseHtmlTag: parseHtmlTag,
- scanDelims: scanDelims,
- handleDelim: handleDelim,
- parseLinkTitle: parseLinkTitle,
- parseLinkDestination: parseLinkDestination,
- parseLinkLabel: parseLinkLabel,
- parseOpenBracket: parseOpenBracket,
- parseBang: parseBang,
- parseCloseBracket: parseCloseBracket,
- addBracket: addBracket,
- removeBracket: removeBracket,
- parseEntity: parseEntity,
- parseString: parseString,
- parseNewline: parseNewline,
- parseReference: parseReference,
- parseInline: parseInline,
- processEmphasis: processEmphasis,
- removeDelimiter: removeDelimiter,
- options: options || {},
- parse: parseInlines
- };
- }
-
- var CODE_INDENT = 4;
-
- var C_TAB = 9;
- var C_NEWLINE$1 = 10;
- var C_GREATERTHAN = 62;
- var C_LESSTHAN$1 = 60;
- var C_SPACE = 32;
- var C_OPEN_BRACKET$1 = 91;
-
- var reHtmlBlockOpen = [
- /./, // dummy for 0
- /^<(?:script|pre|textarea|style)(?:\s|>|$)/i,
- /^/,
- /\?>/,
- />/,
- /\]\]>/
- ];
-
- var reThematicBreak = /^(?:\*[ \t]*){3,}$|^(?:_[ \t]*){3,}$|^(?:-[ \t]*){3,}$/;
-
- var reMaybeSpecial = /^[#`~*+_=<>0-9-]/;
-
- var reNonSpace = /[^ \t\f\v\r\n]/;
-
- var reBulletListMarker = /^[*+-]/;
-
- var reOrderedListMarker = /^(\d{1,9})([.)])/;
-
- var reATXHeadingMarker = /^#{1,6}(?:[ \t]+|$)/;
-
- var reCodeFence = /^`{3,}(?!.*`)|^~{3,}/;
-
- var reClosingCodeFence = /^(?:`{3,}|~{3,})(?= *$)/;
-
- var reSetextHeadingLine = /^(?:=+|-+)[ \t]*$/;
-
- var reLineEnding = /\r\n|\n|\r/;
-
- // Returns true if string contains only space characters.
- var isBlank = function(s) {
- return !reNonSpace.test(s);
- };
-
- var isSpaceOrTab = function(c) {
- return c === C_SPACE || c === C_TAB;
- };
-
- var peek$1 = function(ln, pos) {
- if (pos < ln.length) {
- return ln.charCodeAt(pos);
- } else {
- return -1;
- }
- };
-
- // DOC PARSER
-
- // These are methods of a Parser object, defined below.
-
- // Returns true if block ends with a blank line, descending if needed
- // into lists and sublists.
- var endsWithBlankLine = function(block) {
- while (block) {
- if (block._lastLineBlank) {
- return true;
- }
- var t = block.type;
- if (!block._lastLineChecked && (t === "list" || t === "item")) {
- block._lastLineChecked = true;
- block = block._lastChild;
- } else {
- block._lastLineChecked = true;
- break;
- }
- }
- return false;
- };
-
- // Add a line to the block at the tip. We assume the tip
- // can accept lines -- that check should be done before calling this.
- var addLine = function() {
- if (this.partiallyConsumedTab) {
- this.offset += 1; // skip over tab
- // add space characters:
- var charsToTab = 4 - (this.column % 4);
- this.tip._string_content += " ".repeat(charsToTab);
- }
- this.tip._string_content += this.currentLine.slice(this.offset) + "\n";
- };
-
- // Add block of type tag as a child of the tip. If the tip can't
- // accept children, close and finalize it and try its parent,
- // and so on til we find a block that can accept children.
- var addChild = function(tag, offset) {
- while (!this.blocks[this.tip.type].canContain(tag)) {
- this.finalize(this.tip, this.lineNumber - 1);
- }
-
- var column_number = offset + 1; // offset 0 = column 1
- var newBlock = new Node(tag, [
- [this.lineNumber, column_number],
- [0, 0]
- ]);
- newBlock._string_content = "";
- this.tip.appendChild(newBlock);
- this.tip = newBlock;
- return newBlock;
- };
-
- // Parse a list marker and return data on the marker (type,
- // start, delimiter, bullet character, padding) or null.
- var parseListMarker = function(parser, container) {
- var rest = parser.currentLine.slice(parser.nextNonspace);
- var match;
- var nextc;
- var spacesStartCol;
- var spacesStartOffset;
- var data = {
- type: null,
- tight: true, // lists are tight by default
- bulletChar: null,
- start: null,
- delimiter: null,
- padding: null,
- markerOffset: parser.indent
- };
- if (parser.indent >= 4) {
- return null;
- }
- if ((match = rest.match(reBulletListMarker))) {
- data.type = "bullet";
- data.bulletChar = match[0][0];
- } else if (
- (match = rest.match(reOrderedListMarker)) &&
- (container.type !== "paragraph" || match[1] == 1)
- ) {
- data.type = "ordered";
- data.start = parseInt(match[1]);
- data.delimiter = match[2];
- } else {
- return null;
- }
- // make sure we have spaces after
- nextc = peek$1(parser.currentLine, parser.nextNonspace + match[0].length);
- if (!(nextc === -1 || nextc === C_TAB || nextc === C_SPACE)) {
- return null;
- }
-
- // if it interrupts paragraph, make sure first line isn't blank
- if (
- container.type === "paragraph" &&
- !parser.currentLine
- .slice(parser.nextNonspace + match[0].length)
- .match(reNonSpace)
- ) {
- return null;
- }
-
- // we've got a match! advance offset and calculate padding
- parser.advanceNextNonspace(); // to start of marker
- parser.advanceOffset(match[0].length, true); // to end of marker
- spacesStartCol = parser.column;
- spacesStartOffset = parser.offset;
- do {
- parser.advanceOffset(1, true);
- nextc = peek$1(parser.currentLine, parser.offset);
- } while (parser.column - spacesStartCol < 5 && isSpaceOrTab(nextc));
- var blank_item = peek$1(parser.currentLine, parser.offset) === -1;
- var spaces_after_marker = parser.column - spacesStartCol;
- if (spaces_after_marker >= 5 || spaces_after_marker < 1 || blank_item) {
- data.padding = match[0].length + 1;
- parser.column = spacesStartCol;
- parser.offset = spacesStartOffset;
- if (isSpaceOrTab(peek$1(parser.currentLine, parser.offset))) {
- parser.advanceOffset(1, true);
- }
- } else {
- data.padding = match[0].length + spaces_after_marker;
- }
- return data;
- };
-
- // Returns true if the two list items are of the same type,
- // with the same delimiter and bullet character. This is used
- // in agglomerating list items into lists.
- var listsMatch = function(list_data, item_data) {
- return (
- list_data.type === item_data.type &&
- list_data.delimiter === item_data.delimiter &&
- list_data.bulletChar === item_data.bulletChar
- );
- };
-
- // Finalize and close any unmatched blocks.
- var closeUnmatchedBlocks = function() {
- if (!this.allClosed) {
- // finalize any blocks not matched
- while (this.oldtip !== this.lastMatchedContainer) {
- var parent = this.oldtip._parent;
- this.finalize(this.oldtip, this.lineNumber - 1);
- this.oldtip = parent;
- }
- this.allClosed = true;
- }
- };
-
- // 'finalize' is run when the block is closed.
- // 'continue' is run to check whether the block is continuing
- // at a certain line and offset (e.g. whether a block quote
- // contains a `>`. It returns 0 for matched, 1 for not matched,
- // and 2 for "we've dealt with this line completely, go to next."
- var blocks = {
- document: {
- continue: function() {
- return 0;
- },
- finalize: function() {
- return;
- },
- canContain: function(t) {
- return t !== "item";
- },
- acceptsLines: false
- },
- list: {
- continue: function() {
- return 0;
- },
- finalize: function(parser, block) {
- var item = block._firstChild;
- while (item) {
- // check for non-final list item ending with blank line:
- if (endsWithBlankLine(item) && item._next) {
- block._listData.tight = false;
- break;
- }
- // recurse into children of list item, to see if there are
- // spaces between any of them:
- var subitem = item._firstChild;
- while (subitem) {
- if (
- endsWithBlankLine(subitem) &&
- (item._next || subitem._next)
- ) {
- block._listData.tight = false;
- break;
- }
- subitem = subitem._next;
- }
- item = item._next;
- }
- },
- canContain: function(t) {
- return t === "item";
- },
- acceptsLines: false
- },
- block_quote: {
- continue: function(parser) {
- var ln = parser.currentLine;
- if (
- !parser.indented &&
- peek$1(ln, parser.nextNonspace) === C_GREATERTHAN
- ) {
- parser.advanceNextNonspace();
- parser.advanceOffset(1, false);
- if (isSpaceOrTab(peek$1(ln, parser.offset))) {
- parser.advanceOffset(1, true);
- }
- } else {
- return 1;
- }
- return 0;
- },
- finalize: function() {
- return;
- },
- canContain: function(t) {
- return t !== "item";
- },
- acceptsLines: false
- },
- item: {
- continue: function(parser, container) {
- if (parser.blank) {
- if (container._firstChild == null) {
- // Blank line after empty list item
- return 1;
- } else {
- parser.advanceNextNonspace();
- }
- } else if (
- parser.indent >=
- container._listData.markerOffset + container._listData.padding
- ) {
- parser.advanceOffset(
- container._listData.markerOffset +
- container._listData.padding,
- true
- );
- } else {
- return 1;
- }
- return 0;
- },
- finalize: function() {
- return;
- },
- canContain: function(t) {
- return t !== "item";
- },
- acceptsLines: false
- },
- heading: {
- continue: function() {
- // a heading can never container > 1 line, so fail to match:
- return 1;
- },
- finalize: function() {
- return;
- },
- canContain: function() {
- return false;
- },
- acceptsLines: false
- },
- thematic_break: {
- continue: function() {
- // a thematic break can never container > 1 line, so fail to match:
- return 1;
- },
- finalize: function() {
- return;
- },
- canContain: function() {
- return false;
- },
- acceptsLines: false
- },
- code_block: {
- continue: function(parser, container) {
- var ln = parser.currentLine;
- var indent = parser.indent;
- if (container._isFenced) {
- // fenced
- var match =
- indent <= 3 &&
- ln.charAt(parser.nextNonspace) === container._fenceChar &&
- ln.slice(parser.nextNonspace).match(reClosingCodeFence);
- if (match && match[0].length >= container._fenceLength) {
- // closing fence - we're at end of line, so we can return
- parser.lastLineLength =
- parser.offset + indent + match[0].length;
- parser.finalize(container, parser.lineNumber);
- return 2;
- } else {
- // skip optional spaces of fence offset
- var i = container._fenceOffset;
- while (i > 0 && isSpaceOrTab(peek$1(ln, parser.offset))) {
- parser.advanceOffset(1, true);
- i--;
- }
- }
- } else {
- // indented
- if (indent >= CODE_INDENT) {
- parser.advanceOffset(CODE_INDENT, true);
- } else if (parser.blank) {
- parser.advanceNextNonspace();
- } else {
- return 1;
- }
- }
- return 0;
- },
- finalize: function(parser, block) {
- if (block._isFenced) {
- // fenced
- // first line becomes info string
- var content = block._string_content;
- var newlinePos = content.indexOf("\n");
- var firstLine = content.slice(0, newlinePos);
- var rest = content.slice(newlinePos + 1);
- block.info = unescapeString(firstLine.trim());
- block._literal = rest;
- } else {
- // indented
- block._literal = block._string_content.replace(
- /(\n *)+$/,
- "\n"
- );
- }
- block._string_content = null; // allow GC
- },
- canContain: function() {
- return false;
- },
- acceptsLines: true
- },
- html_block: {
- continue: function(parser, container) {
- return parser.blank &&
- (container._htmlBlockType === 6 ||
- container._htmlBlockType === 7)
- ? 1
- : 0;
- },
- finalize: function(parser, block) {
- block._literal = block._string_content.replace(/(\n *)+$/, "");
- block._string_content = null; // allow GC
- },
- canContain: function() {
- return false;
- },
- acceptsLines: true
- },
- paragraph: {
- continue: function(parser) {
- return parser.blank ? 1 : 0;
- },
- finalize: function(parser, block) {
- var pos;
- var hasReferenceDefs = false;
-
- // try parsing the beginning as link reference definitions:
- while (
- peek$1(block._string_content, 0) === C_OPEN_BRACKET$1 &&
- (pos = parser.inlineParser.parseReference(
- block._string_content,
- parser.refmap
- ))
- ) {
- block._string_content = block._string_content.slice(pos);
- hasReferenceDefs = true;
- }
- if (hasReferenceDefs && isBlank(block._string_content)) {
- block.unlink();
- }
- },
- canContain: function() {
- return false;
- },
- acceptsLines: true
- }
- };
-
- // block start functions. Return values:
- // 0 = no match
- // 1 = matched container, keep going
- // 2 = matched leaf, no more block starts
- var blockStarts = [
- // block quote
- function(parser) {
- if (
- !parser.indented &&
- peek$1(parser.currentLine, parser.nextNonspace) === C_GREATERTHAN
- ) {
- parser.advanceNextNonspace();
- parser.advanceOffset(1, false);
- // optional following space
- if (isSpaceOrTab(peek$1(parser.currentLine, parser.offset))) {
- parser.advanceOffset(1, true);
- }
- parser.closeUnmatchedBlocks();
- parser.addChild("block_quote", parser.nextNonspace);
- return 1;
- } else {
- return 0;
- }
- },
-
- // ATX heading
- function(parser) {
- var match;
- if (
- !parser.indented &&
- (match = parser.currentLine
- .slice(parser.nextNonspace)
- .match(reATXHeadingMarker))
- ) {
- parser.advanceNextNonspace();
- parser.advanceOffset(match[0].length, false);
- parser.closeUnmatchedBlocks();
- var container = parser.addChild("heading", parser.nextNonspace);
- container.level = match[0].trim().length; // number of #s
- // remove trailing ###s:
- container._string_content = parser.currentLine
- .slice(parser.offset)
- .replace(/^[ \t]*#+[ \t]*$/, "")
- .replace(/[ \t]+#+[ \t]*$/, "");
- parser.advanceOffset(parser.currentLine.length - parser.offset);
- return 2;
- } else {
- return 0;
- }
- },
-
- // Fenced code block
- function(parser) {
- var match;
- if (
- !parser.indented &&
- (match = parser.currentLine
- .slice(parser.nextNonspace)
- .match(reCodeFence))
- ) {
- var fenceLength = match[0].length;
- parser.closeUnmatchedBlocks();
- var container = parser.addChild("code_block", parser.nextNonspace);
- container._isFenced = true;
- container._fenceLength = fenceLength;
- container._fenceChar = match[0][0];
- container._fenceOffset = parser.indent;
- parser.advanceNextNonspace();
- parser.advanceOffset(fenceLength, false);
- return 2;
- } else {
- return 0;
- }
- },
-
- // HTML block
- function(parser, container) {
- if (
- !parser.indented &&
- peek$1(parser.currentLine, parser.nextNonspace) === C_LESSTHAN$1
- ) {
- var s = parser.currentLine.slice(parser.nextNonspace);
- var blockType;
-
- for (blockType = 1; blockType <= 7; blockType++) {
- if (
- reHtmlBlockOpen[blockType].test(s) &&
- (blockType < 7 || (container.type !== "paragraph" &&
- !(!parser.allClosed && !parser.blank &&
- parser.tip.type === "paragraph") // maybe lazy
- ))
- ) {
- parser.closeUnmatchedBlocks();
- // We don't adjust parser.offset;
- // spaces are part of the HTML block:
- var b = parser.addChild("html_block", parser.offset);
- b._htmlBlockType = blockType;
- return 2;
- }
- }
- }
-
- return 0;
- },
-
- // Setext heading
- function(parser, container) {
- var match;
- if (
- !parser.indented &&
- container.type === "paragraph" &&
- (match = parser.currentLine
- .slice(parser.nextNonspace)
- .match(reSetextHeadingLine))
- ) {
- parser.closeUnmatchedBlocks();
- // resolve reference link definitiosn
- var pos;
- while (
- peek$1(container._string_content, 0) === C_OPEN_BRACKET$1 &&
- (pos = parser.inlineParser.parseReference(
- container._string_content,
- parser.refmap
- ))
- ) {
- container._string_content = container._string_content.slice(
- pos
- );
- }
- if (container._string_content.length > 0) {
- var heading = new Node("heading", container.sourcepos);
- heading.level = match[0][0] === "=" ? 1 : 2;
- heading._string_content = container._string_content;
- container.insertAfter(heading);
- container.unlink();
- parser.tip = heading;
- parser.advanceOffset(
- parser.currentLine.length - parser.offset,
- false
- );
- return 2;
- } else {
- return 0;
- }
- } else {
- return 0;
- }
- },
-
- // thematic break
- function(parser) {
- if (
- !parser.indented &&
- reThematicBreak.test(parser.currentLine.slice(parser.nextNonspace))
- ) {
- parser.closeUnmatchedBlocks();
- parser.addChild("thematic_break", parser.nextNonspace);
- parser.advanceOffset(
- parser.currentLine.length - parser.offset,
- false
- );
- return 2;
- } else {
- return 0;
- }
- },
-
- // list item
- function(parser, container) {
- var data;
-
- if (
- (!parser.indented || container.type === "list") &&
- (data = parseListMarker(parser, container))
- ) {
- parser.closeUnmatchedBlocks();
-
- // add the list if needed
- if (
- parser.tip.type !== "list" ||
- !listsMatch(container._listData, data)
- ) {
- container = parser.addChild("list", parser.nextNonspace);
- container._listData = data;
- }
-
- // add the list item
- container = parser.addChild("item", parser.nextNonspace);
- container._listData = data;
- return 1;
- } else {
- return 0;
- }
- },
-
- // indented code block
- function(parser) {
- if (
- parser.indented &&
- parser.tip.type !== "paragraph" &&
- !parser.blank
- ) {
- // indented code
- parser.advanceOffset(CODE_INDENT, true);
- parser.closeUnmatchedBlocks();
- parser.addChild("code_block", parser.offset);
- return 2;
- } else {
- return 0;
- }
- }
- ];
-
- var advanceOffset = function(count, columns) {
- var currentLine = this.currentLine;
- var charsToTab, charsToAdvance;
- var c;
- while (count > 0 && (c = currentLine[this.offset])) {
- if (c === "\t") {
- charsToTab = 4 - (this.column % 4);
- if (columns) {
- this.partiallyConsumedTab = charsToTab > count;
- charsToAdvance = charsToTab > count ? count : charsToTab;
- this.column += charsToAdvance;
- this.offset += this.partiallyConsumedTab ? 0 : 1;
- count -= charsToAdvance;
- } else {
- this.partiallyConsumedTab = false;
- this.column += charsToTab;
- this.offset += 1;
- count -= 1;
- }
- } else {
- this.partiallyConsumedTab = false;
- this.offset += 1;
- this.column += 1; // assume ascii; block starts are ascii
- count -= 1;
- }
- }
- };
-
- var advanceNextNonspace = function() {
- this.offset = this.nextNonspace;
- this.column = this.nextNonspaceColumn;
- this.partiallyConsumedTab = false;
- };
-
- var findNextNonspace = function() {
- var currentLine = this.currentLine;
- var i = this.offset;
- var cols = this.column;
- var c;
-
- while ((c = currentLine.charAt(i)) !== "") {
- if (c === " ") {
- i++;
- cols++;
- } else if (c === "\t") {
- i++;
- cols += 4 - (cols % 4);
- } else {
- break;
- }
- }
- this.blank = c === "\n" || c === "\r" || c === "";
- this.nextNonspace = i;
- this.nextNonspaceColumn = cols;
- this.indent = this.nextNonspaceColumn - this.column;
- this.indented = this.indent >= CODE_INDENT;
- };
-
- // Analyze a line of text and update the document appropriately.
- // We parse markdown text by calling this on each line of input,
- // then finalizing the document.
- var incorporateLine = function(ln) {
- var all_matched = true;
- var t;
-
- var container = this.doc;
- this.oldtip = this.tip;
- this.offset = 0;
- this.column = 0;
- this.blank = false;
- this.partiallyConsumedTab = false;
- this.lineNumber += 1;
-
- // replace NUL characters for security
- if (ln.indexOf("\u0000") !== -1) {
- ln = ln.replace(/\0/g, "\uFFFD");
- }
-
- this.currentLine = ln;
-
- // For each containing block, try to parse the associated line start.
- // Bail out on failure: container will point to the last matching block.
- // Set all_matched to false if not all containers match.
- var lastChild;
- while ((lastChild = container._lastChild) && lastChild._open) {
- container = lastChild;
-
- this.findNextNonspace();
-
- switch (this.blocks[container.type].continue(this, container)) {
- case 0: // we've matched, keep going
- break;
- case 1: // we've failed to match a block
- all_matched = false;
- break;
- case 2: // we've hit end of line for fenced code close and can return
- return;
- default:
- throw "continue returned illegal value, must be 0, 1, or 2";
- }
- if (!all_matched) {
- container = container._parent; // back up to last matching block
- break;
- }
- }
-
- this.allClosed = container === this.oldtip;
- this.lastMatchedContainer = container;
-
- var matchedLeaf =
- container.type !== "paragraph" && blocks[container.type].acceptsLines;
- var starts = this.blockStarts;
- var startsLen = starts.length;
- // Unless last matched container is a code block, try new container starts,
- // adding children to the last matched container:
- while (!matchedLeaf) {
- this.findNextNonspace();
-
- // this is a little performance optimization:
- if (
- !this.indented &&
- !reMaybeSpecial.test(ln.slice(this.nextNonspace))
- ) {
- this.advanceNextNonspace();
- break;
- }
-
- var i = 0;
- while (i < startsLen) {
- var res = starts[i](this, container);
- if (res === 1) {
- container = this.tip;
- break;
- } else if (res === 2) {
- container = this.tip;
- matchedLeaf = true;
- break;
- } else {
- i++;
- }
- }
-
- if (i === startsLen) {
- // nothing matched
- this.advanceNextNonspace();
- break;
- }
- }
-
- // What remains at the offset is a text line. Add the text to the
- // appropriate container.
-
- // First check for a lazy paragraph continuation:
- if (!this.allClosed && !this.blank && this.tip.type === "paragraph") {
- // lazy paragraph continuation
- this.addLine();
- } else {
- // not a lazy continuation
-
- // finalize any blocks not matched
- this.closeUnmatchedBlocks();
- if (this.blank && container.lastChild) {
- container.lastChild._lastLineBlank = true;
- }
-
- t = container.type;
-
- // Block quote lines are never blank as they start with >
- // and we don't count blanks in fenced code for purposes of tight/loose
- // lists or breaking out of lists. We also don't set _lastLineBlank
- // on an empty list item, or if we just closed a fenced block.
- var lastLineBlank =
- this.blank &&
- !(
- t === "block_quote" ||
- (t === "code_block" && container._isFenced) ||
- (t === "item" &&
- !container._firstChild &&
- container.sourcepos[0][0] === this.lineNumber)
- );
-
- // propagate lastLineBlank up through parents:
- var cont = container;
- while (cont) {
- cont._lastLineBlank = lastLineBlank;
- cont = cont._parent;
- }
-
- if (this.blocks[t].acceptsLines) {
- this.addLine();
- // if HtmlBlock, check for end condition
- if (
- t === "html_block" &&
- container._htmlBlockType >= 1 &&
- container._htmlBlockType <= 5 &&
- reHtmlBlockClose[container._htmlBlockType].test(
- this.currentLine.slice(this.offset)
- )
- ) {
- this.lastLineLength = ln.length;
- this.finalize(container, this.lineNumber);
- }
- } else if (this.offset < ln.length && !this.blank) {
- // create paragraph container for line
- container = this.addChild("paragraph", this.offset);
- this.advanceNextNonspace();
- this.addLine();
- }
- }
- this.lastLineLength = ln.length;
- };
-
- // Finalize a block. Close it and do any necessary postprocessing,
- // e.g. creating string_content from strings, setting the 'tight'
- // or 'loose' status of a list, and parsing the beginnings
- // of paragraphs for reference definitions. Reset the tip to the
- // parent of the closed block.
- var finalize = function(block, lineNumber) {
- var above = block._parent;
- block._open = false;
- block.sourcepos[1] = [lineNumber, this.lastLineLength];
-
- this.blocks[block.type].finalize(this, block);
-
- this.tip = above;
- };
-
- // Walk through a block & children recursively, parsing string content
- // into inline content where appropriate.
- var processInlines = function(block) {
- var node, event, t;
- var walker = block.walker();
- this.inlineParser.refmap = this.refmap;
- this.inlineParser.options = this.options;
- while ((event = walker.next())) {
- node = event.node;
- t = node.type;
- if (!event.entering && (t === "paragraph" || t === "heading")) {
- this.inlineParser.parse(node);
- }
- }
- };
-
- var Document = function() {
- var doc = new Node("document", [
- [1, 1],
- [0, 0]
- ]);
- return doc;
- };
-
- // The main parsing function. Returns a parsed document AST.
- var parse = function(input) {
- this.doc = new Document();
- this.tip = this.doc;
- this.refmap = {};
- this.lineNumber = 0;
- this.lastLineLength = 0;
- this.offset = 0;
- this.column = 0;
- this.lastMatchedContainer = this.doc;
- this.currentLine = "";
- if (this.options.time) {
- console.time("preparing input");
- }
- var lines = input.split(reLineEnding);
- var len = lines.length;
- if (input.charCodeAt(input.length - 1) === C_NEWLINE$1) {
- // ignore last blank line created by final newline
- len -= 1;
- }
- if (this.options.time) {
- console.timeEnd("preparing input");
- }
- if (this.options.time) {
- console.time("block parsing");
- }
- for (var i = 0; i < len; i++) {
- this.incorporateLine(lines[i]);
- }
- while (this.tip) {
- this.finalize(this.tip, len);
- }
- if (this.options.time) {
- console.timeEnd("block parsing");
- }
- if (this.options.time) {
- console.time("inline parsing");
- }
- this.processInlines(this.doc);
- if (this.options.time) {
- console.timeEnd("inline parsing");
- }
- return this.doc;
- };
-
- // The Parser object.
- function Parser(options) {
- return {
- doc: new Document(),
- blocks: blocks,
- blockStarts: blockStarts,
- tip: this.doc,
- oldtip: this.doc,
- currentLine: "",
- lineNumber: 0,
- offset: 0,
- column: 0,
- nextNonspace: 0,
- nextNonspaceColumn: 0,
- indent: 0,
- indented: false,
- blank: false,
- partiallyConsumedTab: false,
- allClosed: true,
- lastMatchedContainer: this.doc,
- refmap: {},
- lastLineLength: 0,
- inlineParser: new InlineParser(options),
- findNextNonspace: findNextNonspace,
- advanceOffset: advanceOffset,
- advanceNextNonspace: advanceNextNonspace,
- addLine: addLine,
- addChild: addChild,
- incorporateLine: incorporateLine,
- finalize: finalize,
- processInlines: processInlines,
- closeUnmatchedBlocks: closeUnmatchedBlocks,
- parse: parse,
- options: options || {}
- };
- }
-
- function Renderer() {}
-
- /**
- * Walks the AST and calls member methods for each Node type.
- *
- * @param ast {Node} The root of the abstract syntax tree.
- */
- function render(ast) {
- var walker = ast.walker(),
- event,
- type;
-
- this.buffer = "";
- this.lastOut = "\n";
- this.heading_count = 0;
-
- while ((event = walker.next())) {
- type = event.node.type;
- if (this[type]) {
- this[type](event.node, event.entering);
- }
- }
- return this.buffer;
- }
-
- /**
- * Concatenate a literal string to the buffer.
- *
- * @param str {String} The string to concatenate.
- */
- function lit(str) {
- this.buffer += str;
- this.lastOut = str;
- }
-
- /**
- * Output a newline to the buffer.
- */
- function cr() {
- if (this.lastOut !== "\n") {
- this.lit("\n");
- }
- }
-
- /**
- * Concatenate a string to the buffer possibly escaping the content.
- *
- * Concrete renderer implementations should override this method.
- *
- * @param str {String} The string to concatenate.
- */
- function out(str) {
- this.lit(str);
- }
-
- /**
- * Escape a string for the target renderer.
- *
- * Abstract function that should be implemented by concrete
- * renderer implementations.
- *
- * @param str {String} The string to escape.
- */
- function esc(str) {
- return str;
- }
-
- Renderer.prototype.render = render;
- Renderer.prototype.out = out;
- Renderer.prototype.lit = lit;
- Renderer.prototype.cr = cr;
- Renderer.prototype.esc = esc;
-
- var reUnsafeProtocol = /^javascript:|vbscript:|file:|data:/i;
- var reSafeDataProtocol = /^data:image\/(?:png|gif|jpeg|webp)/i;
-
- var potentiallyUnsafe = function(url) {
- return reUnsafeProtocol.test(url) && !reSafeDataProtocol.test(url);
- };
-
- // Helper function to produce an HTML tag.
- function tag(name, attrs, selfclosing) {
- if (this.disableTags > 0) {
- return;
- }
- this.buffer += "<" + name;
- if (attrs && attrs.length > 0) {
- var i = 0;
- var attrib;
- while ((attrib = attrs[i]) !== undefined) {
- this.buffer += " " + attrib[0] + '="' + attrib[1] + '"';
- i++;
- }
- }
- if (selfclosing) {
- this.buffer += " /";
- }
- this.buffer += ">";
- this.lastOut = ">";
- }
-
- function HtmlRenderer(options) {
- options = options || {};
- // by default, soft breaks are rendered as newlines in HTML
- options.softbreak = options.softbreak || "\n";
- // set to "
" to make them hard breaks
- // set to " " if you want to ignore line wrapping in source
- this.esc = options.esc || escapeXml;
- // escape html with a custom function
- // else use escapeXml
-
- this.disableTags = 0;
- this.lastOut = "\n";
- this.options = options;
- }
-
- /* Node methods */
-
- function text$1(node) {
- this.out(node.literal);
- }
-
- function softbreak() {
- this.lit(this.options.softbreak);
- }
-
- function linebreak() {
- this.tag("br", [], true);
- this.cr();
- }
-
- function link(node, entering) {
- var attrs = this.attrs(node);
- if (entering) {
- if (!(this.options.safe && potentiallyUnsafe(node.destination))) {
- attrs.push(["href", this.esc(node.destination)]);
- }
- if (node.title) {
- attrs.push(["title", this.esc(node.title)]);
- }
- this.tag("a", attrs);
- } else {
- this.tag("/a");
- }
- }
-
- function image$1(node, entering) {
- if (entering) {
- if (this.disableTags === 0) {
- if (this.options.safe && potentiallyUnsafe(node.destination)) {
- this.lit('
');
- }
- }
- }
-
- function emph(node, entering) {
- this.tag(entering ? "em" : "/em");
- }
-
- function strong(node, entering) {
- this.tag(entering ? "strong" : "/strong");
- }
-
- function paragraph(node, entering) {
- var grandparent = node.parent.parent,
- attrs = this.attrs(node);
- if (grandparent !== null && grandparent.type === "list") {
- if (grandparent.listTight) {
- return;
- }
- }
- if (entering) {
- this.cr();
- this.tag("p", attrs);
- } else {
- this.tag("/p");
- this.cr();
- }
- }
-
- function heading(node, entering) {
- var tagname = "h" + node.level,
- attrs = this.attrs(node);
- if (entering) {
- if (node.level != 1) {
- attrs.push(["id", ":" + this.heading_count]);
- this.heading_count += 1;
- }
- this.cr();
- this.tag(tagname, attrs);
- } else {
- this.tag("/" + tagname);
- this.cr();
- }
- }
-
- function code(node) {
- this.tag("code");
- this.out(node.literal);
- this.tag("/code");
- }
-
- function code_block(node) {
- var info_words = node.info ? node.info.split(/\s+/) : [],
- attrs = this.attrs(node);
- if (info_words.length > 0 && info_words[0].length > 0) {
- attrs.push(["class", "language-" + this.esc(info_words[0])]);
- }
- this.cr();
- this.tag("pre");
- this.tag("code", attrs);
- this.out(node.literal);
- this.tag("/code");
- this.tag("/pre");
- this.cr();
- }
-
- function thematic_break(node) {
- var attrs = this.attrs(node);
- this.cr();
- this.tag("hr", attrs, true);
- this.cr();
- }
-
- function block_quote(node, entering) {
- var attrs = this.attrs(node);
- if (entering) {
- this.cr();
- this.tag("blockquote", attrs);
- this.cr();
- } else {
- this.cr();
- this.tag("/blockquote");
- this.cr();
- }
- }
-
- function list(node, entering) {
- var tagname = node.listType === "bullet" ? "ul" : "ol",
- attrs = this.attrs(node);
-
- if (entering) {
- var start = node.listStart;
- if (start !== null && start !== 1) {
- attrs.push(["start", start.toString()]);
- }
- this.cr();
- this.tag(tagname, attrs);
- this.cr();
- } else {
- this.cr();
- this.tag("/" + tagname);
- this.cr();
- }
- }
-
- function item(node, entering) {
- var attrs = this.attrs(node);
- if (entering) {
- this.tag("li", attrs);
- } else {
- this.tag("/li");
- this.cr();
- }
- }
-
- function html_inline(node) {
- if (this.options.safe) {
- this.lit("");
- } else {
- this.lit(node.literal);
- }
- }
-
- function html_block(node) {
- this.cr();
- if (this.options.safe) {
- this.lit("");
- } else {
- this.lit(node.literal);
- }
- this.cr();
- }
-
- function custom_inline(node, entering) {
- if (entering && node.onEnter) {
- this.lit(node.onEnter);
- } else if (!entering && node.onExit) {
- this.lit(node.onExit);
- }
- }
-
- function custom_block(node, entering) {
- this.cr();
- if (entering && node.onEnter) {
- this.lit(node.onEnter);
- } else if (!entering && node.onExit) {
- this.lit(node.onExit);
- }
- this.cr();
- }
-
- /* Helper methods */
-
- function out$1(s) {
- this.lit(this.esc(s));
- }
-
- function attrs(node) {
- var att = [];
- if (this.options.sourcepos) {
- var pos = node.sourcepos;
- if (pos) {
- att.push([
- "data-sourcepos",
- String(pos[0][0]) +
- ":" +
- String(pos[0][1]) +
- "-" +
- String(pos[1][0]) +
- ":" +
- String(pos[1][1])
- ]);
- }
- }
- return att;
- }
-
- // quick browser-compatible inheritance
- HtmlRenderer.prototype = Object.create(Renderer.prototype);
-
- HtmlRenderer.prototype.text = text$1;
- HtmlRenderer.prototype.html_inline = html_inline;
- HtmlRenderer.prototype.html_block = html_block;
- HtmlRenderer.prototype.softbreak = softbreak;
- HtmlRenderer.prototype.linebreak = linebreak;
- HtmlRenderer.prototype.link = link;
- HtmlRenderer.prototype.image = image$1;
- HtmlRenderer.prototype.emph = emph;
- HtmlRenderer.prototype.strong = strong;
- HtmlRenderer.prototype.paragraph = paragraph;
- HtmlRenderer.prototype.heading = heading;
- HtmlRenderer.prototype.code = code;
- HtmlRenderer.prototype.code_block = code_block;
- HtmlRenderer.prototype.thematic_break = thematic_break;
- HtmlRenderer.prototype.block_quote = block_quote;
- HtmlRenderer.prototype.list = list;
- HtmlRenderer.prototype.item = item;
- HtmlRenderer.prototype.custom_inline = custom_inline;
- HtmlRenderer.prototype.custom_block = custom_block;
-
- HtmlRenderer.prototype.esc = escapeXml;
-
- HtmlRenderer.prototype.out = out$1;
- HtmlRenderer.prototype.tag = tag;
- HtmlRenderer.prototype.attrs = attrs;
-
- var reXMLTag = /\<[^>]*\>/;
-
- function toTagName(s) {
- return s.replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase();
- }
-
- function XmlRenderer(options) {
- options = options || {};
-
- this.disableTags = 0;
- this.lastOut = "\n";
-
- this.indentLevel = 0;
- this.indent = " ";
-
- this.esc = options.esc || escapeXml;
- // escape html with a custom function
- // else use escapeXml
-
- this.options = options;
- }
-
- function render$1(ast) {
- this.buffer = "";
-
- var attrs;
- var tagname;
- var walker = ast.walker();
- var event, node, entering;
- var container;
- var selfClosing;
- var nodetype;
-
- var options = this.options;
-
- if (options.time) {
- console.time("rendering");
- }
-
- this.buffer += '\n';
- this.buffer += '\n';
-
- while ((event = walker.next())) {
- entering = event.entering;
- node = event.node;
- nodetype = node.type;
-
- container = node.isContainer;
-
- selfClosing =
- nodetype === "thematic_break" ||
- nodetype === "linebreak" ||
- nodetype === "softbreak";
-
- tagname = toTagName(nodetype);
-
- if (entering) {
- attrs = [];
-
- switch (nodetype) {
- case "document":
- attrs.push(["xmlns", "http://commonmark.org/xml/1.0"]);
- break;
- case "list":
- if (node.listType !== null) {
- attrs.push(["type", node.listType.toLowerCase()]);
- }
- if (node.listStart !== null) {
- attrs.push(["start", String(node.listStart)]);
- }
- if (node.listTight !== null) {
- attrs.push([
- "tight",
- node.listTight ? "true" : "false"
- ]);
- }
- var delim = node.listDelimiter;
- if (delim !== null) {
- var delimword = "";
- if (delim === ".") {
- delimword = "period";
- } else {
- delimword = "paren";
- }
- attrs.push(["delimiter", delimword]);
- }
- break;
- case "code_block":
- if (node.info) {
- attrs.push(["info", node.info]);
- }
- break;
- case "heading":
- attrs.push(["level", String(node.level)]);
- break;
- case "link":
- case "image":
- attrs.push(["destination", node.destination]);
- attrs.push(["title", node.title]);
- break;
- case "custom_inline":
- case "custom_block":
- attrs.push(["on_enter", node.onEnter]);
- attrs.push(["on_exit", node.onExit]);
- break;
- }
- if (options.sourcepos) {
- var pos = node.sourcepos;
- if (pos) {
- attrs.push([
- "sourcepos",
- String(pos[0][0]) +
- ":" +
- String(pos[0][1]) +
- "-" +
- String(pos[1][0]) +
- ":" +
- String(pos[1][1])
- ]);
- }
- }
-
- this.cr();
- this.out(this.tag(tagname, attrs, selfClosing));
- if (container) {
- this.indentLevel += 1;
- } else if (!container && !selfClosing) {
- var lit = node.literal;
- if (lit) {
- this.out(this.esc(lit));
- }
- this.out(this.tag("/" + tagname));
- }
- } else {
- this.indentLevel -= 1;
- this.cr();
- this.out(this.tag("/" + tagname));
- }
- }
- if (options.time) {
- console.timeEnd("rendering");
- }
- this.buffer += "\n";
- return this.buffer;
- }
-
- function out$2(s) {
- if (this.disableTags > 0) {
- this.buffer += s.replace(reXMLTag, "");
- } else {
- this.buffer += s;
- }
- this.lastOut = s;
- }
-
- function cr$1() {
- if (this.lastOut !== "\n") {
- this.buffer += "\n";
- this.lastOut = "\n";
- for (var i = this.indentLevel; i > 0; i--) {
- this.buffer += this.indent;
- }
- }
- }
-
- // Helper function to produce an XML tag.
- function tag$1(name, attrs, selfclosing) {
- var result = "<" + name;
- if (attrs && attrs.length > 0) {
- var i = 0;
- var attrib;
- while ((attrib = attrs[i]) !== undefined) {
- result += " " + attrib[0] + '="' + this.esc(attrib[1]) + '"';
- i++;
- }
- }
- if (selfclosing) {
- result += " /";
- }
- result += ">";
- return result;
- }
-
- // quick browser-compatible inheritance
- XmlRenderer.prototype = Object.create(Renderer.prototype);
-
- XmlRenderer.prototype.render = render$1;
- XmlRenderer.prototype.out = out$2;
- XmlRenderer.prototype.cr = cr$1;
- XmlRenderer.prototype.tag = tag$1;
- XmlRenderer.prototype.esc = escapeXml;
-
- exports.HtmlRenderer = HtmlRenderer;
- exports.Node = Node;
- exports.Parser = Parser;
- exports.Renderer = Renderer;
- exports.XmlRenderer = XmlRenderer;
-
- Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
diff --git a/lib/docs/ziglexer.js b/lib/docs/ziglexer.js
deleted file mode 100644
index fdd94bee9c..0000000000
--- a/lib/docs/ziglexer.js
+++ /dev/null
@@ -1,2147 +0,0 @@
-'use strict';
-
-const Tag = {
- whitespace: "whitespace",
- invalid: "invalid",
- identifier: "identifier",
- string_literal: "string_literal",
- multiline_string_literal_line: "multiline_string_literal_line",
- char_literal: "char_literal",
- eof: "eof",
- builtin: "builtin",
- number_literal: "number_literal",
- doc_comment: "doc_comment",
- container_doc_comment: "container_doc_comment",
- line_comment: "line_comment",
- invalid_periodasterisks: "invalid_periodasterisks",
- bang: "bang",
- pipe: "pipe",
- pipe_pipe: "pipe_pipe",
- pipe_equal: "pipe_equal",
- equal: "equal",
- equal_equal: "equal_equal",
- equal_angle_bracket_right: "equal_angle_bracket_right",
- bang_equal: "bang_equal",
- l_paren: "l_paren",
- r_paren: "r_paren",
- semicolon: "semicolon",
- percent: "percent",
- percent_equal: "percent_equal",
- l_brace: "l_brace",
- r_brace: "r_brace",
- l_bracket: "l_bracket",
- r_bracket: "r_bracket",
- period: "period",
- period_asterisk: "period_asterisk",
- ellipsis2: "ellipsis2",
- ellipsis3: "ellipsis3",
- caret: "caret",
- caret_equal: "caret_equal",
- plus: "plus",
- plus_plus: "plus_plus",
- plus_equal: "plus_equal",
- plus_percent: "plus_percent",
- plus_percent_equal: "plus_percent_equal",
- plus_pipe: "plus_pipe",
- plus_pipe_equal: "plus_pipe_equal",
- minus: "minus",
- minus_equal: "minus_equal",
- minus_percent: "minus_percent",
- minus_percent_equal: "minus_percent_equal",
- minus_pipe: "minus_pipe",
- minus_pipe_equal: "minus_pipe_equal",
- asterisk: "asterisk",
- asterisk_equal: "asterisk_equal",
- asterisk_asterisk: "asterisk_asterisk",
- asterisk_percent: "asterisk_percent",
- asterisk_percent_equal: "asterisk_percent_equal",
- asterisk_pipe: "asterisk_pipe",
- asterisk_pipe_equal: "asterisk_pipe_equal",
- arrow: "arrow",
- colon: "colon",
- slash: "slash",
- slash_equal: "slash_equal",
- comma: "comma",
- ampersand: "ampersand",
- ampersand_equal: "ampersand_equal",
- question_mark: "question_mark",
- angle_bracket_left: "angle_bracket_left",
- angle_bracket_left_equal: "angle_bracket_left_equal",
- angle_bracket_angle_bracket_left: "angle_bracket_angle_bracket_left",
- angle_bracket_angle_bracket_left_equal: "angle_bracket_angle_bracket_left_equal",
- angle_bracket_angle_bracket_left_pipe: "angle_bracket_angle_bracket_left_pipe",
- angle_bracket_angle_bracket_left_pipe_equal: "angle_bracket_angle_bracket_left_pipe_equal",
- angle_bracket_right: "angle_bracket_right",
- angle_bracket_right_equal: "angle_bracket_right_equal",
- angle_bracket_angle_bracket_right: "angle_bracket_angle_bracket_right",
- angle_bracket_angle_bracket_right_equal: "angle_bracket_angle_bracket_right_equal",
- tilde: "tilde",
- keyword_addrspace: "keyword_addrspace",
- keyword_align: "keyword_align",
- keyword_allowzero: "keyword_allowzero",
- keyword_and: "keyword_and",
- keyword_anyframe: "keyword_anyframe",
- keyword_anytype: "keyword_anytype",
- keyword_asm: "keyword_asm",
- keyword_async: "keyword_async",
- keyword_await: "keyword_await",
- keyword_break: "keyword_break",
- keyword_callconv: "keyword_callconv",
- keyword_catch: "keyword_catch",
- keyword_comptime: "keyword_comptime",
- keyword_const: "keyword_const",
- keyword_continue: "keyword_continue",
- keyword_defer: "keyword_defer",
- keyword_else: "keyword_else",
- keyword_enum: "keyword_enum",
- keyword_errdefer: "keyword_errdefer",
- keyword_error: "keyword_error",
- keyword_export: "keyword_export",
- keyword_extern: "keyword_extern",
- keyword_fn: "keyword_fn",
- keyword_for: "keyword_for",
- keyword_if: "keyword_if",
- keyword_inline: "keyword_inline",
- keyword_noalias: "keyword_noalias",
- keyword_noinline: "keyword_noinline",
- keyword_nosuspend: "keyword_nosuspend",
- keyword_opaque: "keyword_opaque",
- keyword_or: "keyword_or",
- keyword_orelse: "keyword_orelse",
- keyword_packed: "keyword_packed",
- keyword_pub: "keyword_pub",
- keyword_resume: "keyword_resume",
- keyword_return: "keyword_return",
- keyword_linksection: "keyword_linksection",
- keyword_struct: "keyword_struct",
- keyword_suspend: "keyword_suspend",
- keyword_switch: "keyword_switch",
- keyword_test: "keyword_test",
- keyword_threadlocal: "keyword_threadlocal",
- keyword_try: "keyword_try",
- keyword_union: "keyword_union",
- keyword_unreachable: "keyword_unreachable",
- keyword_usingnamespace: "keyword_usingnamespace",
- keyword_var: "keyword_var",
- keyword_volatile: "keyword_volatile",
- keyword_while: "keyword_while"
-}
-
-const Tok = {
- const: { src: "const", tag: Tag.keyword_const },
- var: { src: "var", tag: Tag.keyword_var },
- colon: { src: ":", tag: Tag.colon },
- eql: { src: "=", tag: Tag.equals },
- space: { src: " ", tag: Tag.whitespace },
- tab: { src: " ", tag: Tag.whitespace },
- enter: { src: "\n", tag: Tag.whitespace },
- semi: { src: ";", tag: Tag.semicolon },
- l_bracket: { src: "[", tag: Tag.l_bracket },
- r_bracket: { src: "]", tag: Tag.r_bracket },
- l_brace: { src: "{", tag: Tag.l_brace },
- r_brace: { src: "}", tag: Tag.r_brace },
- l_paren: { src: "(", tag: Tag.l_paren },
- r_paren: { src: ")", tag: Tag.r_paren },
- period: { src: ".", tag: Tag.period },
- comma: { src: ",", tag: Tag.comma },
- question_mark: { src: "?", tag: Tag.question_mark },
- asterisk: { src: "*", tag: Tag.asterisk },
- identifier: (name) => { return { src: name, tag: Tag.identifier } },
-};
-
-
-const State = {
- start: 0,
- identifier: 1,
- builtin: 2,
- string_literal: 3,
- string_literal_backslash: 4,
- multiline_string_literal_line: 5,
- char_literal: 6,
- char_literal_backslash: 7,
- char_literal_hex_escape: 8,
- char_literal_unicode_escape_saw_u: 9,
- char_literal_unicode_escape: 10,
- char_literal_unicode_invalid: 11,
- char_literal_unicode: 12,
- char_literal_end: 13,
- backslash: 14,
- equal: 15,
- bang: 16,
- pipe: 17,
- minus: 18,
- minus_percent: 19,
- minus_pipe: 20,
- asterisk: 21,
- asterisk_percent: 22,
- asterisk_pipe: 23,
- slash: 24,
- line_comment_start: 25,
- line_comment: 26,
- doc_comment_start: 27,
- doc_comment: 28,
- int: 29,
- int_exponent: 30,
- int_period: 31,
- float: 32,
- float_exponent: 33,
- ampersand: 34,
- caret: 35,
- percent: 36,
- plus: 37,
- plus_percent: 38,
- plus_pipe: 39,
- angle_bracket_left: 40,
- angle_bracket_angle_bracket_left: 41,
- angle_bracket_angle_bracket_left_pipe: 42,
- angle_bracket_right: 43,
- angle_bracket_angle_bracket_right: 44,
- period: 45,
- period_2: 46,
- period_asterisk: 47,
- saw_at_sign: 48,
- whitespace: 49,
-}
-
-const keywords = {
- "addrspace": Tag.keyword_addrspace,
- "align": Tag.keyword_align,
- "allowzero": Tag.keyword_allowzero,
- "and": Tag.keyword_and,
- "anyframe": Tag.keyword_anyframe,
- "anytype": Tag.keyword_anytype,
- "asm": Tag.keyword_asm,
- "async": Tag.keyword_async,
- "await": Tag.keyword_await,
- "break": Tag.keyword_break,
- "callconv": Tag.keyword_callconv,
- "catch": Tag.keyword_catch,
- "comptime": Tag.keyword_comptime,
- "const": Tag.keyword_const,
- "continue": Tag.keyword_continue,
- "defer": Tag.keyword_defer,
- "else": Tag.keyword_else,
- "enum": Tag.keyword_enum,
- "errdefer": Tag.keyword_errdefer,
- "error": Tag.keyword_error,
- "export": Tag.keyword_export,
- "extern": Tag.keyword_extern,
- "fn": Tag.keyword_fn,
- "for": Tag.keyword_for,
- "if": Tag.keyword_if,
- "inline": Tag.keyword_inline,
- "noalias": Tag.keyword_noalias,
- "noinline": Tag.keyword_noinline,
- "nosuspend": Tag.keyword_nosuspend,
- "opaque": Tag.keyword_opaque,
- "or": Tag.keyword_or,
- "orelse": Tag.keyword_orelse,
- "packed": Tag.keyword_packed,
- "pub": Tag.keyword_pub,
- "resume": Tag.keyword_resume,
- "return": Tag.keyword_return,
- "linksection": Tag.keyword_linksection,
- "struct": Tag.keyword_struct,
- "suspend": Tag.keyword_suspend,
- "switch": Tag.keyword_switch,
- "test": Tag.keyword_test,
- "threadlocal": Tag.keyword_threadlocal,
- "try": Tag.keyword_try,
- "union": Tag.keyword_union,
- "unreachable": Tag.keyword_unreachable,
- "usingnamespace": Tag.keyword_usingnamespace,
- "var": Tag.keyword_var,
- "volatile": Tag.keyword_volatile,
- "while": Tag.keyword_while,
-};
-
-function make_token(tag, start, end) {
- return {
- tag: tag,
- loc: {
- start: start,
- end: end
- }
- }
-
-}
-
-function dump_tokens(tokens, raw_source) {
-
- //TODO: this is not very fast
- function find_tag_key(tag) {
- for (const [key, value] of Object.entries(Tag)) {
- if (value == tag) return key;
- }
- }
-
- for (let i = 0; i < tokens.length; i++) {
- const tok = tokens[i];
- const z = raw_source.substring(tok.loc.start, tok.loc.end).toLowerCase();
- console.log(`${find_tag_key(tok.tag)} "${tok.tag}" '${z}'`)
- }
-}
-
-function* Tokenizer(raw_source) {
- let tokenizer = new InnerTokenizer(raw_source);
- while (true) {
- let t = tokenizer.next();
- if (t.tag == Tag.eof)
- return;
-
- t.src = raw_source.slice(t.loc.start, t.loc.end);
-
- yield t;
- }
-
-}
-function InnerTokenizer(raw_source) {
- this.index = 0;
- this.flag = false;
-
- this.seen_escape_digits = undefined;
- this.remaining_code_units = undefined;
-
- this.next = () => {
- let state = State.start;
-
- var result = {
- tag: -1,
- loc: {
- start: this.index,
- end: undefined,
- },
- src: undefined,
- };
-
- //having a while (true) loop seems like a bad idea the loop should never
- //take more iterations than twice the length of the source code
- const MAX_ITERATIONS = raw_source.length * 2;
- let iterations = 0;
-
- while (iterations <= MAX_ITERATIONS) {
-
- if (this.flag) {
- return make_token(Tag.eof, this.index - 2, this.index - 2);
- }
- iterations += 1; // avoid death loops
-
- var c = raw_source[this.index];
-
- if (c === undefined) {
- c = ' '; // push the last token
- this.flag = true;
- }
-
- switch (state) {
- case State.start:
- switch (c) {
- case 0: {
- if (this.index != raw_source.length) {
- result.tag = Tag.invalid;
- result.loc.start = this.index;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- result.loc.end = this.index;
- return result;
- }
- case ' ':
- case '\n':
- case '\t':
- case '\r': {
- state = State.whitespace;
- result.tag = Tag.whitespace;
- result.loc.start = this.index;
- break;
- }
- case '"': {
- state = State.string_literal;
- result.tag = Tag.string_literal;
- break;
- }
- case '\'': {
- state = State.char_literal;
- break;
- }
- case 'a':
- case 'b':
- case 'c':
- case 'd':
- case 'e':
- case 'f':
- case 'g':
- case 'h':
- case 'i':
- case 'j':
- case 'k':
- case 'l':
- case 'm':
- case 'n':
- case 'o':
- case 'p':
- case 'q':
- case 'r':
- case 's':
- case 't':
- case 'u':
- case 'v':
- case 'w':
- case 'x':
- case 'y':
- case 'z':
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'E':
- case 'F':
- case 'G':
- case 'H':
- case 'I':
- case 'J':
- case 'K':
- case 'L':
- case 'M':
- case 'N':
- case 'O':
- case 'P':
- case 'Q':
- case 'R':
- case 'S':
- case 'T':
- case 'U':
- case 'V':
- case 'W':
- case 'X':
- case 'Y':
- case 'Z':
- case '_': {
- state = State.identifier;
- result.tag = Tag.identifier;
- break;
- }
- case '@': {
- state = State.saw_at_sign;
- break;
- }
- case '=': {
- state = State.equal;
- break;
- }
- case '!': {
- state = State.bang;
- break;
- }
- case '|': {
- state = State.pipe;
- break;
- }
- case '(': {
- result.tag = Tag.l_paren;
- this.index += 1;
- result.loc.end = this.index;
-
- return result;
-
- }
- case ')': {
- result.tag = Tag.r_paren;
- this.index += 1; result.loc.end = this.index;
- return result;
-
- }
- case '[': {
- result.tag = Tag.l_bracket;
- this.index += 1; result.loc.end = this.index;
- return result;
-
- }
- case ']': {
- result.tag = Tag.r_bracket;
- this.index += 1; result.loc.end = this.index;
- return result;
-
- }
- case ';': {
- result.tag = Tag.semicolon;
- this.index += 1; result.loc.end = this.index;
- return result;
-
- }
- case ',': {
- result.tag = Tag.comma;
- this.index += 1; result.loc.end = this.index;
- return result;
-
- }
- case '?': {
- result.tag = Tag.question_mark;
- this.index += 1; result.loc.end = this.index;
- return result;
-
- }
- case ':': {
- result.tag = Tag.colon;
- this.index += 1; result.loc.end = this.index;
- return result;
-
- }
- case '%': {
- state = State.percent; break;
- }
- case '*': {
- state = State.asterisk; break;
- }
- case '+': {
- state = State.plus; break;
- }
- case '<': {
- state = State.angle_bracket_left; break;
- }
- case '>': {
- state = State.angle_bracket_right; break;
- }
- case '^': {
- state = State.caret; break;
- }
- case '\\': {
- state = State.backslash;
- result.tag = Tag.multiline_string_literal_line; break;
- }
- case '{': {
- result.tag = Tag.l_brace;
- this.index += 1; result.loc.end = this.index;
- return result;
-
- }
- case '}': {
- result.tag = Tag.r_brace;
- this.index += 1; result.loc.end = this.index;
- return result;
-
- }
- case '~': {
- result.tag = Tag.tilde;
- this.index += 1; result.loc.end = this.index;
- return result;
-
- }
- case '.': {
- state = State.period; break;
- }
- case '-': {
- state = State.minus; break;
- }
- case '/': {
- state = State.slash; break;
- }
- case '&': {
- state = State.ampersand; break;
- }
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- {
- state = State.int;
- result.tag = Tag.number_literal; break;
- }
- default: {
- result.tag = Tag.invalid;
- result.loc.end = this.index;
- this.index += 1;
- return result;
- }
- }
- break;
- case State.saw_at_sign:
- switch (c) {
- case '"': {
- result.tag = Tag.identifier;
- state = State.string_literal; break;
- }
- case 'a':
- case 'b':
- case 'c':
- case 'd':
- case 'e':
- case 'f':
- case 'g':
- case 'h':
- case 'i':
- case 'j':
- case 'k':
- case 'l':
- case 'm':
- case 'n':
- case 'o':
- case 'p':
- case 'q':
- case 'r':
- case 's':
- case 't':
- case 'u':
- case 'v':
- case 'w':
- case 'x':
- case 'y':
- case 'z':
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'E':
- case 'F':
- case 'G':
- case 'H':
- case 'I':
- case 'J':
- case 'K':
- case 'L':
- case 'M':
- case 'N':
- case 'O':
- case 'P':
- case 'Q':
- case 'R':
- case 'S':
- case 'T':
- case 'U':
- case 'V':
- case 'W':
- case 'X':
- case 'Y':
- case 'Z':
- case '_': {
- state = State.builtin;
- result.tag = Tag.builtin;
- break;
- }
- default: {
- result.tag = Tag.invalid;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.ampersand:
- switch (c) {
- case '=': {
- result.tag = Tag.ampersand_equal;
- this.index += 1; result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.ampersand; result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.asterisk: switch (c) {
- case '=': {
- result.tag = Tag.asterisk_equal;
- this.index += 1; result.loc.end = this.index;
- return result;
- }
- case '*': {
- result.tag = Tag.asterisk_asterisk;
- this.index += 1; result.loc.end = this.index;
- return result;
- }
- case '%': {
- state = State.asterisk_percent; break;
- }
- case '|': {
- state = State.asterisk_pipe; break;
- }
- default: {
- result.tag = Tag.asterisk;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.asterisk_percent:
- switch (c) {
- case '=': {
- result.tag = Tag.asterisk_percent_equal;
- this.index += 1; result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.asterisk_percent;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.asterisk_pipe:
- switch (c) {
- case '=': {
- result.tag = Tag.asterisk_pipe_equal;
- this.index += 1; result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.asterisk_pipe; result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.percent:
- switch (c) {
- case '=': {
- result.tag = Tag.percent_equal;
- this.index += 1; result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.percent; result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.plus:
- switch (c) {
- case '=': {
- result.tag = Tag.plus_equal;
- this.index += 1; result.loc.end = this.index;
- return result;
- }
- case '+': {
- result.tag = Tag.plus_plus;
- this.index += 1; result.loc.end = this.index;
- return result;
- }
- case '%': {
- state = State.plus_percent; break;
- }
- case '|': {
- state = State.plus_pipe; break;
- }
- default: {
- result.tag = Tag.plus; result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.plus_percent:
- switch (c) {
- case '=': {
- result.tag = Tag.plus_percent_equal;
- this.index += 1; result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.plus_percent; result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.plus_pipe:
- switch (c) {
- case '=': {
- result.tag = Tag.plus_pipe_equal;
- this.index += 1; result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.plus_pipe; result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.caret:
- switch (c) {
- case '=': {
- result.tag = Tag.caret_equal;
- this.index += 1; result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.caret; result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.identifier:
- switch (c) {
- case 'a':
- case 'b':
- case 'c':
- case 'd':
- case 'e':
- case 'f':
- case 'g':
- case 'h':
- case 'i':
- case 'j':
- case 'k':
- case 'l':
- case 'm':
- case 'n':
- case 'o':
- case 'p':
- case 'q':
- case 'r':
- case 's':
- case 't':
- case 'u':
- case 'v':
- case 'w':
- case 'x':
- case 'y':
- case 'z':
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'E':
- case 'F':
- case 'G':
- case 'H':
- case 'I':
- case 'J':
- case 'K':
- case 'L':
- case 'M':
- case 'N':
- case 'O':
- case 'P':
- case 'Q':
- case 'R':
- case 'S':
- case 'T':
- case 'U':
- case 'V':
- case 'W':
- case 'X':
- case 'Y':
- case 'Z':
- case '_':
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': break;
- default: {
- // if (Token.getKeyword(buffer[result.loc.start..this.index])) | tag | {
- const z = raw_source.substring(result.loc.start, this.index);
- if (z in keywords) {
- result.tag = keywords[z];
- }
- result.loc.end = this.index;
- return result;
- }
-
-
- }
- break;
- case State.builtin: switch (c) {
- case 'a':
- case 'b':
- case 'c':
- case 'd':
- case 'e':
- case 'f':
- case 'g':
- case 'h':
- case 'i':
- case 'j':
- case 'k':
- case 'l':
- case 'm':
- case 'n':
- case 'o':
- case 'p':
- case 'q':
- case 'r':
- case 's':
- case 't':
- case 'u':
- case 'v':
- case 'w':
- case 'x':
- case 'y':
- case 'z':
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'E':
- case 'F':
- case 'G':
- case 'H':
- case 'I':
- case 'J':
- case 'K':
- case 'L':
- case 'M':
- case 'N':
- case 'O':
- case 'P':
- case 'Q':
- case 'R':
- case 'S':
- case 'T':
- case 'U':
- case 'V':
- case 'W':
- case 'X':
- case 'Y':
- case 'Z':
- case '_':
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': break;
- default: result.loc.end = this.index;
- return result;
- }
- break;
- case State.backslash:
- switch (c) {
- case '\\': {
- state = State.multiline_string_literal_line;
- break;
- }
- default: {
- result.tag = Tag.invalid;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.string_literal:
- switch (c) {
- case '\\': {
- state = State.string_literal_backslash; break;
- }
- case '"': {
- this.index += 1;
- result.loc.end = this.index;
-
- return result;
- }
- case 0: {
- //TODO: PORT
- // if (this.index == buffer.len) {
- // result.tag = .invalid;
- // break;
- // } else {
- // checkLiteralCharacter();
- // }
- result.loc.end = this.index;
- return result;
- }
- case '\n': {
- result.tag = Tag.invalid;
- result.loc.end = this.index;
- return result;
- }
- //TODO: PORT
- //default: checkLiteralCharacter(),
- }
- break;
- case State.string_literal_backslash:
- switch (c) {
- case 0:
- case '\n': {
- result.tag = Tag.invalid;
- result.loc.end = this.index;
- return result;
- }
- default: {
- state = State.string_literal; break;
- }
- }
- break;
- case State.char_literal: switch (c) {
- case 0: {
- result.tag = Tag.invalid;
- result.loc.end = this.index;
- return result;
- }
- case '\\': {
- state = State.char_literal_backslash;
- break;
- }
- //TODO: PORT
- // '\'', 0x80...0xbf, 0xf8...0xff => {
- // result.tag = .invalid;
- // break;
- // },
- // 0xc0...0xdf => { // 110xxxxx
- // this.remaining_code_units = 1;
- // state = .char_literal_unicode;
- // },
- // 0xe0...0xef => { // 1110xxxx
- // this.remaining_code_units = 2;
- // state = .char_literal_unicode;
- // },
- // 0xf0...0xf7 => { // 11110xxx
- // this.remaining_code_units = 3;
- // state = .char_literal_unicode;
- // },
-
- // case 0x80:
- // case 0x81:
- // case 0x82:
- // case 0x83:
- // case 0x84:
- // case 0x85:
- // case 0x86:
- // case 0x87:
- // case 0x88:
- // case 0x89:
- // case 0x8a:
- // case 0x8b:
- // case 0x8c:
- // case 0x8d:
- // case 0x8e:
- // case 0x8f:
- // case 0x90:
- // case 0x91:
- // case 0x92:
- // case 0x93:
- // case 0x94:
- // case 0x95:
- // case 0x96:
- // case 0x97:
- // case 0x98:
- // case 0x99:
- // case 0x9a:
- // case 0x9b:
- // case 0x9c:
- // case 0x9d:
- // case 0x9e:
- // case 0x9f:
- // case 0xa0:
- // case 0xa1:
- // case 0xa2:
- // case 0xa3:
- // case 0xa4:
- // case 0xa5:
- // case 0xa6:
- // case 0xa7:
- // case 0xa8:
- // case 0xa9:
- // case 0xaa:
- // case 0xab:
- // case 0xac:
- // case 0xad:
- // case 0xae:
- // case 0xaf:
- // case 0xb0:
- // case 0xb1:
- // case 0xb2:
- // case 0xb3:
- // case 0xb4:
- // case 0xb5:
- // case 0xb6:
- // case 0xb7:
- // case 0xb8:
- // case 0xb9:
- // case 0xba:
- // case 0xbb:
- // case 0xbc:
- // case 0xbd:
- // case 0xbe:
- // case 0xbf:
- // case 0xf8:
- // case 0xf9:
- // case 0xfa:
- // case 0xfb:
- // case 0xfc:
- // case 0xfd:
- // case 0xfe:
- // case 0xff:
- // result.tag = .invalid;
- // break;
- // case 0xc0:
- // case 0xc1:
- // case 0xc2:
- // case 0xc3:
- // case 0xc4:
- // case 0xc5:
- // case 0xc6:
- // case 0xc7:
- // case 0xc8:
- // case 0xc9:
- // case 0xca:
- // case 0xcb:
- // case 0xcc:
- // case 0xcd:
- // case 0xce:
- // case 0xcf:
- // case 0xd0:
- // case 0xd1:
- // case 0xd2:
- // case 0xd3:
- // case 0xd4:
- // case 0xd5:
- // case 0xd6:
- // case 0xd7:
- // case 0xd8:
- // case 0xd9:
- // case 0xda:
- // case 0xdb:
- // case 0xdc:
- // case 0xdd:
- // case 0xde:
- // case 0xdf:
- // this.remaining_code_units = 1;
- // state = .char_literal_unicode;
- // case 0xe0:
- // case 0xe1:
- // case 0xe2:
- // case 0xe3:
- // case 0xe4:
- // case 0xe5:
- // case 0xe6:
- // case 0xe7:
- // case 0xe8:
- // case 0xe9:
- // case 0xea:
- // case 0xeb:
- // case 0xec:
- // case 0xed:
- // case 0xee:
- // case 0xef:
- // this.remaining_code_units = 2;
- // state = .char_literal_unicode;
- // case 0xf0:
- // case 0xf1:
- // case 0xf2:
- // case 0xf3:
- // case 0xf4:
- // case 0xf5:
- // case 0xf6:
- // case 0xf7:
- // this.remaining_code_units = 3;
- // state = .char_literal_unicode;
-
- case '\n': {
- result.tag = Tag.invalid;
- result.loc.end = this.index;
- return result;
- }
- default: {
- state = State.char_literal_end; break;
- }
- }
- break;
- case State.char_literal_backslash:
- switch (c) {
- case 0:
- case '\n': {
- result.tag = Tag.invalid;
- result.loc.end = this.index;
- return result;
- }
- case 'x': {
- state = State.char_literal_hex_escape;
- this.seen_escape_digits = 0; break;
- }
- case 'u': {
- state = State.char_literal_unicode_escape_saw_u; break;
- }
- default: {
- state = State.char_literal_end; break;
- }
- }
- break;
- case State.char_literal_hex_escape:
- switch (c) {
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- case 'a':
- case 'b':
- case 'c':
- case 'd':
- case 'e':
- case 'f':
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'E':
- case 'F': {
- this.seen_escape_digits += 1;
- if (this.seen_escape_digits == 2) {
- state = State.char_literal_end;
- } break;
- }
- default: {
- result.tag = Tag.invalid;
- esult.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.char_literal_unicode_escape_saw_u:
- switch (c) {
- case 0: {
- result.tag = Tag.invalid;
- result.loc.end = this.index;
- return result;
- }
- case '{': {
- state = State.char_literal_unicode_escape; break;
- }
- default: {
- result.tag = Tag.invalid;
- state = State.char_literal_unicode_invalid; break;
- }
- }
- break;
- case State.char_literal_unicode_escape:
- switch (c) {
- case 0: {
- result.tag = Tag.invalid;
- result.loc.end = this.index;
- return result;
- }
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- case 'a':
- case 'b':
- case 'c':
- case 'd':
- case 'e':
- case 'f':
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'E':
- case 'F': break;
- case '}': {
- state = State.char_literal_end; // too many/few digits handled later
- break;
- }
- default: {
- result.tag = Tag.invalid;
- state = State.char_literal_unicode_invalid; break;
- }
- }
- break;
- case State.char_literal_unicode_invalid:
- switch (c) {
- // Keep consuming characters until an obvious stopping point.
- // This consolidates e.g. `u{0ab1Q}` into a single invalid token
- // instead of creating the tokens `u{0ab1`, `Q`, `}`
- case 'a':
- case 'b':
- case 'c':
- case 'd':
- case 'e':
- case 'f':
- case 'g':
- case 'h':
- case 'i':
- case 'j':
- case 'k':
- case 'l':
- case 'm':
- case 'n':
- case 'o':
- case 'p':
- case 'q':
- case 'r':
- case 's':
- case 't':
- case 'u':
- case 'v':
- case 'w':
- case 'x':
- case 'y':
- case 'z':
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'E':
- case 'F':
- case 'G':
- case 'H':
- case 'I':
- case 'J':
- case 'K':
- case 'L':
- case 'M':
- case 'N':
- case 'O':
- case 'P':
- case 'Q':
- case 'R':
- case 'S':
- case 'T':
- case 'U':
- case 'V':
- case 'W':
- case 'X':
- case 'Y':
- case 'Z':
- case '}':
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': break;
- default: break;
- }
- break;
- case State.char_literal_end:
- switch (c) {
- case '\'': {
- result.tag = Tag.char_literal;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.invalid;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.char_literal_unicode:
- switch (c) {
- // 0x80...0xbf => {
- // this.remaining_code_units -= 1;
- // if (this.remaining_code_units == 0) {
- // state = .char_literal_end;
- // }
- // },
- default: {
- result.tag = Tag.invalid;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.multiline_string_literal_line:
- switch (c) {
- case 0:
- result.loc.end = this.index;
- return result;
- case '\n': {
-
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- case '\t': break;
- //TODO: PORT
- //default: checkLiteralCharacter(),
-
- }
- break;
- case State.bang:
- switch (c) {
- case '=': {
- result.tag = Tag.bang_equal;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.bang;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.pipe:
- switch (c) {
- case '=': {
- result.tag = Tag.pipe_equal;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- case '|': {
- result.tag = Tag.pipe_pipe;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.pipe;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.equal: switch (c) {
- case '=': {
- result.tag = Tag.equal_equal;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- case '>': {
- result.tag = Tag.equal_angle_bracket_right;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.equal;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.minus: switch (c) {
- case '>': {
- result.tag = Tag.arrow;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- case '=': {
- result.tag = Tag.minus_equal;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- case '%': {
- state = State.minus_percent; break;
- }
- case '|': {
- state = State.minus_pipe; break;
- }
- default: {
- result.tag = Tag.minus;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.minus_percent:
- switch (c) {
- case '=': {
- result.tag = Tag.minus_percent_equal;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.minus_percent;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.minus_pipe:
- switch (c) {
- case '=': {
- result.tag = Tag.minus_pipe_equal;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.minus_pipe;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.angle_bracket_left:
- switch (c) {
- case '<': {
- state = State.angle_bracket_angle_bracket_left; break;
- }
- case '=': {
- result.tag = Tag.angle_bracket_left_equal;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.angle_bracket_left;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.angle_bracket_angle_bracket_left:
- switch (c) {
- case '=': {
- result.tag = Tag.angle_bracket_angle_bracket_left_equal;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- case '|': {
- state = State.angle_bracket_angle_bracket_left_pipe;
- }
- default: {
- result.tag = Tag.angle_bracket_angle_bracket_left;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.angle_bracket_angle_bracket_left_pipe:
- switch (c) {
- case '=': {
- result.tag = Tag.angle_bracket_angle_bracket_left_pipe_equal;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.angle_bracket_angle_bracket_left_pipe;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.angle_bracket_right:
- switch (c) {
- case '>': {
- state = State.angle_bracket_angle_bracket_right; break;
- }
- case '=': {
- result.tag = Tag.angle_bracket_right_equal;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.angle_bracket_right;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.angle_bracket_angle_bracket_right:
- switch (c) {
- case '=': {
- result.tag = Tag.angle_bracket_angle_bracket_right_equal;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.angle_bracket_angle_bracket_right;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.period:
- switch (c) {
- case '.': {
- state = State.period_2; break;
- }
- case '*': {
- state = State.period_asterisk; break;
- }
- default: {
- result.tag = Tag.period;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.period_2:
- switch (c) {
- case '.': {
- result.tag = Tag.ellipsis3;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.ellipsis2;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.period_asterisk:
- switch (c) {
- case '*': {
- result.tag = Tag.invalid_periodasterisks;
- result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.period_asterisk;
- result.loc.end = this.index;
- return result;
- }
- }
- break;
- case State.slash:
- switch (c) {
- case '/': {
- state = State.line_comment_start;
- break;
- }
- case '=': {
- result.tag = Tag.slash_equal;
- this.index += 1;
- result.loc.end = this.index;
- return result;
- }
- default: {
- result.tag = Tag.slash;
- result.loc.end = this.index;
- return result;
- }
- } break;
- case State.line_comment_start:
- switch (c) {
- case 0: {
- if (this.index != raw_source.length) {
- result.tag = Tag.invalid;
- this.index += 1;
- }
- result.loc.end = this.index;
- return result;
- }
- case '/': {
- state = State.doc_comment_start; break;
- }
- case '!': {
- result.tag = Tag.container_doc_comment;
- state = State.doc_comment; break;
- }
- case '\n': {
- state = State.start;
- result.loc.start = this.index + 1; break;
- }
- case '\t':
- state = State.line_comment; break;
- default: {
- state = State.line_comment;
- //TODO: PORT
- //checkLiteralCharacter();
- break;
- }
- } break;
- case State.doc_comment_start:
- switch (c) {
- case '/': {
- state = State.line_comment; break;
- }
- case 0:
- case '\n':
- {
- result.tag = Tag.doc_comment;
- result.loc.end = this.index;
- return result;
- }
- case '\t': {
- state = State.doc_comment;
- result.tag = Tag.doc_comment; break;
- }
- default: {
- state = State.doc_comment;
- result.tag = Tag.doc_comment;
- //TODO: PORT
- //checkLiteralCharacter();
- break;
- }
- } break;
- case State.line_comment:
- switch (c) {
- case 0: {
- if (this.index != raw_source.length) {
- result.tag = Tag.invalid;
- this.index += 1;
- }
- result.loc.end = this.index;
- return result;
- }
- case '\n': {
- result.tag = Tag.line_comment;
- result.loc.end = this.index;
- return result;
- }
- case '\t': break;
- //TODO: PORT
- //default: checkLiteralCharacter(),
- } break;
- case State.doc_comment:
- switch (c) {
- case 0://
- case '\n':
- result.loc.end = this.index;
- return result;
- case '\t': break;
- //TODOL PORT
- // default: checkLiteralCharacter(),
- default:
- break;
- } break;
- case State.int:
- switch (c) {
- case '.':
- state = State.int_period;
- break;
- case '_':
- case 'a':
- case 'b':
- case 'c':
- case 'd':
- case 'f':
- case 'g':
- case 'h':
- case 'i':
- case 'j':
- case 'k':
- case 'l':
- case 'm':
- case 'n':
- case 'o':
- case 'q':
- case 'r':
- case 's':
- case 't':
- case 'u':
- case 'v':
- case 'w':
- case 'x':
- case 'y':
- case 'z':
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'F':
- case 'G':
- case 'H':
- case 'I':
- case 'J':
- case 'K':
- case 'L':
- case 'M':
- case 'N':
- case 'O':
- case 'Q':
- case 'R':
- case 'S':
- case 'T':
- case 'U':
- case 'V':
- case 'W':
- case 'X':
- case 'Y':
- case 'Z':
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- break;
- case 'e':
- case 'E':
- case 'p':
- case 'P':
- state = State.int_exponent;
- break;
- default: result.loc.end = this.index;
- return result;
- } break;
- case State.int_exponent:
- switch (c) {
- case '-':
- case '+':
- {
- ``
- state = State.float; break;
- }
- default: {
- this.index -= 1;
- state = State.int; break;
- }
- } break;
- case State.int_period: switch (c) {
- case '_':
- case 'a':
- case 'b':
- case 'c':
- case 'd':
- case 'f':
- case 'g':
- case 'h':
- case 'i':
- case 'j':
- case 'k':
- case 'l':
- case 'm':
- case 'n':
- case 'o':
- case 'q':
- case 'r':
- case 's':
- case 't':
- case 'u':
- case 'v':
- case 'w':
- case 'x':
- case 'y':
- case 'z':
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'F':
- case 'G':
- case 'H':
- case 'I':
- case 'J':
- case 'K':
- case 'L':
- case 'M':
- case 'N':
- case 'O':
- case 'Q':
- case 'R':
- case 'S':
- case 'T':
- case 'U':
- case 'V':
- case 'W':
- case 'X':
- case 'Y':
- case 'Z':
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': {
- state = State.float; break;
- }
- case 'e':
- case 'E':
- case 'p':
- case 'P':
- state = State.float_exponent; break;
- default: {
- this.index -= 1;
- result.loc.end = this.index;
- return result;
- }
- } break;
- case State.float:
- switch (c) {
- case '_':
- case 'a':
- case 'b':
- case 'c':
- case 'd':
- case 'f':
- case 'g':
- case 'h':
- case 'i':
- case 'j':
- case 'k':
- case 'l':
- case 'm':
- case 'n':
- case 'o':
- case 'q':
- case 'r':
- case 's':
- case 't':
- case 'u':
- case 'v':
- case 'w':
- case 'x':
- case 'y':
- case 'z':
- case 'A':
- case 'B':
- case 'C':
- case 'D':
- case 'F':
- case 'G':
- case 'H':
- case 'I':
- case 'J':
- case 'K':
- case 'L':
- case 'M':
- case 'N':
- case 'O':
- case 'Q':
- case 'R':
- case 'S':
- case 'T':
- case 'U':
- case 'V':
- case 'W':
- case 'X':
- case 'Y':
- case 'Z':
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- break;
-
- case 'e':
- case 'E':
- case 'p':
- case 'P':
- state = State.float_exponent; break;
- default: result.loc.end = this.index;
- return result;
- } break;
- case State.float_exponent:
- switch (c) {
- case '-':
- case '+':
- state = State.float; break;
- default: {
- this.index -= 1;
- state = State.float; break;
- }
- }
- break;
-
- case State.whitespace:
- switch(c) {
- case ' ':
- case '\n':
- case '\t':
- case '\r': {
- break;
- }
- default: {
- result.loc.end = this.index;
- return result;
- }
- }
- }
- this.index += 1;
- }
-
- //TODO: PORT
- // if (result.tag == Tag.eof) {
- // if (pending_invalid_token) | token | {
- // pending_invalid_token = null;
- // return token;
- // }
- // result.loc.start = sindex;
- // }
-
- result.loc.end = this.index;
- return result;
-
- }
-}
-
-
-const builtin_types = [
- "f16", "f32", "f64", "f80", "f128",
- "c_longdouble", "c_short", "c_ushort", "c_int", "c_uint",
- "c_long", "c_ulong", "c_longlong", "c_ulonglong", "c_char",
- "anyopaque", "void", "bool", "isize", "usize",
- "noreturn", "type", "anyerror", "comptime_int", "comptime_float",
-];
-
-function isSimpleType(typeName) {
- return builtin_types.includes(typeName) || isIntType(typeName);
-}
-
-function isIntType(typeName) {
- if (typeName[0] != 'u' && typeName[0] != 'i') return false;
- let i = 1;
- if (i == typeName.length) return false;
- for (; i < typeName.length; i += 1) {
- if (typeName[i] < '0' || typeName[i] > '9') return false;
- }
- return true;
-}
-
-function isSpecialIndentifier(identifier) {
- return ["null", "true", "false", ,"undefined"].includes(identifier);
-}
-
-//const fs = require('fs');
-//const src = fs.readFileSync("../std/c.zig", 'utf8');
-//console.log(generate_html_for_src(src));
-
-
-// gist for zig_lexer_test code: https://gist.github.com/Myvar/2684ba4fb86b975274629d6f21eddc7b
-// // Just for testing not to commit in pr
-// var isNode = new Function("try {return this===global;}catch(e){return false;}");
-// if (isNode()) {
-
-
-// //const s = "const std = @import(\"std\");";
-// //const toksa = tokenize_zig_source(s);
-// //dump_tokens(toksa, s);
-// //console.log(JSON.stringify(toksa));
-
-// const fs = require('fs');
-
-// function testFile(fileName) {
-// //console.log(fileName);
-// var exec = require('child_process').execFileSync;
-// var passed = true;
-// const zig_data = exec('./zig_lexer_test', [fileName]);
-// const data = fs.readFileSync(fileName, 'utf8');
-
-// const toks = tokenize_zig_source(data);
-// const a_json = toks;
-
-// // dump_tokens(a_json, data);
-// // return;
-
-// const b_json = JSON.parse(zig_data.toString());
-
-// if (a_json.length !== b_json.length) {
-// console.log("FAILED a and be is not the same length");
-// passed = false;
-// //return;
-// }
-
-// let len = a_json.length;
-// if (len >= b_json.length) len = b_json.length;
-
-// for (let i = 0; i < len; i++) {
-// const a = a_json[i];
-// const b = b_json[i];
-
-// // console.log(a.tag + " == " + b.tag);
-
-// if (a.tag !== b.tag) {
-
-// // console.log("Around here:");
-// // console.log(
-// // data.substring(b_json[i - 2].loc.start, b_json[i - 2].loc.end),
-// // data.substring(b_json[i - 1].loc.start, b_json[i - 1].loc.end),
-// // data.substring(b_json[i].loc.start, b_json[i].loc.end),
-// // data.substring(b_json[i + 1].loc.start, b_json[i + 1].loc.end),
-// // data.substring(b_json[i + 2].loc.start, b_json[i + 2].loc.end),
-// // );
-
-// console.log("TAG: a != b");
-// console.log("js", a.tag);
-// console.log("zig", b.tag);
-// passed = false;
-// return;
-// }
-
-// if (a.tag !== Tag.eof && a.loc.start !== b.loc.start) {
-// console.log("START: a != b");
-
-// console.log("js", "\"" + data.substring(a_json[i ].loc.start, a_json[i].loc.end) + "\"");
-// console.log("zig", "\"" + data.substring(b_json[i ].loc.start, b_json[i].loc.end) + "\"");
-
-
-// passed = false;
-// return;
-// }
-
-// // if (a.tag !== Tag.eof && a.loc.end !== b.loc.end) {
-// // console.log("END: a != b");
-// // // console.log("Around here:");
-// // // console.log(
-// // // // data.substring(b_json[i - 2].loc.start, b_json[i - 2].loc.end),
-// // // // data.substring(b_json[i - 1].loc.start, b_json[i - 1].loc.end),
-// // // data.substring(b_json[i ].loc.start, b_json[i].loc.end),
-// // // // data.substring(b_json[i + 1].loc.start, b_json[i + 1].loc.end),
-// // // // data.substring(b_json[i + 2].loc.start, b_json[i + 2].loc.end),
-// // // );
-// // console.log("js", "\"" + data.substring(a_json[i ].loc.start, a_json[i].loc.end) + "\"");
-// // console.log("zig", "\"" + data.substring(b_json[i ].loc.start, b_json[i].loc.end) + "\"");
-// // passed = false;
-// // return;
-// // }
-// }
-// return passed;
-// }
-// var path = require('path');
-// function fromDir(startPath, filter) {
-// if (!fs.existsSync(startPath)) {
-// console.log("no dir ", startPath);
-// return;
-// }
-// var files = fs.readdirSync(startPath);
-// for (var i = 0; i < files.length; i++) {
-// var filename = path.join(startPath, files[i]);
-// var stat = fs.lstatSync(filename);
-// if (stat.isDirectory()) {
-// fromDir(filename, filter); //recurse
-// } else if (filename.endsWith(filter)) {
-// try {
-// console.log('-- TESTING: ', filename);
-// console.log("\t\t", testFile(filename));
-// }
-// catch {
-// }
-// };
-// };
-// };
-// fromDir('../std', '.zig');
-// //console.log(testFile("/home/myvar/code/zig/lib/std/fmt/errol.zig"));
-// //console.log(testFile("test.zig"));
-// }
\ No newline at end of file