Ë
    Eü´jÉ/  ã                  óL  — U d Z ddlm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mZmZmZ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 erddlmZ ddlmZ ddlmZmZ dZ de!d<   dZ"de!d<   dd„Z# G d„ d«      Z$ G d„ de$«      Z% G d„ de%«      Z& G d„ de$«      Z'y)z]
requests.auth
~~~~~~~~~~~~~

This module contains the authentication handlers for Requests.
é    )ÚannotationsN)Ú	b64encode)ÚTYPE_CHECKINGÚAnyÚFinalÚcastÚoverloadé   )Úto_native_string)Ú
basestringÚstrÚurlparse)Úextract_cookies_to_jar)Úparse_dict_header)Ú	CookieJar)r   )ÚPreparedRequestÚResponsez!application/x-www-form-urlencodedr   ÚCONTENT_TYPE_FORM_URLENCODEDzmultipart/form-dataÚCONTENT_TYPE_MULTI_PARTc           	     óð  — t        | t        «      s*t        j                  d| ›d�t        ¬«       t        | «      } t        |t        «      s3t        j                  dt        |«      ›d�t        ¬«       t        |«      }t        | t
        «      r| j                  d«      } t        |t
        «      r|j                  d«      }dt        t        dj                  | |f«      «      j                  «       «      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      úK/root/workspace/ytshorts/venv/lib/python3.12/site-packages/requests/auth.pyÚ_basic_auth_strr&   "   së   € ô �h¤
Ô+Ü�‰ðBØBJÀð Nðô (õ	
ô �x“=ˆä�h¤
Ô+Ü�‰ðBÜBFÀxÃ.ÐASð Tðô (õ	
ô �x“=ˆô �(œCÔ Ø—?‘? 8Ó,ˆä�(œCÔ Ø—?‘? 8Ó,ˆàÔ)Ü�$—)‘)˜X xÐ0Ó1Ó2×8Ñ8Ó:óñ €Gð €Nó    c                  ó   — e Zd ZdZdd„Zy)ÚAuthBasez4Base class that all auth implementations derive fromc                ó   — t        d«      ‚)NzAuth hooks must be callable.)ÚNotImplementedError©ÚselfÚrs     r%   Ú__call__zAuthBase.__call__Q   s   € Ü!Ð"@ÓAÐAr'   N©r.   r   Úreturnr   ©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r/   © r'   r%   r)   r)   N   s   „ Ù>ôBr'   r)   c                  ój   — e Zd ZU dZded<   ded<   edd„«       Zedd„«       Zdd„Zdd„Zdd	„Zdd
„Z	y)ÚHTTPBasicAuthz?Attaches HTTP Basic Authentication to the given Request object.úbytes | strr"   r#   c                 ó   — y ©Nr7   ©r-   r"   r#   s      r%   Ú__init__zHTTPBasicAuth.__init__[   ó   € Ø>Ar'   c                 ó   — y r<   r7   r=   s      r%   r>   zHTTPBasicAuth.__init__]   ó   € ØBEr'   c                ó    — || _         || _        y r<   )r"   r#   r=   s      r%   r>   zHTTPBasicAuth.__init__`   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__d   ó>   € Üà—‘¤¨°
¸DÓ!AÑAØ—‘¤¨°
¸DÓ!AÑAðó
ð 	
r'   c                ó   — | |k(   S r<   r7   rH   s     r%   Ú__ne__zHTTPBasicAuth.__ne__l   ó   € Ø˜5‘=Ð Ð r'   c                ó`   — t        | j                  | j                  «      |j                  d<   |S )NÚAuthorization©r&   r"   r#   Úheadersr,   s     r%   r/   zHTTPBasicAuth.__call__o   s$   € Ü%4°T·]±]ÀDÇMÁMÓ%Rˆ�	‰	�/Ñ"Øˆr'   N©r"   r   r#   r   r1   ÚNone©r"   Úbytesr#   rV   r1   rT   ©r"   r:   r#   r:   r1   rT   ©rI   Úobjectr1   Úbool©rI   r   r1   rZ   r0   )
r3   r4   r5   r6   Ú__annotations__r	   r>   rJ   rM   r/   r7   r'   r%   r9   r9   U   sA   … ÙIàÓØÓàÚAó ØAØÚEó ØEó!ó
ó!ôr'   r9   c                  ó   — e Zd ZdZdd„Zy)ÚHTTPProxyAuthz=Attaches HTTP Proxy Authentication to a given Request object.c                ó`   — t        | j                  | j                  «      |j                  d<   |S )NzProxy-AuthorizationrQ   r,   s     r%   r/   zHTTPProxyAuth.__call__w   s%   € Ü+:¸4¿=¹=È$Ï-É-Ó+Xˆ�	‰	Ð'Ñ(Øˆr'   Nr0   r2   r7   r'   r%   r^   r^   t   s
   „ ÙGôr'   r^   c                  óÆ   — e Zd ZU dZded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   edd„«       Zedd„«       Zdd„Zdd„Zdd„Zd d„Z	d!d„Z
d"d„Zd#d„Zd$d„Zy)%ÚHTTPDigestAuthz@Attaches HTTP Digest Authentication to the given Request object.r:   r"   r#   zthreading.localÚ_thread_localr   Ú
last_nonceÚintÚnonce_countzdict[str, str]Úchalz
int | NoneÚposÚnum_401_callsc                 ó   — y r<   r7   r=   s      r%   r>   zHTTPDigestAuth.__init__ˆ   r?   r'   c                 ó   — y r<   r7   r=   s      r%   r>   zHTTPDigestAuth.__init__Š   rA   r'   c                óR   — || _         || _        t        j                  «       | _        y r<   )r"   r#   Ú	threadingÚlocalrb   r=   s      r%   r>   zHTTPDigestAuth.__init__�   s   € Ø ˆŒØ ˆŒä&Ÿ_™_Ó.ˆÕr'   c                óþ   — t        | j                  d«      sgd| j                  _        d| j                  _        d| j                  _        i | j                  _        d | j                  _        d | j                  _        y y )NÚinitTÚ r   )Úhasattrrb   ro   rc   re   rf   rg   rh   )r-   s    r%   Úinit_per_thread_statez$HTTPDigestAuth.init_per_thread_state“   sk   € ä�t×)Ñ)¨6Ô2Ø&*ˆD×ÑÔ#Ø,.ˆD×ÑÔ)Ø-.ˆD×ÑÔ*Ø&(ˆD×ÑÔ#Ø%)ˆD×ÑÔ"Ø/3ˆD×ÑÕ,ð 3r'   c                óP  ‡— | j                   j                  d   }| j                   j                  d   }| j                   j                  j                  d«      }| j                   j                  j                  d«      }| j                   j                  j                  d«      }dŠ|€d}n|j                  «       }|dk(  s|dk(  rd*d	„}	|	Šn#|d
k(  rd*d„}
|
Šn|dk(  rd*d„}|Šn|dk(  rd*d„}|Š‰€yd+ˆfd„}d}t	        |«      }|j
                  xs 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                  «      j                  d«      }||j                  d«      z  }|t        j                  «       j                  d«      z  }|t        j                   d«      z  }t#        j$                  |d¬«      j'                  «       dd }|dk(  r ‰|› d|› d|› �«      }|s |||› d|› �«      }n0|dk(  sd|j)                  d«      v r|› d|› d|› d|› �} |||«      }ny|| 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| j                  d«      } t        j                  | d¬«      j                  «       S ©Núutf-8F©Úusedforsecurity)r   r   r   ÚhashlibÚmd5Ú	hexdigest©Úxs    r%   Úmd5_utf8z4HTTPDigestAuth.build_digest_header.<locals>.md5_utf8°   s4   € Ü˜a¤Ô%ØŸ™ Ó)�AÜ—{‘{ 1°eÔ<×FÑFÓHÐHr'   ÚSHAc                óŽ   — t        | t        «      r| j                  d«      } t        j                  | d¬«      j                  «       S r{   )r   r   r   r   Úsha1r�   r‚   s    r%   Úsha_utf8z4HTTPDigestAuth.build_digest_header.<locals>.sha_utf8¸   s4   € Ü˜a¤Ô%ØŸ™ Ó)�AÜ—|‘| A°uÔ=×GÑGÓIÐIr'   zSHA-256c                óŽ   — t        | t        «      r| j                  d«      } t        j                  | d¬«      j                  «       S r{   )r   r   r   r   Úsha256r�   r‚   s    r%   Úsha256_utf8z7HTTPDigestAuth.build_digest_header.<locals>.sha256_utf8À   ó4   € Ü˜a¤Ô%ØŸ™ Ó)�AÜ—~‘~ a¸Ô?×IÑIÓKÐKr'   zSHA-512c                óŽ   — t        | t        «      r| j                  d«      } t        j                  | d¬«      j                  «       S r{   )r   r   r   r   Úsha512r�   r‚   s    r%   Úsha512_utf8z7HTTPDigestAuth.build_digest_header.<locals>.sha512_utf8È   rŒ   r'   c                ó   •—  ‰| › d|› �«      S )Nú:r7   )ÚsÚdÚ	hash_utf8s     €r%   ÚKDz.HTTPDigestAuth.build_digest_header.<locals>.KDÒ   s   ø€ Ù ˜s ! A 3˜ZÓ(Ð(r'   ú/ú?r‘   r
   Ú08xr|   é   Fr}   é   Ú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 )rƒ   zstr | bytesr1   r   )r’   r   r“   r   r1   r   )rb   rf   ÚgetÚupperr   ÚpathÚqueryr"   r#   rc   re   r   r   ÚtimeÚctimeÚosÚurandomr   r‡   r�   Úsplit)r-   ÚmethodÚurlrt   ru   rv   rw   rx   Ú
_algorithmr„   rˆ   r‹   r�   r•   ÚentdigÚp_parsedr    ÚA1ÚA2ÚHA1ÚHA2Úncvaluer’   ÚcnonceÚrespdigÚnoncebitÚbaser”   s                              @r%   Úbuild_digest_headerz"HTTPDigestAuth.build_digest_header�   s‡  ø€ ð
 ×"Ñ"×'Ñ'¨Ñ0ˆØ×"Ñ"×'Ñ'¨Ñ0ˆØ× Ñ ×%Ñ%×)Ñ)¨%Ó0ˆØ×&Ñ&×+Ñ+×/Ñ/°Ó<ˆ	Ø×#Ñ#×(Ñ(×,Ñ,¨XÓ6ˆØˆ	àÐØ‰Jà"Ÿ™Ó*ˆJà˜Ò *°
Ò":óIð
 !‰IØ˜5Ò óJð
 !‰IØ˜9Ò$óLð
 $‰IØ˜9Ò$óLð
 $ˆIàÐØõ	)ð ˆÜ˜C“=ˆà�}‰}Ò# ˆØ�>Š>Ø�a˜Ÿ™Ð'Ð(Ñ(ˆDà—‘ˆ˜a ˜w a¨¯© Ð7ˆØˆx�q˜˜Ðˆá˜‹mˆÙ˜‹mˆà�D×&Ñ&×1Ñ1Ò1Ø×Ñ×*Ò*¨aÑ/Ö*à-.ˆD×ÑÔ*Ø×'Ñ'×3Ñ3°CÐ8ˆÜ�×"Ñ"×.Ñ.Ó/×6Ñ6°wÓ?ˆØ	ˆU�\‰\˜'Ó"Ñ"ˆØ	ŒT�Z‰Z‹\× Ñ  Ó)Ñ)ˆØ	ŒR�Z‰Z˜‹]Ñˆä—‘˜a°Ô7×AÑAÓCÀCÀRÐHˆØ˜Ò#Ù˜s˜e 1 U G¨1¨V¨HÐ5Ó6ˆCáÙ˜   q¨¨Ð.Ó/‰GØ�FŠ]˜f¨¯	©	°#«Ñ6Ø˜  ' ¨!¨F¨8°6¸#¸Ð?ˆHÙ˜˜hÓ'‰Gð à(-ˆ×ÑÔ%ð ˜Ÿ™˜ z°%°¸
À5À'ð JØ�6˜ w i¨qð2ð 	ñ Ø�j  ¨Ð*Ñ*ˆDÙØ�m I ;¨aÐ0Ñ0ˆDÙØ�j  ¨Ð*Ñ*ˆDÙØÐ'¨ y°
¸6¸(À!ÐDÑDˆDà˜˜ÐÐr'   c                ó@   — |j                   rd| j                  _        yy)z)Reset num_401_calls counter on redirects.r
   N)Úis_redirectrb   rh   )r-   r.   Úkwargss      r%   Úhandle_redirectzHTTPDigestAuth.handle_redirect  s   € à�=Š=Ø/0ˆD×ÑÕ,ð r'   c                ó¼  — d|j                   cxk  rdk  sn d| j                  _        |S | j                  j                  �?t	        |j
                  j                  dd«      x}� || j                  j                  «       |j                  j                  dd«      }d|j                  «       v �rœ| j                  j                  d	k  �r‚| j                  xj                  dz  c_        t        j                  d
t        j                  ¬«      }t        |j                  d|d¬«      «      | j                  _        |j                    |j#                  «        |j
                  j%                  «       }t'        d|j(                  «      }t+        ||j
                  |j,                  «       |j/                  |«       | j1                  t'        t2        |j4                  «      t'        t2        |j6                  «      «      }|r||j                  d<    |j8                  j:                  |fi |¤Ž}	|	j<                  j?                  |«       ||	_        |	S d| j                  _        |S )zo
        Takes the given response and tries digest-auth, if needed.

        :rtype: requests.Response
        i�  iô  r
   NÚseekzwww-authenticaterp   Údigesté   zdigest )Úflags)Úcountr   rP   ) Ústatus_coderb   rh   rg   rG   ÚrequestÚbodyrR   rž   ÚlowerÚreÚcompileÚ
IGNORECASEr   Úsubrf   ÚcontentÚcloseÚcopyr   Ú_cookiesr   ÚrawÚprepare_cookiesrµ   r   r§   r¨   Ú
connectionÚsendÚhistoryÚappend)
r-   r.   r¸   r»   Ús_authÚpatÚprepÚ
cookie_jarÚ_digest_authÚ_rs
             r%   Ú
handle_401zHTTPDigestAuth.handle_401  sÎ  € ð �a—m‘mÔ) cÔ)Ø/0ˆD×ÑÔ,ØˆHà×Ñ×!Ñ!Ð-ô   §	¡	§¡°¸Ó=Ð=�ÐJÙ�T×'Ñ'×+Ñ+Ô,Ø—‘—‘Ð1°2Ó6ˆà�v—|‘|“~Ò%¨$×*<Ñ*<×*JÑ*JÈQÓ*NØ×Ñ×,Ò,°Ñ1Õ,Ü—*‘*˜Z¬r¯}©}Ô=ˆCÜ&7¸¿¹ÀÀFÐRS¸Ó8TÓ&UˆD×ÑÔ#ð �IŠIØ�G‰GŒIØ—9‘9—>‘>Ó#ˆDÜ˜k¨4¯=©=Ó9ˆJÜ" :¨q¯y©y¸!¿%¹%Ô@Ø× Ñ  Ô,à×3Ñ3Ü”S˜$Ÿ+™+Ó&¬¬S°$·(±(Ó(;óˆLñ Ø0<�—‘˜_Ñ-Ø"�—‘×"Ñ" 4Ñ2¨6Ñ2ˆBØ�J‰J×Ñ˜aÔ ØˆBŒJàˆIà+,ˆ×ÑÔ(Øˆr'   c                ó  — | j                  «        | j                  j                  rS| j                  t	        t
        |j                  «      t	        t
        |j                  «      «      }|r||j                  d<   t        |j                  dd «      x}� |«       | j                  _        nd | j                  _        |j                  d| j                  «       |j                  d| j                  «       d| j                  _        |S )NrP   ÚtellÚresponser
   )rr   rb   rc   rµ   r   r   r§   r¨   rR   rG   rÂ   rg   Úregister_hookrØ   r¹   rh   )r-   r.   rÖ   rÚ   s       r%   r/   zHTTPDigestAuth.__call__A  sÌ   € à×"Ñ"Ô$à×Ñ×(Ò(Ø×3Ñ3Ü”S˜!Ÿ(™(Ó#¤T¬#¨q¯u©uÓ%5óˆLñ Ø-9�—	‘	˜/Ñ*Ü˜AŸF™F F¨DÓ1Ð1ˆDÐ>Ù%)£VˆD×ÑÕ"ð &*ˆD×ÑÔ"Ø	�‰˜
 D§O¡OÔ4Ø	�‰˜
 D×$8Ñ$8Ô9Ø+,ˆ×ÑÔ(àˆr'   c           	     ó|   — t        | j                  t        |dd «      k(  | j                  t        |dd «      k(  g«      S rD   rE   rH   s     r%   rJ   zHTTPDigestAuth.__eq__Y  rK   r'   c                ó   — | |k(   S r<   r7   rH   s     r%   rM   zHTTPDigestAuth.__ne__a  rN   r'   NrS   rU   rW   )r1   rT   )r§   r   r¨   r   r1   z
str | None)r.   r   r¸   r   r1   rT   )r.   r   r¸   r   r1   r   r0   rX   r[   )r3   r4   r5   r6   r\   r	   r>   rr   rµ   r¹   rØ   r/   rJ   rM   r7   r'   r%   ra   ra   |   sz   … ÙJàÓØÓØ"Ó"ØƒOØÓØ
ÓØ	ƒOØÓàÚAó ØAØÚEó ØEó/ó4óm ó^1ó
.ó`ó0
ô!r'   ra   )r"   r:   r#   r:   r1   r   )(r6   Ú
__future__r   r   r¤   rÄ   rl   r¢   r   Úbase64r   Útypingr   r   r   r   r	   Ú_internal_utilsr   Úcompatr   r   r   Úcookiesr   Úutilsr   Úhttp.cookiejarr   Úmodelsr   r   r   r\   r   r&   r)   r9   r^   ra   r7   r'   r%   ú<module>rè      s“   ðòõ #ã Û 	Û 	Û Û Û Ý ß <Õ <å -ß -Ñ -Ý +Ý $áÝ(Ýç1à&IÐ ˜eÓ IØ!6Ð ˜Ó 6ó)÷XBñ Bô�Hô ô>�Mô ôf!�Xõ f!r'   