
    I jc                     @   S r SSKJrJrJr  SSKJr  SSKrSSKrSSK	J
r
  SSKrSSKJrJrJrJrJrJr  SSKJr  SSKJr  SSKJr  SS	KJr  \R8                  R;                  S
5      r\R8                  R?                  S5      r \R8                  R?                  S5      r!S r"\ S 5       r#\!S 5       r$\ S 5       r%\ \R8                  RM                  SSS/SS//5      S 5       5       r'\ \R8                  RM                  SSS/SS//5      S 5       5       r(S r)\R8                  RM                  S0 SS0/5      S 5       r*\R8                  RM                  SS\RV                  " SS/5      SS 1/5      S! 5       r,\R8                  RM                  S"S#S$/5      S% 5       r-S& r.S' r/\ \R8                  RM                  S(S)SS/0\" \" S*SS+5      /S/S,S-94S)S.SS/.\" \" S0/S,SS19/ S294S3SSS4/0\" \" S*SS+5      \" S5S6S75      //S,SS4/S894S3S.SS/S/.\" \R`                  " \" S*SS+5      \" S5S6S75      4/SS4/S99/ S294/5      S: 5       5       r1S; r2\R8                  RM                  S<S=S>S?/4S@/ SAQ4/5      \R8                  RM                  SS.SB/5      SC 5       5       r3SD r4\!\R8                  RM                  SE/ SFQ5      SG 5       5       r5\R8                  RM                  SHSIS.\" SJSSK5      4SLSB\" SJSSK5      4SMS.\" SJSS5      4/5      SN 5       r6\!\R8                  RM                  SHSISB\" SJSSK5      4SLS.\" SJSSK5      4/5      SO 5       5       r7SP r8\!\R8                  RM                  SQSSR/SSST/SU4SSR/SST/ST4/ SVQSSSST/SU4/ SVQSWSX/SWST/ST4/5      SY 5       5       r9\ SZ 5       r:\ S[ 5       r;S\ r<S] r=\R8                  RM                  S^\R|                  " S_SBS`Sa9\R|                  " SbS.ScSa9/5      Sd 5       r?\!Se 5       r@\ Sf 5       rA\ Sg 5       rBSh rCSi rD\ Sj 5       rESk rF\ Sl 5       rGg)mzO
Tests date parsing functionality for all of the
parsers defined in parsers.py
    )datetime	timedeltatimezone)StringION)Pandas4Warning)	DataFrameDatetimeIndexIndex
MultiIndexSeries	Timestamp)
date_range)start_caching_at)read_csvz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningpyarrow_xfailpyarrow_skipc                    SnU nS S/S/ SQS.nUR                   " [        U5      40 UD6n[        [        SSSSS5      [        SSSS	S5      [        SSSS
S5      [        SSSS
S5      [        SSSSS5      /SSS9n[	        / SQ/ SQ/ SQ/ SQ/ SQ// SQUS9nUR
                  S:X  a3  [        R                  " SUS   -   5      R                  R                  US'   [        R                  " XF5        g )Naz  KORD,19990127 19:00:00, 18:56:00, 0.8100, 2.8100, 7.2000, 0.0000, 280.0000
KORD,19990127 20:00:00, 19:56:00, 0.0100, 2.2100, 7.2000, 0.0000, 260.0000
KORD,19990127 21:00:00, 20:56:00, -0.5900, 2.2100, 5.7000, 0.0000, 280.0000
KORD,19990127 21:00:00, 21:18:00, -0.9900, 2.0100, 3.6000, 0.0000, 270.0000
KORD,19990127 22:00:00, 21:56:00, -0.5900, 1.7100, 5.1000, 0.0000, 290.0000
   )X0X1X2X3X4X5X6X7)headerparse_dates	index_colnamesi        r            M8[us]r   dtypename)KORDz	 18:56:00gQ?g{Gz@@             q@)r*   z	 19:56:00g{Gz?Gz@r+   r,   g     @p@)r*   z	 20:56:00zGr.   g@r,   r-   )r*   z	 21:18:00gGzgGz @g@r,   g     p@)r*   z	 21:56:00r/   g\(\?gffffff@r,   g      r@)r   r   r   r   r   r   r   columnsindexpyarrow
1970-01-01r   )r   r   r
   r   r   enginepdto_datetimedttimetmassert_frame_equal)all_parsersdataparserkwdsresultr2   expecteds          x/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_parse_dates.pytest_date_col_as_index_colrC   )   s   D FsA	D __Xd^4t4FT1b"a(T1b"a(T1b"a(T1b"a(T1b"a(	
 
E >>???	
 ;
H }}	! x~(EFIINN&+    c                    U n[        [        R                  " SSS9[        S5      S.5      n[        R                  UR
                  SS2S S 24'   UnUR                  U5        UR                  USS	/S
9n[        R                  " XS5        g )N
   float64r(   20010101)AB      r   rK   r   r   )
r   nparanger   nanilocto_csvr   r:   r;   )r<   	temp_filer>   dfpathr@   s         rB   test_nat_parserW   X   s}     F	2Y/:&	

B ffBGGAaCFODIIdO__TQSE_BF&%rD   c                     SnU nUR                  [        U5      SS9nUR                  [        U5      SSS9n[        R                  " X45        g )Nz3A,B,C
20090101,a,1,2
20090102,b,3,4
20090103,c,4,5
Tr   r   rN   r   r   r:   r;   )r<   r=   r>   r@   rA   s        rB   #test_parse_dates_implicit_first_colr[   k   sL    D
 F__Xd^_>Fx~MH&+rD   c                     SnU nUR                  [        U5      SS/S9n[        SSSSS9R                  S 5      n[	        / SQ/ S	Q/ S
QS.US9n[
        R                  " X55        g )Nz8date,A,B,C
20090101,a,1,2
20090102,b,3,4
20090103,c,4,5
daterN   z1/1/2009rL   us)periodsr)   unitabc)r   rL      )   re      rJ   rK   Cr2   )r   r   r   
_with_freqr   r:   r;   )r<   r=   r>   r@   r2   rA   s         rB   test_parse_dates_stringrl   y   sl    D
 F__Xd^vF8_TFz16EPPQUVEII>eH &+rD   r   rf   rb   rd   c           	      D   SnU n[        [        SSS5      /S/[        SSS5      /S.5      nUS   R                  S5      US'   US	   R                  S5      US	'   UR                  SS
/5      nUR	                  [        U5      SS/USS9n[        R                  " XT5        g )Nza,b,c
01/01/2010,1,15/02/2010i  r   rf      ra   rb   r&   rd   rc   r   T)r   r   dayfirst)r   r   astype	set_indexr   r   r:   r;   )r<   r   r=   r>   rA   r@   s         rB   test_parse_dates_column_listrr      s     ,DFa#$A3htQ6K5LMH SM((2HSMSM((2HSM!!3*-H__1a&kD  F &+rD   r   r   c                 F   SnU n[        SSSSS9n[        R                  " US/SS	/S
9nUSS/:X  a  UR                  SS5      n[	        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/	/ SQUS9nUR                  [        S[        U5      USS9n[        R                  " Xv5        g )Nzindex1,index2,A,B,C
20090101,one,a,1,2
20090101,two,b,3,4
20090101,three,c,4,5
20090102,one,a,1,2
20090102,two,b,3,4
20090102,three,c,4,5
20090103,one,a,1,2
20090103,two,b,3,4
20090103,three,c,4,5
z
2009-01-01rL   Dr^   )r_   freqr`   )onetwothreeindex1index2r    r   r   )rb   r   rf   )rc   rL   re   )rd   re   rg   rh   r0   Could not infer formatTrN   )
r   r   from_product	swaplevelr   read_csv_check_warningsUserWarningr   r:   r;   )r<   r   r=   r>   dtir2   rA   r@   s           rB   test_multi_index_parse_datesr      s    
D F
\13T
BC###	
 "E QF1%
	
  H ++  , F &+rD   c                    U nSnUR                  [        U5      SSS9n[        SS/0[        [	        S5      /SS	9S
9nUR
                  S:X  aC  [        R                  " S5      nUR                  nUR                  R                  S5      Ul	        O[        R                  n[        R                  " X45        UR                  R                  UL d   eg )NzDate,x
2012-06-13T01:39:00Z,0.5r   TrN   xg      ?z2012-06-13 01:39:00+00:00Dater)   rj   r3   pytzs)r   r   r   r
   r   r5   pytestimportorskiputcr2   as_unitr   r:   r;   tz)r<   r>   r=   r@   rA   r   expected_tzs          rB   test_parse_tz_awarer      s    F-D__Xd^qd_KF	seE9-H#I"JQWXH }}	!""6*hh!//4ll&+<<??k)))rD   kwargsri   c                     U nSnSn[         R                  " [        US9   UR                  " [	        U5      4SS0UD6  S S S 5        g ! , (       d  f       g = f)NDOnly booleans and lists are accepted for the 'parse_dates' parameterA,B,C
    1,2,2003-11-1matchr   ri   r   raises	TypeErrorr   r   )r<   r   r>   msgr=   s        rB   *test_read_with_parse_dates_scalar_non_boolr      sK     F
PCD 
y	,BCB6B 
-	,	,s   A
A)r   re   rg   rL   c                     U nSnSn[         R                  " [        US9   UR                  [	        U5      US9  S S S 5        g ! , (       d  f       g = f)Nr   r   r   rY   r   )r<   r   r>   r   r=   s        rB   'test_read_with_parse_dates_invalid_typer      sC    F
PCD 
y	,K@ 
-	,	,s   A
AvaluerQ    c                 d    U n[        U S3[        S-   -  5      nUR                  US SS/S/US9  g )Nz,
r   foobar)r   r    r   cache_dates)r   r   r   )r<   cacher   r>   r   s        rB   test_bad_date_parser      sJ     FUG3-$4q$89:A
OO	enG  rD   c                     U n[        S[        S-   -  5      nUR                  S:X  a  S nOU(       a  S nO[        nUR	                  USUS SS/S/USS9  g )	Nz0,
r   r3   r|   r   r   F)r   r    r   r   raise_on_extra_warnings)r   r   r5   r   r   )r<   r   r>   r   warns        rB    test_bad_date_parse_with_warningr     sq     F&-123A}}	!
 	 
"" 	enG % # 	rD   c                     U nSnUR                  [        U5      S/SS9n[        [        SSS5      S/[        R
                  S//SS/S	9n[        R                  " X45        g )
NzDate,test
2012-01-01,1
,2r   F)r   	na_filteri  r   rf   testr1   )r   r   r   r   r6   NaTr:   r;   r<   r>   r=   r@   rA   s        rB   test_parse_dates_empty_stringr   +  se    F(D__Xd^&U_SF
4A
	"RVVQK066:JH &+rD   zdata,kwargs,expectedza
04.15.2016i  rn   r&   )r1   r(   T)r   r   z
2016-04-15r'   )r2   r1   za,b
04.15.2016,09.16.2013rc   i  	      )r(   r1   r{   c                 p    U nUR                   " [        U5      4SS0UD6n[        R                  " XS5        g )N	thousands.rZ   )r<   r=   r   rA   r>   r@   s         rB   %test_parse_dates_no_convert_thousandsr   7  s4    \ F__Xd^EsEfEF&+rD   c                     U nSnUR                  [        U5      S/S9nSS/SS/SS//n[        US	S/S
9n[        R                  " X55        g )Nz+case,opdate
7,10/18/2006
7,10/18/2008
621, opdaterY      z
10/18/2006z
10/18/2008im   caser   r   r   r   r:   r;   )r<   r>   r=   r@   expected_datarA   s         rB   (test_parse_date_column_with_empty_stringr   k  s]    F;D__Xd^(_DF&L(9C:FM0BCH&+rD   zdata,expectedz"a
135217135789158401
1352171357E+5l   0l    Hbk z%a
99999999999
123456789012345
1234E+0)l   g] l   y_"A i  Fc                 ~    U nUR                  [        U5      US9n[        SU0SS9n[        R                  " XR5        g )NrY   rb   rG   rH   r   )r<   r=   rA   r   r>   r@   s         rB   test_parse_date_floatr   v  s=    & F__Xd^_EF#x	:H&+rD   c                     U nSnUR                  [        U5      S/S9n[        SSS[        [	        SS95      S	S
9R                  S 5      nU/ SQS.n[        U5      n[        R                  " X65        g )Nzdt,val
              2018-01-04 09:01:00+09:00,23350
              2018-01-04 09:02:00+09:00,23400
              2018-01-04 09:03:00+09:00,23400
              2018-01-04 09:04:00+09:00,23400
              2018-01-04 09:05:00+09:00,23400r8   rY   z2018-01-04 09:01:00z2018-01-04 09:05:001mini  )minutesr^   )startendru   r   r`   )i6[  h[  r   r   r   )r8   val)	r   r   r   r   r   rk   r   r:   r;   )r<   r>   r=   r@   r   r   rA   s          rB   test_parse_timezoner     s    F1D __Xd^$_@F
#!Ic*+ j  'JKM'H&+rD   date_string)z
32/32/2019z
02/30/2019z
13/13/2019z13/2019z
a3/11/2018z
10/11/2o17c                     U n[        SU/0SS9nUR                  [        U5      S S/S9n[        R                  " XC5        g )Nr   strrH   )r   r   )r   r   r   r:   r;   )r<   r   r>   rA   r@   s        rB   !test_invalid_parse_delimited_dater     sO     F!k]+59H__C  F
 &+rD   zdate_string,dayfirst,expectedz
13/02/2019i     z
02/13/2019z
04/02/2019c                    U n[        SU/0SS9nUR                  S:X  a\  U(       d  [        R                  " SS9  Sn[        R                  " [
        US9   UR                  [        U5      S US/S	9  S S S 5        g UR                  [        U5      S US/S	9n[        R                  " Xs5        g ! , (       d  f       g = f)
Nr   datetime64[us]rH   r3   z,https://github.com/apache/arrow/issues/38676)reasonz@The 'dayfirst' option is not supported with the 'pyarrow' enginer   r   ro   r   )
r   r5   r   skipr   
ValueErrorr   r   r:   r;   )r<   r   ro   rA   requestr>   r   r@   s           rB   )test_parse_delimited_date_swap_no_warningr     s     F!hZ0@AH}}	!KKMNP]]:S1OO%dXTUSV   2 	__dXA3  F &+ 21 	s   B//
B=c           	          U n[        SU/0SS9nSnUR                  [        U[        U5      S US/S9n[        R
                  " Xc5        g )Nr   r   rH   zParsing dates in .* format when dayfirst=.* was specified. Pass `dayfirst=.*` or specify a format to silence this warning.r   )r   r   r   r   r:   r;   )r<   r   ro   rA   r>   warning_msgr@   s          rB   +test_parse_delimited_date_swap_with_warningr     sg     F!hZ0@AH	J  ++C , F &+rD   c                      [         R                  " [        SS9   [        R                  " / SQ5        S S S 5        g ! , (       d  f       g = f)NzP^time data "31/05/2000" doesn\'t match format "%m/%d/%Y". You might want to try:r   )z
01/01/2000z
31/05/2000z
31/05/2001z
01/02/2000)r   r   r   r6   r7    rD   rB   6test_parse_multiple_delimited_dates_with_swap_warningsr     s5    	&
 	OP
 
 
s	   <
A
z)names, usecols, parse_dates, missing_colsr   r]   r9   z
date, time)date1time1temperaturer   r   c           	          U n[        S5      nSU S3n[        R                  " [        US9   UR	                  USXUS9  S S S 5        g ! , (       d  f       g = f)Nz%date,time,val
2020-01-31,04:20:32,32
z+Missing column provided to 'parse_dates': ''r   ,)sepr    usecolsr   )r   r   r   r   r   )r<   r    r   r   missing_colsr>   contentr   s           rB   &test_missing_parse_dates_column_raisesr     sV    & F@AG7~Q
GC	z	-E 	 	
 
.	-	-s   A		
Ac                     U n[        S5      n[        nUR                  S:X  a  [        [        4nUR	                  USUS/S/S9n[        SSS/0SS	/S
9n[        R                  " XE5        g )Nzx,y
1,2r3   r|   rK   )r   r    y2r   1rj   )r   r   r5   r   r   r   r:   r;   )r<   r>   r=   r   r@   rA   s         rB   test_date_parser_and_namesr   "  s     FN#DD}}	!^,++ Ee , F #Sz*3*=H&+rD   c                     U nSnUR                  [        U5      S/SS/S9n[        [        S5      S/S.5      n[        R
                  " X45        g )	Nza,b
1,2
2019-12-31,6rb   r   r   r   )r   r   
2019-12-31rM   )r   )rc   r   r   r   r   r   r:   r;   r   s        rB   #test_date_parser_multiindex_columnsr   6  sS    FD __Xd^*qRSf_UFi&=A3OPH&+rD   c           	         SnU nUR                   S:X  aC  Sn[        R                  " [        US9   UR	                  [        U5      S/SS/SS9  S S S 5        g UR                  [        S	[        U5      S/SS/SS9n[        S
S/[        S5      /S-  S.5      n[        R                  " XE5        g ! , (       d  f       g = f)Nz2A,B,C
    1,3,20-09-01-01
    2,4,20-09-01-01
    r3   zAThe 'thousands' option is not supported with the 'pyarrow' enginer   r   rf   -)r   r   r   r|   rL   re   z20-09-2001 01:00:00)rK   ri   )r5   r   r   r   r   r   r   r   r   r   r:   r;   )r<   r=   r>   r   r@   rA   s         rB   "test_date_parser_usecols_thousandsr   A  s    D
 F}}	!Q]]:S1OOCA	   2 	++ CA , F 1vY7L-M,NQR,RSTH&+% 21 	s   B00
B>c                     Sn [        SS/SS SS9nSn[        [        U 5      S/SSS	9R                  n[        R
                  " X5        [        R                  " [        US
9   [        [        U 5      S/SSS	9R                  nS S S 5        [        R
                  " UW5        Sn [        SS/SSS9n[        [        U 5      S/SSS	9R                  n[        R
                  " X5        [        R                  " [        US
9   [        [        U 5      S/SSS	9R                  nS S S 5        [        R
                  " UW5        g ! , (       d  f       N= f! , (       d  f       N7= f)Nzdate
31/12/2014
10/03/2011z
2014-12-31z
2011-03-10r   r]   r(   ru   r)   r   T)r   ro   r   r   Fzdate
31/12/2014
03/30/2011z
31/12/2014z
03/30/2011r   r'   )	r	   r   r   r2   r:   assert_index_equalassert_produces_warningr   r
   )inputrA   r   res1res2res5res6s          rB   test_dayfirst_warningsr   b  sW    +E	|$,<4fH	J  fXe 	 () 
	#	#K{	CUO&EV

% 	 
D (D) +ElL1VLH fXe 	 () 
	#	#K{	CUO&EV

% 	 
D (D)3 
D	C* 
D	Cs   "!E !E
E
E zdate_string, dayfirstz	31/1/2014zsecond date is single-digit)idz	1/31/2014zfirst date is single-digitc                     SU  3n[        S/SS SS9nSn[        R                  " [        US9   [	        [        U5      S/SUS9R                  nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)	Nzdate
z
2014-01-31r   r]   r   r   r   )r   r   ro   )r	   r:   r   r   r   r   r2   r   )r   ro   initial_valuerA   r   ress         rB   &test_dayfirst_warnings_no_leading_zeror    s    " [M*M	.TH	J  
	#	#K{	C]#	

 % 	 
D (C( 
D	Cs   !A//
A=c                     U nSnUR                  [        U5      S/S9n[        SSSS.S/S	9n[        R                  " X45        g )
Nza,b,c
1970-01-01,2,3,4rb   rY   r   rL   re   ra   r4   rj   r   r   s        rB    test_infer_first_column_as_indexr    sR     F$D__E  F s3L>JH&+rD   c           
         U nSnUR                  [        U5      SSS/0S/SS9n[        S[        S5      [        R
                  [        S5      [        R
                  [        S	5      /0S
S9n[        R                  " X45        g )Nz*Test
2012-10-01
0
2015-05-15
#
2017-09-09
Test#0%Y-%m-%d)	na_valuesr   date_formatz
2012-10-01z
2015-05-15z
2017-09-09r&   rH   )r   r   r   r   r6   r   r:   r;   r   s        rB   &test_replace_nans_before_parsing_datesr    s     FD __C:&H	  F ,',','	
 H &+rD   c                     U nSnUR                  [        U5      SS/S9n[        S/[        S5      /S.5      nUS   R	                  S5      US'   [
        R                  " X45        g )	Nza,b
1,2019-12-31
stringrc   )r(   r   r   r   rb   rc   rb   )r   r   r   r   rp   r:   r;   r   s        rB   !test_parse_dates_and_string_dtyper    sk     FD __Xd^8#_OFuIl,C+DEFHSM((2HSM&+rD   c           	          U nSnUR                   S:X  a  [        SS/SSS9nS nO[        SS	/S
SS9n[        nSnUR	                  UU[        U5      SSSS9n[        SSS/0US9n[        R                  " Xg5        g )Nz7a,b
27.03.2003 14:55:00.000,1
03.08.2003 15:20:00.000,2r3   z27.03.2003 14:55:00.000z03.08.2003 15:20:00.000r   rb   r'   z2003-03-27 14:55:00z2003-08-03 15:20:00r   z1when dayfirst=False \(the default\) was specifiedTr   F)r   r   r   rc   r   rf   rj   )	r5   r
   r	   r   r   r   r   r:   r;   )r<   r>   r=   expected_indexr   r   r@   rA   s           rB   test_parse_dot_separated_datesr    s    FD }}	!&(AB

 &"$9:"

 
>C++ % , F #1vn=H&+rD   c                     U nSnUR                  [        U5      SSS.SS/S9n[        [        S5      [        S	5      /[        S5      [        S	5      /S.S
S9n[        R
                  " X45        g )N/a,b
2019-12-31,31-12-2019
2020-12-31,31-12-2020r	  z%d-%m-%Yr  rb   rc   )r  r   r   
2020-12-31r&   rH   r   r   s        rB   test_parse_dates_dict_formatr    s    FD __$:6#J  F
 L)9\+BCL)9\+BC	
 H &+rD   c           	          U nSnUR                  [        U5      SS0SSS9n[        SSS	/0[        [	        S
5      [	        S5      /SS9S9n[
        R                  " X45        g )Nr  rb   r	  Tr   )r  r   r   rc   z
31-12-2019z
31-12-2020r   r  r   rj   )r   r   r   r
   r   r:   r;   r   s        rB   "test_parse_dates_dict_format_indexr  &  s~     FD __S*$54ST  F ,-	
 Y|,i.EFSQ	H &+rD   c                     U nSnUR                  [        U5      S/S9n[        [        S5      [        S5      /SS.5      nUR                  S:X  a  US   R                  S	5      US'   [        R                  " X45        g )
Nz/a,b
2000-01-01 00:00:00,1
2000-01-01 00:00:01,1rb   rY   z2000-01-01 00:00:00z2000-01-01 00:00:01r   r  r3   zM8[s])r   r   r   r   r5   rp   r:   r;   r   s        rB   test_parse_dates_arrow_enginer  :  s    FD __Xd^#_?F /0/0 	
H }}	! ,,W5&+rD   c                     U nSnUR                  [        U5      S/S9S   n[        SS/SSS/S9n[        R                  " X45        g )	Nz5a
2020-01-01T00:00:00+01:00
2020-01-01T00:00:00+00:00rb   rY   z2020-01-01T00:00:00+01:00z2020-01-01T00:00:00+00:00r   r   )r)   r2   )r   r   r   r:   assert_series_equalr   s        rB    test_from_csv_with_mixed_offsetsr  P  sZ    FDD__Xd^#_?DF''	
 !fH 6,rD   )H__doc__r   r   r   ior   numpyrO   r   pandas.errorsr   pandasr6   r   r	   r
   r   r   r   pandas._testing_testingr:   pandas.core.indexes.datetimesr   pandas.core.tools.datetimesr   pandas.io.parsersr   markfilterwarnings
pytestmarkusefixturesxfail_pyarrowskip_pyarrowrC   rW   r[   rl   parametrizerr   r   r   r   arrayr   r   r   r   from_tuplesr   r   r   r   r   r   r   r   r   r   r   r   r   paramr  r  r  r  r  r  r  r  r  r   rD   rB   <module>r3     s  
 
    (    4 8 &[[''C
 ''8{{&&~6,,^ & &$ 
, 
, , ," !Q#s(<=, > ," 1v1v&670, 8 0,f*& Bc(:#;<C =C rxxA/?!Q(HIA JA 5"+. /<	,  SE"xa,-uHM	
  q1#\N(M	
 )S#J'4B'$2)>?@c
	
 ) 1v6 ,, &dAr2%dAr2 * 	
/'*V,W* X,,  31	

 70	
	 u6	, 7	,,0 U,	 
, # 
tXdAr23	uhtQ34	tXdAq12
,
,. # 
uhtQ34	tXdAr23	, ,(	Q /	w(,7	wFV,	*D662BLQ-m$f		
	

 
 , ,& , ,,B-*` ,	

 	+	
))( 	, 	, , ,> 	, 	,,B,, , ,&,, - -rD   