o ?Og;)@s>ddlZddlZddlZddlZddlmZGdddZeZd%ddZe ded d Z d D]Z e e e q3d d Z d D] Ze dee qDddZe deddZddZddZddZ   d&ddZeee   d'd d!Zeejje "  d(d#d$ZeeefD]ZeeeqdS))N) quoprimimec@s<eZdZddZddZddZddZd d Zd d Zd S)ContentManagercCsi|_i|_dSN) get_handlers set_handlers)selfr;/opt/alt/python310/lib64/python3.10/email/contentmanager.py__init__ s zContentManager.__init__cC||j|<dSr)r)rkeyhandlerrrr add_get_handler zContentManager.add_get_handlercOs|}||jvr|j||g|Ri|S|}||jvr.|j||g|Ri|Sd|jvrA|jd|g|Ri|St|)N)Zget_content_typerget_content_maintypeKeyError)rmsgargskwZ content_typemaintyperrr get_contents   zContentManager.get_contentcCr r)r)rZtypekeyr rrr add_set_handlerrzContentManager.add_set_handlercOsD|dkr td|||}||||g|Ri|dS)NZ multipartz"set_content not valid on multipart)r TypeError_find_set_handlerZ clear_content)rrobjrrr rrr set_contents  zContentManager.set_contentc Csd}t|jD]O}||jvr|j|S|j}t|dd}|r'd||fn|}|dur/|}||jvr;|j|S||jvrG|j|S|j}||jvrV|j|Sqd|jvra|jdSt|)N __module__r.)type__mro__r __qualname__getattrjoin__name__r) rrrZfull_path_for_errortypZqnamemodname full_pathnamerrr r's(       z ContentManager._find_set_handlerN) r$rr!r rrrrrrrrr rs  rreplacecCs&|jdd}|dd}|j||dS)NTdecodecharsetASCII)errors) get_payloadZ get_paramr+)rr.Zcontentr,rrr get_text_content@s  r0textcCs |jddS)NTr*r/rrrr get_non_text_contentGs r4zaudio image video applicationcCs |dSNrr2r3rrr get_message_contentMs r6zrfc822 external-bodyzmessage/cCst|dSr5)bytesr/r3rrr %get_and_fixup_unknown_message_contentSsr8messagec sd||f|d<|rOt|dds|jfdd|D}z|D]}|jr+|jd|||j<q!WdStjjyN}z td |j |jd|d}~wwdS) N/z Content-Typerr(csg|] }j|gqSr)Zheader_factoryZheader_source_parse).0headerZmprr dsz _prepare_set..zInvalid header: {})policy) r#hasattrr?Zdefectsr(emailr.Z HeaderDefect ValueErrorformatZfold)rrsubtypeheadersr<excrr=r _prepare_set_s,    rGcCs||dur |dur d}|dur||d<|dur|jd|ddd|dur'||d<|dur:|D] \}}|||q/dSdS)NZ attachmentzContent-DispositionfilenameT)r<r)z Content-ID) set_paramitems)r dispositionrHcidparamsr valuerrr _finalize_setps"rOcCsVg}|dd}tdt||D]}||||}|t|dqd|S)Nrasciir)rangelenappendbinascii b2a_base64r+r#)datamax_line_lengthZ encoded_linesZunencoded_bytes_per_lineiZthislinerrr _encode_base64s   r[c s||}|jdfdd}dd}|durztdd|Ddd |jkrLz d ||dfWSty<Ynw|jd krLd ||dd fS||dd }t |d|j}t |} t |t | krnd}n d}t |d krz||fS|d kr||d} || fS|d kr||dd } || fS|dkrt ||d|j} || fS|dkrt |||j} || fStd|)NrRcs|Srr#lineslineseprr embedded_bodyz#_encode_text..embedded_bodycSsd|dS)N r\r]rrr normal_bodyrbz!_encode_text..normal_bodycss|]}t|VqdSr)rT)r;xrrr sz_encode_text..r)default7bit8bitsurrogateescape zlatin-1base64quoted-printablez$Unknown content transfer encoding {})encode splitlinesr`maxrYr+UnicodeDecodeErrorZcte_typerZ body_encoderVrWrTr[rBrC) stringr,cter?r^rardZsniffZsniff_qpZ sniff_base64rXrr_r _encode_textsL        rtplainutf-8c Csdt|d|| t||||j\}} || |jdtjj||dd||d<t |||||dS)Nr1r,Tr)Content-Transfer-Encoding) rGrtr? set_payloadrIrAr,ZALIASESgetrO) rrrrDr,rsrKrHrLrMrEZpayloadrrr set_text_contents r{rfc822c Cs|dkrtd|dkr |dvrtd||durdn|}n|dkr2|dvr/td |d }n|dur8d }t|d ||||g||d <t|||||dS) Npartialz4message/partial is not supported for Message objectsr|)Nrhribinaryz*message/rfc822 parts do not support cte={}riz external-body)Nrhz1message/external-body parts do not support cte={}rhr9rx)rBrCrGryrO) rr9rDrsrKrHrLrMrErrr set_message_contents( rrlc Cst|||| |dkrt||jjd}n'|dkr'tj|dddd}|d}n|dkr1|d}n |d vr;|dd }||||d <t|||||dS) Nrl)rYrmFT)istextr<Z quotetabsrRrh)rir~rjrx) rGr[r?rYrVZb2a_qpr+ryrO) rrXrrDrsrKrHrLrMrErrr set_bytes_contents    rrw)rurvNNNNNN)r|NNNNNN)rlNNNNN)rVZ email.charsetrAZ email.messageZ email.errorsrrZraw_data_managerr0rr4splitrr6rDr8rGrOr[rtr{rstrrr9ZMessagerr7 bytearray memoryviewr%rrrr sP 6     '