3 f @ sd d Z ddlZddlZddlZdddgZG dd deZd ddZdd dZd d Z e dkr`e dS )zImplementation of the UUencode and UUdecode functions. encode(in_file, out_file [,name, mode]) decode(in_file [, out_file, mode]) NErrorencodedecodec @ s e Zd ZdS )r N)__name__ __module____qualname__ r r '/opt/alt/python36/lib64/python3.6/uu.pyr ' s c C s\ g }z6| dkrt jj} n`t| trz|dkr8tjj| }|dkrfytj| j }W n t k rd Y nX t| d} |j| |dkrt j j}nt|trt|d}|j| |dkrd}|dkrd}|jdd}|jdd }|jd |d@ |f jd | jd }x.t|dkr.|jtj| | jd }qW |jd W dx|D ]}|j qDW X dS )z Uuencode file-Nrbwbi z\n z\rzbegin %o %s i ascii- r s end )sysstdinbuffer isinstancestrospathbasenamestatst_modeAttributeErroropenappendstdoutreplacewriter readlenbinasciiZb2a_uuclose)in_fileout_filenamemodeopened_filesdatafr r r r * sB Fc C s: g }| dkrt jj} nt| tr4t| d} |j| zxr| j }|sNtd|j dsZq:|j dd}t|dkr:|d dkr:yt|d d P W q: t k r Y q:X q:W |dkr|d jdjd }tjj|rtd| |dkrt|d d }|dkr t jj}nNt|trXt|d}ytjj|| W n tk rH Y nX |}|j| | j }x|r|jddkrytj|} W nj tjk r } zJ|d d d@ d d d }tj|d| } |st jjd| W Y dd} ~ X nX |j| | j }qbW |stdW dx|D ]}|j q"W X dS )zDecode uuencoded filer r z'No valid begin line found in input files begin r Ns r z"Cannot overwrite existing file: %sr s end ? zWarning: %s zTruncated input file)r r r r r r r readliner startswithsplitr" int ValueErrorrstripr r r existsr chmodr stripr# Za2b_uustderrr r$ ) r% r&