ó
    F\hÜ^  ã                   óî  • 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                   ó>   • \ rS rSrSrS/rS
S jrSS jrS rS 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   )r?   r   N)Ú ©r   T)r   r   r   r   Ú__doc__ÚargsrJ   r   r   r   r   r   r   r   rD   rD   •   s    † Ù=àˆ6€Dôô"ò!õ!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   rY   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 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   rY   Ú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B1 Â1
B>Â=B>)rY   r?   r   NrW   )r   r   r   r   rX   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         [        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"   ra   rb   rc   T)rd   Ústart_new_sessionF)
r   rY   rg   re   rf   rh   ri   rj   Úpollrl   rm   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B/ Â/
B<Â;B<r   NrW   ©r   r   r   r   rX   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©rd   ÚstdinÚstdoutÚstderrru   é   F)Ú
raise_optsÚintr   Ú
backgroundri   ÚDEVNULLrj   Úredirect_stdoutrk   ÚTimeoutExpiredrv   )rI   rY   Úremoter3   r1   Ú	raise_optÚoptro   Úinoutrp   Ú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                 ón  • [         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                   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 )
Nra   r   r%   r9   z8Bad 'new' parameter to open(); expected 0, 1, or 2, got r"   r|   TF)
re   rf   Úremote_actionÚremote_action_newwinÚremote_action_newtabr   Úremote_argsrg   rŽ   rY   )rI   r1   r2   r3   Úactionrn   rY   Úsuccesss           r   r   ÚUnixBrowser.open  s*  € Ü�	Š	Ð# SÔ)Ø�!‹8Ø×'Ñ'‰FØ�A‹XØ×.Ñ.‰FØ�A‹XØ×(Ñ(Ñ0Ø×2Ñ2‘à×2Ñ2‘äð 4Ø47°5ð:ó ;ð ;ð  ×+Ò+ó-Ú+�Cð —‘˜D #Ó&×.Ñ.¨y¸&ÖAÙ+ð 	ð -á#Ó+št˜£s—™tˆÐ+Ø—,‘,˜t T¨9Ó:ˆÞà6:·i²iÓ@²i¨s—K‘K  cÖ*±iˆDÐ@Ø—<‘<  e¨UÓ3Ð3àùò-ùâ+ùò As   Â,D(Â9
D-ÃD-Ã7D2r   rG   rW   )r   r   r   r   rX   rƒ   r…   r‡   r”   r‘   r’   r“   rŽ   r   r   r   r   r   rz   rz   ×   s<   † ÙGà€JØ€JØ€Oð ˜dÐ#€KØ€MØÐØÐô" ÷Hr   rz   c                   ó0   • \ rS rSrSrSS/rSrSrSrSr	S	r
g
)ÚMozillai'  z$Launcher class for Mozilla browsers.r|   r"   rV   z-new-windowz-new-tabTr   N©r   r   r   r   rX   r”   r‘   r’   r“   r…   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S/rSrSrS	r	S
r
g)ÚEpiphanyi1  z$Launcher class for Epiphany browser.z-noraiserV   r|   r"   ú-nz-wTr   N)r   r   r   r   rX   rƒ   r”   r‘   r’   r…   r   r   r   r   rœ   rœ   1  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	)
ÚChromei;  z)Launcher class for Google Chrome browser.r|   r"   rV   ú--new-windowTr   Nrš   r   r   r   rŸ   rŸ   ;  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	)
ÚOperaiH  z!Launcher class for Opera browser.r|   r"   rV   r    Tr   Nrš   r   r   r   r¢   r¢   H  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
)ÚElinksiR  z#Launcher class for Elinks browsers.z-remotezopenURL(%s%action)rV   z,new-windowz,new-tabFr   N)r   r   r   r   rX   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)Ú	Konquerori`  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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)Nra   r9   ÚnewTabÚopenURLÚ	kfmclientT)rd   r   r€   r�   Ú	konquerorz--silentr~   Úkfmz-dF)re   rf   ri   r†   rj   rk   rl   rv   )rI   r1   r2   r3   r•   Údevnullrp   s          r   r   ÚKonqueror.openg  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Ð#Ð#øô ó 	Ùð	ús5   ´A Á
A+Á*A+Á/B Â
B*Â)B*Â.C Ã
C(Ã'C(r   NrW   rx   r   r   r   r¦   r¦   `  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"   rV   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_DESKTOPrV   Ú:Ú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ÚBrowserrb   rc   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ÚBROWSERrV   r%   )!r   re   rh   r   ÚMacOSXOSAScriptÚ
IOSBrowserr(   ÚWindowsDefaultr=   r>   ÚjoinrÃ   r   r;   r<   r°   r'   ri   Úcheck_outputr†   ÚdecodeÚstripr   ÚFileNotFoundErrorÚCalledProcessErrorÚPermissionErrorÚNotADirectoryErrorrÅ   r)   r¤   ÚpathsepÚreverser+   )Úedge64Úedge32r.   rA   Ú
raw_resultÚresultÚuserchoicesro   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#rb   rc   c                   ó   • \ rS rSrSS jrSrg)rÚ   i@  c                 ó€   • [         R                  " SU5         [        R                  " U5        g! [         a     gf = f)Nra   TF)re   rf   r=   Ú	startfilerl   rN   s       r   r   ÚWindowsDefault.openA  s=   € Ü�IŠIÐ'¨Ô-ðÜ—’˜SÔ!ð øô ó ñ ðús   ™0 °
=¼=r   NrW   ©r   r   r   r   r   r   r   r   r   rÚ   rÚ   @  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Ø   iQ  c                 ó$   >• [         TU ]  U5        g rG   )ÚsuperrJ   )rI   r   Ú	__class__s     €r   rJ   ÚMacOSXOSAScript.__init__R  s   ø€ Ü‰GÑ˜TÕ"r   c                 ó.  • [         R                  " S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(       + $ )Nra   Ú"z%22rÉ   zopen location "z&
                   tell application "zH"
                       activate
                       open location "z,"
                   end
                   Ú	osascriptÚwF)re   rf   rg   r   r=   ÚpopenÚwriteÚclose)rI   r1   r2   r3   ÚscriptÚosapiper�   s          r   r   ÚMacOSXOSAScript.openU  s—   € Ü�IŠIÐ'¨Ô-Ø—+‘+˜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É   rW   )r   r   r   r   rJ   r   r   Ú__classcell__)rò   s   @r   rØ   rØ   Q  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Ù   is  c                 óâ  • [         R                  " S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)Nra   Fs   NSStrings   stringWithCString:encoding:zutf-8é   s   NSURLs   URLWithString:s   UIApplications   sharedApplications"   openURL:options:completionHandler:T)re   rf   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.opent  so  € Ü�IŠIÐ'¨Ô-ä‰|Øô )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   NrW   rî   r   r   r   rÙ   rÙ   s  s   † ÷4	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ÚgrouprY   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  rY   s     r   Úmainr)  ½  s%   € Ü�hÓ€Däˆ�‰�4—<‘<Ô ä	ˆ$…Kr   Ú__main__rG   rW   )2rX   r=   r&   r;   re   ri   Ú	threadingÚ__all__Ú	Exceptionr   ÚRLockr   r   r   r   r   r   r   r   r   r+   rD   r)   r(   rz   r™   rœ   rŸ   ÚChromiumr¢   r¤   r¦   r°   rÅ   r   rh   rÚ   rØ   Ú_ios_supportrÿ   Úctypesr   r  r  rÙ   Úlistr^   r#  r)  r   r   r   r   Ú<module>r3     s³  ðá Eó 
Û Û Û 
Û Û â
J€ô	ˆIô 	ð 	�ŠÓ€Ø€	Ø€	ØÐ ð#°eö #ô 5ôFò.òð ',õ ÷D!ñ !ô&�[ô ô8˜ô ô&M�+ô Mô`ˆkô ôˆ{ô ôˆ[ô ð €ôˆKô ôˆ[ô ô2$�ô 2$ôjˆ;ô ò"7AòtVUð~ ‡<�<��Ð�uÓô
˜ô 
ð  ‡<�<�8Óô˜+ô ð8 ‡<�<�5ÓÝ!Þç6Ñ6ô5�[ô 5ðp˜˜c™ TÑ)ô ñ$�4˜‘9˜tÑ#õ ð ˆzÓÙ…Fð r   