
    z%iz                        	 d Z dZd ZdZdZdZdZdZddlZddl	Z	ddl
Z
ddlZdd	l g d
Zd Z	 ddlmZmZmZ d Zd Zd Zd Zd Zd Zd Zej:                  j<                  e_        d Zd Z  e!ejD                  d      rd Z#nd Z#d Z$	 ddl%m&Z& d Z'd Z(d Z)	 ddl%m*Z* d  Z+d" Z,	 dd#l%m-Z- d$ Z.	 dd%l%m/Z/m0Z1 d& Z2d' Z3d(d)d*Z4d+Z5d5d,Z6d- Z7	 dd.l%m8Z9 dd/l%m:Z; dd0l%m<Z= dd1l%m>Z? 	 dd2l%m@Z@ d3 ZAy# e$ r d ZY w xY w# e$ r dZ&Y yw xY w# e$ r d! Z+Y tw xY w# e$ r e,Z.Y tw xY w# e$ r e.Z4Y lw xY w# e$ r Y Uw xY w# e$ r d4 ZAY yw xY w)6...\;/z.;C:\binnul    N)*)(normcaseisabsjoin
splitdrive	splitrootsplitsplitextbasenamedirnamecommonprefixgetsizegetmtimegetatimegetctimeislinkexistslexistsisdirisfileismount
expanduser
expandvarsnormpathabspathcurdirpardirseppathsepdefpathaltsepextsepdevnullrealpathsupports_unicode_filenamesrelpathsamefilesameopenfilesamestat
commonpath
isjunctionc                 &    t        | t              ryy)N   \/\/)
isinstancebytespaths    :/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/ntpath.py_get_bothsepsr:   #   s    $    )LCMapStringExLOCALE_NAME_INVARIANTLCMAP_LOWERCASEc                 Z   	 t        j                  |       } | s| S t        | t              r]t	        j
                         }| j                  |d      j                  dd      } t        t        t        |       } | j                  |d      S t        t        t        | j                  dd            S )Nsurrogateescaper   r   )osfspathr5   r6   sysgetfilesystemencodingdecodereplace_LCMapStringEx_LOCALE_NAME_INVARIANT_LCMAP_LOWERCASEencode)sencodings     r9   r
   r
   3   s    	 IIaLHa002H#45==c4HA5/4A88H&788!"8"2"#))C"68 8r;   c                    	 t        j                  |       } t        | t              rFt        j                  t        j
                  |       j                  dd      j                               S | j                  dd      j                         S )Nr   r   )rA   rB   r5   r6   fsencodefsdecoderF   lower)rK   s    r9   r
   r
   F   sg    	 IIaLa;;r{{1~55c4@FFHIIyyd#))++r;   c                     	 t        j                  |       } t        | t              rd}d}d}nd}d}d}| d d j	                  ||      } | j                  |      s| j                  |d      ry	y
)N   \   /s   :\r   r   z:\      TF)rA   rB   r5   r6   rF   
startswith)rK   r$   r'   	colon_seps       r9   r   r   W   sq    )
		!A!U			"1fc"A 	||CALLA6r;   c                 8   t        j                  |       } t        | t              rd}d}d}nd}d}d}	 |s| d d |z    t	        |       \  }}}t        t         j                  |      D ]b  }t	        |      \  }	}
}|
r|	s|s|	}|
}|}|	r/|	|k7  r*|	j                         |j                         k7  r|	}|
}|}N|	}|r|d   |vr||z   }||z   }d |r|s|r|dd  ||z   vr||z   |z   S ||z   |z   S # t        t        t        f$ r t        j                  d	| g|   w xY w)
NrR   r3      :r   r4   :r   r   )rA   rB   r5   r6   r   maprP   	TypeErrorAttributeErrorBytesWarninggenericpath_check_arg_types)r8   pathsr$   sepscolonresult_driveresult_rootresult_pathpp_drivep_rootp_paths               r9   r   r   k   sd   99T?D$!!HsN1:4.k;RYY& 	/A&/l#GVV,#*L$$W4==?l&8&8&::#*L"(K"(K&{2d:)C/%.K+	/. \"#.edlB#%33k)K77~|4 $$VT:E:s   B/C, $C, ,-Dc                 0    	 t        |       \  }}}|||z   fS N)r   )rh   driveroottails       r9   r   r      s(    $ "!E4$+r;   c                     	 t        j                  |       } t        | t              rd}d}d}d}d}n
d}d}d}d	}d
}| j	                  ||      }|d d |k(  r||dd |k(  ri|d d j                         |k(  rdnd}|j                  ||      }|dk(  r| ||fS |j                  ||dz         }	|	dk(  r| ||fS | d |	 | |	|	dz    | |	dz   d  fS || d d | dd  fS |dd |k(  r!|dd |k(  r| d d | dd | dd  fS | d d || dd  fS ||| fS )NrR   rS   rY      \\?\UNC\r;   r   r   rZ   \\?\UNC\ rU         r[   rT   )rA   rB   r5   r6   rF   upperfind)
rh   r$   r'   rd   
unc_prefixemptynormpstartindexindex2s
             r9   r   r      s   	 			!A!U$
#
IIfc"ERayC1: r*j8AaEJJsE*E{%&ZZUQY/F|%&Wf:q
3Qvz{^CC !BQ%12&&	qu	1:Ra5!Aa&!AB%'' Ra5%12&& eQr;   c                     	 t        j                  |       } t        |       }t        |       \  }}} t	        |       }|r| |dz
     |vr|dz  }|r| |dz
     |vr| d | | |d  }}||z   |j                  |      z   |fS NrU   )rA   rB   r:   r   lenrstrip)rh   rc   driheadrp   s          r9   r   r      s    ! 			!ADlGAq!AA
!A#d"	Q !A#d"2A!"$Dq54;;t$$d**r;   c                     t        j                  |       } t        | t              rt	        j
                  | ddd      S t	        j
                  | ddd      S )NrR   rS      .r   r   r   )rA   rB   r5   r6   r`   	_splitextrh   s    r9   r   r     sG    
		!A!U$$QtT::$$Qc377r;   c                      	 t        |       d   S r   r   r   s    r9   r   r     s    38A;r;   c                      	 t        |       d   S )Nr   r   r   s    r9   r   r     s    78A;r;   st_reparse_tagc                     	 	 t        j                  |       }t        |j                  t        j                  k(        S # t        t        t        f$ r Y yw xY wNF)	rA   lstatOSError
ValueErrorr^   boolr   statIO_REPARSE_TAG_MOUNT_POINTr8   sts     r9   r1   r1     sP    /	$B B%%)H)HHII ^4 		s   > AAc                 0    	 t        j                  |        yr   )rA   rB   r7   s    r9   r1   r1   #  s    /
		$r;   c                 \    	 	 t        j                  |       }y# t        t        f$ r Y yw xY w)NFT)rA   r   r   r   r   s     r9   r   r   +  s5    MXXd^  Z  s    ++)_getvolumepathnamec                 @   	 t        j                  |       } t        |       }t        |       } t	        |       \  }}}|r
|d   |v r| S |r|syt
        rL| j                  |      }t        |       j                  |      }|j                         |j                         k(  S y)Nr   TF)rA   rB   r:   r!   r   r   r   casefold)r8   rc   rn   ro   restxys          r9   r   r   A  s    #99T?DD4=D!$E4qT!xDKKd#**40zz|qzz|++r;   c                 :   	 t        j                  |       } t        | t              rd}nd}| j	                  |      s| S dt        |       }}||k  r+| |   t        |       vr|dz  }||k  r| |   t        |       vrdt         j                  v rt         j                  d   }nEdt         j                  vr| S 	 t         j                  d   }t        |t         j                  d         }|dk7  rs| d| }t        |t              rt        j                  |      }t         j                  j                  d      }||k7  r%|t        |      k7  r| S t        t        |      |      }t        | t              rt        j                  |      }|| |d  z   S # t        $ r d}Y w xY w)	N   ~~rU   USERPROFILEHOMEPATH	HOMEDRIVErt   USERNAME)rA   rB   r5   r6   rV   r   r:   environKeyErrorr   rO   getr   r   rN   )r8   tilder   nuserhomern   target_usercurrent_users           r9   r   r   ^  s   0 99T?D$??5!c$iqA
a%DG=#66	Q a%DG=#66 

"::m,2::%	JJ{+E rzz*56Av1Qik5)++k2Kzz~~j1,& x11GH-{;H$;;x(d12h/  	E	s   7F FFc                    	 t        j                  |       } t        | t              rPd| vrd| vr| S dd l}t        |j
                  |j                  z   dz   d      }d}d}d}d}d}t        t         d	d       }nDd
| vrd| vr| S dd l}|j
                  |j                  z   dz   }d}d}d}d}d
}t         j                  }| d d }	d}
t        |       }|
|k  r| |
|
dz    }||k(  r5| |
dz   d  } t        |       }	 | j                  |      }
|	|| d |
dz    z   z  }	n||k(  r| |
dz   |
dz    |k(  r|	|z  }	|
dz  }
n| |
dz   d  } t        |       }	 | j                  |      }
| d |
 }	 |:t        j                  t         j                  t        j                  |               }n||   }|	|z  }	n%||k(  r| |
dz   |
dz    |k(  r|	|z  }	|
dz  }
n| |
dz   |
dz    |k(  rr| |
dz   d  } t        |       }	 | j                  |      }
| d |
 }	 |:t        j                  t         j                  t        j                  |               }n||   }|	|z  }	n| d d }|
dz  }
| |
|
dz    }|r||v r||z  }|
dz  }
| |
|
dz    }|r||v r	 |:t        j                  t         j                  t        j                  |               }n||   }|	|z  }	|r|
dz  }
n|	|z  }	|
dz  }
|
|k  r|	S # t        $ r |	|| z   z  }	|dz
  }
Y &w xY w# t        $ r ||z   |z   }Y jw xY w# t        $ r |	|| z   z  }	|dz
  }
Y Zw xY w# t        $ r ||z   |z   |z   }Y w xY w# t        $ r |	||z   | z   z  }	|dz
  }
Y w xY w# t        $ r ||z   }Y w xY w)N   $   %r   z_-ascii   '   {   }environb$%'{}rU   ru   )rA   rB   r5   r6   stringascii_lettersdigitsgetattrr   r   r}   r   rN   rO   r   )r8   r   varcharsquotepercentbracerbracedollarr   resr}   pathlencvarvalues                  r9   r   r     sM   - 99T?D$tD 0K--=DgN"j$/d?s$K''&--7$>**
r(CE$iG
'/uQw:	
#D$iG$

1q4
+++ '\EAIeai(G3q
E!GH~d)! JJw/E
 v,C8"?$&KK

2;;s;K0L$ME$+CLE 5LC&[EAIeai(F2q
eai	*e3E!GH~d)! JJv.E
 v,C>"?$&KK

2;;s;K0L$ME$+CLE 5LC2Ah
uqy)AM1HCQJEU519-A AM) "BJJr{{37G,H I ' uQJE1HC
W '/X JI  $q4x!$, $ 8 '# 78 " (7T>)C#aKE(@ $ > & 4v => " (6E>D00C#aKE(4   )"SLE)so   4K L AK6 )M  AL* 9AM# K32K36L
LL'&L'*M MM M #M43M4)_path_normpathc                     	 t        j                  |       } t        | t              r5t        j                  t        t        j                  |                   xs dS t        |       xs dS )Nr   r   )rA   rB   r5   r6   rN   r   rO   r7   s    r9   r    r    4  sN    >yydE";;~bkk$.?@AITId#*s*r;   c                    	 t        j                  |       } t        | t              r	d}d}d}d}nd}d}d}d}| j	                  ||      } t        |       \  }}} ||z   }| j                  |      }d	}	|	t        |      k  r_||	   r||	   |k(  r||	= n?||	   |k(  r2|	d	kD  r||	d
z
     |k7  r||	d
z
  |	d
z   = |	d
z  }	n|	d	k(  r|r||	= n|	d
z  }	n|	d
z  }	|	t        |      k  r_|s|s|j                  |       ||j                  |      z   S )NrR   rS   r      ..r   r   r   r   r   rU   )
rA   rB   r5   r6   rF   r   r   r   appendr   )
r8   r$   r'   r"   r#   rn   ro   prefixcompsr   s
             r9   r    r      s6   >yydE"CFFFCFFF||FC(%dOtT

3#e*n8uQx61!HqV#q5U1Q3Z61ac!A#gFA!VaFAQ #e*n eLL ''r;   c                     	 t        j                  |       } t        |       sEt        | t              rt        j
                         }nt        j                         }t        ||       } t        |       S rm   )	rA   rB   r   r5   r6   getcwdbgetcwdr   r    )r8   cwds     r9   _abspath_fallbackr   <  sR     99T?D;dE"**,C))+CCD>r;   )_getfullpathnamec                 n    	 	 t        t        |             S # t        t        f$ r t	        |       cY S w xY wrm   )r   r    r   r   r   r7   s    r9   r!   r!   T  s8    4	+#HTN33$ 	+$T**	+s    44)_getfinalpathnamereadlinkc                 x   d}t               }t        |       |vro|j                  t        |              	 | }t        |       } t	        |       s.t        |      s|} 	 | S t        t        t        |      |             } t        |       |vro| S # t        $ r}|j                  |v rY d }~| S  d }~wt        $ r Y | S w xY w)N)rU   ru   rT             2   C   W   i&  i(  i)  )setr
   add_nt_readlinkr   r   r    r   r   r   winerrorr   )r8   allowed_winerrorseenold_pathexs        r9   _readlink_deepr   a  s     LutnD(HHXd^$#D) T{ "(+'  $D):D$ABD tnD(,   ;;"22
 	  s)   %B B 	B9B)(B))B98B9c                 f   d}| d d }| r	 t        |       } |rt        | |      S | S |S # t        $ r{}|j                  |vr 	 t	        |       }|| k7  r|rt        ||      n|cY d }~S n# t        $ r Y nw xY wt        |       \  } }| r|s
| |z   cY d }~S |rt        ||      n|}Y d }~nd }~ww xY w| r)N)rU   ru   rT   r   r   r   r   5   A   r   r   {      i  i  r   )r   r   r   r   r   r   )r8   r   rp   r   new_pathnames         r9   _getfinalpathname_nonstrictr     s    $ X BQx:(.+/tD$'9T9* )  :;;&66	  .d3H4'7;tHd3I (  #4[
d $;&+/tD$'T':	 sN   ( ( 	B,B'A' B,&B''	A30B'2A33B'B,B''B,F)strictc                   t        |       } t        | t              rId}d}d}t        j                         }t        |       t        t        j                  t                    k(  r7yd}d}d}t        j                         }t        |       t        t              k(  ry| j                  |      }|st        |       st        ||       } 	 t        |       } d	}|sU| j                  |      rD| j                  |      r|| t%        |      d  z   }	n| t%        |      d  }		 t        |	      | k(  r|	} | S | S # t        $ r,}|rt        t        |            d t        |       } Y d }~d }~wt        $ r$}|r |j                   }t#        |       } Y d }~d }~ww xY w# t        $ r}Y d }~| S d }~wt        $ r}|j                   k(  r|	} Y d }~| S d }~ww xY w)
Ns   \\?\rr   s   \\s   \\.\NULz\\?\rs   z\\z\\.\NULr   )r    r5   r6   rA   r   r
   rN   r)   r   rV   r   r   r   r   r   strr   r   r   )
r8   r   r   ry   new_unc_prefixr   
had_prefixinitial_winerrorr   spaths
             r9   r*   r*     s   ~dE"F(J$N**,C~"++g*>!??$F'J#N))+C~'!22#__V,
%+T?D	5$T*D " doof5 z*&c*o.>)??S[\*!$U+t3 D tI  	"
 c"g&D0D>D 	5!{{.t4D		5&      ! ;;"22 D!sB   D, F ,	F5"EF(FF	GG*GGTc                 N   	 t        j                  |       } t        | t              rd}d}d}nd}d}d}||}| st	        d      t        j                  |      }	 t        t        |            }t        t        |             }t        |      \  }}}	t        |      \  }
}}t        |      t        |
      k7  rt	        d|
d	|      |	j                  |      D cg c]  }|s|	 }}|j                  |      D cg c]  }|s|	 }}d
}t        ||      D ]#  \  }}t        |      t        |      k7  r n|dz  }% |gt        |      |z
  z  ||d  z   }|s|S t        | S c c}w c c}w # t        t        t        t        t         f$ r t#        j$                  d| |        w xY w)NrR   r   r   r   r   r   zno path specifiedzpath is on mount z, start on mount r   rU   r,   )rA   rB   r5   r6   r   r!   r    r   r
   r   zipr   r   r]   r^   r_   DeprecationWarningr`   ra   )r8   r|   r$   r"   r#   	start_abspath_absstart_drive_
start_rest
path_drive	path_restr   
start_list	path_listr   e1e2rel_lists                      r9   r,   r,     s   -99T?D$},--IIeEHUO,	8D>*%.y%9"Q
#,X#6 
AyK HZ$88K) * * ",!1!1#!6<A!a<
< ) 4:1Q:	:*i0 	FB|x|+FA	
 8s:q01IabMAMX =: z><AST $$Ye<s>   BE- E#$E#(E- =E(E(	AE- E- #
E- -7F$c           
      b   	 | st        d      t        t        t        j                  |             } t        | d   t              rd}d}d}nd}d}d}	 | D cg c]+  }t        |j                  ||      j                               - }}|D cg c]  \  }}}|j                  |       }}}}t        |D ch c]  \  }}}|
 c}}}      d	k7  rt        d
      t        |D ch c]  \  }}}|
 c}}}      d	k7  rt        d      t        | d   j                  ||            \  }	}
}|j                  |      }|D cg c]  }|s||k7  s| }}|D cg c]  }|D cg c]  }|s||k7  s| c} }}}t        |      }t        |      }t        |      D ]  \  }}|||   k7  s|d | } n |d t        |       }|	|
z   |j                  |      z   S c c}w c c}}}w c c}}}w c c}}}w c c}w c c}w c c}}w # t         t"        f$ r t%        j&                  dg|    w xY w)Nz%commonpath() arg is an empty sequencer   rR   rS   r   r   r   r   rU   z%Can't mix absolute and relative pathszPaths don't have the same driver0   )r   tupler\   rA   rB   r5   r6   r   rF   rP   r   r   minmax	enumerater   r]   r^   r`   ra   )rb   r$   r'   r"   rh   drivesplitsr   r   split_pathsrn   ro   r8   commonr   rK   s1s2r   s                     r9   r0   r0   6  s,   N@AA#bii'(E%(E"JOPQy63!7!=!=!?@PP3>??1aqwws|??--gaA-.!3DEE
 --gaA-.!3>??%eAh&6&6vs&CDtTC#9qQ&[!99DOPq1:aa6k:PPbM 	&DAqBqEz	&
 HSW%Ft|chhv...5 Q?- .
 ::P ~& $$\:E:s   H 0GH G"+H :G)"H )G06AH G7G7G7H 	H&G<.G<4G<8H=2H 0,H H <HH 'H.)_path_isdir)_path_isfile)_path_islink)_path_exists)_path_isdevdrivec                 L    	 	 t        t        |             S # t        $ r Y yw xY wr   )r  r!   r   r7   s    r9   
isdevdriver  |  s+    N	#GDM22 		s    	##c                      	 yr    r7   s    r9   r  r  w  s    Nr;   rm   )Br"   r#   r(   r$   r%   r'   r&   r)   rA   rC   r   r`   __all__r:   _winapir<   rG   r=   rH   r>   rI   r
   ImportErrorr   r   r   r   r   r   r   __doc__r   r   hasattrstat_resultr1   r   ntr   r   r   r   r   r    r   r   r!   r   r   r   r   r   r*   r+   r,   r0   r  r   r  r   r  r   r  r   r  r  r  r;   r9   <module>r$     s   
		

	

 	 
   O!,- -
8H(+b.1r+*8 ((00 
 2>>+,J$%:-zj`.+!P+"+#+]>
(T/b "' <@ " +p.b
	 ()))#o  	,,	,t  ^  #("(#(D   G   Hd  		  s}   C5 D D *D 4D+ D8 +E 5D ?D DDDDD('D(+D54D58E ?E EE