
    vKg
                        S SK r S SKrS SKrS SKJr  S SKJr   " S S\5      r\R                  " SSS9r
\R                  " S	S
SS9r\R                  " S	SSS9r\R                  " S S	S
SSSSSSS9	r\R                  " S S	S
SS9r\R                  " S	S9r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      rg)    N)bidi)checkc                   (   ^  \ rS rSrU 4S jrSrU =r$ )
SocksError	   c                 0   > [         TU ]  U5        Xl        g N)super__init__code)selfr   message	__class__s      k/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/seleniumwire/thirdparty/mitmproxy/net/socks.pyr   SocksError.__init__
   s    !	    )r   )__name__
__module____qualname____firstlineno__r   __static_attributes____classcell__)r   s   @r   r   r   	   s     r   r         )SOCKS4SOCKS5         )CONNECTBINDUDP_ASSOCIATE)IPV4_ADDRESS
DOMAINNAMEIPV6_ADDRESS         )		SUCCEEDEDGENERAL_SOCKS_SERVER_FAILURE!CONNECTION_NOT_ALLOWED_BY_RULESETNETWORK_UNREACHABLEHOST_UNREACHABLECONNECTION_REFUSEDTTL_EXPIREDCOMMAND_NOT_SUPPORTEDADDRESS_TYPE_NOT_SUPPORTED   )NO_AUTHENTICATION_REQUIREDGSSAPIUSERNAME_PASSWORDNO_ACCEPTABLE_METHODS)DEFAULTc                   >    \ rS rSrSrS rS r\S	S j5       rS r	Sr
g)
ClientGreeting8   )vermethodsc                 |    Xl         [        R                  " S5      U l        U R                  R                  U5        g )NB)r;   arrayr<   extend)r   r;   r<   s      r   r   ClientGreeting.__init__;   s)    {{3'G$r   c                    U R                   [        R                  :w  aj  U R                   [        S5      :X  a%  [	        U R
                  5      [        S5      :X  a  SnOSn[        [        R                  USU R                   -  -   5      eg )NGEz9Probably not a SOCKS request but a regular HTTP request.  .Invalid SOCKS version. Expected 0x05, got 0x%x)	r;   VERSIONr   ordlenr<   r   REPr*   r   guesss     r   assert_socks5ClientGreeting.assert_socks5@   sm    88w~~%xx3s8#DLL(9SX(ES00H488SS  &r   c                     [         R                  " SUR                  S5      5      u  p4U " U/ 5      nU(       a  UR                  5         UR                  R                  UR                  U5      5        U$ )ze
:param fail_early: If true, a SocksError will be raised if the first byte does not indicate socks5.
!BBr   )structunpack	safe_readrM   r<   	frombytes)clsf
fail_earlyr;   nmethodsclient_greetings         r   	from_fileClientGreeting.from_fileL   s[    
 eQ[[^<c2,))+))!++h*?@r   c           	          UR                  [        R                  " SU R                  [	        U R
                  5      5      5        UR                  U R
                  R                  5       5        g NrP   )writerQ   packr;   rI   r<   tobytesr   rV   s     r   to_fileClientGreeting.to_fileX   sA    	E488S->?@	$$&'r   )r<   r;   N)Fr   r   r   r   	__slots__r   rM   classmethodrZ   rb   r    r   r   r9   r9   8   s*    "I%

 	 	(r   r9   c                   :    \ rS rSrSrS rS r\S 5       rS r	Sr
g)	ServerGreeting]   r;   methodc                     Xl         X l        g r	   rk   )r   r;   rl   s      r   r   ServerGreeting.__init__`       r   c                    U R                   [        R                  :w  aa  U R                   [        S5      :X  a  U R                  [        S5      :X  a  SnOSn[        [        R                  USU R                   -  -   5      eg )NHTz:Probably not a SOCKS request but a regular HTTP response. rE   rF   )r;   rG   r   rH   rl   r   rJ   r*   rK   s     r   rM   ServerGreeting.assert_socks5d   sh    88w~~%xx3s8#s3x(?T00H488SS  &r   c                 b    [         R                  " SUR                  S5      5      u  p#U " X#5      $ NrP   r   rQ   rR   rS   )rU   rV   r;   rl   s       r   rZ   ServerGreeting.from_filep   '    mmE1;;q>:3r   c                 z    UR                  [        R                  " SU R                  U R                  5      5        g r]   )r^   rQ   r_   r;   rl   ra   s     r   rb   ServerGreeting.to_fileu   #    	E488T[[9:r   )rl   r;   Nrd   rg   r   r   ri   ri   ]   s*    !I
    ;r   ri   c                   :    \ rS rSrSrS rS r\S 5       rS r	Sr
g)	UsernamePasswordAuthy   r;   usernamepasswordc                 (    Xl         X l        X0l        g r	   r   )r   r;   r   r   s       r   r   UsernamePasswordAuth.__init__|   s      r   c                 r    U R                   [        R                  :w  a  [        SSU R                   -  5      eg Nr   z-Invalid auth version. Expected 0x01, got 0x%xr;   USERNAME_PASSWORD_VERSIONr7   r   r   s    r   assert_authver1$UsernamePasswordAuth.assert_authver1   6    880888?$((J  9r   c                 0   [         R                  " SUR                  S5      5      u  p#UR                  U5      n[         R                  " SUR                  S5      5      u  nUR                  U5      nU " X$R                  5       UR                  5       5      $ )NrP   r   !Br   )rQ   rR   rS   decode)rU   rV   r;   ulenr   plenr   s          r   rZ   UsernamePasswordAuth.from_file   sm    MM%Q8	;;t$dAKKN3;;t$3)8??+<==r   c           	         UR                  [        R                  " SU R                  [	        U R
                  5      5      5        UR                  U R
                  R                  5       5        UR                  [        R                  " S[	        U R                  5      5      5        UR                  U R                  R                  5       5        g )NrP   r   )r^   rQ   r_   r;   rI   r   encoder   ra   s     r   rb   UsernamePasswordAuth.to_file   sz    	E488S-?@A	$$&'	D#dmm"456	$$&'r   )r   r   r;   Nr   r   r   r   re   r   r   rf   rZ   rb   r   rg   r   r   r}   r}   y   s*    /I!
 > >(r   r}   c                   :    \ rS rSrSrS rS r\S 5       rS r	Sr
g)	UsernamePasswordAuthResponse   r;   statusc                     Xl         X l        g r	   r   )r   r;   r   s      r   r   %UsernamePasswordAuthResponse.__init__   ro   r   c                 r    U R                   [        R                  :w  a  [        SSU R                   -  5      eg r   r   r   s    r   r   ,UsernamePasswordAuthResponse.assert_authver1   r   r   c                 b    [         R                  " SUR                  S5      5      u  p#U " X#5      $ ru   rv   )rU   rV   r;   r   s       r   rZ   &UsernamePasswordAuthResponse.from_file   rx   r   c                 z    UR                  [        R                  " SU R                  U R                  5      5        g r]   )r^   rQ   r_   r;   r   ra   s     r   rb   $UsernamePasswordAuthResponse.to_file   r{   r   )r   r;   Nr   rg   r   r   r   r      s*    !I    ;r   r   c                   :    \ rS rSrSrS rS r\S 5       rS r	Sr
g)	Message   r;   msgatypaddrc                 4    Xl         X l        X0l        X@l        g r	   r   )r   r;   r   r   r   s        r   r   Message.__init__   s    		r   c                     U R                   [        R                  :w  a'  [        [        R
                  SU R                   -  5      eg )NrF   )r;   rG   r   r   rJ   r*   r   s    r   rM   Message.assert_socks5   s9    88w~~%00@488K  &r   c                 z   [         R                  " SUR                  S5      5      u  p#pEUS:w  a  [        [        R
                  SU-  5      eU[        R                  :X  a0  [        R                  " UR                  S5      5      R                  nOU[        R                  :X  a0  [        R                  " UR                  S5      5      R                  nOU[        R                  :X  a  [         R                  " SUR                  S5      5      u  nUR                  U5      n[        R                  " U5      (       d  [        [        R
                  SU-  5      eUR!                  S	5      nO[        [        R"                  S
U-  5      e[         R                  " SUR                  S5      5      u  nXh4n	U " X#XY5      $ )N!BBBBr   r   z(Socks Request: Invalid reserved byte: %s   r   r   zInvalid hostname: %sidnazSocks Request: Unknown ATYP: %s!Hr   )rQ   rR   rS   r   rJ   r*   ATYPr#   	ipaddressIPv4Address
compressedr%   IPv6Addressr$   r   is_valid_hostr   r1   )
rU   rV   r;   r   rsvr   hostlengthportr   s
             r   rZ   Message.from_file   sZ   $mmGQ[[^D#$;00:S@  4$$$((Q8CCDT&&&((R9DDDT__$mmD!++a.9GF;;v&D&&t,, !A!ACY\`C`aa;;v&DS;;>EG G dAKKN3|3T((r   c           	         UR                  [        R                  " SU R                  U R                  SU R
                  5      5        U R
                  [        R                  :X  a>  UR                  [        R                  " U R                  S   5      R                  5        GO
U R
                  [        R                  :X  a=  UR                  [        R                  " U R                  S   5      R                  5        OU R
                  [        R                  :X  aj  UR                  [        R                  " S[        U R                  S   5      5      5        UR                  U R                  S   R!                  S5      5        O'[#        [$        R&                  SU R
                  -  5      eUR                  [        R                  " SU R                  S   5      5        g )Nr   r   r   r   zUnknown ATYP: %sr   r   )r^   rQ   r_   r;   r   r   r   r#   r   r   r   packedr%   r   r$   rI   r   r   rJ   r1   ra   s     r   rb   Message.to_file   s/   	GTXXtxxtyyIJ99)))GGI))$))A,7>>?YY$+++GGI))$))A,7>>?YY$//)GGFKKc$))A,&789GGDIIaL''/0.."TYY.  	
D$))A,/0r   )r   r   r   r;   Nrd   rg   r   r   r   r      s*    .I ) )41r   r   )r?   r   rQ   +seleniumwire.thirdparty.mitmproxy.coretypesr   %seleniumwire.thirdparty.mitmproxy.netr   	Exceptionr   BiDirG   CMDr   rJ   METHODr   r9   ri   r}   r   r   rg   r   r   <module>r      s       < 7  ))
 ii	 yy ii!%&*#
 
#	
 !II 
"( "(J; ;8( (<; ;.91 91r   