+
    ¡º<j­  ã                  ón   € ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^RIHt RR.tRt	R R lt
R	 R
 ltR R ltR# )é    )ÚannotationsN)Ú	BytesLikeÚ
accept_keyÚ
apply_maskz$258EAFA5-E914-47DA-95CA-C5AB0DC85B11c               ó   € V ^8„  d   QhRR/# )é   ÚreturnÚstr© )Úformats   "ÚE/opt/headortail/venv/lib/python3.14/site-packages/websockets/utils.pyÚ__annotate__r      s   € ÷ *ñ *cñ *ó    c                 óv   € \         P                  ! ^4      p \        P                  ! V 4      P	                  4       # )z:
Generate a random key for the Sec-WebSocket-Key header.

)ÚsecretsÚtoken_bytesÚbase64Ú	b64encodeÚdecode)Úkeys    r   Úgenerate_keyr      s.   € ô
 ×
Ò
˜bÓ
!€CÜ×Ò˜CÓ ×'Ñ'Ó)Ð)r   c               ó    € V ^8„  d   QhRRRR/# )r   r   r
   r	   r   )r   s   "r   r   r      s   € ÷ 	+ñ 	+Cð 	+˜Cñ 	+r   c                óÄ   € \         P                  ! V \        ,           P                  4       4      P	                  4       p\
        P                  ! V4      P                  4       # )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               ó$   € V ^8„  d   QhRRRRRR/# )r   Údatar   Úmaskzbytes | bytearrayr	   Úbytesr   )r   s   "r   r   r   &   s'   € ÷ Dñ DYð DÐ&7ð D¸Eñ Dr   c                óŒ  € \        V4      ^8w  d   \        R4      h\        P                  V \        P
                  4      pV\        V 4      ^,          ,          VR\        V 4      ^,           ,           p\        P                  V\        P
                  4      pW$,          P                  \        V 4      \        P
                  4      # )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)r    r!   Údata_intÚmask_repeatedÚmask_ints   &&   r   r   r   &   s‡   € ô ˆ4ƒyA„~ÜÐ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   )Ú
__future__r   r   r   r   r(   Útypingr   Ú__all__r   r   r   r   r   r   r   Ú<module>r1      s:   ðÝ "ã Û Û Û 
å ð ˜Ð
&€ð .€õ*õ	+÷Dr   