§
    ZŠtjŸ  ã                   ó`   — d Z ddlZddlZddlmZmZ ddlmZ d„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ ZdS )zp
oauthlib.utils
~~~~~~~~~~~~~~

This module contains utility methods used by various parts of the OAuth 2 spec.
é    N)ÚquoteÚurlparse)Ú	urldecodec                 óÚ   — t          | t          ¦  «        s| €| S t          | t          t          t          f¦  «        rd                     d„ | D ¦   «         ¦  «        S t          d| z  ¦  «        ‚)z5Convert a list of scopes to a space separated string.Nú c                 ó,   — g | ]}t          |¦  «        ‘ŒS © ©Ústr©Ú.0Úss     ú[/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/oauthlib/oauth2/rfc6749/utils.pyú
<listcomp>z!list_to_scope.<locals>.<listcomp>   s   € Ð/Ð/Ð/ A�˜Q™œÐ/Ð/Ð/ó    z8Invalid scope (%s), must be string, tuple, set, or list.)Ú
isinstancer   ÚsetÚtupleÚlistÚjoinÚ
ValueError©Úscopes    r   Úlist_to_scoper      sn   € å�%�ÑÔð ]  ØˆÝ	�E�C¥­Ð-Ñ	.Ô	.ð ]Ø�xŠxÐ/Ð/¨Ð/Ñ/Ô/Ñ0Ô0Ð0åÐSÐV[Ñ[Ñ\Ô\Ð\r   c                 ó´   — t          | t          t          t          f¦  «        rd„ | D ¦   «         S | €dS |                      ¦   «                              d¦  «        S )z5Convert a space separated string to a list of scopes.c                 ó,   — g | ]}t          |¦  «        ‘ŒS r	   r
   r   s     r   r   z!scope_to_list.<locals>.<listcomp>   s   € Ð&Ð&Ð&˜1•�A‘”Ð&Ð&Ð&r   Nr   )r   r   r   r   ÚstripÚsplitr   s    r   Úscope_to_listr      sU   € å�%�%¥¥sÐ+Ñ,Ô,ð (Ø&Ð& Ð&Ñ&Ô&Ð&Ø	ˆØˆtà�{Š{‰}Œ}×"Ò" 3Ñ'Ô'Ð'r   c                 óš   — t          t          t          | ¦  «        j        ¦  «        ¦  «        }d|v rt	          |d         ¦  «        |d<   |S )Nr   )Údictr   r   Úqueryr   )ÚuriÚparamss     r   Úparams_from_urir%   "   sE   € Ý•)�H S™MœMÔ/Ñ0Ô0Ñ1Ô1€FØ�&ÐÐÝ'¨¨w¬Ñ8Ô8ˆˆw‰Ø€Mr   c                 óÊ   — dddœ}t          | ¦  «        \  }}}}}}d|v r|                     dd¦  «        \  }}n'|                     |                     ¦   «         ¦  «        }||fS )zuExtract hostname and port from URI.

    Will use default port for HTTP and HTTPS if none is present in the URI.
    Ú80Ú443)ÚHTTPÚHTTPSú:é   )r   r   ÚgetÚupper)	r#   Údefault_portsÚschÚnetlocÚpathÚparr"   ÚfraÚports	            r   Úhost_from_urir6   )   sw   € ð Øðð €Mõ
 *2°#©¬Ñ&€Cˆ��s˜E 3Ø
ˆf€}€}Ø—|’| C¨Ñ+Ô+‰ˆ��à× Ò  §¢¡¤Ñ-Ô-ˆà�4ˆ<Ðr   c                 ó’   — t          | t          ¦  «        st          d¦  «        ‚t          |                      d¦  «        d¬¦  «        S )ztEscape a string in an OAuth-compatible fashion.

    TODO: verify whether this can in fact be used for OAuth 2

    z#Only unicode objects are escapable.zutf-8ó   ~)Úsafe)r   r   r   r   Úencode)Úus    r   Úescaper<   <   sE   € õ �a�ÑÔð @ÝÐ>Ñ?Ô?Ð?Ý�—’˜'Ñ"Ô"¨Ð.Ñ.Ô.Ð.r   c                 ó¨   — t           j                              ¦   «         | z
  }|j        |j        |j        dz  dz  z   dz  z   dz  }t          |¦  «        S )z9Generate a age parameter for MAC authentication draft 00.é   i  i@B )ÚdatetimeÚnowÚmicrosecondsÚsecondsÚdaysr   )Ú
issue_timeÚtdÚages      r   Úgenerate_agerG   G   sV   € å	Ô	×	Ò	Ñ	 Ô	  :Ñ	-€BØŒ?˜bœj¨2¬7°R©<¸$Ñ+>Ñ>Øññ Øñ €Cåˆs‰8Œ8€Or   c                 ó’   — t           j                             d¦  «        rdS |                      ¦   «                              d¦  «        S )zCheck if the uri is over ssl.ÚOAUTHLIB_INSECURE_TRANSPORTTzhttps://)ÚosÚenvironr-   ÚlowerÚ
startswith)r#   s    r   Úis_secure_transportrN   O   s:   € å	„z‡~‚~Ð3Ñ4Ô4ð ØˆtØ�9Š9‰;Œ;×!Ò! *Ñ-Ô-Ð-r   )Ú__doc__r?   rJ   Úurllib.parser   r   Úoauthlib.commonr   r   r   r%   r6   r<   rG   rN   r	   r   r   ú<module>rR      sÃ   ððð ð €€€Ø 	€	€	€	Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (à %Ð %Ð %Ð %Ð %Ð %ð]ð ]ð ]ð(ð (ð (ðð ð ðð ð ð&/ð /ð /ðð ð ð.ð .ð .ð .ð .r   