a Hgm@sdddlZddlZddlZgdZGdddeZdddddZdd d Zd d Ze d kr`edS)N)Errorencodedecodec@s eZdZdS)rN)__name__ __module__ __qualname__rr/usr/lib64/python3.9/uu.pyr&srFbacktickc Cszg}zX|dkrtjj}n^t|trx|dur8tj|}|durdzt|j }Wnt ybYn0t |d}| ||dkrtj j}nt|trt |d}| ||durd}|durd}|dd}|dd}|d |d @|fd |d }t|d kr,|tj||d|d }q|r>|dn |dW|D]}|qNn|D]}|qd0dS)N-rbwbi z\n z\rz begin %o %s iascii-rr s` end s end )sysstdinbuffer isinstancestrospathbasenamestatst_modeAttributeErroropenappendstdoutreplacewriterreadlenbinasciiZb2a_uuclose)in_fileout_filenamemoder opened_filesdatafrrr r)sJ                rc Csg}|dkrtjj}nt|tr4t|d}||z2|}|sLtd| dsXq8| dd}t |dkr8|ddkr8zt |d d WqWq8t yYq80q8|dur8|dd d }tj|rtd || tjs(dtj|vs(tjr8| tjs(dtj|vr8td|d|durPt |d d }|dkrdtjj}n0t|trt|d}t|||}|||}|rD|d dkrDzt|} Wnltjy,} zP|ddd@ddd} t|d| } |stjd| WYd} ~ n d} ~ 00|| |}q|sRtdW|D]} | qXn|D]} | qn0dS)Nr r z'No valid begin line found in input filesbegin rs rz Cannot overwrite existing file: z..zRefusing to write to z due to directory traversalrsend ?z Warning: %s zTruncated input file)rrrrrrrreadliner startswithsplitr$int ValueErrorrstriprrrexistssepaltsepr chmodstripr%Za2b_uustderrr"r&) r'r(r*quietr+ZhdrZ hdrfieldsfpsr,vnbytesr-rrr rcsv                 &   rcCs4ddl}|jdd}|jdddddd d |jd d d ddd d |\}}t|dkrl|dtdtjj }tj j }t|dkr|d}t|dkr|d}|j r|j rt |trt|d}nttjddtdt ||nD|j r&t |tr t|d}nttjddtdt||dS)Nrz'usage: %prog [-d] [-t] [input [output]])usagez-dz--decoderzDecode (instead of encode)?F store_true)desthelpdefaultactionz-tz--texttextz2data is text, encoded format unix-compatible text?r/zincorrect number of argumentsr1rz: cannot do -t to stdoutr z: cannot do -t from stdin)optparseZ OptionParserZ add_option parse_argsr$errorrexitrrr rrNrrrprintargvr)rOparseroptionsargsinputoutputrrr tests6              rZ__main__)NN)NNF) r%rr__all__ ExceptionrrrrZrrrrr  s: J&