quPiL j d Z dZdZdZdZdZdZdZdZdd l Z dd l Z dd lZdd lZdd lT g dZ 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. e/fd$Z0e/fd%Z1d&d'd(Z2n# e$ r d&d'd)Z2Y nw xY w e3e d* o e j4 d+ d,k Z5d0d-Z6d. Z7 dd/l"m8Z9 d S # e$ r Y d S w xY w)1zCommon pathname manipulations, WindowsNT/95 version. Instead of importing this module directly, import os and refer to this module as os.path. ...\;/z.;C:\binnul N)*)'normcaseisabsjoin splitdrivesplitsplitextbasenamedirnamecommonprefixgetsizegetmtimegetatimegetctimeislinkexistslexistsisdirisfileismount expanduser expandvarsnormpathabspathcurdirpardirseppathsepdefpathaltsepextsepdevnullrealpathsupports_unicode_filenamesrelpathsamefilesameopenfilesamestat commonpath ALLOW_MISSINGc 4 t | t rdS dS )N \/\/) isinstancebytespaths 3/opt/alt/python-internal/lib64/python3.11/ntpath.py _get_bothsepsr9 $ s $ vu ) LCMapStringExLOCALE_NAME_INVARIANTLCMAP_LOWERCASEc 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. surrogateescaper r )osfspathr4 r5 sysgetfilesystemencodingdecodereplace_LCMapStringEx_LOCALE_NAME_INVARIANT_LCMAP_LOWERCASEencode)sencodings r8 r r 4 s IaLL Ha 8022H#455==c4HHA5/4 4A88H&7888!"8"2"#))C"6"68 8 8r: c < t j | } t | t rLt j t j | dd S | dd S )r? r r )rA rB r4 r5 fsencodefsdecoderF lower)rK s r8 r r G sx IaLLa J;r{1~~55c4@@FFHHIIIyyd##))+++r: c t j | } t | t rd}d}d}nd}d}d}| dd || } | | s| |d rd S dS )zTest whether a path is absolute \ /s :\r r z:\N TF)rA rB r4 r5 rF startswith)rK r# r&