+
    -IëjÀ?  ã                   ó<  € ^ RI t ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHtHtHtHt ^ RIHtHt  ^ RIt]e   ^ RIHtH t H!t! R t"]PF                  ! ]RJ R4       ! R R]PH                  4      4       t% ! R R]4      t& ! R R]4      t' ! R R]4      t(]PF                  ! ]RJ R4       ! R R]4      4       t) ! R R]4      t*]PF                  ! ]RJ R4       ! R R]4      4       t+ ! R R]4      t,]PF                  ! ]RJ R4       ! R R ]4      4       t-]PF                  ! ]RJ R4       ! R! R"]P\                  4      4       t/]PF                  ! ]RJ R4       ! R# R$]4      4       t0R#   ] d    Rt EL<i ; i)%é    N)Úmd5)Úmock)Úgen)Úutf8)Úapp_log)Ússl_options_to_context)Úhttpclient_test)ÚskipNotCPython)ÚAsyncHTTPSTestCaseÚAsyncHTTPTestCaseÚAsyncTestCaseÚ	ExpectLog)ÚApplicationÚRequestHandler)ÚCurlAsyncHTTPClientÚ	CurlErrorÚ_CurlStreamingBufferc            
      ó4   € \        RR RR\        RR7      /V B # )Úforce_instanceTÚdefaultsF©Ú
allow_ipv6© ©r   Údict)Úkwargss   ,ÚC/usr/lib/python3/dist-packages/tornado/test/curl_httpclient_test.pyÚcreate_clientr   $   s,   € Üñ ØðÜ&*°eÔ&<ðØ@Fñð ó    zpycurl module not presentc                   ó~   a € ] tR t^*t o ]RJ;'       d    R]P
                  9   tR tR tR t	]
R 4       tR tRtV tR# )	ÚCurlHTTPClientCommonTestCaseNÚbrotlic                óp   € \        \        R R7      R7      pV P                  \        V\         4      4       V# )Fr   )r   )r   r   Ú
assertTrueÚ
isinstance)ÚselfÚclients   & r   Úget_http_clientÚ,CurlHTTPClientCommonTestCase.get_http_client1   s*   € Ü$¬d¸eÔ.DÔEˆà�‰œ
 6Ô+>Ó?Ô@Øˆr   c                óv  € . p\         P                  P                  \        R R4      ;_uu_ 4        V P	                  RVP
                  R7      pRRR4       V P                  XP                  ^È4       V P                  RP                  V4      \        P                  ! 4       4       R#   + '       g   i     Lb; i)Úmax_buffer_sizeé   ú/large_body©Ústreaming_callbackNr   )r   ÚpatchÚobjectr   ÚfetchÚappendÚassertEqualÚcodeÚjoinr	   Ú
large_body)r&   ÚchunksÚresponses   &  r   Útest_streaming_pause_and_resumeÚ<CurlHTTPClientCommonTestCase.test_streaming_pause_and_resume7   s€   € ð
 !ˆÜ�Z‰Z×ÑÔ3Ð5FÈ×MÕMØ—z‘z -ÀFÇMÁM�zÓRˆH÷ Nà×Ñ˜Ÿ™¨Ô,Ø×Ñ˜Ÿ™ &Ó)¬?×+EÒ+EÓ+GÖH÷ N×Mús   °B(Â(B8	c                ó  a aa€ \        ^R7      o\        ^4       Uu. uF  p\        4       NK  	  upo \        P                  P                  \        RR4      ;_uu_ 4        S P                  P                  VVV 3R l4       RRR4       SP                  4        S F1  pS P                  \        V4      \        P                  ! 4       4       K3  	  R# u upi   + '       g   i     L^; i  SP                  4        i ; i)é   )Úmax_clientsr+   r,   c            
      ó®   <€ \         P                  ! S U u. uF/  p SP                  SP                  R 4      V P                  R7      NK1  	  up 4      # u up i )r-   r.   )r   Úmultir2   Úget_urlÚextend)ÚbufÚbuffersr'   r&   s    €€€r   Ú<lambda>ÚMCurlHTTPClientCommonTestCase.test_concurrent_paused_streams.<locals>.<lambda>J   sU   ø€ œCŸIšIñ (/óñ
 (/ ð	 #ŸL™LØ $§¡¨]Ó ;Ø36·:±:ð )ö ñ (/ñôùòs   –5AN)r   ÚrangeÚ	bytearrayr   r0   r1   r   Úio_loopÚrun_syncÚcloser4   Úbytesr	   r7   )r&   Ú_rC   rD   r'   s   f  @@r   Útest_concurrent_paused_streamsÚ;CurlHTTPClientCommonTestCase.test_concurrent_paused_streamsB   s°   ú€ ô ¨1Ô-ˆÜ(-¨a¬Ó1© 1”9–;©Ñ1ˆð	Ü—‘×"Ñ"Ô#7Ð9JÈD×QÕQØ—‘×%Ñ%öô
÷ Rð �L‰LŒNÛˆCØ×ÑœU 3›Z¬×)CÒ)CÓ)EÖFó ùò! 2çQ×Qûð �L‰L�Nús(   �C´-C, Á!"CÂC, ÃC)	Ã$C, Ã,C>c                óx   a € V 3R  lpV! 4       p\         P                  ! 4        S P                  V! 4       4       R# )c                  óæ   <a € \        4       o SP                  P                  V V3R  l4       SP                  P                  V V3R l4       S P                  4        \        P
                  ! S 4      # )c                  óD   <€ S P                  SP                  R 4      4      # )z/hello©r2   rA   ©r'   r&   s   €€r   rE   ÚxCurlHTTPClientCommonTestCase.test_client_not_leaked_by_write_callbacks.<locals>.use_and_close_a_client.<locals>.<lambda>a   s   ø€ ¨&¯,©,°t·|±|ÀHÓ7MÔ*Nr   c                  óJ   <€ S P                  SP                  R 4      R R7      # )r-   c                 ó   € R # ©Nr   )Úchunks   &r   rE   ÚŠCurlHTTPClientCommonTestCase.test_client_not_leaked_by_write_callbacks.<locals>.use_and_close_a_client.<locals>.<lambda>.<locals>.<lambda>e   s   € ±Tr   r.   rS   rT   s   €€r   rE   rU   c   s"   ø€ ˜Ÿ™Ø—L‘L Ó/Ù'9ð %ô r   )r   rI   rJ   rK   ÚweakrefÚrefrT   s   @€r   Úuse_and_close_a_clientÚfCurlHTTPClientCommonTestCase.test_client_not_leaked_by_write_callbacks.<locals>.use_and_close_a_client_   sN   ù€ Ü"“_ˆFØ�L‰L×!Ñ!Õ"NÔOØ�L‰L×!Ñ!õôð �L‰LŒNÜ—;’;˜vÓ&Ð&r   N)ÚgcÚcollectÚassertIsNone)r&   r]   r\   s   f  r   Ú)test_client_not_leaked_by_write_callbacksÚFCurlHTTPClientCommonTestCase.test_client_not_leaked_by_write_callbacksY   s+   ø€ õ
	'ñ %Ó&ˆÜ
�
Š
ŒØ×Ñ™#›%Ö r   c           	     óØ  a€ . oV3R  lp\         P                  P                  \        RR4      ;_uu_ 4        \	        \
        R4      ;_uu_ 4        V P                  RVR7      pRRR4       RRR4       V P                  XP                  ^È4       V P                  RP                  S4      \        P                  ! 4       4       R#   + '       g   i     Lj; i  + '       g   i     Lu; i)c                 ó^   <€ SP                  V 4       \        S4      ^8X  d   \        4       hR# )é   N)r3   ÚlenÚZeroDivisionError)rY   r8   s   &€r   r/   ÚZCurlHTTPClientCommonTestCase.test_streaming_callback_exception.<locals>.streaming_callbackt   s)   ø€ Ø�M‰M˜%Ô Ü�6‹{˜aÔÜ'Ó)Ð)ñ  r   r+   r,   zException in callbackr-   r.   Nr   )r   r0   r1   r   r   r   r2   r4   r5   r6   r	   r7   )r&   r/   r9   r8   s   &  @r   Ú!test_streaming_callback_exceptionÚ>CurlHTTPClientCommonTestCase.test_streaming_callback_exceptiono   s©   ø€ ð !ˆõ	*ô
 �Z‰Z×ÑÔ3Ð5FÈ×MÕMÜœ7Ð$;×<Õ<ØŸ:™:Ø!Ð6Hð &ó �÷ =÷ Nð
 	×Ñ˜Ÿ™¨Ô,Ø×Ñ˜Ÿ™ &Ó)¬?×+EÒ+EÓ+GÖH÷ =×<ú÷ N×Mús#   ·CÁC	Á$CÃCÃCÃC)	r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚpycurlÚversionÚdecompresses_brotlir(   r:   rN   r
   rb   rj   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r!   r!   *   sT   ø‡ € ð
 !¨Ð,×KÐK°¸V¿^¹^Ñ1KÐòò	IòGð. ñ!ó ð!÷*Ið Ir   r!   c                   ó,   a € ] tR t^‚t o R tR tRtV tR# )ÚDigestAuthHandlerc                ó   € Wn         W n        R # rX   )ÚusernameÚpassword)r&   rz   r{   s   &&&r   Ú
initializeÚDigestAuthHandler.initializeƒ   s   € Ø ŒØ Žr   c           
     ón  € R pRpRpV P                   P                  P                  RR4      pVEe×   VP                  R^4      w  rVVR8X  g   Q h/ pVP                  R4       FJ  pVP	                  4       P                  R^4      w  ršV
^ ,          R	8X  d   V
R,          R	8X  d   V
^R p
W§V	&   KL  	  VR
,          V8X  g   Q hVR,          V8X  g   Q hVR,          V8X  g   Q hVR,          V P
                  8X  g   Q hVR,          V P                   P                  8X  g   Q h\        \        V P
                   RV RV P                   24      4      P                  4       p\        \        V P                   P                   RV P                   P                   24      4      P                  4       p\        \        V RV RV 24      4      P                  4       pW×R,          8X  d   V P                  R4       R# V P                  R4       R# V P                  R4       V P                  RRV RV RV R	24       R# )ÚtestÚasdfÚ1234ÚAuthorizationNÚ ÚDigestÚ,Ú=Ú"ÚrealmÚopaqueÚnoncerz   ÚuriÚ:r9   ÚokÚfaili‘  zWWW-AuthenticatezDigest realm="z
", nonce="z", opaque="éÿÿÿÿ)ÚrequestÚheadersÚgetÚsplitÚstriprz   Úpathr   r   r{   Ú	hexdigestÚmethodÚwriteÚ
set_statusÚ
set_header)r&   rˆ   r‰   rŠ   Úauth_headerÚ	auth_modeÚparamsÚ
param_dictÚpairÚkÚvÚh1Úh2Údigests   &             r   r’   ÚDigestAuthHandler.get‡   s  € ØˆØˆàˆà—l‘l×*Ñ*×.Ñ.¨ÀÓEˆØÓ"Ø +× 1Ñ 1°#°qÓ 9ÑˆIØ Ô(Ð(Ð(ØˆJØŸ™ SÖ)�Ø—z‘z“|×)Ñ)¨#¨qÓ1‘�Ø�Q•4˜3”; 1 R¥5¨C¤<Ø˜!˜B˜�AØ !˜1“ñ	 *ð
 ˜gÕ&¨%Ô/Ð/Ð/Ø˜hÕ'¨6Ô1Ð1Ð1Ø˜gÕ&¨%Ô/Ð/Ð/Ø˜jÕ)¨T¯]©]Ô:Ð:Ð:Ø˜eÕ$¨¯©×(9Ñ(9Ô9Ð9Ð9Ü”T˜TŸ]™]˜O¨1¨U¨G°1°T·]±]°OÐDÓEÓF×PÑPÓRˆBÜ”T˜TŸ\™\×0Ñ0Ð1°°4·<±<×3DÑ3DÐ2EÐFÓGÓH×RÑRÓTˆBÜœ   A e W¨A¨b¨TÐ2Ó3Ó4×>Ñ>Ó@ˆFØ JÕ/Ô/Ø—
‘
˜4Ö à—
‘
˜6Ö"à�O‰O˜CÔ Ø�O‰OØ"Ø    z°%°¸ÀFÀ8È1ÐMör   )r{   rz   N)rl   rm   rn   ro   r|   r’   rs   rt   ru   s   @r   rx   rx   ‚   s   ø‡ € ò!÷!ð !r   rx   c                   ó&   a € ] tR t^«t o R tRtV tR# )ÚCustomReasonHandlerc                ó*   € V P                  ^ÈR4       R# )éÈ   úCustom reasonN©r™   ©r&   s   &r   r’   ÚCustomReasonHandler.get¬   ó   € Ø�‰˜˜_Ö-r   r   N©rl   rm   rn   ro   r’   rs   rt   ru   s   @r   r§   r§   «   ó   ø‡ € ÷.ð .r   r§   c                   ó&   a € ] tR t^°t o R tRtV tR# )ÚCustomFailReasonHandlerc                ó*   € V P                  R R4       R# )i�  rª   Nr«   r¬   s   &r   r’   ÚCustomFailReasonHandler.get±   r®   r   r   Nr¯   ru   s   @r   r²   r²   °   r°   r   r²   c                   óP   a a€ ] tR t^µt oV 3R ltR tR tR tR tR t	Rt
VtV ;t# )ÚCurlHTTPClientTestCasec                óB   <€ \         SV `  4        \        4       V n        R # rX   )ÚsuperÚsetUpr   Úhttp_client)r&   Ú	__class__s   &€r   r¹   ÚCurlHTTPClientTestCase.setUp·   s   ø€ Ü‰‰ŒÜ(›?ˆÖr   c           	     ód   € \        R \        RRRR/3R\        RRRR/3R\        3R\        3.4      # )	ú/digestrz   Úfoor{   Úbarú/digest_non_asciiõ   barãƒ¦Â£ú/custom_reasonú/custom_fail_reason)r   rx   r§   r²   r¬   s   &r   Úget_appÚCurlHTTPClientTestCase.get_app»   sS   € ÜàÔ-°
¸EÀ:ÈuÐ/UÐVà'Ü%Ø ¨
°JÐ?ðð
 "Ô#6Ð7Ø&Ô(?Ð@ð	ó
ð 	
r   c                óh   € V P                  R RRRR7      pV P                  VP                  R4       R# )r¾   r¤   r¿   rÀ   ©rœ   Úauth_usernameÚauth_passwordó   okN©r2   r4   Úbody©r&   r9   s   & r   Útest_digest_authÚ'CurlHTTPClientTestCase.test_digest_authÉ   s4   € Ø—:‘:Ø ¸Èeð ó 
ˆð 	×Ñ˜Ÿ™¨Ö.r   c                ó`   € V P                  R 4      pV P                  VP                  R4       R# )rÃ   rª   N)r2   r4   ÚreasonrÎ   s   & r   Útest_custom_reasonÚ)CurlHTTPClientTestCase.test_custom_reasonÏ   s%   € Ø—:‘:Ð.Ó/ˆØ×Ñ˜Ÿ™¨/Ö:r   c                ór   € V P                  R 4      pV P                  \        VP                  4      R4       R# )rÄ   zHTTP 400: Custom reasonN)r2   r4   ÚstrÚerrorrÎ   s   & r   Útest_fail_custom_reasonÚ.CurlHTTPClientTestCase.test_fail_custom_reasonÓ   s+   € Ø—:‘:Ð3Ó4ˆØ×Ñœ˜XŸ^™^Ó,Ð.GÖHr   c                óh   € V P                  R RRRR7      pV P                  VP                  R4       R# )rÁ   r¤   r¿   rÂ   rÈ   rË   NrÌ   rÎ   s   & r   Útest_digest_auth_non_asciiÚ1CurlHTTPClientTestCase.test_digest_auth_non_ascii×   s7   € Ø—:‘:ØØØØ$ð	 ó 
ˆð 	×Ñ˜Ÿ™¨Ö.r   )rº   )rl   rm   rn   ro   r¹   rÅ   rÏ   rÓ   rØ   rÛ   rs   rt   Ú__classcell__©r»   rv   s   @@r   r¶   r¶   µ   s)   ù‡ € õ+ò
ò/ò;òI÷/ò /r   r¶   c                   ó&   a € ] tR t^át o R tRtV tR# )ÚProxyAuthEchoHandlerc                óÚ   € V P                   P                  P                  R R4      e2   V P                  RV P                   P                  R ,           24       R# V P                  R4       R# )zProxy-AuthorizationNzproxy auth: zno proxy auth)r�   r‘   r’   r˜   r¬   s   &r   r’   ÚProxyAuthEchoHandler.getâ   sP   € Ø�<‰<×Ñ×#Ñ#Ð$9¸4Ó@ÒLØ�J‰J˜ d§l¡l×&:Ñ&:Ð;PÕ&QÐ%RÐSÖTà�J‰J�Ö'r   r   Nr¯   ru   s   @r   rà   rà   á   s   ø‡ € ÷(ð (r   rà   c                   ó2   a € ] tR t^ét o R tR tR tRtV tR# )Ú$CurlHTTPClientReuseProxyAuthTestCasec                ó&   € \        R \        3.4      # )z.*/proxy_auth)r   rà   r¬   s   &r   rÅ   Ú,CurlHTTPClientReuseProxyAuthTestCase.get_appë   s   € ô ˜_Ô.BÐCÐDÓEÐEr   c                ó2   € \        R \        RR7      ^R7      # )TFr   ©r   r   r>   r   r¬   s   &r   r(   Ú4CurlHTTPClientReuseProxyAuthTestCase.get_http_clientð   s$   € ô #ØÜØ ôð ô
ð 	
r   c                ó  € V P                  R RV P                  4       RRR7      pV P                  VP                  R4       V P                  R RV P                  4       R7      pV P                  VP                  R4       R# )	z/proxy_authz	127.0.0.1r¿   rÀ   )Ú
proxy_hostÚ
proxy_portÚproxy_usernameÚproxy_passwords   proxy auth: Basic Zm9vOmJhcg==)rë   rì   s   no proxy authN)r2   Úget_http_portr4   rÍ   rÎ   s   & r   Útest_reuse_proxy_credentialsÚACurlHTTPClientReuseProxyAuthTestCase.test_reuse_proxy_credentialsû   s‚   € ð —:‘:ØØ"Ø×)Ñ)Ó+Ø Ø ð ó 
ˆð 	×Ñ˜Ÿ™Ð(IÔJØ—:‘:ØØ"Ø×)Ñ)Ó+ð ó 
ˆð
 	×Ñ˜Ÿ™Ð(8Ö9r   r   N)	rl   rm   rn   ro   rÅ   r(   rð   rs   rt   ru   s   @r   rä   rä   é   s   ø‡ € òFò
	
÷:ð :r   rä   c                   ó&   a € ] tR tRt o R tRtV tR# )ÚClientCertEchoHandleri  c                óÎ   € V P                   P                  4       pVe6   \        V\        4      '       g   Q hV P	                  RVR,           24       R # V P	                  R4       R # )Nzclient cert: Úsubjectzno client cert)r�   Úget_ssl_certificater%   r   r˜   )r&   Úcerts   & r   r’   ÚClientCertEchoHandler.get  sR   € Ø�|‰|×/Ñ/Ó1ˆØÒÜ˜d¤D×)Ò)Ð)Ð)Ø�J‰J˜ t¨I¥Ð&7Ð8Ö9à�J‰JÐ'Ö(r   r   Nr¯   ru   s   @r   ró   ró     s   ø‡ € ÷)ð )r   ró   c                   óJ   a a€ ] tR tRt oR tR tR tV 3R ltR tRt	Vt
V ;t# )Ú CurlHTTPClientReuseCertsTestCasei  c                ó&   € \        R \        3.4      # )z.*/client_cert)r   ró   r¬   s   &r   rÅ   Ú(CurlHTTPClientReuseCertsTestCase.get_app  s   € ÜÐ-Ô/DÐEÐFÓGÐGr   c                ó4   € \        R \        RRR7      ^R7      # )TF)r   Úvalidate_certrè   r   r¬   s   &r   r(   Ú0CurlHTTPClientReuseCertsTestCase.get_http_client  s%   € Ü"ØÜØ Ø#ôð ô
ð 	
r   c                óz   € \        V P                  4       R R7      p\        P                  Vn        \        VR7      # )T)Úserver_side)Ússl_options)r   Úget_ssl_optionsÚsslÚCERT_OPTIONALÚverify_moder   )r&   Ússl_ctxs   & r   Úget_httpserver_optionsÚ7CurlHTTPClientReuseCertsTestCase.get_httpserver_options'  s0   € Ü(¨×)=Ñ)=Ó)?ÈTÔRˆÜ!×/Ñ/ˆÔÜ Ô(Ð(r   c                ó¬   <€ \         SV `  4       p\        P                  P	                  \        P                  P                  \        4      R 4      VR&   V# )útest.crtÚca_certs)r¸   r  Úosr•   r6   ÚdirnameÚ__file__)r&   Úoptsr»   s   & €r   r  Ú0CurlHTTPClientReuseCertsTestCase.get_ssl_options,  s;   ø€ Ü‰wÑ&Ó(ˆÜŸ7™7Ÿ<™<¬¯©¯©¼Ó(AÀ:ÓNˆˆZÑØˆr   c           	     óø  € V P                  V P                  R 4      \        P                  P	                  \        P                  P                  \        4      R4      \        P                  P	                  \        P                  P                  \        4      R4      R7      pV P                  VP                  R4       V P                  V P                  R 4      4      pV P                  VP                  R4       R# )z/client_certr  ztest.key)Úclient_certÚ
client_keys4   client cert: ((('commonName', 'foo.example.com'),),)s   no client certN)	r2   rA   r  r•   r6   r  r  r4   rÍ   rÎ   s   & r   Útest_reuse_certsÚ1CurlHTTPClientReuseCertsTestCase.test_reuse_certs1  s©   € ð —:‘:Ø�L‰L˜Ó(ÜŸ™Ÿ™¤R§W¡W§_¡_´XÓ%>À
ÓKÜ—w‘w—|‘|¤B§G¡G§O¡O´HÓ$=¸zÓJð ó 
ˆð
 	×ÑØ�M‰MÐRô	
ð —:‘:˜dŸl™l¨>Ó:Ó;ˆØ×Ñ˜Ÿ™Ð(9Ö:r   r   )rl   rm   rn   ro   rÅ   r(   r  r  r  rs   rt   rÝ   rÞ   s   @@r   rú   rú     s$   ù‡ € òHò
ò)õ
÷
;ò ;r   rú   c                   ó2   a € ] tR tRt o R tR tR tRtV tR# )Ú!CurlHTTPClientMaxBodySizeTestCasei@  c                ó8   € \        \        P                  ^R7      # )rf   )Úmax_body_sizer>   )r   r	   ÚMAX_BODY_SIZEr¬   s   &r   r(   Ú1CurlHTTPClientMaxBodySizeTestCase.get_http_clientD  s   € ô ¬?×+HÑ+HÐVWÔXÐXr   c                óè   € V P                  \        4      ;_uu_ 4       pV P                  R RR7       RRR4       V P                  R\	        XP
                  4      4       R#   + '       g   i     L7; i)z/bombT)Úraise_errorNr  )ÚassertRaisesr   r2   ÚassertInrÖ   Ú	exception)r&   Úcms   & r   Útest_refusal_messageÚ6CurlHTTPClientMaxBodySizeTestCase.test_refusal_messageI  sL   € ð ×Ñœy×)Ô)¨RØ�J‰J�w¨DˆJÔ1÷ *à�‰�o¤s¨2¯<©<Ó'8Ö9÷ *×)ús   žA!Á!A1	c                óª   € V P                  R 4      pVP                  4        V P                  VP                  R\        P
                  ,          4       R# )z/body_bearing_redirectó   aN)r2   Úrethrowr4   rÍ   r	   r  rÎ   s   & r   Útest_redirect_body_not_countedÚ@CurlHTTPClientMaxBodySizeTestCase.test_redirect_body_not_countedQ  s>   € ð —:‘:Ð6Ó7ˆØ×ÑÔØ×Ñ˜Ÿ™¨¬×/LÑ/LÕ(LÖMr   r   N)	rl   rm   rn   ro   r(   r#  r(  rs   rt   ru   s   @r   r  r  @  s   ø‡ € òYò
:÷Nð Nr   r  c                   óN   a a€ ] tR tRt oRtV 3R ltR tR tR tR t	Rt
VtV ;t# )	ÚCurlStreamingBufferTesti\  z>Unit tests for the buffer that feeds a ``streaming_callback``.c                ój   <a€ \         SV `  4        . V n        V o ! V3R  lR4      pV! 4       V n        R# )c                   óL   <a € ] tR tRt o  ZP                  tRtV3R ltRtV tR# )Ú1CurlStreamingBufferTest.setUp.<locals>.FakeClientie  c                ó>   <€ SP                   P                  V4       R # rX   )Útimeouts_requestedr3   )r&   Úmsecsr   s   &&€r   Ú_set_timeoutÚ>CurlStreamingBufferTest.setUp.<locals>.FakeClient._set_timeouti  s   ø€ Ø×'Ñ'×.Ñ.¨uÖ5r   r   Ni   )	rl   rm   rn   ro   rI   r  r2  rs   rt   )rv   r   s   @€r   Ú
FakeClientr.  e  s   ù‡ € Ù—l‘lˆGØ'ˆM÷6ó 6r   r4  N)r¸   r¹   r0  r'   )r&   r4  r   r»   s   & @€r   r¹   ÚCurlStreamingBufferTest.setUp`  s.   ù€ Ü‰‰ŒØ-/ˆÔØˆ÷	6ô 	6ñ !“lˆŽr   c                ó0   € \        V P                  VV4      # rX   )r   r'   )r&   ÚcurlÚcallbacks   &&&r   Úmake_bufferÚ#CurlStreamingBufferTest.make_buffern  s   € Ü#Ø�K‰KØØó
ð 	
r   c                ó`  a€ . o ! V3R  lR4      p. pV P                  V! 4       VP                  4      p\        P                  P	                  \
        R^4      ;_uu_ 4        V P                  VP                  R4      ^4       V P                  VP                  R4      \        P                  4       RRR4       VP                  4        V P                  VR.4       V P                  S\        P                  .4       V P                  V P                  ^ .4       R#   + '       g   i     Ls; i)c                   ó.   <a € ] tR tRt o V3R ltRtV tR# )ÚOCurlStreamingBufferTest.test_unpause_asks_for_a_socket_action.<locals>.FakeCurli{  c                ó*   <€ SP                  V4       R # rX   )r3   )r&   ÚflagsÚpauseds   &&€r   ÚpauseÚUCurlStreamingBufferTest.test_unpause_asks_for_a_socket_action.<locals>.FakeCurl.pause|  s   ø€ Ø—‘˜eÖ$r   r   N©rl   rm   rn   ro   rA  rs   rt   )rv   r@  s   @€r   ÚFakeCurlr=  {  s   ù‡ € ÷%ó %r   rD  r+   ó   helloó   worldN)r9  r3   r   r0   r1   r   r4   r˜   rp   ÚWRITEFUNC_PAUSEÚflushÚ
PAUSE_CONTr0  )r&   rD  r8   rC   r@  s   &   @r   Ú%test_unpause_asks_for_a_socket_actionÚ=CurlStreamingBufferTest.test_unpause_asks_for_a_socket_actionu  sä   ø€ ð ˆ÷	%ô 	%ð !ˆØ×Ñ™x›z¨6¯=©=Ó9ˆÜ�Z‰Z×ÑÔ3Ð5FÈ×JÕJØ×Ñ˜SŸY™Y xÓ0°!Ô4Ø×Ñ˜SŸY™Y xÓ0´&×2HÑ2HÔI÷ Kð 	�	‰	ŒØ×Ñ˜ ( Ô,Ø×Ñ˜¤&×"3Ñ"3Ð!4Ô5Ø×Ñ˜×0Ñ0°1°#Ö6÷ K×Jús   Á!ADÄD-	c                ó¸  €  ! R  R4      p. pV P                  V! 4       VP                  4      p^V P                  n        V P	                  VP                  R4      ^4       V P                  VP                  4       V P	                  VP                  R4      ^ 4       V P                  VP                  4       VP                  4        V P	                  VR.4       R# )c                   ó&   a € ] tR tRt o R tRtV tR# )Ú=CurlStreamingBufferTest.test_body_too_large.<locals>.FakeCurli�  c                ó   € \        R 4      h)zshould not pause)ÚAssertionError©r&   r?  s   &&r   rA  ÚCCurlStreamingBufferTest.test_body_too_large.<locals>.FakeCurl.pauseŽ  s   € Ü$Ð%7Ó8Ð8r   r   NrC  ru   s   @r   rD  rN  �  s   ø‡ € ÷9ð 9r   rD  s   12345s   67890N)
r9  r3   r'   r  r4   r˜   ÚassertFalseÚbody_too_larger$   rH  ©r&   rD  r8   rC   s   &   r   Útest_body_too_largeÚ+CurlStreamingBufferTest.test_body_too_large‰  sª   € ÷	9ñ 	9ð !ˆØ×Ñ™x›z¨6¯=©=Ó9ˆØ$%ˆ�‰Ô!Ø×Ñ˜Ÿ™ 8Ó,¨aÔ0Ø×Ñ˜×+Ñ+Ô,à×Ñ˜Ÿ™ 8Ó,¨aÔ0Ø�‰˜×*Ñ*Ô+Ø�	‰	ŒØ×Ñ˜ ( Ö,r   c                ó|  €  ! R  R4      p. pV P                  V! 4       VP                  4      p\        P                  P	                  \
        R^4      ;_uu_ 4        V P                  VP                  R4      ^4       V P                  VP                  R4      \        P                  4       RRR4       V P                  VP                  4       VP                  4        V P                  VR.4       V P                  VP                  4       V P                  V P                  . 4       R#   + '       g   i     L‡; i)c                   ó&   a € ] tR tRt o R tRtV tR# )ÚGCurlStreamingBufferTest.test_unpause_error_is_ignored.<locals>.FakeCurli¡  c                óL   € \         P                  ! \         P                  R 4      h)zwrite error)rp   r×   ÚE_WRITE_ERRORrQ  s   &&r   rA  ÚMCurlStreamingBufferTest.test_unpause_error_is_ignored.<locals>.FakeCurl.pause¢  s   € Ü—l’l¤6×#7Ñ#7¸ÓGÐGr   r   NrC  ru   s   @r   rD  rZ  ¡  s   ø‡ € ÷Hð Hr   rD  r+   rE  rF  N)r9  r3   r   r0   r1   r   r4   r˜   rp   rG  r$   r@  rH  rS  r0  rU  s   &   r   Útest_unpause_error_is_ignoredÚ5CurlStreamingBufferTest.test_unpause_error_is_ignoredœ  så   € ÷
	Hñ 	Hð !ˆØ×Ñ™x›z¨6¯=©=Ó9ˆÜ�Z‰Z×ÑÔ3Ð5FÈ×JÕJØ×Ñ˜SŸY™Y xÓ0°!Ô4à×Ñ˜SŸY™Y xÓ0´&×2HÑ2HÔI÷ Kð 	�‰˜Ÿ
™
Ô#Ø�	‰	ŒØ×Ñ˜ ( Ô,Ø×Ñ˜Ÿ™Ô$à×Ñ˜×0Ñ0°"Ö5÷ K×Jús   ÁAD+Ä+D;	)r'   r0  )rl   rm   rn   ro   Ú__doc__r¹   r9  rJ  rV  r^  rs   rt   rÝ   rÞ   s   @@r   r+  r+  \  s&   ù‡ € áHõ#ò
ò7ò(-÷&6ò 6r   r+  )1r_   Úhashlibr   r  r  Úunittestr   r[   Útornador   Útornado.escaper   Útornado.logr   Útornado.netutilr   Útornado.testr	   Útornado.test.utilr
   Útornado.testingr   r   r   r   Útornado.webr   r   rp   ÚImportErrorÚtornado.curl_httpclientr   r   r   r   ÚskipIfÚHTTPClientCommonTestCaser!   rx   r§   r²   r¶   rà   rä   ró   rú   ÚHTTPClientMaxBodySizeTestCaser  r+  r   r   r   Ú<module>rp     sÏ  ðÛ 	Ý Û 	Û 
Û Ý Û å Ý Ý Ý 2Ý (Ý ,÷ó ÷ 4ðÛð 
Ò÷ñ òð 
‡‚�˜4�Ð!<Ó=ôTI ?×#KÑ#Kó TIó >ðTIôn&˜ô &ôR.˜.ô .ô
.˜nô .ð
 
‡‚�˜4�Ð!<Ó=ô(/Ð.ó (/ó >ð(/ôV(˜>ô (ð 
‡‚�˜4�Ð!<Ó=ô!:Ð+<ó !:ó >ð!:ôH)˜Nô )ð 
‡‚�˜4�Ð!<Ó=ô$;Ð'9ó $;ó >ð$;ðN 
‡‚�˜4�Ð!<Ó=ôN¨×(UÑ(Uó Nó >ðNð6 
‡‚�˜4�Ð!<Ó=ôS6˜mó S6ó >òS6øðI
 ô ØƒFðús   ÁF Æ	FÆF