Edit File: zipfile.cpython-36.opt-2.pyc
3 � \�)��������������2���@���s���d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dl Z d�dl Z yd�dlZW�n�ek rx���d�dl ZY�nX�yd�dlZejZW�n�ek r����dZe jZY�nX�yd�dlZW�n�ek r����dZY�nX�yd�dlZW�n�ek r����dZY�nX�dddddddd d ddd gZG�dd��de�ZG�dd ��d e�Ze�ZZdeZdgZdiZd�ZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%e j&e$�Z'd�Z(dZ)dZ*dZ+dZ,dZ-d Z.d!Z/dZ0d"Z1d#Z2d$Z3e j&e2�Z4d�Z5dZ6dZ7dZ8dZ9dZ:d Z;d!Z<dZ=d"Z>d%Z?d&Z@dZAd'ZBdZCd(ZDdZEd)ZFd*ZGd+ZHd,ZIe j&eH�ZJd�ZKdZLdZMdZNdZOdZPd ZQd!ZRdZSd"ZTd%ZUd&ZVd-ZWd.ZXe j&eW�ZYd/ZZd0Z[e j&eZ�Z\d�Z]dZ^dZ_dZ`dZadZbd Zcd!ZddZed"Zfd1Zge jhd2�Zid3d4��Zjd5d6��Zkd7d ��Zld8d9��Zmd:d;��ZnG�d<d ��d eo�ZpG�d=d>��d>�ZqG�d?d@��d@�ZrG�dAdB��dB�ZsdCdDdEdEdEdEdFdGdHdIdFdJdKdLdMdNdOdP�ZtdQdR��ZudSdT��ZvdUdV��ZwG�dWdX��dX�ZxG�dYdZ��dZ�ZyG�d[d\��d\e�jz�Z{G�d]d^��d^e�jz�Z|G�d_d��d�Z}G�d`d��de}�Z~djdadb�Ze�dck�r�e���dS�)k�����N� BadZipFile� BadZipfile�error� ZIP_STORED�ZIP_DEFLATED� ZIP_BZIP2�ZIP_LZMA� is_zipfile�ZipInfo�ZipFile� PyZipFile�LargeZipFilec���������������@���s���e�Zd�ZdS�)r���N)�__name__� __module__�__qualname__��r���r����/usr/lib64/python3.6/zipfile.pyr���+���s���c���������������@���s���e�Zd�ZdS�)r ���N)r���r���r���r���r���r���r���r ���/���s��������������������������������-����.����?���s���<4s4H2LHs���PK������������������������� ���z<4s4B4HL2L5H2Ls���PK� �������� ���������������z<4s2B4HL2L2Hs���PKz<4sLQLs���PKz <4sQ2H2L4Qs���PKiPKz<HHc������� ������C���s����t�j}d}g�}d�}}xf|d�t|��kr|||�||d����\}}|d�|�} ||krv||krn|j|�||����| }d}| }qW�|s�|�S�dj|�S�)NFr���r���T�����)�_EXTRA_FIELD_STRUCT�unpack�len�append�join) �extraZxidsr,���Zmodified�buffer�start�iZxidZxlen�jr���r���r����_strip_extra����s ����r5���c�������������C���s*���yt�|��rdS�W�n�tk r$���Y�nX�dS�)NTF)�_EndRecData�OSError)�fpr���r���r����_check_zipfile����s����r9���c�������������C���sV���d}y8t�|�d�rt|�d�}nt|�d��}t|�}W�d�Q�R�X�W�n�tk rP���Y�nX�|S�)NF�read)r8����rb)�hasattrr9����openr7���)�filename�resultr8���r���r���r���r �������s���� c�������������C���s��y|�j�|t�d��W�n�tk r(���|S�X�|�jt�}t|�tkrD|S�tjt|�\}}}}|tkrd|S�|dkst|dkr|t d��|�j�|t�t �d��|�jt �}t|�t kr�|S�tjt|�\ }}} } }}} }}}|tkr�|S�||t <�||t<�||t<�| |t<�||t<�||t<�||t<�|S�)Nr���r���r���z3zipfiles that span multiple disks are not supported)�seek�sizeEndCentDir64Locatorr7���r:���r-����structr,����structEndArchive64Locator�stringEndArchive64Locatorr����sizeEndCentDir64�structEndArchive64�stringEndArchive64�_ECD_SIGNATURE�_ECD_DISK_NUMBER�_ECD_DISK_START�_ECD_ENTRIES_THIS_DISK�_ECD_ENTRIES_TOTAL� _ECD_SIZE�_ECD_OFFSET)�fpin�offset�endrec�dataZsigZdisknoZreloffZdisksZsz�create_versionZread_versionZdisk_numZdisk_dirZdircountZ dircount2ZdirsizeZ diroffsetr���r���r���� _EndRecData64����s6���� rT���c������� ������C���sf��|�j�dd��|�j��}y|�j�t�d��W�n�tk r:���d�S�X�|�j��}t|�tkr�|dd��tkr�|dd���dkr�tjt |�}t |�}|jd��|j|t���t|�t�|�S�t |d �t�d�}|�j�|d��|�j��}|jt�}|dk�rb|||t���}t|�tk�rd�S�t tjt |��}|t�}||t�|t�|���}|j|��|j||���t|�||�|�|�S�d�S�) Nr���r���r���s�����r*���r���r������i���)r@����tell�sizeEndCentDirr7���r:���r-����stringEndArchiverB���r,����structEndArchive�listr.���rT����max�rfind�_ECD_COMMENT_SIZE) rO���ZfilesizerR���rQ���ZmaxCommentStartr2���ZrecDataZcommentSize�commentr���r���r���r6�����s>���� r6���c���������������@���sR���e�Zd�Zd'Zd)dd�Zdd��Zd*dd�Zdd ��Zd!d"��Ze d+d#d$��Z d%d&��ZdS�),r ���� orig_filenamer>���� date_time� compress_typer^���r0���� create_systemrS����extract_version�reserved� flag_bits�volume� internal_attr� external_attr� header_offset�CRC� compress_size� file_size� _raw_time�NoName���r���r���c�������������C���s����||�_�|jtd��}|dkr(|d|��}tjdkrJtj|krJ|jtjd�}||�_||�_|d�dk�rjtd��t |�_ d|�_d|�_t jdkr�d|�_nd|�_t|�_t|�_d|�_d|�_d|�_d|�_d|�_d�S�)Nr����/i���z+ZIP does not support timestamps before 1980r*���Zwin32r���)r_����find�chr�os�sep�replacer>���r`���� ValueErrorr���ra���r^���r0����sys�platformrb����DEFAULT_VERSIONrS���rc���rd���re���rf���rg���rh���)�selfr>���r`���Z null_byter���r���r����__init__W��s.���� zZipInfo.__init__c�������������C���s����d|�j�j|�jf�g}|�jtkr8|jdtj|�j|�j����|�jd?�}|�jd@�}|rd|jdt j |����|rv|jd|���|�j��}|�s�|�jr�|jd|�j���|�s�|�j r�|�jtks�|�j|�j kr�|jd|�j ���|jd ��d j|�S�)Nz<%s filename=%rz compress_type=%sr���i����z filemode=%rz external_attr=%#xz file_size=%rz compress_size=%r�>��)� __class__r���r>���ra���r���r.����compressor_names�getrh����stat�filemode�is_dirrl���rk���r/���)rz���r?����hi�lo�isdirr���r���r����__repr__���s(���� zZipInfo.__repr__Nc�������������C���s|��|�j�}|d�d�d>�|d�d>�B�|d�B�}|d�d>�|d �d>�B�|d�d�B�}|�jd @�rfd�}�}}n|�j}|�j}|�j}|�j}d} |d�kr�|tkp�|tk}|r�d} |tj| dtj | �d �||��}|tks�|tkr�|s�t d��d }d }t} |�jt k�rtt| �} n|�jtk�rtt| �} t| |�j�|�_t| |�j�|�_|�j��\}}tjtt|�j|�j||�j|||||t|�t|�� } | |�|�S�)Nr���i���r#���r���r ���r���r���r%���r���r���z<HHQQz'Filesize would require ZIP64 extensionsl������)r`���re���rj���rk���rl���r0����ZIP64_LIMITrB����pack�calcsizer ���� ZIP64_VERSIONra���r���r[���� BZIP2_VERSIONr����LZMA_VERSIONrc���rS����_encodeFilenameFlags�structFileHeader�stringFileHeaderrd���r-���)rz����zip64�dt�dosdate�dostimerj���rk���rl���r0����min_version�fmtr>���re����headerr���r���r���� FileHeader���sF����$$ zZipInfo.FileHeaderc�������������C���s>���y|�j�jd�|�jfS��tk r8���|�j�jd�|�jdB�fS�X�d�S�)N�asciizutf-8i���)r>����encodere����UnicodeEncodeError)rz���r���r���r���r�������s����zZipInfo._encodeFilenameFlagsc�������������C���s(��|�j�}tj}�xt|�dk�r"|d|d�d���\}}|dk�r|dkrZ|d|dd���}nV|dkrv|d|dd ���}n:|d kr�|d|dd���}n|d kr�f�}ntd||f���d }|�jdkr�||�|�_|d7�}|�jdkr�||�|�_|d7�}|�jdk�r|�j}||�|�_|d7�}||d�d���}qW�d�S�)Nr���z<HHr�������z<QQQ����r���z<QQr���r���z<Qr���r���z"Corrupt extra field %04x (size=%d)����������������)r����r����)r0���rB���r,���r-���r���rl���rk���ri���)rz���r0���r,����tp�lnZcounts�idx�oldr���r���r����_decodeExtra���s4���� zZipInfo._decodeExtrac�������������C���s����t�|tj�rtj|�}tj|�}tj|j�}tj|j �}|dd��}|d�krP|}tj jtj j|�d��}x$|d�tj tjfkr�|dd���}qjW�|r�|d7�}|�||�}|jd@�d>�|_|r�d|_|�jdO��_n|j|_|S�)Nr���r!���r���rp���i����r���)� isinstancers����PathLike�fspathr�����S_ISDIR�st_mode�time� localtime�st_mtime�path�normpath� splitdrivert����altseprh���rl����st_size)�clsr>����arcname�str�����mtimer`����zinfor���r���r���� from_file���s(���� zZipInfo.from_filec�������������C���s���|�j�d�dkS�)Nr���rp������)r>���)rz���r���r���r���r������s����zZipInfo.is_dir)r_���r>���r`���ra���r^���r0���rb���rS���rc���rd���re���rf���rg���rh���ri���rj���rk���rl���rm����ro���r���r���r���r���r���)rn���r����)N)N)r���r���r���� __slots__r{���r����r����r����r�����classmethodr����r����r���r���r���r���r ���>��s6��������������������� * .$!c���������������@���s8���e�Zd�Zdd��ZdZdd��Zdd��Zdd ��Zd d��ZdS�)� _ZipDecrypterc��������������C���sh���d}�dgd�}xTt�d�D�]H}|}x6t�d�D�]*}|d@�rH|d?�d@�|�A�}q*|d?�d@�}q*W�|||<�qW�|S�)Nl��� q[�r�������r���r���i���)�range)Zpoly�tabler3����crcr4���r���r���r����_GenerateCRCTable#��s���� z_ZipDecrypter._GenerateCRCTableNc�������������C���s���|d?�d@�|�j�||A�d@��A�S�)Nr���i��������)�crctable)rz���Zchr����r���r���r����_crc327��s����z_ZipDecrypter._crc32c�������������C���sB���t�jd�krt�j��t�_d|�_d|�_d|�_x|D�]}|�j|��q,W�d�S�)NixV4i�gE#i�xV4)r����r����r�����key0�key1�key2�_UpdateKeys)rz����pwd�pr���r���r���r{���;��s���� z_ZipDecrypter.__init__c�������������C���sX���|�j�||�j�|�_|�j|�jd@��d@�|�_|�jd�d�d@�|�_|�j�|�jd?�d@�|�j�|�_d�S�)Nr����l������i�r���r����)r����r����r����r����)rz����cr���r���r���r����D��s����z_ZipDecrypter._UpdateKeysc�������������C���s0���|�j�dB�}|||dA��d?�d@�A�}|�j|��|S�)Nr���r���r���r����)r����r����)rz���r�����kr���r���r����__call__J��s���� z_ZipDecrypter.__call__) r���r���r���r����r����r����r{���r����r����r���r���r���r���r������s��� r����c���������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) �LZMACompressorc�������������C���s ���d�|�_�d�S�)N)�_comp)rz���r���r���r���r{���U��s����zLZMACompressor.__init__c�������������C���sF���t�jdt�ji�}t�jt�jt�jt�j|�gd�|�_tjdddt |��|�S�)N�id)�filtersz<BBHr#���r���) �lzmaZ_encode_filter_properties�FILTER_LZMA1r����� FORMAT_RAW�_decode_filter_propertiesr����rB���r����r-���)rz���Zpropsr���r���r����_initX��s����zLZMACompressor._initc�������������C���s*���|�j�d�kr|�j��|�j�j|��S�|�j�j|�S�)N)r����r�����compress)rz���rR���r���r���r���r����_��s���� zLZMACompressor.compressc�������������C���s&���|�j�d�kr|�j��|�j�j���S�|�j�j��S�)N)r����r�����flush)rz���r���r���r���r����d��s���� zLZMACompressor.flushN)r���r���r���r{���r����r����r����r���r���r���r���r����S��s���r����c���������������@���s���e�Zd�Zdd��Zdd��ZdS�)�LZMADecompressorc�������������C���s���d�|�_�d|�_d|�_d�S�)Nr*���F)�_decomp�_unconsumed�eof)rz���r���r���r���r{���l��s����zLZMADecompressor.__init__c�������������C���s����|�j�d�kr�|��j|7��_t|�j�dkr*dS�tjd|�jdd���\}t|�j�d|�krXdS�tjtjtjtj |�jdd|����gd�|�_�|�jd|�d���}|�`|�j�j |�}|�j�j|�_|S�)Nr���r*���z<Hr���)r����)r����r����r-���rB���r,���r����r����r����r����r����� decompressr����)rz���rR���Zpsizer?���r���r���r���r����q��s���� zLZMADecompressor.decompressN)r���r���r���r{���r����r���r���r���r���r����j��s���r����ZstoreZshrink�reduceZimplode�tokenizeZdeflateZ deflate64Zbzip2r����ZterseZlz77ZwavpackZppmd)r���r���r���r���r���r ���r!���r"���r���r#���r$���r���r���r)��������a����b���c�������������C���sX���|�t�kr nJ|�tkr tsTtd��n4|�tkr6tsTtd��n|�tkrLtsTtd��ntd��d�S�)Nz.Compression requires the (missing) zlib modulez-Compression requires the (missing) bz2 modulez.Compression requires the (missing) lzma modulez(That compression method is not supported) r���r����zlib�RuntimeErrorr����bz2r���r�����NotImplementedError)�compressionr���r���r����_check_compression���s����r����c�������������C���s@���|�t�krtjtjtjd�S�|�tkr*tj��S�|�tkr8t ��S�d�S�d�S�)Nr'���i�) r���r����ZcompressobjZZ_DEFAULT_COMPRESSIONZDEFLATEDr���r����Z BZ2Compressorr���r����)ra���r���r���r����_get_compressor���s���� r����c�������������C���sn���|�t�krd�S�|�tkrtjd�S�|�tkr.tj��S�|�tkr<t��S�t j |��}|r\td|�|f���ntd|�f���d�S�)Nr'���zcompression type %d (%s)zcompression type %di�)r���r���r����Z decompressobjr���r����ZBZ2Decompressorr���r����r���r����r����)ra���Zdescrr���r���r����_get_decompressor���s���� r����c���������������@���s&���e�Zd�Zdd��Zd dd�Zdd��ZdS�)�_SharedFilec�������������C���s"���||�_�||�_||�_||�_||�_d�S�)N)�_file�_pos�_close�_lock�_writing)rz����file�pos�close�lockZwritingr���r���r���r{������s ����z_SharedFile.__init__r���c���������� ���C���sL���|�j��<�|�j��rtd��|�jj|�j��|�jj|�}|�jj��|�_|S�Q�R�X�d�S�)NzyCan't read from the ZIP file while there is an open writing handle on it. Close the writing handle before trying to read.)r����r����rv���r����r@���r����r:���rV���)rz����nrR���r���r���r���r:������s����z_SharedFile.readc�������������C���s$���|�j�d�k r |�j�}d�|�_�|�j|��d�S�)N)r����r����)rz����fileobjr���r���r���r�������s���� z_SharedFile.closeNr����)r����)r���r���r���r{���r:���r����r���r���r���r���r�������s��� r����c���������������@���s4���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��ZdS�)� _Tellablec�������������C���s���||�_�d|�_d�S�)Nr���)r8���rP���)rz���r8���r���r���r���r{������s����z_Tellable.__init__c�������������C���s���|�j�j|�}|��j|7��_|S�)N)r8����writerP���)rz���rR���r����r���r���r���r�������s����z_Tellable.writec�������������C���s���|�j�S�)N)rP���)rz���r���r���r���rV������s����z_Tellable.tellc�������������C���s���|�j�j���d�S�)N)r8���r����)rz���r���r���r���r�������s����z_Tellable.flushc�������������C���s���|�j�j���d�S�)N)r8���r����)rz���r���r���r���r�������s����z_Tellable.closeN)r���r���r���r{���r����rV���r����r����r���r���r���r���r�������s ���r����c�������������������s|���e�Zd�ZdZdZddd�Zdd ��Zd d d�Zd!dd �Zdd��Z d#dd�Z dd��Zdd��Zdd��Z dd��Z��fdd�Z���ZS�)$� ZipExtFiler���r���i���NFc�������������C���s����||�_�||�_||�_|j|�_|j|�_|j|�_t |�j�|�_ d|�_d|�_d|�_ d�|�_|�jd�k rf|��jd8��_||�_|j|�_t|d�r�|j|�_td�|�_nd�|�_d�S�)NFr*���r���r���rj���)�_fileobj� _decrypter�_close_fileobjra����_compress_typerk����_compress_leftrl����_leftr����� _decompressor�_eof�_readbuffer�_offset�newlines�moder>����namer<���rj���� _expected_crc�crc32�_running_crc)rz���r����r���zipinfoZ decrypterZ close_fileobjr���r���r���r{�����s&���� zZipExtFile.__init__c�������������C���sv���d|�j�j|�j�jf�g}|�jsX|jd|�j|�jf���|�jtkrb|jdt j |�j|�j����n |jd��|jd��dj|�S�)Nz<%s.%sz name=%r mode=%rz compress_type=%sz [closed]r|���r}���)r~���r���r����closedr.���r��r��r����r���r���r����r/���)rz���r?���r���r���r���r����#��s���� zZipExtFile.__repr__c�������������C���sL���|dk�r>|�j�jd|�j�d�}|dkr>|�j�|�j|��}||�_|S�tjj|�|�S�)Nr������� r���)r��rq���r���io�BufferedIOBase�readline)rz����limitr3����liner���r���r���r��1��s����zZipExtFile.readlinec�������������C���sr���|t�|�j�|�j�kr\|�j|�}t�|�|�jkrJ||�j|�jd����|�_d|�_n|��jt�|�8��_|�j|�j|�jd���S�)Nr���i���)r-���r��r��r:���)rz���r�����chunkr���r���r����peekA��s���� zZipExtFile.peekc�������������C���s���dS�)NTr���)rz���r���r���r����readableN��s����zZipExtFile.readablec�������������C���s��|d�ks|dk�rL|�j�|�jd���}d|�_�d|�_x|�jsF||�j|�j�7�}q.W�|S�||�j�}|t|�j��k�r~|�j�|�j|��}||�_|S�|t|�j���}|�j�|�jd���}d|�_�d|�_x^|dko�|�j��r|�j|�}|t|�k�r�||�_�||�_||d�|��7�}P�||7�}|t|�8�}q�W�|S�)Nr���r*���)r��r��r���_read1�MAX_Nr-���)rz���r�����buf�endrR���r���r���r���r:���Q��s4���� zZipExtFile.readc�������������C���s@���|�j�d�krd�S�t||�j�|�_|�jr<|�j|�j�kr<td|�j���d�S�)NzBad CRC-32 for file %r)r��r��r ��r��r���r��)rz����newdatar���r���r����_update_crcr��s ���� zZipExtFile._update_crcc�������������C���s��|d�ks|dk�rV|�j�|�jd���}d|�_�d|�_x$|�jsP|�j|�j�}|r.||7�}P�q.W�|S�||�j�}|t|�j��k�r�|�j�|�j|��}||�_|S�|t|�j���}|�j�|�jd���}d|�_�d|�_|dk�rxN|�j�s |�j|�}|t|�k�r�||�_�||�_||d�|��7�}P�|r�||7�}P�q�W�|S�)Nr���r*���)r��r��r��r��r��r-���)rz���r����r��rR���r��r���r���r����read1|��s>���� zZipExtFile.read1c�������������C���s"��|�j�s|dkrdS�|�jtkrH|�jj}|t|�krR||�j|t|���7�}n |�j|�}|�jtkrj|�jdk|�_�nx|�jtkr�t ||�j �}|�jj||�}|�jjp�|�jdko�|�jj�|�_�|�j�r�||�jj ��7�}n |�jj|�}|�jjp�|�jdk|�_�|d�|�j��}|��jt|�8��_|�jdk�rd|�_�|�j|��|S�)Nr���r*���T)r��r����r���r���Zunconsumed_tailr-����_read2r���r����r[���� MIN_READ_SIZEr����r����r����r����r��)rz���r����rR���r���r���r���r�����s2���� zZipExtFile._read1c�������������C���sj���|�j�dkrdS�t||�j�}t||�j��}|�jj|�}|��j�t|�8��_�|sLt�|�jd�k rft t |�j|��}|S�)Nr���r*���)r����r[���r���minr����r:���r-����EOFErrorr�����bytes�map)rz���r����rR���r���r���r���r�����s���� zZipExtFile._read2c���������� ������s&���z|�j�r|�jj���W�d�t��j���X�d�S�)N)r����r����r�����super)rz���)r~���r���r���r�������s����zZipExtFile.close����i���@)NFr����)r����)r���r����)r����)r���r���r���r��r��r{���r����r��r��r��r:���r��r��r��r��r����� __classcell__r���r���)r~���r���r�������s���� ! %$r����c�������������������s@���e�Zd�Zdd��Zedd���Zdd��Zdd��Z��fd d �Z���Z S�)� _ZipWriteFilec�������������C���s4���||�_�||�_||�_t|j�|�_d|�_d|�_d|�_d�S�)Nr���) �_zinfo�_zip64�_zipfiler����ra����_compressor� _file_size�_compress_size�_crc)rz����zfr����r����r���r���r���r{������s����z_ZipWriteFile.__init__c�������������C���s���|�j�jS�)N)r(��r8���)rz���r���r���r���r�������s����z_ZipWriteFile._fileobjc�������������C���s���dS�)NTr���)rz���r���r���r����writable���s����z_ZipWriteFile.writablec�������������C���sf���|�j�rtd��t|�}|��j|7��_t||�j�|�_|�jrV|�jj|�}|��jt|�7��_|�j j |��|S�)NzI/O operation on closed file.)r��rv���r-���r*��r��r,��r)��r����r+��r����r����)rz���rR����nbytesr���r���r���r�������s����z_ZipWriteFile.writec����������������sX��|�j�r d�S�t��j���|�jrN|�jj��}|��jt|�7��_|�jj|��|�j|�j _ n |�j|�j _ |�j|�j _ |�j|�j _|�j jd@�r�|�jr�dnd}|�jjtj|t|�j j |�j j |�j j���|�jj��|�j_nn|�js�|�jtkr�td��|�jtkr�td��|�jj��|�j_|�jj|�j j��|�jj|�j j|�j���|�jj|�jj��d|�j_|�jjj|�j ��|�j |�jj|�j j <�d�S�)Nr���z<LLQQz<LLLLz+File size unexpectedly exceeded ZIP64 limitz1Compressed size unexpectedly exceeded ZIP64 limitF)!r��r"��r����r)��r����r+��r-���r����r����r&��rk���r*��r,��rj���rl���re���r'��rB���r����� _DD_SIGNATURErV���r(��� start_dirr����r����r@���ri���r����r�����filelistr.���� NameToInfor>���)rz���r��r����)r~���r���r���r�������s8���� z_ZipWriteFile.close) r���r���r���r{����propertyr����r.��r����r����r$��r���r���)r~���r���r%�����s ��� r%��c���������������@���s��e�Zd�ZdZdZdedfdd�Zdd��Zdd ��Zd d��Z dd ��Z dd��Zdd��Zd;dd�Z dd��Zdd��Zdd��Zedd���Zejdd���Zd<dd�Zd=dd �d!d"�Zd>d#d$�Zd?d%d&�Zd@d'd(�Zed)d*���Zd+d,��Zd-d.��ZdAd/d0�ZdBd1d2�Zd3d4��Zd5d6��Z d7d8��Z!d9d:��Z"dS�)Cr���N�rTc�������������C���sF��|dkrt�d��t|��||�_d|�_d|�_i�|�_g�|�_||�_||�_d�|�_ d|�_ t|tj �rdtj|�}t|t�r�d|�_||�_d d ddd d dd�}||�}x^ytj||�|�_W�n(�tk r����||kr�||�}w���Y�nX�P�q�W�nd|�_||�_t|dd��|�_d|�_tj��|�_d|�_d|�_�y|dk�r*|�j���n�|dk�r�d|�_y|�jj��|�_W�n2�t tfk �r|���t!|�j�|�_d|�_d|�_Y�n6X�y|�jj"|�j��W�n �t tfk �r����d|�_Y�nX�nf|dk�ry|�j���|�jj"|�j��W�n6�t#k �r���|�jj"dd��d|�_|�jj��|�_Y�nX�nt�d��W�n$���|�j}d�|�_|�j$|����Y�nX�d�S�)Nr5���w�x�az+ZipFile requires mode 'r', 'w', 'x', or 'a'Fr���r*���r;���zw+bzx+bzr+b�wbZxb)r5��r6��r7��r8��zr+bzw+bzx+br���r��Tr���z"Mode must be 'r', 'w', 'x', or 'a')r5��r6��r7��r8��)r6��r7��)%rv���r�����_allowZip64� _didModify�debugr3��r2��r����r��r�����_commentr����rs���r����r�����str�_filePassedr>���r ��r=���r8���r7����getattr�_fileRefCnt� threading�RLockr����� _seekabler�����_RealGetContentsrV���r1���AttributeErrorr����r@���r����_fpclose)rz���r����r��r����� allowZip64ZmodeDictr����r8���r���r���r���r{���;��s����� zZipFile.__init__c�������������C���s���|�S�)Nr���)rz���r���r���r���� __enter__���s����zZipFile.__enter__c�������������C���s���|�j����d�S�)N)r����)rz����type�value� tracebackr���r���r����__exit__���s����zZipFile.__exit__c�������������C���s����d|�j�j|�j�jf�g}|�jd�k rd|�jr8|jd|�j���n|�jd�k rR|jd|�j���|jd|�j���n |jd��|jd��dj|�S�)Nz<%s.%sz file=%rz filename=%rz mode=%rz [closed]r|���r}���) r~���r���r���r8���r?��r.���r>���r��r/���)rz���r?���r���r���r���r�������s���� zZipFile.__repr__c�������������C���s���|�j�}yt|�}W�n�tk r.���td��Y�nX�|s<td��|�jdkrNt|��|t�}|t�}|t�|�_ |t �|�|�}|t�tkr�|t t�8�}|�jdkr�||�}td|||��||�|�_|j|�jd��|j|�}tj|�}d}�x�||k��r�|jt�} t| �tk�rtd��tjt| �} | t�tk�r0td��|�jdk�rDt| ��|j| t��} | d�}|d @��rp| jd �} n | jd�} t| �}|j| t��|_|j| t ��|_!| t"�|_#| dd��\|_$|_%|_&|_'|_(|_)} }|_*|_+|_,|j&t-k�r�t.d |j&d����| dd��\|_/|_0|_1| |_2|d?�d�|d?�d@�|d@�| d?�| d?�d@�| d@�d�f|_3|j4���|j#|�|_#|�j5j6|��||�j7|j8<�|t�| t��| t��| t ��}|�jdkr�td|��q�W�d�S�)NzFile is not a zip filer���r���zgiven, inferred, offsetr���zTruncated central directoryz&Bad magic number for central directoryr ���i���zutf-8�cp437r���zzip file version %.1fr$���r'���r)���r#���i���r���r%���r����total)9r8���r6���r7���r���r<���printrM���rN����_ECD_COMMENTr=��� _ECD_LOCATIONrH���rG���rE���rA���r1��r@���r:���r ���BytesIO�sizeCentralDirr-���rB���r,����structCentralDir� _CD_SIGNATURE�stringCentralDir�_CD_FILENAME_LENGTH�decoder ����_CD_EXTRA_FIELD_LENGTHr0����_CD_COMMENT_LENGTHr^����_CD_LOCAL_HEADER_OFFSETri���rS���rb���rc���rd���re���ra���rj���rk���rl����MAX_EXTRACT_VERSIONr����rf���rg���rh���rm���r`���r����r2��r.���r3��r>���)rz���r8���rQ���Zsize_cdZ offset_cd�concatZinferredrR���rO���centdirr>����flagsr7���t�dr���r���r���rE�����sp���� 4 zZipFile._RealGetContentsc�������������C���s���dd��|�j�D��S�)Nc�������������S���s���g�|�] }|j��qS�r���)r>���)�.0rR���r���r���r���� <listcomp>���s����z$ZipFile.namelist.<locals>.<listcomp>)r2��)rz���r���r���r����namelist���s����zZipFile.namelistc�������������C���s���|�j�S�)N)r2��)rz���r���r���r����infolist���s����zZipFile.infolistc�������������C���sP���t�dd �|d��x:|�jD�]0}d|jd�d���}t�d|j||jf�|d��qW�d�S�) Nz%-46s %19s %12s� File Name�Modified �Size)r����z%d-%02d-%02d %02d:%02d:%02dr!���z %-46s %s %12d)rg��rh��ri��)rP��r2��r`���r>���rl���)rz���r����r����Zdater���r���r����printdir���s����zZipFile.printdirc�������������C���s^���d}xT|�j�D�]J}y.|�j|jd��}x|j|�r0q$W�W�d�Q�R�X�W�q�tk rT���|jS�X�qW�d�S�)Nr���r���r5��i���)r2��r=���r>���r:���r���)rz���Z chunk_sizer�����fr���r���r����testzip��s����zZipFile.testzipc�������������C���s$���|�j�j|�}|d�kr td|���|S�)Nz(There is no item named %r in the archive)r3��r�����KeyError)rz���r���infor���r���r����getinfo��s ���� zZipFile.getinfoc�������������C���s8���|r"t�|t��r"tdt|�j���|r.||�_nd�|�_d�S�)Nzpwd: expected bytes, got %s)r����r ��� TypeErrorrJ��r���r����)rz���r����r���r���r����setpassword��s ����zZipFile.setpasswordc�������������C���s���|�j�S�)N)r=��)rz���r���r���r���r^���%��s����zZipFile.commentc�������������C���s^���t�|t�stdt|�j���t|�tkrNdd�l}|jdt�dd��|d�t��}||�_ d|�_ d�S�)Nzcomment: expected bytes, got %sr���z3Archive comment is too long; truncating to %d bytesr���)� stacklevelT)r����r ��rp��rJ��r���r-����ZIP_MAX_COMMENT�warnings�warnr=��r;��)rz���r^���rt��r���r���r���r^���*��s���� c���������� ���C���s"���|�j�|d|�� }|j��S�Q�R�X�d�S�)Nr5��)r=���r:���)rz���r��r����r8���r���r���r���r:���7��s����zZipFile.readF)�force_zip64c���������������sv��|dkrt�d��|r2t|t��r2tdt|�j���|rF|dkrFt�d����jsTt�d��t|t�rd|}n$|dkr~t|�}��j|_ n ��j |�}|dkr���j||d�S���jr�t�d�����j d 7��_ t��j|j��j��j��fd d��}�y~|jt�}t|�tk��r�td��tjt|�}|t�tk�r td ��|j|t��}|t��rF|j|t���|jd@��rZtd��|jd@��rntd��|jd@��r�|jd�} n |jd�} | |j k�r�td|j |f���|jd @�} d�}| �rL|�sΈ�j!}|�s�t"d|���t#|�}|jd�}t$t%||dd����} |jd@��r$|j&d?�d@�}n|j'd?�d@�}| d�|k�rLt"d|���t(||||d�S����|j)�����Y�nX�d�S�) Nr5��r6��zopen() requires mode "r" or "w"zpwd: expected bytes, got %sz'pwd is only supported for reading filesz2Attempt to use ZIP archive that was already closed)rv��zyCan't read from the ZIP file while there is an open writing handle on it. Close the writing handle before trying to read.r���c������������������s�����j�S�)N)r����r���)rz���r���r����<lambda>l��s����zZipFile.open.<locals>.<lambda>zTruncated file headerz Bad magic number for file header� ���z$compressed patched data (flag bit 5)�@���zstrong encryption (flag bit 6)i���zutf-8rN��z/File name in directory %r and header %r differ.z6File %r is encrypted, password required for extractionr���r���r���r����r����r%���zBad password for file %rT>���r5��r6��)*rv���r����r ��rp��rJ��r���r8���r ���r����ra���ro���_open_to_writer����rA��r����ri���rG��r����r:����sizeFileHeaderr-���r���rB���r,���r����� _FH_SIGNATUREr�����_FH_FILENAME_LENGTH�_FH_EXTRA_FIELD_LENGTHre���r����rY��r_���r����r����r����rZ���r!��rm���rj���r����r����)rz���r��r��r����rv��r����Zzef_fileZfheader�fnameZ fname_strZis_encryptedZzdr�����hZ check_byter���)rz���r���r=���<��s~���� zZipFile.openc�������������C���s����|r|�j��rtd��|�jr"td��t|d�s2d|_d|_d|_d|_|jt kr\|�jdO��_|�j sp|�jdO��_|js|d|_|�j�o�|p�|jd �tk}|�j r�|�j j|�j��|�j j��|_|�j|��d |�_|�j j|j|���d |�_t|�||�S�)NzHforce_zip64 is True, but allowZip64 was False when opening the ZIP file.zzCan't write to the ZIP file while there is another write handle open on it. Close the first handle before opening another.rl���r���r���r���i���r���g�������?Ti���)r:��rv���r����r<���rl���rk���rj���re���ra���r���rD��rh���r����r8���r@���r1��rV���ri����_writecheckr;��r����r����r%��)rz���r����rv��r����r���r���r���rz�����s4���� zZipFile._open_to_writec�������������C���s*���|d�krt�j��}n t�j|�}|�j|||�S�)N)rs����getcwdr�����_extract_member)rz����memberr����r����r���r���r����extract���s���� zZipFile.extractc�������������C���sL���|d�kr|�j���}|d�kr"tj��}n tj|�}x|D�]}|�j|||��q2W�d�S�)N)re��rs���r���r����r���)rz���r�����membersr����r ��r���r���r���� extractall���s���� zZipFile.extractallc�������������C���s^���|�j�}|s(d}tj|dt|���}||�_�|j|�}dd��|j|�D��}|jdd��|D���}|S�)Nz:<>|"?*�_c�������������s���s���|�]}|j�d��V��qdS�)�.N)�rstrip)rc��r7��r���r���r���� <genexpr>���s����z1ZipFile._sanitize_windows_name.<locals>.<genexpr>c�������������s���s���|�]}|r|V��qd�S�)Nr���)rc��r7��r���r���r���r�����s����)�!_windows_illegal_name_trans_tabler>��� maketransr-���� translate�splitr/���)r����r�����pathsepr����Zillegalr���r���r����_sanitize_windows_name���s���� zZipFile._sanitize_windows_namec����������������sN��t�|t�s|�j|�}|jjdtjj�}tjjrB|jtjjtjj�}tjj |�d�}dtjj tjjf��tjjj��fdd�|j tjj�D���}tjjdkr�|�j|tjj�}tjj||�}tjj|�}tjj|�}|r�tjj|��r�tj|��|j���rtjj|��s tj|��|S�|�j||d��(}t|d��}tj||��W�d�Q�R�X�W�d�Q�R�X�|S�) Nrp���r���r}���c�������������3���s���|�]}|��kr|V��qd�S�)Nr���)rc��r7��)�invalid_path_partsr���r���r�����s����z*ZipFile._extract_member.<locals>.<genexpr>�\)r����r9��)r����r ���ro��r>���ru���rs���r����rt���r����r�����curdir�pardirr/���r���r���r�����dirname�exists�makedirsr����r�����mkdirr=����shutil�copyfileobj)rz���r���Z targetpathr����r����Z upperdirs�source�targetr���)r���r���r�����s.���� & zZipFile._extract_memberc�������������C���s����|j�|�jkr(dd�l}|jd|j��dd��|�jdkr:td��|�jsHtd ��t|j��|�j s�d�}t |�j�tkrpd }n|j tkr�d}n|jtkr�d}|r�t|d ���d�S�)Nr���zDuplicate name: %rr���)rr��r6��r7��r8��z&write() requires mode 'w', 'x', or 'a'z4Attempt to write ZIP archive that was already closedzFiles countZFilesizezZipfile sizez would require ZIP64 extensions)r6��r7��r8��)r>���r3��rt��ru��r��rv���r8���r����ra���r:��r-���r2���ZIP_FILECOUNT_LIMITrl���r����ri���r ���)rz���r����rt���requires_zip64r���r���r���r���/��s(���� zZipFile._writecheckc�������������C���s0��|�j�std��|�jrtd��tj||�}|j��r>d|_d|_n|d�k rN||_n|�j |_|j��r�|�j ���|�jrz|�j�j|�j ��|�j�j��|_|jtkr�|�jdO��_|�j|��d|�_|�jj|��||�j|j<�|�j�j|jd���|�j�j��|�_ W�d�Q�R�X�n<t|d��,}|�j|d��}tj||d��W�d�Q�R�X�W�d�Q�R�X�d�S�)Nz7Attempt to write to ZIP archive that was already closedz>Can't write to ZIP archive while an open writing handle existsr���r���TFr;���r6��i���r���i� ��)r8���rv���r����r ���r����r����rk���rj���ra���r����r����rD��r@���r1��rV���ri���r���re���r���r;��r2��r.���r3��r>���r����r����r=���r���r���)rz���r>���r����ra���r�����src�destr���r���r���r����F��s8���� z ZipFile.writec�������������C���s����t�|t�r|jd�}t�|t�spt|tjtj���d�d��d�}|�j|_|jd �dkrhd|_ |�j dO��_ qtd|_ n|}|�j s�td ��|�jr�td ��|d�k r�||_t |�|_|�j�*�|�j|dd��}|j|��W�d�Q�R�X�W�d�Q�R�X�d�S�)Nzutf-8r!���)r>���r`���r���rp���i�A��r���i���z7Attempt to write to ZIP archive that was already closedz?Can't write to ZIP archive while an open writing handle exists.r6��)r��r����i���Ai���)r����r>��r����r ���r����r����r����ra���r>���rh���r8���rv���r����r-���rl���r����r=���r����)rz���Zzinfo_or_arcnamerR���ra���r����r���r���r���r����writestrp��s.���� zZipFile.writestrc�������������C���s���|�j����d�S�)N)r����)rz���r���r���r����__del__���s����zZipFile.__del__c�������������C���s|���|�j�d�krd�S�|�jrtd��zB|�jdkr\|�jr\|�j�"�|�jrJ|�j�j|�j��|�j ���W�d�Q�R�X�W�d�|�j�}d�|�_�|�j |��X�d�S�)NzvCan't close the ZIP file while there is an open writing handle on it. Close the writing handle before closing the zip.r6��r7��r8��)r6��r7��r8��)r8���r����rv���r��r;��r����rD��r@���r1���_write_end_recordrG��)rz���r8���r���r���r���r�������s���� z ZipFile.closec�������������C���sr���xP|�j�D��]D}|j}|d�d�d>�|d�d>�B�|d�B�}|d�d>�|d �d>�B�|d�d�B�}g�}|jtksv|jtkr�|j|j��|j|j��d }d }n|j}|j}|jtkr�|j|j��d }n|j}|j} d} |�rt| d�} t j ddt|���dd t|��f|���| �} t} |j tk�r(tt| �} n|j tk�r>tt| �} t| |j�}t| |j�}yZ|j��\} }t j tt||j||j||j |||j||t| �t| �t|j�d|j|j|�}W�nl�tk �r���ttt||j||j|j |j |||j||t|j!�t| �t|j�d|j|j|ft"j#d����Y�nX�|�j$j%|��|�j$j%| ��|�j$j%| ��|�j$j%|j��q W�|�j$j&��}t|�j��}||�j'�}|�j'}d�}|t(k�r�d}n|tk�r�d}n|tk�r�d}|�r*|�j)�s�t*|d���t j t+t,ddddd||||�}|�j$j%|��t j t-t.d|d�}|�j$j%|��t/|d�}t/|d �}t/|d �}t j t0t1dd||||t|�j2�� }|�j$j%|��|�j$j%|�j2��|�j$j3���d�S�)Nr���i���r#���r���r ���r���r���r%���r���l������z<HH�Qr���)r����zFiles countzCentral directory offsetzCentral directory sizez would require ZIP64 extensions�,���r���i����)r���)4r2��r`���rl���r����rk���r.���ri���r0���r5���rB���r����r-���r����ra���r���r[���r����r���r����rc���rS���r����rU��rW��rb���rd���rj���r^���rg���rh����DeprecationWarningrP��re���r>���rw����stderrr8���r����rV���r1��r���r:��r ���rF���rG���rC���rD���r��rY���rX���r=��r����)rz���r����r����r����r����r0���rl���rk���ri���Z extra_datar����rc���rS���r>���re���r_��Zpos2ZcentDirCountZcentDirSizeZ centDirOffsetr���Zzip64endrecZzip64locrecrQ���r���r���r���r������s�����$$ zZipFile._write_end_recordc�������������C���s*���|��j�d8��_�|�j��r&|�j�r&|j���d�S�)Nr���)rA��r?��r����)rz���r8���r���r���r���rG����s����zZipFile._fpclose)N)N)r5��N)F)NN)NNN)NN)N)#r���r���r���r8���r���r���r{���rI��rM��r����rE��re��rf��rj��rl��ro��rq��r4��r^����setterr:���r=���rz��r���r���r����r���r���r���r����r���r���r����r���rG��r���r���r���r���r���'��s:���WN q + * * $fc���������������@���s0���e�Zd�Zdeddfdd�Zd dd �Zd d��ZdS�)r���r5��Tr���c�������������C���s���t�j|�||||d��||�_d�S�)N)r��r����rH��)r���r{���� _optimize)rz���r����r��r����rH���optimizer���r���r���r{�����s����zPyZipFile.__init__r}���Nc�������������C���s���t�j|�}|rF||��rF|�jrBt�jj|�r.dnd}td||f���d�S�t�jj|�\}}t�jj|��rnt�jj|d�}t�jj|��r�|r�d||f�}n|}|�jr�td|d|��|�j |dd��|�\}} |�jr�td | ��|�j || ��t�j|�} | jd��x�| D�]�}t�jj||�}t�jj |�\} }t�jj|��rRt�jjt�jj|d���r�|�j|||d��q�|dkr�|�r�||���r�|�jr�td |���q�|�j |dd��|�\}} |�j�r�td | ��|�j || ��q�W�n�|�j�r�td|��x�t�j|�D�]�}t�jj||�}t�jj |�\} }|dk�r�|�r0||���r0|�j�r�td |����q�|�j |dd��|�\}} |�j�rZtd | ��|�j || ���q�W�nP|dd���dk�r�td��|�j |dd��|�\}} |�j�r�td| ��|�j || ��d�S�)Nr����r����z%s %r skipped by filterfuncz__init__.pyz%s/%szAdding package in�asr���r���ZAdding)� filterfuncz.pyzfile %r skipped by filterfunczAdding files from directoryz.Files added with writepy() must end with ".py"zAdding file���r���r���r���r���)rs���r����r<��r����r����rP��r���r/����isfile� _get_codenamer�����listdir�remove�splitext�writepyr����)rz����pathname�basenamer���Zlabel�dirr��Zinitnamer��r����Zdirlistr>���r�����rootZextr���r���r���r���$��sx���� zPyZipFile.writepyc������� ���������s��d��fdd� }|d�}|d�}t�jj|dd�}t�jj|dd�}t�jj|dd�}��jdk�r\tjj|�r�tj|�jtj|�jkr�|�} } n�tjj|�r�tj|�jtj|�jkr�|} |} n�tjj|�r�tj|�jtj|�jkr�|} |} nvtjj|��rtj|�jtj|�jk�r|} |} nD||��rRt j jd k�r4|} nt j jdk�rH|} n|} |} n|�} } n���jd k�rr|} |} n<|} ��jdk�r�|} n&��jdk�r�|} nd j��j�}t |��tjj| ��o�tj| �jtj|�jk�s�||��jd��s�|�} } tjj| �d�}|�rd||f�}| |fS�)Nr���c����������������s^���dd�l�}��jrtd|���y|j|�d|d��W�n,�|jk rX�}�zt|j��dS�d�}~X�nX�dS�)Nr���Z CompilingT)�doraiser���F)� py_compiler<��rP���compile�PyCompileError�msg)r����r���r����err)rz���r���r����_compile}��s���� z)PyZipFile._get_codename.<locals>._compilez.pyz.pycr}���)�optimizationr���r���z"invalid value for 'optimize': {!r})r���z%s/%sr����)r����r����)� importlib�util�cache_from_sourcer���rs���r����r���r����r����rw���r`��r����formatrv���r���) rz���r���r���r���Zfile_pyZfile_pycZpycache_opt0Zpycache_opt1Zpycache_opt2r����r��r���Zarchivenamer���)rz���r���r���v��s`���� zPyZipFile._get_codenamer����)r}���N)r���r���r���r���r{���r���r���r���r���r���r���r�����s��� Rc����������������s��dd�l�}|jd�}|�d�kr(tjdd���}�|��s:|�d�dkrLt|��tjd��|�d�dkr�t|��dkrvt|��tjd��t|�d�d ��}|j���W�d�Q�R�X��n||�d�dk�r t|��dkr�t|��tjd��t|�d�d ��}|j ��}W�d�Q�R�X�|��r�td j |���td���n|�d�dk�rbt|��dk�r8t|��tjd��t|�d�d ��}|j|�d���W�d�Q�R�X�n�|�d�dk�rt|��dk��r�t|��tjd����fd d���t|�d�d��h}x`|�dd���D�]P}tj j|�}|�s�tj jtj j|��}|dtjtjfk�r�d}��|||���q�W�W�d�Q�R�X�d�S�)Nr���aE�� Usage: zipfile.py -l zipfile.zip # Show listing of a zipfile zipfile.py -t zipfile.zip # Test if a zipfile is valid zipfile.py -e zipfile.zip target # Extract zipfile into target dir zipfile.py -c zipfile.zip src ... # Create zipfile from sources r����-l�-c�-e�-tr���r5��z.The following enclosed file is corrupted: {!r}zDone testingr���c����������������sp���t�jj|�r|�j||t��nPt�jj|�rl|r8|�j||��x2t�j|�D�]$}��|�t�jj||�t�jj||���qDW�d�S�)N)rs���r����r���r����r���r����r���r/���)r-��r�����zippathZnm)�addToZipr���r���r������s����zmain.<locals>.addToZipr6��r}���)r���r���r���r���)�textwrap�dedentrw����argvrP���exitr-���r���rj��rl��r���r���rs���r����r���r���r���r���)�argsr���ZUSAGEr-��Zbadfiler����r���r���)r���r����main���sT���� r����__main__l��������i���i���i����i���i����)N)�r ��rs����re�importlib.utilr���rw���r����r����r���rB���ZbinasciirB���ImportErrorZdummy_threadingr����r��r����r�����__all__� Exceptionr���r ���r���r���r����r���rs��r���r���r���r���ry���r����r����r����r]��rY���rX���r����rW���rH���rI���rJ���rK���rL���rM���rN���r]���rQ��rR��rU��rW��rT��rV��Z_CD_CREATE_VERSIONZ_CD_CREATE_SYSTEMZ_CD_EXTRACT_VERSIONZ_CD_EXTRACT_SYSTEMZ _CD_FLAG_BITSZ_CD_COMPRESS_TYPEZ_CD_TIMEZ_CD_DATEZ_CD_CRCZ_CD_COMPRESSED_SIZEZ_CD_UNCOMPRESSED_SIZErX��rZ��r[��Z_CD_DISK_NUMBER_STARTZ_CD_INTERNAL_FILE_ATTRIBUTESZ_CD_EXTERNAL_FILE_ATTRIBUTESr\��r����r����r{��r|��Z_FH_EXTRACT_VERSIONZ_FH_EXTRACT_SYSTEMZ_FH_GENERAL_PURPOSE_FLAG_BITSZ_FH_COMPRESSION_METHODZ_FH_LAST_MOD_TIMEZ_FH_LAST_MOD_DATEZ_FH_CRCZ_FH_COMPRESSED_SIZEZ_FH_UNCOMPRESSED_SIZEr}��r~��rC���rD���rA���rF���rG���rE���Z_CD64_SIGNATUREZ_CD64_DIRECTORY_RECSIZEZ_CD64_CREATE_VERSIONZ_CD64_EXTRACT_VERSIONZ_CD64_DISK_NUMBERZ_CD64_DISK_NUMBER_STARTZ_CD64_NUMBER_ENTRIES_THIS_DISKZ_CD64_NUMBER_ENTRIES_TOTALZ_CD64_DIRECTORY_SIZEZ_CD64_OFFSET_START_CENTDIRr0��ZStructr+���r5���r9���r ���rT���r6����objectr ���r����r����r����r���r����r����r����r����r����r��r����r%��r���r���r���r���r���r���r���r����<module>���s>�� +=�Y=�fJ�����y�/ B