+
    P(i                         ^ RI t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^RIHt ^RI	H
t
 R tR	 tR
 t ! R R4      t ! R R4      tR# )    N)to_bytes)	to_native)add_params_to_qs)add_params_to_uri)OAuth2Token)add_bearer_tokenc                     V P                    R V P                   2p\        \        P                  ! \        VR4      4      4      pRV 2VR&   W#V3# ):latin1zBasic Authorization)	client_idclient_secretr   base64	b64encoder   )clientmethoduriheadersbodytextauths   &&&&&  Y/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/authlib/oauth2/auth.pyencode_client_secret_basicr      sW    q!5!5 67DV%%htX&>?@D!'vGO    c                     \        T;'       g    R RV P                  3RV P                  ;'       g    R 3.4      pRV9   d   \        \	        V4      4      VR&   W#V3# ) r   r   Content-Length)r   r   r   strlenr   r   r   r   r   s   &&&&&r   encode_client_secret_postr!      sf    

&**+f2288b9	
D 7"$'D	N !r   c                     VR 8X  d   \        VRV P                  3.4      pW#V3# \        VRV P                  3.4      pRV9   d   \        \	        V4      4      VR&   W#V3# )GETr   r   )r   r   r   r   r   r    s   &&&&&r   encode_noner$       sn    {F4D4D&E%FGT!!DK1A1A#B"CDD7"$'D	N !r   c                   D   a  ] tR t^*t o RtR]R]R]/tR	R lt	R t
RtV tR# )

ClientAuthag  Attaches OAuth Client Information to HTTP requests.

:param client_id: Client ID, which you get from client registration.
:param client_secret: Client Secret, which you get from registration.
:param auth_method: Client auth method for token endpoint. The supported
    methods for now:

    * client_secret_basic (default)
    * client_secret_post
    * none
client_secret_basicclient_secret_postnoneNc                |    Vf   RpWn         W n        W0P                  9   d   V P                  V,          pW0n        R # )Nr'   )r   r   DEFAULT_AUTH_METHODSauth_method)selfr   r   r,   s   &&&&r   __init__ClientAuth.__init__=   s:    /K"*33333K@K&r   c                (    V P                  WW#V4      # N)r,   )r-   r   r   r   r   s   &&&&&r   prepareClientAuth.prepareI   s    cDAAr   )r,   r   r   r1   )__name__
__module____qualname____firstlineno____doc__r   r!   r$   r+   r.   r2   __static_attributes____classdictcell____classdict__s   @r   r&   r&   *   s6     
 	97
'B Br   r&   c                   L   a  ] tR t^Mt o RtRtR]/tR	R ltR t	R t
R tRtV tR# )
	TokenAuthzAttach token information to HTTP requests.

:param token: A dict or OAuth2Token instance of an OAuth 2.0 token
:param token_placement: The placement of the token, default is ``header``,
    available choices:

    * header (default)
    * body
    * uri
bearerNc                r    \         P                  ! V4      V n        W n        W0n        \        4       V n        R # r1   )r   	from_dicttokentoken_placementr   sethooks)r-   rB   rC   r   s   &&&&r   r.   TokenAuth.__init__\   s(     **51
.U
r   c                <    \         P                  ! V4      V n        R # r1   )r   rA   rB   )r-   rB   s   &&r   	set_tokenTokenAuth.set_tokenb   s     **51
r   c                &   V P                   P                  R V P                  4      pV P                  VP	                  4       ,          pV! V P                   R,          WW0P
                  4      w  rpV P                   F  pV! WV4      w  rpK  	  WV3# )
token_typeaccess_token)rB   getDEFAULT_TOKEN_TYPESIGN_METHODSlowerrC   rE   )r-   r   r   r   rK   signhooks   &&&&   r   r2   TokenAuth.preparee   s    ZZ^^L$2I2IJ
  !1!1!34!JJ~&d<P<P
d JJD!%cD!9C$  T!!r   c                    V = V =R # r1   )r   rE   )r-   s   &r   __del__TokenAuth.__del__q   s    KJr   )r   rE   rB   rC   )headerN)r4   r5   r6   r7   r8   rN   r   rO   r.   rH   r2   rU   r9   r:   r;   s   @r   r>   r>   M   s6     	 "./L2
" r   r>   )r   authlib.common.encodingr   r   authlib.common.urlsr   r   rfc6749r   rfc6750r   r   r!   r$   r&   r>    r   r   <module>r]      s@     , - 0 1   %
 B  BF& &r   