+
    üÐj+ ã                  ó®  € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t
^ RIt^ RIt^ RIHtHtHtHt ^ RIHtHtHtHtHtHtHtHtHtHtHtHtH t H!t!H"t"H#t# ^ RI$H%t%H&t&H't' ^ RI(H)t) ^ RI*H+t+ ^ RIH,t, ^ R	I-H.t.H/t/ ^ R
I0H1t1H2t2H3t3H4t4H5t5H6t6H7t7H8t8H9t9H:t:H;t;H<t< ^ RI=H>t> ^ RI?H@t@ ^ RIAHBtB ^ RICHDtD ^ RIEH	t	 R R ltF ! R R]G4      tHR R ltI]!! R]GR7      tJ ! R R4      tK ! R R]	P˜                  4      tM ! R R]	Pœ                  ]K4      tO ! R R4      tPR  R! ltQ ! R" R#]	Pœ                  4      tR ! R$ R%]	Pœ                  4      tS ! R& R']	Pœ                  4      tT ! R( R)]	Pœ                  4      tU ! R* R+]	Pœ                  4      tV ! R, R-]	Pœ                  4      tW ! R. R/]	Pœ                  ]K4      tX ! R0 R1]	P˜                  4      tYR2 R3 ltZ ! R4 R5]	Pœ                  4      t[ ! R6 R7]	P˜                  4      t\ ! R8 R9]	P˜                  ]K4      t]R: R; lt^ ! R< R=]	P˜                  4      t_ ! R> R?]	P˜                  4      t` ! R@ RA]	Pœ                  4      taR# )Bz+
Test cases for L{twisted.internet.defer}.
)ÚannotationsN)ÚAbstractEventLoopÚCancelledErrorÚFutureÚnew_event_loop)ÚAnyÚCallableÚ	CoroutineÚDictÚ	GeneratorÚListÚLiteralÚMappingÚNoReturnÚOptionalÚSetÚTupleÚTypeÚTypeVarÚUnionÚcast)Úassert_thatÚemptyÚequal_to)Úgiven)Úintegers)Úassert_type)ÚdeferÚreactor)Ú_TÚDeferredÚDeferredFilesystemLockÚDeferredListÚDeferredLockÚDeferredQueueÚDeferredSemaphoreÚFailureGroupÚ_DeferredListResultListTÚ_DeferredListSingleResultTÚensureDeferredÚrace)ÚClock)Úlog)Ú_PYPY©ÚFailure)Úunittestc               ó    € V ^8„  d   QhRRRR/# )é   Úfz0Callable[..., Coroutine[Deferred[Any], Any, _T]]ÚreturnzCallable[..., Deferred[_T]]© )Úformats   "Ú9/usr/lib/python3/dist-packages/twisted/test/test_defer.pyÚ__annotate__r8   G   s   € ÷ ñ Ø7ðà ñó    c                óL   a € \         P                  ! S 4      R  V 3R ll4       pV# )c               ó$   € V ^8„  d   QhRRRRRR/# )r2   ÚargsÚobjectÚkwargsr4   zDeferred[_T]r5   )r6   s   "r7   r8   Ú&ensuringDeferred.<locals>.__annotate__K   s!   € ÷ ,ñ ,�vð ,¨ð ,°Lñ ,r9   c                 ó@   <€ S! V / VB p\         P                  ! V4      # ©N)r    ÚfromCoroutine)r<   r>   Úcoror3   s   *, €r7   ÚwrapperÚ!ensuringDeferred.<locals>.wrapperJ   s#   ø€ á�$Ð!˜&Ñ!ˆÜ×%Ò% dÓ+Ð+r9   )Ú	functoolsÚwraps)r3   rD   s   f r7   ÚensuringDeferredrH   G   s'   ø€ ô ‡_‚_�QÓ÷,ó ð,ð €Nr9   c                  ó   € ] tR t^RtRtR# )ÚGenericErrorr5   N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r5   r9   r7   rJ   rJ   R   s   † Ûr9   rJ   c               ó    € V ^8„  d   QhRRRR/# )r2   ÚdeferredúDeferred[str]r4   ÚNoner5   )r6   s   "r7   r8   r8   V   s   € ÷ )ñ ) Mð )°dñ )r9   c                ó(   € V P                  R4       R# )z�
A fake L{Deferred} canceller which callbacks the L{Deferred}
with C{str} "Callback Result" when cancelling it.

@param deferred: The cancelled L{Deferred}.
úCallback ResultN©Úcallback©rR   s   &r7   ÚfakeCallbackCancellerrZ   V   s   € ð ×ÑÐ'Ö(r9   Ú_ExceptionT)Úboundc                  ó&   € ] tR t^ctRtR R ltRtR# )ÚImmediateFailureMixinz#
Add additional assertion methods.
c               ó$   € V ^8„  d   QhRRRRRR/# )r2   rR   úDeferred[Any]Ú	exceptionzType[_ExceptionT]r4   r[   r5   )r6   s   "r7   r8   Ú"ImmediateFailureMixin.__annotate__h   s$   € ÷ 4ñ 4Ø%ð4Ø2Cð4à	ñ4r9   c                ó6  € \        \        P                  V 4      p. pVP                  VP                  4       VP                  \        V4      ^4       VP                  V^ ,          P                  V4      4       \        \        V^ ,          P                  4      # )zˆ
Assert that the given Deferred current result is a Failure with the
given exception.

@return: The exception instance in the Deferred.
)r   r0   ÚTestCaseÚ
addErrbackÚappendÚassertEqualÚlenÚ
assertTrueÚcheckr[   Úvalue)ÚselfrR   ra   ÚtestCaseÚfailuress   &&&  r7   ÚassertImmediateFailureÚ,ImmediateFailureMixin.assertImmediateFailureh   su   € ô œ×)Ñ)¨4Ó0ˆØ"$ˆØ×Ñ˜HŸO™OÔ,Ø×ÑœS ›]¨AÔ.Ø×Ñ˜H Q�K×-Ñ-¨iÓ8Ô9Ü”K ¨!¥×!2Ñ!2Ó3Ð3r9   r5   N)rL   rM   rN   rO   Ú__doc__ro   rP   r5   r9   r7   r^   r^   c   s   † ñ÷4ñ 4r9   r^   c                  ó>   € ] tR t^ytRtR R ltR R ltR R ltRtR	# )
Ú	UtilTestsz
Tests for utility functions.
c               ó   € V ^8„  d   QhRR/# ©r2   r4   rT   r5   )r6   s   "r7   r8   ÚUtilTests.__annotate__~   s   € ÷ %ñ %¨4ñ %r9   c                ó¤   € \        \        4       4      p\        P                  ! V4      pV P	                  \        4       V P                  W4       R# )z,
L{defer.logError} returns the given error.
N)r/   ÚRuntimeErrorr   ÚlogErrorÚflushLoggedErrorsÚassertIs)rl   ÚerrorÚresults   &  r7   Útest_logErrorReturnsErrorÚ#UtilTests.test_logErrorReturnsError~   s8   € ô œ›Ó'ˆÜ—’ Ó&ˆØ×Ñœ|Ô,à�‰�eÖ$r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rv   ˆ   s   € ÷ *ñ *¨ñ *r9   c                ó¦   € \        \        4       4      p\        P                  ! V4       V P	                  \        4      pV P                  W!.4       R# )z)
L{defer.logError} logs the given error.
N)r/   rx   r   ry   rz   rg   )rl   r|   Úerrorss   &  r7   Útest_logErrorLogsErrorÚ UtilTests.test_logErrorLogsErrorˆ   s<   € ô œ›Ó'ˆÜ�Š�uÔØ×'Ñ'¬Ó5ˆà×Ñ˜ Ö)r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rv   ’   s   € ÷ Mñ M¨dñ Mr9   c                ó  a€ . oR V3R llp\         P                  ! V4       \        \        4       4      p\        P
                  ! V4       V P                  \        4       V P                  S^ ,          P                  R4      4       R# )zB
The text logged by L{defer.logError} has no repr of the failure.
c               ó    € V ^8„  d   QhRRRR/# )r2   Ú	eventDictzDict[str, Any]r4   rT   r5   )r6   s   "r7   r8   Ú<UtilTests.test_logErrorLogsErrorNoRepr.<locals>.__annotate__˜   s   € ÷ 	 ñ 	 ˜Nð 	 ¨tñ 	 r9   c                ób   <€ \         P                  ! V 4      pVf   Q hSP                  V4       R # rA   )r,   ÚtextFromEventDictrf   )rˆ   ÚtextÚoutputs   & €r7   ÚemitÚ4UtilTests.test_logErrorLogsErrorNoRepr.<locals>.emit˜   s+   ø€ Ü×(Ò(¨Ó3ˆDØÒ#Ð#Ð#Ø�M‰M˜$Ör9   úUnhandled Error
Traceback N)	r,   ÚaddObserverr/   rx   r   ry   rz   ri   Ú
startswith)rl   rŽ   r|   r�   s   &  @r7   Útest_logErrorLogsErrorNoReprÚ&UtilTests.test_logErrorLogsErrorNoRepr’   sd   ø€ ð ˆ÷	 ð 	 ô
 	�Š˜Ôäœ›Ó'ˆÜ�Š�uÔØ×Ñœ|Ô,à�‰˜˜q�	×,Ñ,Ð-JÓKÖLr9   r5   N)	rL   rM   rN   rO   rq   r~   rƒ   r“   rP   r5   r9   r7   rs   rs   y   s   † ñõ%õ*÷Mñ Mr9   rs   c                  ó¢  € ] tR t^¦tR R ltR R ltR R ltR R ltR	 R
 ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR! R" ltR# R$ ltR% R& ltR' R( ltR) R* ltR+ R, ltR- R. ltR/ R0 ltR1 R2 ltR3 R4 ltR5 R6 ltR7 R8 ltR9 R: lt R; R< lt!R= R> lt"R? R@ lt#RA RB lt$RC RD lt%RE RF lt&RG RH lt'RI RJ lt(RK RL lt)RM RN lt*RO RP lt+RQ RR lt,RS RT lt-RU RV lt.RW RX lt/RY RZ lt0R[ R\ lt1R] R^ lt2R_ R` lt3Ra Rb lt4Rc Rd lt5Re Rf lt6Rg Rh lt7Ri Rj lt8Rk Rl lt9Rm Rn lt:Ro Rp lt;Rq Rr lt<Rs Rt lt=Ru Rv lt>Rw Rx lt?Ry Rz lt@R{ R| ltAR} R~ ltBR R€ ltCR� R‚ ltDRƒ R„ ltER… R† ltFR‡ Rˆ ltGR‰ RŠ ltHR‹ RŒ ltIR� RŽ ltJR� R� ltKR‘ R’ ltLR“ R” ltMR• R– ltNR— R˜ ltOR™ Rš ltPR› Rœ ltQR� Rž ltRRŸ R  ltSR¡ R¢ ltTR£ R¤ ltU]VP®                  ! ]XR¥4      R¦ R§ l4       tY]VP®                  ! ]XR¥4      R¨ R© l4       tZ]VP®                  ! ]XR¥4      Rª R« l4       t[R¬ R­ lt\R®t]R¯# )°ÚDeferredTestsc               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   ÚDeferredTests.__annotate__§   s   € ÷ Bñ B�tñ Br9   c                	ó–   € R V n         R V n        R V n        V P                  \        P
                  \        P                  ! 4       4       R # rA   )ÚcallbackResultsÚcallback2ResultsÚerrbackResultsÚ
addCleanupr   ÚsetDebuggingÚgetDebugging©rl   s   &r7   ÚsetUpÚDeferredTests.setUp§   sH   € ð ð 	Ôð
 ð 	Ôð
 ð 	Ôð
 	�‰œ×*Ñ*¬E×,>Ò,>Ó,@ÖAr9   c               ó$   € V ^8„  d   QhRRRRRR/# )r2   r<   r=   r>   r4   r   r5   )r6   s   "r7   r8   r˜   µ   s!   € ÷ ñ ˜vð °ð ¸Cñ r9   c                	ó$   € W3V n         V^ ,          # )é    ©rš   ©rl   r<   r>   s   &*,r7   Ú	_callbackÚDeferredTests._callbackµ   s   € Ø#˜|ˆÔØ�A�wˆr9   c               ó$   € V ^8„  d   QhRRRRRR/# ©r2   r<   r=   r>   r4   rT   r5   )r6   s   "r7   r8   r˜   ¹   s!   € ÷ -ñ - ð -°&ð -¸Tñ -r9   c                	ó   € W3V n         R # rA   ©r›   r§   s   &*,r7   Ú
_callback2ÚDeferredTests._callback2¹   s   € Ø $ ˆÖr9   c               ó$   € V ^8„  d   QhRRRRRR/# )r2   r<   r/   r>   r=   r4   rT   r5   )r6   s   "r7   r8   r˜   ¼   s!   € ÷ +ñ +˜gð +°ð +¸Dñ +r9   c                	ó   € W3V n         R # rA   ©rœ   r§   s   &*,r7   Ú_errbackÚDeferredTests._errback¼   s   € Ø"˜lˆÖr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ¿   s   € ÷ Añ A¨ñ Ar9   c                	óä   € \        4       pVP                  V P                  4       VP                  R 4       V P	                  V P
                  4       V P                  V P                  R/ 34       R# ©ÚhelloN©r¸   ©r    ÚaddCallbackr¨   rX   ÚassertIsNonerœ   rg   rš   ©rl   rR   s   & r7   ÚtestCallbackWithoutArgsÚ%DeferredTests.testCallbackWithoutArgs¿   sX   € Ü"*£*ˆØ×Ñ˜TŸ^™^Ô,Ø×Ñ˜'Ô"Ø×Ñ˜$×-Ñ-Ô.Ø×Ñ˜×-Ñ-°
¸BÐ/?Ö@r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   Æ   s   € ÷ Iñ I dñ Ir9   c                	óæ   € \        4       pVP                  V P                  R 4       VP                  R4       V P	                  V P
                  4       V P                  V P                  R/ 34       R# )Úworldr¸   N)r¸   rÂ   rº   r½   s   & r7   ÚtestCallbackWithArgsÚ"DeferredTests.testCallbackWithArgsÆ   s[   € Ü"*£*ˆØ×Ñ˜TŸ^™^¨WÔ5Ø×Ñ˜'Ô"Ø×Ñ˜$×-Ñ-Ô.Ø×Ñ˜×-Ñ-Ð0BÀBÐ/GÖHr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   Í   s   € ÷ Qñ Q¨ñ Qr9   c                	óì   € \        4       pVP                  V P                  R R7       VP                  R4       V P	                  V P
                  4       V P                  V P                  RR R /34       R# )rÂ   )rÂ   r¸   Nr¹   rº   r½   s   & r7   ÚtestCallbackWithKwArgsÚ$DeferredTests.testCallbackWithKwArgsÍ   sb   € Ü"*£*ˆØ×Ñ˜TŸ^™^°7ÐÔ;Ø×Ñ˜'Ô"Ø×Ñ˜$×-Ñ-Ô.Ø×Ñ˜×-Ñ-°
¸WÀgÐ<NÐ/OÖPr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   Ô   s   € ÷ Bñ B $ñ Br9   c                	óV  € \        4       pVP                  V P                  4       VP                  V P                  4       VP	                  R 4       V P                  V P                  4       V P                  V P                  R/ 34       V P                  V P                  R/ 34       R# r·   )
r    r»   r¨   r®   rX   r¼   rœ   rg   rš   r›   r½   s   & r7   ÚtestTwoCallbacksÚDeferredTests.testTwoCallbacksÔ   s…   € Ü"*£*ˆØ×Ñ˜TŸ^™^Ô,Ø×Ñ˜TŸ_™_Ô-Ø×Ñ˜'Ô"Ø×Ñ˜$×-Ñ-Ô.Ø×Ñ˜×-Ñ-°
¸BÐ/?Ô@Ø×Ñ˜×.Ñ.°¸RÐ0@ÖAr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   Ý   s   € ÷ 

ñ 

°4ñ 

r9   c                	ó  € \        4       pVP                   V P                  4       pV P                  ^\	        V4      4       V P                  \        V^ ,          R,          4       V P                  RV^ ,          R,          4       R# )é   ÚcategoryzCtwisted.internet.defer.Deferred.callbacks was deprecated in TwistedÚmessageN)r    Ú	callbacksÚflushWarningsrg   rh   r{   ÚDeprecationWarningÚassertIn)rl   rR   Úwarningss   &  r7   Ú!test_callbacksAttributeDeprecatedÚ/DeferredTests.test_callbacksAttributeDeprecatedÝ   sg   € Ü"*£*ˆØ×Òà×%Ñ%Ó'ˆØ×Ñ˜œC ›MÔ*Ø�‰Ô(¨(°1­+°jÕ*AÔBØ�‰ØQØ�Q�K˜	Õ"ö	
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   é   s   € ÷ 5ñ 5¨dñ 5r9   c                óR  € \        R4      p\        4       pVP                  V P                  \	        \
        R\        3,          R4      4       VP                  V4       VP                  V P                  4       V P                  V P                  4       V P                  f   Q hV P                  \        V P                  ^ ,          4      ^4       V P                  V P                  ^ ,          ^ ,          P                  V4       V P                  V P                  ^,          / 4       R# )zA
If given None for an errback, addCallbacks uses a pass-through.
Úoopsie.N)rJ   r    ÚaddCallbacksr¨   r   r   r=   Úerrbackre   r³   r¼   rš   rœ   rg   rh   rk   ©rl   r|   rR   s   &  r7   Útest_addCallbacksNoneErrbackÚ*DeferredTests.test_addCallbacksNoneErrbacké   sà   € ô ˜XÓ&ˆÜ#+£:ˆØ×Ñ˜dŸn™n¬d´8¸CÄ¸KÕ3HÈ$Ó.OÔPØ×Ñ˜ÔØ×Ñ˜DŸM™MÔ*Ø×Ñ˜$×.Ñ.Ô/Ø×"Ñ"Ò.Ð.Ð.Ø×Ñœ˜T×0Ñ0°Õ3Ó4°aÔ8Ø×Ñ˜×,Ñ,¨QÕ/°Õ2×8Ñ8¸%Ô@Ø×Ñ˜×,Ñ,¨QÕ/°Ö4r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ø   s   € ÷ Añ A°4ñ Ar9   c           
     ór  € \        4       pVP                  V P                  V P                  \	        \
        \        ,          R4      \	        \        \        \        3,          R4      R/ 4       VP                  R4       V P                  V P                  4       V P                  V P                  R/ 34       R# )zB
If given None as a callback args and kwargs, () and {} are used.
Nr¸   r5   r¹   )r    rÜ   r¨   r³   r   r   r=   r   ÚstrrX   r¼   rœ   rg   rš   r½   s   & r7   Ú!test_addCallbacksNoneCallbackArgsÚ/DeferredTests.test_addCallbacksNoneCallbackArgsø   s�   € ô #+£*ˆØ×ÑØ�N‰NØ�M‰MÜ””v• Ó%Ü”œœf˜Õ% tÓ,ØØô	
ð 	×Ñ˜'Ô"Ø×Ñ˜$×-Ñ-Ô.Ø×Ñ˜×-Ñ-°
¸BÐ/?Ö@r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   	  s   € ÷ 5ñ 5°$ñ 5r9   c                ó¨  € \        R4      p\        4       pVP                  V P                  V P                  R/ \        \        \        ,          R4      \        \        \        \        3,          R4      4       VP                  V4       VP                  V P                  4       V P                  V P                  4       V P                  f   Q hV P                  \!        V P                  ^ ,          4      ^4       V P                  V P                  ^ ,          ^ ,          P"                  V4       V P                  V P                  ^,          / 4       R# )zA
If given None as a errback args and kwargs, () and {} are used.
rÛ   Nr5   )rJ   r    rÜ   r¨   r³   r   r   r=   r   rã   rÝ   re   r¼   rš   rœ   rg   rh   rk   rÞ   s   &  r7   Ú test_addCallbacksNoneErrbackArgsÚ.DeferredTests.test_addCallbacksNoneErrbackArgs	  s  € ô ˜XÓ&ˆÜ#+£:ˆØ×ÑØ�N‰NØ�M‰MØØÜ””v• Ó%Ü”œœf˜Õ% tÓ,ô	
ð 	×Ñ˜ÔØ×Ñ˜DŸM™MÔ*Ø×Ñ˜$×.Ñ.Ô/Ø×"Ñ"Ò.Ð.Ð.Ø×Ñœ˜T×0Ñ0°Õ3Ó4°aÔ8Ø×Ñ˜×,Ñ,¨QÕ/°Õ2×8Ñ8¸%Ô@Ø×Ñ˜×,Ñ,¨QÕ/°Ö4r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜     s   € ÷ "
ñ "
 $ñ "
r9   c                	óÊ  € \         \        \        \        \        \
        3,          3,          ,          p\        4       p\        4       p\        4       p\        W#V.4      p. pV3R  R llpR R lpVP                  Ww4       VP                  R4       VP                  V4       VP                  \        R4      4       VP                  R4       V P                  V^ ,          V^,          ^ ,          \	        \        \
        V^,          ^,          4      P                  4      3V^,          .\         P"                  R3\         P$                  R3\         P"                  R3.4       R# )c               ó$   € V ^8„  d   QhRRRRRR/# )r2   Ú
resultListÚ
ResultListr}   r4   rT   r5   )r6   s   "r7   r8   Ú4DeferredTests.testDeferredList.<locals>.__annotate__(  s!   € ÷ 	&ñ 	&˜:ð 	&¨zð 	&Àtñ 	&r9   c                ó(   € VP                  V 4       R # rA   )Úextend©rí   r}   s   &&r7   ÚcbÚ*DeferredTests.testDeferredList.<locals>.cb(  s   € Ø�M‰M˜*Ö%r9   c               ó    € V ^8„  d   QhRRRR/# ©r2   Úerrr/   r4   rT   r5   )r6   s   "r7   r8   rï   +  ó   € ÷ 	ñ 	�wð 	 4ñ 	r9   c                ó   € R # rA   r5   ©r÷   s   &r7   ÚcatchÚ-DeferredTests.testDeferredList.<locals>.catch+  ó   € Ùr9   Ú1Ú2Ú3N)r   r   Úboolr   rã   r/   r    r"   rÜ   rX   re   rÝ   rJ   rg   r   rk   r   ÚSUCCESSÚFAILURE)	rl   rî   Údefr1Údefr2Údefr3Údlr}   ró   rû   s	   &        r7   ÚtestDeferredListÚDeferredTests.testDeferredList  s  € Üœ%¤¤e¬C´¨LÕ&9Ð 9Õ:Õ;ˆ
ä'›zˆÜ'›zˆÜ'›zˆÜ˜5¨Ð/Ó0ˆØˆà<B÷ 	&õ	ð 	�‰˜ÔØ�‰�sÔØ×Ñ˜Ôð 	�‰”l 3Ó'Ô(Ø�‰�sÔØ×Ñà�q•	à˜•˜1•œs¤4¬°¸µ¸1µÓ#>×#DÑ#DÓEÐFØ�q•	ð	ô �m‰m˜SÐ!¤E§M¡M°3Ð#7¼%¿-¹-ÈÐ9MÐNö	
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   C  s   € ÷ %ñ % tñ %r9   c                	óä   € . pV3R  R llp\        . 4      pVP                  V4       V P                  V. .4       . VR&   \        . RR7      pVP                  V4       V P                  V. 4       R# )c               ó$   € V ^8„  d   QhRRRRRR/# )r2   rí   z_DeferredListResultListT[None]r}   z$List[_DeferredListResultListT[None]]r4   rT   r5   )r6   s   "r7   r8   Ú9DeferredTests.testEmptyDeferredList.<locals>.__annotate__F  s&   € ÷ 	&ñ 	&Ø6ð	&à8ð	&ð ñ	&r9   c                ó(   € VP                  V 4       R # rA   ©rf   rò   s   &&r7   ró   Ú/DeferredTests.testEmptyDeferredList.<locals>.cbF  s   € ð �M‰M˜*Ö%r9   ºNNNT©ÚfireOnOneCallbackN)r"   rÜ   rg   )rl   r}   ró   Údl1Údl2s   &    r7   ÚtestEmptyDeferredListÚ#DeferredTests.testEmptyDeferredListC  sw   € Ø79ˆð <B÷	&ô 9EÀRÓ8HˆØ×Ñ˜ÔØ×Ñ˜ " Ô&àˆˆq‰	Ü:FØ $ô;
ˆð 	×Ñ˜ÔØ×Ñ˜ Ö$r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   W  s   € ÷ '.ñ '.°ñ '.r9   c                	ó  € \        4       p\        4       p\        4       p\        WV.R R7      p. pVP                  VP                  4       R R lpVP                  V4       VP	                  R4       V P                  V. 4       VP                  \        R4      4       V P                  \        V4      ^4       V^ ,          pV P                  \        VP                  \        P                  4      RVP                  : 24       VP                  pV P                  VP                  P                  \        4       V P                  VP                  P                  P                   R4       V P                  VP"                  ^4       R# )	T©ÚfireOnOneErrbackc               ó    € V ^8„  d   QhRRRR/# rö   r5   )r6   s   "r7   r8   ÚBDeferredTests.testDeferredListFireOnOneError.<locals>.__annotate__a  rø   r9   c                ó   € R # rA   r5   rú   s   &r7   rû   Ú;DeferredTests.testDeferredListFireOnOneError.<locals>.catcha  rý   r9   rþ   ú	from def2zFissubclass(aFailure.type, defer.FirstError) failed: failure's type is N)r   )r    r"   re   rf   rX   rg   rÝ   rJ   rh   ri   Ú
issubclassÚtyper   Ú
FirstErrorrk   Ú
subFailurer<   Úindex)	rl   r  r  r  r  r}   rû   ÚaFailureÚ
firstErrors	   &        r7   ÚtestDeferredListFireOnOneErrorÚ,DeferredTests.testDeferredListFireOnOneErrorW  s1  € Ü'›zˆÜ'›zˆÜ'›zˆÜ˜5¨Ð/À$ÔGˆØ "ˆØ
�‰�f—m‘mÔ$õ	ð 	×Ñ˜Ôð 	�‰�sÔØ×Ñ˜ Ô$ð 	�‰”l ;Ó/Ô0Ø×Ñœ˜V› aÔ(ð ˜!•9ˆð 	�‰Ü�x—}‘}¤e×&6Ñ&6Ô7à&.§m£mð6ô	
ð —^‘^ˆ
ð 	×Ñ˜×.Ñ.×3Ñ3´\ÔBØ×Ñ˜×.Ñ.×4Ñ4×9Ñ9¸>ÔJØ×Ñ˜×)Ñ)¨1Ö-r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   €  s   € ÷ ?ñ ?°4ñ ?r9   c                	ó  € \        4       p\        V.4      p. pVP                  VP                  4       . pVP	                  VP                  4       VP                  \        R 4      4       V P                  R V^ ,          P                  P                  ^ ,          4       V P                  ^\        V4      4       V^ ,          ^ ,          pVf   Q hV P                  R V^,          P                  P                  ^ ,          4       R# )ÚBangN)r    r"   re   rf   r»   rÝ   rJ   rg   rk   r<   rh   ©rl   Úd1r  Ú	errorTrapÚresultListsÚfirstResults   &     r7   Ú!testDeferredListDontConsumeErrorsÚ/DeferredTests.testDeferredListDontConsumeErrors€  sÍ   € Ü%›ZˆÜ˜2˜$Óˆà#%ˆ	Ø
�‰�i×&Ñ&Ô'à<>ˆØ
�‰�{×)Ñ)Ô*à
�
‰
”< Ó'Ô(Ø×Ñ˜ ¨1¥×!3Ñ!3×!8Ñ!8¸Õ!;Ô<Ø×Ñ˜œC Ó,Ô-Ø! !•n QÕ'ˆØÒ&Ð&Ð&Ø×Ñ˜ ¨Q¥×!5Ñ!5×!:Ñ!:¸1Õ!=Ö>r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ‘  s   € ÷ ?ñ ?¨tñ ?r9   c                	óÌ  € \        4       p\        V.R R7      p. pVP                  VP                  4       . pVP	                  VP                  4       VP                  \        R4      4       V P                  . V4       V P                  ^\        V4      4       V^ ,          ^ ,          pVf   Q hV P                  RV^,          P                  P                  ^ ,          4       R# )T©ÚconsumeErrorsr,  N)r    r"   re   rf   r»   rÝ   rJ   rg   rh   rk   r<   r-  s   &     r7   ÚtestDeferredListConsumeErrorsÚ+DeferredTests.testDeferredListConsumeErrors‘  sº   € Ü%›ZˆÜ˜2˜$¨dÔ3ˆà#%ˆ	Ø
�‰�i×&Ñ&Ô'à<>ˆØ
�‰�{×)Ñ)Ô*à
�
‰
”< Ó'Ô(Ø×Ñ˜˜YÔ'Ø×Ñ˜œC Ó,Ô-Ø! !•n QÕ'ˆØÒ&Ð&Ð&Ø×Ñ˜ ¨Q¥×!5Ñ!5×!:Ñ!:¸1Õ!=Ö>r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ¢  s   € ÷ &ñ &Èñ &r9   c                	ó  € \        4       p\        4       pVP                  \        R 4      4       \        W.RR7      p. pVP	                  VP
                  4       V P                  ^\        V4      4       VP	                  R 4       R# )r,  Tr  c                ó   € R # rA   r5   ©Úes   &r7   Ú<lambda>ÚWDeferredTests.testDeferredListFireOnOneErrorWithAlreadyFiredDeferreds.<locals>.<lambda>®  ó   € ¡r9   N)r    rÝ   rJ   r"   re   rf   rg   rh   ©rl   r.  Úd2r  r}   s   &    r7   Ú7testDeferredListFireOnOneErrorWithAlreadyFiredDeferredsÚEDeferredTests.testDeferredListFireOnOneErrorWithAlreadyFiredDeferreds¢  sf   € ä%›ZˆÜ%›ZˆØ
�
‰
”< Ó'Ô(ô ˜2˜(°TÔ:ˆØ "ˆØ
�‰�f—m‘mÔ$Ø×Ñ˜œC ›KÔ(à
�‰‘nÖ%r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   °  s   € ÷ &ñ &¸4ñ &r9   c                	ó0  € \        4       p\        4       pVP                  \        R 4      4       VP                  ^4       \	        W.4      p. pVP                  VP                  4       V P                  ^\        V4      4       VP                  R 4       R# )r,  c                ó   € R # rA   r5   r=  s   &r7   r?  ÚIDeferredTests.testDeferredListWithAlreadyFiredDeferreds.<locals>.<lambda>¿  rA  r9   N)
r    rÝ   rJ   rX   r"   r»   rf   rg   rh   re   rB  s   &    r7   Ú)testDeferredListWithAlreadyFiredDeferredsÚ7DeferredTests.testDeferredListWithAlreadyFiredDeferreds°  so   € ä$›JˆÜ$›JˆØ
�
‰
”< Ó'Ô(Ø
�‰�AŒô ˜2˜(Ó#ˆà/1ˆØ
�‰�v—}‘}Ô%à×Ñ˜œC ›KÔ(à
�‰‘nÖ%r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   Á  s   € ÷ 
@ñ 
@¨ñ 
@r9   c                óæ   € \        4       p\        4       p\        W.4      pVP                  4        V P                  V\        P
                  4       V P                  V\        P
                  4       R# )zS
When cancelling an unfired L{DeferredList}, cancel every
L{Deferred} in the list.
N©r    r"   ÚcancelÚfailureResultOfr   r   ©rl   ÚdeferredOneÚdeferredTwoÚdeferredLists   &   r7   Útest_cancelDeferredListÚ%DeferredTests.test_cancelDeferredListÁ  sW   € ô
 '/£jˆÜ&.£jˆÜ# [Ð$>Ó?ˆØ×ÑÔØ×Ñ˜[¬%×*>Ñ*>Ô?Ø×Ñ˜[¬%×*>Ñ*>Ö?r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   Í  s   € ÷ Bñ B°ñ Br9   c                ó  € \        \        4      p\        4       p\        W.4      pVP                  4        V P	                  V\
        P                  4       V P                  V4      pV P                  V^ ,          ^ ,          4       V P                  V^ ,          ^,          R4       V P                  V^,          ^ ,          4       V P                  V^,          ^,          P                  \
        P                  4      4       R# )zÄ
When cancelling an unfired L{DeferredList} without the
C{fireOnOneCallback} and C{fireOnOneErrback} flags set, the
L{DeferredList} will be callback with a C{list} of
(success, result) C{tuple}s.
rV   N)r    rZ   r"   rO  rP  r   r   ÚsuccessResultOfri   rg   ÚassertFalserj   ©rl   rR  rS  rT  r}   s   &    r7   Útest_cancelDeferredListCallbackÚ-DeferredTests.test_cancelDeferredListCallbackÍ  s½   € ô &.Ô.CÓ%DˆÜ%-£ZˆÜ# [Ð$>Ó?ˆØ×ÑÔØ×Ñ˜[¬%×*>Ñ*>Ô?Ø×%Ñ% lÓ3ˆØ�‰˜˜q�	 !�Ô%Ø×Ñ˜ � 1�Ð'8Ô9Ø×Ñ˜ � 1�Ô&Ø�‰˜˜q�	 !�×*Ñ*¬5×+?Ñ+?Ó@ÖAr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ß  s   € ÷ 
@ñ 
@¸dñ 
@r9   c                óê   € \        4       p\        4       p\        W.RR7      pVP                  4        V P                  V\        P
                  4       V P                  V\        P
                  4       R# )zz
When cancelling an unfired L{DeferredList} with the flag
C{fireOnOneCallback} set, cancel every L{Deferred} in the list.
Tr  NrN  rQ  s   &   r7   Ú,test_cancelDeferredListWithFireOnOneCallbackÚ:DeferredTests.test_cancelDeferredListWithFireOnOneCallbackß  sZ   € ô
 '/£jˆÜ&.£jˆÜ# [Ð$>ÐRVÔWˆØ×ÑÔØ×Ñ˜[¬%×*>Ñ*>Ô?Ø×Ñ˜[¬%×*>Ñ*>Ö?r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ë  s   € ÷ 9ñ 9ÐQUñ 9r9   c                óú   € \        \        4      p\        4       p\        W.RR7      pVP                  4        V P	                  V\
        P                  4       V P                  V4      pV P                  VR4       R# )zì
When cancelling an unfired L{DeferredList} with the flag
C{fireOnOneCallback} set, if one of the L{Deferred} callbacks
in its canceller, the L{DeferredList} will callback with the
result and the index of the L{Deferred} in a C{tuple}.
Tr  N)rV   r¥   )	r    rZ   r"   rO  rP  r   r   rY  rg   r[  s   &    r7   Ú?test_cancelDeferredListWithFireOnOneCallbackAndDeferredCallbackÚMDeferredTests.test_cancelDeferredListWithFireOnOneCallbackAndDeferredCallbackë  si   € ô &.Ô.CÓ%DˆÜ%-£ZˆÜ# [Ð$>ÐRVÔWˆØ×ÑÔØ×Ñ˜[¬%×*>Ñ*>Ô?Ø×%Ñ% lÓ3ˆØ×Ñ˜Ð!7Ö8r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ú  s   € ÷ Kñ K¸Tñ Kr9   c                ó²  € \        4       p\        4       p\        W.RR7      pVP                  4        V P                  V\        P
                  4       V P                  V\        P
                  4       V P                  V\        P                  4      pVP                  pV P                  VP                  P                  \        P
                  4      4       R# )zy
When cancelling an unfired L{DeferredList} with the flag
C{fireOnOneErrback} set, cancel every L{Deferred} in the list.
Tr  N)r    r"   rO  rP  r   r   r#  rk   ri   r$  rj   )rl   rR  rS  rT  ÚdeferredListFailurer'  s   &     r7   Ú+test_cancelDeferredListWithFireOnOneErrbackÚ9DeferredTests.test_cancelDeferredListWithFireOnOneErrbackú  s¡   € ô
 '/£jˆÜ&.£jˆÜ# [Ð$>ÐQUÔVˆØ×ÑÔØ×Ñ˜[¬%×*>Ñ*>Ô?Ø×Ñ˜[¬%×*>Ñ*>Ô?Ø"×2Ñ2°<Ä×AQÑAQÓRÐØ(×.Ñ.ˆ
Ø�‰˜
×-Ñ-×3Ñ3´E×4HÑ4HÓIÖJr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   	  s   € ÷ :ñ :ÐQUñ :r9   c                óœ  € \        \        4      p\        \        4      p\        W.RR7      pVP                  4        V P	                  V4      pV P                  V^ ,          ^ ,          4       V P                  V^ ,          ^,          R4       V P                  V^,          ^ ,          4       V P                  V^,          ^,          R4       R# )z×
When cancelling an unfired L{DeferredList} with the flag
C{fireOnOneErrback} set, if all the L{Deferred} callbacks
in its canceller, the L{DeferredList} will callback with a
C{list} of (success, result) C{tuple}s.
Tr  rV   N)r    rZ   r"   rO  rY  ri   rg   r[  s   &    r7   Ú?test_cancelDeferredListWithFireOnOneErrbackAllDeferredsCallbackÚMDeferredTests.test_cancelDeferredListWithFireOnOneErrbackAllDeferredsCallback	  s    € ô &.Ô.CÓ%DˆÜ%-Ô.CÓ%DˆÜ# [Ð$>ÐQUÔVˆØ×ÑÔØ×%Ñ% lÓ3ˆØ�‰˜˜q�	 !�Ô%Ø×Ñ˜ � 1�Ð'8Ô9Ø�‰˜˜q�	 !�Ô%Ø×Ñ˜ � 1�Ð'8Ö9r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜     s   € ÷ +ñ +¸dñ +r9   c                óB  € \        4       p\        4       pW.p\        V4      p\        4       pVP                  V4       VP                  4        V P	                  V\
        P                  4       V P	                  V\
        P                  4       V P                  V4       R# )zO
Cancelling a L{DeferredList} will cancel the original
L{Deferred}s passed in.
N)r    r"   rf   rO  rP  r   r   ÚassertNoResult)rl   rR  rS  ÚargumentListrT  ÚdeferredThrees   &     r7   Ú,test_cancelDeferredListWithOriginalDeferredsÚ:DeferredTests.test_cancelDeferredListWithOriginalDeferreds  s   € ô
 '/£jˆÜ&.£jˆØ#Ð1ˆÜ# LÓ1ˆÜ(0«
ˆØ×Ñ˜MÔ*Ø×ÑÔØ×Ñ˜[¬%×*>Ñ*>Ô?Ø×Ñ˜[¬%×*>Ñ*>Ô?Ø×Ñ˜MÖ*r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   *  s   € ÷ )ñ )°dñ )r9   c                ó  € R R lp\        V4      p\        4       p\        W#.4      pVP                  4        V P                  V\        P
                  4       V P                  \        4      pV P                  \        V4      ^4       R# )zŽ
Cancelling a L{DeferredList} will cancel every L{Deferred}
in the list even exceptions raised from the C{cancel} method of the
L{Deferred}s.
c               ó    € V ^8„  d   QhRRRR/# )r2   rR   úDeferred[object]r4   rT   r5   )r6   s   "r7   r8   ÚHDeferredTests.test_cancelDeferredListWithException.<locals>.__annotate__1  s   € ÷ 	'ñ 	'Ð/?ð 	'ÀDñ 	'r9   c                ó   € \        R4      h)z`
A L{Deferred} canceller that raises an exception.

@param deferred: The cancelled L{Deferred}.
Útest)rx   rY   s   &r7   ÚcancellerRaisesExceptionÚTDeferredTests.test_cancelDeferredListWithException.<locals>.cancellerRaisesException1  s   € ô ˜vÓ&Ð&r9   N)
r    r"   rO  rP  r   r   rz   rx   rg   rh   )rl   r}  rR  rS  rT  r‚   s   &     r7   Ú$test_cancelDeferredListWithExceptionÚ2DeferredTests.test_cancelDeferredListWithException*  sn   € õ	'ô '/Ð/GÓ&HˆÜ&.£jˆÜ# [Ð$>Ó?ˆØ×ÑÔØ×Ñ˜[¬%×*>Ñ*>Ô?Ø×'Ñ'¬Ó5ˆØ×Ñœ˜V› aÖ(r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   A  s   € ÷ )ñ )¸4ñ )r9   c                ó®   € \        4       p\        4       p\        W.RR7      pVP                  R4       VP                  4        V P	                  V4       R# )z¼
When a L{DeferredList} has fired because one L{Deferred} in
the list fired with a non-failure result, the cancellation will do
nothing instead of cancelling the rest of the L{Deferred}s.
Tr  N)r    r"   rX   rO  rq  rQ  s   &   r7   Ú)test_cancelFiredOnOneCallbackDeferredListÚ7DeferredTests.test_cancelFiredOnOneCallbackDeferredListA  sJ   € ô '/£jˆÜ&.£jˆÜ# [Ð$>ÐRVÔWˆØ×Ñ˜TÔ"Ø×ÑÔØ×Ñ˜KÖ(r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   N  s   € ÷ =ñ =¸$ñ =r9   c                ó,  € \        4       p\        4       p\        W.RR7      pVP                  \        R4      4       VP	                  4        V P                  V4       V P                  V\        4       V P                  V\        P                  4       R# )z¸
When a L{DeferredList} has fired because one L{Deferred} in
the list fired with a failure result, the cancellation will do
nothing instead of cancelling the rest of the L{Deferred}s.
Tr  r|  N)	r    r"   rÝ   rJ   rO  rq  rP  r   r#  rQ  s   &   r7   Ú(test_cancelFiredOnOneErrbackDeferredListÚ6DeferredTests.test_cancelFiredOnOneErrbackDeferredListN  su   € ô '/£jˆÜ&.£jˆÜ# [Ð$>ÐQUÔVˆØ×ÑœL¨Ó0Ô1Ø×ÑÔØ×Ñ˜KÔ(Ø×Ñ˜[¬,Ô7Ø×Ñ˜\¬5×+;Ñ+;Ö<r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ]  s   € ÷ )ñ ) dñ )r9   c                	ó’   € . p\         P                  ! R 4      pVP                  VP                  4       V P	                  VR .4       R# )ÚsuccessN)r   Úsucceedr»   rf   rg   ©rl   ÚlÚds   &  r7   ÚtestImmediateSuccessÚ"DeferredTests.testImmediateSuccess]  s7   € ØˆÜ Ÿ=š=¨Ó3ˆØ	�‰�a—h‘hÔØ×Ñ˜˜Y˜KÖ(r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   c  s   € ÷ 2ñ 2°$ñ 2r9   c                ó´   € \        4       pVP                  R4       \        P                  ! R4      pV P	                  VP
                  VP
                  4       R# )zI
C{defer.succeed(x)} is the same as as C{d = Deferred(); d.callback(x)}.
r‹  N)r    rX   r   rŒ  rg   Ú__dict__)rl   r�  rC  s   &  r7   Ú test_succeedMatchesManualSuccessÚ.DeferredTests.test_succeedMatchesManualSuccessc  s=   € ô $›:ˆØ	�
‰
�9ÔÜ!ŸMšM¨)Ó4ˆØ×Ñ˜Ÿ™ R§[¡[Ö1r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   l  s   € ÷ 2ñ 2 dñ 2r9   c                	óÖ   € . p\         P                  ! \        R 4      4      pVP                  VP                  4       V P                  \        V^ ,          P                  4      R 4       R# ©ÚfailN)r   rš  rJ   re   rf   rg   rã   rk   r�  s   &  r7   ÚtestImmediateFailureÚ"DeferredTests.testImmediateFailurel  sF   € ØˆÜ!ŸJšJ¤|°FÓ';Ó<ˆØ	�‰�Q—X‘XÔØ×Ñœ˜Q˜q�TŸZ™Z›¨&Ö1r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   r  s   € ÷ 2ñ 2 4ñ 2r9   c                	ó:  € . p\         P                  ! \        R 4      4      pVP                  4        VP	                  VP
                  4       V P                  V. 4       VP                  4        V P                  \        V^ ,          P                  4      R 4       R# r™  )
r   rš  rJ   Úpausere   rf   rg   Úunpauserã   rk   r�  s   &  r7   ÚtestPausedFailureÚDeferredTests.testPausedFailurer  sh   € ØˆÜ�JŠJ”| FÓ+Ó,ˆØ	�‰Œ	Ø	�‰�Q—X‘XÔØ×Ñ˜˜BÔØ	�	‰	ŒØ×Ñœ˜Q˜q�TŸZ™Z›¨&Ö1r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   {  s   € ÷ 
=ñ 
= Dñ 
=r9   c                	óÚ  € . p\        4       pVP                  R  4      P                  VP                  4       VP	                  ^4       V P                  V^ ,          P                  \        4       . p\         \        ,          ! 4       pVP                  R 4      P                  VP                  4       VP	                  ^4       V P                  V^ ,          P                  \        4       R# )c                ó   € ^^ ,          # ©rÏ   r5   ©Ú_s   &r7   r?  Ú2DeferredTests.testCallbackErrors.<locals>.<lambda>~  s   €   Q¦r9   c                ó(   € \        \        4       4      # rA   )r/   ÚZeroDivisionErrorr§  s   &r7   r?  r©  ƒ  s   € ¤Ô):Ó)<Ô!=r9   N)	r    r»   re   rf   rX   ÚassertIsInstancerk   r«  Úint)rl   rŽ  r�  rC  s   &   r7   ÚtestCallbackErrorsÚ DeferredTests.testCallbackErrors{  sž   € ØˆÜ#›:ˆØ	�‰Ñ&Ó'×2Ñ2°1·8±8Ô<Ø	�
‰
�1ŒØ×Ñ˜a �dŸj™jÔ*;Ô<ØˆÜ”cŽ]‹_ˆØ
�‰Ñ=Ó>×IÑIÈ!Ï(É(ÔSØ
�‰�AŒØ×Ñ˜a �dŸj™jÔ*;Ö<r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ‡  s   € ÷ ñ ¨4ñ r9   c                	ó�   € \        4       pVP                  4        VP                  V P                  4       VP	                  4        R # rA   )r    rŸ  r»   r¨   r   ©rl   r�  s   & r7   ÚtestUnpauseBeforeCallbackÚ'DeferredTests.testUnpauseBeforeCallback‡  s+   € Ü$›JˆØ	�‰Œ	Ø	�‰�d—n‘nÔ%Ø	�	‰	Žr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   �  s   € ÷ 
ñ 
¨dñ 
r9   c                ón  a€ \        4       p\        4       oSP                  4        VP                  V3R l4       VP                  V P                  4       VP	                  ^4       V P                  V P                  R4       SP	                  ^4       V P                  V P                  R4       SP                  4        V P                  V P                  R4       V P                  f   Q R4       hV P                  V P                  ^ ,          ^ ,          ^RP                  V P                  4      4       R# )zƒ
Callbacks passed to L{Deferred.addCallback} can return Deferreds and
the next callback will not be run until that Deferred fires.
c                ó   <€ S# rA   r5   )ÚrrC  s   &€r7   r?  Ú<DeferredTests.test_callbackReturnsDeferred.<locals>.<lambda>•  s   ø€ ¡r9   z Should not have been called yet.z&Still should not have been called yet.zShould have been called nowNz%make that legible to the type checkerz/Result should have been from second deferred:{})r    rŸ  r»   r¨   rX   r¼   rš   r   ÚassertIsNotNoneÚassertEqualsr6   ©rl   r.  rC  s   & @r7   Útest_callbackReturnsDeferredÚ*DeferredTests.test_callbackReturnsDeferred�  sô   ø€ ô
 %›JˆÜ$›JˆØ
�‰Œ
Ø
�‰”|Ô$Ø
�‰�t—~‘~Ô&Ø
�‰�AŒØ×Ñ˜$×.Ñ.Ð0RÔSØ
�‰�AŒØ×ÑØ× Ñ Ð"Jô	
ð 	�
‰
ŒØ×Ñ˜T×1Ñ1Ð3PÔQØ×#Ñ#Ò/ÐXÐ1XÓXÐ/Ø×ÑØ× Ñ  Õ# AÕ&ØØ=×DÑDØ×$Ñ$óö	
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ¨  s   € ÷ 
ñ 
°$ñ 
r9   c                óº  aa€ \        4       pRo\        4       oR VV3R llpVP                  ^4       V P                  V P	                  VP                  V4      4      ^4       \         \        ,          ! 4       pRoVP                  ^4       V P                  V P                  VP                  V4      P                  V4      \        4      P                  S4       R# )z6
Callbacks passed to addCallback may return Failures.
Fc               ó    € V ^8„  d   QhRRRR/# )r2   r}   r­  r4   zUnion[int, Failure]r5   )r6   s   "r7   r8   ÚDDeferredTests.test_callbackMaybeReturnsFailure.<locals>.__annotate__±  s   € ÷ 	"ñ 	"˜cð 	"Ð&9ñ 	"r9   c                ó<   <€ S'       d   \        S4      # V ^,           # r¦  r.   )r}   ÚrteÚ
shouldFails   &€€r7   Ú	maybeFailÚADeferredTests.test_callbackMaybeReturnsFailure.<locals>.maybeFail±  s   ø€ çÜ˜s“|Ð#à •zÐ!r9   TN)
r    rx   rX   rg   rY  r»   r­  r{   rP  rk   )rl   r�  rÆ  rÄ  rÅ  s   &  @@r7   Ú test_callbackMaybeReturnsFailureÚ.DeferredTests.test_callbackMaybeReturnsFailure¨  s¬   ù€ ô $›:ˆàˆ
Ü‹nˆ÷	"ñ 	"ð 	
�
‰
�1ŒØ×Ñ˜×-Ñ-¨a¯m©m¸IÓ.FÓGÈÔKÜ”SŽM‹OˆØˆ
Ø	�
‰
�1ŒØ�‰Ø× Ñ à—‘˜iÓ(×4Ñ4°YÓ?Üó÷ ‰eØö	
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   Æ  s   € ÷ 3ñ 3¨Tñ 3r9   c                óZ  aa€ \        4       p\        4       o. oR V3R llpR V3R llpVP                  V4      P                  V4       VP                  \	        4       4       V P                  V4       V P                  S. 4       SP                  R4       V P                  SR.4       R# )zW
Errbacks passed to L{Deferred.addErrback} can return Deferreds just as
callbacks can.
c               ó    € V ^8„  d   QhRRRR/# )r2   r}   r/   r4   rS   r5   )r6   s   "r7   r8   Ú?DeferredTests.test_errbackReturnsDeferred.<locals>.__annotate__Ï  s   € ÷ 	ñ 	 ð 	¨]ñ 	r9   c                ó   <€ S# rA   r5   )r}   rC  s   &€r7   ÚasyncErrbackÚ?DeferredTests.test_errbackReturnsDeferred.<locals>.asyncErrbackÏ  s   ø€ ØˆIr9   c               ó    € V ^8„  d   QhRRRR/# )r2   r}   zUnion[str, int]r4   rT   r5   )r6   s   "r7   r8   rÍ  Ò  s   € ÷ 	(ñ 	( ð 	(°Tñ 	(r9   c                ó*   <€ SP                  V 4       R # rA   r  )r}   ÚresultValuess   &€r7   ÚsyncCallbackÚ?DeferredTests.test_errbackReturnsDeferred.<locals>.syncCallbackÒ  s   ø€ Ø×Ñ Ö'r9   r}   N)r    re   r»   rÝ   Ú
ValueErrorrq  rg   rX   )rl   r�  rÏ  rÔ  rC  rÓ  s   &   @@r7   Útest_errbackReturnsDeferredÚ)DeferredTests.test_errbackReturnsDeferredÆ  s�   ù€ ô
 $›:ˆÜ$›JˆØˆ÷	ð 	÷	(ð 	(ð 	
�‰�\Ó"×.Ñ.¨|Ô<Ø	�	‰	”*“,ÔØ×Ñ˜AÔØ×Ñ˜ rÔ*Ø
�‰�HÔØ×Ñ˜¨ zÖ2r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   Ü  s   € ÷ -ñ -°dñ -r9   c                ót  a€ \        4       p\        4       oSP                  V4       SP                  4        \        4       pVP	                  V3R l4       VP                  R4       . pVP	                  VP
                  4       V P                  V. 4       SP                  4        V P                  W1.4       R# )z£
When a paused Deferred with a result is returned from a callback on
another Deferred, the other Deferred is chained to the first and waits
for it to be unpaused.
c                ó   <€ S# rA   r5   )ÚignoredÚpauseds   &€r7   r?  ÚDDeferredTests.test_chainedPausedDeferredWithResult.<locals>.<lambda>ç  s   ø€ ©Fr9   N)r=   r    rX   rŸ  r»   rf   rg   r   )rl   ÚexpectedÚchainedr}   rÝ  s   &   @r7   Ú$test_chainedPausedDeferredWithResultÚ2DeferredTests.test_chainedPausedDeferredWithResultÜ  s�   ø€ ô “8ˆÜ#+£:ˆØ�‰˜Ô!Ø�‰ŒÜ"*£*ˆØ×ÑÔ2Ô3Ø×Ñ˜Ôà!ˆØ×Ñ˜FŸM™MÔ*Ø×Ñ˜ Ô$Ø�‰ÔØ×Ñ˜ Ö,r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ð  s   € ÷ )ñ )¨Dñ )r9   c                ó  a€ \        4       p\        4       oVP                  V3R l4       VP                  R4       VP                  4        SP                  R4       . pSP                  VP                  4       V P                  VR.4       R# )z�
A paused Deferred encountered while pushing a result forward through a
chain does not prevent earlier Deferreds from continuing to execute
their callbacks.
c                ó   <€ S# rA   r5   ©rÜ  Úseconds   &€r7   r?  Ú:DeferredTests.test_pausedDeferredChained.<locals>.<lambda>ø  ó   ø€ ©&r9   N)r    r»   rX   rŸ  rf   rg   )rl   Úfirstr}   rç  s   &  @r7   Útest_pausedDeferredChainedÚ(DeferredTests.test_pausedDeferredChainedð  sl   ø€ ô !)£
ˆÜ!)£ˆØ×ÑÔ0Ô1Ø�‰�tÔØ�‰ŒØ�‰˜ÔØˆØ×Ñ˜6Ÿ=™=Ô)Ø×Ñ˜ $ Ö(r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜      s   € ÷ &ñ & Dñ &r9   c                	óR  € . p\         P                  ! \         P                  ! ^4      \         P                  ! ^4      .4      P                  VP                  4       V P                  V^^..4       . p\         P                  ! ^4      \         P                  ! \        4       4      .p\         P                  ! V4      P                  VP                  4       V P                  \        V4      ^4       V P                  V^ ,          \        4       V^,          P                  R 4       R# )rÏ   c                ó   € ^# r¦  r5   r=  s   &r7   r?  Ú2DeferredTests.test_gatherResults.<locals>.<lambda>  s   € ¡1r9   N)r   ÚgatherResultsrŒ  r»   rf   rg   rš  rÖ  re   rh   r¬  r/   )rl   Úresultsr‚   r  s   &   r7   Útest_gatherResultsÚ DeferredTests.test_gatherResults   sÐ   € à#%ˆÜ×ÒœUŸ]š]¨1Ó-¬u¯}ª}¸QÓ/?Ð@ÓA×MÑMØ�N‰Nô	
ð 	×Ñ˜ A q 6 (Ô+à "ˆÜ�mŠm˜AÓ¤§
¢
¬:«<Ó 8Ð9ˆÜ×Ò˜BÓ×*Ñ*¨6¯=©=Ô9Ø×Ñœ˜V› aÔ(Ø×Ñ˜f Q�i¬Ô1à
ˆ1�×Ñ™Ö%r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜     s   € ÷ >ñ >°Tñ >r9   c                ó>  € \         P                  ! ^4      p\         P                  ! \        R4      4      p\         P                  ! W.RR7      p. pVP                  VP                  4       . pVP                  VP                  4       V P                  \        V4      \        V4      3R4       V P                  V^ ,          P                  \         P                  4       V^ ,          P                  P                  pV P                  VP                  \        4       R# )z²
If a L{Deferred} in the list passed to L{gatherResults} fires with a
failure and C{consumerErrors} is C{True}, the failure is converted to a
L{None} result on that L{Deferred}.
zoh noesTr6  N©r¥   rÏ   )r   rŒ  rš  rx   rñ  re   rf   rg   rh   r¬  rk   r#  r$  )rl   ÚdgoodÚdbadr�  ÚunconsumedErrorsÚgatheredErrorsr'  s   &      r7   Ú#test_gatherResultsWithConsumeErrorsÚ1DeferredTests.test_gatherResultsWithConsumeErrors  sÖ   € ô —’˜aÓ ˆÜ�zŠzœ, yÓ1Ó2ˆÜ×Ò  ¸TÔBˆØ*,ÐØ�‰Ð(×/Ñ/Ô0Ø(*ˆØ	�‰�^×*Ñ*Ô+à×Ñœ#Ð.Ó/´°^Ó1DÐEÀvÔNØ×Ñ˜n¨QÕ/×5Ñ5´u×7GÑ7GÔHØ# AÕ&×,Ñ,×7Ñ7ˆ
Ø×Ñ˜j×.Ñ.´Ö=r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   $  s   € ÷ Kñ K¨$ñ Kr9   c                óÄ  € \        4       p\        4       p\        P                  ! W.4      pVP                  4        V P	                  V\        P
                  4       V P	                  V\        P
                  4       V P	                  V\        P                  4      pVP                  pV P                  VP                  P                  \        P
                  4      4       R# )zf
When cancelling the L{defer.gatherResults} call, all the
L{Deferred}s in the list will be cancelled.
N)r    r   rñ  rO  rP  r   r#  rk   ri   r$  rj   )rl   rR  rS  r}   ÚgatherResultsFailurer'  s   &     r7   Útest_cancelGatherResultsÚ&DeferredTests.test_cancelGatherResults$  s¡   € ô
 '/£jˆÜ&.£jˆÜ×$Ò$ kÐ%?Ó@ˆØ�‰ŒØ×Ñ˜[¬%×*>Ñ*>Ô?Ø×Ñ˜[¬%×*>Ñ*>Ô?Ø#×3Ñ3°F¼E×<LÑ<LÓMÐØ)×/Ñ/ˆ
Ø�‰˜
×-Ñ-×3Ñ3´E×4HÑ4HÓIÖJr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   3  s   € ÷ ?ñ ?À$ñ ?r9   c                ó  € \        \        4      p\        \        4      p\        P                  ! W.4      pVP	                  4        V P                  V4      pV P                  V^ ,          R4       V P                  V^,          R4       R# )zÎ
When cancelling the L{defer.gatherResults} call, if all the
L{Deferred}s callback in their canceller, the L{Deferred}
returned by L{defer.gatherResults} will be callbacked with the C{list}
of the results.
rV   N)r    rZ   r   rñ  rO  rY  rg   )rl   rR  rS  r}   ÚcallbackResults   &    r7   Ú0test_cancelGatherResultsWithAllDeferredsCallbackÚ>DeferredTests.test_cancelGatherResultsWithAllDeferredsCallback3  sr   € ô &.Ô.CÓ%DˆÜ%-Ô.CÓ%DˆÜ×$Ò$ kÐ%?Ó@ˆØ�‰ŒØ×-Ñ-¨fÓ5ˆØ×Ñ˜¨Õ*Ð,=Ô>Ø×Ñ˜¨Õ*Ð,=Ö>r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   B  s   € ÷ 1ñ 1¨ñ 1r9   c                ó0  a€ \        4       o. p. p\        P                  ! V3R l4      pVP                  VP                  VP                  4       V P                  V. 4       V P                  \        V4      ^4       V P                  V^ ,          S4       R# )zw
L{defer.maybeDeferred} should retrieve the result of a synchronous
function and pass it to its resulting L{Deferred}.
c                 ó   <€ S # rA   r5   ©r}   s   €r7   r?  Ú6DeferredTests.test_maybeDeferredSync.<locals>.<lambda>J  s   ø€ ©r9   N)r=   r   ÚmaybeDeferredrÜ   rf   rg   rh   ÚassertIdentical)rl   rò  r‚   r�  r}   s   &   @r7   Útest_maybeDeferredSyncÚ$DeferredTests.test_maybeDeferredSyncB  st   ø€ ô
 “ˆØ "ˆØ "ˆÜ×Ò¤Ó/ˆØ	�‰�w—~‘~ v§}¡}Ô5Ø×Ñ˜ Ô$Ø×Ñœ˜W› qÔ)Ø×Ñ˜W Q�Z¨Ö0r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   P  s   € ÷ (ñ (°ñ (r9   c                ó  € R R lp. p. p\         P                  ! V^
4      p\        V\        \        ,          4       VP                  VP                  VP                  4       V P                  V. 4       V P                  V^.4       R# )zF
L{defer.maybeDeferred} should pass arguments to the called function.
c               ó    € V ^8„  d   QhRRRR/# )r2   Úxr­  r4   r5   )r6   s   "r7   r8   ÚBDeferredTests.test_maybeDeferredSyncWithArgs.<locals>.__annotate__U  s   € ÷ 	ñ 	˜ð 	 ñ 	r9   c                ó   € V ^,           # )é   r5   ©r  s   &r7   ÚplusFiveÚ>DeferredTests.test_maybeDeferredSyncWithArgs.<locals>.plusFiveU  s   € Ø�q•5ˆLr9   N)r   r  r   r    r­  rÜ   rf   rg   )rl   r  rò  r‚   r�  s   &    r7   Útest_maybeDeferredSyncWithArgsÚ,DeferredTests.test_maybeDeferredSyncWithArgsP  sk   € õ
	ð  ˆØ "ˆÜ×Ò ¨"Ó-ˆÜ�A”x¤•}Ô%Ø	�‰�w—~‘~ v§}¡}Ô5Ø×Ñ˜ Ô$Ø×Ñ˜ 2 $Ö'r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   `  s   € ÷ >ñ >°ñ >r9   c                óp  a€ \        R4      oR V3R llp. p. p\        P                  ! V4      P                  VP                  VP                  4       V P                  V. 4       V P                  \        V4      ^4       V P                  \        V^ ,          P                  4      \        S4      4       R# )z‚
L{defer.maybeDeferred} should catch an exception raised by a synchronous
function and errback its resulting L{Deferred} with it.
zthat value is unacceptablec               ó   € V ^8„  d   QhRR/# )r2   r4   r   r5   )r6   s   "r7   r8   ÚCDeferredTests.test_maybeDeferredSyncException.<locals>.__annotate__g  s   € ÷ 	ñ 	 ñ 	r9   c                 ó   <€ S hrA   r5   ©rß  s   €r7   ÚraisesExceptionÚFDeferredTests.test_maybeDeferredSyncException.<locals>.raisesExceptiong  s   ø€ ØˆNr9   N)	rÖ  r   r  rÜ   rf   rg   rh   rã   rk   )rl   r#  rò  r‚   rß  s   &   @r7   Útest_maybeDeferredSyncExceptionÚ-DeferredTests.test_maybeDeferredSyncException`  sŽ   ø€ ô
 Ð:Ó;ˆ÷	ð 	ð  ˆØ "ˆÜ×Ò˜OÓ,×9Ñ9¸'¿.¹.È&Ï-É-ÔXØ×Ñ˜ "Ô%Ø×Ñœ˜V› aÔ(Ø×Ñœ˜V A�YŸ_™_Ó-¬s°8«}Ö=r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   q  s   € ÷ 2ñ 2¨tñ 2r9   c                óf  a€  R^,            . p. p\        P                  ! V3R l4      pVP	                  VP
                  VP
                  4       V P                  V. 4       V P                  \        V4      ^4       V P                  V^ ,          S4       R#   \          d    \        4       o L£i ; i)z_
L{defer.maybeDeferred} should handle a L{Failure} returned by a
function and errback with it.
Ú10c                 ó   <€ S # rA   r5   r"  s   €r7   r?  Ú=DeferredTests.test_maybeDeferredSyncFailure.<locals>.<lambda>}  s   ø€ ©r9   N)	Ú	TypeErrorr/   r   r  rÜ   rf   rg   rh   r  )rl   rò  r‚   r�  rß  s   &   @r7   Útest_maybeDeferredSyncFailureÚ+DeferredTests.test_maybeDeferredSyncFailureq  s’   ø€ ð
	!Ø�1ŽHð  ˆØ "ˆÜ×ÒÔ 0Ó1ˆØ	�‰�w—~‘~ v§}¡}Ô5Ø×Ñ˜ "Ô%Ø×Ñœ˜V› aÔ(Ø×Ñ˜V A�Y¨Ö1øô ô 	!Ü“yŠHð	!ús   ƒ	B ÂB0Â/B0c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ƒ  s   € ÷ 
.ñ 
.¨ñ 
.r9   c                óÒ   a€ \        4       o\        P                  ! V3R l4      pSP                  R4       . pVP	                  VP
                  4       V P                  VR.4       R# )ze
L{defer.maybeDeferred} should let L{Deferred} instance pass by
so that original result is the same.
c                 ó   <€ S # rA   r5   ©r.  s   €r7   r?  Ú7DeferredTests.test_maybeDeferredAsync.<locals>.<lambda>‰  s   ø€ ©r9   ÚSuccessN)r    r   r  rX   r»   rf   rg   )rl   rC  r}   r.  s   &  @r7   Útest_maybeDeferredAsyncÚ%DeferredTests.test_maybeDeferredAsyncƒ  sO   ø€ ô
 %›JˆÜ× Ò ¤Ó,ˆØ
�‰�IÔØˆØ
�‰�v—}‘}Ô%Ø×Ñ˜ ) Ö-r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   �  s   € ÷ 	6ñ 	6¨dñ 	6r9   c                óÀ   a€ \        4       o\        P                  ! V3R l4      pSP                  \	        \        4       4      4       V P                  V\
        4       R# )z‚
L{defer.maybeDeferred} should let L{Deferred} instance pass by
so that L{Failure} returned by the original instance is the
same.
c                 ó   <€ S # rA   r5   r2  s   €r7   r?  Ú<DeferredTests.test_maybeDeferredAsyncError.<locals>.<lambda>–  s   ø€ ¹r9   N)r    r   r  rÝ   r/   rx   ro   )rl   rC  r.  s   & @r7   Útest_maybeDeferredAsyncErrorÚ*DeferredTests.test_maybeDeferredAsyncError�  s?   ø€ ô &›ZˆÜ"×0Ò0´Ó<ˆØ
�
‰
”7œ<›>Ó*Ô+Ø×#Ñ# B¬Ö5r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   š  s   € ÷ Eñ E°Dñ Er9   c                ó¶   € R R lp\         P                  ! V4      p\        V\        \        ,          4       V P                  V P                  V4      ^4       R# )úŸ
When called with a coroutine function L{defer.maybeDeferred} returns a
L{defer.Deferred} which has the same result as the coroutine returned
by the function.
c               ó   € V ^8„  d   QhRR/# ©r2   r4   r­  r5   )r6   s   "r7   r8   ÚFDeferredTests.test_maybeDeferredCoroutineSuccess.<locals>.__annotate__¡  ó   € ÷ 	ñ 	˜ñ 	r9   c               “  ó   "  € ^# 5i©é   r5   r5   r9   r7   r3   Ú;DeferredTests.test_maybeDeferredCoroutineSuccess.<locals>.f¡  ó   é € Ùùó   ‚N)r   r  r   r    r­  rg   rY  )rl   r3   ÚcoroutineDeferreds   &  r7   Ú"test_maybeDeferredCoroutineSuccessÚ0DeferredTests.test_maybeDeferredCoroutineSuccessš  sE   € õ	ô "×/Ò/°Ó2ÐÜÐ%¤x´¥}Ô5Ø×Ñ˜×-Ñ-Ð.?Ó@À!ÖDr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ¨  s   € ÷ Dñ D¸Dñ Dr9   c                óø   a€ R R loR V3R llpR R lp\         P                  ! V4      p\        V\        \        ,          4       VP                  V4      pV P                  V P                  V4      ^4       R# )r?  c               ó   € V ^8„  d   QhRR/# rA  r5   )r6   s   "r7   r8   ÚNDeferredTests.test_maybeDeferredCoroutineSuccessIndirect.<locals>.__annotate__¯  rC  r9   c               “  ó   "  € ^# 5irE  r5   r5   r9   r7   r3   ÚCDeferredTests.test_maybeDeferredCoroutineSuccessIndirect.<locals>.f¯  rH  rI  c               ó   € V ^8„  d   QhRR/# )r2   r4   z"Coroutine[Deferred[int], Any, Any]r5   )r6   s   "r7   r8   rP  ´  s   € ÷ 	ñ 	Ð5ñ 	r9   c                 ó   <€ S ! 4       # rA   r5   ©r3   s   €r7   ÚgÚCDeferredTests.test_maybeDeferredCoroutineSuccessIndirect.<locals>.g´  ó
   ø€ Ù“3ˆJr9   c               ó    € V ^8„  d   QhRRRR/# )r2   r}   r­  r4   r5   )r6   s   "r7   r8   rP  ¹  s   € ÷ 	ñ 	 #ð 	¨#ñ 	r9   c                ó   € V ^,           # r¦  r5   r  s   &r7   ÚtypedCallbackÚODeferredTests.test_maybeDeferredCoroutineSuccessIndirect.<locals>.typedCallback¹  s   € Ø˜A•:Ðr9   N)r   r  r   r    r   r»   rg   rY  )rl   rV  r[  rJ  ÚmodifiedDeferredr3   s   &    @r7   Ú*test_maybeDeferredCoroutineSuccessIndirectÚ8DeferredTests.test_maybeDeferredCoroutineSuccessIndirect¨  sf   ø€ õ	÷
	ð 	õ
	ô "×/Ò/°Ó2ÐÜÐ%¤x´¥}Ô5Ø,×8Ñ8¸ÓGÐØ×Ñ˜×-Ñ-Ð.>Ó?ÀÖCr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   Á  s   € ÷ 
ñ 
°Dñ 
r9   c                óÐ   aa€  ! R R\         4      oR V3R lloR V3R llp\        V P                  \        P                  ! V4      4      P
                  \        S4      4       R# )z±
When called with a coroutine function L{defer.maybeDeferred} returns a
L{defer.Deferred} which has a L{Failure} result wrapping the exception
raised by the coroutine function.
c                  ó   € ] tR tRtRtR# )ÚGDeferredTests.test_maybeDeferredCoroutineFailure.<locals>.SomeExceptioniÈ  r5   NrK   r5   r9   r7   ÚSomeExceptionrc  È  ó   † Ûr9   rd  c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   ÚFDeferredTests.test_maybeDeferredCoroutineFailure.<locals>.__annotate__Ë  s   € ÷ 	"ñ 	"˜ñ 	"r9   c               “  ó   <"  € S ! 4       h5irA   r5   )rd  s   €r7   r3   Ú;DeferredTests.test_maybeDeferredCoroutineFailure.<locals>.fË  s   øé € Ù“/Ð!ùs   ƒc               ó   € V ^8„  d   QhRR/# )r2   r4   zCoroutine[None, None, None]r5   )r6   s   "r7   r8   rg  Ð  s   € ÷ 	ñ 	Ð.ñ 	r9   c                 ó   <€ S ! 4       # rA   r5   rU  s   €r7   rV  Ú;DeferredTests.test_maybeDeferredCoroutineFailure.<locals>.gÐ  rX  r9   N)Ú	Exceptionr   rP  r   r  r"  r   )rl   rV  rd  r3   s   & @@r7   Ú"test_maybeDeferredCoroutineFailureÚ0DeferredTests.test_maybeDeferredCoroutineFailureÁ  sT   ù€ ô	œIô 	÷	"ð 	"÷
	ð 	ô 	Ø× Ñ ¤×!4Ò!4°QÓ!7Ó8×=Ñ=Ü�]Ó#ö	
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   Ø  s   € ÷ *
ñ *
¨dñ *
r9   c                óœ  aaa€ . o. o\        4       oR VVV3R llp\        P                  ! R4      pVP                  V4       SP	                  R4       VP                  SP
                  4       SP                  SP
                  4       VP                  SP
                  4       V P                  . S4       V P                  S. RO4       R# )zè
When a L{Deferred} encounters a result which is another L{Deferred}
which is waiting on a third L{Deferred}, the middle L{Deferred}'s
callbacks are executed after the third L{Deferred} fires and before the
first receives a result.
c               ó    € V ^8„  d   QhRRRR/# ©r2   r}   rã   r4   rS   r5   )r6   s   "r7   r8   Ú@DeferredTests.test_innerCallbacksPreserved.<locals>.__annotate__ã  s   € ÷ 	ñ 	�sð 	˜}ñ 	r9   c                óö   <€ SP                  R V 34       \        P                  ! R4      pR VV3R llpR V3R llpVP                  V4      P                  V4       VP	                  SP                   4       V# )ústart-of-cbÚinnerc               ó    € V ^8„  d   QhRRRR/# rs  r5   )r6   s   "r7   r8   ÚLDeferredTests.test_innerCallbacksPreserved.<locals>.cb.<locals>.__annotate__ç  s   € ÷ ñ  cð ¨mñ r9   c                ó*   <€ SP                  R4       S# ©ÚfirstCallback©r|  rw  r  ©r}   rw  rò  s   &€€r7   r|  ÚMDeferredTests.test_innerCallbacksPreserved.<locals>.cb.<locals>.firstCallbackç  s   ø€ Ø—‘Ð9Ô:Ø�r9   c               ó    € V ^8„  d   QhRRRR/# ©r2   r}   rã   r4   r5   )r6   s   "r7   r8   ry  ë  ó   € ÷ "ñ " sð "¨sñ "r9   c                ó<   <€ SP                  R V 34       V ^,          # ©ÚsecondCallbackr  ©r}   rò  s   &€r7   r…  ÚNDeferredTests.test_innerCallbacksPreserved.<locals>.cb.<locals>.secondCallbackë  ó   ø€ Ø—‘Ð 0°&Ð9Ô:Ø •zÐ!r9   ©rf   r   rŒ  r»   re   ©r}   r�  r|  r…  rn   rw  rò  s   &   €€€r7   ró   Ú6DeferredTests.test_innerCallbacksPreserved.<locals>.cbã  sd   ø€ Ø�N‰N˜M¨6Ð2Ô3Ü—’˜gÓ&ˆA÷ñ ÷"ð "ð �M‰M˜-Ó(×4Ñ4°^ÔDØ�L‰L˜Ÿ™Ô)ØˆHr9   ÚouterÚorangeN©©rv  rŒ  r}  )r…  r�  Úorangeorange)r    r   rŒ  r»   rX   rf   re   rg   ©rl   ró   rŒ  rn   rw  rò  s   &  @@@r7   Útest_innerCallbacksPreservedÚ*DeferredTests.test_innerCallbacksPreservedØ  s¦   ú€ ð 68ˆØ"$ˆÜ'›zˆ÷	ò 	ô  —’˜gÓ&ˆØ×Ñ˜"ÔØ�‰�xÔ Ø×Ñ˜'Ÿ.™.Ô)Ø×Ñ˜Ÿ™Ô)Ø×Ñ˜Ÿ™Ô)Ø×Ñ˜˜XÔ&Ø×ÑØòö	
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜     s   € ÷ %
ñ %
¨tñ %
r9   c                óX  aaa€ . o. o\        4       oR VVV3R llp\        P                  ! R4      P                  V4      P	                  SP
                  4       V P                  RR.S4       SP                  R4       V P                  . S4       V P                  SRRRR.3.4       R# )	zØ
The continue callback of a L{Deferred} waiting for another L{Deferred}
is not necessarily the first one. This is somewhat a whitebox test
checking that we search for that callback among the whole list of
callbacks.
c               ó    € V ^8„  d   QhRRRR/# ©r2   r}   rã   r4   úDeferred[None]r5   )r6   s   "r7   r8   ÚADeferredTests.test_continueCallbackNotFirst.<locals>.__annotate__  ó   € ÷ 	ñ 	�sð 	˜~ñ 	r9   c                óü   <€ SP                  R V 34       \        4       pR VV3R llpR V3R llpVP                  V4      P                  V4      P                  SP                   4      pVP	                  R4       V# )ró   c               ó    € V ^8„  d   QhRRRR/# ©r2   r}   rT   r4   úDeferred[List[str]]r5   )r6   s   "r7   r8   ÚMDeferredTests.test_continueCallbackNotFirst.<locals>.cb.<locals>.__annotate__  ó   € ÷ 0ñ 0 dð 0Ð/Bñ 0r9   c                óX   <€ SP                  R V 34       \        P                  ! S.4      # ©r|  ©rf   r   rñ  ©r}   Úarò  s   &€€r7   r|  ÚNDeferredTests.test_continueCallbackNotFirst.<locals>.cb.<locals>.firstCallback  ó'   ø€ Ø—‘ °Ð8Ô9Ü×*Ò*¨A¨3Ó/Ð/r9   c               ó    € V ^8„  d   QhRRRR/# ©r2   r}   ú	List[str]r4   rT   r5   )r6   s   "r7   r8   rŸ    ó   € ÷ ;ñ ; yð ;°Tñ ;r9   c                ó.   <€ SP                  R V 34       R# ©r…  Nr  r†  s   &€r7   r…  ÚODeferredTests.test_continueCallbackNotFirst.<locals>.cb.<locals>.secondCallback  ó   ø€ Ø—‘Ð 0°&Ð9Ö:r9   N©rf   r    r»   re   rX   ©r}   r�  r|  r…  Úreturnerr¥  rn   rò  s   &    €€€r7   ró   Ú7DeferredTests.test_continueCallbackNotFirst.<locals>.cb  ól   ø€ Ø�N‰N˜D &˜>Ô*Ü (£
ˆA÷0ñ 0÷;ð ;ð —‘˜mÓ,ß‘˜^Ó,ß‘˜HŸO™OÓ,ð ð
 �J‰J�tÔØˆOr9   rŒ  NÚwithersr…  ©ró   rŒ  ©r|  N)r    r   rŒ  r»   re   rf   rg   rX   )rl   ró   r¥  rn   rò  s   & @@@r7   Útest_continueCallbackNotFirstÚ+DeferredTests.test_continueCallbackNotFirst  s    ú€ ð BDˆØ"$ˆÜ#›:ˆ÷	ò 	ô& 	�Š�gÓ×*Ñ*¨2Ó.×9Ñ9¸(¿/¹/ÔJØ×Ñ˜/Ð+BÐCÀWÔMØ	�
‰
�9ÔØ×Ñ˜˜XÔ&Ø×ÑØØÐ5Ð8HÈ9È+Ð7VÐWö	
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   +  s   € ÷ -
ñ -
¨Tñ -
r9   c                ó–  aaa€ . o. o\        4       oR VVV3R llp\        4       pVP                  V4       VP                  V3R l4       VP                  SP                  4       VP	                  R4       V P                  RR	.S4       SP	                  R4       V P                  . S4       V P                  SRR	RR.3R
.4       R# )z£
A callback added to a L{Deferred} after a previous callback attached
another L{Deferred} as a result is run after the callbacks of the other
L{Deferred} are run.
c               ó    € V ^8„  d   QhRRRR/# r—  r5   )r6   s   "r7   r8   Ú?DeferredTests.test_callbackOrderPreserved.<locals>.__annotate__5  rš  r9   c                óü   <€ SP                  R V 34       \        4       pR VV3R llpR V3R llpVP                  V4      P                  V4      P                  SP                   4      pVP	                  R4       V# )ró   c               ó    € V ^8„  d   QhRRRR/# r�  r5   )r6   s   "r7   r8   ÚKDeferredTests.test_callbackOrderPreserved.<locals>.cb.<locals>.__annotate__9  r   r9   c                óX   <€ SP                  R V 34       \        P                  ! S.4      # r¢  r£  r¤  s   &€€r7   r|  ÚLDeferredTests.test_callbackOrderPreserved.<locals>.cb.<locals>.firstCallback9  r§  r9   c               ó    € V ^8„  d   QhRRRR/# r©  r5   )r6   s   "r7   r8   rÀ  =  r«  r9   c                ó.   <€ SP                  R V 34       R# r­  r  r†  s   &€r7   r…  ÚMDeferredTests.test_callbackOrderPreserved.<locals>.cb.<locals>.secondCallback=  r¯  r9   Nr°  r±  s   &    €€€r7   ró   Ú5DeferredTests.test_callbackOrderPreserved.<locals>.cb5  r´  r9   c                ó&   <€ SP                  R4      # )Úfinal©rÈ  Nr  )r  rò  s   &€r7   r?  Ú;DeferredTests.test_callbackOrderPreserved.<locals>.<lambda>J  s   ø€  G§N¡N°?Ô$Cr9   rŒ  Nrµ  r…  r¶  r·  rÉ  )r    r»   re   rf   rX   rg   )rl   ró   rŒ  r¥  rn   rò  s   &  @@@r7   Útest_callbackOrderPreservedÚ)DeferredTests.test_callbackOrderPreserved+  sÁ   ú€ ð BDˆØ"$ˆÜ#›:ˆ÷	ò 	ô&  (›zˆØ×Ñ˜"ÔØ×ÑÔCÔDØ×Ñ˜Ÿ™Ô)Ø�‰�wÔØ×Ñ˜/Ð+BÐCÀWÔMØ	�
‰
�9ÔØ×Ñ˜˜XÔ&Ø×ÑØàØ'Ø! I ;Ð/Øð	ö	
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   Z  s   € ÷ ,ñ ,¨Dñ ,r9   c                óì   aaa€ \        4       o. oR V3R lloR V3R llpR VVV3R llpSP                  V4       SP                  V4       SP                  R4       V P                  S. RO4       R# )	zw
A callback added to a L{Deferred} by a callback on that L{Deferred}
should be added to the end of the callback chain.
c               ó    € V ^8„  d   QhRRRR/# ©r2   r}   rT   r4   r5   )r6   s   "r7   r8   Ú>DeferredTests.test_reentrantRunCallbacks.<locals>.__annotate__b  ó   € ÷ 	ñ 	˜dð 	 tñ 	r9   c                ó*   <€ SP                  ^4       R# )é   Nr  ©r}   Úcalleds   &€r7   Ú	callback3Ú;DeferredTests.test_reentrantRunCallbacks.<locals>.callback3b  ó   ø€ Ø�M‰M˜!Ör9   c               ó    € V ^8„  d   QhRRRR/# rÐ  r5   )r6   s   "r7   r8   rÑ  e  rÒ  r9   c                ó*   <€ SP                  ^4       R# ©r2   Nr  rÕ  s   &€r7   Ú	callback2Ú;DeferredTests.test_reentrantRunCallbacks.<locals>.callback2e  rÙ  r9   c               ó    € V ^8„  d   QhRRRR/# rÐ  r5   )r6   s   "r7   r8   rÑ  h  s   € ÷ 	,ñ 	,˜dð 	, tñ 	,r9   c                óL   <€ SP                  ^4       SP                  S4       R# ©rÏ   N©rf   r»   )r}   r×  rÖ  rR   s   &€€€r7   Ú	callback1Ú;DeferredTests.test_reentrantRunCallbacks.<locals>.callback1h  s   ø€ Ø�M‰M˜!ÔØ× Ñ  Ö+r9   N)rÏ   r2   rÔ  ©r    r»   rX   rg   )rl   rÝ  rã  r×  rÖ  rR   s   &  @@@r7   Útest_reentrantRunCallbacksÚ(DeferredTests.test_reentrantRunCallbacksZ  sk   ú€ ô
 $,£:ˆØˆ÷	ð 	÷	ð 	÷	,ò 	,ð 	×Ñ˜YÔ'Ø×Ñ˜YÔ'Ø×Ñ˜$ÔØ×Ñ˜¢Ö+r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   q  s   € ÷ )ñ )¨Dñ )r9   c                ó¼   a aaa€ \        4       o. oR V3R lloR VVVV 3R llpSP                  V4       SP                  R4       S P                  S^^.4       R# )z€
A callback added to a L{Deferred} by a callback on that L{Deferred}
should not be executed until the running callback returns.
c               ó    € V ^8„  d   QhRRRR/# rÐ  r5   )r6   s   "r7   r8   Ú>DeferredTests.test_nonReentrantCallbacks.<locals>.__annotate__y  rÒ  r9   c                ó*   <€ SP                  ^4       R# rÜ  r  rÕ  s   &€r7   rÝ  Ú;DeferredTests.test_nonReentrantCallbacks.<locals>.callback2y  rÙ  r9   c               ó    € V ^8„  d   QhRRRR/# rÐ  r5   )r6   s   "r7   r8   rë  |  s   € ÷ 	*ñ 	*˜dð 	* tñ 	*r9   c                ór   <€ SP                  ^4       SP                  S4       SP                  S^.4       R# rá  )rf   r»   rg   )r}   rÝ  rÖ  rR   rl   s   &€€€€r7   rã  Ú;DeferredTests.test_nonReentrantCallbacks.<locals>.callback1|  s/   ø€ Ø�M‰M˜!ÔØ× Ñ  Ô+Ø×Ñ˜V a SÖ)r9   Nrå  )rl   rã  rÝ  rÖ  rR   s   f @@@r7   Útest_nonReentrantCallbacksÚ(DeferredTests.test_nonReentrantCallbacksq  sW   û€ ô
 $,£:ˆØˆ÷	ð 	÷	*ó 	*ð
 	×Ñ˜YÔ'Ø×Ñ˜$ÔØ×Ñ˜ ! Q Ö(r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   …  s   € ÷ >ñ >°tñ >r9   c                óô   aaa€ Ro\        4       oR V3R lloR VV3R llpSP                  V4       SP                  R4       V P                  S\        4      pV P                  VP                  S34       R# )zÉ
After an exception is raised by a callback which was added to a
L{Deferred} by a callback on that L{Deferred}, the L{Deferred} should
call the first errback with a L{Failure} wrapping that exception.
zcallback raised exceptionc               ó    € V ^8„  d   QhRRRR/# ©r2   r}   r=   r4   rT   r5   )r6   s   "r7   r8   ÚIDeferredTests.test_reentrantRunCallbacksWithFailure.<locals>.__annotate__Ž  s   € ÷ 	.ñ 	.˜fð 	.¨ñ 	.r9   c                ó   <€ \        S4      hrA   )rm  )r}   ÚexceptionMessages   &€r7   rÝ  ÚFDeferredTests.test_reentrantRunCallbacksWithFailure.<locals>.callback2Ž  s   ø€ ÜÐ,Ó-Ð-r9   c               ó    € V ^8„  d   QhRRRR/# rö  r5   )r6   s   "r7   r8   r÷  ‘  s   € ÷ 	,ñ 	,˜fð 	,¨ñ 	,r9   c                ó*   <€ SP                  S4       R # rA   )r»   )r}   rÝ  rR   s   &€€r7   rã  ÚFDeferredTests.test_reentrantRunCallbacksWithFailure.<locals>.callback1‘  s   ø€ Ø× Ñ  Ö+r9   N)r    r»   rX   ro   rm  rg   r<   )rl   rã  ra   rÝ  rR   rù  s   &  @@@r7   Ú%test_reentrantRunCallbacksWithFailureÚ3DeferredTests.test_reentrantRunCallbacksWithFailure…  sn   ú€ ð 7ÐÜ#+£:ˆ÷	.ð 	.÷	,ñ 	,ð 	×Ñ˜YÔ'Ø×Ñ˜$ÔØ×/Ñ/°¼)ÓDˆ	Ø×Ñ˜Ÿ™Ð*:Ð)<Ö=r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ™  s   € ÷ *ñ *¨tñ *r9   c                óz  a€ \        4       p\        P                  ! V4      o\        4       pVP	                  V3R l4       VP                  R4       . pSP	                  VP                  4       V P                  V^ ,          4       VP	                  VP                  4       V P                  V^,          V4       R# )zå
If a first L{Deferred} with a result is returned from a callback on a
second L{Deferred}, the result of the second L{Deferred} becomes the
result of the first L{Deferred} and the result of the first L{Deferred}
becomes L{None}.
c                ó   <€ S# rA   r5   ©Úignrê  s   &€r7   r?  Ú=DeferredTests.test_synchronousImplicitChain.<locals>.<lambda>£  ó   ø€ ¡ur9   N)	r=   r   rŒ  r    r»   rX   rf   r¼   r{   )rl   r}   rç  rò  rê  s   &   @r7   Útest_synchronousImplicitChainÚ+DeferredTests.test_synchronousImplicitChain™  s‰   ø€ ô “ˆÜ—’˜fÓ%ˆÜ!)£ˆØ×ÑÔ,Ô-Ø�‰˜Ôà*,ˆØ×Ñ˜'Ÿ.™.Ô)Ø×Ñ˜' !�*Ô%Ø×Ñ˜7Ÿ>™>Ô*Ø�‰�g˜a•j &Ö)r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ¬  s   € ÷ 1ñ 1°ñ 1r9   c                ó¸  a€ \        4       o\        4       pVP                  V3R l4       VP                  R4       . pSP                  VP                  4       . pVP                  VP                  4       V P	                  V. 4       V P	                  V. 4       \        4       pSP                  V4       V P	                  VR.4       V P	                  W4.4       R# )a  
If a first L{Deferred} without a result is returned from a callback on
a second L{Deferred}, the result of the second L{Deferred} becomes the
result of the first L{Deferred} as soon as the first L{Deferred} has
one and the result of the first L{Deferred} becomes L{None}.
c                ó   <€ S# rA   r5   r  s   &€r7   r?  Ú>DeferredTests.test_asynchronousImplicitChain.<locals>.<lambda>µ  r  r9   N)r    r»   rX   rf   rg   r=   )rl   rç  r1  ÚsecondResultr}   rê  s   &    @r7   Útest_asynchronousImplicitChainÚ,DeferredTests.test_asynchronousImplicitChain¬  sµ   ø€ ô #+£*ˆÜ#+£:ˆØ×ÑÔ,Ô-Ø�‰˜Ôà$&ˆØ×Ñ˜+×,Ñ,Ô-Ø%'ˆØ×Ñ˜<×.Ñ.Ô/à×Ñ˜ bÔ)Ø×Ñ˜ rÔ*ä“ˆØ�‰�vÔà×Ñ˜ t fÔ-Ø×Ñ˜ xÖ0r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   Æ  s   € ÷ :ñ :°Dñ :r9   c                óD  € \         P                  ! \        R4      4      pV3R R llp\        4       pVP	                  V4       VP                  R4       . pVP	                  VP                  4       V P                  V^ ,          4       V P                  V\        4       R# )zÜ
If a first L{Deferred} with a L{Failure} result is returned from a
callback on a second L{Deferred}, the first L{Deferred}'s result is
converted to L{None} and no unhandled error is logged when it is
garbage collected.
úFirst Deferred's Failurec               ó$   € V ^8„  d   QhRRRRRR/# )r2   r¨  rT   rê  r˜  r4   r5   )r6   s   "r7   r8   ÚFDeferredTests.test_synchronousImplicitErrorChain.<locals>.__annotate__Ï  s!   € ÷ 	ñ 	�$ð 	˜~ð 	¸.ñ 	r9   c                ó   € V# rA   r5   )r¨  rê  s   &&r7   ró   Ú<DeferredTests.test_synchronousImplicitErrorChain.<locals>.cbÏ  s   € ØˆLr9   N)	r   rš  rx   r    r»   rX   rf   r¼   ro   )rl   rê  ró   rç  r1  s   &    r7   Ú"test_synchronousImplicitErrorChainÚ0DeferredTests.test_synchronousImplicitErrorChainÆ  s~   € ô —
’
œ<Ð(BÓCÓDˆà05÷ 	ô "*£ˆØ×Ñ˜2ÔØ�‰˜ÔØ"$ˆØ×Ñ˜+×,Ñ,Ô-Ø×Ñ˜+ a�.Ô)Ø×#Ñ# F¬LÖ9r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   Ú  s   € ÷ /ñ /°Tñ /r9   c                óX  a€ \        4       o\        4       pVP                  V3R l4       VP                  R4       . pVP                  VP                  4       . pSP                  VP                  4       . pVP                  VP                  4       V P                  V. 4       V P                  V. 4       SP                  \        R4      4       V P                  V^ ,          P                  \        4      4       V P                  VR.4       V P                  \        V4      ^4       R# )a   
Let C{a} and C{b} be two L{Deferred}s.

If C{a} has no result and is returned from a callback on C{b} then when
C{a} fails, C{b}'s result becomes the L{Failure} that was C{a}'s result,
the result of C{a} becomes L{None} so that no unhandled error is logged
when it is garbage collected.
c                ó   <€ S# rA   r5   r  s   &€r7   r?  ÚCDeferredTests.test_asynchronousImplicitErrorChain.<locals>.<lambda>å  r  r9   Nr  )r    r»   rX   re   rf   rg   rÝ   rx   ri   rj   rh   )rl   rç  ÚsecondErrorr1  r  rê  s   &    @r7   Ú#test_asynchronousImplicitErrorChainÚ1DeferredTests.test_asynchronousImplicitErrorChainÚ  sí   ø€ ô !)£
ˆÜ!)£ˆØ×ÑÔ,Ô-Ø�‰˜ÔØ%'ˆØ×Ñ˜+×,Ñ,Ô-à"$ˆØ×Ñ˜+×,Ñ,Ô-Ø#%ˆØ×Ñ˜<×.Ñ.Ô/à×Ñ˜ bÔ)Ø×Ñ˜ rÔ*à�‰”lÐ#=Ó>Ô?Ø�‰˜ A�×,Ñ,¬\Ó:Ô;Ø×Ñ˜ t fÔ-Ø×Ñœ˜\Ó*¨AÖ.r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ÷  s   € ÷ 0ñ 0¸ñ 0r9   c                ó–  aa€ \        4       o\        4       oSP                  V3R l4       \        4       pVP                  V3R l4       . pVP                  VP                  4       \        4       pSP	                  R4       VP	                  R4       V P                  V. 4       SP	                  V4       V P                  W#.4       R# )z¾
L{Deferred} chaining is transitive.

In other words, let A, B, and C be Deferreds.  If C is returned from a
callback on B and B is returned from a callback on A then when C fires,
A fires.
c                ó   <€ S# rA   r5   r  s   &€r7   r?  ÚGDeferredTests.test_doubleAsynchronousImplicitChaining.<locals>.<lambda>  r  r9   c                ó   <€ S# rA   r5   )r  rç  s   &€r7   r?  r#    s   ø€ ¡fr9   N)r    r»   rf   r=   rX   rg   )rl   ÚthirdÚthirdResultr}   rê  rç  s   &   @@r7   Ú'test_doubleAsynchronousImplicitChainingÚ5DeferredTests.test_doubleAsynchronousImplicitChaining÷  s    ù€ ô #+£*ˆÜ#+£:ˆØ×ÑÔ,Ô-Ü"*£*ˆØ×ÑÔ,Ô-à$&ˆØ×Ñ˜+×,Ñ,Ô-ä“ˆà�‰˜Ôà�‰�tÔð 	×Ñ˜ bÔ)ð 	�‰�vÔà×Ñ˜ hÖ/r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜     s   € ÷ ;
ñ ;
¸ñ ;
r9   c                ó¾  aaa€ . o. o\        4       oR VVV3R llp\        P                  ! R4      P                  V4      P                  SP                  4      pV P                  SRR.4       SP                  R4       SP                  SP                  4       VP                  SP                  4       V P                  . SR4       V P                  S. R	O4       R# )
z 
L{Deferred}s can have callbacks that themselves return L{Deferred}s.
When these "inner" L{Deferred}s fire (even asynchronously), the
callback chain continues.
c               ó    € V ^8„  d   QhRRRR/# rs  r5   )r6   s   "r7   r8   ÚKDeferredTests.test_nestedAsynchronousChainedDeferreds.<locals>.__annotate__"  s   € ÷ 	ñ 	�sð 	˜}ñ 	r9   c                óö   <€ SP                  R V 34       \        P                  ! R4      pR VV3R llpR V3R llpVP                  V4      P                  V4       VP	                  SP                   4       V# )rv  rw  c               ó    € V ^8„  d   QhRRRR/# rs  r5   )r6   s   "r7   r8   ÚWDeferredTests.test_nestedAsynchronousChainedDeferreds.<locals>.cb.<locals>.__annotate__&  s   € ÷ ñ  cð ¨mñ r9   c                ó*   <€ SP                  R4       S# r{  r  r~  s   &€€r7   r|  ÚXDeferredTests.test_nestedAsynchronousChainedDeferreds.<locals>.cb.<locals>.firstCallback&  s   ø€ Ø—‘Ð9Ô:ð �r9   c               ó    € V ^8„  d   QhRRRR/# r�  r5   )r6   s   "r7   r8   r/  ,  r‚  r9   c                ó<   <€ SP                  R V 34       V ^,          # r„  r  r†  s   &€r7   r…  ÚYDeferredTests.test_nestedAsynchronousChainedDeferreds.<locals>.cb.<locals>.secondCallback,  rˆ  r9   r‰  rŠ  s   &   €€€r7   ró   ÚADeferredTests.test_nestedAsynchronousChainedDeferreds.<locals>.cb"  sd   ø€ Ø�N‰N˜M¨6Ð2Ô3Ü—’˜gÓ&ˆA÷ñ ÷"ð "ð �M‰M˜-Ó(×4Ñ4°^ÔDØ�L‰L˜Ÿ™Ô)ØˆHr9   rŒ  r�  ú&Got errbacks but wasn't expecting any.Nr�  r}  rŽ  ©r    r   rŒ  r»   rf   rg   rX   re   r‘  s   &  @@@r7   Ú'test_nestedAsynchronousChainedDeferredsÚ5DeferredTests.test_nestedAsynchronousChainedDeferreds  sÈ   ú€ ð 68ˆØ"$ˆô  (›zˆ÷	ò 	ô, �MŠM˜'Ó"×.Ñ.¨rÓ2×>Ñ>¸w¿~¹~ÓNð 	ð
 	×ÑØÐ.Ð0JÐKô	
ð 	�‰�xÔ ð 	×Ñ˜Ÿ™Ô)Ø×Ñ˜Ÿ™Ô)Ø×Ñ˜˜XÐ'OÔPà×ÑØòö	
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   S  s   € ÷ F
ñ F
È4ñ F
r9   c                óÔ  aaa€ . o. o\        4       oR VVV3R llp\        P                  ! R4      pVP                  V4       VP                  SP                  4       V P                  SRR	.4       SP                  R4       VP                  SP                  4       SP                  SP                  4       V P                  . SR4       V P                  SRR	RR.3RR..4       R# )
a  
L{Deferred}s can have callbacks that themselves return L{Deferred}s.
These L{Deferred}s can have other callbacks added before they are
returned, which subtly changes the callback chain. When these "inner"
L{Deferred}s fire (even asynchronously), the outer callback chain
continues.
c               ó    € V ^8„  d   QhRRRR/# )r2   r}   rã   r4   zDeferred[Optional[List[str]]]r5   )r6   s   "r7   r8   Ú]DeferredTests.test_nestedAsynchronousChainedDeferredsWithExtraCallbacks.<locals>.__annotate__b  s   € ÷ 	ñ 	�sð 	Ð<ñ 	r9   c                óî   <€ SP                  R V 34       \        P                  ! R4      pR VV3R llpR V3R llpVP                  V4      P                  V4      P	                  SP                   4      # )rv  rw  c               ó    € V ^8„  d   QhRRRR/# )r2   r}   rã   r4   rž  r5   )r6   s   "r7   r8   ÚiDeferredTests.test_nestedAsynchronousChainedDeferredsWithExtraCallbacks.<locals>.cb.<locals>.__annotate__f  s   € ÷ 
4ñ 
4 cð 
4Ð.Añ 
4r9   c                óX   <€ SP                  R V 34       R R lpSP                  V4      # )r|  c               ó    € V ^8„  d   QhRRRR/# )r2   r}   rã   r4   rª  r5   )r6   s   "r7   r8   Ú€DeferredTests.test_nestedAsynchronousChainedDeferredsWithExtraCallbacks.<locals>.cb.<locals>.firstCallback.<locals>.__annotate__m  s   € ÷ $ñ $ cð $¨iñ $r9   c                ó   € V .# rA   r5   r  s   &r7   Ú	transformÚ}DeferredTests.test_nestedAsynchronousChainedDeferredsWithExtraCallbacks.<locals>.cb.<locals>.firstCallback.<locals>.transformm  s	   € Ø"˜8�Or9   râ  )r}   rE  rw  rò  s   & €€r7   r|  ÚjDeferredTests.test_nestedAsynchronousChainedDeferredsWithExtraCallbacks.<locals>.cb.<locals>.firstCallbackf  s,   ø€ Ø—‘ °Ð8Ô9õ$ð ×(Ñ(¨Ó3Ð3r9   c               ó    € V ^8„  d   QhRRRR/# )r2   r}   rª  r4   r5   )r6   s   "r7   r8   r@  r  s   € ÷ "ñ " yð "°Yñ "r9   c                ó<   <€ SP                  R V 34       V ^,          # r„  r  r†  s   &€r7   r…  ÚkDeferredTests.test_nestedAsynchronousChainedDeferredsWithExtraCallbacks.<locals>.cb.<locals>.secondCallbackr  rˆ  r9   r‰  rŠ  s   &   €€€r7   ró   ÚSDeferredTests.test_nestedAsynchronousChainedDeferredsWithExtraCallbacks.<locals>.cbb  sa   ø€ Ø�N‰N˜M¨6Ð2Ô3Ü—’˜gÓ&ˆA÷
4ñ 
4÷"ð "ð
 —‘˜mÓ,ß‘˜^Ó,ß‘˜HŸO™OÓ,ðr9   rŒ  rµ  r6  r…  Nr�  r}  r7  r‘  s   &  @@@r7   Ú9test_nestedAsynchronousChainedDeferredsWithExtraCallbacksÚGDeferredTests.test_nestedAsynchronousChainedDeferredsWithExtraCallbacksS  sã   ú€ ð  ˆØ"$ˆô  (›zˆ÷	ò 	ô: —’˜gÓ&ˆØ×Ñ˜"ÔØ×Ñ˜'Ÿ.™.Ô)ð 	×ÑØÐ.Ð0JÐKô	
ð 	�‰�yÔ!ð 	×Ñ˜Ÿ™Ô)Ø×Ñ˜Ÿ™Ô)Ø×Ñ˜˜XÐ'OÔPà×ÑØà(Ø*Ø! I ;Ð/Ø˜IÐ&ð	ö	
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ›  s   € ÷ 'ñ '¸ñ 'r9   c                óˆ   € \        4       p\        4       pVP                  V4       V P                  VP                  V4       R# )zD
When we chain a L{Deferred}, that chaining is recorded explicitly.
N)r    ÚchainDeferredr{   Ú
_chainedTo©rl   r¥  Úbs   &  r7   Ú&test_chainDeferredRecordsExplicitChainÚ4DeferredTests.test_chainDeferredRecordsExplicitChain›  s0   € ô %›JˆÜ$›JˆØ	�‰˜ÔØ�‰�a—l‘l AÖ&r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ¤  s   € ÷ (ñ (°tñ (r9   c                ó¨   € \        4       p\        4       pVP                  V4       VP                  R4       V P                  VP                  4       R# )a"  
Any recorded chaining is cleared once the chaining is resolved, since
it no longer exists.

In other words, if one L{Deferred} is recorded as depending on the
result of another, and I{that} L{Deferred} has fired, then the
dependency is resolved and we no longer benefit from recording it.
N)r    rP  rX   r¼   rQ  rR  s   &  r7   Ú%test_explicitChainClearedWhenResolvedÚ3DeferredTests.test_explicitChainClearedWhenResolved¤  s<   € ô %›JˆÜ$›JˆØ	�‰˜ÔØ	�
‰
�4ÔØ×Ñ˜!Ÿ,™,Ö'r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ³  s   € ÷ 
'ñ 
'¸ñ 
'r9   c                ó´   a€ \        4       p\        4       oVP                  V3R l4       VP                  R4       V P                  VP                  S4       R# )z­
We can chain L{Deferred}s implicitly by adding callbacks that return
L{Deferred}s. When this chaining happens, we record it explicitly as
soon as we can find out about it.
c                ó   <€ S# rA   r5   )rÜ  rS  s   &€r7   r?  ÚFDeferredTests.test_chainDeferredRecordsImplicitChain.<locals>.<lambda>»  s   ø€ ¡ar9   N)r    r»   rX   r{   rQ  rR  s   & @r7   Ú&test_chainDeferredRecordsImplicitChainÚ4DeferredTests.test_chainDeferredRecordsImplicitChain³  s>   ø€ ô %›JˆÜ$›JˆØ	�‰Ô'Ô(Ø	�
‰
�4ÔØ�‰�a—l‘l AÖ&r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ¿  s   € ÷ 
ñ 
¨4ñ 
r9   c                ó¢  a€ \        4       oR V3R llpSP                  V4       SP                  R4       V P                  V.4      pV P	                  \        V4      ^4       V^ ,          pV P	                  VR,          \        4       RpV P                  \        P                  ! WCR,          4      RP                  WCR,          4      4       R# )	zl
When a Deferred is returned from a callback directly attached to that
same Deferred, a warning is emitted.
c               ó    € V ^8„  d   QhRRRR/# rs  r5   )r6   s   "r7   r8   Ú=DeferredTests.test_circularChainWarning.<locals>.__annotate__Æ  ó   € ÷ 	ñ 	 Sð 	¨]ñ 	r9   c                ó   <€ S# rA   r5   ©r}   r�  s   &€r7   ÚcircularCallbackÚADeferredTests.test_circularChainWarning.<locals>.circularCallbackÆ  ó   ø€ ØˆHr9   ÚfoorÐ   z1Callback returned the Deferred it was attached torÑ   z
Expected match: {!r}
Got: {!r}N)r    r»   rX   rÓ   rg   rh   rÔ   ri   ÚreÚsearchr6   )rl   rg  Úcircular_warningsÚwarningÚpatternr�  s   &    @r7   Útest_circularChainWarningÚ'DeferredTests.test_circularChainWarning¿  s±   ø€ ô
 $›:ˆ÷	ð 	ð 	
�‰Ð&Ô'Ø	�
‰
�5Ôà ×.Ñ.Ð0@Ð/AÓBÐØ×ÑœÐ.Ó/°Ô3Ø# AÕ&ˆØ×Ñ˜ Õ,Ô.@ÔAØEˆØ�‰Ü�IŠI�g yÕ1Ó2Ø/×6Ñ6°wÈ	Õ@RÓSö	
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   Ö  s   € ÷ )ñ )¨Tñ )r9   c                óJ  a€ V P                  \        \        R\        P                  4       \        P                  ! R\
        R7       \        4       oR V3R llpSP                  V4       SP                  R4       V P                  S4      pVP                  \
        4       R# )z˜
If the deprecation warning for circular deferred callbacks is
configured to be an error, the exception will become the failure
result of the Deferred.
Úfiltersr|   )rÐ   c               ó    € V ^8„  d   QhRRRR/# rs  r5   )r6   s   "r7   r8   Ú?DeferredTests.test_circularChainException.<locals>.__annotate__å  rd  r9   c                ó   <€ S# rA   r5   rf  s   &€r7   rg  ÚCDeferredTests.test_circularChainException.<locals>.circularCallbackå  ri  r9   rj  N)r�   ÚsetattrrÖ   rt  ÚfilterwarningsrÔ   r    r»   rX   rP  Útrap)rl   rg  Úfailurer�  s   &  @r7   Útest_circularChainExceptionÚ)DeferredTests.test_circularChainExceptionÖ  s   ø€ ð 	�‰ÜÜØÜ×Ñô		
ô 	×Ò Ô2DÕEÜ#›:ˆ÷	ð 	ð 	
�‰Ð&Ô'Ø	�
‰
�5ÔØ×&Ñ& qÓ)ˆØ�‰Ô'Ö(r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   í  s   € ÷ Bñ B˜4ñ Br9   c                óp   € \        4       p\        V4      pV P                  \        V4      RVR R24       R# )zh
The C{repr()} of a L{Deferred} contains the class name and a
representation of the internal Python ID.
ú<Deferred at 0xr  Ú>N)r    Úidrg   Úrepr)rl   r�  Úaddresss   &  r7   Ú	test_reprÚDeferredTests.test_reprí  s3   € ô
 %›JˆÜ�Q“%ˆØ×Ñœ˜a› O°G¸A°;¸aÐ"@ÖAr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ö  s   € ÷ Yñ Y Tñ Yr9   c                óŽ   € \        4       pVP                  R4       V P                  \        V4      R\	        V4      R R24       R# )zJ
If a L{Deferred} has been fired, then its C{repr()} contains its
result.
r�  r�  r  z current result: 'orange'>N)r    rX   rg   r„  rƒ  r²  s   & r7   Útest_reprWithResultÚ!DeferredTests.test_reprWithResultö  s;   € ô
 $›:ˆØ	�
‰
�8ÔØ×Ñœ˜a› O´B°q³E¸!°9Ð<VÐ"WÖXr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ÿ  s   € ÷ 
ñ 
 tñ 
r9   c           	     ó¼   € \        4       p\        4       pVP                  V4       V P                  \        V4      R\	        V4      R R\	        V4      R R24       R# )z§
If a L{Deferred} C{a} has been fired, but is waiting on another
L{Deferred} C{b} that appears in its callback chain, then C{repr(a)}
says that it is waiting on C{b}.
r�  r  z waiting on Deferred at 0xr‚  N)r    rP  rg   r„  rƒ  rR  s   &  r7   Útest_reprWithChainingÚ#DeferredTests.test_reprWithChainingÿ  sR   € ô %›JˆÜ$›JˆØ	�‰˜ÔØ×ÑÜ�‹GØœb ›e A˜YÐ&@ÄÀAÃÀqÀ	ÈÐKö	
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜     s   € ÷ 9?ñ 9?¨ñ 9?r9   c                óV   a € R V 3R llpS P                  V! ^4      V! ^4      4       R# )z_
The depth of the call stack does not grow as more L{Deferred} instances
are chained together.
c               ó    € V ^8„  d   QhRRRR/# )r2   ÚhowManyr­  r4   r5   )r6   s   "r7   r8   Ú:DeferredTests.test_boundedStackDepth.<locals>.__annotate__  s   € ÷ /	ñ /	 Cð /	¨Cñ /	r9   c                ó`  <a
a€ . oR  V3R llp\        4       p\        V 4       Uu. uF  p\        4       NK  	  ppVR,          p\        4       o
VP                  4       pV3R R llpVP                  V4       VP                  V4       V'       d/   VP                  4       pV3R R llp	VP                  V	4       TpK6  VP                  V
3R l4       VP	                  R4       V F  pVP	                  R4       K  	  SP                  S. 4       S
P	                  R4       S^ ,          # u upi )	c               ó    € V ^8„  d   QhRRRR/# ©r2   rÜ  r=   r4   rT   r5   )r6   s   "r7   r8   ÚRDeferredTests.test_boundedStackDepth.<locals>.chainDeferreds.<locals>.__annotate__  s   € ÷ =ñ =¨&ð =°Tñ =r9   c                ób   <€ SP                  \        \        P                  ! 4       4      4       R # rA   )rf   rh   Ú	tracebackÚextract_stack)rÜ  Ústacks   &€r7   ÚrecordStackDepthÚVDeferredTests.test_boundedStackDepth.<locals>.chainDeferreds.<locals>.recordStackDepth  s   ø€ Ø—‘œS¤×!8Ò!8Ó!:Ó;Ö<r9   r  c               ó$   € V ^8„  d   QhRRRRRR/# ©r2   rÜ  r=   rw  r˜  r4   r5   )r6   s   "r7   r8   r˜  "  s$   € ÷ ñ ØðØ(6ðàñr9   c                ó   € V# rA   r5   ©rÜ  rw  s   &&r7   ÚcbInnerÚMDeferredTests.test_boundedStackDepth.<locals>.chainDeferreds.<locals>.cbInner"  s	   € ð �r9   c               ó$   € V ^8„  d   QhRRRRRR/# r   r5   )r6   s   "r7   r8   r˜  -  s$   € ÷ !ñ !Ø#ð!Ø,:ð!à#ñ!r9   c                ó   € V# rA   r5   r¢  s   &&r7   Ú
cbNewInnerÚPDeferredTests.test_boundedStackDepth.<locals>.chainDeferreds.<locals>.cbNewInner-  s	   € ð !�Lr9   c                ó   <€ S# rA   r5   )r  Úlasts   &€r7   r?  ÚNDeferredTests.test_boundedStackDepth.<locals>.chainDeferreds.<locals>.<lambda>5  s   ø€ ©$r9   N)r    ÚrangeÚpopr»   rX   rg   )r“  r�  ÚtoprÜ  ÚinnerDeferredsÚoriginalInnersrw  r£  ÚnewInnerr§  rª  rœ  rl   s   &         @@€r7   ÚchainDeferredsÚ<DeferredTests.test_boundedStackDepth.<locals>.chainDeferreds  s  ú€ ØˆE÷=ð =ô #+£*ˆCä*/°¬.ó4Ù*8˜w”–
©.ð ð 4ð ,¨AÕ.ˆNÜ#+£:ˆDà"×&Ñ&Ó(ˆEð :?÷ð
 �O‰O˜GÔ$Ø�O‰OÐ,Ô-ç Ø)×-Ñ-Ó/�ð >F÷!ð
 ×!Ñ! *Ô-Ø ’à×ÑÔ.Ô/à�L‰L˜ÔÛ'�Ø—‘˜tÖ$ñ (ð
 ×Ñ˜U BÔ'ð �M‰M˜$ÔØ˜•8ˆOùòQ4s   ¦D+N)rg   )rl   r²  s   f r7   Útest_boundedStackDepthÚ$DeferredTests.test_boundedStackDepth  s*   ø€ ÷/	ð /	ðf 	×Ñ™¨Ó*©N¸1Ó,=Ö>r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   H  s   € ÷ *ñ *ÈDñ *r9   c                ó`  aa€ \        4       p\        4       o\        4       oVP                  V3R l4       SP                  V3R l4       SP                  R4       VP                  R4       SP                  R4       . pSP                  VP                  4       V P	                  VR.4       R# )aÆ  
Given three Deferreds, one chained to the next chained to the next,
callbacks on the middle Deferred which are added after the chain is
created are called once the last Deferred fires.

This is more of a regression-style test.  It doesn't exercise any
particular code path through the current implementation of Deferred, but
it does exercise a broken codepath through one of the variations of the
implementation proposed as a resolution to ticket #411.
c                ó   <€ S# rA   r5   ræ  s   &€r7   r?  ÚZDeferredTests.test_resultOfDeferredResultOfDeferredOfFiredDeferredCalled.<locals>.<lambda>V  ré  r9   c                ó   <€ S# rA   r5   )rÜ  r%  s   &€r7   r?  r¹  W  s   ø€ ©5r9   N)r    r»   rX   rf   rg   )rl   rê  rò  rç  r%  s   &  @@r7   Ú:test_resultOfDeferredResultOfDeferredOfFiredDeferredCalledÚHDeferredTests.test_resultOfDeferredResultOfDeferredOfFiredDeferredCalledH  s…   ù€ ô !)£
ˆÜ!)£ˆÜ (£
ˆØ×ÑÔ0Ô1Ø×ÑÔ0Ô1Ø�‰˜ÔØ�‰�tÔØ�‰�tÔØ ˆØ×Ñ˜7Ÿ>™>Ô*Ø×Ñ˜ 4 &Ö)r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   _  s   € ÷ &ñ &¨tñ &r9   c                ó   € \         P                  ! R4       \        4       p. p\        R4      p Vh  \         d    TP                  4         Mi ; iTP                  TP                  4       T^ ,          pT P                  TP                  T4       TP                  ^ ,          RR w  rVT P                  RT4       T P                  RT4       R# )zŸ
C{Deferred.errback()} creates a failure from the current Python
exception.  When Deferred.debug is not set no globals or locals are
captured in that failure.
Fr,  Néþÿÿÿr5   )r   rž   r    rJ   ÚBaseExceptionrÝ   re   rf   rg   rk   Úframes©rl   r�  rŽ  Úexcrš  ÚlocalzÚglobalzs   &      r7   Útest_errbackWithNoArgsNoDebugÚ+DeferredTests.test_errbackWithNoArgsNoDebug_  s­   € ô 	×Ò˜5Ô!Ü$›JˆØˆÜ˜6Ó"ˆð	ØˆIøÜô 	Ø�I‰IŽKð	úà	�‰�Q—X‘XÔØ��tˆØ×Ñ˜Ÿ™ SÔ)ØŸ+™+ a�.¨¨Ð-‰ˆØ×Ñ˜˜VÔ$Ø×Ñ˜˜WÖ%ó   ¯1 ±AÁAc               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   t  s   € ÷ )ñ )¨ñ )r9   c                ó   € \         P                  ! R4       \        4       p. p\        R4      p Vh  \         d    TP                  4         Mi ; iTP                  TP                  4       T^ ,          pT P                  TP                  T4       TP                  ^ ,          RR w  rVT P                  . T4       T P                  . T4       R# )z™
C{Deferred.errback()} creates a failure from the current Python
exception.  When Deferred.debug is set globals and locals are captured
in that failure.
Tr,  Nr¿  )r   rž   r    rJ   rÀ  rÝ   re   rf   rg   rk   rÁ  ÚassertNotEqualrÂ  s   &      r7   Útest_errbackWithNoArgsÚ$DeferredTests.test_errbackWithNoArgst  s­   € ô 	×Ò˜4Ô Ü$›JˆØˆÜ˜6Ó"ˆð	ØˆIøÜô 	Ø�I‰IŽKð	úà	�‰�Q—X‘XÔØ��tˆØ×Ñ˜Ÿ™ SÔ)ØŸ+™+ a�.¨¨Ð-‰ˆØ×Ñ˜B Ô'Ø×Ñ˜B Ö(rÈ  c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ‰  s   € ÷ &ñ &¸ñ &r9   c                óZ  € \        4       pVP                  R4       \        P                  ! R4       R R lpVP	                  V4       . pVP                  VP                  4       V^ ,          pVP                  ^ ,          RR w  rVV P                  RV4       V P                  RV4       R# )ú„
An error raised by a callback creates a Failure.  The Failure captures
locals and globals if and only if C{Deferred.debug} is set.
NFc               ó    € V ^8„  d   QhRRRR/# r—  r5   )r6   s   "r7   r8   ÚJDeferredTests.test_errorInCallbackDoesNotCaptureVars.<locals>.__annotate__’  ó   € ÷ 	'ñ 	' ð 	'¨4ñ 	'r9   c                ó   € \        R 4      h©r,  ©rJ   ©rÜ  s   &r7   Ú
raiseErrorÚHDeferredTests.test_errorInCallbackDoesNotCaptureVars.<locals>.raiseError’  ó   € Ü˜vÓ&Ð&r9   r¿  r5   )	r    rX   r   rž   r»   re   rf   rÁ  rg   ©rl   r�  rØ  rŽ  rš  rÄ  rÅ  s   &      r7   Ú&test_errorInCallbackDoesNotCaptureVarsÚ4DeferredTests.test_errorInCallbackDoesNotCaptureVars‰  sŒ   € ô
 %›JˆØ	�
‰
�4ÔÜ×Ò˜5Ô!õ	'ð 	
�‰�jÔ!ØˆØ	�‰�Q—X‘XÔØ��tˆØŸ+™+ a�.¨¨Ð-‰ˆØ×Ñ˜˜VÔ$Ø×Ñ˜˜WÖ%r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   �  s   € ÷ )ñ )¸tñ )r9   c                óZ  € \        4       pVP                  R4       \        P                  ! R4       R R lpVP	                  V4       . pVP                  VP                  4       V^ ,          pVP                  ^ ,          RR w  rVV P                  . V4       V P                  . V4       R# )rÐ  NTc               ó    € V ^8„  d   QhRRRR/# r—  r5   )r6   s   "r7   r8   ÚQDeferredTests.test_errorInCallbackCapturesVarsWhenDebugging.<locals>.__annotate__¦  rÓ  r9   c                ó   € \        R 4      hrÕ  rÖ  r×  s   &r7   rØ  ÚODeferredTests.test_errorInCallbackCapturesVarsWhenDebugging.<locals>.raiseError¦  rÚ  r9   r¿  )	r    rX   r   rž   r»   re   rf   rÁ  rË  rÛ  s   &      r7   Ú-test_errorInCallbackCapturesVarsWhenDebuggingÚ;DeferredTests.test_errorInCallbackCapturesVarsWhenDebugging�  sŒ   € ô
 %›JˆØ	�
‰
�4ÔÜ×Ò˜4Ô õ	'ð 	
�‰�jÔ!ØˆØ	�‰�Q—X‘XÔØ��tˆØŸ+™+ a�.¨¨Ð-‰ˆØ×Ñ˜B Ô'Ø×Ñ˜B Ö(r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ±  s   € ÷ 
5ñ 
5 Dñ 
5r9   c                óÀ   € R R lp\         P                  ! V! 4       4      p\        V\         \        ,          4       V P	                  ^V P                  V4      4       R# )z=
It can discover the return type of a first level coroutine.
c               ó   € V ^8„  d   QhRR/# rA  r5   )r6   s   "r7   r8   Ú6DeferredTests.test_fromCoroutine.<locals>.__annotate__¶  s   € ÷ 	ñ 	 #ñ 	r9   c               “  ó   "  € ^# 5ir¦  r5   r5   r9   r7   Ú
returnsIntÚ4DeferredTests.test_fromCoroutine.<locals>.returnsInt¶  rH  rI  N)r    rB   r   r­  rg   rY  )rl   rë  r�  s   &  r7   Útest_fromCoroutineÚ DeferredTests.test_fromCoroutine±  sD   € õ
	ô ×"Ò"¡:£<Ó0ˆÜ�A”x¤•}Ô%Ø×Ñ˜˜D×0Ñ0°Ó3Ö4r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ½  ó   € ÷ Wñ W°Tñ Wr9   c                ó¤   € R ^RV P                   R\        .pV F2  pV P                  \        P                  \        P
                  V4       K4  	  R# )úq
L{Deferred.fromCoroutine} requires a coroutine object or a generator,
and will reject things that are not that.
c                ó   € V # rA   r5   r  s   &r7   r?  ÚCDeferredTests.test_fromCoroutineRequiresCoroutine.<locals>.<lambda>Ä  ó   € ‘ar9   TN©Ú#test_fromCoroutineRequiresCoroutiner   ÚassertRaisesÚNotACoroutineErrorr    rB   ©rl   ÚthingsThatAreNotCoroutinesÚthings   &  r7   r÷  Ú1DeferredTests.test_fromCoroutineRequiresCoroutine½  óO   € ñ ààà×4Ñ4àäð&
Ð"ó 0ˆEØ×Ñœe×6Ñ6¼×8NÑ8NÐPUÖVó 0r9   úGC works differently on PyPy.c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   Õ  s   € ÷ *ñ *¸Dñ *r9   c                ó  € \        4       p\        P                  ! V4      p\        V4      pW1n        \        P                  ! V4      pVP                  R4       ??V P                  V! 4       4       V P                  V! 4       4       R# )zd
A circular reference between a `Deferred` and its canceller
is broken when the deferred is called.
N)ÚDummyCancellerÚweakrefÚrefr    rR   rX   r¼   )rl   Ú	cancellerÚweakCancellerrR   ÚweakDeferreds   &    r7   Ú*test_canceller_circular_reference_callbackÚ8DeferredTests.test_canceller_circular_reference_callbackÔ  sr   € ô #Ó$ˆ	ÜŸš IÓ.ˆô #+¨9Ó"5ˆØ%ÔÜ—{’{ 8Ó,ˆà×Ñ˜$Ôð Øð 	×Ñ™-›/Ô*Ø×Ñ™,›.Ö)r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ò  s   € ÷ *ñ *¸4ñ *r9   c                ó\  € \        4       p\        P                  ! V4      p\        V4      pW1n        \        P                  ! V4      p\        \        R4      4      pVP                  V4       V P                  V4       ??V P                  V! 4       4       V P                  V! 4       4       R# )z`
A circular reference between a `Deferred` and its canceller
is broken when the deferred fails.
úThe test demands failures.N)
r  r  r  r    rR   r/   rm  rÝ   rP  r¼   )rl   r  r  rR   r  r|  s   &     r7   Ú)test_canceller_circular_reference_errbackÚ7DeferredTests.test_canceller_circular_reference_errbackñ  s�   € ô #Ó$ˆ	ÜŸš IÓ.ˆô #+¨9Ó"5ˆØ%ÔÜ—{’{ 8Ó,ˆäœ)Ð$@ÓAÓBˆØ×Ñ˜Ô!ð 	×Ñ˜XÔ&àØð 	×Ñ™-›/Ô*Ø×Ñ™,›.Ö)r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜     s   € ÷ +ñ +¸Tñ +r9   c                óÞ   € \        4       p\        P                  ! V4      p\        V4      pW1n        VP                  R 4       VP                  R4       ??V P                  V! 4       4       R# )z–
A circular reference between a `Deferred` and its canceller is broken
when the deferred is called, even if another deferred gets added to its
chain.
c                ó   € \        4       # rA   )r    r§  s   &r7   r?  ÚKDeferredTests.test_canceller_circular_reference_non_final.<locals>.<lambda>"  s   € ¤x¤zr9   N)r  r  r  r    rR   r»   rX   r¼   )rl   r  r  rR   s   &   r7   Ú+test_canceller_circular_reference_non_finalÚ9DeferredTests.test_canceller_circular_reference_non_final  sa   € ô #Ó$ˆ	ÜŸš IÓ.ˆô #+¨9Ó"5ˆØ%Ôà×ÑÑ1Ô2Ø×Ñ˜$ÔàØð 	×Ñ™-›/Ö*r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r˜   ,  s   € ÷ 9ñ 9¨$ñ 9r9   c                ó”  € V P                  \        P                  R,          \        \        .4        ! R R\        \
        ,          4      pV P                  \        P                  R,          V4       \        P                  P                  R4       \        P                   F"  pV P                  \        V\        4      4       K$  	  R# )zA
C{_DEFERRED_SUBCLASSES} includes all subclasses of L{Deferred}.
:Nr2   Nc                  ó   € ] tR tRtRtR# )Ú2DeferredTests.test_DEFERRED_SUBCLASSES.<locals>.D2i2  r5   NrK   r5   r9   r7   ÚD2r  2  re  r9   r  Néÿÿÿÿ)	rg   r   Ú_DEFERRED_SUBCLASSESr    r"   r­  r­  ri   r!  )rl   r  Úklasss   &  r7   Útest_DEFERRED_SUBCLASSESÚ&DeferredTests.test_DEFERRED_SUBCLASSES,  sŠ   € ð 	×Ñœ×3Ñ3°BÕ7¼(ÄLÐ9QÔRô	”œ#•ô 	ð 	×Ñœ×3Ñ3°BÕ7¸Ô<Ü×"Ñ"×&Ñ& rÔ*ô ×/Ô/ˆEØ�O‰OœJ u¬hÓ7Ö8ó 0r9   )r›   rš   rœ   N)^rL   rM   rN   rO   r¡   r¨   r®   r³   r¾   rÃ   rÇ   rË   r×   rß   rä   rè   r  r  r(  r2  r8  rD  rJ  rU  r\  r`  rd  ri  rm  rt  r  rƒ  r‡  r�  r•  r›  r¡  r®  r³  r½  rÈ  r×  rá  rë  ró  rü  r  r  r  r  r%  r-  r5  r;  rK  r^  rn  r’  r¸  rË  ræ  rñ  rþ  r  r  r  r  r'  r8  rL  rT  rX  r^  rp  r}  r†  rŠ  rŽ  r´  r»  rÆ  rÌ  rÜ  rä  rí  r÷  ÚpyunitÚskipIfr-   r  r  r  r  rP   r5   r9   r7   r–   r–   ¦   s  † õBõõ-õ+õAõIõQõBõ

õ5õAõ"5õ,"
õH%õ('.õR?õ"?õ"&õ&õ"
@õBõ$
@õ9õKõ:õ"+õ )õ.)õ=õ)õ2õ2õ2õ
=õõ
õ6
õ<3õ,-õ()õ &õ >õ(Kõ?õ1õ(õ >õ"2õ$
.õ	6õEõDõ2
õ.*
õX%
õN-
õ^,õ.)õ(>õ(*õ&1õ4:õ(/õ:0õ>;
õzF
õP'õ(õ
'õ
õ.)õ.BõYõ
õ9?õv*õ.&õ*)õ*&õ()õ(
5õWð. ‡]‚]�5Ð9Ó:ô*ó ;ð*ð8 ‡]‚]�5Ð9Ó:ô*ó ;ð*ð> ‡]‚]�5Ð9Ó:ô+ó ;ð+÷49ñ 9r9   r–   c                  ó6   € ] tR tRt$ RtRtR]R&   R R ltRtR# )	r  i>  zv
A callable that does nothing.
It is intended to be used just to get an object reference
to support GC related tests.
NzOptional[Deferred[Any]]rR   c               ó    € V ^8„  d   QhRRRR/# )r2   rR   r`   r4   rT   r5   )r6   s   "r7   r8   ÚDummyCanceller.__annotate__G  s   € ÷ ñ  ð °4ñ r9   c                ó   € R# )zF
This is not expected to be called as part of the current test suite.
Nr5   r½   s   &&r7   Ú__call__ÚDummyCanceller.__call__G  s   ‚ r9   r5   )	rL   rM   rN   rO   rq   rR   Ú__annotations__r%  rP   r5   r9   r7   r  r  >  s   ‡ ñð )-€HÐ%Ó,÷ñ r9   r  c               ó    € V ^8„  d   QhRRRR/# )r2   ÚnumDeferredsr­  r4   z(tuple[list[int], list[Deferred[object]]]r5   )r6   s   "r7   r8   r8   M  s   € ÷ ñ  #ð Ð*Rñ r9   c                ó–   a€ ^ .V ,          o. p\        V 4       F*  pV3R V3R lllpVP                  \        VR7      4       K,  	  SV3# )z´
Create a list of Deferreds and a corresponding list of integers
tracking how many times each Deferred has been cancelled.  Without
additional steps the Deferreds will never fire.
c               ó$   € V ^8„  d   QhRRRRRR/# )r2   r�  ry  Únr­  r4   rT   r5   )r6   s   "r7   r8   Ú%_setupRaceState.<locals>.__annotate__X  s"   € ÷ 	#ñ 	#Ð&ð 	#¨3ð 	#°tñ 	#r9   c                ó2   <€ SV;;,          ^,          uu&   R# rá  r5   )r�  r,  ÚcancelledStates   &&€r7   rO  Ú_setupRaceState.<locals>.cancelX  s   ø€ Ø˜1× Õ"Õr9   ©r  )r¬  rf   r    )r)  Údsr,  rO  r/  s   &   @r7   Ú_setupRaceStater3  M  sR   ø€ ð �S˜<Õ'€Nà!#€BÜ�<Ö ˆà12÷ 	#ò 	#ð 	�	‰	”( VÔ,Ö-ñ !ð ˜2ÐÐr9   c                  ó,  € ] tR tRtRt]! ]! ^ ^R7      ]! ^ ^R7      R7      R R l4       t]! ]! ^ ^R7      ]! ^ ^R7      R7      R R l4       t]! ]! ^ ^R7      ]! ^ ^R7      R7      R	 R
 l4       t	R R lt
]! ]! ^^R7      R7      R R l4       tRtR# )Ú	RaceTestsi`  z
Tests for L{race}.
)Ú	min_valueÚ	max_value)ÚbeforeWinnerÚafterWinnerc               ó$   € V ^8„  d   QhRRRRRR/# ©r2   r8  r­  r9  r4   rT   r5   )r6   s   "r7   r8   ÚRaceTests.__annotate__i  s!   € ÷ 
ñ 
¨ð 
¸3ð 
À4ñ 
r9   c                óJ  € \        V^,           V,           4      w  r4\        V4      p\        4       pWA,          P                  V4       \	        V P                  V4      \        W34      4       ^.V,          ^ .,           ^.V,          ,           p\	        V\        V4      4       R# )aÉ  
When one of the L{Deferred}s passed to L{race} fires successfully,
the L{Deferred} return by L{race} fires with the index of that
L{Deferred} and its result and cancels the rest of the L{Deferred}s.

@param beforeWinner: A randomly selected number of Deferreds to
    appear before the "winning" Deferred in the list passed in.

@param beforeWinner: A randomly selected number of Deferreds to
    appear after the "winning" Deferred in the list passed in.
N)r3  r*   r=   rX   r   rY  r   )rl   r8  r9  r/  r2  Ú
raceResultrß  ÚexpectedCancelledStates   &&&     r7   Útest_successÚRaceTests.test_successe  s•   € ô  -¨\¸AÕ-=ÀÕ-KÓLÑˆä˜"“Xˆ
Ü“8ˆØ
Õ×!Ñ! (Ô+ô 	Ø× Ñ  Ó,Ü�lÐ-Ó.ô	
ð
 #$  |Õ!3°q°cÕ!9¸Q¸CÀ+Õ<MÕ!MÐÜØÜÐ+Ó,ö	
r9   c               ó$   € V ^8„  d   QhRRRRRR/# r;  r5   )r6   s   "r7   r8   r<  Œ  s!   € ÷ 
ñ 
¨ð 
¸3ð 
À4ñ 
r9   c           	     óš  € \        V^,           V,           4      w  r4\        \        R4      4      p\        V4      pV F  pVP	                  V4       K  	  V P                  V\        4      p\        VP                  P                  \        V.\        V4      ,          4      4       \        V\        ^ .\        V4      ,          4      4       R# )a¢  
When all of the L{Deferred}s passed to L{race} fire with failures,
the L{Deferred} return by L{race} fires with L{FailureGroup} wrapping
all of their failures.

@param beforeWinner: A randomly selected number of Deferreds to
    appear before the "winning" Deferred in the list passed in.

@param beforeWinner: A randomly selected number of Deferreds to
    appear after the "winning" Deferred in the list passed in.
r  N)r3  r/   rm  r*   rÝ   rP  r&   r   rk   rn   r   rh   )	rl   r8  r9  r/  r2  r|  r>  r�  ÚactualFailures	   &&&      r7   Útest_failureÚRaceTests.test_failureˆ  s§   € ô  -¨\¸AÕ-=ÀÕ-KÓLÑˆäœ)Ð$@ÓAÓBˆÜ˜"“Xˆ
ÛˆAØ�I‰I�gÖñ ð ×,Ñ,¨Z¼ÓFˆÜØ×Ñ×(Ñ(Ü�g�Y¤ R£Õ(Ó)ô	
ô 	ØÜ�a�Sœ3˜r›7•]Ó#ö	
r9   c               ó$   € V ^8„  d   QhRRRRRR/# r;  r5   )r6   s   "r7   r8   r<  ­  s!   € ÷ 7ñ 7°3ð 7ÀSð 7ÈTñ 7r9   c                óV  € \        V^,           V,           4       Uu. uF  p\        4       NK  	  pp\        V4      pWA,          P                  R4       WA^,           ,          P                  R4       V P	                  V4       \        V P                  4       \        4       4       R# u upi )zŠ
If one of the Deferreds fires after it was cancelled its result
goes nowhere.  In particular, it does not cause any errors to be
logged.
N)r¬  r    r*   rX   rY  r   rz   r   )rl   r8  r9  r,  r2  r>  s   &&&   r7   Útest_resultAfterCancelÚ RaceTests.test_resultAfterCancel©  sŒ   € ô !& l°QÕ&6¸Õ&DÔ Eó$
Ù E˜1ŒHŽJÑ Eð 	ð $
ô ˜"“Xˆ
Ø
Õ×!Ñ! $Ô'Ø
˜!ÕÕ×%Ñ% dÔ+à×Ñ˜ZÔ(Ü�D×*Ñ*Ó,¬e«gÖ6ùò$
s   œB&c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r<  À  s   € ÷ Oñ O tñ Or9   c                óÐ   € \        4       pV\        R R7      .p\        4       p\        V4      pVP                  V4       \	        V P                  V4      \        ^ V34      4       R# )zf
If one of the input Deferreds has a cancel function that fires it
with success, nothing bad happens.
c                ó4   € V P                  \        4       4      # rA   )rX   r=   ©r�  s   &r7   r?  Ú1RaceTests.test_resultFromCancel.<locals>.<lambda>È  s   € ¨¯©´F³HÔ)=r9   r1  N)r    r=   r*   rX   r   rY  r   )rl   Úwinnerr2  rß  r>  s   &    r7   Útest_resultFromCancelÚRaceTests.test_resultFromCancelÀ  sZ   € ô
 $,£:ˆàÜÑ=Ô>ð&
ˆô “8ˆÜ˜"“Xˆ
Ø�‰˜Ô!ä�D×(Ñ(¨Ó4´hÀÀ8¸}Ó6MÖNr9   )r)  c               ó    € V ^8„  d   QhRRRR/# )r2   r)  r­  r4   rT   r5   )r6   s   "r7   r8   r<  Ó  s   € ÷ 7ñ 7¨ð 7°ñ 7r9   c                ó¼   € \        V4      w  r#\        V4      pVP                  4        \        V\	        ^.V,          4      4       V P                  V\        4       R# )z]
If the result of L{race} is cancelled then all of the L{Deferred}s
passed in are cancelled.
N)r3  r*   rO  r   r   rP  r&   )rl   r)  r/  r2  r>  s   &&   r7   Útest_cancelÚRaceTests.test_cancelÐ  sL   € ô -¨\Ó:Ñˆä˜"“Xˆ
Ø×ÑÔä�N¤H¨a¨S°<Õ-?Ó$@ÔAØ×Ñ˜Z¬Ö6r9   r5   N)rL   rM   rN   rO   rq   r   r   r@  rE  rI  rQ  rU  rP   r5   r9   r7   r5  r5  `  s·   † ññ Ù¨°QÔ7Ù q°AÔ6ôô
ó	ð
ñ> Ù¨°QÔ7Ù q°AÔ6ôô
ó	ð
ñ: Ù¨°QÔ7Ù q°AÔ6ôô7ó	ð7õ&Oñ  Ù¨°QÔ7ôô7óô7r9   r5  c                  ó>   € ] tR tRtRtR R ltR R ltR R ltR	tR
# )ÚFirstErrorTestsiá  z
Tests for L{FirstError}.
c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   ÚFirstErrorTests.__annotate__æ  s   € ÷ Fñ F˜4ñ Fr9   c                óÖ   € \        R4      p Vh  \         d    \        4       p Mi ; i\        P                  ! T^4      pT P                  \        T4      R\        T4       R24       R# )zŽ
The repr of a L{FirstError} instance includes the repr of the value of
the sub-failure and the index which corresponds to the L{FirstError}.
ú	some textzFirstError[#3, Ú]N)rÖ  rÀ  r/   r   r#  rg   r„  ©rl   rÃ  r3   r|   s   &   r7   r†  ÚFirstErrorTests.test_repræ  sc   € ô
 ˜Ó%ˆð	ØˆIøÜô 	Ü“	ŠAð	úô × Ò   AÓ&ˆØ×Ñœ˜e›¨¼¸S»	°{À!Ð&DÖEó   � �'¦'c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rZ  ô  s   € ÷ Bñ B˜$ñ Br9   c                óÖ   € \        R4      p Vh  \         d    \        4       p Mi ; i\        P                  ! T^4      pT P                  \        T4      R\        T4       R24       R# )z
The str of a L{FirstError} instance includes the str of the
sub-failure and the index which corresponds to the L{FirstError}.
r\  zFirstError[#5, r]  N)rÖ  rÀ  r/   r   r#  rg   rã   r^  s   &   r7   Útest_strÚFirstErrorTests.test_strô  sc   € ô
 ˜Ó%ˆð	ØˆIøÜô 	Ü“	ŠAð	úô × Ò   AÓ&ˆØ×Ñœ˜U› ´s¸1³v°h¸aÐ%@ÖAr`  c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rZ    s   € ÷ $ñ $ ñ $r9   c                óè  €  ^^ ,           \        P                  ! X^4      p\        P                  ! V^4      p \	        R4      h  \          d    \        4       p LQi ; i  \          d    \        4       p Mi ; i\        P                  ! T^	4      pT P                  Y#8H  4       T P                  Y%8H  4       T P                  Y%8g  4       T P                  Y#8g  4       T P                  T^
8H  4       R# )z¶
L{FirstError} instances compare equal to each other if and only if
their failure and index compare equal.  L{FirstError} instances do not
compare equal to instances of other types.
ÚbarN)rÀ  r/   r   r#  rÖ  ri   rZ  )rl   ÚfirstFailureÚoneÚ
anotherOneÚsecondFailureÚanothers   &     r7   Útest_comparisonÚFirstErrorTests.test_comparison  s×   € ð	%Ø�ŽFô ×Ò˜|¨RÓ0ˆÜ×%Ò% l°BÓ7ˆ
ð	&Ü˜UÓ#Ð#øô ô 	%Ü"›9ŠLð	%ûô ô 	&Ü#›IŠMð	&úô ×"Ò" =°!Ó4ˆà�‰˜Ñ)Ô*Ø×Ñ˜™Ô(Ø�‰˜™Ô'Ø×Ñ˜Ñ*Ô+à×Ñ˜ ™Ö#s"   ‚	A ºA  ÁAÁAÁ A8Á7A8r5   N)	rL   rM   rN   rO   rq   r†  rc  rm  rP   r5   r9   r7   rX  rX  á  s   † ñõFõB÷$ñ $r9   rX  c                  ó  € ] tR tRtR R ltR R ltR R ltR R	 ltR
 R ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR*tR+# ),ÚAlreadyCalledTestsi  c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   ÚAlreadyCalledTests.__annotate__   s   € ÷ !ñ !�tñ !r9   c                	óf   € \         P                  ! 4       V n        \         P                  ! R 4       R# ©TN)r   rŸ   Ú_deferredWasDebuggingrž   r    s   &r7   r¡   ÚAlreadyCalledTests.setUp   s!   € Ü%*×%7Ò%7Ó%9ˆÔ"Ü×Ò˜4Ö r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rr  $  s   € ÷ 7ñ 7˜$ñ 7r9   c                	óF   € \         P                  ! V P                  4       R # rA   )r   rž   ru  r    s   &r7   ÚtearDownÚAlreadyCalledTests.tearDown$  s   € Ü×Ò˜4×5Ñ5Ö6r9   c               ó$   € V ^8„  d   QhRRRRRR/# r«   r5   )r6   s   "r7   r8   rr  '  s!   € ÷ ñ ˜vð °ð ¸Dñ r9   c                	ó   € R # rA   r5   r§   s   &*,r7   r¨   ÚAlreadyCalledTests._callback'  ó   € Ùr9   c               ó$   € V ^8„  d   QhRRRRRR/# r«   r5   )r6   s   "r7   r8   rr  *  s!   € ÷ ñ ˜fð °ð ¸4ñ r9   c                	ó   € R # rA   r5   r§   s   &*,r7   r³   ÚAlreadyCalledTests._errback*  r~  r9   c               ó    € V ^8„  d   QhRRRR/# ©r2   r�  rS   r4   rT   r5   )r6   s   "r7   r8   rr  -  ó   € ÷ ñ ˜ð ¨4ñ r9   c                	ó(   € VP                  R 4       R# )r¸   NrW   r²  s   &&r7   Ú_call_1ÚAlreadyCalledTests._call_1-  ó   € Ø	�
‰
�7Ör9   c               ó    € V ^8„  d   QhRRRR/# rƒ  r5   )r6   s   "r7   r8   rr  0  r„  r9   c                	ó(   € VP                  R 4       R# )ÚtwiceNrW   r²  s   &&r7   Ú_call_2ÚAlreadyCalledTests._call_20  rˆ  r9   c               ó    € V ^8„  d   QhRRRR/# rƒ  r5   )r6   s   "r7   r8   rr  3  ó   € ÷ +ñ +˜ð +¨$ñ +r9   c                	óJ   € VP                  \        \        4       4      4       R # rA   ©rÝ   r/   rx   r²  s   &&r7   Ú_err_1ÚAlreadyCalledTests._err_13  ó   € Ø	�	‰	”'œ,›.Ó)Ö*r9   c               ó    € V ^8„  d   QhRRRR/# rƒ  r5   )r6   s   "r7   r8   rr  6  r�  r9   c                	óJ   € VP                  \        \        4       4      4       R # rA   r‘  r²  s   &&r7   Ú_err_2ÚAlreadyCalledTests._err_26  r”  r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rr  9  ó   € ÷ Eñ E dñ Er9   c                	óÞ   € \        4       pVP                  V P                  V P                  4       V P	                  V4       V P                  \        P                  V P                  V4       R # rA   )	r    rÜ   r¨   r³   r†  rø  r   ÚAlreadyCalledErrorrŒ  r²  s   & r7   ÚtestAlreadyCalled_CCÚ'AlreadyCalledTests.testAlreadyCalled_CC9  sF   € Ü#›:ˆØ	�‰�t—~‘~ t§}¡}Ô5Ø�‰�QŒØ×Ñœ%×2Ñ2°D·L±LÀ!ÖDr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rr  ?  ó   € ÷ Dñ D dñ Dr9   c                	óÞ   € \        4       pVP                  V P                  V P                  4       V P	                  V4       V P                  \        P                  V P                  V4       R # rA   )	r    rÜ   r¨   r³   r†  rø  r   rœ  r—  r²  s   & r7   ÚtestAlreadyCalled_CEÚ'AlreadyCalledTests.testAlreadyCalled_CE?  sF   € Ü#›:ˆØ	�‰�t—~‘~ t§}¡}Ô5Ø�‰�QŒØ×Ñœ%×2Ñ2°D·K±KÀÖCr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rr  E  r   r9   c                	óÞ   € \        4       pVP                  V P                  V P                  4       V P	                  V4       V P                  \        P                  V P                  V4       R # rA   )	r    rÜ   r¨   r³   r’  rø  r   rœ  r—  r²  s   & r7   ÚtestAlreadyCalled_EEÚ'AlreadyCalledTests.testAlreadyCalled_EEE  sF   € Ü#›:ˆØ	�‰�t—~‘~ t§}¡}Ô5Ø�‰�AŒØ×Ñœ%×2Ñ2°D·K±KÀÖCr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rr  K  rš  r9   c                	óÞ   € \        4       pVP                  V P                  V P                  4       V P	                  V4       V P                  \        P                  V P                  V4       R # rA   )	r    rÜ   r¨   r³   r’  rø  r   rœ  rŒ  r²  s   & r7   ÚtestAlreadyCalled_ECÚ'AlreadyCalledTests.testAlreadyCalled_ECK  sF   € Ü#›:ˆØ	�‰�t—~‘~ t§}¡}Ô5Ø�‰�AŒØ×Ñœ%×2Ñ2°D·L±LÀ!ÖDr9   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r2   Úlinetyperã   ÚfuncÚlinesrª  rß  r­  r4   rT   r5   )r6   s   "r7   r8   rr  Q  s0   € ÷ +ñ +˜sð +¨#ð +°ið +È3ð +ÐSWñ +r9   c                	óÔ   € ^ pV FL  pVP                  RV,          4      '       g   K#  VP                  RV,          4      '       g   KC  V^,          pKN  	  V P                  WT8H  4       R# )r¥   z %s:z %sN)r’   Úendswithri   )rl   r­  r®  r¯  rß  ÚcountÚlines   &&&&&  r7   Ú_countÚAlreadyCalledTests._countQ  sQ   € ØˆÛˆDØ�‰˜v¨Õ0×1Ô1°d·m±mÀEÈDÅL×6QÔ6QØ˜•
’ñ ð 	�‰˜Ñ)Ö*r9   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r2   r>  rm  Úcallerrã   Úinvoker1Úinvoker2r4   rT   r5   )r6   s   "r7   r8   rr  X  s0   € ÷ -ñ -˜	ð -¨3ð -¸#ð -Èð -ÐQUñ -r9   c                	ó\  € VP                   ^ ,          P                  R4      pV P                  RW%^4       V P                  RRV^ 4       V P                  RRV^ 4       V P                  RRV^ 4       V P                  RRV^ 4       V P                  RW5^4       V P                  RWE^ 4       R# )	r¥   Ú
ÚCr†  rŒ  r’  r—  ÚIN)r<   Úsplitr´  )rl   r>  r·  r¸  r¹  r¯  s   &&&&& r7   Ú_checkÚAlreadyCalledTests._checkX  s’   € à—‘�q•	—‘ Ó%ˆð 	�‰�C˜¨Ô*Ø�‰�C˜ E¨1Ô-Ø�‰�C˜ E¨1Ô-Ø�‰�C˜ 5¨!Ô,Ø�‰�C˜ 5¨!Ô,à�‰�C˜¨!Ô,Ø�‰�C˜¨!Ö,r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rr  f  ó   € ÷ 	Lñ 	L¨4ñ 	Lr9   c                	ó<  € \        4       pVP                  V P                  V P                  4       V P	                  V4        V P                  V4       V P                  R 4       R#   \        P                   d    pT P                  TRRR4        Rp?R# Rp?ii ; i)ú2second callback failed to raise AlreadyCalledErrorÚtestAlreadyCalledDebug_CCr†  rŒ  N)
r    rÜ   r¨   r³   r†  rŒ  rš  r   rœ  r¿  ©rl   r�  r>  s   &  r7   rÅ  Ú,AlreadyCalledTests.testAlreadyCalledDebug_CCf  sz   € Ü#›:ˆØ	�‰�t—~‘~ t§}¡}Ô5Ø�‰�QŒð	LØ�L‰L˜ŒOð �I‰IÐJÖKøô ×'Ñ'ô 	NØ�K‰K˜Ð6¸	À9×MÒMûð	Núó   ÁA' Á'BÁ<BÂBc               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rr  q  ó   € ÷ 	Kñ 	K¨4ñ 	Kr9   c                	ó<  € \        4       pVP                  V P                  V P                  4       V P	                  V4        V P                  V4       V P                  R 4       R#   \        P                   d    pT P                  TRRR4        Rp?R# Rp?ii ; i)ú1second errback failed to raise AlreadyCalledErrorÚtestAlreadyCalledDebug_CEr†  r—  N)
r    rÜ   r¨   r³   r†  r—  rš  r   rœ  r¿  rÆ  s   &  r7   rÍ  Ú,AlreadyCalledTests.testAlreadyCalledDebug_CEq  sz   € Ü#›:ˆØ	�‰�t—~‘~ t§}¡}Ô5Ø�‰�QŒð	KØ�K‰K˜ŒNð �I‰IÐIÖJøô ×'Ñ'ô 	MØ�K‰K˜Ð6¸	À8×LÒLûð	MúrÈ  c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rr  |  rÂ  r9   c                	ó<  € \        4       pVP                  V P                  V P                  4       V P	                  V4        V P                  V4       V P                  R 4       R#   \        P                   d    pT P                  TRRR4        Rp?R# Rp?ii ; i)rÄ  ÚtestAlreadyCalledDebug_ECr’  rŒ  N)
r    rÜ   r¨   r³   r’  rŒ  rš  r   rœ  r¿  rÆ  s   &  r7   rÑ  Ú,AlreadyCalledTests.testAlreadyCalledDebug_EC|  sz   € Ü#›:ˆØ	�‰�t—~‘~ t§}¡}Ô5Ø�‰�AŒð	LØ�L‰L˜ŒOð �I‰IÐJÖKøô ×'Ñ'ô 	MØ�K‰K˜Ð6¸À)×LÒLûð	MúrÈ  c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rr  ‡  rÊ  r9   c                	ó<  € \        4       pVP                  V P                  V P                  4       V P	                  V4        V P                  V4       V P                  R 4       R#   \        P                   d    pT P                  TRRR4        Rp?R# Rp?ii ; i)rÌ  ÚtestAlreadyCalledDebug_EEr’  r—  N)
r    rÜ   r¨   r³   r’  r—  rš  r   rœ  r¿  rÆ  s   &  r7   rÕ  Ú,AlreadyCalledTests.testAlreadyCalledDebug_EE‡  sz   € Ü#›:ˆØ	�‰�t—~‘~ t§}¡}Ô5Ø�‰�AŒð	KØ�K‰K˜ŒNð �I‰IÐIÖJøô ×'Ñ'ô 	LØ�K‰K˜Ð6¸À(×KÒKûð	LúrÈ  c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rr  ’  s   € ÷ 
Lñ 
L ñ 
Lr9   c                	óv  € \         P                  ! R 4       \        4       pVP                  V P                  V P
                  4       V P                  V4        V P                  V4       V P                  R4       R#   \         P                   d'   pT P                  TP                  4        Rp?R# Rp?ii ; i)FrÄ  N)r   rž   r    rÜ   r¨   r³   r†  rŒ  rš  rœ  rZ  r<   rÆ  s   &  r7   ÚtestNoDebuggingÚ"AlreadyCalledTests.testNoDebugging’  s…   € Ü×Ò˜5Ô!Ü#›:ˆØ	�‰�t—~‘~ t§}¡}Ô5Ø�‰�QŒð	LØ�L‰L˜ŒOð �I‰IÐJÖKøô ×'Ñ'ô 	%Ø×Ñ˜QŸV™V×$Ò$ûð	%ús   ÁA= Á=B8ÂB3Â3B8c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rr  ž  s   € ÷ $ñ $ Tñ $r9   c                	ój  € \         P                  ! R 4       \        4       pVP                  R 4       \         P                  ! R4       VP	                  R4       \         P                  ! R 4       \        4       pVP	                  R4       \         P                  ! R4       VP                  R 4       R# )Fc                ó   € R # rA   r5   ©r  s   &r7   r?  Ú8AlreadyCalledTests.testSwitchDebugging.<locals>.<lambda>£  ó   € ™dr9   TNc                ó   € R # rA   r5   rÞ  s   &r7   r?  rß  «  rà  r9   )r   rž   r    ÚaddBothrX   r²  s   & r7   ÚtestSwitchDebuggingÚ&AlreadyCalledTests.testSwitchDebuggingž  s|   € ô 	×Ò˜5Ô!Ü$›JˆØ	�	‰	Ñ"Ô#Ü×Ò˜4Ô Ø	�
‰
�4Ôä×Ò˜5Ô!Ü‹JˆØ	�
‰
�4ÔÜ×Ò˜4Ô Ø	�	‰	Ñ"Ö#r9   )ru  N)rL   rM   rN   rO   r¡   ry  r¨   r³   r†  rŒ  r’  r—  r�  r¢  r¦  rª  r´  r¿  rÅ  rÍ  rÑ  rÕ  rÙ  rã  rP   r5   r9   r7   rp  rp    st   † õ!õ7õõõõõ+õ+õEõDõDõEõ+õ-õ	Lõ	Kõ	Lõ	Kõ
L÷$ñ $r9   rp  c                  óú   € ] tR tRtR R ltR R ltR R ltR R	 ltR
 R ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR(tR)# )*ÚDeferredCancellerTestsi®  c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   Ú#DeferredCancellerTests.__annotate__¯  s   € ÷ $ñ $�tñ $r9   c                	ó>   € R V n         R V n        R V n        ^ V n        R # rA   )rš   rœ   r›   ÚcancellerCallCountr    s   &r7   r¡   ÚDeferredCancellerTests.setUp¯  s"   € Ø.2ˆÔØ15ˆÔØ/3ˆÔØ"#ˆÖr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rè  µ  s   € ÷ 7ñ 7˜$ñ 7r9   c                	ó>   € V P                  V P                  R4       R# )r¥   Nr÷  )rÕ   rê  r    s   &r7   ry  ÚDeferredCancellerTests.tearDownµ  s   € à�‰�d×-Ñ-¨vÖ6r9   c               ó    € V ^8„  d   QhRRRR/# )r2   Údatarã   r4   r5   )r6   s   "r7   r8   rè  ¹  s   € ÷ ñ ˜cð  cñ r9   c                	ó   € Wn         V# rA   r¦   ©rl   rð  s   &&r7   r¨   Ú DeferredCancellerTests._callback¹  s   € Ø#ÔØˆr9   c               ó    € V ^8„  d   QhRRRR/# )r2   rð  rã   r4   rT   r5   )r6   s   "r7   r8   rè  ½  s   € ÷ %ñ %˜sð % tñ %r9   c                	ó   € Wn         R # rA   r­   rò  s   &&r7   r®   Ú!DeferredCancellerTests._callback2½  s   € Ø $Ör9   c               ó    € V ^8„  d   QhRRRR/# )r2   r|   r/   r4   rT   r5   )r6   s   "r7   r8   rè  À  s   € ÷ $ñ $˜gð $¨$ñ $r9   c                	ó   € Wn         R # rA   r²   )rl   r|   s   &&r7   r³   ÚDeferredCancellerTests._errbackÀ  s   € Ø#Ör9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rè  Ã  s   € ÷ 
0ñ 
0 $ñ 
0r9   c                óD  € \        4       pVP                  V P                  V P                  4       VP	                  4        V P
                  f   Q hV P                  V P
                  P                  \        P                  4       V P                  V P                  4       R# )za
A L{Deferred} without a canceller must errback with a
L{defer.CancelledError} and not callback.
N)r    rÜ   r¨   r³   rO  rœ   rg   r"  r   r   r¼   rš   r²  s   & r7   Útest_noCancellerÚ'DeferredCancellerTests.test_noCancellerÃ  sr   € ô
 %›JˆØ	�‰�t—~‘~ t§}¡}Ô5Ø	�‰Œ
Ø×"Ñ"Ò.Ð.Ð.Ø×Ñ˜×,Ñ,×1Ñ1´5×3GÑ3GÔHØ×Ñ˜$×.Ñ.Ö/r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rè  Ï  s   € ÷ Lñ L°4ñ Lr9   c                ód  € \        4       pVP                  V P                  V P                  4       VP	                  4        VP                  R4       V P                  \        P                  VP
                  R4       V P                  \        P                  VP                  \        4       4       R# )z¬
A L{Deferred} without a canceller, when cancelled must allow
a single extra call to callback, and raise
L{defer.AlreadyCalledError} if callbacked or errbacked thereafter.
N)r    rÜ   r¨   r³   rO  rX   rø  r   rœ  rÝ   rm  r²  s   & r7   Ú!test_raisesAfterCancelAndCallbackÚ8DeferredCancellerTests.test_raisesAfterCancelAndCallbackÏ  st   € ô %›JˆØ	�‰�t—~‘~ t§}¡}Ô5Ø	�‰Œ
ð 	
�
‰
�4Ôð 	×Ñœ%×2Ñ2°A·J±JÀÔEØ×Ñœ%×2Ñ2°A·I±I¼y»{ÖKr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rè  à  s   € ÷ Lñ L°$ñ Lr9   c                ót  € \        4       pVP                  V P                  V P                  4       VP	                  4        VP                  \        4       4       V P                  \        P                  VP                  R4       V P                  \        P                  VP
                  \        4       4       R# )z«
A L{Deferred} without a canceller, when cancelled must allow
a single extra call to errback, and raise
L{defer.AlreadyCalledError} if callbacked or errbacked thereafter.
N)r    rÜ   r¨   r³   rO  rÝ   rm  rø  r   rœ  rX   r²  s   & r7   Ú test_raisesAfterCancelAndErrbackÚ7DeferredCancellerTests.test_raisesAfterCancelAndErrbackà  sv   € ô %›JˆØ	�‰�t—~‘~ t§}¡}Ô5Ø	�‰Œ
ð 	
�	‰	”)“+Ôð 	×Ñœ%×2Ñ2°A·J±JÀÔEØ×Ñœ%×2Ñ2°A·I±I¼y»{ÖKr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rè  ñ  s   € ÷ ;ñ ;Àtñ ;r9   c                ó  € \        4       pVP                  V P                  V P                  4       VP	                  4        V P
                  pVP                  R4       VP	                  4        V P                  W P
                  4       R# )zm
A L{Deferred} without a canceller, when cancelled and then
callbacked, ignores multiple cancels thereafter.
N)r    rÜ   r¨   r³   rO  rœ   rX   r{   ©rl   r�  ÚcurrentFailures   &  r7   Ú5test_noCancellerMultipleCancelsAfterCancelAndCallbackÚLDeferredCancellerTests.test_noCancellerMultipleCancelsAfterCancelAndCallbackñ  s\   € ô
 %›JˆØ	�‰�t—~‘~ t§}¡}Ô5Ø	�‰Œ
Ø×,Ñ,ˆà	�
‰
�4Ôà	�‰Œ
Ø�‰�n×&9Ñ&9Ö:r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rè   	  s   € ÷ ;ñ ;Àdñ ;r9   c                ó  € \        4       pVP                  V P                  V P                  4       VP	                  4        V P
                  f   Q hV P                  V P
                  P                  \        P                  4       V P
                  pVP                  \        4       4       V P                  V P
                  P                  \        P                  4       VP	                  4        V P                  W P
                  4       R# )zl
A L{Deferred} without a canceller, when cancelled and then
errbacked, ignores multiple cancels thereafter.
N)r    rÜ   r¨   r³   rO  rœ   rg   r"  r   r   rÝ   rJ   r{   r  s   &  r7   Ú4test_noCancellerMultipleCancelsAfterCancelAndErrbackÚKDeferredCancellerTests.test_noCancellerMultipleCancelsAfterCancelAndErrback 	  s´   € ô
 %›JˆØ	�‰�t—~‘~ t§}¡}Ô5Ø	�‰Œ
Ø×"Ñ"Ò.Ð.Ð.Ø×Ñ˜×,Ñ,×1Ñ1´5×3GÑ3GÔHØ×,Ñ,ˆà	�	‰	”,“.Ô!à×Ñ˜×,Ñ,×1Ñ1´5×3GÑ3GÔHØ	�‰Œ
Ø�‰�n×&9Ñ&9Ö:r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rè  	  s   € ÷ ;ñ ;°ñ ;r9   c                ó|  € \        4       pVP                  V P                  V P                  4       VP	                  4        V P
                  f   Q hV P                  V P
                  P                  \        P                  4       V P
                  pVP	                  4        V P                  W P
                  4       R# )z—
Calling cancel multiple times on a deferred with no canceller
results in a L{defer.CancelledError}. Subsequent calls to cancel
do not cause an error.
N)r    rÜ   r¨   r³   rO  rœ   rg   r"  r   r   r{   r  s   &  r7   Útest_noCancellerMultipleCancelÚ5DeferredCancellerTests.test_noCancellerMultipleCancel	  s„   € ô %›JˆØ	�‰�t—~‘~ t§}¡}Ô5Ø	�‰Œ
Ø×"Ñ"Ò.Ð.Ð.Ø×Ñ˜×,Ñ,×1Ñ1´5×3GÑ3GÔHØ×,Ñ,ˆØ	�‰Œ
Ø�‰�n×&9Ñ&9Ö:r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rè  !	  s   € ÷ 5ñ 5¨dñ 5r9   c                óÎ  a € R V 3R llp\        VR7      pVP                  S P                  S P                  4       VP	                  4        S P
                  f   Q hS P                  S P
                  P                  \        P                  4       S P
                  pVP	                  4        S P                  VS P
                  4       S P                  S P                  ^4       R# )zü
Verify that calling cancel multiple times on a deferred with a
canceller that does not errback results in a
L{defer.CancelledError} and that subsequent calls to cancel do not
cause an error and that after all that, the canceller was only
called once.
c               ó    € V ^8„  d   QhRRRR/# ©r2   r�  ry  r4   rT   r5   )r6   s   "r7   r8   ÚIDeferredCancellerTests.test_cancellerMultipleCancel.<locals>.__annotate__*	  ó   € ÷ 	)ñ 	)Ð&ð 	)¨4ñ 	)r9   c                ó:   <€ S;P                   ^,          un         R# rá  ©rê  ©r�  rl   s   &€r7   rO  ÚCDeferredCancellerTests.test_cancellerMultipleCancel.<locals>.cancel*	  ó   ø€ Ø×#Ò# qÕ(×#r9   r1  N)r    rÜ   r¨   r³   rO  rœ   rg   r"  r   r   r{   rê  )rl   rO  r�  r	  s   f   r7   Útest_cancellerMultipleCancelÚ3DeferredCancellerTests.test_cancellerMultipleCancel!	  sª   ø€ ÷	)ð 	)ô %¨vÔ6ˆØ	�‰�t—~‘~ t§}¡}Ô5Ø	�‰Œ
Ø×"Ñ"Ò.Ð.Ð.Ø×Ñ˜×,Ñ,×1Ñ1´5×3GÑ3GÔHØ×,Ñ,ˆØ	�‰Œ
Ø�‰�n d×&9Ñ&9Ô:Ø×Ñ˜×0Ñ0°!Ö4r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rè  7	  s   € ÷ Lñ L dñ Lr9   c                ó  a € R V 3R llp\        VR7      pVP                  S P                  S P                  4       VP	                  4        S P                  S P                  ^4       S P                  f   Q hS P                  S P                  P                  \        P                  4       S P                  \        P                  VP                  R4       S P                  \        P                  VP                  \        4       4       R# )z‘
Verify that a L{Deferred} calls its specified canceller when
it is cancelled, and that further call/errbacks raise
L{defer.AlreadyCalledError}.
c               ó    € V ^8„  d   QhRRRR/# r  r5   )r6   s   "r7   r8   ÚADeferredCancellerTests.test_simpleCanceller.<locals>.__annotate__>	  r  r9   c                ó:   <€ S;P                   ^,          un         R# rá  r  r  s   &€r7   rO  Ú;DeferredCancellerTests.test_simpleCanceller.<locals>.cancel>	  r  r9   r1  N)r    rÜ   r¨   r³   rO  rg   rê  rœ   r"  r   r   rø  rœ  rX   rÝ   rm  ©rl   rO  r�  s   f  r7   Útest_simpleCancellerÚ+DeferredCancellerTests.test_simpleCanceller7	  s¾   ø€ ÷	)ð 	)ô %¨vÔ6ˆØ	�‰�t—~‘~ t§}¡}Ô5Ø	�‰Œ
Ø×Ñ˜×0Ñ0°!Ô4Ø×"Ñ"Ò.Ð.Ð.Ø×Ñ˜×,Ñ,×1Ñ1´5×3GÑ3GÔHð 	×Ñœ%×2Ñ2°A·J±JÀÔEØ×Ñœ%×2Ñ2°A·I±I¼y»{ÖKr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rè  L	  s   € ÷ 
ñ 
 4ñ 
r9   c                ó¢   a a€ R VV 3R llp\        VR7      oSP                  S P                  S P                  4       SP	                  4        R# )zA
Verify that a canceller is given the correct deferred argument.
c               ó    € V ^8„  d   QhRRRR/# )r2   r.  ry  r4   rT   r5   )r6   s   "r7   r8   Ú>DeferredCancellerTests.test_cancellerArg.<locals>.__annotate__Q	  s   € ÷ 	!ñ 	!Ð'ð 	!¨Dñ 	!r9   c                ó,   <€ SP                  V S4       R # rA   )r{   )r.  r�  rl   s   &€€r7   rO  Ú8DeferredCancellerTests.test_cancellerArg.<locals>.cancelQ	  s   ø€ Ø�M‰M˜"˜aÖ r9   r1  N)r    rÜ   r¨   r³   rO  r'  s   f @r7   Útest_cancellerArgÚ(DeferredCancellerTests.test_cancellerArgL	  s8   ù€ ÷
	!ñ 	!ô %¨vÔ6ˆØ	�‰�t—~‘~ t§}¡}Ô5Ø	�‰Ž
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rè  X	  s   € ÷ 8ñ 8¨$ñ 8r9   c                óf  a € R V 3R llp\        VR7      pVP                  S P                  S P                  4       VP	                  R4       VP                  4        S P                  S P                  ^ 4       S P                  S P                  4       S P                  S P                  R4       R# )zW
Test that cancelling a deferred after it has been callbacked does
not cause an error.
c               ó    € V ^8„  d   QhRRRR/# r  r5   )r6   s   "r7   r8   ÚEDeferredCancellerTests.test_cancelAfterCallback.<locals>.__annotate__^	  ó   € ÷ 	&ñ 	&Ð&ð 	&¨4ñ 	&r9   c                ól   <€ S;P                   ^,          un         V P                  \        4       4       R# rá  ©rê  rÝ   rJ   r  s   &€r7   rO  Ú?DeferredCancellerTests.test_cancelAfterCallback.<locals>.cancel^	  ó"   ø€ Ø×#Ò# qÕ(Õ#Ø�I‰I”l“nÖ%r9   r1  zbiff!N)r    rÜ   r¨   r³   rX   rO  rg   rê  r¼   rœ   rš   r'  s   f  r7   Útest_cancelAfterCallbackÚ/DeferredCancellerTests.test_cancelAfterCallbackX	  s„   ø€ ÷	&ð 	&ô $¨fÔ5ˆØ	�‰�t—~‘~ t§}¡}Ô5Ø	�
‰
�7ÔØ	�‰Œ
Ø×Ñ˜×0Ñ0°!Ô4Ø×Ñ˜$×-Ñ-Ô.Ø×Ñ˜×-Ñ-¨wÖ7r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rè  j	  s   € ÷ 0ñ 0¨ñ 0r9   c                ó²  a € R V 3R llp\        VR7      pVP                  S P                  S P                  4       VP	                  \        4       4       VP                  4        S P                  S P                  ^ 4       S P                  f   Q hS P                  S P                  P                  \
        4       S P                  S P                  4       R# )zn
Test that cancelling a L{Deferred} after it has been errbacked does
not result in a L{defer.CancelledError}.
c               ó    € V ^8„  d   QhRRRR/# r  r5   )r6   s   "r7   r8   ÚDDeferredCancellerTests.test_cancelAfterErrback.<locals>.__annotate__p	  r6  r9   c                ól   <€ S;P                   ^,          un         V P                  \        4       4       R# rá  r8  r  s   &€r7   rO  Ú>DeferredCancellerTests.test_cancelAfterErrback.<locals>.cancelp	  r:  r9   r1  N)r    rÜ   r¨   r³   rÝ   rJ   rO  rg   rê  rœ   r"  r¼   rš   r'  s   f  r7   Útest_cancelAfterErrbackÚ.DeferredCancellerTests.test_cancelAfterErrbackj	  sž   ø€ ÷	&ð 	&ô %¨vÔ6ˆØ	�‰�t—~‘~ t§}¡}Ô5Ø	�	‰	”,“.Ô!Ø	�‰Œ
Ø×Ñ˜×0Ñ0°!Ô4Ø×"Ñ"Ò.Ð.Ð.Ø×Ñ˜×,Ñ,×1Ñ1´<Ô@Ø×Ñ˜$×.Ñ.Ö/r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rè  }	  s   € ÷ Añ A¨Dñ Ar9   c                óJ  a € R V 3R llp\        VR7      pVP                  S P                  S P                  4       VP	                  4        S P                  S P                  ^4       S P                  f   Q hS P                  S P                  P                  \        4       R# )z/
Test a canceller which errbacks its deferred.
c               ó    € V ^8„  d   QhRRRR/# r  r5   )r6   s   "r7   r8   ÚGDeferredCancellerTests.test_cancellerThatErrbacks.<locals>.__annotate__‚	  r6  r9   c                ól   <€ S;P                   ^,          un         V P                  \        4       4       R# rá  r8  r  s   &€r7   rO  ÚADeferredCancellerTests.test_cancellerThatErrbacks.<locals>.cancel‚	  r:  r9   r1  N)
r    rÜ   r¨   r³   rO  rg   rê  rœ   r"  rJ   r'  s   f  r7   Útest_cancellerThatErrbacksÚ1DeferredCancellerTests.test_cancellerThatErrbacks}	  s|   ø€ ÷
	&ð 	&ô %¨vÔ6ˆØ	�‰�t—~‘~ t§}¡}Ô5Ø	�‰Œ
Ø×Ñ˜×0Ñ0°!Ô4Ø×"Ñ"Ò.Ð.Ð.Ø×Ñ˜×,Ñ,×1Ñ1´<Ö@r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rè  �	  s   € ÷ /ñ /¨Tñ /r9   c                óD  a € R V 3R llp\        VR7      pVP                  S P                  S P                  4       VP	                  4        S P                  S P                  ^4       S P                  S P                  R4       S P                  S P                  4       R# )z,
Test a canceller which calls its deferred.
c               ó    € V ^8„  d   QhRRRR/# r  r5   )r6   s   "r7   r8   ÚHDeferredCancellerTests.test_cancellerThatCallbacks.<locals>.__annotate__’	  s   € ÷ 	!ñ 	!Ð&ð 	!¨4ñ 	!r9   c                ó\   <€ S;P                   ^,          un         V P                  R4       R# )rÏ   úhello!N)rê  rX   r  s   &€r7   rO  ÚBDeferredCancellerTests.test_cancellerThatCallbacks.<locals>.cancel’	  s    ø€ Ø×#Ò# qÕ(Õ#Ø�J‰J�xÖ r9   r1  rR  N)
r    rÜ   r¨   r³   rO  rg   rê  rš   r¼   rœ   r'  s   f  r7   Útest_cancellerThatCallbacksÚ2DeferredCancellerTests.test_cancellerThatCallbacks�	  sx   ø€ ÷
	!ð 	!ô %¨vÔ6ˆØ	�‰�t—~‘~ t§}¡}Ô5Ø	�‰Œ
Ø×Ñ˜×0Ñ0°!Ô4Ø×Ñ˜×-Ñ-¨xÔ8Ø×Ñ˜$×-Ñ-Ö.r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rè  �	  s   € ÷ Iñ I¨4ñ Ir9   c                óÖ  a a€ R V 3R llpR V 3R llp\        VR7      o\        VR7      pVP                  R4       VP                  V3R l4       VP                  4        VP	                  S P
                  S P                  4       S P                  S P                  ^4       S P                  f   Q hS P                  S P                  P                  \        P                  4       R# )z¥
Verify that a Deferred, a, which is waiting on another Deferred, b,
returned from one of its callbacks, will propagate
L{defer.CancelledError} when a is cancelled.
c               ó    € V ^8„  d   QhRRRR/# r  r5   )r6   s   "r7   r8   ÚFDeferredCancellerTests.test_cancelNestedDeferred.<locals>.__annotate__¤	  s   € ÷ 	)ñ 	)Ð+ð 	)°ñ 	)r9   c                ó:   <€ S;P                   ^,          un         R# rá  r  r  s   &€r7   ÚinnerCancelÚEDeferredCancellerTests.test_cancelNestedDeferred.<locals>.innerCancel¤	  r  r9   c               ó    € V ^8„  d   QhRRRR/# r  r5   )r6   s   "r7   r8   rY  §	  s   € ÷ 	#ñ 	#Ð&ð 	#¨4ñ 	#r9   c                ó*   <€ SP                  R 4       R# ©FN)ri   r  s   &€r7   rO  Ú@DeferredCancellerTests.test_cancelNestedDeferred.<locals>.cancel§	  s   ø€ Ø�O‰O˜EÖ"r9   r1  Nc                ó   <€ S# rA   r5   )rð  rS  s   &€r7   r?  ÚBDeferredCancellerTests.test_cancelNestedDeferred.<locals>.<lambda>­	  s   ø€ ¡1r9   )r    rX   r»   rO  rÜ   r¨   r³   rg   rê  rœ   r"  r   r   )rl   r[  rO  r¥  rS  s   f   @r7   Útest_cancelNestedDeferredÚ0DeferredCancellerTests.test_cancelNestedDeferred�	  s°   ù€ ÷	)ð 	)÷	#ð 	#ô %¨{Ô;ˆÜ$¨vÔ6ˆØ	�
‰
�4ÔØ	�‰”nÔ%Ø	�‰Œ
Ø	�‰�t—~‘~ t§}¡}Ô5à×Ñ˜×0Ñ0°!Ô4ð ×"Ñ"Ò.Ð.Ð.Ø×Ñ˜×,Ñ,×1Ñ1´5×3GÑ3GÖHr9   )r›   rš   rê  rœ   N)rL   rM   rN   rO   r¡   ry  r¨   r®   r³   rü  r   r  r
  r  r  r  r(  r0  r;  rC  rK  rT  rc  rP   r5   r9   r7   ræ  ræ  ®  sl   † õ$õ7õõ%õ$õ
0õLõ"Lõ";õ;õ$;õ5õ,Lõ*
õ8õ$0õ&Aõ /÷ Iñ Ir9   ræ  c                  óž   € ] tR tRtRtR R ltR R ltR R ltR	 R
 ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltRtR# )ÚLogTestsi¸	  z#
Test logging of unhandled errors.
c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   ÚLogTests.__annotate__½	  s   € ÷ 'ñ '�tñ 'r9   c                óh   € . V n         \        P                  ! V P                   P                  4       R# )z,
Add a custom observer to observer logging.
N)Úcr,   r‘   rf   r    s   &r7   r¡   ÚLogTests.setUp½	  s   € ð (*ˆŒÜ�Š˜Ÿ™Ÿ™Ö&r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rh  Ä	  s   € ÷ *ñ *˜$ñ *r9   c                óZ   € \         P                  ! V P                  P                  4       R# )z
Remove the observer.
N)r,   ÚremoveObserverrj  rf   r    s   &r7   ry  ÚLogTests.tearDownÄ	  s   € ô 	×Ò˜4Ÿ6™6Ÿ=™=Ö)r9   c               ó   € V ^8„  d   QhRR/# )r2   r4   zList[Dict[str, Any]]r5   )r6   s   "r7   r8   rh  Ê	  s   € ÷ 3ñ 3Ð3ñ 3r9   c                	ód   € V P                    Uu. uF  qR ,          '       g   K  VNK  	  up# u upi )ÚisError©rj  )rl   r>  s   & r7   Ú_loggedErrorsÚLogTests._loggedErrorsÊ	  s&   € ØŸ6š6Ó2™6�a y§\¡\—�™6Ñ2Ð2ùÒ2s   �-¤-c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rh  Í	  s   € ÷ 2ñ 2˜ñ 2r9   c                óÌ   € V P                  4       pV P                  \        V4      ^4       V^,          R,          P                  \        4       V P                  \        4       R# )zF
Check the output of the log observer to see if the error is present.
r|  N)rt  rg   rh   r{  r«  rz   )rl   Úc2s   & r7   r¿  ÚLogTests._checkÍ	  sM   € ð ×ÑÓ!ˆØ×Ñœ˜R› !Ô$Ø
ˆ1�ˆiÕ×ÑÔ/Ô0Ø×ÑÔ0Ö1r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rh  Ö	  s   € ÷ ñ ˜tñ r9   c                ó¢   € \        4       P                  R 4      P                  ^4       \        P                  ! 4        V P                  4        R# )zº
Verify that when a L{Deferred} with no references to it is fired,
and its final result (the one not handled by any callback) is an
exception, that exception will be logged immediately.
c                ó   € ^^ ,          # r¦  r5   r  s   &r7   r?  Ú(LogTests.test_errorLog.<locals>.<lambda>Ü	  ó   € ¨¨a®r9   N)r    r»   rX   ÚgcÚcollectr¿  r    s   &r7   Útest_errorLogÚLogTests.test_errorLogÖ	  s2   € ô 	‹
×ÑÑ/Ó0×9Ñ9¸!Ô<Ü
�
Š
ŒØ�‰Žr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rh  à	  s   € ÷ ñ °ñ r9   c                ój   € R R lpV! 4        \         P                  ! 4        V P                  4        R# )z4
Same as L{test_errorLog}, but with an inner frame.
c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   Ú=LogTests.test_errorLogWithInnerFrameRef.<locals>.__annotate__å	  s   € ÷ 	ñ 	¨tñ 	r9   c                 ó`   € \        4       p V P                  R  4       V P                  ^4       R# )c                ó   € ^^ ,          # r¦  r5   r  s   &r7   r?  Ú`LogTests.test_errorLogWithInnerFrameRef.<locals>._subErrorLogWithInnerFrameRef.<locals>.<lambda>ç	  ó   €  A¨¦Fr9   N)r    r»   rX   rN  s    r7   Ú_subErrorLogWithInnerFrameRefÚNLogTests.test_errorLogWithInnerFrameRef.<locals>._subErrorLogWithInnerFrameRefå	  s!   € Ü'›zˆAØ�M‰MÑ*Ô+Ø�J‰J�qŽMr9   N©r  r€  r¿  )rl   r‹  s   & r7   Útest_errorLogWithInnerFrameRefÚ'LogTests.test_errorLogWithInnerFrameRefà	  s!   € õ
	ñ
 	&Ô'Ü
�
Š
ŒØ�‰Žr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rh  î	  s   € ÷ ñ °$ñ r9   c                ój   € R R lpV! 4        \         P                  ! 4        V P                  4        R# )zA
Same as L{test_errorLogWithInnerFrameRef}, plus create a cycle.
c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   Ú?LogTests.test_errorLogWithInnerFrameCycle.<locals>.__annotate__ó	  s   € ÷ 		ñ 		°ñ 		r9   c                 ó|   € \        4       p V 3R  R llpV P                  V4       W n        V P                  ^4       R# )c               ó$   € V ^8„  d   QhRRRRRR/# )r2   r  r­  r�  úDeferred[int]r4   r5   )r6   s   "r7   r8   ÚhLogTests.test_errorLogWithInnerFrameCycle.<locals>._subErrorLogWithInnerFrameCycle.<locals>.__annotate__ö	  s!   € ÷ ñ ˜sð  }ð ¸Sñ r9   c                ó   € ^^ ,          # r¦  r5   )r  r�  s   &&r7   ÚunusedCycleÚgLogTests.test_errorLogWithInnerFrameCycle.<locals>._subErrorLogWithInnerFrameCycle.<locals>.unusedCycleö	  s   € Ø˜A•v�r9   N)r    r»   Ú_drX   )r�  r™  s     r7   Ú_subErrorLogWithInnerFrameCycleÚRLogTests.test_errorLogWithInnerFrameCycle.<locals>._subErrorLogWithInnerFrameCycleó	  s/   € Ü'›zˆAà78÷ ð �M‰M˜+Ô&àŒDØ�J‰J�qŽMr9   Nr�  )rl   rœ  s   & r7   Ú test_errorLogWithInnerFrameCycleÚ)LogTests.test_errorLogWithInnerFrameCycleî	  s!   € õ
		ñ 	(Ô)Ü
�
Š
ŒØ�‰Žr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rh  
  s   € ÷ 
ñ 
 Tñ 
r9   c                ó”  € \        4       P                  R 4      P                  ^4       \        P                  ! 4        V P                  4        V P                  ^\        V P                  4      4       \        P                  ! V P                  R,          4      pVf   Q hRpV P                  VP                  V4      RV: 24       R# )z…
Verify that when a L{Deferred} with no references to it is fired,
the logged message does not contain a repr of the failure object.
c                ó   € ^^ ,          # r¦  r5   r  s   &r7   r?  Ú.LogTests.test_errorLogNoRepr.<locals>.<lambda>
  r~  r9   Nr�   ú Expected message starting with: r  )r    r»   rX   r  r€  r¿  rg   rh   rj  r,   r‹   ri   r’   )rl   Úmsgrß  s   &  r7   Útest_errorLogNoReprÚLogTests.test_errorLogNoRepr
  s“   € ô
 	‹
×ÑÑ/Ó0×9Ñ9¸!Ô<ä
�
Š
ŒØ�‰Œà×Ñ˜œC §¡›KÔ(Ü×#Ò# D§F¡F¨2¥JÓ/ˆØŠÐˆØ0ˆØ�‰Ø�N‰N˜8Ó$Ø.¨x©lÐ;ö	
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rh  
  s   € ÷ 
ñ 
¨ñ 
r9   c                ó\  € R R lpV! 4        \         P                  ! 4        V P                  4        V P                  ^\	        V P
                  4      4       \        P                  ! V P
                  R,          4      pVf   Q hRpV P                  VP                  V4      RV: 24       R# )z“
Verify that when a L{Deferred} with no references to it is fired,
the logged message includes debug info if debugging on the deferred
is enabled.
c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   Ú5LogTests.test_errorLogDebugInfo.<locals>.__annotate__
  s   € ÷ 	ñ 	�dñ 	r9   c                 ón   € \        4       p R V n        V P                  R 4       V P                  ^4       R# )Tc                ó   € ^^ ,          # r¦  r5   r  s   &r7   r?  Ú?LogTests.test_errorLogDebugInfo.<locals>.doit.<locals>.<lambda>
  rŠ  r9   N)r    Údebugr»   rX   rN  s    r7   ÚdoitÚ-LogTests.test_errorLogDebugInfo.<locals>.doit
  s(   € Ü'›zˆAØˆAŒGØ�M‰MÑ*Ô+Ø�J‰J�qŽMr9   Nz
(debug:  Ir¤  r  )
r  r€  r¿  rg   rh   rj  r,   r‹   ri   r’   )rl   r°  r¥  rß  s   &   r7   Útest_errorLogDebugInfoÚLogTests.test_errorLogDebugInfo
  s�   € õ	ñ 	ŒÜ
�
Š
ŒØ�‰Œà×Ñ˜œC §¡›KÔ(Ü×#Ò# D§F¡F¨2¥JÓ/ˆØŠÐˆØˆØ�‰Ø�N‰N˜8Ó$Ø.¨x©lÐ;ö	
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rh  /
  s   € ÷ 3ñ 3¨$ñ 3r9   c                ó¶  € \        4       pVP                  R 4       VP                  R4       . p. pVP                  VP                  VP                  4       V P                  V. 4       V P                  \        V4      ^4       V^ ,          P                  \        4       ???\        P                  ! 4        V P                  V P                  4       . 4       R# )zŸ
If one Deferred with an error result is returned from a callback on
another Deferred, when the first Deferred is garbage collected it does
not log its error.
c                ó@   € \         P                  ! \        R 4      4      # )Úzoop)r   rš  rx   rÞ  s   &r7   r?  Ú3LogTests.test_chainedErrorCleanup.<locals>.<lambda>6
  s   € ¤%§*¢*¬\¸&Ó-AÔ"Br9   N)r    r»   rX   rÜ   rf   rg   rh   r{  rm  r  r€  rt  )rl   r�  rò  r‚   s   &   r7   Útest_chainedErrorCleanupÚ!LogTests.test_chainedErrorCleanup/
  s§   € ô %›JˆØ	�‰ÑBÔCØ	�
‰
�4Ôð !ˆØ "ˆØ	�‰�w—~‘~ v§}¡}Ô5Ø×Ñ˜ "Ô%Ø×Ñœ˜V› aÔ(Øˆq�	�‰”yÔ!ð �V˜Qô 	�
Š
Œà×Ñ˜×+Ñ+Ó-¨rÖ2r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rh  K
  s   € ÷ 3ñ 3¨Tñ 3r9   c                ó  a€ \         P                  ! \        R4      4      p\        4       oVf   Q hVP	                  V3R l4       R;op\
        P                  ! 4        V P                  V P                  4       . 4       R# )zœ
If a Deferred with a failure result has an errback which chains it to
another Deferred, the initial failure is cleared by the errback so it is
not logged.
zoh noNc                ó   <€ S# rA   r5   )rÜ  Úgoods   &€r7   r?  Ú6LogTests.test_errorClearedByChaining.<locals>.<lambda>V
  s   ø€ ¡tr9   )	r   rš  rm  r    re   r  r€  rg   rt  )rl   Úbadr¾  s   & @r7   Útest_errorClearedByChainingÚ$LogTests.test_errorClearedByChainingK
  sd   ø€ ô ).¯
ª
´9¸WÓ3EÓ(FˆÜ)1«ˆàŠÐˆØ�‰Ô+Ô,ð ÐˆˆsÜ
�
Š
ŒØ×Ñ˜×+Ñ+Ó-¨rÖ2r9   rs  N)rL   rM   rN   rO   rq   r¡   ry  rt  r¿  r�  rŽ  rž  r¦  r²  r¹  rÁ  rP   r5   r9   r7   rf  rf  ¸	  sC   † ñõ'õ*õ3õ2õõõõ(
õ&
õ43÷83ñ 3r9   rf  c                  óF   € ] tR tRtR R ltR R ltR R ltR R	 ltR
tR# )ÚDeferredListEmptyTestsi^
  c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   Ú#DeferredListEmptyTests.__annotate___
  s   € ÷ ñ �tñ r9   c                	ó   € ^ V n         R# ©r¥   N©ÚcallbackRanr    s   &r7   r¡   ÚDeferredListEmptyTests.setUp_
  s
   € ØˆÖr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÆ  b
  s   € ÷ &ñ & tñ &r9   c                óR   € \        . 4      pVP                  V P                  4       R# )zTesting empty DeferredList.N)r"   r»   Úcb_empty)rl   r  s   & r7   ÚtestDeferredListEmptyÚ,DeferredListEmptyTests.testDeferredListEmptyb
  s   € ä9EÀbÓ9IˆØ
�‰�t—}‘}Ö%r9   c               ó    € V ^8„  d   QhRRRR/# )r2   ÚreszList[Tuple[bool, object]]r4   rT   r5   )r6   s   "r7   r8   rÆ  g
  s   € ÷ "ñ "Ð5ð "¸$ñ "r9   c                	ó8   € ^V n         V P                  . V4       R# rá  )rÊ  rg   )rl   rÒ  s   &&r7   rÎ  ÚDeferredListEmptyTests.cb_emptyg
  s   € ØˆÔØ×Ñ˜˜SÖ!r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÆ  k
  s   € ÷ Eñ E˜$ñ Er9   c                	ó>   € V P                  V P                  R 4       R# )zCallback was never run.N)ri   rÊ  r    s   &r7   ry  ÚDeferredListEmptyTests.tearDownk
  s   € Ø�‰˜×(Ñ(Ð*CÖDr9   rÉ  N)	rL   rM   rN   rO   r¡   rÏ  rÎ  ry  rP   r5   r9   r7   rÄ  rÄ  ^
  s   † õõ&õ
"÷Eñ Er9   rÄ  c                  ó¦   € ] tR tRtR R ltR R ltR R ltR R	 ltR
 R ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltRtR# )ÚOtherPrimitivesTestsio
  c               ó    € V ^8„  d   QhRRRR/# rö  r5   )r6   s   "r7   r8   Ú!OtherPrimitivesTests.__annotate__p
  s   € ÷ ñ ˜Fð  tñ r9   c                	ó8   € V ;P                   ^,          un         R# rá  ©Úcounter©rl   r}   s   &&r7   Ú_incrÚOtherPrimitivesTests._incrp
  s   € Ø�Š˜Õ�r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÛ  s
  s   € ÷ ñ �tñ r9   c                	ó   € ^ V n         R# rÈ  rÝ  r    s   &r7   r¡   ÚOtherPrimitivesTests.setUps
  s	   € ØˆŽr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÛ  v
  s   € ÷ @=ñ @=˜$ñ @=r9   c                	ót  a
€ \        4       pVP                  4       P                  V P                  4       V P	                  VP
                  4       V P                  V P                  ^4       VP                  4       P                  V P                  4       V P	                  VP
                  4       V P                  V P                  ^4       VP                  4        V P	                  VP
                  4       V P                  V P                  ^4       VP                  4        V P                  VP
                  4       V P                  V P                  ^4       V P                  \        VP                  4       \        4       p\        4       p\        4       pRo
R	R V
3R lllpVP                  WRVR7      pV P	                  VP
                  4       V P                  S
V4       VP                  V4       VP                  4       P                  V P                  4       V P	                  VP
                  4       V P                  V P                  ^4       VP                  V4       V P                  S
V4       V P	                  VP
                  4       V P                  V P                  ^4       VP                  4       P!                  V4      pVP#                  4        V P%                  S
\&        4       V P                  \)        \&        S
4      P*                  \,        P.                  4       VP                  4        V P                  VP
                  4       R R lpR R lp	\1        VP                  V4      \        \2        ,          4       \1        VP                  V	4      \        \2        ,          4       R# )
rÏ   Nc               ó$   € V ^8„  d   QhRRRRRR/# )r2   ÚresultValuer=   ÚreturnValuer4   r5   )r6   s   "r7   r8   Ú3OtherPrimitivesTests.testLock.<locals>.__annotate__‘
  s!   € ÷ 	ñ 	 ð 	°Vð 	Àvñ 	r9   c                ó   <€ V oV# rA   r5   )rè  ré  r}   s   &&€r7   ÚhelperÚ-OtherPrimitivesTests.testLock.<locals>.helper‘
  s   ø€ à ˆFØÐr9   )rè  ré  c               ó   € V ^8„  d   QhRR/# )r2   r4   r–  r5   )r6   s   "r7   r8   rê  ¯
  s   € ÷ 	$ñ 	$˜Mñ 	$r9   c                 ó.   € \         P                  ! ^4      # )r2   ©r   rŒ  r5   r9   r7   rë  Ú1OtherPrimitivesTests.testLock.<locals>.returnsInt¯
  s   € Ü—=’= Ó#Ð#r9   c               ó   € V ^8„  d   QhRR/# rA  r5   )r6   s   "r7   r8   rê  ²
  s   € ÷ 	ñ 	 cñ 	r9   c               “  ó   "  € ^# 5ir¦  r5   r5   r9   r7   ÚreturnsCoroIntÚ5OtherPrimitivesTests.testLock.<locals>.returnsCoroInt²
  rH  rI  rA   )r#   Úacquirer»   rà  ri   Úlockedrg   rÞ  ÚreleaserZ  rø  r,  Úrunr=   r    rX   râ  rO  r¬  r/   r   r"  r   r   r   r­  )rl   ÚlockÚfirstUniqueÚsecondUniqueÚcontrolDeferredrì  ÚresultDeferredr�  rë  rô  r}   s   &         @r7   ÚtestLockÚOtherPrimitivesTests.testLockv
  s…  ø€ Ü‹~ˆØ�‰‹×"Ñ" 4§:¡:Ô.Ø�‰˜Ÿ™Ô$Ø×Ñ˜Ÿ™ qÔ)à�‰‹×"Ñ" 4§:¡:Ô.Ø�‰˜Ÿ™Ô$Ø×Ñ˜Ÿ™ qÔ)à�‰ŒØ�‰˜Ÿ™Ô$Ø×Ñ˜Ÿ™ qÔ)à�‰ŒØ×Ñ˜Ÿ™Ô%Ø×Ñ˜Ÿ™ qÔ)à×Ñœ) T§X¡XÔ.ä“hˆÜ“xˆä,4«Jˆà#'ˆ÷	ò 	ð
 Ÿ™Ø¸ð "ó 
ˆð 	�‰˜Ÿ™Ô$Ø×Ñ˜ Ô-à×"Ñ" 6Ô*à�‰‹×"Ñ" 4§:¡:Ô.Ø�‰˜Ÿ™Ô$Ø×Ñ˜Ÿ™ qÔ)à× Ñ  Ô.Ø×Ñ˜ Ô.Ø�‰˜Ÿ™Ô$Ø×Ñ˜Ÿ™ qÔ)à�L‰L‹N×"Ñ" 6Ó*ˆØ	�‰Œ
Ø×Ñ˜f¤gÔ.Ø×Ñœœg vÓ.×3Ñ3´U×5IÑ5IÔJà�‰ŒØ×Ñ˜Ÿ™Ô%õ	$õ	ô 	�D—H‘H˜ZÓ(¬(´3­-Ô8Ü�D—H‘H˜^Ó,¬h´s­mÖ<r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÛ  ¸
  s   € ÷ ñ ¨dñ r9   c                ó�   a € R V 3R llp\        4       pVP                  4       pVP                  V4       VP                  4        R# )zr
When canceling a L{Deferred} from a L{DeferredLock} that already
has the lock, the cancel should have no effect.
c               ó    € V ^8„  d   QhRRRR/# ©r2   r3   r/   r4   rT   r5   )r6   s   "r7   r8   ÚGOtherPrimitivesTests.test_cancelLockAfterAcquired.<locals>.__annotate__¾
  ó   € ÷ 	2ñ 	2˜Wð 	2¨ñ 	2r9   c                ó*   <€ SP                  R 4       R# ©zUnexpected errback call!N©rš  ©r3   rl   s   &€r7   ÚfailOnErrbackÚHOtherPrimitivesTests.test_cancelLockAfterAcquired.<locals>.failOnErrback¾
  ó   ø€ Ø�I‰IÐ0Ö1r9   N)r#   rö  re   rO  )rl   r  rú  r�  s   f   r7   Útest_cancelLockAfterAcquiredÚ1OtherPrimitivesTests.test_cancelLockAfterAcquired¸
  s6   ø€ ÷	2ð 	2ô ‹~ˆØ�L‰L‹NˆØ	�‰�]Ô#Ø	�‰Ž
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÛ  Æ
  s   € ÷ 
=ñ 
=¨tñ 
=r9   c                óº   € \        4       pVP                  4        VP                  4       pVP                  4        V P                  V\        P
                  4       R# )z·
When canceling a L{Deferred} from a L{DeferredLock} that does not
yet have the lock (i.e., the L{Deferred} has not fired), the cancel
should cause a L{defer.CancelledError} failure.
N)r#   rö  rO  ro   r   r   )rl   rú  r�  s   &  r7   Útest_cancelLockBeforeAcquiredÚ2OtherPrimitivesTests.test_cancelLockBeforeAcquiredÆ
  s>   € ô ‹~ˆØ�‰ŒØ�L‰L‹NˆØ	�‰Œ
Ø×#Ñ# A¤u×';Ñ';Ö<r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÛ  Ò
  s   € ÷ 12ñ 12˜tñ 12r9   c                	óÜ  aaa€ ^p\        V4      p\        4       oRoR VV3R llp. p\        4       pVP                  W5R7      pVP	                  VP
                  4       VP	                  V P                  4       V P                  V. 4       V P                  SV4       SP                  R4       V P                  VP                  4       4       V P                  V P                  ^4       ^ V n        \        ^^V,           4       FH  pVP                  4       P	                  V P                  4       V P                  V P                  V4       KJ  	  . oR V3R llpR V3R llp	VP                  4       P                  W‰4      p
V
P                  4        V P                  SR	.4       VP                  4       P	                  V P                  4       V P                  V P                  V4       VP!                  4        V P                  V P                  V^,           4       \        ^^V,           4       F6  pVP!                  4        V P                  V P                  V^,           4       K8  	  R# )
é   Nc               ó    € V ^8„  d   QhRRRR/# )r2   Úargr=   r4   r˜  r5   )r6   s   "r7   r8   Ú8OtherPrimitivesTests.testSemaphore.<locals>.__annotate__Ú
  s   € ÷ 	#ñ 	#˜ð 	# >ñ 	#r9   c                ó   <€ V oS# rA   r5   )r  rý  Ú	helperArgs   &€€r7   rì  Ú2OtherPrimitivesTests.testSemaphore.<locals>.helperÚ
  s   ø€ àˆIØ"Ð"r9   )r  c               ó    € V ^8„  d   QhRRRR/# ©r2   r¸  r=   r4   rT   r5   )r6   s   "r7   r8   r  ñ
  s   € ÷ 	"ñ 	"�Fð 	"˜tñ 	"r9   c                ó*   <€ SP                  R 4       R# r_  r  ©r¸  r‹  s   &€r7   rš  Ú0OtherPrimitivesTests.testSemaphore.<locals>.failñ
  s   ø€ Ø�N‰N˜5Ö!r9   c               ó    € V ^8„  d   QhRRRR/# r  r5   )r6   s   "r7   r8   r  ô
  s   € ÷ 	!ñ 	!�vð 	! $ñ 	!r9   c                ó*   <€ SP                  R 4       R# rt  r  r   s   &€r7   rŒ  Ú3OtherPrimitivesTests.testSemaphore.<locals>.succeedô
  s   ø€ Ø�N‰N˜4Ö r9   T)r%   r    r=   rù  r»   rf   rà  rg   rX   r¼   r­  rÞ  r¬  rö  rÜ   rO  rø  )rl   ÚNÚsemrì  rò  ÚuniqueObjectrþ  Úirš  rŒ  r�  rý  r  r‹  s   &          @@@r7   ÚtestSemaphoreÚ"OtherPrimitivesTests.testSemaphoreÒ
  s×  ú€ ØˆÜ Ó"ˆä*2«*ˆà ˆ	÷	#ñ 	#ð
 !#ˆÜ“xˆØŸ™ ˜Ó:ˆØ×"Ñ" 7§>¡>Ô2Ø×"Ñ" 4§:¡:Ô.Ø×Ñ˜ "Ô%Ø×Ñ˜ LÔ1Ø× Ñ  Ô&Ø×Ñ˜'Ÿ+™+›-Ô(Ø×Ñ˜Ÿ™ qÔ)àˆŒÜ�q˜!˜a�%–ˆAØ�K‰K‹M×%Ñ% d§j¡jÔ1Ø×Ñ˜TŸ\™\¨1Ö-ñ !ð ˆ÷	"ð 	"÷	!ð 	!ð �K‰K‹M×&Ñ& tÓ5ˆØ	�‰Œ
Ø×Ñ˜ 4 &Ô)à�‰‹×!Ñ! $§*¡*Ô-Ø×Ñ˜Ÿ™ qÔ)à�‰ŒØ×Ñ˜Ÿ™ q¨1¥uÔ-ä�q˜!˜a�%–ˆAØ�K‰KŒMØ×Ñ˜TŸ\™\¨1¨q­5Ö1ó !r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÛ    s   € ÷ =ñ =¨Tñ =r9   c                ór   € V P                  \        \        ^ 4       V P                  \        \        R4       R# )zb
If the token count passed to L{DeferredSemaphore} is less than one
then L{ValueError} is raised.
Nr  )rø  rÖ  r%   r    s   &r7   Útest_semaphoreInvalidTokensÚ0OtherPrimitivesTests.test_semaphoreInvalidTokens  s*   € ð
 	×Ñœ*Ô&7¸Ô;Ø×Ñœ*Ô&7¸Ö<r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÛ    s   € ÷ ñ °4ñ r9   c                ó’   a € R V 3R llp\        ^4      pVP                  4       pVP                  V4       VP                  4        R# )z|
When canceling a L{Deferred} from a L{DeferredSemaphore} that
already has the semaphore, the cancel should have no effect.
c               ó    € V ^8„  d   QhRRRR/# r  r5   )r6   s   "r7   r8   ÚLOtherPrimitivesTests.test_cancelSemaphoreAfterAcquired.<locals>.__annotate__  r  r9   c                ó*   <€ SP                  R 4       R# r  r	  r
  s   &€r7   r  ÚMOtherPrimitivesTests.test_cancelSemaphoreAfterAcquired.<locals>.failOnErrback  r  r9   N)r%   rö  re   rO  )rl   r  r&  r�  s   f   r7   Ú!test_cancelSemaphoreAfterAcquiredÚ6OtherPrimitivesTests.test_cancelSemaphoreAfterAcquired  s9   ø€ ÷	2ð 	2ô   Ó"ˆØ�K‰K‹MˆØ	�‰�]Ô#Ø	�‰Ž
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÛ    s   € ÷ 
=ñ 
=°Dñ 
=r9   c                ó¼   € \        ^4      pVP                  4        VP                  4       pVP                  4        V P                  V\        P
                  4       R# )zÁ
When canceling a L{Deferred} from a L{DeferredSemaphore} that does
not yet have the semaphore (i.e., the L{Deferred} has not fired),
the cancel should cause a L{defer.CancelledError} failure.
N)r%   rö  rO  ro   r   r   )rl   r&  r�  s   &  r7   Ú"test_cancelSemaphoreBeforeAcquiredÚ7OtherPrimitivesTests.test_cancelSemaphoreBeforeAcquired  sA   € ô   Ó"ˆØ�‰ŒØ�K‰K‹MˆØ	�‰Œ
Ø×#Ñ# A¤u×';Ñ';Ö<r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÛ  '  s   € ÷ #;ñ #;˜4ñ #;r9   c                	óP  € ^^r!\        W4      p. p\        V4       F,  pVP                  4       P                  VP                  4       K.  	  V P                  \        P                  VP                  4       \        V4       F?  pVP                  V4       V P                  V\        \        V^,           4      4      4       KA  	  \        V4       F>  pVP                  W,           4       V P                  V\        \        V4      4      4       K@  	  V P                  \        P                  VP                  R4       . p\        V4       F^  pVP                  4       P                  VP                  4       V P                  V\        \        WV,           ^,           4      4      4       K`  	  \        4       p. p\        V4       F,  pVP                  4       P                  VP                  4       K.  	  \        V4       F  pVP                  V4       K  	  V P                  V\        \        V4      4      4       \        ^ R7      pV P                  \        P                  VP                  R4       \        ^ R7      pV P                  \        P                  VP                  4       R# )r2   N)Úsize)Úbacklog)r$   r¬  Úgetr»   rf   rø  r   ÚQueueUnderflowÚputrg   ÚlistÚQueueOverflow)rl   r%  ÚMÚqueueÚgottenr(  s   &     r7   Ú	testQueueÚOtherPrimitivesTests.testQueue'  sÞ  € Ø�!ˆ1Ü$1°!Ó$7ˆàˆä�q–ˆAØ�I‰I‹K×#Ñ# F§M¡MÖ2ñ à×Ñœ%×.Ñ.°·	±	Ô:ä�q–ˆAØ�I‰I�aŒLØ×Ñ˜V¤T¬%°°Aµ«,Ó%7Ö8ñ ô �q–ˆAØ�I‰I�a•eÔØ×Ñ˜V¤T¬%°«(£^Ö4ñ ð 	×Ñœ%×-Ñ-¨u¯y©y¸$Ô?àˆÜ�q–ˆAØ�I‰I‹K×#Ñ# F§M¡MÔ2Ø×Ñ˜V¤T¬%°°qµ5¸1µ9Ó*=Ó%>Ö?ñ ô “ˆØˆÜ�q–ˆAØ�I‰I‹K×#Ñ# F§M¡MÖ2ñ ä�q–ˆAØ�I‰I�aŽLñ à×Ñ˜¤¤e¨A£h£Ô0ä 1Ô%ˆØ×Ñœ%×-Ñ-¨u¯y©y¸$Ô?ä aÔ(ˆØ×Ñœ%×.Ñ.°·	±	Ö:r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÛ  L  s   € ÷ ñ °Tñ r9   c                ó²   a € R V 3R llp\        4       pVP                  4       pVP                  V4       VP                  R4       VP	                  4        R# )zs
When canceling a L{Deferred} from a L{DeferredQueue} that already has
a result, the cancel should have no effect.
c               ó    € V ^8„  d   QhRRRR/# r  r5   )r6   s   "r7   r8   ÚNOtherPrimitivesTests.test_cancelQueueAfterSynchronousGet.<locals>.__annotate__R  r  r9   c                ó*   <€ SP                  R 4       R# r  r	  r
  s   &€r7   r  ÚOOtherPrimitivesTests.test_cancelQueueAfterSynchronousGet.<locals>.failOnErrbackR  r  r9   N)r$   r?  re   rA  rO  )rl   r  rE  r�  s   f   r7   Ú#test_cancelQueueAfterSynchronousGetÚ8OtherPrimitivesTests.test_cancelQueueAfterSynchronousGetL  sA   ø€ ÷	2ð 	2ô &3£_ˆØ�I‰I‹KˆØ	�‰�]Ô#Ø�	‰	�$ŒØ	�‰Ž
r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÛ  [  s   € ÷ 'ñ '¨$ñ 'r9   c                óD  a a€ \        4       oSP                  4       pVP                  4        S P                  V\        P
                  4       R VV 3R llpVP                  V4       . pVP                  VP                  4       S P                  \        V4      ^4       R# )z÷
When canceling a L{Deferred} from a L{DeferredQueue} that does not
have a result (i.e., the L{Deferred} has not fired), the cancel
causes a L{defer.CancelledError} failure. If the queue has a result
later on, it doesn't try to fire the deferred.
c               ó    € V ^8„  d   QhRRRR/# )r2   Úignorer=   r4   r˜  r5   )r6   s   "r7   r8   ÚCOtherPrimitivesTests.test_cancelQueueAfterGet.<locals>.__annotate__g  s   € ÷ 	@ñ 	@�vð 	@ .ñ 	@r9   c                óz   <€ SP                  R 4       SP                  4       P                  SP                  R 4      # rA   )rA  r?  r»   r{   )rT  rE  rl   s   &€€r7   ró   Ú9OtherPrimitivesTests.test_cancelQueueAfterGet.<locals>.cbg  s-   ø€ ð �I‰I�dŒOØ—9‘9“;×*Ñ*¨4¯=©=¸$Ó?Ð?r9   N)
r$   r?  rO  ro   r   r   r»   rf   rg   rh   )rl   r�  ró   ÚdonerE  s   f   @r7   Útest_cancelQueueAfterGetÚ-OtherPrimitivesTests.test_cancelQueueAfterGet[  sy   ù€ ô &3£_ˆØ�I‰I‹KˆØ	�‰Œ
Ø×#Ñ# A¤u×';Ñ';Ô<÷	@ñ 	@ð 	
�‰�bÔØˆØ	�‰�d—k‘kÔ"Ø×Ñœ˜T› AÖ&r9   rÝ  N)rL   rM   rN   rO   rà  r¡   rÿ  r  r  r)  r-  r5  r9  rG  rO  rY  rP   r5   r9   r7   rÙ  rÙ  o
  sG   † õõõ@=õDõ
=õ12õf=õõ
=õ#;õJ÷'ñ 'r9   rÙ  c                  ó†   € ] tR tRtRtR R ltR R ltR R ltR	 R
 ltR R lt	R R lt
R R ltR R ltR R ltRtR# )ÚDeferredFilesystemLockTestsis  z0
Test the behavior of L{DeferredFilesystemLock}
c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   Ú(DeferredFilesystemLockTests.__annotate__x  s   € ÷ Pñ P�tñ Pr9   c                	óx   € \        4       V n        \        V P                  4       V P                  R 7      V n        R# ))Ú	schedulerN)r+   Úclockr!   Úmktemprú  r    s   &r7   r¡   Ú!DeferredFilesystemLockTests.setUpx  s#   € Ü“WˆŒ
Ü*¨4¯;©;«=ÀDÇJÁJÔOˆŽ	r9   c               ó   € V ^8„  d   QhRR/# ©r2   r4   r˜  r5   )r6   s   "r7   r8   r^  |  s   € ÷ 5ñ 5°ñ 5r9   c                ó:   € V P                   P                  ^R7      # )z9
Test that the lock can be acquired when no lock is held
©Útimeout)rú  ÚdeferUntilLockedr    s   &r7   Útest_waitUntilLockedWithNoLockÚ:DeferredFilesystemLockTests.test_waitUntilLockedWithNoLock|  s   € ð �y‰y×)Ñ)°!Ð)Ó4Ð4r9   c               ó   € V ^8„  d   QhRR/# re  r5   )r6   s   "r7   r8   r^  ‚  s   € ÷ ñ °~ñ r9   c                ó  € V P                  V P                  P                  4       4       V P                  P                  RR7      pV P                  V\        P
                  4       V P                  P                  ^.^
,          4       V# )z[
Test that the lock can not be acquired when the lock is held
for longer than the timeout.
g      @rg  )ri   rú  ri  ÚassertFailurer   ÚTimeoutErrorra  Úpumpr²  s   & r7   Ú%test_waitUntilLockedWithTimeoutLockedÚADeferredFilesystemLockTests.test_waitUntilLockedWithTimeoutLocked‚  sc   € ð
 	�‰˜Ÿ	™	Ÿ™Ó(Ô)à�I‰I×&Ñ&¨sÐ&Ó3ˆØ×Ñ˜1œe×0Ñ0Ô1à�
‰
�‰˜˜˜b�Ô!àˆr9   c               ó   € V ^8„  d   QhRR/# re  r5   )r6   s   "r7   r8   r^  �  s   € ÷ ñ ¸ñ r9   c                ól  a € R V 3R llpS P                  S P                  P                  4       4       S P                  P                  ^S P                  P                  4       S P                  P                  ^
R7      pVP                  V4       S P                  P                  ^.^
,          4       V# )zd
Test that a lock can be acquired while a lock is held
but the lock is unlocked before our timeout.
c               ó    € V ^8„  d   QhRRRR/# r  r5   )r6   s   "r7   r8   ÚYDeferredFilesystemLockTests.test_waitUntilLockedWithTimeoutUnlocked.<locals>.__annotate__–  s   € ÷ 	3ñ 	3˜ð 	3 Tñ 	3r9   c                óh   <€ V P                  \        P                  4       SP                  R 4       R# )zShould not have timed outN)r{  r   ro  rš  r
  s   &€r7   Ú	onTimeoutÚVDeferredFilesystemLockTests.test_waitUntilLockedWithTimeoutUnlocked.<locals>.onTimeout–  s"   ø€ Ø�F‰F”5×%Ñ%Ô&Ø�I‰IÐ1Ö2r9   rg  )ri   rú  ra  Ú	callLaterÚunlockri  re   rp  )rl   rx  r�  s   f  r7   Ú'test_waitUntilLockedWithTimeoutUnlockedÚCDeferredFilesystemLockTests.test_waitUntilLockedWithTimeoutUnlocked�  s‚   ø€ ÷	3ð 	3ð 	�‰˜Ÿ	™	Ÿ™Ó(Ô)à�
‰
×Ñ˜Q §	¡	× 0Ñ 0Ô1Ø�I‰I×&Ñ&¨rÐ&Ó2ˆØ	�‰�YÔà�
‰
�‰˜˜˜b�Ô!àˆr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r^  ¤  s   € ÷ 3ñ 3 tñ 3r9   c                óx   € \        V P                  4       4      pV P                  VP                  \        4       R# )z5
Test that the default scheduler is set up properly.
N)r!   rb  rg   Ú
_schedulerr   ©rl   rú  s   & r7   Útest_defaultSchedulerÚ1DeferredFilesystemLockTests.test_defaultScheduler¤  s(   € ô & d§k¡k£mÓ4ˆà×Ñ˜Ÿ™¬'Ö2r9   c               ó   € V ^8„  d   QhRR/# re  r5   )r6   s   "r7   r8   r^  ¬  s   € ÷ ñ  nñ r9   c                óx  € V P                   P                  4        V P                  P                  ^V P                   P                  4       V P                   P	                  4       pV P                   P	                  4       pV P                  V\        P                  4       V P                  P                  ^4       V# )zd
Test that an appropriate exception is raised when attempting
to use deferUntilLocked concurrently.
)	rú  ra  rz  r{  ri  rn  r   ÚAlreadyTryingToLockErrorÚadvancer¼  s   &  r7   Útest_concurrentUsageÚ0DeferredFilesystemLockTests.test_concurrentUsage¬  s�   € ð
 	�	‰	�‰ÔØ�
‰
×Ñ˜Q §	¡	× 0Ñ 0Ô1à�Y‰Y×'Ñ'Ó)ˆØ�Y‰Y×'Ñ'Ó)ˆà×Ñ˜2œu×=Ñ=Ô>à�
‰
×Ñ˜1Ôàˆ	r9   c               ó   € V ^8„  d   QhRR/# re  r5   )r6   s   "r7   r8   r^  ½  s   € ÷ ñ  ^ñ r9   c                ó:  a € R V 3R llpS P                   P                  4        S P                  P                  ^S P                   P                  4       S P                   P	                  4       pVP                  V4       S P                  P                  ^4       V# )z?
Test that a DeferredFilesystemLock can be used multiple times
c               ó    € V ^8„  d   QhRRRR/# )r2   r  r=   r4   r˜  r5   )r6   s   "r7   r8   ÚEDeferredFilesystemLockTests.test_multipleUsages.<locals>.__annotate__Â  s   € ÷ 	ñ 	˜Vð 	¨ñ 	r9   c                óp   <€ SP                   P                  4        SP                   P                  4       pV# rA   )rú  r{  ri  )r  r�  rl   s   & €r7   ÚlockAquiredÚDDeferredFilesystemLockTests.test_multipleUsages.<locals>.lockAquiredÂ  s*   ø€ Ø�I‰I×ÑÔØ—	‘	×*Ñ*Ó,ˆAØˆHr9   )rú  ra  rz  r{  ri  r»   r‡  )rl   r�  r�  s   f  r7   Útest_multipleUsagesÚ/DeferredFilesystemLockTests.test_multipleUsages½  sp   ø€ ÷
	ð 	ð
 	�	‰	�‰ÔØ�
‰
×Ñ˜Q §	¡	× 0Ñ 0Ô1à�I‰I×&Ñ&Ó(ˆØ	�‰�kÔ"à�
‰
×Ñ˜1Ôàˆr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r^  Ñ  s   € ÷ =ñ =¨Tñ =r9   c                óŽ  € V P                   P                  4        V P                   P                  4       pV P                   P                  pVf   Q hVP                  4        V P	                  VP                  4       4       V P                  V P                   P                  4       V P                  V\        P                  4       R# )z�
When cancelling a L{Deferred} returned by
L{DeferredFilesystemLock.deferUntilLocked}, the
L{DeferredFilesystemLock._tryLockCall} is cancelled.
N)
rú  ri  Ú_tryLockCallrO  rZ  Úactiver¼   rP  r   r   )rl   rR   ÚtryLockCalls   &  r7   Útest_cancelDeferUntilLockedÚ7DeferredFilesystemLockTests.test_cancelDeferUntilLockedÑ  sŽ   € ð 	�	‰	�‰ÔØ—9‘9×-Ñ-Ó/ˆØ—i‘i×,Ñ,ˆØÒ&Ð&Ð&Ø�‰ÔØ×Ñ˜×+Ñ+Ó-Ô.Ø×Ñ˜$Ÿ)™)×0Ñ0Ô1Ø×Ñ˜X¤u×';Ñ';Ö<r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r^  à  s   € ÷ =ñ =¸ñ =r9   c                ó’  € V P                   P                  4        V P                   P                  ^R7      pV P                   P                  pVf   Q hVP                  4        V P	                  VP                  4       4       V P                  V P                   P                  4       V P                  V\        P                  4       R# )zŽ
When cancel a L{Deferred} returned by
L{DeferredFilesystemLock.deferUntilLocked}, if the timeout is
set, the timeout call will be cancelled.
rg  N)
rú  ri  Ú_timeoutCallrO  rZ  r–  r¼   rP  r   r   )rl   rR   ÚtimeoutCalls   &  r7   Ú&test_cancelDeferUntilLockedWithTimeoutÚBDeferredFilesystemLockTests.test_cancelDeferUntilLockedWithTimeoutà  s“   € ð 	�	‰	�‰ÔØ—9‘9×-Ñ-°aÐ-Ó8ˆØ—i‘i×,Ñ,ˆØÒ&Ð&Ð&Ø�‰ÔØ×Ñ˜×+Ñ+Ó-Ô.Ø×Ñ˜$Ÿ)™)×0Ñ0Ô1Ø×Ñ˜X¤u×';Ñ';Ö<r9   )ra  rú  N)rL   rM   rN   rO   rq   r¡   rj  rq  r|  r‚  rˆ  r‘  r˜  rž  rP   r5   r9   r7   r\  r\  s  s:   † ñõPõ5õõõ(3õõ"õ(=÷=ñ =r9   r\  c               ó$   € V ^8„  d   QhRRRRRR/# )r2   Úvr=   ÚtÚfloatr4   rã   r5   )r6   s   "r7   r8   r8   ð  s!   € ÷ ñ �Vð  ð ¨#ñ r9   c                ó   € R# )z^
Private function to be used to pass as an alternate onTimeoutCancel value
to timeoutDeferred
Ú
OVERRIDDENr5   )r¡  r¢  s   &&r7   Ú_overrideFuncr¦  ð  s   € ñ
 r9   c                  óò   € ] tR tRtRtR R ltR R ltR R ltR	 R
 ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR! R" ltR# R$ ltR% R& ltR'tR(# ))ÚDeferredAddTimeoutTestsiø  z/
Tests for the function L{Deferred.addTimeout}
c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   Ú$DeferredAddTimeoutTests.__annotate__ý  s   € ÷ 	:ñ 	: tñ 	:r9   c                óÖ   € \        4       pVP                  ^\        4       4       VP                  R 4       VP	                  R4       V P                  RV P                  V4      4       R# )z]
L{Deferred.addTimeout} returns its own L{Deferred} so it
can be called in a callback chain.
c                ó   € R # )rX  r5   r§  s   &r7   r?  Ú?DeferredAddTimeoutTests.test_timeoutChainable.<locals>.<lambda>  s   € ¡r9   NrX  )r    Ú
addTimeoutr+   r»   rX   rg   rY  r²  s   & r7   Útest_timeoutChainableÚ-DeferredAddTimeoutTests.test_timeoutChainableý  sO   € ô
 %›JˆØ	�‰�Qœ›Ô Ø	�‰Ñ&Ô'Ø	�
‰
�4ÔØ×Ñ˜ ×!5Ñ!5°aÓ!8Ö9r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª    s   € ÷ +ñ +°ñ +r9   c                óR  aa€ \        4       p\        4       pVP                  ^
V4       \        4       oRoR VV3R llpVP                  V4       VP	                  R4       V P                  RS4       V P                  SR4       VP                  ^4       V P                  S4       R# )zª
The L{Deferred} callbacks with the result if it succeeds before
the timeout. No cancellation happens after the callback either,
which could also cancel inner deferreds.
Nc               ó    € V ^8„  d   QhRRRR/# ©r2   rò  rã   r4   r˜  r5   )r6   s   "r7   r8   ÚMDeferredAddTimeoutTests.test_successResultBeforeTimeout.<locals>.__annotate__  ó   € ÷ 	!ñ 	! ð 	!¨ñ 	!r9   c                ó   <€ V oS# rA   r5   ©rò  ÚdCallbackedÚinnerDeferreds   &€€r7   Ú
onCallbackÚKDeferredAddTimeoutTests.test_successResultBeforeTimeout.<locals>.onCallback  ó   ø€ à!ˆKØ Ð r9   rò  )	r+   r    r®  r»   rX   ÚassertIsNotrg   r‡  rq  ©rl   ra  r�  r»  r¹  rº  s   &   @@r7   Útest_successResultBeforeTimeoutÚ7DeferredAddTimeoutTests.test_successResultBeforeTimeout  s‘   ù€ ô “ˆÜ#›:ˆØ	�‰�R˜Ôô )1«
ˆØ%)ˆ÷	!ñ 	!ð
 	
�‰�jÔ!Ø	�
‰
�9Ôð 	×Ñ˜˜{Ô+Ø×Ñ˜ iÔ0ð 	�‰�bÔØ×Ñ˜MÖ*r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª  )  s   € ÷  +ñ  +°tñ  +r9   c                ó^  aa€ \        4       p\        4       pVP                  ^
V\        R7       \        4       oRoR VV3R llpVP	                  V4       VP                  R4       V P                  RS4       V P                  SR4       VP                  ^4       V P                  S4       R# )zä
The L{Deferred} callbacks with the result if it succeeds before
the timeout, even if a custom C{onTimeoutCancel} function is provided.
No cancellation happens after the callback either, which could also
cancel inner deferreds.
©ÚonTimeoutCancelNc               ó    € V ^8„  d   QhRRRR/# r´  r5   )r6   s   "r7   r8   ÚSDeferredAddTimeoutTests.test_successResultBeforeTimeoutCustom.<locals>.__annotate__9  r¶  r9   c                ó   <€ V oS# rA   r5   r¸  s   &€€r7   r»  ÚQDeferredAddTimeoutTests.test_successResultBeforeTimeoutCustom.<locals>.onCallback9  r½  r9   rò  )
r+   r    r®  r¦  r»   rX   r¾  rg   r‡  rq  r¿  s   &   @@r7   Ú%test_successResultBeforeTimeoutCustomÚ=DeferredAddTimeoutTests.test_successResultBeforeTimeoutCustom)  s•   ù€ ô “ˆÜ#›:ˆØ	�‰�R˜´ˆÔ>ô )1«
ˆØ%)ˆ÷	!ñ 	!ð
 	
�‰�jÔ!Ø	�
‰
�9Ôð 	×Ñ˜˜{Ô+Ø×Ñ˜ iÔ0ð 	�‰�bÔØ×Ñ˜MÖ*r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª  K  s   € ÷ !+ñ !+¨4ñ !+r9   c                ó�  aa€ \        4       p\        4       pVP                  ^
V4       \        4       oRo\        R4      pR VV3R llpVP	                  V4       VP                  V4       Sf   Q hV P                  S\        4       V P                  SP                  V4       VP                  ^4       V P                  S4       R# )z¦
The L{Deferred} errbacks with the failure if it fails before the
timeout. No cancellation happens after the errback either, which
could also cancel inner deferreds.
Nrš  c               ó    € V ^8„  d   QhRRRR/# ©r2   r3   r/   r4   r˜  r5   )r6   s   "r7   r8   ÚGDeferredAddTimeoutTests.test_failureBeforeTimeout.<locals>.__annotate__[  ó   € ÷ 	!ñ 	!˜ð 	! ^ñ 	!r9   c                ó   <€ V oS# rA   r5   ©r3   Ú
dErrbackedrº  s   &€€r7   Ú	onErrbackÚDDeferredAddTimeoutTests.test_failureBeforeTimeout.<locals>.onErrback[  ó   ø€ àˆJØ Ð r9   )r+   r    r®  rÖ  re   rÝ   r¬  r/   r{   rk   r‡  rq  ©rl   ra  r�  r|   rÕ  rÔ  rº  s   &    @@r7   Útest_failureBeforeTimeoutÚ1DeferredAddTimeoutTests.test_failureBeforeTimeoutK  s«   ù€ ô “ˆÜ$›JˆØ	�‰�R˜Ôô )1«
ˆØ(,ˆ
Ü˜6Ó"ˆ÷	!ñ 	!ð
 	
�‰�YÔØ	�	‰	�%Ôð Ò%Ð%Ð%Ø×Ñ˜j¬'Ô2Ø�‰�j×&Ñ&¨Ô.ð 	�‰�bÔØ×Ñ˜MÖ*r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª  n  s   € ÷ "+ñ "+°ñ "+r9   c                óœ  aa€ \        4       p\        4       pVP                  ^
V\        R7       \        4       oRo\	        R4      pR VV3R llpVP                  V4       VP                  V4       Sf   Q hV P                  S\        4       V P                  SP                  V4       VP                  ^4       V P                  S4       R# )zÚ
The L{Deferred} errbacks with the failure if it fails before the
timeout, even if using a custom C{onTimeoutCancel} function.
No cancellation happens after the errback either, which could also
cancel inner deferreds.
rÄ  Nrš  c               ó    € V ^8„  d   QhRRRR/# rÏ  r5   )r6   s   "r7   r8   ÚMDeferredAddTimeoutTests.test_failureBeforeTimeoutCustom.<locals>.__annotate__  rÑ  r9   c                ó   <€ V oS# rA   r5   rÓ  s   &€€r7   rÕ  ÚJDeferredAddTimeoutTests.test_failureBeforeTimeoutCustom.<locals>.onErrback  r×  r9   )r+   r    r®  r¦  rÖ  re   rÝ   r¬  r/   r{   rk   r‡  rq  rØ  s   &    @@r7   Útest_failureBeforeTimeoutCustomÚ7DeferredAddTimeoutTests.test_failureBeforeTimeoutCustomn  s¯   ù€ ô “ˆÜ$›JˆØ	�‰�R˜´ˆÔ>ô )1«
ˆØ(,ˆ
Ü˜6Ó"ˆ÷	!ñ 	!ð
 	
�‰�YÔØ	�	‰	�%Ôð Ò%Ð%Ð%Ø×Ñ˜j¬'Ô2Ø�‰�j×&Ñ&¨Ô.ð 	�‰�bÔØ×Ñ˜MÖ*r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª  ’  s   € ÷ 4ñ 4˜tñ 4r9   c                óÖ   € \        4       p\        4       pVP                  ^
V4       V P                  V4       VP	                  ^4       V P                  V\        P                  4       R# )zt
The L{Deferred} by default errbacks with a L{defer.TimeoutError}
if it times out before callbacking or errbacking.
N)r+   r    r®  rq  r‡  rP  r   ro  ©rl   ra  r�  s   &  r7   Útest_timedOutÚ%DeferredAddTimeoutTests.test_timedOut’  sP   € ô
 “ˆÜ$›JˆØ	�‰�R˜ÔØ×Ñ˜AÔà�‰�bÔà×Ñ˜Q¤× 2Ñ 2Ö3r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª     s   € ÷ @ñ @ Tñ @r9   c                óä   € \        4       p\        4       pVP                  ^
V\        R7       V P	                  V4       VP                  ^4       V P                  RV P                  V4      4       R# )a  
If a custom C{onTimeoutCancel] function is provided, the
L{Deferred} returns the custom function's return value if the
L{Deferred} times out before callbacking or errbacking.
The custom C{onTimeoutCancel} function can return a result instead of
a failure.
rÄ  r¥  N©r+   r    r®  r¦  rq  r‡  rg   rY  rå  s   &  r7   Útest_timedOutCustomÚ+DeferredAddTimeoutTests.test_timedOutCustom   sY   € ô “ˆÜ$›JˆØ	�‰�R˜´ˆÔ>Ø×Ñ˜AÔà�‰�bÔà×Ñ˜ t×';Ñ';¸AÓ'>Ö?r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª  ±  s   € ÷ Fñ F°Dñ Fr9   c                óÜ   € \        4       p\        R 4      pVP                  ^
V4       V P                  V4       VP	                  ^4       V P                  V P                  V4      R4       R# )z·
If a cancellation function is provided when the L{Deferred} is
initialized, the L{Deferred} returns the cancellation value's
non-failure return value when the L{Deferred} times out.
c                ó$   € V P                  R 4      # )úI was cancelled!rW   rs  s   &r7   r?  ÚLDeferredAddTimeoutTests.test_timedOutProvidedCancelSuccess.<locals>.<lambda>¸  s   € ¨a¯j©jÐ9KÔ.Lr9   rð  N)r+   r    r®  rq  r‡  rg   rY  rå  s   &  r7   Ú"test_timedOutProvidedCancelSuccessÚ:DeferredAddTimeoutTests.test_timedOutProvidedCancelSuccess±  sZ   € ô “ˆÜ#Ñ$LÓMˆØ	�‰�R˜ÔØ×Ñ˜AÔà�‰�bÔà×Ñ˜×-Ñ-¨aÓ0Ð2DÖEr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª  À  s   € ÷ &ñ &°Dñ &r9   c                ó  a€ \        4       p\        R4      o\        V3R l4      pVP                  ^
V4       V P	                  V4       VP                  ^4       V P                  V\        4      pV P                  VP                  S4       R# )z»
If a cancellation function is provided when the L{Deferred} is
initialized, the L{Deferred} returns the cancellation value's
non-L{CanceledError} failure when the L{Deferred} times out.
úwhat!c                ó&   <€ V P                  S4      # rA   )rÝ   )rj  r|   s   &€r7   r?  ÚLDeferredAddTimeoutTests.test_timedOutProvidedCancelFailure.<locals>.<lambda>È  s   ø€ ¨q¯y©y¸Ô/?r9   N)	r+   rÖ  r    r®  rq  r‡  rP  r{   rk   )rl   ra  r�  r3   r|   s   &   @r7   Ú"test_timedOutProvidedCancelFailureÚ:DeferredAddTimeoutTests.test_timedOutProvidedCancelFailureÀ  sm   ø€ ô “ˆÜ˜7Ó#ˆÜ$Ô%?Ó@ˆØ	�‰�R˜ÔØ×Ñ˜AÔà�‰�bÔà× Ñ  ¤JÓ/ˆØ�‰�a—g‘g˜uÖ%r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª  Ñ  s   € ÷ !+ñ !+¨$ñ !+r9   c                ó”  aa€ \        4       p\        4       pVP                  ^
V4       \        4       oRoR VV3R llpVP                  V4       VP	                  4        Sf   Q hV P                  S\        4       V P                  SP                  \        P                  4       VP                  ^4       V P                  S4       R# )a  
If the L{Deferred} is manually cancelled before the timeout, it
is not re-cancelled (no L{AlreadyCancelled} error, and also no
canceling of inner deferreds), and the default C{onTimeoutCancel}
function is not called, preserving the original L{CancelledError}.
Nc               ó    € V ^8„  d   QhRRRR/# rÏ  r5   )r6   s   "r7   r8   ÚFDeferredAddTimeoutTests.test_cancelBeforeTimeout.<locals>.__annotate__á  rÑ  r9   c                ó   <€ V oS# rA   r5   ©r3   Ú	dCanceledrº  s   &€€r7   rÕ  ÚCDeferredAddTimeoutTests.test_cancelBeforeTimeout.<locals>.onErrbacká  ó   ø€ àˆIØ Ð r9   )r+   r    r®  re   rO  r¬  r/   r{   r"  r   r   r‡  rq  ©rl   ra  r�  rÕ  r  rº  s   &   @@r7   Útest_cancelBeforeTimeoutÚ0DeferredAddTimeoutTests.test_cancelBeforeTimeoutÑ  s¢   ù€ ô “ˆÜ$›JˆØ	�‰�R˜Ôô )1«
ˆØˆ	÷	!ñ 	!ð
 	
�‰�YÔØ	�‰Œ
ð Ò$Ð$Ð$Ø×Ñ˜i¬Ô1Ø�‰�i—n‘n¤e×&:Ñ&:Ô;ð 	�‰�bÔØ×Ñ˜MÖ*r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª  ô  s   € ÷ !+ñ !+°ñ !+r9   c                ó   aa€ \        4       p\        4       pVP                  ^
V\        R7       \        4       oRoR VV3R llpVP	                  V4       VP                  4        Sf   Q hV P                  S\        4       V P                  SP                  \        P                  4       VP                  ^4       V P                  S4       R# )a  
If the L{Deferred} is manually cancelled before the timeout, it
is not re-cancelled (no L{AlreadyCancelled} error, and also no
canceling of inner deferreds), and the custom C{onTimeoutCancel}
function is not called, preserving the original L{CancelledError}.
rÄ  Nc               ó    € V ^8„  d   QhRRRR/# rÏ  r5   )r6   s   "r7   r8   ÚLDeferredAddTimeoutTests.test_cancelBeforeTimeoutCustom.<locals>.__annotate__  rÑ  r9   c                ó   <€ V oS# rA   r5   r   s   &€€r7   rÕ  ÚIDeferredAddTimeoutTests.test_cancelBeforeTimeoutCustom.<locals>.onErrback  r  r9   )r+   r    r®  r¦  re   rO  r¬  r/   r{   r"  r   r   r‡  rq  r  s   &   @@r7   Útest_cancelBeforeTimeoutCustomÚ6DeferredAddTimeoutTests.test_cancelBeforeTimeoutCustomô  s¦   ù€ ô “ˆÜ$›JˆØ	�‰�R˜´ˆÔ>ô )1«
ˆØˆ	÷	!ñ 	!ð
 	
�‰�YÔØ	�‰Œ
ð Ò$Ð$Ð$Ø×Ñ˜i¬Ô1Ø�‰�i—n‘n¤e×&:Ñ&:Ô;ð 	�‰�bÔØ×Ñ˜MÖ*r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª    s   € ÷ @ñ @¸dñ @r9   c                óè   € \        4       p\        R 4      pVP                  ^
V\        R7       V P	                  V4       VP                  ^4       V P                  RV P                  V4      4       R# )z]
A custom translation function can handle a L{Deferred} with a
custom cancellation function.
c                ó6   € V P                  \        R 4      4      # )rö  )rÝ   rÖ  rs  s   &r7   r?  ÚVDeferredAddTimeoutTests.test_providedCancelCalledBeforeTimeoutCustom.<locals>.<lambda>  s   € ¨q¯y©y¼ÀGÓ9LÔ/Mr9   rÄ  r¥  Nrê  rå  s   &  r7   Ú,test_providedCancelCalledBeforeTimeoutCustomÚDDeferredAddTimeoutTests.test_providedCancelCalledBeforeTimeoutCustom  s]   € ô
 “ˆÜ$Ñ%MÓNˆØ	�‰�R˜´ˆÔ>Ø×Ñ˜AÔà�‰�bÔà×Ñ˜ t×';Ñ';¸AÓ'>Ö?r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª  %  s   € ÷ 4ñ 4°ñ 4r9   c                óz  a€ \        4       p\        4       pRoR V3R llpVP                  V4       VP                  ^
V4       VP	                  ^4       Sf   Q hV P                  S\        4       V P                  SP                  \        P                  4       V P                  V\        P                  4       R# )zì
An errback added before a timeout is added errbacks with a
L{defer.CancelledError} when the timeout fires.  If the
errback returns the L{defer.CancelledError}, it is translated
to a L{defer.TimeoutError} by the timeout implementation.
Nc               ó    € V ^8„  d   QhRRRR/# ©r2   r3   r/   r4   r5   )r6   s   "r7   r8   ÚLDeferredAddTimeoutTests.test_errbackAddedBeforeTimeout.<locals>.__annotate__1  ó   € ÷ 	ñ 	�wð 	 7ñ 	r9   c                ó   <€ V oV # rA   r5   ©r3   rÔ  s   &€r7   rÝ   ÚGDeferredAddTimeoutTests.test_errbackAddedBeforeTimeout.<locals>.errback1  ó   ø€ àˆJØˆHr9   )r+   r    re   r®  r‡  r¬  r/   rk   r   r   rP  ro  ©rl   ra  r�  rÝ   rÔ  s   &   @r7   Útest_errbackAddedBeforeTimeoutÚ6DeferredAddTimeoutTests.test_errbackAddedBeforeTimeout%  s˜   ø€ ô “ˆÜ$›Jˆàˆ
÷	ð 	ð
 	
�‰�WÔØ	�‰�R˜Ôà�‰�bÔàÒ%Ð%Ð%Ø×Ñ˜j¬'Ô2Ø×Ñ˜j×.Ñ.´×0DÑ0DÔEà×Ñ˜Q¤× 2Ñ 2Ö3r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª  A  s   € ÷  ñ  Àdñ  r9   c                ó\  a€ \        4       p\        4       pRoR V3R llpVP                  V4       VP                  ^
V4       VP	                  ^4       Sf   Q hV P                  S\        4       V P                  SP                  \        P                  4       V P                  V4       R# )zÉ
An errback added before a timeout is added errbacks with a
L{defer.CancelledError} when the timeout fires.  If the
errback suppresses the L{defer.CancelledError}, the deferred
successfully completes.
Nc               ó    € V ^8„  d   QhRRRR/# r  r5   )r6   s   "r7   r8   ÚbDeferredAddTimeoutTests.test_errbackAddedBeforeTimeoutSuppressesCancellation.<locals>.__annotate__M  s   € ÷ 	)ñ 	)�wð 	) 4ñ 	)r9   c                óJ   <€ V oV P                  \        P                  4       R # rA   )r{  r   r   r  s   &€r7   rÝ   Ú]DeferredAddTimeoutTests.test_errbackAddedBeforeTimeoutSuppressesCancellation.<locals>.errbackM  s   ø€ àˆJØ�F‰F”5×'Ñ'Ö(r9   )r+   r    re   r®  r‡  r¬  r/   rk   r   r   rY  r  s   &   @r7   Ú4test_errbackAddedBeforeTimeoutSuppressesCancellationÚLDeferredAddTimeoutTests.test_errbackAddedBeforeTimeoutSuppressesCancellationA  s�   ø€ ô “ˆÜ$›Jˆàˆ
÷	)ð 	)ð
 	
�‰�WÔØ	�‰�R˜Ôà�‰�bÔàÒ%Ð%Ð%Ø×Ñ˜j¬'Ô2Ø×Ñ˜j×.Ñ.´×0DÑ0DÔEà×Ñ˜QÖr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª  ]  s   € ÷ @ñ @°dñ @r9   c                ó†  a€ \        4       p\        4       pRoR V3R llpVP                  V4       VP                  ^
V\        4       VP                  ^4       Sf   Q hV P                  S\        4       V P                  SP                  \        P                  4       V P                  RV P                  V4      4       R# )zÚ
An errback added before a timeout is added with a custom
timeout function errbacks with a L{defer.CancelledError} when
the timeout fires.  The timeout function runs if the errback
returns the L{defer.CancelledError}.
Nc               ó    € V ^8„  d   QhRRRR/# r  r5   )r6   s   "r7   r8   ÚRDeferredAddTimeoutTests.test_errbackAddedBeforeTimeoutCustom.<locals>.__annotate__i  r  r9   c                ó   <€ V oV # rA   r5   r  s   &€r7   rÝ   ÚMDeferredAddTimeoutTests.test_errbackAddedBeforeTimeoutCustom.<locals>.errbacki  r  r9   r¥  ©r+   r    re   r®  r¦  r‡  r¬  r/   rk   r   r   rg   rY  r  s   &   @r7   Ú$test_errbackAddedBeforeTimeoutCustomÚ<DeferredAddTimeoutTests.test_errbackAddedBeforeTimeoutCustom]  sŸ   ø€ ô “ˆÜ$›Jˆàˆ
÷	ð 	ð
 	
�‰�WÔØ	�‰�R˜¤Ô.à�‰�bÔàÒ%Ð%Ð%Ø×Ñ˜j¬'Ô2Ø×Ñ˜j×.Ñ.´×0DÑ0DÔEà×Ñ˜ t×';Ñ';¸AÓ'>Ö?r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª  y  s   € ÷ @ñ @ÈDñ @r9   c                ó†  a€ \        4       p\        4       pRoR V3R llpVP                  V4       VP                  ^
V\        4       VP                  ^4       Sf   Q hV P                  S\        4       V P                  SP                  \        P                  4       V P                  RV P                  V4      4       R# )zÝ
An errback added before a timeout is added with a custom
timeout function errbacks with a L{defer.CancelledError} when
the timeout fires.  The timeout function runs if the errback
suppresses the L{defer.CancelledError}.
Nc               ó    € V ^8„  d   QhRRRR/# r  r5   )r6   s   "r7   r8   ÚhDeferredAddTimeoutTests.test_errbackAddedBeforeTimeoutSuppressesCancellationCustom.<locals>.__annotate__…  s   € ÷ 	ñ 	�wð 	 4ñ 	r9   c                ó   <€ V oR # rA   r5   r  s   &€r7   rÝ   ÚcDeferredAddTimeoutTests.test_errbackAddedBeforeTimeoutSuppressesCancellationCustom.<locals>.errback…  s   ø€ àŠJr9   r¥  r0  r  s   &   @r7   Ú:test_errbackAddedBeforeTimeoutSuppressesCancellationCustomÚRDeferredAddTimeoutTests.test_errbackAddedBeforeTimeoutSuppressesCancellationCustomy  sŸ   ø€ ô “ˆÜ$›Jˆàˆ
÷	ð 	ð 	
�‰�WÔØ	�‰�R˜¤Ô.à�‰�bÔàÒ%Ð%Ð%Ø×Ñ˜j¬'Ô2Ø×Ñ˜j×.Ñ.´×0DÑ0DÔEà×Ñ˜ t×';Ñ';¸AÓ'>Ö?r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª  ”  s   € ÷ 8ñ 8¸4ñ 8r9   c                ó$  aa€ \        4       pRo\        V3R l4      pRoR V3R llpVP                  V4       VP                  ^
V4       VP	                  ^4       V P                  SS4       V P                  SV P                  V4      4       R# )zú
Given a deferred with a cancellation function that resumes the
callback chain, a callback that is added to the deferred
before a timeout is added to runs when the timeout fires.  The
deferred completes successfully, without a
L{defer.TimeoutError}.
r‹  c                ó&   <€ V P                  S4      # rA   rW   ©r�  r‹  s   &€r7   r?  ÚSDeferredAddTimeoutTests.test_callbackAddedToCancelerBeforeTimeout.<locals>.<lambda>ž  ó   ø€ ¨a¯j©j¸Ô.Ar9   Nc               ó    € V ^8„  d   QhRRRR/# ©r2   rk   rã   r4   r5   )r6   s   "r7   r8   ÚWDeferredAddTimeoutTests.test_callbackAddedToCancelerBeforeTimeout.<locals>.__annotate__¢  ó   € ÷ 	ñ 	˜Cð 	 Cñ 	r9   c                ó   <€ V oV # rA   r5   ©rk   r¹  s   &€r7   rX   ÚSDeferredAddTimeoutTests.test_callbackAddedToCancelerBeforeTimeout.<locals>.callback¢  ó   ø€ àˆKØˆLr9   )r+   r    r»   r®  r‡  rg   r{   rY  ©rl   ra  r�  rX   r¹  r‹  s   &   @@r7   Ú)test_callbackAddedToCancelerBeforeTimeoutÚADeferredAddTimeoutTests.test_callbackAddedToCancelerBeforeTimeout”  s|   ù€ ô “ˆØˆÜ#Ô$AÓBˆàˆ÷	ð 	ð
 	
�‰�hÔØ	�‰�R˜Ôà�‰�bÔà×Ñ˜ gÔ.à�‰�g˜t×3Ñ3°AÓ6Ö7r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rª  °  s   € ÷ @ñ @Àñ @r9   c                ó0  aa€ \        4       pRo\        V3R l4      pRoR V3R llpVP                  V4       VP                  ^
V\        R7       VP                  ^4       V P                  SS4       V P                  RV P                  V4      4       R# )a,  
Given a deferred with a cancellation function that resumes the
callback chain, a callback that is added to the deferred
before a timeout is added to runs when the timeout fires.  The
deferred completes successfully, without a
L{defer.TimeoutError}.  The timeout's custom timeout function
also runs.
r‹  c                ó&   <€ V P                  S4      # rA   rW   r>  s   &€r7   r?  ÚYDeferredAddTimeoutTests.test_callbackAddedToCancelerBeforeTimeoutCustom.<locals>.<lambda>»  r@  r9   Nc               ó    € V ^8„  d   QhRRRR/# rB  r5   )r6   s   "r7   r8   Ú]DeferredAddTimeoutTests.test_callbackAddedToCancelerBeforeTimeoutCustom.<locals>.__annotate__¿  rD  r9   c                ó   <€ V oV # rA   r5   rF  s   &€r7   rX   ÚYDeferredAddTimeoutTests.test_callbackAddedToCancelerBeforeTimeoutCustom.<locals>.callback¿  rH  r9   rÄ  r¥  )r+   r    r»   r®  r¦  r‡  rg   rY  rI  s   &   @@r7   Ú/test_callbackAddedToCancelerBeforeTimeoutCustomÚGDeferredAddTimeoutTests.test_callbackAddedToCancelerBeforeTimeoutCustom°  s‚   ù€ ô “ˆØˆÜ#Ô$AÓBˆàˆ÷	ð 	ð
 	
�‰�hÔØ	�‰�R˜´ˆÔ>à�‰�bÔà×Ñ˜ gÔ.à×Ñ˜ t×';Ñ';¸AÓ'>Ö?r9   r5   N)rL   rM   rN   rO   rq   r¯  rÀ  rÊ  rÙ  rá  ræ  rë  rò  rù  r  r  r  r   r(  r1  r9  rJ  rT  rP   r5   r9   r7   r¨  r¨  ø  ss   † ñõ	:õ+õB +õD!+õF"+õH4õ@õ"Fõ&õ"!+õF!+õF@õ4õ8 õ8@õ8@õ68÷8@ñ @r9   r¨  c                  óJ   € ] tR tRtRtR R ltR R ltR R ltR	 R
 ltRt	R# )ÚEnsureDeferredTestsiÎ  z
Tests for L{ensureDeferred}.
c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   Ú EnsureDeferredTests.__annotate__Ó  s   € ÷ ñ ¨Tñ r9   c                óR   € \        4       p\        V4      pV P                  W4       R# )z;
L{ensureDeferred} will pass through a Deferred unchanged.
N)r    r)   r{   r¼  s   &  r7   Útest_passesThroughDeferredsÚ/EnsureDeferredTests.test_passesThroughDeferredsÓ  s!   € ô &›ZˆÜ˜BÓˆØ�‰�bÖr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rY  Û  s   € ÷ (ñ (¸ñ (r9   c                ó¤   € V P                  \        P                  4      ;_uu_ 4        \        R4       RRR4       R#   + '       g   i     R# ; i)zZ
Passing L{ensureDeferred} a non-coroutine and a non-Deferred will
raise a L{ValueError}.
Ú	somethingN)rø  r   rù  r)   r    s   &r7   Ú'test_willNotAllowNonDeferredOrCoroutineÚ;EnsureDeferredTests.test_willNotAllowNonDeferredOrCoroutineÛ  s2   € ð
 ×Ñœu×7Ñ7×8Õ8Ü˜;Ô'÷ 9×8×8Ò8ús	   ¨>¾A	c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rY  ã  ó   € ÷ %ñ %¨dñ %r9   c                ó  € R R lpV! 4       pV P                  V\        P                  4       \        V4      p\	        V\
        \        ,          4       V P                  V\
        4       V P                  V4      pV P                  VR4       R# )z=
L{ensureDeferred} will turn a coroutine into a L{Deferred}.
c               ó   € V ^8„  d   QhRR/# )r2   r4   rã   r5   )r6   s   "r7   r8   ÚFEnsureDeferredTests.test_ensureDeferredCoroutine.<locals>.__annotate__è  s   € ÷ 	ñ 	˜3ñ 	r9   c               “  óR   "  € \         P                  ! R 4      p V G Rj  x€L
 pV#  L5i©rj  Nrð  ©r�  rÒ  s     r7   rù  Ú=EnsureDeferredTests.test_ensureDeferredCoroutine.<locals>.runè  s$   é € Ü—’˜eÓ$ˆAØ—'ˆCØˆJñ ùó   ‚'ž%Ÿ'rj  N)	r¬  ÚtypesÚCoroutineTyper)   r   r    rã   rY  rg   ©rl   rù  r¸  r�  rÒ  s   &    r7   Útest_ensureDeferredCoroutineÚ0EnsureDeferredTests.test_ensureDeferredCoroutineã  ór   € õ
	ñ ‹EˆØ×Ñ˜a¤×!4Ñ!4Ô5ô ˜1ÓˆÜ�A”x¤•}Ô%Ø×Ñ˜a¤Ô*ð ×"Ñ" 1Ó%ˆØ×Ñ˜˜eÖ$r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rY  ú  rc  r9   c                ó  € R R lpV! 4       pV P                  V\        P                  4       \        V4      p\	        V\
        \        ,          4       V P                  V\
        4       V P                  V4      pV P                  VR4       R# )zH
L{ensureDeferred} will turn a yield-from coroutine into a L{Deferred}.
c               ó   € V ^8„  d   QhRR/# )r2   r4   z#Generator[Deferred[str], None, str]r5   )r6   s   "r7   r8   ÚFEnsureDeferredTests.test_ensureDeferredGenerator.<locals>.__annotate__ÿ  s   € ÷ 	ñ 	Ð8ñ 	r9   c               3  óR   "  € \         P                  ! R 4      p T  Rj  x€L
 pV#  L5irh  rð  ri  s     r7   rù  Ú=EnsureDeferredTests.test_ensureDeferredGenerator.<locals>.runÿ  s$   é € Ü—’˜eÓ$ˆAØ—,ˆCØˆJñ ùrk  rj  N)	r¬  rl  ÚGeneratorTyper)   r   r    rã   rY  rg   rn  s   &    r7   Útest_ensureDeferredGeneratorÚ0EnsureDeferredTests.test_ensureDeferredGeneratorú  rq  r9   r5   N)
rL   rM   rN   rO   rq   r[  r`  ro  ry  rP   r5   r9   r7   rW  rW  Î  s    † ñõõ(õ%÷.%ñ %r9   rW  c                  ó&   € ] tR tRtRtR R ltRtR# )ÚTimeoutErrorTestsi  z)
L{twisted.internet.defer} timeout code.
c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   ÚTimeoutErrorTests.__annotate__  s   € ÷ 
ñ 
¨ñ 
r9   c                ó|  € \        4       p\        P                  ! V4       V P                  V\        P                  4       V P                  V P                  .4      pV P                  \        V4      ^4       V P                  V^ ,          R,          \        4       V P                  V^ ,          R,          R4       R# )z2
L{twisted.internet.defer.timeout} is deprecated.
rÐ   rÑ   z~twisted.internet.defer.timeout was deprecated in Twisted 17.1.0; please use twisted.internet.defer.Deferred.addTimeout insteadN)r    r   rh  rn  ro  rÓ   Útest_deprecatedTimeoutrg   rh   r{   rÔ   )rl   rR   ÚwarningsShowns   &  r7   r€  Ú(TimeoutErrorTests.test_deprecatedTimeout  s•   € ô &.£ZˆÜ�Š�hÔØ×Ñ˜8¤U×%7Ñ%7Ô8Ø×*Ñ*¨D×,GÑ,GÐ+HÓIˆØ×Ñœ˜]Ó+¨QÔ/Ø�‰�m AÕ& zÕ2Ô4FÔGØ×ÑØ˜!Õ˜YÕ'ðMö	
r9   r5   N)rL   rM   rN   rO   rq   r€  rP   r5   r9   r7   r|  r|    s   † ñ÷
ñ 
r9   r|  c               ó    € V ^8„  d   QhRRRR/# )r2   Úloopr   r4   rT   r5   )r6   s   "r7   r8   r8   (  s   € ÷ 	ñ 	Ð,ð 	°ñ 	r9   c                ó\   € V P                  V P                  4       V P                  4        R# )zæ
Tickle an asyncio event loop to call all of the things scheduled with
call_soon, inasmuch as this can be done via the public API.

@param loop: The asyncio event loop to flush the previously-called
    C{call_soon} entries from.
N)Ú	call_soonÚstopÚrun_forever©r„  s   &r7   ÚcallAllSoonCallsrŠ  (  s    € ð 	‡N�N�4—9‘9ÔØ×ÑÖr9   c                  óv   € ] tR tRtR R ltR R ltR R ltR R	 ltR
 R ltR R lt	R R lt
R R ltRtR# )ÚDeferredFutureAdapterTestsi4  c               ó   € V ^8„  d   QhRR/# )r2   r4   r   r5   )r6   s   "r7   r8   Ú'DeferredFutureAdapterTests.__annotate__5  s   € ÷ ñ Ð*ñ r9   c                óP   € \        4       pV P                  VP                  4       V# )zE
Create a new event loop that will be closed at the end of the test.
)Ú_new_event_loopr�   Úcloserß  s   & r7   ÚnewLoopÚ"DeferredFutureAdapterTests.newLoop5  s!   € ô !Ó"ˆØ�‰˜Ÿ™Ô%Øˆr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rŽ  =  s   € ÷ /ñ /˜tñ /r9   c                óV  € \        4       pV P                  4       pVP                  V4      pV P                  VP	                  4       R4       VP                  ^4       \        V4       V P                  V P                  V4      R4       V P                  VP                  4       ^4       R# )z_
L{Deferred.asFuture} returns a L{asyncio.Future} which fires when
the given L{Deferred} does.
FN)	r    r’  ÚasFuturerg   rX  rX   rŠ  rY  r}   )rl   r�  r„  ÚaFutures   &   r7   Útest_asFutureÚ(DeferredFutureAdapterTests.test_asFuture=  s   € ô
 $›:ˆØ�|‰|‹~ˆØ—*‘*˜TÓ"ˆØ×Ñ˜Ÿ™›¨Ô/Ø	�
‰
�2ŒÜ˜ÔØ×Ñ˜×-Ñ-¨aÓ0°$Ô7Ø×Ñ˜Ÿ™Ó)¨2Ö.r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rŽ  K  s   € ÷ :ñ :¨4ñ :r9   c                óP  a€ RoR V3R llp\        V4      pV P                  4       pVP                  V4      pVP                  4        \	        V4       V P                  S4       V P                  V P                  V4      R4       V P                  \        VP                  4       R# )zo
L{Deferred.asFuture} returns a L{asyncio.Future} which, when
cancelled, will cancel the original L{Deferred}.
Fc               ó    € V ^8„  d   QhRRRR/# ©r2   Údprimery  r4   rT   r5   )r6   s   "r7   r8   ÚJDeferredFutureAdapterTests.test_asFutureCancelFuture.<locals>.__annotate__S  s   € ÷ 	ñ 	Ð-ð 	°$ñ 	r9   c                ó   <€ R oR# rt  r5   )rž  rÖ  s   &€r7   ÚcancelerÚFDeferredFutureAdapterTests.test_asFutureCancelFuture.<locals>.cancelerS  s   ø€ àŠFr9   N)r    r’  r–  rO  rŠ  ri   rg   rY  rø  r   r}   )rl   r¡  r�  r„  r—  rÖ  s   &    @r7   Útest_asFutureCancelFutureÚ4DeferredFutureAdapterTests.test_asFutureCancelFutureK  s†   ø€ ð ˆ÷	ð 	ô % XÓ.ˆØ�|‰|‹~ˆØ—*‘*˜TÓ"ˆØ�‰ÔÜ˜ÔØ�‰˜ÔØ×Ñ˜×-Ñ-¨aÓ0°$Ô7Ø×Ñœ.¨'¯.©.Ö9r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rŽ  `  s   € ÷ :ñ :¨Dñ :r9   c                ó"  € R R lp\        V4      pV P                  4       pVP                  V4      pVP                  4        \	        V4       V P                  V P                  V4      R4       V P                  \        VP                  4       R# )z²
While Futures don't support succeeding in response to cancellation,
Deferreds do; if a Deferred is coerced into a success by a Future
cancellation, that should just be ignored.
c               ó    € V ^8„  d   QhRRRR/# r�  r5   )r6   s   "r7   r8   ÚKDeferredFutureAdapterTests.test_asFutureSuccessCancel.<locals>.__annotate__g  s   € ÷ 	ñ 	Ð-ð 	°$ñ 	r9   c                ó(   € V P                  ^	4       R# )é	   NrW   )rž  s   &r7   r¡  ÚGDeferredFutureAdapterTests.test_asFutureSuccessCancel.<locals>.cancelerg  s   € Ø�O‰O˜AÖr9   N)
r    r’  r–  rO  rŠ  rg   rY  rø  r   r}   )rl   r¡  r�  r„  r—  s   &    r7   Útest_asFutureSuccessCancelÚ5DeferredFutureAdapterTests.test_asFutureSuccessCancel`  sm   € õ	ô % XÓ.ˆØ�|‰|‹~ˆØ—*‘*˜TÓ"ˆØ�‰ÔÜ˜ÔØ×Ñ˜×-Ñ-¨aÓ0°$Ô7Ø×Ñœ.¨'¯.©.Ö9r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rŽ  r  s   € ÷ <ñ < dñ <r9   c                ó  € \        4       p\        \        4       4      pV P                  4       pVP	                  V4      p\        V4       VP                  V4       \        V4       V P                  \        VP                  4       R# )zh
L{Deferred.asFuture} makes a L{asyncio.Future} fire with an
exception when the given L{Deferred} does.
N)	r    r/   r«  r’  r–  rŠ  rÝ   rø  r}   )rl   r�  Ú
theFailurer„  Úfutures   &    r7   Útest_asFutureFailureÚ/DeferredFutureAdapterTests.test_asFutureFailurer  sc   € ô
 %›JˆÜÔ.Ó0Ó1ˆ
Ø�|‰|‹~ˆØ—‘˜DÓ!ˆÜ˜ÔØ	�	‰	�*ÔÜ˜ÔØ×ÑÔ+¨V¯]©]Ö;r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rŽ  €  s   € ÷ 5ñ 5 ñ 5r9   c                ó  € V P                  4       p\        VR7      p\        P                  ! V4      pV P	                  V4       VP                  ^4       \        V4       V P                  V P                  V4      ^4       R# )z`
L{Deferred.fromFuture} returns a L{Deferred} that fires
when the given L{asyncio.Future} does.
r‰  N)	r’  r   r    Ú
fromFuturerq  Ú
set_resultrŠ  rg   rY  )rl   r„  r—  r�  s   &   r7   Útest_fromFutureÚ*DeferredFutureAdapterTests.test_fromFuture€  sh   € ð
 �|‰|‹~ˆÜ%¨4Ô0ˆÜ×Ò Ó(ˆØ×Ñ˜AÔØ×Ñ˜1ÔÜ˜ÔØ×Ñ˜×-Ñ-¨aÓ0°!Ö4r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rŽ  �  s   € ÷ 5ñ 5°ñ 5r9   c                ó(  € V P                  4       p\        VR7      p\        P                  ! V4      pVP	                  4        \        V4       V P                  \        VP                  4       V P                  V4      P                  \        4       R# )z‚
L{Deferred.fromFuture} makes a L{Deferred} fire with
an L{asyncio.CancelledError} when the given
L{asyncio.Future} is cancelled.
r‰  N)r’  r   r    r¶  rO  rŠ  rø  r   r}   rP  r{  ©rl   r„  Ú	cancelledr�  s   &   r7   Útest_fromFutureFutureCancelledÚ9DeferredFutureAdapterTests.test_fromFutureFutureCancelled�  sl   € ð �|‰|‹~ˆÜ"(¨dÔ"3ˆ	Ü×Ò 	Ó*ˆØ×ÑÔÜ˜ÔØ×Ñœ.¨)×*:Ñ*:Ô;Ø×Ñ˜QÓ×$Ñ$¤^Ö4r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rŽ  ›  s   € ÷ 5ñ 5°$ñ 5r9   c                óh  € V P                  4       p\        VR7      p\        P                  ! V4      pVP	                  4        \        V4       V P                  VP                  4       R4       V P                  \        VP                  4       V P                  V4      P                  \        4       R# )zv
L{Deferred.fromFuture} makes a L{Deferred} which, when
cancelled, cancels the L{asyncio.Future} it was created from.
r‰  TN)r’  r   r    r¶  rO  rŠ  rg   r½  rø  r   r}   rP  r{  r¼  s   &   r7   Ú test_fromFutureDeferredCancelledÚ;DeferredFutureAdapterTests.test_fromFutureDeferredCancelled›  s‚   € ð
 �|‰|‹~ˆÜ"(¨dÔ"3ˆ	Ü×Ò 	Ó*ˆØ	�‰Œ
Ü˜ÔØ×Ñ˜×,Ñ,Ó.°Ô5Ø×Ñœ.¨)×*:Ñ*:Ô;Ø×Ñ˜QÓ×$Ñ$¤^Ö4r9   r5   N)rL   rM   rN   rO   r’  r˜  r£  r¬  r²  r¸  r¾  rÂ  rP   r5   r9   r7   rŒ  rŒ  4  s/   † õõ/õ:õ*:õ$<õ5õ5÷5ñ 5r9   rŒ  c                  ó|   € ] tR tRtR R ltR R lt]R R l4       t]R R	 l4       t]R
 R l4       t	R R lt
RtR# )ÚCoroutineContextVarsTestsiª  c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   Ú&CoroutineContextVarsTests.__annotate__«  s   € ÷ O8ñ O8¨$ñ O8r9   c                ó  a aaaaa€ \        4       o\        P                  ! R4      oSP                  ^4       \	        4       oSP                  V3R l4       \	        4       oSP                  V3R l4       SP                  R 4       \        P                  R VV3R ll4       o\        S\        . \        R,          3,          4       \        P                  R VVVV VV3R	 ll4       p\        V\        . \        \        R
,          ,          3,          4       SP                  ^4       V! 4       pSP                  ^4       SP                  ^4       SP                  ^4       S P                  S P                  V4      R
4       R# )z�
When an inlineCallbacks function is called, the context is taken from
when it was first called. When it resumes, the same context is applied.
Útestvarc                ó&   <€ SP                  ^4      # ©rÔ  ©Úset©r¨  Úvars   &€r7   r?  ÚDCoroutineContextVarsTests.test_withInlineCallbacks.<locals>.<lambda>·  ó   ø€ ¨s¯w©w°q¬zr9   c                ó&   <€ SP                  ^4      # ©é   rÌ  rÎ  s   &€r7   r?  rÐ  º  ó   ø€ ¸¿¹À¼
r9   c                ó   € ^^ ,          # r¦  r5   r§  s   &r7   r?  rÐ  »  ó   € ¸¸A¾r9   c               ó   € V ^8„  d   QhRR/# ©r2   r4   z#Generator[Deferred[Any], Any, None]r5   )r6   s   "r7   r8   ÚHCoroutineContextVarsTests.test_withInlineCallbacks.<locals>.__annotate__¾  s   € ÷ 	ñ 	Ð"Eñ 	r9   c               3  óˆ   <"  € \        4       p SP                  ^V P                  R4       V x € SP                  ^4       R# 5i©rÏ   TN©r    rz  rX   rÍ  ©r�  ra  rÏ  s    €€r7   ÚyieldingDeferredÚLCoroutineContextVarsTests.test_withInlineCallbacks.<locals>.yieldingDeferred½  s1   øé € ä'›zˆAØ�O‰O˜A˜qŸz™z¨4Ô0ØŠGØ�G‰G�AŽJùs   ƒ?ANc               ó   € V ^8„  d   QhRR/# )r2   r4   z,Generator[Deferred[Any], Any, Literal[True]]r5   )r6   s   "r7   r8   rÚ  È  s   € ÷ "	ñ "	ÐJñ "	r9   c               3  óP  <"  € SP                  SP                  4       ^4       \        P                  ! ^4      x € SP                  SP                  4       ^4       S P	                  ^SP
                  R4       Sx € SP                  SP                  4       ^4       S P	                  ^SP
                  R4        Sx € \        R4      h  \         d$    SP                  SP                  4       ^4        Mi ; iS! 4       x € SP                  SP                  4       ^4       R# 5i)r2   Tú???? should have failed©rg   r?  r   rŒ  rz  rX   rm  )ra  ÚmutatingDeferredÚmutatingDeferredThatFailsrl   rÏ  rß  s   €€€€€€r7   ÚtestFunctionÚHCoroutineContextVarsTests.test_withInlineCallbacks.<locals>.testFunctionÇ  sû   øé € ð ×Ñ˜SŸW™W›Y¨Ô*ô —-’- Ó"Ò"ð ×Ñ˜SŸW™W›Y¨Ô*ð �O‰O˜AÐ/×8Ñ8¸$Ô?Ø"Ò"ð ×Ñ˜SŸW™W›Y¨Ô*ð �O‰O˜AÐ8×AÑAÀ4ÔHð;Ø/Ò/ô  Ð 9Ó:Ð:øô ô /Ø× Ñ  §¡£¨AÖ.ð/úñ #Ó$Ò$Ø×Ñ˜SŸW™W›Y¨Ô*áùs*   ƒB7D&Â;C
 Â?D&Ã
+C8Ã5D&Ã7C8Ã8.D&T)r+   ÚcontextvarsÚ
ContextVarrÍ  r    r»   r   ÚinlineCallbacksr   r   r   r‡  rg   rY  )rl   rç  r�  ra  rå  ræ  rÏ  rß  s   f  @@@@@r7   Útest_withInlineCallbacksÚ2CoroutineContextVarsTests.test_withInlineCallbacks«  s3  ý€ ô
 “ˆä+6×+AÒ+AÀ)Ó+LˆØ�‰�Œ
ô ,4«:ÐØ×$Ñ$Ô%9Ô:ä3;³:Ð!Ø!×-Ñ-Ô.BÔCØ!×-Ñ-©oÔ>ä	×	Ñ	÷	ð 	ó 
ð	ô 	Ð$¤h¨r´8¸Dµ>Ð/AÕ&BÔCô 
×	Ñ	÷"	ô "	ó 
ð"	ôH 	�L¤(¨2¬x¼À½Õ/FÐ+FÕ"GÔHà�‰�Œ
Ù‹Nˆð 	�‰�aÔð 	�‰�aÔð 	�‰�aÔà×Ñ˜×-Ñ-¨aÓ0°$Ö7r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÇ  ü  s   € ÷  ñ  ¨tñ  r9   c                óü   a aa€ \        4       o\        P                  ! R4      o\        P                  R VV V3R ll4       pSP                  ^4       V! 4       pSP                  ^4       S P                  V4       R# )z|
When an inlineCallbacks function resumes, we should be able to reset() a
contextvar that was set when it was first called.
rÉ  c               ó   € V ^8„  d   QhRR/# rÙ  r5   )r6   s   "r7   r8   ÚMCoroutineContextVarsTests.test_resetWithInlineCallbacks.<locals>.__annotate__  s   € ÷ 	+ñ 	+Ð"Eñ 	+r9   c               3  ó*  <"  € SP                  ^4      p \        4       pSP                  ^VP                  R4       Vx € SP	                  SP                  4       ^4       SP                  V 4       SP	                  SP                  4       ^4       R# 5i)rÔ  TN)rÍ  r    rz  rX   rg   r?  Úreset)Útokenr�  ra  rl   rÏ  s     €€€r7   rß  ÚQCoroutineContextVarsTests.test_resetWithInlineCallbacks.<locals>.yieldingDeferred  so   øé € ð —G‘G˜A“JˆEô  (›zˆAØ�O‰O˜A˜qŸz™z¨4Ô0ØŠGØ×Ñ˜SŸW™W›Y¨Ô*à�I‰I�eÔà×Ñ˜SŸW™W›Y¨Ö*ùs   ƒBBN)r+   ré  rê  r   rë  rÍ  r‡  rY  )rl   rß  r�  ra  rÏ  s   f  @@r7   Útest_resetWithInlineCallbacksÚ7CoroutineContextVarsTests.test_resetWithInlineCallbacksü  sj   ú€ ô
 “ˆä+6×+AÒ+AÀ)Ó+Lˆä	×	Ñ	÷	+ñ 	+ó 
ð	+ð 	�‰�Œ
ÙÓˆð 	�‰�aÔØ×Ñ˜QÖr9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÇ    s   € ÷ &ñ &¨$ñ &r9   c              ƒ  ó  a"  € \        4       oRpS;_uu_4       GRj  x€L
  V P                  SP                  4       SP                  4       pVP	                  V3R l4       V P                  SP                  4       V P                  VP                  4       RRR4      GRj  x€L
  V P                  VP                  4       VG Rj  x€L
  V P                  SP                  4       R#  LÌ LH  + GRj  x€L 
 '       g   i     L_; i LA5i)zA
L{DeferredLock} can be used as an asynchronous context manager.
Nc                ó$   <€ SP                  4       # rA   ©rø  )r¨  rú  s   &€r7   r?  Ú>CoroutineContextVarsTests.test_asyncWithLock.<locals>.<lambda>&  s   ø€  D§L¡L¤Nr9   )r#   ri   r÷  rö  r»   rZ  rÖ  )rl   r�  rú  s   & @r7   Útest_asyncWithLockÚ,CoroutineContextVarsTests.test_asyncWithLock  s¨   øé € ô
 ‹~ˆØˆß—4’4Ø�O‰O˜DŸK™KÔ(Ø—‘“ˆAØ�M‰MÔ2Ô3Ø�O‰O˜DŸK™KÔ(Ø×Ñ˜QŸX™XÔ&÷ —4ð 	�‰˜Ÿ™Ô!Ø�ˆØ×Ñ˜Ÿ™Ö%÷ —4—4”4úñ 	ùsW   ƒDžC+ŸD¢A7C/ÂDÂ$C-Â%$DÃ	DÃ
"DÃ-DÃ/D	Ã5C8Ã6
D	ÄD	Ä	Dc               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÇ  .  s   € ÷ (ñ (¨tñ (r9   c           
   ƒ  óì  a"  € \        ^4      oS;_uu_4       GRj  x€L
  V P                  SP                  ^4       S;_uu_4       GRj  x€L
  V P                  SP                  ^4       SP                  4       pSP                  4       pV P                  SP                  ^ 4       V P	                  VP
                  4       V P                  VP
                  4       RRR4      GRj  x€L
  V P                  SP                  ^ 4       V P	                  XP
                  4       XP                  V3R l4       VP                  V3R l4       VG Rj  x€L
  VG Rj  x€L
  V P                  SP                  ^4       RRR4      GRj  x€L
  V P                  SP                  ^4       R#  EL‘ ELe LÉ  + GRj  x€L 
 '       g   i     Là; i L| Lt LJ  + GRj  x€L 
 '       g   i     La; i5i)zF
L{DeferredSemaphore} can be used as an asynchronous context
manager.
Nc                ó$   <€ SP                  4       # rA   rû  ©r¨  r&  s   &€r7   r?  ÚCCoroutineContextVarsTests.test_asyncWithSemaphore.<locals>.<lambda>@  ó   ø€  S§[¡[¤]r9   c                ó$   <€ SP                  4       # rA   rû  r  s   &€r7   r?  r  A  r  r9   )r%   rg   Útokensrö  ri   rÖ  rZ  r»   )rl   r.  rC  r&  s   &  @r7   Útest_asyncWithSemaphoreÚ1CoroutineContextVarsTests.test_asyncWithSemaphore-  s<  øé € ô   Ó"ˆç—3’3Ø×Ñ˜SŸZ™Z¨Ô+ß—s’sØ× Ñ  §¡¨QÔ/Ø—[‘[“]�Ø—[‘[“]�Ø× Ñ  §¡¨QÔ/Ø—‘ §	¡	Ô*Ø× Ñ  §¡Ô+÷ —sð ×Ñ˜SŸZ™Z¨Ô+Ø�O‰O˜BŸI™IÔ&Ø�N‰NÔ2Ô3Ø�N‰NÔ2Ô3Ø�HˆHØ�HˆHØ×Ñ˜SŸZ™Z¨Ô+÷ —3ð  	×Ñ˜Ÿ™ QÖ'ò! ç—s—s•súñ Ù÷ —3—3’3üs¸   ƒG4�F.žG4¡+GÁF1ÁGÁBF6	ÃGÃ*F4Ã+A*GÅGÅ	GÅGÅ  GÆ G4ÆGÆ#G4Æ1GÆ4GÆ6GÆ<F?Æ=
GÇGÇ
	GÇGÇG4ÇG1	ÇG!Ç
G1	Ç*G1	Ç,G4c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÇ  H  s   € ÷ 
&ñ 
&°4ñ 
&r9   c           
   ƒ  ó~  "  € \        4       pV P                  \        R4      ;_uu_ 4        T;_uu_4       GRj  x€L
  V P                  VP                  4       \        R4      h L*  + GRj  x€L 
 '       g   i     M; i RRR4       M  + '       g   i     M; iT P                  TP                  4       R# 5i)z_
C{DeferredLock} correctly propagates exceptions when
used as an asynchronous context manager.
zsome specific exceptionN)r#   ÚassertRaisesRegexrm  ri   r÷  rZ  r�  s   & r7   Útest_asyncWithLockExceptionÚ5CoroutineContextVarsTests.test_asyncWithLockExceptionG  sw   é € ô ‹~ˆØ×#Ñ#¤IÐ/H×IÕIß—t’tØ—‘ §¡Ô,ÜÐ 9Ó:Ð:÷ —t—t’tú�t÷ J×I×IÐIúð 	×Ñ˜Ÿ™Ö%ùsO   ‚)B=«BºA%»B¾'A'	Á%BÁ'B Á-A0Á.
B Á9B Á;BÂ	B=ÂB	Â%B=c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   rÇ  T  s   € ÷ I8ñ I8°ñ I8r9   c                ó.  a aaaaa€ \        4       o\        P                  ! R4      oSP                  ^4       \	        4       oSP                  V3R l4       \	        4       oSP                  V3R l4       SP                  R 4       R VV3R lloR VVVVV V3R llpSP                  ^4       \        V! 4       4      pSP                  ^4       SP                  ^4       SP                  ^4       S P                  S P                  V4      R	4       R
# )z
When a coroutine is called, the context is taken from when it was first
called. When it resumes, the same context is applied.
rÉ  c                ó&   <€ SP                  ^4      # rË  rÌ  rÎ  s   &€r7   r?  ÚJCoroutineContextVarsTests.test_contextvarsWithAsyncAwait.<locals>.<lambda>`  rÑ  r9   c                ó&   <€ SP                  ^4      # rÓ  rÌ  rÎ  s   &€r7   r?  r  c  rÕ  r9   c                ó   € ^^ ,          # r¦  r5   r§  s   &r7   r?  r  d  r×  r9   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   ÚNCoroutineContextVarsTests.test_contextvarsWithAsyncAwait.<locals>.__annotate__f  s   € ÷ 	ñ 	°ñ 	r9   c               “  ó˜   <"  € \        4       p SP                  ^V P                  R4       V G Rj  x€L
  SP                  ^4       R#  L5irÜ  rÝ  rÞ  s    €€r7   ÚasyncFuncAwaitingDeferredÚ[CoroutineContextVarsTests.test_contextvarsWithAsyncAwait.<locals>.asyncFuncAwaitingDeferredf  s8   øé € Ü (£
ˆAØ�O‰O˜A˜qŸz™z¨4Ô0Ø�GˆGØ�G‰G�AŽJñ ùs   ƒ-A
°A±A
c               ó   € V ^8„  d   QhRR/# )r2   r4   r  r5   )r6   s   "r7   r8   r  m  s   € ÷ !	ñ !	 Dñ !	r9   c               “  óŽ  <"  € SP                  SP                  4       ^4       \        P                  ! ^4      G Rj  x€L
  SP                  SP                  4       ^4       SP	                  ^ SP
                  R4       SG Rj  x€L
  SP                  SP                  4       ^4       SP	                  ^SP
                  R4        SG Rj  x€L
  \        R4      h Lž LY L  \         d$    SP                  SP                  4       ^4        Mi ; iS ! 4       G Rj  x€L 
  SP                  SP                  4       ^4       R# 5i)r2   NTrã  rä  )r  ra  rå  ræ  rl   rÏ  s   €€€€€€r7   rç  ÚNCoroutineContextVarsTests.test_contextvarsWithAsyncAwait.<locals>.testFunctionm  s  øé € à×Ñ˜SŸW™W›Y¨Ô*ô —-’- Ó"×"Ð"ð ×Ñ˜SŸW™W›Y¨Ô*ð �O‰O˜AÐ/×8Ñ8¸$Ô?Ø"×"Ð"ð ×Ñ˜SŸW™W›Y¨Ô*ð �O‰O˜AÐ8×AÑAÀ4ÔHð;Ø/×/Ð/ô  Ð 9Ó:Ð:ñ) #ñ #ñ 0øÜô /Ø× Ñ  §¡£¨AÖ.ð/úñ ,Ó-×-Ñ-Ø×Ñ˜SŸW™W›Y¨Ô*áùse   ƒ:E½C¾AEÂCÂAEÃC" ÃC ÃC" ÃEÃEÃ C" Ã"+DÄEÄDÄEÄD Ä'ETN)
r+   ré  rê  rÍ  r    r»   r)   r‡  rg   rY  )rl   rç  r�  r  ra  rå  ræ  rÏ  s   f  @@@@@r7   Útest_contextvarsWithAsyncAwaitÚ8CoroutineContextVarsTests.test_contextvarsWithAsyncAwaitT  sØ   ý€ ô
 “ˆä+6×+AÒ+AÀ)Ó+LˆØ�‰�Œ
ô ,4«:ÐØ×$Ñ$Ô%9Ô:ä4<³JÐ!Ø!×-Ñ-Ô.BÔCØ!×-Ñ-©oÔ>÷	ñ 	÷!	õ !	ðH 	�‰�Œ
Ü™<›>Ó*ˆð 	�‰�aÔð 	�‰�aÔð 	�‰�aÔà×Ñ˜×-Ñ-¨aÓ0°$Ö7r9   r5   N)rL   rM   rN   rO   rì  rö  rH   rý  r  r  r  rP   r5   r9   r7   rÅ  rÅ  ª  sW   † õO8õb ð@ ô&ó ð&ð  ô(ó ð(ð2 ô
&ó ð
&÷I8ñ I8r9   rÅ  c                  óZ   € ] tR tRtR R lt]P                  ! ]R4      R R l4       tRt	R# )	ÚInlineCallbackTestsi   c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   Ú InlineCallbackTests.__annotate__¡  rð  r9   c                ó¤   € R ^RV P                   R\        .pV F2  pV P                  \        P                  \        P
                  V4       K4  	  R# )rò  c                ó   € V # rA   r5   r  s   &r7   r?  ÚIInlineCallbackTests.test_fromCoroutineRequiresCoroutine.<locals>.<lambda>¨  rõ  r9   TNrö  rú  s   &  r7   r÷  Ú7InlineCallbackTests.test_fromCoroutineRequiresCoroutine¡  rþ  r9   rÿ  c               ó   € V ^8„  d   QhRR/# ru   r5   )r6   s   "r7   r8   r!  ¹  s   € ÷ *ñ *°4ñ *r9   c                óR  € \        4       p\        P                  ! V4      pR R lp\        P                  ! V! V4      4      pV P                  WP                  V4      4       \        P                  ! V4      p??V P                  V! 4       4       V P                  V! 4       4       R# )z¢
Tests that there is no circular dependency when using
L{Deferred.fromCoroutine}, so that the machinery gets cleaned up
immediately rather than waiting for a GC.
c               ó    € V ^8„  d   QhRRRR/# )r2   r¥  r   r4   r5   )r6   s   "r7   r8   ÚKInlineCallbackTests.test_coroutineNoCircularReference.<locals>.__annotate__Ä  s   € ÷ 	ñ 	˜#ð 	 #ñ 	r9   c              “  ó   "  € V # 5irA   r5   )r¥  s   &r7   r®  ÚCInlineCallbackTests.test_coroutineNoCircularReference.<locals>.funcÄ  s
   é € ØˆHùrI  N)rÍ  r  r  r    rB   rg   rY  r¼   )rl   ÚobjÚ
objWeakRefr®  ÚfuncDÚfuncDWeakRefs   &     r7   Ú!test_coroutineNoCircularReferenceÚ5InlineCallbackTests.test_coroutineNoCircularReference¸  s…   € ô ›ˆÜ—[’[ Ó%ˆ
õ	ô ×&Ò&¡t¨C£yÓ1ˆØ×Ñ˜×2Ñ2°5Ó9Ô:ä—{’{ 5Ó)ˆð Øð 	×Ñ™*›,Ô'Ø×Ñ™,›.Ö)r9   r5   N)
rL   rM   rN   rO   r÷  r  r   r-   r0  rP   r5   r9   r7   r  r     s(   † õWð. ‡]‚]�5Ð9Ó:ô*ó ;ô*r9   r  )brq   Ú
__future__r   ré  rF   r  rk  rš  rl  r0   r  rÖ   r  Úasyncior   r   r   r   r�  Útypingr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   Úhamcrestr   r   r   Ú
hypothesisr   Úhypothesis.strategiesr   r   Útwisted.internetr   r   Útwisted.internet.deferr   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   Útwisted.internet.taskr+   Útwisted.pythonr,   Útwisted.python.compatr-   Útwisted.python.failurer/   Útwisted.trialrH   rm  rJ   rZ   r[   r^   rd   rs   ÚSynchronousTestCaser–   r  r3  r5  rX  rp  ræ  rf  rÄ  rÙ  r\  r¦  r¨  rW  r|  rŠ  rŒ  rÅ  r  r5   r9   r7   Ú<module>r@     s!  ðñõ #ã Û Û 	Û 	Û Û Û Û Û ÷ó ÷÷ ÷ ÷ ó ÷& 2Ñ 1Ý Ý *Ý ç +÷÷ ÷ ó õ (Ý Ý 'Ý *Ý "õô	�9ô 	õ)ñ �m¨9Ô5€÷4ñ 4ô,*M�×!Ñ!ô *MôZU9�H×0Ñ0Ð2Gô U9÷p4ñ õô&~7�×,Ñ,ô ~7ôB;$�h×2Ñ2ô ;$ô|L$˜×5Ñ5ô L$ô^GI˜X×9Ñ9ô GIôTc3ˆx×+Ñ+ô c3ôLE˜X×9Ñ9ô Eô"A'˜8×7Ñ7Ð9Nô A'ôHz= (×"3Ñ"3ô z=õzôS@˜h×:Ñ:ô S@ôlA%˜(×+Ñ+ô A%ôH
˜×)Ñ)Ð+@ô 
õ,	ôs5 ×!2Ñ!2ô s5ôls8 × 1Ñ 1ô s8ôl3*˜(×6Ñ6ö 3*r9   