Ë
    :É„jà  ã                   óð   — U d dl Z d dlZd dlZd dlZd dlmZmZmZmZ d dl	Z	 ej                  e«      Ze	j                  e	j                  e	j                  dœZeeef   ed<    G d„ de«      Z G d„ d«      Zy)	é    N)ÚTupleÚDictÚ	TypedDictÚOptional)ÚSOCKS4ÚSOCKS5ÚHTTPÚproxy_type_by_schemec                   óL   — e Zd ZU eed<   eed<   eed<   ee   ed<   ee   ed<   y)ÚProxyÚschemeÚhostnameÚportÚusernameÚpasswordN)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__Úintr   © ó    ú\/var/www/html/GAP/venv/lib/python3.12/site-packages/pyrogram/connection/transport/tcp/tcp.pyr   r   %   s%   … ØƒKØƒMØ
ƒIØ�s‰mÓØ�s‰mÔr   r   c                   ó¼   — e Zd ZdZdededdfd„Zdeee	f   ddfd„Z
deee	f   ddfd	„Zdeee	f   ddfd
„Zdeee	f   ddfd„Zdd„Zdeddfd„Zdde	dee   fd„Zy)ÚTCPé
   Úipv6ÚproxyÚreturnNc                 ó    — || _         || _        d | _        d | _        t	        j
                  «       | _        t	        j                  «       | _        y ©N)	r   r   ÚreaderÚwriterÚasyncioÚLockÚlockÚget_event_loopÚloop)Úselfr   r   s      r   Ú__init__zTCP.__init__0   s;   € ØˆŒ	ØˆŒ
à6:ˆŒØ6:ˆŒä—L‘L“NˆŒ	Ü×*Ñ*Ó,ˆ�	r   Údestinationc              ƒ   ó¾  K  — | j                   j                  d«      }|€t        d«      ‚t        j                  |j	                  «       «      }|€t        d|› �«      ‚| j                   j                  d«      }| j                   j                  d«      }| j                   j                  d«      }| j                   j                  d«      }	 t        j                  |«      }t        |t
        j                  «      }	|	rt        j                  nt        j                  }
t        j                  |
«      }|j                  |||||¬	«       |j                  t         j"                  «       | j$                  j'                  ||¬
«      ƒ d {  –—†  |j)                  d«       t+        j,                  |¬«      ƒ d {  –—† \  | _        | _        y # t        $ r d}	Y ŒÛw xY w7 ŒR7 Œ%­w)Nr   zNo scheme specifiedzUnknown proxy type r   r   r   r   F)Ú
proxy_typeÚaddrr   r   r   )ÚsockÚaddress)r0   )r   ÚgetÚ
ValueErrorr
   ÚupperÚ	ipaddressÚ
ip_addressÚ
isinstanceÚIPv6AddressÚsocketÚAF_INET6ÚAF_INETÚsocksÚ
socksocketÚ	set_proxyÚ
settimeoutr   ÚTIMEOUTr)   Úsock_connectÚsetblockingr%   Úopen_connectionr#   r$   )r*   r,   r   r.   r   r   r   r   r6   Úis_proxy_ipv6Úproxy_familyr0   s               r   Ú_connect_via_proxyzTCP._connect_via_proxy:   s˜  è ø€ ð —‘—‘ Ó)ˆØˆ>ÜÐ2Ó3Ð3ä)×-Ñ-¨f¯l©l«nÓ=ˆ
ØÐÜÐ2°6°(Ð;Ó<Ð<à—:‘:—>‘> *Ó-ˆØ�z‰z�~‰~˜fÓ%ˆØ—:‘:—>‘> *Ó-ˆØ—:‘:—>‘> *Ó-ˆð	JÜ"×-Ñ-¨hÓ7ˆJô ' z´9×3HÑ3HÓIˆMá*7”v—’¼V¿^¹^ˆÜ×Ñ Ó-ˆà�‰Ø!ØØØØð 	ô 	
ð 	�‰œŸ™Ô$à�i‰i×$Ñ$ØØð %ó 
÷ 	
ð 	
ð
 	×Ñ˜Ôä)0×)@Ñ)@Øô*
÷ $
Ñ ˆŒ�T•[øô1 ò 	"Ø!ŠMð	"úð"	
øð$
úsI   ‚CGÃG Ã B&GÆGÆ.GÆ5GÆ6GÇGÇGÇGÇGÇGc              ƒ   óÌ   K  — |\  }}| j                   rt        j                  nt        j                  }t	        j
                  |||¬«      ƒ d {  –—† \  | _        | _        y 7 Œ­w)N)Úhostr   Úfamily)r   r9   r:   r;   r%   rC   r#   r$   )r*   r,   rH   r   rI   s        r   Ú_connect_via_directzTCP._connect_via_directi   sR   è ø€ ð !‰
ˆˆdØ$(§I¢I”—’´6·>±>ˆÜ)0×)@Ñ)@ØØØô*
÷ $
Ñ ˆŒ�T•[ð $
ús   ‚AA$ÁA"ÁA$c              ƒ   ó’   K  — | j                   r| j                  |«      ƒ d {  –—†  y | j                  |«      ƒ d {  –—†  y 7 Œ7 Œ­wr"   )r   rF   rJ   )r*   r,   s     r   Ú_connectzTCP._connectu   s>   è ø€ Ø�:Š:Ø×)Ñ)¨+Ó6×6Ñ6à×*Ñ*¨;Ó7×7Ñ7ð 7øà7ús   ‚!A£A¤A½A¾AÁAr1   c              ƒ   óÌ   K  — 	 t        j                  | j                  |«      t        j                  «      ƒ d {  –—†  y 7 Œ# t         j
                  $ r t        d«      ‚w xY w­w)NzConnection timed out)r%   Úwait_forrL   r   r@   ÚTimeoutError)r*   r1   s     r   ÚconnectzTCP.connect{   sN   è ø€ ð	7Ü×"Ñ" 4§=¡=°Ó#9¼3¿;¹;ÓG×GÒGùÜ×#Ñ#ò 	7ÜÐ5Ó6Ð6ð	7üs+   ‚A$„6A ºA »A ¿A$Á A ÁA!Á!A$c              ƒ   óh  K  — | j                   €y 	 | j                   j                  «        t        j                  | j                   j	                  «       t
        j                  «      ƒ d {  –—†  y 7 Œ# t        $ r4}t        j                  dt        |«      j                  |«       Y d }~y d }~ww xY w­w)NzClose exception: %s %s)r$   Úcloser%   rN   Úwait_closedr   r@   Ú	ExceptionÚlogÚinfoÚtyper   )r*   Úes     r   rR   z	TCP.close�   s   è ø€ Ø�;‰;ÐØð	DØ�K‰K×ÑÔÜ×"Ñ" 4§;¡;×#:Ñ#:Ó#<¼c¿k¹kÓJ×JÒJùÜò 	DÜ�H‰HÐ-¬t°A«w×/?Ñ/?À×CÑCûð	DüsA   ‚B2‘AA2 Á*A0Á+A2 Á/B2Á0A2 Á2	B/Á;*B*Â%B2Â*B/Â/B2Údatac              ƒ   ó®  K  — | j                   €y | j                  4 ƒd {  –—†  	 | j                   j                  |«       | j                   j                  «       ƒ d {  –—†  d d d «      ƒd {  –—†  y 7 ŒS7 Œ# t        $ r:}t
        j                  dt        |«      j                  |«       t        |«      ‚d }~ww xY w7 ŒO# 1 ƒd {  –—†7  sw Y   y xY w­w)NzSend exception: %s %s)
r$   r'   ÚwriteÚdrainrT   rU   rV   rW   r   ÚOSError)r*   rY   rX   s      r   ÚsendzTCP.send‹   s°   è ø€ Ø�;‰;ÐØà—9‘9÷ 	!ñ 	!ð!Ø—‘×!Ñ! $Ô'Ø—k‘k×'Ñ'Ó)×)Ð)÷	!÷ 	!ñ 	!øð *ùÜò !Ü—‘Ð0´$°q³'×2BÑ2BÀAÔFÜ˜a“jÐ ûð!úð		!ø÷ 	!÷ 	!ñ 	!üss   ‚C A4¡C¤C ¦8A8ÁA6ÁA8Á#CÁ.B>Á/CÁ6A8Á8	B;Â5B6Â6B;Â;C Â>CÃ CÃC	ÃCÃCÚlengthc              ƒ   óD  K  — d}t        |«      |k  rj	 t        j                  | j                  j	                  |t        |«      z
  «      t
        j                  «      ƒ d {  –—† }|r||z  }ny t        |«      |k  rŒj|S 7 Œ# t        t        j                  f$ r Y y w xY w­w)Nr   )	Úlenr%   rN   r#   Úreadr   r@   r]   rO   )r*   r_   rY   Úchunks       r   ÚrecvzTCP.recv—   sœ   è ø€ Øˆä�$‹i˜&Ò ð Ü%×.Ñ.Ø—K‘K×$Ñ$ V¬c°$«iÑ%7Ó8Ü—K‘Kó÷ �ñ Ø˜E‘M‘Dàô �$‹i˜&Ó ð ˆðùô œW×1Ñ1Ð2ò ÙðüsA   ‚B ”AB Á A?Á!B Á%B Á=B Á?B ÂBÂB ÂBÂB )r    N)r   )r   r   r   r@   Úboolr   r+   r   r   r   rF   rJ   rL   rP   rR   Úbytesr^   r   rd   r   r   r   r   r   -   sÆ   „ Ø€Gð-˜Tð -¨%ð -°Dó -ð-
à˜3 ˜8‘_ð-
ð 
ó-
ð^

à˜3 ˜8‘_ð

ð 
ó

ð8¨%°°S°©/ð 8¸dó 8ð7 U¨3°¨8¡_ð 7¸ó 7óDð
!˜uð 
!¨ó 
!ñ ð ¨X°e©_ô r   r   )r%   r5   Úloggingr9   Útypingr   r   r   r   r<   Ú	getLoggerr   rU   r   r   r	   r
   r   r   r   r   r   r   r   r   ú<module>rj      st   ðô( Û Û Û ß 3Ó 3ã à€g×Ñ˜Ó!€ð �l‰lØ�l‰lØ�J‰Jñ(Ð �d˜3 ˜8‘nó ôˆIô ÷{ò {r   