§
    !ß·iÐ  ã                   óP   — d dl Z d dlmZ d\  ZZZZZZ	Z
g d¢Z G d„ d¦  «        ZdS )é    N)Újson)r   é   é   é   é   é   é   )ÚCONNECTÚ
DISCONNECTÚEVENTÚACKÚCONNECT_ERRORÚBINARY_EVENTÚ
BINARY_ACKc                   ó´   — e Zd ZdZdZeZedddddfd„Zd„ Z	d„ Z
d„ Zed„ ¦   «         Zed	„ ¦   «         Zed
„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ ZdS )ÚPacketzSocket.IO packet.TNc                 óv  — || _         || _        || _        || _        | j        rg|s|€c|                      | j        ¦  «        rI| j         t          k    rt          | _         n,| j         t          k    rt          | _         nt          d¦  «        ‚d| _        g | _        |r|                      |¦  «        pd| _        d S d S )Nz'Packet does not support binary payload.r   )Úpacket_typeÚdataÚ	namespaceÚidÚuses_binary_eventsÚdata_is_binaryr   r   r   r   Ú
ValueErrorÚattachment_countÚattachmentsÚdecode)Úselfr   r   r   r   ÚbinaryÚencoded_packets          úT/home/mmwave/public_html/mmwave/venv/lib/python3.11/site-packages/socketio/packet.pyÚ__init__zPacket.__init__   s×   € à&ˆÔØˆŒ	Ø"ˆŒØˆŒØÔ"ð 	LØð	LØ"˜N¨t×/BÒ/BØ”Iñ0ô 0˜NàÔ¥5Ò(Ð(Ý#/�Ô Ð ØÔ!¥SÒ(Ð(Ý#-�Ô Ð å Ð!JÑKÔKÐKØ !ˆÔØˆÔØð 	EØ$(§K¢K°Ñ$?Ô$?Ð$DÀ1ˆDÔ!Ð!Ð!ð	Eð 	Eó    c                 óÌ  — t          | j        ¦  «        }| j        t          k    s| j        t          k    r@|                      | j        ¦  «        \  }}|t          t          |¦  «        ¦  «        dz   z  }n	| j        }d}| j        �| j        dk    r|| j        dz   z  }| j        �|t          | j        ¦  «        z  }|�|| j	         
                    |d¬¦  «        z  }|�|g|z   }|S )a  Encode the packet for transmission.

        If the packet contains binary elements, this function returns a list
        of packets where the first is the original packet with placeholders for
        the binary components and the remaining ones the binary attachments.
        Ú-Nú/Ú,)r'   ú:)Ú
separators)Ústrr   r   r   Údeconstruct_binaryr   Úlenr   r   r   Údumps)r   r    r   r   s       r!   ÚencodezPacket.encode-   sð   € õ ˜TÔ-Ñ.Ô.ˆØÔ�|Ò+Ð+¨tÔ/?Å:Ò/MÐ/MØ $× 7Ò 7¸¼	Ñ BÔ BÑˆD�+Ø�c¥# kÑ"2Ô"2Ñ3Ô3°cÑ9Ñ9ˆNˆNà”9ˆDØˆKØŒ>Ð%¨$¬.¸CÒ*?Ð*?Ø˜dœn¨sÑ2Ñ2ˆNØŒ7ÐØ�c $¤'™lœlÑ*ˆNØÐØ˜dœiŸošo¨d¸z˜oÑJÔJÑJˆNØÐ"Ø,Ð-°Ñ;ˆNØÐr#   c                 óZ  — |}	 t          |dd…         ¦  «        | _        n# t          $ r || _        d}Y nw xY wd| _        d| _        |dd…         }|                     d¦  «        }d}|dk    rU|d|…                              ¦   «         r9|dk    rt          d¦  «        ‚t          |d|…         ¦  «        }||dz   d…         }|rƒ|dd…         dk    ru|                     d	¦  «        }|d
k    r
|| _        d}n|d|…         | _        ||dz   d…         }| j                             d¦  «        }|d
k    r| j        d|…         | _        |r¿|d                              ¦   «         r¥d}t          |¦  «        }||k     r,||                              ¦   «         r|dk    rn|dz  }||k     °,t          |d|…         ¦  «        | _	        ||d…         }t          |¦  «        dk    r)|d                              ¦   «         rt          d¦  «        ‚|r| j
                             |¦  «        | _        |S )zŸDecode a transmitted package.

        The return value indicates how many binary attachment packets are
        necessary to fully decode the packet.
        r   r   Ú Nr%   é
   ztoo many attachmentsr&   r'   éÿÿÿÿú?éd   zid field is too long)Úintr   Ú	TypeErrorr   r   ÚfindÚisdigitr   r,   r   r   Úloads)	r   r    ÚepÚdashr   ÚsepÚqÚiÚends	            r!   r   zPacket.decodeE   sM  € ð ˆð	Ý" 2 a¨ c¤7™|œ|ˆDÔÐøÝð 	ð 	ð 	Ø!ˆDÔØˆBˆBˆBð	øøøð ˆŒØˆŒ	Ø���ŒVˆØ�wŠw�s‰|Œ|ˆØÐØ�!Š8ˆ8˜˜1˜T˜6œ
×*Ò*Ñ,Ô,ˆ8Ø�bŠyˆyÝ Ð!7Ñ8Ô8Ð8Ý" 2 a¨ f¤:™œÐØ�D˜1‘H�I�I”ˆBØð 
	5�"�Q�q�S”'˜S’.�.Ø—'’'˜#‘,”,ˆCØ�bŠyˆyØ!#�”Ø��à!# A c E¤�”Ø˜˜a™˜˜”\�Ø”×#Ò# CÑ(Ô(ˆAØ�BŠwˆwØ!%¤°°!°Ô!4�”Øð 
	9�"�Q”%—-’-‘/”/ð 
	9ØˆAÝ�b‘'”'ˆCØ�c’'�'Ø˜!”u—}’}‘”ð ¨!¨sª(¨(ØØ�Q‘�ð �c’'�'õ ˜"˜R˜a˜Rœ&‘k”kˆDŒGØ�A�B�B”ˆBÝ�2‰wŒw˜Š{ˆ{˜r !œuŸ}š}™œˆ{Ý Ð!7Ñ8Ô8Ð8Øð 	,Øœ	Ÿš¨Ñ+Ô+ˆDŒIØÐs   „! ¡7¶7c                 ó  — | j         t          | j        ¦  «        k    rt          d¦  «        ‚| j                             |¦  «         | j         t          | j        ¦  «        k    r'|                      | j        | j        ¦  «        | _        dS dS )NzUnexpected binary attachmentTF)r   r,   r   r   ÚappendÚreconstruct_binaryr   )r   Ú
attachments     r!   Úadd_attachmentzPacket.add_attachmentu   s€   € ØÔ ¥C¨Ô(8Ñ$9Ô$9Ò9Ð9ÝÐ;Ñ<Ô<Ð<ØÔ×Ò 
Ñ+Ô+Ð+ØÔ ¥C¨Ô(8Ñ$9Ô$9Ò9Ð9Ø×/Ò/°´	¸4Ô;KÑLÔLˆDŒIØ�4Øˆur#   c                 ó.   — |                       ||¦  «        S )zYReconstruct a decoded packet using the given list of binary
        attachments.
        ©Ú_reconstruct_binary_internal©Úclsr   r   s      r!   rB   zPacket.reconstruct_binary~   s   € ð
 ×/Ò/°°kÑBÔBÐBr#   c                 ó  ‡ ‡— t          |t          ¦  «        rˆˆ fd„|D ¦   «         S t          |t          ¦  «        rH|                     d¦  «        rd|v r‰|d                  S ˆˆ fd„|                     ¦   «         D ¦   «         S |S )Nc                 ó<   •— g | ]}‰                      |‰¦  «        ‘ŒS © rF   ©Ú.0Úitemr   rI   s     €€r!   ú
<listcomp>z7Packet._reconstruct_binary_internal.<locals>.<listcomp>ˆ   ó9   ø€ ð &ð &ð &Øð ×4Ò4°T¸;ÑGÔGð &ð &ð &r#   Ú_placeholderÚnumc                 óD   •— i | ]\  }}|‰                      |‰¦  «        “ŒS rL   rF   ©rN   ÚkeyÚvaluer   rI   s      €€r!   ú
<dictcomp>z7Packet._reconstruct_binary_internal.<locals>.<dictcomp>Ž   sF   ø€ ð 8ð 8ð 8á&˜C ð ˜S×=Ò=¸eØ>IñKô Kð 8ð 8ð 8r#   )Ú
isinstanceÚlistÚdictÚgetÚitemsrH   s   ` `r!   rG   z#Packet._reconstruct_binary_internal…   sÂ   øø€ å�d�DÑ!Ô!ð 	ð&ð &ð &ð &ð &Ø $ð&ñ &ô &ð &å˜�dÑ#Ô#ð 	Ø�xŠx˜Ñ'Ô'ð 8¨E°T¨M¨MØ" 4¨¤;Ô/Ð/ð8ð 8ð 8ð 8ð 8à*.¯*ª*©,¬,ð8ñ 8ô 8ð 8ð ˆKr#   c                 ó:   — g }|                       ||¦  «        }||fS )z(Extract binary components in the packet.©Ú_deconstruct_binary_internalrH   s      r!   r+   zPacket.deconstruct_binary”   s)   € ð ˆØ×/Ò/°°kÑBÔBˆØ�[Ð Ð r#   c                 óJ  ‡ ‡— t          |t          t          f¦  «        r*‰                     |¦  «         dt	          ‰¦  «        dz
  dœS t          |t
          ¦  «        rˆˆ fd„|D ¦   «         S t          |t          ¦  «        r!ˆˆ fd„|                     ¦   «         D ¦   «         S |S )NTr   )rR   rS   c                 ó<   •— g | ]}‰                      |‰¦  «        ‘ŒS rL   r_   rM   s     €€r!   rP   z7Packet._deconstruct_binary_internal.<locals>.<listcomp>¡   rQ   r#   c                 óD   •— i | ]\  }}|‰                      |‰¦  «        “ŒS rL   r_   rU   s      €€r!   rX   z7Packet._deconstruct_binary_internal.<locals>.<dictcomp>¤   s?   ø€ ð 4ð 4ð 4Ù"˜˜Uð ˜×9Ò9¸%ÀÑMÔMð 4ð 4ð 4r#   )rY   ÚbytesÚ	bytearrayrA   r,   rZ   r[   r]   rH   s   ` `r!   r`   z#Packet._deconstruct_binary_internal›   sÝ   øø€ å�d�U¥IÐ.Ñ/Ô/ð 
	Ø×Ò˜tÑ$Ô$Ð$Ø$(µ°[Ñ1AÔ1AÀAÑ1EÐFÐFÐFÝ˜�dÑ#Ô#ð 	ð&ð &ð &ð &ð &Ø $ð&ñ &ô &ð &å˜�dÑ#Ô#ð 	ð4ð 4ð 4ð 4ð 4Ø&*§j¢j¡l¤lð4ñ 4ô 4ð 4ð ˆKr#   c                 óH  ‡ — t          |t          t          f¦  «        rdS t          |t          ¦  «        r#t	          j        d„ ˆ fd„|D ¦   «         d¦  «        S t          |t          ¦  «        r5t	          j        d„ ˆ fd„|                     ¦   «         D ¦   «         d¦  «        S dS )z-Check if the data contains binary components.Tc                 ó
   — | p|S ©NrL   ©ÚaÚbs     r!   ú<lambda>z'Packet.data_is_binary.<locals>.<lambda>°   ó
   € ˜Q˜V !€ r#   c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS rL   ©r   ©rN   rO   rI   s     €r!   rP   z)Packet.data_is_binary.<locals>.<listcomp>°   s7   ø€ ð &8ð &8ð &8Ø*.ð '*×&8Ò&8¸Ñ&>Ô&>ð &8ð &8ð &8r#   Fc                 ó
   — | p|S rh   rL   ri   s     r!   rl   z'Packet.data_is_binary.<locals>.<lambda>´   rm   r#   c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS rL   ro   rp   s     €r!   rP   z)Packet.data_is_binary.<locals>.<listcomp>´   s=   ø€ ð &Að &Að &AØ*.ð '*×&8Ò&8¸Ñ&>Ô&>ð &Að &Að &Ar#   )rY   rd   re   rZ   Ú	functoolsÚreducer[   Úvalues)rI   r   s   ` r!   r   zPacket.data_is_binary©   sè   ø€ õ �d�U¥IÐ.Ñ/Ô/ð 	Ø�4Ý˜�dÑ#Ô#ð 
	ÝÔ#Ø#Ð#ð &8ð &8ð &8ð &8Ø26ð&8ñ &8ô &8Ø9>ñ@ô @ð @õ ˜�dÑ#Ô#ð 	ÝÔ#Ø#Ð#ð &Að &Að &Að &AØ26·+²+±-´-ð&Añ &Aô &Aàñô ð ð
 �5r#   c                 óR   — | j         | j        | j        dœ}| j        �
| j        |d<   |S )N)Útyper   Únspr   )r   r   r   r   )r   Úds     r!   Ú_to_dictzPacket._to_dictº   s8   € àÔ$Ø”IØ”>ð
ð 
ˆð
 Œ7ÐØ”gˆAˆd‰GØˆr#   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú_jsonr   r   r"   r.   r   rD   ÚclassmethodrB   rG   r+   r`   r   rz   rL   r#   r!   r   r   
   s  € € € € € ØÐð ÐØ€Dà#(¨t¸tÈØ¨TðEð Eð Eð Eð(ð ð ð0. ð . ð . ð`ð ð ð ðCð Cñ „[ðCð ðð ñ „[ðð ð!ð !ñ „[ð!ð ðð ñ „[ðð ðð ñ „[ðð ð ð ð ð r#   r   )rs   Úengineior   r   r
   r   r   r   r   r   r   Úpacket_namesr   rL   r#   r!   ú<module>rƒ      s‰   ðØ Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "ð ñ K€ˆ*�e˜S -°¸zð.ð .ð .€ðxð xð xð xð xñ xô xð xð xð xr#   