
    Pic                     J	   d Z ddlmZmZmZ ddlmZ ddlZddlZddl	m
Z
 ddlZddlmZmZmZmZmZmZ ddlmZ ddlmZ ddlmZ dd	lmZ ej                            d
          Zej                            d          Z ej                            d          Z!d Z"e d             Z#e!d             Z$e d             Z%e ej        &                    dddgddgg          d                         Z'e ej        &                    dddgddgg          d                         Z(d Z)ej        &                    di ddig          d             Z*ej        &                    dd ej+        ddg          dd hg          d!             Z,ej        &                    d"d#d$g          d%             Z-d& Z.d' Z/e ej        &                    d(d)ddgi e ed*dd+          gdgd,-          fd)d.dd/ e ed0gd,d1          g 2          fd3ddd4gi e ed*dd+           ed5d6d7          ggd,dd4g8          fd3d.ddgd/ e ej0         ed*dd+           ed5d6d7          fgdd4g9          g 2          fg          d:                         Z1d; Z2ej        &                    d<d=d>d?gfd@g dAfg          ej        &                    dd.dBg          dC                         Z3dD Z4e!ej        &                    dEg dF          dG                         Z5ej        &                    dHdId. edJddK          fdLdB edJddK          fdMd. edJdd          fg          dN             Z6e!ej        &                    dHdIdB edJddK          fdLd. edJddK          fg          dO                         Z7dP Z8e!ej        &                    dQddRgdSdTgdUfddRgddTgdTfg dVddSdTgdUfg dVdWdXgdWdTgdTfg          dY                         Z9e dZ             Z:e d[             Z;d\ Z<d] Z=ej        &                    d^ ej>        d_dBd`a           ej>        dbd.dca          g          dd             Z?e!de             Z@e df             ZAe dg             ZBdh ZCdi ZDe dj             ZEdk ZFe dl             ZGdS )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                 
   d}| }d dgdg dd} |j         t          |          fi |}t          t          ddddd          t          dddd	d          t          dddd
d          t          dddd
d          t          ddddd          gdd          }t	          g dg dg dg dg dgg d|          }|j        dk    r*t          j        d|d         z             j        j	        |d<   t          j        ||           d S )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          {/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/io/parser/test_parse_dates.pytest_date_col_as_index_colrC   )   ss   D FsAAA	 D V_Xd^^44t44FT1b"a((T1b"a((T1b"a((T1b"a((T1b"a((	
 
 
 
E >>>>>>?????????	
 ;::
 
 
H }	!! x~(EFFIN&(+++++    c                 .   | }t          t          j        dd          t          d          d          }t          j        |j        ddd d f<   |}|                    |           |                    |dd	g
          }t          j	        ||           d S )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 fBGAaCFODIIdOOO__TQSE_BBF&"%%%%%rD   c                     d}| }|                     t          |          d          }|                     t          |          dd          }t          j        ||           d S )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   sa    D
 F__Xd^^_>>Fx~~MMH&(+++++rD   c                    d}| }|                     t          |          ddg          }t          dddd                              d           }t	          g dg d	g d
d|          }t          j        ||           d S )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   s    D
 F__Xd^^vF8_TTFz16EEEPPQUVVEooIIIIII>>e  H &(+++++rD   r   rf   rb   rd   c           	         d}| }t          t          ddd          gdgt          ddd          gd          }|d                             d          |d<   |d	                             d          |d	<   |                    dd
g          }|                    t          |          ddg|d          }t          j        ||           d S )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6K6K5LMM H SM((22HSMSM((22HSM!!3*--H__1a&kD   F &(+++++rD   r   r   c                    d}| }t          dddd          }t          j        |dgdd	g
          }|ddgk    r|                    dd          }t	          g dg dg dg dg dg dg dg dg dg	g d|          }|                    t          dt          |          |d          }t          j	        ||           d S )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
B
B
BC##	
 "  E QF1%%KKKKKKKKKKKKKKKKKK
	
    H ++  ,  F &(+++++rD   c                    | }d}|                     t          |          dd          }t          ddgit          t	          d          gd	          
          }|j        dk    r;t          j        d          }|j        }|j	        
                    d          |_	        nt          j        }t          j        ||           |j	        j        |u sJ d S )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_KKF	seE9-H#I#I"JQWXXX  H }	!!"6**h!//44l&(+++<?k))))))rD   kwargsri   c                     | }d}d}t          j        t          |          5   |j        t	          |          fddi| d d d            d S # 1 swxY w Y   d S )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      s     F
PCD 
y	,	,	, C CBBCB6BBBC C C C C C C C C C C C C C C C C Cs   AAA)r   re   rg   rL   c                     | }d}d}t          j        t          |          5  |                    t	          |          |           d d d            d S # 1 swxY w Y   d S )Nr   r   r   rY   r   )r<   r   r>   r   r=   s        rB   'test_read_with_parse_dates_invalid_typer      s    F
PCD 
y	,	,	, A AK@@@A A A A A A A A A A A A A A A A A As   %AAAvaluerQ    c                 ~    | }t          | dt          dz   z            }|                    |d ddgdg|           d S )Nz,
r   foobar)r   r    r   cache_dates)r   r   r   )r<   cacher   r>   r   s        rB   test_bad_date_parser      sa     FU---$4q$89::A
OO	enG      rD   c           
          | }t          dt          dz   z            }|j        dk    rd }n|rd }nt          }|                    |d|d ddgdg|d           d S )	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     s     F&-1233A}	!!
 	  
"" 	enG % # 	 	 	 	 	rD   c                     | }d}|                     t          |          dgd          }t          t          ddd          dgt          j        dggddg	          }t          j        ||           d S )
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   +  s    F(D__Xd^^&U_SSF
4A

	"RVQK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                 n    | } |j         t          |          fddi|}t          j        ||           d S )N	thousands.rZ   )r<   r=   r   rA   r>   r@   s         rB   %test_parse_dates_no_convert_thousandsr   7  sG    \ FV_Xd^^EEsEfEEF&(+++++rD   c                     | }d}|                     t          |          dg          }ddgddgddgg}t          |d	dg
          }t          j        ||           d S )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  ss    F;D__Xd^^(_DDF&L(9C:FM0BCC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                     | }|                     t          |          |          }t          d|id          }t          j        ||           d S )NrY   rb   rG   rH   r   )r<   r=   rA   r   r>   r@   s         rB   test_parse_date_floatr   v  sS    & F__Xd^^_EEF#x	:::H&(+++++rD   c           
      2   | }d}|                     t          |          dg          }t          dddt          t	          d                    d	
                              d           }|g dd}t          |          }t          j        ||           d S )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'J'JKKM''H&(+++++rD   date_string)z
32/32/2019z
02/30/2019z
13/13/2019z13/2019z
a3/11/2018z
10/11/2o17c                     | }t          d|gid          }|                    t          |          d dg          }t          j        ||           d S )Nr   strrH   )r   r   )r   r   r   r:   r;   )r<   r   r>   rA   r@   s        rB   !test_invalid_parse_delimited_dater     sh     F!k]+5999H__C   F
 &(+++++rD   zdate_string,dayfirst,expectedz
13/02/2019i     z
02/13/2019z
04/02/2019c                    | }t          d|gid          }|j        dk    ru|st          j        d           d}t          j        t
          |          5  |                    t          |          d |dg	           d d d            n# 1 swxY w Y   d S |                    t          |          d |dg	          }t          j	        ||           d S )
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     s8    F!hZ0@AAAH}	!! 	OKMNNNNP]:S111 	 	OO%%dXTUSV    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	__dXA3   F &(+++++s   (B

BBc                     | }t          d|gid          }d}|                    t          |t          |          d |dg          }t	          j        ||           d S )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     s     F!hZ0@AAAH	J  ++C ,  F &(+++++rD   c                      t          j        t          d          5  t          j        g d           d d d            d S # 1 swxY w Y   d S )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     s    	&
 
 
 Q Q 	OOOPPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Qs   A  AAz)names, usecols, parse_dates, missing_colsr   r]   r9   z
date, time)date1time1temperaturer   r   c                     | }t          d          }d| d}t          j        t          |          5  |                    |d|||           d d d            d S # 1 swxY w Y   d S )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     s    & F@AAG
G
G
G
GC	z	-	-	- 
 
E7 	 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   AA"Ac                     | }t          d          }t          }|j        dk    rt          t          f}|                    |d|dgdg          }t          dddgidd	g
          }t          j        ||           d S )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                     | }d}|                     t          |          dgddg          }t          t          d          dgd          }t	          j        ||           d S )	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  sl    FD __Xd^^*qRSf_UUFi&=&=A3OOPPH&(+++++rD   c                    d}| }|j         dk    r`d}t          j        t          |          5  |                    t          |          dgddgd           d d d            n# 1 swxY w Y   d S |                    t          d	t          |          dgddgd          }t          d
dgt          d          gdz  d          }t          j        ||           d S )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  sD   D
 F}	!!Q]:S111 	 	OOCA	    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	++ CA ,  F 1vY7L-M-M,NQR,RSSTTH&(+++++s   *A##A'*A'c                     d} t          ddgdd d          }d}t          t          |           dgdd	          j        }t	          j        ||           t	          j        t          |
          5  t          t          |           dgdd	          j        }d d d            n# 1 swxY w Y   t	          j        ||           d} t          ddgdd          }t          t          |           dgdd	          j        }t	          j        ||           t	          j        t          |
          5  t          t          |           dgdd	          j        }d d d            n# 1 swxY w Y   t	          j        ||           d S )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  s;    +E	|$,<4f  H	J  fX   	 (D))) 
	#K{	C	C	C  UOO&EV
 
 

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

 	               (D)))))s$   0'B##B'*B'/'E""E&)E&zdate_string, dayfirstz	31/1/2014zsecond date is single-digit)idz	1/31/2014zfirst date is single-digitc                    d|  }t          dgdd d          }d}t          j        t          |          5  t	          t          |          dgd|          j        }d d d            n# 1 swxY w Y   t          j        ||           d S )	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	.T  H	J  
	#K{	C	C	C  ]##	
 
 

  	               (C(((((s   'A**A.1A.c                     | }d}|                     t          |          dg          }t          dddddg	          }t          j        ||           d S )
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    sm     F$D__E   F s33L>JJJH&(+++++rD   c           
      4   | }d}|                     t          |          dddgidgd          }t          dt          d          t          j        t          d          t          j        t          d	          gid
          }t          j        ||           d S )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                    | }d}|                     t          |          ddg          }t          dgt          d          gd          }|d                             d          |d<   t          j        ||           d S )	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    s     FD __Xd^^8#_OOFuIl,C,C+DEEFFHSM((22HSM&(+++++rD   c                 0   | }d}|j         dk    rt          ddgdd          }d }nt          dd	gd
d          }t          }d}|                    ||t          |          ddd          }t          dddgi|          }t          j        ||           d S )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                 $   | }d}|                     t          |          dddddg          }t          t          d          t          d	          gt          d          t          d	          gdd
          }t	          j        ||           d S )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6#J   F
 L))9\+B+BCL))9\+B+BC	
 	
   H &(+++++rD   c           	         | }d}|                     t          |          ddidd          }t          ddd	git          t	          d
          t	          d          gd                    }t          j        ||           d S )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.EFSQQQ	  H &(+++++rD   c                 0   | }d}|                     t          |          dg          }t          t          d          t          d          gdd          }|j        dk    r|d                             d	          |d<   t          j        ||           d S )
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/00 	
 	
 H }	!! ,,W55&(+++++rD   c                     | }d}|                     t          |          dg          d         }t          ddgdddg          }t          j        ||           d S )	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  st    FDD__Xd^^#_??DF''	
 !f  H 68,,,,,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 4 4 4 4 4 8 8 8 8 8 8 & & & & & &[''C 
 ''88{&&~66,, ,, ,,^ & & &$ 
, 
, 
, , , ," !Q#s(<==, , >= ," 1v1v&6770, 0, 87 0,f* * *& Bc(:#;<<C C =<C xrxA/?/?!Q(HIIA A JIA 5"+..  /.  <	, 	, 	,  SE"Ixxa,,-uHMMM	
  q11I#m\N(MMM  	
 )S#J'I(4B''$2)>)>?@c
  	
 ) 1v66I,j, &IdAr22%IdAr22 *     	
/'* *V, ,W* * X,, , ,  31	

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

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