U Ä:âejã@s²ddlZddlZddlZddlZdddddddd d d d d dddddddddgZej ejdd¡Ze  dej ej B¡Z dd„Z dd„ZdZdd „eed!ƒDƒZd"d#d$d%œZdFd'd(„Zd)d*„Zd+d,„Zd-d.„ZGd/d„dƒZGd0d„deƒZdGd2d„ZiZd3gZdddd1efd4d„Zdedfd5d„Ziaiad6adHd7d„Z dId8d „Z!dJd9d „Z"d:d „Z#d;d„Z$dd„Z'd?d„Z(d@d „Z)dAd„Z*dBd„Z+dCd„Z,dDd„Z-dEd„Z.eZ/dS)KéNÚNullTranslationsÚGNUTranslationsÚCatalogÚfindÚ translationÚinstallÚ textdomainÚbindtextdomainÚbind_textdomain_codesetÚdgettextÚ dngettextÚgettextÚlgettextÚ ldgettextÚ ldngettextÚ lngettextÚngettextÚpgettextÚ dpgettextÚ npgettextÚ dnpgettextÚshareÚlocaleaÊ (?P[ \t]+) | # spaces and horizontal tabs (?P[0-9]+\b) | # decimal integer (?Pn\b) | # only n is allowed (?P[()]) | (?P[-*/%+?:]|[>, # <=, >=, ==, !=, &&, ||, # ? : # unary and bitwise ops # not allowed (?P\w+|.) # invalid token ccsPt t|¡D]8}|j}|dkr q | |¡}|dkr>td|ƒ‚|Vq dVdS)NÚ WHITESPACESÚINVALIDz invalid token in plural form: %sÚ)ÚreÚfinditerÚ_token_patternÚ lastgroupÚgroupÚ ValueError)ÚpluralÚmoÚkindÚvalue©r&ú,/usr/local/python38/lib/python3.8/gettext.pyÚ _tokenizeWs  r(cCs|rtd|ƒStdƒSdS)Nz#unexpected token in plural form: %szunexpected end of plural form)r!)r%r&r&r'Ú_errorbs r)))ú||)ú&&)z==z!=)ú<ú>z<=z>=)ú+ú-)Ú*ú/ú%cCs i|]\}}|D] }||“qqSr&r&)Ú.0ÚiZopsÚopr&r&r'Ú ps r6éÚorÚandz//)r*r+r1éÿÿÿÿc Cs¨d}t|ƒ}|dkr&|d7}t|ƒ}q |dkrXt|ƒ\}}d||f}|dkr¨tdƒ‚nP|dkrnd ||f}n:zt|d ƒ}Wntk ršt|ƒd‚YnXd ||f}t|ƒ}d }|tkrt|}||krÒq|d krê|d krêd|}t ||¡}t||dƒ\} }d||| f}|}q´||kr4dkr@nnd|}|dkr |dkr t|dƒ\} }|dkrtt|ƒ‚t|ƒ\} }d| || f}|dkr d|}||fS)Nrú!znot ú(z%s(%s)ú)z%unbalanced parenthesis in plural formÚnz%s%sé z%s%déd)ééz(%s)r7z%s %s %srBú?rú:z%s if %s else %s)ÚnextÚ_parser!Úintr)Ú _binary_opsÚ _c2py_opsÚget) ÚtokensÚpriorityÚresultÚnexttokÚsubr%Újr4r5ÚrightÚif_trueÚif_falser&r&r'rFssP          rFcCsZz t|ƒ}Wn(tk r4td|jjfƒd‚YnXddl}| d|jjftd¡|S)Nz'Plural value must be an integer, got %srrB)ÚroundÚ TypeErrorÚ __class__Ú__name__ÚwarningsÚwarnÚDeprecationWarning)r>r4rXr&r&r'Ú_as_int¤s  ÿÿÿþr[cCs²t|ƒdkrtdƒ‚z|tt|ƒƒ\}}|r2t|ƒ‚d}|D]6}|dkr`|d7}|dkrptdƒ‚q:|dkr:|d8}q:d ti}td ||ƒ|d WStk r¬tdƒ‚YnXdS) Nièz"plural form expression is too longrr<r7éz%plural form expression is too complexr=r[z›if True: def func(n): if not isinstance(n, int): n = _as_int(n) return int(%s) Úfunc)Úlenr!rFr(r)r[ÚexecÚRecursionError)r"rMrNÚdepthÚcÚnsr&r&r'Úc2py°s.   ûû rdc Cs4t |¡}d}d}d}d}| d¡}|dkrN||d…}|d|…}||O}nd}| d¡}|dkr†||d…}|d|…}||O}nd}| d¡}|dkr¾||d…}|d|…}||O}nd}|} g} t|dƒD]P} | |@sÖ| } | |@rø| |7} | |@r | |7} | |@r| |7} |  | ¡qÖ|  ¡| S) Nr7érBrú@rÚ.Ú_)rÚ normalizerÚrangeÚappendÚreverse) ÚlocÚCOMPONENT_CODESETÚCOMPONENT_TERRITORYÚCOMPONENT_MODIFIERÚmaskÚposÚmodifierÚcodesetÚ territoryÚlanguageÚretr4Úvalr&r&r'Ú _expand_langÔsJ                 ryc@s€eZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zddd„ZdS) rNcCs.i|_d|_d|_d|_|dk r*| |¡dS©N)Ú_infoÚ_charsetÚ_output_charsetÚ _fallbackrF©ÚselfÚfpr&r&r'Ú__init__ÿs zNullTranslations.__init__cCsdSrzr&rr&r&r'rFszNullTranslations._parsecCs|jr|j |¡n||_dSrz)r~Ú add_fallback)r€Úfallbackr&r&r'rƒ szNullTranslations.add_fallbackcCs|jr|j |¡S|Srz)r~r )r€Úmessager&r&r'r s zNullTranslations.gettextc Csrddl}| dtd¡|jrR| ¡(| ddt¡|j |¡W5QR£SQRX|jrd| |j¡S| t   ¡¡S)Nrú/lgettext() is deprecated, use gettext() insteadreÚignoreú.*\blgettext\b.*) rXrYrZr~Úcatch_warningsÚfilterwarningsrr}ÚencoderÚgetpreferredencoding)r€r…rXr&r&r'rsÿ ÿ zNullTranslations.lgettextcCs*|jr|j |||¡S|dkr"|S|SdS©Nr7)r~r)r€Úmsgid1Úmsgid2r>r&r&r'r"s zNullTranslations.ngettextc Csˆddl}| dtd¡|jrV| ¡,| ddt¡|j |||¡W5QR£SQRX|dkrd|}n|}|jrz| |j¡S| t   ¡¡S)Nrú1lngettext() is deprecated, use ngettext() insteadrer‡ú.*\blngettext\b.*r7) rXrYrZr~r‰rŠrr}r‹rrŒ©r€rŽrr>rXÚtmsgr&r&r'r*s"ÿ ÿ" zNullTranslations.lngettextcCs|jr|j ||¡S|Srz)r~r)r€Úcontextr…r&r&r'r;szNullTranslations.pgettextcCs,|jr|j ||||¡S|dkr$|S|SdSr)r~r)r€r”rŽrr>r&r&r'r@s zNullTranslations.npgettextcCs|jSrz)r{©r€r&r&r'ÚinfoHszNullTranslations.infocCs|jSrz)r|r•r&r&r'ÚcharsetKszNullTranslations.charsetcCsddl}| dtd¡|jS)Nrzoutput_charset() is deprecatedre©rXrYrZr})r€rXr&r&r'Úoutput_charsetNs ÿzNullTranslations.output_charsetcCs ddl}| dtd¡||_dS)Nrz"set_output_charset() is deprecatedrer˜)r€r—rXr&r&r'Úset_output_charsetTs ÿz#NullTranslations.set_output_charsetcCsRddl}|j|jd<|dk rNddddddh}|t|ƒ@D]}t||ƒ|j|<q8dS) Nrrhr rrrrr)Úbuiltinsr Ú__dict__ÚsetÚgetattr)r€Únamesr›ÚallowedÚnamer&r&r'rZs ÿzNullTranslations.install)N)N)rWÚ __module__Ú __qualname__r‚rFrƒr rrrrrr–r—r™ršrr&r&r&r'rþs  c@s\eZdZdZdZdZdZdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z dd„Z dd„ZdS)rlÞ*l•$<z%s%s)rr7cCs|d?|d@fS)Néiÿÿr&)r€Úversionr&r&r'Ú _get_versionspszGNUTranslations._get_versionsc"Csöddlm}t|ddƒ}i|_}dd„|_| ¡}t|ƒ}|d|dd…ƒd}||jkr||d |dd …ƒ\}} } } d } n6||jkr¦|d |dd …ƒ\}} } } d } n t dd|ƒ‚|  |¡\} }| |j krÞt ddt | ƒ|ƒ‚t d| ƒD]}|| || | d…ƒ\}}||}|| || | d…ƒ\}}||}||kr`||kr`|||…}|||…}n t dd|ƒ‚|dkrld}| d¡D]æ}| ¡ ¡}|sžq„| d¡rº| d¡rºq„d}}d|kr| dd¡\}}| ¡ ¡}| ¡}||j|<|}n|r|j|d|7<|dkr8| d¡d|_n0|dkr„| d¡}|d d¡d}t|ƒ|_q„|jpvd}d|krÌ| d¡\}} | d¡}t ||ƒ}t|ƒD]\}}!t |!|ƒ|||f<q¬nt ||ƒ|t ||ƒ<| d7} | d7} qèdS)Nr)Úunpackr¡rcSs t|dkƒSr)rG)r>r&r&r'Ú}óz(GNUTranslations._parse..z4Iz>IIzBad magic numberzBad version number ézFile is corruptó z #-#-#-#-#rDr7Ú z content-typezcharset=z plural-formsú;zplural=Úasciió)Ústructr§ržÚ_catalogr"Úreadr^ÚLE_MAGICÚBE_MAGICÚOSErrorr¦ÚVERSIONSÚstrrjÚsplitÚdecodeÚstripÚ startswithÚendswithÚlowerr{r|rdÚ enumerate)"r€rr§ÚfilenameÚcatalogÚbufÚbuflenÚmagicr¥ÚmsgcountÚ masteridxÚtransidxÚiiÚ major_versionÚ minor_versionr4ÚmlenÚmoffÚmendÚtlenÚtoffÚtendÚmsgr“ÚlastkÚb_itemÚitemÚkÚvr"r—rŽrÚxr&r&r'rFtsv                      zGNUTranslations._parsecCshddl}| dtd¡tƒ}|j ||¡}||krH|jrD|j |¡S|}|jrZ|  |j¡S|  t   ¡¡S)Nrr†re) rXrYrZÚobjectr±rJr~rr}r‹rrŒ)r€r…rXÚmissingr“r&r&r'rÍsÿ  zGNUTranslations.lgettextcCsddl}| dtd¡z|j|| |¡f}Wn@tk rn|jrX|j |||¡YS|dkrf|}n|}YnX|jr‚|  |j¡S|  t   ¡¡S)Nrrrer7) rXrYrZr±r"ÚKeyErrorr~rr}r‹rrŒr’r&r&r'rÛs ÿ  zGNUTranslations.lngettextcCs6tƒ}|j ||¡}||kr2|jr.|j |¡S|S|Srz)r×r±rJr~r )r€r…rØr“r&r&r'r ìs zGNUTranslations.gettextcCs^z|j|| |¡f}Wn@tk rX|jrB|j |||¡YS|dkrP|}n|}YnX|Sr)r±r"rÙr~r)r€rŽrr>r“r&r&r'rõs zGNUTranslations.ngettextcCsF|j||f}tƒ}|j ||¡}||krB|jr>|j ||¡S|S|Srz)ÚCONTEXTr×r±rJr~r)r€r”r…Ú ctxt_msg_idrØr“r&r&r'rszGNUTranslations.pgettextc Csn|j||f}z|j|| |¡f}WnBtk rh|jrR|j ||||¡YS|dkr`|}n|}YnX|Sr)rÚr±r"rÙr~r)r€r”rŽrr>rÛr“r&r&r'r s zGNUTranslations.npgettextN)rWr¢r£r³r´rÚr¶r¦rFrrr rrrr&r&r&r'rdsY   Fc Csâ|dkr t}|dkrRg}dD]"}tj |¡}|r| d¡}q@qd|krR| d¡g}|D]$}t|ƒD]}||krf| |¡qfqZ|rŠg} nd} |D]J}|dkr¢qÞtj ||dd|¡} tj  | ¡r’|rÔ|  | ¡q’| Sq’| S)N)ÚLANGUAGEÚLC_ALLÚ LC_MESSAGESÚLANGrDÚCrÞz%s.mo) Ú_default_localedirÚosÚenvironrJr¸rkryÚpathÚjoinÚexists) ÚdomainÚ localedirÚ languagesÚallÚenvarrxÚnelangsÚlangÚnelangrMÚmofiler&r&r'rs8       Ú unspecifiedc Cs|dkr t}t|||dd}|sB|r*tƒSddlm}t|d|ƒ‚d}|D]Æ} |tj | ¡f} t   | ¡} | dkr–t | dƒ} t   | || ƒ¡} W5QRXddl } |   | ¡} |tk röddl}| dtd¡|rö| ¡| d d t¡|  |¡W5QRX|dkr| }qJ| | ¡qJ|S) NT)rêr)ÚENOENTz$No translation file found for domainÚrbzparameter codeset is deprecatedrer‡z.*\bset_output_charset\b.*)rrrÚerrnorñÚFileNotFoundErrorrâräÚabspathÚ _translationsrJÚopenÚ setdefaultÚcopyÚ _unspecifiedrXrYrZr‰rŠršrƒ)rçrèréÚclass_r„rtÚmofilesrñrMrïÚkeyÚtrrùrXr&r&r'rCsH ÿ   ÿ ÿ  cCst||d|d}| |¡dS)NT)r„rt)rr)rçrèrtrŸrþr&r&r'rnsÚmessagescCs|dk r |atSrz)Ú_current_domain)rçr&r&r'r|scCs|dk r|t|<t |t¡Srz)Ú _localedirsrJrá)rçrèr&r&r'r ƒscCs0ddl}| dtd¡|dk r&|t|<t |¡S)Nrz'bind_textdomain_codeset() is deprecatedre)rXrYrZÚ_localecodesetsrJ)rçrtrXr&r&r'r ŠsÿcCs:zt|t |d¡ƒ}Wntk r.|YSX| |¡Srz)rrrJrµr )rçr…rþr&r&r'r ”s  c Cs¼ddl}| dtd¡t |¡}z<| ¡*| ddt¡t|t |d¡|d}W5QRXWn&t k r‚|  |pzt   ¡¡YSX| ¡&| ddt¡|  |¡W5QR£SQRXdS)Nrz1ldgettext() is deprecated, use dgettext() insteadrer‡ú.*\bparameter codeset\b.*©rtrˆ)rXrYrZrrJr‰rŠrrrµr‹rrŒr)rçr…rXrtrþr&r&r'r›s&ÿ  ÿ$ ÿcCsRzt|t |d¡ƒ}Wn,tk rB|dkr6|YS|YSYnX| |||¡Sr)rrrJrµr)rçrŽrr>rþr&r&r'r ¬sc CsÒddl}| dtd¡t |¡}z<| ¡*| ddt¡t|t |d¡|d}W5QRXWn8t k r”|dkrz|}n|}|  |pŒt   ¡¡YSX| ¡*| ddt¡|  |||¡W5QR£SQRXdS) Nrz3ldngettext() is deprecated, use dngettext() insteadrer‡rrr7r‘)rXrYrZrrJr‰rŠrrrµr‹rrŒr)rçrŽrr>rXrtrþr“r&r&r'r¶s,ÿ  ÿ$ ÿcCs<zt|t |d¡ƒ}Wntk r.|YSX| ||¡Srz)rrrJrµr)rçr”r…rþr&r&r'rÌs  cCsTzt|t |d¡ƒ}Wn,tk rB|dkr6|YS|YSYnX| ||||¡Sr)rrrJrµr)rçr”rŽrr>rþr&r&r'rÔscCs tt|ƒSrz)r r)r…r&r&r'r ßsc CsNddl}| dtd¡| ¡&| ddt¡tt|ƒW5QR£SQRXdS)Nrr†rer‡z.*\bldgettext\b.*)rXrYrZr‰rŠrr)r…rXr&r&r'râsÿ ÿcCstt|||ƒSrz)r r)rŽrr>r&r&r'rësc CsRddl}| dtd¡| ¡*| ddt¡tt|||ƒW5QR£SQRXdS)Nrrrer‡z.*\bldngettext\b.*)rXrYrZr‰rŠrr)rŽrr>rXr&r&r'rîsÿ ÿcCs tt||ƒSrz)rr)r”r…r&r&r'røscCstt||||ƒSrz)rr)r”rŽrr>r&r&r'rüs)r:)NNF)N)N)N)0rrârÚsysÚ__all__räråÚ base_prefixráÚcompileÚVERBOSEÚDOTALLrr(r)rHr¾rIrFr[rdryrrrrörúrrrrrrr r r rr rrrr rrrrrrr&r&r&r'Ú1s†û  õ    1 $*f7 &ÿ +