ó
    öÞ jO  ã                  óf   • S SK Jr  S SKrS SKrS SKrS SKrSSKJr  SS/rSr	SS jr
SS	 jrSS
 jrg)é    )ÚannotationsNé   )Ú	BytesLikeÚ
accept_keyÚ
apply_maskz$258EAFA5-E914-47DA-95CA-C5AB0DC85B11c                 óv   • [         R                  " S5      n [        R                  " U 5      R	                  5       $ )z:
Generate a random key for the Sec-WebSocket-Key header.

é   )ÚsecretsÚtoken_bytesÚbase64Ú	b64encodeÚdecode)Úkeys    ÚJ/var/www/html/gaurav/venv/lib/python3.13/site-packages/websockets/utils.pyÚgenerate_keyr      s.   € ô
 ×
Ò
˜bÓ
!€CÜ×Ò˜CÓ ×'Ñ'Ó)Ð)ó    c                ó¼   • [         R                  " U [        -   R                  5       5      R	                  5       n[
        R                  " U5      R                  5       $ )zo
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      sB   € ô �<Š<˜œt™×+Ñ+Ó-Ó.×5Ñ5Ó7€DÜ×Ò˜DÓ!×(Ñ(Ó*Ð*r   c                óÄ  • [        U5      S:w  a  [        S5      e[        U [        5      (       a  U R                  (       d  [        U 5      n [        R                  U [        R                  5      nU[        U 5      S-  -  US[        U 5      S-   -   n[        R                  U[        R                  5      nX$-  R                  [        U 5      [        R                  5      $ )zk
Apply masking to the data of a WebSocket message.

Args:
    data: Data to mask.
    mask: 4-bytes mask.

é   zmask must contain 4 bytesN)ÚlenÚ
ValueErrorÚ
isinstanceÚ
memoryviewÚc_contiguousÚbytesÚintÚ
from_bytesÚsysÚ	byteorderÚto_bytes)ÚdataÚmaskÚdata_intÚmask_repeatedÚmask_ints        r   r   r   &   s§   € ô ˆ4ƒy�Aƒ~ÜÐ4Ó5Ð5ô �$œ
×#Ñ#¨D×,=×,=Ü�T‹{ˆä�~‰~˜d¤C§M¡MÓ2€HØœC ›I¨™NÑ+¨d°?´S¸³YÀ±]Ð.CÑC€MÜ�~‰~˜m¬S¯]©]Ó;€HØÑ×)Ñ)¬#¨d«)´S·]±]ÓCÐCr   )ÚreturnÚstr)r   r,   r+   r,   )r&   r   r'   zbytes | bytearrayr+   r    )Ú
__future__r   r   r   r
   r#   Útypingr   Ú__all__r   r   r   r   © r   r   Ú<module>r1      s:   ðÝ "ã Û Û Û 
å ð ˜Ð
&€ð .€ô*ô	+õDr   