Ë
    [üàg®  ã            	       óÊ  — U d Z ddlZddlZddlmZ ddlmZmZmZm	Z	m
Z
mZ ddlmZ ddlmZ  ed	«      j                   Z ed
«      j$                  Z ed«      j(                  Z ed«      j(                  Z ed«      j(                  Z ed
«      j(                  Z ed«      j(                  ZdZee   ed<   dZee   ed<   dZee   ed<   ej@                  dee   fd„«       Z!dede"ddfd„Z#esere#Z$n		 ddl%m&Z& e&Z$ ejP                  d«      Z)ee
e*      ed<    ejP                  d«      Z+ee
e*      ed<   d%de	e*   d e,deee,f   fd!„Z-	 d&d"ed e,d#e,de*fd$„Z.y# e'$ r e#Z$Y Œew xY w)'z1Helpers for WebSocket protocol versions 13 and 8.é    N)ÚStruct)ÚTYPE_CHECKINGÚFinalÚListÚOptionalÚPatternÚTupleé   )ÚNO_EXTENSIONSé   )ÚWSHandshakeErrorz!Qz!Hz!BBz!BBHz!BBQz!Li @  ÚMSG_SIZEé   ÚMASK_LENs$   258EAFA5-E914-47DA-95CA-C5AB0DC85B11ÚWS_KEYÚreturnc            	      óx   ‡ — t        d«      D � ‡ cg c]  Š t        ˆ fd„t        d«      D «       «      ‘Œ! c} S c c} w )Né   c              3   ó(   •K  — | ]	  }|‰z  –— Œ y ­w©N© )Ú.0ÚaÚbs     €úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/aiohttp/_websocket/helpers.pyú	<genexpr>z_xor_table.<locals>.<genexpr>   s   øè ø€ Ò,˜A�!�a•%Ñ,ùó   ƒ)ÚrangeÚbytes)r   s   `r   Ú
_xor_tabler       s*   ø€ ä6;¸C³j×A°ŒEÓ,¤ s£Ô,Õ,ÒAÐAùÒAs   �$7ÚmaskÚdatac                 ó€  ‡— t        |t        «      sJ |«       ‚t        | «      dk(  sJ | «       ‚|r�t        «       Šˆfd„| D «       \  }}}}|ddd…   j	                  |«      |ddd…<   |ddd…   j	                  |«      |ddd…<   |ddd…   j	                  |«      |ddd…<   |ddd…   j	                  |«      |ddd…<   yy)aw  Websocket masking function.

    `mask` is a `bytes` object of length 4; `data` is a `bytearray`
    object of any length. The contents of `data` are masked with `mask`,
    as specified in section 5.3 of RFC 6455.

    Note that this function mutates the `data` argument.

    This pure-python implementation may be replaced by an optimized
    version when available.

    r   c              3   ó(   •K  — | ]	  }‰|   –— Œ y ­wr   r   )r   ÚnÚ
_XOR_TABLEs     €r   r   z)_websocket_mask_python.<locals>.<genexpr>0   s   øè ø€ Ò2¨�j •mÑ2ùr   Nr   r
   é   )Ú
isinstanceÚ	bytearrayÚlenr    Ú	translate)r!   r"   r   r   ÚcÚdr&   s         @r   Ú_websocket_mask_pythonr.      sÜ   ø€ ô �dœIÔ&Ð,¨Ó,Ð&Üˆt‹9˜Š>Ð˜4Óˆ>áÜ“\ˆ
Û2¨TÔ2‰
ˆˆ1ˆa�Ø™˜1˜‘I×'Ñ'¨Ó*ˆ‰SˆqˆS‰	Ø˜!˜$˜Q˜$‘Z×)Ñ)¨!Ó,ˆˆQˆT�ˆT‰
Ø˜!˜$˜Q˜$‘Z×)Ñ)¨!Ó,ˆˆQˆT�ˆT‰
Ø˜!˜$˜Q˜$‘Z×)Ñ)¨!Ó,ˆˆQˆT�ˆTŠ
ð ó    )Ú_websocket_mask_cythonz�^(?:;\s*(?:(server_no_context_takeover)|(client_no_context_takeover)|(server_max_window_bits(?:=(\d+))?)|(client_max_window_bits(?:=(\d+))?)))*$Ú
_WS_EXT_REzpermessage-deflate([^,]+)?Ú_WS_EXT_RE_SPLITÚextstrÚisserverc                 óD  — | syd}d}t         j                  | «      D ]þ  }|j                  d«      }|sd} ||fS t        j	                  |«      }|r¬d}|rP|j                  d«      r't        |j                  d«      «      }|dkD  s|dk  rd}Œp|j                  d«      rd} ||fS |j                  d	«      r/t        |j                  d	«      «      }|dkD  s|dk  rt        d
«      ‚|j                  d«      rd} ||fS |rŒãt        d|j                  d«      z   «      ‚ ||fS )N)r   Fr   Fr   é   r   é	   Té   zInvalid window sizer
   z#Extension for deflate not supported)r2   ÚfinditerÚgroupr1   ÚmatchÚintr   )r3   r4   ÚcompressÚ
notakeoverÚextÚdefextr;   s          r   Úws_ext_parserA   M   sP  € ÙØà€HØ€JÜ×(Ñ(¨Ó0ò (YˆØ—‘˜1“ˆáØˆHØðJ �ZÐÐôI × Ñ  Ó(ˆÙØˆHÙð —;‘;˜q”>Ü" 5§;¡;¨q£>Ó2�Hð
   "’}¨°1ªØ#$˜Ø Ø—;‘;˜q”>Ø!%�Jàð$ �ZÐÐð! —;‘;˜q”>Ü" 5§;¡;¨q£>Ó2�Hð
   "’}¨°1ªÜ.Ð/DÓEÐEØ—;‘;˜q”>Ø!%�Jàð
 �ZÐÐò Ü"Ð#HÈ3Ï9É9ÐUVË<Ñ#WÓXÐXðQ(YðT �ZÐÐr/   r=   Úserver_notakeoverc                 óä   — | dk  s| dkD  rt        d«      ‚dg}|s|j                  d«       | dk  r|j                  dt        | «      z   «       |r|j                  d«       dj                  |«      S )	Nr7   r6   zCCompress wbits must between 9 and 15, zlib does not support wbits=8zpermessage-deflateÚclient_max_window_bitszserver_max_window_bits=Úserver_no_context_takeoverz; )Ú
ValueErrorÚappendÚstrÚjoin)r=   r4   rB   Ú
enabledexts       r   Ú
ws_ext_genrK   €   s   € ð
 �!‚|�x "’}ÜØQó
ð 	
ð 'Ð'€JÙØ×ÑÐ2Ô3à�"‚}Ø×ÑÐ3´c¸(³mÑCÔDÙØ×ÑÐ6Ô7ð �9‰9�ZÓ Ð r/   )F)r6   FF)/Ú__doc__Ú	functoolsÚreÚstructr   Útypingr   r   r   r   r   r	   Úhelpersr   Úmodelsr   Úunpack_fromÚUNPACK_LEN3ÚunpackÚUNPACK_CLOSE_CODEÚpackÚ	PACK_LEN1Ú	PACK_LEN2Ú	PACK_LEN3ÚPACK_CLOSE_CODEÚPACK_RANDBITSr   r<   Ú__annotations__r   r   r   Ú	lru_cacher    r)   r.   Úwebsocket_maskr!   r0   ÚImportErrorÚcompiler1   rH   r2   ÚboolrA   rK   r   r/   r   ú<module>rc      sÀ  ðÚ 7ã Û 	Ý ß G× Gå #Ý $á�T‹l×&Ñ&€Ù˜4“L×'Ñ'Ð Ù�5‹M×Ñ€	Ù�6‹N×Ñ€	Ù�6‹N×Ñ€	Ù˜“,×#Ñ#€Ù�t“×!Ñ!€Ø€ˆ%�‰*Ó Ø€ˆ%�‰*Ó à>€ˆˆe‰Ó >ð ×ÑðB�D˜‘Kò Bó ðBð- ð -¨ið -¸Dó -ñ2 ‘MØ+�Nð0Ý0à/ˆð
 #- "§*¡*ð/ó#€
ˆE�'˜#‘,Ñó ð )3¨¯
©
Ð3PÓ(QÐ �%˜ ™Ñ%Ó Qñ0 ˜ #™ð 0 °$ð 0 À5ÈÈdÈÑCSó 0 ðh KPñ!Øð!Ø"&ð!ØCGð!àô!øðE ò 0Ø/Šð0ús   Ã4E ÅE"Å!E"