summaryrefslogtreecommitdiffstats
path: root/Lib/encodings/cp1006.py
diff options
context:
space:
mode:
authorMarc-André Lemburg <mal@egenix.com>2005-10-21 13:49:12 (GMT)
committerMarc-André Lemburg <mal@egenix.com>2005-10-21 13:49:12 (GMT)
commita1129f4b9bdf655e8b5b9565b87ead5f32f4b574 (patch)
treedb7cf3de8872e250c8c9153a1b0dec559f869ecb /Lib/encodings/cp1006.py
parent92b201debcb7c796a68df372f3660e02b2c85d40 (diff)
downloadcpython-a1129f4b9bdf655e8b5b9565b87ead5f32f4b574.zip
cpython-a1129f4b9bdf655e8b5b9565b87ead5f32f4b574.tar.gz
cpython-a1129f4b9bdf655e8b5b9565b87ead5f32f4b574.tar.bz2
Replace the old charmap codecs with new ones generated from the current
mapping tables available at ftp.unicode.org. These new codecs include and use character decoding tables which speeds up decoding by a few factors.
Diffstat (limited to 'Lib/encodings/cp1006.py')
-rw-r--r--Lib/encodings/cp1006.py718
1 files changed, 615 insertions, 103 deletions
diff --git a/Lib/encodings/cp1006.py b/Lib/encodings/cp1006.py
index bbd3d87..93f2688 100644
--- a/Lib/encodings/cp1006.py
+++ b/Lib/encodings/cp1006.py
@@ -1,9 +1,4 @@
-""" Python Character Mapping Codec generated from 'CP1006.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.
+""" Python Character Mapping Codec generated from 'VENDORS/MISC/CP1006.TXT' with gencodec.py.
"""#"
@@ -19,8 +14,8 @@ class Codec(codecs.Codec):
def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_map)
-
+ return codecs.charmap_decode(input,errors,decoding_table)
+
class StreamWriter(Codec,codecs.StreamWriter):
pass
@@ -37,102 +32,619 @@ def getregentry():
decoding_map = codecs.make_identity_dict(range(256))
decoding_map.update({
- 0x00a1: 0x06f0, # EXTENDED ARABIC-INDIC DIGIT ZERO
- 0x00a2: 0x06f1, # EXTENDED ARABIC-INDIC DIGIT ONE
- 0x00a3: 0x06f2, # EXTENDED ARABIC-INDIC DIGIT TWO
- 0x00a4: 0x06f3, # EXTENDED ARABIC-INDIC DIGIT THREE
- 0x00a5: 0x06f4, # EXTENDED ARABIC-INDIC DIGIT FOUR
- 0x00a6: 0x06f5, # EXTENDED ARABIC-INDIC DIGIT FIVE
- 0x00a7: 0x06f6, # EXTENDED ARABIC-INDIC DIGIT SIX
- 0x00a8: 0x06f7, # EXTENDED ARABIC-INDIC DIGIT SEVEN
- 0x00a9: 0x06f8, # EXTENDED ARABIC-INDIC DIGIT EIGHT
- 0x00aa: 0x06f9, # EXTENDED ARABIC-INDIC DIGIT NINE
- 0x00ab: 0x060c, # ARABIC COMMA
- 0x00ac: 0x061b, # ARABIC SEMICOLON
- 0x00ae: 0x061f, # ARABIC QUESTION MARK
- 0x00af: 0xfe81, # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
- 0x00b0: 0xfe8d, # ARABIC LETTER ALEF ISOLATED FORM
- 0x00b1: 0xfe8e, # ARABIC LETTER ALEF FINAL FORM
- 0x00b2: 0xfe8e, # ARABIC LETTER ALEF FINAL FORM
- 0x00b3: 0xfe8f, # ARABIC LETTER BEH ISOLATED FORM
- 0x00b4: 0xfe91, # ARABIC LETTER BEH INITIAL FORM
- 0x00b5: 0xfb56, # ARABIC LETTER PEH ISOLATED FORM
- 0x00b6: 0xfb58, # ARABIC LETTER PEH INITIAL FORM
- 0x00b7: 0xfe93, # ARABIC LETTER TEH MARBUTA ISOLATED FORM
- 0x00b8: 0xfe95, # ARABIC LETTER TEH ISOLATED FORM
- 0x00b9: 0xfe97, # ARABIC LETTER TEH INITIAL FORM
- 0x00ba: 0xfb66, # ARABIC LETTER TTEH ISOLATED FORM
- 0x00bb: 0xfb68, # ARABIC LETTER TTEH INITIAL FORM
- 0x00bc: 0xfe99, # ARABIC LETTER THEH ISOLATED FORM
- 0x00bd: 0xfe9b, # ARABIC LETTER THEH INITIAL FORM
- 0x00be: 0xfe9d, # ARABIC LETTER JEEM ISOLATED FORM
- 0x00bf: 0xfe9f, # ARABIC LETTER JEEM INITIAL FORM
- 0x00c0: 0xfb7a, # ARABIC LETTER TCHEH ISOLATED FORM
- 0x00c1: 0xfb7c, # ARABIC LETTER TCHEH INITIAL FORM
- 0x00c2: 0xfea1, # ARABIC LETTER HAH ISOLATED FORM
- 0x00c3: 0xfea3, # ARABIC LETTER HAH INITIAL FORM
- 0x00c4: 0xfea5, # ARABIC LETTER KHAH ISOLATED FORM
- 0x00c5: 0xfea7, # ARABIC LETTER KHAH INITIAL FORM
- 0x00c6: 0xfea9, # ARABIC LETTER DAL ISOLATED FORM
- 0x00c7: 0xfb84, # ARABIC LETTER DAHAL ISOLATED FORMN
- 0x00c8: 0xfeab, # ARABIC LETTER THAL ISOLATED FORM
- 0x00c9: 0xfead, # ARABIC LETTER REH ISOLATED FORM
- 0x00ca: 0xfb8c, # ARABIC LETTER RREH ISOLATED FORM
- 0x00cb: 0xfeaf, # ARABIC LETTER ZAIN ISOLATED FORM
- 0x00cc: 0xfb8a, # ARABIC LETTER JEH ISOLATED FORM
- 0x00cd: 0xfeb1, # ARABIC LETTER SEEN ISOLATED FORM
- 0x00ce: 0xfeb3, # ARABIC LETTER SEEN INITIAL FORM
- 0x00cf: 0xfeb5, # ARABIC LETTER SHEEN ISOLATED FORM
- 0x00d0: 0xfeb7, # ARABIC LETTER SHEEN INITIAL FORM
- 0x00d1: 0xfeb9, # ARABIC LETTER SAD ISOLATED FORM
- 0x00d2: 0xfebb, # ARABIC LETTER SAD INITIAL FORM
- 0x00d3: 0xfebd, # ARABIC LETTER DAD ISOLATED FORM
- 0x00d4: 0xfebf, # ARABIC LETTER DAD INITIAL FORM
- 0x00d5: 0xfec1, # ARABIC LETTER TAH ISOLATED FORM
- 0x00d6: 0xfec5, # ARABIC LETTER ZAH ISOLATED FORM
- 0x00d7: 0xfec9, # ARABIC LETTER AIN ISOLATED FORM
- 0x00d8: 0xfeca, # ARABIC LETTER AIN FINAL FORM
- 0x00d9: 0xfecb, # ARABIC LETTER AIN INITIAL FORM
- 0x00da: 0xfecc, # ARABIC LETTER AIN MEDIAL FORM
- 0x00db: 0xfecd, # ARABIC LETTER GHAIN ISOLATED FORM
- 0x00dc: 0xfece, # ARABIC LETTER GHAIN FINAL FORM
- 0x00dd: 0xfecf, # ARABIC LETTER GHAIN INITIAL FORM
- 0x00de: 0xfed0, # ARABIC LETTER GHAIN MEDIAL FORM
- 0x00df: 0xfed1, # ARABIC LETTER FEH ISOLATED FORM
- 0x00e0: 0xfed3, # ARABIC LETTER FEH INITIAL FORM
- 0x00e1: 0xfed5, # ARABIC LETTER QAF ISOLATED FORM
- 0x00e2: 0xfed7, # ARABIC LETTER QAF INITIAL FORM
- 0x00e3: 0xfed9, # ARABIC LETTER KAF ISOLATED FORM
- 0x00e4: 0xfedb, # ARABIC LETTER KAF INITIAL FORM
- 0x00e5: 0xfb92, # ARABIC LETTER GAF ISOLATED FORM
- 0x00e6: 0xfb94, # ARABIC LETTER GAF INITIAL FORM
- 0x00e7: 0xfedd, # ARABIC LETTER LAM ISOLATED FORM
- 0x00e8: 0xfedf, # ARABIC LETTER LAM INITIAL FORM
- 0x00e9: 0xfee0, # ARABIC LETTER LAM MEDIAL FORM
- 0x00ea: 0xfee1, # ARABIC LETTER MEEM ISOLATED FORM
- 0x00eb: 0xfee3, # ARABIC LETTER MEEM INITIAL FORM
- 0x00ec: 0xfb9e, # ARABIC LETTER NOON GHUNNA ISOLATED FORM
- 0x00ed: 0xfee5, # ARABIC LETTER NOON ISOLATED FORM
- 0x00ee: 0xfee7, # ARABIC LETTER NOON INITIAL FORM
- 0x00ef: 0xfe85, # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
- 0x00f0: 0xfeed, # ARABIC LETTER WAW ISOLATED FORM
- 0x00f1: 0xfba6, # ARABIC LETTER HEH GOAL ISOLATED FORM
- 0x00f2: 0xfba8, # ARABIC LETTER HEH GOAL INITIAL FORM
- 0x00f3: 0xfba9, # ARABIC LETTER HEH GOAL MEDIAL FORM
- 0x00f4: 0xfbaa, # ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
- 0x00f5: 0xfe80, # ARABIC LETTER HAMZA ISOLATED FORM
- 0x00f6: 0xfe89, # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
- 0x00f7: 0xfe8a, # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
- 0x00f8: 0xfe8b, # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
- 0x00f9: 0xfef1, # ARABIC LETTER YEH ISOLATED FORM
- 0x00fa: 0xfef2, # ARABIC LETTER YEH FINAL FORM
- 0x00fb: 0xfef3, # ARABIC LETTER YEH INITIAL FORM
- 0x00fc: 0xfbb0, # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
- 0x00fd: 0xfbae, # ARABIC LETTER YEH BARREE ISOLATED FORM
- 0x00fe: 0xfe7c, # ARABIC SHADDA ISOLATED FORM
- 0x00ff: 0xfe7d, # ARABIC SHADDA MEDIAL FORM
+ 0x00a1: 0x06f0, # EXTENDED ARABIC-INDIC DIGIT ZERO
+ 0x00a2: 0x06f1, # EXTENDED ARABIC-INDIC DIGIT ONE
+ 0x00a3: 0x06f2, # EXTENDED ARABIC-INDIC DIGIT TWO
+ 0x00a4: 0x06f3, # EXTENDED ARABIC-INDIC DIGIT THREE
+ 0x00a5: 0x06f4, # EXTENDED ARABIC-INDIC DIGIT FOUR
+ 0x00a6: 0x06f5, # EXTENDED ARABIC-INDIC DIGIT FIVE
+ 0x00a7: 0x06f6, # EXTENDED ARABIC-INDIC DIGIT SIX
+ 0x00a8: 0x06f7, # EXTENDED ARABIC-INDIC DIGIT SEVEN
+ 0x00a9: 0x06f8, # EXTENDED ARABIC-INDIC DIGIT EIGHT
+ 0x00aa: 0x06f9, # EXTENDED ARABIC-INDIC DIGIT NINE
+ 0x00ab: 0x060c, # ARABIC COMMA
+ 0x00ac: 0x061b, # ARABIC SEMICOLON
+ 0x00ae: 0x061f, # ARABIC QUESTION MARK
+ 0x00af: 0xfe81, # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
+ 0x00b0: 0xfe8d, # ARABIC LETTER ALEF ISOLATED FORM
+ 0x00b1: 0xfe8e, # ARABIC LETTER ALEF FINAL FORM
+ 0x00b2: 0xfe8e, # ARABIC LETTER ALEF FINAL FORM
+ 0x00b3: 0xfe8f, # ARABIC LETTER BEH ISOLATED FORM
+ 0x00b4: 0xfe91, # ARABIC LETTER BEH INITIAL FORM
+ 0x00b5: 0xfb56, # ARABIC LETTER PEH ISOLATED FORM
+ 0x00b6: 0xfb58, # ARABIC LETTER PEH INITIAL FORM
+ 0x00b7: 0xfe93, # ARABIC LETTER TEH MARBUTA ISOLATED FORM
+ 0x00b8: 0xfe95, # ARABIC LETTER TEH ISOLATED FORM
+ 0x00b9: 0xfe97, # ARABIC LETTER TEH INITIAL FORM
+ 0x00ba: 0xfb66, # ARABIC LETTER TTEH ISOLATED FORM
+ 0x00bb: 0xfb68, # ARABIC LETTER TTEH INITIAL FORM
+ 0x00bc: 0xfe99, # ARABIC LETTER THEH ISOLATED FORM
+ 0x00bd: 0xfe9b, # ARABIC LETTER THEH INITIAL FORM
+ 0x00be: 0xfe9d, # ARABIC LETTER JEEM ISOLATED FORM
+ 0x00bf: 0xfe9f, # ARABIC LETTER JEEM INITIAL FORM
+ 0x00c0: 0xfb7a, # ARABIC LETTER TCHEH ISOLATED FORM
+ 0x00c1: 0xfb7c, # ARABIC LETTER TCHEH INITIAL FORM
+ 0x00c2: 0xfea1, # ARABIC LETTER HAH ISOLATED FORM
+ 0x00c3: 0xfea3, # ARABIC LETTER HAH INITIAL FORM
+ 0x00c4: 0xfea5, # ARABIC LETTER KHAH ISOLATED FORM
+ 0x00c5: 0xfea7, # ARABIC LETTER KHAH INITIAL FORM
+ 0x00c6: 0xfea9, # ARABIC LETTER DAL ISOLATED FORM
+ 0x00c7: 0xfb84, # ARABIC LETTER DAHAL ISOLATED FORMN
+ 0x00c8: 0xfeab, # ARABIC LETTER THAL ISOLATED FORM
+ 0x00c9: 0xfead, # ARABIC LETTER REH ISOLATED FORM
+ 0x00ca: 0xfb8c, # ARABIC LETTER RREH ISOLATED FORM
+ 0x00cb: 0xfeaf, # ARABIC LETTER ZAIN ISOLATED FORM
+ 0x00cc: 0xfb8a, # ARABIC LETTER JEH ISOLATED FORM
+ 0x00cd: 0xfeb1, # ARABIC LETTER SEEN ISOLATED FORM
+ 0x00ce: 0xfeb3, # ARABIC LETTER SEEN INITIAL FORM
+ 0x00cf: 0xfeb5, # ARABIC LETTER SHEEN ISOLATED FORM
+ 0x00d0: 0xfeb7, # ARABIC LETTER SHEEN INITIAL FORM
+ 0x00d1: 0xfeb9, # ARABIC LETTER SAD ISOLATED FORM
+ 0x00d2: 0xfebb, # ARABIC LETTER SAD INITIAL FORM
+ 0x00d3: 0xfebd, # ARABIC LETTER DAD ISOLATED FORM
+ 0x00d4: 0xfebf, # ARABIC LETTER DAD INITIAL FORM
+ 0x00d5: 0xfec1, # ARABIC LETTER TAH ISOLATED FORM
+ 0x00d6: 0xfec5, # ARABIC LETTER ZAH ISOLATED FORM
+ 0x00d7: 0xfec9, # ARABIC LETTER AIN ISOLATED FORM
+ 0x00d8: 0xfeca, # ARABIC LETTER AIN FINAL FORM
+ 0x00d9: 0xfecb, # ARABIC LETTER AIN INITIAL FORM
+ 0x00da: 0xfecc, # ARABIC LETTER AIN MEDIAL FORM
+ 0x00db: 0xfecd, # ARABIC LETTER GHAIN ISOLATED FORM
+ 0x00dc: 0xfece, # ARABIC LETTER GHAIN FINAL FORM
+ 0x00dd: 0xfecf, # ARABIC LETTER GHAIN INITIAL FORM
+ 0x00de: 0xfed0, # ARABIC LETTER GHAIN MEDIAL FORM
+ 0x00df: 0xfed1, # ARABIC LETTER FEH ISOLATED FORM
+ 0x00e0: 0xfed3, # ARABIC LETTER FEH INITIAL FORM
+ 0x00e1: 0xfed5, # ARABIC LETTER QAF ISOLATED FORM
+ 0x00e2: 0xfed7, # ARABIC LETTER QAF INITIAL FORM
+ 0x00e3: 0xfed9, # ARABIC LETTER KAF ISOLATED FORM
+ 0x00e4: 0xfedb, # ARABIC LETTER KAF INITIAL FORM
+ 0x00e5: 0xfb92, # ARABIC LETTER GAF ISOLATED FORM
+ 0x00e6: 0xfb94, # ARABIC LETTER GAF INITIAL FORM
+ 0x00e7: 0xfedd, # ARABIC LETTER LAM ISOLATED FORM
+ 0x00e8: 0xfedf, # ARABIC LETTER LAM INITIAL FORM
+ 0x00e9: 0xfee0, # ARABIC LETTER LAM MEDIAL FORM
+ 0x00ea: 0xfee1, # ARABIC LETTER MEEM ISOLATED FORM
+ 0x00eb: 0xfee3, # ARABIC LETTER MEEM INITIAL FORM
+ 0x00ec: 0xfb9e, # ARABIC LETTER NOON GHUNNA ISOLATED FORM
+ 0x00ed: 0xfee5, # ARABIC LETTER NOON ISOLATED FORM
+ 0x00ee: 0xfee7, # ARABIC LETTER NOON INITIAL FORM
+ 0x00ef: 0xfe85, # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
+ 0x00f0: 0xfeed, # ARABIC LETTER WAW ISOLATED FORM
+ 0x00f1: 0xfba6, # ARABIC LETTER HEH GOAL ISOLATED FORM
+ 0x00f2: 0xfba8, # ARABIC LETTER HEH GOAL INITIAL FORM
+ 0x00f3: 0xfba9, # ARABIC LETTER HEH GOAL MEDIAL FORM
+ 0x00f4: 0xfbaa, # ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
+ 0x00f5: 0xfe80, # ARABIC LETTER HAMZA ISOLATED FORM
+ 0x00f6: 0xfe89, # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
+ 0x00f7: 0xfe8a, # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
+ 0x00f8: 0xfe8b, # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
+ 0x00f9: 0xfef1, # ARABIC LETTER YEH ISOLATED FORM
+ 0x00fa: 0xfef2, # ARABIC LETTER YEH FINAL FORM
+ 0x00fb: 0xfef3, # ARABIC LETTER YEH INITIAL FORM
+ 0x00fc: 0xfbb0, # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
+ 0x00fd: 0xfbae, # ARABIC LETTER YEH BARREE ISOLATED FORM
+ 0x00fe: 0xfe7c, # ARABIC SHADDA ISOLATED FORM
+ 0x00ff: 0xfe7d, # ARABIC SHADDA MEDIAL FORM
})
+### Decoding Table
+
+decoding_table = (
+ u'\x00' # 0x0000 -> NULL
+ u'\x01' # 0x0001 -> START OF HEADING
+ u'\x02' # 0x0002 -> START OF TEXT
+ u'\x03' # 0x0003 -> END OF TEXT
+ u'\x04' # 0x0004 -> END OF TRANSMISSION
+ u'\x05' # 0x0005 -> ENQUIRY
+ u'\x06' # 0x0006 -> ACKNOWLEDGE
+ u'\x07' # 0x0007 -> BELL
+ u'\x08' # 0x0008 -> BACKSPACE
+ u'\t' # 0x0009 -> HORIZONTAL TABULATION
+ u'\n' # 0x000a -> LINE FEED
+ u'\x0b' # 0x000b -> VERTICAL TABULATION
+ u'\x0c' # 0x000c -> FORM FEED
+ u'\r' # 0x000d -> CARRIAGE RETURN
+ u'\x0e' # 0x000e -> SHIFT OUT
+ u'\x0f' # 0x000f -> SHIFT IN
+ u'\x10' # 0x0010 -> DATA LINK ESCAPE
+ u'\x11' # 0x0011 -> DEVICE CONTROL ONE
+ u'\x12' # 0x0012 -> DEVICE CONTROL TWO
+ u'\x13' # 0x0013 -> DEVICE CONTROL THREE
+ u'\x14' # 0x0014 -> DEVICE CONTROL FOUR
+ u'\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
+ u'\x16' # 0x0016 -> SYNCHRONOUS IDLE
+ u'\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
+ u'\x18' # 0x0018 -> CANCEL
+ u'\x19' # 0x0019 -> END OF MEDIUM
+ u'\x1a' # 0x001a -> SUBSTITUTE
+ u'\x1b' # 0x001b -> ESCAPE
+ u'\x1c' # 0x001c -> FILE SEPARATOR
+ u'\x1d' # 0x001d -> GROUP SEPARATOR
+ u'\x1e' # 0x001e -> RECORD SEPARATOR
+ u'\x1f' # 0x001f -> UNIT SEPARATOR
+ u' ' # 0x0020 -> SPACE
+ u'!' # 0x0021 -> EXCLAMATION MARK
+ u'"' # 0x0022 -> QUOTATION MARK
+ u'#' # 0x0023 -> NUMBER SIGN
+ u'$' # 0x0024 -> DOLLAR SIGN
+ u'%' # 0x0025 -> PERCENT SIGN
+ u'&' # 0x0026 -> AMPERSAND
+ u"'" # 0x0027 -> APOSTROPHE
+ u'(' # 0x0028 -> LEFT PARENTHESIS
+ u')' # 0x0029 -> RIGHT PARENTHESIS
+ u'*' # 0x002a -> ASTERISK
+ u'+' # 0x002b -> PLUS SIGN
+ u',' # 0x002c -> COMMA
+ u'-' # 0x002d -> HYPHEN-MINUS
+ u'.' # 0x002e -> FULL STOP
+ u'/' # 0x002f -> SOLIDUS
+ u'0' # 0x0030 -> DIGIT ZERO
+ u'1' # 0x0031 -> DIGIT ONE
+ u'2' # 0x0032 -> DIGIT TWO
+ u'3' # 0x0033 -> DIGIT THREE
+ u'4' # 0x0034 -> DIGIT FOUR
+ u'5' # 0x0035 -> DIGIT FIVE
+ u'6' # 0x0036 -> DIGIT SIX
+ u'7' # 0x0037 -> DIGIT SEVEN
+ u'8' # 0x0038 -> DIGIT EIGHT
+ u'9' # 0x0039 -> DIGIT NINE
+ u':' # 0x003a -> COLON
+ u';' # 0x003b -> SEMICOLON
+ u'<' # 0x003c -> LESS-THAN SIGN
+ u'=' # 0x003d -> EQUALS SIGN
+ u'>' # 0x003e -> GREATER-THAN SIGN
+ u'?' # 0x003f -> QUESTION MARK
+ u'@' # 0x0040 -> COMMERCIAL AT
+ u'A' # 0x0041 -> LATIN CAPITAL LETTER A
+ u'B' # 0x0042 -> LATIN CAPITAL LETTER B
+ u'C' # 0x0043 -> LATIN CAPITAL LETTER C
+ u'D' # 0x0044 -> LATIN CAPITAL LETTER D
+ u'E' # 0x0045 -> LATIN CAPITAL LETTER E
+ u'F' # 0x0046 -> LATIN CAPITAL LETTER F
+ u'G' # 0x0047 -> LATIN CAPITAL LETTER G
+ u'H' # 0x0048 -> LATIN CAPITAL LETTER H
+ u'I' # 0x0049 -> LATIN CAPITAL LETTER I
+ u'J' # 0x004a -> LATIN CAPITAL LETTER J
+ u'K' # 0x004b -> LATIN CAPITAL LETTER K
+ u'L' # 0x004c -> LATIN CAPITAL LETTER L
+ u'M' # 0x004d -> LATIN CAPITAL LETTER M
+ u'N' # 0x004e -> LATIN CAPITAL LETTER N
+ u'O' # 0x004f -> LATIN CAPITAL LETTER O
+ u'P' # 0x0050 -> LATIN CAPITAL LETTER P
+ u'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
+ u'R' # 0x0052 -> LATIN CAPITAL LETTER R
+ u'S' # 0x0053 -> LATIN CAPITAL LETTER S
+ u'T' # 0x0054 -> LATIN CAPITAL LETTER T
+ u'U' # 0x0055 -> LATIN CAPITAL LETTER U
+ u'V' # 0x0056 -> LATIN CAPITAL LETTER V
+ u'W' # 0x0057 -> LATIN CAPITAL LETTER W
+ u'X' # 0x0058 -> LATIN CAPITAL LETTER X
+ u'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
+ u'Z' # 0x005a -> LATIN CAPITAL LETTER Z
+ u'[' # 0x005b -> LEFT SQUARE BRACKET
+ u'\\' # 0x005c -> REVERSE SOLIDUS
+ u']' # 0x005d -> RIGHT SQUARE BRACKET
+ u'^' # 0x005e -> CIRCUMFLEX ACCENT
+ u'_' # 0x005f -> LOW LINE
+ u'`' # 0x0060 -> GRAVE ACCENT
+ u'a' # 0x0061 -> LATIN SMALL LETTER A
+ u'b' # 0x0062 -> LATIN SMALL LETTER B
+ u'c' # 0x0063 -> LATIN SMALL LETTER C
+ u'd' # 0x0064 -> LATIN SMALL LETTER D
+ u'e' # 0x0065 -> LATIN SMALL LETTER E
+ u'f' # 0x0066 -> LATIN SMALL LETTER F
+ u'g' # 0x0067 -> LATIN SMALL LETTER G
+ u'h' # 0x0068 -> LATIN SMALL LETTER H
+ u'i' # 0x0069 -> LATIN SMALL LETTER I
+ u'j' # 0x006a -> LATIN SMALL LETTER J
+ u'k' # 0x006b -> LATIN SMALL LETTER K
+ u'l' # 0x006c -> LATIN SMALL LETTER L
+ u'm' # 0x006d -> LATIN SMALL LETTER M
+ u'n' # 0x006e -> LATIN SMALL LETTER N
+ u'o' # 0x006f -> LATIN SMALL LETTER O
+ u'p' # 0x0070 -> LATIN SMALL LETTER P
+ u'q' # 0x0071 -> LATIN SMALL LETTER Q
+ u'r' # 0x0072 -> LATIN SMALL LETTER R
+ u's' # 0x0073 -> LATIN SMALL LETTER S
+ u't' # 0x0074 -> LATIN SMALL LETTER T
+ u'u' # 0x0075 -> LATIN SMALL LETTER U
+ u'v' # 0x0076 -> LATIN SMALL LETTER V
+ u'w' # 0x0077 -> LATIN SMALL LETTER W
+ u'x' # 0x0078 -> LATIN SMALL LETTER X
+ u'y' # 0x0079 -> LATIN SMALL LETTER Y
+ u'z' # 0x007a -> LATIN SMALL LETTER Z
+ u'{' # 0x007b -> LEFT CURLY BRACKET
+ u'|' # 0x007c -> VERTICAL LINE
+ u'}' # 0x007d -> RIGHT CURLY BRACKET
+ u'~' # 0x007e -> TILDE
+ u'\x7f' # 0x007f -> DELETE
+ u'\x80' # 0x0080 -> <control>
+ u'\x81' # 0x0081 -> <control>
+ u'\x82' # 0x0082 -> <control>
+ u'\x83' # 0x0083 -> <control>
+ u'\x84' # 0x0084 -> <control>
+ u'\x85' # 0x0085 -> <control>
+ u'\x86' # 0x0086 -> <control>
+ u'\x87' # 0x0087 -> <control>
+ u'\x88' # 0x0088 -> <control>
+ u'\x89' # 0x0089 -> <control>
+ u'\x8a' # 0x008a -> <control>
+ u'\x8b' # 0x008b -> <control>
+ u'\x8c' # 0x008c -> <control>
+ u'\x8d' # 0x008d -> <control>
+ u'\x8e' # 0x008e -> <control>
+ u'\x8f' # 0x008f -> <control>
+ u'\x90' # 0x0090 -> <control>
+ u'\x91' # 0x0091 -> <control>
+ u'\x92' # 0x0092 -> <control>
+ u'\x93' # 0x0093 -> <control>
+ u'\x94' # 0x0094 -> <control>
+ u'\x95' # 0x0095 -> <control>
+ u'\x96' # 0x0096 -> <control>
+ u'\x97' # 0x0097 -> <control>
+ u'\x98' # 0x0098 -> <control>
+ u'\x99' # 0x0099 -> <control>
+ u'\x9a' # 0x009a -> <control>
+ u'\x9b' # 0x009b -> <control>
+ u'\x9c' # 0x009c -> <control>
+ u'\x9d' # 0x009d -> <control>
+ u'\x9e' # 0x009e -> <control>
+ u'\x9f' # 0x009f -> <control>
+ u'\xa0' # 0x00a0 -> NO-BREAK SPACE
+ u'\u06f0' # 0x00a1 -> EXTENDED ARABIC-INDIC DIGIT ZERO
+ u'\u06f1' # 0x00a2 -> EXTENDED ARABIC-INDIC DIGIT ONE
+ u'\u06f2' # 0x00a3 -> EXTENDED ARABIC-INDIC DIGIT TWO
+ u'\u06f3' # 0x00a4 -> EXTENDED ARABIC-INDIC DIGIT THREE
+ u'\u06f4' # 0x00a5 -> EXTENDED ARABIC-INDIC DIGIT FOUR
+ u'\u06f5' # 0x00a6 -> EXTENDED ARABIC-INDIC DIGIT FIVE
+ u'\u06f6' # 0x00a7 -> EXTENDED ARABIC-INDIC DIGIT SIX
+ u'\u06f7' # 0x00a8 -> EXTENDED ARABIC-INDIC DIGIT SEVEN
+ u'\u06f8' # 0x00a9 -> EXTENDED ARABIC-INDIC DIGIT EIGHT
+ u'\u06f9' # 0x00aa -> EXTENDED ARABIC-INDIC DIGIT NINE
+ u'\u060c' # 0x00ab -> ARABIC COMMA
+ u'\u061b' # 0x00ac -> ARABIC SEMICOLON
+ u'\xad' # 0x00ad -> SOFT HYPHEN
+ u'\u061f' # 0x00ae -> ARABIC QUESTION MARK
+ u'\ufe81' # 0x00af -> ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
+ u'\ufe8d' # 0x00b0 -> ARABIC LETTER ALEF ISOLATED FORM
+ u'\ufe8e' # 0x00b1 -> ARABIC LETTER ALEF FINAL FORM
+ u'\ufe8e' # 0x00b2 -> ARABIC LETTER ALEF FINAL FORM
+ u'\ufe8f' # 0x00b3 -> ARABIC LETTER BEH ISOLATED FORM
+ u'\ufe91' # 0x00b4 -> ARABIC LETTER BEH INITIAL FORM
+ u'\ufb56' # 0x00b5 -> ARABIC LETTER PEH ISOLATED FORM
+ u'\ufb58' # 0x00b6 -> ARABIC LETTER PEH INITIAL FORM
+ u'\ufe93' # 0x00b7 -> ARABIC LETTER TEH MARBUTA ISOLATED FORM
+ u'\ufe95' # 0x00b8 -> ARABIC LETTER TEH ISOLATED FORM
+ u'\ufe97' # 0x00b9 -> ARABIC LETTER TEH INITIAL FORM
+ u'\ufb66' # 0x00ba -> ARABIC LETTER TTEH ISOLATED FORM
+ u'\ufb68' # 0x00bb -> ARABIC LETTER TTEH INITIAL FORM
+ u'\ufe99' # 0x00bc -> ARABIC LETTER THEH ISOLATED FORM
+ u'\ufe9b' # 0x00bd -> ARABIC LETTER THEH INITIAL FORM
+ u'\ufe9d' # 0x00be -> ARABIC LETTER JEEM ISOLATED FORM
+ u'\ufe9f' # 0x00bf -> ARABIC LETTER JEEM INITIAL FORM
+ u'\ufb7a' # 0x00c0 -> ARABIC LETTER TCHEH ISOLATED FORM
+ u'\ufb7c' # 0x00c1 -> ARABIC LETTER TCHEH INITIAL FORM
+ u'\ufea1' # 0x00c2 -> ARABIC LETTER HAH ISOLATED FORM
+ u'\ufea3' # 0x00c3 -> ARABIC LETTER HAH INITIAL FORM
+ u'\ufea5' # 0x00c4 -> ARABIC LETTER KHAH ISOLATED FORM
+ u'\ufea7' # 0x00c5 -> ARABIC LETTER KHAH INITIAL FORM
+ u'\ufea9' # 0x00c6 -> ARABIC LETTER DAL ISOLATED FORM
+ u'\ufb84' # 0x00c7 -> ARABIC LETTER DAHAL ISOLATED FORMN
+ u'\ufeab' # 0x00c8 -> ARABIC LETTER THAL ISOLATED FORM
+ u'\ufead' # 0x00c9 -> ARABIC LETTER REH ISOLATED FORM
+ u'\ufb8c' # 0x00ca -> ARABIC LETTER RREH ISOLATED FORM
+ u'\ufeaf' # 0x00cb -> ARABIC LETTER ZAIN ISOLATED FORM
+ u'\ufb8a' # 0x00cc -> ARABIC LETTER JEH ISOLATED FORM
+ u'\ufeb1' # 0x00cd -> ARABIC LETTER SEEN ISOLATED FORM
+ u'\ufeb3' # 0x00ce -> ARABIC LETTER SEEN INITIAL FORM
+ u'\ufeb5' # 0x00cf -> ARABIC LETTER SHEEN ISOLATED FORM
+ u'\ufeb7' # 0x00d0 -> ARABIC LETTER SHEEN INITIAL FORM
+ u'\ufeb9' # 0x00d1 -> ARABIC LETTER SAD ISOLATED FORM
+ u'\ufebb' # 0x00d2 -> ARABIC LETTER SAD INITIAL FORM
+ u'\ufebd' # 0x00d3 -> ARABIC LETTER DAD ISOLATED FORM
+ u'\ufebf' # 0x00d4 -> ARABIC LETTER DAD INITIAL FORM
+ u'\ufec1' # 0x00d5 -> ARABIC LETTER TAH ISOLATED FORM
+ u'\ufec5' # 0x00d6 -> ARABIC LETTER ZAH ISOLATED FORM
+ u'\ufec9' # 0x00d7 -> ARABIC LETTER AIN ISOLATED FORM
+ u'\ufeca' # 0x00d8 -> ARABIC LETTER AIN FINAL FORM
+ u'\ufecb' # 0x00d9 -> ARABIC LETTER AIN INITIAL FORM
+ u'\ufecc' # 0x00da -> ARABIC LETTER AIN MEDIAL FORM
+ u'\ufecd' # 0x00db -> ARABIC LETTER GHAIN ISOLATED FORM
+ u'\ufece' # 0x00dc -> ARABIC LETTER GHAIN FINAL FORM
+ u'\ufecf' # 0x00dd -> ARABIC LETTER GHAIN INITIAL FORM
+ u'\ufed0' # 0x00de -> ARABIC LETTER GHAIN MEDIAL FORM
+ u'\ufed1' # 0x00df -> ARABIC LETTER FEH ISOLATED FORM
+ u'\ufed3' # 0x00e0 -> ARABIC LETTER FEH INITIAL FORM
+ u'\ufed5' # 0x00e1 -> ARABIC LETTER QAF ISOLATED FORM
+ u'\ufed7' # 0x00e2 -> ARABIC LETTER QAF INITIAL FORM
+ u'\ufed9' # 0x00e3 -> ARABIC LETTER KAF ISOLATED FORM
+ u'\ufedb' # 0x00e4 -> ARABIC LETTER KAF INITIAL FORM
+ u'\ufb92' # 0x00e5 -> ARABIC LETTER GAF ISOLATED FORM
+ u'\ufb94' # 0x00e6 -> ARABIC LETTER GAF INITIAL FORM
+ u'\ufedd' # 0x00e7 -> ARABIC LETTER LAM ISOLATED FORM
+ u'\ufedf' # 0x00e8 -> ARABIC LETTER LAM INITIAL FORM
+ u'\ufee0' # 0x00e9 -> ARABIC LETTER LAM MEDIAL FORM
+ u'\ufee1' # 0x00ea -> ARABIC LETTER MEEM ISOLATED FORM
+ u'\ufee3' # 0x00eb -> ARABIC LETTER MEEM INITIAL FORM
+ u'\ufb9e' # 0x00ec -> ARABIC LETTER NOON GHUNNA ISOLATED FORM
+ u'\ufee5' # 0x00ed -> ARABIC LETTER NOON ISOLATED FORM
+ u'\ufee7' # 0x00ee -> ARABIC LETTER NOON INITIAL FORM
+ u'\ufe85' # 0x00ef -> ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
+ u'\ufeed' # 0x00f0 -> ARABIC LETTER WAW ISOLATED FORM
+ u'\ufba6' # 0x00f1 -> ARABIC LETTER HEH GOAL ISOLATED FORM
+ u'\ufba8' # 0x00f2 -> ARABIC LETTER HEH GOAL INITIAL FORM
+ u'\ufba9' # 0x00f3 -> ARABIC LETTER HEH GOAL MEDIAL FORM
+ u'\ufbaa' # 0x00f4 -> ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
+ u'\ufe80' # 0x00f5 -> ARABIC LETTER HAMZA ISOLATED FORM
+ u'\ufe89' # 0x00f6 -> ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
+ u'\ufe8a' # 0x00f7 -> ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
+ u'\ufe8b' # 0x00f8 -> ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
+ u'\ufef1' # 0x00f9 -> ARABIC LETTER YEH ISOLATED FORM
+ u'\ufef2' # 0x00fa -> ARABIC LETTER YEH FINAL FORM
+ u'\ufef3' # 0x00fb -> ARABIC LETTER YEH INITIAL FORM
+ u'\ufbb0' # 0x00fc -> ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
+ u'\ufbae' # 0x00fd -> ARABIC LETTER YEH BARREE ISOLATED FORM
+ u'\ufe7c' # 0x00fe -> ARABIC SHADDA ISOLATED FORM
+ u'\ufe7d' # 0x00ff -> ARABIC SHADDA MEDIAL FORM
+)
+
### Encoding Map
-encoding_map = codecs.make_encoding_map(decoding_map)
+encoding_map = {
+ 0x0000: 0x0000, # NULL
+ 0x0001: 0x0001, # START OF HEADING
+ 0x0002: 0x0002, # START OF TEXT
+ 0x0003: 0x0003, # END OF TEXT
+ 0x0004: 0x0004, # END OF TRANSMISSION
+ 0x0005: 0x0005, # ENQUIRY
+ 0x0006: 0x0006, # ACKNOWLEDGE
+ 0x0007: 0x0007, # BELL
+ 0x0008: 0x0008, # BACKSPACE
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
+ 0x000a: 0x000a, # LINE FEED
+ 0x000b: 0x000b, # VERTICAL TABULATION
+ 0x000c: 0x000c, # FORM FEED
+ 0x000d: 0x000d, # CARRIAGE RETURN
+ 0x000e: 0x000e, # SHIFT OUT
+ 0x000f: 0x000f, # SHIFT IN
+ 0x0010: 0x0010, # DATA LINK ESCAPE
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
+ 0x0018: 0x0018, # CANCEL
+ 0x0019: 0x0019, # END OF MEDIUM
+ 0x001a: 0x001a, # SUBSTITUTE
+ 0x001b: 0x001b, # ESCAPE
+ 0x001c: 0x001c, # FILE SEPARATOR
+ 0x001d: 0x001d, # GROUP SEPARATOR
+ 0x001e: 0x001e, # RECORD SEPARATOR
+ 0x001f: 0x001f, # UNIT SEPARATOR
+ 0x0020: 0x0020, # SPACE
+ 0x0021: 0x0021, # EXCLAMATION MARK
+ 0x0022: 0x0022, # QUOTATION MARK
+ 0x0023: 0x0023, # NUMBER SIGN
+ 0x0024: 0x0024, # DOLLAR SIGN
+ 0x0025: 0x0025, # PERCENT SIGN
+ 0x0026: 0x0026, # AMPERSAND
+ 0x0027: 0x0027, # APOSTROPHE
+ 0x0028: 0x0028, # LEFT PARENTHESIS
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
+ 0x002a: 0x002a, # ASTERISK
+ 0x002b: 0x002b, # PLUS SIGN
+ 0x002c: 0x002c, # COMMA
+ 0x002d: 0x002d, # HYPHEN-MINUS
+ 0x002e: 0x002e, # FULL STOP
+ 0x002f: 0x002f, # SOLIDUS
+ 0x0030: 0x0030, # DIGIT ZERO
+ 0x0031: 0x0031, # DIGIT ONE
+ 0x0032: 0x0032, # DIGIT TWO
+ 0x0033: 0x0033, # DIGIT THREE
+ 0x0034: 0x0034, # DIGIT FOUR
+ 0x0035: 0x0035, # DIGIT FIVE
+ 0x0036: 0x0036, # DIGIT SIX
+ 0x0037: 0x0037, # DIGIT SEVEN
+ 0x0038: 0x0038, # DIGIT EIGHT
+ 0x0039: 0x0039, # DIGIT NINE
+ 0x003a: 0x003a, # COLON
+ 0x003b: 0x003b, # SEMICOLON
+ 0x003c: 0x003c, # LESS-THAN SIGN
+ 0x003d: 0x003d, # EQUALS SIGN
+ 0x003e: 0x003e, # GREATER-THAN SIGN
+ 0x003f: 0x003f, # QUESTION MARK
+ 0x0040: 0x0040, # COMMERCIAL AT
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
+ 0x005c: 0x005c, # REVERSE SOLIDUS
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
+ 0x005f: 0x005f, # LOW LINE
+ 0x0060: 0x0060, # GRAVE ACCENT
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
+ 0x007c: 0x007c, # VERTICAL LINE
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
+ 0x007e: 0x007e, # TILDE
+ 0x007f: 0x007f, # DELETE
+ 0x0080: 0x0080, # <control>
+ 0x0081: 0x0081, # <control>
+ 0x0082: 0x0082, # <control>
+ 0x0083: 0x0083, # <control>
+ 0x0084: 0x0084, # <control>
+ 0x0085: 0x0085, # <control>
+ 0x0086: 0x0086, # <control>
+ 0x0087: 0x0087, # <control>
+ 0x0088: 0x0088, # <control>
+ 0x0089: 0x0089, # <control>
+ 0x008a: 0x008a, # <control>
+ 0x008b: 0x008b, # <control>
+ 0x008c: 0x008c, # <control>
+ 0x008d: 0x008d, # <control>
+ 0x008e: 0x008e, # <control>
+ 0x008f: 0x008f, # <control>
+ 0x0090: 0x0090, # <control>
+ 0x0091: 0x0091, # <control>
+ 0x0092: 0x0092, # <control>
+ 0x0093: 0x0093, # <control>
+ 0x0094: 0x0094, # <control>
+ 0x0095: 0x0095, # <control>
+ 0x0096: 0x0096, # <control>
+ 0x0097: 0x0097, # <control>
+ 0x0098: 0x0098, # <control>
+ 0x0099: 0x0099, # <control>
+ 0x009a: 0x009a, # <control>
+ 0x009b: 0x009b, # <control>
+ 0x009c: 0x009c, # <control>
+ 0x009d: 0x009d, # <control>
+ 0x009e: 0x009e, # <control>
+ 0x009f: 0x009f, # <control>
+ 0x00a0: 0x00a0, # NO-BREAK SPACE
+ 0x00ad: 0x00ad, # SOFT HYPHEN
+ 0x060c: 0x00ab, # ARABIC COMMA
+ 0x061b: 0x00ac, # ARABIC SEMICOLON
+ 0x061f: 0x00ae, # ARABIC QUESTION MARK
+ 0x06f0: 0x00a1, # EXTENDED ARABIC-INDIC DIGIT ZERO
+ 0x06f1: 0x00a2, # EXTENDED ARABIC-INDIC DIGIT ONE
+ 0x06f2: 0x00a3, # EXTENDED ARABIC-INDIC DIGIT TWO
+ 0x06f3: 0x00a4, # EXTENDED ARABIC-INDIC DIGIT THREE
+ 0x06f4: 0x00a5, # EXTENDED ARABIC-INDIC DIGIT FOUR
+ 0x06f5: 0x00a6, # EXTENDED ARABIC-INDIC DIGIT FIVE
+ 0x06f6: 0x00a7, # EXTENDED ARABIC-INDIC DIGIT SIX
+ 0x06f7: 0x00a8, # EXTENDED ARABIC-INDIC DIGIT SEVEN
+ 0x06f8: 0x00a9, # EXTENDED ARABIC-INDIC DIGIT EIGHT
+ 0x06f9: 0x00aa, # EXTENDED ARABIC-INDIC DIGIT NINE
+ 0xfb56: 0x00b5, # ARABIC LETTER PEH ISOLATED FORM
+ 0xfb58: 0x00b6, # ARABIC LETTER PEH INITIAL FORM
+ 0xfb66: 0x00ba, # ARABIC LETTER TTEH ISOLATED FORM
+ 0xfb68: 0x00bb, # ARABIC LETTER TTEH INITIAL FORM
+ 0xfb7a: 0x00c0, # ARABIC LETTER TCHEH ISOLATED FORM
+ 0xfb7c: 0x00c1, # ARABIC LETTER TCHEH INITIAL FORM
+ 0xfb84: 0x00c7, # ARABIC LETTER DAHAL ISOLATED FORMN
+ 0xfb8a: 0x00cc, # ARABIC LETTER JEH ISOLATED FORM
+ 0xfb8c: 0x00ca, # ARABIC LETTER RREH ISOLATED FORM
+ 0xfb92: 0x00e5, # ARABIC LETTER GAF ISOLATED FORM
+ 0xfb94: 0x00e6, # ARABIC LETTER GAF INITIAL FORM
+ 0xfb9e: 0x00ec, # ARABIC LETTER NOON GHUNNA ISOLATED FORM
+ 0xfba6: 0x00f1, # ARABIC LETTER HEH GOAL ISOLATED FORM
+ 0xfba8: 0x00f2, # ARABIC LETTER HEH GOAL INITIAL FORM
+ 0xfba9: 0x00f3, # ARABIC LETTER HEH GOAL MEDIAL FORM
+ 0xfbaa: 0x00f4, # ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
+ 0xfbae: 0x00fd, # ARABIC LETTER YEH BARREE ISOLATED FORM
+ 0xfbb0: 0x00fc, # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
+ 0xfe7c: 0x00fe, # ARABIC SHADDA ISOLATED FORM
+ 0xfe7d: 0x00ff, # ARABIC SHADDA MEDIAL FORM
+ 0xfe80: 0x00f5, # ARABIC LETTER HAMZA ISOLATED FORM
+ 0xfe81: 0x00af, # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
+ 0xfe85: 0x00ef, # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
+ 0xfe89: 0x00f6, # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
+ 0xfe8a: 0x00f7, # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
+ 0xfe8b: 0x00f8, # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
+ 0xfe8d: 0x00b0, # ARABIC LETTER ALEF ISOLATED FORM
+ 0xfe8e: None, # ARABIC LETTER ALEF FINAL FORM
+ 0xfe8f: 0x00b3, # ARABIC LETTER BEH ISOLATED FORM
+ 0xfe91: 0x00b4, # ARABIC LETTER BEH INITIAL FORM
+ 0xfe93: 0x00b7, # ARABIC LETTER TEH MARBUTA ISOLATED FORM
+ 0xfe95: 0x00b8, # ARABIC LETTER TEH ISOLATED FORM
+ 0xfe97: 0x00b9, # ARABIC LETTER TEH INITIAL FORM
+ 0xfe99: 0x00bc, # ARABIC LETTER THEH ISOLATED FORM
+ 0xfe9b: 0x00bd, # ARABIC LETTER THEH INITIAL FORM
+ 0xfe9d: 0x00be, # ARABIC LETTER JEEM ISOLATED FORM
+ 0xfe9f: 0x00bf, # ARABIC LETTER JEEM INITIAL FORM
+ 0xfea1: 0x00c2, # ARABIC LETTER HAH ISOLATED FORM
+ 0xfea3: 0x00c3, # ARABIC LETTER HAH INITIAL FORM
+ 0xfea5: 0x00c4, # ARABIC LETTER KHAH ISOLATED FORM
+ 0xfea7: 0x00c5, # ARABIC LETTER KHAH INITIAL FORM
+ 0xfea9: 0x00c6, # ARABIC LETTER DAL ISOLATED FORM
+ 0xfeab: 0x00c8, # ARABIC LETTER THAL ISOLATED FORM
+ 0xfead: 0x00c9, # ARABIC LETTER REH ISOLATED FORM
+ 0xfeaf: 0x00cb, # ARABIC LETTER ZAIN ISOLATED FORM
+ 0xfeb1: 0x00cd, # ARABIC LETTER SEEN ISOLATED FORM
+ 0xfeb3: 0x00ce, # ARABIC LETTER SEEN INITIAL FORM
+ 0xfeb5: 0x00cf, # ARABIC LETTER SHEEN ISOLATED FORM
+ 0xfeb7: 0x00d0, # ARABIC LETTER SHEEN INITIAL FORM
+ 0xfeb9: 0x00d1, # ARABIC LETTER SAD ISOLATED FORM
+ 0xfebb: 0x00d2, # ARABIC LETTER SAD INITIAL FORM
+ 0xfebd: 0x00d3, # ARABIC LETTER DAD ISOLATED FORM
+ 0xfebf: 0x00d4, # ARABIC LETTER DAD INITIAL FORM
+ 0xfec1: 0x00d5, # ARABIC LETTER TAH ISOLATED FORM
+ 0xfec5: 0x00d6, # ARABIC LETTER ZAH ISOLATED FORM
+ 0xfec9: 0x00d7, # ARABIC LETTER AIN ISOLATED FORM
+ 0xfeca: 0x00d8, # ARABIC LETTER AIN FINAL FORM
+ 0xfecb: 0x00d9, # ARABIC LETTER AIN INITIAL FORM
+ 0xfecc: 0x00da, # ARABIC LETTER AIN MEDIAL FORM
+ 0xfecd: 0x00db, # ARABIC LETTER GHAIN ISOLATED FORM
+ 0xfece: 0x00dc, # ARABIC LETTER GHAIN FINAL FORM
+ 0xfecf: 0x00dd, # ARABIC LETTER GHAIN INITIAL FORM
+ 0xfed0: 0x00de, # ARABIC LETTER GHAIN MEDIAL FORM
+ 0xfed1: 0x00df, # ARABIC LETTER FEH ISOLATED FORM
+ 0xfed3: 0x00e0, # ARABIC LETTER FEH INITIAL FORM
+ 0xfed5: 0x00e1, # ARABIC LETTER QAF ISOLATED FORM
+ 0xfed7: 0x00e2, # ARABIC LETTER QAF INITIAL FORM
+ 0xfed9: 0x00e3, # ARABIC LETTER KAF ISOLATED FORM
+ 0xfedb: 0x00e4, # ARABIC LETTER KAF INITIAL FORM
+ 0xfedd: 0x00e7, # ARABIC LETTER LAM ISOLATED FORM
+ 0xfedf: 0x00e8, # ARABIC LETTER LAM INITIAL FORM
+ 0xfee0: 0x00e9, # ARABIC LETTER LAM MEDIAL FORM
+ 0xfee1: 0x00ea, # ARABIC LETTER MEEM ISOLATED FORM
+ 0xfee3: 0x00eb, # ARABIC LETTER MEEM INITIAL FORM
+ 0xfee5: 0x00ed, # ARABIC LETTER NOON ISOLATED FORM
+ 0xfee7: 0x00ee, # ARABIC LETTER NOON INITIAL FORM
+ 0xfeed: 0x00f0, # ARABIC LETTER WAW ISOLATED FORM
+ 0xfef1: 0x00f9, # ARABIC LETTER YEH ISOLATED FORM
+ 0xfef2: 0x00fa, # ARABIC LETTER YEH FINAL FORM
+ 0xfef3: 0x00fb, # ARABIC LETTER YEH INITIAL FORM
+} \ No newline at end of file