Ë
    ¤ehF4  ã                   ó  — d dl Z d dlZd dlmZ d dlmZ  e j                  ddg¬«      d„ «       Z e j                  ddg¬«      d	„ «       Z	d
„ Z
e j                  j                  dddg«      d„ «       Ze j                  j                  d edg d¢i«       edg d¢i«      f eg d¢g d¢dœ«       edg d¢i«      fg«      d„ «       Ze j                  j                  d ej                  ddgddgdœdg¬«       ej                  ddgddgdœdg¬«      df ej                  ddgdd gddgd!œdd"g¬«       ej                  ddgdd gddgd!œdd"g¬«      d#fg«      d$„ «       Zd%„ Ze j                  j                  dddg«      d&„ «       Ze j                  j                  dddg«      d'„ «       Zd(„ Ze j                  j                  d eg d)¢g d*¢d+œ«       eg d)¢g d,¢d+œ«      d-f eg d)¢g d*¢d+œ«       eg d.¢g d/¢d+œ«      d0fg«      d1„ «       Zd2„ Zd3„ Zd4„ Zd5„ Ze j                  j                  d6g d7¢«      d8„ «       Zd9„ Zd:„ Zd;„ Ze j                  j                  d<d=d>g«      d?„ «       Zd@„ ZdA„ Z dB„ Z!dC„ Z"dD„ Z#dE„ Z$dF„ Z%dG„ Z&y)Hé    N)Ú	DataFrameTF)Úparamsc                 ó   — | j                   S ©N©Úparam©Úrequests    úg/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/tests/util/test_assert_frame_equal.pyÚby_blocks_fixturer      ó   € à�=‰=Ðó    r   ÚSeriesc                 ó   — | j                   S r   r   r	   s    r   Úobj_fixturer      r   r   c                 ó`   — t        j                  | |fi |¤Ž t        j                  || fi |¤Ž y)a4  
    Check that two DataFrame equal.

    This check is performed commutatively.

    Parameters
    ----------
    a : DataFrame
        The first DataFrame to compare.
    b : DataFrame
        The second DataFrame to compare.
    kwargs : dict
        The arguments passed to `tm.assert_frame_equal`.
    N)ÚtmÚassert_frame_equal)ÚaÚbÚkwargss      r   Ú_assert_frame_equal_bothr      s.   € ô ×Ñ˜!˜QÑ) &Ò)Ü×Ñ˜!˜QÑ) &Ó)r   Ú
check_likec                 ó  — t        g d¢g d¢dœg d¢¬«      }t        g d¢g d¢dœg d¢¬«      }| sC|› d	�}t        j                  t        |¬
«      5  t	        j
                  ||| |¬«       d d d «       y t        ||| |¬«       y # 1 sw Y   y xY w)N©é   é   é   ©é   é   é   ©ÚAÚB©r   r   Úc©Úindex)r   r   r   )r"   r!   r    ©r'   r   r   z.index are different©Úmatch©r   Úobj)r   ÚpytestÚraisesÚAssertionErrorr   r   r   )r   r   Údf1Údf2Úmsgs        r   Ú#test_frame_equal_row_order_mismatchr5   %   s…   € ä
š)ª)Ñ4ºOÔ
L€CÜ
š)ª)Ñ4ºOÔ
L€CáØ�Ð1Ð2ˆÜ�]‰]œ>°Ô5ñ 	TÜ×!Ñ! # s°zÀ{ÕS÷	Tð 	Tô 	!  c°jÀkÖR÷	Tð 	Tús   ÁBÂBzdf1,df2r$   r   )r   r   r   r    r   r#   c                 óž   — |› d�}t        j                  t        |¬«      5  t        j                  | ||¬«       d d d «       y # 1 sw Y   y xY w)Nz are differentr+   ©r.   ©r/   r0   r1   r   r   )r2   r3   r   r4   s       r   Útest_frame_equal_shape_mismatchr9   2   sE   € ð ˆM˜Ð
(€Cä	�‰”~¨SÔ	1ñ 9Ü
×Ñ˜c 3¨KÕ8÷9÷ 9ñ 9ús   ¡AÁAzdf1,df2,msgr   r   Úl1Úl2)r   r'   r   r(   g      ð?g       @zDataFrame\.index are differentgÍÌÌÌÌÌ @g      ø?r&   r   z$MultiIndex level \[0\] are differentc                 óÎ   — d|i}|r<t        j                  t        |¬«      5  t        j                  | |fi |¤Ž d d d «       y t        j                  | |fi |¤Ž y # 1 sw Y   y xY w)NÚcheck_index_typer+   r8   )r2   r3   r4   r=   r   s        r   Ú%test_frame_equal_index_dtype_mismatchr>   @   sf   € ð, !Ð"2Ð3€FáÜ�]‰]œ>°Ô5ñ 	6Ü×!Ñ! # sÑ5¨fÒ5÷	6ð 	6ô 	×Ñ˜c 3Ñ1¨&Ó1÷	6ð 	6ús   ¢AÁA$c                 ó8  — ddg}t        |¬«      }t        |¬«      }d| i}|d   j                  d«      |d<   | r>d}t        j                  t        |¬«      5  t        j                  ||fi |¤Ž d d d «       y t        j                  ||fi |¤Ž y # 1 sw Y   y xY w)NÚcol1Úcol2)ÚcolumnsÚcheck_dtypeÚint64z)Attributes of DataFrame\..* are differentr+   )r   Úastyper/   r0   r1   r   r   )rC   rB   r2   r3   r   r4   s         r   Útest_empty_dtypesrF   _   sž   € Ø�vÐ€GÜ
˜GÔ
$€CÜ
˜GÔ
$€Cà˜[Ð)€FØ�f‘+×$Ñ$ WÓ-€Cˆ�KáØ:ˆÜ�]‰]œ>°Ô5ñ 	6Ü×!Ñ! # sÑ5¨fÒ5÷	6ð 	6ô 	×Ñ˜c 3Ñ1¨&Ó1÷	6ð 	6ús   ÁBÂBc                 ó  — |rd}nd}|› d|› d|› d|› d�}t        g d¢g d¢d	œg d
¢¬«      }t        g d¢g d¢d	œg d¢¬«      }t        j                  t        |¬«      5  t	        j
                  ||| |¬«       d d d «       y # 1 sw Y   y xY w)NÚstringÚobjectz\.index are different

zY\.index values are different \(33\.33333 %\)
\[left\]:  Index\(\['a', 'b', 'c'\], dtype='z0'\)
\[right\]: Index\(\['a', 'b', 'd'\], dtype='z-'\)
At positional index 2, first diff: c != dr   r   r#   r&   r(   )r   r   Údr+   r-   ©r   r/   r0   r1   r   r   ©r   r   Úusing_infer_stringÚdtyper4   r2   r3   s          r   Útest_frame_equal_index_mismatchrO   o   s�   € áØ‰àˆØˆmð à€ð 2Ø27°ð 92Ø27°ð 9*ð	-€Cô š)ª)Ñ4ºOÔ
L€CÜ
š)ª)Ñ4ºOÔ
L€Cä	�‰”~¨SÔ	1ñ PÜ
×Ñ˜c 3°:À;ÕO÷P÷ Pñ Púó   ÁB Â B	c                 ó  — |rd}nd}|› d|› d|› d|› d�}t        g d¢g d¢d	œg d
¢¬«      }t        g d¢g d¢dœg d
¢¬«      }t        j                  t        |¬«      5  t	        j
                  ||| |¬«       d d d «       y # 1 sw Y   y xY w)NrH   rI   z\.columns are different

zR\.columns values are different \(50\.0 %\)
\[left\]:  Index\(\['A', 'B'\], dtype='z+'\)
\[right\]: Index\(\['A', 'b'\], dtype='z'\)r   r   r#   r&   r(   )r$   r   r+   r-   rK   rL   s          r   Ú!test_frame_equal_columns_mismatchrR   ƒ   sš   € áØ‰àˆØˆmð à€ð -Ø-2¨Gð 4-Ø-2¨G°4ð	;€Cô š)ª)Ñ4ºOÔ
L€CÜ
š)ª)Ñ4ºOÔ
L€Cä	�‰”~¨SÔ	1ñ PÜ
×Ñ˜c 3°:À;ÕO÷P÷ Pñ PúrP   c                 óò   — |}|› d|› d�}t        g d¢g d¢dœ«      }t        g d¢g d¢dœ«      }t        j                  t        |¬«      5  t	        j
                  ||| |¬«       d d d «       y # 1 sw Y   y xY w)	Nz2\.iloc\[:, 1\] \(column name="B"\) are different

zŒ\.iloc\[:, 1\] \(column name="B"\) values are different \(33\.33333 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \[4, 5, 6\]
\[right\]: \[4, 5, 7\]r   r   r#   )r    r!   é   r+   ©Ú	by_blocksr.   rK   )r   r   r.   r4   r2   r3   s         r   Útest_frame_equal_block_mismatchrW   –   s~   € Ø
€CØˆeð à€ð ð€Cô š)ª)Ñ4Ó
5€CÜ
š)ª)Ñ4Ó
5€Cä	�‰”~¨SÔ	1ñ VÜ
×Ñ˜c 3Ð2CÈÕU÷V÷ Vñ Vús   Á
A-Á-A6)õ   Ã¡õ   Ã õ   Ã¤)õ   Ã©õ   Ã¨õ   Ã«)r$   ÚE)r[   r\   u   eÌŠuÏ   {obj}\.iloc\[:, 1\] \(column name="E"\) are different

{obj}\.iloc\[:, 1\] \(column name="E"\) values are different \(33\.33333 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \[Ã©, Ã¨, Ã«\]
\[right\]: \[Ã©, Ã¨, eÌŠ\])r   r   r   )Úer_   r_   uÈ   {obj}\.iloc\[:, 0\] \(column name="A"\) are different

{obj}\.iloc\[:, 0\] \(column name="A"\) values are different \(100\.0 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \[Ã¡, Ã , Ã¤\]
\[right\]: \[a, a, a\]c                 óº   — |j                  |¬«      }t        j                  t        |¬«      5  t	        j
                  | |||¬«       d d d «       y # 1 sw Y   y xY w)Nr7   r+   rU   )Úformatr/   r0   r1   r   r   )r2   r3   r4   r   r   s        r   Útest_frame_equal_unicoderb   ¦   sP   € ð< �*‰*˜ˆ*Ó
%€CÜ	�‰”~¨SÔ	1ñ VÜ
×Ñ˜c 3Ð2CÈÕU÷V÷ Vñ Vús   ®AÁAc                  ó  — t        dg d¢id¬«      } | j                  t        «      }d}t        j                  | |d¬«       t        j                  t        |¬«      5  t        j                  | |d	¬«       d d d «       y # 1 sw Y   y xY w)
Nr   r   ÚInt64©rN   z�Attributes of DataFrame\.iloc\[:, 0\] \(column name="a"\) are different

Attribute "dtype" are different
\[left\]:  Int64
\[right\]: int[32|64]F©rC   r+   T)r   rE   Úintr   r   r/   r0   r1   ©ÚleftÚrightr4   s      r   Ú0test_assert_frame_equal_extension_dtype_mismatchrk   É   st   € ä�cš9Ð%¨WÔ5€DØ�K‰KœÓ€Eð	"ð ô ×Ñ˜$ °5Õ9ä	�‰”~¨SÔ	1ñ =Ü
×Ñ˜d E°tÕ<÷=÷ =ñ =ús   ÁA>Á>Bc                  ó:  — t        dt        j                  dd«      gid¬«      } | j                  t        «      }d}t        j                  | |d¬«       t        j                  t        |¬	«      5  t        j                  | |d
¬«       d d d «       y # 1 sw Y   y xY w)Nr   r   r   Úintervalre   zžAttributes of DataFrame\.iloc\[:, 0\] \(column name="a"\) are different

Attribute "dtype" are different
\[left\]:  interval\[int64, right\]
\[right\]: objectFrf   r+   T)
r   ÚpdÚIntervalrE   rI   r   r   r/   r0   r1   rh   s      r   Ú/test_assert_frame_equal_interval_dtype_mismatchrp   Ü   s‚   € ä�cœBŸK™K¨¨1Ó-Ð.Ð/°zÔB€DØ�K‰KœÓ€Eð	ð ô ×Ñ˜$ °5Õ9ä	�‰”~¨SÔ	1ñ =Ü
×Ñ˜d E°tÕ<÷=÷ =ñ =ús   Á/BÂBc                  óx   — t        dg d¢id¬«      } t        dg d¢id¬«      }t        j                  | |d¬«       y )Nr   r   rd   re   ÚInt32Frf   ©r   r   r   ©ri   rj   s     r   Ú7test_assert_frame_equal_ignore_extension_dtype_mismatchru   ï   ó6   € ä�cš9Ð%¨WÔ5€DÜ�sšIÐ&¨gÔ6€EÜ×Ñ˜$ °5Ö9r   c                  óx   — t        dg d¢id¬«      } t        dg d¢id¬«      }t        j                  | |d¬«       y )Nr   r   rd   re   rD   Frf   rs   rt   s     r   ÚCtest_assert_frame_equal_ignore_extension_dtype_mismatch_cross_classrx   ö   rv   r   rN   )ztimedelta64[ns]zdatetime64[ns, UTC]z	Period[D]c                 ól   — t        dg i| ¬«      }t        dg i«      }t        j                  ||d¬«       y )Nr   re   Frf   rs   )rN   r2   r3   s      r   Ú4test_assert_frame_equal_datetime_like_dtype_mismatchrz   ý   s4   € ô �S˜"�I UÔ
+€CÜ
�S˜"�IÓ
€CÜ×Ñ˜#˜s°Ö6r   c                  ó  — t        «       } t        «       j                  d¬«      }t        j                  | | «       t        j                  ||«       t        j                  | |d¬«       t        j                  || d¬«       t	        j
                  t        d¬«      5  t        j                  | |«       d d d «       t	        j
                  t        d¬«      5  t        j                  | |«       d d d «       y # 1 sw Y   ŒDxY w# 1 sw Y   y xY w)NF)Úallows_duplicate_labels©Úcheck_flagsz<Flagsr+   )r   Ú	set_flagsr   r   r/   r0   r1   rt   s     r   Útest_allows_duplicate_labelsr€     sÏ   € Ü‹;€DÜ‹K×!Ñ!¸%Ð!Ó@€EÜ×Ñ˜$ Ô%Ü×Ñ˜% Ô'Ü×Ñ˜$ °5Õ9Ü×Ñ˜% °5Õ9ä	�‰”~¨XÔ	6ñ +Ü
×Ñ˜d EÔ*÷+ô 
�‰”~¨XÔ	6ñ +Ü
×Ñ˜d EÔ*÷+ð +÷+ð +ú÷+ð +ús   ÂC6ÃDÃ6C?ÄDc                  ó^   — t        g d¢gg d¢g d¢¬«      } t        j                  | | d¬«       y )N)r   r   r   )ÚfooÚbaré*   )r   Útestr   )rB   r)   T©r   rs   )Údfs    r   Ú+test_assert_frame_equal_columns_mixed_dtyperˆ     s%   € ä	’I�;Ò(:Â.Ô	Q€BÜ×Ñ˜"˜b¨TÖ2r   c                 óL   —  | ddg|¬«      }t        j                  ||d¬«       y )Nr   r   re   T©Úcheck_exact©r   Úassert_equal)Úframe_or_seriesÚany_numeric_ea_dtyper.   s      r   Ú test_frame_equal_extension_dtyper�      s#   € á
˜1˜a˜&Ð(<Ô
=€CÜ‡O�O�C˜¨$Ö/r   Úindexer)r   r   )r   r   c                 ó†   — |df} | ddg||d      ¬«      } | ddg||d      ¬«      }t        j                  ||dd¬«       y )	NrD   r   r   r   re   TF)r‹   rC   rŒ   )rŽ   r�   r‘   ÚdtypesÚobj1Úobj2s         r   Útest_frame_equal_mixed_dtypesr–   &  sP   € à" GÐ,€FÙ˜A˜q˜6¨°¸±
Ñ);Ô<€DÙ˜A˜q˜6¨°¸±
Ñ);Ô<€DÜ‡O�O�D˜$¨D¸eÖDr   c                  ó  — t        t        j                  g d¬«      ¬«      } t        t        j                  ddd¬«      ¬«      }t	        j
                  t        d¬«      5  t        j                  | |d	¬
«       d d d «       y # 1 sw Y   y xY w)NrI   re   r(   r   r   )ÚstartÚstopÚstepzDataFrame.index are differentr+   Tr†   )	r   rn   ÚIndexÚ
RangeIndexr/   r0   r1   r   r   ©r2   r3   s     r   Ú4test_assert_frame_equal_check_like_different_indexesrž   .  sd   € ä
œ"Ÿ(™( 2¨XÔ6Ô
7€CÜ
œ"Ÿ-™-¨a°a¸aÔ@Ô
A€CÜ	�‰”~Ð-LÔ	Mñ 9Ü
×Ñ˜c 3°4Õ8÷9÷ 9ñ 9ús   ÁBÂB
c                  óL  — t        ddgddgg«      } d| j                  _        t        ddgddgg«      }d|j                  _        t        j                  | |d¬«       t        j                  t        d¬	«      5  t        j                  | |d¬«       d d d «       y # 1 sw Y   y xY w)
Nr   r   r   r    FTr}   r|   r+   )r   Úflagsr|   r   r   r/   r0   r1   rt   s     r   Ú0test_assert_frame_equal_checking_allow_dups_flagr¡   6  s�   € ä�q˜!�f˜q !˜fÐ%Ó&€DØ).€D‡J�JÔ&ä˜˜1�v  1˜vÐ&Ó'€EØ*.€E‡K�KÔ'Ü×Ñ˜$ °5Õ9ä	�‰”~Ð-FÔ	Gñ =Ü
×Ñ˜d E°tÕ<÷=÷ =ñ =ús   Á8BÂB#c            
      ó¤  — t        dgdgdggt        j                  j                  t        j                  g d¢«      t        j                  g d¢«      g«      ¬«      } t        dgdgdggt        j                  j                  t        j                  g d¢«      t        j                  g d¢«      g«      ¬«      }t        j                  | |d¬«       y )	Nr   r   r   r&   r(   r*   Tr†   )r   rn   Ú
MultiIndexÚfrom_arraysÚCategoricalr   r   rt   s     r   Ú3test_assert_frame_equal_check_like_categorical_midxr¦   C  s¨   € äØ
ˆˆqˆc�A�3ˆÜ�m‰m×'Ñ'ä—‘šÓ/Ü—‘šÓ/ðó
ô€Dô Ø
ˆˆqˆc�A�3ˆÜ�m‰m×'Ñ'ä—‘šÓ/Ü—‘šÓ/ðó
ô€Eô ×Ñ˜$ °$Ö7r   c                  ó@  — t        dt        j                  t        j                  dgd¬«      i«      } t        dt        j                  ddgd¬«      i«      }d}t	        j
                  t        |¬«      5  t        j                  | |«       d d d «       y # 1 sw Y   y xY w)Nr   r   rd   re   zGDataFrame.iloc\[:, 0\] \(column name="a"\) NA mask values are differentr+   ©	r   rn   r   ÚNAr/   r0   r1   r   r   ©r2   r3   r4   s      r   Ú>test_assert_frame_equal_ea_column_definition_in_exception_maskr«   Z  sz   € ä
�Sœ"Ÿ)™)¤R§U¡U¨A J°gÔ>Ð?Ó
@€CÜ
�Sœ"Ÿ)™) Q¨ F°'Ô:Ð;Ó
<€Cà
T€CÜ	�‰”~¨SÔ	1ñ (Ü
×Ñ˜c 3Ô'÷(÷ (ñ (ús   Á4BÂBc                  óì  — t        dt        j                  t        j                  dgd¬«      i«      } t        dt        j                  t        j                  dgd¬«      i«      }d}t	        j
                  t        |¬«      5  t        j                  | |«       d d d «       t	        j
                  t        |¬«      5  t        j                  | |d¬	«       d d d «       y # 1 sw Y   ŒFxY w# 1 sw Y   y xY w)
Nr   r   rd   re   r   ú?DataFrame.iloc\[:, 0\] \(column name="a"\) values are differentr+   TrŠ   r¨   rª   s      r   Ú9test_assert_frame_equal_ea_column_definition_in_exceptionr®   d  sº   € ä
�Sœ"Ÿ)™)¤R§U¡U¨A J°gÔ>Ð?Ó
@€CÜ
�Sœ"Ÿ)™)¤R§U¡U¨A J°gÔ>Ð?Ó
@€Cà
L€CÜ	�‰”~¨SÔ	1ñ (Ü
×Ñ˜c 3Ô'÷(ô 
�‰”~¨SÔ	1ñ :Ü
×Ñ˜c 3°DÕ9÷:ð :÷(ð (ú÷:ð :ús   ÂCÂ<C*ÃC'Ã*C3c                  óh  — t        dt        j                  d«      t        j                  d«      gi«      } t        dt        j                  d«      t        j                  d«      gi«      }d}t        j                  t
        |¬«      5  t        j                  | |«       d d d «       y # 1 sw Y   y xY w)Nr   z
2019-12-31z
2020-12-31r­   r+   )r   rn   Ú	Timestampr/   r0   r1   r   r   rª   s      r   Ú!test_assert_frame_equal_ts_columnr±   q  s†   € ä
�Sœ2Ÿ<™<¨Ó5´r·|±|ÀLÓ7QÐRÐSÓ
T€CÜ
�Sœ2Ÿ<™<¨Ó5´r·|±|ÀLÓ7QÐRÐSÓ
T€Cà
L€CÜ	�‰”~¨SÔ	1ñ (Ü
×Ñ˜c 3Ô'÷(÷ (ñ (ús   ÂB(Â(B1c                  ó|   — t        dh d£h d£gi«      } t        dh d£h d£gi«      }t        j                  | |«       y )NÚ
set_column¾   r   r   r   ¾   r    r!   r"   rs   r�   s     r   Útest_assert_frame_equal_setr¶   {  s:   € ä
�\¢IªyÐ#9Ð:Ó
;€CÜ
�\¢IªyÐ#9Ð:Ó
;€CÜ×Ñ˜#˜sÕ#r   c                  óà   — t        dh d£h d£gi«      } t        dh d£h d£gi«      }d}t        j                  t        |¬«      5  t	        j
                  | |«       d d d «       y # 1 sw Y   y xY w)Nr³   r´   rµ   >   r    r!   rT   zHDataFrame.iloc\[:, 0\] \(column name="set_column"\) values are differentr+   rK   rª   s      r   Ú$test_assert_frame_equal_set_mismatchr¸   ‚  sb   € ä
�\¢IªyÐ#9Ð:Ó
;€CÜ
�\¢IªyÐ#9Ð:Ó
;€Cà
U€CÜ	�‰”~¨SÔ	1ñ (Ü
×Ñ˜c 3Ô'÷(÷ (ñ (ús   ÁA$Á$A-)'r/   Úpandasrn   r   Úpandas._testingÚ_testingr   Úfixturer   r   r   ÚmarkÚparametrizer5   r9   Úfrom_recordsr>   rF   rO   rR   rW   rb   rk   rp   ru   rx   rz   r€   rˆ   r�   r–   rž   r¡   r¦   r«   r®   r±   r¶   r¸   © r   r   ú<module>rÁ      sL  ðÛ ã Ý Ý ð €‡�˜˜e�}Ô%ñó &ðð €‡�˜ XÐ.Ô/ñó 0ðò*ð& ‡�×Ñ˜¨¨e }Ó5ñ	Só 6ð	Sð ‡�×ÑØá	�CšÐ#Ó	$¡i°²lÐ0CÓ&DÐEÙ	šªÑ3Ó	4±iÀÂiÐ@PÓ6QÐRðóñ9óð9ð ‡�×ÑØð #ˆI×"Ñ"¨!¨Q¨°t¸T°lÑ#CÈCÈ5ÔQØ"ˆI×"Ñ"¨#¨s¨¸4À¸,Ñ#GÐPSÈuÔUØ-ð	
ð #ˆI×"Ñ"Ø˜!�f C¨ :°T¸4°LÑAÈ#ÈsÈôð #ˆI×"Ñ"Ø˜C�j¨¨S z¸¸t¸ÑEÈcÐSVÈZôð 5ð	
ðóñ*2ó+ð*2ò2ð  ‡�×Ñ˜¨¨e }Ó5ñPó 6ðPð& ‡�×Ñ˜¨¨e }Ó5ñPó 6ðPò$Vð  ‡�×ÑØñ Ò.Ò5GÑHÓIÙÒ.Ò5HÑIÓJð"ð		
ñ Ò.Ò5GÑHÓIÙšO²/ÑBÓCðð		
ðóñ2Vó3ð2Vò=ò&=ò&:ò:ð ‡�×ÑØòóñ7óð7ò+ò3ò0ð ‡�×Ñ˜ V¨VÐ$4Ó5ñEó 6ðEò9ò
=ò8ò.(ò
:ò(ò$ó(r   