Ė
    GŖg@  ć                   ó@   d dl mZmZmZmZmZmZmZ d dlZddl	m
Z
mZmZmZmZ ddlmZmZmZmZmZmZmZ ddlmZmZmZmZmZmZmZmZm Z m!Z!m"Z" ddl#m$Z$m%Z%m&Z& dd	l'm(Z(m)Z)m*Z* d*dZ+d*dZ,d*dZ-d*dZ.d*dZ/d*dZ0d*dZ1d*dZ2d*dZ3d*dZ4d*dZ5d*dZ6d*dZ7d*dZ8d*dZ9d*dZ:d*dZ;d*dZ<d*dZ=d*dZ>d*dZ?d*d Z@d*d!ZAd*d"ZBej                  j                  d#g d$¢«      d#eEd
dfd%«       ZFej                  j                  d#g d&¢«      d#eEd
dfd'«       ZGd*d(ZHd*d)ZIy)+é    )ŚAnyŚcastŚDictŚListŚOptionalŚTupleŚTypeNé   )Ś_body_framingŚ_keep_aliveŚ
ConnectionŚ	NEED_DATAŚPAUSED)ŚConnectionClosedŚDataŚEndOfMessageŚEventŚInformationalResponseŚRequestŚResponse)ŚCLIENTŚCLOSEDŚDONEŚERRORŚIDLEŚMIGHT_SWITCH_PROTOCOLŚ
MUST_CLOSEŚ	SEND_BODYŚSEND_RESPONSEŚSERVERŚSWITCHED_PROTOCOL)ŚLocalProtocolErrorŚRemoteProtocolErrorŚSentinelé   )ŚConnectionPairŚget_all_eventsŚreceive_and_getŚreturnc                  ó   t        t        dddg¬«      «      sJ t        t        ddddg¬«      «      rJ t        t        ddddg¬«      «      rJ t        t        ddg d¬«      «      rJ t        t        d	g ¬
«      «      sJ t        t        d	dg¬
«      «      rJ t        t        d	dg¬
«      «      rJ t        t        d	g d¬«      «      rJ y )NŚGETŚ/)ŚHostzExample.com©ŚmethodŚtargetŚheaders©r   Śclose)r   za, b, cLOse, fooś1.0©r/   r0   r1   Śhttp_versionéČ   ©Śstatus_coder1   ©r9   r1   r6   )r   r   r   © ó    śN/var/www/openai/venv/lib/python3.12/site-packages/h11/tests/test_connection.pyŚtest__keep_aliver>       s   ÜÜu SŠ3JŠ2KŌLōš š ō ÜŲŲŲ,Š.EŠFō	
ōš š ō ÜŲŲŲ,Š.PŠQō	
ōš š ō Üu S°"Ą5ŌIōš š ō xØCøŌ<Ō=Š=Š=Ü8°Š>UŠ=VŌWŌXŠXŠXÜÜSŠ+MŠ*NŌOōš š ō 8°øRČeŌTŌUŠUŠUŠUr<   c            	      ó.   dt         t           dt        dt        t        t
        t
        f      fd	 ddt        dt         t           dt        dt        ffd} ddt         t           dt        dt        ffd}i ddidd	idd	d
fD ]Y  }t        t        t
        t        f   |«      }d | di |¤fd | dddi|¤fd | dddi|¤ffD ]  \  }}t        ||«      dk(  rJ  [ dd	idd	d
fD ]L  }t        t        t
        t        f   |«      }d  |di |¤fd | di |¤ffD ]  \  }}t        ||«      dk(  rJ  N d  |d¬«      fd | d¬«      ffD ]  \  }}t        ||«      dk(  rJ  t        d  |«       «      dk(  sJ t        d | «       «      dk(  sJ y )NŚclŚter)   c                 ól    g }| |j                  dt        | «      f«       |r|j                  d«       |S )NśContent-Length©zTransfer-EncodingŚchunked)ŚappendŚstr)r@   rA   r1   s      r=   r1   z#test__body_framing.<locals>.headers?   s7    ŲŲ>ŲNNŠ,¬c°"«gŠ6Ō7ŁŲNNŠ;Ō<Ųr<   r9   c                 ó,    t        |  ||«      ¬«      S )Nr8   )r   )r9   r@   rA   r1   s      r=   Śrespz test__body_framing.<locals>.respG   s   ų ō  K¹ĄĄR»ŌIŠIr<   c                 ó>     | |«      }|dgz  }t        dd|¬«      S )N©r-   zexample.comr+   r,   r.   )r   )r@   rA   Śhr1   s      r=   Śreqztest__body_framing.<locals>.reqL   s+   ų ŁBOŲ	Š%Š&Ń&ÜeØCøŌ;Š;r<   éd   T)r@   rA   ó   HEADó   GETéĢ   i0  )ścontent-length)r   )rE   r;   )r@   )rR   )rN   )zhttp/1.0r;   )r7   NF)NFr;   )r   ŚintŚboolr   r   rG   r   r   r   r   r   r   )rI   rM   ŚkwargsŚmethŚrr1   s        @r=   Śtest__body_framingrX   >   sõ  ų šHSMš ¤tš ““U¼3Äø8±_Ń0Eó š FKńJÜšJÜ$,¬S”MšJÜ>BšJä	õJń
<š <¬$š <¼7õ <š c{ TØ4 LøĄDŃ2IÓJÜd3¤8n fÓ-ądnVnŠ%ŲTŃ4 cŠ4ØVŃ4Š5ŲTŃ4 cŠ4ØVŃ4Š5ó
GD!ō
 !  qÓ)Š-EÓEŠEŠEń
š Kš $<Ø°4Ń!8Ó9Üd3¤8n fÓ-Ųs} V}Š-°¹¹øv¹Š/GÓHGD!Ü   qÓ)Ø_Ó<Š<Š<ń Iš :š 3 #;Š'Ø&±$ø#“,Š)?Ó@aÜT 1Ó%Š)CÓCŠCŠCš Aō suÓ%Š)AŅAŠAŠAÜ”£Ó(Š,<Ņ<Š<Ń<r<   c            	      óŗ   t        j                  t        «      5  t        d«       d d d «       t	        «       } | j
                  t           j                  t        u sJ | j
                  t           j                  t        u sJ | j
                  t           j                  t        u sJ | j
                  t           j                  t        u sJ | j                  t        t        ddddg¬«      «      }|dk(  sJ | j                  D ]'  }|j                  t        t        t        t        ik(  r'J  | j
                  t           j                   t        u sJ | j
                  t           j"                  t        u sJ | j
                  t           j                   t        u sJ | j
                  t           j"                  t        u sJ | j
                  t           j$                  J | j
                  t           j$                  dk(  sJ | j                  t        t'        d	g ¬
«      «      }|dk(  sJ | j                  t        t)        ddg¬
«      «      }|dk(  sJ | j                  D ]'  }|j                  t        t        t        t        ik(  r'J  | j
                  t           j$                  dk(  sJ | j
                  t           j$                  dk(  sJ | j                  t        t+        d¬«      «      }|dk(  sJ | j                  t        t+        d¬«      t+        d¬«      t-        «       g¬«      }|dk(  sJ | j                  t        t-        «       g ¬«      }|dk(  sJ | j                  D ]'  }|j                  t        t.        t        t        ik(  r'J  | j                  t        t+        d¬«      «      }|dk(  sJ | j                  t        t+        d¬«      t+        d¬«      t-        «       g¬«      }|dk(  sJ | j                  t        t-        «       g ¬«      }|dk(  sJ | j                  D ]'  }|j                  t        t.        t        t.        ik(  r'J  y # 1 sw Y   ,xY w)Nr   r+   r,   rK   ©rC   Ś10r.   s9   GET / HTTP/1.1
Host: example.com
Content-Length: 10

ó   1.1rN   r8   s   HTTP/1.1 100 

r7   )rC   Ś11s%   HTTP/1.1 200 
Content-Length: 11

ó   12345©Śdataó   67890©Śexpectr<   ó
   1234567890ó   1)ŚpytestŚraisesŚ
ValueErrorr   r&   Śconnr   Śour_roleŚ
their_roler    Śsendr   ŚconnsŚstatesr   r   Ś	our_stateŚtheir_stateŚtheir_http_versionr   r   r   r   r   ©Śpr`   ri   s      r=   Ś)test_Connection_basics_and_content_lengthrt   j   s«   Ü	zÕ	"Ü8Ō÷ 
#ō 	ÓAŲ66&>×"Ń"¤fŃ,Š,Š,Ų66&>×$Ń$¬Ń.Š.Š.Ų66&>×"Ń"¤fŃ,Š,Š,Ų66&>×$Ń$¬Ń.Š.Š.ą66ÜÜŲŲŲ,Š.FŠGō	
óDš ŲTņš š š Ų{{v¤y“&¼-ŠHÓHŠHŠHš ą66&>×#Ń#¤yŃ0Š0Š0Ų66&>×%Ń%¬Ń6Š6Š6Ų66&>×#Ń#¤}Ń4Š4Š4Ų66&>×%Ń%¬Ń2Š2Š2ą66&>×,Ń,Š4Š4Š4Ų66&>×,Ń,°Ņ6Š6Š6ą66&Ō/øCČŌLÓMDŲŠ+Ņ+Š+Š+ą66&(ØsŠ=UŠ<VŌWÓXDŲŠAŅAŠAŠAąŲ{{v¤y“&¼)ŠDÓDŠDŠDš š 66&>×,Ń,°Ņ6Š6Š6Ų66&>×,Ń,°Ņ6Š6Š6ą66&$ HŌ-Ó.DŲ8ŅŠŠŲ66Ü(Ō#¬T°xŌ-@Ä,Ć.Š,Qš ó Dš 8ŅŠŠŲ66&,.°6Ó4DŲ3;Š;ąŲ{{v¤t¬V“YŠ?Ó?Š?Š?š š 66&$ MŌ2Ó3DŲ=Ņ Š Š Ų66&$ D/“4øT“?ÄLĆNŠ2S6ÓTDŲ4<Š<Ų66&,.°6Ó4DŲ3;Š;ąŲ{{v¤t¬V“TŠ:Ó:Š:Š:ń ÷} 
#Ń	"śs   QŃQc            	      ó   t        «       } | j                  t        t        ddddg¬«      «       | j                  t        t	        ddd¬«      «      }|d	k(  sJ | j                  t        t	        d
dd¬«      «      }|dk(  sJ | j                  t        t	        d¬«      g ¬«      }|dk(  sJ | j                  t        t        dg¬«      «      }|dk(  sJ | j                  t        t        ddg¬«      «       | j                  t        t	        ddd¬«      «       | j                  t        t	        ddd¬«      «       | j                  t        t        «       «       | j                  D ]'  }|j                  t        t        t        t        ik(  r'J  y )Nr+   r,   rK   rD   r.   rd   T©r`   Śchunk_startŚ	chunk_ends   a
1234567890
s   abcdes
   5
abcde
r<   r_   rb   )ŚhelloŚthere)r1   s   0
hello: there

r7   r8   s   54321r^   )r&   rl   r   r   r   r   r    r   rm   rn   r   rr   s      r=   Śtest_chunkedr{   ­   sS   ÜÓAąFFÜÜŲŲŲ,Š.NŠOō	
ōš 66&$ MøtČtŌTÓUDŲŠ)Ņ)Š)Š)Ų66&$ Hø$Č$ŌOÓPDŲŠ$Ņ$Š$Š$Ų66&$ C.°6Ó4DŲ3;Š;Ų66&,Š0BŠ/CŌDÓEDŲŠ/Ņ/Š/Š/ąFFÜ SŠ3SŠ2TŌUōš FF64X°4Ą4ŌHŌIŲFF64X°4Ą4ŌHŌIŲFF6<>Ō"ąŲ{{v¤t¬V“TŠ:Ó:Š:Š:ń r<   c                  ód   t        t        ¬«      } d}| j                  |«       | j                  «       t	        ddddg¬«      k(  sJ | j                  «       t
        u sJ | j                  d«       | j                  «       t        d	d
d
¬«      k(  sJ | j                  d«       | j                  «       t        dd
d¬«      k(  sJ | j                  d«       | j                  «       t        ddd¬«      k(  sJ | j                  d«       | j                  «       t        ddd
¬«      k(  sJ | j                  d«       | j                  «       t        d	d
d
¬«      k(  sJ | j                  d«       | j                  «       t
        k(  sJ | j                  d«       | j                  «       t        «       k(  sJ y )N©rj   óB   POST / HTTP/1.1
Host: example.com
Transfer-Encoding: chunked

ŚPOSTr,   rK   rD   r.   s
   5
hello
s   helloTrv   s   5
hels   helFó   ls   o
ó   os   5
helloó   
s   0

)r   r    Śreceive_dataŚ
next_eventr   r   r   r   )ri   Śrequests     r=   Śtest_chunk_boundariesr   Ģ   s   ÜvŌ&Dš	š š 	×ŃgŌŲ??Ó¤ŲŲŲ(Š*JŠKō!ņ š š š
 ??Ó¤	Ń)Š)Š)ą×ŃŠ'Ō(Ų??Ó¤Ø(ĄŠPTŌ UŅUŠUŠUą×ŃkŌ"Ų??Ó¤Ø&ødČeŌ TŅTŠTŠTą×ŃdŌŲ??Ó¤Ø$øEČUŌ SŅSŠSŠSą×ŃhŌŲ??Ó¤Ø$øEČTŌ RŅRŠRŠRą×ŃmŌ$Ų??Ó¤Ø(ĄŠPTŌ UŅUŠUŠUą×ŃgŌŲ??Ó¤	Ņ)Š)Š)ą×ŃlŌ#Ų??Ó¤£Ņ.Š.Ń.r<   c                  óü   t        t        «      } | j                  t        dddg¬«      «       | j                  t	        «       «       | j
                  t        u sJ t        | d«      t        dg dd¬	«      gk(  sJ | j
                  t        u sJ t        | d
«      t        d
¬«      gk(  sJ t        | d«      t        d¬«      gk(  sJ t        | d«      t	        «       t        «       gk(  sJ | j                  t        u sJ y )Nr+   r,   rK   r.   s   HTTP/1.0 200 OK

r7   r4   s   OK)r9   r1   r6   Śreasonr^   r_   ra   r<   )r   r   rl   r   r   ro   r   r(   r   r   r   r   rp   r   ©Ścs    r=   Ś$test_client_talking_to_http10_serverr   ó   sņ    Ü6ÓAŲFF7%ØŠ6MŠ5NŌOŌPŲFF<>ŌŲ;;$ŃŠŠä1Š8Ó9ÜSØ"ø5ČŌOš>ņ š š š ;;*Ń$Š$Š$Ü1hÓ'¬D°hŌ,?Š+@Ņ@Š@Š@Ü1hÓ'¬D°hŌ,?Š+@Ņ@Š@Š@Ü1cÓ"¤|£~Ō7GÓ7IŠ&JŅJŠJŠJŲ==FŃ"Š"Ń"r<   c                  ó   t        t        «      } t        | d«      t        ddg d¬«      t	        «       gk(  sJ | j
                  t        u sJ | j                  t        dg ¬«      «      dk(  sJ | j                  t        d	¬
«      «      d	k(  sJ | j                  t	        «       «      dk(  sJ | j                  t        u sJ t        t        «      } t        | d«      t        dddgd¬«      t        d¬
«      gk(  sJ t        | d«      t        d¬
«      t	        «       gk(  sJ | j
                  t        u sJ t        | d«      t        «       gk(  sJ y )Nó   GET / HTTP/1.0

r+   r,   r4   r5   r7   r8   ó$   HTTP/1.1 200 
Connection: close

r^   r_   r<   s(   POST / HTTP/1.0
Content-Length: 10

1r   rZ   re   s	   234567890)r   r    r(   r   r   rp   r   rl   r   r   ro   r   r   s    r=   Ś$test_server_talking_to_http10_clientr     sa   Ü6ÓAō 1Š7Ó8Üu S°"Ą5ŌIÜš=ņ š š š ==JŃ&Š&Š&š 	
x C°Ō4Ó5Ų8ņ	9šš	9š 66$HŌ%Ó&Ø(Ņ2Š2Š2Ų66,.Ó! SŅ(Š(Š(Ų;;*Ń$Š$Š$ō 	6ÓAä1ŠOÓPÜŲŲŲ-Š.Ųō		
ō 	$šUņ š š ō 1lÓ+“ø,Ō0GĢĖŠ/XŅXŠXŠXŲ==JŃ&Š&Š&Ü1cÓ"Ō'7Ó'9Š&:Ņ:Š:Ń:r<   c            	      óź   dgg ddgfD ]č  } t        t        t        t        t        f      | «      } t	        «       }|j                  t        t        dddg¬«      t        «       g«       |j                  t        t        d| ¬«      t        ddg¬«      ¬	«       t        t        «      }t        |d
«       |j                  t        d| ¬«      «      dk(  sJ |j                  t        d¬«      «      dk(  rčJ  y )NrD   ©rC   Ś100r+   r,   rK   r.   r7   r8   rb   r   r   r^   r_   )r   r   r   rG   r&   rl   r   r   r   r    r   r   r(   r   )Śuser_headersrs   r   s      r=   Ś,test_automatic_transfer_encoding_in_responser   (  sü    š 
*Š*Ų
š 
*Š+DŠEóō D¤¤s¬C x”Ń1°<Ó@ÜÓŲ	ÜäuØSŠ;RŠ:SŌTÜšō	
š 	
ÜÜ ØlŌ;ÜŲŠ*JŠ)Kōš 	ō 	
ō vÓÜŠ4Ō5ąFF8Ø°\ŌBÓCŲ<ņ=š	
š=š vvd Ō)Ó*ØhÓ6Š6Š6ńEr<   c            	      ó¾   t        «       } | j                  t        t        ddddg¬«      t	        «       g«       | j
                  D ]  }|j                  t           t        u rJ  | j                  t        t        dg ¬«      t	        «       gt        ddg¬«      t	        «       g¬	«       | j
                  D ]'  }|j                  t        t        t        t        ik(  r'J  y )
Nr+   r,   rK   r2   r.   rQ   r8   )Ś
connectionr3   rb   )
r&   rl   r   r   r   rm   rn   r   r    r   ©rs   ri   s     r=   Ś(test_automagic_connection_close_handlingr   R  sŃ    ÜÓAš FFÜäŲŲŲ0Š2IŠJōō
 Nš	
ō
š Ų{{6Ń"¤jŅ0Š0Š0š š FFÜä	cØ2Ō	.“³Š?ō  Š/FŠ.GŌHÜNš
š ō 	š Ų{{v¤z“6¼:ŠFÓFŠFŠFń r<   c                  ó   dt         fd}  | «       }|j                  t        t        dg ¬«      «       |j                  D ]  }|j
                  rJ |j                  sJ   | «       }|j                  t        t        ddg¬«      «       |j                  D ]  }|j
                  rJ |j                  sJ   | «       }|j                  t        t        d¬«      «       |j                  D ]  }|j
                  rJ |j                  sJ  y )	Nr)   c            	      ó   t        «       } | j                  t        t        ddg d¢¬«      «       | j                  D ]  }|j
                  rJ  | j                  t           j                  rJ | j                  t           j                  sJ | S )Nr+   r,   )rK   r   )ŚExpectz100-continuer.   )	r&   rl   r   r   rm   Ś"client_is_waiting_for_100_continueri   Ś!they_are_waiting_for_100_continuer    r   s     r=   Śsetupz test_100_continue.<locals>.setups  s~    ÜÓŲ	ÜÜŲŲņōō	
š GGDŲ×:Ó:Š:Š:š ą66&>×CŅCŠCŠCŲvvf~×?Ņ?Š?Š?Ųr<   rN   r8   r7   rD   r^   r_   )
r&   rl   r    r   rm   r   r   r   r   r   )r   rs   ri   s      r=   Śtest_100_continuer   r  sō    š>ó ń* 	AŲFF6Ō(°SĄ"ŌEŌFŲŲ×:Ņ:Š:Š:Ų×9Ó9Š9Š9š ń
 	AŲFFÜ SŠ3SŠ2TŌUōš Ų×:Ņ:Š:Š:Ų×9Ó9Š9Š9š ń
 	AŲFF64XŌ&Ō'ŲŲ×:Ņ:Š:Š:Ų×9Ó9Š9Š9ń r<   c                  ó2   t        t        «      } | j                  d«       | j                  «       t        u sJ t        j                  t        «      5  	 | j                  d«       | j                  «        "# 1 sw Y   nxY wt        t        d¬«      } | j                  d«       | j                  d«       | j                  d«       t        | «      t        dd	d
dg¬«      t        «       gk(  sJ t        t        d¬«      } | j                  d«       | j                  d«       t        j                  t        «      5  | j                  «        d d d «       n# 1 sw Y   nxY wt        t        d¬«      } | j                  d«       | j                  dddz  z   «       t        | «      t        dd	d
dg¬«      t        ddz  ¬«      t        «       gk(  sJ t        t        d¬«      } | j                  d«       t        | «      t        dddg¬«      t        «       gk(  sJ | j                  d«       | j                  t        dg ¬«      «       | j                  t        «       «       | j                  «        t        | «      t        dddg¬«      t        «       gk(  sJ | j                  t        dg ¬«      «       | j                  t        «       «       | j                  «        t        j                  t        «      5  | j                  «        d d d «       y # 1 sw Y   y xY w)Ns   GET / HTTP/1.0
Endless: s   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai  )Śmax_incomplete_event_sizes   GET / HTTP/1.0
Big: s   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas   

r+   r,   r4   )ŚbigĮ   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)r/   r0   r6   r1   i   s%   GET / HTTP/1.0
Content-Length: 10000ó   ai'  )rC   Ś10000r_   rN   s   GET /1 HTTP/1.1
Host: a

GET /2 HTTP/1.1
Host: b

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXś/1)ŚhostŚar.   sč  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXr7   r8   ś/2)r§   Śb)r   r    r   r   r   rf   rg   r#   r'   r   r   r   rl   r   Śstart_next_cycler   s    r=   Ś-test_max_incomplete_event_size_countermeasurer¬     s   ä6ÓAŲNNŠ1Ō2Ų<<>YŃ&Š&Š&Ü	Ō*Õ	+ŲŲNN;Ō'ŲLLNš ÷ 
,Š	+śō 	6°TŌ:AŲNNŠ-Ō.ŲNN;ŌŲNN;ŌÜ!ÓÜŲ °5ŠCVŠBWō	
ō 	š	!ņ š š ō 	6°TŌ:AŲNNŠ-Ō.ŲNN;ŌÜ	Ō*Õ	+Ų	÷ 
,×	+Ń	+śō
 	6°TŌ:AŲNNŠ=Ō>ŲNN; Ø”Ń-Ō.Ü!ÓÜŲŲŲŲ0Š1ō		
ō 	$,ŌÜš	!ņ 	š 	š 	ō 	6°SŌ9Aš NNš	<ōō !ÓÜu T°M°?ŌCÜš!ņ š š š
 NN;ŌąFF8 ØRŌ0Ō1ŲFF<>ŌŲ×ŃŌÜ!ÓÜu T°M°?ŌCÜš!ņ š š š FF8 ØRŌ0Ō1ŲFF<>ŌŲ×ŃŌÜ	Ō*Õ	+Ų	÷ 
,×	+Ń	+śs$   Į$A6Į6A?Ä:EÅEĖ3LĢLc                  ó   t        «       } | j                  t        t        dddg¬«      t	        «       g«       | j                  t
        t        ddg¬«      t	        «       g«       | j                  D ]7  }|j                  t        t        t
        t        ik(  sJ |j                  «        9 | j                  t        t        dd	dg¬«      t	        «       g«       | j                  t
        t        d
dg¬«      t	        «       g«       y )Nr+   r,   ©r-   rØ   r.   r7   ©s   transfer-encodings   chunkedr8   ŚDELETEś/fooé  )r&   rl   r   r   r   r    r   rm   rn   r   r«   r   s     r=   Śtest_reuse_simpler³   ė  są    ÜÓAŲFFÜÜ	 c°M°?Ō	CÄ\Ć^ŠTōš FFÜä Š/QŠ.RŌSÜNš	
ōš Ų{{v¤t¬V“TŠ:Ņ:Š:Š:Ų×ŃÕš š FFÜä8ØFø]øOŌLÜNš	
ōš FFÜä Š/QŠ.RŌSÜNš	
õr<   c                  ó$   t        t        «      } | j                  «       t        u sJ | j	                  d«       t        | «      t        ddddg¬«      t        d¬«      t        «       gk(  sJ | j                  t        u sJ | j                  t        u sJ | j                  «       t        u sJ | j                  t        d	g ¬
«      «       | j                  t        «       «       | j                  t        u sJ | j                  t        u sJ | j!                  «        t        | «      t        ddddg¬«      t        d¬«      t        «       gk(  sJ | j                  «       t        u sJ | j                  t        d	g ¬
«      «       | j                  t        «       «       | j!                  «        t        | «      t        dddg¬«      t        «       gk(  sJ | j                  «       t        u sJ | j                  t        d	g ¬
«      «       | j                  t        «       «       | j                  «       t        u sJ | j	                  d«       | j                  «       t        u sJ | j"                  dk(  sJ | j	                  d«       | j"                  dk(  sJ | j                  «       t        u sJ | j	                  d«       | j                  «       t        u sJ t%        j&                  t(        «      5  | j	                  d«       d d d «       y # 1 sw Y   y xY w)Ns   GET /1 HTTP/1.1
Host: a.com
Content-Length: 5

12345GET /2 HTTP/1.1
Host: a.com
Content-Length: 5

67890GET /3 HTTP/1.1
Host: a.com

r+   r¦   )r-   śa.com)rC   Ś5r.   r^   r_   r7   r8   r©   ra   z/3ó   SADF)r·   Fr<   )r·   Ts   FDSA)r   r    r   r   r   r'   r   r   r   rp   r   ro   r   r   rl   r   r«   Śtrailing_datarf   rg   ŚRuntimeErrorr   s    r=   Śtest_pipeliningrŗ     s¬   ä6ÓAŲ<<>YŃ&Š&Š&ąNNš	2ōō !ÓÜŲŲŲ&Š(?Š@ō	
ō
 	(ŌÜš!ņ š š š ==DŃ Š Š Ų;;-Ń'Š'Š'ą<<>VŃ#Š#Š#ąFF8 ØRŌ0Ō1ŲFF<>ŌŲ==DŃ Š Š Ų;;$ŃŠŠą×ŃŌä!ÓÜŲŲŲ&Š(?Š@ō	
ō
 	(ŌÜš!ņ š š š <<>VŃ#Š#Š#ŲFF8 ØRŌ0Ō1ŲFF<>ŌŲ×ŃŌä!ÓÜu TŠ4EŠ3FŌGÜš!ņ š š š
 <<>YŃ&Š&Š&ŲFF8 ØRŌ0Ō1ŲFF<>Ōš <<>YŃ&Š&Š&ŲNN7ŌŲ<<>VŃ#Š#Š#Ų??Š.Ņ.Š.Š.ąNN3ŌŲ??oŅ-Š-Š-Ų<<>VŃ#Š#Š#ŲNN3ŌŲ<<>VŃ#Š#Š#ä	|Õ	$Ų	wŌ÷ 
%×	$Ń	$śs   Ė+LĢLc            	      óP	   t        ddddg¬«      t        ddg¬«      t        d	dg¬«      ft        d
dg d¢¬«      t        d	dg¬«      t        ddg¬«      ft        ddg d¢¬«      t        ddg¬«      t        d	dg¬«      ft        ddg d¢¬«      t        ddg¬«      t        ddg¬«      ffD ]Ž  \  } }dt        ffd} |«       }|j	                  t
        | «       |j                  D ]'  }|j                  t        t        t
        t        ik(  r'J  |j	                  t
        t        «       «       |j                  D ]  }|j                  «          |«       }|j	                  t
        |«       |j                  D ]  }|j                  t        t        t
        t        ik(  sJ |j                  d«       |j                  «       t         u sJ |j                  d«       |j                  «       t         u sJ |j"                  dk(  rJ   |«       }|j$                  t
           }|j                  d«       |j                  «       t         u sJ |j"                  dk(  sJ |j	                  | «       |j                  «       t         u sJ |j	                  t        «       «       |j                  «        t'        |«      t        d
dg d¬«      t        «       gk(  sJ  |«       }|j$                  t
           }|j                  d«       |j                  «       t         u sJ |j"                  dk(  sJ |j	                  t
        |«       |j                  «       t         u sJ  |«       }|j$                  t
           }|j                  d«       |j                  «       t         u sJ |j	                  | «       |j                  «       t)        «       k(  sJ  |«       }t+        j,                  t.        «      5  |j$                  t           j	                  t        d
ddg¬«      «       d d d «        |«       }|j	                  t
        |«       t+        j,                  t.        «      5  |j$                  t
           j	                  t1        d¬«      «       d d d «       į y # 1 sw Y   xxY w# 1 sw Y   łxY w)NŚCONNECTzexample.com:443©r-   Śfoo©rC   Ś1r.   r²   rÆ   r8   r7   r+   r,   )r½   ræ   )ŚUpgradeza, bée   )rĮ   rØ   )rĮ   rŖ   r)   c                  ó   t        «       } | j                  t        «       | j                  D ]  }|j                  t           t
        u rJ  | j                  t        t        d¬«      t        «       g«       | j                  D ]  }|j                  t           t        u rJ  | j                  t           j                  «       t        u sJ | S )Nre   r_   )r&   rl   r   rm   rn   r   r   r   r   ri   r    r   r   )rs   ri   rM   s     r=   r   z#test_protocol_switch.<locals>.setup~  s£   ų ÜÓ AŲFF63Ōš Ų{{¤6Ń*¬iŅ7Š7Š7š  ąFF6D dO¬\«^Š<Ō=ŲŲ{{¤6Ń*Ō.CŅCŠCŠCš  ą66&>×,Ń,Ó.“&Ń8Š8Š8ŲHr<   ó   123s   456)s   123456Fr   )r   Fr4   r5   r<   )r<   Tr®   r_   )r   r   r   r&   rl   r    rm   rn   r   r   r   r   r«   r!   r   r   r   rø   ri   r'   r   rf   rg   r"   r   )ŚdenyŚacceptr   rs   ri   ŚscrM   s         @r=   Śtest_protocol_switchrČ   T  s  ų ō Ų Ų(Ų(Š*AŠBōō
  Š/QŠ.RŌSÜ Š/QŠ.RŌSš	
ō ŲŲŚWōō
  Š/QŠ.RŌSÜ!ØcŠ<LŠ;MŌNš	
ō Ų Ų(ŚWōō
  Š/QŠ.RŌSä Š/QŠ.RŌSš		
ō Ų Ų(ŚWōō
  Š/QŠ.RŌSä!ØcŠ<LŠ;MŌNš		
ō;' ŃdFšR	~õ 	ń GŲ	vtŌŲGGDŲ;;¤6¬4“¼Š"CÓCŠCŠCš ą	v|~Ō&ąGGDŲ×!Ń!Õ#š ń GŲ	vvŌŲGGDŲ;;¤6Ō+<¼fŌFWŠ"XŅXŠXŠXŲ×ŃfŌ%Ų??Ó$¬Ń.Š.Š.Ų×ŃfŌ%Ų??Ó$¬Ń.Š.Š.Ų×%Ń%Š);Ó;Š;Š;š ń GŲVVF^Ų
Š1Ō2Ų}}¤&Ń(Š(Š(Ų×ŃŠ#EŅEŠEŠEŲ
Ų}}¤&Ń(Š(Š(Ų
ŌŲ
×ŃŌÜbÓ!Ü5Ø°bĄuŌMÜNš&
ņ 
š 	
š 
ń GŲVVF^Ų
ŌŲ}}¤&Ń(Š(Š(Ų×Ń ;Ņ.Š.Š.Ų	vvŌŲ}}¤&Ń(Š(Š(įGŲVVF^Ų
ŌŲ}}¤&Ń(Š(Š(Ų
Ų}}Ō"2Ó"4Ņ4Š4Š4ń GÜ]]Ō-Õ.ŲFF6N×ŃÜuØSø=ø/ŌJō÷ /ń GŲ	vvŌÜ]]Ō-Õ.ŲFF6N×Ń¤Ø&Ō 1Ō2÷ /Ń.ńq' ÷d /Š.ś÷ /Ń.śs   Ļ(0RŃ-RŅR	ŅR%	c                  óč   t         t        ft        t         ffD ]»  \  dt        ffd}  | «       }|j                     j	                  «       t        «       k(  sJ |j                     j	                  «       t        «       k(  sJ |j                     j                  d«       |j                     j	                  «       t        «       k(  sJ  | «       }|j                  t        «       «       |j                  D ]*  }|j                  t        u sJ |j                  t        u r*J   | «       }t        j                  t        «      5  |j                     j                  d«       d d d «        | «       }|j                     j                  d«       t        j                  t        «      5  |j                     j	                  «        d d d «       ¾ y # 1 sw Y   qxY w# 1 sw Y   ÖxY w)Nr)   c                  ó¬    t        «       } | j                  t        «       «       | j                  D ]  }|j                  t
        t        ik(  rJ  | S ©N)r&   rl   r   rm   rn   r   r   )rs   ri   Śwho_shot_firstŚwho_shot_seconds     r=   r   z test_close_simple.<locals>.setupÖ  sW   ų ÜÓ AŲFF>Ō#3Ó#5Ō6ŲŲ{{Ų"¤FŲ#¤Zš'ó š š š  š
 Hr<   r<   rÄ   rP   )r   r    r&   ri   r   r   r   rl   rm   ro   r   rp   rf   rg   r¹   r#   )r   rs   ri   rĢ   rĶ   s      @@r=   Śtest_close_simplerĪ   Ń  s  ł ō 06“vŠ.>ÄĢŠ@PŌ-QŃ)š	~ö 	ń GŲvvoŃ&×1Ń1Ó3Ō7GÓ7IŅIŠIŠIŲvvoŃ&×1Ń1Ó3Ō7GÓ7IŅIŠIŠIŲ	Ń×,Ń,ØSŌ1ŲvvoŃ&×1Ń1Ó3Ō7GÓ7IŅIŠIŠIįGŲ	Ō 0Ó 2Ō3ŲGGDŲ>>¤VŃ+Š+Š+Ų×#Ń#¤vŅ-Š-Š-š ń GÜ]]<Õ(ŲFF?Ń#×0Ń0°Ō8÷ )ń GŲ	~Ń×+Ń+ØFŌ3Ü]]Ō.Õ/ŲFF>Ń"×-Ń-Ō/÷ 0Ń/ńE .R÷: )Š(ś÷
 0Ń/śs   ÅGĘ1G'ĒG$	Ē'G1	c            	      ó>   t        dddg¬«      t        «       g} t        ddg¬«      t        «       g}t        «       }|j	                  t
        t        «       «       |j                  D ]'  }|j                  t
        t        t        t        ik(  r'J  t        «       }|j	                  t
        | «       |j	                  t
        t        «       «       |j                  D ]'  }|j                  t
        t        t        t        ik(  r'J  t        «       }|j	                  t
        | «       t        j                  t        «      5  |j                   t           j	                  t        «       «       d d d «       |j                   t
           j#                  d«       t        j                  t$        «      5  |j                   t
           j'                  «        d d d «       t        «       }|j	                  t
        | «       |j	                  t        |«       |j	                  t        t        «       «       |j                  D ]'  }|j                  t
        t        t        t        ik(  r'J  t        «       }|j	                  t
        | «       |j	                  t        |«       |j	                  t
        t        «       «       |j	                  t        t        «       «       |j	                  t
        t        «       «       |j	                  t        t        «       «       t        «       }|j	                  t
        t        dd	dd
g¬«      «       t        j                  t        «      5  |j                   t
           j	                  t        «       «       d d d «       |j                   t           j#                  d«       t        j                  t$        «      5  |j                   t           j'                  «        d d d «       y # 1 sw Y   xY w# 1 sw Y   /xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr+   r±   r®   r.   r7   rÆ   r8   r<   r,   rZ   )r   r   r   r&   rl   r   r   rm   rn   r   r    r   r   rf   rg   r"   ri   r   r#   r   )rM   rI   rs   ri   s       r=   Śtest_close_different_statesrŠ   ś  sß   äu V°m°_ŌEÜšCō
 	SŠ+MŠ*NŌOÜšDō 	ÓAŲFF6Ō#Ó%Ō&ŲŲ{{v¤v¬v“zŠBÓBŠBŠBš ō 	ÓAŲFF63ŌŲFF6Ō#Ó%Ō&ŲŲ{{v¤v¬v“}ŠEÓEŠEŠEš ō 	ÓAŲFF63ŌÜ	Ō)Õ	*Ų	v×ŃŌ,Ó.Ō/÷ 
+ąFF6N×Ń Ō$Ü	Ō*Õ	+Ų	v×!Ń!Ō#÷ 
,ō 	ÓAŲFF63ŌŲFF64ŌŲFF6Ō#Ó%Ō&ŲŲ{{v¤z“6¼6ŠBÓBŠBŠBš ō 	ÓAŲFF63ŌŲFF64ŌŲFF6Ō#Ó%Ō&ŲFF6Ō#Ó%Ō&ŲFF6Ō#Ó%Ō&ŲFF6Ō#Ó%Ō&ō 	ÓAŲFFÜÜŲ Ø}Š>VŠ.Wō	
ōō 
Ō)Õ	*Ų	v×ŃŌ,Ó.Ō/÷ 
+ąFF6N×Ń Ō$Ü	Ō*Õ	+Ų	v×!Ń!Ō#÷ 
,Š	+÷E 
+Ń	*ś÷ 
,Ń	+ś÷8 
+Š	*ś÷ 
,Š	+śs0   Ä=+O-Ę+"O:Ķ+PĻ"PĻ-O7Ļ:PŠPŠPc                  ó“   t        t        «      } | j                  d«       | j                  d«       t        | «      t	        ddddg¬«      t        d¬	«      t        «       gk(  sJ | j                  t           t        u sJ | j                  t        d
g ¬«      «       | j                  t        «       «       | j                  t           t        u sJ | j                  «        t        | «      t	        ddddg¬«      t        d¬	«      t        «       t        «       gk(  sJ | j                  t        t        t        t        ik(  sJ | j                  t        d
g ¬«      «       | j                  t        «       «       | j                  t        t        t        t         ik(  sJ | j                  t        «       «       | j                  t        t        t        t        ik(  sJ y )Nsp   GET /1 HTTP/1.1
Host: a.com
Content-Length: 5

12345GET /2 HTTP/1.1
Host: a.com
Content-Length: 5

67890r<   r+   r¦   )r§   rµ   )rR   r¶   r.   r^   r_   r7   r8   r©   ra   )r   r    r   r'   r   r   r   rn   r   r   rl   r   r«   r   r   r   r   r   s    r=   Śtest_pipelined_closerŅ   <  s   Ü6ÓAąNNš	ōš NN3ŌÜ!ÓÜŲŲŲ&Š(?Š@ō	
ō
 	(ŌÜš!ņ š š š 88FŃtŃ#Š#Š#ŲFF8 ØRŌ0Ō1ŲFF<>ŌŲ88FŃtŃ#Š#Š#Ų×ŃŌÜ!ÓÜŲŲŲ&Š(?Š@ō	
ō
 	(ŌÜÜÓš	!ņ 	š 	š 	š 88¤¬“Š>Ņ>Š>Š>ŲFF8 ØRŌ0Ō1ŲFF<>ŌŲ88¤¬“
Š;Ņ;Š;Š;ŲFFŌÓŌŲ88¤¬“Š7Ņ7Š7Ń7r<   c            
      óŹ    G d d«      }  | «       dt         t        t        f   dt        dt         t        t        t        t
              f   ffd} |dd«      \  }}|gk(  sJ |j                  t        «       «        |d	d«      \  }}|v sJ d
||j                  «      <   dj                  |«      dk(  sJ  |d d«      \  }}|gk(  sJ |j                  t        u sJ y )Nc                   ó    e Zd ZdefdZy)ś*test_sendfile.<locals>.SendfilePlaceholderr)   c                  ó    y)Né
   r;   )Śselfs    r=   Ś__len__z2test_sendfile.<locals>.SendfilePlaceholder.__len__h  s    Ųr<   N)Ś__name__Ś
__module__Ś__qualname__rS   rŁ   r;   r<   r=   ŚSendfilePlaceholderrÕ   g  s    š	Sō 	r<   rŻ   Śheaderr6   r)   c                 ó   t        t        «      }t        |dj                  |«      j	                  d«      «       g }| r|j                  | «       |j                  t        d|¬«      «       ||j                  t        ¬«      «      fS )NzGET / HTTP/{}
Host: a

Śasciir7   r8   r_   )
r   r    r(   ŚformatŚencoderF   rl   r   Śsend_with_data_passthroughr   )rŽ   r6   r   r1   Śplaceholders       r=   r   ztest_sendfile.<locals>.setupm  sw   ų ō vÓÜŲŠ1×8Ń8øÓF×MŃMČgÓVō	
š ŁŲNN6Ō"Ų	x C°Ō9Ō:Ų!×.Ń.¬tøŌ/EÓFŠFŠFr<   rZ   z1.1rD   s
   xxxxxxxxxxr<   s   a
xxxxxxxxxx
r4   )r   rG   r   r   r   Śbytesrl   r   ŚindexŚjoinro   r   )rŻ   r   r   r`   Ś_rä   s        @r=   Śtest_sendfileré   f  s  ų ÷ń ń &Ó'KšGÜc3hšGÜ/2šGä	z8¤D¬”KŃ0Š0Ń	1õGń Š,ØeÓ4GAtŲK=Ņ Š Š š FF<>ŌįŠ4°eÓ<GAtŲ$ŃŠŠŲ$-DKÓ	 Ń!Ų88D>Š3Ņ3Š3Š3įD%Ó GAtŲK=Ņ Š Š Ų;;)Ń#Š#Ń#r<   c                  óĪ   t         t        fD ]ō  } t        | ¬«      }|j                  d«       t	        j
                  t        «      5  |j                  «        d d d «       |j                  t        u sJ |j                  t        usJ t        |j                  j                  «       t	        j
                  t        «      5  |j                  «        d d d «       | t        u sŌ|j                  t        dg ¬«      «      dk(  rōJ  dt         t"           dt        fd}t         t        fD ]  } | t         u r t%        d	d
dg¬«      }t%        d	d
dgd¬«      }n#| t        u rt        dg ¬«      }t        dg d¬«      } || «      }|j                  «       |j                  t        usJ  || «      }t	        j
                  t&        «      5  |j                  «       d d d «       |j                  t        u sJ |j                  t        usJ t	        j
                  t&        «      5  |j                  |«       d d d «        || «      }|j)                  «        |j                  t        u sJ |j                  t        usJ |j)                  «        |j                  t        u sJ |j                  t        urJ  y # 1 sw Y   `xY w# 1 sw Y   ōxY w# 1 sw Y   śxY w# 1 sw Y   «xY w)Nr}   s   gibberish

i  r8   s$   HTTP/1.1 400 
Connection: close

Śroler)   c                 ón    t        | ¬«      }| t        u r t        |d«       |j                  t        u sJ |S )Nr}   r   )r   r    r(   ro   r   ©rė   r   s     r=   ri   ztest_errors.<locals>.conn”  s5    Ü Ō%Ų6>äAŠ8Ō9Ų;;¤-Ń/Š/Š/Ųr<   r+   r,   rK   r.   r4   r5   r7   r:   )r   r    r   r   rf   rg   r#   r   rp   r   ro   ŚprintŚ_cstatern   rl   r   r	   r$   r   r"   Śsend_failed)rė   r   ri   ŚgoodŚbads        r=   Śtest_errorsró     s]   äÓ Ü Ō%Ų	Š+Ō,Ü]]Ō.Õ/ŲLLN÷ 0š }}¤Ń%Š%Š%Ų{{¤%Ń'Š'Š'Üaii×ŃŌÜ]]Ō.Õ/ŲLLN÷ 0š 6>ąxØCøŌ<Ó=Ų@óAššAš !š*4>š ¤jó ō Ō Ų6>ō  %°Š>UŠ=VŌWDÜŲŲŲ0Š1Ų"ō	Cš V^ÜØ°RŌ8DÜ s°BĄUŌKCįJŲ	tŲ{{¤%Ń'Š'Š'įJÜ]]Ō-Õ.ŲFF3K÷ /ą{{eŃ#Š#Š#Ų}}¤EŃ)Š)Š)ä]]Ō-Õ.ŲFF4L÷ /ń JŲ	Ų{{eŃ#Š#Š#Ų}}¤EŃ)Š)Š)ą	Ų{{eŃ#Š#Š#Ų}}¤EÓ)Š)Š)ńI !÷5 0Ń/ś÷ 0Ń/ś÷P /Š.ś÷
 /Š.śs0   ĮJ5Ā?KĒKČKŹ5J?	ĖK	ĖK	ĖK$	c                  ól    t         t        fD ]%  } t        | «      }|j                  «       t        u r%J  y rĖ   )r   r    r   r   r   rķ   s     r=   Śtest_idle_receive_nothingrõ   Š  s/    äÓ ÜtÓŲ||~¤Ņ*Š*Š*ń !r<   c                  ó   t        t        «      } | j                  d«       | j                  «       t        u sJ | j                  d«       t        j                  t        «      5  | j                  «        d d d «       y # 1 sw Y   y xY w)Ns   GET /r<   )r   r    r   r   r   rf   rg   r#   r   s    r=   Śtest_connection_dropr÷   ×  sZ    Ü6ÓAŲNN8ŌŲ<<>YŃ&Š&Š&ŲNN3ŌÜ	Ō*Õ	+Ų	÷ 
,×	+Ń	+śs   Į#A=Į=Bc                  ó\    t        «       } | j                  t        t        ddg¬«      «       y )Ni  )s
   connections   closer8   )r&   rl   r    r   )rs   s    r=   Śtest_408_request_timeoutrł   ą  s%    ō 	ÓAŲFF68ØŠ6OŠ5PŌQÕRr<   c                  óĄ    t        t        «      } | j                  d«       t        j                  t
        «      5  | j                  «        d d d «       y # 1 sw Y   y xY w)Nr   ©r   r    r   rf   rg   r#   r   r   s    r=   Śtest_empty_requestrü   č  s:    Ü6ÓAŲNN7ŌÜ	Ō*Õ	+Ų	÷ 
,×	+Ń	+śó   ŗAĮAc                  óü    t        t        «      } | j                  t        dddg¬«      «       | j	                  d«       t        j                  t        «      5  | j                  «        d d d «       y # 1 sw Y   y xY w)Nr+   r,   r®   r.   r   )	r   r   rl   r   r   rf   rg   r#   r   r   s    r=   Śtest_empty_responser’   š  sQ    Ü6ÓAŲFF7%Ø°m°_ŌEŌFŲNN7ŌÜ	Ō*Õ	+Ų	÷ 
,×	+Ń	+śs   ĮA2Į2A;r`   )ó    ó    s    „c                 óĄ    t        t        «      }|j                  | «       t        j                  t
        «      5  |j                  «        d d d «       y # 1 sw Y   y xY wrĖ   rū   ©r`   r   s     r=   Ś'test_early_detection_of_invalid_requestr  ų  ó<    ō 	6ÓAąNN4ŌÜ	Ō*Õ	+Ų	÷ 
,×	+Ń	+śrż   )r   r  s    1c                 óĄ    t        t        «      }|j                  | «       t        j                  t
        «      5  |j                  «        d d d «       y # 1 sw Y   y xY wrĖ   )r   r   r   rf   rg   r#   r   r  s     r=   Ś(test_early_detection_of_invalid_responser    r  rż   c                  ó>   dt         dt         dt        fd} dD ]  } | |d«      }|j                  t        dg ¬«      «      d	k(  sJ  | |d
«      }|j                  t        dg ¬«      «      dk(  sJ  | |d«      }|j                  t        dddg¬«      «      d	k(  rJ  y )Nr/   r6   r)   c                 óā    t        t        «      }|j                  | dz   |z   dz   dz   «       t        |j	                  «       «      t
        u sJ t        |j	                  «       «      t        u sJ |S )Ns    / HTTP/r   s   Host: example.com

)r   r    r   Śtyper   r   r   )r/   r6   r   s      r=   r   z(test_HEAD_framing_headers.<locals>.setup  si    ÜvÓŲ	Ų[Ń  <Ń/°'Ń9Š<XŃXō	
ō ALLNÓ#¤wŃ.Š.Š.ÜALLNÓ#¤|Ń3Š3Š3Ųr<   )rP   rO   r\   r7   r8   s-   HTTP/1.1 200 
Transfer-Encoding: chunked

s   1.0r   r   rD   )rå   r   rl   r   )r   r/   r   s      r=   Śtest_HEAD_framing_headersr    sŌ    šeš ¬5š “Zó ó $į&&Ó!ąFF8Ø°RŌ8Ó9š >2ņ 2š	
š2ń
 &&Ó!ąFF8Ø°RŌ8Ó9š >)ņ )š	
š)ń
 &&Ó!ąFFÜŲ #ą1Ų8šōóš2ó
2š	
š
2ń% $r<   c                  óü   t        t        «      } | j                  d«       t        | j	                  «       «      t
        u sJ | j	                  «       t        u sJ | j                  d«       | j	                  «       t        d¬«      k(  sJ | j                  d«       t        j                  t        «      5 }| j	                  «        d d d «       dt        j                  «      v sJ dt        |j                  «      v sJ t        t        «      } | j                  d«       t        | j	                  «       «      t
        u sJ | j	                  «       t        u sJ | j                  d«       | j	                  «       j                  d	k(  sJ | j                  d«       t        j                  t        «      5 }| j	                  «        d d d «       d
t        |j                  «      v sJ y # 1 sw Y   "xY w# 1 sw Y   0xY w)Ns;   POST / HTTP/1.1
Host: example.com
Content-Length: 100

r^   r_   r<   zreceived 5 byteszexpected 100r~   s	   8
012345s   012345zincomplete chunked read)r   r    r   r
  r   r   r   r   rf   rg   r#   rG   Śvaluer`   )r   Śexcinfos     r=   Ś;test_special_exceptions_for_lost_connection_in_message_bodyr  F  s   Ü6ÓAŲNNŲVōō Ó¤7Ń*Š*Š*Ų<<>YŃ&Š&Š&ŲNN8ŌŲ<<>T xŌ0Ņ0Š0Š0ŲNN3ŌÜ	Ō*Ō	+ØwŲ	÷ 
,ą¤ W§]”]Ó!3Ń3Š3Š3ŲS §”Ó/Ń/Š/Š/ä6ÓAŲNNš	.ōō
 Ó¤7Ń*Š*Š*Ų<<>YŃ&Š&Š&ŲNN>Ō"Ų<<>×Ń )Ņ+Š+Š+ŲNN3ŌÜ	Ō*Ō	+ØwŲ	÷ 
,ą$¬ØGÆM©MÓ(:Ń:Š:Ń:÷% 
,Ń	+ś÷  
,Š	+śs   Ā4G%Ę2G2Ē%G/Ē2G;)r)   N)JŚtypingr   r   r   r   r   r   r	   rf   Ś_connectionr   r   r   r   r   Ś_eventsr   r   r   r   r   r   r   Ś_stater   r   r   r   r   r   r   r   r   r    r!   Ś_utilr"   r#   r$   Śhelpersr&   r'   r(   r>   rX   rt   r{   r   r   r   r   r   r   r¬   r³   rŗ   rČ   rĪ   rŠ   rŅ   ré   ró   rõ   r÷   rł   rü   r’   ŚmarkŚparametrizerå   r  r  r  r  r;   r<   r=   Ś<module>r     sV  šß ?× ?Ń ?ć ē SÕ S÷÷ ń ÷÷ ÷ ń ÷ FŃ Eß DŃ DóVó<)=óX@;óF;ó>$/óN#ó ";óJ'7óTGó@*:óZIóXóBE óPz3óz&0óR=$óD'8óT!$óHC*óL+óóSóóš ×ŃŲ
ņóš°%š øDņ óšš ×ŃŲ
ņóš°5š øTņ óšó'
ōT;r<   