
    Zi4              	          S r SrSSKr0 SS_SS_SS	_S
S_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_S S!_S"S#_S$S%_0 S&S'_S(S)_S*S+_S,S-_S.S/_S0S1_S2S3_S4S5_S6S7_S8S9_S:S;_S<S=_S>S?_S@SA_SBSC_SDSE_SFSG_E0 SHSI_SJSK_SLSM_SNSO_SPSQ_SRSS_STSU_SVSW_SXSY_SZS[_S\S]_S^S__S`Sa_SbSc_SdSe_SfSg_ShSi_E0 SjSk_SlSm_SnSo_SpSq_SrSs_StSu_SvSw_SxSy_SzS{_S|S}_S~S_SS_SS_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_GS GS_GSGS_GSGS_GSGS_GSGS	_GS
GS_GSGS_GSGS_GSGS_GSGS_E0 GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GS GS!_GS"GS#_GS$GS%_GS&GS'_GS(GS)_GS*GS+_GS,GS-_GS.GS/_GS0GS1_GS2GS3_Er0 SGS4_S
GS5_SGS5_SGS5_S0GS6_S@GS7_SDGS8_SVGS9_SXGS:_SnGS;_SpGS<_SrGS=_StGS>_SvGS?_SxGS@_SzGSA_S|GSB_0 S~GSC_SGSD_SGSE_SGSF_SGSG_SGSH_SGSI_SGS>_SGS7_SGSJ_SGSK_SGSL_SGSM_SGSN_SGSO_SGSP_SGSQ_EGSRGSSGSTGSUGSPGSVGSWGSX.ErGSY rGSZ r\GS[:X  a6  \" \R                  5       5       H  r
\" GS\\
\" \
5      \\
   4-  5        M     gg(]  at  
codepages.py

codepages is a python module to map code pages (numbers) to Python codecs,
in order to decode bytes to unicode.
It also provides the name/description of code pages.

Author: Philippe Lagadec - http://www.decalage.info
License: BSD, see source code or documentation

codepages is part of the python-oletools package:
http://www.decalage.info/python/oletools
z0.54    N%   zIBM EBCDIC US-Canadai  zOEM United Statesi  zIBM EBCDIC Internationali  zArabic (ASMO 708)i  zArabic (ASMO-449+, BCON V4)i  zArabic - Transparent Arabici  z'Arabic (Transparent ASMO); Arabic (DOS)i  z&OEM Greek (formerly 437G); Greek (DOS)i  zOEM Baltic; Baltic (DOS)iR  z0OEM Multilingual Latin 1; Western European (DOS)iT  z#OEM Latin 2; Central European (DOS)iW  z OEM Cyrillic (primarily Russian)iY  zOEM Turkish; Turkish (DOS)iZ  z&OEM Multilingual Latin 1 + Euro symboli\  z OEM Portuguese; Portuguese (DOS)i]  zOEM Icelandic; Icelandic (DOS)i^  zOEM Hebrew; Hebrew (DOS)i_  z*OEM French Canadian; French Canadian (DOS)i`  zOEM Arabic; Arabic (864)ia  zOEM Nordic; Nordic (DOS)ib  zOEM Russian; Cyrillic (DOS)ie  z%OEM Modern Greek; Greek, Modern (DOS)if  zHIBM EBCDIC Multilingual/ROECE (Latin 2); IBM EBCDIC Multilingual Latin 2ij  z+ANSI/OEM Thai (ISO 8859-11); Thai (Windows)ik  zIBM EBCDIC Greek Moderni  z'ANSI/OEM Japanese; Japanese (Shift-JIS)i  zIANSI/OEM Simplified Chinese (PRC, Singapore); Chinese Simplified (GB2312)i  z%ANSI/OEM Korean (Unified Hangul Code)i  zUANSI/OEM Traditional Chinese (Taiwan; Hong Kong SAR, PRC); Chinese Traditional (Big5)i  zIBM EBCDIC Turkish (Latin 5)i  zIBM EBCDIC Latin 1/Open Systemit  zEIBM EBCDIC US-Canada (037 + Euro symbol); IBM EBCDIC (US-Canada-Euro)iu  zCIBM EBCDIC Germany (20273 + Euro symbol); IBM EBCDIC (Germany-Euro)iv  zQIBM EBCDIC Denmark-Norway (20277 + Euro symbol); IBM EBCDIC (Denmark-Norway-Euro)iw  zQIBM EBCDIC Finland-Sweden (20278 + Euro symbol); IBM EBCDIC (Finland-Sweden-Euro)ix  z?IBM EBCDIC Italy (20280 + Euro symbol); IBM EBCDIC (Italy-Euro)iy  zMIBM EBCDIC Latin America-Spain (20284 + Euro symbol); IBM EBCDIC (Spain-Euro)iz  zEIBM EBCDIC United Kingdom (20285 + Euro symbol); IBM EBCDIC (UK-Euro)i{  zAIBM EBCDIC France (20297 + Euro symbol); IBM EBCDIC (France-Euro)i|  zMIBM EBCDIC International (500 + Euro symbol); IBM EBCDIC (International-Euro)i}  zGIBM EBCDIC Icelandic (20871 + Euro symbol); IBM EBCDIC (Icelandic-Euro)i  zcUnicode UTF-16, little endian byte order (BMP of ISO 10646); available only to managed applicationsi  zMUnicode UTF-16, big endian byte order; available only to managed applicationsi  z1ANSI Central European; Central European (Windows)i  z!ANSI Cyrillic; Cyrillic (Windows)i  z(ANSI Latin 1; Western European (Windows)i  zANSI Greek; Greek (Windows)i  zANSI Turkish; Turkish (Windows)i  zANSI Hebrew; Hebrew (Windows)i  zANSI Arabic; Arabic (Windows)i  zANSI Baltic; Baltic (Windows)i  z)ANSI/OEM Vietnamese; Vietnamese (Windows)iQ  zKorean (Johab)i'  z!MAC Roman; Western European (Mac)i'  zJapanese (Mac)i'  z9MAC Traditional Chinese (Big5); Chinese Traditional (Mac)i'  zKorean (Mac)i'  zArabic (Mac)i'  zHebrew (Mac)i'  zGreek (Mac)i'  zCyrillic (Mac)i'  z:MAC Simplified Chinese (GB 2312); Chinese Simplified (Mac)i'  zRomanian (Mac)i!'  zUkrainian (Mac)i%'  z
Thai (Mac)i-'  z#MAC Latin 2; Central European (Mac)i_'  zIcelandic (Mac)ia'  zTurkish (Mac)ib'  zCroatian (Mac)i.  zPUnicode UTF-32, little endian byte order; available only to managed applicationsi.  zMUnicode UTF-32, big endian byte order; available only to managed applicationsi N  z%CNS Taiwan; Chinese Traditional (CNS)i!N  z
TCA Taiwani"N  z'Eten Taiwan; Chinese Traditional (Eten)i#N  zIBM5550 Taiwani$N  zTeleText Taiwani%N  zWang TaiwaniN  zEIA5 (IRV International Alphabet No. 5, 7-bit); Western European (IA5)iN  zIA5 German (7-bit)iN  zIA5 Swedish (7-bit)iN  zIA5 Norwegian (7-bit)iN  zUS-ASCII (7-bit)i%O  zT.61i-O  zISO 6937 Non-Spacing Accenti1O  zIBM EBCDIC Germanyi5O  zIBM EBCDIC Denmark-Norwayi6O  zIBM EBCDIC Finland-Swedeni8O  zIBM EBCDIC Italyi<O  zIBM EBCDIC Latin America-Spaini=O  zIBM EBCDIC United KingdomiBO  z%IBM EBCDIC Japanese Katakana ExtendediIO  zIBM EBCDIC FranceiO  zIBM EBCDIC ArabiciO  zIBM EBCDIC GreekiO  zIBM EBCDIC HebrewiaQ  zIBM EBCDIC Korean ExtendedifQ  zIBM EBCDIC ThaiiQ  z#Russian (KOI8-R); Cyrillic (KOI8-R)iQ  zIBM EBCDIC IcelandiciQ  zIBM EBCDIC Cyrillic RussianiQ  zIBM EBCDIC TurkishiQ  z3IBM EBCDIC Latin 1/Open System (1047 + Euro symbol)iQ  z&Japanese (JIS 0208-1990 and 0212-1990)iQ  z;Simplified Chinese (GB2312); Chinese Simplified (GB2312-80)iQ  zKorean Wansungi!R  z%IBM EBCDIC Cyrillic Serbian-Bulgariani#R  z(deprecated)ijU  z%Ukrainian (KOI8-U); Cyrillic (KOI8-U)io  z*ISO 8859-1 Latin 1; Western European (ISO)io  z3ISO 8859-2 Central European; Central European (ISO)io  zISO 8859-3 Latin 3io  zISO 8859-4 Balticio  zISO 8859-5 Cyrillicio  zISO 8859-6 Arabicio  zISO 8859-7 Greekio  z&ISO 8859-8 Hebrew; Hebrew (ISO-Visual)io  zISO 8859-9 Turkisho  zISO 8859-13 Estoniano  zISO 8859-15 Latin 9iIq  zEuropa 3Ɩ  z'ISO 8859-8 Hebrew; Hebrew (ISO-Logical)i,  z<ISO 2022 Japanese with no halfwidth Katakana; Japanese (JIS)i-  zKISO 2022 Japanese with halfwidth Katakana; Japanese (JIS-Allow 1 byte Kana)i.  zKISO 2022 Japanese JIS X 0201-1989; Japanese (JIS-Allow 1 byte Kana - SO/SI)i1  zISO 2022 Koreani3  z:ISO 2022 Simplified Chinese; Chinese Simplified (ISO 2022)i5  zISO 2022 Traditional Chinesei  z#EBCDIC Japanese (Katakana) Extendedi  zEBCDIC US-Canada and Japanesei  z!EBCDIC Korean Extended and Koreani  z9EBCDIC Simplified Chinese Extended and Simplified Chinesei  zEBCDIC Simplified Chinesei  z(EBCDIC US-Canada and Traditional Chinesei  z-EBCDIC Japanese (Latin) Extended and Japanesei  zEUC Japanesei  z0EUC Simplified Chinese; Chinese Simplified (EUC)i  z
EUC Koreani  zEUC Traditional Chinesei  z5HZ-GB2312 Simplified Chinese; Chinese Simplified (HZ)i  zWWindows XP and later: GB18030 Simplified Chinese (4 byte); Chinese Simplified (GB18030)i  zISCII Devanagarii  zISCII Banglai  zISCII Tamili  zISCII Telugui  zISCII Assamesei  z
ISCII Odiai  zISCII Kannadai  zISCII Malayalami  zISCII Gujaratii  zISCII Punjabi  zUnicode (UTF-7)  zUnicode (UTF-8)cp037arabiclatin2latin1cp273	utf_16_le	utf_16_bez	mac-romanshiftjisbig5asciiz
mac-arabichebrewz	mac-greekmac_cyrillicgb2312thai
mac_latin2mac_icelandzmac-turkish	utf_32_le	utf_32_be	iso8859_2	iso8859_3	iso8859_4	iso8859_5	iso8859_6	iso8859_7	iso8859_8	iso8859_9
iso8859_13
iso8859_15	mac_romancp1252utf7utf8)r   r   i   i  r   r   r   c                     U [         ;   a
  [         U    nOSU -  n [        R                  " U5        U$ ! [         a    Sn U$ f = f)z
convert a codepage number to a Python codec.
If the corresponding codec cannot be found, returns "utf8" by default.

:param codepage: int, code page number
:return: str, Python codec name
zcp%dr(   )CODEPAGE_TO_CODECcodecslookupLookupError)codepagecodecs     s/var/www/eduai.edurigo.com/question_generate/ques_gen_env/lib/python3.13/site-packages/oletools/common/codepages.pycodepage2codecr1     sT     $$!(+!e L  Ls   3 AAc                 .    [         R                  U S5      $ )zu
return the name of a codepage based on its number
:param codepage: int, codepage number
:return: str, codepage name
zUnknown code page)CODEPAGE_NAMEget)r.   s    r0   get_codepage_namer5   0  s     X':;;    __main__zCode Page: %d => codec: %s - %s)__doc____version__r+   r3   r*   r1   r5   __name__sortedkeyscpprint r6   r0   <module>r@      si  Z  YY	Y 	#Y 		Y
 	&Y 	&Y 	2Y 	1Y 	#Y 	;Y 	.Y 	+Y 	%Y 	1Y 	+Y  	)!Y" 	##Y$ 	5%Y& 	#'Y( 	#)Y* 	&+Y, 	0-Y. 	S/Y0 	61Y2 	"3Y4 	25Y6 	T7Y8 	09Y: 	`;Y< 	
(=Y> 	
*?Y@ 	
QAYB 	
OCYD 	
]EYF 	
]GYH 	
KIYJ 	
YKYL 	
QMYN 	
MOYP 	
YQYR 	
SSYT 	
oUYV 	
YWYX 	
=YYZ 	
-[Y\ 	
4]Y^ 	
'_Y` 	
+aYb 	
)cYd 	
)eYf 	
)gYh 	
5iYj 	
kYl 
.mYn 
oYp 
FqYr 
>sYt 
>uYv 
>wYx 
=yYz 
{Y| 
G}Y~ 
Y@ 
AYB 
<CYD 
0EYF 
GYH 
?IYJ 
KYL 
]MYN 
ZOYP 
2QYR 
<SYT 
4UYV 
WYX 
YYZ 
=[Y\ 
R]Y^ 
_Y` 
 aYb 
"cYd 
eYf 
6gYh 
(iYj 
kYl 
&mYn 
&oYp 
qYr 
+sYt 
&uYv 
2wYx 
yYz 
{Y| 
}Y~ 
Y@ 
'AYB 
CYD 
0EYF 
!GYH 
(IYJ 
KYL 
@MYN 
3OYP 
HQYR 
SYT 
2UYV 
>WYX 
2YYZ 
7[Y\ 
@]Y^ 
_Y` 
aYb 
 cYd 
eYf 
gYh 
3iYj 
kYl 
!mYn 
 oYp 
:qYr 
4sYt 
IuYv 
XwYx 
XyYz 
{Y| 
G}Y~ 
)Y@ 
0AYB 
*CYD 
.EYF 
FGYH 
&IYJ 
5KYL 
:MYN 
>OYP 
=QYR 
<SYT 
$UYV 
BWYX 
dYYZ 
[Y\ 
>]Y^ 
=_Y` 
>aYb 
cYd 
<eYf 
?gYh 
iYj 
kYl 
?mYn 
oYp 
qY|222 2 	2
 2 	(2 	'2 	+2 	+2 
;2 
:2 
62 
72 
<2  
8!2" 
;#2& 
>'2( 
8)2* 
6+2. 
</20 
=122 
=326 
;728 
;92< 
7=2@ 
8A2B 
;C2D 
;E2F 
;G2H 
;I2J 
;K2L 
;M2N 
;O2P 
;Q2R c2 n(< z]'')*/2~b7I=Y[K\2]]^ + r6   