Commit 94daf87335
Changed files (2)
lib
lib/docs/commonmark.js
@@ -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 = "๏ฌ";
- var fflig = "๏ฌ";
- var ffllig = "๏ฌ";
- var Ffr = "๐";
- var ffr = "๐ฃ";
- var filig = "๏ฌ";
- var FilledSmallSquare = "โผ";
- var FilledVerySmallSquare = "โช";
- var fjlig = "fj";
- var flat = "โญ";
- var fllig = "๏ฌ";
- 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 = "ฤฒ";
- var ijlig = "ฤณ";
- 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 = "ล";
- 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 "&#x" + 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 = "<![A-Z]+" + "\\s+[^>]*>";
- var CDATA = "<!\\[CDATA\\[[\\s\\S]*?\\]\\]>";
- 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,
- /^<!--/,
- /^<[?]/,
- /^<![A-Z]/,
- /^<!\[CDATA\[/,
- /^<[/]?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[123456]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\s|[/]?[>]|$)/i,
- new RegExp("^(?:" + OPENTAG + "|" + CLOSETAG + ")\\s*$", "i")
- ];
-
- var reHtmlBlockClose = [
- /./, // dummy for 0
- /<\/(?:script|pre|textarea|style)>/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 "<br />" 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('<img src="" alt="');
- } else {
- this.lit('<img src="' + this.esc(node.destination) + '" alt="');
- }
- }
- this.disableTags += 1;
- } else {
- this.disableTags -= 1;
- if (this.disableTags === 0) {
- if (node.title) {
- this.lit('" title="' + this.esc(node.title));
- }
- 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("<!-- raw HTML omitted -->");
- } else {
- this.lit(node.literal);
- }
- }
-
- function html_block(node) {
- this.cr();
- if (this.options.safe) {
- this.lit("<!-- raw HTML omitted -->");
- } 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 += '<?xml version="1.0" encoding="UTF-8"?>\n';
- this.buffer += '<!DOCTYPE document SYSTEM "CommonMark.dtd">\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 });
-
-})));
lib/docs/ziglexer.js
@@ -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