//========================================================================
//
// FontInfo.h
//
// This file was automatically generated by makeFontInfo.
//
// Copyright 1996 Derek B. Noonburg
//
//========================================================================

#ifndef FONTINFO_H
#define FONTINFO_H

//------------------------------------------------------------------------
// Character encodings.
//------------------------------------------------------------------------

#define standardEncodingSize 335
static char *standardEncodingNames[standardEncodingSize] = {
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  "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",
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  "exclamdown",
  "cent",
  "sterling",
  "fraction",
  "yen",
  "florin",
  "section",
  "currency",
  "quotesingle",
  "quotedblleft",
  "guillemotleft",
  "guilsinglleft",
  "guilsinglright",
  "fi",
  "fl",
  NULL,
  "endash",
  "dagger",
  "daggerdbl",
  "periodcentered",
  NULL,
  "paragraph",
  "bullet",
  "quotesinglbase",
  "quotedblbase",
  "quotedblright",
  "guillemotright",
  "ellipsis",
  "perthousand",
  NULL,
  "questiondown",
  NULL,
  "grave",
  "acute",
  "circumflex",
  "tilde",
  "macron",
  "breve",
  "dotaccent",
  "dieresis",
  NULL,
  "ring",
  "cedilla",
  NULL,
  "hungarumlaut",
  "ogonek",
  "caron",
  "emdash",
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  "AE",
  NULL,
  "ordfeminine",
  NULL,
  NULL,
  NULL,
  NULL,
  "Lslash",
  "Oslash",
  "OE",
  "ordmasculine",
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  "ae",
  NULL,
  NULL,
  NULL,
  "dotlessi",
  NULL,
  NULL,
  "lslash",
  "oslash",
  "oe",
  "germandbls",
  NULL,
  NULL,
  NULL,
  NULL,
  "Aacute",
  "Acircumflex",
  "Adieresis",
  "Agrave",
  "Aring",
  "Atilde",
  "Ccedilla",
  "Eacute",
  "Ecircumflex",
  "Edieresis",
  "Egrave",
  "Eth",
  "Iacute",
  "Icircumflex",
  "Idieresis",
  "Igrave",
  "Ntilde",
  "Oacute",
  "Ocircumflex",
  "Odieresis",
  "Ograve",
  "Otilde",
  "Scaron",
  "Thorn",
  "Uacute",
  "Ucircumflex",
  "Udieresis",
  "Ugrave",
  "Yacute",
  "Ydieresis",
  "Zcaron",
  "aacute",
  "acircumflex",
  "adieresis",
  "agrave",
  "aring",
  "atilde",
  "brokenbar",
  "ccedilla",
  "copyright",
  "degree",
  "divide",
  "eacute",
  "ecircumflex",
  "edieresis",
  "egrave",
  "eth",
  "iacute",
  "icircumflex",
  "idieresis",
  "igrave",
  "logicalnot",
  "minus",
  "mu",
  "multiply",
  "ntilde",
  "oacute",
  "ocircumflex",
  "odieresis",
  "ograve",
  "onehalf",
  "onequarter",
  "onesuperior",
  "otilde",
  "plusminus",
  "registered",
  "scaron",
  "thorn",
  "threequarters",
  "threesuperior",
  "trademark",
  "twosuperior",
  "uacute",
  "ucircumflex",
  "udieresis",
  "ugrave",
  "yacute",
  "ydieresis",
  "zcaron"
};
static GfxFontEncoding standardEncoding(standardEncodingNames,
                                        standardEncodingSize);

#define symbolEncodingSize 257
static char *symbolEncodingNames[symbolEncodingSize] = {
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  "space",
  "exclam",
  "universal",
  "numbersign",
  "existential",
  "percent",
  "ampersand",
  "suchthat",
  "parenleft",
  "parenright",
  "asteriskmath",
  "plus",
  "comma",
  "minus",
  "period",
  "slash",
  "zero",
  "one",
  "two",
  "three",
  "four",
  "five",
  "six",
  "seven",
  "eight",
  "nine",
  "colon",
  "semicolon",
  "less",
  "equal",
  "greater",
  "question",
  "congruent",
  "Alpha",
  "Beta",
  "Chi",
  "Delta",
  "Epsilon",
  "Phi",
  "Gamma",
  "Eta",
  "Iota",
  "theta1",
  "Kappa",
  "Lambda",
  "Mu",
  "Nu",
  "Omicron",
  "Pi",
  "Theta",
  "Rho",
  "Sigma",
  "Tau",
  "Upsilon",
  "sigma1",
  "Omega",
  "Xi",
  "Psi",
  "Zeta",
  "bracketleft",
  "therefore",
  "bracketright",
  "perpendicular",
  "underscore",
  "radicalex",
  "alpha",
  "beta",
  "chi",
  "delta",
  "epsilon",
  "phi",
  "gamma",
  "eta",
  "iota",
  "phi1",
  "kappa",
  "lambda",
  "mu",
  "nu",
  "omicron",
  "pi",
  "theta",
  "rho",
  "sigma",
  "tau",
  "upsilon",
  "omega1",
  "omega",
  "xi",
  "psi",
  "zeta",
  "braceleft",
  "bar",
  "braceright",
  "similar",
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  "Upsilon1",
  "minute",
  "lessequal",
  "fraction",
  "infinity",
  "florin",
  "club",
  "diamond",
  "heart",
  "spade",
  "arrowboth",
  "arrowleft",
  "arrowup",
  "arrowright",
  "arrowdown",
  "degree",
  "plusminus",
  "second",
  "greaterequal",
  "multiply",
  "proportional",
  "partialdiff",
  "bullet",
  "divide",
  "notequal",
  "equivalence",
  "approxequal",
  "ellipsis",
  "arrowvertex",
  "arrowhorizex",
  "carriagereturn",
  "aleph",
  "Ifraktur",
  "Rfraktur",
  "weierstrass",
  "circlemultiply",
  "circleplus",
  "emptyset",
  "intersection",
  "union",
  "propersuperset",
  "reflexsuperset",
  "notsubset",
  "propersubset",
  "reflexsubset",
  "element",
  "notelement",
  "angle",
  "gradient",
  "registerserif",
  "copyrightserif",
  "trademarkserif",
  "product",
  "radical",
  "dotmath",
  "logicalnot",
  "logicaland",
  "logicalor",
  "arrowdblboth",
  "arrowdblleft",
  "arrowdblup",
  "arrowdblright",
  "arrowdbldown",
  "lozenge",
  "angleleft",
  "registersans",
  "copyrightsans",
  "trademarksans",
  "summation",
  "parenlefttp",
  "parenleftex",
  "parenleftbt",
  "bracketlefttp",
  "bracketleftex",
  "bracketleftbt",
  "bracelefttp",
  "braceleftmid",
  "braceleftbt",
  "braceex",
  NULL,
  "angleright",
  "integral",
  "integraltp",
  "integralex",
  "integralbt",
  "parenrighttp",
  "parenrightex",
  "parenrightbt",
  "bracketrighttp",
  "bracketrightex",
  "bracketrightbt",
  "bracerighttp",
  "bracerightmid",
  "bracerightbt",
  NULL,
  "apple"
};
static GfxFontEncoding symbolEncoding(symbolEncodingNames,
                                      symbolEncodingSize);

#define zapfDingbatsEncodingSize 270
static char *zapfDingbatsEncodingNames[zapfDingbatsEncodingSize] = {
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  "space",
  "a1",
  "a2",
  "a202",
  "a3",
  "a4",
  "a5",
  "a119",
  "a118",
  "a117",
  "a11",
  "a12",
  "a13",
  "a14",
  "a15",
  "a16",
  "a105",
  "a17",
  "a18",
  "a19",
  "a20",
  "a21",
  "a22",
  "a23",
  "a24",
  "a25",
  "a26",
  "a27",
  "a28",
  "a6",
  "a7",
  "a8",
  "a9",
  "a10",
  "a29",
  "a30",
  "a31",
  "a32",
  "a33",
  "a34",
  "a35",
  "a36",
  "a37",
  "a38",
  "a39",
  "a40",
  "a41",
  "a42",
  "a43",
  "a44",
  "a45",
  "a46",
  "a47",
  "a48",
  "a49",
  "a50",
  "a51",
  "a52",
  "a53",
  "a54",
  "a55",
  "a56",
  "a57",
  "a58",
  "a59",
  "a60",
  "a61",
  "a62",
  "a63",
  "a64",
  "a65",
  "a66",
  "a67",
  "a68",
  "a69",
  "a70",
  "a71",
  "a72",
  "a73",
  "a74",
  "a203",
  "a75",
  "a204",
  "a76",
  "a77",
  "a78",
  "a79",
  "a81",
  "a82",
  "a83",
  "a84",
  "a97",
  "a98",
  "a99",
  "a100",
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  "a101",
  "a102",
  "a103",
  "a104",
  "a106",
  "a107",
  "a108",
  "a112",
  "a111",
  "a110",
  "a109",
  "a120",
  "a121",
  "a122",
  "a123",
  "a124",
  "a125",
  "a126",
  "a127",
  "a128",
  "a129",
  "a130",
  "a131",
  "a132",
  "a133",
  "a134",
  "a135",
  "a136",
  "a137",
  "a138",
  "a139",
  "a140",
  "a141",
  "a142",
  "a143",
  "a144",
  "a145",
  "a146",
  "a147",
  "a148",
  "a149",
  "a150",
  "a151",
  "a152",
  "a153",
  "a154",
  "a155",
  "a156",
  "a157",
  "a158",
  "a159",
  "a160",
  "a161",
  "a163",
  "a164",
  "a196",
  "a165",
  "a192",
  "a166",
  "a167",
  "a168",
  "a169",
  "a170",
  "a171",
  "a172",
  "a173",
  "a162",
  "a174",
  "a175",
  "a176",
  "a177",
  "a178",
  "a179",
  "a193",
  "a180",
  "a199",
  "a181",
  "a200",
  "a182",
  NULL,
  "a201",
  "a183",
  "a184",
  "a197",
  "a185",
  "a194",
  "a198",
  "a186",
  "a195",
  "a187",
  "a188",
  "a189",
  "a190",
  "a191",
  NULL,
  "a205",
  "a206",
  "a85",
  "a86",
  "a87",
  "a88",
  "a89",
  "a90",
  "a91",
  "a92",
  "a93",
  "a94",
  "a95",
  "a96"
};
static GfxFontEncoding zapfDingbatsEncoding(zapfDingbatsEncodingNames,
                                            zapfDingbatsEncodingSize);

#define macRomanEncodingSize 256
static char *macRomanEncodingNames[macRomanEncodingSize] = {
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  "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",
  NULL,
  "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",
  NULL,
  "AE",
  "Oslash",
  NULL,
  "plusminus",
  NULL,
  NULL,
  "yen",
  "mu",
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  "ordfeminine",
  "ordmasculine",
  NULL,
  "ae",
  "oslash",
  "questiondown",
  "exclamdown",
  "logicalnot",
  NULL,
  "florin",
  NULL,
  NULL,
  "guillemotleft",
  "guillemotright",
  "ellipsis",
  "space",
  "Agrave",
  "Atilde",
  "Otilde",
  "OE",
  "oe",
  "endash",
  "emdash",
  "quotedblleft",
  "quotedblright",
  "quoteleft",
  "quoteright",
  "divide",
  NULL,
  "ydieresis",
  "Ydieresis",
  "fraction",
  "currency",
  "guilsinglleft",
  "guilsinglright",
  "fi",
  "fl",
  "daggerdbl",
  "periodcentered",
  "quotesinglbase",
  "quotedblbase",
  "perthousand",
  "Acircumflex",
  "Ecircumflex",
  "Aacute",
  "Edieresis",
  "Egrave",
  "Iacute",
  "Icircumflex",
  "Idieresis",
  "Igrave",
  "Oacute",
  "Ocircumflex",
  NULL,
  "Ograve",
  "Uacute",
  "Ucircumflex",
  "Ugrave",
  "dotlessi",
  "circumflex",
  "tilde",
  "macron",
  "breve",
  "dotaccent",
  "ring",
  "cedilla",
  "hungarumlaut",
  "ogonek",
  "caron"
};
static GfxFontEncoding macRomanEncoding(macRomanEncodingNames,
                                        macRomanEncodingSize);

#define winAnsiEncodingSize 256
static char *winAnsiEncodingNames[winAnsiEncodingSize] = {
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  "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",
  "bullet",
  "bullet",
  "bullet",
  "quotesinglbase",
  "florin",
  "quotedblbase",
  "ellipsis",
  "dagger",
  "daggerdbl",
  "circumflex",
  "perthousand",
  "Scaron",
  "guilsinglleft",
  "OE",
  "bullet",
  "bullet",
  "bullet",
  "bullet",
  "quoteleft",
  "quoteright",
  "quotedblleft",
  "quotedblright",
  "bullet",
  "endash",
  "emdash",
  "tilde",
  "trademark",
  "scaron",
  "guilsinglright",
  "oe",
  "bullet",
  "bullet",
  "Ydieresis",
  "space",
  "exclamdown",
  "cent",
  "sterling",
  "currency",
  "yen",
  "brokenbar",
  "section",
  "dieresis",
  "copyright",
  "ordfeminine",
  "guillemotleft",
  "logicalnot",
  "hyphen",
  "registered",
  "macron",
  "degree",
  "plusminus",
  "twosuperior",
  "threesuperior",
  "acute",
  "mu",
  "paragraph",
  "periodcentered",
  "cedilla",
  "onesuperior",
  "ordmasculine",
  "guillemotright",
  "onequarter",
  "onehalf",
  "threequarters",
  "questiondown",
  "Agrave",
  "Aacute",
  "Acircumflex",
  "Atilde",
  "Adieresis",
  "Aring",
  "AE",
  "Ccedilla",
  "Egrave",
  "Eacute",
  "Ecircumflex",
  "Edieresis",
  "Igrave",
  "Iacute",
  "Icircumflex",
  "Idieresis",
  "Eth",
  "Ntilde",
  "Ograve",
  "Oacute",
  "Ocircumflex",
  "Otilde",
  "Odieresis",
  "multiply",
  "Oslash",
  "Ugrave",
  "Uacute",
  "Ucircumflex",
  "Udieresis",
  "Yacute",
  "Thorn",
  "germandbls",
  "agrave",
  "aacute",
  "acircumflex",
  "atilde",
  "adieresis",
  "aring",
  "ae",
  "ccedilla",
  "egrave",
  "eacute",
  "ecircumflex",
  "edieresis",
  "igrave",
  "iacute",
  "icircumflex",
  "idieresis",
  "eth",
  "ntilde",
  "ograve",
  "oacute",
  "ocircumflex",
  "otilde",
  "odieresis",
  "divide",
  "oslash",
  "ugrave",
  "uacute",
  "ucircumflex",
  "udieresis",
  "yacute",
  "thorn",
  "ydieresis"
};
static GfxFontEncoding winAnsiEncoding(winAnsiEncodingNames,
                                       winAnsiEncodingSize);

//------------------------------------------------------------------------
// Character widths for built-in fonts.
//------------------------------------------------------------------------

static Gushort courierWidths[335] = {
     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,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,    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,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
     0,  600,  600,  600,  600,    0,  600,  600,
   600,  600,  600,  600,  600,  600,    0,  600,
     0,  600,  600,  600,  600,  600,  600,  600,
   600,    0,  600,  600,    0,  600,  600,  600,
   600,    0,    0,    0,    0,    0,    0,    0,
     0,    0,    0,    0,    0,    0,    0,    0,
     0,  600,    0,  600,    0,    0,    0,    0,
   600,  600,  600,  600,    0,    0,    0,    0,
     0,  600,    0,    0,    0,  600,    0,    0,
   600,  600,  600,  600,    0,    0,    0,    0,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600
};

static Gushort courierBoldWidths[335] = {
     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,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,    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,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
     0,  600,  600,  600,  600,    0,  600,  600,
   600,  600,  600,  600,  600,  600,    0,  600,
     0,  600,  600,  600,  600,  600,  600,  600,
   600,    0,  600,  600,    0,  600,  600,  600,
   600,    0,    0,    0,    0,    0,    0,    0,
     0,    0,    0,    0,    0,    0,    0,    0,
     0,  600,    0,  600,    0,    0,    0,    0,
   600,  600,  600,  600,    0,    0,    0,    0,
     0,  600,    0,    0,    0,  600,    0,    0,
   600,  600,  600,  600,    0,    0,    0,    0,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600
};

static Gushort courierBoldObliqueWidths[335] = {
     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,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,    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,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
     0,  600,  600,  600,  600,    0,  600,  600,
   600,  600,  600,  600,  600,  600,    0,  600,
     0,  600,  600,  600,  600,  600,  600,  600,
   600,    0,  600,  600,    0,  600,  600,  600,
   600,    0,    0,    0,    0,    0,    0,    0,
     0,    0,    0,    0,    0,    0,    0,    0,
     0,  600,    0,  600,    0,    0,    0,    0,
   600,  600,  600,  600,    0,    0,    0,    0,
     0,  600,    0,    0,    0,  600,    0,    0,
   600,  600,  600,  600,    0,    0,    0,    0,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600
};

static Gushort courierObliqueWidths[335] = {
     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,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,    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,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
     0,  600,  600,  600,  600,    0,  600,  600,
   600,  600,  600,  600,  600,  600,    0,  600,
     0,  600,  600,  600,  600,  600,  600,  600,
   600,    0,  600,  600,    0,  600,  600,  600,
   600,    0,    0,    0,    0,    0,    0,    0,
     0,    0,    0,    0,    0,    0,    0,    0,
     0,  600,    0,  600,    0,    0,    0,    0,
   600,  600,  600,  600,    0,    0,    0,    0,
     0,  600,    0,    0,    0,  600,    0,    0,
   600,  600,  600,  600,    0,    0,    0,    0,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600,  600,
   600,  600,  600,  600,  600,  600,  600
};

static Gushort helveticaWidths[335] = {
     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,
   278,  278,  355,  556,  556,  889,  667,  222,
   333,  333,  389,  584,  278,  333,  278,  278,
   556,  556,  556,  556,  556,  556,  556,  556,
   556,  556,  278,  278,  584,  584,  584,  556,
  1015,  667,  667,  722,  722,  667,  611,  778,
   722,  278,  500,  667,  556,  833,  722,  778,
   667,  778,  722,  667,  611,  722,  667,  944,
   667,  667,  611,  278,  278,  278,  469,  556,
   222,  556,  556,  500,  556,  556,  278,  556,
   556,  222,  222,  500,  222,  833,  556,  556,
   556,  556,  333,  500,  278,  556,  500,  722,
   500,  500,  500,  334,  260,  334,  584,    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,  333,  556,  556,  167,  556,  556,  556,
   556,  191,  333,  556,  333,  333,  500,  500,
     0,  556,  556,  556,  278,    0,  537,  350,
   222,  333,  333,  556, 1000, 1000,    0,  611,
     0,  333,  333,  333,  333,  333,  333,  333,
   333,    0,  333,  333,    0,  333,  333,  333,
  1000,    0,    0,    0,    0,    0,    0,    0,
     0,    0,    0,    0,    0,    0,    0,    0,
     0, 1000,    0,  370,    0,    0,    0,    0,
   556,  778, 1000,  365,    0,    0,    0,    0,
     0,  889,    0,    0,    0,  278,    0,    0,
   222,  611,  944,  611,    0,    0,    0,    0,
   667,  667,  667,  667,  667,  667,  722,  667,
   667,  667,  667,  722,  278,  278,  278,  278,
   722,  778,  778,  778,  778,  778,  667,  667,
   722,  722,  722,  722,  667,  667,  611,  556,
   556,  556,  556,  556,  556,  260,  500,  737,
   400,  584,  556,  556,  556,  556,  556,  278,
   278,  278,  278,  584,  584,  556,  584,  556,
   556,  556,  556,  556,  834,  834,  333,  556,
   584,  737,  500,  556,  834,  333, 1000,  333,
   556,  556,  556,  556,  500,  500,  500
};

static Gushort helveticaBoldWidths[335] = {
     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,
   278,  333,  474,  556,  556,  889,  722,  278,
   333,  333,  389,  584,  278,  333,  278,  278,
   556,  556,  556,  556,  556,  556,  556,  556,
   556,  556,  333,  333,  584,  584,  584,  611,
   975,  722,  722,  722,  722,  667,  611,  778,
   722,  278,  556,  722,  611,  833,  722,  778,
   667,  778,  722,  667,  611,  722,  667,  944,
   667,  667,  611,  333,  278,  333,  584,  556,
   278,  556,  611,  556,  611,  556,  333,  611,
   611,  278,  278,  556,  278,  889,  611,  611,
   611,  611,  389,  556,  333,  611,  556,  778,
   556,  556,  500,  389,  280,  389,  584,    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,  333,  556,  556,  167,  556,  556,  556,
   556,  238,  500,  556,  333,  333,  611,  611,
     0,  556,  556,  556,  278,    0,  556,  350,
   278,  500,  500,  556, 1000, 1000,    0,  611,
     0,  333,  333,  333,  333,  333,  333,  333,
   333,    0,  333,  333,    0,  333,  333,  333,
  1000,    0,    0,    0,    0,    0,    0,    0,
     0,    0,    0,    0,    0,    0,    0,    0,
     0, 1000,    0,  370,    0,    0,    0,    0,
   611,  778, 1000,  365,    0,    0,    0,    0,
     0,  889,    0,    0,    0,  278,    0,    0,
   278,  611,  944,  611,    0,    0,    0,    0,
   722,  722,  722,  722,  722,  722,  722,  667,
   667,  667,  667,  722,  278,  278,  278,  278,
   722,  778,  778,  778,  778,  778,  667,  667,
   722,  722,  722,  722,  667,  667,  611,  556,
   556,  556,  556,  556,  556,  280,  556,  737,
   400,  584,  556,  556,  556,  556,  611,  278,
   278,  278,  278,  584,  584,  611,  584,  611,
   611,  611,  611,  611,  834,  834,  333,  611,
   584,  737,  556,  611,  834,  333, 1000,  333,
   611,  611,  611,  611,  556,  556,  500
};

static Gushort helveticaBoldObliqueWidths[335] = {
     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,
   278,  333,  474,  556,  556,  889,  722,  278,
   333,  333,  389,  584,  278,  333,  278,  278,
   556,  556,  556,  556,  556,  556,  556,  556,
   556,  556,  333,  333,  584,  584,  584,  611,
   975,  722,  722,  722,  722,  667,  611,  778,
   722,  278,  556,  722,  611,  833,  722,  778,
   667,  778,  722,  667,  611,  722,  667,  944,
   667,  667,  611,  333,  278,  333,  584,  556,
   278,  556,  611,  556,  611,  556,  333,  611,
   611,  278,  278,  556,  278,  889,  611,  611,
   611,  611,  389,  556,  333,  611,  556,  778,
   556,  556,  500,  389,  280,  389,  584,    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,  333,  556,  556,  167,  556,  556,  556,
   556,  238,  500,  556,  333,  333,  611,  611,
     0,  556,  556,  556,  278,    0,  556,  350,
   278,  500,  500,  556, 1000, 1000,    0,  611,
     0,  333,  333,  333,  333,  333,  333,  333,
   333,    0,  333,  333,    0,  333,  333,  333,
  1000,    0,    0,    0,    0,    0,    0,    0,
     0,    0,    0,    0,    0,    0,    0,    0,
     0, 1000,    0,  370,    0,    0,    0,    0,
   611,  778, 1000,  365,    0,    0,    0,    0,
     0,  889,    0,    0,    0,  278,    0,    0,
   278,  611,  944,  611,    0,    0,    0,    0,
   722,  722,  722,  722,  722,  722,  722,  667,
   667,  667,  667,  722,  278,  278,  278,  278,
   722,  778,  778,  778,  778,  778,  667,  667,
   722,  722,  722,  722,  667,  667,  611,  556,
   556,  556,  556,  556,  556,  280,  556,  737,
   400,  584,  556,  556,  556,  556,  611,  278,
   278,  278,  278,  584,  584,  611,  584,  611,
   611,  611,  611,  611,  834,  834,  333,  611,
   584,  737,  556,  611,  834,  333, 1000,  333,
   611,  611,  611,  611,  556,  556,  500
};

static Gushort helveticaObliqueWidths[335] = {
     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,
   278,  278,  355,  556,  556,  889,  667,  222,
   333,  333,  389,  584,  278,  333,  278,  278,
   556,  556,  556,  556,  556,  556,  556,  556,
   556,  556,  278,  278,  584,  584,  584,  556,
  1015,  667,  667,  722,  722,  667,  611,  778,
   722,  278,  500,  667,  556,  833,  722,  778,
   667,  778,  722,  667,  611,  722,  667,  944,
   667,  667,  611,  278,  278,  278,  469,  556,
   222,  556,  556,  500,  556,  556,  278,  556,
   556,  222,  222,  500,  222,  833,  556,  556,
   556,  556,  333,  500,  278,  556,  500,  722,
   500,  500,  500,  334,  260,  334,  584,    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,  333,  556,  556,  167,  556,  556,  556,
   556,  191,  333,  556,  333,  333,  500,  500,
     0,  556,  556,  556,  278,    0,  537,  350,
   222,  333,  333,  556, 1000, 1000,    0,  611,
     0,  333,  333,  333,  333,  333,  333,  333,
   333,    0,  333,  333,    0,  333,  333,  333,
  1000,    0,    0,    0,    0,    0,    0,    0,
     0,    0,    0,    0,    0,    0,    0,    0,
     0, 1000,    0,  370,    0,    0,    0,    0,
   556,  778, 1000,  365,    0,    0,    0,    0,
     0,  889,    0,    0,    0,  278,    0,    0,
   222,  611,  944,  611,    0,    0,    0,    0,
   667,  667,  667,  667,  667,  667,  722,  667,
   667,  667,  667,  722,  278,  278,  278,  278,
   722,  778,  778,  778,  778,  778,  667,  667,
   722,  722,  722,  722,  667,  667,  611,  556,
   556,  556,  556,  556,  556,  260,  500,  737,
   400,  584,  556,  556,  556,  556,  556,  278,
   278,  278,  278,  584,  584,  556,  584,  556,
   556,  556,  556,  556,  834,  834,  333,  556,
   584,  737,  500,  556,  834,  333, 1000,  333,
   556,  556,  556,  556,  500,  500,  500
};

static Gushort symbolWidths[257] = {
     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,
   250,  333,  713,  500,  549,  833,  778,  439,
   333,  333,  500,  549,  250,  549,  250,  278,
   500,  500,  500,  500,  500,  500,  500,  500,
   500,  500,  278,  278,  549,  549,  549,  444,
   549,  722,  667,  722,  612,  611,  763,  603,
   722,  333,  631,  722,  686,  889,  722,  722,
   768,  741,  556,  592,  611,  690,  439,  768,
   645,  795,  611,  333,  863,  333,  658,  500,
   500,  631,  549,  549,  494,  439,  521,  411,
   603,  329,  603,  549,  549,  576,  521,  549,
   549,  521,  549,  603,  439,  576,  713,  686,
   493,  686,  494,  480,  200,  480,  549,    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,  620,  247,  549,  167,  713,  500,  753,
   753,  753,  753, 1042,  987,  603,  987,  603,
   400,  549,  411,  549,  549,  713,  494,  460,
   549,  549,  549,  549, 1000,  603, 1000,  658,
   823,  686,  795,  987,  768,  768,  823,  768,
   768,  713,  713,  713,  713,  713,  713,  713,
   768,  713,  790,  790,  890,  823,  549,  250,
   713,  603,  603, 1042,  987,  603,  987,  603,
   494,  329,  790,  790,  786,  713,  384,  384,
   384,  384,  384,  384,  494,  494,  494,  494,
     0,  329,  274,  686,  686,  686,  384,  384,
   384,  384,  384,  384,  494,  494,  494,    0,
   790
};

static Gushort timesBoldWidths[335] = {
     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,
   250,  333,  555,  500,  500, 1000,  833,  333,
   333,  333,  500,  570,  250,  333,  250,  278,
   500,  500,  500,  500,  500,  500,  500,  500,
   500,  500,  333,  333,  570,  570,  570,  500,
   930,  722,  667,  722,  722,  667,  611,  778,
   778,  389,  500,  778,  667,  944,  722,  778,
   611,  778,  722,  556,  667,  722,  722, 1000,
   722,  722,  667,  333,  278,  333,  581,  500,
   333,  500,  556,  444,  556,  444,  333,  500,
   556,  278,  333,  556,  278,  833,  556,  500,
   556,  556,  444,  389,  333,  556,  500,  722,
   500,  500,  444,  394,  220,  394,  520,    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,  333,  500,  500,  167,  500,  500,  500,
   500,  278,  500,  500,  333,  333,  556,  556,
     0,  500,  500,  500,  250,    0,  540,  350,
   333,  500,  500,  500, 1000, 1000,    0,  500,
     0,  333,  333,  333,  333,  333,  333,  333,
   333,    0,  333,  333,    0,  333,  333,  333,
  1000,    0,    0,    0,    0,    0,    0,    0,
     0,    0,    0,    0,    0,    0,    0,    0,
     0, 1000,    0,  300,    0,    0,    0,    0,
   667,  778, 1000,  330,    0,    0,    0,    0,
     0,  722,    0,    0,    0,  278,    0,    0,
   278,  500,  722,  556,    0,    0,    0,    0,
   722,  722,  722,  722,  722,  722,  722,  667,
   667,  667,  667,  722,  389,  389,  389,  389,
   722,  778,  778,  778,  778,  778,  556,  611,
   722,  722,  722,  722,  722,  722,  667,  500,
   500,  500,  500,  500,  500,  220,  444,  747,
   400,  570,  444,  444,  444,  444,  500,  278,
   278,  278,  278,  570,  570,  556,  570,  556,
   500,  500,  500,  500,  750,  750,  300,  500,
   570,  747,  389,  556,  750,  300, 1000,  300,
   556,  556,  556,  556,  500,  500,  444
};

static Gushort timesBoldItalicWidths[335] = {
     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,
   250,  389,  555,  500,  500,  833,  778,  333,
   333,  333,  500,  570,  250,  333,  250,  278,
   500,  500,  500,  500,  500,  500,  500,  500,
   500,  500,  333,  333,  570,  570,  570,  500,
   832,  667,  667,  667,  722,  667,  667,  722,
   778,  389,  500,  667,  611,  889,  722,  722,
   611,  722,  667,  556,  611,  722,  667,  889,
   667,  611,  611,  333,  278,  333,  570,  500,
   333,  500,  500,  444,  500,  444,  333,  500,
   556,  278,  278,  500,  278,  778,  556,  500,
   500,  500,  389,  389,  278,  556,  444,  667,
   500,  444,  389,  348,  220,  348,  570,    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,  389,  500,  500,  167,  500,  500,  500,
   500,  278,  500,  500,  333,  333,  556,  556,
     0,  500,  500,  500,  250,    0,  500,  350,
   333,  500,  500,  500, 1000, 1000,    0,  500,
     0,  333,  333,  333,  333,  333,  333,  333,
   333,    0,  333,  333,    0,  333,  333,  333,
  1000,    0,    0,    0,    0,    0,    0,    0,
     0,    0,    0,    0,    0,    0,    0,    0,
     0,  944,    0,  266,    0,    0,    0,    0,
   611,  722,  944,  300,    0,    0,    0,    0,
     0,  722,    0,    0,    0,  278,    0,    0,
   278,  500,  722,  500,    0,    0,    0,    0,
   667,  667,  667,  667,  667,  667,  667,  667,
   667,  667,  667,  722,  389,  389,  389,  389,
   722,  722,  722,  722,  722,  722,  556,  611,
   722,  722,  722,  722,  611,  611,  611,  500,
   500,  500,  500,  500,  500,  220,  444,  747,
   400,  570,  444,  444,  444,  444,  500,  278,
   278,  278,  278,  606,  606,  576,  570,  556,
   500,  500,  500,  500,  750,  750,  300,  500,
   570,  747,  389,  500,  750,  300, 1000,  300,
   556,  556,  556,  556,  444,  444,  389
};

static Gushort timesItalicWidths[335] = {
     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,
   250,  333,  420,  500,  500,  833,  778,  333,
   333,  333,  500,  675,  250,  333,  250,  278,
   500,  500,  500,  500,  500,  500,  500,  500,
   500,  500,  333,  333,  675,  675,  675,  500,
   920,  611,  611,  667,  722,  611,  611,  722,
   722,  333,  444,  667,  556,  833,  667,  722,
   611,  722,  611,  500,  556,  722,  611,  833,
   611,  556,  556,  389,  278,  389,  422,  500,
   333,  500,  500,  444,  500,  444,  278,  500,
   500,  278,  278,  444,  278,  722,  500,  500,
   500,  500,  389,  389,  278,  500,  444,  667,
   444,  444,  389,  400,  275,  400,  541,    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,  389,  500,  500,  167,  500,  500,  500,
   500,  214,  556,  500,  333,  333,  500,  500,
     0,  500,  500,  500,  250,    0,  523,  350,
   333,  556,  556,  500,  889, 1000,    0,  500,
     0,  333,  333,  333,  333,  333,  333,  333,
   333,    0,  333,  333,    0,  333,  333,  333,
   889,    0,    0,    0,    0,    0,    0,    0,
     0,    0,    0,    0,    0,    0,    0,    0,
     0,  889,    0,  276,    0,    0,    0,    0,
   556,  722,  944,  310,    0,    0,    0,    0,
     0,  667,    0,    0,    0,  278,    0,    0,
   278,  500,  667,  500,    0,    0,    0,    0,
   611,  611,  611,  611,  611,  611,  667,  611,
   611,  611,  611,  722,  333,  333,  333,  333,
   667,  722,  722,  722,  722,  722,  500,  611,
   722,  722,  722,  722,  556,  556,  556,  500,
   500,  500,  500,  500,  500,  275,  444,  760,
   400,  675,  444,  444,  444,  444,  500,  278,
   278,  278,  278,  675,  675,  500,  675,  500,
   500,  500,  500,  500,  750,  750,  300,  500,
   675,  760,  389,  500,  750,  300,  980,  300,
   500,  500,  500,  500,  444,  444,  389
};

static Gushort timesRomanWidths[335] = {
     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,
   250,  333,  408,  500,  500,  833,  778,  333,
   333,  333,  500,  564,  250,  333,  250,  278,
   500,  500,  500,  500,  500,  500,  500,  500,
   500,  500,  278,  278,  564,  564,  564,  444,
   921,  722,  667,  667,  722,  611,  556,  722,
   722,  333,  389,  722,  611,  889,  722,  722,
   556,  722,  667,  556,  611,  722,  722,  944,
   722,  722,  611,  333,  278,  333,  469,  500,
   333,  444,  500,  444,  500,  444,  333,  500,
   500,  278,  278,  500,  278,  778,  500,  500,
   500,  500,  333,  389,  278,  500,  500,  722,
   500,  500,  444,  480,  200,  480,  541,    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,  333,  500,  500,  167,  500,  500,  500,
   500,  180,  444,  500,  333,  333,  556,  556,
     0,  500,  500,  500,  250,    0,  453,  350,
   333,  444,  444,  500, 1000, 1000,    0,  444,
     0,  333,  333,  333,  333,  333,  333,  333,
   333,    0,  333,  333,    0,  333,  333,  333,
  1000,    0,    0,    0,    0,    0,    0,    0,
     0,    0,    0,    0,    0,    0,    0,    0,
     0,  889,    0,  276,    0,    0,    0,    0,
   611,  722,  889,  310,    0,    0,    0,    0,
     0,  667,    0,    0,    0,  278,    0,    0,
   278,  500,  722,  500,    0,    0,    0,    0,
   722,  722,  722,  722,  722,  722,  667,  611,
   611,  611,  611,  722,  333,  333,  333,  333,
   722,  722,  722,  722,  722,  722,  556,  556,
   722,  722,  722,  722,  722,  722,  611,  444,
   444,  444,  444,  444,  444,  200,  444,  760,
   400,  564,  444,  444,  444,  444,  500,  278,
   278,  278,  278,  564,  564,  500,  564,  500,
   500,  500,  500,  500,  750,  750,  300,  500,
   564,  760,  389,  500,  750,  300,  980,  300,
   500,  500,  500,  500,  500,  500,  444
};

static Gushort zapfDingbatsWidths[270] = {
     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,
   278,  974,  961,  974,  980,  719,  789,  790,
   791,  690,  960,  939,  549,  855,  911,  933,
   911,  945,  974,  755,  846,  762,  761,  571,
   677,  763,  760,  759,  754,  494,  552,  537,
   577,  692,  786,  788,  788,  790,  793,  794,
   816,  823,  789,  841,  823,  833,  816,  831,
   923,  744,  723,  749,  790,  792,  695,  776,
   768,  792,  759,  707,  708,  682,  701,  826,
   815,  789,  789,  707,  687,  696,  689,  786,
   787,  713,  791,  785,  791,  873,  761,  762,
   762,  759,  759,  892,  892,  788,  784,  438,
   138,  277,  415,  392,  392,  668,  668,    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,  732,  544,  544,  910,  667,  760,  760,
   776,  595,  694,  626,  788,  788,  788,  788,
   788,  788,  788,  788,  788,  788,  788,  788,
   788,  788,  788,  788,  788,  788,  788,  788,
   788,  788,  788,  788,  788,  788,  788,  788,
   788,  788,  788,  788,  788,  788,  788,  788,
   788,  788,  788,  788,  894,  838, 1016,  458,
   748,  924,  748,  918,  927,  928,  928,  834,
   873,  828,  924,  924,  917,  930,  931,  463,
   883,  836,  836,  867,  867,  696,  696,  874,
     0,  874,  760,  946,  771,  865,  771,  888,
   967,  888,  831,  873,  927,  970,  918,    0,
   509,  410,  509,  410,  234,  234,  390,  390,
   276,  276,  317,  317,  334,  334
};

//------------------------------------------------------------------------
// Built-in font table.
//------------------------------------------------------------------------

struct BuiltinFont {
  char *name;
  Gushort *widths;
  GfxFontEncoding *encoding;
};

#define numBuiltinFonts ((int)(sizeof(builtinFonts)/sizeof(BuiltinFont)))

static BuiltinFont builtinFonts[] = {
  {"Courier",               courierWidths,              &standardEncoding},
  {"Courier-Bold",          courierBoldWidths,          &standardEncoding},
  {"Courier-BoldOblique",   courierBoldObliqueWidths,   &standardEncoding},
  {"Courier-Oblique",       courierObliqueWidths,       &standardEncoding},
  {"Helvetica",             helveticaWidths,            &standardEncoding},
  {"Helvetica-Bold",        helveticaBoldWidths,        &standardEncoding},
  {"Helvetica-BoldOblique", helveticaBoldObliqueWidths, &standardEncoding},
  {"Helvetica-Oblique",     helveticaObliqueWidths,     &standardEncoding},
  {"Symbol",                symbolWidths,               &symbolEncoding},
  {"Times-Bold",            timesBoldWidths,            &standardEncoding},
  {"Times-BoldItalic",      timesBoldItalicWidths,      &standardEncoding},
  {"Times-Italic",          timesItalicWidths,          &standardEncoding},
  {"Times-Roman",           timesRomanWidths,           &standardEncoding},
  {"ZapfDingbats",          zapfDingbatsWidths,         &zapfDingbatsEncoding}
};

#endif
