shithub: freetype+ttf2subf

ref: bb287bd1c0f293b333bf2760f54a24bfab169286
dir: /docs/glnames.py/

View raw version
#!/usr/bin/env python
#
# This very simple python script is used to generate the glyph names
# tables defined in the "psnames" module.
#
#

import sys, string

# this table is used to name the glyph according to the Macintosh
# specification. It is used by the TrueType Postscript names table
mac_standard_names = [
    ".notdef", ".null", "CR", "space", "exclam",
    "quotedbl", "numbersign", "dollar", "percent", "ampersand",

    "quotesingle", "parenleft", "parenright", "asterisk", "plus",
    "comma", "hyphen", "period", "slash", "zero",

    "one", "two", "three", "four", "five",
    "six", "seven", "eight", "nine", "colon",

    "semicolon", "less", "equal", "greater", "question",
    "at", "A", "B", "C", "D",

    "E", "F", "G", "H", "I",
    "J", "K", "L", "M", "N",

    "O", "P", "Q", "R", "S",
    "T", "U", "V", "W", "X",

    "Y", "Z", "bracketleft", "backslash", "bracketright",
    "asciicircum", "underscore", "grave", "a", "b",

    "c", "d", "e", "f", "g",
    "h", "i", "j", "k", "l",

    "m", "n", "o", "p", "q",
    "r", "s", "t", "u", "v",

    "w", "x", "y", "z", "braceleft",
    "bar", "braceright", "asciitilde", "Adieresis", "Aring",

    "Ccedilla", "Eacute", "Ntilde", "Odieresis", "Udieresis",
    "aacute", "agrave", "acircumflex", "adieresis", "atilde",

    "aring", "ccedilla", "eacute", "egrave", "ecircumflex",
    "edieresis", "iacute", "igrave", "icircumflex", "idieresis",

    "ntilde", "oacute", "ograve", "ocircumflex", "odieresis",
    "otilde", "uacute", "ugrave", "ucircumflex", "udieresis",
 
    "dagger", "degree", "cent", "sterling", "section",
    "bullet", "paragraph", "germandbls", "registered", "copyright",
 
    "trademark", "acute", "dieresis", "notequal", "AE",
    "Oslash", "infinity", "plusminus", "lessequal", "greaterequal",

    "yen", "mu", "partialdiff", "summation", "product",
    "pi", "integral", "ordfeminine", "ordmasculine", "Omega",

    "ae", "oslash", "questiondown", "exclamdown", "logicalnot",
    "radical", "florin", "approxequal", "Delta", "guillemotleft",

    "guillemotright", "ellipsis", "nbspace", "Agrave", "Atilde",
    "Otilde", "OE", "oe", "endash", "emdash",

    "quotedblleft", "quotedblright", "quoteleft", "quoteright", "divide",
    "lozenge", "ydieresis", "Ydieresis", "fraction", "currency",

    "guilsinglleft", "guilsinglright", "fi", "fl", "daggerdbl",
    "periodcentered", "quotesinglbase", "quotedblbase", "perthousand", "Acircumflex",

    "Ecircumflex", "Aacute", "Edieresis", "Egrave", "Iacute",
    "Icircumflex", "Idieresis", "Igrave", "Oacute", "Ocircumflex",

    "apple", "Ograve", "Uacute", "Ucircumflex", "Ugrave",
    "dotlessi", "circumflex", "tilde", "macron", "breve",

    "dotaccent", "ring", "cedilla", "hungarumlaut", "ogonek",
    "caron", "Lslash", "lslash", "Scaron", "scaron",

    "Zcaron", "zcaron", "brokenbar", "Eth", "eth",
    "Yacute", "yacute", "Thorn", "thorn", "minus",

    "multiply", "onesuperior", "twosuperior", "threesuperior", "onehalf",
    "onequarter", "threequarters", "franc", "Gbreve", "gbreve",

    "Idot", "Scedilla", "scedilla", "Cacute", "cacute",
    "Ccaron", "ccaron", "dmacron" ]



t1_standard_strings = [
    ".notdef", "space", "exclam", "quotedbl", "numbersign",
    "dollar", "percent", "ampersand", "quoteright", "parenleft",

    "parenright", "asterisk", "plus", "comma", "hyphen",
    "period", "slash", "zero", "one", "two",

    "three", "four", "five", "six", "seven",
    "eight", "nine", "colon", "semicolon", "less",

    "equal", "greater", "question", "at", "A",
    "B", "C", "D", "E", "F",

    "G", "H", "I", "J", "K",
    "L", "M", "N", "O", "P",

    "Q", "R", "S", "T", "U",
    "V", "W", "X", "Y", "Z",

    "bracketleft", "backslash", "bracketright", "asciicircum", "underscore",
    "quoteleft", "a", "b", "c", "d",

    "e", "f", "g", "h", "i",
    "j", "k", "l", "m", "n",

    "o", "p", "q", "r", "s",
    "t", "u", "v", "w", "x",

    "y", "z", "braceleft", "bar", "braceright",
    "asciitilde", "exclamdown", "cent", "sterling", "fraction",

    "yen", "florin", "section", "currency", "quotesingle",
    "quotedblleft", "quillemotleft", "guilsinglleft", "guilsinglright", "fi",

    "fl", "endash", "dagger", "daggerdbl", "periodcenter",
    "paragraph", "bullet", "quotesinglbase", "quotedblbase", "quotedblright",

    "quillemotright", "ellipsis", "perthousand", "questiondown", "grave",
    "acute", "circumflex", "tilde", "macron", "breve",

    "dotaccent", "dieresis", "ring", "cedilla", "hungarumlaut",
    "ogonek", "caron", "emdash", "AE", "ordfeminine",

    "Lslash", "Oslash", "OE", "ordmasculine", "ae",
   "dotlessi", "Islash", "oslash", "oe", "germandbls",

    "onesuperior", "logicalnot", "mu", "trademark", "Eth",
    "onehalf", "plusminus", "Thorn", "onequarter", "divide",

    "brokenbar", "degree", "thorn", "threequarters", "twosuperior",
    "regitered", "minus", "eth", "multiply", "threesuperior",

    "copyright", "Aacute", "Acircumflex", "Adieresis", "Agrave",
    "Aring", "Atilde", "Ccedilla", "Eacute", "Ecircumflex",

    "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis",
    "Igrave", "Ntilde", "Oacute", "Ocircumflex", "Odieresis",

    "Ograve", "Otilde", "Scaron", "Uacute", "Ucircumflex",
    "Udieresis", "Ugrave", "Yacute", "Ydieresis", "Zcaron",

    "aacute", "acircumflex", "adieresis", "agrave", "aring",
    "atilde", "ccedilla", "eacute", "ecircumflex", "edieresis",

    "egrave", "iacute", "icircumflex", "idieresis", "igrave",
    "ntilde", "oacute", "ocircumflex", "odieresis", "ograve",

    "otilde", "scaron", "uacute", "ucircumflex", "udieresis",
    "ugrave", "yacute", "ydieresis", "zcaron", "exclamsmall",

    "Hungarumlautsmall", "dollaroldstyle", "dollarsuperior", "ampersandsmall",
      "Acutesmall",
    "parenleftsuperior", "parenrightsuperior", "twodotenleader",
      "onedotenleader", "zerooldstyle",

    "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle",
      "fiveoldstyle",
    "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle",
      "commasuperior",

    "threequartersemdash", "periodsuperior", "questionsmall", "asuperior",
      "bsuperior",
    "centsuperior", "dsuperior", "esuperior", "isuperior", "lsuperior",

    "msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior",
    "tsuperior", "ff", "ffi", "ffl", "parenleftinferior",

    "parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall",
      "Asmall",
    "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall",

    "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall",
    "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall",

    "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall",
    "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall",

    "colonmonetary", "onefitted", "rupiah", "Tildesmall", "exclamdownsmall",
    "centoldstyle", "Lslashsmall", "Scaronsmall", "Zcaronsmall",
      "Dieresissmall",

    "Brevesmall", "Caronsmall", "Dotaccentsmall", "Macronsmall", "figuredash",
    "hypheninferior", "Ogoneksmall", "Ringsmall", "Cedillasmall",
      "questiondownsmall",

    "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird",
    "twothirds", "zerosuperior", "foursuperior", "fivesuperior",
      "sixsuperior",

    "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior",
      "oneinferior",
    "twoinferior", "threeinferior", "fourinferior", "fiveinferior",
      "sixinferior",

    "seveninferior", "eightinferior", "nineinferior", "centinferior",
      "dollarinferior",
    "periodinferior", "commainferior", "Agravesmall", "Aacutesmall",
      "Acircumflexsmall",

    "Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall",
    "Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall",
      "Igravesmall",

    "Iacutesmall", "Icircumflexsmall", "Idieresissmall", "Ethsmall",
      "Ntildesmall",
    "Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall",
      "Odieresissmall",

    "OEsmall", "Oslashsmall", "Ugravesmall", "Uacautesmall",
      "Ucircumflexsmall",
    "Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall",
      "001.000",

    "001.001", "001.002", "001.003", "Black", "Bold",
    "Book", "Light", "Medium", "Regular", "Roman",

    "Semibold" ]

t1_standard_encoding = [
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   1,   2,   3,   4,   5,   6,   7,   8,
      9,  10,  11,  12,  13,  14,  15,  16,  17,  18,

     19,  20,  21,  22,  23,  24,  25,  26,  27,  28,
     29,  30,  31,  32,  33,  34,  35,  36,  37,  38,
     39,  40,  41,  42,  43,  44,  45,  46,  47,  48,
     49,  50,  51,  52,  53,  54,  55,  56,  57,  58,
     59,  60,  61,  62,  63,  64,  65,  66,  67,  68,

     69,  70,  71,  72,  73,  74,  75,  76,  77,  78,
     79,  80,  81,  82,  83,  84,  85,  86,  87,  88,
     89,  90,  91,  92,  93,  94,  95,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,

      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,  96,  97,  98,  99, 100, 101, 102, 103, 104,
    105, 106, 107, 108, 109, 110,   0, 111, 112, 113,
    114,   0, 115, 116, 117, 118, 119, 120, 121, 122,
      0, 123,   0, 124, 125, 126, 127, 128, 129, 130,

    131,   0, 132, 133,   0, 134, 135, 136, 137,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0, 138,   0, 139,   0,   0,
      0,   0, 140, 141, 142, 143,   0,   0,   0,   0,
      0, 144,   0,   0,   0, 145,   0,   0, 146, 147,

    148, 149,   0,   0,   0,   0 ]

t1_expert_encoding = [
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   1, 229, 230,   0, 231, 232, 233, 234,
    235, 236, 237, 238,  13,  14,  15,  99, 239, 240,

    241, 242, 243, 244, 245, 246, 247, 248,  27,  28,
    249, 250, 251, 252,   0, 253, 254, 255, 256, 257,
      0,   0,   0, 258,   0,   0, 259, 260, 261, 262,
      0,   0, 263, 264, 265,   0, 266, 109, 110, 267,
    268, 269,   0, 270, 271, 272, 273, 274, 275, 276,

    277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
    287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
    297, 298, 299, 300, 301, 302, 303,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,

      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0, 304, 305, 306,   0,   0, 307, 308, 309, 310,
    311,   0, 312,   0,   0, 312,   0,   0, 314, 315,
      0,   0, 316, 317, 318,   0,   0,   0, 158, 155,
    163, 319, 320, 321, 322, 323, 324, 325,   0,   0,

    326, 150, 164, 169, 327, 328, 329, 330, 331, 332,
    333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
    343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
    353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
    363, 364, 365, 366, 367, 368, 369, 370, 371, 372,

    373, 374, 375, 376, 377, 378 ]

adobe_glyph_list = """\
0041;A;LATIN CAPITAL LETTER A
00C6;AE;LATIN CAPITAL LETTER AE
01FC;AEacute;LATIN CAPITAL LETTER AE WITH ACUTE
F7E6;AEsmall;LATIN SMALL CAPITAL LETTER AE
00C1;Aacute;LATIN CAPITAL LETTER A WITH ACUTE
F7E1;Aacutesmall;LATIN SMALL CAPITAL LETTER A WITH ACUTE
0102;Abreve;LATIN CAPITAL LETTER A WITH BREVE
00C2;Acircumflex;LATIN CAPITAL LETTER A WITH CIRCUMFLEX
F7E2;Acircumflexsmall;LATIN SMALL CAPITAL LETTER A WITH CIRCUMFLEX
F6C9;Acute;CAPITAL ACUTE ACCENT
F7B4;Acutesmall;SMALL CAPITAL ACUTE ACCENT
00C4;Adieresis;LATIN CAPITAL LETTER A WITH DIAERESIS
F7E4;Adieresissmall;LATIN SMALL CAPITAL LETTER A WITH DIAERESIS
00C0;Agrave;LATIN CAPITAL LETTER A WITH GRAVE
F7E0;Agravesmall;LATIN SMALL CAPITAL LETTER A WITH GRAVE
0391;Alpha;GREEK CAPITAL LETTER ALPHA
0386;Alphatonos;GREEK CAPITAL LETTER ALPHA WITH TONOS
0100;Amacron;LATIN CAPITAL LETTER A WITH MACRON
0104;Aogonek;LATIN CAPITAL LETTER A WITH OGONEK
00C5;Aring;LATIN CAPITAL LETTER A WITH RING ABOVE
01FA;Aringacute;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
F7E5;Aringsmall;LATIN SMALL CAPITAL LETTER A WITH RING ABOVE
F761;Asmall;LATIN SMALL CAPITAL LETTER A
00C3;Atilde;LATIN CAPITAL LETTER A WITH TILDE
F7E3;Atildesmall;LATIN SMALL CAPITAL LETTER A WITH TILDE
0042;B;LATIN CAPITAL LETTER B
0392;Beta;GREEK CAPITAL LETTER BETA
F6F4;Brevesmall;SMALL CAPITAL BREVE
F762;Bsmall;LATIN SMALL CAPITAL LETTER B
0043;C;LATIN CAPITAL LETTER C
0106;Cacute;LATIN CAPITAL LETTER C WITH ACUTE
F6CA;Caron;CAPITAL CARON
F6F5;Caronsmall;SMALL CAPITAL CARON
010C;Ccaron;LATIN CAPITAL LETTER C WITH CARON
00C7;Ccedilla;LATIN CAPITAL LETTER C WITH CEDILLA
F7E7;Ccedillasmall;LATIN SMALL CAPITAL LETTER C WITH CEDILLA
0108;Ccircumflex;LATIN CAPITAL LETTER C WITH CIRCUMFLEX
010A;Cdotaccent;LATIN CAPITAL LETTER C WITH DOT ABOVE
F7B8;Cedillasmall;SMALL CAPITAL CEDILLA
03A7;Chi;GREEK CAPITAL LETTER CHI
F6F6;Circumflexsmall;SMALL CAPITAL MODIFIER LETTER CIRCUMFLEX ACCENT
F763;Csmall;LATIN SMALL CAPITAL LETTER C
0044;D;LATIN CAPITAL LETTER D
010E;Dcaron;LATIN CAPITAL LETTER D WITH CARON
0110;Dcroat;LATIN CAPITAL LETTER D WITH STROKE
2206;Delta;INCREMENT
0394;Delta;GREEK CAPITAL LETTER DELTA;Duplicate
F6CB;Dieresis;CAPITAL DIAERESIS
F6CC;DieresisAcute;CAPITAL DIAERESIS ACUTE ACCENT
F6CD;DieresisGrave;CAPITAL DIAERESIS GRAVE ACCENT
F7A8;Dieresissmall;SMALL CAPITAL DIAERESIS
F6F7;Dotaccentsmall;SMALL CAPITAL DOT ABOVE
F764;Dsmall;LATIN SMALL CAPITAL LETTER D
0045;E;LATIN CAPITAL LETTER E
00C9;Eacute;LATIN CAPITAL LETTER E WITH ACUTE
F7E9;Eacutesmall;LATIN SMALL CAPITAL LETTER E WITH ACUTE
0114;Ebreve;LATIN CAPITAL LETTER E WITH BREVE
011A;Ecaron;LATIN CAPITAL LETTER E WITH CARON
00CA;Ecircumflex;LATIN CAPITAL LETTER E WITH CIRCUMFLEX
F7EA;Ecircumflexsmall;LATIN SMALL CAPITAL LETTER E WITH CIRCUMFLEX
00CB;Edieresis;LATIN CAPITAL LETTER E WITH DIAERESIS
F7EB;Edieresissmall;LATIN SMALL CAPITAL LETTER E WITH DIAERESIS
0116;Edotaccent;LATIN CAPITAL LETTER E WITH DOT ABOVE
00C8;Egrave;LATIN CAPITAL LETTER E WITH GRAVE
F7E8;Egravesmall;LATIN SMALL CAPITAL LETTER E WITH GRAVE
0112;Emacron;LATIN CAPITAL LETTER E WITH MACRON
014A;Eng;LATIN CAPITAL LETTER ENG
0118;Eogonek;LATIN CAPITAL LETTER E WITH OGONEK
0395;Epsilon;GREEK CAPITAL LETTER EPSILON
0388;Epsilontonos;GREEK CAPITAL LETTER EPSILON WITH TONOS
F765;Esmall;LATIN SMALL CAPITAL LETTER E
0397;Eta;GREEK CAPITAL LETTER ETA
0389;Etatonos;GREEK CAPITAL LETTER ETA WITH TONOS
00D0;Eth;LATIN CAPITAL LETTER ETH
F7F0;Ethsmall;LATIN SMALL CAPITAL LETTER ETH
20AC;Euro;EURO SIGN
0046;F;LATIN CAPITAL LETTER F
F766;Fsmall;LATIN SMALL CAPITAL LETTER F
0047;G;LATIN CAPITAL LETTER G
0393;Gamma;GREEK CAPITAL LETTER GAMMA
011E;Gbreve;LATIN CAPITAL LETTER G WITH BREVE
01E6;Gcaron;LATIN CAPITAL LETTER G WITH CARON
011C;Gcircumflex;LATIN CAPITAL LETTER G WITH CIRCUMFLEX
0122;Gcommaaccent;LATIN CAPITAL LETTER G WITH CEDILLA
0120;Gdotaccent;LATIN CAPITAL LETTER G WITH DOT ABOVE
F6CE;Grave;CAPITAL GRAVE ACCENT
F760;Gravesmall;SMALL CAPITAL GRAVE ACCENT
F767;Gsmall;LATIN SMALL CAPITAL LETTER G
0048;H;LATIN CAPITAL LETTER H
25CF;H18533;BLACK CIRCLE
25AA;H18543;BLACK SMALL SQUARE
25AB;H18551;WHITE SMALL SQUARE
25A1;H22073;WHITE SQUARE
0126;Hbar;LATIN CAPITAL LETTER H WITH STROKE
0124;Hcircumflex;LATIN CAPITAL LETTER H WITH CIRCUMFLEX
F768;Hsmall;LATIN SMALL CAPITAL LETTER H
F6CF;Hungarumlaut;CAPITAL DOUBLE ACUTE ACCENT
F6F8;Hungarumlautsmall;SMALL CAPITAL DOUBLE ACUTE ACCENT
0049;I;LATIN CAPITAL LETTER I
0132;IJ;LATIN CAPITAL LIGATURE IJ
00CD;Iacute;LATIN CAPITAL LETTER I WITH ACUTE
F7ED;Iacutesmall;LATIN SMALL CAPITAL LETTER I WITH ACUTE
012C;Ibreve;LATIN CAPITAL LETTER I WITH BREVE
00CE;Icircumflex;LATIN CAPITAL LETTER I WITH CIRCUMFLEX
F7EE;Icircumflexsmall;LATIN SMALL CAPITAL LETTER I WITH CIRCUMFLEX
00CF;Idieresis;LATIN CAPITAL LETTER I WITH DIAERESIS
F7EF;Idieresissmall;LATIN SMALL CAPITAL LETTER I WITH DIAERESIS
0130;Idotaccent;LATIN CAPITAL LETTER I WITH DOT ABOVE
2111;Ifraktur;BLACK-LETTER CAPITAL I
00CC;Igrave;LATIN CAPITAL LETTER I WITH GRAVE
F7EC;Igravesmall;LATIN SMALL CAPITAL LETTER I WITH GRAVE
012A;Imacron;LATIN CAPITAL LETTER I WITH MACRON
012E;Iogonek;LATIN CAPITAL LETTER I WITH OGONEK
0399;Iota;GREEK CAPITAL LETTER IOTA
03AA;Iotadieresis;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
038A;Iotatonos;GREEK CAPITAL LETTER IOTA WITH TONOS
F769;Ismall;LATIN SMALL CAPITAL LETTER I
0128;Itilde;LATIN CAPITAL LETTER I WITH TILDE
004A;J;LATIN CAPITAL LETTER J
0134;Jcircumflex;LATIN CAPITAL LETTER J WITH CIRCUMFLEX
F76A;Jsmall;LATIN SMALL CAPITAL LETTER J
004B;K;LATIN CAPITAL LETTER K
039A;Kappa;GREEK CAPITAL LETTER KAPPA
0136;Kcommaaccent;LATIN CAPITAL LETTER K WITH CEDILLA
F76B;Ksmall;LATIN SMALL CAPITAL LETTER K
004C;L;LATIN CAPITAL LETTER L
F6BF;LL;LATIN CAPITAL LETTER LL
0139;Lacute;LATIN CAPITAL LETTER L WITH ACUTE
039B;Lambda;GREEK CAPITAL LETTER LAMDA
013D;Lcaron;LATIN CAPITAL LETTER L WITH CARON
013B;Lcommaaccent;LATIN CAPITAL LETTER L WITH CEDILLA
013F;Ldot;LATIN CAPITAL LETTER L WITH MIDDLE DOT
0141;Lslash;LATIN CAPITAL LETTER L WITH STROKE
F6F9;Lslashsmall;LATIN SMALL CAPITAL LETTER L WITH STROKE
F76C;Lsmall;LATIN SMALL CAPITAL LETTER L
004D;M;LATIN CAPITAL LETTER M
F6D0;Macron;CAPITAL MACRON
F7AF;Macronsmall;SMALL CAPITAL MACRON
F76D;Msmall;LATIN SMALL CAPITAL LETTER M
039C;Mu;GREEK CAPITAL LETTER MU
004E;N;LATIN CAPITAL LETTER N
0143;Nacute;LATIN CAPITAL LETTER N WITH ACUTE
0147;Ncaron;LATIN CAPITAL LETTER N WITH CARON
0145;Ncommaaccent;LATIN CAPITAL LETTER N WITH CEDILLA
F76E;Nsmall;LATIN SMALL CAPITAL LETTER N
00D1;Ntilde;LATIN CAPITAL LETTER N WITH TILDE
F7F1;Ntildesmall;LATIN SMALL CAPITAL LETTER N WITH TILDE
039D;Nu;GREEK CAPITAL LETTER NU
004F;O;LATIN CAPITAL LETTER O
0152;OE;LATIN CAPITAL LIGATURE OE
F6FA;OEsmall;LATIN SMALL CAPITAL LIGATURE OE
00D3;Oacute;LATIN CAPITAL LETTER O WITH ACUTE
F7F3;Oacutesmall;LATIN SMALL CAPITAL LETTER O WITH ACUTE
014E;Obreve;LATIN CAPITAL LETTER O WITH BREVE
00D4;Ocircumflex;LATIN CAPITAL LETTER O WITH CIRCUMFLEX
F7F4;Ocircumflexsmall;LATIN SMALL CAPITAL LETTER O WITH CIRCUMFLEX
00D6;Odieresis;LATIN CAPITAL LETTER O WITH DIAERESIS
F7F6;Odieresissmall;LATIN SMALL CAPITAL LETTER O WITH DIAERESIS
F6FB;Ogoneksmall;SMALL CAPITAL OGONEK
00D2;Ograve;LATIN CAPITAL LETTER O WITH GRAVE
F7F2;Ogravesmall;LATIN SMALL CAPITAL LETTER O WITH GRAVE
01A0;Ohorn;LATIN CAPITAL LETTER O WITH HORN
0150;Ohungarumlaut;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
014C;Omacron;LATIN CAPITAL LETTER O WITH MACRON
2126;Omega;OHM SIGN
03A9;Omega;GREEK CAPITAL LETTER OMEGA;Duplicate
038F;Omegatonos;GREEK CAPITAL LETTER OMEGA WITH TONOS
039F;Omicron;GREEK CAPITAL LETTER OMICRON
038C;Omicrontonos;GREEK CAPITAL LETTER OMICRON WITH TONOS
00D8;Oslash;LATIN CAPITAL LETTER O WITH STROKE
01FE;Oslashacute;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
F7F8;Oslashsmall;LATIN SMALL CAPITAL LETTER O WITH STROKE
F76F;Osmall;LATIN SMALL CAPITAL LETTER O
00D5;Otilde;LATIN CAPITAL LETTER O WITH TILDE
F7F5;Otildesmall;LATIN SMALL CAPITAL LETTER O WITH TILDE
0050;P;LATIN CAPITAL LETTER P
03A6;Phi;GREEK CAPITAL LETTER PHI
03A0;Pi;GREEK CAPITAL LETTER PI
03A8;Psi;GREEK CAPITAL LETTER PSI
F770;Psmall;LATIN SMALL CAPITAL LETTER P
0051;Q;LATIN CAPITAL LETTER Q
F771;Qsmall;LATIN SMALL CAPITAL LETTER Q
0052;R;LATIN CAPITAL LETTER R
0154;Racute;LATIN CAPITAL LETTER R WITH ACUTE
0158;Rcaron;LATIN CAPITAL LETTER R WITH CARON
0156;Rcommaaccent;LATIN CAPITAL LETTER R WITH CEDILLA
211C;Rfraktur;BLACK-LETTER CAPITAL R
03A1;Rho;GREEK CAPITAL LETTER RHO
F6FC;Ringsmall;SMALL CAPITAL RING ABOVE
F772;Rsmall;LATIN SMALL CAPITAL LETTER R
0053;S;LATIN CAPITAL LETTER S
250C;SF010000;BOX DRAWINGS LIGHT DOWN AND RIGHT
2514;SF020000;BOX DRAWINGS LIGHT UP AND RIGHT
2510;SF030000;BOX DRAWINGS LIGHT DOWN AND LEFT
2518;SF040000;BOX DRAWINGS LIGHT UP AND LEFT
253C;SF050000;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
252C;SF060000;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
2534;SF070000;BOX DRAWINGS LIGHT UP AND HORIZONTAL
251C;SF080000;BOX DRAWINGS LIGHT VERTICAL AND RIGHT
2524;SF090000;BOX DRAWINGS LIGHT VERTICAL AND LEFT
2500;SF100000;BOX DRAWINGS LIGHT HORIZONTAL
2502;SF110000;BOX DRAWINGS LIGHT VERTICAL
2561;SF190000;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
2562;SF200000;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
2556;SF210000;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
2555;SF220000;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
2563;SF230000;BOX DRAWINGS DOUBLE VERTICAL AND LEFT
2551;SF240000;BOX DRAWINGS DOUBLE VERTICAL
2557;SF250000;BOX DRAWINGS DOUBLE DOWN AND LEFT
255D;SF260000;BOX DRAWINGS DOUBLE UP AND LEFT
255C;SF270000;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
255B;SF280000;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
255E;SF360000;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
255F;SF370000;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
255A;SF380000;BOX DRAWINGS DOUBLE UP AND RIGHT
2554;SF390000;BOX DRAWINGS DOUBLE DOWN AND RIGHT
2569;SF400000;BOX DRAWINGS DOUBLE UP AND HORIZONTAL
2566;SF410000;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
2560;SF420000;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
2550;SF430000;BOX DRAWINGS DOUBLE HORIZONTAL
256C;SF440000;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
2567;SF450000;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
2568;SF460000;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
2564;SF470000;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
2565;SF480000;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
2559;SF490000;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
2558;SF500000;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
2552;SF510000;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
2553;SF520000;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
256B;SF530000;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
256A;SF540000;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
015A;Sacute;LATIN CAPITAL LETTER S WITH ACUTE
0160;Scaron;LATIN CAPITAL LETTER S WITH CARON
F6FD;Scaronsmall;LATIN SMALL CAPITAL LETTER S WITH CARON
015E;Scedilla;LATIN CAPITAL LETTER S WITH CEDILLA
F6C1;Scedilla;LATIN CAPITAL LETTER S WITH CEDILLA;Duplicate
015C;Scircumflex;LATIN CAPITAL LETTER S WITH CIRCUMFLEX
0218;Scommaaccent;LATIN CAPITAL LETTER S WITH COMMA BELOW
03A3;Sigma;GREEK CAPITAL LETTER SIGMA
F773;Ssmall;LATIN SMALL CAPITAL LETTER S
0054;T;LATIN CAPITAL LETTER T
03A4;Tau;GREEK CAPITAL LETTER TAU
0166;Tbar;LATIN CAPITAL LETTER T WITH STROKE
0164;Tcaron;LATIN CAPITAL LETTER T WITH CARON
0162;Tcommaaccent;LATIN CAPITAL LETTER T WITH CEDILLA
021A;Tcommaaccent;LATIN CAPITAL LETTER T WITH COMMA BELOW;Duplicate
0398;Theta;GREEK CAPITAL LETTER THETA
00DE;Thorn;LATIN CAPITAL LETTER THORN
F7FE;Thornsmall;LATIN SMALL CAPITAL LETTER THORN
F6FE;Tildesmall;SMALL CAPITAL SMALL TILDE
F774;Tsmall;LATIN SMALL CAPITAL LETTER T
0055;U;LATIN CAPITAL LETTER U
00DA;Uacute;LATIN CAPITAL LETTER U WITH ACUTE
F7FA;Uacutesmall;LATIN SMALL CAPITAL LETTER U WITH ACUTE
016C;Ubreve;LATIN CAPITAL LETTER U WITH BREVE
00DB;Ucircumflex;LATIN CAPITAL LETTER U WITH CIRCUMFLEX
F7FB;Ucircumflexsmall;LATIN SMALL CAPITAL LETTER U WITH CIRCUMFLEX
00DC;Udieresis;LATIN CAPITAL LETTER U WITH DIAERESIS
F7FC;Udieresissmall;LATIN SMALL CAPITAL LETTER U WITH DIAERESIS
00D9;Ugrave;LATIN CAPITAL LETTER U WITH GRAVE
F7F9;Ugravesmall;LATIN SMALL CAPITAL LETTER U WITH GRAVE
01AF;Uhorn;LATIN CAPITAL LETTER U WITH HORN
0170;Uhungarumlaut;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
016A;Umacron;LATIN CAPITAL LETTER U WITH MACRON
0172;Uogonek;LATIN CAPITAL LETTER U WITH OGONEK
03A5;Upsilon;GREEK CAPITAL LETTER UPSILON
03D2;Upsilon1;GREEK UPSILON WITH HOOK SYMBOL
03AB;Upsilondieresis;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
038E;Upsilontonos;GREEK CAPITAL LETTER UPSILON WITH TONOS
016E;Uring;LATIN CAPITAL LETTER U WITH RING ABOVE
F775;Usmall;LATIN SMALL CAPITAL LETTER U
0168;Utilde;LATIN CAPITAL LETTER U WITH TILDE
0056;V;LATIN CAPITAL LETTER V
F776;Vsmall;LATIN SMALL CAPITAL LETTER V
0057;W;LATIN CAPITAL LETTER W
1E82;Wacute;LATIN CAPITAL LETTER W WITH ACUTE
0174;Wcircumflex;LATIN CAPITAL LETTER W WITH CIRCUMFLEX
1E84;Wdieresis;LATIN CAPITAL LETTER W WITH DIAERESIS
1E80;Wgrave;LATIN CAPITAL LETTER W WITH GRAVE
F777;Wsmall;LATIN SMALL CAPITAL LETTER W
0058;X;LATIN CAPITAL LETTER X
039E;Xi;GREEK CAPITAL LETTER XI
F778;Xsmall;LATIN SMALL CAPITAL LETTER X
0059;Y;LATIN CAPITAL LETTER Y
00DD;Yacute;LATIN CAPITAL LETTER Y WITH ACUTE
F7FD;Yacutesmall;LATIN SMALL CAPITAL LETTER Y WITH ACUTE
0176;Ycircumflex;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
0178;Ydieresis;LATIN CAPITAL LETTER Y WITH DIAERESIS
F7FF;Ydieresissmall;LATIN SMALL CAPITAL LETTER Y WITH DIAERESIS
1EF2;Ygrave;LATIN CAPITAL LETTER Y WITH GRAVE
F779;Ysmall;LATIN SMALL CAPITAL LETTER Y
005A;Z;LATIN CAPITAL LETTER Z
0179;Zacute;LATIN CAPITAL LETTER Z WITH ACUTE
017D;Zcaron;LATIN CAPITAL LETTER Z WITH CARON
F6FF;Zcaronsmall;LATIN SMALL CAPITAL LETTER Z WITH CARON
017B;Zdotaccent;LATIN CAPITAL LETTER Z WITH DOT ABOVE
0396;Zeta;GREEK CAPITAL LETTER ZETA
F77A;Zsmall;LATIN SMALL CAPITAL LETTER Z
0061;a;LATIN SMALL LETTER A
00E1;aacute;LATIN SMALL LETTER A WITH ACUTE
0103;abreve;LATIN SMALL LETTER A WITH BREVE
00E2;acircumflex;LATIN SMALL LETTER A WITH CIRCUMFLEX
00B4;acute;ACUTE ACCENT
0301;acutecomb;COMBINING ACUTE ACCENT
00E4;adieresis;LATIN SMALL LETTER A WITH DIAERESIS
00E6;ae;LATIN SMALL LETTER AE
01FD;aeacute;LATIN SMALL LETTER AE WITH ACUTE
2015;afii00208;HORIZONTAL BAR
0410;afii10017;CYRILLIC CAPITAL LETTER A
0411;afii10018;CYRILLIC CAPITAL LETTER BE
0412;afii10019;CYRILLIC CAPITAL LETTER VE
0413;afii10020;CYRILLIC CAPITAL LETTER GHE
0414;afii10021;CYRILLIC CAPITAL LETTER DE
0415;afii10022;CYRILLIC CAPITAL LETTER IE
0401;afii10023;CYRILLIC CAPITAL LETTER IO
0416;afii10024;CYRILLIC CAPITAL LETTER ZHE
0417;afii10025;CYRILLIC CAPITAL LETTER ZE
0418;afii10026;CYRILLIC CAPITAL LETTER I
0419;afii10027;CYRILLIC CAPITAL LETTER SHORT I
041A;afii10028;CYRILLIC CAPITAL LETTER KA
041B;afii10029;CYRILLIC CAPITAL LETTER EL
041C;afii10030;CYRILLIC CAPITAL LETTER EM
041D;afii10031;CYRILLIC CAPITAL LETTER EN
041E;afii10032;CYRILLIC CAPITAL LETTER O
041F;afii10033;CYRILLIC CAPITAL LETTER PE
0420;afii10034;CYRILLIC CAPITAL LETTER ER
0421;afii10035;CYRILLIC CAPITAL LETTER ES
0422;afii10036;CYRILLIC CAPITAL LETTER TE
0423;afii10037;CYRILLIC CAPITAL LETTER U
0424;afii10038;CYRILLIC CAPITAL LETTER EF
0425;afii10039;CYRILLIC CAPITAL LETTER HA
0426;afii10040;CYRILLIC CAPITAL LETTER TSE
0427;afii10041;CYRILLIC CAPITAL LETTER CHE
0428;afii10042;CYRILLIC CAPITAL LETTER SHA
0429;afii10043;CYRILLIC CAPITAL LETTER SHCHA
042A;afii10044;CYRILLIC CAPITAL LETTER HARD SIGN
042B;afii10045;CYRILLIC CAPITAL LETTER YERU
042C;afii10046;CYRILLIC CAPITAL LETTER SOFT SIGN
042D;afii10047;CYRILLIC CAPITAL LETTER E
042E;afii10048;CYRILLIC CAPITAL LETTER YU
042F;afii10049;CYRILLIC CAPITAL LETTER YA
0490;afii10050;CYRILLIC CAPITAL LETTER GHE WITH UPTURN
0402;afii10051;CYRILLIC CAPITAL LETTER DJE
0403;afii10052;CYRILLIC CAPITAL LETTER GJE
0404;afii10053;CYRILLIC CAPITAL LETTER UKRAINIAN IE
0405;afii10054;CYRILLIC CAPITAL LETTER DZE
0406;afii10055;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
0407;afii10056;CYRILLIC CAPITAL LETTER YI
0408;afii10057;CYRILLIC CAPITAL LETTER JE
0409;afii10058;CYRILLIC CAPITAL LETTER LJE
040A;afii10059;CYRILLIC CAPITAL LETTER NJE
040B;afii10060;CYRILLIC CAPITAL LETTER TSHE
040C;afii10061;CYRILLIC CAPITAL LETTER KJE
040E;afii10062;CYRILLIC CAPITAL LETTER SHORT U
F6C4;afii10063;CYRILLIC SMALL LETTER GHE VARIANT
F6C5;afii10064;CYRILLIC SMALL LETTER BE VARIANT
0430;afii10065;CYRILLIC SMALL LETTER A
0431;afii10066;CYRILLIC SMALL LETTER BE
0432;afii10067;CYRILLIC SMALL LETTER VE
0433;afii10068;CYRILLIC SMALL LETTER GHE
0434;afii10069;CYRILLIC SMALL LETTER DE
0435;afii10070;CYRILLIC SMALL LETTER IE
0451;afii10071;CYRILLIC SMALL LETTER IO
0436;afii10072;CYRILLIC SMALL LETTER ZHE
0437;afii10073;CYRILLIC SMALL LETTER ZE
0438;afii10074;CYRILLIC SMALL LETTER I
0439;afii10075;CYRILLIC SMALL LETTER SHORT I
043A;afii10076;CYRILLIC SMALL LETTER KA
043B;afii10077;CYRILLIC SMALL LETTER EL
043C;afii10078;CYRILLIC SMALL LETTER EM
043D;afii10079;CYRILLIC SMALL LETTER EN
043E;afii10080;CYRILLIC SMALL LETTER O
043F;afii10081;CYRILLIC SMALL LETTER PE
0440;afii10082;CYRILLIC SMALL LETTER ER
0441;afii10083;CYRILLIC SMALL LETTER ES
0442;afii10084;CYRILLIC SMALL LETTER TE
0443;afii10085;CYRILLIC SMALL LETTER U
0444;afii10086;CYRILLIC SMALL LETTER EF
0445;afii10087;CYRILLIC SMALL LETTER HA
0446;afii10088;CYRILLIC SMALL LETTER TSE
0447;afii10089;CYRILLIC SMALL LETTER CHE
0448;afii10090;CYRILLIC SMALL LETTER SHA
0449;afii10091;CYRILLIC SMALL LETTER SHCHA
044A;afii10092;CYRILLIC SMALL LETTER HARD SIGN
044B;afii10093;CYRILLIC SMALL LETTER YERU
044C;afii10094;CYRILLIC SMALL LETTER SOFT SIGN
044D;afii10095;CYRILLIC SMALL LETTER E
044E;afii10096;CYRILLIC SMALL LETTER YU
044F;afii10097;CYRILLIC SMALL LETTER YA
0491;afii10098;CYRILLIC SMALL LETTER GHE WITH UPTURN
0452;afii10099;CYRILLIC SMALL LETTER DJE
0453;afii10100;CYRILLIC SMALL LETTER GJE
0454;afii10101;CYRILLIC SMALL LETTER UKRAINIAN IE
0455;afii10102;CYRILLIC SMALL LETTER DZE
0456;afii10103;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
0457;afii10104;CYRILLIC SMALL LETTER YI
0458;afii10105;CYRILLIC SMALL LETTER JE
0459;afii10106;CYRILLIC SMALL LETTER LJE
045A;afii10107;CYRILLIC SMALL LETTER NJE
045B;afii10108;CYRILLIC SMALL LETTER TSHE
045C;afii10109;CYRILLIC SMALL LETTER KJE
045E;afii10110;CYRILLIC SMALL LETTER SHORT U
040F;afii10145;CYRILLIC CAPITAL LETTER DZHE
0462;afii10146;CYRILLIC CAPITAL LETTER YAT
0472;afii10147;CYRILLIC CAPITAL LETTER FITA
0474;afii10148;CYRILLIC CAPITAL LETTER IZHITSA
F6C6;afii10192;CYRILLIC SMALL LETTER DE VARIANT
045F;afii10193;CYRILLIC SMALL LETTER DZHE
0463;afii10194;CYRILLIC SMALL LETTER YAT
0473;afii10195;CYRILLIC SMALL LETTER FITA
0475;afii10196;CYRILLIC SMALL LETTER IZHITSA
F6C7;afii10831;CYRILLIC SMALL LETTER PE VARIANT
F6C8;afii10832;CYRILLIC SMALL LETTER TE VARIANT
04D9;afii10846;CYRILLIC SMALL LETTER SCHWA
200E;afii299;LEFT-TO-RIGHT MARK
200F;afii300;RIGHT-TO-LEFT MARK
200D;afii301;ZERO WIDTH JOINER
066A;afii57381;ARABIC PERCENT SIGN
060C;afii57388;ARABIC COMMA
0660;afii57392;ARABIC-INDIC DIGIT ZERO
0661;afii57393;ARABIC-INDIC DIGIT ONE
0662;afii57394;ARABIC-INDIC DIGIT TWO
0663;afii57395;ARABIC-INDIC DIGIT THREE
0664;afii57396;ARABIC-INDIC DIGIT FOUR
0665;afii57397;ARABIC-INDIC DIGIT FIVE
0666;afii57398;ARABIC-INDIC DIGIT SIX
0667;afii57399;ARABIC-INDIC DIGIT SEVEN
0668;afii57400;ARABIC-INDIC DIGIT EIGHT
0669;afii57401;ARABIC-INDIC DIGIT NINE
061B;afii57403;ARABIC SEMICOLON
061F;afii57407;ARABIC QUESTION MARK
0621;afii57409;ARABIC LETTER HAMZA
0622;afii57410;ARABIC LETTER ALEF WITH MADDA ABOVE
0623;afii57411;ARABIC LETTER ALEF WITH HAMZA ABOVE
0624;afii57412;ARABIC LETTER WAW WITH HAMZA ABOVE
0625;afii57413;ARABIC LETTER ALEF WITH HAMZA BELOW
0626;afii57414;ARABIC LETTER YEH WITH HAMZA ABOVE
0627;afii57415;ARABIC LETTER ALEF
0628;afii57416;ARABIC LETTER BEH
0629;afii57417;ARABIC LETTER TEH MARBUTA
062A;afii57418;ARABIC LETTER TEH
062B;afii57419;ARABIC LETTER THEH
062C;afii57420;ARABIC LETTER JEEM
062D;afii57421;ARABIC LETTER HAH
062E;afii57422;ARABIC LETTER KHAH
062F;afii57423;ARABIC LETTER DAL
0630;afii57424;ARABIC LETTER THAL
0631;afii57425;ARABIC LETTER REH
0632;afii57426;ARABIC LETTER ZAIN
0633;afii57427;ARABIC LETTER SEEN
0634;afii57428;ARABIC LETTER SHEEN
0635;afii57429;ARABIC LETTER SAD
0636;afii57430;ARABIC LETTER DAD
0637;afii57431;ARABIC LETTER TAH
0638;afii57432;ARABIC LETTER ZAH
0639;afii57433;ARABIC LETTER AIN
063A;afii57434;ARABIC LETTER GHAIN
0640;afii57440;ARABIC TATWEEL
0641;afii57441;ARABIC LETTER FEH
0642;afii57442;ARABIC LETTER QAF
0643;afii57443;ARABIC LETTER KAF
0644;afii57444;ARABIC LETTER LAM
0645;afii57445;ARABIC LETTER MEEM
0646;afii57446;ARABIC LETTER NOON
0648;afii57448;ARABIC LETTER WAW
0649;afii57449;ARABIC LETTER ALEF MAKSURA
064A;afii57450;ARABIC LETTER YEH
064B;afii57451;ARABIC FATHATAN
064C;afii57452;ARABIC DAMMATAN
064D;afii57453;ARABIC KASRATAN
064E;afii57454;ARABIC FATHA
064F;afii57455;ARABIC DAMMA
0650;afii57456;ARABIC KASRA
0651;afii57457;ARABIC SHADDA
0652;afii57458;ARABIC SUKUN
0647;afii57470;ARABIC LETTER HEH
06A4;afii57505;ARABIC LETTER VEH
067E;afii57506;ARABIC LETTER PEH
0686;afii57507;ARABIC LETTER TCHEH
0698;afii57508;ARABIC LETTER JEH
06AF;afii57509;ARABIC LETTER GAF
0679;afii57511;ARABIC LETTER TTEH
0688;afii57512;ARABIC LETTER DDAL
0691;afii57513;ARABIC LETTER RREH
06BA;afii57514;ARABIC LETTER NOON GHUNNA
06D2;afii57519;ARABIC LETTER YEH BARREE
06D5;afii57534;ARABIC LETTER AE
20AA;afii57636;NEW SHEQEL SIGN
05BE;afii57645;HEBREW PUNCTUATION MAQAF
05C3;afii57658;HEBREW PUNCTUATION SOF PASUQ
05D0;afii57664;HEBREW LETTER ALEF
05D1;afii57665;HEBREW LETTER BET
05D2;afii57666;HEBREW LETTER GIMEL
05D3;afii57667;HEBREW LETTER DALET
05D4;afii57668;HEBREW LETTER HE
05D5;afii57669;HEBREW LETTER VAV
05D6;afii57670;HEBREW LETTER ZAYIN
05D7;afii57671;HEBREW LETTER HET
05D8;afii57672;HEBREW LETTER TET
05D9;afii57673;HEBREW LETTER YOD
05DA;afii57674;HEBREW LETTER FINAL KAF
05DB;afii57675;HEBREW LETTER KAF
05DC;afii57676;HEBREW LETTER LAMED
05DD;afii57677;HEBREW LETTER FINAL MEM
05DE;afii57678;HEBREW LETTER MEM
05DF;afii57679;HEBREW LETTER FINAL NUN
05E0;afii57680;HEBREW LETTER NUN
05E1;afii57681;HEBREW LETTER SAMEKH
05E2;afii57682;HEBREW LETTER AYIN
05E3;afii57683;HEBREW LETTER FINAL PE
05E4;afii57684;HEBREW LETTER PE
05E5;afii57685;HEBREW LETTER FINAL TSADI
05E6;afii57686;HEBREW LETTER TSADI
05E7;afii57687;HEBREW LETTER QOF
05E8;afii57688;HEBREW LETTER RESH
05E9;afii57689;HEBREW LETTER SHIN
05EA;afii57690;HEBREW LETTER TAV
FB2A;afii57694;HEBREW LETTER SHIN WITH SHIN DOT
FB2B;afii57695;HEBREW LETTER SHIN WITH SIN DOT
FB4B;afii57700;HEBREW LETTER VAV WITH HOLAM
FB1F;afii57705;HEBREW LIGATURE YIDDISH YOD YOD PATAH
05F0;afii57716;HEBREW LIGATURE YIDDISH DOUBLE VAV
05F1;afii57717;HEBREW LIGATURE YIDDISH VAV YOD
05F2;afii57718;HEBREW LIGATURE YIDDISH DOUBLE YOD
FB35;afii57723;HEBREW LETTER VAV WITH DAGESH
05B4;afii57793;HEBREW POINT HIRIQ
05B5;afii57794;HEBREW POINT TSERE
05B6;afii57795;HEBREW POINT SEGOL
05BB;afii57796;HEBREW POINT QUBUTS
05B8;afii57797;HEBREW POINT QAMATS
05B7;afii57798;HEBREW POINT PATAH
05B0;afii57799;HEBREW POINT SHEVA
05B2;afii57800;HEBREW POINT HATAF PATAH
05B1;afii57801;HEBREW POINT HATAF SEGOL
05B3;afii57802;HEBREW POINT HATAF QAMATS
05C2;afii57803;HEBREW POINT SIN DOT
05C1;afii57804;HEBREW POINT SHIN DOT
05B9;afii57806;HEBREW POINT HOLAM
05BC;afii57807;HEBREW POINT DAGESH OR MAPIQ
05BD;afii57839;HEBREW POINT METEG
05BF;afii57841;HEBREW POINT RAFE
05C0;afii57842;HEBREW PUNCTUATION PASEQ
02BC;afii57929;MODIFIER LETTER APOSTROPHE
2105;afii61248;CARE OF
2113;afii61289;SCRIPT SMALL L
2116;afii61352;NUMERO SIGN
202C;afii61573;POP DIRECTIONAL FORMATTING
202D;afii61574;LEFT-TO-RIGHT OVERRIDE
202E;afii61575;RIGHT-TO-LEFT OVERRIDE
200C;afii61664;ZERO WIDTH NON-JOINER
066D;afii63167;ARABIC FIVE POINTED STAR
02BD;afii64937;MODIFIER LETTER REVERSED COMMA
00E0;agrave;LATIN SMALL LETTER A WITH GRAVE
2135;aleph;ALEF SYMBOL
03B1;alpha;GREEK SMALL LETTER ALPHA
03AC;alphatonos;GREEK SMALL LETTER ALPHA WITH TONOS
0101;amacron;LATIN SMALL LETTER A WITH MACRON
0026;ampersand;AMPERSAND
F726;ampersandsmall;SMALL CAPITAL AMPERSAND
2220;angle;ANGLE
2329;angleleft;LEFT-POINTING ANGLE BRACKET
232A;angleright;RIGHT-POINTING ANGLE BRACKET
0387;anoteleia;GREEK ANO TELEIA
0105;aogonek;LATIN SMALL LETTER A WITH OGONEK
2248;approxequal;ALMOST EQUAL TO
00E5;aring;LATIN SMALL LETTER A WITH RING ABOVE
01FB;aringacute;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
2194;arrowboth;LEFT RIGHT ARROW
21D4;arrowdblboth;LEFT RIGHT DOUBLE ARROW
21D3;arrowdbldown;DOWNWARDS DOUBLE ARROW
21D0;arrowdblleft;LEFTWARDS DOUBLE ARROW
21D2;arrowdblright;RIGHTWARDS DOUBLE ARROW
21D1;arrowdblup;UPWARDS DOUBLE ARROW
2193;arrowdown;DOWNWARDS ARROW
F8E7;arrowhorizex;HORIZONTAL ARROW EXTENDER
2190;arrowleft;LEFTWARDS ARROW
2192;arrowright;RIGHTWARDS ARROW
2191;arrowup;UPWARDS ARROW
2195;arrowupdn;UP DOWN ARROW
21A8;arrowupdnbse;UP DOWN ARROW WITH BASE
F8E6;arrowvertex;VERTICAL ARROW EXTENDER
005E;asciicircum;CIRCUMFLEX ACCENT
007E;asciitilde;TILDE
002A;asterisk;ASTERISK
2217;asteriskmath;ASTERISK OPERATOR
F6E9;asuperior;SUPERSCRIPT LATIN SMALL LETTER A
0040;at;COMMERCIAL AT
00E3;atilde;LATIN SMALL LETTER A WITH TILDE
0062;b;LATIN SMALL LETTER B
005C;backslash;REVERSE SOLIDUS
007C;bar;VERTICAL LINE
03B2;beta;GREEK SMALL LETTER BETA
2588;block;FULL BLOCK
F8F4;braceex;CURLY BRACKET EXTENDER
007B;braceleft;LEFT CURLY BRACKET
F8F3;braceleftbt;LEFT CURLY BRACKET BOTTOM
F8F2;braceleftmid;LEFT CURLY BRACKET MID
F8F1;bracelefttp;LEFT CURLY BRACKET TOP
007D;braceright;RIGHT CURLY BRACKET
F8FE;bracerightbt;RIGHT CURLY BRACKET BOTTOM
F8FD;bracerightmid;RIGHT CURLY BRACKET MID
F8FC;bracerighttp;RIGHT CURLY BRACKET TOP
005B;bracketleft;LEFT SQUARE BRACKET
F8F0;bracketleftbt;LEFT SQUARE BRACKET BOTTOM
F8EF;bracketleftex;LEFT SQUARE BRACKET EXTENDER
F8EE;bracketlefttp;LEFT SQUARE BRACKET TOP
005D;bracketright;RIGHT SQUARE BRACKET
F8FB;bracketrightbt;RIGHT SQUARE BRACKET BOTTOM
F8FA;bracketrightex;RIGHT SQUARE BRACKET EXTENDER
F8F9;bracketrighttp;RIGHT SQUARE BRACKET TOP
02D8;breve;BREVE
00A6;brokenbar;BROKEN BAR
F6EA;bsuperior;SUPERSCRIPT LATIN SMALL LETTER B
2022;bullet;BULLET
0063;c;LATIN SMALL LETTER C
0107;cacute;LATIN SMALL LETTER C WITH ACUTE
02C7;caron;CARON
21B5;carriagereturn;DOWNWARDS ARROW WITH CORNER LEFTWARDS
010D;ccaron;LATIN SMALL LETTER C WITH CARON
00E7;ccedilla;LATIN SMALL LETTER C WITH CEDILLA
0109;ccircumflex;LATIN SMALL LETTER C WITH CIRCUMFLEX
010B;cdotaccent;LATIN SMALL LETTER C WITH DOT ABOVE
00B8;cedilla;CEDILLA
00A2;cent;CENT SIGN
F6DF;centinferior;SUBSCRIPT CENT SIGN
F7A2;centoldstyle;OLDSTYLE CENT SIGN
F6E0;centsuperior;SUPERSCRIPT CENT SIGN
03C7;chi;GREEK SMALL LETTER CHI
25CB;circle;WHITE CIRCLE
2297;circlemultiply;CIRCLED TIMES
2295;circleplus;CIRCLED PLUS
02C6;circumflex;MODIFIER LETTER CIRCUMFLEX ACCENT
2663;club;BLACK CLUB SUIT
003A;colon;COLON
20A1;colonmonetary;COLON SIGN
002C;comma;COMMA
F6C3;commaaccent;COMMA BELOW
F6E1;commainferior;SUBSCRIPT COMMA
F6E2;commasuperior;SUPERSCRIPT COMMA
2245;congruent;APPROXIMATELY EQUAL TO
00A9;copyright;COPYRIGHT SIGN
F8E9;copyrightsans;COPYRIGHT SIGN SANS SERIF
F6D9;copyrightserif;COPYRIGHT SIGN SERIF
00A4;currency;CURRENCY SIGN
F6D1;cyrBreve;CAPITAL CYRILLIC BREVE
F6D2;cyrFlex;CAPITAL CYRILLIC CIRCUMFLEX
F6D4;cyrbreve;CYRILLIC BREVE
F6D5;cyrflex;CYRILLIC CIRCUMFLEX
0064;d;LATIN SMALL LETTER D
2020;dagger;DAGGER
2021;daggerdbl;DOUBLE DAGGER
F6D3;dblGrave;CAPITAL DOUBLE GRAVE ACCENT
F6D6;dblgrave;DOUBLE GRAVE ACCENT
010F;dcaron;LATIN SMALL LETTER D WITH CARON
0111;dcroat;LATIN SMALL LETTER D WITH STROKE
00B0;degree;DEGREE SIGN
03B4;delta;GREEK SMALL LETTER DELTA
2666;diamond;BLACK DIAMOND SUIT
00A8;dieresis;DIAERESIS
F6D7;dieresisacute;DIAERESIS ACUTE ACCENT
F6D8;dieresisgrave;DIAERESIS GRAVE ACCENT
0385;dieresistonos;GREEK DIALYTIKA TONOS
00F7;divide;DIVISION SIGN
2593;dkshade;DARK SHADE
2584;dnblock;LOWER HALF BLOCK
0024;dollar;DOLLAR SIGN
F6E3;dollarinferior;SUBSCRIPT DOLLAR SIGN
F724;dollaroldstyle;OLDSTYLE DOLLAR SIGN
F6E4;dollarsuperior;SUPERSCRIPT DOLLAR SIGN
20AB;dong;DONG SIGN
02D9;dotaccent;DOT ABOVE
0323;dotbelowcomb;COMBINING DOT BELOW
0131;dotlessi;LATIN SMALL LETTER DOTLESS I
F6BE;dotlessj;LATIN SMALL LETTER DOTLESS J
22C5;dotmath;DOT OPERATOR
F6EB;dsuperior;SUPERSCRIPT LATIN SMALL LETTER D
0065;e;LATIN SMALL LETTER E
00E9;eacute;LATIN SMALL LETTER E WITH ACUTE
0115;ebreve;LATIN SMALL LETTER E WITH BREVE
011B;ecaron;LATIN SMALL LETTER E WITH CARON
00EA;ecircumflex;LATIN SMALL LETTER E WITH CIRCUMFLEX
00EB;edieresis;LATIN SMALL LETTER E WITH DIAERESIS
0117;edotaccent;LATIN SMALL LETTER E WITH DOT ABOVE
00E8;egrave;LATIN SMALL LETTER E WITH GRAVE
0038;eight;DIGIT EIGHT
2088;eightinferior;SUBSCRIPT EIGHT
F738;eightoldstyle;OLDSTYLE DIGIT EIGHT
2078;eightsuperior;SUPERSCRIPT EIGHT
2208;element;ELEMENT OF
2026;ellipsis;HORIZONTAL ELLIPSIS
0113;emacron;LATIN SMALL LETTER E WITH MACRON
2014;emdash;EM DASH
2205;emptyset;EMPTY SET
2013;endash;EN DASH
014B;eng;LATIN SMALL LETTER ENG
0119;eogonek;LATIN SMALL LETTER E WITH OGONEK
03B5;epsilon;GREEK SMALL LETTER EPSILON
03AD;epsilontonos;GREEK SMALL LETTER EPSILON WITH TONOS
003D;equal;EQUALS SIGN
2261;equivalence;IDENTICAL TO
212E;estimated;ESTIMATED SYMBOL
F6EC;esuperior;SUPERSCRIPT LATIN SMALL LETTER E
03B7;eta;GREEK SMALL LETTER ETA
03AE;etatonos;GREEK SMALL LETTER ETA WITH TONOS
00F0;eth;LATIN SMALL LETTER ETH
0021;exclam;EXCLAMATION MARK
203C;exclamdbl;DOUBLE EXCLAMATION MARK
00A1;exclamdown;INVERTED EXCLAMATION MARK
F7A1;exclamdownsmall;SMALL CAPITAL INVERTED EXCLAMATION MARK
F721;exclamsmall;SMALL CAPITAL EXCLAMATION MARK
2203;existential;THERE EXISTS
0066;f;LATIN SMALL LETTER F
2640;female;FEMALE SIGN
FB00;ff;LATIN SMALL LIGATURE FF
FB03;ffi;LATIN SMALL LIGATURE FFI
FB04;ffl;LATIN SMALL LIGATURE FFL
FB01;fi;LATIN SMALL LIGATURE FI
2012;figuredash;FIGURE DASH
25A0;filledbox;BLACK SQUARE
25AC;filledrect;BLACK RECTANGLE
0035;five;DIGIT FIVE
215D;fiveeighths;VULGAR FRACTION FIVE EIGHTHS
2085;fiveinferior;SUBSCRIPT FIVE
F735;fiveoldstyle;OLDSTYLE DIGIT FIVE
2075;fivesuperior;SUPERSCRIPT FIVE
FB02;fl;LATIN SMALL LIGATURE FL
0192;florin;LATIN SMALL LETTER F WITH HOOK
0034;four;DIGIT FOUR
2084;fourinferior;SUBSCRIPT FOUR
F734;fouroldstyle;OLDSTYLE DIGIT FOUR
2074;foursuperior;SUPERSCRIPT FOUR
2044;fraction;FRACTION SLASH
2215;fraction;DIVISION SLASH;Duplicate
20A3;franc;FRENCH FRANC SIGN
0067;g;LATIN SMALL LETTER G
03B3;gamma;GREEK SMALL LETTER GAMMA
011F;gbreve;LATIN SMALL LETTER G WITH BREVE
01E7;gcaron;LATIN SMALL LETTER G WITH CARON
011D;gcircumflex;LATIN SMALL LETTER G WITH CIRCUMFLEX
0123;gcommaaccent;LATIN SMALL LETTER G WITH CEDILLA
0121;gdotaccent;LATIN SMALL LETTER G WITH DOT ABOVE
00DF;germandbls;LATIN SMALL LETTER SHARP S
2207;gradient;NABLA
0060;grave;GRAVE ACCENT
0300;gravecomb;COMBINING GRAVE ACCENT
003E;greater;GREATER-THAN SIGN
2265;greaterequal;GREATER-THAN OR EQUAL TO
00AB;guillemotleft;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
00BB;guillemotright;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
2039;guilsinglleft;SINGLE LEFT-POINTING ANGLE QUOTATION MARK
203A;guilsinglright;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
0068;h;LATIN SMALL LETTER H
0127;hbar;LATIN SMALL LETTER H WITH STROKE
0125;hcircumflex;LATIN SMALL LETTER H WITH CIRCUMFLEX
2665;heart;BLACK HEART SUIT
0309;hookabovecomb;COMBINING HOOK ABOVE
2302;house;HOUSE
02DD;hungarumlaut;DOUBLE ACUTE ACCENT
002D;hyphen;HYPHEN-MINUS
00AD;hyphen;SOFT HYPHEN;Duplicate
F6E5;hypheninferior;SUBSCRIPT HYPHEN-MINUS
F6E6;hyphensuperior;SUPERSCRIPT HYPHEN-MINUS
0069;i;LATIN SMALL LETTER I
00ED;iacute;LATIN SMALL LETTER I WITH ACUTE
012D;ibreve;LATIN SMALL LETTER I WITH BREVE
00EE;icircumflex;LATIN SMALL LETTER I WITH CIRCUMFLEX
00EF;idieresis;LATIN SMALL LETTER I WITH DIAERESIS
00EC;igrave;LATIN SMALL LETTER I WITH GRAVE
0133;ij;LATIN SMALL LIGATURE IJ
012B;imacron;LATIN SMALL LETTER I WITH MACRON
221E;infinity;INFINITY
222B;integral;INTEGRAL
2321;integralbt;BOTTOM HALF INTEGRAL
F8F5;integralex;INTEGRAL EXTENDER
2320;integraltp;TOP HALF INTEGRAL
2229;intersection;INTERSECTION
25D8;invbullet;INVERSE BULLET
25D9;invcircle;INVERSE WHITE CIRCLE
263B;invsmileface;BLACK SMILING FACE
012F;iogonek;LATIN SMALL LETTER I WITH OGONEK
03B9;iota;GREEK SMALL LETTER IOTA
03CA;iotadieresis;GREEK SMALL LETTER IOTA WITH DIALYTIKA
0390;iotadieresistonos;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
03AF;iotatonos;GREEK SMALL LETTER IOTA WITH TONOS
F6ED;isuperior;SUPERSCRIPT LATIN SMALL LETTER I
0129;itilde;LATIN SMALL LETTER I WITH TILDE
006A;j;LATIN SMALL LETTER J
0135;jcircumflex;LATIN SMALL LETTER J WITH CIRCUMFLEX
006B;k;LATIN SMALL LETTER K
03BA;kappa;GREEK SMALL LETTER KAPPA
0137;kcommaaccent;LATIN SMALL LETTER K WITH CEDILLA
0138;kgreenlandic;LATIN SMALL LETTER KRA
006C;l;LATIN SMALL LETTER L
013A;lacute;LATIN SMALL LETTER L WITH ACUTE
03BB;lambda;GREEK SMALL LETTER LAMDA
013E;lcaron;LATIN SMALL LETTER L WITH CARON
013C;lcommaaccent;LATIN SMALL LETTER L WITH CEDILLA
0140;ldot;LATIN SMALL LETTER L WITH MIDDLE DOT
003C;less;LESS-THAN SIGN
2264;lessequal;LESS-THAN OR EQUAL TO
258C;lfblock;LEFT HALF BLOCK
20A4;lira;LIRA SIGN
F6C0;ll;LATIN SMALL LETTER LL
2227;logicaland;LOGICAL AND
00AC;logicalnot;NOT SIGN
2228;logicalor;LOGICAL OR
017F;longs;LATIN SMALL LETTER LONG S
25CA;lozenge;LOZENGE
0142;lslash;LATIN SMALL LETTER L WITH STROKE
F6EE;lsuperior;SUPERSCRIPT LATIN SMALL LETTER L
2591;ltshade;LIGHT SHADE
006D;m;LATIN SMALL LETTER M
00AF;macron;MACRON
02C9;macron;MODIFIER LETTER MACRON;Duplicate
2642;male;MALE SIGN
2212;minus;MINUS SIGN
2032;minute;PRIME
F6EF;msuperior;SUPERSCRIPT LATIN SMALL LETTER M
00B5;mu;MICRO SIGN
03BC;mu;GREEK SMALL LETTER MU;Duplicate
00D7;multiply;MULTIPLICATION SIGN
266A;musicalnote;EIGHTH NOTE
266B;musicalnotedbl;BEAMED EIGHTH NOTES
006E;n;LATIN SMALL LETTER N
0144;nacute;LATIN SMALL LETTER N WITH ACUTE
0149;napostrophe;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
0148;ncaron;LATIN SMALL LETTER N WITH CARON
0146;ncommaaccent;LATIN SMALL LETTER N WITH CEDILLA
0039;nine;DIGIT NINE
2089;nineinferior;SUBSCRIPT NINE
F739;nineoldstyle;OLDSTYLE DIGIT NINE
2079;ninesuperior;SUPERSCRIPT NINE
2209;notelement;NOT AN ELEMENT OF
2260;notequal;NOT EQUAL TO
2284;notsubset;NOT A SUBSET OF
207F;nsuperior;SUPERSCRIPT LATIN SMALL LETTER N
00F1;ntilde;LATIN SMALL LETTER N WITH TILDE
03BD;nu;GREEK SMALL LETTER NU
0023;numbersign;NUMBER SIGN
006F;o;LATIN SMALL LETTER O
00F3;oacute;LATIN SMALL LETTER O WITH ACUTE
014F;obreve;LATIN SMALL LETTER O WITH BREVE
00F4;ocircumflex;LATIN SMALL LETTER O WITH CIRCUMFLEX
00F6;odieresis;LATIN SMALL LETTER O WITH DIAERESIS
0153;oe;LATIN SMALL LIGATURE OE
02DB;ogonek;OGONEK
00F2;ograve;LATIN SMALL LETTER O WITH GRAVE
01A1;ohorn;LATIN SMALL LETTER O WITH HORN
0151;ohungarumlaut;LATIN SMALL LETTER O WITH DOUBLE ACUTE
014D;omacron;LATIN SMALL LETTER O WITH MACRON
03C9;omega;GREEK SMALL LETTER OMEGA
03D6;omega1;GREEK PI SYMBOL
03CE;omegatonos;GREEK SMALL LETTER OMEGA WITH TONOS
03BF;omicron;GREEK SMALL LETTER OMICRON
03CC;omicrontonos;GREEK SMALL LETTER OMICRON WITH TONOS
0031;one;DIGIT ONE
2024;onedotenleader;ONE DOT LEADER
215B;oneeighth;VULGAR FRACTION ONE EIGHTH
F6DC;onefitted;PROPORTIONAL DIGIT ONE
00BD;onehalf;VULGAR FRACTION ONE HALF
2081;oneinferior;SUBSCRIPT ONE
F731;oneoldstyle;OLDSTYLE DIGIT ONE
00BC;onequarter;VULGAR FRACTION ONE QUARTER
00B9;onesuperior;SUPERSCRIPT ONE
2153;onethird;VULGAR FRACTION ONE THIRD
25E6;openbullet;WHITE BULLET
00AA;ordfeminine;FEMININE ORDINAL INDICATOR
00BA;ordmasculine;MASCULINE ORDINAL INDICATOR
221F;orthogonal;RIGHT ANGLE
00F8;oslash;LATIN SMALL LETTER O WITH STROKE
01FF;oslashacute;LATIN SMALL LETTER O WITH STROKE AND ACUTE
F6F0;osuperior;SUPERSCRIPT LATIN SMALL LETTER O
00F5;otilde;LATIN SMALL LETTER O WITH TILDE
0070;p;LATIN SMALL LETTER P
00B6;paragraph;PILCROW SIGN
0028;parenleft;LEFT PARENTHESIS
F8ED;parenleftbt;LEFT PAREN BOTTOM
F8EC;parenleftex;LEFT PAREN EXTENDER
208D;parenleftinferior;SUBSCRIPT LEFT PARENTHESIS
207D;parenleftsuperior;SUPERSCRIPT LEFT PARENTHESIS
F8EB;parenlefttp;LEFT PAREN TOP
0029;parenright;RIGHT PARENTHESIS
F8F8;parenrightbt;RIGHT PAREN BOTTOM
F8F7;parenrightex;RIGHT PAREN EXTENDER
208E;parenrightinferior;SUBSCRIPT RIGHT PARENTHESIS
207E;parenrightsuperior;SUPERSCRIPT RIGHT PARENTHESIS
F8F6;parenrighttp;RIGHT PAREN TOP
2202;partialdiff;PARTIAL DIFFERENTIAL
0025;percent;PERCENT SIGN
002E;period;FULL STOP
00B7;periodcentered;MIDDLE DOT
2219;periodcentered;BULLET OPERATOR;Duplicate
F6E7;periodinferior;SUBSCRIPT FULL STOP
F6E8;periodsuperior;SUPERSCRIPT FULL STOP
22A5;perpendicular;UP TACK
2030;perthousand;PER MILLE SIGN
20A7;peseta;PESETA SIGN
03C6;phi;GREEK SMALL LETTER PHI
03D5;phi1;GREEK PHI SYMBOL
03C0;pi;GREEK SMALL LETTER PI
002B;plus;PLUS SIGN
00B1;plusminus;PLUS-MINUS SIGN
211E;prescription;PRESCRIPTION TAKE
220F;product;N-ARY PRODUCT
2282;propersubset;SUBSET OF
2283;propersuperset;SUPERSET OF
221D;proportional;PROPORTIONAL TO
03C8;psi;GREEK SMALL LETTER PSI
0071;q;LATIN SMALL LETTER Q
003F;question;QUESTION MARK
00BF;questiondown;INVERTED QUESTION MARK
F7BF;questiondownsmall;SMALL CAPITAL INVERTED QUESTION MARK
F73F;questionsmall;SMALL CAPITAL QUESTION MARK
0022;quotedbl;QUOTATION MARK
201E;quotedblbase;DOUBLE LOW-9 QUOTATION MARK
201C;quotedblleft;LEFT DOUBLE QUOTATION MARK
201D;quotedblright;RIGHT DOUBLE QUOTATION MARK
2018;quoteleft;LEFT SINGLE QUOTATION MARK
201B;quotereversed;SINGLE HIGH-REVERSED-9 QUOTATION MARK
2019;quoteright;RIGHT SINGLE QUOTATION MARK
201A;quotesinglbase;SINGLE LOW-9 QUOTATION MARK
0027;quotesingle;APOSTROPHE
0072;r;LATIN SMALL LETTER R
0155;racute;LATIN SMALL LETTER R WITH ACUTE
221A;radical;SQUARE ROOT
F8E5;radicalex;RADICAL EXTENDER
0159;rcaron;LATIN SMALL LETTER R WITH CARON
0157;rcommaaccent;LATIN SMALL LETTER R WITH CEDILLA
2286;reflexsubset;SUBSET OF OR EQUAL TO
2287;reflexsuperset;SUPERSET OF OR EQUAL TO
00AE;registered;REGISTERED SIGN
F8E8;registersans;REGISTERED SIGN SANS SERIF
F6DA;registerserif;REGISTERED SIGN SERIF
2310;revlogicalnot;REVERSED NOT SIGN
03C1;rho;GREEK SMALL LETTER RHO
02DA;ring;RING ABOVE
F6F1;rsuperior;SUPERSCRIPT LATIN SMALL LETTER R
2590;rtblock;RIGHT HALF BLOCK
F6DD;rupiah;RUPIAH SIGN
0073;s;LATIN SMALL LETTER S
015B;sacute;LATIN SMALL LETTER S WITH ACUTE
0161;scaron;LATIN SMALL LETTER S WITH CARON
015F;scedilla;LATIN SMALL LETTER S WITH CEDILLA
F6C2;scedilla;LATIN SMALL LETTER S WITH CEDILLA;Duplicate
015D;scircumflex;LATIN SMALL LETTER S WITH CIRCUMFLEX
0219;scommaaccent;LATIN SMALL LETTER S WITH COMMA BELOW
2033;second;DOUBLE PRIME
00A7;section;SECTION SIGN
003B;semicolon;SEMICOLON
0037;seven;DIGIT SEVEN
215E;seveneighths;VULGAR FRACTION SEVEN EIGHTHS
2087;seveninferior;SUBSCRIPT SEVEN
F737;sevenoldstyle;OLDSTYLE DIGIT SEVEN
2077;sevensuperior;SUPERSCRIPT SEVEN
2592;shade;MEDIUM SHADE
03C3;sigma;GREEK SMALL LETTER SIGMA
03C2;sigma1;GREEK SMALL LETTER FINAL SIGMA
223C;similar;TILDE OPERATOR
0036;six;DIGIT SIX
2086;sixinferior;SUBSCRIPT SIX
F736;sixoldstyle;OLDSTYLE DIGIT SIX
2076;sixsuperior;SUPERSCRIPT SIX
002F;slash;SOLIDUS
263A;smileface;WHITE SMILING FACE
0020;space;SPACE
00A0;space;NO-BREAK SPACE;Duplicate
2660;spade;BLACK SPADE SUIT
F6F2;ssuperior;SUPERSCRIPT LATIN SMALL LETTER S
00A3;sterling;POUND SIGN
220B;suchthat;CONTAINS AS MEMBER
2211;summation;N-ARY SUMMATION
263C;sun;WHITE SUN WITH RAYS
0074;t;LATIN SMALL LETTER T
03C4;tau;GREEK SMALL LETTER TAU
0167;tbar;LATIN SMALL LETTER T WITH STROKE
0165;tcaron;LATIN SMALL LETTER T WITH CARON
0163;tcommaaccent;LATIN SMALL LETTER T WITH CEDILLA
021B;tcommaaccent;LATIN SMALL LETTER T WITH COMMA BELOW;Duplicate
2234;therefore;THEREFORE
03B8;theta;GREEK SMALL LETTER THETA
03D1;theta1;GREEK THETA SYMBOL
00FE;thorn;LATIN SMALL LETTER THORN
0033;three;DIGIT THREE
215C;threeeighths;VULGAR FRACTION THREE EIGHTHS
2083;threeinferior;SUBSCRIPT THREE
F733;threeoldstyle;OLDSTYLE DIGIT THREE
00BE;threequarters;VULGAR FRACTION THREE QUARTERS
F6DE;threequartersemdash;THREE QUARTERS EM DASH
00B3;threesuperior;SUPERSCRIPT THREE
02DC;tilde;SMALL TILDE
0303;tildecomb;COMBINING TILDE
0384;tonos;GREEK TONOS
2122;trademark;TRADE MARK SIGN
F8EA;trademarksans;TRADE MARK SIGN SANS SERIF
F6DB;trademarkserif;TRADE MARK SIGN SERIF
25BC;triagdn;BLACK DOWN-POINTING TRIANGLE
25C4;triaglf;BLACK LEFT-POINTING POINTER
25BA;triagrt;BLACK RIGHT-POINTING POINTER
25B2;triagup;BLACK UP-POINTING TRIANGLE
F6F3;tsuperior;SUPERSCRIPT LATIN SMALL LETTER T
0032;two;DIGIT TWO
2025;twodotenleader;TWO DOT LEADER
2082;twoinferior;SUBSCRIPT TWO
F732;twooldstyle;OLDSTYLE DIGIT TWO
00B2;twosuperior;SUPERSCRIPT TWO
2154;twothirds;VULGAR FRACTION TWO THIRDS
0075;u;LATIN SMALL LETTER U
00FA;uacute;LATIN SMALL LETTER U WITH ACUTE
016D;ubreve;LATIN SMALL LETTER U WITH BREVE
00FB;ucircumflex;LATIN SMALL LETTER U WITH CIRCUMFLEX
00FC;udieresis;LATIN SMALL LETTER U WITH DIAERESIS
00F9;ugrave;LATIN SMALL LETTER U WITH GRAVE
01B0;uhorn;LATIN SMALL LETTER U WITH HORN
0171;uhungarumlaut;LATIN SMALL LETTER U WITH DOUBLE ACUTE
016B;umacron;LATIN SMALL LETTER U WITH MACRON
005F;underscore;LOW LINE
2017;underscoredbl;DOUBLE LOW LINE
222A;union;UNION
2200;universal;FOR ALL
0173;uogonek;LATIN SMALL LETTER U WITH OGONEK
2580;upblock;UPPER HALF BLOCK
03C5;upsilon;GREEK SMALL LETTER UPSILON
03CB;upsilondieresis;GREEK SMALL LETTER UPSILON WITH DIALYTIKA
03B0;upsilondieresistonos;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
03CD;upsilontonos;GREEK SMALL LETTER UPSILON WITH TONOS
016F;uring;LATIN SMALL LETTER U WITH RING ABOVE
0169;utilde;LATIN SMALL LETTER U WITH TILDE
0076;v;LATIN SMALL LETTER V
0077;w;LATIN SMALL LETTER W
1E83;wacute;LATIN SMALL LETTER W WITH ACUTE
0175;wcircumflex;LATIN SMALL LETTER W WITH CIRCUMFLEX
1E85;wdieresis;LATIN SMALL LETTER W WITH DIAERESIS
2118;weierstrass;SCRIPT CAPITAL P
1E81;wgrave;LATIN SMALL LETTER W WITH GRAVE
0078;x;LATIN SMALL LETTER X
03BE;xi;GREEK SMALL LETTER XI
0079;y;LATIN SMALL LETTER Y
00FD;yacute;LATIN SMALL LETTER Y WITH ACUTE
0177;ycircumflex;LATIN SMALL LETTER Y WITH CIRCUMFLEX
00FF;ydieresis;LATIN SMALL LETTER Y WITH DIAERESIS
00A5;yen;YEN SIGN
1EF3;ygrave;LATIN SMALL LETTER Y WITH GRAVE
007A;z;LATIN SMALL LETTER Z
017A;zacute;LATIN SMALL LETTER Z WITH ACUTE
017E;zcaron;LATIN SMALL LETTER Z WITH CARON
017C;zdotaccent;LATIN SMALL LETTER Z WITH DOT ABOVE
0030;zero;DIGIT ZERO
2080;zeroinferior;SUBSCRIPT ZERO
F730;zerooldstyle;OLDSTYLE DIGIT ZERO
2070;zerosuperior;SUPERSCRIPT ZERO
03B6;zeta;GREEK SMALL LETTER ZETA"""

t1_bias    = 0
glyph_list = []


def the_adobe_glyph_list():
    """return the list of glyph names in the adobe list"""
    lines  = string.split(adobe_glyph_list,'\n')
    glyphs = []
    for line in lines:
        fields = string.split(line,';')
#        print fields[0] + ' - ' + fields[1]
        glyphs.append( fields[1] )
    return glyphs

def the_adobe_glyphs():
    """ return the list of glyph names + unicode values"""
    lines  = string.split(adobe_glyph_list,'\n')
    glyphs = []
    values = []
    for line in lines:
        fields = string.split(line,';')
#        print fields[0] + ' - ' + fields[1]
        glyphs.append( fields[1] )
        values.append( fields[0] )
    return glyphs, values


def count_extra_glyphs( alist, filter ):
    """count the number of extra glyphs"""
    count  = 0
    extras = []
    for name in alist:
        try:
            filtered_index = filter.index(name)
        except:
            extras.append(name)
            
    return extras


def dump_mac_indices():
    print "static const unsigned short mac_standard_names[" + \
             repr(len(mac_standard_names)+1) + "] = {"
    count = 0
    for name in mac_standard_names:
        try:
            t1_index = t1_standard_strings.index(name)
            print "    " + repr(t1_bias+t1_index)+","
        except:
            print "    " + repr(count)+","
            count = count+1
      
    print " 0 };"
    print ""


def dump_glyph_list(glyph_list, adobe_extra):
    print "static const char*  standard_glyph_names[] = {"
    for name in glyph_list:
        print '  "'+name+'",'

    print "#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST"
    for name in adobe_extra:
        print '  "'+name+'",'
        
    print "#endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */"
    print "  0 };"
    print ""


def dump_unicode_values(glyph_list):
    """build the glyph names to unicode values table"""
    adobe_list, uni_values = the_adobe_glyphs()
    index_list = []

    print "#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST"
    print "static const unsigned short  names_to_unicode[" + \
             repr(len(glyph_list)+1) + "] = {"
             
    for name in glyph_list:
        try:
            index = adobe_list.index(name)
            index_list.append( uni_values[index] )
            print "  0x" + uni_values[index] + ","
        except:
            index_list.append(0)
            print "  0,"
            
    print "  0 };"
    print "#endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */"
    print ""

def dump_encoding( encoding_name, encoding_list ):
    """dumps a given encoding"""
    print "static const unsigned short  "+encoding_name+"["+ \
              repr(len(encoding_list)+1) + "] = {"
    for value in encoding_list:
        print "  "+repr(value)+","
    print "  0 };"
    print ""


def main(argv):
    """main program body"""

    count_sid = len(t1_standard_strings)
    
    # build mac index table & supplemental glyph names
    mac_list   = count_extra_glyphs( mac_standard_names, t1_standard_strings )
    count_mac  = len(mac_list)  
    t1_bias    = count_mac
    glyph_list = mac_list + t1_standard_strings
    
    # build adobe unicode index table & supplemental glyph names
    adobe_list  = the_adobe_glyph_list()
    adobe_list  = count_extra_glyphs( adobe_list, glyph_list )
    count_adobe = len(adobe_list)
    
    print "/* the following tables are generated automatically - do not edit */"
    print ""

    # dump glyph list
    dump_glyph_list( glyph_list, adobe_list )
    
    # dump t1_standard_list
    print "static const char**  t1_standard_glyphs = standard_glyph_names + " + repr(t1_bias) + ";"
    print ""
    print "#define NUM_STD_GLYPHS "+repr(len(t1_standard_strings))
    print ""
    print "#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST"
    print "#define NUM_ADOBE_GLYPHS "+repr(len(glyph_list)+len(adobe_list)-t1_bias)
    print "#else"
    print "#define NUM_ADOBE_GLYPHS "+repr(len(glyph_list)-t1_bias)
    print "#endif"
    print ""

    # dump mac indices table
    dump_mac_indices()    
    
    # dump unicode values table
    dump_unicode_values( glyph_list[t1_bias:] )

    dump_encoding( "t1_standard_encoding", t1_standard_encoding )
    dump_encoding( "t1_expert_encoding", t1_expert_encoding )
    
    print "/* end of automatically-generated tables */"

main(sys.argv)