Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php on line 107

Warning: Cannot modify header information - headers already sent by (output started at /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php:1) in /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php on line 234

Warning: Cannot modify header information - headers already sent by (output started at /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php:1) in /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php on line 235

Warning: Cannot modify header information - headers already sent by (output started at /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php:1) in /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php on line 236

Warning: Cannot modify header information - headers already sent by (output started at /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php:1) in /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php on line 237

Warning: Cannot modify header information - headers already sent by (output started at /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php:1) in /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php on line 238

Warning: Cannot modify header information - headers already sent by (output started at /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php:1) in /home/zoomride2022/public_html/myzoomride.com/wp-includes/certificates/system.php on line 239
U i_m@sfdZdZdZddlmZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZz ddlZWnek rdZYnXz ddlZWnek rdZYnXeefZzeef7ZWnek rYnXdddd d d d d dddddddgZdZdZedZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$d Z%d!Z&d"Z'd#Z(d$Z)d%Z*d&Z+d'Z,d(Z-d)Z.dZ/d*Z0d+Z1e1Z2e e!e"e#e&e'e(e$e%e)e*e+f Z3e e!e(e+fZ4e)e*e+fZ5d,Z6d-d.d/d0hZ7e8e8e8e9e9e9d1Z:ej;d2krd3Zd6d7Z?d8d9Z@d:e2fd;d<ZAd=d>ZBdedfd?d@ZCdAdBZDGdCd d eEZFGdDd d eFZGGdEd d eFZHGdFd d eFZIGdGd d eFZJGdHddeFZKGdIdJdJeKZLGdKdLdLeKZMGdMdNdNeKZNGdOdPdPeKZOGdQdRdReKZPGdSdTdTZQGdUdVdVZRGdWdXdXeSZTGdYdZdZeSZUGd[d\d\ejVZWGd]ddeSZXGd^ddeSZYd_dZZeYjZd`daZ[e\dbkrbe[dS)cz0.9.0u"Lars Gustäbel (lars@gustaebel.de)u4Gustavo Niemeyer, Niels Gustäbel, Richard Townsend.)openNTarFileTarInfo is_tarfileTarError ReadErrorCompressionError StreamError ExtractError HeaderErrorENCODING USTAR_FORMAT GNU_FORMAT PAX_FORMATDEFAULT_FORMATrisustar sustar00d01234567LKSxgX)pathlinkpathsizemtimeuidgidunamegnamer%r&r+r,)Zatimectimer(r)r*r'ntutf-8cCs(|||}|d||t|tSN)encodelenNUL)slengthencodingerrorsr8&/opt/python38/lib/python3.8/tarfile.pystns r:cCs*|d}|dkr|d|}|||S)Nr)finddecode)r4r6r7pr8r8r9ntss  r?cCs|ddkrbd}tt|dD]}|dK}|||d7}q |ddkrdt|d| }n@z"t|dd}t|p|d d}Wntk rtd YnX|S) Nr)r#rAasciistrict0invalid header)ranger2r?intstrip ValueErrorInvalidHeaderError)r4nir8r8r9ntis   rOrBcCst|}d|kr$d|dkrDnntd|d|fdt}n|tkrd|d |krrd|dkrnnV|dkrtdg}ntdg}d||}t|dD]}|d|d@|dL}qntd |S) NrrBr#z%0*orDrCr@rAzoverflow in number field)rIbytesr3r bytearrayrHinsertrK)rMdigitsformatr4rNr8r8r9itns  2    rUcCs0dttd|}dttd|}||fS)NrCZ 148B8x356BZ 148b8x356b)sumstruct unpack_from)bufZunsigned_chksumZ signed_chksumr8r8r9 calc_chksumss rZc Cs|pd}|dkrdS|dkr.t|||dSt||\}}t|D],}||}t||krf|d||qD|dkr||}t||kr|d||dS)Ni@runexpected end of data)shutil copyfileobjdivmodrHreadr2write) srcdstr5 exceptionbufsizeblocks remainderbrYr8r8r9r]s$       r]cCs8ttjdd}|dk r(||d|}t|dddS)Nr6backslashreplace )end)getattrsysstdoutr1r=print)r4r6r8r8r9 _safe_printsroc@s eZdZdS)rN__name__ __module__ __qualname__r8r8r8r9r sc@s eZdZdS)r Nrpr8r8r8r9r sc@s eZdZdS)rNrpr8r8r8r9rsc@s eZdZdS)rNrpr8r8r8r9rsc@s eZdZdS)r Nrpr8r8r8r9r sc@s eZdZdS)r Nrpr8r8r8r9r sc@s eZdZdS)EmptyHeaderErrorNrpr8r8r8r9rtsrtc@s eZdZdS)TruncatedHeaderErrorNrpr8r8r8r9rusruc@s eZdZdS)EOFHeaderErrorNrpr8r8r8r9rv"srvc@s eZdZdS)rLNrpr8r8r8r9rL%srLc@s eZdZdS)SubsequentHeaderErrorNrpr8r8r8r9rw(srwc@s,eZdZddZddZddZddZd S) _LowLevelFilecCsFtjtjtjBtjBd|}ttdr2|tjO}t||d|_dS)NrwO_BINARYi) osO_RDONLYO_WRONLYO_CREATO_TRUNChasattrr|rfd)selfnamemoder8r8r9__init__5s  z_LowLevelFile.__init__cCst|jdSr0)r}closerrr8r8r9r>sz_LowLevelFile.closecCst|j|Sr0)r}r_rrr'r8r8r9r_Asz_LowLevelFile.readcCst|j|dSr0)r}r`rrr4r8r8r9r`Dsz_LowLevelFile.writeN)rqrrrsrrr_r`r8r8r8r9rx/s rxc@sneZdZddZddZddZddZd d Zd d Zd dZ ddZ dddZ ddZ ddZ ddZdS)_Streamc Csd|_|dkrt||}d|_|dkr6t|}|}|pd|fg}d|_g|_d}|j}|D]L\}}||kr||j d||df|j d||||f||7}||}qX||jkr|j d||jdfdS)NrrFT) roffsetr'positionrkrr map_indexmapr)rrrr'Z blockinfoZlastposZrealposr8r8r9r[s(    z_FileInFile.__init__cCsdSr0r8rr8r8r9rtsz_FileInFile.flushcCsdSNTr8rr8r8r9readablewsz_FileInFile.readablecCsdS)NFr8rr8r8r9writablezsz_FileInFile.writablecCs |jSr0)rseekablerr8r8r9r}sz_FileInFile.seekablecCs|jSr0)rrr8r8r9rsz_FileInFile.tellcCs|tjkr tt|d|j|_nj|tjkr\|dkrFt|j|d|_qt|j||j|_n.|tjkrtt|j||jd|_ntd|jS)NrzInvalid argument) ioSEEK_SETminmaxr'rSEEK_CURSEEK_ENDrK)rrwhencer8r8r9rs   z_FileInFile.seekc Cs |dkr|j|j}nt||j|j}d}|dkr|j|j\}}}}||jkr`|krhqnqq6|jd7_|jt|jkr6d|_q6t|||j}|r|j||j||j|}t||krt d||7}n |t |7}||8}|j|7_q,|S)Nrrr#r[) r'rrrrr2rrr_rr3) rr'rYdatastartstoprr5rgr8r8r9r_s,     z_FileInFile.readcCs&|t|}||dt|<t|Sr0)r_r2)rrgrYr8r8r9readintosz_FileInFile.readintocCs d|_dSr)rrr8r8r9rsz_FileInFile.close)N)N)rqrrrsrrrrrrrrrr_rrr8r8r8r9rUs  rcseZdZfddZZS) ExFileObjectcs&t|j|j|j|j}t|dSr0)rr offset_datar'sparsesuperr)rtarfiletarinfor __class__r8r9rs  zExFileObject.__init__)rqrrrsr __classcell__r8r8rr9rsrc@seZdZeddddddddd d d d d ddddddddZddddZeddZejddZeddZ e jddZ ddZ dd Z e e d!fd"d#Zd$d%Zd&d'Zd(d)Zed*d+Zd,d-Zed.d/Zed0d1Zed2d3Zed4d5Zed6d7Zed8d9Zd:d;Zdd?Zd@dAZdBdCZ dDdEZ!dFdGZ"dHdIZ#dJdKZ$dLdMZ%dNdOZ&dPdQZ'dRdSZ(dTdUZ)dVdWZ*dXdYZ+dZd[Z,d\d]Z-d^d_Z.d`daZ/dbdcZ0dS)erzName of the archive member.zPermission bits.z6User ID of the user who originally stored this member.z7Group ID of the user who originally stored this member.zSize in bytes.zTime of last modification.zHeader checksum.zFile type. type is usually one of these constants: REGTYPE, AREGTYPE, LNKTYPE, SYMTYPE, DIRTYPE, FIFOTYPE, CONTTYPE, CHRTYPE, BLKTYPE, GNUTYPE_SPARSE.zcName of the target file name, which is only present in TarInfo objects of type LNKTYPE and SYMTYPE.z User name.z Group name.zDevice major number.zDevice minor number.zThe tar header starts here.zThe file's data starts here.zMA dictionary containing key-value pairs of an associated pax extended header.zSparse member information.N)rrr)r*r'r(chksumtypelinknamer+r,devmajordevminorrr pax_headersrr_sparse_structs _link_targetrcCsj||_d|_d|_d|_d|_d|_d|_t|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_i|_dS)Nirr)rrr)r*r'r(rREGTYPErrr+r,rrrrrrrrr8r8r9rs"zTarInfo.__init__cCs|jSr0rrr8r8r9r%sz TarInfo.pathcCs ||_dSr0rrr8r8r9r%scCs|jSr0rrr8r8r9r& szTarInfo.linkpathcCs ||_dSr0r)rrr8r8r9r&scCsd|jj|jt|fS)Nz<%s %r at %#x>)rrqridrr8r8r9__repr__szTarInfo.__repr__cCsl|j|jd@|j|j|j|j|j|j|j|j |j |j |j d }|dt krh|ddsh|dd7<|S)N) rrr)r*r'r(rrrr+r,rrrr/)rrr)r*r'r(rrrr+r,rrDIRTYPEr)rinfor8r8r9get_infos"zTarInfo.get_infosurrogateescapecCsT|}|tkr||||S|tkr4||||S|tkrH|||StddS)Nzinvalid format)rr create_ustar_headerrcreate_gnu_headerrcreate_pax_headerrK)rrTr6r7rr8r8r9tobuf0s z TarInfo.tobufcCsnt|d<t|d||tkr(tdt|d||tkr^||d||\|d<|d<||t||S)Nmagicrzlinkname is too longrprefix) POSIX_MAGICr2r1 LENGTH_LINKrK LENGTH_NAME_posix_split_name_create_headerr )rrr6r7r8r8r9r>s zTarInfo.create_ustar_headercCst|d<d}t|d||tkr<|||dt||7}t|d||tkrl|||dt||7}|||t ||S)Nr rrr) GNU_MAGICr2r1r _create_gnu_long_headerGNUTYPE_LONGLINKr GNUTYPE_LONGNAMErr)rrr6r7rYr8r8r9rKszTarInfo.create_gnu_headerc Cs*t|d<|j}ddtfddtfddfD]j\}}}||kr>q*z||dd Wn$tk rv||||<Yq*YnXt|||kr*||||<q*d D]`\}}||krd ||<q||}d |krd |d krnn t|t rt |||<d ||<q|r| |t |} nd} | | |tddS)Nr rr%rr&)r+r+ )r,r,rrDrE))r)rB)r*rB)r' )r(rrrBr#rr)r rcopyr r r1UnicodeEncodeErrorr2 isinstancefloatstr_create_pax_generic_headerXHDTYPErr ) rrr6rrZhnamer5rSvalrYr8r8r9rYs8    *  zTarInfo.create_pax_headercCs||tdS)Nr/)rXGLTYPE)clsrr8r8r9create_pax_global_headersz TarInfo.create_pax_global_headercCs~|d}tdt|D]T}d|d|}d||d}t|||tkrt|||tkrqvqtd||fS)Nrr#zname is too long)splitrHr2rr1 LENGTH_PREFIXr rK)rrr6r7Z componentsrNr r8r8r9rs zTarInfo._posix_split_namecCsVt|ddd||t|ddd@d|t|ddd|t|d dd|t|d dd |t|d dd |d |dtt|ddd|||dtt|ddd||t|ddd||t|ddd|t|ddd|t|ddd||g}tdtd|}t |t dd}|ddt d|d|dd}|S)NrrrrrrrBr)r*r'rr(s rrr r+rr,rrr rz%dsriz%06orDi) r:getrUrr rWrrrrZrP)rrTr6r7partsrYrr8r8r9rs(  &zTarInfo._create_headercCs.tt|t\}}|dkr*|t|t7}|S)Nr)r^r2rr3)payloadrerfr8r8r9_create_payloadszTarInfo._create_payloadcCsR|||t}i}d|d<||d<t||d<t|d<||t||||S)Nz ././@LongLinkrrr'r )r1r3r2rrr r&)rrrr6r7rr8r8r9rs zTarInfo._create_gnu_long_headerc Cs2d}|D]8\}}z|ddWq tk rBd}YqFYq Xq d}|rV|d7}|D]\}}|d}|r||d}n |d}t|t|d}d } } |tt| } | | krq| } q|tt| d d |d |d 7}q^i} d| d<|| d<t|| d<t| d<|| td d| |S)NFr/rETrs21 hdrcharset=BINARY rrrrD = z././@PaxHeaderrrr'r r) itemsr1rr2rrPr rr r&) rrrr6binarykeywordvaluerecordslrMr>rr8r8r9rs<  ( z"TarInfo._create_pax_generic_headerc Csvt|dkrtdt|tkr(td|ttkr>tdt|dd}|t|krbt d|}t |dd|||_ t|dd |_ t|d d |_ t|d d |_t|d d |_t|d d|_||_|dd |_t |d d|||_t |dd|||_t |dd|||_t|dd|_t|dd|_t |dd||}|jtkr|j drt|_|jtkr8d}g}tdD]l} z0t|||d} t||d|d} Wntk rYqYnX|| | f|d7}qt|d} t|dd} || | f|_ |!rP|j "d|_ |rr|jt#krr|d|j |_ |S)Nrz empty headerztruncated headerzend of file headerz bad checksumrlt|ii i)iIiQiYirirriii)$r2rtrrucountr3rvrOrZrLr?rrr)r*r'r(rrrr+r,rrAREGTYPErrGNUTYPE_SPARSErHrKrboolrisdirrstrip GNU_TYPES)rrYr6r7robjr rstructsrNrnumbytes isextendedorigsizer8r8r9frombuf sZ         zTarInfo.frombufcCs8|jt}|||j|j}|jt|_||Sr0) rr_rrDr6r7rr _proc_member)rrrYr?r8r8r9 fromtarfileIs zTarInfo.fromtarfilecCsT|jttfkr||S|jtkr,||S|jtttfkrF| |S| |SdSr0) rrr _proc_gnulongr: _proc_sparserrSOLARIS_XHDTYPE _proc_pax _proc_builtin)rrr8r8r9rE^s    zTarInfo._proc_membercCsR|j|_|j}|s$|jtkr4|||j7}||_| |j |j |j |Sr0) rrrisregrSUPPORTED_TYPES_blockr'r_apply_pax_inforr6r7)rrrr8r8r9rKks zTarInfo._proc_builtincCs|j||j}z||}Wntk r>tdYnX|j|_|jt krft ||j |j |_ n|jtkrt ||j |j |_|S)N missing or bad subsequent header)rr_rNr'rFr rwrrrr?r6r7rrr)rrrYnextr8r8r9rG|s  zTarInfo._proc_gnulongc Cs|j\}}}|`|r|jt}d}tdD]n}z0t|||d}t||d|d} Wntk rzYqYnX|r| r||| f|d7}q,t|d}q||_ |j |_ |j | |j |_||_ |S)Nrrr7i)rrr_rrHrOrKrr;rrrrNr'r) rrr@rBrCrYrrNrrAr8r8r9rHs(      zTarInfo._proc_sparsecCs.|j||j}|jtkr&|j}n |j}t d|}|dk rX| d d|d<| d}|dkrr|j }nd}td}d}|||}|sq6|\} } t| } | dkrtd||d d|d| d} || dd|j} | tkr|| ||j |j} n|| dd|j} | || <|| 7}qz||} Wntk rbtd YnXd |kr||| |nHd |kr|| ||n.| d dkr| ddkr|| |||jttfkr*| ||j |j|j!| _!d|kr*| j"} | #s| jt$kr$| | | j7} | |_!| S)Ns\d+ hdrcharset=([^\n]+)\nr#r/ hdrcharsetZBINARYs(\d+) ([^=]+)=rrGr$rPGNU.sparse.mapGNU.sparse.sizezGNU.sparse.major1zGNU.sparse.minorrFr')%rr_rNr'rrrrresearchgroupr=r#r6compilematchgroupsrIrLrjr_decode_pax_fieldr7PAX_NAME_FIELDSrFr rw_proc_gnusparse_01_proc_gnusparse_00_proc_gnusparse_10rrIrOrrrLrM)rrrYrr[rSr6Zregexrr5r,r-rQrr8r8r9rJsh       $         zTarInfo._proc_paxcCshg}td|D]}|t|dqg}td|D]}|t|dq:tt|||_dS)Ns\d+ GNU.sparse.offset=(\d+)\nr#s\d+ GNU.sparse.numbytes=(\d+)\n)rWfinditerrrIrYlistzipr)rrQrrYZoffsetsr[rAr8r8r9r`szTarInfo._proc_gnusparse_00cCs@dd|ddD}tt|ddd|ddd|_dS)NcSsg|] }t|qSr8)rI).0xr8r8r9 $sz.TarInfo._proc_gnusparse_01..rT,r$r#)r!rcrdr)rrQrrr8r8r9r_!szTarInfo._proc_gnusparse_01cCsd}g}|jt}|dd\}}t|}t||dkrtd|krT||jt7}|dd\}}|t|q,|j|_t t |ddd|ddd|_ dS)Nr)r#r$) rr_rr!rIr2rrrrcrdr)rrQrrfieldsrrYZnumberr8r8r9ra's  zTarInfo._proc_gnusparse_10c Cs|D]\}}|dkr&t|d|q|dkr@t|dt|q|dkrZt|dt|q|tkr|tkrzt||}Wntk rd}YnX|dkr|d}t|||q||_dS)NzGNU.sparse.namer%rUr'zGNU.sparse.realsizerr) r*setattrrI PAX_FIELDSPAX_NUMBER_FIELDSrKr=rr)rrr6r7r,r-r8r8r9rO7s"  zTarInfo._apply_pax_infocCs4z||dWStk r.|||YSXdS)NrE)r=UnicodeDecodeError)rr-r6Zfallback_encodingZfallback_errorsr8r8r9r]NszTarInfo._decode_pax_fieldcCs"t|t\}}|r|d7}|tS)Nr#)r^r)rr8rerfr8r8r9rNVszTarInfo._blockcCs |jtkSr0)r REGULAR_TYPESrr8r8r9rL_sz TarInfo.isregcCs|Sr0)rLrr8r8r9isfilecszTarInfo.isfilecCs |jtkSr0)rrrr8r8r9r<gsz TarInfo.isdircCs |jtkSr0)rSYMTYPErr8r8r9issymksz TarInfo.issymcCs |jtkSr0)rLNKTYPErr8r8r9islnkosz TarInfo.islnkcCs |jtkSr0)rCHRTYPErr8r8r9ischrssz TarInfo.ischrcCs |jtkSr0)rBLKTYPErr8r8r9isblkwsz TarInfo.isblkcCs |jtkSr0)rFIFOTYPErr8r8r9isfifo{szTarInfo.isfifocCs |jdk Sr0)rrr8r8r9issparseszTarInfo.issparsecCs|jtttfkSr0)rrtrvrxrr8r8r9isdevsz TarInfo.isdev)r)1rqrrrsdict __slots__rpropertyr%setterr&rrrr rrrr classmethodr r staticmethodrr&rrrDrFrErKrGrHrJr`r_rarOr]rNrLror<rqrsrurwryrzr{r8r8r8r9rs      1     2 >  h  c @seZdZdZdZdZdZeZe Z dZ e Z eZd[ddZedddefd d Zed\d d Zed]ddZed^ddZed_ddZdddddZddZddZddZdd Zd`d!d"Zdadd$d%d&Zdbdd'd(d)Zdcd*d+Z dddd-d.d/Z!dedd-d1d2Z"d3d4Z#dfd5d6Z$d7d8Z%d9d:Z&d;d<Z'd=d>Z(d?d@Z)dAdBZ*dCdDZ+dEdFZ,dGdHZ-dIdJZ.dgdKdLZ/dMdNZ0dhdOdPZ1dQdRZ2dSdTZ3dUdVZ4dWdXZ5dYdZZ6dS)irrFr#Nrzrc Csddddd}||krtd||_|||_|sh|jdkrTtj|sTd|_d|_t||j}d |_n@|dkrt|d rt |j t t fr|j }t|d r|j|_d |_|rtj |nd|_ ||_|dk r||_|dk r||_|dk r||_|dk r||_|dk r ||_| |_| dk r0|jtkr0| |_ni|_| dk rF| |_| dk rV| |_| |_d |_g|_d |_|j|_i|_z|jd krd|_ |!|_ |jdkr2|j"|jz|j#|}|j$|WnXt%k r|j"|jYq2Yn0t&k r,}zt't |W5d}~XYnXq|jdkr|d |_|jr||j(|j)}|j*||jt+|7_Wn&|js|j,d |_YnXdS)Nrbzr+bwbxbrzar{rf!mode must be 'r', 'a', 'w' or 'x'rr{FrrTrzrr{rf)-rKr_moder}r%exists bltn_openrrrrrrPabspathrrTr dereference ignore_zerosr6r7rrdebug errorlevel copybufsizermembers_loadedrrinodes firstmemberrQrrFrrvr rr rr`r2r)rrrrrTrrrr6r7rrrrZmodeserYr8r8r9rs             "   zTarFile.__init__c s|s|std|dkrfdd}tj|dD]j}tj|}|dk rV|} z||d|f|WSttfk r|dk r|| Yq2Yq2Xq2tdnd|kr |dd \} }| pd} |pd }|jkrtj|}n td |||| |f|Sd |kr|d d \} }| p.d} |p8d }| d krLtdt || |||} z|| | f|} Wn| YnXd| _ | S|dkrj |||f|StddS)Nznothing to open)rzr:*csj|dkS)Ntaropen) OPEN_METH)rrr8r9not_compressed:sz$TarFile.open..not_compressedkeyrzz%file could not be opened successfully:r#rr|ryzmode must be 'r' or 'w'Frzundiscernible mode) rKsortedrrkrrrrr!rrrr) rrrrrdkwargsrrfuncZ saved_posfilemodestreamrr8rr9rsP%            z TarFile.opencKs |dkrtd||||f|S)Nrr)rK)rrrrrr8r8r9rkszTarFile.taropenrcKs|dkrtdzddlm}Wntk r<tdYnXz|||d||}Wn.tk r|dk r||dkr|tdYnXz|j|||f|}WnBtk r||dkrtdYn|YnXd |_ |S) Nrzr{rfmode must be 'r', 'w' or 'x'r)GzipFilezgzip module is not availablergrzrF) rKgziprrrrrrrr)rrrr compresslevelrrrr8r8r9gzopenss0zTarFile.gzopenc Ks|dkrtdzddlm}Wntk r<tdYnX||pF|||d}z|j|||f|}WnFttfk r||dkrt dYn|YnXd |_ |S) Nrrr)BZ2Filer)rrzznot a bzip2 fileF) rKrrrrrrEOFErrorrrr)rrrrrrrrr8r8r9bz2opens&zTarFile.bz2openc Ks|dkrtdzddlm}m}Wntk r@tdYnX||pJ|||d}z|j|||f|}WnF|tfk r||dkrt dYn|YnXd |_ |S) Nrrr)LZMAFilerr)presetrzznot an lzma fileF) rKrrrrrrrrrr) rrrrrrrrrr8r8r9xzopens&zTarFile.xzopenrrrr)rrrrcCs|jr dSd|_z`|jdkrn|jttd|jtd7_t |jt \}}|dkrn|jtt |W5|js|jXdS)NTrr$r) rrrrrr`r3rrr^ RECORDSIZE)rrerfr8r8r9rs z TarFile.closecCs"||}|dkrtd||S)Nzfilename %r not found) _getmemberKeyError)rrrr8r8r9 getmembers  zTarFile.getmembercCs||js||jSr0)_checkr_loadrrr8r8r9 getmembersszTarFile.getmemberscCsdd|DS)NcSsg|] }|jqSr8r)rerr8r8r9rgsz$TarFile.getnames..)rrr8r8r9getnamesszTarFile.getnamesc Cs^|d|dk r|j}|dkr$|}tj|\}}|tjd}|d}|}||_ |dkr|j stt |}qt |}nt |}d}|j}t |r|j|jf} |j s|jdkr| |jkr||j| krt} |j| }nt} | dr||j| <nht |rt} nVt |r"t} nDt |r>t} t|}n(t |rPt} nt |rbt!} ndS||_||_"|j#|_$|j%|_&| tkr|j'|_(nd|_(|j)|_*| |_+||_,t-rzt-.|j$d|_/Wnt0k rYnXt1rzt12|j&d|_3Wnt0k rYnX| tt!fkrZt4tdrZt4tdrZt5|j6|_7t8|j6|_9|S)Nawxrrr#rmajorminor):rrr}r% splitdriverseplstriprrrlstatstatfstatfilenost_modeS_ISREGst_inost_devst_nlinkrrrrS_ISDIRrS_ISFIFOrxS_ISLNKrpreadlinkS_ISCHRrtS_ISBLKrvrst_uidr)st_gidr*st_sizer'st_mtimer(rrpwdgetpwuidr+rgrpgetgrgidr,rrst_rdevrrr) rrarcnamerZdrvrZstatresrZstmdinoderr8r8r9 gettarinfos                 zTarFile.gettarinfoT)rcCs||dkr|}|D]}|rtt|jtd|jp>|j|jpH|jf| s`| rztdd|j |j fntd|j tdt|jddt|j|rdnd|r|rtd |j|rtd |jtqdS) Nz%s/%sz%10sz%d,%dz%10dz%d-%02d-%02d %02d:%02d:%02drrrz-> zlink to )rrorrrr+r)r,r*rurwrrr'r localtimer(rr<rqrrsrn)rverboserrr8r8r9rcjs0 z TarFile.listfilterc Cs6|d|dkr|}|jdk rFtj||jkrF|dd|dS|d||||}|dkrz|dd|dS|dk r||}|dkr|dd|dS|rt|d}| ||W5QRXn`| r(| ||r2t t |D]*}|j tj||tj||||dqn | |dS) Nrr$ztarfile: Skipped %rr#ztarfile: Unsupported type %rztarfile: Excluded %rrr)rrr}r%r_dbgrrLraddfiler<rlistdiraddr)rrr recursiverrfr8r8r9rs8       z TarFile.addcCs|dt|}||j|j|j}|j||jt |7_|j }|dk rt ||j|j |dt |j t\}}|dkr|jtt||d7}|j|t7_|j|dS)Nr)rdrr#)rrrrTr6r7rr`rr2rr]r'r^rr3rr)rrrrYrdrerfr8r8r9rs   zTarFile.addfile. numeric_ownerc Csg}|dkr|}|D]>}|r:||t|}d|_|j||| |dq|jddd||D]}tj ||j }z,|j |||d| ||| ||Wqptk r}z"|jdkrЂn|dd|W5d}~XYqpXqpdS) N set_attrsrcSs|jSr0r)rr8r8r9rz$TarFile.extractall..rrr# tarfile: %s)r<rrrextractsortreverser}r%rrchownutimechmodr rr)rr%rrZ directoriesrdirpathrr8r8r9 extractalls.    zTarFile.extractallrc Cs |dt|tr ||}n|}|r>tj||j|_ z"|j |tj||j ||dWnt k r}zH|j dkrn6|jdkr|dd|jn|dd|j|jfW5d}~XYnBtk r}z"|j dkrn|dd|W5d}~XYnXdS)Nrzrrr#rztarfile: %s %r)rrrrrsr}r%rrr_extract_memberrrrfilenamerstrerrorr )rmemberr%rrrrr8r8r9rs*      ( zTarFile.extractcCs|dt|tr ||}n|}|s6|jtkrB|||S|sR| rzt|j t rht dq~| ||SndSdS)Nrzz'cannot extract (sym)link as file object)rrrrrLrrM fileobjectrsrqrrr extractfile_find_link_target)rrrr8r8r9r$s      zTarFile.extractfilecCsT|d}|dtj}tj|}|r>tj|s>t||sN| rh| dd|j |j fn| d|j | r|||n|r|||nx|r|||nb|s|r|||nD|s| r|||n&|jtkr|||n ||||rP||||| sP||||||dS)Nrr#z%s -> %s)r=rr}rr%dirnamermakedirsrsrqrrrrLmakefiler<makedirrymakefiforurwmakedevmakelinkrrM makeunknownrrr)rr targetpathrrZ upperdirsr8r8r9rCs4       zTarFile._extract_membercCs*zt|dWntk r$YnXdS)Nr)r}mkdirFileExistsErrorrrrr8r8r9rtszTarFile.makedirc Cs|j}||j|j}t|db}|jdk rn|jD]"\}}||t|||t|q4||j| nt|||jt|W5QRXdS)Nr) rrrrrrr]rr'truncate)rrrsourcerdtargetrr'r8r8r9r~s      zTarFile.makefilecCs"||||dd|jdS)Nr#z9tarfile: Unknown file type %r, extracted as regular file.)rrrrr8r8r9rs zTarFile.makeunknowncCs"ttdrt|ntddS)Nmkfifozfifo not supported by system)rr}r r rr8r8r9rs  zTarFile.makefifocCs^ttdrttdstd|j}|r6|tjO}n |tjO}t||t |j |j dS)Nmknodrz'special devices not supported by system) rr}r rrwrS_IFBLKS_IFCHRr rrr)rrrrr8r8r9rs  zTarFile.makedevc CszL|rt|j|n0tj|jr8t|j|n|| ||WnHt k rz|| ||Wnt k rt dYnXYnXdS)Nz%unable to resolve link inside archive) rqr}symlinkrr%rrlinkrrsymlink_exceptionrr rr8r8r9rs  zTarFile.makelinkcCsttdrtdkr|j}|j}|sztrzShow listing of a tarfile)metavarr+z-ez --extract+)r-z zExtract tarfile into target dir)nargsr.r+z-cz--create)zzzCreate tarfile from sourcesz-tz--testzTest if a tarfile is validrzrz{!r} is a tar archive.r#z{!r} is not a tar archive. r)rr$)r%rz{!r} file is extracted.z+{!r} file is extracted into {!r} directory.rrr)rz.tgzz.xzz.txzz.bz2z.tbzz.tbz2z.tb2zw:r{z{!r} file created.)argparseArgumentParser add_argumentadd_mutually_exclusive_group parse_argstestrrrrnrlr!rrTexitrcrrr2r}curdir format_helprZcreatepopr%splitextr)r1r'parserrYargsrarZtfr8r#Ztar_name_extZ compressionsZtar_modeZ tar_files file_namer8r8r9main s                     rA__main__)]version __author__ __credits__builtinsrrrlr}rr\rrrWrrWrrrAttributeErrorNotImplementedErrorrr NameError__all__r3rrrr r r r"rr9rrrprtrvrrxZCONTTYPErrr:rrrIr rrrrMrnr>rkr^rrIrlrr getfilesystemencodingr:r?rOrUrZr]ro Exceptionrr rrr r rtrurvrLrwrxrobjectrrBufferedReaderrrrrrArqr8r8r8r9 s         qh D W