§
    Ètºf—T  ã                   óà  — d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlZ	d dl
mZmZmZmZmZ d dlmZ d dlmZmZmZ d dlmZ d d	lmZmZ d d
lmZ d dlmZ 	 d dl m!Z!m"Z" n# e#$ r dZ!dZ"Y nw xY w G d„ de¦  «        Z$dddddddœZ%d.d„Z&d„ Z' G d„ de¦  «        Z( G d„ d¦  «        Z) G d„ d¦  «        Z* G d„ de¦  «        Z+ G d„ de¦  «        Z, G d„ d e¦  «        Z- G d!„ d"e¦  «        Z. G d#„ d$¦  «        Z/ G d%„ d&ej0        ¦  «        Z1 ee! d'¦  «         e ej2        ed¦  «         d'¦  «         G d(„ d)e¦  «        ¦   «         ¦   «         Z3 G d*„ d+e/e¦  «        Z4 G d,„ d-e¦  «        Z5dS )/é    N)ÚList)ÚskipIf)ÚdirectlyProvides)ÚdeferÚerrorÚ
interfacesÚprotocolÚreactor)ÚStringTransport)ÚAdvancedPOP3ClientÚ InsecureAuthenticationDisallowedÚServerErrorResponse)Úpop3testserver)ÚbasicÚloopback)Úlog)ÚTestCase)ÚClientTLSContextÚServerTLSContextc                   ó   — e Zd Zd„ ZdS )Ú#StringTransportWithConnectionLosingc                 ó\   — | j                              t          j        ¦   «         ¦  «         d S ©N)r	   ÚconnectionLostr   ÚConnectionDone©Úselfs    ú`/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/mail/test/test_pop3client.pyÚloseConnectionz2StringTransportWithConnectionLosing.loseConnection!   s'   € ØŒ×$Ò$¥UÔ%9Ñ%;Ô%;Ñ<Ô<Ð<Ð<Ð<ó    N)Ú__name__Ú
__module__Ú__qualname__r   © r    r   r   r       s#   € € € € € ð=ð =ð =ð =ð =r    r   s   180s   LOGIN)s   TOPs   LOGIN-DELAYs   UIDLó   STLSs   USERs   SASLTc                 óÀ   — t          ¦   «         }t          |_        t          ¦   «         }||_        |                     |¦  «         | r|                     d¦  «         ||fS )Ns   +OK Hello!
)Ú
POP3ClientÚcapCacheÚ	_capCacher   r	   ÚmakeConnectionÚdataReceived)ÚgreetÚpÚts      r   ÚsetUpr/   /   s^   € Ý‰Œ€Aõ €A„Kå+Ñ-Ô-€AØ€A„JØ×Ò�QÑÔÐàð *Ø	�ŠÐ(Ñ)Ô)Ð)àˆaˆ4€Kr    c                 ó   — | fd„S )Nc                 ó   —  |¦   «         S r   r$   )ÚresultÚfs     r   ú<lambda>zstrip.<locals>.<lambda>A   s   € ˜q˜q™sœs€ r    r$   )r3   s    r   Ústripr5   @   s   € ØÐ"Ð"Ð"Ð"r    c                   ó\   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ ZdS )ÚPOP3ClientLoginTestsc                 óð   ‡ — t          d¬¦  «        \  }}d|_        |                     dd¦  «        }|                     d¦  «         ‰                      |t
          ¦  «                             ˆ fd„¦  «        S )NF©r,   Tó   usernameó   passwords   -ERR Offline for maintenance
c                 óF   •— ‰                      | j        d         d¦  «        S )Nr   s   Offline for maintenance©ÚassertEqualÚargs©Úexcr   s    €r   r4   z;POP3ClientLoginTests.testNegativeGreeting.<locals>.<lambda>K   s   ø€ ˜×(Ò(¨¬°!¬Ð6PÑQÔQ€ r    )r/   ÚallowInsecureLoginÚloginr+   ÚassertFailurer   ÚaddCallback©r   r-   r.   Úds   `   r   ÚtestNegativeGreetingz)POP3ClientLoginTests.testNegativeGreetingE   sz   ø€ Ý˜5Ð!Ñ!Ô!‰ˆˆ1Ø#ˆÔØ�GŠG�K Ñ-Ô-ˆØ	�ŠÐ:Ñ;Ô;Ð;Ø×!Ò! !Õ%8Ñ9Ô9×EÒEØQÐQÐQÐQñ
ô 
ð 	
r    c                 óþ   — t          ¦   «         \  }}|                     d¦  «        }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     | j        d¦  «        S )Nr:   ó   USER username
s   +OK send password
s   send password)r/   Úuserr>   Úvaluer+   rE   rF   s       r   Ú
testOkUserzPOP3ClientLoginTests.testOkUserN   sj   € Ý‰wŒw‰ˆˆ1Ø�FŠF�;ÑÔˆØ×Ò˜Ÿš™œÐ$8Ñ9Ô9Ð9Ø	�ŠÐ/Ñ0Ô0Ð0Ø�}Š}˜TÔ-Ð/?Ñ@Ô@Ð@r    c                 ó,  ‡ — t          ¦   «         \  }}|                     d¦  «        }‰                      |                     ¦   «         d¦  «         |                     d¦  «         ‰                      |t          ¦  «                             ˆ fd„¦  «        S )Nr:   rJ   s   -ERR account suspended
c                 óF   •— ‰                      | j        d         d¦  «        S )Nr   s   account suspendedr=   r@   s    €r   r4   z2POP3ClientLoginTests.testBadUser.<locals>.<lambda>[   s   ø€ ˜×(Ò(¨¬°!¬Ð6JÑKÔK€ r    )r/   rK   r>   rL   r+   rD   r   rE   rF   s   `   r   ÚtestBadUserz POP3ClientLoginTests.testBadUserU   sˆ   ø€ Ý‰wŒw‰ˆˆ1Ø�FŠF�;ÑÔˆØ×Ò˜Ÿš™œÐ$8Ñ9Ô9Ð9Ø	�ŠÐ4Ñ5Ô5Ð5Ø×!Ò! !Õ%8Ñ9Ô9×EÒEØKÐKÐKÐKñ
ô 
ð 	
r    c                 óþ   — t          ¦   «         \  }}|                     d¦  «        }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     | j        d¦  «        S )Nr;   ó   PASS password
s   +OK you're in!
s
   you're in!)r/   Úpasswordr>   rL   r+   rE   rF   s       r   Ú
testOkPasszPOP3ClientLoginTests.testOkPass^   si   € Ý‰wŒw‰ˆˆ1Ø�JŠJ�{Ñ#Ô#ˆØ×Ò˜Ÿš™œÐ$8Ñ9Ô9Ð9Ø	�ŠÐ,Ñ-Ô-Ð-Ø�}Š}˜TÔ-¨}Ñ=Ô=Ð=r    c                 ó,  ‡ — t          ¦   «         \  }}|                     d¦  «        }‰                      |                     ¦   «         d¦  «         |                     d¦  «         ‰                      |t          ¦  «                             ˆ fd„¦  «        S )Nr;   rR   s   -ERR go away
c                 óF   •— ‰                      | j        d         d¦  «        S )Nr   s   go awayr=   r@   s    €r   r4   z2POP3ClientLoginTests.testBadPass.<locals>.<lambda>k   s   ø€ ˜×(Ò(¨¬°!¬°jÑAÔA€ r    )r/   rS   r>   rL   r+   rD   r   rE   rF   s   `   r   ÚtestBadPassz POP3ClientLoginTests.testBadPasse   sˆ   ø€ Ý‰wŒw‰ˆˆ1Ø�JŠJ�{Ñ#Ô#ˆØ×Ò˜Ÿš™œÐ$8Ñ9Ô9Ð9Ø	�ŠÐ*Ñ+Ô+Ð+Ø×!Ò! !Õ%8Ñ9Ô9×EÒEØAÐAÐAÐAñ
ô 
ð 	
r    c                 óˆ  — t          ¦   «         \  }}d|_        |                     dd¦  «        }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                      |                     ¦   «         d¦  «         |                     d¦  «         |                     | j        d¦  «        S )	NTr:   r;   rJ   s   +OK go ahead
ó   USER username
PASS password
s   +OK password accepted
s   password accepted)r/   rB   rC   r>   rL   r+   rE   rF   s       r   ÚtestOkLoginz POP3ClientLoginTests.testOkLoginn   s¦   € Ý‰wŒw‰ˆˆ1Ø#ˆÔØ�GŠG�K Ñ-Ô-ˆØ×Ò˜Ÿš™œÐ$8Ñ9Ô9Ð9Ø	�ŠÐ*Ñ+Ô+Ð+Ø×Ò˜Ÿš™œÐ$IÑJÔJÐJØ	�ŠÐ3Ñ4Ô4Ð4Ø�}Š}˜TÔ-Ð/CÑDÔDÐDr    c                 ó¶  ‡ — t          ¦   «         \  }}d|_        |                     dd¦  «        }‰                      |                     ¦   «         d¦  «         |                     d¦  «         ‰                      |                     ¦   «         d¦  «         |                     d¦  «         ‰                      |t          ¦  «                             ˆ fd„¦  «        S )	NTr:   r;   rJ   s   +OK waiting on you
rY   ó   -ERR bogus login
c                 óF   •— ‰                      | j        d         d¦  «        S ©Nr   s   bogus loginr=   r@   s    €r   r4   z;POP3ClientLoginTests.testBadPasswordLogin.<locals>.<lambda>�   ó   ø€ ˜×(Ò(¨¬°!¬°nÑEÔE€ r    ©	r/   rB   rC   r>   rL   r+   rD   r   rE   rF   s   `   r   ÚtestBadPasswordLoginz)POP3ClientLoginTests.testBadPasswordLoginx   sÄ   ø€ Ý‰wŒw‰ˆˆ1Ø#ˆÔØ�GŠG�K Ñ-Ô-ˆØ×Ò˜Ÿš™œÐ$8Ñ9Ô9Ð9Ø	�ŠÐ0Ñ1Ô1Ð1Ø×Ò˜Ÿš™œÐ$IÑJÔJÐJØ	�ŠÐ.Ñ/Ô/Ð/Ø×!Ò! !Õ%8Ñ9Ô9×EÒEØEÐEÐEÐEñ
ô 
ð 	
r    c                 ó<  ‡ — t          ¦   «         \  }}d|_        |                     dd¦  «        }‰                      |                     ¦   «         d¦  «         |                     d¦  «         ‰                      |t          ¦  «                             ˆ fd„¦  «        S )NTr:   r;   rJ   r\   c                 óF   •— ‰                      | j        d         d¦  «        S r^   r=   r@   s    €r   r4   z;POP3ClientLoginTests.testBadUsernameLogin.<locals>.<lambda>‹   r_   r    r`   rF   s   `   r   ÚtestBadUsernameLoginz)POP3ClientLoginTests.testBadUsernameLogin„   s’   ø€ Ý‰wŒw‰ˆˆ1Ø#ˆÔØ�GŠG�K Ñ-Ô-ˆØ×Ò˜Ÿš™œÐ$8Ñ9Ô9Ð9Ø	�ŠÐ.Ñ/Ô/Ð/Ø×!Ò! !Õ%8Ñ9Ô9×EÒEØEÐEÐEÐEñ
ô 
ð 	
r    c                 óŒ   — t          d¬¦  «        \  }}|                     d¦  «         |                      |j        d ¦  «         d S )NFr9   s"   +OK lalala this has no challenge
©r/   r+   r>   ÚserverChallenge©r   r-   r.   s      r   ÚtestServerGreetingz'POP3ClientLoginTests.testServerGreetingŽ   sH   € Ý˜5Ð!Ñ!Ô!‰ˆˆ1Ø	�ŠÐ>Ñ?Ô?Ð?Ø×Ò˜Ô*¨DÑ1Ô1Ð1Ð1Ð1r    c                 óŒ   — t          d¬¦  «        \  }}|                     d¦  «         |                      |j        d¦  «         d S )NFr9   s   +OK <here is the challenge>
s   <here is the challenge>rf   rh   s      r   ÚtestServerGreetingWithChallengez4POP3ClientLoginTests.testServerGreetingWithChallenge“   sI   € Ý˜5Ð!Ñ!Ô!‰ˆˆ1Ø	�ŠÐ9Ñ:Ô:Ð:Ø×Ò˜Ô*Ð,FÑGÔGÐGÐGÐGr    c                 ó.  — t          d¬¦  «        \  }}|                     d¦  «         |                     dd¦  «        }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     | j        d¦  «        S )	NFr9   s"   +OK <challenge string goes here>
r:   r;   s0   APOP username f34f1e464d0d7927607753129cabe39a
s   +OK Welcome!
s   Welcome!)r/   r+   rC   r>   rL   rE   rF   s       r   ÚtestAPOPzPOP3ClientLoginTests.testAPOP˜   sŽ   € Ý˜5Ð!Ñ!Ô!‰ˆˆ1Ø	�ŠÐ>Ñ?Ô?Ð?Ø�GŠG�K Ñ-Ô-ˆØ×ÒØ�GŠG‰IŒIÐLñ	
ô 	
ð 	
ð 	
�ŠÐ*Ñ+Ô+Ð+Ø�}Š}˜TÔ-¨{Ñ;Ô;Ð;r    c                 ó  — t          d¬¦  «        \  }}|                     d¦  «         |                     dd¦  «        }|                      |                     ¦   «         ¦  «         |                      |t          ¦  «        S )NFr9   ó   +OK Howdy
r:   r;   )r/   r+   rC   ÚassertFalserL   rD   r   rF   s       r   Ú testInsecureLoginRaisesExceptionz5POP3ClientLoginTests.testInsecureLoginRaisesException¢   so   € Ý˜5Ð!Ñ!Ô!‰ˆˆ1Ø	�ŠÐ'Ñ(Ô(Ð(Ø�GŠG�K Ñ-Ô-ˆØ×Ò˜Ÿš™œÑ#Ô#Ð#Ø×!Ò! !Õ%EÑFÔFÐFr    c                 óÒ  — t          d¬¦  «        \  }}t          |t          j        ¦  «         |                     d¦  «         |                     dd¦  «        }|                      |                     ¦   «         d¦  «         |                     ¦   «          |                     d¦  «         |                      |                     ¦   «         d¦  «         |                     d¦  «         |S )	zÕ
        If a server doesn't offer APOP but the transport is secured using
        SSL or TLS, a plaintext login should be allowed, not rejected with
        an InsecureAuthenticationDisallowed exception.
        Fr9   ro   r:   r;   rJ   s   +OK
rR   )	r/   r   r   ÚISSLTransportr+   rC   r>   rL   ÚclearrF   s       r   Ú testSSLTransportConsideredSecurez5POP3ClientLoginTests.testSSLTransportConsideredSecure©   sÅ   € õ ˜5Ð!Ñ!Ô!‰ˆˆ1Ý˜�JÔ4Ñ5Ô5Ð5Ø	�ŠÐ'Ñ(Ô(Ð(Ø�GŠG�K Ñ-Ô-ˆØ×Ò˜Ÿš™œÐ$8Ñ9Ô9Ð9Ø	�Š‰	Œ	ˆ	Ø	�Š�zÑ"Ô"Ð"Ø×Ò˜Ÿš™œÐ$8Ñ9Ô9Ð9Ø	�Š�zÑ"Ô"Ð"Øˆr    N)r!   r"   r#   rH   rM   rP   rT   rW   rZ   ra   rd   ri   rk   rm   rq   ru   r$   r    r   r7   r7   D   sã   € € € € € ð
ð 
ð 
ðAð Að Að
ð 
ð 
ð>ð >ð >ð
ð 
ð 
ðEð Eð Eð

ð 

ð 

ð
ð 
ð 
ð2ð 2ð 2ð
Hð Hð Hð
<ð <ð <ðGð Gð Gðð ð ð ð r    r7   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚListConsumerc                 ó   — i | _         d S r   ©Údatar   s    r   Ú__init__zListConsumer.__init__¼   ó   € ØˆŒ	ˆ	ˆ	r    c                 ól   — |\  }}| j                              |g ¦  «                             |¦  «         d S r   )rz   Ú
setdefaultÚappend)r   r2   ÚitemrL   s       r   ÚconsumezListConsumer.consume¿   s7   € Ø‰ˆˆuØŒ	×Ò˜T 2Ñ&Ô&×-Ò-¨eÑ4Ô4Ð4Ð4Ð4r    N©r!   r"   r#   r{   r�   r$   r    r   rw   rw   »   s2   € € € € € ðð ð ð5ð 5ð 5ð 5ð 5r    rw   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚMessageConsumerc                 ó   — g | _         d S r   ry   r   s    r   r{   zMessageConsumer.__init__Å   r|   r    c                 ó:   — | j                              |¦  «         d S r   )rz   r   ©r   Úlines     r   r�   zMessageConsumer.consumeÈ   s   € ØŒ	×Ò˜ÑÔÐÐÐr    Nr‚   r$   r    r   r„   r„   Ä   s2   € € € € € ðð ð ðð ð ð ð r    r„   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚPOP3ClientListTestsc                 ó*  — t          ¦   «         \  }}|                     ¦   «         }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     d¦  «         |                     | j        g d¢¦  «        S )Nó   LIST
ó   +OK Here it comes
s   1 3
2 2
3 1
.
)é   é   é   )r/   ÚlistSizer>   rL   r+   rE   rF   s       r   ÚtestListSizez POP3ClientListTests.testListSizeÍ   s{   € Ý‰wŒw‰ˆˆ1Ø�JŠJ‰LŒLˆØ×Ò˜Ÿš™œ KÑ0Ô0Ð0Ø	�ŠÐ/Ñ0Ô0Ð0Ø	�ŠÐ4Ñ5Ô5Ð5Ø�}Š}˜TÔ-¨y¨y¨yÑ9Ô9Ð9r    c           
      ó:  — t          ¦   «         \  }}t          ¦   «         }|j        }|                     |¦  «        }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     d¦  «         |                      |j        dgdgdgdœ¦  «         |                     d¦  «         |                      |j        dgdgdgdgdgdgd	œ¦  «         |                     d
¦  «         |                     | j	        |¦  «        S )NrŒ   r�   s   1 3
2 2
3 1
rŽ   r�   r�   )r   r�   r�   s   5 3
6 2
7 1
)r   r�   r�   é   é   é   ó   .
)
r/   rw   r�   r‘   r>   rL   r+   rz   rE   ÚassertIdentical©r   r-   r.   Úcr3   rG   s         r   ÚtestListSizeWithConsumerz,POP3ClientListTests.testListSizeWithConsumerÕ   s
  € Ý‰wŒw‰ˆˆ1Ý‰NŒNˆØŒIˆØ�JŠJ�q‰MŒMˆØ×Ò˜Ÿš™œ KÑ0Ô0Ð0Ø	�ŠÐ/Ñ0Ô0Ð0Ø	�ŠÐ/Ñ0Ô0Ð0Ø×Ò˜œ a S¨a¨S°a°SÐ!9Ð!9Ñ:Ô:Ð:Ø	�ŠÐ/Ñ0Ô0Ð0Ø×Ò˜œ a S¨a¨S°a°S¸a¸SÀaÀSÈaÈSÐ!QÐ!QÑRÔRÐRØ	�Š�xÑ Ô Ð Ø�}Š}˜TÔ1°1Ñ5Ô5Ð5r    c                 ó*  ‡ — t          ¦   «         \  }}|                     ¦   «         }‰                      |                     ¦   «         d¦  «         |                     d¦  «         ‰                      |t          ¦  «                             ˆ fd„¦  «        S )NrŒ   ó!   -ERR Fatal doom server exploded
c                 óF   •— ‰                      | j        d         d¦  «        S ©Nr   s   Fatal doom server explodedr=   r@   s    €r   r4   z8POP3ClientListTests.testFailedListSize.<locals>.<lambda>é   ó   ø€ ˜×(Ò(¨¬°!¬Ð6SÑTÔT€ r    )r/   r‘   r>   rL   r+   rD   r   rE   rF   s   `   r   ÚtestFailedListSizez&POP3ClientListTests.testFailedListSizeã   sƒ   ø€ Ý‰wŒw‰ˆˆ1Ø�JŠJ‰LŒLˆØ×Ò˜Ÿš™œ KÑ0Ô0Ð0Ø	�ŠÐ=Ñ>Ô>Ð>Ø×!Ò! !Õ%8Ñ9Ô9×EÒEØTÐTÐTÐTñ
ô 
ð 	
r    c                 ó*  — t          ¦   «         \  }}|                     ¦   «         }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     d¦  «         |                     | j        g d¢¦  «        S )Nó   UIDL
r�   s   1 abc
2 def
3 ghi
.
)ó   abcs   defs   ghi)r/   ÚlistUIDr>   rL   r+   rE   rF   s       r   ÚtestListUIDzPOP3ClientListTests.testListUIDì   s~   € Ý‰wŒw‰ˆˆ1Ø�IŠI‰KŒKˆØ×Ò˜Ÿš™œ KÑ0Ô0Ð0Ø	�ŠÐ/Ñ0Ô0Ð0Ø	�ŠÐ:Ñ;Ô;Ð;Ø�}Š}˜TÔ-Ð/GÐ/GÐ/GÑHÔHÐHr    c                 óÀ  — t          ¦   «         \  }}t          ¦   «         }|j        }|                     |¦  «        }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     d¦  «         |                      |j        dgdgdgdœ¦  «         |                     d¦  «         |                     | j	        |¦  «        S )	Nr£   r�   s   1 xyz
2 abc
5 mno
s   xyzr¤   s   mno)r   r�   r”   r—   )
r/   rw   r�   r¥   r>   rL   r+   rz   rE   r˜   r™   s         r   ÚtestListUIDWithConsumerz+POP3ClientListTests.testListUIDWithConsumerô   sÃ   € Ý‰wŒw‰ˆˆ1Ý‰NŒNˆØŒIˆØ�IŠI�a‰LŒLˆØ×Ò˜Ÿš™œ KÑ0Ô0Ð0Ø	�ŠÐ/Ñ0Ô0Ð0Ø	�ŠÐ5Ñ6Ô6Ð6Ø×Ò˜œ f X°6°(À¸xÐ!HÐ!HÑIÔIÐIØ	�Š�xÑ Ô Ð Ø�}Š}˜TÔ1°1Ñ5Ô5Ð5r    c                 ó*  ‡ — t          ¦   «         \  }}|                     ¦   «         }‰                      |                     ¦   «         d¦  «         |                     d¦  «         ‰                      |t          ¦  «                             ˆ fd„¦  «        S )Nr£   r�   c                 óF   •— ‰                      | j        d         d¦  «        S rŸ   r=   r@   s    €r   r4   z7POP3ClientListTests.testFailedListUID.<locals>.<lambda>  r    r    )r/   r¥   r>   rL   r+   rD   r   rE   rF   s   `   r   ÚtestFailedListUIDz%POP3ClientListTests.testFailedListUID   sƒ   ø€ Ý‰wŒw‰ˆˆ1Ø�IŠI‰KŒKˆØ×Ò˜Ÿš™œ KÑ0Ô0Ð0Ø	�ŠÐ=Ñ>Ô>Ð>Ø×!Ò! !Õ%8Ñ9Ô9×EÒEØTÐTÐTÐTñ
ô 
ð 	
r    N)	r!   r"   r#   r’   r›   r¡   r¦   r¨   r«   r$   r    r   rŠ   rŠ   Ì   sq   € € € € € ð:ð :ð :ð6ð 6ð 6ð
ð 
ð 
ðIð Ið Ið
6ð 
6ð 
6ð
ð 
ð 
ð 
ð 
r    rŠ   c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚPOP3ClientMessageTestsc                 ó€  — t          ¦   «         \  }}|                     d¦  «        }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         |                     | j        ddg¦  «        S )	Né   ó   RETR 8
ó   +OK Message incoming
ó   La la la here is message text
s"   ..Further message text tra la la
r—   ó   La la la here is message texts   .Further message text tra la la©r/   Úretriever>   rL   r+   rE   rF   s       r   ÚtestRetrievez#POP3ClientMessageTests.testRetrieve  s¬   € Ý‰wŒw‰ˆˆ1Ø�JŠJ�q‰MŒMˆØ×Ò˜Ÿš™œ MÑ2Ô2Ð2Ø	�ŠÐ2Ñ3Ô3Ð3Ø	�ŠÐ;Ñ<Ô<Ð<Ø	�ŠÐ>Ñ?Ô?Ð?Ø	�Š�xÑ Ô Ð Ø�}Š}ØÔØ-Ð/QÐRñ
ô 
ð 	
r    c                 ó€  — t          ¦   «         \  }}t          ¦   «         }|j        }|                     d|¦  «        }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         |                     | j        ||¦  «        S )Nr¯   r°   r±   r²   s   ..Further message text
.
)	r/   r„   r�   rµ   r>   rL   r+   rE   Ú_cbTestRetrieveWithConsumerr™   s         r   ÚtestRetrieveWithConsumerz/POP3ClientMessageTests.testRetrieveWithConsumer  s¤   € Ý‰wŒw‰ˆˆ1ÝÑÔˆØŒIˆØ�JŠJ�q˜!ÑÔˆØ×Ò˜Ÿš™œ MÑ2Ô2Ð2Ø	�ŠÐ2Ñ3Ô3Ð3Ø	�ŠÐ;Ñ<Ô<Ð<Ø	�ŠÐ9Ñ:Ô:Ð:Ø�}Š}˜TÔ=¸qÀ!ÑDÔDÐDr    c                 ól   — |                       ||¦  «         |                      |j        ddg¦  «         d S )Nr³   s   .Further message text©r˜   r>   rz   ©r   r2   r3   rš   s       r   r¸   z2POP3ClientMessageTests._cbTestRetrieveWithConsumer#  sH   € Ø×Ò˜V QÑ'Ô'Ð'Ø×ÒØŒFÐ5Ð7OÐPñ	
ô 	
ð 	
ð 	
ð 	
r    c                 ó„  — t          ¦   «         \  }}|                     dd¬¦  «        }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         |                     | j        d	d
g¦  «        S )Nr¯   r�   ©Úlinesó	   TOP 8 2
ó   +OK 2 lines on the way
ó   Line the first!  Woop
ó   Line the last!  Bye
r—   ó   Line the first!  Woopó   Line the last!  Byer´   rF   s       r   ÚtestPartialRetrievez*POP3ClientMessageTests.testPartialRetrieve)  s²   € Ý‰wŒw‰ˆˆ1Ø�JŠJ�q ˆJÑ"Ô"ˆØ×Ò˜Ÿš™œ NÑ3Ô3Ð3Ø	�ŠÐ4Ñ5Ô5Ð5Ø	�ŠÐ3Ñ4Ô4Ð4Ø	�ŠÐ1Ñ2Ô2Ð2Ø	�Š�xÑ Ô Ð Ø�}Š}ØÔÐ7Ð9OÐPñ
ô 
ð 	
r    c                 ó®  — t          ¦   «         \  }}t          ¦   «         }|j        }|                     d|d¬¦  «        }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         |                     d¦  «         |                     | j        ||¦  «        S )	Nr¯   r�   r¾   rÀ   rÁ   rÂ   rÃ   r—   )	r/   r„   r�   rµ   r>   rL   r+   rE   Ú"_cbTestPartialRetrieveWithConsumerr™   s         r   ÚtestPartialRetrieveWithConsumerz6POP3ClientMessageTests.testPartialRetrieveWithConsumer5  sº   € Ý‰wŒw‰ˆˆ1ÝÑÔˆØŒIˆØ�JŠJ�q˜! 1ˆJÑ%Ô%ˆØ×Ò˜Ÿš™œ NÑ3Ô3Ð3Ø	�ŠÐ4Ñ5Ô5Ð5Ø	�ŠÐ3Ñ4Ô4Ð4Ø	�ŠÐ1Ñ2Ô2Ð2Ø	�Š�xÑ Ô Ð Ø�}Š}˜TÔDÀaÈÑKÔKÐKr    c                 ól   — |                       ||¦  «         |                      |j        ddg¦  «         d S )NrÄ   rÅ   r»   r¼   s       r   rÈ   z9POP3ClientMessageTests._cbTestPartialRetrieveWithConsumerA  s=   € Ø×Ò˜V QÑ'Ô'Ð'Ø×Ò˜œÐ":Ð<RÐ!SÑTÔTÐTÐTÐTr    c                 ó,  ‡ — t          ¦   «         \  }}|                     d¦  «        }‰                      |                     ¦   «         d¦  «         |                     d¦  «         ‰                      |t          ¦  «                             ˆ fd„¦  «        S )Nr   s   RETR 1
r�   c                 óF   •— ‰                      | j        d         d¦  «        S rŸ   r=   r@   s    €r   r4   z;POP3ClientMessageTests.testFailedRetrieve.<locals>.<lambda>K  r    r    )r/   rµ   r>   rL   r+   rD   r   rE   rF   s   `   r   ÚtestFailedRetrievez)POP3ClientMessageTests.testFailedRetrieveE  s…   ø€ Ý‰wŒw‰ˆˆ1Ø�JŠJ�q‰MŒMˆØ×Ò˜Ÿš™œ MÑ2Ô2Ð2Ø	�ŠÐ=Ñ>Ô>Ð>Ø×!Ò! !Õ%8Ñ9Ô9×EÒEØTÐTÐTÐTñ
ô 
ð 	
r    c                 ó:  ‡ ‡— t          ¦   «         \  Š}ˆˆ fd„t          d¦  «        D ¦   «         }t          dd¦  «        D ]Æ}‰                      |                     ¦   «         d|fz  ¦  «         |                     ¦   «          ‰                     d¦  «         ‰                     d|fz  ¦  «         ‰                     d|fz  ¦  «         ‰                      |                     ¦   «         d	¦  «         ‰                     d
¦  «         ŒÇt          j        |d¬¦  «        S )z‘
        Issue three retrieve calls immediately without waiting for any to
        succeed and make sure they all do succeed eventually.
        c           	      óŒ   •— g | ]@}‰                      |¦  «                             ‰j        d |dz   fz  d|dz   fz  g¦  «        ‘ŒAS )s   First line of %d.r�   s   Second line of %d.)rµ   rE   r>   )Ú.0Úir-   r   s     €€r   ú
<listcomp>zCPOP3ClientMessageTests.test_concurrentRetrieves.<locals>.<listcomp>T  sj   ø€ ð 
ð 
ð 
ð
 ð	 �JŠJ�q‰MŒM×%Ò%ØÔ Ø%¨¨Q©¨Ñ0Ð2GÈ1ÈqÉ5È(Ñ2RÐSñô ð
ð 
ð 
r    rŽ   r�   r”   s	   RETR %d
rÁ   s   First line of %d.
s   Second line of %d.
r    r—   T)ÚfireOnOneErrback)r/   Úranger>   rL   rt   r+   r   ÚDeferredList)r   r.   ÚmessagesrÑ   r-   s   `   @r   Útest_concurrentRetrievesz/POP3ClientMessageTests.test_concurrentRetrievesN  s#  øø€ õ
 ‰wŒw‰ˆˆ1ð
ð 
ð 
ð 
ð 
õ
 ˜1‘X”Xð
ñ 
ô 
ˆõ �q˜!‘”ð 	%ð 	%ˆAØ×Ò˜QŸWšW™YœY¨¸!¸Ñ(=Ñ>Ô>Ð>Ø�GŠG‰IŒIˆIØ�NŠNÐ8Ñ9Ô9Ð9Ø�NŠNÐ3°q°dÑ:Ñ;Ô;Ð;Ø�NŠNÐ4¸°tÑ;Ñ<Ô<Ð<Ø×Ò˜QŸWšW™YœY¨Ñ,Ô,Ð,Ø�NŠN˜8Ñ$Ô$Ð$Ð$åÔ! (¸TÐBÑBÔBÐBr    N)r!   r"   r#   r¶   r¹   r¸   rÆ   rÉ   rÈ   rÍ   r×   r$   r    r   r­   r­   
  sš   € € € € € ð
ð 
ð 
ð	Eð 	Eð 	Eð
ð 
ð 
ð

ð 

ð 

ð
Lð 
Lð 
LðUð Uð Uð
ð 
ð 
ðCð Cð Cð Cð Cr    r­   c                   óJ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ ZdS )ÚPOP3ClientMiscTestsc           
      óB  — t          ¦   «         \  }}|                     d¬¦  «        }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     d¦  «         |                     | j        d d d g d¢ddgdgd	œ¦  «        S )
Nr   ©ÚuseCacheó   CAPA
s   +OK Capabilities on the way
s!   X
Y
Z
A 1 2 3
B 1 2
C 1
.
)ó   1ó   2ó   3rÞ   rß   )ó   Xó   Yó   Zó   Aó   Bó   C©r/   Úcapabilitiesr>   rL   r+   rE   rF   s       r   ÚtestCapabilityz"POP3ClientMiscTests.testCapabilityi  sª   € Ý‰wŒw‰ˆˆ1Ø�NŠN AˆNÑ&Ô&ˆØ×Ò˜Ÿš™œ KÑ0Ô0Ð0Ø	�ŠÐ9Ñ:Ô:Ð:Ø	�ŠÐIÑJÔJÐJØ�}Š}ØÔàØØØ(Ð(Ð(Ø˜T�lØ�fðð ñ

ô 

ð 
	
r    c                 ó   — t          ¦   «         \  }}|                     d¬¦  «        }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     | j        i ¦  «        S )Nr   rÛ   rÝ   ó   -ERR This server is lame!
rç   rF   s       r   ÚtestCapabilityErrorz'POP3ClientMiscTests.testCapabilityError{  sj   € Ý‰wŒw‰ˆˆ1Ø�NŠN AˆNÑ&Ô&ˆØ×Ò˜Ÿš™œ KÑ0Ô0Ð0Ø	�ŠÐ7Ñ8Ô8Ð8Ø�}Š}˜TÔ-¨rÑ2Ô2Ð2r    c                 óü   — t          ¦   «         \  }}|                     ¦   «         }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     | j        d¦  «        S )Nó   STAT
s   +OK 1 1212
)r�   i¼  )r/   Ústatr>   rL   r+   rE   rF   s       r   ÚtestStatzPOP3ClientMiscTests.testStat‚  sd   € Ý‰wŒw‰ˆˆ1Ø�FŠF‰HŒHˆØ×Ò˜Ÿš™œ KÑ0Ô0Ð0Ø	�ŠÐ(Ñ)Ô)Ð)Ø�}Š}˜TÔ-¨yÑ9Ô9Ð9r    c                 ó*  ‡ — t          ¦   «         \  }}|                     ¦   «         }‰                      |                     ¦   «         d¦  «         |                     d¦  «         ‰                      |t          ¦  «                             ˆ fd„¦  «        S )Nrî   rë   c                 óF   •— ‰                      | j        d         d¦  «        S ©Nr   s   This server is lame!r=   r@   s    €r   r4   z3POP3ClientMiscTests.testStatError.<locals>.<lambda>�  ó   ø€ ˜×(Ò(¨¬°!¬Ð6MÑNÔN€ r    )r/   rï   r>   rL   r+   rD   r   rE   rF   s   `   r   ÚtestStatErrorz!POP3ClientMiscTests.testStatError‰  óƒ   ø€ Ý‰wŒw‰ˆˆ1Ø�FŠF‰HŒHˆØ×Ò˜Ÿš™œ KÑ0Ô0Ð0Ø	�ŠÐ7Ñ8Ô8Ð8Ø×!Ò! !Õ%8Ñ9Ô9×EÒEØNÐNÐNÐNñ
ô 
ð 	
r    c                 óü   — t          ¦   «         \  }}|                     ¦   «         }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     | j        d¦  «        S )Nó   NOOP
s   +OK No-op to you too!
s   No-op to you too!)r/   Únoopr>   rL   r+   rE   rF   s       r   ÚtestNoopzPOP3ClientMiscTests.testNoop’  se   € Ý‰wŒw‰ˆˆ1Ø�FŠF‰HŒHˆØ×Ò˜Ÿš™œ KÑ0Ô0Ð0Ø	�ŠÐ3Ñ4Ô4Ð4Ø�}Š}˜TÔ-Ð/CÑDÔDÐDr    c                 ó*  ‡ — t          ¦   «         \  }}|                     ¦   «         }‰                      |                     ¦   «         d¦  «         |                     d¦  «         ‰                      |t          ¦  «                             ˆ fd„¦  «        S )Nrø   rë   c                 óF   •— ‰                      | j        d         d¦  «        S ró   r=   r@   s    €r   r4   z3POP3ClientMiscTests.testNoopError.<locals>.<lambda>Ÿ  rô   r    )r/   rù   r>   rL   r+   rD   r   rE   rF   s   `   r   ÚtestNoopErrorz!POP3ClientMiscTests.testNoopError™  rö   r    c                 óü   — t          ¦   «         \  }}|                     ¦   «         }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     | j        d¦  «        S )Nó   RSET
s   +OK Reset state
s   Reset state)r/   Úresetr>   rL   r+   rE   rF   s       r   ÚtestRsetzPOP3ClientMiscTests.testRset¢  sd   € Ý‰wŒw‰ˆˆ1Ø�GŠG‰IŒIˆØ×Ò˜Ÿš™œ KÑ0Ô0Ð0Ø	�ŠÐ-Ñ.Ô.Ð.Ø�}Š}˜TÔ-¨~Ñ>Ô>Ð>r    c                 ó*  ‡ — t          ¦   «         \  }}|                     ¦   «         }‰                      |                     ¦   «         d¦  «         |                     d¦  «         ‰                      |t          ¦  «                             ˆ fd„¦  «        S )Nrÿ   rë   c                 óF   •— ‰                      | j        d         d¦  «        S ró   r=   r@   s    €r   r4   z3POP3ClientMiscTests.testRsetError.<locals>.<lambda>¯  rô   r    )r/   r   r>   rL   r+   rD   r   rE   rF   s   `   r   ÚtestRsetErrorz!POP3ClientMiscTests.testRsetError©  sƒ   ø€ Ý‰wŒw‰ˆˆ1Ø�GŠG‰IŒIˆØ×Ò˜Ÿš™œ KÑ0Ô0Ð0Ø	�ŠÐ7Ñ8Ô8Ð8Ø×!Ò! !Õ%8Ñ9Ô9×EÒEØNÐNÐNÐNñ
ô 
ð 	
r    c                 óþ   — t          ¦   «         \  }}|                     d¦  «        }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                     | j        d¦  «        S )NrŽ   ó   DELE 4
s   +OK Hasta la vista
s   Hasta la vista)r/   Údeleter>   rL   r+   rE   rF   s       r   Ú
testDeletezPOP3ClientMiscTests.testDelete²  sg   € Ý‰wŒw‰ˆˆ1Ø�HŠH�Q‰KŒKˆØ×Ò˜Ÿš™œ MÑ2Ô2Ð2Ø	�ŠÐ0Ñ1Ô1Ð1Ø�}Š}˜TÔ-Ð/@ÑAÔAÐAr    c                 ó,  ‡ — t          ¦   «         \  }}|                     d¦  «        }‰                      |                     ¦   «         d¦  «         |                     d¦  «         ‰                      |t          ¦  «                             ˆ fd„¦  «        S )NrŽ   r  s   -ERR Winner is not you.
c                 óF   •— ‰                      | j        d         d¦  «        S )Nr   s   Winner is not you.r=   r@   s    €r   r4   z5POP3ClientMiscTests.testDeleteError.<locals>.<lambda>¿  s   ø€ ˜×(Ò(¨¬°!¬Ð6KÑLÔL€ r    )r/   r  r>   rL   r+   rD   r   rE   rF   s   `   r   ÚtestDeleteErrorz#POP3ClientMiscTests.testDeleteError¹  s…   ø€ Ý‰wŒw‰ˆˆ1Ø�HŠH�Q‰KŒKˆØ×Ò˜Ÿš™œ MÑ2Ô2Ð2Ø	�ŠÐ5Ñ6Ô6Ð6Ø×!Ò! !Õ%8Ñ9Ô9×EÒEØLÐLÐLÐLñ
ô 
ð 	
r    N)r!   r"   r#   ré   rì   rð   rõ   rú   rý   r  r  r  r  r$   r    r   rÙ   rÙ   h  s°   € € € € € ð
ð 
ð 
ð$3ð 3ð 3ð:ð :ð :ð
ð 
ð 
ðEð Eð Eð
ð 
ð 
ð?ð ?ð ?ð
ð 
ð 
ðBð Bð Bð
ð 
ð 
ð 
ð 
r    rÙ   c                   ó   — e Zd Zdd„Zd„ ZdS )ÚSimpleClientNc                 ó"   — || _         d| _        d S )NT)ÚdeferredrB   )r   r  ÚcontextFactorys      r   r{   zSimpleClient.__init__Ä  s   € Ø ˆŒØ"&ˆÔÐÐr    c                 ó:   — | j                              d ¦  «         d S r   )r  Úcallback)r   Ú	challenges     r   ÚserverGreetingzSimpleClient.serverGreetingÈ  s   € ØŒ×Ò˜tÑ$Ô$Ð$Ð$Ð$r    r   )r!   r"   r#   r{   r  r$   r    r   r  r  Ã  s7   € € € € € ð'ð 'ð 'ð 'ð%ð %ð %ð %ð %r    r  c                   ó4   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	dS )ÚPOP3HelperMixinNc                 óÆ   — t          j        ¦   «         }t          j        | j        ¬¦  «        | _        t          || j        ¬¦  «        | _        d| j        _	        || _
        d S )N)r  é   )r   ÚDeferredr   ÚPOP3TestServerÚ	serverCTXÚserverr  Ú	clientCTXÚclientÚtimeoutÚ	connected)r   rG   s     r   r/   zPOP3HelperMixin.setUpÐ  sQ   € ÝŒNÑÔˆÝ$Ô3À4Ä>ÐRÑRÔRˆŒÝ" 1°T´^ÐDÑDÔDˆŒØ ˆŒÔØˆŒˆˆr    c                 ó   — | ` | `| `d S r   )r  r  r   r   s    r   ÚtearDownzPOP3HelperMixin.tearDown×  s   € ØˆKØˆKØˆNˆNˆNr    c                 óB   — | j         j                             ¦   «          d S r   )r  Ú	transportr   )r   Úignores     r   Ú_cbStopClientzPOP3HelperMixin._cbStopClientÜ  s   € ØŒÔ×,Ò,Ñ.Ô.Ð.Ð.Ð.r    c                 ó~   — | j         j                             ¦   «          | j        j                             ¦   «          |S r   )r  r$  r   r  )r   Úfailures     r   Ú
_ebGeneralzPOP3HelperMixin._ebGeneralß  s5   € ØŒÔ×,Ò,Ñ.Ô.Ð.ØŒÔ×,Ò,Ñ.Ô.Ð.Øˆr    c                 óD   — t          j        | j        | j        d¬¦  «        S )NF)Únoisy)r   ÚloopbackTCPr  r  r   s    r   r   zPOP3HelperMixin.loopbackä  s   € ÝÔ# D¤K°´ÀEÐJÑJÔJÐJr    )
r!   r"   r#   r  r  r/   r"  r&  r)  r   r$   r    r   r  r  Ì  sn   € € € € € Ø€IØ€Iðð ð ðð ð ð
/ð /ð /ðð ð ð
Kð Kð Kð Kð Kr    r  c                   ó4   — e Zd Z G d„ dej        ¦  «        ZdS )ÚTLSServerFactoryc                   ó:   — e Zd ZU dZg Zee         ed<   d„ Zd„ Z	dS )úTLSServerFactory.protocolNÚoutputc                 óª   — g | j         _        | j        d d …         | _        | j                             d¦  «        D ]}|                      |¦  «         Œd S )Nr   )ÚfactoryÚinputr1  ÚpopÚsendLiner‡   s     r   ÚconnectionMadez(TLSServerFactory.protocol.connectionMadeí  sY   € Ø!#ˆDŒLÔØœ+ a a aœ.ˆDŒKØœŸš¨Ñ*Ô*ð $ð $�Ø—’˜dÑ#Ô#Ð#Ð#ð$ð $r    c                 óà   ‡ — ‰ j         j                             |¦  «         ˆ fd„‰ j                             d¦  «        D ¦   «          |dk    r!‰ j                             ‰ j        ¦  «         d S d S )Nc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r$   )r6  )rÐ   Úlr   s     €r   rÒ   z:TLSServerFactory.protocol.lineReceived.<locals>.<listcomp>õ  s%   ø€ Ð:Ð:Ð: !ˆT�]Š]˜1ÑÔÐ:Ð:Ð:r    r   r%   )r3  r4  r   r1  r5  r$  ÚstartTLSÚcontextr‡   s   ` r   ÚlineReceivedz&TLSServerFactory.protocol.lineReceivedó  sr   ø€ ØŒLÔ×%Ò% dÑ+Ô+Ð+Ø:Ð:Ð:Ð: t¤{§¢°qÑ'9Ô'9Ð:Ñ:Ô:Ð:Ø�wŠˆØ”×'Ò'¨¬Ñ5Ô5Ð5Ð5Ð5ð ˆr    )
r!   r"   r#   r<  r1  r   ÚbytesÚ__annotations__r7  r=  r$   r    r   r	   r0  é  sM   € € € € € € ØˆØ ˆ��U”Ð Ð Ñ ð	$ð 	$ð 	$ð	6ð 	6ð 	6ð 	6ð 	6r    r	   N)r!   r"   r#   r   ÚLineReceiverr	   r$   r    r   r.  r.  è  sA   € € € € € ð6ð 6ð 6ð 6ð 6�5Ô%ñ 6ô 6ð 6ð 6ð 6r    r.  zOpenSSL not presentc                   ó   — e Zd ZdZd„ ZdS )ÚPOP3TLSTestsz=
    Tests for POP3Client's support for TLS connections.
    c                 óX  ‡ ‡
‡‡‡— t          ¦   «         Šdgg d¢dgddgdgg‰j        _        t          ¦   «         ‰j        _        t          j        d‰d¬¦  «        }‰                      |j        ¦  «         | 	                    ¦   «         j
        }| 	                    ¦   «         j        }t          j        ¦   «         Št          t          j        ¦   «         t          ¦   «         ¦  «        Šˆˆfd„}|‰_        t          j        ¦   «         }ˆfd„|_        t          j        |||¦  «        Š
ˆfd	„}ˆfd
„}ˆ ˆfd„}ˆ
ˆfd„}	‰j                             |¦  «         ‰j                             |¦  «         ‰j                             |¦  «         ‰j                             |	¦  «         ‰j        S )zd
        POP3Client.startTLS starts a TLS session over its existing TCP
        connection.
        ó   +OK)rD  r%   ó   .rE  r   z	127.0.0.1)Ú	interfacec                 óh   •— t                                ‰| ¦  «         ‰                     d ¦  «         d S r   )r  r   r  )ÚreasonÚconnLostDeferredÚcps    €€r   r   z2POP3TLSTests.test_startTLS.<locals>.connectionLost  s3   ø€ Ý×'Ò'¨¨FÑ3Ô3Ð3Ø×%Ò% dÑ+Ô+Ð+Ð+Ð+r    c                  ó   •— ‰ S r   r$   )rJ  s   €r   r4   z,POP3TLSTests.test_startTLS.<locals>.<lambda>  s   ø€ ˜b€ r    c                 óT   •— t          j        d¦  «         ‰                     ¦   «         S )Nz!Connected to server; starting TLS)r   Úmsgr;  ©ÚignoredrJ  s    €r   ÚcbConnectedz/POP3TLSTests.test_startTLS.<locals>.cbConnected!  s"   ø€ ÝŒGÐ7Ñ8Ô8Ð8Ø—;’;‘=”=Ð r    c                 óT   •— t          j        d¦  «         ‰                     ¦   «         S )NzStarted TLS; disconnecting)r   rM  ÚquitrN  s    €r   ÚcbStartedTLSz0POP3TLSTests.test_startTLS.<locals>.cbStartedTLS%  s"   ø€ ÝŒGÐ0Ñ1Ô1Ð1Ø—7’7‘9”9Ðr    c                 ój   •— t          j        d¦  «         ‰                     ‰j        g d¢¦  «         d S )Nz.Disconnected; asserting correct input received)ó   CAPAr%   rU  s   QUIT)r   rM  r>   r4  )Úignr   Úsfs    €€r   ÚcbDisconnectedz2POP3TLSTests.test_startTLS.<locals>.cbDisconnected)  s9   ø€ ÝŒGÐDÑEÔEÐEØ×Ò˜RœXÐ'KÐ'KÐ'KÑLÔLÐLÐLÐLr    c                 óX   •— t          j        d¦  «         ‰                     ¦   «          ‰S )NzEAsserted correct input; disconnecting client and shutting down server)r   rM  Ú
disconnect)r2   ÚconnrI  s    €€r   Úcleanupz+POP3TLSTests.test_startTLS.<locals>.cleanup-  s4   ø€ ÝŒGð2ñô ð ð �OŠOÑÔÐØ#Ð#r    )r.  r	   r1  r   r<  r
   Ú	listenTCPÚ
addCleanupÚstopListeningÚgetHostÚhostÚportr   r  r  r   r   ÚClientFactoryÚ
connectTCPr  rE   ÚaddBoth)r   rb  ÚHÚPr   ÚcfrP  rS  rX  r\  r[  rI  rJ  rW  s   `         @@@@r   Útest_startTLSzPOP3TLSTests.test_startTLS  sö  øøøøø€ õ
 ÑÔˆàˆHØ#Ð#Ð#ØˆHØ�TˆNØˆHð
ˆŒÔõ /Ñ0Ô0ˆŒÔÝÔ   B°+Ð>Ñ>Ô>ˆØ�Š˜Ô*Ñ+Ô+Ð+Ø�LŠL‰NŒNÔˆØ�LŠL‰NŒNÔˆå œ>Ñ+Ô+ÐÝ�%œ.Ñ*Ô*Õ,<Ñ,>Ô,>Ñ?Ô?ˆð	,ð 	,ð 	,ð 	,ð 	,ð 	,ð +ˆÔÝÔ#Ñ%Ô%ˆØ �j�j�jˆŒåÔ! ! Q¨Ñ+Ô+ˆð	!ð 	!ð 	!ð 	!ð 	!ð	ð 	ð 	ð 	ð 	ð	Mð 	Mð 	Mð 	Mð 	Mð 	Mð	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	Œ×Ò Ñ,Ô,Ð,Ø
Œ×Ò Ñ-Ô-Ð-Ø
Œ×Ò Ñ/Ô/Ð/Ø
Œ×Ò˜GÑ$Ô$Ð$àŒ{Ðr    N)r!   r"   r#   Ú__doc__ri  r$   r    r   rB  rB  ú  s-   € € € € € ðð ð9ð 9ð 9ð 9ð 9r    rB  c                   ó   — e Zd Zd„ ZdS )ÚPOP3TimeoutTestsc                 ój  ‡ ‡‡— ˆˆ ˆfd„}ˆ fd„Šˆ fd„Šˆ fd„}d‰ j         _        dt          _        ||g}t	          ‰ j        j        t	          t          |¦  «        ¦  «         ‰ j                             ‰ j        ¦  «         ‰ j         	                    ‰ j
        ¦  «         ‰                      ¦   «         S )Nc                  ó’   •— ‰j                              dd¦  «        } |                      ‰¦  «         |                      ‰¦  «         | S )NÚtestÚtwisted)r  rC   rE   Ú
addErrback)rG   ÚloggedInr   ÚtimedOuts    €€€r   rC   z+POP3TimeoutTests.testTimeout.<locals>.login?  sC   ø€ Ø”×!Ò! &¨)Ñ4Ô4ˆAØ�MŠM˜(Ñ#Ô#Ð#Ø�LŠL˜Ñ"Ô"Ð"ØˆHr    c                 ó2   •— ‰                      d¦  «         d S )Nz%Successfully logged in!?  Impossible!)Úfail)r2   r   s    €r   rr  z.POP3TimeoutTests.testTimeout.<locals>.loggedInE  s   ø€ Ø�IŠIÐ=Ñ>Ô>Ð>Ð>Ð>r    c                 óp   •— |                       t          j        ¦  «         ‰                     d ¦  «         d S r   )Útrapr   ÚTimeoutErrorr&  )r(  r   s    €r   rs  z.POP3TimeoutTests.testTimeout.<locals>.timedOutH  s2   ø€ Ø�LŠL�Ô+Ñ,Ô,Ð,Ø×Ò˜tÑ$Ô$Ð$Ð$Ð$r    c                  ó6   •— ‰ j                              ¦   «         S r   )r  rR  r   s   €r   rR  z*POP3TimeoutTests.testTimeout.<locals>.quitL  s   ø€ Ø”;×#Ò#Ñ%Ô%Ð%r    g{®Gáz„?T)r  r  r   ÚTIMEOUT_RESPONSEÚmapr   rE   r5   r&  rq  r)  r   )r   rC   rR  Úmethodsrr  rs  s   `   @@r   ÚtestTimeoutzPOP3TimeoutTests.testTimeout>  sð   øøø€ ð	ð 	ð 	ð 	ð 	ð 	ð 	ð	?ð 	?ð 	?ð 	?ð 	?ð	%ð 	%ð 	%ð 	%ð 	%ð	&ð 	&ð 	&ð 	&ð 	&ð #ˆŒÔð +/�Ô'à˜$�-ˆÝˆDŒNÔ&­­E°7Ñ(;Ô(;Ñ<Ô<Ð<ØŒ×"Ò" 4Ô#5Ñ6Ô6Ð6ØŒ×!Ò! $¤/Ñ2Ô2Ð2Ø�}Š}‰ŒÐr    N)r!   r"   r#   r}  r$   r    r   rl  rl  =  s#   € € € € € ðð ð ð ð r    rl  c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚPOP3ClientModuleStructureTestszt
    Miscellaneous tests more to do with module/package structure than
    anything to do with the POP3 client.
    c                 óZ   — |                       t          j        j        j        g ¦  «         dS )zŒ
        twisted.mail._pop3client.__all__ should be empty because all classes
        should be imported through twisted.mail.pop3.
        N)r>   rp  ÚmailÚ_pop3clientÚ__all__r   s    r   Útest_allz'POP3ClientModuleStructureTests.test_allb  s(   € ð
 	×Ò�œÔ1Ô9¸2Ñ>Ô>Ð>Ð>Ð>r    c                 ó‚  — d„ t          j        t          j        d         t           j        ¦  «        D ¦   «         }|D ]‚}|dk    sH|                      t          t          j        j	        |¦  «        |› dt          j        j	        › �¦  «         ŒP|                      t          t          j        j	        d¦  «        ¦  «         ŒƒdS )a  
        Every public class in twisted.mail._pop3client should be available as
        a member of twisted.mail.pop3 with the exception of
        twisted.mail._pop3client.POP3Client which should be available as
        twisted.mail.pop3.AdvancedClient.
        c                 óB   — g | ]}|d          d          dk    °|d          ‘ŒS )r   Ú_r$   )rÐ   rš   s     r   rÒ   z>POP3ClientModuleStructureTests.test_import.<locals>.<listcomp>p  s9   € ð 
ð 
ð 
àð �Q”4˜”7˜c’>�>ð	 ˆaŒDð "�>�>r    ztwisted.mail._pop3clientr'   z not in r   N)
ÚinspectÚ
getmembersÚsysÚmodulesÚisclassÚ
assertTrueÚhasattrrp  r�  Úpop3)r   ÚpublicClassesÚpcs      r   Útest_importz*POP3ClientModuleStructureTests.test_importi  sÐ   € ð
ð 
åÔ'Ý”Ð6Ô7½¼ñô ð
ñ 
ô 
ˆð  ð 	Rð 	RˆBØ˜Ò%Ð%Ø—’Ý�GœLÔ-¨rÑ2Ô2ØÐ6Ð6¥7¤<Ô#4Ð6Ð6ñô ð ð ð
 —’¥­¬Ô(9Ð;OÑ PÔ PÑQÔQÐQÐQð	Rð 	Rr    N)r!   r"   r#   rj  r„  r’  r$   r    r   r  r  \  sA   € € € € € ðð ð
?ð ?ð ?ðRð Rð Rð Rð Rr    r  )T)6rˆ  rŠ  Útypingr   Úunittestr   Úzope.interfacer   Útwisted.mail._pop3clientrp  Útwisted.internetr   r   r   r	   r
   Útwisted.internet.testingr   Útwisted.mail.pop3r   r'   r   r   Útwisted.mail.testr   Útwisted.protocolsr   r   Útwisted.pythonr   Útwisted.trial.unittestr   Útwisted.test.ssl_helpersr   r   ÚImportErrorr   r(   r/   r5   r7   rw   r„   rŠ   r­   rÙ   r  r  ÚServerFactoryr.  ÚIReactorSSLrB  rl  r  r$   r    r   ú<module>r¢     sU  ðð
 €€€Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à +Ð +Ð +Ð +Ð +Ð +à Ð Ð Ð Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð ð ð ð ð
 -Ð ,Ð ,Ð ,Ð ,Ð ,Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +ðØKÐKÐKÐKÐKÐKÐKÐKÐKøØð ð ð ØÐØÐÐÐðøøøð
=ð =ð =ð =ð =¨/ñ =ô =ð =ð ØØØØØðð €ðð ð ð ð"#ð #ð #ðtð tð tð tð t˜8ñ tô tð tðn5ð 5ð 5ð 5ð 5ñ 5ô 5ð 5ðð ð ð ð ñ ô ð ð;
ð ;
ð ;
ð ;
ð ;
˜(ñ ;
ô ;
ð ;
ð|[Cð [Cð [Cð [Cð [C˜Xñ [Cô [Cð [Cð|X
ð X
ð X
ð X
ð X
˜(ñ X
ô X
ð X
ðv%ð %ð %ð %ð %�:ñ %ô %ð %ðKð Kð Kð Kð Kñ Kô Kð Kð86ð 6ð 6ð 6ð 6�xÔ-ñ 6ô 6ð 6ð$ €ÐÐÐ3Ñ4Ô4Ø€Ð"ˆJÔ" 7¨DÑ1Ô1Ð1Ð3HÑIÔIð>ð >ð >ð >ð >�8ñ >ô >ñ JÔIñ 5Ô4ð>ðBð ð ð ð �¨ñ ô ð ð>#Rð #Rð #Rð #Rð #R Xñ #Rô #Rð #Rð #Rð #Rs   ÁA! Á!	A-Á,A-