
    Eg%)                     X    d Z  G d d          Z G d d          Z G d d          ZdS )zThe Proxy implementation.c                   (    e Zd ZdZed             ZdS )ProxyTypeFactoryzFactory for proxy types.c                     | |dS )Nff_valuestring r   s     T/var/www/sysmax/venv/lib/python3.11/site-packages/selenium/webdriver/common/proxy.pymakezProxyTypeFactory.make   s    $777    N)__name__
__module____qualname____doc__staticmethodr
   r   r   r	   r   r      s3        ""8 8 \8 8 8r   r   c                   \   e Zd ZdZe                    dd          Ze                    dd          Ze                    dd          Ze                    dd	          Z	e                    d
d          Z
e                    dd          Ze                    dd          Zed             ZdS )	ProxyTypezSet of possible types of proxy.

    Each proxy type has 2 properties:    'ff_value' is value of Firefox
    profile preference,    'string' is id of proxy type.
        DIRECT   MANUAL   PAC   	RESERVED1   
AUTODETECT   SYSTEM   UNSPECIFIEDc                 @   t          |t                    rd|v r|d         }t          |                                          }t	          |           D ];}t          | |          }t          |t                    rd|v r|d         |k    r|c S <t          d|           )Nr   zNo proxy type is found for )
isinstancedictstrupperdirgetattr	Exception)clsvalueattr
attr_values       r	   loadzProxyType.load,   s    eT"" 	$x5'8'8(OEE

  ""HH 	" 	"D d++J*d++ "J0F0F:V^K_chKhKh!!!!=e==>>>r   N)r   r   r   r   r   r
   r   r   r   
RESERVED_1r   r   r    classmethodr-   r   r   r	   r   r      s          ""1h//F""1h//F


5
)
)C!&&q+66J!&&q,77J""1h//F"''=99K? ? [? ? ?r   r   c                      e Zd ZdZej        ZdZdZdZ	dZ
dZdZdZdZdZdZddZed             Zej        d d            Zed	             Zej        d d
            Zed             Zej        d d            Zed             Zej        d d            Zed             Zej        d d            Zed             Zej        d d            Zed             Zej        d d            Zed             Zej        d d            Zed             Zej        d d            Zed             Zej        d d            Zed             Zej        d d            Zd Zd Z dS )!ProxyzMProxy contains information about proxy type and necessary proxy
    settings.F Nc                 n   |r-d|v r-|d         r%t                               |d                   | _        d|v r|d         r|d         | _        d|v r|d         r|d         | _        d|v r|d         r|d         | _        d|v r|d         r|d         | _        d|v r|d         r|d         | _        d|v r|d         r|d         | _        d|v r|d         r|d         | _	        d	|v r|d	         r|d	         | _
        d
|v r|d
         r|d
         | _        d|v r|d         r|d         | _        dS dS dS dS )zuCreates a new Proxy.

        :Args:
         - raw: raw proxy data. If None, default class values are used.
        	proxyTypeftpProxy	httpProxynoProxyproxyAutoconfigUrlsslProxy
autodetect
socksProxysocksUsernamesocksPasswordsocksVersionN)r   r-   
proxy_type	ftp_proxy
http_proxyno_proxyproxy_autoconfig_urlr9   auto_detectsocks_proxysocks_usernamesocks_passwordsocks_version)selfraws     r	   __init__zProxy.__init__H   s     	9c!!c+&6!"+..[1A"B"BS  S_ !$Zc!!c+&6!"%k"2CC	N #I#s**s3G/H*,/0D,E)S  S_  #Js""s<'8"#&|#4 s""s<'8"#&|#4 #%%#o*>%&)/&:##%%#o*>%&)/&:#$$^)<$%(%8"""-	9 	9* %$$$r   c                     | j         S )z"Returns proxy type as `ProxyType`.)r4   rI   s    r	   r?   zProxy.proxy_typef        ~r   returnc                 >    |                      |           || _        dS )zKSets proxy type.

        :Args:
         - value: The proxy type.
        N) _verify_proxy_type_compatibilityr4   rI   r*   s     r	   r?   zProxy.proxy_typek   s#     	--e444r   c                     | j         S )zReturns autodetect setting.)r:   rM   s    r	   rD   zProxy.auto_detectu        r   c                     t          |t                    rD| j        |ur9|                     t          j                   t          j        | _        || _        dS dS t          d          )zYSets autodetect setting.

        :Args:
         - value: The autodetect value.
        z,Autodetect proxy value needs to be a booleanN)r"   boolr:   rQ   r   r   r4   
ValueErrorrR   s     r	   rD   zProxy.auto_detectz   si     eT"" 	Me++55i6JKKK!*!5"' ,+
 KLLLr   c                     | j         S )zReturns ftp proxy setting.)r5   rM   s    r	   r@   zProxy.ftp_proxy        }r   c                 t    |                      t          j                   t          j        | _        || _        dS )zWSets ftp proxy setting.

        :Args:
         - value: The ftp proxy value.
        N)rQ   r   r   r4   r5   rR   s     r	   r@   zProxy.ftp_proxy   0     	--i.>???")r   c                     | j         S )zReturns http proxy setting.)r6   rM   s    r	   rA   zProxy.http_proxy   rN   r   c                 t    |                      t          j                   t          j        | _        || _        dS )zYSets http proxy setting.

        :Args:
         - value: The http proxy value.
        N)rQ   r   r   r4   r6   rR   s     r	   rA   zProxy.http_proxy   s0     	--i.>???")r   c                     | j         S )zReturns noproxy setting.)r7   rM   s    r	   rB   zProxy.no_proxy   s     |r   c                 t    |                      t          j                   t          j        | _        || _        dS )zSSets noproxy setting.

        :Args:
         - value: The noproxy value.
        N)rQ   r   r   r4   r7   rR   s     r	   rB   zProxy.no_proxy   s0     	--i.>???")r   c                     | j         S )z%Returns proxy autoconfig url setting.)r8   rM   s    r	   rC   zProxy.proxy_autoconfig_url   s     &&r   c                 t    |                      t          j                   t          j        | _        || _        dS )zmSets proxy autoconfig url setting.

        :Args:
         - value: The proxy autoconfig url value.
        N)rQ   r   r   r4   r8   rR   s     r	   rC   zProxy.proxy_autoconfig_url   s1     	--im<<<""'r   c                     | j         S )zReturns https proxy setting.)r9   rM   s    r	   	ssl_proxyzProxy.ssl_proxy   rY   r   c                 t    |                      t          j                   t          j        | _        || _        dS )z[Sets https proxy setting.

        :Args:
         - value: The https proxy value.
        N)rQ   r   r   r4   r9   rR   s     r	   rc   zProxy.ssl_proxy   r[   r   c                     | j         S )zReturns socks proxy setting.)r;   rM   s    r	   rE   zProxy.socks_proxy   rT   r   c                 t    |                      t          j                   t          j        | _        || _        dS )z[Sets socks proxy setting.

        :Args:
         - value: The socks proxy value.
        N)rQ   r   r   r4   r;   rR   s     r	   rE   zProxy.socks_proxy   s0     	--i.>???")r   c                     | j         S )z%Returns socks proxy username setting.)r<   rM   s    r	   rF   zProxy.socks_username        !!r   c                 t    |                      t          j                   t          j        | _        || _        dS )zmSets socks proxy username setting.

        :Args:
         - value: The socks proxy username value.
        N)rQ   r   r   r4   r<   rR   s     r	   rF   zProxy.socks_username   3     	--i.>???")"r   c                     | j         S )z%Returns socks proxy password setting.)r=   rM   s    r	   rG   zProxy.socks_password   rh   r   c                 t    |                      t          j                   t          j        | _        || _        dS )zmSets socks proxy password setting.

        :Args:
         - value: The socks proxy password value.
        N)rQ   r   r   r4   r=   rR   s     r	   rG   zProxy.socks_password   rj   r   c                     | j         S )z$Returns socks proxy version setting.)r>   rM   s    r	   rH   zProxy.socks_version	  s       r   c                 t    |                      t          j                   t          j        | _        || _        dS )zkSets socks proxy version setting.

        :Args:
         - value: The socks proxy version value.
        N)rQ   r   r   r4   r>   rR   s     r	   rH   zProxy.socks_version  s3     	--i.>???")!r   c                 f    | j         t          j        |fvrt          d| d| j          d          d S )NzSpecified proxy type (z') not compatible with current setting ())r4   r   r    r(   )rI   compatible_proxys     r	   rQ   z&Proxy._verify_proxy_type_compatibility  sN    >)"79I!JJJs)9ssbfbpsss   KJr   c                    i }| j         d         |d<   | j        r
| j        |d<   | j        r
| j        |d<   | j        r
| j        |d<   | j        r
| j        |d<   | j        r
| j        |d<   | j        r
| j        |d<   | j        r
| j        |d	<   | j        r
| j        |d
<   | j	        r
| j	        |d<   | j
        r
| j
        |d<   ||d<   dS )zAdds proxy information as capability in specified capabilities.

        :Args:
         - capabilities: The capabilities to which proxy will be added.
        r   r4   r:   r5   r6   r8   r9   r7   r;   r<   r=   r>   proxyN)r4   r:   r5   r6   r8   r9   r7   r;   r<   r=   r>   )rI   capabilities
proxy_capss      r	   add_to_capabilitieszProxy.add_to_capabilities  s    
"&.":
;? 	7'+J|$= 	3%)]Jz"> 	5&*nJ{#" 	G/3/FJ+,= 	3%)]Jz"< 	1$(LJy!? 	7'+J|$ 	=*.*<J' 	=*.*<J' 	;)-):J~& *Wr   )N)rO   N)!r   r   r   r   r   r    r4   r:   r5   r6   r7   r8   r9   r;   r<   r=   r>   rK   propertyr?   setterrD   r@   rA   rB   rC   rc   rE   rF   rG   rH   rQ   rv   r   r   r	   r1   r1   8   sD         %IJHIGHJMML9 9 9 9<   X       X M M M M   X       X       X _   _ ' ' X'  ( ( ( ! (   X       X         " " X" # # # # " " X" # # # # ! ! X! " " " "  + + + + +r   r1   N)r   r   r   r1   r   r   r	   <module>ry      s   $   8 8 8 8 8 8 8 8? ? ? ? ? ? ? ?6C+ C+ C+ C+ C+ C+ C+ C+ C+ C+r   