Ë
    ùmxiz  ã                   ó˜   — d 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	  G d„ de	j                  «      Z
 G d	„ d
e	j                  «      Zy)aï  OAuth 2.0 Async Credentials.

This module provides credentials based on OAuth 2.0 access and refresh tokens.
These credentials usually access resources on behalf of a user (resource
owner).

Specifically, this is intended to use access tokens acquired using the
`Authorization Code grant`_ and can refresh those tokens using a
optional `refresh token`_.

Obtaining the initial access and refresh token is outside of the scope of this
module. Consult `rfc6749 section 4.1`_ for complete details on the
Authorization Code grant flow.

.. _Authorization Code grant: https://tools.ietf.org/html/rfc6749#section-1.3.1
.. _refresh token: https://tools.ietf.org/html/rfc6749#section-6
.. _rfc6749 section 4.1: https://tools.ietf.org/html/rfc6749#section-4.1
é    )Ú_credentials_async)Ú_helpers)Ú
exceptions)Ú_reauth_async)Úcredentialsc                   ó˜   — e Zd ZdZ ej
                  ej                  «      d„ «       Z ej
                  ej                  «      d„ «       Z	y)ÚCredentialsa  Credentials using OAuth 2.0 access and refresh tokens.

    The credentials are considered immutable. If you want to modify the
    quota project, use :meth:`with_quota_project` or ::

        credentials = credentials.with_quota_project('myproject-123)
    c           
   ƒ   óÚ  K  — | j                   �$| j                  �| j                  �| j                  €t	        j
                  d«      ‚t        j                  || j                  | j                   | j                  | j                  | j                  | j                  | j                  ¬«      ƒ d {  –—† \  }}}}}|| _        || _        || _         |j                  d«      | _        || _	        | j                  rqd|v rlt        | j                  «      }t        |d   j!                  «       «      }||z
  }	|	r3t	        j
                  dj#                  dj%                  |	«      «      «      ‚y y y 7 Œº­w)NzžThe credentials do not contain the necessary fields need to refresh the access token. You must specify refresh_token, token_uri, client_id, and client_secret.)ÚscopesÚ
rapt_tokenÚenable_reauth_refreshÚid_tokenÚscopezUNot all requested scopes were granted by the authorization server, missing scopes {}.z, )Ú_refresh_tokenÚ
_token_uriÚ
_client_idÚ_client_secretr   ÚRefreshErrorÚreauthÚrefresh_grantÚ_scopesÚ_rapt_tokenÚ_enable_reauth_refreshÚtokenÚexpiryÚgetÚ	_id_tokenÚ	frozensetÚsplitÚformatÚjoin)
ÚselfÚrequestÚaccess_tokenÚrefresh_tokenr   Úgrant_responser   Úrequested_scopesÚgranted_scopesÚ scopes_requested_but_not_granteds
             úW/home/htdocs/ttos/venv/lib/python3.12/site-packages/google/oauth2/_credentials_async.pyÚrefreshzCredentials.refresh2   sg  è ø€ ð ×ÑÐ'Ø�‰Ð&Ø�‰Ð&Ø×"Ñ"Ð*ä×)Ñ)ð;óð ô ×&Ñ&ØØ�O‰OØ×ÑØ�O‰OØ×ÑØ—<‘<Ø×'Ñ'Ø"&×"=Ñ"=ô	
÷ 	
ñ	
ØØØØØð "ˆŒ
ØˆŒØ+ˆÔØ'×+Ñ+¨JÓ7ˆŒØ%ˆÔà�<Š<˜G ~Ñ5Ü(¨¯©Ó6ÐÜ& ~°gÑ'>×'DÑ'DÓ'FÓGˆNØ/?À.Ñ/PÐ,Ù/Ü ×-Ñ-ð?ß?E¹vØŸ	™	Ð"BÓCó@óð ð 0ð	 6ˆ<ð#	
ús   ‚B,E+Â.E)Â/B;E+c              ƒ   ó|   K  — | j                   s| j                  |«      ƒ d {  –—†  | j                  |«       y 7 Œ­w)N)Úvalidr+   Úapply)r"   r#   ÚmethodÚurlÚheaderss        r*   Úbefore_requestzCredentials.before_requestc   s0   è ø€ à�zŠzØ—,‘,˜wÓ'×'Ð'Ø�
‰
�7Õð (ús   ‚!<£:¤<N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úcopy_docstringr   r	   r+   r2   © ó    r*   r	   r	   )   sV   „ ñð €X×Ñ˜[×4Ñ4Ó5ñ.ó 6ð.ð` €X×Ñ˜[×4Ñ4Ó5ñó 6ñr9   r	   c                   ó   — e Zd ZdZy)ÚUserAccessTokenCredentialsa»  Access token credentials for user account.

    Obtain the access token for a given user account or the current active
    user account with the ``gcloud auth print-access-token`` command.

    Args:
        account (Optional[str]): Account to get the access token for. If not
            specified, the current active account will be used.
        quota_project_id (Optional[str]): The project ID used for quota
            and billing.

    N)r3   r4   r5   r6   r8   r9   r*   r;   r;   j   s   „ òr9   r;   N)r6   Úgoogle.authr   r   r   r   Úgoogle.oauth2r   r   Úoauth2_credentialsr	   r;   r8   r9   r*   ú<module>r?      sB   ðñõ& :Ý  Ý "Ý 1Ý ;ô>Ð$×0Ñ0ô >ôBÐ!3×!NÑ!Nõ r9   