grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]pœãA@slddlZddlZddlZddlZddlZddlZyddlZ[dZWnek r{dZYnXyddl Z [ dZ Wnek r¯dZ YnXyddl Z [ dZ Wnek rãdZ YnXyddl mZWnek rdZYnXyddlmZWnek rAdZYnXdddd d d d d dddddddddddddddddgZGdd„deƒZGd d„deƒZGd!d„deƒZGd"d„deƒZGd#d$„d$eƒZGd%d&„d&eƒZdd)d„Zd*d+„Zd,dd-d„Zd,dd.d„Zeed/ƒrzd,dd0d1„Zn d2d1„Zd,dd3d „Z d,dd4d „Z!d,dd5d „Z"d6d„Z#dde"dd7d „Z$d8d9„Z%d:d;„Z&ej'ejej(ej)hej*ko@ej+ej,ko@ejej-kZ.ddd<d„Z/e.e/_0d=d>„Z1e"d?d „Z2d@dA„Z3dBdC„Z4dDdE„Z5dFddddddGdH„Z6ddddIdJ„Z7dKe6d€gdMfiZ8ere6d�gdNfe8dOddYd`d„Z?dad„Z@dbdc„ZAddde„ZBdfdg„ZCdKdhgeCgdMfdQdigeBgdPfiZDerFdjdkgeCgdNfeDdO._nopcstt|ˆƒS)N)Úgetattrr-)rQ)rWr r!Úlookup»szcopystat..lookupcs)tt|ˆƒ}|tjkr%|SˆS)N)rXr-Úsupports_follow_symlinks)rQr@)rWr r!rYÀsr9ÚutimerCÚst_flagsÚchflagsÚ EOPNOTSUPPrJ)r^rJ)r-r.r<r9rEr;Ú st_atime_nsÚ st_mtime_nsÚNotImplementedErrorr,r\r/rIrXrS) r2r3r5ÚfollowrYrAÚmodeÚwhyÚerrr )rWr!r­s,+!   'cCs]tjj|ƒr3tjj|tjj|ƒƒ}t||d|ƒt||d|ƒ|S)Nr5)r-r.ÚisdirÚjoinÚbasenamerr)r2r3r5r r r!rãs !cCs]tjj|ƒr3tjj|tjj|ƒƒ}t||d|ƒt||d|ƒ|S)Nr5)r-r.rfrgrhrr)r2r3r5r r r!r õs !cs‡fdd†}|S)Ncs:g}x'ˆD]}|jtj||ƒƒq Wt|ƒS)N)ÚextendÚfnmatchÚfilterÚset)r.rOÚ ignored_namesÚpattern)Úpatternsr r!Ú_ignore_patterns s z)ignore_patterns.._ignore_patternsr )rorpr )ror!rscCsstj|ƒ}|dk r-|||ƒ}n tƒ}tj|ƒg}x¤|D]œ} | |kreqPtjj|| ƒ} tjj|| ƒ} yátjj| ƒr7tj| ƒ} |ràtj| | ƒt | | d| ƒqotjj | ƒ rü|rüwPtjj | ƒr't | | |||ƒqo|| | ƒn8tjj | ƒrbt | | |||ƒn || | ƒWqPt k r«} z|j| jdƒWYdd} ~ XqPtk rë}z!|j| | t|ƒfƒWYdd}~XqPXqPWyt ||ƒWnYtk r\}z9t|ddƒdkrJ|j||t|ƒfƒWYdd}~XnX|rot |ƒ‚|S)Nr5rÚwinerror)r-ÚlistdirrlÚmakedirsr.rgr<r>r=rÚexistsrfr r rirTr/ÚappendÚstrrX)r2r3ÚsymlinksÚignoreÚ copy_functionÚignore_dangling_symlinksrOrmÚerrorsrQÚsrcnameÚdstnameÚlinktorerdr r r!r sL$      &3/ c$Cs–y"tjj|ƒr!tdƒ‚Wn2tk rV|tjj|tjƒƒdSYnXg}ytj|ƒ}Wn+tk r�|tj|tjƒƒYnXx²|D]ª}tjj||ƒ}ytj|ƒj }Wntk rðd}YnXt j |ƒrt ||ƒq¥ytj |ƒWq¥tk rN|tj |tjƒƒYq¥Xq¥Wytj|ƒWn+tk r‘|tj|tjƒƒYnXdS)Nz%Cannot call rmtree on a symbolic linkr)r-r.r<r/ÚsysÚexc_inforrrgrDr;r9ÚS_ISDIRÚ_rmtree_unsafeÚunlinkÚrmdir)r.ÚonerrorrOrQÚfullnamercr r r!r‚ks6       " r‚c 0Cs@g}ytj|ƒ}WnGtk rb}z'||_|tj|tjƒƒWYdd}~XnXxÖ|D]Î}tjj||ƒ}y(tj|d|ddƒ}|j }Wntk rÇd}YnXtj |ƒróytj |tj d|ƒ} Wn+tk r#|tj |tjƒƒYq8Xz»tjj |tj| ƒƒr�t| ||ƒytj|d|ƒWqÞtk r™|tj|tjƒƒYqÞXnAytdƒ‚Wn.tk rÝ|tjj|tjƒƒYnXWdtj| ƒXqjytj|d|ƒWqjtk r7|tj|tjƒƒYqjXqjWdS)NÚdir_fdr5Frz%Cannot call rmtree on a symbolic link)r-rrr/Úfilenamerr€r.rgr9r;r�r?ÚO_RDONLYÚsamestatÚfstatÚ_rmtree_safe_fdr„r<Úcloserƒ) Útopfdr.r…rOrerQr†Úorig_strcÚdirfdr r r!rŒŒsD ,      ! % rŒc!Cs»|rdd„}n|dkr-dd„}trªt|tƒrQtj|ƒ}ytj|ƒ}Wn/tk r•|tj|tjƒƒdSYnXytj |tj ƒ}Wn/tk rà|tj|tjƒƒdSYnXzµtj j |tj |ƒƒrTt|||ƒytj|ƒWq•tk rP|tj|tjƒƒYq•XnAytdƒ‚Wn.tk r”|tj j|tjƒƒYnXWdtj|ƒXn t||ƒSdS)NcWsdS)Nr )rTr r r!r…Észrmtree..onerrorcWs‚dS)Nr )rTr r r!r…Ìsz%Cannot call rmtree on a symbolic link)Ú_use_fd_functionsÚ isinstanceÚbytesr-ÚfsdecoderDÚ Exceptionrr€r?r‰r.rŠr‹rŒr„r/r<r�r‚)r.Ú ignore_errorsr…r�Úfdr r r!r ½s<        ! %cCs5tjjtjjpd}tjj|j|ƒƒS)NÚ)r-r.ÚsepÚaltseprhÚrstrip)r.r™r r r!Ú _basenameôsrœc Cs]|}tjj|ƒrxt||ƒr;tj||ƒdStjj|t|ƒƒ}tjj|ƒrxtd|ƒ‚ytj||ƒWnÊt k rXtjj |ƒrÝtj |ƒ}tj ||ƒtj |ƒnwtjj|ƒr:t||ƒrtd||fƒ‚t||d|ddƒt|ƒn|||ƒtj |ƒYnX|S)Nz$Destination path '%s' already existsz.Cannot move a directory '%s' into itself '%s'.ryrwT)r-r.rfr4Úrenamergrœrtr r/r<r>r=rƒÚ _destinsrcr r )r2r3ryÚreal_dstr~r r r!r ús2   cCs{tjj|ƒ}tjj|ƒ}|jtjjƒsI|tjj7}|jtjjƒsn|tjj7}|j|ƒS)N)r-r.r1Úendswithr™Ú startswith)r2r3r r r!rž2sržc Cs_tdks|dkrdSyt|ƒ}Wntk rFd}YnX|dk r[|dSdS)Né)rÚKeyError)rQÚresultr r r!Ú_get_gid;s   r¥c Cs_tdks|dkrdSyt|ƒ}Wntk rFd}YnX|dk r[|dSdS)Nr¢)rr£)rQr¤r r r!Ú_get_uidGs   r¦Úgzipc s–|dkrd}nftr0|dkr0d}nKtrK|dkrKd}n0trf|dkrfd}ntdj|ƒƒ‚ddl} |r—d |nd} |d | } tjj| ƒ} | rtjj | ƒ r|dk rò|j d | ƒ|stj | ƒ|dk r|j d ƒt ˆƒ‰t ˆƒ‰‡‡‡‡fd d†} |s’| j| d|ƒ}z|j|d| ƒWd|jƒX| S)Nr˜r§ÚgzÚbzip2Úbz2ÚxzzCbad value for 'compress', or compression format not supported : {0}rÚ.z.tarz creating %szCreating tar archivecs@ˆdk rˆ|_ˆ|_ˆdk r<ˆ|_ˆ|_|S)N)ÚgidÚgnameÚuidÚuname)Útarinfo)r­ÚgroupÚownerr¯r r!Ú _set_uid_gid‚s      z#_make_tarball.._set_uid_gidzw|%srk)Ú_ZLIB_SUPPORTEDÚ_BZ2_SUPPORTEDÚ_LZMA_SUPPORTEDÚ ValueErrorr8Útarfiler-r.ÚdirnamertÚinforsr¦r¥r?Úaddr�)Ú base_nameÚbase_dirÚcompressÚverboseÚdry_runr³r²ÚloggerÚtar_compressionr¹Ú compress_extÚ archive_nameÚ archive_dirr´Útarr )r­r²r³r¯r!Ú _make_tarballSs<                rÈc Csddl}|d}tjj|ƒ}|rptjj|ƒ rp|dk r]|jd|ƒ|sptj|ƒ|dk r�|jd||ƒ|sþ|j|dd|jƒ�K}tjj |ƒ} | tj kr|j | | ƒ|dk r|jd| ƒxôtj |ƒD]ã\} } } xat | ƒD]S} tjj tjj| | ƒƒ} |j | | ƒ|dk r,|jd| ƒq,Wxm| D]e} tjj tjj| | ƒƒ} tjj| ƒrŠ|j | | ƒ|dk rŠ|jd| ƒqŠWqWWdQRX|S)Nrz.zipz creating %sz#creating '%s' and adding '%s' to itÚwÚ compressionz adding '%s')Úzipfiler-r.rºrtr»rsÚZipFileÚ ZIP_DEFLATEDÚnormpathÚcurdirr&ÚwalkÚsortedrgÚisfile)r½r¾rÀrÁrÂrËÚ zip_filenamerÆÚzfr.ÚdirpathÚdirnamesÚ filenamesrQr r r!Ú _make_zipfile”s@        !  ! rØrÇr¿zuncompressed tar filezgzip'ed tar-fileÚgztarzZIP fileÚzipr©zbzip2'ed tar-fileÚbztarr«zxz'ed tar-fileÚxztarcCs'dd„tjƒDƒ}|jƒ|S)NcSs&g|]\}}||df‘qS)r¢r )Ú.0rQÚregistryr r r!ú Ös z'get_archive_formats..)Ú_ARCHIVE_FORMATSÚitemsÚsort)Úformatsr r r!rÑs  r˜cCs«|dkrg}t|ƒs.td|ƒ‚t|ttfƒsOtdƒ‚xB|D]:}t|ttfƒ s„t|ƒdkrVtdƒ‚qVW|||ft|.)Ú_UNPACK_FORMATSrárâ)rãr r r!r*s  c Cs›i}x9tjƒD]+\}}x|dD]}|||._access_checkÚPATHÚwin32rÚPATHEXTr˜c3s*|] }ˆjƒj|jƒƒVqdS)N)Úlowerr )rÝrû)Úcmdr r!ú lszwhich..csg|]}ˆ|‘qSr r )rÝrû)r4r r!rßos zwhich..)r-r.rºr%ÚgetÚdefpathrÚpathseprÚplatformrÏÚinsertÚanyrlr0r¼rg) r4rcr.r/ÚpathextÚfilesÚseenÚdirÚnormdirÚthefilerQr )r4r!rBs8  !        i@)r¿N)r¿r§)r¿r©)r¿r«)r!r")Rr-rr9rjÚ collectionsrIÚzlibrµÚ ImportErrorrªr¶Úlzmar·ÚpwdrÚgrprÚ__all__r/r rrrr"r•r#rr4rrr,rSrrr rr r‚rŒr?rƒr„Úsupports_dir_fdrrÚ supports_fdrZr‘r Úavoids_symlink_attacksrœr ržr¥r¦rÈrØràrrrrrrþrrrÿrr rør rruÚ namedtuplerrrQrrrÚF_OKÚX_OKrr r r r!Úsö                           6 Y ! , 5  8 @-         6    "     %     -