
    d\)                     |   d dl Z d dlZd dlZd dlZd dlmZ  G d d          Z e            ZddZe	                    de           d Z
d	                                D ]Ze	                    ee
           [d
 Zd                                D ]Ze	                    dez   e           [d Ze	                    de           d Zd Zd Zd Z	 	 	 ddZe                    ee           	 	 	 ddZe                    ej        j        e           	 	 	 ddZeeefD ]Ze                    ee           [dS )    N)
quoprimimec                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )ContentManagerc                 "    i | _         i | _        d S N)get_handlersset_handlers)selfs    &  /croot/python-split_1694437901252/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/email/contentmanager.py__init__zContentManager.__init__	   s        c                     || j         |<   d S r   )r   )r
   keyhandlers      r   add_get_handlerzContentManager.add_get_handler   s    !(#r   c                 0   |                                 }|| j        v r | j        |         |g|R i |S |                                }|| j        v r | j        |         |g|R i |S d| j        v r | j        d         |g|R i |S t          |          )N )get_content_typer   get_content_maintypeKeyError)r
   msgargskwcontent_typemaintypes         r   get_contentzContentManager.get_content   s    ++--4,,,24$\23DDDDDDD++--t(((.4$X.s@T@@@R@@@"""(4$R(:t:::r:::|$$$r   c                     || j         |<   d S r   )r	   )r
   typekeyr   s      r   add_set_handlerzContentManager.add_set_handler   s    %,'"""r   c                     |                                 dk    rt          d          |                     ||          }|                                  |||g|R i | d S )N	multipartz"set_content not valid on multipart)r   	TypeError_find_set_handlerclear_content)r
   r   objr   r   r   s         r   set_contentzContentManager.set_content   sy    ##%%44 @AAA((c22S&4&&&2&&&&&r   c                    d }t          |          j        D ]}|| j        v r| j        |         c S |j        }t	          |dd          }|rd                    ||f          n|}||}|| j        v r| j        |         c S || j        v r| j        |         c S |j        }|| j        v r| j        |         c S d | j        v r| j        d          S t          |          )N
__module__r   .)type__mro__r	   __qualname__getattrjoin__name__r   )	r
   r   r%   full_path_for_errortypqnamemodname	full_pathnames	            r   r#   z ContentManager._find_set_handler'   s$   "99$ 	/ 	/Cd'''(----$Ec<44G6=H'5!12225I"*&/#D---(3333)))(////<Dt((((.... )4$$$$T***+++r   N)	r/   r(   r,   r   r   r   r   r&   r#    r   r   r   r      sn          ) ) )	% 	% 	%- - -' ' ', , , , ,r   r   replacec                     |                      d          }|                     dd          }|                    ||          S )NTdecodecharsetASCII)errors)get_payload	get_paramr:   )r   r=   contentr;   s       r   get_text_contentrA   @   s>    ooTo**GmmIw//G>>'&>111r   textc                 .    |                      d          S )NTr9   r>   r   s    r   get_non_text_contentrF   G   s    ??$?'''r   zaudio image video applicationc                 ,    |                      d          S Nr   rD   rE   s    r   get_message_contentrI   N   s    ??1r   zrfc822 external-bodyzmessage/c                 F    t          |                     d                    S rH   )bytesr>   rE   s    r   %get_and_fixup_unknown_message_contentrL   U   s     ##$$$r   messagec                    d                     ||f          | d<   |rt          |d         d          s| j        fd|D             }	 |D ] }|j        r|j        d         || |j        <   !d S # t
          j        j        $ rA}t          d	                    |
                    | j                                      |d }~ww xY wd S )N/zContent-Typer   r5   c                 L    g | ] } j                             |g           !S r6   )header_factoryheader_source_parse).0headermps     r   
<listcomp>z _prepare_set.<locals>.<listcomp>f   sC     . . .! )r("*@*@&*J*JK . . .r   zInvalid header: {})policy)r.   hasattrrW   defectsr5   emailr=   HeaderDefect
ValueErrorformatfold)r   r   subtypeheadersrT   excrU   s         @r   _prepare_setrb   a   s'   ((Hg#677C Jwqz6** 	.B. . . .%,. . .G	J! * *> , .++#)FK  * * |( 	J 	J 	J188 &3: > >@ @ A AFIJ	JJ Js   
#A/ /C<B??Cc                     ||d}||| d<   ||                      d|dd           ||| d<   |0|                                D ]\  }}|                      ||           d S d S )N
attachmentzContent-DispositionfilenameT)rT   r7   z
Content-ID)	set_paramitems)r   dispositionre   cidparamsr   values          r   _finalize_setrl   r   s    x3"%0!"j2" 	 	$ 	$ 	$ L ,,.. 	& 	&JCMM#u%%%% 	& 	&r   c                    g }|dz  dz  }t          dt          |           |          D ]I}| |||z            }|                    t          j        |                              d                     Jd                    |          S )N      r   asciir   )rangelenappendbinascii
b2a_base64r:   r.   )datamax_line_lengthencoded_linesunencoded_bytes_per_lineithislines         r   _encode_base64r|      s    M.!3a71c$ii!9:: L L!4445X0::AA'JJKKKK77=!!!r   c                 d   |                      |                                          }|j                             d          fd}d }|t          d |D             d          |j        k    r]	 d ||                              d          fS # t          $ r Y nw xY w|j        dk    r!d ||                              dd	          fS  ||d d
                   }t          j	        |                    d          |j                  }t          j        |          }	t          |          t          |	          k    rd}nd}t          |          d
k    r||fS |dk    r ||                              d          }
n|dk    r  ||                              dd	          }
n|dk    r7t          j	         ||                              d          |j                  }
nG|dk    rt           ||          |j                  }
n"t          d                    |                    ||
fS )Nrp   c                 4                         |           z   S r   r.   )lineslineseps    r   embedded_bodyz#_encode_text.<locals>.embedded_body   s    W\\%%8%87%BBr   c                 2    d                     |           dz   S )N   
r   )r   s    r   normal_bodyz!_encode_text.<locals>.normal_body   s    5::e#4#4u#<<r   c              3   4   K   | ]}t          |          V  d S r   )rr   )rS   xs     r   	<genexpr>z_encode_text.<locals>.<genexpr>   s(      &&1A&&&&&&r   r   )default7bit8bitsurrogateescape
   zlatin-1base64quoted-printablez$Unknown content transfer encoding {})encode
splitlinesr   maxrw   r:   UnicodeDecodeErrorcte_typer   body_encodert   ru   rr   r|   r\   r]   )stringr;   cterW   r   r   r   sniffsniff_qpsniff_base64rv   r   s              @r   _encode_textr      sg   MM'""--//En##G,,GBBBBB<<<
{&&&&&222f6LLL{{51188AAAA%   &(({{51188BSTTTTeCRCj)))%,,y*A*A*0*@B B*511x==3|,,,,CC$C5zzRH}$
f}}{5!!((11	{5!!((2CDD	"	"	"%kk%&8&8&?&?	&J&J&,&<> >	mmE22F4JKK?FFsKKLLL9s   3B 
B B plainutf-8c
                 .   t          | d||	           t          |||| j                  \  }}
|                     |
           |                     dt
          j        j                            ||          d           || d<   t          | ||||           d S )NrB   r;   Tr7   Content-Transfer-Encoding)
rb   r   rW   set_payloadrf   rZ   r;   ALIASESgetrl   )r   r   r_   r;   r   rh   re   ri   rj   r`   payloads              r   set_text_contentr      s     fgw///cjAALCOOGMM)-'++GW==        (+C#$#{Hc6:::::r   rfc822c	                 |   |dk    rt          d          |dk    r-|dvr"t          d                    |                    |dn|}n3|dk    r)|dvr"t          d	                    |                    d
}n|d
}t          | d||           |                     |g           || d<   t	          | ||||           d S )Npartialz4message/partial is not supported for Message objectsr   )Nr   r   binaryz*message/rfc822 parts do not support cte={}r   zexternal-body)Nr   z1message/external-body parts do not support cte={}r   rM   r   )r\   r]   rb   r   rl   )	r   rM   r_   r   rh   re   ri   rj   r`   s	            r   set_message_contentr      s
    )OPPP(666<CCCHHJ J J ff	O	#	#n$$CJJ3OOQ Q Q	 i'222OOWI'*C#$#{Hc6:::::r   r   c
                    t          | |||	           |dk    rt          || j        j                  }nj|dk    r.t	          j        |ddd          }|                    d          }n6|dk    r|                    d          }n|d	v r|                    dd
          }|                     |           || d<   t          | ||||           d S )Nr   )rw   r   FT)istextrT   	quotetabsrp   r   )r   r   r   r   )	rb   r|   rW   rw   rt   b2a_qpr:   r   rl   )
r   rv   r   r_   r   rh   re   ri   rj   r`   s
             r   set_bytes_contentr      s     h111
hdCJ4NOOO	"	"	" tE%4PPP{{7##	{{7##	"	"	"{{7$566OOD'*C#$#{Hc6:::::r   r   )r   r   NNNNNN)r   NNNNNN)r   NNNNN)rt   email.charsetrZ   email.messageemail.errorsr   r   raw_data_managerrA   r   rF   splitr   rI   r_   rL   rb   rl   r|   r   r   r   strr   rM   Messager   rK   	bytearray
memoryviewr1   r6   r   r   <module>r      s                     3, 3, 3, 3, 3, 3, 3, 3,l ">## 2 2 2 2     )9 : : :( ( (/5577 E EH$$X/CDDDD  %++-- N NG$$Z%79LMMMM% % %     !FH H HJ J J"& & &*" " "$ $ $N IM:>*.
; 
; 
; 
;     &6 7 7 7 =A<@,0; ; ; ;<     !68K L L L 9A:>*.; ; ; ;& 9j) = =C$$S*;<<<<CCr   