Ë
    S"“jÓ  ã                   óZ   — d dl Z ddlmZ ddlmZ ddlmZ  G d„ d«      Z G d	„ d
e«      Zy)é    Né   )ÚAbridgedPacketCodec)ÚObfuscatedConnectioné   )Ú
AESModeCTRc                   ó2   — e Zd ZdZd„ Zed„ «       Zd„ Zd„ Zy)ÚObfuscatedIONc                 ó¤   — |j                   | _         |j                  | _        | j                  |j                  «      \  | _        | _        | _        y ©N)Ú_readerÚ_writerÚinit_headerÚpacket_codecÚheaderÚ_encryptÚ_decrypt)ÚselfÚ
connections     új/var/www/api.ozpay.ru/ozpay/venv/lib/python3.12/site-packages/telethon/network/connection/tcpobfuscated.pyÚ__init__zObfuscatedIO.__init__   sE   € Ø!×)Ñ)ˆŒØ!×)Ñ)ˆŒð ×*Ñ*¨:×+BÑ+BÓCñ	ˆŒØ	ŒØ	�ó    c                 ó’  — d}	 t        j                  d«      }|d   dk7  r|d d |vr	|dd dk7  rnŒ.t        |«      }|dd	d
…   }t        |dd «      }t        |dd «      }t        |d d «      }t        |dd «      }t	        ||«      }t	        ||«      }	| j
                  |dd |j                  t        |«      «      dd |dd |||	fS )N)s   PVrGs   GET s   POSTs   îîîîé@   r   éï   é   é   s       é7   é   éÿÿÿÿé(   é8   é    é0   é<   )ÚosÚurandomÚ	bytearrayÚbytesr   Úobfuscate_tagÚencrypt)
r   ÚkeywordsÚrandomÚrandom_reversedÚencrypt_keyÚ
encrypt_ivÚdecrypt_keyÚ
decrypt_ivÚ	encryptorÚ	decryptors
             r   r   zObfuscatedIO.init_header   s   € ð DˆØÜ—Z‘Z “^ˆFØ�q‘	˜TÒ!Ø˜2˜A�J hÑ.Ø˜1˜Q�K ;Ò.Øð ô ˜6Ó"ˆØ   A b ™/ˆô ˜F 1 R˜LÓ)ˆÜ˜6 " R˜=Ó)ˆ
Ü˜O¨C¨RÐ0Ó1ˆÜ˜?¨2¨bÐ1Ó2ˆ
ä˜{¨JÓ7ˆ	Ü˜{¨JÓ7ˆ	à$×2Ñ2ˆˆr�"ˆØ!×)Ñ)¬%°«-Ó8¸¸BÐ?ˆˆr�"ˆØ˜	 9Ð-Ð-r   c              ƒ   ó†   K  — | j                   j                  | j                  j                  |«      ƒ d {  –—† «      S 7 Œ­wr   )r   r*   r   Úreadexactly)r   Úns     r   r5   zObfuscatedIO.readexactly/   s0   è ø€ Ø�}‰}×$Ñ$¨4¯<©<×+CÑ+CÀAÓ+F×%FÓGÐGÐ%Fús   ‚4A¶?·	Ac                 ól   — | j                   j                  | j                  j                  |«      «       y r   )r   Úwriter   r*   )r   Údatas     r   r8   zObfuscatedIO.write2   s#   € Ø�‰×Ñ˜4Ÿ=™=×0Ñ0°Ó6Õ7r   )	Ú__name__Ú
__module__Ú__qualname__r   r   Ústaticmethodr   r5   r8   © r   r   r	   r	   	   s,   „ Ø€FòDð ñ.ó ð.ò4Hó8r   r	   c                   ó   — e Zd ZdZeZeZy)ÚConnectionTcpObfuscatedzî
    Mode that Telegram defines as "obfuscated2". Encodes the packet
    just like `ConnectionTcpAbridged`, but encrypts every message with
    a randomly generated key using the AES-CTR mode so the packets are
    harder to discern.
    N)r:   r;   r<   Ú__doc__r	   Úobfuscated_ior   r   r>   r   r   r@   r@   6   s   „ ñð !€MØ&�Lr   r@   )	r%   Útcpabridgedr   r   r   Úcryptor   r	   r@   r>   r   r   ú<module>rE      s)   ðÛ 	å ,Ý ,å  ÷*8ñ *8ôZ'Ð2õ 'r   