Ë
    äš¾jü>  ã                   ó¶  — 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 ddlmZ ddlmZmZmZ ddlmZ ddlmZ dd	lmZ  ed
«      Ze G d„ dee   «      «       Zd„ Zd„ Z G d„ d«      Zdefd„Zde de fd„Z!i ddœdee ef   dee ee ef   f   dedee ef   fd„Z"ddœdee ef   dedee ef   fd„Z#dddœdee ef   ded e dee ef   fd!„Z$d"ee ef   d#e d e ddfd$„Z%dee ee ef   f   d%edee ee ef   f   fd&„Z&dee ee ef   f   dee ee ef   f   fd'„Z'd(„ Z(d-d)ed*e	ee)ef      defd+„Z*dee ee ef   f   dee ee ef   f   dee ee ef   f   fd,„Z+y).é    N)Ú	dataclass)	ÚAnyÚCallableÚDictÚGenericÚListÚOptionalÚTupleÚTypeVarÚUnioné   )ÚConfig)Ú
ARGS_FIELDÚARGS_FIELD_ALIASÚRESERVED_FIELDS_REVERSE)ÚConfigValidationError©Ú
is_promise)ÚSchemaÚ_PromisedTypec                   ó˜   — e Zd ZU eed<   eed<   ee   ed<   eeef   ed<   ee	de
f   ef   ed<   ede
fd„«       Zdefd	„Zedd
„«       Zy)ÚPromiseÚregistryÚnameÚvar_argsÚkwargs.ÚgetterÚreturnc                 ó¤   — t        | j                  t        «      r| j                  ‚t        j                  | j                  «      }|j
                  S ©N)Ú
isinstancer   Ú	ExceptionÚinspectÚ	signatureÚreturn_annotation)Úselfr$   s     ú^/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/confection/_registry.pyÚreturn_typezPromise.return_type$   s:   € ä�d—k‘k¤9Ô-Ø—+‘+ÐÜ×%Ñ% d§k¡kÓ2ˆ	Ø×*Ñ*Ð*ó    c                 óH  — t        | j                  t        «      r| j                  ‚t        | j                  «      }t        | j
                  «      }t        |t        «      rt        |j                  «       «      n|}t        | j                  |«      } | j                  |i |¤ŽS r    )
r!   r   r"   Ú_recursive_resolver   r   ÚdictÚlistÚvaluesÚ_coerce_basemodel_args)r&   r   Úargss      r'   ÚresolvezPromise.resolve+   sw   € Ü�d—k‘k¤9Ô-Ø—+‘+ÐÜ# D§K¡KÓ0ˆÜ! $§-¡-Ó0ˆÜ&0°´tÔ&<Œt�D—K‘K“MÔ"À$ˆÜ'¨¯©°VÓ<ˆØˆt�{‰{˜DÐ+ FÑ+Ð+r)   c                 óÆ   — |j                  |«      \  }}|j                  |«      \  }}	 |j                  ||«      } | |||||¬«      }	|	S # t        $ r}|}Y d }~Œd }~ww xY w)N)r   r   r   r   r   )Úget_constructorÚ
parse_argsÚgetr"   )
Úclsr   r.   Úreg_nameÚ	func_namer   r   r   ÚeÚoutputs
             r'   Ú	from_dictzPromise.from_dict4   sz   € à&×6Ñ6°vÓ>Ñˆ�)Ø#×.Ñ.¨vÓ6Ñˆ�&ð	Ø—\‘\ (¨IÓ6ˆFñ ØØØØØô
ˆð ˆøô ò 	Ø�Fûð	ús   ªA Á	A ÁAÁA N)r   r   )Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r   r   r   r   r   r   r"   Úpropertyr(   r1   Úclassmethodr;   © r)   r'   r   r      sw   … àƒMØ
ƒIØ�3‰iÓØ��c�‰NÓØ�(˜3 Ð-Ñ.°	Ð9Ñ:Ó:àð+˜]ò +ó ð+ð,˜ó ,ð òó ñr)   r   c                 óz  — 	 ddl m}  || «      }t        |«      }|j	                  «       D ]|  \  }}t        |t        «      sŒ|j                  |«      }|�t        |t        «      sŒ;t        |d«      r|j                  |«      ||<   Œ\t        |d«      sŒi|j                  |«      ||<   Œ~ |S # t        $ r |cY S w xY w)z×Coerce dict kwargs to BaseModel instances where the function signature
    expects a BaseModel subclass.  This lets registered functions receive
    constructed model instances instead of raw dicts (issue #58).
    r   )Úget_type_hintsÚmodel_validateÚ	parse_obj)ÚtypingrE   r"   r,   Úitemsr!   r5   ÚtypeÚhasattrrF   rG   )Úfuncr   rE   ÚhintsÚresultr   ÚvalueÚhints           r'   r/   r/   F   s»   € ð
Ý)á˜tÓ$ˆô �&‹\€FØ—|‘|“~ò 
1‰ˆˆeÜ˜%¤Ô&ØØ�y‰y˜‹ˆØˆ<œz¨$´Ô5Øä�4Ð)Ô*Ø×.Ñ.¨uÓ5ˆF�4ŠLÜ�T˜;Õ'ØŸ>™>¨%Ó0ˆF�4ŠLð
1ð €Møô ò ØŠðús   ‚B, Â,B:Â9B:c                 ó(  — t        | t        «      r| D �cg c]  }t        |«      ‘Œ c}S t        | t        «      r-| j	                  «       D ��ci c]  \  }}|t        |«      “Œ c}}S t        | t
        «      r| j                  «       S | S c c}w c c}}w r    )r!   r-   r+   r,   rI   r   r1   )ÚobjÚvÚks      r'   r+   r+   `   sv   € Ü�#”tÔØ/2Ö3¨!Ô" 1Õ%Ò3Ð3Ü	�CœÔ	Ø58·Y±Y³[×A©T¨Q°�Ô% aÓ(Ñ(ÓAÐAÜ	�CœÔ	!Ø�{‰{‹}Ðàˆ
ùò 4ùãAs   •B	ÁBc                   ó†  — e Zd Zedededefd„«       Zedededefd„«       Zedi ddœd	e	e
eeeeef   f   f   d
eeef   dedeeef   fd„«       Zedi dddœd	e	e
eeeeef   f   f   d
eeef   dedede
f
d„«       Zededefd„«       Zedeeef   deeef   fd„«       Zedeeef   deee   eeef   f   fd„«       Zy)r   Úregistry_namer8   r   c                 ó<   — t        | |«      syt        | |«      }||v S )z4Check whether a function is available in a registry.F)rK   Úgetattr)r6   rV   r8   Úregs       r'   Úhaszregistry.hasl   s(   € ô �s˜MÔ*ØÜ�c˜=Ó)ˆØ˜CÐÐr)   c                 óž   — t        | |«      st        d|› d�«      ‚t        | |«      }|j                  |«      }|€t        d|› d|› d�«      ‚|S )z0Get a registered function from a given registry.zUnknown registry: 'ú'zCould not find 'z' in ')rK   Ú
ValueErrorrX   r5   )r6   rV   r8   rY   rL   s        r'   r5   zregistry.gett   sb   € ô �s˜MÔ*ÜÐ2°=°/ÀÐCÓDÐDÜ�c˜=Ó)ˆØ�w‰w�yÓ!ˆØˆ<ÜÐ/°	¨{¸&ÀÀÈqÐQÓRÐRØˆr)   NT)ÚschemaÚ	overridesÚvalidateÚconfigr_   r`   c                óØ   — | j                  |||d¬«      }t        | |d¬«      }t        |«      }t        |«      }t	        |t
        «      sJ ‚|�|rt        |«      j                  |«       |S )NT)r^   r_   Úinterpolate©r1   )ÚfillÚinsert_promisesÚresolve_promisesÚfix_positionalsr!   r,   r   r`   )r6   ra   r^   r_   r`   ÚpromisedÚresolvedÚfixeds           r'   r1   zregistry.resolve   sv   € ð —‘ØØØØð	 ó 
ˆô # 3¨¸Ô=ˆÜ# HÓ-ˆÜ Ó)ˆÜ˜%¤Ô&Ð&Ð&ØÐ¡(Ü�5‹M×"Ñ" 6Ô*Øˆr)   F)r^   r_   rc   r`   rc   c                ó¢  — | j                  |«      rd}t        |d|ig¬«      ‚t        |t        «       xs |j                  }t        |t        «      r|j
                  nd }|}	|st        |	«      j                  «       }t        | |||¬«      }
t        |
|¬«      }
|s |s|
j                  t        |	d¬«      d¬	«      }
|�|
j                  |«       |
S )
NzJThe top-level config object can't be a reference to a registered function.Úmsg©ra   Úerrors©r_   r`   )Úsection_orderF)Úis_interpolatedT)Úremove_extra)
r   r   r!   r   rr   rq   rc   Úfill_configÚmergeÚfill_defaults)r6   ra   r^   r_   rc   r`   Úerr_msgrr   rq   Úorig_configÚfilleds              r'   re   zregistry.fill–   sÕ   € ð �>‰>˜&Ô!ØbˆGÜ'¨vÀÀwÐ?OÐ>PÔQÐQô )¨´Ó8Ð8ÒR¸F×<RÑ<RˆÜ0:¸6Ä6Ô0J˜×,Ò,ÐPTˆØˆÙÜ˜KÓ(×4Ñ4Ó6ˆFÜ˜S &°IÈÔQˆÜ˜¨mÔ<ˆñ
 ¡?Ø—\‘\Ü�{°EÔ:Èð "ó ˆFð ÐØ× Ñ  Ô(Øˆr)   rR   c                 ó   — t        |«      S )z‹Check whether an object is a "promise", i.e. contains a reference
        to a registered function (via a key starting with `"@"`.
        r   )r6   rR   s     r'   r   zregistry.is_promise¸   s   € ô
 ˜#‹Ðr)   c                 óÒ   — |j                  «       D �cg c]  }|j                  d«      sŒ|‘Œ }}t        |«      dk7  rd|› �}t        |d|ig¬«      ‚|d   }||   }|dd  |fS c c}w )Nú@r   z?A block can only contain one function registry reference. Got: rm   rn   r   )ÚkeysÚ
startswithÚlenr   )r6   rR   rT   Úid_keysrw   ÚkeyrO   s          r'   r3   zregistry.get_constructor¿   s}   € à!Ÿh™h›jÖ>˜¨A¯L©L¸Õ,=’1Ð>ˆÐ>Üˆw‹<˜1ÒØWÐX_ÐW`ÐaˆGÜ'¨s¸UÀGÐ<LÐ;MÔNÐNà˜!‘*ˆCØ˜‘HˆEØ˜˜�G˜UÐ#Ð#ùò ?s
   “A$ªA$c                 óˆ   — g }i }|j                  «       D ](  \  }}|j                  d«      rŒ|t        k(  r|}Œ$|||<   Œ* ||fS )Nr|   )rI   r~   r   )r6   rR   r0   r   r�   rO   s         r'   r4   zregistry.parse_argsÊ   sS   € àˆØˆØŸ)™)›+ò 	(‰JˆC�Ø—>‘> #Õ&Øœ*Ò$Ø ‘Dà"'�F˜3’Kð	(ð �Vˆ|Ðr)   )r<   r=   r>   rB   r?   ÚboolrZ   r   r5   r   r   r   r   r1   re   r   r
   r3   r   r4   rC   r)   r'   r   r   k   sÎ  „ Øð  ð  °ð  ¸ò  ó ð ð ð ð °ð ¸ò ó ðð ð
 Ø$&Øòà�f˜d 3¨¨S°#¨X©Ð#6Ñ7Ð7Ñ8ðð
 ˜˜S˜‘>ðð ðð 
ˆc�3ˆh‰òó ðð, ð
 Ø$&Ø!Øòà�f˜d 3¨¨S°#¨X©Ð#6Ñ7Ð7Ñ8ðð
 ˜˜S˜‘>ðð ðð ðð 
òó ððB ð˜Sð  Tò ó ðð ð$ $ s¨C x¡.ð $°U¸3À¸8±_ò $ó ð$ð ð	˜T # s (™^ð 	°°d¸3±iÀÀcÈ3ÀhÁÐ6OÑ0Pò 	ó ñ	r)   r   r   c                 ód   — t        | t        «      syt        d„ | j                  «       D «       «      S )zFCheck if a dict is a config section (all string keys) vs a data value.Fc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr    )r!   r?   )Ú.0rT   s     r'   ú	<genexpr>z%_is_config_section.<locals>.<genexpr>Û   s   è ø€ Ò6 aŒz˜!œS×!Ñ6ùs   ‚)r!   r,   Úallr}   )rR   s    r'   Ú_is_config_sectionr‰   ×   s&   € ä�cœ4Ô ØÜÑ6¨3¯8©8«:Ô6Ó6Ð6r)   r   c                 óL   — | t         k(  rt        S t        j                  | | «      S )z)Generate field aliases in promise schema.)r   r   r   r5   )r   s    r'   Úalias_generatorr‹   Þ   s&   € ð ÔÒÜÐä"×&Ñ& t¨TÓ2Ð2r)   Trp   ra   r_   r`   c                óH   — t        t        |«      |«      }t        | ||¬«      S )N©r`   )Úapply_overridesr,   Ú_fill_defaults)r   ra   r_   r`   Ú	overrideds        r'   rt   rt   ç   s#   € ô  ¤ V£¨iÓ8€IÜ˜( I¸ÔAÐAr)   r�   c                óÌ   — t        |«      }|j                  «       D ]E  \  }}t        |«      rt        | |||¬«      ||<   Œ$t	        |t         «      sŒ5t        | ||¬«      ||<   ŒG |S )zDRecursively fill default values from registered function signatures.©r`   Úparentr�   )r,   rI   r   Ú_fill_promise_defaultsr!   r�   )r   ra   r`   r:   r�   rO   s         r'   r�   r�   ò   sl   € ô �&‹\€FØ—l‘l“nò M‰
ˆˆUÜ�eÔÜ0Ø˜%¨(¸3ôˆF�3ŠKô ˜œtÕ$Ü(¨°5À8ÔLˆF�3ŠKðMð €Mr)   Ú r’   Úpromise_dictr“   c          	      óX  — | j                  |«      \  }}| j                  ||«      st        |«      S | j                  ||«      }t	        j
                  |«      }t        |«      }|j                  j                  «       D ]*  \  }	}
|	|vsŒ|
j                  «       rŒ|
j                  ||	<   Œ, |rt        ||||«       |j                  «       D ]\  \  }}|j                  d«      rŒt        |«      rt        | |||› d|› �¬«      ||<   Œ;t        |t        «      sŒLt        | ||¬«      ||<   Œ^ |S )zMFill default argument values for a promise block from the function signature.r|   ú.r’   r�   )r3   rZ   r,   r5   r   Úfrom_functionÚmodel_fieldsrI   Úis_requiredÚdefaultÚ_validate_promise_argsr~   r   r”   r!   r�   )r   r–   r`   r“   r7   r8   rL   r^   ry   Ú
param_nameÚfieldr�   rO   s                r'   r”   r”     s,  € ð #×2Ñ2°<Ó@Ñ€HˆiØ�<‰<˜ )Ô,ä�LÓ!Ð!Ø�<‰<˜ )Ó,€DÜ×!Ñ! $Ó'€FÜ�,Ó€Fà#×0Ñ0×6Ñ6Ó8ò /Ñˆ
�EØ˜VÒ#¨E×,=Ñ,=Õ,?Ø!&§¡ˆF�:Òð/ñ Ü˜v v¨y¸&ÔAà—l‘l“nò M‰
ˆˆUØ�>‰>˜#ÔØÜ�eÔÜ0Ø˜%¨(¸f¸XÀQÀsÀeÐ;LôˆF�3ŠKô ˜œtÕ$Ü(¨°5À8ÔLˆF�3ŠKðMð €Mr)   ry   r8   c                 ó¨  — ddl m} g }|j                  j                  «       D ]›  \  }}|}|| vrt        | v rt        }|| vr1|j                  «       sŒ/|j                  |r||gn|gd|› d�dœ«       ŒO|t        k(  rŒYt        | |   «      rŒh || |   |j                  «      }	|	sŒ�|j                  |r||gn|g|	dœ«       Œ� t        |j                  j                  «       «      | D �
ch c]  }
|
j                  d«      sŒ|
’Œ c}
z  t        hz  }| D ]&  }||vsŒ|j                  |r||gn|gd|› d�dœ«       Œ( |rt        | |d|› d�¬	«      ‚y
c c}
w )z7Validate promise arguments against the function schema.r   )Úvalidate_typezmissing required argument: 'r\   ©Úlocrm   r|   zunexpected argument: 'zConfig error for ')ra   ro   ÚtitleN)Ú
validationr¡   rš   rI   r   r›   Úappendr   Ú
annotationÚsetr}   r~   r   )ry   r^   r8   r“   r¡   ro   rž   rŸ   Úeffective_nameÚerrrT   Úknownr�   s                r'   r�   r�   $  s˜  € õ *à€FØ#×0Ñ0×6Ñ6Ó8ò Ñˆ
�Eð $ˆØ˜VÑ#¬
°fÑ(<Ü'ˆNØ Ñ'Ø× Ñ Õ"Ø—‘á7= ¨
Ñ3ÀJÀ<Ø!=¸j¸\ÈÐKñõð œzÒ)ØÜ˜F >Ñ2Õ3ñ    ~Ñ 6¸×8HÑ8HÓIˆCÚØ—‘á7= ¨
Ñ3ÀJÀ<Ø"ñõð-ô< 	ˆF×Ñ×$Ñ$Ó&Ó'ØÖ
2� §¡¨SÕ 1Š1Ò
2ñ	3äˆ,ñ	ð 
ð
 ò ˆØ�eÒØ�M‰Má,2˜F C™=¸¸Ø3°C°5¸Ð:ñõðñ Ü#ØØØ& y k°Ð3ô
ð 	
ð ùò 3s   Ã'EÃ>Er1   c                 óú   — i }|j                  «       D ]e  \  }}| j                  |«      r(t        | ||¬«      }t        j	                  | |«      ||<   Œ?t        |t        «      rt        | ||¬«      ||<   Œa|||<   Œg |S )zlCreate a version of a config dict where promises are recognised and replaced by
    Promise dataclasses
    rd   )rI   r   rf   r   r;   r!   r,   )r   ra   r1   r:   r�   rO   s         r'   rf   rf   `  s†   € ð €FØ—l‘l“nò 
 ‰
ˆˆUØ×Ñ˜uÔ%Ü# H¨e¸WÔEˆEÜ!×+Ñ+ØØóˆF�3ŠKô ˜œtÔ$Ü)¨(°EÀ7ÔKˆF�3ŠKàˆF�3ŠKð
 ð €Mr)   c                 óÊ   — i }| j                  «       D ]M  \  }}t        |t        «      rt        |«      ||<   Œ%t        |t        «      r|j                  «       ||<   ŒI|||<   ŒO |S r    )rI   r!   r,   rg   r   r1   )ra   r:   r�   rO   s       r'   rg   rg   u  sa   € Ø€FØ—l‘l“nò  ‰
ˆˆUÜ�eœTÔ"Ü*¨5Ó1ˆF�3ŠKÜ˜œwÔ'ØŸ-™-›/ˆF�3ŠKàˆF�3ŠKð ð €Mr)   c                 ó$  — t        | t        «      rši }| j                  «       D ]ƒ  \  }}|t        k(  r)t        |t        «      rt	        |j                  «       «      }t        |t        «      rt        |«      }n+t        |t        «      st        |t        «      rt        |«      }|||<   Œ… |S t        | t        «      r| D �cg c]  }t        |«      ‘Œ c}S t        | t        «      r"t	        | D �cg c]  }t        |«      ‘Œ c}«      S | S c c}w c c}w )z?Ensure positionals are provided as a tuple, rather than a dict.)r!   r,   rI   r   Útupler.   rh   r-   )ra   r:   r�   rO   rS   s        r'   rh   rh   �  sÞ   € ä�&œ$ÔØˆØ Ÿ,™,›.ò 	 ‰JˆC�Ø”jÒ ¤Z°´tÔ%<Ü˜eŸl™l›nÓ-�Ü˜%¤Ô&Ü'¨Ó.‘Ü˜E¤4Ô(¬J°u¼eÔ,DÜ'¨Ó.�ØˆF�3ŠKð	 ð ˆÜ	�FœDÔ	!Ø,2Ö3 q” Õ"Ò3Ð3Ü	�FœEÔ	"Ü°&Ö9¨Q”o aÕ(Ò9Ó:Ð:àˆùò	 4ùâ9s   Â?DÃ-DrR   Úmemoc                 óŠ  ‡— ‰€i Št        | «      }|‰v r‰|   S t        | t        «      r:i }|‰|<   | j                  «       D ]  \  }}t	        |‰«      |t	        |‰«      <   Œ  |S t        | t
        «      r+g }|‰|<   | D ]  }|j                  t	        |‰«      «       Œ |S t        | t        «      rt        ˆfd„| D «       «      S | S )zMDeep copy that passes through objects that can't be copied (like generators).c              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wr    )Ú_deep_copy_with_uncopyable)r†   Úitemr°   s     €r'   r‡   z-_deep_copy_with_uncopyable.<locals>.<genexpr>¯  s   øè ø€ ÒLÀÔ/°°d×;ÑLùs   ƒ)Úidr!   r,   rI   r³   r-   r¦   r¯   )rR   r°   Úobj_idrN   rT   rS   r´   s    `     r'   r³   r³   –  sÝ   ø€ à€|Øˆä�‹W€FØ��~Ø�F‰|Ðä�#”tÔØˆØˆˆV‰Ø—I‘I“Kò 	‰DˆAˆqÜ:TØ�4ó;ˆFÔ-¨a°Ó6Ò7ð	ð ˆÜ	�CœÔ	ØˆØˆˆV‰Øò 	BˆDØ�M‰MÔ4°T¸4Ó@ÕAð	BàˆÜ	�CœÔ	äÓLÈÔLÓLÐLàˆ
r)   c                 ó  — t        | «      }|j                  «       D ]n  \  }}|j                  d«      }d}d}||dœg}|}	|dd D ](  }
t        |	t         «      r|
|	vrt	        ||¬«      ‚|	|
   }	Œ* |d   |	vrt	        ||¬«      ‚||	|d   <   Œp |S )z)Build first representation of the config:r˜   zError parsing config overridesz*not a section value that can be overriddenr¢   Néÿÿÿÿ)ro   r¤   )r,   rI   Úsplitr!   r   )ra   r_   r:   r�   rO   ÚpathÚ	err_titlerw   rª   ÚnodeÚsubkeys              r'   rŽ   rŽ   ´  sÂ   € ô
 �&‹\€FØ—o‘oÓ'ò ‰
ˆˆUØ�y‰y˜‹~ˆØ4ˆ	Ø>ˆØ GÑ,Ð-ˆØˆØ˜3˜B�iò 	 ˆFä˜t¤TÔ*¨f¸DÑ.@ä+Ø iôð ð ˜‘<‰Dð	 ð �‰8˜4ÑÜ'¨s¸)ÔDÐDØˆˆT�"‰XŠð!ð" €Mr)   r    ),r#   Údataclassesr   rH   r   r   r   r   r   r	   r
   r   r   Ú_configr   Ú
_constantsr   r   r   Ú_errorsr   Úutilr   r¥   r   r   r   r/   r+   r   rƒ   r‰   r?   r‹   rt   r�   r”   r�   rf   rg   rh   Úintr³   rŽ   rC   r)   r'   ú<module>rÄ      s“  ðÛ Ý !÷
÷ 
õ 
õ ÷ñ õ
 +Ý Ý á˜Ó(€ð ô&ˆg�mÑ$ó &ó ð&òRò4÷iñ iðX7˜tó 7ð3˜#ð 3 #ó 3ð ,.ØòBà��c�‰NðBð �C˜˜c 3˜h™Ð'Ñ(ð	Bð
 ðBð 
ˆ#ˆsˆ(�^óBð ;?òØ˜3 ˜8‘nðØ37ðà	ˆ#ˆsˆ(�^óð& Øò à�s˜C�x‘.ð ð ð	 ð
 ð ð 
ˆ#ˆsˆ(�^ó ðF9
Ø��c�‰Nð9
ð ð9
ð ð	9
ð
 
ó9
ðxØ˜3  S¨# X¡Ð.Ñ/ðØ:>ðà	ˆ#ˆt�C˜�H‰~Ð
Ñóð*	˜T # t¨C°¨H¡~Ð"5Ñ6ð 	¸4ÀÀTÈ#ÈsÈ(Á^Ð@SÑ;Tó 	òñ* Cð ¨x¸¸SÀ#¸X¹Ñ/Gð ÐSVó ð<Ø��d˜3 ˜8‘nÐ$Ñ%ðà�C˜˜c 3˜h™Ð'Ñ(ðð 
ˆ#ˆt�C˜�H‰~Ð
Ñôr)   