
    4_m`G	                         d dl mZmZmZ d dlmZ d dlmZmZm	Z	m
Z
 ddlmZmZmZmZmZmZmZmZ ddlmZmZmZ dZdZdZd	Zd
ZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)ed             Z*ddZ+ddZ,ddZ-ddZ.dS )    )divisionprint_functionunicode_literals)contextmanager)byref
c_longlongc_size_tc_void_p   )write_disk_newwrite_disk_set_options
write_freewrite_headerread_data_blockwrite_data_blockwrite_finish_entryARCHIVE_EOF)	fd_readerfile_readermemory_reader                @         i   i   i   i   i    i @  i   i   i   c              #      K   t                      }t          ||            	 |V  t          |           d S # t          |           w xY w)N)r   r   r   )flags	archive_ps     2lib/python3.11/site-packages/libarchive/extract.pynew_archive_write_diskr#   !   sW        I9e,,,9
9s	   7 Ac                    t                      t                      t                      }}}t          |          t          |          t          |          }}}t	          |          5 }| D ]_}	t          ||	j                   |	j        }
	 t          |
|||          }|t          k    rnt          ||||           1t          |           `	 ddd           dS # 1 swxY w Y   dS )zCExtracts the given archive entries into the current directory.
    r   N)r
   r	   r   r   r#   r   _entry_p
_archive_pr   r   r   r   )entriesr    buffsizeoffsetbuff_psize_poffset_pwrite_pentryread_prs               r"   extract_entriesr2   +   s+    "XZZ$D$T{{E$KKvHFF		&	& 	(' 	( 	(E%.111%F>#FFFHEE## $f===	>
 w''''	(	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   'A#CCCc                 v    t          |           5 }t          ||           ddd           dS # 1 swxY w Y   dS )zKExtracts an archive from a file descriptor into the current directory.
    N)r   r2   )fdr    archives      r"   
extract_fdr6   <   s     
2 (''''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (   .22c                 v    t          |           5 }t          ||           ddd           dS # 1 swxY w Y   dS )z;Extracts an archive from a file into the current directory.N)r   r2   )filepathr    r5   s      r"   extract_filer:   C   s    	X		 (''''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (r7   c                 v    t          |           5 }t          ||           ddd           dS # 1 swxY w Y   dS )z;Extracts an archive from memory into the current directory.N)r   r2   )buffer_r    r5   s      r"   extract_memoryr=   I   s    	w		 (7'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (r7   N)r   )/
__future__r   r   r   
contextlibr   ctypesr   r   r	   r
   ffir   r   r   r   r   r   r   r   readr   r   r   EXTRACT_OWNEREXTRACT_PERMEXTRACT_TIMEEXTRACT_NO_OVERWRITEEXTRACT_UNLINKEXTRACT_ACLEXTRACT_FFLAGSEXTRACT_XATTREXTRACT_SECURE_SYMLINKSEXTRACT_SECURE_NODOTDOTEXTRACT_NO_AUTODIREXTRACT_NO_OVERWRITE_NEWEREXTRACT_SPARSEEXTRACT_MAC_METADATAEXTRACT_NO_HFS_COMPRESSIONEXTRACT_HFS_COMPRESSION_FORCEDEXTRACT_SECURE_NOABSOLUTEPATHSEXTRACT_CLEAR_NOCHANGE_FFLAGSr#   r2   r6   r:   r=        r"   <module>rW      s   A A A A A A A A A A % % % % % % 8 8 8 8 8 8 8 8 8 8 8 8                    8 7 7 7 7 7 7 7 7 7       #  # !' !(  '    ( ( ( ("( ( ( (( ( ( (( ( ( ( ( (rV   