
    lDh]                        U d dl mZ d dlmZ d dlmZmZ d dlmZ d dlm	Z	 d dl
mZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZmZmZ d d	lmZmZ d d
l m!Z" d dl#m$Z$ d dl%m&Z&m'Z'm(Z(m)Z)  e*d  e"j+        d          dd         D                       Z,e,d          dk    Z-ee.ee.e.e.ee*e*e*ee/e/e/ee0e0e0eeeeiZ1 e*e12                                          Z3ee         e4d<   e-rd dlm5Z5 d dlm6Z6 d dlm7Z7 d dl8m9Z9 d dl:m;Z; d dl<m=Z= d dl>m?Z? d dl@mAZA d dl@mBZB d dlCmDZD d dlCmEZEmFZF d dlCmGZG 	 d dlHmIZI n# eJ$ r	 d dlHmKZI Y nw xY weEZLeEZMeFZNe;ZOeZP G d  d!          ZQ G d" d#eR          ZSe G d$ d%                      ZTd&ed'e?d(eUd)efd*ZVd+ee         d)eeeUef                  fd,ZWd-ee         d)dfd.ZX	 dd-ed0e'd1         d2ed)efd3ZYd-ed)efd4ZZd5d6d7eTd8eAd9ed:eeeTe'd;         f         eBf         d<e[d)eeUef         fd=Z\d>eeT         d)efd?Z]d5d6d>eeT         d8eAd9ed<e[d)eeeeTe'd;         f         eBf         eeUeeUef         f         f         f
d@Z^d7eTd)e[fdAZ_d7eTd)e[fdBZ`d7eTd)e[fdCZad7eTd)e[fdDZbd7eTd)e[fdEZcd'e?d&ed)e?fdFZdd7eTdGed)ee         fdHZedIeeUdJf         d)eeUef         fdKZfd>eeT         dLeUd)ee         fdMZgd-ee         d)eeT         fdNZhnd dOlimjZj d dPlmkZG d dQlmQZQ d dlm7Z7 d dRllmPZP d dSlmmSZS d dTlnmoZo d dUl>mpZpmqZqmrZrmsZsmtZtmuZumvZv d dl>m?Z? d dVl>mTZT ewZLee4dW<   d dXl>mMZM d dYl>mNZN d dZlxmyZymzZzm{Z{m|Z| d d[lxmVZV d d\l}mOZO d dl~m=Z= eZ9eeUef         ZBeZDeqesepeuerevhZeqe.ese/eue*ere.eve.iZe G d] d^                      ZA G d_ d`eR          Z5ddddadbedJef         dceeUdf         ddedeed)ef
dfZIdgeeee         ee         f                  d9eeee         ee         f         eUf         d)eeUef         fdhZd7eTd)e[fdiZd7eTd)e[fdjZd+ee         d)eeeUef                  fdkZWd-ee         d)dfdlZX	 dd-ed0e'd1         d2ed)efdmZYd-ed)efdnZZd5d6d7eTd8eAd9ed:eeeTe'd;         f         eBf         d<e[d)eeUef         fdoZ\d>eeT         d)efdpZ]d5d6d>eeT         d8eAd9ed<e[d)eeeeTe'd;         f         eBf         eeUeeUef         f         f         f
dqZ^d7eTd)e[fdrZ_d7eTd)e[fdsZ`d7eTd)e[fdtZad7eTd)e[fduZbd7eTd)e[fdvZcd'e?d&ed)e?fdwZdd7eTdGed)ee         fdxZedIeeUdJf         d)eeUef         fdyZfd>eeT         dLeUd)ee         fdzZgd-ee         d)eeT         fd{Zhd+ee         d|eeeUef         dJf         d)eeeUef                  fd}Zd&eee         df         d)e[fd~Zd&eee         df         d)e[fdZdGed)e[fdZd&eee         df         d)e[fdZd&eee         df         d)e[fdZd&ed)e[fdZd&eee         df         d)e[fdZd&ed)e[fdZd&ed)e[fdZd&ed)e[fdZd&ed)e[fdZe	d-ee         d)eeT         fd            ZdS )    )dequecopy)	dataclassis_dataclass)Enum)	lru_cache)AnyCallableDequeDict	FrozenSetListMappingSequenceSetTupleTypeUnion)RequestErrorModel)IncExModelNameMap	UnionType)	BaseModelcreate_model)VERSION)
UploadFile)	AnnotatedLiteralget_args
get_originc              #   4   K   | ]}t          |          V  d S N)int).0xs     P/users/jtampere/www/backend/venv/lib/python3.11/site-packages/fastapi/_compat.py	<genexpr>r(      s(      $U$USVV$U$U$U$U$U$U    .N   Url)PydanticSchemaGenerationError)TypeAdapter)ValidationError)GetJsonSchemaHandler)eval_type_lenient)lenient_issubclass)	FieldInfo)GenerateJsonSchema)JsonSchemaValue)
CoreSchema)PydanticUndefinedPydanticUndefinedType)r,   )"with_info_plain_validator_function) general_plain_validator_functionc                       e Zd ZdS )
BaseConfigN__name__
__module____qualname__ r)   r'   r<   r<   Q           r)   r<   c                       e Zd ZdS )ErrorWrapperNr=   rA   r)   r'   rD   rD   T   rB   r)   rD   c                      e Zd ZU eed<   eed<   dZed         ed<   edefd            Z	ede
fd            Zedefd	            Zedefd
            Zd"dZdefdZi fdddedeeef         deeeef         df         deeeeeeef                  df         f         fdZdddddddddeded         deedf         deedf         de
de
de
de
defd Zdefd!ZdS )#
ModelField
field_infoname
validationrI   serializationmodereturnc                 0    | j         j        }||n| j        S r#   )rG   aliasrH   )selfas     r'   rO   zModelField.alias]   s    %A11494r)   c                 4    | j                                         S r#   )rG   is_requiredrP   s    r'   requiredzModelField.requiredb   s    ?..000r)   c                 *    |                                  S r#   )get_defaultrT   s    r'   defaultzModelField.defaultf   s    ##%%%r)   c                     | j         j        S r#   rG   
annotationrT   s    r'   type_zModelField.type_j   s    ?--r)   Nc                 f    t          t          | j        j        | j        f                   | _        d S r#   )r.   r   rG   r[   _type_adapterrT   s    r'   __post_init__zModelField.__post_init__n   s.    3>$/4doEF4 4Dr)   c                 x    | j                                         rt          S | j                             d          S )NT)call_default_factory)rG   rS   	UndefinedrW   rT   s    r'   rW   zModelField.get_defaults   s7    **,, !  ?..D.IIIr)   rA   locvaluevaluesrd   .c                    	 | j                             |d          d fS # t          $ r1}d t          |                    d          |          fcY d }~S d }~ww xY w)NT)from_attributesFinclude_url)errors
loc_prefix)r^   validate_pythonr/   _regenerate_error_with_locrk   )rP   re   rf   rd   excs        r'   validatezModelField.validatex   s    &66ud6SS  #   7::%:88S         s     
A&AAAjsonTFrL   includeexcludeby_aliasexclude_unsetexclude_defaultsexclude_nonerq   pythonrs   rt   ru   rv   rw   rx   c          
      F    | j                             ||||||||          S )Nrr   )r^   dump_python)	rP   re   rL   rs   rt   ru   rv   rw   rx   s	            r'   	serializezModelField.serialize   s<     %11!+!1) 2 	 	 	r)   c                      t          |           S r#   )idrT   s    r'   __hash__zModelField.__hash__   s     d88Or)   )rM   N)r>   r?   r@   r3   __annotations__strrL   r   propertyrO   boolrU   r
   rX   r\   r_   rW   r   r   r   r$   r   rp   r   r}   r   rA   r)   r'   rF   rF   W   s]        			7Cg34CCC		53 	5 	5 	5 
	5 
	1d 	1 	1 	1 
	1 
	&S 	& 	& 	& 
	& 
	.3 	. 	. 	. 
	.	 	 	 	
	J 	J 	J 	J 	J &(	
 02	 	 		 cN	
 uS#X+,	 3d4S>2D899:	 	 	 	* /5*.*.!"'%*!&	 	 		 *+		
 5$;'	 5$;'	 	  	 #	 	 	 	 	 	2	c 	 	 	 	 	 	r)   rF   r[   rG   
field_namerM   c                     | S r#   rA   )r[   rG   r   s      r'   get_annotation_from_field_infor      s
     r)   rk   c                     | S r#   rA   )rk   s    r'   _normalize_errorsr      s    r)   modelc                 .    |                                   d S r#   )model_rebuildr   s    r'   _model_rebuildr      s    r)   rq   rL   ry   kwargsc                       | j         dd|i|S )NrL   rA   )
model_dumpr   rL   r   s      r'   _model_dumpr      s"      u44T4V444r)   c                     | j         S r#   )model_configr   s    r'   _get_model_configr      s    !!r)   T)separate_input_output_schemasfieldschema_generatormodel_name_mapfield_mappingrJ   r   c                     |rd nd}|| |p| j         f         }d|vr<| j        j        p,| j                                                            dd          |d<   |S )NrI   z$ref_ title)rL   rG   r   rO   replace)r   r   r   r   r   override_modejson_schemas          r'   get_schema_from_model_fieldr      sx     2CDD| 	 $UM,GUZ$HI$$  &O%+*;*;*=*=*E*Ec3*O*O   r)   fieldsc                     i S r#   rA   )r   s    r'   get_compat_model_name_mapr      s    	r)   c                 f    |rd ndfd| D             }|                     |          \  }}||fS )NrI   c                 <    g | ]}|p|j         |j        j        fS rA   )rL   r^   core_schema)r%   r   r   s     r'   
<listcomp>z#get_definitions.<locals>.<listcomp>   s=     
 
 
 M/UZ1D1PQ
 
 
r)   )inputs)generate_definitions)r   r   r   r   r   r   definitionsr   s          @r'   get_definitionsr      sp     2CDD| 	
 
 
 

 
 
 &6%J%J &K &
 &
"{ k))r)   c                 v    ddl m} t          | j        j                  ot          | j        |j                   S )Nr   params)fastapir   field_annotation_is_scalarrG   r[   
isinstanceBody)r   r   s     r'   is_scalar_fieldr      sI    """""")'
 
 <U-v{;;;	<r)   c                 4    t          | j        j                  S r#   )field_annotation_is_sequencerG   r[   r   s    r'   is_sequence_fieldr      s    +E,<,GHHHr)   c                 4    t          | j        j                  S r#   )#field_annotation_is_scalar_sequencerG   r[   r   s    r'   is_scalar_sequence_fieldr      s    253C3NOOOr)   c                 *    t          | j                  S r#   )$is_bytes_or_nonable_bytes_annotationr\   r   s    r'   is_bytes_fieldr      s    3EK@@@r)   c                 *    t          | j                  S r#   )is_bytes_sequence_annotationr\   r   s    r'   is_bytes_sequence_fieldr      s    +EK888r)   c                     t          |           }|                    |          }t          |           }|j        |_        |j        |_        |S r#   )typefrom_annotationr   metadatar[   )rG   r[   clsmerged_field_infonew_field_infos        r'   copy_field_infor      sL    ://
;;j))"3"<$5$@!r)   re   c                     t          | j        j                  p| j        j        }t          |t                    sJ t          |         |          S r#   )r!   rG   r[   
issubclasssequence_typessequence_annotation_to_type)r   re   origin_types      r'   serialize_sequence_valuer     sN    u'233Ru7G7R 	 +~66666*;7>>>r)   rd   .c                 x    t          j        dd| i dg                              d          d         }d |d<   |S )NzField requiredmissing)r   rd   inputFri   r   r   )r/   from_exception_datark   )rd   errors     r'   get_missing_field_errorr     sL    3	#KKL
 

&U&
#
#A' gr)   
model_namec                 8    d | D             }t          |fi |}|S )Nc                 @    i | ]}|j         |j        j        |j        fS rA   )rH   rG   r[   r%   fs     r'   
<dictcomp>z%create_body_model.<locals>.<dictcomp>  s(    XXXA!8!, GXXXr)   )r   )r   r   field_params	BodyModels       r'   create_body_modelr     s4     YXQWXXX%1*%M%M%M%M	r)   c                 H    d | j                                         D             S )Nc                 6    g | ]\  }}t          ||           S ))rG   rH   rF   )r%   rH   rG   s      r'   r   z$get_model_fields.<locals>.<listcomp>  s9     
 
 
 j *4888
 
 
r)   )model_fieldsitemsr   s    r'   get_model_fieldsr     s2    
 
$)$6$<$<$>$>
 
 
 	
r)   )
REF_PREFIX)AnyUrl)r<   )	Validator)rD   )MissingError)SHAPE_FROZENSET
SHAPE_LISTSHAPE_SEQUENCE	SHAPE_SETSHAPE_SINGLETONSHAPE_TUPLESHAPE_TUPLE_ELLIPSISr   RequiredParam)rb   )UndefinedType)field_schemaget_flat_models_from_fieldsget_model_name_mapmodel_process_schema)r   )evaluate_forwardrefc                       e Zd ZU eed<   dS )r4   ref_templateN)r>   r?   r@   r   r   rA   r)   r'   r4   r4   k  s         r)   r4   c                       e Zd ZdS )r-   Nr=   rA   r)   r'   r-   r-   o  rB   r)   r-   )refr   rK   functionr   r   rK   c                    i S r#   rA   )r   r   r   rK   s       r'   r9   r9   r  s	     	r)   flat_modelsc                     i }| D ]g}t          ||t                    \  }}}|                    |           ||         }d|v r$|d                             d          d         |d<   |||<   h|S )Nr   
ref_prefixdescriptionr   )r   r   updatesplit)r   r   r   r   m_schemam_definitionsm_nested_modelsr   s           r'   get_model_definitionsr
  {  s    
 24  	/ 	/E7Kn8 8 84Hm_ }---'.J((*2=*A*G*G*M*Ma*P'&.K
##r)   c                 t   ddl m} | j        }| j        t          k    rqt          | j        t                    sWt          | j        t                    s=t          | j                  s)t          | j                  st          ||j                  rdS | j        r t          d | j        D                       sdS dS )Nr   r   Fc              3   4   K   | ]}t          |          V  d S r#   is_pv1_scalar_fieldr   s     r'   r(   z&is_pv1_scalar_field.<locals>.<genexpr>  s>         $A&&     r)   T)r   r   rG   shaper   r2   r\   r   dictr   r   r   r   
sub_fieldsall)r   r   rG   s      r'   r  r    s    """"""%
K?**&u{I>> +&u{D99 + 1== + !--	 +
 z6;77 + 5 	  )      utr)   c                     | j         t          v r?t          | j        t                    s%| j        | j        D ]}t          |          s dS dS t          | j                  rdS dS )NFT)r  sequence_shapesr2   r\   r   r  r  _annotation_is_sequence)r   	sub_fields     r'   is_pv1_scalar_sequence_fieldr    s    K?**4FK5
 5
* +!&!1 % %I.y99 %$uu%4"5;// 	4ur)   c                 V   g }| D ]}t          |t                    r?t          |gt                                                    }|                    |           Vt          |t                    r#|                    t          |                     |                    |           |S )N)rk   r   )	r   rD   r/   r   rk   extendlistr   append)rk   
use_errorsr   
new_errorss       r'   r   r     s     "
 		) 		)E%.. ),!7*;  &((  !!*----E4(( )!!"3E":":;;;;!!%((((r)   c                 .    |                                   d S r#   )update_forward_refsr   s    r'   r   r     s    !!#####r)   c                      | j         di |S )NrA   )r  r   s      r'   r   r     s     uz##F###r)   c                     | j         S r#   )
__config__r   s    r'   r   r     s    r)   c                 <    t          | |t                    d         S )Nr  r   )r   r   )r   r   r   r   r   s        r'   r   r     s*     .Z
 
 

 	r)   c                 Z    t          | t                                }t          |          S )Nknown_models)r   setr   )r   modelss     r'   r   r     s&    ,V#%%HHH!&)))r)   c                 b    t          | t                                }i t          ||          fS )Nr%  )r   r   )r   r'  r
  )r   r   r   r   r(  s        r'   r   r     s>     -V#%%HHH(~
 
 
 
 	
r)   c                      t          |           S r#   r  r   s    r'   r   r     s    "5)))r)   c                 F    | j         t          v pt          | j                  S r#   )r  r  r  r\   r   s    r'   r   r     s    {o-U1H1U1UUr)   c                      t          |           S r#   )r  r   s    r'   r   r     s    +E222r)   c                 6    t          | j        t                    S r#   )r2   r\   bytesr   s    r'   r   r     s    !%+u555r)   c                 R    | j         t          v ot          | j        t                    S r#   )r  r  r2   r\   r.  r   s    r'   r   r     s"    {o-X2DU[RW2X2XXr)   c                      t          |           S r#   r   rZ   s     r'   r   r     s    Jr)   c                 6    t          | j                 |          S r#   )sequence_shape_to_typer  )r   re   s     r'   r   r     s    %ek25999r)   c                     t          t                      |           }t          |gt                    }|                                d         S )Nrc   r   )rD   r   r/   r   rk   )rd   missing_field_error	new_errors      r'   r   r      sD    *<>>sCCC#%8$9;LMM	!!!$$r)   c                 L    t          |          }| D ]}||j        |j        <   |S r#   )r   
__fields__rH   )r   r   r   r   s       r'   r   r     s8     !,,	 	- 	-A+,I ((r)   c                 N    t          | j                                                  S r#   )r  r7  rf   r   s    r'   r   r     s    E$++--...r)   rl   c                 >    fdt          |           D             }|S )Nc           	      N    g | ]!}i |d |                     d d          z   i"S )rd   rA   )get)r%   errrl   s     r'   r   z._regenerate_error_with_loc.<locals>.<listcomp>  sK     % % % 	837zCGGE2$6$6677% % %r)   )r   )rk   rl   updated_loc_errorss    ` r'   rn   rn     s<    % % % %$V,,% % %
 r)   c                 h    t          | t          t          f          rdS t          | t                    S )NF)r2   r   r.  r   r[   s    r'   r  r    s-    *sEl33 uj.999r)   c                     t          |           }|t          u s	|t          u r&t          |           D ]}t	          |          r dS dS t          |           pt          t          |                     S NTF)r!   r   r   r    r   r  r[   originargs      r'   r   r   "  s    
##F&I--J'' 	 	C+C00 ttu":.. 2I:3 3 r)   c                 f    t          | t                    ot          | t          t          f           S r#   )r   r   r   r.  )re   s    r'   value_is_sequencerF  .  s(    e^,,TZU|5T5T1TTr)   c                     t          | t          t          t          f          pt	          |           pt          |           S r#   )r2   r   r   r   r  r   r?  s    r'   _annotation_is_complexrH  2  s;    :	7J'GHH 	$":..	$
##r)   c                    t          |           }|t          u s	|t          u r&t          d t	          |           D                       S t          |           p.t          |          pt          |d          pt          |d          S )Nc              3   4   K   | ]}t          |          V  d S r#   )field_annotation_is_complex)r%   rD  s     r'   r(   z.field_annotation_is_complex.<locals>.<genexpr>=  s+      TT.s33TTTTTTr)   __pydantic_core_schema____get_pydantic_core_schema__)r!   r   r   anyr    rH  hasattr)r[   rC  s     r'   rK  rK  :  s    
##F&I--TTx
?S?STTTTTT 	z** 	;!&))	;6566	; 69::	r)   c                 4    | t           u pt          |            S r#   )EllipsisrK  r?  s    r'   r   r   G  s    !P)DZ)P)P%PPr)   c                 "   t          |           }|t          u s	|t          u r:d}t          |           D ]&}t	          |          rd}t          |          s dS '|S t          |           o%t          d t          |           D                       S )NFTc              3   4   K   | ]}t          |          V  d S r#   )r   r%   sub_annotations     r'   r(   z6field_annotation_is_scalar_sequence.<locals>.<genexpr>W  s>       < < 	#>22< < < < < <r)   )r!   r   r   r    r   r   r   r  )r[   rC  at_least_one_scalar_sequencerD  s       r'   r   r   L  s    
##F&I--',$J'' 	 	C2377 /3,/44 uu++'
33  < <&z22< < < 9 9 r)   c                     t          | t                    rdS t          |           }|t          u s	|t          u r*t          |           D ]}t          |t                    r dS dS rA  )r2   r.  r!   r   r   r    rB  s      r'   r   r   ]  ss    *e,, t
##F&I--J'' 	 	C!#u-- tt5r)   c                     t          | t                    rdS t          |           }|t          u s	|t          u r*t          |           D ]}t          |t                    r dS dS rA  )r2   r   r!   r   r   r    rB  s      r'   .is_uploadfile_or_nonable_uploadfile_annotationrY  h  ss    *j11 t
##F&I--J'' 	 	C!#z22 tt5r)   c                     t          |           }|t          u s	|t          u r(d}t          |           D ]}t	          |          rd}|S t          |           o%t          d t          |           D                       S )NFTc              3   4   K   | ]}t          |          V  d S r#   )r   rT  s     r'   r(   z/is_bytes_sequence_annotation.<locals>.<genexpr>|  s>       < < 	-^<<< < < < < <r)   )r!   r   r   r    r   r   r  r[   rC  at_least_onerD  s       r'   r   r   s  s    
##F&I--J'' 	 	C+C00 # '
33  < <&z22< < < 9 9 r)   c                     t          |           }|t          u s	|t          u r(d}t          |           D ]}t	          |          rd}|S t          |           o%t          d t          |           D                       S )NFTc              3   4   K   | ]}t          |          V  d S r#   )rY  rT  s     r'   r(   z4is_uploadfile_sequence_annotation.<locals>.<genexpr>  s>       < < 	7~FF< < < < < <r)   )r!   r   r   r    !is_uploadfile_sequence_annotationr   r  r\  s       r'   r`  r`    s    
##F&I--J'' 	 	C055 # '
33  < <&z22< < < 9 9 r)   c                      t          |           S r#   )r   r   s    r'   get_cached_model_fieldsrb    s    E"""r)   )rq   )collectionsr   r   dataclassesr   r   enumr   	functoolsr	   typingr
   r   r   r   r   r   r   r   r   r   r   r   fastapi.exceptionsr   fastapi.typesr   r   r   pydanticr   r   pydantic.versionr   PYDANTIC_VERSIONstarlette.datastructuresr   typing_extensionsr   r   r    r!   tupler  PYDANTIC_VERSION_MINOR_TUPLEPYDANTIC_V2r  r'  	frozensetr   keysr   r   r-   r.   r/   ,pydantic._internal._schema_generation_sharedr0    pydantic._internal._typing_extrar1   pydantic._internal._utilsr2   pydantic.fieldsr3   pydantic.json_schemar4   r5   pydantic_corer6   r7   r8   r,   pydantic_core.core_schemar9   ImportErrorr:   r   rb   r   r   r   r<   	ExceptionrD   rF   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   fastapi.openapi.constantsr   r   pydantic.class_validatorspydantic.error_wrapperspydantic.errorsr   r   r   r   r   r   r   r   rQ  pydantic.schemar   r   r   r   pydantic.typingpydantic.utilsr  r2  r
  r  r  r$   rn   r  r   rF  rH  rK  r   r   r   rY  r   r`  rb  rA   r)   r'   <module>r     s                / / / / / / / /                                        1 0 0 0 0 0 8 8 8 8 8 8 8 8 8 8 , , , , , , , , 8 8 8 8 8 8 / / / / / / F F F F F F F F F F F F$u$U$U5K5E5KC5P5PQSRSQS5T$U$U$UUU *1-2 d$$	5	5yy	5	5  27799::	#Y \/WWWWWW$$$$$$;;;;;;      CBBBBBRRRRRR))))))MMMMMMGGGGGG666666FFFFFFFF((((((
	
 	
 	
 	
 	
 	
 	
  
 
 
	
 	
 	
 	
 	
 	
 	
 	


 &M!I)M+I           y    M M M M M M M YM^%.<?	   
(3- Dc3h4H    d9o $     =C5 55 '(8 95NQ5	5 5 5 5
" "s " " " " /3   - %	
 *g&CDDEV
 (, 
c3h   .$z*: |     /3* * *Z * -* %	*
 (,* 
*g&CDDEV	
 	S$sCx. !	#
* * * *0<z <d < < < <I I I I I IP
 Pt P P P PAj AT A A A A9z 9d 9 9 9 9y c i    ?: ?c ?hsm ? ? ? ?U38_ c3h    J'58	i   
Y 
D4D 
 
 
 
 
 CBBBBB&&&&&&      <;;;;;           -,,,,,                  766666      "M3!!!                                     38nOJ 	O 	D3Ud        Y    	    !%!  38$ 39 	
  
   tIT
:;< U4	?DJ#>?DE 
c3h	   ": $    *J 4    (3- Dc3h4H    $d9o $$ $ $ $ $ =C$ $$ '(8 9$NQ$	$ $ $ $
   s         /3   - %	
 *g&CDDEV
 (, 
c3h   *$z*: *| * * * * /3
 
 
Z 
 -
 %	

 (,
 
*g&CDDEV	
 	S$sCx. !	#

 
 
 
"*z *d * * * *V V V V V V3
 3t 3 3 3 36j 6T 6 6 6 6Yz Yd Y Y Y Y y  c  i        :: :c :hsm : : : :%U38_ %c3h % % % %
J'58	i   /Y /D4D / / / /}*/c3h0D*E	$sCx.   :d3io(> :4 : : : :	U49d?-C 	 	 	 	 	US UT U U U UuT#Y_'= $    
E$s)T/,B 
t 
 
 
 
Q3 Q4 Q Q Q Q
E$s)T/4J t    "S T    s t    S T    # $     #4	? #tJ7G # # # # # #s   3D: :EE