ó
    EñiÕ;  ã                  óv  • % S SK Jr  S SKrS SKJrJrJr  S SKJr  S SK	J
r
JrJrJrJrJrJrJrJr  SSKJr  SSKJrJrJrJrJr  SS	KJr  SS
KJr  SSKJ r   SSK!J"r"J#r#  SSK$J%r%  SSK&J'r'  \(       a  S SK(J)r)   " S S\5      r* " S S\ \5      r+\,S:X  Ga  S SK-r-S SK.r.S SK/J0r0  S SK	J1r1JrJ2r2  SSK3J4r4  SSKJr  SSK5J+r+  SSK6J7r7  SSK8J9r9  SSK:J;r;  SSK<J=r=  \" 5       r\;" SSS S!9r:\=" S"S#S$5      r<\<R}                  S%S&S'5        S(\7" S)5      S*\<S+S,S-S..S/\:\9" S05      /	r?\0" \?5      r@/ S1QrA\+" \S29 rB0 rCS3\DS4'   \E" S55       GHZ  rF\A\F\G" \A5      -     rH\A GHA  rI\I\H:X  a  M  \.R”                  " S65        \-R–                  " S S75      S:  a  \R™                  \M" \@5      5        S8\-RZ                  " 5       S9-  S-   -  \C\H\I4'   \G" \C5      \G" \A5      S-
  :”  a(  \CR�                  \O" \CR¡                  5       5      S    5        \=" S:S;9r<\<R£                  S<5        \<R£                  S=5        \<R£                  S>5        \CR¥                  5        H+  u  u  rSrTrU\<R}                  \S\T\'" \US? \US@:  a  SAOSBSC95        M-     \BR­                  \4R®                  " \<5      5        GMD     GM]     SSS5        gg! , (       d  f       g= f)Dé    )ÚannotationsN)ÚEventÚRLockÚThread)ÚTracebackType)	ÚIOÚTYPE_CHECKINGÚAnyÚCallableÚListÚOptionalÚTextIOÚTypeÚcasté   )Úget_console)ÚConsoleÚConsoleRenderableÚGroupÚRenderableTypeÚ
RenderHook)ÚControl)Ú	FileProxy)ÚJupyterMixin)Ú
LiveRenderÚVerticalOverflowMethod)ÚScreen)ÚText)ÚSelfc                  óD   ^ • \ rS rSrSrSU 4S jjrSS jrSS jrSrU =r	$ )	Ú_RefreshThreadé   z3A thread that calls refresh() at regular intervals.c                óV   >• Xl         X l        [        5       U l        [        TU ]  SS9  g )NT)Údaemon)ÚliveÚrefresh_per_secondr   ÚdoneÚsuperÚ__init__)Úselfr%   r&   Ú	__class__s      €ÚF/home/mande/repo/quber/.venv/lib/python3.13/site-packages/rich/live.pyr)   Ú_RefreshThread.__init__   s'   ø€ ØŒ	Ø"4ÔÜ“GˆŒ	Ü‰Ñ ÐÒ%ó    c                ó8   • U R                   R                  5         g ©N)r'   Úset©r*   s    r,   ÚstopÚ_RefreshThread.stop   s   € Ø�	‰	�‰�r.   c                ó�  • U R                   R                  SU R                  -  5      (       dˆ  U R                  R                     U R                   R                  5       (       d  U R                  R                  5         S S S 5        U R                   R                  SU R                  -  5      (       d  M‡  g g ! , (       d  f       N?= f)Nr   )r'   Úwaitr&   r%   Ú_lockÚis_setÚrefreshr2   s    r,   ÚrunÚ_RefreshThread.run"   sy   € Ø—)‘)—.‘.  T×%<Ñ%<Ñ!<×=Ñ=Ø—‘—“Ø—y‘y×'Ñ'×)Ñ)Ø—I‘I×%Ñ%Ô'÷ !ð —)‘)—.‘.  T×%<Ñ%<Ñ!<×=Õ=ß •ús   Á:B7Â7
C)r'   r%   r&   )r%   z'Live'r&   ÚfloatÚreturnÚNone©r=   r>   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r)   r3   r:   Ú__static_attributes__Ú__classcell__)r+   s   @r,   r!   r!      s   ø† Ù=÷&ô÷(ò (r.   r!   c                  ó  • \ rS rSrSr SSSSSSSSSSS.	                     SS	 jjjr\SS
 j5       rSS jrSSS jjr	SS jr
SS jr        S S jrSS jrSS jr\SS j5       rSS.S!S jjrSS jr    S"S jrSrg)#ÚLiveé)   a½  Renders an auto-updating live display of any given renderable.

Args:
    renderable (RenderableType, optional): The renderable to live display. Defaults to displaying nothing.
    console (Console, optional): Optional Console instance. Defaults to an internal Console instance writing to stdout.
    screen (bool, optional): Enable alternate screen mode. Defaults to False.
    auto_refresh (bool, optional): Enable auto refresh. If disabled, you will need to call `refresh()` or `update()` with refresh flag. Defaults to True
    refresh_per_second (float, optional): Number of times per second to refresh the live display. Defaults to 4.
    transient (bool, optional): Clear the renderable on exit (has no effect when screen=True). Defaults to False.
    redirect_stdout (bool, optional): Enable redirection of stdout, so ``print`` may be used. Defaults to True.
    redirect_stderr (bool, optional): Enable redirection of stderr. Defaults to True.
    vertical_overflow (VerticalOverflowMethod, optional): How to handle renderable when it is too tall for the console. Defaults to "ellipsis".
    get_renderable (Callable[[], RenderableType], optional): Optional callable to get renderable. Defaults to None.
NFTé   Úellipsis)	ÚconsoleÚscreenÚauto_refreshr&   Ú	transientÚredirect_stdoutÚredirect_stderrÚvertical_overflowÚget_renderablec       	        ó€  • US:”  d   S5       eXl         Ub  UO	[        5       U l        X0l        SU l        Xpl        X€l        S U l        S U l        [        5       U l
        S U l        X@l        SU l        U(       a  SOUU l        S U l        XPl        X�l        X l        ['        U R)                  5       U	S9U l        SU l        g )Nr   zrefresh_per_second must be > 0FT)rR   )Ú_renderabler   rL   Ú_screenÚ_alt_screenÚ_redirect_stdoutÚ_redirect_stderrÚ_restore_stdoutÚ_restore_stderrr   r7   Ú
ipy_widgetrN   Ú_startedrO   Ú_refresh_threadr&   rR   Ú_get_renderabler   rS   Ú_live_renderÚ_nested)r*   Ú
renderablerL   rM   rN   r&   rO   rP   rQ   rR   rS   s              r,   r)   ÚLive.__init__9   s¾   € ð " AÓ%ÐGÐ'GÓGÐ%Ø%ÔØ")Ñ"5‘w¼;»=ˆŒØŒØ ˆÔà /ÔØ /ÔØ26ˆÔØ26ˆÔä“WˆŒ
Ø)-ˆŒØ(ÔØ#ˆŒÞ!'™¨YˆŒà9=ˆÔØ"4Ôà!2ÔØ-ÔÜ&Ø×ÑÓ!Ð5Fñ
ˆÔð ˆ�r.   c                ó   • U R                   $ )z'Check if live display has been started.)r]   r2   s    r,   Ú
is_startedÚLive.is_startedb   s   € ð �}‰}Ðr.   c                ój   • U R                   b  U R                  5       OU R                  nU=(       d    S$ )NÚ )r_   rU   )r*   rb   s     r,   rS   ÚLive.get_renderableg   s9   € ð ×#Ñ#Ñ/ð × Ñ Ô"à×!Ñ!ð 	ð
 ×˜RÐr.   c                óÜ  • U R                      U R                  (       a
   SSS5        gSU l        U R                  R                  U 5      (       d  SU l         SSS5        gU R
                  (       a   U R                  R                  S5      U l        U R                  R                  S5        U R                  5         U R                  R                  U 5        U(       a   U R                  5         U R                  (       a4  [        X R                   5      U l        U R"                  R%                  5         SSS5        g! [         a    U R                  5         e f = f! , (       d  f       g= f)zdStart live rendering display.

Args:
    refresh (bool, optional): Also refresh. Defaults to False.
NTF)r7   r]   rL   Úset_livera   rV   Úset_alt_screenrW   Úshow_cursorÚ_enable_redirect_ioÚpush_render_hookr9   Ú	Exceptionr3   rN   r!   r&   r^   Ústart)r*   r9   s     r,   rq   Ú
Live.starto   s
  € ð �Z‹ZØ�}�}Ø÷ ˆZð !ˆDŒMà—<‘<×(Ñ(¨×.Ñ.Ø#�”Ø÷ ˆZð �|�|Ø#'§<¡<×#>Ñ#>¸tÓ#D�Ô Ø�L‰L×$Ñ$ UÔ+Ø×$Ñ$Ô&Ø�L‰L×)Ñ)¨$Ô/ÞðØ—L‘L”Nð × × Ü'5°d×<SÑ<SÓ'T�Ô$Ø×$Ñ$×*Ñ*Ô,÷5 ˆZøô" !ó ð
 —I‘I”KØðú÷# �Zús0   �E©/EÁ!A>EÃ D>Ã0AEÄ>EÅEÅ
E+c                óH  • U R                      U R                  (       d
   SSS5        gSU l        U R                  R                  5         U R                  (       a@  U R
                  (       d%  U R                  R                  U R                  5         SSS5        gU R                  (       a.  U R                  b!  U R                  R                  5         SU l	        SU l        U R                      U R                  (       d+  U R                  R                  (       d  U R                  5         U R                  5         U R                  R!                  5         U R                  (       dP  U R                  R"                  (       a5  U R$                  R&                  (       a  U R                  R)                  5         U R                  R+                  S5        U R                  (       a  U R                  R-                  S5        U R
                  (       aD  U R                  (       d3  U R                  R/                  U R$                  R1                  5       5        U R2                  b+  U R
                  (       a  U R2                  R5                  5         SSS5        SSS5        g! U R                  5         U R                  R!                  5         U R                  (       dP  U R                  R"                  (       a5  U R$                  R&                  (       a  U R                  R)                  5         U R                  R+                  S5        U R                  (       a  U R                  R-                  S5        U R
                  (       aD  U R                  (       d3  U R                  R/                  U R$                  R1                  5       5        U R2                  b-  U R
                  (       a  U R2                  R5                  5         f f f = f! , (       d  f       GN~= f! , (       d  f       g= f)zStop live rendering display.NFÚvisibleT)r7   r]   rL   Ú
clear_livera   rO   Úprintrb   rN   r^   r3   rR   rW   Ú
is_jupyterr9   Ú_disable_redirect_ioÚpop_render_hookÚis_terminalr`   Úlast_render_heightÚlinerm   rl   ÚcontrolÚrestore_cursorr\   Úcloser2   s    r,   r3   Ú	Live.stop‘   sˆ  € à�Z‹ZØ—=—=Ø÷ ˆZð "ˆDŒMØ�L‰L×#Ñ#Ô%Ø�|�|Ø—~—~Ø—L‘L×&Ñ& t§¡Ô7Ø÷ ˆZð × ×  T×%9Ñ%9Ñ%EØ×$Ñ$×)Ñ)Ô+Ø'+�Ô$à%.ˆDÔ"Ø—“ð0Ø×+×+°D·L±L×4K×4KØŸ™œà×-Ñ-Ô/Ø—L‘L×0Ñ0Ô2à ×,×,Ø ŸL™L×4×4Ø ×-Ñ-×@×@àŸ™×)Ñ)Ô+Ø—L‘L×,Ñ,¨TÔ2Ø×'×'ØŸ™×3Ñ3°EÔ:Ø—~—~¨d×.>×.>ØŸ™×,Ñ,¨T×->Ñ->×-MÑ-MÓ-OÔPØ—‘Ñ2°t·~·~ØŸ™×-Ñ-Ô/÷' ÷ ˆZøð( ×-Ñ-Ô/Ø—L‘L×0Ñ0Ô2à ×,×,Ø ŸL™L×4×4Ø ×-Ñ-×@×@àŸ™×)Ñ)Ô+Ø—L‘L×,Ñ,¨TÔ2Ø×'×'ØŸ™×3Ñ3°EÔ:Ø—~—~¨d×.>×.>ØŸ™×,Ñ,¨T×->Ñ->×-MÑ-MÓ-OÔPØ—‘Ñ2°t·~·~ØŸ™×-Ñ-Õ/ð 8FÐ2ú÷% –ú÷ �ZúsJ   �P©A)PÂAPÃ-PÃ/<JÄ+EPÊ
PÊE#O>Ï>PÐ
P	ÐPÐ
P!c                ó<   • U R                  U R                  S LS9  U $ )N©r9   )rq   rU   r2   s    r,   Ú	__enter__ÚLive.__enter__·   s    € Ø�
‰
˜4×+Ñ+°4Ð7ˆ
Ñ8Øˆr.   c                ó$   • U R                  5         g r0   )r3   )r*   Úexc_typeÚexc_valÚexc_tbs       r,   Ú__exit__ÚLive.__exit__»   s   € ð 	�	‰	�r.   c                óx  • U R                   R                  (       d  U R                   R                  (       Ga  U R                  (       ao  [	        [
        R                  [        5      (       dL  [
        R                  U l        [        S[        U R                   [
        R                  5      5      [
        l        U R                  (       aq  [	        [
        R                  [        5      (       dM  [
        R                  U l        [        S[        U R                   [
        R                  5      5      [
        l        gggg)z&Enable redirecting of stdout / stderr.r   N)rL   rz   rw   rX   Ú
isinstanceÚsysÚstdoutr   rZ   r   rY   Ústderrr[   r2   s    r,   rn   ÚLive._enable_redirect_ioÃ   s°   € à�<‰<×#×# t§|¡|×'>×'>Ð'>Ø×$×$¬Z¼¿
¹
ÄI×-NÑ-NÜ'*§z¡z�Ô$Ü! (¬I°d·l±lÄCÇJÁJÓ,OÓP””
Ø×$×$¬Z¼¿
¹
ÄI×-NÑ-NÜ'*§z¡z�Ô$Ü! (¬I°d·l±lÄCÇJÁJÓ,OÓP”•
ð .OÐ$ð	 (?r.   c                óâ   • U R                   (       a&  [        SU R                   5      [        l        SU l         U R                  (       a'  [        SU R                  5      [        l        SU l        gg)z'Disable redirecting of stdout / stderr.r   N)rZ   r   r�   rŽ   r[   r�   r2   s    r,   rx   ÚLive._disable_redirect_ioÍ   sQ   € à××Ü˜h¨×(<Ñ(<Ó=ŒCŒJØ#'ˆDÔ Ø××Ü˜h¨×(<Ñ(<Ó=ŒCŒJØ#'ˆDÕ ð  r.   c                óþ   • U R                   R                  nU(       a.  XS   L a'  [        U Vs/ s H  o"R                  5       PM     sn6 nOU R                  5       nU R                  (       a  [        U5      $ U$ s  snf )z_Get the renderable that is being displayed

Returns:
    RenderableType: Displayed renderable.
r   )rL   Ú_live_stackr   rS   rW   r   )r*   Ú
live_stackr%   rb   s       r,   rb   ÚLive.renderableÖ   sk   € ð —\‘\×-Ñ-ˆ
æ˜$¨Q¡-Ò/äÁ:Ó NÂ:¸4×!4Ñ!4Ö!6Á:Ñ NÐO‰Jà×,Ñ,Ó.ˆJØ%)×%5×%5Œv�jÓ!ÐE¸:ÐEùò !Os   ®A:r‚   c               óê   • [        U[        5      (       a  U R                  R                  U5      nU R                     Xl        U(       a  U R                  5         SSS5        g! , (       d  f       g= f)z³Update the renderable that is being displayed

Args:
    renderable (RenderableType): New renderable to use.
    refresh (bool, optional): Refresh the display. Defaults to False.
N)rŒ   ÚstrrL   Ú
render_strr7   rU   r9   )r*   rb   r9   s      r,   ÚupdateÚLive.updateæ   sH   € ô �j¤#×&Ñ&ØŸ™×0Ñ0°Ó<ˆJØ�Z‹ZØ)ÔÞØ—‘”÷ �ZŽZús   ½A$Á$
A2c                óø  • U R                      U R                  R                  U R                  5        U R                  (       aL  U R
                  R                  (       a'  U R
                  R                  S   R                  5          SSS5        gU R
                  R                  (       a–   SSK	J
n  SSKJn  U R                  c  U" 5       U l        U" U R                  5        U R                     U R                  R                  SS9  U R
                  R                  U R                  R                  5        SSS5        OÉU R
                  R&                  (       aT  U R
                  R(                  (       d9  U R
                     U R
                  R                  [+        5       5        SSS5        OZU R,                  (       dI  U R.                  (       d8  U R
                     U R
                  R                  [+        5       5        SSS5        SSS5        g! , (       d  f       N= f! [          a    SSKnUR%                  S5         N;f = f! , (       d  f       NM= f! , (       d  f       N^= f! , (       d  f       g= f)z&Update the display of the Live Render.r   N)Údisplay)ÚOutputT)r6   z(install "ipywidgets" for Jupyter support)r7   r`   Úset_renderablerb   ra   rL   r”   r9   rw   ÚIPython.displayr�   Ú
ipywidgetsrž   r\   Úclear_outputrv   ÚImportErrorÚwarningsÚwarnrz   Úis_dumb_terminalr   r]   rO   )r*   r�   rž   r¤   s       r,   r9   ÚLive.refreshô   sŒ  € à�Z‹ZØ×Ñ×,Ñ,¨T¯_©_Ô=Ø�|�|Ø—<‘<×+×+Ø—L‘L×,Ñ,¨QÑ/×7Ñ7Ô9Ø÷ ˆZð �|‰|×&×&ðIÝ7Ý1ð —‘Ñ.Ù*0«(˜œÙ §¡Ô0àŸ›ØŸ™×4Ñ4¸$Ð4Ñ?ØŸ™×*Ñ*¨4×+<Ñ+<×+GÑ+GÔH÷ )˜ð —‘×)×)°$·,±,×2O×2OØ—\“\Ø—L‘L×&Ñ&¤w£yÔ1÷ "�\ð —M—M¨$¯.¯.à—\“\Ø—L‘L×&Ñ&¤w£yÔ1÷ "÷; ˆZ÷( )�ûô #ó NÛ#à—M‘MÐ"LÖMðNú÷ "•\ú÷
 "•\ú÷; �Zús€   �A:I+ÂI+Â,H$Â87I+Ã/A	HÄ8AI+Æ$I	Æ'7I+Ç$IÈI+È
H!	ÈI+È$IÉI+ÉIÉI+É	
I	ÉI+É
I(	É$I+É+
I9c                óÊ  • U R                   U R                  l         U R                  R                  (       ah  U R                     U R
                  (       a  [        R                  " 5       OU R                  R                  5       nU/UQU R                  PnSSS5        U$ U R                  (       d!  U R                  (       d  / UQU R                  PnU$ ! , (       d  f       U$ = f)z;Process renderables to restore cursor and display progress.N)rR   r`   rL   Úis_interactiver7   rW   r   ÚhomeÚposition_cursorr]   rO   )r*   ÚrenderablesÚresets      r,   Úprocess_renderablesÚLive.process_renderables  sº   € ð /3×.DÑ.Dˆ×ÑÔ+Ø�<‰<×&×&à—“ð ×'×'ô —L’L”Nà×*Ñ*×:Ñ:Ó<ð ð
  %ÐF {ÐF°D×4EÑ4EÐF�÷ ð Ðð	 —— d§n§nà;˜KÐ;¨×):Ñ):Ð;ˆKàÐ÷ ”ð Ðús   ÁACÃ
C")rW   r_   r`   r7   ra   rY   rX   r^   rU   r[   rZ   rV   r]   rN   rL   r\   r&   rO   rR   r0   )rb   zOptional[RenderableType]rL   zOptional[Console]rM   ÚboolrN   r°   r&   r<   rO   r°   rP   r°   rQ   r°   rR   r   rS   z&Optional[Callable[[], RenderableType]]r=   r>   )r=   r°   )r=   r   )F)r9   r°   r=   r>   r?   )r=   r   )r†   zOptional[Type[BaseException]]r‡   zOptional[BaseException]rˆ   zOptional[TracebackType]r=   r>   )rb   r   r9   r°   r=   r>   )r¬   úList[ConsoleRenderable]r=   r±   )r@   rA   rB   rC   rD   r)   Úpropertyre   rS   rq   r3   rƒ   r‰   rn   rx   rb   rš   r9   r®   rE   © r.   r,   rH   rH   )   s=  † ñð" 04ð'ð &*ØØ!Ø$%ØØ $Ø $Ø4>ØAEñ'à,ð'ð #ð	'ð
 ð'ð ð'ð "ð'ð ð'ð ð'ð ð'ð 2ð'ð ?ð'ð 
ö'ðR óó ðô ö -ôD$0ôLðà/ðð )ðð (ð	ð
 
ôôQô(ð óFó ðFð EJ÷ ô 2ðDØ2ðà	 ÷r.   rH   Ú__main__)Úcycle)ÚDictr   ÚTuple)ÚAlign)r   )rH   )ÚPanel)ÚRule)ÚSyntax)ÚTablea~  def loop_last(values: Iterable[T]) -> Iterable[Tuple[bool, T]]:
    """Iterate and generate a tuple with a flag for last value."""
    iter_values = iter(values)
    try:
        previous_value = next(iter_values)
    except StopIteration:
        return
    for value in iter_values:
        yield False, previous_value
        previous_value = value
    yield True, previous_valueÚpythonT)Úline_numbersÚfooÚbarÚbazÚ1Ú2Ú3z�You can make the terminal shorter and taller to see the live table hideText may be printed while the progress bars are rendering.z(In fact, [i]any[/i] renderable will workzSuch as [magenta]tables[/]...zPretty printed structures...ÚexamplezPretty printed)ÚtypeÚtextz	Syntax...zGive it a try!)ÚSGDÚMYRÚEURÚUSDÚAUDÚJPYÚCNHÚHKDÚCADÚINRÚDKKÚGBPÚRUBÚNZDÚMXNÚIDRÚTWDÚTHBÚVND)rL   zDict[Tuple[str, str], float]Úexchange_rate_dictéd   gš™™™™™Ù?é
   éÈ   i@  zExchange Rates)ÚtitlezSource CurrencyzDestination CurrencyzExchange Ratez.4fg      ð?ÚredÚgreen)Ústyle)XÚ
__future__r   r�   Ú	threadingr   r   r   Útypesr   Útypingr   r	   r
   r   r   r   r   r   r   rh   r   rL   r   r   r   r   r   r}   r   Ú
file_proxyr   Újupyterr   Úlive_renderr   r   rM   r   rÇ   r   Útyping_extensionsr   r!   rH   r@   ÚrandomÚtimeÚ	itertoolsrµ   r¶   r·   Úalignr¸   r%   Úpanelr¹   Úrulerº   Úsyntaxr»   Útabler¼   Úadd_rowÚprogress_renderablesÚexamplesÚ	exchangesÚ
live_tablerÛ   Ú__annotations__ÚrangeÚindexÚlenÚselect_exchangeÚexchangeÚsleepÚrandintÚlogÚnextÚpopÚlistÚkeysÚ
add_columnÚitemsÚsourceÚdestÚexchange_raterš   Úcenterr³   r.   r,   Ú<module>r     s¦  ðÞ "ã 
ß *Ñ *Ý ß W× WÕ Wå ß RÕ RÝ Ý !Ý !ß ;Ý Ý æå&ô(�Vô (ô&@ˆ<˜ô @ðF ˆzÔÛÛÝß(Ñ(åÝ Ý"ÝÝÝÝá‹i€Gáð
	"ð 	Øñ€Fñ  �%˜ Ó&€EØ	‡M�M�#�s˜CÔ ð	EáÐ8Ó9Ø'ØØ&ØÐ$4Ñ5ØØÙÐÓðÐñ Ð)Ó*€Hò€Iñ* 
�gÒ	 *Ø;=ÐÐ8Ó=á˜3—ZˆEØ'¨±°I³Ñ(>Ñ?ˆOä%�Ø˜Ó.ÙØ—
’
˜3”Ø—>’> ! RÓ(¨1Ó,Ø—K‘K¡ X£Ô/ØBEØ—]’]“_ sÑ*¨aÑ/ñCÐ" O°XÐ#>Ñ?ñ Ð)Ó*©S°«^¸aÑ-?Ó?Ø&×*Ñ*©4Ð0B×0GÑ0GÓ0IÓ+JÈ1Ñ+MÔNÙÐ$4Ñ5�à× Ñ Ð!2Ô3Ø× Ñ Ð!7Ô8Ø× Ñ  Ô1à5G×5MÑ5MÖ5OÑ1‘N�V˜T MØ—M‘MØØÙØ,¨SÐ1Ø+8¸3Ó+>¡%ÀGñöñ 6Pð ×!Ñ! %§,¢,¨uÓ"5×6ô7 &ñ  ÷ 
Ð	ðO ÷N 
Õ	ús   Ä1E/J*Ê*
J8