
    Wh                         d dl Z d dlZd dlZd dlZd dlmZ d dlmZ ddlmZ ddl	m
Z
mZmZ ddlmZ ddlmZmZmZmZmZmZ dd	lmZ dd
lmZmZmZmZ ddlmZmZm Z m!Z!m"Z"m#Z# ddl$m%Z% ddl&m'Z' ddl(m)Z)m*Z*m+Z+m,Z, ddl-m.Z.m/Z/ ddl0m1Z1 ddl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> ddl?m@Z@mAZAmBZBmCZCmDZDmEZE  ejF        dd          ZG ejF        dd          ZH G d d          ZI eI            ZJ eDeK          ZLde ZMdN                    d  ejO                    D                       ZP G d dejQ                  ZR G d d e,          ZS G d! d"e*          ZT G d# d$          ZU G d% deU          ZV G d& deU          ZWdS )'    N)contextmanager)TracebackType   )__version__)Auth	BasicAuthFunctionAuth)asynccontextmanager)DEFAULT_LIMITSDEFAULT_MAX_REDIRECTSDEFAULT_TIMEOUT_CONFIGLimitsProxyTimeout)SUPPORTED_DECODERS)
InvalidURLRemoteProtocolErrorTooManyRedirectsrequest_context)URLCookiesHeadersQueryParamsRequestResponse)codes)ASGITransport)AsyncBaseTransportAsyncByteStreamBaseTransportSyncByteStream)AsyncHTTPTransportHTTPTransport)WSGITransport)	AuthTypes	CertTypesCookieTypesHeaderTypesProxiesTypesQueryParamTypesRequestContentRequestDataRequestFilesTimeoutTypesURLTypesVerifyTypes)	NetRCInfoTimer
URLPatternget_environment_proxies
get_loggersame_originTClient)boundUAsyncClientc                       e Zd ZdZdS )UseClientDefaulta<  
    For some parameters such as `auth=...` and `timeout=...` we need to be able
    to indicate the default "unset" state, in a way that is distinctly different
    to using `None`.

    The default "unset" state indicates that whatever default is set on the
    client should be used. This is different to setting `None`, which
    explicitly disables the parameter, possibly overriding a client default.

    For example we use `timeout=USE_CLIENT_DEFAULT` in the `request()` signature.
    Omitting the `timeout` parameter will send a request using whatever default
    timeout has been configured on the client. Including `timeout=None` will
    ensure no timeout is used.

    Note that user code shouldn't need to use the `USE_CLIENT_DEFAULT` constant,
    but it is used internally when a parameter is not included.
    N)__name__
__module____qualname____doc__     S/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/httpx/_client.pyr=   r=   B   s         $ 	DrC   r=   zpython-httpx/z, c                     g | ]
}|d k    |S )identityrB   ).0keys     rD   
<listcomp>rI   _   s"    CCCS
1B1BS1B1B1BrC   c                       e Zd ZdZdZdZdS )ClientStater         N)r>   r?   r@   UNOPENEDOPENEDCLOSEDrB   rC   rD   rK   rK   c   s#         H F FFFrC   rK   c                   T    e Zd ZdZdedededdfdZdej	        e
         fdZd
d	ZdS )BoundSyncStreamz
    A byte stream that is bound to a given response instance, and that
    ensures the `response.elapsed` is set once the response is closed.
    streamresponsetimerreturnNc                 0    || _         || _        || _        d S N_stream	_response_timerselfrS   rT   rU   s       rD   __init__zBoundSyncStream.__init__w        !rC   c              #   &   K   | j         D ]}|V  d S rX   rZ   r^   chunks     rD   __iter__zBoundSyncStream.__iter__~   s,      \ 	 	EKKKK	 	rC   c                     | j                                         }t          j        |          | j        _        | j                                         d S N)seconds)r\   sync_elapseddatetime	timedeltar[   elapsedrZ   closer^   rh   s     rD   rm   zBoundSyncStream.close   sG    +**,,!)!3G!D!D!DrC   rV   N)r>   r?   r@   rA   r!   r   r2   r_   typingIteratorbytesre   rm   rB   rC   rD   rR   rR   q   s         
$08AF	   &/%0         rC   rR   c                   T    e Zd ZdZdedededdfdZdej	        e
         fdZd
d	ZdS )BoundAsyncStreamz
    An async byte stream that is bound to a given response instance, and that
    ensures the `response.elapsed` is set once the response is closed.
    rS   rT   rU   rV   Nc                 0    || _         || _        || _        d S rX   rY   r]   s       rD   r_   zBoundAsyncStream.__init__   r`   rC   c                4   K   | j         2 3 d {V }|W V  6 d S rX   rb   rc   s     rD   	__aiter__zBoundAsyncStream.__aiter__   sF      < 	 	 	 	 	 	 	%KKKKK (<<s   c                    K   | j                                          d {V }t          j        |          | j        _        | j                                         d {V  d S rg   )r\   async_elapsedrj   rk   r[   rl   rZ   aclosern   s     rD   rz   zBoundAsyncStream.aclose   so      1133333333!)!3G!D!D!Dl!!###########rC   ro   )r>   r?   r@   rA   r   r   r2   r_   rp   AsyncIteratorrr   rw   rz   rB   rC   rD   rt   rt      s         
%19BG	   !5e!<    $ $ $ $ $ $rC   rt   c                   p   e Zd Zddddededddd
dedededed	e	d
e
dedej        eej        ej                 f         dede
fdZede
fd            Zede
fd            ZdedefdZdej        e         de
dej        eej        e         f         fdZedefd            Zej        d	e	ddfd            Zedej        eej        ej                 f         fd            Z e j        dej        eej        ej                 f         ddfd            Z edej        e!         fd            Z"e"j        deddfd            Z"edefd            Z#e#j        deddfd            Z#ede$fd             Z%e%j        deddfd!            Z%ede&fd"            Z'e'j        deddfd#            Z'ede(fd$            Z)e)j        deddfd%            Z)dddddddd&d'eded(e*d)e+d*e,d+ej-        dededede.fd,Z/dedefd-Z0	 d:dedej        e         fd.Z1	 d:dedej        e         fd/Z2	 d:dedej        e         fd0Z3dedej        e!         fd1Z4e5fd2e.dej6        ee7f         de!fd3Z8d2e.d4e9de.fd5Z:d2e.d4e9defd6Z;d2e.d4e9defd7Z<d2e.ded'ede$fd8Z=d2e.d'edej        ej6        e>e?f                  fd9Z@dS );
BaseClientNT )
authparamsheaderscookiestimeoutallow_redirectsmax_redirectsevent_hooksbase_url	trust_envr   r   r   r   r   r   r   r   r   r   c       
         >   |i n|}|                      t          |	                    | _        |                     |          | _        t          |          | _        t          |          | _        t          |          | _
        t          |          | _        || _        || _        t          |                    dg                     t          |                    dg                     d| _        |
| _        t'                      | _        t*          j        | _        d S NrequestrT   )r   rT   )_enforce_trailing_slashr   	_base_url_build_auth_authr   _paramsr   r   r   _cookiesr   _timeoutr   r   listget_event_hooks
_trust_envr1   _netrcrK   rN   _state)r^   r   r   r   r   r   r   r   r   r   r   s              rD   r_   zBaseClient.__init__   s     (/bb[55c(mmDD%%d++
"6**w''((((.*KOOIr::;;[__Z<<==
 
 $kk!*rC   rV   c                 ,    | j         t          j        k    S )z2
        Check if the client being closed
        )r   rK   rP   r^   s    rD   	is_closedzBaseClient.is_closed   s    
 {k000rC   c                     | j         S rX   )r   r   s    rD   r   zBaseClient.trust_env   s
    rC   urlc                 v    |j                             d          r|S |                    |j         dz             S )N   /raw_path)r   endswith	copy_withr^   r   s     rD   r   z"BaseClient._enforce_trailing_slash   s:    <  && 	J}}clT&9}:::rC   proxiesallow_env_proxiesc                    |.|r*d t                                                      D             S i S t          |t                    r^i }|                                D ]E\  }}t          |t          t
          f          rt          |          n|}||t	          |          <   F|S t          |t          t
          f          rt          |          n|}d|iS )Nc                 >    i | ]\  }}||d nt          |          S )Nr   )r   )rG   rH   r   s      rD   
<dictcomp>z-BaseClient._get_proxy_map.<locals>.<dictcomp>   s>        S %C...  rC   r   zall://)r4   items
isinstancedictstrr   r   )r^   r   r   new_proxiesrH   valueproxys          rD   _get_proxy_mapzBaseClient._get_proxy_map   s     ?   $;$=$=$C$C$E$E    Igt$$ 	%K%mmoo . .
U,6usCj,I,IT%((((u(-CHH%%*4WsCj*I*IVEg&&&&wEe$$rC   c                     | j         S rX   )r   r   s    rD   r   zBaseClient.timeout   s
    }rC   c                 .    t          |          | _        d S rX   )r   r   )r^   r   s     rD   r   zBaseClient.timeout       ((rC   c                     | j         S rX   )r   r   s    rD   r   zBaseClient.event_hooks   s      rC   c                     t          |                    dg                     t          |                    dg                     d| _        d S r   )r   r   r   )r^   r   s     rD   r   zBaseClient.event_hooks   sK    
 KOOIr::;;[__Z<<==
 
rC   c                     | j         S )z
        Authentication class used when none is passed at the request-level.

        See also [Authentication][0].

        [0]: /quickstart/#authentication
        )r   r   s    rD   r   zBaseClient.auth   s     zrC   c                 :    |                      |          | _        d S rX   )r   r   r^   r   s     rD   r   zBaseClient.auth  s    %%d++


rC   c                     | j         S )zK
        Base URL to use when sending requests with relative URLs.
        )r   r   s    rD   r   zBaseClient.base_url	  s    
 ~rC   c                 T    |                      t          |                    | _        d S rX   )r   r   r   r   s     rD   r   zBaseClient.base_url  s!    55c#hh??rC   c                     | j         S )z@
        HTTP headers to include when sending requests.
        )_headersr   s    rD   r   zBaseClient.headers      
 }rC   c                     t          dt                              d          dt                              d          d          }|                    |           || _        d S )Ns   */*asciis
   keep-alive)s   Accepts   Accept-Encodings
   Connections
   User-Agent)r   ACCEPT_ENCODINGencode
USER_AGENTupdater   )r^   r   client_headerss      rD   r   zBaseClient.headers  sd     !$3$:$:7$C$C,)0099	 
 
 	g&&&&rC   c                     | j         S )zA
        Cookie values to include when sending requests.
        )r   r   s    rD   r   zBaseClient.cookies(  r   rC   c                 .    t          |          | _        d S rX   )r   r   )r^   r   s     rD   r   zBaseClient.cookies/  r   rC   c                     | j         S )zO
        Query parameters to include in the URL when sending requests.
        )r   r   s    rD   r   zBaseClient.params3  s    
 |rC   c                 .    t          |          | _        d S rX   )r   r   )r^   r   s     rD   r   zBaseClient.params:  s    "6**rC   contentdatafilesjsonr   r   r   methodr   r   r   r   c                    |                      |          }|                     |          }|                     |	          }	|                     |          }t	          |||||||||		  	        S )aJ  
        Build and return a request instance.

        * The `params`, `headers` and `cookies` arguments
        are merged with any values set on the client.
        * The `url` argument is merged with any `base_url` set on the client.

        See also: [Request instances][0]

        [0]: /advanced/#request-instances
        r   )
_merge_url_merge_headers_merge_cookies_merge_queryparamsr   )
r^   r   r   r   r   r   r   r   r   r   s
             rD   build_requestzBaseClient.build_request>  s    0 ooc""%%g..%%g..((00

 

 

 
	
rC   c                     t          |          }|j        rB| j        j        |j                            d          z   }| j                            |          S |S )z
        Merge a URL argument together with any 'base_url' on the client,
        to create the URL used for the outgoing request.
        r   r   )r   is_relative_urlr   r   lstripr   )r^   r   	merge_urlmerge_raw_paths       rD   r   zBaseClient._merge_urlf  s]    
 HH	$ 	D "]3i6H6O6OPT6U6UUN=**N*CCCrC   c                 n    |s| j         r+t          | j                   }|                    |           |S |S )z
        Merge a cookies argument together with any cookies on the client,
        to create the cookies used for the outgoing request.
        )r   r   r   )r^   r   merged_cookiess      rD   r   zBaseClient._merge_cookies|  sC      	"dl 	"$T\22N!!'***!!rC   c                 X    t          | j                  }|                    |           |S )z
        Merge a headers argument together with any headers on the client,
        to create the headers used for the outgoing request.
        )r   r   r   )r^   r   merged_headerss      rD   r   zBaseClient._merge_headers  s-     !..g&&&rC   c                 n    |s| j         r+t          | j                   }|                    |          }|S |S )z
        Merge a queryparams argument together with any queryparams on the client,
        to create the queryparams used for the outgoing request.
        )r   r   merge)r^   r   merged_queryparamss      rD   r   zBaseClient._merge_queryparams  sD      	&T[ 	&!,T[!9!9!3!9!9&!A!A%%rC   c                     |d S t          |t                    rt          |d         |d                   S t          |t                    r|S t	          |          rt          |          S t          d|          )Nr   r   usernamepassword)funczInvalid "auth" argument: )r   tupler   r   callabler	   	TypeErrorr   s     rD   r   zBaseClient._build_auth  s    <4e$$ 	Bd1gQ@@@@d## 	BKd^^ 	BT****@@@AAArC   r   c                    t          |t                    r| j        n|                     |          }||S |j        j        |j        j        }}|s|rt          ||          S | j        rLd|j	        vrC| j
                            |j        j                  }|t          |d         |d                   S t                      S )Nr   Authorizationr   r   )r   r=   r   r   r   r   r   r   r   r   r   get_credentialshostr   )r^   r   r   r   r   credentialss         rD   _build_request_authzBaseClient._build_request_auth  s     %T+;<<XDJJ$BRBRSWBXBX 	 K$[17;3G( 	Cx 	ChBBBB> 	SoW_DD+55gk6FGGK& +a.;q>RRRRvvrC   rT   c                    |                      ||          }|                     ||          }|                     |||          }|                     ||          }t	          | j                  }t          |||||          S )z
        Given a request and a redirect response, return a new request that
        should be used to effect the redirect.
        )r   r   r   r   rS   )_redirect_method_redirect_url_redirect_headers_redirect_streamr   r   r   )r^   r   rT   r   r   r   rS   r   s           rD   _build_redirect_requestz"BaseClient._build_redirect_request  s    
 &&w99  (33((#v>>&&w77$,''sGWV
 
 
 	
rC   c                     |j         }|j        t          j        k    r|dk    rd}|j        t          j        k    r|dk    rd}|j        t          j        k    r|dk    rd}|S )z
        When being redirected we may want to change the method of the request
        based on certain specs or browser behavior.
        HEADGETPOST)r   status_coder   	SEE_OTHERFOUNDMOVED_PERMANENTLY)r^   r   rT   r   s       rD   r   zBaseClient._redirect_method  st    
  5?22v7G7GF 5;..6V3C3CF 5#:::v?O?OFrC   c                    |j         d         }	 t          |          }n(# t          $ r}t          d| d|          dd}~ww xY w|j        r'|j        s |                    |j        j                  }|j        r|j        	                    |          }|j        j
        r'|j
        s |                    |j        j
                  }|S )z<
        Return the URL for the redirect to follow.
        Locationz Invalid URL in location header: .r   N)r   )fragment)r   r   r   r   schemer   r   r   r   joinr  )r^   r   rT   locationr   excs         rD   r   zBaseClient._redirect_url  s     #J/	h--CC 	 	 	%939997  	 : 	7ch 	7--W[%5-66C  	(+""3''C ; 	? 	?--)=->>C
s    
A?Ac                 d   t          |j                  }t          ||j                  s3|                    dd           |j                            d          |d<   ||j        k    r2|dk    r,|                    dd           |                    dd           |                    dd           |S )	zR
        Return the headers that should be used for the redirect request.
        r   Nr   Hostr   zContent-LengthzTransfer-EncodingCookie)r   r   r6   r   popnetlocdecoder   )r^   r   r   r   r   s        rD   r   zBaseClient._redirect_headers  s     '/**3,, 	9 KK... "j//88GFOW^##% KK($///KK+T222 	Hd###rC   c                 6    ||j         k    r|dk    rdS |j        S )zO
        Return the body that should be used for the redirect request.
        r   N)r   rS   )r^   r   r   s      rD   r   zBaseClient._redirect_stream   s&     W^##%4~rC   rX   )Ar>   r?   r@   r   r   r%   r*   r(   r'   r.   boolintrp   Mappingr   ListCallabler/   r_   propertyr   r   r   r   Optionalr)   Dictr   r   r   r   setterr   r   r   r   r   r   r   r   r   r   r+   r,   r-   Anyr   r   r   r   r   r   r   USE_CLIENT_DEFAULTUnionr=   r   r   r   r   r   r   r!   r   r   rB   rC   rD   r}   r}      s        "&## 6 $2IM+ + + +  	+
 + + + + + ^CV_)E$EF+ + + + + +B 14 1 1 1 X1 4    X;3 ;3 ; ; ; ;
%|4%IM%	S&/%00	1% % % %(     X ^)| ) ) ) ) ^) !V[fk&/.J)JK ! ! ! X! 
!;sFK,H'HI
	
 
 
 
 fod+    X 
[, ,t , , , [, #    X _@H @ @ @ @ _@     X ^
'{ 
't 
' 
' 
' ^
'     X ^){ )t ) ) ) ^)     X ]+_ + + + + ]+ #' ""&##&
 &
 &
&
 &

  &
 &
 &
 j&
  &
 &
 &
 
&
 &
 &
 &
Ph 3    . &* "		%    &*	 	"			%	 	 	 	 )- %		)   
B	 
Bfod.C 
B 
B 
B 
B ;M  l9&667 
	   .
w 
( 
w 
 
 
 
 8     .W  S    : s C G    4		(+		no&EF	G	 	 	 	 	 	rC   r}   c            %       Z    e Zd ZdZddddddddddeeedddddddeded	e	d
e
dedededededej        eef         dedededej        eej        ej                 f         dededej        def$ fdZddddedddfdededededededej        dedefdZddddedfdedededededededefdZdedefdZdddddddeeed 
d!eded"e d#e!d$e"d%ej#        ded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd'Z'e(dddddddeeed 
d!eded"e d#e!d$e"d%ej#        ded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         dej)        e&         fd(            Z*deeed)d*e+d+edej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd,Z,d*e+de-de.d&ed-ej        e&         de&fd.Z/d*e+de.d&ed-ej        e&         de&f
d/Z0d*e+de.de&fd0Z1dddeeed1deded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd2Z2dddeeed1deded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd3Z3dddeeed1deded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd4Z4dddddddeeed 
ded"e d#e!d$e"d%ej#        ded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd5Z5dddddddeeed 
ded"e d#e!d$e"d%ej#        ded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd6Z6dddddddeeed 
ded"e d#e!d$e"d%ej#        ded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd7Z7dddeeed1deded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd8Z8dAd9Z9d:e:de:fd;Z;	 	 	 dBd<ej<        e=         d=e=d>e>ddfd?Z?dAd@Z@ xZAS )Cr8   a  
    An HTTP client, with connection pooling, HTTP/2, redirects, cookie persistence, etc.

    Usage:

    ```python
    >>> client = httpx.Client()
    >>> response = client.get('https://example.org')
    ```

    **Parameters:**

    * **auth** - *(optional)* An authentication class to use when sending
    requests.
    * **params** - *(optional)* Query parameters to include in request URLs, as
    a string, dictionary, or sequence of two-tuples.
    * **headers** - *(optional)* Dictionary of HTTP headers to include when
    sending requests.
    * **cookies** - *(optional)* Dictionary of Cookie items to include when
    sending requests.
    * **verify** - *(optional)* SSL certificates (a.k.a CA bundle) used to
    verify the identity of requested hosts. Either `True` (default CA bundle),
    a path to an SSL certificate file, an `ssl.SSLContext`, or `False`
    (which will disable verification).
    * **cert** - *(optional)* An SSL certificate used by the requested host
    to authenticate the client. Either a path to an SSL certificate file, or
    two-tuple of (certificate file, key file), or a three-tuple of (certificate
    file, key file, password).
    * **proxies** - *(optional)* A dictionary mapping proxy keys to proxy
    URLs.
    * **timeout** - *(optional)* The timeout configuration to use when sending
    requests.
    * **limits** - *(optional)* The limits configuration to use.
    * **max_redirects** - *(optional)* The maximum number of redirect responses
    that should be followed.
    * **base_url** - *(optional)* A URL to use as the base when building
    request URLs.
    * **transport** - *(optional)* A transport class to use for sending requests
    over the network.
    * **app** - *(optional)* An WSGI application to send requests to,
    rather than sending actual network requests.
    * **trust_env** - *(optional)* Enables or disables usage of environment
    variables for configuration.
    NTFr~   r   r   r   r   verifycerthttp1http2r   mountsr   limitsr   r   r   	transportappr   r   r   r   r   r  r  r  r   r   r!  r   r"  r   r   r   r#  r$  r   c                p    t                                          ||||||||	  	         r$	 dd l}n# t          $ r t          d          d w xY wo|d u o|d u }                     |	|          }                     ||           _         fd|                                D              _        |
6 j        	                    d |
                                D                        t          t           j                                                             _        d S )N	r   r   r   r   r   r   r   r   r   r   uUsing http2=True, but the 'h2' package is not installed. Make sure to install httpx using `pip install httpx[http2]`.r  r  r  r   r"  r#  r$  r   c                 r    i | ]3\  }}t          |          |d n                    |	          4S Nr  r  r  r   r"  r   r3   _init_proxy_transport
rG   rH   r   r  r  r   r"  r^   r   r  s
      rD   r   z#Client.__init__.<locals>.<dictcomp>  st     Q
 Q
 Q
 U sOO} "T++# ,  Q
 Q
 Q
rC   c                 4    i | ]\  }}t          |          |S rB   r3   rG   rH   r#  s      rD   r   z#Client.__init__.<locals>.<dictcomp>  $    QQQYC)QQQrC   superr_   h2ImportErrorr   _init_transport
_transportr   _mountsr   r   sortedr^   r   r   r   r   r  r  r  r   r   r!  r   r"  r   r   r   r#  r$  r   r5  r   	proxy_map	__class__s   `    ````   `     `   rD   r_   zClient.__init__Z  s   , 	'# 	 
	
 
	
 
	
  					   !S   &K#+K)t:K''1BCC	.. / 	
 	
Q
 Q
 Q
 Q
 Q
 Q
 Q
 Q
 Q
 Q
 (oo//Q
 Q
 Q
 LQQ&,,..QQQ   F4<#5#5#7#78899	   ; ArV   c	                 X    ||S |t          |          S t          ||||||          S N)r$  r+  )r$   r#   	r^   r  r  r  r   r"  r#  r$  r   s	            rD   r7  zClient._init_transport  sO      ? S))))
 
 
 	
rC   r   c           	      .    t          |||||||          S )N)r  r  r  r   r"  r   r   )r#   r^   r   r  r  r  r   r"  r   s           rD   r-  zClient._init_proxy_transport  s0     
 
 
 	
rC   r   c                     | j                                         D ]'\  }}|                    |          r|| j        n|c S (| j        S z
        Returns the transport instance that should be used for a given URL.
        This will either be the standard connection pool, or a proxy.
        r9  r   matchesr8  r^   r   patternr#  s       rD   _transport_for_urlzClient._transport_for_url  d    
 #',"4"4"6"6 	K 	KGYs## K*3*;tJJJK rC   
r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c       
             |	d}t          j        |t                     |                     |||||||||		  	        }|                     ||
||          S )a  
        Build and send a request.

        Equivalent to:

        ```python
        request = client.build_request(...)
        response = client.send(request, ...)
        ```

        See `Client.build_request()`, `Client.send()` and
        [Merging of configuration][0] for how the various parameters
        are merged with client-level configuration.

        [0]: /advanced/#merging-of-configuration
        NzSetting per-request cookies=<...> is being deprecated, because the expected behaviour on cookie persistence is ambiguous. Set cookies directly on the client instance instead.	r   r   r   r   r   r   r   r   r   r   r   r   )warningswarnDeprecationWarningr   send)r^   r   r   r   r   r   r   r   r   r   r   r   r   messager   s                  rD   r   zClient.request  s    @ C 
 M'#5666$$ % 

 

 yy$  
 
 	
rC   c       
      #      K   |                      |||||||||		  	        }|                     ||
||d          }	 |V  |                                 dS # |                                 w xY wa  
        Alternative to `httpx.request()` that streams the response body
        instead of loading it into memory at once.

        **Parameters**: See `httpx.request`.

        See also: [Streaming Responses][0]

        [0]: /quickstart#streaming-responses
        rN  T)r   r   r   r   rS   N)r   rS  rm   r^   r   r   r   r   r   r   r   r   r   r   r   r   r   rT   s                  rD   rS   zClient.stream  s      6 $$ % 

 

 99+  
 
	NNNNNHNNs   A A,rS   r   r   r   r   rS   c                   | j         t          j        k    rt          d          t          j        | _         t          |t                    r| j        nt          |          }t          |t                    r| j	        n|}| 
                    ||          }|                     ||||g           }	 |s|                                 |S # t          $ r}|                                 |d}~ww xY w)a  
        Send a request.

        The request is sent as-is, unmodified.

        Typically you'll want to build one with `Client.build_request()`
        so that any client-level configuration is merged into the request,
        but passing an explicit `httpx.Request()` is supported as well.

        See also: [Request instances][0]

        [0]: /advanced/#request-instances
        5Cannot send a request, as the client has been closed.r   r   r   historyN)r   rK   rP   RuntimeErrorrO   r   r=   r   r   r   r   _send_handling_authread	Exceptionrm   r^   r   rS   r   r   r   rT   r  s           rD   rS  zClient.sendI  s   , ;+,,,VWWW!(&w0@AAWDLLwwGWGW 	
 /+;<<!D    	 ''66+++ , 
 
	  O 	 	 	NNI	s   0C 
C-C((C-r\  c                     |                     |          }	 t          |          }	 |                     ||||          }	 	 |                    |          }n&# t          $ r |cY |                                 S w xY wt          |          |_        |                                 |}|	                    |           n(# t          $ r}	|                                 |	d }	~	ww xY w# |                                 w xY wNT)r   r   r\  )sync_auth_flownext_send_handling_redirectsrS  StopIterationrm   r   r\  r_  appendr`  
r^   r   r   r   r   r\  	auth_flowrT   next_requestr  s
             rD   r^  zClient._send_handling_auth  s/    ''00		9ooG88#$3#	 9  ('0~~h'?'?( ( ( (' OO( (,G}}H$MMOOO*GNN8,,,,    NN$$$I%, OOsN   )C' A B> A;$B> :A;;AB> =C' >
C#CC##C' 'C=c                    	 t          |          | j        k    rt          d|          | j        d         D ]} ||           |                     ||          }	 | j        d         D ]} ||           t          |          |_        |j        s|S |                     ||          }||gz   }|r|	                                 n	||_
        |S n(# t          $ r}|                                 |d }~ww xY wNTz#Exceeded maximum allowed redirects.r  r   rT   )lenr   r   r   _send_single_requestr   r\  is_redirectr   r_  rk  r`  rm   r^   r   r   r   r\  hookrT   r  s           rD   rf  zClient._send_handling_redirects  sB   	7||d000&97    ))4  W00'BBH -j9 # #DDNNNN#'== + $#O66wII!XJ." $MMOOOO,3H)#O $
       	7	s   7C ;C 
C7C22C7c           
         |                      |j                  }t                      }|                                 t	          |j        t                    st          d          t          |          5  |	                    |j
                                        |j        j        |j        j        |j        d|                                i          \  }}}}ddd           n# 1 swxY w Y   t          |||||          }	t!          ||	|          |	_        | j                            |	           |	j         d|	j         }
|	j         d|
 }t,                              d	|j
         d|j         d
| d           |	S )L
        Sends a single request, without handling any redirections.
        z?Attempted to send an async request with a sync Client instance.r  r   r   rS   
extensionsNr   rS   rv  r   rT   rU    HTTP Request:  "")rJ  r   r2   
sync_startr   rS   r!   r]  r   handle_requestr   r   rawr   as_dictr   rR   r   extract_cookiesr   reason_phrasehttp_versionloggerdebugr^   r   r   r#  rU   r   r   rS   rv  rT   statusresponse_lines               rD   ro  zClient._send_single_request  s    ++GK88	'..99 	Q   W--- 	 	9B9Q9Q%%''+~%w'8'89 :R : :6['6:	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !
 
 
 *&85QQQ$$X...(CC8+ACC#0;;6;;VgnVVw{VVmVVVWWWs   6A$C&&C*-C*r   r   r   r   r   r   c          
      <    |                      d|||||||          S )U
        Send a `GET` request.

        **Parameters**: See `httpx.request`.
        r   r  r  r^   r   r   r   r   r   r   r   s           rD   r   z
Client.get  s7      ||+  	
 	
 		
rC   c          
      <    |                      d|||||||          S )Z
        Send an `OPTIONS` request.

        **Parameters**: See `httpx.request`.
        OPTIONSr  r  r  s           rD   optionszClient.options  s7      ||+  	
 	
 		
rC   c          
      <    |                      d|||||||          S )V
        Send a `HEAD` request.

        **Parameters**: See `httpx.request`.
        r   r  r  r  s           rD   headzClient.head&  s7      ||+  	
 	
 		
rC   c       
         D    |                      d|||||||||	|
|          S )V
        Send a `POST` request.

        **Parameters**: See `httpx.request`.
        r   rL  r  r^   r   r   r   r   r   r   r   r   r   r   r   s               rD   postzClient.postA  sC    ( ||+  
 
 	
rC   c       
         D    |                      d|||||||||	|
|          S )U
        Send a `PUT` request.

        **Parameters**: See `httpx.request`.
        PUTrL  r  r  s               rD   putz
Client.putd  sC    ( ||+  
 
 	
rC   c       
         D    |                      d|||||||||	|
|          S )W
        Send a `PATCH` request.

        **Parameters**: See `httpx.request`.
        PATCHrL  r  r  s               rD   patchzClient.patch  sC    ( ||+  
 
 	
rC   c          
      <    |                      d|||||||          S )X
        Send a `DELETE` request.

        **Parameters**: See `httpx.request`.
        DELETEr  r  r  s           rD   deletezClient.delete  s7      ||+  	
 	
 		
rC   c                     | j         t          j        k    r\t          j        | _         | j                                         | j                                        D ]}||                                 dS dS z.
        Close transport and proxies.
        N)r   rK   rP   r8  rm   r9  values)r^   r#  s     rD   rm   zClient.close  sx     ;+,,,%,DKO!!###!\0022 & &	(OO%%% -,& &rC   r^   c                 P   | j         t          j        k    r4t          j        dt          j        di| j                  }t          |          t          j        | _         | j                                         | j        	                                D ]}||                                 | S Nz-Cannot open a client instance more than once.z9Cannot reopen a client instance, once it has been closed.)
r   rK   rN   rO   rP   r]  r8  	__enter__r9  r  )r^   msgr#  s      rD   r  zClient.__enter__  s    ;+..."$S"$_ kC s###!(!!###,,.. 	& 	&I$##%%%rC   exc_type	exc_value	tracebackc                     t           j        | _        | j                            |||           | j                                        D ]}||                    |||           d S rX   )rK   rP   r   r8  __exit__r9  r  )r^   r  r  r  r#  s        rD   r  zClient.__exit__  sr     "(  9i@@@,,.. 	C 	CI$""8Y	BBB	C 	CrC   c                 p    t          | dd           t          j        k    r|                                  d S d S )Nr   )getattrrK   rO   rm   r   s    rD   __del__zClient.__del__  s7     44((K,>>>JJLLLLL ?>rC   ro   NNN)Br>   r?   r@   rA   r   r   r   r%   r*   r(   r'   r0   r&   r  r)   rp   r  r   r    r.   r   r  r  r  r/   r_   r7  r   r-  r   rJ  r  r+   r,   r-   r  r  r=   r   r   r   rq   rS   r   rS  r   r   r^  rf  ro  r   r  r  r  r  r  r  rm   r7   r  TypeBaseExceptionr   r  r  __classcell__r=  s   @rD   r8   r8   ,  s       + +` "&##" $59 6'2IM#'#)K: K: K: K:  	K:
 K: K: K: K: K: K: K: sM12K: K: K: K:  ^CV_)E$EF!K:" #K:$ !%K:& _'K:( )K: K: K: K: K: K:^ #'#'#
 

 
 	

 
 
 !
 _
 
 

 
 
 
: #'
 

 
 	

 
 
 
 
 

 
 
 
(	c 	m 	 	 	 	  #' ""&##:L@R@R5
 5
 5
5
 5

  5
 5
 5
 j5
  5
 5
 5
 l9&6675
  d,<&<=5
 l,<<=5
 
5
 5
 5
 5
n  #' ""&##:L@R@R/ / // /
  / / / j/  / / / l9&667/  d,<&<=/ l,<<=/ 
	"/ / / ^/j :L@R@R4 4 44 	4
 l9&6674  d,<&<=4 l,<<=4 
4 4 4 4l"" " 	"
 " X&" 
" " " "H$$ $ 	$
 X&$ 
$ $ $ $L%G %g %( % % % %V #'##:L@R@R
 
 

  	

 
 
 l9&667
  d,<&<=
 l,<<=
 

 
 
 
> #'##:L@R@R
 
 

  	

 
 
 l9&667
  d,<&<=
 l,<<=
 

 
 
 
> #'##:L@R@R
 
 

  	

 
 
 l9&667
  d,<&<=
 l,<<=
 

 
 
 
> #' ""&##:L@R@R!
 !
 !
!
  	!

 !
 !
 j!
  !
 !
 !
 l9&667!
  d,<&<=!
 l,<<=!
 
!
 !
 !
 !
N #' ""&##:L@R@R!
 !
 !
!
  	!

 !
 !
 j!
  !
 !
 !
 l9&667!
  d,<&<=!
 l,<<=!
 
!
 !
 !
 !
N #' ""&##:L@R@R!
 !
 !
!
  	!

 !
 !
 j!
  !
 !
 !
 l9&667!
  d,<&<=!
 l,<<=!
 
!
 !
 !
 !
N #'##:L@R@R
 
 

  	

 
 
 l9&667
  d,<&<=
 l,<<=
 

 
 
 
6
& 
& 
& 
& a    $ 04#'#'	C C+m,C !C !	C
 
C C C C       rC   c            %       Z    e Zd ZdZddddddddddeeedddddddeded	e	d
e
dedededededej        eef         dedededej        eej        ej                 f         dededej        def$ fdZddddedddfdededededededej        dedefdZddddedfdedededededededefdZdedefdZdddddddeeed 
d!eded"e d#e!d$e"d%ej#        ded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd'Z'e(dddddddeeed 
d!eded"e d#e!d$e"d%ej#        ded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         dej)        e&         fd(            Z*deeed)d*e+d+edej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd,Z,d*e+de-de.d&ed-ej        e&         de&fd.Z/d*e+de.d&ed-ej        e&         de&f
d/Z0d*e+de.de&fd0Z1dddeeed1deded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd2Z2dddeeed1deded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd3Z3dddeeed1deded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd4Z4dddddddeeed 
ded"e d#e!d$e"d%ej#        ded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd5Z5dddddddeeed 
ded"e d#e!d$e"d%ej#        ded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd6Z6dddddddeeed 
ded"e d#e!d$e"d%ej#        ded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd7Z7dddeeed1deded	e	d
e
dej$        ee%f         d&ej$        ee%f         dej$        ee%f         de&fd8Z8dAd9Z9d:e:de:fd;Z;	 	 	 dBd<ej<        e=         d=e=d>e>ddfd?Z?dAd@Z@ xZAS )Cr;   a!  
    An asynchronous HTTP client, with connection pooling, HTTP/2, redirects,
    cookie persistence, etc.

    Usage:

    ```python
    >>> async with httpx.AsyncClient() as client:
    >>>     response = await client.get('https://example.org')
    ```

    **Parameters:**

    * **auth** - *(optional)* An authentication class to use when sending
    requests.
    * **params** - *(optional)* Query parameters to include in request URLs, as
    a string, dictionary, or sequence of two-tuples.
    * **headers** - *(optional)* Dictionary of HTTP headers to include when
    sending requests.
    * **cookies** - *(optional)* Dictionary of Cookie items to include when
    sending requests.
    * **verify** - *(optional)* SSL certificates (a.k.a CA bundle) used to
    verify the identity of requested hosts. Either `True` (default CA bundle),
    a path to an SSL certificate file, or `False` (disable verification).
    * **cert** - *(optional)* An SSL certificate used by the requested host
    to authenticate the client. Either a path to an SSL certificate file, or
    two-tuple of (certificate file, key file), or a three-tuple of (certificate
    file, key file, password).
    * **http2** - *(optional)* A boolean indicating if HTTP/2 support should be
    enabled. Defaults to `False`.
    * **proxies** - *(optional)* A dictionary mapping HTTP protocols to proxy
    URLs.
    * **timeout** - *(optional)* The timeout configuration to use when sending
    requests.
    * **limits** - *(optional)* The limits configuration to use.
    * **max_redirects** - *(optional)* The maximum number of redirect responses
    that should be followed.
    * **base_url** - *(optional)* A URL to use as the base when building
    request URLs.
    * **transport** - *(optional)* A transport class to use for sending requests
    over the network.
    * **app** - *(optional)* An ASGI application to send requests to,
    rather than sending actual network requests.
    * **trust_env** - *(optional)* Enables or disables usage of environment
    variables for configuration.
    NTFr~   r  r   r   r   r   r  r  r  r   r   r!  r   r"  r   r   r   r#  r$  r   c                p    t                                          ||||||||	  	         r$	 dd l}n# t          $ r t          d          d w xY wo|d u o|d u }                     |	|          }                     ||           _         fd|                                D              _        |
6 j        	                    d |
                                D                        t          t           j                                                             _        d S )Nr&  r   r'  r(  c                 r    i | ]3\  }}t          |          |d n                    |	          4S r*  r,  r.  s
      rD   r   z(AsyncClient.__init__.<locals>.<dictcomp>_  st     V
 V
 V
 U sOO} "T++# ,  V
 V
 V
rC   c                 4    i | ]\  }}t          |          |S rB   r0  r1  s      rD   r   z(AsyncClient.__init__.<locals>.<dictcomp>o  r2  rC   r3  r;  s   `    ````   `     `   rD   r_   zAsyncClient.__init__&  s   , 	'# 	 
	
 
	
 
	
  					   !S   &K#+K)t:K''1BCC	.. / 	
 	
V
 V
 V
 V
 V
 V
 V
 V
 V
 V
 (oo//V
 V
 V
 LQQ&,,..QQQ   F4<#5#5#7#78899r>  rV   c	                 X    ||S |t          |          S t          ||||||          S r@  )r   r"   rA  s	            rD   r7  zAsyncClient._init_transports  sO      ? S))))!
 
 
 	
rC   r   c                 ,    t          ||||||          S )N)r  r  r   r"  r   r   )r"   rC  s           rD   r-  z!AsyncClient._init_proxy_transport  s-     "
 
 
 	
rC   r   c                     | j                                         D ]'\  }}|                    |          r|| j        n|c S (| j        S rE  rF  rH  s       rD   rJ  zAsyncClient._transport_for_url  rK  rC   rL  r   r   r   r   r   r   c       
            K   |                      |||||||||		  	        }|                     ||
||           d{V }|S )a  
        Build and send a request.

        Equivalent to:

        ```python
        request = client.build_request(...)
        response = await client.send(request, ...)
        ```

        See `AsyncClient.build_request()`, `AsyncClient.send()`
        and [Merging of configuration][0] for how the various parameters
        are merged with client-level configuration.

        [0]: /advanced/#merging-of-configuration
        rN  rO  N)r   rS  rW  s                  rD   r   zAsyncClient.request  s      @ $$ % 

 

 $ # 
 
 
 
 
 
 
 
 rC   c       
          K   |                      |||||||||		  	        }|                     ||
||d           d{V }	 |W V  |                                 d{V  dS # |                                 d{V  w xY wrV  )r   rS  rz   rW  s                  rD   rS   zAsyncClient.stream  s      6 $$ % 

 

 + # 
 
 
 
 
 
 
 
	$NNNN//###########(//##########s   A# #A?rX  r   rS   c                  K   | j         t          j        k    rt          d          t          j        | _         t          |t                    r| j        nt          |          }t          |t                    r| j	        n|}| 
                    ||          }|                     ||||g            d{V }	 |s|                                 d{V  |S # t          $ r!}|                                 d{V  |d}~ww xY w)a  
        Send a request.

        The request is sent as-is, unmodified.

        Typically you'll want to build one with `AsyncClient.build_request()`
        so that any client-level configuration is merged into the request,
        but passing an explicit `httpx.Request()` is supported as well.

        See also: [Request instances][0]

        [0]: /advanced/#request-instances
        rZ  r[  N)r   rK   rP   r]  rO   r   r=   r   r   r   r   r^  areadr`  rz   ra  s           rD   rS  zAsyncClient.send  sT     , ;+,,,VWWW!(&w0@AAWDLLwwGWGW 	
 /+;<<!D    	 ''6611+ 2 
 
 
 
 
 
 
 
	 'nn&&&&&&&&&O 	 	 	//#########I	s   8C 
D C<<Dr\  c                 b  K   |                     |          }	 |                                 d {V }	 |                     ||||           d {V }	 	 |                    |           d {V }n,# t          $ r |cY |                                 d {V  S w xY wt          |          |_        |                                 d {V  |}|	                    |           n.# t          $ r!}	|                                 d {V  |	d }	~	ww xY w# |                                 d {V  w xY wrc  )async_auth_flow	__anext__rf  asendStopAsyncIterationrz   r   r\  r  rh  r`  ri  s
             rD   r^  zAsyncClient._send_handling_authC  s      ((11		%%//11111111G!%!>!>#$3#	 "? " "      (-6__X-F-F'F'F'F'F'F'F- ( ( (' ""$$$$$$$$$$( (,G}}H$"..**********GNN8,,,,    "//+++++++++I%, ""$$$$$$$$$$sN   :D A1 0C# 1B=C# BAC# "D #
D-D		DD D.c                 8  K   	 t          |          | j        k    rt          d|          | j        d         D ]} ||           d {V  |                     ||           d {V }	 | j        d         D ]} ||           d {V  t          |          |_        |j        s|S |                     ||          }||gz   }|r|	                                 d {V  n	||_
        |S n.# t          $ r!}|                                 d {V  |d }~ww xY wrm  )rn  r   r   r   ro  r   r\  rp  r   r  rk  r`  rz   rq  s           rD   rf  z$AsyncClient._send_handling_redirectsg  s     	7||d000&97    ))4 $ $d7mm########!66wHHHHHHHHH -j9 ) )D$x..((((((((#'== + $#O66wII!XJ." $"..**********,3H)#O +
    oo'''''''''	9	s   +=C, )AC, ,
D6DDc           
      "  K   |                      |j                  }t                      }|                                 d{V  t	          |j        t                    st          d          t          |          5  |	                    |j
                                        |j        j        |j        j        |j        d|                                i           d{V \  }}}}ddd           n# 1 swxY w Y   t          |||||          }	t!          ||	|          |	_        | j                            |	           |	j         d|	j         }
|	j         d|
 }t,                              d	|j
         d|j         d
| d           |	S )rt  Nz?Attempted to send an sync request with an AsyncClient instance.r  r   ru  rw  rx  ry  rz  r{  r|  )rJ  r   r2   async_startr   rS   r   r]  r   handle_async_requestr   r   r  r   r  r   rt   r   r  r   r  r  r  r  r  s               rD   ro  z AsyncClient._send_single_request  s      ++GK88	!!!!!!!!!'./:: 	Q   W--- 	 	  44%%''+~%w'8'89 5        	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !
 
 
 +6HERRR$$X...(CC8+ACC#0;;6;;VgnVVw{VVmVVVWWWs   >A*C44C8;C8r  c          
      L   K   |                      d|||||||           d{V S )r  r   r  Nr  r  s           rD   r   zAsyncClient.get  sY        \\+ " 	
 	
 	
 	
 	
 	
 	
 	
 		
rC   c          
      L   K   |                      d|||||||           d{V S )r  r  r  Nr  r  s           rD   r  zAsyncClient.options  sY        \\+ " 	
 	
 	
 	
 	
 	
 	
 	
 		
rC   c          
      L   K   |                      d|||||||           d{V S )r  r   r  Nr  r  s           rD   r  zAsyncClient.head  sY        \\+ " 	
 	
 	
 	
 	
 	
 	
 	
 		
rC   c       
         T   K   |                      d|||||||||	|
|           d{V S )r  r   rL  Nr  r  s               rD   r  zAsyncClient.post  se      ( \\+ " 
 
 
 
 
 
 
 
 	
rC   c       
         T   K   |                      d|||||||||	|
|           d{V S )r  r  rL  Nr  r  s               rD   r  zAsyncClient.put0  se      ( \\+ " 
 
 
 
 
 
 
 
 	
rC   c       
         T   K   |                      d|||||||||	|
|           d{V S )r  r  rL  Nr  r  s               rD   r  zAsyncClient.patchS  se      ( \\+ " 
 
 
 
 
 
 
 
 	
rC   c          
      L   K   |                      d|||||||           d{V S )r  r  r  Nr  r  s           rD   r  zAsyncClient.deletev  sY        \\+ " 	
 	
 	
 	
 	
 	
 	
 	
 		
rC   c                   K   | j         t          j        k    rht          j        | _         | j                                         d{V  | j                                        D ] }||                                 d{V  dS dS r  )r   rK   rP   r8  rz   r9  r  )r^   r   s     rD   rz   zAsyncClient.aclose  s       ;+,,,%,DK/((*********,,.. ) )$,,..((((((( -,) )rC   r^   c                 l  K   | j         t          j        k    r4t          j        dt          j        di| j                  }t          |          t          j        | _         | j                                         d {V  | j        	                                D ]}||                                 d {V  | S r  )
r   rK   rN   rO   rP   r]  r8  
__aenter__r9  r  )r^   r  r   s      rD   r  zAsyncClient.__aenter__  s      ;+..."$S"$_ kC s###!(o((*********\((** 	) 	)E &&(((((((((rC   r  r  r  c                    K   t           j        | _        | j                            |||           d {V  | j                                        D ]!}||                    |||           d {V  "d S rX   )rK   rP   r   r8  	__aexit__r9  r  )r^   r  r  r  r   s        rD   r  zAsyncClient.__aexit__  s       "(o'')YGGGGGGGGG\((** 	F 	FE ooh	9EEEEEEEEE	F 	FrC   c                 x    t          | dd           t          j        k    rt          j        d| d           d S d S )Nr   z	Unclosed zR. See https://www.python-httpx.org/async/#opening-and-closing-clients for details.)r  rK   rO   rP  rQ  r   s    rD   r  zAsyncClient.__del__  s\     44((K,>>>* MD       + ?>rC   ro   r  )Br>   r?   r@   rA   r   r   r   r%   r*   r(   r'   r0   r&   r  r)   rp   r  r   r   r.   r   r  r  r  r/   r_   r7  r   r-  r   rJ  r  r+   r,   r-   r  r  r=   r   r   r
   r{   rS   r   rS  r   r   r^  rf  ro  r   r  r  r  r  r  r  rz   r:   r  r  r  r   r  r  r  r  s   @rD   r;   r;     s       - -d "&##" $:> 6'2IM(,#)K: K: K: K:  	K:
 K: K: K: K: K: K: K: s$667K: K: K: K:  ^CV_)E$EF!K:" #K:$ &%K:& _'K:( )K: K: K: K: K: K:^ #'(,#
 

 
 	

 
 
 &
 _
 
 

 
 
 
: #'
 

 
 	

 
 
 
 
 

 
 
 
&	c 	.@ 	 	 	 	  #' ""&##:L@R@R. . .. .
  . . . j.  . . . l9&667.  d,<&<=. l,<<=. 
. . . .`  #' ""&##:L@R@R/$ /$ /$/$ /$
  /$ /$ /$ j/$  /$ /$ /$ l9&667/$  d,<&<=/$ l,<<=/$ 
	h	'/$ /$ /$ /$j :L@R@R4 4 44 	4
 l9&6674  d,<&<=4 l,<<=4 
4 4 4 4l"%"% "% 	"%
 "% X&"% 
"% "% "% "%H%% % 	%
 X&% 
% % % %N,,)0,	, , , ,d #'##:L@R@R
 
 

  	

 
 
 l9&667
  d,<&<=
 l,<<=
 

 
 
 
> #'##:L@R@R
 
 

  	

 
 
 l9&667
  d,<&<=
 l,<<=
 

 
 
 
> #'##:L@R@R
 
 

  	

 
 
 l9&667
  d,<&<=
 l,<<=
 

 
 
 
> #' ""&##:L@R@R!
 !
 !
!
  	!

 !
 !
 j!
  !
 !
 !
 l9&667!
  d,<&<=!
 l,<<=!
 
!
 !
 !
 !
N #' ""&##:L@R@R!
 !
 !
!
  	!

 !
 !
 j!
  !
 !
 !
 l9&667!
  d,<&<=!
 l,<<=!
 
!
 !
 !
 !
N #' ""&##:L@R@R!
 !
 !
!
  	!

 !
 !
 j!
  !
 !
 !
 l9&667!
  d,<&<=!
 l,<<=!
 
!
 !
 !
 !
N #'##:L@R@R
 
 

  	

 
 
 l9&667
  d,<&<=
 l,<<=
 

 
 
 
6
) 
) 
) 
)q Q    $ 04#'#'	F F+m,F !F !	F
 
F F F F       rC   )Xrj   enumrp   rP  
contextlibr   typesr   r   r   r   r   r	   _compatr
   _configr   r   r   r   r   r   	_decodersr   _exceptionsr   r   r   r   _modelsr   r   r   r   r   r   _status_codesr   _transports.asgir   _transports.baser   r   r    r!   _transports.defaultr"   r#   _transports.wsgir$   _typesr%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   _utilsr1   r2   r3   r4   r5   r6   TypeVarr7   r:   r=   r  r>   r  r   r  keysr   EnumrK   rR   rt   r}   r8   r;   rB   rC   rD   <module>r     s       % % % % % %       $ $ $ $ $ $ 0 0 0 0 0 0 0 0 0 0 ( ( ( ( ( (                * ) ) ) ) )            K J J J J J J J J J J J J J J J             + + + + + +            C B B B B B B B + + + + + +                                           FN3h'''FN3m,,,	 	 	 	 	 	 	 	, &%''  
H		*[**
))CC+&+--CCC 
    $)       n   .$ $ $ $ $ $ $ $.J J J J J J J JZG G G G GZ G G GTa a a a a* a a a a arC   