[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.145.9.174: ~ $
�

3�Dg3W��^�dZddlmZddlZddlZddlmZddlmZddl	m
Z
ddlmZm
Z
ddlmZmZerdd	lmZmZdd
lmZddlmZd=d�Zd=d�ZGd�de��ZGd�d��ZGd�d��Z					d>d?d#�Zejd$��Zd=d%�Z d@dAd+�Z!								dBdCd6�Z"dDd<�Z#dS)Ez�
    babel.messages.pofile
    ~~~~~~~~~~~~~~~~~~~~~

    Reading and writing of files in the ``gettext`` PO (portable object)
    format.

    :copyright: (c) 2013-2023 by the Babel Team.
    :license: BSD, see LICENSE for more details.
�)�annotationsN)�Iterable)�
TYPE_CHECKING)�Locale)�Catalog�Message)�_cmp�wraptext)�IO�AnyStr)�
SupportsWrite)�Literal�string�str�returnc�h�d�}tjd���||dd���S)z�Reverse `escape` the given string.

    >>> print(unescape('"Say:\\n  \\"hello, world!\\"\\n"'))
    Say:
      "hello, world!"
    <BLANKLINE>

    :param string: the string to unescape
    c�`�|�d��}|dkrdS|dkrdS|dkrdS|S)N��n�
�t�	�r�
)�group)�match�ms  �u/builddir/build/BUILD/imunify360-venv-2.4.0/opt/imunify360/venv/lib/python3.11/site-packages/babel/messages/pofile.py�replace_escapesz!unescape.<locals>.replace_escapes's@���K�K��N�N����8�8��4�
�#�X�X��4�
�#�X�X��4���z\\([\\trn"])r���)�re�compile�sub)rrs  r�unescaper%s;��	�	�	��:�o�&�&�*�*�?�F�1�R�4�L�I�I�Ir c���d|vr]|���}|�d��r
|dd�}tt|��}d�|��St|��S)a�Reverse the normalization done by the `normalize` function.

    >>> print(denormalize(r'''""
    ... "Say:\n"
    ... "  \"hello, world!\"\n"'''))
    Say:
      "hello, world!"
    <BLANKLINE>

    >>> print(denormalize(r'''""
    ... "Say:\n"
    ... "  \"Lorem ipsum dolor sit "
    ... "amet, consectetur adipisicing"
    ... " elit, \"\n"'''))
    Say:
      "Lorem ipsum dolor sit amet, consectetur adipisicing elit, "
    <BLANKLINE>

    :param string: the string to denormalize
    r�""rN�)�
splitlines�
startswith�mapr%�join)r�
escaped_lines�liness   r�denormalizer/4so��*�v�~�~��)�)�+�+�
����T�"�"�	.�)�!�"�"�-�M��H�m�,�,���w�w�u�~�~������r c�$��eZdZdZd�fd�Z�xZS)
�PoFileErrorzDException thrown by PoParser when an invalid po file is encountered.�messager�catalogr�line�lineno�intr�Nonec�~��t���|�d|����||_||_||_dS)Nz on )�super�__init__r3r4r5)�selfr2r3r4r5�	__class__s     �rr:zPoFileError.__init__VsB���
�����G�1�1��1�1�2�2�2������	�����r )
r2rr3rr4rr5r6rr7)�__name__�
__module__�__qualname__�__doc__r:�
__classcell__)r<s@rr1r1SsC�������N�N����������r r1c�n�eZdZdd�Zdd�Zdd�Zdd
�Zdd�Zdd�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�_NormalizedString�argsrrr7c�H�g|_|D]}|�|���dS�N)�_strs�append)r;rD�args   rr:z_NormalizedString.__init___s7�� "��
��	�	�C��K�K������	�	r �sc�^�|j�|�����dSrF)rGrH�strip)r;rJs  rrHz_NormalizedString.appendds&���
���!�'�'�)�)�$�$�$�$�$r c�\�d�tt|j����S)Nr()r,r+r%rG�r;s rr/z_NormalizedString.denormalizegs ���w�w�s�8�T�Z�0�0�1�1�1r �boolc�*�t|j��SrF)rOrGrNs r�__bool__z_NormalizedString.__bool__js���D�J���r c�J�tj�|j��SrF)�os�linesepr,rGrNs r�__repr__z_NormalizedString.__repr__ms���z���t�z�*�*�*r �other�objectr6c�^�|sdStt|��t|����S)Nr)r	r�r;rVs  r�__cmp__z_NormalizedString.__cmp__ps+���	��1��C��I�I�s�5�z�z�*�*�*r c�4�|�|��dkS�Nr�rZrYs  r�__gt__z_NormalizedString.__gt__v����|�|�E�"�"�Q�&�&r c�4�|�|��dkSr\r]rYs  r�__lt__z_NormalizedString.__lt__yr_r c�4�|�|��dkSr\r]rYs  r�__ge__z_NormalizedString.__ge__|����|�|�E�"�"�a�'�'r c�4�|�|��dkSr\r]rYs  r�__le__z_NormalizedString.__le__rdr c�4�|�|��dkSr\r]rYs  r�__eq__z_NormalizedString.__eq__�rdr c�4�|�|��dkSr\r]rYs  r�__ne__z_NormalizedString.__ne__�rdr N)rDrrr7)rJrrr7)rr)rrO)rVrWrr6)rVrWrrO)r=r>r?r:rHr/rQrUrZr^rarcrfrhrj�r rrCrC]s����������
%�%�%�%�2�2�2�2� � � � �+�+�+�+�+�+�+�+�'�'�'�'�'�'�'�'�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(r rCc�p�eZdZdZgd�Zddd�Zdd�Zdd
�Zdd�Zddd�Z	ddd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�PoFileParserz�Support class to  read messages from a ``gettext`` PO (portable object) file
    and add them to a `Catalog`

    See `read_po` for simple cases.
    )�msgid�msgstr�msgctxt�msgid_pluralFr3r�ignore_obsoleterO�
abort_invalidrr7c�t�||_||_d|_d|_||_|���dSr\)r3rr�counter�offsetrs�_reset_message_state)r;r3rrrss    rr:zPoFileParser.__init__�s?�����.���������*����!�!�#�#�#�#�#r c��g|_g|_g|_g|_g|_g|_d|_d|_d|_d|_	d|_
dS)NF)�messages�translations�	locations�flags�
user_comments�
auto_comments�context�obsolete�in_msgid�	in_msgstr�
in_msgctxtrNs rrwz!PoFileParser._reset_message_state�sV����
���������
������������
���
��������r c
���|j���t|j��dkrt	d�|jD����}n|jd���}t
|ttf��r�d�t|j	j
��D��}|jD]I\}}||j	j
kr|�d|jd���2|���||<�Jt	|��}n%|jdd���}|j
r|j
���nd}t||t|j��t!|j��|j|j|jdz|���}|jr|js||j	j|<n
||j	|<|xjdz
c_|���dS)	z�
        Add a message to the catalog based on the current parser state and
        clear the state ready to process the next message.
        rc3�>K�|]}|���V��dSrF)r/)�.0rs  r�	<genexpr>z,PoFileParser._add_message.<locals>.<genexpr>�s*����A�A�a�!�-�-�/�/�A�A�A�A�A�Ar rc��g|]}d��S�r(rk)r��_s  r�
<listcomp>z-PoFileParser._add_message.<locals>.<listcomp>�s��B�B�B�Q�b�B�B�Br r(z5msg has more translations than num_plurals of catalogN)r5r)rz�sort�lenry�tupler/�
isinstance�list�ranger3�num_plurals�_invalid_pofilervrrr{�setr|r~r}r�rrrurw)r;rnr�idx�translationrpr2s       r�_add_messagezPoFileParser._add_message�s���
	
���� � � ��t�}����!�!��A�A�4�=�A�A�A�A�A�E�E��M�!�$�0�0�2�2�E��e�d�E�]�+�+�		;�B�B�%���(@�"A�"A�B�B�B�F�$(�$5�
8�
8� ��[��$�,�2�2�2��(�(��T�[�:q�r�r�r��)�5�5�7�7��s����6�]�]�F�F��&�q�)�!�,�8�8�:�:�F�04��F�$�,�*�*�,�,�,�$���%���d�n�)=�)=�s�4�:����,�d�.@���WX��")�+�+�+���=�	*��'�
7�/6���%�e�,��")�D�L�����������!�!�#�#�#�#�#r c�@�|jr|���dSdSrF)ryr�rNs r�_finish_current_messagez$PoFileParser._finish_current_message�s.���=�	 ���������	 �	 r c��|�d��r|�||��dS|�|||��dS)N�")r*�!_process_string_continuation_line�_process_keyword_line)r;r5r4r�s    r�_process_message_linez"PoFileParser._process_message_line�sP���?�?�3���	?��2�2�4��@�@�@�@�@��&�&�v�t�X�>�>�>�>�>r c��|jD]o}	|�|��r0|t|��dvr|t|��d�}nA�I#t$r|�||d��Y�lwxYw|�||d��dS|dvr|���||_|dkr||_|dvr7d|_d|_	|j
�t|����dS|d	kr�d|_	d|_
|�d
��rY|dd��dd��\}}|j�t!|��t|��g��dS|j�d
t|��g��dS|dkrd|_t|��|_dSdS)N)� �[z$Keyword must be followed by a stringz0Start of line didn't match any expected keyword.)rnrprn)rnrqFTror�r�]rrp)�	_keywordsr*r��
IndexErrorr�r�r�rvr�r�ryrHrCr��splitrzr6r)r;r5r4r��keywordrIr��msgs        rr�z"PoFileParser._process_keyword_line�s���~�		�		�G�
[��?�?�7�+�+���S��\�\�0B�j�0P�0P��s�7�|�|�}�}�-�C��E����
[�
[�
[��$�$�T�6�3Y�Z�Z�Z�Z�Z�
[����
� � ��v�/a�b�b�b��F��*�*�*��(�(�*�*�*� ��
��g��� �D�K��/�/�/�#�D�O� �D�M��M� � �!2�3�!7�!7�8�8�8�8�8�
��
 �
 �!�D�M�!�D�N��~�~�c�"�"�
F��q�r�r�7�=�=��a�0�0���S��!�(�(�#�c�(�(�4E�c�4J�4J�)K�L�L�L�L�L��!�(�(�!�->�s�-C�-C�)D�E�E�E�E�E�
�	�
!�
!�"�D�O�,�S�1�1�D�L�L�L�"�
!s�AA�!A5�4A5c���|jr|jd}nC|jr|jdd}n(|jr|j}n|�||d��dS|�|��dS)Nr!rz<Got line starting with " but not in msgid, msgstr or msgctxt)r�ryr�rzr�rr�rH)r;r4r5rJs    rr�z.PoFileParser._process_string_continuation_line�s|���=�	��
�b�!�A�A�
�^�	��!�"�%�a�(�A�A�
�_�	���A�A�� � ��v�/n�o�o�o��F�	��������r c���|���|dd��d��r�|dd�������D]�}|�d��}|dkrQ	t||dzd���}n#t$rY�EwxYw|j�|d|�|f���n|j�|df����dS|dd��d��r`|dd�����d��D].}|j	�|�
�����/dS|dd��d��r<|dd��
��}|r|j�|��dSdS|j�|dd��
����dS)Nr�:�r�,�.)
r�r*�lstripr��rfindr6�
ValueErrorr{rHr|rLr~r})r;r4�location�posr5�flag�comments       r�_process_commentzPoFileParser._process_comments���$�$�&�&�&�����8���s�#�#�	8� ����H�O�O�-�-�3�3�5�5�	
<�	
<���n�n�S�)�)���!�8�8�!�!$�X�c�A�g�h�h�%7�!8�!8����%�!�!�!� ��!�����N�)�)�8�D�S�D�>�6�*B�C�C�C�C��N�)�)�8�T�*:�;�;�;�;�	
<�	
<��!�"�"�X�
 �
 ��
%�
%�
	8��Q�R�R����)�)�/�/��4�4�
0�
0���
�!�!�$�*�*�,�,�/�/�/�/�
0�
0�
�!�"�"�X�
 �
 ��
%�
%�	8��1�2�2�h�n�n�&�&�G��
3��"�)�)�'�2�2�2�2�2�
3�
3�
��%�%�d�1�2�2�h�n�n�&6�&6�7�7�7�7�7s�>B�
B&�%B&�fileobj�
IO[AnyStr]c��t|��D]�\}}|���}t|t��s|�|jj��}|s�P|�d��rf|dd��d��r3|�||dd��	��d�����|�
|����|�||����|���|js{|j
s|js|jrh|j�t%d����|j�d	t%d��g��|���dSdSdS)
z�
        Reads from the file-like object `fileobj` and adds any po file
        units found in it to the `Catalog` supplied to the constructor.
        �#rN�~r�T)r�r'r)�	enumeraterLr�r�decoder3�charsetr*r�r�r�r�rur|r}r~ryrHrCrzr�)r;r�r5r4s    r�parsezPoFileParser.parse&s���&�g�.�.�	9�	9�L�F�D��:�:�<�<�D��d�C�(�(�
9��{�{�4�<�#7�8�8���
�����s�#�#�
9�����8�&�&�s�+�+�0��.�.�v�t�A�B�B�x���7H�7H�SW�.�X�X�X�X��)�)�$�/�/�/�/��*�*�6�4�8�8�8�8��$�$�&�&�&��|�	 ���	 �t�/A�	 �T�EW�	 ��M� � �!2�4�!8�!8�9�9�9���$�$�a�):�4�)@�)@�%A�B�B�B���������	 �	 �	 �	 r c��t|t��sJ�|jrt||j||���td|��td|dz�d|����dS)NzWARNING:zWARNING: Problem on line rz: )r�rrsr1r3�print)r;r4r5r�s    rr�zPoFileParser._invalid_pofileCsr���$��$�$�$�$�$���	?��c�4�<��v�>�>�>�
�j�#����
�@�&�1�*�@�@��@�@�A�A�A�A�Ar N)FF)r3rrrrOrsrOrr7)rr7)F)r�r�rr7)r=r>r?r@r�r:rwr�r�r�r�r�r�r�r�rkr rrmrm�s�����������I�$�$�$�$�$� � � � �$�$�$�$�@ � � � �?�?�?�?�?�'2�'2�'2�'2�'2�R
�
�
�
�8�8�8�8�6 � � � �:B�B�B�B�B�Br rmFr�r��locale�str | Locale | None�domain�
str | NonerrrOr�rsrc�x�t|||���}t|||���}|�|��|S)a�Read messages from a ``gettext`` PO (portable object) file from the given
    file-like object and return a `Catalog`.

    >>> from datetime import datetime
    >>> from io import StringIO
    >>> buf = StringIO('''
    ... #: main.py:1
    ... #, fuzzy, python-format
    ... msgid "foo %(name)s"
    ... msgstr "quux %(name)s"
    ...
    ... # A user comment
    ... #. An auto comment
    ... #: main.py:3
    ... msgid "bar"
    ... msgid_plural "baz"
    ... msgstr[0] "bar"
    ... msgstr[1] "baaz"
    ... ''')
    >>> catalog = read_po(buf)
    >>> catalog.revision_date = datetime(2007, 4, 1)

    >>> for message in catalog:
    ...     if message.id:
    ...         print((message.id, message.string))
    ...         print(' ', (message.locations, sorted(list(message.flags))))
    ...         print(' ', (message.user_comments, message.auto_comments))
    (u'foo %(name)s', u'quux %(name)s')
      ([(u'main.py', 1)], [u'fuzzy', u'python-format'])
      ([], [])
    ((u'bar', u'baz'), (u'bar', u'baaz'))
      ([(u'main.py', 3)], [])
      ([u'A user comment'], [u'An auto comment'])

    .. versionadded:: 1.0
       Added support for explicit charset argument.

    :param fileobj: the file-like object to read the PO file from
    :param locale: the locale identifier or `Locale` object, or `None`
                   if the catalog is not bound to a locale (which basically
                   means it's a template)
    :param domain: the message domain
    :param ignore_obsolete: whether to ignore obsolete messages in the input
    :param charset: the character set of the catalog.
    :param abort_invalid: abort read if po file is invalid
    )r�r�r�)rs)rrmr�)r�r�r�rrr�rsr3�parsers        r�read_por�KsD��l�V�F�G�D�D�D�G�
�'�?�-�
P�
P�
P�F�
�L�L������Nr zL(\s+|[^\s\w]*\w+[a-zA-Z]-(?=\w+[a-zA-Z])|(?<=[\w\!\"\'\&\.\,\?])-{2,}(?=\w))c���d|�dd���dd���dd���dd	���d
d��zS)z�Escape the given string so that it can be included in double-quoted
    strings in ``PO`` files.

    >>> escape('''Say:
    ...   "hello, world!"
    ... ''')
    '"Say:\\n  \\"hello, world!\\"\\n"'

    :param string: the string to escape
    z"%s"�\z\\rz\trz\rrz\nr�z\")�replace)rs r�escaper��s]���F�N�N�4��0�0�"�7�4��/�/�"�7�4��/�/�"�7�4��/�/�"�7�4��/�/�	0�0r r(�L�prefix�widthr6c���|�rW|dk�rPt���}g}|�d��D�]'}tt|����|z|kr�t�|��}|���|r�g}d}|r�tt|d����dz
|z}	||	z|kr-|�|�����||	z
}n*|s'|�|�����n|��|�d�|����|����|�|����)n|�d��}t|��dkrt|��S|r|ds|d=|dxxdz
cc<dd��fd	�|D����zS)
a�Convert a string into a format that is appropriate for .po files.

    >>> print(normalize('''Say:
    ...   "hello, world!"
    ... ''', width=None))
    ""
    "Say:\n"
    "  \"hello, world!\"\n"

    >>> print(normalize('''Say:
    ...   "Lorem ipsum dolor sit amet, consectetur adipisicing elit, "
    ... ''', width=32))
    ""
    "Say:\n"
    "  \"Lorem ipsum dolor sit "
    "amet, consectetur adipisicing"
    " elit, \"\n"

    :param string: the string to normalize
    :param prefix: a string that should be prepended to every line
    :param width: the maximum line width; use `None`, 0, or a negative number
                  to completely disable line wrapping
    rTr�r!r(rrz""
c�4��g|]}�t|��z��Srk)r�)r�r4r�s  �rr�znormalize.<locals>.<listcomp>�s$���I�I�I�4������ 5�I�I�Ir )	r�r)r��WORD_SEPr��reverserH�popr,)
rr�r��	prefixlenr.r4�chunks�buf�size�lengths
 `        r�	normalizer��s����0
�(�������K�K�	����%�%�d�+�+�	#�	#�D��6�$�<�<� � �9�,�u�4�4�!����-�-����� � � ��/��C��D� �
"�!$�V�F�2�J�%7�%7�!8�!8�1�!<�y�!H���&�=�5�0�0��J�J�v�z�z�|�|�4�4�4� �F�N�D�D�#&�9�!$�
�
�6�:�:�<�<� 8� 8� 8�!�!�
"��L�L�������.�.�.��/�� ���T�"�"�"�"�)	#�,�!�!�$�'�'��
�5�z�z�Q����f�~�~��
��U�2�Y���"�I�
�b�	�	�	�T��	�	�	��D�I�I�I�I�I�I�5�I�I�I�J�J�J�Jr T�SupportsWrite[bytes]r3�no_location�omit_header�sort_output�sort_by_file�include_previous�include_linenor7c

�(������d�fd�	���fd��d��fd�	}
d���fd�	}d}|rd}n|rd}t�|�	��D�]�}
|
jsc|r�
�j}�rI�d
krCg}|���D]}|t	|�d���z
}�d
�|��}�|�d
���|
jD]
}|
|���|
jD]}|
|d����|s�g}	t|
j	d����}n#t$r
|
j	}YnwxYw|D]J\}}|�tj
d��}|r
|	r|�d|d��}||vr|�|���K|
d�|��d���|
jr7�dd�dgt|
j������d
���|
jrb|r`|
d�|
jd
����d���t#|
j��dkr$|
d�|
jd��zd���||
���d
�����|sXt�j���|�	��D]1}
|
jD]
}|
|���||
d����d
���0dSdS)a�Write a ``gettext`` PO (portable object) template file for a given
    message catalog to the provided file-like object.

    >>> catalog = Catalog()
    >>> catalog.add(u'foo %(name)s', locations=[('main.py', 1)],
    ...             flags=('fuzzy',))
    <Message...>
    >>> catalog.add((u'bar', u'baz'), locations=[('main.py', 3)])
    <Message...>
    >>> from io import BytesIO
    >>> buf = BytesIO()
    >>> write_po(buf, catalog, omit_header=True)
    >>> print(buf.getvalue().decode("utf8"))
    #: main.py:1
    #, fuzzy, python-format
    msgid "foo %(name)s"
    msgstr ""
    <BLANKLINE>
    #: main.py:3
    msgid "bar"
    msgid_plural "baz"
    msgstr[0] ""
    msgstr[1] ""
    <BLANKLINE>
    <BLANKLINE>

    :param fileobj: the file-like object to write to
    :param catalog: the `Catalog` instance
    :param width: the maximum line width for the generated output; use `None`,
                  0, or a negative number to completely disable line wrapping
    :param no_location: do not emit a location comment for every message
    :param omit_header: do not include the ``msgid ""`` entry at the top of the
                        output
    :param sort_output: whether to sort the messages in the output by msgid
    :param sort_by_file: whether to sort the messages in the output by their
                         locations
    :param ignore_obsolete: whether to ignore obsolete messages and not include
                            them in the output; by default they are included as
                            comments
    :param include_previous: include the old msgid as a comment when
                             updating the catalog
    :param include_lineno: include line number in the location comment
    r(c�(��t||����S)N)r�r�)r�)�keyr�r�s  �r�
_normalizezwrite_po.<locals>._normalizes�����V�5�9�9�9�9r c���t|t��r|��jd��}��|��dS)N�backslashreplace)r�r�encoder��write)�textr3r�s ��r�_writezwrite_po.<locals>._writesD����d�C� � �	D��;�;�w��0B�C�C�D��
�
�d�����r c����r�dkr�nd}t||��D]&}�d|�d|����d����'dS)Nrr�r�r�r)r
rL)r�r��_widthr4r�r�s    ��r�_write_commentz write_po.<locals>._write_commentsm��� �5�E�A�I�I���2���W�f�-�-�	2�	2�D��F�0�v�0�0��
�
���0�0�0�1�1�1�1�	2�	2r c���t|jttf��r�|jr �|�d�|j|���d����|�d�|jd|���d����|�d�|jd|���d���t�j��D]B}	|j|}n#t$rd}YnwxYw�|�d|d	�d
�||���d����CdS|jr �|�d�|j|���d����|�d�|j|���d����|�d�|jpd|���d���dS)Nzmsgctxt r�msgid rz
msgid_plural rr(zmsgstr[�dz] zmsgstr )	r��idr�r�rr�r�rr�)r2r�r�rr�r�r3s    ���r�_write_messagez write_po.<locals>._write_message#s�����g�j�4��-�0�0�	S���
S���&�Q�Q�*�*�W�_�f�*M�*M�Q�Q�Q�R�R�R��F�f�I�I�J�J�w�z�!�}�f�$E�$E�I�I�I�J�J�J��F�f�P�P�:�:�g�j��m�V�+L�+L�P�P�P�Q�Q�Q��W�0�1�1�
R�
R�� �$�^�C�0�F�F��!� � � ��F�F�F� ������&�P�P��P�P�P�*�*�V�V�2L�2L�P�P�P�Q�Q�Q�Q�
R�
R���
S���&�Q�Q�*�*�W�_�f�*M�*M�Q�Q�Q�R�R�R��F�f�F�F�J�J�w�z�6�$B�$B�F�F�F�G�G�G��F�f�Q�Q�Z�Z���0D�"�f�%M�%M�Q�Q�Q�R�R�R�R�Rs�-
B;�;C
�	C
Nr2r�)�sort_byrz# )r��subsequent_indentrr�)r�c�\�|dt|dt��r|dpdfS)Nrrr!)r�r6)�xs r�<lambda>zwrite_po.<locals>.<lambda>Ws/��!�A�$�
�1�Q�4��8M�8M�8V�RS�TU�RV�8\�Z\�1]�r �r��/r�r�r�r�z, r��|rzmsgid_plural %sz#~ r�)�_sort_messagesr��header_commentr)r
r,r}r~�sortedr{�	TypeErrorr�rS�seprHr|�previous_idr�r��values)r�r3r�r�r�r�r�rrr�r�r�r�r�r2�comment_headerr.r4r��locsr{�filenamer5r�r�r�s```                    @@r�write_por�sM�������n:�:�:�:�:�:�������
2�2�2�2�2�2�2�S�S�S�S�S�S�S�S�&�G������	����!�'�7�;�;�;�4�4���z�
	*��
��$�3�N��
2�������*�5�5�7�7�>�>�D��X�d�%�8<�>�>�>�>�E�E�!%���5�!1�!1���F�n�(�(�(�)�)�)��,�	$�	$�G��N�7�#�#�#�#��,�	0�	0�G��N�7�3�/�/�/�/�/��	7��D�
.�"�7�#4�']�']�_�_�_�	�	���
.�
.�
.�#�-�	�	�	�
.����%.�
*�
*� ��&�#�+�+�B�F�C�8�8���8�n�8�"*�7�7�V�7�7�7�H��4�'�'��K�K��)�)�)���N�3�8�8�D�>�>�#�6�6�6�6��=�	D��F�B�t�y�y�"�!=�v�g�m�'<�'<�!=�>�>�B�B�B�C�C�C���	�#3�	��N�=���G�$7��$:�;�;�=�=��
�
�
�
��7�&�'�'�!�+�+���0�:�:��'��*�4�4� ������	��w������t�������%���#�#�%�%��
�
�
�	�	�G�#�0�
(�
(����w�'�'�'�'��N�7�5�1�1�1�1��F�4�L�L�L�L���	�	s�C3�3D�Dry�Iterable[Message]r��Literal['message', 'location']�
list[Message]c��t|��}|dkr|���n|dkr|�d����|S)z�
    Sort the given message iterable by the given criteria.

    Always returns a list.

    :param messages: An iterable of Messages.
    :param sort_by: Sort by which criteria? Options are `message` and `location`.
    :return: list[Message]
    r2r�c��|jSrF)r{)rs rr�z _sort_messages.<locals>.<lambda>�s��A�K�r r�)r�r�)ryr�s  rr�r�}sQ���H�~�~�H��)����
�
�����	�J�	�	��
�
�/�/�
�0�0�0��Or )rrrr)NNFNF)r�r�r�r�r�r�rrrOr�r�rsrOrr)r(r�)rrr�rr�r6rr)r�FFFFFFT)r�r�r3rr�r6r�rOr�rOr�rOr�rOrrrOr�rOr�rOrr7)ryrr�rrr)$r@�
__future__rrSr"�collections.abcr�typingr�
babel.corer�babel.messages.catalogrr�
babel.utilr	r
rr�	_typeshedr
�typing_extensionsrr%r/�	Exceptionr1rCrmr�r#r�r�r�rr�rkr r�<module>rsf��	�	�#�"�"�"�"�"�	�	�	�	�	�	�	�	�$�$�$�$�$�$� � � � � � �������3�3�3�3�3�3�3�3�%�%�%�%�%�%�%�%��*�!�!�!�!�!�!�!�!�'�'�'�'�'�'�)�)�)�)�)�)�J�J�J�J�. � � � �>�����)����)(�)(�)(�)(�)(�)(�)(�)(�XB�B�B�B�B�B�B�B�H#'��!���
9�9�9�9�9�x�2�:�����0�0�0�0�$:K�:K�:K�:K�:K�@�����!�"��]�]�]�]�]�@�����r 

Filemanager

Name Type Size Permission Actions
__init__.cpython-311.pyc File 615 B 0644
catalog.cpython-311.pyc File 45.14 KB 0644
checkers.cpython-311.pyc File 7.45 KB 0644
extract.cpython-311.pyc File 34.64 KB 0644
frontend.cpython-311.pyc File 50.48 KB 0644
jslexer.cpython-311.pyc File 8.39 KB 0644
mofile.cpython-311.pyc File 9.52 KB 0644
plurals.cpython-311.pyc File 6.16 KB 0644
pofile.cpython-311.pyc File 32.08 KB 0644