Ë
    ¤ehö3  ã                   óè  — d dl mZ d dlZd dlZd dlmZmZ d dlZ	d dlm
Z
mZmZmZmZ d dlmZ d dlmZmZ d dlmZmZmZ d„ Z ej4                  g d¢¬	«      d
„ «       Zej4                  d„ «       Zej:                  j=                  d«      d„ «       Zej:                  j=                  d«      d„ «       Z ej:                  jC                  dg d¢«      d„ «       Z"ej4                  d„ «       Z#ej4                  d„ «       Z$ej:                  jJ                  ej:                  jH                  ej:                  j=                  d«      ej:                  j=                  d«       G d„ d«      «       «       «       «       Z&y)é    )ÚdedentN)ÚPyperclipExceptionÚPyperclipWindowsException)ÚNAÚ	DataFrameÚSeriesÚ
get_optionÚread_clipboard)ÚArrowStringArrayÚStringArray)ÚCheckedCallÚ_stringifyTextÚinit_qt_clipboardc                 ó2   — i }|dk7  r||d<   | dk7  r| |d<   |S )NÚdefaultÚexcelÚsep© )r   r   Úkwargss      ú\/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/tests/io/test_clipboard.pyÚbuild_kwargsr       s.   € Ø€FØ�	ÒØˆˆw‰Ø
ˆiÒØˆˆu‰Ø€Mó    )
ÚdelimsÚutf8Úutf16ÚstringÚlongÚnonasciiÚcolwidthÚmixedÚfloatÚint)Úparamsc           	      ó<  — | j                   }|dk(  rt        ddgddgdœ«      S |dk(  rt        dd	gd
dgdœ«      S |dk(  rt        ddgddgdœ«      S |dk(  rSt        t        j                  t	        d«      D �cg c]  }d|› �‘Œ	 c}«      j                  dd«      t        d«      ¬«      S |dk(  rUt        d«      }t        t        j                  j                  d«      j                  dd|dz   df¬«      t        d«      ¬«      S |dk(  r*t        dj                  «       dj                  «       d œ«      S |d!k(  rat        d"«      dz   }t        t        j                  t	        d«      D �cg c]  }d#|z  ‘Œ	 c}«      j                  dd«      t        d«      ¬«      S |d$k(  r`t        t        j                  d%d&«      d'z   t        j                  dd(«      j                  t        j                  «      t        d)«      d*œ«      S |d+k(  rBt        t        j                  j                  d«      j                  d,«      t        d«      ¬«      S |d-k(  rDt        t        j                  j                  d«      j                  ddd,«      t        d«      ¬«      S t        ‚c c}w c c}w ).Nr   z"a,	"b|czd	ef`zhi'jzk''lm)ÚaÚbr   u   Âµasdu   Î©Å“âˆ‘`u   Ã¸Ï€âˆ†ËšÂ¬u   Å“âˆ‘`Â®r   u   ðŸ‘�ðŸ‘�ÚabcÚdefr   é   zi-é   é   )Úcolumnsr   zdisplay.max_rowsé   r   é
   é   )Úsizer   z
in Englishu   en espaÃ±ol)ÚenÚesr   zdisplay.max_colwidthÚxr    ç      ð?g      @g{®Gáz„?é   Úabcde)r%   r&   Úcr!   )r*   r+   r"   )Úparamr   ÚnpÚarrayÚrangeÚreshapeÚlistr	   ÚrandomÚdefault_rngÚintegersÚsplitÚarangeÚastypeÚint64Ú
ValueError)ÚrequestÚ	data_typeÚiÚmax_rowsÚ_cwÚ_s         r   ÚdfrL   )   st  € ð —‘€Ià�HÒÜ ¨XÐ6¸fÀgÐ=NÑOÓPÐPØ	�fÒ	Ü ¨Ð4¸MÈ:Ð;VÑWÓXÐXØ	�gÒ	ÜØ)Ð+AÐBÈ%ÐQVÈÑXó
ð 	
ð 
�hÒ	ÜÜ�H‰H¬¨b«	Ö2 1˜˜1˜#’hÒ2Ó3×;Ñ;¸A¸qÓAÌ4ÐPUË;ô
ð 	
ð 
�fÒ	ÜÐ0Ó1ˆÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸8Àa¹<ÈÐ:KÐ-ÓLÜ˜“Kô
ð 	
ð 
�jÒ	 Ü × 2Ñ 2Ó 4¸M×<OÑ<OÓ<QÑRÓSÐSØ	�jÒ	 ÜÐ/Ó0°1Ñ4ˆÜÜ�H‰H¬¨r«Ö3 A�c˜C“iÒ3Ó4×<Ñ<¸QÀÓBÌDÐQVËKô
ð 	
ð 
�gÒ	Üä—Y‘Y˜s CÓ(¨4Ñ/Ü—Y‘Y˜q !“_×+Ñ+¬B¯H©HÓ5Ü˜'“]ñó
ð 	
ð 
�gÒ	ÜœŸ™×.Ñ.¨qÓ1×8Ñ8¸Ó@Ì$ÈuË+ÔVÐVØ	�eÒ	ÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°°VÓ<ÄdÈ5Ãkô
ð 	
ô Ðùò= 3ùò 4s   Á8JÅ'Jc              #   óŒ   K  — d„ }| j                  «       5 }|j                  d|d¬«       d–— ddd«       y# 1 sw Y   yxY w­w)z<
    Mocks WinError to help with testing the clipboard.
    c                   ó   — y)NzWindow Errorr   r   r   r   Ú_mock_win_errorz$mock_ctypes.<locals>._mock_win_errork   s   € Ør   zctypes.WinErrorF)ÚraisingN)ÚcontextÚsetattr)ÚmonkeypatchrO   Úms      r   Úmock_ctypesrU   e   sE   è ø€ òð 
×	Ñ	Ó	ð  !Ø	�	‰	Ð# _¸eˆ	ÔDÛ÷÷ ñ üs   ‚A–8¯	A¸A½ArU   c                 óÐ   — d„ }| j                  dd„ «       d|j                  › d�}t        j                  t        |¬«      5   t        |«      «        ddd«       y# 1 sw Y   yxY w)z…
    Give CheckCall a function that returns a falsey value and
    mock get_errno so it returns false so an exception is raised.
    c                   ó   — y©NFr   r   r   r   Ú_return_falsez6test_checked_call_with_bad_call.<locals>._return_false{   s   € Ør   úpandas.io.clipboard.get_errnoc                   ó   — y©NTr   r   r   r   ú<lambda>z1test_checked_call_with_bad_call.<locals>.<lambda>~   ó   � r   zError calling z \(Window Error\)©ÚmatchN)rR   Ú__name__ÚpytestÚraisesr   r   )rS   rY   Úmsgs      r   Útest_checked_call_with_bad_callre   t   sa   € òð ×ÑÐ7¹ÔFØ˜=×1Ñ1Ð2Ð2EÐ
F€Cä	�‰Ô0¸Ô	<ñ %Ø"Œ�MÓ"Ô$÷%÷ %ñ %ús   ÁAÁA%c                 ó\   — d„ }| j                  dd„ «       t        |«      } |«       du sJ ‚y)zÆ
    Give CheckCall a function that returns a truthy value and
    mock get_errno so it returns true so an exception is not raised.
    The function should return the results from _return_true.
    c                   ó   — yr\   r   r   r   r   Ú_return_truez7test_checked_call_with_valid_call.<locals>._return_true�   s   € Ør   rZ   c                   ó   — yrX   r   r   r   r   r]   z3test_checked_call_with_valid_call.<locals>.<lambda>�   r^   r   TN)rR   r   )rS   rh   Úchecked_calls      r   Ú!test_checked_call_with_valid_callrk   …   s6   € òð ×ÑÐ7¹ÔGô ˜|Ó,€LÙ‹>˜TÑ!Ð!Ñ!r   Útext)ÚString_testTr/   r4   y              ð?c                 ó&  — t         t        t        t        f}t	        | |«      rt        | «      }|t        | «      k(  sJ ‚y dt        | «      j                  › �}t        j                  t        |¬«      5  t        | «       d d d «       y # 1 sw Y   y xY w)NzJonly str, int, float, and bool values can be copied to the clipboard, not r_   )Ústrr"   r!   ÚboolÚ
isinstancer   Útypera   rb   rc   r   )rl   Úvalid_typesÚresultrd   s       r   Útest_stringify_textru   —   s†   € ô œœU¤DÐ)€Kä�$˜Ô$Ü Ó%ˆØœ˜T›Ò"Ð"Ñ"ð3Ü37¸³:×3FÑ3FÐ2GðIð 	ô �]‰]Ô-°SÔ9ñ 	!Ü˜4Ô ÷	!÷ 	!ñ 	!ús   Á2BÂBc              #   ó$  K  — t        «       \  }}| j                  «       5 }|j                  t        j                  j
                  d|«       |j                  t        j                  j
                  d|«       d –— d d d «       y # 1 sw Y   y xY w­w)NÚclipboard_setÚclipboard_get)r   rQ   rR   ÚpdÚioÚ	clipboard)rS   Úqt_cutÚqt_pasterT   s       r   Úset_pyqt_clipboardr~   °   sh   è ø€ ä(Ó*Ñ€FˆHØ	×	Ñ	Ó	ð  !Ø	�	‰	”"—%‘%—/‘/ ?°FÔ;Ø	�	‰	”"—%‘%—/‘/ ?°HÔ=Û÷÷ ñ üs   ‚B ABÁ;	BÂBÂ	Bc              #   óT   K  — | j                  «       }|–— |j                  «        y ­w)N)r{   Úclear)ÚqappÚclips     r   r{   r{   ¹   s    è ø€ à�>‰>Ó€DØ
‚JØ‡J�J…Lùs   ‚&(r~   r{   c                   óÚ  — e Zd Zej                  j                  dg d¢«      ej                  j                  dg d¢«      d„ «       «       Zd„ Zd„ Zd„ Z	ej                  j                  dg d	¢«      ej                  j                  d
g d¢«      d„ «       «       Z
ej                  j                  dddg«      d„ «       Zd„ Zd„ Zej                  j                  ddj                  g d¢«      g d¢g d¢g d¢gfdj                  g d¢«      g d¢g d¢gfg«      d„ «       Zd„ Zej                  j                  dg d¢«      d„ «       Zej                  j                  ddd g«      d!„ «       Zd"„ Zd#„ Zy)$ÚTestClipboardr   )Nú	ú,ú|Úencoding)NzUTF-8zutf-8r   c                 ó|   — |j                  d ||¬«       t        |xs dd|¬«      }t        j                  ||«       y )N)r   r   rˆ   r…   r   )r   Ú	index_colrˆ   )Úto_clipboardr
   ÚtmÚassert_frame_equal)ÚselfrL   r   rˆ   rt   s        r   Útest_round_trip_frame_sepz'TestClipboard.test_round_trip_frame_sepÇ   s8   € ð 	�‰˜d¨°hˆÔ?Ü C¢K¨4¸1ÀxÔPˆÜ
×Ñ˜b &Õ)r   c                 óº   — |j                  dd ¬«       t        «       }|j                  «       |j                  «       k(  sJ ‚|j                  |j                  k(  sJ ‚y )NF©r   r   )r‹   r
   Ú	to_stringÚshape)rŽ   rL   rt   s      r   Útest_round_trip_frame_stringz*TestClipboard.test_round_trip_frame_stringÏ   sM   € Ø
�‰˜e¨ˆÔ.ÜÓ!ˆØ�|‰|‹~ ×!1Ñ!1Ó!3Ò3Ð3Ð3Ø�x‰x˜6Ÿ<™<Ò'Ð'Ñ'r   c                 óŒ   — t        j                  t        dd¬«      5  |j                  dd¬«       d d d «       y # 1 sw Y   y xY w)NzAto_clipboard in excel mode requires a single character separator.F)r`   Úcheck_stacklevelTz\tr‘   )rŒ   Úassert_produces_warningÚUserWarningr‹   ©rŽ   rL   s     r   Útest_excel_sep_warningz$TestClipboard.test_excel_sep_warning×   s@   € Ü×'Ñ'ÜØUØ"ô
ñ 	3ð
 �O‰O $¨EˆOÔ2÷	3÷ 	3ñ 	3ús	   �:ºAc                 ó|   — t        j                  «       5  |j                  dd¬«       d d d «       y # 1 sw Y   y xY w)NFr…   r‘   )rŒ   r—   r‹   r™   s     r   Útest_copy_delim_warningz%TestClipboard.test_copy_delim_warningà   s3   € Ü×'Ñ'Ó)ñ 	3Ø�O‰O %¨TˆOÔ2÷	3÷ 	3ñ 	3ús   •2²;)r…   Nr   r   )TNr   c                 óŠ   — t        ||«      } |j                  di |¤Ž |j                  «       |j                  d¬«      k(  sJ ‚y )Nr…   ©r   r   )r   r‹   rl   Úto_csv)rŽ   r   r   rL   r{   r   s         r   Ú test_clipboard_copy_tabs_defaultz.TestClipboard.test_clipboard_copy_tabs_defaultæ   sA   € ô ˜c 5Ó)ˆØˆ�‰Ñ!˜&Ò!Ø�~‰~Ó 2§9¡9° 9Ó#6Ò6Ð6Ñ6r   Nr   c                 óÔ   — t        |d«      } |j                  di |¤Ž t        d¬«      }|j                  «       |j                  «       k(  sJ ‚|j                  |j                  k(  sJ ‚y )NFz\s+rž   r   )r   r‹   r
   r’   r“   )rŽ   r   rL   r   rt   s        r   Útest_clipboard_copy_stringsz)TestClipboard.test_clipboard_copy_stringsî   s\   € ä˜c 5Ó)ˆØˆ�‰Ñ!˜&Ò!Ü FÔ+ˆØ×ÑÓ! R§\¡\£^Ò3Ð3Ð3Ø�x‰x˜6Ÿ<™<Ò'Ð'Ñ'r   c                 óž  — ddi}t        dj                  «       «      }|j                  |«       t        di |¤Ž}|j                  d   dk(  sJ ‚t        dj                  «       «      }|j                  |«       t        di |¤Ž}t        dj                  «       «      }|j                  |«       t        di |¤Ž}t        j                  ||«       y )	NÚengineÚpythonz^
            John James	Charlie Mingus
            1	2
            4	Harry Carney
            )r/   r/   zHarry Carneyz@
            a	 b
            1  2
            3  4
            z@
            a  b
            1  2
            3  4
            r   )r   ÚstripÚsetTextr
   ÚilocrŒ   r�   )rŽ   r{   Úclip_kwargsrl   rL   ÚresÚexps          r   Útest_read_clipboard_infer_excelz-TestClipboard.test_read_clipboard_infer_excelö   sÕ   € à Ð*ˆäð÷ ‘“ó
ˆð 	×Ñ˜$ÔÜÑ*˜kÑ*ˆð �w‰w�t‰} Ò.Ð.Ð.ô ð÷ ‘“ó
ˆð 	×Ñ˜$ÔÜÑ+˜{Ñ+ˆäð÷ ‘“ó
ˆð 	×Ñ˜$ÔÜÑ+˜{Ñ+ˆä
×Ñ˜c 3Õ'r   c                 ó�   — d}|j                  |«       t        «       }t        g d¢g d¢dœ¬«      }t        j                  ||«       y )Nzcol1	col2
1	red
	blue
2	green©r/   Nr-   ©ÚredÚblueÚgreen©Úcol1Úcol2)Údata©r§   r
   r   rŒ   r�   )rŽ   r{   rl   rL   Údf_expecteds        r   Útest_infer_excel_with_nullsz)TestClipboard.test_infer_excel_with_nulls  sB   € à5ˆà×Ñ˜$ÔÜÓˆÜÚ&Ò0HÑIô
ˆô
 	×Ñ˜b +Õ.r   Ú
multiindexú
)z			col1	col2zA	0	True	1	redzA	1	True		bluezB	0	False	2	green)ÚAr¼   ÚB)r   r/   r   )TTF)z		col1	col2z	A	0	1	redz	A	1		bluezB	0	2	greenc                 óš   — |j                  |d   «       t        «       }t        g d¢g d¢dœ|d   ¬«      }t        j                  ||«       y )Nr   r®   r¯   r³   r/   )r¶   Úindexr·   )rŽ   r{   rº   rL   r¸   s        r   Ú test_infer_excel_with_multiindexz.TestClipboard.test_infer_excel_with_multiindex+  sJ   € ð2 	×Ñ˜* Q™-Ô(ÜÓˆÜÚ&Ò0HÑIØ˜Q‘-ô
ˆô 	×Ñ˜b +Õ.r   c                 ó  — d}t        j                  t        |¬«      5  |j                  d¬«       d d d «       t        j                  t        |¬«      5  t        d¬«       d d d «       y # 1 sw Y   Œ:xY w# 1 sw Y   y xY w)Nz&clipboard only supports utf-8 encodingr_   Úascii)rˆ   )rb   rc   rE   r‹   ÚNotImplementedErrorr
   ©rŽ   rL   rd   s      r   Útest_invalid_encodingz#TestClipboard.test_invalid_encodingN  si   € Ø6ˆä�]‰]œ:¨SÔ1ñ 	.Ø�O‰O WˆOÔ-÷	.ä�]‰]Ô.°cÔ:ñ 	-Ü GÕ,÷	-ð 	-÷	.ð 	.ú÷	-ð 	-ús   žA*ÁA6Á*A3Á6A?r¶   )u   ðŸ‘�...u   Î©Å“âˆ‘`...zabcd...c                 ó€   — t        d|gi«      }|j                  «        t        «       }t        j                  ||«       y )Nr¶   )r   r‹   r
   rŒ   r�   )rŽ   r¶   rL   rt   s       r   Útest_raw_roundtripz TestClipboard.test_raw_roundtripV  s7   € ô ˜  Ð'Ó(ˆØ
�‰ÔÜÓ!ˆÜ
×Ñ˜b &Õ)r   r¤   r7   r¥   c                 óØ  — |dk(  s|dk(  rt        j                  d«      }|dk(  ret        t        j                  ddgt        j
                  ¬«      «      }t        t        j                  dt        gt        j
                  ¬«      «      }n�|dk(  rS|dk7  rNt        j                  d«      }ddlm}  ||j	                  ddg«      «      } ||j	                  dd g«      «      }n8t        j	                  ddg«      «      }t        |j	                  dd g«      «      }d	}	|j                  |	«       t        j                  d
|«      5  t        d||¬«      }
d d d «       t        |t        ddgd¬«      t        ddgd¬«      |t        dt        gd¬«      t        dt        gd¬«      t        t        t        gd¬«      t        ddgd¬«      t        dt        gd¬«      dœ	«      }|dk(  r`ddlm} t        |j                   D �ci c]  }| |j	                  ||   d¬«      «      “Œ! c}«      } |j	                  d d g«      «      |d<   t#        j$                  
|«       y # 1 sw Y   �Œ
xY wc c}w )NÚpyarrowr¥   r3   Úy)Údtyper7   r   )ÚArrowExtensionArrayz@a,b,c,d,e,f,g,h,i
x,1,4.0,x,2,4.0,,True,False
y,2,5.0,,,,,False,zmode.string_storager†   )r   Údtype_backendr¤   r/   r-   ÚInt64g      @g      @ÚFloat64TFÚboolean)	r%   r&   r7   ÚdÚeÚfÚgÚhrH   )Úfrom_pandasrÔ   )rb   Úimportorskipr   r9   r:   Úobject_r   Úpandas.arraysrÌ   r   r§   ry   Úoption_contextr
   r   r   r,   rŒ   r�   )rŽ   r{   Ústring_storagerÍ   r¤   ÚpaÚstring_arrayÚstring_array_narÌ   rl   rt   ÚexpectedÚcols                r   Ú!test_read_clipboard_dtype_backendz/TestClipboard.test_read_clipboard_dtype_backend^  s0  € ð
 ˜YÒ&¨-¸9Ò*DÜ×$Ñ$ YÓ/ˆBà˜XÒ%Ü&¤r§x¡x°°c°
Ä"Ç*Á*Ô'MÓNˆLÜ)¬"¯(©(°C¼°9ÄBÇJÁJÔ*OÓP‰Oà˜iÒ'¨F°cªMÜ×$Ñ$ YÓ/ˆBÝ9á.¨r¯x©x¸¸c¸
Ó/CÓDˆLÙ1°"·(±(¸CÀ¸;Ó2GÓH‰Oô ,¨B¯H©H°c¸3°ZÓ,@ÓAˆLÜ.¨r¯x©x¸¸d¸Ó/DÓEˆOðˆð 	×Ñ˜$Ôä×ÑÐ4°nÓEñ 	YÜ#¨¸=ÐQWÔXˆF÷	Yô à!Ü˜Q ˜F¨'Ô2Ü˜S #˜J¨iÔ8Ø$Ü˜Q¤˜G¨7Ô3Ü˜S¤"˜I¨YÔ7ÜœR¤˜H¨GÔ4Ü˜T 5˜M°Ô;Ü˜U¤B˜K¨yÔ9ñ
ó
ˆð ˜IÒ%Ý9ä ð  (×/Ñ/öàð Ñ,¨R¯X©X°h¸s±mÐQU¨XÓ-VÓWÑWòóˆHñ 0°·±¸$À¸Ó0FÓGˆH�S‰Mä
×Ñ˜f hÕ/÷7	Yñ 	Yüò(s   ÅIÇ<$I'ÉI$c                 ó€   — d}t        j                  t        |¬«      5  t        d¬«       d d d «       y # 1 sw Y   y xY w)NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r_   Únumpy)rÍ   )rb   rc   rE   r
   )rŽ   rd   s     r   Útest_invalid_dtype_backendz(TestClipboard.test_invalid_dtype_backend—  s9   € ð%ð 	ô �]‰]œ:¨SÔ1ñ 	2Ü¨Õ1÷	2÷ 	2ñ 	2ús   ž4´=c                 óª   — t        dg d¢i«      }d}t        j                  t        |¬«      5  |j	                  dd «       d d d «       y # 1 sw Y   y xY w)Nr%   )r/   r-   r+   zTStarting with pandas version 3.0 all arguments of to_clipboard will be keyword-only.r_   T)r   rŒ   r—   ÚFutureWarningr‹   rÄ   s      r   Ú&test_to_clipboard_pos_args_deprecationz4TestClipboard.test_to_clipboard_pos_args_deprecationŸ  sP   € ä˜šYÐ'Ó(ˆð%ð 	ô ×'Ñ'¬¸SÔAñ 	(Ø�O‰O˜D $Ô'÷	(÷ 	(ñ 	(ús   ­A	Á	A)ra   Ú
__module__Ú__qualname__rb   ÚmarkÚparametrizer�   r”   rš   rœ   r    r¢   r¬   r¹   ÚjoinrÀ   rÅ   rÇ   rá   rä   rç   r   r   r   r„   r„   À   s—  „ ð ‡[�[×Ñ˜UÒ$:Ó;Ø‡[�[×Ñ˜ZÒ)IÓJñ*ó Kó <ð*ò(ò3ò3ð ‡[�[×Ñ˜UÒ$;Ó<Ø‡[�[×Ñ˜WÒ&=Ó>ñ7ó ?ó =ð7ð ‡[�[×Ñ˜U T¨9Ð$5Ó6ñ(ó 7ð(ò&(òP/ð ‡[�[×ÑØð —	‘	òóò !¢)Ò-@ÐAð
ð —	‘	ÚXóò !¢)Ð,ð	ð	
óñ,/ó-ð,/ò-ð ‡[�[×Ñ˜VÒ%PÓQñ*ó Rð*ð ‡[�[×Ñ˜X¨¨X Ó7ñ60ó 8ð60òp2ó(r   r„   )'Útextwrapr   rã   r9   rb   Úpandas.errorsr   r   Úpandasry   r   r   r   r	   r
   Úpandas._testingÚ_testingrŒ   Úpandas.core.arraysr   r   Úpandas.io.clipboardr   r   r   r   ÚfixturerL   rU   rê   Úusefixturesre   rk   rë   ru   r~   r{   Ú
single_cpur„   r   r   r   ú<module>r÷      s€  ðÝ ã Û ÷ó
 ÷õ õ ÷÷
ñ òð €‡�òôñ+óð+ð\ ‡�ñó ðð ‡�×Ñ˜Ó'ñ%ó (ð%ð  ‡�×Ñ˜Ó'ñ"ó (ð"ð" ‡�×ÑØ
òó	ñ!ó	ð!ð ‡�ñó ðð ‡�ñó ðð ‡�×ÑØ‡�×ÑØ‡�×ÑÐ-Ó.Ø‡�×Ñ˜Ó%÷c(ð c(ó &ó /ó ó ñc(r   