Yf#^@sdZddlZddlZddlZddlZddlZddlmZddl Z dddddd d d d d dddddddddddddgZ ddZ ddZ yddl TWncek r4d Zd!Zd"ZdZd#Zd$Zd%Zd&ZeZd'd Zdd(dZYnXd ekrJe Zd ekr_e ZeZiZe j ed)d Zd*d+Z!d,d-d.Z"d/d0Z#ej$d1Z%d,d,d2dZ&d,d,d3d4Z'd,d5dZ(d6d,d,d7dZ)d8d Zd9d:Z*e+d;dZ,d<dZ-d=d>Z.eZ/d?d@Z0dAdBZ1dCdZ2dDdEZ3dFdGZ4ddJdZ5edKdZ6ddLdZedMd Z7ej8j9dNrd6dOdZ:n;ye;Wn!e<k rd6dPdZ:YnXd6dQdZ:dRdSdTdSdUdVdWdXdYdXdZd[d\d]d^d_d`dadbdcdddVdedfdgdhdidjdkdVdldVdmdVdndodpdqdrdsdtdudvdjdwdxdydfdzd{d|d}d~dhddddddddddXdddddd[dddddddddddddd_ddaddci,Z=xBe>e=j?D].\Z@ZAe@jBddZ@e=jCe@eAqAWdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd d d d dd d dTdSddddSddSddddddSddSddddddddddd d!d"dd#dd$d%d&d'd(d)d*d+d,d-d.d-d/d-d0d1d2d3d4d5d6d5d7d-d8d-d9d-d:d;d<d;d=d;d>d;d?d@dAdBdCdDdEdFdGd@dHdIdJdKdLd@dMdNdOdPdQdRdSdTdUdVdWdXdYdXdZd[d\d]d^d_d`d]dadbdUddcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddrddddddddddddddrddddrddddSdddddddddddddddddddddddddddddddddddddddddddddddddddddddddd[dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd@dd@ddFdd@ddddddd dd d]d d d ddddddddddddddddddddddd+dd+dd+d d!d"d#d$d%d&d%d'd%d(d)d*d+d,d-d.d/d0d1d2d3d4d3d5d6d7d8d9d3d:d3d;d1d<d1d=dd>dd?dd@ddAddBddCdDdEdFdGdDdHdDdIdJdKdJdLdJdMddNddOdPdQdRdSdRdTdRdUdVdWdVdXdRdYdRdZdRd[dRd\dRd]d^d_d^d`d^dadbdcd^dddedfdgdhdgdidjdkdldmdldndodpdodqdodrdsdtdodudodvdwdxdwdydzd{d|d}d~dd~ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddPddddRddPddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddSd dSd d d d d dddddddddddddddddddddddddd dd!d"d#d$d%d&d'd(d)d(d*d+d,d-d.d/d0d1d2d1d3d4d5d6d7d+d8d4d9d1d:d;d<d=d>d=d?d@dAd=dBdCdDdCdEdFdGdHdIdFdJdCdKdFdLdFdMdNdOdPdQdRdSdTdUdVdWdVdXddYddZd[d\d[d]d^d_d`dad`dbdcdddedfd4dgdcdhdidjd`dkd1dld4dmd1dndodpd4dqdVdrdVdsdodtd`dud`dvd`dwdxdydxdzd{d|d{d}d~dddd~dddddd~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd%dddddd%dddddddddddd'dd'ddddi'ZDddddddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d,d.d/d0d1d2d3d4d5d6d7d8d7d9d:d;d<d=d>d$d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|dyd}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d%d)d'd*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d5d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddddddiZEddZFyeWne<k rqYnXe jGdeHdkreIdeIeFeIeIdeIe.dS(aLocale support module. The module provides low-level access to the C lib's locale APIs and adds high level number formatting APIs as well as a locale aliasing engine to complement these. The aliasing engine includes support for many commonly used locale names and maps them to values suitable for passing to the C lib's setlocale() function. It also includes default encodings for all supported locale names. N)str getlocalegetdefaultlocalegetpreferredencodingError setlocale resetlocale localeconvstrcollstrxfrmratofatoiformat format_stringcurrency normalizeLC_CTYPE LC_COLLATELC_TIME LC_MONETARY LC_NUMERICLC_ALLCHAR_MAXcCs||k||kS)zZ strcoll(string,string) -> int. Compares two strings according to the locale. )abrr+/opt/alt/python35/lib64/python3.5/locale.py_strcoll!srcCs|S)z\ strxfrm(string) -> string. Returns a string that behaves for cmp locale-aware. r)srrr_strxfrm'sr)*c$Cssddgdddddddddgd dd d d dd dddddddddddddddddiS)zd localeconv() -> dict. Returns numeric and monetary locale-specific parameters. groupingr!currency_symbol n_sign_posn p_cs_precedes n_cs_precedes mon_groupingn_sep_by_space decimal_point. negative_sign positive_signp_sep_by_spaceint_curr_symbol p_sign_posn thousands_sepmon_thousands_sep frac_digitsmon_decimal_pointint_frac_digitsrrrrrr ?s$ cCs|dkrtddS)zd setlocale(integer,string=None) -> string. Activates/queries locale processing. Nr*Cz*_locale emulation only supports "C" locale)Nr*r<)r)categoryvaluerrrrWs  cCs t}tr|jt|S)N) _localeconv_override_localeconvupdate)drrrr ls  ccsfd}xY|D]Q}|tkr#dS|dkrS|dkrGtdx |VqJW|V|}q WdS)Nrzinvalid grouping)r ValueError)r(Z last_intervalintervalrrr_grouping_intervalszs      rEFc CsBt}||rdpd}||r.dp1d}|sE|dfS|d dkr|j}|t|d}|}nd}d}g}xat|D]S} | s|d d kr|}d}P|j|| d|d| }qW|r |j||j||j||t|t|dfS) Nr8r7r.r(rr& r* 0123456789rH)r rstriplenrEappendreversejoin) rmonetaryconvr7r(ZstrippedZ right_spacesZ left_spacesgroupsrDrrr_groups0      rQcCsd}x.|r6||dkr6|d7}|d8}q Wt|d}x.|rw||dkrw|d8}|d8}qJW|||dS)NrrFr&)rJ)rZamountZlposZrposrrr_strip_paddings  rRzG%(?:\((?P.*?)\))?(?P[-#0-9 +*.hlL]*?)[eEfFgGdiouxXcrs%]cGs`tj|}| s4t|jt|krJtdt|t|||||S)zReturns the locale-aware substitution of a %? specifier (percent). additional is for format strings which contain one or more '*' modifiers.zHformat() must be given exactly one %%char format specifier, %s not valid) _percent_rematchrJgrouprCrepr_format)percentr>r(rN additionalrTrrrrs %c Gs|r||f|}n ||}|d dkrd}|jd}|rot|dd|\|d<}t|rdpd}|j|}|rt||}nI|d dkrd}|rt|d|\}}|rt||}|S) Nr&ZeEfFgGrr1rNr:r0ZdiurHrH)splitrQr rMrR) rXr>r(rNrYZ formattedZsepspartsr0rrrrWs(  rWc Cslttj|}tjd|}t|tjrg}x|D]K}|jddkrr|jdqF|jt |j||qFWnt|t s|f}g}d}x|D]}|jd dkr|jdq|jdj d}|jt |j|||d||d|d||d|7}qWt |}||S) zFormats a string in the same way that the % formatting would use, but takes the current locale into account. Grouping is applied if the third parameter is true.z%sr&%rZ modifiersr FrHrH) listrSfinditersub isinstance collectionsMappingrUrKrtuplecountrW) fvalr(ZpercentsZnew_fZnew_valZperciZ starcountrrrrs0 &    Tc Cst}||rdpd}|dkr7tdtd|t||dd}d|d }|r||r|d pd }||d krd pd}||d krdpd} |r|| rdpd|}n|| rdpd|}||d kr dpd} ||d kr)dp,d} | d krMd|d}n~| dkrf| |}ne| dkr|| }nL| dkr|jd| }n+| dkr|jd | }n | |}|jddjd dS)zIFormats val according to the currency settings in the current locale.r;r9r!z9Currency formatting is not possible using the 'C' locale.z%%.%ifrNT<>r5r)rr-r,r/r4rFr*r+r6r2r3()r&r'r#r%)r rCrabsreplace) rfZsymbolr(Z internationalrOZdigitsrZsmbZprecedesZ separatedZsign_posZsignrrrrs6   "        cCs td|S)z8Convert float to string, taking the locale into account.z%.12g)r)rfrrrr+scCsNtd}|r%|j|d}td}|rJ|j|d}|S)zHParses a string as a normalized number according to the locale settings.r7r*r0r1)r rm)stringtsZddrrr delocalize/s  rpcCs|t|S)zt||}t||S|jdd\}}|j|kr}t||d|S|S) a Returns a normalized locale code for the given locale name. The returned locale code is formatted for use with setlocale(). If normalization fails, the original name is returned unchanged. If the given encoding is not known, the function defaults to the default encoding for the locale code just like setlocale() does. :r1rr&r*Nr'rxrw)r~rmrZ locale_aliasr}rr) localenamerrrrZlang_encrZ lookup_nameZdefmodrrrrws`    "    "      cCst|}d|krR|jdd\}}|dkrRd|krR|dfSd|kr{t|jdddS|dkrd Std |dS) a Parses the locale code for localename and returns the result as tuple (language code, encoding). The localename is normalized and passed through the locale alias engine. A ValueError is raised in case the locale name cannot be parsed. The language code corresponds to RFC 1766. code and encoding can be None in case the values cannot be determined or are unknown to this implementation. rr&rr1z iso-8859-15Nr'r<zunknown locale: %s)NN)rrZrcrC)rrrrrr_parse_localenames     rc Csiy>|\}}|dkr!d}|dkr1|S|d|SWn$ttfk rdtdYnXdS)z Builds a locale code from the given tuple (language code, encoding). No aliasing or normalizing takes place. Nr<r1zXLocale must be None, a string, or an iterable of two strings -- language code, encoding.) TypeErrorrC)Z localetupleZlanguagerrrr_build_localenames   rLANGLANGUAGEc Csy"ddl}|j\}}Wnttfk r<YnNXtjdkr|r|dddkrtjt|d}||fSddl }|j j}xI|D];}||d}|r|dkr|j dd}PqWd}t |S) a Tries to determine the default locale settings and returns them as tuple (language code, encoding). According to POSIX, a program which has not called setlocale(LC_ALL, "") runs using the portable 'C' locale. Calling setlocale(LC_ALL, "") lets it use the default locale as defined by the LANG variable. Since we don't want to interfere with the current locale setting we thus emulate the behavior in the way described above. To maintain compatibility with other platforms, not only the LANG variable is tested, but a list of variables given as envvars parameter. The first found to be defined will be used. envvars defaults to the search path used in GNU gettext; it must always contain the variable name 'LANG'. Except for the code 'C', the language code corresponds to RFC 1766. code and encoding can be None in case the values cannot be determined. rNwin32r'Z0xrrr<) _localeZ_getdefaultlocale ImportErrorAttributeErrorsysplatformwindows_localer}rrosenvironrZr)ZenvvarsrrrrlookupZvariablerrrrrs$ +     cCs:t|}|tkr0d|kr0tdt|S)ap Returns the current setting for the given locale category as tuple (language code, encoding). category may be one of the LC_* value except LC_ALL. It defaults to LC_CTYPE. Except for the code 'C', the language code corresponds to RFC 1766. code and encoding can be None in case the values cannot be determined. ;z category LC_ALL is not supported) _setlocalerrr)r=rrrrr1s  cCs5|r(t|t r(tt|}t||S)a^ Set the locale for the given category. The locale can be a string, an iterable of two strings (language code and encoding), or None. Iterables are converted to strings using the locale aliasing engine. Locale strings are passed directly to the C lib. category may be given as one of the LC_* values. )r` _builtin_strrrr)r=ZlocalerrrrCs cCst|ttdS)z Sets the locale for category to the default setting. The default setting is determined by calling getdefaultlocale(). category defaults to LC_ALL. N)rrr)r=rrrrTswincCsddl}|jdS)z1Return the charset that the user is likely using.rNF) _bootlocaler) do_setlocalerrrrr`s cCs#td}|dkrd}|S)zbReturn the charset that the user is likely using, by looking at environment variables.r&Nascii)r)rresrrrrjs  c Csjddl}|rDtt}yttdWntk rCYnX|jd}|rftt||S)zdReturn the charset that the user is likely using, according to the system configuration.rNr*F)rrrrr)rrZoldlocresultrrrrss    437r<cZenz ISO8859-1ZjisZJIS7Zjis7ZajecZeucJPZkoi8czKOI8-CZmicrosoftcp1251ZCP1251Zmicrosoftcp1255ZCP1255Zmicrosoftcp1256ZCP1256Z88591Z88592z ISO8859-2Z88595z ISO8859-5Z885915z ISO8859-15rlatin_1 iso8859_1 iso8859_10z ISO8859-10 iso8859_11z ISO8859-11 iso8859_13z ISO8859-13 iso8859_14z ISO8859-14 iso8859_15 iso8859_16z ISO8859-16 iso8859_2 iso8859_3z ISO8859-3 iso8859_4z ISO8859-4 iso8859_5 iso8859_6z ISO8859-6 iso8859_7z ISO8859-7 iso8859_8z ISO8859-8 iso8859_9z ISO8859-9 iso2022_jp shift_jisZSJIStactisZTACTISeuc_jpeuc_krZeucKRutf_8zUTF-8koi8_rzKOI8-RZkoi8_tzKOI8-TZkoi8_uzKOI8-Ukz1048ZRK1048cp1251cp1255cp1256rwr*Za3z az_AZ.KOI8-CZa3_azz a3_az.koicZaa_djzaa_DJ.ISO8859-1Zaa_erz aa_ER.UTF-8Zaa_etz aa_ET.UTF-8Zafzaf_ZA.ISO8859-1Zaf_zaZamz am_ET.UTF-8Zam_etZamericanzen_US.ISO8859-1Zan_eszan_ES.ISO8859-15arzar_AA.ISO8859-6Zar_aaZar_aezar_AE.ISO8859-6Zar_bhzar_BH.ISO8859-6Zar_dzzar_DZ.ISO8859-6Zar_egzar_EG.ISO8859-6Zar_inz ar_IN.UTF-8Zar_iqzar_IQ.ISO8859-6Zar_jozar_JO.ISO8859-6Zar_kwzar_KW.ISO8859-6Zar_lbzar_LB.ISO8859-6Zar_lyzar_LY.ISO8859-6Zar_mazar_MA.ISO8859-6Zar_omzar_OM.ISO8859-6Zar_qazar_QA.ISO8859-6Zar_sazar_SA.ISO8859-6Zar_sdzar_SD.ISO8859-6Zar_syzar_SY.ISO8859-6Zar_tnzar_TN.ISO8859-6Zar_yezar_YE.ISO8859-6arabicasz as_IN.UTF-8Zas_inZast_eszast_ES.ISO8859-15Zayc_pez ayc_PE.UTF-8Zazzaz_AZ.ISO8859-9EZaz_azzaz_az.iso88599eZbez be_BY.CP1251zbe@latinzbe_BY.UTF-8@latinz be_bg.utf8z bg_BG.UTF-8Zbe_byz be_by@latinZbem_zmz bem_ZM.UTF-8Zber_dzz ber_DZ.UTF-8Zber_maz ber_MA.UTF-8Zbgz bg_BG.CP1251Zbg_bgZbho_inz bho_IN.UTF-8Zbn_bdz bn_BD.UTF-8Zbn_inz bn_IN.UTF-8Zbo_cnz bo_CN.UTF-8Zbo_inz bo_IN.UTF-8Zbokmalznb_NO.ISO8859-1ubokmålZbrzbr_FR.ISO8859-1Zbr_frZbrx_inz brx_IN.UTF-8Zbszbs_BA.ISO8859-2Zbs_baZ bulgarianZbyn_erz byn_ER.UTF-8zc-frenchzfr_CA.ISO8859-1zc.asciizc.enz c.iso88591zc.utf8z en_US.UTF-8Zc_czc_c.cZcazca_ES.ISO8859-1Zca_adzca_AD.ISO8859-1Zca_eszca_es@valenciazca_ES.ISO8859-15@valenciaZca_frzca_FR.ISO8859-1Zca_itzca_IT.ISO8859-1ZcatalanZcextendz chinese-sz zh_CN.eucCNz chinese-tz zh_TW.eucTWZcrh_uaz crh_UA.UTF-8Zcroatianzhr_HR.ISO8859-2Zcszcs_CZ.ISO8859-2Zcs_csZcs_czZcsb_plz csb_PL.UTF-8Zcv_ruz cv_RU.UTF-8Zcyzcy_GB.ISO8859-1Zcy_gbZczZcz_czZczechZdazda_DK.ISO8859-1Zda_dkZdanishZdanskZdezde_DE.ISO8859-1Zde_atzde_AT.ISO8859-1Zde_bezde_BE.ISO8859-1Zde_chzde_CH.ISO8859-1Zde_dez de_li.utf8z de_LI.UTF-8Zde_luzde_LU.ISO8859-1ZdeutschZdoi_inz doi_IN.UTF-8Zdutchznl_NL.ISO8859-1zdutch.iso88591znl_BE.ISO8859-1Zdv_mvz dv_MV.UTF-8Zdz_btz dz_BT.UTF-8Zeezee_EE.ISO8859-4Zee_eeZeestizet_EE.ISO8859-1Zelzel_GR.ISO8859-7Zel_cyzel_CY.ISO8859-7Zel_grz el_gr@eurozel_GR.ISO8859-15Zen_agz en_AG.UTF-8Zen_auzen_AU.ISO8859-1Zen_bezen_BE.ISO8859-1Zen_bwzen_BW.ISO8859-1Zen_cazen_CA.ISO8859-1Zen_dkzen_DK.ISO8859-1z en_dl.utf8z en_DL.UTF-8Zen_gbzen_GB.ISO8859-1Zen_hkzen_HK.ISO8859-1Zen_iezen_IE.ISO8859-1Zen_inzen_IN.ISO8859-1Zen_ngz en_NG.UTF-8Zen_nzzen_NZ.ISO8859-1Zen_phzen_PH.ISO8859-1Zen_sgzen_SG.ISO8859-1Zen_ukZen_uszen_us@euro@eurozen_US.ISO8859-15Zen_zazen_ZA.ISO8859-1Zen_zmz en_ZM.UTF-8Zen_zwzen_ZW.ISO8859-1z en_zw.utf8z en_ZS.UTF-8Zeng_gbZenglishzen_EN.ISO8859-1Z english_ukzenglish_united-stateszenglish_united-states.437Z english_usZeozeo_XX.ISO8859-3zeo.utf8zeo.UTF-8Zeo_eozeo_EO.ISO8859-3z eo_us.utf8z eo_US.UTF-8Zeo_xxZeszes_ES.ISO8859-1Zes_arzes_AR.ISO8859-1Zes_bozes_BO.ISO8859-1Zes_clzes_CL.ISO8859-1Zes_cozes_CO.ISO8859-1Zes_crzes_CR.ISO8859-1Zes_cuz es_CU.UTF-8Zes_dozes_DO.ISO8859-1Zes_eczes_EC.ISO8859-1Zes_esZes_gtzes_GT.ISO8859-1Zes_hnzes_HN.ISO8859-1Zes_mxzes_MX.ISO8859-1Zes_nizes_NI.ISO8859-1Zes_pazes_PA.ISO8859-1Zes_pezes_PE.ISO8859-1Zes_przes_PR.ISO8859-1Zes_pyzes_PY.ISO8859-1Zes_svzes_SV.ISO8859-1Zes_uszes_US.ISO8859-1Zes_uyzes_UY.ISO8859-1Zes_vezes_VE.ISO8859-1ZestonianZetzet_EE.ISO8859-15Zet_eeZeuzeu_ES.ISO8859-1Zeu_esZeu_frzeu_FR.ISO8859-1Zfaz fa_IR.UTF-8Zfa_irzfa_ir.isiri3342zfa_IR.ISIRI-3342Zff_snz ff_SN.UTF-8Zfizfi_FI.ISO8859-15Zfi_fiZfil_phz fil_PH.UTF-8Zfinnishzfi_FI.ISO8859-1Zfozfo_FO.ISO8859-1Zfo_foZfrzfr_FR.ISO8859-1Zfr_bezfr_BE.ISO8859-1Zfr_caZfr_chzfr_CH.ISO8859-1Zfr_frZfr_luzfr_LU.ISO8859-1u françaisZfre_frZfrenchzfrench.iso88591Z french_franceZfur_itz fur_IT.UTF-8Zfy_dez fy_DE.UTF-8Zfy_nlz fy_NL.UTF-8Zgazga_IE.ISO8859-1Zga_ieZgalegozgl_ES.ISO8859-1ZgalicianZgdzgd_GB.ISO8859-1Zgd_gbZger_deZgermanzgerman.iso88591Zgerman_germanyZgez_erz gez_ER.UTF-8Zgez_etz gez_ET.UTF-8ZglZgl_esgreekZgu_inz gu_IN.UTF-8Zgvzgv_GB.ISO8859-1Zgv_gbZha_ngz ha_NG.UTF-8Zhezhe_IL.ISO8859-8Zhe_ilhebrewhizhi_IN.ISCII-DEVZhi_inzhi_in.isciidevZhnez hne_IN.UTF-8Zhne_inZhrZhr_hrZhrvatskiZhsb_dezhsb_DE.ISO8859-2Zht_htz ht_HT.UTF-8Zhuzhu_HU.ISO8859-2Zhu_huZ hungarianZhy_amz hy_AM.UTF-8zhy_am.armscii8zhy_AM.ARMSCII_8Ziazia.UTF-8Zia_frz ia_FR.UTF-8Z icelandiczis_IS.ISO8859-1idzid_ID.ISO8859-1Zid_idZig_ngz ig_NG.UTF-8Zik_caz ik_CA.UTF-8inZin_idrsZis_isz iso-8859-1z iso-8859-15z iso8859-1z iso8859-15 iso_8859_1 iso_8859_15itzit_IT.ISO8859-1Zit_chzit_CH.ISO8859-1Zit_itZitalianZiuziu_CA.NUNACOM-8Ziu_caziu_ca.nunacom8ZiwZiw_ilz iw_il.utf8z iw_IL.UTF-8Zjaz ja_JP.eucJPZja_jpz ja_jp.eucz ja_jp.mscodez ja_JP.SJISz ja_jp.pckZjapanZjapanesez japanese-eucz japanese.eucZjp_jpZkazka_GE.GEORGIAN-ACADEMYZka_gezka_ge.georgianacademyzka_ge.georgianpszka_GE.GEORGIAN-PSzka_ge.georgianrsZkk_kzz kk_KZ.RK1048Zklzkl_GL.ISO8859-1Zkl_glZkm_khz km_KH.UTF-8Zknz kn_IN.UTF-8Zkn_inZkoz ko_KR.eucKRZko_krz ko_kr.eucZkok_inz kok_IN.UTF-8koreanz korean.eucZksz ks_IN.UTF-8Zks_inzks_in@devanagari.utf8zks_IN.UTF-8@devanagariZku_trzku_TR.ISO8859-9kwzkw_GB.ISO8859-1Zkw_gbZkyz ky_KG.UTF-8Zky_kgZlb_luz lb_LU.UTF-8Zlg_ugzlg_UG.ISO8859-10Zli_bez li_BE.UTF-8Zli_nlz li_NL.UTF-8Zlij_itz lij_IT.UTF-8Z lithuanianzlt_LT.ISO8859-13lozlo_LA.MULELAO-1Zlo_laz lo_la.cp1133zlo_LA.IBM-CP1133zlo_la.ibmcp1133zlo_la.mulelao1ltZlt_ltZlvzlv_LV.ISO8859-13Zlv_lvZmag_inz mag_IN.UTF-8Zmaiz mai_IN.UTF-8Zmai_inZmg_mgzmg_MG.ISO8859-15Zmhr_ruz mhr_RU.UTF-8Zmizmi_NZ.ISO8859-1Zmi_nzZmkzmk_MK.ISO8859-5Zmk_mkZmlz ml_IN.UTF-8Zml_inZmn_mnz mn_MN.UTF-8Zmni_inz mni_IN.UTF-8Zmrz mr_IN.UTF-8Zmr_inZmszms_MY.ISO8859-1Zms_myZmtzmt_MT.ISO8859-3Zmt_mtZmy_mmz my_MM.UTF-8z nan_tw@latinznan_TW.UTF-8@latinZnbZnb_noZnds_dez nds_DE.UTF-8Znds_nlz nds_NL.UTF-8Zne_npz ne_NP.UTF-8Znhn_mxz nhn_MX.UTF-8Zniu_nuz niu_NU.UTF-8Zniu_nzz niu_NZ.UTF-8nlZnl_awz nl_AW.UTF-8Znl_beZnl_nlZnnznn_NO.ISO8859-1Znn_nonozno_NO.ISO8859-1z no@nynorskzny_NO.ISO8859-1Zno_nozno_no.iso88591@bokmalzno_no.iso88591@nynorskZ norwegianZnrznr_ZA.ISO8859-1Znr_zaZnsoznso_ZA.ISO8859-15Znso_zaZnyZny_noZnynorskZoczoc_FR.ISO8859-1Zoc_frZom_etz om_ET.UTF-8Zom_kezom_KE.ISO8859-1orz or_IN.UTF-8Zor_inZos_ruz os_RU.UTF-8Zpaz pa_IN.UTF-8Zpa_inZpa_pkz pa_PK.UTF-8Zpap_anz pap_AN.UTF-8Zpdzpd_US.ISO8859-1Zpd_dezpd_DE.ISO8859-1Zpd_usZphzph_PH.ISO8859-1Zph_phZplzpl_PL.ISO8859-2Zpl_plZpolishZ portuguesezpt_PT.ISO8859-1Zportuguese_brazilzpt_BR.ISO8859-1posixz posix-utf2Zppzpp_AN.ISO8859-1Zpp_anZps_afz ps_AF.UTF-8ZptZpt_brZpt_ptZrozro_RO.ISO8859-2Zro_roZromanianZruz ru_RU.UTF-8Zru_ruZru_uaz ru_UA.KOI8-UZrumanianZrussianzru_RU.ISO8859-5Zrwzrw_RW.ISO8859-1Zrw_rwZsa_inz sa_IN.UTF-8Zsat_inz sat_IN.UTF-8Zsc_itz sc_IT.UTF-8Zsdz sd_IN.UTF-8Zsd_inzsd_in@devanagari.utf8zsd_IN.UTF-8@devanagariZsd_pkz sd_PK.UTF-8Zse_noz se_NO.UTF-8Z serbocroatianzsr_RS.UTF-8@latinZshzsh_ba.iso88592@bosniazsr_CS.ISO8859-2Zsh_hrzsh_HR.ISO8859-2zsh_hr.iso88592Zsh_spZsh_yuZshs_caz shs_CA.UTF-8Zsiz si_LK.UTF-8Zsi_lkZsid_etz sid_ET.UTF-8ZsinhalaZskzsk_SK.ISO8859-2Zsk_skZslzsl_SI.ISO8859-2Zsl_cszsl_CS.ISO8859-2Zsl_siZslovakZsloveneZ slovenianZso_djzso_DJ.ISO8859-1Zso_etz so_ET.UTF-8Zso_kezso_KE.ISO8859-1Zso_sozso_SO.ISO8859-1Zspzsr_CS.ISO8859-5Zsp_yuZspanishZ spanish_spainZsqzsq_AL.ISO8859-2Zsq_alZsq_mkz sq_MK.UTF-8srz sr_RS.UTF-8z sr@cyrilliczsr@latnzsr_CS.UTF-8@latinZsr_csz sr_CS.UTF-8zsr_cs.iso88592@latnz sr_cs@latnZsr_mez sr_ME.UTF-8Zsr_rsz sr_rs@latnZsr_spZsr_yuzsr_yu.cp1251@cyrillicz sr_CS.CP1251zsr_yu.iso88592zsr_yu.iso88595zsr_yu.iso88595@cyrilliczsr_yu.microsoftcp1251@cyrillicz sr_yu.utf8zsr_yu.utf8@cyrilliczsr_yu@cyrillicZsszss_ZA.ISO8859-1Zss_zastzst_ZA.ISO8859-1Zst_zaZsvzsv_SE.ISO8859-1Zsv_fizsv_FI.ISO8859-1Zsv_seZsw_kez sw_KE.UTF-8Zsw_tzz sw_TZ.UTF-8ZswedishZszl_plz szl_PL.UTF-8Ztaz ta_IN.TSCII-0Zta_inz ta_in.tsciiz ta_in.tscii0Zta_lkz ta_LK.UTF-8Ztez te_IN.UTF-8Zte_inZtgz tg_TJ.KOI8-CZtg_tjZthzth_TH.ISO8859-11Zth_thz th_th.tactisz th_TH.TIS620z th_th.tis620thaiZti_erz ti_ER.UTF-8Zti_etz ti_ET.UTF-8Ztig_erz tig_ER.UTF-8Ztk_tmz tk_TM.UTF-8Ztlztl_PH.ISO8859-1Ztl_phZtnztn_ZA.ISO8859-15Ztn_zaZtrztr_TR.ISO8859-9Ztr_cyztr_CY.ISO8859-9Ztr_trrozts_ZA.ISO8859-1Zts_zaZttztt_RU.TATAR-CYRZtt_ruztt_ru.tatarcyrz tt_ru@iqtelifztt_RU.UTF-8@iqtelifZturkishZug_cnz ug_CN.UTF-8Zukz uk_UA.KOI8-UZuk_uaZunivz en_US.utfZ universalzuniversal.utf8@ucs4Zunm_usz unm_US.UTF-8Zurz ur_PK.CP1256Zur_inz ur_IN.UTF-8Zur_pkZuzz uz_UZ.UTF-8Zuz_uzzuz_uz@cyrillicZvez ve_ZA.UTF-8Zve_zaZviz vi_VN.TCVNZvi_vnz vi_vn.tcvnzvi_vn.tcvn5712z vi_vn.visciiz vi_VN.VISCIIzvi_vn.viscii111Zwazwa_BE.ISO8859-1Zwa_beZwae_chz wae_CH.UTF-8Zwal_etz wal_ET.UTF-8Zwo_snz wo_SN.UTF-8Zxhzxh_ZA.ISO8859-1Zxh_zaZyiz yi_US.CP1255Zyi_usZyo_ngz yo_NG.UTF-8Zyue_hkz yue_HK.UTF-8ZzhZzh_cnz zh_CN.gb2312z zh_cn.big5z zh_TW.big5z zh_cn.eucZzh_hkzzh_HK.big5hkscsz zh_hk.big5hkZzh_sgz zh_SG.GB2312z zh_sg.gbkz zh_SG.GBKZzh_twz zh_tw.eucz zh_tw.euctwZzuzzu_ZA.ISO8859-1Zzu_zai6Zaf_ZAiZsq_ALiZgsw_FRi^Zam_ETiZar_SAiZar_IQi Zar_EGiZar_LYiZar_DZiZar_MAiZar_TNi Zar_OMi$Zar_YEi(Zar_SYi,Zar_JOi0Zar_LBi4Zar_KWi8Zar_AEi<Zar_BHi@Zar_QAi+Zhy_AMiMZas_INi,Zaz_AZi,imZba_RUi-Zeu_ESi#Zbe_BYiEZbn_INi Zbs_BAii~Zbr_FRiZbg_BGiZca_ESZzh_CHSiZzh_TWiZzh_CNi Zzh_HKiZzh_SGiZzh_MOi|Zzh_CHTiZco_FRiZhr_HRiZhr_BAiZcs_CZiZda_DKiZgbz_AFieZdiv_MViZnl_NLiZnl_BEi Zen_USi Zen_GBi Zen_AUi Zen_CAi Zen_NZi Zen_IEi Zen_ZAi Zen_JAi $Zen_CBi (Zen_BZi ,Zen_TTi 0Zen_ZWi 4Zen_PHi @Zen_INi DZen_MYi Hi%Zet_EEi8Zfo_FOidZfil_PHi Zfi_FIi Zfr_FRi Zfr_BEi Zfr_CAi Zfr_CHi Zfr_LUi Zfr_MCibZfy_NLiVZgl_ESi7Zka_GEiZde_DEiZde_CHi Zde_ATiZde_LUiZde_LIiZel_GRioZkl_GLiGZgu_INihZha_NGi Zhe_ILi9Zhi_INiZhu_HUiZis_ISi!Zid_IDi]Ziu_CAi]i<Zga_IEiZit_ITiZit_CHiZja_JPiKZkn_INi?Zkk_KZiSZkh_KHiZqut_GTiZrw_RWiWZkok_INiZko_KRi@Zky_KGiTZlo_LAi&Zlv_LVi'Zlt_LTi.Zdsb_DEinZlb_LUi/Zmk_MKi>Zms_MYi>Zms_BNiLZml_INi:Zmt_MTiZmi_NZizZarn_CLiNZmr_INi|Zmoh_CAiPZmn_MNiPZmn_CNiaZne_NPiZnb_NOiZnn_NOiZoc_FRiHZor_INicZps_AFi)Zfa_IRiZpl_PLiZpt_BRiZpt_PTiFZpa_INikZquz_BOikZquz_ECik Zquz_PEiZro_ROiZrm_CHiZru_RUi;$Zsmn_FIi;Zsmj_NOi;Zsmj_SEi;Zse_NOi;Zse_SEi; Zse_FIi; Zsms_FIi;Zsma_NOi;Zsma_SEiOZsa_INi Zsr_SPiZsr_BAiii[Zsi_LKilZns_ZAi2Ztn_ZAiZsk_SKi$Zsl_SIi Zes_ESi Zes_MXi i Zes_GTi Zes_CRi Zes_PAi Zes_DOi Zes_VEi $Zes_COi (Zes_PEi ,Zes_ARi 0Zes_ECi 4Zes_CLi 8Zes_URi <Zes_PYi @Zes_BOi DZes_SVi HZes_HNi LZes_NIi PZes_PRi TZes_USiAZsw_KEiZsv_SEiZsv_FIiZZsyr_SYi(Ztg_TJi_Ztmz_DZiIZta_INiDZtt_RUiJZte_INiZth_THiQZbo_BTiQZbo_CNiZtr_TRiBZtk_TMiZug_CNi"Zuk_UAi.Zwen_DEi Zur_PKi Zur_INiCZuz_UZiCi*Zvi_VNiRZcy_GBiZwo_SNi4Zxh_ZAiZsah_RUixZii_CNijZyo_NGi5Zzu_ZAc CsMi}|dd}||d=tdtddt\}}td|pYdtd |pldttd tddxf|jD]X\}}t|d t|\}}td |pdtd |pdtqWttdtddtxf|jD]X\}}t|d t|\}}td |pedtd |pxdtq+WyttdWn&tdtdtdYnXttdtddxf|jD]X\}}t|d t|\}}td |p'dtd |p:dtqWdS)z Test function. cSsDx=tjD],\}}|dddkr|||._init_categoriesrz4Locale defaults as determined by getdefaultlocale():rxHz Language: z (undefined)z Encoding: zLocale settings on startup:z...z Language: z Encoding: z,Locale settings after calling resetlocale():r*zNOTE:z9setlocale(LC_ALL, "") does not support the default localez&given in the OS environment variables.z4Locale settings after calling setlocale(LC_ALL, ""):N)rtrrrrrr)rrZlangencnamer=rrr _print_localeHsV           r LC_MESSAGES__main__zLocale aliasing:zNumber formatting:)rrrr)J__doc__rrzZencodings.aliasesrerabuiltinsrr functools__all__rrrrrrrrrrrrrCrr rrr r r?r@wrapsrErQrRcompilerSrrWrrrpfloatr r rvrrrrrrrrrr startswithrCODESET NameErrorrsortedrrrrm setdefaultrrrrK__name__rtrrrr s               "-      S  5   " s   :