File Coverage

blib/lib/XML/Entities/Data.pm
Criterion Covered Total %
statement 89 89 100.0
branch 44 44 100.0
condition n/a
subroutine 29 29 100.0
pod 0 25 0.0
total 162 187 86.6


line stmt bran cond sub pod time code
1             package XML::Entities::Data;
2 3     3   26597 use strict;
  3         7  
  3         32573  
3             my @names;
4              
5             # ISOBOX
6             push @names, 'isobox';
7             { my $rv; sub isobox {
8             # Return cached value if there is one.
9 3509 100   3509 0 9732 if ($rv) { return $rv }
  3506         62858  
10 3         759 return $rv = {
11             'boxDL' => chr(0x02557),
12             'boxDl' => chr(0x02556),
13             'boxdL' => chr(0x02555),
14             'boxdl' => chr(0x02510),
15             'boxDR' => chr(0x02554),
16             'boxDr' => chr(0x02553),
17             'boxdR' => chr(0x02552),
18             'boxdr' => chr(0x0250C),
19             'boxH' => chr(0x02550),
20             'boxh' => chr(0x02500),
21             'boxHD' => chr(0x02566),
22             'boxHd' => chr(0x02564),
23             'boxhD' => chr(0x02565),
24             'boxhd' => chr(0x0252C),
25             'boxHU' => chr(0x02569),
26             'boxHu' => chr(0x02567),
27             'boxhU' => chr(0x02568),
28             'boxhu' => chr(0x02534),
29             'boxUL' => chr(0x0255D),
30             'boxUl' => chr(0x0255C),
31             'boxuL' => chr(0x0255B),
32             'boxul' => chr(0x02518),
33             'boxUR' => chr(0x0255A),
34             'boxUr' => chr(0x02559),
35             'boxuR' => chr(0x02558),
36             'boxur' => chr(0x02514),
37             'boxV' => chr(0x02551),
38             'boxv' => chr(0x02502),
39             'boxVH' => chr(0x0256C),
40             'boxVh' => chr(0x0256B),
41             'boxvH' => chr(0x0256A),
42             'boxvh' => chr(0x0253C),
43             'boxVL' => chr(0x02563),
44             'boxVl' => chr(0x02562),
45             'boxvL' => chr(0x02561),
46             'boxvl' => chr(0x02524),
47             'boxVR' => chr(0x02560),
48             'boxVr' => chr(0x0255F),
49             'boxvR' => chr(0x0255E),
50             'boxvr' => chr(0x0251C),
51             }
52             }}
53              
54             # ISOCYR1
55             push @names, 'isocyr1';
56             { my $rv; sub isocyr1 {
57             # Return cached value if there is one.
58 3507 100   3507 0 7202 if ($rv) { return $rv }
  3504         92848  
59 3         267 return $rv = {
60             'Acy' => chr(0x00410),
61             'acy' => chr(0x00430),
62             'Bcy' => chr(0x00411),
63             'bcy' => chr(0x00431),
64             'CHcy' => chr(0x00427),
65             'chcy' => chr(0x00447),
66             'Dcy' => chr(0x00414),
67             'dcy' => chr(0x00434),
68             'Ecy' => chr(0x0042D),
69             'ecy' => chr(0x0044D),
70             'Fcy' => chr(0x00424),
71             'fcy' => chr(0x00444),
72             'Gcy' => chr(0x00413),
73             'gcy' => chr(0x00433),
74             'HARDcy' => chr(0x0042A),
75             'hardcy' => chr(0x0044A),
76             'Icy' => chr(0x00418),
77             'icy' => chr(0x00438),
78             'IEcy' => chr(0x00415),
79             'iecy' => chr(0x00435),
80             'IOcy' => chr(0x00401),
81             'iocy' => chr(0x00451),
82             'Jcy' => chr(0x00419),
83             'jcy' => chr(0x00439),
84             'Kcy' => chr(0x0041A),
85             'kcy' => chr(0x0043A),
86             'KHcy' => chr(0x00425),
87             'khcy' => chr(0x00445),
88             'Lcy' => chr(0x0041B),
89             'lcy' => chr(0x0043B),
90             'Mcy' => chr(0x0041C),
91             'mcy' => chr(0x0043C),
92             'Ncy' => chr(0x0041D),
93             'ncy' => chr(0x0043D),
94             'numero' => chr(0x02116),
95             'Ocy' => chr(0x0041E),
96             'ocy' => chr(0x0043E),
97             'Pcy' => chr(0x0041F),
98             'pcy' => chr(0x0043F),
99             'Rcy' => chr(0x00420),
100             'rcy' => chr(0x00440),
101             'Scy' => chr(0x00421),
102             'scy' => chr(0x00441),
103             'SHCHcy' => chr(0x00429),
104             'shchcy' => chr(0x00449),
105             'SHcy' => chr(0x00428),
106             'shcy' => chr(0x00448),
107             'SOFTcy' => chr(0x0042C),
108             'softcy' => chr(0x0044C),
109             'Tcy' => chr(0x00422),
110             'tcy' => chr(0x00442),
111             'TScy' => chr(0x00426),
112             'tscy' => chr(0x00446),
113             'Ucy' => chr(0x00423),
114             'ucy' => chr(0x00443),
115             'Vcy' => chr(0x00412),
116             'vcy' => chr(0x00432),
117             'YAcy' => chr(0x0042F),
118             'yacy' => chr(0x0044F),
119             'Ycy' => chr(0x0042B),
120             'ycy' => chr(0x0044B),
121             'YUcy' => chr(0x0042E),
122             'yucy' => chr(0x0044E),
123             'Zcy' => chr(0x00417),
124             'zcy' => chr(0x00437),
125             'ZHcy' => chr(0x00416),
126             'zhcy' => chr(0x00436),
127             }
128             }}
129              
130             # ISOCYR2
131             push @names, 'isocyr2';
132             { my $rv; sub isocyr2 {
133             # Return cached value if there is one.
134 3507 100   3507 0 7357 if ($rv) { return $rv }
  3504         42257  
135 3         113 return $rv = {
136             'DJcy' => chr(0x00402),
137             'djcy' => chr(0x00452),
138             'DScy' => chr(0x00405),
139             'dscy' => chr(0x00455),
140             'DZcy' => chr(0x0040F),
141             'dzcy' => chr(0x0045F),
142             'GJcy' => chr(0x00403),
143             'gjcy' => chr(0x00453),
144             'Iukcy' => chr(0x00406),
145             'iukcy' => chr(0x00456),
146             'Jsercy' => chr(0x00408),
147             'jsercy' => chr(0x00458),
148             'Jukcy' => chr(0x00404),
149             'jukcy' => chr(0x00454),
150             'KJcy' => chr(0x0040C),
151             'kjcy' => chr(0x0045C),
152             'LJcy' => chr(0x00409),
153             'ljcy' => chr(0x00459),
154             'NJcy' => chr(0x0040A),
155             'njcy' => chr(0x0045A),
156             'TSHcy' => chr(0x0040B),
157             'tshcy' => chr(0x0045B),
158             'Ubrcy' => chr(0x0040E),
159             'ubrcy' => chr(0x0045E),
160             'YIcy' => chr(0x00407),
161             'yicy' => chr(0x00457),
162             }
163             }}
164              
165             # ISODIA
166             push @names, 'isodia';
167             { my $rv; sub isodia {
168             # Return cached value if there is one.
169 3507 100   3507 0 7489 if ($rv) { return $rv }
  3504         26137  
170 3         61 return $rv = {
171             'acute' => chr(0x000B4),
172             'breve' => chr(0x002D8),
173             'caron' => chr(0x002C7),
174             'cedil' => chr(0x000B8),
175             'circ' => chr(0x002C6),
176             'dblac' => chr(0x002DD),
177             'die' => chr(0x000A8),
178             'dot' => chr(0x002D9),
179             'grave' => chr(0x00060),
180             'macr' => chr(0x000AF),
181             'ogon' => chr(0x002DB),
182             'ring' => chr(0x002DA),
183             'tilde' => chr(0x002DC),
184             'uml' => chr(0x000A8),
185             }
186             }}
187              
188             # ISOLAT1
189             push @names, 'isolat1';
190             { my $rv; sub isolat1 {
191             # Return cached value if there is one.
192 3507 100   3507 0 6816 if ($rv) { return $rv }
  3504         90347  
193 3         263 return $rv = {
194             'Aacute' => chr(0x000C1),
195             'aacute' => chr(0x000E1),
196             'Acirc' => chr(0x000C2),
197             'acirc' => chr(0x000E2),
198             'AElig' => chr(0x000C6),
199             'aelig' => chr(0x000E6),
200             'Agrave' => chr(0x000C0),
201             'agrave' => chr(0x000E0),
202             'Aring' => chr(0x000C5),
203             'aring' => chr(0x000E5),
204             'Atilde' => chr(0x000C3),
205             'atilde' => chr(0x000E3),
206             'Auml' => chr(0x000C4),
207             'auml' => chr(0x000E4),
208             'Ccedil' => chr(0x000C7),
209             'ccedil' => chr(0x000E7),
210             'Eacute' => chr(0x000C9),
211             'eacute' => chr(0x000E9),
212             'Ecirc' => chr(0x000CA),
213             'ecirc' => chr(0x000EA),
214             'Egrave' => chr(0x000C8),
215             'egrave' => chr(0x000E8),
216             'ETH' => chr(0x000D0),
217             'eth' => chr(0x000F0),
218             'Euml' => chr(0x000CB),
219             'euml' => chr(0x000EB),
220             'Iacute' => chr(0x000CD),
221             'iacute' => chr(0x000ED),
222             'Icirc' => chr(0x000CE),
223             'icirc' => chr(0x000EE),
224             'Igrave' => chr(0x000CC),
225             'igrave' => chr(0x000EC),
226             'Iuml' => chr(0x000CF),
227             'iuml' => chr(0x000EF),
228             'Ntilde' => chr(0x000D1),
229             'ntilde' => chr(0x000F1),
230             'Oacute' => chr(0x000D3),
231             'oacute' => chr(0x000F3),
232             'Ocirc' => chr(0x000D4),
233             'ocirc' => chr(0x000F4),
234             'Ograve' => chr(0x000D2),
235             'ograve' => chr(0x000F2),
236             'Oslash' => chr(0x000D8),
237             'oslash' => chr(0x000F8),
238             'Otilde' => chr(0x000D5),
239             'otilde' => chr(0x000F5),
240             'Ouml' => chr(0x000D6),
241             'ouml' => chr(0x000F6),
242             'szlig' => chr(0x000DF),
243             'THORN' => chr(0x000DE),
244             'thorn' => chr(0x000FE),
245             'Uacute' => chr(0x000DA),
246             'uacute' => chr(0x000FA),
247             'Ucirc' => chr(0x000DB),
248             'ucirc' => chr(0x000FB),
249             'Ugrave' => chr(0x000D9),
250             'ugrave' => chr(0x000F9),
251             'Uuml' => chr(0x000DC),
252             'uuml' => chr(0x000FC),
253             'Yacute' => chr(0x000DD),
254             'yacute' => chr(0x000FD),
255             'yuml' => chr(0x000FF),
256             }
257             }}
258              
259             # ISOLAT2
260             push @names, 'isolat2';
261             { my $rv; sub isolat2 {
262             # Return cached value if there is one.
263 3507 100   3507 0 9150 if ($rv) { return $rv }
  3504         161274  
264 3         519 return $rv = {
265             'Abreve' => chr(0x00102),
266             'abreve' => chr(0x00103),
267             'Amacr' => chr(0x00100),
268             'amacr' => chr(0x00101),
269             'Aogon' => chr(0x00104),
270             'aogon' => chr(0x00105),
271             'Cacute' => chr(0x00106),
272             'cacute' => chr(0x00107),
273             'Ccaron' => chr(0x0010C),
274             'ccaron' => chr(0x0010D),
275             'Ccirc' => chr(0x00108),
276             'ccirc' => chr(0x00109),
277             'Cdot' => chr(0x0010A),
278             'cdot' => chr(0x0010B),
279             'Dcaron' => chr(0x0010E),
280             'dcaron' => chr(0x0010F),
281             'Dstrok' => chr(0x00110),
282             'dstrok' => chr(0x00111),
283             'Ecaron' => chr(0x0011A),
284             'ecaron' => chr(0x0011B),
285             'Edot' => chr(0x00116),
286             'edot' => chr(0x00117),
287             'Emacr' => chr(0x00112),
288             'emacr' => chr(0x00113),
289             'ENG' => chr(0x0014A),
290             'eng' => chr(0x0014B),
291             'Eogon' => chr(0x00118),
292             'eogon' => chr(0x00119),
293             'gacute' => chr(0x001F5),
294             'Gbreve' => chr(0x0011E),
295             'gbreve' => chr(0x0011F),
296             'Gcedil' => chr(0x00122),
297             'Gcirc' => chr(0x0011C),
298             'gcirc' => chr(0x0011D),
299             'Gdot' => chr(0x00120),
300             'gdot' => chr(0x00121),
301             'Hcirc' => chr(0x00124),
302             'hcirc' => chr(0x00125),
303             'Hstrok' => chr(0x00126),
304             'hstrok' => chr(0x00127),
305             'Idot' => chr(0x00130),
306             'IJlig' => chr(0x00132),
307             'ijlig' => chr(0x00133),
308             'Imacr' => chr(0x0012A),
309             'imacr' => chr(0x0012B),
310             'inodot' => chr(0x00131),
311             'Iogon' => chr(0x0012E),
312             'iogon' => chr(0x0012F),
313             'Itilde' => chr(0x00128),
314             'itilde' => chr(0x00129),
315             'Jcirc' => chr(0x00134),
316             'jcirc' => chr(0x00135),
317             'Kcedil' => chr(0x00136),
318             'kcedil' => chr(0x00137),
319             'kgreen' => chr(0x00138),
320             'Lacute' => chr(0x00139),
321             'lacute' => chr(0x0013A),
322             'Lcaron' => chr(0x0013D),
323             'lcaron' => chr(0x0013E),
324             'Lcedil' => chr(0x0013B),
325             'lcedil' => chr(0x0013C),
326             'Lmidot' => chr(0x0013F),
327             'lmidot' => chr(0x00140),
328             'Lstrok' => chr(0x00141),
329             'lstrok' => chr(0x00142),
330             'Nacute' => chr(0x00143),
331             'nacute' => chr(0x00144),
332             'napos' => chr(0x00149),
333             'Ncaron' => chr(0x00147),
334             'ncaron' => chr(0x00148),
335             'Ncedil' => chr(0x00145),
336             'ncedil' => chr(0x00146),
337             'Odblac' => chr(0x00150),
338             'odblac' => chr(0x00151),
339             'OElig' => chr(0x00152),
340             'oelig' => chr(0x00153),
341             'Omacr' => chr(0x0014C),
342             'omacr' => chr(0x0014D),
343             'Racute' => chr(0x00154),
344             'racute' => chr(0x00155),
345             'Rcaron' => chr(0x00158),
346             'rcaron' => chr(0x00159),
347             'Rcedil' => chr(0x00156),
348             'rcedil' => chr(0x00157),
349             'Sacute' => chr(0x0015A),
350             'sacute' => chr(0x0015B),
351             'Scaron' => chr(0x00160),
352             'scaron' => chr(0x00161),
353             'Scedil' => chr(0x0015E),
354             'scedil' => chr(0x0015F),
355             'Scirc' => chr(0x0015C),
356             'scirc' => chr(0x0015D),
357             'Tcaron' => chr(0x00164),
358             'tcaron' => chr(0x00165),
359             'Tcedil' => chr(0x00162),
360             'tcedil' => chr(0x00163),
361             'Tstrok' => chr(0x00166),
362             'tstrok' => chr(0x00167),
363             'Ubreve' => chr(0x0016C),
364             'ubreve' => chr(0x0016D),
365             'Udblac' => chr(0x00170),
366             'udblac' => chr(0x00171),
367             'Umacr' => chr(0x0016A),
368             'umacr' => chr(0x0016B),
369             'Uogon' => chr(0x00172),
370             'uogon' => chr(0x00173),
371             'Uring' => chr(0x0016E),
372             'uring' => chr(0x0016F),
373             'Utilde' => chr(0x00168),
374             'utilde' => chr(0x00169),
375             'Wcirc' => chr(0x00174),
376             'wcirc' => chr(0x00175),
377             'Ycirc' => chr(0x00176),
378             'ycirc' => chr(0x00177),
379             'Yuml' => chr(0x00178),
380             'Zacute' => chr(0x00179),
381             'zacute' => chr(0x0017A),
382             'Zcaron' => chr(0x0017D),
383             'zcaron' => chr(0x0017E),
384             'Zdot' => chr(0x0017B),
385             'zdot' => chr(0x0017C),
386             }
387             }}
388              
389             # ISONUM
390             push @names, 'isonum';
391             { my $rv; sub isonum {
392             # Return cached value if there is one.
393 3507 100   3507 0 7978 if ($rv) { return $rv }
  3504         123087  
394 3         2309 return $rv = {
395             'amp' => chr(38),
396             'apos' => chr(0x00027),
397             'ast' => chr(0x0002A),
398             'brvbar' => chr(0x000A6),
399             'bsol' => chr(0x0005C),
400             'cent' => chr(0x000A2),
401             'colon' => chr(0x0003A),
402             'comma' => chr(0x0002C),
403             'commat' => chr(0x00040),
404             'copy' => chr(0x000A9),
405             'curren' => chr(0x000A4),
406             'darr' => chr(0x02193),
407             'deg' => chr(0x000B0),
408             'divide' => chr(0x000F7),
409             'dollar' => chr(0x00024),
410             'equals' => chr(0x0003D),
411             'excl' => chr(0x00021),
412             'frac12' => chr(0x000BD),
413             'frac14' => chr(0x000BC),
414             'frac18' => chr(0x0215B),
415             'frac34' => chr(0x000BE),
416             'frac38' => chr(0x0215C),
417             'frac58' => chr(0x0215D),
418             'frac78' => chr(0x0215E),
419             'gt' => chr(0x0003E),
420             'half' => chr(0x000BD),
421             'horbar' => chr(0x02015),
422             'hyphen' => chr(0x02010),
423             'iexcl' => chr(0x000A1),
424             'iquest' => chr(0x000BF),
425             'laquo' => chr(0x000AB),
426             'larr' => chr(0x02190),
427             'lcub' => chr(0x0007B),
428             'ldquo' => chr(0x0201C),
429             'lowbar' => chr(0x0005F),
430             'lpar' => chr(0x00028),
431             'lsqb' => chr(0x0005B),
432             'lsquo' => chr(0x02018),
433             'lt' => chr(60),
434             'micro' => chr(0x000B5),
435             'middot' => chr(0x000B7),
436             'nbsp' => chr(0x000A0),
437             'not' => chr(0x000AC),
438             'num' => chr(0x00023),
439             'ohm' => chr(0x02126),
440             'ordf' => chr(0x000AA),
441             'ordm' => chr(0x000BA),
442             'para' => chr(0x000B6),
443             'percnt' => chr(0x00025),
444             'period' => chr(0x0002E),
445             'plus' => chr(0x0002B),
446             'plusmn' => chr(0x000B1),
447             'pound' => chr(0x000A3),
448             'quest' => chr(0x0003F),
449             'quot' => chr(0x00022),
450             'raquo' => chr(0x000BB),
451             'rarr' => chr(0x02192),
452             'rcub' => chr(0x0007D),
453             'rdquo' => chr(0x0201D),
454             'reg' => chr(0x000AE),
455             'rpar' => chr(0x00029),
456             'rsqb' => chr(0x0005D),
457             'rsquo' => chr(0x02019),
458             'sect' => chr(0x000A7),
459             'semi' => chr(0x0003B),
460             'shy' => chr(0x000AD),
461             'sol' => chr(0x0002F),
462             'sung' => chr(0x0266A),
463             'sup1' => chr(0x000B9),
464             'sup2' => chr(0x000B2),
465             'sup3' => chr(0x000B3),
466             'times' => chr(0x000D7),
467             'trade' => chr(0x02122),
468             'uarr' => chr(0x02191),
469             'verbar' => chr(0x0007C),
470             'yen' => chr(0x000A5),
471             }
472             }}
473              
474             # ISOPUB
475             push @names, 'isopub';
476             { my $rv; sub isopub {
477             # Return cached value if there is one.
478 3507 100   3507 0 7270 if ($rv) { return $rv }
  3504         116099  
479 3         336 return $rv = {
480             'blank' => chr(0x02423),
481             'blk12' => chr(0x02592),
482             'blk14' => chr(0x02591),
483             'blk34' => chr(0x02593),
484             'block' => chr(0x02588),
485             'bull' => chr(0x02022),
486             'caret' => chr(0x02041),
487             'check' => chr(0x02713),
488             'cir' => chr(0x025CB),
489             'clubs' => chr(0x02663),
490             'copysr' => chr(0x02117),
491             'cross' => chr(0x02717),
492             'Dagger' => chr(0x02021),
493             'dagger' => chr(0x02020),
494             'dash' => chr(0x02010),
495             'diams' => chr(0x02666),
496             'dlcrop' => chr(0x0230D),
497             'drcrop' => chr(0x0230C),
498             'dtri' => chr(0x025BF),
499             'dtrif' => chr(0x025BE),
500             'emsp' => chr(0x02003),
501             'emsp13' => chr(0x02004),
502             'emsp14' => chr(0x02005),
503             'ensp' => chr(0x02002),
504             'female' => chr(0x02640),
505             'ffilig' => chr(0x0FB03),
506             'fflig' => chr(0x0FB00),
507             'ffllig' => chr(0x0FB04),
508             'filig' => chr(0x0FB01),
509             'flat' => chr(0x0266D),
510             'fllig' => chr(0x0FB02),
511             'frac13' => chr(0x02153),
512             'frac15' => chr(0x02155),
513             'frac16' => chr(0x02159),
514             'frac23' => chr(0x02154),
515             'frac25' => chr(0x02156),
516             'frac35' => chr(0x02157),
517             'frac45' => chr(0x02158),
518             'frac56' => chr(0x0215A),
519             'hairsp' => chr(0x0200A),
520             'hearts' => chr(0x02665),
521             'hellip' => chr(0x02026),
522             'hybull' => chr(0x02043),
523             'incare' => chr(0x02105),
524             'ldquor' => chr(0x0201E),
525             'lhblk' => chr(0x02584),
526             'loz' => chr(0x025CA),
527             'lozf' => chr(0x029EB),
528             'lsquor' => chr(0x0201A),
529             'ltri' => chr(0x025C3),
530             'ltrif' => chr(0x025C2),
531             'male' => chr(0x02642),
532             'malt' => chr(0x02720),
533             'marker' => chr(0x025AE),
534             'mdash' => chr(0x02014),
535             'mldr' => chr(0x02026),
536             'natur' => chr(0x0266E),
537             'ndash' => chr(0x02013),
538             'nldr' => chr(0x02025),
539             'numsp' => chr(0x02007),
540             'phone' => chr(0x0260E),
541             'puncsp' => chr(0x02008),
542             'rdquor' => chr(0x0201D),
543             'rect' => chr(0x025AD),
544             'rsquor' => chr(0x02019),
545             'rtri' => chr(0x025B9),
546             'rtrif' => chr(0x025B8),
547             'rx' => chr(0x0211E),
548             'sext' => chr(0x02736),
549             'sharp' => chr(0x0266F),
550             'spades' => chr(0x02660),
551             'squ' => chr(0x025A1),
552             'squf' => chr(0x025AA),
553             'star' => chr(0x02606),
554             'starf' => chr(0x02605),
555             'target' => chr(0x02316),
556             'telrec' => chr(0x02315),
557             'thinsp' => chr(0x02009),
558             'uhblk' => chr(0x02580),
559             'ulcrop' => chr(0x0230F),
560             'urcrop' => chr(0x0230E),
561             'utri' => chr(0x025B5),
562             'utrif' => chr(0x025B4),
563             'vellip' => chr(0x022EE),
564             }
565             }}
566              
567             # ISOAMSA
568             push @names, 'isoamsa';
569             { my $rv; sub isoamsa {
570             # Return cached value if there is one.
571 3507 100   3507 0 8302 if ($rv) { return $rv }
  3504         234734  
572 3         707 return $rv = {
573             'angzarr' => chr(0x0237C),
574             'cirmid' => chr(0x02AEF),
575             'cudarrl' => chr(0x02938),
576             'cudarrr' => chr(0x02935),
577             'cularr' => chr(0x021B6),
578             'cularrp' => chr(0x0293D),
579             'curarr' => chr(0x021B7),
580             'curarrm' => chr(0x0293C),
581             'Darr' => chr(0x021A1),
582             'dArr' => chr(0x021D3),
583             'ddarr' => chr(0x021CA),
584             'DDotrahd' => chr(0x02911),
585             'dfisht' => chr(0x0297F),
586             'dHar' => chr(0x02965),
587             'dharl' => chr(0x021C3),
588             'dharr' => chr(0x021C2),
589             'duarr' => chr(0x021F5),
590             'duhar' => chr(0x0296F),
591             'dzigrarr' => chr(0x027FF),
592             'erarr' => chr(0x02971),
593             'hArr' => chr(0x021D4),
594             'harr' => chr(0x02194),
595             'harrcir' => chr(0x02948),
596             'harrw' => chr(0x021AD),
597             'hoarr' => chr(0x021FF),
598             'imof' => chr(0x022B7),
599             'lAarr' => chr(0x021DA),
600             'Larr' => chr(0x0219E),
601             'larrbfs' => chr(0x0291F),
602             'larrfs' => chr(0x0291D),
603             'larrhk' => chr(0x021A9),
604             'larrlp' => chr(0x021AB),
605             'larrpl' => chr(0x02939),
606             'larrsim' => chr(0x02973),
607             'larrtl' => chr(0x021A2),
608             'lAtail' => chr(0x0291B),
609             'latail' => chr(0x02919),
610             'lBarr' => chr(0x0290E),
611             'lbarr' => chr(0x0290C),
612             'ldca' => chr(0x02936),
613             'ldrdhar' => chr(0x02967),
614             'ldrushar' => chr(0x0294B),
615             'ldsh' => chr(0x021B2),
616             'lfisht' => chr(0x0297C),
617             'lHar' => chr(0x02962),
618             'lhard' => chr(0x021BD),
619             'lharu' => chr(0x021BC),
620             'lharul' => chr(0x0296A),
621             'llarr' => chr(0x021C7),
622             'llhard' => chr(0x0296B),
623             'loarr' => chr(0x021FD),
624             'lrarr' => chr(0x021C6),
625             'lrhar' => chr(0x021CB),
626             'lrhard' => chr(0x0296D),
627             'lsh' => chr(0x021B0),
628             'lurdshar' => chr(0x0294A),
629             'luruhar' => chr(0x02966),
630             'Map' => chr(0x02905),
631             'map' => chr(0x021A6),
632             'midcir' => chr(0x02AF0),
633             'mumap' => chr(0x022B8),
634             'nearhk' => chr(0x02924),
635             'neArr' => chr(0x021D7),
636             'nearr' => chr(0x02197),
637             'nesear' => chr(0x02928),
638             'nhArr' => chr(0x021CE),
639             'nharr' => chr(0x021AE),
640             'nlArr' => chr(0x021CD),
641             'nlarr' => chr(0x0219A),
642             'nrArr' => chr(0x021CF),
643             'nrarr' => chr(0x0219B),
644             'nrarrc' => chr(0x02933).chr(0x00338),
645             'nrarrw' => chr(0x0219D).chr(0x00338),
646             'nvHarr' => chr(0x02904),
647             'nvlArr' => chr(0x02902),
648             'nvrArr' => chr(0x02903),
649             'nwarhk' => chr(0x02923),
650             'nwArr' => chr(0x021D6),
651             'nwarr' => chr(0x02196),
652             'nwnear' => chr(0x02927),
653             'olarr' => chr(0x021BA),
654             'orarr' => chr(0x021BB),
655             'origof' => chr(0x022B6),
656             'rAarr' => chr(0x021DB),
657             'Rarr' => chr(0x021A0),
658             'rarrap' => chr(0x02975),
659             'rarrbfs' => chr(0x02920),
660             'rarrc' => chr(0x02933),
661             'rarrfs' => chr(0x0291E),
662             'rarrhk' => chr(0x021AA),
663             'rarrlp' => chr(0x021AC),
664             'rarrpl' => chr(0x02945),
665             'rarrsim' => chr(0x02974),
666             'Rarrtl' => chr(0x02916),
667             'rarrtl' => chr(0x021A3),
668             'rarrw' => chr(0x0219D),
669             'rAtail' => chr(0x0291C),
670             'ratail' => chr(0x0291A),
671             'RBarr' => chr(0x02910),
672             'rBarr' => chr(0x0290F),
673             'rbarr' => chr(0x0290D),
674             'rdca' => chr(0x02937),
675             'rdldhar' => chr(0x02969),
676             'rdsh' => chr(0x021B3),
677             'rfisht' => chr(0x0297D),
678             'rHar' => chr(0x02964),
679             'rhard' => chr(0x021C1),
680             'rharu' => chr(0x021C0),
681             'rharul' => chr(0x0296C),
682             'rlarr' => chr(0x021C4),
683             'rlhar' => chr(0x021CC),
684             'roarr' => chr(0x021FE),
685             'rrarr' => chr(0x021C9),
686             'rsh' => chr(0x021B1),
687             'ruluhar' => chr(0x02968),
688             'searhk' => chr(0x02925),
689             'seArr' => chr(0x021D8),
690             'searr' => chr(0x02198),
691             'seswar' => chr(0x02929),
692             'simrarr' => chr(0x02972),
693             'slarr' => chr(0x02190),
694             'srarr' => chr(0x02192),
695             'swarhk' => chr(0x02926),
696             'swArr' => chr(0x021D9),
697             'swarr' => chr(0x02199),
698             'swnwar' => chr(0x0292A),
699             'Uarr' => chr(0x0219F),
700             'uArr' => chr(0x021D1),
701             'Uarrocir' => chr(0x02949),
702             'udarr' => chr(0x021C5),
703             'udhar' => chr(0x0296E),
704             'ufisht' => chr(0x0297E),
705             'uHar' => chr(0x02963),
706             'uharl' => chr(0x021BF),
707             'uharr' => chr(0x021BE),
708             'uuarr' => chr(0x021C8),
709             'vArr' => chr(0x021D5),
710             'varr' => chr(0x02195),
711             'xhArr' => chr(0x027FA),
712             'xharr' => chr(0x027F7),
713             'xlArr' => chr(0x027F8),
714             'xlarr' => chr(0x027F5),
715             'xmap' => chr(0x027FC),
716             'xrArr' => chr(0x027F9),
717             'xrarr' => chr(0x027F6),
718             'zigrarr' => chr(0x021DD),
719             }
720             }}
721              
722             # ISOAMSB
723             push @names, 'isoamsb';
724             { my $rv; sub isoamsb {
725             # Return cached value if there is one.
726 3507 100   3507 0 8018 if ($rv) { return $rv }
  3504         157968  
727 3         440 return $rv = {
728             'ac' => chr(0x0223E),
729             'acE' => chr(0x0223E).chr(0x00333),
730             'amalg' => chr(0x02A3F),
731             'barvee' => chr(0x022BD),
732             'Barwed' => chr(0x02306),
733             'barwed' => chr(0x02305),
734             'bsolb' => chr(0x029C5),
735             'Cap' => chr(0x022D2),
736             'capand' => chr(0x02A44),
737             'capbrcup' => chr(0x02A49),
738             'capcap' => chr(0x02A4B),
739             'capcup' => chr(0x02A47),
740             'capdot' => chr(0x02A40),
741             'caps' => chr(0x02229).chr(0x0FE00),
742             'ccaps' => chr(0x02A4D),
743             'ccups' => chr(0x02A4C),
744             'ccupssm' => chr(0x02A50),
745             'coprod' => chr(0x02210),
746             'Cup' => chr(0x022D3),
747             'cupbrcap' => chr(0x02A48),
748             'cupcap' => chr(0x02A46),
749             'cupcup' => chr(0x02A4A),
750             'cupdot' => chr(0x0228D),
751             'cupor' => chr(0x02A45),
752             'cups' => chr(0x0222A).chr(0x0FE00),
753             'cuvee' => chr(0x022CE),
754             'cuwed' => chr(0x022CF),
755             'Dagger' => chr(0x02021),
756             'dagger' => chr(0x02020),
757             'diam' => chr(0x022C4),
758             'divonx' => chr(0x022C7),
759             'eplus' => chr(0x02A71),
760             'hercon' => chr(0x022B9),
761             'intcal' => chr(0x022BA),
762             'iprod' => chr(0x02A3C),
763             'loplus' => chr(0x02A2D),
764             'lotimes' => chr(0x02A34),
765             'lthree' => chr(0x022CB),
766             'ltimes' => chr(0x022C9),
767             'midast' => chr(0x0002A),
768             'minusb' => chr(0x0229F),
769             'minusd' => chr(0x02238),
770             'minusdu' => chr(0x02A2A),
771             'ncap' => chr(0x02A43),
772             'ncup' => chr(0x02A42),
773             'oast' => chr(0x0229B),
774             'ocir' => chr(0x0229A),
775             'odash' => chr(0x0229D),
776             'odiv' => chr(0x02A38),
777             'odot' => chr(0x02299),
778             'odsold' => chr(0x029BC),
779             'ofcir' => chr(0x029BF),
780             'ogt' => chr(0x029C1),
781             'ohbar' => chr(0x029B5),
782             'olcir' => chr(0x029BE),
783             'olt' => chr(0x029C0),
784             'omid' => chr(0x029B6),
785             'ominus' => chr(0x02296),
786             'opar' => chr(0x029B7),
787             'operp' => chr(0x029B9),
788             'oplus' => chr(0x02295),
789             'osol' => chr(0x02298),
790             'Otimes' => chr(0x02A37),
791             'otimes' => chr(0x02297),
792             'otimesas' => chr(0x02A36),
793             'ovbar' => chr(0x0233D),
794             'plusacir' => chr(0x02A23),
795             'plusb' => chr(0x0229E),
796             'pluscir' => chr(0x02A22),
797             'plusdo' => chr(0x02214),
798             'plusdu' => chr(0x02A25),
799             'pluse' => chr(0x02A72),
800             'plussim' => chr(0x02A26),
801             'plustwo' => chr(0x02A27),
802             'prod' => chr(0x0220F),
803             'race' => chr(0x029DA),
804             'roplus' => chr(0x02A2E),
805             'rotimes' => chr(0x02A35),
806             'rthree' => chr(0x022CC),
807             'rtimes' => chr(0x022CA),
808             'sdot' => chr(0x022C5),
809             'sdotb' => chr(0x022A1),
810             'setmn' => chr(0x02216),
811             'simplus' => chr(0x02A24),
812             'smashp' => chr(0x02A33),
813             'solb' => chr(0x029C4),
814             'sqcap' => chr(0x02293),
815             'sqcaps' => chr(0x02293).chr(0x0FE00),
816             'sqcup' => chr(0x02294),
817             'sqcups' => chr(0x02294).chr(0x0FE00),
818             'ssetmn' => chr(0x02216),
819             'sstarf' => chr(0x022C6),
820             'subdot' => chr(0x02ABD),
821             'sum' => chr(0x02211),
822             'supdot' => chr(0x02ABE),
823             'timesb' => chr(0x022A0),
824             'timesbar' => chr(0x02A31),
825             'timesd' => chr(0x02A30),
826             'tridot' => chr(0x025EC),
827             'triminus' => chr(0x02A3A),
828             'triplus' => chr(0x02A39),
829             'trisb' => chr(0x029CD),
830             'tritime' => chr(0x02A3B),
831             'uplus' => chr(0x0228E),
832             'veebar' => chr(0x022BB),
833             'wedbar' => chr(0x02A5F),
834             'wreath' => chr(0x02240),
835             'xcap' => chr(0x022C2),
836             'xcirc' => chr(0x025EF),
837             'xcup' => chr(0x022C3),
838             'xdtri' => chr(0x025BD),
839             'xodot' => chr(0x02A00),
840             'xoplus' => chr(0x02A01),
841             'xotime' => chr(0x02A02),
842             'xsqcup' => chr(0x02A06),
843             'xuplus' => chr(0x02A04),
844             'xutri' => chr(0x025B3),
845             'xvee' => chr(0x022C1),
846             'xwedge' => chr(0x022C0),
847             }
848             }}
849              
850             # ISOAMSC
851             push @names, 'isoamsc';
852             { my $rv; sub isoamsc {
853             # Return cached value if there is one.
854 3507 100   3507 0 8195 if ($rv) { return $rv }
  3504         35612  
855 3         112 return $rv = {
856             'dlcorn' => chr(0x0231E),
857             'drcorn' => chr(0x0231F),
858             'gtlPar' => chr(0x02995),
859             'langd' => chr(0x02991),
860             'lbrke' => chr(0x0298B),
861             'lbrksld' => chr(0x0298F),
862             'lbrkslu' => chr(0x0298D),
863             'lceil' => chr(0x02308),
864             'lfloor' => chr(0x0230A),
865             'lmoust' => chr(0x023B0),
866             'lparlt' => chr(0x02993),
867             'ltrPar' => chr(0x02996),
868             'rangd' => chr(0x02992),
869             'rbrke' => chr(0x0298C),
870             'rbrksld' => chr(0x0298E),
871             'rbrkslu' => chr(0x02990),
872             'rceil' => chr(0x02309),
873             'rfloor' => chr(0x0230B),
874             'rmoust' => chr(0x023B1),
875             'rpargt' => chr(0x02994),
876             'ulcorn' => chr(0x0231C),
877             'urcorn' => chr(0x0231D),
878             }
879             }}
880              
881             # ISOAMSN
882             push @names, 'isoamsn';
883             { my $rv; sub isoamsn {
884             # Return cached value if there is one.
885 3507 100   3507 0 7786 if ($rv) { return $rv }
  3504         110568  
886 3         551 return $rv = {
887             'gnap' => chr(0x02A8A),
888             'gnE' => chr(0x02269),
889             'gne' => chr(0x02A88),
890             'gnsim' => chr(0x022E7),
891             'gvnE' => chr(0x02269).chr(0x0FE00),
892             'lnap' => chr(0x02A89),
893             'lnE' => chr(0x02268),
894             'lne' => chr(0x02A87),
895             'lnsim' => chr(0x022E6),
896             'lvnE' => chr(0x02268).chr(0x0FE00),
897             'nap' => chr(0x02249),
898             'napE' => chr(0x02A70).chr(0x00338),
899             'napid' => chr(0x0224B).chr(0x00338),
900             'ncong' => chr(0x02247),
901             'ncongdot' => chr(0x02A6D).chr(0x00338),
902             'nequiv' => chr(0x02262),
903             'ngE' => chr(0x02267).chr(0x00338),
904             'nge' => chr(0x02271),
905             'nges' => chr(0x02A7E).chr(0x00338),
906             'nGg' => chr(0x022D9).chr(0x00338),
907             'ngsim' => chr(0x02275),
908             'nGt' => chr(0x0226B).chr(0x020D2),
909             'ngt' => chr(0x0226F),
910             'nGtv' => chr(0x0226B).chr(0x00338),
911             'nlE' => chr(0x02266).chr(0x00338),
912             'nle' => chr(0x02270),
913             'nles' => chr(0x02A7D).chr(0x00338),
914             'nLl' => chr(0x022D8).chr(0x00338),
915             'nlsim' => chr(0x02274),
916             'nLt' => chr(0x0226A).chr(0x020D2),
917             'nlt' => chr(0x0226E),
918             'nltri' => chr(0x022EA),
919             'nltrie' => chr(0x022EC),
920             'nLtv' => chr(0x0226A).chr(0x00338),
921             'nmid' => chr(0x02224),
922             'npar' => chr(0x02226),
923             'npr' => chr(0x02280),
924             'nprcue' => chr(0x022E0),
925             'npre' => chr(0x02AAF).chr(0x00338),
926             'nrtri' => chr(0x022EB),
927             'nrtrie' => chr(0x022ED),
928             'nsc' => chr(0x02281),
929             'nsccue' => chr(0x022E1),
930             'nsce' => chr(0x02AB0).chr(0x00338),
931             'nsim' => chr(0x02241),
932             'nsime' => chr(0x02244),
933             'nsmid' => chr(0x02224),
934             'nspar' => chr(0x02226),
935             'nsqsube' => chr(0x022E2),
936             'nsqsupe' => chr(0x022E3),
937             'nsub' => chr(0x02284),
938             'nsubE' => chr(0x02AC5).chr(0x00338),
939             'nsube' => chr(0x02288),
940             'nsup' => chr(0x02285),
941             'nsupE' => chr(0x02AC6).chr(0x00338),
942             'nsupe' => chr(0x02289),
943             'ntgl' => chr(0x02279),
944             'ntlg' => chr(0x02278),
945             'nvap' => chr(0x0224D).chr(0x020D2),
946             'nVDash' => chr(0x022AF),
947             'nVdash' => chr(0x022AE),
948             'nvDash' => chr(0x022AD),
949             'nvdash' => chr(0x022AC),
950             'nvge' => chr(0x02265).chr(0x020D2),
951             'nvgt' => chr(0x0003E).chr(0x020D2),
952             'nvle' => chr(0x02264).chr(0x020D2),
953             'nvlt' => chr(0x0003C).chr(0x020D2),
954             'nvltrie' => chr(0x022B4).chr(0x020D2),
955             'nvrtrie' => chr(0x022B5).chr(0x020D2),
956             'nvsim' => chr(0x0223C).chr(0x020D2),
957             'parsim' => chr(0x02AF3),
958             'prnap' => chr(0x02AB9),
959             'prnE' => chr(0x02AB5),
960             'prnsim' => chr(0x022E8),
961             'rnmid' => chr(0x02AEE),
962             'scnap' => chr(0x02ABA),
963             'scnE' => chr(0x02AB6),
964             'scnsim' => chr(0x022E9),
965             'simne' => chr(0x02246),
966             'solbar' => chr(0x0233F),
967             'subnE' => chr(0x02ACB),
968             'subne' => chr(0x0228A),
969             'supnE' => chr(0x02ACC),
970             'supne' => chr(0x0228B),
971             'vnsub' => chr(0x02282).chr(0x020D2),
972             'vnsup' => chr(0x02283).chr(0x020D2),
973             'vsubnE' => chr(0x02ACB).chr(0x0FE00),
974             'vsubne' => chr(0x0228A).chr(0x0FE00),
975             'vsupnE' => chr(0x02ACC).chr(0x0FE00),
976             'vsupne' => chr(0x0228B).chr(0x0FE00),
977             }
978             }}
979              
980             # ISOAMSO
981             push @names, 'isoamso';
982             { my $rv; sub isoamso {
983             # Return cached value if there is one.
984 3507 100   3507 0 7305 if ($rv) { return $rv }
  3504         68509  
985 3         211 return $rv = {
986             'ang' => chr(0x02220),
987             'ange' => chr(0x029A4),
988             'angmsd' => chr(0x02221),
989             'angmsdaa' => chr(0x029A8),
990             'angmsdab' => chr(0x029A9),
991             'angmsdac' => chr(0x029AA),
992             'angmsdad' => chr(0x029AB),
993             'angmsdae' => chr(0x029AC),
994             'angmsdaf' => chr(0x029AD),
995             'angmsdag' => chr(0x029AE),
996             'angmsdah' => chr(0x029AF),
997             'angrtvb' => chr(0x022BE),
998             'angrtvbd' => chr(0x0299D),
999             'bbrk' => chr(0x023B5),
1000             'bbrktbrk' => chr(0x023B6),
1001             'bemptyv' => chr(0x029B0),
1002             'beth' => chr(0x02136),
1003             'boxbox' => chr(0x029C9),
1004             'bprime' => chr(0x02035),
1005             'bsemi' => chr(0x0204F),
1006             'cemptyv' => chr(0x029B2),
1007             'cirE' => chr(0x029C3),
1008             'cirscir' => chr(0x029C2),
1009             'comp' => chr(0x02201),
1010             'daleth' => chr(0x02138),
1011             'demptyv' => chr(0x029B1),
1012             'ell' => chr(0x02113),
1013             'empty' => chr(0x02205),
1014             'emptyv' => chr(0x02205),
1015             'gimel' => chr(0x02137),
1016             'iiota' => chr(0x02129),
1017             'image' => chr(0x02111),
1018             'imath' => chr(0x00131),
1019             'jmath' => chr(0x0006A),
1020             'laemptyv' => chr(0x029B4),
1021             'lltri' => chr(0x025FA),
1022             'lrtri' => chr(0x022BF),
1023             'mho' => chr(0x02127),
1024             'nang' => chr(0x02220).chr(0x020D2),
1025             'nexist' => chr(0x02204),
1026             'oS' => chr(0x024C8),
1027             'planck' => chr(0x0210F),
1028             'plankv' => chr(0x0210F),
1029             'raemptyv' => chr(0x029B3),
1030             'range' => chr(0x029A5),
1031             'real' => chr(0x0211C),
1032             'tbrk' => chr(0x023B4),
1033             'trpezium' => chr(0x0FFFD),
1034             'ultri' => chr(0x025F8),
1035             'urtri' => chr(0x025F9),
1036             'vzigzag' => chr(0x0299A),
1037             'weierp' => chr(0x02118),
1038             }
1039             }}
1040              
1041             # ISOAMSR
1042             push @names, 'isoamsr';
1043             { my $rv; sub isoamsr {
1044             # Return cached value if there is one.
1045 3507 100   3507 0 6868 if ($rv) { return $rv }
  3504         240489  
1046 3         845 return $rv = {
1047             'apE' => chr(0x02A70),
1048             'ape' => chr(0x0224A),
1049             'apid' => chr(0x0224B),
1050             'asymp' => chr(0x02248),
1051             'Barv' => chr(0x02AE7),
1052             'bcong' => chr(0x0224C),
1053             'bepsi' => chr(0x003F6),
1054             'bowtie' => chr(0x022C8),
1055             'bsim' => chr(0x0223D),
1056             'bsime' => chr(0x022CD),
1057             'bsolhsub' => chr(0x0005C).chr(0x02282),
1058             'bump' => chr(0x0224E),
1059             'bumpE' => chr(0x02AAE),
1060             'bumpe' => chr(0x0224F),
1061             'cire' => chr(0x02257),
1062             'Colon' => chr(0x02237),
1063             'Colone' => chr(0x02A74),
1064             'colone' => chr(0x02254),
1065             'congdot' => chr(0x02A6D),
1066             'csub' => chr(0x02ACF),
1067             'csube' => chr(0x02AD1),
1068             'csup' => chr(0x02AD0),
1069             'csupe' => chr(0x02AD2),
1070             'cuepr' => chr(0x022DE),
1071             'cuesc' => chr(0x022DF),
1072             'Dashv' => chr(0x02AE4),
1073             'dashv' => chr(0x022A3),
1074             'easter' => chr(0x02A6E),
1075             'ecir' => chr(0x02256),
1076             'ecolon' => chr(0x02255),
1077             'eDDot' => chr(0x02A77),
1078             'eDot' => chr(0x02251),
1079             'efDot' => chr(0x02252),
1080             'eg' => chr(0x02A9A),
1081             'egs' => chr(0x02A96),
1082             'egsdot' => chr(0x02A98),
1083             'el' => chr(0x02A99),
1084             'els' => chr(0x02A95),
1085             'elsdot' => chr(0x02A97),
1086             'equest' => chr(0x0225F),
1087             'equivDD' => chr(0x02A78),
1088             'erDot' => chr(0x02253),
1089             'esdot' => chr(0x02250),
1090             'Esim' => chr(0x02A73),
1091             'esim' => chr(0x02242),
1092             'fork' => chr(0x022D4),
1093             'forkv' => chr(0x02AD9),
1094             'frown' => chr(0x02322),
1095             'gap' => chr(0x02A86),
1096             'gE' => chr(0x02267),
1097             'gEl' => chr(0x02A8C),
1098             'gel' => chr(0x022DB),
1099             'ges' => chr(0x02A7E),
1100             'gescc' => chr(0x02AA9),
1101             'gesdot' => chr(0x02A80),
1102             'gesdoto' => chr(0x02A82),
1103             'gesdotol' => chr(0x02A84),
1104             'gesl' => chr(0x022DB).chr(0x0FE00),
1105             'gesles' => chr(0x02A94),
1106             'Gg' => chr(0x022D9),
1107             'gl' => chr(0x02277),
1108             'gla' => chr(0x02AA5),
1109             'glE' => chr(0x02A92),
1110             'glj' => chr(0x02AA4),
1111             'gsim' => chr(0x02273),
1112             'gsime' => chr(0x02A8E),
1113             'gsiml' => chr(0x02A90),
1114             'Gt' => chr(0x0226B),
1115             'gtcc' => chr(0x02AA7),
1116             'gtcir' => chr(0x02A7A),
1117             'gtdot' => chr(0x022D7),
1118             'gtquest' => chr(0x02A7C),
1119             'gtrarr' => chr(0x02978),
1120             'homtht' => chr(0x0223B),
1121             'lap' => chr(0x02A85),
1122             'lat' => chr(0x02AAB),
1123             'late' => chr(0x02AAD),
1124             'lates' => chr(0x02AAD).chr(0x0FE00),
1125             'lE' => chr(0x02266),
1126             'lEg' => chr(0x02A8B),
1127             'leg' => chr(0x022DA),
1128             'les' => chr(0x02A7D),
1129             'lescc' => chr(0x02AA8),
1130             'lesdot' => chr(0x02A7F),
1131             'lesdoto' => chr(0x02A81),
1132             'lesdotor' => chr(0x02A83),
1133             'lesg' => chr(0x022DA).chr(0x0FE00),
1134             'lesges' => chr(0x02A93),
1135             'lg' => chr(0x02276),
1136             'lgE' => chr(0x02A91),
1137             'Ll' => chr(0x022D8),
1138             'lsim' => chr(0x02272),
1139             'lsime' => chr(0x02A8D),
1140             'lsimg' => chr(0x02A8F),
1141             'Lt' => chr(0x0226A),
1142             'ltcc' => chr(0x02AA6),
1143             'ltcir' => chr(0x02A79),
1144             'ltdot' => chr(0x022D6),
1145             'ltlarr' => chr(0x02976),
1146             'ltquest' => chr(0x02A7B),
1147             'ltrie' => chr(0x022B4),
1148             'mcomma' => chr(0x02A29),
1149             'mDDot' => chr(0x0223A),
1150             'mid' => chr(0x02223),
1151             'mlcp' => chr(0x02ADB),
1152             'models' => chr(0x022A7),
1153             'mstpos' => chr(0x0223E),
1154             'Pr' => chr(0x02ABB),
1155             'pr' => chr(0x0227A),
1156             'prap' => chr(0x02AB7),
1157             'prcue' => chr(0x0227C),
1158             'prE' => chr(0x02AB3),
1159             'pre' => chr(0x02AAF),
1160             'prsim' => chr(0x0227E),
1161             'prurel' => chr(0x022B0),
1162             'ratio' => chr(0x02236),
1163             'rtrie' => chr(0x022B5),
1164             'rtriltri' => chr(0x029CE),
1165             'Sc' => chr(0x02ABC),
1166             'sc' => chr(0x0227B),
1167             'scap' => chr(0x02AB8),
1168             'sccue' => chr(0x0227D),
1169             'scE' => chr(0x02AB4),
1170             'sce' => chr(0x02AB0),
1171             'scsim' => chr(0x0227F),
1172             'sdote' => chr(0x02A66),
1173             'sfrown' => chr(0x02322),
1174             'simg' => chr(0x02A9E),
1175             'simgE' => chr(0x02AA0),
1176             'siml' => chr(0x02A9D),
1177             'simlE' => chr(0x02A9F),
1178             'smid' => chr(0x02223),
1179             'smile' => chr(0x02323),
1180             'smt' => chr(0x02AAA),
1181             'smte' => chr(0x02AAC),
1182             'smtes' => chr(0x02AAC).chr(0x0FE00),
1183             'spar' => chr(0x02225),
1184             'sqsub' => chr(0x0228F),
1185             'sqsube' => chr(0x02291),
1186             'sqsup' => chr(0x02290),
1187             'sqsupe' => chr(0x02292),
1188             'ssmile' => chr(0x02323),
1189             'Sub' => chr(0x022D0),
1190             'subE' => chr(0x02AC5),
1191             'subedot' => chr(0x02AC3),
1192             'submult' => chr(0x02AC1),
1193             'subplus' => chr(0x02ABF),
1194             'subrarr' => chr(0x02979),
1195             'subsim' => chr(0x02AC7),
1196             'subsub' => chr(0x02AD5),
1197             'subsup' => chr(0x02AD3),
1198             'Sup' => chr(0x022D1),
1199             'supdsub' => chr(0x02AD8),
1200             'supE' => chr(0x02AC6),
1201             'supedot' => chr(0x02AC4),
1202             'suphsol' => chr(0x02283).chr(0x0002F),
1203             'suphsub' => chr(0x02AD7),
1204             'suplarr' => chr(0x0297B),
1205             'supmult' => chr(0x02AC2),
1206             'supplus' => chr(0x02AC0),
1207             'supsim' => chr(0x02AC8),
1208             'supsub' => chr(0x02AD4),
1209             'supsup' => chr(0x02AD6),
1210             'thkap' => chr(0x02248),
1211             'thksim' => chr(0x0223C),
1212             'topfork' => chr(0x02ADA),
1213             'trie' => chr(0x0225C),
1214             'twixt' => chr(0x0226C),
1215             'Vbar' => chr(0x02AEB),
1216             'vBar' => chr(0x02AE8),
1217             'vBarv' => chr(0x02AE9),
1218             'VDash' => chr(0x022AB),
1219             'Vdash' => chr(0x022A9),
1220             'vDash' => chr(0x022A8),
1221             'vdash' => chr(0x022A2),
1222             'Vdashl' => chr(0x02AE6),
1223             'vltri' => chr(0x022B2),
1224             'vprop' => chr(0x0221D),
1225             'vrtri' => chr(0x022B3),
1226             'Vvdash' => chr(0x022AA),
1227             }
1228             }}
1229              
1230             # ISOGRK1
1231             push @names, 'isogrk1';
1232             { my $rv; sub isogrk1 {
1233             # Return cached value if there is one.
1234 3507 100   3507 0 7271 if ($rv) { return $rv }
  3504         63749  
1235 3         281 return $rv = {
1236             'Agr' => chr(0x00391),
1237             'agr' => chr(0x003B1),
1238             'Bgr' => chr(0x00392),
1239             'bgr' => chr(0x003B2),
1240             'Dgr' => chr(0x00394),
1241             'dgr' => chr(0x003B4),
1242             'EEgr' => chr(0x00397),
1243             'eegr' => chr(0x003B7),
1244             'Egr' => chr(0x00395),
1245             'egr' => chr(0x003B5),
1246             'Ggr' => chr(0x00393),
1247             'ggr' => chr(0x003B3),
1248             'Igr' => chr(0x00399),
1249             'igr' => chr(0x003B9),
1250             'Kgr' => chr(0x0039A),
1251             'kgr' => chr(0x003BA),
1252             'KHgr' => chr(0x003A7),
1253             'khgr' => chr(0x003C7),
1254             'Lgr' => chr(0x0039B),
1255             'lgr' => chr(0x003BB),
1256             'Mgr' => chr(0x0039C),
1257             'mgr' => chr(0x003BC),
1258             'Ngr' => chr(0x0039D),
1259             'ngr' => chr(0x003BD),
1260             'Ogr' => chr(0x0039F),
1261             'ogr' => chr(0x003BF),
1262             'OHgr' => chr(0x003A9),
1263             'ohgr' => chr(0x003C9),
1264             'Pgr' => chr(0x003A0),
1265             'pgr' => chr(0x003C0),
1266             'PHgr' => chr(0x003A6),
1267             'phgr' => chr(0x003C6),
1268             'PSgr' => chr(0x003A8),
1269             'psgr' => chr(0x003C8),
1270             'Rgr' => chr(0x003A1),
1271             'rgr' => chr(0x003C1),
1272             'sfgr' => chr(0x003C2),
1273             'Sgr' => chr(0x003A3),
1274             'sgr' => chr(0x003C3),
1275             'Tgr' => chr(0x003A4),
1276             'tgr' => chr(0x003C4),
1277             'THgr' => chr(0x00398),
1278             'thgr' => chr(0x003B8),
1279             'Ugr' => chr(0x003A5),
1280             'ugr' => chr(0x003C5),
1281             'Xgr' => chr(0x0039E),
1282             'xgr' => chr(0x003BE),
1283             'Zgr' => chr(0x00396),
1284             'zgr' => chr(0x003B6),
1285             }
1286             }}
1287              
1288             # ISOGRK2
1289             push @names, 'isogrk2';
1290             { my $rv; sub isogrk2 {
1291             # Return cached value if there is one.
1292 3507 100   3507 0 7698 if ($rv) { return $rv }
  3504         31164  
1293 3         75 return $rv = {
1294             'Aacgr' => chr(0x00386),
1295             'aacgr' => chr(0x003AC),
1296             'Eacgr' => chr(0x00388),
1297             'eacgr' => chr(0x003AD),
1298             'EEacgr' => chr(0x00389),
1299             'eeacgr' => chr(0x003AE),
1300             'Iacgr' => chr(0x0038A),
1301             'iacgr' => chr(0x003AF),
1302             'idiagr' => chr(0x00390),
1303             'Idigr' => chr(0x003AA),
1304             'idigr' => chr(0x003CA),
1305             'Oacgr' => chr(0x0038C),
1306             'oacgr' => chr(0x003CC),
1307             'OHacgr' => chr(0x0038F),
1308             'ohacgr' => chr(0x003CE),
1309             'Uacgr' => chr(0x0038E),
1310             'uacgr' => chr(0x003CD),
1311             'udiagr' => chr(0x003B0),
1312             'Udigr' => chr(0x003AB),
1313             'udigr' => chr(0x003CB),
1314             }
1315             }}
1316              
1317             # ISOGRK3
1318             push @names, 'isogrk3';
1319             { my $rv; sub isogrk3 {
1320             # Return cached value if there is one.
1321 3507 100   3507 0 6985 if ($rv) { return $rv }
  3504         66631  
1322 3         169 return $rv = {
1323             'alpha' => chr(0x003B1),
1324             'beta' => chr(0x003B2),
1325             'chi' => chr(0x003C7),
1326             'Delta' => chr(0x00394),
1327             'delta' => chr(0x003B4),
1328             'epsi' => chr(0x003F5),
1329             'epsiv' => chr(0x003B5),
1330             'eta' => chr(0x003B7),
1331             'Gamma' => chr(0x00393),
1332             'gamma' => chr(0x003B3),
1333             'Gammad' => chr(0x003DC),
1334             'gammad' => chr(0x003DD),
1335             'iota' => chr(0x003B9),
1336             'kappa' => chr(0x003BA),
1337             'kappav' => chr(0x003F0),
1338             'Lambda' => chr(0x0039B),
1339             'lambda' => chr(0x003BB),
1340             'mu' => chr(0x003BC),
1341             'nu' => chr(0x003BD),
1342             'Omega' => chr(0x003A9),
1343             'omega' => chr(0x003C9),
1344             'Phi' => chr(0x003A6),
1345             'phi' => chr(0x003D5),
1346             'phiv' => chr(0x003C6),
1347             'Pi' => chr(0x003A0),
1348             'pi' => chr(0x003C0),
1349             'piv' => chr(0x003D6),
1350             'Psi' => chr(0x003A8),
1351             'psi' => chr(0x003C8),
1352             'rho' => chr(0x003C1),
1353             'rhov' => chr(0x003F1),
1354             'Sigma' => chr(0x003A3),
1355             'sigma' => chr(0x003C3),
1356             'sigmav' => chr(0x003C2),
1357             'tau' => chr(0x003C4),
1358             'Theta' => chr(0x00398),
1359             'theta' => chr(0x003B8),
1360             'thetav' => chr(0x003D1),
1361             'Upsi' => chr(0x003D2),
1362             'upsi' => chr(0x003C5),
1363             'Xi' => chr(0x0039E),
1364             'xi' => chr(0x003BE),
1365             'zeta' => chr(0x003B6),
1366             }
1367             }}
1368              
1369             # ISOGRK4
1370             push @names, 'isogrk4';
1371             { my $rv; sub isogrk4 {
1372             # Return cached value if there is one.
1373 3507 100   3507 0 7046 if ($rv) { return $rv }
  3504         6515  
1374 3         11 return $rv = {
1375             }
1376             }}
1377              
1378             # ISOMFRK
1379             push @names, 'isomfrk';
1380             { my $rv; sub isomfrk {
1381             # Return cached value if there is one.
1382 3507 100   3507 0 7345 if ($rv) { return $rv }
  3504         68178  
1383 3         189 return $rv = {
1384             'Afr' => chr(0x1D504),
1385             'afr' => chr(0x1D51E),
1386             'Bfr' => chr(0x1D505),
1387             'bfr' => chr(0x1D51F),
1388             'Cfr' => chr(0x0212D),
1389             'cfr' => chr(0x1D520),
1390             'Dfr' => chr(0x1D507),
1391             'dfr' => chr(0x1D521),
1392             'Efr' => chr(0x1D508),
1393             'efr' => chr(0x1D522),
1394             'Ffr' => chr(0x1D509),
1395             'ffr' => chr(0x1D523),
1396             'Gfr' => chr(0x1D50A),
1397             'gfr' => chr(0x1D524),
1398             'Hfr' => chr(0x0210C),
1399             'hfr' => chr(0x1D525),
1400             'Ifr' => chr(0x02111),
1401             'ifr' => chr(0x1D526),
1402             'Jfr' => chr(0x1D50D),
1403             'jfr' => chr(0x1D527),
1404             'Kfr' => chr(0x1D50E),
1405             'kfr' => chr(0x1D528),
1406             'Lfr' => chr(0x1D50F),
1407             'lfr' => chr(0x1D529),
1408             'Mfr' => chr(0x1D510),
1409             'mfr' => chr(0x1D52A),
1410             'Nfr' => chr(0x1D511),
1411             'nfr' => chr(0x1D52B),
1412             'Ofr' => chr(0x1D512),
1413             'ofr' => chr(0x1D52C),
1414             'Pfr' => chr(0x1D513),
1415             'pfr' => chr(0x1D52D),
1416             'Qfr' => chr(0x1D514),
1417             'qfr' => chr(0x1D52E),
1418             'Rfr' => chr(0x0211C),
1419             'rfr' => chr(0x1D52F),
1420             'Sfr' => chr(0x1D516),
1421             'sfr' => chr(0x1D530),
1422             'Tfr' => chr(0x1D517),
1423             'tfr' => chr(0x1D531),
1424             'Ufr' => chr(0x1D518),
1425             'ufr' => chr(0x1D532),
1426             'Vfr' => chr(0x1D519),
1427             'vfr' => chr(0x1D533),
1428             'Wfr' => chr(0x1D51A),
1429             'wfr' => chr(0x1D534),
1430             'Xfr' => chr(0x1D51B),
1431             'xfr' => chr(0x1D535),
1432             'Yfr' => chr(0x1D51C),
1433             'yfr' => chr(0x1D536),
1434             'Zfr' => chr(0x02128),
1435             'zfr' => chr(0x1D537),
1436             }
1437             }}
1438              
1439             # ISOMOPF
1440             push @names, 'isomopf';
1441             { my $rv; sub isomopf {
1442             # Return cached value if there is one.
1443 3507 100   3507 0 6874 if ($rv) { return $rv }
  3504         40839  
1444 3         121 return $rv = {
1445             'Aopf' => chr(0x1D538),
1446             'Bopf' => chr(0x1D539),
1447             'Copf' => chr(0x02102),
1448             'Dopf' => chr(0x1D53B),
1449             'Eopf' => chr(0x1D53C),
1450             'Fopf' => chr(0x1D53D),
1451             'Gopf' => chr(0x1D53E),
1452             'Hopf' => chr(0x0210D),
1453             'Iopf' => chr(0x1D540),
1454             'Jopf' => chr(0x1D541),
1455             'Kopf' => chr(0x1D542),
1456             'Lopf' => chr(0x1D543),
1457             'Mopf' => chr(0x1D544),
1458             'Nopf' => chr(0x02115),
1459             'Oopf' => chr(0x1D546),
1460             'Popf' => chr(0x02119),
1461             'Qopf' => chr(0x0211A),
1462             'Ropf' => chr(0x0211D),
1463             'Sopf' => chr(0x1D54A),
1464             'Topf' => chr(0x1D54B),
1465             'Uopf' => chr(0x1D54C),
1466             'Vopf' => chr(0x1D54D),
1467             'Wopf' => chr(0x1D54E),
1468             'Xopf' => chr(0x1D54F),
1469             'Yopf' => chr(0x1D550),
1470             'Zopf' => chr(0x02124),
1471             }
1472             }}
1473              
1474             # ISOMSCR
1475             push @names, 'isomscr';
1476             { my $rv; sub isomscr {
1477             # Return cached value if there is one.
1478 3507 100   3507 0 7192 if ($rv) { return $rv }
  3504         71319  
1479 3         203 return $rv = {
1480             'Ascr' => chr(0x1D49C),
1481             'ascr' => chr(0x1D4B6),
1482             'Bscr' => chr(0x0212C),
1483             'bscr' => chr(0x1D4B7),
1484             'Cscr' => chr(0x1D49E),
1485             'cscr' => chr(0x1D4B8),
1486             'Dscr' => chr(0x1D49F),
1487             'dscr' => chr(0x1D4B9),
1488             'Escr' => chr(0x02130),
1489             'escr' => chr(0x0212F),
1490             'Fscr' => chr(0x02131),
1491             'fscr' => chr(0x1D4BB),
1492             'Gscr' => chr(0x1D4A2),
1493             'gscr' => chr(0x0210A),
1494             'Hscr' => chr(0x0210B),
1495             'hscr' => chr(0x1D4BD),
1496             'Iscr' => chr(0x02110),
1497             'iscr' => chr(0x1D4BE),
1498             'Jscr' => chr(0x1D4A5),
1499             'jscr' => chr(0x1D4BF),
1500             'Kscr' => chr(0x1D4A6),
1501             'kscr' => chr(0x1D4C0),
1502             'Lscr' => chr(0x02112),
1503             'lscr' => chr(0x1D4C1),
1504             'Mscr' => chr(0x02133),
1505             'mscr' => chr(0x1D4C2),
1506             'Nscr' => chr(0x1D4A9),
1507             'nscr' => chr(0x1D4C3),
1508             'Oscr' => chr(0x1D4AA),
1509             'oscr' => chr(0x02134),
1510             'Pscr' => chr(0x1D4AB),
1511             'pscr' => chr(0x1D4C5),
1512             'Qscr' => chr(0x1D4AC),
1513             'qscr' => chr(0x1D4C6),
1514             'Rscr' => chr(0x0211B),
1515             'rscr' => chr(0x1D4C7),
1516             'Sscr' => chr(0x1D4AE),
1517             'sscr' => chr(0x1D4C8),
1518             'Tscr' => chr(0x1D4AF),
1519             'tscr' => chr(0x1D4C9),
1520             'Uscr' => chr(0x1D4B0),
1521             'uscr' => chr(0x1D4CA),
1522             'Vscr' => chr(0x1D4B1),
1523             'vscr' => chr(0x1D4CB),
1524             'Wscr' => chr(0x1D4B2),
1525             'wscr' => chr(0x1D4CC),
1526             'Xscr' => chr(0x1D4B3),
1527             'xscr' => chr(0x1D4CD),
1528             'Yscr' => chr(0x1D4B4),
1529             'yscr' => chr(0x1D4CE),
1530             'Zscr' => chr(0x1D4B5),
1531             'zscr' => chr(0x1D4CF),
1532             }
1533             }}
1534              
1535             # ISOTECH
1536             push @names, 'isotech';
1537             { my $rv; sub isotech {
1538             # Return cached value if there is one.
1539 3507 100   3507 0 7181 if ($rv) { return $rv }
  3504         1726970  
1540 3         1860 return $rv = {
1541             'acd' => chr(0x0223F),
1542             'aleph' => chr(0x02135),
1543             'And' => chr(0x02A53),
1544             'and' => chr(0x02227),
1545             'andand' => chr(0x02A55),
1546             'andd' => chr(0x02A5C),
1547             'andslope' => chr(0x02A58),
1548             'andv' => chr(0x02A5A),
1549             'angrt' => chr(0x0221F),
1550             'angsph' => chr(0x02222),
1551             'angst' => chr(0x0212B),
1552             'ap' => chr(0x02248),
1553             'apacir' => chr(0x02A6F),
1554             'awconint' => chr(0x02233),
1555             'awint' => chr(0x02A11),
1556             'becaus' => chr(0x02235),
1557             'bernou' => chr(0x0212C),
1558             'bne' => chr(0x0003D).chr(0x020E5),
1559             'bnequiv' => chr(0x02261).chr(0x020E5),
1560             'bNot' => chr(0x02AED),
1561             'bnot' => chr(0x02310),
1562             'bottom' => chr(0x022A5),
1563             'cap' => chr(0x02229),
1564             'Cconint' => chr(0x02230),
1565             'cirfnint' => chr(0x02A10),
1566             'compfn' => chr(0x02218),
1567             'cong' => chr(0x02245),
1568             'Conint' => chr(0x0222F),
1569             'conint' => chr(0x0222E),
1570             'ctdot' => chr(0x022EF),
1571             'cup' => chr(0x0222A),
1572             'cwconint' => chr(0x02232),
1573             'cwint' => chr(0x02231),
1574             'cylcty' => chr(0x0232D),
1575             'disin' => chr(0x022F2),
1576             'Dot' => chr(0x000A8),
1577             'dsol' => chr(0x029F6),
1578             'dtdot' => chr(0x022F1),
1579             'dwangle' => chr(0x029A6),
1580             'elinters' => chr(0x0FFFD),
1581             'epar' => chr(0x022D5),
1582             'eparsl' => chr(0x029E3),
1583             'equiv' => chr(0x02261),
1584             'eqvparsl' => chr(0x029E5),
1585             'exist' => chr(0x02203),
1586             'fltns' => chr(0x025B1),
1587             'fnof' => chr(0x00192),
1588             'forall' => chr(0x02200),
1589             'fpartint' => chr(0x02A0D),
1590             'ge' => chr(0x02265),
1591             'hamilt' => chr(0x0210B),
1592             'iff' => chr(0x021D4),
1593             'iinfin' => chr(0x029DC),
1594             'imped' => chr(0x001B5),
1595             'infin' => chr(0x0221E),
1596             'infintie' => chr(0x029DD),
1597             'Int' => chr(0x0222C),
1598             'int' => chr(0x0222B),
1599             'intlarhk' => chr(0x02A17),
1600             'isin' => chr(0x02208),
1601             'isindot' => chr(0x022F5),
1602             'isinE' => chr(0x022F9),
1603             'isins' => chr(0x022F4),
1604             'isinsv' => chr(0x022F3),
1605             'isinv' => chr(0x02208),
1606             'lagran' => chr(0x02112),
1607             'Lang' => chr(0x0300A),
1608             'lang' => chr(0x02329),
1609             'lArr' => chr(0x021D0),
1610             'lbbrk' => chr(0x03014),
1611             'le' => chr(0x02264),
1612             'loang' => chr(0x03018),
1613             'lobrk' => chr(0x0301A),
1614             'lopar' => chr(0x02985),
1615             'lowast' => chr(0x02217),
1616             'minus' => chr(0x02212),
1617             'mnplus' => chr(0x02213),
1618             'nabla' => chr(0x02207),
1619             'ne' => chr(0x02260),
1620             'nedot' => chr(0x02250).chr(0x00338),
1621             'nhpar' => chr(0x02AF2),
1622             'ni' => chr(0x0220B),
1623             'nis' => chr(0x022FC),
1624             'nisd' => chr(0x022FA),
1625             'niv' => chr(0x0220B),
1626             'Not' => chr(0x02AEC),
1627             'notin' => chr(0x02209),
1628             'notindot' => chr(0x022F5).chr(0x00338),
1629             'notinE' => chr(0x022F9).chr(0x00338),
1630             'notinva' => chr(0x02209),
1631             'notinvb' => chr(0x022F7),
1632             'notinvc' => chr(0x022F6),
1633             'notni' => chr(0x0220C),
1634             'notniva' => chr(0x0220C),
1635             'notnivb' => chr(0x022FE),
1636             'notnivc' => chr(0x022FD),
1637             'nparsl' => chr(0x02AFD).chr(0x020E5),
1638             'npart' => chr(0x02202).chr(0x00338),
1639             'npolint' => chr(0x02A14),
1640             'nvinfin' => chr(0x029DE),
1641             'olcross' => chr(0x029BB),
1642             'Or' => chr(0x02A54),
1643             'or' => chr(0x02228),
1644             'ord' => chr(0x02A5D),
1645             'order' => chr(0x02134),
1646             'oror' => chr(0x02A56),
1647             'orslope' => chr(0x02A57),
1648             'orv' => chr(0x02A5B),
1649             'par' => chr(0x02225),
1650             'parsl' => chr(0x02AFD),
1651             'part' => chr(0x02202),
1652             'permil' => chr(0x02030),
1653             'perp' => chr(0x022A5),
1654             'pertenk' => chr(0x02031),
1655             'phmmat' => chr(0x02133),
1656             'pointint' => chr(0x02A15),
1657             'Prime' => chr(0x02033),
1658             'prime' => chr(0x02032),
1659             'profalar' => chr(0x0232E),
1660             'profline' => chr(0x02312),
1661             'profsurf' => chr(0x02313),
1662             'prop' => chr(0x0221D),
1663             'qint' => chr(0x02A0C),
1664             'qprime' => chr(0x02057),
1665             'quatint' => chr(0x02A16),
1666             'radic' => chr(0x0221A),
1667             'Rang' => chr(0x0300B),
1668             'rang' => chr(0x0232A),
1669             'rArr' => chr(0x021D2),
1670             'rbbrk' => chr(0x03015),
1671             'roang' => chr(0x03019),
1672             'robrk' => chr(0x0301B),
1673             'ropar' => chr(0x02986),
1674             'rppolint' => chr(0x02A12),
1675             'scpolint' => chr(0x02A13),
1676             'sim' => chr(0x0223C),
1677             'simdot' => chr(0x02A6A),
1678             'sime' => chr(0x02243),
1679             'smeparsl' => chr(0x029E4),
1680             'square' => chr(0x025A1),
1681             'squarf' => chr(0x025AA),
1682             'strns' => chr(0x000AF),
1683             'sub' => chr(0x02282),
1684             'sube' => chr(0x02286),
1685             'sup' => chr(0x02283),
1686             'supe' => chr(0x02287),
1687             'there4' => chr(0x02234),
1688             'tint' => chr(0x0222D),
1689             'top' => chr(0x022A4),
1690             'topbot' => chr(0x02336),
1691             'topcir' => chr(0x02AF1),
1692             'tprime' => chr(0x02034),
1693             'utdot' => chr(0x022F0),
1694             'uwangle' => chr(0x029A7),
1695             'vangrt' => chr(0x0299C),
1696             'veeeq' => chr(0x0225A),
1697             'Verbar' => chr(0x02016),
1698             'wedgeq' => chr(0x02259),
1699             'xnis' => chr(0x022FB),
1700             }
1701             }}
1702              
1703             sub all {
1704 3     3   49 no strict 'refs';
  3         9  
  3         366  
1705 3505     3505 0 6476 return {map %{$_->()}, @names}
  77110         194790  
1706             }
1707              
1708             sub names {
1709             return @names
1710 3503     3503 0 31476 }
1711              
1712             sub char2entity {
1713 2     2 0 1646 my ($subname) = @_;
1714 3     3   18 no strict 'refs';
  3         11  
  3         121  
1715 2         9 my $ent2char = $subname->();
1716 3     3   17 use strict;
  3         6  
  3         615  
1717 2         2091 my %char2ent;
1718 2         20 local $/ = ';';
1719 2         19 while (my($entity, $char) = each(%$ent2char)) {
1720 2996         4123 chomp $entity; # $/ eq ';' so this is just a faster version of s/;\z//
1721 2996         13369 $char2ent{$char} = "&$entity;";
1722             }
1723 2         1251 return \%char2ent;
1724             }
1725              
1726             1
1727              
1728             __END__