1 /// Author: Aziz Köksal
2 /// License: GPL3
3 /// $(Maturity very high)
4 module dil.HtmlEntities;
5 
6 import dil.String;
7 import common;
8 
9 /// A named HTML entity.
10 struct Entity
11 {
12   string name; /// The name, e.g. "quot".
13   dchar value; /// The Unicode code point, e.g. '\u0022'.
14 }
15 
16 /// The table of named HTML entities.
17 /// See: $(LINK http://www.w3.org/2003/entities/2007/w3centities-f.ent)
18 static const Entity[] namedEntities = [
19   {"Aacgr", 0x00386},
20   {"aacgr", 0x003AC},
21   {"Aacute", 0x000C1},
22   {"aacute", 0x000E1},
23   {"Abreve", 0x00102},
24   {"abreve", 0x00103},
25   {"ac", 0x0223E},
26   {"acd", 0x0223F},
27   // {"acE", "∾̳"},
28   {"Acirc", 0x000C2},
29   {"acirc", 0x000E2},
30   {"acute", 0x000B4},
31   {"Acy", 0x00410},
32   {"acy", 0x00430},
33   {"AElig", 0x000C6},
34   {"aelig", 0x000E6},
35   {"af", 0x02061},
36   {"Afr", 0x1D504},
37   {"afr", 0x1D51E},
38   {"Agr", 0x00391},
39   {"agr", 0x003B1},
40   {"Agrave", 0x000C0},
41   {"agrave", 0x000E0},
42   {"alefsym", 0x02135},
43   {"aleph", 0x02135},
44   {"Alpha", 0x00391},
45   {"alpha", 0x003B1},
46   {"Amacr", 0x00100},
47   {"amacr", 0x00101},
48   {"amalg", 0x02A3F},
49   {"AMP", 0x00026},
50   {"amp", 0x00026},
51   {"And", 0x02A53},
52   {"and", 0x02227},
53   {"andand", 0x02A55},
54   {"andd", 0x02A5C},
55   {"andslope", 0x02A58},
56   {"andv", 0x02A5A},
57   {"ang", 0x02220},
58   {"ange", 0x029A4},
59   {"angle", 0x02220},
60   {"angmsd", 0x02221},
61   {"angmsdaa", 0x029A8},
62   {"angmsdab", 0x029A9},
63   {"angmsdac", 0x029AA},
64   {"angmsdad", 0x029AB},
65   {"angmsdae", 0x029AC},
66   {"angmsdaf", 0x029AD},
67   {"angmsdag", 0x029AE},
68   {"angmsdah", 0x029AF},
69   {"angrt", 0x0221F},
70   {"angrtvb", 0x022BE},
71   {"angrtvbd", 0x0299D},
72   {"angsph", 0x02222},
73   {"angst", 0x000C5},
74   {"angzarr", 0x0237C},
75   {"Aogon", 0x00104},
76   {"aogon", 0x00105},
77   {"Aopf", 0x1D538},
78   {"aopf", 0x1D552},
79   {"ap", 0x02248},
80   {"apacir", 0x02A6F},
81   {"apE", 0x02A70},
82   {"ape", 0x0224A},
83   {"apid", 0x0224B},
84   {"apos", 0x00027},
85   {"ApplyFunction", 0x02061},
86   {"approx", 0x02248},
87   {"approxeq", 0x0224A},
88   {"Aring", 0x000C5},
89   {"aring", 0x000E5},
90   {"Ascr", 0x1D49C},
91   {"ascr", 0x1D4B6},
92   {"Assign", 0x02254},
93   {"ast", 0x0002A},
94   {"asymp", 0x02248},
95   {"asympeq", 0x0224D},
96   {"Atilde", 0x000C3},
97   {"atilde", 0x000E3},
98   {"Auml", 0x000C4},
99   {"auml", 0x000E4},
100   {"awconint", 0x02233},
101   {"awint", 0x02A11},
102   // {"b.alpha", "𝛂"},
103   // {"b.beta", "𝛃"},
104   // {"b.chi", "𝛘"},
105   // {"b.Delta", "𝚫"},
106   // {"b.delta", "𝛅"},
107   // {"b.epsi", "𝛆"},
108   // {"b.epsiv", "𝛜"},
109   // {"b.eta", "𝛈"},
110   // {"b.Gamma", "𝚪"},
111   // {"b.gamma", "𝛄"},
112   // {"b.Gammad", "𝟊"},
113   // {"b.gammad", "𝟋"},
114   // {"b.iota", "𝛊"},
115   // {"b.kappa", "𝛋"},
116   // {"b.kappav", "𝛞"},
117   // {"b.Lambda", "𝚲"},
118   // {"b.lambda", "𝛌"},
119   // {"b.mu", "𝛍"},
120   // {"b.nu", "𝛎"},
121   // {"b.Omega", "𝛀"},
122   // {"b.omega", "𝛚"},
123   // {"b.Phi", "𝚽"},
124   // {"b.phi", "𝛗"},
125   // {"b.phiv", "𝛟"},
126   // {"b.Pi", "𝚷"},
127   // {"b.pi", "𝛑"},
128   // {"b.piv", "𝛡"},
129   // {"b.Psi", "𝚿"},
130   // {"b.psi", "𝛙"},
131   // {"b.rho", "𝛒"},
132   // {"b.rhov", "𝛠"},
133   // {"b.Sigma", "𝚺"},
134   // {"b.sigma", "𝛔"},
135   // {"b.sigmav", "𝛓"},
136   // {"b.tau", "𝛕"},
137   // {"b.Theta", "𝚯"},
138   // {"b.thetas", "𝛉"},
139   // {"b.thetav", "𝛝"},
140   // {"b.Upsi", "𝚼"},
141   // {"b.upsi", "𝛖"},
142   // {"b.Xi", "𝚵"},
143   // {"b.xi", "𝛏"},
144   // {"b.zeta", "𝛇"},
145   {"backcong", 0x0224C},
146   {"backepsilon", 0x003F6},
147   {"backprime", 0x02035},
148   {"backsim", 0x0223D},
149   {"backsimeq", 0x022CD},
150   {"Backslash", 0x02216},
151   {"Barv", 0x02AE7},
152   {"barvee", 0x022BD},
153   {"Barwed", 0x02306},
154   {"barwed", 0x02305},
155   {"barwedge", 0x02305},
156   {"bbrk", 0x023B5},
157   {"bbrktbrk", 0x023B6},
158   {"bcong", 0x0224C},
159   {"Bcy", 0x00411},
160   {"bcy", 0x00431},
161   {"bdquo", 0x0201E},
162   {"becaus", 0x02235},
163   {"Because", 0x02235},
164   {"because", 0x02235},
165   {"bemptyv", 0x029B0},
166   {"bepsi", 0x003F6},
167   {"bernou", 0x0212C},
168   {"Bernoullis", 0x0212C},
169   {"Beta", 0x00392},
170   {"beta", 0x003B2},
171   {"beth", 0x02136},
172   {"between", 0x0226C},
173   {"Bfr", 0x1D505},
174   {"bfr", 0x1D51F},
175   {"Bgr", 0x00392},
176   {"bgr", 0x003B2},
177   {"bigcap", 0x022C2},
178   {"bigcirc", 0x025EF},
179   {"bigcup", 0x022C3},
180   {"bigodot", 0x02A00},
181   {"bigoplus", 0x02A01},
182   {"bigotimes", 0x02A02},
183   {"bigsqcup", 0x02A06},
184   {"bigstar", 0x02605},
185   {"bigtriangledown", 0x025BD},
186   {"bigtriangleup", 0x025B3},
187   {"biguplus", 0x02A04},
188   {"bigvee", 0x022C1},
189   {"bigwedge", 0x022C0},
190   {"bkarow", 0x0290D},
191   {"blacklozenge", 0x029EB},
192   {"blacksquare", 0x025AA},
193   {"blacktriangle", 0x025B4},
194   {"blank", 0x02423},
195   {"blk12", 0x02592},
196   {"blk14", 0x02591},
197   {"blk34", 0x02593},
198   {"block", 0x02588},
199   // {"bne", "=⃥"},
200   // {"bnequiv", "≡⃥"},
201   {"bNot", 0x02AED},
202   {"bnot", 0x02310},
203   {"Bopf", 0x1D539},
204   {"bopf", 0x1D553},
205   {"bot", 0x022A5},
206   {"bottom", 0x022A5},
207   {"bowtie", 0x022C8},
208   {"boxbox", 0x029C9},
209   {"boxDL", 0x02557},
210   {"boxDl", 0x02556},
211   {"boxdL", 0x02555},
212   {"boxdl", 0x02510},
213   {"boxDR", 0x02554},
214   {"boxDr", 0x02553},
215   {"boxdR", 0x02552},
216   {"boxdr", 0x0250C},
217   {"boxH", 0x02550},
218   {"boxh", 0x02500},
219   {"boxHD", 0x02566},
220   {"boxHd", 0x02564},
221   {"boxhD", 0x02565},
222   {"boxhd", 0x0252C},
223   {"boxHU", 0x02569},
224   {"boxHu", 0x02567},
225   {"boxhU", 0x02568},
226   {"boxhu", 0x02534},
227   {"boxminus", 0x0229F},
228   {"boxplus", 0x0229E},
229   {"boxtimes", 0x022A0},
230   {"boxUL", 0x0255D},
231   {"boxUl", 0x0255C},
232   {"boxuL", 0x0255B},
233   {"boxul", 0x02518},
234   {"boxUR", 0x0255A},
235   {"boxUr", 0x02559},
236   {"boxuR", 0x02558},
237   {"boxur", 0x02514},
238   {"boxV", 0x02551},
239   {"boxv", 0x02502},
240   {"boxVH", 0x0256C},
241   {"boxVh", 0x0256B},
242   {"boxvH", 0x0256A},
243   {"boxvh", 0x0253C},
244   {"boxVL", 0x02563},
245   {"boxVl", 0x02562},
246   {"boxvL", 0x02561},
247   {"boxvl", 0x02524},
248   {"boxVR", 0x02560},
249   {"boxVr", 0x0255F},
250   {"boxvR", 0x0255E},
251   {"boxvr", 0x0251C},
252   {"bprime", 0x02035},
253   {"Breve", 0x002D8},
254   {"breve", 0x002D8},
255   {"brvbar", 0x000A6},
256   {"Bscr", 0x0212C},
257   {"bscr", 0x1D4B7},
258   {"bsemi", 0x0204F},
259   {"bsim", 0x0223D},
260   {"bsime", 0x022CD},
261   {"bsol", 0x0005C},
262   {"bsolb", 0x029C5},
263   {"bsolhsub", 0x027C8},
264   {"bull", 0x02022},
265   {"bullet", 0x02022},
266   {"bump", 0x0224E},
267   {"bumpE", 0x02AAE},
268   {"bumpe", 0x0224F},
269   {"Bumpeq", 0x0224E},
270   {"bumpeq", 0x0224F},
271   {"Cacute", 0x00106},
272   {"cacute", 0x00107},
273   {"Cap", 0x022D2},
274   {"cap", 0x02229},
275   {"capand", 0x02A44},
276   {"capbrcup", 0x02A49},
277   {"capcap", 0x02A4B},
278   {"capcup", 0x02A47},
279   {"capdot", 0x02A40},
280   // {"caps", "∩︀"},
281   {"caret", 0x02041},
282   {"caron", 0x002C7},
283   {"Cayleys", 0x0212D},
284   {"ccaps", 0x02A4D},
285   {"Ccaron", 0x0010C},
286   {"ccaron", 0x0010D},
287   {"Ccedil", 0x000C7},
288   {"ccedil", 0x000E7},
289   {"Ccirc", 0x00108},
290   {"ccirc", 0x00109},
291   {"Cconint", 0x02230},
292   {"ccups", 0x02A4C},
293   {"ccupssm", 0x02A50},
294   {"Cdot", 0x0010A},
295   {"cdot", 0x0010B},
296   {"cedil", 0x000B8},
297   {"Cedilla", 0x000B8},
298   {"cemptyv", 0x029B2},
299   {"cent", 0x000A2},
300   {"CenterDot", 0x000B7},
301   {"centerdot", 0x000B7},
302   {"Cfr", 0x0212D},
303   {"cfr", 0x1D520},
304   {"CHcy", 0x00427},
305   {"chcy", 0x00447},
306   {"check", 0x02713},
307   {"checkmark", 0x02713},
308   {"Chi", 0x003A7},
309   {"chi", 0x003C7},
310   {"cir", 0x025CB},
311   {"circ", 0x002C6},
312   {"circeq", 0x02257},
313   {"circlearrowleft", 0x021BA},
314   {"circledast", 0x0229B},
315   {"circledcirc", 0x0229A},
316   {"circleddash", 0x0229D},
317   {"CircleDot", 0x02299},
318   {"circledR", 0x000AE},
319   {"circledS", 0x024C8},
320   {"CircleMinus", 0x02296},
321   {"CirclePlus", 0x02295},
322   {"CircleTimes", 0x02297},
323   {"cirE", 0x029C3},
324   {"cire", 0x02257},
325   {"cirfnint", 0x02A10},
326   {"cirmid", 0x02AEF},
327   {"cirscir", 0x029C2},
328   {"CloseCurlyQuote", 0x02019},
329   {"clubs", 0x02663},
330   {"clubsuit", 0x02663},
331   {"Colon", 0x02237},
332   {"colon", 0x0003A},
333   {"Colone", 0x02A74},
334   {"colone", 0x02254},
335   {"coloneq", 0x02254},
336   {"comma", 0x0002C},
337   {"commat", 0x00040},
338   {"comp", 0x02201},
339   {"compfn", 0x02218},
340   {"complement", 0x02201},
341   {"complexes", 0x02102},
342   {"cong", 0x02245},
343   {"congdot", 0x02A6D},
344   {"Congruent", 0x02261},
345   {"Conint", 0x0222F},
346   {"conint", 0x0222E},
347   {"ContourIntegral", 0x0222E},
348   {"Copf", 0x02102},
349   {"copf", 0x1D554},
350   {"coprod", 0x02210},
351   {"Coproduct", 0x02210},
352   {"COPY", 0x000A9},
353   {"copy", 0x000A9},
354   {"copysr", 0x02117},
355   {"crarr", 0x021B5},
356   {"Cross", 0x02A2F},
357   {"cross", 0x02717},
358   {"Cscr", 0x1D49E},
359   {"cscr", 0x1D4B8},
360   {"csub", 0x02ACF},
361   {"csube", 0x02AD1},
362   {"csup", 0x02AD0},
363   {"csupe", 0x02AD2},
364   {"ctdot", 0x022EF},
365   {"cudarrl", 0x02938},
366   {"cudarrr", 0x02935},
367   {"cuepr", 0x022DE},
368   {"cuesc", 0x022DF},
369   {"cularr", 0x021B6},
370   {"cularrp", 0x0293D},
371   {"Cup", 0x022D3},
372   {"cup", 0x0222A},
373   {"cupbrcap", 0x02A48},
374   {"CupCap", 0x0224D},
375   {"cupcap", 0x02A46},
376   {"cupcup", 0x02A4A},
377   {"cupdot", 0x0228D},
378   {"cupor", 0x02A45},
379   // {"cups", "∪︀"},
380   {"curarr", 0x021B7},
381   {"curarrm", 0x0293C},
382   {"curlyeqprec", 0x022DE},
383   {"curlyeqsucc", 0x022DF},
384   {"curlyvee", 0x022CE},
385   {"curlywedge", 0x022CF},
386   {"curren", 0x000A4},
387   {"curvearrowleft", 0x021B6},
388   {"curvearrowright", 0x021B7},
389   {"cuvee", 0x022CE},
390   {"cuwed", 0x022CF},
391   {"cwconint", 0x02232},
392   {"cwint", 0x02231},
393   {"cylcty", 0x0232D},
394   {"Dagger", 0x02021},
395   {"dagger", 0x02020},
396   {"daleth", 0x02138},
397   {"Darr", 0x021A1},
398   {"dArr", 0x021D3},
399   {"darr", 0x02193},
400   {"dash", 0x02010},
401   {"Dashv", 0x02AE4},
402   {"dashv", 0x022A3},
403   {"dbkarow", 0x0290F},
404   {"dblac", 0x002DD},
405   {"Dcaron", 0x0010E},
406   {"dcaron", 0x0010F},
407   {"Dcy", 0x00414},
408   {"dcy", 0x00434},
409   {"DD", 0x02145},
410   {"dd", 0x02146},
411   {"ddagger", 0x02021},
412   {"ddarr", 0x021CA},
413   {"DDotrahd", 0x02911},
414   {"ddotseq", 0x02A77},
415   {"deg", 0x000B0},
416   {"Del", 0x02207},
417   {"Delta", 0x00394},
418   {"delta", 0x003B4},
419   {"demptyv", 0x029B1},
420   {"dfisht", 0x0297F},
421   {"Dfr", 0x1D507},
422   {"dfr", 0x1D521},
423   {"Dgr", 0x00394},
424   {"dgr", 0x003B4},
425   {"dHar", 0x02965},
426   {"dharl", 0x021C3},
427   {"dharr", 0x021C2},
428   {"DiacriticalDot", 0x002D9},
429   {"diam", 0x022C4},
430   {"Diamond", 0x022C4},
431   {"diamond", 0x022C4},
432   {"diamondsuit", 0x02666},
433   {"diams", 0x02666},
434   {"die", 0x000A8},
435   {"DifferentialD", 0x02146},
436   {"digamma", 0x003DD},
437   {"disin", 0x022F2},
438   {"div", 0x000F7},
439   {"divide", 0x000F7},
440   {"divideontimes", 0x022C7},
441   {"divonx", 0x022C7},
442   {"DJcy", 0x00402},
443   {"djcy", 0x00452},
444   {"dlcorn", 0x0231E},
445   {"dlcrop", 0x0230D},
446   {"dollar", 0x00024},
447   {"Dopf", 0x1D53B},
448   {"dopf", 0x1D555},
449   {"Dot", 0x000A8},
450   {"dot", 0x002D9},
451   {"DotDot", 0x020DC},
452   {"doteq", 0x02250},
453   {"doteqdot", 0x02251},
454   {"DotEqual", 0x02250},
455   {"dotminus", 0x02238},
456   {"dotplus", 0x02214},
457   {"dotsquare", 0x022A1},
458   {"doublebarwedge", 0x02306},
459   {"DoubleDot", 0x000A8},
460   {"DoubleDownArrow", 0x021D3},
461   {"DoubleLeftArrow", 0x021D0},
462   {"DoubleLeftTee", 0x02AE4},
463   {"DoubleRightTee", 0x022A8},
464   {"DoubleUpArrow", 0x021D1},
465   {"DownArrow", 0x02193},
466   {"Downarrow", 0x021D3},
467   {"downarrow", 0x02193},
468   {"DownArrowBar", 0x02913},
469   {"DownBreve", 0x00311},
470   {"downdownarrows", 0x021CA},
471   {"downharpoonleft", 0x021C3},
472   {"DownLeftVector", 0x021BD},
473   {"DownRightVector", 0x021C1},
474   {"DownTee", 0x022A4},
475   {"DownTeeArrow", 0x021A7},
476   {"drbkarow", 0x02910},
477   {"drcorn", 0x0231F},
478   {"drcrop", 0x0230C},
479   {"Dscr", 0x1D49F},
480   {"dscr", 0x1D4B9},
481   {"DScy", 0x00405},
482   {"dscy", 0x00455},
483   {"dsol", 0x029F6},
484   {"Dstrok", 0x00110},
485   {"dstrok", 0x00111},
486   {"dtdot", 0x022F1},
487   {"dtri", 0x025BF},
488   {"dtrif", 0x025BE},
489   {"duarr", 0x021F5},
490   {"duhar", 0x0296F},
491   {"dwangle", 0x029A6},
492   {"DZcy", 0x0040F},
493   {"dzcy", 0x0045F},
494   {"dzigrarr", 0x027FF},
495   {"Eacgr", 0x00388},
496   {"eacgr", 0x003AD},
497   {"Eacute", 0x000C9},
498   {"eacute", 0x000E9},
499   {"easter", 0x02A6E},
500   {"Ecaron", 0x0011A},
501   {"ecaron", 0x0011B},
502   {"ecir", 0x02256},
503   {"Ecirc", 0x000CA},
504   {"ecirc", 0x000EA},
505   {"ecolon", 0x02255},
506   {"Ecy", 0x0042D},
507   {"ecy", 0x0044D},
508   {"eDDot", 0x02A77},
509   {"Edot", 0x00116},
510   {"eDot", 0x02251},
511   {"edot", 0x00117},
512   {"ee", 0x02147},
513   {"EEacgr", 0x00389},
514   {"eeacgr", 0x003AE},
515   {"EEgr", 0x00397},
516   {"eegr", 0x003B7},
517   {"efDot", 0x02252},
518   {"Efr", 0x1D508},
519   {"efr", 0x1D522},
520   {"eg", 0x02A9A},
521   {"Egr", 0x00395},
522   {"egr", 0x003B5},
523   {"Egrave", 0x000C8},
524   {"egrave", 0x000E8},
525   {"egs", 0x02A96},
526   {"egsdot", 0x02A98},
527   {"el", 0x02A99},
528   {"Element", 0x02208},
529   {"elinters", 0x023E7},
530   {"ell", 0x02113},
531   {"els", 0x02A95},
532   {"elsdot", 0x02A97},
533   {"Emacr", 0x00112},
534   {"emacr", 0x00113},
535   {"empty", 0x02205},
536   {"emptyset", 0x02205},
537   {"emptyv", 0x02205},
538   {"emsp", 0x02003},
539   {"emsp13", 0x02004},
540   {"emsp14", 0x02005},
541   {"ENG", 0x0014A},
542   {"eng", 0x0014B},
543   {"ensp", 0x02002},
544   {"Eogon", 0x00118},
545   {"eogon", 0x00119},
546   {"Eopf", 0x1D53C},
547   {"eopf", 0x1D556},
548   {"epar", 0x022D5},
549   {"eparsl", 0x029E3},
550   {"eplus", 0x02A71},
551   {"epsi", 0x003B5},
552   {"Epsilon", 0x00395},
553   {"epsilon", 0x003B5},
554   {"epsiv", 0x003F5},
555   {"eqcirc", 0x02256},
556   {"eqcolon", 0x02255},
557   {"eqsim", 0x02242},
558   {"eqslantgtr", 0x02A96},
559   {"eqslantless", 0x02A95},
560   {"Equal", 0x02A75},
561   {"equals", 0x0003D},
562   {"EqualTilde", 0x02242},
563   {"equest", 0x0225F},
564   {"Equilibrium", 0x021CC},
565   {"equiv", 0x02261},
566   {"equivDD", 0x02A78},
567   {"eqvparsl", 0x029E5},
568   {"erarr", 0x02971},
569   {"erDot", 0x02253},
570   {"Escr", 0x02130},
571   {"escr", 0x0212F},
572   {"esdot", 0x02250},
573   {"Esim", 0x02A73},
574   {"esim", 0x02242},
575   {"Eta", 0x00397},
576   {"eta", 0x003B7},
577   {"ETH", 0x000D0},
578   {"eth", 0x000F0},
579   {"Euml", 0x000CB},
580   {"euml", 0x000EB},
581   {"euro", 0x020AC},
582   {"excl", 0x00021},
583   {"exist", 0x02203},
584   {"Exists", 0x02203},
585   {"expectation", 0x02130},
586   {"ExponentialE", 0x02147},
587   {"exponentiale", 0x02147},
588   {"fallingdotseq", 0x02252},
589   {"Fcy", 0x00424},
590   {"fcy", 0x00444},
591   {"female", 0x02640},
592   {"ffilig", 0x0FB03},
593   {"fflig", 0x0FB00},
594   {"ffllig", 0x0FB04},
595   {"Ffr", 0x1D509},
596   {"ffr", 0x1D523},
597   {"filig", 0x0FB01},
598   // {"fjlig", "fj"},
599   {"flat", 0x0266D},
600   {"fllig", 0x0FB02},
601   {"fltns", 0x025B1},
602   {"fnof", 0x00192},
603   {"Fopf", 0x1D53D},
604   {"fopf", 0x1D557},
605   {"ForAll", 0x02200},
606   {"forall", 0x02200},
607   {"fork", 0x022D4},
608   {"forkv", 0x02AD9},
609   {"Fouriertrf", 0x02131},
610   {"fpartint", 0x02A0D},
611   {"frac12", 0x000BD},
612   {"frac13", 0x02153},
613   {"frac14", 0x000BC},
614   {"frac15", 0x02155},
615   {"frac16", 0x02159},
616   {"frac18", 0x0215B},
617   {"frac23", 0x02154},
618   {"frac25", 0x02156},
619   {"frac34", 0x000BE},
620   {"frac35", 0x02157},
621   {"frac38", 0x0215C},
622   {"frac45", 0x02158},
623   {"frac56", 0x0215A},
624   {"frac58", 0x0215D},
625   {"frac78", 0x0215E},
626   {"frasl", 0x02044},
627   {"frown", 0x02322},
628   {"Fscr", 0x02131},
629   {"fscr", 0x1D4BB},
630   {"gacute", 0x001F5},
631   {"Gamma", 0x00393},
632   {"gamma", 0x003B3},
633   {"Gammad", 0x003DC},
634   {"gammad", 0x003DD},
635   {"gap", 0x02A86},
636   {"Gbreve", 0x0011E},
637   {"gbreve", 0x0011F},
638   {"Gcedil", 0x00122},
639   {"Gcirc", 0x0011C},
640   {"gcirc", 0x0011D},
641   {"Gcy", 0x00413},
642   {"gcy", 0x00433},
643   {"Gdot", 0x00120},
644   {"gdot", 0x00121},
645   {"gE", 0x02267},
646   {"ge", 0x02265},
647   {"gEl", 0x02A8C},
648   {"gel", 0x022DB},
649   {"geq", 0x02265},
650   {"geqq", 0x02267},
651   {"geqslant", 0x02A7E},
652   {"ges", 0x02A7E},
653   {"gescc", 0x02AA9},
654   {"gesdot", 0x02A80},
655   {"gesdoto", 0x02A82},
656   {"gesdotol", 0x02A84},
657   // {"gesl", "⋛︀"},
658   {"gesles", 0x02A94},
659   {"Gfr", 0x1D50A},
660   {"gfr", 0x1D524},
661   {"Gg", 0x022D9},
662   {"gg", 0x0226B},
663   {"ggg", 0x022D9},
664   {"Ggr", 0x00393},
665   {"ggr", 0x003B3},
666   {"gimel", 0x02137},
667   {"GJcy", 0x00403},
668   {"gjcy", 0x00453},
669   {"gl", 0x02277},
670   {"gla", 0x02AA5},
671   {"glE", 0x02A92},
672   {"glj", 0x02AA4},
673   {"gnap", 0x02A8A},
674   {"gnapprox", 0x02A8A},
675   {"gnE", 0x02269},
676   {"gne", 0x02A88},
677   {"gneq", 0x02A88},
678   {"gneqq", 0x02269},
679   {"gnsim", 0x022E7},
680   {"Gopf", 0x1D53E},
681   {"gopf", 0x1D558},
682   {"grave", 0x00060},
683   {"GreaterEqual", 0x02265},
684   {"GreaterGreater", 0x02AA2},
685   {"GreaterLess", 0x02277},
686   {"GreaterTilde", 0x02273},
687   {"Gscr", 0x1D4A2},
688   {"gscr", 0x0210A},
689   {"gsim", 0x02273},
690   {"gsime", 0x02A8E},
691   {"gsiml", 0x02A90},
692   {"GT", 0x0003E},
693   {"Gt", 0x0226B},
694   {"gt", 0x0003E},
695   {"gtcc", 0x02AA7},
696   {"gtcir", 0x02A7A},
697   {"gtdot", 0x022D7},
698   {"gtlPar", 0x02995},
699   {"gtquest", 0x02A7C},
700   {"gtrapprox", 0x02A86},
701   {"gtrarr", 0x02978},
702   {"gtrdot", 0x022D7},
703   {"gtreqless", 0x022DB},
704   {"gtreqqless", 0x02A8C},
705   {"gtrless", 0x02277},
706   {"gtrsim", 0x02273},
707   // {"gvertneqq", "≩︀"},
708   // {"gvnE", "≩︀"},
709   {"Hacek", 0x002C7},
710   {"hairsp", 0x0200A},
711   {"half", 0x000BD},
712   {"hamilt", 0x0210B},
713   {"HARDcy", 0x0042A},
714   {"hardcy", 0x0044A},
715   {"hArr", 0x021D4},
716   {"harr", 0x02194},
717   {"harrcir", 0x02948},
718   {"harrw", 0x021AD},
719   {"Hat", 0x0005E},
720   {"hbar", 0x0210F},
721   {"Hcirc", 0x00124},
722   {"hcirc", 0x00125},
723   {"hearts", 0x02665},
724   {"heartsuit", 0x02665},
725   {"hellip", 0x02026},
726   {"hercon", 0x022B9},
727   {"Hfr", 0x0210C},
728   {"hfr", 0x1D525},
729   {"HilbertSpace", 0x0210B},
730   {"hksearow", 0x02925},
731   {"hkswarow", 0x02926},
732   {"hoarr", 0x021FF},
733   {"homtht", 0x0223B},
734   {"hookleftarrow", 0x021A9},
735   {"hookrightarrow", 0x021AA},
736   {"Hopf", 0x0210D},
737   {"hopf", 0x1D559},
738   {"horbar", 0x02015},
739   {"HorizontalLine", 0x02500},
740   {"Hscr", 0x0210B},
741   {"hscr", 0x1D4BD},
742   {"hslash", 0x0210F},
743   {"Hstrok", 0x00126},
744   {"hstrok", 0x00127},
745   {"HumpDownHump", 0x0224E},
746   {"HumpEqual", 0x0224F},
747   {"hybull", 0x02043},
748   {"hyphen", 0x02010},
749   {"Iacgr", 0x0038A},
750   {"iacgr", 0x003AF},
751   {"Iacute", 0x000CD},
752   {"iacute", 0x000ED},
753   {"ic", 0x02063},
754   {"Icirc", 0x000CE},
755   {"icirc", 0x000EE},
756   {"Icy", 0x00418},
757   {"icy", 0x00438},
758   {"idiagr", 0x00390},
759   {"Idigr", 0x003AA},
760   {"idigr", 0x003CA},
761   {"Idot", 0x00130},
762   {"IEcy", 0x00415},
763   {"iecy", 0x00435},
764   {"iexcl", 0x000A1},
765   {"iff", 0x021D4},
766   {"Ifr", 0x02111},
767   {"ifr", 0x1D526},
768   {"Igr", 0x00399},
769   {"igr", 0x003B9},
770   {"Igrave", 0x000CC},
771   {"igrave", 0x000EC},
772   {"ii", 0x02148},
773   {"iiiint", 0x02A0C},
774   {"iiint", 0x0222D},
775   {"iinfin", 0x029DC},
776   {"iiota", 0x02129},
777   {"IJlig", 0x00132},
778   {"ijlig", 0x00133},
779   {"Im", 0x02111},
780   {"Imacr", 0x0012A},
781   {"imacr", 0x0012B},
782   {"image", 0x02111},
783   {"ImaginaryI", 0x02148},
784   {"imagline", 0x02110},
785   {"imagpart", 0x02111},
786   {"imath", 0x00131},
787   {"imof", 0x022B7},
788   {"imped", 0x001B5},
789   {"Implies", 0x021D2},
790   {"in", 0x02208},
791   {"incare", 0x02105},
792   {"infin", 0x0221E},
793   {"infintie", 0x029DD},
794   {"inodot", 0x00131},
795   {"Int", 0x0222C},
796   {"int", 0x0222B},
797   {"intcal", 0x022BA},
798   {"integers", 0x02124},
799   {"Integral", 0x0222B},
800   {"intercal", 0x022BA},
801   {"Intersection", 0x022C2},
802   {"intlarhk", 0x02A17},
803   {"intprod", 0x02A3C},
804   {"InvisibleComma", 0x02063},
805   {"InvisibleTimes", 0x02062},
806   {"IOcy", 0x00401},
807   {"iocy", 0x00451},
808   {"Iogon", 0x0012E},
809   {"iogon", 0x0012F},
810   {"Iopf", 0x1D540},
811   {"iopf", 0x1D55A},
812   {"Iota", 0x00399},
813   {"iota", 0x003B9},
814   {"iprod", 0x02A3C},
815   {"iquest", 0x000BF},
816   {"Iscr", 0x02110},
817   {"iscr", 0x1D4BE},
818   {"isin", 0x02208},
819   {"isindot", 0x022F5},
820   {"isinE", 0x022F9},
821   {"isins", 0x022F4},
822   {"isinsv", 0x022F3},
823   {"isinv", 0x02208},
824   {"it", 0x02062},
825   {"Itilde", 0x00128},
826   {"itilde", 0x00129},
827   {"Iukcy", 0x00406},
828   {"iukcy", 0x00456},
829   {"Iuml", 0x000CF},
830   {"iuml", 0x000EF},
831   {"Jcirc", 0x00134},
832   {"jcirc", 0x00135},
833   {"Jcy", 0x00419},
834   {"jcy", 0x00439},
835   {"Jfr", 0x1D50D},
836   {"jfr", 0x1D527},
837   {"jmath", 0x00237},
838   {"Jopf", 0x1D541},
839   {"jopf", 0x1D55B},
840   {"Jscr", 0x1D4A5},
841   {"jscr", 0x1D4BF},
842   {"Jsercy", 0x00408},
843   {"jsercy", 0x00458},
844   {"Jukcy", 0x00404},
845   {"jukcy", 0x00454},
846   {"Kappa", 0x0039A},
847   {"kappa", 0x003BA},
848   {"kappav", 0x003F0},
849   {"Kcedil", 0x00136},
850   {"kcedil", 0x00137},
851   {"Kcy", 0x0041A},
852   {"kcy", 0x0043A},
853   {"Kfr", 0x1D50E},
854   {"kfr", 0x1D528},
855   {"Kgr", 0x0039A},
856   {"kgr", 0x003BA},
857   {"kgreen", 0x00138},
858   {"KHcy", 0x00425},
859   {"khcy", 0x00445},
860   {"KHgr", 0x003A7},
861   {"khgr", 0x003C7},
862   {"KJcy", 0x0040C},
863   {"kjcy", 0x0045C},
864   {"Kopf", 0x1D542},
865   {"kopf", 0x1D55C},
866   {"Kscr", 0x1D4A6},
867   {"kscr", 0x1D4C0},
868   {"lAarr", 0x021DA},
869   {"Lacute", 0x00139},
870   {"lacute", 0x0013A},
871   {"laemptyv", 0x029B4},
872   {"lagran", 0x02112},
873   {"Lambda", 0x0039B},
874   {"lambda", 0x003BB},
875   {"Lang", 0x027EA},
876   {"lang", 0x027E8},
877   {"langd", 0x02991},
878   {"langle", 0x027E8},
879   {"lap", 0x02A85},
880   {"Laplacetrf", 0x02112},
881   {"laquo", 0x000AB},
882   {"Larr", 0x0219E},
883   {"lArr", 0x021D0},
884   {"larr", 0x02190},
885   {"larrb", 0x021E4},
886   {"larrbfs", 0x0291F},
887   {"larrfs", 0x0291D},
888   {"larrhk", 0x021A9},
889   {"larrlp", 0x021AB},
890   {"larrpl", 0x02939},
891   {"larrsim", 0x02973},
892   {"larrtl", 0x021A2},
893   {"lat", 0x02AAB},
894   {"lAtail", 0x0291B},
895   {"latail", 0x02919},
896   {"late", 0x02AAD},
897   // {"lates", "⪭︀"},
898   {"lBarr", 0x0290E},
899   {"lbarr", 0x0290C},
900   {"lbbrk", 0x02772},
901   {"lbrace", 0x0007B},
902   {"lbrack", 0x0005B},
903   {"lbrke", 0x0298B},
904   {"lbrksld", 0x0298F},
905   {"lbrkslu", 0x0298D},
906   {"Lcaron", 0x0013D},
907   {"lcaron", 0x0013E},
908   {"Lcedil", 0x0013B},
909   {"lcedil", 0x0013C},
910   {"lceil", 0x02308},
911   {"lcub", 0x0007B},
912   {"Lcy", 0x0041B},
913   {"lcy", 0x0043B},
914   {"ldca", 0x02936},
915   {"ldquo", 0x0201C},
916   {"ldquor", 0x0201E},
917   {"ldrdhar", 0x02967},
918   {"ldrushar", 0x0294B},
919   {"ldsh", 0x021B2},
920   {"lE", 0x02266},
921   {"le", 0x02264},
922   {"LeftArrow", 0x02190},
923   {"Leftarrow", 0x021D0},
924   {"leftarrow", 0x02190},
925   {"LeftArrowBar", 0x021E4},
926   {"leftarrowtail", 0x021A2},
927   {"LeftCeiling", 0x02308},
928   {"LeftDownVector", 0x021C3},
929   {"LeftFloor", 0x0230A},
930   {"leftharpoondown", 0x021BD},
931   {"leftharpoonup", 0x021BC},
932   {"leftleftarrows", 0x021C7},
933   {"LeftRightArrow", 0x02194},
934   {"Leftrightarrow", 0x021D4},
935   {"leftrightarrow", 0x02194},
936   {"leftrightarrows", 0x021C6},
937   {"LeftRightVector", 0x0294E},
938   {"LeftTee", 0x022A3},
939   {"LeftTeeArrow", 0x021A4},
940   {"LeftTeeVector", 0x0295A},
941   {"leftthreetimes", 0x022CB},
942   {"LeftTriangle", 0x022B2},
943   {"LeftTriangleBar", 0x029CF},
944   {"LeftUpTeeVector", 0x02960},
945   {"LeftUpVector", 0x021BF},
946   {"LeftUpVectorBar", 0x02958},
947   {"LeftVector", 0x021BC},
948   {"LeftVectorBar", 0x02952},
949   {"lEg", 0x02A8B},
950   {"leg", 0x022DA},
951   {"leq", 0x02264},
952   {"leqq", 0x02266},
953   {"leqslant", 0x02A7D},
954   {"les", 0x02A7D},
955   {"lescc", 0x02AA8},
956   {"lesdot", 0x02A7F},
957   {"lesdoto", 0x02A81},
958   {"lesdotor", 0x02A83},
959   // {"lesg", "⋚︀"},
960   {"lesges", 0x02A93},
961   {"lessapprox", 0x02A85},
962   {"lessdot", 0x022D6},
963   {"lesseqgtr", 0x022DA},
964   {"lesseqqgtr", 0x02A8B},
965   {"LessFullEqual", 0x02266},
966   {"LessGreater", 0x02276},
967   {"lessgtr", 0x02276},
968   {"LessLess", 0x02AA1},
969   {"lesssim", 0x02272},
970   {"LessSlantEqual", 0x02A7D},
971   {"LessTilde", 0x02272},
972   {"lfisht", 0x0297C},
973   {"lfloor", 0x0230A},
974   {"Lfr", 0x1D50F},
975   {"lfr", 0x1D529},
976   {"lg", 0x02276},
977   {"lgE", 0x02A91},
978   {"Lgr", 0x0039B},
979   {"lgr", 0x003BB},
980   {"lHar", 0x02962},
981   {"lhard", 0x021BD},
982   {"lharu", 0x021BC},
983   {"lharul", 0x0296A},
984   {"lhblk", 0x02584},
985   {"LJcy", 0x00409},
986   {"ljcy", 0x00459},
987   {"Ll", 0x022D8},
988   {"ll", 0x0226A},
989   {"llarr", 0x021C7},
990   {"llcorner", 0x0231E},
991   {"Lleftarrow", 0x021DA},
992   {"llhard", 0x0296B},
993   {"lltri", 0x025FA},
994   {"Lmidot", 0x0013F},
995   {"lmidot", 0x00140},
996   {"lmoust", 0x023B0},
997   {"lmoustache", 0x023B0},
998   {"lnap", 0x02A89},
999   {"lnapprox", 0x02A89},
1000   {"lnE", 0x02268},
1001   {"lne", 0x02A87},
1002   {"lneq", 0x02A87},
1003   {"lneqq", 0x02268},
1004   {"lnsim", 0x022E6},
1005   {"loang", 0x027EC},
1006   {"loarr", 0x021FD},
1007   {"lobrk", 0x027E6},
1008   {"LongLeftArrow", 0x027F5},
1009   {"Longleftarrow", 0x027F8},
1010   {"longleftarrow", 0x027F5},
1011   {"longmapsto", 0x027FC},
1012   {"LongRightArrow", 0x027F6},
1013   {"Longrightarrow", 0x027F9},
1014   {"longrightarrow", 0x027F6},
1015   {"looparrowleft", 0x021AB},
1016   {"looparrowright", 0x021AC},
1017   {"lopar", 0x02985},
1018   {"Lopf", 0x1D543},
1019   {"lopf", 0x1D55D},
1020   {"loplus", 0x02A2D},
1021   {"lotimes", 0x02A34},
1022   {"lowast", 0x02217},
1023   {"lowbar", 0x0005F},
1024   {"LowerLeftArrow", 0x02199},
1025   {"LowerRightArrow", 0x02198},
1026   {"loz", 0x025CA},
1027   {"lozenge", 0x025CA},
1028   {"lozf", 0x029EB},
1029   {"lpar", 0x00028},
1030   {"lparlt", 0x02993},
1031   {"lrarr", 0x021C6},
1032   {"lrcorner", 0x0231F},
1033   {"lrhar", 0x021CB},
1034   {"lrhard", 0x0296D},
1035   {"lrm", 0x0200E},
1036   {"lrtri", 0x022BF},
1037   {"lsaquo", 0x02039},
1038   {"Lscr", 0x02112},
1039   {"lscr", 0x1D4C1},
1040   {"Lsh", 0x021B0},
1041   {"lsh", 0x021B0},
1042   {"lsim", 0x02272},
1043   {"lsime", 0x02A8D},
1044   {"lsimg", 0x02A8F},
1045   {"lsqb", 0x0005B},
1046   {"lsquo", 0x02018},
1047   {"lsquor", 0x0201A},
1048   {"Lstrok", 0x00141},
1049   {"lstrok", 0x00142},
1050   {"LT", 0x0003C},
1051   {"Lt", 0x0226A},
1052   {"lt", 0x0003C},
1053   {"ltcc", 0x02AA6},
1054   {"ltcir", 0x02A79},
1055   {"ltdot", 0x022D6},
1056   {"lthree", 0x022CB},
1057   {"ltimes", 0x022C9},
1058   {"ltlarr", 0x02976},
1059   {"ltquest", 0x02A7B},
1060   {"ltri", 0x025C3},
1061   {"ltrie", 0x022B4},
1062   {"ltrif", 0x025C2},
1063   {"ltrPar", 0x02996},
1064   {"lurdshar", 0x0294A},
1065   {"luruhar", 0x02966},
1066   // {"lvertneqq", "≨︀"},
1067   // {"lvnE", "≨︀"},
1068   {"macr", 0x000AF},
1069   {"male", 0x02642},
1070   {"malt", 0x02720},
1071   {"maltese", 0x02720},
1072   {"Map", 0x02905},
1073   {"map", 0x021A6},
1074   {"mapsto", 0x021A6},
1075   {"mapstodown", 0x021A7},
1076   {"mapstoleft", 0x021A4},
1077   {"mapstoup", 0x021A5},
1078   {"marker", 0x025AE},
1079   {"mcomma", 0x02A29},
1080   {"Mcy", 0x0041C},
1081   {"mcy", 0x0043C},
1082   {"mdash", 0x02014},
1083   {"mDDot", 0x0223A},
1084   {"measuredangle", 0x02221},
1085   {"MediumSpace", 0x0205F},
1086   {"Mellintrf", 0x02133},
1087   {"Mfr", 0x1D510},
1088   {"mfr", 0x1D52A},
1089   {"Mgr", 0x0039C},
1090   {"mgr", 0x003BC},
1091   {"mho", 0x02127},
1092   {"micro", 0x000B5},
1093   {"mid", 0x02223},
1094   {"midast", 0x0002A},
1095   {"midcir", 0x02AF0},
1096   {"middot", 0x000B7},
1097   {"minus", 0x02212},
1098   {"minusb", 0x0229F},
1099   {"minusd", 0x02238},
1100   {"minusdu", 0x02A2A},
1101   {"MinusPlus", 0x02213},
1102   {"mlcp", 0x02ADB},
1103   {"mldr", 0x02026},
1104   {"mnplus", 0x02213},
1105   {"models", 0x022A7},
1106   {"Mopf", 0x1D544},
1107   {"mopf", 0x1D55E},
1108   {"mp", 0x02213},
1109   {"Mscr", 0x02133},
1110   {"mscr", 0x1D4C2},
1111   {"mstpos", 0x0223E},
1112   {"Mu", 0x0039C},
1113   {"mu", 0x003BC},
1114   {"multimap", 0x022B8},
1115   {"mumap", 0x022B8},
1116   {"nabla", 0x02207},
1117   {"Nacute", 0x00143},
1118   {"nacute", 0x00144},
1119   // {"nang", "∠⃒"},
1120   {"nap", 0x02249},
1121   // {"napE", "⩰̸"},
1122   // {"napid", "≋̸"},
1123   {"napos", 0x00149},
1124   {"napprox", 0x02249},
1125   {"natur", 0x0266E},
1126   {"natural", 0x0266E},
1127   {"naturals", 0x02115},
1128   {"nbsp", 0x000A0},
1129   // {"nbump", "≎̸"},
1130   // {"nbumpe", "≏̸"},
1131   {"ncap", 0x02A43},
1132   {"Ncaron", 0x00147},
1133   {"ncaron", 0x00148},
1134   {"Ncedil", 0x00145},
1135   {"ncedil", 0x00146},
1136   {"ncong", 0x02247},
1137   // {"ncongdot", "⩭̸"},
1138   {"ncup", 0x02A42},
1139   {"Ncy", 0x0041D},
1140   {"ncy", 0x0043D},
1141   {"ndash", 0x02013},
1142   {"ne", 0x02260},
1143   {"nearhk", 0x02924},
1144   {"neArr", 0x021D7},
1145   {"nearr", 0x02197},
1146   {"nearrow", 0x02197},
1147   // {"nedot", "≐̸"},
1148   {"nequiv", 0x02262},
1149   {"nesear", 0x02928},
1150   // {"nesim", "≂̸"},
1151   {"NestedLessLess", 0x0226A},
1152   {"NewLine", 0x0000A},
1153   {"nexist", 0x02204},
1154   {"nexists", 0x02204},
1155   {"Nfr", 0x1D511},
1156   {"nfr", 0x1D52B},
1157   // {"ngE", "≧̸"},
1158   {"nge", 0x02271},
1159   {"ngeq", 0x02271},
1160   // {"ngeqq", "≧̸"},
1161   // {"ngeqslant", "⩾̸"},
1162   // {"nges", "⩾̸"},
1163   // {"nGg", "⋙̸"},
1164   {"Ngr", 0x0039D},
1165   {"ngr", 0x003BD},
1166   {"ngsim", 0x02275},
1167   // {"nGt", "≫⃒"},
1168   {"ngt", 0x0226F},
1169   {"ngtr", 0x0226F},
1170   // {"nGtv", "≫̸"},
1171   {"nhArr", 0x021CE},
1172   {"nharr", 0x021AE},
1173   {"nhpar", 0x02AF2},
1174   {"ni", 0x0220B},
1175   {"nis", 0x022FC},
1176   {"nisd", 0x022FA},
1177   {"niv", 0x0220B},
1178   {"NJcy", 0x0040A},
1179   {"njcy", 0x0045A},
1180   {"nlArr", 0x021CD},
1181   {"nlarr", 0x0219A},
1182   {"nldr", 0x02025},
1183   // {"nlE", "≦̸"},
1184   {"nle", 0x02270},
1185   {"nLeftarrow", 0x021CD},
1186   {"nleftarrow", 0x0219A},
1187   {"nLeftrightarrow", 0x021CE},
1188   {"nleftrightarrow", 0x021AE},
1189   {"nleq", 0x02270},
1190   // {"nleqq", "≦̸"},
1191   // {"nleqslant", "⩽̸"},
1192   // {"nles", "⩽̸"},
1193   {"nless", 0x0226E},
1194   // {"nLl", "⋘̸"},
1195   {"nlsim", 0x02274},
1196   // {"nLt", "≪⃒"},
1197   {"nlt", 0x0226E},
1198   {"nltri", 0x022EA},
1199   {"nltrie", 0x022EC},
1200   // {"nLtv", "≪̸"},
1201   {"nmid", 0x02224},
1202   {"NoBreak", 0x02060},
1203   {"Nopf", 0x02115},
1204   {"nopf", 0x1D55F},
1205   {"Not", 0x02AEC},
1206   {"not", 0x000AC},
1207   {"NotCongruent", 0x02262},
1208   {"NotCupCap", 0x0226D},
1209   {"NotElement", 0x02209},
1210   {"NotEqual", 0x02260},
1211   // {"NotEqualTilde", "≂̸"},
1212   {"NotExists", 0x02204},
1213   {"NotGreater", 0x0226F},
1214   {"NotGreaterEqual", 0x02271},
1215   {"NotGreaterLess", 0x02279},
1216   {"NotGreaterTilde", 0x02275},
1217   // {"NotHumpDownHump", "≎̸"},
1218   // {"NotHumpEqual", "≏̸"},
1219   {"notin", 0x02209},
1220   // {"notindot", "⋵̸"},
1221   // {"notinE", "⋹̸"},
1222   {"notinva", 0x02209},
1223   {"notinvb", 0x022F7},
1224   {"notinvc", 0x022F6},
1225   {"NotLeftTriangle", 0x022EA},
1226   {"NotLess", 0x0226E},
1227   {"NotLessEqual", 0x02270},
1228   {"NotLessGreater", 0x02278},
1229   // {"NotLessLess", "≪̸"},
1230   {"NotLessTilde", 0x02274},
1231   {"notni", 0x0220C},
1232   {"notniva", 0x0220C},
1233   {"notnivb", 0x022FE},
1234   {"notnivc", 0x022FD},
1235   {"NotPrecedes", 0x02280},
1236   // {"NotSquareSubset", "⊏̸"},
1237   // {"NotSubset", "⊂⃒"},
1238   {"NotSubsetEqual", 0x02288},
1239   {"NotSucceeds", 0x02281},
1240   // {"NotSuperset", "⊃⃒"},
1241   {"NotTilde", 0x02241},
1242   {"NotTildeEqual", 0x02244},
1243   {"NotTildeTilde", 0x02249},
1244   {"NotVerticalBar", 0x02224},
1245   {"npar", 0x02226},
1246   {"nparallel", 0x02226},
1247   // {"nparsl", "⫽⃥"},
1248   // {"npart", "∂̸"},
1249   {"npolint", 0x02A14},
1250   {"npr", 0x02280},
1251   {"nprcue", 0x022E0},
1252   // {"npre", "⪯̸"},
1253   {"nprec", 0x02280},
1254   // {"npreceq", "⪯̸"},
1255   {"nrArr", 0x021CF},
1256   {"nrarr", 0x0219B},
1257   // {"nrarrc", "⤳̸"},
1258   // {"nrarrw", "↝̸"},
1259   {"nRightarrow", 0x021CF},
1260   {"nrightarrow", 0x0219B},
1261   {"nrtri", 0x022EB},
1262   {"nrtrie", 0x022ED},
1263   {"nsc", 0x02281},
1264   {"nsccue", 0x022E1},
1265   // {"nsce", "⪰̸"},
1266   {"Nscr", 0x1D4A9},
1267   {"nscr", 0x1D4C3},
1268   {"nshortmid", 0x02224},
1269   {"nshortparallel", 0x02226},
1270   {"nsim", 0x02241},
1271   {"nsime", 0x02244},
1272   {"nsimeq", 0x02244},
1273   {"nsmid", 0x02224},
1274   {"nspar", 0x02226},
1275   {"nsqsube", 0x022E2},
1276   {"nsqsupe", 0x022E3},
1277   {"nsub", 0x02284},
1278   // {"nsubE", "⫅̸"},
1279   {"nsube", 0x02288},
1280   // {"nsubset", "⊂⃒"},
1281   {"nsubseteq", 0x02288},
1282   // {"nsubseteqq", "⫅̸"},
1283   {"nsucc", 0x02281},
1284   // {"nsucceq", "⪰̸"},
1285   {"nsup", 0x02285},
1286   // {"nsupE", "⫆̸"},
1287   {"nsupe", 0x02289},
1288   // {"nsupset", "⊃⃒"},
1289   {"nsupseteq", 0x02289},
1290   // {"nsupseteqq", "⫆̸"},
1291   {"ntgl", 0x02279},
1292   {"Ntilde", 0x000D1},
1293   {"ntilde", 0x000F1},
1294   {"ntlg", 0x02278},
1295   {"ntriangleleft", 0x022EA},
1296   {"ntrianglelefteq", 0x022EC},
1297   {"ntriangleright", 0x022EB},
1298   {"Nu", 0x0039D},
1299   {"nu", 0x003BD},
1300   {"num", 0x00023},
1301   {"numero", 0x02116},
1302   {"numsp", 0x02007},
1303   // {"nvap", "≍⃒"},
1304   {"nVDash", 0x022AF},
1305   {"nVdash", 0x022AE},
1306   {"nvDash", 0x022AD},
1307   {"nvdash", 0x022AC},
1308   // {"nvge", "≥⃒"},
1309   // {"nvgt", ">⃒"},
1310   {"nvHarr", 0x02904},
1311   {"nvinfin", 0x029DE},
1312   {"nvlArr", 0x02902},
1313   // {"nvle", "≤⃒"},
1314   // {"nvlt", "<⃒"},
1315   // {"nvltrie", "⊴⃒"},
1316   {"nvrArr", 0x02903},
1317   // {"nvrtrie", "⊵⃒"},
1318   // {"nvsim", "∼⃒"},
1319   {"nwarhk", 0x02923},
1320   {"nwArr", 0x021D6},
1321   {"nwarr", 0x02196},
1322   {"nwarrow", 0x02196},
1323   {"nwnear", 0x02927},
1324   {"Oacgr", 0x0038C},
1325   {"oacgr", 0x003CC},
1326   {"Oacute", 0x000D3},
1327   {"oacute", 0x000F3},
1328   {"oast", 0x0229B},
1329   {"ocir", 0x0229A},
1330   {"Ocirc", 0x000D4},
1331   {"ocirc", 0x000F4},
1332   {"Ocy", 0x0041E},
1333   {"ocy", 0x0043E},
1334   {"odash", 0x0229D},
1335   {"Odblac", 0x00150},
1336   {"odblac", 0x00151},
1337   {"odiv", 0x02A38},
1338   {"odot", 0x02299},
1339   {"odsold", 0x029BC},
1340   {"OElig", 0x00152},
1341   {"oelig", 0x00153},
1342   {"ofcir", 0x029BF},
1343   {"Ofr", 0x1D512},
1344   {"ofr", 0x1D52C},
1345   {"ogon", 0x002DB},
1346   {"Ogr", 0x0039F},
1347   {"ogr", 0x003BF},
1348   {"Ograve", 0x000D2},
1349   {"ograve", 0x000F2},
1350   {"ogt", 0x029C1},
1351   {"OHacgr", 0x0038F},
1352   {"ohacgr", 0x003CE},
1353   {"ohbar", 0x029B5},
1354   {"OHgr", 0x003A9},
1355   {"ohgr", 0x003C9},
1356   {"ohm", 0x003A9},
1357   {"oint", 0x0222E},
1358   {"olarr", 0x021BA},
1359   {"olcir", 0x029BE},
1360   {"olcross", 0x029BB},
1361   {"oline", 0x0203E},
1362   {"olt", 0x029C0},
1363   {"Omacr", 0x0014C},
1364   {"omacr", 0x0014D},
1365   {"Omega", 0x003A9},
1366   {"omega", 0x003C9},
1367   {"Omicron", 0x0039F},
1368   {"omicron", 0x003BF},
1369   {"omid", 0x029B6},
1370   {"ominus", 0x02296},
1371   {"Oopf", 0x1D546},
1372   {"oopf", 0x1D560},
1373   {"opar", 0x029B7},
1374   {"OpenCurlyQuote", 0x02018},
1375   {"operp", 0x029B9},
1376   {"oplus", 0x02295},
1377   {"Or", 0x02A54},
1378   {"or", 0x02228},
1379   {"orarr", 0x021BB},
1380   {"ord", 0x02A5D},
1381   {"order", 0x02134},
1382   {"orderof", 0x02134},
1383   {"ordf", 0x000AA},
1384   {"ordm", 0x000BA},
1385   {"origof", 0x022B6},
1386   {"oror", 0x02A56},
1387   {"orslope", 0x02A57},
1388   {"orv", 0x02A5B},
1389   {"oS", 0x024C8},
1390   {"Oscr", 0x1D4AA},
1391   {"oscr", 0x02134},
1392   {"Oslash", 0x000D8},
1393   {"oslash", 0x000F8},
1394   {"osol", 0x02298},
1395   {"Otilde", 0x000D5},
1396   {"otilde", 0x000F5},
1397   {"Otimes", 0x02A37},
1398   {"otimes", 0x02297},
1399   {"otimesas", 0x02A36},
1400   {"Ouml", 0x000D6},
1401   {"ouml", 0x000F6},
1402   {"ovbar", 0x0233D},
1403   {"OverBar", 0x0203E},
1404   {"OverBrace", 0x023DE},
1405   {"OverBracket", 0x023B4},
1406   {"OverParenthesis", 0x023DC},
1407   {"par", 0x02225},
1408   {"para", 0x000B6},
1409   {"parallel", 0x02225},
1410   {"parsim", 0x02AF3},
1411   {"parsl", 0x02AFD},
1412   {"part", 0x02202},
1413   {"PartialD", 0x02202},
1414   {"Pcy", 0x0041F},
1415   {"pcy", 0x0043F},
1416   {"percnt", 0x00025},
1417   {"period", 0x0002E},
1418   {"permil", 0x02030},
1419   {"perp", 0x022A5},
1420   {"pertenk", 0x02031},
1421   {"Pfr", 0x1D513},
1422   {"pfr", 0x1D52D},
1423   {"Pgr", 0x003A0},
1424   {"pgr", 0x003C0},
1425   {"PHgr", 0x003A6},
1426   {"phgr", 0x003C6},
1427   {"Phi", 0x003A6},
1428   {"phi", 0x003C6},
1429   {"phiv", 0x003D5},
1430   {"phmmat", 0x02133},
1431   {"phone", 0x0260E},
1432   {"Pi", 0x003A0},
1433   {"pi", 0x003C0},
1434   {"pitchfork", 0x022D4},
1435   {"piv", 0x003D6},
1436   {"planck", 0x0210F},
1437   {"planckh", 0x0210E},
1438   {"plankv", 0x0210F},
1439   {"plus", 0x0002B},
1440   {"plusacir", 0x02A23},
1441   {"plusb", 0x0229E},
1442   {"pluscir", 0x02A22},
1443   {"plusdo", 0x02214},
1444   {"plusdu", 0x02A25},
1445   {"pluse", 0x02A72},
1446   {"PlusMinus", 0x000B1},
1447   {"plusmn", 0x000B1},
1448   {"plussim", 0x02A26},
1449   {"plustwo", 0x02A27},
1450   {"pm", 0x000B1},
1451   {"Poincareplane", 0x0210C},
1452   {"pointint", 0x02A15},
1453   {"Popf", 0x02119},
1454   {"popf", 0x1D561},
1455   {"pound", 0x000A3},
1456   {"Pr", 0x02ABB},
1457   {"pr", 0x0227A},
1458   {"prap", 0x02AB7},
1459   {"prcue", 0x0227C},
1460   {"prE", 0x02AB3},
1461   {"pre", 0x02AAF},
1462   {"prec", 0x0227A},
1463   {"precapprox", 0x02AB7},
1464   {"preccurlyeq", 0x0227C},
1465   {"Precedes", 0x0227A},
1466   {"PrecedesEqual", 0x02AAF},
1467   {"PrecedesTilde", 0x0227E},
1468   {"preceq", 0x02AAF},
1469   {"precnapprox", 0x02AB9},
1470   {"precneqq", 0x02AB5},
1471   {"precnsim", 0x022E8},
1472   {"precsim", 0x0227E},
1473   {"Prime", 0x02033},
1474   {"prime", 0x02032},
1475   {"primes", 0x02119},
1476   {"prnap", 0x02AB9},
1477   {"prnE", 0x02AB5},
1478   {"prnsim", 0x022E8},
1479   {"prod", 0x0220F},
1480   {"Product", 0x0220F},
1481   {"profalar", 0x0232E},
1482   {"profline", 0x02312},
1483   {"profsurf", 0x02313},
1484   {"prop", 0x0221D},
1485   {"Proportion", 0x02237},
1486   {"Proportional", 0x0221D},
1487   {"propto", 0x0221D},
1488   {"prsim", 0x0227E},
1489   {"prurel", 0x022B0},
1490   {"Pscr", 0x1D4AB},
1491   {"pscr", 0x1D4C5},
1492   {"PSgr", 0x003A8},
1493   {"psgr", 0x003C8},
1494   {"Psi", 0x003A8},
1495   {"psi", 0x003C8},
1496   {"puncsp", 0x02008},
1497   {"Qfr", 0x1D514},
1498   {"qfr", 0x1D52E},
1499   {"qint", 0x02A0C},
1500   {"Qopf", 0x0211A},
1501   {"qopf", 0x1D562},
1502   {"qprime", 0x02057},
1503   {"Qscr", 0x1D4AC},
1504   {"qscr", 0x1D4C6},
1505   {"quaternions", 0x0210D},
1506   {"quatint", 0x02A16},
1507   {"quest", 0x0003F},
1508   {"questeq", 0x0225F},
1509   {"QUOT", 0x00022},
1510   {"quot", 0x00022},
1511   {"rAarr", 0x021DB},
1512   // {"race", "∽̱"},
1513   {"Racute", 0x00154},
1514   {"racute", 0x00155},
1515   {"radic", 0x0221A},
1516   {"raemptyv", 0x029B3},
1517   {"Rang", 0x027EB},
1518   {"rang", 0x027E9},
1519   {"rangd", 0x02992},
1520   {"range", 0x029A5},
1521   {"rangle", 0x027E9},
1522   {"raquo", 0x000BB},
1523   {"Rarr", 0x021A0},
1524   {"rArr", 0x021D2},
1525   {"rarr", 0x02192},
1526   {"rarrap", 0x02975},
1527   {"rarrb", 0x021E5},
1528   {"rarrbfs", 0x02920},
1529   {"rarrc", 0x02933},
1530   {"rarrfs", 0x0291E},
1531   {"rarrhk", 0x021AA},
1532   {"rarrlp", 0x021AC},
1533   {"rarrpl", 0x02945},
1534   {"rarrsim", 0x02974},
1535   {"Rarrtl", 0x02916},
1536   {"rarrtl", 0x021A3},
1537   {"rarrw", 0x0219D},
1538   {"rAtail", 0x0291C},
1539   {"ratail", 0x0291A},
1540   {"ratio", 0x02236},
1541   {"rationals", 0x0211A},
1542   {"RBarr", 0x02910},
1543   {"rBarr", 0x0290F},
1544   {"rbarr", 0x0290D},
1545   {"rbbrk", 0x02773},
1546   {"rbrace", 0x0007D},
1547   {"rbrack", 0x0005D},
1548   {"rbrke", 0x0298C},
1549   {"rbrksld", 0x0298E},
1550   {"rbrkslu", 0x02990},
1551   {"Rcaron", 0x00158},
1552   {"rcaron", 0x00159},
1553   {"Rcedil", 0x00156},
1554   {"rcedil", 0x00157},
1555   {"rceil", 0x02309},
1556   {"rcub", 0x0007D},
1557   {"Rcy", 0x00420},
1558   {"rcy", 0x00440},
1559   {"rdca", 0x02937},
1560   {"rdldhar", 0x02969},
1561   {"rdquo", 0x0201D},
1562   {"rdquor", 0x0201D},
1563   {"rdsh", 0x021B3},
1564   {"Re", 0x0211C},
1565   {"real", 0x0211C},
1566   {"realine", 0x0211B},
1567   {"realpart", 0x0211C},
1568   {"reals", 0x0211D},
1569   {"rect", 0x025AD},
1570   {"REG", 0x000AE},
1571   {"reg", 0x000AE},
1572   {"ReverseElement", 0x0220B},
1573   {"rfisht", 0x0297D},
1574   {"rfloor", 0x0230B},
1575   {"Rfr", 0x0211C},
1576   {"rfr", 0x1D52F},
1577   {"Rgr", 0x003A1},
1578   {"rgr", 0x003C1},
1579   {"rHar", 0x02964},
1580   {"rhard", 0x021C1},
1581   {"rharu", 0x021C0},
1582   {"rharul", 0x0296C},
1583   {"Rho", 0x003A1},
1584   {"rho", 0x003C1},
1585   {"rhov", 0x003F1},
1586   {"RightArrow", 0x02192},
1587   {"Rightarrow", 0x021D2},
1588   {"rightarrow", 0x02192},
1589   {"RightArrowBar", 0x021E5},
1590   {"rightarrowtail", 0x021A3},
1591   {"RightCeiling", 0x02309},
1592   {"RightDownVector", 0x021C2},
1593   {"RightFloor", 0x0230B},
1594   {"rightharpoonup", 0x021C0},
1595   {"rightleftarrows", 0x021C4},
1596   {"rightsquigarrow", 0x0219D},
1597   {"RightTee", 0x022A2},
1598   {"RightTeeArrow", 0x021A6},
1599   {"RightTeeVector", 0x0295B},
1600   {"rightthreetimes", 0x022CC},
1601   {"RightTriangle", 0x022B3},
1602   {"RightUpVector", 0x021BE},
1603   {"RightVector", 0x021C0},
1604   {"RightVectorBar", 0x02953},
1605   {"ring", 0x002DA},
1606   {"risingdotseq", 0x02253},
1607   {"rlarr", 0x021C4},
1608   {"rlhar", 0x021CC},
1609   {"rlm", 0x0200F},
1610   {"rmoust", 0x023B1},
1611   {"rmoustache", 0x023B1},
1612   {"rnmid", 0x02AEE},
1613   {"roang", 0x027ED},
1614   {"roarr", 0x021FE},
1615   {"robrk", 0x027E7},
1616   {"ropar", 0x02986},
1617   {"Ropf", 0x0211D},
1618   {"ropf", 0x1D563},
1619   {"roplus", 0x02A2E},
1620   {"rotimes", 0x02A35},
1621   {"RoundImplies", 0x02970},
1622   {"rpar", 0x00029},
1623   {"rpargt", 0x02994},
1624   {"rppolint", 0x02A12},
1625   {"rrarr", 0x021C9},
1626   {"Rrightarrow", 0x021DB},
1627   {"rsaquo", 0x0203A},
1628   {"Rscr", 0x0211B},
1629   {"rscr", 0x1D4C7},
1630   {"Rsh", 0x021B1},
1631   {"rsh", 0x021B1},
1632   {"rsqb", 0x0005D},
1633   {"rsquo", 0x02019},
1634   {"rsquor", 0x02019},
1635   {"rthree", 0x022CC},
1636   {"rtimes", 0x022CA},
1637   {"rtri", 0x025B9},
1638   {"rtrie", 0x022B5},
1639   {"rtrif", 0x025B8},
1640   {"rtriltri", 0x029CE},
1641   {"RuleDelayed", 0x029F4},
1642   {"ruluhar", 0x02968},
1643   {"rx", 0x0211E},
1644   {"Sacute", 0x0015A},
1645   {"sacute", 0x0015B},
1646   {"sbquo", 0x0201A},
1647   {"Sc", 0x02ABC},
1648   {"sc", 0x0227B},
1649   {"scap", 0x02AB8},
1650   {"Scaron", 0x00160},
1651   {"scaron", 0x00161},
1652   {"sccue", 0x0227D},
1653   {"scE", 0x02AB4},
1654   {"sce", 0x02AB0},
1655   {"Scedil", 0x0015E},
1656   {"scedil", 0x0015F},
1657   {"Scirc", 0x0015C},
1658   {"scirc", 0x0015D},
1659   {"scnap", 0x02ABA},
1660   {"scnE", 0x02AB6},
1661   {"scnsim", 0x022E9},
1662   {"scpolint", 0x02A13},
1663   {"scsim", 0x0227F},
1664   {"Scy", 0x00421},
1665   {"scy", 0x00441},
1666   {"sdot", 0x022C5},
1667   {"sdotb", 0x022A1},
1668   {"sdote", 0x02A66},
1669   {"searhk", 0x02925},
1670   {"seArr", 0x021D8},
1671   {"searr", 0x02198},
1672   {"searrow", 0x02198},
1673   {"sect", 0x000A7},
1674   {"semi", 0x0003B},
1675   {"seswar", 0x02929},
1676   {"setminus", 0x02216},
1677   {"setmn", 0x02216},
1678   {"sext", 0x02736},
1679   {"sfgr", 0x003C2},
1680   {"Sfr", 0x1D516},
1681   {"sfr", 0x1D530},
1682   {"sfrown", 0x02322},
1683   {"Sgr", 0x003A3},
1684   {"sgr", 0x003C3},
1685   {"sharp", 0x0266F},
1686   {"SHCHcy", 0x00429},
1687   {"shchcy", 0x00449},
1688   {"SHcy", 0x00428},
1689   {"shcy", 0x00448},
1690   {"ShortDownArrow", 0x02193},
1691   {"ShortLeftArrow", 0x02190},
1692   {"shortmid", 0x02223},
1693   {"shortparallel", 0x02225},
1694   {"ShortRightArrow", 0x02192},
1695   {"ShortUpArrow", 0x02191},
1696   {"shy", 0x000AD},
1697   {"Sigma", 0x003A3},
1698   {"sigma", 0x003C3},
1699   {"sigmaf", 0x003C2},
1700   {"sigmav", 0x003C2},
1701   {"sim", 0x0223C},
1702   {"simdot", 0x02A6A},
1703   {"sime", 0x02243},
1704   {"simeq", 0x02243},
1705   {"simg", 0x02A9E},
1706   {"simgE", 0x02AA0},
1707   {"siml", 0x02A9D},
1708   {"simlE", 0x02A9F},
1709   {"simne", 0x02246},
1710   {"simplus", 0x02A24},
1711   {"simrarr", 0x02972},
1712   {"slarr", 0x02190},
1713   {"SmallCircle", 0x02218},
1714   {"smallsetminus", 0x02216},
1715   {"smashp", 0x02A33},
1716   {"smeparsl", 0x029E4},
1717   {"smid", 0x02223},
1718   {"smile", 0x02323},
1719   {"smt", 0x02AAA},
1720   {"smte", 0x02AAC},
1721   // {"smtes", "⪬︀"},
1722   {"SOFTcy", 0x0042C},
1723   {"softcy", 0x0044C},
1724   {"sol", 0x0002F},
1725   {"solb", 0x029C4},
1726   {"solbar", 0x0233F},
1727   {"Sopf", 0x1D54A},
1728   {"sopf", 0x1D564},
1729   {"spades", 0x02660},
1730   {"spadesuit", 0x02660},
1731   {"spar", 0x02225},
1732   {"sqcap", 0x02293},
1733   // {"sqcaps", "⊓︀"},
1734   {"sqcup", 0x02294},
1735   // {"sqcups", "⊔︀"},
1736   {"Sqrt", 0x0221A},
1737   {"sqsub", 0x0228F},
1738   {"sqsube", 0x02291},
1739   {"sqsubset", 0x0228F},
1740   {"sqsubseteq", 0x02291},
1741   {"sqsup", 0x02290},
1742   {"sqsupe", 0x02292},
1743   {"sqsupset", 0x02290},
1744   {"sqsupseteq", 0x02292},
1745   {"squ", 0x025A1},
1746   {"Square", 0x025A1},
1747   {"square", 0x025A1},
1748   {"SquareSubset", 0x0228F},
1749   {"SquareSuperset", 0x02290},
1750   {"SquareUnion", 0x02294},
1751   {"squarf", 0x025AA},
1752   {"squf", 0x025AA},
1753   {"srarr", 0x02192},
1754   {"Sscr", 0x1D4AE},
1755   {"sscr", 0x1D4C8},
1756   {"ssetmn", 0x02216},
1757   {"ssmile", 0x02323},
1758   {"sstarf", 0x022C6},
1759   {"Star", 0x022C6},
1760   {"star", 0x02606},
1761   {"starf", 0x02605},
1762   {"straightepsilon", 0x003F5},
1763   {"straightphi", 0x003D5},
1764   {"strns", 0x000AF},
1765   {"Sub", 0x022D0},
1766   {"sub", 0x02282},
1767   {"subdot", 0x02ABD},
1768   {"subE", 0x02AC5},
1769   {"sube", 0x02286},
1770   {"subedot", 0x02AC3},
1771   {"submult", 0x02AC1},
1772   {"subnE", 0x02ACB},
1773   {"subne", 0x0228A},
1774   {"subplus", 0x02ABF},
1775   {"subrarr", 0x02979},
1776   {"Subset", 0x022D0},
1777   {"subset", 0x02282},
1778   {"subseteq", 0x02286},
1779   {"subseteqq", 0x02AC5},
1780   {"SubsetEqual", 0x02286},
1781   {"subsetneq", 0x0228A},
1782   {"subsetneqq", 0x02ACB},
1783   {"subsim", 0x02AC7},
1784   {"subsub", 0x02AD5},
1785   {"subsup", 0x02AD3},
1786   {"succ", 0x0227B},
1787   {"succapprox", 0x02AB8},
1788   {"succcurlyeq", 0x0227D},
1789   {"Succeeds", 0x0227B},
1790   {"SucceedsEqual", 0x02AB0},
1791   {"SucceedsTilde", 0x0227F},
1792   {"succeq", 0x02AB0},
1793   {"succnapprox", 0x02ABA},
1794   {"succneqq", 0x02AB6},
1795   {"succnsim", 0x022E9},
1796   {"succsim", 0x0227F},
1797   {"SuchThat", 0x0220B},
1798   {"Sum", 0x02211},
1799   {"sum", 0x02211},
1800   {"sung", 0x0266A},
1801   {"Sup", 0x022D1},
1802   {"sup", 0x02283},
1803   {"sup1", 0x000B9},
1804   {"sup2", 0x000B2},
1805   {"sup3", 0x000B3},
1806   {"supdot", 0x02ABE},
1807   {"supdsub", 0x02AD8},
1808   {"supE", 0x02AC6},
1809   {"supe", 0x02287},
1810   {"supedot", 0x02AC4},
1811   {"Superset", 0x02283},
1812   {"SupersetEqual", 0x02287},
1813   {"suphsol", 0x027C9},
1814   {"suphsub", 0x02AD7},
1815   {"suplarr", 0x0297B},
1816   {"supmult", 0x02AC2},
1817   {"supnE", 0x02ACC},
1818   {"supne", 0x0228B},
1819   {"supplus", 0x02AC0},
1820   {"Supset", 0x022D1},
1821   {"supset", 0x02283},
1822   {"supseteq", 0x02287},
1823   {"supseteqq", 0x02AC6},
1824   {"supsetneq", 0x0228B},
1825   {"supsetneqq", 0x02ACC},
1826   {"supsim", 0x02AC8},
1827   {"supsub", 0x02AD4},
1828   {"supsup", 0x02AD6},
1829   {"swarhk", 0x02926},
1830   {"swArr", 0x021D9},
1831   {"swarr", 0x02199},
1832   {"swarrow", 0x02199},
1833   {"swnwar", 0x0292A},
1834   {"szlig", 0x000DF},
1835   {"Tab", 0x00009},
1836   {"target", 0x02316},
1837   {"Tau", 0x003A4},
1838   {"tau", 0x003C4},
1839   {"tbrk", 0x023B4},
1840   {"Tcaron", 0x00164},
1841   {"tcaron", 0x00165},
1842   {"Tcedil", 0x00162},
1843   {"tcedil", 0x00163},
1844   {"Tcy", 0x00422},
1845   {"tcy", 0x00442},
1846   {"tdot", 0x020DB},
1847   {"telrec", 0x02315},
1848   {"Tfr", 0x1D517},
1849   {"tfr", 0x1D531},
1850   {"Tgr", 0x003A4},
1851   {"tgr", 0x003C4},
1852   {"there4", 0x02234},
1853   {"Therefore", 0x02234},
1854   {"therefore", 0x02234},
1855   {"Theta", 0x00398},
1856   {"theta", 0x003B8},
1857   {"thetasym", 0x003D1},
1858   {"thetav", 0x003D1},
1859   {"THgr", 0x00398},
1860   {"thgr", 0x003B8},
1861   {"thickapprox", 0x02248},
1862   {"thicksim", 0x0223C},
1863   // {"ThickSpace", "  "},
1864   {"thinsp", 0x02009},
1865   {"ThinSpace", 0x02009},
1866   {"thkap", 0x02248},
1867   {"thksim", 0x0223C},
1868   {"THORN", 0x000DE},
1869   {"thorn", 0x000FE},
1870   {"Tilde", 0x0223C},
1871   {"tilde", 0x002DC},
1872   {"TildeEqual", 0x02243},
1873   {"TildeFullEqual", 0x02245},
1874   {"TildeTilde", 0x02248},
1875   {"times", 0x000D7},
1876   {"timesb", 0x022A0},
1877   {"timesbar", 0x02A31},
1878   {"timesd", 0x02A30},
1879   {"tint", 0x0222D},
1880   {"toea", 0x02928},
1881   {"top", 0x022A4},
1882   {"topbot", 0x02336},
1883   {"topcir", 0x02AF1},
1884   {"Topf", 0x1D54B},
1885   {"topf", 0x1D565},
1886   {"topfork", 0x02ADA},
1887   {"tosa", 0x02929},
1888   {"tprime", 0x02034},
1889   {"TRADE", 0x02122},
1890   {"trade", 0x02122},
1891   {"triangle", 0x025B5},
1892   {"triangledown", 0x025BF},
1893   {"triangleleft", 0x025C3},
1894   {"trianglelefteq", 0x022B4},
1895   {"triangleq", 0x0225C},
1896   {"triangleright", 0x025B9},
1897   {"trianglerighteq", 0x022B5},
1898   {"tridot", 0x025EC},
1899   {"trie", 0x0225C},
1900   {"triminus", 0x02A3A},
1901   {"TripleDot", 0x020DB},
1902   {"triplus", 0x02A39},
1903   {"trisb", 0x029CD},
1904   {"tritime", 0x02A3B},
1905   {"trpezium", 0x023E2},
1906   {"Tscr", 0x1D4AF},
1907   {"tscr", 0x1D4C9},
1908   {"TScy", 0x00426},
1909   {"tscy", 0x00446},
1910   {"TSHcy", 0x0040B},
1911   {"tshcy", 0x0045B},
1912   {"Tstrok", 0x00166},
1913   {"tstrok", 0x00167},
1914   {"twixt", 0x0226C},
1915   {"Uacgr", 0x0038E},
1916   {"uacgr", 0x003CD},
1917   {"Uacute", 0x000DA},
1918   {"uacute", 0x000FA},
1919   {"Uarr", 0x0219F},
1920   {"uArr", 0x021D1},
1921   {"uarr", 0x02191},
1922   {"Uarrocir", 0x02949},
1923   {"Ubrcy", 0x0040E},
1924   {"ubrcy", 0x0045E},
1925   {"Ubreve", 0x0016C},
1926   {"ubreve", 0x0016D},
1927   {"Ucirc", 0x000DB},
1928   {"ucirc", 0x000FB},
1929   {"Ucy", 0x00423},
1930   {"ucy", 0x00443},
1931   {"udarr", 0x021C5},
1932   {"Udblac", 0x00170},
1933   {"udblac", 0x00171},
1934   {"udhar", 0x0296E},
1935   {"udiagr", 0x003B0},
1936   {"Udigr", 0x003AB},
1937   {"udigr", 0x003CB},
1938   {"ufisht", 0x0297E},
1939   {"Ufr", 0x1D518},
1940   {"ufr", 0x1D532},
1941   {"Ugr", 0x003A5},
1942   {"ugr", 0x003C5},
1943   {"Ugrave", 0x000D9},
1944   {"ugrave", 0x000F9},
1945   {"uHar", 0x02963},
1946   {"uharl", 0x021BF},
1947   {"uharr", 0x021BE},
1948   {"uhblk", 0x02580},
1949   {"ulcorn", 0x0231C},
1950   {"ulcorner", 0x0231C},
1951   {"ulcrop", 0x0230F},
1952   {"ultri", 0x025F8},
1953   {"Umacr", 0x0016A},
1954   {"umacr", 0x0016B},
1955   {"uml", 0x000A8},
1956   {"UnderBar", 0x0005F},
1957   {"UnderBrace", 0x023DF},
1958   {"UnderBracket", 0x023B5},
1959   {"Union", 0x022C3},
1960   {"UnionPlus", 0x0228E},
1961   {"Uogon", 0x00172},
1962   {"uogon", 0x00173},
1963   {"Uopf", 0x1D54C},
1964   {"uopf", 0x1D566},
1965   {"UpArrow", 0x02191},
1966   {"Uparrow", 0x021D1},
1967   {"uparrow", 0x02191},
1968   {"UpArrowBar", 0x02912},
1969   {"UpDownArrow", 0x02195},
1970   {"Updownarrow", 0x021D5},
1971   {"updownarrow", 0x02195},
1972   {"UpEquilibrium", 0x0296E},
1973   {"upharpoonleft", 0x021BF},
1974   {"upharpoonright", 0x021BE},
1975   {"uplus", 0x0228E},
1976   {"UpperLeftArrow", 0x02196},
1977   {"UpperRightArrow", 0x02197},
1978   {"Upsi", 0x003D2},
1979   {"upsi", 0x003C5},
1980   {"upsih", 0x003D2},
1981   {"Upsilon", 0x003A5},
1982   {"upsilon", 0x003C5},
1983   {"UpTee", 0x022A5},
1984   {"UpTeeArrow", 0x021A5},
1985   {"upuparrows", 0x021C8},
1986   {"urcorn", 0x0231D},
1987   {"urcorner", 0x0231D},
1988   {"urcrop", 0x0230E},
1989   {"Uring", 0x0016E},
1990   {"uring", 0x0016F},
1991   {"urtri", 0x025F9},
1992   {"Uscr", 0x1D4B0},
1993   {"uscr", 0x1D4CA},
1994   {"utdot", 0x022F0},
1995   {"Utilde", 0x00168},
1996   {"utilde", 0x00169},
1997   {"utri", 0x025B5},
1998   {"utrif", 0x025B4},
1999   {"uuarr", 0x021C8},
2000   {"Uuml", 0x000DC},
2001   {"uuml", 0x000FC},
2002   {"uwangle", 0x029A7},
2003   {"vangrt", 0x0299C},
2004   {"varepsilon", 0x003F5},
2005   {"varkappa", 0x003F0},
2006   {"varnothing", 0x02205},
2007   {"varphi", 0x003D5},
2008   {"varpi", 0x003D6},
2009   {"varpropto", 0x0221D},
2010   {"vArr", 0x021D5},
2011   {"varr", 0x02195},
2012   {"varrho", 0x003F1},
2013   {"varsigma", 0x003C2},
2014   // {"varsubsetneq", "⊊︀"},
2015   // {"varsubsetneqq", "⫋︀"},
2016   // {"varsupsetneq", "⊋︀"},
2017   // {"varsupsetneqq", "⫌︀"},
2018   {"vartheta", 0x003D1},
2019   {"vartriangleleft", 0x022B2},
2020   {"Vbar", 0x02AEB},
2021   {"vBar", 0x02AE8},
2022   {"vBarv", 0x02AE9},
2023   {"Vcy", 0x00412},
2024   {"vcy", 0x00432},
2025   {"VDash", 0x022AB},
2026   {"Vdash", 0x022A9},
2027   {"vDash", 0x022A8},
2028   {"vdash", 0x022A2},
2029   {"Vdashl", 0x02AE6},
2030   {"Vee", 0x022C1},
2031   {"vee", 0x02228},
2032   {"veebar", 0x022BB},
2033   {"veeeq", 0x0225A},
2034   {"vellip", 0x022EE},
2035   {"Verbar", 0x02016},
2036   {"verbar", 0x0007C},
2037   {"Vert", 0x02016},
2038   {"vert", 0x0007C},
2039   {"VerticalBar", 0x02223},
2040   {"VerticalLine", 0x0007C},
2041   {"VerticalTilde", 0x02240},
2042   {"VeryThinSpace", 0x0200A},
2043   {"Vfr", 0x1D519},
2044   {"vfr", 0x1D533},
2045   {"vltri", 0x022B2},
2046   // {"vnsub", "⊂⃒"},
2047   // {"vnsup", "⊃⃒"},
2048   {"Vopf", 0x1D54D},
2049   {"vopf", 0x1D567},
2050   {"vprop", 0x0221D},
2051   {"vrtri", 0x022B3},
2052   {"Vscr", 0x1D4B1},
2053   {"vscr", 0x1D4CB},
2054   // {"vsubnE", "⫋︀"},
2055   // {"vsubne", "⊊︀"},
2056   // {"vsupnE", "⫌︀"},
2057   // {"vsupne", "⊋︀"},
2058   {"Vvdash", 0x022AA},
2059   {"vzigzag", 0x0299A},
2060   {"Wcirc", 0x00174},
2061   {"wcirc", 0x00175},
2062   {"wedbar", 0x02A5F},
2063   {"Wedge", 0x022C0},
2064   {"wedge", 0x02227},
2065   {"wedgeq", 0x02259},
2066   {"weierp", 0x02118},
2067   {"Wfr", 0x1D51A},
2068   {"wfr", 0x1D534},
2069   {"Wopf", 0x1D54E},
2070   {"wopf", 0x1D568},
2071   {"wp", 0x02118},
2072   {"wr", 0x02240},
2073   {"wreath", 0x02240},
2074   {"Wscr", 0x1D4B2},
2075   {"wscr", 0x1D4CC},
2076   {"xcap", 0x022C2},
2077   {"xcirc", 0x025EF},
2078   {"xcup", 0x022C3},
2079   {"xdtri", 0x025BD},
2080   {"Xfr", 0x1D51B},
2081   {"xfr", 0x1D535},
2082   {"Xgr", 0x0039E},
2083   {"xgr", 0x003BE},
2084   {"xhArr", 0x027FA},
2085   {"xharr", 0x027F7},
2086   {"Xi", 0x0039E},
2087   {"xi", 0x003BE},
2088   {"xlArr", 0x027F8},
2089   {"xlarr", 0x027F5},
2090   {"xmap", 0x027FC},
2091   {"xnis", 0x022FB},
2092   {"xodot", 0x02A00},
2093   {"Xopf", 0x1D54F},
2094   {"xopf", 0x1D569},
2095   {"xoplus", 0x02A01},
2096   {"xotime", 0x02A02},
2097   {"xrArr", 0x027F9},
2098   {"xrarr", 0x027F6},
2099   {"Xscr", 0x1D4B3},
2100   {"xscr", 0x1D4CD},
2101   {"xsqcup", 0x02A06},
2102   {"xuplus", 0x02A04},
2103   {"xutri", 0x025B3},
2104   {"xvee", 0x022C1},
2105   {"xwedge", 0x022C0},
2106   {"Yacute", 0x000DD},
2107   {"yacute", 0x000FD},
2108   {"YAcy", 0x0042F},
2109   {"yacy", 0x0044F},
2110   {"Ycirc", 0x00176},
2111   {"ycirc", 0x00177},
2112   {"Ycy", 0x0042B},
2113   {"ycy", 0x0044B},
2114   {"yen", 0x000A5},
2115   {"Yfr", 0x1D51C},
2116   {"yfr", 0x1D536},
2117   {"YIcy", 0x00407},
2118   {"yicy", 0x00457},
2119   {"Yopf", 0x1D550},
2120   {"yopf", 0x1D56A},
2121   {"Yscr", 0x1D4B4},
2122   {"yscr", 0x1D4CE},
2123   {"YUcy", 0x0042E},
2124   {"yucy", 0x0044E},
2125   {"Yuml", 0x00178},
2126   {"yuml", 0x000FF},
2127   {"Zacute", 0x00179},
2128   {"zacute", 0x0017A},
2129   {"Zcaron", 0x0017D},
2130   {"zcaron", 0x0017E},
2131   {"Zcy", 0x00417},
2132   {"zcy", 0x00437},
2133   {"Zdot", 0x0017B},
2134   {"zdot", 0x0017C},
2135   {"zeetrf", 0x02128},
2136   {"ZeroWidthSpace", 0x0200B},
2137   {"Zeta", 0x00396},
2138   {"zeta", 0x003B6},
2139   {"Zfr", 0x02128},
2140   {"zfr", 0x1D537},
2141   {"Zgr", 0x00396},
2142   {"zgr", 0x003B6},
2143   {"ZHcy", 0x00416},
2144   {"zhcy", 0x00436},
2145   {"zigrarr", 0x021DD},
2146   {"Zopf", 0x02124},
2147   {"zopf", 0x1D56B},
2148   {"Zscr", 0x1D4B5},
2149   {"zscr", 0x1D4CF},
2150   {"zwj", 0x0200D},
2151   {"zwnj", 0x0200C},
2152 ];
2153 
2154 /// Generates the hash/value arrays for the binary search function.
2155 private enum hvArrays = (){
2156   hash_t[] hashes; // HTML entity name hashes.
2157   dchar[] values; // Unicode codepoints.
2158   hashes.length = values.length = namedEntities.length; // Reserve.
2159   size_t len; // Current length.
2160   // Build arrays:
2161   foreach (entity; namedEntities)
2162   { // 1. Get the hash and value of the entity.
2163     auto hash = hashOfCTF(entity.name);
2164     auto value = entity.value;
2165     assert(hash != 0);
2166     // 2. Binary search to find insertion place.
2167     size_t i, lower, upper = len;
2168     while (lower < upper)
2169     {
2170       i = (lower + upper)/2;
2171       assert(hash != hashes[i], "bad hash function: conflicting hashes");
2172       if (hash > hashes[i])
2173         lower = i + 1;
2174       else
2175         upper = i;
2176     }
2177     i = lower;
2178     // 3. Insert hash and value into tables.
2179     len++;
2180     if (i+1 < len)
2181     { // Move to the right and make room for a new element.
2182       hashes[i+1..len] = hashes[i..len-1]; // Specs say overlapping copies are
2183       values[i+1..len] = values[i..len-1]; // invalid, but this still works.
2184     }
2185     hashes[i] = hash;
2186     values[i] = value;
2187   }
2188 
2189   struct HashesValues
2190   {
2191     hash_t[] hashes;
2192     dchar[] values;
2193   }
2194 
2195   return HashesValues(hashes, values);
2196 }();
2197 
2198 /// Table of hash values of the entities' names.
2199 private static immutable hashes = hvArrays.hashes;
2200 /// Table of Unicode codepoints.
2201 private static immutable values = hvArrays.values;
2202 
2203 /// Converts a named HTML entity to its equivalent Unicode codepoint.
2204 /// Returns: The entity's value or 0 if it does not exist.
2205 dchar entity2Unicode(cstring entity)
2206 {
2207   return entity2Unicode(hashOf(entity));
2208 }
2209 
2210 /// ditto
2211 dchar entity2Unicode(hash_t hash)
2212 {
2213   // Binary search:
2214   size_t index = void,
2215          lower = 0,
2216          upper = hashes.length;
2217   static assert(hashes.length < size_t.max / 2, "'index' may overflow!");
2218   while (lower < upper)
2219   {
2220     index = (lower + upper)/2;
2221     if (hash > hashes[index])
2222       lower = index + 1;
2223     else if (hash < hashes[index])
2224       upper = index;
2225     else
2226       return values[index]; // Return the Unicode codepoint.
2227   }
2228   return 0; // Return error value.
2229 }
2230 
2231 void testEntity2Unicode()
2232 {
2233   scope msg = new UnittestMsg("Testing function entity2Unicode().");
2234   alias f = entity2Unicode;
2235 
2236   // Test extreme values.
2237   assert(hashes[0] != 0 && f(hashes[0] - 1) == 0);
2238   assert(hashes[$-1] != hash_t.max && f(hashes[$-1] + 1) == 0);
2239 
2240   // Test all entities in the Entity array.
2241   foreach (entity; namedEntities)
2242     assert(f(entity.name) == entity.value &&
2243            hashOfCTF(entity.name) == hashOf(entity.name),
2244       Format("'&{};' == \\u{:X4}, not \\u{:X4}; hashes: {} <-> {}",
2245              entity.name, entity.value+0, f(entity.name)+0,
2246              hashOfCTF(entity.name), hashOf(entity.name))
2247     );
2248 }