509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \ÿB  ã               @   sr  d dddgZ ddlmZ ddlZddlZddlmZ ddlmZ d	Z	d
Z
dZdZdZdZdZe	e	dfe	e	dfe	e	dfe	e	dfe	e	dfe	e	dfe	e	dfe	e	dfe	e	dfe	e	dfe	e	dfe	e	dfd*e
e
dfe
e
dfe
ddfe
ddfe
ddfe
e
dfee
dfdœZddddddddddddddddddddddddd œZd!d"dd#œZd+d$d„Zd%d„ Zd&d„ Zd'd(„ ZG d)d „ d ƒZdS ),ÚCharsetÚ	add_aliasÚadd_charsetÚ	add_codecé    )ÚpartialN)Úerrors)Úencode_7or8bité   é   é   é   zus-asciizunknown-8bitÚ ziso-2022-jpzutf-8)z
iso-8859-1z
iso-8859-2z
iso-8859-3z
iso-8859-4z
iso-8859-9ziso-8859-10ziso-8859-13ziso-8859-14ziso-8859-15ziso-8859-16zwindows-1252Zvisciizus-asciiÚbig5Úgb2312zeuc-jpÚ	shift_jisziso-2022-jpzkoi8-rzutf-8z
iso-8859-1z
iso-8859-2z
iso-8859-3z
iso-8859-4z
iso-8859-9ziso-8859-10ziso-8859-13ziso-8859-14ziso-8859-15ziso-8859-16zks_c_5601-1987zeuc-jpzeuc-kr)Úlatin_1zlatin-1Zlatin_2zlatin-2Zlatin_3zlatin-3Zlatin_4zlatin-4Zlatin_5zlatin-5Zlatin_6zlatin-6Zlatin_7zlatin-7Zlatin_8zlatin-8Zlatin_9zlatin-9Zlatin_10zlatin-10Úcp949Úeuc_jpÚeuc_krÚasciiÚeucgb2312_cnÚbig5_tw)r   r   zus-asciic             C   s"   |t krtdƒ‚|||ft| < d S )Nz!SHORTEST not allowed for body_enc)ÚSHORTESTÚ
ValueErrorÚCHARSETS)ÚcharsetZ
header_encZbody_encÚoutput_charset© r   ú%/usr/lib64/python3.6/email/charset.pyr   m   s    c             C   s   |t | < d S )N)ÚALIASES)ÚaliasZ	canonicalr   r   r   r   ‰   s    c             C   s   |t | < d S )N)Ú	CODEC_MAP)r   Z	codecnamer   r   r   r   ’   s    c             C   s"   |t kr| jddƒS | j|ƒS d S )Nr   Úsurrogateescape)ÚUNKNOWN8BITÚencode)ÚstringÚcodecr   r   r   Ú_encodeŸ   s    r'   c               @   s\   e Zd Zefdd„Zdd„ ZeZdd„ Zdd„ Zd	d
„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )r   c             C   sÀ   y$t |tƒr|jdƒ n
t|dƒ}W n tk
rB   tj|ƒ‚Y nX |jƒ }tj||ƒ| _	t
j| j	ttd fƒ\}}}|s~| j	}|| _|| _tj||ƒ| _tj| j	| j	ƒ| _tj| j| jƒ| _d S )Nr   )Ú
isinstanceÚstrr$   ÚUnicodeErrorr   ZCharsetErrorÚlowerr   ÚgetÚinput_charsetr   r   ÚBASE64Úheader_encodingÚbody_encodingr   r!   Zinput_codecÚoutput_codec)Úselfr-   ZhencZbencZconvr   r   r   Ú__init__Ó   s&    

zCharset.__init__c             C   s
   | j jƒ S )N)r-   r+   )r2   r   r   r   Ú__str__ô   s    zCharset.__str__c             C   s   t | ƒt |ƒjƒ kS )N)r)   r+   )r2   Úotherr   r   r   Ú__eq__ù   s    zCharset.__eq__c             C   s$   | j tkrdS | j tkrdS tS d S )Nzquoted-printableÚbase64)r0   ÚQPr.   r   )r2   r   r   r   Úget_body_encodingü   s
    

zCharset.get_body_encodingc             C   s   | j p
| jS )N)r   r-   )r2   r   r   r   Úget_output_charset  s    zCharset.get_output_charsetc             C   s6   | j pd}t||ƒ}| j|ƒ}|d kr*|S |j||ƒS )Nzus-ascii)r1   r'   Ú_get_encoderÚheader_encode)r2   r%   r&   Úheader_bytesÚencoder_moduler   r   r   r<     s    


zCharset.header_encodec             C   s  | j pd}t||ƒ}| j|ƒ}t|j|d�}| jƒ }t|ƒt }g }	g }
t|ƒ| }x˜|D ]�}|
j	|ƒ t
j|
ƒ}|jt||ƒƒ}||krZ|
jƒ  |	 rª|
 rª|	j	d ƒ n.|	r²dnd}t
j|
ƒ}t||ƒ}|	j	||ƒƒ |g}
t|ƒ| }qZW t
j|
ƒ}t||ƒ}|	j	||ƒƒ |	S )Nzus-ascii)r   ú r   )r1   r'   r;   r   r<   r:   ÚlenÚRFC2047_CHROME_LENÚnextÚappendÚEMPTYSTRINGÚjoinÚheader_lengthÚpop)r2   r%   Z
maxlengthsr&   r=   r>   Úencoderr   ZextraÚlinesZcurrent_lineÚmaxlenÚ	characterZ	this_lineZlengthZ	separatorZjoined_liner   r   r   Úheader_encode_lines,  s6    









zCharset.header_encode_linesc             C   s`   | j tkrtjS | j tkr tjS | j tkrXtjj|ƒ}tjj|ƒ}||k rPtjS tjS nd S d S )N)r/   r.   ÚemailÚ
base64mimer8   Ú
quoprimimer   rF   )r2   r=   Zlen64Zlenqpr   r   r   r;   j  s    


zCharset._get_encoderc             C   sŽ   |s|S | j tkr4t|tƒr(|j| jƒ}tjj|ƒS | j t	krjt|tƒrT|j| jƒ}|j
dƒ}tjj|ƒS t|tƒr†|j| jƒj
dƒ}|S d S )NÚlatin1r   )r0   r.   r(   r)   r$   r   rM   rN   Úbody_encoder8   ÚdecoderO   )r2   r%   r   r   r   rQ   y  s    	





zCharset.body_encodeN)Ú__name__Ú
__module__Ú__qualname__ÚDEFAULT_CHARSETr3   r4   Ú__repr__r6   r9   r:   r<   rL   r;   rQ   r   r   r   r   r   §   s   ,!>)NNN)NNN)Ú__all__Ú	functoolsr   Zemail.base64mimerM   Zemail.quoprimimer   Zemail.encodersr   r8   r.   r   rA   rV   r#   rD   r   r   r!   r   r   r   r'   r   r   r   r   r   Ú<module>   s†   
	