BASIC_CHARACTER_SET = {
    0x00: 'COMMERCIAL AT',
    0x01: 'POUND SIGN',
    0x02: 'DOLLAR SIGN',
    0x03: 'YEN SIGN',
    0x04: 'LATIN SMALL LETTER E WITH GRAVE',
    0x05: 'LATIN SMALL LETTER E WITH ACUTE',
    0x06: 'LATIN SMALL LETTER U WITH GRAVE',
    0x07: 'LATIN SMALL LETTER I WITH GRAVE',
    0x08: 'LATIN SMALL LETTER O WITH GRAVE',
    0x09: 'LATIN CAPITAL LETTER C WITH CEDILLA',
    0x0A: 'LINE FEED',
    0x0B: 'LATIN CAPITAL LETTER O WITH STROKE',
    0x0C: 'LATIN SMALL LETTER O WITH STROKE',
    0x0D: 'CARRIAGE RETURN',
    0x0E: 'LATIN CAPITAL LETTER A WITH RING ABOVE',
    0x0F: 'LATIN SMALL LETTER A WITH RING ABOVE',
    0x10: 'GREEK CAPITAL LETTER DELTA',
    0x11: 'LOW LINE',
    0x12: 'GREEK CAPITAL LETTER PHI',
    0x13: 'GREEK CAPITAL LETTER GAMMA',
    0x14: 'GREEK CAPITAL LETTER LAMDA',
    0x15: 'GREEK CAPITAL LETTER OMEGA',
    0x16: 'GREEK CAPITAL LETTER PI',
    0x17: 'GREEK CAPITAL LETTER PSI',
    0x18: 'GREEK CAPITAL LETTER SIGMA',
    0x19: 'GREEK CAPITAL LETTER THETA',
    0x1A: 'GREEK CAPITAL LETTER XI',
    0x1B: 'ESCAPE',
    0x1C: 'LATIN CAPITAL LETTER AE',
    0x1D: 'LATIN SMALL LETTER AE',
    0x1E: 'LATIN SMALL LETTER SHARP S',
    0x1F: 'LATIN CAPITAL LETTER E WITH ACUTE',
    0x20: 'SPACE',
    0x21: 'EXCLAMATION MARK',
    0x22: 'QUOTATION MARK',
    0x23: 'NUMBER SIGN',
    0x24: 'CURRENCY SIGN',
    0x25: 'PERCENT SIGN',
    0x26: 'AMPERSAND',
    0x27: 'APOSTROPHE',
    0x28: 'LEFT PARENTHESIS',
    0x29: 'RIGHT PARENTHESIS',
    0x2A: 'ASTERISK',
    0x2B: 'PLUS SIGN',
    0x2C: 'COMMA',
    0x2D: 'HYPHEN-MINUS',
    0x2E: 'FULL STOP',
    0x2F: 'SOLIDUS',
    0x30: 'DIGIT ZERO',
    0x31: 'DIGIT ONE',
    0x32: 'DIGIT TWO',
    0x33: 'DIGIT THREE',
    0x34: 'DIGIT FOUR',
    0x35: 'DIGIT FIVE',
    0x36: 'DIGIT SIX',
    0x37: 'DIGIT SEVEN',
    0x38: 'DIGIT EIGHT',
    0x39: 'DIGIT NINE',
    0x3A: 'COLON',
    0x3B: 'SEMICOLON',
    0x3C: 'LESS-THAN SIGN',
    0x3D: 'EQUALS SIGN',
    0x3E: 'GREATER-THAN SIGN',
    0x3F: 'QUESTION MARK',
    0x40: 'INVERTED EXCLAMATION MARK',
    0x41: 'LATIN CAPITAL LETTER A',
    0x42: 'LATIN CAPITAL LETTER B',
    0x43: 'LATIN CAPITAL LETTER C',
    0x44: 'LATIN CAPITAL LETTER D',
    0x45: 'LATIN CAPITAL LETTER E',
    0x46: 'LATIN CAPITAL LETTER F',
    0x47: 'LATIN CAPITAL LETTER G',
    0x48: 'LATIN CAPITAL LETTER H',
    0x49: 'LATIN CAPITAL LETTER I',
    0x4A: 'LATIN CAPITAL LETTER J',
    0x4B: 'LATIN CAPITAL LETTER K',
    0x4C: 'LATIN CAPITAL LETTER L',
    0x4D: 'LATIN CAPITAL LETTER M',
    0x4E: 'LATIN CAPITAL LETTER N',
    0x4F: 'LATIN CAPITAL LETTER O',
    0x50: 'LATIN CAPITAL LETTER P',
    0x51: 'LATIN CAPITAL LETTER Q',
    0x52: 'LATIN CAPITAL LETTER R',
    0x53: 'LATIN CAPITAL LETTER S',
    0x54: 'LATIN CAPITAL LETTER T',
    0x55: 'LATIN CAPITAL LETTER U',
    0x56: 'LATIN CAPITAL LETTER V',
    0x57: 'LATIN CAPITAL LETTER W',
    0x58: 'LATIN CAPITAL LETTER X',
    0x59: 'LATIN CAPITAL LETTER Y',
    0x5A: 'LATIN CAPITAL LETTER Z',
    0x5B: 'LATIN CAPITAL LETTER A WITH DIAERESIS',
    0x5C: 'LATIN CAPITAL LETTER O WITH DIAERESIS',
    0x5D: 'LATIN CAPITAL LETTER N WITH TILDE',
    0x5E: 'LATIN CAPITAL LETTER U WITH DIAERESIS',
    0x5F: 'SECTION SIGN',
    0x60: 'INVERTED QUESTION MARK',
    0x61: 'LATIN SMALL LETTER A',
    0x62: 'LATIN SMALL LETTER B',
    0x63: 'LATIN SMALL LETTER C',
    0x64: 'LATIN SMALL LETTER D',
    0x65: 'LATIN SMALL LETTER E',
    0x66: 'LATIN SMALL LETTER F',
    0x67: 'LATIN SMALL LETTER G',
    0x68: 'LATIN SMALL LETTER H',
    0x69: 'LATIN SMALL LETTER I',
    0x6A: 'LATIN SMALL LETTER J',
    0x6B: 'LATIN SMALL LETTER K',
    0x6C: 'LATIN SMALL LETTER L',
    0x6D: 'LATIN SMALL LETTER M',
    0x6E: 'LATIN SMALL LETTER N',
    0x6F: 'LATIN SMALL LETTER O',
    0x70: 'LATIN SMALL LETTER P',
    0x71: 'LATIN SMALL LETTER Q',
    0x72: 'LATIN SMALL LETTER R',
    0x73: 'LATIN SMALL LETTER S',
    0x74: 'LATIN SMALL LETTER T',
    0x75: 'LATIN SMALL LETTER U',
    0x76: 'LATIN SMALL LETTER V',
    0x77: 'LATIN SMALL LETTER W',
    0x78: 'LATIN SMALL LETTER X',
    0x79: 'LATIN SMALL LETTER Y',
    0x7A: 'LATIN SMALL LETTER Z',
    0x7B: 'LATIN SMALL LETTER A WITH DIAERESIS',
    0x7C: 'LATIN SMALL LETTER O WITH DIAERESIS',
    0x7D: 'LATIN SMALL LETTER N WITH TILDE',
    0x7E: 'LATIN SMALL LETTER U WITH DIAERESIS',
    0x7F: 'LATIN SMALL LETTER A WITH GRAVE',
}

BASIC_CHARACTER_SET_EXTENSION = {
    0x0A: 'FORM FEED',
    0x14: 'CIRCUMFLEX ACCENT',
    0x28: 'LEFT CURLY BRACKET',
    0x29: 'RIGHT CURLY BRACKET',
    0x2F: 'REVERSE SOLIDUS',
    0x3C: 'LEFT SQUARE BRACKET',
    0x3D: 'TILDE',
    0x3E: 'RIGHT SQUARE BRACKET',
    0x40: 'VERTICAL LINE',
    0x65: 'EURO SIGN',
}

SINGLE_SHIFT_CHARACTER_SET_SPANISH = {
    0x09: 'LATIN SMALL LETTER C WITH CEDILLA',
    0x0A: 'FORM FEED',
    0x14: 'CIRCUMFLEX ACCENT',
    0x28: 'LEFT CURLY BRACKET',
    0x29: 'RIGHT CURLY BRACKET',
    0x2F: 'REVERSE SOLIDUS',
    0x3C: 'LEFT SQUARE BRACKET',
    0x3D: 'TILDE',
    0x3E: 'RIGHT SQUARE BRACKET',
    0x40: 'VERTICAL LINE',
    0x41: 'LATIN CAPITAL LETTER A WITH ACUTE',
    0x49: 'LATIN CAPITAL LETTER I WITH ACUTE',
    0x4F: 'LATIN CAPITAL LETTER O WITH ACUTE',
    0x55: 'LATIN CAPITAL LETTER U WITH ACUTE',
    0x61: 'LATIN SMALL LETTER A WITH ACUTE',
    0x65: 'EURO SIGN',
    0x69: 'LATIN SMALL LETTER I WITH ACUTE',
    0x6F: 'LATIN SMALL LETTER O WITH ACUTE',
    0x75: 'LATIN SMALL LETTER U WITH ACUTE',
}
