grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a XC?h¿1ãM@sì dZddlZddlZddlZddlZddlZddlmZddl Z gd¢Z dd„Z dd„Z z dd l TWnJey®d Zd Zd ZdZd ZdZdZdZeZdd„Z�d�dd„ZYn0deƒvr¾e ZdeƒvrÌe ZeZiZe   e¡dd„ƒZdd„Z!�dždd„Z"dd„Z#e $d¡Z%�dŸd d!„Z&�d d"d#„Z'�d¡d$d%„Z(�d¢d'd(„Z)d)d*„Zd+d,„Z*e+fd-d.„Z,d/d0„Z-d1d2„Z.eZ/d3d4„Z0d5d6„Z1d7d8„Z2d9d:„Z3d;d<„Z4�d£d>d?„Z5efd@dA„Z6�d¤dBd„ZefdCdD„Z7ej8 9dE¡�rà�d¥dFdG„Z:nPze;Wn:e<�y"e=edHƒ�r�d¦dIdG„Z:n �d§dJdG„Z:Yn0�d¨dKdG„Z:dLdLdMdNdNdOdPdQdRdSdMdTdUdVdMdMdMdWdXdYdZdVd[dTd\d]dUd^d_d`dadNdbdcdOdddedfdgdhdidQdRdSdjœ,Z>e?e> @¡ƒD]"\ZAZBeA Cdkdl¡ZAe> DeAeB¡�qšdmdmdmdndodpdqdqdrdsdtdtdudvdwdxdxdydzd{d|d}d~dd€d�d‚dƒd„d…d†d‡dˆd‰dŠd‹dxdŒdŒd�dŽd�d�d�d�d‘d’d“d‘d’d”d•d–d—d—d˜d™dšd›dœd�dždŸd d d¡d¡d¢d£d£d—d¤dLd¥dLdLdud¦dLdLd§d¨d§d©dªd«d§d¬dud­d®d¯d°d±d²d³d´d´d´dµd¶d·d·d´d´d´d¸d¸d¸d¸d¹dºd»d¼d¹d½d¾d¿d¹dÀdÁdÂdÃdÄdÅdÅdÆdÇdÈdÇdÉdudÊdËdÌdÍdÎdÏdÐdÑdÒdÓdÔdÕdÖd×dØdÙdÚdÑdudÛdÜdÝdÞdßdÑdàdudÑdudLdudádâdãdädádådædçdèdédêdëdìdídådîdïdðdñdòdódôdõdöd÷dødùdÆdúdúdûdûdüdýdýdþdÿ�d�d�d�d�d�d�d�dd¥�d�d�d�d�d�d�d�d�d�d �d �d �d �d �d �d �d d¹d¹d¼d¹�d�d�d �d dÇ�d�d�d�d�d�d�d�d�d�d�d�d�d�dd³d³d³�d�d�d�d�d�d�d�d�d�d�d �d �d!�d"�d �d �d�ddudÛdudÛdudÛ�d#�d$�d#�d#�d%�d%�d%�d�d�d&�d'�d'�d'�d(�d(�d'�d'�d'�d'�d'�d)�d)�d)�d*�d)�d+�d,�d-�d-�d.�d/�d/�d0�d0�d0�d1�d0�d0�d2�d2�d3�d4�d5�d5�d6�d6�d7�d8�d9�d:�d;�d<�d=�d>�d>�d?�d?�d>�d<�d<�d@�d@�dA�dB�dC�dC�dD�dE�dF�dG�dH�dH�dI�dJ�dK�dK�dL�dL�dM�dN�dO�dO�dP�dP�dQ�dQ�dR�dSd d �dT�dU�dV�dW�dX�dYdÁ�dZdÂdÁ�d[�d[�d\�d]�d\�d\�d\�d\�d^�d^�d_�d_�d]�d]�d[�d`�d`�da�db�dc�dc�dd�de�de�df�dg�dh�di�dj�dk�dj�dl�dl�dm�dm�dm�dn�dodLdL�dp�dp�dq�dn�do�dn�dr�ds�dt�dt�dt�du�du�dv�dt�dw�dx�dx�dy�dz�d{�d|�d|�d}�d~�d�d€�d��d€�d‚�dƒd³�d‚�d€�d„�d…�d†�d†�d‡�d†�dˆ�dˆ�d‰�dŠ�d‰�dˆ�d‰�d‰�d‹�dŒ�d��dŽ�d��d��d�dådå�d‘�d‘�d’�d“�d“�d”�d•�d‚�d”�d–�d“�d€�d‚�d€�d—�d‚�d��d��d—�d“�d“�d“�d˜�d˜�d™�d™�dš�d›�dš�dœ�d��dš�dž�dŸ�dŸ�dŸ�dŸ�d �d¡�d¢�d¢�d£�d£�d¤�d¤�d¥�d¥�d¤�d¦�d§�d¨�d©�dª�d«�d«�d¬�d¬�d­�d®�d¯�d°�d¯�d±�d±�d²�d²�d²�d³�d¯�d´�dµ�dµ�d¶�d¶d¦�d·�d¸�d¹�d¸�dº�dº�dº�d»�d»�d¼�d¼�d¼�d¼�d½�d½�d¾�d¾�d¿�dÀ�dÁ�dÂ�dÂ�dÃ�dÃ�dÄ�dÅ�dÆd­�dÇ�dÈd­�dÉ�dÉ�dÊ�dË�dÈd®d®�dÌ�dÌ�dÍ�œLZE�dÎ�dÏ�dÐ�dÑ�dÒ�dÓ�dÔ�dÕ�dÖ�d×�dØ�dÙ�dÚ�dÛ�dÜ�dÝ�dÞ�dß�dà�dá�dâ�dã�dä�dä�då�dæ�dç�dè�dé�dé�dê�dë�dì�dí�dî�dï�dð�dñ�dò�dó�dô�dõ�dö�d÷�dø�dù�dú�dû�dü�dý�dþ�dÿ�d�d�d�d�d�d�d�d�d�d �d �d �d �d �d �d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d �d!�d"�d#�d$�d%�d&�d'�d'�d(�d)�d*�d+�d,�d-�d.�d/�d0�d1�d2�d3�d4�d5�d6�d7�d8�d9�d:�d;�d<�d=�d>�d?�d@�dA�dB�dC�dD�dE�dF�dG�dH�dI�dJ�dK�dL�dM�dN�dO�dP�dQ�dR�dS�dT�dU�dV�dW�dX�dY�dZ�d[�d\�d]�d^�d_�d`�d_�d`�da�db�dc�dd�de�df�dg�df�dh�di�dj�dk�dl�dm�dn�do�dp�dq�dr�ds�dt�du�dv�dw�dx�dy�dz�d{�d|�d}�d~�d�d€�d��d‚�dƒ�d„�d…�d†�d‡�dˆ�d‰�dŠ�d‹�dŒ�d��d��dŽ�d��d��d‘�d’�d“�d”�d•�d–œÐZF�d—�d˜„ZGzeWne<� yœYn0e  H�d™¡eI�dšk� rèeJ�d›ƒeJƒeGƒeJƒeJ�dœƒeJƒe.ƒdS(©aœLocale 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)Ú getlocaleÚgetdefaultlocaleÚgetpreferredencodingÚErrorÚ setlocaleÚ resetlocaleÚ localeconvÚstrcollÚstrxfrmrÚatofÚatoiÚformatÚ format_stringÚcurrencyÚ normalizeÚLC_CTYPEÚ LC_COLLATEÚLC_TIMEÚ LC_MONETARYÚ LC_NUMERICÚLC_ALLÚCHAR_MAXcCs||k||kS)zZ strcoll(string,string) -> int. Compares two strings according to the locale. ©)ÚaÚbrrú+/opt/alt/python39/lib64/python3.9/locale.pyÚ_strcoll!srcCs|S)z\ strxfrm(string) -> string. Returns a string that behaves for cmp locale-aware. r)ÚsrrrÚ_strxfrm'sr)Ú*ééééééécCs,dgddddgdddddddddddddœS)zd localeconv() -> dict. Returns numeric and monetary locale-specific parameters. r!ÚÚ.)ÚgroupingÚcurrency_symbolÚ n_sign_posnÚ p_cs_precedesÚ n_cs_precedesÚ mon_groupingÚn_sep_by_spaceÚ decimal_pointÚ negative_signÚ positive_signÚp_sep_by_spaceÚint_curr_symbolÚ p_sign_posnÚ thousands_sepÚmon_thousands_sepÚ frac_digitsÚmon_decimal_pointÚint_frac_digitsrrrrrr ?s&ïr cCs|dvrtdƒ‚dS)zd setlocale(integer,string=None) -> string. Activates/queries locale processing. )Nr(ÚCz*_locale emulation only supports "C" localer<)r)ÚcategoryÚvaluerrrrWsrr r cCstƒ}tr| t¡|S)N)Ú _localeconvÚ_override_localeconvÚupdate)Údrrrr ls ccsJd}|D]<}|tkrdS|dkr:|dur2tdƒ‚|Vq2|V|}qdS)Nrzinvalid grouping)rÚ ValueError)r*Z last_intervalÚintervalrrrÚ_grouping_intervalszsrEFc Csðtƒ}||rdpd}||r dp"d}|s2|dfS|ddkr\| ¡}|t|ƒd…}|}nd}d}g}t|ƒD]B} |r„|dd vr�|}d}q´| || d…¡|d| …}qp|rÂ| |¡| ¡|| |¡|t|ƒt|ƒd fS) Nr8r7r/r*réÿÿÿÿú r(Ú 0123456789r&)r ÚrstripÚlenrEÚappendÚreverseÚjoin) rÚmonetaryÚconvr7r*ÚstrippedZ right_spacesZ left_spacesÚgroupsrDrrrÚ_groupŠs2   þrRcCsdd}|r&||dkr&|d7}|d8}qt|ƒd}|rT||dkrT|d8}|d8}q2|||d…S)NrrGr&)rJ)rZamountZlposZrposrrrÚ_strip_padding©s   rSzG%(?:\((?P.*?)\))?(?P[-#0-9 +*.hlL]*?)[eEfFgGdiouxXcrs%]c Gs´|r||f|}n||}|ddvr~d}| d¡}|rRt|d|d�\|d<}tƒ|r^dp`d}| |¡}|r°t||ƒ}n2|ddvr°d}|r¢t||d�\}}|r°t||ƒ}|S) NrFZeEfFgGrr)©rNr:r1Zdiu)ÚsplitrRr rMrS) Úpercentr>r*rNÚ additionalZ formattedZsepsÚpartsr1rrrÚ_format·s*   ÿ    rYc Cs tt |¡ƒ}t d|¡}t|tjƒrjg}|D]8}| ¡ddkrN| d¡q.| t | ¡|||ƒ¡q.n’t|t ƒsz|f}g}d}|D]t}| ¡ddkr¦| d¡q†| d¡  d¡} | t | ¡||||g||d|d| …¢RŽ¡|d| 7}q†t |ƒ}||S)aFormats 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. Conversion uses monetary thousands separator and grouping strings if forth parameter monetary is true.z%srFú%rZ modifiersr r&) ÚlistÚ _percent_reÚfinditerÚsubÚ isinstanceÚ_collections_abcÚMappingÚgrouprKrYÚtupleÚcount) ÚfÚvalr*rNZpercentsZnew_fZnew_valZpercÚiZ starcountrrrrÏs4      ýü rcGs`ddl}|jdtdd�t |¡}|r:t| ¡ƒt|ƒkrJtdt|ƒƒ‚t ||||g|¢RŽS)z&Deprecated, use format_string instead.rNz`This method will be removed in a future version of Python. Use 'locale.format_string()' instead.r')Ú stacklevelzHformat() must be given exactly one %%char format specifier, %s not valid) ÚwarningsÚwarnÚDeprecationWarningr\ÚmatchrJrbrCÚreprrY)rVr>r*rNrWrirlrrrrôsý ÿrTc Cs„tƒ}||rdpd}|dkr&tdƒ‚td|t|ƒ|dd�}d|d }|rÐ||rXd pZd }||d krld pnd}||d kr€dp‚d} |r || r”dp–d|}n0|r¼|ddkr¼|dd…}|| rÆdpÈd|}||d krÞdpàd} ||d kròdpôd} | d k�rd|d}n`| dk�r$| |}nL| dk�r8|| }n8| dk�rP| d| ¡}n | dk�rh| d | ¡}n| |}| dd¡ d d¡S)zIFormats val according to the currency settings in the current locale.r;r9r!z9Currency formatting is not possible using the 'C' locale.z%%.%ifTrTú<ú>r5r+rr.r-r0r4rGr(rFNr,r6r2r3ú(ú)r&r'r#r%)r rCrYÚabsÚreplace) rfZsymbolr*Z internationalrOZdigitsrZsmbZprecedesZ separatedZsign_posZsignrrrrs:         rcCs td|ƒS)z8Convert float to string, taking the locale into account.z%.12g)rY)rfrrrr2srcCs:tƒ}|d}|r| |d¡}|d}|r6| |d¡}|S)zHParses a string as a normalized number according to the locale settings.r7r(r1r))r rs)ÚstringrOÚtsZddrrrÚ delocalize6s  rvcCs |t|ƒƒS)zi>iLi:i�iziNi|iPiPiaiii‚iHici)iiiiFikikik iiii;$i;i;i;i;i; i; i;i;iOi iiii[ili2ii$i i i i i i i i i $i (i ,i 0i 4i 8i <i @i Di Hi Li Pi TiAiiiZi(i_iIiDiJiiQiQiiBi€i"i.i i iCiCi*iRiˆi4i…ixiji5cCs¸i}|fdd„}|ƒ|d=tdƒtdƒtƒ\}}td|p@dƒtd|pNdƒtƒtd ƒtdƒ| ¡D]@\}}t|d ƒt|ƒ\}}td |p˜dƒtd |p¦dƒtƒqptƒtd ƒtdƒtƒ| ¡D]B\}}t|d ƒt|ƒ\}}td |pþdƒtd |�pdƒtƒqÖzttdƒWn$tdƒtdƒtdƒYnh0tƒtdƒtdƒ| ¡D]F\}}t|d ƒt|ƒ\}}td |�p–dƒtd |�p¦dƒtƒ�qldS)z Test function. cSs0tƒ ¡D] \}}|dd…dkr |||<q dS)Nr#ZLC_)ÚglobalsÚitems)Ú categoriesÚkÚvrrrÚ_init_categories˜sz'_print_locale.._init_categoriesrz4Locale defaults as determined by getdefaultlocale():zH------------------------------------------------------------------------z 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)rzrrçrrrr)rèrëZlangÚencÚnamer=rrrÚ _print_locale“sV        rîÚ LC_MESSAGESÚ__main__zLocale aliasing:zNumber formatting:)N)F)FF)FF)FF)TFF)r›)N)T)T)T)T)KÚ__doc__r r€Zencodings.aliasesÚrer`Úbuiltinsrr¨Ú functoolsÚ__all__rrr�ržrrrrrïrrrrCrr rrær r r?r@ÚwrapsrErRrSÚcompiler\rYrrrrvÚfloatr r r|r§rŠr’rr˜ršrrrr¡Ú startswithrÚCODESETÚ NameErrorÚhasattrr…ÚsortedrçrérêrsÚ setdefaultr”r¢rîrKÚ__name__rzrrrrÚsL           %  /  S" 5     $Ð6 }€€€€´ a€®V :