403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.216.90
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/__pycache__/zipp.cpython-311.pyc
�

)h���ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	e
Zd�Zd�Z
Gd�d��ZGd�d��ZdS)	�)�divisionNc�H�tjt|��dd��S)a2
    Given a path with elements separated by
    posixpath.sep, generate all parents of that path.

    >>> list(_parents('b/d'))
    ['b']
    >>> list(_parents('/b/d/'))
    ['/b']
    >>> list(_parents('b/d/f/'))
    ['b/d', 'b']
    >>> list(_parents('b'))
    []
    >>> list(_parents(''))
    []
    �N)�	itertools�islice�	_ancestry��paths �&/usr/lib/python3/dist-packages/zipp.py�_parentsrs�� ��I�d�O�O�Q��5�5�5�c#��K�|�tj��}|r?|tjkr3|V�tj|��\}}|r|tjk�-dSdSdSdS)aR
    Given a path with elements separated by
    posixpath.sep, generate all elements of that path

    >>> list(_ancestry('b/d'))
    ['b/d', 'b']
    >>> list(_ancestry('/b/d/'))
    ['/b/d', '/b']
    >>> list(_ancestry('b/d/f/'))
    ['b/d/f', 'b/d', 'b']
    >>> list(_ancestry('b'))
    ['b']
    >>> list(_ancestry(''))
    []
    N)�rstrip�	posixpath�sep�split)r
�tails  rrr%s����� �;�;�y�}�%�%�D�
�+�4�9�=�(�(��
�
�
��_�T�*�*�
��d��+�4�9�=�(�(�(�(�+�+�+�+�(�(r
c�8��eZdZdZ�fd�Zed���Z�xZS)�SanitizedNamesz7
    ZipFile mix-in to ensure names are sanitized.
    c���tt|jt���������S�N)�list�map�	_sanitize�super�namelist)�self�	__class__s �rrzSanitizedNames.namelist?s-����C������(8�(8�(:�(:�;�;�<�<�<r
c�@�d�}tjdd|tj���}|�dd��}|�d��}d�t
||����}|std���|d|�d��zzS)a]
        Ensure a relative path with posix separators and no dot names.
        Modeled after
        https://github.com/python/cpython/blob/bcc1be39cb1d04ad9fc0bd1b9193d3972835a57c/Lib/zipfile/__init__.py#L1799-L1813
        but provides consistent cross-platform behavior.
        >>> san = SanitizedNames._sanitize
        >>> san('/foo/bar')
        'foo/bar'
        >>> san('//foo.txt')
        'foo.txt'
        >>> san('foo/.././bar.txt')
        'foo/bar.txt'
        >>> san('foo../.bar.txt')
        'foo../.bar.txt'
        >>> san('\\foo\\bar.txt')
        'foo/bar.txt'
        >>> san('D:\\foo.txt')
        'D/foo.txt'
        >>> san('\\\\server\\share\\file.txt')
        'server/share/file.txt'
        >>> san('\\\\?\\GLOBALROOT\\Volume3')
        '?/GLOBALROOT/Volume3'
        >>> san('\\\\.\\PhysicalDrive1\\root')
        'PhysicalDrive1/root'
        Retain any trailing slash.
        >>> san('abc/')
        'abc/'
        Raises a ValueError if the result is empty.
        >>> san('../..')
        Traceback (most recent call last):
        ...
        ValueError: Empty filename
        c��|o|dvS)N>�..�.�)�parts r�allowedz)SanitizedNames._sanitize.<locals>.allowedfs���3�D��3�3r
z	^([A-Z]):z\1)�flags�\�/zEmpty filename)	�re�sub�
IGNORECASE�replacer�join�filter�
ValueError�endswith)�namer%�bare�clean�parts�joineds      rrzSanitizedNames._sanitizeBs���H	4�	4�	4�
�v�k�5�$�b�m�D�D�D�����T�3�'�'�����C� � �����&��%�0�0�1�1���	/��-�.�.�.���d�m�m�C�0�0�0�0�0r
)�__name__�
__module__�__qualname__�__doc__r�staticmethodr�
__classcell__)rs@rrr:s]���������=�=�=�=�=��.1�.1��\�.1�.1�.1�.1�.1r
rc��eZdZdZdZdd�Zed���Zed���Z	ed���Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�ZeZed���Zed���Zed���Zd�ZejdkreZdSdS)�Pathu�
    A pathlib-compatible interface for zip files.

    Consider a zip file with this structure::

        .
        ├── a.txt
        └── b
            ├── c.txt
            └── d
                └── e.txt

    >>> data = io.BytesIO()
    >>> zf = zipfile.ZipFile(data, 'w')
    >>> zf.writestr('a.txt', 'content of a')
    >>> zf.writestr('b/c.txt', 'content of c')
    >>> zf.writestr('b/d/e.txt', 'content of e')
    >>> zf.filename = 'abcde.zip'

    Path accepts the zipfile object itself or a filename

    >>> root = Path(zf)

    From there, several path operations are available.

    Directory iteration (including the zip file itself):

    >>> a, b = root.iterdir()
    >>> a
    Path('abcde.zip', 'a.txt')
    >>> b
    Path('abcde.zip', 'b/')

    name property:

    >>> b.name
    'b'

    join with divide operator:

    >>> c = b / 'c.txt'
    >>> c
    Path('abcde.zip', 'b/c.txt')
    >>> c.name
    'c.txt'

    Read text:

    >>> c.read_text()
    'content of c'

    existence:

    >>> c.exists()
    True
    >>> (b / 'missing.txt').exists()
    False

    Coercion to string:

    >>> str(c)
    'abcde.zip/b/c.txt'
    z>{self.__class__.__name__}({self.root.filename!r}, {self.at!r})�c��t|tj��r|n&tj|�|����|_||_dSr)�
isinstance�zipfile�ZipFile�_pathlib_compat�root�at)rrDrEs   r�__init__z
Path.__init__�sK���$���0�0�
=�D�D����!5�!5�d�!;�!;�<�<�	
�	�
����r
c�j�	|���S#t$rt|��cYSwxYw)zu
        For path-like objects, convert to a filename for compatibility
        on Python 3.6.1 and earlier.
        )�
__fspath__�AttributeError�strr	s rrCzPath._pathlib_compat�sD��	��?�?�$�$�$���	�	�	��t�9�9����	���s��2�2c�J�tj|jj|j��Sr)�	functools�partialrD�openrE�rs rrNz	Path.open�s��� ������9�9�9r
c�Z�tj|j�d����S�Nr()r�basenamerErrOs rr1z	Path.name�s!���!�$�'�.�.��"5�"5�6�6�6r
c��|���5}tj|g|�Ri|�����cddd��S#1swxYwYdSr)rN�io�
TextIOWrapper�read)r�args�kwargs�strms    r�	read_textzPath.read_text�s���
�Y�Y�[�[�	B�D��#�D�:�4�:�:�:�6�:�:�?�?�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�	B�	Bs�'A	�	A
�A
c��|���5}|���cddd��S#1swxYwYdSr)rNrV)rrYs  r�
read_byteszPath.read_bytes�s|��
�Y�Y�[�[�	�D��9�9�;�;�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�6�:�:c��tj|j�d����|j�d��kSrQ)r�dirnamerEr)rr
s  r�	_is_childzPath._is_child�s4��� ������!4�!4�5�5������9L�9L�L�Lr
c�,�t|j|��Sr)r=rD)rrEs  r�_nextz
Path._next�s���D�I�r�"�"�"r
c�F�|jp|j�d��SrQ)rEr0rOs r�is_dirzPath.is_dir�s!���7�{�3�d�g�.�.�s�3�3�3r
c�,�|���Sr)rcrOs r�is_filezPath.is_file�s���;�;�=�=� � r
c�8�|j|���vSr)rE�_namesrOs r�existszPath.exists�s���w�$�+�+�-�-�'�'r
c��|���std���t|j|�����}t|j|��S)NzCan't listdir a file)rcr/rrargr.r_)r�subss  r�iterdirzPath.iterdir�sL���{�{�}�}�	5��3�4�4�4��4�:�t�{�{�}�}�-�-���d�n�d�+�+�+r
c�J�tj|jj|j��Sr)rr-rD�filenamerErOs r�__str__zPath.__str__�s���~�d�i�0�$�'�:�:�:r
c�8�|j�|���S)NrO)�_Path__repr�formatrOs r�__repr__z
Path.__repr__�s���{�!�!�t�!�,�,�,r
c��|�|��}tj|j|��}tj|j|d��}|���}|�||vr||vr|n|��S)Nr>)rCrr-rErgra)r�add�next�next_dir�namess     r�joinpathz
Path.joinpath�su���"�"�3�'�'���~�d�g�s�+�+���>�$�'�3��3�3�����
�
���z�z�d�%�&7�&7�H��<M�<M�(�(�SW�X�X�Xr
c�D��tj�fd��D����S)Nc3�T�K�|]"}t|��D]}|dz�v�	|dzV���#dS)r(N)r)�.0r1�parentrws   �r�	<genexpr>z%Path._implied_dirs.<locals>.<genexpr>�s_�����.
�.
��"�4�.�.�.
�.
����|�5�(�(�
�S�L�)�(�(�(�(�	.
�.
r
)�more_itertools�unique_everseen)rws`r�
_implied_dirszPath._implied_dirs�s>����-�.
�.
�.
�.
��.
�.
�.
�
�
�	
r
c�L�|t|�|����zSr)rr�)�clsrws  r�_add_implied_dirszPath._add_implied_dirss#���t�C�-�-�e�4�4�5�5�5�5r
c��tj|j�d����}|r|dz
}|�|��SrQ)rr^rErra)r�	parent_ats  rr|zPath.parent
sD���%�d�g�n�n�S�&9�&9�:�:�	��	����I��z�z�)�$�$�$r
c	��|�tttj|j���������Sr)r�rrrrrDrrOs rrgzPath._namess9���%�%�d�3�~�/G���I[�I[�I]�I]�+^�+^�&_�&_�`�`�`r
)�N)r>)r6r7r8r9rprFr:rC�propertyrNr1rZr\r_rarcrerhrkrnrrrx�__truediv__r��classmethodr�r|rg�sys�version_info�__div__r#r
rr=r=ss�������>�>�@N�F���������\���:�:��X�:��7�7��X�7�B�B�B����M�M�M�#�#�#�4�4�4�!�!�!�(�(�(�,�,�,�;�;�;�-�-�-�Y�Y�Y��K��
�
��\�
��6�6��[�6��%�%��X�%�a�a�a���$��������r
r=)�
__future__rrTr�rrArLrr)r~�type�
__metaclass__rrrr=r#r
r�<module>r�s��� ������	�	�	�	�
�
�
�
�����������������	�	�	�	������
�6�6�6�&+�+�+�*71�71�71�71�71�71�71�71�rb�b�b�b�b�b�b�b�b�br

Youez - 2016 - github.com/yon3zu
LinuXploit