
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,aË)  ã                   @   s.  d dl Z d dlZd dlZd dlZd dlmZ G dd„ dƒZeƒ Zd%dd„Ze 	de¡ d	d
„ Z
d ¡ D ]Ze 	ee
¡ qfdd„ Zd ¡ D ]Ze 	de e¡ qˆdd„ Ze 	de¡ dd„ Zdd„ Zdd„ Zdd„ Zd&dd„Ze ee¡ d'd d!„Ze ejje¡ d(d#d$„ZeeefD ]Ze ee¡ �qdS ))é    N)Ú
quoprimimec                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚContentManagerc                 C   s   i | _ i | _d S ©N)Úget_handlersÚset_handlers)Úself© r   ú9/opt/alt/python38/lib64/python3.8/email/contentmanager.pyÚ__init__	   s    zContentManager.__init__c                 C   s   || j |< d S r   )r   )r   ÚkeyÚhandlerr   r   r	   Úadd_get_handler   s    zContentManager.add_get_handlerc                 O   s|   |  ¡ }|| jkr(| j| |f|ž|ŽS | ¡ }|| jkrP| j| |f|ž|ŽS d| jkrp| jd |f|ž|ŽS t|ƒ‚d S )NÚ )Zget_content_typer   Úget_content_maintypeÚKeyError)r   ÚmsgÚargsÚkwZcontent_typeÚmaintyper   r   r	   Úget_content   s    


zContentManager.get_contentc                 C   s   || j |< d S r   )r   )r   Ztypekeyr   r   r   r	   Úadd_set_handler   s    zContentManager.add_set_handlerc                 O   s>   |  ¡ dkrtdƒ‚|  ||¡}| ¡  |||f|ž|Ž d S )NZ	multipartz"set_content not valid on multipart)r   Ú	TypeErrorÚ_find_set_handlerZclear_content)r   r   Úobjr   r   r   r   r   r	   Úset_content   s
    zContentManager.set_contentc           	      C   sÎ   d }t |ƒjD ]ž}|| jkr*| j|   S |j}t|ddƒ}|rNd ||f¡n|}|d kr^|}|| jkrv| j|   S || jkrŽ| j|   S |j}|| jkr| j|   S qd | jkrÂ| jd  S t|ƒ‚d S )NÚ
__module__r   Ú.)ÚtypeÚ__mro__r   Ú__qualname__ÚgetattrÚjoinÚ__name__r   )	r   r   r   Zfull_path_for_errorÚtypZqnameÚmodnameÚ	full_pathÚnamer   r   r	   r   '   s&    





z ContentManager._find_set_handlerN)	r"   r   r   r
   r   r   r   r   r   r   r   r   r	   r      s   	r   Úreplacec                 C   s&   | j dd�}|  dd¡}|j||d�S )NT©ÚdecodeÚcharsetÚASCII)Úerrors)Úget_payloadZ	get_paramr)   )r   r,   Zcontentr*   r   r   r	   Úget_text_content@   s    r.   Útextc                 C   s   | j dd�S )NTr(   ©r-   ©r   r   r   r	   Úget_non_text_contentG   s    r2   zaudio image video applicationc                 C   s
   |   d¡S ©Nr   r0   r1   r   r   r	   Úget_message_contentM   s    r4   zrfc822 external-bodyzmessage/c                 C   s   t |  d¡ƒS r3   )Úbytesr-   r1   r   r   r	   Ú%get_and_fixup_unknown_message_contentS   s    r6   Úmessagec              
      sª   d  ||f¡| d< |r¦t|d dƒs<| j‰ ‡ fdd„|D ƒ}z(|D ]}|jrV|jd ‚|| |j< qBW n@ tjjk
r¤ } ztd 	|j
| jd�¡ƒ|‚W 5 d }~X Y nX d S )	Nú/zContent-Typer   r&   c                    s   g | ]}ˆ j ˆ  |g¡Ž ‘qS r   )Zheader_factoryZheader_source_parse)Ú.0Úheader©Zmpr   r	   Ú
<listcomp>d   s   ÿz _prepare_set.<locals>.<listcomp>zInvalid header: {})Úpolicy)r!   Úhasattrr=   Zdefectsr&   Úemailr,   ZHeaderDefectÚ
ValueErrorÚformatZfold)r   r   ÚsubtypeÚheadersr:   Úexcr   r;   r	   Ú_prepare_set_   s$    
ÿ
ÿÿrE   c                 C   sx   |d kr|d k	rd}|d k	r$|| d< |d k	r>| j d|ddd� |d k	rN|| d< |d k	rt| ¡ D ]\}}|   ||¡ q^d S )NZ
attachmentzContent-DispositionÚfilenameT)r:   r'   z
Content-ID)Ú	set_paramÚitems)r   ÚdispositionrF   ÚcidÚparamsr   Úvaluer   r   r	   Ú_finalize_setp   s    ýrM   c                 C   sV   g }|d d }t dt| ƒ|ƒD ]*}| ||| … }| t |¡ d¡¡ q d |¡S )Né   é   r   Úasciir   )ÚrangeÚlenÚappendÚbinasciiÚ
b2a_base64r)   r!   )ÚdataÚmax_line_lengthZencoded_linesZunencoded_bytes_per_lineÚiZthisliner   r   r	   Ú_encode_base64…   s    rY   c                    s‚  |   |¡ ¡ }|j  d¡‰ ‡ fdd„}dd„ }|d krötdd„ |D ƒdd	�|jkršzd
||ƒ d¡fW S  tk
rz   Y nX |jdkršd||ƒ dd¡fS ||d d… ƒ}t 	| d¡|j¡}t
 |¡}	t|ƒt|	ƒkrÞd}nd}t|ƒdkrö||fS |d
k�r||ƒ d¡}
nj|dk�r,||ƒ dd¡}
nN|dk�rPt 	||ƒ d¡|j¡}
n*|dk�rlt||ƒ|jƒ}
ntd |¡ƒ‚||
fS )NrP   c                    s   ˆ   | ¡ˆ  S r   ©r!   ©Úlines©Úlinesepr   r	   Úembedded_body‘   ó    z#_encode_text.<locals>.embedded_bodyc                 S   s   d  | ¡d S )Nó   
rZ   r[   r   r   r	   Únormal_body’   r`   z!_encode_text.<locals>.normal_bodyc                 s   s   | ]}t |ƒV  qd S r   )rR   )r9   Úxr   r   r	   Ú	<genexpr>•   s     z_encode_text.<locals>.<genexpr>r   )ÚdefaultÚ7bitÚ8bitÚsurrogateescapeé
   zlatin-1Úbase64úquoted-printablez$Unknown content transfer encoding {})ÚencodeÚ
splitlinesr^   ÚmaxrW   r)   ÚUnicodeDecodeErrorZcte_typer   Zbody_encoderT   rU   rR   rY   r@   rA   )Ústringr*   Úcter=   r\   r_   rb   ZsniffZsniff_qpZsniff_base64rV   r   r]   r	   Ú_encode_textŽ   sD    
ÿ



ÿ
rr   Úplainúutf-8c
                 C   sd   t | d||	ƒ t|||| jƒ\}}
|  |
¡ | jdtjj ||¡dd� || d< t	| ||||ƒ d S )Nr/   r*   T)r'   úContent-Transfer-Encoding)
rE   rr   r=   Úset_payloadrG   r?   r*   ZALIASESÚgetrM   )r   rp   rB   r*   rq   rI   rF   rJ   rK   rC   Zpayloadr   r   r	   Úset_text_contentµ   s    
þrx   Úrfc822c	           	      C   s¦   |dkrt dƒ‚|dkr@|dkr.t d |¡ƒ‚|d kr:dn|}n0|dkrd|dkr^t d	 |¡ƒ‚d
}n|d krpd
}t| d||ƒ |  |g¡ || d< t| ||||ƒ d S )NÚpartialz4message/partial is not supported for Message objectsry   )Nrf   rg   Úbinaryz*message/rfc822 parts do not support cte={}rg   zexternal-body)Nrf   z1message/external-body parts do not support cte={}rf   r7   ru   )r@   rA   rE   rv   rM   )	r   r7   rB   rq   rI   rF   rJ   rK   rC   r   r   r	   Úset_message_contentÃ   s(    ÿÿr|   rj   c
           
      C   sœ   t | |||	ƒ |dkr(t|| jjd�}nN|dkrNtj|dddd�}| d¡}n(|dkrb| d¡ n|d	krv| dd
¡}|  |¡ || d< t	| ||||ƒ d S )Nrj   )rW   rk   FT)Úistextr:   Z	quotetabsrP   rf   )rg   r{   rh   ru   )
rE   rY   r=   rW   rT   Zb2a_qpr)   rl   rv   rM   )
r   rV   r   rB   rq   rI   rF   rJ   rK   rC   r   r   r	   Úset_bytes_contentä   s    
r~   )r'   )rs   rt   NNNNNN)ry   NNNNNN)rj   NNNNN)rT   Zemail.charsetr?   Zemail.messageZemail.errorsr   r   Zraw_data_managerr.   r   r2   Úsplitr   r4   rB   r6   rE   rM   rY   rr   rx   r   Ústrr|   r7   ZMessager~   r5   Ú	bytearrayÚ
memoryviewr#   r   r   r   r	   Ú<module>   s^   6
ÿ	'         þ
         þ
         þ
