a
    7ñ»jÖð  ã                   @   s  d Z ddlZddlZddlZddlZddlZddlZddlZddlZ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mZ ddlmZ dd	lmZ dd
lmZ e ¡  e ¡ d Ze ¡ Ze ¡ Z e !¡ Z"e #¡ Z$e %¡ Z&ej' (ej' )ej*¡¡Z+ej' (ej' )ej*¡¡Z,ej' (ej' )ej*¡¡Z-ej' (ej' )ej*¡¡Z.dZ/dZ0dZ1dZ2dd„ Z3dd„ Z4dd„ Z5dd„ Z6dd„ Z7dd„ Z8dd„ Z9dd„ Z:dd „ Z;d!d"„ Z<d3d$d%„Z=d&d'„ Z>d(d)„ Z?d*d+„ Z@d,d-„ ZAd.d/„ ZBd4d0d1„ZCeDd2k�reCƒ  dS )5aã  
Downloads the specified webdriver to "seleniumbase/drivers/"

Usage:
    sbase get {chromedriver|geckodriver|edgedriver|
               iedriver|uc_driver|cft|chs} [OPTIONS]
Options:
    VERSION         Specify the version.
                    Tries to detect the needed version.
                    If using chromedriver or edgedriver,
                    you can use the major version integer.
    -p OR --path    Also copy the driver to /usr/local/bin
Examples:
    sbase get chromedriver
    sbase get geckodriver
    sbase get edgedriver
    sbase get chromedriver 114
    sbase get chromedriver 114.0.5735.90
    sbase get chromedriver stable
    sbase get chromedriver beta
    sbase get chromedriver -p
    sbase get chromium
    sbase get cft 131
    sbase get chs
Output:
    Downloads the webdriver to seleniumbase/drivers/
    (chromedriver is required for Chrome automation)
    (geckodriver is required for Firefox automation)
    (edgedriver is required for MS__Edge automation)
é    N)Úsuppress)Ú	constants)Úshared_utils)Úconfig)Údrivers)Úcft_drivers)Úchs_drivers)Úchromium_driversz/usr/local/bin/z114.0.5735.90zv0.36.0ú115.0.1901.183c                  C   s$  d} | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d	7 } | d
7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d7 } | d 7 } | d!7 } t d"ƒ td#tjj| f ƒ‚d S )$Nz  ** get / install **

z	  Usage:
z2     seleniumbase install [DRIVER_NAME] [OPTIONS]
z2     OR     sbase install [DRIVER_NAME] [OPTIONS]
z2     OR  seleniumbase get [DRIVER_NAME] [OPTIONS]
z2     OR         sbase get [DRIVER_NAME] [OPTIONS]
z1         (Drivers: chromedriver, cft, uc_driver,
z1                   edgedriver, chs, geckodriver)
z  Options:
z%     VERSION    Specify the version.
z4                Tries to detect the needed version.
z5                If using chromedriver or edgedriver,
z7                you can use the major version integer.
Ú
z;     -p OR --path   Also copy the driver to /usr/local/bin
z  Examples:
z     sbase get chromedriver
z     sbase get geckodriver
z     sbase get edgedriver
z      sbase get chromedriver 114
z*     sbase get chromedriver 114.0.5735.90
z#     sbase get chromedriver stable
z!     sbase get chromedriver beta
z     sbase get chromedriver -p
z     sbase get cft 131
z     sbase get chs
z
  Output:
z6     Downloads the webdriver to seleniumbase/drivers/
z6     (chromedriver is required for Chrome automation)
z6     (geckodriver is required for Firefox automation)
z6     (edgedriver is required for MS__Edge automation)
z6     (cft is for the `Chrome for Testing` binary exe)
z6     (chs is for the `Chrome-Headless-Shell` binary.)
Ú z%s

%s)ÚprintÚ	Exceptionr   ZWarningsZINVALID_RUN_COMMAND)Úexp© r   úME:\soccer\ml_env\Lib\site-packages\seleniumbase/console_scripts/sb_install.pyÚinvalid_run_commandG   sF    r   c                 C   s,   t  | ¡j}||d@ d? O }t  | |¡ d S )Ni$  é   )ÚosÚstatÚst_modeÚchmod)Ú	file_pathÚmoder   r   r   Úmake_executablem   s    r   c               	   C   sê   d } d}d }d }dd  tj¡v ràddlm} tjD ]¬}| d¡r2| d¡d }d|v r’z | d¡d }| d¡d }W n ty�   td	ƒ‚Y n0 | d
¡r¢d}nd|v r°d}nd|v r¼d}| 	|¡}|rÖd||f }d}  qàq2| ||fS )NÚhttpú	 --proxy=ú r   )Úproxy_helperú--proxy=é   ú@z‡The format for using a proxy server with auth is: "username:password@hostname:port". If not using auth, the format is: "hostname:port".z:443ÚhttpsZsocks4Zsocks5z%s@%sT)
ÚjoinÚsysÚargvÚseleniumbase.corer   Ú
startswithÚsplitr   ÚendswithZvalidate_proxy_string)Ú	use_proxyÚprotocolÚproxy_stringZuser_and_passr   Úargr   r   r   Úget_proxy_infot   s:    

ÿ


r.   c                 C   sr   t ƒ \}}}d }d }|r ||i}ztj| |dd�}W n8 tyl   |  dd¡} t d¡ tj| |dd�}Y n0 |S )Ng      ô?©ÚproxiesÚtimeoutzhttps://zhttp://g{®Gáz¤?g      @)r.   ÚrequestsÚgetr   ÚreplaceÚtimeÚsleep©Úurlr*   r+   r,   r0   Úresponser   r   r   Úrequests_get—   s    
r:   c                 C   s˜   t ƒ \}}}d }d }|r ||i}ztj| |dd�}W n^ ty’   t d¡ ztj| |dd�}W n, tyŒ   t d¡ tj| |dd�}Y n0 Y n0 |S )Ngš™™™™™õ?r/   r    gš™™™™™@gffffff@)r.   r2   r3   r   r5   r6   r7   r   r   r   Úrequests_get_with_retry§   s    

r;   c                  C   s&   t tdd ƒrtjS d} t| ƒt_tjS )NÚcft_kgv_jsonzNhttps://googlechromelabs.github.io/chrome-for-testing/known-good-versions.json)ÚgetattrÚ	sb_configr<   r:   )Zcft_ngv_urlr   r   r   Úget_cft_known_good_versions¹   s    ÿ
r?   c                  C   s&   t tdd ƒrtjS d} t| ƒt_tjS )NÚcft_lvpm_jsonzXhttps://googlechromelabs.github.io/chrome-for-testing/latest-versions-per-milestone.json)r=   r>   r@   r:   )Zcft_lvpm_urlr   r   r   Ú%get_cft_latest_versions_per_milestoneÄ   s    ÿ
rA   c                 C   s   t ƒ }| ¡ d |  d S )NZ
milestonesÚversion)rA   Újson)Z	milestoneÚurl_requestr   r   r   Ú%get_cft_latest_version_from_milestoneÏ   s    rE   c                 C   s  d}| dv rd}n(| dv r d}n| dv r.d}n| dv r:d	}d}|  ¡ d
krPd}n4|  ¡ dkrbd}n"|  ¡ dkrtd}n|  ¡ dkr„d}d}|› d|› d|› d�}t|ƒ}d}|jr¸|j}ntdƒ‚|�rz(ddl}| |¡}	|	d d }
t|
ƒW S  t�y
   t| ƒ Y S 0 nt| ƒS dS )zySnapshots only exist for revisions where a build occurred.
    Therefore, not all found revisions will lead to snapshots.N)ÚMac_ArmÚMacrG   )Ú	Linux_x64ÚLinux)ÚWin_x64ÚWindows)ÚWinZWin32ÚstableÚStableÚbetaÚBetaÚdevÚDevÚcanaryÚCanaryz/https://chromiumdash.appspot.com/fetch_releasesz	?channel=z
&platform=z&num=1z&Could not determine Chromium revision!r   Zchromium_main_branch_position)	Úlowerr;   ÚokÚtextr   ÚastÚliteral_evalÚstrÚget_latest_chromedriver_version)Úplatform_codeÚchannelZplatform_keyZchannel_keyÚbase_urlr8   rD   ÚdatarX   ÚresultÚrevisionr   r   r   Úget_chromium_channel_revisionÔ   sD    

rb   c                 C   s6   d}|› d| › d�}t |ƒ}|jr*|j}ntdƒ‚|S )Nz9https://storage.googleapis.com/chromium-browser-snapshotsú/z/LAST_CHANGEz-Could not determine latest Chromium revision!)r;   rV   rW   r   )r\   r^   r8   rD   Zlatest_revisionr   r   r   Úget_chromium_latest_revisionþ   s    rd   rN   c                 C   sn   zVt tdd ƒr"tjd |  d W S tdƒ}|rT|jrT| ¡ t_| ¡ d |  d W S W n tyh   Y n0 tS )NÚcft_lkgv_jsonZchannelsrB   zShttps://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions.json)r=   r>   re   r:   rV   rC   r   ÚDEFAULT_CHROMEDRIVER_VERSION)r]   Úreqr   r   r   r[   	  s    ÿ

r[   c                   C   s
   t dd�S )NrN   ©r]   ©r[   r   r   r   r   Ú&get_latest_stable_chromedriver_version  s    rj   c                   C   s
   t dd�S )NrP   rh   ri   r   r   r   r   Ú$get_latest_beta_chromedriver_version  s    rk   c                   C   s
   t dd�S )NrR   rh   ri   r   r   r   r   Ú#get_latest_dev_chromedriver_version"  s    rl   c                   C   s
   t dd�S )NrT   rh   ri   r   r   r   r   Ú&get_latest_canary_chromedriver_version&  s    rm   c                 C   s&   t tjddƒrt | ¡ nt| ƒ dS )z|If setting sb_config.settings.HIDE_DRIVER_DOWNLOADS to True,
    output from driver downloads are logged instead of printed.ZHIDE_DRIVER_DOWNLOADSN)r=   r>   ÚsettingsÚloggingÚdebugr   )Úmessager   r   r   Úlog_d*  s    rr   c           e   	   C   sü&  | �rd }t tdd ƒrDdd tj¡v rDtjD ]}| d¡r,|} qDq,| dkrZg d¢t_�n¨|  d¡r„|  d¡d }d	d
d|gt_�n~| dkršg d¢t_�nh|  d¡rÄ|  d¡d }d	d
d|gt_�n>| dkrÚg d¢t_�n(|  d¡�r|  d¡d }d	d
d|gt_nþ| dk�rg d¢t_nè|  d¡�rD|  d¡d }d	d
d|gt_n¾| dk�rZg d¢t_n¨|  d¡�r„|  d¡d }d	d
d|gt_n~| dk�ršg d¢t_nh|  d¡�rÄ|  d¡d }d	d
d|gt_n>| dk�rÚg d¢t_n(|  d¡�r|  d¡d }d	d
d|gt_|�rtj |¡ ttjƒ}dtjd  	¡ v �sFd	tjd  	¡ v �rb|dk �sZ|d k�rht
ƒ  nt
ƒ  tjd!  	¡ }|�r€d"}d }d }	d }
d#}d }t}ttd$ƒ�rÐt tjd%d ƒ�rÐtj tjj¡�rÐtjj}nB| dk�sä|dk�rêt}n(| dk�sþ|dk�rt}n| dk�rt}d }d }d#}d&}d&}d&}d&}tjjtjj }tjjtjj }tjjtjj }tjjtjj }tjjtjj }tjjtjj }tj j!}t"�r¸d&}d&}d&}d&}d&}d&}d&}|dk�sÌ|d"k�rt|d"k�ràt#�ràd'}d(}t$}| �s”|dk�s|d)k�r”d*tjd  	¡ v �r”d }z:dd+l%m&} d,}| '|¡ d-¡d }t(|ƒd.k �rRd }W n t)�yl   d }Y n0 |�r”| *¡ �r”|d7 }tj +d|¡ d#} d#}!d#}"d#}#d#}$|d)k�s¼|d k�r|d*tjd  	¡ v�rxtjd }| 	¡ }%|%d/k�sö|%d0k�r d/}%d'} nv|%d1k�s|%d2k�rd1}%d'}"nX|%d3k�r.d'}#nH|%d4k�rJt,ƒ }|tjd< n,|%d5k�rZd'}$n|% -¡ �r|t(|%ƒd6k�r|d'}!nd'}|d k�r¦d*tjd)  	¡ v �r d'}nt
ƒ  t.�r¬t#�r||�s|| 	¡ }|d/k�sü|d0k�sü|d1k�sü|d2k�sü|d3k�sü|d5k�rt/ƒ }|d1k�s|d2k�r2t0t(| d-¡d ƒd ƒ}nJ|d3k�rXt0t(| d-¡d ƒd ƒ}n$|d5k�r|t0t(| d-¡d ƒd! ƒ}t#�r¦|�s¦t(| d-¡d ƒd7k�r¦d8}nd9}n:t"�r¸d:}n.t1�rÞd;}| �sæ|!�sæ|d)k �ræd'} nt)d<ƒ‚d#}&d#}'| �s|"�s|#�s|$�r¼t/ƒ }d'}&|"�rNt(| d-¡d ƒd=k�rNd'}!t0t(| d-¡d ƒd ƒ}nn|#�r†t(| d-¡d ƒd=k�r†d'}!t2ƒ }| d-¡d }n6|$�r¼t(| d-¡d ƒd=k�r¼d'}!t3ƒ }| d-¡d }d#}(| d-¡d  *¡ �rðt(| d-¡d ƒd=k�rðd'}(|!�sü|(�	r|!�r*|(�s t4|ƒ})|)j5�r&|)j6}nt/ƒ }d#}(|(�stt(|ƒd=k �rt|d> | }t4|ƒ}*|*j5�	rd'}&|*j6}||k�	rd'} nžd }*d'}'|(�rªt7ƒ }*|*j5�r°d?| |*j6v �r°|}+d'}&nt8ƒ }*|(�	s|*j5�	rzt9|ƒ}+W n, t:�yö   t0t(|ƒd ƒ}t9|ƒ}+Y n0 d'}&t0|+ƒ}||k�	rd'} d@||f }	d&},|'�	rœt.�	rNt#�	rD|�	sDdA}dB}ndC}dD}n2t"�	r^dE}dF}n"t1�	r€dGt;v �	rxdH}dI}ndJ}dK}| dL¡d },dM|||f }	d }*|&�	sÒt4|ƒ})|)j5�	rÊ|)j6}||k�	rÊd'} t4|	ƒ}*|&�	sà|*j5�rb|}-|| | }-t/ƒ }.t2ƒ }/t,ƒ }0t3ƒ }1d'}2d }3d }4z(t(| d-¡d ƒ}3t(|. d-¡d ƒ}4W n t)�
yT   d#}2Y n0 d#}5|4d=k�
rhd'}5|'�
rš|5�
rš||.k�
rš|-d | dN | d }-�nª|'�
rÌ|5�
rÌ||/k�
rÌ|-d | dO | d }-�nx|'�
rþ|5�
rþ||0k�
rþ|-d | dP | d }-�nF|'�r0|5�r0||1k�r0|-d | dQ | d }-�n|2�s:�n
|2�rl|'�rl|5�rl|3|4k�rl|-d | dR | }-nØ|2�r¢|'�r¢|5�r¢|3|4d k�r¢|-d | dS | }-n¢|2�rØ|'�rØ|5�rØ|3|4d! k�rØ|-d | dT | }-nl|2�r|'�r|5�r|3|4d k�r|-d | dU | }-n6|'�r|5�sn(|dV | dW | dX | }6|-d |6 }-|dY | }7t<dZ|7|-f ƒ nt)d[ƒ‚| �sz�
n|d\k�sˆ|dk�r†d }8d }9d }d }:|d)k�r¬tjd }8|8�rî|8 d-¡d  *¡ �rît(|8 d-¡d ƒd]k�rî|8 d-¡d }:nÄ|8�r|8 	¡ d/k�s|8 	¡ d0k�rt/ƒ }9nš|8�r`|8 	¡ d1k�s:|8 	¡ d2k�r`t/ƒ }9t0t(|9 d-¡d ƒd ƒ}:d }9nR|8�r||8 	¡ d3k�r|t2ƒ }9n6|8�r˜|8 	¡ d4k�r˜t,ƒ }9n|8�r²|8 	¡ d5k�r²t3ƒ }9|9�rÞ|9 d-¡d  *¡ �rÞ|9 d-¡d }:|9}|�sìt9|:ƒ}|d^ | }7|| | }-t<dZ|7|-f ƒ t.�r4t#�r*dA}d_}ndC}d`}n2t"�rDdE}da}n"t1�rfdGt;v �r^dH}db}ndJ}dc}| dL¡d },dM|||f }	�nô|dk�r t.�r¬t#�r¢dd}nde}df}n.t"�r¼dg}dh}nt1�rÚdGt;v �rÒdi}ndj}dk}t=|ƒ};|dl | }7||; | }-t<dZ|7|-f ƒ dm||;|f }	t}�nZ|dnk�s4|dk�r2d }8d }9d }d }:|d)k�rXtjd }8|8�rš|8 d-¡d  *¡ �ršt(|8 d-¡d ƒd]k�rš|8 d-¡d }:nÄ|8�r¼|8 	¡ d/k�s¼|8 	¡ d0k�rÄt/ƒ }9nš|8�r|8 	¡ d1k�sæ|8 	¡ d2k�rt/ƒ }9t0t(|9 d-¡d ƒd ƒ}:d }9nR|8�r(|8 	¡ d3k�r(t2ƒ }9n6|8�rD|8 	¡ d4k�rDt,ƒ }9n|8�r^|8 	¡ d5k�r^t3ƒ }9|9�rŠ|9 d-¡d  *¡ �rŠ|9 d-¡d }:|9}|�s˜t9|:ƒ}|do | }7|| | }-t<dZ|7|-f ƒ t.�ràt#�rÖdA}dp}ndC}dq}n2t"�rðdE}dr}n"t1�rdGt;v �r
dH}ds}ndJ}dt}| dL¡d },dM|||f }	�nH|dk�sF|duk�r¾t>}d#}<|d)k�sb|d k�r¾d*tjd  	¡ v�rºtjd }| 	¡ d/k�r¾dv}t4|ƒ}*|*j5�r´d'}<|* ?¡ dw }nt>}nd'}|d k�rèd*tjd)  	¡ v �râd'}nt
ƒ  t.�rt#�rþdx| }ndy| }nTt"�rDdGt;v �r:dzt@ A¡ v �r0d{| }nd|| }nd}| }nt1�rTd~| }nt)dƒ‚d€||f }	d }*|<�szt4|	ƒ}*|<�sˆ|*j5�r²|d� | }7|| | }-t<dZ|7|-f ƒ nt)d‚ƒ‚�n¼|dk�sÒ|dƒk�rÒd}d„}| �sŽ|dk�s|d)k�rŽd*tjd  	¡ v �rŽd/}d }=z:dd+l%m&} d…}| '|¡ d-¡d }=t(|=ƒd†k �rHd }=W n t)�yb   d }=Y n0 |=�rŽ|= *¡ �rŽ|d7 }tj +d|=¡ |=}d#} |dk�r d'} |d)k�rÂd*tjd  	¡ v �rÂd'} |d)k�sÖ|d k�rd*tjd  	¡ v�rtjd }| 	¡ d/k�rtB}d'} nd'}|d k�r:d*tjd)  	¡ v �r4d'}nt
ƒ  | �r~tC|ƒ}*|*j5�rz|*j6 d‡¡d  dˆ¡d }| d-¡d }ntB}d }>t1�rœdGt;v �rœd‰}dŠ}>n\t1�r¬d‹}dŠ}>nLt.�ràt#�rÖt(| d-¡d ƒdŒk�rÖd�}ndŽ}d�}>nt"�rðd�}d‘}>nt)d’ƒ‚| -¡ �rpd“}?d”|?||>f }tC|ƒ}*|*j5�rp|*j6 d‡¡d  dˆ¡d }t(| d-¡d ƒd=k�rp| d•¡�rp|d–k�rpd–}d—||f }	| �s¨|tBk�s¨tC|	ƒ}*|*j5�s¨t)d˜| ƒ‚|d™ | }7|| | }-t<dZ|7|-f ƒ n¨|dk�rtdš}@|@}t1�rþdGt;v �rþd›|@ }nt1�rdœ|@ }nt)d�ƒ‚dž|@|f }	dŸ}Ad }d¡|A|f }
tC|
ƒ}*|*j5�rzd'}|d¢ | }7||A | }-t<dZ|7|-f ƒ nt
ƒ  |d u �sŽ|	d u �r”t
ƒ  tj ||¡}Btj |¡�sºt D|¡ d }Cg }D|�ržtj ||¡}Et<d£||
f ƒ tC|
ƒ}FtE|Ed¤ƒ�}G|G F|FjG¡ W d   ƒ n1 �s0    Y  t<d¥||f ƒ |E}HtH I|Hd¦¡}I|I J¡ }J| dL¡d }Kd§|K d¨|K d©|K dª|K d«|K d¬|K d­|K d®|K g}t|Jƒd¯k�r¦t)d°ƒ‚|JD ] }L|L|v�rªt)d±|L|f ƒ‚�qªd }Md }Nd }O|JD ]N}t0|ƒ}Ptj ||P¡}|Pd­|K k�rÜ|P}N|}Md²}Otj |¡�rÜt K|¡ �qÜ|N�r>|M�r>|O�sFt)d³ƒ‚t<d´|O|f ƒ |I L|¡ |I M¡  t K|H¡ tN O|Mtj ||O¡¡ t<dµ||f ƒ d¶||Kf d·||Kf d¸||Kf d¹||Kf dº||Kf d»||Kf g}Q|QD ]}Rtj |R¡�rÜt K|R¡ �qÜtj d¼||Kf ¡�r$t Pd¼||Kf ¡ tj tj ||K¡¡�rPt Ptj ||K¡¡ tj ||O¡}Mt<d½|O||M|f ƒ t<d¾|N|f ƒ tQ|Mƒ t<d¿||N||f ƒ t<d£||	f ƒ tC|	ƒ}FtE|Bd¤ƒ�}G|G F|FjG¡ W d   ƒ n1 �sä0    Y  | RdL¡�$rà|B}HtH I|Hd¦¡}I|I J¡ }Jt<d¥||f ƒ t|Jƒdk�r|dÀv �r|JD �]}|dk�sX|d"k�r”| dÁ¡dÂ dk�s€| dÁ¡dÂ dÃk�r”| dÁ¡dÂ }C|Cg}Dtj |t0|ƒ¡}|d"k�r*| RdÄ¡�rÊ| SdÄdÅ¡}n`| RdÆ¡�rä| SdÆdÇ¡}nFdÈ|, |v �r| SdÈ|, dÉ|, ¡}n"dÊ|, |v �r*| SdÊ|, dË|, ¡}dÌ|v �s>dÍ|v �r>tj |¡�r>t K|¡ �q>|D�rd|D}Jt<d´|J|f ƒ |d"k�r"d"}tj ||¡}tj |¡�r¨t K|¡ |I T¡ }S|SD ]X}T|TjU dÁ¡dÂ dk�râd"|T_U|I V|T|¡ n(|TjU dÁ¡dÂ dÃk�r´dÎ|T_U|I V|T|¡ �q´|I J¡ }J|D�rÚ|D}Jn¸|dk�s6|d"k�rÐ|I T¡ }S|SD ]x}T|TjU dÁ¡dÂ dk�rdd|T_Un|TjU dÁ¡dÂ dÃk�r€dÃ|T_U|TjU dÁ¡dÂ dk�s¬|TjU dÁ¡dÂ dÃk�rB|I V|T|¡ �qB|I J¡ }J|D�rÚ|D}Jn
|I L|¡ |I M¡  t K|H¡ t<dµ||f ƒ |JD �]
}|d"k�r t1�rdÎ}nd"}tj |t0|ƒ¡}|| | }UtjW |U tjW¡d dÂ… ¡tjW }V|U tjW¡dÂ }W||V | dˆ | |W | }Xt<dÏ||Xf ƒ t<d¾||f ƒ tQ|ƒ t<d¿||||f ƒ |�r tj tX¡�r tX| }YtN O||Y¡ tQ|Yƒ t<dÐ||Y|f ƒ �q t<d&ƒ �&qø|dk�s8|dƒk�s8|dk� r¾t.�sDt"�rNg dÑ¢}ng dÒ¢}|dk�rfdÓg}t|Jƒd k�r|t)dÔƒ‚|JD ] }L|L|v�r€t)d±|L|f ƒ‚�q€d }Md }N|JD ]f}t0|ƒ}Ptj ||P¡}t.�sÔt"�rÞ|Pdƒk�sò|PdÕk�sò|PdÓk�r®|P}N|}Mtj |¡�r®t K|¡ �q®|N�r"|M�s<|PdÓk�r4t)dÖƒ‚t)d×ƒ‚t<d´|J|f ƒ |I L|¡ |I M¡  t K|H¡ t<dµ||f ƒ dØ| dÙ| dÚ| g}Q|QD ]}Rtj |R¡�r’t K|R¡ �q’tj tj |dÛ¡¡�rÞt Ptj |dÛ¡¡ tjW |M tjW¡d dÂ… ¡}Z|M tjW¡dÂ }N||Z | }[|tjW | }\||N | }]t<dÜ|N|[|\|]f ƒ t<d¾|N|f ƒ tQ|Mƒ t<d¿||N||f ƒ |� r²tj tX¡� r²tX| }YtN O||Y¡ tQ|Yƒ t<dÐ||Y|f ƒ t<d&ƒ �&qø|d\k� sÒ|dk�"rd }Md }NtjW |H tjW¡d dÂ… ¡}^|Jd  dÁ¡d }_tj |^|_¡}`t.�!s"t"�!rbdÝ|`v �!rNdÞ|`v �!rNtj |`¡�!rNtN Y|`¡ tZ [dß|Hdà|g¡ n2t1�!r‚tZ [dádâdã|Hdä|dåg¡ n|I L|¡ |I M¡  t\t)ƒ� t K|H¡ W d   ƒ n1 �!s¾0    Y  t<dµ||f ƒ ||^ | }a|tjW | }\||_ | }bt<dæ|a|\|bf ƒ �&qø|dk�#r`d }Md }NtjW |H tjW¡d dÂ… ¡}^|Jd  dÁ¡d }_tj |^|_¡}`t.�"snt"�"r®d|`v �"ršdÞ|`v �"rštj |`¡�"rštN Y|`¡ tZ [dß|Hdà|g¡ n2t1�"rÎtZ [dádâdã|Hdä|dåg¡ n|I L|¡ |I M¡  t\t)ƒ� t K|H¡ W d   ƒ n1 �#s
0    Y  t<dµ||f ƒ ||^ | }a|tjW | }\||_ | }bt<dç|a|\|bf ƒ �&qø|dnk�#st|dk�$r´d }Md }NtjW |H tjW¡d dÂ… ¡}^|Jd  dÁ¡d }_tj |^|_¡}`t.�#sÄt"�$rdè|`v �#rðdÞ|`v �#rðtj |`¡�#rðtN Y|`¡ tZ [dß|Hdà|g¡ n2t1�$r$tZ [dádâdã|Hdä|dåg¡ n|I L|¡ |I M¡  t\t)ƒ� t K|H¡ W d   ƒ n1 �$s`0    Y  t<dµ||f ƒ ||^ | }a|tjW | }\||_ | }bt<dé|a|\|bf ƒ n(t|Jƒdk�$rÐt)dê|H ƒ‚nt)dë|H ƒ‚�n| Rdì¡�&rž|B}ct] E|B¡}d|d ^¡ }Jt|Jƒdk�&rtt<d¥||f ƒ |JD ]D}tj |t0|ƒ¡}dÌ|v �%sNdÍ|v �%r$tj |¡�%r$t K|¡ �%q$t<d´|J|f ƒ tj_dík �%r’|d L|¡ n|djL|dîdï� |d M¡  t K|c¡ t<dµ||f ƒ |JD ]¢}tj |t0|ƒ¡}|| | }Ut<dÏ||Uf ƒ t<d¾||f ƒ tQ|ƒ t<d¿||||f ƒ |�%rÆtj tX¡�%rÆtX| }YtN O||Y¡ tQ|Yƒ t<dÐ||Y|f ƒ �%qÆt<d&ƒ n(t|Jƒdk�&r�t)dð|c ƒ‚nt)dë|c ƒ‚nZdÌ|v �&s²dÍ|v �&røt<d¥||f ƒ t<dñ| ƒ tQ|Bƒ t<dò|||f ƒ t<dó||Bf ƒ d S )ôNZproxy_driverr   r   r   Úchromedriver)Úseleniumbaser3   rs   zchromedriver r    rt   r3   Ú
edgedriver)rt   r3   ru   zedgedriver Úgeckodriver)rt   r3   rv   zgeckodriver Úiedriver)rt   r3   rw   z	iedriver Úchromium)rt   r3   rx   z	chromium Úcft)rt   r3   ry   zcft Úchs)rt   r3   rz   zchs Zsbaser   é   é   r   Ú	uc_driverFrn   ÚNEW_DRIVER_DIRr   Tz:https://chromedriver.storage.googleapis.com/LATEST_RELEASEé   z-p)Údetect_b_verzgoogle-chromeÚ.éH   ZlatestrM   zlatest-1ÚpreviousrO   rQ   rS   éE   éi   zchromedriver_mac_arm64.zipzchromedriver_mac64.zipzchromedriver_linux64.zipzchromedriver_win32.zipz;Cannot determine which version of chromedriver to download!és   Ú_z"version":"%s"z1https://chromedriver.storage.googleapis.com/%s/%sz	mac-arm64zchromedriver-mac-arm64.zipzmac-x64zchromedriver-mac-x64.zipZlinux64zchromedriver-linux64.zipÚ64Zwin64zchromedriver-win64.zipÚwin32zchromedriver-win32.zipz.zipzAhttps://storage.googleapis.com/chrome-for-testing-public/%s/%s/%sz(Latest Stable)z(Latest Beta)z(Latest Dev)z(Latest Canary)z(Stable)z(Beta)z(Dev / Canary)z(Previous Version)ú(zLegacy Versionú)zchromedriver to downloadz
*** %s = %sz)Could not find chromedriver to download!
Úchromeéq   zChrome for Testing to downloadzchrome-mac-arm64.zipzchrome-mac-x64.zipzchrome-linux64.zipzchrome-win64.zipzchrome-win32.ziprF   rG   zchrome-mac.ziprH   zchrome-linux.ziprJ   rL   zchrome-win.zipzChromium revision to downloadzBhttps://storage.googleapis.com/chromium-browser-snapshots/%s/%s/%szchrome-headless-shellz!Chrome-Headless-Shell to downloadz#chrome-headless-shell-mac-arm64.zipz!chrome-headless-shell-mac-x64.zipz!chrome-headless-shell-linux64.zipzchrome-headless-shell-win64.zipzchrome-headless-shell-win32.zipZfirefoxdriverz@https://api.github.com/repos/mozilla/geckodriver/releases/latestZtag_namez#geckodriver-%s-macos-aarch64.tar.gzzgeckodriver-%s-macos.tar.gzÚaarch64z#geckodriver-%s-linux-aarch64.tar.gzzgeckodriver-%s-linux64.tar.gzzgeckodriver-%s-linux32.tar.gzzgeckodriver-%s-win64.zipz:Cannot determine which version of geckodriver to download!z>https://github.com/mozilla/geckodriver/releases/download/%s/%szgeckodriver to downloadz?
Could not find the specified geckodriver version to download!
ÚmsedgedriverzPhttps://msedgewebdriverstorage.blob.core.windows.net/edgewebdriver/LATEST_STABLEÚedgeéP   úr   zedgedriver_win64.zipÚWINDOWSzedgedriver_win32.zipéh   zedgedriver_mac64_m1.zipzedgedriver_mac64.zipZMACOSzedgedriver_linux64.zipZLINUXz9Cannot determine which version of EdgeDriver to download!z1https://msedgedriver.microsoft.com/LATEST_RELEASEz%s_%s_%sz115.0r
   z(https://msedgedriver.microsoft.com/%s/%sz*Could not find version [%s] of EdgeDriver!zedgedriver to downloadz4.14.0zIEDriverServer_x64_%s.zipzIEDriverServer_Win32_%s.zipz2Sorry! IEDriver is only for Windows-based systems!zGhttps://github.com/SeleniumHQ/selenium/releases/download/selenium-%s/%szv1.4z"headless-selenium-for-win-v1-4.zipzIhttps://github.com/kybu/headless-selenium-for-win/releases/download/%s/%szHeadlessIEDriver to downloadz
Downloading %s from:
%s ...Úwbz%sDownload Complete!%s
Úrz%s/z%s/ruby_example/z%s/ruby_example/Gemfilez%s/ruby_example/Gemfile.lockz%s/ruby_example/ruby_example.rbz%s/desktop_utils.exez%s/headless_ie_selenium.exez%s/README.mdé   z0Unexpected content in HeadlessIEDriver Zip file!z$Expected file [%s] missing from [%s]zheadless_ie_selenium.exez/headless_ie_selenium.exe missing from Zip file!zExtracting %s from %s ...z%sUnzip Complete!%s
z%s/%s/ruby_example/Gemfilez%s/%s/ruby_example/Gemfile.lockz"%s/%s/ruby_example/ruby_example.rbz%s/%s/desktop_utils.exez%s/%s/headless_ie_selenium.exez%s/%s/README.mdz%s/%s/ruby_example/z#The file [%s] was saved to:
%s%s%s
zMaking [%s %s] executable ...z!%s[%s %s] is now ready for use!%s)rs   r}   rv   rc   éÿÿÿÿzchromedriver.exezdrivers/chromedriverzdrivers/uc_driverzdrivers/chromedriver.exezdrivers/uc_driver.exezdrivers/%s/chromedriverzdrivers/%s/uc_driverzdrivers/%s/chromedriver.exezdrivers/%s/uc_driver.exeZDriverZdriverzuc_driver.exezThe file [%s] was saved to:
%s
zAlso copied to: %s%s%s)úDriver_Notes/úDriver_Notes/EULAúDriver_Notes/LICENSEúDriver_Notes/credits.htmlr�   zlibc++.dylib)r™   rœ   rš   r›   úmsedgedriver.exezIEDriverServer.exez*Unexpected content in EdgeDriver Zip file!r�   z%IEDriverServer missing from Zip file!z#msedgedriver missing from Zip file!z%s/Driver_Notes/credits.htmlz%s/Driver_Notes/EULAz%s/Driver_Notes/LICENSEr™   z$The file [%s] was saved to:
%s%s
%s
zchrome-r   Zunzipz-dÚ
powershellzExpand-Archivez-Pathz-DestinationPathz-Forcez-Chrome for Testing was saved inside:
%s%s
%s
z#Chromium was saved inside:
%s%s
%s
zchrome-headless-shell-z0Chrome-Headless-Shell was saved inside:
%s%s
%s
zZip file %s is empty!zExpecting only one file in %s!z.tar.gz)r{   é   Zfully_trusted)ÚfilterzTar file %s is empty!zMaking [%s] executable ...z%s[%s] is now ready for use!%szLocation of [%s]:
%s
)`r=   r>   r#   r$   r%   r'   r(   ÚappendÚlenrU   r   Ú
DRIVER_DIRÚhasattrrn   r   ÚpathÚexistsr~   ÚDRIVER_DIR_CFTÚDRIVER_DIR_CHSÚDRIVER_DIR_CHROMIUMÚcoloramaZForeZBLUEZBackZLIGHTCYAN_EXZLIGHTGREEN_EXZLIGHTYELLOW_EXZLIGHTRED_EXZLIGHTWHITE_EXZREDZCYANÚStyleZ	RESET_ALLÚIS_LINUXÚ
IS_ARM_MACrf   r&   r€   Zget_browser_version_from_osÚintr   Ú	isnumericÚinsertrl   ÚisdigitÚIS_MACrj   rZ   Ú
IS_WINDOWSrk   rm   r:   rV   rW   r?   rA   rE   ÚKeyErrorÚARCHrr   rd   ÚDEFAULT_GECKODRIVER_VERSIONrC   ÚplatformÚ	processorÚDEFAULT_EDGEDRIVER_VERSIONr;   ÚmakedirsÚopenÚwriteÚcontentÚzipfileÚZipFileÚnamelistÚremoveÚ
extractallÚcloseÚshutilÚcopy2Úrmdirr   r)   r4   ÚinfolistÚfilenameÚextractÚsepÚ
LOCAL_PATHÚrmtreeÚ
subprocessÚrunr   ÚtarfileÚgetnamesÚversion_info)eÚoverrideZintel_for_ucZforce_ucZfound_proxyr-   ÚextraÚnum_argsÚnameÚ	file_nameÚdownload_urlZheadless_ie_urlZheadless_ie_existsZheadless_ie_file_nameZdownloads_folderZexpected_contentsr\   Zcopy_to_pathZlatest_versionZuse_versionÚnew_fileÚf_nameÚc1Úc2Úc3Zc4Zc5Zc6ÚcrÚlastZmajor_chrome_versionr€   Zbr_appZ
get_latestZget_v_latestZget_previousZget_betaZ
get_canaryZuv_lowZfound_chromedriverry   Z	force_cftZurl_reqrD   ZfverZ	plat_archZ	p_versionZlatest_stableZlatest_betaZ
latest_devZlatest_canaryZvintZint_use_verZint_latest_verZon_cftZ
not_latestÚmsgZset_versionZfound_versionÚmajor_versionra   Zfound_geckodriverZmajor_edge_versionÚsuffixZedgedriver_stZfull_versionZheadless_ie_versionr   Zdriver_nameZdriver_contentsZheadless_ie_file_pathZremote_fileÚfileZzip_file_pathZzip_refÚcontentsZh_ie_fnr½   Zdriver_pathZdriver_filerÈ   Zstr_nameÚ	to_removeZfile_to_removeZzipinfosÚzipinfoZpr_fileZd_folderZd_fileZd_ffÚ	path_fileZdriver_baseZpr_driver_baseZpr_sepZpr_driver_fileÚ	base_pathZfolder_nameZfolder_pathZpr_base_pathZpr_folder_nameZtar_file_pathÚtarr   r   r   Úmain3  s¸   








ÿþÿþý

ÿýüüÿþþ





ÿþýüûú

ÿþýÿÿþ
ÿþÿÿ

ÿÿÿþ
ÿÿ


   

ÿþýÿ
þ
ýÿ
þ
ý
ÿÿ

ÿÿ

ÿþýÿ
þ
ýÿ
þ
ý
ÿÿ
ÿ



ÿ


ÿþÿÿÿÿýüüÿþþ



ÿ
ÿþýþÿ


ÿþÿþÿ
ÿÿÿ,ø

ÿÿ







ú
ÿÿ
ÿÿ,
ÿþ
ÿÿýü
ÿÿþþ

ÿÿÿþ



"
ÿÿÿþý



ÿÿÿÿÿýü


ý
ÿÿ
ÿÿÿþ
ý

ÿùÿ

*ÿÿ
ÿþ
ý

ÿùÿ

*ÿÿÿþ
ý

ÿùÿ

*ÿÿ


ÿÿ
ré   Ú__main__)rN   )NNN)EÚ__doc__rª   ro   r   r·   r2   rÄ   rÍ   r$   r5   rÏ   Úurllib3r¾   Ú
contextlibr   Zseleniumbase.fixturesr   r   rt   r   r>   r   Zseleniumbase.driversr   r   r	   Údisable_warningsÚarchitecturerµ   Z
is_arm_macr­   Zis_macr²   Zis_arm_linuxZIS_ARM_LINUXZis_linuxr¬   Z
is_windowsr³   r¥   ÚdirnameÚrealpathÚ__file__r£   r§   r¨   r©   rË   rf   r¶   r¹   r   r   r.   r:   r;   r?   rA   rE   rb   rd   r[   rj   rk   rl   rm   rr   ré   Ú__name__r   r   r   r   Ú<module>   s‚   ÿ&#*
	
         '
