+
    üÐj™8  ã                  óŠ  € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIHtHt ^ RI	H
t
 ^ RIHtHtHtHtHt ^ RIHtHt ^ RIHt ^ RIHtHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIH t  ^ RI!H"t"H#t# Rt$]%! ]PL                  4      t']PP                  PS                  ]PT                  4      ]'R&    ! R R]P*                  4      t+ ! R R]#4      t,R# )z¯
Tests for L{twisted.internet.stdio}.

@var properEnv: A copy of L{os.environ} which has L{bytes} keys/values on POSIX
    platforms and native L{str} keys/values on Windows.
)ÚannotationsN)ÚAnyÚCallable)ÚskipIf)ÚdeferÚerrorÚprotocolÚreactorÚstdio)ÚIProcessTransportÚIReactorProcess)ÚProcessProtocol)ÚfilepathÚlog)ÚFailure)ÚrequireModule)Úplatform)ÚConnectionLostNotifyingProtocol)ÚSkipTestÚTestCases   xyz123abc Twisted is great!Ú
PYTHONPATHc                  óR   € ] tR t^'t$ RtRtR]R&   R]R&   R R ltR	 tR
 t	R t
RtR# )ÚStandardIOTestProcessProtocola¥  
Test helper for collecting output from a child process and notifying
something when it exits.

@ivar onConnection: A L{defer.Deferred} which will be called back with
L{None} when the connection to the child process is established.

@ivar onCompletion: A L{defer.Deferred} which will be errbacked with the
failure associated with the child process exiting when it exits.

@ivar onDataReceived: A L{defer.Deferred} which will be called back with
this instance whenever C{childDataReceived} is called, or L{None} to
suppress these callbacks.

@ivar data: A C{dict} mapping file descriptors to strings containing all
bytes received from the child process on each file descriptor.
Nzdefer.Deferred[None] | NoneÚonDataReceivedr   Ú	transportc               ó   € V ^8„  d   QhRR/# )é   ÚreturnÚNone© )Úformats   "Ú9/usr/lib/python3/dist-packages/twisted/test/test_stdio.pyÚ__annotate__Ú*StandardIOTestProcessProtocol.__annotate__=   s   € ÷ )ñ )˜$ñ )ó    c                	ó|   € \         P                  ! 4       V n        \         P                  ! 4       V n        / V n        R # ©N)r   ÚDeferredÚonConnectionÚonCompletionÚdata©Úselfs   &r!   Ú__init__Ú&StandardIOTestProcessProtocol.__init__=   s'   € Ü27·.².Ó2BˆÔÜ27·.².Ó2BˆÔØ&(ˆŽ	r$   c                	ó<   € V P                   P                  R 4       R # r&   )r(   Úcallbackr+   s   &r!   ÚconnectionMadeÚ,StandardIOTestProcessProtocol.connectionMadeB   s   € Ø×Ñ×"Ñ" 4Ö(r$   c                óÎ   € V P                   P                  VR4      V,           V P                   V&   V P                  e'   V P                  Ruq0n        VP                  V 4       R# R# )z{
Record all bytes received from the child process in the C{data}
dictionary.  Fire C{onDataReceived} if it is not L{None}.
r$   N)r*   Úgetr   r0   )r,   ÚnameÚbytesÚds   &&& r!   ÚchildDataReceivedÚ/StandardIOTestProcessProtocol.childDataReceivedE   sU   € ð
 Ÿ)™)Ÿ-™-¨¨cÓ2°UÕ:ˆ�	‰	�$‰Ø×ÑÒ*Ø%)×%8Ñ%8¸$Ð"ˆAÔ"Ø�J‰J�tÖñ +r$   c                	ó<   € V P                   P                  V4       R # r&   )r)   r0   )r,   Úreasons   &&r!   ÚprocessEndedÚ*StandardIOTestProcessProtocol.processEndedO   s   € Ø×Ñ×"Ñ" 6Ö*r$   )r*   r)   r(   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú__annotations__r-   r1   r8   r<   Ú__static_attributes__r   r$   r!   r   r   '   s.   ‡ ñð$ 37€NÐ/Ó6Ø Ó õ)ò
)òö+r$   r   c                  ó  € ] tR t^St]P
                  ! 4       '       d   ]! R4      f   RtR R ltR R lt	R t
RR	 R
 lltR R ltR R ltR R ltR tR tR tR tR tR tR t]! ]P
                  ! 4       R4      R 4       tRtR# )ÚStandardInputOutputTestsÚwin32processNzIOn windows, spawnProcess is not available in the absence of win32process.c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   Úprotor   Úsiblingzstr | bytesÚargsÚstrÚkwr   r   r   r   )r    s   "r!   r"   Ú%StandardInputOutputTests.__annotate__Z   s4   € ÷ 
ñ 
Ø$ð
Ø/:ð
ØCFð
ØNQð
à	ñ
r$   c                ó@  € \        V\        4      '       d   VP                  4       p\        P                  RRV,           \
        P                  P                  .\        V4      ,           p\        \
        4      P                  ! V\        P                  V3R\        /VB # )a  
Launch a child Python process and communicate with it using the given
ProcessProtocol.

@param proto: A L{ProcessProtocol} instance which will be connected to
    the child process.

@param sibling: The basename of a file containing the Python program to
    run in the child process.

@param *args: strings which will be passed to the child process on the
    command line as C{argv[2:]}.

@param **kw: additional arguments to pass to L{reactor.spawnProcess}.

@return: The L{IProcessTransport} provider for the spawned process.
z-mztwisted.test.Úenv)Ú
isinstancer6   ÚdecodeÚsysÚ
executabler	   Ú	__class__r?   Úlistr   ÚspawnProcessÚ	properEnv)r,   rI   rJ   rK   rM   Úprocargss   &&&*, r!   Ú_spawnProcessÚ&StandardInputOutputTests._spawnProcessZ   sˆ   € ô( �gœu×%Ò%Ø—n‘nÓ&ˆGä�N‰NØØ˜gÕ%Ü×Ñ×(Ñ(ð	
ô
 �‹Jõˆô œwÓ'×4Ò4Ø”3—>‘> 8ñ
Ü1:ð
Ø>@ñ
ð 	
r$   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r7   údefer.Deferred[None]r0   zCallable[[Failure], object]r   r   )r    s   "r!   r"   rN   z   s$   € ÷ 	&ñ 	&Ø%ð	&Ø1Lð	&à	ñ	&r$   c                	ó@   a a€ V 3R  lpV3R lpVP                  W44      # )c                ó2   <€ SP                  R V : 24       R# )z%Process terminated with non-Failure: N)Úfail)Úresultr,   s   &€r!   ÚcbÚ4StandardInputOutputTests._requireFailure.<locals>.cb}   s   ø€ Ø�I‰IÐ=¸f¹ZÐHÖIr$   c                ó   <€ S! V 4      # r&   r   )Úerrr0   s   &€r!   ÚebÚ4StandardInputOutputTests._requireFailure.<locals>.eb€   s   ø€ Ù˜C“=Ð r$   )ÚaddCallbacks)r,   r7   r0   rb   rf   s   f&f  r!   Ú_requireFailureÚ(StandardInputOutputTests._requireFailurez   s   ù€ õ	Jõ	!ð �~‰~˜bÓ%Ð%r$   c                óæ   a aa€ S P                  4       o\        P                  ! RS,           4       \        4       oSP                  pS P                  SRS4       VVV 3R lpS P                  W4      # )zl
Verify that a protocol connected to L{StandardIO} can disconnect
itself using C{transport.loseConnection}.
zChild process logging to s   stdio_test_loseconnc                óD  <€ \        S4      ;_uu_ 4       pV F.  p\        P                  ! R VP                  4       ,           4       K0  	  RRR4       SP	                  ^SP
                  4       V P                  \        P                  4       R#   + '       g   i     LM; i)zChild logged: N)	Úopenr   ÚmsgÚrstripÚfailIfInr*   Útrapr   ÚProcessDone)r;   ÚfÚlineÚerrorLogFileÚpr,   s   &  €€€r!   r<   ÚBStandardInputOutputTests.test_loseConnection.<locals>.processEnded�   sf   ø€ ä�l×#Ô# qÛ�DÜ—G’GÐ,¨t¯{©{«}Õ<Ö=ñ ÷ $ð �M‰M˜!˜QŸV™VÔ$Ø�K‰Kœ×)Ñ)Ö*÷ $×#ús   •5BÂB	)Úmktempr   rn   r   r)   rZ   ri   )r,   r7   r<   ru   rv   s   f  @@r!   Útest_loseConnectionÚ,StandardInputOutputTests.test_loseConnection…   s^   ú€ ð
 —{‘{“}ˆÜ�ŠÐ+¨lÕ:Ô;Ü)Ó+ˆØ�N‰NˆØ×Ñ˜1Ð4°lÔC÷	+ð ×#Ñ# AÓ4Ð4r$   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚexamplerL   ÚoutÚboolr   r]   r   )r    s   "r!   r"   rN   ›   s$   € ÷ ñ ØðØ!%ðà	ñr$   c                	ó  aa€ V P                  4       p\        4       o\        P                  ! 4       Sn        R  VV3R llpSP                  P                  V4       R pV P                  SP                  V4      pV P                  SW4       V# )c               ó    € V ^8„  d   QhRRRR/# )r   Úignoredr   r   r]   r   )r    s   "r!   r"   ÚLStandardInputOutputTests.exampleOutputsAndZeroExitCode.<locals>.__annotate__¢   s   € ÷ 	ñ 	˜Tð 	Ð&:ñ 	r$   c                óœ   <€ SP                   pS'       d   SP                  P                  4        V# SP                  P                  4        V# r&   )r)   r   ÚcloseStdoutÚ
closeStdin)r�   r7   r}   rv   s   & €€r!   ÚcbBytesÚGStandardInputOutputTests.exampleOutputsAndZeroExitCode.<locals>.cbBytes¢   s=   ø€ Ø—‘ˆAßØ—‘×'Ñ'Ô)ð ˆHð —‘×&Ñ&Ô(ØˆHr$   c                óD   € V P                  \        P                  4       R # r&   )rq   r   rr   )r;   s   &r!   r<   ÚLStandardInputOutputTests.exampleOutputsAndZeroExitCode.<locals>.processEnded¬   s   € Ø�K‰Kœ×)Ñ)Ö*r$   )rx   r   r   r'   r   ÚaddCallbackri   rZ   )r,   r|   r}   ru   r†   r<   r7   rv   s   &&f    @r!   ÚexampleOutputsAndZeroExitCodeÚ6StandardInputOutputTests.exampleOutputsAndZeroExitCode›   s{   ù€ ð —{‘{“}ˆÜ)Ó+ˆÜ Ÿ>š>Ó+ˆÔ÷	ñ 	ð 	
×Ñ×$Ñ$ WÔ-ò	+ð × Ñ  ×!1Ñ!1°<Ó@ˆà×Ñ˜1˜gÔ4Øˆr$   c               ó   € V ^8„  d   QhRR/# ©r   r   r]   r   )r    s   "r!   r"   rN   ´   s   € ÷ Jñ JÐ)=ñ Jr$   c                ó$   € V P                  R4      # )z”
When stdin is closed and the protocol connected to it implements
L{IHalfCloseableProtocol}, the protocol's C{readConnectionLost} method
is called.
Ústdio_test_halfclose©r‹   r+   s   &r!   Útest_readConnectionLostÚ0StandardInputOutputTests.test_readConnectionLost´   s   € ð ×1Ñ1Ð2HÓIÐIr$   c               ó   € V ^8„  d   QhRR/# rŽ   r   )r    s   "r!   r"   rN   ¼   s   € ÷ Pñ PÐ.Bñ Pr$   c                ó$   € V P                  R4      # )úË
When stdin is closed and the protocol connnected to it implements
L{IHalfCloseableProtocol} but its C{readConnectionLost} method raises
an exception its regular C{connectionLost} method will be called.
Ústdio_test_halfclose_buggyr‘   r+   s   &r!   Útest_buggyReadConnectionLostÚ5StandardInputOutputTests.test_buggyReadConnectionLost¼   s   € ð ×1Ñ1Ð2NÓOÐOr$   c               ó   € V ^8„  d   QhRR/# rŽ   r   )r    s   "r!   r"   rN   Ä   s   € ÷ 
ñ 
Ð/Cñ 
r$   c                ó(   € V P                  RRR7      # )r–   Ú stdio_test_halfclose_buggy_writeT)r}   r‘   r+   s   &r!   Útest_buggyWriteConnectionLostÚ6StandardInputOutputTests.test_buggyWriteConnectionLostÄ   s!   € ð ×1Ñ1Ø.°Dð 2ó 
ð 	
r$   c                óâ   a a€ \        4       o S P                  SR\        RR7       TT 3R lpS P                  SP                  T4      #   \         d   p\	        \        T4      4      hRp?ii ; i)z–
Verify that a write made directly to stdout using L{os.write}
after StandardIO has finished is reliably received by the
process reading that stdout.
s   stdio_test_lastwriteT)ÚusePTYNc                óÐ   <€ SP                  SP                  ^,          P                  \        4      RSP                  : R24       V P	                  \
        P                  4       R# )ze
Asserts that the parent received the bytes written by the child
immediately after the child starts.
z	Received z) from child, did not find expected bytes.N)Ú
assertTruer*   ÚendswithÚUNIQUE_LAST_WRITE_STRINGrq   r   rr   ©r;   rv   r,   s   &€€r!   r<   ÚEStandardInputOutputTests.test_lastWriteReceived.<locals>.processEndedè   sM   ø€ ð
 �O‰OØ—‘�q•	×"Ñ"Ô#;Ó<Ø˜AŸF™F™:Ð%NÐOôð �K‰Kœ×)Ñ)Ö*r$   )r   rZ   r¤   Ú
ValueErrorr   rL   ri   r)   )r,   Úer<   rv   s   f  @r!   Útest_lastWriteReceivedÚ/StandardInputOutputTests.test_lastWriteReceivedÎ   so   ù€ ô *Ó+ˆð	#Ø×ÑØÐ*Ô,DÈTð ô ö		+ð ×#Ñ# A§N¡N°LÓAÐAøô ô 	#äœ3˜q›6Ó"Ð"ûð	#ús   ŽA
 Á
A.ÁA)Á)A.c                ó†   a a€ \        4       oSP                  pS P                  SR4       VV 3R lpS P                  W4      # )zk
Verify that the transport of a protocol connected to L{StandardIO}
has C{getHost} and C{getPeer} methods.
s   stdio_test_hostpeerc                óÐ   <€ SP                   ^,          P                  4       w  rSP                  V4       SP                  V4       V P                  \        P
                  4       R# )é   N)r*   Ú
splitlinesr¢   rq   r   rr   )r;   ÚhostÚpeerrv   r,   s   &  €€r!   r<   Ú?StandardInputOutputTests.test_hostAndPeer.<locals>.processEndedþ   sE   ø€ ØŸ™ �×-Ñ-Ó/‰JˆDØ�O‰O˜DÔ!Ø�O‰O˜DÔ!Ø�K‰Kœ×)Ñ)Ö*r$   ©r   r)   rZ   ri   ©r,   r7   r<   rv   s   f  @r!   Útest_hostAndPeerÚ)StandardInputOutputTests.test_hostAndPeerõ   s?   ù€ ô
 *Ó+ˆØ�N‰NˆØ×Ñ˜1Ð4Ô5ö	+ð ×#Ñ# AÓ4Ð4r$   c                ó†   a a€ \        4       oSP                  pS P                  SR4       VV 3R lpS P                  W4      # )zx
Verify that the C{write} method of the transport of a protocol
connected to L{StandardIO} sends bytes to standard out.
s   stdio_test_writec                óŒ   <€ SP                  SP                  ^,          R4       V P                  \        P                  4       R# ©r­   s   ok!N©ÚassertEqualr*   rq   r   rr   r¥   s   &€€r!   r<   Ú9StandardInputOutputTests.test_write.<locals>.processEnded  ó-   ø€ Ø×Ñ˜QŸV™V A�Y¨Ô/Ø�K‰Kœ×)Ñ)Ö*r$   r²   r³   s   f  @r!   Ú
test_writeÚ#StandardInputOutputTests.test_write  s?   ù€ ô
 *Ó+ˆØ�N‰Nˆà×Ñ˜1Ð1Ô2ö	+ð ×#Ñ# AÓ4Ð4r$   c                ó†   a a€ \        4       oSP                  pS P                  SR4       VV 3R lpS P                  W4      # )z€
Verify that the C{writeSequence} method of the transport of a
protocol connected to L{StandardIO} sends bytes to standard out.
s   stdio_test_writeseqc                óŒ   <€ SP                  SP                  ^,          R4       V P                  \        P                  4       R# r¸   r¹   r¥   s   &€€r!   r<   ÚAStandardInputOutputTests.test_writeSequence.<locals>.processEnded   r¼   r$   r²   r³   s   f  @r!   Útest_writeSequenceÚ+StandardInputOutputTests.test_writeSequence  s?   ù€ ô
 *Ó+ˆØ�N‰Nˆà×Ñ˜1Ð4Ô5ö	+ð ×#Ñ# AÓ4Ð4r$   c                	óÞ   € V P                  4       p\        VR 4      ;_uu_ 4       p\        R4       F  pVP                  RV3,          4       K  	  RRR4       V#   + '       g   i     T# ; i)Úwbi   ó   %d
N)rx   rm   ÚrangeÚwrite)r,   ÚjunkPathÚjunkFileÚis   &   r!   Ú	_junkPathÚ"StandardInputOutputTests._junkPath&  sX   € Ø—;‘;“=ˆÜ�(˜D×!Ô! XÜ˜4–[�Ø—‘˜w¨!¨�~Ö.ñ !÷ "ð ˆ÷ "Ö!ð ˆús   ¥,AÁA,	c                ó  a aaaaa€ \        4       oSP                  p. o\        \        ^d4      4      oVVVV3R loS P	                  SR4      oSP
                  P                  S4       VV VV3R lpS P                  W4      # )zh
Verify that the transport of a protocol connected to L{StandardIO}
is a working L{IProducer} provider.
c                óÊ   <€ S'       dZ   SP                  R SP                  4       3,          4       SP                  SR,          4       \        P                  ! RSR4       R# R# )rÆ   g{®Gáz„?Néÿÿÿÿ)ÚappendÚpoprÈ   r	   Ú	callLater)Úignr1   ÚprocÚtoWriteÚwrittens   &€€€€r!   r1   Ú>StandardInputOutputTests.test_producer.<locals>.connectionMade8  sG   ø€ ßØ—‘˜w¨'¯+©+«-Ð)9Õ9Ô:Ø—
‘
˜7 2�;Ô'Ü×!Ò! $¨¸Ö=ñ r$   s   stdio_test_producerc                óð   <€ SP                  SP                  ^,          RP                  S4      4       SP                  SR\	        S4      3,          4       V P                  \        P                  4       R# )r­   r$   z*Connection lost with %d writes left to go.N)rº   r*   ÚjoinÚassertFalseÚlenrq   r   rr   )r;   rv   r,   rÖ   r×   s   &€€€€r!   r<   Ú<StandardInputOutputTests.test_producer.<locals>.processEndedB  sW   ø€ Ø×Ñ˜QŸV™V A�Y¨¯©°Ó(9Ô:Ø×ÑØÐEÌÈWËÈÕWôð �K‰Kœ×)Ñ)Ö*r$   )r   r)   rV   rÇ   rZ   r(   rŠ   ri   )r,   r7   r<   r1   rv   rÕ   rÖ   r×   s   f  @@@@@r!   Útest_producerÚ&StandardInputOutputTests.test_producer-  sw   ý€ ô
 *Ó+ˆØ�N‰NˆàˆÜ”u˜S“zÓ"ˆ÷	>ð 	>ð ×!Ñ! !Ð%;Ó<ˆà	�‰×"Ñ" >Ô2÷	+ð 	+ð ×#Ñ# AÓ4Ð4r$   c                ó¬   a aa€ \        4       oSP                  pS P                  4       oS P                  SRS4       VVV 3R lpS P	                  W4      # )zh
Verify that the transport of a protocol connected to L{StandardIO}
is a working L{IConsumer} provider.
s   stdio_test_consumerc                ó  <€ \        SR 4      ;_uu_ 4       pSP                  SP                  ^,          VP                  4       4       RRR4       V P	                  \
        P                  4       R#   + '       g   i     L1; i)ÚrbN)rm   rº   r*   Úreadrq   r   rr   )r;   rs   rÉ   rv   r,   s   & €€€r!   r<   Ú<StandardInputOutputTests.test_consumer.<locals>.processEndedW  sP   ø€ Ü�h ×%Ô%¨Ø× Ñ  §¡¨¥¨A¯F©F«HÔ5÷ &à�K‰Kœ×)Ñ)Ö*÷ &×%ús   –2A1Á1B	)r   r)   rÌ   rZ   ri   )r,   r7   r<   rÉ   rv   s   f  @@r!   Útest_consumerÚ&StandardInputOutputTests.test_consumerK  sM   ú€ ô
 *Ó+ˆØ�N‰Nˆà—>‘>Ó#ˆà×Ñ˜1Ð4°hÔ?÷	+ð
 ×#Ñ# AÓ4Ð4r$   zpStandardIO does not accept stdout as an argument to Windows.  Testing redirection to a file is therefore harder.c                óð  a aa	a
aa€ \         P                  ! 4       p\        V4      p\        P                  ! S P                  4       4      oSP                  R4      ;S n        pS P                  VP                  4       \        VP                  4       R7      p\        P                  ! 4       '       g\   \        P                  ! 4       w  rVS P                  \        P                  V4       S P                  \        P                  V4       WTR&   \         P"                  ! V3/ VB o^o
\$        P&                  ! 4       o	VV	V
V3R lo\(        P*                  ! ^ S4       V	V
VV 3R lpVP-                  V4       V# )a  
If L{StandardIO} is created with a file descriptor which refers to a
normal file (ie, a file from the filesystem), L{StandardIO.write}
writes bytes to that file.  In particular, it does not immediately
consider the file closed or call its protocol's C{connectionLost}
method.
rÅ   )ÚstdoutÚstdinc                 ó®   <€ S F6  p V S8X  d   SP                  4         R # SP                  RV 3,          4        M	  \        P                  ! ^ S4       R # )Nó   %d)ÚloseConnectionrÈ   r	   rÓ   )ÚvalueÚ
connectionÚcountÚhowManyÚspins    €€€€r!   rñ   ÚAStandardInputOutputTests.test_normalFileStandardOut.<locals>.spin‚  sN   ø€ Û�Ø˜GÔ#Ø×-Ñ-Ô/ÚØ× Ñ  ¨%¨Õ!1Ô2Ùñ ô ×Ò˜a Ö&r$   c           	     óÊ   <€ SP                  \        S4      S^,           4       SP                  SP                  4       RP                  R \	        S4       4       4      4       R# )r­   r$   c              3  ó6   "  € T F  pR V3,          x € K  	  R# 5i)rë   Nr   )Ú.0rË   s   & r!   Ú	<genexpr>ÚVStandardInputOutputTests.test_normalFileStandardOut.<locals>.cbLost.<locals>.<genexpr>’  s   é € Ð+QÁ.¸Q¨E°Q°D¯LªLÃ.ùs   ‚N)rº   ÚnextÚ
getContentrÚ   rÇ   )r;   rï   rð   Úpathr,   s   &€€€€r!   ÚcbLostÚCStandardInputOutputTests.test_normalFileStandardOut.<locals>.cbLost�  sH   ø€ Ø×ÑœT %›[¨'°A­+Ô6Ø×ÑØ—‘Ó! 3§8¡8Ñ+QÄ%ÈÄ.Ó+QÓ#Qör$   )r   r'   r   r   ÚFilePathrx   rm   ÚnormalÚ
addCleanupÚcloseÚdictÚfilenor   Ú	isWindowsÚosÚpiper
   Ú
StandardIOÚ	itertoolsrï   r	   rÓ   rŠ   )r,   Ú
onConnLostrI   rþ   ÚkwargsÚrÚwrû   rî   rï   rð   rú   rñ   s   f       @@@@@r!   Útest_normalFileStandardOutÚ3StandardInputOutputTests.test_normalFileStandardOut^  s  ý€ ô —^’^Ó%ˆ
Ü/°
Ó;ˆÜ× Ò  §¡£Ó/ˆØ#Ÿy™y¨›Ð.ˆŒ�fØ�‰˜Ÿ™Ô%ä˜VŸ]™]›_Ô-ˆÜ×!Ò!×#Ò#ô —7’7“9‰DˆAØ�O‰OœBŸH™H aÔ(Ø�O‰OœBŸH™H aÔ(Ø�7‰OÜ×%Ò% eÑ6¨vÑ6ˆ
ð ˆÜ—’Ó!ˆ÷	'ð 	'ô 	×Ò˜!˜TÔ"÷	ð 	ð 	×Ñ˜vÔ&ØÐr$   )rþ   )F)r>   r?   r@   rA   r   r  r   ÚskiprZ   ri   ry   r‹   r’   r˜   r�   r©   r´   r½   rÂ   rÌ   rÞ   rå   r   r  rD   r   r$   r!   rF   rF   S   sš   † Ø×Ò×Ò¡¨nÓ =Ò Eð'ð 	õ

õ@	&ò5÷,õ2JõPõ
ò%BòN5ò"5ò 5ò ò5ò<5ñ& Ø×ÒÓð	=óñ
3óô
3r$   rF   )-rB   Ú
__future__r   r  r  rS   Útypingr   r   Úunittestr   Útwisted.internetr   r   r   r	   r
   Útwisted.internet.interfacesr   r   Útwisted.internet.protocolr   Útwisted.pythonr   r   Útwisted.python.failurer   Útwisted.python.reflectr   Útwisted.python.runtimer   Útwisted.test.test_tcpr   Útwisted.trial.unittestr   r   r¤   r  ÚenvironrX   ÚpathseprÚ   rú   r   rF   r   r$   r!   Ú<module>r     sŽ   ðñõ #ã Û 	Û 
ß  Ý ç CÕ Cß JÝ 5ß (Ý *Ý 0Ý +Ý Aß 5ð :Ð á�—‘Ó€	ØŸ*™*Ÿ/™/¨#¯(©(Ó3€	ˆ,Ñ ô)+ H×$<Ñ$<ô )+ôXC˜xö Cr$   