+
     wig  c                   s   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt. R5Ot ! R R]4      t]P                  ! 4       t
/ tRsRsR6RR/R lltR6R ltR7R ltR	 tR
 tRR/R lt ! R R4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t]t ! R R]4      t ! R R]4      t ! R R]4      t ! R  R!]4      tR" t R# t!]PD                  R$,          R%8X  d    ! R& R']4      t#]PD                  R(8X  d    ! R) R*]4      t$]PD                  R+8X  d$   ^ R,I%H&t& ]&'       d   ^ R-I'H(t(H)t)H*t*  ! R. R/]4      t+R0 R1 lt,R6R2 R3 llt-].R48X  d
   ]-! 4        R# R# )8    NErrorc                   s    ] tR t^tRtR# )r    N)__name__
__module____qualname____firstlineno____static_attributes__r       #/usr/lib64/python3.14/webbrowser.pyr   r      s    r   	preferredFc                sL   \         ;_uu_ 4        \        f   \        4        W.\        V P	                  4       &   V'       g   \
        '       d&   V  R2\
        8X  d   \        P                  ^ V 4       M\        P                  V 4       R R R 4       R #   + '       g   i     R # ; i)Nz.desktop)_lock	_tryorderregister_standard_browsers	_browserslower_os_preferred_browserinsertZappend)nameZklassinstancer
   s   &&&$r	   registerr      sj    	&(#("3	$**,
 ..dV83DH]3]Q%T" 
s   >B:BB#	c                 s0   \         f*   \        ;_uu_ 4        \         f   \        4        R R R 4       V e   V .pM\         pV F  pRV9   dB   \        P                  ! V4      pVR,          R8X  d   \        VR R 4      u # \        V4      u #  \        VP                  4       ,          pV^,          e   V^,          u # V^ ,          f   K  V^ ,          ! 4       u # 	  \        R4      h  + '       g   i     L; i  \         d    \        T4      p Lki ; i)N%sZ&z!could not locate runnable browseri)r   r   r   shlexsplitBackgroundBrowserGenericBrowserr   r   KeyError_synthesizer   )ZusingZalternativesbrowsercommands   &   r	   getr   (   s    U *,  w 7?kk'*Gr{c!("66%g../#GMMO4 qz%qz!'qz|##  $ 3
443 U&  /%g./s   C)C<)C9	<DDc                 s    \         f*   \        ;_uu_ 4        \         f   \        4        R R R 4       \          F)  p\        V4      pVP	                  WV4      '       g   K(   R# 	  R#   + '       g   i     LE; i)NTF)r   r   r   r   open)urlnew	autoraiser   r   s   &&&  r	   r   r   K   sV     U *,  d)<<),,   Us   A''A7	c                 s    \        V ^4      #    r   r       &r	   open_newr(   b       
 Q<r   c                 s    \        V ^4      #    r%   r&   r'   r	   open_new_tabr,   j   r)   r   c                s   V P                  4       ^ ,          p\        P                  ! V4      '       g   RR.# \        P                  P                  V4      p \        VP                  4       ,          pT^,          pT'       dq   TP                  4       TP
                  8X  dR   ^ RI	pTP                  T4      pYn
        \        P                  P                  T 4      Tn        \        T RYQR7       RT.# RR.#   \         d    RR.u # i ; i)r    N)r   r
   )r   shutilwhichospathbasenamer   r   r   copyr   r   )r   r
   cmdr   r   Z
controllerr2   s   &$     r	   r   r   r   s     --/!
C<<d|77C DDJJL) Jdjjlj&9&99YYz*
! gg..w7
$Ij!!$<  d|s   C8 8D
	D
c                   sV   a  ] tR t^t o R.tR	R ltR
R ltR tR t]	R 4       t
RtV tR# )BaseBrowserr   c                s    Wn         Wn        R # N)r   r1   selfr      &&r	   __init__ZBaseBrowser.__init__   s    	r   c                s    \         hr5   )ZNotImplementedErrorr7   r    r!   r"      &&&&r	   r   ZBaseBrowser.open   s    !!r   c                s&    V P                  V^4      # r#   r%   r7   r    r8   r	   r(   ZBaseBrowser.open_new       yya  r   c                s&    V P                  V^4      # r*   r%   r<   r8   r	   r,   ZBaseBrowser.open_new_tab   r=   r   c                s    V '       d6   V P                  4       P                  R 4      '       d   \        RV  24      hR# R# )Z-zInvalid URL: N)ZlstripZ
startswithZ
ValueErrorr&   r'   r	   
_check_urlZBaseBrowser._check_url   s6     3::<**3//}SE233 03r   )r1   r   N) r    T)r   r   r   r   argsr9   r   r(   r,   Zstaticmethodr>   r   __classdictcell____classdict__   @r	   r4   r4      s6      6D"!! 4 4r   r4   c                   s0   a  ] tR t^t o R tRR ltRtV tR# )r   c                s    \        V\        4      '       d   Wn        R .V n        MV^ ,          V n        VR,          V n        \        P
                  P                  V P                  4      V n        R# )r   :r$   NNN)
isinstancestrr   rA   r/   r0   r1   r6   r8   r	   r9   ZGenericBrowser.__init__   sO    dC  IDI QDIRDI((3r   c                s   \         P                  ! R V4       V P                  V4       V P                  .V P                   Uu. uF  pVP                  RV4      NK  	  up,           p \         P                  R,          R8X  d   \        P                  ! V4      pM\        P                  ! VRR7      pVP                  4       '       * # u upi   \         d     R# i ; i)webbrowser.openr   Ni   NwinT)	close_fdsF)sysauditr>   r   rA   replaceplatform
subprocessPopenwaitOSErrorr7   r    r!   r"   argcmdlinep   &&&&   r	   r   ZGenericBrowser.open   s    		#S)99+,0II!7,5S "%T3!7,5!7 7	||B5($$W-$$W=vvx<!7  		s   C(AC CC)rA   r1   r   Nr@   )r   r   r   r   r9   r   r   rB   rC   rE   r	   r   r      s     4 r   r   c                   s*   a  ] tR t^t o RR ltRtV tR# )r   c                s   V P                   .V P                   Uu. uF  pVP                  R V4      NK  	  up,           p\        P                  ! RV4       V P                  V4        \        P                  R,          R8X  d   \        P                  ! V4      pM\        P                  ! VRRR7      pVP                  4       RJ # u upi   \         d     R# i ; i)r   rH   rI   rJ   T)rK   start_new_sessionNF)r   rA   rN   rL   rM   r>   rO   rP   rQ   pollrS   rT   rX   r	   r   ZBackgroundBrowser.open   s    99+,0II!7,5S "%T3!7,5!7 7		#S)	||B5($$W-$$W7;=668t##!7  		s   C(AC CCr   Nr@   r   r   r   r   r   r   rB   rC   rE   r	   r   r      s      r   r   c                   sT   a  ] tR t^t o RtRtRtRR.tRtRt	Rt
R	R ltR
R ltRtV tR# )UnixBrowserNFT%actionr   c           	     s   . pV'       d<   V P                   '       d*   \        V4      pV P                   V,          pV'       d   V.pV P                  .V,           V,           pV'       g   V P                  '       d   \        P
                  pMR p\        P                  ! TRTV P                  ;'       d    T;'       g    R VRR7      p	V'       d    V	P                  ^4      p
V
'       * # V P                  '       d   V	P                  4       f   R# R# V	P                  4       '       * #   \        P                   d     R# i ; i)NTrK   stdinstdoutstderrrY   F)
raise_optsZintr   
backgroundrP   DEVNULLrQ   redirect_stdoutrR   ZTimeoutExpiredrZ   )r7   rA   Zremoter"   r    Z	raise_optZoptrV   ZinoutrW   rcs   &&&&&      r	   _invokeZUnixBrowser._invoke   s    	doooII//),C E	99+	)D0T___&&E EWE%)%9%9%C%Ce%K%Kt$)TC VVAYv ___vvxvvx< ,, s   D& &D?>D?c                s   \         P                  ! R V4       V P                  V4       V^ 8X  d   V P                  pMQV^8X  d   V P                  pM=V^8X  d)   V P
                  f   V P                  pMV P
                  pM\        RV 24      hV P                   Uu. uF%  pVP                  RV4      P                  RV4      NK'  	  ppV Uu. uF  qU'       g   K  VNK  	  ppV P                  VRW14      pV'       g>   V P                   Uu. uF  qUP                  RV4      NK  	  ppV P                  VRR4      # R# u upi u upi u upi )rH   z8Bad 'new' parameter to open(); expected 0, 1, or 2, got r   r]   TF)rL   rM   r>   remote_actionremote_action_newwinremote_action_newtabr   remote_argsrN   rg   rA   )r7   r    r!   r"   actionrU   rA   Zsuccesss   &&&&    r	   r   ZUnixBrowser.open  s8   		#S)!8''FAX..FAX((02222 4475: ; ;  ++-+C D#&..y&A+ 	 -#+tst+,,tT9:6:ii@isKKc*iD@<<eU33-+ As   +D=	EEEr   r5   r@   )r   r   r   r   rb   rc   re   rk   rh   ri   rj   rg   r   r   rB   rC   rE   r	   r\   r\      sC      JJO d#KM" H r   r\   c                   s.    ] tR tRtRR.tRtRtRtRtRt	R	# )
Mozillai/  r]   r   r?   z-new-windowz-new-tabTr   N
r   r   r   r   rk   rh   ri   rj   rc   r   r   r   r	   rm   rm   /  s$     d#KM(%Jr   rm   c                   s2    ] tR tRtRR.tRR.tRtRtRtR	t	R
# )Epiphanyi9  z-noraiser?   r]   r   -nz-wTr   N)
r   r   r   r   rb   rk   rh   ri   rc   r   r   r   r	   ro   ro   9  s(     b!Jd#KMJr   ro   c                   .    ] tR tRtRR.tRtRtRtRtRt	R# )	ChromeiC  r]   r   r?   --new-windowTr   Nrn   r   r   r	   rr   rr   C  $     d#KM)Jr   rr   c                   rq   )	OperaiP  r]   r   r?   rs   Tr   Nrn   r   r   r	   ru   ru   P  rt   r   ru   c                   s2    ] tR tRtRR.tRtRtRtRtRt	Rt
R	# )
ElinksiZ  z-remotezopenURL(%s%action)r?   z,new-windowz,new-tabFr   N)r   r   r   r   rk   rh   ri   rj   rc   re   r   r   r   r	   rv   rv   Z  s,     23KM(%J Or   rv   c                   *   a  ] tR tRt o RR ltRtV tR# )	Konquerorih  c           	     s   \         P                  ! R V4       V P                  V4       V^8X  d   RpMRp\        P                  p \        P
                  ! RWA.RVWUR7      pVP                  4        R#   \         d     Mi ; i \        P
                  ! RRT.RTYURR7      pTP                  4       f   R# M  \         d     Mi ; i \        P
                  ! R
RT.RTYURR7      pTP                  4       R	J #   \         d     R# i ; i)rH   ZnewTabZopenURL	kfmclientT)rK   r_   r`   ra   	konquerorz--silentr^   Nkfmz-dF)	rL   rM   r>   rP   rd   rQ   rR   rS   rZ   )r7   r    r!   r"   rl   ZdevnullrW   rX   r	   r   ZKonqueror.openo  s#   		#S)!8FF$$
	  +v!;+/w(/AA FFH  			  +z3!?+/w(/379A vvx  	  			$  %s!3+/w(/379A 668t##  		s6   A4 4BBB9 9CCC; ;D
	D
r   Nr@   r[   rC   rE   r	   rx   rx   h  s     ,$ ,$r   rx   c                   rq   )	Edgei  r]   r   r?   rs   Tr   Nrn   r   r   r	   r|   r|     rt   r   r|   c                  s   \         P                  ! R 4      '       d   \        R R\        R 4      4       \         P                  ! R4      '       d   \        RR\        . RO4      4       \        P
                  ! RR4      P                  R4      p RV 9   g   R\        P                  9   d3   \         P                  ! R4      '       d   \        RR\        R4      4       R	V 9   g   R
\        P                  9   d7   \         P                  ! R4      '       d   \        R\        \        R4      4       \         P                  ! R4      '       d   \        RR\        R4      4       R F7  p\         P                  ! V4      '       g   K!  \        VR\        V4      4       K9  	  \         P                  ! R4      '       d   \        R\        \        R4      4       M6\         P                  ! R4      '       d   \        R\        \        R4      4       \         P                  ! R4      '       d   \        RR\        R4      4       R F7  p\         P                  ! V4      '       g   K!  \        VR\        V4      4       K9  	  \         P                  ! R4      '       d   \        RR\        R4      4       \         P                  ! R4      '       d   \        RR\        R4      4       R# R# )zxdg-openNgioZXDG_CURRENT_DESKTOPr?   :ZGNOMEZGNOME_DESKTOP_SESSION_IDz	gvfs-openZKDEZKDE_FULL_SESSIONry   zx-www-browserr{   rz   Zepiphanyoperamicrosoft-edge)r}   r   z--r   )firefoxZ	iceweasel	seamonkeyzmozilla-firefoxmozilla)zgoogle-chromechromeZchromiumzchromium-browser)r-   r.   r   r   r/   Zgetenvr   environrx   rm   ro   rr   ru   r|   )Zxdg_desktopr   s     r	   register_X_browsersr     s    ||JT#4Z#@A ||E/0KLM))126<<SAK 
K		#rzz	1LL%%d$5k$BC 
+		rzz	)LL%%i;)?@ ||O$$$(9/(JK<<  WdGG$45 ||E	9U#34	k	"	"i;)?@ ||JT8J#78 O<<  WdF7O4 O
 ||G$g/||$%%!4.>)?@ &r   c                  s
  a . s \        P                  R 8X  dY   \        RR\	        R4      4       \        RR\	        R4      4       \        RR\	        R4      4       \        RR\	        R4      4       \        P                  R8X  d   \        R	R\        4       R
R7       \        P                  R8X  d   \        RR\        R4      4       \        P                  R,          R8X  Ed   \        R\        4       \        P                  P                  \        P                  P                  RR4      R4      p \        P                  P                  \        P                  P                  RR4      R4      pRRRRRW3 F7  p\        P                  ! V4      '       g   K!  \        VR\        V4      4       K9  	  \        P                  ! R4      '       d   \        RR\        R4      4       EM\        P                  R 8w  d   \        P                  P                  R4      '       g&   \        P                  P                  R4      '       db    RP!                  4       p\"        P$                  ! V\"        P&                  R7      pVP)                  4       P+                  4       pVs\7        4        \        P                  P                  R4      '       d   \        P                  ! R 4      '       d   \        R R\9        R 4      4       \        P                  ! R!4      '       d   \        R!R\9        R!4      4       \        P                  ! R"4      '       d   \        R"R\;        R"4      4       \        P                  ! R#4      '       d   \        R#R\9        R#4      4       \        P                  ! R$4      '       d   \        R$R\9        R$4      4       R%\        P                  9   Ed+   \        P                  R%,          P!                  \        P<                  4      pVP?                  4        V F  o\@        ;QJ d    V3R& lR' 4       F  '       d   K   R(M	  R
M! V3R& lR' 4       4      '       da    \B        SPE                  4       ,          p\G        V^,          \8        4      '       g'   \         PI                  ^ SPE                  4       4       K   SR)8w  g   K  \M        SR
R7      pV^,          e   K  \        SR\9        S4      R
R7       K  	  R# R#   \.        \"        P0                  \2        \4        3 d     ELi ; i  \J         d     L|i ; i)*darwinZMacOSXNdefaultr   zgoogle chromer   ZsafariiosZ
iosbrowserT)r
   Z
serenityosZBrowserrI   rJ   zwindows-defaultzPROGRAMFILES(x86)zC:\Program Files (x86)z%Microsoft\Edge\Application\msedge.exeZPROGRAMFILESzC:\Program Filesr   r   r   zMicrosoftEdge.exer   ZDISPLAYZWAYLAND_DISPLAYz$xdg-settings get default-web-browser)ra   ZTERMzwww-browserZlinksZelinksZlynxZw3mZBROWSERc              3   s,   <"   T F	  qS9  x  K  	  R # 5ir5   r   )Z.0ZxrV   s   & r	   Z	<genexpr>Z-register_standard_browsers.<locals>.<genexpr><  s     3UG#Us   z 	Fr?   )'r   rL   rO   r   MacOSXOSAScript
IOSBrowserr   WindowsDefaultr/   r0   Zjoinr   r   r-   r.   r|   r   rP   Zcheck_outputrd   ZdecodeZstripr   ZFileNotFoundErrorZCalledProcessErrorZPermissionErrorZNotADirectoryErrorr   r   rv   ZpathsepZreverseZallr   r   rF   r   r   r   )	Zedge64Zedge32r   r3   Z
raw_resultZresultZuserchoicesr   rV   s	           @r	   r   r     s   I
||x4!;<4!ABD/)"<=4!:; ||utZ\TB
|||#D"3I">?
||B5 "N3 bjjnn-@B[\HJ bjjnn^=PQHJ!;	81G||G$$$(9'(BC1 <<+,,%tT2E-FG <<8#	)B)BbjjnnUfFgFg	/<BBD'44SASAST
#**,224 )/%! ::>>&!!||M**n].KL||G$$$w(?@||H%%4)9:||F##~f'=>||E""nU&;< BJJjj+11"**= #Gs3U3sss3U333!'8G
 &gaj.AA!((GMMO<  B "}!'T:q6>WdN7,CtT# # 9 &z'D'D#%79 P   s%   AT	 'T5	%T21T25UUrI   rJ   c                   rw   )r   iV  c                s    \         P                  ! R V4       V P                  V4        \        P                  ! V4       R#   \
         d     R# i ; i)rH   TF)rL   rM   r>   r/   Z	startfilerS   r:   r;   r	   r   ZWindowsDefault.openW  sI    II'-OOC S!    s   A AAr   Nr@   r[   rC   rE   r	   r   r   V  s     
	 
	r   r   r   c                   s@   a a ] tR tRt oRV 3R lltRR ltRtVtV ;t# )r   ih  c                s&   < \         SV `  V4       R # r5   )Zsuperr9   )r7   r   	__class__s   &&r	   r9   ZMacOSXOSAScript.__init__i  s    GT"r   c                s   \         P                  ! R V4       V P                  V4       VP                  RR4      pV P                  R8X  d@   VP                  R4      w  rEpV'       d   VP                  4       R9   d   RV R2pMRV R2pMRV P                   R	V R
2p\        P                  ! RR4      pVf   R# VP                  V4       VP                  4       p	V	'       * # )rH   Z"z%22r   r~   zopen location "u2  
                        use framework "AppKit"
                        use AppleScript version "2.4"
                        use scripting additions

                        property NSWorkspace : a reference to current application's NSWorkspace
                        property NSURL : a reference to current application's NSURL

                        set http_url to NSURL's URLWithString:"https://python.org"
                        set browser_url to (NSWorkspace's sharedWorkspace)'s ¬
                            URLForApplicationToOpenURL:http_url
                        set app_path to browser_url's relativePath as text -- NSURL to absolute path '/Applications/Safari.app'

                        tell application app_path
                            activate
                            open location "z7"
                        end tell
                    z&
                   tell application "zH"
                       activate
                       open location "z,"
                   end
                   Z	osascriptZwF>   ZhttpZhttps)rL   rM   r>   rN   r   Z	partitionr   r/   ZpopenZwriteZclose)
r7   r    r!   r"   ZprotoZ_sepZ_restZscriptZosapiperf   s
   &&&&      r	   r   ZMacOSXOSAScript.openl  s    II'-OOC ++c5)CyyI%%(]]3%7"UEKKM->>.se15F
", -05 1F&&&*ii[ 1''*e , hh{C0GMM&!B6Mr   r   )r   r@   )	r   r   r   r   r9   r   r   rB   Z__classcell__)r   rD   s   @@r	   r   r   h  s     	#-	 -	r   r   r   )objc)c_void_pc_char_pc_ulongc                   rw   )r   i  c                s
   \         P                  ! R V4       V P                  V4       \        f   R# \        \        P
                  n        \        P                  ! R4      p\        P                  ! R4      p\        \        \        \        .\        P
                  n        \        P
                  ! VVVP                  R4      ^4      p\        P                  ! R4      p\        P                  ! R4      p\        \        \        .\        P
                  n        \        P
                  ! WxV4      p	\        P                  ! R4      p
\        P                  ! R	4      p\        \        .\        P
                  n        \        P
                  ! W4      p\        P                  ! R
4      p\        \        \        \        \        .\        P
                  n        R\        P
                  n        \        P
                  ! WV	RR4       R# )rH   NFs   NSStrings   stringWithCString:encoding:zutf-8s   NSURLs   URLWithString:s   UIApplications   sharedApplications"   openURL:options:completionHandler:T)rL   rM   r>   r   r   Zobjc_msgSendZrestypeZobjc_getClassZsel_registerNamer   r   ZargtypesZencode)r7   r    r!   r"   ZNSStringZconstructorZ
url_stringZNSURLZurlWithString_Zns_urlZUIApplicationZsharedApplicationZ
shared_appZopenURL_s   &&&&          r	   r   ZIOSBrowser.open  s{   II'-OOC | )1D% ))+6H//0NOK*2Hh)PD&**

7#	J &&x0E!223DEN*2Hh)GD&&&ujIF
 !../?@M $ 5 56J K*2H)=D&**=LJ ,,-RSH(Hh*D& )-D%jFD$Gr   r   Nr@   r[   rC   rE   r	   r   r     s     5	 5	r   r   c                H    V ^8  d   QhR\         \        ,          R,          /# r+   arg_listNZlistrG   Zformat   "r	   __annotate__r     s      cT) r   c           
      s    ^ RI pVP                  RRR7      pVP                  RRR7       VP                  4       pVP                  RR	R
^^ RRR7       VP                  RRR
^^ RRR7       VP	                  V 4      pV# )r    NzOpen URL in a web browser.T)ZdescriptionZcolorr    zURL to open)helprp   rs   Zstore_constnew_winzopen new window)rl   Zconstr   Zdestr   z-tz	--new-tabzopen new tab)argparseZArgumentParserZadd_argumentZadd_mutually_exclusive_group
parse_args)r   r   ZparserZgrouprA   s   &    r	   r   r     s    $$0 % F M2//1E	t^M	-  / 
t[	*  , X&DKr   c                r   r   r   r   r   r	   r   r     s      49t# r   c                 sr    \        V 4      p\        VP                  VP                  4       \	        R 4       R# )ZN)r   r   r    r   Zprint)r   rA   s   & r	   mainr     s%    hD4<< 	$Kr   Z__main__)r   r   r(   r,   r   r   r5   r@   )/r/   r   r-   rL   rP   Z	threadingZ__all__Z	Exceptionr   ZRLockr   r   r   r   r   r   r   r(   r,   r   r4   r   r   r\   rm   ro   rr   ZChromiumru   rv   rx   r|   r   r   rO   r   r   Z_ios_supportr   Zctypesr   r   r   r   r   r   r   r   r   r	   <module>r      s   
   
  
J	I 	 			 #e # 5F.e D4 42[ : (N+ Nbk { [  K [ 3$ 3$l; "7AtcUX <<u " <<81+ 1l <<5!666[ 6r( zF r   