File: //snap/core20/2669/lib/python3/dist-packages/jwt/__pycache__/compat.cpython-38.pyc
U
�b�[X � @ s� d Z ddlZddlZddlZejd dkZer8eZeZ ne
ZeZ ee fZzddlm
Z
mZ W n$ ek
r� ddlm
Z
mZ Y nX z
ejZW n ek
r� dd� ZY nX eedd�r�dd � Znd
d � ZdS )z�
The `compat` module provides support for backwards compatibility with older
versions of python, and compatibility wrappers around optional packages.
� N� )�Iterable�Mappingc C sH t | �t |�krdS d}t| |�D ]\}}|t|�t|�A O }q"|dkS )z�
Returns True if the two strings are equal, False otherwise.
The time taken is independent of the number of characters that match.
Fr )�len�zip�ord)Zval1Zval2�result�x�y� r �,/usr/lib/python3/dist-packages/jwt/compat.py�constant_time_compare! s r
�to_bytesc C s2 | }d}|dkr"|d? }|d7 }q| j |ddd�S )Nr � � ZbigF)Zsigned)r )�valZ remainingZbyte_lengthr r r �bytes_from_int3 s
r c C sB g }| r"t | d�\} }|�|� q|�� tjdt|� f|�� S )N� z%sB)�divmod�append�reverse�structZpackr )r ZbufZ remainderr r r r = s )�__doc__Zhmacr �sys�version_infoZPY3�strZ text_type�bytesZbinary_typeZunicodeZstring_typesZcollections.abcr r �ImportError�collectionsZcompare_digestr
�AttributeError�getattr�intr r r r r �<module> s*