
    -hhSQ                     (   S SK Jr  S SKJr  S SKJr  S SKJr   " S S5      r " S S5      r " S	 S
\	5      r
S r " S S5      r " S S\5      r " S S5      r " S S\5      r " S S5      r " S S\5      r " S S\5      r " S S\5      r " S S5      r " S S5      r " S  S!\5      r " S" S#\5      r " S$ S%5      r " S& S'5      r0 S(\_S)\_S*\_S+\_S,\_S-\_S.\_S/\_S0\_S1\_S2\_S3\_S4\_S5\_S6\_S7\_S8\_\\\S9.Er " S: S;5      rg<)=    )MappingProxyType)utils)errors)_header_value_parserc                   p    \ rS rSrSS jr\S 5       r\S 5       r\S 5       r\S 5       r	S r
S	 rS
 rSrg)Address   Nc           	         SR                  [        S XX445      5      nSU;   d  SU;   a  [        S5      eUb  U(       d  U(       a  [        S5      e[        R
                  " U5      u  pgU(       a  [        SR                  Xd5      5      eUR                  (       a  UR                  S   eUR                  nUR                  nXl
        X l        X0l        g )N 
z8invalid arguments; address parts cannot contain CR or LFz=addrspec specified when username and/or domain also specifiedz6Invalid addr_spec; only '{}' could be parsed from '{}'r   )joinfilter
ValueError	TypeErrorparserget_addr_specformatall_defects
local_partdomain_display_name	_username_domain)selfdisplay_nameusernamer   	addr_specinputsa_srests           =/opt/python-3.13.8/usr/lib/python3.13/email/headerregistry.py__init__Address.__init__   s    " |v&QRS6>TV^WXX  6 !8 9 9,,Y7IC  "==CV$'>45 5 ooa((~~HZZF)!    c                     U R                   $ Nr   r   s    r"   r   Address.display_name8       !!!r%   c                     U R                   $ r'   )r   r)   s    r"   r   Address.username<       ~~r%   c                     U R                   $ r'   )r   r)   s    r"   r   Address.domain@       ||r%   c                     U R                   n[        R                  R                  U5      (       d  [        R                  " U5      nU R
                  (       a  US-   U R
                  -   $ U(       d  gU$ )N@<>)r   r   DOT_ATOM_ENDS
isdisjointquote_stringr   )r   lps     r"   r   Address.addr_specD   sY    
 ]]##..r22$$R(B;;8dkk))	r%   c                     SR                  U R                  R                  U R                  U R                  U R
                  5      $ )Nz1{}(display_name={!r}, username={!r}, domain={!r}))r   	__class____name__r   r   r   r)   s    r"   __repr__Address.__repr__R   s9    BII//))4==$++G 	Gr%   c                    U R                   n[        R                  R                  U5      (       d  [        R                  " U5      nU(       a/  U R
                  S:X  a  SOU R
                  nSR                  X5      $ U R
                  $ )Nr4   r   z{} <{}>)r   r   SPECIALSr6   r7   r   r   )r   dispr   s      r"   __str__Address.__str__W   sf      ))$//&&t,D"nnd2I##D44~~r%   c                     [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a9    U R                  UR                  :H  =(       a    U R
                  UR
                  :H  $ r'   )
isinstancer   NotImplementedr   r   r   r   others     r"   __eq__Address.__eq__`   sX    %))!!!!U%7%77 ,/,u||+	-r%   )r   r   r   )r   r   r   N)r<   
__module____qualname____firstlineno__r#   propertyr   r   r   r   r=   rB   rI   __static_attributes__ r%   r"   r   r      sh    (T " "      G
-r%   r   c                   P    \ rS rSrS
S jr\S 5       r\S 5       rS rS r	S r
S	rg)Grouph   Nc                 ^    Xl         U(       a  [        U5      U l        g [        5       U l        g r'   )r   tuple
_addresses)r   r   	addressess      r"   r#   Group.__init__j   s      *.7%	*UWr%   c                     U R                   $ r'   r(   r)   s    r"   r   Group.display_name|   r+   r%   c                     U R                   $ r'   )rV   r)   s    r"   rW   Group.addresses   s    r%   c                 x    SR                  U R                  R                  U R                  U R                  5      $ )Nz${}(display_name={!r}, addresses={!r})r   r;   r<   r   rW   r)   s    r"   r=   Group.__repr__   s1    5<<((""DNN4 	4r%   c                    U R                   c1  [        U R                  5      S:X  a  [        U R                  S   5      $ U R                   nUb:  [        R
                  R                  U5      (       d  [        R                  " U5      nSR                  S U R                   5       5      nU(       a  SU-   OUnSR                  X5      $ )N   r   , c              3   8   #    U  H  n[        U5      v   M     g 7fr'   )str).0xs     r"   	<genexpr> Group.__str__.<locals>.<genexpr>   s     :>a3q66>s    z{}:{};)
r   lenrW   rc   r   r@   r6   r7   r   r   )r   rA   adrstrs      r"   rB   Group.__str__   s    $T^^)<a)?t~~a())  FOO$>$>t$D$D&&t,D:4>>::!'vVt,,r%   c                     [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r'   )rE   rR   rF   r   rW   rG   s     r"   rI   Group.__eq__   sC    %''!!!!U%7%77 2%//1	3r%   )rV   r   )NN)r<   rK   rL   rM   r#   rN   r   rW   r=   rB   rI   rO   rP   r%   r"   rR   rR   h   s?    E$ " "  4
-3r%   rR   c                   \    \ rS rSrS rS r\S 5       r\S 5       rS r	\
S 5       rS rS	rg
)
BaseHeader   c                     S/ 0nU R                  X#5        [        R                  " US   5      (       a  [        R                  " US   5      US'   [        R                  XS   5      nUS	 UR                  " U40 UD6  U$ )Ndefectsdecoded)parser   _has_surrogates	_sanitizerc   __new__init)clsnamevaluekwdsr   s        r"   rw   BaseHeader.__new__   sq    2		%  i11#ood9o>DO{{3Y0O		$$r%   c                (    Xl         X l        X0l        g r'   )_name_parse_tree_defects)r   rz   
parse_treerr   s       r"   rx   BaseHeader.init   s    
%r%   c                     U R                   $ r'   )r   r)   s    r"   rz   BaseHeader.name   s    zzr%   c                 ,    [        U R                  5      $ r'   )rU   r   r)   s    r"   rr   BaseHeader.defects   s    T]]##r%   c                     [         U R                  R                  U R                  R                  [	        U 5      4U R                  5       4$ r'   )_reconstruct_headerr;   r<   	__bases__rc   __getstate__r)   s    r"   
__reduce__BaseHeader.__reduce__   sC    ''((D	
 ! 	!r%   c                 ,    [         R                  X5      $ r'   )rc   rw   )ry   r{   s     r"   _reconstructBaseHeader._reconstruct   s    {{3&&r%   c          	         [         R                  " [         R                  " [         R                  " U R                  S5      [         R                  " SS5      /5      /5      nU R
                  (       a;  UR                  [         R                  " [         R                  " SS5      /5      5        UR                  U R
                  5        UR                  US9$ )Nzheader-name:z
header-seprh   fws)policy)
r   HeaderHeaderLabelValueTerminalrz   r   appendCFWSListWhiteSpaceTerminalfold)r   r   headers      r"   r   BaseHeader.fold   s    " $$TYY>$$S,7 9 :  
 MM!:!:3!F GHJd&&'{{&{))r%   )r   r   r   N)r<   rK   rL   rM   rw   rx   rN   rz   rr   r   classmethodr   r   rO   rP   r%   r"   ro   ro      sS    D 
   $ $! ' '*r%   ro   c                 8    [        X0 5      R                  U5      $ r'   )typer   )cls_namebasesr{   s      r"   r   r      s    $11%88r%   c                   L    \ rS rSrSr\" \R                  5      r\	S 5       r
Srg)UnstructuredHeaderi  Nc                 N    U R                  U5      US'   [        US   5      US'   g )Nr   rs   )value_parserrc   ry   r{   r|   s      r"   rt   UnstructuredHeader.parse	  s*     --e4\d<01Yr%   rP   )r<   rK   rL   rM   	max_countstaticmethodr   get_unstructuredr   r   rt   rO   rP   r%   r"   r   r     s)    I 7 78L2 2r%   r   c                       \ rS rSrSrSrg)UniqueUnstructuredHeaderi  r`   rP   Nr<   rK   rL   rM   r   rO   rP   r%   r"   r   r         Ir%   r   c                   p   ^  \ rS rSrSr\" \R                  5      r\	S 5       r
U 4S jr\S 5       rSrU =r$ )
DateHeaderi  Nc                    U(       dJ  US   R                  [        R                  " 5       5        S US'   SUS'   [        R                  " 5       US'   g [        U[        5      (       a  XS'    [        R                  " U5      nXS'   [        R                  " US   5      US'   U R                  US   5      US'   g ! [         aH    US   R                  [        R                  " S5      5        S US'   [        R                  " 5       US'    g f = f)Nrr   datetimer   rs   r   zInvalid date value or format)r   r   HeaderMissingRequiredValuer   	TokenListrE   rc   r   parsedate_to_datetimer   InvalidDateDefectformat_datetimer   r   s      r"   rt   DateHeader.parse$  s    O""6#D#D#FG#D DO!'!1!1!3DeS!!#O33E: !Z//Z0@AY --d9o>\  Y&&v'?'?@^'_`#'Z %+%5%5%7\"	s   ,B: :ADDc                 R   > UR                  S5      U l        [        TU ]  " U0 UD6  g )Nr   )pop	_datetimesuperrx   r   argskwr;   s      r"   rx   DateHeader.init9  s$    
+d!b!r%   c                     U R                   $ r'   r   r)   s    r"   r   DateHeader.datetime=  r.   r%   r   )r<   rK   rL   rM   r   r   r   r   r   r   rt   rx   rN   r   rO   __classcell__r;   s   @r"   r   r     sG     I   7 78L? ?("  r%   r   c                       \ rS rSrSrSrg)UniqueDateHeaderiB  r`   rP   Nr   rP   r%   r"   r   r   B  r   r%   r   c                   l   ^  \ rS rSrSr\S 5       r\S 5       rU 4S jr	\
S 5       r\
S 5       rSrU =r$ )	AddressHeaderiG  Nc                 6    [         R                  " U 5      u  pU$ r'   )r   get_address_list)r{   address_lists     r"   r   AddressHeader.value_parserK  s    $55e<r%   c                 
   [        U[        5      (       a  U R                  U5      =US'   n/ nUR                   H  nUR	                  [        UR                  UR                   Vs/ s HI  n[        UR                  =(       d    SUR                  =(       d    SUR                  =(       d    S5      PMK     sn5      5        M     [        UR                  5      nOF[        US5      (       d  U/nU Vs/ s H#  n[        US5      (       d  [        S U/5      OUPM%     nn/ nXBS'   XrS'   SR                  U Vs/ s H  n[        U5      PM     sn5      US'   SU;  a  U R                  US   5      US'   g g s  snf s  snf s  snf )	Nr   r   __iter__rW   groupsrr   ra   rs   )rE   rc   r   rW   r   rR   r   all_mailboxesr   r   r   listr   hasattrr   )	ry   r{   r|   r   r   addrmbrr   items	            r"   rt   AddressHeader.parseQ  s   eS!! 140@0@0GGDF$..eD$5$5 04/A/A%C 0B &-R__-B-/]]-@b-/YY_"&> 0B%CD E / <334G 5*-- 16705 29{1K1KeD4&)/3405  7 GX!Y))6$B64SY6$BCYt#!$!1!1$y/!BD $!%C7 %Cs   &AE63*E;8F c                 r   > [        UR                  S5      5      U l        S U l        [        TU ]  " U0 UD6  g )Nr   )rU   r   _groupsrV   r   rx   r   s      r"   rx   AddressHeader.initm  s0    RVVH-.d!b!r%   c                     U R                   $ r'   )r   r)   s    r"   r   AddressHeader.groupsr  r1   r%   c                 v    U R                   c!  [        S U R                   5       5      U l         U R                   $ )Nc              3   N   #    U  H  nUR                     H  nUv   M	     M     g 7fr'   )rW   )rd   groupaddresss      r"   rf   *AddressHeader.addresses.<locals>.<genexpr>y  s'      $L;@?? %,;J %,s   #%)rV   rU   r   r)   s    r"   rW   AddressHeader.addressesv  s5    ??"# $L $L LDOr%   )rV   r   )r<   rK   rL   rM   r   r   r   r   rt   rx   rN   r   rW   rO   r   r   s   @r"   r   r   G  s]    I 
 C C6"
    r%   r   c                       \ rS rSrSrSrg)UniqueAddressHeaderi~  r`   rP   Nr   rP   r%   r"   r   r   ~  r   r%   r   c                   $    \ rS rSr\S 5       rSrg)SingleAddressHeaderi  c                     [        U R                  5      S:w  a$  [        SR                  U R                  5      5      eU R                  S   $ )Nr`   z9value of single address header {} is not a single addressr   )ri   rW   r   r   rz   r)   s    r"   r   SingleAddressHeader.address  sB    t~~! #$*F499$57 7~~a  r%   rP   N)r<   rK   rL   rM   rN   r   rO   rP   r%   r"   r   r     s    ! !r%   r   c                       \ rS rSrSrSrg)UniqueSingleAddressHeaderi  r`   rP   Nr   rP   r%   r"   r   r     r   r%   r   c                      ^  \ rS rSrSr\" \R                  5      r\	S 5       r
U 4S jr\S 5       r\S 5       r\S 5       rSrU =r$ )	MIMEVersionHeaderi  r`   c                 >   U R                  U5      =US'   n[        U5      US'   US   R                  UR                  5        UR                  c  S OUR
                  US'   UR                  US'   UR                  b  SR                  US   US   5      US'   g S US'   g )Nr   rs   rr   majorminorz{}.{}version)r   rc   extendr   r   r   r   ry   r{   r|   r   s       r"   rt   MIMEVersionHeader.parse  s    *-*:*:5*AA\Zj/YYz556 * 0 0 8j>N>NW"((W'%nnT']DMJDO"DOr%   c                    > UR                  S5      U l        UR                  S5      U l        UR                  S5      U l        [        TU ]  " U0 UD6  g )Nr   r   r   )r   _version_major_minorr   rx   r   s      r"   rx   MIMEVersionHeader.init  sB    y)ffWoffWod!b!r%   c                     U R                   $ r'   )r   r)   s    r"   r   MIMEVersionHeader.major      {{r%   c                     U R                   $ r'   )r   r)   s    r"   r   MIMEVersionHeader.minor  r   r%   c                     U R                   $ r'   )r   r)   s    r"   r   MIMEVersionHeader.version      }}r%   )r   r   r   )r<   rK   rL   rM   r   r   r   parse_mime_versionr   r   rt   rx   rN   r   r   r   rO   r   r   s   @r"   r   r     sk    I 9 9:L	# 	#"      r%   r   c                   L   ^  \ rS rSrSr\S 5       rU 4S jr\S 5       r	Sr
U =r$ )ParameterizedMIMEHeaderi  r`   c                 p   U R                  U5      =US'   n[        U5      US'   US   R                  UR                  5        UR                  c  0 US'   g UR                   VVs0 s H>  u  pA[
        R                  " U5      R                  5       [
        R                  " U5      _M@     snnUS'   g s  snnf )Nr   rs   rr   params)r   rc   r   r   r  r   rv   lower)ry   r{   r|   r   rz   s        r"   rt   ParameterizedMIMEHeader.parse  s    *-*:*:5*AA\Zj/YYz556$DN
 3=2C2CE2C;4 $ood399;$)OOE$:;2CEDN Es   %AB2c                 R   > UR                  S5      U l        [        TU ]  " U0 UD6  g )Nr  )r   _paramsr   rx   r   s      r"   rx   ParameterizedMIMEHeader.init  s$    vvh'd!b!r%   c                 ,    [        U R                  5      $ r'   )r   r
  r)   s    r"   r  ParameterizedMIMEHeader.params  s    --r%   )r
  )r<   rK   rL   rM   r   r   rt   rx   rN   r  rO   r   r   s   @r"   r  r    s7    
 I
E 
E" . .r%   r  c                   |   ^  \ rS rSr\" \R                  5      rU 4S jr\	S 5       r
\	S 5       r\	S 5       rSrU =r$ )ContentTypeHeaderi  c                    > [         TU ]  " U0 UD6  [        R                  " U R                  R
                  5      U l        [        R                  " U R                  R                  5      U l        g r'   )	r   rx   r   rv   r   maintype	_maintypesubtype_subtyper   s      r"   rx   ContentTypeHeader.init  sL    d!b!)9)9)B)BC(8(8(@(@Ar%   c                     U R                   $ r'   )r  r)   s    r"   r  ContentTypeHeader.maintype  r.   r%   c                     U R                   $ r'   )r  r)   s    r"   r  ContentTypeHeader.subtype  r  r%   c                 :    U R                   S-   U R                  -   $ )N/)r  r  r)   s    r"   content_typeContentTypeHeader.content_type  s    }}s"T\\11r%   )r  r  )r<   rK   rL   rM   r   r   parse_content_type_headerr   rx   rN   r  r  r  rO   r   r   s   @r"   r  r    sU     @ @ALB
     2 2r%   r  c                   \   ^  \ rS rSr\" \R                  5      rU 4S jr\	S 5       r
SrU =r$ )ContentDispositionHeaderi  c                    > [         TU ]  " U0 UD6  U R                  R                  nUc  X0l        g [        R
                  " U5      U l        g r'   )r   rx   r   content_dispositionr   rv   _content_disposition)r   r   r   cdr;   s       r"   rx   ContentDispositionHeader.init  s?    d!b!11*,*B!%//":M!r%   c                     U R                   $ r'   r#  r)   s    r"   r"  ,ContentDispositionHeader.content_disposition  s    (((r%   r'  )r<   rK   rL   rM   r   r    parse_content_disposition_headerr   rx   rN   r"  rO   r   r   s   @r"   r   r     s-     G GHLN
 ) )r%   r   c                   p   ^  \ rS rSrSr\" \R                  5      r\	S 5       r
U 4S jr\S 5       rSrU =r$ )ContentTransferEncodingHeaderi  r`   c                     U R                  U5      =US'   n[        U5      US'   US   R                  UR                  5        g Nr   rs   rr   r   rc   r   r   r   s       r"   rt   #ContentTransferEncodingHeader.parse  A    *-*:*:5*AA\Zj/YYz556r%   c                    > [         TU ]  " U0 UD6  [        R                  " U R                  R
                  5      U l        g r'   )r   rx   r   rv   r   cte_cter   s      r"   rx   "ContentTransferEncodingHeader.init  s0    d!b!OOD$4$4$8$89	r%   c                     U R                   $ r'   r3  r)   s    r"   r2  !ContentTransferEncodingHeader.cte  s    yyr%   r6  )r<   rK   rL   rM   r   r   r   &parse_content_transfer_encoding_headerr   r   rt   rx   rN   r2  rO   r   r   s   @r"   r+  r+    sC    I M MNL7 7
:  r%   r+  c                   L    \ rS rSrSr\" \R                  5      r\	S 5       r
Srg)MessageIDHeaderi  r`   c                     U R                  U5      =US'   n[        U5      US'   US   R                  UR                  5        g r-  r.  r   s       r"   rt   MessageIDHeader.parse  r0  r%   rP   N)r<   rK   rL   rM   r   r   r   parse_message_idr   r   rt   rO   rP   r%   r"   r:  r:    s)    I 7 78L7 7r%   r:  subjectdatezresent-datez	orig-datesenderzresent-sendertoz	resent-toccz	resent-ccbccz
resent-bccfromzresent-fromzreply-tozmime-versionzcontent-type)zcontent-dispositionzcontent-transfer-encodingz
message-idc                   6    \ rS rSr\\S4S jrS rS rS r	Sr
g)	HeaderRegistryi2  Tc                 x    0 U l         Xl        X l        U(       a   U R                   R                  [        5        g g r'   )registry
base_classdefault_classupdate_default_header_map)r   rI  rJ  use_default_maps       r"   r#   HeaderRegistry.__init__6  s1     $*MM  !45 r%   c                 <    X R                   UR                  5       '   g r'   )rH  r  r   rz   ry   s      r"   map_to_typeHeaderRegistry.map_to_typeH  s     '*djjl#r%   c                     U R                   R                  UR                  5       U R                  5      n[	        SUR
                  -   X R                  40 5      $ )N_)rH  getr  rJ  r   r<   rI  rP  s      r"   __getitem__HeaderRegistry.__getitem__N  sC    mm

d.@.@AC$sOO&<bAAr%   c                     X   " X5      $ r'   rP   )r   rz   r{   s      r"   __call__HeaderRegistry.__call__R  s     z$&&r%   )rI  rJ  rH  N)r<   rK   rL   rM   ro   r   r#   rQ  rV  rY  rO   rP   r%   r"   rF  rF  2  s"     #-<N'+6$*B
'r%   rF  N)typesr   emailr   r   r   r   r   rR   rc   ro   r   r   r   r   r   r   r   r   r   r   r  r  r   r+  r:  rL  rF  rP   r%   r"   <module>r]     s   #   0Y- Y-x/3 /3ha* a*H92 21 
+ +\z 
4 4n- 
!- ! 3 
" "J. .:2/ 2,)6 ) *	7 	7$<
$4 J $4	
 $= $7 	$7 M 	$7 M 
$7 M $7 M $7  $5!" $5#$ %=$A$3) .*' *'r%   