""" Python Character Mapping Codec generated from 'CP875.TXT' with gencodec.py.

Written by Marc-Andre Lemburg (mal@lemburg.com).

(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
(c) Copyright 2000 Guido van Rossum.

"""#"

import codecs

### Codec APIs

class Codec(codecs.Codec):

    def encode(self,input,errors='strict'):

        return codecs.charmap_encode(input,errors,encoding_map)

    def decode(self,input,errors='strict'):

        return codecs.charmap_decode(input,errors,decoding_map)

class StreamWriter(Codec,codecs.StreamWriter):
    pass

class StreamReader(Codec,codecs.StreamReader):
    pass

### encodings module API

def getregentry():

    return (Codec().encode,Codec().decode,StreamReader,StreamWriter)

### Decoding Map

decoding_map = codecs.make_identity_dict(range(256))
decoding_map.update({
        0x0004: 0x009c, # CONTROL
        0x0005: 0x0009, # HORIZONTAL TABULATION
        0x0006: 0x0086, # CONTROL
        0x0007: 0x007f, # DELETE
        0x0008: 0x0097, # CONTROL
        0x0009: 0x008d, # CONTROL
        0x000a: 0x008e, # CONTROL
        0x0014: 0x009d, # CONTROL
        0x0015: 0x0085, # CONTROL
        0x0016: 0x0008, # BACKSPACE
        0x0017: 0x0087, # CONTROL
        0x001a: 0x0092, # CONTROL
        0x001b: 0x008f, # CONTROL
        0x0020: 0x0080, # CONTROL
        0x0021: 0x0081, # CONTROL
        0x0022: 0x0082, # CONTROL
        0x0023: 0x0083, # CONTROL
        0x0024: 0x0084, # CONTROL
        0x0025: 0x000a, # LINE FEED
        0x0026: 0x0017, # END OF TRANSMISSION BLOCK
        0x0027: 0x001b, # ESCAPE
        0x0028: 0x0088, # CONTROL
        0x0029: 0x0089, # CONTROL
        0x002a: 0x008a, # CONTROL
        0x002b: 0x008b, # CONTROL
        0x002c: 0x008c, # CONTROL
        0x002d: 0x0005, # ENQUIRY
        0x002e: 0x0006, # ACKNOWLEDGE
        0x002f: 0x0007, # BELL
        0x0030: 0x0090, # CONTROL
        0x0031: 0x0091, # CONTROL
        0x0032: 0x0016, # SYNCHRONOUS IDLE
        0x0033: 0x0093, # CONTROL
        0x0034: 0x0094, # CONTROL
        0x0035: 0x0095, # CONTROL
        0x0036: 0x0096, # CONTROL
        0x0037: 0x0004, # END OF TRANSMISSION
        0x0038: 0x0098, # CONTROL
        0x0039: 0x0099, # CONTROL
        0x003a: 0x009a, # CONTROL
        0x003b: 0x009b, # CONTROL
        0x003c: 0x0014, # DEVICE CONTROL FOUR
        0x003d: 0x0015, # NEGATIVE ACKNOWLEDGE
        0x003e: 0x009e, # CONTROL
        0x003f: 0x001a, # SUBSTITUTE
        0x0040: 0x0020, # SPACE
        0x0041: 0x0391, # GREEK CAPITAL LETTER ALPHA
        0x0042: 0x0392, # GREEK CAPITAL LETTER BETA
        0x0043: 0x0393, # GREEK CAPITAL LETTER GAMMA
        0x0044: 0x0394, # GREEK CAPITAL LETTER DELTA
        0x0045: 0x0395, # GREEK CAPITAL LETTER EPSILON
        0x0046: 0x0396, # GREEK CAPITAL LETTER ZETA
        0x0047: 0x0397, # GREEK CAPITAL LETTER ETA
        0x0048: 0x0398, # GREEK CAPITAL LETTER THETA
        0x0049: 0x0399, # GREEK CAPITAL LETTER IOTA
        0x004a: 0x005b, # LEFT SQUARE BRACKET
        0x004b: 0x002e, # FULL STOP
        0x004c: 0x003c, # LESS-THAN SIGN
        0x004d: 0x0028, # LEFT PARENTHESIS
        0x004e: 0x002b, # PLUS SIGN
        0x004f: 0x0021, # EXCLAMATION MARK
        0x0050: 0x0026, # AMPERSAND
        0x0051: 0x039a, # GREEK CAPITAL LETTER KAPPA
        0x0052: 0x039b, # GREEK CAPITAL LETTER LAMDA
        0x0053: 0x039c, # GREEK CAPITAL LETTER MU
        0x0054: 0x039d, # GREEK CAPITAL LETTER NU
        0x0055: 0x039e, # GREEK CAPITAL LETTER XI
        0x0056: 0x039f, # GREEK CAPITAL LETTER OMICRON
        0x0057: 0x03a0, # GREEK CAPITAL LETTER PI
        0x0058: 0x03a1, # GREEK CAPITAL LETTER RHO
        0x0059: 0x03a3, # GREEK CAPITAL LETTER SIGMA
        0x005a: 0x005d, # RIGHT SQUARE BRACKET
        0x005b: 0x0024, # DOLLAR SIGN
        0x005c: 0x002a, # ASTERISK
        0x005d: 0x0029, # RIGHT PARENTHESIS
        0x005e: 0x003b, # SEMICOLON
        0x005f: 0x005e, # CIRCUMFLEX ACCENT
        0x0060: 0x002d, # HYPHEN-MINUS
        0x0061: 0x002f, # SOLIDUS
        0x0062: 0x03a4, # GREEK CAPITAL LETTER TAU
        0x0063: 0x03a5, # GREEK CAPITAL LETTER UPSILON
        0x0064: 0x03a6, # GREEK CAPITAL LETTER PHI
        0x0065: 0x03a7, # GREEK CAPITAL LETTER CHI
        0x0066: 0x03a8, # GREEK CAPITAL LETTER PSI
        0x0067: 0x03a9, # GREEK CAPITAL LETTER OMEGA
        0x0068: 0x03aa, # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
        0x0069: 0x03ab, # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
        0x006a: 0x007c, # VERTICAL LINE
        0x006b: 0x002c, # COMMA
        0x006c: 0x0025, # PERCENT SIGN
        0x006d: 0x005f, # LOW LINE
        0x006e: 0x003e, # GREATER-THAN SIGN
        0x006f: 0x003f, # QUESTION MARK
        0x0070: 0x00a8, # DIAERESIS
        0x0071: 0x0386, # GREEK CAPITAL LETTER ALPHA WITH TONOS
        0x0072: 0x0388, # GREEK CAPITAL LETTER EPSILON WITH TONOS
        0x0073: 0x0389, # GREEK CAPITAL LETTER ETA WITH TONOS
        0x0074: 0x00a0, # NO-BREAK SPACE
        0x0075: 0x038a, # GREEK CAPITAL LETTER IOTA WITH TONOS
        0x0076: 0x038c, # GREEK CAPITAL LETTER OMICRON WITH TONOS
        0x0077: 0x038e, # GREEK CAPITAL LETTER UPSILON WITH TONOS
        0x0078: 0x038f, # GREEK CAPITAL LETTER OMEGA WITH TONOS
        0x0079: 0x0060, # GRAVE ACCENT
        0x007a: 0x003a, # COLON
        0x007b: 0x0023, # NUMBER SIGN
        0x007c: 0x0040, # COMMERCIAL AT
        0x007d: 0x0027, # APOSTROPHE
        0x007e: 0x003d, # EQUALS SIGN
        0x007f: 0x0022, # QUOTATION MARK
        0x0080: 0x0385, # GREEK DIALYTIKA TONOS
        0x0081: 0x0061, # LATIN SMALL LETTER A
        0x0082: 0x0062, # LATIN SMALL LETTER B
        0x0083: 0x0063, # LATIN SMALL LETTER C
        0x0084: 0x0064, # LATIN SMALL LETTER D
        0x0085: 0x0065, # LATIN SMALL LETTER E
        0x0086: 0x0066, # LATIN SMALL LETTER F
        0x0087: 0x0067, # LATIN SMALL LETTER G
        0x0088: 0x0068, # LATIN SMALL LETTER H
        0x0089: 0x0069, # LATIN SMALL LETTER I
        0x008a: 0x03b1, # GREEK SMALL LETTER ALPHA
        0x008b: 0x03b2, # GREEK SMALL LETTER BETA
        0x008c: 0x03b3, # GREEK SMALL LETTER GAMMA
        0x008d: 0x03b4, # GREEK SMALL LETTER DELTA
        0x008e: 0x03b5, # GREEK SMALL LETTER EPSILON
        0x008f: 0x03b6, # GREEK SMALL LETTER ZETA
        0x0090: 0x00b0, # DEGREE SIGN
        0x0091: 0x006a, # LATIN SMALL LETTER J
        0x0092: 0x006b, # LATIN SMALL LETTER K
        0x0093: 0x006c, # LATIN SMALL LETTER L
        0x0094: 0x006d, # LATIN SMALL LETTER M
        0x0095: 0x006e, # LATIN SMALL LETTER N
        0x0096: 0x006f, # LATIN SMALL LETTER O
        0x0097: 0x0070, # LATIN SMALL LETTER P
        0x0098: 0x0071, # LATIN SMALL LETTER Q
        0x0099: 0x0072, # LATIN SMALL LETTER R
        0x009a: 0x03b7, # GREEK SMALL LETTER ETA
        0x009b: 0x03b8, # GREEK SMALL LETTER THETA
        0x009c: 0x03b9, # GREEK SMALL LETTER IOTA
        0x009d: 0x03ba, # GREEK SMALL LETTER KAPPA
        0x009e: 0x03bb, # GREEK SMALL LETTER LAMDA
        0x009f: 0x03bc, # GREEK SMALL LETTER MU
        0x00a0: 0x00b4, # ACUTE ACCENT
        0x00a1: 0x007e, # TILDE
        0x00a2: 0x0073, # LATIN SMALL LETTER S
        0x00a3: 0x0074, # LATIN SMALL LETTER T
        0x00a4: 0x0075, # LATIN SMALL LETTER U
        0x00a5: 0x0076, # LATIN SMALL LETTER V
        0x00a6: 0x0077, # LATIN SMALL LETTER W
        0x00a7: 0x0078, # LATIN SMALL LETTER X
        0x00a8: 0x0079, # LATIN SMALL LETTER Y
        0x00a9: 0x007a, # LATIN SMALL LETTER Z
        0x00aa: 0x03bd, # GREEK SMALL LETTER NU
        0x00ab: 0x03be, # GREEK SMALL LETTER XI
        0x00ac: 0x03bf, # GREEK SMALL LETTER OMICRON
        0x00ad: 0x03c0, # GREEK SMALL LETTER PI
        0x00ae: 0x03c1, # GREEK SMALL LETTER RHO
        0x00af: 0x03c3, # GREEK SMALL LETTER SIGMA
        0x00b0: 0x00a3, # POUND SIGN
        0x00b1: 0x03ac, # GREEK SMALL LETTER ALPHA WITH TONOS
        0x00b2: 0x03ad, # GREEK SMALL LETTER EPSILON WITH TONOS
        0x00b3: 0x03ae, # GREEK SMALL LETTER ETA WITH TONOS
        0x00b4: 0x03ca, # GREEK SMALL LETTER IOTA WITH DIALYTIKA
        0x00b5: 0x03af, # GREEK SMALL LETTER IOTA WITH TONOS
        0x00b6: 0x03cc, # GREEK SMALL LETTER OMICRON WITH TONOS
        0x00b7: 0x03cd, # GREEK SMALL LETTER UPSILON WITH TONOS
        0x00b8: 0x03cb, # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
        0x00b9: 0x03ce, # GREEK SMALL LETTER OMEGA WITH TONOS
        0x00ba: 0x03c2, # GREEK SMALL LETTER FINAL SIGMA
        0x00bb: 0x03c4, # GREEK SMALL LETTER TAU
        0x00bc: 0x03c5, # GREEK SMALL LETTER UPSILON
        0x00bd: 0x03c6, # GREEK SMALL LETTER PHI
        0x00be: 0x03c7, # GREEK SMALL LETTER CHI
        0x00bf: 0x03c8, # GREEK SMALL LETTER PSI
        0x00c0: 0x007b, # LEFT CURLY BRACKET
        0x00c1: 0x0041, # LATIN CAPITAL LETTER A
        0x00c2: 0x0042, # LATIN CAPITAL LETTER B
        0x00c3: 0x0043, # LATIN CAPITAL LETTER C
        0x00c4: 0x0044, # LATIN CAPITAL LETTER D
        0x00c5: 0x0045, # LATIN CAPITAL LETTER E
        0x00c6: 0x0046, # LATIN CAPITAL LETTER F
        0x00c7: 0x0047, # LATIN CAPITAL LETTER G
        0x00c8: 0x0048, # LATIN CAPITAL LETTER H
        0x00c9: 0x0049, # LATIN CAPITAL LETTER I
        0x00ca: 0x00ad, # SOFT HYPHEN
        0x00cb: 0x03c9, # GREEK SMALL LETTER OMEGA
        0x00cc: 0x0390, # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
        0x00cd: 0x03b0, # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
        0x00ce: 0x2018, # LEFT SINGLE QUOTATION MARK
        0x00cf: 0x2015, # HORIZONTAL BAR
        0x00d0: 0x007d, # RIGHT CURLY BRACKET
        0x00d1: 0x004a, # LATIN CAPITAL LETTER J
        0x00d2: 0x004b, # LATIN CAPITAL LETTER K
        0x00d3: 0x004c, # LATIN CAPITAL LETTER L
        0x00d4: 0x004d, # LATIN CAPITAL LETTER M
        0x00d5: 0x004e, # LATIN CAPITAL LETTER N
        0x00d6: 0x004f, # LATIN CAPITAL LETTER O
        0x00d7: 0x0050, # LATIN CAPITAL LETTER P
        0x00d8: 0x0051, # LATIN CAPITAL LETTER Q
        0x00d9: 0x0052, # LATIN CAPITAL LETTER R
        0x00da: 0x00b1, # PLUS-MINUS SIGN
        0x00db: 0x00bd, # VULGAR FRACTION ONE HALF
        0x00dc: 0x001a, # SUBSTITUTE
        0x00dd: 0x0387, # GREEK ANO TELEIA
        0x00de: 0x2019, # RIGHT SINGLE QUOTATION MARK
        0x00df: 0x00a6, # BROKEN BAR
        0x00e0: 0x005c, # REVERSE SOLIDUS
        0x00e1: 0x001a, # SUBSTITUTE
        0x00e2: 0x0053, # LATIN CAPITAL LETTER S
        0x00e3: 0x0054, # LATIN CAPITAL LETTER T
        0x00e4: 0x0055, # LATIN CAPITAL LETTER U
        0x00e5: 0x0056, # LATIN CAPITAL LETTER V
        0x00e6: 0x0057, # LATIN CAPITAL LETTER W
        0x00e7: 0x0058, # LATIN CAPITAL LETTER X
        0x00e8: 0x0059, # LATIN CAPITAL LETTER Y
        0x00e9: 0x005a, # LATIN CAPITAL LETTER Z
        0x00ea: 0x00b2, # SUPERSCRIPT TWO
        0x00eb: 0x00a7, # SECTION SIGN
        0x00ec: 0x001a, # SUBSTITUTE
        0x00ed: 0x001a, # SUBSTITUTE
        0x00ee: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
        0x00ef: 0x00ac, # NOT SIGN
        0x00f0: 0x0030, # DIGIT ZERO
        0x00f1: 0x0031, # DIGIT ONE
        0x00f2: 0x0032, # DIGIT TWO
        0x00f3: 0x0033, # DIGIT THREE
        0x00f4: 0x0034, # DIGIT FOUR
        0x00f5: 0x0035, # DIGIT FIVE
        0x00f6: 0x0036, # DIGIT SIX
        0x00f7: 0x0037, # DIGIT SEVEN
        0x00f8: 0x0038, # DIGIT EIGHT
        0x00f9: 0x0039, # DIGIT NINE
        0x00fa: 0x00b3, # SUPERSCRIPT THREE
        0x00fb: 0x00a9, # COPYRIGHT SIGN
        0x00fc: 0x001a, # SUBSTITUTE
        0x00fd: 0x001a, # SUBSTITUTE
        0x00fe: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
        0x00ff: 0x009f, # CONTROL
})

### Encoding Map

encoding_map = codecs.make_encoding_map(decoding_map)
