§
    ¸)ýfß'  ã                   óü   — 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
mZmZ ddlmZ ddlmZ ddlmZ d	Zd
Zd„ Z G d„ de¦  «        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é   )ÚurlparseÚstrÚ
basestring)Úextract_cookies_to_jar)Úto_native_string)Úparse_dict_headerz!application/x-www-form-urlencodedzmultipart/form-datac           	      óœ  — t          | t          ¦  «        s=t          j        d                     | ¦  «        t
          ¬¦  «         t          | ¦  «        } t          |t          ¦  «        sJt          j        d                     t          |¦  «        ¦  «        t
          ¬¦  «         t          |¦  «        }t          | t          ¦  «        r|                      d¦  «        } t          |t          ¦  «        r|                     d¦  «        }dt          t          d                     | |f¦  «        ¦  «                             ¦   «         ¦  «        z   }|S )zReturns a Basic Auth string.z·Non-string usernames will no longer be supported in Requests 3.0.0. Please convert the object you've passed in ({!r}) to a string or bytes object in the near future to avoid problems.)Úcategoryz·Non-string passwords will no longer be supported in Requests 3.0.0. Please convert the object you've passed in ({!r}) to a string or bytes object in the near future to avoid problems.Úlatin1zBasic ó   :)Ú
isinstancer   ÚwarningsÚwarnÚformatÚDeprecationWarningr   ÚtypeÚencoder	   r   ÚjoinÚstrip)ÚusernameÚpasswordÚauthstrs      úg/home/blender/git/blender-v430/install_release/4.3/python/lib/python3.11/site-packages/requests/auth.pyÚ_basic_auth_strr      s6  € õ �h¥
Ñ+Ô+ð !ÝŒð÷ š˜xÑ(Ô(Ý'ð	
ñ 	
ô 	
ð 	
õ �x‘=”=ˆå�h¥
Ñ+Ô+ð !ÝŒð÷ š�t H™~œ~Ñ.Ô.Ý'ð	
ñ 	
ô 	
ð 	
õ �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__K   s   € Ý!Ð"@ÑAÔAÐAr   N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r%   © r   r   r   r   H   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__R   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__V   óE   € ÝØŒM�W U¨J¸Ñ=Ô=Ò=ØŒM�W U¨J¸Ñ=Ô=Ò=ð
ñ ô ð 	r   c                 ó   — | |k     S r/   r+   r7   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*   r1   r9   r<   r%   r+   r   r   r-   r-   O   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__g   s"   € Ý+:¸4¼=È$Ì-Ñ+XÔ+XˆŒ	Ð'Ñ(Øˆr   Nr&   r+   r   r   rC   rC   d   s)   € € € € € ØGÐGðð ð ð ð r   rC   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_localr0   s      r   r1   zHTTPDigestAuth.__init__o   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   )ÚhasattrrJ   rL   Ú
last_nonceÚnonce_countÚchalÚposÚnum_401_calls)r#   s    r   Úinit_per_thread_statez$HTTPDigestAuth.init_per_thread_stateu   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   z  }| j        ›d|›d| j        ›�}|›d|›�} ‰|¦  «        } ‰|¦  «        }|| j         j	        k    r| j         xj
        dz  c_
        nd| j         _
        d| j         j
        z  }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|›�¦  «        }n<|dk    sd|                     d¦  «        v r|›d|›d|›dd›d|›�	} |||¦  «        }ndS || j         _	        d| j        ›d|›d|›d|›d|›d �}|r|d!|z  z  }|r|d"|z  z  }|r|d#|z  z  }|r|d$|›d%|›d �z  }d&|z  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_   Úsha1ra   rb   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_   Úsha256ra   rb   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_   Úsha512ra   rb   s    r   Úsha512_utf8z7HTTPDigestAuth.build_digest_header.<locals>.sha512_utf8£   rl   r   c                 ó$   •—  ‰| ›d|›�¦  «        S )Nú:r+   )ÚsÚdÚ	hash_utf8s     €r   ú<lambda>z4HTTPDigestAuth.build_digest_header.<locals>.<lambda>©   s   ø€ ˜)˜)¨q¨q¨q°!°!Ð$4Ñ5Ô5€ r   ú/ú?rq   r   z%08xr^   é   é   Úauthú,z
username="z
", realm="z
", nonce="z", uri="z", response="ú"z, opaque="%s"z, algorithm="%s"z, digest="%s"z, qop="auth", nc=z
, cnonce="z	Digest %s)rJ   rQ   ÚgetÚupperr   ÚpathÚqueryr   r   rO   rP   r   r   ÚtimeÚctimeÚosÚurandomr_   rg   ra   Úsplit)r#   ÚmethodÚurlrV   rW   rX   rY   rZ   Ú
_algorithmrd   rh   rk   ro   ÚKDÚentdigÚp_parsedr   ÚA1ÚA2ÚHA1ÚHA2Úncvaluerr   ÚcnonceÚrespdigÚnoncebitÚbasert   s                              @r   Úbuild_digest_headerz"HTTPDigestAuth.build_digest_header   sä  ø€ ð
 Ô"Ô'¨Ô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à5Ð5Ð5Ð5ˆàÐØ�4ð ˆÝ˜C‘=”=ˆàŒ}Ð# ˆØŒ>ð 	)Ø�C˜(œ.Ñ(Ñ(ˆDàœ=˜=˜=¨%¨%¨%°´°Ð?ˆØ˜˜  Ð%ˆàˆi˜‰mŒmˆØˆi˜‰mŒmˆà�DÔ&Ô1Ò1Ð1ØÔÐ*Ô*¨aÑ/Ð*Ô*Ð*à-.ˆDÔÔ*Ø˜4Ô-Ô9Ñ9ˆÝ�Ô"Ô.Ñ/Ô/×6Ò6°wÑ?Ô?ˆØ	ˆU�\Š\˜'Ñ"Ô"Ñ"ˆØ	�TŒZ‰\Œ\× Ò  Ñ)Ô)Ñ)ˆØ	�RŒZ˜‰]Œ]Ñˆå”,˜q‘/”/×+Ò+Ñ-Ô-¨c¨r¨cÔ2ˆØ˜Ò#Ð#Ø�)¨#¨#¨#¨u¨u¨u°f°fÐ=Ñ>Ô>ˆCàð 		Ø�b˜¨¨¨°°Ð4Ñ5Ô5ˆGˆGØ�FŠ]ˆ]˜f¨¯	ª	°#©¬Ð6Ð6à���w�w�w   ¨¨¨°°ðˆHð �b˜˜hÑ'Ô'ˆGˆGð �4à(-ˆÔÔ%Ð%ð #'¤- - -°°°¸¸¸¸t¸t¸tÀWÀWÀWðNˆàð 	-Ø�O fÑ,Ñ,ˆDØð 	3ØÐ&¨Ñ2Ñ2ˆDØð 	-Ø�O fÑ,Ñ,ˆDØð 	KØˆD¸'¸'¸'À6À6À6ÐJÑJˆDà˜dÑ#Ð#r   c                 ó0   — |j         rd| j        _        dS dS )z)Reset num_401_calls counter on redirects.r   N)Úis_redirectrJ   rS   )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-authenticaterM   Údigesté   zdigest )Úflags)Úcountr?   )Ústatus_coderJ   rS   rR   ÚrequestÚbodyÚseekrA   r}   ÚlowerÚreÚcompileÚ
IGNORECASEr
   ÚsubrQ   Ú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   )rT   rJ   rO   r•   r†   r‡   rA   r¡   ÚtellrR   ÚAttributeErrorÚregister_hookr¶   r™   rS   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 r3   r4   r7   s     r   r9   zHTTPDigestAuth.__eq__*  r:   r   c                 ó   — | |k     S r/   r+   r7   s     r   r<   zHTTPDigestAuth.__ne__0  r=   r   N)r'   r(   r)   r*   r1   rT   r•   r™   r¶   r%   r9   r<   r+   r   r   rF   rF   l   s—   € € € € € ØJÐJð/ð /ð /ð4ð 4ð 4ðd$ð d$ð d$ðL1ð 1ð 1ð
*ð *ð *ðXð ð ð(ð ð ð!ð !ð !ð !ð !r   rF   )r*   rƒ   r¤   r�   r_   rH   r   Úbase64r   Úcompatr   r   r   Úcookiesr   Ú_internal_utilsr	   Úutilsr
   ÚCONTENT_TYPE_FORM_URLENCODEDÚCONTENT_TYPE_MULTI_PARTr   Úobjectr   r-   rC   rF   r+   r   r   ú<module>rÆ      s�  ððð ð 
€	€	€	Ø 	€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð à -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø +Ð +Ð +Ð +Ð +Ð +Ø -Ð -Ð -Ð -Ð -Ð -Ø $Ð $Ð $Ð $Ð $Ð $àBÐ Ø/Ð ð)ð )ð )ðXBð Bð Bð Bð Bˆvñ Bô Bð Bðð ð ð ð �Hñ ô ð ð*ð ð ð ð �Mñ ô ð ðE!ð E!ð E!ð E!ð E!�Xñ E!ô E!ð E!ð E!ð E!r   