Ë
    _§1hy®  ã                  óª  — U 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	m
Z
 d dlmZmZ d dlmZmZmZ d dlZd dlZddlmZmZ ddlmZmZmZmZ dd	lmZmZmZmZm Z  dd
l!m"Z"m#Z# er`d dl$m%Z% d dl&m'Z' ddl(m)Z) e*eee+e,ee*e,e+f   e*e,e+e+e+f   e*e+e-f   f   f   Z.de/d<   e0e.   Z1de/d<   e*ee,e-df   ee,e-e+df   e+e+e+e+f   Z2de/d<   n	de/d<   e3Z1e3Z2 G d„ d«      Z4ejj                  dOd„«       Z6dPd„Z7dPd„Z8dQd„Z9dPd„Z:dPd„Z;dPd„Z<dPd„Z=ej|                  j                   e@ed«       d¬«      dPd „«       ZAdPd!„ZBedPd"„«       ZCej|                  j                  ejˆ                  d#k7  d$¬«      dPd%„«       ZEdPd&„ZFdPd'„ZGdRd(„ZHdPd)„ZIdPd*„ZJej|                  j—                  d+d,ej˜                  f ejš                  d-ejœ                  e¬.«      g«      	 	 	 	 	 	 dSd/„«       ZOdPd0„ZPdTd1„ZQ ej¤                  d2¬3«       G d4„ d5«      «       ZSej|                  j—                  d6ej˜                   eSd7d,d8d9¬:«      f ejš                  ejœ                   eSd;d-d<d=¬:«      e¬.«      g«      dUd>„«       ZTdPd?„ZUdPd@„ZVedPdA„«       ZWedPdB„«       ZXdPdC„ZYdPdD„ZZdQdE„Z[dPdF„Z\dQdG„Z]dPdH„Z^dPdI„Z_ej|                  j                   e@edJ«       dK¬«      dPdL„«       Z`dPdM„ZadPdN„Zby)Vé    )ÚannotationsN)ÚPath)ÚAddressFamilyÚ
SocketKind)ÚTYPE_CHECKINGÚUnionÚcasté   )Ú_coreÚsocket)Ú
binds_ipv6Úcan_create_ipv6Úcreates_ipv6Úslow)Ú_NUMERIC_ONLYÚAddressFormatÚ
SocketTypeÚ_SocketTypeÚ	_try_sync)Úassert_checkpointsÚwait_all_tasks_blocked)ÚCallable)Ú	TypeAlias)ÚSocketStreamr   ÚGaiTupleÚGetAddrInfoResponseÚGetAddrInfoArgsÚobjectc                  ó¨   — e Zd ZdZ	 	 	 	 dd„Z	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 d	d„Z	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d
d„Z	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zy)ÚMonkeypatchedGAI©Ú_orig_getaddrinfoÚ
_responsesÚrecordc                ó.   — || _         i | _        g | _        y ©Nr!   )ÚselfÚorig_getaddrinfos     úU/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/trio/_tests/test_socket.pyÚ__init__zMonkeypatchedGAI.__init__9   s!   € ð "2ˆÔð ð 	Œð .0ˆ�ó    c                óÆ   — t        j                  | j                  «      }|j                  ||||||¬«      }|j	                  «        |j
                  }	|j                  rJ ‚|	S ©N©ÚfamilyÚtypeÚprotoÚflags)ÚinspectÚ	signaturer"   ÚbindÚapply_defaultsÚargsÚkwargs)
r'   ÚhostÚportr/   r0   r1   r2   ÚsigÚboundÚfrozenbounds
             r)   Ú_frozenbindzMonkeypatchedGAI._frozenbindH   s]   € ô ×Ñ × 6Ñ 6Ó7ˆØ—‘˜˜t¨F¸ÀUÐRW�ÓXˆØ×ÑÔØ—j‘jˆØ—<’<ÐÐØÐr+   c           
     óL   — || j                   | j                  ||||||¬«      <   y r-   )r#   r>   )r'   Úresponser9   r:   r/   r0   r1   r2   s           r)   ÚsetzMonkeypatchedGAI.setX   s:   € ð& ð 	�‰Ø×ÑØØØØØØð ó ò		
r+   c                ó  — | j                  ||||||«      }| j                  j                  |«       || j                  v r| j                  |   S |t        j
                  z  r| j                  ||||||«      S t        d|› �«      ‚)Nz%gai called with unexpected arguments )r>   r$   Úappendr#   Ústdlib_socketÚAI_NUMERICHOSTr"   ÚRuntimeError)r'   r9   r:   r/   r0   r1   r2   r<   s           r)   ÚgetaddrinfozMonkeypatchedGAI.getaddrinfom   s‡   € ð × Ñ   t¨V°T¸5À%ÓHˆØ�‰×Ñ˜5Ô!Ø�D—O‘OÑ#Ø—?‘? 5Ñ)Ð)Ø”]×1Ñ1Ò1Ø×)Ñ)¨$°°f¸dÀEÈ5ÓQÐQäÐ!FÀuÀgÐNÓOÐOr+   N)r(   zaCallable[[str | bytes | None, str | bytes | int | None, int, int, int, int], GetAddrInfoResponse]ÚreturnÚNone)r   r   r   r   )r9   ústr | bytes | Noner:   ústr | bytes | int | Noner/   Úintr0   rL   r1   rL   r2   rL   rH   r   )r@   úGetAddrInfoResponse | strr9   rJ   r:   rK   r/   rL   r0   rL   r1   rL   r2   rL   rH   rI   )r9   rJ   r:   rK   r/   rL   r0   rL   r1   rL   r2   rL   rH   rM   )Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r*   r>   rA   rG   © r+   r)   r    r    6   s7  „ Ø=€Ið0ð
ð0ð 
ó0ð& ØØØðà ðð 'ðð ð	ð
 ðð ðð ðð 
óð* ØØØðà+ðð !ðð 'ð	ð
 ðð ðð ðð ðð 
óð2 ØØØðPà ðPð 'ðPð ð	Pð
 ðPð ðPð ðPð 
#ôPr+   r    c                óz   — t        t        j                  «      }| j                  t        d|j                  «       |S )NrG   )r    rD   rG   Úsetattr)ÚmonkeypatchÚ
controllers     r)   Ú	monkeygairW   €   s0   € ä!¤-×";Ñ";Ó<€JØ×Ñœ }°j×6LÑ6LÔMØÐr+   c            	   ƒ  óˆ  K  — t        «       5  t        «       4 ƒd {  –—†  	 d d d «      ƒd {  –—†  d d d «       t        «       5  t        j                  t        «      5  t        «       4 ƒd {  –—†  t        ‚7 Œ[7 ŒL# 1 ƒd {  –—†7  sw Y   Œ\xY w# 1 sw Y   Œ`xY w7 Œ/# 1 ƒd {  –—†7  sw Y   nxY w	 d d d «       n# 1 sw Y   nxY wd d d «       n# 1 sw Y   nxY wt        «       4 ƒd {  –—†7   t
        ‚# 1 ƒd {  –—†7  sw Y   nxY wdd„} t        | «      4 ƒd {  –—†7   t        ‚# 1 ƒd {  –—†7  sw Y   nxY wt        «       5  t        j                  t
        «      5  t        | «      4 ƒd {  –—†7   t
        ‚# 1 ƒd {  –—†7  sw Y   nxY w	 d d d «       n# 1 sw Y   nxY wd d d «       y # 1 sw Y   y xY w­w)Nc                ó"   — t        | t        «      S r&   )Ú
isinstanceÚ
ValueError)Úexcs    r)   Ú_is_ValueErrorz&test__try_sync.<locals>._is_ValueError”   s   € Ü˜#œzÓ*Ð*r+   )r\   ÚBaseExceptionrH   Úbool)r   r   ÚpytestÚraisesÚKeyErrorÚBlockingIOErrorr[   )r]   s    r)   Útest__try_syncrd   ‡   s†  è ø€ Ü	Ó	ñ Ü“;÷ 	ñ 	Ø÷	÷ 	÷ô 
Ó	ñ Ü�]‰]œ8Ó$ñ 	Ü “{÷ ñ Ü�ð	øð 	ø÷ 	÷ 	ñ 	ú÷ð úðø÷ ÷ ñ úð ÷	÷ 	ñ 	ú÷÷ ñ úô
 ‹{÷ ò ÜÐ÷÷ ñ úó+ô ˜Ó(÷ ò ÜÐ÷÷ ñ úô 
Ó	ñ &Ü�]‰]œ?Ó+ñ 	&Ü  Ó0÷ &ò &Ü%Ð%÷&÷ &ñ &úð &÷	&÷ 	&ñ 	&ú÷&÷ &ñ &üsk  ‚G�BœA8�B A<¢B­A:®B²GÁCÁB>Á-B
Á.B>Á1BÁ8BÁ:BÁ<B	ÂBÂB	Â
BÂBÂGÂB>ÂB1Â%B(Â&B1Â-B>Â5	CÂ>C	ÃCÃ
	GÃCÃGÃ-C0Ã.GÃ2C9Ã9DÃ?DÄ DÄGÄ!D$Ä"GÄ&D-Ä-D?Ä3D6Ä4D?Ä;GÅF6Å&F!Å6E9
Å7F!Å;FÆFÆFÆ	FÆF!Æ	F6Æ!F*	Æ&F6Æ-	GÆ6F?Æ;Gc                 ó  — t         j                  t        j                  k(  sJ ‚t         j                  t        j                  k(  sJ ‚t         j                  t        j                  k(  sJ ‚t         j
                  t        j
                  k(  sJ ‚y r&   )ÚtsocketÚ
SOL_SOCKETrD   ÚTCP_NODELAYÚgaierrorÚntohsrR   r+   r)   Útest_socket_has_some_reexportsrk   ¥   sh   € Ü×Ñ¤×!9Ñ!9Ò9Ð9Ð9Ü×Ñ¤-×";Ñ";Ò;Ð;Ð;Ü×Ñœ}×5Ñ5Ò5Ð5Ð5Ü�=‰=œM×/Ñ/Ò/Ð/Ñ/r+   c           	   ƒ  óè  K  — dd„}t        «       5  t        j                  ddt        j                  ¬«      ƒ d {  –—† }d d d «        |t        j                  t        j                  t        j
                  ddfg«       t        «       5  t        j                  ddt        j                  ¬«      ƒ d {  –—† }d d d «        ||t        j                  t        j                  t        j                  ddfg«       | j                  d	d
ddddd¬«       t        «       5  t        j                  dd«      ƒ d {  –—† }d d d «       |d	k(  sJ ‚| j                  d   dk(  sJ ‚t        «       5  t        j                  t        j                  «      5 }t        j                  ddd¬«      ƒ d {  –—†  d d d «       d d d «       t        j                  h}|j                  t        j                   «       t#        t        d«      r|j                  t        j$                  «       j&                  j(                  |v sJ ‚t        «       5  t        j                  t*        «      5  t        j                  dd«      ƒ d {  –—†  d d d «       d d d «       y 7 �ŒP# 1 sw Y   �ŒPxY w7 �Œæ# 1 sw Y   �ŒæxY w7 �Œt# 1 sw Y   �ŒtxY w7 �Œ# 1 sw Y   �ŒxY w# 1 sw Y   �ŒxY w7 Œb# 1 sw Y   ŒaxY w# 1 sw Y   y xY w­w)Nc                óP   ‡— 	 	 	 	 dd„Š	 	 	 	 dˆfd„} || «       ||«      k(  sJ ‚y )Nc                ó   — | \  }}}}}|||fS r&   rR   )Úgai_tupr/   Útype_Ú_protoÚ
_canonnameÚsockaddrs         r)   Úinteresting_fieldsz;test_getaddrinfo.<locals>.check.<locals>.interesting_fields¸   s"   € ð ;BÑ7ˆF�E˜6 :¨xØ˜E 8Ð,Ð,r+   c                ó:   •— | D �cg c]
  } ‰|«      ‘Œ c}S c c}w r&   rR   )Úgai_listro   rt   s     €r)   Úfilteredz1test_getaddrinfo.<locals>.check.<locals>.filteredÃ   s!   ø€ ð @HÖH°GÑ& wÕ/ÒHÐHùÒHs   †)ro   r   rH   zatuple[AddressFamily, SocketKind, tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes]])rv   r   rH   zglist[tuple[AddressFamily, SocketKind, tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes]]]rR   )ÚgotÚexpectedrw   rt   s      @r)   Úcheckztest_getaddrinfo.<locals>.check²   sM   ø€ ð		-Øð		-ð
ó		-ð		IØ)ð		Ið
õ		Iñ ˜‹}¡¨Ó 2Ò2Ð2Ñ2r+   ú	127.0.0.1Ú12345©r0   Ú )r{   é90  ú::1)r€   r   r   r   Úxó   hostr:   r   r.   r9   éÿÿÿÿ)r‚   r:   r   r   r   r   ÚEAI_BADHINTSÚasdf)rx   r   ry   r   rH   rI   )r   rf   rG   ÚSOCK_STREAMÚAF_INETÚIPPROTO_TCPÚ
SOCK_DGRAMÚAF_INET6ÚIPPROTO_UDPrA   r$   r`   ra   ri   ÚEAI_SOCKTYPEÚaddÚEAI_SERVICEÚhasattrr„   ÚvalueÚerrnorF   )rW   rz   ÚresÚexcinfoÚexpected_errnoss        r)   Útest_getaddrinfor•   ±   sš  è ø€ ó3ô> 
Ó	ñ XÜ×'Ñ'¨°WÄ7×CVÑCVÔW×Wˆ÷Xñ 
Øô —‘Ü×#Ñ#Ü×#Ñ#ØØ$ðð	
ôô 
Ó	ñ QÜ×'Ñ'¨¨w¼W×=OÑ=OÔP×Pˆ÷Qá	Øô × Ñ Ü×"Ñ"Ü×#Ñ#ØØ$ðð	
ôð ‡M�M�#�w ¨q°qÀÈ€MÔKÜ	Ó	ñ 8Ü×'Ñ'¨°Ó7×7ˆ÷8à�#Š:Ðˆ:Ø×Ñ˜BÑÐ#@Ò@Ð@Ð@ô 
Ó	ñ ?Ü�]‰]œ7×+Ñ+Ó,ð 	?°Ü×%Ñ% e¨W¸2Ô>×>Ð>÷	?÷?ô ×+Ñ+Ð,€Oà×Ñœ×+Ñ+Ô,äŒw˜Ô'Ø×ÑœG×0Ñ0Ô1Ø�=‰=×Ñ /Ñ1Ð1Ð1ô
 
Ó	ñ 7Ü�]‰]œ<Ó(ñ 	7Ü×%Ñ% f¨gÓ6×6Ð6÷	7÷7ð 7ði Xù÷Xñ Xúð" Qù÷Qñ Qúð" 8ù÷8ñ 8úð ?ù÷	?ñ 	?ú÷?ñ ?úð" 7ø÷	7ð 	7ú÷7ð 7üs  ‚K2‘*J»J¼JÁ AK2Â*JÂ5JÂ6JÂ:A#K2ÄJ.Ä7J+Ä8J.Ä<-K2Å)$KÆJ>Æ)J;Æ*J>Æ.KÆ6BK2ÉK&ÉKÉ5KÉ6KÉ:K&Ê	K2ÊJÊJÊK2ÊJÊJ(Ê#K2Ê+J.Ê.J8Ê3K2Ê;J>Ê>K	ËKËKËK2ËKËK#	ËK&Ë&K/Ë+K2c               ƒ  ó   K  — t         j                  t         j                  z  } t        «       5  t	        j
                  d| «      ƒ d {  –—† }d d d «       dk(  sJ ‚t        «       5  t        j                  t        j                  «      5  t	        j
                  dd«      ƒ d {  –—†  d d d «       d d d «       t        «       5  t        j                  t        j                  «      5  t	        j
                  dd«      ƒ d {  –—†  d d d «       d d d «       t        j
                  dd«      \  }}t	        j
                  dd«      ƒ d {  –—† }|||fk(  sJ ‚t	        j
                  dt        j                  «      ƒ d {  –—† }|d|fk(  sJ ‚t	        j
                  dt        j                  «      ƒ d {  –—† }||dfk(  sJ ‚y 7 �Œy# 1 sw Y   �ŒyxY w7 �Œ-# 1 sw Y   �Œ-xY w# 1 sw Y   �Œ2xY w7 Œì# 1 sw Y   ŒëxY w# 1 sw Y   ŒïxY w7 Œ¿7 ŒŒ7 ŒY­w)	N)r{   iÒ  )r{   Ú1234)z
google.coméP   r   )Ú	localhostr˜   ©r{   r˜   r{   Ú80)	rD   ÚNI_NUMERICHOSTÚNI_NUMERICSERVr   rf   Úgetnameinfor`   ra   ri   )Ú
ni_numericrx   r9   Úservices       r)   Útest_getnameinfor¡     sÜ  è ø€ ä×-Ñ-´×0LÑ0LÑL€JÜ	Ó	ñ IÜ×'Ñ'Ð(;¸ZÓH×Hˆ÷IàÐ'Ò'Ð'Ð'ô 
Ó	ñ =Ü�]‰]œ7×+Ñ+Ó,ñ 	=Ü×%Ñ%Ð&8¸!Ó<×<Ð<÷	=÷=ô 
Ó	ñ <Ü�]‰]œ7×+Ñ+Ó,ñ 	<Ü×%Ñ%Ð&7¸Ó;×;Ð;÷	<÷<ô
 "×-Ñ-Ð.?ÀÓC�M€Dˆ'ô ×#Ñ#Ð$5°qÓ9×
9€CØ�4˜�/Ò!Ð!Ð!ä×#Ñ#Ð$5´w×7MÑ7MÓN×
N€CØ�; Ð(Ò(Ð(Ð(ä×#Ñ#Ð$5´w×7MÑ7MÓN×
N€CØ�4˜�,ÒÐÑð/ Iù÷Iñ Iúð =ù÷	=ñ 	=ú÷=ñ =úð <ø÷	<ð 	<ú÷<ð <úð :øð Oøð Oúsâ   ‚,H®GÁGÁ	GÁHÁ&$G!Â
GÂ$GÂ%GÂ)G!Â1HÃ$G<Ã'G0ÄG.ÄG0ÄG<Ä:HÅHÅ	4HÅ=H
Å>4HÆ2HÆ3HÇGÇGÇ	HÇGÇG	ÇG!Ç!G+Ç&HÇ.G0Ç0G9	Ç5G<Ç<HÈHÈ
HÈHc               ƒ  óP  K  — t        j                  «       \  } }t        | t        j                  «      rJ ‚| 5  |5  t        j
                  | «      }t        |t        j                  «      sJ ‚| j                  «       |j                  «       k(  sJ ‚|j                  d«      ƒ d {  –—†  |j                  d«      dk(  sJ ‚	 d d d «       d d d «       t        j                  t        «      5  t        j
                  d«       d d d «        G d„ dt         j                  «      } |«       5 }t        j                  t        «      5  t        j
                  |«       d d d «       d d d «       y 7 ŒÃ# 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   Œ8xY w# 1 sw Y   y xY w­w)Nó   xé   c                  ó   — e Zd Zy)ú)test_from_stdlib_socket.<locals>.MySocketN)rN   rO   rP   rR   r+   r)   ÚMySocketr¦   <  s   „ Ør+   r§   )rD   Ú
socketpairrZ   rf   r   Úfrom_stdlib_socketÚfilenoÚsendÚrecvr`   ra   Ú	TypeErrorr   )ÚsaÚsbÚtar§   Úmysocks        r)   Útest_from_stdlib_socketr²   .  s^  è ø€ Ü×%Ñ%Ó'�F€BˆÜ˜"œg×0Ñ0Ô1Ð1Ð1Ø	ñ "ˆRñ "Ü×'Ñ'¨Ó+ˆÜ˜"œg×0Ñ0Ô1Ð1Ð1Ø�y‰y‹{˜bŸi™i›kÒ)Ð)Ð)Ø�g‰g�d‹m×ÐØ�w‰w�q‹z˜TÒ!Ð!Ñ!÷"÷ "ô 
�‰”yÓ	!ñ &Ü×"Ñ" 1Ô%÷&ô”=×'Ñ'ô ñ 
‹ð /�vÜ�]‰]œ9Ó%ñ 	/Ü×&Ñ& vÔ.÷	/÷/ð /ð 	ø÷	"ð "ú÷ "ð "ú÷&ð &ú÷	/ð 	/ú÷/ð /üsŽ   ‚6F&¸E6»A)E*Â$E(Â%E*Ã E6Ã!F&Ã)FÃ?(F&Ä'FÅFÅFÅ	F&Å(E*Å*E3	Å/E6Å6E?Å;F&ÆFÆF&ÆF	ÆFÆF#ÆF&c               ƒ  óö  K  — t        j                  «       \  } }t        j                  | j	                  «       | j
                  | j                  | j                  «      }| 5  |5  |5  |j	                  «       | j	                  «       k7  sJ ‚|j                  d«      ƒ d {  –—†  |j                  d«      dk(  sJ ‚	 d d d «       d d d «       d d d «       y 7 Œ4# 1 sw Y   ŒxY w# 1 sw Y   Œ xY w# 1 sw Y   y xY w­w)Nr£   é   )
rD   r¨   rf   Úfromfdrª   r/   r0   r1   r«   r¬   )r®   r¯   r°   s      r)   Útest_from_fdr¶   D  sÍ   è ø€ Ü×%Ñ%Ó'�F€BˆÜ	�‰˜Ÿ	™	› R§Y¡Y°·±¸¿¹Ó	B€BØ	ñ "ˆRñ "�ñ "Ø�y‰y‹{˜bŸi™i›kÒ)Ð)Ð)Ø�g‰g�d‹m×ÐØ�w‰w�q‹z˜TÒ!Ð!Ñ!÷"÷ "÷ "ð "àø÷"ð "ú÷ "ð "ú÷ "ð "üs`   ‚AC9Á C-Á#C!Á&8CÂC
ÂCÂ:C!ÃC-Ã
	C9ÃCÃCÃC!Ã!C*	Ã&C-Ã-C6Ã2C9c            	   ƒ  ór  K  — dd„} t        j                  «       \  }}|5  |5  t        j                  «       4 ƒd {  –—† }|j	                  | |«       |j	                  | |«       d d d «      ƒd {  –—†  d d d «       d d d «       y 7 ŒI7 Œ# 1 ƒd {  –—†7  sw Y   Œ'xY w# 1 sw Y   Œ+xY w# 1 sw Y   y xY w­w)Nc              “  ó˜   K  — t        d«       | j                  d«      ƒ d {  –—†  | j                  d«      ƒ d {  –—† dk(  sJ ‚y 7 Œ#7 Œ­w)Nzsending helloó   hr¤   )Úprintr«   r¬   )Úsocks    r)   Úchildz%test_socketpair_simple.<locals>.childN  sA   è ø€ ÜˆoÔØ�i‰i˜‹o×ÐØ—Y‘Y˜q“\×! TÒ)Ð)Ñ)ð 	øØ!ús   ‚ A
¢A£A
»A¼A
ÁA
)r»   r   rH   rI   )rf   r¨   r   Úopen_nurseryÚ
start_soon)r¼   ÚaÚbÚnurserys       r)   Útest_socketpair_simplerÂ   M  s°   è ø€ ó*ô
 ×ÑÓ�D€A€qØ	
ñ )ˆAñ )Ü×%Ñ%Ó'÷ 	)ð 	)¨7Ø×Ñ˜u aÔ(Ø×Ñ˜u aÔ(÷	)÷ 	)÷)÷ )ð )ð	)øð 	)ø÷ 	)÷ 	)ñ 	)ú÷)ð )ú÷ )ð )üsy   ‚B7 B+£B¼B
½BÁ %B
Á%BÁ0BÁ1BÁ5B+Á=	B7ÂBÂBÂ
BÂBÂBÂBÂB(	Â$B+Â+B4Â0B7Ú	fromsharezwindows only)Úreasonc               ƒ  ó&  K  — t         rt        j                  dk7  ry t        j                  «       \  } }| 5  |5  | j                  t        j                  «       «      }t        j                  |«      }|5  | j                  «       |j                  «       k7  sJ ‚|j                  d«      ƒ d {  –—†  |j                  d«      ƒ d {  –—† dk(  sJ ‚	 d d d «       d d d «       d d d «       y 7 Œ<7 Œ%# 1 sw Y   ŒxY w# 1 sw Y   Œ"xY w# 1 sw Y   y xY w­w)NÚwin32r£   r¤   )r   ÚsysÚplatformrf   r¨   ÚshareÚosÚgetpidrÃ   rª   r«   r¬   )r¿   rÀ   ÚsharedÚa2s       r)   Útest_fromsharerÎ   Z  så   è ø€ åœŸ™¨Ò0ØÜ×ÑÓ�D€A€qØ	
ñ +ˆAñ +à—‘œŸ™›Ó%ˆÜ×Ñ˜vÓ&ˆØñ 	+Ø—8‘8“: §¡£Ò,Ð,Ð,Ø—'‘'˜$“-×ÐØŸ™ ›—? dÒ*Ð*Ñ*÷	+÷	+÷ +ð +ð  øØ"ø÷	+ð 	+ú÷	+ð +ú÷ +ð +üso   ‚4D¶D¹;C9Á48C-Â,C)
Â-C-ÃC+
Ã	C-ÃC9ÃDÃ 	DÃ)C-Ã+C-Ã-C6Ã2C9Ã9D	Ã>DÄDÄ
Dc               ƒ  óÖ   K  — t        j                  «       5 } t        | t         j                  «      sJ ‚| j                  t         j
                  k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w­wr&   )rf   r   rZ   r   r/   r‡   ©Úss    r)   Útest_socketrÒ   i  sR   è ø€ Ü	�‰Ó	ð +˜QÜ˜!œW×/Ñ/Ô0Ð0Ð0Ø�x‰xœ7Ÿ?™?Ò*Ð*Ñ*÷+÷ +ñ +üs   ‚A)—<AÁ	A)ÁA&Á"A)c               ƒ  ó  K  — t        j                  t         j                  t         j                  «      5 } t	        | t         j
                  «      sJ ‚| j                  t         j                  k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w­wr&   )rf   r   rŠ   r‰   rZ   r   r/   rÐ   s    r)   Útest_socket_v6rÔ   o  sd   è ø€ ä	�‰œ×(Ñ(¬'×*<Ñ*<Ó	=ð ,ÀÜ˜!œW×/Ñ/Ô0Ð0Ð0Ø�x‰xœ7×+Ñ+Ò+Ð+Ñ+÷,÷ ,ñ ,üs   ‚3Bµ<A;Á2	BÁ;BÂ BÚlinuxz
linux onlyc            	   ƒ  ó~  K  — ddl m} m}m}m} t
        r| |fn| f}|D ��cg c]!  }||fD ]  }t        j                   ||«      ‘Œ Œ# }}}|D ]ç  }t        j                   |j                  «       ¬«      }	|	j                  |j                  k(  sJ ‚|	j                  |j                  k(  sJ ‚|	j                  «        t        j                  |j                  «       | |«      }
|
j                  |j                  k(  sJ ‚|
j                  |j                  k(  sJ ‚|
j                  «        |j                  «        Œé y c c}}w ­w)Nr   )r‡   rŠ   r‰   r†   ©rª   )r   r‡   rŠ   r‰   r†   r   rD   rf   rª   r/   r0   Údetachrµ   Úclose)r‡   rŠ   r‰   r†   Úfamiliesr/   rp   Úsocketsr   Útsocket_socketÚtsocket_from_fds              r)   Útest_sniff_sockoptsrÞ   v  s)  è ø€ çAÓAõ '6�˜Ñ"¸G¸:€Hð ÷àØ  +Ð.òð ô 	×Ñ˜V UÕ+ðØ+ð€Gñ ð
 ò ˆä Ÿ™¨v¯}©}«Ô?ˆà×$Ñ$¨¯©Ò5Ð5Ð5Ø×"Ñ" f§k¡kÒ1Ð1Ð1Ø×ÑÔô "Ÿ.™.¨¯©«¸'À;ÓOˆà×%Ñ%¨¯©Ò6Ð6Ð6Ø×#Ñ# v§{¡{Ò2Ð2Ð2Ø×ÑÔà�‰�ñùóùs   ‚D=¡&D7ÁC6D=c               ƒ  ó   K  — t        j                  «       } | 5 }|| u sJ ‚t        | j                  «       t        «      sJ ‚| j                  «       rJ ‚| j                  d«       | j                  «       sJ ‚| j                  t         j                  t         j                  d«       | j                  t         j                  t         j                  «      rJ ‚| j                  t         j                  t         j                  d«       | j                  t         j                  t         j                  «      sJ ‚	 d d d «       | j                  «       dk(  sJ ‚t        | «       t        j                  «       5 } | j                  «       }| j                  «       |k(  sJ ‚| j                  «       dk(  sJ ‚	 d d d «       t        j                  «       } | j                  «       dk\  sJ ‚| j                  «        | j                  «       dk(  sJ ‚dt        | «      v sJ ‚dt        | «      v sJ ‚dt        | «      v sJ ‚t        j                   t"        «      5  | j$                   d d d «       t'        j                  «       }t        j(                  |«      } | j*                  |j*                  k(  sJ ‚| j,                  |j,                  k(  sJ ‚| j.                  |j.                  k(  sJ ‚| j                  «        y # 1 sw Y   �Œ¶xY w# 1 sw Y   �ŒKxY w# 1 sw Y   Œ®xY w­w)NTFrƒ   r   r/   r¬   Ú
setsockopt)rf   r   rZ   rª   rL   Úget_inheritableÚset_inheritablerà   rˆ   rh   Ú
getsockoptÚreprrØ   rÙ   Údirr`   ra   ÚAttributeErrorr…   rD   r©   r0   r/   r1   )r»   Úcm_enter_valueÚfdÚstdlib_socks       r)   Útest_SocketType_basicsrê   ˜  s…  è ø€ Ü�>‰>Ó€DØ	ð 
I�Ø Ñ%Ð%Ð%Ü˜$Ÿ+™+›-¬Ô-Ð-Ð-Ø×'Ñ'Ô)Ð)Ð)Ø×Ñ˜TÔ"Ø×#Ñ#Ô%Ð%Ð%à�‰œ×+Ñ+¬W×-@Ñ-@À%ÔHØ—?‘?¤7×#6Ñ#6¼×8KÑ8KÔLÐLÐLØ�‰œ×+Ñ+¬W×-@Ñ-@À$ÔGØ�‰œw×2Ñ2´G×4GÑ4GÔHÐHÑH÷
Ið �;‰;‹=˜BÒÐÐô 	ˆ„Jô 
�‰Ó	ð #˜TØ�[‰[‹]ˆØ�{‰{‹} Ò"Ð"Ð"Ø�{‰{‹} Ò"Ð"Ñ"÷#ô �>‰>Ó€DØ�;‰;‹=˜AÒÐÐØ‡J�J„LØ�;‰;‹=˜BÒÐÐð
 ”s˜4“yÑ Ð Ð Ø”S˜“YÑÐÐØœ3˜t›9Ñ$Ð$Ð$ô 
�‰”~Ó	&ñ Ø�	Š	÷ô  ×&Ñ&Ó(€KÜ×%Ñ% kÓ2€DØ�9‰9˜×(Ñ(Ò(Ð(Ð(Ø�;‰;˜+×,Ñ,Ò,Ð,Ð,Ø�:‰:˜×*Ñ*Ò*Ð*Ð*Ø‡J�J…L÷]
Iñ 
Iú÷$#ñ #ú÷&ð üsO   ‚L™DK(Ä4<LÅ0;K5Æ,BLÉLÉBLË(K2Ë-LË5K?Ë:LÌLÌLc               ƒ  óx   K  — t        j                  «       } | 5 }t        | «       d d d «       y # 1 sw Y   y xY w­wr&   )rf   r   Úsetsockopt_tests)r»   Ú_s     r)   Útest_SocketType_setsockoptrî   Ë  s3   è ø€ Ü�>‰>Ó€DØ	ð �Ü˜Ô÷÷ ñ üs   ‚:™.¥	:®7³:c                óÐ  — t        t        d«      r1	 | j                  t        j                  t        j                  dd«       | j                  t        j                  t        j                  d«       t        j                  t        d¬«      5  | j                  t        j                  t        j                  dd«       ddd«       t        j                  t        d¬«      5  | j                  t        j                  t        j                  d«       ddd«       y# t
        $ r+}|j                  dt        j                  fv sJ ‚Y d}~�Œd}~ww xY w# 1 sw Y   Œ”xY w# 1 sw Y   yxY w)	z6Extract these out, to be reused for SocketStream also.ÚSO_BINDTODEVICENr   é*   Fz"invalid value for argument 'value'©Úmatché   )r�   rf   rà   rg   rð   ÚOSErrorr‘   ÚEPERMrˆ   rh   r`   ra   r­   )r»   Úes     r)   rì   rì   Ñ  s  € ô ŒwÐ)Ô*ð	Ø�O‰OœG×.Ñ.´×0GÑ0GÈÈqÔQð  	‡O�O”G×'Ñ'¬×)<Ñ)<¸eÔDô 
�‰”yÐ(LÔ	Mñ LØ�‰œ×+Ñ+¬W×-@Ñ-@À%ÈÔK÷Lô 
�‰”yÐ(LÔ	Mñ HØ�‰œ×+Ñ+¬W×-@Ñ-@À$ÔG÷Hð Høô- ò 	Ø—7‘7ð ô —‘ðñ ð ö ûð	ú÷$Lð Lú÷Hð Hús/   ’0D Â1EÃ 0EÄ	EÄ" EÅEÅEÅE%c               ƒ  óú  K  — t        j                  «       \  } }| 5  |5  | j                  «       }|5  t        |t         j                  «      sJ ‚|j                  «       | j                  «       k7  sJ ‚| j                  «        |j                  d«      ƒ d {  –—†  |j                  d«      ƒ d {  –—† dk(  sJ ‚	 d d d «       d d d «       d d d «       y 7 Œ<7 Œ%# 1 sw Y   ŒxY w# 1 sw Y   Œ"xY w# 1 sw Y   y xY w­w©Nr£   r¤   )	rf   r¨   ÚduprZ   r   rª   rÙ   r«   r¬   )r¿   rÀ   rÍ   s      r)   Útest_SocketType_duprû   ò  sÚ   è ø€ Ü×ÑÓ�D€A€qØ	
ñ +ˆAñ +Ø�U‰U‹WˆØñ 	+Ü˜b¤'×"4Ñ"4Ô5Ð5Ð5Ø—9‘9“; !§(¡(£*Ò,Ð,Ð,Ø�G‰GŒIØ—'‘'˜$“-×ÐØŸ™ ›—? dÒ*Ð*Ñ*÷	+÷+÷ +ð +ð  øØ"ø÷	+ð 	+ú÷+ð +ú÷ +ð +üso   ‚C;œC/ŸC#²A$CÂC
ÂCÂ/C
Â0	CÂ:C#ÃC/Ã
	C;ÃCÃCÃC ÃC#Ã#C,	Ã(C/Ã/C8Ã4C;c               ƒ  ó~  K  — t        j                  «       \  } }| 5  |5  | j                  d«      ƒ d {  –—†  |j                  d«      ƒ d {  –—† dk(  sJ ‚| j                  rJ ‚|j                  rJ ‚| j                  t         j                  «       | j                  sJ ‚|j                  rJ ‚|j                  d«      ƒ d {  –—† dk(  sJ ‚|j                  d«      ƒ d {  –—†  | j                  d«      ƒ d {  –—† dk(  sJ ‚	 d d d «       d d d «       t        j                  «       \  } }| 5  |5  | j                  rJ ‚| j                  t         j                  «       | j                  rJ ‚	 d d d «       d d d «       t        j                  «       \  } }| 5  |5  | j                  rJ ‚| j                  t         j                  «       | j                  sJ ‚	 d d d «       d d d «       y 7 �Œ³7 �Œ�7 �Œ+7 �Œ7 Œù# 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# 1 sw Y   ŒPxY w# 1 sw Y   y xY w­w)Nr£   r¤   r+   ó   y)	rf   r¨   r«   r¬   Údid_shutdown_SHUT_WRÚshutdownÚSHUT_WRÚSHUT_RDÚ	SHUT_RDWR©r¿   rÀ   s     r)   Útest_SocketType_shutdownr  þ  s   è ø€ Ü×ÑÓ�D€A€qØ	
ñ 
'ˆAñ 
'Ø�f‰f�T‹l×ÐØ—V‘V˜A“Y� $Ò&Ð&Ð&Ø×)Ò)Ð)Ð)Ø×)Ò)Ð)Ð)Ø	�
‰
”7—?‘?Ô#Ø×%Ò%Ð%Ð%Ø×)Ò)Ð)Ð)Ø—V‘V˜A“Y� #Ò%Ð%Ð%Ø�f‰f�T‹l×ÐØ—V‘V˜A“Y� $Ò&Ð&Ñ&÷
'÷ 
'ô ×ÑÓ�D€A€qØ	
ñ *ˆAñ *Ø×)Ò)Ð)Ð)Ø	�
‰
”7—?‘?Ô#Ø×)Ò)Ð)Ð)Ð)÷*÷ *ô
 ×ÑÓ�D€A€qØ	
ñ &ˆAñ &Ø×)Ò)Ð)Ð)Ø	�
‰
”7×$Ñ$Ô%Ø×%Ò%Ð%Ñ%÷&÷ &ð &ð% 	ùØùð ùØùØø÷
'ð 
'ú÷ 
'ð 
'ú÷*ð *ú÷ *ð *ú÷&ð &ú÷ &ð &üsì   ‚H=œHŸG5´G'µG5ÁG*ÁA4G5ÃG-ÃG5Ã G0Ã!G5Ã9G3Ã:	G5ÄHÄ!H=Ä-HÄ0<HÅ-HÅ5!H=ÆH1Æ<H%ÇH1Ç	H=Ç'G5Ç*G5Ç-G5Ç0G5Ç3G5Ç5G>	Ç:HÈH
ÈH=ÈH	ÈHÈH"ÈH=È%H.	È*H1È1H:È6H=)ÚaddressÚsocket_typer{   r€   )Úmarksc           	   ƒ  ó<  K  — t        j                  |«      }t        j                  |«      }|5  |5  |j                  | df«      ƒ d {  –—†  |j                  d«       |j	                  «       d d }t        j                  «       4 ƒd {  –—† }|j                  |j                  |«       |j                  «       ƒ d {  –—† \  }}d d d «      ƒd {  –—†  5  |j                  «       cxk(  r|j	                  «       k(  sJ ‚ J ‚|j                  d«      ƒ d {  –—†  |j                  d«      ƒ d {  –—† dk(  sJ ‚	 d d d «       d d d «       d d d «       y 7 �Œ7 ŒÎ7 Œœ7 Œ‹# 1 ƒd {  –—†7  sw Y   Œ›xY w7 ŒZ7 ŒC# 1 sw Y   Œ<xY w# 1 sw Y   Œ@xY w# 1 sw Y   y xY w­w)Nr   é   r
   r£   r¤   )rf   r   r5   ÚlistenÚgetsocknamer   r½   r¾   ÚconnectÚacceptÚgetpeernamer«   r¬   )r  r  ÚlistenerÚclientÚaddrrÁ   ÚserverÚclient_addrs           r)   Útest_SocketType_simple_serverr    sv  è ø€ ô �~‰~˜kÓ*€HÜ�^‰^˜KÓ(€FØ	ñ 
0�6ñ 
0Ø�m‰m˜W a˜LÓ)×)Ð)Ø�‰˜ÔØ×#Ñ#Ó% b qÐ)ˆÜ×%Ñ%Ó'÷ 	:ð 	:¨7Ø×Ñ˜vŸ~™~¨tÔ4Ø(0¯©Ó(9×"9ÑˆF�K÷	:÷ 	:ð ñ 	0Ø &×"4Ñ"4Ó"6ÔN¸&×:LÑ:LÓ:NÒNÐNÑNÐNÐNØ—+‘+˜dÓ#×#Ð#ØŸ™ Q›×'¨4Ò/Ð/Ñ/÷	0÷
0÷ 
0ð 
0Ø)ùð	:øà"9øð	:ø÷ 	:÷ 	:ñ 	:úð
 $øØ'ø÷	0ð 	0ú÷
0ð 
0ú÷ 
0ð 
0üsÝ   ‚-F¯F²FÁ	EÁ
A FÂ
E
ÂFÂ0EÂ>E
Â?EÃFÃEÃFÃAE8ÄE4
ÄE8Ä2E6
Ä3	E8Ä=FÅFÅ	FÅFÅFÅEÅFÅE1Å%E(Å&E1Å-FÅ4E8Å6E8Å8FÅ=FÆF	Æ	FÆFÆFc               ƒ  ó¸  K  — t        j                  «       \  } }| 5  |5  | j                  «       rJ ‚|j                  d«      ƒ d {  –—†  t	        j
                  | «      ƒ d {  –—†  | j                  «       sJ ‚| j                  d«      ƒ d {  –—† dk(  sJ ‚| j                  «       rJ ‚	 d d d «       d d d «       y 7 Œu7 ŒZ7 Œ1# 1 sw Y   ŒxY w# 1 sw Y   y xY w­wrù   )rf   r¨   Úis_readabler«   r   Úwait_readabler¬   r  s     r)   Útest_SocketType_is_readabler  4  sÂ   è ø€ Ü×ÑÓ�D€A€qØ	
ñ #ˆAñ #Ø—=‘=”?Ð"Ð"Ø�f‰f�T‹l×ÐÜ×!Ñ! !Ó$×$Ð$Ø�}‰}ŒÐˆØ—V‘V˜A“Y� $Ò&Ð&Ð&Ø—=‘=”?Ð"Ð"�?÷#÷ #ð #àøØ$øàø÷#ð #ú÷ #ð #üsi   ‚CœCŸ'CÁB<ÁCÁ#B>Á$*CÂC ÂCÂ+CÂ3	CÂ<CÂ>CÃ CÃC	ÃCÃCÃCc                 ó„   — 	 t        j                  ddt         j                  ¬«       y# t         j                  $ r Y yw xY w)Nú1.2.3.4r   ©r/   TF)rD   rG   rŠ   ri   rR   r+   r)   Úgai_without_v4mapped_is_buggyr  B  s>   € ðÜ×!Ñ! )¨Q´}×7MÑ7MÕNð øô ×!Ñ!ò Ùðús   ‚&) ©?¾?F)Úslotsc                  ó6   — e Zd ZU ded<   ded<   ded<   ded<   y)Ú	AddressesÚstrÚbind_allr™   Ú	arbitraryÚ	broadcastN)rN   rO   rP   Ú__annotations__rR   r+   r)   r  r  K  s   … àƒMØƒNØƒNØ„Nr+   r  )r  Úaddrsz0.0.0.0r  z255.255.255.255)r!  r™   r"  r#  z::ú1::2z::ffff:255.255.255.255c              ƒ  óN
  ‡
‡‡‡K  — | t         j                  k(  Šd%ˆfd„Š	 	 	 	 	 	 d&ˆfd„}t        j                  | ¬«      5 Št        ‰t        «      sJ ‚dD ]–  }‰j                  |dfd¬«      ƒ d {  –—† }t        |t        t        f«      rJ ‚ |||j                  df«       ‰j                  |dfd¬«      ƒ d {  –—† }t        |t        t        f«      rJ ‚ |||j                  df«       Œ˜ d	D �]–  Š
	 	 	 	 d'ˆ
ˆfd
„} | ||j                  df«      ƒ d {  –—† |j                  df«       ‰�r, | |d«      ƒ d {  –—† d«        | |d«      ƒ d {  –—† d«        | |d«      ƒ d {  –—† d«        | |d«      ƒ d {  –—† d«        | |d«      ƒ d {  –—† d«        | |d«      ƒ d {  –—† d«        | |d«      ƒ d {  –—† d«        | |d«      ƒ d {  –—† d«        | |d«      ƒ d {  –—† d«        | |d«      ƒ d {  –—† d«       ‰j                  t         j                  t         j                  d«        | |d«      ƒ d {  –—† d«        | |d«      ƒ d {  –—† |j                  df«       ‰rÞt        «       sÔ‰j                  t         j                  t         j                  d«       t!        j"                  t         j$                  «      5 } |d«      ƒ d {  –—†  d d d «       t         j&                  t         j(                  h}t+        t         d«      r|j-                  t         j.                  «       j0                  j2                  |v sJ ‚	 t        j                  t         j4                  t         j6                  ¬«      }t        |t        «      sJ ‚|j                  d‰
¬«      ƒ d {  –—† dk(  sJ ‚|j9                  «        d}	t!        j"                  t>        |	¬ «      5   |d!«      ƒ d {  –—†  d d d «       t!        j"                  t>        |	¬ «      5   |d"«      ƒ d {  –—†  d d d «       t!        j"                  t>        |	¬ «      5  ‰r |d#«      ƒ d {  –—†  n |d$«      ƒ d {  –—†  d d d «       �Œ™ 	 d d d «       y 7 �Œ$7 �ŒÝ7 �Œ‚7 �Œ_7 �ŒK7 �Œ77 �Œ#7 �Œ7 �Œû7 �Œç7 �ŒÓ7 �Œ¿7 �Œ«7 �Œh7 �ŒT7 �Œ×# 1 sw Y   �Œ×xY w7 �Œ# t:        t<        f$ r Y �Œw xY w7 Œê# 1 sw Y   ŒéxY w7 ŒÄ# 1 sw Y   ŒÃxY w7 Œœ7 Œ�# 1 sw Y   �Œ$xY w# 1 sw Y   y xY w­w)(Nc                óP   •— ‰r"t        | «      dk  r| dz  } t        | «      dk  rŒ| S )Né   )r   )Úlen)r  Úv6s    €r)   Úpadz$test_SocketType_resolve.<locals>.pado  s,   ø€ ÙÜ�d“)˜a’-Ø˜‘�ô �d“)˜a“-àˆr+   c                ó,   •—  ‰|«       ‰| «      k(  sJ ‚y r&   rR   )Úactualry   r,  s     €r)   Ú	assert_eqz*test_SocketType_resolve.<locals>.assert_equ  s   ø€ ñ �8‹}¡ F£Ò+Ð+Ñ+r+   r  ©Nr~   r˜   T©ÚlocalF)FTc              “  ó‚   •K  — ‰j                  | ‰¬«      ƒ d {  –—† }t        |t        «      sJ ‚t        d|«      S 7 Œ"­w)Nr1  ztuple[Union[str, int], ...])Ú_resolve_address_nocprZ   Útupler	   )r7   r�   r2  r»   s     €€r)   r’   z$test_SocketType_resolve.<locals>.res�  sN   øè ø€ ð #×8Ñ8ØØð 9ó ÷ �ô " %¬Ô/Ð/Ð/ÜÐ9¸5ÓAÐAðús   ƒ?š=›#?Úhttp)r&  r˜   )r&  r˜   r   r   )r&  r˜   r   )r&  r˜   r¤   )r&  r˜   r¤   r   )r&  r˜   r¤   r
   )r&  r›   )r&  r›   r   )r&  r›   r   r   )r&  r›   r¤   )r&  r›   r¤   r
   )r  r6  )z::ffff:1.2.3.4r˜   )z<broadcast>é{   r7  )r  r˜   ÚEAI_ADDRFAMILY)r/   r0   r…   úH^address should be a \(host, port(, \[flowinfo, \[scopeid\]\])*\) tuple$rò   r  )r  )r  r˜   r   r   r   )r  r˜   r   r   )r  útuple[str | int, ...]rH   r:  )r.  r:  ry   r:  rH   rI   )r7   z‡tuple[str, int] | tuple[str, int, int] | tuple[str, int, int, int] | tuple[str, str] | tuple[str, str, int] | tuple[str, str, int, int]rH   r:  ) rf   rŠ   r   rZ   r   r4  r   Úbytesr!  r™   r"  rà   ÚIPPROTO_IPV6ÚIPV6_V6ONLYr#  r  r`   ra   ri   Ú
EAI_NONAMEÚ
EAI_NODATAr�   r�   r8  r�   r‘   Ú
AF_NETLINKr‰   rÙ   ræ   rõ   r[   )r  r%  r/  Únullrx   r’   r“   r”   Únetlink_sockr  r2  r,  r»   r+  s             @@@@r)   Útest_SocketType_resolverC  T  sÜ  ûè ø€ ð2 
œ×(Ñ(Ñ	(€Bõð,Ø%ð,à'ð,ð 
õ,ô 
�‰˜{Ô	+ð k5¨tä˜$¤Ô,Ð,Ð,ð ò 	2ˆDØ×2Ñ2°D¸"°:ÀTÐ2ÓJ×JˆCÜ! #¬¬U |Ô4Ð4Ð4Ù�c˜EŸN™N¨BÐ/Ô0Ø×2Ñ2°D¸"°:ÀUÐ2ÓK×KˆCÜ! #¬¬U |Ô4Ð4Ð4Ù�c˜EŸO™O¨RÐ0Õ1ð	2ð #ó Y	5ˆEðBð0ðBð 'öBñ" ™C §¡°&Ð 9Ó:×:¸U¿_¹_ÈbÐ<QÔRÚá¡ LÓ 1×1Ð3EÔFÙ¡ OÓ 4×4Ð6HÔIÙ¡Ð$6Ó 7×7Ð9KÔLá¡ OÓ 4×4Ð6HÔIÙ¡Ð$6Ó 7×7Ð9KÔLñ
 ¡ NÓ 3×3Ð5GÔHÙ¡Ð$5Ó 6×6Ð8JÔKÙ¡Ð$8Ó 9×9Ð;MÔNÙ¡Ð$5Ó 6×6Ð8JÔKÙ¡Ð$8Ó 9×9Ð;MÔNð —‘¤× 4Ñ 4´g×6IÑ6IÈ5ÔQÙ¡Ð$7Ó 8×8Ð:PÔQñ ™CÐ 4Ó5×5¸¿¹ÈÐ7MÔNñ Ô7Ô9Ø—‘¤× 4Ñ 4´g×6IÑ6IÈ4ÔPÜ—]‘]¤7×#3Ñ#3Ó4ð /¸Ù˜oÓ.×.Ð.÷/ô $+×#5Ñ#5´w×7IÑ7IÐ"J�äœ7Ð$4Ô5Ø#×'Ñ'¬×(>Ñ(>Ô?Ø—}‘}×*Ñ*¨oÑ=Ð=Ð=ð
%Ü&Ÿ~™~Ü"×-Ñ-Ü ×+Ñ+ô �ô " ,´Ô<Ð<Ð<à&×<Ñ<¸VÈ5Ð<ÓQ×QØòððð ×"Ñ"Ô$àaˆGÜ—‘œz°Ô9ñ %Ù˜)“n×$Ð$÷%ä—‘œz°Ô9ñ (Ù˜,Ó'×'Ð'÷(ä—‘ÜØôñ 5ñ ÙÐ6Ó7×7Ñ7ñ Ð3Ó4×4Ð4÷5ñ 5ñcY	5÷%k5ð k5ð Kùð Lùð2 ;ùð 2ùØ4ùØ7ùà4ùØ7ùð
 4ùØ6ùØ9ùØ6ùØ9ùð 9ùð 6ùð /ù÷/ñ /úð, Rúô #¤GÐ,ò Úðúð %ø÷%ð %úð (ø÷(ð (úð 8øð 5ø÷5ñ 5ú÷Gk5ð k5üs  †<T%Á0TÁ2RÁ3A	TÂ<RÂ=ATÄRÄ%TÅ RÅTÅR"ÅTÅ.R%Å/TÆR(ÆTÆR+ÆTÆ3R.Æ4TÇ
R1ÇTÇ!R4Ç"TÇ8R7Ç9TÈR:ÈATÉR=ÉTÉ,S É-A3TË SË,S
Ë-SË1A1TÍ#3SÎ(TÎ>SÎ?6TÏ5S.ÐS,
ÐS.Ð#TÐ)S<Ð5S:
Ð6S<Ð:#TÑTÑ+T
Ñ,TÑ<T

Ñ=TÒTÒ	T%ÒTÒTÒTÒTÒ"TÒ%TÒ(TÒ+TÒ.TÒ1TÒ4TÒ7TÒ:TÒ=TÓ TÓSÓSÓ	TÓS)Ó%TÓ(S)Ó)TÓ,S.Ó.S7Ó3TÓ:S<Ó<TÔTÔTÔ
TÔTÔTÔT"ÔT%c               ƒ  óÖ  K  — t        j                  «       5 } | j                  d«      ƒ d {  –—†  | j                  «       d   dk(  sJ ‚| j	                  d«       t        j                  «       5 }|j                  d| j                  «       d   f«      ƒ d {  –—†  |j                  «       | j                  «       k(  sJ ‚	 d d d «       d d d «       t        j                  «       5 } t        j                  t         j                  «      5  | j                  d«      ƒ d {  –—†  d d d «       d d d «       y 7 �Œ7 Œž# 1 sw Y   ŒyxY w# 1 sw Y   Œ}xY w7 Œ2# 1 sw Y   Œ1xY w# 1 sw Y   y xY w­w)N)r™   r   r   r{   é
   r™   r¤   )z1.2:3rƒ   )
rf   r   r5   r  r
  r  r  r`   ra   ri   )r»   Úsock2s     r)   Ú test_SocketType_unresolved_namesrG  é  s:  è ø€ Ü	�‰Ó	ð =˜TØ�i‰iÐ(Ó)×)Ð)Ø×ÑÓ! !Ñ$¨Ò3Ð3Ð3Ø�‰�BŒä�^‰^Óð 	= Ø—-‘- ¨d×.>Ñ.>Ó.@ÀÑ.CÐ DÓE×EÐEØ×$Ñ$Ó&¨$×*:Ñ*:Ó*<Ò<Ð<Ñ<÷	=÷=ô 
�‰Ó	ð +˜TÜ�]‰]œ7×+Ñ+Ó,ñ 	+à—)‘)˜MÓ*×*Ð*÷	+÷+ð +ð 	*ùð
 Fø÷	=ð 	=ú÷=ð =úð +ø÷	+ð 	+ú÷+ð +üs™   ‚E)—E¬D2­AEÁ.(D7ÂD5Â'D7Â?EÃE)Ã#$EÄEÄEÄEÄ!EÄ)	E)Ä2EÄ5D7Ä7E 	Ä<EÅEÅE)ÅEÅE	ÅEÅE&Å"E)c            
   ƒ  óÜ  ‡‡	K  — t        j                  «       \  } }| 5  |5  t        j                  | «      Š|j	                  d«       |j                  d«       t        j                  «       5 }|j                  «        t        «       5  t        j                  t        j                  «      5  ‰j                  d«      ƒ d {  –—†  d d d «       d d d «       d d d «       t        «       5  ‰j                  d«      ƒ d {  –—† dk(  sJ ‚	 d d d «       t        «       5  t        j                  t        «      5  ‰j                  d«      ƒ d {  –—†  d d d «       d d d «       dˆfd„}t        j                  «       4 ƒd {  –—† }|j!                  |«       t#        «       ƒ d {  –—†  |j                  d«       d d d «      ƒd {  –—†  dˆfd„}t        j                  «       4 ƒd {  –—† }|j!                  |«       t#        «       ƒ d {  –—†  |j$                  j                  «        d d d «      ƒd {  –—†  t        j                  |«      Š	dˆˆ	fd„}dˆˆ	fd	„}t        j                  «       4 ƒd {  –—† }|j!                  |«       |j!                  |«       t#        «       ƒ d {  –—†  | j                  d
«       |j                  d«       t#        «       ƒ d {  –—†  | j                  d
«       |j                  d«       d d d «      ƒd {  –—†  d d d «       d d d «       y 7 �Œ_# 1 sw Y   �Œ_xY w# 1 sw Y   �ŒdxY w# 1 sw Y   �ŒixY w7 �ŒM# 1 sw Y   �ŒGxY w7 �Œ# 1 sw Y   �ŒxY w# 1 sw Y   �ŒxY w7 �Œû7 �ŒÛ7 �Œ½# 1 ƒd {  –—†7  sw Y   �ŒÎxY w7 �Œ³7 �Œ“7 �Œl# 1 ƒd {  –—†7  sw Y   �Œ}xY w7 �ŒE7 �Œ7 Œâ7 Œ²# 1 ƒd {  –—†7  sw Y   ŒÂxY w# 1 sw Y   ŒÆxY w# 1 sw Y   y xY w­w)NFó   1rE  Úhahac               “  óŽ   •K  — t        «       5  ‰ j                  d«      ƒ d {  –—† dk(  sJ ‚	 d d d «       y 7 Œ# 1 sw Y   y xY w­w)NrE  ó   2©r   r¬   ©r°   s   €r)   Údo_successful_blocking_recvzGtest_SocketType_non_blocking_paths.<locals>.do_successful_blocking_recv  sC   øè ø€ Ü#Ó%ñ 1ØŸW™W R›[×(¨DÒ0Ð0Ñ0÷1ð 1Ø(ø÷1ð 1üs$   ƒAŽ9£7¤	9®	A·9¹A¾ArL  c               “  óò   •K  — t        «       5  t        j                  t        j                  «      5  ‰ j                  d«      ƒ d {  –—†  d d d «       d d d «       y 7 Œ# 1 sw Y   ŒxY w# 1 sw Y   y xY w­w)NrE  )r   r`   ra   r   Ú	Cancelledr¬   rN  s   €r)   Údo_cancelled_blocking_recvzFtest_SocketType_non_blocking_paths.<locals>.do_cancelled_blocking_recv  s`   øè ø€ Ü#Ó%ñ &Ü—]‘]¤5§?¡?Ó3ñ &ØŸ'™' "›+×%Ð%÷&÷&ð &à%ø÷&ð &ú÷&ð &üsE   ƒA7Ž$A+²AÁAÁAÁA+Á	A7ÁAÁA(	Á$A+Á+A4Á0A7c               “  ó  •K  — t        «       5  ‰ j                  d«      ƒ d {  –—† dk(  sJ ‚	 d d d «       t        «       5  ‰j                  d«      ƒ d {  –—† dk(  sJ ‚	 d d d «       y 7 ŒE# 1 sw Y   Œ>xY w7 Œ!# 1 sw Y   y xY w­w)Nr¤   ó   aó   brM  ©r°   Útbs   €€r)   Út1z.test_SocketType_non_blocking_paths.<locals>.t1/  ó   øè ø€ Ü#Ó%ñ 0ØŸW™W Q›Z×'¨4Ò/Ð/Ñ/÷0ä#Ó%ñ 0ØŸW™W Q›Z×'¨4Ò/Ð/Ñ/÷0ð 0ð (ø÷0ð 0úð (ø÷0ð 0üóU   ƒBŽA+£A)¤	A+®BÁ A9ÁA7Á	A9Á 	BÁ)A+Á+A4Á0BÁ7A9Á9BÁ>Bc               “  ó  •K  — t        «       5  ‰j                  d«      ƒ d {  –—† dk(  sJ ‚	 d d d «       t        «       5  ‰ j                  d«      ƒ d {  –—† dk(  sJ ‚	 d d d «       y 7 ŒE# 1 sw Y   Œ>xY w7 Œ!# 1 sw Y   y xY w­w)Nr¤   rU  rT  rM  rV  s   €€r)   Út2z.test_SocketType_non_blocking_paths.<locals>.t25  rY  rZ  rU  rT  ©rH   rI   )rD   r¨   rf   r©   Úsetblockingr«   r   ÚCancelScopeÚcancelr   r`   ra   rQ  r¬   r­   r½   r¾   r   Úcancel_scope)
r¿   rÀ   ÚcscoperO  rÁ   rR  rX  r\  r°   rW  s
           @@r)   Ú"test_SocketType_non_blocking_pathsrc  ü  sA  ùè ø€ Ü×#Ñ#Ó%�D€A€qØ	
ñ EˆAñ EÜ×'Ñ'¨Ó*ˆØ	�‰�eÔð 	
�‰ˆtŒÜ×ÑÓ ð 	& FØ�M‰MŒOÜ#Ó%ñ &Ü—]‘]¤5§?¡?Ó3ñ &ØŸ'™' "›+×%Ð%÷&÷&÷	&ô  Ó!ñ 	-ØŸ™ ›×$¨Ò,Ð,Ñ,÷	-ô  Ó!ñ 	&Ü—‘œyÓ)ñ &Ø—g‘g˜f“o×%Ð%÷&÷	&õ
	1ô ×%Ñ%Ó'÷ 	ð 	¨7Ø×ÑÐ:Ô;Ü(Ó*×*Ð*Ø�F‰F�4ŒL÷	÷ 	õ	&ô
 ×%Ñ%Ó'÷ 	*ð 	*¨7Ø×ÑÐ9Ô:Ü(Ó*×*Ð*Ø× Ñ ×'Ñ'Ô)÷	*÷ 	*ô ×'Ñ'¨Ó*ˆö	0ö	0ô ×%Ñ%Ó'÷ 	ð 	¨7Ø×Ñ˜rÔ"Ø×Ñ˜rÔ"Ü(Ó*×*Ð*Ø�F‰F�4ŒLØ�F‰F�4ŒLÜ(Ó*×*Ð*Ø�F‰F�4ŒLØ�F‰F�4ŒL÷	÷ 	÷{E÷ Eð Eð &ù÷&ñ &ú÷&ñ &ú÷	&ñ 	&úð %ù÷	-ñ 	-úð
 &ù÷&ñ &ú÷	&ñ 	&úð	ùà*ùð	ù÷ 	÷ 	ò 	úð	*ùà*ùð	*ù÷ 	*÷ 	*ò 	*úð2	ùð +ùð +øð	ø÷ 	÷ 	ñ 	ú÷{Eð Eú÷ Eð Eüs  „O,žO ¡AOÁ-L=Â$L0	Â,L#ÃL ÃL#ÃL0	ÃL=ÃOÃ(MÃ=M

Ã>	MÄOÄM*Ä4M	Å	MÅ
M	ÅM*Å&OÅ<M7
Å=OÆ N ÆM:
Æ N Æ5OÇ M=Ç"OÇ#N
Ç$OÇ'NÈN
ÈNÈ%OÈ0NÈ1?OÉ0N5
É1OÉ40N?Ê$N8
Ê%3N?ËN;
Ë&N?Ë?OÌ
N=ÌOÌO Ì	O,Ì L#Ì#L-Ì(L0	Ì0L:Ì5L=Ì=MÍOÍ
MÍMÍOÍM	ÍM'Í"M*Í*M4Í/	OÍ:N Í=OÎ NÎN	ÎNÎ	OÎNÎOÎN2Î%N(Î&N2Î-	OÎ8N?Î;N?Î=OÎ?OÏOÏOÏOÏO	ÏO Ï O)Ï%O,c            
   ƒ  óz  ‡‡K  — t        j                  «       5 Št        j                  t        d¬«      5  ‰j                  d«      ƒ d {  –—†  d d d «       d d d «       t        j                  «       5 Št        j                  «       5 Š‰j                  «        t        j                  t        j                  «      5  ‰j                  d«      ƒ d {  –—†  d d d «       d d d «       d d d «       t        j                  «       5 Št        j                  «       5 Št        j                  «       5 } | j                  d«      ƒ d {  –—†  | j                  «         G ˆˆfd„dt        j                  «      }t        ‰t        «      sJ ‚‰j                  j!                  «         |«       ‰_        t#        «       5  t        j                  t        j                  «      5  ‰j                  | j%                  «       «      ƒ d {  –—†  d d d «       d d d «       ‰j'                  «       dk(  sJ ‚	 d d d «       d d d «       d d d «       t        j                  «       5 Št        j                  t(        d	¬«      5  ‰j                  d
«      ƒ d {  –—†  d d d «       d d d «       y 7 �ŒO# 1 sw Y   �ŒOxY w# 1 sw Y   �ŒTxY w7 �Œå# 1 sw Y   �ŒåxY w# 1 sw Y   �ŒêxY w# 1 sw Y   �ŒïxY w7 �ŒŸ7 Œç# 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# 1 sw Y   ŒàxY w7 Œ�# 1 sw Y   ŒœxY w# 1 sw Y   y xY w­w)Nr9  rò   r™   rš   ©r{   r   c                  ó$   •— e Zd Z	 	 	 	 dˆ ˆfd„Zy)ú3test_SocketType_connect_paths.<locals>.CancelSocketc                ó  •— t        ‰t        «      sJ ‚‰j                  «        t        j                  | j                  «       | j                  | j                  «      ‰_        ‰j                  j                  |«       t        ‚r&   )rZ   r   r`  rD   rµ   rØ   r/   r0   Ú_sockr  rc   )r'   r  ra  r»   s     €€r)   r  z;test_SocketType_connect_paths.<locals>.CancelSocket.connectb  sd   ø€ ô
 & d¬KÔ8Ð8Ð8à ×'Ñ'Ô)Ü!.×!5Ñ!5ØŸ™›ØŸ™ØŸ	™	ó"�D”Jð
 —J‘J×&Ñ& wÔ/ä)Ð)r+   N)r  r   rH   rI   )rN   rO   rP   r  )ra  r»   s   €€r)   ÚCancelSocketrg  a  s   ø„ ð*à*ð*ð ÷*r+   rj  rƒ   z^^\[\w+ \d+\] Error connecting to \('127\.0\.0\.\d', \d+\): (Connection refused|Unknown error)$)r{   r
   )rf   r   r`   ra   r[   r  r   r_  r`  rQ  r5   r
  rD   rZ   r   ri  rÙ   r   r  rª   rõ   )r  rj  ra  r»   s     @@r)   Útest_SocketType_connect_pathsrk  G  s£  ùè ø€ ä	�‰Ó	ð ,˜TÜ�]‰]ÜØ]ô
ñ 	,ð
 —,‘,˜{Ó+×+Ð+÷	,÷,ô 
�‰Ó	ð 6˜TÜ×ÑÓ ð 	6 LØ×ÑÔ!Ü—‘œuŸ™Ó/ñ 6Ø—l‘lÐ#4Ó5×5Ð5÷6÷	6÷6ô 
×	Ñ	Ó	ð "' Ü�^‰^Óð !	' ¤w§~¡~Ó'7ð !	'¸8Ø—-‘-Ð 0Ó1×1Ð1Ø�O‰OÔ÷
*œ}×3Ñ3ô *ô& ˜d¤KÔ0Ð0Ð0Ø�J‰J×ÑÔÙ%›ˆDŒJä#Ó%ñ ?Ü—]‘]¤5§?¡?Ó3ñ ?ØŸ,™, x×';Ñ';Ó'=Ó>×>Ð>÷?÷?ð —;‘;“= BÒ&Ð&Ñ&÷C!	'÷ !	'÷"'ôJ 
�‰Ó	ð 1˜TÜ�]‰]ÜØsô
ñ 	1ð —,‘,Ð/Ó0×0Ð0÷	1÷1ð 1ð_ ,ù÷	,ñ 	,ú÷,ñ ,úð 6ù÷6ñ 6ú÷	6ñ 	6ú÷6ñ 6úð 2ùð> ?ø÷?ð ?ú÷?ð ?ú÷=!	'ð !	'ú÷ !	'ð !	'ú÷"'ð "'úðh 1ø÷	1ð 	1ú÷1ð 1üs~  „L;™J)µJÁ
JÁJÁJ)ÁL;Á3KÂ4KÂ<J9ÃJ6
ÃJ9ÃKÃKÃ&L;ÄLÄL	Ä,K=ÅK 
ÅA2K=Æ4$K1	Ç#K%Ç;K#Ç<K%È K1	ÈK=È&L	È.LÈ6L;ÉL/É.L#ÊL!ÊL#ÊL/Ê	L;ÊJÊJ&	Ê!J)Ê)J3Ê.L;Ê6J9Ê9KÊ>KËK	ËKËKËL;Ë K=Ë#K%Ë%K.Ë*K1	Ë1K:Ë6K=Ë=LÌL	Ì	L	ÌLÌLÌL;Ì!L#Ì#L,	Ì(L/Ì/L8Ì4L;c               ƒ  ó  K  — d} t        j                  «       5 }t        j                  t        d| ›d�¬«      5  |j                  | df«      ƒ d {  –—†  d d d «       d d d «       y 7 Œ# 1 sw Y   ŒxY w# 1 sw Y   y xY w­w)Nr{   z#^\[\w+ \d+\] Error connecting to \(z*, 2\): (Connection refused|Unknown error)$rò   r
   )rf   r   r`   ra   rõ   r  )r  r»   s     r)   Útest_address_in_socket_errorrm  ‘  s   è ø€ à€GÜ	�‰Ó	ð -˜TÜ�]‰]ÜØ8¸¸ÐCmÐnô
ñ 	-ð —,‘, ¨˜|Ó,×,Ð,÷	-÷-ð -ð -ø÷	-ð 	-ú÷-ð -üsE   ‚B ™ A4¹A(ÁA&ÁA(ÁA4Á	B Á&A(Á(A1	Á-A4Á4A=Á9B c            	   ƒ  ó  ‡K  — t        j                  «       5 Št        j                  «       5 } 	 	 	 	 	 	 dˆfd„}t	        | t
        «      sJ ‚|| _        t        «       5  t        j                  t         j                  «      5  | j                  d«      ƒ d {  –—†  d d d «       d d d «       | j                  «       dk(  sJ ‚	 d d d «       d d d «       y 7 Œ;# 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­w)Nc             “  ó€   •K  — | dk(  sJ ‚|rJ ‚‰j                  «        t        j                  «       ƒ d {  –—†  y 7 Œ­wr0  )r`  r   Ú
checkpoint)r  r2  ra  s     €r)   r4  zVtest_resolve_address_exception_in_connect_closes_socket.<locals>._resolve_address_nocp£  s;   øè ø€ ð
  "’}Ð$�}Ù Ð �yØ×#Ñ#Ô%Ü×&Ñ&Ó(×(Ò(ús   ƒ3>¶<·>r~   rƒ   )r  r   r2  r_   rH   rI   )r   r_  rf   r   rZ   r   r4  r   r`   ra   rQ  r  rª   )r»   r4  ra  s     @r)   Ú7test_resolve_address_exception_in_connect_closes_socketrq  ž  sø   øè ø€ ä	×	Ñ	Ó	ð ' Ü�^‰^Óð 	' ð)Ø&ð)ð ð)ð õ	)ô ˜d¤KÔ0Ð0Ð0Ø)>ˆDÔ&Ü#Ó%ñ +Ü—]‘]¤5§?¡?Ó3ñ +ØŸ,™, rÓ*×*Ð*÷+÷+ð —;‘;“= BÒ&Ð&Ñ&÷#	'÷'ð 'ð" +ø÷+ð +ú÷+ð +ú÷	'ð 	'ú÷'ð 'üsu   ƒD˜C8­0C,Á$C ÂC	ÂCÂC	ÂC Â#C,ÃC8Ã		DÃC	ÃCÃC Ã C)Ã%C,Ã,C5	Ã1C8Ã8DÃ=Dc            	   ƒ  ó˜  K  — t        j                  «       \  } }| 5  |5  | j                  d«      ƒ d {  –—† dk(  sJ ‚|j                  dt         j                  «      ƒ d {  –—† dk(  sJ ‚|j                  d«      ƒ d {  –—† dk(  sJ ‚| j                  d«      ƒ d {  –—†  t        d«      }|j                  |«      ƒ d {  –—†  |dk(  sJ ‚t        | d«      r>| j                  dgg «      ƒ d {  –—† dk(  sJ ‚|j                  d«      ƒ d {  –—† dk(  sJ ‚d d d «       d d d «       t        j                  t         j                  ¬«      } t        j                  t         j                  ¬«      }| 5  |5  | j                  d	«      ƒ d {  –—†  |j                  d	«      ƒ d {  –—†  |j                  «       d
|j                  «       d   fg}|D ]Y  }| j                  d|«      ƒ d {  –—† dk(  sJ ‚|j                  d«      ƒ d {  –—† \  }}|dk(  sJ ‚|| j                  «       k(  rŒYJ ‚ t        t         d«      rÎ| j                  dt         j                  |j                  «       «      ƒ d {  –—†  | j                  dt         j                  |j                  «       «      ƒ d {  –—†  | j                  d|j                  «       «      ƒ d {  –—†  |j                  d«      ƒ d {  –—† \  }}|dk(  sJ ‚|| j                  «       k(  sJ ‚| j                  d|j                  «       «      ƒ d {  –—† dk(  sJ ‚t        d«      }|j!                  |«      ƒ d {  –—† \  }}|dk(  sJ ‚|dk(  sJ ‚|| j                  «       k(  sJ ‚t        |d«      ru| j                  d|j                  «       «      ƒ d {  –—† dk(  sJ ‚|j#                  d«      ƒ d {  –—† \  }}}	}|dk(  sJ ‚|g k(  sJ ‚|	dk(  sJ ‚|| j                  «       k(  sJ ‚t        |d«      r�| j                  d|j                  «       «      ƒ d {  –—† dk(  sJ ‚t        d«      }
t        d«      }|j%                  |
|g«      ƒ d {  –—† }|\  }}}	}|dk(  sJ ‚|
dk(  sJ ‚|dk(  sJ ‚|g k(  sJ ‚|	dk(  sJ ‚|| j                  «       k(  sJ ‚t        | d«      rX|D ]S  }| j                  ddgg d|«      ƒ d {  –—† dk(  sJ ‚|j                  d«      ƒ d {  –—† d| j                  «       fk(  rŒSJ ‚ d d d «       d d d «       t        j                  t         j                  ¬«      } t        j                  t         j                  ¬«      }| 5  |5  |j                  d	«      ƒ d {  –—†  | j'                  |j                  «       «      ƒ d {  –—†  | j                  d«      ƒ d {  –—†  | j                  d«      ƒ d {  –—†  |j                  d«      ƒ d {  –—† dk(  sJ ‚|j                  d«      ƒ d {  –—† dk(  sJ ‚	 d d d «       d d d «       y 7 �Œ÷7 �ŒÍ7 �Œ²7 �Œ—7 �Œv7 �ŒK7 �Œ0# 1 sw Y   �Œ+xY w# 1 sw Y   �Œ0xY w7 �ŒÑ7 �Œ»7 �Œz7 �Œ_7 �Œú7 �ŒÆ7 �Œ¡7 �Œ‹7 �ŒG7 �Œ!7 �ŒÊ7 �Œ¯7 �ŒO7 �Œ7 �Œ±7 �Œ–# 1 sw Y   �ŒxY w# 1 sw Y   �Œ„xY w7 �Œ%7 �Œ7 Œê7 ŒÓ7 Œ¼7 Œ # 1 sw Y   Œ™xY w# 1 sw Y   y xY w­w)Nr£   r¤   rE  s
   x         Úsendmsgs   xxxr´   r}   re  r™   ÚMSG_MOREs   yyys   zzzs	   xxxyyyzzzs
   xxx       Úrecvmsgr   Úrecvmsg_intos   xyzwr)  r
   s   xys   zw s   yzs   xyz)rf   r¨   r«   r¬   ÚMSG_PEEKÚ	bytearrayÚ	recv_intor�   rs  r   r‰   r5   r  ÚsendtoÚrecvfromrt  Úrecvfrom_intoru  rv  r  )r¿   rÀ   ÚbufÚtargetsÚtargetÚdatar  ÚnbytesÚancdataÚ	msg_flagsÚbuf1Úbuf2Úrets                r)   Útest_send_recv_variantsr‡  µ  s8  è ø€ Ü×ÑÓ�D€A€qØ	
ñ .ˆAñ .à—V‘V˜D“\×! QÒ&Ð&Ð&Ø—V‘V˜B¤× 0Ñ 0Ó1×1°TÒ9Ð9Ð9Ø—V‘V˜B“Z× 4Ò'Ð'Ð'ð �f‰f�T‹l×ÐÜ˜‹mˆØ�k‰k˜#Ó×ÐØÐ(Ò(Ð(Ð(ä�1�iÔ ØŸ™ F 8¨RÓ0×0°AÒ5Ð5Ð5ØŸ™ ›×# vÒ-Ð-Ð-÷.÷ .ô  	�‰œG×.Ñ.Ô/€AÜ�‰œG×.Ñ.Ô/€AØ	
ñ =IˆAñ =IØ�f‰fÐ%Ó&×&Ð&Ø�f‰fÐ%Ó&×&Ð&à—=‘=“? [°!·-±-³/À!Ñ2DÐ$EÐFˆð ò 	+ˆFØŸ™ &¨&Ó1×1°QÒ6Ð6Ð6Ø!"§¡¨B£×/‰LˆT�4Ø˜6’>Ð!�>Ø˜1Ÿ=™=›?Ó*Ð*Ð*ð		+ô ”7˜JÔ'Ø—(‘(˜6¤7×#3Ñ#3°Q·]±]³_ÓE×EÐEØ—(‘(˜6¤7×#3Ñ#3°Q·]±]³_ÓE×EÐEØ—(‘(˜6 1§=¡=£?Ó3×3Ð3Ø!"§¡¨B£×/‰LˆT�4Ø˜<Ò'Ð'Ð'Ø˜1Ÿ=™=›?Ò*Ð*Ð*ð —X‘X˜f a§m¡m£oÓ6×6¸!Ò;Ð;Ð;Ü˜‹mˆØ Ÿ™¨sÓ3×3‰ˆ�Ø˜Š{Ðˆ{ØÐ*Ò*Ð*Ð*Ø�q—}‘}“Ò&Ð&Ð&ä�1�iÔ ØŸ™ &¨!¯-©-«/Ó:×:¸aÒ?Ð?Ð?Ø56·Y±Y¸r³]×/BÑ,ˆT�7˜I tØ˜6’>Ð!�>Ø˜b’=Ð �=Ø ’>Ð!�>Ø˜1Ÿ=™=›?Ò*Ð*Ð*ä�1�nÔ%ØŸ™ '¨1¯=©=«?Ó;×;¸qÒ@Ð@Ð@Ü˜Q“<ˆDÜ˜Q“<ˆDØŸ™¨¨d |Ó4×4ˆCØ14Ñ.ˆV�W˜i¨Ø˜Q’;Ð�;Ø˜5’=Ð �=Ø˜?Ò*Ð*Ð*Ø˜b’=Ð �=Ø ’>Ð!�>Ø˜1Ÿ=™=›?Ò*Ð*Ð*ä�1�iÔ Ø!ò I�ØŸY™Y¨¨e }°b¸!¸VÓD×DÈÒIÐIÐIØŸZ™Z¨›^×+°¸¿¹»Ð/HÓHÐHÐHðI÷w=I÷ =Iô~ 	�‰œG×.Ñ.Ô/€AÜ�‰œG×.Ñ.Ô/€AØ	
ñ *ˆAñ *Ø�f‰fÐ%Ó&×&Ð&Ø�i‰i˜Ÿ™›Ó(×(Ð(ð �f‰f�V‹n×ÐØ�f‰f�V‹n×ÐØ—V‘V˜B“Z× 6Ò)Ð)Ð)Ø—V‘V˜B“Z× 6Ò)Ð)Ñ)÷*÷ *ð *ðc "ùØ1ùØùð 	ùàùð 1ùØ#ù÷.ñ .ú÷ .ñ .úð& 	'ùØ&ùð 2ùØ/ùð FùØEùØ3ùØ/ùð
 7ùà3ùð ;ùØ/Bùð <ùð 5ùð EùØ+ù÷{=Iñ =Iú÷ =Iñ =IúðD 	'ùØ(ùð 	øØøØøØø÷*ð *ú÷ *ð *üs¯  ‚[
œYŸY ´X+µ,Y Á!X.Á"Y Á?X1Â Y ÂX4Â#Y ÃX7Ã-Y Ã/X:Ã0Y ÄX=Ä	Y ÄYÄA[
Å1ZÅ4Z
Æ	YÆ
Z
Æ"YÆ#AZ
Ç&Y 
Ç'Z
ÈY#
È!Z
È'AZ
É,Y&É-6Z
Ê#Y)Ê$'Z
ËY,ËZ
Ë$Y/Ë%AZ
Ì+Y2Ì,(Z
ÍY5ÍAZ
Î.Y8Î/Z
ÏY;ÏA"Z
Ð/Y>Ð05Z
Ñ%ZÑ&A-Z
ÓZ
ÓZ
Ó1Z
Ó2Z
Ô
Z
ÔZÔA[
Õ'Z>Õ*Z2Õ?Z$Ö &Z2Ö&Z'Ö'Z2Ö?Z*× Z2×Z,×Z2×1Z.×2Z2ØZ0Ø	Z2ØZ>Ø"	[
Ø+Y Ø.Y Ø1Y Ø4Y Ø7Y Ø:Y Ø=Y Ù Y
	ÙYÙYÙ[
ÙZ
ÙZ
Ù Z
Ù#Z
Ù&Z
Ù)Z
Ù,Z
Ù/Z
Ù2Z
Ù5Z
Ù8Z
Ù;Z
Ù>Z
ÚZ
ÚZ
ÚZ
Ú
Z	ÚZÚZ!Ú[
Ú$Z2Ú'Z2Ú*Z2Ú,Z2Ú.Z2Ú0Z2Ú2Z;	Ú7Z>Ú>[Û[
c              ƒ  óT  K  — | j                  ddd«       | j                  dddt        ¬«       | j                  dddt        ¬«       | j                  dd	d«       | j                  dd
d«       t        j                  dd«      ƒ d {  –—† dk(  sJ ‚t        j                  dd«      ƒ d {  –—† dk(  sJ ‚t        j                  dd«      ƒ d {  –—† dk(  sJ ‚t        j                  d
d«      ƒ d {  –—† dk(  sJ ‚t        j                  dd«      ƒ d {  –—† dk(  sJ ‚y 7 Œ–7 Œu7 ŒT7 Œ37 Œ­w)Nu
   ok faÃŸ.des   xn--fa-hia.der˜   zok ::1r€   )r2   s   ::1Úbadzfass.dezxn--fa-hia.deu   faÃŸ.de)rA   r   rf   rG   )rW   s    r)   Ú	test_idnarŠ    s  è ø€ ð ‡M�M�,Ð 0°"Ô5Ø‡M�M�(˜E 2¬]€MÔ;Ø‡M�M�(˜F B¬m€MÔ<à‡M�M�%˜ BÔ'à‡M�M�%˜¨"Ô-ä×$Ñ$ U¨BÓ/×/°8Ò;Ð;Ð;Ü×$Ñ$ V¨RÓ0×0°HÒ<Ð<Ð<Ü×$Ñ$ Y°Ó3×3°|ÒCÐCÐCÜ×$Ñ$ _°bÓ9×9¸\ÒIÐIÐIÜ×$Ñ$Ð%5°rÓ:×:¸lÒJÐJÑJð	 0øØ0øØ3øØ9øØ:úsZ   ‚BD(ÂDÂ"D(Â*D Â+"D(ÃD"Ã"D(Ã0D$Ã1"D(ÄD&ÄD(Ä D(Ä"D(Ä$D(Ä&D(c               ƒ  óœ   K  — t        j                  d«      ƒ d {  –—† dk(  sJ ‚t        j                  d«      ƒ d {  –—† dk(  sJ ‚y 7 Œ,7 Œ­w)NÚudpé   Útcpé   )rf   ÚgetprotobynamerR   r+   r)   Útest_getprotobynamer‘  '  sI   è ø€ ô ×'Ñ'¨Ó.×.°"Ò4Ð4Ð4Ü×'Ñ'¨Ó.×.°!Ò3Ð3Ñ3ð /øØ.ús   ‚A›Aœ!A½A
¾AÁ
Ac           	   ƒ  ó¢  K  —  G d„ d«      } |«       }t        j                  |«      �J ‚t         j                  dddfdt         j                  ddfddt         j                  dfdddt         j
                  ffD ],  }t        j                  ddg|¢­Ž ƒ d {  –—† dddg|¢­k(  rŒ,J ‚ t        j                  dd«      ƒ d {  –—† }d	}||k(  sJ ‚t        j                  d
d«      ƒ d {  –—† dk(  sJ ‚t        j                  d «      |u sJ ‚| j                  ddddddd¬«       t        j                  dd«      ƒ d {  –—† dk(  sJ ‚y 7 Œ°7 Œ‡7 Œb7 Œ­w)Nc                  óD   — e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Zy)ú5test_custom_hostname_resolver.<locals>.CustomResolverc              “  ó   K  — d||||||fS ­w)NÚ
custom_gairR   )r'   r9   r:   r/   r0   r1   r2   s          r)   rG   zAtest_custom_hostname_resolver.<locals>.CustomResolver.getaddrinfo1  s   è ø€ ð ! $¨¨f°d¸EÀ5ÐIÐIùs   ‚
c              “  ó   K  — d||fS ­w)NÚ
custom_gnirR   )r'   rs   r2   s      r)   rž   zAtest_custom_hostname_resolver.<locals>.CustomResolver.getnameinfo<  s   è ø€ ð
 ! (¨EÐ2Ð2ùs   ‚N)r9   r   r:   r   r/   rL   r0   rL   r1   rL   r2   rL   rH   z(tuple[str, str, str, int, int, int, int])rs   z+tuple[str, int] | tuple[str, int, int, int]r2   rL   rH   z<tuple[str, tuple[str, int] | tuple[str, int, int, int], int])rN   rO   rP   rG   rž   rR   r+   r)   ÚCustomResolverr”  0  su   „ ð		Jàð		Jð ð		Jð ð			Jð
 ð		Jð ð		Jð ð		Jð 6ó		Jð	3àAð	3ð ð	3ð Jô		3r+   r™  r   r™   Úfoor–  s	   localhostu   fÃ¶Ã¶)r–  s
   xn--f-1gaarš  r   r   r   r   r¿   )r˜  r¿   r   r�   r‚   r:   r.   r9   )	rf   Úset_custom_hostname_resolverr‡   r†   rˆ   ÚAI_CANONNAMErG   rž   rA   )rW   r™  ÚcrÚvalsrx   ry   s         r)   Útest_custom_hostname_resolverrŸ  .  s‰  è ø€ ÷3ñ 3ñ& 
Ó	€Bä×/Ñ/°Ó3Ð;Ð;Ð;ô 
�‰˜!˜Q Ð"Ø	
ŒG×Ñ  AÐ&Ø	
ˆAŒw×"Ñ" AÐ&Ø	
ˆAˆq”'×&Ñ&Ð'ð	ò 
ˆô ×(Ñ(¨°eÐC¸dÒC×CØØØðH
ð ñ	H
ó 
ð 	
ð 
ð
ô ×#Ñ# G¨UÓ3×
3€CØ?€HØ�(Š?Ðˆ?ä×$Ñ$ S¨!Ó,×,ð 1ò ð ð ô ×/Ñ/°Ó5¸Ñ;Ð;Ð;ð ‡M�M�#�w ¨q°qÀÈ€MÔKÜ×$Ñ$ V¨VÓ4×4¸Ò;Ð;Ñ;ð1 Døð 4øð -øð 5úsO   ‚BEÂEÂEÂ%EÃE	Ã&EÃ(EÃ)AEÄ<EÄ=EÅ	EÅEÅEc               ƒ  ó¨  K  —  G d„ d«      }  | «       }t        j                  |«      �J ‚t        j                  «       dt         j                  t         j                  dfk(  sJ ‚t        j                  ddd«      dk(  sJ ‚t        j                  «       j                  «       }t        j                  |¬	«      }t        |d
«      sJ ‚|j                  «        t        j                  «       \  }}|5  |5  t        |d
«      sJ ‚t        |d
«      sJ ‚	 d d d «       d d d «       t        j                  d «      |u sJ ‚y # 1 sw Y   Œ+xY w# 1 sw Y   Œ/xY w­w)Nc                  ó$   — e Zd Z	 	 	 	 	 	 	 	 dd„Zy)ú7test_custom_socket_factory.<locals>.CustomSocketFactoryc                ó   — d|||fS )NÚhirR   )r'   r/   r0   r1   s       r)   r   z>test_custom_socket_factory.<locals>.CustomSocketFactory.socketm  s   € ð ˜& $¨Ð.Ð.r+   N)r/   r   r0   r   r1   rL   rH   z*tuple[str, AddressFamily, SocketKind, int])rN   rO   rP   r   rR   r+   r)   ÚCustomSocketFactoryr¢  l  s-   „ ð	/à!ð	/ð ð	/ð ð		/ð
 8ô	/r+   r¥  r¤  r   r¤   r
   r´   )r¤  r¤   r
   r´   r×   r5   )
rf   Úset_custom_socket_factoryr   r‡   r†   rD   rØ   r�   rÙ   r¨   )r¥  Úcsfrè   Úwrappedr¿   rÀ   s         r)   Útest_custom_socket_factoryr©  k  s1  è ø€ ÷/ñ /ñ Ó
€Cä×,Ñ,¨SÓ1Ð9Ð9Ð9ä�>‰>Ó ¤g§o¡o´w×7JÑ7JÈAÐNÒNÐNÐNÜ�>‰>˜!˜Q Ó" oÒ5Ð5Ð5ô 
×	Ñ	Ó	×	&Ñ	&Ó	(€BÜ�n‰n BÔ'€GÜ�7˜FÔ#Ð#Ð#Ø‡M�M„Oô ×ÑÓ�D€A€qØ	
ñ "ˆAñ "Ü�q˜&Ô!Ð!Ð!Ü�q˜&Ô!Ð!Ñ!÷"÷ "ô ×,Ñ,¨TÓ2°cÑ9Ð9Ñ9÷	"ð "ú÷ "ð "üs6   ‚C-EÃ/EÃ2D:ÄEÄ"EÄ:E	Ä?EÅEÅEc                 óˆ   — t        j                  t        «      5  t        j                  «        d d d «       y # 1 sw Y   y xY wr&   )r`   ra   r­   rf   r   rR   r+   r)   Útest_SocketType_is_abstractr«  ‹  s/   € Ü	�‰”yÓ	!ñ Ü×ÑÔ÷÷ ñ ús	   š8¸AÚAF_UNIXzno unix domain socketsc               ƒ  óÊ  K  — dd„} t        j                  «       5 } | |› d�«      ƒ d {  –—†   | t        |› d�«      «      ƒ d {  –—†   | t        j                  |› d�«      «      ƒ d {  –—†  d d d «       	 t        j
                  d«      j                  «       j                  d«      } | d|z   «      ƒ d {  –—†  y 7 Œ•7 Œ{7 ŒW# 1 sw Y   ŒVxY w7 Œ# t        $ r Y y w xY w­w)	Nc              “  ó^  K  — t        j                  t         j                  ¬«      5 }|j                  | «      ƒ d {  –—†  |j	                  d«       t        j                  t         j                  ¬«      5 }|j                  | «      ƒ d {  –—†  |j                  «       ƒ d {  –—† \  }}|5  |j                  d«      ƒ d {  –—†  |j                  d«      ƒ d {  –—† dk(  sJ ‚	 d d d «       d d d «       d d d «       y 7 ŒÂ7 Œu7 Œ_7 ŒB7 Œ+# 1 sw Y   Œ$xY w# 1 sw Y   Œ(xY w# 1 sw Y   y xY w­w)Nr  rE  r£   r¤   )	rf   r   r¬  r5   r
  r  r  r«   r¬   )ÚpathÚlsockÚcsockÚssockrí   s        r)   Úcheck_AF_UNIXz.test_unix_domain_socket.<locals>.check_AF_UNIX•  só   è ø€ Ü�^‰^¤7§?¡?Ô3ð 	7°uØ—*‘*˜TÓ"×"Ð"Ø�L‰L˜ÔÜ—‘¤w§¡Ô7ð 7¸5Ø—m‘m DÓ)×)Ð)Ø!&§¡£×/‘��qØñ 7ØŸ*™* TÓ*×*Ð*Ø!&§¡¨A£×.°$Ò6Ð6Ñ6÷7÷7÷	7ð 	7Ø"øð *øØ/øà*øØ.ø÷7ð 7ú÷7ð 7ú÷	7ð 	7üs¤   ‚%D-§D!¼C?½9D!Á6DÂDÂDÂ#DÂ$	DÂ-D	ÃD
ÃD	ÃD
Ã	D	Ã&DÃ.D!Ã6	D-Ã?D!ÄDÄDÄD	ÄD	Ä	DÄDÄD	ÄD!Ä!D*Ä&D-z/sockz/sock1z/sock2r	  Úasciis    trio-test-)r¯  zstr | bytes | os.PathLike[str]rH   rI   )	ÚtempfileÚTemporaryDirectoryr   rÊ   ÚfsencodeÚurandomÚhexÚencodeÚFileNotFoundError)r³  ÚtmpdirÚcookies      r)   Útest_unix_domain_socketr¾  �  sÝ   è ø€ ó
	7ô 
×	$Ñ	$Ó	&ð <¨&ñ ˜v˜h eÐ,Ó-×-Ð-ÙœD F 8¨6Ð!2Ó3Ó4×4Ð4ÙœBŸK™K¨6¨(°&Ð(9Ó:Ó;×;Ð;÷<ðÜ—‘˜B“×#Ñ#Ó%×,Ñ,¨WÓ5ˆÙÐ-°Ñ6Ó7×7Ñ7ð 	.øØ4øØ;ø÷<ð <úð 	8ùÜò áðüs‡   ‚C#›CªC «CÁCÁ%CÁ,CÁ-CÁ1C#Á:A C Â:CÂ;C Â?C#Ã CÃCÃCÃCÃC#ÃC Ã	C ÃC#ÃC Ã C#c            	   ƒ  óf  ‡‡K  — t        j                  «       \  } }| 5  |5  | j                  d«       ddz  Š	 	 | j                  ‰«       Œ# t        $ r Y nw xY wt        j                  | «      Šdˆˆfd„}dˆfd„}t        j                  «       4 ƒd {  –—†7  }|j                  |«       |j                  |«       t        «       ƒ d {  –—†7   ‰j                  «        d d d «      ƒd {  –—†7   n# 1 ƒd {  –—†7  sw Y   nxY wd d d «       n# 1 sw Y   nxY wd d d «       y # 1 sw Y   y xY w­w)NFr£   iŸ† c               “  ó´   •K  — t        j                  t        j                  «      5  ‰ j	                  ‰«      ƒ d {  –—†  d d d «       y 7 Œ# 1 sw Y   y xY w­wr&   )r`   ra   r   ÚClosedResourceErrorr«   )r¿   r€  s   €€r)   Úsenderz)test_interrupted_by_close.<locals>.senderÀ  sG   øè ø€ Ü—‘œu×8Ñ8Ó9ñ #Ø—f‘f˜T“l×"Ð"÷#ð #Ø"ø÷#ð #üó,   ƒ$A§A¼A
½AÁ	AÁ
AÁAÁAc               “  ó´   •K  — t        j                  t        j                  «      5  ‰ j	                  d«      ƒ d {  –—†  d d d «       y 7 Œ# 1 sw Y   y xY w­w)Nr¤   )r`   ra   r   rÁ  r¬   )r¿   s   €r)   Úreceiverz+test_interrupted_by_close.<locals>.receiverÄ  sE   øè ø€ Ü—‘œu×8Ñ8Ó9ñ  Ø—f‘f˜Q“i—�÷ ð  Øø÷ ð  ürÃ  r]  )rD   r¨   r^  r«   rc   rf   r©   r   r½   r¾   r   rÙ   )Úa_stdlibÚb_stdlibrÂ  rÅ  rÁ   r¿   r€  s        @@r)   Útest_interrupted_by_closerÈ  ±  s  ùè ø€ Ü&×1Ñ1Ó3Ñ€HˆhØ	ñ �8ñ Ø×Ñ˜UÔ#à�e‰|ˆð	ØØ—‘˜dÔ#ð øäò 	Ùð	úô ×&Ñ& xÓ0ˆö	#õ	 ô ×%Ñ%Ó'÷ 	ñ 	¨7Ø×Ñ˜vÔ&Ø×Ñ˜xÔ(Ü(Ó*×*Ñ*Ø�G‰GŒI÷		÷ 	÷ 	÷ 	ó 	ú÷+÷ ñ ú÷ ÷ ñ üs˜   „D1žD%¡D¹AÁ	AÁDÁAÁ=DÂB
ÂDÂ0C2Ã
C
ÃC2Ã DÃ+C.Ã,DÃ2DÃ8C;Ã9DÄ DÄ	D%ÄD	ÄD%Ä	D1Ä%D.Ä*D1c               ƒ  ó–  K  — d} g }t        d| d«      D ]!  }	 t        j                  «       \  }}|||gz  }Œ# t        j                  «       4 ƒd {  –—† }|D ]"  }|j                  t        j                  |«       Œ$ t        j                  «       ƒ d {  –—†  |j                  j                  «        d d d «      ƒd {  –—†  |D ]  }|j                  «        Œ y # t        $ rH}|j                  t        j
                  t        j                  fv sJ ‚t        d|› d�«       Y d }~ Œîd }~ww xY w7 ŒÝ7 Œœ7 Œt# 1 ƒd {  –—†7  sw Y   Œ„xY w­w)Niè  r   r
   zUnable to open more than z	 sockets.)ÚrangerD   r¨   rõ   r‘   ÚEMFILEÚENFILErº   r   r½   r¾   r  r   ra  r`  rÙ   )ÚtotalrÛ   Úopenedr¿   rÀ   r\   rÁ   r   s           r)   Útest_many_socketsrÏ  Ï  s?  è ø€ Ø€EØ€Gä˜˜5 !Ó$ò ˆð		Ü ×+Ñ+Ó-‰DˆAˆqð 	�A�q�6Ñ‰ðô ×!Ñ!Ó#÷ &ð & wØò 	<ˆFØ×Ñœu×2Ñ2°FÕ;ð	<ä×*Ñ*Ó,×,Ð,Ø×Ñ×#Ñ#Ô%÷	&÷ &ð
 ò ˆØ�‰�ñøô ò 	ð —9‘9¤§¡¬u¯|©|Ð <Ñ<Ð<Ð<ÜÐ-¨f¨X°YÐ?Ô@åûð	úð&øð 	-øð&ø÷ &÷ &ñ &üs�   ‚E	˜C¯!E	ÁD.ÁE	Á?D4ÂD0ÂD4Â2E	Â=D2Â>E	Ã	D+Ã#=D&Ä E	Ä&D+Ä+E	Ä0D4Ä2E	Ä4EÄ:D=Ä;EÅE	)rU   zpytest.MonkeyPatchrH   r    r]  )rW   r    rH   rI   )r»   zSocketType | SocketStreamrH   rI   )r  r   r  r   rH   rI   )rH   r_   )r  r   r%  r  rH   rI   )cÚ
__future__r   r‘   r3   rÊ   r   rD   rÇ   rµ  Úpathlibr   r   r   Útypingr   r   r	   Úattrsr`   r~   r   rf   Ú_core._tests.tutilr   r   r   r   Ú_socketr   r   r   r   r   Útestingr   r   Úcollections.abcr   Útyping_extensionsr   Ú_highlevel_socketr   r5  rL   r   r;  r   r$  Úlistr   r   r   r    ÚfixturerW   rd   rk   r•   r¡   r²   r¶   rÂ   ÚmarkÚskipifr�   rÎ   rÒ   rÔ   rÈ   rÞ   rê   rî   rì   rû   r  Úparametrizer‡   ÚparamrŠ   r  r  r  Údefiner  rC  rG  rc  rk  rm  rq  r‡  rŠ  r‘  rŸ  r©  r«  r¾  rÈ  rÏ  rR   r+   r)   ú<module>rá     s   ðÞ "ã Û Û 	Û Û 
Û Ý ß ,ß -Ñ -ã Û ç 'ß PÓ Pß VÕ Vß @áÝ(å+å0àØØØØØˆe�C˜�H‰o˜u S¨#¨s°CÐ%7Ñ8¸%ÀÀUÀ
Ñ:KÐKÑLð		Nñ€Hˆió ð &*¨(¡^Ð˜Ó3Ø!&Øˆc�5˜$ÐÑØˆc�5˜#˜tÐ#Ñ$ØØØØð	ñ"€O�Yô ð ÓØ ÐØ€O÷GPñ GPðT ‡�òó ðó&ó<0óW7ótóF/ó,"ó
)ð ‡�×Ñ™ ¨Ó5Ð5¸nÐÓMò+ó Nð+ó+ð ò,ó ð,ð ‡�×Ñ�C—L‘L GÑ+°LÐÓAòó BðóB0ófóHóB	+ó&ð6 ‡�×ÑØà	�g—o‘oÐ&Øˆ�‰�U˜G×,Ñ,°JÔ?ðóð0Øð0àð0ð 
ò0óð0ó(#óð €‡��EÔ÷ð ó ðð ‡�×ÑØð �O‰OÙØ"Ø%Ø#Ø+ô	ð	
ð 	ˆ�‰Ø×ÑÙØØØ Ø2ô	ð ô		
ðóò0z5ó1ð0z5óz+ó&GðV òE1ó ðE1ðR ò	-ó ð	-ó'ó.]*ó@Kó$4ó:<óz:ó@ð
 ‡�×Ñ™ ¨Ó3Ð3Ð<TÐÓUòó Vðó@ô<r+   