grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026+ j=0*õ>_¾ãó0€RtRtRtRtRtRtRtRtRt^RI t ^RI t ^RI t ^RI t ^RI t ^RI 5.R NR NR NR NR NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NtR3tR4tR5tR6tR7tR8t] P*P]nR9t^R:IHtR<tR=tR>tR?tR@tRs Rs!RAt"^RBIH#t$RDt%RERF/RGlt&] PNRH8Ht(RKRIlt)RJt*R# ]dR;tLKi;i ]dRCt$L?i;i)LaÙCommon operations on Posix pathnames. Instead of importing this module directly, import os and refer to this module as os.path. The "os.path" name is an alias for this module on Posix systems; on other systems (e.g. Windows), os.path provides the same operations in a manner specific to that platform, and is an alias to another module (e.g. ntpath). Some of this can actually be useful on non-Posix systems too, e.g. for manipulation of the pathname component of URLs. Ú.ú..Ú/Ú:z /bin:/usr/binNz /dev/null)Ú*ÚnormcaseÚisabsÚjoinÚ splitdriveÚ splitrootÚ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Ú isjunctionÚ isdevdriveÚ ALLOW_MISSINGcó6€\V\4'dR#R#)ó/r)Ú isinstanceÚbytes©Úpaths&Ú0/opt/alt/python314/lib64/python3.14/posixpath.pyÚ_get_sepr8*s€Ü�$œ×ÒÙáócó.€\P!V4#)z6Normalize case of pathname. Has no effect under Posix©ÚosÚfspath)Úss&r7rr5s€ä �9Š9�Q‹<Ðr9cóf€\P!V4p\V4pVPV4#)zTest whether a path is absolute)r<r=r8Ú startswith)r>r$s& r7rr=s'€ä � Š �!‹ €AÜ �1‹+€CØ �<‰<˜Ó Ðr9cóš€\P!V4p\V4pTpVFlp\P!V4pVPV4'g V'gTpK<VP V4'd W4, pK]W2V,, pKn V# \ \ \3d\P!RT.TO5!hi;i)zÚJoin two or more pathname components, inserting '/' as needed. If any component is an absolute path, all previous path components will be discarded. An empty last part will result in a path that ends with a separator.r ) r<r=r8r@ÚendswithÚ TypeErrorÚAttributeErrorÚ BytesWarningÚ genericpathÚ_check_arg_types)ÚaÚpr$r6Úbs&* r7r r Hs©€ô � Š �!‹ €AÜ �1‹+€CØ €Dð ÛˆAÜ— ’ ˜!“ ˆAØ�|‰|˜C× Ò ¯Ø’Ø—‘˜s×#Ò#Ø• ’à˜a�•’ñð €Køô ”~¤|Ð 4ôÜ×$Ò$ V¨QÐ3°Ô3Ø ðús¥9BÁBÁ:BÂ1C cóè€\P!V4p\V4pVPV4^,pVRVWRrCV'd(W1\ V4,8wdVP V4pW43#)z|Split a pathname. Returns tuple "(head, tail)" where "tail" is everything after the final slash. Either part may be empty.N©r<r=r8ÚrfindÚlenÚrstrip)rIr$ÚiÚheadÚtails& r7r r dsc€ô � Š �!‹ €AÜ �1‹+€CØ �‰�‹ �qÕ€AØ�2�A�˜˜"˜ˆ$ß �œC ›I� Ô%Ø�{‰{˜3ÓˆØ ˆ:Ðr9cóœ€\P!V4p\V\4'dRpRpMRpRp\P !WRV4#)r2ó.rrN)r<r=r3r4rFÚ _splitext)rIr$r(s& r7r r usE€Ü � Š �!‹ €AÜ�!”U×ÒØˆØ‰àˆØˆÜ × Ò  ¨¨vÓ 6Ð6r9cóD€\P!V4pVR,V3#)zFSplit a pathname into drive and path. On Posix, drive is always empty.ºNéNr;)rIs&r7r r ƒs€ô � Š �!‹ €AØ ˆR�5�!ˆ8€Or9)Ú_path_splitroot_excó€\P!V4p\V\4'dRpRpMRpRpVR,V8wdW"V3#VR,V8wgVR,V8Xd W!VR,3#W R ,VR ,3#) zWSplit a pathname into drive, root and tail. The tail contains anything after the root.r2r9rÚ:NéN:r\éN:r]éN:r\NN:Nr]N:r]NN)r<r=r3r4)rIr$Úemptys& r7r r �s€€ô �IŠI�a‹LˆÜ �aœ× Ò ØˆC؉EàˆC؈EØ ˆR�5�CŒ<à �?Ð "Ø ˆs�V�sŒ]˜a �f¨œmà˜q �uÐ$Ð $ð˜B�%  2¥Ð&Ð &r9có|€\P!V4p\V4pVPV4^,pWR#)z)Returns the final component of a pathnameN)r<r=r8rM)rIr$rPs& r7rr¦s3€ä � Š �!‹ €AÜ �1‹+€CØ �‰�‹ �qÕ€AØ ˆRˆ5€Lr9cóà€\P!V4p\V4pVPV4^,pVRVpV'd(W1\ V4,8wdVP V4pV#)z-Returns the directory component of a pathnameNrL)rIr$rPrQs& r7rr°sX€ä � Š �!‹ €AÜ �1‹+€CØ �‰�‹ �qÕ€AØ ˆRˆaˆ5€Dß �œC ›I� Ô%Ø�{‰{˜3ÓˆØ €Kr9cój€\P!V4p\P!VP4'dR#\P!T4p\T\4'd\TR4pM \TR4p\P!T4pTPTP8g;'gTPTP8H# \ \ 3dR#i;i \ d9\T4p\P!T4pL� \ dR#i;ii;i)z$Test whether a path is a mount pointFó..r)r<ÚlstatÚstatÚS_ISLNKÚst_modeÚOSErrorÚ ValueErrorr=r3r4r r*Úst_devÚst_ino)r6Ús1ÚparentÚs2s& r7rr¾sú€ðÜ �XŠX�d‹^ˆô �<Š<˜Ÿ ™ × #Ò #Ùð $ô �9Š9�T‹?€DÜ�$œ×ÒÜ�d˜EÓ"‰ä�d˜DÓ!ˆðÜ �XŠX�fÓ ˆð �9‰9˜Ÿ ™ Ñ !× ;Ð ; R§Y¡Y°"·)±)Ñ%;Ð;øô/ ”ZÐ ôâðûô ôܘ&Ó!ˆð Ü—’˜&Ó!ŠBøÜô Ûð úð ús;‚CÂC/ÃC,Ã+C,Ã/D2ÄDÄ D.Ä)D2Ä-D.Ä.D2cóà€\P!V4p\V\4'dRpMRpVP V4'gV#\ V4pVP V^4pV^8d \V4pV^8XdcR\P9d6^RI pTP\P!44PpMl\PR,pMT^RI pT^Tp\T\4'd\P!T4pTP!T4pTPpVf\"P$R8XdV#\V\4'd\P&!V4pVP)V4pWPVR,;'gT# \dTu#i;i \dTu#i;i \dTu#i;i \dTu#i;i)zKExpand ~ and ~user constructions. If user or $HOME is unknown, do nothing.ó~Ú~ÚHOMENÚvxworks)r<r=r3r4r@r8ÚfindrNÚenvironÚpwdÚ ImportErrorÚgetpwuidÚgetuidÚpw_dirÚKeyErrorÚfsdecodeÚgetpwnamÚsysÚplatformÚfsencoderO)r6Útilder$rPrvÚuserhomeÚnameÚpwents& r7rrås­€ô �9Š9�T‹?€DÜ�$œ×ÒØ‰àˆØ �?‰?˜5× !Ò !؈ Ü �4‹.€CØ � ‰ �#�qÓ€A؈1„uÜ �‹IˆØˆA„vØ œŸ™Ô #ð Ûð ØŸ<™<¬¯ ª « Ó4×;Ñ;‘ô —z‘z &Õ)‰Hð Û ð�A�aˆyˆÜ �dœE× "Ò "Ü—;’;˜tÓ$ˆDð Ø—L‘L Ó&ˆEð —<‘<ˆàÒœCŸL™L¨IÔ5؈ Ü�$œ×ÒÜ—;’;˜xÓ(ˆØ�‰˜sÓ#€HØ ˜A˜B�xÕ × 'Ð ' CÐ'øôCô à’ ð ûô ô ð’ ð ûôô àŠKð ûôô ðŠKð úsHÂF$Â.F7Ã$G ÄGÆ$ F4Æ3F4Æ7 GÇGÇ GÇGÇ G-Ç,G-z\$(\w+|\{[^}]*\}?)cóaaa€\P!V4p\V\4'dnRV9dV#\'g=^RIpVP \P4VP4Ps\pRoRo\\RR4oM]RV9dV#\'g/^RIpVP \VP4Ps \pRoRo\PoVVV3R lpV!W04#) zVExpand shell variables of form $var and ${var}. Unknown variables are left unchanged.ó$Nó{ó}ÚenvironbÚ$Ú{Ú}cóf<€V^,pVPS4'd&VPS4'g V^,#V^RpSfB\P!\P\P !V4,4pV#SV,pV# \ d T^,u#i;i)r\éÿÿÿÿ)r@rBr<r€rur|r{)ÚmrƒÚvalueÚendruÚstarts& €€€r7ÚreplÚexpandvars..repl=s›ø€Ø��tˆØ �?‰?˜5× !Ò !Ø—=‘= ×%Ò%ؘ•t� ؘ˜"�:ˆDð ØŠÜŸ š ¤B§J¡J¬r¯{ª{¸4Ó/@Õ$AÓB�ð ˆLð   � ‘ðˆLøôô Ø�Q•4ŠKð úsÁAB BÂB0Â/B0)r<r=r3r4Ú_varsubbÚreÚcompileÚ _varpatternÚencodeÚASCIIÚsubÚgetattrÚ_varsubru)r6r–r›r“r‘rur’s& @@@r7rr#sËú€ô �9Š9�T‹?€Dä�$œ×ÒØ �tÔ ØˆKß‹xÛ Ø—z‘z¤+×"4Ñ"4Ó"6¸¿¹ÓA×EÑEˆH܈؈؈ܜ"˜j¨$Ó/‰à �dŒ?؈Kß‹wÛ Ø—j‘j¤¨b¯h©hÓ7×;Ñ;ˆG܈؈؈ܗ*‘*ˆ÷ñ ˆt‹?Ðr9)Ú_path_normpathcóø€\P!V4p\V\4'dRpRpRpMRpRpRpV'gV#\ V4wrEpVP V4p.pVFlpV'dW‚8XdKWƒ8wg'V'g V'dV'd"VR,V8XdVP V4KRV'gK\VP4Kn TpWQPV4,pT;'gT#)z0Normalize path, eliminating double slashes, etc.r2rTrcrrrrŽ) r<r=r3r4r r ÚappendÚpopr ) r6r$ÚdotÚdotdotÚ_Úinitial_slashesÚcompsÚ new_compsÚcomps & r7rrXsÌ€ä�yŠy˜‹ˆÜ �dœE× "Ò "؈C؈C؉FàˆC؈C؈FߨˆJÜ#,¨T£?Ñ ˆ˜DØ— ‘ ˜3“ˆØˆ ÛˆDߘ4œ;ÙØ”§¿yß  ¨"¥ °Ô 7Ø× Ñ  Ö&ߑؗ ‘ –ñðˆØ§¡¨%£Õ0ˆØ�{ˆ{�sÐr9cóJ€\P!V4p\V\4'd8VP R4'g \ \P !4V4pM6VP R4'g \ \P!4V4p\V4#)zReturn an absolute path.r2r) r<r=r3r4r@r ÚgetcwdbÚgetcwdrr5s&r7rrusi€ä �9Š9�T‹?€DÜ�$œ×ÒØ�‰˜t×$Ò$ÜœŸ š ›  dÓ+ˆDøà�‰˜s×#Ò#ÜœŸ š ›  TÓ*ˆDÜ �D‹>Ðr9ÚstrictFcóê€\P!V4p\V\4'dRpRpRp\PpMRpRpRp\P pV\ Jd \pRpMV'dR pM\p\Pp\PpRp VPV4RRR 1,p \V 4p VPV4'dTMV!4p /p ^pV 'EdoV P4pVfWÍV P4&K1V ^,p V'dWó8XdKJWô8Xd!V RV PV4;'gTp KpWÂ8Xd WÏ,pMWÂ,V,pV!V4P p\"P$!V4'goV'dbV 'dZ\"P&!V4'g>\\(P*\P,!\(P*4V4hTp EK+V e[V^, pWé8”dKV'd>\\(P.\P,!\(P.4V4hTp EKˆMaVV 9d[V V,p V eEK V'd>\\(P.\P,!\(P.4V4hTp EKêV!V4pVPV4'dTp V f(RV V&V P1V4V P1R4VPV4RRR 1,pV P3V4V \V4, p EKwV # TdMi;iTp EK‹) zlReturn the canonical path of the specified filename, eliminating any symbolic links encountered in the path.r2rTrcrrrTN©rŽ)r<r=r3r4rªr«r0ÚFileNotFoundErrorrhrdÚreadlinkr rNr@r¡ÚrindexrgrerfÚS_ISDIRÚerrnoÚENOTDIRÚstrerrorÚELOOPr Úextend)Úfilenamer¬r$r"r#r«Ú ignored_errorrdr°ÚmaxlinksÚrestÚ part_countr6ÚseenÚ link_countrƒÚnewpathrgÚtargetÚ target_partss&$ r7r*r*„sã€ô�yŠy˜Ó"€HÜ�(œE×"Ò"؈؈؈ܗ‘‰àˆØˆØˆÜ—‘ˆØ ”ÓÜ)ˆ Ø‰ß Ø‰ äˆ ä �H‰H€EÜ�{‰{€HØ€Hð �>‰>˜#Ó ™t ˜tÕ $€Dô�T“€Jð×%Ñ% c×*Ò*‰3±³€Dð €Dð€Jç ˆ*Ø�x‰x‹zˆØ Š<à#�—‘“Ñ Ù Ø�a�ˆ ß�t”~á Ø Œ>àÐ)˜Ÿ™ SÓ)Ð*×1Ð1¨cˆDÙ Ø Œ;Ø•k‰Gà•j 4Õ'ˆGð0 Ù˜G“n×,Ñ,ˆGÜ—<’< ×(Ò(ߟj´·²¸g×1FÒ1FÜ!¤%§-¡-´·²¼U¿]¹]Ó1KØ")ó+ð+à�ÚØÒ%ؘa•� ØÔ(ßÜ%¤e§k¡k´2·;²;¼u¿{¹{Ó3KØ&-ó/ð/à"�DÚð )ð ˜D”à˜G•}�ØÒ#âçÜ!¤%§+¡+¬r¯{ª{¼5¿;¹;Ó/GØ")ó+ð+à�ÚÙ˜gÓ&ˆFð × Ñ  ×%Ò%à�ØÒà $��W‘ ð— ‘ ˜GÔ$Ø— ‘ ˜DÔ!à!Ÿ<™<¨Ó,©T¨r¨TÕ2ˆLØ �K‰K˜ Ô %Ø œ#˜lÓ+Õ +ˆJÚ ð €Køð/ô Ù ð úð*‹sNÅ9-M#Æ'M#Æ/M#Æ7M#Ç?M#ÈM#È0?M#É2M#Ê M#Ê?M#ËM#Í#M-Í,M-Údarwincó¾€\P!V4pV'g \R4h\V\4'dRpRpRpMRpRpRpVfTpM\P!V4p\ V4P V4p\ V4P V4pV'dVPV4M.pV'dVPV4M.p\\Wx.44p V.\V4V , ,W‰R,p V 'gV#VPV 4# \\\\3d\P !R Y4hi;i) z#Return a relative version of a pathzno path specifiedrTr2rcrrrNr,)r<r=rir3r4rÚlstripr rNrr rCrDrEÚDeprecationWarningrFrG) r6r’r"r$r#Ú start_tailÚ path_tailÚ start_listÚ path_listrPÚrel_lists && r7r,r,s)€ô �9Š9�T‹?€Dß ÜÐ,Ó-Ð-ä�$œ×ÒØˆØˆØ‰àˆØˆØˆà ‚}Ø‰ä— ’ ˜%Ó ˆðܘU“^×*Ñ*¨3Ó/ˆ ܘD“M×(Ñ(¨Ó-ˆ ß.8�Z×%Ñ% cÔ*¸bˆ ß,5�I—O‘O CÔ(¸2ˆ ä ” ˜jÐ4Ó5Ó 6ˆà�8œs :›¨qÕ0Õ1°I¸b°MÕAˆß؈MØ�x‰x˜Ó!Ð!øÜ ”~¤|Ô5GÐ HôÜ×$Ò$ Y°Ô<Ø ðúsÁ+AD(ÃAD(ÄD(Ä(4Ec ó6€\\\PV44pV'g \ R4h\ V^,\ 4'dRpRpMRpRpVUu.uFq3PV4NK ppVUu0uFqUPV4kK upwpTUUu.uF%qwUu.uFqˆ'gK Y‚8wgKTNK upNK' ppp\T4p \T4p T p \T 4FwrÈYŠT ,8wgKT RT p M T'dTMTR,p YÑPT 4,#uupiuupi \d\ R4Rhi;iuupiuuppi \\3d\P !R .TO5!hi;i) zDGiven a sequence of path names, returns the longest common sub-path.z%commonpath() arg is an empty sequencer2rTrrz%Can't mix absolute and relative pathsNrWr-)ÚtupleÚmapr<r=rir3r4r r@ÚminÚmaxÚ enumerater rCrDrFrG)Úpathsr$r"r6Ú split_pathsrIrr>ÚcrlrnÚcommonrPÚprefixs& r7r-r-,s}€ô ”#”b—i‘i Ó'Ó (€Eç ÜÐ@ÓAÐAä�%˜•(œE×"Ò"ØˆØ‰àˆØˆðÙ38Ó9±5¨4—z‘z #–±5ˆ Ð9ð PÙ16Ó7±¨A—l‘l 3Ö'±Ñ7‰FˆEñEPÔPÁK¸q 1Ó:¡1˜a«œ¨a©kŸ˜¡1Ô:ÁKˆ ÑPÜ �Ó ˆÜ �Ó ˆØˆÜ˜b–M‰DˆAØ�q•EŽzؘB˜Q˜�Ùñ"÷ ‘ 3 r¥7ˆØŸ™ Ó(Õ(Ð(ùò#:ùò8øÜô PÜÐDÓEÈ4Ð Oð Püò;ùÓPøô ”~Ð &ôÜ×$Ò$ \Ð:°EÔ:Ø ðús„ÁE-Á"D=Á;E-Á>EÂEÂE E-Â%E'Â- E" Â;E" ÃE" à E'Ã5E-Ä E-Ä!E-Ä=E-ÅEÅEÅE-Å"E'Å'E-Å-+F)N)+Ú__doc__r"r#r(r$r%r&r'r)r³r<r~rerFÚ__all__r8rrr r r rUr ÚposixrYr rwrrrrr˜r�r•rržrrr*rr+r,r-r®r9r7ÚrÙsÉðñ ð €Ø €Ø €Ø €Ø €Ø €Ø €Ø €ã Û Û Û ÛÜð Dˆ:ð D�gð D˜fð D \ð D°+ð D¸gð DÀjð DØ ð DØð DØ .ð DØ/8ð DØ9Cð Dà ð Dà ð Dà!)ð Dà*2ð Dà3<ð Dà=Dð DàEMð Dð ð Dð#ð Dð$0ð Dð1;ð DðGð  Dð ð Dð&ð Dð'3ð Dð4Cð D€òòòòò8 ò"7ð×(Ñ(×0Ñ0€Ôò ð'Ý5ò6òò<òN3(ðt$€ Ø €Ø €ò*ðbÝ0ò@ ðx ôxðv"Ÿl™l¨hÑ6Ðô#ôV$øðA ô'ô'ð'ûðVôôðús$Â3C8ÃDÃ8 DÄDÄ DÄD