Ë
    <jæ  ã                  óp   — d dl mZ d dlZd dlZd dlZd dlZd dlZddlmZ g d¢Z	dZ
dd„Zdd„Zdd	„Zdd
„Zy)é    )ÚannotationsNé   )Ú	BytesLike)Ú
accept_keyÚ
apply_maskÚget_socket_namez$258EAFA5-E914-47DA-95CA-C5AB0DC85B11c                 ór   — t        j                  d«      } t        j                  | «      j	                  «       S )zB
    Generate a random key for the Sec-WebSocket-Key header.

    é   )ÚsecretsÚtoken_bytesÚbase64Ú	b64encodeÚdecode)Úkeys    úG/opt/lfcs-signon/.venv/lib/python3.12/site-packages/websockets/utils.pyÚgenerate_keyr      s.   € ô
 ×
Ñ
˜bÓ
!€CÜ×Ñ˜CÓ ×'Ñ'Ó)Ð)ó    c                ó¸   — t        j                  | t        z   j                  «       «      j	                  «       }t        j                  |«      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      sB   € ô <‰<˜œt™×+Ñ+Ó-Ó.×5Ñ5Ó7€DÜ×Ñ˜DÓ!×(Ñ(Ó*Ð*r   c                ó°  — t        |«      dk7  rt        d«      ‚t        | t        «      r| j                  st        | «      } t        j                  | t        j                  «      }|t        | «      dz  z  |dt        | «      dz   z   }t        j                  |t        j                  «      }||z  j                  t        | «      t        j                  «      S )z
    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ƒyA‚~ÜÐ4Ó5Ð5ô $œ
Ô#¨D×,=Ò,=ÜT‹{ˆä~‰~˜d¤C§M¡MÓ2€HØœC ›I¨™NÑ+¨d°?´S¸³YÀ±]Ð.CÑC€MÜ~‰~˜m¬S¯]©]Ó;€HØxÑ×)Ñ)¬#¨d«)´S·]±]ÓCÐCr   c                ó(  — | j                   xt        j                  k(  r d| j                  «       z  S xt        j                  k(  r d| j                  «       dd z  S t        j
                  k(  rt        | j                  «       «      S 	 t        d«      ‚)zR
    Return a string representation of :meth:`~socket.socket.getsockname()`.

    z%s:%dz[%s]:%dNé   zunsupported socket family)ÚfamilyÚsocketÚAF_INETÚgetsocknameÚAF_INET6ÚAF_UNIXÚstrÚAssertionError)Úsocks    r   r   r   =   sx   € ð
 +‰+ØŒV^^Ø˜T×-Ñ-Ó/Ñ/Ð/ØŒV__Ø˜t×/Ñ/Ó1°"°1Ð5Ñ5Ð5Ü^Œ^Üt×'Ñ'Ó)Ó*Ð*Øô !Ð!<Ó=Ð=r   )Úreturnr4   )r   r4   r7   r4   )r'   r   r(   zbytes | bytearrayr7   r!   )r6   zsocket.socketr7   r4   )Ú
__future__r   r   r   r   r/   r$   Útypingr   Ú__all__r   r   r   r   r   © r   r   ú<module>r<      s=   ðÝ "ã Û Û Û Û 
å ò :€ð .€ó*ó	+óDô,>r   