
    J/PhSo                        g d Z ddlZddlmZ ddlZddlmZ 	 ddlZda	n# e
$ r da	Y nw xY wt          o eed          Zt          sdZnK eed	          rd
 Zn; eed          r eej        j        dd          Zn eej        j        dd          ZeduZ	  ej        dg                              d           dZn# e$ r dZY nw xY weddfdZd Zd;dZd Zd Zd Zd Zd ZdD ]Z  eee           r eee           Z! nJ dD ]Z" eee"          r eee"          Z# nJ d Z$d Z%d Z& G d de'          Z(d Z) G d de'          Z*d  Z+d! Z,g fd"Z-d# Z. G d$ d%e'          Z/d& Z0d' Z1 ej2        e1e3g(          Z4d) Z5d* Z6d+ Z7d, Z8d- Z9d. Z:d/ Z;d0 Z<d1 Z=d2 Z>d3 Z?d4 Z@d5 ZAd6 ZBd7 ZCd8 ZDd9 ZEd: ZFdS )<)atleast_2d_column_defaultuniqueify_listwidest_floatwidest_complexwide_dtype_forwidenrepr_pretty_delegaterepr_pretty_implSortAnythingKeysafe_scalar_isnan
safe_isnaniterablehave_pandashave_pandas_categoricalhave_pandas_categorical_dtypepandas_Categorical_from_codespandas_Categorical_categoriespandas_Categorical_codes safe_is_pandas_categorical_dtypesafe_is_pandas_categoricalsafe_issubdtypeno_picklingassert_no_picklingsafe_string_eq    N)StringIO   )optional_dep_okTFCategoricalCategoricalDtypec                 T    t          t          | d|           t          j                  S )Ndtype)
isinstancegetattrpandasr   xs    J/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/patsy/util.py<lambda>r(   7   s$    Aw""F$;2
 2
     apiis_categorical_dtypecopyc                     t           rSt          | t          j        t          j        f          r-i }t          | d          r
| j        |d<    | j        | f||d|S t          j	        | |||          S )Nname)r-   r!   )r-   r!   subok)
r   r"   r$   Series	DataFramehasattrr/   	__class__nparray)ar-   r!   r0   
extra_argss        r'   asarray_or_pandasr9   O   s     Ha&-)9:;; 	H Jq&!! ,%&V
6"1;qGt5GGJGGG8ADU;;;;r)   c            	      
   dd l } t          t          g d                    t          j        u sJ |                                 5 }|                     ddt                     t          t          t          j        g dg                              t          j        u sJ t          t          t          j        g dg          d                    t          j        u sJ |J 	 d d d            n# 1 swxY w Y   t          j	        g d          }t          |          |u sJ t          |d          }t          j
        ||          sJ d|d<   t          j
        ||          rJ t          j        t          g dt          	          g d
          sJ t          g dt          	          j        t          j        t                    k    sJ t          ||j        	          }d|d<   |d         dk    sJ t          rt          j        g ddg d          }t          |          }|j        dk    sJ t          j
        |j        g d          sJ d|d<   |d         dk    sJ t          |d          }|j        dk    sJ t          j
        |j        g d          sJ t          j
        ||          sJ d|d<   t          j
        ||          rJ t          |t          	          j        t          j        t                    k    sJ t          ||j        	          }|j        dk    sJ t          j
        |j        g d          sJ d|d<   |d         dk    sJ t          j        g dgg ddg          }	t          |	          }
d|
j        d<   t          j
        |
j        g d          sJ t          j
        |
j        dg          sJ |	j        d         dk    sJ t          |	d          }t          j
        ||	          sJ t          j
        |j        g d          sJ t          j
        |j        dg          sJ d|j        d<   t          j
        ||	          rJ t          |	t          	          }|d         j        t          j        t                    k    sJ t          j        ||	          sJ t          j
        |j        g d          sJ t          j
        |j        dg          sJ t          |	|	d         j        	          }t          j
        |j        g d          sJ t          j
        |j        dg          sJ t          j
        |	|          sJ t          }	 dat          t          t          j        g d                              t          j        u sJ t          t          t          j        g dg                              t          j        u sJ 	 |ad S # |aw xY wd S )Nr   r         ignorethe matrix subclassT)r0   r,   d   r!   g      ?g       @g      @c   A)
         r/   indexe   rE   )rD   BC)columnsrI   )rE   rD   F)warningstyper9   r5   ndarraycatch_warningsfilterwarningsPendingDeprecationWarningmatrixr6   array_equalallclosefloatr!   r   r$   r1   r/   rI   r2   locrM   )rN   wr7   a_copya_viewss_view1s_copys_view2dfdf_view1df_copydf_converteddf_view2
had_pandass                  r'   test_asarray_or_pandasrf   \   s`   OOO!))),,--;;;;		 	 	"	" a+-F	
 	
 	
 %bi&<&<==>>"*LLLL%bi&<&<DIIIJJbiWWWWyyyy               	AQ1$$$$qt,,,F>!V$$$$$F1I~a(((((;(%@@@///RRRRRYYYe444:bhuooMMMMq000FF1IQ42:::: 4%M)))#\\\BBB#A&&|s""""~gm\\\:::::u||||"14000{c!!!!~flLLL99999~fa(((((r
>&!,,,,, %0006"(5//IIII#AQW555|s""""~gm\\\:::::u{{{{yyyk???2$OOO$R(( #W~h.@@@@@~hnrd33333vg#%%%%#BT222~gr*****~go?????~gmbT22222"G>'2.....(5999C &"(5//9999{<,,,,,~l2OOODDDDD~l02$77777$Rr#w}===~h.@@@@@~hnrd33333 ~b(+++++ !
	%K)&-			*B*BCCDD
RRRR)&*:III;*G*GHHIIRZWWWWW$KKK*K$$$$i4% 4%s    B!C33C7:C78A?W< <X c                 V   |rQt           rJt          | t          j                  rt          j        |           S t          | t          j                  r| S t          j        |           } t          j        |           } | j        dk    r| 	                    d          } | j        dk    sJ | S )Nr   )r   r<   )
r   r"   r$   r1   r2   r5   asarray
atleast_1dndimreshape)r7   preserve_pandass     r'   r   r      s     ; a'' 	#A&&&6+,, 	H

1A
aAv{{IIg6Q;;;;Hr)   c                     dd l } t          j        t          g d          dgdgdggk              sJ t          d          j        dk    sJ t          dg          j        dk    sJ t          dgg          j        dk    sJ t          dggg          j        dk    sJ t          g d          j        dk    sJ t          dgdgdgg          j        dk    sJ |                                 5 }|                     d	d
t                     t          t          t          j	        d                              t          j
        k    sJ |J 	 d d d            n# 1 swxY w Y   t          rt          t          t          j        ddg                              t          j
        k    sJ t          t          t          j        dgdgg                              t          j
        k    sJ t          t          t          j        ddg          d                    t          j        k    sJ t          t          t          j        dgdgg          d                    t          j        k    sJ t          j        g ddg d          }t          |d          }t          |t          j                  sJ t          j        |j        dgk              sJ t          j        |j        g dk              sJ |                                 5 }|                     d	d
t                     t          t          t          j	        d          d                    t          j
        k    sJ |J 	 d d d            n# 1 swxY w Y   t          t          g dd                    t          j
        k    sJ t          rt          }	 dat          t          t          j        ddg          d                    t          j
        k    sJ t          t          t          j        dgdgg          d                    t          j
        k    sJ 	 |ad S # |aw xY wd S )Nr   r;   r   r<   r=   )r   r   )r   r   r   r=   r   r>   r?   T)rm   )rE         hir7   bcrH   F)rN   r5   allr   shaperQ   rR   rS   rO   rT   rP   r   r$   r1   r2   r"   rM   rI   )rN   rY   r\   r`   re   s        r'   test_atleast_2d_column_defaultrx      s:   OOO6+III66A3aS/IJJJJJ$Q''-7777$aS))/69999$qcU++1V;;;;$seW--3y@@@@$YYY//5????$qcA3_55;vEEEE		 	 	"	" a+-F	
 	
 	
 -bill;;<<
JJJJyyyy                3-fmQF.C.CDDEESSSS*6+;aS1#J+G+GHHIIRZWWWW *6=!Q+@+@RVWWWXX        )$qcA3Z00$   
         M,,,TIII&q$???"f./////vbjTF*+++++vbh///122222		 	 	"	" a+-F	
 	
 	
 *29Q<<NNNOOz    yyyy               	&yyy$GGGHHBJVVVV  % 
	%K-q!f--t   
 :    -(1#s44d   
 :     %KKK*K$$$$+% %s3   2AEE"%E"A!NNNBQ Qc                    t           s|                     |          S t          | t          j                  s|                     |          S || j        k    r| S t          |          dk    rJ| j        d         dk    r9|d         | j        d         k    rt          d          | | j        d                  S t          d| j        d|          )Nr   r   zarrays have incompatible sizesz&cannot reshape a DataFrame with shape z
 to shape )	r   rl   r"   r$   r2   rw   len
ValueErrorrM   )r7   	new_shapes     r'   pandas_friendly_reshaper}     s     $yy###a)** $yy### AG
9~~qwqzQQ<171:%%=>>>1
*BC'''99U  r)   c                     dd l } t          j        t          t          j        d                              dd          d          t          j        d                              dd                    sJ t          rwt          j        dg dig d	          }t          |d
          }t          |t          j                  sJ t          j
        |j        g d          sJ t          j
        |j        dg          sJ t          |d          }t          |t          j                  sJ t          j
        |j        g d          sJ |j        dk    sJ |                     t           t          |d           |                     t           t          |d           |                     t           t          |d           t          }	 da|                     t"          t          |d           |ad S # |aw xY wd S )Nr   rE      r<   )r<   r   r&   r;   rs   )rI   ro   )r=   )   )r   r=   )r=   r=   F)pytestr5   rV   r}   arangerl   r   r$   r2   r"   rU   rI   rM   r1   r/   raisesr{   AttributeError)r   r`   noopsquozenre   s        r'   test_pandas_friendly_reshaper   &  s   MMM ;	" 5 5a ; ;VDD
	"a##      %sIII.oooFFF&r622$ 011111~dj///:::::~dlSE22222)"d33'6=11111~gm___=====|s""""j"92tDDDj"92vFFFj"92vFFF 
	%K MM.*A2tLLL$KKK*K$$$$-% %s   $G. .G2c                     g }t                      }| D ]0}||vr*|                    |           |                    |           1|S N)setappendadd)seqseq_newseenobjs       r'   r   r   G  sO    G55D  d??NN3HHSMMMNr)   c                      t          g d          g dk    sJ t          g d          g dk    sJ t          g d          g dk    sJ d S )Nr;   )r   r=   r=   r<   r=   r   )r   r=   r<   )r=   r<   r   r   r   r<   r=   )r=   r<   r   r   )r    r)   r'   test_to_uniqueify_listr   Q  sq    )))$$			1111,,,--::::///00LLL@@@@@@r)   )float128float96float64)
complex256
complex196
complex128c                 .   t          j        |           } t          | j        t           j                  st          | j        t           j                  rt          S t          | j        t           j                  rt          S t          d| j                  )Nz cannot widen a non-numeric type )
r5   ri   r   r!   integerfloatingr   complexfloatingr   r{   arrs    r'   r   r   e  s{    
*S//Csy"*-- 	2;2 2  	B$6	7	7 
*SYYH
I
IIr)   c                 H    t          j        | t          |                     S )NrA   )r5   ri   r   r   s    r'   r   r   p  s    :c!4!45555r)   c                     t          j        t          g d          g d          sJ t          g d          j        t          k    sJ t          j        t          g d          g d          sJ t          g d          j        t          k    sJ t          j        t          g d          g d          sJ t          g d          j        t
          k    sJ dd l} |                     t          t          dg           d S )Nr;   rB   )y      ?        r<   r=   r   rr   )	r5   rV   r   r!   r   r   r   r   r{   )r   s    r'   test_wide_dtype_for_and_widenr   t  s   ;uYYY''33333!\1111;u___--yyy99999!!'<7777;u^^^,,iii88888  &.8888MMM
MM*edV,,,,,r)   c                   6    e Zd Zd Zd Zd Zd ZeZd Zd Z	dS )PushbackAdapterc                 "    || _         g | _        d S r   )_it_pushed)selfits     r'   __init__zPushbackAdapter.__init__  s    r)   c                     | S r   r   r   s    r'   __iter__zPushbackAdapter.__iter__  s    r)   c                 :    | j                             |           d S r   )r   r   r   r   s     r'   	push_backzPushbackAdapter.push_back  s    C     r)   c                 j    | j         r| j                                         S t          | j                  S r   )r   popnextr   r   s    r'   r   zPushbackAdapter.next  s0    < 	"<##%%% >>!r)   c                     	 t          |           }n# t          $ r t          d          w xY w|                     |           |S )Nzno more data)r   StopIterationr{   r   r   s     r'   peekzPushbackAdapter.peek  sT    	-t**CC 	- 	- 	-^,,,	-s
s    ,c                 R    	 |                                   dS # t          $ r Y dS w xY w)NTF)r   r{   r   s    r'   has_morezPushbackAdapter.has_more  s?    	IIKKK 4  	 	 	55	s    
&&N)
__name__
__module____qualname__r   r   r   r   __next__r   r   r   r)   r'   r   r     su            ! ! !" " " H      r)   r   c                     t          t          g d                    } |                                 sJ t          |           dk    sJ |                     d           t          |           dk    sJ t          |           dk    sJ |                                 dk    sJ |                     d           |                                 dk    sJ |                     d           |                                 dk    sJ |                                 sJ t          |           g dk    sJ |                                 rJ d S )	N)r   r<   r=   r   r   r   r<   r=   rE   rF   )rF   rE   r=   r   )r   iterr   r   r   r   list)r   s    r'   test_PushbackAdapterr     s#   	lll++	,	,B;;==88q====LLOOO88q====88q====7799>>>>LL7799????LL7799????;;==88~~~%%%%{{}}r)   c                   :    e Zd Zd Zd Zd
dZd Zd Zd Zd Z	d	S )_MiniPPrinterc                 :    t                      | _        d| _        d S Nr   )r   _outindentationr   s    r'   r   z_MiniPPrinter.__init__  s    JJ	r)   c                 :    | j                             |           d S r   r   write)r   texts     r'   r   z_MiniPPrinter.text  s    	r)    c                 :    | j                             |           d S r   r   )r   seps     r'   	breakablez_MiniPPrinter.breakable  s    	r)   c                 0    |                      |           d S r   r   r   _r   s      r'   begin_groupz_MiniPPrinter.begin_group      		$r)   c                 0    |                      |           d S r   r   r   s      r'   	end_groupz_MiniPPrinter.end_group  r   r)   c                     t          |d          r|                    | d           d S |                     t          |                     d S )N_repr_pretty_F)r3   r   r   reprr   s     r'   prettyz_MiniPPrinter.pretty  sN    3(( 	!dE*****IId3ii     r)   c                 4    | j                                         S r   )r   getvaluer   s    r'   r   z_MiniPPrinter.getvalue  s    y!!###r)   N)r   )
r   r   r   r   r   r   r   r   r   r   r   r)   r'   r   r     s                   ! ! !$ $ $ $ $r)   r   c                 p    t                      }|                    |            |                                S r   )r   r   r   )r   printers     r'   _mini_prettyr     s/    ooGNN3r)   c                 l    t           rdt          j        v rddlm}  ||           S t          |           S )NIPythonr   )r   )r   sysmodulesIPython.lib.prettyr   r   )r   r   s     r'   r   r     sF      !933------vc{{C   r)   c                    	 |j         j        }                     t          |          dz   |d           dg	 	fd}|D ]!} |                                  |           "|D ]s\  }} |                                  t          |          dz   |d                                |                                t          |          dz   d           t                     t          |          dz   d           d S )Nr   (Fc                  t    d         r)                      d                                             dd<   d S )Nr   ,T)r   r   )pstarteds   r'   new_itemz"repr_pretty_impl.<locals>.new_item  s8    1: 	FF3KKKKKMMM


r)   = ))r4   r   r   rz   r   r   )
r   r   argskwargsr/   r   arglabelvaluer   s
   `        @r'   r	   r	     s   =!DMM#d))a-$$$111gG        


	 ( (u


	c%jj1nuuu&6777		CJJNB''''KKD		As#####r)   c                      t          d          dk    sJ t                      }  G d dt                    }t          |  |            ddgddg           |                                 d	k    sJ d S )
Nasdfz'asdf'c                       e Zd ZdS )!test_repr_pretty.<locals>.MyClassNr   r   r   r   r)   r'   MyClassr             r)   r   r7   r   )foobar)r   r   z'MyClass('a', 1, foo='bar', asdf='asdf'))r   r   objectr	   r   )r   r   s     r'   test_repr_prettyr     s    ''83333ooG    &    Wggii#qNDT3UVVV!JJJJJJJr)   c                        e Zd Zd Zd Zd ZdS )r
   c                     || _         d S r   r   r   s     r'   r   zSortAnythingKey.__init__7  s    r)   c                 H    	 | j         |k     S # t          $ r
 t          cY S w xY wr   )r   	TypeErrorNotImplemented)r   	other_objs     r'   
_python_ltzSortAnythingKey._python_lt:  s;    	"8i'' 	" 	" 	"!!!!	"s   
 !!c                    t          |t                    sJ |                     |j                  }|t          ur|S |                     d          t          urdS |                    d          t          urdS | j        |j        k    rdS | j        j        j        t          | j                  f|j        j        j        t          |j                  fk     S )Nr   TF)r"   r
   r  r   r  r4   r   id)r   otherresults      r'   __lt__zSortAnythingKey.__lt__E  s    %11111++''M ??1^334An445 8uy  5"+R\\:I(uyMM>
 
 	
r)   N)r   r   r   r   r  r  r   r)   r'   r
   r
   6  sA          	" 	" 	"
 
 
 
 
r)   r
   c                     t          g dt                    g dk    sJ t          ddgt                    ddgk    sJ t          g dt                    g dk    sJ  G d d	t                    }  G d
 dt                    } G d dt                    } |             } |            } |            }t                      }t          ||d||gt                    d||||gk    sJ d S )N)rF   rE   r      )key)r   rE   r  rF   rE   g      )rE   r7        4@rt   )rE   r  r7   rt   c                       e Zd ZdS )test_SortAnythingKey.<locals>.aNr   r   r)   r'   r7   r  a  r   r)   r7   c                       e Zd ZdS )test_SortAnythingKey.<locals>.bNr   r   r)   r'   rt   r  d  r   r)   rt   c                       e Zd ZdS )test_SortAnythingKey.<locals>.zNr   r   r)   r'   zr  g  r   r)   r  r   )sortedr
   r   )r7   rt   r  a_objb_objz_objo_objs          r'   test_SortAnythingKeyr  \  sr   ///777???JJJJ2t*/222tRj@@@@&&&O<<<@T@T@TTTTT    F       F       F    ACCEACCEACCEHHE5%E51GGG	L      r)   c                     	 t          j        t          |                     S # t          t          t
          f$ r Y dS w xY wNF)r5   isnanrW   r  r{   NotImplementedErrorr%   s    r'   r   r   y  sG    xa!!!z#67   uus    # >>)otypesc                     t          d          rJ t          d           rJ t          d          rJ t          d          rJ t          t          j        g d                    rJ t          t          j        g          rJ t          t          j                  sJ t          t          j        t          j                            sJ t          t          t          j                            sJ d S )NTsadfr;   )r   r5   ri   nanfloat32rW   r   r)   r'   test_safe_scalar_isnanr&    s     &&&&& &&&&& ((((( +++++ III!6!677777 "&*****RV$$$$$RZ//00000U26]]+++++++r)   c            	      2   t          j        t          ddd t           j        dg          g d          sJ t          t           j                  j        dk    sJ t          t           j                  sJ t          d           rJ t          d          rJ d S )Nr   Tr   )FFFTFr   )r5   rU   r   r$  rk   r   r)   r'   test_safe_isnanr(    s    >AtT2662335W5W5W     bf"a''''bf$&!!!!!!!r)   c                 J    	 t          |            n# t          $ r Y dS w xY wdS )NFT)r   	Exceptionr  s    r'   r   r     s;    S				   uu4s    
  c                      t          d          sJ t          g           sJ t          ddi          sJ t          d          rJ t          t                     rJ d S )Nr   r7   r   )r   r   r)   r'   test_iterabler,    sl    FB<<S!H{{!!!!!!!r)   c                     t           sJ t          j        |           } t          t          j        d          r t          j                            | |          S t	          j        | |          S )N
from_codes)r   r5   ri   r3   r$   r   r.  )codes
categoriess     r'   r   r     s`    """" JuEv!<00 5!,,UJ???!%444r)   c                     t           sd S t          g dddg          } t          j        t          j        |           d d         g dk              sJ t          j        t          j        |           d                   sJ d S )Nr   r   r   rh   r7   rt   rh   )rt   rt   r7   )r   r   r5   rv   ri   r  )ru   s    r'   "test_pandas_Categorical_from_codesr3    s    " %mmmc3Z@@A6"*Q--$7888888BJqMM"%&&&&&&&r)   c                 l    t          | d          r| j        } t          | d          r| j        S | j        S )Ncatr0  )r3   r5  r0  levelsr5  s    r'   r   r     s?     sE gsL!! ~zr)   c                 l    t          | d          r| j        } t          | d          r| j        S | j        S )Nr5  r/  )r3   r5  r/  labelsr7  s    r'   r   r     s?     sE gsG yzr)   c                     t           sd S t          g dddg          } t          j        t	          |           ddgk              sJ t          j        t          |           g dk              sJ t          rft          j        |           }t          j        t	          |          ddgk              sJ t          j        t          |          g dk              sJ d S d S )Nr2  r7   rt   )	r   r   r5   rv   r   r   r   r$   r1   )ru   r\   s     r'   !test_pandas_Categorical_accessorsr;    s    " %mmmc3Z@@A6/22sCj@AAAAA6*1-->?????$ DM!v3A663*DEEEEEv.q11]]]BCCCCCD D 	DCr)   c                 2    t           sdS t          |           S r  )r   _pandas_is_categorical_dtype)dts    r'   r   r     s    ( u'+++r)   c                     t           sdS t          | t          j                  rdS t	          | d          rt          | j                  S dS )NFTr!   )r   r"   r$   r   r3   r   r!   )datas    r'   r   r     sP    " u$*++ ttW </
;;;5r)   c                     t          t          j        d                    rJ t          r't	          j        ddg          } t          |           sJ t          r)t	          j        ddgd          }t          |          sJ d S d S )NrE   r7   rt   categoryrA   )r   r5   r   r   r$   r   r   r1   )c_objs_objs     r'   test_safe_is_pandas_categoricalrE  	  s    )")B--88888 1"C:..)%00000$ 1sCj
;;;)%000001 100r)   c                 N    t          |           rdS t          j        | |          S r  )r   r5   
issubdtype)dt1dt2s     r'   r   r   !  s)    ',, u=c"""r)   c                     t          t          t          j                  sJ t          t          j        t
                    t          j                  sJ t          t          t          j                  rJ t          t          j        t
                    t          j                  rJ t          r4t          j	        ddgd          } t          | t          j                  rJ d S d S )Nr7   rt   rB  rA   )
r   intr5   r   r!   rW   r   r   r$   r1   )	bad_dtypes    r'   test_safe_issubdtyperM  '  s    3
+++++28E??BK88888sBK00000rx
;;;;;$ :M3*J???	"9bj99999: :99r)   c                       t          d          )NzeSorry, pickling not yet supported. See https://github.com/pydata/patsy/issues/26 if you want to help.)r   )r   r   s     r'   r   r   2  s    
	  r)   c                 X    dd l }dd l}|                    t          |j        |            d S r   )pickler   r   r   dumps)r   rP  r   s      r'   r   r   :  s3    MMMMMM
MM%v|S99999r)   c                 <    t          | t                    r| |k    S dS r  )r"   str)r   r   s     r'   r   r   F  s#    #s e|ur)   c                      t          dd          sJ t          dd          rJ t          t          j        d          d          rJ d S )Nr   r   )r<   r<   )r   r5   emptyr   r)   r'   test_safe_string_eqrV  M  sT    %'''''eU+++++bhv..6666666r)   )F)G__all__r   ior   numpyr5   compatr   r$   r   ImportErrorr3   r   r=  r#   r*   typescorecommonr   r6   	__array__copy_if_neededr  r9   rf   r   rx   r}   r   r   r   
float_typer   complex_typer   r   r   r   r   r   r   r   r   r   r	   r   r
   r  r   	vectorizeboolr   r&  r(  r   r,  r   r3  r   r   r;  r   r   rE  r   rM  r   r   r   rV  r   r)   r'   <module>re     s    6 


           # # # # # #MMM KK    KKK &H''&-*H*H  
#'  wv)** 
(
 (
$$ 
		 
'.wJ4d(
 (
$$ (/wK 6(
 (
$ !=D H 
BHaSMM&&&NN   NNN
 -D 
< 
< 
< 
<K% K% K%f   M% M% M%l  $% % %B  A A A 5  Jwr: wr:.. L>  Lwr<    \22 LJ J J6 6 6	- 	- 	-" " " " "f " " "J  L$ $ $ $ $F $ $ $6  ! ! !* +- $ $ $ $,K K K>#
 #
 #
 #
 #
f #
 #
 #
L  :   R\+TF;;;
	, 	, 	," " "  " " "4	5 	5 	5' ' '	 	 		 	 	
D 
D 
D, , ,  	1 	1 	10# # #: : :  : : :  7 7 7 7 7s   ! ++'C CC