Edit File: quopri.cpython-37.pyc
B ����q}�ca������������������@���s����d�Z�ddddgZdZdZdZdZyd d lmZmZ�W�n�e k rP���dZdZY�nX�dd ��Z dd��Zddd�Zddd�Z ddd�Zddd�Zdd��Zdd��Zdd��Zedkr�e���dS�) zHConversions to/from quoted-printable transport encoding as per RFC 1521.�encode�decode�encodestring�decodestring����=�L���s���0123456789ABCDEF����������)�a2b_qp�b2a_qpNc�������������C���sH���t�|�t�st�|�dkr|S�|�dkr&|S�|�tkpFd|���ko@dkn���S�)z�Decide whether a particular byte ordinal needs to be quoted. The 'quotetabs' flag indicates whether embedded tabs and spaces should be quoted. Note that line-ending tabs and spaces are always encoded, as per RFC 1521. s��� ����_���� ����~)� isinstance�bytes�AssertionError�ESCAPE)�c� quotetabs�header��r����+/opt/alt/python37/lib64/python3.7/quopri.py�needsquoting���s����r���c�������������C���sB���t�|�t�rt|��dkst�t|��}�ttt|�d��t|�d��f��S�)zQuote a single character.��������)r���r����lenr����ordr����HEX)r���r���r���r����quote$���s����r���Fc������� ������C���s<��t�dk r,|����}t�|||d�}|�|��dS�|dfdd�}d}x�|����}|sNP�g�} d} |dd��dkrv|dd��}d} xL|D�]D}t|f�}t|||�r�t|�}|r�|dkr�| �d ��q|| �|��q|W�|dk r�||��t� | �}x:t |�tk�r||dtd ���dd��|td �d��}q�W�|}q@W�|dk �r8||| d��dS�) av��Read 'input', apply quoted-printable encoding, and write to 'output'. 'input' and 'output' are binary file objects. The 'quotetabs' flag indicates whether embedded tabs and spaces should be quoted. Note that line-ending tabs and spaces are always encoded, as per RFC 1521. The 'header' flag indicates whether we are encoding spaces as _ as per RFC 1522.N)r���r������� c�������������S���sj���|�r<|�dd���dkr<|��|�d�d��t|�dd�����|���n*|�dkrX|��t|��|���n|��|�|���d�S�)N���s��� ����.)�writer���)�s�output�lineEndr���r���r���r!���;���s ����(zencode.<locals>.writer���r���r���r���r���s���= )r$���)r ����readr!����readliner���r���r����append�EMPTYSTRING�joinr����MAXLINESIZE) �inputr#���r���r����data�odatar!���Zprevline�lineZoutline�strippedr���Zthisliner���r���r���r���,���s@���� c�������������C���sF���t�d�k rt�|�||d�S�ddlm}�||��}|��}t||||��|���S�)N)r���r���r���)�BytesIO)r ����ior0���r����getvalue)r"���r���r���r0����infp�outfpr���r���r���r���j���s����c�������������C���s��t�dk r*|����}t�||d�}|�|��dS�d}�x�|����}|s@P�dt|��}}|dkr�||d�|��dkr�d} |d�}x.|dkr�||d�|��dkr�|d�}qxW�nd} �x*||k��r�|||d���} | dkr�|r�|d �}|d�}q�| tkr�|| �}|d�}q�|d�|k�r| �sd} P�q�|d�|k��rR||d�|d ���tk�rR|t�}|d �}q�|d �|k��r�t||d�|d �����r�t||d �|d�����r�|tt||d�|d����f��}|d�}q�|| �}|d�}q�W�| s2|�|d���d}q2W�|�r�|�|��dS�)z�Read 'input', apply quoted-printable decoding, and write to 'output'. 'input' and 'output' are binary file objects. If 'header' is true, decode underscore as space (per RFC 1522).N)r���r���r���r���r���s��� r���r�����������) r ���r%���r!���r&���r���r����ishexr����unhex)r+���r#���r���r,���r-����newr.����i�n�partialr���r���r���r���r���u���sR���� ��� � �(� B"� �c�������������C���sD���t�d�k rt�|�|d�S�ddlm}�||��}|��}t|||d��|���S�)N)r���r���)r0���)r ���r1���r0���r���r2���)r"���r���r0���r3���r4���r���r���r���r�������s����c�������������C���sV���t�|�t�st�d|���ko dkn��pTd|���ko8dkn��pTd|���koPdkS���S�)zDReturn true if the byte ordinal 'c' is a hexadecimal digit in ASCII.����0����9����a����f����A����F)r���r���r���)r���r���r���r���r7�������s����r7���c�������������C���s����d}x�|�D�]�}t�|f�}d|��kr,dkr:n�n td�}n`d|��krNdkr`n�ntd�d�}n:d |��krtd kr�n�ntd �d�}nds�tdt|����|d �t|�|��}q W�|S�)z.Get the integer value of a hexadecimal number.r���r=���r>����0r?���r@����a� ���rA���rB���Fznon-hex digit r���)r���r���r����repr)r"����bitsr���r:���r���r���r���r8�������s���� r8���c��������������C���s���dd�l�}�dd�l}y|�|�jdd���d�\}}W�nV�|jk r��}�z6|�j|�_t|��td��td��td��|��d��W�d�d�}~X�Y�nX�d}d}x(|D�] \}}|dkr�d}|d kr�d}q�W�|r�|r�|�j|�_td ��|��d��|s�dg}d} x�|D�]�} | dk�r|�jj }nNyt | d�}W�n>�tk �rR�}�z|�j�d | |f���d} w�W�d�d�}~X�Y�nX�z*|�rlt ||�jj ��nt||�jj |��W�d�| dk�r�|����X�q�W�| �r�|��| ��d�S�)Nr���r���Ztdz"usage: quopri [-t | -d] [file] ...z-t: quote tabsz-d: decode; default encoder5���z-tz-dz -t and -d are mutually exclusive�-�rbz%s: can't open (%s) )�sys�getopt�argv�error�stderr�stdout�print�exit�stdin�buffer�open�OSErrorr!���r���r����close)rJ���rK���Zopts�args�msgZdecoZtabs�orD����sts�file�fpr���r���r����main����sT������ � r]����__main__)F)FF)F)F)�__doc__�__all__r���r*���r���r(���Zbinasciir ���r ����ImportErrorr���r���r���r���r���r���r7���r8���r]����__name__r���r���r���r����<module>���s*��� > + .