§
    ‹Ÿj/{  ã                   ó8  — d dl Z d dlmZ d dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlmZmZ d dlmZmZ d dlmZmZ d dlmZ d dlmZmZ d dlmZ d d	lmZ d d
lmZ d dlm Z  d dl!m"Z"m#Z# d dl$m%Z%m&Z&m'Z' d dl(m)Z)m*Z*m+Z+m,Z,m-Z- d dl.m/Z/ d dl0m1Z1m2Z2m3Z3m4Z4m5Z5 d dl6m7Z7m8Z8m9Z9 d dl:m;Z;m<Z<m=Z=m>Z>  G d„ de/j?        ¦  «        Z@ G d„ de;¦  «        ZA G d„ de;¦  «        ZB G d„ de;¦  «        ZC G d„ de;¦  «        ZD G d„ de;¦  «        ZE G d„ d e;¦  «        ZF G d!„ d"e;¦  «        ZG G d#„ d$e;¦  «        ZH G d%„ d&e;¦  «        ZI G d'„ d(e;¦  «        ZJe> G d)„ d*e;¦  «        ¦   «         ZKe7 G d+„ d,e3¦  «        ¦   «         ZL G d-„ d.e1eL¦  «        ZM G d/„ d0e2eL¦  «        ZN G d1„ d2e3¦  «        ZO G d3„ d4e1¦  «        ZP G d5„ d6e1¦  «        ZQ G d7„ d8e1¦  «        ZR G d9„ d:e1¦  «        ZS G d;„ d<e1¦  «        ZT G d=„ d>e1¦  «        ZU G d?„ d@e1¦  «        ZV G dA„ dBe1¦  «        ZWdS )Cé    N)Úclosing)Ú
to_unicodeÚutf8)ÚgenÚversion)ÚAsyncHTTPClientÚHTTPResponse)Ú
HTTPServer)ÚHTTPHeadersÚResponseStartLine)ÚIOLoop)ÚUnsatisfiableReadError)ÚEvent)Úgen_log)ÚResolverÚbind_sockets)ÚSimpleAsyncHTTPClientÚHTTPStreamClosedErrorÚHTTPTimeoutError)ÚChunkHandlerÚCountdownHandlerÚHelloWorldHandlerÚRedirectHandlerÚUserAgentHandler)Úhttpclient_test)ÚAsyncHTTPTestCaseÚAsyncHTTPSTestCaseÚAsyncTestCaseÚ	ExpectLogÚgen_test)Úabstract_base_testÚskipIfNoIPv6Úrefusing_port)ÚRequestHandlerÚApplicationÚurlÚstream_request_bodyc                   ó   — e Zd Zd„ ZdS )ÚSimpleHTTPClientCommonTestCasec                 óv   — t          d¬¦  «        }|                      t          |t           ¦  «        ¦  «         |S )NT©Úforce_instance)r   Ú
assertTrueÚ
isinstance©ÚselfÚclients     úp/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/tornado/test/simple_httpclient_test.pyÚget_http_clientz.SimpleHTTPClientCommonTestCase.get_http_client3   s4   € Ý&°dÐ;Ñ;Ô;ˆØ�Š�
 6Õ+@ÑAÔAÑBÔBÐBØˆó    N)Ú__name__Ú
__module__Ú__qualname__r3   © r4   r2   r)   r)   2   s#   € € € € € ðð ð ð ð r4   r)   c                   ó4   — e Zd Zd„ Zej        d„ ¦   «         ZdS )ÚTriggerHandlerc                 ó"   — || _         || _        d S ©N©ÚqueueÚwake_callback)r0   r>   r?   s      r2   Ú
initializezTriggerHandler.initialize:   s   € ØˆŒ
Ø*ˆÔÐÐr4   c              #   ó  K  — t          j        d¦  «         t          ¦   «         }| j                             |j        ¦  «         |                      dd¦  «        dk    r|                      ¦   «          |                     ¦   «         V — d S )Nzqueuing triggerÚwakeÚtrue)	ÚloggingÚdebugr   r>   ÚappendÚsetÚget_argumentr?   Úwait)r0   Úevents     r2   ÚgetzTriggerHandler.get>   s   è è € åŒÐ'Ñ(Ô(Ð(Ý‘”ˆØŒ
×Ò˜%œ)Ñ$Ô$Ð$Ø×Ò˜V VÑ,Ô,°Ò6Ð6Ø×ÒÑ Ô Ð Ø�jŠj‰lŒlÐÐÐÐÐr4   N)r5   r6   r7   r@   r   Ú	coroutinerK   r8   r4   r2   r:   r:   9   s@   € € € € € ð+ð +ð +ð 	„]ðð ñ „]ðð ð r4   r:   c                   ó4   — e Zd Zd„ Zej        d„ ¦   «         ZdS )ÚContentLengthHandlerc                 óŽ   — |                       ¦   «         | _        t          j        ¦   «                              | j        ¦  «         d S r<   )ÚdetachÚstreamr   ÚcurrentÚspawn_callbackÚwrite_response©r0   s    r2   rK   zContentLengthHandler.getI   s6   € Ø—k’k‘m”mˆŒÝŒÑÔ×'Ò'¨Ô(;Ñ<Ô<Ð<Ð<Ð<r4   c              #   óº   K  — | j                              t          d|                      d¦  «        z  ¦  «        ¦  «        V — | j                              ¦   «          d S )Nz)HTTP/1.0 200 OK
Content-Length: %s

okÚvalue)rQ   Úwriter   rH   ÚcloserU   s    r2   rT   z#ContentLengthHandler.write_responseM   sl   è è € àŒk×ÒÝØAØ×#Ò# GÑ,Ô,ñ-ñô ñ
ô 
ð 	
ð 	
ð 	
ð 	Œ×ÒÑÔÐÐÐr4   N)r5   r6   r7   rK   r   rL   rT   r8   r4   r2   rN   rN   H   s@   € € € € € ð=ð =ð =ð 	„]ðð ñ „]ðð ð r4   rN   c                   ó   — e Zd Zd„ ZdS )ÚHeadHandlerc                 ó2   — |                       dd¦  «         d S )NúContent-LengthÚ7)Ú
set_headerrU   s    r2   ÚheadzHeadHandler.headY   s   € Ø�ŠÐ(¨#Ñ.Ô.Ð.Ð.Ð.r4   N)r5   r6   r7   r`   r8   r4   r2   r[   r[   X   s#   € € € € € ð/ð /ð /ð /ð /r4   r[   c                   ó   — e Zd Zd„ ZdS )ÚOptionsHandlerc                 ó\   — |                       dd¦  «         |                      d¦  «         d S )NzAccess-Control-Allow-OriginÚ*Úok©r_   rX   rU   s    r2   ÚoptionszOptionsHandler.options^   s/   € Ø�ŠÐ5°sÑ;Ô;Ð;Ø�
Š
�4ÑÔÐÐÐr4   N)r5   r6   r7   rg   r8   r4   r2   rb   rb   ]   s#   € € € € € ðð ð ð ð r4   rb   c                   ó   — e Zd Zd„ ZdS )ÚNoContentHandlerc                 óX   — |                       d¦  «         |                      ¦   «          d S )NéÌ   ©Ú
set_statusÚfinishrU   s    r2   rK   zNoContentHandler.getd   s%   € Ø�Š˜ÑÔÐØ�Š‰Œˆˆˆr4   N©r5   r6   r7   rK   r8   r4   r2   ri   ri   c   s#   € € € € € ðð ð ð ð r4   ri   c                   ó   — e Zd Zd„ ZdS )ÚSeeOtherPostHandlerc                 óÄ   — t          | j        j        ¦  «        }|dv sJ d| j        j        z  ¦   «         ‚|                      dd¦  «         |                      |¦  «         d S )N©é.  i/  úunexpected body %rÚLocationú/see_other_get)ÚintÚrequestÚbodyr_   rm   )r0   Úredirect_codes     r2   ÚpostzSeeOtherPostHandler.postj   se   € Ý˜DœLÔ-Ñ.Ô.ˆØ 
Ð*Ð*Ð*Ð,@À4Ä<ÔCTÑ,TÑ*Ô*Ð*Ø�Š˜
Ð$4Ñ5Ô5Ð5Ø�Š˜Ñ&Ô&Ð&Ð&Ð&r4   N©r5   r6   r7   r|   r8   r4   r2   rq   rq   i   s#   € € € € € ð'ð 'ð 'ð 'ð 'r4   rq   c                   ó   — e Zd Zd„ ZdS )ÚSeeOtherGetHandlerc                 ó€   — | j         j        rt          d| j         j        z  ¦  «        ‚|                      d¦  «         d S )Nru   re   )ry   rz   Ú	ExceptionrX   rU   s    r2   rK   zSeeOtherGetHandler.getr   sA   € ØŒ<Ôð 	FÝÐ0°4´<Ô3DÑDÑEÔEÐEØ�
Š
�4ÑÔÐÐÐr4   Nro   r8   r4   r2   r   r   q   s#   € € € € € ðð ð ð ð r4   r   c                   ó   — e Zd Zd„ ZdS )ÚHostEchoHandlerc                 óP   — |                       | j        j        d         ¦  «         d S )NÚHost)rX   ry   ÚheadersrU   s    r2   rK   zHostEchoHandler.gety   s$   € Ø�
Š
�4”<Ô'¨Ô/Ñ0Ô0Ð0Ð0Ð0r4   Nro   r8   r4   r2   rƒ   rƒ   x   s#   € € € € € ð1ð 1ð 1ð 1ð 1r4   rƒ   c                   ó   — e Zd Zd„ ZdS )ÚNoContentLengthHandlerc                 óì   — | j         j                             d¦  «        r?|                      ¦   «         }|                     d¦  «         |                     ¦   «          d S |                      d¦  «         d S )NzHTTP/1s   HTTP/1.0 200 OK

hellozHTTP/1 required)ry   r   Ú
startswithrP   rX   rY   rn   )r0   rQ   s     r2   rK   zNoContentLengthHandler.get~   si   € ØŒ<Ô×*Ò*¨8Ñ4Ô4ð 	+ð —[’[‘]”]ˆFØ�LŠLÐ<Ñ=Ô=Ð=Ø�LŠL‰NŒNˆNˆNˆNà�KŠKÐ)Ñ*Ô*Ð*Ð*Ð*r4   Nro   r8   r4   r2   rˆ   rˆ   }   s#   € € € € € ð	+ð 	+ð 	+ð 	+ð 	+r4   rˆ   c                   ó   — e Zd Zd„ ZdS )ÚEchoPostHandlerc                 óD   — |                       | j        j        ¦  «         d S r<   )rX   ry   rz   rU   s    r2   r|   zEchoPostHandler.post‹   s   € Ø�
Š
�4”<Ô$Ñ%Ô%Ð%Ð%Ð%r4   Nr}   r8   r4   r2   rŒ   rŒ   Š   s#   € € € € € ð&ð &ð &ð &ð &r4   rŒ   c                   ó   — e Zd Zd„ ZdS )ÚRespondInPrepareHandlerc                 óZ   — |                       d¦  «         |                      d¦  «         d S )Né“  Ú	forbiddenrl   rU   s    r2   ÚpreparezRespondInPrepareHandler.prepare‘   s,   € Ø�Š˜ÑÔÐØ�Š�KÑ Ô Ð Ð Ð r4   N)r5   r6   r7   r“   r8   r4   r2   r�   r�   �   s#   € € € € € ð!ð !ð !ð !ð !r4   r�   c            	       ól  — e Zd Zdefd„Z	 d+dededej        de	fd„Z
dedefd„Zdefd	„Zdefd
„Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zd„ Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%e&j'        d „ ¦   «         Z(d!„ Z)d"„ Z*d#„ Z+d$„ Z,d%„ Z-d&„ Z.d'„ Z/d(„ Z0d)„ Z1d*S ),ÚSimpleHTTPClientTestMixinÚreturnc                 ó   — t          ¦   «         ‚r<   ©ÚNotImplementedErrorrU   s    r2   Úget_http_portz'SimpleHTTPClientTestMixin.get_http_port™   ó   € Ý!Ñ#Ô#Ð#r4   FÚpathÚraise_errorÚkwargsc                 ó   — t          ¦   «         ‚r<   r˜   )r0   rœ   r�   rž   s       r2   ÚfetchzSimpleHTTPClientTestMixin.fetchœ   s   € õ "Ñ#Ô#Ð#r4   c                 ó   — t          ¦   «         ‚r<   r˜   )r0   rœ   s     r2   Úget_urlz!SimpleHTTPClientTestMixin.get_url¢   r›   r4   c                 ó   — t          ¦   «         ‚r<   r˜   rU   s    r2   Úget_protocolz&SimpleHTTPClientTestMixin.get_protocol¥   r›   r4   c                 ó   — t          ¦   «         ‚r<   r˜   rU   s    r2   Úget_http_serverz)SimpleHTTPClientTestMixin.get_http_server¨   r›   r4   c                 ó   — t          ¦   «         ‚r<   r˜   ©r0   rž   s     r2   Úcreate_clientz'SimpleHTTPClientTestMixin.create_client«   r›   r4   c                 ó  — t          j        ¦   «         | _        t          t	          dt
          t          | j        | j        ¬¦  «        ¦  «        t	          dt          ¦  «        t	          dt          d¬¦  «        t	          dt          ¦  «        t	          dt          ¦  «        t	          d	t          ¦  «        t	          d
t          ¦  «        t	          dt          ¦  «        t	          dt          ¦  «        t	          dt           ¦  «        t	          dt"          ¦  «        t	          dt$          ¦  «        t	          dt&          ¦  «        t	          dt(          ¦  «        t	          dt*          ¦  «        t	          dt,          ¦  «        gd¬¦  «        S )Nú/triggerr=   z/chunkz/countdown/([0-9]+)Ú	countdown)Únameú/helloz/content_lengthú/headú/optionsú/no_contentú/see_other_postrw   ú
/host_echoú/no_content_lengthú
/echo_postú/respond_in_preparez	/redirectú/user_agentT)Úgzip)ÚcollectionsÚdequeÚtriggersr%   r&   r:   ÚdictÚstopr   r   r   rN   r[   rb   ri   rq   r   rƒ   rˆ   rŒ   r�   r   r   rU   s    r2   Úmixin_get_appz'SimpleHTTPClientTestMixin.mixin_get_app®   s:  € õ ÔÑÔð 	Œõ åØÝ"Ý˜tœ}¸D¼IÐFÑFÔFñô õ
 �H�lÑ+Ô+ÝÐ)Õ+;À+ÐNÑNÔNÝ�HÕ/Ñ0Ô0ÝÐ%Õ';Ñ<Ô<Ý�G�[Ñ)Ô)Ý�J¥Ñ/Ô/Ý�MÕ#3Ñ4Ô4ÝÐ%Õ':Ñ;Ô;ÝÐ$Õ&8Ñ9Ô9Ý�L¥/Ñ2Ô2ÝÐ(Õ*@ÑAÔAÝ�L¥/Ñ2Ô2ÝÐ)Õ+BÑCÔCÝ�K¥Ñ1Ô1Ý�MÕ#3Ñ4Ô4ð)ð, ð/
ñ 
ô 
ð 	
r4   c                 ó¾  — |                       t          ¦   «         t          ¦   «         ¦  «         |                      t          ¦   «         t          d¬¦  «        ¦  «         t          t	          d¬¦  «        ¦  «        5 }d„ }| j                             |¦  «        }|                     |¦  «        }|                      ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NTr+   F)Úmake_currentc               “   óV   K  — t          j        d¦  «        ƒ d {V —† t          ¦   «         S ©Nr   )r   Úsleepr   r8   r4   r2   Úmake_clientz=SimpleHTTPClientTestMixin.test_singleton.<locals>.make_client×   s2   è è € Ý”i ‘l”lÐ"Ð"Ð"Ð"Ð"Ð"Ð"Ý,Ñ.Ô.Ð.r4   )ÚassertIsr   ÚassertIsNotr   r   Úio_loopÚrun_sync)r0   Úio_loop2rÄ   Úclient1Úclient2s        r2   Útest_singletonz(SimpleHTTPClientTestMixin.test_singletonÍ   s  € à�ŠÕ+Ñ-Ô-Õ/DÑ/FÔ/FÑGÔGÐGà×ÒÝ!Ñ#Ô#Õ%:È$Ð%OÑ%OÔ%Oñ	
ô 	
ð 	
õ •V¨Ð/Ñ/Ô/Ñ0Ô0ð 	/°Hð/ð /ð /ð ”l×+Ò+¨KÑ8Ô8ˆGØ×'Ò'¨Ñ4Ô4ˆGØ×Ò˜W gÑ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	/ð 	/s   Á<A	CÃCÃCc                 óŠ  ‡ ‡— t          ‰                      d¬¦  «        ¦  «        5 }‰                      |j        d¦  «         g Št	          d¦  «        D ]E}|fˆˆ fd„	}|                     ‰                      d¦  «        ¦  «                             |¦  «         ŒF‰                      ˆ fd„¬¦  «         ‰                      t          |j
        ¦  «        d¦  «          ‰ j                             ¦   «         ¦   «           ‰ j                             ¦   «         ¦   «          ‰                      ˆˆ fd„¬¦  «         ‰                      t          ‰¦  «        d	d
h¦  «         ‰                      t          |j
        ¦  «        d	¦  «          ‰ j                             ¦   «         ¦   «           ‰ j                             ¦   «         ¦   «          ‰                      ˆfd„¬¦  «         ‰                      t          ‰¦  «        h d£¦  «         ‰                      t          ‰ j        ¦  «        d	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Né   ©Úmax_clientsé   c                 óZ   •— ‰                      |¦  «         ‰                     ¦   «          d S r<   )rF   r½   )ÚfutÚiÚseenr0   s     €€r2   Úcbz;SimpleHTTPClientTestMixin.test_connection_limit.<locals>.cbç   s#   ø€ Ø—K’K ‘N”N�NØ—I’I‘K”K�K�K�Kr4   r«   c                  ó4   •— t          ‰ j        ¦  «        dk    S ©NrÎ   ©Úlenr»   rU   s   €r2   ú<lambda>zASimpleHTTPClientTestMixin.test_connection_limit.<locals>.<lambda>ì   s   ø€ ­¨D¬MÑ(:Ô(:¸aÒ(?€ r4   )Ú	conditionc                  óZ   •— t          ‰j        ¦  «        dk    ot          ‰ ¦  «        dk    S rØ   rÙ   )rÕ   r0   s   €€r2   rÛ   zASimpleHTTPClientTestMixin.test_connection_limit.<locals>.<lambda>ò   s&   ø€ ­¨T¬]Ñ);Ô);¸qÒ)@Ð)SÅSÈÁYÄYÐRSÂ^€ r4   r   é   c                  ó*   •— t          ‰ ¦  «        dk    S )NrÑ   )rÚ   )rÕ   s   €r2   rÛ   zASimpleHTTPClientTestMixin.test_connection_limit.<locals>.<lambda>ù   s   ø€ ­¨D©	¬	°Qª€ r4   >   r   rÞ   rÎ   é   )r   r©   ÚassertEqualrÐ   Úranger    r¢   Úadd_done_callbackrI   rÚ   r>   r»   ÚpopleftrG   )r0   r1   rÔ   rÖ   rÕ   s   `   @r2   Útest_connection_limitz/SimpleHTTPClientTestMixin.test_connection_limitß   sƒ  øø€ Ý�T×'Ò'°AÐ'Ñ6Ô6Ñ7Ô7ð 	4¸6Ø×Ò˜VÔ/°Ñ3Ô3Ð3ØˆDõ ˜1‘X”Xð Mð M�àð  ð  ð  ð  ð  ð  ð  ð —’˜TŸ\š\¨*Ñ5Ô5Ñ6Ô6×HÒHÈÑLÔLÐLÐLØ�IŠIÐ ?Ð ?Ð ?Ð ?ˆIÑ@Ô@Ð@Ø×Ò�S ¤Ñ.Ô.°Ñ2Ô2Ð2ð $ˆDŒM×!Ò!Ñ#Ô#Ñ%Ô%Ð%Ø#ˆDŒM×!Ò!Ñ#Ô#Ñ%Ô%Ð%Ø�IŠIÐ TÐ TÐ TÐ TÐ TˆIÑUÔUÐUØ×Ò�S ™YœY¨¨A¨Ñ/Ô/Ð/Ø×Ò�S ¤Ñ.Ô.°Ñ2Ô2Ð2ð $ˆDŒM×!Ò!Ñ#Ô#Ñ%Ô%Ð%Ø#ˆDŒM×!Ò!Ñ#Ô#Ñ%Ô%Ð%Ø�IŠIÐ 6Ð 6Ð 6Ð 6ˆIÑ7Ô7Ð7Ø×Ò�S ™YœY¨¨¨Ñ5Ô5Ð5Ø×Ò�S ¤Ñ/Ô/°Ñ3Ô3Ð3ð7	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4s   ¦HH8È8H<È?H<c              #   ó  K  — t          |                      d¬¦  «        ¦  «        5 }|                     |                      d¦  «        d¬¦  «        V —}|                     ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )NrÞ   rÏ   z/countdown/3rà   ©Úmax_redirects)r   r©   r    r¢   Úrethrow)r0   r1   Úresponses      r2   Útest_redirect_connection_limitz8SimpleHTTPClientTestMixin.test_redirect_connection_limitý   sÂ   è è € õ �T×'Ò'°AÐ'Ñ6Ô6Ñ7Ô7ð 	¸6Ø#Ÿ\š\¨$¯,ª,°~Ñ*FÔ*FÐVW˜\ÑXÔXÐXÐXˆHØ×ÒÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ¦AA4Á4A8Á;A8c                 óŽ  — |                       dd¬¦  «        }|                      d|j        ¦  «         |                      |j        j                             d¦  «        ¦  «         |                      |j                             d¦  «        ¦  «         |                      |j        d                              d¦  «        ¦  «         d S )Nz/countdown/5rà   rç   rt   z/countdown/2rv   z/countdown/1)	r    rá   Úcoder-   ry   r&   ÚendswithÚeffective_urlr†   ©r0   rê   s     r2   Útest_max_redirectsz,SimpleHTTPClientTestMixin.test_max_redirects  s¨   € Ø—:’:˜n¸A�:Ñ>Ô>ˆØ×Ò˜˜hœmÑ,Ô,Ð,ð 	�Š˜Ô(Ô,×5Ò5°nÑEÔEÑFÔFÐFØ�Š˜Ô.×7Ò7¸ÑGÔGÑHÔHÐHØ�Š˜Ô(¨Ô4×=Ò=¸nÑMÔMÑNÔNÐNÐNÐNr4   c                 óÂ   — t          ddi¦  «        }|                      d|¬¦  «         |                      t          |                     ¦   «         ¦  «        dg¦  «         d S )Nú
User-AgentÚFoor®   )r†   )ró   rô   )r   r    rá   ÚlistÚget_all)r0   r†   s     r2   Útest_header_reusez+SimpleHTTPClientTestMixin.test_header_reuse  s^   € õ ˜|¨UÐ3Ñ4Ô4ˆØ�
Š
�8 Wˆ
Ñ-Ô-Ð-Ø×Ò�˜gŸošoÑ/Ô/Ñ0Ô0Ð3HÐ2IÑJÔJÐJÐJÐJr4   c                 óÔ   — |                       dd¬¦  «        }|                      d|j        ¦  «         |                      |j                             ¦   «         dt
          › �¦  «         d S )Nr·   ÚGET©ÚmethodéÈ   zTornado/)r    rá   rí   rz   Údecoder   rð   s     r2   Útest_default_user_agentz1SimpleHTTPClientTestMixin.test_default_user_agent  sb   € Ø—:’:˜m°E�:Ñ:Ô:ˆØ×Ò˜˜hœmÑ,Ô,Ð,Ø×Ò˜œ×-Ò-Ñ/Ô/Ð1E½GÐ1EÐ1EÑFÔFÐFÐFÐFr4   c                 óz  — dD ]·}|                       ddd|z  ¬¦  «        }|                      d|j        ¦  «         |                      |j        j                             d¦  «        ¦  «         |                      |j                             d¦  «        ¦  «         |                      d|j        j        ¦  «         Œ¸d S )Nrs   r²   ÚPOSTz%d)rû   rz   rü   rw   )	r    rá   rí   r-   ry   r&   rî   rï   rû   )r0   rí   rê   s      r2   Útest_see_other_redirectz1SimpleHTTPClientTestMixin.test_see_other_redirect  sº   € Øð 	>ð 	>ˆDØ—z’zÐ"3¸FÈÐPTÉ�zÑUÔUˆHØ×Ò˜S (¤-Ñ0Ô0Ð0Ø�OŠO˜HÔ,Ô0×9Ò9Ð:KÑLÔLÑMÔMÐMØ�OŠO˜HÔ2×;Ò;Ð<LÑMÔMÑNÔNÐNà×Ò˜V XÔ%5Ô%<Ñ=Ô=Ð=Ð=ð	>ð 	>r4   c              #   óø  ‡‡K  — d}t          ¦   «         Š| Š G ˆˆfd„dt          ¦  «        }t          |                       |¦   «         ¬¦  «        ¦  «        5 }|                      t
          ¦  «        5  |                     |                      d¦  «        |dd¬¦  «        V — d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   ‰                     ¦   «          t          j
        d	¦  «        V — d S )
Nçš™™™™™¹?c                   ó   •— e Zd Zˆ ˆfd„ZdS )úGSimpleHTTPClientTestMixin.test_connect_timeout.<locals>.TimeoutResolverc              Ÿ   ó‚   •K  — ‰                      ¦   «         ƒ d {V —† t          j        d‰                     ¦   «         ffgS ©Nú	127.0.0.1)rI   ÚsocketÚAF_INETrš   )r0   Úargsrž   Úcleanup_eventÚtests      €€r2   ÚresolvezOSimpleHTTPClientTestMixin.test_connect_timeout.<locals>.TimeoutResolver.resolve*  sL   øè è € Ø#×(Ò(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*åœ¨+°t×7IÒ7IÑ7KÔ7KÐ)LÐMÐNÐNr4   N)r5   r6   r7   r  )r  r  s   €€r2   ÚTimeoutResolverr  )  s;   ø€ € € € € ðOð Oð Oð Oð Oð Oð Oð Or4   r  ©Úresolverr®   i  T)Úconnect_timeoutÚrequest_timeoutr�   gš™™™™™É?)r   r   r   r©   ÚassertRaisesr   r    r¢   rG   r   rÃ   )r0   Útimeoutr  r1   r  r  s       @@r2   Útest_connect_timeoutz.SimpleHTTPClientTestMixin.test_connect_timeout"  s¯  øøè è € àˆå™œˆØˆð	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	O�hñ 	Oô 	Oð 	Oõ �T×'Ò'°°Ñ1BÔ1BÐ'ÑCÔCÑDÔDð 	ÈØ×"Ò"Õ#3Ñ4Ô4ð ð Ø—l’lØ—L’L Ñ*Ô*Ø$+Ø$(Ø $ð	 #ñ ô ð ð ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	×ÒÑÔÐÝŒi˜‰nŒnÐÐÐÐÐs6   ÁCÁ3/B.Â"CÂ.B2	Â2CÂ5B2	Â6CÃC	ÃC	c                 ó:  — d}t           j        dk    rd}|                      t          ¦  «        5  |                      d|d¬¦  «         d d d ¦  «         n# 1 swxY w Y    | j                             ¦   «         ¦   «          | j                             d„ ¦  «         d S )Nr  Úntg      à?z/trigger?wake=falseT)r  r�   c                  ó*   — t          j        d¦  «        S rÂ   ©r   rÃ   r8   r4   r2   rÛ   z@SimpleHTTPClientTestMixin.test_request_timeout.<locals>.<lambda>G  ó   € ¥c¤i°¡l¤l€ r4   )	Úosr­   r  r   r    r»   rä   rÇ   rÈ   )r0   r  s     r2   Útest_request_timeoutz.SimpleHTTPClientTestMixin.test_request_timeout>  sê   € ØˆÝŒ7�dŠ?ˆ?ØˆGà×ÒÕ/Ñ0Ô0ð 	Yð 	YØ�JŠJÐ,¸gÐSWˆJÑXÔXÐXð	Yð 	Yð 	Yñ 	Yô 	Yð 	Yð 	Yð 	Yð 	Yð 	Yð 	Yøøøð 	Yð 	Yð 	Yð 	Yð 	 ˆŒ×ÒÑÔÑ!Ô!Ð!ØŒ×ÒÐ2Ð2Ñ3Ô3Ð3Ð3Ð3s   ¯AÁAÁAc                 óê  — t          ddt          j        ¬¦  «        \  }|                     ¦   «         d         }|                      ¦   «                              |¦  «         d|                      ¦   «         |fz  }|                      t          ¦  «        5  |  	                    |dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   |  	                    |¦  «        }|  
                    |j        d	¦  «         d S )
Nr   z::1)ÚfamilyrÞ   z%s://[::1]:%d/helloFT)Ú
allow_ipv6r�   ó   Hello world!)r   r	  ÚAF_INET6Úgetsocknamer¦   Ú
add_socketr¤   r  r�   r    rá   rz   )r0   ÚsockÚportr&   rê   s        r2   Ú	test_ipv6z#SimpleHTTPClientTestMixin.test_ipv6I  s.  € å˜a ­v¬Ð?Ñ?Ô?‰ˆØ×ÒÑ!Ô! !Ô$ˆØ×ÒÑÔ×)Ò)¨$Ñ/Ô/Ð/Ø# t×'8Ò'8Ñ':Ô':¸DÐ&AÑAˆð ×Ò�yÑ)Ô)ð 	@ð 	@Ø�JŠJ�s u¸$ˆJÑ?Ô?Ð?ð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð —:’:˜c‘?”?ˆØ×Ò˜œ¨Ñ8Ô8Ð8Ð8Ð8s   ÂB8Â8B<Â?B<c                 ó^  — |                       d¦  «        }|                      |j        d¦  «         |                       d¦  «        }|                      |j        d¦  «         t          t          dt
          j        ¬¦  «        5  |                      t          ¦  «        5  |                       dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5  |                       d	d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )
Nz/content_length?value=2,2ó   okz/content_length?value=2,%202,2z".*Multiple unequal Content-Lengths©Úlevelz/content_length?value=2,4T©r�   z/content_length?value=2,%202,3)	r    rá   rz   r   r   rD   ÚINFOr  r   rð   s     r2   Ú%test_multiple_content_length_acceptedz?SimpleHTTPClientTestMixin.test_multiple_content_length_acceptedW  s  € Ø—:’:Ð9Ñ:Ô:ˆØ×Ò˜œ¨Ñ.Ô.Ð.Ø—:’:Ð>Ñ?Ô?ˆØ×Ò˜œ¨Ñ.Ô.Ð.åÝÐ9ÅÄð
ñ 
ô 
ð 	Oð 	Oð ×"Ò"Õ#8Ñ9Ô9ð Jð JØ—
’
Ð6ÀD�
ÑIÔIÐIðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jà×"Ò"Õ#8Ñ9Ô9ð Oð OØ—
’
Ð;È�
ÑNÔNÐNðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oð	Oð 	Oð 	Oñ 	Oô 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oøøøð 	Oð 	Oð 	Oð 	Oð 	Oð 	OsZ   ÂD"ÂCÂ5D"ÃC	ÃD"ÃC	Ã	D"Ã&D
Ã>D"Ä
D	ÄD"ÄD	ÄD"Ä"D&Ä)D&c                 óà   — |                       dd¬¦  «        }|                      |j        d¦  «         |                      |j        d         d¦  «         |                      |j        ¦  «         d S )Nr¯   ÚHEADrú   rü   úcontent-lengthr^   )r    rá   rí   r†   ÚassertFalserz   rð   s     r2   Útest_head_requestz+SimpleHTTPClientTestMixin.test_head_requeste  sj   € Ø—:’:˜g¨f�:Ñ5Ô5ˆØ×Ò˜œ¨Ñ,Ô,Ð,Ø×Ò˜Ô)Ð*:Ô;¸SÑAÔAÐAØ×Ò˜œÑ'Ô'Ð'Ð'Ð'r4   c                 ó$  — |                       dd¬¦  «        }|                      |j        d¦  «         |                      |j        d         d¦  «         |                      |j        d         d¦  «         |                      |j        d	¦  «         d S )
Nr°   ÚOPTIONSrú   rü   r1  Ú2zaccess-control-allow-originrd   r)  )r    rá   rí   r†   rz   rð   s     r2   Útest_options_requestz.SimpleHTTPClientTestMixin.test_options_requestk  s‹   € Ø—:’:˜j°�:Ñ;Ô;ˆØ×Ò˜œ¨Ñ,Ô,Ð,Ø×Ò˜Ô)Ð*:Ô;¸SÑAÔAÐAØ×Ò˜Ô)Ð*GÔHÈ#ÑNÔNÐNØ×Ò˜œ¨Ñ.Ô.Ð.Ð.Ð.r4   c                 óœ   — |                       d¦  «        }|                      |j        d¦  «         |                      d|j        ¦  «         d S )Nr±   rk   r]   )r    rá   rí   ÚassertNotInr†   rð   s     r2   Útest_no_contentz)SimpleHTTPClientTestMixin.test_no_contentr  sM   € Ø—:’:˜mÑ,Ô,ˆØ×Ò˜œ¨Ñ,Ô,Ð,ð
 	×ÒÐ)¨8Ô+;Ñ<Ô<Ð<Ð<Ð<r4   c                 ó”  — t          j        d¦  «        }|                      d¦  «        }|                      |                     |j        ¦  «        ¦  «         |                      d¦  «                             dd¦  «        }|                      |¦  «        }|                      |                     |j        ¦  «        |j        ¦  «         d S )Ns   ^127.0.0.1:[0-9]+$r³   zhttp://zhttp://me:secret@)ÚreÚcompiler    r-   Úmatchrz   r¢   Úreplace)r0   Úhost_rerê   r&   s       r2   Útest_host_headerz*SimpleHTTPClientTestMixin.test_host_header{  sž   € Ý”*Ð2Ñ3Ô3ˆØ—:’:˜lÑ+Ô+ˆØ�Š˜Ÿš h¤mÑ4Ô4Ñ5Ô5Ð5à�lŠl˜<Ñ(Ô(×0Ò0°Ð<OÑPÔPˆØ—:’:˜c‘?”?ˆØ�Š˜Ÿš h¤mÑ4Ô4°h´mÑDÔDÐDÐDÐDr4   c                 ó(  — t          ¦   «         \  }}|                      |¦  «         t          t          dd¬¦  «        5  |                      t
          j        ¦  «        5 }|                      d|z  d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          j	        dk    rÛt          t          j        ¦  «        t          |j        ¦  «        v }|sBt          t          d¦  «        r-t          t          j        ¦  «        t          |j        ¦  «        v }|                      ||j        ¦  «         t#          j        t          j        ¦  «        }|                      |t          |j        ¦  «        v |j        ¦  «         d S d S )	Nú.*F©Úrequiredzhttp://127.0.0.1:%d/Tr,  ÚcygwinÚWSAECONNREFUSED)r#   Ú
addCleanupr   r   r  r	  Úerrorr    ÚsysÚplatformÚstrÚerrnoÚECONNREFUSEDÚ	exceptionÚhasattrrG  r-   r  Ústrerror)r0   Úcleanup_funcr&  ÚcmÚcontains_errnoÚexpected_messages         r2   Útest_connection_refusedz1SimpleHTTPClientTestMixin.test_connection_refused„  s  € Ý*™_œ_Ñˆ�dØ�Š˜Ñ%Ô%Ð%Ý•w ¨uÐ5Ñ5Ô5ð 	Lð 	LØ×"Ò"¥6¤<Ñ0Ô0ð L°BØ—
’
Ð1°DÑ8Àd�
ÑKÔKÐKðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Lð	Lð 	Lð 	Lñ 	Lô 	Lð 	Lð 	Lð 	Lð 	Lð 	Lð 	Løøøð 	Lð 	Lð 	Lð 	Lõ Œ<˜8Ò#Ð#å ¥Ô!3Ñ4Ô4½¸B¼LÑ8IÔ8IÐIˆNØ!ð ¥g­eÐ5FÑ&GÔ&Gð Ý!$¥UÔ%:Ñ!;Ô!;½sØ”Lñ@ô @ð "�ð �OŠO˜N¨B¬LÑ9Ô9Ð9õ  "œ{­5Ô+=Ñ>Ô>ÐØ�OŠOÐ,µ°B´LÑ0AÔ0AÐAÀ2Ä<ÑPÔPÐPÐPÐPð $Ð#s5   ¾ BÁBÁ9BÂB		Â	BÂB		ÂBÂB Â#B c                 ól  ‡ ‡‡— t          ‰                      d¬¦  «        ¦  «        5 Š‰                     ‰                      d¦  «        d¬¦  «        Š‰                      ¦   «          ‰                      t          ¦  «        5 }‰ j                             ˆˆ fd„¦  «         d d d ¦  «         n# 1 swxY w Y   ‰  	                    t          |j        ¦  «        d¦  «          ‰ j                             ¦   «         ¦   «          ‰ j                             ˆfd„¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NrÞ   rÏ   r«   é
   )r  c                  óZ   •— ‰                       ‰                     d¦  «        dd¬¦  «        S )Nr®   r  T©r  r�   )r    r¢   )r1   r0   s   €€r2   rÛ   z>SimpleHTTPClientTestMixin.test_queue_timeout.<locals>.<lambda>Ÿ  s.   ø€ ˜FŸLšLØŸš XÑ.Ô.ÀÐQUð )ñ ô € r4   zTimeout in request queuec                  ó   •— ‰ S r<   r8   )Úfut1s   €r2   rÛ   z>SimpleHTTPClientTestMixin.test_queue_timeout.<locals>.<lambda>¦  s   ø€ ¨$€ r4   )r   r©   r    r¢   rI   r  r   rÇ   rÈ   rá   rL  rO  r»   rä   )r0   rS  r1   r\  s   ` @@r2   Útest_queue_timeoutz,SimpleHTTPClientTestMixin.test_queue_timeout˜  s¨  øøø€ Ý�T×'Ò'°AÐ'Ñ6Ô6Ñ7Ô7ð 	0¸6à—<’< §¢¨ZÑ 8Ô 8È"�<ÑMÔMˆDØ�IŠI‰KŒKˆKØ×"Ò"Õ#3Ñ4Ô4ð ¸Ø”×%Ò%ðð ð ð ð ñô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ×Ò�S ¤Ñ.Ô.Ð0JÑKÔKÐKØ#ˆDŒM×!Ò!Ñ#Ô#Ñ%Ô%Ð%ØŒL×!Ò! , , , ,Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0s7   §AD)Â B+ÂD)Â+B/	Â/D)Â2B/	Â3A)D)Ä)D-Ä0D-c                 óª   — |                       d¦  «        }|j        dk    r|                      d¦  «         d S |                      d|j        ¦  «         d S )Nr´   s   HTTP/1 requiredúrequires HTTP/1.xs   hello)r    rz   ÚskipTestrá   rð   s     r2   Útest_no_content_lengthz0SimpleHTTPClientTestMixin.test_no_content_length¨  sY   € Ø—:’:Ð2Ñ3Ô3ˆØŒ=Ð.Ò.Ð.Ø�MŠMÐ-Ñ.Ô.Ð.Ð.Ð.à×Ò˜X x¤}Ñ5Ô5Ð5Ð5Ð5r4   c                 ó2   —  |d¦  «          |d¦  «         d S ©Nó   1234ó   5678r8   ©r0   rX   s     r2   Úsync_body_producerz,SimpleHTTPClientTestMixin.sync_body_producer¯  s    € Øˆˆg‰ŒˆØˆˆg‰Œˆˆˆr4   c              #   óZ   K  —  |d¦  «        V — t           j        V —  |d¦  «        V — d S rc  )r   Úmomentrf  s     r2   Úasync_body_producerz-SimpleHTTPClientTestMixin.async_body_producer³  sB   è è € àˆe�G‰nŒnÐÐÐÝŒjÐÐÐØˆe�G‰nŒnÐÐÐÐÐr4   c                 óž   — |                       dd| j        ¬¦  «        }|                     ¦   «          |                      |j        d¦  «         d S ©Nrµ   r   ©rû   Úbody_produceró   12345678©r    rg  ré   rá   rz   rð   s     r2   Útest_sync_body_producer_chunkedz9SimpleHTTPClientTestMixin.test_sync_body_producer_chunked¹  sV   € Ø—:’:Ø °tÔ7Nð ñ 
ô 
ˆð 	×ÒÑÔÐØ×Ò˜œ¨Ñ4Ô4Ð4Ð4Ð4r4   c                 ó¤   — |                       dd| j        ddi¬¦  «        }|                     ¦   «          |                      |j        d¦  «         d S ©Nrµ   r   r]   Ú8©rû   rn  r†   ro  rp  rð   s     r2   Ú&test_sync_body_producer_content_lengthz@SimpleHTTPClientTestMixin.test_sync_body_producer_content_lengthÀ  s`   € Ø—:’:ØØØÔ1Ø% sÐ+ð	 ñ 
ô 
ˆð 	×ÒÑÔÐØ×Ò˜œ¨Ñ4Ô4Ð4Ð4Ð4r4   c                 óž   — |                       dd| j        ¬¦  «        }|                     ¦   «          |                      |j        d¦  «         d S rl  ©r    rj  ré   rá   rz   rð   s     r2   Ú test_async_body_producer_chunkedz:SimpleHTTPClientTestMixin.test_async_body_producer_chunkedÊ  sV   € Ø—:’:Ø °tÔ7Oð ñ 
ô 
ˆð 	×ÒÑÔÐØ×Ò˜œ¨Ñ4Ô4Ð4Ð4Ð4r4   c                 ó¤   — |                       dd| j        ddi¬¦  «        }|                     ¦   «          |                      |j        d¦  «         d S rs  rx  rð   s     r2   Ú'test_async_body_producer_content_lengthzASimpleHTTPClientTestMixin.test_async_body_producer_content_lengthÑ  s`   € Ø—:’:ØØØÔ2Ø% sÐ+ð	 ñ 
ô 
ˆð 	×ÒÑÔÐØ×Ò˜œ¨Ñ4Ô4Ð4Ð4Ð4r4   c                 óš   — d„ }|                       dd|¬¦  «        }|                     ¦   «          |                      |j        d¦  «         d S )Nc              “   óŒ   K  —  | d¦  «        ƒ d {V —† dd l }|                     d¦  «        ƒ d {V —†  | d¦  «        ƒ d {V —† d S ©Nrd  r   re  ©ÚasynciorÃ   ©rX   r€  s     r2   rn  zRSimpleHTTPClientTestMixin.test_native_body_producer_chunked.<locals>.body_producerÜ  óy   è è € Ø�%˜‘.”.Ð Ð Ð Ð Ð Ð Ð ØˆNˆNˆNà—-’- Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ø�%˜‘.”.Ð Ð Ð Ð Ð Ð Ð Ð Ð r4   rµ   r   rm  ro  ©r    ré   rá   rz   ©r0   rn  rê   s      r2   Ú!test_native_body_producer_chunkedz;SimpleHTTPClientTestMixin.test_native_body_producer_chunkedÛ  sZ   € ð	!ð 	!ð 	!ð —:’:˜l°6È�:ÑWÔWˆØ×ÒÑÔÐØ×Ò˜œ¨Ñ4Ô4Ð4Ð4Ð4r4   c                 ó    — d„ }|                       dd|ddi¬¦  «        }|                     ¦   «          |                      |j        d¦  «         d S )Nc              “   óŒ   K  —  | d¦  «        ƒ d {V —† dd l }|                     d¦  «        ƒ d {V —†  | d¦  «        ƒ d {V —† d S r~  r  r�  s     r2   rn  zYSimpleHTTPClientTestMixin.test_native_body_producer_content_length.<locals>.body_producerè  r‚  r4   rµ   r   r]   rt  ru  ro  rƒ  r„  s      r2   Ú(test_native_body_producer_content_lengthzBSimpleHTTPClientTestMixin.test_native_body_producer_content_lengthç  sn   € ð	!ð 	!ð 	!ð —:’:ØØØ'Ø% sÐ+ð	 ñ 
ô 
ˆð 	×ÒÑÔÐØ×Ò˜œ¨Ñ4Ô4Ð4Ð4Ð4r4   c                 ón   — |                       dddd¬¦  «        }|                      |j        d¦  «         d S )Nrµ   r   rd  T)rû   rz   Úexpect_100_continue)r    rá   rz   rð   s     r2   Útest_100_continuez+SimpleHTTPClientTestMixin.test_100_continueø  sC   € Ø—:’:Ø ¨gÈ4ð ñ 
ô 
ˆð 	×Ò˜œ¨Ñ0Ô0Ð0Ð0Ð0r4   c                 ót   — d„ }|                       dd|d¬¦  «        }|                      |j        d¦  «         d S )Nc                 ó    — t          d¦  «        ‚)Nzshould not be called)r�   ©rX   s    r2   rn  zQSimpleHTTPClientTestMixin.test_100_continue_early_response.<locals>.body_producerÿ  s   € ÝÐ2Ñ3Ô3Ð3r4   r¶   r   T)rû   rn  rŠ  r‘   )r    rá   rí   r„  s      r2   Ú test_100_continue_early_responsez:SimpleHTTPClientTestMixin.test_100_continue_early_responseþ  sW   € ð	4ð 	4ð 	4ð —:’:Ø!ØØ'Ø $ð	 ñ 
ô 
ˆð 	×Ò˜œ¨Ñ,Ô,Ð,Ð,Ð,r4   c                 ó"  — g }g }|                       d|j        |j        ¬¦  «         t          t          t          |¦  «        ¦  «        }|                      |dg¦  «         t          d„ |D ¦   «         ¦  «        }|                      |d¦  «         d S )Nz/redirect?url=/hello)Úheader_callbackÚstreaming_callbackzHello world!c                 ó<   — g | ]}|                      d ¦  «        ¯|‘ŒS )zHTTP/)rŠ   )Ú.0Úhs     r2   ú
<listcomp>zMSimpleHTTPClientTestMixin.test_streaming_follow_redirects.<locals>.<listcomp>  s)   € ÐKÐKÐK Q°Q·\²\À'Ñ5JÔ5JÐK˜qÐKÐKÐKr4   rÞ   )r    rF   rõ   Úmapr   rá   rÚ   )r0   r†   Úchunk_bytesÚchunksÚnum_start_liness        r2   Útest_streaming_follow_redirectsz9SimpleHTTPClientTestMixin.test_streaming_follow_redirects
  s¡   € ð ˆØˆØ�
Š
Ø"Ø#œNØ*Ô1ð 	ñ 	
ô 	
ð 	
õ
 •c�* kÑ2Ô2Ñ3Ô3ˆØ×Ò˜ .Ð!1Ñ2Ô2Ð2åÐKÐK¨'ÐKÑKÔKÑLÔLˆØ×Ò˜¨!Ñ,Ô,Ð,Ð,Ð,r4   N)F)2r5   r6   r7   rx   rš   rL  ÚboolÚtypingÚAnyr	   r    r¢   r¤   r
   r¦   r©   r¾   rÌ   rå   r    rë   rñ   r÷   rþ   r  r  r  r"   r'  r.  r3  r7  r:  rA  rV  r]  ra  rg  r   rL   rj  rq  rv  ry  r{  r…  rˆ  r‹  r�  r›  r8   r4   r2   r•   r•   –   sÜ  € € € € € ð$˜sð $ð $ð $ð $ð .3ð$ð $Øð$Ø&*ð$Ø>D¼jð$à	ð$ð $ð $ð $ð$˜Cð $ Cð $ð $ð $ð $ð$˜cð $ð $ð $ð $ð$ ð $ð $ð $ð $ð$ð $ð $ð
ð 
ð 
ð>/ð /ð /ð$4ð 4ð 4ð< ðð ñ „XððOð Oð OðKð Kð KðGð Gð Gð
>ð >ð >ð ðð ñ „Xðð6	4ð 	4ð 	4ð ð9ð 9ñ „\ð9ðOð Oð Oð(ð (ð (ð/ð /ð /ð=ð =ð =ðEð Eð EðQð Qð Qð(0ð 0ð 0ð 6ð 6ð 6ðð ð ð 	„]ðð ñ „]ðð
5ð 5ð 5ð5ð 5ð 5ð5ð 5ð 5ð5ð 5ð 5ð
5ð 
5ð 
5ð5ð 5ð 5ð"1ð 1ð 1ð
-ð 
-ð 
-ð-ð -ð -ð -ð -r4   r•   c                   ó*   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zˆ xZS )ÚSimpleHTTPClientTestCasec                 óz   •— t          ¦   «                              ¦   «          |                      ¦   «         | _        d S r<   ©ÚsuperÚsetUpr©   Úhttp_client©r0   Ú	__class__s    €r2   r¤  zSimpleHTTPClientTestCase.setUp   ó.   ø€ Ý‰Œ�Š‰ŒˆØ×-Ò-Ñ/Ô/ˆÔÐÐr4   c                 ó*   — |                       ¦   «         S r<   ©r¾   rU   s    r2   Úget_appz SimpleHTTPClientTestCase.get_app$  ó   € Ø×!Ò!Ñ#Ô#Ð#r4   c                 ó   — t          dddi|¤ŽS )Nr,   Tr8   ©r   r¨   s     r2   r©   z&SimpleHTTPClientTestCase.create_client'  s   € Ý$ÐCÐC°DÐC¸FÐCÐCÐCr4   )r5   r6   r7   r¤  r«  r©   Ú__classcell__©r§  s   @r2   r   r     s]   ø€ € € € € ð0ð 0ð 0ð 0ð 0ð$ð $ð $ðDð Dð Dð Dð Dð Dð Dr4   r   c                   óH   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ˆ xZS )	ÚSimpleHTTPSClientTestCasec                 óz   •— t          ¦   «                              ¦   «          |                      ¦   «         | _        d S r<   r¢  r¦  s    €r2   r¤  zSimpleHTTPSClientTestCase.setUp,  r¨  r4   c                 ó*   — |                       ¦   «         S r<   rª  rU   s    r2   r«  z!SimpleHTTPSClientTestCase.get_app0  r¬  r4   c                 ó<   — t          ddt          d¬¦  «        dœ|¤ŽS )NTF)Úvalidate_cert)r,   Údefaultsr8   )r   r¼   r¨   s     r2   r©   z'SimpleHTTPSClientTestCase.create_client3  s6   € Ý$ð 
Ø­$¸UÐ*CÑ*CÔ*Cð
ð 
ØGMð
ð 
ð 	
r4   c                 ó‚   — |                       ddt          j        i¬¦  «        }|                      |j        d¦  «         d S )Nr®   Ú	cert_reqs©Ússl_optionsr!  )r    ÚsslÚ	CERT_NONErá   rz   ©r0   Úresps     r2   Útest_ssl_optionsz*SimpleHTTPSClientTestCase.test_ssl_options8  s<   € Ø�zŠz˜(°½c¼mÐ0LˆzÑMÔMˆØ×Ò˜œ OÑ4Ô4Ð4Ð4Ð4r4   c                 óà   — t          j        t           j        j        ¦  «        }d|_        t           j        |_        |                      d|¬¦  «        }|                      |j	        d¦  «         d S )NFr®   rº  r!  )
r¼  Úcreate_default_contextÚPurposeÚSERVER_AUTHÚcheck_hostnamer½  Úverify_moder    rá   rz   )r0   Ússl_ctxr¿  s      r2   Útest_ssl_contextz*SimpleHTTPSClientTestCase.test_ssl_context<  s\   € ÝÔ,­S¬[Ô-DÑEÔEˆØ!&ˆÔÝ!œmˆÔØ�zŠz˜(°ˆzÑ8Ô8ˆØ×Ò˜œ OÑ4Ô4Ð4Ð4Ð4r4   c                 ó4  — t          t          dd¬¦  «        5  |                      t          j        ¦  «        5  |                      dt          t          j        ¬¦  «        d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NúSSL Error|Uncaught exceptionFrD  r®   )r¹  T©r»  r�   )r   r   r  r¼  ÚSSLErrorr    r¼   ÚCERT_REQUIREDrU   s    r2   Útest_ssl_options_handshake_failz9SimpleHTTPSClientTestCase.test_ssl_options_handshake_failC  s  € Ý•wÐ >ÈÐOÑOÔOð 	ð 	Ø×"Ò"¥3¤<Ñ0Ô0ð ð Ø—
’
ØÝ $­sÔ/@Ð AÑ AÔ AØ $ð ñ ô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s4   ˜ B¸1A5Á)BÁ5A9	Á9BÁ<A9	Á=BÂBÂBc                 óF  — t          t          d¦  «        5  t          j        t          j        j        ¦  «        }|                      t          j        ¦  «        5  |                      d|d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NrÊ  r®   TrË  )	r   r   r¼  rÂ  rÃ  rÄ  r  rÌ  r    )r0   Úctxs     r2   Útest_ssl_context_handshake_failz9SimpleHTTPSClientTestCase.test_ssl_context_handshake_failL  s4  € Ý•wÐ >Ñ?Ô?ð 	Hð 	HåÔ,­S¬[Ô-DÑEÔEˆCØ×"Ò"¥3¤<Ñ0Ô0ð Hð HØ—
’
˜8°À$�
ÑGÔGÐGðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hð 	Hð 	Hs6   –ABÁA>Á2BÁ>B	ÂBÂB	ÂBÂBÂBc                 ó2  — t          t          d¦  «        5 }|                      t          j        ¦  «        5  |                      ddd¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                      |j        ¦  «         d S )NrC  ú/T)r¶  r�   )r   r   r  r¼  rÌ  r    r2  Úlogged_stack)r0   Ú
expect_logs     r2   Útest_error_loggingz,SimpleHTTPSClientTestCase.test_error_loggingS  s)  € õ •w Ñ%Ô%ð 	F¨Ø×"Ò"¥3¤<Ñ0Ô0ð Fð FØ—
’
˜3¨dÀ�
ÑEÔEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð	Fð 	Fð 	Fñ 	Fô 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Føøøð 	Fð 	Fð 	Fð 	Fð 	×Ò˜Ô0Ñ1Ô1Ð1Ð1Ð1s4   – A2¶AÁA2ÁA	ÁA2Á"A	Á#A2Á2A6Á9A6)r5   r6   r7   r¤  r«  r©   rÀ  rÈ  rÎ  rÑ  rÖ  r¯  r°  s   @r2   r²  r²  +  s¤   ø€ € € € € ð0ð 0ð 0ð 0ð 0ð$ð $ð $ð
ð 
ð 
ð
5ð 5ð 5ð5ð 5ð 5ðð ð ðHð Hð Hð2ð 2ð 2ð 2ð 2ð 2ð 2r4   r²  c                   ó.   ‡ — e Zd Zˆ fd„Zˆ fd„Zd„ Zˆ xZS )ÚCreateAsyncHTTPClientTestCasec                 óx   •— t          ¦   «                              ¦   «          t          j        ¦   «         | _        d S r<   )r£  r¤  r   Ú_save_configurationÚsavedr¦  s    €r2   r¤  z#CreateAsyncHTTPClientTestCase.setUp^  s(   ø€ Ý‰Œ�Š‰ŒˆÝ$Ô8Ñ:Ô:ˆŒ
ˆ
ˆ
r4   c                 óz   •— t          j        | j        ¦  «         t          ¦   «                              ¦   «          d S r<   )r   Ú_restore_configurationrÛ  r£  ÚtearDownr¦  s    €r2   rÞ  z&CreateAsyncHTTPClientTestCase.tearDownb  s2   ø€ ÝÔ.¨t¬zÑ:Ô:Ð:Ý‰Œ×ÒÑÔÐÐÐr4   c                 ó–  — t          j        t          ¦  «         t          t          d¬¦  «        ¦  «        5 }|                      |j        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          dd¬¦  «        ¦  «        5 }|                      |j        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «         t          t          d¬¦  «        ¦  «        5 }|                      |j        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          dd¬¦  «        ¦  «        5 }|                      |j        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d	d¬¦  «        ¦  «        5 }|                      |j        d	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
NTr+   rX  é   )rÐ   r,   é   rÏ   é   é   )r   Ú	configurer   r   rá   rÐ   r/   s     r2   Útest_max_clientsz.CreateAsyncHTTPClientTestCase.test_max_clientsf  sÖ  € ÝÔ!Õ"7Ñ8Ô8Ð8Ý•_°DÐ9Ñ9Ô9Ñ:Ô:ð 	5¸fØ×Ò˜VÔ/°Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5å•_°ÀDÐIÑIÔIÑJÔJð 	5ÈfØ×Ò˜VÔ/°Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5õ
 	Ô!Õ"7ÀRÐHÑHÔHÐHÝ•_°DÐ9Ñ9Ô9Ñ:Ô:ð 	5¸fØ×Ò˜VÔ/°Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5å•_°ÀDÐIÑIÔIÑJÔJð 	5ÈfØ×Ò˜VÔ/°Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5å•_°ÀDÐIÑIÔIÑJÔJð 	5ÈfØ×Ò˜VÔ/°Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5sY   ·AÁA#Á&A#ÂB0Â0B4Â7B4Ã3DÄDÄ"DÅE,Å,E0Å3E0ÆF>Æ>GÇG)r5   r6   r7   r¤  rÞ  rå  r¯  r°  s   @r2   rØ  rØ  ]  s`   ø€ € € € € ð;ð ;ð ;ð ;ð ;ðð ð ð ð ð5ð 5ð 5ð 5ð 5ð 5ð 5r4   rØ  c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚHTTP100ContinueTestCasec                 ó~  — |j                              d¦  «        | _        | j        sQ|j                             t          ddd¦  «        t          ¦   «         ¦  «         |j                             ¦   «          d S || _        | j        j        j	         
                    d¦  «        }|                     | j        ¦  «         d S )NúHTTP/1.Ú rü   ÚOKs   HTTP/1.1 100 CONTINUE

)r   rŠ   Úhttp1Ú
connectionÚwrite_headersr   r   rn   ry   rQ   rX   rã   Úrespond_200)r0   ry   rÓ   s      r2   Úrespond_100z#HTTP100ContinueTestCase.respond_100y  s¯   € Ø”_×/Ò/°	Ñ:Ô:ˆŒ
ØŒzð 	ØÔ×,Ò,Ý! " c¨4Ñ0Ô0µ+±-´-ñô ð ð Ô×%Ò%Ñ'Ô'Ð'ØˆFØˆŒØŒlÔ%Ô,×2Ò2Ð3SÑTÔTˆØ×Ò˜dÔ.Ñ/Ô/Ð/Ð/Ð/r4   c                 ó¨   ‡ — |                      ¦   «          ‰ j        j        j                             d¦  «        }|                     ˆ fd„¦  «         d S )Ns'   HTTP/1.1 200 OK
Content-Length: 1

Ac                 óJ   •— ‰j         j        j                             ¦   «         S r<   )ry   rí  rQ   rY   )Úfr0   s    €r2   rÛ   z5HTTP100ContinueTestCase.respond_200.<locals>.<lambda>Š  s   ø€ ¨¬Ô(?Ô(F×(LÒ(LÑ(NÔ(N€ r4   )Úresultry   rí  rQ   rX   rã   )r0   rÓ   s   ` r2   rï  z#HTTP100ContinueTestCase.respond_200…  sV   ø€ Ø�
Š
‰ŒˆØŒlÔ%Ô,×2Ò2Ø<ñ
ô 
ˆð 	×ÒÐNÐNÐNÐNÑOÔOÐOÐOÐOr4   c                 ó   — | j         S r<   )rð  rU   s    r2   r«  zHTTP100ContinueTestCase.get_appŒ  s   € àÔÐr4   c                 óž   — |                       d¦  «        }| j        s|                      d¦  «         |                      |j        d¦  «         d S )NrÓ  r_  ó   A)r    rì  r`  rá   rz   )r0   Úress     r2   r‹  z)HTTP100ContinueTestCase.test_100_continue�  sL   € Ø�jŠj˜‰oŒoˆØŒzð 	/Ø�MŠMÐ-Ñ.Ô.Ð.Ø×Ò˜œ 4Ñ(Ô(Ð(Ð(Ð(r4   N)r5   r6   r7   rð  rï  r«  r‹  r8   r4   r2   rç  rç  x  sS   € € € € € ð
0ð 
0ð 
0ðPð Pð Pð ð  ð  ð)ð )ð )ð )ð )r4   rç  c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚHTTP204NoContentTestCasec                 ó<  — |j                              d¦  «        | _        | j        sQ|j                             t          ddd¦  «        t          ¦   «         ¦  «         |j                             ¦   «          d S |j                             ¦   «         }| 	                    d¦  «         |j
                             ddg¦  «        d         r| 	                    d	¦  «         n| 	                    d
¦  «         | 	                    d¦  «         |                     ¦   «          d S )Nré  rê  rü   rë  s   HTTP/1.1 204 No content
rI  Féÿÿÿÿs   Content-Length: 5
s   Content-Length: 0
s   
)r   rŠ   rì  rí  rî  r   r   rn   rP   rX   Ú	argumentsrK   rY   )r0   ry   rQ   s      r2   Úrespond_204z$HTTP204NoContentTestCase.respond_204˜  s  € Ø”_×/Ò/°	Ñ:Ô:ˆŒ
ØŒzð 	àÔ×,Ò,Ý! " c¨4Ñ0Ô0µ+±-´-ñô ð ð Ô×%Ò%Ñ'Ô'Ð'ØˆFð Ô#×*Ò*Ñ,Ô,ˆØ�ŠÐ3Ñ4Ô4Ð4ØÔ× Ò  ¨5¨'Ñ2Ô2°2Ô6ð 	3Ø�LŠLÐ1Ñ2Ô2Ð2Ð2à�LŠLÐ1Ñ2Ô2Ð2Ø�Š�WÑÔÐØ�Š‰Œˆˆˆr4   c                 ó   — | j         S r<   )rþ  rU   s    r2   r«  z HTTP204NoContentTestCase.get_app±  s   € ØÔÐr4   c                 óÔ   — |                       d¦  «        }| j        s|                      d¦  «         |                      |j        d¦  «         |                      |j        d¦  «         d S )NrÓ  r_  rk   r4   )r    rì  r`  rá   rí   rz   r¾  s     r2   Útest_204_no_contentz,HTTP204NoContentTestCase.test_204_no_content´  sd   € Ø�zŠz˜#‰ŒˆØŒzð 	/Ø�MŠMÐ-Ñ.Ô.Ð.Ø×Ò˜œ CÑ(Ô(Ð(Ø×Ò˜œ CÑ(Ô(Ð(Ð(Ð(r4   c                 ó˜  — t          t          dt          j        ¬¦  «        5  |                      t
          ¦  «        5  |                      dd¬¦  «         | j        s|                      d¦  «         | j	        j
        t          k    r|                      d¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nz-.*Response with code 204 should not have bodyr*  z	/?error=1Tr,  r_  z#curl client accepts invalid headers)r   r   rD   r-  r  r   r    rì  r`  r¥  Úconfigured_classr   rU   s    r2   Útest_204_invalid_content_lengthz8HTTP204NoContentTestCase.test_204_invalid_content_length»  sn  € åÝÐDÍGÌLð
ñ 
ô 
ð 	Ið 	Ið ×"Ò"Õ#8Ñ9Ô9ð Ið IØ—
’
˜;°D�
Ñ9Ô9Ð9Ø”zð 7Ø—M’MÐ"5Ñ6Ô6Ð6ØÔ#Ô4Õ8MÒMÐMØ—M’MÐ"GÑHÔHÐHðIð Ið Iñ Iô Ið Ið Ið Ið Ið Ið Iøøøð Ið Ið Ið Ið	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Ið 	Ið 	Is5   ¢B?½AB'ÂB?Â'B+	Â+B?Â.B+	Â/B?Â?CÃCN)r5   r6   r7   rþ  r«  r  r  r8   r4   r2   rú  rú  —  sU   € € € € € ðð ð ð2 ð  ð  ð)ð )ð )ð
Ið 
Ið 
Ið 
Ið 
Ir4   rú  c                   ó0   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zˆ xZS )ÚHostnameMappingTestCasec                 ó    •— t          ¦   «                              ¦   «          t          dd|                      ¦   «         fdœ¬¦  «        | _        d S )Nr  )zwww.example.com)zfoo.example.comi@  )Úhostname_mapping)r£  r¤  r   rš   r¥  r¦  s    €r2   r¤  zHostnameMappingTestCase.setUpÉ  sR   ø€ Ý‰Œ�Š‰ŒˆÝ0à#.Ø,7¸×9KÒ9KÑ9MÔ9MÐ+Nðð ð
ñ 
ô 
ˆÔÐÐr4   c                 óH   — t          t          dt          ¦  «        g¦  «        S ©Nr®   ©r%   r&   r   rU   s    r2   r«  zHostnameMappingTestCase.get_appÒ  ó   € Ý�C Õ*;Ñ<Ô<Ð=Ñ>Ô>Ð>r4   c                 ó¸   — |                       d|                      ¦   «         z  ¦  «        }|                     ¦   «          |                      |j        d¦  «         d S )Nzhttp://www.example.com:%d/hellor!  )r    rš   ré   rá   rz   rð   s     r2   Útest_hostname_mappingz-HostnameMappingTestCase.test_hostname_mappingÕ  sU   € Ø—:’:Ð?À$×BTÒBTÑBVÔBVÑVÑWÔWˆØ×ÒÑÔÐØ×Ò˜œ¨Ñ8Ô8Ð8Ð8Ð8r4   c                 óŽ   — |                       d¦  «        }|                     ¦   «          |                      |j        d¦  «         d S )Nz!http://foo.example.com:8000/hellor!  rƒ  rð   s     r2   Útest_port_mappingz)HostnameMappingTestCase.test_port_mappingÚ  sD   € Ø—:’:ÐAÑBÔBˆØ×ÒÑÔÐØ×Ò˜œ¨Ñ8Ô8Ð8Ð8Ð8r4   )r5   r6   r7   r¤  r«  r  r  r¯  r°  s   @r2   r  r  È  se   ø€ € € € € ð
ð 
ð 
ð 
ð 
ð?ð ?ð ?ð9ð 9ð 9ð
9ð 9ð 9ð 9ð 9ð 9ð 9r4   r  c                   ó*   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zˆ xZS )ÚResolveTimeoutTestCasec                 óØ   •‡— t          ¦   «         | _        | Š G ˆfd„dt          ¦  «        }t          ¦   «                              ¦   «          t           |¦   «         ¬¦  «        | _        d S )Nc                   ó4   •— e Zd Zej        ˆ fd„¦   «         ZdS )ú1ResolveTimeoutTestCase.setUp.<locals>.BadResolverc              ?   ó„   •K  — ‰j                              ¦   «         V — t          j        d‰                     ¦   «         ffgS r  )r  rI   r	  r
  rš   )r0   r  rž   r  s      €r2   r  z9ResolveTimeoutTestCase.setUp.<locals>.BadResolver.resolveç  sC   øè è € àÔ(×-Ò-Ñ/Ô/Ð/Ð/Ð/åœ¨+°t×7IÒ7IÑ7KÔ7KÐ)LÐMÐNÐNr4   N)r5   r6   r7   r   rL   r  )r  s   €r2   ÚBadResolverr  æ  sA   ø€ € € € € ØŒ]ðOð Oð Oð Oñ Œ]ðOð Oð Or4   r  r  )r   r  r   r£  r¤  r   r¥  )r0   r  r  r§  s     @€r2   r¤  zResolveTimeoutTestCase.setUpá  s…   øø€ Ý"™WœWˆÔØˆð	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	O�(ñ 	Oô 	Oð 	Oõ 	‰Œ�Š‰ŒˆÝ0¸+¸+¹-¼-ÐHÑHÔHˆÔÐÐr4   c                 óH   — t          t          dt          ¦  «        g¦  «        S r
  r  rU   s    r2   r«  zResolveTimeoutTestCase.get_appð  r  r4   c                 ó  — |                       t          ¦  «        5  |                      ddd¬¦  «         d d d ¦  «         n# 1 swxY w Y   | j                             ¦   «          | j                             d„ ¦  «         d S )Nr®   r  TrZ  c                  ó*   — t          j        d¦  «        S rÂ   r  r8   r4   r2   rÛ   z=ResolveTimeoutTestCase.test_resolve_timeout.<locals>.<lambda>ù  r  r4   )r  r   r    r  rG   rÇ   rÈ   rU   s    r2   Útest_resolve_timeoutz+ResolveTimeoutTestCase.test_resolve_timeoutó  sÌ   € Ø×ÒÕ/Ñ0Ô0ð 	Hð 	HØ�JŠJ�x°À$ˆJÑGÔGÐGð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hð 	Ô×ÒÑ Ô Ð ØŒ×ÒÐ2Ð2Ñ3Ô3Ð3Ð3Ð3s   ›A Á AÁA)r5   r6   r7   r¤  r«  r  r¯  r°  s   @r2   r  r  à  s[   ø€ € € € € ðIð Ið Ið Ið Ið?ð ?ð ?ð4ð 4ð 4ð 4ð 4ð 4ð 4r4   r  c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚMaxHeaderSizeTestc                 óx   —  G d„ dt           ¦  «        } G d„ dt           ¦  «        }t          d|fd|fg¦  «        S )Nc                   ó   — e Zd Zd„ ZdS )ú/MaxHeaderSizeTest.get_app.<locals>.SmallHeadersc                 ó\   — |                       dd¦  «         |                      d¦  «         d S )NúX-FillerÚdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaare   rf   rU   s    r2   rK   z3MaxHeaderSizeTest.get_app.<locals>.SmallHeaders.getÿ  s.   € Ø—’ 
¨IÑ6Ô6Ð6Ø—
’
˜4Ñ Ô Ð Ð Ð r4   Nro   r8   r4   r2   ÚSmallHeadersr   þ  ó#   € € € € € ð!ð !ð !ð !ð !r4   r$  c                   ó   — e Zd Zd„ ZdS )ú/MaxHeaderSizeTest.get_app.<locals>.LargeHeadersc                 ó\   — |                       dd¦  «         |                      d¦  «         d S )Nr"  Áè  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaare   rf   rU   s    r2   rK   z3MaxHeaderSizeTest.get_app.<locals>.LargeHeaders.get  s.   € Ø—’ 
¨JÑ7Ô7Ð7Ø—
’
˜4Ñ Ô Ð Ð Ð r4   Nro   r8   r4   r2   ÚLargeHeadersr'    r%  r4   r*  ú/smallú/large©r$   r%   )r0   r$  r*  s      r2   r«  zMaxHeaderSizeTest.get_appý  su   € ð	!ð 	!ð 	!ð 	!ð 	!�>ñ 	!ô 	!ð 	!ð
	!ð 	!ð 	!ð 	!ð 	!�>ñ 	!ô 	!ð 	!õ
 ˜X |Ð4°xÀÐ6NÐOÑPÔPÐPr4   c                 ó"   — t          d¬¦  «        S )Ni   )Úmax_header_sizer®  rU   s    r2   r3   z!MaxHeaderSizeTest.get_http_client
  s   € Ý$°TÐ:Ñ:Ô:Ð:r4   c                 óŽ   — |                       d¦  «        }|                     ¦   «          |                      |j        d¦  «         d S )Nr+  r)  rƒ  rð   s     r2   Útest_small_headersz$MaxHeaderSizeTest.test_small_headers  sC   € Ø—:’:˜hÑ'Ô'ˆØ×ÒÑÔÐØ×Ò˜œ¨Ñ.Ô.Ð.Ð.Ð.r4   c                 ó  — t          t          dt          j        ¬¦  «        5  |                      t
          ¦  «        5  |                      dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NzUnsatisfiable readr*  r,  Tr,  )r   r   rD   r-  r  r   r    rU   s    r2   Útest_large_headersz$MaxHeaderSizeTest.test_large_headers  sþ   € Ý•wÐ 4½G¼LÐIÑIÔIð 	7ð 	7Ø×"Ò"Õ#9Ñ:Ô:ð 7ð 7Ø—
’
˜8°�
Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ó4   ¢A9½A!ÁA9Á!A%	Á%A9Á(A%	Á)A9Á9A=Â A=N)r5   r6   r7   r«  r3   r1  r3  r8   r4   r2   r  r  ü  sS   € € € € € ðQð Qð Qð;ð ;ð ;ð/ð /ð /ð
7ð 7ð 7ð 7ð 7r4   r  c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚMaxBodySizeTestc                 óx   —  G d„ dt           ¦  «        } G d„ dt           ¦  «        }t          d|fd|fg¦  «        S )Nc                   ó   — e Zd Zd„ ZdS )ú*MaxBodySizeTest.get_app.<locals>.SmallBodyc                 ó6   — |                       ddz  ¦  «         d S )NÁ   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaé@   rŽ  rU   s    r2   rK   z.MaxBodySizeTest.get_app.<locals>.SmallBody.get  s   € Ø—
’
˜:¨™?Ñ+Ô+Ð+Ð+Ð+r4   Nro   r8   r4   r2   Ú	SmallBodyr9    s#   € € € € € ð,ð ,ð ,ð ,ð ,r4   r=  c                   ó   — e Zd Zd„ ZdS )ú*MaxBodySizeTest.get_app.<locals>.LargeBodyc                 ó6   — |                       ddz  ¦  «         d S ©Nr;  éd   rŽ  rU   s    r2   rK   z.MaxBodySizeTest.get_app.<locals>.LargeBody.get  ó   € Ø—
’
˜:¨Ñ+Ñ,Ô,Ð,Ð,Ð,r4   Nro   r8   r4   r2   Ú	LargeBodyr?    ó#   € € € € € ð-ð -ð -ð -ð -r4   rD  r+  r,  r-  )r0   r=  rD  s      r2   r«  zMaxBodySizeTest.get_app  su   € ð	,ð 	,ð 	,ð 	,ð 	,�ñ 	,ô 	,ð 	,ð	-ð 	-ð 	-ð 	-ð 	-�ñ 	-ô 	-ð 	-õ ˜X yÐ1°H¸iÐ3HÐIÑJÔJÐJr4   c                 ó"   — t          d¬¦  «        S )Né   )Úmax_body_sizer®  rU   s    r2   r3   zMaxBodySizeTest.get_http_client$  s   € Ý$°9Ð=Ñ=Ô=Ð=r4   c                 ó”   — |                       d¦  «        }|                     ¦   «          |                      |j        ddz  ¦  «         d S )Nr+  ó   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar<  rƒ  rð   s     r2   Útest_small_bodyzMaxBodySizeTest.test_small_body'  sH   € Ø—:’:˜hÑ'Ô'ˆØ×ÒÑÔÐØ×Ò˜œ¨°bÑ(8Ñ9Ô9Ð9Ð9Ð9r4   c                 ó  — t          t          dt          j        ¬¦  «        5  |                      t
          ¦  «        5  |                      dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nz9Malformed HTTP message from None: Content-Length too longr*  r,  Tr,  ©r   r   rD   r-  r  r   r    rU   s    r2   Útest_large_bodyzMaxBodySizeTest.test_large_body,  s  € ÝÝØGÝ”,ð
ñ 
ô 
ð 	7ð 	7ð
 ×"Ò"Õ#8Ñ9Ô9ð 7ð 7Ø—
’
˜8°�
Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7r4  N)r5   r6   r7   r«  r3   rK  rN  r8   r4   r2   r6  r6    sS   € € € € € ð	Kð 	Kð 	Kð>ð >ð >ð:ð :ð :ð
7ð 7ð 7ð 7ð 7r4   r6  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚMaxBufferSizeTestc                 óL   —  G d„ dt           ¦  «        }t          d|fg¦  «        S )Nc                   ó   — e Zd Zd„ ZdS )ú,MaxBufferSizeTest.get_app.<locals>.LargeBodyc                 ó6   — |                       ddz  ¦  «         d S rA  rŽ  rU   s    r2   rK   z0MaxBufferSizeTest.get_app.<locals>.LargeBody.get9  rC  r4   Nro   r8   r4   r2   rD  rS  8  rE  r4   rD  r,  r-  )r0   rD  s     r2   r«  zMaxBufferSizeTest.get_app7  sD   € ð	-ð 	-ð 	-ð 	-ð 	-�ñ 	-ô 	-ð 	-õ ˜X yÐ1Ð2Ñ3Ô3Ð3r4   c                 ó$   — t          dd¬¦  «        S )Ni � rG  )rH  Úmax_buffer_sizer®  rU   s    r2   r3   z!MaxBufferSizeTest.get_http_client>  s   € å$Ø$°ið
ñ 
ô 
ð 	
r4   c                 ó”   — |                       d¦  «        }|                     ¦   «          |                      |j        ddz  ¦  «         d S )Nr,  rJ  rB  rƒ  rð   s     r2   rN  z!MaxBufferSizeTest.test_large_bodyD  sH   € Ø—:’:˜hÑ'Ô'ˆØ×ÒÑÔÐØ×Ò˜œ¨°cÑ(9Ñ:Ô:Ð:Ð:Ð:r4   N)r5   r6   r7   r«  r3   rN  r8   r4   r2   rP  rP  6  sA   € € € € € ð4ð 4ð 4ð
ð 
ð 
ð;ð ;ð ;ð ;ð ;r4   rP  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚChunkedWithContentLengthTestc                 óL   —  G d„ dt           ¦  «        }t          d|fg¦  «        S )Nc                   ó   — e Zd Zd„ ZdS )úFChunkedWithContentLengthTest.get_app.<locals>.ChunkedWithContentLengthc                 ó\   — |                       dd¦  «         |                      d¦  «         d S )NzTransfer-EncodingÚchunkedzHello worldrf   rU   s    r2   rK   zJChunkedWithContentLengthTest.get_app.<locals>.ChunkedWithContentLength.getM  s/   € à—’Ð 3°YÑ?Ô?Ð?Ø—
’
˜=Ñ)Ô)Ð)Ð)Ð)r4   Nro   r8   r4   r2   ÚChunkedWithContentLengthr\  L  s#   € € € € € ð*ð *ð *ð *ð *r4   r_  ú/chunkwithclr-  )r0   r_  s     r2   r«  z$ChunkedWithContentLengthTest.get_appK  sE   € ð	*ð 	*ð 	*ð 	*ð 	*¥~ñ 	*ô 	*ð 	*õ ˜^Ð-EÐFÐGÑHÔHÐHr4   c                 ó   — t          ¦   «         S r<   r®  rU   s    r2   r3   z,ChunkedWithContentLengthTest.get_http_clientT  s   € Ý$Ñ&Ô&Ð&r4   c                 ó  — t          t          dt          j        ¬¦  «        5  |                      t
          ¦  «        5  |                      dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NzXMalformed HTTP message from None: Message with both Transfer-Encoding and Content-Lengthr*  r`  Tr,  rM  rU   s    r2   Ú test_chunked_with_content_lengthz=ChunkedWithContentLengthTest.test_chunked_with_content_lengthW  s  € åÝðAõ ”,ð
ñ 
ô 
ð 		=ð 		=ð ×"Ò"Õ#8Ñ9Ô9ð =ð =Ø—
’
˜>°t�
Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð		=ð 		=ð 		=ñ 		=ô 		=ð 		=ð 		=ð 		=ð 		=ð 		=ð 		=ð 		=øøøð 		=ð 		=ð 		=ð 		=ð 		=ð 		=r4  N)r5   r6   r7   r«  r3   rc  r8   r4   r2   rY  rY  J  sD   € € € € € ðIð Ið Ið'ð 'ð 'ð=ð =ð =ð =ð =r4   rY  )Xr¹   Ú
contextlibr   rM  rD   r  r<  r	  r¼  rJ  r�  Útornado.escaper   r   Útornador   r   Útornado.httpclientr   r	   Útornado.httpserverr
   Útornado.httputilr   r   Útornado.ioloopr   Útornado.iostreamr   Útornado.locksr   Útornado.logr   Útornado.netutilr   r   Útornado.simple_httpclientr   r   r   Útornado.test.httpclient_testr   r   r   r   r   Útornado.testr   Útornado.testingr   r   r   r   r    Útornado.test.utilr!   r"   r#   Útornado.webr$   r%   r&   r'   ÚHTTPClientCommonTestCaser)   r:   rN   r[   rb   ri   rq   r   rƒ   rˆ   rŒ   r�   r•   r   r²  rØ  rç  rú  r  r  r  r6  rP  rY  r8   r4   r2   ú<module>rv     sª  ðØ Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø 
€
€
€
Ø €€€à +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø )Ð )Ð )Ð )Ð )Ð )Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø !Ð !Ð !Ð !Ð !Ð !Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð ð ð ð ð )Ð (Ð (Ð (Ð (Ð (ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
 NÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mðð ð ð ð  _Ô%Mñ ô ð ðð ð ð ð �^ñ ô ð ðð ð ð ð ˜>ñ ô ð ð /ð /ð /ð /ð /�.ñ /ô /ð /ð
ð ð ð ð �^ñ ô ð ðð ð ð ð �~ñ ô ð ð'ð 'ð 'ð 'ð '˜.ñ 'ô 'ð 'ðð ð ð ð ˜ñ ô ð ð1ð 1ð 1ð 1ð 1�nñ 1ô 1ð 1ð

+ð 
+ð 
+ð 
+ð 
+˜^ñ 
+ô 
+ð 
+ð&ð &ð &ð &ð &�nñ &ô &ð &ð
 ð!ð !ð !ð !ð !˜nñ !ô !ñ Ôð!ð ðE-ð E-ð E-ð E-ð E- ñ E-ô E-ñ ÔðE-ðP	Dð 	Dð 	Dð 	Dð 	DÐ0Ð2Kñ 	Dô 	Dð 	Dð/2ð /2ð /2ð /2ð /2Ð 2Ð4Mñ /2ô /2ð /2ðd5ð 5ð 5ð 5ð 5 Mñ 5ô 5ð 5ð6)ð )ð )ð )ð )Ð/ñ )ô )ð )ð>.Ið .Ið .Ið .Ið .IÐ0ñ .Iô .Ið .Iðb9ð 9ð 9ð 9ð 9Ð/ñ 9ô 9ð 9ð04ð 4ð 4ð 4ð 4Ð.ñ 4ô 4ð 4ð87ð 7ð 7ð 7ð 7Ð)ñ 7ô 7ð 7ð87ð 7ð 7ð 7ð 7Ð'ñ 7ô 7ð 7ð<;ð ;ð ;ð ;ð ;Ð)ñ ;ô ;ð ;ð(=ð =ð =ð =ð =Ð#4ñ =ô =ð =ð =ð =r4   