
    9Cg%<                        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 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mZmZ d dlmZmZmZ d dlmZ 	 d dlZesJ d d	lm Z  n# e!$ r  G d
 de"          Z Y nw xY w G d de          Z# G d de#          Z$ G d de#          Z% G d de#          Z& G d de#          Z' G d de#          Z( G d de          Z) G d de          Z* G d de#          Z+ G d de#          Z, G d  d!e#          Z-ee-e.f         Z/ G d" d#ed$%          Z0 G d& d'e          Z1 G d( d)e#          Z2 G d* d+e#          Z3 G d, d-e#          Z4 G d. d/e4          Z5 G d0 d1e4          Z6 G d2 d3e#          Z7 G d4 d5e#          Z8 G d6 d7e#          Z9 G d8 d9e#          Z: G d: d;e#          Z; G d< d=e          Z< G d> d?e#          Z= G d@ dAe          Z> G dB dCe=          Z? G dD dEe=          Z@ G dF dGe@          ZA G dH dIe#          ZB G dJ dKeB          ZC G dL dMeB          ZD G dN dOeB          ZE G dP dQeB          ZF G dR dSe#          ZG G dT dUe=          ZH G dV dWe=          ZIee?e@eHeIeAf         ZJ G dX dYe#          ZK G dZ d[e#          ZL G d\ d]e#          ZM ee-            ee:            ee2           dS )^    )Enum)	AnyCallableDictIterableListOptionalSetTypeUnion)PYDANTIC_V2
CoreSchemaGetJsonSchemaHandlerJsonSchemaValue_model_rebuild"with_info_plain_validator_function)logger)AnyUrl	BaseModelField)	AnnotatedLiteral	TypedDict)
deprecatedN)EmailStrc                       e Zd Zedeedef                  fd            Zededefd            Z	edededefd            Z
ed	ed
edefd            Zedee         d
eegef         defd            ZdS )r   return.c              #      K   | j         V  d S N)validate)clss    H/var/www/api/venv/lib/python3.11/site-packages/fastapi/openapi/models.py__get_validators__zEmailStr.__get_validators__   s      ,    vc                 H    t          j        d           t          |          S Nzpemail-validator not installed, email fields will be treated as str.
To install, run: pip install email-validatorr   warningstr)r!   r%   s     r"   r    zEmailStr.validate   s(    N?   q66Mr$   _EmailStr__input_value_c                 H    t          j        d           t          |          S r'   r(   )r!   r+   r,   s      r"   	_validatezEmailStr._validate%   s+    N?   }%%%r$   core_schemahandlerc                     dddS )Nstringemail)typeformat )r!   r/   r0   s      r"   __get_pydantic_json_schema__z%EmailStr.__get_pydantic_json_schema__-   s     %888r$   sourcec                 *    t          | j                  S r   )r   r.   )r!   r8   r0   s      r"   __get_pydantic_core_schema__z%EmailStr.__get_pydantic_core_schema__3   s     6cmDDDr$   N)__name__
__module____qualname__classmethodr   r   r   r#   r*   r    r.   r   r   r   r7   r   r:   r6   r$   r"   r   r      s3       		xc0B'C 	 	 	 
	 
	S 	S 	 	 	 
	 
	&# 	&# 	&# 	& 	& 	& 
	& 
	9(	93G	9	9 	9 	9 
	9
 
	Ec	E-5seZ6G-H	E	E 	E 	E 
	E 	E 	Er$   r   c                   8    e Zd ZerddiZdS  G d d          ZdS )BaseModelWithConfigextraallowc                       e Zd ZdZdS )BaseModelWithConfig.ConfigrB   Nr;   r<   r=   rA   r6   r$   r"   ConfigrD   @           EEEr$   rF   N)r;   r<   r=   r   model_configrF   r6   r$   r"   r@   r@   :   sR         )	 	 	 	 	 	 	 	 	 	r$   r@   c                   ^    e Zd ZU dZee         ed<   dZee         ed<   dZ	ee
         ed<   dS )ContactNnameurlr3   )r;   r<   r=   rK   r	   r*   __annotations__rL   r   r3   r   r6   r$   r"   rJ   rJ   D   sP         D(3- C&	    $E8H$$$$$r$   rJ   c                   N    e Zd ZU eed<   dZee         ed<   dZee         ed<   dS )LicenserK   N
identifierrL   )	r;   r<   r=   r*   rM   rP   r	   rL   r   r6   r$   r"   rO   rO   J   sD         
III $J$$$ C&	     r$   rO   c                       e Zd ZU eed<   dZee         ed<   dZee         ed<   dZee         ed<   dZ	ee
         ed<   dZee         ed<   eed<   dS )	InfotitleNsummarydescriptiontermsOfServicecontactlicenseversion)r;   r<   r=   r*   rM   rT   r	   rU   rV   rW   rJ   rX   rO   r6   r$   r"   rR   rR   P   s         JJJ!GXc]!!!!%K#%%%$(NHSM(((!%GXg%%%!%GXg%%%LLLLLr$   rR   c                   ~    e Zd ZU dZeeee                   ed          f         e	d<   ee	d<   dZ
ee         e	d<   dS )ServerVariableN   )
min_lengthenumdefaultrU   )r;   r<   r=   r^   r   r	   r   r*   r   rM   rU   r6   r$   r"   r[   r[   Z   s_         @DD)HT#Y'!)<)<)<<
=DDDLLL!%K#%%%%%r$   r[   c                   n    e Zd ZU eeef         ed<   dZee         ed<   dZ	ee
eef                  ed<   dS )ServerrL   NrU   	variables)r;   r<   r=   r   r   r*   rM   rU   r	   rb   r   r[   r6   r$   r"   ra   ra   `   sZ         	vs{	!%K#%%%59IxS.01299999r$   ra   c                   2    e Zd ZU  ed          Zeed<   dS )	Reference$refaliasrefN)r;   r<   r=   r   rh   r*   rM   r6   r$   r"   rd   rd   f   s/         u6"""C"""""r$   rd   c                   D    e Zd ZU eed<   dZeeeef                  ed<   dS )DiscriminatorpropertyNameNmapping)r;   r<   r=   r*   rM   rl   r	   r   r6   r$   r"   rj   rj   j   s;         (,GXd38n%,,,,,r$   rj   c                       e Zd ZU dZee         ed<   dZee         ed<   dZee         ed<   dZ	ee
         ed<   dZee
         ed<   dS )XMLNrK   	namespaceprefix	attributewrapped)r;   r<   r=   rK   r	   r*   rM   ro   rp   rq   boolrr   r6   r$   r"   rn   rn   o   sv         D(3-#Ix}### FHSM    $Ix~$$$"GXd^"""""r$   rn   c                   4    e Zd ZU dZee         ed<   eed<   dS )ExternalDocumentationNrU   rL   )r;   r<   r=   rU   r	   r*   rM   r   r6   r$   r"   ru   ru   w   s-         !%K#%%%	KKKKKr$   ru   c                      e Zd ZU  edd          Zee         ed<    edd          Zee         ed<    edd          Z	ee         ed<    edd	          Z
ee         ed
<    edd          Zee         ed<    edd          Zee         ed<    edd          Zee         ed<    edd          Zeeedf                  ed<    edd          Zee         ed<   dZeed                  ed<   dZeed                  ed<   dZeed                  ed<    edd          Zed         ed<    edd          Zed         ed<   dZed         ed<    edd          Zed         ed<   dZeeedf                  ed <   dZeed                  ed!<   dZeeded         f                  ed"<   dZed         ed#<   dZeeedf                  ed$<   dZeeedf                  ed%<   dZ ed         ed&<   dZ!ed         ed'<   dZ"ed         ed(<   dZ#ed         ed)<   dZ$ee         ed*<   dZ%eee&                  ed+<   dZ'ee&         ed,<    edd-.          Z(ee)         ed/<   dZ*ee)         ed0<   dZ+ee)         ed1<   dZ,ee)         ed2<   dZ-ee)         ed3<    edd-4          Z.ee/         ed5<    edd-4          Z0ee/         ed6<   dZ1ee         ed7<    edd-4          Z2ee/         ed8<    edd-4          Z3ee/         ed9<   dZ4ee5         ed:<    edd-4          Z6ee/         ed;<    edd-4          Z7ee/         ed<<    edd-4          Z8ee/         ed=<    edd-4          Z9ee/         ed><   dZ:eee                  ed?<   dZ;eeee<e         f                  ed@<   dZ=ee         edA<   dZ>ee         edB<   dZ?ee         edC<   dZ@ed         edD<   dZAee         edE<   dZBee         edF<   dZCee&         edG<   dZDee5         edH<   dZEee5         edI<   dZFee5         edJ<   dZGeee&                  edK<   dZHeeI         edL<   dZJeeK         edM<   dZLeeM         edN<   dZNeOee&          ePdO          f         edP<   dS )QSchemaNz$schemar_   rg   schema_z$vocabulary
vocabularyz$ididz$anchoranchorz$dynamicAnchordynamicAnchorre   rh   z$dynamicRef
dynamicRefz$defsSchemaOrBooldefsz$commentcommentallOfanyOfoneOfnotnot_ifif_thenelseelse_dependentSchemasprefixItemsitemscontains
propertiespatternPropertiesadditionalPropertiespropertyNamesunevaluatedItemsunevaluatedPropertiesr4   r^   constr   )r_   gt
multipleOfmaximumexclusiveMaximumminimumexclusiveMinimum)r_   ge	maxLength	minLengthpatternmaxItemsminItemsuniqueItemsmaxContainsminContainsmaxPropertiesminPropertiesrequireddependentRequiredr5   contentEncodingcontentMediaTypecontentSchemarS   rU   r_   r   readOnly	writeOnlyexamplesdiscriminatorxmlexternalDocsznDeprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, although still supported. Use examples instead.example)Qr;   r<   r=   r   ry   r	   r*   rM   rz   r{   r|   r}   rh   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r4   r^   r   r   r   floatr   r   r   r   r   intr   r   r   r   r   rs   r   r   r   r   r   r   r
   r5   r   r   r   rS   rU   r_   r   r   r   r   r   rj   r   rn   r   ru   r   r   typing_deprecatedr6   r$   r"   rw   rw   |   s         #U4yAAAGXc]AAA %d- H H HJHHHd%888B888!E$i@@@FHSM@@@#(5=M#N#N#NM8C=NNNt6:::C#::: %d- H H HJHHH05d'0R0R0RD(4^+,
-RRR"U4zBBBGXc]BBB -1E8D()000,0E8D()000,0E8D()000%*U4u%E%E%ED(>
"EEE$)E$d$C$C$CC.	!CCC%)D(>
")))&+eD&G&G&GE8N#GGG<@htC$789@@@26K$~./666 DHE8E.$~*>>?@GGG)-Hh~&---6:Jc>123:::=AxS.%8 9:AAA59(>2999.2M8N+22215h~.5556:8N3::: D(3- $D(49
$$$E8C="'%";";";J;;;#GXe_###(,huo,,,#GXe_###(,huo,,,$uTa888Ix}888$uTa888Ix}888!GXc]!!!#eDQ777Hhsm777#eDQ777Hhsm777"&K$&&&!&t!:!:!:K#:::!&t!:!:!:K#:::#(5!#<#<#<M8C=<<<#(5!#<#<#<M8C=<<<$(HhtCy!(((7;xS#c(] 34;;; !FHSM    &*OXc])))&*hsm***.2M8N+222  E8C=!%K#%%%!GXc]!!!!%J%%%#Hhtn### $Ix~$$$$(HhtCy!((( .2M8M*111C#48L(01888 	 Y>	
 	
	     r$   rw   c                       e Zd ZU ee         ed<   ee         ed<   ee         ed<   ee         ed<   erddiZ	d	S  G d d          Z
d	S )
ExamplerT   rU   valueexternalValuerA   rB   c                       e Zd ZdZdS )Example.ConfigrB   NrE   r6   r$   r"   rF   r      rG   r$   rF   N)r;   r<   r=   r	   r*   rM   r   r   r   __pydantic_config__rF   r6   r$   r"   r   r      s         c]#C=F#### &0	 	 	 	 	 	 	 	 	 	r$   r   F)totalc                       e Zd ZdZdZdZdZdS )ParameterInTypequeryheaderpathcookieN)r;   r<   r=   r   r   r   r   r6   r$   r"   r   r      s"        EFDFFFr$   r   c                       e Zd ZU dZee         ed<   dZeeee	de
f         f                  ed<   dZee         ed<   dZee         ed<   dZee         ed<   dS )EncodingNcontentTypeHeaderheadersstyleexplodeallowReserved)r;   r<   r=   r   r	   r*   rM   r   r   r   rd   r   r   rs   r   r6   r$   r"   r   r      s         !%K#%%%?CGXd3h	&9 ::;<CCCE8C="GXd^"""$(M8D>(((((r$   r   c                       e Zd ZU  edd          Zeeeef                  e	d<   dZ
ee         e	d<   dZeeeeeef         f                  e	d<   dZeeeef                  e	d<   dS )	MediaTypeNschemarx   ry   r   r   encoding)r;   r<   r=   r   ry   r	   r   rw   rd   rM   r   r   r   r   r*   r   r   r   r6   r$   r"   r   r      s         27%H2U2U2UGXeFI-./UUU!GXc]!!!?CHhtCw	'9!::;<CCC.2HhtCM*+22222r$   r   c                   j   e Zd ZU dZee         ed<   dZee         ed<   dZ	ee         ed<   dZ
ee         ed<   dZee         ed<   dZee         ed<    edd	          Zeeeef                  ed
<   dZee         ed<   dZeeeeeef         f                  ed<   dZeeeef                  ed<   dS )ParameterBaseNrU   r   r   r   r   r   r   rx   ry   r   r   content)r;   r<   r=   rU   r	   r*   rM   r   rs   r   r   r   r   r   ry   r   rw   rd   r   r   r   r   r   r   r   r6   r$   r"   r   r      s        !%K#%%%#Hhtn###!%J%%%E8C="GXd^"""$(M8D>(((27%H2U2U2UGXeFI-./UUU!GXc]!!!?CHhtCw	'9!::;<CCC.2GXd3	>*+22222r$   r   c                   <    e Zd ZU eed<    ed          Zeed<   dS )	ParameterrK   inrf   in_N)r;   r<   r=   r*   rM   r   r   r   r6   r$   r"   r   r     s8         
III 5t,,,C,,,,,r$   r   c                       e Zd ZdS )r   N)r;   r<   r=   r6   r$   r"   r   r     s        Dr$   r   c                   ^    e Zd ZU dZee         ed<   eeef         ed<   dZ	ee
         ed<   dS )RequestBodyNrU   r   r   )r;   r<   r=   rU   r	   r*   rM   r   r   r   rs   r6   r$   r"   r   r     sO         !%K#%%%#y.!!!!#Hhtn#####r$   r   c                       e Zd ZU dZee         ed<   dZee         ed<   dZee	ee
eef         f                  ed<   dZee
eef                  ed<   dZee         ed<   dZee         ed<   dS )LinkNoperationRefoperationId
parametersrequestBodyrU   server)r;   r<   r=   r   r	   r*   rM   r   r   r   r   r   r   rU   r   ra   r6   r$   r"   r   r     s         "&L(3-&&&!%K#%%%7;Jc5c?234;;;-1K%S/*111!%K#%%%#FHV#####r$   r   c                       e Zd ZU eed<   dZeeeee	e
f         f                  ed<   dZeeeef                  ed<   dZeeeeee
f         f                  ed<   dS )ResponserU   Nr   r   links)r;   r<   r=   r*   rM   r   r	   r   r   r   rd   r   r   r   r   r6   r$   r"   r   r   $  s         =AGXd3fi&7 889:AAA.2GXd3	>*+2229=E8DeD)O4456=====r$   r   c                      e Zd ZU dZeee                  ed<   dZee         ed<   dZ	ee         ed<   dZ
ee         ed<   dZee         ed<   dZeeeeef                           ed<   dZeeeef                  ed<   dZeeeeeef         f                  ed	<   dZeeeeeed
f         ef         f                  ed<   dZee         ed<   dZeeeeee         f                           ed<   dZeee                  ed<   dS )	OperationNtagsrT   rU   r   r   r   r   	responsesPathItem	callbacksr   securityservers)r;   r<   r=   r   r	   r   r*   rM   rT   rU   r   ru   r   r   r   r   rd   r   r   r   r   r   r   r   r   rs   r   r   ra   r6   r$   r"   r   r   +  sn         $D(49
$$$!GXc]!!!!%K#%%%48L(01888!%K#%%%>BJeIy$89:;BBB;?K%Y 678???;?IxS%#"6678???NRIxS%S*_(=y(H"IIJKRRR!%J%%%59HhtDd3i012999&*GXd6l#*****r$   r   c                      e Zd ZU  edd          Zee         ed<   dZee         ed<   dZ	ee         ed<   dZ
ee         ed<   dZee         ed<   dZee         ed	<   dZee         ed
<   dZee         ed<   dZee         ed<   dZee         ed<   dZee         ed<   dZeee                  ed<   dZeeeeef                           ed<   dS )r   Nre   rx   rh   rT   rU   getputpostdeleteoptionsheadpatchtracer   r   )r;   r<   r=   r   rh   r	   r*   rM   rT   rU   r   r   r   r   r   r   r   r   r   r   r   ra   r   r   r   rd   r6   r$   r"   r   r   ;  sB        t6:::C#:::!GXc]!!!!%K#%%%#C)	####C)	### $D(9
$$$"&FHY&&&#'GXi ''' $D(9
$$$!%E8I%%%!%E8I%%%&*GXd6l#***>BJeIy$89:;BBBBBr$   r   c                       e Zd ZdZdZdZdZdS )SecuritySchemeTypeapiKeyhttpoauth2openIdConnectN)r;   r<   r=   r   r   r   r   r6   r$   r"   r   r   K  s"        FDF#MMMr$   r   c                   L    e Zd ZU  ed          Zeed<   dZee	         ed<   dS )SecurityBaser4   rf   type_NrU   )
r;   r<   r=   r   r   r   rM   rU   r	   r*   r6   r$   r"   r   r   R  sD          %F 3 3 3E333!%K#%%%%%r$   r   c                       e Zd ZdZdZdZdS )APIKeyInr   r   r   N)r;   r<   r=   r   r   r   r6   r$   r"   r   r   W  s        EFFFFr$   r   c                   j    e Zd ZU  eej        d          Zeed<    ed          Ze	ed<   e
ed<   dS )	APIKeyr4   rx   r   r   rf   r   rK   N)r;   r<   r=   r   r   r   r   rM   r   r   r*   r6   r$   r"   r  r  ]  sZ          %.@.Gv V V VEVVVE%%%C%%%
IIIIIr$   r  c                   H    e Zd ZU  eej        d          Zeed<   eed<   dS )HTTPBaser4   rx   r   schemeN)	r;   r<   r=   r   r   r   r   rM   r*   r6   r$   r"   r  r  c  s=          %.@.EV T T TETTTKKKKKr$   r  c                   D    e Zd ZU dZed         ed<   dZee         ed<   dS )
HTTPBearerbearerr  NbearerFormat)	r;   r<   r=   r  r   rM   r	  r	   r*   r6   r$   r"   r  r  h  s;          (FGH((("&L(3-&&&&&r$   r  c                   H    e Zd ZU dZee         ed<   i Zeeef         ed<   dS )	OAuthFlowN
refreshUrlscopes)	r;   r<   r=   r  r	   r*   rM   r  r   r6   r$   r"   r  r  m  s>          $J$$$FDcNr$   r  c                       e Zd ZU eed<   dS )OAuthFlowImplicitauthorizationUrlNr;   r<   r=   r*   rM   r6   r$   r"   r  r  r  s         r$   r  c                       e Zd ZU eed<   dS )OAuthFlowPasswordtokenUrlNr  r6   r$   r"   r  r  v           MMMMMr$   r  c                       e Zd ZU eed<   dS )OAuthFlowClientCredentialsr  Nr  r6   r$   r"   r  r  z  r  r$   r  c                   $    e Zd ZU eed<   eed<   dS )OAuthFlowAuthorizationCoder  r  Nr  r6   r$   r"   r  r  ~  s%         MMMMMr$   r  c                   x    e Zd ZU dZee         ed<   dZee         ed<   dZ	ee
         ed<   dZee         ed<   dS )
OAuthFlowsNimplicitpasswordclientCredentialsauthorizationCode)r;   r<   r=   r  r	   r  rM   r  r  r  r  r  r  r6   r$   r"   r  r    sl         ,0Hh()000,0Hh()000>Bx :;BBB>Bx :;BBBBBr$   r  c                   H    e Zd ZU  eej        d          Zeed<   eed<   dS )OAuth2r4   rx   r   flowsN)	r;   r<   r=   r   r   r   r   rM   r  r6   r$   r"   r!  r!    sB          %.@.Gv V V VEVVVr$   r!  c                   H    e Zd ZU  eej        d          Zeed<   eed<   dS )OpenIdConnectr4   rx   r   openIdConnectUrlN)	r;   r<   r=   r   r   r   r   rM   r*   r6   r$   r"   r$  r$    sP          %"0! ! !E    r$   r$  c                   f   e Zd ZU dZeeeeee	f         f                  e
d<   dZeeeeee	f         f                  e
d<   dZeeeeee	f         f                  e
d<   dZeeeeee	f         f                  e
d<   dZeeeeee	f         f                  e
d<   dZeeeeee	f         f                  e
d<   dZeeeeee	f         f                  e
d<   dZeeeeee	f         f                  e
d	<   dZeeeeeeef         e	ef         f                  e
d
<   dZeeeeee	f         f                  e
d<   dS )
ComponentsNschemasr   r   r   requestBodiesr   securitySchemesr   r   	pathItems)r;   r<   r=   r(  r	   r   r*   r   rw   rd   rM   r   r   r   r   r   r   r)  r   r   r   r*  SecuritySchemer   r   r   r   r   r+  r6   r$   r"   r'  r'    s        =AGXd3fi&7 889:AAAAEIxS%)(;"<<=>EEECGJc5I)=#>>?@GGG?CHhtCw	'9!::;<CCCHLM8DeK,B&C!CDELLL=AGXd3fi&7 889:AAAMQOXd3ni.G(H#HIJQQQ9=E8DeD)O4456===QUIxS%S(](;Y(K"LLMNUUUAEIxS%)(;"<<=>EEEEEr$   r'  c                   N    e Zd ZU eed<   dZee         ed<   dZee         ed<   dS )TagrK   NrU   r   )	r;   r<   r=   r*   rM   rU   r	   r   ru   r6   r$   r"   r.  r.    sE         
III!%K#%%%48L(0188888r$   r.  c                   t   e Zd ZU eed<   eed<   dZee         ed<   dZee	e
                  ed<   dZeeeeeef         f                  ed<   dZeeeeeef         f                  ed<   dZee         ed<   dZee	eee	e         f                           ed	<   dZee	e                  ed
<   dZee         ed<   dS )OpenAPIopenapiinfoNjsonSchemaDialectr   pathswebhooks
componentsr   r   r   )r;   r<   r=   r*   rM   rR   r3  r	   r   r   ra   r4  r   r   r   r   r5  rd   r6  r'  r   r   r.  r   ru   r6   r$   r"   r0  r0    s        LLL
JJJ'+x}+++&*GXd6l#***7;E8DeHcM2234;;;@DHhtCx':!;;<=DDD'+J$+++59HhtDd3i012999 $D(49
$$$48L(0188888r$   r0  )Nr^   r   typingr   r   r   r   r   r	   r
   r   r   fastapi._compatr   r   r   r   r   r   fastapi.loggerr   pydanticr   r   r   typing_extensionsr   r   r   r   r   email_validatorr   ImportErrorr*   r@   rJ   rO   rR   r[   ra   rd   rj   rn   ru   rw   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r!  r$  r,  r'  r.  r0  r6   r$   r"   <module>r>     s         R R R R R R R R R R R R R R R R R R R R R R                " ! ! ! ! ! - - - - - - - - - - ; ; ; ; ; ; ; ; ; ; = = = = = =&E!!!!!!! !E !E !EE E E E E3 E E E E E!EH    )   % % % % %! % % %! ! ! ! !! ! ! !       & & & & &( & & &: : : : :  : : :# # # # #	 # # #- - - - -I - - -
# # # # #
 # # #    /   
T T T T T  T T Tr VT\"    iu        d   ) ) ) ) )" ) ) )3 3 3 3 3# 3 3 33 3 3 3 3' 3 3 3- - - - - - - -
	 	 	 	 	] 	 	 	$ $ $ $ $% $ $ $$ $ $ $ $ $ $ $> > > > >" > > >+ + + + +# + + + C C C C C" C C C $ $ $ $ $ $ $ $& & & & && & & &
    t       \       |   
' ' ' ' ' ' ' '
         #      
    	       	                 
C C C C C$ C C C    \   
    L    vx
JKF F F F F$ F F F9 9 9 9 9
 9 9 99 9 9 9 9! 9 9 9 v    y    x     s   A A32A3