
    j                     l    d dl Z d dlZd dlmZ ddlmZmZ ddlmZm	Z	  G d de      Z
 G d	 d
e      Zy)    N)crc32   )
ConnectionPacketCodec   )InvalidChecksumErrorInvalidBufferErrorc                   .     e Zd ZdZ fdZd Zd Z xZS )FullPacketCodecNc                 2    t         |   |       d| _        y )Nr   )super__init___send_counter)self
connection	__class__s     g/var/www/oz-panel.ru/ozpay-pub/venv/lib/python3.12/site-packages/telethon/network/connection/tcpfull.pyr   zFullPacketCodec.__init__   s    $    c                     t        |      dz   }t        j                  d|| j                        |z   }t        j                  dt	        |            }| xj                  dz  c_        ||z   S )N   <ii<Ir   )lenstructpackr   r   )r   datalengthcrcs       r   encode_packetzFullPacketCodec.encode_packet   s]     TR{{5&$*<*<=Dkk$d,aczr   c                 &  K   	 |j                  d       d {   }t	        j
                  d|      \  }}|dk  r)|dk  r$|j                  d       d {   }t        |      |dk  rt        |      |j                  |dz
         d {   }t	        j
                  d|dd        d   }|d d }t        ||z         }||k7  rt        ||      |S 7 # t        j                  $ r#}|j                  r|j                  cY d }~S  d }~ww xY w7 7 w)N   r   r      r   )	readexactlyasyncioIncompleteReadErrorpartialr   unpackr	   r   r   )	r   readerpacket_len_seqexc
packet_lenseqbodychecksumvalid_checksums	            r   read_packetzFullPacketCodec.read_packet   s    	#)#5#5a#88N !--~>
C>cAg  ++A..D$T**!^ %^44''
Q77==tBCy1!4CRy~45~%&x@@7 9** 	{{{{"		 / 8sh   DC CC 7DD6DDADC D
'D>D
?DDD

DD)__name__
__module____qualname__tagr   r   r1   __classcell__)r   s   @r   r   r   	   s    
Cr   r   c                       e Zd ZdZeZy)ConnectionTcpFullzy
    Default Telegram mode. Sends 12 additional bytes and
    needs to calculate the CRC value of the packet itself.
    N)r2   r3   r4   __doc__r   packet_codec r   r   r8   r8   9   s     #Lr   r8   )r%   r   zlibr   r   r   r   errorsr   r	   r   r8   r;   r   r   <module>r>      s-       / >-k -`#
 #r   