ó
    äd8h.5  ã            
      óV  • S SK Jr  S SKrS SKrS SKrSSKJr  SSKJrJ	r	  SSK
JrJr  SSKJrJrJrJrJrJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  \R@                  " S5      r!SSSSS.r"SSSSSSSSSS.	r#SS.         S%S  jjr$ " S! S"\5      r% " S# S$\5      r&g)&é    )ÚannotationsNé   )ÚSyncBackend)ÚNetworkBackendÚNetworkStream)ÚConnectionNotAvailableÚ
ProxyError)ÚURLÚOriginÚRequestÚResponseÚenforce_bytesÚenforce_url)Údefault_ssl_context)ÚLock)ÚTraceé   )ÚConnectionPool)ÚHTTP11Connection)ÚConnectionInterfacezhttpcore.sockszNO AUTHENTICATION REQUIREDÚGSSAPIzUSERNAME/PASSWORDzNO ACCEPTABLE METHODS)ó    ó   ó   ó   ÿÚ	SucceededzGeneral SOCKS server failurez!Connection not allowed by rulesetzNetwork unreachablezHost unreachablezConnection refusedzTTL expiredzCommand not supportedzAddress type not supported)	r   r   r   ó   ó   ó   ó   ó   ó   )Úauthc               óð  • [         R                  R                  5       nUc$  [         R                  R                  R                  O#[         R                  R                  R
                  nUR                  [         R                  R                  U/5      5        UR                  5       nU R                  U5        U R                  SS9nUR                  U5      n[        U[         R                  R                  5      (       d   eUR                  U:w  aH  [        R!                  US5      n	[        R!                  UR                  S5      n
[#        SU	 SU
 S35      eUR                  [         R                  R                  R
                  :X  a¿  Uc   eUu  p¼UR                  [         R                  R%                  X¼5      5        UR                  5       nU R                  U5        U R                  SS9nUR                  U5      n[        U[         R                  R&                  5      (       d   eUR(                  (       d  [#        S5      eUR                  [         R                  R*                  R-                  [         R                  R.                  R0                  X45      5        UR                  5       nU R                  U5        U R                  SS9nUR                  U5      n[        U[         R                  R2                  5      (       d   eUR4                  [         R                  R6                  R8                  :w  a/  [:        R!                  UR4                  S5      n[#        S	U S35      eg )
Ni   )Ú	max_bytesÚUNKNOWNz
Requested z from proxy server, but got Ú.zInvalid username/passwordÚUNKOWNz Proxy Server could not connect: )ÚsocksioÚsocks5ÚSOCKS5ConnectionÚSOCKS5AuthMethodÚNO_AUTH_REQUIREDÚUSERNAME_PASSWORDÚsendÚSOCKS5AuthMethodsRequestÚdata_to_sendÚwriteÚreadÚreceive_dataÚ
isinstanceÚSOCKS5AuthReplyÚmethodÚAUTH_METHODSÚgetr	   ÚSOCKS5UsernamePasswordRequestÚSOCKS5UsernamePasswordReplyÚsuccessÚSOCKS5CommandRequestÚfrom_addressÚSOCKS5CommandÚCONNECTÚSOCKS5ReplyÚ
reply_codeÚSOCKS5ReplyCodeÚ	SUCCEEDEDÚREPLY_CODES)ÚstreamÚhostÚportr#   ÚconnÚauth_methodÚoutgoing_bytesÚincoming_bytesÚresponseÚ	requestedÚ	respondedÚusernameÚpasswordrB   s                 Ú/Lib\site-packages\httpcore\_sync\socks_proxy.pyÚ_init_socks5_connectionrS   *   s¸  € ô �>‰>×*Ñ*Ó,€Dð
 ‰<ô 	�‰×'Ñ'×8Ò8ä�^‰^×,Ñ,×>Ñ>ð ð
 	‡I�IŒg�n‰n×5Ñ5°{°mÓDÔEØ×&Ñ&Ó(€NØ
‡L�L�Ô ð —[‘[¨4�[Ð0€NØ× Ñ  Ó0€HÜ�h¤§¡× >Ñ >×?Ñ?Ð?Ð?Ø‡�˜+Ó%Ü ×$Ñ$ [°)Ó<ˆ	Ü ×$Ñ$ X§_¡_°iÓ@ˆ	ÜØ˜˜Ð#?À	¸{È!ÐLó
ð 	
ð ‡�œ'Ÿ.™.×9Ñ9×KÑKÓKàÑÐÐØ!ÑˆØ�	‰	”'—.‘.×>Ñ>¸xÓRÔSØ×*Ñ*Ó,ˆØ�‰�^Ô$ð  Ÿ™¨t˜Ð4ˆØ×$Ñ$ ^Ó4ˆÜ˜(¤G§N¡N×$NÑ$N×OÑOÐOÐOØ××ÜÐ8Ó9Ð9ð 	‡I�IÜ�‰×+Ñ+×8Ñ8Ü�N‰N×(Ñ(×0Ñ0°4°,ó	
ôð
 ×&Ñ&Ó(€NØ
‡L�L�Ô ð —[‘[¨4�[Ð0€NØ× Ñ  Ó0€HÜ�h¤§¡× :Ñ :×;Ñ;Ð;Ð;Ø×ÑœgŸn™n×<Ñ<×FÑFÓFÜ —_‘_ X×%8Ñ%8¸(ÓCˆ
ÜÐ;¸J¸<ÀqÐIÓJÐJð Gó    c                  óz   ^ • \ rS rSrSr         S                     SU 4S jjjrSS jrSrU =r$ )	Ú
SOCKSProxyéi   z:
A connection pool that sends requests via an HTTP proxy.
c                ó°   >• [         TU ]  UUUUUUU
U	S9  X0l        [        USS9U l        Ub"  Uu  p¼[        USS9n[        USS9nUU4U l        gSU l        g)aF  
A connection pool for making HTTP requests.

Parameters:
    proxy_url: The URL to use when connecting to the proxy server.
        For example `"http://127.0.0.1:8080/"`.
    ssl_context: An SSL context to use for verifying connections.
        If not specified, the default `httpcore.default_ssl_context()`
        will be used.
    max_connections: The maximum number of concurrent HTTP connections that
        the pool should allow. Any attempt to send a request on a pool that
        would exceed this amount will block until a connection is available.
    max_keepalive_connections: The maximum number of idle HTTP connections
        that will be maintained in the pool.
    keepalive_expiry: The duration in seconds that an idle HTTP connection
        may be maintained for before being expired from the pool.
    http1: A boolean indicating if HTTP/1.1 requests should be supported
        by the connection pool. Defaults to True.
    http2: A boolean indicating if HTTP/2 requests should be supported by
        the connection pool. Defaults to False.
    retries: The maximum number of retries when trying to establish
        a connection.
    local_address: Local address to connect from. Can also be used to
        connect using a particular address family. Using
        `local_address="0.0.0.0"` will connect using an `AF_INET` address
        (IPv4), while using `local_address="::"` will connect using an
        `AF_INET6` address (IPv6).
    uds: Path to a Unix Domain Socket to use instead of TCP sockets.
    network_backend: A backend instance to use for handling network I/O.
)Ússl_contextÚmax_connectionsÚmax_keepalive_connectionsÚkeepalive_expiryÚhttp1Úhttp2Únetwork_backendÚretriesÚ	proxy_url)ÚnameNÚ
proxy_auth)ÚsuperÚ__init__Ú_ssl_contextr   Ú
_proxy_urlr   Ú_proxy_auth)Úselfra   rc   rY   rZ   r[   r\   r]   r^   r`   r_   rP   rQ   Úusername_bytesÚpassword_bytesÚ	__class__s                  €rR   re   ÚSOCKSProxy.__init__n   s†   ø€ ôV 	‰ÑØ#Ø+Ø&?Ø-ØØØ+Øð 	ñ 		
ð (ÔÜ% i°kÑBˆŒØÑ!Ø!+ÑˆHÜ*¨8¸,ÑGˆNÜ*¨8¸,ÑGˆNàØð<ˆDÕð
  $ˆDÕrT   c                óÂ   • [        U R                  R                  UU R                  U R                  U R
                  U R                  U R                  U R                  S9$ )N)Úproxy_originÚremote_originrc   rY   r\   r]   r^   r_   )	ÚSocks5Connectionrg   Úoriginrh   rf   Ú_keepalive_expiryÚ_http1Ú_http2Ú_network_backend©ri   rr   s     rR   Úcreate_connectionÚSOCKSProxy.create_connection°   sQ   € ÜØŸ™×/Ñ/Ø Ø×'Ñ'Ø×)Ñ)Ø!×3Ñ3Ø—+‘+Ø—+‘+Ø ×1Ñ1ñ	
ð 		
rT   )rh   rg   rf   )	NNé
   NNTFr   N)ra   zURL | bytes | strrc   z&tuple[bytes | str, bytes | str] | NonerY   ússl.SSLContext | NonerZ   ú
int | Noner[   r|   r\   úfloat | Noner]   Úboolr^   r~   r`   Úintr_   úNetworkBackend | NoneÚreturnÚNone)rr   r   r�   r   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__re   rx   Ú__static_attributes__Ú__classcell__)rl   s   @rR   rV   rV   i   s´   ø† ñð >BØ-1Ø&(Ø04Ø)-ØØØØ15ð@$à$ð@$ð ;ð@$ð +ð	@$ð
 $ð@$ð $.ð@$ð 'ð@$ð ð@$ð ð@$ð ð@$ð /ð@$ð 
÷@$ð @$÷D

ò 

rT   rV   c                  óª   • \ rS rSr      S                 SS jjrSS jrSS jrSS jrSS jrSS jr	SS	 jr
SS
 jrSS jrSS jrSrg)rq   é½   Nc	                óº   • Xl         X l        X0l        X@l        XPl        X`l        Xpl        Uc
  [        5       OUU l        [        5       U l
        S U l        SU l        g )NF)Ú_proxy_originÚ_remote_originrh   rf   rs   rt   ru   r   rv   r   Ú_connect_lockÚ_connectionÚ_connect_failed)	ri   ro   rp   rc   rY   r\   r]   r^   r_   s	            rR   re   ÚSocks5Connection.__init__¾   s^   € ð *ÔØ+ÔØ%ÔØ'ÔØ!1ÔØŒØŒð -Ñ4ŒKŒM¸/ð 	Ôô "›VˆÔØ7;ˆÔØ$ˆÕrT   c                óà  • UR                   R                  S0 5      nUR                   R                  SS 5      nUR                  SS 5      nU R                     U R                  Gc\   U R                  R
                  R                  S5      U R                  R                  US.n[        S[        X5       nU R                  R                  " S0 UD6nXvl        S S S 5        WU R                  R
                  R                  S5      U R                  R                  U R                  S.n[        S[        X5       n[        S0 UD6  Xvl        S S S 5        U R                  R                   S	:X  a°  U R"                  c
  [%        5       OU R"                  nU R&                  (       a  S
S/OS
/n	UR)                  U	5        UU=(       d%    U R                  R
                  R                  S5      US.n[        S[        X5       nUR*                  " S0 UD6nXvl        S S S 5        UR-                  S5      n
U
S L=(       a    U
R/                  5       S:H  nU(       d"  U R&                  (       a9  U R0                  (       d(  SSKJn  U" U R                  UU R6                  S9U l        ON[9        U R                  UU R6                  S9U l        O)U R                  R?                  5       (       d
  [A        5       eS S S 5        U R                  RC                  U5      $ ! , (       d  f       GN== f! , (       d  f       GNÜ= f! , (       d  f       GN$= f! [:         a  nSU l        UeS nAff = f! , (       d  f       Nz= f)NÚtimeoutÚsni_hostnameÚconnectÚascii)rG   rH   r”   Úconnect_tcp)rF   rG   rH   r#   Úsetup_socks5_connectionó   httpszhttp/1.1Úh2)rY   Úserver_hostnamer”   Ú	start_tlsÚ
ssl_objectr   )ÚHTTP2Connection)rr   rF   r\   T© )"Ú
extensionsr9   r�   r�   r�   rG   ÚdecoderH   r   Úloggerrv   r˜   Úreturn_valuerŽ   rh   rS   Úschemerf   r   ru   Úset_alpn_protocolsr�   Úget_extra_infoÚselected_alpn_protocolrt   r^   rŸ   rs   r   Ú	Exceptionr‘   Úis_availabler   Úhandle_request)ri   ÚrequestÚtimeoutsr•   r”   ÚkwargsÚtracerF   rY   Úalpn_protocolsrž   Úhttp2_negotiatedrŸ   Úexcs                 rR   r«   ÚSocks5Connection.handle_requestØ   s  € Ø×%Ñ%×)Ñ)¨)°RÓ8ˆØ×)Ñ)×-Ñ-¨n¸dÓCˆØ—,‘,˜y¨$Ó/ˆà×ÓØ×ÑÒ'ðHð !%× 2Ñ 2× 7Ñ 7× >Ñ >¸wÓ GØ $× 2Ñ 2× 7Ñ 7Ø#*ñ�Fô
 ˜}¬f°gÔFÈ%Ø!%×!6Ñ!6×!BÒ!BÑ!LÀVÑ!L˜Ø-3Ô*÷ Gð #)Ø $× 3Ñ 3× 8Ñ 8× ?Ñ ?ÀÓ HØ $× 3Ñ 3× 8Ñ 8Ø $× 0Ñ 0ñ	�Fô Ø1´6¸7ôàÜ/Ñ9°&Ò9Ø-3Ô*÷	ð ×*Ñ*×1Ñ1°XÓ=ð  $×0Ñ0Ñ8ô 0Ô1à!%×!2Ñ!2ð $ð 37·+·+˜Z¨Ñ.ÀJÀ<ð 'ð $×6Ñ6°~ÔFð ,7Ø/;÷ 0HØ#×2Ñ2×7Ñ7×>Ñ>¸wÓGØ'.ñ	"˜ô # ;´¸ÔHÈEØ%+×%5Ò%5Ñ%?¸Ñ%?˜FØ17Ô.÷ Ið
 "(×!6Ñ!6°|Ó!D�Jà"¨$Ð.÷ HØ&×=Ñ=Ó?À4ÑGð %ö (ØŸŸ¨D¯K¯Kå:á+:Ø#'×#6Ñ#6Ø#)Ø-1×-CÑ-Cñ,˜Õ(ô ,<Ø#'×#6Ñ#6Ø#)Ø-1×-CÑ-Cñ,˜Õ(ð ×%Ñ%×2Ñ2×4Ñ4Ü,Ó.Ð.÷Y  ð\ ×Ñ×.Ñ.¨wÓ7Ð7÷K GÖFú÷ö ú÷0 IÖHûô8 !ó Ø+/�DÔ(Ø�Iûðú÷Q  Õúsˆ   ÁMÁ'AMÂ5#LÃA!MÄ9L ÅB1MÇ<L2ÈBMÊMÊ$MË*MÌ
L	ÌMÌ 
L/	Ì*MÌ2
M	Ì<MÍ
MÍ	MÍMÍMÍ
M-c                ó   • XR                   :H  $ ©N)rŽ   rw   s     rR   Úcan_handle_requestÚ#Socks5Connection.can_handle_request-  s   € Ø×,Ñ,Ñ,Ð,rT   c                óT   • U R                   b  U R                   R                  5         g g rµ   )r�   Úclose©ri   s    rR   r¹   ÚSocks5Connection.close0  s%   € Ø×ÑÑ'Ø×Ñ×"Ñ"Õ$ð (rT   c                ó  • U R                   c\  U R                  =(       aI    U R                  R                  S:H  =(       d    U R                  (       + =(       a    U R
                  (       + $ U R                   R                  5       $ )Nrš   )r�   ru   rŽ   r¥   rt   r‘   rª   rº   s    rR   rª   ÚSocks5Connection.is_available4  sh   € Ø×ÑÑ#ð
 —‘÷ -Ø×(Ñ(×/Ñ/°8Ñ;×NÀ4Ç;Á;¼÷-à×,Ñ,Ô,ðð
 ×Ñ×,Ñ,Ó.Ð.rT   c                óh   • U R                   c  U R                  $ U R                   R                  5       $ rµ   )r�   r‘   Úhas_expiredrº   s    rR   r¿   ÚSocks5Connection.has_expired@  s/   € Ø×ÑÑ#Ø×'Ñ'Ð'Ø×Ñ×+Ñ+Ó-Ð-rT   c                óh   • U R                   c  U R                  $ U R                   R                  5       $ rµ   )r�   r‘   Úis_idlerº   s    rR   rÂ   ÚSocks5Connection.is_idleE  s/   € Ø×ÑÑ#Ø×'Ñ'Ð'Ø×Ñ×'Ñ'Ó)Ð)rT   c                óh   • U R                   c  U R                  $ U R                   R                  5       $ rµ   )r�   r‘   Ú	is_closedrº   s    rR   rÅ   ÚSocks5Connection.is_closedJ  s/   € Ø×ÑÑ#Ø×'Ñ'Ð'Ø×Ñ×)Ñ)Ó+Ð+rT   c                óz   • U R                   c  U R                  (       a  S$ S$ U R                   R                  5       $ )NzCONNECTION FAILEDÚ
CONNECTING)r�   r‘   Úinforº   s    rR   rÉ   ÚSocks5Connection.infoO  s7   € Ø×ÑÑ#Ø*.×*>×*>Ð&ÐPÀLÐPØ×Ñ×$Ñ$Ó&Ð&rT   c                óX   • SU R                   R                   SU R                  5        S3$ )NÚ<z [z]>)rl   rƒ   rÉ   rº   s    rR   Ú__repr__ÚSocks5Connection.__repr__T  s(   € Ø�4—>‘>×*Ñ*Ð+¨2¨d¯i©i«k¨]¸"Ð=Ð=rT   )r‘   r�   r�   rt   ru   rs   rv   rh   r�   rŽ   rf   )NNNTFN)ro   r   rp   r   rc   útuple[bytes, bytes] | NonerY   r{   r\   r}   r]   r~   r^   r~   r_   r€   r�   r‚   )r¬   r   r�   r   )rr   r   r�   r~   )r�   r‚   )r�   r~   )r�   Ústr)rƒ   r„   r…   r†   re   r«   r¶   r¹   rª   r¿   rÂ   rÅ   rÉ   rÍ   rˆ   r    rT   rR   rq   rq   ½   s¢   † ð
 26Ø-1Ø)-ØØØ15ð%àð%ð ð%ð /ð	%ð
 +ð%ð 'ð%ð ð%ð ð%ð /ð%ð 
õ%ô4S8ôj-ô%ô
/ô.ô
*ô
,ô
'÷
>rT   rq   )
rF   r   rG   ÚbytesrH   r   r#   rÏ   r�   r‚   )'Ú
__future__r   ÚloggingÚsslr)   Ú_backends.syncr   Ú_backends.baser   r   Ú_exceptionsr   r	   Ú_modelsr
   r   r   r   r   r   Ú_sslr   Ú_synchronizationr   Ú_tracer   Úconnection_poolr   Úhttp11r   Ú
interfacesr   Ú	getLoggerr£   r8   rE   rS   rV   rq   r    rT   rR   Ú<module>rà      sÛ   ðÝ "ã Û 
ã å (ß :ß <ß P× PÝ &Ý #Ý Ý +Ý $Ý +à	×	Ò	Ð+Ó	,€ð *ØØ Ø$ñ	€ð Ø+Ø0Ø"ØØ!ØØ$Ø)ñ
€ð$ (,ñ<KØð<Kð ð<Kð ð	<Kð
 %ð<Kð 
õ<Kô~Q
�ô Q
ôhX>Ð*õ X>rT   