+
    Žf©j@c  ã                  óP  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHtHtHt ^ RIH t  ^ R	I!H"t"H#t# ^ R
I$H%t%H&t&H't'H(t(H)t) ^ RI*H+t+ ^ RI,H-t- ^ RI.H/t0 ^ RI.H1t1 ^ RI2H3t3H4t4 ^ RI5H6t6 ^ RI7H8t8 ^ RI9H:t: ^ RI;H<t< . R‚Ot=]P|                  ! ]?4      t@](! R4      tA]B]C]D,          ]D]#3,          tE]B]F]F]F3,          tG]B]H]B]HR,          ]HR,          3,          3,          tI]]"] ]D.]%3,          tJ]]"] ]E.]%3,          tKRƒtLR„tMR R ltNR R ltOR R ltPR R ltQR R ltR]:! ^R R!7      R…R" R# ll4       tSR$ R% ltTR& R' ltUR(]U/R) R* lltVR+ R, ltWR†R- R. lltXR/ R0 ltYR1 R2 ltZR3 R4 lt[R5 R6 lt\R7 R8 lt]R9 R: lt^R; R< lt_R= R> lt`R? R@ lta]L3RA RB lltbR‡RD RE lltcRF RG ltdRH RI lteRJ RK ltfRL RM ltg ! RN RO]4      thRP RQ ltiRR RS ltjRˆRT RU lltkRV RW ltlRX RY ltmRZ R[ ltnR\ R] ltoR^ R_ ltpR` Ra ltqRb Rc ltrRd Re ltsRf Rg lttRh Ri ltu]! RCRj7       ! Rk Rl4      4       tvRm Rn ltwRo Rp ltxRq Rr ltyRs Rt ltzRu Rv lt{R‰Rw Rx llt|Ry Rz lt}R{ R| lt~ ! R} R]-4      tR~ R lt€R€ R� lt�R# )Šé    )ÚannotationsN)ÚCallableÚ	GeneratorÚIterableÚIteratorÚMappingÚSequence)Ú	dataclass)Úpartial)ÚStringIO)ÚfilterfalseÚteeÚzip_longest)ÚPath)ÚFunctionTypeÚTracebackType)ÚAnyÚBinaryIOÚTextIOÚTypeVarÚcast)ÚRequirement)ÚBuildBackendHookCaller)Ú__file__)Ú__version__)ÚCommandErrorÚExternallyManagedEnvironment)Úget_major_minor_version)ÚWINDOWS)Úretry)Úrunning_under_virtualenvÚ ConfiguredBuildBackendHookCallerÚTc               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚstr© )Úformats   "ÚS/var/www/html/bestweb/venv/lib/python3.14/site-packages/pip/_internal/utils/misc.pyÚ__annotate__r,   X   s   € ÷ Xñ X˜ñ Xó    c                 óô   € \         P                  P                  \         P                  P                  \        4      R R 4      p \         P                  P                  V 4      p R\         RV  R\        4        R2# )z..zpip z from z	 (python Ú))ÚosÚpathÚjoinÚdirnamer   Úabspathr   r   )Úpip_pkg_dirs    r+   Úget_pip_versionr6   X   sX   € Ü—'‘'—,‘,œrŸw™wŸ™¬xÓ8¸$ÀÓE€KÜ—'‘'—/‘/ +Ó.€Kà”+�˜f [ M°Ô;RÓ;TÐ:UÐUVÐWÐWr-   c               ó   € V ^8„  d   QhRR/# r%   r)   )r*   s   "r+   r,   r,   _   s   € ÷ 5ñ 5˜#ñ 5r-   c                 óâ   € \         P                  ! \        4      P                  4       P                  p V P                  4       '       g   \        V 4      # \        P                  ! V R,          4      # )z¬Get a file to pass to a Python executable, to run the currently-running pip.

This is used to run a pip subprocess, for installing requirements into the build
environment.
z__pip-runner__.py)	Úpathlibr   Úpip_locationÚresolveÚparentÚis_dirr(   r0   Úfsdecode)Úsources    r+   Úget_runnable_pipr@   _   sM   € ô �\Š\œ,Ó'×/Ñ/Ó1×8Ñ8€Fà�=‰=�?Š?ô �6‹{Ðä�;Š;�vÐ 3Õ3Ó4Ð4r-   c               ó    € V ^8„  d   QhRRRR/# )r&   Úpy_version_infoztuple[int, ...]r'   ztuple[int, int, int]r)   )r*   s   "r+   r,   r,   o   s   € ÷ 0ñ 0¨Oð 0Ð@Tñ 0r-   c                ó®   € \        V 4      ^8  d"   V ^\        V 4      ,
          R,          ,          p M\        V 4      ^8”  d
   V R,          p \        RV 4      # )a\  
Convert a tuple of ints representing a Python version to one of length
three.

:param py_version_info: a tuple of ints representing a Python version,
    or None to specify no version. The tuple can have any length.

:return: a tuple of length three if `py_version_info` is non-None.
    Otherwise, return `py_version_info` unchanged (i.e. None).
:Né   NÚVersionInfo)r   )Úlenr   )rB   s   &r+   Únormalize_version_inforG   o   sN   € ô ˆ?Ó˜aÔØ˜A¤ OÓ 4Õ4¸Õ<Õ<‰Ü	ˆ_Ó	 Ô	!Ø)¨"Õ-ˆä�˜Ó/Ð/r-   c               ó    € V ^8„  d   QhRRRR/# )r&   r1   r(   r'   ÚNoner)   )r*   s   "r+   r,   r,   ‚   s   € ÷ ñ �Sð ˜Tñ r-   c                óð   €  \         P                  ! V 4       R#   \         dQ   pTP                  \        P                  8w  d'   TP                  \        P
                  8w  d   h  Rp?R#  Rp?R# Rp?ii ; i)z os.path.makedirs without EEXIST.N)r0   ÚmakedirsÚOSErrorÚerrnoÚEEXISTÚ	ENOTEMPTY)r1   Úes   & r+   Ú
ensure_dirrQ   ‚   sN   € ðÜ
�Š�DÖøÜô à�7‰7”e—l‘lÔ" q§w¡w´%·/±/Ô'AØõ (BÕ"ûðús   ‚ šA5¥?A0Á0A5c               ó   € V ^8„  d   QhRR/# r%   r)   )r*   s   "r+   r,   r,   Œ   s   € ÷ 	ñ 	�#ñ 	r-   c                 óÞ   €  \         P                  P                  \        P                  ^ ,          4      p V R9   d   \        P
                   R2# V #   \        \        \        3 d     R# i ; i)r   z -m pipÚpip)z__main__.pyz-c)	r0   r1   ÚbasenameÚsysÚargvÚ
executableÚAttributeErrorÚ	TypeErrorÚ
IndexError)Úprogs    r+   Úget_progr]   Œ   s_   € ðÜ�w‰w×Ñ¤§¡¨¥Ó,ˆØÐ(Ô(Ü—n‘nÐ% WÐ-Ð-àˆKøÜœI¤zÐ2ô ØÙðús   ‚AA ÁA ÁA,Á+A,g      à?)Ústop_after_delayÚwaitc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r&   Údirr(   Úignore_errorsÚboolÚonexczOnExc | Noner'   rI   r)   )r*   s   "r+   r,   r,   š   s)   € ÷ 
,ñ 
,�ð 
, Dð 
,¸ð 
,ÐQUñ 
,r-   c                óâ   € V'       d   \         pVf   \        p\        \        VR7      p\        P
                  R8¼  d   \        P                  ! WR7       R # \        P                  ! WR7       R # )N)rd   )Úonerror)rD   é   )Ú_onerror_ignoreÚ_onerror_reraiser   Úrmtree_errorhandlerrV   Úversion_infoÚshutilÚrmtree)ra   rb   rd   Úhandlers   &&& r+   rm   rm   ™   sG   € çÜˆØ‚}Ü ˆÜÔ0¸Ô>€GÜ
×Ñ˜7Ô"ä�Š�c×)ä�Š�c×+r-   c               ó    € V ^8„  d   QhRRRR/# ©r&   Ú_argsr   r'   rI   r)   )r*   s   "r+   r,   r,   §   s   € ÷ 	ñ 	˜Cð 	 Dñ 	r-   c                 ó   € R # ©Nr)   ©rq   s   *r+   rh   rh   §   s   € Ùr-   c               ó    € V ^8„  d   QhRRRR/# rp   r)   )r*   s   "r+   r,   r,   «   s   € ÷ 
ñ 
˜Sð 
 Tñ 
r-   c                 ó   € h rs   r)   rt   s   *r+   ri   ri   «   s   € Ø	r-   rd   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r&   Úfuncr   r1   r   Úexc_infozExcInfo | BaseExceptionrd   ÚOnExcr'   rI   r)   )r*   s   "r+   r,   r,   ¯   s:   € ÷ & ñ & Ø
ð& à
ð& ð &ð& ð
 ð& ð 
ñ& r-   c               ó   €  \         P                  ! V4      P                  pT\        P                  ,          '       g8    \         P
                  ! Y\        P                  ,          4        T ! T4       R# \        T\        4      '       g   Tw  rRpT! YT4       R#   \         d     R# i ; i  \         d     LEi ; i  \         d     LVi ; i)a  
`rmtree` error handler to 'force' a file remove (i.e. like `rm -f`).

* If a file is readonly then it's write flag is set and operation is
  retried.

* `onerror` is the original callback from `rmtree(... onerror=onerror)`
  that is chained at the end if the "rm -f" still fails.
N)r0   ÚstatÚst_moderL   ÚS_IWRITEÚchmodÚ
isinstanceÚBaseException)rx   r1   ry   rd   r}   Ú_s   &&&$  r+   rj   rj   ¯   s°   € ð Ü—'’'˜$“-×'Ñ'ˆð
 ”T—]‘]×"Ô"ð
	Ü�HŠH�T¤T§]¡]Õ2Ô3ð
Ù�T”
Ùô �h¤×.Ò.Ø!‰ˆ�QÙ	ˆ$�hÖøô) ô âðûô ô Ùðûô ô 	Ùð	ús5   ‚ B Á +B? Á,B. ÂB+Â*B+Â.B<Â;B<Â?CÃCc               ó    € V ^8„  d   QhRRRR/# )r&   r1   r(   r'   r)   )r*   s   "r+   r,   r,   Ø   s   € ÷ 'ñ '�sð '˜sñ 'r-   c                óÄ   €  \        V 4      P                  \         P                  ! 4       4      p\        P
                  P                  RT4      #   \         d    T u # i ; i)zPGives the display value for a given path, making it relative to cwd
if possible.Ú.)r   Úrelative_toÚcwdÚ
ValueErrorr0   r1   r2   )r1   Úrelatives   & r+   Údisplay_pathrŠ   Ø   sN   € ðÜ˜“:×)Ñ)¬$¯(ª(«*Ó5ˆô �7‰7�<‰<˜˜XÓ&Ð&øô ô àŠðús   ‚-A ÁAÁAc               ó$   € V ^8„  d   QhRRRRRR/# )r&   ra   r(   Úextr'   r)   )r*   s   "r+   r,   r,   ã   s!   € ÷ ñ �Cð ˜cð ¨sñ r-   c                óª   € ^pTp\         P                  P                  W,           4      '       d   V^,          pV\        V4      ,           pKH  W,           # )zXFigure out the name of a directory to back up the given dir to
(adding .bak, .bak2, etc))r0   r1   Úexistsr(   )ra   rŒ   ÚnÚ	extensions   &&  r+   Ú
backup_dirr‘   ã   sA   € ð 	
€AØ€IÜ
�'‰'�.‰.˜�×
)Ò
)Ø	ˆQ�ˆØœ#˜a›&•LŠ	Ø�?Ðr-   c               ó$   € V ^8„  d   QhRRRRRR/# ©r&   Úmessager(   ÚoptionszIterable[str]r'   r)   )r*   s   "r+   r,   r,   î   s!   € ÷ !ñ !˜Sð !¨=ð !¸Sñ !r-   c                ó–   € \         P                  P                  R R4      P                  4        F  pW!9   g   K  Vu # 	  \	        W4      # )ÚPIP_EXISTS_ACTIONÚ )r0   ÚenvironÚgetÚsplitÚask)r”   r•   Úactions   && r+   Úask_path_existsrž   î   s>   € Ü—*‘*—.‘.Ð!4°bÓ9×?Ñ?ÖAˆØÖØŠMñ Bô ˆwÓ Ð r-   c               ó    € V ^8„  d   QhRRRR/# )r&   r”   r(   r'   rI   r)   )r*   s   "r+   r,   r,   õ   s   € ÷ 
ñ 
˜Sð 
 Tñ 
r-   c                ól   € \         P                  P                  R4      '       d   \        RV  24      hR# )z&Raise an error if no input is allowed.ÚPIP_NO_INPUTz5No input was expected ($PIP_NO_INPUT set); question: N)r0   r™   rš   Ú	Exception©r”   s   &r+   Ú_check_no_inputr¤   õ   s1   € ä	‡z�z‡~�~�n×%Ò%ÜØCÀGÀ9ÐMó
ð 	
ñ &r-   c               ó$   € V ^8„  d   QhRRRRRR/# r“   r)   )r*   s   "r+   r,   r,   ý   s!   € ÷ ñ �ð ˜}ð °ñ r-   c                óÔ   €  \        V 4       \        V 4      pVP                  4       P                  4       pW!9  d-   \	        RP                  VRP                  V4      4      4       Kg  V# )z@Ask the message interactively, with the given possible responsesz>Your response ({!r}) was not one of the expected responses: {}z, )r¤   ÚinputÚstripÚlowerÚprintr*   r2   )r”   r•   Úresponses   && r+   rœ   rœ   ý   sZ   € à
Ü˜Ô Ü˜“>ˆØ—>‘>Ó#×)Ñ)Ó+ˆØÔ"Üðß‘V˜H d§i¡i°Ó&8Ó9öð
 ˆOr-   c               ó    € V ^8„  d   QhRRRR/# ©r&   r”   r(   r'   r)   )r*   s   "r+   r,   r,     s   € ÷ ñ �sð ˜sñ r-   c                ó.   € \        V 4       \        V 4      # )zAsk for input interactively.)r¤   r§   r£   s   &r+   Ú	ask_inputr¯     s   € ä�GÔÜ�‹>Ðr-   c               ó    € V ^8„  d   QhRRRR/# r­   r)   )r*   s   "r+   r,   r,     s   € ÷ $ñ $˜#ð $ #ñ $r-   c                óD   € \        V 4       \        P                  ! V 4      # )z!Ask for a password interactively.)r¤   Úgetpassr£   s   &r+   Úask_passwordr³     s   € ä�GÔÜ�?Š?˜7Ó#Ð#r-   c               ó    € V ^8„  d   QhRRRR/# )r&   Úvalr(   r'   Úintr)   )r*   s   "r+   r,   r,     s   € ÷ 9ñ 9�3ð 9˜3ñ 9r-   c                ód   € V P                  4       p V R9   d   ^# V R9   d   ^ # \        RV : 24      h)zäConvert a string representation of truth to true (1) or false (0).

True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values
are 'n', 'no', 'f', 'false', 'off', and '0'.  Raises ValueError if
'val' is anything else.
zinvalid truth value )ÚyÚyesÚtÚtrueÚonÚ1)r�   ÚnoÚfÚfalseÚoffÚ0)r©   rˆ   )rµ   s   &r+   Ú	strtoboolrÃ     s:   € ð �)‰)‹+€CØ
Ð2Ô2ÙØ	Ð5Ô	5ÙäÐ/°©wÐ7Ó8Ð8r-   c               ó    € V ^8„  d   QhRRRR/# )r&   ÚbytesÚfloatr'   r(   r)   )r*   s   "r+   r,   r,   (  s   € ÷ %ñ %�uð % ñ %r-   c                ó´   € V R8”  d   V R,          R ,          R R2# V R8”  d   \        V R ,          4       R2# V R 8”  d   V R,          R R2# \        V 4       R2# )iè  g     @�@z.1fz MBz kBz bytesi@B i'  )r¶   )rÅ   s   &r+   Úformat_sizerÈ   (  sn   € Øˆ{ÔØ˜&•. 4Õ'¨Ð,¨CÐ0Ð0Ø	�Ô	Ü�e˜d•lÓ#Ð$ CÐ(Ð(Ø	�ŒØ˜&•. Ð% SÐ)Ð)ä�e“*�˜VÐ$Ð$r-   c               ó    € V ^8„  d   QhRRRR/# )r&   ÚrowszIterable[Iterable[Any]]r'   ztuple[list[str], list[int]]r)   )r*   s   "r+   r,   r,   3  s   € ÷ ñ Ð*ð Ð/Jñ r-   c           
     ód  € V  Uu. uF  p\        \        \        V4      4      NK  	  p p\        V RR/  Uu. uF  p\	        \        \
        V4      4      NK  	  ppV  Uu. uF:  pRP                  \        \        P                  W4      4      P                  4       NK<  	  ppWC3# u upi u upi u upi )z¨Return a list of formatted rows and a list of column sizes.

For example::

>>> tabulate([['foobar', 2000], [0xdeadbeef]])
(['foobar     2000', '3735928559'], [10, 4])
Ú	fillvaluer˜   Ú )	ÚtupleÚmapr(   r   ÚmaxrF   r2   ÚljustÚrstrip)rÊ   ÚrowÚcolÚsizesÚtables   &    r+   Útabulater×   3  s’   € ñ -1Ó1©D SŒE”#”c˜3“-Ö ©D€DÐ1Ü+6¸Ð+KÈÒ+KÓLÑ+K CŒS””S˜#“ÖÑ+K€EÐLÙFJÓKÁd¸sˆS�X‰X”cœ#Ÿ)™) SÓ0Ó1×8Ñ8Ö:Ád€EÐKØˆ<Ðùò 2ùÚLùÚKs   …"B#¶"B(ÁA B-c               ó    € V ^8„  d   QhRRRR/# ©r&   r1   r(   r'   rc   r)   )r*   s   "r+   r,   r,   A  s   € ÷ ñ ˜Sð  Tñ r-   c                óh  € \         P                  P                  V 4      '       g   R# \         P                  P                  \         P                  P	                  V R4      4      '       d   R# \         P                  P                  \         P                  P	                  V R4      4      '       d   R# R# )a`  Is path is a directory containing pyproject.toml or setup.py?

If pyproject.toml exists, this is a PEP 517 project. Otherwise we look for
a legacy setuptools layout by identifying setup.py. We don't check for the
setup.cfg because using it without setup.py is only available for PEP 517
projects, which are already covered by the pyproject.toml check.
Fzpyproject.tomlTzsetup.py)r0   r1   ÚisdirÚisfiler2   ©r1   s   &r+   Úis_installable_dirrÞ   A  sh   € ô �7‰7�=‰=˜×ÒÙÜ	‡w�w‡~�~”b—g‘g—l‘l 4Ð)9Ó:×;Ò;ÙÜ	‡w�w‡~�~”b—g‘g—l‘l 4¨Ó4×5Ò5ÙÙr-   c               ó$   € V ^8„  d   QhRRRRRR/# )r&   Úfiler   Úsizer¶   r'   zGenerator[bytes, None, None]r)   )r*   s   "r+   r,   r,   R  s$   € ÷ ñ Ø
ðØðà!ñr-   c              #  óN   "  €  V P                  V4      pV'       g   R# Vx € K"  5i)z7Yield pieces of data from a file-like object until EOF.N)Úread)rà   rá   Úchunks   && r+   Úread_chunksrå   R  s"   é € ð Ø—	‘	˜$“ˆßÙØŒùs   ‚%�%Tc               ó$   € V ^8„  d   QhRRRRRR/# )r&   r1   r(   Úresolve_symlinksrc   r'   r)   )r*   s   "r+   r,   r,   ]  s!   € ÷ 
"ñ 
"˜ð 
"°ð 
"Àñ 
"r-   c                ó  € \         P                  P                  V 4      p V'       d!   \         P                  P                  V 4      p M\         P                  P	                  V 4      p \         P                  P                  V 4      # )zF
Convert a path to its canonical, case-normalized, absolute version.

)r0   r1   Ú
expanduserÚrealpathr4   Únormcase)r1   rç   s   &&r+   Únormalize_pathrì   ]  sV   € ô
 �7‰7×Ñ˜dÓ#€DßÜ�w‰w×Ñ Ó%‰ä�w‰w�‰˜tÓ$ˆÜ�7‰7×Ñ˜DÓ!Ð!r-   c               ó    € V ^8„  d   QhRRRR/# )r&   r1   r(   r'   ztuple[str, str]r)   )r*   s   "r+   r,   r,   j  s   € ÷ ñ �3ð ˜?ñ r-   c                ó¤   € \         P                  ! V 4      w  rVP                  4       P                  R4      '       d   VRR V,           pVRR pW3# )z,Like os.path.splitext, but take off .tar tooz.tarNéüÿÿÿ)Ú	posixpathÚsplitextr©   Úendswith)r1   ÚbaserŒ   s   &  r+   rñ   rñ   j  sM   € ä×"Ò" 4Ó(�I€DØ‡z�zƒ|×Ñ˜V×$Ò$Ø�2�3ˆi˜#�oˆØ�C�RˆyˆØˆ9Ðr-   c               ó$   € V ^8„  d   QhRRRRRR/# )r&   Úoldr(   Únewr'   rI   r)   )r*   s   "r+   r,   r,   s  s!   € ÷ ñ �ð ˜3ð  4ñ r-   c                óÆ  € \         P                  P                  V4      w  r#V'       dD   V'       d<   \         P                  P                  V4      '       g   \         P                  ! V4       \
        P                  ! W4       \         P                  P                  V 4      w  r#V'       d$   V'       d    \         P                  ! V4       R# R# R#   \         d     R# i ; i)z7Like os.renames(), but handles renaming across devices.N)	r0   r1   r›   rŽ   rK   rl   ÚmoveÚ
removedirsrL   )rõ   rö   ÚheadÚtails   &&  r+   Úrenamesrü   s  sŒ   € ô —‘—‘˜sÓ#�J€Dß—œRŸW™WŸ^™^¨D×1Ò1Ü
�Š�DÔä
‡K‚K�Ôä—‘—‘˜sÓ#�J€Dß—ð	Ü�MŠM˜$Öñ �tøô ô 	Úð	ús   Â5C ÃC ÃC c               ó    € V ^8„  d   QhRRRR/# rÙ   r)   )r*   s   "r+   r,   r,   „  s   € ÷ 7ñ 7�3ð 7˜4ñ 7r-   c                óv   € \        4       '       g   R# V P                  \        \        P                  4      4      # )zè
Return True if path is within sys.prefix, if we're running in a virtualenv.

If we're not in a virtualenv, all paths are considered "local."

Caution: this function assumes the head of path has been normalized
with normalize_path.
T)r!   Ú
startswithrì   rV   ÚprefixrÝ   s   &r+   Úis_localr  „  s(   € ô $×%Ò%ÙØ�?‰?œ>¬#¯*©*Ó5Ó6Ð6r-   c               ó$   € V ^8„  d   QhRRRRRR/# )r&   Úmsgr   Úargsr'   rI   r)   )r*   s   "r+   r,   r,   ’  s!   € ÷ ñ �cð  #ð ¨$ñ r-   c                ó6   € \         P                  ! V .VO5!   R # rs   )ÚloggerÚinfo)r  r  s   &*r+   Úwrite_outputr  ’  s   € Ü
‡K‚K�Ð�dÖr-   c                  óN   € ] tR tRt$ R]R&   ]R R l4       t]R R l4       tRt	R	# )
ÚStreamWrapperi–  r   Úorig_streamc               ó    € V ^8„  d   QhRRRR/# )r&   r  r   r'   r
  r)   )r*   s   "r+   r,   ÚStreamWrapper.__annotate__š  s   € ÷ ñ  fð °ñ r-   c                	ó    € V ! 4       pWn         V# rs   )r  )Úclsr  Úrets   && r+   Úfrom_streamÚStreamWrapper.from_stream™  s   € á‹eˆØ%ŒØˆ
r-   c               ó   € V ^8„  d   QhRR/# r%   r)   )r*   s   "r+   r,   r  ¢  s   € ÷ )ñ )˜#ñ )r-   c                	ó.   € V P                   P                  # rs   )r  Úencoding©Úselfs   &r+   r  ÚStreamWrapper.encoding¡  s   € à×Ñ×(Ñ(Ð(r-   r)   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Úclassmethodr  Úpropertyr  Ú__static_attributes__r)   r-   r+   r
  r
  –  s.   ‡ ØÓàôó ðð ô)ó ô)r-   r
  c               ó$   € V ^8„  d   QhRRRRRR/# )r&   Ú
sequentialr   Únamedr'   z	type[Any]r)   )r*   s   "r+   r,   r,   §  s!   € ÷ #ñ #�cð # Cð #¨Iñ #r-   c            
     óÆ   € \        \        V \        \        V 4      4      4      3/ VB pVP	                  4        UUu/ uF  w  r4WCbK	  	  pppWRR &   \        RRV4      # u uppi )Úreverse_mappingÚEnumr)   )ÚdictÚzipÚrangerF   ÚitemsÚtype)r"  r#  ÚenumsÚkeyÚvalueÚreverses   *,    r+   Úenumr0  §  s\   € Ü”�Z¤¤s¨:£Ó!7Ó8ÑB¸EÑB€EØ,1¯K©K¬MÔ:©M™j˜cˆuŠz©M€GÑ:Ø&Ð
ÑÜ�˜˜EÓ"Ð"ùó ;s   ¼Ac               ó$   € V ^8„  d   QhRRRRRR/# )r&   Úhostr(   Úportz
int | Noner'   r)   )r*   s   "r+   r,   r,   ®  s!   € ÷ 	ñ 	�sð 	 *ð 	°ñ 	r-   c                ó6   € Vf   V # RV 9   d   RV  R2p V  RV 2# )z&
Build a netloc from a host-port pair
Ú:Ú[Ú]r)   )r2  r3  s   &&r+   Úbuild_netlocr8  ®  s3   € ð ‚|ØˆØ
ˆd„{à�4�&˜ˆ{ˆØˆV�1�T�FÐÐr-   c               ó$   € V ^8„  d   QhRRRRRR/# )r&   Únetlocr(   Úschemer'   r)   )r*   s   "r+   r,   r,   º  s!   € ÷ "ñ " #ð "¨sð "Àñ "r-   c                ód   € V P                  R4      ^8¼  d   RV 9  d   RV 9  d   RV  R2p V RV  2# )z!
Build a full URL from a netloc.
r5  Ú@r6  r7  z://)Úcount)r:  r;  s   &&r+   Úbuild_url_from_netlocr?  º  sA   € ð ‡|�|�CÓ˜AÔ #¨VÔ"3¸À6Ô8Ià�V�H˜A�ˆØˆX�S˜˜Ð!Ð!r-   c               ó    € V ^8„  d   QhRRRR/# )r&   r:  r(   r'   ztuple[str | None, int | None]r)   )r*   s   "r+   r,   r,   Ä  s   € ÷ (ñ (˜ð (Ð!>ñ (r-   c                ó†   € \        V 4      p\        P                  P                  V4      pVP                  VP
                  3# )z*
Return the host-port pair from a netloc.
)r?  ÚurllibÚparseÚurlparseÚhostnamer3  )r:  ÚurlÚparseds   &  r+   Úparse_netlocrH  Ä  s5   € ô   Ó
'€CÜ�\‰\×"Ñ" 3Ó'€FØ�?‰?˜FŸK™KÐ'Ð'r-   c               ó    € V ^8„  d   QhRRRR/# ©r&   r:  r(   r'   ÚNetlocTupler)   )r*   s   "r+   r,   r,   Í  s   € ÷ ñ  3ð ¨;ñ r-   c                ó  € RV 9  d   V R3# V P                  R^4      w  rRpRV9   d   VP                  R^4      w  r2MTRr#\        P                  P	                  V4      pVe    \        P                  P	                  V4      pWV33# )zd
Parse out and remove the auth information from a netloc.

Returns: (netloc, (username, password)).
r=  Nr5  ©NN)Úrsplitr›   rB  rC  Úunquote)r:  ÚauthÚpwÚusers   &   r+   Úsplit_auth_from_netlocrS  Í  sŽ   € ð �&ÔØ�|Ð#Ð#ð
 —=‘=  aÓ(�L€DØ€BØ
ˆd„{ð —:‘:˜c 1Ó%‰ˆˆbà˜ˆbä�<‰<×Ñ Ó%€DØ	‚~Ü�\‰\×!Ñ! "Ó%ˆà˜"�:ÐÐ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      w  p w  rVf   V # Vf   RpRpM!\        P                  P                  V4      pRpV V RV  2# )zÊ
Replace the sensitive data in a netloc with "****", if it exists.

For example:
    - "user:pass@example.com" returns "user:****@example.com"
    - "accesstoken@example.com" returns "****@example.com"
ú****r˜   z:****r=  )rS  rB  rC  Úquote)r:  rR  Úpasswords   &  r+   Úredact_netlocrY  ê  s^   € ô  6°fÓ=Ñ€FÑˆTØ‚|ØˆØÒØˆØ‰ä�|‰|×!Ñ! $Ó'ˆØˆØˆV�H�:˜Q˜v˜hÐ'Ð'r-   c               ó$   € V ^8„  d   QhRRRRRR/# )r&   rF  r(   Útransform_netlocz Callable[[str], tuple[Any, ...]]r'   ztuple[str, NetlocTuple]r)   )r*   s   "r+   r,   r,   þ  s$   € ÷ 3ñ 3Ø	ð3Ø @ð3àñ3r-   c                ó*  € \         P                  P                  V 4      pV! VP                  4      pVP                  V^ ,          VP
                  VP                  VP                  3p\         P                  P                  V4      pV\        RV4      3# )a:  Transform and replace netloc in a url.

transform_netloc is a function taking the netloc and returning a
tuple. The first element of this tuple is the new netloc. The
entire tuple is returned.

Returns a tuple containing the transformed url as item 0 and the
original tuple returned by transform_netloc as item 1.
rK  )
rB  rC  Úurlsplitr:  r;  r1   ÚqueryÚfragmentÚ
urlunsplitr   )rF  r[  ÚpurlÚnetloc_tupleÚ
url_piecesÚsurls   &&    r+   Ú_transform_urlre  þ  sp   € ô �<‰<× Ñ  Ó%€DÙ# D§K¡KÓ0€Là—+‘+˜|¨A�°·	±	¸4¿:¹:ÀtÇ}Á}ÐU€JÜ�<‰<×"Ñ" :Ó.€DØ”�m \Ó2Ð2Ð2r-   c               ó    € V ^8„  d   QhRRRR/# rJ  r)   )r*   s   "r+   r,   r,     s   € ÷ *ñ *˜ð * ñ *r-   c                ó   € \        V 4      # rs   )rS  ©r:  s   &r+   Ú_get_netlocri    s   € Ü! &Ó)Ð)r-   c               ó    € V ^8„  d   QhRRRR/# )r&   r:  r(   r'   z
tuple[str]r)   )r*   s   "r+   r,   r,     s   € ÷ $ñ $˜3ð $ :ñ $r-   c                ó   € \        V 4      3# rs   )rY  rh  s   &r+   Ú_redact_netlocrl    s   € Ü˜&Ó!Ð#Ð#r-   c               ó    € V ^8„  d   QhRRRR/# )r&   rF  r(   r'   z.tuple[str, str, tuple[str | None, str | None]]r)   )r*   s   "r+   r,   r,     s   € ÷ 	*ñ 	*Ø	ð	*à3ñ	*r-   c                ó4   € \        V \        4      w  pw  r#WV3# )zz
Parse a url into separate netloc, auth, and url with no auth.

Returns: (url_without_auth, netloc, (username, password))
©re  ri  )rF  Úurl_without_authr:  rP  s   &   r+   Úsplit_auth_netloc_from_urlrq    s#   € ô (6°c¼;Ó'GÑ$Ð‘n�vØ TÐ)Ð)r-   c               ó    € V ^8„  d   QhRRRR/# ©r&   rF  r(   r'   r)   )r*   s   "r+   r,   r,   &  s   € ÷ /ñ /˜cð / cñ /r-   c                ó0   € \        V \        4      ^ ,          # )z7Return a copy of url with 'username:password@' removed.ro  ©rF  s   &r+   Úremove_auth_from_urlrv  &  s   € ô ˜#œ{Ó+¨AÕ.Ð.r-   c               ó    € V ^8„  d   QhRRRR/# rs  r)   )r*   s   "r+   r,   r,   -  s   € ÷ 2ñ 2˜cð 2 cñ 2r-   c                ó0   € \        V \        4      ^ ,          # )z.Replace the password in a given url with ****.)re  rl  ru  s   &r+   Úredact_auth_from_urlry  -  s   € ä˜#œ~Ó.¨qÕ1Ð1r-   c               ó    € V ^8„  d   QhRRRR/# )r&   Úreqr   r'   r(   r)   )r*   s   "r+   r,   r,   2  s   € ÷ Dñ D kð D°cñ Dr-   c                ó¬   € V P                   '       g   \        V 4      # \        V 4      P                  V P                   \        V P                   4      4      # )z:Replace the password in a given requirement url with ****.)rF  r(   Úreplacery  )r{  s   &r+   Úredact_auth_from_requirementr~  2  s9   € à�7�7ˆ7Ü�3‹xˆÜˆs‹8×Ñ˜CŸG™GÔ%9¸#¿'¹'Ó%BÓCÐCr-   )Úfrozenc                  óT   € ] tR tRt$ R]R&   R]R&   R R ltR R ltR	 R
 ltRtRt	R# )Ú
HiddenTexti9  r(   ÚsecretÚredactedc               ó   € V ^8„  d   QhRR/# r%   r)   )r*   s   "r+   r,   ÚHiddenText.__annotate__>  s   € ÷ -ñ -˜#ñ -r-   c                	ó"   € R \        V 4      : R2# )z<HiddenText Ú>)r(   r  s   &r+   Ú__repr__ÚHiddenText.__repr__>  s   € Øœc $›i™]¨!Ð,Ð,r-   c               ó   € V ^8„  d   QhRR/# r%   r)   )r*   s   "r+   r,   r…  A  s   € ÷ ñ ˜ñ r-   c                	ó   € V P                   # rs   ©rƒ  r  s   &r+   Ú__str__ÚHiddenText.__str__A  s   € Ø�}‰}Ðr-   c               ó    € V ^8„  d   QhRRRR/# )r&   ÚotherÚobjectr'   rc   r)   )r*   s   "r+   r,   r…  D  s   € ÷ ñ ˜Fð  tñ r-   c                	óp   € \        V 4      \        V4      J d   V P                  VP                  8H  # \        # rs   )r+  r‚  ÚNotImplemented)r  r�  s   &&r+   Ú__eq__ÚHiddenText.__eq__D  s-   € ä�‹:œ˜e›Ó$ð —;‘; %§,¡,Ñ.Ð.ÜÐr-   Nr)   )
r  r  r  r  r  rˆ  r�  r”  Ú__hash__r   r)   r-   r+   r�  r�  9  s"   ‡ àƒKØƒMõ-õõð „Hr-   r�  c               ó    € V ^8„  d   QhRRRR/# )r&   r.  r(   r'   r�  r)   )r*   s   "r+   r,   r,   R  s   € ÷ .ñ .�cð .˜jñ .r-   c                ó   € \        V R R7      # )rV  rŒ  )r�  )r.  s   &r+   Ú
hide_valuer™  R  s   € Ü�e fÔ-Ð-r-   c               ó    € V ^8„  d   QhRRRR/# )r&   rF  r(   r'   r�  r)   )r*   s   "r+   r,   r,   V  s   € ÷ .ñ .�#ð .˜*ñ .r-   c                ó0   € \        V 4      p\        WR 7      # )rŒ  )ry  r�  )rF  rƒ  s   & r+   Úhide_urlrœ  V  s   € Ü# CÓ(€HÜ�cÔ-Ð-r-   c               ó    € V ^8„  d   QhRRRR/# )r&   Úmodifying_piprc   r'   rI   r)   )r*   s   "r+   r,   r,   [  s   € ÷ 
ñ 
¸Dð 
ÀTñ 
r-   c                ó  € RR\         P                  P                   2R\         P                  P                   R\         P                  P                   2.pT ;'       dF    \        ;'       d8    \
        P                  P                  \         P                  ^ ,          4      V9   pV'       dY   \         P                  RR.\         P                  R,          ,           p\        RP                  RP                  V4      4      4      hR# )z„Protection of pip.exe from modification on Windows

On Windows, any operation modifying pip should be run as:
    python -m pip ...
rT   r…   z-m:é   NNz3To modify pip, please run the following command:
{}rÍ   N)rV   rk   ÚmajorÚminorr   r0   r1   rU   rW   rX   r   r*   r2   )rž  Ú	pip_namesÚshould_show_use_python_msgÚnew_commands   &   r+   Ú(protect_pip_from_modification_on_windowsr¦  [  sÓ   € ð 	Ø
Œc×Ñ×$Ñ$Ð%Ð&Ø
Œc×Ñ×$Ñ$Ð% Q¤s×'7Ñ'7×'=Ñ'=Ð&>Ð?ð€Ið 	×PÐPœ'×PÐP¤b§g¡g×&6Ñ&6´s·x±xÀµ{Ó&CÀyÑ&Pð ÷ "Ü—~‘~ t¨UÐ3´c·h±h¸rµlÕBˆÜØB×IÑIØ—‘˜Ó%óó
ð 	
ñ "r-   c               ó   € V ^8„  d   QhRR/# ©r&   r'   rI   r)   )r*   s   "r+   r,   r,   u  s   € ÷ ;ñ ; $ñ ;r-   c                 ó  € \        4       '       d   R# \        P                  P                  \        P
                  ! R4      R4      p \        P                  P                  V 4      '       g   R# \        P                  ! V 4      h)zÛCheck whether the current environment is externally managed.

If the ``EXTERNALLY-MANAGED`` config file is found, the current environment
is considered externally managed, and an ExternallyManagedEnvironment is
raised.
NÚstdlibzEXTERNALLY-MANAGED)	r!   r0   r1   r2   Ú	sysconfigÚget_pathrÜ   r   Úfrom_config)Úmarkers    r+   Úcheck_externally_managedr¯  u  sW   € ô  ×!Ò!ÙÜ�W‰W�\‰\œ)×,Ò,¨XÓ6Ð8LÓM€FÜ�7‰7�>‰>˜&×!Ò!ÙÜ
&×
2Ò
2°6Ó
:Ð:r-   c               ó   € V ^8„  d   QhRR/# ©r&   r'   rc   r)   )r*   s   "r+   r,   r,   „  s   € ÷ 8ñ 8 ñ 8r-   c                 ór   € \         P                  RJ;'       d    \         P                  P                  4       # )zIs this console interactive?N)rV   ÚstdinÚisattyr)   r-   r+   Úis_console_interactiverµ  „  s&   € ä�9‰9˜DÐ ×7Ð7¤S§Y¡Y×%5Ñ%5Ó%7Ð7r-   c               ó$   € V ^8„  d   QhRRRRRR/# )r&   r1   r(   Ú	blocksizer¶   r'   ztuple[Any, int]r)   )r*   s   "r+   r,   r,   ‰  s!   € ÷ 	ñ 	�Cð 	 Cð 	°oñ 	r-   c                ó  € \         P                  ! 4       p^ p\        V R4      ;_uu_ 4       p\        WAR7       F&  pV\	        V4      ,          pVP                  V4       K(  	  RRR4       W#3#   + '       g   i     Y#3# ; i)z5Return (hash, length) for path using hashlib.sha256()Úrb)rá   N)ÚhashlibÚsha256Úopenrå   rF   Úupdate)r1   r·  ÚhÚlengthr¿   Úblocks   &&    r+   Ú	hash_filerÁ  ‰  sn   € ô 	�ŠÓ€AØ€FÜ	ˆd�D×	Ô	˜QÜ  ×3ˆEØ”c˜%“jÕ ˆFØ�H‰H�UŽOñ 4÷ 
ð ˆ9Ð÷	 
Ö	ð ˆ9Ðús   ¬7A.Á.B 	c               ó    € V ^8„  d   QhRRRR/# )r&   ÚiterablezIterable[Any]r'   zIterator[tuple[Any, Any]]r)   )r*   s   "r+   r,   r,   •  s   € ÷ +ñ +�}ð +Ð)Bñ +r-   c                ó.   € \        V 4      p \        W 4      # )zR
Return paired elements.

For example:
    s -> (s0, s1), (s2, s3), (s4, s5), ...
)Úiterr   )rÃ  s   &r+   ÚpairwiserÆ  •  s   € ô �H‹~€HÜ�xÓ*Ð*r-   c               ó$   € V ^8„  d   QhRRRRRR/# )r&   ÚpredzCallable[[T], bool]rÃ  zIterable[T]r'   ztuple[Iterable[T], Iterable[T]]r)   )r*   s   "r+   r,   r,      s$   € ÷ 
3ñ 
3Ø
ð
3Ø)4ð
3à$ñ
3r-   c                óH   € \        V4      w  r#\        W4      \        W4      3# )z‘
Use a predicate to partition entries into false entries and true entries,
like

    partition(is_odd, range(10)) --> 0 2 4 6 8   and  1 3 5 7 9
)r   r   Úfilter)rÈ  rÃ  Út1Út2s   &&  r+   Ú	partitionrÍ     s$   € ô �‹]�F€BÜ�tÓ ¤&¨Ó"2Ð2Ð2r-   c                  óâ   a € ] tR tRtRR V 3R llltRR V 3R llltRR V 3R llltRR V 3R	 llltRR
 V 3R llltRR V 3R lllt	RR V 3R lllt
RR V 3R llltRR V 3R llltRtV ;t# )r"   i­  c               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R/# )r&   Úconfig_holderr   Ú
source_dirr(   Úbuild_backendÚbackend_pathú
str | NoneÚrunnerzCallable[..., None] | NoneÚpython_executabler)   )r*   s   "r+   r,   Ú-ConfiguredBuildBackendHookCaller.__annotate__®  sF   € ÷ +ñ +àð+ð ð+ð ð	+ð
 !ð+ð +ð+ð &ñ+r-   c                	ó6   <€ \         SV `  W#WEV4       Wn        R # rs   )ÚsuperÚ__init__rÐ  )r  rÐ  rÑ  rÒ  rÓ  rÕ  rÖ  Ú	__class__s   &&&&&&&€r+   rÚ  Ú)ConfiguredBuildBackendHookCaller.__init__®  s"   ø€ ô 	‰ÑØ |Ð=Nô	
ð +Ör-   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©r&   Úwheel_directoryr(   Úconfig_settingsúMapping[str, Any] | NoneÚmetadata_directoryrÔ  r'   r)   )r*   s   "r+   r,   r×  ¼  ó2   € ÷ 	
ñ 	
àð	
ð 2ð	
ð 'ð		
ð
 
ñ	
r-   c                	óR   <€ V P                   P                  p\        SV `  WVR 7      # ©)rà  râ  )rÐ  rà  rÙ  Úbuild_wheel©r  rß  rà  râ  ÚcsrÛ  s   &&&& €r+   ræ  Ú,ConfiguredBuildBackendHookCaller.build_wheel¼  s3   ø€ ð ×Ñ×/Ñ/ˆÜ‰wÑ"ØÐDVð #ó 
ð 	
r-   c               ó$   € V ^8„  d   QhRRRRRR/# )r&   Úsdist_directoryr(   rà  rá  r'   r)   )r*   s   "r+   r,   r×  Ç  s-   € ÷ Hñ HàðHð 2ðHð 
ñ	Hr-   c                	óP   <€ V P                   P                  p\        SV `  WR 7      # ©)rà  )rÐ  rà  rÙ  Úbuild_sdist)r  rë  rà  rè  rÛ  s   &&& €r+   rî  Ú,ConfiguredBuildBackendHookCaller.build_sdistÇ  s)   ø€ ð
 ×Ñ×/Ñ/ˆÜ‰wÑ" ?Ð"ÓGÐGr-   c               ó(   € V ^8„  d   QhRRRRRRRR/# rÞ  r)   )r*   s   "r+   r,   r×  Ï  rã  r-   c                	óR   <€ V P                   P                  p\        SV `  WVR 7      # rå  )rÐ  rà  rÙ  Úbuild_editablerç  s   &&&& €r+   rò  Ú/ConfiguredBuildBackendHookCaller.build_editableÏ  s3   ø€ ð ×Ñ×/Ñ/ˆÜ‰wÑ%ØÐDVð &ó 
ð 	
r-   c               ó    € V ^8„  d   QhRRRR/# ©r&   rà  rá  r'   zSequence[str]r)   )r*   s   "r+   r,   r×  Ú  ó    € ÷ Hñ HØ7ðHà	ñHr-   c                	óP   <€ V P                   P                  p\        SV `  VR 7      # rí  )rÐ  rà  rÙ  Úget_requires_for_build_wheel©r  rà  rè  rÛ  s   && €r+   rø  Ú=ConfiguredBuildBackendHookCaller.get_requires_for_build_wheelÚ  ó)   ø€ ð ×Ñ×/Ñ/ˆÜ‰wÑ3ÀBÐ3ÓGÐGr-   c               ó    € V ^8„  d   QhRRRR/# rõ  r)   )r*   s   "r+   r,   r×  à  rö  r-   c                	óP   <€ V P                   P                  p\        SV `  VR 7      # rí  )rÐ  rà  rÙ  Úget_requires_for_build_sdistrù  s   && €r+   rþ  Ú=ConfiguredBuildBackendHookCaller.get_requires_for_build_sdistà  rû  r-   c               ó    € V ^8„  d   QhRRRR/# rõ  r)   )r*   s   "r+   r,   r×  æ  s    € ÷ Kñ KØ7ðKà	ñKr-   c                	óP   <€ V P                   P                  p\        SV `  VR 7      # rí  )rÐ  rà  rÙ  Úget_requires_for_build_editablerù  s   && €r+   r  Ú@ConfiguredBuildBackendHookCaller.get_requires_for_build_editableæ  s)   ø€ ð ×Ñ×/Ñ/ˆÜ‰wÑ6ÀrÐ6ÓJÐJr-   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r&   râ  r(   rà  rá  Ú_allow_fallbackrc   r'   r)   )r*   s   "r+   r,   r×  ì  s2   € ÷ 
ñ 
àð
ð 2ð
ð ð	
ð
 
ñ
r-   c                	óT   <€ V P                   P                  p\        SV `  VVVR 7      # ©)râ  rà  r  )rÐ  rà  rÙ  Ú prepare_metadata_for_build_wheel©r  râ  rà  r  rè  rÛ  s   &&&& €r+   r  ÚAConfiguredBuildBackendHookCaller.prepare_metadata_for_build_wheelì  s6   ø€ ð ×Ñ×/Ñ/ˆÜ‰wÑ7Ø1ØØ+ð 8ó 
ð 	
r-   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r&   râ  r(   rà  rá  r  rc   r'   rÔ  r)   )r*   s   "r+   r,   r×  ù  s2   € ÷ 
ñ 
àð
ð 2ð
ð ð	
ð
 
ñ
r-   c                	óT   <€ V P                   P                  p\        SV `  VVVR 7      # r  )rÐ  rà  rÙ  Ú#prepare_metadata_for_build_editabler	  s   &&&& €r+   r  ÚDConfiguredBuildBackendHookCaller.prepare_metadata_for_build_editableù  s6   ø€ ð ×Ñ×/Ñ/ˆÜ‰wÑ:Ø1ØØ+ð ;ó 
ð 	
r-   )rÐ  )NNNrM  rs   )NT)r  r  r  r  rÚ  ræ  rî  rò  rø  rþ  r  r  r  r   Ú__classcell__)rÛ  s   @r+   r"   r"   ­  sj   ø† ÷+ò +÷	
ò 	
÷Hò H÷	
ò 	
÷Hò H÷Hò H÷Kò K÷
ò 
÷
÷ 
ð 
r-   c               ó   € V ^8„  d   QhRR/# r¨  r)   )r*   s   "r+   r,   r,     s   € ÷ ñ ˜Tñ r-   c                 ó  € \        4       '       d   R# \        \        R4      '       g   R# \        P                  R8X  g   \        P                  R8X  d   R# \        P
                  ! 4       ^ 8w  d   R# \        P                  R4       R# )zìOutput a warning for sudo users on Unix.

In a virtual environment, sudo pip still writes to virtualenv.
On Windows, users may run pip as Administrator without issues.
This warning only applies to Unix root users outside of virtualenv.
NÚgetuidÚwin32Úcygwinab  Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.)r!   Úhasattrr0   rV   Úplatformr  r  Úwarningr)   r-   r+   Úwarn_if_run_as_rootr    s^   € ô  ×!Ò!ÙÜ”2�x× Ò Ùô ‡|�|�wÔ¤#§,¡,°(Ô":Ùä	‡y‚yƒ{�aÔÙä
‡N�Nð	)ör-   c               ó   € V ^8„  d   QhRR/# r±  r)   )r*   s   "r+   r,   r,   (  s   € ÷ Hñ H�tñ Hr-   c                 óz   € \         ;QJ d     R \         4       F  '       g   K   R# 	  R# ! R \         4       4      # )z7
Return whether it looks like pip is running under CI.
c              3  óF   "  € T F  q\         P                  9   x € K  	  R # 5irs   )r0   r™   )Ú.0Únames   & r+   Ú	<genexpr>Ú looks_like_ci.<locals>.<genexpr>/  s   é € ÐGÑ.F d”r—z‘zÖ!Ó.Fùs   ‚!TF)ÚanyÚCI_ENVIRONMENT_VARIABLESr)   r-   r+   Úlooks_like_cir"  (  s/   € ÷ ‹3ÑGÕ.FÓG�3Œ3ÐGŠ3ÐGˆ3ÑGÕ.FÓGÓGÐGr-   )rm   rŠ   r‘   rœ   rñ   rÈ   rÞ   rì   rü   r]   rQ   rv  r¯  r"  r"   é   )ÚBUILD_BUILDIDÚBUILD_IDÚCIÚ	PIP_IS_CI)FN)z.bak)T)Úhttps)r#  )‚Ú
__future__r   rM   r²   rº  Úloggingr0   r9   rð   rl   r|   rV   r«  Úurllib.parserB  Úcollections.abcr   r   r   r   r   r	   Údataclassesr
   Ú	functoolsr   Úior   Ú	itertoolsr   r   r   r   Útypesr   r   Útypingr   r   r   r   r   Ú"pip._vendor.packaging.requirementsr   Úpip._vendor.pyproject_hooksr   rT   r   r:   r   Úpip._internal.exceptionsr   r   Úpip._internal.locationsr   Úpip._internal.utils.compatr   Úpip._internal.utils.retryr    Úpip._internal.utils.virtualenvr!   Ú__all__Ú	getLoggerr  r  r#   rÎ   r+  r�   ÚExcInfor¶   rE   r(   rK  rz   ÚOnErrÚFILE_CHUNK_SIZEr!  r6   r@   rG   rQ   r]   rm   rh   ri   rj   rŠ   r‘   rž   r¤   rœ   r¯   r³   rÃ   rÈ   r×   rÞ   rå   rì   rñ   rü   r  r  r
  r0  r8  r?  rH  rS  rY  re  ri  rl  rq  rv  ry  r~  r�  r™  rœ  r¦  r¯  rµ  rÁ  rÆ  rÍ  r"   r  r"  r)   r-   r+   Ú<module>r?     si  ðÝ "ã Û Û Û Û 	Û Û Û Û Û 
Û Û ß V× VÝ !Ý Ý ß 3Ñ 3Ý ß -÷õ õ ;Ý >å (Ý ß OÝ ;Ý .Ý +Ý Cò€ð$ 
×	Ò	˜8Ó	$€áˆCƒL€Ø
��]Õ# ]°MÐAÕ
B€Ø�C˜˜c�MÕ"€Ø�C˜˜s T�z¨3°­:Ð5Õ6Ð6Õ7€Ø�,  mÐ4°cÐ9Õ:€Ø�,  gÐ.°Ð3Õ4€à€ð	Ð õXõ5õ 0õ&õ	ñ ˜ Ô$ö
,ó %ð
,õ	õ
ð& ð
 $÷& õR'÷õ!õ
õõõ$õ9õ %õõð$ !0÷÷
"õõõ"7õô)�Hô )õ"#õ	÷"õ(õõ:(õ(3õ(*õ$õ	*õ/õ2õ
Dñ �$Ô÷ð ó ðõ0.õ.õ

õ4;õ8÷
	õ+õ
3ôW
Ð'=ô W
õt÷BHr-   