§
    êXÊjå	  ã                  óº   — d dl mZ d dlZd dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZ d dlmZmZmZmZ d dlmZ  ej        d¦  «        Zdd„Zdd„Zedd„¦   «         ZdS )é    )ÚannotationsN)ÚAsyncIterableÚAsyncIteratorÚ	GeneratorÚIterableÚIterator)ÚAbstractAsyncContextManagerÚaclosingÚcontextmanagerÚnullcontext)ÚAsyncGeneratorTypeÚTÚsockúsocket.socket | NoneÚreturnÚboolc                ó’  — | €dn|                       ¦   «         }|�|dk     rdS t          j        dk    st          t          dd¦  «        €+t	          j        |gg g d¦  «        \  }}}t          |¦  «        S t	          j        ¦   «         }|                     |t          j        ¦  «         t          |                     d¦  «        ¦  «        S )zà
    Return whether a socket, as identified by its file descriptor, is readable.
    "A socket is readable" means that the read buffer isn't empty, i.e. that calling
    .recv() on it would immediately return some data.
    Nr   TÚwin32Úpoll)	ÚfilenoÚsysÚplatformÚgetattrÚselectr   r   ÚregisterÚPOLLIN)r   Úsock_fdÚrreadyÚ_Úps        úAC:\Projects\Historical\venv\Lib\site-packages\httpcore2/_utils.pyÚis_socket_readabler"      s«   € ð �lˆdˆd¨¯ª©¬€GØ€˜' Aš+˜+Øˆtõ „|�wÒÐ¥'­&°&¸$Ñ"?Ô"?Ð"GÝ”} g Y°°B¸Ñ:Ô:‰ˆ��1Ý�F‰|Œ|ÐÝŒ‰Œ€AØ‡J‚Jˆw�œÑ&Ô&Ð&Ý�—’�q‘	”	‰?Œ?Ðó    Úiterable_or_iteratorú#AsyncIterable[T] | AsyncIterator[T]ú-AbstractAsyncContextManager[AsyncIterator[T]]c               ó¾   — t          | t          ¦  «        r| n|                      ¦   «         }t          |t          ¦  «        rt	          |¦  «        S t          |¦  «        S ©N)Ú
isinstancer   Ú	__aiter__r   r
   r   ©r$   Úiterators     r!   Úsafe_async_iterater-   2   s`   € õ !+Ð+?ÅÑ OÔ OÐuÐÐÐUi×UsÒUsÑUuÔUuð õ �(Õ.Ñ/Ô/ð "Ý˜Ñ!Ô!Ð!Ý�xÑ Ô Ð r#   úIterable[T] | Iterator[T]ú"Generator[Iterator[T], None, None]c             #  óh   K  — t          | t          ¦  «        r| n|                      ¦   «         }|V — d S r(   )r)   r   Ú__iter__r+   s     r!   Úsafe_iterater2   =   s=   è è € õ (2Ð2FÍÑ'QÔ'QÐvÐ#Ð#ÐWk×WtÒWtÑWvÔWv€HØ
€N€N€N€N€Nr#   )r   r   r   r   )r$   r%   r   r&   )r$   r.   r   r/   )Ú
__future__r   r   Úsocketr   ÚtypingÚcollections.abcr   r   r   r   r   Ú
contextlibr	   r
   r   r   Útypesr   ÚTypeVarr   r"   r-   r2   © r#   r!   ú<module>r;      s  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 
€
€
€
Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ZÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YÐ YØ $Ð $Ð $Ð $Ð $Ð $à€F„N�3ÑÔ€ðð ð ð ð<!ð !ð !ð !ð ðð ð ñ „ðð ð r#   