<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
ž
©ÿf–M  c               @   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 l j Z d  d l	 j
 Z d  d l Z d  d l Td  d l m Z d  d l m Z d  d l m Z y# d  d l Z e j e j d ƒ Wn e e j f k
 rì Yn Xe j ƒ  Z d Z e j d k rGy! e j ƒ  d	 Z e j e ƒ Wn e k
 rCYn Xn¿ yD e j e j  ƒ Z e e! k pqe d k r}d Z n  e j e ƒ Wnx e" e# e f k
 ryB e j ƒ  d	 Z e e! k pÌe d k rØd Z n  e j e ƒ Wn e$ e f k
 r Yn XYn Xe j% ƒ  Z e Z& e j' d
 e j( ƒ Z) e j' d e j( ƒ Z* d d „  Z+ Gd d „  d ƒ Z, d d „  Z- e. d k rƒe- ƒ  n  d S(   i    N(   u   *(   u	   askstring(   u   idleConf(   u   BOM_UTF8u    u   asciiu   win32i   u%   ^[ \t\f]*#.*coding[:=][ \t]*([-\w.]+)u   ^[ \t\f]*(?:[#\r\n]|$)c             C   s  t  |  t ƒ r! |  j d ƒ } n |  } d | k rR | j d d ƒ d d … } n4 d | k r} | j d d ƒ d d … } n	 | g } xD | D]8 } t j | ƒ } | d k	 r² Pn  t j | ƒ s d Sq Wd S| j d ƒ } y t	 j
 | ƒ Wn" t k
 rt d | ƒ ‚ Yn X| S(   uV  Return the encoding declaration according to PEP 263.

    When checking encoded data, only the first two lines should be passed
    in to avoid a UnicodeDecodeError if the rest of the data is not unicode.
    The first two lines would contain the encoding specification.

    Raise a LookupError if the encoding is declared but unknown.
    u
   iso-8859-1u   
i   Nu   i   u   Unknown encoding: (   u
   isinstanceu   bytesu   decodeu   splitu	   coding_reu   matchu   Noneu   blank_reu   groupu   codecsu   lookupu   LookupError(   u   datau   linesu   lstu   lineu   matchu   name(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   coding_specE   s*    		u   coding_specc             B   s‹  |  Ee  Z d  Z d d „  Z d d „  Z d d „  Z d d „  Z d	 d
 „  Z d9 Z	 d d „  Z
 d9 Z d9 Z d d „  Z d9 d9 d d „ Z d Z e j e ƒ Z e j Z d d „  Z d d „  Z d d „  Z d d „  Z d d „  Z d d „  Z d d „  Z d  d! „  Z d" d# „  Z d$ d% „  Z d9 Z  d9 Z! d: d; d< g Z" e# j$ d- k rNd. n d/ Z% d0 d1 „  Z& d2 d3 d4 „ Z' d5 d6 „  Z( d7 d8 „  Z) d9 S(=   u	   IOBindingc             C   s©   | |  _  | j |  _ |  j j d |  j ƒ |  _ |  j j d |  j ƒ |  _ |  j j d |  j ƒ |  _ |  j j d |  j	 ƒ |  _
 d  |  _ |  j j d |  j ƒ |  _ d  S(   Nu   <<open-window-from-file>>u   <<save-window>>u   <<save-window-as-file>>u   <<save-copy-of-window-as-file>>u   <<print-window>>(   u   editwinu   textu   bindu   openu   _IOBinding__id_openu   saveu   _IOBinding__id_saveu   save_asu   _IOBinding__id_saveasu   save_a_copyu   _IOBinding__id_savecopyu   Noneu   fileencodingu   print_windowu   _IOBinding__id_print(   u   selfu   editwin(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   __init__p   s    		u   IOBinding.__init__c             C   s   |  j  j d |  j ƒ |  j  j d |  j ƒ |  j  j d |  j ƒ |  j  j d |  j ƒ |  j  j d |  j ƒ d  |  _ d  |  _  d  |  _	 d  S(   Nu   <<open-window-from-file>>u   <<save-window>>u   <<save-window-as-file>>u   <<save-copy-of-window-as-file>>u   <<print-window>>(
   u   textu   unbindu   _IOBinding__id_openu   _IOBinding__id_saveu   _IOBinding__id_saveasu   _IOBinding__id_savecopyu   _IOBinding__id_printu   Noneu   editwinu   filename_change_hook(   u   self(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   close|   s    		u   IOBinding.closec             C   s   |  j  j ƒ  S(   N(   u   editwinu	   get_saved(   u   self(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu	   get_savedˆ   s    u   IOBinding.get_savedc             C   s   |  j  j | ƒ d  S(   N(   u   editwinu	   set_saved(   u   selfu   flag(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu	   set_saved‹   s    u   IOBinding.set_savedc             C   s   |  j  j ƒ  d  S(   N(   u   editwinu
   reset_undo(   u   self(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu
   reset_undoŽ   s    u   IOBinding.reset_undoc             C   s   | |  _  d  S(   N(   u   filename_change_hook(   u   selfu   hook(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   set_filename_change_hook“   s    u"   IOBinding.set_filename_change_hookc             C   sf   | r- t  j j | ƒ r- d  |  _ | |  _ n5 | |  _ d  |  _ |  j d ƒ |  j rb |  j ƒ  n  d  S(   Ni   (   u   osu   pathu   isdiru   Noneu   filenameu   dirnameu	   set_savedu   filename_change_hook(   u   selfu   filename(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   set_filename™   s    				u   IOBinding.set_filenamec             C   s%  |  j  j } | r« | s' |  j ƒ  } n | } | rŽ |  j  r~ t |  j  d d  ƒ r~ |  j r~ |  j ƒ  r~ | j | |  j ƒ q§ | j | ƒ n |  j	 r§ |  j	 j
 ƒ  n  d S|  j ƒ  rã |  j ƒ  } | d k rã |  j	 j
 ƒ  d Sn  | sø |  j ƒ  } n | } | r|  j | ƒ n |  j	 j
 ƒ  d S(   Nu   interpu   breaku   cancel(   u   editwinu   flistu   askopenfileu   getattru   Noneu   filenameu	   get_savedu   openu   loadfileu   textu	   focus_setu	   maybesave(   u   selfu   eventu   editFileu   flistu   filenameu   reply(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   open¤   s6    	
	u   IOBinding.openu   (\r\n)|\n|\rc       	      C   s±  yK t  | d ƒ 6 } | j ƒ  | j ƒ  } | j d ƒ | j ƒ  } Wd  QXWnH t k
 r• } z( t j d t | ƒ d |  j ƒd SWYd  d  } ~ Xn X|  j
 | | ƒ \ } } | d  k rÛ t j d d | d |  j ƒd S|  j j | ƒ } | r| j d ƒ |  _ |  j j d | ƒ } n  |  j j d	 d
 ƒ |  j d  ƒ |  j j d	 | ƒ |  j ƒ  |  j | ƒ | r}|  j d ƒ n  |  j j d d	 ƒ |  j j d ƒ |  j | ƒ d S(   Nu   rbi    u	   I/O Erroru   masteru   Decoding Erroru   File %s
Failed to Decodeu   parentu   \nu   1.0u   endu   insertFT(   u   openu   readlineu   seeku   readu   OSErroru   tkMessageBoxu	   showerroru   stru   textu   Falseu   _decodeu   Noneu   eol_reu   searchu   groupu   eol_conventionu   subu   deleteu   set_filenameu   insertu
   reset_undou	   set_savedu   mark_setu   yviewu   updaterecentfileslistu   True(	   u   selfu   filenameu   fu	   two_linesu   bytesu   msgu   charsu	   convertedu   firsteol(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   loadfileÔ   s:    	


u   IOBinding.loadfilec          ;   C   s  d } | j t ƒ ra y | d d … j d ƒ } Wn t k
 rJ d SYqa Xd |  _ | d f Sn  y t | ƒ } Wnc t k
 rÁ } z. t	 j
 d d d d | d	 |  j ƒ d } WYd d } ~ Xn t k
 rÖ d SYn X| ry& t | | ƒ } | |  _ | d f SWqt k
 rYqXn  y& t | d
 ƒ } d |  _ | d f SWn t k
 rUYn Xy& t | d ƒ } d |  _ | d f SWn t k
 rYn Xy` |  j j j ƒ  t d d d t d |  j j ƒ} | ræt | | ƒ } d |  _ n  | d f SWn t t f k
 rYn Xd S(   u   Create a Unicode string.i   Nu   utf-8u   BOMu   titleu   Error loading the fileu   messageu^   The encoding '%s' is not known to this Python installation. The file may not display correctlyu   masteru   asciiu   Specify file encodinguw   The file's encoding is invalid for Python 3.x.
IDLE will convert it to UTF-8.
What is the current encoding of the file?u   initialvalueu   parentF(   NF(   NFT(   NF(   u   Noneu
   startswithu   BOM_UTF8u   decodeu   UnicodeDecodeErroru   Falseu   fileencodingu   coding_specu   LookupErroru   tkMessageBoxu	   showerroru   textu   stru   editwinu   updateu	   askstringu   locale_encodingu   True(   u   selfu	   two_linesu   bytesu   charsu   encu   name(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   _decodeø   sh    			
				u   IOBinding._decodec          
   C   sª   |  j  ƒ  r d Sd |  j p d } t j d d d | d t j d |  j ƒ } | r~ d } |  j d  ƒ |  j  ƒ  s™ d	 } q™ n | d  k r“ d	 } n d
 } |  j j ƒ  | S(   Nu   yesu&   Do you want to save %s before closing?u   this untitled documentu   titleu   Save On Closeu   messageu   defaultu   masteru   cancelu   no(	   u	   get_savedu   filenameu   tkMessageBoxu   askyesnocancelu   YESu   textu   saveu   Noneu	   focus_set(   u   selfu   messageu   confirmu   reply(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu	   maybesave<  s&    			u   IOBinding.maybesavec             C   sr   |  j  s |  j | ƒ nH |  j |  j  ƒ ra |  j d ƒ y |  j j ƒ  Wqa t k
 r] Yqa Xn  |  j j	 ƒ  d S(   Nu   breakT(
   u   filenameu   save_asu	   writefileu	   set_savedu   Trueu   editwinu   store_file_breaksu   AttributeErroru   textu	   focus_set(   u   selfu   event(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   saveR  s    	u   IOBinding.savec             C   s…   |  j  ƒ  } | rg |  j | ƒ rg |  j | ƒ |  j d ƒ y |  j j ƒ  Wqd t k
 r` Yqd Xqg n  |  j j ƒ  |  j	 | ƒ d S(   Ni   u   break(
   u   asksavefileu	   writefileu   set_filenameu	   set_savedu   editwinu   store_file_breaksu   AttributeErroru   textu	   focus_setu   updaterecentfileslist(   u   selfu   eventu   filename(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   save_as_  s    u   IOBinding.save_asc             C   s@   |  j  ƒ  } | r" |  j | ƒ n  |  j j ƒ  |  j | ƒ d S(   Nu   break(   u   asksavefileu	   writefileu   textu	   focus_setu   updaterecentfileslist(   u   selfu   eventu   filename(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   save_a_copym  s    u   IOBinding.save_a_copyc             C   sÑ   |  j  ƒ  |  j j d d ƒ } |  j d k rF | j d |  j ƒ } n  |  j | ƒ } y- t | d ƒ  } | j | ƒ Wd  QXd SWnH t	 k
 rÌ } z( t
 j d t | ƒ d |  j ƒd SWYd  d  } ~ Xn Xd  S(	   Nu   1.0u   end-1cu   
u   wbu	   I/O Erroru   masterTF(   u   fixlastlineu   textu   getu   eol_conventionu   replaceu   encodeu   openu   writeu   Trueu   OSErroru   tkMessageBoxu	   showerroru   stru   False(   u   selfu   filenameu   textu   charsu   fu   msg(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu	   writefileu  s    

u   IOBinding.writefilec          #   C   s  t  | t ƒ r | S|  j d k r3 t | j d ƒ Sy | j d ƒ SWn t k
 rX Yn Xy t | ƒ } d  } Wn1 t k
 r¢ } z | } d  } WYd  d  } ~ Xn X| s² d } n  | rë y | j | ƒ SWqë t k
 rç d | } Yqë Xn  t	 j
 d d | d |  j ƒt | j d ƒ S(   Nu   BOMu   utf-8u   asciiu   Invalid encoding '%s'u	   I/O Erroru   %s.
Saving as UTF-8u   master(   u
   isinstanceu   bytesu   fileencodingu   BOM_UTF8u   encodeu   UnicodeErroru   coding_specu   Noneu   LookupErroru   tkMessageBoxu	   showerroru   text(   u   selfu   charsu   encu   failedu   msg(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   encode„  s4    
	

u   IOBinding.encodec             C   s8   |  j  j d ƒ } | d k r4 |  j  j d d ƒ n  d  S(   Nu   end-2cu   
u   end-1c(   u   textu   getu   insert(   u   selfu   c(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   fixlastline«  s    u   IOBinding.fixlastlinec          	   C   s  t  j d d d d d t  j d |  j ƒ } | sA |  j j ƒ  d Sd  } |  j ƒ  } | re |  j } n  | sx | d  k rÆ t j	 d d	 ƒ \ } } | } t
 j | ƒ |  j | ƒ sÆ t
 j | ƒ d Sn  t
 j } d } | d
 k rt j d d d ƒ }	 |	 d }	 n* | d k r't j d d d ƒ }	 n d } | rÆ|	 t j | ƒ }	 t
 j |	 d ƒ }
 |
 j ƒ  j ƒ  } |
 j ƒ  } | rd | | } n  | réd t |	 ƒ | } t  j d | d |  j ƒqén# d | } t  j d | d |  j ƒ| rÿt
 j | ƒ n  d S(   Nu   titleu   Printu   messageu   Print to Default Printeru   defaultu   masteru   breaku   prefixu	   IDLE_tmp_u   posixu   mainu   Generalu   print-command-posixu    2>&1u   ntu   print-command-winu   ru#   Printing failed (exit status 0x%x)
u   Printing command: %s
u   Print statusu-   Printing is not enabled for this platform: %sTF(   u   tkMessageBoxu   askokcancelu   OKu   textu	   focus_setu   Noneu	   get_savedu   filenameu   tempfileu   mkstempu   osu   closeu	   writefileu   unlinku   nameu   Trueu   idleConfu	   GetOptionu   Falseu   shlexu   quoteu   popenu   readu   stripu   repru	   showerroru   showinfo(   u   selfu   eventu   confirmu   tempfilenameu   savedu   filenameu   tfdu   platformu   printPlatformu   commandu   pipeu   outputu   statusu   message(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   print_window°  sX    				
u   IOBinding.print_windowu   Python filesu
   *.py *.pywu   TEXTu
   Text filesu   *.txtu	   All filesu   *u   darwinu   .pyu    c             C   sa   |  j  d ƒ \ } } |  j sB t j d |  j d |  j ƒ |  _ n  |  j j d | d | ƒ } | S(   Nu   openu   masteru	   filetypesu
   initialdiru   initialfile(   u   defaultfilenameu
   opendialogu   tkFileDialogu   Openu   textu	   filetypesu   show(   u   selfu   diru   baseu   filename(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   askopenfileí  s    	u   IOBinding.askopenfileu   openc             C   sn   |  j  r t j j |  j  ƒ S|  j r2 |  j d f Sy t j ƒ  } Wn t j k
 r_ d } Yn X| d f Sd  S(   Nu    (   u   filenameu   osu   pathu   splitu   dirnameu   getcwdu   error(   u   selfu   modeu   pwd(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   defaultfilenameõ  s    		u   IOBinding.defaultfilenamec             C   sj   |  j  d ƒ \ } } |  j sK t j d |  j d |  j d |  j ƒ |  _ n  |  j j d | d | ƒ } | S(   Nu   saveu   masteru	   filetypesu   defaultextensionu
   initialdiru   initialfile(   u   defaultfilenameu
   savedialogu   tkFileDialogu   SaveAsu   textu	   filetypesu   defaultextensionu   show(   u   selfu   diru   baseu   filename(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   asksavefile  s    				u   IOBinding.asksavefilec             C   s#   |  j  j r |  j  j | ƒ n  d S(   u-   Update recent file list on all editor windowsN(   u   editwinu   flistu   update_recent_files_list(   u   selfu   filename(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   updaterecentfileslist  s    u   IOBinding.updaterecentfileslistN(   u   Python filesu
   *.py *.pywu   TEXT(   u
   Text filesu   *.txtu   TEXT(   u	   All filesu   *(*   u   __name__u
   __module__u   __qualname__u   __init__u   closeu	   get_savedu	   set_savedu
   reset_undou   Noneu   filename_change_hooku   set_filename_change_hooku   filenameu   dirnameu   set_filenameu   openu   eolu   reu   compileu   eol_reu   osu   linesepu   eol_conventionu   loadfileu   _decodeu	   maybesaveu   saveu   save_asu   save_a_copyu	   writefileu   encodeu   fixlastlineu   print_windowu
   opendialogu
   savedialogu	   filetypesu   sysu   platformu   defaultextensionu   askopenfileu   defaultfilenameu   asksavefileu   updaterecentfileslist(   u
   __locals__(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu	   IOBindingn   sD   ,	$D'2	
u	   IOBindingc              C   sb   t  ƒ  }  Gd d „  d ƒ } t |  ƒ } | j ƒ  | j ƒ  | | ƒ } t | ƒ } |  j ƒ  d  S(   Nc             B   st   |  Ee  Z d  Z d d „  Z d d „  Z d d „  Z d d „  Z d	 d
 „  Z d d „  Z d d „  Z	 d d „  Z
 d S(   u   test.<locals>.MyEditWinc             S   sn   | |  _  d  |  _ |  j  j d |  j ƒ |  j  j d |  j ƒ |  j  j d |  j ƒ |  j  j d |  j ƒ d  S(   Nu   <Control-o>u   <Control-s>u   <Alt-s>u   <Alt-z>(   u   textu   Noneu   flistu   bindu   openu   saveu   save_asu   save_a_copy(   u   selfu   text(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   __init__  s    		u    test.<locals>.MyEditWin.__init__c             S   s   d S(   Ni    (    (   u   self(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu	   get_saved  s    u!   test.<locals>.MyEditWin.get_savedc             S   s   d  S(   N(    (   u   selfu   flag(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu	   set_saved  s    u!   test.<locals>.MyEditWin.set_savedc             S   s   d  S(   N(    (   u   self(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu
   reset_undo  s    u"   test.<locals>.MyEditWin.reset_undoc             S   s   |  j  j d ƒ d  S(   Nu   <<open-window-from-file>>(   u   textu   event_generate(   u   selfu   event(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   open  s    u   test.<locals>.MyEditWin.openc             S   s   |  j  j d ƒ d  S(   Nu   <<save-window>>(   u   textu   event_generate(   u   selfu   event(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   save  s    u   test.<locals>.MyEditWin.savec             S   s   |  j  j d ƒ d  S(   Nu   <<save-window-as-file>>(   u   textu   event_generate(   u   selfu   event(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   save_as!  s    u   test.<locals>.MyEditWin.save_asc             S   s   |  j  j d ƒ d  S(   Nu   <<save-copy-of-window-as-file>>(   u   textu   event_generate(   u   selfu   event(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   save_a_copy#  s    u#   test.<locals>.MyEditWin.save_a_copyN(   u   __name__u
   __module__u   __qualname__u   __init__u	   get_savedu	   set_savedu
   reset_undou   openu   saveu   save_asu   save_a_copy(   u
   __locals__(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu	   MyEditWin  s   u	   MyEditWin(   u   Tku   Textu   packu	   focus_setu	   IOBindingu   mainloop(   u   rootu	   MyEditWinu   textu   editwinu   io(    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   test  s    	

u   testu   __main__(/   u   osu   typesu   shlexu   sysu   codecsu   tempfileu   tkinter.filedialogu
   filedialogu   tkFileDialogu   tkinter.messageboxu
   messageboxu   tkMessageBoxu   reu   tkinteru   tkinter.simpledialogu	   askstringu   idlelib.configHandleru   idleConfu   BOM_UTF8u   localeu	   setlocaleu   LC_CTYPEu   ImportErroru   Erroru   getfilesystemencodingu   filesystemencodingu   locale_encodingu   platformu   getdefaultlocaleu   lookupu   LookupErroru   nl_langinfou   CODESETu   Noneu	   NameErroru   AttributeErroru
   ValueErroru   loweru   encodingu   compileu   ASCIIu	   coding_reu   blank_reu   coding_specu	   IOBindingu   testu   __name__(    (    (    u6   /opt/alt/python33/lib64/python3.3/idlelib/IOBinding.pyu   <module>   s`   
		
)ÿ £