Ë
    äØjj¯j  ã                   ó†  — 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
Z
ddlZddlZddlmZ ddlmZ ddl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mZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& ddl'm(Z(m)Z) ddl*m+Z+ dd	l,m-Z- dd
l.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6m7Z7 ddl8m9Z9m:Z: ddl;m<Z<m=Z= ddl>m?Z?m@Z@ ddlAmBZBmCZCmDZDmEZE ddlFmGZGmHZHmIZImJZJ ddlKmLZL erddlmMZM  G d„ deM«      ZN ejž                  eP«      ZQ e deR«      ZSe$eSeRe%eTeRf   f   ZUdIdeRdeTde$eReRf   fd„ZVdeRdeeRef   fd„ZWdeRdeXfd„ZYdedeXfd „ZZd!e5de$eeReRf   eeReRf   f   fd"„Z[d#e"eR   de!eR   fd$„Z\d%eeU   dee$eReReRf      fd&„Z]d'eSd(eRdeRfd)„Z^deRd(eRdeSfd*„Z_d+eeeR      d,eeSeSf   d-e#eS   d.eeR   d(eRdeeU   fd/„Z`d0eeReRf   deeR   fd1„Za G d2„ d3«      Zb G d4„ d5«      Zc G d6„ d7e1«      Zdd8eRddfd9„Ze G d:„ d;e+«      Zf	 	 	 	 dJd<eRd=e(d>eRd?e=d@eXdAeXdBe!e:   dCeXddfdD„ZgejÐ                  dEeRdedF   fdG„«       Zi	 	 	 	 dJd<eRd>eRd?e=dEeRd@eXdAeXdBe!e:   dCeXddfdH„Zjy)KzGSupport for installing and building the "wheel" binary package format.
é    N)Úurlsafe_b64encode)ÚMessage)ÚchainÚfilterfalseÚstarmap)ÚIOÚTYPE_CHECKINGÚAnyÚBinaryIOÚCallableÚDictÚ	GeneratorÚIterableÚIteratorÚListÚNewTypeÚOptionalÚSequenceÚSetÚTupleÚUnionÚcast)ÚZipFileÚZipInfo)ÚScriptMaker)Úget_export_entry)Úcanonicalize_name)ÚInstallationError)Úget_major_minor_version)ÚBaseDistributionÚFilesystemWheelÚget_wheel_distribution)ÚDIRECT_URL_METADATA_NAMEÚ	DirectUrl)ÚSCHEME_KEYSÚScheme)Úadjacent_tmp_fileÚreplace)Úcaptured_stdoutÚ
ensure_dirÚ	hash_fileÚ	partition)Úcurrent_umaskÚis_within_directoryÚ2set_extracted_file_to_default_mode_plus_executableÚzip_item_is_executable)Úparse_wheel)ÚProtocolc                   ó4   — e Zd ZU ded<   eed<   eed<   dd„Zy)ÚFileÚ
RecordPathÚsrc_record_pathÚ	dest_pathÚchangedNc                  ó   — y ©N© ©Úselfs    úh/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_internal/operations/install/wheel.pyÚsavez	File.saveF   s   € Øó    ©ÚreturnN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__ÚstrÚboolr?   r;   r@   r>   r4   r4   A   s   … Ø%Ó%Ø‹Ø‹ô	r@   r4   r5   ÚpathÚ	blocksizerB   c                 ó®   — t        | |«      \  }}dt        |j                  «       «      j                  d«      j	                  d«      z   }|t        |«      fS )z?Return (encoded_digest, length) for path using hashlib.sha256()zsha256=Úlatin1ú=)r+   r   ÚdigestÚdecodeÚrstriprG   )rI   rJ   ÚhÚlengthrN   s        r>   ÚrehashrS   P   sM   € ä˜$ 	Ó*�I€A€vØÔ*¨1¯8©8«:Ó6×=Ñ=¸hÓG×NÑNÈsÓSÑS€FØ”C˜“KÐ Ð r@   Úmodec                 ó   — | dddœS )zPReturn keyword arguments to properly open a CSV file
    in the given mode.
    Ú úutf-8)rT   ÚnewlineÚencodingr;   )rT   s    r>   Úcsv_io_kwargsrZ   W   s   € ð  R°WÑ=Ð=r@   c                 ó0  — t         j                  j                  | «      sJ ‚t        | d«      5 }|j	                  «       }|j                  d«      s
	 ddd«       yt        j                  j                  t        j                  «       «      }d|z   t         j                  j                  d«      z   }|j                  «       }ddd«       t        | d«      5 }|j                  «       |j                  «       ddd«       y# 1 sw Y   ŒAxY w# 1 sw Y   yxY w)	zQReplace #!python with #!/path/to/python
    Return True if file was changed.
    Úrbs   #!pythonNFs   #!ÚasciiÚwbT)ÚosrI   ÚisfileÚopenÚreadlineÚ
startswithÚsysÚ
executableÚencodeÚgetfilesystemencodingÚlinesepÚreadÚwrite)rI   ÚscriptÚ	firstlineÚexenameÚrests        r>   Ú
fix_scriptro   ^   sé   € ô
 �7‰7�>‰>˜$ÔÐÐä	ˆd�DÓ	ð ˜VØ—O‘OÓ%ˆ	Ø×#Ñ# KÔ0Ø÷ð ô —.‘.×'Ñ'¬×(AÑ(AÓ(CÓDˆØ˜G‘O¤b§j¡j×&7Ñ&7¸Ó&@Ñ@ˆ	Ø�{‰{‹}ˆ÷ô 
ˆd�DÓ	ð ˜VØ�‰�YÔØ�‰�TÔ÷ð ÷ð ú÷ð ús   ®#D ÁA&D Ã#DÄ D	ÄDÚmetadatac                 óH   — | j                  dd«      j                  «       dk(  S )NzRoot-Is-PurelibrV   Útrue)ÚgetÚlower)rp   s    r>   Úwheel_root_is_purelibru   r   s"   € Ø�<‰<Ð)¨2Ó.×4Ñ4Ó6¸&Ñ@Ð@r@   Údistc                 óà   — i }i }| j                  «       D ]T  }|j                  dk(  r|j                  ||j                  <   Œ,|j                  dk(  sŒ<|j                  ||j                  <   ŒV ||fS )NÚconsole_scriptsÚgui_scripts)Úiter_entry_pointsÚgroupÚvalueÚname)rv   rx   ry   Úentry_points       r>   Úget_entrypointsr   v   sz   € Ø€OØ€KØ×-Ñ-Ó/ò >ˆØ×ÑÐ 1Ò1Ø0;×0AÑ0AˆO˜K×,Ñ,Ò-Ø×Ñ -Ó/Ø,7×,=Ñ,=ˆK˜×(Ñ(Ò)ð	>ð
 ˜KÐ'Ð'r@   Úscriptsc           	      ó‚  — | syt        j                  t        «      }| D ]T  }t        j                  j                  |«      }t        j                  j                  |«      }||   j                  |«       ŒV t        j                  j                  dd«      j                  t        j                  «      D �cg c][  }t        j                  j                  t        j                  j                  |«      «      j                  t        j                  «      ‘Œ] }}|j!                  t        j                  j                  t        j                  j                  t        j                  j                  t"        j$                  «      «      «      «       |j'                  «       D �� ci c]F  \  }} t        j                  j                  t        j                  j                  |«      «      |vr|| “ŒH }}} |syg }|j'                  «       D ]l  \  }}	t)        |	«      }
t+        |
«      dk(  r
d|
d   › d�}n,dj-                  d	j/                  |
dd
 «      dz   |
d
   z   «      }|j!                  d|› d|› d�«       Œn d}t+        |«      dk(  r!|j!                  |j-                  d«      «       n |j!                  |j-                  d«      «       t1        d„ t        j                  j                  dd«      j                  t        j                  «      D «       «      }|rd}|j!                  |«       dj/                  |«      S c c}w c c} }w )z�Determine if any scripts are not on PATH and format a warning.
    Returns a warning message if one or more scripts are not on PATH,
    otherwise None.
    NÚPATHrV   é   zscript r   z iszscripts {} areú, éÿÿÿÿz and zThe z installed in 'z' which is not on PATH.zeConsider adding {} to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.zthis directoryzthese directoriesc              3   ó2   K  — | ]  }|sŒ|d    dk(  –— Œ y­w)r   ú~Nr;   )Ú.0Úis     r>   ú	<genexpr>z4message_about_scripts_not_on_PATH.<locals>.<genexpr>»   s   è ø€ ò ØÊQˆˆ!‰��ñùs   ‚ŠziNOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.ú
)ÚcollectionsÚdefaultdictÚsetr_   rI   ÚdirnameÚbasenameÚaddÚenvironrs   ÚsplitÚpathsepÚnormcaseÚnormpathrP   ÚsepÚappendrd   re   ÚitemsÚsortedÚlenÚformatÚjoinÚany)r€   Úgrouped_by_dirÚdestfileÚ
parent_dirÚscript_namer‰   Únot_warn_dirsÚwarn_forÚ	msg_linesÚdir_scriptsÚsorted_scriptsÚ
start_textÚlast_line_fmtÚwarn_for_tildeÚtilde_warning_msgs                  r>   Ú!message_about_scripts_not_on_PATHr¬   �   sÑ  € ñ
 Øô +6×*AÑ*AÄ#Ó*F€NØò 4ˆÜ—W‘W—_‘_ XÓ.ˆ
Ü—g‘g×&Ñ& xÓ0ˆØ�zÑ"×&Ñ& {Õ3ð4ô —‘—‘ ¨Ó+×1Ñ1´"·*±*Ó=öàô 	�‰×ÑœŸ™×)Ñ)¨!Ó,Ó-×4Ñ4´R·V±VÕ<ð€Mð ð ×ÑÜ
�‰×ÑœŸ™×)Ñ)¬"¯'©'¯/©/¼#¿.¹.Ó*IÓJÓKôð
 $2×#7Ñ#7Ó#9÷%áˆJ˜Ü�7‰7×ÑœBŸG™G×,Ñ,¨ZÓ8Ó9ÀÑNð 	�GÑð%€Hñ %ñ
 Øð €IØ#+§>¡>Ó#3ò 
Ñˆ
�KÜ$*¨;Ó$7ˆÜˆ~Ó !Ò#Ø" >°!Ñ#4Ð"5°SÐ9‰Jà)×0Ñ0Ø—	‘	˜.¨¨"Ð-Ó.°Ñ8¸>È"Ñ;MÑMóˆJð 	×ÑØ�:�,˜o¨j¨\Ð9PÐQõ	
ð
ð	Cð ô ˆ9ƒ~˜ÒØ×Ñ˜×-Ñ-Ð.>Ó?Õ@à×Ñ˜×-Ñ-Ð.AÓBÔCô ñ ÜŸZ™ZŸ^™^¨F°BÓ7×=Ñ=¼b¿j¹jÓIôó €Nñ ð=ð 	ð 	×ÑÐ*Ô+ð �9‰9�YÓÐùòkùó%s   Â5A L6Æ AL;Úoutrowsc                 ó&   — t        d„ | D «       «      S )aŸ  Normalize the given rows of a RECORD file.

    Items in each row are converted into str. Rows are then sorted to make
    the value more predictable for tests.

    Each row is a 3-tuple (path, hash, size) and corresponds to a record of
    a RECORD file (see PEP 376 and PEP 427 for details).  For the rows
    passed to this function, the size can be an integer as an int or string,
    or the empty string.
    c              3   ó@   K  — | ]  \  }}}||t        |«      f–— Œ y ­wr:   )rG   )rˆ   Úrecord_pathÚhash_Úsizes       r>   rŠ   z&_normalized_outrows.<locals>.<genexpr>Þ   s&   è ø€ ò Ù,D¨K¸Àˆ�eœS ›YÔ'ñùs   ‚)rš   )r­   s    r>   Ú_normalized_outrowsr³   É   s   € ô* ñ ØHOôó ð r@   r°   Úlib_dirc                 óB   — t         j                  j                  || «      S r:   )r_   rI   r�   )r°   r´   s     r>   Ú_record_to_fs_pathr¶   ã   s   € Ü�7‰7�<‰<˜ Ó-Ð-r@   c                 óp  — t         j                  j                  | «      d   j                  «       t         j                  j                  |«      d   j                  «       k(  r t         j                  j	                  | |«      } | j                  t         j                  j                  d«      } t        d| «      S )Nr   ú/r5   )r_   rI   Ú
splitdrivert   Úrelpathr(   r—   r   )rI   r´   s     r>   Ú_fs_to_record_pathr»   ç   s   € ô 
‡w�w×Ñ˜$Ó Ñ"×(Ñ(Ó*¬b¯g©g×.@Ñ.@ÀÓ.IÈ!Ñ.L×.RÑ.RÓ.TÒTÜ�w‰w�‰˜t WÓ-ˆà�<‰<œŸ™Ÿ™ SÓ)€DÜ�˜dÓ#Ð#r@   Úold_csv_rowsÚ	installedr8   Ú	generatedc                 ó  — g }| D ]¢  }t        |«      dkD  rt        j                  d|«       t        d|d   «      }|j	                  ||«      }||v rt        t        ||«      «      \  }	}
n*t        |«      dkD  r|d   nd}	t        |«      dkD  r|d   nd}
|j                  ||	|
f«       Œ¤ |D ]0  }t        ||«      }t        |«      \  }	}
|j                  ||	|
f«       Œ2 ||j                  «       D �cg c]  }|ddf‘Œ	 c}z   S c c}w )z_
    :param installed: A map from archive RECORD path to installation RECORD
        path.
    é   z,RECORD line has more than three elements: %sr5   r   rƒ   rV   é   )
r›   ÚloggerÚwarningr   ÚpoprS   r¶   r˜   r»   Úvalues)r¼   r½   r8   r¾   r´   Úinstalled_rowsÚrowÚold_record_pathÚnew_record_pathrN   rR   ÚfrI   Úinstalled_record_paths                 r>   Úget_csv_rows_for_installedrÌ   ñ   s(  € ð -/€NØò 
AˆÜˆs‹8�aŠ<Ü�N‰NÐIÈ3ÔOÜ˜|¨S°©VÓ4ˆØ#Ÿ-™-¨¸ÓIˆØ˜gÑ%Ü#Ô$6°ÈÓ$PÓQ‰NˆF‘Fä" 3›x¨!š|�S˜’V°ˆFÜ" 3›x¨!š|�S˜’V°ˆFØ×Ñ˜°¸Ð?Õ@ð
Að ò 6ˆÜ! ! WÓ-ˆÜ ›‰ˆ�Ø×Ñ˜t V¨VÐ4Õ5ð6ð ØEN×EUÑEUÓEWöØ,AÐ	  BÒ'òñ ð ùò s   Ã2DÚconsolec                 ó^  — | j                  «       } g }| j                  dd«      }|rÀdt        j                  vr|j	                  d|z   «       t        j                  j                  dd«      dk7  r(|j	                  dt        j                  d   › d|› �«       |j	                  dt        «       › d|› �«       | D �cg c]  }t        j                  d	|«      sŒ|‘Œ }}|D ]  }| |= Œ | j                  d
d«      }|rudt        j                  vr|j	                  d|z   «       |j	                  dt        «       › d|› �«       | D �cg c]  }t        j                  d|«      sŒ|‘Œ }}|D ]  }| |= Œ |j                  t        dj                  | j                  «       «      «       |S c c}w c c}w )zk
    Given the mapping from entrypoint name to callable, return the relevant
    console script specs.
    ÚpipNÚENSUREPIP_OPTIONSzpip = rV   Ú
altinstallr   z = zpip(\d+(\.\d+)?)?$Úeasy_installzeasy_install = zeasy_install-zeasy_install(-\d+\.\d+)?$ú{} = {})ÚcopyrÄ   r_   r’   r˜   rs   rd   Úversion_infor   ÚreÚmatchÚextendr   rœ   r™   )rÍ   Úscripts_to_generateÚ
pip_scriptÚkÚpip_epÚeasy_install_scriptÚeasy_install_eps          r>   Úget_console_script_specsrß     s°  € ð �l‰l‹n€GàÐðF —‘˜U DÓ)€JÙØ¤b§j¡jÑ0Ø×&Ñ& x°*Ñ'<Ô=ä�:‰:�>‰>Ð-¨rÓ2°lÒBØ×&Ñ&¨¬S×-=Ñ-=¸aÑ-@Ð,AÀÀZÀLÐ'QÔRà×"Ñ" SÔ)@Ó)BÐ(CÀ3ÀzÀlÐ#SÔTà$ÖK˜¬¯©Ð1FÈÕ(J’!ÐKˆÐKØò 	ˆAØ˜‘
ð	à!Ÿ+™+ n°dÓ;ÐÙØ¤b§j¡jÑ0Ø×&Ñ&Ð'8Ð;NÑ'NÔOà×"Ñ"ØÔ3Ó5Ð6°cÐ:MÐ9NÐOô	
ð
 ö
Ø¤"§(¡(Ð+GÈÕ"KŠAð
ˆð 
ð !ò 	ˆAØ˜‘
ð	ð ×Ñœw y×'7Ñ'7¸¿¹»ÓIÔJàÐùò+ Lùò
s   Â;F%ÃF%ÅF*Å F*c                   ó8   — e Zd Zdedededdfd„Zdefd„Zd	d„Z	y)
ÚZipBackedFiler6   r7   Úzip_filerB   Nc                 ó<   — || _         || _        || _        d| _        y ©NF)r6   r7   Ú	_zip_filer8   )r=   r6   r7   râ   s       r>   Ú__init__zZipBackedFile.__init___  s!   € ð  /ˆÔØ"ˆŒØ!ˆŒØˆ�r@   c                 óL   — | j                   j                  | j                  «      S r:   )rå   Úgetinfor6   r<   s    r>   Ú_getinfozZipBackedFile._getinfog  s   € Ø�~‰~×%Ñ% d×&:Ñ&:Ó;Ð;r@   c                 ó@  — t         j                  j                  | j                  «      }t	        |«       t         j                  j                  | j                  «      rt        j                  | j                  «       | j                  «       }| j                  j                  |«      5 }t        | j                  d«      5 }t        j                  ||«       d d d «       d d d «       t        |«      rt        | j                  «       y y # 1 sw Y   Œ3xY w# 1 sw Y   Œ7xY w)Nr^   )r_   rI   r�   r7   r*   ÚexistsÚunlinkré   rå   ra   ÚshutilÚcopyfileobjr0   r/   )r=   r¡   ÚzipinforÊ   Údests        r>   r?   zZipBackedFile.savej  sÌ   € ô —W‘W—_‘_ T§^¡^Ó4ˆ
Ü�:Ôô �7‰7�>‰>˜$Ÿ.™.Ô)Ü�I‰I�d—n‘nÔ%à—-‘-“/ˆà�^‰^× Ñ  Ó)ð 	,¨QÜ�d—n‘n dÓ+ð ,¨tÜ×"Ñ" 1 dÔ+÷,÷	,ô " 'Ô*Ü>¸t¿~¹~ÕNð +÷,ð ,ú÷	,ð 	,ús$   Â(DÂ?DÃDÄD	ÄDÄDrA   )
rC   rD   rE   r5   rG   r   ræ   r   ré   r?   r;   r@   r>   rá   rá   ^  s9   „ ðØ)ðØ69ðØELðà	óð<˜'ó <ôOr@   rá   c                   ó   — e Zd Zdd„Zdd„Zy)Ú
ScriptFileNc                 óŒ   — || _         | j                   j                  | _        | j                   j                  | _        d| _        y rä   )Ú_filer6   r7   r8   )r=   Úfiles     r>   ræ   zScriptFile.__init__‡  s3   € ØˆŒ
Ø#Ÿz™z×9Ñ9ˆÔØŸ™×-Ñ-ˆŒØˆ�r@   c                 ól   — | j                   j                  «        t        | j                  «      | _        y r:   )rô   r?   ro   r7   r8   r<   s    r>   r?   zScriptFile.save�  s    € Ø�
‰
�‰ÔÜ! $§.¡.Ó1ˆ�r@   )rõ   r4   rB   NrA   )rC   rD   rE   ræ   r?   r;   r@   r>   rò   rò   †  s   „ óô2r@   rò   c                   ó(   ‡ — e Zd Zdeddfˆ fd„Zˆ xZS )ÚMissingCallableSuffixr~   rB   Nc                 ó,   •— t         ‰| �  d|› d�«       y )NzInvalid script entry point: z„ - A callable suffix is required. Cf https://packaging.python.org/specifications/entry-points/#use-for-scripts for more information.)Úsuperræ   )r=   r~   Ú	__class__s     €r>   ræ   zMissingCallableSuffix.__init__“  s!   ø€ Ü‰ÑØ*¨;¨-ð 8ð õ	
r@   )rC   rD   rE   rG   ræ   Ú__classcell__©rû   s   @r>   rø   rø   ’  s   ø„ ð
 Cð 
¨D÷ 
ñ 
r@   rø   Úspecificationc                 ó`   — t        | «      }|�!|j                  €t        t        |«      «      ‚y y r:   )r   Úsuffixrø   rG   )rþ   Úentrys     r>   Ú_raise_for_invalid_entrypointr  œ  s2   € Ü˜]Ó+€EØÐ˜UŸ\™\Ð1Ü#¤C¨£JÓ/Ð/ð 2Ðr@   c                   óF   ‡ — e Zd Z	 ddedeeeef      dee   fˆ fd„Zˆ xZ	S )ÚPipScriptMakerrþ   ÚoptionsrB   c                 ó:   •— t        |«       t        ‰| �	  ||«      S r:   )r  rú   Úmake)r=   rþ   r  rû   s      €r>   r  zPipScriptMaker.make£  s   ø€ ô 	& mÔ4Ü‰w‰|˜M¨7Ó3Ð3r@   r:   )
rC   rD   rE   rG   r   r   r
   r   r  rü   rý   s   @r>   r  r  ¢  s9   ø„ àFJñ4Ø ð4Ø+3°D¸¸c¸±NÑ+Cð4à	ˆc‰÷4ñ 4r@   r  r}   Ú	wheel_zipÚ
wheel_pathÚschemeÚ	pycompileÚwarn_script_locationÚ
direct_urlÚ	requestedc           
      ó(  ‡‡8‡9‡:‡;‡<‡=‡>— t        || «      \  }}	t        |	«      r|j                  Š>n|j                  Š>i Š=t	        «       Š9g }
	 d,dt
        dt        dt        ddfˆ9ˆ=ˆ>fd„}dt
        dt        fd„}d	t        d
t        ddfˆfd„Š8dt        dt        dt        t
        gdf   fˆ8fd„}dt        dt        dt        t
        gdf   fˆ8ˆfd„}dt
        dt        fd„}t        t        t
           |j                  «       «      }t        ||«      }t        ||«      \  }} ||‰>«      }t!        ||«      }dt
        dt        fd„}t        ||«      \  }} |||«      }t!        ||«      }t#        ||«      }t%        t'        ‰«      t)        | «      «      }t+        |«      \  Š:Š<dddt        fˆ:ˆ<fd„}t!        ||«      }t        ||«      }t!        t,        |«      }t#        ||«      }|D ]:  }|j/                  «         ||j0                  |j2                  |j4                  «       Œ< dt6        t        ddf   fˆ=ˆ>fd„}dt        dt        fd„} |röt9        «       5 }!t;        j<                  «       5  t;        j>                  d«        |«       D ]ƒ  }"tA        jB                  |"dd¬«      }#|#sŒ | |"«      }$tD        jF                  jI                  |$«      sJ ‚t        d|$jK                  tD        jF                  jL                  d«      «      }% ||%|$«       Œ… 	 ddd«       ddd«       tN        jQ                  !jS                  «       «       tU        d|jV                  «      }&d|&_,        dh|&_-        d|&_.        t_        ‰:«      }'ta        tc        djd                  ‰<jg                  «       «      «      }(|&ji                  |'«      })|
jk                  |)«       |
jk                  |&ji                  |(ddi«      «       |r"tm        |)«      }*|*�tN        jo                  |*«       d tq        «        z  Š;tr        jt                  dt        d!tv        dt6        tx        ddf   fˆ;fd"„«       }+tD        jF                  j{                  ‰>|«      },tD        jF                  j{                  |,d#«      }- |+|-«      5 }.|.j}                  d$«       ddd«       |
j                  |-«       |�ttD        jF                  j{                  |,t€        «      }/ |+|/«      5 }0|0j}                  |jƒ                  «       j…                  d%«      «       ddd«       |
j                  |/«       |rGtD        jF                  j{                  |,d&«      }1t‡        |1d'«      5  	 ddd«       |
j                  |1«       |j‰                  d(«      }2ta        t‹        jŒ                  |2j�                  «       «      «      }3t‘        |3‰=‰9|
‰>¬)«      }4tD        jF                  j{                  |,d(«      }5 |+|5fi t“        d*«      ¤Ž5 }6t‹        j”                  t        d+|6«      «      }7|7j—                  t™        |4«      «       ddd«       y# 1 sw Y   �Œ9xY w# 1 sw Y   �Œ>xY w# 1 sw Y   �Œ¶xY w# 1 sw Y   �ŒMxY w# 1 sw Y   �ŒxY w# 1 sw Y   yxY w)-a�  Install a wheel.

    :param name: Name of the project to install
    :param wheel_zip: open ZipFile for wheel being installed
    :param scheme: Distutils scheme dictating the install directories
    :param req_description: String used in place of the requirement, for
        logging
    :param pycompile: Whether to byte-compile installed Python files
    :param warn_script_location: Whether to check that scripts are installed
        into a directory on PATH
    :raises UnsupportedWheel:
        * when the directory holds an unpacked wheel with incompatible
          Wheel-Version
        * when the .dist-info dir does not match the wheel
    Úsrcfiler    ÚmodifiedrB   Nc                 óP   •— t        |‰«      }|‰| <   |r‰j                  |«       yy)z6Map archive RECORD paths to installation RECORD paths.N)r»   r‘   )r  r    r  Únewpathr8   r½   r´   s       €€€r>   Úrecord_installedz(_install_wheel.<locals>.record_installedÒ  s/   ø€ ô % X¨wÓ7ˆØ$ˆ	�'ÑÙØ�K‰K˜Õ ð r@   rI   c                 ó$   — | j                  d«      S )Nr¸   )Úendswith©rI   s    r>   Úis_dir_pathz#_install_wheel.<locals>.is_dir_pathÛ  s   € Ø�}‰}˜SÓ!Ð!r@   Údest_dir_pathÚtarget_pathc                 óZ   •— t        | |«      sd}t        |j                  ‰|| «      «      ‚y )NzRThe wheel {!r} has a file {!r} trying to install outside the target directory {!r})r.   r   rœ   )r  r  Úmessager	  s      €r>   Úassert_no_path_traversalz0_install_wheel.<locals>.assert_no_path_traversalÞ  s;   ø€ Ü" =°+Ô>ð5ð ô $Ø—‘˜z¨;¸ÓFóð ð ?r@   râ   rð   r4   c                 ó,   •‡ ‡— dt         ddfˆˆˆ fd„}|S )Nr°   rB   r4   c                 ó®   •— t         j                  j                  | «      }t         j                  j                  ‰|«      } ‰‰|«       t	        | |‰«      S r:   )r_   rI   r–   r�   rá   )r°   Únormed_pathr7   r  rð   râ   s      €€€r>   Úmake_root_scheme_filezM_install_wheel.<locals>.root_scheme_file_maker.<locals>.make_root_scheme_fileë  sD   ø€ ÜŸ'™'×*Ñ*¨;Ó7ˆKÜŸ™Ÿ™ T¨;Ó7ˆIÙ$ T¨9Ô5Ü  ¨i¸ÓBÐBr@   )r5   )râ   rð   r!  r  s   `` €r>   Úroot_scheme_file_makerz._install_wheel.<locals>.root_scheme_file_makerè  s!   ú€ ð	C¬zð 	C¸f÷ 	Cð %Ð$r@   r
  c                 óv   •‡ ‡— t         D �ci c]  }|t        ||«      “Œ c}Šdt        ddfˆˆˆˆ fd„}|S c c}w )Nr°   rB   r4   c                 óø  •— t         j                  j                  | «      }	 |j                  t         j                  j                  d«      \  }}}	 ‰
|   }t         j                  j                  ||«      } ‰	||«       t        | |‰«      S # t
        $ r dj                  ‰| «      }t        |«      ‚w xY w# t        $ r: dj                  t        ‰
«      «      }dj                  ‰|| |«      }t        |«      ‚w xY w)NrÁ   zbUnexpected file in {}: {!r}. .data directory contents should be named like: '<scheme key>/<path>'.r„   zŠUnknown scheme key used in {}: {} (for file {!r}). .data directory contents should be in subdirectories named with a valid scheme key ({}))r_   rI   r–   r“   r—   Ú
ValueErrorrœ   r   ÚKeyErrorr�   rš   rá   )r°   r   Ú_Ú
scheme_keyÚdest_subpathr  Úscheme_pathÚvalid_scheme_keysr7   r  Úscheme_pathsr	  râ   s            €€€€r>   Úmake_data_scheme_filezM_install_wheel.<locals>.data_scheme_file_maker.<locals>.make_data_scheme_fileø  sþ   ø€ ÜŸ'™'×*Ñ*¨;Ó7ˆKð1Ø.9×.?Ñ.?ÄÇÁÇÁÈQÓ.OÑ+��:˜|ð	1Ø*¨:Ñ6�ô Ÿ™Ÿ™ [°,Ó?ˆIÙ$ [°)Ô<Ü  ¨i¸ÓBÐBøô) ò 1ðDç‘&˜ [Ó1ð ô (¨Ó0Ð0ð1ûô ò 1Ø$(§I¡I¬f°\Ó.BÓ$CÐ!ð4÷ ‘&˜ Z°Ð>OÓPð	 ô
 (¨Ó0Ð0ð1ús   ¢.B ÁB6 Â'B3Â6AC9)r%   Úgetattrr5   )râ   r
  Úkeyr-  r,  r  r	  s   `   @€€r>   Údata_scheme_file_makerz._install_wheel.<locals>.data_scheme_file_makeró  sL   ú€ ô >IÖI°c˜œW V¨SÓ1Ñ1ÒIˆð	C¬zð 	C¸f÷ 	Cð 	Cð4 %Ð$ùò9 Js   Œ6c                 óJ   — | j                  dd«      d   j                  d«      S )Nr¸   rƒ   r   ú.data)r“   r  r  s    r>   Úis_data_scheme_pathz+_install_wheel.<locals>.is_data_scheme_path  s#   € Ø�z‰z˜#˜qÓ! !Ñ$×-Ñ-¨gÓ6Ð6r@   c                 ó‚   — | j                  dd«      }t        |«      dkD  xr |d   j                  d«      xr |d   dk(  S )Nr¸   rÁ   r   r2  rƒ   r€   )r“   r›   r  )rI   Úpartss     r>   Úis_script_scheme_pathz-_install_wheel.<locals>.is_script_scheme_path  sB   € Ø—
‘
˜3 Ó"ˆÜ�5‹z˜A‰~ÒV %¨¡(×"3Ñ"3°GÓ"<ÒVÀÀqÁÈYÑAVÐVr@   rõ   c                 óP  •— | j                   }t        j                  j                  |«      }|j	                  «       j                  d«      r|d d }nL|j	                  «       j                  d«      r|d d }n'|j	                  «       j                  d«      r|d d }n|}|‰v xs |‰v S )Nz.exeéüÿÿÿz
-script.pyiöÿÿÿz.pya)r7   r_   rI   r�   rt   r  )rõ   rI   r}   Ú	matchnamerÍ   Úguis       €€r>   Úis_entrypoint_wrapperz-_install_wheel.<locals>.is_entrypoint_wrapper1  s™   ø€ ð �~‰~ˆÜ�w‰w×Ñ Ó%ˆØ�:‰:‹<× Ñ  Ô(Ø˜S˜b˜	‰IØ�Z‰Z‹\×"Ñ" <Ô0Ø˜T˜c˜
‰IØ�Z‰Z‹\×"Ñ" 6Ô*Ø˜S˜b˜	‰IàˆIà˜GÐ#Ò7 y°CÐ'7Ð7r@   c               3   ó  •K  — t        t        ‰j                  «       «      «      D ]X  } t        j                  j                  ‰| «      }t        j                  j                  |«      sŒC|j                  d«      sŒU|–— ŒZ y ­w)Nz.py)rš   rŽ   rÅ   r_   rI   r�   r`   r  )Úinstalled_pathÚfull_installed_pathr½   r´   s     €€r>   Úpyc_source_file_pathsz-_install_wheel.<locals>.pyc_source_file_pathsL  sk   øè ø€ ô
 %¤S¨×)9Ñ)9Ó);Ó%<Ó=ò 	&ˆNÜ"$§'¡'§,¡,¨w¸Ó"GÐÜ—7‘7—>‘>Ð"5Ô6ØØ&×/Ñ/°Ô6ØØ%Ó%ñ	&ùs   ƒA?Bc                 ó@   — t         j                  j                  | «      S )z8Return the path the pyc file would have been written to.)Ú	importlibÚutilÚcache_from_sourcer  s    r>   Úpyc_output_pathz'_install_wheel.<locals>.pyc_output_pathY  s   € ä�~‰~×/Ñ/°Ó5Ð5r@   ÚignoreT)ÚforceÚquietr5   r¸   rV   rÓ   r:  i¶  Úkwargsc              ;   óÄ   •K  — t        | fi |¤Ž5 }|–— d d d «       t        j                  j                  ‰«       t	        |j                  | «       y # 1 sw Y   Œ@xY w­wr:   )r'   r_   Úchmodr}   r(   )rI   rH  rÊ   Úgenerated_file_modes      €r>   Ú_generate_filez&_install_wheel.<locals>._generate_fileŽ  sP   øè ø€ ä˜tÑ. vÑ.ð 	°!ØŠG÷	ä
�‰�—‘Ð,Ô-Ü�—‘˜Õ÷	ð 	üs   ƒA �A•?A ÁAÁA Ú	INSTALLERs   pip
rW   Ú	REQUESTEDr^   ÚRECORD)r½   r8   r¾   r´   ÚwzIO[str])F)Mr1   ru   ÚpurelibÚplatlibrŽ   r5   rG   rH   r   r   r&   r   r   Únamelistr   r,   Úmapr   r"   r!   r   r   rò   r?   r6   r7   r8   r   r)   ÚwarningsÚcatch_warningsÚfilterwarningsÚ
compileallÚcompile_filer_   rI   rë   r(   r—   rÂ   ÚdebugÚgetvaluer  r€   ÚclobberÚvariantsÚset_moderß   Úlistr   rœ   r™   Úmake_multiplerØ   r¬   rÃ   r-   Ú
contextlibÚcontextmanagerr
   r   r�   rj   r˜   r#   Úto_jsonrf   ra   Ú	read_textÚcsvÚreaderÚ
splitlinesrÌ   rZ   ÚwriterÚ	writerowsr³   )?r}   r  r	  r
  r  r  r  r  Úinfo_dirrp   r¾   r  r  r"  r0  r3  ÚpathsÚ
file_pathsÚroot_scheme_pathsÚdata_scheme_pathsr!  Úfilesr6  Úother_scheme_pathsÚscript_scheme_pathsr-  Úother_scheme_filesÚdistributionr;  Úscript_scheme_filesrõ   r?  rD  ÚstdoutrI   ÚsuccessÚpyc_pathÚpyc_record_pathÚmakerrÙ   Úgui_scripts_to_generateÚgenerated_console_scriptsÚmsgrL  Údest_info_dirÚinstaller_pathÚinstaller_fileÚdirect_url_pathÚdirect_url_fileÚrequested_pathÚrecord_textÚrecord_rowsÚrowsr°   Úrecord_filerh  r  r8   rÍ   rK  r:  r½   r´   s?     `                                                     @@@@@@@r>   Ú_install_wheelr‡  ª  sN  ÿ€ ô2 % Y°Ó5Ñ€Hˆhä˜XÔ&Ø—.‘.‰à—.‘.ˆð /1€IÜ"›u€GØ€Ið >Cñ!Üð!Ü'*ð!Ü6:ð!à	÷!ð"œ*ð "¬ó "ð´ð Ä#ð È$õ ð	%Üð	%Ü!$ð	%ä	”:�, Ð&Ñ	'õ	%ð%Üð%Ü#)ð%ä	”:�, Ð&Ñ	'ö%ðB7¤*ð 7´ó 7ô ””jÑ! 9×#5Ñ#5Ó#7Ó8€EÜ˜[¨%Ó0€JÜ+4Ð5HÈ*Ó+UÑ(ÐÐ(á2°9¸gÓFÐÜÐ 5Ð7HÓI€EðW¤Jð W´4ó Wô /8ØÐ0ó/Ñ+ÐÐ+ñ 3°9¸fÓEÐÜÐ2Ð4FÓGÐÜ�%Ð+Ó,€Eô *Ü˜
Ó#Ü˜$Óó€Lô # <Ó0�L€GˆSð8 Fð 8¬tö 8ô  +.ØÐ2ó+Ðô &Ð&;Ð=PÓQÐÜœjÐ*=Ó>ÐÜ�%Ð,Ó-€Eàò MˆØ�	‰	ŒÙ˜×-Ñ-¨t¯~©~¸t¿|¹|ÕLðMð&¤9¬S°$¸¨_Ñ#=ö &ð6œcð 6¤có 6ñ
 ÜÓð 	D &Ü×(Ñ(Ó*ñ 
DÜ×'Ñ'¨Ô1Ù1Ó3ò D�DÜ(×5Ñ5°dÀ$ÈdÔS�GÚÙ#2°4Ó#8˜Ü!Ÿw™wŸ~™~¨hÔ7Ð7Ð7Ü*.Ø(¨(×*:Ñ*:¼2¿7¹7¿;¹;ÈÓ*Ló+˜ñ )¨¸(ÕCñD÷
D÷	Dô 	�‰�V—_‘_Ó&Ô'ä˜4 §¡Ó0€Eð €E„Mð
 �T€E„Nð
 €E„Nô 3°7Ó;Ðä"¤7¨9×+;Ñ+;¸S¿Y¹Y»[Ó#IÓJÐà %× 3Ñ 3Ð4GÓ HÐØ×ÑÐ.Ô/à×Ñ�U×(Ñ(Ð)@À5È$À-ÓPÔQáÜ/Ð0IÓJˆØˆ?Ü�N‰N˜3Ôà¤=£?Ð"2Ñ2Ðä×ÑðœSð ¬Cð ´I¼hÈÈdÐ>RÑ4Sô ó ðô —G‘G—L‘L ¨(Ó3€Mô —W‘W—\‘\ -°Ó=€NÙ	˜Ó	'ð '¨>Ø×Ñ˜XÔ&÷'à×Ñ�^Ô$ð ÐÜŸ'™'Ÿ,™, }Ô6NÓOˆÙ˜OÓ,ð 	H°Ø×!Ñ! *×"4Ñ"4Ó"6×"=Ñ"=¸gÓ"FÔG÷	Hà×Ñ˜Ô)ñ ÜŸ™Ÿ™ m°[ÓAˆÜ�. $Ó'ñ 	Ø÷	à×Ñ˜Ô(à×(Ñ(¨Ó2€KÜ”s—z‘z +×"8Ñ"8Ó":Ó;Ó<€Kä%ØØØØØô€Dô —'‘'—,‘,˜}¨hÓ7€Ká	˜Ñ	:¤}°SÓ'9Ñ	:ð 4¸kô —‘œD ¨KÓ8Ó9ˆØ×ÑÔ,¨TÓ2Ô3÷	4ð 4÷s
Dñ 
Dú÷	Dñ 	Dú÷t'ñ 'ú÷	Hñ 	Hú÷	ñ 	ú÷$4ð 4ús[   ÉYÉ,:YÊ'A(YÌYÒY!Ó4/Y.Õ*Y;Ø:ZÙY	ÙYÙYÙ!Y+Ù.Y8Ù;ZÚZÚreq_description)NNNc              #   óz   K  — 	 d –— y # t         $ r&}d| › d|j                  d   › �}t        |«      |‚d }~ww xY w­w)Nz	For req: z. r   )r   Úargs)rˆ  Úer  s      r>   Úreq_error_contextrŒ  À  sE   è ø€ ð0ÜøÜò 0Ø˜oÐ.¨b°·±¸±°Ð<ˆÜ Ó(¨aÐ/ûð0üs   ‚;„	 ˆ;‰	8’!3³8¸;c                 ó®   — t        |d¬«      5 }t        |«      5  t        | |||||||¬«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)NT)Ú
allowZip64)r}   r  r	  r
  r  r  r  r  )r   rŒ  r‡  )	r}   r	  r
  rˆ  r  r  r  r  Úzs	            r>   Úinstall_wheelr�  É  sg   € ô 
�¨Ô	-ð °Ü˜Ó/ñ 
	ÜØØØ%ØØ#Ø%9Ø%Ø#õ	÷
	÷ð ÷
	ð 
	ú÷ð ús   ŽAš?®A¿A	ÁAÁA)i   )TTNF)kÚ__doc__rŒ   rX  ra  re  rA  ÚloggingÚos.pathr_   rÖ   rí   rd   rU  Úbase64r   Úemail.messager   Ú	itertoolsr   r   r   Útypingr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úzipfiler   r   Úpip._vendor.distlib.scriptsr   Úpip._vendor.distlib.utilr   Úpip._vendor.packaging.utilsr   Úpip._internal.exceptionsr   Úpip._internal.locationsr   Úpip._internal.metadatar    r!   r"   Úpip._internal.models.direct_urlr#   r$   Úpip._internal.models.schemer%   r&   Úpip._internal.utils.filesystemr'   r(   Úpip._internal.utils.miscr)   r*   r+   r,   Úpip._internal.utils.unpackingr-   r.   r/   r0   Úpip._internal.utils.wheelr1   r2   r4   Ú	getLoggerrC   rÂ   rG   r5   ÚintÚInstalledCSVRowrS   rZ   rH   ro   ru   r   r¬   r³   r¶   r»   rÌ   rß   rá   rò   rø   r  r  r‡  rb  rŒ  r�  r;   r@   r>   ú<module>r¨     sÅ  ðñó Û Û Û 
Û Û Û Û 	Û Û 
Û Ý $Ý !ß 1Ñ 1÷÷ ÷ ÷ õ ÷& %å 3Ý 5Ý 9å 6Ý ;÷ñ ÷
 Pß ;ß Eß VÓ V÷ó õ 2áÝôˆxô ð 
ˆ×	Ñ	˜8Ó	$€á�\ 3Ó'€
Ø˜
 C¨¨s°C¨x©Ð8Ñ9€ñ!�ð ! ð !°5¸¸c¸±?ó !ð>˜ð >  S¨# X¡ó >ð�Sð ˜Tó ð(A Gð A°ó Að(Ð*ð (¨u°T¸#¸s¸(±^ÀTÈ#ÈsÈ(Á^Ð5SÑ/Tó (ðE ¨x¸©}ð E ÀÈ#Áó E ðPØ�oÑ&ðà	ˆ%��S˜#�Ñ
Ñóð4. Jð .¸ð .Àó .ð$˜Sð $¨3ð $°:ó $ðØ�t˜C‘y‘/ðà�J 
Ð*Ñ+ðð �‰_ðð �C‰yð	ð
 ðð 
ˆ/Ñóð@J d¨3°¨8¡nð J¸¸c¹ó J÷Z%Oñ %O÷P	2ñ 	2ô
Ð-ô 
ð0°ð 0¸ó 0ô4�[ô 4ð Ø!%Ø&*ØñS4Ø
ðS4àðS4ð ðS4ð ð	S4ð
 ðS4ð ðS4ð ˜Ñ#ðS4ð ðS4ð 
óS4ðl ×Ñð0 sð 0¨yÐ9IÑ/Jò 0ó ð0ð Ø!%Ø&*ØñØ
ðàðð ðð ð	ð
 ðð ðð ˜Ñ#ðð ðð 
ôr@   