update for HEAD-2003050101
[reactos.git] / lib / freetype / src / tools / glnames.py
1 #!/usr/bin/env python
2 #
3
4 #
5 # FreeType 2 glyph name builder
6 #
7
8
9 # Copyright 1996-2000 by
10 # David Turner, Robert Wilhelm, and Werner Lemberg.
11 #
12 # This file is part of the FreeType project, and may only be used, modified,
13 # and distributed under the terms of the FreeType project license,
14 # LICENSE.TXT.  By continuing to use, modify, or distribute this file you
15 # indicate that you have read the license and understand and accept it
16 # fully.
17
18
19 """\
20
21 usage: %s <output-file>
22
23   This very simple python script is used to generate the glyph names
24   tables defined in the PSNames module.
25
26   Its single argument is the name of the header file to be created.
27 """
28
29
30 import sys, string
31
32
33 # This table is used to name the glyph according to the Macintosh
34 # specification.  It is used by the TrueType Postscript names table
35 #
36 # see http://fonts.apple.com/TTRefMan/RM06/Chap6post.html
37 # for the official list
38 #
39 mac_standard_names = \
40 [
41   # 0
42   ".notdef", ".null", "nonmarkingreturn", "space", "exclam",
43   "quotedbl", "numbersign", "dollar", "percent", "ampersand",
44
45   # 10
46   "quotesingle", "parenleft", "parenright", "asterisk", "plus",
47   "comma", "hyphen", "period", "slash", "zero",
48
49   # 20
50   "one", "two", "three", "four", "five",
51   "six", "seven", "eight", "nine", "colon",
52
53   # 30
54   "semicolon", "less", "equal", "greater", "question",
55   "at", "A", "B", "C", "D",
56
57   # 40
58   "E", "F", "G", "H", "I",
59   "J", "K", "L", "M", "N",
60
61   # 50
62   "O", "P", "Q", "R", "S",
63   "T", "U", "V", "W", "X",
64
65   # 60
66   "Y", "Z", "bracketleft", "backslash", "bracketright",
67   "asciicircum", "underscore", "grave", "a", "b",
68
69   # 70
70   "c", "d", "e", "f", "g",
71   "h", "i", "j", "k", "l",
72
73   # 80
74   "m", "n", "o", "p", "q",
75   "r", "s", "t", "u", "v",
76
77   # 90
78   "w", "x", "y", "z", "braceleft",
79   "bar", "braceright", "asciitilde", "Adieresis", "Aring",
80
81   # 100
82   "Ccedilla", "Eacute", "Ntilde", "Odieresis", "Udieresis",
83   "aacute", "agrave", "acircumflex", "adieresis", "atilde",
84
85   # 110
86   "aring", "ccedilla", "eacute", "egrave", "ecircumflex",
87   "edieresis", "iacute", "igrave", "icircumflex", "idieresis",
88
89   # 120
90   "ntilde", "oacute", "ograve", "ocircumflex", "odieresis",
91   "otilde", "uacute", "ugrave", "ucircumflex", "udieresis",
92
93   # 130
94   "dagger", "degree", "cent", "sterling", "section",
95   "bullet", "paragraph", "germandbls", "registered", "copyright",
96
97   # 140
98   "trademark", "acute", "dieresis", "notequal", "AE",
99   "Oslash", "infinity", "plusminus", "lessequal", "greaterequal",
100
101   # 150
102   "yen", "mu", "partialdiff", "summation", "product",
103   "pi", "integral", "ordfeminine", "ordmasculine", "Omega",
104
105   # 160
106   "ae", "oslash", "questiondown", "exclamdown", "logicalnot",
107   "radical", "florin", "approxequal", "Delta", "guillemotleft",
108
109   # 170
110   "guillemotright", "ellipsis", "nonbreakingspace", "Agrave", "Atilde",
111   "Otilde", "OE", "oe", "endash", "emdash",
112
113   # 180
114   "quotedblleft", "quotedblright", "quoteleft", "quoteright", "divide",
115   "lozenge", "ydieresis", "Ydieresis", "fraction", "currency",
116
117   # 190
118   "guilsinglleft", "guilsinglright", "fi", "fl", "daggerdbl",
119   "periodcentered", "quotesinglbase", "quotedblbase", "perthousand",
120     "Acircumflex",
121
122   # 200
123   "Ecircumflex", "Aacute", "Edieresis", "Egrave", "Iacute",
124   "Icircumflex", "Idieresis", "Igrave", "Oacute", "Ocircumflex",
125
126   # 210
127   "apple", "Ograve", "Uacute", "Ucircumflex", "Ugrave",
128   "dotlessi", "circumflex", "tilde", "macron", "breve",
129
130   # 220
131   "dotaccent", "ring", "cedilla", "hungarumlaut", "ogonek",
132   "caron", "Lslash", "lslash", "Scaron", "scaron",
133
134   # 230
135   "Zcaron", "zcaron", "brokenbar", "Eth", "eth",
136   "Yacute", "yacute", "Thorn", "thorn", "minus",
137
138   # 240
139   "multiply", "onesuperior", "twosuperior", "threesuperior", "onehalf",
140   "onequarter", "threequarters", "franc", "Gbreve", "gbreve",
141
142   # 250
143   "Idotaccent", "Scedilla", "scedilla", "Cacute", "cacute",
144   "Ccaron", "ccaron", "dcroat"
145 ]
146
147
148 # the list of standard "SID" glyph names. For the official list,
149 # see Annex A of document at
150 # http://partners.adobe.com/asn/developer/pdfs/tn/5176.CFF.pdf
151 #
152 sid_standard_names = \
153 [
154   # 0
155   ".notdef", "space", "exclam", "quotedbl", "numbersign",
156   "dollar", "percent", "ampersand", "quoteright", "parenleft",
157
158   # 10
159   "parenright", "asterisk", "plus", "comma", "hyphen",
160   "period", "slash", "zero", "one", "two",
161
162   # 20
163   "three", "four", "five", "six", "seven",
164   "eight", "nine", "colon", "semicolon", "less",
165
166   # 30
167   "equal", "greater", "question", "at", "A",
168   "B", "C", "D", "E", "F",
169
170   # 40
171   "G", "H", "I", "J", "K",
172   "L", "M", "N", "O", "P",
173
174   # 50
175   "Q", "R", "S", "T", "U",
176   "V", "W", "X", "Y", "Z",
177
178   # 60
179   "bracketleft", "backslash", "bracketright", "asciicircum", "underscore",
180   "quoteleft", "a", "b", "c", "d",
181
182   # 70
183   "e", "f", "g", "h", "i",
184   "j", "k", "l", "m", "n",
185
186   # 80
187   "o", "p", "q", "r", "s",
188   "t", "u", "v", "w", "x",
189
190   # 90
191   "y", "z", "braceleft", "bar", "braceright",
192   "asciitilde", "exclamdown", "cent", "sterling", "fraction",
193
194   # 100
195   "yen", "florin", "section", "currency", "quotesingle",
196   "quotedblleft", "guillemotleft", "guilsinglleft", "guilsinglright", "fi",
197
198   # 110
199   "fl", "endash", "dagger", "daggerdbl", "periodcentered",
200   "paragraph", "bullet", "quotesinglbase", "quotedblbase", "quotedblright",
201
202   # 120
203   "guillemotright", "ellipsis", "perthousand", "questiondown", "grave",
204   "acute", "circumflex", "tilde", "macron", "breve",
205
206   # 130
207   "dotaccent", "dieresis", "ring", "cedilla", "hungarumlaut",
208   "ogonek", "caron", "emdash", "AE", "ordfeminine",
209
210   # 140
211   "Lslash", "Oslash", "OE", "ordmasculine", "ae",
212   "dotlessi", "lslash", "oslash", "oe", "germandbls",
213
214   # 150
215   "onesuperior", "logicalnot", "mu", "trademark", "Eth",
216   "onehalf", "plusminus", "Thorn", "onequarter", "divide",
217
218   # 160
219   "brokenbar", "degree", "thorn", "threequarters", "twosuperior",
220   "registered", "minus", "eth", "multiply", "threesuperior",
221
222   # 170
223   "copyright", "Aacute", "Acircumflex", "Adieresis", "Agrave",
224   "Aring", "Atilde", "Ccedilla", "Eacute", "Ecircumflex",
225
226   # 180
227   "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis",
228   "Igrave", "Ntilde", "Oacute", "Ocircumflex", "Odieresis",
229
230   # 190
231   "Ograve", "Otilde", "Scaron", "Uacute", "Ucircumflex",
232   "Udieresis", "Ugrave", "Yacute", "Ydieresis", "Zcaron",
233
234   # 200
235   "aacute", "acircumflex", "adieresis", "agrave", "aring",
236   "atilde", "ccedilla", "eacute", "ecircumflex", "edieresis",
237
238   # 210
239   "egrave", "iacute", "icircumflex", "idieresis", "igrave",
240   "ntilde", "oacute", "ocircumflex", "odieresis", "ograve",
241
242   # 220
243   "otilde", "scaron", "uacute", "ucircumflex", "udieresis",
244   "ugrave", "yacute", "ydieresis", "zcaron", "exclamsmall",
245
246   # 230
247   "Hungarumlautsmall", "dollaroldstyle", "dollarsuperior", "ampersandsmall",
248     "Acutesmall",
249   "parenleftsuperior", "parenrightsuperior", "twodotenleader",
250     "onedotenleader", "zerooldstyle",
251
252   # 240
253   "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle",
254     "fiveoldstyle",
255   "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle",
256     "commasuperior",
257
258   # 250
259   "threequartersemdash", "periodsuperior", "questionsmall", "asuperior",
260     "bsuperior",
261   "centsuperior", "dsuperior", "esuperior", "isuperior", "lsuperior",
262
263   # 260
264   "msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior",
265   "tsuperior", "ff", "ffi", "ffl", "parenleftinferior",
266
267   # 270
268   "parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall",
269     "Asmall",
270   "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall",
271
272   # 280
273   "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall",
274   "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall",
275
276   # 290
277   "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall",
278   "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall",
279
280   # 300
281   "colonmonetary", "onefitted", "rupiah", "Tildesmall", "exclamdownsmall",
282   "centoldstyle", "Lslashsmall", "Scaronsmall", "Zcaronsmall",
283     "Dieresissmall",
284
285   # 310
286   "Brevesmall", "Caronsmall", "Dotaccentsmall", "Macronsmall", "figuredash",
287   "hypheninferior", "Ogoneksmall", "Ringsmall", "Cedillasmall",
288     "questiondownsmall",
289
290   # 320
291   "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird",
292   "twothirds", "zerosuperior", "foursuperior", "fivesuperior",
293     "sixsuperior",
294
295   # 330
296   "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior",
297     "oneinferior",
298   "twoinferior", "threeinferior", "fourinferior", "fiveinferior",
299     "sixinferior",
300
301   # 340
302   "seveninferior", "eightinferior", "nineinferior", "centinferior",
303     "dollarinferior",
304   "periodinferior", "commainferior", "Agravesmall", "Aacutesmall",
305     "Acircumflexsmall",
306
307   # 350
308   "Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall",
309   "Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall",
310     "Igravesmall",
311
312   # 360
313   "Iacutesmall", "Icircumflexsmall", "Idieresissmall", "Ethsmall",
314     "Ntildesmall",
315   "Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall",
316     "Odieresissmall",
317
318   # 370
319   "OEsmall", "Oslashsmall", "Ugravesmall", "Uacutesmall",
320     "Ucircumflexsmall",
321   "Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall",
322     "001.000",
323
324   # 380
325   "001.001", "001.002", "001.003", "Black", "Bold",
326   "Book", "Light", "Medium", "Regular", "Roman",
327
328   # 390
329   "Semibold"
330 ]
331
332
333 # this table maps character code of the Adobe Standard Type 1
334 # encoding to glyph indexes in the sid_standard_names table
335 #
336 t1_standard_encoding = \
337 [
338     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
339     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
340     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
341     0,   0,   1,   2,   3,   4,   5,   6,   7,   8,
342     9,  10,  11,  12,  13,  14,  15,  16,  17,  18,
343
344    19,  20,  21,  22,  23,  24,  25,  26,  27,  28,
345    29,  30,  31,  32,  33,  34,  35,  36,  37,  38,
346    39,  40,  41,  42,  43,  44,  45,  46,  47,  48,
347    49,  50,  51,  52,  53,  54,  55,  56,  57,  58,
348    59,  60,  61,  62,  63,  64,  65,  66,  67,  68,
349
350    69,  70,  71,  72,  73,  74,  75,  76,  77,  78,
351    79,  80,  81,  82,  83,  84,  85,  86,  87,  88,
352    89,  90,  91,  92,  93,  94,  95,   0,   0,   0,
353     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
354     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
355
356     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
357     0,  96,  97,  98,  99, 100, 101, 102, 103, 104,
358   105, 106, 107, 108, 109, 110,   0, 111, 112, 113,
359   114,   0, 115, 116, 117, 118, 119, 120, 121, 122,
360     0, 123,   0, 124, 125, 126, 127, 128, 129, 130,
361
362   131,   0, 132, 133,   0, 134, 135, 136, 137,   0,
363     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
364     0,   0,   0,   0,   0, 138,   0, 139,   0,   0,
365     0,   0, 140, 141, 142, 143,   0,   0,   0,   0,
366     0, 144,   0,   0,   0, 145,   0,   0, 146, 147,
367
368   148, 149,   0,   0,   0,   0
369 ]
370
371
372 # this table maps character code of the Adobe Expert Type 1
373 # encoding to glyph indexes in the sid_standard_names table
374 #
375 t1_expert_encoding = \
376 [
377     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
378     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
379     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
380     0,   0,   1, 229, 230,   0, 231, 232, 233, 234,
381   235, 236, 237, 238,  13,  14,  15,  99, 239, 240,
382
383   241, 242, 243, 244, 245, 246, 247, 248,  27,  28,
384   249, 250, 251, 252,   0, 253, 254, 255, 256, 257,
385     0,   0,   0, 258,   0,   0, 259, 260, 261, 262,
386     0,   0, 263, 264, 265,   0, 266, 109, 110, 267,
387   268, 269,   0, 270, 271, 272, 273, 274, 275, 276,
388
389   277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
390   287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
391   297, 298, 299, 300, 301, 302, 303,   0,   0,   0,
392     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
393     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
394
395     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
396     0, 304, 305, 306,   0,   0, 307, 308, 309, 310,
397   311,   0, 312,   0,   0, 313,   0,   0, 314, 315,
398     0,   0, 316, 317, 318,   0,   0,   0, 158, 155,
399   163, 319, 320, 321, 322, 323, 324, 325,   0,   0,
400
401   326, 150, 164, 169, 327, 328, 329, 330, 331, 332,
402   333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
403   343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
404   353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
405   363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
406
407   373, 374, 375, 376, 377, 378
408 ]
409
410
411 # This data has been taken literally from the file `glyphlist.txt',
412 # version 1.2, 22 Oct 1998.  It is available from
413 #
414 #   http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
415 #
416 adobe_glyph_list = """\
417 0041;A;LATIN CAPITAL LETTER A
418 00C6;AE;LATIN CAPITAL LETTER AE
419 01FC;AEacute;LATIN CAPITAL LETTER AE WITH ACUTE
420 F7E6;AEsmall;LATIN SMALL CAPITAL LETTER AE
421 00C1;Aacute;LATIN CAPITAL LETTER A WITH ACUTE
422 F7E1;Aacutesmall;LATIN SMALL CAPITAL LETTER A WITH ACUTE
423 0102;Abreve;LATIN CAPITAL LETTER A WITH BREVE
424 00C2;Acircumflex;LATIN CAPITAL LETTER A WITH CIRCUMFLEX
425 F7E2;Acircumflexsmall;LATIN SMALL CAPITAL LETTER A WITH CIRCUMFLEX
426 F6C9;Acute;CAPITAL ACUTE ACCENT
427 F7B4;Acutesmall;SMALL CAPITAL ACUTE ACCENT
428 00C4;Adieresis;LATIN CAPITAL LETTER A WITH DIAERESIS
429 F7E4;Adieresissmall;LATIN SMALL CAPITAL LETTER A WITH DIAERESIS
430 00C0;Agrave;LATIN CAPITAL LETTER A WITH GRAVE
431 F7E0;Agravesmall;LATIN SMALL CAPITAL LETTER A WITH GRAVE
432 0391;Alpha;GREEK CAPITAL LETTER ALPHA
433 0386;Alphatonos;GREEK CAPITAL LETTER ALPHA WITH TONOS
434 0100;Amacron;LATIN CAPITAL LETTER A WITH MACRON
435 0104;Aogonek;LATIN CAPITAL LETTER A WITH OGONEK
436 00C5;Aring;LATIN CAPITAL LETTER A WITH RING ABOVE
437 01FA;Aringacute;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
438 F7E5;Aringsmall;LATIN SMALL CAPITAL LETTER A WITH RING ABOVE
439 F761;Asmall;LATIN SMALL CAPITAL LETTER A
440 00C3;Atilde;LATIN CAPITAL LETTER A WITH TILDE
441 F7E3;Atildesmall;LATIN SMALL CAPITAL LETTER A WITH TILDE
442 0042;B;LATIN CAPITAL LETTER B
443 0392;Beta;GREEK CAPITAL LETTER BETA
444 F6F4;Brevesmall;SMALL CAPITAL BREVE
445 F762;Bsmall;LATIN SMALL CAPITAL LETTER B
446 0043;C;LATIN CAPITAL LETTER C
447 0106;Cacute;LATIN CAPITAL LETTER C WITH ACUTE
448 F6CA;Caron;CAPITAL CARON
449 F6F5;Caronsmall;SMALL CAPITAL CARON
450 010C;Ccaron;LATIN CAPITAL LETTER C WITH CARON
451 00C7;Ccedilla;LATIN CAPITAL LETTER C WITH CEDILLA
452 F7E7;Ccedillasmall;LATIN SMALL CAPITAL LETTER C WITH CEDILLA
453 0108;Ccircumflex;LATIN CAPITAL LETTER C WITH CIRCUMFLEX
454 010A;Cdotaccent;LATIN CAPITAL LETTER C WITH DOT ABOVE
455 F7B8;Cedillasmall;SMALL CAPITAL CEDILLA
456 03A7;Chi;GREEK CAPITAL LETTER CHI
457 F6F6;Circumflexsmall;SMALL CAPITAL MODIFIER LETTER CIRCUMFLEX ACCENT
458 F763;Csmall;LATIN SMALL CAPITAL LETTER C
459 0044;D;LATIN CAPITAL LETTER D
460 010E;Dcaron;LATIN CAPITAL LETTER D WITH CARON
461 0110;Dcroat;LATIN CAPITAL LETTER D WITH STROKE
462 2206;Delta;INCREMENT
463 0394;Delta;GREEK CAPITAL LETTER DELTA;Duplicate
464 F6CB;Dieresis;CAPITAL DIAERESIS
465 F6CC;DieresisAcute;CAPITAL DIAERESIS ACUTE ACCENT
466 F6CD;DieresisGrave;CAPITAL DIAERESIS GRAVE ACCENT
467 F7A8;Dieresissmall;SMALL CAPITAL DIAERESIS
468 F6F7;Dotaccentsmall;SMALL CAPITAL DOT ABOVE
469 F764;Dsmall;LATIN SMALL CAPITAL LETTER D
470 0045;E;LATIN CAPITAL LETTER E
471 00C9;Eacute;LATIN CAPITAL LETTER E WITH ACUTE
472 F7E9;Eacutesmall;LATIN SMALL CAPITAL LETTER E WITH ACUTE
473 0114;Ebreve;LATIN CAPITAL LETTER E WITH BREVE
474 011A;Ecaron;LATIN CAPITAL LETTER E WITH CARON
475 00CA;Ecircumflex;LATIN CAPITAL LETTER E WITH CIRCUMFLEX
476 F7EA;Ecircumflexsmall;LATIN SMALL CAPITAL LETTER E WITH CIRCUMFLEX
477 00CB;Edieresis;LATIN CAPITAL LETTER E WITH DIAERESIS
478 F7EB;Edieresissmall;LATIN SMALL CAPITAL LETTER E WITH DIAERESIS
479 0116;Edotaccent;LATIN CAPITAL LETTER E WITH DOT ABOVE
480 00C8;Egrave;LATIN CAPITAL LETTER E WITH GRAVE
481 F7E8;Egravesmall;LATIN SMALL CAPITAL LETTER E WITH GRAVE
482 0112;Emacron;LATIN CAPITAL LETTER E WITH MACRON
483 014A;Eng;LATIN CAPITAL LETTER ENG
484 0118;Eogonek;LATIN CAPITAL LETTER E WITH OGONEK
485 0395;Epsilon;GREEK CAPITAL LETTER EPSILON
486 0388;Epsilontonos;GREEK CAPITAL LETTER EPSILON WITH TONOS
487 F765;Esmall;LATIN SMALL CAPITAL LETTER E
488 0397;Eta;GREEK CAPITAL LETTER ETA
489 0389;Etatonos;GREEK CAPITAL LETTER ETA WITH TONOS
490 00D0;Eth;LATIN CAPITAL LETTER ETH
491 F7F0;Ethsmall;LATIN SMALL CAPITAL LETTER ETH
492 20AC;Euro;EURO SIGN
493 0046;F;LATIN CAPITAL LETTER F
494 F766;Fsmall;LATIN SMALL CAPITAL LETTER F
495 0047;G;LATIN CAPITAL LETTER G
496 0393;Gamma;GREEK CAPITAL LETTER GAMMA
497 011E;Gbreve;LATIN CAPITAL LETTER G WITH BREVE
498 01E6;Gcaron;LATIN CAPITAL LETTER G WITH CARON
499 011C;Gcircumflex;LATIN CAPITAL LETTER G WITH CIRCUMFLEX
500 0122;Gcommaaccent;LATIN CAPITAL LETTER G WITH CEDILLA
501 0120;Gdotaccent;LATIN CAPITAL LETTER G WITH DOT ABOVE
502 F6CE;Grave;CAPITAL GRAVE ACCENT
503 F760;Gravesmall;SMALL CAPITAL GRAVE ACCENT
504 F767;Gsmall;LATIN SMALL CAPITAL LETTER G
505 0048;H;LATIN CAPITAL LETTER H
506 25CF;H18533;BLACK CIRCLE
507 25AA;H18543;BLACK SMALL SQUARE
508 25AB;H18551;WHITE SMALL SQUARE
509 25A1;H22073;WHITE SQUARE
510 0126;Hbar;LATIN CAPITAL LETTER H WITH STROKE
511 0124;Hcircumflex;LATIN CAPITAL LETTER H WITH CIRCUMFLEX
512 F768;Hsmall;LATIN SMALL CAPITAL LETTER H
513 F6CF;Hungarumlaut;CAPITAL DOUBLE ACUTE ACCENT
514 F6F8;Hungarumlautsmall;SMALL CAPITAL DOUBLE ACUTE ACCENT
515 0049;I;LATIN CAPITAL LETTER I
516 0132;IJ;LATIN CAPITAL LIGATURE IJ
517 00CD;Iacute;LATIN CAPITAL LETTER I WITH ACUTE
518 F7ED;Iacutesmall;LATIN SMALL CAPITAL LETTER I WITH ACUTE
519 012C;Ibreve;LATIN CAPITAL LETTER I WITH BREVE
520 00CE;Icircumflex;LATIN CAPITAL LETTER I WITH CIRCUMFLEX
521 F7EE;Icircumflexsmall;LATIN SMALL CAPITAL LETTER I WITH CIRCUMFLEX
522 00CF;Idieresis;LATIN CAPITAL LETTER I WITH DIAERESIS
523 F7EF;Idieresissmall;LATIN SMALL CAPITAL LETTER I WITH DIAERESIS
524 0130;Idotaccent;LATIN CAPITAL LETTER I WITH DOT ABOVE
525 2111;Ifraktur;BLACK-LETTER CAPITAL I
526 00CC;Igrave;LATIN CAPITAL LETTER I WITH GRAVE
527 F7EC;Igravesmall;LATIN SMALL CAPITAL LETTER I WITH GRAVE
528 012A;Imacron;LATIN CAPITAL LETTER I WITH MACRON
529 012E;Iogonek;LATIN CAPITAL LETTER I WITH OGONEK
530 0399;Iota;GREEK CAPITAL LETTER IOTA
531 03AA;Iotadieresis;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
532 038A;Iotatonos;GREEK CAPITAL LETTER IOTA WITH TONOS
533 F769;Ismall;LATIN SMALL CAPITAL LETTER I
534 0128;Itilde;LATIN CAPITAL LETTER I WITH TILDE
535 004A;J;LATIN CAPITAL LETTER J
536 0134;Jcircumflex;LATIN CAPITAL LETTER J WITH CIRCUMFLEX
537 F76A;Jsmall;LATIN SMALL CAPITAL LETTER J
538 004B;K;LATIN CAPITAL LETTER K
539 039A;Kappa;GREEK CAPITAL LETTER KAPPA
540 0136;Kcommaaccent;LATIN CAPITAL LETTER K WITH CEDILLA
541 F76B;Ksmall;LATIN SMALL CAPITAL LETTER K
542 004C;L;LATIN CAPITAL LETTER L
543 F6BF;LL;LATIN CAPITAL LETTER LL
544 0139;Lacute;LATIN CAPITAL LETTER L WITH ACUTE
545 039B;Lambda;GREEK CAPITAL LETTER LAMDA
546 013D;Lcaron;LATIN CAPITAL LETTER L WITH CARON
547 013B;Lcommaaccent;LATIN CAPITAL LETTER L WITH CEDILLA
548 013F;Ldot;LATIN CAPITAL LETTER L WITH MIDDLE DOT
549 0141;Lslash;LATIN CAPITAL LETTER L WITH STROKE
550 F6F9;Lslashsmall;LATIN SMALL CAPITAL LETTER L WITH STROKE
551 F76C;Lsmall;LATIN SMALL CAPITAL LETTER L
552 004D;M;LATIN CAPITAL LETTER M
553 F6D0;Macron;CAPITAL MACRON
554 F7AF;Macronsmall;SMALL CAPITAL MACRON
555 F76D;Msmall;LATIN SMALL CAPITAL LETTER M
556 039C;Mu;GREEK CAPITAL LETTER MU
557 004E;N;LATIN CAPITAL LETTER N
558 0143;Nacute;LATIN CAPITAL LETTER N WITH ACUTE
559 0147;Ncaron;LATIN CAPITAL LETTER N WITH CARON
560 0145;Ncommaaccent;LATIN CAPITAL LETTER N WITH CEDILLA
561 F76E;Nsmall;LATIN SMALL CAPITAL LETTER N
562 00D1;Ntilde;LATIN CAPITAL LETTER N WITH TILDE
563 F7F1;Ntildesmall;LATIN SMALL CAPITAL LETTER N WITH TILDE
564 039D;Nu;GREEK CAPITAL LETTER NU
565 004F;O;LATIN CAPITAL LETTER O
566 0152;OE;LATIN CAPITAL LIGATURE OE
567 F6FA;OEsmall;LATIN SMALL CAPITAL LIGATURE OE
568 00D3;Oacute;LATIN CAPITAL LETTER O WITH ACUTE
569 F7F3;Oacutesmall;LATIN SMALL CAPITAL LETTER O WITH ACUTE
570 014E;Obreve;LATIN CAPITAL LETTER O WITH BREVE
571 00D4;Ocircumflex;LATIN CAPITAL LETTER O WITH CIRCUMFLEX
572 F7F4;Ocircumflexsmall;LATIN SMALL CAPITAL LETTER O WITH CIRCUMFLEX
573 00D6;Odieresis;LATIN CAPITAL LETTER O WITH DIAERESIS
574 F7F6;Odieresissmall;LATIN SMALL CAPITAL LETTER O WITH DIAERESIS
575 F6FB;Ogoneksmall;SMALL CAPITAL OGONEK
576 00D2;Ograve;LATIN CAPITAL LETTER O WITH GRAVE
577 F7F2;Ogravesmall;LATIN SMALL CAPITAL LETTER O WITH GRAVE
578 01A0;Ohorn;LATIN CAPITAL LETTER O WITH HORN
579 0150;Ohungarumlaut;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
580 014C;Omacron;LATIN CAPITAL LETTER O WITH MACRON
581 2126;Omega;OHM SIGN
582 03A9;Omega;GREEK CAPITAL LETTER OMEGA;Duplicate
583 038F;Omegatonos;GREEK CAPITAL LETTER OMEGA WITH TONOS
584 039F;Omicron;GREEK CAPITAL LETTER OMICRON
585 038C;Omicrontonos;GREEK CAPITAL LETTER OMICRON WITH TONOS
586 00D8;Oslash;LATIN CAPITAL LETTER O WITH STROKE
587 01FE;Oslashacute;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
588 F7F8;Oslashsmall;LATIN SMALL CAPITAL LETTER O WITH STROKE
589 F76F;Osmall;LATIN SMALL CAPITAL LETTER O
590 00D5;Otilde;LATIN CAPITAL LETTER O WITH TILDE
591 F7F5;Otildesmall;LATIN SMALL CAPITAL LETTER O WITH TILDE
592 0050;P;LATIN CAPITAL LETTER P
593 03A6;Phi;GREEK CAPITAL LETTER PHI
594 03A0;Pi;GREEK CAPITAL LETTER PI
595 03A8;Psi;GREEK CAPITAL LETTER PSI
596 F770;Psmall;LATIN SMALL CAPITAL LETTER P
597 0051;Q;LATIN CAPITAL LETTER Q
598 F771;Qsmall;LATIN SMALL CAPITAL LETTER Q
599 0052;R;LATIN CAPITAL LETTER R
600 0154;Racute;LATIN CAPITAL LETTER R WITH ACUTE
601 0158;Rcaron;LATIN CAPITAL LETTER R WITH CARON
602 0156;Rcommaaccent;LATIN CAPITAL LETTER R WITH CEDILLA
603 211C;Rfraktur;BLACK-LETTER CAPITAL R
604 03A1;Rho;GREEK CAPITAL LETTER RHO
605 F6FC;Ringsmall;SMALL CAPITAL RING ABOVE
606 F772;Rsmall;LATIN SMALL CAPITAL LETTER R
607 0053;S;LATIN CAPITAL LETTER S
608 250C;SF010000;BOX DRAWINGS LIGHT DOWN AND RIGHT
609 2514;SF020000;BOX DRAWINGS LIGHT UP AND RIGHT
610 2510;SF030000;BOX DRAWINGS LIGHT DOWN AND LEFT
611 2518;SF040000;BOX DRAWINGS LIGHT UP AND LEFT
612 253C;SF050000;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
613 252C;SF060000;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
614 2534;SF070000;BOX DRAWINGS LIGHT UP AND HORIZONTAL
615 251C;SF080000;BOX DRAWINGS LIGHT VERTICAL AND RIGHT
616 2524;SF090000;BOX DRAWINGS LIGHT VERTICAL AND LEFT
617 2500;SF100000;BOX DRAWINGS LIGHT HORIZONTAL
618 2502;SF110000;BOX DRAWINGS LIGHT VERTICAL
619 2561;SF190000;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
620 2562;SF200000;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
621 2556;SF210000;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
622 2555;SF220000;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
623 2563;SF230000;BOX DRAWINGS DOUBLE VERTICAL AND LEFT
624 2551;SF240000;BOX DRAWINGS DOUBLE VERTICAL
625 2557;SF250000;BOX DRAWINGS DOUBLE DOWN AND LEFT
626 255D;SF260000;BOX DRAWINGS DOUBLE UP AND LEFT
627 255C;SF270000;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
628 255B;SF280000;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
629 255E;SF360000;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
630 255F;SF370000;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
631 255A;SF380000;BOX DRAWINGS DOUBLE UP AND RIGHT
632 2554;SF390000;BOX DRAWINGS DOUBLE DOWN AND RIGHT
633 2569;SF400000;BOX DRAWINGS DOUBLE UP AND HORIZONTAL
634 2566;SF410000;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
635 2560;SF420000;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
636 2550;SF430000;BOX DRAWINGS DOUBLE HORIZONTAL
637 256C;SF440000;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
638 2567;SF450000;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
639 2568;SF460000;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
640 2564;SF470000;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
641 2565;SF480000;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
642 2559;SF490000;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
643 2558;SF500000;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
644 2552;SF510000;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
645 2553;SF520000;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
646 256B;SF530000;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
647 256A;SF540000;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
648 015A;Sacute;LATIN CAPITAL LETTER S WITH ACUTE
649 0160;Scaron;LATIN CAPITAL LETTER S WITH CARON
650 F6FD;Scaronsmall;LATIN SMALL CAPITAL LETTER S WITH CARON
651 015E;Scedilla;LATIN CAPITAL LETTER S WITH CEDILLA
652 F6C1;Scedilla;LATIN CAPITAL LETTER S WITH CEDILLA;Duplicate
653 015C;Scircumflex;LATIN CAPITAL LETTER S WITH CIRCUMFLEX
654 0218;Scommaaccent;LATIN CAPITAL LETTER S WITH COMMA BELOW
655 03A3;Sigma;GREEK CAPITAL LETTER SIGMA
656 F773;Ssmall;LATIN SMALL CAPITAL LETTER S
657 0054;T;LATIN CAPITAL LETTER T
658 03A4;Tau;GREEK CAPITAL LETTER TAU
659 0166;Tbar;LATIN CAPITAL LETTER T WITH STROKE
660 0164;Tcaron;LATIN CAPITAL LETTER T WITH CARON
661 0162;Tcommaaccent;LATIN CAPITAL LETTER T WITH CEDILLA
662 021A;Tcommaaccent;LATIN CAPITAL LETTER T WITH COMMA BELOW;Duplicate
663 0398;Theta;GREEK CAPITAL LETTER THETA
664 00DE;Thorn;LATIN CAPITAL LETTER THORN
665 F7FE;Thornsmall;LATIN SMALL CAPITAL LETTER THORN
666 F6FE;Tildesmall;SMALL CAPITAL SMALL TILDE
667 F774;Tsmall;LATIN SMALL CAPITAL LETTER T
668 0055;U;LATIN CAPITAL LETTER U
669 00DA;Uacute;LATIN CAPITAL LETTER U WITH ACUTE
670 F7FA;Uacutesmall;LATIN SMALL CAPITAL LETTER U WITH ACUTE
671 016C;Ubreve;LATIN CAPITAL LETTER U WITH BREVE
672 00DB;Ucircumflex;LATIN CAPITAL LETTER U WITH CIRCUMFLEX
673 F7FB;Ucircumflexsmall;LATIN SMALL CAPITAL LETTER U WITH CIRCUMFLEX
674 00DC;Udieresis;LATIN CAPITAL LETTER U WITH DIAERESIS
675 F7FC;Udieresissmall;LATIN SMALL CAPITAL LETTER U WITH DIAERESIS
676 00D9;Ugrave;LATIN CAPITAL LETTER U WITH GRAVE
677 F7F9;Ugravesmall;LATIN SMALL CAPITAL LETTER U WITH GRAVE
678 01AF;Uhorn;LATIN CAPITAL LETTER U WITH HORN
679 0170;Uhungarumlaut;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
680 016A;Umacron;LATIN CAPITAL LETTER U WITH MACRON
681 0172;Uogonek;LATIN CAPITAL LETTER U WITH OGONEK
682 03A5;Upsilon;GREEK CAPITAL LETTER UPSILON
683 03D2;Upsilon1;GREEK UPSILON WITH HOOK SYMBOL
684 03AB;Upsilondieresis;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
685 038E;Upsilontonos;GREEK CAPITAL LETTER UPSILON WITH TONOS
686 016E;Uring;LATIN CAPITAL LETTER U WITH RING ABOVE
687 F775;Usmall;LATIN SMALL CAPITAL LETTER U
688 0168;Utilde;LATIN CAPITAL LETTER U WITH TILDE
689 0056;V;LATIN CAPITAL LETTER V
690 F776;Vsmall;LATIN SMALL CAPITAL LETTER V
691 0057;W;LATIN CAPITAL LETTER W
692 1E82;Wacute;LATIN CAPITAL LETTER W WITH ACUTE
693 0174;Wcircumflex;LATIN CAPITAL LETTER W WITH CIRCUMFLEX
694 1E84;Wdieresis;LATIN CAPITAL LETTER W WITH DIAERESIS
695 1E80;Wgrave;LATIN CAPITAL LETTER W WITH GRAVE
696 F777;Wsmall;LATIN SMALL CAPITAL LETTER W
697 0058;X;LATIN CAPITAL LETTER X
698 039E;Xi;GREEK CAPITAL LETTER XI
699 F778;Xsmall;LATIN SMALL CAPITAL LETTER X
700 0059;Y;LATIN CAPITAL LETTER Y
701 00DD;Yacute;LATIN CAPITAL LETTER Y WITH ACUTE
702 F7FD;Yacutesmall;LATIN SMALL CAPITAL LETTER Y WITH ACUTE
703 0176;Ycircumflex;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
704 0178;Ydieresis;LATIN CAPITAL LETTER Y WITH DIAERESIS
705 F7FF;Ydieresissmall;LATIN SMALL CAPITAL LETTER Y WITH DIAERESIS
706 1EF2;Ygrave;LATIN CAPITAL LETTER Y WITH GRAVE
707 F779;Ysmall;LATIN SMALL CAPITAL LETTER Y
708 005A;Z;LATIN CAPITAL LETTER Z
709 0179;Zacute;LATIN CAPITAL LETTER Z WITH ACUTE
710 017D;Zcaron;LATIN CAPITAL LETTER Z WITH CARON
711 F6FF;Zcaronsmall;LATIN SMALL CAPITAL LETTER Z WITH CARON
712 017B;Zdotaccent;LATIN CAPITAL LETTER Z WITH DOT ABOVE
713 0396;Zeta;GREEK CAPITAL LETTER ZETA
714 F77A;Zsmall;LATIN SMALL CAPITAL LETTER Z
715 0061;a;LATIN SMALL LETTER A
716 00E1;aacute;LATIN SMALL LETTER A WITH ACUTE
717 0103;abreve;LATIN SMALL LETTER A WITH BREVE
718 00E2;acircumflex;LATIN SMALL LETTER A WITH CIRCUMFLEX
719 00B4;acute;ACUTE ACCENT
720 0301;acutecomb;COMBINING ACUTE ACCENT
721 00E4;adieresis;LATIN SMALL LETTER A WITH DIAERESIS
722 00E6;ae;LATIN SMALL LETTER AE
723 01FD;aeacute;LATIN SMALL LETTER AE WITH ACUTE
724 2015;afii00208;HORIZONTAL BAR
725 0410;afii10017;CYRILLIC CAPITAL LETTER A
726 0411;afii10018;CYRILLIC CAPITAL LETTER BE
727 0412;afii10019;CYRILLIC CAPITAL LETTER VE
728 0413;afii10020;CYRILLIC CAPITAL LETTER GHE
729 0414;afii10021;CYRILLIC CAPITAL LETTER DE
730 0415;afii10022;CYRILLIC CAPITAL LETTER IE
731 0401;afii10023;CYRILLIC CAPITAL LETTER IO
732 0416;afii10024;CYRILLIC CAPITAL LETTER ZHE
733 0417;afii10025;CYRILLIC CAPITAL LETTER ZE
734 0418;afii10026;CYRILLIC CAPITAL LETTER I
735 0419;afii10027;CYRILLIC CAPITAL LETTER SHORT I
736 041A;afii10028;CYRILLIC CAPITAL LETTER KA
737 041B;afii10029;CYRILLIC CAPITAL LETTER EL
738 041C;afii10030;CYRILLIC CAPITAL LETTER EM
739 041D;afii10031;CYRILLIC CAPITAL LETTER EN
740 041E;afii10032;CYRILLIC CAPITAL LETTER O
741 041F;afii10033;CYRILLIC CAPITAL LETTER PE
742 0420;afii10034;CYRILLIC CAPITAL LETTER ER
743 0421;afii10035;CYRILLIC CAPITAL LETTER ES
744 0422;afii10036;CYRILLIC CAPITAL LETTER TE
745 0423;afii10037;CYRILLIC CAPITAL LETTER U
746 0424;afii10038;CYRILLIC CAPITAL LETTER EF
747 0425;afii10039;CYRILLIC CAPITAL LETTER HA
748 0426;afii10040;CYRILLIC CAPITAL LETTER TSE
749 0427;afii10041;CYRILLIC CAPITAL LETTER CHE
750 0428;afii10042;CYRILLIC CAPITAL LETTER SHA
751 0429;afii10043;CYRILLIC CAPITAL LETTER SHCHA
752 042A;afii10044;CYRILLIC CAPITAL LETTER HARD SIGN
753 042B;afii10045;CYRILLIC CAPITAL LETTER YERU
754 042C;afii10046;CYRILLIC CAPITAL LETTER SOFT SIGN
755 042D;afii10047;CYRILLIC CAPITAL LETTER E
756 042E;afii10048;CYRILLIC CAPITAL LETTER YU
757 042F;afii10049;CYRILLIC CAPITAL LETTER YA
758 0490;afii10050;CYRILLIC CAPITAL LETTER GHE WITH UPTURN
759 0402;afii10051;CYRILLIC CAPITAL LETTER DJE
760 0403;afii10052;CYRILLIC CAPITAL LETTER GJE
761 0404;afii10053;CYRILLIC CAPITAL LETTER UKRAINIAN IE
762 0405;afii10054;CYRILLIC CAPITAL LETTER DZE
763 0406;afii10055;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
764 0407;afii10056;CYRILLIC CAPITAL LETTER YI
765 0408;afii10057;CYRILLIC CAPITAL LETTER JE
766 0409;afii10058;CYRILLIC CAPITAL LETTER LJE
767 040A;afii10059;CYRILLIC CAPITAL LETTER NJE
768 040B;afii10060;CYRILLIC CAPITAL LETTER TSHE
769 040C;afii10061;CYRILLIC CAPITAL LETTER KJE
770 040E;afii10062;CYRILLIC CAPITAL LETTER SHORT U
771 F6C4;afii10063;CYRILLIC SMALL LETTER GHE VARIANT
772 F6C5;afii10064;CYRILLIC SMALL LETTER BE VARIANT
773 0430;afii10065;CYRILLIC SMALL LETTER A
774 0431;afii10066;CYRILLIC SMALL LETTER BE
775 0432;afii10067;CYRILLIC SMALL LETTER VE
776 0433;afii10068;CYRILLIC SMALL LETTER GHE
777 0434;afii10069;CYRILLIC SMALL LETTER DE
778 0435;afii10070;CYRILLIC SMALL LETTER IE
779 0451;afii10071;CYRILLIC SMALL LETTER IO
780 0436;afii10072;CYRILLIC SMALL LETTER ZHE
781 0437;afii10073;CYRILLIC SMALL LETTER ZE
782 0438;afii10074;CYRILLIC SMALL LETTER I
783 0439;afii10075;CYRILLIC SMALL LETTER SHORT I
784 043A;afii10076;CYRILLIC SMALL LETTER KA
785 043B;afii10077;CYRILLIC SMALL LETTER EL
786 043C;afii10078;CYRILLIC SMALL LETTER EM
787 043D;afii10079;CYRILLIC SMALL LETTER EN
788 043E;afii10080;CYRILLIC SMALL LETTER O
789 043F;afii10081;CYRILLIC SMALL LETTER PE
790 0440;afii10082;CYRILLIC SMALL LETTER ER
791 0441;afii10083;CYRILLIC SMALL LETTER ES
792 0442;afii10084;CYRILLIC SMALL LETTER TE
793 0443;afii10085;CYRILLIC SMALL LETTER U
794 0444;afii10086;CYRILLIC SMALL LETTER EF
795 0445;afii10087;CYRILLIC SMALL LETTER HA
796 0446;afii10088;CYRILLIC SMALL LETTER TSE
797 0447;afii10089;CYRILLIC SMALL LETTER CHE
798 0448;afii10090;CYRILLIC SMALL LETTER SHA
799 0449;afii10091;CYRILLIC SMALL LETTER SHCHA
800 044A;afii10092;CYRILLIC SMALL LETTER HARD SIGN
801 044B;afii10093;CYRILLIC SMALL LETTER YERU
802 044C;afii10094;CYRILLIC SMALL LETTER SOFT SIGN
803 044D;afii10095;CYRILLIC SMALL LETTER E
804 044E;afii10096;CYRILLIC SMALL LETTER YU
805 044F;afii10097;CYRILLIC SMALL LETTER YA
806 0491;afii10098;CYRILLIC SMALL LETTER GHE WITH UPTURN
807 0452;afii10099;CYRILLIC SMALL LETTER DJE
808 0453;afii10100;CYRILLIC SMALL LETTER GJE
809 0454;afii10101;CYRILLIC SMALL LETTER UKRAINIAN IE
810 0455;afii10102;CYRILLIC SMALL LETTER DZE
811 0456;afii10103;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
812 0457;afii10104;CYRILLIC SMALL LETTER YI
813 0458;afii10105;CYRILLIC SMALL LETTER JE
814 0459;afii10106;CYRILLIC SMALL LETTER LJE
815 045A;afii10107;CYRILLIC SMALL LETTER NJE
816 045B;afii10108;CYRILLIC SMALL LETTER TSHE
817 045C;afii10109;CYRILLIC SMALL LETTER KJE
818 045E;afii10110;CYRILLIC SMALL LETTER SHORT U
819 040F;afii10145;CYRILLIC CAPITAL LETTER DZHE
820 0462;afii10146;CYRILLIC CAPITAL LETTER YAT
821 0472;afii10147;CYRILLIC CAPITAL LETTER FITA
822 0474;afii10148;CYRILLIC CAPITAL LETTER IZHITSA
823 F6C6;afii10192;CYRILLIC SMALL LETTER DE VARIANT
824 045F;afii10193;CYRILLIC SMALL LETTER DZHE
825 0463;afii10194;CYRILLIC SMALL LETTER YAT
826 0473;afii10195;CYRILLIC SMALL LETTER FITA
827 0475;afii10196;CYRILLIC SMALL LETTER IZHITSA
828 F6C7;afii10831;CYRILLIC SMALL LETTER PE VARIANT
829 F6C8;afii10832;CYRILLIC SMALL LETTER TE VARIANT
830 04D9;afii10846;CYRILLIC SMALL LETTER SCHWA
831 200E;afii299;LEFT-TO-RIGHT MARK
832 200F;afii300;RIGHT-TO-LEFT MARK
833 200D;afii301;ZERO WIDTH JOINER
834 066A;afii57381;ARABIC PERCENT SIGN
835 060C;afii57388;ARABIC COMMA
836 0660;afii57392;ARABIC-INDIC DIGIT ZERO
837 0661;afii57393;ARABIC-INDIC DIGIT ONE
838 0662;afii57394;ARABIC-INDIC DIGIT TWO
839 0663;afii57395;ARABIC-INDIC DIGIT THREE
840 0664;afii57396;ARABIC-INDIC DIGIT FOUR
841 0665;afii57397;ARABIC-INDIC DIGIT FIVE
842 0666;afii57398;ARABIC-INDIC DIGIT SIX
843 0667;afii57399;ARABIC-INDIC DIGIT SEVEN
844 0668;afii57400;ARABIC-INDIC DIGIT EIGHT
845 0669;afii57401;ARABIC-INDIC DIGIT NINE
846 061B;afii57403;ARABIC SEMICOLON
847 061F;afii57407;ARABIC QUESTION MARK
848 0621;afii57409;ARABIC LETTER HAMZA
849 0622;afii57410;ARABIC LETTER ALEF WITH MADDA ABOVE
850 0623;afii57411;ARABIC LETTER ALEF WITH HAMZA ABOVE
851 0624;afii57412;ARABIC LETTER WAW WITH HAMZA ABOVE
852 0625;afii57413;ARABIC LETTER ALEF WITH HAMZA BELOW
853 0626;afii57414;ARABIC LETTER YEH WITH HAMZA ABOVE
854 0627;afii57415;ARABIC LETTER ALEF
855 0628;afii57416;ARABIC LETTER BEH
856 0629;afii57417;ARABIC LETTER TEH MARBUTA
857 062A;afii57418;ARABIC LETTER TEH
858 062B;afii57419;ARABIC LETTER THEH
859 062C;afii57420;ARABIC LETTER JEEM
860 062D;afii57421;ARABIC LETTER HAH
861 062E;afii57422;ARABIC LETTER KHAH
862 062F;afii57423;ARABIC LETTER DAL
863 0630;afii57424;ARABIC LETTER THAL
864 0631;afii57425;ARABIC LETTER REH
865 0632;afii57426;ARABIC LETTER ZAIN
866 0633;afii57427;ARABIC LETTER SEEN
867 0634;afii57428;ARABIC LETTER SHEEN
868 0635;afii57429;ARABIC LETTER SAD
869 0636;afii57430;ARABIC LETTER DAD
870 0637;afii57431;ARABIC LETTER TAH
871 0638;afii57432;ARABIC LETTER ZAH
872 0639;afii57433;ARABIC LETTER AIN
873 063A;afii57434;ARABIC LETTER GHAIN
874 0640;afii57440;ARABIC TATWEEL
875 0641;afii57441;ARABIC LETTER FEH
876 0642;afii57442;ARABIC LETTER QAF
877 0643;afii57443;ARABIC LETTER KAF
878 0644;afii57444;ARABIC LETTER LAM
879 0645;afii57445;ARABIC LETTER MEEM
880 0646;afii57446;ARABIC LETTER NOON
881 0648;afii57448;ARABIC LETTER WAW
882 0649;afii57449;ARABIC LETTER ALEF MAKSURA
883 064A;afii57450;ARABIC LETTER YEH
884 064B;afii57451;ARABIC FATHATAN
885 064C;afii57452;ARABIC DAMMATAN
886 064D;afii57453;ARABIC KASRATAN
887 064E;afii57454;ARABIC FATHA
888 064F;afii57455;ARABIC DAMMA
889 0650;afii57456;ARABIC KASRA
890 0651;afii57457;ARABIC SHADDA
891 0652;afii57458;ARABIC SUKUN
892 0647;afii57470;ARABIC LETTER HEH
893 06A4;afii57505;ARABIC LETTER VEH
894 067E;afii57506;ARABIC LETTER PEH
895 0686;afii57507;ARABIC LETTER TCHEH
896 0698;afii57508;ARABIC LETTER JEH
897 06AF;afii57509;ARABIC LETTER GAF
898 0679;afii57511;ARABIC LETTER TTEH
899 0688;afii57512;ARABIC LETTER DDAL
900 0691;afii57513;ARABIC LETTER RREH
901 06BA;afii57514;ARABIC LETTER NOON GHUNNA
902 06D2;afii57519;ARABIC LETTER YEH BARREE
903 06D5;afii57534;ARABIC LETTER AE
904 20AA;afii57636;NEW SHEQEL SIGN
905 05BE;afii57645;HEBREW PUNCTUATION MAQAF
906 05C3;afii57658;HEBREW PUNCTUATION SOF PASUQ
907 05D0;afii57664;HEBREW LETTER ALEF
908 05D1;afii57665;HEBREW LETTER BET
909 05D2;afii57666;HEBREW LETTER GIMEL
910 05D3;afii57667;HEBREW LETTER DALET
911 05D4;afii57668;HEBREW LETTER HE
912 05D5;afii57669;HEBREW LETTER VAV
913 05D6;afii57670;HEBREW LETTER ZAYIN
914 05D7;afii57671;HEBREW LETTER HET
915 05D8;afii57672;HEBREW LETTER TET
916 05D9;afii57673;HEBREW LETTER YOD
917 05DA;afii57674;HEBREW LETTER FINAL KAF
918 05DB;afii57675;HEBREW LETTER KAF
919 05DC;afii57676;HEBREW LETTER LAMED
920 05DD;afii57677;HEBREW LETTER FINAL MEM
921 05DE;afii57678;HEBREW LETTER MEM
922 05DF;afii57679;HEBREW LETTER FINAL NUN
923 05E0;afii57680;HEBREW LETTER NUN
924 05E1;afii57681;HEBREW LETTER SAMEKH
925 05E2;afii57682;HEBREW LETTER AYIN
926 05E3;afii57683;HEBREW LETTER FINAL PE
927 05E4;afii57684;HEBREW LETTER PE
928 05E5;afii57685;HEBREW LETTER FINAL TSADI
929 05E6;afii57686;HEBREW LETTER TSADI
930 05E7;afii57687;HEBREW LETTER QOF
931 05E8;afii57688;HEBREW LETTER RESH
932 05E9;afii57689;HEBREW LETTER SHIN
933 05EA;afii57690;HEBREW LETTER TAV
934 FB2A;afii57694;HEBREW LETTER SHIN WITH SHIN DOT
935 FB2B;afii57695;HEBREW LETTER SHIN WITH SIN DOT
936 FB4B;afii57700;HEBREW LETTER VAV WITH HOLAM
937 FB1F;afii57705;HEBREW LIGATURE YIDDISH YOD YOD PATAH
938 05F0;afii57716;HEBREW LIGATURE YIDDISH DOUBLE VAV
939 05F1;afii57717;HEBREW LIGATURE YIDDISH VAV YOD
940 05F2;afii57718;HEBREW LIGATURE YIDDISH DOUBLE YOD
941 FB35;afii57723;HEBREW LETTER VAV WITH DAGESH
942 05B4;afii57793;HEBREW POINT HIRIQ
943 05B5;afii57794;HEBREW POINT TSERE
944 05B6;afii57795;HEBREW POINT SEGOL
945 05BB;afii57796;HEBREW POINT QUBUTS
946 05B8;afii57797;HEBREW POINT QAMATS
947 05B7;afii57798;HEBREW POINT PATAH
948 05B0;afii57799;HEBREW POINT SHEVA
949 05B2;afii57800;HEBREW POINT HATAF PATAH
950 05B1;afii57801;HEBREW POINT HATAF SEGOL
951 05B3;afii57802;HEBREW POINT HATAF QAMATS
952 05C2;afii57803;HEBREW POINT SIN DOT
953 05C1;afii57804;HEBREW POINT SHIN DOT
954 05B9;afii57806;HEBREW POINT HOLAM
955 05BC;afii57807;HEBREW POINT DAGESH OR MAPIQ
956 05BD;afii57839;HEBREW POINT METEG
957 05BF;afii57841;HEBREW POINT RAFE
958 05C0;afii57842;HEBREW PUNCTUATION PASEQ
959 02BC;afii57929;MODIFIER LETTER APOSTROPHE
960 2105;afii61248;CARE OF
961 2113;afii61289;SCRIPT SMALL L
962 2116;afii61352;NUMERO SIGN
963 202C;afii61573;POP DIRECTIONAL FORMATTING
964 202D;afii61574;LEFT-TO-RIGHT OVERRIDE
965 202E;afii61575;RIGHT-TO-LEFT OVERRIDE
966 200C;afii61664;ZERO WIDTH NON-JOINER
967 066D;afii63167;ARABIC FIVE POINTED STAR
968 02BD;afii64937;MODIFIER LETTER REVERSED COMMA
969 00E0;agrave;LATIN SMALL LETTER A WITH GRAVE
970 2135;aleph;ALEF SYMBOL
971 03B1;alpha;GREEK SMALL LETTER ALPHA
972 03AC;alphatonos;GREEK SMALL LETTER ALPHA WITH TONOS
973 0101;amacron;LATIN SMALL LETTER A WITH MACRON
974 0026;ampersand;AMPERSAND
975 F726;ampersandsmall;SMALL CAPITAL AMPERSAND
976 2220;angle;ANGLE
977 2329;angleleft;LEFT-POINTING ANGLE BRACKET
978 232A;angleright;RIGHT-POINTING ANGLE BRACKET
979 0387;anoteleia;GREEK ANO TELEIA
980 0105;aogonek;LATIN SMALL LETTER A WITH OGONEK
981 2248;approxequal;ALMOST EQUAL TO
982 00E5;aring;LATIN SMALL LETTER A WITH RING ABOVE
983 01FB;aringacute;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
984 2194;arrowboth;LEFT RIGHT ARROW
985 21D4;arrowdblboth;LEFT RIGHT DOUBLE ARROW
986 21D3;arrowdbldown;DOWNWARDS DOUBLE ARROW
987 21D0;arrowdblleft;LEFTWARDS DOUBLE ARROW
988 21D2;arrowdblright;RIGHTWARDS DOUBLE ARROW
989 21D1;arrowdblup;UPWARDS DOUBLE ARROW
990 2193;arrowdown;DOWNWARDS ARROW
991 F8E7;arrowhorizex;HORIZONTAL ARROW EXTENDER
992 2190;arrowleft;LEFTWARDS ARROW
993 2192;arrowright;RIGHTWARDS ARROW
994 2191;arrowup;UPWARDS ARROW
995 2195;arrowupdn;UP DOWN ARROW
996 21A8;arrowupdnbse;UP DOWN ARROW WITH BASE
997 F8E6;arrowvertex;VERTICAL ARROW EXTENDER
998 005E;asciicircum;CIRCUMFLEX ACCENT
999 007E;asciitilde;TILDE
1000 002A;asterisk;ASTERISK
1001 2217;asteriskmath;ASTERISK OPERATOR
1002 F6E9;asuperior;SUPERSCRIPT LATIN SMALL LETTER A
1003 0040;at;COMMERCIAL AT
1004 00E3;atilde;LATIN SMALL LETTER A WITH TILDE
1005 0062;b;LATIN SMALL LETTER B
1006 005C;backslash;REVERSE SOLIDUS
1007 007C;bar;VERTICAL LINE
1008 03B2;beta;GREEK SMALL LETTER BETA
1009 2588;block;FULL BLOCK
1010 F8F4;braceex;CURLY BRACKET EXTENDER
1011 007B;braceleft;LEFT CURLY BRACKET
1012 F8F3;braceleftbt;LEFT CURLY BRACKET BOTTOM
1013 F8F2;braceleftmid;LEFT CURLY BRACKET MID
1014 F8F1;bracelefttp;LEFT CURLY BRACKET TOP
1015 007D;braceright;RIGHT CURLY BRACKET
1016 F8FE;bracerightbt;RIGHT CURLY BRACKET BOTTOM
1017 F8FD;bracerightmid;RIGHT CURLY BRACKET MID
1018 F8FC;bracerighttp;RIGHT CURLY BRACKET TOP
1019 005B;bracketleft;LEFT SQUARE BRACKET
1020 F8F0;bracketleftbt;LEFT SQUARE BRACKET BOTTOM
1021 F8EF;bracketleftex;LEFT SQUARE BRACKET EXTENDER
1022 F8EE;bracketlefttp;LEFT SQUARE BRACKET TOP
1023 005D;bracketright;RIGHT SQUARE BRACKET
1024 F8FB;bracketrightbt;RIGHT SQUARE BRACKET BOTTOM
1025 F8FA;bracketrightex;RIGHT SQUARE BRACKET EXTENDER
1026 F8F9;bracketrighttp;RIGHT SQUARE BRACKET TOP
1027 02D8;breve;BREVE
1028 00A6;brokenbar;BROKEN BAR
1029 F6EA;bsuperior;SUPERSCRIPT LATIN SMALL LETTER B
1030 2022;bullet;BULLET
1031 0063;c;LATIN SMALL LETTER C
1032 0107;cacute;LATIN SMALL LETTER C WITH ACUTE
1033 02C7;caron;CARON
1034 21B5;carriagereturn;DOWNWARDS ARROW WITH CORNER LEFTWARDS
1035 010D;ccaron;LATIN SMALL LETTER C WITH CARON
1036 00E7;ccedilla;LATIN SMALL LETTER C WITH CEDILLA
1037 0109;ccircumflex;LATIN SMALL LETTER C WITH CIRCUMFLEX
1038 010B;cdotaccent;LATIN SMALL LETTER C WITH DOT ABOVE
1039 00B8;cedilla;CEDILLA
1040 00A2;cent;CENT SIGN
1041 F6DF;centinferior;SUBSCRIPT CENT SIGN
1042 F7A2;centoldstyle;OLDSTYLE CENT SIGN
1043 F6E0;centsuperior;SUPERSCRIPT CENT SIGN
1044 03C7;chi;GREEK SMALL LETTER CHI
1045 25CB;circle;WHITE CIRCLE
1046 2297;circlemultiply;CIRCLED TIMES
1047 2295;circleplus;CIRCLED PLUS
1048 02C6;circumflex;MODIFIER LETTER CIRCUMFLEX ACCENT
1049 2663;club;BLACK CLUB SUIT
1050 003A;colon;COLON
1051 20A1;colonmonetary;COLON SIGN
1052 002C;comma;COMMA
1053 F6C3;commaaccent;COMMA BELOW
1054 F6E1;commainferior;SUBSCRIPT COMMA
1055 F6E2;commasuperior;SUPERSCRIPT COMMA
1056 2245;congruent;APPROXIMATELY EQUAL TO
1057 00A9;copyright;COPYRIGHT SIGN
1058 F8E9;copyrightsans;COPYRIGHT SIGN SANS SERIF
1059 F6D9;copyrightserif;COPYRIGHT SIGN SERIF
1060 00A4;currency;CURRENCY SIGN
1061 F6D1;cyrBreve;CAPITAL CYRILLIC BREVE
1062 F6D2;cyrFlex;CAPITAL CYRILLIC CIRCUMFLEX
1063 F6D4;cyrbreve;CYRILLIC BREVE
1064 F6D5;cyrflex;CYRILLIC CIRCUMFLEX
1065 0064;d;LATIN SMALL LETTER D
1066 2020;dagger;DAGGER
1067 2021;daggerdbl;DOUBLE DAGGER
1068 F6D3;dblGrave;CAPITAL DOUBLE GRAVE ACCENT
1069 F6D6;dblgrave;DOUBLE GRAVE ACCENT
1070 010F;dcaron;LATIN SMALL LETTER D WITH CARON
1071 0111;dcroat;LATIN SMALL LETTER D WITH STROKE
1072 00B0;degree;DEGREE SIGN
1073 03B4;delta;GREEK SMALL LETTER DELTA
1074 2666;diamond;BLACK DIAMOND SUIT
1075 00A8;dieresis;DIAERESIS
1076 F6D7;dieresisacute;DIAERESIS ACUTE ACCENT
1077 F6D8;dieresisgrave;DIAERESIS GRAVE ACCENT
1078 0385;dieresistonos;GREEK DIALYTIKA TONOS
1079 00F7;divide;DIVISION SIGN
1080 2593;dkshade;DARK SHADE
1081 2584;dnblock;LOWER HALF BLOCK
1082 0024;dollar;DOLLAR SIGN
1083 F6E3;dollarinferior;SUBSCRIPT DOLLAR SIGN
1084 F724;dollaroldstyle;OLDSTYLE DOLLAR SIGN
1085 F6E4;dollarsuperior;SUPERSCRIPT DOLLAR SIGN
1086 20AB;dong;DONG SIGN
1087 02D9;dotaccent;DOT ABOVE
1088 0323;dotbelowcomb;COMBINING DOT BELOW
1089 0131;dotlessi;LATIN SMALL LETTER DOTLESS I
1090 F6BE;dotlessj;LATIN SMALL LETTER DOTLESS J
1091 22C5;dotmath;DOT OPERATOR
1092 F6EB;dsuperior;SUPERSCRIPT LATIN SMALL LETTER D
1093 0065;e;LATIN SMALL LETTER E
1094 00E9;eacute;LATIN SMALL LETTER E WITH ACUTE
1095 0115;ebreve;LATIN SMALL LETTER E WITH BREVE
1096 011B;ecaron;LATIN SMALL LETTER E WITH CARON
1097 00EA;ecircumflex;LATIN SMALL LETTER E WITH CIRCUMFLEX
1098 00EB;edieresis;LATIN SMALL LETTER E WITH DIAERESIS
1099 0117;edotaccent;LATIN SMALL LETTER E WITH DOT ABOVE
1100 00E8;egrave;LATIN SMALL LETTER E WITH GRAVE
1101 0038;eight;DIGIT EIGHT
1102 2088;eightinferior;SUBSCRIPT EIGHT
1103 F738;eightoldstyle;OLDSTYLE DIGIT EIGHT
1104 2078;eightsuperior;SUPERSCRIPT EIGHT
1105 2208;element;ELEMENT OF
1106 2026;ellipsis;HORIZONTAL ELLIPSIS
1107 0113;emacron;LATIN SMALL LETTER E WITH MACRON
1108 2014;emdash;EM DASH
1109 2205;emptyset;EMPTY SET
1110 2013;endash;EN DASH
1111 014B;eng;LATIN SMALL LETTER ENG
1112 0119;eogonek;LATIN SMALL LETTER E WITH OGONEK
1113 03B5;epsilon;GREEK SMALL LETTER EPSILON
1114 03AD;epsilontonos;GREEK SMALL LETTER EPSILON WITH TONOS
1115 003D;equal;EQUALS SIGN
1116 2261;equivalence;IDENTICAL TO
1117 212E;estimated;ESTIMATED SYMBOL
1118 F6EC;esuperior;SUPERSCRIPT LATIN SMALL LETTER E
1119 03B7;eta;GREEK SMALL LETTER ETA
1120 03AE;etatonos;GREEK SMALL LETTER ETA WITH TONOS
1121 00F0;eth;LATIN SMALL LETTER ETH
1122 0021;exclam;EXCLAMATION MARK
1123 203C;exclamdbl;DOUBLE EXCLAMATION MARK
1124 00A1;exclamdown;INVERTED EXCLAMATION MARK
1125 F7A1;exclamdownsmall;SMALL CAPITAL INVERTED EXCLAMATION MARK
1126 F721;exclamsmall;SMALL CAPITAL EXCLAMATION MARK
1127 2203;existential;THERE EXISTS
1128 0066;f;LATIN SMALL LETTER F
1129 2640;female;FEMALE SIGN
1130 FB00;ff;LATIN SMALL LIGATURE FF
1131 FB03;ffi;LATIN SMALL LIGATURE FFI
1132 FB04;ffl;LATIN SMALL LIGATURE FFL
1133 FB01;fi;LATIN SMALL LIGATURE FI
1134 2012;figuredash;FIGURE DASH
1135 25A0;filledbox;BLACK SQUARE
1136 25AC;filledrect;BLACK RECTANGLE
1137 0035;five;DIGIT FIVE
1138 215D;fiveeighths;VULGAR FRACTION FIVE EIGHTHS
1139 2085;fiveinferior;SUBSCRIPT FIVE
1140 F735;fiveoldstyle;OLDSTYLE DIGIT FIVE
1141 2075;fivesuperior;SUPERSCRIPT FIVE
1142 FB02;fl;LATIN SMALL LIGATURE FL
1143 0192;florin;LATIN SMALL LETTER F WITH HOOK
1144 0034;four;DIGIT FOUR
1145 2084;fourinferior;SUBSCRIPT FOUR
1146 F734;fouroldstyle;OLDSTYLE DIGIT FOUR
1147 2074;foursuperior;SUPERSCRIPT FOUR
1148 2044;fraction;FRACTION SLASH
1149 2215;fraction;DIVISION SLASH;Duplicate
1150 20A3;franc;FRENCH FRANC SIGN
1151 0067;g;LATIN SMALL LETTER G
1152 03B3;gamma;GREEK SMALL LETTER GAMMA
1153 011F;gbreve;LATIN SMALL LETTER G WITH BREVE
1154 01E7;gcaron;LATIN SMALL LETTER G WITH CARON
1155 011D;gcircumflex;LATIN SMALL LETTER G WITH CIRCUMFLEX
1156 0123;gcommaaccent;LATIN SMALL LETTER G WITH CEDILLA
1157 0121;gdotaccent;LATIN SMALL LETTER G WITH DOT ABOVE
1158 00DF;germandbls;LATIN SMALL LETTER SHARP S
1159 2207;gradient;NABLA
1160 0060;grave;GRAVE ACCENT
1161 0300;gravecomb;COMBINING GRAVE ACCENT
1162 003E;greater;GREATER-THAN SIGN
1163 2265;greaterequal;GREATER-THAN OR EQUAL TO
1164 00AB;guillemotleft;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
1165 00BB;guillemotright;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
1166 2039;guilsinglleft;SINGLE LEFT-POINTING ANGLE QUOTATION MARK
1167 203A;guilsinglright;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
1168 0068;h;LATIN SMALL LETTER H
1169 0127;hbar;LATIN SMALL LETTER H WITH STROKE
1170 0125;hcircumflex;LATIN SMALL LETTER H WITH CIRCUMFLEX
1171 2665;heart;BLACK HEART SUIT
1172 0309;hookabovecomb;COMBINING HOOK ABOVE
1173 2302;house;HOUSE
1174 02DD;hungarumlaut;DOUBLE ACUTE ACCENT
1175 002D;hyphen;HYPHEN-MINUS
1176 00AD;hyphen;SOFT HYPHEN;Duplicate
1177 F6E5;hypheninferior;SUBSCRIPT HYPHEN-MINUS
1178 F6E6;hyphensuperior;SUPERSCRIPT HYPHEN-MINUS
1179 0069;i;LATIN SMALL LETTER I
1180 00ED;iacute;LATIN SMALL LETTER I WITH ACUTE
1181 012D;ibreve;LATIN SMALL LETTER I WITH BREVE
1182 00EE;icircumflex;LATIN SMALL LETTER I WITH CIRCUMFLEX
1183 00EF;idieresis;LATIN SMALL LETTER I WITH DIAERESIS
1184 00EC;igrave;LATIN SMALL LETTER I WITH GRAVE
1185 0133;ij;LATIN SMALL LIGATURE IJ
1186 012B;imacron;LATIN SMALL LETTER I WITH MACRON
1187 221E;infinity;INFINITY
1188 222B;integral;INTEGRAL
1189 2321;integralbt;BOTTOM HALF INTEGRAL
1190 F8F5;integralex;INTEGRAL EXTENDER
1191 2320;integraltp;TOP HALF INTEGRAL
1192 2229;intersection;INTERSECTION
1193 25D8;invbullet;INVERSE BULLET
1194 25D9;invcircle;INVERSE WHITE CIRCLE
1195 263B;invsmileface;BLACK SMILING FACE
1196 012F;iogonek;LATIN SMALL LETTER I WITH OGONEK
1197 03B9;iota;GREEK SMALL LETTER IOTA
1198 03CA;iotadieresis;GREEK SMALL LETTER IOTA WITH DIALYTIKA
1199 0390;iotadieresistonos;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
1200 03AF;iotatonos;GREEK SMALL LETTER IOTA WITH TONOS
1201 F6ED;isuperior;SUPERSCRIPT LATIN SMALL LETTER I
1202 0129;itilde;LATIN SMALL LETTER I WITH TILDE
1203 006A;j;LATIN SMALL LETTER J
1204 0135;jcircumflex;LATIN SMALL LETTER J WITH CIRCUMFLEX
1205 006B;k;LATIN SMALL LETTER K
1206 03BA;kappa;GREEK SMALL LETTER KAPPA
1207 0137;kcommaaccent;LATIN SMALL LETTER K WITH CEDILLA
1208 0138;kgreenlandic;LATIN SMALL LETTER KRA
1209 006C;l;LATIN SMALL LETTER L
1210 013A;lacute;LATIN SMALL LETTER L WITH ACUTE
1211 03BB;lambda;GREEK SMALL LETTER LAMDA
1212 013E;lcaron;LATIN SMALL LETTER L WITH CARON
1213 013C;lcommaaccent;LATIN SMALL LETTER L WITH CEDILLA
1214 0140;ldot;LATIN SMALL LETTER L WITH MIDDLE DOT
1215 003C;less;LESS-THAN SIGN
1216 2264;lessequal;LESS-THAN OR EQUAL TO
1217 258C;lfblock;LEFT HALF BLOCK
1218 20A4;lira;LIRA SIGN
1219 F6C0;ll;LATIN SMALL LETTER LL
1220 2227;logicaland;LOGICAL AND
1221 00AC;logicalnot;NOT SIGN
1222 2228;logicalor;LOGICAL OR
1223 017F;longs;LATIN SMALL LETTER LONG S
1224 25CA;lozenge;LOZENGE
1225 0142;lslash;LATIN SMALL LETTER L WITH STROKE
1226 F6EE;lsuperior;SUPERSCRIPT LATIN SMALL LETTER L
1227 2591;ltshade;LIGHT SHADE
1228 006D;m;LATIN SMALL LETTER M
1229 00AF;macron;MACRON
1230 02C9;macron;MODIFIER LETTER MACRON;Duplicate
1231 2642;male;MALE SIGN
1232 2212;minus;MINUS SIGN
1233 2032;minute;PRIME
1234 F6EF;msuperior;SUPERSCRIPT LATIN SMALL LETTER M
1235 00B5;mu;MICRO SIGN
1236 03BC;mu;GREEK SMALL LETTER MU;Duplicate
1237 00D7;multiply;MULTIPLICATION SIGN
1238 266A;musicalnote;EIGHTH NOTE
1239 266B;musicalnotedbl;BEAMED EIGHTH NOTES
1240 006E;n;LATIN SMALL LETTER N
1241 0144;nacute;LATIN SMALL LETTER N WITH ACUTE
1242 0149;napostrophe;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
1243 0148;ncaron;LATIN SMALL LETTER N WITH CARON
1244 0146;ncommaaccent;LATIN SMALL LETTER N WITH CEDILLA
1245 0039;nine;DIGIT NINE
1246 2089;nineinferior;SUBSCRIPT NINE
1247 F739;nineoldstyle;OLDSTYLE DIGIT NINE
1248 2079;ninesuperior;SUPERSCRIPT NINE
1249 2209;notelement;NOT AN ELEMENT OF
1250 2260;notequal;NOT EQUAL TO
1251 2284;notsubset;NOT A SUBSET OF
1252 207F;nsuperior;SUPERSCRIPT LATIN SMALL LETTER N
1253 00F1;ntilde;LATIN SMALL LETTER N WITH TILDE
1254 03BD;nu;GREEK SMALL LETTER NU
1255 0023;numbersign;NUMBER SIGN
1256 006F;o;LATIN SMALL LETTER O
1257 00F3;oacute;LATIN SMALL LETTER O WITH ACUTE
1258 014F;obreve;LATIN SMALL LETTER O WITH BREVE
1259 00F4;ocircumflex;LATIN SMALL LETTER O WITH CIRCUMFLEX
1260 00F6;odieresis;LATIN SMALL LETTER O WITH DIAERESIS
1261 0153;oe;LATIN SMALL LIGATURE OE
1262 02DB;ogonek;OGONEK
1263 00F2;ograve;LATIN SMALL LETTER O WITH GRAVE
1264 01A1;ohorn;LATIN SMALL LETTER O WITH HORN
1265 0151;ohungarumlaut;LATIN SMALL LETTER O WITH DOUBLE ACUTE
1266 014D;omacron;LATIN SMALL LETTER O WITH MACRON
1267 03C9;omega;GREEK SMALL LETTER OMEGA
1268 03D6;omega1;GREEK PI SYMBOL
1269 03CE;omegatonos;GREEK SMALL LETTER OMEGA WITH TONOS
1270 03BF;omicron;GREEK SMALL LETTER OMICRON
1271 03CC;omicrontonos;GREEK SMALL LETTER OMICRON WITH TONOS
1272 0031;one;DIGIT ONE
1273 2024;onedotenleader;ONE DOT LEADER
1274 215B;oneeighth;VULGAR FRACTION ONE EIGHTH
1275 F6DC;onefitted;PROPORTIONAL DIGIT ONE
1276 00BD;onehalf;VULGAR FRACTION ONE HALF
1277 2081;oneinferior;SUBSCRIPT ONE
1278 F731;oneoldstyle;OLDSTYLE DIGIT ONE
1279 00BC;onequarter;VULGAR FRACTION ONE QUARTER
1280 00B9;onesuperior;SUPERSCRIPT ONE
1281 2153;onethird;VULGAR FRACTION ONE THIRD
1282 25E6;openbullet;WHITE BULLET
1283 00AA;ordfeminine;FEMININE ORDINAL INDICATOR
1284 00BA;ordmasculine;MASCULINE ORDINAL INDICATOR
1285 221F;orthogonal;RIGHT ANGLE
1286 00F8;oslash;LATIN SMALL LETTER O WITH STROKE
1287 01FF;oslashacute;LATIN SMALL LETTER O WITH STROKE AND ACUTE
1288 F6F0;osuperior;SUPERSCRIPT LATIN SMALL LETTER O
1289 00F5;otilde;LATIN SMALL LETTER O WITH TILDE
1290 0070;p;LATIN SMALL LETTER P
1291 00B6;paragraph;PILCROW SIGN
1292 0028;parenleft;LEFT PARENTHESIS
1293 F8ED;parenleftbt;LEFT PAREN BOTTOM
1294 F8EC;parenleftex;LEFT PAREN EXTENDER
1295 208D;parenleftinferior;SUBSCRIPT LEFT PARENTHESIS
1296 207D;parenleftsuperior;SUPERSCRIPT LEFT PARENTHESIS
1297 F8EB;parenlefttp;LEFT PAREN TOP
1298 0029;parenright;RIGHT PARENTHESIS
1299 F8F8;parenrightbt;RIGHT PAREN BOTTOM
1300 F8F7;parenrightex;RIGHT PAREN EXTENDER
1301 208E;parenrightinferior;SUBSCRIPT RIGHT PARENTHESIS
1302 207E;parenrightsuperior;SUPERSCRIPT RIGHT PARENTHESIS
1303 F8F6;parenrighttp;RIGHT PAREN TOP
1304 2202;partialdiff;PARTIAL DIFFERENTIAL
1305 0025;percent;PERCENT SIGN
1306 002E;period;FULL STOP
1307 00B7;periodcentered;MIDDLE DOT
1308 2219;periodcentered;BULLET OPERATOR;Duplicate
1309 F6E7;periodinferior;SUBSCRIPT FULL STOP
1310 F6E8;periodsuperior;SUPERSCRIPT FULL STOP
1311 22A5;perpendicular;UP TACK
1312 2030;perthousand;PER MILLE SIGN
1313 20A7;peseta;PESETA SIGN
1314 03C6;phi;GREEK SMALL LETTER PHI
1315 03D5;phi1;GREEK PHI SYMBOL
1316 03C0;pi;GREEK SMALL LETTER PI
1317 002B;plus;PLUS SIGN
1318 00B1;plusminus;PLUS-MINUS SIGN
1319 211E;prescription;PRESCRIPTION TAKE
1320 220F;product;N-ARY PRODUCT
1321 2282;propersubset;SUBSET OF
1322 2283;propersuperset;SUPERSET OF
1323 221D;proportional;PROPORTIONAL TO
1324 03C8;psi;GREEK SMALL LETTER PSI
1325 0071;q;LATIN SMALL LETTER Q
1326 003F;question;QUESTION MARK
1327 00BF;questiondown;INVERTED QUESTION MARK
1328 F7BF;questiondownsmall;SMALL CAPITAL INVERTED QUESTION MARK
1329 F73F;questionsmall;SMALL CAPITAL QUESTION MARK
1330 0022;quotedbl;QUOTATION MARK
1331 201E;quotedblbase;DOUBLE LOW-9 QUOTATION MARK
1332 201C;quotedblleft;LEFT DOUBLE QUOTATION MARK
1333 201D;quotedblright;RIGHT DOUBLE QUOTATION MARK
1334 2018;quoteleft;LEFT SINGLE QUOTATION MARK
1335 201B;quotereversed;SINGLE HIGH-REVERSED-9 QUOTATION MARK
1336 2019;quoteright;RIGHT SINGLE QUOTATION MARK
1337 201A;quotesinglbase;SINGLE LOW-9 QUOTATION MARK
1338 0027;quotesingle;APOSTROPHE
1339 0072;r;LATIN SMALL LETTER R
1340 0155;racute;LATIN SMALL LETTER R WITH ACUTE
1341 221A;radical;SQUARE ROOT
1342 F8E5;radicalex;RADICAL EXTENDER
1343 0159;rcaron;LATIN SMALL LETTER R WITH CARON
1344 0157;rcommaaccent;LATIN SMALL LETTER R WITH CEDILLA
1345 2286;reflexsubset;SUBSET OF OR EQUAL TO
1346 2287;reflexsuperset;SUPERSET OF OR EQUAL TO
1347 00AE;registered;REGISTERED SIGN
1348 F8E8;registersans;REGISTERED SIGN SANS SERIF
1349 F6DA;registerserif;REGISTERED SIGN SERIF
1350 2310;revlogicalnot;REVERSED NOT SIGN
1351 03C1;rho;GREEK SMALL LETTER RHO
1352 02DA;ring;RING ABOVE
1353 F6F1;rsuperior;SUPERSCRIPT LATIN SMALL LETTER R
1354 2590;rtblock;RIGHT HALF BLOCK
1355 F6DD;rupiah;RUPIAH SIGN
1356 0073;s;LATIN SMALL LETTER S
1357 015B;sacute;LATIN SMALL LETTER S WITH ACUTE
1358 0161;scaron;LATIN SMALL LETTER S WITH CARON
1359 015F;scedilla;LATIN SMALL LETTER S WITH CEDILLA
1360 F6C2;scedilla;LATIN SMALL LETTER S WITH CEDILLA;Duplicate
1361 015D;scircumflex;LATIN SMALL LETTER S WITH CIRCUMFLEX
1362 0219;scommaaccent;LATIN SMALL LETTER S WITH COMMA BELOW
1363 2033;second;DOUBLE PRIME
1364 00A7;section;SECTION SIGN
1365 003B;semicolon;SEMICOLON
1366 0037;seven;DIGIT SEVEN
1367 215E;seveneighths;VULGAR FRACTION SEVEN EIGHTHS
1368 2087;seveninferior;SUBSCRIPT SEVEN
1369 F737;sevenoldstyle;OLDSTYLE DIGIT SEVEN
1370 2077;sevensuperior;SUPERSCRIPT SEVEN
1371 2592;shade;MEDIUM SHADE
1372 03C3;sigma;GREEK SMALL LETTER SIGMA
1373 03C2;sigma1;GREEK SMALL LETTER FINAL SIGMA
1374 223C;similar;TILDE OPERATOR
1375 0036;six;DIGIT SIX
1376 2086;sixinferior;SUBSCRIPT SIX
1377 F736;sixoldstyle;OLDSTYLE DIGIT SIX
1378 2076;sixsuperior;SUPERSCRIPT SIX
1379 002F;slash;SOLIDUS
1380 263A;smileface;WHITE SMILING FACE
1381 0020;space;SPACE
1382 00A0;space;NO-BREAK SPACE;Duplicate
1383 2660;spade;BLACK SPADE SUIT
1384 F6F2;ssuperior;SUPERSCRIPT LATIN SMALL LETTER S
1385 00A3;sterling;POUND SIGN
1386 220B;suchthat;CONTAINS AS MEMBER
1387 2211;summation;N-ARY SUMMATION
1388 263C;sun;WHITE SUN WITH RAYS
1389 0074;t;LATIN SMALL LETTER T
1390 03C4;tau;GREEK SMALL LETTER TAU
1391 0167;tbar;LATIN SMALL LETTER T WITH STROKE
1392 0165;tcaron;LATIN SMALL LETTER T WITH CARON
1393 0163;tcommaaccent;LATIN SMALL LETTER T WITH CEDILLA
1394 021B;tcommaaccent;LATIN SMALL LETTER T WITH COMMA BELOW;Duplicate
1395 2234;therefore;THEREFORE
1396 03B8;theta;GREEK SMALL LETTER THETA
1397 03D1;theta1;GREEK THETA SYMBOL
1398 00FE;thorn;LATIN SMALL LETTER THORN
1399 0033;three;DIGIT THREE
1400 215C;threeeighths;VULGAR FRACTION THREE EIGHTHS
1401 2083;threeinferior;SUBSCRIPT THREE
1402 F733;threeoldstyle;OLDSTYLE DIGIT THREE
1403 00BE;threequarters;VULGAR FRACTION THREE QUARTERS
1404 F6DE;threequartersemdash;THREE QUARTERS EM DASH
1405 00B3;threesuperior;SUPERSCRIPT THREE
1406 02DC;tilde;SMALL TILDE
1407 0303;tildecomb;COMBINING TILDE
1408 0384;tonos;GREEK TONOS
1409 2122;trademark;TRADE MARK SIGN
1410 F8EA;trademarksans;TRADE MARK SIGN SANS SERIF
1411 F6DB;trademarkserif;TRADE MARK SIGN SERIF
1412 25BC;triagdn;BLACK DOWN-POINTING TRIANGLE
1413 25C4;triaglf;BLACK LEFT-POINTING POINTER
1414 25BA;triagrt;BLACK RIGHT-POINTING POINTER
1415 25B2;triagup;BLACK UP-POINTING TRIANGLE
1416 F6F3;tsuperior;SUPERSCRIPT LATIN SMALL LETTER T
1417 0032;two;DIGIT TWO
1418 2025;twodotenleader;TWO DOT LEADER
1419 2082;twoinferior;SUBSCRIPT TWO
1420 F732;twooldstyle;OLDSTYLE DIGIT TWO
1421 00B2;twosuperior;SUPERSCRIPT TWO
1422 2154;twothirds;VULGAR FRACTION TWO THIRDS
1423 0075;u;LATIN SMALL LETTER U
1424 00FA;uacute;LATIN SMALL LETTER U WITH ACUTE
1425 016D;ubreve;LATIN SMALL LETTER U WITH BREVE
1426 00FB;ucircumflex;LATIN SMALL LETTER U WITH CIRCUMFLEX
1427 00FC;udieresis;LATIN SMALL LETTER U WITH DIAERESIS
1428 00F9;ugrave;LATIN SMALL LETTER U WITH GRAVE
1429 01B0;uhorn;LATIN SMALL LETTER U WITH HORN
1430 0171;uhungarumlaut;LATIN SMALL LETTER U WITH DOUBLE ACUTE
1431 016B;umacron;LATIN SMALL LETTER U WITH MACRON
1432 005F;underscore;LOW LINE
1433 2017;underscoredbl;DOUBLE LOW LINE
1434 222A;union;UNION
1435 2200;universal;FOR ALL
1436 0173;uogonek;LATIN SMALL LETTER U WITH OGONEK
1437 2580;upblock;UPPER HALF BLOCK
1438 03C5;upsilon;GREEK SMALL LETTER UPSILON
1439 03CB;upsilondieresis;GREEK SMALL LETTER UPSILON WITH DIALYTIKA
1440 03B0;upsilondieresistonos;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
1441 03CD;upsilontonos;GREEK SMALL LETTER UPSILON WITH TONOS
1442 016F;uring;LATIN SMALL LETTER U WITH RING ABOVE
1443 0169;utilde;LATIN SMALL LETTER U WITH TILDE
1444 0076;v;LATIN SMALL LETTER V
1445 0077;w;LATIN SMALL LETTER W
1446 1E83;wacute;LATIN SMALL LETTER W WITH ACUTE
1447 0175;wcircumflex;LATIN SMALL LETTER W WITH CIRCUMFLEX
1448 1E85;wdieresis;LATIN SMALL LETTER W WITH DIAERESIS
1449 2118;weierstrass;SCRIPT CAPITAL P
1450 1E81;wgrave;LATIN SMALL LETTER W WITH GRAVE
1451 0078;x;LATIN SMALL LETTER X
1452 03BE;xi;GREEK SMALL LETTER XI
1453 0079;y;LATIN SMALL LETTER Y
1454 00FD;yacute;LATIN SMALL LETTER Y WITH ACUTE
1455 0177;ycircumflex;LATIN SMALL LETTER Y WITH CIRCUMFLEX
1456 00FF;ydieresis;LATIN SMALL LETTER Y WITH DIAERESIS
1457 00A5;yen;YEN SIGN
1458 1EF3;ygrave;LATIN SMALL LETTER Y WITH GRAVE
1459 007A;z;LATIN SMALL LETTER Z
1460 017A;zacute;LATIN SMALL LETTER Z WITH ACUTE
1461 017E;zcaron;LATIN SMALL LETTER Z WITH CARON
1462 017C;zdotaccent;LATIN SMALL LETTER Z WITH DOT ABOVE
1463 0030;zero;DIGIT ZERO
1464 2080;zeroinferior;SUBSCRIPT ZERO
1465 F730;zerooldstyle;OLDSTYLE DIGIT ZERO
1466 2070;zerosuperior;SUPERSCRIPT ZERO
1467 03B6;zeta;GREEK SMALL LETTER ZETA
1468 """
1469
1470
1471 t1_bias    = 0
1472 glyph_list = []
1473
1474
1475 def adobe_glyph_names():
1476   """return the list of glyph names from the adobe list"""
1477
1478   lines  = string.split( adobe_glyph_list, '\n' )
1479   glyphs = []
1480
1481   for line in lines:
1482     if line:
1483       fields = string.split( line, ';' )
1484 #     print fields[0] + ' - ' + fields[1]
1485       glyphs.append( fields[1] )
1486
1487   return glyphs
1488
1489
1490 def adobe_glyph_values():
1491   """return the list of glyph names and their unicode values"""
1492
1493   lines  = string.split( adobe_glyph_list, '\n' )
1494   glyphs = []
1495   values = []
1496
1497   for line in lines:
1498     if line:
1499       fields = string.split( line, ';' )
1500 #     print fields[0] + ' - ' + fields[1]
1501       glyphs.append( fields[1] )
1502       values.append( fields[0] )
1503
1504   return glyphs, values
1505
1506
1507 def filter_glyph_names( alist, filter ):
1508   """filter 'alist' by taking _out_ all glyph names that are in 'filter'"""
1509
1510   count  = 0
1511   extras = []
1512
1513   for name in alist:
1514     try:
1515       filtered_index = filter.index( name )
1516     except:
1517       extras.append( name )
1518
1519   return extras
1520
1521
1522 def dump_mac_indices( file, all_glyphs ):
1523   write = file.write
1524
1525   write( "  static const unsigned short  mac_standard_names[" + \
1526         repr( len( mac_standard_names ) + 1 ) + "] =\n" )
1527   write( "  {\n" )
1528
1529   for name in mac_standard_names:
1530     write( "    " + repr( all_glyphs.index( name ) ) + ",\n" )
1531
1532   write( "    0\n" )
1533   write( "  };\n" )
1534   write( "\n" )
1535   write( "\n" )
1536
1537
1538 def dump_glyph_list( file, base_list, adobe_list ):
1539   write = file.write
1540
1541   name_list = []
1542
1543   write( "  static const char* const  ps_glyph_names[] =\n" )
1544   write( "  {\n" )
1545
1546   for name in base_list:
1547     write( '    "' + name + '",\n' )
1548     name_list.append( name )
1549
1550   write( "\n" )
1551   write( "#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST\n" )
1552   write( "\n" )
1553
1554   for name in adobe_list:
1555     write( '    "' + name + '",\n' )
1556     name_list.append( name )
1557
1558   write( "\n" )
1559   write( "#endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */\n" )
1560   write( "\n" )
1561   write( "    NULL\n" )
1562   write( "  };\n" )
1563   write( "\n" )
1564   write( "\n" )
1565
1566   return name_list
1567
1568
1569 def dump_unicode_values( file, sid_list, adobe_list ):
1570   """build the glyph names to unicode values table"""
1571
1572   write = file.write
1573
1574   agl_names, agl_unicodes = adobe_glyph_values()
1575
1576   write( "\n" )
1577   write( "  static const unsigned short  ps_names_to_unicode[" + \
1578           repr( len( sid_list ) + len( adobe_list ) + 1 ) + "] =\n" )
1579   write( "  {\n" )
1580
1581   for name in sid_list:
1582     try:
1583       index = agl_names.index( name )
1584       write( "    0x" + agl_unicodes[index] + ",\n" )
1585     except:
1586       write( "    0,\n" )
1587
1588   write( "\n" )
1589   write( "#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST\n" )
1590   write( "\n" )
1591
1592   for name in adobe_list:
1593     try:
1594       index = agl_names.index( name )
1595       write( "    0x" + agl_unicodes[index] + ",\n" )
1596     except:
1597       write( "    0,\n" )
1598
1599   write( "\n" )
1600   write( "#endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */\n" )
1601   write( "    0\n" )
1602   write( "  };\n" )
1603   write( "\n" )
1604   write( "\n" )
1605   write( "\n" )
1606
1607
1608 def dump_encoding( file, encoding_name, encoding_list ):
1609   """dumps a given encoding"""
1610
1611   write = file.write
1612
1613   write( "  static const unsigned short  " + encoding_name + "[" + \
1614           repr( len( encoding_list ) + 1 ) + "] =\n" )
1615   write( "  {\n" )
1616
1617   for value in encoding_list:
1618     write( "    " + repr( value ) + ",\n" )
1619   write( "    0\n" )
1620   write( "  };\n" )
1621   write( "\n" )
1622   write( "\n" )
1623
1624
1625 def main():
1626   """main program body"""
1627
1628   if len( sys.argv ) != 2:
1629     print __doc__ % sys.argv[0]
1630     sys.exit( 1 )
1631
1632   file  = open( sys.argv[1], "w\n" )
1633   write = file.write
1634
1635   count_sid = len( sid_standard_names )
1636
1637   # 'mac_extras' contains the list of glyph names in the Macintosh standard
1638   # encoding which are not in either the Adobe Glyph List or the SID
1639   # Standard Names.
1640   #
1641   mac_extras = filter_glyph_names( mac_standard_names, adobe_glyph_names() )
1642   mac_extras = filter_glyph_names( mac_extras, sid_standard_names )
1643
1644   # 'base_list' contains the first names of our final glyph names table.
1645   # It consists of the 'mac_extras' glyph names, followed by the SID
1646   # Standard names.
1647   #
1648   mac_extras_count = len( mac_extras )
1649   t1_bias          = mac_extras_count
1650   base_list        = mac_extras + sid_standard_names
1651
1652   # 'adobe_list' contains the glyph names that are in the AGL, but not in
1653   # the base_list; they will be placed after base_list glyph names in
1654   # our final table.
1655   #
1656   adobe_list  = filter_glyph_names( adobe_glyph_names(), base_list )
1657   adobe_count = len( adobe_list )
1658
1659   write( "/***************************************************************************/\n" )
1660   write( "/*                                                                         */\n" )
1661
1662   write( "/*  %-71s*/\n" % sys.argv[1] )
1663
1664   write( "/*                                                                         */\n" )
1665   write( "/*    PostScript glyph names (specification only).                         */\n" )
1666   write( "/*                                                                         */\n" )
1667   write( "/*  Copyright 2000-2001 by                                                 */\n" )
1668   write( "/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */\n" )
1669   write( "/*                                                                         */\n" )
1670   write( "/*  This file is part of the FreeType project, and may only be used,       */\n" )
1671   write( "/*  modified, and distributed under the terms of the FreeType project      */\n" )
1672   write( "/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */\n" )
1673   write( "/*  this file you indicate that you have read the license and              */\n" )
1674   write( "/*  understand and accept it fully.                                        */\n" )
1675   write( "/*                                                                         */\n" )
1676   write( "/***************************************************************************/\n" )
1677   write( "\n" )
1678   write( "\n" )
1679   write( "  /* this file has been generated automatically -- do not edit! */\n" )
1680   write( "\n" )
1681   write( "\n" )
1682
1683   # dump final glyph list (mac extras + sid standard names + AGL glyph names)
1684   #
1685   name_list = dump_glyph_list( file, base_list, adobe_list )
1686
1687   # dump t1_standard_list
1688   write( "  static const char* const * const  sid_standard_names = " \
1689           + "ps_glyph_names + " + repr( t1_bias ) + ";\n" )
1690   write( "\n" )
1691   write( "\n" )
1692
1693   write( "#define NUM_SID_GLYPHS " + repr( len( sid_standard_names ) ) + "\n" )
1694   write( "\n" )
1695   write( "#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST\n" )
1696   write( "#define NUM_ADOBE_GLYPHS " + \
1697           repr( len( base_list ) + len( adobe_list ) - t1_bias ) + "\n" )
1698   write( "#else\n" )
1699   write( "#define NUM_ADOBE_GLYPHS " + \
1700           repr( len( base_list ) - t1_bias )  + "\n" )
1701   write( "#endif\n" )
1702   write( "\n" )
1703   write( "\n" )
1704
1705   # dump mac indices table
1706   dump_mac_indices( file, name_list )
1707
1708   # dump unicode values table
1709   dump_unicode_values( file, sid_standard_names, adobe_list )
1710
1711   dump_encoding( file, "t1_standard_encoding", t1_standard_encoding )
1712   dump_encoding( file, "t1_expert_encoding", t1_expert_encoding )
1713
1714   write( "/* END */\n" )
1715
1716
1717 # Now run the main routine
1718 #
1719 main()
1720
1721
1722 # END