�
�cA4 � �� � d Z ddlZddlZddlZddlZddlZddlmZ ddlm Z
mZm
Z ddlmZ ddlmZmZ n# e$ r ddlmZmZ Y nw xY wdZd Z ej d
ej � � Z ej d� � ZdZ ej d
� � Zd(d�Z d� Zd� Z
d� Z d� Z! e"e� � e"d� � z Z#d� Z$d� Z%d� Z&d� Z'defd�Z(d� Z)d� Z*defd�Z+d� Z,d)d �Z-d!� Z.d*d#�Z/ G d$� d%e0� � Z1 G d&� d'� � Z2dS )+z|
oauthlib.common
~~~~~~~~~~~~~~
This module provides data structures and utilities common
to all implementations of OAuth.
� N)�quote�unquote� urlencode� )� get_debug)�SystemRandom�randbits)r �getrandbits�>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789z_ !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}z&([^&;]*(?:password|token)[^=]*=)[^&;]+z&%[^0-9A-Fa-f]|%[0-9A-Fa-f][^0-9A-Fa-f]zAABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-�oauthlib� /c �� � t | t � � r| � d� � n| } t | |� � } t | t � � r| � d� � } | S �N�utf-8)�
isinstance�str�encode�_quote�bytes�decode)�s�safes �1/usr/lib/python3/dist-packages/oauthlib/common.pyr r + s^ � �'��3�/�/�6��������Q�A��q�$���A� �!�U��� �
�H�H�W�����H� c �x � t | � � } t | t � � r| � d� � } | S r )�_unquoter r r )r s r r r 5 s7 � �����A� �!�U��� �
�H�H�W�����Hr c � � t | � � }t |� � }t |t � � r|S |� d� � S r )�encode_params_utf8�
_urlencoder r r )�params�utf8_params�
urlencodeds r r r ? sH � �$�V�,�,�K��K�(�(�J��*�c�"�"� *���� � ��)�)�)r c �� � g }| D ]p\ }}|� t |t � � r|� d� � n|t |t � � r|� d� � n|f� � �q|S )ziEnsures that all parameters in a list of 2-element tuples are encoded to
bytestrings using UTF-8
r )�appendr r r )r �encoded�k�vs r r r H s� � � �G�� =� =���1����!+�A�s�!3�!3�:�A�H�H�W�����!+�A�s�!3�!3�:�A�H�H�W�����<� =� =� =� =� �Nr c �� � g }| D ]p\ }}|� t |t � � r|� d� � n|t |t � � r|� d� � n|f� � �q|S )zfEnsures that all parameters in a list of 2-element tuples are decoded to
unicode using UTF-8.
r )r$ r r r )r �decodedr& |