ó
    ÖÁ“i­  ã                  ó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    ÚM/home/mande/repo/quber/.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                ób  • [        U5      S:w  a  [        S5      e[        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Ú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¤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'   Úbytes)Ú
__future__r   r   r   r
   r   Útypingr   Ú__all__r   r   r   r   © r   r   Ú<module>r.      s:   ðÝ "ã Û Û Û 
å ð ˜Ð
&€ð .€ô*ô	+õDr   