£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
a
    XC?h ^                     @   s  d dl Z d dlZd dlZd dlZd dlZd dlZg dZG dd deZe	 Z
i Zdadad<ddddZd=d	d
Zd>ddZdd Zdd ZddddZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG d d! d!eZG d"d# d#eZeZG d$d% d%eZG d&d' d'eZG d(d) d)eZ G d*d+ d+eZ!d,d- Z"d.d/ Z#ej$dd0 d1krG d2d3 d3eZ%ej$d4krG d5d6 d6eZ&G d7d8 d8eZ'd9d: Z(e)d;kre(  dS )?    N)Erroropenopen_newopen_new_tabgetregisterc                   @   s   e Zd ZdS )r   N)__name__
__module____qualname__ r   r   //opt/alt/python39/lib64/python3.9/webbrowser.pyr      s   r   F	preferredc                C   sn   t V td u rt  ||gt|  < |s4trB| tv rBtd|  n
t|  W d    n1 s`0    Y  d S )Nr   )_lock	_tryorderregister_standard_browsers	_browserslower_os_preferred_browserinsertappend)nameklassinstancer   r   r   r   r      s    r   c              	   C   s  t d u r:t t d u rt  W d    n1 s00    Y  | d urJ| g}nt }|D ]}d|v rt|}|d dkrt|d d   S t|  S qRzt|  }W n t	y   t
|}Y n0 |d d ur|d   S |d d urR|d    S qRtdd S )N%s&   r   z!could not locate runnable browser)r   r   r   shlexsplitBackgroundBrowserGenericBrowserr   r   KeyError_synthesizer   )ZusingZalternativesbrowsercommandr   r   r   r   %   s,    $
r   Tc                 C   sd   t d u r:t t d u rt  W d    n1 s00    Y  t D ] }t|}|| ||r> dS q>dS )NTF)r   r   r   r   r   )urlnew	autoraiser   r$   r   r   r   r   G   s    	$r   c                 C   s
   t | dS Nr   r   r&   r   r   r   r   Z   s    r   c                 C   s
   t | dS N   r*   r+   r   r   r   r   a   s    r   c                C   s   |   d }t|sd d gS tj|}zt|  }W n tyT   d d g Y S 0 |d }|r| |jkrdd l	}|	|}| |_
tj| |_t| d ||d d |gS d d gS )Nr   r   )r   r   )r   shutilwhichospathbasenamer   r   r"   copyr   r   )r$   r   cmdr   r%   Z
controllerr3   r   r   r   r#   i   s"    

r#   c                   @   s6   e Zd ZdgZdddZdddZd	d
 Zdd ZdS )BaseBrowserr    c                 C   s   || _ || _d S N)r   r2   selfr   r   r   r   __init__   s    zBaseBrowser.__init__r   Tc                 C   s   t d S r7   )NotImplementedErrorr9   r&   r'   r(   r   r   r   r      s    zBaseBrowser.openc                 C   s   |  |dS r)   r*   r9   r&   r   r   r   r      s    zBaseBrowser.open_newc                 C   s   |  |dS r,   r*   r=   r   r   r   r      s    zBaseBrowser.open_new_tabN)r6   )r   T)r   r	   r
   argsr:   r   r   r   r   r   r   r   r5      s
   

r5   c                   @   s   e Zd Zdd ZdddZdS )	r!   c                 C   sF   t |tr|| _dg| _n|d | _|dd  | _tj| j| _d S )Nr   r   r   )
isinstancestrr   r>   r0   r1   r2   r8   r   r   r   r:      s    


zGenericBrowser.__init__r   Tc                    sz   t d  | jg fdd| jD  }z8t jd d dkrHt|}ntj|dd}|  W S  tyt   Y dS 0 d S )	Nwebbrowser.openc                    s   g | ]}| d  qS r   replace.0argr+   r   r   
<listcomp>   s   z'GenericBrowser.open.<locals>.<listcomp>   winT)	close_fdsF)	sysauditr   r>   platform
subprocessPopenwaitOSErrorr9   r&   r'   r(   cmdlinepr   r+   r   r      s    zGenericBrowser.openN)r   Tr   r	   r
   r:   r   r   r   r   r   r!      s   
r!   c                   @   s   e Zd ZdddZdS )r    r   Tc                    s~   | j g fdd| jD  }td  z<tjd d dkrHt|}ntj|ddd}| d u W S  tyx   Y dS 0 d S )	Nc                    s   g | ]}| d  qS rB   rC   rE   r+   r   r   rH      s   z*BackgroundBrowser.open.<locals>.<listcomp>rA   rI   rJ   T)rK   start_new_sessionF)	r   r>   rL   rM   rN   rO   rP   pollrR   rS   r   r+   r   r      s    zBackgroundBrowser.openN)r   Tr   r	   r
   r   r   r   r   r   r       s   r    c                   @   s@   e Zd ZdZdZdZddgZdZdZdZ	dddZ
dd	d
ZdS )UnixBrowserNFT%actionr   c                 C   s   g }|r*| j r*t|}| j | }|r*|g}| jg| | }|sD| jrLtj}nd }tj|d|| jrd|pfd |dd}	|rz|	d}
|
 W S  tj	y   Y dS 0 n&| jr|	
 d u rdS dS n
|	  S d S )NTrK   stdinstdoutstderrrW      F)
raise_optsintr   
backgroundrO   DEVNULLrP   redirect_stdoutrQ   ZTimeoutExpiredrX   )r9   r>   Zremoter(   r&   Z	raise_optoptrT   ZinoutrU   rcr   r   r   _invoke   s0    






zUnixBrowser._invoker   c                    s   t d |dkr| j nB|dkr,| j n2|dkrN| jd u rF| j q^| j ntdd|   fdd| jD }d	d |D }| |d
|}|sfdd| jD }| |ddS d
S d S )NrA   r   r   r-   zBad 'new' parameter to open(); zexpected 0, 1, or 2, got %sc                    s    g | ]}| d  d qS )r   r[   rC   rE   actionr&   r   r   rH     s   z$UnixBrowser.open.<locals>.<listcomp>c                 S   s   g | ]}|r|qS r   r   rE   r   r   r   rH         Tc                    s   g | ]}| d  qS rB   rC   rE   r+   r   r   rH     rk   F)	rL   rM   remote_actionremote_action_newwinremote_action_newtabr   remote_argsrh   r>   )r9   r&   r'   r(   r>   Zsuccessr   ri   r   r     s*    
zUnixBrowser.open)N)r   T)r   r	   r
   ra   rc   re   ro   rl   rm   rn   rh   r   r   r   r   r   rZ      s   
#rZ   c                   @   s$   e Zd ZddgZdZdZdZdZdS )Mozillar[   r   r6   z-new-windowz-new-tabTNr   r	   r
   ro   rl   rm   rn   rc   r   r   r   r   rp     s
   rp   c                   @   s,   e Zd ZddgZddgZdZdZdZdZd	S )
Netscape-noraisez-raise-remoteopenURL(%s%action)r6   ,new-window,new-tabTN)	r   r	   r
   ra   ro   rl   rm   rn   rc   r   r   r   r   rr   &  s   rr   c                   @   s(   e Zd ZddgZddgZdZdZdZdS )	Galeonrs   r6   r[   r   -nz-wTN)r   r	   r
   ra   ro   rl   rm   rc   r   r   r   r   rx   1  s
   rx   c                   @   s$   e Zd ZddgZdZdZdZdZdS )Chromer[   r   r6   --new-windowTNrq   r   r   r   r   rz   ;  s
   rz   c                   @   s$   e Zd ZddgZdZdZdZdZdS )Operar[   r   r6   r{   TNrq   r   r   r   r   r|   G  s
   r|   c                   @   s(   e Zd ZddgZdZdZdZdZdZdS )Elinksrt   ru   r6   rv   rw   FN)	r   r	   r
   ro   rl   rm   rn   rc   re   r   r   r   r   r}   Q  s   r}   c                   @   s   e Zd ZdddZdS )	Konquerorr   Tc                 C   s   t d| |dkrd}nd}tj}ztjd||gd|||d}W n tyT   Y n0 |  dS z tjdd	|gd|||dd
}W n ty   Y n0 | d u rdS z tjdd|gd|||dd
}W n ty   Y dS 0 | d u S d S )NrA   r-   ZnewTabZopenURL	kfmclientT)rK   r]   r^   r_   	konquerorz--silentr\   kfmz-dF)rL   rM   rO   rd   rP   rR   rQ   rX   )r9   r&   r'   r(   rj   devnullrU   r   r   r   r   f  sB    


zKonqueror.openN)r   TrY   r   r   r   r   r~   _  s   r~   c                   @   s&   e Zd Zdd Zdd Zd
ddZd	S )Grailc                 C   s   dd l }dd l}dd l}dd l}tj| d}|t	 d }tj|
||
|d }| |}|std S ||j|j}	|D ]P}
z|	|
 W n4 ty   zt|
 W n ty   Y n0 Y q0 |	  S qd S )Nr   z.grail-unixz-*)globpwdsockettempfiler0   r1   joinZ
gettempdirgetpwuidgetuidescapeZAF_UNIXZSOCK_STREAMZconnectrR   unlink)r9   r   r   r   r   ZtempdiruserfilenameZmaybessfnr   r   r   _find_grail_rc  s,    
zGrail._find_grail_rcc                 C   s&   |   }|sdS || |  dS )Nr   r   )r   sendclose)r9   rj   r   r   r   r   _remote  s    
zGrail._remoter   Tc                 C   s2   t d| |r | d| }n| d| }|S )NrA   zLOADNEW zLOAD )rL   rM   r   )r9   r&   r'   r(   okr   r   r   r     s
    z
Grail.openN)r   T)r   r	   r
   r   r   r   r   r   r   r   r     s   r   c                  C   s  t drtdd td dtjv r>t dr>tdd td dtjv rbt drbtdd td dtjv rt drtdttd t drtdd td dD ]} t | rt| d t|  qd	D ]} t | rt| d t|  qt d
rtd
ttd
 nt dr"tdttd dD ]"} t | r&t| d t	|  q&t drftdd td dD ]"} t | rjt| d t
|  qjt drtdd td t drtdd td t drtdtd  d S )Nzxdg-openZGNOME_DESKTOP_SESSION_IDz	gvfs-openz
gnome-openZKDE_FULL_SESSIONr   zx-www-browser)firefoxZ	iceweaselZiceape	seamonkey)zmozilla-firefoxzmozilla-firebirdfirebirdmozillanetscaper   r   )ZgaleonZepiphanyZ	skipstone)zgoogle-chromechromeZchromiumzchromium-browseroperaZmosaicZgrail)r.   r/   r   r    r0   environr~   rp   rr   rx   rz   r|   r   )r$   r   r   r   register_X_browsers  sD    



r   c                  C   s,  g a tjdkrNtdd td tdd td tdd td tdd td tjd d dkrtd	t tjtj	
d
dd} dddddd| fD ]}t|rt|d t| qntj	
dstj	
dr$z(d }tj|tjd}|  }W n ttjttfy   Y n0 |at  tj	
drtdrNtdd td tdrjtdd td tdrtdd td tdrtdd td tdrtdd td dtj	v r(tj	d tj}|  |D ]>}|dkrt|dd}|d  d u rt|d t|dd qd S )!NdarwinMacOSXdefaultr   r   ZsafarirI   rJ   zwindows-defaultZPROGRAMFILESzC:\Program FileszInternet Explorer\IEXPLORE.EXEr   r   r   r   r   ZDISPLAYZWAYLAND_DISPLAYz$xdg-settings get default-web-browser)r_   ZTERMzwww-browserZlinksZelinksZlynxZw3mZBROWSERr6   Tr   r   )r   rL   rN   r   MacOSXOSAScriptWindowsDefaultr0   r1   r   r   r   r.   r/   r    r   rO   Zcheck_outputrd   decodestripFileNotFoundErrorZCalledProcessErrorPermissionErrorNotADirectoryErrorr   r   r!   r}   pathsepreverser#   )Ziexplorer$   r4   Z
raw_resultresultZuserchoicesrT   r   r   r   r     sX    



r   rI   rJ   c                   @   s   e Zd ZdddZdS )r   r   Tc                 C   s8   t d| zt| W n ty.   Y dS 0 dS d S )NrA   FT)rL   rM   r0   Z	startfilerR   r<   r   r   r   r   X  s    zWindowsDefault.openN)r   TrY   r   r   r   r   r   W  s   r   r   c                   @   s   e Zd Zdd ZdddZdS )	r   c                 C   s
   || _ d S r7   )r   r8   r   r   r   r:   s  s    zMacOSX.__init__r   Tc           	      C   s   t d| d|vrd| }tt|}| jdkrDd|dd }n<| jdkrTd	}nd
|d  }d|dd }d| j||f }tdd}|d u rdS || |	 }| S )NrA   :zfile:r   open location "%s""%22ZOmniWebr6   ztoWindow %dr   zOpenURL "%s"ztell application "%s"
                                activate
                                %s %s
                            end tell	osascriptwF)
rL   rM   rb   boolr   rD   r0   popenwriter   )	r9   r&   r'   r(   scriptZtoWindowr4   osapiperg   r   r   r   r   v  s&    



zMacOSX.openN)r   TrV   r   r   r   r   r   i  s   
r   c                   @   s   e Zd Zdd ZdddZdS )	r   c                 C   s
   || _ d S r7   )_namer8   r   r   r   r:     s    zMacOSXOSAScript.__init__r   Tc                 C   sb   | j dkrd|dd }nd| j |ddf }tdd}|d u rJdS || | }| S )	Nr   r   r   r   z
                   tell application "%s"
                       activate
                       open location "%s"
                   end
                   r   r   F)r   rD   r0   r   r   r   )r9   r&   r'   r(   r   r   rg   r   r   r   r     s    

zMacOSXOSAScript.openN)r   TrV   r   r   r   r   r     s   r   c            	   
   C   s   dd l } dtjd  }z|  tjdd  d\}}W nL | jy } z2t|tjd t|tjd td W Y d }~n
d }~0 0 d}|D ]"\}}|dkrd}q|dkrd}qt|dkrt|tjd td |d }t|| td	 d S )
Nr   zDUsage: %s [-n | -t] url
    -n: open new window
    -t: open new tabr   Zntd)filery   z-tr-   )	getoptrL   argverrorprintr_   exitlenr   )	r   ZusageZoptsr>   msgZnew_winoar&   r   r   r   main  s(     

r   __main__)N)N)r   T)*r0   r   r.   rL   rO   Z	threading__all__	Exceptionr   RLockr   r   r   r   r   r   r   r   r   r#   objectr5   r!   r    rZ   rp   rr   rx   rz   ZChromiumr|   r}   r~   r   r   r   rN   r   r   r   r   r   r   r   r   r   <module>   sP   
"
"O

	
56AK/
