Ë
    ¨Õ°j"  ã                  óT  — d dl mZ g d¢Zd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlmZmZ d dlmZmZmZ d dlmZmZmZ erd dlmZmZ  e	j4                  de	j6                  «      Zd	Z ej<                  d
«      Z G d„ de «      Z!dd„Z"dd„Z#	 d	 	 	 dd„Z$ G d„ de«      Z%y)é    )Úannotations)ÚWHEEL_INFO_REÚ	WheelFileÚ
WheelErrorN)ÚStringIOÚTextIOWrapper)ÚIOÚTYPE_CHECKINGÚLiteral)ÚZIP_DEFLATEDÚZipFileÚZipInfo)ÚSizedBufferÚStrPathzŠ^(?P<namever>(?P<name>[^\s-]+?)-(?P<ver>[^\s-]+?))(-(?P<build>\d[^\s-]*))?
     -(?P<pyver>[^\s-]+?)-(?P<abi>[^\s-]+?)-(?P<plat>\S+)\.whl$i ¦ÎÚwheelc                  ó   — e Zd Zy)r   N)Ú__name__Ú
__module__Ú__qualname__© ó    úX/var/www/mission/venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/wheelfile.pyr   r   !   s   „ Ør   r   c                óJ   — t        j                  | «      j                  d«      S )z!urlsafe_b64encode without paddingó   =)Úbase64Úurlsafe_b64encodeÚrstrip)Údatas    r   r   r   %   s   € ä×#Ñ# DÓ)×0Ñ0°Ó6Ð6r   c                óZ   — ddt        | «      dz  z
  z  }t        j                  | |z   «      S )z!urlsafe_b64decode without paddingr   é   é   )Úlenr   Úurlsafe_b64decode)r   Úpads     r   r#   r#   *   s.   € à
�!”s˜4“y 1‘}Ñ%Ñ
&€CÜ×#Ñ# D¨3¡JÓ/Ð/r   c                óÐ   — t        t        j                  j                  d| xs t	        j                  «       «      «      } t        | t        «      } t	        j                  | «      dd S )NÚSOURCE_DATE_EPOCHr   é   )ÚintÚosÚenvironÚgetÚtimeÚmaxÚMINIMUM_TIMESTAMPÚgmtime)Ú	timestamps    r   Úget_zipinfo_datetimer1   0   sL   € ô
 ”B—J‘J—N‘NÐ#6¸	Ò8PÄTÇYÁYÃ[ÓQÓR€IÜ�IÔ0Ó1€IÜ�;‰;�yÓ! ! AÐ&Ð&r   c                  ó¢   — e Zd ZdZej
                  Zdef	 	 	 	 	 d
d„Z	 	 d	 	 	 	 	 	 	 dd„Z	dd„Z
	 	 d	 	 	 	 	 	 	 dd„Z	 d	 	 	 	 	 	 	 dd„Zdd	„Zy)r   z‚A ZipFile derivative class that also reads SHA-256 hashes from
    .dist-info/RECORD and checks any read files against those.
    Úrc                ó†  — t         j                  j                  |«      }t        j	                  |«      | _        |j                  d«      r| j
                  €t        d|›�«      ‚t        j                  | |||d¬«       dj                  | j
                  j                  d«      «      | _        | j                  dz   | _        i | _        i | _        |dk(  �rd	| j                  | j                  <   d	| j                  | j                  d
z   <   d	| j                  | j                  dz   <   	 | j!                  | j                  «      }|5  t%        j&                  t)        |dd¬«      «      D ]  }|\  }}}	|sŒ|j+                  d«      \  }
}	 t-        j.                  |
«       |
j3                  «       dv rt        d|
› d�«      ‚|
t5        |j7                  d«      «      f| j                  |<   Œ� 	 d d d «       y y # t"        $ r t        d| j                  › d�«      d ‚w xY w# t0        $ r t        d|
› �«      d ‚w xY w# 1 sw Y   y xY w)Nz.whlzBad wheel filename T)ÚcompressionÚ
allowZip64z{}.dist-infoÚnameverz/RECORDr3   ©NNz.jwsz.p7szMissing z fileÚ úutf-8)ÚnewlineÚencodingú=zUnsupported hash algorithm: >   Úmd5Úsha1zWeak hash algorithm (z) is not permitted by PEP 427Úascii)r)   ÚpathÚbasenamer   ÚmatchÚparsed_filenameÚendswithr   r   Ú__init__ÚformatÚgroupÚdist_info_pathÚrecord_pathÚ_file_hashesÚ_file_sizesÚopenÚKeyErrorÚcsvÚreaderr   ÚsplitÚhashlibÚnewÚ
ValueErrorÚlowerr#   Úencode)ÚselfÚfileÚmoder5   rB   ÚrecordÚlinerA   Úhash_sumÚsizeÚ	algorithms              r   rF   zWheelFile.__init__A   sW  € ô —7‘7×#Ñ# DÓ)ˆÜ,×2Ñ2°8Ó<ˆÔØ× Ñ  Ô(¨D×,@Ñ,@Ð,HÜÐ2°8°,Ð?Ó@Ð@ä×Ñ˜˜t T°{ÈtÕTà,×3Ñ3Ø× Ñ ×&Ñ& yÓ1ó
ˆÔð  ×.Ñ.°Ñ:ˆÔØNPˆÔØˆÔØ�3‹;à2<ˆD×Ñ˜d×.Ñ.Ñ/Ø;EˆD×Ñ˜d×.Ñ.°Ñ7Ñ8Ø;EˆD×Ñ˜d×.Ñ.°Ñ7Ñ8ðOØŸ™ 4×#3Ñ#3Ó4�ð ñ ÜŸJ™JÜ! &°"¸wÔGóò �Dð ,0Ñ(�D˜( DÙ#Ø à*2¯.©.¸Ó*=Ñ'�I˜xð$ÜŸ™ IÔ.ð !—‘Ó(¨OÑ;Ü(Ø3°I°;ð ?&ð 'óð ð "Ü)¨(¯/©/¸'Ó*BÓCð/�D×%Ñ% dÒ+ñ+÷ð ð øô ò OÜ  8¨D×,<Ñ,<Ð+=¸UÐ!CÓDÈ$ÐNðOûô &ò $Ü(Ø:¸9¸+ÐFóà#ð$ð$ú÷ð ús2   Ä(G4 ÅAH7ÆHÆAH7Ç4$HÈH4È4H7È7I Nc                óœ  ‡‡‡‡	‡
— dˆˆˆˆ	ˆ
fd„}t        |t        «      r|j                  n|Š|dk(  r.‰j                  d«      s‰| j                  vrt        d‰› d�«      ‚t        j                  | |||«      Š|dk(  rN‰j                  d«      s=| j                  ‰   \  }Š‰�)t        j                  |«      Š	‰j                  |cŠ
‰_
        ‰S )Nc                óš   •— ‰j                   } ‰| «       ‰j                  | «       |r#‰j                  «       ‰k7  rt        d‰› d�«      ‚y y )NzHash mismatch for file 'ú')Ú_eofÚupdateÚdigestr   )ÚnewdataÚeofÚefÚef_nameÚexpected_hashÚrunning_hashÚupdate_crc_origs     €€€€€r   Ú_update_crcz#WheelFile.open.<locals>._update_crc�   sQ   ø€ Ø—'‘'ˆCÙ˜GÔ$Ø×Ñ Ô(Ù�|×*Ñ*Ó,°Ò=Ü Ð#;¸G¸9ÀAÐ!FÓGÐGð >ˆsr   r3   ú/zNo hash found for file 'ra   )re   ÚbytesÚreturnÚNone)Ú
isinstancer   ÚfilenamerE   rK   r   r   rM   rR   rS   rl   )rW   Úname_or_inforY   Úpwdrl   r^   rg   rh   ri   rj   rk   s         @@@@@r   rM   zWheelFile.open{   sÎ   ü€ ÷	Hñ 	Hô &0°¼gÔ%FˆL×!Ò!ÈLð 	ð �CŠKØ×$Ñ$ SÔ)Ø˜t×0Ñ0Ñ0äÐ7¸°yÀÐBÓCÐCä�\‰\˜$ ¨d°CÓ8ˆØ�3Š;˜w×/Ñ/°Ô4Ø'+×'8Ñ'8¸Ñ'AÑ$ˆI�}ØÐ(ô  'Ÿ{™{¨9Ó5�Ø24·.±.À+Ð/� ¤àˆ	r   c                óú  — t         j                  d| j                  |«       g }t        j                  |«      D �]  \  }}}|j                  «        t        |«      D ]î  }t        j                  j                  t        j                  j                  ||«      «      }t        j                  j                  |«      sŒ`t        j                  j                  ||«      j                  t        j                  j                  d«      }|| j                  k(  rŒ¸|j                  d«      r|j!                  ||f«       ŒÝ| j#                  ||«       Œð �Œ |j                  «        |D ]  \  }}| j#                  ||«       Œ y )Nzcreating %r and adding %r to itrm   z
.dist-info)ÚlogÚinforr   r)   ÚwalkÚsortÚsortedrA   ÚnormpathÚjoinÚisfileÚrelpathÚreplaceÚseprJ   rE   ÚappendÚwrite)	rW   Úbase_dirÚdeferredÚrootÚdirnamesÚ	filenamesÚnamerA   Úarcnames	            r   Úwrite_fileszWheelFile.write_files�   s  € Ü�‰Ð2°D·M±MÀ8ÔLØ*,ˆÜ)+¯©°Ó):ó 	2Ñ%ˆD�(˜Ið �M‰MŒOÜ˜yÓ)ò 	2�Ü—w‘w×'Ñ'¬¯©¯©°T¸4Ó(@ÓA�Ü—7‘7—>‘> $Õ'Ü Ÿg™gŸo™o¨d°HÓ=×EÑEÄbÇgÁgÇkÁkÐSVÓW�GØ $×"2Ñ"2Ò2ØØŸ™ |Ô4Ø Ÿ™¨¨w¨Õ8àŸ
™
 4¨Õ1ò	2ð		2ð 	�‰ŒØ%ò 	&‰MˆD�'Ø�J‰J�t˜WÕ%ñ	&r   c                óÒ  — t        |d«      5 }t        j                  |j                  «       «      }|j	                  «       }d d d «       t        |xs |t        j                  «      ¬«      }t        j                  |j                  «      t        j                  |j                  «      z  dz  |_        |xs | j                  |_        | j                  ||«       y # 1 sw Y   Œ�xY w)NÚrb©Ú	date_timeé   )rM   r)   ÚfstatÚfilenoÚreadr   r1   Úst_mtimeÚstatÚS_IMODEÚst_modeÚS_IFMTÚexternal_attrr5   Úcompress_typeÚwritestr)rW   rr   r‰   r™   ÚfÚstr   Úzinfos           r   r‚   zWheelFile.write³   s¶   € ô �(˜DÓ!ð 	 QÜ—‘˜!Ÿ(™(›*Ó%ˆBØ—6‘6“8ˆD÷	ô ØÒ�xÔ+?ÀÇÁÓ+Lô
ˆô  $Ÿ|™|¨B¯J©JÓ7¼$¿+¹+ÀbÇjÁjÓ:QÑQÐVXÑXˆÔØ+Ò?¨t×/?Ñ/?ˆÔØ�‰�e˜T =Õ1÷	ð 	ús   �4CÃC&c                ót  — t        |t        «      rAt        |t        «       ¬«      }| j                  |_        dt        j                  z  dz  |_        t        |t        «      r|j                  d«      }t        j                  | |||«       t        |t        «      r|j                  n|}t        j                  d|«       || j                  k7  rk| j!                  |«      }|j"                  t%        |j'                  «       «      j)                  d«      f| j*                  |<   t-        |«      | j.                  |<   y y )Nr�   i´  r�   r:   z	adding %rr@   )rq   Ústrr   r1   r5   r™   r”   ÚS_IFREGr˜   rV   r   rš   rr   rv   rw   rJ   Ú_default_algorithmrˆ   r   rd   ÚdecoderK   r"   rL   )rW   Úzinfo_or_arcnamer   r™   ÚfnameÚhash_s         r   rš   zWheelFile.writestrÄ   s  € ô Ð&¬Ô,Ü&Ø Ô,@Ó,Bô Ðð .2×-=Ñ-=ÐÔ*Ø.3´d·l±lÑ.BÀrÑ-IÐÔ*ä�dœCÔ Ø—;‘;˜wÓ'ˆDä×Ñ˜Ð/°°}ÔEô Ð*¬GÔ4ð ×%Ò%à!ð 	ô
 	�‰�˜eÔ$Ø�D×$Ñ$Ò$Ø×+Ñ+¨DÓ1ˆEà—
‘
Ü! %§,¡,£.Ó1×8Ñ8¸ÓAð(ˆD×Ñ˜eÑ$ô '*¨$£iˆD×Ñ˜UÒ#ð %r   c                óÊ  ‡ — ‰ j                   �Á‰ j                  dk(  r²‰ j                  r¦t        «       }t	        j
                  |ddd¬«      }|j                  ˆ fd„‰ j                  j                  «       D «       «       |j                  t        ‰ j                  «      ddf«       ‰ j                  ‰ j                  |j                  «       «       t        j                  ‰ «       y )NÚwú,ú"ú
)Ú	delimiterÚ	quotecharÚlineterminatorc              3  óZ   •K  — | ]"  \  }\  }}||d z   |z   ‰j                   |   f–— Œ$ y­w)r=   N)rL   )Ú.0r¤   r^   r¥   rW   s       €r   ú	<genexpr>z"WheelFile.close.<locals>.<genexpr>é   s=   øè ø€ ò á1˜Ñ1 	¨5ð ˜I¨™O¨eÑ3°T×5EÑ5EÀeÑ5LÔMñùs   ƒ(+r9   )ÚfprY   rK   r   rO   ÚwriterÚ	writerowsÚitemsÚwriterowrG   rJ   rš   Úgetvaluer   Úclose)rW   r   r²   s   `  r   r·   zWheelFile.closeã   s¬   ø€ à�7‰7Ð 4§9¡9°Ò#3¸×8IÒ8IÜ“:ˆDÜ—Z‘Z °¸sÐSWÔXˆFØ×Ñóà59×5FÑ5F×5LÑ5LÓ5Nôôð �O‰OœV D×$4Ñ$4Ó5°r¸2Ð>Ô?Ø�M‰M˜$×*Ñ*¨D¯M©M«OÔ<ä�‰�dÕr   )rX   r   rY   zLiteral['r', 'w', 'x', 'a']r5   r(   )r3   N)rs   ústr | ZipInforY   zLiteral['r', 'w']rt   zbytes | Nonero   z	IO[bytes])rƒ   rŸ   ro   rp   r8   )rr   rŸ   r‰   z
str | Noner™   ú
int | Nonero   rp   ©N)r£   r¸   r   zSizedBuffer | strr™   r¹   ro   rp   )ro   rp   )r   r   r   Ú__doc__rR   Úsha256r¡   r   rF   rM   rŠ   r‚   rš   r·   r   r   r   r   r   :   sÞ   „ ñð !Ÿ™Ðð
 -0Ø'ð	8àð8ð *ð8ð ó	8ðz #&Ø ð	 à#ð ð  ð ð ð	 ð
 
ó óD&ð2 #Ø$(ð	2àð2ð ð2ð "ð	2ð
 
ó2ð* %)ð	0à'ð0ð  ð0ð "ð	0ð
 
ó0ô>r   r   )r   rn   ro   rn   rº   )r0   zfloat | Nonero   ztuple[int, int, int, int, int])&Ú
__future__r   Ú__all__r   rO   rR   ÚloggingÚos.pathr)   Úrer”   r,   Úior   r   Útypingr	   r
   r   Úzipfiler   r   r   Ú	_typeshedr   r   ÚcompileÚVERBOSEr   r.   Ú	getLoggerrv   Ú	Exceptionr   r   r#   r1   r   r   r   r   ú<module>rÊ      s±   ðÝ "â
6€ã Û 
Û Û Û Û 	Û Û ß &ß -Ñ -ß 2Ñ 2áß.ð
 �—
‘
ðCà‡J�Jó€ð
 Ð à€g×Ñ˜Ó €ô	�ô 	ó7ó
0ð #ð'Øð'à#ó'ôw�õ wr   