1package html
   2
   3type traits uint16
   4
   5const (
   6	normalTag      traits = 1 << iota
   7	rawTag                // raw tags need special processing for their content
   8	nonPhrasingTag        // non-phrasing elements are unaffected by whitespace, remove spaces around these tags
   9	objectTag             // content tags with a few exclusions, keep spaces after these open/close tags
  10	omitPTag              // omit p end tag if it is followed by this start tag
  11	keepPTag              // keep p end tag if it is followed by this end tag
  12)
  13
  14const (
  15	booleanAttr traits = 1 << iota
  16	caselessAttr
  17	urlAttr
  18	trimAttr
  19)
  20
  21var tagMap = map[Hash]traits{
  22	A:          keepPTag,
  23	Abbr:       normalTag,
  24	Address:    nonPhrasingTag | omitPTag,
  25	Area:       normalTag,
  26	Article:    nonPhrasingTag | omitPTag,
  27	Aside:      nonPhrasingTag | omitPTag,
  28	Audio:      keepPTag,
  29	B:          normalTag,
  30	Base:       normalTag,
  31	Bb:         normalTag,
  32	Bdi:        normalTag,
  33	Bdo:        normalTag,
  34	Blockquote: nonPhrasingTag | omitPTag,
  35	Body:       nonPhrasingTag,
  36	Br:         nonPhrasingTag,
  37	Button:     objectTag,
  38	Canvas:     objectTag | keepPTag,
  39	Caption:    nonPhrasingTag,
  40	Cite:       normalTag,
  41	Code:       normalTag,
  42	Col:        nonPhrasingTag,
  43	Colgroup:   nonPhrasingTag,
  44	Data:       normalTag,
  45	Datalist:   normalTag,
  46	Dd:         nonPhrasingTag,
  47	Del:        keepPTag,
  48	Details:    omitPTag,
  49	Dfn:        normalTag,
  50	Dialog:     normalTag,
  51	Div:        nonPhrasingTag | omitPTag,
  52	Dl:         nonPhrasingTag | omitPTag,
  53	Dt:         nonPhrasingTag,
  54	Em:         normalTag,
  55	Embed:      nonPhrasingTag,
  56	Fieldset:   nonPhrasingTag | omitPTag,
  57	Figcaption: nonPhrasingTag | omitPTag,
  58	Figure:     nonPhrasingTag | omitPTag,
  59	Footer:     nonPhrasingTag | omitPTag,
  60	Form:       nonPhrasingTag | omitPTag,
  61	H1:         nonPhrasingTag | omitPTag,
  62	H2:         nonPhrasingTag | omitPTag,
  63	H3:         nonPhrasingTag | omitPTag,
  64	H4:         nonPhrasingTag | omitPTag,
  65	H5:         nonPhrasingTag | omitPTag,
  66	H6:         nonPhrasingTag | omitPTag,
  67	Head:       nonPhrasingTag,
  68	Header:     nonPhrasingTag | omitPTag,
  69	Hgroup:     nonPhrasingTag,
  70	Hr:         nonPhrasingTag | omitPTag,
  71	Html:       nonPhrasingTag,
  72	I:          normalTag,
  73	Iframe:     rawTag | objectTag,
  74	Img:        objectTag,
  75	Input:      objectTag,
  76	Ins:        keepPTag,
  77	Kbd:        normalTag,
  78	Label:      normalTag,
  79	Legend:     normalTag,
  80	Li:         nonPhrasingTag,
  81	Link:       normalTag,
  82	Main:       nonPhrasingTag | omitPTag,
  83	Map:        keepPTag,
  84	Mark:       normalTag,
  85	Math:       rawTag,
  86	Menu:       omitPTag,
  87	Meta:       nonPhrasingTag,
  88	Meter:      objectTag,
  89	Nav:        nonPhrasingTag | omitPTag,
  90	Noscript:   nonPhrasingTag | keepPTag,
  91	Object:     objectTag,
  92	Ol:         nonPhrasingTag | omitPTag,
  93	Optgroup:   normalTag,
  94	Option:     normalTag,
  95	Output:     nonPhrasingTag,
  96	P:          nonPhrasingTag | omitPTag,
  97	Param:      normalTag,
  98	Picture:    normalTag,
  99	Pre:        nonPhrasingTag | omitPTag,
 100	Progress:   objectTag,
 101	Q:          objectTag,
 102	Rp:         normalTag,
 103	Rt:         normalTag,
 104	Ruby:       normalTag,
 105	S:          normalTag,
 106	Samp:       normalTag,
 107	Script:     rawTag,
 108	Section:    nonPhrasingTag | omitPTag,
 109	Select:     objectTag,
 110	Slot:       normalTag,
 111	Small:      normalTag,
 112	Source:     normalTag,
 113	Span:       normalTag,
 114	Strong:     normalTag,
 115	Style:      rawTag | nonPhrasingTag,
 116	Sub:        normalTag,
 117	Summary:    normalTag,
 118	Sup:        normalTag,
 119	Svg:        rawTag | objectTag,
 120	Table:      nonPhrasingTag | omitPTag,
 121	Tbody:      nonPhrasingTag,
 122	Td:         nonPhrasingTag,
 123	Template:   normalTag,
 124	Textarea:   rawTag | objectTag,
 125	Tfoot:      nonPhrasingTag,
 126	Th:         nonPhrasingTag,
 127	Thead:      nonPhrasingTag,
 128	Time:       normalTag,
 129	Title:      nonPhrasingTag,
 130	Tr:         nonPhrasingTag,
 131	Track:      normalTag,
 132	U:          normalTag,
 133	Ul:         nonPhrasingTag | omitPTag,
 134	Var:        normalTag,
 135	Video:      objectTag | keepPTag,
 136	Wbr:        normalTag,
 137}
 138
 139var attrMap = map[Hash]traits{
 140	Accept:          trimAttr,
 141	Accept_Charset:  caselessAttr,
 142	Action:          urlAttr,
 143	Align:           caselessAttr,
 144	Alink:           caselessAttr,
 145	Allowfullscreen: booleanAttr,
 146	Async:           booleanAttr,
 147	Autofocus:       booleanAttr,
 148	Autoplay:        booleanAttr,
 149	Axis:            caselessAttr,
 150	Background:      urlAttr,
 151	Bgcolor:         caselessAttr,
 152	Charset:         caselessAttr,
 153	Checked:         booleanAttr,
 154	Cite:            urlAttr,
 155	Class:           trimAttr,
 156	Classid:         urlAttr,
 157	Clear:           caselessAttr,
 158	Codebase:        urlAttr,
 159	Codetype:        trimAttr,
 160	Color:           caselessAttr,
 161	Cols:            trimAttr,
 162	Colspan:         trimAttr,
 163	Compact:         booleanAttr,
 164	Controls:        booleanAttr,
 165	Data:            urlAttr,
 166	Declare:         booleanAttr,
 167	Default:         booleanAttr,
 168	DefaultChecked:  booleanAttr,
 169	DefaultMuted:    booleanAttr,
 170	DefaultSelected: booleanAttr,
 171	Defer:           booleanAttr,
 172	Dir:             caselessAttr,
 173	Disabled:        booleanAttr,
 174	Enabled:         booleanAttr,
 175	Enctype:         trimAttr,
 176	Face:            caselessAttr,
 177	Formaction:      urlAttr,
 178	Formnovalidate:  booleanAttr,
 179	Frame:           caselessAttr,
 180	Hidden:          booleanAttr,
 181	Href:            urlAttr,
 182	Hreflang:        caselessAttr,
 183	Http_Equiv:      caselessAttr,
 184	Icon:            urlAttr,
 185	Inert:           booleanAttr,
 186	Ismap:           booleanAttr,
 187	Itemscope:       booleanAttr,
 188	Lang:            trimAttr,
 189	Language:        caselessAttr,
 190	Link:            caselessAttr,
 191	Longdesc:        urlAttr,
 192	Manifest:        urlAttr,
 193	Maxlength:       trimAttr,
 194	Media:           caselessAttr | trimAttr,
 195	Method:          caselessAttr,
 196	Multiple:        booleanAttr,
 197	Muted:           booleanAttr,
 198	Nohref:          booleanAttr,
 199	Noresize:        booleanAttr,
 200	Noshade:         booleanAttr,
 201	Novalidate:      booleanAttr,
 202	Nowrap:          booleanAttr,
 203	Open:            booleanAttr,
 204	Pauseonexit:     booleanAttr,
 205	Poster:          urlAttr,
 206	Profile:         urlAttr,
 207	Readonly:        booleanAttr,
 208	Rel:             caselessAttr | trimAttr,
 209	Required:        booleanAttr,
 210	Rev:             caselessAttr,
 211	Reversed:        booleanAttr,
 212	Rows:            trimAttr,
 213	Rowspan:         trimAttr,
 214	Rules:           caselessAttr,
 215	Scope:           caselessAttr,
 216	Scoped:          booleanAttr,
 217	Scrolling:       caselessAttr,
 218	Seamless:        booleanAttr,
 219	Selected:        booleanAttr,
 220	Shape:           caselessAttr,
 221	Size:            trimAttr,
 222	Sortable:        booleanAttr,
 223	Span:            trimAttr,
 224	Src:             urlAttr,
 225	Srcset:          trimAttr,
 226	Tabindex:        trimAttr,
 227	Target:          caselessAttr,
 228	Text:            caselessAttr,
 229	Translate:       caselessAttr,
 230	Truespeed:       booleanAttr,
 231	Type:            trimAttr,
 232	Typemustmatch:   booleanAttr,
 233	Undeterminate:   booleanAttr,
 234	Usemap:          urlAttr,
 235	Valign:          caselessAttr,
 236	Valuetype:       caselessAttr,
 237	Vlink:           caselessAttr,
 238	Visible:         booleanAttr,
 239	Xmlns:           urlAttr,
 240}
 241
 242var jsMimetypes = map[string]bool{
 243	"text/javascript":        true,
 244	"application/javascript": true,
 245}
 246
 247// EntitiesMap are all named character entities.
 248var EntitiesMap = map[string][]byte{
 249	"AElig":                           []byte("&#198;"),
 250	"AMP":                             []byte("&"),
 251	"Aacute":                          []byte("&#193;"),
 252	"Abreve":                          []byte("&#258;"),
 253	"Acirc":                           []byte("&#194;"),
 254	"Agrave":                          []byte("&#192;"),
 255	"Alpha":                           []byte("&#913;"),
 256	"Amacr":                           []byte("&#256;"),
 257	"Aogon":                           []byte("&#260;"),
 258	"ApplyFunction":                   []byte("&af;"),
 259	"Aring":                           []byte("&#197;"),
 260	"Assign":                          []byte("&#8788;"),
 261	"Atilde":                          []byte("&#195;"),
 262	"Backslash":                       []byte("&#8726;"),
 263	"Barwed":                          []byte("&#8966;"),
 264	"Because":                         []byte("&#8757;"),
 265	"Bernoullis":                      []byte("&Bscr;"),
 266	"Breve":                           []byte("&#728;"),
 267	"Bumpeq":                          []byte("&bump;"),
 268	"Cacute":                          []byte("&#262;"),
 269	"CapitalDifferentialD":            []byte("&DD;"),
 270	"Cayleys":                         []byte("&Cfr;"),
 271	"Ccaron":                          []byte("&#268;"),
 272	"Ccedil":                          []byte("&#199;"),
 273	"Ccirc":                           []byte("&#264;"),
 274	"Cconint":                         []byte("&#8752;"),
 275	"Cedilla":                         []byte("&#184;"),
 276	"CenterDot":                       []byte("&#183;"),
 277	"CircleDot":                       []byte("&odot;"),
 278	"CircleMinus":                     []byte("&#8854;"),
 279	"CirclePlus":                      []byte("&#8853;"),
 280	"CircleTimes":                     []byte("&#8855;"),
 281	"ClockwiseContourIntegral":        []byte("&#8754;"),
 282	"CloseCurlyDoubleQuote":           []byte("&#8221;"),
 283	"CloseCurlyQuote":                 []byte("&#8217;"),
 284	"Congruent":                       []byte("&#8801;"),
 285	"Conint":                          []byte("&#8751;"),
 286	"ContourIntegral":                 []byte("&oint;"),
 287	"Coproduct":                       []byte("&#8720;"),
 288	"CounterClockwiseContourIntegral": []byte("&#8755;"),
 289	"CupCap":                          []byte("&#8781;"),
 290	"DDotrahd":                        []byte("&#10513;"),
 291	"Dagger":                          []byte("&#8225;"),
 292	"Dcaron":                          []byte("&#270;"),
 293	"Delta":                           []byte("&#916;"),
 294	"DiacriticalAcute":                []byte("&#180;"),
 295	"DiacriticalDot":                  []byte("&dot;"),
 296	"DiacriticalDoubleAcute":          []byte("&#733;"),
 297	"DiacriticalGrave":                []byte("`"),
 298	"DiacriticalTilde":                []byte("&#732;"),
 299	"Diamond":                         []byte("&diam;"),
 300	"DifferentialD":                   []byte("&dd;"),
 301	"DotDot":                          []byte("&#8412;"),
 302	"DotEqual":                        []byte("&#8784;"),
 303	"DoubleContourIntegral":           []byte("&#8751;"),
 304	"DoubleDot":                       []byte("&Dot;"),
 305	"DoubleDownArrow":                 []byte("&dArr;"),
 306	"DoubleLeftArrow":                 []byte("&lArr;"),
 307	"DoubleLeftRightArrow":            []byte("&iff;"),
 308	"DoubleLeftTee":                   []byte("&Dashv;"),
 309	"DoubleLongLeftArrow":             []byte("&xlArr;"),
 310	"DoubleLongLeftRightArrow":        []byte("&xhArr;"),
 311	"DoubleLongRightArrow":            []byte("&xrArr;"),
 312	"DoubleRightArrow":                []byte("&rArr;"),
 313	"DoubleRightTee":                  []byte("&#8872;"),
 314	"DoubleUpArrow":                   []byte("&uArr;"),
 315	"DoubleUpDownArrow":               []byte("&vArr;"),
 316	"DoubleVerticalBar":               []byte("&par;"),
 317	"DownArrow":                       []byte("&darr;"),
 318	"DownArrowBar":                    []byte("&#10515;"),
 319	"DownArrowUpArrow":                []byte("&#8693;"),
 320	"DownBreve":                       []byte("&#785;"),
 321	"DownLeftRightVector":             []byte("&#10576;"),
 322	"DownLeftTeeVector":               []byte("&#10590;"),
 323	"DownLeftVector":                  []byte("&#8637;"),
 324	"DownLeftVectorBar":               []byte("&#10582;"),
 325	"DownRightTeeVector":              []byte("&#10591;"),
 326	"DownRightVector":                 []byte("&#8641;"),
 327	"DownRightVectorBar":              []byte("&#10583;"),
 328	"DownTee":                         []byte("&top;"),
 329	"DownTeeArrow":                    []byte("&#8615;"),
 330	"Downarrow":                       []byte("&dArr;"),
 331	"Dstrok":                          []byte("&#272;"),
 332	"Eacute":                          []byte("&#201;"),
 333	"Ecaron":                          []byte("&#282;"),
 334	"Ecirc":                           []byte("&#202;"),
 335	"Egrave":                          []byte("&#200;"),
 336	"Element":                         []byte("&in;"),
 337	"Emacr":                           []byte("&#274;"),
 338	"EmptySmallSquare":                []byte("&#9723;"),
 339	"EmptyVerySmallSquare":            []byte("&#9643;"),
 340	"Eogon":                           []byte("&#280;"),
 341	"Epsilon":                         []byte("&#917;"),
 342	"EqualTilde":                      []byte("&esim;"),
 343	"Equilibrium":                     []byte("&#8652;"),
 344	"Exists":                          []byte("&#8707;"),
 345	"ExponentialE":                    []byte("&ee;"),
 346	"FilledSmallSquare":               []byte("&#9724;"),
 347	"FilledVerySmallSquare":           []byte("&squf;"),
 348	"ForAll":                          []byte("&#8704;"),
 349	"Fouriertrf":                      []byte("&Fscr;"),
 350	"GT":                              []byte(">"),
 351	"Gamma":                           []byte("&#915;"),
 352	"Gammad":                          []byte("&#988;"),
 353	"Gbreve":                          []byte("&#286;"),
 354	"Gcedil":                          []byte("&#290;"),
 355	"Gcirc":                           []byte("&#284;"),
 356	"GreaterEqual":                    []byte("&ge;"),
 357	"GreaterEqualLess":                []byte("&gel;"),
 358	"GreaterFullEqual":                []byte("&gE;"),
 359	"GreaterGreater":                  []byte("&#10914;"),
 360	"GreaterLess":                     []byte("&gl;"),
 361	"GreaterSlantEqual":               []byte("&ges;"),
 362	"GreaterTilde":                    []byte("&gsim;"),
 363	"HARDcy":                          []byte("&#1066;"),
 364	"Hacek":                           []byte("&#711;"),
 365	"Hat":                             []byte("^"),
 366	"Hcirc":                           []byte("&#292;"),
 367	"HilbertSpace":                    []byte("&Hscr;"),
 368	"HorizontalLine":                  []byte("&boxh;"),
 369	"Hstrok":                          []byte("&#294;"),
 370	"HumpDownHump":                    []byte("&bump;"),
 371	"HumpEqual":                       []byte("&#8783;"),
 372	"IJlig":                           []byte("&#306;"),
 373	"Iacute":                          []byte("&#205;"),
 374	"Icirc":                           []byte("&#206;"),
 375	"Ifr":                             []byte("&Im;"),
 376	"Igrave":                          []byte("&#204;"),
 377	"Imacr":                           []byte("&#298;"),
 378	"ImaginaryI":                      []byte("&ii;"),
 379	"Implies":                         []byte("&rArr;"),
 380	"Integral":                        []byte("&int;"),
 381	"Intersection":                    []byte("&xcap;"),
 382	"InvisibleComma":                  []byte("&ic;"),
 383	"InvisibleTimes":                  []byte("&it;"),
 384	"Iogon":                           []byte("&#302;"),
 385	"Itilde":                          []byte("&#296;"),
 386	"Jcirc":                           []byte("&#308;"),
 387	"Jsercy":                          []byte("&#1032;"),
 388	"Kappa":                           []byte("&#922;"),
 389	"Kcedil":                          []byte("&#310;"),
 390	"LT":                              []byte("<"),
 391	"Lacute":                          []byte("&#313;"),
 392	"Lambda":                          []byte("&#923;"),
 393	"Laplacetrf":                      []byte("&Lscr;"),
 394	"Lcaron":                          []byte("&#317;"),
 395	"Lcedil":                          []byte("&#315;"),
 396	"LeftAngleBracket":                []byte("&lang;"),
 397	"LeftArrow":                       []byte("&larr;"),
 398	"LeftArrowBar":                    []byte("&#8676;"),
 399	"LeftArrowRightArrow":             []byte("&#8646;"),
 400	"LeftCeiling":                     []byte("&#8968;"),
 401	"LeftDoubleBracket":               []byte("&lobrk;"),
 402	"LeftDownTeeVector":               []byte("&#10593;"),
 403	"LeftDownVector":                  []byte("&#8643;"),
 404	"LeftDownVectorBar":               []byte("&#10585;"),
 405	"LeftFloor":                       []byte("&#8970;"),
 406	"LeftRightArrow":                  []byte("&harr;"),
 407	"LeftRightVector":                 []byte("&#10574;"),
 408	"LeftTee":                         []byte("&#8867;"),
 409	"LeftTeeArrow":                    []byte("&#8612;"),
 410	"LeftTeeVector":                   []byte("&#10586;"),
 411	"LeftTriangle":                    []byte("&#8882;"),
 412	"LeftTriangleBar":                 []byte("&#10703;"),
 413	"LeftTriangleEqual":               []byte("&#8884;"),
 414	"LeftUpDownVector":                []byte("&#10577;"),
 415	"LeftUpTeeVector":                 []byte("&#10592;"),
 416	"LeftUpVector":                    []byte("&#8639;"),
 417	"LeftUpVectorBar":                 []byte("&#10584;"),
 418	"LeftVector":                      []byte("&#8636;"),
 419	"LeftVectorBar":                   []byte("&#10578;"),
 420	"Leftarrow":                       []byte("&lArr;"),
 421	"Leftrightarrow":                  []byte("&iff;"),
 422	"LessEqualGreater":                []byte("&leg;"),
 423	"LessFullEqual":                   []byte("&lE;"),
 424	"LessGreater":                     []byte("&lg;"),
 425	"LessLess":                        []byte("&#10913;"),
 426	"LessSlantEqual":                  []byte("&les;"),
 427	"LessTilde":                       []byte("&lsim;"),
 428	"Lleftarrow":                      []byte("&#8666;"),
 429	"Lmidot":                          []byte("&#319;"),
 430	"LongLeftArrow":                   []byte("&xlarr;"),
 431	"LongLeftRightArrow":              []byte("&xharr;"),
 432	"LongRightArrow":                  []byte("&xrarr;"),
 433	"Longleftarrow":                   []byte("&xlArr;"),
 434	"Longleftrightarrow":              []byte("&xhArr;"),
 435	"Longrightarrow":                  []byte("&xrArr;"),
 436	"LowerLeftArrow":                  []byte("&#8601;"),
 437	"LowerRightArrow":                 []byte("&#8600;"),
 438	"Lstrok":                          []byte("&#321;"),
 439	"MediumSpace":                     []byte("&#8287;"),
 440	"Mellintrf":                       []byte("&Mscr;"),
 441	"MinusPlus":                       []byte("&mp;"),
 442	"Nacute":                          []byte("&#323;"),
 443	"Ncaron":                          []byte("&#327;"),
 444	"Ncedil":                          []byte("&#325;"),
 445	"NegativeMediumSpace":             []byte("&#8203;"),
 446	"NegativeThickSpace":              []byte("&#8203;"),
 447	"NegativeThinSpace":               []byte("&#8203;"),
 448	"NegativeVeryThinSpace":           []byte("&#8203;"),
 449	"NestedGreaterGreater":            []byte("&Gt;"),
 450	"NestedLessLess":                  []byte("&Lt;"),
 451	"NewLine":                         []byte("\n"),
 452	"NoBreak":                         []byte("&#8288;"),
 453	"NonBreakingSpace":                []byte("&#160;"),
 454	"NotCongruent":                    []byte("&#8802;"),
 455	"NotCupCap":                       []byte("&#8813;"),
 456	"NotDoubleVerticalBar":            []byte("&npar;"),
 457	"NotElement":                      []byte("&#8713;"),
 458	"NotEqual":                        []byte("&ne;"),
 459	"NotExists":                       []byte("&#8708;"),
 460	"NotGreater":                      []byte("&ngt;"),
 461	"NotGreaterEqual":                 []byte("&nge;"),
 462	"NotGreaterLess":                  []byte("&ntgl;"),
 463	"NotGreaterTilde":                 []byte("&#8821;"),
 464	"NotLeftTriangle":                 []byte("&#8938;"),
 465	"NotLeftTriangleEqual":            []byte("&#8940;"),
 466	"NotLess":                         []byte("&nlt;"),
 467	"NotLessEqual":                    []byte("&nle;"),
 468	"NotLessGreater":                  []byte("&ntlg;"),
 469	"NotLessTilde":                    []byte("&#8820;"),
 470	"NotPrecedes":                     []byte("&npr;"),
 471	"NotPrecedesSlantEqual":           []byte("&#8928;"),
 472	"NotReverseElement":               []byte("&#8716;"),
 473	"NotRightTriangle":                []byte("&#8939;"),
 474	"NotRightTriangleEqual":           []byte("&#8941;"),
 475	"NotSquareSubsetEqual":            []byte("&#8930;"),
 476	"NotSquareSupersetEqual":          []byte("&#8931;"),
 477	"NotSubsetEqual":                  []byte("&#8840;"),
 478	"NotSucceeds":                     []byte("&nsc;"),
 479	"NotSucceedsSlantEqual":           []byte("&#8929;"),
 480	"NotSupersetEqual":                []byte("&#8841;"),
 481	"NotTilde":                        []byte("&nsim;"),
 482	"NotTildeEqual":                   []byte("&#8772;"),
 483	"NotTildeFullEqual":               []byte("&#8775;"),
 484	"NotTildeTilde":                   []byte("&nap;"),
 485	"NotVerticalBar":                  []byte("&nmid;"),
 486	"Ntilde":                          []byte("&#209;"),
 487	"OElig":                           []byte("&#338;"),
 488	"Oacute":                          []byte("&#211;"),
 489	"Ocirc":                           []byte("&#212;"),
 490	"Odblac":                          []byte("&#336;"),
 491	"Ograve":                          []byte("&#210;"),
 492	"Omacr":                           []byte("&#332;"),
 493	"Omega":                           []byte("&ohm;"),
 494	"Omicron":                         []byte("&#927;"),
 495	"OpenCurlyDoubleQuote":            []byte("&#8220;"),
 496	"OpenCurlyQuote":                  []byte("&#8216;"),
 497	"Oslash":                          []byte("&#216;"),
 498	"Otilde":                          []byte("&#213;"),
 499	"OverBar":                         []byte("&#8254;"),
 500	"OverBrace":                       []byte("&#9182;"),
 501	"OverBracket":                     []byte("&tbrk;"),
 502	"OverParenthesis":                 []byte("&#9180;"),
 503	"PartialD":                        []byte("&part;"),
 504	"PlusMinus":                       []byte("&pm;"),
 505	"Poincareplane":                   []byte("&Hfr;"),
 506	"Precedes":                        []byte("&pr;"),
 507	"PrecedesEqual":                   []byte("&pre;"),
 508	"PrecedesSlantEqual":              []byte("&#8828;"),
 509	"PrecedesTilde":                   []byte("&#8830;"),
 510	"Product":                         []byte("&prod;"),
 511	"Proportion":                      []byte("&#8759;"),
 512	"Proportional":                    []byte("&prop;"),
 513	"QUOT":                            []byte("\""),
 514	"Racute":                          []byte("&#340;"),
 515	"Rcaron":                          []byte("&#344;"),
 516	"Rcedil":                          []byte("&#342;"),
 517	"ReverseElement":                  []byte("&ni;"),
 518	"ReverseEquilibrium":              []byte("&#8651;"),
 519	"ReverseUpEquilibrium":            []byte("&duhar;"),
 520	"Rfr":                             []byte("&Re;"),
 521	"RightAngleBracket":               []byte("&rang;"),
 522	"RightArrow":                      []byte("&rarr;"),
 523	"RightArrowBar":                   []byte("&#8677;"),
 524	"RightArrowLeftArrow":             []byte("&#8644;"),
 525	"RightCeiling":                    []byte("&#8969;"),
 526	"RightDoubleBracket":              []byte("&robrk;"),
 527	"RightDownTeeVector":              []byte("&#10589;"),
 528	"RightDownVector":                 []byte("&#8642;"),
 529	"RightDownVectorBar":              []byte("&#10581;"),
 530	"RightFloor":                      []byte("&#8971;"),
 531	"RightTee":                        []byte("&#8866;"),
 532	"RightTeeArrow":                   []byte("&map;"),
 533	"RightTeeVector":                  []byte("&#10587;"),
 534	"RightTriangle":                   []byte("&#8883;"),
 535	"RightTriangleBar":                []byte("&#10704;"),
 536	"RightTriangleEqual":              []byte("&#8885;"),
 537	"RightUpDownVector":               []byte("&#10575;"),
 538	"RightUpTeeVector":                []byte("&#10588;"),
 539	"RightUpVector":                   []byte("&#8638;"),
 540	"RightUpVectorBar":                []byte("&#10580;"),
 541	"RightVector":                     []byte("&#8640;"),
 542	"RightVectorBar":                  []byte("&#10579;"),
 543	"Rightarrow":                      []byte("&rArr;"),
 544	"RoundImplies":                    []byte("&#10608;"),
 545	"Rrightarrow":                     []byte("&#8667;"),
 546	"RuleDelayed":                     []byte("&#10740;"),
 547	"SHCHcy":                          []byte("&#1065;"),
 548	"SOFTcy":                          []byte("&#1068;"),
 549	"Sacute":                          []byte("&#346;"),
 550	"Scaron":                          []byte("&#352;"),
 551	"Scedil":                          []byte("&#350;"),
 552	"Scirc":                           []byte("&#348;"),
 553	"ShortDownArrow":                  []byte("&darr;"),
 554	"ShortLeftArrow":                  []byte("&larr;"),
 555	"ShortRightArrow":                 []byte("&rarr;"),
 556	"ShortUpArrow":                    []byte("&uarr;"),
 557	"Sigma":                           []byte("&#931;"),
 558	"SmallCircle":                     []byte("&#8728;"),
 559	"Square":                          []byte("&squ;"),
 560	"SquareIntersection":              []byte("&#8851;"),
 561	"SquareSubset":                    []byte("&#8847;"),
 562	"SquareSubsetEqual":               []byte("&#8849;"),
 563	"SquareSuperset":                  []byte("&#8848;"),
 564	"SquareSupersetEqual":             []byte("&#8850;"),
 565	"SquareUnion":                     []byte("&#8852;"),
 566	"Subset":                          []byte("&Sub;"),
 567	"SubsetEqual":                     []byte("&sube;"),
 568	"Succeeds":                        []byte("&sc;"),
 569	"SucceedsEqual":                   []byte("&sce;"),
 570	"SucceedsSlantEqual":              []byte("&#8829;"),
 571	"SucceedsTilde":                   []byte("&#8831;"),
 572	"SuchThat":                        []byte("&ni;"),
 573	"Superset":                        []byte("&sup;"),
 574	"SupersetEqual":                   []byte("&supe;"),
 575	"Supset":                          []byte("&Sup;"),
 576	"THORN":                           []byte("&#222;"),
 577	"Tab":                             []byte("	"),
 578	"Tcaron":                          []byte("&#356;"),
 579	"Tcedil":                          []byte("&#354;"),
 580	"Therefore":                       []byte("&#8756;"),
 581	"Theta":                           []byte("&#920;"),
 582	"ThinSpace":                       []byte("&#8201;"),
 583	"Tilde":                           []byte("&sim;"),
 584	"TildeEqual":                      []byte("&sime;"),
 585	"TildeFullEqual":                  []byte("&cong;"),
 586	"TildeTilde":                      []byte("&ap;"),
 587	"TripleDot":                       []byte("&tdot;"),
 588	"Tstrok":                          []byte("&#358;"),
 589	"Uacute":                          []byte("&#218;"),
 590	"Uarrocir":                        []byte("&#10569;"),
 591	"Ubreve":                          []byte("&#364;"),
 592	"Ucirc":                           []byte("&#219;"),
 593	"Udblac":                          []byte("&#368;"),
 594	"Ugrave":                          []byte("&#217;"),
 595	"Umacr":                           []byte("&#362;"),
 596	"UnderBar":                        []byte("_"),
 597	"UnderBrace":                      []byte("&#9183;"),
 598	"UnderBracket":                    []byte("&bbrk;"),
 599	"UnderParenthesis":                []byte("&#9181;"),
 600	"Union":                           []byte("&xcup;"),
 601	"UnionPlus":                       []byte("&#8846;"),
 602	"Uogon":                           []byte("&#370;"),
 603	"UpArrow":                         []byte("&uarr;"),
 604	"UpArrowBar":                      []byte("&#10514;"),
 605	"UpArrowDownArrow":                []byte("&#8645;"),
 606	"UpDownArrow":                     []byte("&varr;"),
 607	"UpEquilibrium":                   []byte("&udhar;"),
 608	"UpTee":                           []byte("&bot;"),
 609	"UpTeeArrow":                      []byte("&#8613;"),
 610	"Uparrow":                         []byte("&uArr;"),
 611	"Updownarrow":                     []byte("&vArr;"),
 612	"UpperLeftArrow":                  []byte("&#8598;"),
 613	"UpperRightArrow":                 []byte("&#8599;"),
 614	"Upsilon":                         []byte("&#933;"),
 615	"Uring":                           []byte("&#366;"),
 616	"Utilde":                          []byte("&#360;"),
 617	"Verbar":                          []byte("&Vert;"),
 618	"VerticalBar":                     []byte("&mid;"),
 619	"VerticalLine":                    []byte("|"),
 620	"VerticalSeparator":               []byte("&#10072;"),
 621	"VerticalTilde":                   []byte("&wr;"),
 622	"VeryThinSpace":                   []byte("&#8202;"),
 623	"Vvdash":                          []byte("&#8874;"),
 624	"Wcirc":                           []byte("&#372;"),
 625	"Yacute":                          []byte("&#221;"),
 626	"Ycirc":                           []byte("&#374;"),
 627	"Zacute":                          []byte("&#377;"),
 628	"Zcaron":                          []byte("&#381;"),
 629	"ZeroWidthSpace":                  []byte("&#8203;"),
 630	"aacute":                          []byte("&#225;"),
 631	"abreve":                          []byte("&#259;"),
 632	"acirc":                           []byte("&#226;"),
 633	"acute":                           []byte("&#180;"),
 634	"aelig":                           []byte("&#230;"),
 635	"agrave":                          []byte("&#224;"),
 636	"alefsym":                         []byte("&#8501;"),
 637	"alpha":                           []byte("&#945;"),
 638	"amacr":                           []byte("&#257;"),
 639	"amp":                             []byte("&"),
 640	"andslope":                        []byte("&#10840;"),
 641	"angle":                           []byte("&ang;"),
 642	"angmsd":                          []byte("&#8737;"),
 643	"angmsdaa":                        []byte("&#10664;"),
 644	"angmsdab":                        []byte("&#10665;"),
 645	"angmsdac":                        []byte("&#10666;"),
 646	"angmsdad":                        []byte("&#10667;"),
 647	"angmsdae":                        []byte("&#10668;"),
 648	"angmsdaf":                        []byte("&#10669;"),
 649	"angmsdag":                        []byte("&#10670;"),
 650	"angmsdah":                        []byte("&#10671;"),
 651	"angrtvb":                         []byte("&#8894;"),
 652	"angrtvbd":                        []byte("&#10653;"),
 653	"angsph":                          []byte("&#8738;"),
 654	"angst":                           []byte("&#197;"),
 655	"angzarr":                         []byte("&#9084;"),
 656	"aogon":                           []byte("&#261;"),
 657	"apos":                            []byte("'"),
 658	"approx":                          []byte("&ap;"),
 659	"approxeq":                        []byte("&ape;"),
 660	"aring":                           []byte("&#229;"),
 661	"ast":                             []byte("*"),
 662	"asymp":                           []byte("&ap;"),
 663	"asympeq":                         []byte("&#8781;"),
 664	"atilde":                          []byte("&#227;"),
 665	"awconint":                        []byte("&#8755;"),
 666	"backcong":                        []byte("&#8780;"),
 667	"backepsilon":                     []byte("&#1014;"),
 668	"backprime":                       []byte("&#8245;"),
 669	"backsim":                         []byte("&bsim;"),
 670	"backsimeq":                       []byte("&#8909;"),
 671	"barvee":                          []byte("&#8893;"),
 672	"barwed":                          []byte("&#8965;"),
 673	"barwedge":                        []byte("&#8965;"),
 674	"bbrktbrk":                        []byte("&#9142;"),
 675	"becaus":                          []byte("&#8757;"),
 676	"because":                         []byte("&#8757;"),
 677	"bemptyv":                         []byte("&#10672;"),
 678	"bernou":                          []byte("&Bscr;"),
 679	"between":                         []byte("&#8812;"),
 680	"bigcap":                          []byte("&xcap;"),
 681	"bigcirc":                         []byte("&#9711;"),
 682	"bigcup":                          []byte("&xcup;"),
 683	"bigodot":                         []byte("&xodot;"),
 684	"bigoplus":                        []byte("&#10753;"),
 685	"bigotimes":                       []byte("&#10754;"),
 686	"bigsqcup":                        []byte("&#10758;"),
 687	"bigstar":                         []byte("&#9733;"),
 688	"bigtriangledown":                 []byte("&#9661;"),
 689	"bigtriangleup":                   []byte("&#9651;"),
 690	"biguplus":                        []byte("&#10756;"),
 691	"bigvee":                          []byte("&Vee;"),
 692	"bigwedge":                        []byte("&#8896;"),
 693	"bkarow":                          []byte("&rbarr;"),
 694	"blacklozenge":                    []byte("&lozf;"),
 695	"blacksquare":                     []byte("&squf;"),
 696	"blacktriangle":                   []byte("&#9652;"),
 697	"blacktriangledown":               []byte("&#9662;"),
 698	"blacktriangleleft":               []byte("&#9666;"),
 699	"blacktriangleright":              []byte("&#9656;"),
 700	"bottom":                          []byte("&bot;"),
 701	"bowtie":                          []byte("&#8904;"),
 702	"boxminus":                        []byte("&#8863;"),
 703	"boxplus":                         []byte("&#8862;"),
 704	"boxtimes":                        []byte("&#8864;"),
 705	"bprime":                          []byte("&#8245;"),
 706	"breve":                           []byte("&#728;"),
 707	"brvbar":                          []byte("&#166;"),
 708	"bsol":                            []byte("\\"),
 709	"bsolhsub":                        []byte("&#10184;"),
 710	"bullet":                          []byte("&bull;"),
 711	"bumpeq":                          []byte("&#8783;"),
 712	"cacute":                          []byte("&#263;"),
 713	"capbrcup":                        []byte("&#10825;"),
 714	"caron":                           []byte("&#711;"),
 715	"ccaron":                          []byte("&#269;"),
 716	"ccedil":                          []byte("&#231;"),
 717	"ccirc":                           []byte("&#265;"),
 718	"ccupssm":                         []byte("&#10832;"),
 719	"cedil":                           []byte("&#184;"),
 720	"cemptyv":                         []byte("&#10674;"),
 721	"centerdot":                       []byte("&#183;"),
 722	"checkmark":                       []byte("&check;"),
 723	"circeq":                          []byte("&cire;"),
 724	"circlearrowleft":                 []byte("&#8634;"),
 725	"circlearrowright":                []byte("&#8635;"),
 726	"circledR":                        []byte("&REG;"),
 727	"circledS":                        []byte("&oS;"),
 728	"circledast":                      []byte("&oast;"),
 729	"circledcirc":                     []byte("&ocir;"),
 730	"circleddash":                     []byte("&#8861;"),
 731	"cirfnint":                        []byte("&#10768;"),
 732	"cirscir":                         []byte("&#10690;"),
 733	"clubsuit":                        []byte("&#9827;"),
 734	"colon":                           []byte(":"),
 735	"colone":                          []byte("&#8788;"),
 736	"coloneq":                         []byte("&#8788;"),
 737	"comma":                           []byte(","),
 738	"commat":                          []byte("@"),
 739	"compfn":                          []byte("&#8728;"),
 740	"complement":                      []byte("&comp;"),
 741	"complexes":                       []byte("&Copf;"),
 742	"congdot":                         []byte("&#10861;"),
 743	"conint":                          []byte("&oint;"),
 744	"coprod":                          []byte("&#8720;"),
 745	"copysr":                          []byte("&#8471;"),
 746	"cudarrl":                         []byte("&#10552;"),
 747	"cudarrr":                         []byte("&#10549;"),
 748	"cularr":                          []byte("&#8630;"),
 749	"cularrp":                         []byte("&#10557;"),
 750	"cupbrcap":                        []byte("&#10824;"),
 751	"cupdot":                          []byte("&#8845;"),
 752	"curarr":                          []byte("&#8631;"),
 753	"curarrm":                         []byte("&#10556;"),
 754	"curlyeqprec":                     []byte("&#8926;"),
 755	"curlyeqsucc":                     []byte("&#8927;"),
 756	"curlyvee":                        []byte("&#8910;"),
 757	"curlywedge":                      []byte("&#8911;"),
 758	"curren":                          []byte("&#164;"),
 759	"curvearrowleft":                  []byte("&#8630;"),
 760	"curvearrowright":                 []byte("&#8631;"),
 761	"cwconint":                        []byte("&#8754;"),
 762	"cylcty":                          []byte("&#9005;"),
 763	"dagger":                          []byte("&#8224;"),
 764	"daleth":                          []byte("&#8504;"),
 765	"dbkarow":                         []byte("&rBarr;"),
 766	"dblac":                           []byte("&#733;"),
 767	"dcaron":                          []byte("&#271;"),
 768	"ddagger":                         []byte("&#8225;"),
 769	"ddotseq":                         []byte("&eDDot;"),
 770	"delta":                           []byte("&#948;"),
 771	"demptyv":                         []byte("&#10673;"),
 772	"diamond":                         []byte("&diam;"),
 773	"diamondsuit":                     []byte("&#9830;"),
 774	"digamma":                         []byte("&#989;"),
 775	"divide":                          []byte("&div;"),
 776	"divideontimes":                   []byte("&#8903;"),
 777	"divonx":                          []byte("&#8903;"),
 778	"dlcorn":                          []byte("&#8990;"),
 779	"dlcrop":                          []byte("&#8973;"),
 780	"dollar":                          []byte("$"),
 781	"doteqdot":                        []byte("&eDot;"),
 782	"dotminus":                        []byte("&#8760;"),
 783	"dotplus":                         []byte("&#8724;"),
 784	"dotsquare":                       []byte("&#8865;"),
 785	"doublebarwedge":                  []byte("&#8966;"),
 786	"downarrow":                       []byte("&darr;"),
 787	"downdownarrows":                  []byte("&#8650;"),
 788	"downharpoonleft":                 []byte("&#8643;"),
 789	"downharpoonright":                []byte("&#8642;"),
 790	"drbkarow":                        []byte("&RBarr;"),
 791	"drcorn":                          []byte("&#8991;"),
 792	"drcrop":                          []byte("&#8972;"),
 793	"dstrok":                          []byte("&#273;"),
 794	"dwangle":                         []byte("&#10662;"),
 795	"dzigrarr":                        []byte("&#10239;"),
 796	"eacute":                          []byte("&#233;"),
 797	"ecaron":                          []byte("&#283;"),
 798	"ecirc":                           []byte("&#234;"),
 799	"ecolon":                          []byte("&#8789;"),
 800	"egrave":                          []byte("&#232;"),
 801	"elinters":                        []byte("&#9191;"),
 802	"emacr":                           []byte("&#275;"),
 803	"emptyset":                        []byte("&#8709;"),
 804	"emptyv":                          []byte("&#8709;"),
 805	"emsp13":                          []byte("&#8196;"),
 806	"emsp14":                          []byte("&#8197;"),
 807	"eogon":                           []byte("&#281;"),
 808	"epsilon":                         []byte("&#949;"),
 809	"eqcirc":                          []byte("&ecir;"),
 810	"eqcolon":                         []byte("&#8789;"),
 811	"eqsim":                           []byte("&esim;"),
 812	"eqslantgtr":                      []byte("&egs;"),
 813	"eqslantless":                     []byte("&els;"),
 814	"equals":                          []byte("="),
 815	"equest":                          []byte("&#8799;"),
 816	"equivDD":                         []byte("&#10872;"),
 817	"eqvparsl":                        []byte("&#10725;"),
 818	"excl":                            []byte("!"),
 819	"expectation":                     []byte("&Escr;"),
 820	"exponentiale":                    []byte("&ee;"),
 821	"fallingdotseq":                   []byte("&#8786;"),
 822	"female":                          []byte("&#9792;"),
 823	"forall":                          []byte("&#8704;"),
 824	"fpartint":                        []byte("&#10765;"),
 825	"frac12":                          []byte("&#189;"),
 826	"frac13":                          []byte("&#8531;"),
 827	"frac14":                          []byte("&#188;"),
 828	"frac15":                          []byte("&#8533;"),
 829	"frac16":                          []byte("&#8537;"),
 830	"frac18":                          []byte("&#8539;"),
 831	"frac23":                          []byte("&#8532;"),
 832	"frac25":                          []byte("&#8534;"),
 833	"frac34":                          []byte("&#190;"),
 834	"frac35":                          []byte("&#8535;"),
 835	"frac38":                          []byte("&#8540;"),
 836	"frac45":                          []byte("&#8536;"),
 837	"frac56":                          []byte("&#8538;"),
 838	"frac58":                          []byte("&#8541;"),
 839	"frac78":                          []byte("&#8542;"),
 840	"gacute":                          []byte("&#501;"),
 841	"gamma":                           []byte("&#947;"),
 842	"gammad":                          []byte("&#989;"),
 843	"gbreve":                          []byte("&#287;"),
 844	"gcirc":                           []byte("&#285;"),
 845	"geq":                             []byte("&ge;"),
 846	"geqq":                            []byte("&gE;"),
 847	"geqslant":                        []byte("&ges;"),
 848	"gesdoto":                         []byte("&#10882;"),
 849	"gesdotol":                        []byte("&#10884;"),
 850	"ggg":                             []byte("&Gg;"),
 851	"gnapprox":                        []byte("&gnap;"),
 852	"gneq":                            []byte("&gne;"),
 853	"gneqq":                           []byte("&gnE;"),
 854	"grave":                           []byte("`"),
 855	"gt":                              []byte(">"),
 856	"gtquest":                         []byte("&#10876;"),
 857	"gtrapprox":                       []byte("&gap;"),
 858	"gtrdot":                          []byte("&#8919;"),
 859	"gtreqless":                       []byte("&gel;"),
 860	"gtreqqless":                      []byte("&gEl;"),
 861	"gtrless":                         []byte("&gl;"),
 862	"gtrsim":                          []byte("&gsim;"),
 863	"hArr":                            []byte("&iff;"),
 864	"hairsp":                          []byte("&#8202;"),
 865	"hamilt":                          []byte("&Hscr;"),
 866	"hardcy":                          []byte("&#1098;"),
 867	"harrcir":                         []byte("&#10568;"),
 868	"hcirc":                           []byte("&#293;"),
 869	"hearts":                          []byte("&#9829;"),
 870	"heartsuit":                       []byte("&#9829;"),
 871	"hellip":                          []byte("&mldr;"),
 872	"hercon":                          []byte("&#8889;"),
 873	"hksearow":                        []byte("&#10533;"),
 874	"hkswarow":                        []byte("&#10534;"),
 875	"homtht":                          []byte("&#8763;"),
 876	"hookleftarrow":                   []byte("&#8617;"),
 877	"hookrightarrow":                  []byte("&#8618;"),
 878	"horbar":                          []byte("&#8213;"),
 879	"hslash":                          []byte("&hbar;"),
 880	"hstrok":                          []byte("&#295;"),
 881	"hybull":                          []byte("&#8259;"),
 882	"hyphen":                          []byte("&dash;"),
 883	"iacute":                          []byte("&#237;"),
 884	"icirc":                           []byte("&#238;"),
 885	"iexcl":                           []byte("&#161;"),
 886	"igrave":                          []byte("&#236;"),
 887	"iiiint":                          []byte("&qint;"),
 888	"iiint":                           []byte("&tint;"),
 889	"ijlig":                           []byte("&#307;"),
 890	"imacr":                           []byte("&#299;"),
 891	"image":                           []byte("&Im;"),
 892	"imagline":                        []byte("&Iscr;"),
 893	"imagpart":                        []byte("&Im;"),
 894	"imath":                           []byte("&#305;"),
 895	"imped":                           []byte("&#437;"),
 896	"incare":                          []byte("&#8453;"),
 897	"infintie":                        []byte("&#10717;"),
 898	"inodot":                          []byte("&#305;"),
 899	"intcal":                          []byte("&#8890;"),
 900	"integers":                        []byte("&Zopf;"),
 901	"intercal":                        []byte("&#8890;"),
 902	"intlarhk":                        []byte("&#10775;"),
 903	"intprod":                         []byte("&iprod;"),
 904	"iogon":                           []byte("&#303;"),
 905	"iquest":                          []byte("&#191;"),
 906	"isin":                            []byte("&in;"),
 907	"isindot":                         []byte("&#8949;"),
 908	"isinsv":                          []byte("&#8947;"),
 909	"isinv":                           []byte("&in;"),
 910	"itilde":                          []byte("&#297;"),
 911	"jcirc":                           []byte("&#309;"),
 912	"jmath":                           []byte("&#567;"),
 913	"jsercy":                          []byte("&#1112;"),
 914	"kappa":                           []byte("&#954;"),
 915	"kappav":                          []byte("&#1008;"),
 916	"kcedil":                          []byte("&#311;"),
 917	"kgreen":                          []byte("&#312;"),
 918	"lacute":                          []byte("&#314;"),
 919	"laemptyv":                        []byte("&#10676;"),
 920	"lagran":                          []byte("&Lscr;"),
 921	"lambda":                          []byte("&#955;"),
 922	"langle":                          []byte("&lang;"),
 923	"laquo":                           []byte("&#171;"),
 924	"larrbfs":                         []byte("&#10527;"),
 925	"larrhk":                          []byte("&#8617;"),
 926	"larrlp":                          []byte("&#8619;"),
 927	"larrsim":                         []byte("&#10611;"),
 928	"larrtl":                          []byte("&#8610;"),
 929	"lbrace":                          []byte("{"),
 930	"lbrack":                          []byte("["),
 931	"lbrksld":                         []byte("&#10639;"),
 932	"lbrkslu":                         []byte("&#10637;"),
 933	"lcaron":                          []byte("&#318;"),
 934	"lcedil":                          []byte("&#316;"),
 935	"lcub":                            []byte("{"),
 936	"ldquor":                          []byte("&#8222;"),
 937	"ldrdhar":                         []byte("&#10599;"),
 938	"ldrushar":                        []byte("&#10571;"),
 939	"leftarrow":                       []byte("&larr;"),
 940	"leftarrowtail":                   []byte("&#8610;"),
 941	"leftharpoondown":                 []byte("&#8637;"),
 942	"leftharpoonup":                   []byte("&#8636;"),
 943	"leftleftarrows":                  []byte("&#8647;"),
 944	"leftrightarrow":                  []byte("&harr;"),
 945	"leftrightarrows":                 []byte("&#8646;"),
 946	"leftrightharpoons":               []byte("&#8651;"),
 947	"leftrightsquigarrow":             []byte("&#8621;"),
 948	"leftthreetimes":                  []byte("&#8907;"),
 949	"leq":                             []byte("&le;"),
 950	"leqq":                            []byte("&lE;"),
 951	"leqslant":                        []byte("&les;"),
 952	"lesdoto":                         []byte("&#10881;"),
 953	"lesdotor":                        []byte("&#10883;"),
 954	"lessapprox":                      []byte("&lap;"),
 955	"lessdot":                         []byte("&#8918;"),
 956	"lesseqgtr":                       []byte("&leg;"),
 957	"lesseqqgtr":                      []byte("&lEg;"),
 958	"lessgtr":                         []byte("&lg;"),
 959	"lesssim":                         []byte("&lsim;"),
 960	"lfloor":                          []byte("&#8970;"),
 961	"llcorner":                        []byte("&#8990;"),
 962	"lmidot":                          []byte("&#320;"),
 963	"lmoust":                          []byte("&#9136;"),
 964	"lmoustache":                      []byte("&#9136;"),
 965	"lnapprox":                        []byte("&lnap;"),
 966	"lneq":                            []byte("&lne;"),
 967	"lneqq":                           []byte("&lnE;"),
 968	"longleftarrow":                   []byte("&xlarr;"),
 969	"longleftrightarrow":              []byte("&xharr;"),
 970	"longmapsto":                      []byte("&xmap;"),
 971	"longrightarrow":                  []byte("&xrarr;"),
 972	"looparrowleft":                   []byte("&#8619;"),
 973	"looparrowright":                  []byte("&#8620;"),
 974	"lotimes":                         []byte("&#10804;"),
 975	"lowast":                          []byte("&#8727;"),
 976	"lowbar":                          []byte("_"),
 977	"lozenge":                         []byte("&loz;"),
 978	"lpar":                            []byte("("),
 979	"lrcorner":                        []byte("&#8991;"),
 980	"lsaquo":                          []byte("&#8249;"),
 981	"lsqb":                            []byte("["),
 982	"lsquor":                          []byte("&#8218;"),
 983	"lstrok":                          []byte("&#322;"),
 984	"lt":                              []byte("<"),
 985	"lthree":                          []byte("&#8907;"),
 986	"ltimes":                          []byte("&#8905;"),
 987	"ltquest":                         []byte("&#10875;"),
 988	"lurdshar":                        []byte("&#10570;"),
 989	"luruhar":                         []byte("&#10598;"),
 990	"maltese":                         []byte("&malt;"),
 991	"mapsto":                          []byte("&map;"),
 992	"mapstodown":                      []byte("&#8615;"),
 993	"mapstoleft":                      []byte("&#8612;"),
 994	"mapstoup":                        []byte("&#8613;"),
 995	"marker":                          []byte("&#9646;"),
 996	"measuredangle":                   []byte("&#8737;"),
 997	"micro":                           []byte("&#181;"),
 998	"midast":                          []byte("*"),
 999	"middot":                          []byte("&#183;"),
1000	"minusb":                          []byte("&#8863;"),
1001	"minusd":                          []byte("&#8760;"),
1002	"minusdu":                         []byte("&#10794;"),
1003	"mnplus":                          []byte("&mp;"),
1004	"models":                          []byte("&#8871;"),
1005	"mstpos":                          []byte("&ac;"),
1006	"multimap":                        []byte("&#8888;"),
1007	"nLeftarrow":                      []byte("&#8653;"),
1008	"nLeftrightarrow":                 []byte("&#8654;"),
1009	"nRightarrow":                     []byte("&#8655;"),
1010	"nVDash":                          []byte("&#8879;"),
1011	"nVdash":                          []byte("&#8878;"),
1012	"nabla":                           []byte("&Del;"),
1013	"nacute":                          []byte("&#324;"),
1014	"napos":                           []byte("&#329;"),
1015	"napprox":                         []byte("&nap;"),
1016	"natural":                         []byte("&#9838;"),
1017	"naturals":                        []byte("&Nopf;"),
1018	"ncaron":                          []byte("&#328;"),
1019	"ncedil":                          []byte("&#326;"),
1020	"nearrow":                         []byte("&#8599;"),
1021	"nequiv":                          []byte("&#8802;"),
1022	"nesear":                          []byte("&toea;"),
1023	"nexist":                          []byte("&#8708;"),
1024	"nexists":                         []byte("&#8708;"),
1025	"ngeq":                            []byte("&nge;"),
1026	"ngtr":                            []byte("&ngt;"),
1027	"niv":                             []byte("&ni;"),
1028	"nleftarrow":                      []byte("&#8602;"),
1029	"nleftrightarrow":                 []byte("&#8622;"),
1030	"nleq":                            []byte("&nle;"),
1031	"nless":                           []byte("&nlt;"),
1032	"nltrie":                          []byte("&#8940;"),
1033	"notinva":                         []byte("&#8713;"),
1034	"notinvb":                         []byte("&#8951;"),
1035	"notinvc":                         []byte("&#8950;"),
1036	"notniva":                         []byte("&#8716;"),
1037	"notnivb":                         []byte("&#8958;"),
1038	"notnivc":                         []byte("&#8957;"),
1039	"nparallel":                       []byte("&npar;"),
1040	"npolint":                         []byte("&#10772;"),
1041	"nprcue":                          []byte("&#8928;"),
1042	"nprec":                           []byte("&npr;"),
1043	"nrightarrow":                     []byte("&#8603;"),
1044	"nrtrie":                          []byte("&#8941;"),
1045	"nsccue":                          []byte("&#8929;"),
1046	"nshortmid":                       []byte("&nmid;"),
1047	"nshortparallel":                  []byte("&npar;"),
1048	"nsimeq":                          []byte("&#8772;"),
1049	"nsmid":                           []byte("&nmid;"),
1050	"nspar":                           []byte("&npar;"),
1051	"nsqsube":                         []byte("&#8930;"),
1052	"nsqsupe":                         []byte("&#8931;"),
1053	"nsubseteq":                       []byte("&#8840;"),
1054	"nsucc":                           []byte("&nsc;"),
1055	"nsupseteq":                       []byte("&#8841;"),
1056	"ntilde":                          []byte("&#241;"),
1057	"ntriangleleft":                   []byte("&#8938;"),
1058	"ntrianglelefteq":                 []byte("&#8940;"),
1059	"ntriangleright":                  []byte("&#8939;"),
1060	"ntrianglerighteq":                []byte("&#8941;"),
1061	"num":                             []byte("#"),
1062	"numero":                          []byte("&#8470;"),
1063	"nvDash":                          []byte("&#8877;"),
1064	"nvdash":                          []byte("&#8876;"),
1065	"nvinfin":                         []byte("&#10718;"),
1066	"nwarrow":                         []byte("&#8598;"),
1067	"oacute":                          []byte("&#243;"),
1068	"ocirc":                           []byte("&#244;"),
1069	"odblac":                          []byte("&#337;"),
1070	"oelig":                           []byte("&#339;"),
1071	"ograve":                          []byte("&#242;"),
1072	"olcross":                         []byte("&#10683;"),
1073	"omacr":                           []byte("&#333;"),
1074	"omega":                           []byte("&#969;"),
1075	"omicron":                         []byte("&#959;"),
1076	"ominus":                          []byte("&#8854;"),
1077	"order":                           []byte("&oscr;"),
1078	"orderof":                         []byte("&oscr;"),
1079	"origof":                          []byte("&#8886;"),
1080	"orslope":                         []byte("&#10839;"),
1081	"oslash":                          []byte("&#248;"),
1082	"otilde":                          []byte("&#245;"),
1083	"otimes":                          []byte("&#8855;"),
1084	"otimesas":                        []byte("&#10806;"),
1085	"parallel":                        []byte("&par;"),
1086	"percnt":                          []byte("%"),
1087	"period":                          []byte("."),
1088	"permil":                          []byte("&#8240;"),
1089	"perp":                            []byte("&bot;"),
1090	"pertenk":                         []byte("&#8241;"),
1091	"phmmat":                          []byte("&Mscr;"),
1092	"pitchfork":                       []byte("&fork;"),
1093	"planck":                          []byte("&hbar;"),
1094	"planckh":                         []byte("&#8462;"),
1095	"plankv":                          []byte("&hbar;"),
1096	"plus":                            []byte("+"),
1097	"plusacir":                        []byte("&#10787;"),
1098	"pluscir":                         []byte("&#10786;"),
1099	"plusdo":                          []byte("&#8724;"),
1100	"plusmn":                          []byte("&pm;"),
1101	"plussim":                         []byte("&#10790;"),
1102	"plustwo":                         []byte("&#10791;"),
1103	"pointint":                        []byte("&#10773;"),
1104	"pound":                           []byte("&#163;"),
1105	"prec":                            []byte("&pr;"),
1106	"precapprox":                      []byte("&prap;"),
1107	"preccurlyeq":                     []byte("&#8828;"),
1108	"preceq":                          []byte("&pre;"),
1109	"precnapprox":                     []byte("&prnap;"),
1110	"precneqq":                        []byte("&prnE;"),
1111	"precnsim":                        []byte("&#8936;"),
1112	"precsim":                         []byte("&#8830;"),
1113	"primes":                          []byte("&Popf;"),
1114	"prnsim":                          []byte("&#8936;"),
1115	"profalar":                        []byte("&#9006;"),
1116	"profline":                        []byte("&#8978;"),
1117	"profsurf":                        []byte("&#8979;"),
1118	"propto":                          []byte("&prop;"),
1119	"prurel":                          []byte("&#8880;"),
1120	"puncsp":                          []byte("&#8200;"),
1121	"qprime":                          []byte("&#8279;"),
1122	"quaternions":                     []byte("&Hopf;"),
1123	"quatint":                         []byte("&#10774;"),
1124	"quest":                           []byte("?"),
1125	"questeq":                         []byte("&#8799;"),
1126	"quot":                            []byte("\""),
1127	"racute":                          []byte("&#341;"),
1128	"radic":                           []byte("&Sqrt;"),
1129	"raemptyv":                        []byte("&#10675;"),
1130	"rangle":                          []byte("&rang;"),
1131	"raquo":                           []byte("&#187;"),
1132	"rarrbfs":                         []byte("&#10528;"),
1133	"rarrhk":                          []byte("&#8618;"),
1134	"rarrlp":                          []byte("&#8620;"),
1135	"rarrsim":                         []byte("&#10612;"),
1136	"rarrtl":                          []byte("&#8611;"),
1137	"rationals":                       []byte("&Qopf;"),
1138	"rbrace":                          []byte("}"),
1139	"rbrack":                          []byte("]"),
1140	"rbrksld":                         []byte("&#10638;"),
1141	"rbrkslu":                         []byte("&#10640;"),
1142	"rcaron":                          []byte("&#345;"),
1143	"rcedil":                          []byte("&#343;"),
1144	"rcub":                            []byte("}"),
1145	"rdldhar":                         []byte("&#10601;"),
1146	"rdquor":                          []byte("&#8221;"),
1147	"real":                            []byte("&Re;"),
1148	"realine":                         []byte("&Rscr;"),
1149	"realpart":                        []byte("&Re;"),
1150	"reals":                           []byte("&Ropf;"),
1151	"rfloor":                          []byte("&#8971;"),
1152	"rightarrow":                      []byte("&rarr;"),
1153	"rightarrowtail":                  []byte("&#8611;"),
1154	"rightharpoondown":                []byte("&#8641;"),
1155	"rightharpoonup":                  []byte("&#8640;"),
1156	"rightleftarrows":                 []byte("&#8644;"),
1157	"rightleftharpoons":               []byte("&#8652;"),
1158	"rightrightarrows":                []byte("&#8649;"),
1159	"rightsquigarrow":                 []byte("&#8605;"),
1160	"rightthreetimes":                 []byte("&#8908;"),
1161	"risingdotseq":                    []byte("&#8787;"),
1162	"rmoust":                          []byte("&#9137;"),
1163	"rmoustache":                      []byte("&#9137;"),
1164	"rotimes":                         []byte("&#10805;"),
1165	"rpar":                            []byte(")"),
1166	"rppolint":                        []byte("&#10770;"),
1167	"rsaquo":                          []byte("&#8250;"),
1168	"rsqb":                            []byte("]"),
1169	"rsquor":                          []byte("&#8217;"),
1170	"rthree":                          []byte("&#8908;"),
1171	"rtimes":                          []byte("&#8906;"),
1172	"rtriltri":                        []byte("&#10702;"),
1173	"ruluhar":                         []byte("&#10600;"),
1174	"sacute":                          []byte("&#347;"),
1175	"scaron":                          []byte("&#353;"),
1176	"scedil":                          []byte("&#351;"),
1177	"scirc":                           []byte("&#349;"),
1178	"scnsim":                          []byte("&#8937;"),
1179	"scpolint":                        []byte("&#10771;"),
1180	"searrow":                         []byte("&#8600;"),
1181	"semi":                            []byte(";"),
1182	"seswar":                          []byte("&tosa;"),
1183	"setminus":                        []byte("&#8726;"),
1184	"sfrown":                          []byte("&#8994;"),
1185	"shchcy":                          []byte("&#1097;"),
1186	"shortmid":                        []byte("&mid;"),
1187	"shortparallel":                   []byte("&par;"),
1188	"sigma":                           []byte("&#963;"),
1189	"sigmaf":                          []byte("&#962;"),
1190	"sigmav":                          []byte("&#962;"),
1191	"simeq":                           []byte("&sime;"),
1192	"simplus":                         []byte("&#10788;"),
1193	"simrarr":                         []byte("&#10610;"),
1194	"slarr":                           []byte("&larr;"),
1195	"smallsetminus":                   []byte("&#8726;"),
1196	"smeparsl":                        []byte("&#10724;"),
1197	"smid":                            []byte("&mid;"),
1198	"softcy":                          []byte("&#1100;"),
1199	"sol":                             []byte("/"),
1200	"solbar":                          []byte("&#9023;"),
1201	"spades":                          []byte("&#9824;"),
1202	"spadesuit":                       []byte("&#9824;"),
1203	"spar":                            []byte("&par;"),
1204	"sqsube":                          []byte("&#8849;"),
1205	"sqsubset":                        []byte("&#8847;"),
1206	"sqsubseteq":                      []byte("&#8849;"),
1207	"sqsupe":                          []byte("&#8850;"),
1208	"sqsupset":                        []byte("&#8848;"),
1209	"sqsupseteq":                      []byte("&#8850;"),
1210	"square":                          []byte("&squ;"),
1211	"squarf":                          []byte("&squf;"),
1212	"srarr":                           []byte("&rarr;"),
1213	"ssetmn":                          []byte("&#8726;"),
1214	"ssmile":                          []byte("&#8995;"),
1215	"sstarf":                          []byte("&Star;"),
1216	"straightepsilon":                 []byte("&#1013;"),
1217	"straightphi":                     []byte("&#981;"),
1218	"strns":                           []byte("&#175;"),
1219	"subedot":                         []byte("&#10947;"),
1220	"submult":                         []byte("&#10945;"),
1221	"subplus":                         []byte("&#10943;"),
1222	"subrarr":                         []byte("&#10617;"),
1223	"subset":                          []byte("&sub;"),
1224	"subseteq":                        []byte("&sube;"),
1225	"subseteqq":                       []byte("&subE;"),
1226	"subsetneq":                       []byte("&#8842;"),
1227	"subsetneqq":                      []byte("&subnE;"),
1228	"succ":                            []byte("&sc;"),
1229	"succapprox":                      []byte("&scap;"),
1230	"succcurlyeq":                     []byte("&#8829;"),
1231	"succeq":                          []byte("&sce;"),
1232	"succnapprox":                     []byte("&scnap;"),
1233	"succneqq":                        []byte("&scnE;"),
1234	"succnsim":                        []byte("&#8937;"),
1235	"succsim":                         []byte("&#8831;"),
1236	"supdsub":                         []byte("&#10968;"),
1237	"supedot":                         []byte("&#10948;"),
1238	"suphsol":                         []byte("&#10185;"),
1239	"suphsub":                         []byte("&#10967;"),
1240	"suplarr":                         []byte("&#10619;"),
1241	"supmult":                         []byte("&#10946;"),
1242	"supplus":                         []byte("&#10944;"),
1243	"supset":                          []byte("&sup;"),
1244	"supseteq":                        []byte("&supe;"),
1245	"supseteqq":                       []byte("&supE;"),
1246	"supsetneq":                       []byte("&#8843;"),
1247	"supsetneqq":                      []byte("&supnE;"),
1248	"swarrow":                         []byte("&#8601;"),
1249	"szlig":                           []byte("&#223;"),
1250	"target":                          []byte("&#8982;"),
1251	"tcaron":                          []byte("&#357;"),
1252	"tcedil":                          []byte("&#355;"),
1253	"telrec":                          []byte("&#8981;"),
1254	"there4":                          []byte("&#8756;"),
1255	"therefore":                       []byte("&#8756;"),
1256	"theta":                           []byte("&#952;"),
1257	"thetasym":                        []byte("&#977;"),
1258	"thetav":                          []byte("&#977;"),
1259	"thickapprox":                     []byte("&ap;"),
1260	"thicksim":                        []byte("&sim;"),
1261	"thinsp":                          []byte("&#8201;"),
1262	"thkap":                           []byte("&ap;"),
1263	"thksim":                          []byte("&sim;"),
1264	"thorn":                           []byte("&#254;"),
1265	"tilde":                           []byte("&#732;"),
1266	"times":                           []byte("&#215;"),
1267	"timesb":                          []byte("&#8864;"),
1268	"timesbar":                        []byte("&#10801;"),
1269	"topbot":                          []byte("&#9014;"),
1270	"topfork":                         []byte("&#10970;"),
1271	"tprime":                          []byte("&#8244;"),
1272	"triangle":                        []byte("&utri;"),
1273	"triangledown":                    []byte("&dtri;"),
1274	"triangleleft":                    []byte("&ltri;"),
1275	"trianglelefteq":                  []byte("&#8884;"),
1276	"triangleq":                       []byte("&trie;"),
1277	"triangleright":                   []byte("&rtri;"),
1278	"trianglerighteq":                 []byte("&#8885;"),
1279	"tridot":                          []byte("&#9708;"),
1280	"triminus":                        []byte("&#10810;"),
1281	"triplus":                         []byte("&#10809;"),
1282	"tritime":                         []byte("&#10811;"),
1283	"trpezium":                        []byte("&#9186;"),
1284	"tstrok":                          []byte("&#359;"),
1285	"twoheadleftarrow":                []byte("&Larr;"),
1286	"twoheadrightarrow":               []byte("&Rarr;"),
1287	"uacute":                          []byte("&#250;"),
1288	"ubreve":                          []byte("&#365;"),
1289	"ucirc":                           []byte("&#251;"),
1290	"udblac":                          []byte("&#369;"),
1291	"ugrave":                          []byte("&#249;"),
1292	"ulcorn":                          []byte("&#8988;"),
1293	"ulcorner":                        []byte("&#8988;"),
1294	"ulcrop":                          []byte("&#8975;"),
1295	"umacr":                           []byte("&#363;"),
1296	"uogon":                           []byte("&#371;"),
1297	"uparrow":                         []byte("&uarr;"),
1298	"updownarrow":                     []byte("&varr;"),
1299	"upharpoonleft":                   []byte("&#8639;"),
1300	"upharpoonright":                  []byte("&#8638;"),
1301	"upsih":                           []byte("&#978;"),
1302	"upsilon":                         []byte("&#965;"),
1303	"upuparrows":                      []byte("&#8648;"),
1304	"urcorn":                          []byte("&#8989;"),
1305	"urcorner":                        []byte("&#8989;"),
1306	"urcrop":                          []byte("&#8974;"),
1307	"uring":                           []byte("&#367;"),
1308	"utilde":                          []byte("&#361;"),
1309	"uwangle":                         []byte("&#10663;"),
1310	"varepsilon":                      []byte("&#1013;"),
1311	"varkappa":                        []byte("&#1008;"),
1312	"varnothing":                      []byte("&#8709;"),
1313	"varphi":                          []byte("&#981;"),
1314	"varpi":                           []byte("&piv;"),
1315	"varpropto":                       []byte("&prop;"),
1316	"varrho":                          []byte("&rhov;"),
1317	"varsigma":                        []byte("&#962;"),
1318	"vartheta":                        []byte("&#977;"),
1319	"vartriangleleft":                 []byte("&#8882;"),
1320	"vartriangleright":                []byte("&#8883;"),
1321	"vee":                             []byte("&or;"),
1322	"veebar":                          []byte("&#8891;"),
1323	"vellip":                          []byte("&#8942;"),
1324	"verbar":                          []byte("|"),
1325	"vert":                            []byte("|"),
1326	"vprop":                           []byte("&prop;"),
1327	"vzigzag":                         []byte("&#10650;"),
1328	"wcirc":                           []byte("&#373;"),
1329	"wedge":                           []byte("&and;"),
1330	"wedgeq":                          []byte("&#8793;"),
1331	"weierp":                          []byte("&wp;"),
1332	"wreath":                          []byte("&wr;"),
1333	"xvee":                            []byte("&Vee;"),
1334	"xwedge":                          []byte("&#8896;"),
1335	"yacute":                          []byte("&#253;"),
1336	"ycirc":                           []byte("&#375;"),
1337	"zacute":                          []byte("&#378;"),
1338	"zcaron":                          []byte("&#382;"),
1339	"zeetrf":                          []byte("&Zfr;"),
1340	"zigrarr":                         []byte("&#8669;"),
1341}
1342
1343// TextRevEntitiesMap is a map of escapes.
1344var TextRevEntitiesMap = map[byte][]byte{
1345	'<': []byte("&lt;"),
1346}