
    ;Si                     d    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     h/var/www/OnlineNewsSite/project/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 7 7 Jw)N   r   r      r   )readexactlyr   unpackr	   r   r   )r   readerpacket_len_seq
packet_lenseqbodychecksumvalid_checksums           r   read_packetzFullPacketCodec.read_packet   s     %11!44 --~>
C>cAg  ++A..D$T**!^ %^44''
Q77==tBCy1!4CRy~45~%&x@@- 5 / 8s4   CC;CC6C
CACCC)__name__
__module____qualname__tagr   r   r-   __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)r.   r/   r0   __doc__r   packet_codec r   r   r4   r4   2   s     #Lr   r4   )r   zlibr   r   r   r   errorsr   r	   r   r4   r7   r   r   <module>r:      s*      / >'k 'T#
 #r   