
    6=g6              
      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   )AutoBackend)AsyncNetworkBackendAsyncNetworkStream)ConnectionNotAvailable
ProxyError)URLOriginRequestResponseenforce_bytesenforce_url)default_ssl_context)	AsyncLock)Trace   )AsyncConnectionPool)AsyncHTTP11Connection)AsyncConnectionInterfacez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               x  #    [         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      I S h  vN   U R                  SS9I S h  vN 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  pUR                  [         R                  R%                  X5      5        UR                  5       nU R                  U5      I S h  vN   U R                  SS9I S h  vN 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      I S h  vN   U R                  SS9I S h  vN 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  GN GN GN GN N N7f)
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                 =/usr/lib/python3/dist-packages/httpcore/_async/socks_proxy.py_init_socks5_connectionrS   *   s     >>**,D
 < 	''88^^,,>> 
 	IIgnn55{mDE&&(N
,,~
&&& ";;;66N  0Hh > >????+% $$[)<	 $$X__i@	#?	{!L
 	
 '..99KKK!		'..>>xRS**,ll>***  &{{T{::$$^4(GNN$N$NOOOO899 	II++88NN((004,	

 &&(N
,,~
&&& ";;;66N  0Hh : :;;;;gnn<<FFF __X%8%8(C
;J<qIJJ GS ' 7  	+ ; ' 7so   B=N:?N* N:N-D%N:<N0=N:N3CN:0N61N:N8B#N:-N:0N:3N:6N:8N: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$ )	AsyncSOCKSProxyi   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)selfr`   rb   rX   rY   rZ   r[   r\   r]   r_   r^   rP   rQ   username_bytespassword_bytes	__class__s                  rR   rd   AsyncSOCKSProxy.__init__n   s    V 	#+&?-+ 	 		
 (%ikB!!+H*8,GN*8,GN<D
  $D    c                    [        U R                  R                  UU R                  U R                  U R
                  U R                  U R                  U R                  S9$ )N)proxy_originremote_originrb   rX   r[   r\   r]   r^   )	AsyncSocks5Connectionrf   originrg   re   _keepalive_expiry_http1_http2_network_backendrh   rr   s     rR   create_connection!AsyncSOCKSProxy.create_connection   sQ    $// ''))!33++++ 11	
 		
rm   )rg   rf   re   )	NN
   NNTFr   N)r`   zURL | bytes | strrb   z&tuple[bytes | str, bytes | str] | NonerX   ssl.SSLContext | NonerY   
int | NonerZ   r|   r[   float | Noner\   boolr]   r~   r_   intr^   AsyncNetworkBackend | NonereturnNone)rr   r   r   r   )	__name__
__module____qualname____firstlineno____doc__rd   rx   __static_attributes____classcell__)rk   s   @rR   rU   rU   i   s     >B-1&(04)-6:@$$@$ ;@$ +	@$
 $@$ $.@$ '@$ @$ @$ @$ 4@$ 
@$ @$D

 

rm   rU   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_originrg   re   rs   rt   ru   r   rv   r   _connect_lock_connection_connect_failed)	rh   ro   rp   rb   rX   r[   r\   r]   r^   s	            rR   rd   AsyncSocks5Connection.__init__   s^     *+%'!1 -4KM/ 	 '[<@$rm   c                4  #    UR                   R                  S0 5      nUR                   R                  SS 5      nUR                  SS 5      nU R                   IS h  vN   U R                  Gc   U R                  R
                  R                  S5      U R                  R                  US.n[        S[        X5       IS h  vN nU R                  R                  " S0 UD6I S h  vN nXvl        S S S 5      IS h  vN   WU R                  R
                  R                  S5      U R                  R                  U R                  S.n[        S[        X5       IS h  vN n[        S0 UD6I S h  vN   Xvl        S S S 5      IS h  vN   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       IS h  vN nUR*                  " S0 UD6I S h  vN nXvl        S S S 5      IS h  vN   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      IS h  vN   U R                  RC                  U5      I S h  vN $  GN GN GN GN|! , IS h  vN  (       d  f       GN= f GN8 GN( GN! , IS h  vN  (       d  f       GN+= f GN GNj GNW! , IS h  vN  (       d  f       GNm= f! [:         a  nSU l        UeS nAff = f N! , IS h  vN  (       d  f       N= f N7f)Ntimeoutsni_hostnameconnectascii)rG   rH   r   connect_tcp)rF   rG   rH   r#   setup_socks5_connection   httpszhttp/1.1h2)rX   server_hostnamer   	start_tls
ssl_objectr   )AsyncHTTP2Connection)rr   rF   r[   T )"
extensionsr9   r   r   r   rG   decoderH   r   loggerrv   r   return_valuer   rg   rS   schemere   r   ru   set_alpn_protocolsr   get_extra_infoselected_alpn_protocolrt   r]   r   rs   r   	Exceptionr   is_availabler   handle_async_request)rh   requesttimeoutsr   r   kwargstracerF   rX   alpn_protocolsr   http2_negotiatedr   excs                 rR   r   *AsyncSocks5Connection.handle_async_request   s    %%)))R8))--ndC,,y$/%%%'H !% 2 2 7 7 > >w G $ 2 2 7 7#*F
  %]FGLLPU'+'<'<'H'H'R6'R!R-3*  ML #) $ 3 3 8 8 ? ? H $ 3 3 8 8 $ 0 0	F  %167   5????-3*	    **11X=  $008 01!%!2!2 $ 37++Z.J< ' $66~F ,7/; 0H#2277>>wG'.	" $)fg#N#NRW+1+;+;+Ef+E%EF17. $O#N
 "(!6!6|!DJ"$. H&==?4G % (DKK?+?#'#6#6#)-1-C-C,( ,A#'#6#6#)-1-C-C,( %%2244,..Y &%\ %%::7CCC] &  M!R  MLLL  @       0 $O%E $O#N#N#N8 ! +/D(IQ &%%%\ Ds  APM0P!O<1AOM3O M<'M6(
M<2O=M9>A!ON O#N 2N3
N =ON	B1O:N;;O>ON>
OO*O+BO.O</$O*O<=PO:	"P+P,P3O6M<9O<N	NN		ON O N8	&N)'N8	3	O>OOO	
OO	O
O7)	O22O77O<:P<PPPPc                    XR                   :H  $ N)r   rw   s     rR   can_handle_request(AsyncSocks5Connection.can_handle_request-  s    ,,,,rm   c                p   #    U R                   b#  U R                   R                  5       I S h  vN   g g  N7fr   )r   acloserh   s    rR   r   AsyncSocks5Connection.aclose0  s1     '""))+++ (+s   +646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   "AsyncSocks5Connection.is_available4  sh    #
  -((//8;N4;;-,,,
 ,,..rm   c                h    U R                   c  U R                  $ U R                   R                  5       $ r   )r   r   has_expiredr   s    rR   r   !AsyncSocks5Connection.has_expired@  s/    #'''++--rm   c                h    U R                   c  U R                  $ U R                   R                  5       $ r   )r   r   is_idler   s    rR   r   AsyncSocks5Connection.is_idleE  s/    #'''''))rm   c                h    U R                   c  U R                  $ U R                   R                  5       $ r   )r   r   	is_closedr   s    rR   r   AsyncSocks5Connection.is_closedJ  s/    #'''))++rm   c                z    U R                   c  U R                  (       a  S$ S$ U R                   R                  5       $ )NzCONNECTION FAILED
CONNECTING)r   r   infor   s    rR   r   AsyncSocks5Connection.infoO  s7    #*.*>*>&PLP$$&&rm   c                X    SU R                   R                   SU R                  5        S3$ )N<z [z]>)rk   r   r   r   s    rR   __repr__AsyncSocks5Connection.__repr__T  s(    4>>**+2diik]"==rm   )r   r   r   rt   ru   rs   rv   rg   r   r   re   )NNNTFN)ro   r   rp   r   rb   tuple[bytes, bytes] | NonerX   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   rd   r   r   r   r   r   r   r   r   r   r   r   rm   rR   rq   rq      s    
 26-1)-6:%% % /	%
 +% '% % % 4% 
%4SDj-,
/.
*
,
'
>rm   rq   )
rF   r   rG   bytesrH   r   r#   r   r   r   )'
__future__r   loggingsslr)   _backends.autor   _backends.baser   r   _exceptionsr   r	   _modelsr
   r   r   r   r   r   _sslr   _synchronizationr   _tracer   connection_poolr   http11r   
interfacesr   	getLoggerr   r8   rE   rS   rU   rq   r   rm   rR   <module>r      s    "  
  ( D < P P & (  0 ) 0			+	, * $	 +0"!$)
$ (,<K<K <K 	<K
 %<K 
<K~Q
) Q
hX>4 X>rm   