ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     U
    e5d^                     @   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ddddddg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d/ d0krG d1d2 d2eZ%ej$d3krG d4d5 d5eZ&G d6d7 d7eZ'd8d9 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   "/usr/lib64/python3.8/webbrowser.pyr      s   F	preferredc             	   C   sZ   t L td krt  ||gt|  < |s4trB| tkrBtd|  n
t|  W 5 Q R X d S )Nr   )_lock	_tryorderregister_standard_browsers	_browserslower_os_preferred_browserinsertappend)nameklassinstancer   r   r   r   r      s    c              	   C   s   t d kr&t t d krt  W 5 Q R X | d k	r6| g}nt }|D ]}d|krt|}|d dkrtt|d d   S t|  S q>zt|  }W n t	k
r   t
|}Y nX |d d k	r|d   S |d d k	r>|d    S q>t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,    
Tc              	   C   sP   t d kr&t t d krt  W 5 Q R X 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    	c                 C   s
   t | dS Nr   r   r&   r   r   r   r   Z   s    c                 C   s
   t | dS N   r*   r+   r   r   r   r   a   s    c                C   s   |   d }t|sd d gS tj|}zt|  }W n tk
rV   d d g Y S X |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                    s|   t d  | jg fdd| jD  }z8t jd d dkrHt|}ntj|dd}|  W S  tk
rv   Y dS X 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 kW S  tk
rz   Y dS X 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	k
r   Y dS X n&| jr|	
 d k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   s4    

 

 

zUnixBrowser._invoker   c                    s   t d |dkr| j nB|dkr,| j n2|dkrN| jd k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     s      Tc                    s   g | ]}| d  qS rB   rC   rE   r+   r   r   rH     s     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   rn   rk   rl   rm   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
   rn   rk   rl   rm   rc   r   r   r   r   ro     s
   ro   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   rn   rk   rl   rm   rc   r   r   r   r   rq   &  s   rq   c                   @   s(   e Zd ZddgZddgZdZdZdZdS )	Galeonrr   r6   r[   r   -nz-wTN)r   r	   r
   ra   rn   rk   rl   rc   r   r   r   r   rw   1  s
   rw   c                   @   s$   e Zd ZddgZdZdZdZdZdS )Chromer[   r   r6   --new-windowTNrp   r   r   r   r   ry   ;  s
   ry   c                   @   s$   e Zd ZddgZdZdZdZdZdS )Operar[   r   r6   rz   TNrp   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 )Elinksrs   rt   r6   ru   rv   FN)	r   r	   r
   rn   rk   rl   rm   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k
rV   Y nX |  dS z tjdd	|gd|||dd
}W n tk
r   Y nX | d krdS z tjdd|gd|||dd
}W n tk
r   Y dS X | d k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  sN      
  
  
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 ]T}
z|	|
 W n8 tk
r   zt|
 W n tk
r   Y nX Y qX |	  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kr>t dr>tdd td dtjkrbt drbtdd td dtjk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}   ro   rq   rw   ry   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k
r   Y nX |at  tj	
drtdrPtdd td tdrlt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	kr*tj	d tj}|  |D ]>}|dkrt|dd}|d  d k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     s\    

  

r   rI   rJ   c                   @   s   e Zd ZdddZdS )r   r   Tc                 C   s:   t d| zt| W n tk
r0   Y dS X 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|k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 k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 k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 nJ | jk
r~ } z*t|tjd t|tjd td W 5 d }~X Y nX 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)filerx   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   ro   rq   rw   ry   ZChromiumr{   r|   r}   r   r   r   rN   r   r   r   r   r   r   r   r   r   <module>   sP   
"
"O

	
56AK/
