+
    Žf©jÔ^  ã                  ó„  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIHtHtH	t	 ^ RI
Ht ^ RIHt ^ RIHtHt ^ RIHtHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHtHt ^ RIHtHtH t H!t! ^ RI"H#t#H$t$ ^ RI%H&t& ]! ]'4      t(R R lt)R R lt*]*R R l4       t+R R lt,R R lt-R R lt. ! R R4      t/ ! R R4      t0 ! R R 4      t1R# )!é    )ÚannotationsN)ÚCallableÚ	GeneratorÚIterable)Úcache_from_source)ÚAny)ÚLegacyDistutilsInstallÚUninstallMissingRecord)Úget_bin_prefixÚget_bin_user)ÚBaseDistribution)ÚWINDOWS)Úegg_link_path_from_location)Ú	getLoggerÚ
indent_log)ÚaskÚnormalize_pathÚrenamesÚrmtree)ÚAdjacentTempDirectoryÚTempDirectory)Úrunning_under_virtualenvc               ó(   € V ^8„  d   QhRRRRRRRR/# )é   Úbin_dirÚstrÚscript_nameÚis_guiÚboolÚreturnúGenerator[str, None, None]© )Úformats   "ÚZ/var/www/html/bestweb/venv/lib/python3.14/site-packages/pip/_internal/req/req_uninstall.pyÚ__annotate__r%      s,   € ÷ &ñ &Øð&Ø"ð&Ø,0ð&àñ&ó    c              #  ó¼   "  € \         P                  P                  W4      pVx € \        '       g   R# V R2x € V R2x € V'       d
   V R2x € R# V R2x € R# 5i)z…Create the fully qualified name of the files created by
{console,gui}_scripts for the given ``dist``.
Returns the list of file names
Nz.exez.exe.manifestz-script.pywz
-script.py)ÚosÚpathÚjoinr   )r   r   r   Úexe_names   &&& r$   Ú_script_namesr,      s]   é € ô �w‰w�|‰|˜GÓ1€HØ
‚Nß‹7ÙØˆJ�dÐ
ÒØˆJ�mÐ
$Ò$ßØ�
˜+Ð&Ô&à�
˜*Ð%Ô%ùs   ‚AAÁ
Ac               ó    € V ^8„  d   QhRRRR/# )r   Úfnz)Callable[..., Generator[Any, None, None]]r    r"   )r#   s   "r$   r%   r%   +   s   € ÷ ñ Ø1ðà.ñr&   c                óL   a € \         P                  ! S 4      R  V 3R ll4       pV# )c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úargsr   Úkwr    zGenerator[Any, None, None]r"   )r#   s   "r$   r%   Ú_unique.<locals>.__annotate__/   s"   € ÷ ñ �cð  ð Ð)Cñ r&   c               ?  ó|   <"  € \        4       pS! V / VB  F   pW29  g   K  VP                  V4       Vx € K"  	  R # 5i©N)ÚsetÚadd)r1   r2   ÚseenÚitemr.   s   *,  €r$   ÚuniqueÚ_unique.<locals>.unique.   s5   øé € ä›ˆÙ˜�O ”OˆDØÖØ—‘˜”Ø”
ó $ùs   ƒ<¡<)Ú	functoolsÚwraps)r.   r:   s   f r$   Ú_uniquer>   +   s'   ø€ ô ‡_‚_�RÓ÷ó ðð €Mr&   c               ó    € V ^8„  d   QhRRRR/# )r   Údistr   r    r!   r"   )r#   s   "r$   r%   r%   :   s   € ÷ ñ Ð/ð Ð4Nñ r&   c              #  óú  "  € V P                   pVf   Q R4       hV P                  4       pVf   \        V R7      hV F¹  p\        P                  P                  W4      pVx € VP                  R4      '       g   K?  \        P                  P                  V4      w  rVVRR p\        P                  P                  WWR,           4      pVx € \        P                  P                  WWR,           4      pVx € K»  	  R# 5i)a§  
Yield all the uninstallation paths for dist based on RECORD-without-.py[co]

Yield paths to all the files in RECORD. For each .py file in RECORD, add
the .pyc and .pyo in the same directory.

UninstallPathSet.add() takes care of the __pycache__ .py[co].

If RECORD is not found, raises an error,
with possible information from the INSTALLER file.

https://packaging.python.org/specifications/recording-installed-packages/
Nznot installed©Údistributionú.pyú.pycú.pyoéýÿÿÿ)ÚlocationÚiter_declared_entriesr
   r(   r)   r*   ÚendswithÚsplit)r@   rH   ÚentriesÚentryr)   Údnr.   Úbases   &       r$   Úuninstallation_pathsrP   9   sÄ   é € ð �}‰}€HØÒÐ0 Ó0Ðà×(Ñ(Ó*€GØ‚Ü$°$Ô7Ð7ãˆÜ�w‰w�|‰|˜HÓ,ˆØŠ
Ø�=‰=˜×ÔÜ—W‘W—]‘] 4Ó(‰FˆBØ�c�r�7ˆDÜ—7‘7—<‘< ¨6¥MÓ2ˆDØŠJÜ—7‘7—<‘< ¨6¥MÓ2ˆDØŒJó ùs   ‚A4C;Á;B C;c               ó    € V ^8„  d   QhRRRR/# ©r   ÚpathsúIterable[str]r    zset[str]r"   )r#   s   "r$   r%   r%   [   s   € ÷ ñ �=ð  Xñ r&   c                óô  € \         P                  P                  p\        4       p\        4       p\	        V \
        R7       F´  pVP                  VR,           4      '       d   VRR MTpVP                  V4      pV'       dC   Wc9   d   KI  \         P                  P                  V4      P                  V4      pWv8X  d   RMTpKJ  VP                  V4       VP                  VP                  V4      4       K¶  	  V# )z¼Compact a path set to contain the minimal number of paths
necessary to contain all paths in the set. If /a/path/ and
/a/path/to/a/file.txt are both in the set, leave only the
shorter path.©ÚkeyÚ*NÚ éÿÿÿÿ)
r(   r)   Úsepr6   ÚsortedÚlenrJ   ÚrstripÚdirnamer7   )rS   r[   Úshort_pathsÚprefixesr)   ÚcurrentÚparentÚnext_parents   &       r$   Úcompactre   [   s»   € ô �'‰'�+‰+€CÜ›E€KÜ›€Hä�u¤#×&ˆØ#Ÿ}™}¨S°3­Y×7Ò7�$�s˜‘)¸TˆØ—‘ Ó$ˆßØÔ!ÙÜŸ'™'Ÿ/™/¨&Ó1×8Ñ8¸Ó=ˆKØ&Ô0‘R°kŠFà�O‰O˜DÔ!Ø�L‰L˜Ÿ™¨Ó,Ö-ñ 'ð Ðr&   c               ó    € V ^8„  d   QhRRRR/# rR   r"   )r#   s   "r$   r%   r%   s   s   € ÷ Añ A˜}ð A°ñ Ar&   c                ó¢  a
aa€ V  Uu/ uF#  p\         P                  P                  V4      VbK%  	  pp\        V4      p\	        VP                  4        Uu0 uF)  p\         P                  P                  V4      ^ ,          kK+  	  up\        R7      p\        4       pR R loV Fú  o\        ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       d   KE  \        4       p\        4       p\         P                  ! S4       F@  w  o
r‰VP                  V
VV3R lV 4       4       VP                  V
VV3R lV	 4       4       KB  	  Wc,
          '       d   KÃ  VP                  V4       VP                  S\         P                  ,           4       Kü  	  \        \        VP                  V4      4      V,          # u upi u upi )	zŸReturns a set containing the paths that need to be renamed.

This set may include directories when the original sequence of paths
included every file on disk.
rV   c               ó    € V ^8„  d   QhRRRR/# )r   Úar   r    r"   )r#   s   "r$   r%   Ú)compress_for_rename.<locals>.__annotate__~   s   € ÷ 2ñ 2�cð 2˜cñ 2r&   c                 óx   € \         P                  P                  \         P                  P                  ! V !  4      # r5   )r(   r)   Únormcaser*   )ri   s   *r$   Ú	norm_joinÚ&compress_for_rename.<locals>.norm_join~   s$   € Ü�w‰w×Ñ¤§¡§¢¨aÑ 0Ó1Ð1r&   c              3  ó€   <"  € T F3  p\         P                  P                  S4      P                  V4      x € K5  	  R # 5ir5   )r(   r)   rl   Ú
startswith)Ú.0ÚwÚroots   & €r$   Ú	<genexpr>Ú&compress_for_rename.<locals>.<genexpr>‚   s.   øé € ÐG¹Y¸Œr�w‰w×Ñ Ó%×0Ñ0°×3Ð3»Yùs   ƒ;>TFc              3  ó8   <"  € T F  pS! SSV4      x € K  	  R # 5ir5   r"   )rq   Údr_   rm   rs   s   & €€€r$   rt   ru   ‰   s   øé € ÐLÁG¸q™y¨¨w¸×:Ð:ÃGùó   ƒc              3  ó8   <"  € T F  pS! SSV4      x € K  	  R # 5ir5   r"   )rq   Úfr_   rm   rs   s   & €€€r$   rt   ru   Š   s   øé € ÐHÁ%¸Q™Y t¨W°a×8Ð8Ã%ùrx   )r(   r)   rl   r6   r\   ÚvaluesrK   r]   ÚanyÚwalkÚupdateÚdifference_updater7   r[   ÚmapÚ__getitem__)rS   ÚpÚcase_mapÚ	remainingÚ	uncheckedÚ	wildcardsÚ	all_filesÚall_subdirsÚsubdirsÚfilesr_   rm   rs   s   &         @@@r$   Úcompress_for_renamer‹   s   sL  ú€ ñ 16Ó6±¨1”—‘× Ñ  Ó# QÒ&±€HÐ6Ü�H“€IÜ°X·_±_Ô5FÓGÑ5F°œŸ™Ÿ™ aÓ(¨×+Ð+Ñ5FÑGÌSÔQ€IÜ›%€Iõ2ó ˆß‹3ÔG¹YÓG�3�3Š3ÔG¹YÓG×GÒGáä!›eˆ	Ü #£ˆÜ')§w¢w¨t¦}Ñ#ˆG�WØ×ÑÖLÁGÓLÔLØ×ÑÖHÁ%ÓHÖHñ (5ð ×%Ö%Ø×'Ñ'¨	Ô2Ø�M‰M˜$¤§¡�-Ö(ñ ô" Œs�8×'Ñ'¨Ó3Ó4°yÕ@Ð@ùò3 7ùâGs   ˆ)GÁ/Gc               ó    € V ^8„  d   QhRRRR/# )r   rS   rT   r    ztuple[set[str], set[str]]r"   )r#   s   "r$   r%   r%   •   s   € ÷ ."ñ ." }ð ."Ð9Rñ ."r&   c                óÎ  € \        V 4      p\        4       p\        4       p\        4       pV Fy  pVP                  R4      '       d   K  VP                  R4      '       g   RV9   d/   VP                  \        P                  P                  V4      4       VP                  V4       K{  	  \        \        \        P                  P                  V4      4      p\        V4      pV FÂ  p\        P                  ! V4       F¥  w  r‰p
V
 F™  pVP                  R4      '       d   K  \        P                  P                  W‹4      p\        P                  P                  V4      '       g   Kb  \        P                  P                  V4      V9  g   Kˆ  VP                  V4       K›  	  K§  	  KÄ  	  YC Uu0 uF#  p\        P                  P                  VR4      kK%  	  up,          pW3# u upi )a[  Returns a tuple of 2 sets of which paths to display to user

The first set contains paths that would be deleted. Files of a package
are not added and the top-level directory of the package has a '*' added
at the end - to signify that all it's contents are removed.

The second set contains files that would have been skipped in the above
folders.
rE   z__init__.pyz
.dist-inforX   )r6   rJ   r7   r(   r)   r_   r€   rl   re   r}   r*   Úisfile)rS   Úwill_removeÚ	will_skipÚfoldersrŠ   r)   Ú_normcased_filesÚfolderÚdirpathÚ_ÚdirfilesÚfnameÚfile_s   &            r$   Úcompress_for_output_listingr™   •   se  € ô �e“*€KÜ“€Iô ‹e€GÜ‹E€EÛˆØ�=‰=˜× Ò ÙØ�=‰=˜×'Ò'¨<¸4Ô+?Ø�K‰KœŸ™Ÿ™¨Ó-Ô.Ø�	‰	�$Žñ ô œ3œrŸw™w×/Ñ/°Ó7Ó8Ðä�gÓ€Gó ˆÜ$&§G¢G¨F¦OÑ ˆG˜Û!�Ø—>‘> &×)Ò)ÙäŸ™Ÿ™ WÓ4�ä—G‘G—N‘N 5×)Ô)ÜŸ™×(Ñ(¨Ó/Ð7GÖGð —M‘M %Ö(ó "ó %4ñ ð À7ÓKÁ7¸œ2Ÿ7™7Ÿ<™<¨°Ö4Á7ÑKÕK€KàÐ!Ð!ùò Ls   Æ-)G"c                  óx   € ] tR t^ÆtRtR R ltR R ltR R ltR R	 ltR
 R lt	R R lt
]R R l4       tRtR# )ÚStashedUninstallPathSetzSA set of file rename operations to stash files while
tentatively uninstalling them.c               ó   € V ^8„  d   QhRR/# ©r   r    ÚNoner"   )r#   s   "r$   r%   Ú$StashedUninstallPathSet.__annotate__Ê   s   € ÷ 0ñ 0˜$ñ 0r&   c                	ó"   € / V n         . V n        R # r5   )Ú
_save_dirsÚ_moves©Úselfs   &r$   Ú__init__Ú StashedUninstallPathSet.__init__Ê   s   € ð 57ˆŒð .0ˆŽr&   c               ó    € V ^8„  d   QhRRRR/# ©r   r)   r   r    r"   )r#   s   "r$   r%   rŸ   Ò   s   € ÷ ñ ¨ð °ñ r&   c                óÂ   €  \        V4      pW P                  \        P
                  P                  V4      &   VP
                  #   \         d    \        RR7      p LPi ; i)z�Stashes a directory.

Directories are stashed adjacent to their original location if
possible, or else moved/copied into the user's temp dir.Ú	uninstall©Úkind)r   ÚOSErrorr   r¡   r(   r)   rl   )r¤   r)   Úsave_dirs   && r$   Ú_get_directory_stashÚ,StashedUninstallPathSet._get_directory_stashÒ   sS   € ð	7Ü&;¸DÓ&AˆHð 3;�‰œŸ™×(Ñ(¨Ó.Ñ/à�}‰}Ðøô	 ô 	7Ü$¨+Ô6ŠHð	7ús   ‚A ÁAÁAc               ó    € V ^8„  d   QhRRRR/# r¨   r"   )r#   s   "r$   r%   rŸ   à   s   € ÷ ñ  Cð ¨Cñ r&   c                óŒ  € \         P                  P                  V4      p\         P                  P                  V4      Rr2RpW#8w  d    V P                  V,          pM9\         P                  P                  V4      p\        RR7      pW@P                  V&   \         P                  P                  W4      pV'       dJ   V\         P                  P                  8w  d+   \         P                  P                  VP                  V4      # VP                  #   \
         d     Mi ; i\         P                  P                  T4      Tr2EK  )zrStashes a file.

If no root has been provided, one will be created for the directory
in the user's temp directory.Nrª   r«   )
r(   r)   rl   r_   r¡   ÚKeyErrorr   ÚrelpathÚcurdirr*   )r¤   r)   ÚheadÚold_headr®   r´   s   &&    r$   Ú_get_file_stashÚ'StashedUninstallPathSet._get_file_stashà   sæ   € ô
 �w‰w×Ñ Ó%ˆÜŸ™Ÿ™¨Ó.°ˆhØˆàÔðØŸ?™?¨4Õ0�Øô —7‘7—?‘? 4Ó(ˆDÜ$¨+Ô6ˆHØ$,�O‰O˜DÑ!ä—'‘'—/‘/ $Ó-ˆß�w¤"§'¡'§.¡.Ô0Ü—7‘7—<‘< §¡¨wÓ7Ð7Ø�}‰}Ðøô ô ÙðúäŸW™WŸ_™_¨TÓ2°D“(s   Á	D ÄD ÄD c               ó    € V ^8„  d   QhRRRR/# r¨   r"   )r#   s   "r$   r%   rŸ   û   s   € ÷ ñ ˜#ð  #ñ r&   c                óÆ  € \         P                  P                  V4      ;'       d%    \         P                  P                  V4      '       * pV'       d   V P	                  V4      pMV P                  V4      pV P                  P                  W34       V'       d<   \         P                  P                  V4      '       d   \         P                  ! V4       \        W4       V# )z}Stashes the directory or file and returns its new location.
Handle symlinks as files to avoid modifying the symlink targets.
)
r(   r)   ÚisdirÚislinkr¯   r¸   r¢   ÚappendÚrmdirr   )r¤   r)   Úpath_is_dirÚnew_paths   &&  r$   ÚstashÚStashedUninstallPathSet.stashû   s–   € ô —g‘g—m‘m DÓ)×FÐF´"·'±'·.±.ÀÓ2FÔ.FˆßØ×0Ñ0°Ó6‰Hà×+Ñ+¨DÓ1ˆHà�‰×Ñ˜DÐ+Ô,ßœ2Ÿ7™7Ÿ=™=¨×2Ò2ô �HŠH�XÔÜ�ÔØˆr&   c               ó   € V ^8„  d   QhRR/# r�   r"   )r#   s   "r$   r%   rŸ     s   € ÷ ñ ˜ñ r&   c                ó„   € V P                   P                  4        F  pVP                  4        K  	  . V n        / V n         R# )z0Commits the uninstall by removing stashed files.N)r¡   r{   Úcleanupr¢   )r¤   r®   s   & r$   ÚcommitÚStashedUninstallPathSet.commit  s3   € àŸ™×.Ñ.Ö0ˆHØ×ÑÖñ 1àˆŒØˆŽr&   c               ó   € V ^8„  d   QhRR/# r�   r"   )r#   s   "r$   r%   rŸ     s   € ÷ ñ ˜$ñ r&   c                ó˜  € V P                    F  p\        P                  ! R.VO5!   K  	  V P                    F¸  w  r# \        P                  RW#4       \        P
                  P                  V4      '       g&   \        P
                  P                  V4      '       d   \        P                  ! V4       M0\        P
                  P                  V4      '       d   \        V4       \        W24       Kº  	  V P                  4        R#   \         d9   p\        P                  RT4       \        P                  RT4        Rp?EK  Rp?ii ; i)z2Undoes the uninstall by moving stashed files back.zMoving to %s
 from %szReplacing %s from %szFailed to restore %szException: %sN)r¢   ÚloggerÚinfoÚdebugr(   r)   rŽ   r½   Úunlinkr¼   r   r   r­   ÚerrorrÇ   )r¤   r‚   rÁ   r)   Úexs   &    r$   ÚrollbackÚ StashedUninstallPathSet.rollback  sÙ   € à—”ˆAÜ�KŠKÐ0Ð5°1Ö5ñ ð #Ÿkœk‰NˆHð	2Ü—‘Ð3°XÔDÜ—7‘7—>‘> (×+Ò+¬r¯w©w¯~©~¸h×/GÒ/GÜ—I’I˜hÕ'Ü—W‘W—]‘] 8×,Ò,Ü˜8Ô$Ü˜Ö'ñ *ð 	�‰Žøô	 ô 2Ü—‘Ð3°XÔ>Ü—‘˜_¨b×1Ó1ûð2ús$   ¾ADÂ;DÃDÄE	Ä,EÅE	c               ó   € V ^8„  d   QhRR/# ©r   r    r   r"   )r#   s   "r$   r%   rŸ   +  s   € ÷ !ñ !˜dñ !r&   c                	ó,   € \        V P                  4      # r5   )r   r¢   r£   s   &r$   Úcan_rollbackÚ$StashedUninstallPathSet.can_rollback*  s   € ä�D—K‘KÓ Ð r&   )r¢   r¡   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r¥   r¯   r¸   rÂ   rÇ   rÑ   ÚpropertyrÖ   Ú__static_attributes__r"   r&   r$   r›   r›   Æ   s9   † ñ&õ0õõõ6õ*õð& ô!ó ô!r&   r›   c                  ó”   € ] tR tRtRtR R ltR R ltR R ltR	 R
 ltRR R llt	R R lt
R R ltR R lt]R R l4       tRtR# )ÚUninstallPathSeti/  zIA set of file paths to be removed in the uninstallation of a
requirement.c               ó    € V ^8„  d   QhRRRR/# )r   r@   r   r    rž   r"   )r#   s   "r$   r%   ÚUninstallPathSet.__annotate__3  s   € ÷ 	Jñ 	JÐ-ð 	J°$ñ 	Jr&   c                	ó¸   € \        4       V n        \        4       V n        / V n        Wn        \        4       V n        \        P                  ! \        4      V n
        R # r5   )r6   Ú_pathsÚ_refuseÚ_pthÚ_distr›   Ú_moved_pathsr<   Ú	lru_cacher   Ú_normalize_path_cached)r¤   r@   s   &&r$   r¥   ÚUninstallPathSet.__init__3  s@   € Ü #£ˆŒÜ!$£ˆŒØ46ˆŒ	ØŒ
Ü3Ó5ˆÔô '0×&9Ò&9¼.Ó&IˆÖ#r&   c               ó    € V ^8„  d   QhRRRR/# )r   r)   r   r    r   r"   )r#   s   "r$   r%   râ   >  s   € ÷ 	Hñ 	H˜sð 	H tñ 	Hr&   c                ó‚   € \        4       '       g   R# VP                  V P                  \        P                  4      4      # )z[
Return True if the given path is one we are permitted to
remove/modify, False otherwise.

T)r   rp   rê   ÚsysÚprefix)r¤   r)   s   &&r$   Ú
_permittedÚUninstallPathSet._permitted>  s.   € ô (×)Ò)ÙØ�‰˜t×:Ñ:¼3¿:¹:ÓFÓGÐGr&   c               ó    € V ^8„  d   QhRRRR/# )r   r)   r   r    rž   r"   )r#   s   "r$   r%   râ   I  s   € ÷ .ñ .˜ð . ñ .r&   c                	óX  € \         P                  P                  V4      w  r#\         P                  P                  V P	                  V4      \         P                  P                  V4      4      p\         P                  P                  V4      '       g   R # V P                  V4      '       d   V P                  P                  V4       MV P                  P                  V4       \         P                  P                  V4      ^,          R8X  d   V P                  \        V4      4       R # R # )NrD   )r(   r)   rK   r*   rê   rl   Úexistsrð   rä   r7   rå   Úsplitextr   )r¤   r)   r¶   Útails   &&  r$   r7   ÚUninstallPathSet.addI  sÃ   € Ü—W‘W—]‘] 4Ó(‰
ˆô �w‰w�|‰|˜D×7Ñ7¸Ó=¼r¿w¹w×?OÑ?OÐPTÓ?UÓVˆä�w‰w�~‰~˜d×#Ò#ÙØ�?‰?˜4× Ò Ø�K‰K�O‰O˜DÕ!à�L‰L×Ñ˜TÔ"ô �7‰7×Ñ˜DÓ! !Õ$¨Ô-Ø�H‰HÔ& tÓ,Ö-ñ .r&   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úpth_filer   rM   r    rž   r"   )r#   s   "r$   r%   râ   \  s!   € ÷ 'ñ ' ð '¨Cð '°Dñ 'r&   c                	ó$  € V P                  V4      pV P                  V4      '       dM   WP                  9  d   \        V4      V P                  V&   V P                  V,          P	                  V4       R # V P
                  P	                  V4       R # r5   )rê   rð   ræ   ÚUninstallPthEntriesr7   rå   )r¤   rù   rM   s   &&&r$   Úadd_pthÚUninstallPathSet.add_pth\  sg   € Ø×.Ñ.¨xÓ8ˆØ�?‰?˜8×$Ò$ØŸy™yÔ(Ü&9¸(Ó&C�—	‘	˜(Ñ#Ø�I‰I�hÕ×#Ñ# EÖ*à�L‰L×Ñ˜XÖ&r&   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úauto_confirmr   Úverboser    rž   r"   )r#   s   "r$   r%   râ   e  s&   € ÷ Nñ N 4ð N¸$ð NÈ4ñ Nr&   c                óü  € V P                   '       g-   \        P                  RV P                  P                  4       R# V P                  P                   RV P                  P
                   2p\        P                  RV4       \        4       ;_uu_ 4        V'       g   V P                  V4      '       d«   V P                  p\        V P                   4      p\        \        V4      4       F*  pVP                  V4       \        P                  RV4       K,  	  V P                  P                  4        F  pVP!                  4        K  	  \        P                  RV4       RRR4       R#   + '       g   i     R# ; i)zTRemove paths in ``self._paths`` with confirmation (unless
``auto_confirm`` is True).z7Can't uninstall '%s'. No files were found to uninstall.NÚ-zUninstalling %s:zRemoving file or directory %szSuccessfully uninstalled %s)rä   rË   rÌ   rç   Úraw_nameÚraw_versionr   Ú_allowed_to_proceedrè   r‹   r\   re   rÂ   r   ræ   r{   Úremove)r¤   rÿ   r   Údist_name_versionÚmovedÚ
for_renamer)   Úpths   &&&     r$   r  ÚUninstallPathSet.removee  s  € ð �{�{ˆ{Ü�K‰KØIØ—
‘
×#Ñ#ôñ à#Ÿz™z×2Ñ2Ð3°1°T·Z±Z×5KÑ5KÐ4LÐMÐÜ�‰Ð&Ð(9Ô:ä�\�\ß˜t×7Ñ7¸×@Ò@Ø×)Ñ)�ä0°·±Ó=�
ä"¤7¨:Ó#6Ö7�DØ—K‘K Ô%Ü—N‘NÐ#BÀDÖIñ 8ð  Ÿ9™9×+Ñ+Ö-�CØ—J‘J–Lñ .ô —‘Ð9Ð;LÔM÷ �\�\Š\ús   ÂE*Â6B*E*Å*E;	c               ó    € V ^8„  d   QhRRRR/# )r   r   r   r    r"   )r#   s   "r$   r%   râ   ‚  s   € ÷ =ñ =¨4ð =°Dñ =r&   c                ó<  € R R lpV'       g   \        V P                  4      w  r4M\        V P                  4      p\        4       pV! RV4       V! RV4       V! RV P                  4       V'       d   V! R\	        V P                  4      4       \        RR	4      R8g  # )
z@Display which files would be deleted and prompt for confirmationc               ó$   € V ^8„  d   QhRRRRRR/# )r   Úmsgr   rS   rT   r    rž   r"   )r#   s   "r$   r%   Ú:UninstallPathSet._allowed_to_proceed.<locals>.__annotate__…  s!   € ÷ 	&ñ 	&˜#ð 	& mð 	&¸ñ 	&r&   c                ó  € V'       g   R # \         P                  V 4       \        4       ;_uu_ 4        \        \	        V4      4       F  p\         P                  V4       K  	  R R R 4       R #   + '       g   i     R # ; ir5   )rË   rÌ   r   r\   re   )r  rS   r)   s   && r$   Ú_displayÚ6UninstallPathSet._allowed_to_proceed.<locals>._display…  sF   € ßÙä�K‰K˜ÔÜ—•Ü"¤7¨5£>Ö2�DÜ—K‘K Ö%ñ 3÷ ——’ús   ²1A-Á-A>	zWould remove:z+Would not remove (might be manually added):z%Would not remove (outside of prefix):zWill actually move:zProceed (Y/n)? Ún)Úyr  rY   )r™   rä   r6   rå   r‹   r   )r¤   r   r  r�   r�   s   &&   r$   r  Ú$UninstallPathSet._allowed_to_proceed‚  s…   € õ	&÷ Ü%@ÀÇÁÓ%MÑ"ˆK˜ô ˜dŸk™kÓ*ˆKÜ›ˆIá� +Ô.ÙÐ>À	ÔJÙÐ8¸$¿,¹,ÔGßÙÐ*Ô,?ÀÇÁÓ,LÔMäÐ$ nÓ5¸Ñ<Ð<r&   c               ó   € V ^8„  d   QhRR/# r�   r"   )r#   s   "r$   r%   râ   ž  s   € ÷ ñ ˜$ñ r&   c                ó€  € V P                   P                  '       g-   \        P                  RV P                  P
                  4       R# \        P                  RV P                  P
                  4       V P                   P                  4        V P                  P                  4        F  pVP                  4        K  	  R# )z1Rollback the changes previously made by remove().z'Can't roll back %s; was not uninstalledNzRolling back uninstall of %s)
rè   rÖ   rË   rÏ   rç   r  rÌ   rÑ   ræ   r{   )r¤   r
  s   & r$   rÑ   ÚUninstallPathSet.rollbackž  s€   € à× Ñ ×-×-Ð-Ü�L‰LØ9Ø—
‘
×#Ñ#ôñ Ü�‰Ð2°D·J±J×4GÑ4GÔHØ×Ñ×"Ñ"Ô$Ø—9‘9×#Ñ#Ö%ˆCØ�L‰LŽNó &r&   c               ó   € V ^8„  d   QhRR/# r�   r"   )r#   s   "r$   r%   râ   «  s   € ÷ #ñ #˜ñ #r&   c                ó:   € V P                   P                  4        R# )z?Remove temporary save dir: rollback will no longer be possible.N)rè   rÇ   r£   s   &r$   rÇ   ÚUninstallPathSet.commit«  s   € à×Ñ× Ñ Ö"r&   c               ó    € V ^8„  d   QhRRRR/# )r   r@   r   r    rà   r"   )r#   s   "r$   r%   râ   °  s    € ÷ Zñ ZÐ-ð ZÐ2Bñ Zr&   c           
     	óh  € VP                   pVP                  pVf)   \        P                  RVP                  4       V ! V4      # \        V4      pVP                  '       g9   \        P                  RVP                  V\        P                  4       V ! V4      # T\        P                  ! R4      \        P                  ! R4      0 Uu0 uF  pV'       g   K  VkK  	  up9   d*   \        P                  RVP                  V4       V ! V4      # V ! V4      p\        VP                  4      pVP                  ;'       dW    VR J;'       dK    \        P                  P!                  V4      ;'       d$    VP#                  VP$                   R24      '       * pV'       EdT   Ve   VP'                  V4       VP)                  4       p	V	e:   V	 F1  p
VP'                  \        P                  P+                  W*4      4       K3  	  EMVP-                  R4      '       dÙ    VP/                  R4      pVP1                  R	R
7      pVP/                  R4      P1                  4        Uu. uF  pV'       g   K  W\9  g   K  VNK  	  up Fo  p\        P                  P+                  W-4      pVP'                  V4       VP'                  V R24       VP'                  V R24       VP'                  V R24       Kq  	  EM#VP4                  '       d   \7        VR7      hVP8                  '       d�   VP'                  V4       \        P                  P;                  V4      ^,          p\        P                  P+                  \        P                  P=                  V4      R4      pVP?                  VRV,           4       EMdVP@                  '       d&   \C        V4       F  pVP'                  V4       K  	  EM-V'       Ed   \E        V4      ;_uu_ 4       p\        P                  PG                  VPI                  4       PK                  4       4      pVPM                  V4      pR R R 4       \        P                  PO                  XV4      '       g   Q RV RX RVP                   RV R2	4       hVP'                  V4       \        P                  P+                  \        P                  P=                  V4      R4      pVP?                  VV4       M\        PQ                  RVV4       VPR                  '       d   \U        4       pM
\W        4       p VPY                  4        Fr  pVP'                  \        P                  P+                  VV4      4       \Z        '       g   K@  VP'                  \        P                  P+                  VV R24      4       Kt  	  R R lpV! VV4       F  pVP'                  V4       K  	  V# u upi   \2         d    . p ELÅi ; iu upi   + '       g   i     ELÂ; i  \2        \\        3 d     Lni ; i)Nz-Not uninstalling %s since it is not installedz1Not uninstalling %s at %s, outside environment %sÚstdlibÚ
platstdlibz<Not uninstalling %s at %s, as it is in the standard library.z	.egg-infoztop_level.txtznamespace_packages.txtF)ÚkeependsrD   rE   rF   rB   zeasy-install.pthz./z	Egg-link z (to z') does not match installed location of z (at Ú)z)Not sure how to uninstall: %s - Check: %sz.batc               ó$   € V ^8„  d   QhRRRRRR/# )r   r@   r   r   r   r    r!   r"   )r#   s   "r$   r%   Ú0UninstallPathSet.from_dist.<locals>.__annotate__=  s+   € ÷ 	Nñ 	NØ"ð	Nàð	Nð (ñ	Nr&   c              3  ó  "  € V P                  4        Fe  pVP                  R 8X  d!   \        WP                  R4       Rj  x€L
  K4  VP                  R8X  g   KG  \        WP                  R4       Rj  x€L
  Kg  	  R#  L= L5i)Úconsole_scriptsFNÚgui_scriptsT)Úiter_entry_pointsÚgroupr,   Úname)r@   r   Úentry_points   && r$   Úiter_scripts_to_removeÚ:UninstallPathSet.from_dist.<locals>.iter_scripts_to_remove=  si   é € ð  $×5Ñ5Ö7�Ø×$Ñ$Ð(9Ô9Ü,¨W×6FÑ6FÈÓN×NÒNØ ×&Ñ&¨-Ö7Ü,¨W×6FÑ6FÈÓM×MÒMó	  8áNáMùs)   ‚>BÁ A>ÁBÁBÁ3B Á4BÂ B)/rH   Úinfo_locationrË   rÌ   Úcanonical_namer   Úlocalrî   rï   Ú	sysconfigÚget_pathr   r  Ú"installed_with_setuptools_egg_infor(   r)   rô   rJ   Úsetuptools_filenamer7   rI   r*   Úis_fileÚ	read_textÚ
splitlinesÚFileNotFoundErrorÚinstalled_by_distutilsr	   Úinstalled_as_eggrK   r_   rü   Úinstalled_with_dist_inforP   Úopenrl   ÚreadlineÚstriprê   ÚsamefilerÍ   Úin_usersiter   r   Úiter_distutils_script_namesr   ÚNotADirectoryError)Úclsr@   Údist_locationr.  Únormalized_dist_locationr‚   Úpaths_to_removeÚdevelop_egg_linkÚsetuptools_flat_installationÚinstalled_filesÚinstalled_fileÚnamespace_packagesÚ
namespacesÚtop_level_pkgr)   Úeasy_install_eggÚeasy_install_pthÚfhÚlink_pointerÚnormalized_link_pointerr   Úscriptr,  Úss   &&                      r$   Ú	from_distÚUninstallPathSet.from_dist¯  sd  € àŸ™ˆØ×*Ñ*ˆØÒ Ü�K‰KØ?Ø×#Ñ#ôñ �t“9Ðä#1°-Ó#@Ð Ø�z�zˆzÜ�K‰KØCØ×#Ñ#Ø(Ü—
‘
ô	ñ �t“9Ðà#ä×(Ò(¨Ó2´I×4FÒ4FÀ|Ó4TÑUó(
áU�Ü÷ ˆAÙUñ(
ô 
ô
 �K‰KØNØ×#Ñ#Ø(ôñ
 �t“9Ðá˜d›)ˆÜ6°t·}±}ÓEÐð ×3Ñ3÷ Sð SØ TÐ)÷Sð Sä—‘—‘˜}Ó-÷Sð Sð
 "×*Ñ*¨d×.FÑ.FÐ-GÀyÐ+QÓRÔRð 	%÷ (Ð'ØÒ(Ø×#Ñ# MÔ2Ø"×8Ñ8Ó:ˆOØÒ*Û&5�NØ#×'Ñ'¬¯©¯©°]Ó(SÖTó '6ð
 —‘˜o×.Ò.ðOØ)-¯©Ð8PÓ)QÐ&ð "4×!>Ñ!>ÈÐ!>Ó!N�Jð "Ÿ^™^¨OÓ<×GÑGÔIó&áI˜Üô àÑ0÷ �AÙIô&�Mô
 Ÿ7™7Ÿ<™<¨ÓE�DØ#×'Ñ'¨Ô-Ø#×'Ñ'¨4¨&°¨Ô5Ø#×'Ñ'¨4¨&°¨Ô6Ø#×'Ñ'¨4¨&°¨Ö6ñ&ùð ×(×(Ð(Ü(°dÔ;Ð;à×"×"Ð"ð ×ÑÐ 8Ô9Ü!Ÿw™wŸ}™}Ð-EÓFÀqÕIÐÜ!Ÿw™wŸ|™|Ü—‘—‘Ð 8Ó9Ø"ó Ðð ×#Ñ#Ð$4°dÐ=MÕ6MÖNà×*×*Ð*Ü,¨TÖ2�Ø×#Ñ# DÖ)ó 3÷ Ðô Ð&×'Ô'¨2Ü!Ÿw™w×/Ñ/°·±³×0CÑ0CÓ0EÓF�Ø*9×*PÑ*PØ ó+Ð'÷ (ô
 —7‘7×#Ñ#Ø'Ð)A÷ò ð ð Ð,Ð-¨U°<°.ð A)Ø)-¯©¨°u¸]¸OÈ1ðNóð ð ×ÑÐ 0Ô1Ü!Ÿw™wŸ|™|Ü—‘—‘Ð 0Ó1Ð3Eó Ðð ×#Ñ#Ð$4°mÕDô �L‰LØ;ØØôð ××ÐÜ"“n‰Gä$Ó&ˆGð	Ø×:Ñ:Ö<�Ø×#Ñ#¤B§G¡G§L¡L°¸&Ó$AÔBß•7Ø#×'Ñ'¬¯©¯©°WÀÀÈ¸oÓ(NÖOñ =õ	Nñ (¨¨gÖ6ˆAØ×Ñ Ö"ñ 7ð ÐùòM(
øôT )ô $Ø!#“Jð$üò&÷H (×'Ð'ûôF "Ô#5Ð6ô 	Ùð	úsV   Ã	
W+ÃW+ÈW0 É
XÉ+XÉ3XÐAX	Ô<AX Ö6X ×0XØ XØ	X	ØX1Ø0X1)rç   rè   rê   rä   ræ   rå   N)FF)rØ   rÙ   rÚ   rÛ   rÜ   r¥   rð   r7   rü   r  r  rÑ   rÇ   ÚclassmethodrU  rÞ   r"   r&   r$   rà   rà   /  sH   † ñõ	Jõ	Hõ.õ&'÷Nõ:=õ8õ#ð ôZó ôZr&   rà   c                  óF   € ] tR tRtR R ltR R ltR R ltR R	 ltR
tR# )rû   iM  c               ó    € V ^8„  d   QhRRRR/# )r   rù   r   r    rž   r"   )r#   s   "r$   r%   Ú UninstallPthEntries.__annotate__N  s   € ÷ 5ñ 5 ð 5¨ñ 5r&   c                	ó>   € Wn         \        4       V n        R V n        R # r5   )Úfiler6   rL   Ú_saved_lines)r¤   rù   s   &&r$   r¥   ÚUninstallPthEntries.__init__N  s   € ØŒ	Ü!$£ˆŒØ04ˆÖr&   c               ó    € V ^8„  d   QhRRRR/# )r   rM   r   r    rž   r"   )r#   s   "r$   r%   rZ  S  s   € ÷  ñ  ˜ð   ñ  r&   c                	ó  € \         P                  P                  V4      p\        '       d?   \         P                  P	                  V4      ^ ,          '       g   VP                  RR4      pV P                  P                  V4       R# )r   Ú\Ú/N)r(   r)   rl   r   Ú
splitdriveÚreplacerL   r7   )r¤   rM   s   &&r$   r7   ÚUninstallPthEntries.addS  sX   € Ü—‘× Ñ  Ó'ˆ÷ ‹7œ2Ÿ7™7×-Ñ-¨eÓ4°Q×7Ô7Ø—M‘M $¨Ó,ˆEØ�‰×Ñ˜Ör&   c               ó   € V ^8„  d   QhRR/# r�   r"   )r#   s   "r$   r%   rZ  b  s   € ÷ !ñ !˜ñ !r&   c                	ó  € \         P                  R V P                  4       \        P                  P                  V P                  4      '       g#   \         P                  RV P                  4       R# \        V P                  R4      ;_uu_ 4       pVP                  4       pW n	        RRR4       \        ;QJ d    R X 4       F  '       g   K   RM	  RM! R X 4       4      '       d   RpMRpV'       dP   VR,          P                  VP                  R	4      4      '       g#   VR,          VP                  R	4      ,           VR&   V P                   F@  p \         P                  R
V4       VP                  WC,           P                  R	4      4       KB  	  \        V P                  R4      ;_uu_ 4       pVP!                  V4       RRR4       R#   + '       g   i     EL1; i  \         d     K   i ; i  + '       g   i     R# ; i)zRemoving pth entries from %s:z.Cannot remove entries from nonexistent file %sNÚrbc              3  ó,   "  € T F
  pR V9   x € K  	  R# 5i)s   
Nr"   )rq   Úlines   & r$   rt   Ú-UninstallPthEntries.remove.<locals>.<genexpr>m  s   é € Ð1©5 4ˆw˜$Ž«5ùs   ‚TFz
Ú
zutf-8zRemoving entry: %sÚwbrZ   )rË   r   r\  r(   r)   rŽ   Úwarningr<  Ú	readlinesr]  r|   rJ   ÚencoderL   r  Ú
ValueErrorÚ
writelines)r¤   rP  ÚlinesÚendlinerM   s   &    r$   r  ÚUninstallPthEntries.removeb  sb  € Ü�‰Ð6¸¿	¹	ÔBô �w‰w�~‰~˜dŸi™i×(Ò(Ü�N‰NÐKÈTÏYÉYÔWÙÜ�$—)‘)˜T×"Ô" bà—L‘L“NˆEØ %Ô÷ #÷ ‹3Ñ1©5Ó1�3�3Š3Ñ1©5Ó1×1Ò1Ø‰GàˆGç˜˜r�×+Ñ+¨G¯N©N¸7Ó,C×DÒDØ˜b�	 G§N¡N°7Ó$;Õ;ˆE�"‰IØ—\”\ˆEðÜ—‘Ð3°UÔ;Ø—‘˜e�o×5Ñ5°gÓ>Ö?ñ "ô �$—)‘)˜T×"Ô" bØ�M‰M˜%Ô ÷ #Ñ"÷# #×"Ð"ûô ô Úðúç"×"Ð"ús*   ÂGÅ<G#Æ3G5ÇG 	Ç#G2Ç1G2Ç5H	c               ó   € V ^8„  d   QhRR/# rÔ   r"   )r#   s   "r$   r%   rZ  }  s   € ÷ ñ ˜$ñ r&   c                	óR  € V P                   f#   \        P                  RV P                  4       R# \        P	                  RV P                  4       \        V P                  R4      ;_uu_ 4       pVP                  V P                   4       R R R 4       R#   + '       g   i     R# ; i)Nz.Cannot roll back changes to %s, none were madeFz!Rolling %s back to previous staterm  T)r]  rË   rÏ   r\  rÍ   r<  rr  )r¤   rP  s   & r$   rÑ   ÚUninstallPthEntries.rollback}  sp   € Ø×ÑÒ$Ü�L‰LÐIÈ4Ï9É9ÔUÙÜ�‰Ð8¸$¿)¹)ÔDÜ�$—)‘)˜T×"Ô" bØ�M‰M˜$×+Ñ+Ô,÷ #á÷ #Ö"áús   Á/BÂB&	)r]  rL   r\  N)	rØ   rÙ   rÚ   rÛ   r¥   r7   r  rÑ   rÞ   r"   r&   r$   rû   rû   M  s   † õ5õ
 õ!÷6ñ r&   rû   )2Ú
__future__r   r<   r(   rî   r1  Úcollections.abcr   r   r   Úimportlib.utilr   Útypingr   Úpip._internal.exceptionsr	   r
   Úpip._internal.locationsr   r   Úpip._internal.metadatar   Úpip._internal.utils.compatr   Úpip._internal.utils.egg_linkr   Úpip._internal.utils.loggingr   r   Úpip._internal.utils.miscr   r   r   r   Úpip._internal.utils.temp_dirr   r   Úpip._internal.utils.virtualenvr   rØ   rË   r,   r>   rP   re   r‹   r™   r›   rà   rû   r"   r&   r$   Ú<module>r†     s�   ðÝ "ã Û 	Û 
Û ß 9Ñ 9Ý ,Ý ç Sß @Ý 3Ý .Ý Dß =ß IÓ Iß MÝ Cá	�8Ó	€õ&õ&ð 	ôó 	ðõBõ0AõD."÷bf!ñ f!÷R[ñ [÷|7ó 7r&   