Ë
    ö%9jD  ã                   ó  — d Z ddlmZ ddlZddlmZ ddlmZ dZ G d„ d«      Z G d	„ d
e«      Z	 G d„ de«      Z
 G d„ d«      Z G d„ de«      Z G d„ de«      Z G d„ dej                  «      Z G d„ d«      Zd„ Zd„ Zd„ Zd„ Zd„ Zy)z.Firebase auth providers management sub module.é    )ÚparseN)Ú_auth_utils)Ú	_user_mgtéd   c                   óF   — e Zd ZdZd„ Zed„ «       Zed„ «       Zed„ «       Zy)ÚProviderConfigz9Parent type for all authentication provider config types.c                 ó   — || _         y ©N©Ú_data©ÚselfÚdatas     úZ/var/www/html/truck-me/venv/lib/python3.12/site-packages/firebase_admin/_auth_providers.pyÚ__init__zProviderConfig.__init__   s	   € Øˆ�
ó    c                 óH   — | j                   d   }|j                  d«      d   S )NÚnameú/éÿÿÿÿ)r   Úsplit)r   r   s     r   Úprovider_idzProviderConfig.provider_id"   s#   € à�z‰z˜&Ñ!ˆØ�z‰z˜#‹˜rÑ"Ð"r   c                 ó8   — | j                   j                  d«      S )NÚdisplayName©r   Úget©r   s    r   Údisplay_namezProviderConfig.display_name'   s   € à�z‰z�~‰~˜mÓ,Ð,r   c                 ó:   — | j                   j                  dd«      S )NÚenabledFr   r   s    r   r    zProviderConfig.enabled+   s   € à�z‰z�~‰~˜i¨Ó/Ð/r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr   r   r    © r   r   r   r      sF   „ ÙCòð ñ#ó ð#ð ñ-ó ð-ð ñ0ó ñ0r   r   c                   ó`   — e Zd ZdZed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z	y)ÚOIDCProviderConfigz{Represents the OIDC auth provider configuration.

    See https://openid.net/specs/openid-connect-core-1_0-final.html.
    c                 ó    — | j                   d   S )NÚissuerr   r   s    r   r*   zOIDCProviderConfig.issuer6   s   € à�z‰z˜(Ñ#Ð#r   c                 ó    — | j                   d   S )NÚclientIdr   r   s    r   Ú	client_idzOIDCProviderConfig.client_id:   s   € à�z‰z˜*Ñ%Ð%r   c                 ó8   — | j                   j                  d«      S )NÚclientSecretr   r   s    r   Úclient_secretz OIDCProviderConfig.client_secret>   s   € à�z‰z�~‰~˜nÓ-Ð-r   c                 óZ   — | j                   j                  di «      j                  dd«      S )NÚresponseTypeÚidTokenFr   r   s    r   Úid_token_response_typez)OIDCProviderConfig.id_token_response_typeB   s$   € à�z‰z�~‰~˜n¨bÓ1×5Ñ5°iÀÓGÐGr   c                 óZ   — | j                   j                  di «      j                  dd«      S )Nr2   ÚcodeFr   r   s    r   Úcode_response_typez%OIDCProviderConfig.code_response_typeF   s$   € à�z‰z�~‰~˜n¨bÓ1×5Ñ5°f¸eÓDÐDr   N)
r!   r"   r#   r$   r%   r*   r-   r0   r4   r7   r&   r   r   r(   r(   0   so   „ ñð
 ñ$ó ð$ð ñ&ó ð&ð ñ.ó ð.ð ñHó ðHð ñEó ñEr   r(   c                   ó`   — e Zd ZdZed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z	y)ÚSAMLProviderConfigz�Represents he SAML auth provider configuration.

    See http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html.
    c                 ó@   — | j                   j                  di «      d   S )NÚ	idpConfigÚidpEntityIdr   r   s    r   Úidp_entity_idz SAMLProviderConfig.idp_entity_idQ   s   € à�z‰z�~‰~˜k¨2Ó.¨}Ñ=Ð=r   c                 ó@   — | j                   j                  di «      d   S )Nr;   ÚssoUrlr   r   s    r   Ússo_urlzSAMLProviderConfig.sso_urlU   s   € à�z‰z�~‰~˜k¨2Ó.¨xÑ8Ð8r   c                 óp   — | j                   j                  di «      d   }|D �cg c]  }|d   ‘Œ	 c}S c c}w )Nr;   ÚidpCertificatesÚx509Certificater   )r   ÚcertsÚcs      r   Úx509_certificatesz$SAMLProviderConfig.x509_certificatesY   s6   € à—
‘
—‘˜{¨BÓ/Ð0AÑBˆØ.3Ö4¨�Ð#Ó$Ò4Ð4ùÒ4s   ¤3c                 ó@   — | j                   j                  di «      d   S )NÚspConfigÚcallbackUrir   r   s    r   Úcallback_urlzSAMLProviderConfig.callback_url^   s   € à�z‰z�~‰~˜j¨"Ó-¨mÑ<Ð<r   c                 ó@   — | j                   j                  di «      d   S )NrH   Ú
spEntityIdr   r   s    r   Úrp_entity_idzSAMLProviderConfig.rp_entity_idb   s   € à�z‰z�~‰~˜j¨"Ó-¨lÑ;Ð;r   N)
r!   r"   r#   r$   r%   r=   r@   rF   rJ   rM   r&   r   r   r9   r9   K   sk   „ ñð
 ñ>ó ð>ð ñ9ó ð9ð ñ5ó ð5ð ñ=ó ð=ð ñ<ó ñ<r   r9   c                   óR   — e Zd ZdZd„ Zed„ «       Zed„ «       Zed„ «       Zd„ Z	d„ Z
y)	ÚListProviderConfigsPageaj  Represents a page of AuthProviderConfig instances retrieved from a Firebase project.

    Provides methods for traversing the provider configs included in this page, as well as
    retrieving subsequent pages. The iterator returned by ``iterate_all()`` can be used to iterate
    through all provider configs in the Firebase project starting from this page.
    c                 ó<   — || _         || _         |||«      | _        y r
   )Ú	_downloadÚ_max_resultsÚ_current)r   ÚdownloadÚ
page_tokenÚmax_resultss       r   r   z ListProviderConfigsPage.__init__o   s   € Ø!ˆŒØ'ˆÔÙ  ¨[Ó9ˆ�r   c                 ó   — t         ‚)zBA list of ``AuthProviderConfig`` instances available in this page.)ÚNotImplementedErrorr   s    r   Úprovider_configsz(ListProviderConfigsPage.provider_configst   s
   € ô "Ð!r   c                 ó:   — | j                   j                  dd«      S )zKPage token string for the next page (empty string indicates no more pages).ÚnextPageTokenÚ )rS   r   r   s    r   Únext_page_tokenz'ListProviderConfigsPage.next_page_tokeny   s   € ð �}‰}× Ñ  °"Ó5Ð5r   c                 ó,   — t        | j                  «      S )z6A boolean indicating whether more pages are available.)Úboolr]   r   s    r   Úhas_next_pagez%ListProviderConfigsPage.has_next_page~   s   € ô �D×(Ñ(Ó)Ð)r   c                 ó~   — | j                   r1| j                  | j                  | j                  | j                  «      S y)zÇRetrieves the next page of provider configs, if available.

        Returns:
            ListProviderConfigsPage: Next page of provider configs, or None if this is the last
            page.
        N)r`   Ú	__class__rQ   r]   rR   r   s    r   Úget_next_pagez%ListProviderConfigsPage.get_next_pageƒ   s3   € ð ×ÒØ—>‘> $§.¡.°$×2FÑ2FÈ×HYÑHYÓZÐZØr   c                 ó   — t        | «      S )ae  Retrieves an iterator for provider configs.

        Returned iterator will iterate through all the provider configs in the Firebase project
        starting from this page. The iterator will never buffer more than one page of configs
        in memory at a time.

        Returns:
            iterator: An iterator of AuthProviderConfig instances.
        )Ú_ProviderConfigIteratorr   s    r   Úiterate_allz#ListProviderConfigsPage.iterate_allŽ   s   € ô ' tÓ,Ð,r   N)r!   r"   r#   r$   r   r%   rY   r]   r`   rc   rf   r&   r   r   rO   rO   g   sR   „ ñò:ð
 ñ"ó ð"ð ñ6ó ð6ð ñ*ó ð*ò	ó
-r   rO   c                   ó   — e Zd Zed„ «       Zy)Ú_ListOIDCProviderConfigsPagec                 ór   — | j                   j                  dg «      D �cg c]  }t        |«      ‘Œ c}S c c}w )NÚoauthIdpConfigs)rS   r   r(   r   s     r   rY   z-_ListOIDCProviderConfigsPage.provider_configs�   s/   € à59·]±]×5FÑ5FÐGXÐZ\Ó5]Ö^¨TÔ" 4Õ(Ò^Ð^ùÒ^ó   Ÿ4N©r!   r"   r#   r%   rY   r&   r   r   rh   rh   ›   s   „ àñ_ó ñ_r   rh   c                   ó   — e Zd Zed„ «       Zy)Ú_ListSAMLProviderConfigsPagec                 ór   — | j                   j                  dg «      D �cg c]  }t        |«      ‘Œ c}S c c}w )NÚinboundSamlConfigs)rS   r   r9   r   s     r   rY   z-_ListSAMLProviderConfigsPage.provider_configs¤   s/   € à59·]±]×5FÑ5FÐG[Ð]_Ó5`Öa¨TÔ" 4Õ(ÒaÐaùÒark   Nrl   r&   r   r   rn   rn   ¢   s   „ àñbó ñbr   rn   c                   ó   — e Zd Zed„ «       Zy)re   c                 ó.   — | j                   j                  S r
   )Ú_current_pagerY   r   s    r   Úitemsz_ProviderConfigIterator.items«   s   € à×!Ñ!×2Ñ2Ð2r   N)r!   r"   r#   r%   rt   r&   r   r   re   re   ©   s   „ àñ3ó ñ3r   re   c                   ó¦   — e Zd ZdZdZdd„Zd„ Z	 	 dd„Z	 	 	 dd„Zd„ Z	de
fd	„Zde
fd
„Zd„ Z	 dd„Z	 	 dd„Zd„ Zde
fd„Zde
fd„Zde
fd„Zd„ Zy)ÚProviderConfigClientz1Client for managing Auth provider configurations.z)https://identitytoolkit.googleapis.com/v2Nc                 ó®   — || _         |xs | j                  }dj                  ||«      | _        |r%| xj                  dj                  |«      z  c_        y y )Nz{0}/projects/{1}z/tenants/{0})Úhttp_clientÚPROVIDER_CONFIG_URLÚformatÚbase_url)r   rx   Ú
project_idÚ	tenant_idÚurl_overrideÚ
url_prefixs         r   r   zProviderConfigClient.__init__µ   sO   € Ø&ˆÔØ!Ò= T×%=Ñ%=ˆ
Ø*×1Ñ1°*¸jÓIˆŒÙØ�MŠM˜^×2Ñ2°9Ó=Ñ=ŽMð r   c                 óp   — t        |«       | j                  ddj                  |«      «      }t        |«      S )Nr   ú/oauthIdpConfigs/{0})Ú_validate_oidc_provider_idÚ_make_requestrz   r(   ©r   r   Úbodys      r   Úget_oidc_provider_configz-ProviderConfigClient.get_oidc_provider_config¼   s3   € Ü" ;Ô/Ø×!Ñ! %Ð)?×)FÑ)FÀ{Ó)SÓTˆÜ! $Ó'Ð'r   c	                 óÞ  — t        |«       t        |d«      t        |d«      dœ}	|�t        j                  |d«      |	d<   |�t        j
                  |d«      |	d<   i }
|du r|du rt        d«      ‚|�t        j
                  |d	«      |
d
<   |�*t        j
                  |d«      |
d<   |rt        |d«      |	d<   |
r|
|	d<   dj                  |«      }| j                  dd|	|¬«      }t        |«      S )z=Creates a new OIDC provider config from the given parameters.r-   r*   )r,   r*   r   r   r    Fú,At least one response type must be returned.r4   r3   r7   r6   r0   r/   r2   zoauthIdpConfigId={0}Úpostú/oauthIdpConfigs©ÚjsonÚparams)
r‚   Ú_validate_non_empty_stringÚ_validate_urlr   Úvalidate_stringÚvalidate_booleanÚ
ValueErrorrz   rƒ   r(   )r   r   r-   r*   r   r    r0   r4   r7   ÚreqÚresponse_typer�   r…   s                r   Úcreate_oidc_provider_configz0ProviderConfigClient.create_oidc_provider_configÁ   s  € ô 	# ;Ô/ä2°9¸kÓJÜ# F¨HÓ5ñ
ˆð Ð#Ü!,×!<Ñ!<¸\È>Ó!ZˆC�ÑØÐÜ(×9Ñ9¸'À9ÓMˆC�	‰NàˆØ! UÑ*Ð/AÀUÑ/JÜÐKÓLÐLØ!Ð-Ü'2×'CÑ'CØ&Ð(@ó(BˆM˜)Ñ$àÐ)Ü$/×$@Ñ$@Ø"Ð$8ó%:ˆM˜&Ñ!á!Ü&@ÀÐP_Ó&`��NÑ#ÙØ"/ˆC�Ñà'×.Ñ.¨{Ó;ˆØ×!Ñ! &Ð*<À3ÈvÐ!ÓVˆÜ! $Ó'Ð'r   c	                 óª  — t        |«       i }	|�2|t        j                  k(  rd|	d<   nt        j                  |d«      |	d<   |�t        j
                  |d«      |	d<   |rt        |d«      |	d<   |rt        |d«      |	d<   i }
|du r|du rt        d	«      ‚|�t        j
                  |d
«      |
d<   |�*t        j
                  |d«      |
d<   |rt        |d«      |	d<   |
r|
|	d<   |	st        d«      ‚t        j                  |	«      }dj                  dj                  |«      «      }dj                  |«      }| j                  d||	|¬«      }t        |«      S )zCUpdates an existing OIDC provider config with the given parameters.Nr   r   r    r-   r,   r*   Frˆ   r4   r3   r7   r6   r0   r/   r2   ú4At least one parameter must be specified for update.úupdateMask={0}ú,r�   Úpatchr‹   )r‚   r   ÚDELETE_ATTRIBUTEr   r�   r‘   rŽ   r�   r’   Úbuild_update_maskrz   Újoinrƒ   r(   )r   r   r-   r*   r   r    r0   r4   r7   r“   r”   Úupdate_maskr�   Úurlr…   s                  r   Úupdate_oidc_provider_configz0ProviderConfigClient.update_oidc_provider_configá   sz  € ô
 	# ;Ô/ØˆØÐ#Øœy×9Ñ9Ò9Ø%)��MÒ"ä%0×%@Ñ%@ÀÈ~Ó%^��MÑ"ØÐÜ(×9Ñ9¸'À9ÓMˆC�	‰NÙÜ8¸ÀKÓPˆC�
‰OÙÜ)¨&°(Ó;ˆC�‰MàˆØ! UÑ*Ð/AÀUÑ/JÜÐKÓLÐLØ!Ð-Ü'2×'CÑ'CØ&Ð(@ó(BˆM˜)Ñ$àÐ)Ü$/×$@Ñ$@Ø"Ð$8ó%:ˆM˜&Ñ!á!Ü&@ÀÐP_Ó&`��NÑ#ÙØ"/ˆC�ÑáÜÐSÓTÐTä!×3Ñ3°CÓ8ˆØ!×(Ñ(¨¯©°+Ó)>Ó?ˆØ$×+Ñ+¨KÓ8ˆØ×!Ñ! '¨3°SÀÐ!ÓHˆÜ! $Ó'Ð'r   c                 ó\   — t        |«       | j                  ddj                  |«      «       y )NÚdeleter�   )r‚   rƒ   rz   ©r   r   s     r   Údelete_oidc_provider_configz0ProviderConfigClient.delete_oidc_provider_config  s&   € Ü" ;Ô/Ø×Ñ˜8Ð%;×%BÑ%BÀ;Ó%OÕPr   c                 ó0   — t        | j                  ||«      S r
   )rh   Ú_fetch_oidc_provider_configs©r   rU   rV   s      r   Úlist_oidc_provider_configsz/ProviderConfigClient.list_oidc_provider_configs  ó   € Ü+Ø×-Ñ-¨z¸;óHð 	Hr   c                 ó(   — | j                  d||«      S )NrŠ   ©Ú_fetch_provider_configsr§   s      r   r¦   z1ProviderConfigClient._fetch_oidc_provider_configs  s   € Ø×+Ñ+Ð,>À
ÈKÓXÐXr   c                 óp   — t        |«       | j                  ddj                  |«      «      }t        |«      S )Nr   ú/inboundSamlConfigs/{0})Ú_validate_saml_provider_idrƒ   rz   r9   r„   s      r   Úget_saml_provider_configz-ProviderConfigClient.get_saml_provider_config  s3   € Ü" ;Ô/Ø×!Ñ! %Ð)B×)IÑ)IÈ+Ó)VÓWˆÜ! $Ó'Ð'r   c	                 ó`  — t        |«       t        |d«      t        |d«      t        |«      dœt        |d«      t        |d«      dœdœ}	|�t	        j
                  |d«      |	d	<   |�t	        j                  |d
«      |	d
<   dj                  |«      }
| j                  dd|	|
¬«      }t        |«      S )z=Creates a new SAML provider config from the given parameters.r=   r@   )r<   r?   rB   rM   rJ   )rL   rI   )r;   rH   r   r   r    zinboundSamlConfigId={0}r‰   ú/inboundSamlConfigsr‹   )
r¯   rŽ   r�   Ú_validate_x509_certificatesr   r�   r‘   rz   rƒ   r9   )r   r   r=   r@   rF   rM   rJ   r   r    r“   r�   r…   s               r   Úcreate_saml_provider_configz0ProviderConfigClient.create_saml_provider_config  sÃ   € ô 	# ;Ô/ô  :¸-ÈÓYÜ'¨°Ó;Ü#>Ð?PÓ#Qñô 9¸À~ÓVÜ,¨\¸>ÓJññ

ˆð Ð#Ü!,×!<Ñ!<¸\È>Ó!ZˆC�ÑØÐÜ(×9Ñ9¸'À9ÓMˆC�	‰Nà*×1Ñ1°+Ó>ˆØ×!Ñ! &Ð*?ÀcÐRXÐ!ÓYˆÜ! $Ó'Ð'r   c	                 ól  — t        |«       i }	|�t        |d«      |	d<   |�t        |d«      |	d<   |�t        |«      |	d<   i }
|�t        |d«      |
d<   |�t        |d	«      |
d
<   i }|�2|t        j
                  k(  rd|d<   nt        j                  |d«      |d<   |�t        j                  |d«      |d<   |	r|	|d<   |
r|
|d<   |st        d«      ‚t        j                  |«      }dj                  dj                  |«      «      }dj                  |«      }| j                  d|||¬«      }t        |«      S )zCUpdates an existing SAML provider config with the given parameters.Nr=   r<   r@   r?   rB   rM   rL   rJ   rI   r   r   r    r;   rH   r—   r˜   r™   r®   rš   r‹   )r¯   rŽ   r�   r³   r   r›   r   r�   r‘   r’   rœ   rz   r�   rƒ   r9   )r   r   r=   r@   rF   rM   rJ   r   r    Ú
idp_configÚ	sp_configr“   rž   r�   rŸ   r…   s                   r   Úupdate_saml_provider_configz0ProviderConfigClient.update_saml_provider_config4  se  € ô 	# ;Ô/Øˆ
ØÐ$Ü(BÀ=ÐRaÓ(bˆJ�}Ñ%ØÐÜ#0°¸)Ó#DˆJ�xÑ ØÐ(Ü,GÐHYÓ,ZˆJÐ(Ñ)àˆ	ØÐ#Ü&@ÀÈ~Ó&^ˆI�lÑ#ØÐ#Ü'4°\À>Ó'RˆI�mÑ$àˆØÐ#Øœy×9Ñ9Ò9Ø%)��MÒ"ä%0×%@Ñ%@ÀÈ~Ó%^��MÑ"ØÐÜ(×9Ñ9¸'À9ÓMˆC�	‰NÙØ)ˆC�ÑÙØ'ˆC�
‰OáÜÐSÓTÐTä!×3Ñ3°CÓ8ˆØ!×(Ñ(¨¯©°+Ó)>Ó?ˆØ'×.Ñ.¨{Ó;ˆØ×!Ñ! '¨3°SÀÐ!ÓHˆÜ! $Ó'Ð'r   c                 ó\   — t        |«       | j                  ddj                  |«      «       y )Nr¢   r®   )r¯   rƒ   rz   r£   s     r   Údelete_saml_provider_configz0ProviderConfigClient.delete_saml_provider_config]  s&   € Ü" ;Ô/Ø×Ñ˜8Ð%>×%EÑ%EÀkÓ%RÕSr   c                 ó0   — t        | j                  ||«      S r
   )rn   Ú_fetch_saml_provider_configsr§   s      r   Úlist_saml_provider_configsz/ProviderConfigClient.list_saml_provider_configsa  r©   r   c                 ó(   — | j                  d||«      S )Nr²   r«   r§   s      r   r¼   z1ProviderConfigClient._fetch_saml_provider_configse  s   € Ø×+Ñ+Ð,AÀ:È{Ó[Ð[r   c                 óD  — |�t        |t        «      r|st        d«      ‚t        |t        «      st        d«      ‚|dk  s	|t        kD  rt        dj                  t        «      «      ‚dj                  |«      }|r|dj                  |«      z  }| j                  d||¬«      S )	z'Fetches a page of auth provider configsz&Page token must be a non-empty string.zMax results must be an integer.é   zAMax results must be a positive integer less than or equal to {0}.zpageSize={0}z&pageToken={0}r   )r�   )Ú
isinstanceÚstrr’   ÚintÚMAX_LIST_CONFIGS_RESULTSrz   rƒ   )r   ÚpathrU   rV   r�   s        r   r¬   z,ProviderConfigClient._fetch_provider_configsh  s¥   € àÐ!Ü˜j¬#Ô.±jÜ Ð!IÓJÐJÜ˜+¤sÔ+ÜÐ>Ó?Ð?Ø˜Š?˜kÔ,DÒDÜðß‘vÔ6Ó7ó9ð 9ð  ×&Ñ& {Ó3ˆÙØÐ&×-Ñ-¨jÓ9Ñ9ˆFØ×!Ñ! %¨°fÐ!Ó=Ð=r   c                 óì   — dj                  | j                  |«      }	  | j                  j                  ||fi |¤ŽS # t        j
                  j                  $ r}t        j                  |«      ‚d }~ww xY w)Nz{0}{1})	rz   r{   rx   r…   ÚrequestsÚ
exceptionsÚRequestExceptionr   Úhandle_auth_backend_error)r   ÚmethodrÅ   ÚkwargsrŸ   Úerrors         r   rƒ   z"ProviderConfigClient._make_requesty  sh   € Ø�o‰o˜dŸm™m¨TÓ2ˆð	?Ø(�4×#Ñ#×(Ñ(¨°Ñ?¸Ñ?Ð?øÜ×"Ñ"×3Ñ3ò 	?Ü×7Ñ7¸Ó>Ð>ûð	?ús   ž< ¼A3ÁA.Á.A3)NN)NNNNN)NNNNNNN)r!   r"   r#   r$   ry   r   r†   r•   r    r¤   rÄ   r¨   r¦   r°   r´   r¸   rº   r½   r¼   r¬   rƒ   r&   r   r   rv   rv   °   s¯   „ Ù;àEÐó>ò(ð NRØPTó(ðB JNØEIØ#ó((òTQð 59ÐF^ó Hð 7;ÐH`ó Yò(ð DHó(ð4 TXØMQó'(òRTð 59ÐF^ó Hð 7;ÐH`ó \ð 8<ÐIaó >ó"?r   rv   c                 ó°   — t        | t        «      st        dj                  | «      «      ‚| j	                  d«      st        dj                  | «      «      ‚| S )NzFInvalid OIDC provider ID: {0}. Provider ID must be a non-empty string.zoidc.zInvalid OIDC provider ID: {0}.©rÁ   rÂ   r’   rz   Ú
startswith©r   s    r   r‚   r‚   �  óW   € Ü�k¤3Ô'ÜØT×[Ñ[Øóóð 	ð ×!Ñ! 'Ô*ÜÐ9×@Ñ@ÀÓMÓNÐNØÐr   c                 ó°   — t        | t        «      st        dj                  | «      «      ‚| j	                  d«      st        dj                  | «      «      ‚| S )NzFInvalid SAML provider ID: {0}. Provider ID must be a non-empty string.zsaml.zInvalid SAML provider ID: {0}.rÏ   rÑ   s    r   r¯   r¯   ‹  rÒ   r   c                 ó”   — t        | t        «      st        dj                  || «      «      ‚| st        dj                  |«      «      ‚| S )z5Validates that the given value is a non-empty string.zInvalid type for {0}: {1}.z{0} must not be empty.)rÁ   rÂ   r’   rz   )ÚvalueÚlabels     r   rŽ   rŽ   •  sD   € ä�eœSÔ!ÜÐ5×<Ñ<¸UÀEÓJÓKÐKÙÜÐ1×8Ñ8¸Ó?Ó@Ð@Ø€Lr   c                 ó*  — t        | t        «      r| st        dj                  | |«      «      ‚	 t	        j
                  | «      }|j                  st        dj                  || «      «      ‚| S # t        $ r t        dj                  || «      «      ‚w xY w)z;Validates that the given value is a well-formed URL string.z9Invalid photo URL: "{0}". {1} must be a non-empty string.zMalformed {0}: "{1}".)rÁ   rÂ   r’   rz   r   ÚurlparseÚnetlocÚ	Exception)rŸ   rÖ   Úparseds      r   r�   r�   ž  s�   € ä�cœ3Ô¡sÜðß‘f˜S %Ó(ó*ð 	*ðEÜ—‘ Ó$ˆØ�}Š}ÜÐ4×;Ñ;¸EÀ3ÓGÓHÐHØˆ
øÜò EÜÐ0×7Ñ7¸¸sÓCÓDÐDðEús   ¯=A- Á-%Bc           	      óà   — t        | t        «      r| st        d«      ‚t        | D �cg c]  }t        |t        «      xr |‘Œ c}«      st        d«      ‚| D �cg c]  }d|i‘Œ c}S c c}w c c}w )Nz+x509_certificates must be a non-empty list.z6x509_certificates must only contain non-empty strings.rC   )rÁ   Úlistr’   ÚallrÂ   )rF   Úcerts     r   r³   r³   ­  sk   € ÜÐ'¬Ô.Ñ6GÜÐFÓGÐGÜÐ;LÖM°4”
˜4¤Ó%Ò.¨$Ñ.ÒMÔNÜÐQÓRÐRØ2CÖD¨$Ð Ò%ÒDÐDùò NùâDs   §A&ÁA+)r$   Úurllibr   rÇ   Úfirebase_adminr   r   rÄ   r   r(   r9   rO   rh   rn   ÚPageIteratorre   rv   r‚   r¯   rŽ   r�   r³   r&   r   r   ú<module>rã      s¥   ðñ 5å ã å &Ý $ð Ð ÷0ñ 0ô(E˜ô Eô6<˜ô <÷81-ñ 1-ôh_Ð#:ô _ôbÐ#:ô bô3˜k×6Ñ6ô 3÷N?ñ N?òbòòòEóEr   