a XC?h�?�@sdZdZdZdZdZdZdZdZddlZddl Z ddl Z ddl Z ddl Tgd �Z d d �Z d d �Zdd�Zdd�Zdd�Zdd�Ze jje_dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zdadad$d%�Zd&d'�Zd(d)�Z d*d+�d,d-�Z!d.d/�Z"e j#d0kZ$d5d1d2�Z%d3d4�Z&dS)6�.�..�/�:z /bin:/usr/binNz /dev/null�)�*)'�normcase�isabs�join� splitdrive�split�splitext�basename�dirname� commonprefix�getsize�getmtime�getatime�getctime�islink�exists�lexists�isdir�isfile�ismount� expanduser� expandvars�normpath�abspath�samefile� sameopenfile�samestat�curdir�pardir�sep�pathsep�defpath�altsep�extsep�devnull�realpath�supports_unicode_filenames�relpath� commonpath� ALLOW_MISSINGcCst|t�rdSdSdS)N�/r)� isinstance�bytes��path�r3�./opt/alt/python39/lib64/python3.9/posixpath.py�_get_sep)s r5cCs t�|�S�N��os�fspath)�sr3r3r4r4srcCst�|�}t|�}|�|�Sr6)r8r9r5� startswith)r:r#r3r3r4r<s rc Gs�t�|�}t|�}|}z^|s,|dd�|ttj|�D]8}|�|�rL|}q8|rZ|�|�rd||7}q8|||7}q8Wn.tttfy�t j d|g|�R��Yn0|S)Nrr ) r8r9r5�mapr;�endswith� TypeError�AttributeError� BytesWarning� genericpath�_check_arg_types)�a�pr#r2�br3r3r4r Gs    r cCs`t�|�}t|�}|�|�d}|d|�||d�}}|rX||t|�krX|�|�}||fS�N��r8r9r5�rfind�len�rstrip)rDr#�i�head�tailr3r3r4r ds  r cCs6t�|�}t|t�rd}d}nd}d}t�||d|�S)Nr.�.rr)r8r9r/r0rA� _splitext)rDr#r'r3r3r4r us  r cCst�|�}|dd�|fS�Nrr7)rDr3r3r4r �s r cCs,t�|�}t|�}|�|�d}||d�SrF)r8r9r5rI)rDr#rLr3r3r4r �s r cCsNt�|�}t|�}|�|�d}|d|�}|rJ||t|�krJ|�|�}|SrFrH)rDr#rLrMr3r3r4r�s   rc Cs6zt�|�}Wntttfy(YdS0t�|j�S)NF)r8�lstat�OSError� ValueErrorr?�stat�S_ISLNK�st_mode)r2�str3r3r4r�s rc Cs,zt�|�Wnttfy&YdS0dS)NFT)r8rRrSrTr1r3r3r4r�s rc Cs�zt�|�}Wnttfy&YdS0t�|j�r8dSt|t�rNt |d�}n t |d�}t |�}zt�|�}Wnttfy�YdS0|j }|j }||kr�dS|j }|j }||kr�dSdS)NF�..rT) r8rRrSrTrUrVrWr/r0r r)�st_dev�st_ino)r2�s1�parent�s2�dev1�dev2�ino1�ino2r3r3r4r�s.    rc Cs8t�|�}t|t�rd}nd}|�|�s,|St|�}|�|d�}|dkrPt|�}|dkr�dtjvr�ddl }z|� t� ��j }Wq�t y�|YS0n tjd}nTddl }|d|�}t|t�r�t|d�}z|�|�}Wnt y�|YS0|j }t|t��rt�|�}d}nd}|�|�}|||d��p6|S) N�~�~rGr�HOME�ASCIIr.r)r8r9r/r0r;r5�findrJ�environ�pwd�getpwuid�getuid�pw_dir�KeyError�str�getpwnam�fsencoderK) r2�tilder#rLri�userhome�name�pwent�rootr3r3r4r�sB                rc CsXt�|�}t|t�rVd|vr |Sts:ddl}|�d|j�atj}d}d}t tdd�}n:d|vrb|St s|ddl}|�d|j�a t j}d }d }tj }d}|||�}|s��qT|� d�\}}|� d �} | �|�r�| �|�r�| d d �} z.|du�rt�tj t�| ��} n|| } Wnt�y$|}Yq�0||d�} |d|�| }t|�}|| 7}q�|S) N�$rs\$(\w+|\{[^}]*\})�{�}�environb�$z\$(\w+|\{[^}]*\})�{�}rG�����)r8r9r/r0� _varprogb�re�compilerf�search�getattr�_varprogrh�span�groupr;r=rp�fsdecodermrJ) r2rr��start�endrhrL�m�jrs�valuerNr3r3r4rsN          rc Cs�t�|�}t|t�r&d}d}d}d}nd}d}d}d}||krB|S|�|�}|rp|�|d �rp|�|d �spd }|�|�}g}|D]J}|||fvr�q�||ks�|s�|r�|r�|d |kr�|�|�q�|r�|��q�|}|�|�}|r�|||}|p�|S) Nr.�rOrYr�rr��r}) r8r9r/r0r;r �append�popr ) r2r#�empty�dot�dotdot�initial_slashes�comps� new_comps�compr3r3r4rNsJ    � �  � �    rcCs@t�|�}t|�s8t|t�r&t��}nt��}t||�}t|�Sr6) r8r9rr/r0�getcwdb�getcwdr r)r2�cwdr3r3r4rus    rF)�strictcCs,t�|�}t|dd�||i�\}}t|�SrQ)r8r9� _joinrealpathr)�filenamer�r2�okr3r3r4r)�s r)cCs�t|t�rd}d}d}nd}d}d}tj}|tur8t}n|rBd}nt}d} t|�rb|dd�}|}|�r~|�|�\} } }| rb| |kr�qb| |kr�|r�t |�\}} | |kr�t |||�}qb|}qbt || �} zt� | �} Wn|y�d }Yn0t � | j�}|�s| }qb| |v�r@|| }|du�r qb|�r2t� | �nt | |�d fSd|| <t|t�| �||�\}}|�stt ||�d fS||| <qb|d fS) Nr.rOrYrrrr3rGFT)r/r0r8r�r-�FileNotFoundErrorrSr� partitionr r rRrUrVrWr��readlink)r2�restr��seenr#r!r"r�� ignored_error�maxlinksrs�_�newpathrX�is_linkr�r3r3r4r��sd            r��darwinc Cs�|s td��t�|�}t|t�r.d}d}d}n d}d}d}|durH|}n t�|�}zrdd �t|��|�D�}d d �t|��|�D�}tt||g��}|gt|�|||d�}|s�|WSt |�WSt t t t fy�t�d ||��Yn0dS) Nzno path specifiedrOr.rYrrrcSsg|] }|r|�qSr3r3��.0�xr3r3r4� �r�zrelpath..cSsg|] }|r|�qSr3r3r�r3r3r4r��r�r+)rTr8r9r/r0rr rJrr r>r?r@�DeprecationWarningrArB) r2r�r!r#r"� start_list� path_listrL�rel_listr3r3r4r+�s0    r+c s2|s td��tttj|��}t|dt�r4d�d�nd�d�zćfdd�|D�}zt�fd d �|D��\}Wnty�td �d�Yn0�fd d�|D�}t|�}t |�}|}t |�D]$\}}|||kr�|d|�}q�q�|r�n �dd�}|�� |�WSt t f�y,tjd g|�R��Yn0dS)Nz%commonpath() arg is an empty sequencerr.rOrrcsg|]}|����qSr3)r )r�r2�r#r3r4r� r�zcommonpath..c3s|]}|dd��kVqdSrFr3)r�rDr�r3r4� r�zcommonpath..z%Can't mix absolute and relative pathscsg|]}�fdd�|D��qS)csg|]}|r|�kr|�qSr3r3)r��c�r!r3r4r�r�z)commonpath...r3)r�r:r�r3r4r�r�r,)rT�tupler<r8r9r/r0�set�min�max� enumerater r>r?rArB) �paths� split_pathsrr\r^�commonrLr��prefixr3)r!r#r4r,�s6   r,)N)'r!r"r'r#r$r%r&r(r8�sysrUrA�__all__r5rrr r r rP�__doc__r r rrrrrr�r~rrrr)r��platformr*r+r,r3r3r3r4�sJ        *25' F  )