!A?hNQ~ gdZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z ddl m Z dZdZejd Zejd ejZejd ZGd d ZGddeZdZGddeZeeejdz ZdezZejZdS)) GeneratorDecodedGeneratorBytesGeneratorN)deepcopy)StringIOBytesIO)_has_surrogates)HeaderWriteError_ z \r\n|\r|\nz^From z\r\n[^ \t]|\r[^ \n\t]|\n[^ \t]ceZdZ ddddZdZddZdZdZd Zd Z d Z d Z d Z dZ e ZdZdZdZdZeddZedZdS)rNpolicycZ | |dn|j}||_||_||_||_dS)NT) mangle_from__fp _mangle_from_ maxheaderlenr)selfoutfprrrs 44v7JL)( c:|j|dSN)rwriterss rrzGenerator.writeEs qrFc |j|jn|j}|||}|j||j}|j|_||j|_d|_||j|_|j}|j} ||_||_|r[| }|s(dtj tj z}| ||jz| |||_||_dS#||_||_wxYw)N)linesepmax_line_lengthz From nobody )rclonerr _NL_encode _encoded_NL_EMPTY_encoded_EMPTY get_unixfromtimectimer_write)rmsgunixfromr rold_gen_policyold_msg_policyufroms rflattenzGenerator.flattenIsJ ( ${2   \\'\22F   (\\$2C\DDF><<11 "ll4;77  ( DKCJ -((**E*TZ -D-DDE 548+,,, KK   (DK'CJJJ)DK'CJ ' ' ' 's 1BEEcJ |||jd|jSNr) __class__rr)rfps rr$zGenerator.clonezs0?~~b"0"%)[22 2rctSr)rrs r _new_bufferzGenerator._new_buffers zzrc|Srrs rr&zGenerator._encodesrc|sdSt|}|ddD]1}||||j2|dr||ddSdS)N)NLCREsplitrr%)rlineslines r _write_lineszGenerator._write_liness  F E""#2#J ! !D JJt    JJtx 9 " JJuRy ! ! ! ! ! " "rcd|j} d|_|x|_}||||_|j}|`n#||_|j}|`wxYw|rht |}|d |d|d<n|d|d|d|dt|dd}|||n |||j | dS)Ncontent-transfer-encodingrContent-Transfer-Encoding content-type_write_headers) r _munge_cter: _dispatchrgetreplace_headergetattrrIrgetvalue)rr.oldfpsfp munge_ctemeths rr-zGenerator._writesD "DO!--// /DHs NN3   DHIDHI      =3--Cww233;3 ! MMM   ~y| < < <s,d33 <    $ $ $ $ DJJJ s||~~&&&&&s 7AA#c^|}|}t||fdd}t |d|zd}|3|dd}t |d|zd}||j}||dS)N-r _handle_)get_content_maintypeget_content_subtype UNDERSCOREjoinreplacerN _writeBody)rr.mainsubspecificrSgenerics rrKzGenerator._dispatchs ''))%%''??D#;//77SAAtZ(2D99 <ll3,,G4g!5t<From ) get_payload isinstancestr TypeErrortyper _payload get_paramr set_payloadrJrfcrer^rC)rr.payloadrms r _handle_textzGenerator._handle_texts//## ? F'3'' K9DMMIJJ J 3< ( ( 8mmI..G"smm34 g666//++#&'B#C#&~#6#8   2hhx11G '"""""rcBg}|}|g}nDt|tr||dSt|ts|g}|D]o}|}||}||d|j| | p| }|sD|j |}||}|||j^|jr!t$d|j} n|j} || ||j|d|z|jz|r-|j|d|D]D} ||jdz|z|jz|j| E||jdz|zdz|jz|jF|jr!t$d|j} n|j} || dSdS)NFr/r rnz--r)rorprqrlistr:r$r3r%appendrO get_boundaryr'rZ_make_boundary set_boundarypreamblerrwr^rCrpopepilogue) rr.msgtextssubpartspartrgboundaryalltextr body_partrs r_handle_multipartzGenerator._handle_multipart s??$$  HH # & & " JJx FHd++ " zH * *D  ""A 1 A IIdUDHI = = = OOAJJLL ) ) ) )##%% '&++H55G**733H   X & & & < #! (88Hcl;;<   h ' ' ' JJtx  4(?TX-...  , HNN8<<?? + + +" & &I JJtx$1DH< = = = HNN9 % % % % 48d?X-4tx?@@@ < #! (88Hcl;;<   h ' ' ' ' ' $ #rc|j}|d|_ ||||_dS#||_wxYw)Nrr!)rr$r)rr.ps r_handle_multipart_signedz"Generator._handle_multipart_signedFsS Kggag00    " "3 ' ' 'DKKK!DKOOOOs A A c@g}|D]}|}||}||d|j|}||j}|rG|d|jkr6| |j |dd| ||j |j |dS)NFr{r>) ror:r$r3r%rOr@r'r)r}rZrr)rr.blocksrrrtextrAs r_handle_message_delivery_statusz)Generator._handle_message_delivery_statusQsOO%% $ $D  ""A 1 A IIdUDHI = = =::<#>#'#;#;#=#=#'#4#4_#E#E#'88,A,>$@$@#'88,G,;$=$= # # ! " " " " " " "r)NNN)rrrrrKr<rrrrsI <"""""rrrHz%%0%dd)__all__rrr+rcopyriorr email.utilsr email.errorsr rYNLrr?rrwrfrrrrlenreprr_widthrrr<rrrs A = = =  ''''''))))))    =!!rz)R\**!rz"CDDx$x$x$x$x$x$x$x$v /4/4/4/4/4Y/4/4/4dN6"6"6"6"6"y6"6"6"t TT#+a- ! !&)r