§
    °eîiº'  ã                   óú   — d Z ddlZddlZddlZddlZddlZddlZddlmZ ddl	m
Z
 ddlmZmZmZ ddlmZ ddlmZ d	Zd
Zd„ Z G d„ d¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )z]
requests.auth
~~~~~~~~~~~~~

This module contains the authentication handlers for Requests.
é    N)Ú	b64encodeé   )Úto_native_string)Ú
basestringÚstrÚurlparse)Úextract_cookies_to_jar)Úparse_dict_headerz!application/x-www-form-urlencodedzmultipart/form-datac           	      ó`  — t          | t          ¦  «        s.t          j        d| ›d�t          ¬¦  «         t          | ¦  «        } t          |t          ¦  «        s;t          j        dt          |¦  «        ›d�t          ¬¦  «         t          |¦  «        }t          | t
          ¦  «        r|                      d¦  «        } t          |t
          ¦  «        r|                     d¦  «        }dt          t          d 
                    | |f¦  «        ¦  «                             ¦   «         ¦  «        z   }|S )zReturns a Basic Auth string.zpNon-string usernames will no longer be supported in Requests 3.0.0. Please convert the object you've passed in (zC) to a string or bytes object in the near future to avoid problems.)ÚcategoryzpNon-string passwords will no longer be supported in Requests 3.0.0. Please convert the object you've passed in (Úlatin1zBasic ó   :)Ú
isinstancer   ÚwarningsÚwarnÚDeprecationWarningr   ÚtypeÚencoder   r   ÚjoinÚstrip)ÚusernameÚpasswordÚauthstrs      úQ/home/div/.hermes/hermes-agent/venv/lib/python3.11/site-packages/requests/auth.pyÚ_basic_auth_strr      s@  € õ �h¥
Ñ+Ô+ð !ÝŒðØBJðð ð õ (ð	
ñ 	
ô 	
ð 	
õ �x‘=”=ˆå�h¥
Ñ+Ô+ð !ÝŒðÝBFÀxÁ.Ä.ðð ð õ (ð	
ñ 	
ô 	
ð 	
õ �x‘=”=ˆõ �(�CÑ Ô ð -Ø—?’? 8Ñ,Ô,ˆå�(�CÑ Ô ð -Ø—?’? 8Ñ,Ô,ˆàÕ)Ý�$—)’)˜X xÐ0Ñ1Ô1Ñ2Ô2×8Ò8Ñ:Ô:ñô ñ €Gð €Nó    c                   ó   — e Zd ZdZd„ ZdS )ÚAuthBasez4Base class that all auth implementations derive fromc                 ó    — t          d¦  «        ‚)NzAuth hooks must be callable.)ÚNotImplementedError©ÚselfÚrs     r   Ú__call__zAuthBase.__call__H   s   € Ý!Ð"@ÑAÔAÐAr   N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r$   © r   r   r   r   E   s.   € € € € € Ø>Ð>ðBð Bð Bð Bð Br   r   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚHTTPBasicAuthz?Attaches HTTP Basic Authentication to the given Request object.c                 ó"   — || _         || _        d S ©N)r   r   ©r"   r   r   s      r   Ú__init__zHTTPBasicAuth.__init__O   s   € Ø ˆŒØ ˆŒˆˆr   c           	      ó„   — t          | j        t          |dd ¦  «        k    | j        t          |dd ¦  «        k    g¦  «        S ©Nr   r   ©Úallr   Úgetattrr   ©r"   Úothers     r   Ú__eq__zHTTPBasicAuth.__eq__S   óE   € Ýà”¥¨°
¸DÑ!AÔ!AÒAØ”¥¨°
¸DÑ!AÔ!AÒAðñ
ô 
ð 	
r   c                 ó   — | |k     S r.   r*   r6   s     r   Ú__ne__zHTTPBasicAuth.__ne__[   ó   € Ø˜5’=Ð Ð r   c                 óJ   — t          | j        | j        ¦  «        |j        d<   |S )NÚAuthorization©r   r   r   Úheadersr!   s     r   r$   zHTTPBasicAuth.__call__^   s!   € Ý%4°T´]ÀDÄMÑ%RÔ%RˆŒ	�/Ñ"Øˆr   N)r&   r'   r(   r)   r0   r8   r;   r$   r*   r   r   r,   r,   L   sV   € € € € € ØIÐIð!ð !ð !ð
ð 
ð 
ð!ð !ð !ðð ð ð ð r   r,   c                   ó   — e Zd ZdZd„ ZdS )ÚHTTPProxyAuthz=Attaches HTTP Proxy Authentication to a given Request object.c                 óJ   — t          | j        | j        ¦  «        |j        d<   |S )NzProxy-Authorizationr?   r!   s     r   r$   zHTTPProxyAuth.__call__f   s"   € Ý+:¸4¼=È$Ì-Ñ+XÔ+XˆŒ	Ð'Ñ(Øˆr   Nr%   r*   r   r   rB   rB   c   s)   € € € € € ØGÐGðð ð ð ð r   rB   c                   óB   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚHTTPDigestAuthz@Attaches HTTP Digest Authentication to the given Request object.c                 óR   — || _         || _        t          j        ¦   «         | _        d S r.   )r   r   Ú	threadingÚlocalÚ_thread_localr/   s      r   r0   zHTTPDigestAuth.__init__n   s&   € Ø ˆŒØ ˆŒå&œ_Ñ.Ô.ˆÔÐÐr   c                 óÄ   — t          | j        d¦  «        sJd| j        _        d| j        _        d| j        _        i | j        _        d | j        _        d | j        _        d S d S )NÚinitTÚ r   )ÚhasattrrI   rK   Ú
last_nonceÚnonce_countÚchalÚposÚnum_401_calls)r"   s    r   Úinit_per_thread_statez$HTTPDigestAuth.init_per_thread_statet   si   € å�tÔ)¨6Ñ2Ô2ð 	4Ø&*ˆDÔÔ#Ø,.ˆDÔÔ)Ø-.ˆDÔÔ*Ø&(ˆDÔÔ#Ø%)ˆDÔÔ"Ø/3ˆDÔÔ,Ð,Ð,ð	4ð 	4r   c                 óÔ  ‡— | j         j        d         }| j         j        d         }| j         j                             d¦  «        }| j         j                             d¦  «        }| j         j                             d¦  «        }dŠ|€d}n|                     ¦   «         }|dk    s|dk    rd	„ }	|	Šn#|d
k    rd„ }
|
Šn|dk    rd„ }|Šn|dk    rd„ }|Šˆfd„}‰€dS d}t	          |¦  «        }|j        pd}|j        r|d|j        › �z  }| j        › d|› d| j        › �}|› d|› �} ‰|¦  «        } ‰|¦  «        }|| j         j	        k    r| j         xj
        dz  c_
        nd| j         _
        | j         j
        d›}t          | j         j
        ¦  «                             d¦  «        }||                     d¦  «        z  }|t          j        ¦   «                              d¦  «        z  }|t          j        d¦  «        z  }t#          j        |¦  «                             ¦   «         dd…         }|dk    r ‰|› d|› d|› �¦  «        }|s |||› d|› �¦  «        }n9|dk    sd|                     d¦  «        v r|› d|› d|› d|› �} |||¦  «        }ndS || j         _	        d| j        › d|› d|› d|› d |› d!�}|r	|d"|› d!�z  }|r	|d#|› d!�z  }|r	|d$|› d!�z  }|r|d%|› d&|› d!�z  }d'|› �S )(z
        :rtype: str
        ÚrealmÚnonceÚqopÚ	algorithmÚopaqueNÚMD5zMD5-SESSc                 ó¢   — t          | t          ¦  «        r|                      d¦  «        } t          j        | ¦  «                             ¦   «         S ©Núutf-8)r   r   r   ÚhashlibÚmd5Ú	hexdigest©Úxs    r   Úmd5_utf8z4HTTPDigestAuth.build_digest_header.<locals>.md5_utf8‘   s?   € Ý˜a¥Ñ%Ô%ð *ØŸš Ñ)Ô)�AÝ”{ 1‘~”~×/Ò/Ñ1Ô1Ð1r   ÚSHAc                 ó¢   — t          | t          ¦  «        r|                      d¦  «        } t          j        | ¦  «                             ¦   «         S r\   )r   r   r   r^   Úsha1r`   ra   s    r   Úsha_utf8z4HTTPDigestAuth.build_digest_header.<locals>.sha_utf8™   s?   € Ý˜a¥Ñ%Ô%ð *ØŸš Ñ)Ô)�AÝ”| A‘”×0Ò0Ñ2Ô2Ð2r   zSHA-256c                 ó¢   — t          | t          ¦  «        r|                      d¦  «        } t          j        | ¦  «                             ¦   «         S r\   )r   r   r   r^   Úsha256r`   ra   s    r   Úsha256_utf8z7HTTPDigestAuth.build_digest_header.<locals>.sha256_utf8¡   óA   € Ý˜a¥Ñ%Ô%ð *ØŸš Ñ)Ô)�AÝ”~ aÑ(Ô(×2Ò2Ñ4Ô4Ð4r   zSHA-512c                 ó¢   — t          | t          ¦  «        r|                      d¦  «        } t          j        | ¦  «                             ¦   «         S r\   )r   r   r   r^   Úsha512r`   ra   s    r   Úsha512_utf8z7HTTPDigestAuth.build_digest_header.<locals>.sha512_utf8©   rk   r   c                 ó$   •—  ‰| › d|› �¦  «        S )Nú:r*   )ÚsÚdÚ	hash_utf8s     €r   ú<lambda>z4HTTPDigestAuth.build_digest_header.<locals>.<lambda>°   s   ø€ ˜)˜) q J J¨1 J JÑ/Ô/€ r   ú/ú?rp   r   Ú08xr]   é   é   ÚauthÚ,z:auth:z
username="z
", realm="z
", nonce="z", uri="z", response="ú"z
, opaque="z, algorithm="z
, digest="z, qop="auth", nc=z
, cnonce="zDigest )rI   rP   ÚgetÚupperr   ÚpathÚqueryr   r   rN   rO   r   r   ÚtimeÚctimeÚosÚurandomr^   rf   r`   Úsplit)r"   ÚmethodÚurlrU   rV   rW   rX   rY   Ú
_algorithmrc   rg   rj   rn   ÚKDÚentdigÚp_parsedr   ÚA1ÚA2ÚHA1ÚHA2Úncvaluerq   ÚcnonceÚrespdigÚnoncebitÚbasers   s                              @r   Úbuild_digest_headerz"HTTPDigestAuth.build_digest_header~   s5  ø€ ð
 Ô"Ô'¨Ô0ˆØÔ"Ô'¨Ô0ˆØÔ Ô%×)Ò)¨%Ñ0Ô0ˆØÔ&Ô+×/Ò/°Ñ<Ô<ˆ	ØÔ#Ô(×,Ò,¨XÑ6Ô6ˆØˆ	àÐØˆJˆJà"ŸšÑ*Ô*ˆJà˜ÒÐ *°
Ò":Ð":ð2ð 2ð 2ð
 !ˆIˆIØ˜5Ò Ð ð3ð 3ð 3ð
 !ˆIˆIØ˜9Ò$Ð$ð5ð 5ð 5ð
 $ˆIˆIØ˜9Ò$Ð$ð5ð 5ð 5ð
 $ˆIà/Ð/Ð/Ð/ˆàÐØ�4ð ˆÝ˜C‘=”=ˆàŒ}Ð# ˆØŒ>ð 	)ØÐ(˜œÐ(Ð(Ñ(ˆDà”Ð7Ð7 Ð7Ð7¨¬Ð7Ð7ˆØÐÐ˜ÐÐˆàˆi˜‰mŒmˆØˆi˜‰mŒmˆà�DÔ&Ô1Ò1Ð1ØÔÐ*Ô*¨aÑ/Ð*Ô*Ð*à-.ˆDÔÔ*ØÔ'Ô3Ð9Ð9ˆÝ�Ô"Ô.Ñ/Ô/×6Ò6°wÑ?Ô?ˆØ	ˆU�\Š\˜'Ñ"Ô"Ñ"ˆØ	�TŒZ‰\Œ\× Ò  Ñ)Ô)Ñ)ˆØ	�RŒZ˜‰]Œ]Ñˆå”˜a‘”×*Ò*Ñ,Ô,¨S¨b¨SÔ1ˆØ˜Ò#Ð#Ø�)˜sÐ5Ð5 UÐ5Ð5¨VÐ5Ð5Ñ6Ô6ˆCàð 	Ø�b˜ Ð.Ð.¨Ð.Ð.Ñ/Ô/ˆGˆGØ�FŠ]ˆ]˜f¨¯	ª	°#©¬Ð6Ð6ØÐ?Ð? 'Ð?Ð?¨FÐ?Ð?¸#Ð?Ð?ˆHØ�b˜˜hÑ'Ô'ˆGˆGð �4à(-ˆÔÔ%ð2˜œð 2ð 2°%ð 2ð 2À5ð 2ð 2Øð2ð 2Ø'.ð2ð 2ð 2ð 	ð ð 	+ØÐ* Ð*Ð*Ð*Ñ*ˆDØð 	1ØÐ0 IÐ0Ð0Ð0Ñ0ˆDØð 	+ØÐ* Ð*Ð*Ð*Ñ*ˆDØð 	EØÐD¨ÐDÐD¸6ÐDÐDÐDÑDˆDà˜ÐÐÐr   c                 ó0   — |j         rd| j        _        dS dS )z)Reset num_401_calls counter on redirects.r   N)Úis_redirectrI   rR   )r"   r#   Úkwargss      r   Úhandle_redirectzHTTPDigestAuth.handle_redirectì   s'   € àŒ=ð 	1Ø/0ˆDÔÔ,Ð,Ð,ð	1ð 	1r   c                 ó²  — d|j         cxk    rdk     sn d| j        _        |S | j        j        �)|j        j                             | j        j        ¦  «         |j                             dd¦  «        }d| 	                    ¦   «         v �rA| j        j        dk     �r0| j        xj        dz  c_        t          j        d	t          j        ¬
¦  «        }t          |                     d|d¬¦  «        ¦  «        | j        _        |j         |                     ¦   «          |j                             ¦   «         }t'          |j        |j        |j        ¦  «         |                     |j        ¦  «         |                      |j        |j        ¦  «        |j        d<    |j        j        |fi |¤Ž}|j                             |¦  «         ||_        |S d| j        _        |S )zo
        Takes the given response and tries digest-auth, if needed.

        :rtype: requests.Response
        i�  iô  r   Nzwww-authenticaterL   Údigesté   zdigest )Úflags)Úcountr>   )Ústatus_coderI   rR   rQ   ÚrequestÚbodyÚseekr@   r}   ÚlowerÚreÚcompileÚ
IGNORECASEr
   ÚsubrP   ÚcontentÚcloseÚcopyr	   Ú_cookiesÚrawÚprepare_cookiesr•   r†   r‡   Ú
connectionÚsendÚhistoryÚappend)r"   r#   r˜   Ús_authÚpatÚprepÚ_rs          r   Ú
handle_401zHTTPDigestAuth.handle_401ñ   s·  € ð �a”mÐ)Ð)Ò)Ð) cÒ)Ð)Ð)Ð)Ø/0ˆDÔÔ,ØˆHàÔÔ!Ð-ð ŒIŒN×Ò Ô 2Ô 6Ñ7Ô7Ð7Ø”—’Ð1°2Ñ6Ô6ˆà�v—|’|‘~”~Ð%Ñ%¨$Ô*<Ô*JÈQÒ*NÑ*NØÔÐ,Ô,°Ñ1Ð,Ô,Ý”*˜Z­r¬}Ð=Ñ=Ô=ˆCÝ&7¸¿ºÀÀFÐRS¸Ñ8TÔ8TÑ&UÔ&UˆDÔÔ#ð ŒIˆIØ�GŠG‰IŒIˆIØ”9—>’>Ñ#Ô#ˆDÝ" 4¤=°!´)¸Q¼UÑCÔCÐCØ× Ò  ¤Ñ/Ô/Ð/à,0×,DÒ,DØ”˜TœXñ-ô -ˆDŒL˜Ñ)ð #�”Ô" 4Ð2Ð2¨6Ð2Ð2ˆBØŒJ×Ò˜aÑ Ô Ð ØˆBŒJàˆIà+,ˆÔÔ(Øˆr   c                 óœ  — |                       ¦   «          | j        j        r(|                      |j        |j        ¦  «        |j        d<   	 |j                             ¦   «         | j        _	        n# t          $ r d | j        _	        Y nw xY w|                     d| j        ¦  «         |                     d| j        ¦  «         d| j        _        |S )Nr>   Úresponser   )rS   rI   rN   r•   r†   r‡   r@   r¡   ÚtellrQ   ÚAttributeErrorÚregister_hookr¶   r™   rR   r!   s     r   r$   zHTTPDigestAuth.__call__  sÍ   € à×"Ò"Ñ$Ô$Ð$àÔÔ(ð 	SØ)-×)AÒ)AÀ!Ä(ÈAÌEÑ)RÔ)RˆAŒI�oÑ&ð	*Ø%&¤V§[¢[¡]¤]ˆDÔÔ"Ð"øÝð 	*ð 	*ð 	*ð
 &*ˆDÔÔ"Ð"Ð"ð	*øøøð 	
�Š˜
 D¤OÑ4Ô4Ð4Ø	�Š˜
 DÔ$8Ñ9Ô9Ð9Ø+,ˆÔÔ(àˆs   Á
#A. Á.BÂBc           	      ó„   — t          | j        t          |dd ¦  «        k    | j        t          |dd ¦  «        k    g¦  «        S r2   r3   r6   s     r   r8   zHTTPDigestAuth.__eq__1  r9   r   c                 ó   — | |k     S r.   r*   r6   s     r   r;   zHTTPDigestAuth.__ne__9  r<   r   N)r&   r'   r(   r)   r0   rS   r•   r™   r¶   r$   r8   r;   r*   r   r   rE   rE   k   s—   € € € € € ØJÐJð/ð /ð /ð4ð 4ð 4ðl ð l ð l ð\1ð 1ð 1ð
*ð *ð *ðXð ð ð(
ð 
ð 
ð!ð !ð !ð !ð !r   rE   )r)   r^   rƒ   r¤   rG   r�   r   Úbase64r   Ú_internal_utilsr   Úcompatr   r   r   Úcookiesr	   Úutilsr
   ÚCONTENT_TYPE_FORM_URLENCODEDÚCONTENT_TYPE_MULTI_PARTr   r   r,   rB   rE   r*   r   r   ú<module>rÅ      sŽ  ððð ð €€€Ø 	€	€	€	Ø 	€	€	€	Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð à -Ð -Ð -Ð -Ð -Ð -Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø +Ð +Ð +Ð +Ð +Ð +Ø $Ð $Ð $Ð $Ð $Ð $àBÐ Ø/Ð ð)ð )ð )ðXBð Bð Bð Bð Bñ Bô Bð Bðð ð ð ð �Hñ ô ð ð.ð ð ð ð �Mñ ô ð ðO!ð O!ð O!ð O!ð O!�Xñ O!ô O!ð O!ð O!ð O!r   