a DOg^;@sfddlZddlZddlZddlZzddlZdZWneyFdZYn0ddgZGdddeZ dZ dZ d Z d Z e e Zd ZGd ddZerGd ddeZededkrbddlZeejdZeeeejdeejdee\ZZededD]BZe e\Z!Z"Z#edee"D]Z$ede$q:edqe%dS)NTFPOP3 error_protoc@s eZdZdS)rN)__name__ __module__ __qualname__rr/usr/lib64/python3.9/poplib.pyrni  ic@seZdZdZeejfddZddZddZ dd Z d d Z d d Z ddZ ddZddZddZddZddZddZddZdd:d;Z%dS)?rzUTF-8cCsP||_||_d|_td||||||_|jd|_d|_ | |_ dS)NFzpoplib.connectrbr) hostport_tls_establishedsysaudit_create_socketsockmakefilefile _debugging_getrespwelcome)selfrrtimeoutrrr__init__bs z POP3.__init__cCs(|dur|stdt|j|jf|S)Nz0Non-blocking socket (timeout=0) is not supported) ValueErrorsocketcreate_connectionrr)rrrrrrms zPOP3._create_socketcCs:|jdkrtdt|td|||j|tdS)Nz*put*zpoplib.putline)rprintreprrrrsendallCRLFrlinerrr_putlinersz POP3._putlinecCs.|jrtdt|t||j}||dS)Nz*cmd*)rr!r"bytesencodingr'r%rrr_putcmdzs z POP3._putcmdcCs|jtd}t|tkr$td|jdkrrrrnoopsz POP3.noopcCs |dS)NZRSETrBr>rrrrsetsz POP3.rsetcCs|d}||S)NZQUIT)r<close)rr5rrrquits z POP3.quitcCs,z|j}d|_|dur|W|j}d|_|durz`z|tjWnBty}z*|jtjkrtt |dddkrtWYd}~n d}~00W|n |0n|j}d|_|dur&zbz|tjWnDty}z*|jtjkrt |dddkrWYd}~n d}~00W|n |00dS)Nwinerrorri&') rrSrshutdownr SHUT_RDWROSErrorerrnoZENOTCONNgetattr)rrrexcrrrrSs6    z POP3.closecCs|d|S)NzRPOP %srBrCrrrrpop7sz POP3.rpops\+OK.[^<]*(<.*>)cCs\t||j}|j|j}|s&tdddl}|d|}|| }| d||fS)Nz!-ERR APOP not supported by serverrr z APOP %s %s) r(r) timestampmatchrrhashlibgroupmd5 hexdigestr<)rrDpasswordZsecretmr_digestrrrapop>s z POP3.apopcCs|d||fS)Nz TOP %s %srN)rrMZhowmuchrrrtopSszPOP3.topcCs |dur|d|S|dS)NzUIDL %sZUIDLrKrLrrruidl\sz POP3.uidlcCs |dS)NZUTF8rBr>rrrutf8hsz POP3.utf8cCs`dd}i}z4|d}|d}|D]}||\}}|||<q$WntyZtdYn0|S)NcSs"|d}|d|ddfS)Nasciirr )decoderG)r&Zlstrrr _parsecap{szPOP3.capa.._parsecapZCAPAr z!-ERR CAPA not supported by server)r=r)rrlcapsr5ZrawcapsZcaplineZcapnmZcapargsrrrcapans    z POP3.capacCsxts td|jrtd|}d|vr2td|durBt}|d}|j|j|j d|_|j d|_ d|_|S)Nz-ERR TLS support missing$-ERR TLS session already establishedZSTLSz!-ERR STLS not supported by serverZserver_hostnamer T) HAVE_SSLrrrnssl_create_stdlib_contextr< wrap_socketrrrr)rcontextrmr5rrrstlss  z POP3.stls)N)N)N)&rrrr) POP3_PORTr_GLOBAL_DEFAULT_TIMEOUTrrr'r*r2rr:r<r=r?rArDrErIr9rOrPrQrRrTrSr\recompiler]rfrgrhrirnrvrrrrr3s@-       c@s4eZdZeddejdfddZddZdddZdS) POP3_SSLNcCs|dur|durtd|dur0|dur0td|dus@|durVddl}|dtd||_||_|durxtj||d}||_t ||||dS)Nz4context and keyfile arguments are mutually exclusivez5context and certfile arguments are mutually exclusiverzAkeyfile and certfile are deprecated, use a custom context insteadrF)certfilekeyfile) rwarningswarnDeprecationWarningr}r|rrrsrurr)rrrr}r|rrur~rrrrs"zPOP3_SSL.__init__cCs"t||}|jj||jd}|S)Nrp)rrrurtr)rrrrrrrs  zPOP3_SSL._create_socketcCs tddS)Nro)r)rr}r|rurrrrvsz POP3_SSL.stls)NNN) rrr POP3_SSL_PORTrrxrrrvrrrrr{s  r{__main__r rFz Message %d:z z-----------------------)&rYryrrrrrq ImportError__all__ Exceptionrrwrr0ZLFr$r.rr{r8rargvar!r?rDrEr9rIZnumMsgsZ totalSizerangeirOheadermsgr1r&rTrrrrsJ  p0