File: //opt/alt/python311/lib64/python3.11/__pycache__/zipfile.cpython-311.pyc
�
    !A?h\n �                   �  � d Z ddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZ	 ddlZej        Zn# e$ r dZej        ZY nw xY w	 ddlZn
# e$ r dZY nw xY w	 ddlZn
# e$ r dZY nw xY wg d�Z G d� de�  �        Z G d� de�  �        ZexZZdZd	Zd	ZdZd
Z dZ!dZ"d
Z#dZ$dZ%dZ&dZ'dZ(dZ) ej*        e(�  �        Z+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3d
Z4dZ5dZ6dZ7 ej*        e6�  �        Z8dZ9dZ:dZ;dZ<dZ=dZ>dZ?dZ@d
ZAdZBdZCdZDdZEdZFdZGd ZHd!ZId"ZJd#ZKdZLdZMd
ZNd$ZOd%ZPd&ZQd'ZRd(ZS ej*        eR�  �        ZTdZUdZVdZWdZXdZYdZZdZ[dZ\d
Z]dZ^dZ_dZ`d)Zad*Zb ej*        ea�  �        Zcd+Zdd,Ze ej*        ed�  �        ZfdZgdZhdZidZjdZkdZldZmdZnd
ZodZpd-Zq ejr        d.�  �        Zsd/� Ztd0� Zud1� Zvd2� Zwd3� Zx G d4� d5ey�  �        Zzda{d6� Z|d7� Z} G d8� d9�  �        Z~ G d:� d;�  �        Zi dd<�dd=�dd>�dd>�dd>�dd>�dd?�dd@�d
dA�ddB�dd?�ddC�ddD�d#dE�dFdG�dHdI�dJdK�Z�dL� Z�dgdM�Z�dN� Z� G dO� dP�  �        Z� G dQ� dR�  �        Z� G dS� dTej�        �  �        Z� G dU� dVej�        �  �        Z� G dW� dX�  �        Z� G dY� dZe��  �        Z�d[� Z�d\� Z�e�j�        Z�	 d]� Z� G d^� d_e��  �        Z� G d`� dae��  �        Z�dgdb�Z� G dc� dd�  �        Z�dgde�Z�e�dfk    r e��   �          dS dS )hzP
Read and write ZIP files.
XXX references to utf-8 need further investigation.
�    N)
�
BadZipFile�
BadZipfile�error�
ZIP_STORED�ZIP_DEFLATED�	ZIP_BZIP2�ZIP_LZMA�
is_zipfile�ZipInfo�ZipFile�	PyZipFile�LargeZipFile�Pathc                   �   � e Zd ZdS )r   N)�__name__�
__module__�__qualname__� �    �./opt/alt/python311/lib64/python3.11/zipfile.pyr   r   ,   s   � � � � � ��Dr   r   c                   �   � e Zd ZdZdS )r   zu
    Raised when writing a zipfile, the zipfile requires ZIP64 extensions
    and those extensions are disabled.
    N)r   r   r   �__doc__r   r   r   r   r   0   s   � � � � � �� � � r   r   i����  �   �   �   �   �-   �.   �?   s   <4s4H2LHs   PK�   �   �   �   �   �   �   �	   z<4s4B4HL2L5H2Ls   PK�
   �   �
   �   �   �   �   �    �@   i   z<4s2B4HL2L2Hs   PKz<4sLQLs   PKz
<4sQ2H2L4Qs   PKiPK�<HHc                 �  � t           j        }d}g }dx}}|dz   t          | �  �        k    rd || ||dz   �         �  �        \  }}|dz   |z   }	||v r'||k    r|�                    | ||�         �  �         |	}d}|	}|dz   t          | �  �        k    �d|s| S |t          | �  �        k    r|�                    | |d �         �  �         d�                    |�  �        S )NFr   r$   Tr   )�_EXTRA_FIELD_STRUCT�unpack�len�append�join)
�extra�xidsr5   �modified�buffer�start�i�xid�xlen�js
             r   �_strip_extrarB   �   s�   � �
 �
'�F��H�
�F��M�E�A�
�a�%�3�u�:�:�
�
��F�5��Q��U��+�,�,�	��T�
��E�D�L���$�;�;��E�z�z��
�
�e�E�A�I�.�/�/�/��E��H�
�� �a�%�3�u�:�:�
�
� � �����E�
�
����
�
�e�E�F�F�m�$�$�$��8�8�F���r   c                 �L   � 	 t          | �  �        rdS n# t          $ r Y nw xY wdS )NTF)�_EndRecData�OSError��fps    r   �_check_zipfilerH   �   sD   � �
��r�?�?� 	��4�	��� 
� 
� 
���
�����5s   � �
!�!c                 ��   � d}	 t          | d�  �        rt          | ��  �        }n7t          | d�  �        5 }t          |�  �        }ddd�  �         n# 1 swxY w Y   n# t          $ r Y nw xY w|S )z�Quickly see if a file is a ZIP file by checking the magic number.
    The filename argument may be a file or file-like object too.
    F�readrF   �rbN)�hasattrrH   �openrE   )�filename�resultrG   s      r   r
   r
   �   s�   � �
 �F�
��8�V�$�$� 	,�#�x�0�0�0�F�F��h��%�%� 
,��'��+�+��
,� 
,� 
,� 
,� 
,� 
,� 
,� 
,� 
,� 
,� 
,���� 
,� 
,� 
,� 
,���� 
� 
� 
���
�����Ms4   �1A �A�A �A�A �A�A �
A*�)A*c           
      �  � 	 | �                     |t          z
  d�  �         n# t          $ r |cY S w xY w| �                    t          �  �        }t	          |�  �        t          k    r|S t          j        t          |�  �        \  }}}}|t          k    r|S |dk    s|dk    rt          d�  �        �| �                     |t          z
  t          z
  d�  �         | �                    t          �  �        }t	          |�  �        t          k    r|S t          j        t          |�  �        \
  }}}	}
}}}
}}}|t          k    r|S ||t          <