
    ܲen                       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mZm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZ d dl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$m%Z%m&Z&m'Z'm(Z( d dl)Z*d dl+Z*d dl,m-Z-m.Z.m/Z/ d dl+m0Z0m1Z1m2Z2m3Z3 d dl4m5Z6 d dl7m8Z8 ddl9m:Z:m;Z;m<Z<m=Z= ddl>m?Z? ddl@mAZAmBZBmCZCmDZD ddlEmFZF ddlGmHZH ddlImJZK ddlImLZM ddlImNZN ddlOmPZQ ddl=mRZRmSZSmTZT ddlUmVZV ddlWmXZX ejY        dk    rd dlmZZZ nd dl[mZZZ ejY        d k    r	d d!lm\Z\m]Z] nd d"l^m_Z_ d d!l[m\Z\m]Z]  e&d#          Z` e&d$          Za e&d%ebeR          Zc e\d&          Zd eZd'          Zee*jf        jg        Zg G d( d)eQ          ZP G d* d+e=jh                  Zh G d, d-e=ji                  Zi ed./           G d0 d1e=jj                              Zk ed./           G d2 d3e=jl                              Zm ed./           G d4 d5e=jn                              Zn G d6 d7e*j=        jo                  Zp egd8          Zqd9erd8<   d\d>Zs G d? d@e"ec                   Zt G dA dBete=ju                  Zu G dC dDeue=jv                  Zv G dE dFete=jw                  Zx G dG dHete=jw                  Zy G dI dJeteR         e=jz                  Zz G dK dLeteR         e=j{                  Z{ G dM dNeteb         e=j|                  Z| G dO dPeteb         e=j}                  Z} G dQ dReM          ZL G dS dTeK          ZJ egdU          Z~d9erdU<    G dV dW          Z G dX dYe=j                  Z G dZ d[eV          ZeZdS )]    )annotationsN)AsyncIteratorIterable)Future)	dataclass)partial)IOBase)PathLike)Signals)AddressFamily
SocketKind)TracebackType)IOAnyAsyncGenerator	AwaitableCallable
CollectionContextManager	CoroutineGenericMappingNoReturnSequenceTypeVarcastoverload)ErrorOutcomeValue)current_root_taskcurrent_taskwait_readablewait_writable)
SocketType)run_sync   )CapacityLimiterStatisticsEventStatisticsTaskInfoabc)claim_worker_thread)BrokenResourceErrorBusyResourceErrorClosedResourceErrorEndOfStream)convert_ipv6_sockaddr)create_memory_object_streamCapacityLimiterEvent)ResourceGuardCancelScope)IPSockAddrTypeUDPPacketTypeUNIXDatagramPacketType)AsyncBackend)MemoryObjectSendStream)   
   )	ParamSpec)r?      )TypeVarTupleUnpack)BaseExceptionGroupTT_Retval
T_SockAddrPosArgsTPc                      e Zd Z	 dddZdd d
Zd!dZd"dZd#dZed$d            Z	e	j
        d%d            Z	ed&d            Zed&d            Zed&d            Zej
        d'd            ZdS )(r9   Noriginaltrio.CancelScope | Nonekwargsobjectreturnc                6    t                               |           S NrO   __new__)clsrL   rN   s      5lib/python3.11/site-packages/anyio/_backends/_trio.pyrT   zCancelScope.__new__`        ~~c"""    r   Nonec                6    |pt          j        di || _        d S N )trior9   _CancelScope__original)selfrL   rN   s      rV   __init__zCancelScope.__init__e   s#    "@d&6&@&@&@&@rX   c                8    | j                                          | S rR   )r^   	__enter__r_   s    rV   rb   zCancelScope.__enter__h   s    !!###rX   exc_typetype[BaseException] | Noneexc_valBaseException | Noneexc_tbTracebackType | Nonebool | Nonec                :    | j                             |||          S rR   )r^   __exit__r_   rd   rf   rh   s       rV   rl   zCancelScope.__exit__l   s     '''6BBBrX   c                8    | j                                          d S rR   )r^   cancelrc   s    rV   ro   zCancelScope.cancelu   s         rX   floatc                    | j         j        S rR   r^   deadlinerc   s    rV   rs   zCancelScope.deadlinex   s    ''rX   valuec                    || j         _        d S rR   rr   r_   rt   s     rV   rs   zCancelScope.deadline|   s    #(   rX   boolc                    | j         j        S rR   )r^   cancel_calledrc   s    rV   ry   zCancelScope.cancel_called   s    ,,rX   c                    | j         j        S rR   )r^   cancelled_caughtrc   s    rV   r{   zCancelScope.cancelled_caught       //rX   c                    | j         j        S rR   r^   shieldrc   s    rV   r   zCancelScope.shield   s    %%rX   c                    || j         _        d S rR   r~   rv   s     rV   r   zCancelScope.shield   s    !&rX   rR   )rL   rM   rN   rO   rP   r9   )rL   rM   rN   r   rP   rY   )rP   r9   rd   re   rf   rg   rh   ri   rP   rj   rP   rY   rP   rp   rt   rp   rP   rY   rP   rw   )rt   rw   rP   rY   )__name__
__module____qualname__rT   r`   rb   rl   ro   propertyrs   setterry   r{   r   r\   rX   rV   r9   r9   _   sR       15# # # # #
A A A A A   C C C C! ! ! ! ( ( ( X( _) ) ) _) - - - X- 0 0 0 X0 & & & X& ]' ' ' ]' ' 'rX   r9   c                  B    e Zd ZddZddZddZddddZddddZdS )	TaskGrouprP   rY   c                V    d| _         t          j        d          | _        d | _        d S )NFT)strict_exception_groups)_activer]   open_nursery_nursery_managercancel_scoperc   s    rV   r`   zTaskGroup.__init__   s-     $ 1$ O O O rX   c                   K   d| _         | j                                         d {V | _        t	          | j        j                  | _        | S )NT)r   r   
__aenter___nurseryr9   r   rc   s    rV   r   zTaskGroup.__aenter__   sO      "3>>@@@@@@@@'(BCCrX   rd   re   rf   rg   rh   ri   rj   c                $  K   	 | j                             |||           d {V 	 d| _        S # t          $ rK}|                    t
          j                  \  }}|s!t
          j                                        }|| d }~ww xY w# d| _        w xY wNF)r   	__aexit__r   rE   splitr]   	Cancelled_create)r_   rd   rf   rh   exc_restcancelled_excs           rV   r   zTaskGroup.__aexit__   s      
	!.887FSSSSSSSSS !DLL " 	 	 	ii//GAt - $ 6 6 8 8#,	 !DL    s!   !. 
BAA>>BB 	BNnamefunc,Callable[[Unpack[PosArgsT]], Awaitable[Any]]argsUnpack[PosArgsT]r   rO   c               ^    | j         st          d           | j        j        |g|R d|i d S Nz;This task group is not active; no new tasks can be started.r   )r   RuntimeErrorr   
start_soonr_   r   r   r   s       rV   r   zTaskGroup.start_soon   sP     | 	M   	! 8888488888rX   Callable[..., Awaitable[Any]]r   c               j   K   | j         st          d           | j        j        |g|R d|i d {V S r   )r   r   r   startr   s       rV   r   zTaskGroup.start   s`       | 	M   )T](@@@@4@@@@@@@@@rX   r   )rP   r   r   )r   r   r   r   r   rO   rP   rY   )r   r   r   rO   r   rO   rP   r   )r   r   r   r`   r   r   r   r   r\   rX   rV   r   r      s        ! ! ! !
   ! ! ! !, 	9 9 9 9 9 9 RVA A A A A A A ArX   r   c                  0     e Zd ZddZd fdZddZ xZS )BlockingPortalrP   c                6    t                               |           S rR   rS   rU   s    rV   rT   zBlockingPortal.__new__       ~~c"""rX   rY   c                    t                                                       t          j                                        | _        d S rR   )superr`   r]   lowlevelcurrent_trio_token_tokenr_   	__class__s    rV   r`   zBlockingPortal.__init__   s2    m6688rX   r   <Callable[[Unpack[PosArgsT]], Awaitable[T_Retval] | T_Retval]r   tuple[Unpack[PosArgsT]]rN   dict[str, Any]r   rO   futureFuture[T_Retval]c           	         t           j                            t          | j        j        |          | j        ||||| j                   d S )Nr   )
trio_token)r]   from_threadr&   r   _task_groupr   
_call_funcr   )r_   r   r   rN   r   r   s         rV   _spawn_task_from_threadz&BlockingPortal._spawn_task_from_thread   sZ     	!!D$/d;;;O{ 	" 	
 	
 	
 	
 	
rX   )rP   r   r   )r   r   r   r   rN   r   r   rO   r   r   rP   rY   )r   r   r   rT   r`   r   __classcell__r   s   @rV   r   r      se        # # # #9 9 9 9 9 9
 
 
 
 
 
 
 
rX   r   F)eqc                  ,    e Zd ZU ded<   dddZdd
ZdS )ReceiveStreamWrapperztrio.abc.ReceiveStream_streamN	max_bytes
int | NonerP   bytesc                   K   	 | j                             |           d {V }nC# t          j        $ r}t          |j        d }~wt          j        $ r}t
          |j        d }~ww xY w|r|S t          rR   )r   receive_somer]   r/   	__cause__r-   r0   r_   r   datar   s       rV   receivezReceiveStreamWrapper.receive   s      	9229========DD' 	9 	9 	9%3=8' 	9 	9 	9%3=8	9  	Ks     % A%AA%A  A%rY   c                H   K   | j                                          d {V  d S rR   r   acloserc   s    rV   r   zReceiveStreamWrapper.aclose  2      l!!###########rX   rR   )r   r   rP   r   r   )r   r   r   __annotations__r   r   r\   rX   rV   r   r      sO         ####    $ $ $ $ $ $rX   r   c                  *    e Zd ZU ded<   d
dZddZd	S )SendStreamWrapperztrio.abc.SendStreamr   itemr   rP   rY   c                   K   	 | j                             |           d {V  d S # t          j        $ r}t          |j        d }~wt          j        $ r}t
          |j        d }~ww xY wrR   )r   send_allr]   r/   r   r-   r_   r   r   s      rV   sendzSendStreamWrapper.send
  s      	9,''-----------' 	9 	9 	9%3=8' 	9 	9 	9%3=8	9s     & A&AA&A!!A&c                H   K   | j                                          d {V  d S rR   r   rc   s    rV   r   zSendStreamWrapper.aclose  r   rX   Nr   r   rP   rY   r   )r   r   r   r   r   r   r\   rX   rV   r   r     sJ             9 9 9 9$ $ $ $ $ $rX   r   c                      e Zd ZU ded<   ded<   ded<   ded<   dd
ZddZddZddZddZe	dd            Z
e	dd            Ze	dd            Ze	dd            Ze	dd            ZdS )Processztrio.Process_processabc.ByteSendStream | None_stdinabc.ByteReceiveStream | None_stdout_stderrrP   rY   c                "  K   | j         r| j                                          d {V  | j        r| j                                         d {V  | j        r| j                                         d {V  |                                  d {V  d S rR   )r   r   r   r   waitrc   s    rV   r   zProcess.aclose  s      ; 	'+$$&&&&&&&&&< 	(,%%'''''''''< 	(,%%'''''''''iikkrX   intc                D   K   | j                                          d {V S rR   )r   r   rc   s    rV   r   zProcess.wait'  s,      ]'')))))))))rX   c                8    | j                                          d S rR   )r   	terminaterc   s    rV   r   zProcess.terminate*  s    !!!!!rX   c                8    | j                                          d S rR   )r   killrc   s    rV   r   zProcess.kill-  s    rX   signalr   c                :    | j                             |           d S rR   )r   send_signal)r_   r   s     rV   r   zProcess.send_signal0  s    !!&)))))rX   c                    | j         j        S rR   )r   pidrc   s    rV   r   zProcess.pid3  s    }  rX   r   c                    | j         j        S rR   )r   
returncoderc   s    rV   r   zProcess.returncode7  s    }''rX   c                    | j         S rR   )r   rc   s    rV   stdinzProcess.stdin;  s
    {rX   c                    | j         S rR   )r   rc   s    rV   stdoutzProcess.stdout?  
    |rX   c                    | j         S rR   )r   rc   s    rV   stderrzProcess.stderrC  r   rX   Nr   rP   r   )r   r   rP   rY   )rP   r   )rP   r   )rP   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r\   rX   rV   r   r     sJ        %%%%))))))))   * * * *" " " "   * * * * ! ! ! X! ( ( ( X(    X    X    X  rX   r   c                        e Zd Zd fdZ xZS )_ProcessPoolShutdownInstrumentrP   rY   c                H    t                                                       d S rR   )r   	after_runr   s    rV   r  z(_ProcessPoolShutdownInstrument.after_runI  s    rX   r   )r   r   r   r  r   r   s   @rV   r  r  H  s=                 rX   r  &current_default_worker_process_limiterztrio.lowlevel.RunVarworkersset[abc.Process]rP   rY   c                T  K   	 t          j        t          j                   d {V  d S # t           j        $ rn | D ]}|j        |                                 t          d          5  | D ]}|                                 d {V  	 d d d            Y d S # 1 swxY w Y   Y d S w xY w)NT)r   )	r]   sleepmathinfr   r   r   r9   r   )r  processs     rV   _shutdown_process_poolr  R  s0     	'j"""""""""""> ' ' ' 	 	G!)%%% 	' 	'" ' 'nn&&&&&&&&&&'	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	''s3   $* ?B') B
B'B	B'B	 B'&B'c                  F    e Zd ZddZddZedd            Zdd	ZddZdS )_TrioSocketMixintrio_socketTrioSocketTyperP   rY   c                "    || _         d| _        d S r   )_trio_socket_closed)r_   r  s     rV   r`   z_TrioSocketMixin.__init__e  s    'rX   c                j    | j         rt          | j                                        dk     rt          d S Nr   )r  r/   r  filenor-   rc   s    rV   _check_closedz_TrioSocketMixin._check_closedi  s:    < 	&%%##%%))%% *)rX   socket.socketc                    | j         j        S rR   )r  _sockrc   s    rV   _raw_socketz_TrioSocketMixin._raw_socketo  s     &&rX   c                   K   | j                                         dk    r"d| _        | j                                          d S d S )Nr   T)r  r  r  closerc   s    rV   r   z_TrioSocketMixin.acloses  sJ      ##%%**DL##%%%%% +*rX   r   BaseExceptionr   c                    t          |t          j                  rt          || j                                        dk     r| j        rt          d t          |t                    rt          ||r  )
isinstancer]   r/   r  r  r  OSErrorr-   r_   r   s     rV   _convert_socket_errorz&_TrioSocketMixin._convert_socket_errorx  sg    c4344 	%3.%%''!+++%4/W%% 	%3.IrX   Nr  r  rP   rY   r   )rP   r  )r   r  rP   r   )	r   r   r   r`   r  r   r  r   r$  r\   rX   rV   r  r  d  s           & & & & ' ' ' X'& & & &
     rX   r  c                  :     e Zd Zd fdZddd
ZddZddZ xZS )SocketStreamr  r  rP   rY   c                    t                                          |           t          d          | _        t          d          | _        d S Nreading from
writing tor   r`   r7   _receive_guard_send_guardr_   r  r   s     rV   r`   zSocketStream.__init__  A    %%%+N;;(66rX      r   r   r   c                   K   | j         5  	 | j                            |           d {V }n,# t          $ r}|                     |           Y d }~nd }~ww xY w|r|cd d d            S t
          # 1 swxY w Y   d S rR   )r-  r  recvr  r$  r0   r   s       rV   r   zSocketStream.receive  s        		" 		"0!.33I>>>>>>>>  0 0 0**3////////0  "		" 		" 		" 		" 		" 		" 		" 		" "!		" 		" 		" 		" 		" 		" 		" 		" 		" 		"s<   A0 -A0
AAA0AA0)A00A47A4r   c                   K   | j         5  t          |          }|rZ	 | j                            |           d {V }n,# t          $ r}|                     |           Y d }~nd }~ww xY w||d          }|Zd d d            d S # 1 swxY w Y   d S rR   )r.  
memoryviewr  r   r  r$  )r_   r   view
bytes_sentr   s        rV   r   zSocketStream.send  s      	) 	)d##D )4'+'8'='=d'C'C!C!C!C!C!C!CJJ$ 4 4 4..s333333334 JKK(  )	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s7   B >B
A'A"B"A''BB
Bc                R   K   | j                             t          j                   d S rR   )r  shutdownsocketSHUT_WRrc   s    rV   send_eofzSocketStream.send_eof  s%      ""6>22222rX   r%  )r1  )r   r   rP   r   r   r   )r   r   r   r`   r   r   r<  r   r   s   @rV   r'  r'    s~        7 7 7 7 7 7

" 
" 
" 
" 
"	) 	) 	) 	)3 3 3 3 3 3 3 3rX   r'  c                      e Zd ZddZddZdS )UNIXSocketStreammsglenr   maxfdsrP   tuple[bytes, list[int]]c           	     |  K   t          |t                    r|dk     rt          d          t          |t                    r|dk     rt          d          t          j        d          }t          j                                         d {V  | j        5  	 	 | j        	                    |t          j        ||j        z                       d {V \  }}}}|s	|st          n-# t          $ r}|                     |           Y d }~nd }~ww xY wz	 d d d            n# 1 swxY w Y   |D ]\  }	}
}|	t          j        k    s|
t          j        k    rt%          d|d|	 d	|
           |                    |d t)          |          t)          |          |j        z  z
                      |t+          |          fS )
Nr   z%msglen must be a non-negative integer   z!maxfds must be a positive integeriTz.Received unexpected ancillary data; message = z, cmsg_level = z, cmsg_type = )r!  r   
ValueErrorarrayr]   r   
checkpointr-  r  recvmsgr:  CMSG_LENitemsizer0   r  r$  
SOL_SOCKET
SCM_RIGHTSr   	frombyteslenlist)r_   r?  r@  fdsmessageancdataflagsaddrr   
cmsg_level	cmsg_type	cmsg_datas               rV   receive_fdszUNIXSocketStream.receive_fds  sx     &#&& 	F&1**DEEE&#&& 	B&1**@AAAk#m&&(((((((((  	 	
:>:K:S:S0E F F; ; 5 5 5 5 5 51GWeT # *7 *)) % 4 4 4..s333333334 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 18 	Y 	Y,J	9V...)v?P2P2P"JW J J$.J J>GJ J  
 MM)$Vc)nnI8U&V$VWXXXXS		!!s=   DA C%D%
D/D	D	DDD#&D#rQ  r   rP  Collection[int | IOBase]rY   c                  K   |st          d          |st          d          g }|D ]i}t          |t                    r|                    |           -t          |t                    r'|                    |                                           jt          j        d|          }t          j        	                                 d {V  | j
        5  	 	 | j                            |gt          j        t          j        |fg           d {V  n-# t           $ r}|                     |           Y d }~nd }~ww xY wi	 d d d            d S # 1 swxY w Y   d S )Nzmessage must not be emptyzfds must not be emptyrD  )rE  r!  r   appendr	   r  rF  r]   r   rG  r.  r  sendmsgr:  rK  rL  r  r$  )r_   rQ  rP  filenosfdfdarrayr   s          rV   send_fdszUNIXSocketStream.send_fds  s      	:8999 	64555 	, 	,B"c"" ,r""""B'' ,ryy{{++++c7++m&&((((((((( 	4 	444+33 	 !' 1 & 1 '	 	 	 	 	 	 	 	 	 $ 4 4 4..s3333333344 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s<   E:DE
D:D50E5D::EEEN)r?  r   r@  r   rP   rA  )rQ  r   rP  rY  rP   rY   )r   r   r   rX  r`  r\   rX   rV   r>  r>    s=        " " " "B4 4 4 4 4 4rX   r>  c                  (     e Zd Zd fdZddZ xZS )	TCPSocketListener
raw_socketr  c                    t                                          t          j                            |                     t          d          | _        d S Nzaccepting connections fromr   r`   r]   r:  from_stdlib_socketr7   _accept_guardr_   rc  r   s     rV   r`   zTCPSocketListener.__init__  B    77
CCDDD*+GHHrX   rP   r'  c                X  K   | j         5  	 | j                                         d {V \  }}n,# t          $ r}|                     |           Y d }~nd }~ww xY wd d d            n# 1 swxY w Y   |                    t          j        t          j        d           t          |          S NrC  )
rh  r  acceptr  r$  
setsockoptr:  IPPROTO_TCPTCP_NODELAYr'  r_   r  _addrr   s       rV   rm  zTCPSocketListener.accept  s      	0 	00+/+<+C+C+E+E%E%E%E%E%E%E"UU  0 0 0**3////////0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	v163EqIIIK(((6   A'"/A'
AAA'AA''A+.A+rc  r  )rP   r'  r   r   r   r`   rm  r   r   s   @rV   rb  rb    sW        I I I I I I) ) ) ) ) ) ) )rX   rb  c                  (     e Zd Zd fdZddZ xZS )	UNIXSocketListenerrc  r  c                    t                                          t          j                            |                     t          d          | _        d S re  rf  ri  s     rV   r`   zUNIXSocketListener.__init__  rj  rX   rP   r>  c                  K   | j         5  	 | j                                         d {V \  }}n,# t          $ r}|                     |           Y d }~nd }~ww xY wd d d            n# 1 swxY w Y   t          |          S rR   )rh  r  rm  r  r$  r>  rq  s       rV   rm  zUNIXSocketListener.accept  s       	0 	00+/+<+C+C+E+E%E%E%E%E%E%E"UU  0 0 0**3////////0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0  ,,,rs  rt  )rP   r>  ru  r   s   @rV   rw  rw    sW        I I I I I I- - - - - - - -rX   rw  c                  0     e Zd Zd fdZddZdd
Z xZS )	UDPSocketr  r  rP   rY   c                    t                                          |           t          d          | _        t          d          | _        d S r)  r,  r/  s     rV   r`   zUDPSocket.__init__  r0  rX   tuple[bytes, IPSockAddrType]c                &  K   | j         5  	 | j                            d           d {V \  }}|t          |          fcd d d            S # t          $ r}|                     |           Y d }~nd }~ww xY w	 d d d            d S # 1 swxY w Y   d S Nr1  )r-  r  recvfromr1   r  r$  r_   r   rT  r   s       rV   r   zUDPSocket.receive  s$       	0 	00#'#4#=#=e#D#DDDDDDD
d24888	0 	0 	0 	0 	0 	0 	0 	0 ! 0 0 0**3////////0/	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s4   B3A
A5A0+B0A55BB
B
r   r;   c                   K   | j         5  	  | j        j        |  d {V  n,# t          $ r}|                     |           Y d }~nd }~ww xY wd d d            d S # 1 swxY w Y   d S rR   r.  r  sendtor  r$  r   s      rV   r   zUDPSocket.send         	0 	00.d'.555555555  0 0 0**3////////0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	06   A"A
AAAAAA"Ar%  )rP   r}  )r   r;   rP   rY   r   r   r   r`   r   r   r   r   s   @rV   r{  r{    e        7 7 7 7 7 7
0 0 0 00 0 0 0 0 0 0 0rX   r{  c                  0     e Zd Zd
 fdZddZdd	Z xZS )ConnectedUDPSocketr  r  rP   rY   c                    t                                          |           t          d          | _        t          d          | _        d S r)  r,  r/  s     rV   r`   zConnectedUDPSocket.__init__  r0  rX   r   c                   K   | j         5  	 | j                            d           d {V 	 cd d d            S # t          $ r}|                     |           Y d }~nd }~ww xY w	 d d d            d S # 1 swxY w Y   d S r  r-  r  r3  r  r$  r#  s     rV   r   zConnectedUDPSocket.receive"         	0 	00!.33E:::::::::	0 	0 	0 	0 	0 	0 	0 	0 ! 0 0 0**3////////0/		0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	02   A39
A"AA3A""A33A7:A7r   c                   K   | j         5  	 | j                            |           d {V  n,# t          $ r}|                     |           Y d }~nd }~ww xY wd d d            d S # 1 swxY w Y   d S rR   r.  r  r   r  r$  r   s      rV   r   zConnectedUDPSocket.send)         	0 	00',,T2222222222  0 0 0**3////////0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	06   A& -A&
AAA&AA&&A*-A*r%  rP   r   r   r  r   s   @rV   r  r    se        7 7 7 7 7 7
0 0 0 00 0 0 0 0 0 0 0rX   r  c                  0     e Zd Zd
 fdZddZdd	Z xZS )UNIXDatagramSocketr  r  rP   rY   c                    t                                          |           t          d          | _        t          d          | _        d S r)  r,  r/  s     rV   r`   zUNIXDatagramSocket.__init__2  r0  rX   r<   c                  K   | j         5  	 | j                            d           d {V \  }}||fcd d d            S # t          $ r}|                     |           Y d }~nd }~ww xY w	 d d d            d S # 1 swxY w Y   d S r  )r-  r  r  r  r$  r  s       rV   r   zUNIXDatagramSocket.receive7  s       	0 	00#'#4#=#=e#D#DDDDDDD
dTz	0 	0 	0 	0 	0 	0 	0 	0 ! 0 0 0**3////////0/	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s2   A9&?
A(	A#A9#A((A99A= A=r   c                   K   | j         5  	  | j        j        |  d {V  n,# t          $ r}|                     |           Y d }~nd }~ww xY wd d d            d S # 1 swxY w Y   d S rR   r  r   s      rV   r   zUNIXDatagramSocket.send?  r  r  r%  )rP   r<   )r   r<   rP   rY   r  r   s   @rV   r  r  1  r  rX   r  c                  0     e Zd Zd
 fdZddZdd	Z xZS )ConnectedUNIXDatagramSocketr  r  rP   rY   c                    t                                          |           t          d          | _        t          d          | _        d S r)  r,  r/  s     rV   r`   z$ConnectedUNIXDatagramSocket.__init__J  r0  rX   r   c                   K   | j         5  	 | j                            d           d {V 	 cd d d            S # t          $ r}|                     |           Y d }~nd }~ww xY w	 d d d            d S # 1 swxY w Y   d S r  r  r#  s     rV   r   z#ConnectedUNIXDatagramSocket.receiveO  r  r  r   c                   K   | j         5  	 | j                            |           d {V  n,# t          $ r}|                     |           Y d }~nd }~ww xY wd d d            d S # 1 swxY w Y   d S rR   r  r   s      rV   r   z ConnectedUNIXDatagramSocket.sendV  r  r  r%  r  r   r  r   s   @rV   r  r  G  se        7 7 7 7 7 7
0 0 0 00 0 0 0 0 0 0 0rX   r  c                  >    e Zd ZddZddZddZddZdd	Zdd
ZdS )r6   rP   c                6    t                               |           S rR   rS   r   s    rV   rT   zEvent.__new__d  r   rX   rY   c                6    t          j                    | _        d S rR   )r]   r6   _Event__originalrc   s    rV   r`   zEvent.__init__g  s    *,,rX   rw   c                4    | j                                         S rR   )r  is_setrc   s    rV   r  zEvent.is_setj  s    %%'''rX   c                D   K   | j                                          d {V S rR   )r  r   rc   s    rV   r   z
Event.waitm  s,      _))+++++++++rX   r)   c                ^    | j                                         }t          |j                  S )N)tasks_waiting)r  
statisticsr)   r  )r_   orig_statisticss     rV   r  zEvent.statisticsp  s)    /4466_-JKKKKrX   c                8    | j                                          d S rR   )r  setrc   s    rV   r  z	Event.sett  s    rX   N)rP   r6   r   r   )rP   r)   )	r   r   r   rT   r`   r  r   r  r  r\   rX   rV   r6   r6   c  s        # # # #' ' ' '( ( ( (, , , ,L L L L     rX   r6   c                      e Zd Zddd$dZddd%d
Zd&dZd'dZed(d            Zej	        d)d            Zed*d            Z
ed(d            Zd&dZd+dZd&dZd+dZd&d Zd+d!Zd,d#ZdS )-r4   NrL   r   r   rL   trio.CapacityLimiter | NonerP   c               6    t                               |           S rR   rS   )rU   rL   r   s      rV   rT   zCapacityLimiter.__new__y  rW   rX   rY   c               0    |pt          j        | | _        d S rR   )r]   r4   _CapacityLimiter__original)r_   rL   r   s      rV   r`   zCapacityLimiter.__init__~  s     #Ad&:D&ArX   c                D   K   | j                                          d {V S rR   )r  r   rc   s    rV   r   zCapacityLimiter.__aenter__  s,      _//111111111rX   rd   re   rf   rg   rh   ri   c                N   K   | j                             |||           d {V  d S rR   )r  r   rm   s       rV   r   zCapacityLimiter.__aexit__  s:       o'''6BBBBBBBBBBBrX   rp   c                    | j         j        S rR   r  total_tokensrc   s    rV   r  zCapacityLimiter.total_tokens  s    ++rX   rt   c                    || j         _        d S rR   r  rv   s     rV   r  zCapacityLimiter.total_tokens  s    ',$$$rX   r   c                    | j         j        S rR   )r  borrowed_tokensrc   s    rV   r  zCapacityLimiter.borrowed_tokens  s    ..rX   c                    | j         j        S rR   )r  available_tokensrc   s    rV   r  z CapacityLimiter.available_tokens  r|   rX   c                8    | j                                          d S rR   )r  acquire_nowaitrc   s    rV   r  zCapacityLimiter.acquire_nowait  s    &&(((((rX   borrowerrO   c                :    | j                             |           d S rR   )r  acquire_on_behalf_of_nowaitr_   r  s     rV   r  z+CapacityLimiter.acquire_on_behalf_of_nowait  s    33H=====rX   c                H   K   | j                                          d {V  d S rR   )r  acquirerc   s    rV   r  zCapacityLimiter.acquire  s2      o%%'''''''''''rX   c                J   K   | j                             |           d {V  d S rR   )r  acquire_on_behalf_ofr  s     rV   r  z$CapacityLimiter.acquire_on_behalf_of  s4      o228<<<<<<<<<<<rX   c                4    | j                                         S rR   )r  releaserc   s    rV   r  zCapacityLimiter.release  s    &&(((rX   c                6    | j                             |          S rR   )r  release_on_behalf_ofr  s     rV   r  z$CapacityLimiter.release_on_behalf_of  s    33H===rX   r(   c                    | j                                         }t          |j        |j        t          |j                  |j                  S )N)r  r  	borrowersr  )r  r  r(   r  r  tupler  r  )r_   origs     rV   r  zCapacityLimiter.statistics  sK    ))++( 0*DN++,	
 
 
 	
rX   )r   r   rL   r  rP   r4   )r   r   rL   r  rP   rY   r   )rd   re   rf   rg   rh   ri   rP   rY   r   r   r   )r  rO   rP   rY   )rP   r(   )r   r   r   rT   r`   r   r   r   r  r   r  r  r  r  r  r  r  r  r  r\   rX   rV   r4   r4   x  s       AE# # # # # # CGB B B B B B
2 2 2 2C C C C , , , X, - - - - / / / X/ 0 0 0 X0) ) ) )> > > >( ( ( (= = = =) ) ) )> > > >
 
 
 
 
 
rX   r4   _capacity_limiter_wrapperc                  B    e Zd ZU ded<   ddZddZddZddZddZdS )_SignalReceiverzAsyncIterator[int]	_iteratorsignalstuple[Signals, ...]c                    || _         d S rR   )_signals)r_   r  s     rV   r`   z_SignalReceiver.__init__  s    rX   rP   c                r    t          j        | j         | _        | j                                        | _        | S rR   )r]   open_signal_receiverr  _cmrb   r  rc   s    rV   rb   z_SignalReceiver.__enter__  s-    ,dm<++--rX   rd   re   rf   rg   rh   ri   rj   c                :    | j                             |||          S rR   )r  rl   rm   s       rV   rl   z_SignalReceiver.__exit__  s     x  7F;;;rX   c                    | S rR   r\   rc   s    rV   	__aiter__z_SignalReceiver.__aiter__  s    rX   r   c                b   K   | j                                          d {V }t          |          S rR   )r  	__anext__r   )r_   signums     rV   r  z_SignalReceiver.__anext__  s7      ~//11111111vrX   N)r  r  )rP   r  r   )rP   r   )	r   r   r   r   r`   rb   rl   r  r  r\   rX   rV   r  r    s         !!!!          
< < < <        rX   r  c                  N    e Zd Zd$dZd%dZd&dZd'dZd(dZd)dZd*dZ	d+d"Z
d#S ),
TestRunneroptionsr   rP   rY   c                L    ddl m}  |            | _        d | _        || _        d S )Nr   )Queue)queuer  _call_queue_send_stream_options)r_   r  r  s      rV   r`   zTestRunner.__init__  s5    8=;?rX   rd   re   rf   rg   rh   types.TracebackType | Nonec                    | j         rJ| j                                          | j         , | j                                                     | j         (d S d S d S rR   )r  r  r  getrm   s       rV   rl   zTestRunner.__exit__  sk      	)##%%%#/& $$&&((( #///	) 	)//rX   c                T  K   t          d          \  | _        }|5  |2 3 d {V \  }}	 | d {V }|                    t          |                     6# t          $ r,}|                    t          |                     Y d }~gd }~ww xY w6 	 d d d            d S # 1 swxY w Y   d S rl  )r2   r  r[  r    r  r   )r_   receive_streamcorooutcome_holderretvalr   s         rV   _run_tests_and_fixturesz"TestRunner._run_tests_and_fixtures  s8     ,G,J,J)> 	9 	9.< 9 9 9 9 9 9 9*dN9#'ZZZZZZF #))%--8888 % 6 6 6"))%**555555556 /=n	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9sC   BBBA#B
B"BBBBB!$B!outcomerO   c                    d | _         d S rR   )r  )r_   r  s     rV   _main_task_finishedzTestRunner._main_task_finished   s     rX   r    Callable[P, Awaitable[T_Retval]]r   P.argsrN   P.kwargsrG   c                   | j         bt          j        j        | j        f| j        j        | j        d| j         | j         ( | j        	                                             | j         (g }| j         
                     ||i ||f           |s# | j        	                                             |#|d                                         S )N)run_sync_soon_threadsafedone_callbackr   )r  r]   r   start_guest_runr  r  putr  r  r  send_nowaitunwrap)r_   r   r   rN   r  s        rV   _call_in_runner_taskzTestRunner._call_in_runner_task  s     $M),)-)9)="6  -	   #+& $$&&((( #+ )+%%ttT'<V'<'<n&MNNN  	%"D  ""$$$ ! 	% a '')))rX   fixture_func,Callable[..., AsyncGenerator[T_Retval, Any]]r   Iterable[T_Retval]c              #     K    |di |}|                      |j        d           }|V  	 |                      |j        d            |                      |j                   t          d          # t          $ r Y d S w xY w)Nz$Async generator fixture did not stopr\   )r  asendr   r   StopAsyncIteration)r_   r  rN   asyncgenfixturevalues        rV   run_asyncgen_fixturezTestRunner.run_asyncgen_fixture  s      
  <))&))!%!:!:8>4!P!P	G%%hnd;;; %%ho666EFFF	 " 	 	 	DD	s   A/ /
A=<A=,Callable[..., Coroutine[Any, Any, T_Retval]]c                     | j         |fi |S rR   r  )r_   r  rN   s      rV   run_fixturezTestRunner.run_fixture,  s    
 )t(@@@@@rX   	test_func'Callable[..., Coroutine[Any, Any, Any]]c                "     | j         |fi | d S rR   r
  )r_   r  rN   s      rV   run_testzTestRunner.run_test3  s%     	"!)66v66666rX   N)r  r   rP   rY   )rd   re   rf   rg   rh   r  rP   rY   r   )r  rO   rP   rY   )r   r  r   r  rN   r  rP   rG   )r  r   rN   r   rP   r  )r  r  rN   r   rP   rG   )r  r  rN   r   rP   rY   )r   r   r   r`   rl   r  r  r  r  r  r  r\   rX   rV   r  r    s               	) 	) 	) 	)	9 	9 	9 	9! ! ! !* * * *.G G G G$A A A A7 7 7 7 7 7rX   r  c                     e Zd Zedd
            Zedd            Zedd            Zedd            Zedd            Zedd            Z	edd            Z
edd            Zeej        dddd            Zedd            Zedd             Zedd"            Zedd%            Ze	 	 ddd+            Zedd,            Zedd.            Zedd/            Zedd1            Zed&d&dd2dd@            ZeddC            Ze	 dddK            ZeddO            ZeddS            ZeddT            ZeddZ            Zeedd^                        Z eedd`                        Z eddc            Z edddddddddeddn            Z!e	 dddr            Z"edds            Z#eddt            Z$eddu            Z%eddy            Z&edd{            Z'edd}            Z(edd~            Z)edd            Z*d&S )TrioBackendr   1Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]]r   r   rN   r   r  rP   rG   c                &    t          j        |g|R  S rR   )r]   run)rU   r   r   rN   r  s        rV   r  zTrioBackend.run:  s     x$t$$$$rX   rO   c                >    t           j                                        S rR   )r]   r   r   r   s    rV   current_tokenzTrioBackend.current_tokenD  s    }//111rX   rp   c                (    t          j                    S rR   )r]   current_timer   s    rV   r  zTrioBackend.current_timeH  s     """rX   type[BaseException]c                    t           j        S rR   )r]   r   r   s    rV   cancelled_exception_classz%TrioBackend.cancelled_exception_classL  s
    ~rX   rY   c                R   K   t           j                                         d {V  d S rR   )r]   r   rG  r   s    rV   rG  zTrioBackend.checkpointP  s2      m&&(((((((((((rX   c                R   K   t           j                                         d {V  d S rR   )r]   r   checkpoint_if_cancelledr   s    rV   r  z#TrioBackend.checkpoint_if_cancelledT  s2      m3355555555555rX   c                R   K   t           j                                         d {V  d S rR   )r]   r   cancel_shielded_checkpointr   s    rV   r   z&TrioBackend.cancel_shielded_checkpointX  s2      m6688888888888rX   delayc                >   K   t          j        |           d {V  d S rR   )r]   r	  )rU   r!  s     rV   r	  zTrioBackend.sleep\  s.      jrX   Frs   r   rs   r   rw   abc.CancelScopec               $    t          ||          S )Nr#  r8   )rU   rs   r   s      rV   create_cancel_scopezTrioBackend.create_cancel_scope`  s     HV<<<<rX   c                (    t          j                    S rR   )r]   current_effective_deadliner   s    rV   r(  z&TrioBackend.current_effective_deadlinef  s    .000rX   abc.TaskGroupc                    t                      S rR   )r   r   s    rV   create_task_groupzTrioBackend.create_task_groupj  s    {{rX   	abc.Eventc                    t                      S rR   r5   r   s    rV   create_eventzTrioBackend.create_eventn  s    wwrX   r  r4   c                     t          |          S rR   r3   )rU   r  s     rV   create_capacity_limiterz#TrioBackend.create_capacity_limiterr  s    |,,,rX   N&Callable[[Unpack[PosArgsT]], T_Retval]abandon_on_cancellimiterabc.CapacityLimiter | Nonec                   K   dfd}t                                           t          ||t          t          j        |                     d {V S )NrP   rG   c                 l    t          t                    5     cd d d            S # 1 swxY w Y   d S rR   )r,   r  )r   r   tokens   rV   wrapperz6TrioBackend.run_sync_in_worker_thread.<locals>.wrapper~  s    $[%88 # #tT{# # # # # # # # # # # # # # # # # #s   )--)r2  r3  )rP   rG   )r  r  r&   r   r]   r4   )rU   r   r   r2  r3  r8  r7  s    ``   @rV   run_sync_in_worker_threadz%TrioBackend.run_sync_in_worker_threadv  s      	# 	# 	# 	# 	# 	# 	# 	# ))++/-w77
 
 
 
 
 
 
 
 
 	
rX   c                B    t           j                                         d S rR   )r]   r   check_cancelledr   s    rV   r;  zTrioBackend.check_cancelled  s    ((*****rX   r7  c                0    t          j        j        |g|R  S rR   )r]   r   r  rU   r   r   r7  s       rV   run_async_from_threadz!TrioBackend.run_async_from_thread  s      #D040000rX   c                0    t          j        j        |g|R  S rR   )r]   r   r&   r=  s       rV   run_sync_from_threadz TrioBackend.run_sync_from_thread  s      (55555rX   abc.BlockingPortalc                    t                      S rR   )r   r   s    rV   create_blocking_portalz"TrioBackend.create_blocking_portal  s    rX   )cwdenvstart_new_sessioncommand#str | bytes | Sequence[str | bytes]shellr   int | IO[Any] | Noner   r   rD  str | bytes | PathLike | NonerE  Mapping[str, str] | NonerF  r   c          
     2  K   t           j                            ||||||||           d {V }	|	j        rt	          |	j                  nd }
|	j        rt          |	j                  nd }|	j        rt          |	j                  nd }t          |	|
||          S )N)r   r   r   rI  rD  rE  rF  )	r]   r   open_processr   r   r   r   r   r   )rU   rG  rI  r   r   r   rD  rE  rF  r  stdin_streamstdout_streamstderr_streams                rV   rN  zTrioBackend.open_process  s       22/ 3 	
 	
 	
 	
 	
 	
 	
 	
 <C=R(777d@GX,W^<<<TX@GX,W^<<<TXwm]KKKrX   r  r  c                P    t           j                            t          |           d S rR   )r]   r   spawn_system_taskr  )rU   r  s     rV   #setup_process_pool_exit_at_shutdownz/TrioBackend.setup_process_pool_exit_at_shutdown  s!    ''(>HHHHHrX   hoststrportr   local_addressIPSockAddrType | Noner'  c                  K   d|v rt           j        nt           j        }t          j                              |          }|                    t           j        t           j        d           |r|                    |           d {V  	 |                    ||f           d {V  n## t          $ r |
                                  w xY wt          |          S )N:rC  )r:  AF_INET6AF_INETr]   rn  ro  rp  bindconnectr  r  r'  )rU   rU  rW  rX  familyr  s         rV   connect_tcpzTrioBackend.connect_tcp  s       %(4KKV^k((00v163EqIII 	2""=111111111	%%tTl3333333333 	 	 		 K(((s   B% % Cpathstr | bytesabc.UNIXSocketStreamc                   K   t           j                            t          j                  }	 |                    |           d {V  n## t          $ r |                                  w xY wt          |          S rR   )r]   r:  AF_UNIXr_  r  r  r>  )rU   rb  r  s      rV   connect_unixzTrioBackend.connect_unix  s      k((88	%%d++++++++++ 	 	 		  ,,,s   A	 	 A)sockr  abc.SocketListenerc                     t          |          S rR   )rb  rU   rh  s     rV   create_tcp_listenerzTrioBackend.create_tcp_listener  s     &&&rX   c                     t          |          S rR   )rw  rk  s     rV   create_unix_listenerz TrioBackend.create_unix_listener  s    !$'''rX   r`  socket.AddressFamilyremote_address
reuse_portUDPSocket | ConnectedUDPSocketc                f  K   t           j                            |t          j                  }|r+|                    t          j        t          j        d           |r|                    |           d {V  |r*|                    |           d {V  t          |          S t          |          S )N)r`  typerC  )
r]   r:  
SOCK_DGRAMrn  rK  SO_REUSEPORTr^  r_  r  r{  )rU   r`  rX  rp  rq  r  s         rV   create_udp_socketzTrioBackend.create_udp_socket  s       k((V=N(OO 	N""6#4f6I1MMM 	2""=111111111 	*%%n555555555%k222[)))rX   rc  remote_pathabc.UNIXDatagramSocketc                
   K   d S rR   r\   rU   rc  rx  s      rV   create_unix_datagram_socketz'TrioBackend.create_unix_datagram_socket        
 	rX   abc.ConnectedUNIXDatagramSocketc                
   K   d S rR   r\   r{  s      rV   r|  z'TrioBackend.create_unix_datagram_socket  r}  rX   str | bytes | None8abc.UNIXDatagramSocket | abc.ConnectedUNIXDatagramSocketc                   K   t           j                            |          }|r*|                    |           d {V  t	          |          S t          |          S rR   )r]   r:  rg  r_  r  r  )rU   rc  rx  r  s       rV   r|  z'TrioBackend.create_unix_datagram_socket  sg       k44Z@@ 	3%%k222222222.{;;;%k222rX   r   )r`  rt  protorS  bytes | str | Nonestr | int | Noneint | AddressFamilyrt  int | SocketKindr  rS  ]list[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int]]]c               Z   K   t           j                            ||||||           d {V S rR   )r]   r:  getaddrinfo)rU   rU  rW  r`  rt  r  rS  s          rV   r  zTrioBackend.getaddrinfo  s:      & [,,T4ueTTTTTTTTTrX   sockaddrr:   tuple[str, str]c                R   K   t           j                            ||           d {V S rR   )r]   r:  getnameinfo)rU   r  rS  s      rV   r  zTrioBackend.getnameinfo-  s2       [,,Xu=========rX   c                   K   	 t          |           d {V  d S # t          j        $ r,}t                                          |j                  d d }~wt          j        $ r t          d          d w xY w)Nr*  )r#   r]   r/   with_traceback__traceback__r.   rU   rh  r   s      rV   wait_socket_readablez TrioBackend.wait_socket_readable3  s      	>%%%%%%%%%%%' 	T 	T 	T%''66s7HIItS% 	> 	> 	>#N33=	>    A4'A#A4c                   K   	 t          |           d {V  d S # t          j        $ r,}t                                          |j                  d d }~wt          j        $ r t          d          d w xY w)Nr+  )r$   r]   r/   r  r  r.   r  s      rV   wait_socket_writablez TrioBackend.wait_socket_writable<  s      	<%%%%%%%%%%%' 	T 	T 	T%''66s7HIItS% 	< 	< 	<#L11t;	<r  c                    	 t                                           S # t          $ rK t          t          j                                                  }t                               |           |cY S w xY w)Nr  )r  r  LookupErrorr4   r]   	to_threadcurrent_default_thread_limiterr  )rU   r3  s     rV   r  z*TrioBackend.current_default_thread_limiterE  sx    	,00222 	 	 	%FFHH  G &))'222NNN	s    AA0/A0r  r   &ContextManager[AsyncIterator[Signals]]c                     t          |          S rR   )r  )rU   r  s     rV   r  z TrioBackend.open_signal_receiverP  s     w'''rX   r*   c                    t                      }d }|j        r%|j        j        rt          |j        j                  }t	          t          |          ||j        |j                  S rR   )r"   parent_nurseryparent_taskidr*   r   r  )rU   task	parent_ids      rV   get_current_taskzTrioBackend.get_current_taskV  sY    ~~	 	<4#6#B 	<4.:;;I4)TY	BBBrX   list[TaskInfo]c           
        t                      }|sJ t          t          |          d |j        |j                  g}|j        }|r}g }|D ]t}|j        D ]j}|                    t          t          |          t          |j                  |j        |j                             |	                    |j                   ku|}|}|S rR   )
r!   r*   r  r   r  child_nurserieschild_tasksr[  r  extend)rU   	root_task
task_infos	nurseriesnew_nurseriesnurseryr  s          rV   get_running_taskszTrioBackend.get_running_tasks`  s    %''	r)}}dININSST
-	 	&02M$ ? ?#/ ? ?D%% tHHb)<&=&=ty$)   
 "(()=>>>>? &I  	& rX   c                6   K   ddl m}  |             d {V  d S )Nr   )wait_all_tasks_blocked)trio.testingr  )rU   r  s     rV   r  z"TrioBackend.wait_all_tasks_blockedu  s?      777777$$&&&&&&&&&&&rX   r  c                    t          di |S r[   )r  )rU   r  s     rV   create_test_runnerzTrioBackend.create_test_runner{  s    $$G$$$rX   )
r   r  r   r   rN   r   r  r   rP   rG   )rP   rO   r   )rP   r  r   )r!  rp   rP   rY   )rs   rp   r   rw   rP   r$  )rP   r)  )rP   r,  )r  rp   rP   r4   )FN)
r   r1  r   r   r2  rw   r3  r4  rP   rG   )r   r  r   r   r7  rO   rP   rG   )r   r1  r   r   r7  rO   rP   rG   )rP   rA  )rG  rH  rI  rw   r   rJ  r   rJ  r   rJ  rD  rK  rE  rL  rF  rw   rP   r   r  r  rP   rY   rR   )rU  rV  rW  r   rX  rY  rP   r'  )rb  rc  rP   rd  )rh  r  rP   ri  )
r`  ro  rX  rY  rp  rY  rq  rw   rP   rr  )rc  r  rx  rY   rP   ry  )rc  r  rx  rc  rP   r~  )rc  r  rx  r  rP   r  )rU  r  rW  r  r`  r  rt  r  r  r   rS  r   rP   r  )r   )r  r:   rS  r   rP   r  )rh  r  rP   rY   )rP   r4   )r  r   rP   r  )rP   r*   )rP   r  )r  r   rP   r  )+r   r   r   classmethodr  r  r  r  rG  r  r   r	  r
  r  r&  r(  r+  r.  r0  r9  r;  r>  r@  rC  rN  rT  ra  rg  rl  rn  rw  r   r|  r  r  r  r  r  r  r  r  r  r  r\   rX   rV   r  r  9  sU       % % % [% 2 2 2 [2 # # # [#    [ ) ) ) [) 6 6 6 [6 9 9 9 [9       [  "&(5= = = = = [=
 1 1 1 [1    [    [ - - - [- 
 #(.2
 
 
 
 [
$ + + + [+ 1 1 1 [1 6 6 6 [6       [   .2(,"'L L L L L [L6 I I I [I JN) ) ) ) [)" - - - [- ' ' ' [' ( ( ( [( * * * [**    X [
    X [
 	3 	3 	3 [	3  '(!"U U U U U [U( 45> > > > [>
 > > > [> < < < [<    [ ( ( ( [(
 C C C [C    [( ' ' ' ['
 % % % [% % %rX   r  r  )
__future__r   rF  r
  r:  systypescollections.abcr   r   concurrent.futuresr   dataclassesr   	functoolsr   ior	   osr
   r   r   r   r   r   typingr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   trio.from_threadr]   trio.lowlevelr  r   r   r    r!   r"   r#   r$   trio.socketr%   r  trio.to_threadr&    r(   r)   r*   r+   _core._eventloopr,   _core._exceptionsr-   r.   r/   r0   _core._socketsr1   _core._streamsr2   _core._synchronizationr4   BaseCapacityLimiterr6   	BaseEventr7   _core._tasksr9   BaseCancelScoper:   r;   r<   abc._eventloopr=   streams.memoryr>   version_inforA   typing_extensionsrC   rD   exceptiongrouprE   rF   rG   rV  rH   rI   rJ   r   RunVarr   r   ByteReceiveStreamr   ByteSendStreamr   r   
Instrumentr  r  r   r  r  r'  r>  SocketListenerrb  rw  r{  r  r  r  r  r  r  r  backend_classr\   rX   rV   <module>r     s   " " " " " " "    



  3 3 3 3 3 3 3 3 % % % % % % ! ! ! ! ! !                         , , , , , , , ,                                       $         ) ) ) ) ) ) ) ) ) )            5 4 4 4 4 4 # # # # # # H H H H H H H H H H H H 2 2 2 2 2 2            3 2 2 2 2 2 8 8 8 8 8 8 K K K K K K 7 7 7 7 7 7 2 2 2 2 2 2 9 9 9 9 9 9 G G G G G G G G G G ) ) ) ) ) ) 3 3 3 3 3 3w       ++++++w+++++++++11111166666666GCLL7:W\377
<
##IcNN 
	/' /' /' /' /'/ /' /' /'n3A 3A 3A 3A 3A 3A 3A 3Av
 
 
 
 
S' 
 
 
@ e$ $ $ $ $30 $ $ $( e$ $ $ $ $* $ $ $ e. . . . .ck . . .b    TX%8   
 @Fv,@ @ &    

' 
' 
' 
'$    wz*   >3 3 3 3 3#S%5 3 3 3B@4 @4 @4 @4 @4|S%9 @4 @4 @4F) ) ) ) )(#*< ) ) ) - - - - -)3+= - - -0 0 0 0 0 0#- 0 0 0,0 0 0 0 0).93;Q 0 0 0*0 0 0 0 0)#.0F 0 0 0,0 0 0 0 0S3:0 0 08    I   *?
 ?
 ?
 ?
 ?
) ?
 ?
 ?
D 39&9T2U2U  U U U U       @T7 T7 T7 T7 T7 T7 T7 T7nD% D% D% D% D%, D% D% D%N
 rX   