
    dft                     X   d dl 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mZ d dl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"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l0m1Z1m2Z2m3Z3 d d	l4m5Z5m6Z6 d d
l7m8Z8 d dl9m:Z: d dl;m<Z<m=Z= d dl>m?Z? d dl@mAZAmBZB d dlCmDZD d dlEm/ZF d dlGmHZH d dlImJZJmKZKmLZLmMZM d dlNmOZOmPZP d dlQmRZR d dlSmTZT d dlUmVZVmWZWmXZX dZYdZZdeddfdZ[ddde\dej                  de\deee\      de5f
d Z^dej                  de\de5fd!Z_ddd"dej                  d#ed$ef   de\d%ee\   deee\      de5fd&Z`eeed$ef      ee\d$f   f   Zad'dd(d)e5d*ebd+eeea      de5fd,Zcd)e5dee   fd-Zdd.ed$ef   de j                  fd/Zfd0ed1e	e\ef   defd2Zgd.ed$ef   defd3Zhddd4d5de\d.ed$ef   d%ee\   deee\      d6ebde5fd7Zide\d8ed)e5deeb   fd9Zjde\d0ed:ed;ebdeeeej                     ee   f   f
d<Zkd=ed;ebdebfd>Zlded)e5ddfd?Zmd.ed$ef   debfd@Znd.ed$ef   debfdAZod.ed$ef   debfdBZpd.ed$ef   dCe1dDe	e\ef   defdEZqddddddFdGeePeTf   d)e5dHeee	e\ef   eJf      dIeeF   dJeeR   dKee   dLee	eed$ef   ee\   f   ef      dee	e\ef   ee   eeF   eRe	eed$ef   ee\   f   ef   f   fdMZrdNee   dOeee\ef   eLeKf   dee	e\ef   ee   f   fdPZsdNee   dQeee	e\ef   eJf      dee	e\ef   ee	e\ef      f   fdRZtd)e5d%e\dee   fdSZuy)T    N)contextmanager)deepcopy)AnyCallable	CoroutineDict
ForwardRefListMappingOptionalSequenceTupleTypeUnioncast)params)PYDANTIC_V2ErrorWrapper
ModelFieldRequired	Undefined_regenerate_error_with_loccopy_field_infocreate_body_modelevaluate_forwardreffield_annotation_is_scalarget_annotation_from_field_infoget_missing_field_erroris_bytes_fieldis_bytes_sequence_fieldis_scalar_fieldis_scalar_sequence_fieldis_sequence_field.is_uploadfile_or_nonable_uploadfile_annotation!is_uploadfile_sequence_annotationlenient_issubclasssequence_typesserialize_sequence_valuevalue_is_sequence)BackgroundTasks)AsyncExitStackasynccontextmanagercontextmanager_in_threadpool)	DependantSecurityRequirement)logger)SecurityBase)OAuth2SecurityScopes)OpenIdConnect)create_response_fieldget_path_param_names)	FieldInfo)run_in_threadpool)FormDataHeadersQueryParams
UploadFile)HTTPConnectionRequest)Response)	WebSocket)	Annotatedget_args
get_originzForm data requires "python-multipart" to be installed. 
You can install "python-multipart" with: 

pip install python-multipart
zForm data requires "python-multipart" to be installed. It seems you installed "multipart" instead. 
You can remove "multipart" with: 

pip uninstall multipart

And then install "python-multipart" with: 

pip install python-multipart
fieldreturnc                 V   | j                   }t        |t        j                        r	 ddlm} |sJ 	 ddlm} |sJ y y # t        $ r* t        j                  t               t        t              d w xY w# t        $ r* t        j                  t               t        t              d w xY w)Nr   )__version__)parse_options_header)
field_info
isinstancer   Form	multipartrG   multipart.multipartrH   ImportErrorr0   error!multipart_incorrect_install_errorRuntimeErrormultipart_not_installed_error)rD   rI   rG   rH   s       S/home/api-vastappli/venv/lib/python3.12/site-packages/fastapi/dependencies/utils.pycheck_file_fieldrT   S   s    !!J*fkk*	H-PD+++ +  P>?"#DE4OP  	HLL67<=4G	Hs   
A5 
? 3A22A5 53B()security_scopes
param_namedependspathrU   c                 R    |j                   sJ t        ||j                   || |      S )N)rW   
dependencyrX   namerU   )rZ   get_sub_dependantrV   rW   rX   rU   s       rS   get_param_sub_dependantr^   h   s2     %%'     c                 j    t        | j                        sJ d       t        | | j                  |      S )Nz;A parameter-less dependency must have a callable dependency)rW   rZ   rX   )callablerZ   r\   )rW   rX   s     rS   get_parameterless_sub_dependantrb   y   s:     EDE W9K9KRVWWr_   )r[   rU   rZ   .r[   c                 `   d }|xs g }t        | t        j                        r| j                  }|j	                  |       t        |t
              r'g }t        |t        t        f      r|}t        ||      }t        ||||| j                        }|r|j                  j                  |       |S )N)security_schemescopes)rX   callr[   rU   	use_cache)rJ   r   Securityre   extendr1   r2   r4   r/   get_dependantrg   security_requirementsappend)	rW   rZ   rX   r[   rU   security_requirementdependency_scopes
use_scopessub_dependants	            rS   r\   r\      s      %+O'6??+#NN01*l+ "
j6="9:(J2&z 
 "'##M ++223GHr_   Fskip_repeatsvisited	dependantrr   rs   c          
         |g }|j                  | j                         t        | j                  j	                         | j
                  j	                         | j                  j	                         | j                  j	                         | j                  j	                         | j                  j	                         | j                  | j                        }| j                  D ]   }|r|j                  |v rt        |||      }|j                  j                  |j                         |j
                  j                  |j
                         |j                  j                  |j                         |j                  j                  |j                         |j                  j                  |j                         |j                  j                  |j                          |S )N)path_paramsquery_paramsheader_paramscookie_paramsbody_paramssecurity_schemesrg   rX   rq   )rl   	cache_keyr.   rv   copyrw   rx   ry   rz   rk   rg   rX   dependenciesget_flat_dependantri   )rt   rr   rs   flat_dependantrp   flat_subs         rS   r   r      s    NN9&&'))..0++002--224--224))..0"88==?%%^^	N #// TM33w>%g
 	""))(*>*>?##**8+@+@A$$++H,B,BC$$++H,B,BC""))(*>*>?,,33H4R4RST r_   c                     t        | d      }|j                  |j                  z   |j                  z   |j                  z   S )NT)rr   )r   rv   rw   rx   ry   )rt   r   s     rS   get_flat_paramsr      sH    '	EN""

%
%	&

&
&	' 
&
&	'r_   rf   c                 ^   t        j                  |       }t        | di       }|j                  j	                         D cg c]M  }t        j
                  |j                  |j                  |j                  t        |j                  |            O }}t        j                  |      }|S c c}w )N__globals__)r[   kinddefault
annotation)inspect	signaturegetattr
parametersvalues	Parameterr[   r   r   get_typed_annotationr   	Signature)rf   r   globalnsparamtyped_paramstyped_signatures         rS   get_typed_signaturer      s    !!$'It]B/H ))002  	MM+E,<,<hG		
L  ''5Os   AB*r   r   c                 V    t        | t              rt        |       } t        | ||      } | S N)rJ   strr	   r   )r   r   s     rS   r   r      s*    *c"
+
(XxH
r_   c                     t        j                  |       }|j                  }|t         j                  j                  u ry t        | di       }t        ||      S )Nr   )r   r   return_annotationr   emptyr   r   )rf   r   r   r   s       rS   get_typed_return_annotationr      sO    !!$'I,,JW&&,,,t]B/H
H55r_   T)r[   rU   rg   rg   c                    t        |       }t        |      }|j                  }t        ||| ||      }|j	                         D ]  \  }	}
|	|v }t        |	|
j                  |
j                  |      \  }}}|+t        |	|| |      }|j                  j                  |       ^t        |	||      r|
J d|	       y|J t        ||      r|j                  j                  |       t        ||        |S )N)rf   r[   rX   rU   rg   )rV   r   valueis_path_paramr]   rV   type_annotationrt   z0Cannot specify multiple FastAPI annotations for param_fieldr   )rD   rt   )r6   r   r   r.   itemsanalyze_paramr   r   r^   r~   rl   !add_non_field_param_to_dependencyis_body_paramrz   add_param_to_fields)rX   rf   r[   rU   rg   path_param_namesendpoint_signaturesignature_paramsrt   rV   r   r   r   rW   r   rp   s                   rS   rj   rj      s6    ,D1,T2)44'I .335 H
E"&660=!''--'	1
-+ 3% /	M ""))-8,!+
 #QA*PQ &&[N!!((5kYG=H> r_   r   c                 $   t        |t              r| |_        yt        |t              r| |_        yt        |t
              r| |_        yt        |t              r| |_        yt        |t              r| |_
        yt        |t              r| |_        yy )NT)r&   r>   request_param_namer@   websocket_param_namer=   http_connection_param_namer?   response_param_nameStarletteBackgroundTasksbackground_tasks_param_namer3   security_scopes_param_namer   s      rS   r   r   &  s     /73'1	$	OY	7)3	&	O^	</9	,	OX	6(2	%	O-E	F0:	-	O^	</9	,r_   r   r   c           	         d }d }t         }|t        j                  j                  ur:t	        |      t
        u r(t        |      }|d   }|dd  D cg c]$  }t        |t        t        j                  f      r|& }	}t        |	      dk  s
J d|        t        t        |	      d       }
t        |
t              rt        |
|      }|j                  t         u s4|j                  t"        u s"J d|j$                  j&                   d| d       |t        j                  j                  ur|rJ d       ||_        nGt"        |_        n;t        |
t        j                        r!|
}n|t        j                  j                  ur|}t        |t        j                        r|
J d	|        |
J d
|        |}n+t        |t              r|
J d|        |}t(        r||_        ||j,                  ||_        t/        |t0        t2        t4        t6        t8        t:        f      r|
J d|       |J d|       |||t        j                  j                  ur|nt"        }|rt        j<                  |      }nit?        |      stA        |      rt        jB                  ||      }n;tE        |      st        jF                  ||      }nt        jH                  ||      }d }||r;t        |t        j<                        sgJ d|j$                  j&                   d|        t        |t        jJ                        r,tM        |dd       t        jN                  jP                  |_)        tU        |||       }|jV                  s tM        |dd       r| jY                  dd      }n|jV                  xs | }||_+        t[        | ||j                  ||j                  t"        t         fv |      }|||fS c c}w )Nr      z:Cannot specify multiple `Annotated` FastAPI arguments for )rI   r   `z1` default value cannot be set in `Annotated` for z). Set the default value with `=` instead.z*Path parameters cannot have default valueszGCannot specify `Depends` in `Annotated` and default value together for zaCannot specify a FastAPI annotation in `Annotated` and `Depends` as a default value together for zQCannot specify FastAPI annotations in `Annotated` and default value together for z"Cannot specify `Depends` for type z+Cannot specify FastAPI annotation for type )r   )r   r   zCannot use `z` for path param in_convert_underscores_-)r[   type_r   aliasrequiredrI   ).r   r   r   r   rC   rA   rB   rJ   r7   r   Dependslennextiterr   r   r   r   	__class____name__r   r   rZ   r&   r>   r@   r=   r?   r   r3   Pathr$   r%   Filer   BodyQueryParamr   
ParamTypesqueryr   r   r   replacer5   )rV   r   r   r   rI   rW   r   annotated_argsargfastapi_annotationsfastapi_annotationdefault_valuerD   use_annotationr   s                  rS   r   r   >  s    JGO'++111z"i/!*-(+ &ab)
#	6>>:; 
 
 #$)	WG
~V	W "$':";TB()4(-*J %%2j6H6HH6T J((112 3$$.>1Z\ G--333(V*VV%*
"%-
"*FNN;(G	7,,22	2$%( 	
'N,	
 ! 	
++5.:	
 	E9	%! 	
'N,	
 
$3J!w119,$	

 X"D_DW XX	M88KL	M 
	!&g.?.?.E.E!E8  @J;
.?WJ+GWJ-XJEj&++6 z33<<= >>#
 z6<<0
E408#..44JN7

 GJ8Mt$T&&sC0E$$2
E 
% &&''Hi+@@!
 GU**a
s   )O/r   c                 <   |rt        |       sJ d       yt        |       ryt        | j                  t        j                  t        j
                  f      rt        |       ryt        | j                  t        j                        sJ d| j                   d       y)N)rD   z1Path params must be of one of the supported typesFzParam: z) can only be a request body, using Body()T)	r!   rJ   rI   r   r   Headerr"   r   r[   r   s     rS   r   r     s    
 	?>	? 	{	+	v}} =

";
/""FKK
 	Q[%%&&OP	Q r_   c                    t        t        j                  | j                        }|j                  t        j
                  j                  k(  r|j                  j                  |        y |j                  t        j
                  j                  k(  r|j                  j                  |        y |j                  t        j
                  j                  k(  r|j                  j                  |        y |j                  t        j
                  j                  k(  sJ d| j                          |j                  j                  |        y )Nz>non-body parameters must be in path, query, header or cookie: )r   r   r   rI   r   r   rX   rv   rl   r   rw   headerrx   cookier[   ry   )rD   rt   rI   s      rS   r   r     s    fllE$4$45J~~**///$$U+	6,,22	2%%e,	6,,33	3&&u- NNf//666	YKEJJ<X	Y 	&&u-r_   c                     t        j                  |       rt        j                  |       S t        j                  |       ryt	        | dd       }t        j                  |      S )NF__call__)r   	isroutineiscoroutinefunctionisclassr   rf   dunder_calls     rS   is_coroutine_callabler     sO    **400t$
D1K&&{33r_   c                 r    t        j                  |       ryt        | dd       }t        j                  |      S NTr   )r   isasyncgenfunctionr   r   s     rS   is_async_gen_callabler     s2    !!$'$
D1K%%k22r_   c                 r    t        j                  |       ryt        | dd       }t        j                  |      S r   )r   isgeneratorfunctionr   r   s     rS   is_gen_callabler     s2    ""4($
D1K&&{33r_   stack
sub_valuesc                    K   t        |       rt         t        |       di |      }nt        |       r t	        |       di |}|j                         d {   S 7 w)N )r   r-   r   r   r,   enter_async_context)rf   r   r   cms       rS   solve_generatorr     s^      t)*>.*>*L*LM	t	$& &44**2....s   AA AA )bodybackground_tasksresponsedependency_overrides_providerdependency_cacherequestr   r   r   r   r   c           
        K   i }g }|t               }|j                  d= d |_        |xs i }|j                  D ]  }	t	        t
        dt        f   |	j                        |	_        t	        t        t
        dt        f   t        t           f   |	j                        |	_
        |	j                  }
|	}|rd|j                  rX|	j                  }t        |di       j                  ||      }
|	j                  }t        ||
|	j                   |	j"                        }t%        | ||||||       d {   }|\  }}}}}|j'                  |       |r|j)                  |       $|	j*                  r|	j                  |v r||	j                     }nt-        |
      st/        |
      rD| j0                  j                  d      }t3        |t4              sJ t7        |
||       d {   }n0t9        |
      r |
d
i | d {   }nt;        |
fi | d {   }|	j                   |||	j                   <   |	j                  |vs|||	j                  <    t=        |j>                  | j>                        \  }}t=        |j@                  | j@                        \  }}t=        |jB                  | j                        \  }}t=        |jD                  | jF                        \  }}|j'                  |       |j'                  |       |j'                  |       |j'                  |       |||z   |z   |z   z  }|jH                  rDtK        |jH                  |       d {   \  }}|j'                  |       |j)                  |       |jL                  r| ||jL                  <   |jN                  r t3        | tP              r| ||jN                  <   n+|jR                  rt3        | tT              r| ||jR                  <   |jV                  r|
tY               }|||jV                  <   |jZ                  r|||jZ                  <   |j\                  r#t_        |j"                  	      ||j\                  <   |||||fS 7 <7 7 u7 c7  w)Nzcontent-length.dependency_overrides)rX   rf   r[   rU   )r   rt   r   r   r   r   r   fastapi_astack)rf   r   r   )required_paramsreceived_body)re   r   )0r?   headersstatus_coder~   r   r   r   rf   r   r   r|   r   r   getrX   rj   r[   rU   solve_dependenciesupdateri   rg   r   r   scoperJ   r+   r   r   r8   request_params_to_argsrv   rw   rx   ry   cookiesrz   request_body_to_argsr   r   r>   r   r@   r   r*   r   r   r3   )r   rt   r   r   r   r   r   r   errorsrp   rf   use_sub_dependantoriginal_calluse_pathsolved_resultr   
sub_errorsr   sub_dependency_cachesolvedr   path_valuespath_errorsquery_valuesquery_errorsheader_valuesheader_errorscookie_valuescookie_errorsbody_valuesbody_errorss                                  rS   r   r     sd       FF:-.#'-2"// :?!(38"4m6H6HI"&(38$eCj01=3J3J#
 !!))-BB)..M-/Erc-/  *..H -"'' - = =	! 1'-*G-
 
 	
  45MM*%""}'>'>BR'R%m&=&=>FT"&;D&AMM%%&67Ee^44*: F #4(-*--F,T@Z@@F))/F=%%&""*::8>]445u:?v  6w22 K "8 4 4"L, $:$ M= $:$ M= MM+
MM,
MM- 
MM- 
kL(=8=HHF '%11
 
	
 	k"k"++7>y334##
7G(D/6y++,		'	'Jw	,J18y--.,,#.08Hy445$$08y,,-++7E,,8
y334 6+X7GGG]
2 .@4
sc   D(Q5*Q&+B0Q5Q)Q57Q,8Q5Q/-Q5<DQ5Q2DQ5)Q5,Q5/Q52Q5r   received_paramsc                    i }g }| D ]  }t        |      r@t        |t        t        f      r*|j	                  |j
                        xs |j                  }n|j                  |j
                        }|j                  }t        |t        j                        sJ d       |j                  j                  |j
                  f}|L|j                  r|j                  t        |             n"t!        |j                        ||j"                  <   |j%                  |||      \  }}	t        |	t&              r|j                  |	       At        |	t(              r t+        |	d      }
|j-                  |
       q|||j"                  <    ||fS )Nz"Params must be subclasses of Paramlocr   )r  
loc_prefix)r"   rJ   r;   r:   getlistr   r   r   rI   r   r   r   r   r   rl   r   r   r[   validater   listr   ri   )r   r  r   r  rD   r   rI   r  v_errors_
new_errorss              rS   r   r     sN    FF  $#E*zk730
 $++EKK8IEMME#''4E%%

 	0/	0 ~~##U[[1=~~5#>?%-emm%<uzz"nnUFn<Gg|,MM'"&37rRJMM*%!#F5::3$4 6>r_   r   c                 @  K   i }g }| r| d   }|j                   }t        |dd       }t        |       dk(  xr | }|r|j                  |i}| D ]  }|rd}nd|j                  f}d }	|St	        |      r,t        |t              r|j                  |j                        }	n	 |j                  |j                        }	|	Rt        |t        j                        r|	dk(  s3t        |t        j                        rdt	        |      rYt        |	      dk(  rK|j                  r|j                  t        |             n"t        |j                         ||j"                  <   t        |t        j$                        r4t'        |      r)t        |	t(              r|	j+                          d {   }	nt-        |      rt        |t        j$                        rt/        |	      rt        |	t0              sJ g dt2        g t4        t6        t6        t6        f   f   dd ffd	}
t9        j:                         4 d {   }|	D ]  }|j=                  |
|j*                           d d d       d {    t?        |
      }	|jA                  |	||      \  }}t        |tB              r|jE                  |       _|r|j                  |       t|||j"                  <    ||fS # t        $ r |j                  t        |             Y w xY w7 _7 7 # 1 d {  7  sw Y   xY ww)Nr   embedr   )r   r    fnrE   c                 R   K    |         d {   }j                  |       y 7 wr   )rl   )r!  resultresultss     rS   
process_fnz(request_body_to_args.<locals>.process_fn  s#      $&4ZFNN6* (s   '%')rD   r   r  )#rI   r   r   r   r#   rJ   r9   r  r   AttributeErrorrl   r   r   rK   r   r   r   r[   r   r   r<   readr    r)   r'   r   r   r   anyiocreate_task_group
start_soonr(   r  r  ri   )r   r   r   r  rD   rI   r  field_alias_omittedr  r   r%  tg	sub_valuer  r  r$  s                  @rS   r   r     s     F#%F"%%

GT2!/2a7EI"[[-8M$ @	(E"u{{+#'E(%e,*]H2U)11%++>E! - 1 1%++ >
 z6;;7ERKz6;;7)%0E
a >>MM"9#">?)1%--)@F5::&:v{{3"5)uj1#jjl*'.z6;;7%e, "%8835+ YsC}%=!=>++ !224 B B%* B	j)..ABB B 1uGL..C.@KB'4(g&g&%'uzz"A@	(B 6>g * !&=c&BC !, + B B B B Bs   BL!K<C'L#L$B
L.L/L2$L	L!L"A6L#K?;L>K??LLL	L	LL	Lc                    t        |       }|j                  sy |j                  d   }|j                  }t        |dd       }|j                  D ch c]  }|j                   }}t        |      dk(  r|st        |       |S |j                  D ]  }t        |j                  dd        d|z   }t        |j                  |      }	t        d |j                  D              }
|	dd	}|
sd |d
<   t        d |j                  D              rt        j                  }nt        d |j                  D              rt        j                  }nt        j                  }|j                  D cg c]<  }t        |j                  t        j                        r|j                  j                  > }}t        t!        |            dk(  r|d   |d<   t#        d|	|
d |di |      }t        |       |S c c}w c c}w )Nr   r  r   TBody_)fields
model_namec              3   :   K   | ]  }|j                   sd   yw)TN)r   .0fs     rS   	<genexpr>z!get_body_field.<locals>.<genexpr>  s     JAqzz4Js   r   )r   r   r   c              3   d   K   | ](  }t        |j                  t        j                         * y wr   )rJ   rI   r   r   r3  s     rS   r6  z!get_body_field.<locals>.<genexpr>  s     
UQ:allFKK0
U   .0c              3   d   K   | ](  }t        |j                  t        j                         * y wr   )rJ   rI   r   rK   r3  s     rS   r6  z!get_body_field.<locals>.<genexpr>  s     WqZfkk2Wr8  
media_type)r[   r   r   r   rI   r   )r   rz   rI   r   r[   r   rT   setattrr   anyr   r   rK   r   rJ   r:  setr5   )rt   r[   r   first_paramrI   r  r   body_param_names_setr1  	BodyModelr   BodyFieldInfo_kwargsBodyFieldInfor5  body_param_media_typesfinal_fields                   rS   get_body_fieldrE    s   '	2N%% ,,Q/K''JJ.E4B4N4NO5EJJOO
 A%e%  ++ 1  '4014J!))jI J!;!;JJH, *.Y'

U.:T:T
UU+1;;	WN<V<VW	W $//"
!,,4 LL##"
 "

 s)*+q01G1J .' 8#78K [!U P6"
s   G*%AG/)vr   
contextlibr   r}   r   typingr   r   r   r   r	   r
   r   r   r   r   r   r   r   r(  fastapir   fastapi._compatr   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   fastapi.backgroundr*   fastapi.concurrencyr+   r,   r-   fastapi.dependencies.modelsr.   r/   fastapi.loggerr0   fastapi.security.baser1   fastapi.security.oauth2r2   r3   $fastapi.security.open_id_connect_urlr4   fastapi.utilsr5   r6   pydantic.fieldsr7   starlette.backgroundr   starlette.concurrencyr8   starlette.datastructuresr9   r:   r;   r<   starlette.requestsr=   r>   starlette.responsesr?   starlette.websocketsr@   typing_extensionsrA   rB   rC   rR   rP   rT   r   r   r^   rb   r\   CacheKeyboolr   r   r   r   r   r   rj   r   r   r   r   r   r   r   r   r   r   r   rE  r   r_   rS   <module>r\     s    %             2 / 
 G ! . : > E % L 3 O O 6 ( * = =% % "HJ H4 H4 ,0 ^^ 	
 d3i( "X Xc Xi X +/^^ c" 	
 3- d3i( @ (38,-uS#X>? (,	     d8n%	 
  Fy T*-= hsCx0 W5F5F  S DcN s 6hsCx&8 6S 6 +/1
1 38
1 3-	1
 d3i(1 1 1h),9Bd^0@+@+ @+ 	@+
 @+ 3((:*>>?@+F* T d &.* . .t .4c 2 4t 43c 2 3t 34(38, 4 4/c3h/(6/DHcN// 7;;?#'37SW}H7I%&}H }H 5c3h12
3	}H
 78}H x }H $,C=}H tE(38*<eCj*H$I3$NOP}H cNI%&xS!5:-	.	34	6}H@ j) 738,k7BC  4S>49$% FO*%OE$sCx.(":;<O 4S>4S#X//0Od1 1# 1(::N 1r_   