diff plugins/links/links.js @ 1166:a388a6193131

plugin links: rewrite in Javascript
author David Demelier <markand@malikania.fr>
date Sun, 06 Mar 2022 10:33:50 +0100
parents
children 0b6d53577983
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/links/links.js	Sun Mar 06 10:33:50 2022 +0100
@@ -0,0 +1,2331 @@
+/*
+ * links.js -- retrieve website titles
+ *
+ * Copyright (c) 2013-2022 David Demelier <markand@malikania.fr>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+// Plugin information.
+info = {
+	author: "David Demelier <markand@malikania.fr>",
+	license: "ISC",
+	summary: "Retrieve website titles",
+	version: "@irccd_VERSION@"
+};
+
+// Modules.
+const Plugin = Irccd.Plugin;
+const Http = Irccd.Http;
+const Util = Irccd.Util;
+
+// HTML entities (from w3c).
+const entities = {
+	"&Aacute;": "\u00C1",
+	"&Aacute": "\u00C1",
+	"&aacute;": "\u00E1",
+	"&aacute": "\u00E1",
+	"&Abreve;": "\u0102",
+	"&abreve;": "\u0103",
+	"&ac;": "\u223E",
+	"&acd;": "\u223F",
+	"&acE;": "\u223E\u0333",
+	"&Acirc;": "\u00C2",
+	"&Acirc": "\u00C2",
+	"&acirc;": "\u00E2",
+	"&acirc": "\u00E2",
+	"&acute;": "\u00B4",
+	"&acute": "\u00B4",
+	"&Acy;": "\u0410",
+	"&acy;": "\u0430",
+	"&AElig;": "\u00C6",
+	"&AElig": "\u00C6",
+	"&aelig;": "\u00E6",
+	"&aelig": "\u00E6",
+	"&af;": "\u2061",
+	"&Afr;": "\uD835\uDD04",
+	"&afr;": "\uD835\uDD1E",
+	"&Agrave;": "\u00C0",
+	"&Agrave": "\u00C0",
+	"&agrave;": "\u00E0",
+	"&agrave": "\u00E0",
+	"&alefsym;": "\u2135",
+	"&aleph;": "\u2135",
+	"&Alpha;": "\u0391",
+	"&alpha;": "\u03B1",
+	"&Amacr;": "\u0100",
+	"&amacr;": "\u0101",
+	"&amalg;": "\u2A3F",
+	"&amp;": "\u0026",
+	"&amp": "\u0026",
+	"&AMP;": "\u0026",
+	"&AMP": "\u0026",
+	"&andand;": "\u2A55",
+	"&And;": "\u2A53",
+	"&and;": "\u2227",
+	"&andd;": "\u2A5C",
+	"&andslope;": "\u2A58",
+	"&andv;": "\u2A5A",
+	"&ang;": "\u2220",
+	"&ange;": "\u29A4",
+	"&angle;": "\u2220",
+	"&angmsdaa;": "\u29A8",
+	"&angmsdab;": "\u29A9",
+	"&angmsdac;": "\u29AA",
+	"&angmsdad;": "\u29AB",
+	"&angmsdae;": "\u29AC",
+	"&angmsdaf;": "\u29AD",
+	"&angmsdag;": "\u29AE",
+	"&angmsdah;": "\u29AF",
+	"&angmsd;": "\u2221",
+	"&angrt;": "\u221F",
+	"&angrtvb;": "\u22BE",
+	"&angrtvbd;": "\u299D",
+	"&angsph;": "\u2222",
+	"&angst;": "\u00C5",
+	"&angzarr;": "\u237C",
+	"&Aogon;": "\u0104",
+	"&aogon;": "\u0105",
+	"&Aopf;": "\uD835\uDD38",
+	"&aopf;": "\uD835\uDD52",
+	"&apacir;": "\u2A6F",
+	"&ap;": "\u2248",
+	"&apE;": "\u2A70",
+	"&ape;": "\u224A",
+	"&apid;": "\u224B",
+	"&apos;": "\u0027",
+	"&ApplyFunction;": "\u2061",
+	"&approx;": "\u2248",
+	"&approxeq;": "\u224A",
+	"&Aring;": "\u00C5",
+	"&Aring": "\u00C5",
+	"&aring;": "\u00E5",
+	"&aring": "\u00E5",
+	"&Ascr;": "\uD835\uDC9C",
+	"&ascr;": "\uD835\uDCB6",
+	"&Assign;": "\u2254",
+	"&ast;": "\u002A",
+	"&asymp;": "\u2248",
+	"&asympeq;": "\u224D",
+	"&Atilde;": "\u00C3",
+	"&Atilde": "\u00C3",
+	"&atilde;": "\u00E3",
+	"&atilde": "\u00E3",
+	"&Auml;": "\u00C4",
+	"&Auml": "\u00C4",
+	"&auml;": "\u00E4",
+	"&auml": "\u00E4",
+	"&awconint;": "\u2233",
+	"&awint;": "\u2A11",
+	"&backcong;": "\u224C",
+	"&backepsilon;": "\u03F6",
+	"&backprime;": "\u2035",
+	"&backsim;": "\u223D",
+	"&backsimeq;": "\u22CD",
+	"&Backslash;": "\u2216",
+	"&Barv;": "\u2AE7",
+	"&barvee;": "\u22BD",
+	"&barwed;": "\u2305",
+	"&Barwed;": "\u2306",
+	"&barwedge;": "\u2305",
+	"&bbrk;": "\u23B5",
+	"&bbrktbrk;": "\u23B6",
+	"&bcong;": "\u224C",
+	"&Bcy;": "\u0411",
+	"&bcy;": "\u0431",
+	"&bdquo;": "\u201E",
+	"&becaus;": "\u2235",
+	"&because;": "\u2235",
+	"&Because;": "\u2235",
+	"&bemptyv;": "\u29B0",
+	"&bepsi;": "\u03F6",
+	"&bernou;": "\u212C",
+	"&Bernoullis;": "\u212C",
+	"&Beta;": "\u0392",
+	"&beta;": "\u03B2",
+	"&beth;": "\u2136",
+	"&between;": "\u226C",
+	"&Bfr;": "\uD835\uDD05",
+	"&bfr;": "\uD835\uDD1F",
+	"&bigcap;": "\u22C2",
+	"&bigcirc;": "\u25EF",
+	"&bigcup;": "\u22C3",
+	"&bigodot;": "\u2A00",
+	"&bigoplus;": "\u2A01",
+	"&bigotimes;": "\u2A02",
+	"&bigsqcup;": "\u2A06",
+	"&bigstar;": "\u2605",
+	"&bigtriangledown;": "\u25BD",
+	"&bigtriangleup;": "\u25B3",
+	"&biguplus;": "\u2A04",
+	"&bigvee;": "\u22C1",
+	"&bigwedge;": "\u22C0",
+	"&bkarow;": "\u290D",
+	"&blacklozenge;": "\u29EB",
+	"&blacksquare;": "\u25AA",
+	"&blacktriangle;": "\u25B4",
+	"&blacktriangledown;": "\u25BE",
+	"&blacktriangleleft;": "\u25C2",
+	"&blacktriangleright;": "\u25B8",
+	"&blank;": "\u2423",
+	"&blk12;": "\u2592",
+	"&blk14;": "\u2591",
+	"&blk34;": "\u2593",
+	"&block;": "\u2588",
+	"&bne;": "\u003D\u20E5",
+	"&bnequiv;": "\u2261\u20E5",
+	"&bNot;": "\u2AED",
+	"&bnot;": "\u2310",
+	"&Bopf;": "\uD835\uDD39",
+	"&bopf;": "\uD835\uDD53",
+	"&bot;": "\u22A5",
+	"&bottom;": "\u22A5",
+	"&bowtie;": "\u22C8",
+	"&boxbox;": "\u29C9",
+	"&boxdl;": "\u2510",
+	"&boxdL;": "\u2555",
+	"&boxDl;": "\u2556",
+	"&boxDL;": "\u2557",
+	"&boxdr;": "\u250C",
+	"&boxdR;": "\u2552",
+	"&boxDr;": "\u2553",
+	"&boxDR;": "\u2554",
+	"&boxh;": "\u2500",
+	"&boxH;": "\u2550",
+	"&boxhd;": "\u252C",
+	"&boxHd;": "\u2564",
+	"&boxhD;": "\u2565",
+	"&boxHD;": "\u2566",
+	"&boxhu;": "\u2534",
+	"&boxHu;": "\u2567",
+	"&boxhU;": "\u2568",
+	"&boxHU;": "\u2569",
+	"&boxminus;": "\u229F",
+	"&boxplus;": "\u229E",
+	"&boxtimes;": "\u22A0",
+	"&boxul;": "\u2518",
+	"&boxuL;": "\u255B",
+	"&boxUl;": "\u255C",
+	"&boxUL;": "\u255D",
+	"&boxur;": "\u2514",
+	"&boxuR;": "\u2558",
+	"&boxUr;": "\u2559",
+	"&boxUR;": "\u255A",
+	"&boxv;": "\u2502",
+	"&boxV;": "\u2551",
+	"&boxvh;": "\u253C",
+	"&boxvH;": "\u256A",
+	"&boxVh;": "\u256B",
+	"&boxVH;": "\u256C",
+	"&boxvl;": "\u2524",
+	"&boxvL;": "\u2561",
+	"&boxVl;": "\u2562",
+	"&boxVL;": "\u2563",
+	"&boxvr;": "\u251C",
+	"&boxvR;": "\u255E",
+	"&boxVr;": "\u255F",
+	"&boxVR;": "\u2560",
+	"&bprime;": "\u2035",
+	"&breve;": "\u02D8",
+	"&Breve;": "\u02D8",
+	"&brvbar;": "\u00A6",
+	"&brvbar": "\u00A6",
+	"&bscr;": "\uD835\uDCB7",
+	"&Bscr;": "\u212C",
+	"&bsemi;": "\u204F",
+	"&bsim;": "\u223D",
+	"&bsime;": "\u22CD",
+	"&bsolb;": "\u29C5",
+	"&bsol;": "\u005C",
+	"&bsolhsub;": "\u27C8",
+	"&bull;": "\u2022",
+	"&bullet;": "\u2022",
+	"&bump;": "\u224E",
+	"&bumpE;": "\u2AAE",
+	"&bumpe;": "\u224F",
+	"&Bumpeq;": "\u224E",
+	"&bumpeq;": "\u224F",
+	"&Cacute;": "\u0106",
+	"&cacute;": "\u0107",
+	"&capand;": "\u2A44",
+	"&capbrcup;": "\u2A49",
+	"&capcap;": "\u2A4B",
+	"&cap;": "\u2229",
+	"&Cap;": "\u22D2",
+	"&capcup;": "\u2A47",
+	"&capdot;": "\u2A40",
+	"&CapitalDifferentialD;": "\u2145",
+	"&caps;": "\u2229\uFE00",
+	"&caret;": "\u2041",
+	"&caron;": "\u02C7",
+	"&Cayleys;": "\u212D",
+	"&ccaps;": "\u2A4D",
+	"&Ccaron;": "\u010C",
+	"&ccaron;": "\u010D",
+	"&Ccedil;": "\u00C7",
+	"&Ccedil": "\u00C7",
+	"&ccedil;": "\u00E7",
+	"&ccedil": "\u00E7",
+	"&Ccirc;": "\u0108",
+	"&ccirc;": "\u0109",
+	"&Cconint;": "\u2230",
+	"&ccups;": "\u2A4C",
+	"&ccupssm;": "\u2A50",
+	"&Cdot;": "\u010A",
+	"&cdot;": "\u010B",
+	"&cedil;": "\u00B8",
+	"&cedil": "\u00B8",
+	"&Cedilla;": "\u00B8",
+	"&cemptyv;": "\u29B2",
+	"&cent;": "\u00A2",
+	"&cent": "\u00A2",
+	"&centerdot;": "\u00B7",
+	"&CenterDot;": "\u00B7",
+	"&cfr;": "\uD835\uDD20",
+	"&Cfr;": "\u212D",
+	"&CHcy;": "\u0427",
+	"&chcy;": "\u0447",
+	"&check;": "\u2713",
+	"&checkmark;": "\u2713",
+	"&Chi;": "\u03A7",
+	"&chi;": "\u03C7",
+	"&circ;": "\u02C6",
+	"&circeq;": "\u2257",
+	"&circlearrowleft;": "\u21BA",
+	"&circlearrowright;": "\u21BB",
+	"&circledast;": "\u229B",
+	"&circledcirc;": "\u229A",
+	"&circleddash;": "\u229D",
+	"&CircleDot;": "\u2299",
+	"&circledR;": "\u00AE",
+	"&circledS;": "\u24C8",
+	"&CircleMinus;": "\u2296",
+	"&CirclePlus;": "\u2295",
+	"&CircleTimes;": "\u2297",
+	"&cir;": "\u25CB",
+	"&cirE;": "\u29C3",
+	"&cire;": "\u2257",
+	"&cirfnint;": "\u2A10",
+	"&cirmid;": "\u2AEF",
+	"&cirscir;": "\u29C2",
+	"&ClockwiseContourIntegral;": "\u2232",
+	"&CloseCurlyDoubleQuote;": "\u201D",
+	"&CloseCurlyQuote;": "\u2019",
+	"&clubs;": "\u2663",
+	"&clubsuit;": "\u2663",
+	"&colon;": "\u003A",
+	"&Colon;": "\u2237",
+	"&Colone;": "\u2A74",
+	"&colone;": "\u2254",
+	"&coloneq;": "\u2254",
+	"&comma;": "\u002C",
+	"&commat;": "\u0040",
+	"&comp;": "\u2201",
+	"&compfn;": "\u2218",
+	"&complement;": "\u2201",
+	"&complexes;": "\u2102",
+	"&cong;": "\u2245",
+	"&congdot;": "\u2A6D",
+	"&Congruent;": "\u2261",
+	"&conint;": "\u222E",
+	"&Conint;": "\u222F",
+	"&ContourIntegral;": "\u222E",
+	"&copf;": "\uD835\uDD54",
+	"&Copf;": "\u2102",
+	"&coprod;": "\u2210",
+	"&Coproduct;": "\u2210",
+	"&copy;": "\u00A9",
+	"&copy": "\u00A9",
+	"&COPY;": "\u00A9",
+	"&COPY": "\u00A9",
+	"&copysr;": "\u2117",
+	"&CounterClockwiseContourIntegral;": "\u2233",
+	"&crarr;": "\u21B5",
+	"&cross;": "\u2717",
+	"&Cross;": "\u2A2F",
+	"&Cscr;": "\uD835\uDC9E",
+	"&cscr;": "\uD835\uDCB8",
+	"&csub;": "\u2ACF",
+	"&csube;": "\u2AD1",
+	"&csup;": "\u2AD0",
+	"&csupe;": "\u2AD2",
+	"&ctdot;": "\u22EF",
+	"&cudarrl;": "\u2938",
+	"&cudarrr;": "\u2935",
+	"&cuepr;": "\u22DE",
+	"&cuesc;": "\u22DF",
+	"&cularr;": "\u21B6",
+	"&cularrp;": "\u293D",
+	"&cupbrcap;": "\u2A48",
+	"&cupcap;": "\u2A46",
+	"&CupCap;": "\u224D",
+	"&cup;": "\u222A",
+	"&Cup;": "\u22D3",
+	"&cupcup;": "\u2A4A",
+	"&cupdot;": "\u228D",
+	"&cupor;": "\u2A45",
+	"&cups;": "\u222A\uFE00",
+	"&curarr;": "\u21B7",
+	"&curarrm;": "\u293C",
+	"&curlyeqprec;": "\u22DE",
+	"&curlyeqsucc;": "\u22DF",
+	"&curlyvee;": "\u22CE",
+	"&curlywedge;": "\u22CF",
+	"&curren;": "\u00A4",
+	"&curren": "\u00A4",
+	"&curvearrowleft;": "\u21B6",
+	"&curvearrowright;": "\u21B7",
+	"&cuvee;": "\u22CE",
+	"&cuwed;": "\u22CF",
+	"&cwconint;": "\u2232",
+	"&cwint;": "\u2231",
+	"&cylcty;": "\u232D",
+	"&dagger;": "\u2020",
+	"&Dagger;": "\u2021",
+	"&daleth;": "\u2138",
+	"&darr;": "\u2193",
+	"&Darr;": "\u21A1",
+	"&dArr;": "\u21D3",
+	"&dash;": "\u2010",
+	"&Dashv;": "\u2AE4",
+	"&dashv;": "\u22A3",
+	"&dbkarow;": "\u290F",
+	"&dblac;": "\u02DD",
+	"&Dcaron;": "\u010E",
+	"&dcaron;": "\u010F",
+	"&Dcy;": "\u0414",
+	"&dcy;": "\u0434",
+	"&ddagger;": "\u2021",
+	"&ddarr;": "\u21CA",
+	"&DD;": "\u2145",
+	"&dd;": "\u2146",
+	"&DDotrahd;": "\u2911",
+	"&ddotseq;": "\u2A77",
+	"&deg;": "\u00B0",
+	"&deg": "\u00B0",
+	"&Del;": "\u2207",
+	"&Delta;": "\u0394",
+	"&delta;": "\u03B4",
+	"&demptyv;": "\u29B1",
+	"&dfisht;": "\u297F",
+	"&Dfr;": "\uD835\uDD07",
+	"&dfr;": "\uD835\uDD21",
+	"&dHar;": "\u2965",
+	"&dharl;": "\u21C3",
+	"&dharr;": "\u21C2",
+	"&DiacriticalAcute;": "\u00B4",
+	"&DiacriticalDot;": "\u02D9",
+	"&DiacriticalDoubleAcute;": "\u02DD",
+	"&DiacriticalGrave;": "\u0060",
+	"&DiacriticalTilde;": "\u02DC",
+	"&diam;": "\u22C4",
+	"&diamond;": "\u22C4",
+	"&Diamond;": "\u22C4",
+	"&diamondsuit;": "\u2666",
+	"&diams;": "\u2666",
+	"&die;": "\u00A8",
+	"&DifferentialD;": "\u2146",
+	"&digamma;": "\u03DD",
+	"&disin;": "\u22F2",
+	"&div;": "\u00F7",
+	"&divide;": "\u00F7",
+	"&divide": "\u00F7",
+	"&divideontimes;": "\u22C7",
+	"&divonx;": "\u22C7",
+	"&DJcy;": "\u0402",
+	"&djcy;": "\u0452",
+	"&dlcorn;": "\u231E",
+	"&dlcrop;": "\u230D",
+	"&dollar;": "\u0024",
+	"&Dopf;": "\uD835\uDD3B",
+	"&dopf;": "\uD835\uDD55",
+	"&Dot;": "\u00A8",
+	"&dot;": "\u02D9",
+	"&DotDot;": "\u20DC",
+	"&doteq;": "\u2250",
+	"&doteqdot;": "\u2251",
+	"&DotEqual;": "\u2250",
+	"&dotminus;": "\u2238",
+	"&dotplus;": "\u2214",
+	"&dotsquare;": "\u22A1",
+	"&doublebarwedge;": "\u2306",
+	"&DoubleContourIntegral;": "\u222F",
+	"&DoubleDot;": "\u00A8",
+	"&DoubleDownArrow;": "\u21D3",
+	"&DoubleLeftArrow;": "\u21D0",
+	"&DoubleLeftRightArrow;": "\u21D4",
+	"&DoubleLeftTee;": "\u2AE4",
+	"&DoubleLongLeftArrow;": "\u27F8",
+	"&DoubleLongLeftRightArrow;": "\u27FA",
+	"&DoubleLongRightArrow;": "\u27F9",
+	"&DoubleRightArrow;": "\u21D2",
+	"&DoubleRightTee;": "\u22A8",
+	"&DoubleUpArrow;": "\u21D1",
+	"&DoubleUpDownArrow;": "\u21D5",
+	"&DoubleVerticalBar;": "\u2225",
+	"&DownArrowBar;": "\u2913",
+	"&downarrow;": "\u2193",
+	"&DownArrow;": "\u2193",
+	"&Downarrow;": "\u21D3",
+	"&DownArrowUpArrow;": "\u21F5",
+	"&DownBreve;": "\u0311",
+	"&downdownarrows;": "\u21CA",
+	"&downharpoonleft;": "\u21C3",
+	"&downharpoonright;": "\u21C2",
+	"&DownLeftRightVector;": "\u2950",
+	"&DownLeftTeeVector;": "\u295E",
+	"&DownLeftVectorBar;": "\u2956",
+	"&DownLeftVector;": "\u21BD",
+	"&DownRightTeeVector;": "\u295F",
+	"&DownRightVectorBar;": "\u2957",
+	"&DownRightVector;": "\u21C1",
+	"&DownTeeArrow;": "\u21A7",
+	"&DownTee;": "\u22A4",
+	"&drbkarow;": "\u2910",
+	"&drcorn;": "\u231F",
+	"&drcrop;": "\u230C",
+	"&Dscr;": "\uD835\uDC9F",
+	"&dscr;": "\uD835\uDCB9",
+	"&DScy;": "\u0405",
+	"&dscy;": "\u0455",
+	"&dsol;": "\u29F6",
+	"&Dstrok;": "\u0110",
+	"&dstrok;": "\u0111",
+	"&dtdot;": "\u22F1",
+	"&dtri;": "\u25BF",
+	"&dtrif;": "\u25BE",
+	"&duarr;": "\u21F5",
+	"&duhar;": "\u296F",
+	"&dwangle;": "\u29A6",
+	"&DZcy;": "\u040F",
+	"&dzcy;": "\u045F",
+	"&dzigrarr;": "\u27FF",
+	"&Eacute;": "\u00C9",
+	"&Eacute": "\u00C9",
+	"&eacute;": "\u00E9",
+	"&eacute": "\u00E9",
+	"&easter;": "\u2A6E",
+	"&Ecaron;": "\u011A",
+	"&ecaron;": "\u011B",
+	"&Ecirc;": "\u00CA",
+	"&Ecirc": "\u00CA",
+	"&ecirc;": "\u00EA",
+	"&ecirc": "\u00EA",
+	"&ecir;": "\u2256",
+	"&ecolon;": "\u2255",
+	"&Ecy;": "\u042D",
+	"&ecy;": "\u044D",
+	"&eDDot;": "\u2A77",
+	"&Edot;": "\u0116",
+	"&edot;": "\u0117",
+	"&eDot;": "\u2251",
+	"&ee;": "\u2147",
+	"&efDot;": "\u2252",
+	"&Efr;": "\uD835\uDD08",
+	"&efr;": "\uD835\uDD22",
+	"&eg;": "\u2A9A",
+	"&Egrave;": "\u00C8",
+	"&Egrave": "\u00C8",
+	"&egrave;": "\u00E8",
+	"&egrave": "\u00E8",
+	"&egs;": "\u2A96",
+	"&egsdot;": "\u2A98",
+	"&el;": "\u2A99",
+	"&Element;": "\u2208",
+	"&elinters;": "\u23E7",
+	"&ell;": "\u2113",
+	"&els;": "\u2A95",
+	"&elsdot;": "\u2A97",
+	"&Emacr;": "\u0112",
+	"&emacr;": "\u0113",
+	"&empty;": "\u2205",
+	"&emptyset;": "\u2205",
+	"&EmptySmallSquare;": "\u25FB",
+	"&emptyv;": "\u2205",
+	"&EmptyVerySmallSquare;": "\u25AB",
+	"&emsp13;": "\u2004",
+	"&emsp14;": "\u2005",
+	"&emsp;": "\u2003",
+	"&ENG;": "\u014A",
+	"&eng;": "\u014B",
+	"&ensp;": "\u2002",
+	"&Eogon;": "\u0118",
+	"&eogon;": "\u0119",
+	"&Eopf;": "\uD835\uDD3C",
+	"&eopf;": "\uD835\uDD56",
+	"&epar;": "\u22D5",
+	"&eparsl;": "\u29E3",
+	"&eplus;": "\u2A71",
+	"&epsi;": "\u03B5",
+	"&Epsilon;": "\u0395",
+	"&epsilon;": "\u03B5",
+	"&epsiv;": "\u03F5",
+	"&eqcirc;": "\u2256",
+	"&eqcolon;": "\u2255",
+	"&eqsim;": "\u2242",
+	"&eqslantgtr;": "\u2A96",
+	"&eqslantless;": "\u2A95",
+	"&Equal;": "\u2A75",
+	"&equals;": "\u003D",
+	"&EqualTilde;": "\u2242",
+	"&equest;": "\u225F",
+	"&Equilibrium;": "\u21CC",
+	"&equiv;": "\u2261",
+	"&equivDD;": "\u2A78",
+	"&eqvparsl;": "\u29E5",
+	"&erarr;": "\u2971",
+	"&erDot;": "\u2253",
+	"&escr;": "\u212F",
+	"&Escr;": "\u2130",
+	"&esdot;": "\u2250",
+	"&Esim;": "\u2A73",
+	"&esim;": "\u2242",
+	"&Eta;": "\u0397",
+	"&eta;": "\u03B7",
+	"&ETH;": "\u00D0",
+	"&ETH": "\u00D0",
+	"&eth;": "\u00F0",
+	"&eth": "\u00F0",
+	"&Euml;": "\u00CB",
+	"&Euml": "\u00CB",
+	"&euml;": "\u00EB",
+	"&euml": "\u00EB",
+	"&euro;": "\u20AC",
+	"&excl;": "\u0021",
+	"&exist;": "\u2203",
+	"&Exists;": "\u2203",
+	"&expectation;": "\u2130",
+	"&exponentiale;": "\u2147",
+	"&ExponentialE;": "\u2147",
+	"&fallingdotseq;": "\u2252",
+	"&Fcy;": "\u0424",
+	"&fcy;": "\u0444",
+	"&female;": "\u2640",
+	"&ffilig;": "\uFB03",
+	"&fflig;": "\uFB00",
+	"&ffllig;": "\uFB04",
+	"&Ffr;": "\uD835\uDD09",
+	"&ffr;": "\uD835\uDD23",
+	"&filig;": "\uFB01",
+	"&FilledSmallSquare;": "\u25FC",
+	"&FilledVerySmallSquare;": "\u25AA",
+	"&fjlig;": "\u0066\u006A",
+	"&flat;": "\u266D",
+	"&fllig;": "\uFB02",
+	"&fltns;": "\u25B1",
+	"&fnof;": "\u0192",
+	"&Fopf;": "\uD835\uDD3D",
+	"&fopf;": "\uD835\uDD57",
+	"&forall;": "\u2200",
+	"&ForAll;": "\u2200",
+	"&fork;": "\u22D4",
+	"&forkv;": "\u2AD9",
+	"&Fouriertrf;": "\u2131",
+	"&fpartint;": "\u2A0D",
+	"&frac12;": "\u00BD",
+	"&frac12": "\u00BD",
+	"&frac13;": "\u2153",
+	"&frac14;": "\u00BC",
+	"&frac14": "\u00BC",
+	"&frac15;": "\u2155",
+	"&frac16;": "\u2159",
+	"&frac18;": "\u215B",
+	"&frac23;": "\u2154",
+	"&frac25;": "\u2156",
+	"&frac34;": "\u00BE",
+	"&frac34": "\u00BE",
+	"&frac35;": "\u2157",
+	"&frac38;": "\u215C",
+	"&frac45;": "\u2158",
+	"&frac56;": "\u215A",
+	"&frac58;": "\u215D",
+	"&frac78;": "\u215E",
+	"&frasl;": "\u2044",
+	"&frown;": "\u2322",
+	"&fscr;": "\uD835\uDCBB",
+	"&Fscr;": "\u2131",
+	"&gacute;": "\u01F5",
+	"&Gamma;": "\u0393",
+	"&gamma;": "\u03B3",
+	"&Gammad;": "\u03DC",
+	"&gammad;": "\u03DD",
+	"&gap;": "\u2A86",
+	"&Gbreve;": "\u011E",
+	"&gbreve;": "\u011F",
+	"&Gcedil;": "\u0122",
+	"&Gcirc;": "\u011C",
+	"&gcirc;": "\u011D",
+	"&Gcy;": "\u0413",
+	"&gcy;": "\u0433",
+	"&Gdot;": "\u0120",
+	"&gdot;": "\u0121",
+	"&ge;": "\u2265",
+	"&gE;": "\u2267",
+	"&gEl;": "\u2A8C",
+	"&gel;": "\u22DB",
+	"&geq;": "\u2265",
+	"&geqq;": "\u2267",
+	"&geqslant;": "\u2A7E",
+	"&gescc;": "\u2AA9",
+	"&ges;": "\u2A7E",
+	"&gesdot;": "\u2A80",
+	"&gesdoto;": "\u2A82",
+	"&gesdotol;": "\u2A84",
+	"&gesl;": "\u22DB\uFE00",
+	"&gesles;": "\u2A94",
+	"&Gfr;": "\uD835\uDD0A",
+	"&gfr;": "\uD835\uDD24",
+	"&gg;": "\u226B",
+	"&Gg;": "\u22D9",
+	"&ggg;": "\u22D9",
+	"&gimel;": "\u2137",
+	"&GJcy;": "\u0403",
+	"&gjcy;": "\u0453",
+	"&gla;": "\u2AA5",
+	"&gl;": "\u2277",
+	"&glE;": "\u2A92",
+	"&glj;": "\u2AA4",
+	"&gnap;": "\u2A8A",
+	"&gnapprox;": "\u2A8A",
+	"&gne;": "\u2A88",
+	"&gnE;": "\u2269",
+	"&gneq;": "\u2A88",
+	"&gneqq;": "\u2269",
+	"&gnsim;": "\u22E7",
+	"&Gopf;": "\uD835\uDD3E",
+	"&gopf;": "\uD835\uDD58",
+	"&grave;": "\u0060",
+	"&GreaterEqual;": "\u2265",
+	"&GreaterEqualLess;": "\u22DB",
+	"&GreaterFullEqual;": "\u2267",
+	"&GreaterGreater;": "\u2AA2",
+	"&GreaterLess;": "\u2277",
+	"&GreaterSlantEqual;": "\u2A7E",
+	"&GreaterTilde;": "\u2273",
+	"&Gscr;": "\uD835\uDCA2",
+	"&gscr;": "\u210A",
+	"&gsim;": "\u2273",
+	"&gsime;": "\u2A8E",
+	"&gsiml;": "\u2A90",
+	"&gtcc;": "\u2AA7",
+	"&gtcir;": "\u2A7A",
+	"&gt;": "\u003E",
+	"&gt": "\u003E",
+	"&GT;": "\u003E",
+	"&GT": "\u003E",
+	"&Gt;": "\u226B",
+	"&gtdot;": "\u22D7",
+	"&gtlPar;": "\u2995",
+	"&gtquest;": "\u2A7C",
+	"&gtrapprox;": "\u2A86",
+	"&gtrarr;": "\u2978",
+	"&gtrdot;": "\u22D7",
+	"&gtreqless;": "\u22DB",
+	"&gtreqqless;": "\u2A8C",
+	"&gtrless;": "\u2277",
+	"&gtrsim;": "\u2273",
+	"&gvertneqq;": "\u2269\uFE00",
+	"&gvnE;": "\u2269\uFE00",
+	"&Hacek;": "\u02C7",
+	"&hairsp;": "\u200A",
+	"&half;": "\u00BD",
+	"&hamilt;": "\u210B",
+	"&HARDcy;": "\u042A",
+	"&hardcy;": "\u044A",
+	"&harrcir;": "\u2948",
+	"&harr;": "\u2194",
+	"&hArr;": "\u21D4",
+	"&harrw;": "\u21AD",
+	"&Hat;": "\u005E",
+	"&hbar;": "\u210F",
+	"&Hcirc;": "\u0124",
+	"&hcirc;": "\u0125",
+	"&hearts;": "\u2665",
+	"&heartsuit;": "\u2665",
+	"&hellip;": "\u2026",
+	"&hercon;": "\u22B9",
+	"&hfr;": "\uD835\uDD25",
+	"&Hfr;": "\u210C",
+	"&HilbertSpace;": "\u210B",
+	"&hksearow;": "\u2925",
+	"&hkswarow;": "\u2926",
+	"&hoarr;": "\u21FF",
+	"&homtht;": "\u223B",
+	"&hookleftarrow;": "\u21A9",
+	"&hookrightarrow;": "\u21AA",
+	"&hopf;": "\uD835\uDD59",
+	"&Hopf;": "\u210D",
+	"&horbar;": "\u2015",
+	"&HorizontalLine;": "\u2500",
+	"&hscr;": "\uD835\uDCBD",
+	"&Hscr;": "\u210B",
+	"&hslash;": "\u210F",
+	"&Hstrok;": "\u0126",
+	"&hstrok;": "\u0127",
+	"&HumpDownHump;": "\u224E",
+	"&HumpEqual;": "\u224F",
+	"&hybull;": "\u2043",
+	"&hyphen;": "\u2010",
+	"&Iacute;": "\u00CD",
+	"&Iacute": "\u00CD",
+	"&iacute;": "\u00ED",
+	"&iacute": "\u00ED",
+	"&ic;": "\u2063",
+	"&Icirc;": "\u00CE",
+	"&Icirc": "\u00CE",
+	"&icirc;": "\u00EE",
+	"&icirc": "\u00EE",
+	"&Icy;": "\u0418",
+	"&icy;": "\u0438",
+	"&Idot;": "\u0130",
+	"&IEcy;": "\u0415",
+	"&iecy;": "\u0435",
+	"&iexcl;": "\u00A1",
+	"&iexcl": "\u00A1",
+	"&iff;": "\u21D4",
+	"&ifr;": "\uD835\uDD26",
+	"&Ifr;": "\u2111",
+	"&Igrave;": "\u00CC",
+	"&Igrave": "\u00CC",
+	"&igrave;": "\u00EC",
+	"&igrave": "\u00EC",
+	"&ii;": "\u2148",
+	"&iiiint;": "\u2A0C",
+	"&iiint;": "\u222D",
+	"&iinfin;": "\u29DC",
+	"&iiota;": "\u2129",
+	"&IJlig;": "\u0132",
+	"&ijlig;": "\u0133",
+	"&Imacr;": "\u012A",
+	"&imacr;": "\u012B",
+	"&image;": "\u2111",
+	"&ImaginaryI;": "\u2148",
+	"&imagline;": "\u2110",
+	"&imagpart;": "\u2111",
+	"&imath;": "\u0131",
+	"&Im;": "\u2111",
+	"&imof;": "\u22B7",
+	"&imped;": "\u01B5",
+	"&Implies;": "\u21D2",
+	"&incare;": "\u2105",
+	"&in;": "\u2208",
+	"&infin;": "\u221E",
+	"&infintie;": "\u29DD",
+	"&inodot;": "\u0131",
+	"&intcal;": "\u22BA",
+	"&int;": "\u222B",
+	"&Int;": "\u222C",
+	"&integers;": "\u2124",
+	"&Integral;": "\u222B",
+	"&intercal;": "\u22BA",
+	"&Intersection;": "\u22C2",
+	"&intlarhk;": "\u2A17",
+	"&intprod;": "\u2A3C",
+	"&InvisibleComma;": "\u2063",
+	"&InvisibleTimes;": "\u2062",
+	"&IOcy;": "\u0401",
+	"&iocy;": "\u0451",
+	"&Iogon;": "\u012E",
+	"&iogon;": "\u012F",
+	"&Iopf;": "\uD835\uDD40",
+	"&iopf;": "\uD835\uDD5A",
+	"&Iota;": "\u0399",
+	"&iota;": "\u03B9",
+	"&iprod;": "\u2A3C",
+	"&iquest;": "\u00BF",
+	"&iquest": "\u00BF",
+	"&iscr;": "\uD835\uDCBE",
+	"&Iscr;": "\u2110",
+	"&isin;": "\u2208",
+	"&isindot;": "\u22F5",
+	"&isinE;": "\u22F9",
+	"&isins;": "\u22F4",
+	"&isinsv;": "\u22F3",
+	"&isinv;": "\u2208",
+	"&it;": "\u2062",
+	"&Itilde;": "\u0128",
+	"&itilde;": "\u0129",
+	"&Iukcy;": "\u0406",
+	"&iukcy;": "\u0456",
+	"&Iuml;": "\u00CF",
+	"&Iuml": "\u00CF",
+	"&iuml;": "\u00EF",
+	"&iuml": "\u00EF",
+	"&Jcirc;": "\u0134",
+	"&jcirc;": "\u0135",
+	"&Jcy;": "\u0419",
+	"&jcy;": "\u0439",
+	"&Jfr;": "\uD835\uDD0D",
+	"&jfr;": "\uD835\uDD27",
+	"&jmath;": "\u0237",
+	"&Jopf;": "\uD835\uDD41",
+	"&jopf;": "\uD835\uDD5B",
+	"&Jscr;": "\uD835\uDCA5",
+	"&jscr;": "\uD835\uDCBF",
+	"&Jsercy;": "\u0408",
+	"&jsercy;": "\u0458",
+	"&Jukcy;": "\u0404",
+	"&jukcy;": "\u0454",
+	"&Kappa;": "\u039A",
+	"&kappa;": "\u03BA",
+	"&kappav;": "\u03F0",
+	"&Kcedil;": "\u0136",
+	"&kcedil;": "\u0137",
+	"&Kcy;": "\u041A",
+	"&kcy;": "\u043A",
+	"&Kfr;": "\uD835\uDD0E",
+	"&kfr;": "\uD835\uDD28",
+	"&kgreen;": "\u0138",
+	"&KHcy;": "\u0425",
+	"&khcy;": "\u0445",
+	"&KJcy;": "\u040C",
+	"&kjcy;": "\u045C",
+	"&Kopf;": "\uD835\uDD42",
+	"&kopf;": "\uD835\uDD5C",
+	"&Kscr;": "\uD835\uDCA6",
+	"&kscr;": "\uD835\uDCC0",
+	"&lAarr;": "\u21DA",
+	"&Lacute;": "\u0139",
+	"&lacute;": "\u013A",
+	"&laemptyv;": "\u29B4",
+	"&lagran;": "\u2112",
+	"&Lambda;": "\u039B",
+	"&lambda;": "\u03BB",
+	"&lang;": "\u27E8",
+	"&Lang;": "\u27EA",
+	"&langd;": "\u2991",
+	"&langle;": "\u27E8",
+	"&lap;": "\u2A85",
+	"&Laplacetrf;": "\u2112",
+	"&laquo;": "\u00AB",
+	"&laquo": "\u00AB",
+	"&larrb;": "\u21E4",
+	"&larrbfs;": "\u291F",
+	"&larr;": "\u2190",
+	"&Larr;": "\u219E",
+	"&lArr;": "\u21D0",
+	"&larrfs;": "\u291D",
+	"&larrhk;": "\u21A9",
+	"&larrlp;": "\u21AB",
+	"&larrpl;": "\u2939",
+	"&larrsim;": "\u2973",
+	"&larrtl;": "\u21A2",
+	"&latail;": "\u2919",
+	"&lAtail;": "\u291B",
+	"&lat;": "\u2AAB",
+	"&late;": "\u2AAD",
+	"&lates;": "\u2AAD\uFE00",
+	"&lbarr;": "\u290C",
+	"&lBarr;": "\u290E",
+	"&lbbrk;": "\u2772",
+	"&lbrace;": "\u007B",
+	"&lbrack;": "\u005B",
+	"&lbrke;": "\u298B",
+	"&lbrksld;": "\u298F",
+	"&lbrkslu;": "\u298D",
+	"&Lcaron;": "\u013D",
+	"&lcaron;": "\u013E",
+	"&Lcedil;": "\u013B",
+	"&lcedil;": "\u013C",
+	"&lceil;": "\u2308",
+	"&lcub;": "\u007B",
+	"&Lcy;": "\u041B",
+	"&lcy;": "\u043B",
+	"&ldca;": "\u2936",
+	"&ldquo;": "\u201C",
+	"&ldquor;": "\u201E",
+	"&ldrdhar;": "\u2967",
+	"&ldrushar;": "\u294B",
+	"&ldsh;": "\u21B2",
+	"&le;": "\u2264",
+	"&lE;": "\u2266",
+	"&LeftAngleBracket;": "\u27E8",
+	"&LeftArrowBar;": "\u21E4",
+	"&leftarrow;": "\u2190",
+	"&LeftArrow;": "\u2190",
+	"&Leftarrow;": "\u21D0",
+	"&LeftArrowRightArrow;": "\u21C6",
+	"&leftarrowtail;": "\u21A2",
+	"&LeftCeiling;": "\u2308",
+	"&LeftDoubleBracket;": "\u27E6",
+	"&LeftDownTeeVector;": "\u2961",
+	"&LeftDownVectorBar;": "\u2959",
+	"&LeftDownVector;": "\u21C3",
+	"&LeftFloor;": "\u230A",
+	"&leftharpoondown;": "\u21BD",
+	"&leftharpoonup;": "\u21BC",
+	"&leftleftarrows;": "\u21C7",
+	"&leftrightarrow;": "\u2194",
+	"&LeftRightArrow;": "\u2194",
+	"&Leftrightarrow;": "\u21D4",
+	"&leftrightarrows;": "\u21C6",
+	"&leftrightharpoons;": "\u21CB",
+	"&leftrightsquigarrow;": "\u21AD",
+	"&LeftRightVector;": "\u294E",
+	"&LeftTeeArrow;": "\u21A4",
+	"&LeftTee;": "\u22A3",
+	"&LeftTeeVector;": "\u295A",
+	"&leftthreetimes;": "\u22CB",
+	"&LeftTriangleBar;": "\u29CF",
+	"&LeftTriangle;": "\u22B2",
+	"&LeftTriangleEqual;": "\u22B4",
+	"&LeftUpDownVector;": "\u2951",
+	"&LeftUpTeeVector;": "\u2960",
+	"&LeftUpVectorBar;": "\u2958",
+	"&LeftUpVector;": "\u21BF",
+	"&LeftVectorBar;": "\u2952",
+	"&LeftVector;": "\u21BC",
+	"&lEg;": "\u2A8B",
+	"&leg;": "\u22DA",
+	"&leq;": "\u2264",
+	"&leqq;": "\u2266",
+	"&leqslant;": "\u2A7D",
+	"&lescc;": "\u2AA8",
+	"&les;": "\u2A7D",
+	"&lesdot;": "\u2A7F",
+	"&lesdoto;": "\u2A81",
+	"&lesdotor;": "\u2A83",
+	"&lesg;": "\u22DA\uFE00",
+	"&lesges;": "\u2A93",
+	"&lessapprox;": "\u2A85",
+	"&lessdot;": "\u22D6",
+	"&lesseqgtr;": "\u22DA",
+	"&lesseqqgtr;": "\u2A8B",
+	"&LessEqualGreater;": "\u22DA",
+	"&LessFullEqual;": "\u2266",
+	"&LessGreater;": "\u2276",
+	"&lessgtr;": "\u2276",
+	"&LessLess;": "\u2AA1",
+	"&lesssim;": "\u2272",
+	"&LessSlantEqual;": "\u2A7D",
+	"&LessTilde;": "\u2272",
+	"&lfisht;": "\u297C",
+	"&lfloor;": "\u230A",
+	"&Lfr;": "\uD835\uDD0F",
+	"&lfr;": "\uD835\uDD29",
+	"&lg;": "\u2276",
+	"&lgE;": "\u2A91",
+	"&lHar;": "\u2962",
+	"&lhard;": "\u21BD",
+	"&lharu;": "\u21BC",
+	"&lharul;": "\u296A",
+	"&lhblk;": "\u2584",
+	"&LJcy;": "\u0409",
+	"&ljcy;": "\u0459",
+	"&llarr;": "\u21C7",
+	"&ll;": "\u226A",
+	"&Ll;": "\u22D8",
+	"&llcorner;": "\u231E",
+	"&Lleftarrow;": "\u21DA",
+	"&llhard;": "\u296B",
+	"&lltri;": "\u25FA",
+	"&Lmidot;": "\u013F",
+	"&lmidot;": "\u0140",
+	"&lmoustache;": "\u23B0",
+	"&lmoust;": "\u23B0",
+	"&lnap;": "\u2A89",
+	"&lnapprox;": "\u2A89",
+	"&lne;": "\u2A87",
+	"&lnE;": "\u2268",
+	"&lneq;": "\u2A87",
+	"&lneqq;": "\u2268",
+	"&lnsim;": "\u22E6",
+	"&loang;": "\u27EC",
+	"&loarr;": "\u21FD",
+	"&lobrk;": "\u27E6",
+	"&longleftarrow;": "\u27F5",
+	"&LongLeftArrow;": "\u27F5",
+	"&Longleftarrow;": "\u27F8",
+	"&longleftrightarrow;": "\u27F7",
+	"&LongLeftRightArrow;": "\u27F7",
+	"&Longleftrightarrow;": "\u27FA",
+	"&longmapsto;": "\u27FC",
+	"&longrightarrow;": "\u27F6",
+	"&LongRightArrow;": "\u27F6",
+	"&Longrightarrow;": "\u27F9",
+	"&looparrowleft;": "\u21AB",
+	"&looparrowright;": "\u21AC",
+	"&lopar;": "\u2985",
+	"&Lopf;": "\uD835\uDD43",
+	"&lopf;": "\uD835\uDD5D",
+	"&loplus;": "\u2A2D",
+	"&lotimes;": "\u2A34",
+	"&lowast;": "\u2217",
+	"&lowbar;": "\u005F",
+	"&LowerLeftArrow;": "\u2199",
+	"&LowerRightArrow;": "\u2198",
+	"&loz;": "\u25CA",
+	"&lozenge;": "\u25CA",
+	"&lozf;": "\u29EB",
+	"&lpar;": "\u0028",
+	"&lparlt;": "\u2993",
+	"&lrarr;": "\u21C6",
+	"&lrcorner;": "\u231F",
+	"&lrhar;": "\u21CB",
+	"&lrhard;": "\u296D",
+	"&lrm;": "\u200E",
+	"&lrtri;": "\u22BF",
+	"&lsaquo;": "\u2039",
+	"&lscr;": "\uD835\uDCC1",
+	"&Lscr;": "\u2112",
+	"&lsh;": "\u21B0",
+	"&Lsh;": "\u21B0",
+	"&lsim;": "\u2272",
+	"&lsime;": "\u2A8D",
+	"&lsimg;": "\u2A8F",
+	"&lsqb;": "\u005B",
+	"&lsquo;": "\u2018",
+	"&lsquor;": "\u201A",
+	"&Lstrok;": "\u0141",
+	"&lstrok;": "\u0142",
+	"&ltcc;": "\u2AA6",
+	"&ltcir;": "\u2A79",
+	"&lt;": "\u003C",
+	"&lt": "\u003C",
+	"&LT;": "\u003C",
+	"&LT": "\u003C",
+	"&Lt;": "\u226A",
+	"&ltdot;": "\u22D6",
+	"&lthree;": "\u22CB",
+	"&ltimes;": "\u22C9",
+	"&ltlarr;": "\u2976",
+	"&ltquest;": "\u2A7B",
+	"&ltri;": "\u25C3",
+	"&ltrie;": "\u22B4",
+	"&ltrif;": "\u25C2",
+	"&ltrPar;": "\u2996",
+	"&lurdshar;": "\u294A",
+	"&luruhar;": "\u2966",
+	"&lvertneqq;": "\u2268\uFE00",
+	"&lvnE;": "\u2268\uFE00",
+	"&macr;": "\u00AF",
+	"&macr": "\u00AF",
+	"&male;": "\u2642",
+	"&malt;": "\u2720",
+	"&maltese;": "\u2720",
+	"&Map;": "\u2905",
+	"&map;": "\u21A6",
+	"&mapsto;": "\u21A6",
+	"&mapstodown;": "\u21A7",
+	"&mapstoleft;": "\u21A4",
+	"&mapstoup;": "\u21A5",
+	"&marker;": "\u25AE",
+	"&mcomma;": "\u2A29",
+	"&Mcy;": "\u041C",
+	"&mcy;": "\u043C",
+	"&mdash;": "\u2014",
+	"&mDDot;": "\u223A",
+	"&measuredangle;": "\u2221",
+	"&MediumSpace;": "\u205F",
+	"&Mellintrf;": "\u2133",
+	"&Mfr;": "\uD835\uDD10",
+	"&mfr;": "\uD835\uDD2A",
+	"&mho;": "\u2127",
+	"&micro;": "\u00B5",
+	"&micro": "\u00B5",
+	"&midast;": "\u002A",
+	"&midcir;": "\u2AF0",
+	"&mid;": "\u2223",
+	"&middot;": "\u00B7",
+	"&middot": "\u00B7",
+	"&minusb;": "\u229F",
+	"&minus;": "\u2212",
+	"&minusd;": "\u2238",
+	"&minusdu;": "\u2A2A",
+	"&MinusPlus;": "\u2213",
+	"&mlcp;": "\u2ADB",
+	"&mldr;": "\u2026",
+	"&mnplus;": "\u2213",
+	"&models;": "\u22A7",
+	"&Mopf;": "\uD835\uDD44",
+	"&mopf;": "\uD835\uDD5E",
+	"&mp;": "\u2213",
+	"&mscr;": "\uD835\uDCC2",
+	"&Mscr;": "\u2133",
+	"&mstpos;": "\u223E",
+	"&Mu;": "\u039C",
+	"&mu;": "\u03BC",
+	"&multimap;": "\u22B8",
+	"&mumap;": "\u22B8",
+	"&nabla;": "\u2207",
+	"&Nacute;": "\u0143",
+	"&nacute;": "\u0144",
+	"&nang;": "\u2220\u20D2",
+	"&nap;": "\u2249",
+	"&napE;": "\u2A70\u0338",
+	"&napid;": "\u224B\u0338",
+	"&napos;": "\u0149",
+	"&napprox;": "\u2249",
+	"&natural;": "\u266E",
+	"&naturals;": "\u2115",
+	"&natur;": "\u266E",
+	"&nbsp;": "\u00A0",
+	"&nbsp": "\u00A0",
+	"&nbump;": "\u224E\u0338",
+	"&nbumpe;": "\u224F\u0338",
+	"&ncap;": "\u2A43",
+	"&Ncaron;": "\u0147",
+	"&ncaron;": "\u0148",
+	"&Ncedil;": "\u0145",
+	"&ncedil;": "\u0146",
+	"&ncong;": "\u2247",
+	"&ncongdot;": "\u2A6D\u0338",
+	"&ncup;": "\u2A42",
+	"&Ncy;": "\u041D",
+	"&ncy;": "\u043D",
+	"&ndash;": "\u2013",
+	"&nearhk;": "\u2924",
+	"&nearr;": "\u2197",
+	"&neArr;": "\u21D7",
+	"&nearrow;": "\u2197",
+	"&ne;": "\u2260",
+	"&nedot;": "\u2250\u0338",
+	"&NegativeMediumSpace;": "\u200B",
+	"&NegativeThickSpace;": "\u200B",
+	"&NegativeThinSpace;": "\u200B",
+	"&NegativeVeryThinSpace;": "\u200B",
+	"&nequiv;": "\u2262",
+	"&nesear;": "\u2928",
+	"&nesim;": "\u2242\u0338",
+	"&NestedGreaterGreater;": "\u226B",
+	"&NestedLessLess;": "\u226A",
+	"&NewLine;": "\u000A",
+	"&nexist;": "\u2204",
+	"&nexists;": "\u2204",
+	"&Nfr;": "\uD835\uDD11",
+	"&nfr;": "\uD835\uDD2B",
+	"&ngE;": "\u2267\u0338",
+	"&nge;": "\u2271",
+	"&ngeq;": "\u2271",
+	"&ngeqq;": "\u2267\u0338",
+	"&ngeqslant;": "\u2A7E\u0338",
+	"&nges;": "\u2A7E\u0338",
+	"&nGg;": "\u22D9\u0338",
+	"&ngsim;": "\u2275",
+	"&nGt;": "\u226B\u20D2",
+	"&ngt;": "\u226F",
+	"&ngtr;": "\u226F",
+	"&nGtv;": "\u226B\u0338",
+	"&nharr;": "\u21AE",
+	"&nhArr;": "\u21CE",
+	"&nhpar;": "\u2AF2",
+	"&ni;": "\u220B",
+	"&nis;": "\u22FC",
+	"&nisd;": "\u22FA",
+	"&niv;": "\u220B",
+	"&NJcy;": "\u040A",
+	"&njcy;": "\u045A",
+	"&nlarr;": "\u219A",
+	"&nlArr;": "\u21CD",
+	"&nldr;": "\u2025",
+	"&nlE;": "\u2266\u0338",
+	"&nle;": "\u2270",
+	"&nleftarrow;": "\u219A",
+	"&nLeftarrow;": "\u21CD",
+	"&nleftrightarrow;": "\u21AE",
+	"&nLeftrightarrow;": "\u21CE",
+	"&nleq;": "\u2270",
+	"&nleqq;": "\u2266\u0338",
+	"&nleqslant;": "\u2A7D\u0338",
+	"&nles;": "\u2A7D\u0338",
+	"&nless;": "\u226E",
+	"&nLl;": "\u22D8\u0338",
+	"&nlsim;": "\u2274",
+	"&nLt;": "\u226A\u20D2",
+	"&nlt;": "\u226E",
+	"&nltri;": "\u22EA",
+	"&nltrie;": "\u22EC",
+	"&nLtv;": "\u226A\u0338",
+	"&nmid;": "\u2224",
+	"&NoBreak;": "\u2060",
+	"&NonBreakingSpace;": "\u00A0",
+	"&nopf;": "\uD835\uDD5F",
+	"&Nopf;": "\u2115",
+	"&Not;": "\u2AEC",
+	"&not;": "\u00AC",
+	"&not": "\u00AC",
+	"&NotCongruent;": "\u2262",
+	"&NotCupCap;": "\u226D",
+	"&NotDoubleVerticalBar;": "\u2226",
+	"&NotElement;": "\u2209",
+	"&NotEqual;": "\u2260",
+	"&NotEqualTilde;": "\u2242\u0338",
+	"&NotExists;": "\u2204",
+	"&NotGreater;": "\u226F",
+	"&NotGreaterEqual;": "\u2271",
+	"&NotGreaterFullEqual;": "\u2267\u0338",
+	"&NotGreaterGreater;": "\u226B\u0338",
+	"&NotGreaterLess;": "\u2279",
+	"&NotGreaterSlantEqual;": "\u2A7E\u0338",
+	"&NotGreaterTilde;": "\u2275",
+	"&NotHumpDownHump;": "\u224E\u0338",
+	"&NotHumpEqual;": "\u224F\u0338",
+	"&notin;": "\u2209",
+	"&notindot;": "\u22F5\u0338",
+	"&notinE;": "\u22F9\u0338",
+	"&notinva;": "\u2209",
+	"&notinvb;": "\u22F7",
+	"&notinvc;": "\u22F6",
+	"&NotLeftTriangleBar;": "\u29CF\u0338",
+	"&NotLeftTriangle;": "\u22EA",
+	"&NotLeftTriangleEqual;": "\u22EC",
+	"&NotLess;": "\u226E",
+	"&NotLessEqual;": "\u2270",
+	"&NotLessGreater;": "\u2278",
+	"&NotLessLess;": "\u226A\u0338",
+	"&NotLessSlantEqual;": "\u2A7D\u0338",
+	"&NotLessTilde;": "\u2274",
+	"&NotNestedGreaterGreater;": "\u2AA2\u0338",
+	"&NotNestedLessLess;": "\u2AA1\u0338",
+	"&notni;": "\u220C",
+	"&notniva;": "\u220C",
+	"&notnivb;": "\u22FE",
+	"&notnivc;": "\u22FD",
+	"&NotPrecedes;": "\u2280",
+	"&NotPrecedesEqual;": "\u2AAF\u0338",
+	"&NotPrecedesSlantEqual;": "\u22E0",
+	"&NotReverseElement;": "\u220C",
+	"&NotRightTriangleBar;": "\u29D0\u0338",
+	"&NotRightTriangle;": "\u22EB",
+	"&NotRightTriangleEqual;": "\u22ED",
+	"&NotSquareSubset;": "\u228F\u0338",
+	"&NotSquareSubsetEqual;": "\u22E2",
+	"&NotSquareSuperset;": "\u2290\u0338",
+	"&NotSquareSupersetEqual;": "\u22E3",
+	"&NotSubset;": "\u2282\u20D2",
+	"&NotSubsetEqual;": "\u2288",
+	"&NotSucceeds;": "\u2281",
+	"&NotSucceedsEqual;": "\u2AB0\u0338",
+	"&NotSucceedsSlantEqual;": "\u22E1",
+	"&NotSucceedsTilde;": "\u227F\u0338",
+	"&NotSuperset;": "\u2283\u20D2",
+	"&NotSupersetEqual;": "\u2289",
+	"&NotTilde;": "\u2241",
+	"&NotTildeEqual;": "\u2244",
+	"&NotTildeFullEqual;": "\u2247",
+	"&NotTildeTilde;": "\u2249",
+	"&NotVerticalBar;": "\u2224",
+	"&nparallel;": "\u2226",
+	"&npar;": "\u2226",
+	"&nparsl;": "\u2AFD\u20E5",
+	"&npart;": "\u2202\u0338",
+	"&npolint;": "\u2A14",
+	"&npr;": "\u2280",
+	"&nprcue;": "\u22E0",
+	"&nprec;": "\u2280",
+	"&npreceq;": "\u2AAF\u0338",
+	"&npre;": "\u2AAF\u0338",
+	"&nrarrc;": "\u2933\u0338",
+	"&nrarr;": "\u219B",
+	"&nrArr;": "\u21CF",
+	"&nrarrw;": "\u219D\u0338",
+	"&nrightarrow;": "\u219B",
+	"&nRightarrow;": "\u21CF",
+	"&nrtri;": "\u22EB",
+	"&nrtrie;": "\u22ED",
+	"&nsc;": "\u2281",
+	"&nsccue;": "\u22E1",
+	"&nsce;": "\u2AB0\u0338",
+	"&Nscr;": "\uD835\uDCA9",
+	"&nscr;": "\uD835\uDCC3",
+	"&nshortmid;": "\u2224",
+	"&nshortparallel;": "\u2226",
+	"&nsim;": "\u2241",
+	"&nsime;": "\u2244",
+	"&nsimeq;": "\u2244",
+	"&nsmid;": "\u2224",
+	"&nspar;": "\u2226",
+	"&nsqsube;": "\u22E2",
+	"&nsqsupe;": "\u22E3",
+	"&nsub;": "\u2284",
+	"&nsubE;": "\u2AC5\u0338",
+	"&nsube;": "\u2288",
+	"&nsubset;": "\u2282\u20D2",
+	"&nsubseteq;": "\u2288",
+	"&nsubseteqq;": "\u2AC5\u0338",
+	"&nsucc;": "\u2281",
+	"&nsucceq;": "\u2AB0\u0338",
+	"&nsup;": "\u2285",
+	"&nsupE;": "\u2AC6\u0338",
+	"&nsupe;": "\u2289",
+	"&nsupset;": "\u2283\u20D2",
+	"&nsupseteq;": "\u2289",
+	"&nsupseteqq;": "\u2AC6\u0338",
+	"&ntgl;": "\u2279",
+	"&Ntilde;": "\u00D1",
+	"&Ntilde": "\u00D1",
+	"&ntilde;": "\u00F1",
+	"&ntilde": "\u00F1",
+	"&ntlg;": "\u2278",
+	"&ntriangleleft;": "\u22EA",
+	"&ntrianglelefteq;": "\u22EC",
+	"&ntriangleright;": "\u22EB",
+	"&ntrianglerighteq;": "\u22ED",
+	"&Nu;": "\u039D",
+	"&nu;": "\u03BD",
+	"&num;": "\u0023",
+	"&numero;": "\u2116",
+	"&numsp;": "\u2007",
+	"&nvap;": "\u224D\u20D2",
+	"&nvdash;": "\u22AC",
+	"&nvDash;": "\u22AD",
+	"&nVdash;": "\u22AE",
+	"&nVDash;": "\u22AF",
+	"&nvge;": "\u2265\u20D2",
+	"&nvgt;": "\u003E\u20D2",
+	"&nvHarr;": "\u2904",
+	"&nvinfin;": "\u29DE",
+	"&nvlArr;": "\u2902",
+	"&nvle;": "\u2264\u20D2",
+	"&nvlt;": "\u003C\u20D2",
+	"&nvltrie;": "\u22B4\u20D2",
+	"&nvrArr;": "\u2903",
+	"&nvrtrie;": "\u22B5\u20D2",
+	"&nvsim;": "\u223C\u20D2",
+	"&nwarhk;": "\u2923",
+	"&nwarr;": "\u2196",
+	"&nwArr;": "\u21D6",
+	"&nwarrow;": "\u2196",
+	"&nwnear;": "\u2927",
+	"&Oacute;": "\u00D3",
+	"&Oacute": "\u00D3",
+	"&oacute;": "\u00F3",
+	"&oacute": "\u00F3",
+	"&oast;": "\u229B",
+	"&Ocirc;": "\u00D4",
+	"&Ocirc": "\u00D4",
+	"&ocirc;": "\u00F4",
+	"&ocirc": "\u00F4",
+	"&ocir;": "\u229A",
+	"&Ocy;": "\u041E",
+	"&ocy;": "\u043E",
+	"&odash;": "\u229D",
+	"&Odblac;": "\u0150",
+	"&odblac;": "\u0151",
+	"&odiv;": "\u2A38",
+	"&odot;": "\u2299",
+	"&odsold;": "\u29BC",
+	"&OElig;": "\u0152",
+	"&oelig;": "\u0153",
+	"&ofcir;": "\u29BF",
+	"&Ofr;": "\uD835\uDD12",
+	"&ofr;": "\uD835\uDD2C",
+	"&ogon;": "\u02DB",
+	"&Ograve;": "\u00D2",
+	"&Ograve": "\u00D2",
+	"&ograve;": "\u00F2",
+	"&ograve": "\u00F2",
+	"&ogt;": "\u29C1",
+	"&ohbar;": "\u29B5",
+	"&ohm;": "\u03A9",
+	"&oint;": "\u222E",
+	"&olarr;": "\u21BA",
+	"&olcir;": "\u29BE",
+	"&olcross;": "\u29BB",
+	"&oline;": "\u203E",
+	"&olt;": "\u29C0",
+	"&Omacr;": "\u014C",
+	"&omacr;": "\u014D",
+	"&Omega;": "\u03A9",
+	"&omega;": "\u03C9",
+	"&Omicron;": "\u039F",
+	"&omicron;": "\u03BF",
+	"&omid;": "\u29B6",
+	"&ominus;": "\u2296",
+	"&Oopf;": "\uD835\uDD46",
+	"&oopf;": "\uD835\uDD60",
+	"&opar;": "\u29B7",
+	"&OpenCurlyDoubleQuote;": "\u201C",
+	"&OpenCurlyQuote;": "\u2018",
+	"&operp;": "\u29B9",
+	"&oplus;": "\u2295",
+	"&orarr;": "\u21BB",
+	"&Or;": "\u2A54",
+	"&or;": "\u2228",
+	"&ord;": "\u2A5D",
+	"&order;": "\u2134",
+	"&orderof;": "\u2134",
+	"&ordf;": "\u00AA",
+	"&ordf": "\u00AA",
+	"&ordm;": "\u00BA",
+	"&ordm": "\u00BA",
+	"&origof;": "\u22B6",
+	"&oror;": "\u2A56",
+	"&orslope;": "\u2A57",
+	"&orv;": "\u2A5B",
+	"&oS;": "\u24C8",
+	"&Oscr;": "\uD835\uDCAA",
+	"&oscr;": "\u2134",
+	"&Oslash;": "\u00D8",
+	"&Oslash": "\u00D8",
+	"&oslash;": "\u00F8",
+	"&oslash": "\u00F8",
+	"&osol;": "\u2298",
+	"&Otilde;": "\u00D5",
+	"&Otilde": "\u00D5",
+	"&otilde;": "\u00F5",
+	"&otilde": "\u00F5",
+	"&otimesas;": "\u2A36",
+	"&Otimes;": "\u2A37",
+	"&otimes;": "\u2297",
+	"&Ouml;": "\u00D6",
+	"&Ouml": "\u00D6",
+	"&ouml;": "\u00F6",
+	"&ouml": "\u00F6",
+	"&ovbar;": "\u233D",
+	"&OverBar;": "\u203E",
+	"&OverBrace;": "\u23DE",
+	"&OverBracket;": "\u23B4",
+	"&OverParenthesis;": "\u23DC",
+	"&para;": "\u00B6",
+	"&para": "\u00B6",
+	"&parallel;": "\u2225",
+	"&par;": "\u2225",
+	"&parsim;": "\u2AF3",
+	"&parsl;": "\u2AFD",
+	"&part;": "\u2202",
+	"&PartialD;": "\u2202",
+	"&Pcy;": "\u041F",
+	"&pcy;": "\u043F",
+	"&percnt;": "\u0025",
+	"&period;": "\u002E",
+	"&permil;": "\u2030",
+	"&perp;": "\u22A5",
+	"&pertenk;": "\u2031",
+	"&Pfr;": "\uD835\uDD13",
+	"&pfr;": "\uD835\uDD2D",
+	"&Phi;": "\u03A6",
+	"&phi;": "\u03C6",
+	"&phiv;": "\u03D5",
+	"&phmmat;": "\u2133",
+	"&phone;": "\u260E",
+	"&Pi;": "\u03A0",
+	"&pi;": "\u03C0",
+	"&pitchfork;": "\u22D4",
+	"&piv;": "\u03D6",
+	"&planck;": "\u210F",
+	"&planckh;": "\u210E",
+	"&plankv;": "\u210F",
+	"&plusacir;": "\u2A23",
+	"&plusb;": "\u229E",
+	"&pluscir;": "\u2A22",
+	"&plus;": "\u002B",
+	"&plusdo;": "\u2214",
+	"&plusdu;": "\u2A25",
+	"&pluse;": "\u2A72",
+	"&PlusMinus;": "\u00B1",
+	"&plusmn;": "\u00B1",
+	"&plusmn": "\u00B1",
+	"&plussim;": "\u2A26",
+	"&plustwo;": "\u2A27",
+	"&pm;": "\u00B1",
+	"&Poincareplane;": "\u210C",
+	"&pointint;": "\u2A15",
+	"&popf;": "\uD835\uDD61",
+	"&Popf;": "\u2119",
+	"&pound;": "\u00A3",
+	"&pound": "\u00A3",
+	"&prap;": "\u2AB7",
+	"&Pr;": "\u2ABB",
+	"&pr;": "\u227A",
+	"&prcue;": "\u227C",
+	"&precapprox;": "\u2AB7",
+	"&prec;": "\u227A",
+	"&preccurlyeq;": "\u227C",
+	"&Precedes;": "\u227A",
+	"&PrecedesEqual;": "\u2AAF",
+	"&PrecedesSlantEqual;": "\u227C",
+	"&PrecedesTilde;": "\u227E",
+	"&preceq;": "\u2AAF",
+	"&precnapprox;": "\u2AB9",
+	"&precneqq;": "\u2AB5",
+	"&precnsim;": "\u22E8",
+	"&pre;": "\u2AAF",
+	"&prE;": "\u2AB3",
+	"&precsim;": "\u227E",
+	"&prime;": "\u2032",
+	"&Prime;": "\u2033",
+	"&primes;": "\u2119",
+	"&prnap;": "\u2AB9",
+	"&prnE;": "\u2AB5",
+	"&prnsim;": "\u22E8",
+	"&prod;": "\u220F",
+	"&Product;": "\u220F",
+	"&profalar;": "\u232E",
+	"&profline;": "\u2312",
+	"&profsurf;": "\u2313",
+	"&prop;": "\u221D",
+	"&Proportional;": "\u221D",
+	"&Proportion;": "\u2237",
+	"&propto;": "\u221D",
+	"&prsim;": "\u227E",
+	"&prurel;": "\u22B0",
+	"&Pscr;": "\uD835\uDCAB",
+	"&pscr;": "\uD835\uDCC5",
+	"&Psi;": "\u03A8",
+	"&psi;": "\u03C8",
+	"&puncsp;": "\u2008",
+	"&Qfr;": "\uD835\uDD14",
+	"&qfr;": "\uD835\uDD2E",
+	"&qint;": "\u2A0C",
+	"&qopf;": "\uD835\uDD62",
+	"&Qopf;": "\u211A",
+	"&qprime;": "\u2057",
+	"&Qscr;": "\uD835\uDCAC",
+	"&qscr;": "\uD835\uDCC6",
+	"&quaternions;": "\u210D",
+	"&quatint;": "\u2A16",
+	"&quest;": "\u003F",
+	"&questeq;": "\u225F",
+	"&quot;": "\u0022",
+	"&quot": "\u0022",
+	"&QUOT;": "\u0022",
+	"&QUOT": "\u0022",
+	"&rAarr;": "\u21DB",
+	"&race;": "\u223D\u0331",
+	"&Racute;": "\u0154",
+	"&racute;": "\u0155",
+	"&radic;": "\u221A",
+	"&raemptyv;": "\u29B3",
+	"&rang;": "\u27E9",
+	"&Rang;": "\u27EB",
+	"&rangd;": "\u2992",
+	"&range;": "\u29A5",
+	"&rangle;": "\u27E9",
+	"&raquo;": "\u00BB",
+	"&raquo": "\u00BB",
+	"&rarrap;": "\u2975",
+	"&rarrb;": "\u21E5",
+	"&rarrbfs;": "\u2920",
+	"&rarrc;": "\u2933",
+	"&rarr;": "\u2192",
+	"&Rarr;": "\u21A0",
+	"&rArr;": "\u21D2",
+	"&rarrfs;": "\u291E",
+	"&rarrhk;": "\u21AA",
+	"&rarrlp;": "\u21AC",
+	"&rarrpl;": "\u2945",
+	"&rarrsim;": "\u2974",
+	"&Rarrtl;": "\u2916",
+	"&rarrtl;": "\u21A3",
+	"&rarrw;": "\u219D",
+	"&ratail;": "\u291A",
+	"&rAtail;": "\u291C",
+	"&ratio;": "\u2236",
+	"&rationals;": "\u211A",
+	"&rbarr;": "\u290D",
+	"&rBarr;": "\u290F",
+	"&RBarr;": "\u2910",
+	"&rbbrk;": "\u2773",
+	"&rbrace;": "\u007D",
+	"&rbrack;": "\u005D",
+	"&rbrke;": "\u298C",
+	"&rbrksld;": "\u298E",
+	"&rbrkslu;": "\u2990",
+	"&Rcaron;": "\u0158",
+	"&rcaron;": "\u0159",
+	"&Rcedil;": "\u0156",
+	"&rcedil;": "\u0157",
+	"&rceil;": "\u2309",
+	"&rcub;": "\u007D",
+	"&Rcy;": "\u0420",
+	"&rcy;": "\u0440",
+	"&rdca;": "\u2937",
+	"&rdldhar;": "\u2969",
+	"&rdquo;": "\u201D",
+	"&rdquor;": "\u201D",
+	"&rdsh;": "\u21B3",
+	"&real;": "\u211C",
+	"&realine;": "\u211B",
+	"&realpart;": "\u211C",
+	"&reals;": "\u211D",
+	"&Re;": "\u211C",
+	"&rect;": "\u25AD",
+	"&reg;": "\u00AE",
+	"&reg": "\u00AE",
+	"&REG;": "\u00AE",
+	"&REG": "\u00AE",
+	"&ReverseElement;": "\u220B",
+	"&ReverseEquilibrium;": "\u21CB",
+	"&ReverseUpEquilibrium;": "\u296F",
+	"&rfisht;": "\u297D",
+	"&rfloor;": "\u230B",
+	"&rfr;": "\uD835\uDD2F",
+	"&Rfr;": "\u211C",
+	"&rHar;": "\u2964",
+	"&rhard;": "\u21C1",
+	"&rharu;": "\u21C0",
+	"&rharul;": "\u296C",
+	"&Rho;": "\u03A1",
+	"&rho;": "\u03C1",
+	"&rhov;": "\u03F1",
+	"&RightAngleBracket;": "\u27E9",
+	"&RightArrowBar;": "\u21E5",
+	"&rightarrow;": "\u2192",
+	"&RightArrow;": "\u2192",
+	"&Rightarrow;": "\u21D2",
+	"&RightArrowLeftArrow;": "\u21C4",
+	"&rightarrowtail;": "\u21A3",
+	"&RightCeiling;": "\u2309",
+	"&RightDoubleBracket;": "\u27E7",
+	"&RightDownTeeVector;": "\u295D",
+	"&RightDownVectorBar;": "\u2955",
+	"&RightDownVector;": "\u21C2",
+	"&RightFloor;": "\u230B",
+	"&rightharpoondown;": "\u21C1",
+	"&rightharpoonup;": "\u21C0",
+	"&rightleftarrows;": "\u21C4",
+	"&rightleftharpoons;": "\u21CC",
+	"&rightrightarrows;": "\u21C9",
+	"&rightsquigarrow;": "\u219D",
+	"&RightTeeArrow;": "\u21A6",
+	"&RightTee;": "\u22A2",
+	"&RightTeeVector;": "\u295B",
+	"&rightthreetimes;": "\u22CC",
+	"&RightTriangleBar;": "\u29D0",
+	"&RightTriangle;": "\u22B3",
+	"&RightTriangleEqual;": "\u22B5",
+	"&RightUpDownVector;": "\u294F",
+	"&RightUpTeeVector;": "\u295C",
+	"&RightUpVectorBar;": "\u2954",
+	"&RightUpVector;": "\u21BE",
+	"&RightVectorBar;": "\u2953",
+	"&RightVector;": "\u21C0",
+	"&ring;": "\u02DA",
+	"&risingdotseq;": "\u2253",
+	"&rlarr;": "\u21C4",
+	"&rlhar;": "\u21CC",
+	"&rlm;": "\u200F",
+	"&rmoustache;": "\u23B1",
+	"&rmoust;": "\u23B1",
+	"&rnmid;": "\u2AEE",
+	"&roang;": "\u27ED",
+	"&roarr;": "\u21FE",
+	"&robrk;": "\u27E7",
+	"&ropar;": "\u2986",
+	"&ropf;": "\uD835\uDD63",
+	"&Ropf;": "\u211D",
+	"&roplus;": "\u2A2E",
+	"&rotimes;": "\u2A35",
+	"&RoundImplies;": "\u2970",
+	"&rpar;": "\u0029",
+	"&rpargt;": "\u2994",
+	"&rppolint;": "\u2A12",
+	"&rrarr;": "\u21C9",
+	"&Rrightarrow;": "\u21DB",
+	"&rsaquo;": "\u203A",
+	"&rscr;": "\uD835\uDCC7",
+	"&Rscr;": "\u211B",
+	"&rsh;": "\u21B1",
+	"&Rsh;": "\u21B1",
+	"&rsqb;": "\u005D",
+	"&rsquo;": "\u2019",
+	"&rsquor;": "\u2019",
+	"&rthree;": "\u22CC",
+	"&rtimes;": "\u22CA",
+	"&rtri;": "\u25B9",
+	"&rtrie;": "\u22B5",
+	"&rtrif;": "\u25B8",
+	"&rtriltri;": "\u29CE",
+	"&RuleDelayed;": "\u29F4",
+	"&ruluhar;": "\u2968",
+	"&rx;": "\u211E",
+	"&Sacute;": "\u015A",
+	"&sacute;": "\u015B",
+	"&sbquo;": "\u201A",
+	"&scap;": "\u2AB8",
+	"&Scaron;": "\u0160",
+	"&scaron;": "\u0161",
+	"&Sc;": "\u2ABC",
+	"&sc;": "\u227B",
+	"&sccue;": "\u227D",
+	"&sce;": "\u2AB0",
+	"&scE;": "\u2AB4",
+	"&Scedil;": "\u015E",
+	"&scedil;": "\u015F",
+	"&Scirc;": "\u015C",
+	"&scirc;": "\u015D",
+	"&scnap;": "\u2ABA",
+	"&scnE;": "\u2AB6",
+	"&scnsim;": "\u22E9",
+	"&scpolint;": "\u2A13",
+	"&scsim;": "\u227F",
+	"&Scy;": "\u0421",
+	"&scy;": "\u0441",
+	"&sdotb;": "\u22A1",
+	"&sdot;": "\u22C5",
+	"&sdote;": "\u2A66",
+	"&searhk;": "\u2925",
+	"&searr;": "\u2198",
+	"&seArr;": "\u21D8",
+	"&searrow;": "\u2198",
+	"&sect;": "\u00A7",
+	"&sect": "\u00A7",
+	"&semi;": "\u003B",
+	"&seswar;": "\u2929",
+	"&setminus;": "\u2216",
+	"&setmn;": "\u2216",
+	"&sext;": "\u2736",
+	"&Sfr;": "\uD835\uDD16",
+	"&sfr;": "\uD835\uDD30",
+	"&sfrown;": "\u2322",
+	"&sharp;": "\u266F",
+	"&SHCHcy;": "\u0429",
+	"&shchcy;": "\u0449",
+	"&SHcy;": "\u0428",
+	"&shcy;": "\u0448",
+	"&ShortDownArrow;": "\u2193",
+	"&ShortLeftArrow;": "\u2190",
+	"&shortmid;": "\u2223",
+	"&shortparallel;": "\u2225",
+	"&ShortRightArrow;": "\u2192",
+	"&ShortUpArrow;": "\u2191",
+	"&shy;": "\u00AD",
+	"&shy": "\u00AD",
+	"&Sigma;": "\u03A3",
+	"&sigma;": "\u03C3",
+	"&sigmaf;": "\u03C2",
+	"&sigmav;": "\u03C2",
+	"&sim;": "\u223C",
+	"&simdot;": "\u2A6A",
+	"&sime;": "\u2243",
+	"&simeq;": "\u2243",
+	"&simg;": "\u2A9E",
+	"&simgE;": "\u2AA0",
+	"&siml;": "\u2A9D",
+	"&simlE;": "\u2A9F",
+	"&simne;": "\u2246",
+	"&simplus;": "\u2A24",
+	"&simrarr;": "\u2972",
+	"&slarr;": "\u2190",
+	"&SmallCircle;": "\u2218",
+	"&smallsetminus;": "\u2216",
+	"&smashp;": "\u2A33",
+	"&smeparsl;": "\u29E4",
+	"&smid;": "\u2223",
+	"&smile;": "\u2323",
+	"&smt;": "\u2AAA",
+	"&smte;": "\u2AAC",
+	"&smtes;": "\u2AAC\uFE00",
+	"&SOFTcy;": "\u042C",
+	"&softcy;": "\u044C",
+	"&solbar;": "\u233F",
+	"&solb;": "\u29C4",
+	"&sol;": "\u002F",
+	"&Sopf;": "\uD835\uDD4A",
+	"&sopf;": "\uD835\uDD64",
+	"&spades;": "\u2660",
+	"&spadesuit;": "\u2660",
+	"&spar;": "\u2225",
+	"&sqcap;": "\u2293",
+	"&sqcaps;": "\u2293\uFE00",
+	"&sqcup;": "\u2294",
+	"&sqcups;": "\u2294\uFE00",
+	"&Sqrt;": "\u221A",
+	"&sqsub;": "\u228F",
+	"&sqsube;": "\u2291",
+	"&sqsubset;": "\u228F",
+	"&sqsubseteq;": "\u2291",
+	"&sqsup;": "\u2290",
+	"&sqsupe;": "\u2292",
+	"&sqsupset;": "\u2290",
+	"&sqsupseteq;": "\u2292",
+	"&square;": "\u25A1",
+	"&Square;": "\u25A1",
+	"&SquareIntersection;": "\u2293",
+	"&SquareSubset;": "\u228F",
+	"&SquareSubsetEqual;": "\u2291",
+	"&SquareSuperset;": "\u2290",
+	"&SquareSupersetEqual;": "\u2292",
+	"&SquareUnion;": "\u2294",
+	"&squarf;": "\u25AA",
+	"&squ;": "\u25A1",
+	"&squf;": "\u25AA",
+	"&srarr;": "\u2192",
+	"&Sscr;": "\uD835\uDCAE",
+	"&sscr;": "\uD835\uDCC8",
+	"&ssetmn;": "\u2216",
+	"&ssmile;": "\u2323",
+	"&sstarf;": "\u22C6",
+	"&Star;": "\u22C6",
+	"&star;": "\u2606",
+	"&starf;": "\u2605",
+	"&straightepsilon;": "\u03F5",
+	"&straightphi;": "\u03D5",
+	"&strns;": "\u00AF",
+	"&sub;": "\u2282",
+	"&Sub;": "\u22D0",
+	"&subdot;": "\u2ABD",
+	"&subE;": "\u2AC5",
+	"&sube;": "\u2286",
+	"&subedot;": "\u2AC3",
+	"&submult;": "\u2AC1",
+	"&subnE;": "\u2ACB",
+	"&subne;": "\u228A",
+	"&subplus;": "\u2ABF",
+	"&subrarr;": "\u2979",
+	"&subset;": "\u2282",
+	"&Subset;": "\u22D0",
+	"&subseteq;": "\u2286",
+	"&subseteqq;": "\u2AC5",
+	"&SubsetEqual;": "\u2286",
+	"&subsetneq;": "\u228A",
+	"&subsetneqq;": "\u2ACB",
+	"&subsim;": "\u2AC7",
+	"&subsub;": "\u2AD5",
+	"&subsup;": "\u2AD3",
+	"&succapprox;": "\u2AB8",
+	"&succ;": "\u227B",
+	"&succcurlyeq;": "\u227D",
+	"&Succeeds;": "\u227B",
+	"&SucceedsEqual;": "\u2AB0",
+	"&SucceedsSlantEqual;": "\u227D",
+	"&SucceedsTilde;": "\u227F",
+	"&succeq;": "\u2AB0",
+	"&succnapprox;": "\u2ABA",
+	"&succneqq;": "\u2AB6",
+	"&succnsim;": "\u22E9",
+	"&succsim;": "\u227F",
+	"&SuchThat;": "\u220B",
+	"&sum;": "\u2211",
+	"&Sum;": "\u2211",
+	"&sung;": "\u266A",
+	"&sup1;": "\u00B9",
+	"&sup1": "\u00B9",
+	"&sup2;": "\u00B2",
+	"&sup2": "\u00B2",
+	"&sup3;": "\u00B3",
+	"&sup3": "\u00B3",
+	"&sup;": "\u2283",
+	"&Sup;": "\u22D1",
+	"&supdot;": "\u2ABE",
+	"&supdsub;": "\u2AD8",
+	"&supE;": "\u2AC6",
+	"&supe;": "\u2287",
+	"&supedot;": "\u2AC4",
+	"&Superset;": "\u2283",
+	"&SupersetEqual;": "\u2287",
+	"&suphsol;": "\u27C9",
+	"&suphsub;": "\u2AD7",
+	"&suplarr;": "\u297B",
+	"&supmult;": "\u2AC2",
+	"&supnE;": "\u2ACC",
+	"&supne;": "\u228B",
+	"&supplus;": "\u2AC0",
+	"&supset;": "\u2283",
+	"&Supset;": "\u22D1",
+	"&supseteq;": "\u2287",
+	"&supseteqq;": "\u2AC6",
+	"&supsetneq;": "\u228B",
+	"&supsetneqq;": "\u2ACC",
+	"&supsim;": "\u2AC8",
+	"&supsub;": "\u2AD4",
+	"&supsup;": "\u2AD6",
+	"&swarhk;": "\u2926",
+	"&swarr;": "\u2199",
+	"&swArr;": "\u21D9",
+	"&swarrow;": "\u2199",
+	"&swnwar;": "\u292A",
+	"&szlig;": "\u00DF",
+	"&szlig": "\u00DF",
+	"&Tab;": "\u0009",
+	"&target;": "\u2316",
+	"&Tau;": "\u03A4",
+	"&tau;": "\u03C4",
+	"&tbrk;": "\u23B4",
+	"&Tcaron;": "\u0164",
+	"&tcaron;": "\u0165",
+	"&Tcedil;": "\u0162",
+	"&tcedil;": "\u0163",
+	"&Tcy;": "\u0422",
+	"&tcy;": "\u0442",
+	"&tdot;": "\u20DB",
+	"&telrec;": "\u2315",
+	"&Tfr;": "\uD835\uDD17",
+	"&tfr;": "\uD835\uDD31",
+	"&there4;": "\u2234",
+	"&therefore;": "\u2234",
+	"&Therefore;": "\u2234",
+	"&Theta;": "\u0398",
+	"&theta;": "\u03B8",
+	"&thetasym;": "\u03D1",
+	"&thetav;": "\u03D1",
+	"&thickapprox;": "\u2248",
+	"&thicksim;": "\u223C",
+	"&ThickSpace;": "\u205F\u200A",
+	"&ThinSpace;": "\u2009",
+	"&thinsp;": "\u2009",
+	"&thkap;": "\u2248",
+	"&thksim;": "\u223C",
+	"&THORN;": "\u00DE",
+	"&THORN": "\u00DE",
+	"&thorn;": "\u00FE",
+	"&thorn": "\u00FE",
+	"&tilde;": "\u02DC",
+	"&Tilde;": "\u223C",
+	"&TildeEqual;": "\u2243",
+	"&TildeFullEqual;": "\u2245",
+	"&TildeTilde;": "\u2248",
+	"&timesbar;": "\u2A31",
+	"&timesb;": "\u22A0",
+	"&times;": "\u00D7",
+	"&times": "\u00D7",
+	"&timesd;": "\u2A30",
+	"&tint;": "\u222D",
+	"&toea;": "\u2928",
+	"&topbot;": "\u2336",
+	"&topcir;": "\u2AF1",
+	"&top;": "\u22A4",
+	"&Topf;": "\uD835\uDD4B",
+	"&topf;": "\uD835\uDD65",
+	"&topfork;": "\u2ADA",
+	"&tosa;": "\u2929",
+	"&tprime;": "\u2034",
+	"&trade;": "\u2122",
+	"&TRADE;": "\u2122",
+	"&triangle;": "\u25B5",
+	"&triangledown;": "\u25BF",
+	"&triangleleft;": "\u25C3",
+	"&trianglelefteq;": "\u22B4",
+	"&triangleq;": "\u225C",
+	"&triangleright;": "\u25B9",
+	"&trianglerighteq;": "\u22B5",
+	"&tridot;": "\u25EC",
+	"&trie;": "\u225C",
+	"&triminus;": "\u2A3A",
+	"&TripleDot;": "\u20DB",
+	"&triplus;": "\u2A39",
+	"&trisb;": "\u29CD",
+	"&tritime;": "\u2A3B",
+	"&trpezium;": "\u23E2",
+	"&Tscr;": "\uD835\uDCAF",
+	"&tscr;": "\uD835\uDCC9",
+	"&TScy;": "\u0426",
+	"&tscy;": "\u0446",
+	"&TSHcy;": "\u040B",
+	"&tshcy;": "\u045B",
+	"&Tstrok;": "\u0166",
+	"&tstrok;": "\u0167",
+	"&twixt;": "\u226C",
+	"&twoheadleftarrow;": "\u219E",
+	"&twoheadrightarrow;": "\u21A0",
+	"&Uacute;": "\u00DA",
+	"&Uacute": "\u00DA",
+	"&uacute;": "\u00FA",
+	"&uacute": "\u00FA",
+	"&uarr;": "\u2191",
+	"&Uarr;": "\u219F",
+	"&uArr;": "\u21D1",
+	"&Uarrocir;": "\u2949",
+	"&Ubrcy;": "\u040E",
+	"&ubrcy;": "\u045E",
+	"&Ubreve;": "\u016C",
+	"&ubreve;": "\u016D",
+	"&Ucirc;": "\u00DB",
+	"&Ucirc": "\u00DB",
+	"&ucirc;": "\u00FB",
+	"&ucirc": "\u00FB",
+	"&Ucy;": "\u0423",
+	"&ucy;": "\u0443",
+	"&udarr;": "\u21C5",
+	"&Udblac;": "\u0170",
+	"&udblac;": "\u0171",
+	"&udhar;": "\u296E",
+	"&ufisht;": "\u297E",
+	"&Ufr;": "\uD835\uDD18",
+	"&ufr;": "\uD835\uDD32",
+	"&Ugrave;": "\u00D9",
+	"&Ugrave": "\u00D9",
+	"&ugrave;": "\u00F9",
+	"&ugrave": "\u00F9",
+	"&uHar;": "\u2963",
+	"&uharl;": "\u21BF",
+	"&uharr;": "\u21BE",
+	"&uhblk;": "\u2580",
+	"&ulcorn;": "\u231C",
+	"&ulcorner;": "\u231C",
+	"&ulcrop;": "\u230F",
+	"&ultri;": "\u25F8",
+	"&Umacr;": "\u016A",
+	"&umacr;": "\u016B",
+	"&uml;": "\u00A8",
+	"&uml": "\u00A8",
+	"&UnderBar;": "\u005F",
+	"&UnderBrace;": "\u23DF",
+	"&UnderBracket;": "\u23B5",
+	"&UnderParenthesis;": "\u23DD",
+	"&Union;": "\u22C3",
+	"&UnionPlus;": "\u228E",
+	"&Uogon;": "\u0172",
+	"&uogon;": "\u0173",
+	"&Uopf;": "\uD835\uDD4C",
+	"&uopf;": "\uD835\uDD66",
+	"&UpArrowBar;": "\u2912",
+	"&uparrow;": "\u2191",
+	"&UpArrow;": "\u2191",
+	"&Uparrow;": "\u21D1",
+	"&UpArrowDownArrow;": "\u21C5",
+	"&updownarrow;": "\u2195",
+	"&UpDownArrow;": "\u2195",
+	"&Updownarrow;": "\u21D5",
+	"&UpEquilibrium;": "\u296E",
+	"&upharpoonleft;": "\u21BF",
+	"&upharpoonright;": "\u21BE",
+	"&uplus;": "\u228E",
+	"&UpperLeftArrow;": "\u2196",
+	"&UpperRightArrow;": "\u2197",
+	"&upsi;": "\u03C5",
+	"&Upsi;": "\u03D2",
+	"&upsih;": "\u03D2",
+	"&Upsilon;": "\u03A5",
+	"&upsilon;": "\u03C5",
+	"&UpTeeArrow;": "\u21A5",
+	"&UpTee;": "\u22A5",
+	"&upuparrows;": "\u21C8",
+	"&urcorn;": "\u231D",
+	"&urcorner;": "\u231D",
+	"&urcrop;": "\u230E",
+	"&Uring;": "\u016E",
+	"&uring;": "\u016F",
+	"&urtri;": "\u25F9",
+	"&Uscr;": "\uD835\uDCB0",
+	"&uscr;": "\uD835\uDCCA",
+	"&utdot;": "\u22F0",
+	"&Utilde;": "\u0168",
+	"&utilde;": "\u0169",
+	"&utri;": "\u25B5",
+	"&utrif;": "\u25B4",
+	"&uuarr;": "\u21C8",
+	"&Uuml;": "\u00DC",
+	"&Uuml": "\u00DC",
+	"&uuml;": "\u00FC",
+	"&uuml": "\u00FC",
+	"&uwangle;": "\u29A7",
+	"&vangrt;": "\u299C",
+	"&varepsilon;": "\u03F5",
+	"&varkappa;": "\u03F0",
+	"&varnothing;": "\u2205",
+	"&varphi;": "\u03D5",
+	"&varpi;": "\u03D6",
+	"&varpropto;": "\u221D",
+	"&varr;": "\u2195",
+	"&vArr;": "\u21D5",
+	"&varrho;": "\u03F1",
+	"&varsigma;": "\u03C2",
+	"&varsubsetneq;": "\u228A\uFE00",
+	"&varsubsetneqq;": "\u2ACB\uFE00",
+	"&varsupsetneq;": "\u228B\uFE00",
+	"&varsupsetneqq;": "\u2ACC\uFE00",
+	"&vartheta;": "\u03D1",
+	"&vartriangleleft;": "\u22B2",
+	"&vartriangleright;": "\u22B3",
+	"&vBar;": "\u2AE8",
+	"&Vbar;": "\u2AEB",
+	"&vBarv;": "\u2AE9",
+	"&Vcy;": "\u0412",
+	"&vcy;": "\u0432",
+	"&vdash;": "\u22A2",
+	"&vDash;": "\u22A8",
+	"&Vdash;": "\u22A9",
+	"&VDash;": "\u22AB",
+	"&Vdashl;": "\u2AE6",
+	"&veebar;": "\u22BB",
+	"&vee;": "\u2228",
+	"&Vee;": "\u22C1",
+	"&veeeq;": "\u225A",
+	"&vellip;": "\u22EE",
+	"&verbar;": "\u007C",
+	"&Verbar;": "\u2016",
+	"&vert;": "\u007C",
+	"&Vert;": "\u2016",
+	"&VerticalBar;": "\u2223",
+	"&VerticalLine;": "\u007C",
+	"&VerticalSeparator;": "\u2758",
+	"&VerticalTilde;": "\u2240",
+	"&VeryThinSpace;": "\u200A",
+	"&Vfr;": "\uD835\uDD19",
+	"&vfr;": "\uD835\uDD33",
+	"&vltri;": "\u22B2",
+	"&vnsub;": "\u2282\u20D2",
+	"&vnsup;": "\u2283\u20D2",
+	"&Vopf;": "\uD835\uDD4D",
+	"&vopf;": "\uD835\uDD67",
+	"&vprop;": "\u221D",
+	"&vrtri;": "\u22B3",
+	"&Vscr;": "\uD835\uDCB1",
+	"&vscr;": "\uD835\uDCCB",
+	"&vsubnE;": "\u2ACB\uFE00",
+	"&vsubne;": "\u228A\uFE00",
+	"&vsupnE;": "\u2ACC\uFE00",
+	"&vsupne;": "\u228B\uFE00",
+	"&Vvdash;": "\u22AA",
+	"&vzigzag;": "\u299A",
+	"&Wcirc;": "\u0174",
+	"&wcirc;": "\u0175",
+	"&wedbar;": "\u2A5F",
+	"&wedge;": "\u2227",
+	"&Wedge;": "\u22C0",
+	"&wedgeq;": "\u2259",
+	"&weierp;": "\u2118",
+	"&Wfr;": "\uD835\uDD1A",
+	"&wfr;": "\uD835\uDD34",
+	"&Wopf;": "\uD835\uDD4E",
+	"&wopf;": "\uD835\uDD68",
+	"&wp;": "\u2118",
+	"&wr;": "\u2240",
+	"&wreath;": "\u2240",
+	"&Wscr;": "\uD835\uDCB2",
+	"&wscr;": "\uD835\uDCCC",
+	"&xcap;": "\u22C2",
+	"&xcirc;": "\u25EF",
+	"&xcup;": "\u22C3",
+	"&xdtri;": "\u25BD",
+	"&Xfr;": "\uD835\uDD1B",
+	"&xfr;": "\uD835\uDD35",
+	"&xharr;": "\u27F7",
+	"&xhArr;": "\u27FA",
+	"&Xi;": "\u039E",
+	"&xi;": "\u03BE",
+	"&xlarr;": "\u27F5",
+	"&xlArr;": "\u27F8",
+	"&xmap;": "\u27FC",
+	"&xnis;": "\u22FB",
+	"&xodot;": "\u2A00",
+	"&Xopf;": "\uD835\uDD4F",
+	"&xopf;": "\uD835\uDD69",
+	"&xoplus;": "\u2A01",
+	"&xotime;": "\u2A02",
+	"&xrarr;": "\u27F6",
+	"&xrArr;": "\u27F9",
+	"&Xscr;": "\uD835\uDCB3",
+	"&xscr;": "\uD835\uDCCD",
+	"&xsqcup;": "\u2A06",
+	"&xuplus;": "\u2A04",
+	"&xutri;": "\u25B3",
+	"&xvee;": "\u22C1",
+	"&xwedge;": "\u22C0",
+	"&Yacute;": "\u00DD",
+	"&Yacute": "\u00DD",
+	"&yacute;": "\u00FD",
+	"&yacute": "\u00FD",
+	"&YAcy;": "\u042F",
+	"&yacy;": "\u044F",
+	"&Ycirc;": "\u0176",
+	"&ycirc;": "\u0177",
+	"&Ycy;": "\u042B",
+	"&ycy;": "\u044B",
+	"&yen;": "\u00A5",
+	"&yen": "\u00A5",
+	"&Yfr;": "\uD835\uDD1C",
+	"&yfr;": "\uD835\uDD36",
+	"&YIcy;": "\u0407",
+	"&yicy;": "\u0457",
+	"&Yopf;": "\uD835\uDD50",
+	"&yopf;": "\uD835\uDD6A",
+	"&Yscr;": "\uD835\uDCB4",
+	"&yscr;": "\uD835\uDCCE",
+	"&YUcy;": "\u042E",
+	"&yucy;": "\u044E",
+	"&yuml;": "\u00FF",
+	"&yuml": "\u00FF",
+	"&Yuml;": "\u0178",
+	"&Zacute;": "\u0179",
+	"&zacute;": "\u017A",
+	"&Zcaron;": "\u017D",
+	"&zcaron;": "\u017E",
+	"&Zcy;": "\u0417",
+	"&zcy;": "\u0437",
+	"&Zdot;": "\u017B",
+	"&zdot;": "\u017C",
+	"&zeetrf;": "\u2128",
+	"&ZeroWidthSpace;": "\u200B",
+	"&Zeta;": "\u0396",
+	"&zeta;": "\u03B6",
+	"&zfr;": "\uD835\uDD37",
+	"&Zfr;": "\u2128",
+	"&ZHcy;": "\u0416",
+	"&zhcy;": "\u0436",
+	"&zigrarr;": "\u21DD",
+	"&zopf;": "\uD835\uDD6B",
+	"&Zopf;": "\u2124",
+	"&Zscr;": "\uD835\uDCB5",
+	"&zscr;": "\uD835\uDCCF",
+	"&zwj;": "\u200D",
+	"&zwnj;": "\u200C"
+}
+
+Plugin.config = {
+	"timeout": "3"
+};
+
+Plugin.templates = {
+	"info": "link from #{nickname}: #{title}"
+};
+
+function replaceAll(string, search, replace)
+{
+	return string.split(search).join(replace);
+}
+
+function parse(server, origin, channel, result)
+{
+	const regex = /<title>([^<]+)<\/title>/i;
+
+	if (result.status !== 0 || !result.body) {
+		Irccd.Logger.info("Fialed");
+		return;
+	}
+
+	const match = regex.exec(result.body);
+
+	if (match) {
+		title = new String(match[1]);
+
+		for (var o in entities)
+			title = replaceAll(title, o, entities[o]);
+
+		const kw = {
+			channel: channel,
+			nickname: Util.splituser(origin),
+			origin: origin,
+			server: server.toString(),
+			title: title
+		};
+
+		server.message(channel, Util.format(Plugin.templates.info, kw));
+	}
+}
+
+function start(server, origin, channel, url)
+{
+	const options = {
+		url: url,
+		timeout: parseInt(Plugin.config.timeout)
+	};
+
+	if (isNaN(options.timeout))
+		options.timeout = 3;
+
+	Http.request(options, function (result) {
+		parse(server, origin, channel, result);
+	});
+}
+
+function onMessage(server, origin, channel, message)
+{
+	const regex = /(https?:\/\/[^\s]+)/;
+	const ret = regex.exec(message);
+
+	if (ret)
+		start(server, origin, channel, ret[1]);
+}