Ë
    _§1hY  ã                  óÄ  — U d dl mZ d dlZd dlZd dlmZmZmZ d dlm	Z	m
Z
 d dlmZmZmZ ddlmZmZ ddlmZmZmZmZmZ dd	lmZ d
dlmZ erd dlmZ d dlmZm Z   ed«      Z!ejD                  dk  rd dl#m$Z$  ede¬«      Z% ede¬«      Z&eg ee'e%e&f      f   Z(de)d<    G d„ dee%e&f   «      Z*e		 d	 	 	 	 	 dd„«       Z+	 	 	 	 	 	 dd„Z,	 	 	 	 	 	 dd„Z-	 	 	 	 	 	 d d„Z.y)!é    )ÚannotationsN)Ú	AwaitableÚCallableÚ	Generator)ÚcontextmanagerÚsuppress)ÚTYPE_CHECKINGÚGenericÚTypeVaré   )ÚCancelScopeÚ_core)ÚAsyncResourceÚHalfCloseableStreamÚReceiveStreamÚ
SendStreamÚStream)Úaclose_forcefullyé   )Úassert_checkpoints)ÚTracebackType)Ú	ParamSpecÚ	TypeAliasÚArgsT)é   é   )ÚBaseExceptionGroupÚRes1)ÚboundÚRes2r   ÚStreamMakerc                  ó4   — e Zd Zdd„Zdd„Z	 	 	 	 	 	 	 	 dd„Zy)Ú_ForceCloseBothc                ó"   — |\  | _         | _        y ©N©Ú_firstÚ_second)ÚselfÚboths     úY/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/trio/testing/_check_streams.pyÚ__init__z_ForceCloseBoth.__init__#   s   € Ø$(Ñ!ˆŒ�T•\ó    c              ƒ  ó:   K  — | j                   | j                  fS ­wr%   r&   )r)   s    r+   Ú
__aenter__z_ForceCloseBoth.__aenter__&   s   è ø€ Ø�{‰{˜DŸL™LÐ(Ð(ùs   ‚c              ƒ  óÐ   K  — 	 t        | j                  «      ƒ d {  –—†  t        | j                  «      ƒ d {  –—†  y 7 Œ"7 Œ# t        | j                  «      ƒ d {  –—†7   w xY w­wr%   )r   r'   r(   )r)   Úexc_typeÚ	exc_valueÚ	tracebacks       r+   Ú	__aexit__z_ForceCloseBoth.__aexit__)   sK   è ø€ ð	2Ü# D§K¡KÓ0×0Ð0ä# D§L¡LÓ1×1Ñ1ð 1øà1ùÔ# D§L¡LÓ1×1Ò1üsE   ‚A&„A œ?�A ¡A&¹AºA&¿A ÁA&ÁA#ÁAÁA#Á#A&N)r*   útuple[Res1, Res2]ÚreturnÚNone)r6   r5   )r1   ztype[BaseException] | Noner2   zBaseException | Noner3   zTracebackType | Noner6   r7   )Ú__name__Ú
__module__Ú__qualname__r,   r/   r4   © r-   r+   r#   r#   "   s7   „ ó)ó)ð	2à,ð	2ð (ð	2ð (ð		2ð
 
ô	2r-   r#   c              #  óú   K  — d}	 d –— t        d| › �«      ‚# t        $ rH}|sJ d«       ‚t        |j                  «      dk(  sJ ‚t	        |j                  d   | «      sJ ‚Y d }~y d }~w| $ r |rJ d«       ‚Y y w xY w­w)NTzexpected exception: z:caught exceptiongroup, but expected an unwrapped exceptionr   r   z0caught exception, but expected an exceptiongroup)ÚAssertionErrorr   ÚlenÚ
exceptionsÚ
isinstance)Úexpected_excÚwrappedÚ__tracebackhide__Úexcs       r+   Ú_assert_raisesrE   7   s•   è ø€ ð
 Ðð
DÛô Ð3°L°>ÐBÓCÐCøô ò ;ÙÐTÐTÓTˆwä�3—>‘>Ó" aÒ'Ð'Ð'Ü˜#Ÿ.™.¨Ñ+¨\Ô:Ð:Õ:ûØò OÙÐNÐNÓNˆ{‘7ðOüs6   ‚A;† ŠA;˜	A8¡>A$ÁA;Á$A8Á5A;Á7A8Á8A;c           	   ƒ  ó@)  ‡‡‡‡‡‡‡K  — t         | «       ƒ d{  –—† «      4 ƒd{  –—† \  ŠŠt        ‰t        «      sJ ‚t        ‰t        «      sJ ‚d"ˆfd„Šd#d$ˆfd„Šd%ˆfd„Šd&d„Št	        j
                  «       4 ƒd{  –—† }|j                  ‰d«       |j                  ‰d«       ddd«      ƒd{  –—†  d'ˆfd„}t	        j
                  «       4 ƒd{  –—† }|j                  |«       |j                  ‰d«       ddd«      ƒd{  –—†  t	        j
                  «       4 ƒd{  –—† }|j                  ‰t        d	«      «       |j                  ‰d	«       ddd«      ƒd{  –—†  t	        j
                  «       4 ƒd{  –—† }|j                  ‰t        d
«      «       |j                  ‰d
«       ddd«      ƒd{  –—†  t        t        «      5  ‰j                  d«      ƒ d{  –—†  ddd«       t        t        «      5  ‰j                  d«      ƒ d{  –—†  ddd«       t        t        «      5  ‰j                  d«      ƒ d{  –—†  ddd«       t	        j
                  «       4 ƒd{  –—† }|j                  ‰d«        ‰«       ƒ d{  –—† dk(  sJ ‚ddd«      ƒd{  –—†  t	        j
                  «       4 ƒd{  –—† }|j                  ‰d«        ‰d«      ƒ d{  –—† dk(  sJ ‚ddd«      ƒd{  –—†  t        t        j                  d¬«      5  t	        j
                  «       4 ƒd{  –—† }|j                  ‰d«       |j                  ‰d«       ddd«      ƒd{  –—†  ddd«       	 	 	 	 d(ˆfd„}t	        j
                  «       4 ƒd{  –—† }|j                  ||j                  «       |j                  ‰d«       ddd«      ƒd{  –—†  d'ˆfd„}t	        j
                  «       4 ƒd{  –—† }|j                  |«       |j                  ‰‰«       ddd«      ƒd{  –—†  t        t        j                  «      5   ‰d«      ƒ d{  –—†  ddd«       t        t        j                   «      5   ‰d«      ƒ d{  –—†  ddd«        ‰‰«      ƒ d{  –—†   ‰‰«      ƒ d{  –—†   ‰‰«      ƒ d{  –—†  t        t        j                   «      5   ‰d«      ƒ d{  –—†  ddd«       t        t        j                   «      5   ‰d«      ƒ d{  –—†  ddd«       t        t        j                   «      5  t#        «       5  ‰j%                  «       ƒ d{  –—†  ddd«       ddd«        ‰‰«      ƒ d{  –—†   ‰‰«      ƒ d{  –—†  ddd«      ƒd{  –—†  t         | «       ƒ d{  –—† «      4 ƒd{  –—† \  ŠŠd'ˆˆˆfd„}d'ˆˆˆfd„}t	        j
                  «       4 ƒd{  –—† }|j                  |«       |j                  |«       ddd«      ƒd{  –—†  ddd«      ƒd{  –—†  t         | «       ƒ d{  –—† «      4 ƒd{  –—† \  ŠŠt'        ‰«      ƒ d{  –—†  t        t        j                  «      5  	  ‰d«      ƒ d{  –—†  Œ7 �Œ€7 �Œv7 �Œ7 �Œí# 1 ƒd{  –—†7  sw Y   �ŒþxY w7 �Œã7 �Œ³# 1 ƒd{  –—†7  sw Y   �ŒÄxY w7 �Œ¯7 �Œu# 1 ƒd{  –—†7  sw Y   �Œ†xY w7 �Œq7 �Œ7# 1 ƒd{  –—†7  sw Y   �ŒHxY w7 �Œ'# 1 sw Y   �Œ'xY w7 �Œ# 1 sw Y   �ŒxY w7 �Œå# 1 sw Y   �ŒåxY w7 �ŒÐ7 �Œ²7 �Œ # 1 ƒd{  –—†7  sw Y   �Œ±xY w7 �Œœ7 �Œ}7 �Œk# 1 ƒd{  –—†7  sw Y   �Œ|xY w7 �ŒK7 �Œ# 1 ƒd{  –—†7  sw Y   �Œ+xY w# 1 sw Y   �Œ0xY w7 �Œ7 �ŒÖ# 1 ƒd{  –—†7  sw Y   �ŒçxY w7 �ŒÌ7 �Œœ# 1 ƒd{  –—†7  sw Y   �Œ­xY w7 �Œ‹# 1 sw Y   �Œ‹xY w7 �Œi# 1 sw Y   �ŒixY w7 �Œa7 �ŒT7 �ŒG7 �Œ # 1 sw Y   �Œ xY w7 �Œþ# 1 sw Y   �Œþx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 �Œz7 �ŒK# 1 ƒd{  –—†7  sw Y   �Œ\xY w7 �ŒT# 1 ƒd{  –—†7  sw Y   �ŒexY w7 �ŒY7 �ŒO7 �Œ<7 �Œ# 1 sw Y   nxY wt        t        j                   «      5   ‰d«      ƒ d{  –—†7   ddd«       n# 1 sw Y   nxY wddd«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY wt         | «       ƒ d{  –—†7  «      4 ƒd{  –—†7  \  ŠŠt'        ‰«      ƒ d{  –—†7   t        t        j                   «      5   ‰d«      ƒ d{  –—†7   ddd«       n# 1 sw Y   nxY wt)        t        j                  «      5   ‰d«      ƒ d{  –—†7   ddd«       n# 1 sw Y   nxY wddd«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY wt         | «       ƒ d{  –—†7  «      4 ƒd{  –—†7  \  ŠŠt	        j*                  «       5 }|j-                  «        ‰j/                  «       ƒ d{  –—†7   ddd«       n# 1 sw Y   nxY wt	        j*                  «       5 }|j-                  «        ‰j/                  «       ƒ d{  –—†7   ddd«       n# 1 sw Y   nxY wt        t        j                   «      5   ‰d«      ƒ d{  –—†7   ddd«       n# 1 sw Y   nxY wt        t        j                   «      5   ‰d«      ƒ d{  –—†7   ddd«       n# 1 sw Y   nxY wddd«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY wt         | «       ƒ d{  –—†7  «      4 ƒd{  –—†7  \  ŠŠ	 	 	 	 	 	 	 	 d)d„}	t	        j*                  «       5 }|j-                  «        t	        j
                  «       4 ƒd{  –—†7  }|j                  |	‰d«       |j                  |	‰d«       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t	        j
                  «       4 ƒd{  –—†7  }|j                  ‰‰«       |j                  ‰‰«       ddd«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY wddd«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY wt         | «       ƒ d{  –—†7  «      4 ƒd{  –—†7  \  ŠŠd'ˆfd„}
t	        j
                  «       4 ƒd{  –—†7  }|j                  |
«       t	        j0                  «       ƒ d{  –—†7   t'        ‰«      ƒ d{  –—†7   ddd«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY wddd«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY w|��èt         |«       ƒ d{  –—†7  «      4 ƒd{  –—†7  \  ŠŠg Šd*ˆˆfd„}d'ˆˆfd„}t	        j
                  «       4 ƒd{  –—†7  }|j                  ||j                  «       t	        j0                  «       ƒ d{  –—†7   |j                  |«       ddd«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY w‰g d¢k(  sJ ‚ddd«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY wt         |«       ƒ d{  –—†7  «      4 ƒd{  –—†7  \  ŠŠt        t        j                  d¬«      5  t	        j
                  «       4 ƒd{  –—†7  }|j                  ‰j$                  «       |j                  ‰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t        t        j                  d¬«      5  t	        j
                  «       4 ƒd{  –—†7  }|j                  ‰j$                  «       |j                  ‰j2                  d«       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«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY wt         |«       ƒ d{  –—†7  «      4 ƒd{  –—†7  \  ŠŠt        t        j                  d¬«      5  t	        j
                  «       4 ƒd{  –—†7  }|j                  ‰j2                  d«       |j                  ‰j2                  d«       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«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY wt         |«       ƒ d{  –—†7  «      4 ƒd{  –—†7  \  ŠŠd'ˆfd„}d'ˆfd„}t	        j
                  «       4 ƒd{  –—†7  }|j                  |«       |j                  |«       ddd«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY wddd«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY wt         |«       ƒ d{  –—†7  «      4 ƒd{  –—†7  \  ŠŠt'        ‰«      ƒ d{  –—†7   	 t#        «       5  ‰j%                  «       ƒ d{  –—†7   ddd«       n# 1 sw Y   nxY wn# t        j                  $ r Y nw xY wddd«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY wd+d „}t         |«       ƒ d{  –—†7  «      4 ƒd{  –—†7  \  ŠŠt	        j
                  «       4 ƒd{  –—†7  }|j                  |‰«       t        t        j                   «      5  ‰j3                  d!«      ƒ d{  –—†7   ddd«       n# 1 sw Y   nxY wddd«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY wddd«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY wt         |«       ƒ d{  –—†7  «      4 ƒd{  –—†7  \  ŠŠt	        j
                  «       4 ƒd{  –—†7  }|j                  |‰«       t        t        j                   «      5  ‰j%                  «       ƒ d{  –—†7   ddd«       n# 1 sw Y   nxY wddd«      ƒd{  –—†7   n# 1 ƒd{  –—†7  sw Y   nxY wddd«      ƒd{  –—†7   y# 1 ƒd{  –—†7  sw Y   yxY wy­w),aÜ  Perform a number of generic tests on a custom one-way stream
    implementation.

    Args:
      stream_maker: An async (!) function which returns a connected
          (:class:`~trio.abc.SendStream`, :class:`~trio.abc.ReceiveStream`)
          pair.
      clogged_stream_maker: Either None, or an async function similar to
          stream_maker, but with the extra property that the returned stream
          is in a state where ``send_all`` and
          ``wait_send_all_might_not_block`` will block until ``receive_some``
          has been called. This allows for more thorough testing of some edge
          cases, especially around ``wait_send_all_might_not_block``.

    Raises:
      AssertionError: if a test fails.

    Nc              “  óˆ   •K  — t        «       5  ‰j                  | «      ƒ d {  –—† �J ‚	 d d d «       y 7 Œ# 1 sw Y   y xY w­wr%   )r   Úsend_all)ÚdataÚss    €r+   Údo_send_allz)check_one_way_stream.<locals>.do_send_alld   sB   øè ø€ Ü#Ó%ñ 6ØŸZ™Z¨Ó-×-Ð5Ð5Ñ5÷6ð 6Ø-ø÷6ð 6üs#   ƒAŽ6£4¤6«	A´6¶?»Ac              “  ó‚   •K  — t        «       5  ‰j                  | «      ƒ d {  –—† cd d d «       S 7 Œ# 1 sw Y   y xY w­wr%   )r   Úreceive_some)Ú	max_bytesÚrs    €r+   Údo_receive_somez-check_one_way_stream.<locals>.do_receive_someh   s9   øè ø€ Ü#Ó%ñ 7ØŸ^™^¨IÓ6×6÷7ñ 7Ø6ø÷7ð 7üs    ƒ?Ž3£1¤3§
?±3³<¸?c              “  ó<   •K  —  ‰d«      ƒ d {  –—† | k(  sJ ‚y 7 Œ
­w©Nr   r;   )ÚexpectedrP   s    €r+   Úchecked_receive_1z/check_one_way_stream.<locals>.checked_receive_1l   s    øè ø€ Ù(¨Ó+×+¨xÒ7Ð7Ñ7Ð+ús   ƒ��c              “  ó~   K  — t        «       5  | j                  «       ƒ d {  –—†  d d d «       y 7 Œ# 1 sw Y   y xY w­wr%   )r   Úaclose)Úresources    r+   Ú	do_aclosez'check_one_way_stream.<locals>.do_acloseo   s9   è ø€ Ü#Ó%ñ (Ø—o‘oÓ'×'Ð'÷(ð (Ø'ø÷(ð (üs    ‚=�1¡/¢1¦	=¯1±:¶=ó   xc               “  óV   •K  —  ‰ d«      ƒ d {  –—†   ‰ d«      ƒ d {  –—†  y 7 Œ7 Œ­w)Nr-   ó   yr;   ©rK   s   €r+   Úsend_empty_then_yz/check_one_way_stream.<locals>.send_empty_then_yx   s.   øè ø€ ñ ˜cÓ"×"Ð"Ù˜dÓ#×#Ñ#ð #øØ#úó   ƒ)�%�)Ÿ' )§)r[   ó   1ó   2éÿÿÿÿr   g      ø?T©rB   r   c              “  ó    •K  — t        «       5  ‰j                  «       ƒ d {  –—†  d d d «       | j                  «        y 7 Œ# 1 sw Y   ŒxY w­wr%   )r   Úwait_send_all_might_not_blockÚcancel)ÚscoperJ   s    €r+   Ú*simple_check_wait_send_all_might_not_blockzHcheck_one_way_stream.<locals>.simple_check_wait_send_all_might_not_block¦   sD   øè ø€ ô $Ó%ñ 8Ø×5Ñ5Ó7×7Ð7÷8à�L‰L�Nð 8ø÷8ð 8üs+   ƒAŽA¢A £A§AÁ AÁAÁAc               “  ó€   •K  — t        t        j                  «      5  	  ‰ d«      ƒ d {  –—†  Œ7 Œ# 1 sw Y   y xY w­w)Nód   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)rE   r   ÚBrokenResourceErrorr\   s   €r+   Úexpect_broken_stream_on_sendz:check_one_way_stream.<locals>.expect_broken_stream_on_send¶   s>   øè ø€ Ü¤× 9Ñ 9Ó:ñ 2ØÙ% jÓ1×1Ð1ð Ø1ø÷2ð 2üs   ƒ>�2ª0«2²;·>ri   i   r-   c               “  óV   •K  —  ‰d«      ƒ d {  –—†   ‰ ‰«      ƒ d {  –—†  y 7 Œ7 Œ­w)Nr[   r;   )rX   rK   rJ   s   €€€r+   Úsend_then_closez-check_one_way_stream.<locals>.send_then_closeá   s+   øè ø€ Ù˜dÓ#×#Ð#Ù˜A“,×Ñð $øØúr^   c               “  ó¶   •K  — t        j                  «       ƒ d {  –—†   ‰ d«      ƒ d {  –—†   ‰ d«      ƒ d {  –—†   ‰‰«      ƒ d {  –—†  y 7 Œ57 Œ'7 Œ7 Œ­w)Nr[   r-   )r   Úwait_all_tasks_blocked)rT   rX   rO   s   €€€r+   Úreceive_send_then_closez5check_one_way_stream.<locals>.receive_send_then_closeå   sU   øè ø€ ô
 ×.Ñ.Ó0×0Ð0Ù# DÓ)×)Ð)Ù# CÓ(×(Ð(Ù˜A“,×Ñð 1øØ)øØ(øØúsA   ƒA›AœA«A¬A»A¼AÁAÁAÁAÁAÁAs   123c              Ÿ  óŒ   K  — t        t        j                  «      5   | |i |¤Žƒ d {  –—†  d d d «       y 7 Œ# 1 sw Y   y xY w­wr%   )rE   r   Ú	Cancelled)ÚafnÚargsÚkwargss      r+   Úexpect_cancelledz.check_one_way_stream.<locals>.expect_cancelled$  sD   è ø€ ô
  ¤§¡Ó0ñ +Ù˜4Ð* 6Ñ*×*Ð*÷+ð +Ø*ø÷+ð +üs$   ‚Aœ8¨6©8­	A¶8¸A½Ac               “  ó    •K  — t        t        j                  «      5  ‰ j                  d«      ƒ d {  –—†  d d d «       y 7 Œ# 1 sw Y   y xY w­w)Né
   )rE   r   ÚClosedResourceErrorrM   ©rO   s   €r+   Úreceive_expecting_closedz6check_one_way_stream.<locals>.receive_expecting_closed:  sD   øè ø€ Ü¤× 9Ñ 9Ó:ñ )Ø—n‘n RÓ(×(Ð(÷)ð )Ø(ø÷)ð )üs+   ƒA�A²A ³A·	AÁ AÁAÁAc              “  óä   •K  — ‰j                  d«       t        «       5  ‰j                  «       ƒ d {  –—†  d d d «       ‰j                  d«       | j                  «        y 7 Œ.# 1 sw Y   Œ-xY w­w)Núwaiter sleepingúwaiter wokeup)Úappendr   rd   re   )Úcancel_scopeÚrecordrJ   s    €€r+   Úwaiterz$check_one_way_stream.<locals>.waiterH  s^   øè ø€ Ø—‘Ð/Ô0Ü'Ó)ñ <Ø×9Ñ9Ó;×;Ð;÷<à—‘˜oÔ.Ø×#Ñ#Õ%ð <ø÷<ð <üs+   ƒA0ŸA$³A"´A$¸*A0Á"A$Á$A-Á)A0c               “  ó¤   •K  — t        j                  «       ƒ d {  –—†  ‰j                  d«       	 ‰ j                  d«      ƒ d {  –—†  Œ7 Œ07 Œ­w)Núreceiver startingiÂA  )r   ro   r   rM   )rO   r�   s   €€r+   Úreceiverz&check_one_way_stream.<locals>.receiverO  sK   øè ø€ ä×2Ñ2Ó4×4Ð4Ø—‘Ð1Ô2ØØŸ.™.¨Ó/×/Ð/ð ð 5øð 0ús!   ƒA›Aœ*AÁAÁAÁA)r}   r„   r~   c               “  ó´   •K  — 	 t        «       5  ‰ j                  «       ƒ d {  –—†  d d d «       y 7 Œ# 1 sw Y   y xY w# t        j                  $ r Y y w xY w­wr%   )r   rd   r   rj   ©rJ   s   €r+   Úsenderz$check_one_way_stream.<locals>.sender}  s]   øè ø€ ðÜ+Ó-ñ @Ø×=Ñ=Ó?×?Ð?÷@ð @Ø?ø÷@ð @ûä×0Ñ0ò ÙðüsJ   ƒA…
? �3£1¤3¨? °A±3³<¸? »A¼? ¿AÁAÁAÁAc               “  ót   •K  — t        j                  «       ƒ d {  –—†  t        ‰ «      ƒ d {  –—†  y 7 Œ7 Œ­wr%   ©r   ro   r   rz   s   €r+   r…   z&check_one_way_stream.<locals>.receiver„  s0   øè ø€ Ü×2Ñ2Ó4×4Ð4Ü'¨Ó*×*Ñ*ð 5øØ*ús   ƒ8›4œ8®6¯8¶8c              “  ór   K  — t        j                  «       ƒ d {  –—†  t        | «      ƒ d {  –—†  y 7 Œ7 Œ­wr%   rŠ   r‡   s    r+   Ú
close_soonz(check_one_way_stream.<locals>.close_soon—  s/   è ø€ Ü×.Ñ.Ó0×0Ð0Ü# AÓ&×&Ñ&ð 1øØ&ús   ‚7š3›7­5®7µ7s   xyzzy)rI   úbytes | bytearray | memoryviewr6   r7   r%   )rN   z
int | Noner6   úbytes | bytearray)rS   Úbytesr6   r7   )rW   r   r6   r7   ©r6   r7   )rf   r   r6   r7   )rs   z"Callable[ArgsT, Awaitable[object]]rt   z
ArgsT.argsru   zArgsT.kwargsr6   r7   )r€   r   r6   r7   )rJ   r   r6   r7   )r#   r@   r   r   r   Úopen_nurseryÚ
start_soonÚ	bytearrayÚ
memoryviewrE   Ú
ValueErrorrM   Ú	TypeErrorÚBusyResourceErrorr€   rj   ry   r   rd   r   r   r   re   rV   ro   rH   )Ústream_makerÚclogged_stream_makerÚnurseryr]   rg   rk   rm   rp   rf   rv   r{   r‚   r…   rˆ   rŒ   rT   rX   rP   rK   rO   r�   rJ   s                  @@@@@@@r+   Úcheck_one_way_streamr›   J   sK  þè ø€ ô, ¡\£^×3Ó4÷ }ð }¹¸¸AÜ˜!œZÔ(Ð(Ð(Ü˜!œ]Ô+Ð+Ð+õ	6ö	7õ	8ó	(ô
 ×%Ñ%Ó'÷ 	8ð 	8¨7Ø×Ñ˜{¨DÔ1Ø×ÑÐ0°$Ô7÷	8÷ 	8õ	$ô ×%Ñ%Ó'÷ 	8ð 	8¨7Ø×ÑÐ0Ô1Ø×ÑÐ0°$Ô7÷	8÷ 	8ô ×%Ñ%Ó'÷ 	8ð 	8¨7Ø×Ñ˜{¬I°d«OÔ<Ø×ÑÐ0°$Ô7÷	8÷ 	8ô ×%Ñ%Ó'÷ 	8ð 	8¨7Ø×Ñ˜{¬J°tÓ,<Ô=Ø×ÑÐ0°$Ô7÷	8÷ 	8ô
 œJÓ'ñ 	%Ø—.‘. Ó$×$Ð$÷	%äœJÓ'ñ 	$Ø—.‘. Ó#×#Ð#÷	$äœIÓ&ñ 	&Ø—.‘. Ó%×%Ð%÷	&ô ×%Ñ%Ó'÷ 	3ð 	3¨7Ø×Ñ˜{¨DÔ1Ù(Ó*×*¨dÒ2Ð2Ð2÷	3÷ 	3ô ×%Ñ%Ó'÷ 	7ð 	7¨7Ø×Ñ˜{¨DÔ1Ù(¨Ó.×.°$Ò6Ð6Ð6÷	7÷ 	7ô œE×3Ñ3¸TÔBñ 	7Ü×)Ñ)Ó+÷ 7ð 7¨wØ×"Ñ" ?°AÔ6Ø×"Ñ" ?°AÔ6÷7÷ 7÷	7ð	Øð	àõ	ô ×%Ñ%Ó'÷ 	3ð 	3¨7Ø×ÑØ:Ø×$Ñ$ôð ×Ñ˜°Ô2÷	3÷ 	3õ	2ô
 ×%Ñ%Ó'÷ 	-ð 	-¨7Ø×ÑÐ;Ô<Ø×Ñ˜y¨!Ô,÷	-÷ 	-ô
 œE×5Ñ5Ó6ñ 	*Ù˜jÓ)×)Ð)÷	*ô œE×5Ñ5Ó6ñ 	(Ù! $Ó'×'Ð'÷	(ñ ˜‹l×ÐÙ˜‹l×Ðñ ˜‹l×Ðô œE×5Ñ5Ó6ñ 	*Ù˜jÓ)×)Ð)÷	*ô œE×5Ñ5Ó6ñ 	#Ù˜cÓ"×"Ð"÷	#ô œE×5Ñ5Ó6ñ 	8Ü#Ó%ñ 8Ø×5Ñ5Ó7×7Ð7÷8÷	8ñ
 ˜‹l×ÐÙ˜‹l×Ð÷{}÷ }ô~ ¡\£^×3Ó4÷ 8ð 8¹¸¸A÷	÷	ô ×%Ñ%Ó'÷ 	8ð 	8¨7Ø×Ñ˜Ô/Ø×ÑÐ6Ô7÷	8÷ 	8÷!8÷ 8ô( ¡\£^×3Ó4÷ (ð (¹¸¸AÜ Ó"×"Ð"äœE×5Ñ5Ó6ñ 	.ØÙ! *Ó-×-Ð-ð ðo  4ùð }ùð(	8ùð 	8ù÷ 	8÷ 	8ò 	8úð	8ùð 	8ù÷ 	8÷ 	8ò 	8úð	8ùð 	8ù÷ 	8÷ 	8ò 	8úð	8ùð 	8ù÷ 	8÷ 	8ò 	8úð %ù÷	%ñ 	%úð $ù÷	$ñ 	$úð &ù÷	&ñ 	&úð	3ùà*ùð	3ù÷ 	3÷ 	3ò 	3úð	7ùà.ùð	7ù÷ 	7÷ 	7ò 	7úð
7ùð 7ù÷ 7÷ 7ò 7ú÷	7ñ 	7úð"	3ùð 	3ù÷ 	3÷ 	3ò 	3úð	-ùð 	-ù÷ 	-÷ 	-ò 	-úð *ù÷	*ñ 	*úð
 (ù÷	(ñ 	(úð 	ùØùð 	ùð *ù÷	*ñ 	*úð
 #ù÷	#ñ 	#úð 8ù÷8ñ 8ú÷	8ñ 	8úð
 	ùØùð{}ù÷ }÷ }ò }úð~  4ùð 8ùð 	8ùð 	8ù÷ 	8÷ 	8ò 	8úð!8ù÷ 8÷ 8ò 8úð(  4ùð (ùØ"ùð .ù÷	.ð 	.úô œE×5Ñ5Ó6ñ 	(Ù! $Ó'×'Ñ'÷	(÷ 	(ñ 	(ú÷(÷ (÷ (÷ (ó (úô ¡\£^×3Ð3Ó4÷ 
)ñ 
)¹¸¸AÜ Ó"×"Ñ"äœE×5Ñ5Ó6ñ 	&Ù˜fÓ%×%Ñ%÷	&÷ 	&ñ 	&úô ”e×/Ñ/Ó0ñ 	)Ù# CÓ(×(Ñ(÷	)÷ 	)ñ 	)ú÷
)÷ 
)÷ 
)÷ 
)ó 
)úô ¡\£^×3Ð3Ó4÷ (ñ (¹¸¸AÜ×ÑÓ ð 	 EØ�L‰LŒNØ—(‘(“*×Ñ÷	÷ 	ñ 	úô ×ÑÓ ð 	 EØ�L‰LŒNØ—(‘(“*×Ñ÷	÷ 	ñ 	úô œE×5Ñ5Ó6ñ 	&Ù˜fÓ%×%Ñ%÷	&÷ 	&ñ 	&úô œE×5Ñ5Ó6ñ 	(Ù! $Ó'×'Ñ'÷	(÷ 	(ñ 	(ú÷(÷ (÷ (÷ (ó (úô0 ¡\£^×3Ð3Ó4÷ -ñ -¹¸¸Að	+Ø3ð	+àð	+ð #ð	+ð ó		+ô ×ÑÓ ð 	I EØ�L‰LŒNÜ×)Ñ)Ó+÷ Iñ I¨wØ×"Ñ"Ð#3°[À$ÔGØ×"Ñ"Ð#3°_ÀaÔH÷I÷ I÷ I÷ Ió Iú÷	I÷ 	Iñ 	Iúô ×%Ñ%Ó'÷ 	-ñ 	-¨7Ø×Ñ˜y¨!Ô,Ø×Ñ˜y¨!Ô,÷	-÷ 	-÷ 	-÷ 	-ó 	-ú÷!-÷ -÷ -÷ -ó -úô, ¡\£^×3Ð3Ó4÷ 	'ñ 	'¹¸¸Aõ	)ô ×%Ñ%Ó'÷ 	'ñ 	'¨7Ø×ÑÐ7Ô8Ü×.Ñ.Ó0×0Ñ0Ü# AÓ&×&Ñ&÷	'÷ 	'÷ 	'÷ 	'ó 	'ú÷	'÷ 	'÷ 	'÷ 	'ó 	'úð Ñ'Ü"Ñ)=Ó)?×#?Ð#?Ó@÷ 	ñ 	ÁFÀQÈØ "ˆFö&ö0ô ×)Ñ)Ó+÷ -ñ -¨wØ×"Ñ" 6¨7×+?Ñ+?Ô@Ü×2Ñ2Ó4×4Ñ4Ø×"Ñ" 8Ô,÷-÷ -÷ -÷ -ó -úð
 ò ò ð ð ÷-	÷ 	÷ 	÷ 	ó 	úô8 #Ñ)=Ó)?×#?Ð#?Ó@÷ 	;ñ 	;ÁFÀQÈä¤× 7Ñ 7ÀÔFñ HÜ ×-Ñ-Ó/÷ Hñ H°7Ø×&Ñ& q×'FÑ'FÔGØ×&Ñ& q×'FÑ'FÔG÷H÷ H÷ H÷ Hó Hú÷H÷ Hñ Húô  ¤× 7Ñ 7ÀÔFñ ;Ü ×-Ñ-Ó/÷ ;ñ ;°7Ø×&Ñ& q×'FÑ'FÔGØ×&Ñ& q§z¡z°6Ô:÷;÷ ;÷ ;÷ ;ó ;ú÷;÷ ;ñ ;ú÷	;÷ 	;÷ 	;÷ 	;ó 	;úô  #Ñ)=Ó)?×#?Ð#?Ó@÷ 	;ñ 	;ÁFÀQÈô  ¤× 7Ñ 7ÀÔFñ ;Ü ×-Ñ-Ó/÷ ;ñ ;°7Ø×&Ñ& q§z¡z°6Ô:Ø×&Ñ& q§z¡z°6Ô:÷;÷ ;÷ ;÷ ;ó ;ú÷;÷ ;ñ ;ú÷	;÷ 	;÷ 	;÷ 	;ó 	;úô #Ñ)=Ó)?×#?Ð#?Ó@÷ 	-ñ 	-ÁFÀQÈõõ+ô ×)Ñ)Ó+÷ -ñ -¨wØ×"Ñ" 6Ô*Ø×"Ñ" 8Ô,÷-÷ -÷ -÷ -ó -ú÷	-÷ 	-÷ 	-÷ 	-ó 	-úô$ #Ñ)=Ó)?×#?Ð#?Ó@÷ 	ñ 	ÁFÀQÈÜ# AÓ&×&Ñ&ðÜ'Ó)ñ <Ø×9Ñ9Ó;×;Ñ;÷<÷ <ñ <üä×,Ñ,ò Ùðú÷	÷ 	÷ 	÷ 	ó 	úó	'ô #Ñ)=Ó)?×#?Ð#?Ó@÷ 	/ñ 	/ÁFÀQÈÜ×)Ñ)Ó+÷ /ñ /¨wØ×"Ñ" :¨qÔ1Ü#¤E×$=Ñ$=Ó>ñ /ØŸ*™* XÓ.×.Ñ.÷/÷ /ñ /ú÷/÷ /÷ /÷ /ó /ú÷	/÷ 	/÷ 	/÷ 	/ó 	/úô #Ñ)=Ó)?×#?Ð#?Ó@÷ 	<ñ 	<ÁFÀQÈÜ×)Ñ)Ó+÷ <ñ <¨wØ×"Ñ" :¨qÔ1Ü#¤E×$=Ñ$=Ó>ñ <Ø×9Ñ9Ó;×;Ñ;÷<÷ <ñ <ú÷<÷ <÷ <÷ <ó <ú÷	<÷ 	<÷ 	<÷ 	<ó 	<úð{ (ùsº  ‰AR™ZšAR¦Z§ARªAaÂZÂaÂ%Z%Â*aÂ5Z"Â6"aÃZ;ÃaÃ$[Ä aÄZ>ÄaÄ([Ä)aÄ,.[ÅaÅ%[Å&aÆ[3ÆaÆ.[9Æ4aÆ?[6Ç aÇ\Ç(\Ç)\Ç-aÈ\"È\È\"ÈaÈ5\2É
\/É\2É aÉ/\?É0aÉ3]Ê]Ê	]ÊaÊ%]Ê&aË]ËaË]'Ë$]!Ë%	]'Ë.aË9]$Ë:aÌ^Ì2]=
Ì3^Ì6%^Í^Í&^ Í'^Í+*aÎ^&ÎaÎ/^,ÏaÏ^)Ï"aÏ6_Ï7aÏ:$_ÐaÐ)_Ð*aÑ_!Ñ_Ñ_!Ñ!aÑ9_1Ò_.Ò_1Ò
aÒ_>ÒaÒ-`Ò.aÒ=`Ò>aÓ`
Ó'`Ó(`
Ó,!aÔ`Ô`Ô`Ô!aÔ?`7Õ
`*Õ`'
Õ`*Õ#`7Õ+aÕ>aÕ?aÖaÖaÖARÖa
ÖARÖ2a#Ö3ARÖ?a&× AR×,b×/a)×0b×3#a/ØbØ!a,Ø"bØ&ARØ1bØ2ARÙbÙARÙb!ÙARÙdÙ(b$Ù)dÚb*Úb'Úb*ÚARÚARÚaÚ"aÚ%Z8	Ú+Z.Ú,Z8	Ú3	aÚ>aÛ[	Û[
Û[	Û	aÛaÛ[0	Û#[&Û$[0	Û+	aÛ6aÛ9\	Û?\Ü \	ÜaÜ\Ü\	ÜaÜ\"Ü"\,	Ü'aÜ/\2Ü2\<	Ü7	aÝ]ÝaÝ]	Ý]Ý]	Ý	aÝ!]'Ý$aÝ']:	Ý-]0Ý.]:	Ý5aÝ=^Þ ^Þ^Þ	^Þ
^Þ^Þ^#	Þ	aÞ)aÞ,^?	Þ2^5Þ3^?	Þ:	aßaß_	ß_ß_	ßaß_!ß!_+	ß&aß._1ß1_;	ß6	aàaàaà`
à
`	àaà`à`$	àaà'`*à*`4à/`7à7a	à<	aáaá
ARáa áaáa á	ARá&ARá)bá,bá/b	á5a8á6b	á=bâARâbâbâbâ	ARâ!ARâ$dâ'b*â*b3	â/ dãc*ãcãc*ã!	dã*c3	ã/dã6ARädäARädädädäARä,d/ä-ARä:d=ä;ARä?g)åeåg)å0få<e?å=fæ	g)æf	æ g)æ0gæ<f?æ=gç	g)çg	çg)çARç"g%ç#ARç)g;ç/g2ç0g;ç7ARèhèARèhèARè mè8$i+éiéi+é"	mé+i4	é0mê$j>ê/j2ê0j>ê5	mê>k	ë më#k>ë/k2ë0k>ë5	më>l	ì mì#l>ì/l2ì0l>ì5	mì>m	ímí
ARímíARím.í"m%í#m.í*ARî nîARînîARî$sî7)p<ï o#
ï!p<ï%'pðp<ðpðp<ðp0ð$p'ð%p0ð,p<ð3	sð<q	ñsñ q#ñ!sñ%%rò
sòròsòr.	ò"r%ò#r.	ò*sò1ARò<r?ò=ARósó	só
sóARó's*ó(ARó5s8ó6ARó:"vôtôvô!)u6õ
uõu6õu!õu6õ$võ/u2õ0võ6v	õ<u?õ=v	övöARövöARöv/ö#v&ö$v/ö+AR÷w÷AR÷w÷AR÷,zøxøzø4y%ø<x?ø=y%ùzùy!ùzù%y7	ù+y.ù,y7	ù3zúARúzúARúz'úzúz'ú#ARú9z<ú:ARû{
ûARûA@;û+}0ü|
ü}0ü	7}ý }0ý}ý}0ý}$ý}ý}$ý }0ý'	A@;ý0}9	ý5"A@;þA@þ0~3
þ1A@þ58?ÿ-A@ÿ8;ÿ9A@ÿ?A@Á@A@Á@A@Á@A@Á@	A@;Á@A@&	Á@"A@;Á@)ARÁ@4A@7Á@5ARÁ@;AAÁAAAÁAAAÁA	ARÁAAA"ÁA ARÁA-AA0ÁA.ARÁA2AD6ÁBADÁB*AB-
ÁB+ADÁB/9AC:ÁC(ADÁC3AC6ÁC4ADÁC:ADÁD ADÁDADÁDADÁD	AD6ÁDAD!	ÁDAD6ÁD$ARÁD/AD2ÁD0ARÁD6AEÁD<AD?ÁD=AEÁEARÁEAEÁEARÁE(AE+ÁE)ARÁE-(AG6ÁFAFÁFAG6ÁF#AGÁF=AG6ÁGAGÁG	AG6ÁGAG!	ÁGAGÁGAG!	ÁGAG6ÁG$ARÁG/AG2ÁG0ARÁG6AHÁG<AG?ÁG=AHÁHARÁHAHÁHARÁH(AH+ÁH)ARÁH-AJ+ÁH?AIÁI AJ+ÁI
AJ ÁIAI3ÁI$AI'ÁI%AI3ÁI*	AJ ÁI3AI<	ÁI8AJ ÁI?AJ+ÁJ AJÁJAJ+ÁJAJÁJAJ+ÁJARÁJ$AJ'ÁJ%ARÁJ+AJ=ÁJ1AJ4ÁJ2AJ=ÁJ9ARÁKAKÁKARÁK!AK$ÁK"ARÁK&ANÁLALÁLANÁL,AM5ÁL3AMÁMAM
ÁM	AMÁM	AM5ÁMAM ÁMAM5ÁM#ANÁM.AM1ÁM/ANÁM5AN	ÁM;AM>ÁM<AN	ÁNANÁN
ARÁNANÁNARÁNAN.ÁN"AN%ÁN#AN.ÁN*ARÁO AOÁOARÁOAOÁOARÁOARÁO/AO2ÁO0ARÁO4,AQ!ÁP AQÁP4AP7
ÁP5AQÁP:	AQ!ÁQAQÁQAQ!ÁQARÁQAQÁQARÁQ!AQ3	ÁQ'AQ*ÁQ(AQ3	ÁQ/ARÁQ6ARÁRARÁRARÁRARÁRARÁRARÁRARc           
   ƒ  óV  ‡ ‡‡‡K  — t        ‰ ‰«      ƒ d{  –—†  dˆ fd„}‰�dˆfd„}nd}t        ||«      ƒ d{  –—†  t         ‰ «       ƒ d{  –—† «      4 ƒd{  –—† \  }Št        |t        «      sJ ‚t        ‰t        «      sJ ‚d}dŠt	        j
                  d«      }|j                  d|z  «      }|j                  |d«      }	 	 	 	 	 	 	 	 dˆfd	„}	dˆfd
„}
t        j                  «       4 ƒd{  –—† }|j                  |	||d«       |j                  |	‰|ddd…   d«       |j                  |
||ddd…   d«       |j                  |
‰|d«       ddd«      ƒd{  –—†  dˆfd„}t        j                  «       4 ƒd{  –—† }|j                  |«       |j                  |j                  «       ddd«      ƒd{  –—†  ddd«      ƒd{  –—†  y7 �Œ¾7 �Œœ7 �Œ‹7 �Œ�7 Œì7 Œ‚# 1 ƒd{  –—†7  sw Y   Œ’xY w7 Œv7 Œ<# 1 ƒd{  –—†7  sw Y   ŒLxY w7 ŒC# 1 ƒd{  –—†7  sw Y   yxY w­w)u¸  Perform a number of generic tests on a custom two-way stream
    implementation.

    This is similar to :func:`check_one_way_stream`, except that the maker
    functions are expected to return objects implementing the
    :class:`~trio.abc.Stream` interface.

    This function tests a *superset* of what :func:`check_one_way_stream`
    checks â€“ if you call this, then you don't need to also call
    :func:`check_one_way_stream`.

    Nc               “  ó:   •K  —  ‰ «       ƒ d {  –—† d d d…   S 7 Œ
­w©Nra   r;   )r˜   s   €r+   Úflipped_stream_makerz2check_two_way_stream.<locals>.flipped_stream_makerº  s   øè ø€ Ù"“n×$¡d¨ dÑ+Ð+Ð$úó   ƒŽ�c               “  ó:   •K  —  ‰ «       ƒ d {  –—† d d d…   S 7 Œ
­wrž   r;   )r™   s   €r+   Úflipped_clogged_stream_makerz:check_two_way_stream.<locals>.flipped_clogged_stream_makerÁ  s   øè ø€ Ù.Ó0×0±$°B°$Ñ7Ð7Ð0úr    i   i @  r   é   Úlittlec              “  óÄ   •K  — t        j                  |«      }t        |«      }|r7|j                  d‰«      }| j	                  |d | «      ƒ d {  –—†  ||d  }|rŒ6y y 7 Œ­wrR   )ÚrandomÚRandomr”   ÚrandintrH   )rJ   rI   ÚseedrO   ÚmÚ
chunk_sizeÚCHUNK_SIZE_MAXs         €r+   rˆ   z$check_two_way_stream.<locals>.senderÔ  s_   øè ø€ ô
 —‘˜dÓ#ˆAÜ˜4Ó ˆAÙØŸY™Y q¨.Ó9�
Ø—j‘j  ; J Ó0×0Ð0Ø�j�k�N�ô à0ús   ƒAA ÁAÁA ÁA c              “  ó   •K  — t        j                  |«      }t        «       }t        |«      t        |«      k  rJ| j	                  |j                  d‰«      «      ƒ d {  –—† }|sJ ‚||z  }t        |«      t        |«      k  rŒJ||k(  sJ ‚y 7 Œ-­wrR   )r¦   r§   r“   r>   rM   r¨   )rJ   rI   r©   rO   ÚgotÚchunkr¬   s         €r+   r…   z&check_two_way_stream.<locals>.receiverà  s~   øè ø€ Ü—‘˜dÓ#ˆAÜ“+ˆCÜ�c“(œS ›YÒ&ØŸn™n¨Q¯Y©Y°q¸.Ó-IÓJ×J�Ù��uØ�u‘�ô �c“(œS ›YÓ&ð ˜$’;Ð‘;ð Kús   ƒABÁBÁ$BÂ	Bra   r   r   r   c               “  ó‚   •K  — ‰ j                  d«      ƒ d {  –—† dk(  sJ ‚‰ j                  «       ƒ d {  –—†  y 7 Œ"7 Œ­w)Nrx   r-   )rM   rV   )Ús2s   €r+   Úexpect_receive_some_emptyz7check_two_way_stream.<locals>.expect_receive_some_emptyï  s9   øè ø€ ØŸ™¨Ó,×,°Ò3Ð3Ð3Ø—)‘)“+×Ñð -øØús   ƒ?˜;™?µ=¶?½?)r6   ztuple[Stream, Stream])rJ   r   rI   r�   r©   Úintr6   r7   )rJ   r   rI   rŽ   r©   r³   r6   r7   r�   )r›   r#   r@   r   r¦   r§   ÚgetrandbitsÚto_bytesr   r‘   r’   rV   )r˜   r™   rŸ   r¢   Ús1ÚDUPLEX_TEST_SIZErO   ÚiÚ	test_datarˆ   r…   rš   r²   r¬   r±   s   ``           @@r+   Úcheck_two_way_streamrº   ¨  s6  ûè ø€ ô  ˜|Ð-AÓ
B×BÐBõ,ð
 Ð'ö	8ð (,Ð$Ü
Ð3Ð5QÓ
R×RÐRä¡\£^×3Ó4÷ -*ð -*¹¸¸RÜ˜"œfÔ%Ð%Ð%Ü˜"œfÔ%Ð%Ð%ð !ÐØˆä�M‰M˜!ÓˆØ�M‰M˜!Ð.Ñ.Ó/ˆØ—J‘JÐ/°Ó:ˆ	ð
	#Øð
	#à0ð
	#ð ð
	#ð õ	
	#õ	ô ×%Ñ%Ó'÷ 	;ð 	;¨7Ø×Ñ˜v r¨9°aÔ8Ø×Ñ˜v r¨9±T°r°T©?¸AÔ>Ø×Ñ˜x¨¨Y±t¸°t©_¸aÔ@Ø×Ñ˜x¨¨Y¸Ô:÷		;÷ 	;õ	ô ×%Ñ%Ó'÷ 	*ð 	*¨7Ø×ÑÐ8Ô9Ø×Ñ˜rŸy™yÔ)÷	*÷ 	*÷W-*÷ -*ð -*ð! Cùð Sùà3ùð -*ùðB	;øð 	;ø÷ 	;÷ 	;ñ 	;úð	*øð 	*ø÷ 	*÷ 	*ñ 	*úðW-*ø÷ -*÷ -*ñ -*üs  †H)–G—$H)»G¼H)ÁGÁH)ÁGÁH)Á BHÃ3G Ã4HÃ7AG$ÅHÅG"Å "HÆG9ÆHÆ-G=Æ3HÆ>G;Æ?HÇH)ÇHÇH)ÇH)ÇH)ÇH)Ç HÇ"HÇ$G6	Ç*G-Ç+G6	Ç2HÇ;HÇ=H	ÈHÈH	ÈHÈH)ÈH&ÈHÈH&È"H)c           	   ƒ  ó‚  K  — t        | |«      ƒ d{  –—†  t         | «       ƒ d{  –—† «      4 ƒd{  –—† \  }}t        |t        «      sJ ‚t        |t        «      sJ ‚dd„}d	d„}t	        j
                  «       4 ƒd{  –—† }|j                  ||«       |j                  ||«       ddd«      ƒd{  –—†  t        t        j                  «      5  |j                  d«      ƒ d{  –—†  ddd«       t        «       5  |j                  «       ƒ d{  –—†  ddd«       t	        j
                  «       4 ƒd{  –—† }|j                  ||«       |j                  ||«       ddd«      ƒd{  –—†  ddd«      ƒd{  –—†  |��°t         |«       ƒ d{  –—† «      4 ƒd{  –—† \  }}t        t        j                  d¬«      5  t	        j
                  «       4 ƒd{  –—† }|j                  |j                  d«       t	        j                  «       ƒ d{  –—†  |j                  |j                  «       ddd«      ƒd{  –—†  ddd«       ddd«      ƒd{  –—†  t         |«       ƒ d{  –—† «      4 ƒd{  –—† \  }}t        t        j                  d¬«      5  t	        j
                  «       4 ƒd{  –—† }|j                  |j                  «       t	        j                  «       ƒ d{  –—†  |j                  |j                  «       ddd«      ƒd{  –—†  ddd«       ddd«      ƒd{  –—†  yy7 �Œ!7 �Œ7 �Œ7 �Œ½7 �ŒŒ# 1 ƒd{  –—†7  sw Y   �Œ�xY w7 �Œr# 1 sw Y   �ŒrxY w7 �ŒW# 1 sw Y   �ŒWxY w7 �ŒB7 �Œ# 1 ƒd{  –—†7  sw Y   �Œ"xY w7 �Œ# 1 ƒd{  –—†7  sw Y   �Œ+xY w7 �Œ7 �Œ7 �ŒÙ7 �Œ¤7 �Œ|# 1 ƒd{  –—†7  sw Y   �Œ�xY w# 1 sw Y   �Œ’xY w7 �ŒŠ# 1 ƒd{  –—†7  sw Y   �Œ›xY w7 �Œ�7 �Œ…7 �ŒL7 �Œ7 Œï# 1 ƒd{  –—†7  sw Y   ŒÿxY w# 1 sw Y   �ŒxY w7 Œû# 1 ƒd{  –—†7  sw Y   yxY w­w)
uÎ  Perform a number of generic tests on a custom half-closeable stream
    implementation.

    This is similar to :func:`check_two_way_stream`, except that the maker
    functions are expected to return objects that implement the
    :class:`~trio.abc.HalfCloseableStream` interface.

    This function tests a *superset* of what :func:`check_two_way_stream`
    checks â€“ if you call this, then you don't need to also call
    :func:`check_two_way_stream`.

    Nc              “  ó´   K  — | j                  d«      ƒ d {  –—†  t        «       5  | j                  «       ƒ d {  –—†  d d d «       y 7 Œ07 Œ# 1 sw Y   y xY w­w)NrY   )rH   r   Úsend_eofr‡   s    r+   Úsend_x_then_eofz4check_half_closeable_stream.<locals>.send_x_then_eof  sP   è ø€ Ø—*‘*˜TÓ"×"Ð"Ü#Ó%ñ #Ø—j‘j“l×"Ð"÷#ð #ð #øà"ø÷#ð #üs5   ‚A—A˜A¦AºA
»A¿
AÁ
AÁAÁAc              “  óÈ   K  — t        j                  «       ƒ d {  –—†  | j                  d«      ƒ d {  –—† dk(  sJ ‚| j                  d«      ƒ d {  –—† dk(  sJ ‚y 7 ŒA7 Œ*7 Œ­w)Nrx   rY   r-   )r   ro   rM   rz   s    r+   Úexpect_x_then_eofz6check_half_closeable_stream.<locals>.expect_x_then_eof  sY   è ø€ Ü×.Ñ.Ó0×0Ð0ØŸ™¨Ó+×+¨tÒ3Ð3Ð3ØŸ™¨Ó+×+¨sÒ2Ð2Ñ2ð 1øØ+øØ+ús1   ‚A"šA›A"³A´A"ÁA ÁA"ÁA"Á A"r[   Trb   rY   )rJ   r   r6   r7   )rO   r   r6   r7   )rº   r#   r@   r   r   r‘   r’   rE   ry   rH   r   r½   r—   ro   rd   )r˜   r™   r¶   r±   r¾   rÀ   rš   s          r+   Úcheck_half_closeable_streamrÁ   ø  s±  è ø€ ô  ˜|Ð-AÓ
B×BÐBä¡\£^×3Ó4÷ 6ð 6¹¸¸RÜ˜"Ô1Ô2Ð2Ð2Ü˜"Ô1Ô2Ð2Ð2ó	#ó
	3ô
 ×%Ñ%Ó'÷ 	6ð 	6¨7Ø×Ñ˜°Ô3Ø×ÑÐ0°"Ô5÷	6÷ 	6ô
 œE×5Ñ5Ó6ñ 	$Ø—+‘+˜dÓ#×#Ð#÷	$ô  Ó!ñ 	 Ø—+‘+“-×Ð÷	 ô ×%Ñ%Ó'÷ 	6ð 	6¨7Ø×Ñ˜°Ô3Ø×ÑÐ0°"Ô5÷	6÷ 	6÷76÷ 6ð> Ñ'Ü"Ñ)=Ó)?×#?Ó@÷ 	4ð 	4ÁHÀRÈä¤× 7Ñ 7ÀÔFñ 4Ü ×-Ñ-Ó/÷ 4ð 4°7Ø×&Ñ& r§{¡{°DÔ9Ü×6Ñ6Ó8×8Ð8Ø×&Ñ& r§{¡{Ô3÷4÷ 4÷4÷	4÷ 	4ô #Ñ)=Ó)?×#?Ó@÷ 	4ð 	4ÁHÀRÈô  ¤× 7Ñ 7ÀÔFñ 4Ü ×-Ñ-Ó/÷ 4ð 4°7Ø×&Ñ& r×'GÑ'GÔHÜ×6Ñ6Ó8×8Ð8Ø×&Ñ& r§{¡{Ô3÷4÷ 4÷4÷	4÷ 	4ð 	4ð (ðC Cùà3ùð 6ùð	6ùð 	6ù÷ 	6÷ 	6ò 	6úð $ù÷	$ñ 	$úð
  ù÷	 ñ 	 úð	6ùð 	6ù÷ 	6÷ 	6ò 	6úð76ù÷ 6÷ 6ò 6úð@ $@ùð 	4ùð4ùà8ùð4ù÷ 4÷ 4ò 4ú÷4ñ 4úð	4ù÷ 	4÷ 	4ò 	4úð $@ùð 	4ùð4ùà8ùð4ø÷ 4÷ 4ñ 4ú÷4ñ 4úð	4ø÷ 	4÷ 	4ñ 	4üsÏ  ‚P?’L3“P?¦L6§P?³L9´P?·ANÁ?L<Â NÂ%MÂ(NÂ3L?Â4NÃMÃ&MÃ'MÃ+NÃ=M+ÄM(ÄM+Ä NÄ6M8Ä7NÄ:%M>ÅNÅ*M;Å+NÅ/P?Å:NÅ;P?ÆN-ÆP?ÆN0ÆP?Æ"O"ÇOÇN3
ÇOÇ4N<ÈN6
ÈN<È2OÈ=N9È>OÉO"É
P?ÉOÉP?É)O8É*P?É6O;É7P?É:P*ÊPÊ2O>
Ê3PÊ63PË)P
Ë*PÌ	PÌPÌPÌP*Ì!P?Ì,P(Ì-P?Ì6P?Ì9P?Ì<NÌ?NÍM	ÍMÍ	M	ÍNÍMÍM%	Í NÍ(M+Í+M5	Í0	NÍ;NÍ>N	ÎNÎN	ÎNÎP?ÎN*ÎN ÎN*Î%	P?Î0P?Î3OÎ6N<Î9OÎ<OÏOÏOÏ
OÏO	ÏO"ÏP?Ï"O5Ï(O+Ï)O5Ï0	P?Ï;P?Ï>PÐPÐPÐPÐPÐPÐPÐP%	Ð P*Ð(P?Ð*P<Ð0P3Ð1P<Ð8P?)F)rA   ztype[BaseException]rB   Úboolr6   zGenerator[None, None, None])r˜   z&StreamMaker[SendStream, ReceiveStream]r™   z-StreamMaker[SendStream, ReceiveStream] | Noner6   r7   )r˜   zStreamMaker[Stream, Stream]r™   z"StreamMaker[Stream, Stream] | Noner6   r7   )r˜   z5StreamMaker[HalfCloseableStream, HalfCloseableStream]r™   z<StreamMaker[HalfCloseableStream, HalfCloseableStream] | Noner6   r7   )/Ú
__future__r   r¦   ÚsysÚcollections.abcr   r   r   Ú
contextlibr   r   Útypingr	   r
   r   Ú r   r   Ú_abcr   r   r   r   r   Ú_highlevel_genericr   Ú_checkpointsr   Útypesr   Útyping_extensionsr   r   r   Úversion_infoÚexceptiongroupr   r   r    Útupler!   Ú__annotations__r#   rE   r›   rº   rÁ   r;   r-   r+   ú<module>rÒ      sH  ðæ "ã Û 
ß :Ñ :ß /÷ñ ÷ "ß XÕ XÝ 2Ý ,áÝ#ç6á�gÓ€Eà×Ñ�gÒÝ1áˆv˜]Ô+€Ùˆv˜]Ô+€Ø! " i°°d¸D°jÑ0AÑ&BÐ"BÑC€ˆYÓ Cô2�g˜d D˜jÑ)ô 2ð* ð ðDØ%ðDàðDð !òDó ðDð$[<Ø8ð[<àGð[<ð 
ó[<ð|
M*Ø-ðM*à<ðM*ð 
óM*ð`A4ØGðA4àVðA4ð 
ôA4r-   