ó
    ã¾yjÎ`  ã                   óî  • S r SSKrSSKrSSKrSSKrSSKrSSKr/ SQr " S S\5      r	\R                  " 5       r0 rSqSqS6SS.S jjrS6S	 jrS7S
 jrS rS rSS.S jr " S S5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r\r " S S\5      r " S S\5      r " S  S!\5      r " S" S#\5      r S$ r!S% r"\RF                  SS& S':X  a   " S( S)\5      r$\RF                  S*:X  a   " S+ S,\5      r%\RF                  S-:X  a"  SS.K&J'r'  \'(       a
  SS/K(J)r)J*r*J+r+   " S0 S1\5      r,S2\-\.   S-  4S3 jr/S6S2\-\.   S-  4S4 jjr0\1S5:X  a  \0" 5         gg)8z?Interfaces for launching and remotely controlling web browsers.é    N)ÚErrorÚopenÚopen_newÚopen_new_tabÚgetÚregisterc                   ó   • \ rS rSrSrg)r   é   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    Ú!/usr/lib/python3.13/webbrowser.pyr   r      s   † Úr   r   F©Ú	preferredc                ó,  • [            [        c
  [        5         X/[        U R	                  5       '   U(       d  [
        (       a$  U  S3[
        :X  a  [        R                  SU 5        O[        R                  U 5        SSS5        g! , (       d  f       g= f)zRegister a browser connector.Nz.desktopr   )Ú_lockÚ	_tryorderÚregister_standard_browsersÚ	_browsersÚlowerÚ_os_preferred_browserÚinsertÚappend)ÚnameÚklassÚinstancer   s       r   r   r      sf   € æ	ÜÑÜ&Ô(Ø#(Ð"3Œ	�$—*‘*“,Ñö
 ×.Ò.°d°V¸8Ð3DÔH]Ó3]Ü×Ñ˜Q Õ%ä×Ñ˜TÔ"÷ 
�Žús   ‡A5BÂ
Bc                 óÜ  • [         c   [           [         c
  [        5         SSS5        U b  U /nO[         nU H|  nSU;   a<  [        R                  " U5      nUS   S:X  a  [        USS 5      s  $ [        U5      s  $  [        UR                  5          nUS   b  US   s  $ US   c  Mr  US   " 5       s  $    [        S5      e! , (       d  f       N¨= f! [         a    [        U5      n NVf = f)zCReturn a browser launcher instance appropriate for the environment.Nú%séÿÿÿÿÚ&é   r   z!could not locate runnable browser)r   r   r   ÚshlexÚsplitÚBackgroundBrowserÚGenericBrowserr   r   ÚKeyErrorÚ_synthesizer   )ÚusingÚalternativesÚbrowserÚcommands       r   r   r   )   sè   € äÑÞÜÑ Ü*Ô,÷ ð ÑØ�w‰ä ˆÛˆØ�7‹?ä—k’k 'Ó*ˆGØ�r‰{˜cÓ!Ü(¨°°"¨Ó6Ò6ä% gÓ.Ò.ð/Ü# G§M¡M£OÑ4�ð �q‰zÑ%Ø˜q‘zÒ!Ø˜‘Ó'Ø˜q’z“|Ò#ñ#  ô$ Ð3Ó
4Ð4÷3 �Uûô& ó /Ü% gÓ.’ð/ús   ŽCÁ=CÃ
CÃC+Ã*C+c                 óÖ   • [         c   [           [         c
  [        5         SSS5        [          H'  n[        U5      nUR	                  XU5      (       d  M'    g   g! , (       d  f       N@= f)aZ  Display url using the default browser.

If possible, open url in a location determined by new.
- 0: the same browser window (the default).
- 1: a new browser window.
- 2: a new browser page ("tab").
If possible, autoraise raises the window (the default) or not.

If opening the browser succeeds, return True.
If there is a problem, return False.
NTF)r   r   r   r   r   )ÚurlÚnewÚ	autoraiser   r.   s        r   r   r   L   sT   € ô ÑÞÜÑ Ü*Ô,÷ ÷ ˆÜ�d“)ˆØ�<‰<˜ )×,Ó,Ùñ ð ÷ �Uús   ŽAÁ
A(c                 ó   • [        U S5      $ )zmOpen url in a new window of the default browser.

If not possible, then open url in the only browser window.
r%   ©r   ©r1   s    r   r   r   c   ó   € ô
 ��Q‹<Ðr   c                 ó   • [        U S5      $ )z}Open url in a new page ("tab") of the default browser.

If not possible, then the behavior becomes equivalent to open_new().
é   r5   r6   s    r   r   r   k   r7   r   c                óô  • U R                  5       S   n[        R                  " U5      (       d  SS/$ [        R                  R                  U5      n [        UR                  5          nUS   nU(       al  UR                  5       UR
                  :X  aN  SSK	nUR                  U5      nXl
        [        R                  R                  U 5      Ul        [        U SXQS9  SU/$ SS/$ ! [         a    SS/s $ f = f)a£  Attempt to synthesize a controller based on existing controllers.

This is useful to create a controller when a user specifies a path to
an entry in the BROWSER environment variable -- we can copy a general
controller to operate using a specific installation of the desired
browser in this way.

If we can't create a controller in this way, or if there is no
executable for the requested browser, return [None, None].

r   Nr%   )r    r   )r'   ÚshutilÚwhichÚosÚpathÚbasenamer   r   r*   Úcopyr   r   )r.   r   Úcmdr   r/   Ú
controllerr@   s          r   r+   r+   s   sà   € ð �-‰-‹/˜!Ñ
€CÜ�<Š<˜×ÑØ�dˆ|ÐÜ�7‰7×Ñ˜CÓ €DðÜ˜DŸJ™J›LÑ)ˆð ˜‘€JÞ�d—j‘j“l j×&9Ñ&9Ó9ÛØ—Y‘Y˜zÓ*ˆ
Ø!ŒÜ Ÿg™g×.Ñ.¨wÓ7ˆ
ÔÜ�˜$¨ÒIØ�jÐ!Ð!Ø�$ˆ<Ðøô ó Ø�dˆ|Òðús   ÁC& Ã&C7Ã6C7c                   óN   • \ rS rSrSrS/rSS jrSS jrS rS r	\
S 5       rS	rg
)ÚBaseBrowseré•   z3Parent class for all browsers. Do not use directly.r"   c                 ó   • Xl         Xl        g ©N)r   r?   ©Úselfr   s     r   Ú__init__ÚBaseBrowser.__init__š   s   € ØŒ	Ø�r   c                 ó   • [         erG   )ÚNotImplementedError©rI   r1   r2   r3   s       r   r   ÚBaseBrowser.openž   s   € Ü!Ð!r   c                 ó&   • U R                  US5      $ )Nr%   r5   ©rI   r1   s     r   r   ÚBaseBrowser.open_new¡   ó   € Ø�y‰y˜˜aÓ Ð r   c                 ó&   • U R                  US5      $ )Nr9   r5   rQ   s     r   r   ÚBaseBrowser.open_new_tab¤   rS   r   c                 óz   • U (       a4  U R                  5       R                  S5      (       a  [        SU < 35      egg)zCEnsures that the URL is safe to pass to subprocesses as a parameterÚ-z'Invalid URL (leading dash disallowed): N)ÚlstripÚ
startswithÚ
ValueErrorr6   s    r   Ú
_check_urlÚBaseBrowser._check_url§   s7   € ö �3—:‘:“<×*Ñ*¨3×/Ñ/ÜÐFÀsÁgÐNÓOÐOð 0ˆ3r   )r?   r   N)Ú ©r   T)r   r   r   r   Ú__doc__ÚargsrJ   r   r   r   Ústaticmethodr[   r   r   r   r   rD   rD   •   s6   † Ù=àˆ6€Dôô"ò!ò!ð ñPó óPr   rD   c                   ó(   • \ rS rSrSrS rSS jrSrg)r)   é®   zOClass for all browsers started with a command
and without remote functionality.c                 óÐ   • [        U[        5      (       a  Xl        S/U l        OUS   U l        USS  U l        [        R
                  R                  U R                  5      U l        g )Nr"   r   r%   )Ú
isinstanceÚstrr   r`   r=   r>   r?   rH   s     r   rJ   ÚGenericBrowser.__init__²   sQ   € Ü�dœC× Ñ ØŒIØ˜ˆD�Ið ˜Q™ˆDŒIØ˜Q˜R˜ˆDŒIÜŸ™×(Ñ(¨¯©Ó3ˆ�r   c                 ó¤  • [         R                  " SU5        U R                  U5        U R                  /U R                   Vs/ s H  nUR                  SU5      PM     sn-   n [         R                  S S S:X  a  [        R                  " U5      nO[        R                  " USS9nUR                  5       (       + $ s  snf ! [         a     gf = f)Núwebbrowser.openr"   é   ÚwinT)Ú	close_fdsF)ÚsysÚauditr[   r   r`   ÚreplaceÚplatformÚ
subprocessÚPopenÚwaitÚOSError©rI   r1   r2   r3   ÚargÚcmdlineÚps          r   r   ÚGenericBrowser.open¼   s¸   € Ü�	Š	Ð# SÔ)Ø�‰˜ÔØ—9‘9�+Ø,0¯IªIó!7Ú,5 Sð "%§¡¨T°3Ö!7Ù,5ñ!7ñ 7ˆð	Ü�|‰|˜B˜QÐ 5Ó(Ü×$Ò$ WÓ-‘ä×$Ò$ W¸Ñ=�Ø—v‘v“x”<Ðùò!7øô ó 	Ùð	ús   ÁB=Á%AC Ã
CÃC)r`   r?   r   Nr^   )r   r   r   r   r_   rJ   r   r   r   r   r   r)   r)   ®   s   † ñ,ò4÷r   r)   c                   ó"   • \ rS rSrSrSS jrSrg)r(   éË   zAClass for all browsers which are to be started in the
background.c                 ó   • U R                   /U R                   Vs/ s H  nUR                  SU5      PM     sn-   n[        R                  " SU5        U R                  U5         [        R                  S S S:X  a  [        R                  " U5      nO[        R                  " USSS9nUR                  5       S L $ s  snf ! [         a     gf = f)Nr"   ri   rj   rk   T)rl   Ústart_new_sessionF)r   r`   ro   rm   rn   r[   rp   rq   rr   Úpollrt   ru   s          r   r   ÚBackgroundBrowser.openÏ   sÀ   € Ø—9‘9�+Ø,0¯IªIó!7Ú,5 Sð "%§¡¨T°3Ö!7Ù,5ñ!7ñ 7ˆä�	Š	Ð# SÔ)Ø�‰˜Ôð	Ü�|‰|˜B˜QÐ 5Ó(Ü×$Ò$ WÓ-‘ä×$Ò$ W¸Ø7;ñ=�à—6‘6“8˜tÐ#Ð#ùò!7øô ó 	Ùð	ús   ›B;Á%AC  Ã 
CÃCr   Nr^   ©r   r   r   r   r_   r   r   r   r   r   r(   r(   Ë   s   † ñ÷r   r(   c                   óL   • \ rS rSrSrSrSrSrSS/rSr	Sr
SrSS jrSS	 jrS
rg)ÚUnixBrowseréß   z=Parent class for all Unix browsers with remote functionality.NFTú%actionr"   c           	      óJ  • / nU(       a5  U R                   (       a$  [        U5      nU R                   U   nU(       a  U/nU R                  /U-   U-   nU(       d  U R                  (       a  [        R
                  nOS n[        R                  " USUU R                  =(       a    U=(       d    S USS9n	U(       a   U	R                  S5      n
U
(       + $ U R                  (       a  U	R                  5       c  ggU	R                  5       (       + $ ! [        R                   a     gf = f)NT©rl   ÚstdinÚstdoutÚstderrr}   é   F)Ú
raise_optsÚintr   Ú
backgroundrq   ÚDEVNULLrr   Úredirect_stdoutrs   ÚTimeoutExpiredr~   )rI   r`   Úremoter3   r1   Ú	raise_optÚoptrw   Úinoutrx   Úrcs              r   Ú_invokeÚUnixBrowser._invokeð   sñ   € Øˆ	Þ�d—o—oä˜I›ˆIØ—/‘/ )Ñ,ˆCÞØ ˜E�	à—9‘9�+ 	Ñ)¨DÑ0ˆæ�T—_—_Ü×&Ñ&‰Eð ˆEÜ×Ò˜W°¸EØ%)×%9Ñ%9×%C¸e×%KÀtØ$)¸TñCˆö ðØ—V‘V˜A“Y�à”v�ð �_�_Ø�v‰v‹xÑØàà—v‘v“x”<Ðøô ×,Ñ,ó Ùðús   Â:D ÄD"Ä!D"c                 ó°  • [         R                  " SU5        US:X  a  U R                  nONUS:X  a  U R                  nO;US:X  a'  U R                  c  U R                  nOU R                  nO[        SU 35      eU R                  UR                  SU5      5        U R                   Vs/ s H%  nUR                  SU5      R                  SU5      PM'     nnU Vs/ s H  oU(       d  M  UPM     nnU R                  USX15      nU(       d>  U R                   Vs/ s H  oUR                  SU5      PM     nnU R                  US	S	5      $ gs  snf s  snf s  snf )
Nri   r   r%   r9   z8Bad 'new' parameter to open(); expected 0, 1, or 2, got r„   r"   TF)rm   rn   Úremote_actionÚremote_action_newwinÚremote_action_newtabr   r[   ro   Úremote_argsr–   r`   )rI   r1   r2   r3   Úactionrv   r`   Úsuccesss           r   r   ÚUnixBrowser.open  sC  € Ü�	Š	Ð# SÔ)Ø�!‹8Ø×'Ñ'‰FØ�A‹XØ×.Ñ.‰FØ�A‹XØ×(Ñ(Ñ0Ø×2Ñ2‘à×2Ñ2‘äð 4Ø47°5ð:ó ;ð ;ð 	�‰˜Ÿ™ I¨vÓ6Ô7ð  ×+Ò+ó-Ú+�Cð —‘˜I vÓ.×6Ñ6°t¸SÖAÙ+ð 	ð -á#Ó+št˜£s—™tˆÐ+Ø—,‘,˜t T¨9Ó:ˆÞà6:·i²iÓ@²i¨s—K‘K  cÖ*±iˆDÐ@Ø—<‘<  e¨UÓ3Ð3àùò-ùâ+ùò As   Â(,E	Ã
EÃ(EÄEr   rG   r^   )r   r   r   r   r_   r‹   r�   r�   rœ   r™   rš   r›   r–   r   r   r   r   r   r‚   r‚   ß   s<   † ÙGà€JØ€JØ€Oð ˜dÐ#€KØ€MØÐØÐô" ÷Hr   r‚   c                   ó0   • \ rS rSrSrSS/rSrSrSrSr	S	r
g
)ÚMozillai1  z$Launcher class for Mozilla browsers.r„   r"   r]   z-new-windowz-new-tabTr   N©r   r   r   r   r_   rœ   r™   rš   r›   r�   r   r   r   r   r¡   r¡   1  s%   † Ù.à˜dÐ#€KØ€MØ(ÐØ%ÐØƒJr   r¡   c                   ó4   • \ rS rSrSrSS/rSS/rSrSrS	r	S
r
g)ÚEpiphanyi;  z$Launcher class for Epiphany browser.z-noraiser]   r„   r"   ú-nz-wTr   N)r   r   r   r   r_   r‹   rœ   r™   rš   r�   r   r   r   r   r¤   r¤   ;  s)   † Ù.à˜bÐ!€JØ˜dÐ#€KØ€MØÐØƒJr   r¤   c                   ó0   • \ rS rSrSrSS/rSrSrSrSr	Sr
g	)
ÚChromeiE  z)Launcher class for Google Chrome browser.r„   r"   r]   ú--new-windowTr   Nr¢   r   r   r   r§   r§   E  s%   † Ù3à˜dÐ#€KØ€MØ)ÐØÐØƒJr   r§   c                   ó0   • \ rS rSrSrSS/rSrSrSrSr	Sr
g	)
ÚOperaiR  z!Launcher class for Opera browser.r„   r"   r]   r¨   Tr   Nr¢   r   r   r   rª   rª   R  s%   † Ù+à˜dÐ#€KØ€MØ)ÐØÐØƒJr   rª   c                   ó4   • \ rS rSrSrSS/rSrSrSrSr	Sr
S	rg
)ÚElinksi\  z#Launcher class for Elinks browsers.z-remotezopenURL(%s%action)r]   z,new-windowz,new-tabFr   N)r   r   r   r   r_   rœ   r™   rš   r›   r�   r�   r   r   r   r   r¬   r¬   \  s-   † Ù-àÐ2Ð3€KØ€MØ(ÐØ%ÐØ€Jð ƒOr   r¬   c                   ó"   • \ rS rSrSrSS jrSrg)Ú	Konquerorij  z¥Controller for the KDE File Manager (kfm, or Konqueror).

See the output of ``kfmclient --commands``
for more information on the Konqueror remote-control interface.
c           	      óø  • [         R                  " SU5        U R                  U5        US:X  a  SnOSn[        R                  n [        R
                  " SXA/SUXUS9nUR                  5         g! [         a     Of = f [        R
                  " SS	U/SUXUSS
9nUR                  5       c  gO! [         a     Of = f [        R
                  " SSU/SUXUSS
9nUR                  5       S L $ ! [         a     gf = f)Nri   r9   ÚnewTabÚopenURLÚ	kfmclientT)rl   r‡   rˆ   r‰   Ú	konquerorz--silentr†   Úkfmz-dF)	rm   rn   r[   rq   rŽ   rr   rs   rt   r~   )rI   r1   r2   r3   r�   Údevnullrx   s          r   r   ÚKonqueror.openq  s#  € Ü�	Š	Ð# SÔ)Ø�‰˜Ôà�!‹8Ø‰FàˆFä×$Ñ$ˆð
	Ü× Ò  +¨vÐ!;Ø+/°wØ(/ñAˆAð �F‰FŒHàøô ó 	áð	úð	Ü× Ò  +¨z¸3Ð!?Ø+/°wØ(/Ø37ñ9ˆAð �v‰v‹xÑàð  øô	 ó 	áð	úð	$Ü× Ò  %¨¨sÐ!3Ø+/°wØ(/Ø37ñ9ˆAð —6‘6“8˜tÐ#Ð#øô ó 	Ùð	ús6   ÁA/ Á/
A<Á;A<Â B. Â.
B;Â:B;Â?C, Ã,
C9Ã8C9r   Nr^   r€   r   r   r   r®   r®   j  s   † ñ÷,$r   r®   c                   ó0   • \ rS rSrSrSS/rSrSrSrSr	Sr
g	)
ÚEdgei   z*Launcher class for Microsoft Edge browser.r„   r"   r]   r¨   Tr   Nr¢   r   r   r   r¸   r¸      s%   † Ù4à˜dÐ#€KØ€MØ)ÐØÐØƒJr   r¸   c                  óœ  • [         R                  " S5      (       a  [        SS [        S5      5        [         R                  " S5      (       a  [        SS [        / SQ5      5        [        R
                  " SS5      R                  S5      n SU ;   d  S[        R                  ;   a1  [         R                  " S	5      (       a  [        S	S [        S	5      5        S
U ;   d  S[        R                  ;   a5  [         R                  " S5      (       a  [        S[        [        S5      5        [         R                  " S5      (       a  [        SS [        S5      5        S H6  n[         R                  " U5      (       d  M   [        US [        U5      5        M8     [         R                  " S5      (       a  [        S[        [        S5      5        O5[         R                  " S5      (       a  [        S[        [        S5      5        [         R                  " S5      (       a  [        SS [        S5      5        S H6  n[         R                  " U5      (       d  M   [        US [        U5      5        M8     [         R                  " S5      (       a  [        SS [        S5      5        [         R                  " S5      (       a  [        SS [        S5      5        g g )Nzxdg-openÚgio)rº   r   z--r"   ÚXDG_CURRENT_DESKTOPr]   Ú:ÚGNOMEÚGNOME_DESKTOP_SESSION_IDz	gvfs-openÚKDEÚKDE_FULL_SESSIONr²   zx-www-browser)ÚfirefoxÚ	iceweaselÚ	seamonkeyzmozilla-firefoxÚmozillar´   r³   Úepiphany)zgoogle-chromeÚchromeÚchromiumzchromium-browserÚoperaúmicrosoft-edge)r;   r<   r   r(   r=   Úgetenvr'   Úenvironr®   r¡   r¤   r§   rª   r¸   )Úxdg_desktopr.   s     r   Úregister_X_browsersrÍ   ±  sû  € ô ‡|‚|�J×ÑÜ�˜TÔ#4°ZÓ#@ÔAô ‡|‚|�E×ÑÜ�˜Ô/Ò0KÓLÔMä—)’)Ð1°2Ó6×<Ñ<¸SÓA€Kð 
�KÓ	Ø	#¤r§z¡zÓ	1Ü�LŠL˜×%Ñ%Ü�˜dÔ$5°kÓ$BÔCð 
�+Ó	Ø	œrŸz™zÓ	)Ü�LŠL˜×%Ñ%Ü�œi¬°;Ó)?Ô@ô ‡|‚|�O×$Ñ$Ü� $Ô(9¸/Ó(JÔKóˆä�<Š<˜× Ó Ü�W˜d¤G¨GÓ$4Ö5ñô ‡|‚|�E×ÑÜ�œ	¤9¨UÓ#3Õ4Ü	�Š�k×	"Ñ	"Ü�œi¬°;Ó)?Ô@ô ‡|‚|�J×ÑÜ�˜T¤8¨JÓ#7Ô8ó OˆÜ�<Š<˜× Ó Ü�W˜d¤F¨7£OÖ4ñ Oô
 ‡|‚|�G×ÑÜ�˜$¤ g£Ô/ä‡|‚|Ð$×%Ñ%ÜÐ! 4¬Ð.>Ó)?Õ@ð &r   c                  óÌ  • / q [        R                  S:X  aX  [        SS [	        S5      5        [        SS [	        S5      5        [        SS [	        S5      5        [        SS [	        S5      5        [        R                  S:X  a  [        SS [        5       S	S
9  [        R                  S:X  a  [        SS [        S5      5        [        R                  S S S:X  Ga  [        S[        5        [        R                  R                  [        R                  R                  SS5      S5      n [        R                  R                  [        R                  R                  SS5      S5      nSSSSSX4 H6  n[        R                  " U5      (       d  M   [        US [        U5      5        M8     [        R                  " S5      (       a  [        SS [        S5      5        GOÓ[        R                  S:w  a¦  [        R                  R                  S5      (       d$  [        R                  R                  S5      (       a^   SR!                  5       n["        R$                  " U["        R&                  S9nUR)                  5       R+                  5       nUq[7        5         [        R                  R                  S5      (       aõ  [        R                  " S5      (       a  [        SS [9        S5      5        [        R                  " S 5      (       a  [        S S [9        S 5      5        [        R                  " S!5      (       a  [        S!S [;        S!5      5        [        R                  " S"5      (       a  [        S"S [9        S"5      5        [        R                  " S#5      (       a  [        S#S [9        S#5      5        S$[        R                  ;   ay  [        R                  S$   R!                  [        R<                  5      nUR?                  5         U H2  nUS%:w  d  M  [A        US	S
9nUS&   b  M  [        US [9        U5      S	S
9  M4     g g ! [.        ["        R0                  [2        [4        4 a     GNØf = f)'NÚdarwinÚMacOSXÚdefaultrÆ   rÁ   ÚsafariÚiosÚ
iosbrowserTr   Ú
serenityosÚBrowserrj   rk   zwindows-defaultzPROGRAMFILES(x86)zC:\Program Files (x86)z%Microsoft\Edge\Application\msedge.exeÚPROGRAMFILESzC:\Program FilesrÃ   rÄ   rÈ   zMicrosoftEdge.exerÉ   ÚDISPLAYÚWAYLAND_DISPLAYz$xdg-settings get default-web-browser)r‰   ÚTERMzwww-browserÚlinksÚelinksÚlynxÚw3mÚBROWSERr]   r%   )!r   rm   rp   r   ÚMacOSXOSAScriptÚ
IOSBrowserr(   ÚWindowsDefaultr=   r>   ÚjoinrË   r   r;   r<   r¸   r'   rq   Úcheck_outputrŽ   ÚdecodeÚstripr   ÚFileNotFoundErrorÚCalledProcessErrorÚPermissionErrorÚNotADirectoryErrorrÍ   r)   r¬   ÚpathsepÚreverser+   )Úedge64Úedge32r.   rA   Ú
raw_resultÚresultÚuserchoicesrw   s           r   r   r   ë  s=  € à€Iä
‡|�|�xÓÜ�˜4¤°Ó!;Ô<Ü�˜4¤°Ó!:Ô;Ü�˜D¤/°)Ó"<Ô=Ü�˜4¤°Ó!:Ô;ô ‡|�|�uÓÜ�˜t¤Z£\¸TÒBä
‡|�|�|Ó#ä�˜DÔ"3°IÓ">Ô?ä
‡|�|�B�QÐ˜5Ô äÐ"¤NÔ3ô —‘—‘œbŸj™jŸn™nÐ-@ÐB[Ó\ØHóJˆô —‘—‘œbŸj™jŸn™n¨^Ð=PÓQØHóJˆà! ;°	¸8Ø ó1ˆGä�|Š|˜G×$Ó$Ü˜ $Ô(9¸'Ó(BÖCñ1ô �<Š<Ð+×,Ñ,ÜÐ% t¬TÐ2EÓ-FÔGùô �<‰<˜8Ó#¬¯©¯©¸	×)BÑ)BÄbÇjÁjÇnÁnÐUf×FgÑFgð	/Ø<×BÑBÓD�Ü'×4Ò4°SÄ×ASÑASÑT�
Ø#×*Ñ*Ó,×2Ñ2Ó4�ð )/Ð%äÔ!ô �:‰:�>‰>˜&×!Ñ!ä�|Š|˜M×*Ñ*Ü˜¨¬n¸]Ó.KÔLä�|Š|˜G×$Ñ$Ü˜ $¬°wÓ(?Ô@Ü�|Š|˜H×%Ñ%Ü˜ 4¬°Ó)9Ô:ä�|Š|˜F×#Ñ#Ü˜ ¤~°fÓ'=Ô>ä�|Š|˜E×"Ñ"Ü˜ ¤n°UÓ&;Ô<ð ”B—J‘JÓÜ—j‘j Ñ+×1Ñ1´"·*±*Ó=ˆØ×ÑÔó #ˆGØ˜"�}Ü! '°TÑ:�Ø�q‘6“>Ü˜W d¬N¸7Ó,CÈtÔTò	 #ð øô9 &¤z×'DÑ'DÜ#Ô%7ð9ó âðús   È7AP; Ð;$Q#Ñ"Q#rj   rk   c                   ó   • \ rS rSrSS jrSrg)râ   iK  c                 ó¢   • [         R                  " SU5        U R                  U5         [        R                  " U5        g! [
         a     gf = f)Nri   TF)rm   rn   r[   r=   Ú	startfilert   rN   s       r   r   ÚWindowsDefault.openL  sI   € Ü�IŠIÐ'¨Ô-Ø�O‰O˜CÔ ðÜ—’˜SÔ!ð øô ó ñ ðús   ªA Á
AÁAr   Nr^   ©r   r   r   r   r   r   r   r   r   râ   râ   K  s   † ÷
	r   râ   rÏ   c                   ó6   ^ • \ rS rSrSU 4S jjrSS jrSrU =r$ )rà   i]  c                 ó$   >• [         TU ]  U5        g rG   )ÚsuperrJ   )rI   r   Ú	__class__s     €r   rJ   ÚMacOSXOSAScript.__init__^  s   ø€ Ü‰GÑ˜TÕ"r   c                 óP  • [         R                  " SU5        U R                  U5        UR                  SS5      nU R                  S:X  a  SU S3nOSU R                   SU S3n[
        R                  " S	S
5      nUc  gUR                  U5        UR                  5       nU(       + $ )Nri   Ú"z%22rÑ   zopen location "z&
                   tell application "zH"
                       activate
                       open location "z,"
                   end
                   Ú	osascriptÚwF)	rm   rn   r[   ro   r   r=   ÚpopenÚwriteÚclose)rI   r1   r2   r3   ÚscriptÚosapiper•   s          r   r   ÚMacOSXOSAScript.opena  s£   € Ü�IŠIÐ'¨Ô-Ø�O‰O˜CÔ Ø—+‘+˜c 5Ó)ˆCØ�y‰y˜IÓ%Ø*¨3¨%¨qÐ1‘ð&Ø&*§i¡i [ð 1'à'* eð ,ð�ô —h’h˜{¨CÓ0ˆGØ‰Øà�M‰M˜&Ô!Ø—‘“ˆBØ”6ˆMr   r   )rÑ   r^   )r   r   r   r   rJ   r   r   Ú__classcell__)rú   s   @r   rà   rà   ]  s   ø† ÷	#÷	ò 	r   rà   rÓ   )Úobjc)Úc_void_pÚc_char_pÚc_ulongc                   ó   • \ rS rSrSS jrSrg)rá   i€  c                 ó  • [         R                  " SU5        U R                  U5        [        c  g[        [        R
                  l        [        R                  " S5      n[        R                  " S5      n[        [        [        [        /[        R
                  l        [        R
                  " UUUR                  S5      S5      n[        R                  " S5      n[        R                  " S5      n[        [        [        /[        R
                  l        [        R
                  " XxU5      n	[        R                  " S	5      n
[        R                  " S
5      n[        [        /[        R
                  l        [        R
                  " X«5      n[        R                  " S5      n[        [        [        [        [        /[        R
                  l        S [        R
                  l        [        R
                  " XÍU	S S 5        g)Nri   Fs   NSStrings   stringWithCString:encoding:zutf-8é   s   NSURLs   URLWithString:s   UIApplications   sharedApplications"   openURL:options:completionHandler:T)rm   rn   r[   r  r  Úobjc_msgSendÚrestypeÚobjc_getClassÚsel_registerNamer	  r
  ÚargtypesÚencode)rI   r1   r2   r3   ÚNSStringÚconstructorÚ
url_stringÚNSURLÚurlWithString_Úns_urlÚUIApplicationÚsharedApplicationÚ
shared_appÚopenURL_s                 r   r   ÚIOSBrowser.open�  s{  € Ü�IŠIÐ'¨Ô-Ø�O‰O˜CÔ ä‰|Øô )1ŒD×ÑÔ%ô ×)Ò)¨+Ó6ˆHÜ×/Ò/Ð0NÓOˆKÜ*2´H¼hÌÐ)PŒD×ÑÔ&Ü×*Ò*ØØØ—
‘
˜7Ó#Øó	ˆJô ×&Ò& xÓ0ˆEÜ!×2Ò2Ð3DÓEˆNÜ*2´H¼hÐ)GŒD×ÑÔ&Ü×&Ò& u¸jÓIˆFô
 !×.Ò.Ð/?Ó@ˆMÜ $× 5Ò 5Ð6JÓ KÐÜ*2´HÐ)=ŒD×ÑÔ&Ü×*Ò*¨=ÓLˆJô ×,Ò,Ð-RÓSˆHäœ(¤H¬h¼ð*ŒD×ÑÔ&ð )-ŒD×ÑÔ%Ü×Ò˜j°F¸DÀ$ÔGàr   r   Nr^   rö   r   r   r   rá   rá   €  s   † ÷5	r   rá   Úarg_listc           
      óâ   • SS K nUR                  SS9nUR                  SSS9  UR                  5       nUR                  SSS	S
SSSS9  UR                  SSS	SSSSS9  UR	                  U 5      nU$ )Nr   zOpen URL in a web browser.)Údescriptionr1   zURL to open)Úhelpr¥   r¨   Ústore_constr%   Únew_winzopen new window)r�   ÚconstrÑ   Údestr"  z-tz	--new-tabr9   zopen new tab)ÚargparseÚArgumentParserÚadd_argumentÚadd_mutually_exclusive_groupÚ
parse_args)r  r'  ÚparserÚgroupr`   s        r   r+  r+  ¹  s™   € ÛØ×$Ñ$Ð1MÐ$ÐN€FØ
×Ñ˜ MÐÑ2à×/Ñ/Ó1€EØ	×Ñ�t˜^°MØ¨°	Ø-ð ñ /ð 
×Ñ�t˜[°Ø¨°	Ø*ð ñ ,ð ×Ñ˜XÓ&€Dà€Kr   c                 óp   • [        U 5      n[        UR                  UR                  5        [	        S5        g )NÚ)r+  r   r1   r$  Úprint)r  r`   s     r   Úmainr1  Ë  s%   € Ü�hÓ€Däˆ�‰�4—<‘<Ô ä	ˆ$…Kr   Ú__main__rG   r^   )2r_   r=   r&   r;   rm   rq   Ú	threadingÚ__all__Ú	Exceptionr   ÚRLockr   r   r   r   r   r   r   r   r   r+   rD   r)   r(   r‚   r¡   r¤   r§   ÚChromiumrª   r¬   r®   r¸   rÍ   r   rp   râ   rà   Ú_ios_supportr  Úctypesr  r	  r
  rá   Úlistrf   r+  r1  r   r   r   r   Ú<module>r;     sµ  ðá Eó 
Û Û Û 
Û Û â
J€ô	ˆIô 	ð 	�ŠÓ€Ø€	Ø€	ØÐ ð#°eö #ô 5ôFò.òð ',õ ÷DPñ Pô2�[ô ô:˜ô ô(O�+ô Oôdˆkô ôˆ{ô ôˆ[ô ð €ôˆKô ôˆ[ô ô3$�ô 3$ôlˆ;ô ò"7AòtVUð~ ‡<�<��Ð�uÓô˜ô ð" ‡<�<�8Óô˜+ô ð: ‡<�<�5ÓÝ!Þç6Ñ6ô6�[ô 6ðr˜˜c™ TÑ)ô ñ$�4˜‘9˜tÑ#õ ð ˆzÓÙ…Fð r   