Ë
    ¤eh´]  ã            	       ó¼  — d Z ddlZddlZddlZddlmZ ddlmZ ddl	Z
ddlmZ ddlmZmZ d„ Zej$                  d„ «       Zej$                  d„ «       Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej>                  jA                  d¬«      d„ «       Z!ej>                  jA                  d¬«      d„ «       Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'ej>                  jQ                  dejR                   ejT                  d«       e+d«      de
jX                  g«      d„ «       Z-ej>                  jQ                  dd d!g«      d"„ «       Z.d#„ Z/d$„ Z0d%„ Z1ej>                  jQ                  d&d d!g«      ej>                  jA                  d'¬«      d(„ «       «       Z2ej>                  jQ                  d&d d!g«      ej>                  jA                  d'¬«      d)„ «       «       Z3ej>                  jQ                  d*d+d,g«      ej>                  jQ                  d&d d!g«      d-„ «       «       Z4ej>                  jQ                  d*d+d,g«      ej>                  jQ                  d.e
jj                  e
jl                  g«      d/„ «       «       Z7d0„ Z8d1„ Z9ej>                  ju                  d2«      d3„ «       Z;ej>                  ju                  d2«      d4„ «       Z<d5„ Z=d6„ Z>ej>                  jQ                  d7g d8¢ ejl                  g d9¢«      fg d:¢ ejl                  g d;¢«      fg«      d<„ «       Z?d=„ Z@ej>                  jQ                  d>ej‚                  ej„                  ejT                  g«      d?„ «       ZCd@„ ZDdA„ ZEdB„ ZFdC„ ZGdD„ ZHdE„ ZIy)Fz—
This module tests the functionality of StringArray and ArrowStringArray.
Tests for the str accessors are in pandas/tests/strings/test_string_array.py
é    N)Úpa_version_under12p0)Úis_dtype_equal)ÚArrowStringArrayÚArrowStringArrayNumpySemanticsc                 ó`   — | j                   dk(  rt        j                  S t        j                  S )NÚpyarrow_numpy)ÚstorageÚnpÚnanÚpdÚNA©Údtypes    úe/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/tests/arrays/string_/test_string.pyÚna_valr      s    € Ø‡}�}˜Ò'Ü�v‰vˆä�u‰uˆó    c                 ó.   — t        j                  | ¬«      S )z=Fixture giving StringDtype from parametrized 'string_storage')r	   )r   ÚStringDtype)Ústring_storages    r   r   r      s   € ô �>‰> .Ô1Ð1r   c                 ó"   — | j                  «       S )z3Fixture giving array type from parametrized 'dtype')Úconstruct_array_typer   s    r   Úclsr   #   s   € ð ×%Ñ%Ó'Ð'r   c                 óÚ  — t        j                  dt        j                  dt         j                  dg| ¬«      i«      }| j                  dk(  rd}nd}t        |«      |k(  sJ ‚| j                  dk(  rd}nd	}t        |j                  «      |k(  sJ ‚| j                  d
k(  r	d}d|› d�}n | j                  dk(  r	d}d|› d�}nd}d|› d�}t        |j                  j                  «      |k(  sJ ‚y )NÚAÚaÚbr   r   z     A
0    a
1  NaN
2    bz      A
0     a
1  <NA>
2     bz10      a
1    NaN
2      b
Name: A, dtype: stringz40       a
1    <NA>
2       b
Name: A, dtype: stringÚpyarrowr   ú<z+>
['a', <NA>, 'b']
Length: 3, dtype: stringr   z*>
['a', nan, 'b']
Length: 3, dtype: stringÚStringArray)r   Ú	DataFrameÚarrayr   r	   Úreprr   )r   ÚdfÚexpectedÚarr_names       r   Ú	test_reprr&   )   sî   € Ü	�‰�sœBŸH™H c¬2¯5©5°#Ð%6¸eÔDÐEÓ	F€BØ‡}�}˜Ò'Ø3‰à7ˆÜ�‹8�xÒÐÐà‡}�}˜Ò'ØI‰àLˆÜ�—‘‹:˜Ò!Ð!Ð!à‡}�}˜	Ò!Ø%ˆØ�x�jÐ MÐN‰Ø	�‰˜/Ò	)Ø3ˆØ�x�jÐ LÐM‰à ˆØ�x�jÐ MÐNˆÜ�—‘—
‘
Ó˜xÒ'Ð'Ñ'r   c                 ót   — | j                  g d¢|¬«      }|d   €J ‚|d   t        |j                  «      u sJ ‚y )N)r   Nr   r   é   )Ú_from_sequencer   r   )r   r   r   s      r   Útest_none_to_nanr*   C   sB   € Ø×ÑÒ+°5ÐÓ9€AØˆQ‰4ÐÐÐØˆQ‰4”6˜!Ÿ'™'“?Ñ"Ð"Ñ"r   c                 ó°  — | j                  ddg|¬«      }| t        j                  j                  u rd}nd}t	        j
                  t        |¬«      5  d|d<   d d d «       | t        j                  j                  u rd	}nd}t	        j
                  t        |¬«      5  t        j                  d
dg«      |d d  d d d «       y # 1 sw Y   ŒixY w# 1 sw Y   y xY w)Nr   r   r   z4Cannot set non-string value '10' into a StringArray.úScalar must be NA or str©Úmatché
   r   zMust provide strings.r(   é   )	r)   r   Úarraysr   ÚpytestÚraisesÚ	TypeErrorr
   r!   )r   r   ÚarrÚmsgs       r   Útest_setitem_validatesr7   I   s¿   € Ø
×
Ñ
˜c 3˜Z¨uÐ
Ó
5€Cà
Œb�i‰i×#Ñ#Ñ#ØD‰à(ˆÜ	�‰”y¨Ô	,ñ ØˆˆA‰÷ð Œb�i‰i×#Ñ#Ñ#Ø%‰à(ˆÜ	�‰”y¨Ô	,ñ "Ü—‘˜1˜a˜&Ó!ˆ‰Aˆ÷"ð "÷ð ú÷"ð "ús   ÁC ÂCÃ C	ÃCc                 óž   — t        j                  ddg| ¬«      }d|d<   t        j                  ddg| ¬«      }t        j                  ||«       y )Nr   Úcr   Údr   ©r   r!   ÚtmÚassert_extension_array_equal)r   r5   r$   s      r   Útest_setitem_with_scalar_stringr>   [   sE   € ô �(‰(�C˜�: UÔ
+€CØ€Cˆ�FÜ�x‰x˜˜c˜
¨%Ô0€HÜ×#Ñ# C¨Õ2r   c                 ó:  — t        j                  g d¢| ¬«      }t        j                  dd g«      }|j                  «       }||ddg<   t        j                  dt         j                  dg| ¬«      }t        j                  ||«       t        j                  ||«       y )N©r   r   r9   r   r   r   r(   r9   )r   r!   r
   Úcopyr   r<   r=   Úassert_numpy_array_equal)r   r5   ÚvalueÚ
value_origr$   s        r   Ú$test_setitem_with_array_with_missingrE   d   sy   € ô �(‰(’?¨%Ô
0€CÜ�H‰H�c˜4�[Ó!€EØ—‘“€JØ€CˆˆAˆ�Kä�x‰x˜œbŸe™e SÐ)°Ô7€HÜ×#Ñ# C¨Ô2Ü×Ñ  zÕ2r   c                 óÚ  — t        j                  t        j                  dd¬«      «      }d |d<   |j                  | «      }t	        |j
                  | «      sJ ‚|j                  d«      }t        j                  ||«       ||j                  d   z
  }|j                  | «      }t	        |j
                  | «      sJ ‚|j                  |j
                  «      }t        j                  ||«       y )NÚ2000é   )Úperiodsr   zdatetime64[ns]éÿÿÿÿ)	r   ÚSeriesÚ
date_rangeÚastyper   r   r<   Úassert_series_equalÚiloc)r   ÚserÚcastedÚresultÚser2Úcasted2Úresult2s          r   Útest_astype_roundtriprV   q   s½   € Ü
�)‰)”B—M‘M &°"Ô5Ó
6€CØ€Cˆ�Fà�Z‰Z˜Ó€FÜ˜&Ÿ,™,¨Ô.Ð.Ð.à�]‰]Ð+Ó,€FÜ×Ñ˜6 3Ô'ð �—‘˜"‘Ñ€DØ�k‰k˜%Ó €GÜ˜'Ÿ-™-¨Ô/Ð/Ð/à�n‰n˜TŸZ™ZÓ(€GÜ×Ñ˜7 DÕ)r   c                 ó"  — t        j                  g d¢| ¬«      }t        j                  g d¢| ¬«      }||z   }t        j                  g d¢| ¬«      }t        j                  ||«       |j	                  |«      }t        j                  ||«       |j                  |«      }t        j                  g d¢| ¬«      }t        j                  ||«       |j	                  |d¬«      }t        j                  g d¢| ¬«      }t        j                  ||«       y )	N)r   r   r9   NNr   )ÚxÚyNÚzN)ÚaxÚbyNNN)ÚxaÚybNNNú-)Ú
fill_value)r[   r\   zc-z-zN)r   rK   r<   rN   ÚaddÚradd)r   r   r   rR   r$   s        r   Útest_addrc   „   sÌ   € Ü
�	‰	Ò-°UÔ;€AÜ
�	‰	Ò-°UÔ;€Aà�‰U€FÜ�y‰yÒ7¸uÔE€HÜ×Ñ˜6 8Ô,à�U‰U�1‹X€FÜ×Ñ˜6 8Ô,à�V‰V�A‹Y€FÜ�y‰yÒ7¸uÔE€HÜ×Ñ˜6 8Ô,à�U‰U�1 ˆUÓ%€FÜ�y‰yÒ7¸uÔE€HÜ×Ñ˜6 8Õ,r   c                 óô  — | j                   |v r4d}t        j                  j                  d |¬«      }|j	                  |«       t        j                  g d¢| ¬«      }t        j                  g d¢gt        ¬«      }t        j                  t        d¬«      5  ||z    d d d «       t        j                  |«      }t        j                  t        d¬«      5  ||z    d d d «       y # 1 sw Y   ŒHxY w# 1 sw Y   y xY w)Nz*Failed: DID NOT RAISE <class 'ValueError'>©r3   Úreasonr@   r   z3 != 1r-   )r	   r2   ÚmarkÚxfailÚapplymarkerr   r!   r
   Úobjectr3   Ú
ValueErrorrK   )r   ÚrequestÚarrow_string_storagerf   rg   r   r   Úss           r   Útest_add_2dro   ˜   sÆ   € Ø‡}�}Ð,Ñ,Ø=ˆÜ�{‰{× Ñ ¨°VÐ Ó<ˆØ×Ñ˜DÔ!ä
�‰’¨Ô.€AÜ
�‰’/Ð"¬&Ô1€AÜ	�‰”z¨Ô	2ñ Ø	ˆAŠ÷ô 	�	‰	�!‹€AÜ	�‰”z¨Ô	2ñ Ø	ˆAŠ÷ð ÷	ð ú÷ð ús   ÂC"ÃC.Ã"C+Ã.C7c                 ó  — t        j                  g d¢| ¬«      }g d¢}||z   }t        j                  g d¢| ¬«      }t        j                  ||«       ||z   }t        j                  g d¢| ¬«      }t        j                  ||«       y )N)r   r   NNr   )rX   NrY   N)r[   NNN)r]   NNNr;   )r   r   ÚotherrR   r$   s        r   Útest_add_sequencerr   ¨   sl   € Ü
�‰Ò'¨uÔ5€AÚ"€Eà�‰Y€FÜ�x‰xÒ0¸Ô>€HÜ×#Ñ# F¨HÔ5à�Q‰Y€FÜ�x‰xÒ0¸Ô>€HÜ×#Ñ# F¨HÕ5r   c                 óÔ   — t        j                  g d¢| ¬«      }|dz  }t        j                  g d¢| ¬«      }t        j                  ||«       d|z  }t        j                  ||«       y )N©r   r   Nr   r0   )ÚaaÚbbNr;   )r   r   rR   r$   s       r   Útest_mulrw   µ   sV   € Ü
�‰Ò!¨Ô/€AØ�‰U€FÜ�x‰xÒ*°%Ô8€HÜ×#Ñ# F¨HÔ5à�‰U€FÜ×#Ñ# F¨HÕ5r   zGH-28527©rf   c                 ó¬  — t        j                  g d¢| ¬«      }t        j                  g d¢gt        ¬«      }|j	                  |«      t
        u sJ ‚||z   }t        j                  g d¢g«      j                  | «      }t        j                  ||«       ||z   }t        j                  g d¢g«      j                  | «      }t        j                  ||«       y )N)r   r   r9   r:   r   )ÚtrY   ÚvÚw)Úatr\   ÚcvÚdw)Útar^   ÚvcÚwd)	r   r!   r    rj   Ú__add__ÚNotImplementedrM   r<   Úassert_frame_equal©r   r5   r#   rR   r$   s        r   Útest_add_stringsr‡   ¿   s©   € ä
�(‰(Ò'¨uÔ
5€CÜ	�‰Ò+Ð,´FÔ	;€BØ�;‰;�r‹?œnÑ,Ð,Ð,à�2‰X€FÜ�|‰|Ò5Ð6Ó7×>Ñ>¸uÓE€HÜ×Ñ˜& (Ô+à�#‰X€FÜ�|‰|Ò5Ð6Ó7×>Ñ>¸uÓE€HÜ×Ñ˜& (Õ+r   c                 óÈ  — t        j                  ddt        j                  t        j                  g| ¬«      }t        j                  dt        j                  dt        j                  gg«      }|j                  |«      t        u sJ ‚||z   }t        j                  dt        j                  t        j                  t        j                  gg«      j                  | «      }t        j                  ||«       ||z   }t        j                  dt        j                  t        j                  t        j                  gg«      j                  | «      }t        j                  ||«       y )Nr   r   r   rX   rY   r[   r]   )
r   r!   r
   r   r    rƒ   r„   rM   r<   r…   r†   s        r   Útest_add_framer‰   Î   sï   € ä
�(‰(�C˜œbŸf™f¤b§f¡fÐ-°UÔ
;€CÜ	�‰˜œRŸV™V S¬"¯&©&Ð1Ð2Ó	3€Bà�;‰;�r‹?œnÑ,Ð,Ð,à�2‰X€FÜ�|‰|˜d¤B§F¡F¬B¯F©F´B·F±FÐ;Ð<Ó=×DÑDÀUÓK€HÜ×Ñ˜& (Ô+à�#‰X€FÜ�|‰|˜d¤B§F¡F¬B¯F©F´B·F±FÐ;Ð<Ó=×DÑDÀUÓK€HÜ×Ñ˜& (Õ+r   c           
      ó¬  — d| j                   › d�}t        j                  g d¢|¬«      }d} t        ||«      |«      }|j                  dk(  r…t        j                  |D �cg c]  } t        ||«      |«      ‘Œ c}«      }| t        j                  k(  rd|d<   nd|d<   t        j                  ||j                  t
        j                  «      «       y |j                  d	k(  rd
nd}t        j                  |D �cg c]  } t        ||«      |«      ‘Œ c}t        ¬«      }t        j                  ||¬«      }t        j                  ||«       y c c}w c c}w )NÚ__©r   Nr9   r   r   r   Tr(   Fr   úboolean[pyarrow]Úboolean)Ú__name__r   r!   Úgetattrr	   r
   ÚoperatorÚner<   rB   rM   Úbool_rj   r=   )	Úcomparison_opr   Úop_namer   rq   rR   Úitemr$   Úexpected_dtypes	            r   Útest_comparison_methods_scalarr˜   Þ   s  € Ø�=×)Ñ)Ð*¨"Ð-€GÜ
�‰Ò!¨Ô/€AØ€EØ ŒW�Q˜Ó  Ó'€FØ‡}�}˜Ò'Ü—8‘8ÀqÖI¸tÐ3œW T¨7Ó3°EÕ:ÒIÓJˆØœHŸK™KÒ'ØˆH�QŠKàˆH�Q‰KÜ
×#Ñ# F¨H¯O©O¼B¿H¹HÓ,EÕFà/4¯}©}À	Ò/IÑ+ÈyˆÜ—8‘8ÀqÖI¸tÐ3œW T¨7Ó3°EÕ:ÒIÔQWÔXˆÜ—8‘8˜H¨NÔ;ˆÜ
×'Ñ'¨°Õ9ùò Jùò Js   Á EÃ8Ec                 ó  — d| j                   › d�}t        j                  g d¢|¬«      } t        ||«      t        j                  «      }|j
                  dk(  rYt        j                  | k(  rt        j                  g d¢«      }nt        j                  g d¢«      }t        j                  ||«       y |j
                  dk(  rdnd	}t        j                  g d
¢|¬«      }t        j                  ||«       t        j                  ||«       y )Nr‹   rŒ   r   r   ©TTT©FFFr   r�   rŽ   ©NNN)r�   r   r!   r�   r   r	   r‘   r’   r
   r<   rB   r=   )r”   r   r•   r   rR   r$   r—   s          r   Ú$test_comparison_methods_scalar_pd_nar�   ñ   sÉ   € Ø�=×)Ñ)Ð*¨"Ð-€GÜ
�‰Ò!¨Ô/€AØ ŒW�Q˜Ó ¤§¡Ó'€Fà‡}�}˜Ò'Ü�;‰;˜-Ò'Ü—x‘xÒ 2Ó3‰Hä—x‘xÒ 5Ó6ˆHÜ
×#Ñ# F¨HÕ5à/4¯}©}À	Ò/IÑ+ÈyˆÜ—8‘8Ò.°nÔEˆÜ
×'Ñ'¨°Ô9Ü
×'Ñ'¨°Õ9r   c                 ó2  — d| j                   › d�}t        j                  g d¢|¬«      }d}|dvr7t        j                  t
        d¬«      5   t        ||«      |«       d d d «       y  t        ||«      |«      }|j                  dk(  r8g d	¢g d
¢dœ|   }t        j                  |«      }t        j                  ||«       y g d¢g d¢dœ|   }|j                  dk(  rdnd}t        j                  ||¬«      }t        j                  ||«       y # 1 sw Y   y xY w)Nr‹   rŒ   r   é*   )Ú__eq__Ú__ne__z(Invalid comparison|not supported betweenr-   r   r›   rš   )FNF)TNTr   r�   rŽ   )r�   r   r!   r2   r3   r4   r�   r	   r
   r<   rB   r=   )	r”   r   r•   r   rq   rR   Úexpected_datar$   r—   s	            r   Ú)test_comparison_methods_scalar_not_stringr£     s  € Ø�=×)Ñ)Ð*¨"Ð-€Gä
�‰Ò!¨Ô/€AØ€EàÐ*Ñ*Ü�]‰]œ9Ð,VÔWñ 	'ØŒG�A�wÓ Ô&÷	'ð 	à ŒW�Q˜Ó  Ó'€Fà‡}�}˜Ò'â+Ú(ñ
ð ñˆô —8‘8˜MÓ*ˆÜ
×#Ñ# F¨HÕ5â#7ÒCUÑVØñ
ˆð 05¯}©}À	Ò/IÑ+ÈyˆÜ—8‘8˜M°Ô@ˆÜ
×'Ñ'¨°Õ9÷)	'ð 	ús   ÁDÄDc                 ó  — d| j                   › d�}t        j                  g d¢|¬«      }g d¢} t        ||«      |«      }|j                  dk(  rìt
        j                  | k(  rt        j                  g d¢«      }n2t        j                  g d¢«      } t        |d   |«      |d   «      |d<   t        j                  ||«        t        ||«      t        j                  «      }t
        j                  | k(  rt        j                  g d	¢«      }nt        j                  g d¢«      }t        j                  ||«       y |j                  d
k(  rdnd}t        j                  t        |«      d d¬«      } t        |d   |«      |d   «      |d<   t        j                  ||¬«      }t        j                  ||«        t        ||«      t        j                  «      }t        j                  g d¢|¬«      }t        j                  ||«       y )Nr‹   rŒ   r   )NNr9   r   )TTFr›   rJ   rš   r   r�   rŽ   rj   )r`   r   rœ   )r�   r   r!   r�   r	   r‘   r’   r
   r<   rB   r   ÚfullÚlenr=   )r”   r   r•   r   rq   rR   r$   r—   s           r   Útest_comparison_methods_arrayr§   !  s˜  € Ø�=×)Ñ)Ð*¨"Ð-€Gä
�‰Ò!¨Ô/€AÚ€EØ ŒW�Q˜Ó  Ó'€FØ‡}�}˜Ò'Ü�;‰;˜-Ò'Ü—x‘xÒ 3Ó4‰Hä—x‘xÒ 5Ó6ˆHØ6œ7 5¨¡9¨gÓ6°q¸±uÓ=ˆH�R‰LÜ
×#Ñ# F¨HÔ5à$”˜˜GÓ$¤R§U¡UÓ+ˆÜ�;‰;˜-Ò'Ü—x‘xÒ 2Ó3‰Hä—x‘xÒ 5Ó6ˆHÜ
×#Ñ# F¨HÕ5ð 05¯}©}À	Ò/IÑ+ÈyˆÜ—7‘7œ3˜q›6¨d¸(ÔCˆØ2”w˜u R™y¨'Ó2°1°R±5Ó9ˆ�‰Ü—8‘8˜H¨NÔ;ˆÜ
×'Ñ'¨°Ô9à$”˜˜GÓ$¤R§U¡UÓ+ˆÜ—8‘8Ò.°nÔEˆÜ
×'Ñ'¨°Õ9r   c           
      ó*  — | t         j                  j                  u rd}nd}t        j                  t
        |¬«      5   | t        j                  ddgd¬«      «       d d d «       t        j                  t
        |¬«      5   | t        j                  g «      «       d d d «       | t         j                  j                  u rU | t        j                  dt        j                  gt        ¬«      «        | t        j                  dd gt        ¬«      «       nœt        j                  t
        |¬«      5   | t        j                  dt        j                  gt        ¬«      «       d d d «       t        j                  t
        |¬«      5   | t        j                  dd gt        ¬«      «       d d d «       t        j                  t
        |¬«      5   | t        j                  dt         j                  gt        ¬«      «       d d d «       t        j                  t
        |¬«      5   | t        j                  dt        j                  dd	«      gt        ¬«      «       d d d «       t        j                  t
        |¬«      5   | t        j                  dt        j                  dd	«      gt        ¬«      «       d d d «       y # 1 sw Y   �ŒbxY w# 1 sw Y   �Œ0xY w# 1 sw Y   �ŒwxY w# 1 sw Y   �Œ=xY w# 1 sw Y   ŒôxY w# 1 sw Y   Œ¥xY w# 1 sw Y   y xY w)
Nz7StringArray requires a sequence of strings or pandas.NAzBUnsupported type '<class 'numpy.ndarray'>' for ArrowExtensionArrayr-   r   r   ÚS1r   ÚNaTÚns)r   r1   r   r2   r3   rk   r
   r!   r   rj   rª   Ú
datetime64Útimedelta64)r   r6   s     r   Útest_constructor_raisesr®   B  s+  € Ø
Œb�i‰i×#Ñ#Ñ#ØG‰àRˆä	�‰”z¨Ô	-ñ .ÙŒB�H‰H�c˜3�Z tÔ,Ô-÷.ô 
�‰”z¨Ô	-ñ ÙŒB�H‰H�R‹LÔ÷ð Œb�i‰i×#Ñ#Ñ#ñ 	ŒB�H‰H�cœ2Ÿ6™6�]¬&Ô1Ô2ÙŒB�H‰H�c˜4�[¬Ô/Õ0ä�]‰]œ:¨SÔ1ñ 	7Ù”—‘˜#œrŸv™v˜¬fÔ5Ô6÷	7ä�]‰]œ:¨SÔ1ñ 	5Ù”—‘˜#˜t˜¬FÔ3Ô4÷	5ô 
�‰”z¨Ô	-ñ 3ÙŒB�H‰H�cœ2Ÿ6™6�]¬&Ô1Ô2÷3ô 
�‰”z¨Ô	-ñ GÙŒB�H‰H�cœ2Ÿ=™=¨°Ó5Ð6¼fÔEÔF÷Gô 
�‰”z¨Ô	-ñ HÙŒB�H‰H�cœ2Ÿ>™>¨%°Ó6Ð7¼vÔFÔG÷Hð H÷/.ñ .ú÷ñ ú÷	7ñ 	7ú÷	5ñ 	5ú÷3ð 3ú÷Gð Gú÷Hð HúsS   ½ J=Â K
Ä02KÆ$K$Ç2K1È!8K=É<8L	Ê=KË
KËK!Ë$K.Ë1K:Ë=LÌ	LÚnar   c                 ó  — t         j                  j                  t        j                  dt         j
                  g«      «      }t        j                  t         j                  j                  t        j                  d| gd¬«      «      |«       y )Nr   rj   r   )r   r1   r   r
   r!   r   r<   r=   )r¯   r$   s     r   Útest_constructor_nan_liker±   c  sX   € ä�y‰y×$Ñ$¤R§X¡X¨s´B·E±E¨lÓ%;Ó<€HÜ×#Ñ#Ü
�	‰	×ÑœbŸh™h¨¨R y¸ÔAÓBÀHõr   rA   TFc                 óÖ  — t        j                  dt         j                  gt        ¬«      }|j	                  «       }t        j                  dt
        j                  gt        ¬«      }|j                  ||| ¬«      }|t        t        fv r-dd l
} ||j                  ||j                  «       d¬«      «      }n ||«      }t        j                  ||«       t        j                  ||«       y )Nr   r   )r   rA   r   T©ÚtypeÚfrom_pandas)r
   r!   r   rj   rA   r   r   r)   r   r   r   Ústringr<   r=   rB   )	rA   r   r   Únan_arrÚexpected_inputÚna_arrrR   Úpar$   s	            r   Útest_from_sequence_no_mutater»   k  s®   € ä�h‰h˜œRŸV™V�}¬FÔ3€GØ—\‘\“^€NÜ�X‰X�sœBŸE™E�l¬&Ô1€Fà×Ñ ¨u¸4ÐÓ@€Fà
ÔÔ!?Ð@Ñ@Ûá�r—x‘x ¨R¯Y©Y«[Àd�xÓKÓL‰á�v“;ˆä×#Ñ# F¨HÔ5Ü×Ñ ¨Õ8r   c                 óÀ  — t        j                  g d¢| ¬«      }|j                  d«      }t        j                  g d¢d¬«      }t	        j
                  ||«       t        j                  dt         j                  dg| ¬«      }| j                  dk(  r	t        }d}nt        }d	}t        j                  ||¬
«      5  |j                  d«       d d d «       y # 1 sw Y   y xY w)N)Ú1Ú2Ú3r   Úint64)r(   r0   é   r½   r¿   r   z#cannot convert float NaN to integerzJint\(\) argument must be a string, a bytes-like object or a( real)? numberr-   )r   r!   rM   r
   r<   rB   r   r	   rk   r4   r2   r3   )r   r5   rR   r$   Úerrr6   s         r   Útest_astype_intrÃ   ~  s±   € Ü
�(‰(’?¨%Ô
0€CØ�Z‰Z˜Ó €FÜ�x‰xš	¨Ô1€HÜ×Ñ ¨Ô1ä
�(‰(�CœŸ™ Ð$¨EÔ
2€CØ‡}�}˜Ò'ÜˆØ3‰äˆð*ð 	ô 
�‰�s #Ô	&ñ Ø�
‰
�7Ô÷÷ ñ ús   Â9CÃCc                 óò   — t        j                  dt         j                  dg| ¬«      }|j                  d«      }t        j                  dt         j                  dgd¬«      }t	        j
                  ||«       y )Nr½   r¿   r   ÚInt64r(   rÁ   )r   r!   r   rM   r<   r=   ©r   r5   rR   r$   s       r   Útest_astype_nullable_intrÇ   ’  sU   € Ü
�(‰(�CœŸ™ Ð$¨EÔ
2€Cà�Z‰Z˜Ó €FÜ�x‰x˜œBŸE™E 1˜¨WÔ5€HÜ×#Ñ# F¨HÕ5r   c                 óò   — t        j                  dt         j                  dg| ¬«      }|j                  |«      }t        j                  dt        j
                  dg|¬«      }t        j                  ||«       y )Nz1.1z3.3r   gš™™™™™ñ?gffffff
@)r   rK   r   rM   r
   r   r<   rN   )r   Úany_float_dtyperP   rR   r$   s        r   Útest_astype_floatrÊ   š  sV   € ä
�)‰)�UœBŸE™E 5Ð)°Ô
7€CØ�Z‰Z˜Ó(€FÜ�y‰y˜#œrŸv™v sÐ+°?ÔC€HÜ×Ñ˜6 8Õ,r   ÚskipnazNot implemented StringArray.sumc                 óh   — t        j                  g d¢|¬«      }|j                  | ¬«      }|dk(  sJ ‚y )Nr@   r   ©rË   Úabc)r   rK   Úsum©rË   r   r5   rR   s       r   Útest_reducerÑ   ¢  s0   € ô �)‰)’O¨5Ô
1€CØ�W‰W˜FˆWÓ#€FØ�UŠ?Ð‰?r   c                 óœ   — t        j                  g d¢|¬«      }|j                  | ¬«      }| r|dk(  sJ ‚y t        j                  |«      sJ ‚y )N)Nr   Nr   r9   Nr   rÍ   rÎ   )r   rK   rÏ   ÚisnarÐ   s       r   Útest_reduce_missingrÔ   ª  sD   € ô �)‰)Ò5¸UÔ
C€CØ�W‰W˜FˆWÓ#€FÙØ˜ŠÐ‰ä�w‰w�vŒÐ‰r   ÚmethodÚminÚmaxc                 ó´   — t        j                  g d¢|¬«      } t        || «      |¬«      }|r| dk(  rdnd}||k(  sJ ‚y |t        |j                  «      u sJ ‚y )N©r   r   r9   Nr   rÍ   rÖ   r   r9   )r   rK   r�   r   r   )rÕ   rË   r   r5   rR   r$   s         r   Útest_min_maxrÚ   µ  s]   € ô �)‰)Ò)°Ô
7€CØ!ŒW�S˜&Ó!¨Ô0€FÙØ  Eš/‘3¨sˆØ˜Ò!Ð!Ñ!àœ §	¡	Ó*Ñ*Ð*Ñ*r   Úboxc                 óB  — |j                   |v r_|t        j                  u rM|t        j                  u rd}nd}t        j                  j                  t        |¬«      }|j                  |«        |g d¢|¬«      } t        t        | «      |«      }| dk(  rdnd}	||	k(  sJ ‚y )	Nz<'<=' not supported between instances of 'str' and 'NoneType'z0'ArrowStringArray' object has no attribute 'max're   rÙ   r   rÖ   r   r9   )
r	   r   r!   r2   rg   rh   r4   ri   r�   r
   )
rÕ   rÛ   r   rl   rm   rf   rg   r5   rR   r$   s
             r   Útest_min_max_numpyrÝ   Á  s’   € ð ‡}�}Ð,Ñ,°¼¿¹±Ø”"—(‘(‰?ØS‰FàGˆFÜ�{‰{× Ñ ¬	¸&Ð ÓAˆØ×Ñ˜DÔ!á
Ò#¨5Ô
1€CØ ŒW”R˜Ó  Ó%€FØ ’o‰s¨3€HØ�XÒÐÑr   c                 ó&  — t        j                  dt         j                  g| ¬«      }|j                  d¬«      }t        j                  ddg| ¬«      }t	        j
                  ||«       |j                  t        j                  d«      ¬«      }t        j                  ddg| ¬«      }t	        j
                  ||«       | j                  |v rd}nd}t        j                  t        |¬«      5  |j                  d¬«       d d d «       y # 1 sw Y   y xY w)	Nr   r   r   )rC   z"Invalid value '1' for dtype stringz3Cannot set non-string value '1' into a StringArray.r-   r(   )r   r!   r   Úfillnar<   r=   r
   Ústr_r	   r2   r3   r4   )r   rm   r5   Úresr$   r6   s         r   Útest_fillna_argsrâ   Ò  sÔ   € ô �(‰(�CœŸ™�< uÔ
-€Cà
�*‰*˜3ˆ*Ó
€CÜ�x‰x˜˜c˜
¨%Ô0€HÜ×#Ñ# C¨Ô2à
�*‰*œ2Ÿ7™7 3›<ˆ*Ó
(€CÜ�x‰x˜˜c˜
¨%Ô0€HÜ×#Ñ# C¨Ô2à‡}�}Ð,Ñ,Ø2‰àCˆÜ	�‰”y¨Ô	,ñ Ø�
‰
˜ˆ
Ô÷÷ ñ ús   Ã+DÄDc                 ó²  — t        j                  d«      }dd lm} t	        j
                  g d¢| ¬«      }|j                  |«      }|j                  t        |«      |j                  «       d¬«      }| j                  dv rt        r|j                  |«      }| j                  dk(  r |j                  ||j                  «       «      }|j                  |«      sJ ‚y )	Nr   r   r@   r   Tr³   )r   r   Úpython)r2   ÚimportorskipÚpyarrow.computeÚcomputer   r!   ÚlistÚlarge_stringr	   r   Úchunked_arrayÚcastr¶   Úequals)r   rº   ÚpcÚdatar5   r$   s         r   Útest_arrow_arrayrï   ç  s¥   € ä	×	Ñ	˜YÓ	'€BÝ ä�8‰8’O¨5Ô1€DØ
�(‰(�4‹.€CØ�x‰xœ˜T›
¨¯©Ó):ÈˆxÓM€HØ‡}�}Ð4Ñ4Õ9MØ×#Ñ# HÓ-ˆØ‡}�}˜Ò Ø—7‘7˜8 R§Y¡Y£[Ó1ˆØ�:‰:�hÔÐÑr   z0ignore:Passing a BlockManager:DeprecationWarningc                 ó*  — t        j                  d«      }|r4|dk7  r/|j                  t         j                  j	                  d¬«      «       t        j                  g d¢| ¬«      }t        j                  d|i«      }|j                  |«      }| j                  dk(  r |j                  d«      j                  d	k(  s"J ‚|j                  d«      j                  d
k(  sJ ‚t        j                  d|«      5  |j                  «       }d d d «       t        d   j                  t
        j                   «      sJ ‚|j#                  d|› d�«      }	t%        j&                  ||	«       |j(                  d   t+        |d   j                  «      u sJ ‚y # 1 sw Y   Œ‡xY w)Nr   r   ú1infer_string takes precedence over string storagerx   rt   r   r   rä   r¶   ré   r   ústring[ú])r0   r   )r2   rå   ri   rg   rh   r   r!   r    Útabler	   Úfieldr´   Úoption_contextÚ	to_pandasÚ
isinstancer   r   rM   r<   r…   Úlocr   ©
r   Ústring_storage2rl   Úusing_infer_stringrº   rî   r#   rô   rR   r$   s
             r   Útest_arrow_roundtriprý   ö  s\  € ô 
×	Ñ	˜YÓ	'€Bá˜o°Ò@Ø×ÑÜ�K‰K×ÑØJð ó ô	
ô �8‰8Ò$¨EÔ2€DÜ	�‰�s˜D�kÓ	"€BØ�H‰H�R‹L€EØ‡}�}˜Ò Ø�{‰{˜3Ó×$Ñ$¨Ò0Ð0Ð0à�{‰{˜3Ó×$Ñ$¨Ò6Ð6Ð6Ü	×	Ñ	Ð+¨_Ó	=ñ #Ø—‘Ó"ˆ÷#ä�f˜S‘k×'Ñ'¬¯©Ô8Ð8Ð8Ø�y‰y˜7 ?Ð"3°1Ð5Ó6€HÜ×Ñ˜& (Ô+à�:‰:�fÑ¤¨¨s©×(9Ñ(9Ó!:Ñ:Ð:Ñ:÷#ð #ús   Ã2F	Æ	Fc                 óN  — t        j                  d«      }|r4|dk7  r/|j                  t         j                  j	                  d¬«      «       t        j                  g | ¬«      }t        j                  d|i«      }|j                  |«      }| j                  dk(  r |j                  d«      j                  dk(  s"J ‚|j                  d«      j                  d	k(  sJ ‚|j                  |j                  g |j                  «       ¬
«      g|j                  ¬«      }t        j                  d|«      5  |j!                  «       }d d d «       t#        d   j$                  t
        j&                  «      sJ ‚|j)                  d|› d�«      }	t+        j,                  ||	«       y # 1 sw Y   Œ^xY w)Nr   r   rñ   rx   r   r   rä   r¶   ré   )r´   )Úschemar   rò   ró   )r2   rå   ri   rg   rh   r   r!   r    rô   r	   rõ   r´   rê   r¶   rÿ   rö   r÷   rø   r   r   rM   r<   r…   rú   s
             r   Ú test_arrow_load_from_zero_chunksr     sd  € ô
 
×	Ñ	˜YÓ	'€Bá˜o°Ò@Ø×ÑÜ�K‰K×ÑØJð ó ô	
ô �8‰8�B˜eÔ$€DÜ	�‰�s˜D�kÓ	"€BØ�H‰H�R‹L€EØ‡}�}˜Ò Ø�{‰{˜3Ó×$Ñ$¨Ò0Ð0Ð0à�{‰{˜3Ó×$Ñ$¨Ò6Ð6Ð6à�H‰H�b×&Ñ& r°·	±	³Ð&Ó<Ð=ÀeÇlÁlˆHÓS€EÜ	×	Ñ	Ð+¨_Ó	=ñ #Ø—‘Ó"ˆ÷#ä�f˜S‘k×'Ñ'¬¯©Ô8Ð8Ð8Ø�y‰y˜7 ?Ð"3°1Ð5Ó6€HÜ×Ñ˜& (Õ+÷	#ð #ús   Ä-FÆF$c                 óÂ  — t        | dd«      dk(  rd}nt        | dd«      dk(  rd}nd}t        j                  dd	dt        j                  g| ¬
«      }|j	                  d¬«      }t        j
                  g d¢|g d¢   |d¬«      }t        j                  ||«       |j	                  d¬«      }t        j
                  ddg|d d |d¬«      }t        j                  ||«       y )Nr	   Ú r   zint64[pyarrow]r   rÀ   rÅ   r   r   r   F)Údropna)r0   r(   r(   )r   r(   rÁ   Úcount©Úindexr   ÚnameTr0   r(   )r�   r   r!   r   Úvalue_countsrK   r<   rN   )r   Ú	exp_dtyper5   rR   r$   s        r   Útest_value_counts_nar
  0  sÍ   € Üˆu�i Ó$¨	Ò1Ø$‰	Ü	�˜	 2Ó	&¨/Ò	9Ø‰	àˆ	Ü
�(‰(�C˜˜c¤2§5¡5Ð)°Ô
7€CØ×Ñ UÐÓ+€FÜ�y‰yš¨#ªi©.À	ÐPWÔX€HÜ×Ñ˜6 8Ô,à×Ñ TÐÓ*€FÜ�y‰y˜!˜Q˜ s¨2¨A w°iÀgÔN€HÜ×Ñ˜6 8Õ,r   c                 óT  — t        | dd«      dk(  rd}n#t        | dd«      dk(  rt        j                  }nd}t        j                  dddt        j
                  g| ¬	«      }|j                  d
¬«      }t        j                  ddg|d d |d¬«      dz  }t        j                  ||«       y )Nr	   r  r   zdouble[pyarrow]r   ÚFloat64r   r   r   T)Ú	normalizer0   r(   Ú
proportionr  rÁ   )	r�   r
   Úfloat64r   rK   r   r  r<   rN   )r   r	  rP   rR   r$   s        r   Ú test_value_counts_with_normalizer  A  s›   € Üˆu�i Ó$¨	Ò1Ø%‰	Ü	�˜	 2Ó	&¨/Ò	9Ü—J‘J‰	àˆ	Ü
�)‰)�S˜#˜s¤B§E¡EÐ*°%Ô
8€CØ×Ñ¨ÐÓ-€FÜ�y‰y˜!˜Q˜ s¨2¨A w°iÀlÔSÐVWÑW€HÜ×Ñ˜6 8Õ,r   zvalues, expectedr@   r›   rt   )FFTc                 óp  — t        j                  | |¬«      } d}t        j                  t        |¬«      5  t        j
                  dd«      5  | j                  «       }t        j                  ||«       t        j                  | «      j                  «       }t        j                  |«      }t        j                  ||«       t        j                  | «      j                  «       }t        j                  |«      }t        j                  ||«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nr   z"use_inf_as_na option is deprecatedr-   zmode.use_inf_as_naT)r   r!   r<   Úassert_produces_warningÚFutureWarningrö   rÓ   rB   rK   rN   r    r…   )Úvaluesr$   r   r6   rR   s        r   Útest_use_inf_as_nar  N  sî   € ô �X‰X�f EÔ*€FØ
.€CÜ	×	#Ñ	#¤M¸Ô	=ñ 4Ü×ÑÐ3°TÓ:ñ 
	4Ø—[‘[“]ˆFÜ×'Ñ'¨°Ô9ä—Y‘Y˜vÓ&×+Ñ+Ó-ˆFÜ—y‘y Ó*ˆHÜ×"Ñ" 6¨8Ô4ä—\‘\ &Ó)×.Ñ.Ó0ˆFÜ—|‘| HÓ-ˆHÜ×!Ñ! &¨(Ô3÷
	4÷4ð 4÷
	4ð 
	4ú÷4ð 4ús$   µD,ÁCD ÄD,Ä D)	Ä%D,Ä,D5c                 ó  — | j                   |v r"t        j                  d| j                   › �«       t        j                  g d¢| ¬«      }d|j
                  cxk  r*|j                  «       cxk  r|j                  d¬«      k  sJ ‚ J ‚y )Nznot applicable for r@   r   r   T)Údeep)r	   r2   Úskipr   rK   ÚnbytesÚmemory_usage)r   rm   Úseriess      r   Útest_memory_usager  g  ss   € ð ‡}�}Ð,Ñ,Ü�‰Ð)¨%¯-©-¨Ð9Ô:ä�Y‰Y’¨eÔ4€Fàˆv�}‰}ÔV × 3Ñ 3Ó 5ÔV¸×8KÑ8KÐQUÐ8KÓ8VÒVÐVÑVÐVÑVr   Úfloat_dtypec                 ó²   — t        j                  dg| ¬«      }|j                  |«      }t        j                  dg|¬«      }t        j                  ||«       y )Ngš™™™™™¹?r   z0.1)r   rK   rM   r<   rN   )r  r   rP   rR   r$   s        r   Útest_astype_from_float_dtyper  r  sF   € ô �)‰)�S�E Ô
-€CØ�Z‰Z˜Ó€FÜ�y‰y˜%˜¨Ô.€HÜ×Ñ˜6 8Õ,r   c                 óø   — t        j                  dt         j                  dg| ¬«      }t        j                  |«      }t        j                  dt	        | «      dgt
        ¬«      }t        j                  ||«       y )Nr   r   r   )r   r!   r   r
   r   rj   r<   rB   rÆ   s       r   Ú"test_to_numpy_returns_pdna_defaultr!  {  sU   € Ü
�(‰(�CœŸ™ Ð$¨EÔ
2€CÜ�X‰X�c‹]€FÜ�x‰x˜œf U›m¨SÐ1¼Ô@€HÜ×Ñ ¨Õ1r   c                 óä   — |}t        j                  dt         j                  dg| ¬«      }|j                  |¬«      }t	        j                  d|dgt
        ¬«      }t        j                  ||«       y )Nr   r   r   )Úna_value)r   r!   r   Úto_numpyr
   rj   r<   rB   )r   Únulls_fixturer#  r5   rR   r$   s         r   Útest_to_numpy_na_valuer&  ‚  sY   € Ø€HÜ
�(‰(�CœŸ™ Ð$¨EÔ
2€CØ�\‰\ 8ˆ\Ó,€FÜ�x‰x˜˜h¨Ð,´FÔ;€HÜ×Ñ ¨Õ1r   c                 óN  — t        j                  g d¢| ¬«      }|j                  ddg«      }t        j                  g d¢«      }t        j                  ||«       |j                  dt         j
                  g«      }t        j                  g d¢«      }t        j                  ||«       |j                  g «      }t        j                  g d¢«      }t        j                  ||«       |j                  d|g«      }t        j                  g d¢«      }t        j                  ||«       y )Nrt   r   r   r9   )TFF)TFTr›   )r   rK   Úisinr<   rN   r   )r   Úfixed_now_tsrn   rR   r$   s        r   Ú	test_isinr*  Š  s×   € Ü
�	‰	Ò"¨%Ô0€Aà�V‰V�S˜#�JÓ€FÜ�y‰yÒ-Ó.€HÜ×Ñ˜6 8Ô,à�V‰V�Sœ"Ÿ%™%�LÓ!€FÜ�y‰yÒ,Ó-€HÜ×Ñ˜6 8Ô,à�V‰V�B‹Z€FÜ�y‰yÒ.Ó/€HÜ×Ñ˜6 8Ô,à�V‰V�S˜,Ð'Ó(€FÜ�y‰yÒ-Ó.€HÜ×Ñ˜6 8Õ,r   c                 ó¾  — t        j                  g d¢| ¬«      }t        j                  g d¢«      }d ||<   |j                  d   t	        |j
                  «      u sJ ‚t        j                  g d¢| ¬«      }t        |j                  «      t         j                  j                  u rd}nd}t        j                  t        |¬«      5  d||<   d d d «       y # 1 sw Y   y xY w)Nr@   r   )FTFr(   zCannot set non-string valuer,   r-   )r   rK   r
   r!   r   r   r´   r1   r   r2   r3   r4   )r   rP   Úmaskr6   s       r   Ú(test_setitem_scalar_with_mask_validationr-  ž  s­   € ô �)‰)’O¨5Ô
1€CÜ�8‰8Ò(Ó)€Dà€Cˆ�IØ�9‰9�Q‰<œ6 #§)¡)Ó,Ñ,Ð,Ð,ô �)‰)’O¨5Ô
1€CÜˆC�I‰Iƒœ"Ÿ)™)×/Ñ/Ñ/Ø+‰à(ˆÜ	�‰”y¨Ô	,ñ ØˆˆD‰	÷÷ ñ ús   ÃCÃCc                 óÞ   — g d¢}t        j                  |t         j                  ¬«      }t        j                  || ¬«      }t        j                  || ¬«      }t	        j
                  ||«       y ©Nr@   r   )r
   r!   rà   r   r<   r=   ©r   Úvalsr5   rR   r$   s        r   Útest_from_numpy_strr2  ²  sK   € Ú€DÜ
�(‰(�4œrŸw™wÔ
'€CÜ�X‰X�c Ô'€FÜ�x‰x˜ EÔ*€HÜ×#Ñ# F¨HÕ5r   c                 óŠ   — g d¢}t        j                  || ¬«      }|j                  «       }|}t        j                  ||«       y r/  )r   r!   Útolistr<   Úassert_equalr0  s        r   Útest_tolistr6  º  s5   € Ú€DÜ
�(‰(�4˜uÔ
%€CØ�Z‰Z‹\€FØ€HÜ‡O�O�F˜HÕ%r   )JÚ__doc__r‘   Únumpyr
   r2   Úpandas.compat.pyarrowr   Úpandas.core.dtypes.commonr   Úpandasr   Úpandas._testingÚ_testingr<   Úpandas.core.arrays.string_arrowr   r   r   Úfixturer   r   r&   r*   r7   r>   rE   rV   rc   ro   rr   rw   rg   rh   r‡   r‰   r˜   r�   r£   r§   r®   Úparametrizer   r  Úfloatr   r±   r»   rÃ   rÇ   rÊ   rÑ   rÔ   rÚ   rK   r!   rÝ   râ   rï   Úfilterwarningsrý   r   r
  r  r  r  Úfloat16Úfloat32r  r!  r&  r*  r-  r2  r6  © r   r   ú<module>rF     s   ðñó ã Û å 6å 4ã Ý ÷òð ‡�ñ2ó ð2ð
 ‡�ñ(ó ð(ò
(ò4#ò"ò$3ò
3ò*ò&-ò(ò 
6ò6ð ‡�×Ñ˜*ÐÓ%ñ,ó &ð,ð ‡�×Ñ˜*ÐÓ%ñ,ó &ð,ò:ò&:ò$:ò<:òBHðB ‡�×Ñ˜ §¡¨
¨¯
©
°5Ó(9¹5À»<ÈÈrÏuÉuÐUÓVñó Wðð ‡�×Ñ˜ $¨ Ó/ñ9ó 0ð9ò$ò(6ò-ð ‡�×Ñ˜ D¨% =Ó1Ø‡�×ÑÐ;ÐÓ<ñó =ó 2ðð ‡�×Ñ˜ D¨% =Ó1Ø‡�×ÑÐ;ÐÓ<ñó =ó 2ðð ‡�×Ñ˜ E¨5 >Ó2Ø‡�×Ñ˜ D¨% =Ó1ñ+ó 2ó 3ð+ð ‡�×Ñ˜ E¨5 >Ó2Ø‡�×Ñ˜ §¡¨B¯H©HÐ 5Ó6ñó 7ó 3ðòò* ð ‡�×ÑÐNÓOñ;ó Pð;ð6 ‡�×ÑÐNÓOñ,ó Pð,ò:-ò"
-ð ‡�×ÑØâ	˜(˜"Ÿ(™(Ò#8Ó9Ð:Ú	˜8˜2Ÿ8™8Ò$8Ó9Ð:ðóñ4óð4ò$Wð ‡�×Ñ˜¨¯©°R·Z±ZÀÇÁÐ(LÓMñ-ó Nð-ò2ò2ò-ò(ò(6ó&r   