
    =h-	                         d Z ddlZdZ ej                  dej                        Z ej                  d      Zdedee	eef   e
e   f   fd	Zy)
z
ESMTP utils
    N)parse_esmtp_extensionszauth=(?P<auth>.*))flagsz$(?P<ext>[A-Za-z0-9][A-Za-z0-9\-]*) ?messagereturnc                 n   i }g }| j                  d      }|dd D ]  }t        j                  |      }|>|j                  d      }|j	                  |j                         j                                t        j                  |      }|q|j                  d      j                         }|j                  |j                  d      d j                         }	|	||<   |dk(  s|j                  |	j                         D 
cg c]   }
|
j                         j                         " c}
        ||fS c c}
w )aj  
    Parse an EHLO response from the server into a dict of {extension: params}
    and a list of auth method names.

    It might look something like:

         220 size.does.matter.af.MIL (More ESMTP than Crappysoft!)
         EHLO heaven.af.mil
         250-size.does.matter.af.MIL offers FIFTEEN extensions:
         250-8BITMIME
         250-PIPELINING
         250-DSN
         250-ENHANCEDSTATUSCODES
         250-EXPN
         250-HELP
         250-SAML
         250-SEND
         250-SOML
         250-TURN
         250-XADR
         250-XSTA
         250-ETRN
         250-XGEN
         250 SIZE 51200000
    
   Nauthext)splitOLDSTYLE_AUTH_REGEXmatchgroupappendlowerstripEXTENSIONS_REGEXstringendextend)r   esmtp_extensions
auth_typesresponse_linesline
auth_match	auth_type
extensions	extensionparamsparams              `/var/www/html/phonemate/phone_mate_backend/venv/lib/python3.12/site-packages/aiosmtplib/esmtp.pyr   r      s$   4 (*J]]4(N qr" )..t4
!"((0Iioo/5578 &++D1
!"((/557I&&z~~e'<'>?EEGF*0Y'F"!!flln"UnU5;;=#6#6#8n"UV/ #2 Z'' #Vs   ?%D2
)__doc__re__all__compileIr   r   strtupledictlistr        r!   <module>r-      sk    
 & !bjj!5RTTB 2::EF 9(C 9(E$sCx.$s)2K,L 9(r,   