Fa) @sddlZddlZddlZddlZddlmZGdddZeZdddZej ded d Z x$d j D]Z ej e e qWd d Z x(dj D]Zej dee qWddZej deddZddZddZddZddddddddddZejeedddddddd d!Zejejjed"dddddd#d$Zx'eeefD]ZejeeqWdS)%N) quoprimimec@sXeZdZddZddZddZddZd d Zd d Zd S)ContentManagercCsi|_i|_dS)N) get_handlers set_handlers)selfr*/usr/lib/python3.5/email/contentmanager.py__init__ s zContentManager.__init__cCs||j|ds z _prepare_set..zInvalid header: {}policy) r hasattrr8Zdefectsr%emailr*Z HeaderDefect ValueErrorformatZfold)rrsubtypeheadersr5excr)r6r _prepare_set_s      r@cCs|dkr|dk rd}|dk r4||d<|dk r\|jd|dddd|dk rr||d<|dk rx*|jD]\}}|j||qWdS)NZ attachmentzContent-Dispositionfilenamer5r&Tz Content-ID) set_paramitems)r dispositionrAcidparamsr valuerrr _finalize_setps       rHcCswg}|dd}xStdt||D]9}||||}|jtj|jdq-Wdj|S)Nrasciir )rangelenappendbinascii b2a_base64r'r )datamax_line_lengthZ encoded_linesZunencoded_bytes_per_lineiZthislinerrr_encode_base64s #rTc s|j|j}|jjdfdd}dd}|dkrVyd||jdfSWntk rYnX|jdkrtdd |D|jkrd||jdd fS||dd }tj |jd |j}t j |} t |t | kr4d }n"d}t |d krV||fS|dkrz||jd} n|dkr||jdd } no|dkrtj ||jd |j} n<|d krt |||j} ntdj||| fS)NrKcsj|S)N)r )lines)lineseprr embeded_bodysz"_encode_text..embeded_bodycSsdj|dS)Ns )r )rUrrr normal_bodysz!_encode_text..normal_body7bit8bitcss|]}t|VqdS)N)rM)r4xrrr sz_encode_text..surrogateescape zlatin-1base64zquoted-printablez$Unknown content transfer encoding {})encode splitlinesrVr'UnicodeDecodeErrorZcte_typemaxrRrZ body_encoderOrPrMrTr;r<) stringr(cter8rUrWrXZsniffZsniff_qpZ sniff_base64rQr)rVr _encode_texts@   "       rfZplainzutf-8c Cst|d|| t||||j\}} |j| |jdtjjj||dd||dZpayloadrrrset_text_contents   rirfc822c Cs|dkrtd|dkr`|d krEtdj||dkrWdn|}nH|dkr|d krtd j|d}n|dkrd}t|d |||j|g||d rrrset_message_contents$         rmr_c Cst|||| |dkr:t|d|jj}ny|dkrytj|dddddd}|jd }n:|d kr|jd n|dkr|jd d }|j|||drrrset_bytes_contents  !    ro)rOZ email.charsetr:Z email.messageZ email.errorsrrZraw_data_managerr,r r.splitrr/r=r1r@rHrTrfrirstrrmr2ZMessageror0 bytearray memoryviewr"rrrrsD    6        '