�
��Vcu c sZ � d Z dZdZdZdZdZdZdZdZdd l Z dd l
Z
dd lZdd lZdd
lT g d�Z
d� Z dd
lmZmZmZ d� Zn# e$ r d� ZY nw xY wd� Zd� Zd� Zd� Zd� Zej j e_ d� Zd� Zd� Z d� Z! ddl"m#Z# n
# e$ r d Z#Y nw xY wd� Z$d� Z%d� Z& ddl"m'Z' d� Z(n# e$ r d� Z(Y nw xY wd � Z) dd!l"m*Z* d"� Z+n
# e$ r e)Z+Y nw xY w dd#l"m,Z,m-Z. d$� Z/d%� Z0d&d'�d(�Z1n
# e$ r e+Z1Y nw xY w e2e
d)� � o e
j3 � � d* d+k Z4d/d,�Z5d-� Z6 dd.l"m7Z8 d S # e$ r Y d S w xY w)0z�Common pathname manipulations, WindowsNT/95 version.
Instead of importing this module directly, import os and refer to this
module as os.path.
�.�..�\z;�/z.;C:\binZnul� N)Z*)&�normcase�isabs�join�
splitdrive�split�splitext�basename�dirnameZcommonprefixZgetsizeZgetmtimeZgetatimeZgetctime�islinkZexists�lexists�isdirZisfile�ismount�
expanduser�
expandvars�normpath�abspath�curdir�pardir�sep�pathsep�defpath�altsep�extsep�devnull�realpath�supports_unicode_filenames�relpathZsamefileZsameopenfileZsamestat�
commonpathc s4 � t | t � � rdS dS )N� \/�\/)�
isinstance�bytes��path� �/usr/lib64/python3.11/ntpath.py�
_get_bothsepsr) # s � ��$���� ��v��u� )�
LCMapStringEx�LOCALE_NAME_INVARIANT�LCMAP_LOWERCASEc s� � t j | � � } | s| S t | t � � rnt j � � }| � |d� � � dd� � } t t t | � � } | � |d� � S t t t | � dd� � � � S )�nNormalize case of pathname.
Makes all characters lowercase and all slashes into backslashes.
Zsurrogateescaper r )�os�fspathr# r$ �sysZgetfilesystemencodingZdecode�replace�_LCMapStringEx�_LOCALE_NAME_INVARIANT�_LCMAP_LOWERCASEZencode)�sZencoding� r( r r 3 s� � �
�I�a�L�L��� ��H��a���� 8��0�2�2�H�����#4�5�5�=�=�c�4�H�H�A��5�/��4� 4�A��8�8�H�&7�8�8�8�!�"8�"2�"#�)�)�C��"6�"6�8� 8�
8r* c s< � t j | � � } t | t � � rLt j t j | � � � dd� � � � � � � S | � dd� � � � � S )r. r r )r/