�
<��g~ � �V � d dl mZ d dlZd dlZd dlZd dlZddgZdZdd�Zdd
�Z dd�Z
dS )� )�annotationsN�
accept_key�
apply_maskz$258EAFA5-E914-47DA-95CA-C5AB0DC85B11�return�strc �v � t j d� � } t j | � � � � � S )zB
Generate a random key for the Sec-WebSocket-Key header.
� )�secrets�token_bytes�base64� b64encode�decode)�keys �`/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/websockets/utils.py�generate_keyr s1 � �
�
�b�
!�
!�C���C� � �'�'�)�)�)� r c �� � t j | t z � � � � � � � � }t j |� � � � � S )z
Compute the value of the Sec-WebSocket-Accept header.
Args:
key: Value of the Sec-WebSocket-Key header.
)�hashlib�sha1�GUID�encode�digestr r
r )r r s r r r sL � � �<��t��+�+�-�-�.�.�5�5�7�7�D���D�!�!�(�(�*�*�*r �data�bytes�maskc � � t |� � dk rt d� � �t � | t j � � }|t | � � dz z |dt | � � dz � z }t � |t j � � }||z � t | � � t j � � S )z
Apply masking to the data of a WebSocket message.
Args:
data: Data to mask.
mask: 4-bytes mask.
� zmask must contain 4 bytesN)�len�
ValueError�int�
from_bytes�sys� byteorder�to_bytes)r r �data_int�
mask_repeated�mask_ints r r r $ s� � � �4�y�y�A�~�~��4�5�5�5��~�~�d�C�M�2�2�H��C��I�I��N�+�d�?�S��Y�Y��]�?�.C�C�M��~�~�m�S�]�;�;�H��x��)�)�#�d�)�)�S�]�C�C�Cr )r r )r r r r )r r r r r r )�
__future__r r r r
r"