Ë
    `§1h
W  ã            	       óê	  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlZd dlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ  e j.                  e«      Zi ej4                  d“ej6                  d“ej8                  d“ej:                  d“ej<                  d“ej>                  d“ej@                  d“ejB                  d“ejD                  d“ejF                  d“ejH                  d“ejJ                  d“ejL                  d“ejN                  d“ejP                  d“ejR                  d“ejT                  d“i ejV                  d“ejX                  d“ejZ                  d“ej\                  d “ej^                  d!“ej`                  d"“ejb                  d#“ejd                  d$“ejf                  d%“ejh                  d&“ejj                  d'“ejl                  d(“ejn                  d)“ejp                  d*“ejr                  d+“ejt                  d,“ejv                  d-“¥i ejx                  d.“ejz                  d/“ej|                  d0“ej~                  d1“ej€                  d2“ej‚                  d3“ej„                  d4“ej†                  d5“ejˆ                  d6“ejŠ                  d7“ejŒ                  d8“ejŽ                  d9“ej�                  d:“ej’                  d;“ej”                  d<“ej–                  d=“ej˜                  d>“¥i ejš                  d?“ejœ                  d@“ejž                  dA“ej                   dB“ej¢                  dC“ej¤                  dD“ej¦                  dE“ej¨                  dF“ejª                  dG“ej¬                  dH“ej®                  dI“ej°                  dJ“ej²                  dK“ej´                  dL“ej¶                  dM“ej¸                  dN“ejº                  dO“¥i ej¼                  dP“ej¾                  dQ“ejÀ                  dR“ejÂ                  dS“ejÄ                  dT“ejÆ                  dU“ejÈ                  dV“ejÊ                  dW“ejÌ                  dX“ejÎ                  dY“ejÐ                  dZ“ejÒ                  d[“ejÔ                  d\“ejÖ                  d]“ejØ                  d^“ejÚ                  d_“ejÜ                  d`“¥ejÞ                  daejà                  dbejâ                  dcejä                  ddi¥Zs G de„ df«      Zty)gé    N)Ú	b64encode)ÚOptional)Úparse)Úurlparse)Ú__version__é   )Úutils)ÚClientConfig)ÚCommand)Ú	ErrorCode)ÚPOSTz/session)ÚDELETEz/session/$sessionId)ÚGETú/session/$sessionId/window)r   z"/session/$sessionId/window/handles)r   ú/session/$sessionId/url)r   z/session/$sessionId/forward)r   z/session/$sessionId/back)r   z/session/$sessionId/refresh)r   z /session/$sessionId/execute/sync)r   z!/session/$sessionId/execute/async)r   r   )r   z/session/$sessionId/title)r   z/session/$sessionId/source)r   z/session/$sessionId/screenshot)r   z*/session/$sessionId/element/$id/screenshot)r   z/session/$sessionId/element)r   z/session/$sessionId/elements)r   z"/session/$sessionId/element/active)r   z'/session/$sessionId/element/$id/element)r   z(/session/$sessionId/element/$id/elements)r   z%/session/$sessionId/element/$id/click)r   z%/session/$sessionId/element/$id/clear)r   z$/session/$sessionId/element/$id/text)r   z%/session/$sessionId/element/$id/value)r   z$/session/$sessionId/element/$id/name)r   z(/session/$sessionId/element/$id/selected)r   z'/session/$sessionId/element/$id/enabled)r   z$/session/$sessionId/element/$id/rect)r   z//session/$sessionId/element/$id/attribute/$name)r   z./session/$sessionId/element/$id/property/$name)r   z,/session/$sessionId/element/$id/computedrole)r   z-/session/$sessionId/element/$id/computedlabel)r   z&/session/$sessionId/element/$id/shadow)r   z,/session/$sessionId/shadow/$shadowId/element)r   z-/session/$sessionId/shadow/$shadowId/elements)r   ú/session/$sessionId/cookie)r   r   )r   ú /session/$sessionId/cookie/$name)r   r   )r   r   )r   z/session/$sessionId/frame)r   z /session/$sessionId/frame/parent)r   r   )r   z/session/$sessionId/window/new)r   r   )r   z1/session/$sessionId/element/$id/css/$propertyName)r   z!/session/$sessionId/execute_async)r   ú/session/$sessionId/timeouts)r   r   )r   z!/session/$sessionId/alert/dismiss)r   z /session/$sessionId/alert/accept)r   ú/session/$sessionId/alert/text)r   r   )r   ú/session/$sessionId/actions)r   r   )r   ú/session/$sessionId/window/rect)r   r   )r   z#/session/$sessionId/window/maximize)r   ú/session/$sessionId/orientation)r   r   )r   ú&/session/$sessionId/network_connection)r   r   )r   z/session/$sessionId/se/log)r   z /session/$sessionId/se/log/types)r   ú/session/$sessionId/context)r   z/session/$sessionId/contexts)r   r   )r   z%/session/$sessionId/window/fullscreen)r   z#/session/$sessionId/window/minimize)r   z/session/$sessionId/print)r   z*/session/$sessionId/webauthn/authenticator)r   z;/session/$sessionId/webauthn/authenticator/$authenticatorId)r   zF/session/$sessionId/webauthn/authenticator/$authenticatorId/credential)r   úG/session/$sessionId/webauthn/authenticator/$authenticatorId/credentials)r   zU/session/$sessionId/webauthn/authenticator/$authenticatorId/credentials/$credentialId)r   r   )r   z>/session/$sessionId/webauthn/authenticator/$authenticatorId/uv)r   z/session/$sessionId/se/file)r   ú/session/$sessionId/se/files)r   r   )r   r   )r   z"/session/$sessionId/fedcm/gettitle)r   z'/session/$sessionId/fedcm/getdialogtype)r   z%/session/$sessionId/fedcm/accountlist)r   z+/session/$sessionId/fedcm/clickdialogbutton)r   z&/session/$sessionId/fedcm/canceldialog)r   z'/session/$sessionId/fedcm/selectaccount)r   z)/session/$sessionId/fedcm/setdelayenabled)r   z'/session/$sessionId/fedcm/resetcooldownc                   ó*  — e Zd ZU dZdZddlZddlZddlZej                  «       Z	dej                  v rej                  d«      nej                  «       ZdZee   ed<    ej&                  «       j)                  «       Zedk(  rdZdZde› d	e› d
�Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed#d„«       Z d„ Z!d„ Z"d„ Z#	 	 	 	 	 	 d$dee$   dee%   dee%   dee%   dee&   dee   fd„Z'i Z(d„ Z)de$fd„Z*d„ Z+d%d „Z,d!„ Z-d&d"„Z.y)'ÚRemoteConnectionz¹A connection with the Remote WebDriver server.

    Communicates with the server using the WebDriver wire protocol:
    https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol
    Nr   ÚREQUESTS_CA_BUNDLEÚ_client_configÚdarwinÚmacz	selenium/z	 (python ú)c                 ó   — | j                   S ©N)r    ©Úselfs    úi/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/selenium/webdriver/remote/remote_connection.pyÚclient_configzRemoteConnection.client_config§   s   € à×"Ñ"Ð"ó    c                 óf   — t        j                  dt        d¬«       | j                  j                  S )zp:Returns:

        Timeout value in seconds for all http requests made to the
        Remote Connection
        zWget_timeout() in RemoteConnection is deprecated, get timeout from client_config insteadé   ©Ú
stacklevel©ÚwarningsÚwarnÚDeprecationWarningr    Útimeout©Úclss    r(   Úget_timeoutzRemoteConnection.get_timeout«   s-   € ô 	�‰ØeÜØõ	
ð
 ×!Ñ!×)Ñ)Ð)r*   c                 ó^   — t        j                  dt        d¬«       || j                  _        y)zyOverride the default timeout.

        :Args:
            - timeout - timeout value for http requests in seconds
        zUset_timeout() in RemoteConnection is deprecated, set timeout in client_config insteadr,   r-   Nr/   )r5   r3   s     r(   Úset_timeoutzRemoteConnection.set_timeout¹   s)   € ô 	�‰ØcÜØõ	
ð
 &-ˆ×ÑÕ"r*   c                 óp   — t        j                  dt        d¬«       | j                  j	                  «        y)zAReset the http request timeout to socket._GLOBAL_DEFAULT_TIMEOUT.z_reset_timeout() in RemoteConnection is deprecated, use reset_timeout() in client_config insteadr,   r-   N)r0   r1   r2   r    Úreset_timeoutr4   s    r(   r:   zRemoteConnection.reset_timeoutÇ   s-   € ô 	�‰ØmÜØõ	
ð
 	×Ñ×(Ñ(Õ*r*   c                 óf   — t        j                  dt        d¬«       | j                  j                  S )zÂ:Returns:

        Paths of the .pem encoded certificate to verify connection to
        command executor. Defaults to certifi.where() or
        REQUESTS_CA_BUNDLE env variable if set.
        zhget_certificate_bundle_path() in RemoteConnection is deprecated, get ca_certs from client_config insteadr,   r-   ©r0   r1   r2   r    Úca_certsr4   s    r(   Úget_certificate_bundle_pathz,RemoteConnection.get_certificate_bundle_pathÑ   s-   € ô 	�‰ØvÜØõ	
ð
 ×!Ñ!×*Ñ*Ð*r*   c                 ó^   — t        j                  dt        d¬«       || j                  _        y)zóSet the path to the certificate bundle to verify connection to
        command executor. Can also be set to None to disable certificate
        validation.

        :Args:
            - path - path of a .pem encoded certificate chain.
        zfset_certificate_bundle_path() in RemoteConnection is deprecated, set ca_certs in client_config insteadr,   r-   Nr<   )r5   Úpaths     r(   Úset_certificate_bundle_pathz,RemoteConnection.set_certificate_bundle_pathà   s)   € ô 	�‰ØtÜØõ	
ð
 '+ˆ×ÑÕ#r*   c                 ó�  — dd| j                   dœ}|j                  rmt        j                  dd¬«       t	        |j                  › d|j
                  › �j                  «       «      }|j                  dd	|j                  «       › �i«       |r|j                  d
di«       | j                  r|j                  | j                  «       |S )z²Get headers for remote request.

        :Args:
         - parsed_url - The parsed url
         - keep_alive (Boolean) - Is this a keep-alive connection (default: False)
        zapplication/jsonzapplication/json;charset=UTF-8)ÚAcceptúContent-Typez
User-AgentzREmbedding username and password in URL could be insecure, use ClientConfig insteadr,   r-   ú:ÚAuthorizationzBasic Ú
Connectionz
keep-alive)
Ú
user_agentÚusernamer0   r1   r   ÚpasswordÚencodeÚupdateÚdecodeÚextra_headers)r5   Ú
parsed_urlÚ
keep_aliveÚheadersÚbase64strings        r(   Úget_remote_connection_headersz.RemoteConnection.get_remote_connection_headersð   s¹   € ð )Ø<ØŸ.™.ñ
ˆð ×ÒÜ�M‰MØdÐqrõô %¨
×(;Ñ(;Ð'<¸A¸j×>QÑ>QÐ=RÐ%S×%ZÑ%ZÓ%\Ó]ˆLØ�N‰N˜O¨v°l×6IÑ6IÓ6KÐ5LÐ-MÐNÔOáØ�N‰N˜L¨,Ð7Ô8à×ÒØ�N‰N˜3×,Ñ,Ô-àˆr*   c                 ób   — t        | j                  «      }|j                  r|j                  ryy y )NT)r   Ú
_proxy_urlrI   rJ   )r'   rO   s     r(   Ú_identify_http_proxy_authz*RemoteConnection._identify_http_proxy_auth  s,   € Ü˜dŸo™oÓ.ˆ
Ø×Ò :×#6Ò#6Øð $7Ðr*   c                 óº   — t        | j                  «      }|j                  › d|j                  › d|j                  › �}|j
                  › d|j                  › �}||fS )Nz://rE   )r   rU   ÚschemeÚhostnameÚportrI   rJ   )r'   rO   Úproxy_without_authÚauths       r(   Ú_separate_http_proxy_authz*RemoteConnection._separate_http_proxy_auth  sc   € Ü˜dŸo™oÓ.ˆ
Ø *× 1Ñ 1Ð2°#°j×6IÑ6IÐ5JÈ!ÈJÏOÉOÐK\Ð]ÐØ×%Ñ%Ð& a¨
×(;Ñ(;Ð'<Ð=ˆØ! 4Ð'Ð'r*   c                 ó<  — d| j                   j                  i}|j                  | j                   j                  j	                  di «      «       | j                   j
                  r3d|d<   t        j                  t        j                  j                  «       n4| j                   j                  rd|d<   | j                   j                  |d<   | j                  r²| j                  j                  «       j                  d«      rdd	lm}  || j                  fi |¤ŽS | j!                  «       r@| j#                  «       \  | _        | _        t        j&                  | j$                  ¬
«      |d<   t        j(                  | j                  fi |¤ŽS t        j*                  di |¤ŽS )Nr3   Úinit_args_for_pool_managerÚ	CERT_NONEÚ	cert_reqsÚCERT_REQUIREDr=   Úsockr   )ÚSOCKSProxyManager)Úproxy_basic_authÚproxy_headers© )r    r3   rL   r_   ÚgetÚignore_certificatesÚurllib3Údisable_warningsÚ
exceptionsÚInsecureRequestWarningr=   rU   ÚlowerÚ
startswithÚurllib3.contrib.socksrd   rV   r]   Ú_basic_proxy_authÚmake_headersÚProxyManagerÚPoolManager)r'   Úpool_manager_init_argsrd   s      r(   Ú_get_connection_managerz(RemoteConnection._get_connection_manager  sW  € Ø"+¨T×-@Ñ-@×-HÑ-HÐ!IÐØ×%Ñ%Ø×Ñ×:Ñ:×>Ñ>Ð?[Ð]_Ó`ô	
ð ×Ñ×2Ò2Ø2=Ð" ;Ñ/Ü×$Ñ$¤W×%7Ñ%7×%NÑ%NÕOØ× Ñ ×)Ò)Ø2AÐ" ;Ñ/Ø15×1DÑ1D×1MÑ1MÐ" :Ñ.à�?Š?Ø�‰×$Ñ$Ó&×1Ñ1°&Ô9ÝCá(¨¯©ÑSÐ<RÑSÐSØ×-Ñ-Ô/Ø:>×:XÑ:XÓ:ZÑ7�” Ô!7Ü:A×:NÑ:NÐ`d×`vÑ`vÔ:wÐ& Ñ7Ü×'Ñ'¨¯©ÑRÐ;QÑRÐRä×"Ñ"Ñ<Ð%;Ñ<Ð<r*   Úremote_server_addrrP   Úignore_proxyri   r_   r)   c                 ó„  — |xs t        ||||¬«      | _        | j                  j                  t        _        | j                  j
                  t        _        | j                  t        _        | j                  j                  xs t        j                  t        _        | j                  j                  xs t        j                  t        _        |rt        j                  dt        d¬«       |st        j                  dt        d¬«       |rt        j                  dt        d¬«       |rt        j                  dt        d¬«       |r$t        j                  dt        d¬«       d | _        n| j                  j                  «       | _        | j                  j                  r| j                  «       | _        t"        | _        y )	N)rw   rP   ri   r_   z\setting remote_server_addr in RemoteConnection() is deprecated, set in client_config insteadr,   r-   zTsetting keep_alive in RemoteConnection() is deprecated, set in client_config insteadz]setting ignore_certificates in RemoteConnection() is deprecated, set in client_config insteadzdsetting init_args_for_pool_manager in RemoteConnection() is deprecated, set in client_config insteadzVsetting ignore_proxy in RemoteConnection() is deprecated, set in client_config instead)r
   r    r3   r   Ú_timeoutr=   Ú	_ca_certsrN   rH   r0   r1   r2   rU   Úget_proxy_urlrP   rv   Ú_connÚremote_commandsÚ	_commands)r'   rw   rP   rx   ri   r_   r)   s          r(   Ú__init__zRemoteConnection.__init__2  sf  € ð ,ò 
¬|Ø1Ø!Ø 3Ø'Aô	0
ˆÔð %)×$7Ñ$7×$?Ñ$?ÔÔ!Ø%)×%8Ñ%8×%AÑ%AÔÔ"Ø*.×*=Ñ*=ÔÔ'Ø)-×)<Ñ)<×)JÑ)JÒ)lÔN^×NlÑNlÔÔ&Ø&*×&9Ñ&9×&DÑ&DÒ&cÔHX×HcÑHcÔÔ#áÜ�M‰MØnÜ"Øõñ Ü�M‰MØfÜ"Øõñ Ü�M‰MØoÜ"Øõñ &Ü�M‰MØvÜ"Øõñ Ü�M‰MØhÜ"Øõð
 #ˆD�Oà"×1Ñ1×?Ñ?ÓAˆDŒOà×Ñ×)Ò)Ø×5Ñ5Ó7ˆDŒJÜ(ˆ�r*   c                 ó&   — ||f| j                   |<   y)zRegister a new command.N)r   )r'   ÚnameÚmethodÚurls       r(   Úadd_commandzRemoteConnection.add_commandu  s   € à &¨˜}ˆ�‰�tÒr*   r‚   c                 ó8   — | j                   j                  |«      S )z Retrieve a command if it exists.)r   rh   )r'   r‚   s     r(   Úget_commandzRemoteConnection.get_commandy  s   € à�~‰~×!Ñ! $Ó'Ð'r*   c                 óz  — | j                   j                  |«      xs | j                  j                  |«      }|€
J d|› �«       ‚|d   }t        j                  |«      j                  |«      }|j                  d«      D �ch c]  }|j                  d«      sŒ|dd ’Œ }}t        |t        «      r|r
|D ]  }||= Œ t        j                  |«      }| j                  j                  › |› �}	| j                  |«      }
t        j!                  d|d   |	t#        |
«      «       | j%                  |d   |	|¬«      S c c}w )	am  Send a command to the remote server.

        Any path substitutions required for the URL mapped to the command should be
        included in the command parameters.

        :Args:
         - command - A string specifying the command to execute.
         - params - A dictionary of named parameters to send with the command as
           its JSON payload.
        NzUnrecognised command r   ú/ú$z%s %s %sr   )Úbody)r   rh   Úextra_commandsÚstringÚTemplateÚ
substituteÚsplitro   Ú
isinstanceÚdictr	   Ú	dump_jsonr    rw   Ú_trim_large_entriesÚLOGGERÚdebugÚstrÚ_request)r'   ÚcommandÚparamsÚcommand_infoÚpath_stringr@   ÚwordÚsubstitute_paramsÚdatar„   Útrimmeds              r(   ÚexecutezRemoteConnection.execute}  s/  € ð —~‘~×)Ñ)¨'Ó2ÒV°d×6IÑ6I×6MÑ6MÈgÓ6VˆØÐ'ÐJÐ+@ÀÀ	Ð)JÓJÐ'Ø" 1‘oˆÜ�‰˜{Ó+×6Ñ6°vÓ>ˆØ2=×2CÑ2CÀCÓ2HÖa¨$ÈDÏOÉOÐ\_ÕL`˜T ! "šXÐaÐÐaÜ�fœdÔ#Ñ(9Ø)ò !�Ø˜4‘Lð!ä�‰˜vÓ&ˆØ×$Ñ$×7Ñ7Ð8¸¸Ð?ˆØ×*Ñ*¨6Ó2ˆÜ�‰�Z ¨a¡°#´s¸7³|ÔDØ�}‰}˜\¨!™_¨c¸ˆ}Ó=Ð=ùò bs   ÂD8ÂD8c                 óÊ  — t        j                  |«      }| j                  || j                  j                  «      }| j                  j                  «       }|r|j                  |«       |r|dvrd}| j                  j                  rA| j                  j                  ||||| j                  j                  ¬«      }|j                  }nQ| j                  «       }	|	5 }
|
j                  ||||| j                  j                  ¬«      }ddd«       j                  }|j                  j                  d«      }t        j                  d|j                  ||j                   «       	 d|cxk  rdk  rTn nQ| j#                  d|j                   j%                  d	d«      «      t        j                  d
«       |j'                  «        S d|cxk  rdk  rwn nt|dk(  r*|ddœt        j                  d
«       |j'                  «        S ||st)        |«      n|j+                  «       dœt        j                  d
«       |j'                  «        S g }|j                   j%                  dd«      r+|j                   j%                  dd«      j-                  d«      }t/        |D �cg c]  }|j1                  d«      ‘Œ c}«      sT	 t3        j4                  |j+                  «       «      }d|vrd|d<   |t        j                  d
«       |j'                  «        S d|dœ}|t        j                  d
«       |j'                  «        S # 1 sw Y   �Œ0xY wc c}w # t6        $ rj d|cxk  rdk  rn nt8        j:                  }nt8        j<                  }||j+                  «       dœcY t        j                  d
«       |j'                  «        S w xY w# t        j                  d
«       |j'                  «        w xY w)aq  Send an HTTP request to the remote server.

        :Args:
         - method - A string for the HTTP method to send the request with.
         - url - A string for the URL to send the request to.
         - body - A string for request body. Ignored unless method is POST or PUT.

        :Returns:
          A dictionary with the server's parsed JSON response.
        )r   ÚPUTN)r‹   rQ   r3   zUTF-8z1Remote response: status=%s | data=%s | headers=%si,  i0  r   ÚlocationzFinished Requesti�  iô  i‘  zAuthorization Required)ÚstatusÚvaluerD   ú;z	image/pngéÇ   r¦   r   )r   r   rS   r    rP   Úget_auth_headerrL   r}   Úrequestr3   r¥   rv   rŸ   rM   r•   r–   rQ   r˜   rh   Úcloser—   Ústripr�   Úanyro   r	   Ú	load_jsonÚ
ValueErrorr   ÚSUCCESSÚUNKNOWN_ERROR)r'   rƒ   r„   r‹   rO   rQ   Úauth_headerÚresponseÚ
statuscodeÚconnÚhttprŸ   Úcontent_typeÚxr¥   s                  r(   r˜   zRemoteConnection._request–  s9  € ô —^‘^ CÓ(ˆ
Ø×4Ñ4°ZÀ×ATÑAT×A_ÑA_Ó`ˆØ×)Ñ)×9Ñ9Ó;ˆáØ�N‰N˜;Ô'á�F /Ñ1ØˆDà×Ñ×)Ò)Ø—z‘z×)Ñ)¨&°#¸DÈ'Ð[_×[nÑ[n×[vÑ[vÐ)ÓwˆHØ!Ÿ™‰Jà×/Ñ/Ó1ˆDØð v˜ØŸ<™<¨°¸$ÈÐY]×YlÑYl×YtÑYt˜<Óu�÷và!Ÿ™ˆJØ�}‰}×#Ñ# GÓ,ˆÜ�‰ÐHÈ(Ï/É/Ð[_Ðai×aqÑaqÔrð	Ø�jÔ& 3Õ&Ø—}‘} U¨H×,<Ñ,<×,@Ñ,@ÀÈTÓ,RÓSô4 �L‰LÐ+Ô,Ø�N‰NÕð5 �ZÔ& 3Õ&Ø Ò$Ø&0Ð;SÑTô. �L‰LÐ+Ô,Ø�N‰NÕð/ #-Éd´s¸:´ÐX\×XbÑXbÓXdÑeô, �L‰LÐ+Ô,Ø�N‰NÕð- ˆLØ×Ñ×#Ñ# N°DÔ9Ø'×/Ñ/×3Ñ3°NÀDÓI×OÑOÐPSÓT�Ü¸<ÖH°a˜Ÿ™ [Õ1ÒHÔIðEÜ Ÿ?™?¨4¯:©:«<Ó8�Dð  $Ñ&Ø$(�D˜‘MØô �L‰LÐ+Ô,Ø�N‰NÕð	  ¨$Ñ/ˆDØä�L‰LÐ+Ô,Ø�N‰NÕ÷Evñ vüò Iøô "ò EØ˜ZÔ-¨#Õ-Ü!*×!2Ñ!2™ä!*×!8Ñ!8˜Ø&,°t·z±z³|ÑDÑDô �L‰LÐ+Ô,Ø�N‰NÕð!Eûô �L‰LÐ+Ô,Ø�N‰NÕúsh   Ã+L3Å!9N; Ç N; Ç=N; ÉAN; ÊM Ê,N; Ê4#M Ë
N; ÌN; Ì3L=Í N; ÍAN8ÎN; Î7N8Î8N; Î;'O"c                 óR   — t        | d«      r| j                  j                  «        yy)z<Clean up resources when finished with the remote_connection.r}   N)Úhasattrr}   Úclearr&   s    r(   r«   zRemoteConnection.closeÔ  s!   € ä�4˜Ô!Ø�J‰J×ÑÕð "r*   c                 óä   — i }|j                  «       D ]Z  \  }}t        |t        «      r| j                  ||«      ||<   Œ,t        |t        «      rt        |«      |kD  r|d| dz   ||<   ŒV|||<   Œ\ |S )a  Truncate string values in a dictionary if they exceed max_length.

        :param dict: Dictionary with potentially large values
        :param max_length: Maximum allowed length of string values
        :return: Dictionary with truncated string values
        Nz...)Úitemsr‘   r’   r”   r—   Úlen)r'   Ú
input_dictÚ
max_lengthÚoutput_dictionaryÚkeyr¦   s         r(   r”   z$RemoteConnection._trim_large_entriesÙ  s‡   € ð ÐØ$×*Ñ*Ó,ò 	/‰JˆC�Ü˜%¤Ô&Ø)-×)AÑ)AÀ%ÈÓ)TÐ! #Ò&Ü˜E¤3Ô'¬C°«J¸Ò,CØ).¨{°
Ð);¸eÑ)CÐ! #Ò&à).Ð! #Ò&ð	/ð !Ð r*   )F)NTFFNNr%   )éd   )/Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úbrowser_nameÚosÚsocketÚcertifiÚgetdefaulttimeoutrz   ÚenvironÚgetenvÚwherer{   r    r   r
   Ú__annotations__ÚplatformÚsystemrn   rN   r   rH   Úpropertyr)   Úclassmethodr6   r8   r:   r>   rA   rS   rV   r]   rv   r—   Úboolr’   r€   rŒ   r…   r‡   r¡   r˜   r«   r”   rg   r*   r(   r   r   �   sÌ  … ñð €LãÛãà×'Ñ'Ó)€HØ3GÈ2Ï:É:Ñ3U�—	‘	Ð.Ô/Ð[b×[hÑ[hÓ[j€IØ-1€N�H˜\Ñ*Ó1àˆX�_‰_Ó×$Ñ$Ó&€FØ�ÒØˆð €MØ˜[˜M¨°6°(¸!Ð<€Jàñ#ó ð#ð ñ*ó ð*ð ñ-ó ð-ð ñ+ó ð+ð ñ+ó ð+ð ñ+ó ð+ð òó ðò:ò
(ò=ð6 -1Ø%)Ø',Ø.3Ø59Ø04ñ?)à$ S™Mð?)ð ˜T‘Nð?)ð ˜t‘nð	?)ð
 & d™^ð?)ð %-¨T¡Nð?)ð   Ñ-ó?)ðB €Nò-ð( ó (ò>ó2<ò|ô
!r*   r   )uÚloggingrÑ   r�   r0   Úbase64r   Útypingr   Úurllibr   Úurllib.parser   rj   Úseleniumr   Ú r	   r)   r
   r™   r   Úerrorhandlerr   Ú	getLoggerrÄ   r•   ÚNEW_SESSIONÚQUITÚW3C_GET_CURRENT_WINDOW_HANDLEÚW3C_GET_WINDOW_HANDLESr   Ú
GO_FORWARDÚGO_BACKÚREFRESHÚW3C_EXECUTE_SCRIPTÚW3C_EXECUTE_SCRIPT_ASYNCÚGET_CURRENT_URLÚ	GET_TITLEÚGET_PAGE_SOURCEÚ
SCREENSHOTÚELEMENT_SCREENSHOTÚFIND_ELEMENTÚFIND_ELEMENTSÚW3C_GET_ACTIVE_ELEMENTÚFIND_CHILD_ELEMENTÚFIND_CHILD_ELEMENTSÚCLICK_ELEMENTÚCLEAR_ELEMENTÚGET_ELEMENT_TEXTÚSEND_KEYS_TO_ELEMENTÚGET_ELEMENT_TAG_NAMEÚIS_ELEMENT_SELECTEDÚIS_ELEMENT_ENABLEDÚGET_ELEMENT_RECTÚGET_ELEMENT_ATTRIBUTEÚGET_ELEMENT_PROPERTYÚGET_ELEMENT_ARIA_ROLEÚGET_ELEMENT_ARIA_LABELÚGET_SHADOW_ROOTÚFIND_ELEMENT_FROM_SHADOW_ROOTÚFIND_ELEMENTS_FROM_SHADOW_ROOTÚGET_ALL_COOKIESÚ
ADD_COOKIEÚ
GET_COOKIEÚDELETE_ALL_COOKIESÚDELETE_COOKIEÚSWITCH_TO_FRAMEÚSWITCH_TO_PARENT_FRAMEÚSWITCH_TO_WINDOWÚ
NEW_WINDOWÚCLOSEÚ!GET_ELEMENT_VALUE_OF_CSS_PROPERTYÚEXECUTE_ASYNC_SCRIPTÚSET_TIMEOUTSÚGET_TIMEOUTSÚW3C_DISMISS_ALERTÚW3C_ACCEPT_ALERTÚW3C_SET_ALERT_VALUEÚW3C_GET_ALERT_TEXTÚW3C_ACTIONSÚW3C_CLEAR_ACTIONSÚSET_WINDOW_RECTÚGET_WINDOW_RECTÚW3C_MAXIMIZE_WINDOWÚSET_SCREEN_ORIENTATIONÚGET_SCREEN_ORIENTATIONÚGET_NETWORK_CONNECTIONÚSET_NETWORK_CONNECTIONÚGET_LOGÚGET_AVAILABLE_LOG_TYPESÚCURRENT_CONTEXT_HANDLEÚCONTEXT_HANDLESÚSWITCH_TO_CONTEXTÚFULLSCREEN_WINDOWÚMINIMIZE_WINDOWÚ
PRINT_PAGEÚADD_VIRTUAL_AUTHENTICATORÚREMOVE_VIRTUAL_AUTHENTICATORÚADD_CREDENTIALÚGET_CREDENTIALSÚREMOVE_CREDENTIALÚREMOVE_ALL_CREDENTIALSÚSET_USER_VERIFIEDÚUPLOAD_FILEÚGET_DOWNLOADABLE_FILESÚDOWNLOAD_FILEÚDELETE_DOWNLOADABLE_FILESÚGET_FEDCM_TITLEÚGET_FEDCM_DIALOG_TYPEÚGET_FEDCM_ACCOUNT_LISTÚCLICK_FEDCM_DIALOG_BUTTONÚCANCEL_FEDCM_DIALOGÚSELECT_FEDCM_ACCOUNTÚSET_FEDCM_DELAYÚRESET_FEDCM_COOLDOWNr~   r   rg   r*   r(   ú<module>r7     s˜  ðó$ Û Û Û Ý Ý Ý Ý !ã å  å Ý 'Ý Ý #à	ˆ×	Ñ	˜8Ó	$€ðdØ×ÑÐ-ðdà‡L�LÐ3ðdð ×)Ñ)Ð+Pðdð ×"Ñ"Ð$Qð	dð
 ‡K�KÐ4ðdð ×ÑÐ?ðdð ‡O�OÐ9ðdð ‡O�OÐ<ðdð ×ÑÐ Lðdð ×$Ñ$Ð&Sðdð ×ÑÐ?ðdð ×ÑÐ;ðdð ×ÑÐBðdð ×ÑÐAðdð ×ÑÐ Uðdð  ×ÑÐAð!dð" ×ÑÐCñ#dð$ ×"Ñ"Ð$Qð%dð& ×ÑÐ Sð'dð( ×ÑÐ!Uð)dð* ×ÑÐLð+dð, ×ÑÐLð-dð. ×ÑÐMð/dð0 × Ñ Ð"Sð1dð2 × Ñ Ð"Qð3dð4 ×ÑÐ!Tð5dð6 ×ÑÐ Rð7dð8 ×ÑÐMð9dð: ×!Ñ!Ð#]ð;dð< × Ñ Ð"[ð=dð> ×!Ñ!Ð#Zð?dð@ ×"Ñ"Ð$\ðAdðB ×ÑÐNðCdðD ×)Ñ)Ð+còEdðF ×*Ñ*Ð,eðGdðH ×ÑÐBðIdðJ ×ÑÐ>ðKdðL ×ÑÐCðMdðN ×ÑÐ HðOdðP ×ÑÐIðQdðR ×ÑÐBðSdðT ×"Ñ"Ð$PðUdðV ×ÑÐDðWdðX ×ÑÐBðYdðZ ‡M�MÐ;ð[dð\ ×-Ñ-Ð/kð]dð^ × Ñ Ð"Oð_dð` ×ÑÐBðadðb ×ÑÐAðcdðd ×ÑÐLðedðf ×ÑÐJògdðh ×ÑÐ!Kðidðj ×ÑÐ Iðkdðl ×ÑÐ@ðmdðn ×ÑÐHðodðp ×ÑÐHðqdðr ×ÑÐGðsdðt ×ÑÐ!Pðudðv ×"Ñ"Ð$Oðwdðx ×"Ñ"Ð$Nðydðz ×"Ñ"Ð$Uð{dð| ×"Ñ"Ð$Vð}dð~ ‡O�OÐ;ðdð@ ×#Ñ#Ð%PðAdðB ×"Ñ"Ð$JðCdðD ×ÑÐDðEdðF ×ÑÐFðGdðH ×ÑÐPòIdðJ ×ÑÐLðKdðL ×ÑÐ=ðMdðN ×%Ñ%Ð']ðOdðP ×(Ñ(ð +ðQdðX ×ÑÐnðYdðZ ×ÑÐoð[dð\ ×Ñð  ð]dðd ×"Ñ"ð %ðedðl ×ÑÐiðmdðn ×ÑÐ@ðodðp ×"Ñ"Ð$Kðqdðr ×ÑÐCðsdðt ×%Ñ%Ð'Qðudðx ×ÑÐJðydðz ×!Ñ!Ð#Uð{dð| ×"Ñ"Ð$Tð}dð~ ×%Ñ%Ð'^ñdð@ ×ÑÐ!SØ× Ñ Ð"UØ×ÑÐRØ× Ñ Ð"UñGd€÷N\!ò \!r*   