� c��j3� �"�dZddlZddlZddlZddlZddlZddlmZddl Z gd�Z d�Z d�Z ddl �de�vre Zde�vre ZeZiZe j@e�d��Zd�Z!�d�d�Z"d�Z#ejHd�Z%�d�d�Z&�d�d�Z'�d�d�Z(�d�d�Z)d�Zd�Z*�d�d�Z+e,fd�Z-d �Z.d!�Z/eZ0d"�Z1d#�Z2d$�Z3d%�Z4d&�Z5�d�d'�Z6�d�d(�Z7efd)�Z8�d�d*�Zefd+�Z9 dd,l m:Z: e;�d�d.�Zd?�d@dA�dBd4�dCdD�dEdF�dGdH�dId4�dJd4�dKd4�idLdM�dNdO�dPdQ�dRdS�dTdH�dUdV�dWdD�dXdY�dZd[�d\dF�d]d^�d_d`�dadb�dcdd�ded6�dfdg�dhdi��d9djdkdldmdndod=d?dAdp� �Z>e?e>j���D])\ZAZBeAj�dqdr�ZAe>j�eAeB��+[A[Bidsdt�dudt�dvdt�dwdx�dydz�d{d|�d}d~�dd~�d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��id�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d���id�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�dÓd�dÅ“d�dÇ“d�dÉ“d�dÅ“d�dÇ“d�dÍ“�id�dÏ“d�dÑ“d�dÓ“d�dÓ“d�dÖ“d�dØ“d�dÚ“d�dÜ“d�dÞ“d�d��d�d�d�d�d�d�d�d�d�d�d�d�d�d��id�d�d�d�d�dÓ“d�d�d2d1�d�d��d�d1�d�d1�d�d��d�d��d�d1�d�d1�d�d��d�d���dd���d�d��d�d��i�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"��i�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�d-��d5�d6��d7�d8��d9�d:��d;�d-��i�d<�d=��d>�d?��d@�dA��dB�dC��dD�dE��dF�dG��dH�dG��dI�dJ��dK�dL��dM�dN��dO�dL��dP�dQ�d3d���dR�dS��dT�dU��dV�dW��dX�dY��i�dZ�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�da��dud���dv�dw��dx�dy��i�dz�d{��d|�d}��d~�d��d��da��d��d���d�d���d��da��d�d���d�d1��d�d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���i�d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���i�d��d���d��d���d��d���d��dJ��d��d���d��d���d��d���dÂ�d���dÃ�dÄ“�dÅ�dÆ“�dÇ�dÆ“�dÈ�dÉ“�dÊ�dË“�dÌ�dÍ“�dÎ�dÍ“�dÏ�dГ�dÑ�dÒ“�i�dÓ�dÔ“�dÕ�dÔ“�dÖ�dד�dØ�dÙ“�d�d���dÛ�dÜ“�dÝ�dד�dÞ�dß“�d��dד�d�dד�d�dד�d�dÜ“�d�dד�d�d��d�d��d�d��d�d��i�d�d��d�d��d�d��d�d��d�d��d��d-��d��d-��d��d3��d��d-��d��d���d��d���d��d��d��d��d��dL��d��d��d�d��d�d��i�d�d��d�d��d�d ��d �d ��d �d ��d �d ��d�d ��d�d ��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��i�d�d��d�d��d �d!��d"�d#��d$�d%��d&�d'��d(�d)��d*�d+��d,�d+��d-�d.��d/�d0��d1�d+��d2�d+��d3�d)��d4�d)��d5d���d6�dw��i�d7d���d8�dw��d9d���d:�dw��d;�d<��d=�d>��d?�d<��d@�d<��dA�dB��dC�dB��dD�dB��dE�d ��dF�d ��dG�dH��dI�dJ��dK�dJ��dL�dJ��i�dM�dN��dO�dN��dP�dJ��dQ�dJ��dR�dJ��dS�dJ��dT�dJ��dU�dV��dW�dV��dX�dV��dY�dZ��d[�dV��d\�d]��d^�d_��d`�da��db�da��dc�dd��i�de�df��dg�df��dh�di��dj�di��dk�di��dl�dm��dn�di��do�di��dp�dq��dr�dq��ds�dt��du�dv��dw�dx��dy�dx��dz�d{��d|�d{��d}�d~��i�d�d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���i�d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���i�d��d���d��d���d��d���d��d���d��d���d��d���dÂ�dÓ�d�d��d�d��dÆ�dÇ“�dÈ�dÉ“�dÊ�dË“�dÌ�dÍ“�dÎ�dÏ“�dÐ�dÑ“�dÒ�d?��dÓ�dÔ“�i�dÕ�dA��dÖ�d?��d×�dØ“�dÙ�dØ“�dÚ�dÛ“�dÜ�dÝ“�dÞ�dÛ“�dß�dÛ“�d��dÛ“�d�dÛ“�d�d��d�d��d�d��d�d��d�dÝ“�d�dÝ“�d�dØ“�i�d�d��d�d��d�d��d�d��d�d��d��d��d��d���d��d���d��d���d��d���d��d���d��d���d�d��d�d��d�d��d�d��d�d��i�d �d��d �d ��d �d ��d �d ��d�d��d�d��dd1��dd1��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d �d!��i�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�d6��d8�d9��d:�d;��d<�d=��i�d>�d?��d@�dA��dB�d?��dC�dD��dE�dF��dG�d��dH�dD��dI�d?��dJ�dK��dL�dM��dN�dO��dP�dO��dQ�dR��dS�dO��dT�dU��dV�dU��dW�dX��i�dY�dZ��d[�dX��d\�dU��d]�dX��d^�dX��d_�d`��da�db��dc�dd��de�df��dg�dh��di�dj��dk�dj��dl�d���dm�d���dn�do��dp�do��dq�dr��i�ds�dt��du�dt��dv�dw��dx�dy��dz�dD��d{�dw��d|�d}��d~�dt��d�d?��d��dD��d��d?��d��d���d��dD��d��dj��d��dj��d��d���d��dt��i�d��dt��d��dt��d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���i�d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���i�d��d���d��d���dÂ�d���dÃ�dÄ“�dÅ�dÆ“�dÇ�dÈ“�dÉ�dÊ“�dË�dÈ“�dÌ�dÍ“�dÎ�dÍ“�dÏ�dГ�dÑ�dГ�dÒ�dГ�dÓ�dÔ“�dÕ�dÈ“�dÖ�dד�dØ�dÙ“�i�dÚ�dÙ“�dÛ�dÜ“�dÝ�dÜ“�dÞ�dß“�d��d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��i�d�d���d��d���d��d���d��d���d��d���d��d���d��d���d��d��d�d��d�d��d�d��d�d��d�d��d �d ��d �d ��d �d ��d�d���d �d�d�d�d�d�d�d�d�d�d� �ZEi�d�d��d�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�i�d7�d8��d9�d:��d;�d<��d=�d>��d?�d@��dA�dB��dC�dB��dD�dE��dF�dG��dH�dI��dJ�dK��dL�dM��dN�dM��dO�dP��dQ�dR��dS�dT�d �dU��i�dV�dW��dX�dY��dZ�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��i�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���i�d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���i�d��d���d��d���d��d���d��d“�dÃ�dÄ“�dÅ�dÆ“�dÇ�dÈ“�dÉ�dÊ“�dË�dÊ“�dÌ�dÍ“�dÎ�dÏ“�dÐ�dÑ“�dÒ�dÓ“�dÔ�dÕ“�dÖ�dד�dØ�dÙ“�dÚ�dÛ“�i�dÜ�dÝ“�dÞ�dß“�d��d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d��d���d��d���d��d���d��d���d��d���i�d��d���d�d��d�d��d�d��d�d��d�d ��d �d ��d �d ��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��i�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?�d=��i�d@�dA��dB�dC��dD�dE��dF�dG��dH�dI��dJ�dK��dL�dM��dN�dK��dO�dP��dQ�dR��dS�dT��dU�dV��dW�dX��dY�dZ��d[�d\��d]�d^��d_�d`��i�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���i�d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��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��ZG ee j��d��eI�d�k(r6eJ�d��eJ�eG�eJ�eJ�d��eJ�e/�yy#e$rdZd Zd ZdZd Zd Zd ZdZeZd�Z�d�d�ZY���wxYw#e$rd-�Z:Y��YwxYw#e=$r �d�d/�Z int. Compares two strings according to the locale. �)�a�bs �/usr/lib64/python3.12/locale.py�_strcollr!s�� ��E�a�!�e� ��c��|S)z\ strxfrm(string) -> string. Returns a string that behaves for cmp locale-aware. r)�ss r�_strxfrmr#'s �� �Hr )�*�������c�v�iddg�dd�dd�dd�dd�dg�d d�d d �d d�d d�dd�dd�dd�dd�dd�dd�dd�ddi�S)zd localeconv() -> dict. Returns numeric and monetary locale-specific parameters. �groupingr%�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_digitsrrr rr r ?s��� (� �S�E�(�!�2�(��s�(� ��(� �� (� �� (� !�#� (� ��(� ��(� ��(�!�#�(�"�2�(��s�(� ��(�$�R�(��s�(� $�R�!(�""�3�#(� (r c�"�|dvr td��y)zd setlocale(integer,string=None) -> string. Activates/queries locale processing. )Nr/�Cz*_locale emulation only supports "C" localerB)r)�category�values rrrWs�� �� '��D�E� E�r r r c�P�t�}tr|jt�|S�N)� _localeconv�_override_localeconv�update)�ds rr r ls��� �A�� ���%�&� �Hr c#�pK�d}|D]+}|tk(ry|dk(r|� td�� |���|��|}�-y�w)Nrzinvalid grouping)r� ValueError)r-� last_interval�intervals r�_grouping_intervalsrOzsQ�����M��� �x� � � �q�=��$� �!3�4�4��#�#���� � ��s�46c���t�}||xrdxsd}||xrdxsd}|s|dfS|ddk(r!|j�}|t|�d}|}nd}d}g}t|�D],} |r|dd vr|}d}n|j || d�|d| }�.|r|j |�|j �||j |�z|zt|�t|�d z zfS) Nr=r<r3r-r������ r/� 0123456789r*)r �rstrip�lenrO�append�reverse�join) r"�monetary�convr<r-�stripped� right_spaces� left_spaces�groupsrNs r�_groupr_�s�� �<�D���9�&9�L�_�M�M��H�/��=�:�>�H� ��1�v� ���u��|��8�8�:����X���(� � ��� ��K� �F�'��1���A�b�E��-��K��A� �� � �a�� � �m�$� �j��y�M��2� �� � �a�� �N�N���m�(�(��0�0�<�?� �M��c�&�k�A�o�.� �r c��d}|r||dk(r|dz }|dz}|r ||dk(r�t|�dz }|r||dk(r|dz}|dz}|r ||dk(r�|||dzS)NrrRr*)rU)r"�amount�lpos�rposs r�_strip_paddingrd�s��� �D� �Q�t�W��^� �� ���!� �� �Q�t�W��^� �q�6�A�:�D� �Q�t�W��^� �� ���!� �� �Q�t�W��^� �T�$�q�&�>�r zG%(?:\((?P.*?)\))?(?P[-#0-9 +*.hlL]*?)[eEfFgGdiouxXcrs%]c�P�|r ||f|zz}n||z}|ddvr t|||�}|S)NrQ� eEfFgGdiu�� _localize)�percentrDr-rY� additional� formatteds r�_formatrl�s?�����x�*�4�5� ��e�O� ��r�{�k�!��i��8�<� � �r c��d|vrad}|jd�}|rt|d|��\|d<}t�|xrdxsd}|j|�}|r t ||�}|Sd}|rt||��\}}|r t ||�}|S)Nr6r�rYr?r5)�splitr_r rXrd)rkr-rY�seps�partsr5s rrhrh�s��� �i��������$�� �#�E�!�H�x�@�N�E�!�H�d�"� �X�%E�2E�&A�1@�B� �!�&�&�u�-� � �&�y�$�7�I� �� �� �$�Y��B�O�I�t� �&�y�$�7�I� �r c ���ttj|��}tjd|�}t |t j �r]g}|D]U}|j�ddk(r|jd��+|jt|j�|||���Wn�t |t�s|f}g}d}|D]�}|j�ddk(r|jd��+|jd�jd�} |jt|j�||||g||dz|dz| z����|d| zz }��t|�}||zS)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%srQ�%r� modifiersr$r*) �list� _percent_re�finditer�sub� isinstance�_collections_abc�Mapping�grouprVrl�tuple�count) �f�valr-rY�percents�new_f�new_val�perc�i� starcounts rrr�sO���K�(�(��+�,�H� �O�O�D�!� $�E��#�'�/�/�0����D��z�z�|�B���$����s�#����w�t�z�z�|�S�(�H�M�N� � �#�u�%��&�C��� ���D��z�z�|�B���$����s�#� �J�J�{�3�9�9�#�>� ����w�t�z�z�|�&)�!�f�&.�&.� ?�(+�1�Q�3�q��s�9�}�'=�  ?�@� �a�)�m�$��� ��.�C� �3�;�r c��t�}||xrdxsd}|dk(r td��tt|�d|�d��|d��}d |zd z}|r_||xrd xsd }||d kxrdxsd}||d kxrdxsd} |r|| xrdxsdz|z}n|r |ddk(r|dd}|| xrdxsdz|z}||d kxrdxsd} ||d kxrdxsd} | d k(r d|zdz}nK| dk(r| |z}n@| dk(r|| z}n5| dk(r|j d | �}n| dk(r|j d | �}n| |z}|j d d�j d d�S) zIFormats val according to the currency settings in the current locale.r@r>r%z9Currency formatting is not possible using the 'C' locale.r6rTrn�<�>r:r.rr2r1r4r9rRr/rQNr0r;r7r8�(�)r*r+r'r))r rLrh�abs�replace) r��symbolr-� internationalrZ�digitsr"�smb�precedes� separated�sign_pos�signs rrr�s��� �<�D��-�5�$5�F�� G�F� ��}��+�,� ,� �S��X�a��x�q�[�)�H�t�D�A� �a��#� �A� ��=�6�%6�K�:K�L����A��1�/�D�_�E����Q��3�#3�G�7G�H� � ��y�(�S�.�B�/�!�3�A���R��C���#�2�h���Y�&�3�,�"�-��3�A��C��E�+�m�<�}�=�H� ��A��)�/�<�_� =�D��1�}� �!�G�c�M�� �Q�� �1�H�� �Q�� ��H�� �Q�� �I�I�c�4� �� �Q�� �I�I�c�4� �� �1�H�� �9�9�S�"� � %� %�c�2� .�.r c��td|�S)z8Convert float to string, taking the locale into account.z%.12g)rl)r�s rrr)s�� �7�C� � r c�~�t�}|d}|r|j|d�}|d}|r|j|d�}|S)zHParses a string as a normalized number according to the locale settings.r<r/r5r6)r r�)�stringrZ�ts�dds r� delocalizer�-sN�� �<�D� �o� �B� �����B�'�� �o� �B� �����C�(�� �Mr c��t|||�S)zBParses a string as locale number according to the locale settings.rg)r�r-rYs r�localizer�=s�� �V�X�x� 0�0r c�$�|t|��S)z�H� $�$r c��|dk(r5d|vr|dzS|jd�\}}}|dvr|S|dk(r t|d�S|dz|zS)N�euror6z .ISO8859-15)� ISO8859-15�UTF-8� ISO8859-1r��@)� partitionr�)r��modifierr�r�s r�_append_modifierr�rsb���6�� �d�?��-�'� '�����,���1�h� �.� .��K� �{� "�$�T�<�8� 8� �#�:�� � r c��|j�}d|vr|jdd�}d|vr|jdd�\}}nd}d|vr|jd�dd\}}n|}d}|}|r,|jdd�}|jd d�}|d|zz }|}|r|d|zz }tj |d�}|�|S|rPtj |d�}|�8d|vr t ||�S|jdd�dj�|k(r|S|r�|}|r|d|zz }tj |d�}|�7d|vr t ||�S|jdd�\}}t ||�dz|zS|rntj |d�}|�Vd|vrt ||�}t ||�S|jdd�\}}|j�|k(rt ||�dz|zS|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. �:r6r�r*r/Nr+r�r�)r�r�ro� locale_aliasr�r�r�) � localenamer�r�r�r��lang_encr�� lookup_name�defmods rrr}s&��" � � � �D� �d�{��|�|�C��%�� �d�{����C��+���h��� �d�{�!�Z�Z��_�R�a�0���(������H�� �(�(��b�1� �%�-�-�c�2�6� ��C�-�'�'���K���s�X�~�%� � � � �K�� .�D� ��� ������$�/�� � ��$��'��h�7�7��z�z�#�q�!�!�$�*�*�,��8�� ��� � � �3��>� )�K���� �T�2�� � ��$��(��x�8�8�!�Z�Z��Q�/�N�D�(�$�T�8�4�s�:�X�E� E� ��#�#�H�d�3�D����d�?�,�T�8�<�D�+�D�(�;�;�#�z�z�#�q�1� ��f��<�<�>�X�-�,�T�8�<�s�B�V�K�K� �r c���t|�}d|vr"|jdd�\}}|dk(rd|vr|dfSd|vrt|jd�dd�S|dk(ry |d k(ry td |z��) 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. r�r*r�r6� iso-8859-15Nr+rB)NNr�)Nr�zunknown locale: %s)rror}rL)r�r�r�s r�_parse_localenamer��s��� �Z� �D� �d�{����C��+���h� �v� �#�T�/���&� &� �d�{��T�Z�Z��_�R�a�(�)�)� ���� ���� �)�J�6� 7�7r c�l� |\}}|�d}|�|S|dz|zS#ttf$r td�d�wxYw)z� Builds a locale code from the given tuple (language code, encoding). No aliasing or normalizing takes place. NrBr6zXLocale must be None, a string, or an iterable of two strings -- language code, encoding.)� TypeErrorrL)� localetuple�languager�s r�_build_localenamer��se�� M�(���(� � ��H� � ��O��c�>�H�,� ,�� �z� "�M��B�C�HL� M�M�s � ��3c�H�ddl}|jddd��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. rNzlocale.getdefaultlocalezy{name!r} is deprecated and slated for removal in Python {remove}. Use setlocale(), getencoding() and getlocale() instead.)r'�)�remove)�warnings� _deprecated�_getdefaultlocale)�envvarsr�s rrrs3��0� ���!� B�� �� �W� %�%r c�� ddl}|j�\}}tjdk(r)|r'|dddk(rtj t |d��}||fS#ttf$rYnwxYwddl }|jj }|D]2}||d�}|s�|dk(r|jd�d}t|�Sd}t|�S)Nr�win32r+�0x�LANGUAGEr�rB) �_localer��sys�platform�windows_localer�r�� ImportError�AttributeError�os�environror�)r�r�r�r�r��lookup�variabler�s rr�r�(s��� �� �2�2�4���h� �<�<�7� "�t��R�a��D�0@�!�%�%�c�$��l�3�D��X�~��� �� (� � � ��� �Z�Z�^�^�F����H�T�*� � ��:�%�'�-�-�c�2�1�5� � � �Z� (�(��� � �Z� (�(s�A�A+�*A+c�^�t|�}|tk(rd|vr td��t|�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)� _setlocalerr�r�)rCr�s rrrFs4���H�%�J��6��c�Z�/��:�;�;� �Z� (�(r c�f�|r$t|t�stt|��}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. )ry� _builtin_strrr�r�)rC�locales rrrXs-���j���6��,�V�4�5�� �h�� '�'r c���ddl}|jdtd��|j�5|j dt��t �}ddd�t |t��y#1swY�xYw)z� Sets the locale for category to the default setting. The default setting is determined by calling getdefaultlocale(). category defaults to LC_ALL. rNz/Use locale.setlocale(locale.LC_ALL, "") insteadr+)� stacklevel�ignore)rC)r��warn�DeprecationWarning�catch_warnings� simplefilterrr�r�)rCr��locs rr r isj��� �M�M�9��q��� � � � "����h�1C��D�� �� #��x�*�3�/�0� #� "�s �"A-�-A6)rc�J�ttd�ryt�d}|�d}|S)N�getandroidapilevel�utf-8r*)�hasattrr�r�)r�s rrr�s/�� �3�,� -��$�&�q�)�� � ��H��r c�x�tjjrddl}|j dt d�tjj ry|s t�Stt�} ttd�t�tt|�S#t$rY�%wxYw#tt|�wxYw)z`Return the charset that the user is likely using, according to the system configuration.rN�XUTF-8 Mode affects locale.getpreferredencoding(). Consider locale.getencoding() instead.r+r�r/) r��flags�warn_default_encodingr�r��EncodingWarning� utf8_moderrrr)� do_setlocaler��old_locs rrr�s��� �9�9� *� *� � �M�M�j��� $� �9�9� � ����=� ��H�%�� )� ��(�B�'��=� �h�� (�� � �� �� �h�� (�s*�.B�> B'� B$�!B'�#B$�$B'�'B9c��tjjrddl}|j dt d�tjj ryt�S)z1Return the charset that the user is likely using.rNr�r+r�)r�r�r�r�r�r�r�r)r�r�s rrr�s@�� �9�9� *� *� � �M�M�j��� $� �9�9� � ���}�r �437rB�c�enr��jis�JIS7�jis7�ajec�eucJP�koi8czKOI8-C�microsoftcp1251�CP1251�microsoftcp1255�CP1255�microsoftcp1256�CP1256�88591�88592z ISO8859-2�88595z ISO8859-5�885915r��ascii�latin_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_jis�SJIS�tactis�TACTIS�eucKRr�zKOI8-RzKOI8-TzKOI8-U�RK1048) �euc_jp�euc_kr�utf_8�koi8_r�koi8_t�koi8_u�kz1048�cp1251�cp1255�cp1256r�r/�a3z az_AZ.KOI8-C�a3_azz a3_az.koic�aa_djzaa_DJ.ISO8859-1�aa_erz aa_ER.UTF-8�aa_etz aa_ET.UTF-8�afzaf_ZA.ISO8859-1�af_za�agr_pez agr_PE.UTF-8�ak_ghz ak_GH.UTF-8�amz am_ET.UTF-8�am_et�americanzen_US.ISO8859-1�an_eszan_ES.ISO8859-15�anp_inz anp_IN.UTF-8�arzar_AA.ISO8859-6�ar_aa�ar_aezar_AE.ISO8859-6�ar_bhzar_BH.ISO8859-6�ar_dzzar_DZ.ISO8859-6�ar_egzar_EG.ISO8859-6�ar_inz ar_IN.UTF-8�ar_iqzar_IQ.ISO8859-6�ar_jozar_JO.ISO8859-6�ar_kwzar_KW.ISO8859-6�ar_lbzar_LB.ISO8859-6�ar_lyzar_LY.ISO8859-6�ar_mazar_MA.ISO8859-6�ar_omzar_OM.ISO8859-6�ar_qazar_QA.ISO8859-6�ar_sazar_SA.ISO8859-6�ar_sdzar_SD.ISO8859-6�ar_ssz ar_SS.UTF-8�ar_syzar_SY.ISO8859-6�ar_tnzar_TN.ISO8859-6�ar_yezar_YE.ISO8859-6�arabic�asz as_IN.UTF-8�as_in�ast_eszast_ES.ISO8859-15�ayc_pez ayc_PE.UTF-8�azzaz_AZ.ISO8859-9E�az_azzaz_az.iso88599e�az_irz az_IR.UTF-8�bez be_BY.CP1251zbe@latinzbe_BY.UTF-8@latinz be_bg.utf8z bg_BG.UTF-8�be_byz be_by@latin�bem_zmz bem_ZM.UTF-8�ber_dzz ber_DZ.UTF-8�ber_maz ber_MA.UTF-8�bgz bg_BG.CP1251�bg_bgz bhb_in.utf8z bhb_IN.UTF-8�bho_inz bho_IN.UTF-8�bho_npz bho_NP.UTF-8�bi_vuz bi_VU.UTF-8�bn_bdz bn_BD.UTF-8�bn_inz bn_IN.UTF-8�bo_cnz bo_CN.UTF-8�bo_inz bo_IN.UTF-8�bokmalznb_NO.ISO8859-1ubokmÃ¥l�brzbr_FR.ISO8859-1�br_fr�brx_inz brx_IN.UTF-8�bszbs_BA.ISO8859-2�bs_ba� bulgarian�byn_erz byn_ER.UTF-8zc-frenchzfr_CA.ISO8859-1zc.asciizc.enz c.iso88591zc.utf8zC.UTF-8�c_czc_c.c�cazca_ES.ISO8859-1�ca_adzca_AD.ISO8859-1�ca_eszca_es@valenciazca_ES.UTF-8@valencia�ca_frzca_FR.ISO8859-1�ca_itzca_IT.ISO8859-1�catalan�ce_ruz ce_RU.UTF-8�cextendz chinese-sz zh_CN.eucCNz chinese-tz zh_TW.eucTW�chr_usz chr_US.UTF-8�ckb_iqz ckb_IQ.UTF-8�cmn_twz cmn_TW.UTF-8�crh_uaz crh_UA.UTF-8�croatianzhr_HR.ISO8859-2�cszcs_CZ.ISO8859-2�cs_cs�cs_cz�csb_plz csb_PL.UTF-8�cv_ruz cv_RU.UTF-8�cyzcy_GB.ISO8859-1�cy_gb�cz�cz_cz�czech�dazda_DK.ISO8859-1�da_dk�danish�dansk�dezde_DE.ISO8859-1�de_atzde_AT.ISO8859-1�de_bezde_BE.ISO8859-1�de_chzde_CH.ISO8859-1�de_de�de_itzde_IT.ISO8859-1z de_li.utf8z de_LI.UTF-8�de_luzde_LU.ISO8859-1�deutsch�doi_inz doi_IN.UTF-8�dutchznl_NL.ISO8859-1zdutch.iso88591znl_BE.ISO8859-1�dv_mvz dv_MV.UTF-8�dz_btz dz_BT.UTF-8�eezee_EE.ISO8859-4�ee_ee�eestizet_EE.ISO8859-1�elzel_GR.ISO8859-7�el_cyzel_CY.ISO8859-7�el_grz el_gr@eurozel_GR.ISO8859-15�en_agz en_AG.UTF-8�en_auzen_AU.ISO8859-1�en_bezen_BE.ISO8859-1�en_bwzen_BW.ISO8859-1�en_cazen_CA.ISO8859-1�en_dkzen_DK.ISO8859-1z en_dl.utf8z en_DL.UTF-8�en_gbzen_GB.ISO8859-1�en_hkzen_HK.ISO8859-1�en_iezen_IE.ISO8859-1�en_ilz en_IL.UTF-8�en_inzen_IN.ISO8859-1�en_ngz en_NG.UTF-8�en_nzzen_NZ.ISO8859-1�en_phzen_PH.ISO8859-1z en_sc.utf8z en_SC.UTF-8�en_sgzen_SG.ISO8859-1�en_uk�en_uszen_us@euro@eurozen_US.ISO8859-15�en_zazen_ZA.ISO8859-1�en_zmz en_ZM.UTF-8�en_zwzen_ZW.ISO8859-1z en_zw.utf8z en_ZS.UTF-8�eng_gb�englishzen_EN.ISO8859-1zenglish.iso88591� english_ukzenglish_united-stateszenglish_united-states.437� english_us�eozeo_XX.ISO8859-3zeo.utf8zeo.UTF-8�eo_eozeo_EO.ISO8859-3z eo_us.utf8z eo_US.UTF-8�eo_xx�eszes_ES.ISO8859-1�es_arzes_AR.ISO8859-1�es_bozes_BO.ISO8859-1�es_clzes_CL.ISO8859-1�es_cozes_CO.ISO8859-1�es_crzes_CR.ISO8859-1�es_cuz es_CU.UTF-8�es_dozes_DO.ISO8859-1�es_eczes_EC.ISO8859-1�es_es�es_gtzes_GT.ISO8859-1�es_hnzes_HN.ISO8859-1�es_mxzes_MX.ISO8859-1�es_nizes_NI.ISO8859-1�es_pazes_PA.ISO8859-1�es_pezes_PE.ISO8859-1�es_przes_PR.ISO8859-1�es_pyzes_PY.ISO8859-1�es_svzes_SV.ISO8859-1�es_uszes_US.ISO8859-1�es_uyzes_UY.ISO8859-1�es_vezes_VE.ISO8859-1�estonian�etzet_EE.ISO8859-15�et_ee�euzeu_ES.ISO8859-1�eu_es�eu_frzeu_FR.ISO8859-1�faz fa_IR.UTF-8�fa_irzfa_ir.isiri3342zfa_IR.ISIRI-3342�ff_snz ff_SN.UTF-8�fizfi_FI.ISO8859-15�fi_fi�fil_phz fil_PH.UTF-8�finnishzfi_FI.ISO8859-1�fozfo_FO.ISO8859-1�fo_fo�frzfr_FR.ISO8859-1�fr_bezfr_BE.ISO8859-1�fr_ca�fr_chzfr_CH.ISO8859-1�fr_fr�fr_luzfr_LU.ISO8859-1u français�fre_fr�frenchzfrench.iso88591� french_france�fur_itz fur_IT.UTF-8�fy_dez fy_DE.UTF-8�fy_nlz fy_NL.UTF-8�gazga_IE.ISO8859-1�ga_ie�galegozgl_ES.ISO8859-1�galician�gdzgd_GB.ISO8859-1�gd_gb�ger_de�germanzgerman.iso88591�german_germany�gez_erz gez_ER.UTF-8�gez_etz gez_ET.UTF-8�gl�gl_es�greek�gu_inz gu_IN.UTF-8�gvzgv_GB.ISO8859-1�gv_gb�ha_ngz ha_NG.UTF-8�hak_twz hak_TW.UTF-8�hezhe_IL.ISO8859-8�he_il�hebrew�hizhi_IN.ISCII-DEV�hi_inzhi_in.isciidev�hif_fjz hif_FJ.UTF-8�hnez hne_IN.UTF-8�hne_in�hr�hr_hr�hrvatski�hsb_dezhsb_DE.ISO8859-2�ht_htz ht_HT.UTF-8�huzhu_HU.ISO8859-2�hu_hu� hungarian�hy_amz hy_AM.UTF-8zhy_am.armscii8zhy_AM.ARMSCII_8�iazia.UTF-8�ia_frz ia_FR.UTF-8� icelandiczis_IS.ISO8859-1�idzid_ID.ISO8859-1�id_id�ig_ngz ig_NG.UTF-8�ik_caz ik_CA.UTF-8�in�in_idr��is_isz iso-8859-1r�z iso8859-1z iso8859-15� iso_8859_1� iso_8859_15�itzit_IT.ISO8859-1�it_chzit_CH.ISO8859-1�it_it�italian�iuziu_CA.NUNACOM-8�iu_caziu_ca.nunacom8�iw�iw_ilz iw_il.utf8z iw_IL.UTF-8�jaz ja_JP.eucJP�ja_jpz ja_jp.eucz ja_jp.mscodez ja_JP.SJISz ja_jp.pck�japan�japanesez japanese-eucz japanese.euc�jp_jp�kazka_GE.GEORGIAN-ACADEMY�ka_gezka_ge.georgianacademyzka_ge.georgianpszka_GE.GEORGIAN-PSzka_ge.georgianrs�kab_dzz kab_DZ.UTF-8�kk_kzz kk_KZ.ptcp154�klzkl_GL.ISO8859-1�kl_gl�km_khz km_KH.UTF-8�knz kn_IN.UTF-8�kn_in�koz ko_KR.eucKR�ko_krz ko_kr.euc�kok_inz kok_IN.UTF-8�koreanz korean.euc�ksz ks_IN.UTF-8�ks_inz[email protected]ks_IN.UTF-8@devanagari�ku_trzku_TR.ISO8859-9�kwzkw_GB.ISO8859-1�kw_gb�kyz ky_KG.UTF-8�ky_kg�lb_luz lb_LU.UTF-8�lg_ugzlg_UG.ISO8859-10�li_bez li_BE.UTF-8�li_nlz li_NL.UTF-8�lij_itz lij_IT.UTF-8� lithuanianzlt_LT.ISO8859-13�ln_cdz ln_CD.UTF-8�lozlo_LA.MULELAO-1�lo_laz lo_la.cp1133zlo_LA.IBM-CP1133zlo_la.ibmcp1133zlo_la.mulelao1�lt�lt_lt�lvzlv_LV.ISO8859-13�lv_lv�lzh_twz lzh_TW.UTF-8�mag_inz mag_IN.UTF-8�maiz mai_IN.UTF-8�mai_in�mai_npz mai_NP.UTF-8�mfe_muz mfe_MU.UTF-8�mg_mgzmg_MG.ISO8859-15�mhr_ruz mhr_RU.UTF-8�mizmi_NZ.ISO8859-1�mi_nz�miq_niz miq_NI.UTF-8�mjw_inz mjw_IN.UTF-8�mkzmk_MK.ISO8859-5�mk_mk�mlz ml_IN.UTF-8�ml_in�mn_mnz mn_MN.UTF-8�mni_inz mni_IN.UTF-8�mrz mr_IN.UTF-8�mr_in�mszms_MY.ISO8859-1�ms_my�mtzmt_MT.ISO8859-3�mt_mt�my_mmz my_MM.UTF-8�nan_twz nan_TW.UTF-8�nb�nb_no�nds_dez nds_DE.UTF-8�nds_nlz nds_NL.UTF-8�ne_npz ne_NP.UTF-8�nhn_mxz nhn_MX.UTF-8�niu_nuz niu_NU.UTF-8�niu_nzz niu_NZ.UTF-8�nl�nl_awz nl_AW.UTF-8�nl_be�nl_nl�nnznn_NO.ISO8859-1�nn_no�nozno_NO.ISO8859-1z no@nynorskzny_NO.ISO8859-1�no_nozno_no.iso88591@bokmalzno_no.iso88591@nynorsk� norwegian�nrznr_ZA.ISO8859-1�nr_za�nsoznso_ZA.ISO8859-15�nso_za�ny�ny_no�nynorsk�oczoc_FR.ISO8859-1�oc_fr�om_etz om_ET.UTF-8�om_kezom_KE.ISO8859-1�orz or_IN.UTF-8�or_in�os_ruz os_RU.UTF-8�paz pa_IN.UTF-8�pa_in�pa_pkz pa_PK.UTF-8�pap_anz pap_AN.UTF-8�pap_awz pap_AW.UTF-8�pap_cwz pap_CW.UTF-8�pdzpd_US.ISO8859-1�pd_dezpd_DE.ISO8859-1�pd_us�phzph_PH.ISO8859-1�ph_ph�plzpl_PL.ISO8859-2�pl_pl�polish� portuguesezpt_PT.ISO8859-1�portuguese_brazilzpt_BR.ISO8859-1�posixz posix-utf2�ppzpp_AN.ISO8859-1�pp_an�ps_afz ps_AF.UTF-8�pt�pt_br�pt_pt�quz_pez quz_PE.UTF-8�raj_inz raj_IN.UTF-8�rozro_RO.ISO8859-2�ro_ro�romanian�ruz ru_RU.UTF-8�ru_ru�ru_uaz ru_UA.KOI8-U�rumanian�russianz ru_RU.KOI8-R�rwzrw_RW.ISO8859-1�rw_rw�sa_inz sa_IN.UTF-8�sat_inz sat_IN.UTF-8�sc_itz sc_IT.UTF-8�sdz sd_IN.UTF-8�sd_inz[email protected]sd_IN.UTF-8@devanagari�sd_pkz sd_PK.UTF-8�se_noz se_NO.UTF-8� serbocroatianzsr_RS.UTF-8@latin�sgs_ltz sgs_LT.UTF-8�shzsh_ba.iso88592@bosniazsr_CS.ISO8859-2�sh_hrzsh_HR.ISO8859-2zsh_hr.iso88592�sh_sp�sh_yu�shn_mmz shn_MM.UTF-8�shs_caz shs_CA.UTF-8�siz si_LK.UTF-8�si_lk�sid_etz sid_ET.UTF-8�sinhala�skzsk_SK.ISO8859-2�sk_sk�slzsl_SI.ISO8859-2�sl_cszsl_CS.ISO8859-2�sl_si�slovak�slovene� slovenian�sm_wsz sm_WS.UTF-8�so_djzso_DJ.ISO8859-1�so_etz so_ET.UTF-8�so_kezso_KE.ISO8859-1�so_sozso_SO.ISO8859-1�spzsr_CS.ISO8859-5�sp_yu�spanish� spanish_spain�sqzsq_AL.ISO8859-2�sq_al�sq_mkz sq_MK.UTF-8�srz sr_RS.UTF-8z sr@cyrilliczsr@latnzsr_CS.UTF-8@latin�sr_csz sr_CS.UTF-8zsr_cs.iso88592@latnz sr_cs@latn�sr_mez sr_ME.UTF-8�sr_rsz sr_rs@latn�sr_sp�sr_yuzsr_yu.cp1251@cyrillicz sr_CS.CP1251zsr_yu.iso88592zsr_yu.iso88595zsr_yu.iso88595@cyrilliczsr_yu.microsoftcp1251@cyrillicz sr_yu.utf8zsr_yu.utf8@cyrilliczsr_yu@cyrillic�sszss_ZA.ISO8859-1�ss_za�stzst_ZA.ISO8859-1�st_za�svzsv_SE.ISO8859-1�sv_fizsv_FI.ISO8859-1�sv_se�sw_kez sw_KE.UTF-8�sw_tzz sw_TZ.UTF-8�swedish�szl_plz szl_PL.UTF-8�taz ta_IN.TSCII-0�ta_inz ta_in.tsciiz ta_in.tscii0�ta_lkz ta_LK.UTF-8z tcy_in.utf8z tcy_IN.UTF-8�tez te_IN.UTF-8�te_in�tgz tg_TJ.KOI8-C�tg_tj�thzth_TH.ISO8859-11�th_thz th_th.tactisz th_TH.TIS620z th_th.tis620�thai�the_npz the_NP.UTF-8�ti_erz ti_ER.UTF-8�ti_etz ti_ET.UTF-8�tig_erz tig_ER.UTF-8�tk_tmz tk_TM.UTF-8�tlztl_PH.ISO8859-1�tl_ph�tnztn_ZA.ISO8859-15�tn_za�to_toz to_TO.UTF-8�tpi_pgz tpi_PG.UTF-8�trztr_TR.ISO8859-9�tr_cyztr_CY.ISO8859-9�tr_trr�zts_ZA.ISO8859-1�ts_za�ttztt_RU.TATAR-CYR�tt_ruztt_ru.tatarcyrz tt_ru@iqtelifztt_RU.UTF-8@iqtelif�turkish�ug_cnz ug_CN.UTF-8�ukz uk_UA.KOI8-U�uk_ua�univz en_US.utf� universalzuniversal.utf8@ucs4z en_US.UTF-8�unm_usz unm_US.UTF-8�urz ur_PK.CP1256�ur_inz ur_IN.UTF-8�ur_pk�uzz uz_UZ.UTF-8�uz_uzzuz_uz@cyrillic�vez ve_ZA.UTF-8�ve_za�viz vi_VN.TCVN�vi_vnz vi_vn.tcvnzvi_vn.tcvn5712z vi_vn.visciiz vi_VN.VISCIIzvi_vn.viscii111�wazwa_BE.ISO8859-1�wa_be�wae_chz wae_CH.UTF-8�wal_etz wal_ET.UTF-8�wo_snz wo_SN.UTF-8�xhzxh_ZA.ISO8859-1�xh_za�yiz yi_US.CP1255�yi_us�yo_ngz yo_NG.UTF-8�yue_hkz yue_HK.UTF-8�yuw_pgz yuw_PG.UTF-8�zh�zh_cnz zh_CN.gb2312z zh_cn.big5z zh_TW.big5zzh_HK.big5hkscsz zh_SG.GB2312z zh_SG.GBKzzu_ZA.ISO8859-1) z zh_cn.euc�zh_hkz zh_hk.big5hk�zh_sgz zh_sg.gbk�zh_twz zh_tw.eucz zh_tw.euctw�zu�zu_zai6�af_ZAi�sq_ALi��gsw_FRi^�am_ETi�ar_SAi�ar_IQi �ar_EGi�ar_LYi�ar_DZi�ar_MAi�ar_TNi �ar_OMi$�ar_YEi(�ar_SYi,�ar_JOi0�ar_LBi4�ar_KWi8�ar_AEi<�ar_BHi@�ar_QAi+�hy_AMiM�as_INi,�az_AZi,im�ba_RUi-�eu_ESi#�be_BYiE�bn_INi �bs_BAii~�br_FRi�bg_BGi�ca_ES�zh_CHSi�zh_TWi�zh_CNi �zh_HKi�zh_SGi�zh_MOi|�zh_CHTi��co_FRi�hr_HRi�hr_BAi�cs_CZi�da_DKi��gbz_AFie�div_MVi�nl_NLi�nl_BEi �en_USi �en_GBi �en_AUi �en_CAi �en_NZi �en_IEi �en_ZAi �en_JAi $�en_CBi (�en_BZi ,�en_TTi 0�en_ZWi 4�en_PHi @�en_INi D�en_MYi Hi%�et_EEi8�fo_FOid�fil_PHi �fi_FIi �fr_FRi �fr_BEi �fr_CAi �fr_CHi �fr_LUi �fr_MCib�fy_NLiV�gl_ESi7�ka_GEi�de_DEi�de_CHi �de_ATi�de_LUi�de_LIi�el_GRio�kl_GLiG�gu_INih�ha_NGi �he_ILi9�hi_INi�hu_HUi�is_ISi!�id_IDi]�iu_CAi]i<�ga_IEi�it_ITi�it_CHi�ja_JPiK�kn_INi?�kk_KZiS�kh_KHi��qut_GTi��rw_RWiW�kok_INi�ko_KRi@�ky_KGiT�lo_LAi&�lv_LVi'�lt_LTi.�dsb_DEin�lb_LUi/�mk_MKi>�ms_MYi>�ms_BNiL�ml_INi:�mt_MTi��mi_NZiz�arn_CLiN�mr_INi|�moh_CAiP�mn_MNiP�mn_CNia�ne_NPi�nb_NOi�nn_NOi��oc_FRiH�or_INic�ps_AFi)�fa_IRi�pl_PLi�pt_BRi�pt_PTiF�pa_INik�quz_BOik�quz_ECik �quz_PEi�ro_ROi�rm_CHi�ru_RUi;$�smn_FIi;�smj_NOi;�smj_SEi;�se_NOi;�se_SEi; �se_FIi; �sms_FIi;�sma_NOi;�sma_SEiO�sa_INi �sr_SPi�sr_BAiii[�si_LKil�ns_ZAi2�tn_ZAi�sk_SKi$�sl_SIi �es_ESi �es_MXi i �es_GTi �es_CRi �es_PAi �es_DOi �es_VEi $�es_COi (�es_PEi ,�es_ARi 0�es_ECi 4�es_CLi 8�es_URi <�es_PYi @�es_BOi D�es_SVi H�es_HNi L�es_NIi P�es_PRi T�es_USiA�sw_KEi�sv_SEi�sv_FIiZ�syr_SYi(�tg_TJi_�tmz_DZiI�ta_INiD�tt_RUiJ�te_INi�th_THiQ�bo_BTiQ�bo_CNi�tr_TRiB�tk_TMi��ug_CNi"�uk_UAi.�wen_DEi �ur_PKi �ur_INiC�uz_UZiCi*�vi_VNiR�cy_GBi��wo_SNi4�xh_ZA�sah_RU�ii_CN�yo_NG�zu_ZA)i�ixiji5c��i}|fd�}|�|d=td�td�t�\}}td|xsd�td|xsd�t�td�td�|j�D]I\}}t|d �t|�\}}td |xsd�td |xsd�t��Kt�td �td�t �|j�D]I\}}t|d �t|�\}}td |xsd�td |xsd�t��K t t d �t�td�td�|j�D]I\}}t|d �t|�\}}td |xsd�td |xsd�t��Ky#td�td�td�YyxYw)z Test function. c�`�t�j�D]\}}|dddk(s�|||<�y)Nr'�LC_)�globals�items)� categories�k�vs r�_init_categoriesz'_print_locale.._init_categories�s/���9�?�?�$�C�A�a���!�u��~� !� �1� �%r rz4Locale 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/z4Locale settings after calling setlocale(LC_ALL, ""):zNOTE:z9setlocale(LC_ALL, "") does not support the default localez&given in the OS environment variables.N)r�rr�rr rr)r�r��lang�enc�namerCs r� _print_localer��s����J�$.�"����8�� � @�A� �&�M� �"�I�D�#� �,��-� �.� �,��,�}�-� �G� � '�(� �&�M�#�)�)�+� ��X� �d�E���h�'� ��c� �o�t�4�}�5� �o�s�3�m�4� �� ,� �G� � 8�9� �&�M��M�#�)�)�+� ��X� �d�E���h�'� ��c� �o�t�4�}�5� �o�s�3�m�4� �� ,���&�"�� �� �D�E� �f� �'�-�-�/�M�D�� �$�� �!�(�+�I�D�#� �/�4�#8�=� 9� �/�3�#7�-� 8� �G� 0��8� �g�� �I�J� �6�7�s �G%�%#H � LC_MESSAGES�__main__zLocale aliasing:zNumber formatting:rF)F)FF)TFF))rr�LANGr�)T)K�__doc__r�r��encodings.aliases�rerz�builtinsrr�� functools�__all__rr#r�r�rrrrr�rrrrLrr rr�r r rGrH�wrapsrOr_rd�compilervrlrhrrr�r��floatr rr�r�r�r�rr�r�rr�rr r�CODESETr� NameErrorr��sortedr�r�r�r�� setdefaultr�r�r�rV�__name__r�rr r�rs13�� � ��� ��(�� >�� �  � 0��b �G�I���G� �G�I���G�� ��������� �� � !� �> ��b�j�j�N�O� ���(#�J-/�^!�� 1��$�#�� � �%�. !�Q�f 8�DM�*&�B)�< �)�$(�" �1�* �#�&)� �)�R4� �C�4��C� 4�  �K� 4�  �F� 4� �F�4� �G�4� �H�4��H�4��H�4��H�4� �K�4� �K�4� �K�4�  �L�!4�& �K�'4�(�K�)4�*�K�+4�,�L�-4�.�L�/4�0�L�14�2�L�34�4�L�54�6�L�74�8�K�94�:�K�;4�<�K�=4�>�K�?4�@�K�A4�B�K�C4�D�K�E4�F�K�G4�H�F�I4�J�F�K4�L �H�M4�N%,�$+�$+�$,�$,�$,�$,�$,�$,�$,�a4��l �(�.�.�0� 1�D�A�q� � � �#�r��A��$�$�Q��*� 2��q�xM ��N�M � �N�M ��N�M � �,=� M �  �M� M �  �M� M � �,=�M � �,=�M � �N�M � �M�M � �M�M � �M�M ��,=�M � �,>�M � �N�M �  �,=�!M �" �,=�#M �$ �,=�%M �& �,=�'M �( �,=�)M �* �,=�+M �, �M�-M �. �,=�/M �0 �,=�1M �2 �,=�3M �4 �,=�5M �6 �,=�7M �8 �,=�9M �: �,=�;M �< �,=�=M �> �,=�?M �@ �,=�AM �B �M�CM �D �,=�EM �F �,=�GM �H �,=�IM �J �,=�KM �L �M�MM �N �M�OM �P �,?�QM �R �N�SM �T �,>�UM �V �,>�WM �X�,>�YM �Z �M�[M �\ �N�]M �^�,?�_M �`�M�aM �b �N�cM �d�,?�eM �f �N�gM �h �N�iM �j �N�kM �l �N�mM �n �N�oM �p�N�qM �r �N�sM �t �N�uM �v �M�wM �x �M�yM �z �M�{M �| �M�}M �~ �M�M �@ �,=�AM �B�,=�CM �D �,=�EM �F �,=�GM �H �N�IM �J �,=�KM �L �,=�MM �N�N�OM �P �N�QM �R�C�SM �T�,=�UM �V�C�WM �X �C�YM �Z�,=�[M �\ �I�]M �^ �C�_M �` �C�aM �b �,=�cM �d �,=�eM �f �,=�gM �h�,B�iM �j �,=�kM �l �,=�mM �n�,=�oM �p �M�qM �r�,=�sM �t�M�uM �v�M�wM �x �N�yM �z �N�{M �| �N�}M �~ �N�M �@�,=�AM �B �,=�CM �D �,=�EM �F �,=�GM �H �N�IM �J �M�KM �L �,=�MM �N �,=�OM �P �,=�QM �R �,=�SM �T �,=�UM �V �,=�WM �X �,=�YM �Z �,=�[M �\ �,=�]M �^ �,=�_M �` �,=�aM �b �,=�cM �d �,=�eM �f �,=�gM �h �,=�iM �j�M�kM �l �,=�mM �n�,=�oM �p �N�qM �r �,=�sM �t�,=�uM �v �M�wM �x �M�yM �z �,=�{M �| �,=�}M �~ �,=�M �@ �,=�AM �B �,=�CM �D �,=�EM �F�,>�GM �H �,=�IM �J �M�KM �L �,=�MM �N �,=�OM �P �,=�QM �R �,=�SM �T �,=�UM �V�M�WM �X �,=�YM �Z �,=�[M �\ �,=�]M �^ �M�_M �` �,=�aM �b �M�cM �d �,=�eM �f �,=�gM �h�M�iM �j �,=�kM �l �,=�mM �n �,=�oM �p�,>�qM �r �,=�sM �t �M�uM �v �,=�wM �x�M�yM �z �,=�{M �|�,=�}M �~�,=�M �@�,=�AM �B�,=�CM �D �C�EM �F�,=�GM �H �,=�IM �J�J�KM �L �,=�MM �N�M�OM �P �,=�QM �R �,=�SM �T �,=�UM �V �,=�WM �X �,=�YM �Z �,=�[M �\ �,=�]M �^ �M�_M �` �,=�aM �b �,=�cM �d �,=�eM �f �,=�gM �h �,=�iM �j �,=�kM �l �,=�mM �n �,=�oM �p �,=�qM �r �,=�sM �t �,=�uM �v �,=�wM �x �,=�yM �z �,=�{M �| �,=�}M �~�,=�M �@ �,>�AM �B �,>�CM �D �,=�EM �F �,=�GM �H �,=�IM �J �M�KM �L �M�MM �N�,>�OM �P �M�QM �R �,>�SM �T �,>�UM �V �N�WM �X�,=�YM �Z �,=�[M �\ �,=�]M �^ �,=�_M �` �,=�aM �b �,=�cM �d �,=�eM �f �,=�gM �h �,=�iM �j�,=�kM �l �,=�mM �n �,=�oM �p�,=�qM �r�,=�sM �t �N�uM �v �M�wM �x �M�yM �z �,=�{M �| �,=�}M �~ �,=�M �@�,=�AM �B �,=�CM �D �,=�EM �F �,=�GM �H �,=�IM �J�,=�KM �L�,=�MM �N �N�OM �P �N�QM �R �,=�SM �T �,=�UM �V �,=�WM �X �M�YM �Z �,=�[M �\ �,=�]M �^ �M�_M �` �N�aM �b �,=�cM �d �,=�eM �f �,=�gM �h �,=�iM �j �,=�kM �l�,=�mM �n �N�oM �p �N�qM �r �N�sM �t �,=�uM �v �,=�wM �x�,=�yM �z �,>�{M �| �M�}M �~ �,=�M �@ �,=�AM �B�,=�CM �D �M�EM �F�,=�GM �H �J�IM �J �M�KM �L�,=�MM �N �,=�OM �P �,=�QM �R �M�SM �T �M�UM �V �,=�WM �X �,=�YM �Z �,=�[M �\ �,=�]M �^�,=�_M �`�,>�aM �b�,=�cM �d�,>�eM �f�,=�gM �h�,>�iM �j �,=�kM �l �,=�mM �n �,=�oM �p�,=�qM �r �,=�sM �t �,=�uM �v�,=�wM �x �,=�yM �z �,=�{M �|�M�}M �~ �M�M �@  �M�A M �B �M�C M �D �L�E M �F �L�G M �H  �M�I M �J �M�K M �L �M�M M �N �M�O M �P  �M�Q M �R  �,D�S M �T  �,D�U M �V �,D�W M �X �,?�Y M �Z �,D�[ M �\  �N�] M �^  �O�_ M �`  �,=�a M �b  �,=�c M �d  �M�e M �f  �M�g M �h  �M�i M �j  �M�k M �l  �M�m M �n �M�o M �p  �N�q M �r  �M�s M �t �M�u M �v  �M�w M �x  �M�y M �z �,D�{ M �|  �,=�} M �~  �,=� M �@  �,=�A M �B  �M�C M �D  �M�E M �F  �M�G M �H  �,>�I M �J  �M�K M �L  �M�M M �N  �N�O M �P �,>�Q M �R  �M�S M �T  �,=�U M �V  �,=�W M �X �,>�Y M �Z �,>�[ M �\ �,=�] M �^  �,>�_ M �`  �,>�a M �b  �,>�c M �d  �,>�e M �f  �N�g M �h  �N�i M �j  �N�k M �l  �N�m M �n  �N�o M �p  �N�q M �r  �,>�s M �t  �N�u M �v  �,=�w M �x  �,=�y M �z  �N�{ M �|  �N�} M �~  �,=� M �@  �,=�A M �B  �M�C M �D  �M�E M �F  �M�G M �H  �N�I M �J  �M�K M �L  �M�M M �N  �,=�O M �P  �,=�Q M �R  �,=�S M �T  �,=�U M �V  �M�W M �X  �N�Y M �Z  �,=�[ M �\  �,=�] M �^  �N�_ M �`  �N�a M �b  �M�c M �d  �N�e M �f  �N�g M �h  �N�i M �j  �,=�k M �l  �M�m M �n  �,=�o M �p  �,=�q M �r  �,=�s M �t  �,=�u M �v  �,=�w M �x �,=�y M �z  �,=�{ M �| �,=�} M �~ �,=� M �@ �,=�A M �B  �,=�C M �D  �,=�E M �F  �,?�G M �H  �,?�I M �J  �,=�K M �L  �,=�M M �N �,=�O M �P  �,=�Q M �R  �,=�S M �T  �M�U M �V  �,=�W M �X  �M�Y M �Z  �M�[ M �\  �M�] M �^  �M�_ M �`  �M�a M �b  �M�c M �d  �N�e M �f  �N�g M �h  �N�i M �j  �,=�k M �l  �,=�m M �n  �,=�o M �p  �,=�q M �r  �,=�s M �t  �,=�u M �v  �,=�w M �x  �,=�y M �z �,=�{ M �| �,=�} M �~  �C� M �@ �C�A M �B  �,=�C M �D  �,=�E M �F  �M�G M �H  �,=�I M �J  �,=�K M �L  �,=�M M �N  �N�O M �P  �N�Q M �R  �,=�S M �T  �,=�U M �V �,=�W M �X  �M�Y M �Z  �M�[ M �\  �N�] M �^ �,=�_ M �` �N�a M �b  �,=�c M �d  �,=�e M �f  �M�g M �h  �N�i M �j  �M�k M �l  �M�m M �n  �M�o M �p �,D�q M �r  �M�s M �t  �M�u M �v �,?�w M �x  �N�y M �z  �,?�{ M �| �,=�} M �~  �,=� M �@�,=�AM �B �,=�CM �D �,?�EM �F �N�GM �H �N�IM �J �M�KM �L �M�MM �N �N�OM �P�M�QM �R �,=�SM �T �,=�UM �V �,=�WM �X �,=�YM �Z �,=�[M �\ �,=�]M �^�,=�_M �`�,=�aM �b �M�cM �d �,=�eM �f �M�gM �h �,=�iM �j �,=�kM �l �,=�mM �n �,=�oM �p�,=�qM �r�,=�sM �t �,=�uM �v �,=�wM �x �M�yM �z �M�{M �|�M�}M �~�,?�M �@ �M�AM �B�,=�CM �D�,?�EM �F �M�GM �H �M�IM �J�,?�KM �L �,=�MM �N �,?�OM �P�N�QM �R�,=�SM �T�,=�UM �V�,=�WM �X%�N�YM �Z�M�[M �\�M�]M �^�M�_M �` �,=�aM �b �,=�cM �d �,=�eM �f �,=�gM �h �,=�iM �j �,=�kM �l �,=�mM �n �M�oM �p �M�qM �r�,=�sM �t �N�uM �v �O�wM �x �O�yM �z�O�{M �|�O�}M �~ �M�M �@�N�AM �B �M�CM �D �M�EM �F �N�GM �H �N�IM �J �,>�KM �L �,>�MM �N�N�OM �P�N�QM �R �,>�SM �T �N�UM �V �M�WM �X �M�YM �Z �N�[M �\ �M�]M �^ �,=�_M �` �,=�aM �b �,>�cM �d �,>�eM �f �M�gM �h �N�iM �j �,=�kM �l �,=�mM �n �,=�oM �p �,=�qM �r �,=�sM �t �,=�uM �v �,=�wM �x�,=�yM �z�,A�{M �|�,=�}M �~ �M�M �@ �N�AM �B �N�CM �D �K�EM �F�K�GM �H�M�IM �J �N�KM �L �N�MM �N �M�OM �P �N�QM �R �M�SM �T �M�UM �V�M�WM �X �M�YM �Z �M�[M �\ �L�]M �^ �L�_M �`�L�aM �b�L�cM �d�N�eM �f�N�gM �h �,=�iM �j �,=�kM �l �N�mM �n �N�oM �p �M�qM �r �,=�sM �t �,=�uM �v �N�wM �x �N�yM �z �M�{M �| �N�}M �~ �N�M �@ �M�AM �B �N�CM �D�L�EM �F-:�,=�,=�,:�,7�,8�,9�,9�,=�,=�YM � �zS� �G�S� �G�S� �H�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�0 �G�1S�2 �G�3S�4 �G�5S�6 �G�7S�8 �G�9S�: �G�;S�< �G�=S�> �G�?S�@ �G�AS�D �G�ES�F �H�GS�H �G�IS�J �G�KS�L �G�MS�N �G�OS�P �G�QS�R �H�SS�T �G�US�V �G�WS�X �G�YS�Z �G�[S�\ �G�]S�^ �H�_S�` �H�aS�b �G�cS�d �G�eS�f �G�gS�h �G�iS�j �G�kS�l �G�mS�n �G�oS�p �G�qS�r �G�sS�t �G�uS�v �G�wS�x �G�yS�z �G�{S�| �G�}S�~ �G�S�@ �G�AS�B �G�CS�D �G�ES�F �G�GS�H �G�IS�J �H�KS�L �G�MS�N �G�OS�P �G�QS�R �G�SS�T �G�US�V �G�WS�X �G�YS�Z �G�[S�\ �G�]S�^ �G�_S�` �G�aS�b �G�cS�d �G�eS�f �G�gS�h �G�iS�j �G�kS�l �G�mS�n �G�oS�p �G�qS�r �G�sS�t �G�uS�v �G�wS�x �G�yS�z �G�{S�| �G�}S�~ �G�S�@ �G�AS�B �G�CS�D �G�ES�F �G�GS�H �G�IS�J �G�KS�L �G�MS�N �H�OS�P �G�QS�R �H�SS�T �G�US�V �G�WS�X �G�YS�Z �G�[S�\ �G�]S�^ �H�_S�` �G�aS�b �G�cS�d �G�eS�f �G�gS�h �G�iS�j �G�kS�l �G�mS�n �H�oS�p �G�qS�r �H�sS�t �G�uS�v �G�wS�x �G�yS�z �G�{S�| �G�}S�~ �G�S�@ �G�AS�B �G�CS�D �G�ES�F �G�GS�H �G�IS�J �G�KS�L �G�MS�N �H�OS�P �H�QS�R �H�SS�T �G�US�V �G�WS�X �G�YS�Z �H�[S�\ �H�]S�^ �H�_S�` �G�aS�b �G�cS�d �G�eS�f �H�gS�h �H�iS�j �H�kS�l �G�mS�n �G�oS�p �G�qS�r �G�sS�t �G�uS�v �G�wS�x �G�yS�z �G�{S�| �G�}S�~ �G�S�@ �G�AS�B �G�CS�D �G�ES�F �G�GS�H �G�IS�J �G�KS�L �G�MS�N �G�OS�P �G�QS�R �G�SS�T �G�US�V �G�WS�X �G�YS�Z �G�[S�\ �G�]S�^ �G�_S�` �G�aS�b �G�cS�d �G�eS�f �G�gS�h �G�iS�l �G�mS�n �G�oS�p �G�qS�r �H�sS�t �G�uS�v �H�wS�x �G�yS�z �G�{S�| �G�}S�~ �G�S�@ �G�AS�B �G�CS�D �G�ES�F �G�GS�H �G�IS�J �G�KS�L �H�MS�N �G�OS�P �G�QS�R �G�SS�T �G�US�V �G�WS�X �G�YS�Z �G�[S�\ �G�]S�^ � � � �eS��j6�t"�� �N�N�=�!� �Z�� � �� �G��O� �G� � �� �G� �G���w5�,��H� �F��J��H��K��K��J��G� �E�(�0�M,��^� � � ��� � � ��r"� �� �s\�AD�AD)�AD8�B2AE �DAD&�D%AD&�D)AD5�D4AD5�D8 AE�EAE�E AE�EAE