§
    bÒ³gw  ã                   óš  — d 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 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 ddlmZmZmZmZ ddlmZmZ ddl 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-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 ej4        dk    rej5        Z6nej        Z6efd„Z7efd„Z8 G d„ d¦  «        Z9 G d„ de9¦  «        Z:d„ Z;dS )z•
requests.sessions
~~~~~~~~~~~~~~~~~

This module provides a Session object to manage and persist settings across
requests (cookies, auth, proxies).
é    N)ÚOrderedDict)Ú	timedeltaé   )Úto_native_string)ÚHTTPAdapter)Ú_basic_auth_str)ÚMappingÚ	cookielibÚurljoinÚurlparse)ÚRequestsCookieJarÚcookiejar_from_dictÚextract_cookies_to_jarÚmerge_cookies)ÚChunkedEncodingErrorÚContentDecodingErrorÚInvalidSchemaÚTooManyRedirects)Údefault_hooksÚdispatch_hook)ÚDEFAULT_REDIRECT_LIMITÚREDIRECT_STATIÚPreparedRequestÚRequest)Úcodes)ÚCaseInsensitiveDict)
ÚDEFAULT_PORTSÚdefault_headersÚget_auth_from_urlÚget_environ_proxiesÚget_netrc_authÚrequote_uriÚresolve_proxiesÚrewind_bodyÚshould_bypass_proxiesÚto_key_val_listÚwin32c                 ó.  — |€| S | €|S t          |t          ¦  «        rt          | t          ¦  «        s| S  |t          |¦  «        ¦  «        }|                     t          | ¦  «        ¦  «         d„ |                     ¦   «         D ¦   «         }|D ]}||= Œ|S )zèDetermines appropriate setting for a given request, taking into account
    the explicit setting on that request, and the setting in the session. If a
    setting is a dictionary, they will be merged together using `dict_class`
    Nc                 ó   — g | ]	\  }}|­|‘Œ
S ©N© )Ú.0ÚkÚvs      úO/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/requests/sessions.pyú
<listcomp>z!merge_setting.<locals>.<listcomp>T   s   € ÐEÐEÐE‘v˜˜1¸1¸9�¸9¸9¸9ó    )Ú
isinstancer	   r&   ÚupdateÚitems)Úrequest_settingÚsession_settingÚ
dict_classÚmerged_settingÚ	none_keysÚkeys         r/   Úmerge_settingr;   =   s¿   € ð ÐØÐàÐØÐõ 	�?¥GÑ,Ô,ðÝ1;¸OÍWÑ1UÔ1Uðð Ðà�Z¥°Ñ @Ô @ÑAÔA€NØ×Ò�/¨/Ñ:Ô:Ñ;Ô;Ð;ð FÐE ×!5Ò!5Ñ!7Ô!7ÐEÑEÔE€IØð  ð  ˆØ˜3ÐÐàÐr1   c                 ó˜   — |�|                      d¦  «        g k    r| S | �|                       d¦  «        g k    r|S t          | ||¦  «        S )z©Properly merges both requests and session hooks.

    This is necessary because when request_hooks == {'response': []}, the
    merge breaks Session hooks entirely.
    NÚresponse)Úgetr;   )Úrequest_hooksÚsession_hooksr7   s      r/   Úmerge_hooksrA   [   s^   € ð Ð × 1Ò 1°*Ñ =Ô =ÀÒ CÐ CØÐàÐ × 1Ò 1°*Ñ =Ô =ÀÒ CÐ CØÐå˜¨°zÑBÔBÐBr1   c                   ó@   — e Zd Zd„ Zd„ Z	 	 	 	 	 	 d
d„Zd„ Zd„ Zd	„ ZdS )ÚSessionRedirectMixinc                 óx   — |j         r2|j        d         }|                     d¦  «        }t          |d¦  «        S dS )z7Receives a Response. Returns a redirect URI or ``None``ÚlocationÚlatin1Úutf8N)Úis_redirectÚheadersÚencoder   )ÚselfÚresprE   s      r/   Úget_redirect_targetz(SessionRedirectMixin.get_redirect_targetk   sC   € ð Ôð 		6Ø”| JÔ/ˆHð  —’ xÑ0Ô0ˆHÝ# H¨fÑ5Ô5Ð5Øˆtr1   c                 ób  — t          |¦  «        }t          |¦  «        }|j        |j        k    rdS |j        dk    r|j        dv r|j        dk    r|j        dv rdS |j        |j        k    }|j        |j        k    }t	          j        |j        d¦  «        df}|s|j        |v r|j        |v rdS |p|S )zFDecide whether Authorization header should be removed when redirectingTÚhttp)éP   NÚhttps)i»  NFN)r   ÚhostnameÚschemeÚportr   r>   )rK   Úold_urlÚnew_urlÚ
old_parsedÚ
new_parsedÚchanged_portÚchanged_schemeÚdefault_ports           r/   Úshould_strip_authz&SessionRedirectMixin.should_strip_auth   sÝ   € å˜gÑ&Ô&ˆ
Ý˜gÑ&Ô&ˆ
ØÔ *Ô"5Ò5Ð5Ø�4ð Ô Ò'Ð'Ø” :Ð-Ð-ØÔ! WÒ,Ð,Ø” ;Ð.Ð.à�5ð "”¨*¬/Ò9ˆØ#Ô*¨jÔ.?Ò?ˆÝ%Ô)¨*Ô*;¸TÑBÔBÀDÐIˆàð	à” <Ð/Ð/Ø” <Ð/Ð/à�5ð Ð-˜~Ð-r1   FNTc	           
   +   ó¾  K  — g }
|                       |¦  «        }t          |j        ¦  «        j        }|�r'|                     ¦   «         }|
                     |¦  «         |
dd…         |_        	 |j         n8# t          t          t          f$ r |j                             d¬¦  «         Y nw xY wt          |j        ¦  «        | j        k    rt          d| j        › d�|¬¦  «        ‚|                     ¦   «          |                     d¦  «        r=t          |j        ¦  «        }d	                     t'          |j        ¦  «        |g¦  «        }t          |¦  «        }|j        d
k    r|r|                     |¬¦  «        }n|j        r|j        }|                     ¦   «         }|j        s#t1          |j        t3          |¦  «        ¦  «        }nt3          |¦  «        }t'          |¦  «        |_        |                      ||¦  «         |j        t8          j        t8          j        fvr)d}|D ]}|j                              |d¦  «         Œd|_!        |j        }|                      dd¦  «         tE          |j#        ||j        ¦  «         tI          |j#        | j%        ¦  «         | &                    |j#        ¦  «         |  '                    ||¦  «        }|  (                    ||¦  «         |j)        duod|v pd|v }|rtU          |¦  «         |}|r|V — nI | j+        |f|||||ddœ|	¤Ž}tE          | j%        ||j        ¦  «         |                       |¦  «        }|V — |�°%dS dS )zBReceives a Response. Returns a generator of Responses or Requests.r   NF)Údecode_contentz	Exceeded z redirects.)r=   z//ú:Ú )Úfragment)úContent-LengthzContent-TypeúTransfer-EncodingÚCookierb   rc   )ÚstreamÚtimeoutÚverifyÚcertÚproxiesÚallow_redirects),rM   r   Úurlra   ÚcopyÚappendÚhistoryÚcontentr   r   ÚRuntimeErrorÚrawÚreadÚlenÚmax_redirectsr   ÚcloseÚ
startswithÚjoinr   rS   Ú_replaceÚgeturlÚnetlocr   r"   Úrebuild_methodÚstatus_coder   Útemporary_redirectÚpermanent_redirectrI   ÚpopÚbodyr   Ú_cookiesr   ÚcookiesÚprepare_cookiesÚrebuild_proxiesÚrebuild_authÚ_body_positionr$   Úsend)rK   rL   Úreqre   rf   rg   rh   ri   Úyield_requestsÚadapter_kwargsÚhistrk   Úprevious_fragmentÚprepared_requestÚparsed_rurlÚparsedÚpurged_headersÚheaderrI   Ú
rewindables                       r/   Úresolve_redirectsz&SessionRedirectMixin.resolve_redirectsŸ   sì  è è € ð ˆà×&Ò& tÑ,Ô,ˆÝ$ S¤WÑ-Ô-Ô6ÐØñ g	Ø"Ÿxšx™zœzÐð �KŠK˜ÑÔÐØ   œ8ˆDŒLð4Ø”��øÝ(Õ*>ÅÐMð 4ð 4ð 4Ø”—’¨U�Ñ3Ô3Ð3Ð3Ð3ð4øøøõ �4”<Ñ Ô  DÔ$6Ò6Ð6Ý&Ø? Ô 2Ð?Ð?Ð?È$ðñ ô ð ð
 �JŠJ‰LŒLˆLð �~Š~˜dÑ#Ô#ð LÝ& t¤xÑ0Ô0�Ø—h’hÕ 0°Ô1CÑ DÔ DÀcÐJÑKÔK�õ ˜c‘]”]ˆFØŒ "Ò$Ð$Ð):Ð$ØŸšÐ2C˜ÑDÔD��Ø”ð 4Ø$*¤OÐ!Ø—-’-‘/”/ˆCð
 ”=ð 'Ý˜dœh­°CÑ(8Ô(8Ñ9Ô9��å! #Ñ&Ô&�å#3°CÑ#8Ô#8ÐÔ à×ÒÐ 0°$Ñ7Ô7Ð7ð ÔÝÔ(ÝÔ(ð(ð ð ð
 "Y�Ø,ð ?ð ?�FØ$Ô,×0Ò0°¸Ñ>Ô>Ð>Ð>Ø(,Ð Ô%à&Ô.ˆGØ�KŠK˜ $Ñ'Ô'Ð'õ
 #Ð#3Ô#<¸cÀ4Ä8ÑLÔLÐLÝÐ*Ô3°T´\ÑBÔBÐBØ×,Ò,Ð-=Ô-FÑGÔGÐGð ×*Ò*Ð+;¸WÑEÔEˆGØ×ÒÐ.°Ñ5Ô5Ð5ð
 *Ô8ÀÐDð Ø  GÐ+ÐMÐ/BÀgÐ/Mð ð
 ð .ÝÐ,Ñ-Ô-Ð-ð #ˆCàð Ø�	�	�	�	à �t”yØð	à!Ø#Ø!ØØ#Ø$)ð	ð 	ð %ð	ð 	�õ ' t¤|Ð5EÀtÄxÑPÔPÐPð ×.Ò.¨tÑ4Ô4�Ø�
�
�
ðO ñ g	ð g	ð g	ð g	ð g	s   Á/A7 Á72B,Â+B,c                 óÒ   — |j         }|j        }d|v r#|                      |j        j        |¦  «        r|d= | j        rt          |¦  «        nd}|�|                     |¦  «         dS dS )zéWhen being redirected we may want to strip authentication from the
        request to avoid leaking credentials. This method intelligently removes
        and reapplies authentication where possible to avoid credential loss.
        ÚAuthorizationN)rI   rk   r\   ÚrequestÚ	trust_envr!   Úprepare_auth)rK   r�   r=   rI   rk   Únew_auths         r/   r…   z!SessionRedirectMixin.rebuild_auth  sŒ   € ð
 #Ô*ˆØÔ"ˆà˜gÐ%Ð%¨$×*@Ò*@ØÔÔ  #ñ+
ô +
Ð%ð
 ˜Ð(ð +/¬.ÐB•> #Ñ&Ô&Ð&¸dˆØÐØ×)Ò)¨(Ñ3Ô3Ð3Ð3Ð3ð  Ðr1   c                 ó6  — |j         }t          |j        ¦  «        j        }t	          ||| j        ¦  «        }d|v r|d= 	 t          ||         ¦  «        \  }}n# t          $ r d\  }}Y nw xY w|                     d¦  «        s|r|rt          ||¦  «        |d<   |S )a°  This method re-evaluates the proxy configuration by considering the
        environment variables. If we are redirected to a URL covered by
        NO_PROXY, we strip the proxy configuration. Otherwise, we set missing
        proxy keys for this URL (in case they were stripped by a previous
        redirect).

        This method also replaces the Proxy-Authorization header where
        necessary.

        :rtype: dict
        zProxy-Authorization©NNrQ   )
rI   r   rk   rS   r#   r—   r   ÚKeyErrorrv   r   )rK   r�   ri   rI   rS   Únew_proxiesÚusernameÚpasswords           r/   r„   z$SessionRedirectMixin.rebuild_proxies.  sÓ   € ð #Ô*ˆÝÐ*Ô.Ñ/Ô/Ô6ˆÝ%Ð&6¸ÀÄÑPÔPˆà  GÐ+Ð+ØÐ-Ð.ð	,Ý!2°;¸vÔ3FÑ!GÔ!GÑˆH�h�høÝð 	,ð 	,ð 	,Ø!+ÑˆH�h�h�hð	,øøøð
 × Ò  Ñ)Ô)ð 	Q¨hð 	Q¸8ð 	QÝ-<¸XÀxÑ-PÔ-PˆGÐ)Ñ*àÐs   ¿A ÁA*Á)A*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}||_         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ÚPOSTN)Úmethodr|   r   Ú	see_otherÚfoundÚmoved)rK   r�   r=   r¤   s       r/   r{   z#SessionRedirectMixin.rebuild_methodM  s~   € ð "Ô(ˆð Ô¥5¤?Ò2Ð2°vÀÒ7GÐ7GØˆFð Ô¥5¤;Ò.Ð.°6¸VÒ3CÐ3CØˆFð Ô¥5¤;Ò.Ð.°6¸VÒ3CÐ3CØˆFà"(ÐÔÐÐr1   )FNTNNF)	Ú__name__Ú
__module__Ú__qualname__rM   r\   r“   r…   r„   r{   r+   r1   r/   rC   rC   j   s�   € € € € € ðð ð ð(.ð .ð .ðH ØØØØØðyð yð yð yðv4ð 4ð 4ð(ð ð ð>)ð )ð )ð )ð )r1   rC   c                   ó°   — e Zd ZdZg d¢Zd„ Zd„ Zd„ Zd„ Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	„Z	d
„ Z
d„ Zd„ Zdd„Zdd„Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚSessiona€  A Requests session.

    Provides cookie persistence, connection-pooling, and configuration.

    Basic Usage::

      >>> import requests
      >>> s = requests.Session()
      >>> s.get('https://httpbin.org/get')
      <Response [200]>

    Or as a context manager::

      >>> with requests.Session() as s:
      ...     s.get('https://httpbin.org/get')
      <Response [200]>
    )rI   r‚   Úauthri   ÚhooksÚparamsrg   rh   Úadaptersre   r—   rt   c                 ó¢  — t          ¦   «         | _        d | _        i | _        t	          ¦   «         | _        i | _        d| _        d| _        d | _	        t          | _        d| _        t          i ¦  «        | _        t          ¦   «         | _        |                      dt%          ¦   «         ¦  «         |                      dt%          ¦   «         ¦  «         d S )NFTzhttps://zhttp://)r   rI   r­   ri   r   r®   r¯   re   rg   rh   r   rt   r—   r   r‚   r   r°   Úmountr   ©rK   s    r/   Ú__init__zSession.__init__†  s»   € õ 'Ñ(Ô(ˆŒð ˆŒ	ð
 ˆŒõ #‘_”_ˆŒ
ð
 ˆŒð ˆŒð ˆŒð ˆŒ	õ 4ˆÔð ˆŒõ +¨2Ñ.Ô.ˆŒõ $™œˆŒØ�
Š
�:�{™}œ}Ñ-Ô-Ð-Ø�
Š
�9�k™mœmÑ,Ô,Ð,Ð,Ð,r1   c                 ó   — | S r*   r+   r³   s    r/   Ú	__enter__zSession.__enter__Ã  s   € Øˆr1   c                 ó.   — |                       ¦   «          d S r*   )ru   )rK   Úargss     r/   Ú__exit__zSession.__exit__Æ  s   € Ø�
Š
‰Œˆˆˆr1   c                 ó’  — |j         pi }t          |t          j        ¦  «        st	          |¦  «        }t          t          t          ¦   «         | j         ¦  «        |¦  «        }|j        }| j        r|s| j        st          |j
        ¦  «        }t          ¦   «         }|                     |j                             ¦   «         |j
        |j        |j        |j        t%          |j        | j        t(          ¬¦  «        t%          |j        | j        ¦  «        t%          || j        ¦  «        |t-          |j        | j        ¦  «        ¬¦
  «
         |S )a‹  Constructs a :class:`PreparedRequest <PreparedRequest>` for
        transmission and returns it. The :class:`PreparedRequest` has settings
        merged from the :class:`Request <Request>` instance and those of the
        :class:`Session`.

        :param request: :class:`Request` instance to prepare with this
            session's settings.
        :rtype: requests.PreparedRequest
        )r7   )
r¤   rk   ÚfilesÚdataÚjsonrI   r¯   r­   r‚   r®   )r‚   r2   r
   Ú	CookieJarr   r   r   r­   r—   r!   rk   r   Úpreparer¤   Úupperr»   r¼   r½   r;   rI   r   r¯   rA   r®   )rK   r–   r‚   Úmerged_cookiesr­   Úps         r/   Úprepare_requestzSession.prepare_requestÉ  s5  € ð ”/Ð' Rˆõ ˜'¥9Ô#6Ñ7Ô7ð 	3Ý)¨'Ñ2Ô2ˆGõ 'ÝÕ+Ñ-Ô-¨t¬|Ñ<Ô<¸gñ
ô 
ˆð
 Œ|ˆØŒ>ð 	/ $ð 	/¨t¬yð 	/Ý! '¤+Ñ.Ô.ˆDåÑÔˆØ	�	Š	Ø”>×'Ò'Ñ)Ô)Ø”Ø”-Ø”Ø”Ý!Ø” ¤Õ:Mðñ ô õ ! ¤°´Ñ=Ô=Ý˜t T¤YÑ/Ô/Ø"Ý˜gœm¨T¬ZÑ8Ô8ð 	ñ 	
ô 	
ð 	
ð ˆr1   NTc                 ó"  — t          |                     ¦   «         ||||pi ||pi |||¬¦
  «
        }|                      |¦  «        }|pi }|                      |j        ||||¦  «        }|	|
dœ}|                     |¦  «          | j        |fi |¤Ž}|S )aù	  Constructs a :class:`Request <Request>`, prepares it and sends it.
        Returns :class:`Response <Response>` object.

        :param method: method for the new :class:`Request` object.
        :param url: URL for the new :class:`Request` object.
        :param params: (optional) Dictionary or bytes to be sent in the query
            string for the :class:`Request`.
        :param data: (optional) Dictionary, list of tuples, bytes, or file-like
            object to send in the body of the :class:`Request`.
        :param json: (optional) json to send in the body of the
            :class:`Request`.
        :param headers: (optional) Dictionary of HTTP Headers to send with the
            :class:`Request`.
        :param cookies: (optional) Dict or CookieJar object to send with the
            :class:`Request`.
        :param files: (optional) Dictionary of ``'filename': file-like-objects``
            for multipart encoding upload.
        :param auth: (optional) Auth tuple or callable to enable
            Basic/Digest/Custom HTTP Auth.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple
        :param allow_redirects: (optional) Set to True by default.
        :type allow_redirects: bool
        :param proxies: (optional) Dictionary mapping protocol or protocol and
            hostname to the URL of the proxy.
        :param hooks: (optional) Dictionary mapping hook name to one event or
            list of events, event must be callable.
        :param stream: (optional) whether to immediately download the response
            content. Defaults to ``False``.
        :param verify: (optional) Either a boolean, in which case it controls whether we verify
            the server's TLS certificate, or a string, in which case it must be a path
            to a CA bundle to use. Defaults to ``True``. When set to
            ``False``, requests will accept any TLS certificate presented by
            the server, and will ignore hostname mismatches and/or expired
            certificates, which will make your application vulnerable to
            man-in-the-middle (MitM) attacks. Setting verify to ``False``
            may be useful during local development or testing.
        :param cert: (optional) if String, path to ssl client cert file (.pem).
            If Tuple, ('cert', 'key') pair.
        :rtype: requests.Response
        )
r¤   rk   rI   r»   r¼   r½   r¯   r­   r‚   r®   )rf   rj   )r   rÀ   rÃ   Úmerge_environment_settingsrk   r3   r‡   )rK   r¤   rk   r¯   r¼   rI   r‚   r»   r­   rf   rj   ri   r®   re   rg   rh   r½   rˆ   ÚprepÚsettingsÚsend_kwargsrL   s                         r/   r–   zSession.requestô  sÏ   € õ~ Ø—<’<‘>”>ØØØØ�˜ØØ�<˜RØØØð
ñ 
ô 
ˆð ×#Ò# CÑ(Ô(ˆà�-˜Rˆà×2Ò2ØŒH�g˜v v¨tñ
ô 
ˆð Ø.ð
ð 
ˆð 	×Ò˜8Ñ$Ô$Ð$ØˆtŒy˜Ð-Ð- Ð-Ð-ˆàˆr1   c                 óL   — |                      dd¦  «          | j        d|fi |¤ŽS )zåSends a GET request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        rj   Tr¢   ©Ú
setdefaultr–   ©rK   rk   Úkwargss      r/   r>   zSession.getQ  s7   € ð 	×ÒÐ+¨TÑ2Ô2Ð2ØˆtŒ|˜E 3Ð1Ð1¨&Ð1Ð1Ð1r1   c                 óL   — |                      dd¦  «          | j        d|fi |¤ŽS )zéSends a OPTIONS request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        rj   TÚOPTIONSrÊ   rÌ   s      r/   ÚoptionszSession.options\  s7   € ð 	×ÒÐ+¨TÑ2Ô2Ð2ØˆtŒ|˜I sÐ5Ð5¨fÐ5Ð5Ð5r1   c                 óL   — |                      dd¦  «          | j        d|fi |¤ŽS )zæSends a HEAD request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        rj   Fr¡   rÊ   rÌ   s      r/   ÚheadzSession.headg  s7   € ð 	×ÒÐ+¨UÑ3Ô3Ð3ØˆtŒ|˜F CÐ2Ð2¨6Ð2Ð2Ð2r1   c                 ó&   —  | j         d|f||dœ|¤ŽS )aÈ  Sends a POST request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param data: (optional) Dictionary, list of tuples, bytes, or file-like
            object to send in the body of the :class:`Request`.
        :param json: (optional) json to send in the body of the :class:`Request`.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        r£   )r¼   r½   ©r–   )rK   rk   r¼   r½   rÍ   s        r/   ÚpostzSession.postr  s'   € ð ˆtŒ|˜F CÐH¨d¸ÐHÐHÀÐHÐHÐHr1   c                 ó$   —  | j         d|fd|i|¤ŽS )au  Sends a PUT request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param data: (optional) Dictionary, list of tuples, bytes, or file-like
            object to send in the body of the :class:`Request`.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        ÚPUTr¼   rÔ   ©rK   rk   r¼   rÍ   s       r/   ÚputzSession.put  s%   € ð ˆtŒ|˜E 3Ð<Ð<¨TÐ<°VÐ<Ð<Ð<r1   c                 ó$   —  | j         d|fd|i|¤ŽS )aw  Sends a PATCH request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param data: (optional) Dictionary, list of tuples, bytes, or file-like
            object to send in the body of the :class:`Request`.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        ÚPATCHr¼   rÔ   rØ   s       r/   ÚpatchzSession.patch‹  s%   € ð ˆtŒ|˜G SÐ>Ð>¨tÐ>°vÐ>Ð>Ð>r1   c                 ó    —  | j         d|fi |¤ŽS )zèSends a DELETE request. Returns :class:`Response` object.

        :param url: URL for the new :class:`Request` object.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :rtype: requests.Response
        ÚDELETErÔ   rÌ   s      r/   ÚdeletezSession.delete—  s    € ð ˆtŒ|˜H cÐ4Ð4¨VÐ4Ð4Ð4r1   c                 ó.  — |                      d| j        ¦  «         |                      d| j        ¦  «         |                      d| j        ¦  «         d|vrt	          || j        | j        ¦  «        |d<   t          |t          ¦  «        rt          d¦  «        ‚| 
                    dd¦  «        }|                     d¦  «        }|j        }|                      |j        ¬¦  «        }t          ¦   «         } |j        |fi |¤Ž}t          ¦   «         |z
  }	t#          |	¬	¦  «        |_        t'          d
||fi |¤Ž}|j        r*|j        D ]"}
t+          | j        |
j        |
j        ¦  «         Œ#t+          | j        ||j        ¦  «         |r | j        ||fi |¤Ž}d„ |D ¦   «         }ng }|r1|                     d|¦  «         | 
                    ¦   «         }||_        |s5	 t7           | j        ||fddi|¤Ž¦  «        |_        n# t:          $ r Y nw xY w|s|j         |S )zISend a given PreparedRequest.

        :rtype: requests.Response
        re   rg   rh   ri   z#You can only send PreparedRequests.rj   T)rk   )Úsecondsr=   c                 ó   — g | ]}|‘ŒS r+   r+   )r,   rL   s     r/   r0   z Session.send.<locals>.<listcomp>Ô  s   € Ð,Ð,Ð, �tÐ,Ð,Ð,r1   r   r‰   )rË   re   rg   rh   r#   ri   r—   r2   r   Ú
ValueErrorr   r>   r®   Úget_adapterrk   Úpreferred_clockr‡   r   Úelapsedr   rn   r   r‚   r–   rq   r“   ÚinsertÚnextÚ_nextÚStopIterationro   )rK   r–   rÍ   rj   re   r®   ÚadapterÚstartÚrræ   rL   Úgenrn   s                r/   r‡   zSession.send¡  s€  € ð 	×Ò˜( D¤KÑ0Ô0Ð0Ø×Ò˜( D¤KÑ0Ô0Ð0Ø×Ò˜& $¤)Ñ,Ô,Ð,Ø˜FÐ"Ð"Ý /°¸¼ÀtÄ~Ñ VÔ VˆF�9Ñõ �g�wÑ'Ô'ð 	DÝÐBÑCÔCÐCð !Ÿ*š*Ð%6¸Ñ=Ô=ˆØ—’˜HÑ%Ô%ˆØ”ˆð ×"Ò" w¤{Ð"Ñ3Ô3ˆõ  Ñ!Ô!ˆð ˆGŒL˜Ð+Ð+ FÐ+Ð+ˆõ "Ñ#Ô# eÑ+ˆÝ gÐ.Ñ.Ô.ˆŒ	õ ˜* e¨QÐ9Ð9°&Ð9Ð9ˆð Œ9ð 	Màœ	ð Mð M�Ý& t¤|°T´\À4Ä8ÑLÔLÐLÐLå˜tœ|¨W°a´eÑ<Ô<Ð<ð ð 	à(�$Ô(¨¨GÐ>Ð>°vÐ>Ð>ˆCØ,Ð,¨Ð,Ñ,Ô,ˆGˆGàˆGð ð 	 à�NŠN˜1˜aÑ Ô Ð à—’‘”ˆAØˆAŒIð ð 	ðÝØ*�DÔ*¨1¨gÐUÐUÀdÐUÈfÐUÐUñô �”�øõ !ð ð ð Ø�ðøøøð ð 	ØŒIˆIàˆs   Ç#G< Ç<
H	ÈH	c                 ó  — | j         r |�|                     d¦  «        nd}t          ||¬¦  «        }|                     ¦   «         D ]\  }}	|                     ||	¦  «         Œ|du s|€@t
          j                             d¦  «        p t
          j                             d¦  «        p|}t          || j        ¦  «        }t          || j	        ¦  «        }t          || j
        ¦  «        }t          || j        ¦  «        }||||dœS )z^
        Check the environment and merge it with some settings.

        :rtype: dict
        NÚno_proxy)rð   TÚREQUESTS_CA_BUNDLEÚCURL_CA_BUNDLE)ri   re   rg   rh   )r—   r>   r    r4   rË   ÚosÚenvironr;   ri   re   rg   rh   )
rK   rk   ri   re   rg   rh   rð   Úenv_proxiesr-   r.   s
             r/   rÅ   z"Session.merge_environment_settingsî  s  € ð Œ>ð 	à29Ð2E�w—{’{ :Ñ.Ô.Ð.È4ˆHÝ-¨c¸HÐEÑEÔEˆKØ#×)Ò)Ñ+Ô+ð )ð )‘��1Ø×"Ò" 1 aÑ(Ô(Ð(Ð(ð ˜ˆ~ˆ~  å”J—N’NÐ#7Ñ8Ô8ð Ý”z—~’~Ð&6Ñ7Ô7ðàð õ   ¨¬Ñ6Ô6ˆÝ˜v t¤{Ñ3Ô3ˆÝ˜v t¤{Ñ3Ô3ˆÝ˜T 4¤9Ñ-Ô-ˆà"¨fÀÐPTÐUÐUÐUr1   c                 óÞ   — | j                              ¦   «         D ]B\  }}|                     ¦   «                              |                     ¦   «         ¦  «        r|c S ŒCt	          d|›�¦  «        ‚)z~
        Returns the appropriate connection adapter for the given URL.

        :rtype: requests.adapters.BaseAdapter
        z&No connection adapters were found for )r°   r4   Úlowerrv   r   )rK   rk   Úprefixrë   s       r/   rä   zSession.get_adapter  sr   € ð  $œ}×2Ò2Ñ4Ô4ð 	ð 	‰OˆF�GØ�yŠy‰{Œ{×%Ò% f§l¢l¡n¤nÑ5Ô5ð Ø���ðõ ÐLÀSÐLÐLÑMÔMÐMr1   c                 óf   — | j                              ¦   «         D ]}|                     ¦   «          ŒdS )z+Closes all adapters and as such the sessionN)r°   Úvaluesru   )rK   r.   s     r/   ru   zSession.close  s8   € à”×%Ò%Ñ'Ô'ð 	ð 	ˆAØ�GŠG‰IŒIˆIˆIð	ð 	r1   c                 ó�   ‡— || j         ‰<   ˆfd„| j         D ¦   «         }|D ]$}| j                              |¦  «        | j         |<   Œ%dS )zwRegisters a connection adapter to a prefix.

        Adapters are sorted in descending order by prefix length.
        c                 óT   •— g | ]$}t          |¦  «        t          ‰¦  «        k     ¯"|‘Œ%S r+   )rs   )r,   r-   rø   s     €r/   r0   z!Session.mount.<locals>.<listcomp>%  s/   ø€ ÐIÐIÐI˜aµC¸±F´F½SÀ¹[¼[Ò4HÐ4H˜Ð4HÐ4HÐ4Hr1   N)r°   r   )rK   rø   rë   Úkeys_to_mover:   s    `   r/   r²   zSession.mount  sd   ø€ ð
 !(ˆŒ�fÑØIÐIÐIÐI 4¤=ÐIÑIÔIˆàð 	8ð 	8ˆCØ!%¤×!2Ò!2°3Ñ!7Ô!7ˆDŒM˜#ÑÐð	8ð 	8r1   c                 ó.   ‡ — ˆ fd„‰ j         D ¦   «         }|S )Nc                 ó4   •— i | ]}|t          ‰|d ¦  «        “ŒS r*   )Úgetattr)r,   ÚattrrK   s     €r/   ú
<dictcomp>z(Session.__getstate__.<locals>.<dictcomp>+  s'   ø€ ÐLÐLÐL°T�•w˜t T¨4Ñ0Ô0ÐLÐLÐLr1   )Ú	__attrs__)rK   Ústates   ` r/   Ú__getstate__zSession.__getstate__*  s#   ø€ ØLÐLÐLÐL¸T¼^ÐLÑLÔLˆØˆr1   c                 ó\   — |                      ¦   «         D ]\  }}t          | ||¦  «         Œd S r*   )r4   Úsetattr)rK   r  r  Úvalues       r/   Ú__setstate__zSession.__setstate__.  s<   € Ø Ÿ;š;™=œ=ð 	'ð 	'‰KˆD�%Ý�D˜$ Ñ&Ô&Ð&Ð&ð	'ð 	'r1   )NNNNNNNTNNNNNNr›   r*   )r¨   r©   rª   Ú__doc__r  r´   r¶   r¹   rÃ   r–   r>   rÐ   rÒ   rÕ   rÙ   rÜ   rß   r‡   rÅ   rä   ru   r²   r  r	  r+   r1   r/   r¬   r¬   d  s¡  € € € € € ðð ð$ð ð €Ið;-ð ;-ð ;-ðzð ð ðð ð ð)ð )ð )ð^ ØØØØØØØØØØØØØð#[ð [ð [ð [ðz	2ð 	2ð 	2ð	6ð 	6ð 	6ð	3ð 	3ð 	3ðIð Ið Ið Ið
=ð 
=ð 
=ð 
=ð
?ð 
?ð 
?ð 
?ð5ð 5ð 5ðKð Kð KðZVð Vð Vð>Nð Nð Nðð ð ð
	8ð 	8ð 	8ðð ð ð'ð 'ð 'ð 'ð 'r1   r¬   c                  ó   — t          ¦   «         S )aZ  
    Returns a :class:`Session` for context-management.

    .. deprecated:: 1.0.0

        This method has been deprecated since version 1.0.0 and is only kept for
        backwards compatibility. New code should use :class:`~requests.sessions.Session`
        to create a session. This may be removed at a future date.

    :rtype: Session
    )r¬   r+   r1   r/   Úsessionr  3  s   € õ ‰9Œ9Ðr1   )<r
  ró   ÚsysÚtimeÚcollectionsr   Údatetimer   Ú_internal_utilsr   r°   r   r­   r   Úcompatr	   r
   r   r   r‚   r   r   r   r   Ú
exceptionsr   r   r   r   r®   r   r   Úmodelsr   r   r   r   Ústatus_codesr   Ú
structuresr   Úutilsr   r   r   r    r!   r"   r#   r$   r%   r&   ÚplatformÚperf_counterrå   r;   rA   rC   r¬   r  r+   r1   r/   ú<module>r     sí  ððð ð 
€	€	€	Ø 
€
€
€
Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð à -Ð -Ð -Ð -Ð -Ð -Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð 0Ð /Ð /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð ð ð ð ð ð ð ð ð  Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð „<�7ÒÐØÔ'€O€Oà”i€Oð @Kð ð ð ð ð< :Eð Cð Cð Cð Cðw)ð w)ð w)ð w)ð w)ñ w)ô w)ð w)ðtL'ð L'ð L'ð L'ð L'Ð"ñ L'ô L'ð L'ð^ð ð ð ð r1   