diff --git a/src/main/java/org/owasp/html/HtmlEntities.java b/src/main/java/org/owasp/html/HtmlEntities.java
index 08423268..fc015776 100644
--- a/src/main/java/org/owasp/html/HtmlEntities.java
+++ b/src/main/java/org/owasp/html/HtmlEntities.java
@@ -43,2145 +43,2256 @@ final class HtmlEntities {
private static final int LONGEST_ENTITY_NAME;
static {
- final ImmutableMap.Builder builder = ImmutableMap.builder();
-
// Source data: https://html.spec.whatwg.org/multipage/named-characters.html
+ // More readable: https://html.spec.whatwg.org/entities.json
+ String[] pairs = {
+ "AElig", "\u00c6",
+ "AElig;", "\u00c6",
+ "AMP", "\u0026",
+ "AMP;", "\u0026",
+ "Aacute", "\u00c1",
+ "Aacute;", "\u00c1",
+ "Abreve;", "\u0102",
+ "Acirc", "\u00c2",
+ "Acirc;", "\u00c2",
+ "Acy;", "\u0410",
+ "Afr;", "\ud835\udd04",
+ "Agrave", "\u00c0",
+ "Agrave;", "\u00c0",
+ "Alpha;", "\u0391",
+ "Amacr;", "\u0100",
+ "And;", "\u2a53",
+ "Aogon;", "\u0104",
+ "Aopf;", "\ud835\udd38",
+ "ApplyFunction;", "\u2061",
+ "Aring", "\u00c5",
+ "Aring;", "\u00c5",
+ "Ascr;", "\ud835\udc9c",
+ "Assign;", "\u2254",
+ "Atilde", "\u00c3",
+ "Atilde;", "\u00c3",
+ "Auml", "\u00c4",
+ "Auml;", "\u00c4",
+ "Backslash;", "\u2216",
+ "Barv;", "\u2ae7",
+ "Barwed;", "\u2306",
+ "Bcy;", "\u0411",
+ "Because;", "\u2235",
+ "Bernoullis;", "\u212c",
+ "Beta;", "\u0392",
+ "Bfr;", "\ud835\udd05",
+ "Bopf;", "\ud835\udd39",
+ "Breve;", "\u02d8",
+ "Bscr;", "\u212c",
+ "Bumpeq;", "\u224e",
+ "CHcy;", "\u0427",
+ "COPY", "\u00a9",
+ "COPY;", "\u00a9",
+ "Cacute;", "\u0106",
+ "Cap;", "\u22d2",
+ "CapitalDifferentialD;", "\u2145",
+ "Cayleys;", "\u212d",
+ "Ccaron;", "\u010c",
+ "Ccedil", "\u00c7",
+ "Ccedil;", "\u00c7",
+ "Ccirc;", "\u0108",
+ "Cconint;", "\u2230",
+ "Cdot;", "\u010a",
+ "Cedilla;", "\u00b8",
+ "CenterDot;", "\u00b7",
+ "Cfr;", "\u212d",
+ "Chi;", "\u03a7",
+ "CircleDot;", "\u2299",
+ "CircleMinus;", "\u2296",
+ "CirclePlus;", "\u2295",
+ "CircleTimes;", "\u2297",
+ "ClockwiseContourIntegral;", "\u2232",
+ "CloseCurlyDoubleQuote;", "\u201d",
+ "CloseCurlyQuote;", "\u2019",
+ "Colon;", "\u2237",
+ "Colone;", "\u2a74",
+ "Congruent;", "\u2261",
+ "Conint;", "\u222f",
+ "ContourIntegral;", "\u222e",
+ "Copf;", "\u2102",
+ "Coproduct;", "\u2210",
+ "CounterClockwiseContourIntegral;", "\u2233",
+ "Cross;", "\u2a2f",
+ "Cscr;", "\ud835\udc9e",
+ "Cup;", "\u22d3",
+ "CupCap;", "\u224d",
+ "DD;", "\u2145",
+ "DDotrahd;", "\u2911",
+ "DJcy;", "\u0402",
+ "DScy;", "\u0405",
+ "DZcy;", "\u040f",
+ "Dagger;", "\u2021",
+ "Darr;", "\u21a1",
+ "Dashv;", "\u2ae4",
+ "Dcaron;", "\u010e",
+ "Dcy;", "\u0414",
+ "Del;", "\u2207",
+ "Delta;", "\u0394",
+ "Dfr;", "\ud835\udd07",
+ "DiacriticalAcute;", "\u00b4",
+ "DiacriticalDot;", "\u02d9",
+ "DiacriticalDoubleAcute;", "\u02dd",
+ "DiacriticalGrave;", "\u0060",
+ "DiacriticalTilde;", "\u02dc",
+ "Diamond;", "\u22c4",
+ "DifferentialD;", "\u2146",
+ "Dopf;", "\ud835\udd3b",
+ "Dot;", "\u00a8",
+ "DotDot;", "\u20dc",
+ "DotEqual;", "\u2250",
+ "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",
+ "DownArrow;", "\u2193",
+ "DownArrowBar;", "\u2913",
+ "DownArrowUpArrow;", "\u21f5",
+ "DownBreve;", "\u0311",
+ "DownLeftRightVector;", "\u2950",
+ "DownLeftTeeVector;", "\u295e",
+ "DownLeftVector;", "\u21bd",
+ "DownLeftVectorBar;", "\u2956",
+ "DownRightTeeVector;", "\u295f",
+ "DownRightVector;", "\u21c1",
+ "DownRightVectorBar;", "\u2957",
+ "DownTee;", "\u22a4",
+ "DownTeeArrow;", "\u21a7",
+ "Downarrow;", "\u21d3",
+ "Dscr;", "\ud835\udc9f",
+ "Dstrok;", "\u0110",
+ "ENG;", "\u014a",
+ "ETH", "\u00d0",
+ "ETH;", "\u00d0",
+ "Eacute", "\u00c9",
+ "Eacute;", "\u00c9",
+ "Ecaron;", "\u011a",
+ "Ecirc", "\u00ca",
+ "Ecirc;", "\u00ca",
+ "Ecy;", "\u042d",
+ "Edot;", "\u0116",
+ "Efr;", "\ud835\udd08",
+ "Egrave", "\u00c8",
+ "Egrave;", "\u00c8",
+ "Element;", "\u2208",
+ "Emacr;", "\u0112",
+ "EmptySmallSquare;", "\u25fb",
+ "EmptyVerySmallSquare;", "\u25ab",
+ "Eogon;", "\u0118",
+ "Eopf;", "\ud835\udd3c",
+ "Epsilon;", "\u0395",
+ "Equal;", "\u2a75",
+ "EqualTilde;", "\u2242",
+ "Equilibrium;", "\u21cc",
+ "Escr;", "\u2130",
+ "Esim;", "\u2a73",
+ "Eta;", "\u0397",
+ "Euml", "\u00cb",
+ "Euml;", "\u00cb",
+ "Exists;", "\u2203",
+ "ExponentialE;", "\u2147",
+ "Fcy;", "\u0424",
+ "Ffr;", "\ud835\udd09",
+ "FilledSmallSquare;", "\u25fc",
+ "FilledVerySmallSquare;", "\u25aa",
+ "Fopf;", "\ud835\udd3d",
+ "ForAll;", "\u2200",
+ "Fouriertrf;", "\u2131",
+ "Fscr;", "\u2131",
+ "GJcy;", "\u0403",
+ "GT", "\u003e",
+ "GT;", "\u003e",
+ "Gamma;", "\u0393",
+ "Gammad;", "\u03dc",
+ "Gbreve;", "\u011e",
+ "Gcedil;", "\u0122",
+ "Gcirc;", "\u011c",
+ "Gcy;", "\u0413",
+ "Gdot;", "\u0120",
+ "Gfr;", "\ud835\udd0a",
+ "Gg;", "\u22d9",
+ "Gopf;", "\ud835\udd3e",
+ "GreaterEqual;", "\u2265",
+ "GreaterEqualLess;", "\u22db",
+ "GreaterFullEqual;", "\u2267",
+ "GreaterGreater;", "\u2aa2",
+ "GreaterLess;", "\u2277",
+ "GreaterSlantEqual;", "\u2a7e",
+ "GreaterTilde;", "\u2273",
+ "Gscr;", "\ud835\udca2",
+ "Gt;", "\u226b",
+ "HARDcy;", "\u042a",
+ "Hacek;", "\u02c7",
+ "Hat;", "\u005e",
+ "Hcirc;", "\u0124",
+ "Hfr;", "\u210c",
+ "HilbertSpace;", "\u210b",
+ "Hopf;", "\u210d",
+ "HorizontalLine;", "\u2500",
+ "Hscr;", "\u210b",
+ "Hstrok;", "\u0126",
+ "HumpDownHump;", "\u224e",
+ "HumpEqual;", "\u224f",
+ "IEcy;", "\u0415",
+ "IJlig;", "\u0132",
+ "IOcy;", "\u0401",
+ "Iacute", "\u00cd",
+ "Iacute;", "\u00cd",
+ "Icirc", "\u00ce",
+ "Icirc;", "\u00ce",
+ "Icy;", "\u0418",
+ "Idot;", "\u0130",
+ "Ifr;", "\u2111",
+ "Igrave", "\u00cc",
+ "Igrave;", "\u00cc",
+ "Im;", "\u2111",
+ "Imacr;", "\u012a",
+ "ImaginaryI;", "\u2148",
+ "Implies;", "\u21d2",
+ "Int;", "\u222c",
+ "Integral;", "\u222b",
+ "Intersection;", "\u22c2",
+ "InvisibleComma;", "\u2063",
+ "InvisibleTimes;", "\u2062",
+ "Iogon;", "\u012e",
+ "Iopf;", "\ud835\udd40",
+ "Iota;", "\u0399",
+ "Iscr;", "\u2110",
+ "Itilde;", "\u0128",
+ "Iukcy;", "\u0406",
+ "Iuml", "\u00cf",
+ "Iuml;", "\u00cf",
+ "Jcirc;", "\u0134",
+ "Jcy;", "\u0419",
+ "Jfr;", "\ud835\udd0d",
+ "Jopf;", "\ud835\udd41",
+ "Jscr;", "\ud835\udca5",
+ "Jsercy;", "\u0408",
+ "Jukcy;", "\u0404",
+ "KHcy;", "\u0425",
+ "KJcy;", "\u040c",
+ "Kappa;", "\u039a",
+ "Kcedil;", "\u0136",
+ "Kcy;", "\u041a",
+ "Kfr;", "\ud835\udd0e",
+ "Kopf;", "\ud835\udd42",
+ "Kscr;", "\ud835\udca6",
+ "LJcy;", "\u0409",
+ "LT", "\u003c",
+ "LT;", "\u003c",
+ "Lacute;", "\u0139",
+ "Lambda;", "\u039b",
+ "Lang;", "\u27ea",
+ "Laplacetrf;", "\u2112",
+ "Larr;", "\u219e",
+ "Lcaron;", "\u013d",
+ "Lcedil;", "\u013b",
+ "Lcy;", "\u041b",
+ "LeftAngleBracket;", "\u27e8",
+ "LeftArrow;", "\u2190",
+ "LeftArrowBar;", "\u21e4",
+ "LeftArrowRightArrow;", "\u21c6",
+ "LeftCeiling;", "\u2308",
+ "LeftDoubleBracket;", "\u27e6",
+ "LeftDownTeeVector;", "\u2961",
+ "LeftDownVector;", "\u21c3",
+ "LeftDownVectorBar;", "\u2959",
+ "LeftFloor;", "\u230a",
+ "LeftRightArrow;", "\u2194",
+ "LeftRightVector;", "\u294e",
+ "LeftTee;", "\u22a3",
+ "LeftTeeArrow;", "\u21a4",
+ "LeftTeeVector;", "\u295a",
+ "LeftTriangle;", "\u22b2",
+ "LeftTriangleBar;", "\u29cf",
+ "LeftTriangleEqual;", "\u22b4",
+ "LeftUpDownVector;", "\u2951",
+ "LeftUpTeeVector;", "\u2960",
+ "LeftUpVector;", "\u21bf",
+ "LeftUpVectorBar;", "\u2958",
+ "LeftVector;", "\u21bc",
+ "LeftVectorBar;", "\u2952",
+ "Leftarrow;", "\u21d0",
+ "Leftrightarrow;", "\u21d4",
+ "LessEqualGreater;", "\u22da",
+ "LessFullEqual;", "\u2266",
+ "LessGreater;", "\u2276",
+ "LessLess;", "\u2aa1",
+ "LessSlantEqual;", "\u2a7d",
+ "LessTilde;", "\u2272",
+ "Lfr;", "\ud835\udd0f",
+ "Ll;", "\u22d8",
+ "Lleftarrow;", "\u21da",
+ "Lmidot;", "\u013f",
+ "LongLeftArrow;", "\u27f5",
+ "LongLeftRightArrow;", "\u27f7",
+ "LongRightArrow;", "\u27f6",
+ "Longleftarrow;", "\u27f8",
+ "Longleftrightarrow;", "\u27fa",
+ "Longrightarrow;", "\u27f9",
+ "Lopf;", "\ud835\udd43",
+ "LowerLeftArrow;", "\u2199",
+ "LowerRightArrow;", "\u2198",
+ "Lscr;", "\u2112",
+ "Lsh;", "\u21b0",
+ "Lstrok;", "\u0141",
+ "Lt;", "\u226a",
+ "Map;", "\u2905",
+ "Mcy;", "\u041c",
+ "MediumSpace;", "\u205f",
+ "Mellintrf;", "\u2133",
+ "Mfr;", "\ud835\udd10",
+ "MinusPlus;", "\u2213",
+ "Mopf;", "\ud835\udd44",
+ "Mscr;", "\u2133",
+ "Mu;", "\u039c",
+ "NJcy;", "\u040a",
+ "Nacute;", "\u0143",
+ "Ncaron;", "\u0147",
+ "Ncedil;", "\u0145",
+ "Ncy;", "\u041d",
+ "NegativeMediumSpace;", "\u200b",
+ "NegativeThickSpace;", "\u200b",
+ "NegativeThinSpace;", "\u200b",
+ "NegativeVeryThinSpace;", "\u200b",
+ "NestedGreaterGreater;", "\u226b",
+ "NestedLessLess;", "\u226a",
+ "NewLine;", "\n",
+ "Nfr;", "\ud835\udd11",
+ "NoBreak;", "\u2060",
+ "NonBreakingSpace;", "\u00a0",
+ "Nopf;", "\u2115",
+ "Not;", "\u2aec",
+ "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",
+ "NotLeftTriangle;", "\u22ea",
+ "NotLeftTriangleBar;", "\u29cf\u0338",
+ "NotLeftTriangleEqual;", "\u22ec",
+ "NotLess;", "\u226e",
+ "NotLessEqual;", "\u2270",
+ "NotLessGreater;", "\u2278",
+ "NotLessLess;", "\u226a\u0338",
+ "NotLessSlantEqual;", "\u2a7d\u0338",
+ "NotLessTilde;", "\u2274",
+ "NotNestedGreaterGreater;", "\u2aa2\u0338",
+ "NotNestedLessLess;", "\u2aa1\u0338",
+ "NotPrecedes;", "\u2280",
+ "NotPrecedesEqual;", "\u2aaf\u0338",
+ "NotPrecedesSlantEqual;", "\u22e0",
+ "NotReverseElement;", "\u220c",
+ "NotRightTriangle;", "\u22eb",
+ "NotRightTriangleBar;", "\u29d0\u0338",
+ "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",
+ "Nscr;", "\ud835\udca9",
+ "Ntilde", "\u00d1",
+ "Ntilde;", "\u00d1",
+ "Nu;", "\u039d",
+ "OElig;", "\u0152",
+ "Oacute", "\u00d3",
+ "Oacute;", "\u00d3",
+ "Ocirc", "\u00d4",
+ "Ocirc;", "\u00d4",
+ "Ocy;", "\u041e",
+ "Odblac;", "\u0150",
+ "Ofr;", "\ud835\udd12",
+ "Ograve", "\u00d2",
+ "Ograve;", "\u00d2",
+ "Omacr;", "\u014c",
+ "Omega;", "\u03a9",
+ "Omicron;", "\u039f",
+ "Oopf;", "\ud835\udd46",
+ "OpenCurlyDoubleQuote;", "\u201c",
+ "OpenCurlyQuote;", "\u2018",
+ "Or;", "\u2a54",
+ "Oscr;", "\ud835\udcaa",
+ "Oslash", "\u00d8",
+ "Oslash;", "\u00d8",
+ "Otilde", "\u00d5",
+ "Otilde;", "\u00d5",
+ "Otimes;", "\u2a37",
+ "Ouml", "\u00d6",
+ "Ouml;", "\u00d6",
+ "OverBar;", "\u203e",
+ "OverBrace;", "\u23de",
+ "OverBracket;", "\u23b4",
+ "OverParenthesis;", "\u23dc",
+ "PartialD;", "\u2202",
+ "Pcy;", "\u041f",
+ "Pfr;", "\ud835\udd13",
+ "Phi;", "\u03a6",
+ "Pi;", "\u03a0",
+ "PlusMinus;", "\u00b1",
+ "Poincareplane;", "\u210c",
+ "Popf;", "\u2119",
+ "Pr;", "\u2abb",
+ "Precedes;", "\u227a",
+ "PrecedesEqual;", "\u2aaf",
+ "PrecedesSlantEqual;", "\u227c",
+ "PrecedesTilde;", "\u227e",
+ "Prime;", "\u2033",
+ "Product;", "\u220f",
+ "Proportion;", "\u2237",
+ "Proportional;", "\u221d",
+ "Pscr;", "\ud835\udcab",
+ "Psi;", "\u03a8",
+ "QUOT", "\"",
+ "QUOT;", "\"",
+ "Qfr;", "\ud835\udd14",
+ "Qopf;", "\u211a",
+ "Qscr;", "\ud835\udcac",
+ "RBarr;", "\u2910",
+ "REG", "\u00ae",
+ "REG;", "\u00ae",
+ "Racute;", "\u0154",
+ "Rang;", "\u27eb",
+ "Rarr;", "\u21a0",
+ "Rarrtl;", "\u2916",
+ "Rcaron;", "\u0158",
+ "Rcedil;", "\u0156",
+ "Rcy;", "\u0420",
+ "Re;", "\u211c",
+ "ReverseElement;", "\u220b",
+ "ReverseEquilibrium;", "\u21cb",
+ "ReverseUpEquilibrium;", "\u296f",
+ "Rfr;", "\u211c",
+ "Rho;", "\u03a1",
+ "RightAngleBracket;", "\u27e9",
+ "RightArrow;", "\u2192",
+ "RightArrowBar;", "\u21e5",
+ "RightArrowLeftArrow;", "\u21c4",
+ "RightCeiling;", "\u2309",
+ "RightDoubleBracket;", "\u27e7",
+ "RightDownTeeVector;", "\u295d",
+ "RightDownVector;", "\u21c2",
+ "RightDownVectorBar;", "\u2955",
+ "RightFloor;", "\u230b",
+ "RightTee;", "\u22a2",
+ "RightTeeArrow;", "\u21a6",
+ "RightTeeVector;", "\u295b",
+ "RightTriangle;", "\u22b3",
+ "RightTriangleBar;", "\u29d0",
+ "RightTriangleEqual;", "\u22b5",
+ "RightUpDownVector;", "\u294f",
+ "RightUpTeeVector;", "\u295c",
+ "RightUpVector;", "\u21be",
+ "RightUpVectorBar;", "\u2954",
+ "RightVector;", "\u21c0",
+ "RightVectorBar;", "\u2953",
+ "Rightarrow;", "\u21d2",
+ "Ropf;", "\u211d",
+ "RoundImplies;", "\u2970",
+ "Rrightarrow;", "\u21db",
+ "Rscr;", "\u211b",
+ "Rsh;", "\u21b1",
+ "RuleDelayed;", "\u29f4",
+ "SHCHcy;", "\u0429",
+ "SHcy;", "\u0428",
+ "SOFTcy;", "\u042c",
+ "Sacute;", "\u015a",
+ "Sc;", "\u2abc",
+ "Scaron;", "\u0160",
+ "Scedil;", "\u015e",
+ "Scirc;", "\u015c",
+ "Scy;", "\u0421",
+ "Sfr;", "\ud835\udd16",
+ "ShortDownArrow;", "\u2193",
+ "ShortLeftArrow;", "\u2190",
+ "ShortRightArrow;", "\u2192",
+ "ShortUpArrow;", "\u2191",
+ "Sigma;", "\u03a3",
+ "SmallCircle;", "\u2218",
+ "Sopf;", "\ud835\udd4a",
+ "Sqrt;", "\u221a",
+ "Square;", "\u25a1",
+ "SquareIntersection;", "\u2293",
+ "SquareSubset;", "\u228f",
+ "SquareSubsetEqual;", "\u2291",
+ "SquareSuperset;", "\u2290",
+ "SquareSupersetEqual;", "\u2292",
+ "SquareUnion;", "\u2294",
+ "Sscr;", "\ud835\udcae",
+ "Star;", "\u22c6",
+ "Sub;", "\u22d0",
+ "Subset;", "\u22d0",
+ "SubsetEqual;", "\u2286",
+ "Succeeds;", "\u227b",
+ "SucceedsEqual;", "\u2ab0",
+ "SucceedsSlantEqual;", "\u227d",
+ "SucceedsTilde;", "\u227f",
+ "SuchThat;", "\u220b",
+ "Sum;", "\u2211",
+ "Sup;", "\u22d1",
+ "Superset;", "\u2283",
+ "SupersetEqual;", "\u2287",
+ "Supset;", "\u22d1",
+ "THORN", "\u00de",
+ "THORN;", "\u00de",
+ "TRADE;", "\u2122",
+ "TSHcy;", "\u040b",
+ "TScy;", "\u0426",
+ "Tab;", "\u0009",
+ "Tau;", "\u03a4",
+ "Tcaron;", "\u0164",
+ "Tcedil;", "\u0162",
+ "Tcy;", "\u0422",
+ "Tfr;", "\ud835\udd17",
+ "Therefore;", "\u2234",
+ "Theta;", "\u0398",
+ "ThickSpace;", "\u205f\u200a",
+ "ThinSpace;", "\u2009",
+ "Tilde;", "\u223c",
+ "TildeEqual;", "\u2243",
+ "TildeFullEqual;", "\u2245",
+ "TildeTilde;", "\u2248",
+ "Topf;", "\ud835\udd4b",
+ "TripleDot;", "\u20db",
+ "Tscr;", "\ud835\udcaf",
+ "Tstrok;", "\u0166",
+ "Uacute", "\u00da",
+ "Uacute;", "\u00da",
+ "Uarr;", "\u219f",
+ "Uarrocir;", "\u2949",
+ "Ubrcy;", "\u040e",
+ "Ubreve;", "\u016c",
+ "Ucirc", "\u00db",
+ "Ucirc;", "\u00db",
+ "Ucy;", "\u0423",
+ "Udblac;", "\u0170",
+ "Ufr;", "\ud835\udd18",
+ "Ugrave", "\u00d9",
+ "Ugrave;", "\u00d9",
+ "Umacr;", "\u016a",
+ "UnderBar;", "\u005f",
+ "UnderBrace;", "\u23df",
+ "UnderBracket;", "\u23b5",
+ "UnderParenthesis;", "\u23dd",
+ "Union;", "\u22c3",
+ "UnionPlus;", "\u228e",
+ "Uogon;", "\u0172",
+ "Uopf;", "\ud835\udd4c",
+ "UpArrow;", "\u2191",
+ "UpArrowBar;", "\u2912",
+ "UpArrowDownArrow;", "\u21c5",
+ "UpDownArrow;", "\u2195",
+ "UpEquilibrium;", "\u296e",
+ "UpTee;", "\u22a5",
+ "UpTeeArrow;", "\u21a5",
+ "Uparrow;", "\u21d1",
+ "Updownarrow;", "\u21d5",
+ "UpperLeftArrow;", "\u2196",
+ "UpperRightArrow;", "\u2197",
+ "Upsi;", "\u03d2",
+ "Upsilon;", "\u03a5",
+ "Uring;", "\u016e",
+ "Uscr;", "\ud835\udcb0",
+ "Utilde;", "\u0168",
+ "Uuml", "\u00dc",
+ "Uuml;", "\u00dc",
+ "VDash;", "\u22ab",
+ "Vbar;", "\u2aeb",
+ "Vcy;", "\u0412",
+ "Vdash;", "\u22a9",
+ "Vdashl;", "\u2ae6",
+ "Vee;", "\u22c1",
+ "Verbar;", "\u2016",
+ "Vert;", "\u2016",
+ "VerticalBar;", "\u2223",
+ "VerticalLine;", "\u007c",
+ "VerticalSeparator;", "\u2758",
+ "VerticalTilde;", "\u2240",
+ "VeryThinSpace;", "\u200a",
+ "Vfr;", "\ud835\udd19",
+ "Vopf;", "\ud835\udd4d",
+ "Vscr;", "\ud835\udcb1",
+ "Vvdash;", "\u22aa",
+ "Wcirc;", "\u0174",
+ "Wedge;", "\u22c0",
+ "Wfr;", "\ud835\udd1a",
+ "Wopf;", "\ud835\udd4e",
+ "Wscr;", "\ud835\udcb2",
+ "Xfr;", "\ud835\udd1b",
+ "Xi;", "\u039e",
+ "Xopf;", "\ud835\udd4f",
+ "Xscr;", "\ud835\udcb3",
+ "YAcy;", "\u042f",
+ "YIcy;", "\u0407",
+ "YUcy;", "\u042e",
+ "Yacute", "\u00dd",
+ "Yacute;", "\u00dd",
+ "Ycirc;", "\u0176",
+ "Ycy;", "\u042b",
+ "Yfr;", "\ud835\udd1c",
+ "Yopf;", "\ud835\udd50",
+ "Yscr;", "\ud835\udcb4",
+ "Yuml;", "\u0178",
+ "ZHcy;", "\u0416",
+ "Zacute;", "\u0179",
+ "Zcaron;", "\u017d",
+ "Zcy;", "\u0417",
+ "Zdot;", "\u017b",
+ "ZeroWidthSpace;", "\u200b",
+ "Zeta;", "\u0396",
+ "Zfr;", "\u2128",
+ "Zopf;", "\u2124",
+ "Zscr;", "\ud835\udcb5",
+ "aacute", "\u00e1",
+ "aacute;", "\u00e1",
+ "abreve;", "\u0103",
+ "ac;", "\u223e",
+ "acE;", "\u223e\u0333",
+ "acd;", "\u223f",
+ "acirc", "\u00e2",
+ "acirc;", "\u00e2",
+ "acute", "\u00b4",
+ "acute;", "\u00b4",
+ "acy;", "\u0430",
+ "aelig", "\u00e6",
+ "aelig;", "\u00e6",
+ "af;", "\u2061",
+ "afr;", "\ud835\udd1e",
+ "agrave", "\u00e0",
+ "agrave;", "\u00e0",
+ "alefsym;", "\u2135",
+ "aleph;", "\u2135",
+ "alpha;", "\u03b1",
+ "amacr;", "\u0101",
+ "amalg;", "\u2a3f",
+ "amp", "\u0026",
+ "amp;", "\u0026",
+ "and;", "\u2227",
+ "andand;", "\u2a55",
+ "andd;", "\u2a5c",
+ "andslope;", "\u2a58",
+ "andv;", "\u2a5a",
+ "ang;", "\u2220",
+ "ange;", "\u29a4",
+ "angle;", "\u2220",
+ "angmsd;", "\u2221",
+ "angmsdaa;", "\u29a8",
+ "angmsdab;", "\u29a9",
+ "angmsdac;", "\u29aa",
+ "angmsdad;", "\u29ab",
+ "angmsdae;", "\u29ac",
+ "angmsdaf;", "\u29ad",
+ "angmsdag;", "\u29ae",
+ "angmsdah;", "\u29af",
+ "angrt;", "\u221f",
+ "angrtvb;", "\u22be",
+ "angrtvbd;", "\u299d",
+ "angsph;", "\u2222",
+ "angst;", "\u00c5",
+ "angzarr;", "\u237c",
+ "aogon;", "\u0105",
+ "aopf;", "\ud835\udd52",
+ "ap;", "\u2248",
+ "apE;", "\u2a70",
+ "apacir;", "\u2a6f",
+ "ape;", "\u224a",
+ "apid;", "\u224b",
+ "apos;", "\u0027",
+ "approx;", "\u2248",
+ "approxeq;", "\u224a",
+ "aring", "\u00e5",
+ "aring;", "\u00e5",
+ "ascr;", "\ud835\udcb6",
+ "ast;", "\u002a",
+ "asymp;", "\u2248",
+ "asympeq;", "\u224d",
+ "atilde", "\u00e3",
+ "atilde;", "\u00e3",
+ "auml", "\u00e4",
+ "auml;", "\u00e4",
+ "awconint;", "\u2233",
+ "awint;", "\u2a11",
+ "bNot;", "\u2aed",
+ "backcong;", "\u224c",
+ "backepsilon;", "\u03f6",
+ "backprime;", "\u2035",
+ "backsim;", "\u223d",
+ "backsimeq;", "\u22cd",
+ "barvee;", "\u22bd",
+ "barwed;", "\u2305",
+ "barwedge;", "\u2305",
+ "bbrk;", "\u23b5",
+ "bbrktbrk;", "\u23b6",
+ "bcong;", "\u224c",
+ "bcy;", "\u0431",
+ "bdquo;", "\u201e",
+ "becaus;", "\u2235",
+ "because;", "\u2235",
+ "bemptyv;", "\u29b0",
+ "bepsi;", "\u03f6",
+ "bernou;", "\u212c",
+ "beta;", "\u03b2",
+ "beth;", "\u2136",
+ "between;", "\u226c",
+ "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;", "\u2310",
+ "bopf;", "\ud835\udd53",
+ "bot;", "\u22a5",
+ "bottom;", "\u22a5",
+ "bowtie;", "\u22c8",
+ "boxDL;", "\u2557",
+ "boxDR;", "\u2554",
+ "boxDl;", "\u2556",
+ "boxDr;", "\u2553",
+ "boxH;", "\u2550",
+ "boxHD;", "\u2566",
+ "boxHU;", "\u2569",
+ "boxHd;", "\u2564",
+ "boxHu;", "\u2567",
+ "boxUL;", "\u255d",
+ "boxUR;", "\u255a",
+ "boxUl;", "\u255c",
+ "boxUr;", "\u2559",
+ "boxV;", "\u2551",
+ "boxVH;", "\u256c",
+ "boxVL;", "\u2563",
+ "boxVR;", "\u2560",
+ "boxVh;", "\u256b",
+ "boxVl;", "\u2562",
+ "boxVr;", "\u255f",
+ "boxbox;", "\u29c9",
+ "boxdL;", "\u2555",
+ "boxdR;", "\u2552",
+ "boxdl;", "\u2510",
+ "boxdr;", "\u250c",
+ "boxh;", "\u2500",
+ "boxhD;", "\u2565",
+ "boxhU;", "\u2568",
+ "boxhd;", "\u252c",
+ "boxhu;", "\u2534",
+ "boxminus;", "\u229f",
+ "boxplus;", "\u229e",
+ "boxtimes;", "\u22a0",
+ "boxuL;", "\u255b",
+ "boxuR;", "\u2558",
+ "boxul;", "\u2518",
+ "boxur;", "\u2514",
+ "boxv;", "\u2502",
+ "boxvH;", "\u256a",
+ "boxvL;", "\u2561",
+ "boxvR;", "\u255e",
+ "boxvh;", "\u253c",
+ "boxvl;", "\u2524",
+ "boxvr;", "\u251c",
+ "bprime;", "\u2035",
+ "breve;", "\u02d8",
+ "brvbar", "\u00a6",
+ "brvbar;", "\u00a6",
+ "bscr;", "\ud835\udcb7",
+ "bsemi;", "\u204f",
+ "bsim;", "\u223d",
+ "bsime;", "\u22cd",
+ "bsol;", "\\",
+ "bsolb;", "\u29c5",
+ "bsolhsub;", "\u27c8",
+ "bull;", "\u2022",
+ "bullet;", "\u2022",
+ "bump;", "\u224e",
+ "bumpE;", "\u2aae",
+ "bumpe;", "\u224f",
+ "bumpeq;", "\u224f",
+ "cacute;", "\u0107",
+ "cap;", "\u2229",
+ "capand;", "\u2a44",
+ "capbrcup;", "\u2a49",
+ "capcap;", "\u2a4b",
+ "capcup;", "\u2a47",
+ "capdot;", "\u2a40",
+ "caps;", "\u2229\ufe00",
+ "caret;", "\u2041",
+ "caron;", "\u02c7",
+ "ccaps;", "\u2a4d",
+ "ccaron;", "\u010d",
+ "ccedil", "\u00e7",
+ "ccedil;", "\u00e7",
+ "ccirc;", "\u0109",
+ "ccups;", "\u2a4c",
+ "ccupssm;", "\u2a50",
+ "cdot;", "\u010b",
+ "cedil", "\u00b8",
+ "cedil;", "\u00b8",
+ "cemptyv;", "\u29b2",
+ "cent", "\u00a2",
+ "cent;", "\u00a2",
+ "centerdot;", "\u00b7",
+ "cfr;", "\ud835\udd20",
+ "chcy;", "\u0447",
+ "check;", "\u2713",
+ "checkmark;", "\u2713",
+ "chi;", "\u03c7",
+ "cir;", "\u25cb",
+ "cirE;", "\u29c3",
+ "circ;", "\u02c6",
+ "circeq;", "\u2257",
+ "circlearrowleft;", "\u21ba",
+ "circlearrowright;", "\u21bb",
+ "circledR;", "\u00ae",
+ "circledS;", "\u24c8",
+ "circledast;", "\u229b",
+ "circledcirc;", "\u229a",
+ "circleddash;", "\u229d",
+ "cire;", "\u2257",
+ "cirfnint;", "\u2a10",
+ "cirmid;", "\u2aef",
+ "cirscir;", "\u29c2",
+ "clubs;", "\u2663",
+ "clubsuit;", "\u2663",
+ "colon;", "\u003a",
+ "colone;", "\u2254",
+ "coloneq;", "\u2254",
+ "comma;", "\u002c",
+ "commat;", "\u0040",
+ "comp;", "\u2201",
+ "compfn;", "\u2218",
+ "complement;", "\u2201",
+ "complexes;", "\u2102",
+ "cong;", "\u2245",
+ "congdot;", "\u2a6d",
+ "conint;", "\u222e",
+ "copf;", "\ud835\udd54",
+ "coprod;", "\u2210",
+ "copy", "\u00a9",
+ "copy;", "\u00a9",
+ "copysr;", "\u2117",
+ "crarr;", "\u21b5",
+ "cross;", "\u2717",
+ "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",
+ "cup;", "\u222a",
+ "cupbrcap;", "\u2a48",
+ "cupcap;", "\u2a46",
+ "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",
+ "dArr;", "\u21d3",
+ "dHar;", "\u2965",
+ "dagger;", "\u2020",
+ "daleth;", "\u2138",
+ "darr;", "\u2193",
+ "dash;", "\u2010",
+ "dashv;", "\u22a3",
+ "dbkarow;", "\u290f",
+ "dblac;", "\u02dd",
+ "dcaron;", "\u010f",
+ "dcy;", "\u0434",
+ "dd;", "\u2146",
+ "ddagger;", "\u2021",
+ "ddarr;", "\u21ca",
+ "ddotseq;", "\u2a77",
+ "deg", "\u00b0",
+ "deg;", "\u00b0",
+ "delta;", "\u03b4",
+ "demptyv;", "\u29b1",
+ "dfisht;", "\u297f",
+ "dfr;", "\ud835\udd21",
+ "dharl;", "\u21c3",
+ "dharr;", "\u21c2",
+ "diam;", "\u22c4",
+ "diamond;", "\u22c4",
+ "diamondsuit;", "\u2666",
+ "diams;", "\u2666",
+ "die;", "\u00a8",
+ "digamma;", "\u03dd",
+ "disin;", "\u22f2",
+ "div;", "\u00f7",
+ "divide", "\u00f7",
+ "divide;", "\u00f7",
+ "divideontimes;", "\u22c7",
+ "divonx;", "\u22c7",
+ "djcy;", "\u0452",
+ "dlcorn;", "\u231e",
+ "dlcrop;", "\u230d",
+ "dollar;", "\u0024",
+ "dopf;", "\ud835\udd55",
+ "dot;", "\u02d9",
+ "doteq;", "\u2250",
+ "doteqdot;", "\u2251",
+ "dotminus;", "\u2238",
+ "dotplus;", "\u2214",
+ "dotsquare;", "\u22a1",
+ "doublebarwedge;", "\u2306",
+ "downarrow;", "\u2193",
+ "downdownarrows;", "\u21ca",
+ "downharpoonleft;", "\u21c3",
+ "downharpoonright;", "\u21c2",
+ "drbkarow;", "\u2910",
+ "drcorn;", "\u231f",
+ "drcrop;", "\u230c",
+ "dscr;", "\ud835\udcb9",
+ "dscy;", "\u0455",
+ "dsol;", "\u29f6",
+ "dstrok;", "\u0111",
+ "dtdot;", "\u22f1",
+ "dtri;", "\u25bf",
+ "dtrif;", "\u25be",
+ "duarr;", "\u21f5",
+ "duhar;", "\u296f",
+ "dwangle;", "\u29a6",
+ "dzcy;", "\u045f",
+ "dzigrarr;", "\u27ff",
+ "eDDot;", "\u2a77",
+ "eDot;", "\u2251",
+ "eacute", "\u00e9",
+ "eacute;", "\u00e9",
+ "easter;", "\u2a6e",
+ "ecaron;", "\u011b",
+ "ecir;", "\u2256",
+ "ecirc", "\u00ea",
+ "ecirc;", "\u00ea",
+ "ecolon;", "\u2255",
+ "ecy;", "\u044d",
+ "edot;", "\u0117",
+ "ee;", "\u2147",
+ "efDot;", "\u2252",
+ "efr;", "\ud835\udd22",
+ "eg;", "\u2a9a",
+ "egrave", "\u00e8",
+ "egrave;", "\u00e8",
+ "egs;", "\u2a96",
+ "egsdot;", "\u2a98",
+ "el;", "\u2a99",
+ "elinters;", "\u23e7",
+ "ell;", "\u2113",
+ "els;", "\u2a95",
+ "elsdot;", "\u2a97",
+ "emacr;", "\u0113",
+ "empty;", "\u2205",
+ "emptyset;", "\u2205",
+ "emptyv;", "\u2205",
+ "emsp13;", "\u2004",
+ "emsp14;", "\u2005",
+ "emsp;", "\u2003",
+ "eng;", "\u014b",
+ "ensp;", "\u2002",
+ "eogon;", "\u0119",
+ "eopf;", "\ud835\udd56",
+ "epar;", "\u22d5",
+ "eparsl;", "\u29e3",
+ "eplus;", "\u2a71",
+ "epsi;", "\u03b5",
+ "epsilon;", "\u03b5",
+ "epsiv;", "\u03f5",
+ "eqcirc;", "\u2256",
+ "eqcolon;", "\u2255",
+ "eqsim;", "\u2242",
+ "eqslantgtr;", "\u2a96",
+ "eqslantless;", "\u2a95",
+ "equals;", "\u003d",
+ "equest;", "\u225f",
+ "equiv;", "\u2261",
+ "equivDD;", "\u2a78",
+ "eqvparsl;", "\u29e5",
+ "erDot;", "\u2253",
+ "erarr;", "\u2971",
+ "escr;", "\u212f",
+ "esdot;", "\u2250",
+ "esim;", "\u2242",
+ "eta;", "\u03b7",
+ "eth", "\u00f0",
+ "eth;", "\u00f0",
+ "euml", "\u00eb",
+ "euml;", "\u00eb",
+ "euro;", "\u20ac",
+ "excl;", "\u0021",
+ "exist;", "\u2203",
+ "expectation;", "\u2130",
+ "exponentiale;", "\u2147",
+ "fallingdotseq;", "\u2252",
+ "fcy;", "\u0444",
+ "female;", "\u2640",
+ "ffilig;", "\ufb03",
+ "fflig;", "\ufb00",
+ "ffllig;", "\ufb04",
+ "ffr;", "\ud835\udd23",
+ "filig;", "\ufb01",
+ "fjlig;", "\u0066\u006a",
+ "flat;", "\u266d",
+ "fllig;", "\ufb02",
+ "fltns;", "\u25b1",
+ "fnof;", "\u0192",
+ "fopf;", "\ud835\udd57",
+ "forall;", "\u2200",
+ "fork;", "\u22d4",
+ "forkv;", "\u2ad9",
+ "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",
+ "gE;", "\u2267",
+ "gEl;", "\u2a8c",
+ "gacute;", "\u01f5",
+ "gamma;", "\u03b3",
+ "gammad;", "\u03dd",
+ "gap;", "\u2a86",
+ "gbreve;", "\u011f",
+ "gcirc;", "\u011d",
+ "gcy;", "\u0433",
+ "gdot;", "\u0121",
+ "ge;", "\u2265",
+ "gel;", "\u22db",
+ "geq;", "\u2265",
+ "geqq;", "\u2267",
+ "geqslant;", "\u2a7e",
+ "ges;", "\u2a7e",
+ "gescc;", "\u2aa9",
+ "gesdot;", "\u2a80",
+ "gesdoto;", "\u2a82",
+ "gesdotol;", "\u2a84",
+ "gesl;", "\u22db\ufe00",
+ "gesles;", "\u2a94",
+ "gfr;", "\ud835\udd24",
+ "gg;", "\u226b",
+ "ggg;", "\u22d9",
+ "gimel;", "\u2137",
+ "gjcy;", "\u0453",
+ "gl;", "\u2277",
+ "glE;", "\u2a92",
+ "gla;", "\u2aa5",
+ "glj;", "\u2aa4",
+ "gnE;", "\u2269",
+ "gnap;", "\u2a8a",
+ "gnapprox;", "\u2a8a",
+ "gne;", "\u2a88",
+ "gneq;", "\u2a88",
+ "gneqq;", "\u2269",
+ "gnsim;", "\u22e7",
+ "gopf;", "\ud835\udd58",
+ "grave;", "\u0060",
+ "gscr;", "\u210a",
+ "gsim;", "\u2273",
+ "gsime;", "\u2a8e",
+ "gsiml;", "\u2a90",
+ "gt", "\u003e",
+ "gt;", "\u003e",
+ "gtcc;", "\u2aa7",
+ "gtcir;", "\u2a7a",
+ "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",
+ "hArr;", "\u21d4",
+ "hairsp;", "\u200a",
+ "half;", "\u00bd",
+ "hamilt;", "\u210b",
+ "hardcy;", "\u044a",
+ "harr;", "\u2194",
+ "harrcir;", "\u2948",
+ "harrw;", "\u21ad",
+ "hbar;", "\u210f",
+ "hcirc;", "\u0125",
+ "hearts;", "\u2665",
+ "heartsuit;", "\u2665",
+ "hellip;", "\u2026",
+ "hercon;", "\u22b9",
+ "hfr;", "\ud835\udd25",
+ "hksearow;", "\u2925",
+ "hkswarow;", "\u2926",
+ "hoarr;", "\u21ff",
+ "homtht;", "\u223b",
+ "hookleftarrow;", "\u21a9",
+ "hookrightarrow;", "\u21aa",
+ "hopf;", "\ud835\udd59",
+ "horbar;", "\u2015",
+ "hscr;", "\ud835\udcbd",
+ "hslash;", "\u210f",
+ "hstrok;", "\u0127",
+ "hybull;", "\u2043",
+ "hyphen;", "\u2010",
+ "iacute", "\u00ed",
+ "iacute;", "\u00ed",
+ "ic;", "\u2063",
+ "icirc", "\u00ee",
+ "icirc;", "\u00ee",
+ "icy;", "\u0438",
+ "iecy;", "\u0435",
+ "iexcl", "\u00a1",
+ "iexcl;", "\u00a1",
+ "iff;", "\u21d4",
+ "ifr;", "\ud835\udd26",
+ "igrave", "\u00ec",
+ "igrave;", "\u00ec",
+ "ii;", "\u2148",
+ "iiiint;", "\u2a0c",
+ "iiint;", "\u222d",
+ "iinfin;", "\u29dc",
+ "iiota;", "\u2129",
+ "ijlig;", "\u0133",
+ "imacr;", "\u012b",
+ "image;", "\u2111",
+ "imagline;", "\u2110",
+ "imagpart;", "\u2111",
+ "imath;", "\u0131",
+ "imof;", "\u22b7",
+ "imped;", "\u01b5",
+ "in;", "\u2208",
+ "incare;", "\u2105",
+ "infin;", "\u221e",
+ "infintie;", "\u29dd",
+ "inodot;", "\u0131",
+ "int;", "\u222b",
+ "intcal;", "\u22ba",
+ "integers;", "\u2124",
+ "intercal;", "\u22ba",
+ "intlarhk;", "\u2a17",
+ "intprod;", "\u2a3c",
+ "iocy;", "\u0451",
+ "iogon;", "\u012f",
+ "iopf;", "\ud835\udd5a",
+ "iota;", "\u03b9",
+ "iprod;", "\u2a3c",
+ "iquest", "\u00bf",
+ "iquest;", "\u00bf",
+ "iscr;", "\ud835\udcbe",
+ "isin;", "\u2208",
+ "isinE;", "\u22f9",
+ "isindot;", "\u22f5",
+ "isins;", "\u22f4",
+ "isinsv;", "\u22f3",
+ "isinv;", "\u2208",
+ "it;", "\u2062",
+ "itilde;", "\u0129",
+ "iukcy;", "\u0456",
+ "iuml", "\u00ef",
+ "iuml;", "\u00ef",
+ "jcirc;", "\u0135",
+ "jcy;", "\u0439",
+ "jfr;", "\ud835\udd27",
+ "jmath;", "\u0237",
+ "jopf;", "\ud835\udd5b",
+ "jscr;", "\ud835\udcbf",
+ "jsercy;", "\u0458",
+ "jukcy;", "\u0454",
+ "kappa;", "\u03ba",
+ "kappav;", "\u03f0",
+ "kcedil;", "\u0137",
+ "kcy;", "\u043a",
+ "kfr;", "\ud835\udd28",
+ "kgreen;", "\u0138",
+ "khcy;", "\u0445",
+ "kjcy;", "\u045c",
+ "kopf;", "\ud835\udd5c",
+ "kscr;", "\ud835\udcc0",
+ "lAarr;", "\u21da",
+ "lArr;", "\u21d0",
+ "lAtail;", "\u291b",
+ "lBarr;", "\u290e",
+ "lE;", "\u2266",
+ "lEg;", "\u2a8b",
+ "lHar;", "\u2962",
+ "lacute;", "\u013a",
+ "laemptyv;", "\u29b4",
+ "lagran;", "\u2112",
+ "lambda;", "\u03bb",
+ "lang;", "\u27e8",
+ "langd;", "\u2991",
+ "langle;", "\u27e8",
+ "lap;", "\u2a85",
+ "laquo", "\u00ab",
+ "laquo;", "\u00ab",
+ "larr;", "\u2190",
+ "larrb;", "\u21e4",
+ "larrbfs;", "\u291f",
+ "larrfs;", "\u291d",
+ "larrhk;", "\u21a9",
+ "larrlp;", "\u21ab",
+ "larrpl;", "\u2939",
+ "larrsim;", "\u2973",
+ "larrtl;", "\u21a2",
+ "lat;", "\u2aab",
+ "latail;", "\u2919",
+ "late;", "\u2aad",
+ "lates;", "\u2aad\ufe00",
+ "lbarr;", "\u290c",
+ "lbbrk;", "\u2772",
+ "lbrace;", "\u007b",
+ "lbrack;", "\u005b",
+ "lbrke;", "\u298b",
+ "lbrksld;", "\u298f",
+ "lbrkslu;", "\u298d",
+ "lcaron;", "\u013e",
+ "lcedil;", "\u013c",
+ "lceil;", "\u2308",
+ "lcub;", "\u007b",
+ "lcy;", "\u043b",
+ "ldca;", "\u2936",
+ "ldquo;", "\u201c",
+ "ldquor;", "\u201e",
+ "ldrdhar;", "\u2967",
+ "ldrushar;", "\u294b",
+ "ldsh;", "\u21b2",
+ "le;", "\u2264",
+ "leftarrow;", "\u2190",
+ "leftarrowtail;", "\u21a2",
+ "leftharpoondown;", "\u21bd",
+ "leftharpoonup;", "\u21bc",
+ "leftleftarrows;", "\u21c7",
+ "leftrightarrow;", "\u2194",
+ "leftrightarrows;", "\u21c6",
+ "leftrightharpoons;", "\u21cb",
+ "leftrightsquigarrow;", "\u21ad",
+ "leftthreetimes;", "\u22cb",
+ "leg;", "\u22da",
+ "leq;", "\u2264",
+ "leqq;", "\u2266",
+ "leqslant;", "\u2a7d",
+ "les;", "\u2a7d",
+ "lescc;", "\u2aa8",
+ "lesdot;", "\u2a7f",
+ "lesdoto;", "\u2a81",
+ "lesdotor;", "\u2a83",
+ "lesg;", "\u22da\ufe00",
+ "lesges;", "\u2a93",
+ "lessapprox;", "\u2a85",
+ "lessdot;", "\u22d6",
+ "lesseqgtr;", "\u22da",
+ "lesseqqgtr;", "\u2a8b",
+ "lessgtr;", "\u2276",
+ "lesssim;", "\u2272",
+ "lfisht;", "\u297c",
+ "lfloor;", "\u230a",
+ "lfr;", "\ud835\udd29",
+ "lg;", "\u2276",
+ "lgE;", "\u2a91",
+ "lhard;", "\u21bd",
+ "lharu;", "\u21bc",
+ "lharul;", "\u296a",
+ "lhblk;", "\u2584",
+ "ljcy;", "\u0459",
+ "ll;", "\u226a",
+ "llarr;", "\u21c7",
+ "llcorner;", "\u231e",
+ "llhard;", "\u296b",
+ "lltri;", "\u25fa",
+ "lmidot;", "\u0140",
+ "lmoust;", "\u23b0",
+ "lmoustache;", "\u23b0",
+ "lnE;", "\u2268",
+ "lnap;", "\u2a89",
+ "lnapprox;", "\u2a89",
+ "lne;", "\u2a87",
+ "lneq;", "\u2a87",
+ "lneqq;", "\u2268",
+ "lnsim;", "\u22e6",
+ "loang;", "\u27ec",
+ "loarr;", "\u21fd",
+ "lobrk;", "\u27e6",
+ "longleftarrow;", "\u27f5",
+ "longleftrightarrow;", "\u27f7",
+ "longmapsto;", "\u27fc",
+ "longrightarrow;", "\u27f6",
+ "looparrowleft;", "\u21ab",
+ "looparrowright;", "\u21ac",
+ "lopar;", "\u2985",
+ "lopf;", "\ud835\udd5d",
+ "loplus;", "\u2a2d",
+ "lotimes;", "\u2a34",
+ "lowast;", "\u2217",
+ "lowbar;", "\u005f",
+ "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",
+ "lsh;", "\u21b0",
+ "lsim;", "\u2272",
+ "lsime;", "\u2a8d",
+ "lsimg;", "\u2a8f",
+ "lsqb;", "\u005b",
+ "lsquo;", "\u2018",
+ "lsquor;", "\u201a",
+ "lstrok;", "\u0142",
+ "lt", "\u003c",
+ "lt;", "\u003c",
+ "ltcc;", "\u2aa6",
+ "ltcir;", "\u2a79",
+ "ltdot;", "\u22d6",
+ "lthree;", "\u22cb",
+ "ltimes;", "\u22c9",
+ "ltlarr;", "\u2976",
+ "ltquest;", "\u2a7b",
+ "ltrPar;", "\u2996",
+ "ltri;", "\u25c3",
+ "ltrie;", "\u22b4",
+ "ltrif;", "\u25c2",
+ "lurdshar;", "\u294a",
+ "luruhar;", "\u2966",
+ "lvertneqq;", "\u2268\ufe00",
+ "lvnE;", "\u2268\ufe00",
+ "mDDot;", "\u223a",
+ "macr", "\u00af",
+ "macr;", "\u00af",
+ "male;", "\u2642",
+ "malt;", "\u2720",
+ "maltese;", "\u2720",
+ "map;", "\u21a6",
+ "mapsto;", "\u21a6",
+ "mapstodown;", "\u21a7",
+ "mapstoleft;", "\u21a4",
+ "mapstoup;", "\u21a5",
+ "marker;", "\u25ae",
+ "mcomma;", "\u2a29",
+ "mcy;", "\u043c",
+ "mdash;", "\u2014",
+ "measuredangle;", "\u2221",
+ "mfr;", "\ud835\udd2a",
+ "mho;", "\u2127",
+ "micro", "\u00b5",
+ "micro;", "\u00b5",
+ "mid;", "\u2223",
+ "midast;", "\u002a",
+ "midcir;", "\u2af0",
+ "middot", "\u00b7",
+ "middot;", "\u00b7",
+ "minus;", "\u2212",
+ "minusb;", "\u229f",
+ "minusd;", "\u2238",
+ "minusdu;", "\u2a2a",
+ "mlcp;", "\u2adb",
+ "mldr;", "\u2026",
+ "mnplus;", "\u2213",
+ "models;", "\u22a7",
+ "mopf;", "\ud835\udd5e",
+ "mp;", "\u2213",
+ "mscr;", "\ud835\udcc2",
+ "mstpos;", "\u223e",
+ "mu;", "\u03bc",
+ "multimap;", "\u22b8",
+ "mumap;", "\u22b8",
+ "nGg;", "\u22d9\u0338",
+ "nGt;", "\u226b\u20d2",
+ "nGtv;", "\u226b\u0338",
+ "nLeftarrow;", "\u21cd",
+ "nLeftrightarrow;", "\u21ce",
+ "nLl;", "\u22d8\u0338",
+ "nLt;", "\u226a\u20d2",
+ "nLtv;", "\u226a\u0338",
+ "nRightarrow;", "\u21cf",
+ "nVDash;", "\u22af",
+ "nVdash;", "\u22ae",
+ "nabla;", "\u2207",
+ "nacute;", "\u0144",
+ "nang;", "\u2220\u20d2",
+ "nap;", "\u2249",
+ "napE;", "\u2a70\u0338",
+ "napid;", "\u224b\u0338",
+ "napos;", "\u0149",
+ "napprox;", "\u2249",
+ "natur;", "\u266e",
+ "natural;", "\u266e",
+ "naturals;", "\u2115",
+ "nbsp", "\u00a0",
+ "nbsp;", "\u00a0",
+ "nbump;", "\u224e\u0338",
+ "nbumpe;", "\u224f\u0338",
+ "ncap;", "\u2a43",
+ "ncaron;", "\u0148",
+ "ncedil;", "\u0146",
+ "ncong;", "\u2247",
+ "ncongdot;", "\u2a6d\u0338",
+ "ncup;", "\u2a42",
+ "ncy;", "\u043d",
+ "ndash;", "\u2013",
+ "ne;", "\u2260",
+ "neArr;", "\u21d7",
+ "nearhk;", "\u2924",
+ "nearr;", "\u2197",
+ "nearrow;", "\u2197",
+ "nedot;", "\u2250\u0338",
+ "nequiv;", "\u2262",
+ "nesear;", "\u2928",
+ "nesim;", "\u2242\u0338",
+ "nexist;", "\u2204",
+ "nexists;", "\u2204",
+ "nfr;", "\ud835\udd2b",
+ "ngE;", "\u2267\u0338",
+ "nge;", "\u2271",
+ "ngeq;", "\u2271",
+ "ngeqq;", "\u2267\u0338",
+ "ngeqslant;", "\u2a7e\u0338",
+ "nges;", "\u2a7e\u0338",
+ "ngsim;", "\u2275",
+ "ngt;", "\u226f",
+ "ngtr;", "\u226f",
+ "nhArr;", "\u21ce",
+ "nharr;", "\u21ae",
+ "nhpar;", "\u2af2",
+ "ni;", "\u220b",
+ "nis;", "\u22fc",
+ "nisd;", "\u22fa",
+ "niv;", "\u220b",
+ "njcy;", "\u045a",
+ "nlArr;", "\u21cd",
+ "nlE;", "\u2266\u0338",
+ "nlarr;", "\u219a",
+ "nldr;", "\u2025",
+ "nle;", "\u2270",
+ "nleftarrow;", "\u219a",
+ "nleftrightarrow;", "\u21ae",
+ "nleq;", "\u2270",
+ "nleqq;", "\u2266\u0338",
+ "nleqslant;", "\u2a7d\u0338",
+ "nles;", "\u2a7d\u0338",
+ "nless;", "\u226e",
+ "nlsim;", "\u2274",
+ "nlt;", "\u226e",
+ "nltri;", "\u22ea",
+ "nltrie;", "\u22ec",
+ "nmid;", "\u2224",
+ "nopf;", "\ud835\udd5f",
+ "not", "\u00ac",
+ "not;", "\u00ac",
+ "notin;", "\u2209",
+ "notinE;", "\u22f9\u0338",
+ "notindot;", "\u22f5\u0338",
+ "notinva;", "\u2209",
+ "notinvb;", "\u22f7",
+ "notinvc;", "\u22f6",
+ "notni;", "\u220c",
+ "notniva;", "\u220c",
+ "notnivb;", "\u22fe",
+ "notnivc;", "\u22fd",
+ "npar;", "\u2226",
+ "nparallel;", "\u2226",
+ "nparsl;", "\u2afd\u20e5",
+ "npart;", "\u2202\u0338",
+ "npolint;", "\u2a14",
+ "npr;", "\u2280",
+ "nprcue;", "\u22e0",
+ "npre;", "\u2aaf\u0338",
+ "nprec;", "\u2280",
+ "npreceq;", "\u2aaf\u0338",
+ "nrArr;", "\u21cf",
+ "nrarr;", "\u219b",
+ "nrarrc;", "\u2933\u0338",
+ "nrarrw;", "\u219d\u0338",
+ "nrightarrow;", "\u219b",
+ "nrtri;", "\u22eb",
+ "nrtrie;", "\u22ed",
+ "nsc;", "\u2281",
+ "nsccue;", "\u22e1",
+ "nsce;", "\u2ab0\u0338",
+ "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", "\u00f1",
+ "ntilde;", "\u00f1",
+ "ntlg;", "\u2278",
+ "ntriangleleft;", "\u22ea",
+ "ntrianglelefteq;", "\u22ec",
+ "ntriangleright;", "\u22eb",
+ "ntrianglerighteq;", "\u22ed",
+ "nu;", "\u03bd",
+ "num;", "\u0023",
+ "numero;", "\u2116",
+ "numsp;", "\u2007",
+ "nvDash;", "\u22ad",
+ "nvHarr;", "\u2904",
+ "nvap;", "\u224d\u20d2",
+ "nvdash;", "\u22ac",
+ "nvge;", "\u2265\u20d2",
+ "nvgt;", "\u003e\u20d2",
+ "nvinfin;", "\u29de",
+ "nvlArr;", "\u2902",
+ "nvle;", "\u2264\u20d2",
+ "nvlt;", "\u003c\u20d2",
+ "nvltrie;", "\u22b4\u20d2",
+ "nvrArr;", "\u2903",
+ "nvrtrie;", "\u22b5\u20d2",
+ "nvsim;", "\u223c\u20d2",
+ "nwArr;", "\u21d6",
+ "nwarhk;", "\u2923",
+ "nwarr;", "\u2196",
+ "nwarrow;", "\u2196",
+ "nwnear;", "\u2927",
+ "oS;", "\u24c8",
+ "oacute", "\u00f3",
+ "oacute;", "\u00f3",
+ "oast;", "\u229b",
+ "ocir;", "\u229a",
+ "ocirc", "\u00f4",
+ "ocirc;", "\u00f4",
+ "ocy;", "\u043e",
+ "odash;", "\u229d",
+ "odblac;", "\u0151",
+ "odiv;", "\u2a38",
+ "odot;", "\u2299",
+ "odsold;", "\u29bc",
+ "oelig;", "\u0153",
+ "ofcir;", "\u29bf",
+ "ofr;", "\ud835\udd2c",
+ "ogon;", "\u02db",
+ "ograve", "\u00f2",
+ "ograve;", "\u00f2",
+ "ogt;", "\u29c1",
+ "ohbar;", "\u29b5",
+ "ohm;", "\u03a9",
+ "oint;", "\u222e",
+ "olarr;", "\u21ba",
+ "olcir;", "\u29be",
+ "olcross;", "\u29bb",
+ "oline;", "\u203e",
+ "olt;", "\u29c0",
+ "omacr;", "\u014d",
+ "omega;", "\u03c9",
+ "omicron;", "\u03bf",
+ "omid;", "\u29b6",
+ "ominus;", "\u2296",
+ "oopf;", "\ud835\udd60",
+ "opar;", "\u29b7",
+ "operp;", "\u29b9",
+ "oplus;", "\u2295",
+ "or;", "\u2228",
+ "orarr;", "\u21bb",
+ "ord;", "\u2a5d",
+ "order;", "\u2134",
+ "orderof;", "\u2134",
+ "ordf", "\u00aa",
+ "ordf;", "\u00aa",
+ "ordm", "\u00ba",
+ "ordm;", "\u00ba",
+ "origof;", "\u22b6",
+ "oror;", "\u2a56",
+ "orslope;", "\u2a57",
+ "orv;", "\u2a5b",
+ "oscr;", "\u2134",
+ "oslash", "\u00f8",
+ "oslash;", "\u00f8",
+ "osol;", "\u2298",
+ "otilde", "\u00f5",
+ "otilde;", "\u00f5",
+ "otimes;", "\u2297",
+ "otimesas;", "\u2a36",
+ "ouml", "\u00f6",
+ "ouml;", "\u00f6",
+ "ovbar;", "\u233d",
+ "par;", "\u2225",
+ "para", "\u00b6",
+ "para;", "\u00b6",
+ "parallel;", "\u2225",
+ "parsim;", "\u2af3",
+ "parsl;", "\u2afd",
+ "part;", "\u2202",
+ "pcy;", "\u043f",
+ "percnt;", "\u0025",
+ "period;", "\u002e",
+ "permil;", "\u2030",
+ "perp;", "\u22a5",
+ "pertenk;", "\u2031",
+ "pfr;", "\ud835\udd2d",
+ "phi;", "\u03c6",
+ "phiv;", "\u03d5",
+ "phmmat;", "\u2133",
+ "phone;", "\u260e",
+ "pi;", "\u03c0",
+ "pitchfork;", "\u22d4",
+ "piv;", "\u03d6",
+ "planck;", "\u210f",
+ "planckh;", "\u210e",
+ "plankv;", "\u210f",
+ "plus;", "\u002b",
+ "plusacir;", "\u2a23",
+ "plusb;", "\u229e",
+ "pluscir;", "\u2a22",
+ "plusdo;", "\u2214",
+ "plusdu;", "\u2a25",
+ "pluse;", "\u2a72",
+ "plusmn", "\u00b1",
+ "plusmn;", "\u00b1",
+ "plussim;", "\u2a26",
+ "plustwo;", "\u2a27",
+ "pm;", "\u00b1",
+ "pointint;", "\u2a15",
+ "popf;", "\ud835\udd61",
+ "pound", "\u00a3",
+ "pound;", "\u00a3",
+ "pr;", "\u227a",
+ "prE;", "\u2ab3",
+ "prap;", "\u2ab7",
+ "prcue;", "\u227c",
+ "pre;", "\u2aaf",
+ "prec;", "\u227a",
+ "precapprox;", "\u2ab7",
+ "preccurlyeq;", "\u227c",
+ "preceq;", "\u2aaf",
+ "precnapprox;", "\u2ab9",
+ "precneqq;", "\u2ab5",
+ "precnsim;", "\u22e8",
+ "precsim;", "\u227e",
+ "prime;", "\u2032",
+ "primes;", "\u2119",
+ "prnE;", "\u2ab5",
+ "prnap;", "\u2ab9",
+ "prnsim;", "\u22e8",
+ "prod;", "\u220f",
+ "profalar;", "\u232e",
+ "profline;", "\u2312",
+ "profsurf;", "\u2313",
+ "prop;", "\u221d",
+ "propto;", "\u221d",
+ "prsim;", "\u227e",
+ "prurel;", "\u22b0",
+ "pscr;", "\ud835\udcc5",
+ "psi;", "\u03c8",
+ "puncsp;", "\u2008",
+ "qfr;", "\ud835\udd2e",
+ "qint;", "\u2a0c",
+ "qopf;", "\ud835\udd62",
+ "qprime;", "\u2057",
+ "qscr;", "\ud835\udcc6",
+ "quaternions;", "\u210d",
+ "quatint;", "\u2a16",
+ "quest;", "\u003f",
+ "questeq;", "\u225f",
+ "quot", "\"",
+ "quot;", "\"",
+ "rAarr;", "\u21db",
+ "rArr;", "\u21d2",
+ "rAtail;", "\u291c",
+ "rBarr;", "\u290f",
+ "rHar;", "\u2964",
+ "race;", "\u223d\u0331",
+ "racute;", "\u0155",
+ "radic;", "\u221a",
+ "raemptyv;", "\u29b3",
+ "rang;", "\u27e9",
+ "rangd;", "\u2992",
+ "range;", "\u29a5",
+ "rangle;", "\u27e9",
+ "raquo", "\u00bb",
+ "raquo;", "\u00bb",
+ "rarr;", "\u2192",
+ "rarrap;", "\u2975",
+ "rarrb;", "\u21e5",
+ "rarrbfs;", "\u2920",
+ "rarrc;", "\u2933",
+ "rarrfs;", "\u291e",
+ "rarrhk;", "\u21aa",
+ "rarrlp;", "\u21ac",
+ "rarrpl;", "\u2945",
+ "rarrsim;", "\u2974",
+ "rarrtl;", "\u21a3",
+ "rarrw;", "\u219d",
+ "ratail;", "\u291a",
+ "ratio;", "\u2236",
+ "rationals;", "\u211a",
+ "rbarr;", "\u290d",
+ "rbbrk;", "\u2773",
+ "rbrace;", "\u007d",
+ "rbrack;", "\u005d",
+ "rbrke;", "\u298c",
+ "rbrksld;", "\u298e",
+ "rbrkslu;", "\u2990",
+ "rcaron;", "\u0159",
+ "rcedil;", "\u0157",
+ "rceil;", "\u2309",
+ "rcub;", "\u007d",
+ "rcy;", "\u0440",
+ "rdca;", "\u2937",
+ "rdldhar;", "\u2969",
+ "rdquo;", "\u201d",
+ "rdquor;", "\u201d",
+ "rdsh;", "\u21b3",
+ "real;", "\u211c",
+ "realine;", "\u211b",
+ "realpart;", "\u211c",
+ "reals;", "\u211d",
+ "rect;", "\u25ad",
+ "reg", "\u00ae",
+ "reg;", "\u00ae",
+ "rfisht;", "\u297d",
+ "rfloor;", "\u230b",
+ "rfr;", "\ud835\udd2f",
+ "rhard;", "\u21c1",
+ "rharu;", "\u21c0",
+ "rharul;", "\u296c",
+ "rho;", "\u03c1",
+ "rhov;", "\u03f1",
+ "rightarrow;", "\u2192",
+ "rightarrowtail;", "\u21a3",
+ "rightharpoondown;", "\u21c1",
+ "rightharpoonup;", "\u21c0",
+ "rightleftarrows;", "\u21c4",
+ "rightleftharpoons;", "\u21cc",
+ "rightrightarrows;", "\u21c9",
+ "rightsquigarrow;", "\u219d",
+ "rightthreetimes;", "\u22cc",
+ "ring;", "\u02da",
+ "risingdotseq;", "\u2253",
+ "rlarr;", "\u21c4",
+ "rlhar;", "\u21cc",
+ "rlm;", "\u200f",
+ "rmoust;", "\u23b1",
+ "rmoustache;", "\u23b1",
+ "rnmid;", "\u2aee",
+ "roang;", "\u27ed",
+ "roarr;", "\u21fe",
+ "robrk;", "\u27e7",
+ "ropar;", "\u2986",
+ "ropf;", "\ud835\udd63",
+ "roplus;", "\u2a2e",
+ "rotimes;", "\u2a35",
+ "rpar;", "\u0029",
+ "rpargt;", "\u2994",
+ "rppolint;", "\u2a12",
+ "rrarr;", "\u21c9",
+ "rsaquo;", "\u203a",
+ "rscr;", "\ud835\udcc7",
+ "rsh;", "\u21b1",
+ "rsqb;", "\u005d",
+ "rsquo;", "\u2019",
+ "rsquor;", "\u2019",
+ "rthree;", "\u22cc",
+ "rtimes;", "\u22ca",
+ "rtri;", "\u25b9",
+ "rtrie;", "\u22b5",
+ "rtrif;", "\u25b8",
+ "rtriltri;", "\u29ce",
+ "ruluhar;", "\u2968",
+ "rx;", "\u211e",
+ "sacute;", "\u015b",
+ "sbquo;", "\u201a",
+ "sc;", "\u227b",
+ "scE;", "\u2ab4",
+ "scap;", "\u2ab8",
+ "scaron;", "\u0161",
+ "sccue;", "\u227d",
+ "sce;", "\u2ab0",
+ "scedil;", "\u015f",
+ "scirc;", "\u015d",
+ "scnE;", "\u2ab6",
+ "scnap;", "\u2aba",
+ "scnsim;", "\u22e9",
+ "scpolint;", "\u2a13",
+ "scsim;", "\u227f",
+ "scy;", "\u0441",
+ "sdot;", "\u22c5",
+ "sdotb;", "\u22a1",
+ "sdote;", "\u2a66",
+ "seArr;", "\u21d8",
+ "searhk;", "\u2925",
+ "searr;", "\u2198",
+ "searrow;", "\u2198",
+ "sect", "\u00a7",
+ "sect;", "\u00a7",
+ "semi;", "\u003b",
+ "seswar;", "\u2929",
+ "setminus;", "\u2216",
+ "setmn;", "\u2216",
+ "sext;", "\u2736",
+ "sfr;", "\ud835\udd30",
+ "sfrown;", "\u2322",
+ "sharp;", "\u266f",
+ "shchcy;", "\u0449",
+ "shcy;", "\u0448",
+ "shortmid;", "\u2223",
+ "shortparallel;", "\u2225",
+ "shy", "\u00ad",
+ "shy;", "\u00ad",
+ "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",
+ "smallsetminus;", "\u2216",
+ "smashp;", "\u2a33",
+ "smeparsl;", "\u29e4",
+ "smid;", "\u2223",
+ "smile;", "\u2323",
+ "smt;", "\u2aaa",
+ "smte;", "\u2aac",
+ "smtes;", "\u2aac\ufe00",
+ "softcy;", "\u044c",
+ "sol;", "\u002f",
+ "solb;", "\u29c4",
+ "solbar;", "\u233f",
+ "sopf;", "\ud835\udd64",
+ "spades;", "\u2660",
+ "spadesuit;", "\u2660",
+ "spar;", "\u2225",
+ "sqcap;", "\u2293",
+ "sqcaps;", "\u2293\ufe00",
+ "sqcup;", "\u2294",
+ "sqcups;", "\u2294\ufe00",
+ "sqsub;", "\u228f",
+ "sqsube;", "\u2291",
+ "sqsubset;", "\u228f",
+ "sqsubseteq;", "\u2291",
+ "sqsup;", "\u2290",
+ "sqsupe;", "\u2292",
+ "sqsupset;", "\u2290",
+ "sqsupseteq;", "\u2292",
+ "squ;", "\u25a1",
+ "square;", "\u25a1",
+ "squarf;", "\u25aa",
+ "squf;", "\u25aa",
+ "srarr;", "\u2192",
+ "sscr;", "\ud835\udcc8",
+ "ssetmn;", "\u2216",
+ "ssmile;", "\u2323",
+ "sstarf;", "\u22c6",
+ "star;", "\u2606",
+ "starf;", "\u2605",
+ "straightepsilon;", "\u03f5",
+ "straightphi;", "\u03d5",
+ "strns;", "\u00af",
+ "sub;", "\u2282",
+ "subE;", "\u2ac5",
+ "subdot;", "\u2abd",
+ "sube;", "\u2286",
+ "subedot;", "\u2ac3",
+ "submult;", "\u2ac1",
+ "subnE;", "\u2acb",
+ "subne;", "\u228a",
+ "subplus;", "\u2abf",
+ "subrarr;", "\u2979",
+ "subset;", "\u2282",
+ "subseteq;", "\u2286",
+ "subseteqq;", "\u2ac5",
+ "subsetneq;", "\u228a",
+ "subsetneqq;", "\u2acb",
+ "subsim;", "\u2ac7",
+ "subsub;", "\u2ad5",
+ "subsup;", "\u2ad3",
+ "succ;", "\u227b",
+ "succapprox;", "\u2ab8",
+ "succcurlyeq;", "\u227d",
+ "succeq;", "\u2ab0",
+ "succnapprox;", "\u2aba",
+ "succneqq;", "\u2ab6",
+ "succnsim;", "\u22e9",
+ "succsim;", "\u227f",
+ "sum;", "\u2211",
+ "sung;", "\u266a",
+ "sup1", "\u00b9",
+ "sup1;", "\u00b9",
+ "sup2", "\u00b2",
+ "sup2;", "\u00b2",
+ "sup3", "\u00b3",
+ "sup3;", "\u00b3",
+ "sup;", "\u2283",
+ "supE;", "\u2ac6",
+ "supdot;", "\u2abe",
+ "supdsub;", "\u2ad8",
+ "supe;", "\u2287",
+ "supedot;", "\u2ac4",
+ "suphsol;", "\u27c9",
+ "suphsub;", "\u2ad7",
+ "suplarr;", "\u297b",
+ "supmult;", "\u2ac2",
+ "supnE;", "\u2acc",
+ "supne;", "\u228b",
+ "supplus;", "\u2ac0",
+ "supset;", "\u2283",
+ "supseteq;", "\u2287",
+ "supseteqq;", "\u2ac6",
+ "supsetneq;", "\u228b",
+ "supsetneqq;", "\u2acc",
+ "supsim;", "\u2ac8",
+ "supsub;", "\u2ad4",
+ "supsup;", "\u2ad6",
+ "swArr;", "\u21d9",
+ "swarhk;", "\u2926",
+ "swarr;", "\u2199",
+ "swarrow;", "\u2199",
+ "swnwar;", "\u292a",
+ "szlig", "\u00df",
+ "szlig;", "\u00df",
+ "target;", "\u2316",
+ "tau;", "\u03c4",
+ "tbrk;", "\u23b4",
+ "tcaron;", "\u0165",
+ "tcedil;", "\u0163",
+ "tcy;", "\u0442",
+ "tdot;", "\u20db",
+ "telrec;", "\u2315",
+ "tfr;", "\ud835\udd31",
+ "there4;", "\u2234",
+ "therefore;", "\u2234",
+ "theta;", "\u03b8",
+ "thetasym;", "\u03d1",
+ "thetav;", "\u03d1",
+ "thickapprox;", "\u2248",
+ "thicksim;", "\u223c",
+ "thinsp;", "\u2009",
+ "thkap;", "\u2248",
+ "thksim;", "\u223c",
+ "thorn", "\u00fe",
+ "thorn;", "\u00fe",
+ "tilde;", "\u02dc",
+ "times", "\u00d7",
+ "times;", "\u00d7",
+ "timesb;", "\u22a0",
+ "timesbar;", "\u2a31",
+ "timesd;", "\u2a30",
+ "tint;", "\u222d",
+ "toea;", "\u2928",
+ "top;", "\u22a4",
+ "topbot;", "\u2336",
+ "topcir;", "\u2af1",
+ "topf;", "\ud835\udd65",
+ "topfork;", "\u2ada",
+ "tosa;", "\u2929",
+ "tprime;", "\u2034",
+ "trade;", "\u2122",
+ "triangle;", "\u25b5",
+ "triangledown;", "\u25bf",
+ "triangleleft;", "\u25c3",
+ "trianglelefteq;", "\u22b4",
+ "triangleq;", "\u225c",
+ "triangleright;", "\u25b9",
+ "trianglerighteq;", "\u22b5",
+ "tridot;", "\u25ec",
+ "trie;", "\u225c",
+ "triminus;", "\u2a3a",
+ "triplus;", "\u2a39",
+ "trisb;", "\u29cd",
+ "tritime;", "\u2a3b",
+ "trpezium;", "\u23e2",
+ "tscr;", "\ud835\udcc9",
+ "tscy;", "\u0446",
+ "tshcy;", "\u045b",
+ "tstrok;", "\u0167",
+ "twixt;", "\u226c",
+ "twoheadleftarrow;", "\u219e",
+ "twoheadrightarrow;", "\u21a0",
+ "uArr;", "\u21d1",
+ "uHar;", "\u2963",
+ "uacute", "\u00fa",
+ "uacute;", "\u00fa",
+ "uarr;", "\u2191",
+ "ubrcy;", "\u045e",
+ "ubreve;", "\u016d",
+ "ucirc", "\u00fb",
+ "ucirc;", "\u00fb",
+ "ucy;", "\u0443",
+ "udarr;", "\u21c5",
+ "udblac;", "\u0171",
+ "udhar;", "\u296e",
+ "ufisht;", "\u297e",
+ "ufr;", "\ud835\udd32",
+ "ugrave", "\u00f9",
+ "ugrave;", "\u00f9",
+ "uharl;", "\u21bf",
+ "uharr;", "\u21be",
+ "uhblk;", "\u2580",
+ "ulcorn;", "\u231c",
+ "ulcorner;", "\u231c",
+ "ulcrop;", "\u230f",
+ "ultri;", "\u25f8",
+ "umacr;", "\u016b",
+ "uml", "\u00a8",
+ "uml;", "\u00a8",
+ "uogon;", "\u0173",
+ "uopf;", "\ud835\udd66",
+ "uparrow;", "\u2191",
+ "updownarrow;", "\u2195",
+ "upharpoonleft;", "\u21bf",
+ "upharpoonright;", "\u21be",
+ "uplus;", "\u228e",
+ "upsi;", "\u03c5",
+ "upsih;", "\u03d2",
+ "upsilon;", "\u03c5",
+ "upuparrows;", "\u21c8",
+ "urcorn;", "\u231d",
+ "urcorner;", "\u231d",
+ "urcrop;", "\u230e",
+ "uring;", "\u016f",
+ "urtri;", "\u25f9",
+ "uscr;", "\ud835\udcca",
+ "utdot;", "\u22f0",
+ "utilde;", "\u0169",
+ "utri;", "\u25b5",
+ "utrif;", "\u25b4",
+ "uuarr;", "\u21c8",
+ "uuml", "\u00fc",
+ "uuml;", "\u00fc",
+ "uwangle;", "\u29a7",
+ "vArr;", "\u21d5",
+ "vBar;", "\u2ae8",
+ "vBarv;", "\u2ae9",
+ "vDash;", "\u22a8",
+ "vangrt;", "\u299c",
+ "varepsilon;", "\u03f5",
+ "varkappa;", "\u03f0",
+ "varnothing;", "\u2205",
+ "varphi;", "\u03d5",
+ "varpi;", "\u03d6",
+ "varpropto;", "\u221d",
+ "varr;", "\u2195",
+ "varrho;", "\u03f1",
+ "varsigma;", "\u03c2",
+ "varsubsetneq;", "\u228a\ufe00",
+ "varsubsetneqq;", "\u2acb\ufe00",
+ "varsupsetneq;", "\u228b\ufe00",
+ "varsupsetneqq;", "\u2acc\ufe00",
+ "vartheta;", "\u03d1",
+ "vartriangleleft;", "\u22b2",
+ "vartriangleright;", "\u22b3",
+ "vcy;", "\u0432",
+ "vdash;", "\u22a2",
+ "vee;", "\u2228",
+ "veebar;", "\u22bb",
+ "veeeq;", "\u225a",
+ "vellip;", "\u22ee",
+ "verbar;", "\u007c",
+ "vert;", "\u007c",
+ "vfr;", "\ud835\udd33",
+ "vltri;", "\u22b2",
+ "vnsub;", "\u2282\u20d2",
+ "vnsup;", "\u2283\u20d2",
+ "vopf;", "\ud835\udd67",
+ "vprop;", "\u221d",
+ "vrtri;", "\u22b3",
+ "vscr;", "\ud835\udccb",
+ "vsubnE;", "\u2acb\ufe00",
+ "vsubne;", "\u228a\ufe00",
+ "vsupnE;", "\u2acc\ufe00",
+ "vsupne;", "\u228b\ufe00",
+ "vzigzag;", "\u299a",
+ "wcirc;", "\u0175",
+ "wedbar;", "\u2a5f",
+ "wedge;", "\u2227",
+ "wedgeq;", "\u2259",
+ "weierp;", "\u2118",
+ "wfr;", "\ud835\udd34",
+ "wopf;", "\ud835\udd68",
+ "wp;", "\u2118",
+ "wr;", "\u2240",
+ "wreath;", "\u2240",
+ "wscr;", "\ud835\udccc",
+ "xcap;", "\u22c2",
+ "xcirc;", "\u25ef",
+ "xcup;", "\u22c3",
+ "xdtri;", "\u25bd",
+ "xfr;", "\ud835\udd35",
+ "xhArr;", "\u27fa",
+ "xharr;", "\u27f7",
+ "xi;", "\u03be",
+ "xlArr;", "\u27f8",
+ "xlarr;", "\u27f5",
+ "xmap;", "\u27fc",
+ "xnis;", "\u22fb",
+ "xodot;", "\u2a00",
+ "xopf;", "\ud835\udd69",
+ "xoplus;", "\u2a01",
+ "xotime;", "\u2a02",
+ "xrArr;", "\u27f9",
+ "xrarr;", "\u27f6",
+ "xscr;", "\ud835\udccd",
+ "xsqcup;", "\u2a06",
+ "xuplus;", "\u2a04",
+ "xutri;", "\u25b3",
+ "xvee;", "\u22c1",
+ "xwedge;", "\u22c0",
+ "yacute", "\u00fd",
+ "yacute;", "\u00fd",
+ "yacy;", "\u044f",
+ "ycirc;", "\u0177",
+ "ycy;", "\u044b",
+ "yen", "\u00a5",
+ "yen;", "\u00a5",
+ "yfr;", "\ud835\udd36",
+ "yicy;", "\u0457",
+ "yopf;", "\ud835\udd6a",
+ "yscr;", "\ud835\udcce",
+ "yucy;", "\u044e",
+ "yuml", "\u00ff",
+ "yuml;", "\u00ff",
+ "zacute;", "\u017a",
+ "zcaron;", "\u017e",
+ "zcy;", "\u0437",
+ "zdot;", "\u017c",
+ "zeetrf;", "\u2128",
+ "zeta;", "\u03b6",
+ "zfr;", "\ud835\udd37",
+ "zhcy;", "\u0436",
+ "zigrarr;", "\u21dd",
+ "zopf;", "\ud835\udd6b",
+ "zscr;", "\ud835\udccf",
+ "zwj;", "\u200d",
+ "zwnj;", "\u200c",
+ };
- builder.put("AElig", "\u00c6");
- builder.put("AMP", "\u0026");
- builder.put("Aacute", "\u00c1");
- builder.put("Abreve", "\u0102");
- builder.put("Acirc", "\u00c2");
- builder.put("Acy", "\u0410");
- builder.put("Afr", "\ud835\udd04");
- builder.put("Agrave", "\u00c0");
- builder.put("Alpha", "\u0391");
- builder.put("Amacr", "\u0100");
- builder.put("And", "\u2a53");
- builder.put("Aogon", "\u0104");
- builder.put("Aopf", "\ud835\udd38");
- builder.put("ApplyFunction", "\u2061");
- builder.put("Aring", "\u00c5");
- builder.put("Ascr", "\ud835\udc9c");
- builder.put("Assign", "\u2254");
- builder.put("Atilde", "\u00c3");
- builder.put("Auml", "\u00c4");
- builder.put("Backslash", "\u2216");
- builder.put("Barv", "\u2ae7");
- builder.put("Barwed", "\u2306");
- builder.put("Bcy", "\u0411");
- builder.put("Because", "\u2235");
- builder.put("Bernoullis", "\u212c");
- builder.put("Beta", "\u0392");
- builder.put("Bfr", "\ud835\udd05");
- builder.put("Bopf", "\ud835\udd39");
- builder.put("Breve", "\u02d8");
- builder.put("Bscr", "\u212c");
- builder.put("Bumpeq", "\u224e");
- builder.put("CHcy", "\u0427");
- builder.put("COPY", "\u00a9");
- builder.put("Cacute", "\u0106");
- builder.put("Cap", "\u22d2");
- builder.put("CapitalDifferentialD", "\u2145");
- builder.put("Cayleys", "\u212d");
- builder.put("Ccaron", "\u010c");
- builder.put("Ccedil", "\u00c7");
- builder.put("Ccirc", "\u0108");
- builder.put("Cconint", "\u2230");
- builder.put("Cdot", "\u010a");
- builder.put("Cedilla", "\u00b8");
- builder.put("CenterDot", "\u00b7");
- builder.put("Cfr", "\u212d");
- builder.put("Chi", "\u03a7");
- builder.put("CircleDot", "\u2299");
- builder.put("CircleMinus", "\u2296");
- builder.put("CirclePlus", "\u2295");
- builder.put("CircleTimes", "\u2297");
- builder.put("ClockwiseContourIntegral", "\u2232");
- builder.put("CloseCurlyDoubleQuote", "\u201d");
- builder.put("CloseCurlyQuote", "\u2019");
- builder.put("Colon", "\u2237");
- builder.put("Colone", "\u2a74");
- builder.put("Congruent", "\u2261");
- builder.put("Conint", "\u222f");
- builder.put("ContourIntegral", "\u222e");
- builder.put("Copf", "\u2102");
- builder.put("Coproduct", "\u2210");
- builder.put("CounterClockwiseContourIntegral", "\u2233");
- builder.put("Cross", "\u2a2f");
- builder.put("Cscr", "\ud835\udc9e");
- builder.put("Cup", "\u22d3");
- builder.put("CupCap", "\u224d");
- builder.put("DD", "\u2145");
- builder.put("DDotrahd", "\u2911");
- builder.put("DJcy", "\u0402");
- builder.put("DScy", "\u0405");
- builder.put("DZcy", "\u040f");
- builder.put("Dagger", "\u2021");
- builder.put("Darr", "\u21a1");
- builder.put("Dashv", "\u2ae4");
- builder.put("Dcaron", "\u010e");
- builder.put("Dcy", "\u0414");
- builder.put("Del", "\u2207");
- builder.put("Delta", "\u0394");
- builder.put("Dfr", "\ud835\udd07");
- builder.put("DiacriticalAcute", "\u00b4");
- builder.put("DiacriticalDot", "\u02d9");
- builder.put("DiacriticalDoubleAcute", "\u02dd");
- builder.put("DiacriticalGrave", "\u0060");
- builder.put("DiacriticalTilde", "\u02dc");
- builder.put("Diamond", "\u22c4");
- builder.put("DifferentialD", "\u2146");
- builder.put("Dopf", "\ud835\udd3b");
- builder.put("Dot", "\u00a8");
- builder.put("DotDot", "\u20dc");
- builder.put("DotEqual", "\u2250");
- builder.put("DoubleContourIntegral", "\u222f");
- builder.put("DoubleDot", "\u00a8");
- builder.put("DoubleDownArrow", "\u21d3");
- builder.put("DoubleLeftArrow", "\u21d0");
- builder.put("DoubleLeftRightArrow", "\u21d4");
- builder.put("DoubleLeftTee", "\u2ae4");
- builder.put("DoubleLongLeftArrow", "\u27f8");
- builder.put("DoubleLongLeftRightArrow", "\u27fa");
- builder.put("DoubleLongRightArrow", "\u27f9");
- builder.put("DoubleRightArrow", "\u21d2");
- builder.put("DoubleRightTee", "\u22a8");
- builder.put("DoubleUpArrow", "\u21d1");
- builder.put("DoubleUpDownArrow", "\u21d5");
- builder.put("DoubleVerticalBar", "\u2225");
- builder.put("DownArrow", "\u2193");
- builder.put("DownArrowBar", "\u2913");
- builder.put("DownArrowUpArrow", "\u21f5");
- builder.put("DownBreve", "\u0311");
- builder.put("DownLeftRightVector", "\u2950");
- builder.put("DownLeftTeeVector", "\u295e");
- builder.put("DownLeftVector", "\u21bd");
- builder.put("DownLeftVectorBar", "\u2956");
- builder.put("DownRightTeeVector", "\u295f");
- builder.put("DownRightVector", "\u21c1");
- builder.put("DownRightVectorBar", "\u2957");
- builder.put("DownTee", "\u22a4");
- builder.put("DownTeeArrow", "\u21a7");
- builder.put("Downarrow", "\u21d3");
- builder.put("Dscr", "\ud835\udc9f");
- builder.put("Dstrok", "\u0110");
- builder.put("ENG", "\u014a");
- builder.put("ETH", "\u00d0");
- builder.put("Eacute", "\u00c9");
- builder.put("Ecaron", "\u011a");
- builder.put("Ecirc", "\u00ca");
- builder.put("Ecy", "\u042d");
- builder.put("Edot", "\u0116");
- builder.put("Efr", "\ud835\udd08");
- builder.put("Egrave", "\u00c8");
- builder.put("Element", "\u2208");
- builder.put("Emacr", "\u0112");
- builder.put("EmptySmallSquare", "\u25fb");
- builder.put("EmptyVerySmallSquare", "\u25ab");
- builder.put("Eogon", "\u0118");
- builder.put("Eopf", "\ud835\udd3c");
- builder.put("Epsilon", "\u0395");
- builder.put("Equal", "\u2a75");
- builder.put("EqualTilde", "\u2242");
- builder.put("Equilibrium", "\u21cc");
- builder.put("Escr", "\u2130");
- builder.put("Esim", "\u2a73");
- builder.put("Eta", "\u0397");
- builder.put("Euml", "\u00cb");
- builder.put("Exists", "\u2203");
- builder.put("ExponentialE", "\u2147");
- builder.put("Fcy", "\u0424");
- builder.put("Ffr", "\ud835\udd09");
- builder.put("FilledSmallSquare", "\u25fc");
- builder.put("FilledVerySmallSquare", "\u25aa");
- builder.put("Fopf", "\ud835\udd3d");
- builder.put("ForAll", "\u2200");
- builder.put("Fouriertrf", "\u2131");
- builder.put("Fscr", "\u2131");
- builder.put("GJcy", "\u0403");
- builder.put("GT", "\u003e");
- builder.put("Gamma", "\u0393");
- builder.put("Gammad", "\u03dc");
- builder.put("Gbreve", "\u011e");
- builder.put("Gcedil", "\u0122");
- builder.put("Gcirc", "\u011c");
- builder.put("Gcy", "\u0413");
- builder.put("Gdot", "\u0120");
- builder.put("Gfr", "\ud835\udd0a");
- builder.put("Gg", "\u22d9");
- builder.put("Gopf", "\ud835\udd3e");
- builder.put("GreaterEqual", "\u2265");
- builder.put("GreaterEqualLess", "\u22db");
- builder.put("GreaterFullEqual", "\u2267");
- builder.put("GreaterGreater", "\u2aa2");
- builder.put("GreaterLess", "\u2277");
- builder.put("GreaterSlantEqual", "\u2a7e");
- builder.put("GreaterTilde", "\u2273");
- builder.put("Gscr", "\ud835\udca2");
- builder.put("Gt", "\u226b");
- builder.put("HARDcy", "\u042a");
- builder.put("Hacek", "\u02c7");
- builder.put("Hat", "\u005e");
- builder.put("Hcirc", "\u0124");
- builder.put("Hfr", "\u210c");
- builder.put("HilbertSpace", "\u210b");
- builder.put("Hopf", "\u210d");
- builder.put("HorizontalLine", "\u2500");
- builder.put("Hscr", "\u210b");
- builder.put("Hstrok", "\u0126");
- builder.put("HumpDownHump", "\u224e");
- builder.put("HumpEqual", "\u224f");
- builder.put("IEcy", "\u0415");
- builder.put("IJlig", "\u0132");
- builder.put("IOcy", "\u0401");
- builder.put("Iacute", "\u00cd");
- builder.put("Icirc", "\u00ce");
- builder.put("Icy", "\u0418");
- builder.put("Idot", "\u0130");
- builder.put("Ifr", "\u2111");
- builder.put("Igrave", "\u00cc");
- builder.put("Im", "\u2111");
- builder.put("Imacr", "\u012a");
- builder.put("ImaginaryI", "\u2148");
- builder.put("Implies", "\u21d2");
- builder.put("Int", "\u222c");
- builder.put("Integral", "\u222b");
- builder.put("Intersection", "\u22c2");
- builder.put("InvisibleComma", "\u2063");
- builder.put("InvisibleTimes", "\u2062");
- builder.put("Iogon", "\u012e");
- builder.put("Iopf", "\ud835\udd40");
- builder.put("Iota", "\u0399");
- builder.put("Iscr", "\u2110");
- builder.put("Itilde", "\u0128");
- builder.put("Iukcy", "\u0406");
- builder.put("Iuml", "\u00cf");
- builder.put("Jcirc", "\u0134");
- builder.put("Jcy", "\u0419");
- builder.put("Jfr", "\ud835\udd0d");
- builder.put("Jopf", "\ud835\udd41");
- builder.put("Jscr", "\ud835\udca5");
- builder.put("Jsercy", "\u0408");
- builder.put("Jukcy", "\u0404");
- builder.put("KHcy", "\u0425");
- builder.put("KJcy", "\u040c");
- builder.put("Kappa", "\u039a");
- builder.put("Kcedil", "\u0136");
- builder.put("Kcy", "\u041a");
- builder.put("Kfr", "\ud835\udd0e");
- builder.put("Kopf", "\ud835\udd42");
- builder.put("Kscr", "\ud835\udca6");
- builder.put("LJcy", "\u0409");
- builder.put("LT", "\u003c");
- builder.put("Lacute", "\u0139");
- builder.put("Lambda", "\u039b");
- builder.put("Lang", "\u27ea");
- builder.put("Laplacetrf", "\u2112");
- builder.put("Larr", "\u219e");
- builder.put("Lcaron", "\u013d");
- builder.put("Lcedil", "\u013b");
- builder.put("Lcy", "\u041b");
- builder.put("LeftAngleBracket", "\u27e8");
- builder.put("LeftArrow", "\u2190");
- builder.put("LeftArrowBar", "\u21e4");
- builder.put("LeftArrowRightArrow", "\u21c6");
- builder.put("LeftCeiling", "\u2308");
- builder.put("LeftDoubleBracket", "\u27e6");
- builder.put("LeftDownTeeVector", "\u2961");
- builder.put("LeftDownVector", "\u21c3");
- builder.put("LeftDownVectorBar", "\u2959");
- builder.put("LeftFloor", "\u230a");
- builder.put("LeftRightArrow", "\u2194");
- builder.put("LeftRightVector", "\u294e");
- builder.put("LeftTee", "\u22a3");
- builder.put("LeftTeeArrow", "\u21a4");
- builder.put("LeftTeeVector", "\u295a");
- builder.put("LeftTriangle", "\u22b2");
- builder.put("LeftTriangleBar", "\u29cf");
- builder.put("LeftTriangleEqual", "\u22b4");
- builder.put("LeftUpDownVector", "\u2951");
- builder.put("LeftUpTeeVector", "\u2960");
- builder.put("LeftUpVector", "\u21bf");
- builder.put("LeftUpVectorBar", "\u2958");
- builder.put("LeftVector", "\u21bc");
- builder.put("LeftVectorBar", "\u2952");
- builder.put("Leftarrow", "\u21d0");
- builder.put("Leftrightarrow", "\u21d4");
- builder.put("LessEqualGreater", "\u22da");
- builder.put("LessFullEqual", "\u2266");
- builder.put("LessGreater", "\u2276");
- builder.put("LessLess", "\u2aa1");
- builder.put("LessSlantEqual", "\u2a7d");
- builder.put("LessTilde", "\u2272");
- builder.put("Lfr", "\ud835\udd0f");
- builder.put("Ll", "\u22d8");
- builder.put("Lleftarrow", "\u21da");
- builder.put("Lmidot", "\u013f");
- builder.put("LongLeftArrow", "\u27f5");
- builder.put("LongLeftRightArrow", "\u27f7");
- builder.put("LongRightArrow", "\u27f6");
- builder.put("Longleftarrow", "\u27f8");
- builder.put("Longleftrightarrow", "\u27fa");
- builder.put("Longrightarrow", "\u27f9");
- builder.put("Lopf", "\ud835\udd43");
- builder.put("LowerLeftArrow", "\u2199");
- builder.put("LowerRightArrow", "\u2198");
- builder.put("Lscr", "\u2112");
- builder.put("Lsh", "\u21b0");
- builder.put("Lstrok", "\u0141");
- builder.put("Lt", "\u226a");
- builder.put("Map", "\u2905");
- builder.put("Mcy", "\u041c");
- builder.put("MediumSpace", "\u205f");
- builder.put("Mellintrf", "\u2133");
- builder.put("Mfr", "\ud835\udd10");
- builder.put("MinusPlus", "\u2213");
- builder.put("Mopf", "\ud835\udd44");
- builder.put("Mscr", "\u2133");
- builder.put("Mu", "\u039c");
- builder.put("NJcy", "\u040a");
- builder.put("Nacute", "\u0143");
- builder.put("Ncaron", "\u0147");
- builder.put("Ncedil", "\u0145");
- builder.put("Ncy", "\u041d");
- builder.put("NegativeMediumSpace", "\u200b");
- builder.put("NegativeThickSpace", "\u200b");
- builder.put("NegativeThinSpace", "\u200b");
- builder.put("NegativeVeryThinSpace", "\u200b");
- builder.put("NestedGreaterGreater", "\u226b");
- builder.put("NestedLessLess", "\u226a");
- builder.put("NewLine", "\n");
- builder.put("Nfr", "\ud835\udd11");
- builder.put("NoBreak", "\u2060");
- builder.put("NonBreakingSpace", "\u00a0");
- builder.put("Nopf", "\u2115");
- builder.put("Not", "\u2aec");
- builder.put("NotCongruent", "\u2262");
- builder.put("NotCupCap", "\u226d");
- builder.put("NotDoubleVerticalBar", "\u2226");
- builder.put("NotElement", "\u2209");
- builder.put("NotEqual", "\u2260");
- builder.put("NotEqualTilde", "\u2242\u0338");
- builder.put("NotExists", "\u2204");
- builder.put("NotGreater", "\u226f");
- builder.put("NotGreaterEqual", "\u2271");
- builder.put("NotGreaterFullEqual", "\u2267\u0338");
- builder.put("NotGreaterGreater", "\u226b\u0338");
- builder.put("NotGreaterLess", "\u2279");
- builder.put("NotGreaterSlantEqual", "\u2a7e\u0338");
- builder.put("NotGreaterTilde", "\u2275");
- builder.put("NotHumpDownHump", "\u224e\u0338");
- builder.put("NotHumpEqual", "\u224f\u0338");
- builder.put("NotLeftTriangle", "\u22ea");
- builder.put("NotLeftTriangleBar", "\u29cf\u0338");
- builder.put("NotLeftTriangleEqual", "\u22ec");
- builder.put("NotLess", "\u226e");
- builder.put("NotLessEqual", "\u2270");
- builder.put("NotLessGreater", "\u2278");
- builder.put("NotLessLess", "\u226a\u0338");
- builder.put("NotLessSlantEqual", "\u2a7d\u0338");
- builder.put("NotLessTilde", "\u2274");
- builder.put("NotNestedGreaterGreater", "\u2aa2\u0338");
- builder.put("NotNestedLessLess", "\u2aa1\u0338");
- builder.put("NotPrecedes", "\u2280");
- builder.put("NotPrecedesEqual", "\u2aaf\u0338");
- builder.put("NotPrecedesSlantEqual", "\u22e0");
- builder.put("NotReverseElement", "\u220c");
- builder.put("NotRightTriangle", "\u22eb");
- builder.put("NotRightTriangleBar", "\u29d0\u0338");
- builder.put("NotRightTriangleEqual", "\u22ed");
- builder.put("NotSquareSubset", "\u228f\u0338");
- builder.put("NotSquareSubsetEqual", "\u22e2");
- builder.put("NotSquareSuperset", "\u2290\u0338");
- builder.put("NotSquareSupersetEqual", "\u22e3");
- builder.put("NotSubset", "\u2282\u20d2");
- builder.put("NotSubsetEqual", "\u2288");
- builder.put("NotSucceeds", "\u2281");
- builder.put("NotSucceedsEqual", "\u2ab0\u0338");
- builder.put("NotSucceedsSlantEqual", "\u22e1");
- builder.put("NotSucceedsTilde", "\u227f\u0338");
- builder.put("NotSuperset", "\u2283\u20d2");
- builder.put("NotSupersetEqual", "\u2289");
- builder.put("NotTilde", "\u2241");
- builder.put("NotTildeEqual", "\u2244");
- builder.put("NotTildeFullEqual", "\u2247");
- builder.put("NotTildeTilde", "\u2249");
- builder.put("NotVerticalBar", "\u2224");
- builder.put("Nscr", "\ud835\udca9");
- builder.put("Ntilde", "\u00d1");
- builder.put("Nu", "\u039d");
- builder.put("OElig", "\u0152");
- builder.put("Oacute", "\u00d3");
- builder.put("Ocirc", "\u00d4");
- builder.put("Ocy", "\u041e");
- builder.put("Odblac", "\u0150");
- builder.put("Ofr", "\ud835\udd12");
- builder.put("Ograve", "\u00d2");
- builder.put("Omacr", "\u014c");
- builder.put("Omega", "\u03a9");
- builder.put("Omicron", "\u039f");
- builder.put("Oopf", "\ud835\udd46");
- builder.put("OpenCurlyDoubleQuote", "\u201c");
- builder.put("OpenCurlyQuote", "\u2018");
- builder.put("Or", "\u2a54");
- builder.put("Oscr", "\ud835\udcaa");
- builder.put("Oslash", "\u00d8");
- builder.put("Otilde", "\u00d5");
- builder.put("Otimes", "\u2a37");
- builder.put("Ouml", "\u00d6");
- builder.put("OverBar", "\u203e");
- builder.put("OverBrace", "\u23de");
- builder.put("OverBracket", "\u23b4");
- builder.put("OverParenthesis", "\u23dc");
- builder.put("PartialD", "\u2202");
- builder.put("Pcy", "\u041f");
- builder.put("Pfr", "\ud835\udd13");
- builder.put("Phi", "\u03a6");
- builder.put("Pi", "\u03a0");
- builder.put("PlusMinus", "\u00b1");
- builder.put("Poincareplane", "\u210c");
- builder.put("Popf", "\u2119");
- builder.put("Pr", "\u2abb");
- builder.put("Precedes", "\u227a");
- builder.put("PrecedesEqual", "\u2aaf");
- builder.put("PrecedesSlantEqual", "\u227c");
- builder.put("PrecedesTilde", "\u227e");
- builder.put("Prime", "\u2033");
- builder.put("Product", "\u220f");
- builder.put("Proportion", "\u2237");
- builder.put("Proportional", "\u221d");
- builder.put("Pscr", "\ud835\udcab");
- builder.put("Psi", "\u03a8");
- builder.put("QUOT", "\"");
- builder.put("Qfr", "\ud835\udd14");
- builder.put("Qopf", "\u211a");
- builder.put("Qscr", "\ud835\udcac");
- builder.put("RBarr", "\u2910");
- builder.put("REG", "\u00ae");
- builder.put("Racute", "\u0154");
- builder.put("Rang", "\u27eb");
- builder.put("Rarr", "\u21a0");
- builder.put("Rarrtl", "\u2916");
- builder.put("Rcaron", "\u0158");
- builder.put("Rcedil", "\u0156");
- builder.put("Rcy", "\u0420");
- builder.put("Re", "\u211c");
- builder.put("ReverseElement", "\u220b");
- builder.put("ReverseEquilibrium", "\u21cb");
- builder.put("ReverseUpEquilibrium", "\u296f");
- builder.put("Rfr", "\u211c");
- builder.put("Rho", "\u03a1");
- builder.put("RightAngleBracket", "\u27e9");
- builder.put("RightArrow", "\u2192");
- builder.put("RightArrowBar", "\u21e5");
- builder.put("RightArrowLeftArrow", "\u21c4");
- builder.put("RightCeiling", "\u2309");
- builder.put("RightDoubleBracket", "\u27e7");
- builder.put("RightDownTeeVector", "\u295d");
- builder.put("RightDownVector", "\u21c2");
- builder.put("RightDownVectorBar", "\u2955");
- builder.put("RightFloor", "\u230b");
- builder.put("RightTee", "\u22a2");
- builder.put("RightTeeArrow", "\u21a6");
- builder.put("RightTeeVector", "\u295b");
- builder.put("RightTriangle", "\u22b3");
- builder.put("RightTriangleBar", "\u29d0");
- builder.put("RightTriangleEqual", "\u22b5");
- builder.put("RightUpDownVector", "\u294f");
- builder.put("RightUpTeeVector", "\u295c");
- builder.put("RightUpVector", "\u21be");
- builder.put("RightUpVectorBar", "\u2954");
- builder.put("RightVector", "\u21c0");
- builder.put("RightVectorBar", "\u2953");
- builder.put("Rightarrow", "\u21d2");
- builder.put("Ropf", "\u211d");
- builder.put("RoundImplies", "\u2970");
- builder.put("Rrightarrow", "\u21db");
- builder.put("Rscr", "\u211b");
- builder.put("Rsh", "\u21b1");
- builder.put("RuleDelayed", "\u29f4");
- builder.put("SHCHcy", "\u0429");
- builder.put("SHcy", "\u0428");
- builder.put("SOFTcy", "\u042c");
- builder.put("Sacute", "\u015a");
- builder.put("Sc", "\u2abc");
- builder.put("Scaron", "\u0160");
- builder.put("Scedil", "\u015e");
- builder.put("Scirc", "\u015c");
- builder.put("Scy", "\u0421");
- builder.put("Sfr", "\ud835\udd16");
- builder.put("ShortDownArrow", "\u2193");
- builder.put("ShortLeftArrow", "\u2190");
- builder.put("ShortRightArrow", "\u2192");
- builder.put("ShortUpArrow", "\u2191");
- builder.put("Sigma", "\u03a3");
- builder.put("SmallCircle", "\u2218");
- builder.put("Sopf", "\ud835\udd4a");
- builder.put("Sqrt", "\u221a");
- builder.put("Square", "\u25a1");
- builder.put("SquareIntersection", "\u2293");
- builder.put("SquareSubset", "\u228f");
- builder.put("SquareSubsetEqual", "\u2291");
- builder.put("SquareSuperset", "\u2290");
- builder.put("SquareSupersetEqual", "\u2292");
- builder.put("SquareUnion", "\u2294");
- builder.put("Sscr", "\ud835\udcae");
- builder.put("Star", "\u22c6");
- builder.put("Sub", "\u22d0");
- builder.put("Subset", "\u22d0");
- builder.put("SubsetEqual", "\u2286");
- builder.put("Succeeds", "\u227b");
- builder.put("SucceedsEqual", "\u2ab0");
- builder.put("SucceedsSlantEqual", "\u227d");
- builder.put("SucceedsTilde", "\u227f");
- builder.put("SuchThat", "\u220b");
- builder.put("Sum", "\u2211");
- builder.put("Sup", "\u22d1");
- builder.put("Superset", "\u2283");
- builder.put("SupersetEqual", "\u2287");
- builder.put("Supset", "\u22d1");
- builder.put("THORN", "\u00de");
- builder.put("TRADE", "\u2122");
- builder.put("TSHcy", "\u040b");
- builder.put("TScy", "\u0426");
- builder.put("Tab", "\u0009");
- builder.put("Tau", "\u03a4");
- builder.put("Tcaron", "\u0164");
- builder.put("Tcedil", "\u0162");
- builder.put("Tcy", "\u0422");
- builder.put("Tfr", "\ud835\udd17");
- builder.put("Therefore", "\u2234");
- builder.put("Theta", "\u0398");
- builder.put("ThickSpace", "\u205f\u200a");
- builder.put("ThinSpace", "\u2009");
- builder.put("Tilde", "\u223c");
- builder.put("TildeEqual", "\u2243");
- builder.put("TildeFullEqual", "\u2245");
- builder.put("TildeTilde", "\u2248");
- builder.put("Topf", "\ud835\udd4b");
- builder.put("TripleDot", "\u20db");
- builder.put("Tscr", "\ud835\udcaf");
- builder.put("Tstrok", "\u0166");
- builder.put("Uacute", "\u00da");
- builder.put("Uarr", "\u219f");
- builder.put("Uarrocir", "\u2949");
- builder.put("Ubrcy", "\u040e");
- builder.put("Ubreve", "\u016c");
- builder.put("Ucirc", "\u00db");
- builder.put("Ucy", "\u0423");
- builder.put("Udblac", "\u0170");
- builder.put("Ufr", "\ud835\udd18");
- builder.put("Ugrave", "\u00d9");
- builder.put("Umacr", "\u016a");
- builder.put("UnderBar", "\u005f");
- builder.put("UnderBrace", "\u23df");
- builder.put("UnderBracket", "\u23b5");
- builder.put("UnderParenthesis", "\u23dd");
- builder.put("Union", "\u22c3");
- builder.put("UnionPlus", "\u228e");
- builder.put("Uogon", "\u0172");
- builder.put("Uopf", "\ud835\udd4c");
- builder.put("UpArrow", "\u2191");
- builder.put("UpArrowBar", "\u2912");
- builder.put("UpArrowDownArrow", "\u21c5");
- builder.put("UpDownArrow", "\u2195");
- builder.put("UpEquilibrium", "\u296e");
- builder.put("UpTee", "\u22a5");
- builder.put("UpTeeArrow", "\u21a5");
- builder.put("Uparrow", "\u21d1");
- builder.put("Updownarrow", "\u21d5");
- builder.put("UpperLeftArrow", "\u2196");
- builder.put("UpperRightArrow", "\u2197");
- builder.put("Upsi", "\u03d2");
- builder.put("Upsilon", "\u03a5");
- builder.put("Uring", "\u016e");
- builder.put("Uscr", "\ud835\udcb0");
- builder.put("Utilde", "\u0168");
- builder.put("Uuml", "\u00dc");
- builder.put("VDash", "\u22ab");
- builder.put("Vbar", "\u2aeb");
- builder.put("Vcy", "\u0412");
- builder.put("Vdash", "\u22a9");
- builder.put("Vdashl", "\u2ae6");
- builder.put("Vee", "\u22c1");
- builder.put("Verbar", "\u2016");
- builder.put("Vert", "\u2016");
- builder.put("VerticalBar", "\u2223");
- builder.put("VerticalLine", "\u007c");
- builder.put("VerticalSeparator", "\u2758");
- builder.put("VerticalTilde", "\u2240");
- builder.put("VeryThinSpace", "\u200a");
- builder.put("Vfr", "\ud835\udd19");
- builder.put("Vopf", "\ud835\udd4d");
- builder.put("Vscr", "\ud835\udcb1");
- builder.put("Vvdash", "\u22aa");
- builder.put("Wcirc", "\u0174");
- builder.put("Wedge", "\u22c0");
- builder.put("Wfr", "\ud835\udd1a");
- builder.put("Wopf", "\ud835\udd4e");
- builder.put("Wscr", "\ud835\udcb2");
- builder.put("Xfr", "\ud835\udd1b");
- builder.put("Xi", "\u039e");
- builder.put("Xopf", "\ud835\udd4f");
- builder.put("Xscr", "\ud835\udcb3");
- builder.put("YAcy", "\u042f");
- builder.put("YIcy", "\u0407");
- builder.put("YUcy", "\u042e");
- builder.put("Yacute", "\u00dd");
- builder.put("Ycirc", "\u0176");
- builder.put("Ycy", "\u042b");
- builder.put("Yfr", "\ud835\udd1c");
- builder.put("Yopf", "\ud835\udd50");
- builder.put("Yscr", "\ud835\udcb4");
- builder.put("Yuml", "\u0178");
- builder.put("ZHcy", "\u0416");
- builder.put("Zacute", "\u0179");
- builder.put("Zcaron", "\u017d");
- builder.put("Zcy", "\u0417");
- builder.put("Zdot", "\u017b");
- builder.put("ZeroWidthSpace", "\u200b");
- builder.put("Zeta", "\u0396");
- builder.put("Zfr", "\u2128");
- builder.put("Zopf", "\u2124");
- builder.put("Zscr", "\ud835\udcb5");
- builder.put("aacute", "\u00e1");
- builder.put("abreve", "\u0103");
- builder.put("ac", "\u223e");
- builder.put("acE", "\u223e\u0333");
- builder.put("acd", "\u223f");
- builder.put("acirc", "\u00e2");
- builder.put("acute", "\u00b4");
- builder.put("acy", "\u0430");
- builder.put("aelig", "\u00e6");
- builder.put("af", "\u2061");
- builder.put("afr", "\ud835\udd1e");
- builder.put("agrave", "\u00e0");
- builder.put("alefsym", "\u2135");
- builder.put("aleph", "\u2135");
- builder.put("alpha", "\u03b1");
- builder.put("amacr", "\u0101");
- builder.put("amalg", "\u2a3f");
- builder.put("amp", "\u0026");
- builder.put("and", "\u2227");
- builder.put("andand", "\u2a55");
- builder.put("andd", "\u2a5c");
- builder.put("andslope", "\u2a58");
- builder.put("andv", "\u2a5a");
- builder.put("ang", "\u2220");
- builder.put("ange", "\u29a4");
- builder.put("angle", "\u2220");
- builder.put("angmsd", "\u2221");
- builder.put("angmsdaa", "\u29a8");
- builder.put("angmsdab", "\u29a9");
- builder.put("angmsdac", "\u29aa");
- builder.put("angmsdad", "\u29ab");
- builder.put("angmsdae", "\u29ac");
- builder.put("angmsdaf", "\u29ad");
- builder.put("angmsdag", "\u29ae");
- builder.put("angmsdah", "\u29af");
- builder.put("angrt", "\u221f");
- builder.put("angrtvb", "\u22be");
- builder.put("angrtvbd", "\u299d");
- builder.put("angsph", "\u2222");
- builder.put("angst", "\u00c5");
- builder.put("angzarr", "\u237c");
- builder.put("aogon", "\u0105");
- builder.put("aopf", "\ud835\udd52");
- builder.put("ap", "\u2248");
- builder.put("apE", "\u2a70");
- builder.put("apacir", "\u2a6f");
- builder.put("ape", "\u224a");
- builder.put("apid", "\u224b");
- builder.put("apos", "\u0027");
- builder.put("approx", "\u2248");
- builder.put("approxeq", "\u224a");
- builder.put("aring", "\u00e5");
- builder.put("ascr", "\ud835\udcb6");
- builder.put("ast", "\u002a");
- builder.put("asymp", "\u2248");
- builder.put("asympeq", "\u224d");
- builder.put("atilde", "\u00e3");
- builder.put("auml", "\u00e4");
- builder.put("awconint", "\u2233");
- builder.put("awint", "\u2a11");
- builder.put("bNot", "\u2aed");
- builder.put("backcong", "\u224c");
- builder.put("backepsilon", "\u03f6");
- builder.put("backprime", "\u2035");
- builder.put("backsim", "\u223d");
- builder.put("backsimeq", "\u22cd");
- builder.put("barvee", "\u22bd");
- builder.put("barwed", "\u2305");
- builder.put("barwedge", "\u2305");
- builder.put("bbrk", "\u23b5");
- builder.put("bbrktbrk", "\u23b6");
- builder.put("bcong", "\u224c");
- builder.put("bcy", "\u0431");
- builder.put("bdquo", "\u201e");
- builder.put("becaus", "\u2235");
- builder.put("because", "\u2235");
- builder.put("bemptyv", "\u29b0");
- builder.put("bepsi", "\u03f6");
- builder.put("bernou", "\u212c");
- builder.put("beta", "\u03b2");
- builder.put("beth", "\u2136");
- builder.put("between", "\u226c");
- builder.put("bfr", "\ud835\udd1f");
- builder.put("bigcap", "\u22c2");
- builder.put("bigcirc", "\u25ef");
- builder.put("bigcup", "\u22c3");
- builder.put("bigodot", "\u2a00");
- builder.put("bigoplus", "\u2a01");
- builder.put("bigotimes", "\u2a02");
- builder.put("bigsqcup", "\u2a06");
- builder.put("bigstar", "\u2605");
- builder.put("bigtriangledown", "\u25bd");
- builder.put("bigtriangleup", "\u25b3");
- builder.put("biguplus", "\u2a04");
- builder.put("bigvee", "\u22c1");
- builder.put("bigwedge", "\u22c0");
- builder.put("bkarow", "\u290d");
- builder.put("blacklozenge", "\u29eb");
- builder.put("blacksquare", "\u25aa");
- builder.put("blacktriangle", "\u25b4");
- builder.put("blacktriangledown", "\u25be");
- builder.put("blacktriangleleft", "\u25c2");
- builder.put("blacktriangleright", "\u25b8");
- builder.put("blank", "\u2423");
- builder.put("blk12", "\u2592");
- builder.put("blk14", "\u2591");
- builder.put("blk34", "\u2593");
- builder.put("block", "\u2588");
- builder.put("bne", "\u003d\u20e5");
- builder.put("bnequiv", "\u2261\u20e5");
- builder.put("bnot", "\u2310");
- builder.put("bopf", "\ud835\udd53");
- builder.put("bot", "\u22a5");
- builder.put("bottom", "\u22a5");
- builder.put("bowtie", "\u22c8");
- builder.put("boxDL", "\u2557");
- builder.put("boxDR", "\u2554");
- builder.put("boxDl", "\u2556");
- builder.put("boxDr", "\u2553");
- builder.put("boxH", "\u2550");
- builder.put("boxHD", "\u2566");
- builder.put("boxHU", "\u2569");
- builder.put("boxHd", "\u2564");
- builder.put("boxHu", "\u2567");
- builder.put("boxUL", "\u255d");
- builder.put("boxUR", "\u255a");
- builder.put("boxUl", "\u255c");
- builder.put("boxUr", "\u2559");
- builder.put("boxV", "\u2551");
- builder.put("boxVH", "\u256c");
- builder.put("boxVL", "\u2563");
- builder.put("boxVR", "\u2560");
- builder.put("boxVh", "\u256b");
- builder.put("boxVl", "\u2562");
- builder.put("boxVr", "\u255f");
- builder.put("boxbox", "\u29c9");
- builder.put("boxdL", "\u2555");
- builder.put("boxdR", "\u2552");
- builder.put("boxdl", "\u2510");
- builder.put("boxdr", "\u250c");
- builder.put("boxh", "\u2500");
- builder.put("boxhD", "\u2565");
- builder.put("boxhU", "\u2568");
- builder.put("boxhd", "\u252c");
- builder.put("boxhu", "\u2534");
- builder.put("boxminus", "\u229f");
- builder.put("boxplus", "\u229e");
- builder.put("boxtimes", "\u22a0");
- builder.put("boxuL", "\u255b");
- builder.put("boxuR", "\u2558");
- builder.put("boxul", "\u2518");
- builder.put("boxur", "\u2514");
- builder.put("boxv", "\u2502");
- builder.put("boxvH", "\u256a");
- builder.put("boxvL", "\u2561");
- builder.put("boxvR", "\u255e");
- builder.put("boxvh", "\u253c");
- builder.put("boxvl", "\u2524");
- builder.put("boxvr", "\u251c");
- builder.put("bprime", "\u2035");
- builder.put("breve", "\u02d8");
- builder.put("brvbar", "\u00a6");
- builder.put("bscr", "\ud835\udcb7");
- builder.put("bsemi", "\u204f");
- builder.put("bsim", "\u223d");
- builder.put("bsime", "\u22cd");
- builder.put("bsol", "\\");
- builder.put("bsolb", "\u29c5");
- builder.put("bsolhsub", "\u27c8");
- builder.put("bull", "\u2022");
- builder.put("bullet", "\u2022");
- builder.put("bump", "\u224e");
- builder.put("bumpE", "\u2aae");
- builder.put("bumpe", "\u224f");
- builder.put("bumpeq", "\u224f");
- builder.put("cacute", "\u0107");
- builder.put("cap", "\u2229");
- builder.put("capand", "\u2a44");
- builder.put("capbrcup", "\u2a49");
- builder.put("capcap", "\u2a4b");
- builder.put("capcup", "\u2a47");
- builder.put("capdot", "\u2a40");
- builder.put("caps", "\u2229\ufe00");
- builder.put("caret", "\u2041");
- builder.put("caron", "\u02c7");
- builder.put("ccaps", "\u2a4d");
- builder.put("ccaron", "\u010d");
- builder.put("ccedil", "\u00e7");
- builder.put("ccirc", "\u0109");
- builder.put("ccups", "\u2a4c");
- builder.put("ccupssm", "\u2a50");
- builder.put("cdot", "\u010b");
- builder.put("cedil", "\u00b8");
- builder.put("cemptyv", "\u29b2");
- builder.put("cent", "\u00a2");
- builder.put("centerdot", "\u00b7");
- builder.put("cfr", "\ud835\udd20");
- builder.put("chcy", "\u0447");
- builder.put("check", "\u2713");
- builder.put("checkmark", "\u2713");
- builder.put("chi", "\u03c7");
- builder.put("cir", "\u25cb");
- builder.put("cirE", "\u29c3");
- builder.put("circ", "\u02c6");
- builder.put("circeq", "\u2257");
- builder.put("circlearrowleft", "\u21ba");
- builder.put("circlearrowright", "\u21bb");
- builder.put("circledR", "\u00ae");
- builder.put("circledS", "\u24c8");
- builder.put("circledast", "\u229b");
- builder.put("circledcirc", "\u229a");
- builder.put("circleddash", "\u229d");
- builder.put("cire", "\u2257");
- builder.put("cirfnint", "\u2a10");
- builder.put("cirmid", "\u2aef");
- builder.put("cirscir", "\u29c2");
- builder.put("clubs", "\u2663");
- builder.put("clubsuit", "\u2663");
- builder.put("colon", "\u003a");
- builder.put("colone", "\u2254");
- builder.put("coloneq", "\u2254");
- builder.put("comma", "\u002c");
- builder.put("commat", "\u0040");
- builder.put("comp", "\u2201");
- builder.put("compfn", "\u2218");
- builder.put("complement", "\u2201");
- builder.put("complexes", "\u2102");
- builder.put("cong", "\u2245");
- builder.put("congdot", "\u2a6d");
- builder.put("conint", "\u222e");
- builder.put("copf", "\ud835\udd54");
- builder.put("coprod", "\u2210");
- builder.put("copy", "\u00a9");
- builder.put("copysr", "\u2117");
- builder.put("crarr", "\u21b5");
- builder.put("cross", "\u2717");
- builder.put("cscr", "\ud835\udcb8");
- builder.put("csub", "\u2acf");
- builder.put("csube", "\u2ad1");
- builder.put("csup", "\u2ad0");
- builder.put("csupe", "\u2ad2");
- builder.put("ctdot", "\u22ef");
- builder.put("cudarrl", "\u2938");
- builder.put("cudarrr", "\u2935");
- builder.put("cuepr", "\u22de");
- builder.put("cuesc", "\u22df");
- builder.put("cularr", "\u21b6");
- builder.put("cularrp", "\u293d");
- builder.put("cup", "\u222a");
- builder.put("cupbrcap", "\u2a48");
- builder.put("cupcap", "\u2a46");
- builder.put("cupcup", "\u2a4a");
- builder.put("cupdot", "\u228d");
- builder.put("cupor", "\u2a45");
- builder.put("cups", "\u222a\ufe00");
- builder.put("curarr", "\u21b7");
- builder.put("curarrm", "\u293c");
- builder.put("curlyeqprec", "\u22de");
- builder.put("curlyeqsucc", "\u22df");
- builder.put("curlyvee", "\u22ce");
- builder.put("curlywedge", "\u22cf");
- builder.put("curren", "\u00a4");
- builder.put("curvearrowleft", "\u21b6");
- builder.put("curvearrowright", "\u21b7");
- builder.put("cuvee", "\u22ce");
- builder.put("cuwed", "\u22cf");
- builder.put("cwconint", "\u2232");
- builder.put("cwint", "\u2231");
- builder.put("cylcty", "\u232d");
- builder.put("dArr", "\u21d3");
- builder.put("dHar", "\u2965");
- builder.put("dagger", "\u2020");
- builder.put("daleth", "\u2138");
- builder.put("darr", "\u2193");
- builder.put("dash", "\u2010");
- builder.put("dashv", "\u22a3");
- builder.put("dbkarow", "\u290f");
- builder.put("dblac", "\u02dd");
- builder.put("dcaron", "\u010f");
- builder.put("dcy", "\u0434");
- builder.put("dd", "\u2146");
- builder.put("ddagger", "\u2021");
- builder.put("ddarr", "\u21ca");
- builder.put("ddotseq", "\u2a77");
- builder.put("deg", "\u00b0");
- builder.put("delta", "\u03b4");
- builder.put("demptyv", "\u29b1");
- builder.put("dfisht", "\u297f");
- builder.put("dfr", "\ud835\udd21");
- builder.put("dharl", "\u21c3");
- builder.put("dharr", "\u21c2");
- builder.put("diam", "\u22c4");
- builder.put("diamond", "\u22c4");
- builder.put("diamondsuit", "\u2666");
- builder.put("diams", "\u2666");
- builder.put("die", "\u00a8");
- builder.put("digamma", "\u03dd");
- builder.put("disin", "\u22f2");
- builder.put("div", "\u00f7");
- builder.put("divide", "\u00f7");
- builder.put("divideontimes", "\u22c7");
- builder.put("divonx", "\u22c7");
- builder.put("djcy", "\u0452");
- builder.put("dlcorn", "\u231e");
- builder.put("dlcrop", "\u230d");
- builder.put("dollar", "\u0024");
- builder.put("dopf", "\ud835\udd55");
- builder.put("dot", "\u02d9");
- builder.put("doteq", "\u2250");
- builder.put("doteqdot", "\u2251");
- builder.put("dotminus", "\u2238");
- builder.put("dotplus", "\u2214");
- builder.put("dotsquare", "\u22a1");
- builder.put("doublebarwedge", "\u2306");
- builder.put("downarrow", "\u2193");
- builder.put("downdownarrows", "\u21ca");
- builder.put("downharpoonleft", "\u21c3");
- builder.put("downharpoonright", "\u21c2");
- builder.put("drbkarow", "\u2910");
- builder.put("drcorn", "\u231f");
- builder.put("drcrop", "\u230c");
- builder.put("dscr", "\ud835\udcb9");
- builder.put("dscy", "\u0455");
- builder.put("dsol", "\u29f6");
- builder.put("dstrok", "\u0111");
- builder.put("dtdot", "\u22f1");
- builder.put("dtri", "\u25bf");
- builder.put("dtrif", "\u25be");
- builder.put("duarr", "\u21f5");
- builder.put("duhar", "\u296f");
- builder.put("dwangle", "\u29a6");
- builder.put("dzcy", "\u045f");
- builder.put("dzigrarr", "\u27ff");
- builder.put("eDDot", "\u2a77");
- builder.put("eDot", "\u2251");
- builder.put("eacute", "\u00e9");
- builder.put("easter", "\u2a6e");
- builder.put("ecaron", "\u011b");
- builder.put("ecir", "\u2256");
- builder.put("ecirc", "\u00ea");
- builder.put("ecolon", "\u2255");
- builder.put("ecy", "\u044d");
- builder.put("edot", "\u0117");
- builder.put("ee", "\u2147");
- builder.put("efDot", "\u2252");
- builder.put("efr", "\ud835\udd22");
- builder.put("eg", "\u2a9a");
- builder.put("egrave", "\u00e8");
- builder.put("egs", "\u2a96");
- builder.put("egsdot", "\u2a98");
- builder.put("el", "\u2a99");
- builder.put("elinters", "\u23e7");
- builder.put("ell", "\u2113");
- builder.put("els", "\u2a95");
- builder.put("elsdot", "\u2a97");
- builder.put("emacr", "\u0113");
- builder.put("empty", "\u2205");
- builder.put("emptyset", "\u2205");
- builder.put("emptyv", "\u2205");
- builder.put("emsp13", "\u2004");
- builder.put("emsp14", "\u2005");
- builder.put("emsp", "\u2003");
- builder.put("eng", "\u014b");
- builder.put("ensp", "\u2002");
- builder.put("eogon", "\u0119");
- builder.put("eopf", "\ud835\udd56");
- builder.put("epar", "\u22d5");
- builder.put("eparsl", "\u29e3");
- builder.put("eplus", "\u2a71");
- builder.put("epsi", "\u03b5");
- builder.put("epsilon", "\u03b5");
- builder.put("epsiv", "\u03f5");
- builder.put("eqcirc", "\u2256");
- builder.put("eqcolon", "\u2255");
- builder.put("eqsim", "\u2242");
- builder.put("eqslantgtr", "\u2a96");
- builder.put("eqslantless", "\u2a95");
- builder.put("equals", "\u003d");
- builder.put("equest", "\u225f");
- builder.put("equiv", "\u2261");
- builder.put("equivDD", "\u2a78");
- builder.put("eqvparsl", "\u29e5");
- builder.put("erDot", "\u2253");
- builder.put("erarr", "\u2971");
- builder.put("escr", "\u212f");
- builder.put("esdot", "\u2250");
- builder.put("esim", "\u2242");
- builder.put("eta", "\u03b7");
- builder.put("eth", "\u00f0");
- builder.put("euml", "\u00eb");
- builder.put("euro", "\u20ac");
- builder.put("excl", "\u0021");
- builder.put("exist", "\u2203");
- builder.put("expectation", "\u2130");
- builder.put("exponentiale", "\u2147");
- builder.put("fallingdotseq", "\u2252");
- builder.put("fcy", "\u0444");
- builder.put("female", "\u2640");
- builder.put("ffilig", "\ufb03");
- builder.put("fflig", "\ufb00");
- builder.put("ffllig", "\ufb04");
- builder.put("ffr", "\ud835\udd23");
- builder.put("filig", "\ufb01");
- builder.put("fjlig", "\u0066\u006a");
- builder.put("flat", "\u266d");
- builder.put("fllig", "\ufb02");
- builder.put("fltns", "\u25b1");
- builder.put("fnof", "\u0192");
- builder.put("fopf", "\ud835\udd57");
- builder.put("forall", "\u2200");
- builder.put("fork", "\u22d4");
- builder.put("forkv", "\u2ad9");
- builder.put("fpartint", "\u2a0d");
- builder.put("frac12", "\u00bd");
- builder.put("frac13", "\u2153");
- builder.put("frac14", "\u00bc");
- builder.put("frac15", "\u2155");
- builder.put("frac16", "\u2159");
- builder.put("frac18", "\u215b");
- builder.put("frac23", "\u2154");
- builder.put("frac25", "\u2156");
- builder.put("frac34", "\u00be");
- builder.put("frac35", "\u2157");
- builder.put("frac38", "\u215c");
- builder.put("frac45", "\u2158");
- builder.put("frac56", "\u215a");
- builder.put("frac58", "\u215d");
- builder.put("frac78", "\u215e");
- builder.put("frasl", "\u2044");
- builder.put("frown", "\u2322");
- builder.put("fscr", "\ud835\udcbb");
- builder.put("gE", "\u2267");
- builder.put("gEl", "\u2a8c");
- builder.put("gacute", "\u01f5");
- builder.put("gamma", "\u03b3");
- builder.put("gammad", "\u03dd");
- builder.put("gap", "\u2a86");
- builder.put("gbreve", "\u011f");
- builder.put("gcirc", "\u011d");
- builder.put("gcy", "\u0433");
- builder.put("gdot", "\u0121");
- builder.put("ge", "\u2265");
- builder.put("gel", "\u22db");
- builder.put("geq", "\u2265");
- builder.put("geqq", "\u2267");
- builder.put("geqslant", "\u2a7e");
- builder.put("ges", "\u2a7e");
- builder.put("gescc", "\u2aa9");
- builder.put("gesdot", "\u2a80");
- builder.put("gesdoto", "\u2a82");
- builder.put("gesdotol", "\u2a84");
- builder.put("gesl", "\u22db\ufe00");
- builder.put("gesles", "\u2a94");
- builder.put("gfr", "\ud835\udd24");
- builder.put("gg", "\u226b");
- builder.put("ggg", "\u22d9");
- builder.put("gimel", "\u2137");
- builder.put("gjcy", "\u0453");
- builder.put("gl", "\u2277");
- builder.put("glE", "\u2a92");
- builder.put("gla", "\u2aa5");
- builder.put("glj", "\u2aa4");
- builder.put("gnE", "\u2269");
- builder.put("gnap", "\u2a8a");
- builder.put("gnapprox", "\u2a8a");
- builder.put("gne", "\u2a88");
- builder.put("gneq", "\u2a88");
- builder.put("gneqq", "\u2269");
- builder.put("gnsim", "\u22e7");
- builder.put("gopf", "\ud835\udd58");
- builder.put("grave", "\u0060");
- builder.put("gscr", "\u210a");
- builder.put("gsim", "\u2273");
- builder.put("gsime", "\u2a8e");
- builder.put("gsiml", "\u2a90");
- builder.put("gt", "\u003e");
- builder.put("gtcc", "\u2aa7");
- builder.put("gtcir", "\u2a7a");
- builder.put("gtdot", "\u22d7");
- builder.put("gtlPar", "\u2995");
- builder.put("gtquest", "\u2a7c");
- builder.put("gtrapprox", "\u2a86");
- builder.put("gtrarr", "\u2978");
- builder.put("gtrdot", "\u22d7");
- builder.put("gtreqless", "\u22db");
- builder.put("gtreqqless", "\u2a8c");
- builder.put("gtrless", "\u2277");
- builder.put("gtrsim", "\u2273");
- builder.put("gvertneqq", "\u2269\ufe00");
- builder.put("gvnE", "\u2269\ufe00");
- builder.put("hArr", "\u21d4");
- builder.put("hairsp", "\u200a");
- builder.put("half", "\u00bd");
- builder.put("hamilt", "\u210b");
- builder.put("hardcy", "\u044a");
- builder.put("harr", "\u2194");
- builder.put("harrcir", "\u2948");
- builder.put("harrw", "\u21ad");
- builder.put("hbar", "\u210f");
- builder.put("hcirc", "\u0125");
- builder.put("hearts", "\u2665");
- builder.put("heartsuit", "\u2665");
- builder.put("hellip", "\u2026");
- builder.put("hercon", "\u22b9");
- builder.put("hfr", "\ud835\udd25");
- builder.put("hksearow", "\u2925");
- builder.put("hkswarow", "\u2926");
- builder.put("hoarr", "\u21ff");
- builder.put("homtht", "\u223b");
- builder.put("hookleftarrow", "\u21a9");
- builder.put("hookrightarrow", "\u21aa");
- builder.put("hopf", "\ud835\udd59");
- builder.put("horbar", "\u2015");
- builder.put("hscr", "\ud835\udcbd");
- builder.put("hslash", "\u210f");
- builder.put("hstrok", "\u0127");
- builder.put("hybull", "\u2043");
- builder.put("hyphen", "\u2010");
- builder.put("iacute", "\u00ed");
- builder.put("ic", "\u2063");
- builder.put("icirc", "\u00ee");
- builder.put("icy", "\u0438");
- builder.put("iecy", "\u0435");
- builder.put("iexcl", "\u00a1");
- builder.put("iff", "\u21d4");
- builder.put("ifr", "\ud835\udd26");
- builder.put("igrave", "\u00ec");
- builder.put("ii", "\u2148");
- builder.put("iiiint", "\u2a0c");
- builder.put("iiint", "\u222d");
- builder.put("iinfin", "\u29dc");
- builder.put("iiota", "\u2129");
- builder.put("ijlig", "\u0133");
- builder.put("imacr", "\u012b");
- builder.put("image", "\u2111");
- builder.put("imagline", "\u2110");
- builder.put("imagpart", "\u2111");
- builder.put("imath", "\u0131");
- builder.put("imof", "\u22b7");
- builder.put("imped", "\u01b5");
- builder.put("in", "\u2208");
- builder.put("incare", "\u2105");
- builder.put("infin", "\u221e");
- builder.put("infintie", "\u29dd");
- builder.put("inodot", "\u0131");
- builder.put("int", "\u222b");
- builder.put("intcal", "\u22ba");
- builder.put("integers", "\u2124");
- builder.put("intercal", "\u22ba");
- builder.put("intlarhk", "\u2a17");
- builder.put("intprod", "\u2a3c");
- builder.put("iocy", "\u0451");
- builder.put("iogon", "\u012f");
- builder.put("iopf", "\ud835\udd5a");
- builder.put("iota", "\u03b9");
- builder.put("iprod", "\u2a3c");
- builder.put("iquest", "\u00bf");
- builder.put("iscr", "\ud835\udcbe");
- builder.put("isin", "\u2208");
- builder.put("isinE", "\u22f9");
- builder.put("isindot", "\u22f5");
- builder.put("isins", "\u22f4");
- builder.put("isinsv", "\u22f3");
- builder.put("isinv", "\u2208");
- builder.put("it", "\u2062");
- builder.put("itilde", "\u0129");
- builder.put("iukcy", "\u0456");
- builder.put("iuml", "\u00ef");
- builder.put("jcirc", "\u0135");
- builder.put("jcy", "\u0439");
- builder.put("jfr", "\ud835\udd27");
- builder.put("jmath", "\u0237");
- builder.put("jopf", "\ud835\udd5b");
- builder.put("jscr", "\ud835\udcbf");
- builder.put("jsercy", "\u0458");
- builder.put("jukcy", "\u0454");
- builder.put("kappa", "\u03ba");
- builder.put("kappav", "\u03f0");
- builder.put("kcedil", "\u0137");
- builder.put("kcy", "\u043a");
- builder.put("kfr", "\ud835\udd28");
- builder.put("kgreen", "\u0138");
- builder.put("khcy", "\u0445");
- builder.put("kjcy", "\u045c");
- builder.put("kopf", "\ud835\udd5c");
- builder.put("kscr", "\ud835\udcc0");
- builder.put("lAarr", "\u21da");
- builder.put("lArr", "\u21d0");
- builder.put("lAtail", "\u291b");
- builder.put("lBarr", "\u290e");
- builder.put("lE", "\u2266");
- builder.put("lEg", "\u2a8b");
- builder.put("lHar", "\u2962");
- builder.put("lacute", "\u013a");
- builder.put("laemptyv", "\u29b4");
- builder.put("lagran", "\u2112");
- builder.put("lambda", "\u03bb");
- builder.put("lang", "\u27e8");
- builder.put("langd", "\u2991");
- builder.put("langle", "\u27e8");
- builder.put("lap", "\u2a85");
- builder.put("laquo", "\u00ab");
- builder.put("larr", "\u2190");
- builder.put("larrb", "\u21e4");
- builder.put("larrbfs", "\u291f");
- builder.put("larrfs", "\u291d");
- builder.put("larrhk", "\u21a9");
- builder.put("larrlp", "\u21ab");
- builder.put("larrpl", "\u2939");
- builder.put("larrsim", "\u2973");
- builder.put("larrtl", "\u21a2");
- builder.put("lat", "\u2aab");
- builder.put("latail", "\u2919");
- builder.put("late", "\u2aad");
- builder.put("lates", "\u2aad\ufe00");
- builder.put("lbarr", "\u290c");
- builder.put("lbbrk", "\u2772");
- builder.put("lbrace", "\u007b");
- builder.put("lbrack", "\u005b");
- builder.put("lbrke", "\u298b");
- builder.put("lbrksld", "\u298f");
- builder.put("lbrkslu", "\u298d");
- builder.put("lcaron", "\u013e");
- builder.put("lcedil", "\u013c");
- builder.put("lceil", "\u2308");
- builder.put("lcub", "\u007b");
- builder.put("lcy", "\u043b");
- builder.put("ldca", "\u2936");
- builder.put("ldquo", "\u201c");
- builder.put("ldquor", "\u201e");
- builder.put("ldrdhar", "\u2967");
- builder.put("ldrushar", "\u294b");
- builder.put("ldsh", "\u21b2");
- builder.put("le", "\u2264");
- builder.put("leftarrow", "\u2190");
- builder.put("leftarrowtail", "\u21a2");
- builder.put("leftharpoondown", "\u21bd");
- builder.put("leftharpoonup", "\u21bc");
- builder.put("leftleftarrows", "\u21c7");
- builder.put("leftrightarrow", "\u2194");
- builder.put("leftrightarrows", "\u21c6");
- builder.put("leftrightharpoons", "\u21cb");
- builder.put("leftrightsquigarrow", "\u21ad");
- builder.put("leftthreetimes", "\u22cb");
- builder.put("leg", "\u22da");
- builder.put("leq", "\u2264");
- builder.put("leqq", "\u2266");
- builder.put("leqslant", "\u2a7d");
- builder.put("les", "\u2a7d");
- builder.put("lescc", "\u2aa8");
- builder.put("lesdot", "\u2a7f");
- builder.put("lesdoto", "\u2a81");
- builder.put("lesdotor", "\u2a83");
- builder.put("lesg", "\u22da\ufe00");
- builder.put("lesges", "\u2a93");
- builder.put("lessapprox", "\u2a85");
- builder.put("lessdot", "\u22d6");
- builder.put("lesseqgtr", "\u22da");
- builder.put("lesseqqgtr", "\u2a8b");
- builder.put("lessgtr", "\u2276");
- builder.put("lesssim", "\u2272");
- builder.put("lfisht", "\u297c");
- builder.put("lfloor", "\u230a");
- builder.put("lfr", "\ud835\udd29");
- builder.put("lg", "\u2276");
- builder.put("lgE", "\u2a91");
- builder.put("lhard", "\u21bd");
- builder.put("lharu", "\u21bc");
- builder.put("lharul", "\u296a");
- builder.put("lhblk", "\u2584");
- builder.put("ljcy", "\u0459");
- builder.put("ll", "\u226a");
- builder.put("llarr", "\u21c7");
- builder.put("llcorner", "\u231e");
- builder.put("llhard", "\u296b");
- builder.put("lltri", "\u25fa");
- builder.put("lmidot", "\u0140");
- builder.put("lmoust", "\u23b0");
- builder.put("lmoustache", "\u23b0");
- builder.put("lnE", "\u2268");
- builder.put("lnap", "\u2a89");
- builder.put("lnapprox", "\u2a89");
- builder.put("lne", "\u2a87");
- builder.put("lneq", "\u2a87");
- builder.put("lneqq", "\u2268");
- builder.put("lnsim", "\u22e6");
- builder.put("loang", "\u27ec");
- builder.put("loarr", "\u21fd");
- builder.put("lobrk", "\u27e6");
- builder.put("longleftarrow", "\u27f5");
- builder.put("longleftrightarrow", "\u27f7");
- builder.put("longmapsto", "\u27fc");
- builder.put("longrightarrow", "\u27f6");
- builder.put("looparrowleft", "\u21ab");
- builder.put("looparrowright", "\u21ac");
- builder.put("lopar", "\u2985");
- builder.put("lopf", "\ud835\udd5d");
- builder.put("loplus", "\u2a2d");
- builder.put("lotimes", "\u2a34");
- builder.put("lowast", "\u2217");
- builder.put("lowbar", "\u005f");
- builder.put("loz", "\u25ca");
- builder.put("lozenge", "\u25ca");
- builder.put("lozf", "\u29eb");
- builder.put("lpar", "\u0028");
- builder.put("lparlt", "\u2993");
- builder.put("lrarr", "\u21c6");
- builder.put("lrcorner", "\u231f");
- builder.put("lrhar", "\u21cb");
- builder.put("lrhard", "\u296d");
- builder.put("lrm", "\u200e");
- builder.put("lrtri", "\u22bf");
- builder.put("lsaquo", "\u2039");
- builder.put("lscr", "\ud835\udcc1");
- builder.put("lsh", "\u21b0");
- builder.put("lsim", "\u2272");
- builder.put("lsime", "\u2a8d");
- builder.put("lsimg", "\u2a8f");
- builder.put("lsqb", "\u005b");
- builder.put("lsquo", "\u2018");
- builder.put("lsquor", "\u201a");
- builder.put("lstrok", "\u0142");
- builder.put("lt", "\u003c");
- builder.put("ltcc", "\u2aa6");
- builder.put("ltcir", "\u2a79");
- builder.put("ltdot", "\u22d6");
- builder.put("lthree", "\u22cb");
- builder.put("ltimes", "\u22c9");
- builder.put("ltlarr", "\u2976");
- builder.put("ltquest", "\u2a7b");
- builder.put("ltrPar", "\u2996");
- builder.put("ltri", "\u25c3");
- builder.put("ltrie", "\u22b4");
- builder.put("ltrif", "\u25c2");
- builder.put("lurdshar", "\u294a");
- builder.put("luruhar", "\u2966");
- builder.put("lvertneqq", "\u2268\ufe00");
- builder.put("lvnE", "\u2268\ufe00");
- builder.put("mDDot", "\u223a");
- builder.put("macr", "\u00af");
- builder.put("male", "\u2642");
- builder.put("malt", "\u2720");
- builder.put("maltese", "\u2720");
- builder.put("map", "\u21a6");
- builder.put("mapsto", "\u21a6");
- builder.put("mapstodown", "\u21a7");
- builder.put("mapstoleft", "\u21a4");
- builder.put("mapstoup", "\u21a5");
- builder.put("marker", "\u25ae");
- builder.put("mcomma", "\u2a29");
- builder.put("mcy", "\u043c");
- builder.put("mdash", "\u2014");
- builder.put("measuredangle", "\u2221");
- builder.put("mfr", "\ud835\udd2a");
- builder.put("mho", "\u2127");
- builder.put("micro", "\u00b5");
- builder.put("mid", "\u2223");
- builder.put("midast", "\u002a");
- builder.put("midcir", "\u2af0");
- builder.put("middot", "\u00b7");
- builder.put("minus", "\u2212");
- builder.put("minusb", "\u229f");
- builder.put("minusd", "\u2238");
- builder.put("minusdu", "\u2a2a");
- builder.put("mlcp", "\u2adb");
- builder.put("mldr", "\u2026");
- builder.put("mnplus", "\u2213");
- builder.put("models", "\u22a7");
- builder.put("mopf", "\ud835\udd5e");
- builder.put("mp", "\u2213");
- builder.put("mscr", "\ud835\udcc2");
- builder.put("mstpos", "\u223e");
- builder.put("mu", "\u03bc");
- builder.put("multimap", "\u22b8");
- builder.put("mumap", "\u22b8");
- builder.put("nGg", "\u22d9\u0338");
- builder.put("nGt", "\u226b\u20d2");
- builder.put("nGtv", "\u226b\u0338");
- builder.put("nLeftarrow", "\u21cd");
- builder.put("nLeftrightarrow", "\u21ce");
- builder.put("nLl", "\u22d8\u0338");
- builder.put("nLt", "\u226a\u20d2");
- builder.put("nLtv", "\u226a\u0338");
- builder.put("nRightarrow", "\u21cf");
- builder.put("nVDash", "\u22af");
- builder.put("nVdash", "\u22ae");
- builder.put("nabla", "\u2207");
- builder.put("nacute", "\u0144");
- builder.put("nang", "\u2220\u20d2");
- builder.put("nap", "\u2249");
- builder.put("napE", "\u2a70\u0338");
- builder.put("napid", "\u224b\u0338");
- builder.put("napos", "\u0149");
- builder.put("napprox", "\u2249");
- builder.put("natur", "\u266e");
- builder.put("natural", "\u266e");
- builder.put("naturals", "\u2115");
- builder.put("nbsp", "\u00a0");
- builder.put("nbump", "\u224e\u0338");
- builder.put("nbumpe", "\u224f\u0338");
- builder.put("ncap", "\u2a43");
- builder.put("ncaron", "\u0148");
- builder.put("ncedil", "\u0146");
- builder.put("ncong", "\u2247");
- builder.put("ncongdot", "\u2a6d\u0338");
- builder.put("ncup", "\u2a42");
- builder.put("ncy", "\u043d");
- builder.put("ndash", "\u2013");
- builder.put("ne", "\u2260");
- builder.put("neArr", "\u21d7");
- builder.put("nearhk", "\u2924");
- builder.put("nearr", "\u2197");
- builder.put("nearrow", "\u2197");
- builder.put("nedot", "\u2250\u0338");
- builder.put("nequiv", "\u2262");
- builder.put("nesear", "\u2928");
- builder.put("nesim", "\u2242\u0338");
- builder.put("nexist", "\u2204");
- builder.put("nexists", "\u2204");
- builder.put("nfr", "\ud835\udd2b");
- builder.put("ngE", "\u2267\u0338");
- builder.put("nge", "\u2271");
- builder.put("ngeq", "\u2271");
- builder.put("ngeqq", "\u2267\u0338");
- builder.put("ngeqslant", "\u2a7e\u0338");
- builder.put("nges", "\u2a7e\u0338");
- builder.put("ngsim", "\u2275");
- builder.put("ngt", "\u226f");
- builder.put("ngtr", "\u226f");
- builder.put("nhArr", "\u21ce");
- builder.put("nharr", "\u21ae");
- builder.put("nhpar", "\u2af2");
- builder.put("ni", "\u220b");
- builder.put("nis", "\u22fc");
- builder.put("nisd", "\u22fa");
- builder.put("niv", "\u220b");
- builder.put("njcy", "\u045a");
- builder.put("nlArr", "\u21cd");
- builder.put("nlE", "\u2266\u0338");
- builder.put("nlarr", "\u219a");
- builder.put("nldr", "\u2025");
- builder.put("nle", "\u2270");
- builder.put("nleftarrow", "\u219a");
- builder.put("nleftrightarrow", "\u21ae");
- builder.put("nleq", "\u2270");
- builder.put("nleqq", "\u2266\u0338");
- builder.put("nleqslant", "\u2a7d\u0338");
- builder.put("nles", "\u2a7d\u0338");
- builder.put("nless", "\u226e");
- builder.put("nlsim", "\u2274");
- builder.put("nlt", "\u226e");
- builder.put("nltri", "\u22ea");
- builder.put("nltrie", "\u22ec");
- builder.put("nmid", "\u2224");
- builder.put("nopf", "\ud835\udd5f");
- builder.put("not", "\u00ac");
- builder.put("notin", "\u2209");
- builder.put("notinE", "\u22f9\u0338");
- builder.put("notindot", "\u22f5\u0338");
- builder.put("notinva", "\u2209");
- builder.put("notinvb", "\u22f7");
- builder.put("notinvc", "\u22f6");
- builder.put("notni", "\u220c");
- builder.put("notniva", "\u220c");
- builder.put("notnivb", "\u22fe");
- builder.put("notnivc", "\u22fd");
- builder.put("npar", "\u2226");
- builder.put("nparallel", "\u2226");
- builder.put("nparsl", "\u2afd\u20e5");
- builder.put("npart", "\u2202\u0338");
- builder.put("npolint", "\u2a14");
- builder.put("npr", "\u2280");
- builder.put("nprcue", "\u22e0");
- builder.put("npre", "\u2aaf\u0338");
- builder.put("nprec", "\u2280");
- builder.put("npreceq", "\u2aaf\u0338");
- builder.put("nrArr", "\u21cf");
- builder.put("nrarr", "\u219b");
- builder.put("nrarrc", "\u2933\u0338");
- builder.put("nrarrw", "\u219d\u0338");
- builder.put("nrightarrow", "\u219b");
- builder.put("nrtri", "\u22eb");
- builder.put("nrtrie", "\u22ed");
- builder.put("nsc", "\u2281");
- builder.put("nsccue", "\u22e1");
- builder.put("nsce", "\u2ab0\u0338");
- builder.put("nscr", "\ud835\udcc3");
- builder.put("nshortmid", "\u2224");
- builder.put("nshortparallel", "\u2226");
- builder.put("nsim", "\u2241");
- builder.put("nsime", "\u2244");
- builder.put("nsimeq", "\u2244");
- builder.put("nsmid", "\u2224");
- builder.put("nspar", "\u2226");
- builder.put("nsqsube", "\u22e2");
- builder.put("nsqsupe", "\u22e3");
- builder.put("nsub", "\u2284");
- builder.put("nsubE", "\u2ac5\u0338");
- builder.put("nsube", "\u2288");
- builder.put("nsubset", "\u2282\u20d2");
- builder.put("nsubseteq", "\u2288");
- builder.put("nsubseteqq", "\u2ac5\u0338");
- builder.put("nsucc", "\u2281");
- builder.put("nsucceq", "\u2ab0\u0338");
- builder.put("nsup", "\u2285");
- builder.put("nsupE", "\u2ac6\u0338");
- builder.put("nsupe", "\u2289");
- builder.put("nsupset", "\u2283\u20d2");
- builder.put("nsupseteq", "\u2289");
- builder.put("nsupseteqq", "\u2ac6\u0338");
- builder.put("ntgl", "\u2279");
- builder.put("ntilde", "\u00f1");
- builder.put("ntlg", "\u2278");
- builder.put("ntriangleleft", "\u22ea");
- builder.put("ntrianglelefteq", "\u22ec");
- builder.put("ntriangleright", "\u22eb");
- builder.put("ntrianglerighteq", "\u22ed");
- builder.put("nu", "\u03bd");
- builder.put("num", "\u0023");
- builder.put("numero", "\u2116");
- builder.put("numsp", "\u2007");
- builder.put("nvDash", "\u22ad");
- builder.put("nvHarr", "\u2904");
- builder.put("nvap", "\u224d\u20d2");
- builder.put("nvdash", "\u22ac");
- builder.put("nvge", "\u2265\u20d2");
- builder.put("nvgt", "\u003e\u20d2");
- builder.put("nvinfin", "\u29de");
- builder.put("nvlArr", "\u2902");
- builder.put("nvle", "\u2264\u20d2");
- builder.put("nvlt", "\u003c\u20d2");
- builder.put("nvltrie", "\u22b4\u20d2");
- builder.put("nvrArr", "\u2903");
- builder.put("nvrtrie", "\u22b5\u20d2");
- builder.put("nvsim", "\u223c\u20d2");
- builder.put("nwArr", "\u21d6");
- builder.put("nwarhk", "\u2923");
- builder.put("nwarr", "\u2196");
- builder.put("nwarrow", "\u2196");
- builder.put("nwnear", "\u2927");
- builder.put("oS", "\u24c8");
- builder.put("oacute", "\u00f3");
- builder.put("oast", "\u229b");
- builder.put("ocir", "\u229a");
- builder.put("ocirc", "\u00f4");
- builder.put("ocy", "\u043e");
- builder.put("odash", "\u229d");
- builder.put("odblac", "\u0151");
- builder.put("odiv", "\u2a38");
- builder.put("odot", "\u2299");
- builder.put("odsold", "\u29bc");
- builder.put("oelig", "\u0153");
- builder.put("ofcir", "\u29bf");
- builder.put("ofr", "\ud835\udd2c");
- builder.put("ogon", "\u02db");
- builder.put("ograve", "\u00f2");
- builder.put("ogt", "\u29c1");
- builder.put("ohbar", "\u29b5");
- builder.put("ohm", "\u03a9");
- builder.put("oint", "\u222e");
- builder.put("olarr", "\u21ba");
- builder.put("olcir", "\u29be");
- builder.put("olcross", "\u29bb");
- builder.put("oline", "\u203e");
- builder.put("olt", "\u29c0");
- builder.put("omacr", "\u014d");
- builder.put("omega", "\u03c9");
- builder.put("omicron", "\u03bf");
- builder.put("omid", "\u29b6");
- builder.put("ominus", "\u2296");
- builder.put("oopf", "\ud835\udd60");
- builder.put("opar", "\u29b7");
- builder.put("operp", "\u29b9");
- builder.put("oplus", "\u2295");
- builder.put("or", "\u2228");
- builder.put("orarr", "\u21bb");
- builder.put("ord", "\u2a5d");
- builder.put("order", "\u2134");
- builder.put("orderof", "\u2134");
- builder.put("ordf", "\u00aa");
- builder.put("ordm", "\u00ba");
- builder.put("origof", "\u22b6");
- builder.put("oror", "\u2a56");
- builder.put("orslope", "\u2a57");
- builder.put("orv", "\u2a5b");
- builder.put("oscr", "\u2134");
- builder.put("oslash", "\u00f8");
- builder.put("osol", "\u2298");
- builder.put("otilde", "\u00f5");
- builder.put("otimes", "\u2297");
- builder.put("otimesas", "\u2a36");
- builder.put("ouml", "\u00f6");
- builder.put("ovbar", "\u233d");
- builder.put("par", "\u2225");
- builder.put("para", "\u00b6");
- builder.put("parallel", "\u2225");
- builder.put("parsim", "\u2af3");
- builder.put("parsl", "\u2afd");
- builder.put("part", "\u2202");
- builder.put("pcy", "\u043f");
- builder.put("percnt", "\u0025");
- builder.put("period", "\u002e");
- builder.put("permil", "\u2030");
- builder.put("perp", "\u22a5");
- builder.put("pertenk", "\u2031");
- builder.put("pfr", "\ud835\udd2d");
- builder.put("phi", "\u03c6");
- builder.put("phiv", "\u03d5");
- builder.put("phmmat", "\u2133");
- builder.put("phone", "\u260e");
- builder.put("pi", "\u03c0");
- builder.put("pitchfork", "\u22d4");
- builder.put("piv", "\u03d6");
- builder.put("planck", "\u210f");
- builder.put("planckh", "\u210e");
- builder.put("plankv", "\u210f");
- builder.put("plus", "\u002b");
- builder.put("plusacir", "\u2a23");
- builder.put("plusb", "\u229e");
- builder.put("pluscir", "\u2a22");
- builder.put("plusdo", "\u2214");
- builder.put("plusdu", "\u2a25");
- builder.put("pluse", "\u2a72");
- builder.put("plusmn", "\u00b1");
- builder.put("plussim", "\u2a26");
- builder.put("plustwo", "\u2a27");
- builder.put("pm", "\u00b1");
- builder.put("pointint", "\u2a15");
- builder.put("popf", "\ud835\udd61");
- builder.put("pound", "\u00a3");
- builder.put("pr", "\u227a");
- builder.put("prE", "\u2ab3");
- builder.put("prap", "\u2ab7");
- builder.put("prcue", "\u227c");
- builder.put("pre", "\u2aaf");
- builder.put("prec", "\u227a");
- builder.put("precapprox", "\u2ab7");
- builder.put("preccurlyeq", "\u227c");
- builder.put("preceq", "\u2aaf");
- builder.put("precnapprox", "\u2ab9");
- builder.put("precneqq", "\u2ab5");
- builder.put("precnsim", "\u22e8");
- builder.put("precsim", "\u227e");
- builder.put("prime", "\u2032");
- builder.put("primes", "\u2119");
- builder.put("prnE", "\u2ab5");
- builder.put("prnap", "\u2ab9");
- builder.put("prnsim", "\u22e8");
- builder.put("prod", "\u220f");
- builder.put("profalar", "\u232e");
- builder.put("profline", "\u2312");
- builder.put("profsurf", "\u2313");
- builder.put("prop", "\u221d");
- builder.put("propto", "\u221d");
- builder.put("prsim", "\u227e");
- builder.put("prurel", "\u22b0");
- builder.put("pscr", "\ud835\udcc5");
- builder.put("psi", "\u03c8");
- builder.put("puncsp", "\u2008");
- builder.put("qfr", "\ud835\udd2e");
- builder.put("qint", "\u2a0c");
- builder.put("qopf", "\ud835\udd62");
- builder.put("qprime", "\u2057");
- builder.put("qscr", "\ud835\udcc6");
- builder.put("quaternions", "\u210d");
- builder.put("quatint", "\u2a16");
- builder.put("quest", "\u003f");
- builder.put("questeq", "\u225f");
- builder.put("quot", "\"");
- builder.put("rAarr", "\u21db");
- builder.put("rArr", "\u21d2");
- builder.put("rAtail", "\u291c");
- builder.put("rBarr", "\u290f");
- builder.put("rHar", "\u2964");
- builder.put("race", "\u223d\u0331");
- builder.put("racute", "\u0155");
- builder.put("radic", "\u221a");
- builder.put("raemptyv", "\u29b3");
- builder.put("rang", "\u27e9");
- builder.put("rangd", "\u2992");
- builder.put("range", "\u29a5");
- builder.put("rangle", "\u27e9");
- builder.put("raquo", "\u00bb");
- builder.put("rarr", "\u2192");
- builder.put("rarrap", "\u2975");
- builder.put("rarrb", "\u21e5");
- builder.put("rarrbfs", "\u2920");
- builder.put("rarrc", "\u2933");
- builder.put("rarrfs", "\u291e");
- builder.put("rarrhk", "\u21aa");
- builder.put("rarrlp", "\u21ac");
- builder.put("rarrpl", "\u2945");
- builder.put("rarrsim", "\u2974");
- builder.put("rarrtl", "\u21a3");
- builder.put("rarrw", "\u219d");
- builder.put("ratail", "\u291a");
- builder.put("ratio", "\u2236");
- builder.put("rationals", "\u211a");
- builder.put("rbarr", "\u290d");
- builder.put("rbbrk", "\u2773");
- builder.put("rbrace", "\u007d");
- builder.put("rbrack", "\u005d");
- builder.put("rbrke", "\u298c");
- builder.put("rbrksld", "\u298e");
- builder.put("rbrkslu", "\u2990");
- builder.put("rcaron", "\u0159");
- builder.put("rcedil", "\u0157");
- builder.put("rceil", "\u2309");
- builder.put("rcub", "\u007d");
- builder.put("rcy", "\u0440");
- builder.put("rdca", "\u2937");
- builder.put("rdldhar", "\u2969");
- builder.put("rdquo", "\u201d");
- builder.put("rdquor", "\u201d");
- builder.put("rdsh", "\u21b3");
- builder.put("real", "\u211c");
- builder.put("realine", "\u211b");
- builder.put("realpart", "\u211c");
- builder.put("reals", "\u211d");
- builder.put("rect", "\u25ad");
- builder.put("reg", "\u00ae");
- builder.put("rfisht", "\u297d");
- builder.put("rfloor", "\u230b");
- builder.put("rfr", "\ud835\udd2f");
- builder.put("rhard", "\u21c1");
- builder.put("rharu", "\u21c0");
- builder.put("rharul", "\u296c");
- builder.put("rho", "\u03c1");
- builder.put("rhov", "\u03f1");
- builder.put("rightarrow", "\u2192");
- builder.put("rightarrowtail", "\u21a3");
- builder.put("rightharpoondown", "\u21c1");
- builder.put("rightharpoonup", "\u21c0");
- builder.put("rightleftarrows", "\u21c4");
- builder.put("rightleftharpoons", "\u21cc");
- builder.put("rightrightarrows", "\u21c9");
- builder.put("rightsquigarrow", "\u219d");
- builder.put("rightthreetimes", "\u22cc");
- builder.put("ring", "\u02da");
- builder.put("risingdotseq", "\u2253");
- builder.put("rlarr", "\u21c4");
- builder.put("rlhar", "\u21cc");
- builder.put("rlm", "\u200f");
- builder.put("rmoust", "\u23b1");
- builder.put("rmoustache", "\u23b1");
- builder.put("rnmid", "\u2aee");
- builder.put("roang", "\u27ed");
- builder.put("roarr", "\u21fe");
- builder.put("robrk", "\u27e7");
- builder.put("ropar", "\u2986");
- builder.put("ropf", "\ud835\udd63");
- builder.put("roplus", "\u2a2e");
- builder.put("rotimes", "\u2a35");
- builder.put("rpar", "\u0029");
- builder.put("rpargt", "\u2994");
- builder.put("rppolint", "\u2a12");
- builder.put("rrarr", "\u21c9");
- builder.put("rsaquo", "\u203a");
- builder.put("rscr", "\ud835\udcc7");
- builder.put("rsh", "\u21b1");
- builder.put("rsqb", "\u005d");
- builder.put("rsquo", "\u2019");
- builder.put("rsquor", "\u2019");
- builder.put("rthree", "\u22cc");
- builder.put("rtimes", "\u22ca");
- builder.put("rtri", "\u25b9");
- builder.put("rtrie", "\u22b5");
- builder.put("rtrif", "\u25b8");
- builder.put("rtriltri", "\u29ce");
- builder.put("ruluhar", "\u2968");
- builder.put("rx", "\u211e");
- builder.put("sacute", "\u015b");
- builder.put("sbquo", "\u201a");
- builder.put("sc", "\u227b");
- builder.put("scE", "\u2ab4");
- builder.put("scap", "\u2ab8");
- builder.put("scaron", "\u0161");
- builder.put("sccue", "\u227d");
- builder.put("sce", "\u2ab0");
- builder.put("scedil", "\u015f");
- builder.put("scirc", "\u015d");
- builder.put("scnE", "\u2ab6");
- builder.put("scnap", "\u2aba");
- builder.put("scnsim", "\u22e9");
- builder.put("scpolint", "\u2a13");
- builder.put("scsim", "\u227f");
- builder.put("scy", "\u0441");
- builder.put("sdot", "\u22c5");
- builder.put("sdotb", "\u22a1");
- builder.put("sdote", "\u2a66");
- builder.put("seArr", "\u21d8");
- builder.put("searhk", "\u2925");
- builder.put("searr", "\u2198");
- builder.put("searrow", "\u2198");
- builder.put("sect", "\u00a7");
- builder.put("semi", "\u003b");
- builder.put("seswar", "\u2929");
- builder.put("setminus", "\u2216");
- builder.put("setmn", "\u2216");
- builder.put("sext", "\u2736");
- builder.put("sfr", "\ud835\udd30");
- builder.put("sfrown", "\u2322");
- builder.put("sharp", "\u266f");
- builder.put("shchcy", "\u0449");
- builder.put("shcy", "\u0448");
- builder.put("shortmid", "\u2223");
- builder.put("shortparallel", "\u2225");
- builder.put("shy", "\u00ad");
- builder.put("sigma", "\u03c3");
- builder.put("sigmaf", "\u03c2");
- builder.put("sigmav", "\u03c2");
- builder.put("sim", "\u223c");
- builder.put("simdot", "\u2a6a");
- builder.put("sime", "\u2243");
- builder.put("simeq", "\u2243");
- builder.put("simg", "\u2a9e");
- builder.put("simgE", "\u2aa0");
- builder.put("siml", "\u2a9d");
- builder.put("simlE", "\u2a9f");
- builder.put("simne", "\u2246");
- builder.put("simplus", "\u2a24");
- builder.put("simrarr", "\u2972");
- builder.put("slarr", "\u2190");
- builder.put("smallsetminus", "\u2216");
- builder.put("smashp", "\u2a33");
- builder.put("smeparsl", "\u29e4");
- builder.put("smid", "\u2223");
- builder.put("smile", "\u2323");
- builder.put("smt", "\u2aaa");
- builder.put("smte", "\u2aac");
- builder.put("smtes", "\u2aac\ufe00");
- builder.put("softcy", "\u044c");
- builder.put("sol", "\u002f");
- builder.put("solb", "\u29c4");
- builder.put("solbar", "\u233f");
- builder.put("sopf", "\ud835\udd64");
- builder.put("spades", "\u2660");
- builder.put("spadesuit", "\u2660");
- builder.put("spar", "\u2225");
- builder.put("sqcap", "\u2293");
- builder.put("sqcaps", "\u2293\ufe00");
- builder.put("sqcup", "\u2294");
- builder.put("sqcups", "\u2294\ufe00");
- builder.put("sqsub", "\u228f");
- builder.put("sqsube", "\u2291");
- builder.put("sqsubset", "\u228f");
- builder.put("sqsubseteq", "\u2291");
- builder.put("sqsup", "\u2290");
- builder.put("sqsupe", "\u2292");
- builder.put("sqsupset", "\u2290");
- builder.put("sqsupseteq", "\u2292");
- builder.put("squ", "\u25a1");
- builder.put("square", "\u25a1");
- builder.put("squarf", "\u25aa");
- builder.put("squf", "\u25aa");
- builder.put("srarr", "\u2192");
- builder.put("sscr", "\ud835\udcc8");
- builder.put("ssetmn", "\u2216");
- builder.put("ssmile", "\u2323");
- builder.put("sstarf", "\u22c6");
- builder.put("star", "\u2606");
- builder.put("starf", "\u2605");
- builder.put("straightepsilon", "\u03f5");
- builder.put("straightphi", "\u03d5");
- builder.put("strns", "\u00af");
- builder.put("sub", "\u2282");
- builder.put("subE", "\u2ac5");
- builder.put("subdot", "\u2abd");
- builder.put("sube", "\u2286");
- builder.put("subedot", "\u2ac3");
- builder.put("submult", "\u2ac1");
- builder.put("subnE", "\u2acb");
- builder.put("subne", "\u228a");
- builder.put("subplus", "\u2abf");
- builder.put("subrarr", "\u2979");
- builder.put("subset", "\u2282");
- builder.put("subseteq", "\u2286");
- builder.put("subseteqq", "\u2ac5");
- builder.put("subsetneq", "\u228a");
- builder.put("subsetneqq", "\u2acb");
- builder.put("subsim", "\u2ac7");
- builder.put("subsub", "\u2ad5");
- builder.put("subsup", "\u2ad3");
- builder.put("succ", "\u227b");
- builder.put("succapprox", "\u2ab8");
- builder.put("succcurlyeq", "\u227d");
- builder.put("succeq", "\u2ab0");
- builder.put("succnapprox", "\u2aba");
- builder.put("succneqq", "\u2ab6");
- builder.put("succnsim", "\u22e9");
- builder.put("succsim", "\u227f");
- builder.put("sum", "\u2211");
- builder.put("sung", "\u266a");
- builder.put("sup1", "\u00b9");
- builder.put("sup2", "\u00b2");
- builder.put("sup3", "\u00b3");
- builder.put("sup", "\u2283");
- builder.put("supE", "\u2ac6");
- builder.put("supdot", "\u2abe");
- builder.put("supdsub", "\u2ad8");
- builder.put("supe", "\u2287");
- builder.put("supedot", "\u2ac4");
- builder.put("suphsol", "\u27c9");
- builder.put("suphsub", "\u2ad7");
- builder.put("suplarr", "\u297b");
- builder.put("supmult", "\u2ac2");
- builder.put("supnE", "\u2acc");
- builder.put("supne", "\u228b");
- builder.put("supplus", "\u2ac0");
- builder.put("supset", "\u2283");
- builder.put("supseteq", "\u2287");
- builder.put("supseteqq", "\u2ac6");
- builder.put("supsetneq", "\u228b");
- builder.put("supsetneqq", "\u2acc");
- builder.put("supsim", "\u2ac8");
- builder.put("supsub", "\u2ad4");
- builder.put("supsup", "\u2ad6");
- builder.put("swArr", "\u21d9");
- builder.put("swarhk", "\u2926");
- builder.put("swarr", "\u2199");
- builder.put("swarrow", "\u2199");
- builder.put("swnwar", "\u292a");
- builder.put("szlig", "\u00df");
- builder.put("target", "\u2316");
- builder.put("tau", "\u03c4");
- builder.put("tbrk", "\u23b4");
- builder.put("tcaron", "\u0165");
- builder.put("tcedil", "\u0163");
- builder.put("tcy", "\u0442");
- builder.put("tdot", "\u20db");
- builder.put("telrec", "\u2315");
- builder.put("tfr", "\ud835\udd31");
- builder.put("there4", "\u2234");
- builder.put("therefore", "\u2234");
- builder.put("theta", "\u03b8");
- builder.put("thetasym", "\u03d1");
- builder.put("thetav", "\u03d1");
- builder.put("thickapprox", "\u2248");
- builder.put("thicksim", "\u223c");
- builder.put("thinsp", "\u2009");
- builder.put("thkap", "\u2248");
- builder.put("thksim", "\u223c");
- builder.put("thorn", "\u00fe");
- builder.put("tilde", "\u02dc");
- builder.put("times", "\u00d7");
- builder.put("timesb", "\u22a0");
- builder.put("timesbar", "\u2a31");
- builder.put("timesd", "\u2a30");
- builder.put("tint", "\u222d");
- builder.put("toea", "\u2928");
- builder.put("top", "\u22a4");
- builder.put("topbot", "\u2336");
- builder.put("topcir", "\u2af1");
- builder.put("topf", "\ud835\udd65");
- builder.put("topfork", "\u2ada");
- builder.put("tosa", "\u2929");
- builder.put("tprime", "\u2034");
- builder.put("trade", "\u2122");
- builder.put("triangle", "\u25b5");
- builder.put("triangledown", "\u25bf");
- builder.put("triangleleft", "\u25c3");
- builder.put("trianglelefteq", "\u22b4");
- builder.put("triangleq", "\u225c");
- builder.put("triangleright", "\u25b9");
- builder.put("trianglerighteq", "\u22b5");
- builder.put("tridot", "\u25ec");
- builder.put("trie", "\u225c");
- builder.put("triminus", "\u2a3a");
- builder.put("triplus", "\u2a39");
- builder.put("trisb", "\u29cd");
- builder.put("tritime", "\u2a3b");
- builder.put("trpezium", "\u23e2");
- builder.put("tscr", "\ud835\udcc9");
- builder.put("tscy", "\u0446");
- builder.put("tshcy", "\u045b");
- builder.put("tstrok", "\u0167");
- builder.put("twixt", "\u226c");
- builder.put("twoheadleftarrow", "\u219e");
- builder.put("twoheadrightarrow", "\u21a0");
- builder.put("uArr", "\u21d1");
- builder.put("uHar", "\u2963");
- builder.put("uacute", "\u00fa");
- builder.put("uarr", "\u2191");
- builder.put("ubrcy", "\u045e");
- builder.put("ubreve", "\u016d");
- builder.put("ucirc", "\u00fb");
- builder.put("ucy", "\u0443");
- builder.put("udarr", "\u21c5");
- builder.put("udblac", "\u0171");
- builder.put("udhar", "\u296e");
- builder.put("ufisht", "\u297e");
- builder.put("ufr", "\ud835\udd32");
- builder.put("ugrave", "\u00f9");
- builder.put("uharl", "\u21bf");
- builder.put("uharr", "\u21be");
- builder.put("uhblk", "\u2580");
- builder.put("ulcorn", "\u231c");
- builder.put("ulcorner", "\u231c");
- builder.put("ulcrop", "\u230f");
- builder.put("ultri", "\u25f8");
- builder.put("umacr", "\u016b");
- builder.put("uml", "\u00a8");
- builder.put("uogon", "\u0173");
- builder.put("uopf", "\ud835\udd66");
- builder.put("uparrow", "\u2191");
- builder.put("updownarrow", "\u2195");
- builder.put("upharpoonleft", "\u21bf");
- builder.put("upharpoonright", "\u21be");
- builder.put("uplus", "\u228e");
- builder.put("upsi", "\u03c5");
- builder.put("upsih", "\u03d2");
- builder.put("upsilon", "\u03c5");
- builder.put("upuparrows", "\u21c8");
- builder.put("urcorn", "\u231d");
- builder.put("urcorner", "\u231d");
- builder.put("urcrop", "\u230e");
- builder.put("uring", "\u016f");
- builder.put("urtri", "\u25f9");
- builder.put("uscr", "\ud835\udcca");
- builder.put("utdot", "\u22f0");
- builder.put("utilde", "\u0169");
- builder.put("utri", "\u25b5");
- builder.put("utrif", "\u25b4");
- builder.put("uuarr", "\u21c8");
- builder.put("uuml", "\u00fc");
- builder.put("uwangle", "\u29a7");
- builder.put("vArr", "\u21d5");
- builder.put("vBar", "\u2ae8");
- builder.put("vBarv", "\u2ae9");
- builder.put("vDash", "\u22a8");
- builder.put("vangrt", "\u299c");
- builder.put("varepsilon", "\u03f5");
- builder.put("varkappa", "\u03f0");
- builder.put("varnothing", "\u2205");
- builder.put("varphi", "\u03d5");
- builder.put("varpi", "\u03d6");
- builder.put("varpropto", "\u221d");
- builder.put("varr", "\u2195");
- builder.put("varrho", "\u03f1");
- builder.put("varsigma", "\u03c2");
- builder.put("varsubsetneq", "\u228a\ufe00");
- builder.put("varsubsetneqq", "\u2acb\ufe00");
- builder.put("varsupsetneq", "\u228b\ufe00");
- builder.put("varsupsetneqq", "\u2acc\ufe00");
- builder.put("vartheta", "\u03d1");
- builder.put("vartriangleleft", "\u22b2");
- builder.put("vartriangleright", "\u22b3");
- builder.put("vcy", "\u0432");
- builder.put("vdash", "\u22a2");
- builder.put("vee", "\u2228");
- builder.put("veebar", "\u22bb");
- builder.put("veeeq", "\u225a");
- builder.put("vellip", "\u22ee");
- builder.put("verbar", "\u007c");
- builder.put("vert", "\u007c");
- builder.put("vfr", "\ud835\udd33");
- builder.put("vltri", "\u22b2");
- builder.put("vnsub", "\u2282\u20d2");
- builder.put("vnsup", "\u2283\u20d2");
- builder.put("vopf", "\ud835\udd67");
- builder.put("vprop", "\u221d");
- builder.put("vrtri", "\u22b3");
- builder.put("vscr", "\ud835\udccb");
- builder.put("vsubnE", "\u2acb\ufe00");
- builder.put("vsubne", "\u228a\ufe00");
- builder.put("vsupnE", "\u2acc\ufe00");
- builder.put("vsupne", "\u228b\ufe00");
- builder.put("vzigzag", "\u299a");
- builder.put("wcirc", "\u0175");
- builder.put("wedbar", "\u2a5f");
- builder.put("wedge", "\u2227");
- builder.put("wedgeq", "\u2259");
- builder.put("weierp", "\u2118");
- builder.put("wfr", "\ud835\udd34");
- builder.put("wopf", "\ud835\udd68");
- builder.put("wp", "\u2118");
- builder.put("wr", "\u2240");
- builder.put("wreath", "\u2240");
- builder.put("wscr", "\ud835\udccc");
- builder.put("xcap", "\u22c2");
- builder.put("xcirc", "\u25ef");
- builder.put("xcup", "\u22c3");
- builder.put("xdtri", "\u25bd");
- builder.put("xfr", "\ud835\udd35");
- builder.put("xhArr", "\u27fa");
- builder.put("xharr", "\u27f7");
- builder.put("xi", "\u03be");
- builder.put("xlArr", "\u27f8");
- builder.put("xlarr", "\u27f5");
- builder.put("xmap", "\u27fc");
- builder.put("xnis", "\u22fb");
- builder.put("xodot", "\u2a00");
- builder.put("xopf", "\ud835\udd69");
- builder.put("xoplus", "\u2a01");
- builder.put("xotime", "\u2a02");
- builder.put("xrArr", "\u27f9");
- builder.put("xrarr", "\u27f6");
- builder.put("xscr", "\ud835\udccd");
- builder.put("xsqcup", "\u2a06");
- builder.put("xuplus", "\u2a04");
- builder.put("xutri", "\u25b3");
- builder.put("xvee", "\u22c1");
- builder.put("xwedge", "\u22c0");
- builder.put("yacute", "\u00fd");
- builder.put("yacy", "\u044f");
- builder.put("ycirc", "\u0177");
- builder.put("ycy", "\u044b");
- builder.put("yen", "\u00a5");
- builder.put("yfr", "\ud835\udd36");
- builder.put("yicy", "\u0457");
- builder.put("yopf", "\ud835\udd6a");
- builder.put("yscr", "\ud835\udcce");
- builder.put("yucy", "\u044e");
- builder.put("yuml", "\u00ff");
- builder.put("zacute", "\u017a");
- builder.put("zcaron", "\u017e");
- builder.put("zcy", "\u0437");
- builder.put("zdot", "\u017c");
- builder.put("zeetrf", "\u2128");
- builder.put("zeta", "\u03b6");
- builder.put("zfr", "\ud835\udd37");
- builder.put("zhcy", "\u0436");
- builder.put("zigrarr", "\u21dd");
- builder.put("zopf", "\ud835\udd6b");
- builder.put("zscr", "\ud835\udccf");
- builder.put("zwj", "\u200d");
- builder.put("zwnj", "\u200c");
-
- final Map entityNameToCodePointMap = builder.build();
+ final ImmutableMap.Builder builder = ImmutableMap.builder();
int longestEntityName = 0;
- for (String entityName : entityNameToCodePointMap.keySet()) {
+ for (int i = 0, n = pairs.length; i < n; i += 2) {
+ String entityName = pairs[i];
+ String encodedText = pairs[i + 1];
+ builder.put(entityName, encodedText);
if (entityName.length() > longestEntityName) {
longestEntityName = entityName.length();
}
}
+ final Map entityNameToCodePointMap = builder.build();
+
ENTITY_TRIE = new Trie(entityNameToCodePointMap);
LONGEST_ENTITY_NAME = longestEntityName;
}
@@ -2205,67 +2316,42 @@ public static int appendDecodedEntity(
return offset + 1;
}
- int entityLimit = Math.min(limit, offset + LONGEST_ENTITY_NAME + 2); // + 2 for & and ; characters
- int end = -1;
- int tail = -1;
- if (entityLimit == limit) {
- // Assume a broken entity that ends at the end until shown otherwise.
- end = tail = entityLimit;
- }
- entityloop:
- for (int i = offset + 1; i < entityLimit; ++i) {
- switch (html.charAt(i)) {
- case ';': // An unbroken entity.
- end = i;
- tail = end + 1;
- break entityloop;
- case '#':
- 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 '0': case '1': case '2': case '3': case '4': case '5':
- case '6': case '7': case '8': case '9':
- break;
- case '=':
- // An equal sign after an entity missing a closing semicolon should
- // never have the semicolon inserted since that causes trouble with
- // parameters in partially encoded URLs.
- sb.append('&');
- return offset + 1;
- default: // A possible broken entity.
- end = i;
- tail = i;
- break entityloop;
- }
- }
- if (end < 0 || offset + 2 >= end) {
+ if (offset + 2 >= limit) {
sb.append('&');
return offset + 1;
}
+ // Cap limit to limit the amount of time spent processing inputs like
+ // &a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a
+ limit = Math.min(limit, offset + (1 + LONGEST_ENTITY_NAME));
+
// Now we know where the entity ends, and that there is at least one
// character in the entity name
char ch1 = html.charAt(offset + 1);
char ch2 = html.charAt(offset + 2);
int codepoint = -1;
+ int tail = limit;
if ('#' == ch1) {
// numeric entity
if ('x' == ch2 || 'X' == ch2) {
- if (end == offset + 3) { // No digits
+ if (limit == offset + 3) { // No digits
sb.append('&');
return offset + 1;
}
codepoint = 0;
// hex literal
digloop:
- for (int i = offset + 3; i < end; ++i) {
+ for (int i = offset + 3; i < limit; ++i) {
char digit = html.charAt(i);
+ if (!isHtmlIdContinueChar(digit)) {
+ if (i == offset + 3) {
+ codepoint = -1;
+ }
+ if (digit == ';') {
+ i += 1;
+ }
+ tail = i;
+ break;
+ }
switch (digit & 0xfff8) {
case 0x30: case 0x38: // ASCII 48-57 are '0'-'9'
int decDig = digit & 0xf;
@@ -2298,8 +2384,18 @@ public static int appendDecodedEntity(
codepoint = 0;
// decimal literal
digloop:
- for (int i = offset + 2; i < end; ++i) {
+ for (int i = offset + 2; i < limit; ++i) {
char digit = html.charAt(i);
+ if (!isHtmlIdContinueChar(digit)) {
+ if (i == offset + 2) {
+ codepoint = -1;
+ }
+ if (digit == ';') {
+ i += 1;
+ }
+ tail = i;
+ break;
+ }
switch (digit & 0xfff8) {
case 0x30: case 0x38: // ASCII 48-57 are '0'-'9'
int decDig = digit - '0';
@@ -2320,23 +2416,32 @@ public static int appendDecodedEntity(
}
}
} else {
+ Trie longestDecode = null;
Trie t = ENTITY_TRIE;
- for (int i = offset + 1; i < end; ++i) {
+ for (int i = offset + 1; i < limit; ++i) {
char nameChar = html.charAt(i);
t = t.lookup(nameChar);
if (t == null) { break; }
+ if (t.isTerminal()) {
+ longestDecode = t;
+ tail = i + 1;
+ }
}
- if (t == null) {
+ if (longestDecode == null) {
t = ENTITY_TRIE;
- for (int i = offset + 1; i < end; ++i) {
+ for (int i = offset + 1; i < limit; ++i) {
char nameChar = html.charAt(i);
if ('Z' >= nameChar && nameChar >= 'A') { nameChar |= 32; }
t = t.lookup(nameChar);
if (t == null) { break; }
+ if (t.isTerminal()) {
+ longestDecode = t;
+ tail = i + 1;
+ }
}
}
- if (t != null && t.isTerminal()) {
- sb.append(t.getValue());
+ if (longestDecode != null) {
+ sb.append(longestDecode.getValue());
return tail;
}
}
@@ -2349,6 +2454,13 @@ public static int appendDecodedEntity(
}
}
+ private static boolean isHtmlIdContinueChar(char ch) {
+ int chLower = ch | 32;
+ return ('0' <= chLower && chLower <= '9')
+ || ('a' <= chLower && chLower <= 'z')
+ || ('-' == ch);
+ }
+
// /** A possible entity name like "amp" or "gt". */
// public static boolean isEntityName(String name) {
// Trie t = ENTITY_TRIE;
diff --git a/src/test/java/org/owasp/html/EncodingTest.java b/src/test/java/org/owasp/html/EncodingTest.java
index e1287080..eea7769a 100644
--- a/src/test/java/org/owasp/html/EncodingTest.java
+++ b/src/test/java/org/owasp/html/EncodingTest.java
@@ -197,9 +197,8 @@ public static final void testDecodeHtml() {
assertEquals(
"\u2233", // HTML entity with the longest name.
Encoding.decodeHtml("∳"));
- assertEquals(
- // Longest entity name with missing terminator to check for boundary bugs.
- "\u2233",
+ assertEquals( // Missing the semicolon.
+ "&CounterClockwiseContourIntegral",
Encoding.decodeHtml("&CounterClockwiseContourIntegral"));
assertEquals(