+
    <jk                     N   R 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 ^ RIHt ^ RIHtHtHt ^ RIHtHtHtHtHtHtHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t& ^ RI'H(t(H)t) ^ RI*H+t+ ^ RI,H-t- ^ R	I.H/t/ ^ R
I0H1t1 ^ RI2H3t3 ^ RI4H5t5H6t6H7t7 ^ RI8H9t9H:t: ^ RI;H<t<H=t= ^ RI>H?t?H@t@ ^ RIAHBtBHCtCHDtDHEtE ^ RIFHGtGHHtHHItIHJtJ ^ RIKHLtL  ! R R]!4      tM]P                  ! ]O4      tP]! R]Q4      tR]$]R]Q]%]S]Q3,          3,          tTR<R R lltUR R ltVR R ltWR R ltXR R ltYR  R! ltZR" R# lt[R$ R% lt\R& R' lt]R( R) lt^R* R+ lt_ ! R, R-4      t` ! R. R/4      ta ! R0 R1]14      tbR2 R3 ltc ! R4 R5]+4      tdR=R6 R7 llte]P                  R8 R9 l4       tgR=R: R; llthR# )>zFSupport for installing and building the "wheel" binary package format.N)urlsafe_b64encode)Message)chainfilterfalsestarmap)IOAnyBinaryIOCallableDict	GeneratorIterableIteratorListNewTypeOptionalProtocolSequenceSetTupleUnioncast)ZipFileZipInfo)ScriptMaker)get_export_entry)canonicalize_name)InstallationError)get_major_minor_version)BaseDistributionFilesystemWheelget_wheel_distribution)DIRECT_URL_METADATA_NAME	DirectUrl)SCHEME_KEYSScheme)adjacent_tmp_filereplace)StreamWrapper
ensure_dir	hash_file	partition)current_umaskis_within_directory2set_extracted_file_to_default_mode_plus_executablezip_item_is_executable)parse_wheelc                   >   a  ] tR t^>t o V 3R lR ltV 3R ltRtV tR# )Filec                   < V ^8  d   QhRR/#    returnN )format__classdict__s   "[/opt/headortail/venv/lib/python3.14/site-packages/pip/_internal/operations/install/wheel.py__annotate__File.__annotate__C   s      d     c                    R # Nr7   selfs   &r:   save	File.saveC   s    r=   c                <   < V ^8  d   Qh/ R;R&   S[ ;R&   S[;R&   # )r5   
RecordPathsrc_record_path	dest_pathchangedstrbool)r8   r9   s   "r:   r;   r<   >   s&     !! N  M r=   r7   N)__name__
__module____qualname____firstlineno__rB   __annotate_func____static_attributes____classdictcell__r9   s   @r:   r2   r2   >   s     
   r=   r2   rE   c                ^    V ^8  d   QhR\         R\        R\        \         \         3,          /# )r5   path	blocksizer6   )rJ   intr   )r8   s   "r:   r;   r;   M   s)     ! ! ! !5c? !r=   c                    \        W4      w  r#R\        VP                  4       4      P                  R4      P	                  R4      ,           pV\        V4      3# )z?Return (encoded_digest, length) for path using hashlib.sha256()zsha256=latin1=)r*   r   digestdecoderstriprJ   )rU   rV   hlengthr[   s   &&   r:   rehashr`   M   sI    $*IA*188:6==hGNNsSSFCK  r=   c                R    V ^8  d   QhR\         R\        \         \        3,          /# )r5   moder6   )rJ   r   r   )r8   s   "r:   r;   r;   T   s"     > > >S#X >r=   c                    RV RRRR/# )zHReturn keyword arguments to properly open a CSV file
in the given mode.
rb   newline encodingutf-8r7   )rb   s   &r:   csv_io_kwargsrh   T   s     D)RW==r=   c                0    V ^8  d   QhR\         R\        /# r5   rU   r6   rI   )r8   s   "r:   r;   r;   [   s      S T r=   c                   \         P                  P                  V 4      '       g   Q h\        V R4      ;_uu_ 4       pVP	                  4       pVP                  R4      '       g    RRR4       R# \        P                  P                  \        P                  ! 4       4      pRV,           \         P                  P                  R4      ,           pVP                  4       pRRR4       \        V R4      ;_uu_ 4       pVP                  X4       VP                  X4       RRR4       R#   + '       g   i     LQ; i  + '       g   i     R# ; i)	zIReplace #!python with #!/path/to/python
Return True if file was changed.
rbs   #!pythonNFs   #!asciiwbT)osrU   isfileopenreadline
startswithsys
executableencodegetfilesystemencodinglinesepreadwrite)rU   script	firstlineexenamerests   &    r:   
fix_scriptr   [   s    
 77>>$	dD		VOO%	##K00 
	 ..''(A(A(CDGObjj&7&7&@@	{{} 
 
dD		VYT 
  
	 
	 s   )D'/A/D':#D:'D7	:E	c                0    V ^8  d   QhR\         R\        /# )r5   metadatar6   )r   rK   )r8   s   "r:   r;   r;   o   s     A AG A Ar=   c                 H    V P                  R R4      P                  4       R8H  # )zRoot-Is-Purelibre   true)getlower)r   s   &r:   wheel_root_is_purelibr   o   s"    <<)2.446&@@r=   c                    V ^8  d   QhR\         R\        \        \        \        3,          \        \        \        3,          3,          /# )r5   distr6   )r   r   r   rJ   )r8   s   "r:   r;   r;   s   s5     ( (* (uT#s(^T#s(^5S/T (r=   c                     / p/ pV P                  4        FY  pVP                  R 8X  d   VP                  WP                  &   K.  VP                  R8X  g   KA  VP                  W#P                  &   K[  	  W3# )console_scriptsgui_scripts)iter_entry_pointsgroupvaluename)r   r   r   entry_points   &   r:   get_entrypointsr   s   so    OK--/ 110;0A0AO,,--/,7,=,=K(()	 0
 ''r=   c                \    V ^8  d   QhR\         \        ,          R\        \        ,          /# )r5   scriptsr6   )r   rJ   r   )r8   s   "r:   r;   r;   ~   s&     E  E x} E # E r=   c           	        V '       g   R# \         P                  ! \        4      pV  FX  p\        P                  P                  V4      p\        P                  P                  V4      pW,          P                  V4       KZ  	  \        P                  P                  RR4      P                  \        P                  4       Uu. uF\  p\        P                  P                  \        P                  P                  V4      4      P                  \        P                  4      NK^  	  ppVP!                  \        P                  P                  \        P                  P                  \        P                  P                  \"        P$                  4      4      4      4       VP'                  4        UU u/ uFJ  w  r0\        P                  P                  \        P                  P                  V4      4      V9  g   KH  W0bKL  	  ppp V'       g   R# . pVP'                  4        F~  w  r9\)        V	4      p
\+        V
4      ^8X  d   RV
^ ,           R2pM8RP-                  RP/                  V
RR 4      R,           V
R,          ,           4      pVP!                  R	V R
V R24       K  	  Rp\+        V4      ^8X  d"   VP!                  VP-                  R4      4       M VP!                  VP-                  R4      4       \0        ;QJ dW    R \        P                  P                  RR4      P                  \        P                  4       4       F  '       g   K   RML	  RMH! R \        P                  P                  RR4      P                  \        P                  4       4       4      pV'       d   RpVP!                  V4       RP/                  V4      # u upi u up pi )zDetermine 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PATHre   zscript 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   L   "   T F  q'       g   K  V^ ,          R8H  x  K  	  R# 5i)    ~Nr7   ).0is   & r:   	<genexpr>4message_about_scripts_not_on_PATH.<locals>.<genexpr>   s       IQ!Is   	$$TFziNOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.
)collectionsdefaultdictsetro   rU   dirnamebasenameaddenvironr   splitpathsepnormcasenormpathr]   sepappendrt   ru   itemssortedlenr8   joinany)r   grouped_by_dirdestfile
parent_dirscript_namer   not_warn_dirswarn_for	msg_linesdir_scriptssorted_scripts
start_textlast_line_fmtwarn_for_tildetilde_warning_msgs   &              r:   !message_about_scripts_not_on_PATHr   ~   s   
  +6*A*A#*FNWW__X.
gg&&x0"&&{3  +11"**==A 	))!,-44RVV<=   
))"''//#..*IJK
 $2#7#7#9%#9J77BGG,,Z89N 	
#9  %
  I#+>>#3
$*;$7~!#">!#4"5S9J)00		."-.8>";MMJ 	:,oj\9PQ	
 $4	C  9~--.>?@--.ABC S ZZ^^FB7==bjjISSS ZZ^^FB7==bjjI N = 	 	*+ 99Yk%s   A"O	/AO9Oc                    V ^8  d   QhR\         \        ,          R\        \        \        \        \        3,          ,          /# )r5   outrowsr6   )r   InstalledCSVRowr   r   rJ   )r8   s   "r:   r;   r;      s1      o&	%S#
r=   c                &    \        R V  4       4      # )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   "   T F  w  rq1V\        V4      3x  K  	  R # 5ir?   rJ   )r   record_pathhash_sizes   &   r:   r   &_normalized_outrows.<locals>.<genexpr>   s!      HO,DKeSY's   )r   )r   s   &r:   _normalized_outrowsr      s    *  HO  r=   c                <    V ^8  d   QhR\         R\        R\        /# )r5   r   lib_dirr6   )rE   rJ   )r8   s   "r:   r;   r;      s!     . .J . . .r=   c                 @    \         P                  P                  W4      # r?   )ro   rU   r   )r   r   s   &&r:   _record_to_fs_pathr      s    77<<--r=   c                <    V ^8  d   QhR\         R\         R\        /# )r5   rU   r   r6   )rJ   rE   )r8   s   "r:   r;   r;      s!     $ $S $3 $: $r=   c                    \         P                  P                  V 4      ^ ,          P                  4       \         P                  P                  V4      ^ ,          P                  4       8X  d    \         P                  P	                  W4      p V P                  \         P                  P                  R4      p \        RV 4      # )r   /rE   )ro   rU   
splitdriver   relpathr'   r   r   )rU   r   s   &&r:   _fs_to_record_pathr      s}     
ww$"((*bgg.@.@.I!.L.R.R.TTwwt-<<S)Dd##r=   c                    V ^8  d   QhR\         \         \        ,          ,          R\        \        \        3,          R\        \        ,          R\         \        ,          R\        R\         \
        ,          /# )r5   old_csv_rows	installedrH   	generatedr   r6   )r   rJ   r   rE   r   r   )r8   s   "r:   r;   r;      sc      tCy/J
*+ _ Cy	
  
/r=   c                <   . pV  F  p\        V4      ^8  d   \        P                  RV4       \        RV^ ,          4      pVP	                  Ww4      pW9   d   \        \        W4      4      w  rM6\        V4      ^8  d
   V^,          MRp	\        V4      ^8  d
   V^,          MRp
VP                  WV
34       K  	  V F.  p\        W4      p\        V4      w  rVP                  WV
34       K0  	  TVP                  4        Uu. uF  qRR3NK	  	  up,           # u upi )zS
:param installed: A map from archive RECORD path to installation RECORD
    path.
z,RECORD line has more than three elements: %srE   re   )
r   loggerwarningr   popr`   r   r   r   values)r   r   rH   r   r   installed_rowsrowold_record_pathnew_record_pathr[   r_   frU   installed_record_paths   &&&&&         r:   get_csv_rows_for_installedr      s    -/Ns8a<NNI3O|SV4#--I%#$6$PQNFF"3x!|SVF"3x!|SVF?@  !!-tV45  ENEUEUEWEW,AB'EW   s   Dc                h    V ^8  d   QhR\         \        \        3,          R\        \        ,          /# )r5   consoler6   )r   rJ   r   )r8   s   "r:   r;   r;     s*     H Hd38n Hc Hr=   c                   V P                  4       p . pV P                  RR4      pV'       d   R\        P                  9  d   VP	                  RV,           4       \        P                  P                  RR4      R8w  d-   VP	                  R\        P                  ^ ,           RV 24       VP	                  R\        4        RV 24       V  Uu. uF$  p\        P                  ! RV4      '       g   K"  VNK&  	  ppV F  pW K  	  V P                  R	R4      pV'       d   R\        P                  9  d   VP	                  R
V,           4       VP	                  R\        4        RV 24       V  Uu. uF$  p\        P                  ! RV4      '       g   K"  VNK&  	  ppV F  pW K  	  VP                  \        RP                  V P                  4       4      4       V# u upi u upi )z_
Given the mapping from entrypoint name to callable, return the relevant
console script specs.
pipNENSUREPIP_OPTIONSzpip = re   
altinstallz = zpip(\d+(\.\d+)?)?$easy_installzeasy_install = zeasy_install-zeasy_install(-\d+\.\d+)?${} = {})copyr   ro   r   r   r   rt   version_infor   rematchextendr   r8   r   )r   scripts_to_generate
pip_scriptkpip_epeasy_install_scripteasy_install_eps   &      r:   get_console_script_specsr     s    llnGB UD)Jbjj0&&x*'<=::>>-r2lB&&S-=-=a-@,AZL'QR""S)@)B(C3zl#ST$KW1F(J!!WKA
 !++nd;bjj0&&'8;N'NO""356c:M9NO	

 
!"((+G"KAAw 	 
 !A
 ! wy'7'7IJ+ L
s   G2G/G G c                   V   a  ] tR tRt o V 3R lR ltV 3R lR ltV 3R lR ltRtV tR	# )
ZipBackedFileiY  c                0   < V ^8  d   QhRS[ RS[RS[RR/# )r5   rF   rG   zip_filer6   N)rE   rJ   r   )r8   r9   s   "r:   r;   ZipBackedFile.__annotate__Z  s-      )69EL	r=   c                8    Wn         W n        W0n        R V n        R# FN)rF   rG   	_zip_filerH   )rA   rF   rG   r   s   &&&&r:   __init__ZipBackedFile.__init__Z  s      /"!r=   c                    < V ^8  d   QhRS[ /# )r5   r6   )r   )r8   r9   s   "r:   r;   r   b  s     < <' <r=   c                L    V P                   P                  V P                  4      # r?   )r   getinforF   r@   s   &r:   _getinfoZipBackedFile._getinfob  s    ~~%%d&:&:;;r=   c                   < V ^8  d   QhRR/# r4   r7   )r8   r9   s   "r:   r;   r   e  s     O Od Or=   c           	        \         P                  P                  V P                  4      '       d!   \         P                  ! V P                  4       V P                  4       p\        V P                  R 4      ;_uu_ 4       pVP                  ^ 8  dZ   V P                  P                  V4      ;_uu_ 4       p\        VP                  R4      p\        P                  ! W2V4       RRR4       RRR4       \        V4      '       d   \        V P                  4       R# R#   + '       g   i     LB; i  + '       g   i     LM; i)rn   N   )ro   rU   existsrG   unlinkr  rq   	file_sizer   minshutilcopyfileobjr/   r.   )rA   zipinfodestr   rV   s   &    r:   rB   ZipBackedFile.savee  s     77>>$..))IIdnn%--/ $..$''4  1$^^((11Q #G$5$5{ CI&&q	: 2 ( "'**>t~~N +	 21 ('s$   >5D.3.D	!D.D+&D..D>	)r   rH   rG   rF   N)	rL   rM   rN   rO   r  r  rB   rQ   rR   rS   s   @r:   r   r   Y  s%      < <O Or=   r   c                   D   a  ] tR tRt o V 3R lR ltV 3R lR ltRtV tR# )
ScriptFilei  c                "   < V ^8  d   QhRRRR/# )r5   filer2   r6   Nr7   )r8   r9   s   "r:   r;   ScriptFile.__annotate__  s      V  r=   c                    Wn         V P                   P                  V n        V P                   P                  V n        R V n        R# r   )_filerF   rG   rH   )rA   r  s   &&r:   r  ScriptFile.__init__  s1    
#zz99--r=   c                   < V ^8  d   QhRR/# r4   r7   )r8   r9   s   "r:   r;   r    s     2 2d 2r=   c                n    V P                   P                  4        \        V P                  4      V n        R # r?   )r  rB   r   rG   rH   r@   s   &r:   rB   ScriptFile.save  s     

!$..1r=   )r  rH   rG   rF   N)rL   rM   rN   rO   r  rB   rQ   rR   rS   s   @r:   r  r    s      2 2r=   r  c                   >   a a ] tR tRt oV3R lV 3R lltRtVtV ;t# )MissingCallableSuffixi  c                $   < V ^8  d   QhRS[ RR/# )r5   r   r6   Nr   )r8   r9   s   "r:   r;   "MissingCallableSuffix.__annotate__  s     
 
C 
D 
r=   c                .   < \         SV `  R V R24       R# )zInvalid script entry point: z - A callable suffix is required. Cf https://packaging.python.org/specifications/entry-points/#use-for-scripts for more information.N)superr  )rA   r   	__class__s   &&r:   r  MissingCallableSuffix.__init__  s!    *;- 8 	
r=   r7   )rL   rM   rN   rO   r  rQ   rR   __classcell__r%  r9   s   @@r:   r   r     s     
 
 
r=   r   c                (    V ^8  d   QhR\         RR/# )r5   specificationr6   Nr   )r8   s   "r:   r;   r;     s     0 0 0 0r=   c                 l    \        V 4      pVe%   VP                  f   \        \        V4      4      hR # R # r?   )r   suffixr   rJ   )r*  entrys   & r:   _raise_for_invalid_entrypointr.    s2    ]+EU\\1#CJ// 2r=   c                   B   a a ] tR tRt oRV3R lV 3R llltRtVtV ;t# )PipScriptMakeri  c                b   < V ^8  d   QhRS[ RS[S[S[ S[3,          ,          RS[S[ ,          /# )r5   r*  optionsr6   )rJ   r   r   r   r   )r8   r9   s   "r:   r;   PipScriptMaker.__annotate__  s6     4 4 4+3DcN+C4	c4r=   c                8   < \        V4       \        SV `	  W4      # r?   )r.  r$  make)rA   r*  r2  r%  s   &&&r:   r5  PipScriptMaker.make  s     	&m4w|M33r=   r7   r?   )rL   rM   rN   rO   r5  rQ   rR   r'  r(  s   @@r:   r0  r0    s     4 4 4r=   r0  c                    V ^8  d   QhR\         R\        R\         R\        R\        R\        R\        \
        ,          R\        R	R
/	# )r5   r   	wheel_zip
wheel_pathscheme	pycompilewarn_script_location
direct_url	requestedr6   N)rJ   r   r%   rK   r   r#   )r8   s   "r:   r;   r;     sr     ^4 ^4
^4^4 ^4 	^4
 ^4 ^4 #^4 ^4 
^4r=   c                  aa:a;a<a=a>a?a@ \        W4      w  r\        V	4      '       d   VP                  o@MVP                  o@/ o?\	        4       o;. p
R*R V;V?V@3R lllpR R lpR V3R llo:R V:3R llpR	 V:V3R
 llpR R lp\        \        \        ,          VP                  4       4      p\        VV4      p\        VV4      w  ppV! VS@4      p\        VV4      pR R lp\        VV4      w  ppV! W4      p\        VV4      p\        VV4      p\        \        S4      \        V 4      4      p\!        V4      w  o<o>R V<V>3R llp\        VV4      p\        VV4      p\        \"        V4      p\        VV4      p\	        4       pV F  p\$        P&                  P)                  VP*                  4      p V V9  d   \-        V 4       VP/                  V 4       VP1                  4        V! VP2                  VP*                  VP4                  4       K  	  R V?V@3R llp!R R lp"V'       EdF   \6        P8                  ! \:        P<                  ! \>        P@                  4      4      ;_uu_ 4       p#\B        PD                  ! 4       ;_uu_ 4        \B        PF                  ! R4       V!! 4        F  p$\H        PJ                  ! V$RRR7      p%V%'       g   K&  V"! V$4      p&\$        P&                  PM                  V&4      '       g   Q h\        RV&PO                  \$        P&                  PP                  R4      4      p'V! V'V&4       K  	  RRR4       RRR4       \R        PU                  X#PW                  4       4       \Y        RVPZ                  4      p(RV(n.        R0V(n/        RV(n0        \c        S<4      p)\e        \g        RPh                  S>Pk                  4       4      4      p*V(Pm                  V)4      p+V
Po                  V+4       V
Po                  V(Pm                  V*RR/4      4       V'       d%   \q        V+4      p,V,e   \R        Ps                  V,4       R\u        4       ( ,          o=\6        Pv                  R V=3R  ll4       p-\$        P&                  Py                  S@V4      p.\$        P&                  Py                  V.R!4      p/V-! V/4      ;_uu_ 4       p0V0P{                  R"4       RRR4       V
P}                  V/4       Ve}   \$        P&                  Py                  V.\~        4      p1V-! V14      ;_uu_ 4       p2V2P{                  VP                  4       P                  R#4      4       RRR4       V
P}                  V14       V'       dP   \$        P&                  Py                  V.R$4      p3\        V3R%4      ;_uu_ 4         RRR4       V
P}                  V34       VP                  R&4      p4\e        \        P                  ! V4P                  4       4      4      p5\        V5S?S;V
S@R'7      p6\$        P&                  Py                  V.R&4      p7V-! V73/ \        R(4      B ;_uu_ 4       p8\        P                  ! \        R)V84      4      p9V9P                  \        V64      4       RRR4       R#   + '       g   i     EL^; i  + '       g   i     ELj; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL?; i  + '       g   i     R# ; i)+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
c                @    V ^8  d   QhR\         R\        R\        RR/# )r5   srcfiler   modifiedr6   N)rE   rJ   rK   )r8   s   "r:   r;   $_install_wheel.<locals>.__annotate__  s,     ! !!'*!6:!	!r=   c                `   < \        VS4      pVSV &   V'       d   SP                  V4       R# R# )z6Map archive RECORD paths to installation RECORD paths.N)r   r   )rA  r   rB  newpathrH   r   r   s   &&& r:   record_installed(_install_wheel.<locals>.record_installed  s/     %Xw7$	'KK  r=   c                0    V ^8  d   QhR\         R\        /# rj   rE   rK   )r8   s   "r:   r;   rC    s     " "* " "r=   c                 $    V P                  R 4      # )r   )endswithrU   s   &r:   is_dir_path#_install_wheel.<locals>.is_dir_path  s    }}S!!r=   c                4    V ^8  d   QhR\         R\         RR/# )r5   dest_dir_pathtarget_pathr6   Nr   )r8   s   "r:   r;   rC    s!       # $ r=   c                 d   < \        W4      '       g   R p\        VP                  SW4      4      hR# )zRThe wheel {!r} has a file {!r} trying to install outside the target directory {!r}N)r-   r   r8   )rP  rQ  messager9  s   && r:   assert_no_path_traversal0_install_wheel.<locals>.assert_no_path_traversal  s:    "=>>5  $z;F  ?r=   c                X    V ^8  d   QhR\         R\        R\        \        .R3,          /# )r5   r   r  r6   r2   )r   rJ   r
   rE   )r8   s   "r:   r;   rC    s0     	% 	%	%!$	%	:,&	'	%r=   c                 "   <a a R  VVV 3R llpV# )c                (    V ^8  d   QhR\         RR/# r5   r   r6   r2   rE   )r8   s   "r:   r;   D_install_wheel.<locals>.root_scheme_file_maker.<locals>.__annotate__  s     	C 	Cz 	Cf 	Cr=   c                    < \         P                  P                  V 4      p\         P                  P                  SV4      pS! SV4       \	        WS4      # r?   )ro   rU   r   r   r   )r   normed_pathrG   rT  r  r   s   &  r:   make_root_scheme_fileM_install_wheel.<locals>.root_scheme_file_maker.<locals>.make_root_scheme_file  sB    ''**;7KT;7I$T95 BBr=   r7   )r   r  r^  rT  s   ff r:   root_scheme_file_maker._install_wheel.<locals>.root_scheme_file_maker  s    	C 	C %$r=   c                X    V ^8  d   QhR\         R\        R\        \        .R3,          /# )r5   r   r:  r6   r2   )r   r%   r
   rE   )r8   s   "r:   r;   rC    s0      %  % %#) %	:,&	' %r=   c                 l   <a a \          Uu/ uF  q"\        W4      bK  	  upoR  VVVV 3R llpV# u upi )c                (    V ^8  d   QhR\         RR/# rY  rZ  )r8   s   "r:   r;   D_install_wheel.<locals>.data_scheme_file_maker.<locals>.__annotate__  s     	C 	Cz 	Cf 	Cr=   c           
        < \         P                  P                  V 4      p VP                  \         P                  P                  ^4      w  r#p S
T,          p\         P                  P                  Yd4      pS	! Yh4       \        YS4      #   \
         d    RS RT : R2p\        T4      hi ; i  \         d7    RP                  \        S
4      4      pRS RT RT : RT R2	p\        T4      hi ; i)	r5   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 ())ro   rU   r   r   r   
ValueErrorr   KeyErrorr   r   r   )r   r]  _
scheme_keydest_subpathrS  scheme_pathvalid_scheme_keysrG   rT  scheme_pathsr9  r   s   &        r:   make_data_scheme_fileM_install_wheel.<locals>.data_scheme_file_maker.<locals>.make_data_scheme_file  s   ''**;7K1.9.?.?Q.O+|
1*:6 [?I$[< BB+  1)*R GM M  (001  1$(IIf\.B$C!1*R
| L!!, 0-.a1  (001s   -B 	B0 !B-0AC1)r$   getattr)r   r:  keyrp  ro  rT  r9  s   f&  @r:   data_scheme_file_maker._install_wheel.<locals>.data_scheme_file_maker  s<     >II[cWV11[I	C 	C6 %$; Js   1c                0    V ^8  d   QhR\         R\        /# rj   rI  )r8   s   "r:   r;   rC    s     7 7* 7 7r=   c                 R    V P                  R ^4      ^ ,          P                  R4      # )r   .data)r   rK  rL  s   &r:   is_data_scheme_path+_install_wheel.<locals>.is_data_scheme_path  s#    zz#q!!$--g66r=   c                0    V ^8  d   QhR\         R\        /# rj   rI  )r8   s   "r:   r;   rC    s     W WJ W4 Wr=   c                     V P                  R ^4      p\        V4      ^8  ;'       d-    V^ ,          P                  R4      ;'       d    V^,          R8H  # )r   rx  r   )r   r   rK  )rU   partss   & r:   is_script_scheme_path-_install_wheel.<locals>.is_script_scheme_path  sH    

3"5zA~VV%("3"3G"<VVqYAVVr=   c                (    V ^8  d   QhRRR\         /# )r5   r  r2   r6   )rK   )r8   s   "r:   r;   rC  +  s     8 8F 8t 8r=   c                   < V P                   p\        P                  P                  V4      pVP	                  4       P                  R 4      '       d   VRR pMXVP	                  4       P                  R4      '       d   VRR pM-VP	                  4       P                  R4      '       d   VRR pMTpVS9   ;'       g    VS9   # )z.exeNz
-script.pyz.pyai)rG   ro   rU   r   r   rK  )r  rU   r   	matchnamer   guis   &   r:   is_entrypoint_wrapper-_install_wheel.<locals>.is_entrypoint_wrapper+  s     ~~ww%::<  ((Sb	IZZ\""<00Tc
IZZ\""6**Sb	IIG#77yC'77r=   c                @    V ^8  d   QhR\         \        RR3,          /# r4   )r   rJ   )r8   s   "r:   r;   rC  N  s     & &9S$_#= &r=   c               3   *  <"   \        \        SP                  4       4      4       Fg  p \        P                  P                  SV 4      p\        P                  P                  V4      '       g   KJ  VP                  R 4      '       g   Kc  Vx  Ki  	  R# 5i)z.pyN)r   r   r   ro   rU   r   rp   rK  )installed_pathfull_installed_pathr   r   s     r:   pyc_source_file_paths-_install_wheel.<locals>.pyc_source_file_pathsN  sk     
 %S)9)9);%<=N"$'',,w"G77>>"566&//66%% >s   BBBc                0    V ^8  d   QhR\         R\         /# rj   r   )r8   s   "r:   r;   rC  [  s     6 6c 6c 6r=   c                @    \         P                  P                  V 4      # )z8Return the path the pyc file would have been written to.)	importlibutilcache_from_sourcerL  s   &r:   pyc_output_path'_install_wheel.<locals>.pyc_output_path[  s    ~~//55r=   ignoreT)forcequietrE   r   Nre   r   r  i  c          	      X    V ^8  d   QhR\         R\        R\        \        RR3,          /# )r5   rU   kwargsr6   N)rJ   r   r   r	   )r8   s   "r:   r;   rC    s-      S C Ihd>R4S r=   c              ;      <"   \        V 3/ VB ;_uu_ 4       pVx  R R R 4       \        P                  ! XP                  S4       \	        VP                  V 4       R #   + '       g   i     LI; i5ir?   )r&   ro   chmodr   r'   )rU   r  r   generated_file_modes   &, r:   _generate_file&_install_wheel.<locals>._generate_file  sK     t.v..!G /
,- /.s   A1AAA1A.	)A1	INSTALLERs   pip
rg   	REQUESTEDrn   RECORD)r   rH   r   r   wzIO[str])F)Lr0   r   purelibplatlibr   r   r   rE   namelistr   r+   mapr   r!   r    r   r   r  ro   rU   r   rG   r)   r   rB   rF   rH   
contextlibredirect_stdoutr(   from_streamrt   stdoutwarningscatch_warningsfilterwarnings
compileallcompile_filer  r'   r   r   debuggetvaluer0  r   clobbervariantsset_moder   listr   r8   r   make_multipler   r   r   r,   contextmanagerr   rz   r   r"   to_jsonrv   rq   	read_textcsvreader
splitlinesr   rh   writer	writerowsr   )Ar   r8  r9  r:  r;  r<  r=  r>  info_dirr   r   rF  rM  r`  rt  ry  paths
file_pathsroot_scheme_pathsdata_scheme_pathsr^  filesr~  other_scheme_pathsscript_scheme_pathsrp  other_scheme_filesdistributionr  script_scheme_filesexisting_parentsr  r   r  r  r  rU   successpyc_pathpyc_record_pathmakerr   gui_scripts_to_generategenerated_console_scriptsmsgr  dest_info_dirinstaller_pathinstaller_filedirect_url_pathdirect_url_filerequested_pathrecord_textrecord_rowsrowsr   record_filer  rT  rH   r   r  r  r   r   sA   &&f&&&&&                                                  @@@@@@@r:   _install_wheelr    s   2 %Y5HX&&.... /1I"uGI! !" 	% 	% %  %D7 j!9#5#5#78E[%0J+45H*+U((29gF 57HIEW /80/++ 39E24FG%+,E *
#$L #<0LGS8 8  +.2+ &&;=PQj*=>%,-Eu WW__T^^4
--z"  ,		--t~~t||L & &6
 y''%%cjj1
 
((**''113D(55d$dSGw#24#8!ww~~h7777*.((*:*:277;;*L+ )(C 4 +
 	V__&'40E EM
 TEN
 EN 37;"79+;+;SYY[#IJ % 3 34G H./U(()@5$-PQ/0IJ?NN3=?"22  GGLL(3M WW\\-=N		'	'>X& 
(^$ '',,}6NOO,,!!*"4"4"6"="=g"FG -) m[A.$'' ((((2Kszz+"8"8":;<K%D '',,}h7K		:}S'9	:	:k DK89,T23	 
;	:s +**
 
 
x 
(	'	' -,, (''$ 
;	:	:sa   +Z&	?Z	,Z	:AZ	=Z&Z:&/[*[";[6Z#	Z&&Z7	:[	[	"[3	6\	c                >    V ^8  d   QhR\         R\        R,          /# )r5   req_descriptionr6   )NNN)rJ   r   )r8   s   "r:   r;   r;     s      0 0s 0y9I/J 0r=   c              #      "    R x  R #   \          d+   pRT  RTP                  ^ ,           2p\        T4      ThR p?ii ; i5i)Nz	For req: z. )r   args)r  erS  s   &  r:   req_error_contextr    sD     0 0o.b<(a/0s   A
 A?%:?Ac                    V ^8  d   QhR\         R\         R\        R\         R\        R\        R\        \        ,          R\        R	R
/	# )r5   r   r9  r:  r  r;  r<  r=  r>  r6   N)rJ   r%   rK   r   r#   )r8   s   "r:   r;   r;     sg      
  	
   #  
r=   c                     \        VR R7      ;_uu_ 4       p\        V4      ;_uu_ 4        \        V VVVVVVVR7       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)T)
allowZip64)r   r8  r9  r:  r;  r<  r=  r>  N)r   r  r  )	r   r9  r:  r  r;  r<  r=  r>  zs	   &&&&&&&& r:   install_wheelr    s^     
	-	-//%#%9%#	 0 
.	-// 
.	-	-s!   A#A	A#A A##A4	)r
  )TTNF)i__doc__r   r  r  r  r  loggingos.pathro   r   r  rt   r  base64r   email.messager   	itertoolsr   r   r   typingr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   zipfiler   r   pip._vendor.distlib.scriptsr   pip._vendor.distlib.utilr   pip._vendor.packaging.utilsr   pip._internal.exceptionsr   pip._internal.locationsr   pip._internal.metadatar   r    r!   pip._internal.models.direct_urlr"   r#   pip._internal.models.schemer$   r%   pip._internal.utils.filesystemr&   r'   pip._internal.utils.miscr(   r)   r*   r+   pip._internal.utils.unpackingr,   r-   r.   r/   pip._internal.utils.wheelr0   r2   	getLoggerrL   r   rJ   rE   rW   r   r`   rh   r   r   r   r   r   r   r   r   r   r   r  r   r.  r0  r  r  r  r  r7   r=   r:   <module>r     sm   L    
    	  
  $ ! 1 1    & % 3 5 9 6 ; 
 P ; E T T  28  
		8	$\3'

CsCx89!>(A(E P4.$@HV#O #OL	2 	2
- 
04[ 4^4B	 0 0 r=   