ó
    ¢'Ôim  ã                  óš  • S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSKrSSK	r
SSKrSSKrSSKrSSKrSSKrSSKJr  SSKJrJrJrJr  SSKJr  SSKJrJrJr  SSKJrJrJ r J!r!J"r"J#r#J$r$J%r%  SS	K&J'r'J(r(  SS
K)J*r*  SSK+J,r,  SSK-J.r.  SSK/J0r0  SSK1J2r2  SSK3J4r4J5r5J6r6  SSK7J8r8J9r9  SSK:J;r;J<r<  SSK=J>r>J?r?  SSK@JArAJBrBJCrCJDrD  SSKEJFrFJGrGJHrHJIrI  SSKJJKrK   " S S\#5      rL\Rš                  " \N5      rO\"" S\P5      rQ\R\Q\P\$\S\P4   4   rTS0S1S jjrUS2S jrVS3S jrWS4S jrXS5S jrYS6S jrZ    S7S jr[S8S  jr\S9S! jr]            S:S" jr^S;S# jr_ " S$ S%5      r` " S& S'5      ra " S( S)\05      rbS<S* jrc " S+ S,\*5      rd    S=                 S>S- jjre\RÌ                  S?S. j5       rg    S=                 S@S/ jjrhg)AzFSupport for installing and building the "wheel" binary package format.é    )ÚannotationsN)Úurlsafe_b64encode)Ú	GeneratorÚIterableÚIteratorÚSequence)ÚMessage)ÚchainÚfilterfalseÚstarmap)ÚIOÚAnyÚBinaryIOÚCallableÚNewTypeÚProtocolÚ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)ÚStreamWrapperÚ
ensure_dirÚ	hash_fileÚ	partition)Úcurrent_umaskÚis_within_directoryÚ2set_extracted_file_to_default_mode_plus_executableÚzip_item_is_executable)Úparse_wheelc                  ó>   • \ rS rSr% S\S'   S\S'   S\S'   SS jrS	rg
)ÚFileé9   Ú
RecordPathÚsrc_record_pathÚstrÚ	dest_pathÚboolÚchangedc                ó   • g ©N© ©Úselfs    Úe/var/www/surfInsights/venv3-11/lib/python3.13/site-packages/pip/_internal/operations/install/wheel.pyÚsaveÚ	File.save>   s   € Øó    r9   N©ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__r=   Ú__static_attributes__r9   r?   r<   r/   r/   9   s   ‡ ØÓØƒNØƒM÷r?   r/   r1   c                óª   • [        X5      u  p#S[        UR                  5       5      R                  S5      R	                  S5      -   nU[        U5      4$ )z?Return (encoded_digest, length) for path using hashlib.sha256()zsha256=Úlatin1Ú=)r'   r   ÚdigestÚdecodeÚrstripr3   )ÚpathÚ	blocksizeÚhÚlengthrL   s        r<   ÚrehashrS   H   sI   € ä˜$Ó*�I€AØÔ*¨1¯8©8«:Ó6×=Ñ=¸hÓG×NÑNÈsÓSÑS€FØ”C˜“KÐ Ð r?   c                ó   • U SSS.$ )zHReturn keyword arguments to properly open a CSV file
in the given mode.
Ú úutf-8)ÚmodeÚnewlineÚencodingr9   )rW   s    r<   Úcsv_io_kwargsrZ   O   s   € ð  R°WÑ=Ð=r?   c                óZ  • [         R                  R                  U 5      (       d   e[        U S5       nUR	                  5       nUR                  S5      (       d
   SSS5        g[        R                  R                  [        R                  " 5       5      nSU-   [         R                  R                  S5      -   nUR                  5       nSSS5        [        U S5       nUR                  W5        UR                  W5        SSS5        g! , (       d  f       NF= f! , (       d  f       g= f)	zIReplace #!python with #!/path/to/python
Return True if file was changed.
Úrbs   #!pythonNFs   #!ÚasciiÚwbT)ÚosrO   ÚisfileÚopenÚreadlineÚ
startswithÚsysÚ
executableÚencodeÚgetfilesystemencodingÚlinesepÚreadÚwrite)rO   ÚscriptÚ	firstlineÚexenameÚrests        r<   Ú
fix_scriptro   V   sä   € ô
 �7‰7�>‰>˜$×ÑÐÐä	ˆd�DÔ	˜VØ—O‘OÓ%ˆ	Ø×#Ñ# K×0Ñ0Ø÷ 
Ð	ô —.‘.×'Ñ'¬×(AÒ(AÓ(CÓDˆØ˜G‘O¤b§j¡j×&7Ñ&7¸Ó&@Ñ@ˆ	Ø�{‰{‹}ˆ÷ 
ô 
ˆd�DÔ	˜VØ�‰�YÔØ�‰�TÔ÷ 
ð ÷ 
Õ	ú÷ 
Ô	ð ús   ³(DÁ$A'DÃ#DÄ
DÄ
D*c                óH   • U R                  SS5      R                  5       S:H  $ )NzRoot-Is-PurelibrU   Útrue)ÚgetÚlower)Úmetadatas    r<   Úwheel_root_is_purelibru   j   s"   € Ø�<‰<Ð)¨2Ó.×4Ñ4Ó6¸&Ñ@Ð@r?   c                óæ   • 0 n0 nU R                  5        HW  nUR                  S:X  a  UR                  XR                  '   M-  UR                  S:X  d  M?  UR                  X#R                  '   MY     X4$ )NÚconsole_scriptsÚgui_scripts)Úiter_entry_pointsÚgroupÚvalueÚname)Údistrw   rx   Úentry_points       r<   Úget_entrypointsr   n   so   € Ø€OØ€KØ×-Ñ-Ö/ˆØ×ÑÐ 1Ó1Ø0;×0AÑ0AˆO×,Ñ,Ó-Ø×Ñ -Õ/Ø,7×,=Ñ,=ˆK×(Ñ(Ó)ñ	 0ð
 Ð'Ð'r?   c           	     óº  • U (       d  g[         R                  " [        5      nU  HT  n[        R                  R                  U5      n[        R                  R                  U5      nX   R                  U5        MV     [        R                  R                  SS5      R                  [        R                  5       Vs/ s H\  n[        R                  R                  [        R                  R                  U5      5      R                  [        R                  5      PM^     nnUR!                  [        R                  R                  [        R                  R                  [        R                  R                  ["        R$                  5      5      5      5        UR'                  5        VV s0 s HI  u  p0[        R                  R                  [        R                  R                  U5      5      U;  d  MG  X0_MK     nnn U(       d  g/ nUR'                  5        Hm  u  p9[)        U	5      n
[+        U
5      S:X  a
  SU
S    S3nO,SR-                  S	R/                  U
SS
 5      S-   U
S
   -   5      nUR!                  SU SU S35        Mo     Sn[+        U5      S:X  a!  UR!                  UR-                  S5      5        O UR!                  UR-                  S5      5        [1        S [        R                  R                  SS5      R                  [        R                  5       5       5      nU(       a  SnUR!                  U5        SR/                  U5      $ s  snf s  sn nf )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ÚPATHrU   é   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  óB   #   • U  H  o(       d  M  US    S:H  v •  M     g7f)r   Ú~Nr9   )Ú.0Úis     r<   Ú	<genexpr>Ú4message_about_scripts_not_on_PATH.<locals>.<genexpr>³   s    é € ð ÚI˜ËQ‹ˆˆ!‰�ŽÒIùs   ‚
�ziNOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.Ú
)ÚcollectionsÚdefaultdictÚsetr_   rO   ÚdirnameÚbasenameÚaddÚenvironrr   ÚsplitÚpathsepÚnormcaseÚnormpathrN   ÚsepÚappendrd   re   ÚitemsÚsortedÚlenÚformatÚjoinÚany)ÚscriptsÚ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­   y   sÈ  € ö
 Øô +6×*AÒ*AÄ#Ó*F€NÛˆÜ—W‘W—_‘_ XÓ.ˆ
Ü—g‘g×&Ñ& xÓ0ˆØÑ"×&Ñ& {Ö3ñ ô —‘—‘ ¨Ó+×1Ñ1´"·*±*Ô=óâ=ˆAô 	�‰×ÑœŸ™×)Ñ)¨!Ó,Ó-×4Ñ4´R·V±VÖ<Ù=ð ð ð ×ÑÜ
�‰×ÑœŸ™×)Ñ)¬"¯'©'¯/©/¼#¿.¹.Ó*IÓJÓKôð
 $2×#7Ñ#7Ô#9ô%â#9ÑˆJÜ�7‰7×ÑœBŸG™G×,Ñ,¨ZÓ8Ó9ÀÑNó 	ˆ
ÒÙ#9ð ñ %ö
 Øð €IØ#+§>¡>Ö#3Ñˆ
Ü$*¨;Ó$7ˆÜˆ~Ó !Ó#Ø" >°!Ñ#4Ð"5°SÐ9‰Jà)×0Ñ0Ø—	‘	˜.¨¨"Ð-Ó.°Ñ8¸>È"Ñ;MÑMóˆJð 	×ÑØ�:�,˜o¨j¨\Ð9PÐQö	
ñ $4ð	Cð ô ˆ9ƒ~˜ÓØ×Ñ˜×-Ñ-Ð.>Ó?Õ@à×Ñ˜×-Ñ-Ð.AÓBÔCô ñ ÜŸZ™ZŸ^™^¨F°BÓ7×=Ñ=¼b¿j¹jÔIóó €Nö ð=ð 	ð 	×ÑÐ*Ô+ð �9‰9�YÓÐùòkùó%s   Â<A#MÆ*AMÇ4Mc                ó&   • [        S U  5       5      $ )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  óB   #   • U  H  u  po1U[        U5      4v •  M     g 7fr8   )r3   )r‡   Úrecord_pathÚhash_Úsizes       r<   r‰   Ú&_normalized_outrows.<locals>.<genexpr>Ö   s!   é € ð ÚHOÑ,D¨KÀ�eœS ›YÕ'Êùs   ‚)rš   )Úoutrowss    r<   Ú_normalized_outrowsrµ   Á   s   € ô* ñ ÙHOóó ð r?   c                ó@   • [         R                  R                  X5      $ r8   )r_   rO   r�   )r°   Úlib_dirs     r<   Ú_record_to_fs_pathr¸   Û   s   € Ü�7‰7�<‰<˜Ó-Ð-r?   c                óp  • [         R                  R                  U 5      S   R                  5       [         R                  R                  U5      S   R                  5       :X  a  [         R                  R	                  X5      n U R                  [         R                  R                  S5      n [        SU 5      $ )Nr   Ú/r1   )r_   rO   Ú
splitdrivers   Úrelpathr$   r—   r   )rO   r·   s     r<   Ú_fs_to_record_pathr½   ß   s}   € ô 
‡w�w×Ñ˜$Ó Ñ"×(Ñ(Ó*¬b¯g©g×.@Ñ.@ÀÓ.IÈ!Ñ.L×.RÑ.RÓ.TÓTÜ�w‰w�‰˜tÓ-ˆà�<‰<œŸ™Ÿ™ SÓ)€DÜ�˜dÓ#Ð#r?   c                ó  • / nU  H£  n[        U5      S:”  a  [        R                  SU5        [        SUS   5      nUR	                  Xw5      nX‚;   a  [        [        X„5      5      u  pšO,[        U5      S:”  a  US   OSn	[        U5      S:”  a  US   OSn
UR                  X‰U
45        M¥     U H.  n[        X´5      n[        U5      u  pšUR                  XÉU
45        M0     UUR                  5        Vs/ s H  oÝSS4PM	     sn-   $ s  snf )zS
:param installed: A map from archive RECORD path to installation RECORD
    path.
é   z,RECORD line has more than three elements: %sr1   r   r‚   rU   é   )
r›   ÚloggerÚwarningr   ÚpoprS   r¸   r˜   r½   Úvalues)Úold_csv_rowsÚ	installedr6   Ú	generatedr·   Úinstalled_rowsÚrowÚold_record_pathÚnew_record_pathrL   rR   ÚfrO   Úinstalled_record_paths                 r<   Úget_csv_rows_for_installedrÎ   é   s  € ð -/€NÛˆÜˆs‹8�a‹<Ü�N‰NÐIÈ3ÔOÜ˜|¨S°©VÓ4ˆØ#Ÿ-™-¨ÓIˆØÓ%Ü#Ô$6°Ó$PÓQ‰NˆF�Fä" 3›x¨!›|�S˜’V°ˆFÜ" 3›x¨!›|�S˜’V°ˆFØ×Ñ˜¸Ð?Ö@ñ ó ˆÜ! !Ó-ˆÜ ›‰ˆØ×Ñ˜t¨VÐ4Ö5ñ ð ØEN×EUÑEUÔEWóÚEWÐ,A  BÓ'ÑEWññ ð ùò s   Ã3Dc                ó¨  • U R                  5       n / nU R                  SS5      nU(       aÎ  S[        R                  ;  a  UR	                  SU-   5        [        R                  R                  SS5      S:w  a(  UR	                  S[        R                  S    SU 35        UR	                  S[        5        SU 35        U  Vs/ s H#  n[        R                  " S	U5      (       d  M!  UPM%     nnU H  nX	 M     U R                  S
S5      nU(       a‚  S[        R                  ;  a  UR	                  SU-   5        UR	                  S[        5        SU 35        U  Vs/ s H#  n[        R                  " SU5      (       d  M!  UPM%     nnU H  nX	 M     UR                  [        SR                  U R                  5       5      5        U$ s  snf s  snf )z_
Given the mapping from entrypoint name to callable, return the relevant
console script specs.
ÚpipNÚENSUREPIP_OPTIONSzpip = rU   Ú
altinstallr   z = zpip(\d+(\.\d+)?)?$Úeasy_installzeasy_install = zeasy_install-zeasy_install(-\d+\.\d+)?$ú{} = {})ÚcopyrÃ   r_   r’   r˜   rr   rd   Úversion_infor   ÚreÚmatchÚextendr   rœ   r™   )ÚconsoleÚscripts_to_generateÚ
pip_scriptÚkÚpip_epÚeasy_install_scriptÚeasy_install_eps          r<   Úget_console_script_specsrá   	  s¥  € ð �l‰l‹n€GàÐðB —‘˜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šW˜¬¯ªÐ1FÈ×(J—!™WˆÐKÛˆAØ’
ñ à!Ÿ+™+ n°dÓ;ÐÞØ¤b§j¡jÓ0Ø×&Ñ&Ð'8Ð;NÑ'NÔOà×"Ñ"ØÔ3Ó5Ð6°cÐ:MÐ9NÐOô	
ñ
 ó
Ú�!¤"§(¢(Ð+GÈ×"K�A‘wð 	ð 
ó !ˆAØ’
ñ !ð ×Ñœw y×'7Ñ'7¸¿¹»ÓIÔJàÐùò+ Lùò
s   Ã G
Ã'G
Å GÆGc                  óB   • \ rS rSr        SS jrSS jrS	S jrSrg)
ÚZipBackedFileiT  c                ó6   • Xl         X l        X0l        SU l        g ©NF)r2   r4   Ú	_zip_filer6   )r;   r2   r4   Úzip_files       r<   Ú__init__ÚZipBackedFile.__init__U  s   € ð  /ÔØ"ŒØ!ŒØˆ�r?   c                óL   • U R                   R                  U R                  5      $ r8   )ræ   Úgetinfor2   r:   s    r<   Ú_getinfoÚZipBackedFile._getinfo]  s   € Ø�~‰~×%Ñ% d×&:Ñ&:Ó;Ð;r?   c                óP  • [         R                  R                  U R                  5      (       a   [         R                  " U R                  5        U R                  5       n[        U R                  S5       nUR                  S:”  aQ  U R                  R                  U5       n[        UR                  S5      n[        R                  " X2U5        S S S 5        S S S 5        [        U5      (       a  [        U R                  5        g g ! , (       d  f       N== f! , (       d  f       NF= f)Nr^   r   é   )r_   rO   Úexistsr4   Úunlinkrì   ra   Ú	file_sizeræ   ÚminÚshutilÚcopyfileobjr,   r+   )r;   ÚzipinfoÚdestrÌ   rP   s        r<   r=   ÚZipBackedFile.save`  sÆ   € ô �7‰7�>‰>˜$Ÿ.™.×)Ñ)Ü�IŠI�d—n‘nÔ%à—-‘-“/ˆô �$—.‘. $Ô'¨4Ø× Ñ  1Ó$Ø—^‘^×(Ñ(¨Ô1°QÜ # G×$5Ñ$5°{Ó C�IÜ×&Ò& q°	Ô:÷ 2÷ (ô " '×*Ñ*Ü>¸t¿~¹~ÕNð +÷	 2Õ1ú÷ (Õ'ús$   Á5,DÂ!.DÃDÄ
D	ÄDÄ
D%)ræ   r6   r4   r2   N)r2   r1   r4   r3   rç   r   rA   rB   )rA   r   r@   )rC   rD   rE   rF   rè   rì   r=   rH   r9   r?   r<   rã   rã   T  s2   † ðØ)ðØ69ðØELðà	ôô<÷Or?   rã   c                  ó(   • \ rS rSrSS jrSS jrSrg)Ú
ScriptFileiz  c                óŠ   • Xl         U R                   R                  U l        U R                   R                  U l        SU l        g rå   )Ú_filer2   r4   r6   )r;   Úfiles     r<   rè   ÚScriptFile.__init__{  s1   € ØŒ
Ø#Ÿz™z×9Ñ9ˆÔØŸ™×-Ñ-ˆŒØˆ�r?   c                ól   • U R                   R                  5         [        U R                  5      U l        g r8   )rü   r=   ro   r4   r6   r:   s    r<   r=   ÚScriptFile.save�  s    € Ø�
‰
�‰ÔÜ! $§.¡.Ó1ˆ�r?   )rü   r6   r4   r2   N)rý   r/   rA   rB   r@   )rC   rD   rE   rF   rè   r=   rH   r9   r?   r<   rú   rú   z  s   † ô÷2r?   rú   c                  ó,   ^ • \ rS rSrSU 4S jjrSrU =r$ )ÚMissingCallableSuffixi†  c                ó,   >• [         TU ]  SU S35        g )NzInvalid script entry point: z… - A callable suffix is required. See https://packaging.python.org/specifications/entry-points/#use-for-scripts for more information.)Úsuperrè   )r;   r~   Ú	__class__s     €r<   rè   ÚMissingCallableSuffix.__init__‡  s!   ø€ Ü‰ÑØ*¨;¨-ð 8ð õ	
r?   r9   )r~   r3   rA   rB   )rC   rD   rE   rF   rè   rH   Ú__classcell__©r  s   @r<   r  r  †  s   ø† ÷
õ 
r?   r  c                ód   • [        U 5      nUb"  UR                  c  [        [        U5      5      eg g r8   )r   Úsuffixr  r3   )ÚspecificationÚentrys     r<   Ú_raise_for_invalid_entrypointr  �  s2   € Ü˜]Ó+€EØÑ˜UŸ\™\Ñ1Ü#¤C¨£JÓ/Ð/ð 2Ðr?   c                  ó`   ^ • \ rS rSr\R
                  " S5      r S     SU 4S jjjrSrU =r	$ )ÚPipScriptMakeri–  zÁ        import sys
        from %(module)s import %(import_name)s
        if __name__ == '__main__':
            sys.argv[0] = sys.argv[0].removesuffix('.exe')
            sys.exit(%(func)s())
c                ó8   >• [        U5        [        TU ]	  X5      $ r8   )r  r  Úmake)r;   r  Úoptionsr  s      €r<   r  ÚPipScriptMaker.make£  s   ø€ ô 	& mÔ4Ü‰w‰|˜MÓ3Ð3r?   r9   r8   )r  r3   r  zdict[str, Any] | NonerA   ú	list[str])
rC   rD   rE   rF   ÚtextwrapÚdedentÚscript_templater  rH   r  r  s   @r<   r  r  –  sA   ø† ð —o’oð	ó€Oð DHð4Ø ð4Ø+@ð4à	÷4ö 4r?   r  c           
     ó|  ^^:^;^<^=^>^?^@• [        X5      u  p‰[        U	5      (       a  UR                  m@OUR                  m@0 m?[	        5       m;/ n
 S       S U;U?U@4S jjjnS!S jnS"U4S jjm:      S#U:4S jjn      S$U:U4S jjnS!S jn[        [        [           UR                  5       5      n[        UU5      n[        UU5      u  nnU" UT@5      n[        UU5      nS!S jn[        UU5      u  nnU" X5      n[        UU5      n[        UU5      n[        [        T5      [        U 5      5      n[!        U5      u  m<m>S%U<U>4S	 jjn[        UU5      n[        UU5      n[        ["        U5      n[        UU5      n[	        5       nU H†  n[$        R&                  R)                  UR*                  5      n U U;  a  [-        U 5        UR/                  U 5        UR1                  5         U" UR2                  UR*                  UR4                  5        Mˆ     S&U?U@4S
 jjn!S'S jn"U(       Ga0  [6        R8                  " [:        R<                  " [>        R@                  5      5       n#[B        RD                  " 5          [B        RF                  " S5        U!" 5        H�  n$[H        RJ                  " U$SSS9n%U%(       d  M"  U"" U$5      n&[$        R&                  RM                  U&5      (       d   e[        SU&RO                  [$        R&                  RP                  S5      5      n'U" U'U&5        M�     SSS5        SSS5        [R        RU                  W#RW                  5       5        [Y        SURZ                  5      n(SU(l.        S1U(l/        SU(l0        [c        T<5      n)[        [e        SRf                  T>Ri                  5       5      5      n*U(Rk                  U)5      n+U
Rm                  U+5        U
Rm                  U(Rk                  U*SS05      5        U(       a#  [o        U+5      n,U,b  [R        Rq                  U,5        S[s        5       ) -  m=[6        Rt                  S(U=4S jj5       n-[$        R&                  Rw                  T@U5      n.[$        R&                  Rw                  U.S5      n/U-" U/5       n0U0Ry                  S5        SSS5        U
R{                  U/5        Ubt  [$        R&                  Rw                  U.[|        5      n1U-" U15       n2U2Ry                  UR                  5       R�                  S5      5        SSS5        U
R{                  U15        U(       aG  [$        R&                  Rw                  U.S5      n3[ƒ        U3S5          SSS5        U
R{                  U35        UR…                  S5      n4[        [†        Rˆ                  " U4R‹                  5       5      5      n5[�        U5T?T;U
T@S9n6[$        R&                  Rw                  U.S5      n7U-" U740 [�        S5      D6 n8[†        R�                  " [        SU85      5      n9U9R“                  [•        U65      5        SSS5        g! , (       d  f       GN/= f! , (       d  f       GN9= f! , (       d  f       GNÊ= f! , (       d  f       GNe= f! , (       d  f       GN)= f! , (       d  f       g= f))aY  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
r1   c                óZ   >• [        UT5      nUTU '   U(       a  TR                  U5        gg)z6Map archive RECORD paths to installation RECORD paths.N)r½   r‘   )Úsrcfiler¡   ÚmodifiedÚnewpathr6   rÆ   r·   s       €€€r<   Úrecord_installedÚ(_install_wheel.<locals>.record_installedÒ  s/   ø€ ô % X¨wÓ7ˆØ$ˆ	�'ÑÞØ�K‰K˜Õ ð r?   c                ó$   • U R                  S5      $ )Nrº   )Úendswith©rO   s    r<   Úis_dir_pathÚ#_install_wheel.<locals>.is_dir_pathÛ  s   € Ø�}‰}˜SÓ!Ð!r?   c                ó`   >• [        X5      (       d  Sn[        UR                  TX5      5      eg )NzRThe wheel {!r} has a file {!r} trying to install outside the target directory {!r})r*   r   rœ   )Údest_dir_pathÚtarget_pathÚmessageÚ
wheel_paths      €r<   Úassert_no_path_traversalÚ0_install_wheel.<locals>.assert_no_path_traversalÞ  s:   ø€ Ü" =×>Ñ>ð5ð ô $Ø—‘˜z¨;ÓFóð ð ?r?   c                ó    >^ ^• SUUU 4S jjnU$ )Nc                ó¬   >• [         R                  R                  U 5      n[         R                  R                  TU5      nT" TU5        [	        XT5      $ r8   )r_   rO   r–   r�   rã   )r°   Únormed_pathr4   r)  r÷   rç   s      €€€r<   Úmake_root_scheme_fileÚM_install_wheel.<locals>.root_scheme_file_maker.<locals>.make_root_scheme_fileë  sB   ø€ ÜŸ'™'×*Ñ*¨;Ó7ˆKÜŸ™Ÿ™ T¨;Ó7ˆIÙ$ T¨9Ô5Ü  ¸ÓBÐBr?   ©r°   r1   rA   r/   r9   )rç   r÷   r.  r)  s   `` €r<   Úroot_scheme_file_makerÚ._install_wheel.<locals>.root_scheme_file_makerè  s   ú€ ÷	Cñ 	Cð %Ð$r?   c                ól   >^ ^• [          Vs0 s H  o"[        X5      _M     snmSUUUU 4S jjnU$ s  snf )Nc           
     óÜ  >• [         R                  R                  U 5      n UR                  [         R                  R                  S5      u  p#n T
U   n[         R                  R                  Xd5      nT	" Xh5        [        XT5      $ ! [
         a    ST SU < S3n[        U5      ef = f! [         a6    SR                  [        T
5      5      nST SU SU < SU S	3	n[        U5      ef = f)
NrÀ   zUnexpected file in z: zG. .data directory contents should be named like: '<scheme key>/<path>'.rƒ   zUnknown scheme key used in z (for file zW). .data directory contents should be in subdirectories named with a valid scheme key (Ú))r_   rO   r–   r“   r—   Ú
ValueErrorr   ÚKeyErrorr�   rš   rã   )r°   r-  Ú_Ú
scheme_keyÚdest_subpathr'  Úscheme_pathÚvalid_scheme_keysr4   r)  Úscheme_pathsr(  rç   s            €€€€r<   Úmake_data_scheme_fileÚM_install_wheel.<locals>.data_scheme_file_maker.<locals>.make_data_scheme_fileø  s  ø€ ÜŸ'™'×*Ñ*¨;Ó7ˆKð1Ø.9×.?Ñ.?ÄÇÁÇÁÈQÓ.OÑ+�˜|ð
1Ø*¨:Ñ6�ô Ÿ™Ÿ™ [Ó?ˆIÙ$ [Ô<Ü  ¸ÓBÐBøô+ ó 1à)¨*¨°R¸±ð GMð Mð ô (¨Ó0Ð0ð1ûô ó 1Ø$(§I¡I¬f°\Ó.BÓ$CÐ!à1°*°¸RÀ
¸|ð L!Ø!,¡ð 0à-Ð.¨að1ð ô (¨Ó0Ð0ð1ús   ¢-B ÁB+ Â B(Â+A C+r0  )r!   Úgetattr)rç   ÚschemeÚkeyr>  r=  r)  r(  s   `   @€€r<   Údata_scheme_file_makerÚ._install_wheel.<locals>.data_scheme_file_makeró  s<   ú€ õ >IÓIº[°cœW VÓ1Ò1¹[ÑIˆ÷	Cò 	Cð6 %Ð$ùò; Js   Œ1c                óJ   • U R                  SS5      S   R                  S5      $ )Nrº   r‚   r   ú.data)r“   r   r!  s    r<   Úis_data_scheme_pathÚ+_install_wheel.<locals>.is_data_scheme_path  s#   € Ø�z‰z˜#˜qÓ! !Ñ$×-Ñ-¨gÓ6Ð6r?   c                ó–   • U R                  SS5      n[        U5      S:„  =(       a#    US   R                  S5      =(       a    US   S:H  $ )Nrº   rÀ   r   rF  r‚   rŸ   )r“   r›   r   )rO   Úpartss     r<   Úis_script_scheme_pathÚ-_install_wheel.<locals>.is_script_scheme_path  sB   € Ø—
‘
˜3 Ó"ˆÜ�5‹z˜A‰~×V %¨¡(×"3Ñ"3°GÓ"<×VÀÀqÁÈYÑAVÐVr?   c                ó|  >• U R                   n[        R                  R                  U5      nUR	                  5       R                  S5      (       a  US S nOVUR	                  5       R                  S5      (       a  US S nO,UR	                  5       R                  S5      (       a  US S nOUnUT;   =(       d    UT;   $ )Nz.exeéüÿÿÿz
-script.pyiöÿÿÿz.pya)r4   r_   rO   r�   rs   r   )rý   rO   r|   Ú	matchnamerÚ   Úguis       €€r<   Úis_entrypoint_wrapperÚ-_install_wheel.<locals>.is_entrypoint_wrapper2  s¢   ø€ ð �~‰~ˆÜ�w‰w×Ñ Ó%ˆØ�:‰:‹<× Ñ  ×(Ñ(Ø˜S˜b˜	‰IØ�Z‰Z‹\×"Ñ" <×0Ñ0Ø˜T˜c˜
‰IØ�Z‰Z‹\×"Ñ" 6×*Ñ*Ø˜S˜b˜	‰IàˆIà˜GÑ#×7 y°CÑ'7Ð7r?   c               3  ó$  >#   • [        [        TR                  5       5      5       He  n [        R                  R                  TU 5      n[        R                  R                  U5      (       d  MI  UR                  S5      (       d  Ma  Uv •  Mg     g 7f)Nz.py)rš   rŽ   rÄ   r_   rO   r�   r`   r   )Úinstalled_pathÚfull_installed_pathrÆ   r·   s     €€r<   Úpyc_source_file_pathsÚ-_install_wheel.<locals>.pyc_source_file_pathsU  sk   øé € ô
 %¤S¨×)9Ñ)9Ó);Ó%<Ö=ˆNÜ"$§'¡'§,¡,¨w¸Ó"GÐÜ—7‘7—>‘>Ð"5×6Ñ6ÙØ&×/Ñ/°×6Ñ6ÙØ%Ô%ò >ùs   ƒBBc                ó@   • [         R                  R                  U 5      $ )z8Return the path the pyc file would have been written to.)Ú	importlibÚutilÚcache_from_sourcer!  s    r<   Úpyc_output_pathÚ'_install_wheel.<locals>.pyc_output_pathb  s   € ä�~‰~×/Ñ/°Ó5Ð5r?   ÚignoreT)ÚforceÚquietrº   NrU   rÔ   rP  i¶  c              ;  óÐ   >#   • [        U 40 UD6 nUv •  S S S 5        [        R                  " WR                  T5        [	        UR                  U 5        g ! , (       d  f       NF= f7fr8   )r#   r_   Úchmodr|   r$   )rO   ÚkwargsrÌ   Úgenerated_file_modes      €r<   Ú_generate_fileÚ&_install_wheel.<locals>._generate_file™  sH   øé € ä˜tÑ. vÒ.°!ØŠG÷ /ä
�Š�—‘Ð,Ô-Ü�—‘˜Õ÷ /Õ.üs   ƒA&�A•A A&Á
A#ÁA&Ú	INSTALLERs   pip
rV   Ú	REQUESTEDr^   ÚRECORD)rÆ   r6   rÇ   r·   ÚwzIO[str])F)r  r1   r¡   r3   r  r5   rA   rB   )rO   r1   rA   r5   )r%  r3   r&  r3   rA   rB   )rç   r   r÷   r3   rA   úCallable[[RecordPath], File])rç   r   rA  r"   rA   rk  )rý   r/   rA   r5   )rA   zGenerator[str, None, None])rO   r3   rA   r3   )rO   r3   rc  r   rA   zGenerator[BinaryIO, None, None])Kr-   ru   ÚpurelibÚplatlibrŽ   r   Úlistr1   Únamelistr   r(   Úmapr
   r   r   r   r   rú   r_   rO   r�   r4   r&   r‘   r=   r2   r6   Ú
contextlibÚredirect_stdoutr%   Úfrom_streamrd   ÚstdoutÚwarningsÚcatch_warningsÚfilterwarningsÚ
compileallÚcompile_filerð   r$   r—   rÁ   ÚdebugÚgetvaluer  rŸ   ÚclobberÚvariantsÚset_moderá   r   rœ   r™   Úmake_multiplerÙ   r­   rÂ   r)   Úcontextmanagerr�   rj   r˜   r   Úto_jsonrf   ra   Ú	read_textÚcsvÚreaderÚ
splitlinesrÎ   rZ   ÚwriterÚ	writerowsrµ   )Ar|   Ú	wheel_zipr(  rA  Ú	pycompileÚwarn_script_locationÚ
direct_urlÚ	requestedÚinfo_dirrt   rÇ   r  r"  r1  rC  rG  ÚpathsÚ
file_pathsÚroot_scheme_pathsÚdata_scheme_pathsr.  ÚfilesrK  Úother_scheme_pathsÚscript_scheme_pathsr>  Úother_scheme_filesÚdistributionrQ  Úscript_scheme_filesÚexisting_parentsrý   r¢   rV  r\  rt  rO   ÚsuccessÚpyc_pathÚpyc_record_pathÚmakerrÛ   Úgui_scripts_to_generateÚgenerated_console_scriptsÚmsgre  Údest_info_dirÚinstaller_pathÚinstaller_fileÚdirect_url_pathÚdirect_url_fileÚrequested_pathÚrecord_textÚrecord_rowsÚrowsr°   Úrecord_filer†  r)  r6   rÚ   rd  rP  rÆ   r·   sA     `                                                       @@@@@@@r<   Ú_install_wheelrª  ª  sÒ  ÿ€ ô2 % YÓ5Ñ€Hä˜X×&Ñ&Ø—.‘.‰à—.‘.ˆð /1€IÜ"›u€GØ€Ið >Cð!Øð!Ø'*ð!Ø6:ð!à	÷!ò !ô"÷ð	%Øð	%Ø!$ð	%à	%÷	%ð %Øð %Ø#)ð %à	%÷ %ð  %ôD7ô ””jÑ! 9×#5Ñ#5Ó#7Ó8€EÜ˜[¨%Ó0€JÜ+4Ð5HÈ*Ó+UÑ(ÐÐ(á2°9¸gÓFÐÜÐ 5Ð7HÓI€EôWô /8ØÐ0ó/Ñ+ÐÐ+ñ 3°9ÓEÐÜÐ2Ð4FÓGÐÜ�%Ð+Ó,€Eô *Ü˜
Ó#Ü˜$Óó€Lô # <Ó0�L€GˆS÷8ð 8ô  +.ØÐ2ó+Ðô &Ð&;Ð=PÓQÐÜœjÐ*=Ó>ÐÜ�%Ð,Ó-€Eä“uÐÛˆô —W‘W—_‘_ T§^¡^Ó4ˆ
ØÐ-Ó-Ü�zÔ"Ø× Ñ  Ô,Ø�	‰	ŒÙ˜×-Ñ-¨t¯~©~¸t¿|¹|ÖLñ ÷&ð &ô6÷
 Ü×'Ò'Ü×%Ò%¤c§j¡jÓ1ô
àÜ×(Ò(Õ*Ü×'Ò'¨Ô1Ù1Ö3�DÜ(×5Ò5°dÀ$ÈdÑS�Gß�wÙ#2°4Ó#8˜Ü!Ÿw™wŸ~™~¨h×7Ñ7Ð7Ð7Ü*.Ø(¨(×*:Ñ*:¼2¿7¹7¿;¹;ÈÓ*Ló+˜ñ )¨¸(ÖCñ 4÷ +÷
ô 	�‰�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Ðä×Ñöó ðô —G‘G—L‘L ¨(Ó3€Mô —W‘W—\‘\ -°Ó=€NÙ	˜Ô	'¨>Ø×Ñ˜XÔ&÷ 
(à×Ñ�^Ô$ð ÑÜŸ'™'Ÿ,™, }Ô6NÓOˆÙ˜OÔ,°Ø×!Ñ! *×"4Ñ"4Ó"6×"=Ñ"=¸gÓ"FÔG÷ -à×Ñ˜Ô)ö ÜŸ™Ÿ™ m°[ÓAˆÜ�. $Õ'Ø÷ (à×Ñ˜Ô(à×(Ñ(¨Ó2€KÜ”s—z’z +×"8Ñ"8Ó":Ó;Ó<€Kä%ØØØØØñ€Dô —'‘'—,‘,˜}¨hÓ7€Ká	˜Ñ	:¤}°SÓ'9Ò	:¸kô —’œD ¨KÓ8Ó9ˆØ×ÑÔ,¨TÓ2Ô3÷	 
;Ð	:÷s +Ö*ú÷
ö 
ú÷x 
(Ö	'ú÷ -Ö,ú÷ (Ö'ú÷$ 
;Õ	:ús[   É&Y%É<<YÊ<A/YÌ+Y%Ò"Y7Ó</Z	Õ7ZØ;Z-Ù
Y"	ÙY%Ù%
Y4Ù7
ZÚ	
ZÚ
Z*Ú-
Z;c              #  ó|   #   •  S v •  g ! [          a&  nSU  SUR                  S    3n[        U5      UeS nAff = f7f)Nz	For req: z. r   )r   Úargs)Úreq_descriptionÚer'  s      r<   Úreq_error_contextr¯  Ë  sD   é € ð0ÜøÜó 0Ø˜oÐ.¨b°·±¸±°Ð<ˆÜ Ó(¨aÐ/ûð0üs   ‚<„	 ˆ<‰
9“!4´9¹<c                ó¶   • [        USS9 n[        U5         [        U UUUUUUUS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NT)Ú
allowZip64)r|   rˆ  r(  rA  r‰  rŠ  r‹  rŒ  )r   r¯  rª  )	r|   r(  rA  r­  r‰  rŠ  r‹  rŒ  Úzs	            r<   Úinstall_wheelr³  Ô  sU   € ô 
�¨Ò	-°Ü˜Õ/ÜØØØ%ØØ#Ø%9Ø%Ø#ò	÷ 0÷ 
.Ð	-ß/Õ/ú÷ 
.Õ	-ús   ‹A
—9¨A
¹
A	ÁA
Á

A)rï   )rO   r3   rP   ÚintrA   ztuple[str, str])rW   r3   rA   zdict[str, Any])rO   r3   rA   r5   )rt   r	   rA   r5   )r}   r   rA   z%tuple[dict[str, str], dict[str, str]])rŸ   zSequence[str]rA   z
str | None)r´   zIterable[InstalledCSVRow]rA   zlist[tuple[str, str, str]])r°   r1   r·   r3   rA   r3   )rO   r3   r·   r3   rA   r1   )rÅ   zlist[list[str]]rÆ   zdict[RecordPath, RecordPath]r6   zset[RecordPath]rÇ   r  r·   r3   rA   zlist[InstalledCSVRow])rÚ   zdict[str, str]rA   r  )r  r3   rA   rB   )TTNF)r|   r3   rˆ  r   r(  r3   rA  r"   r‰  r5   rŠ  r5   r‹  úDirectUrl | NonerŒ  r5   rA   rB   )r­  r3   rA   zGenerator[None, None, None])r|   r3   r(  r3   rA  r"   r­  r3   r‰  r5   rŠ  r5   r‹  rµ  rŒ  r5   rA   rB   )iÚ__doc__Ú
__future__r   rŒ   rx  rq  rƒ  rY  ÚloggingÚos.pathr_   r×   rô   rd   r  ru  Úbase64r   Úcollections.abcr   r   r   r   Úemail.messager	   Ú	itertoolsr
   r   r   Útypingr   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+   r,   Úpip._internal.utils.wheelr-   r/   Ú	getLoggerrC   rÁ   r3   r1   Útupler´  ÚInstalledCSVRowrS   rZ   ro   ru   r   r­   rµ   r¸   r½   rÎ   rá   rã   rú   r  r  r  rª  r€  r¯  r³  r9   r?   r<   Ú<module>rÏ     sƒ  ðÙ Lå "ã Û Û Û 
Û Û Û Û 	Û Û 
Û Û Ý $ß CÓ CÝ !ß 1Ñ 1÷	÷ 	ó 	÷ %å 3Ý 5Ý 9å 6Ý ;÷ñ ÷
 Pß ;ß Eß TÓ T÷ó õ 2ôˆ8ô ð 
×	Ò	˜8Ó	$€á�\ 3Ó'€
Ø˜
 C¨¨s°C¨x©Ð8Ñ9€ö!ô>ôô(Aô(ôE ðPØ&ðàôô4.ô$ðØ!ðà+ðð ðð ð	ð
 ðð ôô@H÷V#Oñ #O÷L	2ñ 	2ô
Ð-ô 
ô0ô4�[ô 4ð2 Ø!%Ø#'Øð^4Ø
ð^4àð^4ð ð^4ð ð	^4ð
 ð^4ð ð^4ð !ð^4ð ð^4ð 
õ^4ðB	 ×Ñó0ó ð0ð Ø!%Ø#'ØðØ
ðàðð ðð ð	ð
 ðð ðð !ðð ðð 
ör?   