koco-cvs Mailing List for Python Korean Codecs (Page 15)
Brought to you by:
perky
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
(88) |
May
(5) |
Jun
|
Jul
(27) |
Aug
|
Sep
|
Oct
(5) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(77) |
Feb
(3) |
Mar
|
Apr
(22) |
May
(123) |
Jun
(80) |
Jul
(83) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Hye-Shik C. <pe...@us...> - 2003-01-10 04:26:17
|
perky 03/01/09 20:26:15 Removed: test/mappings MacKorean.txt cp949.txt Log: Remove mapping files from local repository. |
From: Hye-Shik C. <pe...@us...> - 2003-01-10 03:15:26
|
perky 03/01/09 19:15:25 Added: test/texts mackorean mackorean.utf-8 Log: Add MacKorean unit tests. Revision Changes Path 1.1 KoreanCodecs/test/texts/mackorean <<Binary file>> 1.1 KoreanCodecs/test/texts/mackorean.utf-8 <<Binary file>> |
From: Hye-Shik C. <pe...@us...> - 2003-01-10 03:15:25
|
perky 03/01/09 19:15:25 Modified: test test_all.py test_cp949.py Added: test test_mackorean.py Log: Add MacKorean unit tests. Revision Changes Path 1.7 +2 -1 KoreanCodecs/test/test_all.py Index: test_all.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/test/test_all.py,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- test_all.py 9 Jan 2003 21:31:44 -0000 1.6 +++ test_all.py 10 Jan 2003 03:15:25 -0000 1.7 @@ -16,13 +16,14 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: test_all.py,v 1.6 2003/01/09 21:31:44 perky Exp $ +# $Id: test_all.py,v 1.7 2003/01/10 03:15:25 perky Exp $ # import CodecTestBase from test_cp949 import TestCP949_CExtension, TestCP949_PurePython from test_euc_kr import TestEUCKR_CExtension, TestEUCKR_PurePython +from test_mackorean import TestMacKorean_PurePython from test_iso_2022_kr import TestISO_2022_KR from test_johab import TestJOHAB from test_qwerty2bul import TestQWERTY2BUL 1.8 +6 -4 KoreanCodecs/test/test_cp949.py Index: test_cp949.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/test/test_cp949.py,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- test_cp949.py 9 Jan 2003 22:07:23 -0000 1.7 +++ test_cp949.py 10 Jan 2003 03:15:25 -0000 1.8 @@ -16,11 +16,14 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: test_cp949.py,v 1.7 2003/01/09 22:07:23 perky Exp $ +# $Id: test_cp949.py,v 1.8 2003/01/10 03:15:25 perky Exp $ # import CodecTestBase +def unichrs(s): + return u''.join(map(unichr, map(eval, s.split('+')))) + class Shield: class TestCP949Base(CodecTestBase.TestStreamReader, CodecTestBase.CodecTestBase): encoding = 'cp949' @@ -42,15 +45,14 @@ if len(data) != 2: continue - cp949val, unival = map(eval, data) - + cp949val = eval(data[0]) if cp949val <= 0x7F: cp949ch = chr(cp949val & 0xff) elif cp949val >= 0x100: cp949ch = chr(cp949val >> 8) + chr(cp949val & 0xff) else: continue - unich = unichr(unival) + unich = unichrs(data[1]) self.assertEqual(unich.encode('cp949'), cp949ch) self.assertEqual(unicode(cp949ch, 'cp949'), unich) 1.1 KoreanCodecs/test/test_mackorean.py Index: test_mackorean.py =================================================================== # This file is part of KoreanCodecs. # # Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # KoreanCodecs is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # $Id: test_mackorean.py,v 1.1 2003/01/10 03:15:25 perky Exp $ # import CodecTestBase def unichrs(s): return u''.join(map(unichr, map(eval, s.split('+')))) class Shield: class TestMacKorean_Base(CodecTestBase.TestStreamReader, CodecTestBase.CodecTestBase): encoding = 'mackorean' textfile_chunk = ('texts/mackorean', 'texts/mackorean.utf-8') errortests = ( # invalid bytes # \x90 is expected as one byte character in MacKorean. ("abc\x90\x90\xc1\xc4", "strict", None), ("abc\xc8", "strict", None), ("abc\x90\x90\xc1\xc4", "replace", u"abc\ufffd\ufffd\uc894"), ("abc\x90\x90\xc1\xc4\xc8", "replace", u"abc\ufffd\ufffd\uc894\ufffd"), ("abc\x90\x90\xc1\xc4", "ignore", u"abc\uc894"), ("\xc1\x64", "strict", None), # cp949 code H-AE-H ) def test_mapping(self): for line in open('mappings/MacKorean.txt'): if not line: break data = line.split('#')[0].strip().split() if len(data) != 2: continue macval = eval(data[0]) if macval <= 0x7F: macch = chr(macval & 0xff) elif macval >= 0x100: macch = chr(macval >> 8) + chr(macval & 0xff) else: continue unich = unichrs(data[1]) self.assertEqual(unich.encode('mackorean'), macch) self.assertEqual(unicode(macch, 'mackorean'), unich) #class TestMacKorean_CExtension(Shield.TestMacKorean_Base): # encoding = 'korean.c.mackorean' class TestMacKorean_PurePython(Shield.TestMacKorean_Base): encoding = 'korean.python.mackorean' if __name__ == '__main__': CodecTestBase.main() # ex: ts=8 sts=4 et |
From: Hye-Shik C. <pe...@us...> - 2003-01-10 03:14:23
|
perky 03/01/09 19:14:22 Modified: korean/mappings appleextension.py Log: Add some character mappings that Apple thinks as 'Standard' but Microsoft doesn't. Revision Changes Path 1.2 +16 -1 KoreanCodecs/korean/mappings/appleextension.py Index: appleextension.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/mappings/appleextension.py,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- appleextension.py 10 Jan 2003 01:55:51 -0000 1.1 +++ appleextension.py 10 Jan 2003 03:14:22 -0000 1.2 @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: appleextension.py,v 1.1 2003/01/10 01:55:51 perky Exp $ +# $Id: appleextension.py,v 1.2 2003/01/10 03:14:22 perky Exp $ # decoding_map = { @@ -1164,6 +1164,21 @@ '\xad\xaf': u'\u21e7\uf87f', '\xad\xb0': u'!\uf87f', '\xff': u'\u2026\uf87f', + +# Apple regards these as 'Standard' but conflicts with Microsoft's mapping. +'\xa2\xe6': u'1\u20de\uf87c', +'\xa2\xe7': u'2\u20de\uf87c', +'\xa2\xc1': u'\u25c9', +'\xa2\xa6': u'\u02dc', +'\xa3\xfe': u'\u203e', +'\xa1\xa9': u'\u2013', +'\xa1\xab': u'\u2016', +'\xa1\xaa': u'\u2014', +'\xa1\xad': u'\u301c', +'\xa1\xfe': u'\xac', +'\xa1\xcb': u'\xa2', +'\xa1\xcd': u'\xa5', +'\xa1\xcc': u'\xa3', } encoding_map = {} |
From: Hye-Shik C. <pe...@us...> - 2003-01-10 02:41:15
|
perky 03/01/09 18:41:14 Modified: korean/python mackorean.py Log: Oops. Fix syntax error. Revision Changes Path 1.3 +3 -3 KoreanCodecs/korean/python/mackorean.py Index: mackorean.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/python/mackorean.py,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- mackorean.py 10 Jan 2003 02:39:52 -0000 1.2 +++ mackorean.py 10 Jan 2003 02:41:14 -0000 1.3 @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: mackorean.py,v 1.2 2003/01/10 02:39:52 perky Exp $ +# $Id: mackorean.py,v 1.3 2003/01/10 02:41:14 perky Exp $ # import codecs @@ -77,8 +77,8 @@ if errors == 'replace': buffer.append('\xa1\xa1') elif errors == 'strict': - raise UnicodeError, "cannot map " - "\\u%04x to MacKorean" % ord(c) + raise UnicodeError, ("cannot map " + "\\u%04x to MacKorean") % ord(c) return (''.join(buffer), len(data)) |
From: Hye-Shik C. <pe...@us...> - 2003-01-10 02:39:55
|
perky 03/01/09 18:39:52 Modified: korean/python mackorean.py Log: Add missed searching on encmap_apple. Revision Changes Path 1.2 +5 -2 KoreanCodecs/korean/python/mackorean.py Index: mackorean.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/python/mackorean.py,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- mackorean.py 10 Jan 2003 02:27:08 -0000 1.1 +++ mackorean.py 10 Jan 2003 02:39:52 -0000 1.2 @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: mackorean.py,v 1.1 2003/01/10 02:27:08 perky Exp $ +# $Id: mackorean.py,v 1.2 2003/01/10 02:39:52 perky Exp $ # import codecs @@ -57,6 +57,8 @@ buffer.append(c.encode("ascii", errors)) elif encmap_hangul.has_key(c): buffer.append(encmap_hangul[c]) + elif encmap_apple.has_key(c): + buffer.append(encmap_apple[c]) else: if not encmap_misc: from korean.mappings import ksc5601_misc @@ -75,7 +77,8 @@ if errors == 'replace': buffer.append('\xa1\xa1') elif errors == 'strict': - raise UnicodeError, "cannot map \\u%04x to EUC-KR" % ord(c) + raise UnicodeError, "cannot map " + "\\u%04x to MacKorean" % ord(c) return (''.join(buffer), len(data)) |
From: Hye-Shik C. <pe...@us...> - 2003-01-10 02:31:57
|
perky 03/01/09 18:31:56 Modified: . README.en README.ko Log: Comments on new MacKorean codec. Revision Changes Path 1.24 +4 -1 KoreanCodecs/README.en Index: README.en =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/README.en,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- README.en 9 Jan 2003 23:41:46 -0000 1.23 +++ README.en 10 Jan 2003 02:31:56 -0000 1.24 @@ -2,7 +2,7 @@ ============================= Copyright(C) 2002-2003 Hye-Shik Chang. -$Id: README.en,v 1.23 2003/01/09 23:41:46 perky Exp $ +$Id: README.en,v 1.24 2003/01/10 02:31:56 perky Exp $ Introduction @@ -53,6 +53,7 @@ "korean.euc-kr" "korean.cp949" + "korean.mackorean" "korean.johab" "korean.iso-2022-kr" @@ -68,6 +69,7 @@ - korean.python.cp949 - korean.c.euc-kr - korean.c.cp949 + - korean.mackorean o Johab - korean.johab @@ -101,6 +103,7 @@ about 1/3 of memory than before. - Fixed a bug that korean.python.cp949 codec taints korean.python.euc_kr codec's decoding and encoding mappings on its loading time. + - Added MacKorean codec which is used by MacOS 7 and above. o Version 2.0.5 - 24 July 2002 - Add two new characters which is introduced by KSX1001-1998 1.22 +6 -3 KoreanCodecs/README.ko Index: README.ko =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/README.ko,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- README.ko 9 Jan 2003 23:41:46 -0000 1.21 +++ README.ko 10 Jan 2003 02:31:56 -0000 1.22 @@ -1,8 +1,8 @@ -ÇѱÛÄÚµ¦ ¹öÁ¯ 2.0.5 -=================== +ÇѱÛÄÚµ¦ ¹öÁ¯ 2.1.0dev +====================== Copyright(C) 2002-2003 Hye-Shik Chang. -$Id: README.ko,v 1.21 2003/01/09 23:41:46 perky Exp $ +$Id: README.ko,v 1.22 2003/01/10 02:31:56 perky Exp $ *Ä·ÆäÀÎ* ÀÎÅͳݿ¡¼ ÇÑ±Û ¸ÂÃã¹ýÀ» Áöŵ½Ã´Ù. ^-^/~ @@ -56,6 +56,7 @@ "korean.euc-kr" "korean.cp949" + "korean.mackorean" "korean.johab" "korean.iso-2022-kr" @@ -70,6 +71,7 @@ - korean.python.cp949 : Microsoft È®Àå¿Ï¼ºÇü - korean.c.euc-kr : C·Î ÀÛ¼ºµÈ EUC-KR ÄÚµ¦ - korean.c.cp949 : C·Î ÀÛ¼ºµÈ CP949 ÄÚµ¦ + - korean.mackorean : Apple È®Àå¿Ï¼ºÇü o Á¶ÇÕÇü - korean.johab : »ó¿ë Á¶ÇÕÇü (8ºñÆ®) o ISO-2022-KR @@ -101,6 +103,7 @@ µé¾ú½À´Ï´Ù. - korean.python.cp949 ÄÚµ¦ÀÌ ·ÎµåµÇ¸é¼ korean.python.euc_kr ÀÇ ¸ÅÇο¡ cp949¸¦ Ãß°¡Çعö¸®´Â ¹ö±×°¡ ¼öÁ¤µÇ¾ú½À´Ï´Ù. + - MacOS 7 À̻󿡼 »ç¿ëµÇ´Â MacKorean ÄÚµ¦ÀÌ Ãß°¡µÇ¾ú½À´Ï´Ù. o ¹öÁ¯ 2.0.5 2002³â 7¿ù 24ÀÏ - KSX1001-1998¿¡ Ãß°¡µÈ À¯·ÎÈ Ç¥±â¿Í µî·Ï»óÇ¥ ¸¶Å©¸¦ Ãß°¡ÇÏ¿´½À´Ï´Ù. |
From: Hye-Shik C. <pe...@us...> - 2003-01-10 02:27:09
|
perky 03/01/09 18:27:08 Added: korean/python mackorean.py Log: Add basic implementation of MacKorean codec. Revision Changes Path 1.1 KoreanCodecs/korean/python/mackorean.py Index: mackorean.py =================================================================== # # This file is part of KoreanCodecs. # # Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # KoreanCodecs is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # $Id: mackorean.py,v 1.1 2003/01/10 02:27:08 perky Exp $ # import codecs from korean.mappings import ksc5601_hangul, appleextension encmap_hangul, decmap_hangul = ksc5601_hangul.encoding_map, ksc5601_hangul.decoding_map encmap_apple, decmap_apple = appleextension.encoding_map, appleextension.decoding_map encmap_ideo, decmap_ideo = {}, {} encmap_misc, decmap_misc = {}, {} class Codec(codecs.Codec): # Unicode to character buffer def encode(self, data, errors='strict'): global encmap_ideo, encmap_misc if errors not in ('strict', 'ignore', 'replace'): raise ValueError, "unknown error handling" buffer = [] p = 0 size = len(data) while p < size: aemap = appleextension.multilevel_encmap relp = 0 while p + relp < size and aemap.has_key(data[p + relp]): aemap = aemap[data[p + relp]] relp += 1 if aemap.has_key(None): buffer.append(aemap[None]) p += relp continue c = data[p] p += 1 if c < u'\u0080': buffer.append(c.encode("ascii", errors)) elif encmap_hangul.has_key(c): buffer.append(encmap_hangul[c]) else: if not encmap_misc: from korean.mappings import ksc5601_misc encmap_misc = ksc5601_misc.encoding_map if encmap_misc.has_key(c): buffer.append(encmap_misc[c]) continue if not encmap_ideo: from korean.mappings import ksc5601_ideograph encmap_ideo = ksc5601_ideograph.encoding_map if encmap_ideo.has_key(c): buffer.append(encmap_ideo[c]) continue if errors == 'replace': buffer.append('\xa1\xa1') elif errors == 'strict': raise UnicodeError, "cannot map \\u%04x to EUC-KR" % ord(c) return (''.join(buffer), len(data)) # character buffer to Unicode def decode(self, data, errors='strict'): global decmap_ideo, decmap_misc if errors not in ('strict', 'ignore', 'replace'): raise ValueError, "unknown error handling" buffer = [] data = str(data) # character buffer compatible object size = len(data) p = 0 while p < size: if data[p] < '\x80': buffer.append(unicode(data[p], "ascii", errors)) p += 1 elif data[p] <= '\xa0' or data[p] == '\xff': if decmap_apple.has_key(data[p]): buffer.append(decmap_apple[data[p]]) p += 1 continue if errors == 'replace': buffer.append(u'\uFFFD') # REPLACEMENT CHARACTER elif errors == 'strict': raise UnicodeError, "unexpected byte %s found" % ( hex(ord(data[p]))) p += 1 else: c = data[p:p+2] p += 2 if len(c) == 2: if decmap_hangul.has_key(c): buffer.append(decmap_hangul[c]) continue elif decmap_apple.has_key(c): buffer.append(decmap_apple[c]) continue if not decmap_misc: from korean.mappings import ksc5601_misc decmap_misc = ksc5601_misc.decoding_map if decmap_misc.has_key(c): buffer.append(decmap_misc[c]) continue if not decmap_ideo: from korean.mappings import ksc5601_ideograph decmap_ideo = ksc5601_ideograph.decoding_map if decmap_ideo.has_key(c): buffer.append(decmap_ideo[c]) continue if errors == 'replace': buffer.append(u'\uFFFD') # REPLACEMENT CHARACTER elif errors == 'strict': raise UnicodeError, "unexpected byte 0x%s found" % ( ''.join(["%02x"%ord(x) for x in c]) ) return (u''.join(buffer), size) from korean.python import euc_kr class StreamWriter(Codec, euc_kr.StreamWriter): pass class StreamReader(Codec, euc_kr.StreamReader): def _read(self, func, size): if size == 0: return u'' if size is None or size < 0: data = self.data + func() self.data = '' else: data = self.data + func(max(size, 2) - len(self.data)) size = len(data) p = 0 while p < size: if data[p] < "\xa1" or data[p] == "\xff": p = p + 1 elif p + 2 <= size: p = p + 2 else: break data, self.data = data[:p], data[p:] return self.decode(data)[0] ### encodings module API def getregentry(): return (Codec().encode,Codec().decode,StreamReader,StreamWriter) # ex: ts=8 sts=4 et |
From: Hye-Shik C. <pe...@us...> - 2003-01-10 01:56:49
|
perky 03/01/09 17:56:48 Added: tools generate_mackorean_mapping.py Log: Add generator utility for MacKorean extension mapping. Revision Changes Path 1.1 KoreanCodecs/tools/generate_mackorean_mapping.py Index: generate_mackorean_mapping.py =================================================================== #!/usr/bin/env python # # This file is part of KoreanCodecs. # # Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # KoreanCodecs is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # $Id: generate_mackorean_mapping.py,v 1.1 2003/01/10 01:56:48 perky Exp $ # decmap = {} multi_encmap = {} def unichrs(s): return u''.join(map(unichr, map(eval, s.split('+')))) for line in open("MacKorean.txt"): data = line.split('#')[0].strip().split() if len(data) != 2: continue macv = eval(data[0]) if macv >= 0x100: macv = chr(macv >> 8) + chr(macv & 0xff) else: macv = chr(macv) univ = unichrs(data[1]) decmap[macv] = univ if len(univ) > 1: em = multi_encmap for mc in univ: em.setdefault(mc, {}) em = em[mc] em[None] = macv decmapkeys = decmap.keys() decmapkeys.sort() print "decoding_map = {" for dk in decmapkeys: print repr(dk) + ':', repr(decmap[dk]) + ',' print "}" def printencmap(depth, label, em): indent = (" " * depth)[:-1] print indent, "%s: {" % repr(label) if em.has_key(None): print indent, " None: %s," % repr(em[None]) for ek in em: if ek is not None: printencmap(depth + 1, ek, em[ek]) print indent, "}," printencmap(0, '', multi_encmap) # ex: ts=8 sts=4 et |
From: Hye-Shik C. <pe...@us...> - 2003-01-10 01:55:53
|
perky 03/01/09 17:55:52 Added: korean/mappings appleextension.py Log: Add Apple's MacKorean extension mapping. Revision Changes Path 1.1 KoreanCodecs/korean/mappings/appleextension.py Index: appleextension.py =================================================================== # # This file is part of KoreanCodecs. # # Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # KoreanCodecs is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # $Id: appleextension.py,v 1.1 2003/01/10 01:55:51 perky Exp $ # decoding_map = { '\x80': u'\xa0', '\x81': u'\u20a9', '\x82': u'\u2013\uf87f', '\x83': u'\xa9', '\x84': u'\uff3f\uf87f', '\xa1A': u'\u300c\uf87f', '\xa1B': u'\u300d\uf87f', '\xa1C': u'\u300c\uf87b', '\xa1D': u'\u300d\uf87b', '\xa1E': u'\u300c\uf87c', '\xa1F': u'\u300d\uf87c', '\xa1G': u'\u300e\uf87c', '\xa1H': u'\u300f\uf87c', '\xa1I': u'\u300a\uf878', '\xa1J': u'\u300b\uf878', '\xa1K': u'\u3008\uf878', '\xa1L': u'\u3009\uf878', '\xa1M': u'\ufe59', '\xa1N': u'\ufe5a', '\xa1O': u'\ufe59\uf87f', '\xa1P': u'\ufe5a\uf87f', '\xa1Q': u'\u2985\uf87f', '\xa1R': u'\u2986\uf87f', '\xa1S': u'\u2985\uf879', '\xa1T': u'\u2986\uf879', '\xa1U': u'\u2985\uf87c', '\xa1V': u'\u2986\uf87c', '\xa1W': u'(\uf87c', '\xa1X': u')\uf87c', '\xa1Y': u'\u2985', '\xa1Z': u'\u2986', '\xa1[': u'\u3010\uf87f', '\xa1\\': u'\u3011\uf87f', '\xa1]': u'\u3016', '\xa1^': u'\u3017', '\xa1_': u'\u3018', '\xa1`': u'\u3019', '\xa1a': u'[\uf87b', '\xa1b': u']\uf87b', '\xa1c': u'[\uf87c', '\xa1d': u']\uf87c', '\xa1e': u'\u2985\uf87b', '\xa1f': u'\u2986\uf87b', '\xa1g': u'\u2020\uf87f', '\xa1h': u'\u2021\uf87f', '\xa1i': u'\u2020\uf87b', '\xa1j': u'\u2021\uf87c', '\xa1k': u'\u2020\uf877', '\xa1l': u'*\uf877', '\xa1m': u'\u2051', '\xa1n': u'\uf840', '\xa1o': u'\u201f', '\xa1p': u'\u201b', '\xa1q': u'\u207a', '\xa1r': u'\u207b', '\xa1s': u'\xd7\uf877', '\xa1t': u'\u221e\uf877', '\xa1u': u'\u223d\uf877', '\xa1v': u'\xb1\uf877', '\xa1w': u'\u2213\uf877', '\xa1x': u'>\uf877', '\xa1y': u'<\uf877', '\xa1z': u'\u207c', '\xa1{': u'\u2260\uf877', '\xa1|': u'\u207d', '\xa1}': u'\u207e', '\xa1\x81': u'{\uf877', '\xa1\x82': u'}\uf877', '\xa1\x83': u'[\uf877', '\xa1\x84': u']\uf877', '\xa1\x85': u'\u2229\uf877', '\xa1\x86': u'\u222a\uf877', '\xa1\x87': u'\u2282\uf877', '\xa1\x88': u'\u2208\uf877', '\xa1\x89': u'\u2211\uf877', '\xa1\x8a': u'!\uf877', '\xa1\x8b': u'\u3007\uf876', '\xa1\x8c': u'\u4e00\uf876', '\xa1\x8d': u'\u4e8c\uf876', '\xa1\x8e': u'\u4e09\uf876', '\xa1\x8f': u'\u56db\uf876', '\xa1\x90': u'\u4e94\uf876', '\xa1\x91': u'\u516d\uf876', '\xa1\x92': u'\u4e03\uf876', '\xa1\x93': u'\u516b\uf876', '\xa1\x94': u'\u4e5d\uf876', '\xa1\x95': u'\u5341\uf876', '\xa1\x96': u'\u204c', '\xa1\x97': u'\u204d', '\xa1\x98': u'\u02bc', '\xa1\x99': u'\u2997', '\xa1\x9a': u'\u2998', '\xa1\x9c': u'\uff0a\uf874', '\xa1\x9d': u'\u2051\uf87c', '\xa1\x9e': u'\uff0a\uf875', '\xa1\x9f': u'\uff0a\uf871', '\xa1\xa0': u'\u2051\uf879', '\xa2A': u'\u2985\uf878', '\xa2B': u'\u2986\uf878', '\xa2C': u'\u2985\uf873', '\xa2D': u'\u2986\uf873', '\xa2E': u'\ufe59\uf87c', '\xa2F': u'\ufe5a\uf87c', '\xa2G': u'\u3016\uf878', '\xa2H': u'\u3017\uf878', '\xa2I': u'\u3010\uf878', '\xa2J': u'\u3011\uf878', '\xa2K': u'(\uf87f', '\xa2L': u')\uf87f', '\xa2\xe6': u'1\u20de\uf87c', '\xa2\xe7': u'2\u20de\uf87c', '\xa2\xe8': u'3\u20de\uf87c', '\xa2\xe9': u'4\u20de\uf87c', '\xa2\xea': u'5\u20de\uf87c', '\xa2\xeb': u'6\u20de\uf87c', '\xa2\xec': u'7\u20de\uf87c', '\xa2\xed': u'8\u20de\uf87c', '\xa2\xee': u'9\u20de\uf87c', '\xa2\xef': u'\uf863[10]', '\xa2\xf0': u'\uf863[11]', '\xa2\xf1': u'\uf863[12]', '\xa2\xf2': u'\uf863[13]', '\xa2\xf3': u'\uf863[14]', '\xa2\xf4': u'\uf863[15]', '\xa2\xf5': u'\uf863[16]', '\xa2\xf6': u'\uf863[17]', '\xa2\xf7': u'\uf863[18]', '\xa2\xf8': u'\uf863[19]', '\xa2\xf9': u'\uf863[20]', '\xa2\xfa': u'\xb6\uf87f', '\xa2\xfb': u'\u2016\uf87b', '\xa2\xfc': u'\u2016\uf87c', '\xa2\xfd': u'\u22ee', '\xa2\xfe': u'\u2237', '\xa3A': u'1\u20de\uf87b', '\xa3B': u'2\u20de\uf87b', '\xa3C': u'3\u20de\uf87b', '\xa3D': u'4\u20de\uf87b', '\xa3E': u'5\u20de\uf87b', '\xa3F': u'6\u20de\uf87b', '\xa3G': u'7\u20de\uf87b', '\xa3H': u'8\u20de\uf87b', '\xa3I': u'9\u20de\uf87b', '\xa3J': u'\uf864[10]', '\xa3K': u'\uf864[11]', '\xa3L': u'\uf864[12]', '\xa3M': u'\uf864[13]', '\xa3N': u'\uf864[14]', '\xa3O': u'\uf864[15]', '\xa3P': u'\uf864[16]', '\xa3Q': u'\uf864[17]', '\xa3R': u'\uf864[18]', '\xa3S': u'\uf864[19]', '\xa3T': u'\uf864[20]', '\xa3U': u'\u278a', '\xa3V': u'\u278b', '\xa3W': u'\u278c', '\xa3X': u'\u278d', '\xa3Y': u'\u278e', '\xa3Z': u'\u278f', '\xa3[': u'\u2790', '\xa3\\': u'\u2791', '\xa3]': u'\u2792', '\xa3^': u'\u2793', '\xa3_': u'\u24eb\uf87f', '\xa3`': u'\u24ec\uf87f', '\xa3a': u'\u24ed\uf87f', '\xa3b': u'\u24ee\uf87f', '\xa3c': u'\u24ef\uf87f', '\xa3d': u'\u24f0\uf87f', '\xa3e': u'\u24f1\uf87f', '\xa3f': u'\u24f2\uf87f', '\xa3g': u'\u24f3\uf87f', '\xa3h': u'\u24f4\uf87f', '\xa3i': u'\uf861(A)', '\xa3j': u'\uf861(B)', '\xa3k': u'\uf861(C)', '\xa3l': u'\uf861(D)', '\xa3m': u'\uf861(E)', '\xa3n': u'\uf861(F)', '\xa3o': u'\uf861(G)', '\xa3p': u'\uf861(H)', '\xa3q': u'\uf861(I)', '\xa3r': u'\uf861(J)', '\xa3s': u'\uf861(K)', '\xa3t': u'\uf861(L)', '\xa3u': u'\uf861(M)', '\xa3v': u'\uf861(N)', '\xa3w': u'\uf861(O)', '\xa3x': u'\uf861(P)', '\xa3y': u'\uf861(Q)', '\xa3z': u'\uf861(R)', '\xa3{': u'\uf861(S)', '\xa3|': u'\uf861(T)', '\xa3}': u'\uf861(U)', '\xa3\x81': u'\uf861(V)', '\xa3\x82': u'\uf861(W)', '\xa3\x83': u'\uf861(X)', '\xa3\x84': u'\uf861(Y)', '\xa3\x85': u'\uf861(Z)', '\xa3\x86': u'\u24b6', '\xa3\x87': u'\u24b7', '\xa3\x88': u'\u24b8', '\xa3\x89': u'\u24b9', '\xa3\x8a': u'\u24ba', '\xa3\x8b': u'\u24bb', '\xa3\x8c': u'\u24bc', '\xa3\x8d': u'\u24bd', '\xa3\x8e': u'\u24be', '\xa3\x8f': u'\u24bf', '\xa3\x90': u'\u24c0', '\xa3\x91': u'\u24c1', '\xa3\x92': u'\u24c2', '\xa3\x93': u'\u24c3', '\xa3\x94': u'\u24c4', '\xa3\x95': u'\u24c5', '\xa3\x96': u'\u24c6', '\xa3\x97': u'\u24c7', '\xa3\x98': u'\u24c8', '\xa3\x99': u'\u24c9', '\xa3\x9a': u'\u24ca', '\xa3\x9b': u'\u24cb', '\xa3\x9c': u'\u24cc', '\xa3\x9d': u'\u24cd', '\xa3\x9e': u'\u24ce', '\xa3\x9f': u'\u24cf', '\xa4A': u'1\u20de\uf87f', '\xa4B': u'2\u20de\uf87f', '\xa4C': u'3\u20de\uf87f', '\xa4D': u'4\u20de\uf87f', '\xa4E': u'5\u20de\uf87f', '\xa4F': u'6\u20de\uf87f', '\xa4G': u'7\u20de\uf87f', '\xa4H': u'8\u20de\uf87f', '\xa4I': u'9\u20de\uf87f', '\xa4J': u'\uf862[10]', '\xa4K': u'\uf862[11]', '\xa4L': u'\uf862[12]', '\xa4M': u'\uf862[13]', '\xa4N': u'\uf862[14]', '\xa4O': u'\uf862[15]', '\xa4P': u'\uf862[16]', '\xa4Q': u'\uf862[17]', '\xa4R': u'\uf862[18]', '\xa4S': u'\uf862[19]', '\xa4T': u'\uf862[20]', '\xa4U': u'1\u20de\uf87a', '\xa4V': u'2\u20de\uf87a', '\xa4W': u'3\u20de\uf87a', '\xa4X': u'4\u20de\uf87a', '\xa4Y': u'5\u20de\uf87a', '\xa4Z': u'6\u20de\uf87a', '\xa4[': u'7\u20de\uf87a', '\xa4\\': u'8\u20de\uf87a', '\xa4]': u'9\u20de\uf87a', '\xa4^': u'\uf865[10]', '\xa4_': u'\uf865[11]', '\xa4`': u'\uf865[12]', '\xa4a': u'\uf865[13]', '\xa4b': u'\uf865[14]', '\xa4c': u'\uf865[15]', '\xa4d': u'\uf865[16]', '\xa4e': u'\uf865[17]', '\xa4f': u'\uf865[18]', '\xa4g': u'\uf865[19]', '\xa4h': u'\uf865[20]', '\xa4i': u'\u278a\uf87f', '\xa4j': u'\u278b\uf87f', '\xa4k': u'\u278c\uf87f', '\xa4l': u'\u278d\uf87f', '\xa4m': u'\u278e\uf87f', '\xa4n': u'\u278f\uf87f', '\xa4o': u'\u2790\uf87f', '\xa4p': u'\u2791\uf87f', '\xa4q': u'\u2792\uf87f', '\xa4r': u'\u2793\uf87f', '\xa4s': u'\u24eb\uf878', '\xa4t': u'\u24ec\uf878', '\xa4u': u'\u24ed\uf878', '\xa4v': u'\u24ee\uf878', '\xa4w': u'\u24ef\uf878', '\xa4x': u'\u24f0\uf878', '\xa4y': u'\u24f1\uf878', '\xa4z': u'\u24f2\uf878', '\xa4{': u'\u24f3\uf878', '\xa4|': u'\u24f4\uf878', '\xa4}': u'\u2a26', '\xa4\x81': u'\u227a', '\xa4\x82': u'\u227b', '\xa4\x83': u'\u22ce', '\xa4\x84': u'\u22cf', '\xa4\x85': u'\u2280', '\xa4\x86': u'\u2281', '\xa4\x87': u'\u2270', '\xa4\x88': u'\u2271', '\xa4\x89': u'\u2272', '\xa4\x8a': u'\u2273', '\xa4\x8b': u'\u2ac5', '\xa4\x8c': u'\u2acb', '\xa4\x8d': u'\u2ac6', '\xa4\x8e': u'\u2acc', '\xa4\x8f': u'\u2276', '\xa4\x90': u'\u2277', '\xa4\x91': u'\u2279', '\xa4\x92': u'\u22da', '\xa4\x93': u'\u22db', '\xa4\x94': u'\u2a8b', '\xa4\x95': u'\u2a8c', '\xa4\x96': u'\u2a91', '\xa4\x97': u'\u2a92', '\xa4\x98': u'\u2222\uf87f', '\xa4\x99': u'\u2245', '\xa4\x9a': u'\u2243', '\xa4\x9b': u'\u2248', '\xa4\x9c': u'\u29a3', '\xa4\x9d': u'\u22a4', '\xa4\x9e': u'\u2225\u0347', '\xa4\x9f': u'\u2afd\u0347', '\xa5A': u'0\u20de', '\xa5B': u'1\u20de', '\xa5C': u'2\u20de', '\xa5D': u'3\u20de', '\xa5E': u'4\u20de', '\xa5F': u'5\u20de', '\xa5G': u'6\u20de', '\xa5H': u'7\u20de', '\xa5I': u'8\u20de', '\xa5J': u'9\u20de', '\xa5K': u'\u24ea\uf87f', '\xa5L': u'\u2460\uf87f', '\xa5M': u'\u2461\uf87f', '\xa5N': u'\u2462\uf87f', '\xa5O': u'\u2463\uf87f', '\xa5P': u'\u2464\uf87f', '\xa5Q': u'\u2465\uf87f', '\xa5R': u'\u2466\uf87f', '\xa5S': u'\u2467\uf87f', '\xa5T': u'\u2468\uf87f', '\xa5U': u'\uf860A)', '\xa5V': u'\uf860B)', '\xa5W': u'\uf860C)', '\xa5X': u'\uf860D)', '\xa5Y': u'\uf860E)', '\xa5Z': u'\uf860F)', '\xa5[': u'\uf860G)', '\xa5\\': u'\uf860H)', '\xa5]': u'\uf860I)', '\xa5^': u'\uf860J)', '\xa5_': u'\uf860K)', '\xa5`': u'\uf860L)', '\xa5a': u'\uf860M)', '\xa5b': u'\uf860N)', '\xa5c': u'\uf860O)', '\xa5d': u'\uf860P)', '\xa5e': u'\uf860Q)', '\xa5f': u'\uf860R)', '\xa5g': u'\uf860S)', '\xa5h': u'\uf860T)', '\xa5i': u'\uf860U)', '\xa5j': u'\uf860V)', '\xa5k': u'\uf860W)', '\xa5l': u'\uf860X)', '\xa5m': u'\uf860Y)', '\xa5n': u'\uf860Z)', '\xa5o': u'\uf860a)', '\xa5p': u'\uf860b)', '\xa5q': u'\uf860c)', '\xa5r': u'\uf860d)', '\xa5s': u'\uf860e)', '\xa5t': u'\uf860f)', '\xa5u': u'\uf860g)', '\xa5v': u'\uf860h)', '\xa5w': u'\uf860i)', '\xa5x': u'\uf860j)', '\xa5y': u'\uf860k)', '\xa5z': u'\uf860l)', '\xa5{': u'\uf860m)', '\xa5|': u'\uf860n)', '\xa5}': u'\uf860o)', '\xa5\x81': u'\uf860p)', '\xa5\x82': u'\uf860q)', '\xa5\x83': u'\uf860r)', '\xa5\x84': u'\uf860s)', '\xa5\x85': u'\uf860t)', '\xa5\x86': u'\uf860u)', '\xa5\x87': u'\uf860v)', '\xa5\x88': u'\uf860w)', '\xa5\x89': u'\uf860x)', '\xa5\x8a': u'\uf860y)', '\xa5\x8b': u'\uf860z)', '\xa5\xda': u'\uff01\uf874', '\xa5\xdb': u'\u3002\uf87d', '\xa5\xdc': u'\u2032\uf87f', '\xa5\xdd': u'\u2033\uf87f', '\xa5\xde': u'\u2034', '\xa5\xf9': u'\u3257\uf87a', '\xa5\xfa': u'\u3258\uf87a', '\xa5\xfb': u'\u3259\uf87a', '\xa5\xfc': u'\u325a\uf87a', '\xa6A': u'\uf83d\uf87f', '\xa6B': u'\uf83d', '\xa6C': u'\u2020\uf87c', '\xa6D': u'\uf860\u2020\u2020', '\xa6E': u'\uf860\u2021\u2021', '\xa6F': u'\uf861\u2020\u2020\u2020', '\xa6G': u'\xa7\uf87c', '\xa6H': u'\u266f', '\xa6I': u'\uff0a\uf87f', '\xa6J': u'\uff0a\uf873', '\xa6K': u'\u2051\uf874', '\xa6L': u'\uf860**', '\xa6M': u'\u2042', '\xa6N': u'\u204e', '\xa6O': u'\u2051\uf871', '\xa6P': u'\uf867**', '\xa6Q': u'\u2042\uf879', '\xa6R': u'\u273d', '\xa6S': u'\u2731', '\xa6T': u'\u2747', '\xa6U': u'\u2022', '\xa6V': u'\u25a0\u20df', '\xa6W': u'\u25c7\u20df', '\xa6X': u'\uf805', '\xa6Y': u'\u25a1\u20df', '\xa6Z': u'\u2039', '\xa6[': u'\u203a', '\xa6\\': u'\xab', '\xa6]': u'\xbb', '\xa6^': u'\u261c\uf87f', '\xa6_': u'\u261e\uf87f', '\xa6`': u'\uf806\u20df', '\xa6a': u'\u25c7\u20df\u20df', '\xa6b': u'\u25c7\u20de', '\xa6c': u'\uf806', '\xa6d': u'\u29c8', '\xa6e': u'\u25c6\u20de', '\xa6f': u'\uf805\u20de', '\xa6g': u'\u29c8\u20de', '\xa6h': u'\u29be', '\xa6i': u'\u25ce\u20dd', '\xa6j': u'\u25b3\u20dd', '\xa6k': u'\u25b2\u20dd', '\xa6l': u'\u271a', '\xa6m': u'\u2716', '\xa6n': u'\u29bf', '\xa6o': u'\u25ef', '\xa6p': u'\u25ef\uf87c', '\xa6q': u'\u2610\uf87c', '\xa6r': u'\u2723', '\xa6s': u'\u2756', '\xa6t': u'\uf80a', '\xa6u': u'\u25cc', '\xa6v': u'\u2610\uf87f', '\xa6w': u'\u2610', '\xa6x': u'\u25a2', '\xa6y': u'\u2723\uf87a', '\xa6z': u'\u2756\uf87a', '\xa6{': u'\u273f\uf87a', '\xa6|': u'\u273f', '\xa6}': u'\u3013\uf87c', '\xa6\x81': u'\uf809', '\xa6\x82': u'\u25c9\u20dd', '\xa6\x83': u'\u274d', '\xa6\x84': u'\u25cd', '\xa6\x85': u'\u27e1\u20dd', '\xa6\x86': u'\uf80b\uf87f', '\xa6\x87': u'\u2720\uf87a', '\xa6\x88': u'\u2720', '\xa6\x89': u'\u25c8\uf87f', '\xa6\x8a': u'\u25a8\uf87f', '\xa6\x8d': u'\u2741', '\xa6\x8e': u'\u2756\uf87f', '\xa6\x8f': u'\uf808', '\xa6\x90': u'\u20a9\uf87f', '\xa6\x91': u'\uf809\uf87a', '\xa6\x92': u'\u534d\uf87f', '\xa6\x93': u'\u262f', '\xa6\x96': u'\uf80b', '\xa6\x97': u'\u262f\uf87a', '\xa6\x98': u'\u262f\uf876', '\xa6\x99': u'\u2740', '\xa6\x9a': u'\uf80c', '\xa6\x9b': u'\u2748\u20d8', '\xa6\x9e': u'\u3020', '\xa6\x9f': u'\uf807', '\xa6\xe5': u'\u2776', '\xa6\xe6': u'\u2777', '\xa6\xe7': u'\u2778', '\xa6\xe8': u'\u2779', '\xa6\xe9': u'\u277a', '\xa6\xea': u'\u277b', '\xa6\xeb': u'\u277c', '\xa6\xec': u'\u277d', '\xa6\xed': u'\u277e', '\xa6\xee': u'\u277f', '\xa6\xef': u'\u24eb', '\xa6\xf0': u'\u24ec', '\xa6\xf1': u'\u24ed', '\xa6\xf2': u'\u24ee', '\xa6\xf3': u'\u24ef', '\xa6\xf4': u'\u24f0', '\xa6\xf5': u'\u24f1', '\xa6\xf6': u'\u24f2', '\xa6\xf7': u'\u24f3', '\xa6\xf8': u'\u24f4', '\xa6\xf9': u'\u3251\uf87a', '\xa6\xfa': u'\u3252\uf87a', '\xa6\xfb': u'\u3253\uf87a', '\xa6\xfc': u'\u3254\uf87a', '\xa6\xfd': u'\u3255\uf87a', '\xa6\xfe': u'\u3256\uf87a', '\xa7A': u'\u2642\uf87f', '\xa7B': u'\u3012', '\xa7C': u'\u3036', '\xa7D': u'\u25cb\uf87f', '\xa7E': u'\u25b3\uf87f', '\xa7F': u'\u25fb', '\xa7G': u'\uf84c', '\xa7H': u'\u2394\uf876', '\xa7I': u'\u25ad\uf878', '\xa7J': u'\u25ad', '\xa7K': u'\uf84d', '\xa7L': u'\uf84e', '\xa7M': u'\uf84f', '\xa7N': u'\u25c7\uf87f', '\xa7O': u'\u51f9\uf87f', '\xa7P': u'\u51f8\uf87f', '\xa7Q': u'\u2206', '\xa7R': u'\u2206\uf87f', '\xa7S': u'\u221f', '\xa7T': u'\u222a\uf87f', '\xa7U': u'\u2225', '\xa7V': u'\u2226', '\xa7W': u'\u2229\uf87f', '\xa7X': u'\u2253', '\xa7Y': u'\u2251', '\xa7Z': u'\u2266', '\xa7[': u'\u2267', '\xa7\\': u'\u2213', '\xa7]': u'\u2295', '\xa7^': u'\u2296', '\xa7_': u'\u2297', '\xa7`': u'\u2a38', '\xa7a': u'\u2314', '\xa7b': u'=\u20e5', '\xa7c': u'\u2261\u20e5', '\xa7d': u'\u2262', '\xa7e': u'=\u20d2', '\xa7f': u'\u25b1', '\xa7g': u'-\u0308', '\xa7h': u'\u2222', '\xa7i': u'\u2250', '\xa7j': u'\u03d5', '\xa7k': u'\u2ae8', '\xa7l': u'\u22a3', '\xa7m': u'\u22a5\u0338', '\xa7n': u'\u2261\u20d2', '\xa7o': u'\u226e', '\xa7p': u'\u226f', '\xa7q': u'\u2285', '\xa7r': u'\u2284', '\xa7s': u'\u2209', '\xa7t': u'\u220c', '\xa7u': u'\u22bb', '\xa7v': u'\u22bc', '\xa7w': u'\u225a', '\xa7x': u'\u2306', '\xa7y': u'\u223d\u0336', '\xa7z': u'\u2314\uf87f', '\xa7{': u'\u2a72', '\xa7|': u'\u88dc\u20e4', '\xa7}': u'\uf862\uc8fc\uc2dd\ud68c\uc0ac', '\xa7\x81': u'\uf863\uc8fc\uc2dd\ud68c\uc0ac', '\xa7\x82': u'\u329e', '\xa7\x83': u'\u329e\uf87f', '\xa7\x84': u'\u203c', '\xa7\x85': u'\u2049', '\xa7\x86': u'\u203c\uf87f', '\xa7\x87': u'\u2047', '\xa7\x88': u'\u25c7\uf87c', '\xa7\x89': u'\u25c7\uf879', '\xa7\x8a': u'\u25c7\uf87b', '\xa7\x8b': u'\u25c6\uf879', '\xa7\x8c': u'\u25a1\uf87c', '\xa7\x8d': u'\u25a1\uf879', '\xa7\x8e': u'\u25a1\uf87b', '\xa7\x8f': u'\u2588', '\xa7\x90': u'\u25e6', '\xa7\x91': u'\u25cb\uf879', '\xa7\x92': u'\u25cb\uf87b', '\xa7\x93': u'\u25cf\uf879', '\xa7\x94': u'\u25bf', '\xa7\x95': u'\u25b5', '\xa7\x96': u'\u25b9', '\xa7\x97': u'\u25c3', '\xa7\x98': u'\u2666', '\xa7\x99': u'\u2981', '\xa7\x9a': u'\u25fc', '\xa7\x9b': u'\u25b4\u20e4', '\xa7\x9c': u'\u25ca', '\xa7\x9d': u'\u3231', '\xa7\x9e': u'\u3239', '\xa7\x9f': u'\u33cb', '\xa7\xf0': u'\u246f', '\xa7\xf1': u'\u2470', '\xa7\xf2': u'\u2471', '\xa7\xf3': u'\u2472', '\xa7\xf4': u'\u2473', '\xa7\xf5': u'\u3251', '\xa7\xf6': u'\u3252', '\xa7\xf7': u'\u3253', '\xa7\xf8': u'\u3254', '\xa7\xf9': u'\u3255', '\xa7\xfa': u'\u3256', '\xa7\xfb': u'\u3257', '\xa7\xfc': u'\u3258', '\xa7\xfd': u'\u3259', '\xa7\xfe': u'\u325a', '\xa8A': u'\u2192\uf87b', '\xa8B': u'\u2190\uf87b', '\xa8C': u'\u2191\uf87b', '\xa8D': u'\u2193\uf87b', '\xa8E': u'\u2196\uf87b', '\xa8F': u'\u2197\uf87b', '\xa8G': u'\u2198\uf87b', '\xa8H': u'\u2199\uf87b', '\xa8I': u'\u21d0', '\xa8J': u'\u21cf', '\xa8K': u'\u21cd', '\xa8L': u'\u21d4\uf87f', '\xa8M': u'\u2192\uf87c', '\xa8N': u'\u2190\uf87c', '\xa8O': u'\u2191\uf87c', '\xa8P': u'\u2193\uf87c', '\xa8Q': u'\u2194\uf87c', '\xa8R': u'\u2195\uf87c', '\xa8S': u'\u2190\uf879', '\xa8T': u'\u2192\uf879', '\xa8U': u'\u2191\uf879', '\xa8V': u'\u2193\uf879', '\xa8W': u'\u21e6\u20de', '\xa8X': u'\u21e8\u20de', '\xa8Y': u'\u21e7\u20de', '\xa8Z': u'\u21e9\u20de', '\xa8[': u'\u21e6\u20dd', '\xa8\\': u'\u27b2', '\xa8]': u'\u21e7\u20dd', '\xa8^': u'\u21e9\u20dd', '\xa8_': u'\u2190\uf87f', '\xa8`': u'\u279c', '\xa8a': u'\u2191\uf87f', '\xa8b': u'\u2193\uf87f', '\xa8c': u'\u2190\uf875', '\xa8d': u'\u2192\uf875', '\xa8e': u'\u2191\uf875', '\xa8f': u'\u2193\uf875', '\xa8g': u'\uf846', '\xa8h': u'\uf847', '\xa8i': u'\u2190\uf871', '\xa8j': u'\u279b', '\xa8k': u'\u2190\uf872', '\xa8l': u'\u2192\uf872', '\xa8m': u'\u2191\uf872', '\xa8n': u'\u2193\uf872', '\xa8o': u'\u2962', '\xa8p': u'\u2964', '\xa8q': u'\u2963', '\xa8r': u'\u2965', '\xa8s': u'\u21e6\uf87a', '\xa8t': u'\u27a1', '\xa8u': u'\u21e7\uf87a', '\xa8v': u'\u21e9\uf87a', '\xa8w': u'\u21e6\uf87b', '\xa8x': u'\u279e', '\xa8y': u'\u21e7\uf87b', '\xa8z': u'\u21e9\uf87b', '\xa8{': u'\u21b2', '\xa8|': u'\u21b1', '\xa8}': u'\u21bb\uf87b', '\xa8\x81': u'\u21b4', '\xa8\x82': u'\u21b0', '\xa8\x83': u'\u21b3', '\xa8\x84': u'\u2939\uf87f', '\xa8\x85': u'\u2934\uf87f', '\xa8\x86': u'\u2936', '\xa8\x87': u'\u21b1\uf87f', '\xa8\x88': u'\u21bb\uf87f', '\xa8\x89': u'\u2935', '\xa8\x8a': u'\u21b0\uf87f', '\xa8\x8b': u'\u2937', '\xa8\x8c': u'\u2939', '\xa8\x8d': u'\u2934', '\xa8\x8e': u'\u21e6\uf879', '\xa8\x8f': u'\u21e8\uf879', '\xa8\x90': u'\u21e7\uf879', '\xa8\x91': u'\u21e9\uf879', '\xa8\x92': u'\u21bc', '\xa8\x93': u'\u21c0', '\xa8\x94': u'\uf841', '\xa8\x95': u'\u21d4\uf879', '\xa8\x96': u'\u21e8\uf874', '\xa8\x97': u'\u21e6\uf874', '\xa8\x98': u'\u21c0\uf879', '\xa8\x99': u'\u21bc\uf879', '\xa8\x9a': u'\u21d2\uf87c', '\xa8\x9b': u'\u21d0\uf87c', '\xa8\x9c': u'\uf849', '\xa8\x9d': u'\uf848', '\xa8\x9e': u'\u21c4', '\xa8\x9f': u'\u21c5', '\xa9A': u'\uf860A.', '\xa9B': u'\uf860B.', '\xa9C': u'\uf860C.', '\xa9D': u'\uf860D.', '\xa9E': u'\uf860E.', '\xa9F': u'\uf860F.', '\xa9G': u'\uf860G.', '\xa9H': u'\uf860H.', '\xa9I': u'\uf860I.', '\xa9J': u'\uf860J.', '\xa9K': u'\uf860K.', '\xa9L': u'\uf860L.', '\xa9M': u'\uf860M.', '\xa9N': u'\uf860N.', '\xa9O': u'\uf860O.', '\xa9P': u'\uf860P.', '\xa9Q': u'\uf860Q.', '\xa9R': u'\uf860R.', '\xa9S': u'\uf860S.', '\xa9T': u'\uf860T.', '\xa9U': u'\uf860U.', '\xa9V': u'\uf860V.', '\xa9W': u'\uf860W.', '\xa9X': u'\uf860X.', '\xa9Y': u'\uf860Y.', '\xa9Z': u'\uf860Z.', '\xa9[': u'\uf860a.', '\xa9\\': u'\uf860b.', '\xa9]': u'\uf860c.', '\xa9^': u'\uf860d.', '\xa9_': u'\uf860e.', '\xa9`': u'\uf860f.', '\xa9a': u'\uf860g.', '\xa9b': u'\uf860h.', '\xa9c': u'\uf860i.', '\xa9d': u'\uf860j.', '\xa9e': u'\uf860k.', '\xa9f': u'\uf860l.', '\xa9g': u'\uf860m.', '\xa9h': u'\uf860n.', '\xa9i': u'\uf860o.', '\xa9j': u'\uf860p.', '\xa9k': u'\uf860q.', '\xa9l': u'\uf860r.', '\xa9m': u'\uf860s.', '\xa9n': u'\uf860t.', '\xa9o': u'\uf860u.', '\xa9p': u'\uf860v.', '\xa9q': u'\uf860w.', '\xa9r': u'\uf860x.', '\xa9s': u'\uf860y.', '\xa9t': u'\uf860z.', '\xaaA': u'\uc6b4\u20de', '\xaaB': u'\ub2f5\u20de', '\xaaC': u'\uc8fc\u20de', '\xaaD': u'\uba85\u20de', '\xaaE': u'\ub300\u20de', '\xaaF': u'\ud615\u20de', '\xaaG': u'\ubd80\u20de', '\xaaH': u'\uc804\u20de', '\xaaI': u'\uc811\u20de', '\xaaJ': u'\uc218\u20de', '\xaaK': u'\ub3d9\u20de', '\xaaL': u'\ube44\u20de', '\xaaM': u'\ubc18\u20de', '\xaaN': u'\uc790\u20de', '\xaaO': u'\ud0c0\u20de', '\xaaP': u'\uac10\u20de', '\xaaQ': u'\uc57d\u20de', '\xaaR': u'\uc778\u20de', '\xaaS': u'\ub73b\u20de', '\xaaT': u'\u5370\u20de', '\xaaU': u'\u8a3b\u20de', '\xaaV': u'\uc608\u20de', '\xaaW': u'\u611f\u20de', '\xaaX': u'\u51a0\u20de', '\xaaY': u'\u7b54\u20de', '\xaaZ': u'\u4ee3\u20de', '\xaa[': u'\u982d\u20de', '\xaa\\': u'\u52d5\u20de', '\xaa]': u'\u540d\u20de', '\xaa^': u'\u76ee\u20de', '\xaa_': u'\u53cd\u20de', '\xaa`': u'\u88dc\u20de', '\xaaa': u'\u672c\u20de', '\xaab': u'\u526f\u20de', '\xaac': u'\u5e8f\u20de', '\xaad': u'\u9023\u20de', '\xaae': u'\u5f71\u20de', '\xaaf': u'\u4f8b\u20de', '\xaag': u'\u6e90\u20de', '\xaah': u'\u5b50\u20de', '\xaai': u'\u524d\u20de', '\xaaj': u'\u7bc0\u20de', '\xaak': u'\u63a5\u20de', '\xaal': u'\u52a9\u20de', '\xaam': u'\u6307\u20de', '\xaan': u'\u4ed6\u20de', '\xaao': u'\u6d3e\u20de', '\xaap': u'\u5f62\u20de', '\xaaq': u'\uc870\u20de', '\xaar': u'\ubb38\u20de\uf87a', '\xaas': u'\ub2f5\u20de\uf87a', '\xaat': u'\uc8fc\u20de\uf87a', '\xaau': u'\ub73b\u20de\uf87a', '\xaav': u'\u8a3b\u20de\uf87a', '\xaaw': u'\uad50\u20de\uf87a', '\xaax': u'\uc5ed\u20de\uf87a', '\xaay': u'\uc74c\u20de\uf87a', '\xaaz': u'\uc815\u20de\uf87a', '\xaa{': u'\ud574\u20de\uf87a', '\xaa|': u'\uc608\u20de\uf87a', '\xaa}': u'\uc874\u20dd', '\xaa\x81': u'\ub77c\u20dd', '\xaa\x82': u'\ub9c8\u20dd', '\xaa\x83': u'\ubc14\u20dd', '\xaa\x84': u'\uc0ac\u20dd', '\xaa\x85': u'\uc544\u20dd', '\xaa\x86': u'\uc790\u20dd', '\xaa\x87': u'\ucc28\u20dd', '\xaa\x88': u'\uce74\u20dd', '\xaa\x89': u'\ud0c0\u20dd', '\xaa\x8a': u'\ud30c\u20dd', '\xaa\x8b': u'\ub192\u20dd', '\xaa\x8c': u'\ub0ae\u20dd', '\xaa\x8d': u'\uba85\u20dd', '\xaa\x8e': u'\ub300\u20dd', '\xaa\x8f': u'\ud615\u20dd', '\xaa\x90': u'\ubd80\u20dd', '\xaa\x91': u'\uc804\u20dd', '\xaa\x92': u'\uc811\u20dd', '\xaa\x93': u'\uc218\u20dd', '\xaa\x94': u'\ub3d9\u20dd', '\xaa\x95': u'\ube44\u20dd', '\xaa\x96': u'\uac8c\u20dd', '\xaa\x97': u'\ubc18\u20dd', '\xaa\x98': u'\uc18d\u20dd', '\xaa\x99': u'\uc778\u20dd', '\xaa\x9a': u'\ubcf8\u20dd', '\xaa\x9b': u'\uc57d\u20dd', '\xaa\x9c': u'\uc219\u20dd', '\xaa\x9d': u'\uc720\u20dd', '\xaa\x9e': u'\uad00\u20dd', '\xaa\x9f': u'\u51a0\u20dd', '\xaa\xf4': u'\u2483', '\xaa\xf5': u'\u2484', '\xaa\xf6': u'\u2485', '\xaa\xf7': u'\u2486', '\xaa\xf8': u'\u2487', '\xaa\xf9': u'\uf862(21)', '\xaa\xfa': u'\uf862(22)', '\xaa\xfb': u'\uf862(23)', '\xaa\xfc': u'\uf862(24)', '\xaa\xfd': u'\uf862(25)', '\xaa\xfe': u'\uf862(26)', '\xabA': u'\uc870\u20dd', '\xabB': u'\uad6d\u20dd', '\xabC': u'\uac10\u20dd', '\xabD': u'\u5370\u20dd', '\xabE': u'\u8863\u20dd', '\xabF': u'\u672b\u20dd', '\xabG': u'\uac70\u20dd', '\xabH': u'\ub2f5\u20dd', '\xabI': u'\ubcc0\u20dd', '\xabJ': u'\uc0c1\u20dd', '\xabK': u'\uc13c\u20dd', '\xabL': u'\uc2e0\u20dd', '\xabM': u'\uc5ec\u20dd', '\xabN': u'\uc608\u20dd', '\xabO': u'\uc6d0\u20dd', '\xabP': u'\uc791\u20dd', '\xabQ': u'\uc900\u20dd', '\xabR': u'\ud0b9\u20dd', '\xabS': u'\uc678\u20dd', '\xabT': u'\ud65c\u20dd', '\xabU': u'\uac04\u20dd', '\xabV': u'\uac19\u20dd', '\xabW': u'\uc2e4\u20dd', '\xabX': u'\u611f\u20dd', '\xabY': u'\u6163\u20dd', '\xabZ': u'\u4ee3\u20dd', '\xab[': u'\u52d5\u20dd', '\xab\\': u'\u3294', '\xab]': u'\u53cd\u20dd', '\xab^': u'\u526f\u20dd', '\xab_': u'\u81ea\u20dd', '\xab`': u'\u524d\u20dd', '\xaba': u'\u96fb\u20dd', '\xabb': u'\u63a5\u20dd', '\xabc': u'\u52a9\u20dd', '\xabd': u'\u6ce8\u20dd', '\xabe': u'\u53c3\u20dd', '\xabf': u'\u672c\u20dd', '\xabg': u'\u65b0\u20dd', '\xabh': u'\u73fe\u20dd', '\xabi': u'\u5f62\u20dd', '\xabj': u'\u9593\u20dd', '\xabk': u'\u570b\u20dd', '\xabl': u'\u32a5', '\xabm': u'\u4ed6\u20dd', '\xabn': u'\ube60\u20dd', '\xabo': u'\uc2dc\u20dd', '\xabp': u'\uc785\u20dd', '\xabq': u'\uc73c\u20dd', '\xabr': u'\uc74c\u20dd', '\xabs': u'\uc9c1\u20dd', '\xabt': u'\ud45c\u20dd', '\xabu': u'\uac00\u20dd', '\xabv': u'\ub098\u20dd', '\xabw': u'\ub2e4\u20dd', '\xabx': u'\ud558\u20dd', '\xaby': u'\ub9c8\u20dd\uf87a', '\xabz': u'\ubc14\u20dd\uf87a', '\xab{': u'\uc0ac\u20dd\uf87a', '\xab|': u'\uc544\u20dd\uf87a', '\xab}': u'\uc790\u20dd\uf87a', '\xab\x81': u'\ucc28\u20dd\uf87a', '\xab\x82': u'\uce74\u20dd\uf87a', '\xab\x83': u'\ud0c0\u20dd\uf87a', '\xab\x84': u'\ud30c\u20dd\uf87a', '\xab\x85': u'\ud558\u20dd\uf87a', '\xab\x86': u'\ube44\u20dd\uf87a', '\xab\x87': u'\ub2f5\u20dd\uf87a', '\xab\x88': u'\ube60\u20dd\uf87a', '\xab\x89': u'\ubcf8\u20dd\uf87a', '\xab\x8a': u'\ub2e8\u20dd\uf87a', '\xab\x8b': u'\uc13c\u20dd\uf87a', '\xab\x8c': u'\uc2dc\u20dd\uf87a', '\xab\x8d': u'\uc5ec\u20dd\uf87a', '\xab\x8e': u'\uc608\u20dd\uf87a', '\xab\x8f': u'\uc73c\u20dd\uf87a', '\xab\x90': u'\uc74c\u20dd\uf87a', '\xab\x91': u'\uc785\u20dd\uf87a', '\xab\x92': u'\uc81c\u20dd\uf87a', '\xab\x93': u'\uc874\u20dd\uf87a', '\xab\x94': u'\uc900\u20dd\uf87a', '\xab\x95': u'\ud45c\u20dd\uf87a', '\xab\x96': u'\ud574\u20dd\uf87a', '\xab\x97': u'\ub290\u20dd\uf87a', '\xab\x98': u'\ub192\u20dd\uf87a', '\xab\x99': u'\ub0ae\u20dd\uf87a', '\xab\x9a': u'\ubc18\u20dd\uf87a', '\xab\x9b': u'\uac00\u20dd\uf87a', '\xab\x9c': u'\ub098\u20dd\uf87a', '\xab\x9d': u'\ub2e4\u20dd\uf87a', '\xab\x9e': u'\ub77c\u20dd\uf87a', '\xab\x9f': u'\uc678\u20dd\uf87a', '\xab\xf7': u'\uf862(27)', '\xab\xf8': u'\uf862(28)', '\xab\xf9': u'\uf862(29)', '\xab\xfa': u'\uf862(30)', '\xacA': u'\u21f0', '\xacB': u'\uf843', '\xacC': u'\u27b5', '\xacD': u'\u2964\uf87f', '\xacE': u'\u2962\uf87f', '\xacF': u'\u21e8\uf870', '\xacG': u'\u21e6\uf870', '\xacH': u'\u27a4', '\xacI': u'\uf844', '\xacJ': u'\uf84b', '\xacK': u'\uf84a', '\xacL': u'\u21c0\uf87f', '\xacM': u'\u21bc\uf87f', '\xacN': u'\u21e8\uf87f', '\xacO': u'\u21e6\uf87f', '\xacP': u'\u21b6', '\xacQ': u'\u21b7', '\xacR': u'\u219d', '\xacS': u'\u219c', '\xacT': u'\uf842', '\xacU': u'\u2190\uf87a', '\xacV': u'\u2192\uf87a', '\xacW': u'\u2191\uf87a', '\xacX': u'\u2193\uf87a', '\xacY': u'\u21e6\uf87c', '\xacZ': u'\u21e8\uf87c', '\xac[': u'\u21e7\uf87c', '\xac\\': u'\u21e9\uf87c', '\xac]': u'\u2190\uf873', '\xac^': u'\u2794', '\xac_': u'\uf845', '\xac`': u'\u2191\uf873', '\xaca': u'\u2193\uf873', '\xacb': u'\u2190\uf878', '\xacc': u'\u2192\uf878', '\xacd': u'\u2191\uf878', '\xace': u'\u2193\uf878', '\xacf': u'\u2190\uf874', '\xacg': u'\u2192\uf874', '\xach': u'\u2191\uf874', '\xaci': u'\u2193\uf874', '\xacj': u'\u21e0', '\xack': u'\u21e2', '\xacl': u'\u21e1', '\xacm': u'\u21e3', '\xacn': u'\u21e6\uf875', '\xaco': u'\u21e8\uf875', '\xacp': u'\u21e7\uf875', '\xacq': u'\u21e9\uf875', '\xacr': u'\u21e6', '\xacs': u'\u21e8', '\xact': u'\u21e7', '\xacu': u'\u21e9', '\xacv': u'\u2936\uf87a', '\xacw': u'\u21b1\uf87a', '\xacx': u'\u21bb\uf87a', '\xacy': u'\u2935\uf87a', '\xacz': u'\u21b0\uf87a', '\xac{': u'\u2937\uf87a', '\xac|': u'\u2939\uf87a', '\xac}': u'\u2934\uf87a', '\xac\x81': u'\u2936\uf87c', '\xac\x82': u'\u21b1\uf87c', '\xac\x83': u'\u21bb\uf87c', '\xac\x84': u'\u2935\uf87c', '\xac\x85': u'\u21b0\uf87c', '\xac\x86': u'\u2937\uf87c', '\xac\x87': u'\u2939\uf87c', '\xac\x88': u'\u2934\uf87c', '\xac\x89': u'\u2190\uf870', '\xac\x8a': u'\u2192\uf870', '\xac\x8b': u'\u2191\uf870', '\xac\x8c': u'\u2193\uf870', '\xac\x8d': u'\u261d', '\xac\x8e': u'\u261f', '\xac\x8f': u'\u261d\uf87f', '\xac\x90': u'\u261f\uf87f', '\xac\x91': u'\ub2e8\u20dd', '\xac\x92': u'\ucc38\u20dd', '\xac\x93': u'\uc18c\u20dd', '\xac\x94': u'\uc911\u20dd', '\xac\x95': u'\uc77c\u20dd', '\xac\x96': u'\uc774\u20dd', '\xac\x97': u'\ud734\u20dd', '\xac\xc2': u'1\u20de\uf875', '\xac\xc3': u'2\u20de\uf875', '\xac\xc4': u'3\u20de\uf875', '\xac\xc5': u'4\u20de\uf875', '\xac\xc6': u'5\u20de\uf875', '\xac\xc7': u'6\u20de\uf875', '\xac\xc8': u'7\u20de\uf875', '\xac\xc9': u'8\u20de\uf875', '\xac\xca': u'9\u20de\uf875', '\xac\xcb': u'\uf866[10]', '\xac\xcc': u'\uf866[11]', '\xac\xcd': u'\uf866[12]', '\xac\xce': u'\uf866[13]', '\xac\xcf': u'\uf866[14]', '\xac\xd0': u'\uf866[15]', '\xac\xf2': u'\uf866[16]', '\xac\xf3': u'\uf866[17]', '\xac\xf4': u'\uf866[18]', '\xac\xf5': u'\uf866[19]', '\xac\xf6': u'\uf866[20]', '\xadA': u'\u4e00\u20de\uf87a', '\xadB': u'\u4e8c\u20de\uf87a', '\xadC': u'\u4e09\u20de\uf87a', '\xadD': u'\u56db\u20de\uf87a', '\xadE': u'\u4e94\u20de\uf87a', '\xadF': u'\u516d\u20de\uf87a', '\xadG': u'\u4e03\u20de\uf87a', '\xadH': u'\u516b\u20de\uf87a', '\xadI': u'\u4e5d\u20de\uf87a', '\xadJ': u'\u5341\u20de\uf87a', '\xadK': u'\uf863[\u5341\u4e00]', '\xadL': u'\uf863[\u5341\u4e8c]', '\xadM': u'\uf863[\u5341\u4e09]', '\xadN': u'\uf863[\u5341\u56db]', '\xadO': u'\uf863[\u5341\u4e94]', '\xadP': u'\uf863[\u5341\u516d]', '\xadQ': u'\uf863[\u5341\u4e03]', '\xadR': u'\uf863[\u5341\u516b]', '\xadS': u'\uf863[\u5341\u4e5d]', '\xadT': u'\uf863[\u4e8c\u5341]', '\xadU': u'\u4e00\u20de', '\xadV': u'\u4e8c\u20de', '\xadW': u'\u4e09\u20de', '\xadX': u'\u56db\u20de', '\xadY': u'\u4e94\u20de', '\xadZ': u'\u516d\u20de', '\xad[': u'\u4e03\u20de', '\xad\\': u'\u516b\u20de', '\xad]': u'\u4e5d\u20de', '\xad^': u'\u5341\u20de', '\xad_': u'\uf862[\u5341\u4e00]', '\xad`': u'\uf862[\u5341\u4e8c]', '\xada': u'\uf862[\u5341\u4e09]', '\xadb': u'\uf862[\u5341\u56db]', '\xadc': u'\uf862[\u5341\u4e94]', '\xadd': u'\uf862[\u5341\u516d]', '\xade': u'\uf862[\u5341\u4e03]', '\xadf': u'\uf862[\u5341\u516b]', '\xadg': u'\uf862[\u5341\u4e5d]', '\xadh': u'\uf862[\u4e8c\u5341]', '\xadi': u'\u65e5\u20de', '\xadj': u'\u6708\u20de', '\xadk': u'\u706b\u20de', '\xadl': u'\u6c34\u20de', '\xadm': u'\u6728\u20de', '\xadn': u'\u91d1\u20de', '\xado': u'\u571f\u20de', '\xadp': u'\u3290', '\xadq': u'\u328a', '\xadr': u'\u328b', '\xads': u'\u328c', '\xadt': u'\u328d', '\xadu': u'\u328e', '\xadv': u'\u328f', '\xadw': u'\u65e5\u20de\uf87c', '\xadx': u'\u6708\u20de\uf87c', '\xady': u'\u706b\u20de\uf87c', '\xadz': u'\u6c34\u20de\uf87c', '\xad{': u'\u6728\u20de\uf87c', '\xad|': u'\u91d1\u20de\uf87c', '\xad}': u'\u571f\u20de\uf87c', '\xad\xa1': u'\u300c\uf879', '\xad\xa2': u'\u300d\uf879', '\xad\xa3': u'\u300e\uf879', '\xad\xa4': u'\u300f\uf879', '\xad\xa5': u'\u21e8\uf878', '\xad\xa6': u'\u21e6\uf878', '\xad\xa7': u'\u21e7\uf878', '\xad\xa8': u'\u21e9\uf878', '\xad\xa9': u'\u301e', '\xad\xaa': u'\u301f', '\xad\xab': u'\u2036', '\xad\xac': u'\u2033\uf873', '\xad\xad': u'\u2035', '\xad\xae': u'\u2032\uf873', '\xad\xaf': u'\u21e7\uf87f', '\xad\xb0': u'!\uf87f', '\xff': u'\u2026\uf87f', } encoding_map = {} for k, v in decoding_map.items(): if len(v) == 1: encoding_map[v] = k multilevel_encmap = { u'\uc790': { u'\u20dd': { None: '\xaa\x86', u'\uf87a': { None: '\xab}', }, }, u'\u20de': { None: '\xaaN', }, }, u'\u4e00': { u'\u20de': { None: '\xadU', u'\uf87a': { None: '\xadA', }, }, u'\uf876': { None: '\xa1\x8c', }, }, u'\u2985': { u'\uf873': { None: '\xa2C', }, u'\uf879': { None: '\xa1S', }, u'\uf878': { None: '\xa2A', }, u'\uf87b': { None: '\xa1e', }, u'\uf87c': { None: '\xa1U', }, u'\uf87f': { None: '\xa1Q', }, }, u'\uc804': { u'\u20dd': { None: '\xaa\x91', }, u'\u20de': { None: '\xaaH', }, }, u'\uad00': { u'\u20dd': { None: '\xaa\x9e', }, }, u'\u3008': { u'\uf878': { None: '\xa1K', }, }, u'\uff0a': { u'\uf871': { None: '\xa1\x9f', }, u'\uf873': { None: '\xa6J', }, u'\uf875': { None: '\xa1\x9e', }, u'\uf874': { None: '\xa1\x9c', }, u'\uf87f': { None: '\xa6I', }, }, u'\u278d': { u'\uf87f': { None: '\xa4l', }, }, u'\u300c': { u'\uf879': { None: '\xad\xa1', }, u'\uf87b': { None: '\xa1C', }, u'\uf87c': { None: '\xa1E', }, u'\uf87f': { None: '\xa1A', }, }, u'\u5e8f': { u'\u20de': { None: '\xaac', }, }, u'\u2791': { u'\uf87f': { None: '\xa4p', }, }, u'\u3010': { u'\uf878': { None: '\xa2I', }, u'\uf87f': { None: '\xa1[', }, }, u'\u2195': { u'\uf87c': { None: '\xa8R', }, }, u'\ubc14': { u'\u20dd': { None: '\xaa\x83', u'\uf87a': { None: '\xabz', }, }, }, u'\ud558': { u'\u20dd': { None: '\xabx', u'\uf87a': { None: '\xab\x85', }, }, }, u'\u2199': { u'\uf87b': { None: '\xa8H', }, }, u'\uc218': { u'\u20dd': { None: '\xaa\x93', }, u'\u20de': { None: '\xaaJ', }, }, u'\u21c0': { u'\uf879': { None: '\xa8\x98', }, u'\uf87f': { None: '\xacL', }, }, u'\u261c': { u'\uf87f': { None: '\xa6^', }, }, u'\uac04': { u'\u20dd': { None: '\xabU', }, }, u'\u25a1': { u'\uf879': { None: '\xa7\x8d', }, u'\uf87b': { None: '\xa7\x8e', }, u'\uf87c': { None: '\xa7\x8c', }, u'\u20df': { None: '\xa6Y', }, }, u'\u2020': { u'\uf87b': { None: '\xa1i', }, u'\uf877': { None: '\xa1k', }, u'\uf87f': { None: '\xa1g', }, u'\uf87c': { None: '\xa6C', }, }, u'\uc73c': { u'\u20dd': { None: '\xabq', u'\uf87a': { None: '\xab\x8f', }, }, }, u'\ufe5a': { u'\uf87c': { None: '\xa2F', }, u'\uf87f': { None: '\xa1P', }, }, u'\u63a5': { u'\u20dd': { None: '\xabb', }, u'\u20de': { None: '\xaak', }, }, u'\xa7': { u'\uf87c': { None: '\xa6G', }, }, u'\u65b0': { u'\u20dd': { None: '\xabg', }, }, u'(': { u'\uf87c': { None: '\xa1W', }, u'\uf87f': { None: '\xa2K', }, }, u'\u2206': { u'\uf87f': { None: '\xa7R', }, }, u'\u25ad': { u'\uf878': { None: '\xa7I', }, }, u'3': { u'\u20de': { None: '\xa5D', u'\uf875': { None: '\xac\xc4', }, u'\uf87b': { None: '\xa3C', }, u'\uf87a': { None: '\xa4W', }, u'\uf87c': { None: '\xa2\xe8', }, u'\uf87f': { None: '\xa4C', }, }, }, u'\ud65c': { u'\u20dd': { None: '\xabT', }, }, u'\u21b1': { u'\uf87a': { None: '\xacw', }, u'\uf87c': { None: '\xac\x82', }, u'\uf87f': { None: '\xa8\x87', }, }, u'0': { u'\u20de': { None: '\xa5A', }, }, u'\uc2dc': { u'\u20dd': { None: '\xabo', u'\uf87a': { None: '\xab\x8c', }, }, }, u'4': { u'\u20de': { None: '\xa5E', u'\uf875': { None: '\xac\xc5', }, u'\uf87b': { None: '\xa3D', }, u'\uf87a': { None: '\xa4X', }, u'\uf87c': { None: '\xa2\xe9', }, u'\uf87f': { None: '\xa4D', }, }, }, u'\u2208': { u'\uf877': { None: '\xa1\x88', }, }, u'8': { u'\u20de': { None: '\xa5I', u'\uf875': { None: '\xac\xc9', }, u'\uf87b': { None: '\xa3H', }, u'\uf87a': { None: '\xa4\\', }, u'\uf87c': { None: '\xa2\xed', }, u'\uf87f': { None: '\xa4H', }, }, }, u'\ud734': { u'\u20dd': { None: '\xac\x97', }, }, u'<': { u'\uf877': { None: '\xa1y', }, }, u'\u6d3e': { u'\u20de': { None: '\xaao', }, }, u'\uc9c1': { u'\u20dd': { None: '\xabs', }, }, u'\ub9c8': { u'\u20dd': { None: '\xaa\x82', u'\uf87a': { None: '\xaby', }, }, }, u'\ube44': { u'\u20dd': { None: '\xaa\x95', u'\uf87a': { None: '\xab\x86', }, }, u'\u20de': { None: '\xaaL', }, }, u'\uac00': { u'\u20dd': { None: '\xabu', u'\uf87a': { None: '\xab\x9b', }, }, }, u'\u2260': { u'\uf877': { None: '\xa1{', }, }, u'\u25c9': { u'\u20dd': { None: '\xa6\x82', }, }, u'\uc18d': { u'\u20dd': { None: '\xaa\x98', }, }, u'\u53cd': { u'\u20dd': { None: '\xab]', }, u'\u20de': { None: '\xaa_', }, }, u'\u91d1': { u'\u20de': { None: '\xadn', u'\uf87c': { None: '\xad|', }, }, }, u'\uf862': { u'(': { u'3': { u'0': { u')': { None: '\xab\xfa', }, }, }, u'2': { u'1': { u')': { None: '\xaa\xf9', }, }, u'3': { u')': { None: '\xaa\xfb', }, }, u'2': { u')': { None: '\xaa\xfa', }, }, u'5': { u')': { None: '\xaa\xfd', }, }, u'4': { u')': { None: '\xaa\xfc', }, }, u'7': { u')': { None: '\xab\xf7', }, }, u'6': { u')': { None: '\xaa\xfe', }, }, u'9': { u')': { None: '\xab\xf9', }, }, u'8': { u')': { None: '\xab\xf8', }, }, }, }, u'[': { u'1': { u'1': { u']': { None: '\xa4K', }, }, u'0': { u']': { None: '\xa4J', }, }, u'3': { u']': { None: '\xa4M', }, }, u'2': { u']': { None: '\xa4L', }, }, u'5': { u']': { None: '\xa4O', }, }, u'4': { u']': { None: '\xa4N', }, }, u'7': { u']': { None: '\xa4Q', }, }, u'6': { u']': { None: '\xa4P', }, }, u'9': { u']': { None: '\xa4S', }, }, u'8': { u']': { None: '\xa4R', }, }, }, u'\u5341': { u'\u4e00': { u']': { None: '\xad_', }, }, u'\u4e03': { u']': { None: '\xade', }, }, u'\u4e94': { u']': { None: '\xadc', }, }, u'\u4e09': { u']': { None: '\xada', }, }, u'\u4e5d': { u']': { None: '\xadg', }, }, u'\u56db': { u']': { None: '\xadb', }, }, u'\u516d': { u']': { None: '\xadd', }, }, u'\u4e8c': { u']': { None: '\xad`', }, }, u'\u516b': { u']': { None: '\xadf', }, }, }, u'2': { u'0': { u']': { None: '\xa4T', }, }, }, u'\u4e8c': { u'\u5341': { u']': { None: '\xadh', }, }, }, }, u'\uc8fc': { u'\uc2dd': { u'\ud68c': { u'\uc0ac': { None: '\xa7}', }, }, }, }, }, u'\ucc38': { u'\u20dd': { None: '\xac\x92', }, }, u'\u3254': { u'\uf87a': { None: '\xa6\xfc', }, }, u'\xd7': { u'\uf877': { None: '\xa1s', }, }, u'\u2756': { u'\uf87a': { None: '\xa6z', }, u'\uf87f': { None: '\xa6\x8e', }, }, u'\ub3d9': { u'\u20dd': { None: '\xaa\x94', }, u'\u20de': { None: '\xaaK', }, }, u'\u3258': { u'\uf87a': { None: '\xa5\xfa', }, }, u'\u56db': { u'\u20de': { None: '\xadX', u'\uf87a': { None: '\xadD', }, }, u'\uf876': { None: '\xa1\x8f', }, }, u'\uc811': { u'\u20dd': { None: '\xaa\x92', }, u'\u20de': { None: '\xaaI', }, }, u'\u2962': { u'\uf87f': { None: '\xacE', }, }, u'\uf864': { u'[': { u'1': { u'1': { u']': { None: '\xa3K', }, }, u'0': { u']': { None: '\xa3J', }, }, u'3': { u']': { None: '\xa3M', }, }, u'2': { u']': { None: '\xa3L', }, }, u'5': { u']': { None: '\xa3O', }, }, u'4': { u']': { None: '\xa3N', }, }, u'7': { u']': { None: '\xa3Q', }, }, u'6': { u']': { None: '\xa3P', }, }, u'9': { u']': { None: '\xa3S', }, }, u'8': { u']': { None: '\xa3R', }, }, }, u'2': { u'0': { u']': { None: '\xa3T', }, }, }, }, }, u'\u27e1': { u'\u20dd': { None: '\xa6\x85', }, }, u'\u2460': { u'\uf87f': { None: '\xa5L', }, }, u'\u4ee3': { u'\u20dd': { None: '\xabZ', }, u'\u20de': { None: '\xaaZ', }, }, u'\u5f62': { u'\u20dd': { None: '\xabi', }, u'\u20de': { None: '\xaap', }, }, u'\u65e5': { u'\u20de': { None: '\xadi', u'\uf87c': { None: '\xadw', }, }, }, u'\u2464': { u'\uf87f': { None: '\xa5P', }, }, u'\u2610': { u'\uf87c': { None: '\xa6q', }, u'\uf87f': { None: '\xa6v', }, }, u'\u21e9': { u'\uf875': { None: '\xacq', }, u'\uf879': { None: '\xa8\x91', }, u'\uf878': { None: '\xad\xa8', }, u'\uf87b': { None: '\xa8z', }, u'\uf87a': { None: '\xa8v', }, u'\u20dd': { None: '\xa8^', }, u'\uf87c': { None: '\xac\\', }, u'\u20de': { None: '\xa8Z', }, }, u'\u2468': { u'\uf87f': { None: '\xa5T', }, }, u'\u24eb': { u'\uf878': { None: '\xa4s', }, u'\uf87f': { None: '\xa3_', }, }, u'\uf866': { u'[': { u'1': { u'1': { u']': { None: '\xac\xcc', }, }, u'0': { u']': { None: '\xac\xcb', }, }, u'3': { u']': { None: '\xac\xce', }, }, u'2': { u']': { None: '\xac\xcd', }, }, u'5': { u']': { None: '\xac\xd0', }, }, u'4': { u']': { None: '\xac\xcf', }, }, u'7': { u']': { None: '\xac\xf3', }, }, u'6': { u']': { None: '\xac\xf2', }, }, u'9': { u']': { None: '\xac\xf5', }, }, u'8': { u']': { None: '\xac\xf4', }, }, }, u'2': { u'0': { u']': { None: '\xac\xf6', }, }, }, }, }, u'\uc5ed': { u'\u20de': { u'\uf87a': { None: '\xaax', }, }, }, u'\u2193': { u'\uf870': { None: '\xac\x8c', }, u'\uf873': { None: '\xaca', }, u'\uf872': { None: '\xa8n', }, u'\uf875': { None: '\xa8f', }, u'\uf874': { None: '\xaci', }, u'\uf879': { None: '\xa8V', }, u'\uf878': { None: '\xace', }, u'\uf87b': { None: '\xa8D', }, u'\uf87a': { None: '\xacX', }, u'\uf87c': { None: '\xa8P', }, u'\uf87f': { None: '\xa8b', }, }, u'\u24ef': { u'\uf878': { None: '\xa4w', }, u'\uf87f': { None: '\xa3c', }, }, u'\uc870': { u'\u20dd': { None: '\xabA', }, u'\u20de': { None: '\xaaq', }, }, u'\u24f3': { u'\uf878': { None: '\xa4{', }, u'\uf87f': { None: '\xa3g', }, }, u'\u273f': { u'\uf87a': { None: '\xa6{', }, }, u'\u51f9': { u'\uf87f': { None: '\xa7O', }, }, u'\uc678': { u'\u20dd': { None: '\xabS', u'\uf87a': { None: '\xab\x9f', }, }, }, u'\u96fb': { u'\u20dd': { None: '\xaba', }, }, u'\uc774': { u'\u20dd': { None: '\xac\x96', }, }, u'\uff01': { u'\uf874': { None: '\xa5\xda', }, }, u'\u4e03': { u'\u20de': { None: '\xad[', u'\uf87a': { None: '\xadG', }, }, u'\uf876': { None: '\xa1\x92', }, }, u'\u3007': { u'\uf876': { None: '\xa1\x8b', }, }, u'\u2986': { u'\uf873': { None: '\xa2D', }, u'\uf879': { None: '\xa1T', }, u'\uf878': { None: '\xa2B', }, u'\uf87b': { None: '\xa1f', }, u'\uf87c': { None: '\xa1V', }, u'\uf87f': { None: '\xa1R', }, }, u'\uf80b': { u'\uf87f': { None: '\xa6\x86', }, }, u'\u278a': { u'\uf87f': { None: '\xa4i', }, }, u'\u4e8c': { u'\u20de': { None: '\xadV', u'\uf87a': { None: '\xadB', }, }, u'\uf876': { None: '\xa1\x8d', }, }, u'\u300f': { u'\uf879': { None: '\xad\xa4', }, u'\uf87c': { None: '\xa1H', }, }, u'\u278e': { u'\uf87f': { None: '\xa4m', }, }, u'\uc911': { u'\u20dd': { None: '\xac\x94', }, }, u'\u6e90': { u'\u20de': { None: '\xaag', }, }, u'\u2213': { u'\uf877': { None: '\xa1w', }, }, u'\u2192': { u'\uf870': { None: '\xac\x8a', }, u'\uf872': { None: '\xa8l', }, u'\uf875': { None: '\xa8d', }, u'\uf874': { None: '\xacg', }, u'\uf879': { None: '\xa8T', }, u'\uf878': { None: '\xacc', }, u'\uf87b': { None: '\xa8A', }, u'\uf87a': { None: '\xacV', }, u'\uf87c': { None: '\xa8M', }, }, u'\ub192': { u'\u20dd': { None: '\xaa\x8b', u'\uf87a': { None: '\xab\x98', }, }, }, u'\u4e94': { u'\u20de': { None: '\xadY', u'\uf87a': { None: '\xadE', }, }, u'\uf876': { None: '\xa1\x90', }, }, u'\u3017': { u'\uf878': { None: '\xa2H', }, }, u'\u2196': { u'\uf87b': { None: '\xa8E', }, }, u'\ub098': { u'\u20dd': { None: '\xabv', u'\uf87a': { None: '\xab\x9c', }, }, }, u'\u261f': { u'\uf87f': { None: '\xac\x90', }, }, u'\uf809': { u'\uf87a': { None: '\xa6\x91', }, }, u'\u2191': { u'\uf870': { None: '\xac\x8b', }, u'\uf873': { None: '\xac`', }, u'\uf872': { None: '\xa8m', }, u'\uf875': { None: '\xa8e', }, u'\uf874': { None: '\xach', }, u'\uf879': { None: '\xa8U', }, u'\uf878': { None: '\xacd', }, u'\uf87b': { None: '\xa8C', }, u'\uf87a': { None: '\xacW', }, u'\uf87c': { None: '\xa8O', }, u'\uf87f': { None: '\xa8a', }, }, u'\uf860': { u'\u2021': { u'\u2021': { None: '\xa6E', }, }, u'\u2020': { u'\u2020': { None: '\xa6D', }, }, u'*': { u'*': { None: '\xa6L', }, }, u'A': { u')': { None: '\xa5U', }, u'.': { None: '\xa9A', }, }, u'C': { u')': { None: '\xa5W', }, u'.': { None: '\xa9C', }, }, u'B': { u')': { None: '\xa5V', }, u'.': { None: '\xa9B', }, }, u'E': { u')': { None: '\xa5Y', }, u'.': { None: '\xa9E', }, }, u'D': { u')': { None: '\xa5X', }, u'.': { None: '\xa9D', }, }, u'G': { u')': { None: '\xa5[', }, u'.': { None: '\xa9G', }, }, u'F': { u')': { None: '\xa5Z', }, u'.': { None: '\xa9F', }, }, u'I': { u')': { None: '\xa5]', }, u'.': { None: '\xa9I', }, }, u'H': { u')': { None: '\xa5\\', }, u'.': { None: '\xa9H', }, }, u'K': { u')': { None: '\xa5_', }, u'.': { None: '\xa9K', }, }, u'J': { u')': { None: '\xa5^', }, u'.': { None: '\xa9J', }, }, u'M': { u')': { None: '\xa5a', }, u'.': { None: '\xa9M', }, }, u'L': { u')': { None: '\xa5`', }, u'.': { None: '\xa9L', }, }, u'O': { u')': { None: '\xa5c', }, u'.': { None: '\xa9O', }, }, u'N': { u')': { None: '\xa5b', }, u'.': { None: '\xa9N', }, }, u'Q': { u')': { None: '\xa5e', }, u'.': { None: '\xa9Q', }, }, u'P': { u')': { None: '\xa5d', }, u'.': { None: '\xa9P', }, }, u'S': { u')': { None: '\xa5g', }, u'.': { None: '\xa9S', }, }, u'R': { u')': { None: '\xa5f', }, u'.': { None: '\xa9R', }, }, u'U': { u')': { None: '\xa5i', }, u'.': { None: '\xa9U', }, }, u'T': { u')': { None: '\xa5h', }, u'.': { None: '\xa9T', }, }, u'W': { u')': { None: '\xa5k', }, u'.': { None: '\xa9W', }, }, u'V': { u')': { None: '\xa5j', }, u'.': { None: '\xa9V', }, }, u'Y': { u')': { None: '\xa5m', }, u'.': { None: '\xa9Y', }, }, u'X': { u')': { None: '\xa5l', }, u'.': { None: '\xa9X', }, }, u'Z': { u')': { None: '\xa5n', }, u'.': { None: '\xa9Z', }, }, u'a': { u')': { None: '\xa5o', }, u'.': { None: '\xa9[', }, }, u'c': { u')': { None: '\xa5q', }, u'.': { None: '\xa9]', }, }, u'b': { u')': { None: '\xa5p', }, u'.': { None: '\xa9\\', }, }, u'e': { u')': { None: '\xa5s', }, u'.': { None: '\xa9_', }, }, u'd': { u')': { None: '\xa5r', }, u'.': { None: '\xa9^', }, }, u'g': { u')': { None: '\xa5u', }, u'.': { None: '\xa9a', }, }, u'f': { u')': { None: '\xa5t', }, u'.': { None: '\xa9`', }, }, u'i': { u')': { None: '\xa5w', }, u'.': { None: '\xa9c', }, }, u'h': { u')': { None: '\xa5v', }, u'.': { None: '\xa9b', }, }, u'k': { u')': { None: '\xa5y', }, u'.': { None: '\xa9e', }, }, u'j': { u')': { None: '\xa5x', }, u'.': { None: '\xa9d', }, }, u'm': { u')': { None: '\xa5{', }, u'.': { None: '\xa9g', }, }, u'l': { u')': { None: '\xa5z', }, u'.': { None: '\xa9f', }, }, u'o': { u')': { None: '\xa5}', }, u'.': { None: '\xa9i', }, }, u'n': { u')': { None: '\xa5|', }, u'.': { None: '\xa9h', }, }, u'q': { u')': { None: '\xa5\x82', }, u'.': { None: '\xa9k', }, }, u'p': { u')': { None: '\xa5\x81', }, u'.': { None: '\xa9j', }, }, u's': { u')': { None: '\xa5\x84', }, u'.': { None: '\xa9m', }, }, u'r': { u')': { None: '\xa5\x83', }, u'.': { None: '\xa9l', }, }, u'u': { u')': { None: '\xa5\x86', }, u'.': { None: '\xa9o', }, }, u't': { u')': { None: '\xa5\x85', }, u'.': { None: '\xa9n', }, }, u'w': { u')': { None: '\xa5\x88', }, u'.': { None: '\xa9q', }, }, u'v': { u')': { None: '\xa5\x87', }, u'.': { None: '\xa9p', }, }, u'y': { u')': { None: '\xa5\x8a', }, u'.': { None: '\xa9s', }, }, u'x': { u')': { None: '\xa5\x89', }, u'.': { None: '\xa9r', }, }, u'z': { u')': { None: '\xa5\x8b', }, u'.': { None: '\xa9t', }, }, }, u'\u6c34': { u'\u20de': { None: '\xadl', u'\uf87c': { None: '\xadz', }, }, }, u'\uc0ac': { u'\u20dd': { None: '\xaa\x84', u'\uf87a': { None: '\xab{', }, }, }, u'\u262f': { u'\uf87a': { None: '\xa6\x97', }, u'\uf876': { None: '\xa6\x98', }, }, u'\uc81c': { u'\u20dd': { u'\uf87a': { None: '\xab\x92', }, }, }, u'\u2033': { u'\uf873': { None: '\xad\xac', }, u'\uf87f': { None: '\xa5\xdd', }, }, u'\u25b2': { u'\u20dd': { None: '\xa6k', }, }, u'\u2935': { u'\uf87a': { None: '\xacy', }, u'\uf87c': { None: '\xac\x84', }, }, u'\uc6b4': { u'\u20de': { None: '\xaaA', }, }, u'7': { u'\u20de': { None: '\xa5H', u'\uf875': { None: '\xac\xc8', }, u'\uf87b': { None: '\xa3G', }, u'\uf87a': { None: '\xa4[', }, u'\uf87c': { None: '\xa2\xec', }, u'\uf87f': { None: '\xa4G', }, }, }, u'\u25c8': { u'\uf87f': { None: '\xa6\x89', }, }, u'\u2939': { u'\uf87a': { None: '\xac|', }, u'\uf87c': { None: '\xac\x87', }, u'\uf87f': { None: '\xa8\x84', }, }, u'\u8a3b': { u'\u20de': { None: '\xaaU', u'\uf87a': { None: '\xaav', }, }, }, u'\u261e': { u'\uf87f': { None: '\xa6_', }, }, u'\uc874': { u'\u20dd': { None: '\xaa}', u'\uf87a': { None: '\xab\x93', }, }, }, u'\u5341': { u'\u20de': { None: '\xad^', u'\uf87a': { None: '\xadJ', }, }, u'\uf876': { None: '\xa1\x95', }, }, u'\ud0c0': { u'\u20dd': { None: '\xaa\x89', u'\uf87a': { None: '\xab\x83', }, }, u'\u20de': { None: '\xaaO', }, }, u'\u25c6': { u'\uf879': { None: '\xa7\x8b', }, u'\u20de': { None: '\xa6e', }, }, u'\u570b': { u'\u20dd': { None: '\xabk', }, }, u'\u534d': { u'\uf87f': { None: '\xa6\x92', }, }, u'\u25ce': { u'\u20dd': { None: '\xa6i', }, }, u'\u2190': { u'\uf871': { None: '\xa8i', }, u'\uf870': { None: '\xac\x89', }, u'\uf873': { None: '\xac]', }, u'\uf872': { None: '\xa8k', }, u'\uf875': { None: '\xa8c', }, u'\uf874': { None: '\xacf', }, u'\uf879': { None: '\xa8S', }, u'\uf878': { None: '\xacb', }, u'\uf87b': { None: '\xa8B', }, u'\uf87a': { None: '\xacU', }, u'\uf87c': { None: '\xa8N', }, u'\uf87f': { None: '\xa8_', }, }, u'\uc6d0': { u'\u20dd': { None: '\xabO', }, }, u'\u3253': { u'\uf87a': { None: '\xa6\xfb', }, }, u'\u21d2': { u'\uf87c': { None: '\xa8\x9a', }, }, u'\u3257': { u'\uf87a': { None: '\xa5\xf9', }, }, u'\ube60': { u'\u20dd': { None: '\xabn', u'\uf87a': { None: '\xab\x88', }, }, }, u'\uf83d': { u'\uf87f': { None: '\xa6A', }, }, u'[': { u'\uf87b': { None: '\xa1a', }, u'\uf87c': { None: '\xa1c', }, u'\uf877': { None: '\xa1\x83', }, }, u'\uc18c': { u'\u20dd': { None: '\xac\x93', }, }, u'\u88dc': { u'\u20e4': { None: '\xa7|', }, u'\u20de': { None: '\xaa`', }, }, u'\uc791': { u'\u20dd': { None: '\xabP', }, }, u'\u3251': { u'\uf87a': { None: '\xa6\xf9', }, }, u'\u2463': { u'\uf87f': { None: '\xa5O', }, }, u'\u2964': { u'\uf87f': { None: '\xacD', }, }, u'\uc2e4': { u'\u20dd': { None: '\xabW', }, }, u'\uf867': { u'*': { u'*': { None: '\xa6P', }, }, }, u'\u21e6': { u'\uf870': { None: '\xacG', }, u'\uf875': { None: '\xacn', }, u'\uf874': { None: '\xa8\x97', }, u'\uf879': { None: '\xa8\x8e', }, u'\uf878': { None: '\xad\xa6', }, u'\uf87b': { None: '\xa8w', }, u'\uf87a': { None: '\xa8s', }, u'\u20dd': { None: '\xa8[', }, u'\uf87c': { None: '\xacY', }, u'\uf87f': { None: '\xacO', }, u'\u20de': { None: '\xa8W', }, },... [truncated message content] |
From: Hye-Shik C. <pe...@us...> - 2003-01-10 01:16:34
|
perky 03/01/09 17:16:33 KoreanCodecs/tools - New directory |
From: Hye-Shik C. <pe...@us...> - 2003-01-09 23:41:47
|
perky 03/01/09 15:41:47 Modified: . README.en README.ko Log: Happy 2003! (last!) Revision Changes Path 1.23 +4 -5 KoreanCodecs/README.en Index: README.en =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/README.en,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- README.en 9 Jan 2003 23:38:26 -0000 1.22 +++ README.en 9 Jan 2003 23:41:46 -0000 1.23 @@ -1,9 +1,8 @@ -KoreanCodecs version 2.0.5 -========================== - -Copyright(C) Hye-Shik Chang, 2002. -$Id: README.en,v 1.22 2003/01/09 23:38:26 perky Exp $ +KoreanCodecs version 2.1.0dev +============================= +Copyright(C) 2002-2003 Hye-Shik Chang. +$Id: README.en,v 1.23 2003/01/09 23:41:46 perky Exp $ Introduction 1.21 +2 -2 KoreanCodecs/README.ko Index: README.ko =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/README.ko,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- README.ko 9 Jan 2003 23:38:26 -0000 1.20 +++ README.ko 9 Jan 2003 23:41:46 -0000 1.21 @@ -1,8 +1,8 @@ ÇѱÛÄÚµ¦ ¹öÁ¯ 2.0.5 =================== -Copyright(C) Hye-Shik Chang, 2002. -$Id: README.ko,v 1.20 2003/01/09 23:38:26 perky Exp $ +Copyright(C) 2002-2003 Hye-Shik Chang. +$Id: README.ko,v 1.21 2003/01/09 23:41:46 perky Exp $ *Ä·ÆäÀÎ* ÀÎÅͳݿ¡¼ ÇÑ±Û ¸ÂÃã¹ýÀ» Áöŵ½Ã´Ù. ^-^/~ |
From: Hye-Shik C. <pe...@us...> - 2003-01-09 23:38:27
|
perky 03/01/09 15:38:26 Modified: . README.en README.ko Log: Comment on fixing korean.python.cp949 codec's bug. Revision Changes Path 1.22 +3 -1 KoreanCodecs/README.en Index: README.en =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/README.en,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- README.en 2 Jan 2003 10:40:02 -0000 1.21 +++ README.en 9 Jan 2003 23:38:26 -0000 1.22 @@ -2,7 +2,7 @@ ========================== Copyright(C) Hye-Shik Chang, 2002. -$Id: README.en,v 1.21 2003/01/02 10:40:02 perky Exp $ +$Id: README.en,v 1.22 2003/01/09 23:38:26 perky Exp $ @@ -100,6 +100,8 @@ o Version 2.1.0 - January 2003 - As a result of refactoring wansung encoders, C codec consumes about 1/3 of memory than before. + - Fixed a bug that korean.python.cp949 codec taints korean.python.euc_kr + codec's decoding and encoding mappings on its loading time. o Version 2.0.5 - 24 July 2002 - Add two new characters which is introduced by KSX1001-1998 1.20 +3 -1 KoreanCodecs/README.ko Index: README.ko =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/README.ko,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- README.ko 2 Jan 2003 10:36:32 -0000 1.19 +++ README.ko 9 Jan 2003 23:38:26 -0000 1.20 @@ -2,7 +2,7 @@ =================== Copyright(C) Hye-Shik Chang, 2002. -$Id: README.ko,v 1.19 2003/01/02 10:36:32 perky Exp $ +$Id: README.ko,v 1.20 2003/01/09 23:38:26 perky Exp $ *Ä·ÆäÀÎ* ÀÎÅͳݿ¡¼ ÇÑ±Û ¸ÂÃã¹ýÀ» Áöŵ½Ã´Ù. ^-^/~ @@ -99,6 +99,8 @@ o ¹öÁ¯ 2.1.0 2003³â 1¿ù - ³»ºÎ ¿Ï¼ºÇü ÀÎÄÚ´õÀÇ ÃÖÀûÈ·Î C ÄÚµ¦ÀÇ ¸Þ¸ð¸® ¼Òºñ°¡ 1/3 Á¤µµ·Î ÁÙ¾î µé¾ú½À´Ï´Ù. + - korean.python.cp949 ÄÚµ¦ÀÌ ·ÎµåµÇ¸é¼ korean.python.euc_kr ÀÇ ¸ÅÇο¡ + cp949¸¦ Ãß°¡Çعö¸®´Â ¹ö±×°¡ ¼öÁ¤µÇ¾ú½À´Ï´Ù. o ¹öÁ¯ 2.0.5 2002³â 7¿ù 24ÀÏ - KSX1001-1998¿¡ Ãß°¡µÈ À¯·ÎÈ Ç¥±â¿Í µî·Ï»óÇ¥ ¸¶Å©¸¦ Ãß°¡ÇÏ¿´½À´Ï´Ù. |
From: Hye-Shik C. <pe...@us...> - 2003-01-09 23:37:46
|
perky 03/01/09 15:37:46 Modified: . setup.py Log: Happy 2003! Revision Changes Path 1.31 +2 -2 KoreanCodecs/setup.py Index: setup.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/setup.py,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- setup.py 2 Jan 2003 10:36:32 -0000 1.30 +++ setup.py 9 Jan 2003 23:37:46 -0000 1.31 @@ -2,7 +2,7 @@ # # This file is part of KoreanCodecs. # -# Copyright(C) Hye-Shik Chang <pe...@Fr...>, 2002. +# Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published @@ -18,7 +18,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: setup.py,v 1.30 2003/01/02 10:36:32 perky Exp $ +# $Id: setup.py,v 1.31 2003/01/09 23:37:46 perky Exp $ # import sys |
From: Hye-Shik C. <pe...@us...> - 2003-01-09 23:37:09
|
perky 03/01/09 15:37:08 Modified: korean/python cp949.py euc_kr.py Log: Don't taint euc_kr codec's {enc,dec}map when cp949 codec is loading. Revision Changes Path 1.6 +17 -6 KoreanCodecs/korean/python/cp949.py Index: cp949.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/python/cp949.py,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- cp949.py 9 Jan 2003 21:35:49 -0000 1.5 +++ cp949.py 9 Jan 2003 23:37:08 -0000 1.6 @@ -17,12 +17,23 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: cp949.py,v 1.5 2003/01/09 21:35:49 perky Exp $ +# $Id: cp949.py,v 1.6 2003/01/09 23:37:08 perky Exp $ # -from korean.python.euc_kr import * - +from korean.python import euc_kr from korean.mappings import uhc -encmap_hangul.update(uhc.encoding_map) -decmap_hangul.update(uhc.decoding_map) -del uhc + +class Codec(euc_kr.Codec): + uhc_encmap = uhc.encoding_map + uhc_decmap = uhc.decoding_map + +class StreamWriter(Codec, euc_kr.StreamWriter): + pass + +class StreamReader(Codec, euc_kr.StreamReader): + pass + +def getregentry(): + return (Codec().encode,Codec().decode,StreamReader,StreamWriter) + +# ex: ts=8 sts=4 et 1.10 +11 -1 KoreanCodecs/korean/python/euc_kr.py Index: euc_kr.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/python/euc_kr.py,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- euc_kr.py 9 Jan 2003 21:35:49 -0000 1.9 +++ euc_kr.py 9 Jan 2003 23:37:08 -0000 1.10 @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: euc_kr.py,v 1.9 2003/01/09 21:35:49 perky Exp $ +# $Id: euc_kr.py,v 1.10 2003/01/09 23:37:08 perky Exp $ # import codecs @@ -29,6 +29,9 @@ class Codec(codecs.Codec): + uhc_encmap = {} # only for cp949 codec + uhc_decmap = {} + # Unicode to character buffer def encode(self, data, errors='strict'): global encmap_ideo, encmap_misc @@ -42,6 +45,8 @@ buffer.append(c.encode("ascii", errors)) elif encmap_hangul.has_key(c): buffer.append(encmap_hangul[c]) + elif self.uhc_encmap.has_key(c): + buffer.append(self.uhc_encmap[c]) else: if not encmap_misc: from korean.mappings import ksc5601_misc @@ -86,6 +91,9 @@ if decmap_hangul.has_key(c): buffer.append(decmap_hangul[c]) continue + elif self.uhc_decmap.has_key(c): + buffer.append(self.uhc_decmap[c]) + continue if not decmap_misc: from korean.mappings import ksc5601_misc @@ -166,3 +174,5 @@ def getregentry(): return (Codec().encode,Codec().decode,StreamReader,StreamWriter) + +# ex: ts=8 sts=4 et |
From: Hye-Shik C. <pe...@us...> - 2003-01-09 23:23:32
|
perky 03/01/09 15:23:31 Modified: test test_euc_kr.py Log: Test whether euc_kr codec raise UnicodeError on cp949 character. Revision Changes Path 1.8 +2 -1 KoreanCodecs/test/test_euc_kr.py Index: test_euc_kr.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/test/test_euc_kr.py,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- test_euc_kr.py 9 Jan 2003 21:41:37 -0000 1.7 +++ test_euc_kr.py 9 Jan 2003 23:23:31 -0000 1.8 @@ -16,7 +16,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: test_euc_kr.py,v 1.7 2003/01/09 21:41:37 perky Exp $ +# $Id: test_euc_kr.py,v 1.8 2003/01/09 23:23:31 perky Exp $ # import CodecTestBase @@ -32,6 +32,7 @@ ("abc\x80\x80\xc1\xc4", "replace", u"abc\ufffd\uc894"), ("abc\x80\x80\xc1\xc4\xc8", "replace", u"abc\ufffd\uc894\ufffd"), ("abc\x80\x80\xc1\xc4", "ignore", u"abc\uc894"), + ("\xc1\x64", "strict", None), # cp949 code H-AE-H ) def test_ksx1001_1998(self): |
From: Hye-Shik C. <pe...@us...> - 2003-01-09 22:40:44
|
perky 03/01/09 14:40:40 Modified: korean aliases.py Added: korean mackorean.py Log: Add MacKorean alias. Revision Changes Path 1.9 +3 -1 KoreanCodecs/korean/aliases.py Index: aliases.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/aliases.py,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- aliases.py 9 Jan 2003 21:35:48 -0000 1.8 +++ aliases.py 9 Jan 2003 22:40:39 -0000 1.9 @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: aliases.py,v 1.8 2003/01/09 21:35:48 perky Exp $ +# $Id: aliases.py,v 1.9 2003/01/09 22:40:39 perky Exp $ # import encodings.aliases @@ -41,4 +41,6 @@ 'qwerty2bul': 'korean.qwerty2bul', 'unijohab': 'korean.unijohab', 'macjohab': 'korean.unijohab', + 'mackorean': 'korean.mackorean', + 'macwansung': 'korean.macwansung', }) 1.1 KoreanCodecs/korean/mackorean.py Index: mackorean.py =================================================================== # # This file is part of KoreanCodecs. # # Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # KoreanCodecs is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # $Id: mackorean.py,v 1.1 2003/01/09 22:40:39 perky Exp $ # try: from korean.c.mackorean import * except ImportError: from korean.python.mackorean import * |
From: Hye-Shik C. <pe...@us...> - 2003-01-09 22:07:25
|
perky 03/01/09 14:07:24 Modified: test test_cp949.py Log: Add mapping test for cp949 Revision Changes Path 1.7 +22 -1 KoreanCodecs/test/test_cp949.py Index: test_cp949.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/test/test_cp949.py,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- test_cp949.py 9 Jan 2003 21:41:37 -0000 1.6 +++ test_cp949.py 9 Jan 2003 22:07:23 -0000 1.7 @@ -16,7 +16,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: test_cp949.py,v 1.6 2003/01/09 21:41:37 perky Exp $ +# $Id: test_cp949.py,v 1.7 2003/01/09 22:07:23 perky Exp $ # import CodecTestBase @@ -33,6 +33,27 @@ ("abc\x80\x80\xc1\xc4\xc8", "replace", u"abc\ufffd\uc894\ufffd"), ("abc\x80\x80\xc1\xc4", "ignore", u"abc\uc894"), ) + + def test_mapping(self): + for line in open('mappings/cp949.txt'): + if not line: + break + data = line.split('#')[0].strip().split() + if len(data) != 2: + continue + + cp949val, unival = map(eval, data) + + if cp949val <= 0x7F: + cp949ch = chr(cp949val & 0xff) + elif cp949val >= 0x100: + cp949ch = chr(cp949val >> 8) + chr(cp949val & 0xff) + else: + continue + unich = unichr(unival) + + self.assertEqual(unich.encode('cp949'), cp949ch) + self.assertEqual(unicode(cp949ch, 'cp949'), unich) class TestCP949_CExtension(Shield.TestCP949Base): encoding = 'korean.c.cp949' |
From: Hye-Shik C. <pe...@us...> - 2003-01-09 21:42:04
|
perky 03/01/09 13:42:03 KoreanCodecs/test/mappings - New directory |
From: Hye-Shik C. <pe...@us...> - 2003-01-09 21:41:39
|
perky 03/01/09 13:41:38 Added: test/texts cp949 cp949.utf-8 euc-kr euc-kr.utf-8 iso-2022-kr.roundrobin iso-2022-kr.stream iso-2022-kr.utf-8 johab johab.utf-8 qwerty2bul qwerty2bul.utf-8 unijohab unijohab.utf-8 Log: Move text.* to texts/ subdir Revision Changes Path 1.1 KoreanCodecs/test/texts/cp949 <<Binary file>> 1.1 KoreanCodecs/test/texts/cp949.utf-8 <<Binary file>> 1.1 KoreanCodecs/test/texts/euc-kr <<Binary file>> 1.1 KoreanCodecs/test/texts/euc-kr.utf-8 <<Binary file>> 1.1 KoreanCodecs/test/texts/iso-2022-kr.roundrobin Index: iso-2022-kr.roundrobin =================================================================== $)C0m044T@G Ek@e@87N ?lA$@L <[1]5G>z=@4O4Y. $)C1]>W@: 9+GQ@L0m 4kCb@O@: >pA&3* @T4O4Y. *^^* $)C&354C (>$?7g5N (8$F$i(>$?7g (9$S(2$@(7$D?d ^$Q^*&5 1.1 KoreanCodecs/test/texts/iso-2022-kr.stream Index: iso-2022-kr.stream =================================================================== $)C0m044T@G Ek@e@87N ?lA$@L <[1]5G>z=@4O4Y. 1]>W@: 9+GQ@L0m 4kCb@O@: >pA&3* @T4O4Y. *^^* &354C (>$?7g5N (8$F$i(>$?7g (9$S(2$@(7$D?d ^$Q^*&5 1.1 KoreanCodecs/test/texts/iso-2022-kr.utf-8 <<Binary file>> 1.1 KoreanCodecs/test/texts/johab <<Binary file>> 1.1 KoreanCodecs/test/texts/johab.utf-8 <<Binary file>> 1.1 KoreanCodecs/test/texts/qwerty2bul Index: qwerty2bul =================================================================== dkakeh 90%dml eoektn vkdlTjs dldydwkemfdprpsms rmekwl dmlaldlTsms rjtemfdl dkslf emt gkqslek. guswosms wnfh ajemsk, tlabffpdltus rkxdl ekdidgks dhqmwprxmemfdml zjsxjfjstlrk vlfdygks ruddndp tkdydehlrh dlTtmqslek. 1.1 KoreanCodecs/test/texts/qwerty2bul.utf-8 <<Binary file>> 1.1 KoreanCodecs/test/texts/unijohab <<Binary file>> 1.1 KoreanCodecs/test/texts/unijohab.utf-8 <<Binary file>> |
From: Hye-Shik C. <pe...@us...> - 2003-01-09 21:41:39
|
perky 03/01/09 13:41:37 Modified: test CodecTestBase.py test_cp949.py test_euc_kr.py test_iso_2022_kr.py Removed: test text.cp949 text.cp949.utf-8 text.euc-kr text.euc-kr.utf-8 text.iso-2022-kr.roundrobin text.iso-2022-kr.stream text.iso-2022-kr.utf-8 text.johab text.johab.utf-8 text.qwerty2bul text.qwerty2bul.utf-8 text.unijohab text.unijohab.utf-8 Log: Move text.* to texts/ subdir Revision Changes Path 1.8 +3 -3 KoreanCodecs/test/CodecTestBase.py Index: CodecTestBase.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/test/CodecTestBase.py,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- CodecTestBase.py 9 Jan 2003 21:31:44 -0000 1.7 +++ CodecTestBase.py 9 Jan 2003 21:41:37 -0000 1.8 @@ -16,7 +16,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: CodecTestBase.py,v 1.7 2003/01/09 21:31:44 perky Exp $ +# $Id: CodecTestBase.py,v 1.8 2003/01/09 21:41:37 perky Exp $ # import StringIO @@ -45,8 +45,8 @@ def setUp(self): if not self.textfile_chunk: - self.textfile_chunk = ('text.' + self.encoding, - 'text.%s.utf-8' % self.encoding) or self.textfile_stream + self.textfile_chunk = ('texts/' + self.encoding, + 'texts/%s.utf-8' % self.encoding) or self.textfile_stream if not self.textfile_stream: self.textfile_stream = self.textfile_chunk # checked above. :) 1.6 +2 -2 KoreanCodecs/test/test_cp949.py Index: test_cp949.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/test/test_cp949.py,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- test_cp949.py 9 Jan 2003 21:31:44 -0000 1.5 +++ test_cp949.py 9 Jan 2003 21:41:37 -0000 1.6 @@ -16,7 +16,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: test_cp949.py,v 1.5 2003/01/09 21:31:44 perky Exp $ +# $Id: test_cp949.py,v 1.6 2003/01/09 21:41:37 perky Exp $ # import CodecTestBase @@ -24,7 +24,7 @@ class Shield: class TestCP949Base(CodecTestBase.TestStreamReader, CodecTestBase.CodecTestBase): encoding = 'cp949' - textfile_chunk = ('text.cp949', 'text.cp949.utf-8') + textfile_chunk = ('texts/cp949', 'texts/cp949.utf-8') errortests = ( # invalid bytes ("abc\x80\x80\xc1\xc4", "strict", None), 1.7 +2 -2 KoreanCodecs/test/test_euc_kr.py Index: test_euc_kr.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/test/test_euc_kr.py,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- test_euc_kr.py 9 Jan 2003 21:31:44 -0000 1.6 +++ test_euc_kr.py 9 Jan 2003 21:41:37 -0000 1.7 @@ -16,7 +16,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: test_euc_kr.py,v 1.6 2003/01/09 21:31:44 perky Exp $ +# $Id: test_euc_kr.py,v 1.7 2003/01/09 21:41:37 perky Exp $ # import CodecTestBase @@ -24,7 +24,7 @@ class Shield: class TestEUCKR_Base(CodecTestBase.TestStreamReader, CodecTestBase.CodecTestBase): encoding = 'euc-kr' - textfile_chunk = ('text.euc-kr', 'text.euc-kr.utf-8') + textfile_chunk = ('texts/euc-kr', 'texts/euc-kr.utf-8') errortests = ( # invalid bytes ("abc\x80\x80\xc1\xc4", "strict", None), 1.5 +3 -3 KoreanCodecs/test/test_iso_2022_kr.py Index: test_iso_2022_kr.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/test/test_iso_2022_kr.py,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- test_iso_2022_kr.py 9 Jan 2003 21:31:44 -0000 1.4 +++ test_iso_2022_kr.py 9 Jan 2003 21:41:37 -0000 1.5 @@ -16,15 +16,15 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: test_iso_2022_kr.py,v 1.4 2003/01/09 21:31:44 perky Exp $ +# $Id: test_iso_2022_kr.py,v 1.5 2003/01/09 21:41:37 perky Exp $ # import CodecTestBase class TestISO_2022_KR(CodecTestBase.CodecTestBase): encoding = 'iso-2022-kr' - textfile_chunk = ('text.%s.roundrobin' % encoding, 'text.%s.utf-8' % encoding) - textfile_stream = ('text.%s.stream' % encoding, 'text.%s.utf-8' % encoding) + textfile_chunk = ('texts/%s.roundrobin' % encoding, 'texts/%s.utf-8' % encoding) + textfile_stream = ('texts/%s.stream' % encoding, 'texts/%s.utf-8' % encoding) errortests = ( # invalid bytes |
From: Hye-Shik C. <pe...@us...> - 2003-01-09 21:37:45
|
perky 03/01/09 13:37:44 KoreanCodecs/test/texts - New directory |
From: Hye-Shik C. <pe...@us...> - 2003-01-09 21:37:09
|
perky 03/01/09 13:37:08 Removed: doc benchmarks.txt Log: Benchmark is not fun anymore for me. hehe ;) |
From: Hye-Shik C. <pe...@us...> - 2003-01-09 21:35:50
|
perky 03/01/09 13:35:49 Modified: korean/python __init__.py cp949.py euc_kr.py hangul.py iso_2022_kr.py johab.py qwerty2bul.py unijohab.py Log: Happy 2003! Revision Changes Path 1.4 +2 -2 KoreanCodecs/korean/python/__init__.py Index: __init__.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/python/__init__.py,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- __init__.py 19 Jul 2002 00:01:53 -0000 1.3 +++ __init__.py 9 Jan 2003 21:35:49 -0000 1.4 @@ -1,7 +1,7 @@ # # This file is part of KoreanCodecs. # -# Copyright(C) Hye-Shik Chang <pe...@Fr...>, 2002. +# Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published @@ -17,5 +17,5 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: __init__.py,v 1.3 2002/07/19 00:01:53 perky Exp $ +# $Id: __init__.py,v 1.4 2003/01/09 21:35:49 perky Exp $ # 1.5 +2 -2 KoreanCodecs/korean/python/cp949.py Index: cp949.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/python/cp949.py,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- cp949.py 19 Jul 2002 00:01:53 -0000 1.4 +++ cp949.py 9 Jan 2003 21:35:49 -0000 1.5 @@ -1,7 +1,7 @@ # # This file is part of KoreanCodecs. # -# Copyright(C) Hye-Shik Chang <pe...@Fr...>, 2002. +# Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: cp949.py,v 1.4 2002/07/19 00:01:53 perky Exp $ +# $Id: cp949.py,v 1.5 2003/01/09 21:35:49 perky Exp $ # from korean.python.euc_kr import * 1.9 +2 -2 KoreanCodecs/korean/python/euc_kr.py Index: euc_kr.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/python/euc_kr.py,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- euc_kr.py 19 Jul 2002 00:01:53 -0000 1.8 +++ euc_kr.py 9 Jan 2003 21:35:49 -0000 1.9 @@ -1,7 +1,7 @@ # # This file is part of KoreanCodecs. # -# Copyright(C) Hye-Shik Chang <pe...@Fr...>, 2002. +# Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: euc_kr.py,v 1.8 2002/07/19 00:01:53 perky Exp $ +# $Id: euc_kr.py,v 1.9 2003/01/09 21:35:49 perky Exp $ # import codecs 1.15 +2 -2 KoreanCodecs/korean/python/hangul.py Index: hangul.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/python/hangul.py,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- hangul.py 19 Jul 2002 00:01:53 -0000 1.14 +++ hangul.py 9 Jan 2003 21:35:49 -0000 1.15 @@ -1,7 +1,7 @@ # # This file is part of KoreanCodecs. # -# Copyright(C) Hye-Shik Chang <pe...@Fr...>, 2002. +# Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: hangul.py,v 1.14 2002/07/19 00:01:53 perky Exp $ +# $Id: hangul.py,v 1.15 2003/01/09 21:35:49 perky Exp $ # class UnicodeHangulError(Exception): 1.12 +2 -2 KoreanCodecs/korean/python/iso_2022_kr.py Index: iso_2022_kr.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/python/iso_2022_kr.py,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- iso_2022_kr.py 19 Jul 2002 00:01:53 -0000 1.11 +++ iso_2022_kr.py 9 Jan 2003 21:35:49 -0000 1.12 @@ -1,7 +1,7 @@ # # This file is part of KoreanCodecs. # -# Copyright(C) Hye-Shik Chang <pe...@Fr...>, 2002. +# Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: iso_2022_kr.py,v 1.11 2002/07/19 00:01:53 perky Exp $ +# $Id: iso_2022_kr.py,v 1.12 2003/01/09 21:35:49 perky Exp $ # import codecs 1.10 +2 -2 KoreanCodecs/korean/python/johab.py Index: johab.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/python/johab.py,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- johab.py 19 Jul 2002 00:01:53 -0000 1.9 +++ johab.py 9 Jan 2003 21:35:49 -0000 1.10 @@ -1,7 +1,7 @@ # # This file is part of KoreanCodecs. # -# Copyright(C) Hye-Shik Chang <pe...@Fr...>, 2002. +# Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: johab.py,v 1.9 2002/07/19 00:01:53 perky Exp $ +# $Id: johab.py,v 1.10 2003/01/09 21:35:49 perky Exp $ # import codecs 1.10 +2 -2 KoreanCodecs/korean/python/qwerty2bul.py Index: qwerty2bul.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/python/qwerty2bul.py,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- qwerty2bul.py 19 Jul 2002 00:01:53 -0000 1.9 +++ qwerty2bul.py 9 Jan 2003 21:35:49 -0000 1.10 @@ -1,7 +1,7 @@ # # This file is part of KoreanCodecs. # -# Copyright(C) Hye-Shik Chang <pe...@Fr...>, 2002. +# Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: qwerty2bul.py,v 1.9 2002/07/19 00:01:53 perky Exp $ +# $Id: qwerty2bul.py,v 1.10 2003/01/09 21:35:49 perky Exp $ # import codecs 1.9 +2 -2 KoreanCodecs/korean/python/unijohab.py Index: unijohab.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/python/unijohab.py,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- unijohab.py 19 Jul 2002 00:01:53 -0000 1.8 +++ unijohab.py 9 Jan 2003 21:35:49 -0000 1.9 @@ -1,7 +1,7 @@ # # This file is part of KoreanCodecs. # -# Copyright(C) Hye-Shik Chang <pe...@Fr...>, 2002. +# Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: unijohab.py,v 1.8 2002/07/19 00:01:53 perky Exp $ +# $Id: unijohab.py,v 1.9 2003/01/09 21:35:49 perky Exp $ # import codecs |
From: Hye-Shik C. <pe...@us...> - 2003-01-09 21:35:49
|
perky 03/01/09 13:35:49 Modified: korean/mappings __init__.py johab_ideograph.py ksc5601_hangul.py ksc5601_ideograph.py ksc5601_misc.py uhc.py Log: Happy 2003! Revision Changes Path 1.4 +2 -2 KoreanCodecs/korean/mappings/__init__.py Index: __init__.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/mappings/__init__.py,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- __init__.py 19 Jul 2002 00:01:52 -0000 1.3 +++ __init__.py 9 Jan 2003 21:35:49 -0000 1.4 @@ -1,7 +1,7 @@ # # This file is part of KoreanCodecs. # -# Copyright(C) Hye-Shik Chang <pe...@Fr...>, 2002. +# Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published @@ -17,5 +17,5 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: __init__.py,v 1.3 2002/07/19 00:01:52 perky Exp $ +# $Id: __init__.py,v 1.4 2003/01/09 21:35:49 perky Exp $ # 1.4 +2 -2 KoreanCodecs/korean/mappings/johab_ideograph.py Index: johab_ideograph.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/mappings/johab_ideograph.py,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- johab_ideograph.py 19 Jul 2002 00:01:52 -0000 1.3 +++ johab_ideograph.py 9 Jan 2003 21:35:49 -0000 1.4 @@ -1,7 +1,7 @@ # # This file is part of KoreanCodecs. # -# Copyright(C) Hye-Shik Chang <pe...@Fr...>, 2002. +# Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: johab_ideograph.py,v 1.3 2002/07/19 00:01:52 perky Exp $ +# $Id: johab_ideograph.py,v 1.4 2003/01/09 21:35:49 perky Exp $ # decoding_map = { 1.4 +2 -2 KoreanCodecs/korean/mappings/ksc5601_hangul.py Index: ksc5601_hangul.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/mappings/ksc5601_hangul.py,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- ksc5601_hangul.py 19 Jul 2002 00:01:52 -0000 1.3 +++ ksc5601_hangul.py 9 Jan 2003 21:35:49 -0000 1.4 @@ -1,7 +1,7 @@ # # This file is part of KoreanCodecs. # -# Copyright(C) Hye-Shik Chang <pe...@Fr...>, 2002. +# Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: ksc5601_hangul.py,v 1.3 2002/07/19 00:01:52 perky Exp $ +# $Id: ksc5601_hangul.py,v 1.4 2003/01/09 21:35:49 perky Exp $ # decoding_map = { 1.4 +2 -2 KoreanCodecs/korean/mappings/ksc5601_ideograph.py Index: ksc5601_ideograph.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/mappings/ksc5601_ideograph.py,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- ksc5601_ideograph.py 19 Jul 2002 00:01:53 -0000 1.3 +++ ksc5601_ideograph.py 9 Jan 2003 21:35:49 -0000 1.4 @@ -1,7 +1,7 @@ # # This file is part of KoreanCodecs. # -# Copyright(C) Hye-Shik Chang <pe...@Fr...>, 2002. +# Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: ksc5601_ideograph.py,v 1.3 2002/07/19 00:01:53 perky Exp $ +# $Id: ksc5601_ideograph.py,v 1.4 2003/01/09 21:35:49 perky Exp $ # decoding_map = { 1.5 +2 -2 KoreanCodecs/korean/mappings/ksc5601_misc.py Index: ksc5601_misc.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/mappings/ksc5601_misc.py,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- ksc5601_misc.py 23 Jul 2002 18:00:16 -0000 1.4 +++ ksc5601_misc.py 9 Jan 2003 21:35:49 -0000 1.5 @@ -1,7 +1,7 @@ # # This file is part of KoreanCodecs. # -# Copyright(C) Hye-Shik Chang <pe...@Fr...>, 2002. +# Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: ksc5601_misc.py,v 1.4 2002/07/23 18:00:16 perky Exp $ +# $Id: ksc5601_misc.py,v 1.5 2003/01/09 21:35:49 perky Exp $ # decoding_map = { 1.4 +2 -2 KoreanCodecs/korean/mappings/uhc.py Index: uhc.py =================================================================== RCS file: /cvsroot/koco/KoreanCodecs/korean/mappings/uhc.py,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- uhc.py 19 Jul 2002 00:01:53 -0000 1.3 +++ uhc.py 9 Jan 2003 21:35:49 -0000 1.4 @@ -1,7 +1,7 @@ # # This file is part of KoreanCodecs. # -# Copyright(C) Hye-Shik Chang <pe...@Fr...>, 2002. +# Copyright(C) 2002-2003 Hye-Shik Chang <pe...@Fr...>. # # KoreanCodecs is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published @@ -17,7 +17,7 @@ # along with KoreanCodecs; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: uhc.py,v 1.3 2002/07/19 00:01:53 perky Exp $ +# $Id: uhc.py,v 1.4 2003/01/09 21:35:49 perky Exp $ # decoding_map = { |