§
    Á)Âj×)  ã            	       ó<  — d Z ddlZddlmc mZ ddlZddlZddl	m
Z
 ddlmZ ddlZddlmZ ddlmZ ddlmZ ddlmZmZ dd	lmZ  G d
„ dej        ¦  «        Zd„ Zdddddœd„Zej                             dg d¢¦  «        d„ ¦   «         Z d„ Z!d„ Z"d„ Z#e$dk    r÷ddl%Z%i Z&dD ]]Z'ej(         )                    ¦   «         5 Z* e ee'e*¦  «        ¦  «        \  Z+Z,ddd¦  «         n# 1 swxY w Y   de+e,dœe& e-e'¦  «        <   Œ^ej(         )                    ¦   «         5 Z* e ede*dd¬¦  «        ¦  «        \  Z+Z,ddd¦  «         n# 1 swxY w Y   de+e,dœe&d<    e
e%j.        d         ¦  «         /                     ej0        e&d ¬!¦  «        d"z   ¦  «         d#„ Z1d$„ Z2d%„ Z3dS )&z�Deterministic application backpressure at the real Starlette ASGI boundary.
No socket/ESP32 equivalence is assumed; the one-slot queue is an explicit model.
é    N)ÚPath)ÚSimpleNamespace)Ú	WebSocket)Úapp)Úspeech)ÚSpeechManagerÚCHUNK_BYTES)ÚSpeechTracec                   ó.   ‡ — e Zd Zˆ fd„Zd„ Zˆ fd„Zˆ xZS )ÚVirtualLoopc                 óV   •— d| _         t          ¦   «                              ¦   «          d S )Ng      Y@)ÚnowÚsuperÚ__init__©ÚselfÚ	__class__s    €úa/home/lighthouse/esp32-dev/.cache/wifi-fallback-speech-ab-0.5.1/server/tests/test_speech_trace.pyr   zVirtualLoop.__init__   s&   ø€ ØˆŒÝ‰Œ×ÒÑÔÐÐÐó    c                 ó   — | j         S ©N)r   )r   s    r   ÚtimezVirtualLoop.time   s	   € ØŒxˆr   c                 ó¸   •— | j         s1| j        r*t          | j        | j        d         j        ¦  «        | _        t          ¦   «                              ¦   «          d S )Nr   )Ú_readyÚ
_scheduledÚmaxr   Ú_whenr   Ú	_run_oncer   s    €r   r   zVirtualLoop._run_once   sQ   ø€ ð Œ{ð 	?˜tœð 	?Ý˜4œ8 T¤_°QÔ%7Ô%=Ñ>Ô>ˆDŒHÝ‰Œ×ÒÑÔÐÐÐr   )Ú__name__Ú
__module__Ú__qualname__r   r   r   Ú__classcell__)r   s   @r   r   r      s`   ø€ € € € € ðð ð ð ð ðð ð ðð ð ð ð ð ð ð ð r   r   c                 ó¤   — t          ¦   «         }	 |                     | ¦  «        |                     ¦   «          S # |                     ¦   «          w xY wr   )r   Úrun_until_completeÚclose)ÚcoroÚloops     r   Úvirtual_runr(   "   sB   € Ý‰=Œ=€DðØ×&Ò& tÑ,Ô,à�
Š
‰Œˆˆøˆ�
Š
‰Œˆˆøøøs	   �9 ¹Aé   TF)ÚframesÚcompetitorsÚburstÚproduction_cyclec          	   ƒ   ó²  ‡ ‡‡‡‡‡‡K  — t          j        ¦   «         Šg g c}Št          d‰j        |j        ¬¦  «        }|                     t          d|¦  «         |                     t          d|¦  «         t          j        d¬¦  «        Šd„ }ˆfd„}	t          dd	i||	¦  «        }
|
 
                    ¦   «         ƒ d {V —† t          j        d
dd|
dh¬¦  «        Šˆfd„}t          t          |¬¦  «        d d d„ t          j        d„ d„ ¦  «        }ˆˆ ˆˆˆfd„}ˆfd„}ˆfd„}t          j         |¦   «         ¦  «        }|                     ‰dd¦  «         |r<t          j         |dd¦  «        ¦  «        t          j         |dd¦  «        ¦  «        gng }|r/|                     t          j         |¦   «         ¦  «        ¦  «         t          j        g t%          |j        ¦  «        ¢|¢R Ž ƒ d {V —† ‰                     ¦   «         ƒ d {V —† |                     ¦   «          t          j        |d¬¦  «        ƒ d {V —† |                     ¦   «         ƒ d {V —† |‰fS )NT©ÚclockÚsinkÚspeech_traceé   )Úmaxsizec               “   ó   K  — ddiS )NÚtypezwebsocket.connect© r7   r   r   Úreceivezexperiment.<locals>.receive1   s   è è € ØÐ+Ð,Ð,r   c              “   óŽ   •K  — | d         dk    r5‰                      t          j        | d         ¦  «        ¦  «        ƒ d {V —† d S d S )Nr6   zwebsocket.sendÚtext)ÚputÚjsonÚloads)ÚmessageÚqueues    €r   Ú	asgi_sendzexperiment.<locals>.asgi_send3   sW   øè è € Ø�6Œ?Ð.Ò.Ð.Ø—)’)�DœJ w¨v¤Ñ7Ô7Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8ð /Ð.r   r6   Ú	websocketzdiagnostic-deviceÚtestz0.5.1Úspeech_playback)Úcapabilitiesc               —   ó(   •K  — dt           dz  ‰z  z  S )Ns     é   )r	   )Ú_r*   s    €r   Ú
synthesizezexperiment.<locals>.synthesize9   s   øè è € Ø�+¨Ñ*¨VÑ3Ñ4Ð4r   )rH   c                 ó   — dS )NÚserverr7   ©rG   s    r   ú<lambda>zexperiment.<locals>.<lambda><   s   €  h€ r   c                 ó   — dS )NTr7   rK   s    r   rL   zexperiment.<locals>.<lambda><   s   € ÐRV€ r   c                 ó   — dS )NFr7   rK   s    r   rL   zexperiment.<locals>.<lambda><   s   € Ðbg€ r   c               “   ój  •K  — 	 ‰                      ¦   «         ƒ d {V —†} ‰                     ‰                     ¦   «         | d         |                       d¦  «        f¦  «         ‰r|                       d¦  «        dk    rdndn‰}t          j        |dz  ¦  «        ƒ d {V —† ‰                     ¦   «          Œ°)NTr6   Úsequencer3   éÐ  r   éè  )ÚgetÚappendr   ÚasyncioÚsleepÚ	task_done)ÚpayloadÚdelayr,   Údelay_msr'   r?   Úreceiveds     €€€€€r   Úconsumezexperiment.<locals>.consume=   sÀ   øè è € ð	Ø!ŸIšI™KœKÐ'Ð'Ð'Ð'Ð'Ð'ˆGØ�OŠO˜TŸYšY™[œ[¨'°&¬/¸7¿;º;ÀzÑ;RÔ;RÐSÑTÔTÐTàEJÐX˜WŸ[š[¨Ñ4Ô4¸Ò9Ð9�T�T¸q¸qÐPXˆEÝ”- ¨¡Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ø�OŠOÑÔÐð	r   c              “   óž   •K  — t          d¦  «        D ]9}t          j        |¦  «        ƒ d {V —† t          j        ‰d| i¦  «        ƒ d {V —† Œ:d S )Né   r6   )ÚrangerU   rV   ÚgatewayÚsend_to_device)ÚkindÚintervalrG   Údevices      €r   Úperiodiczexperiment.<locals>.periodicE   sx   øè è € Ý�q‘”ð 	Að 	AˆAÝ”- Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ÝÔ(¨°&¸$°Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@ð	Að 	Ar   c               “   óØ   •K  — t          d¦  «        D ]V} t          j        ‰ddi¦  «        ƒ d {V —† t          j        ‰ddi¦  «        ƒ d {V —† t          j        d¦  «        ƒ d {V —† ŒWd S )Né   r6   Úserver_snapshotÚagent_staterF   )r_   r`   ra   rU   rV   )rG   rd   s    €r   Úsystem_monitor_cyclez(experiment.<locals>.system_monitor_cycleI   s    øè è € å�q‘”ð 	#ð 	#ˆAÝÔ(¨°&Ð:KÐ1LÑMÔMÐMÐMÐMÐMÐMÐMÐMÝÔ(¨°&¸-Ð1HÑIÔIÐIÐIÐIÐIÐIÐIÐIÝ”- Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"ð	#ð 	#r   ÚscreenzFixed public test.rh   g{®GázÄ?ri   g¸…ëQ¸Î?©Úreturn_exceptions)rU   Úget_running_loopr
   r   rT   Úsetattrr`   Úspeech_moduleÚQueuer   ÚacceptÚDevicer   r   ra   Úcreate_taskÚstartÚgatherÚlistÚtasksÚjoinÚcancelr%   )rZ   Úmonkeypatchr*   r+   r,   r-   ÚrecordsÚtracer8   r@   ÚwsrH   Úmanagerr\   re   rj   ÚconsumerÚ
backgroundrd   r'   r?   r[   s   ` ` `             @@@@r   Ú
experimentr‚   *   s  øøøøøøøè è € ÝÔ#Ñ%Ô%€DØ˜BÐ€GˆXÝ˜ D¤I°G´NÐCÑCÔC€EØ×Ò� °Ñ7Ô7Ð7Ø×Ò� ~°uÑ=Ô=Ð=ÝŒM !Ð$Ñ$Ô$€Eð-ð -ð -ð9ð 9ð 9ð 9ð 9õ 
�F˜KÐ(¨'°9Ñ	=Ô	=€BØ
�)Š)‰+Œ+ÐÐÐÐÐÐÐÝŒ^Ð/°¸À"ÐTeÐSfÐgÑgÔg€Fð5ð 5ð 5ð 5ð 5å�O°zÐBÑBÔBÀDÈ$Ø.Ð.µÔ0FÈÈÐXgÐXgñiô i€Gðð ð ð ð ð ð ð ð ðAð Að Að Að Að#ð #ð #ð #ð #õ Ô" 7 7¡9¤9Ñ-Ô-€HØ‡M‚M�&˜(Ð$8Ñ9Ô9Ð9àITð]•7Ô& x xÐ0AÀ3Ñ'GÔ'GÑHÔHÝÔ& x x°¸sÑ'CÔ'CÑDÔDðFð FØZ\ð àð GØ×Ò�'Ô-Ð.BÐ.BÑ.DÔ.DÑEÔEÑFÔFÐFÝ
Œ.Ð
;�$˜wœ}Ñ-Ô-Ð
;°
Ð
;Ð
;Ð
;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ø
�*Š*‰,Œ,ÐÐÐÐÐÐÐØ‡O‚OÑÔÐÝ
Œ.˜°TÐ
:Ñ
:Ô
:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ø
�-Š-‰/Œ/ÐÐÐÐÐÐÐØ�HÐÐr   rY   )r   éd   i,  rR   rQ   c           	      óô  — t          t          | |¦  «        ¦  «        \  }}d„ |D ¦   «         }d„ |D ¦   «         }d„ |D ¦   «         }d}t          |¦  «        }t          |¦  «        }	||	k    }
|
�s"t	          j        d|
fd||	f¦  «        t	          j        |¦  «        dt          j        ¦   «         v st	          j	        t          ¦  «        rt	          j        t          ¦  «        nddt          j        ¦   «         v st	          j	        t          ¦  «        rt	          j        t          ¦  «        ndt	          j        |¦  «        t	          j        |¦  «        t	          j        |	¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}
x}x}}	d„ |D ¦   «         }t          |¦  «        }|s•ddt          j        ¦   «         v st	          j	        t          ¦  «        rt	          j        t          ¦  «        ndt	          j        |¦  «        t	          j        |¦  «        dœz  }t          t	          j        |¦  «        ¦  «        ‚d x}}d„ |D ¦   «         }d}t          |¦  «        }t          |¦  «        }	||	k    }
|
�s"t	          j        d|
fd||	f¦  «        t	          j        |¦  «        dt          j        ¦   «         v st	          j	        t          ¦  «        rt	          j        t          ¦  «        nddt          j        ¦   «         v st	          j	        t          ¦  «        rt	          j        t          ¦  «        ndt	          j        |¦  «        t	          j        |¦  «        t	          j        |	¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}
x}x}}	d„ |D ¦   «         }t          |¦  «        }d}||k    }|sÇt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j	        t          ¦  «        rt	          j        t          ¦  «        ndt	          j        |¦  «        t	          j        |¦  «        t	          j        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}x}}d„ t          ||dd …         ¦  «        D ¦   «         }t          |¦  «        }|s•ddt          j        ¦   «         v st	          j	        t          ¦  «        rt	          j        t          ¦  «        ndt	          j        |¦  «        t	          j        |¦  «        dœz  }t          t	          j        |¦  «        ¦  «        ‚d x}}| dk    rôd„ |D ¦   «         }t          |¦  «        }d}||k    }|sÇt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j	        t          ¦  «        rt	          j        t          ¦  «        ndt	          j        |¦  «        t	          j        |¦  «        t	          j        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}x}}| dk    �rèd„ |D ¦   «         }t          |¦  «        }d}||k    }|sÇt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j	        t          ¦  «        rt	          j        t          ¦  «        ndt	          j        |¦  «        t	          j        |¦  «        t	          j        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}x}}d „ |D ¦   «         }t          |¦  «        }d}||k    }|sÇt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j	        t          ¦  «        rt	          j        t          ¦  «        ndt	          j        |¦  «        t	          j        |¦  «        t	          j        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}x}}d!„ |D ¦   «         }g }t!          |¦  «        }d}||k    }|}|r|d         d"         }|}|�sVt	          j        d|fd#||f¦  «        d$t          j        ¦   «         v st	          j	        t           ¦  «        rt	          j        t           ¦  «        nd$d%t          j        ¦   «         v st	          j	        |¦  «        rt	          j        |¦  «        nd%t	          j        |¦  «        t	          j        |¦  «        d&œz  }d'd(|iz  }|                     |¦  «         |r.d)d*t	          j        |¦  «        iz  }|                     |¦  «         t	          j        |d¦  «        i z  }d+d,|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}x}x}x}}d S )-Nc                 ó*   — g | ]}|d          dk    ¯|‘ŒS )ÚeventÚsendr7   ©Ú.0Úrs     r   ú
<listcomp>zDtest_continuous_speech_with_constrained_receiver.<locals>.<listcomp>`   s&   € Ð8Ð8Ð8�1 1 W¤:°Ò#7Ð#7ˆQÐ#7Ð#7Ð#7r   c                 ó*   — g | ]}|d          dk    ¯|‘ŒS ©Úmessage_typeÚspeech_chunkr7   rˆ   s     r   r‹   zDtest_continuous_speech_with_constrained_receiver.<locals>.<listcomp>a   s'   € ÐFÐFÐF�A ! NÔ"3°~Ò"EÐ"EˆaÐ"EÐ"EÐ"Er   c                 ó   — g | ]
}|d          ‘ŒS )rP   r7   rˆ   s     r   r‹   zDtest_continuous_speech_with_constrained_receiver.<locals>.<listcomp>b   s   € Ð*Ð*Ð*˜aˆAˆjŒMÐ*Ð*Ð*r   r)   ©ú==)zP%(py1)s == %(py10)s
{%(py10)s = %(py3)s(%(py8)s
{%(py8)s = %(py4)s(%(py6)s)
})
}rw   r_   )Úpy1Úpy3Úpy4Úpy6Úpy8Úpy10zassert %(py12)sÚpy12c              3   ó*   K  — | ]}|d          du V — ŒdS )ÚerrorNr7   rˆ   s     r   ú	<genexpr>zCtest_continuous_speech_with_constrained_receiver.<locals>.<genexpr>c   s+   è è € Ð1Ð1 aˆq�Œz˜TÐ!Ð1Ð1Ð1Ð1Ð1Ð1r   ú,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}Úall©Úpy0Úpy2r•   c                 ó&   — g | ]\  }}}|d k    ¯|‘ŒS )r�   r7   )r‰   rG   ÚtÚss       r   r‹   zDtest_continuous_speech_with_constrained_receiver.<locals>.<listcomp>d   s(   € Ð=Ð=Ð=‘'�!�Q˜¨¨nÒ)<Ð)<ˆAÐ)<Ð)<Ð)<r   c              3   ó*   K  — | ]\  }}}|d k    V — ŒdS ©Ú
speech_endNr7   ©r‰   rG   r£   s      r   rœ   zCtest_continuous_speech_with_constrained_receiver.<locals>.<genexpr>e   ó-   è è € Ð9Ð9¡W Q¨¨1ˆq�LÒ Ð9Ð9Ð9Ð9Ð9Ð9r   r3   ©z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py7)sÚsum©r    r¡   r•   Úpy7úassert %(py9)sÚpy9c              3   óF   K  — | ]\  }}|d          |d         z
  dk    V — ŒdS ©Úsend_attempt_msÚsend_complete_msgZd;ßÿC@Nr7   ©r‰   ÚaÚbs      r   rœ   zCtest_continuous_speech_with_constrained_receiver.<locals>.<genexpr>f   sP   è è € ð 4ð 4Ù�1�að Ð"Ô# aÐ(:Ô&;Ñ;¸vÒEð 4ð 4ð 4ð 4ð 4ð 4r   r   c              3   ó&   K  — | ]}|d          V — ŒdS ©Údevice_lock_wait_msNr7   rˆ   s     r   rœ   zCtest_continuous_speech_with_constrained_receiver.<locals>.<genexpr>i   s(   è è € Ð;Ð;°�1Ð*Ô+Ð;Ð;Ð;Ð;Ð;Ð;r   r   rR   c              3   ó&   K  — | ]}|d          V — ŒdS r¸   r7   rˆ   s     r   rœ   zCtest_continuous_speech_with_constrained_receiver.<locals>.<genexpr>k   s(   è è € Ð<Ð<°�1Ð*Ô+Ð<Ð<Ð<Ð<Ð<Ð<r   ©ú>©z/%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} > %(py7)sc              3   ó>   K  — | ]}|d          dk    ¯|d         V — ŒdS )rŽ   rh   r¹   Nr7   rˆ   s     r   rœ   zCtest_continuous_speech_with_constrained_receiver.<locals>.<genexpr>l   s8   è è € ÐeÐe°¸aÀÔ>OÐSdÒ>dÐ>d�1Ð*Ô+Ð>dÐ>dÐ>dÐ>dÐeÐer   c                 ó*   — g | ]}|d          dk    ¯|‘ŒS )r†   Úsummaryr7   rˆ   s     r   r‹   zDtest_continuous_speech_with_constrained_receiver.<locals>.<listcomp>n   s&   € Ð?Ð?Ð?�q q¨¤z°YÒ'>Ð'>�Ð'>Ð'>Ð'>r   Úspeech_end_sent)z0%(py5)s
{%(py5)s = %(py2)s(%(py3)s)
} == %(py8)sÚlenÚ	summaries)r¡   r”   Úpy5r—   z%(py10)sr˜   z%(py13)sÚpy13zassert %(py16)sÚpy16)r(   r‚   r_   rw   Ú
@pytest_arÚ_call_reprcompareÚ	_safereprÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚAssertionErrorÚ_format_explanationrž   r«   Úzipr   rÂ   rT   Ú_format_boolop)rY   r{   r|   r[   ÚsendsÚchunksÚ@py_assert0Ú@py_assert5Ú@py_assert7Ú@py_assert9Ú@py_assert2Ú@py_format11Ú@py_format13Ú@py_assert1Ú@py_assert3Ú@py_format5Ú@py_assert6Ú@py_format8Ú@py_format10rÃ   Ú@py_assert4Ú@py_assert12Ú@py_format9Ú@py_format14Ú@py_format15Ú@py_format17s                             r   Ú0test_continuous_speech_with_constrained_receiverræ   ]   s2  € å#¥J¨u°kÑ$BÔ$BÑCÔCÑ€GˆXØ8Ð8˜Ð8Ñ8Ô8€EØFÐF˜ÐFÑFÔF€FØ*Ð* 6Ð*Ñ*Ô*Ð=¸Ð=µ5¸±9´9Ð=­d°9©o¬oÐ=Ð*¨oÒ=Ð=Ð=Ñ=Õ=Ô=Ð=Ð=Ð=Ð=Ð*¨oÐ=Ñ=Ô=Õ=Ô=Ð*Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=­dÑ=Ô=Ð=Õ=Ô=­dÑ=Ô=Ð=Ð=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=µ5Ñ=Ô=Ð=Õ=Ô=µ5Ñ=Ô=Ð=Ð=Õ=Ô=¸Ñ=Ô=Õ=Ô=°9Ñ=Ô=Õ=Ô=¨oÑ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ø1Ð1¨5Ð1Ñ1Ô1Ð1�3Ð1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1�3Ñ1Ô1Ð1Õ1Ô1�3Ñ1Ô1Ð1Ð1Õ1Ô1Ð1Ñ1Ô1Õ1Ô1Ð1Ñ1Ô1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ø=Ð=˜XÐ=Ñ=Ô=ÐPÈBÐPÅeÈBÁiÄiÐPÅÀiÁÄÐPÐ=ÀÒPÐPÐPÑPÕPÔPÐPÐPÐPÐPÐ=ÀÐPÑPÔPÕPÔPÐ=ÑPÔPÐPÕPÔPÑPÔPÐPÐPÕPÔPÅÑPÔPÐPÕPÔPÅÑPÔPÐPÐPÐPÕPÔPÑPÔPÐPÐPÕPÔPÅeÑPÔPÐPÕPÔPÅeÑPÔPÐPÐPÕPÔPÈBÑPÔPÕPÔPÀiÑPÔPÕPÔPÀÑPÔPÐPÐPÑPÐPÐPÐPÐPÐPÑPÐPÕPÕPÔPÐPÑPÔPÑPÔPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPØ9Ð9°Ð9Ñ9Ô9Ð>�3Ð9Ñ9Ô9Ð>¸QÐ>Ð9¸QÒ>Ð>Ð>Ð>Õ>Ô>Ð>Ð>Ð>Ð>Ð9¸QÐ>Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>�3Ñ>Ô>Ð>Õ>Ô>�3Ñ>Ô>Ð>Ð>Õ>Ô>Ð9Ñ>Ô>Õ>Ô>Ð9Ñ>Ô>Õ>Ô>¸QÑ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>ð4ð 4Ý˜v v¨a¨b¨b¤zÑ2Ô2ð4ñ 4ô 4ð 4�3ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4õ 4Ü-3ñ4ô 4ð 4ð 4õ 4Ü3õ ñ 4ô 4ð 4õ 4Ü*3õ ñ 4ô 4ð 4ð 4õ 4Ü*3ð4ñ 4ô 4õ 4Ü*3ð4ñ 4ô 4ð 4ð 4ñ 4ð 4õ 4õ 4Ü 3ð4ñ 4ô 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4à�‚z€zØ;Ð;°UÐ;Ñ;Ô;Ð@�sÐ;Ñ;Ô;Ð@¸qÐ@Ð;¸qÒ@Ð@Ð@Ð@Õ@Ô@Ð@Ð@Ð@Ð@Ð;¸qÐ@Ñ@Ô@Ð@Õ@Ô@Ñ@Ô@Ð@Ð@Õ@Ô@�sÑ@Ô@Ð@Õ@Ô@�sÑ@Ô@Ð@Ð@Õ@Ô@Ð;Ñ@Ô@Õ@Ô@Ð;Ñ@Ô@Õ@Ô@¸qÑ@Ô@Ð@Ð@Ñ@Ð@Ð@Ð@Ð@Ð@Ñ@Ð@Õ@Õ@Ô@Ð@Ñ@Ô@Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ø�‚}�}Ø<Ð<°VÐ<Ñ<Ô<ÐC�sÐ<Ñ<Ô<ÐC¸tÐCÐ<¸tÒCÐCÐCÐCÕCÔCÐCÐCÐCÐCÐ<¸tÐCÑCÔCÐCÕCÔCÑCÔCÐCÐCÕCÔC�sÑCÔCÐCÕCÔC�sÑCÔCÐCÐCÕCÔCÐ<ÑCÔCÕCÔCÐ<ÑCÔCÕCÔC¸tÑCÔCÐCÐCÑCÐCÐCÐCÐCÐCÑCÐCÕCÕCÔCÐCÑCÔCÑCÔCÐCÐCÐCÐCÐCÐCÐCÐCÐCØeÐe°UÐeÑeÔeÐl�sÐeÑeÔeÐlÐhlÐlÐeÐhlÒlÐlÐlÐlÕlÔlÐlÐlÐlÐlÐeÐhlÐlÑlÔlÐlÕlÔlÑlÔlÐlÐlÕlÔl�sÑlÔlÐlÕlÔl�sÑlÔlÐlÐlÕlÔlÐeÑlÔlÕlÔlÐeÑlÔlÕlÔlÐhlÑlÔlÐlÐlÑlÐlÐlÐlÐlÐlÑlÐlÕlÕlÔlÐlÑlÔlÑlÔlÐlÐlÐlÐlÐlÐlÐlÐlÐlà?Ð?˜GÐ?Ñ?Ô?€IØBÐB�3ˆy‰>Œ>ÐB˜QÐBˆ>˜QÒÐBÐBÐBÐBÐB 9¨Q¤<Ð0AÔ#BÐBÐ#BÐBÐBÑBÕBÔBÐBÐBÐBÐBˆ>˜QÐBÑBÔBÐBÕBÔBÑBÔBÐBÐBÕBÔB�3ÑBÔBÐBÕBÔB�3ÑBÔBÐBÐBÐBÕBÔBÑBÔBÐBÐBÕBÔBˆyÑBÔBÐBÕBÔBˆyÑBÔBÐBÐBÕBÔBˆ>ÑBÔBÕBÔB˜QÑBÔBÐBÐBÑBÐBÐBÐBÐBÐBÑBÐBÐB×BÒBÐBÑBÔBÐBÐBÐBÐBÐBÕBÔBÐ#BÑBÔBÐBÑBÐBÐB×BÒBÐBÑBÔBÐBÕBÔBÐBÐBÑBÔBÐBÑBÐBÐBÐBÐBÐBÑBÐBÕBÕBÔBÐBÑBÔBÑBÔBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBr   c                 óø  — t          t          d| dd¬¦  «        ¦  «        \  }}d„ |D ¦   «         }d„ |D ¦   «         }t          |¦  «        }d}||k    }|sÇt          j        d|fd	||f¦  «        d
t          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nd
t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t          t          j
        |	¦  «        ¦  «        ‚d x}x}x}}|d         d         }
d}|
|k    }|slt          j        d|fd|
|f¦  «        t          j        |
¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}
x}}d„ t          ||dd …         ¦  «        D ¦   «         }t          |¦  «        }|s•ddt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }t          t          j
        |¦  «        ¦  «        ‚d x}}d S )Nr   FT)r+   r,   c                 óD   — g | ]}|                      d ¦  «        dk    ¯|‘ŒS r�   ©rS   rˆ   s     r   r‹   z@test_two_second_stall_drifts_without_catchup.<locals>.<listcomp>t   ó.   € ÐLÐLÐL�A A§E¢E¨.Ñ$9Ô$9¸^Ò$KÐ$KˆaÐ$KÐ$KÐ$Kr   c              3   ó&   K  — | ]}|d          V — ŒdS ©Úwebsocket_send_msNr7   rˆ   s     r   rœ   z?test_two_second_stall_drifts_without_catchup.<locals>.<genexpr>u   s(   è è € Ð6Ð6¨!ˆqÐ$Ô%Ð6Ð6Ð6Ð6Ð6Ð6r   i  r»   r½   r   r¬   r®   r¯   éÿÿÿÿÚdrift_from_nominal_ms)z%(py1)s > %(py4)s©r“   r•   úassert %(py6)sr–   c              3   óF   K  — | ]\  }}|d          |d         z
  dk    V — ŒdS r±   r7   r´   s      r   rœ   z?test_two_second_stall_drifts_without_catchup.<locals>.<genexpr>w   s<   è è € ÐhÐhÉÈÈ1ˆqÐ"Ô# AÐ&8Ô$9Ñ9¸VÒCÐhÐhÐhÐhÐhÐhr   r3   r�   rž   rŸ   )r(   r‚   r   rÇ   rÈ   rÊ   rË   rÌ   rÉ   rÍ   rÎ   rÏ   rž   )r{   r|   rG   rÒ   rÚ   rÛ   rÝ   rÔ   rÞ   rß   rÓ   r×   rÜ   Ú@py_format7s                 r   Ú,test_two_second_stall_drifts_without_catchuprô   r   sÊ  € Ý�Z¨¨;ÀEÐQUÐVÑVÔVÑWÔW�J€GˆQØLÐL˜ÐLÑLÔL€FØ6Ð6¨vÐ6Ñ6Ô6Ð=�3Ð6Ñ6Ô6Ð=¸Ð=Ð6¸Ò=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=Ð6¸Ð=Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=�3Ñ=Ô=Ð=Õ=Ô=�3Ñ=Ô=Ð=Ð=Õ=Ô=Ð6Ñ=Ô=Õ=Ô=Ð6Ñ=Ô=Õ=Ô=¸Ñ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ø�"Œ:Ð-Ô.Ð5°Ð5Ð.°Ò5Ð5Ð5Ð5Õ5Ô5Ð5Ð5Ð5Ð5Ð.°Ð5Ñ5Ô5Õ5Ô5Ð.Ñ5Ô5Õ5Ô5°Ñ5Ô5Ð5Ð5Ñ5Ð5Ð5Ð5Ð5Ð5Ñ5Ð5Õ5Õ5Ô5Ð5Ñ5Ô5Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5ØhÐhÕPSÐTZÐ\bÐcdÐceÐceÔ\fÑPgÔPgÐhÑhÔhÐh�3ÐhÑhÔhÐhÐhÐhÐhÐhÕhÔhÑhÔhÐhÐhÕhÔh�3ÑhÔhÐhÕhÔh�3ÑhÔhÐhÐhÕhÔhÐhÑhÔhÕhÔhÐhÑhÔhÐhÐhÑhÐhÕhÕhÔhÐhÑhÔhÑhÔhÐhÐhÐhÐhÐhÐhÐhr   c                  ó:   — d„ } t           | ¦   «         ¦  «         d S )Nc               “   ó^
  ‡K  — t          j        ¦   «         } g Št          d| j        ‰j        ¬¦  «        }d„ }t          j        dddt          |¬¦  «        ¦  «        }|                     |dd	¦  «         d
dddddœ}t          j
        t          ¦  «        5  |                     ||dd¬¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   ‰d         d         }d}||k    }|slt          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t!          t          j        |	¦  «        ¦  «        ‚d x}x}}|j        }
|
j        } |¦   «         }| }|sžddt)          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |
¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }t!          t          j        |¦  «        ¦  «        ‚d x}
x}x}}|j                             ¦   «         ƒ d {V —† t          j        |                     ||¦  «        ¦  «        }t          j        d¦  «        ƒ d {V —† |                     ¦   «          t          j        |d¬¦  «        ƒ d {V —† ‰d         d         }d}||k    }|slt          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t!          t          j        |	¦  «        ¦  «        ‚d x}x}}‰d         d         }d }||u }|slt          j        d|fd ||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t!          t          j        |	¦  «        ¦  «        ‚d x}x}}‰d         d!         }d"}||k    }|slt          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t!          t          j        |	¦  «        ¦  «        ‚d x}x}}|j                             ¦   «          |                     |d¦  «         ˆfd#„d$D ¦   «         }
t=          |
¦  «        }|s•d%d&t)          j        ¦   «         v st          j        t<          ¦  «        rt          j        t<          ¦  «        nd&t          j        |
¦  «        t          j        |¦  «        d'œz  }t!          t          j        |¦  «        ¦  «        ‚d x}
}d S )(NTr/   c              “   ó>   K  — t          j        d¦  «        ƒ d {V —† d S )Né
   ©rU   rV   rK   s    r   Úblockedz\test_timeout_and_cancel_release_lock_without_leaking_payload.<locals>.check.<locals>.blocked   s.   è è € Ý”- Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#r   Údr¶   Úv©Ú	send_jsonr¤   rk   r�   r   ÚPRIVATE_PCMÚSECRET)r6   Ú	speech_idrP   ÚaudioÚtokenrF   )Úscheduled_elapsed_msÚraw_pcm_bytesrî   rí   i¸  r‘   ©z%(py1)s == %(py4)srð   rñ   r–   údassert not %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.send_lock
}.locked
}()
}©r    r¡   r•   r–   é   rl   r¹   iˆ  ©Úis)z%(py1)s is %(py4)sr›   ÚCancelledErrorc              3   óD   •K  — | ]}|t          j        ‰¦  «        vV — Œd S r   )r<   Údumps)r‰   Úxr|   s     €r   rœ   z^test_timeout_and_cancel_release_lock_without_leaking_payload.<locals>.check.<locals>.<genexpr>’   s2   øè è € ÐeÐe°A�1�DœJ wÑ/Ô/Ð/ÐeÐeÐeÐeÐeÐer   )rÿ   r   r  r  r�   rž   rŸ   )rU   rn   r
   r   rT   r`   rs   r   ÚbeginÚpytestÚraisesÚTimeoutErrorr‡   rÇ   rÈ   rÉ   rÍ   rÎ   Ú	send_lockÚlockedrÊ   rË   rÌ   Úacquirert   rV   rz   rv   ÚreleaseÚfinishrž   )r'   r}   rú   rû   rX   rÓ   rÛ   r×   rÜ   ró   rÚ   rÔ   rÕ   rÞ   Útaskr|   s                  @r   ÚcheckzKtest_timeout_and_cancel_release_lock_without_leaking_payload.<locals>.check{   sD  øè è € ÝÔ'Ñ)Ô)ˆØˆÝ˜D¨¬	¸¼ÐGÑGÔGˆð	$ð 	$ð 	$åŒN˜3  S­/ÀGÐ*LÑ*LÔ*LÑMÔMˆØ�Š�A�s˜HÑ%Ô%Ð%Ø)¸ÈÐUbÐmuÐvÐvˆÝŒ]�<Ñ(Ô(ð 	Rð 	RØ—*’*˜Q ¸aÈq�*ÑQÔQÐQÐQÐQÐQÐQÐQÐQð	Rð 	Rð 	Rñ 	Rô 	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	Røøøð 	Rð 	Rð 	Rð 	Rà�rŒ{Ð.Ô/Ð7°4Ð7Ð/°4Ò7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7Ð/°4Ð7Ñ7Ô7Õ7Ô7Ð/Ñ7Ô7Õ7Ô7°4Ñ7Ô7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ø”;Ð'�;Ô%Ð'Ð%Ð%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'�1Ñ'Ô'Ð'Õ'Ô'�1Ñ'Ô'Ð'Ð'Õ'Ô'�;Ñ'Ô'Õ'Ô'Ð%Ñ'Ô'Õ'Ô'Ð'Ñ'Ô'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ØŒk×!Ò!Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ÝÔ" 5§:¢:¨a°Ñ#9Ô#9Ñ:Ô:ˆÝŒm˜AÑÔÐÐÐÐÐÐÐØ�Š‰ŒˆÝŒn˜T°TÐ:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ø�rŒ{Ð0Ô1Ð9°TÐ9Ð1°TÒ9Ð9Ð9Ð9Õ9Ô9Ð9Ð9Ð9Ð9Ð1°TÐ9Ñ9Ô9Õ9Ô9Ð1Ñ9Ô9Õ9Ô9°TÑ9Ô9Ð9Ð9Ñ9Ð9Ð9Ð9Ð9Ð9Ñ9Ð9Õ9Õ9Ô9Ð9Ñ9Ô9Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ø�rŒ{Ð.Ô/Ð7°4Ð7Ð/°4Ð7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7Ð/°4Ð7Ñ7Ô7Õ7Ô7Ð/Ñ7Ô7Õ7Ô7°4Ñ7Ô7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ø�rŒ{˜7Ô#Ð7Ð'7Ð7Ð#Ð'7Ò7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7Ð#Ð'7Ð7Ñ7Ô7Õ7Ô7Ð#Ñ7Ô7Õ7Ô7Ð'7Ñ7Ô7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ø	Œ×ÒÑÔÐØ�Š�Q˜ÑÔÐØeÐeÐeÐeÐ9dÐeÑeÔeÐe�sÐeÑeÔeÐeÐeÐeÐeÐeÕeÔeÑeÔeÐeÐeÕeÔe�sÑeÔeÐeÕeÔe�sÑeÔeÐeÐeÕeÔeÐeÑeÔeÕeÔeÐeÑeÔeÐeÐeÑeÐeÕeÕeÔeÐeÑeÔeÑeÔeÐeÐeÐeÐeÐeÐeÐes   Â CÃCÃC©r(   )r  s    r   Ú<test_timeout_and_cancel_release_lock_without_leaking_payloadr  z   s0   € ðfð fð fõ0 ��‘”ÑÔÐÐÐr   c                 ón  ‡— |                       dd¬¦  «         t          j        } |¦   «         }|j        }| }|s¨ddt	          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }t          t          j
        |¦  «        ¦  «        ‚d x}x}x}}ˆfd„}‰                     d¦  «        5  t           |¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NÚGATEWAY_SPEECH_TRACEF)Úraisingzdassert not %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.from_env
}()
}.enabled
}r
   r  c               “   óº  •K  — g } t          dt          j        ¦   «         j        | j        ¬¦  «        }d„ }t          j        dddt          |¬¦  «        ¦  «        }|                     |dd	¦  «         t          d
¦  «        D ]$}| 
                    |dd|dœd¬¦  «        ƒ d {V —† Œ%t          | ¦  «        }d}||k    }|sòt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nddt          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t%          t          j        |	¦  «        ¦  «        ‚d x}x}}‰j        }t          |¦  «        }d}
||
k    }|�st          j        d|fd||
f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nddt          j        ¦   «         v st          j        ‰¦  «        rt          j        ‰¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |
¦  «        dœz  }	dd|	iz  }t%          t          j        |¦  «        ¦  «        ‚d x}x}x}}
| d         d         }d}t          |¦  «        }||k    }|sÇt          j        d|fd ||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        d!œz  }d"d#|iz  }t%          t          j        |¦  «        ¦  «        ‚d x}x}x}}d S )$NTr/   c              “   ó
   K  — d S r   r7   rK   s    r   Úfastz:test_default_off_and_sampling.<locals>.check.<locals>.fastœ   s
   è è € € € r   rû   r¶   rü   rý   r¤   rk   rø   r�   )r6   r  rP   r   )r  é   r‘   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)srÂ   r|   )r    r“   r”   r–   zassert %(py8)sr—   é   )zM%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.records
})
} == %(py8)sÚcaplog)r    r“   r”   rÄ   r—   zassert %(py10)sr˜   r3   Úwire_payload_bytesz4{"type":"speech_chunk","speech_id":"s","sequence":0})z0%(py1)s == %(py7)s
{%(py7)s = %(py3)s(%(py5)s)
})r“   r”   rÄ   r­   r®   r¯   )r
   rU   rn   r   rT   r`   rs   r   r  r_   r‡   rÂ   rÇ   rÈ   rÊ   rË   rÌ   rÉ   rÍ   rÎ   r|   )r|   r}   r"  rû   Úir×   rÔ   rà   ró   râ   rÕ   rÝ   rØ   rÓ   rÞ   rß   r%  s                   €r   r  z,test_default_off_and_sampling.<locals>.check™   s(  øè è € ØˆÝ˜D­Ô(@Ñ(BÔ(BÔ(GÈgÌnÐ]Ñ]Ô]ˆØÐÐÝŒN˜3  S­/ÀDÐ*IÑ*IÔ*IÑJÔJˆØ�Š�A�s˜HÑ%Ô%Ð%Ý�r‘”ð 	sð 	sˆAØ—*’*˜Q¨ÀcÐWXÐ YÐ YÐpq�*ÑrÔrÐrÐrÐrÐrÐrÐrÐrÐrÝ�7‰|Œ|Ð!˜rÐ!ˆ|˜rÒ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ|˜rÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!�sÑ!Ô!Ð!Õ!Ô!�sÑ!Ô!Ð!Ð!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!�7Ñ!Ô!Ð!Õ!Ô!�7Ñ!Ô!Ð!Ð!Õ!Ô!ˆ|Ñ!Ô!Õ!Ô!˜rÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ø”>Ð'�s�>Ñ"Ô"Ð' aÐ'Ð" aÒ'Ð'Ð'Ñ'Õ'Ô'Ð'Ð'Ð'Ð'Ð" aÐ'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'�sÑ'Ô'Ð'Õ'Ô'�sÑ'Ô'Ð'Ð'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'�6Ñ'Ô'Ð'Õ'Ô'�6Ñ'Ô'Ð'Ð'Õ'Ô'�>Ñ'Ô'Õ'Ô'Ð"Ñ'Ô'Õ'Ô' aÑ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ø�qŒzÐ.Ô/ÐnÐ7mÐnµ3Ð7mÑ3nÔ3nÐnÐ/Ð3nÒnÐnÐnÐnÕnÔnÐnÐnÐnÐnÐ/Ð3nÐnÑnÔnÕnÔnÐ/ÑnÔnÐnÕnÔnÑnÔnÐnÐnÕnÔnµ3ÑnÔnÐnÕnÔnµ3ÑnÔnÐnÐnÕnÔnÐ7mÑnÔnÕnÔnÐ3nÑnÔnÐnÐnÑnÐnÐnÐnÐnÐnÑnÐnÕnÕnÔnÐnÑnÔnÑnÔnÐnÐnÐnÐnÐnÐnÐnÐnÐnÐnÐnr   ÚINFO)Údelenvr
   Úfrom_envÚenabledrÊ   rË   rÇ   rÌ   rÉ   rÍ   rÎ   Úat_levelr(   )r{   r%  rÚ   rÛ   rÔ   rÕ   rÞ   r  s    `      r   Útest_default_off_and_samplingr-  –   s   ø€ Ø×ÒÐ-°uÐÑ=Ô=Ð=ÝÔ#Ð-Ð#Ð#Ñ%Ô%Ð-Ð%Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-�{Ñ-Ô-Ð-Õ-Ô-�{Ñ-Ô-Ð-Ð-Õ-Ô-Ð#Ñ-Ô-Õ-Ô-Ð%Ñ-Ô-Õ-Ô-Ð-Ñ-Ô-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ð
oð 
oð 
oð 
oð 
oð 
�Š˜Ñ	 Ô	 ð ð Ý�E�E‘G”GÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÄD*Ä*D.Ä1D.Ú__main__z4one-slot ASGI queue; periodic snapshot + agent_state)Úmodelr}   r8   rQ   ©r+   r-   z2one-slot ASGI queue; snapshot -> agent -> sleep 2sÚproduction_cycle_2000r3   rF   )Úindentú
c                 ó@   ‡ — ˆ fd„}t           |¦   «         ¦  «         d S )Nc            	   “   óŠ  •‡K  — t          j        ¦   «         } g g c}Št          d| j        |j        ¬¦  «        }‰                     t          d|¦  «         d„ }ˆfd„}t          j        dddt          ||¬	¦  «        ¦  «        }‰                     t          d
|j	        |i¦  «         | 
                    |dd¦  «         t          j        ddi¦  «        ƒ d {V —† g }|j        }| }|}	|r|j        }
d }|
|u }|}	|rddig}‰|k    }|}	|	�sÚddt          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        dœz  }|                     |¦  «         |�r+t!          j        d|fd|
|f¦  «        dt          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |
¦  «        t!          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         |r‹t!          j        d|fd‰|f¦  «        dt          j        ¦   «         v st!          j        ‰¦  «        rt!          j        ‰¦  «        ndt!          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         t!          j        |d¦  «        i z  }d d!|iz  }t+          t!          j        |¦  «        ¦  «        ‚d x}	x}x}x}x}
x}x}x}}|d"         d#         }	d$}|	|k    }|slt!          j        d|fd%|	|f¦  «        t!          j        |	¦  «        t!          j        |¦  «        d&œz  }d'd(|iz  }t+          t!          j        |¦  «        ¦  «        ‚d x}	x}}|j        }|j        } |¦   «         }| }|sžd)dt          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        t!          j        |¦  «        t!          j        |¦  «        d*œz  }t+          t!          j        |¦  «        ¦  «        ‚d x}x}x}}d S )+NTr/   r2   c              “   ó>   K  — t          j        d¦  «        ƒ d {V —† d S )Nrg   rù   rK   s    r   rú   zCtest_snapshot_timeout_closes_device.<locals>.check.<locals>.blocked½   s.   è è € Ý”- Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"r   c               ›   ó6   •K  — ‰                      | ¦  «         d S r   ©rT   )ÚkwargsÚclosess    €r   r%   zAtest_snapshot_timeout_closes_device.<locals>.check.<locals>.close¿   s   øè è € Ø�MŠM˜&Ñ!Ô!Ð!Ð!Ð!r   zisolated-testr¶   rü   )rþ   r%   ÚdevicesÚ	syntheticrk   r6   rh   Úcodeió  z'not %(py4)s
{%(py4)s = %(py2)s.online
}rû   )r¡   r•   r
  )z2%(py9)s
{%(py9)s = %(py7)s.websocket
} is %(py12)s)r­   r¯   r™   z%(py14)sÚpy14r‘   )z%(py16)s == %(py19)sr:  )rÆ   Úpy19z%(py21)sÚpy21r   zassert %(py24)sÚpy24rî   r›   r  r  rð   rñ   r–   r  r  )rU   rn   r
   r   rT   ro   r`   rs   r   Ú	device_idr  Úbroadcast_server_snapshotÚonlinerA   rÊ   rË   rÇ   rÌ   rÉ   rÈ   rÐ   rÍ   rÎ   r  r  )r'   r|   r}   rú   r%   rû   rÚ   rÛ   rÔ   rÓ   Ú@py_assert8Ú@py_assert11Ú@py_assert10Ú@py_assert18Ú@py_assert17Ú@py_format6rÙ   rä   Ú@py_format20Ú@py_format22Ú@py_format23Ú@py_format25r×   rÜ   ró   rÕ   rÞ   r:  r{   s                              @€r   r  z2test_snapshot_timeout_closes_device.<locals>.check¸   s   øøè è € ÝÔ'Ñ)Ô)ˆØ˜bˆˆ�Ý˜D¨¬	¸¼ÐGÑGÔGˆØ×Ò�G ^°UÑ;Ô;Ð;ð	#ð 	#ð 	#ð	"ð 	"ð 	"ð 	"ð 	"åŒN˜?¨C°µoÐPWÐ_dÐ6eÑ6eÔ6eÑfÔfˆØ×Ò�G Y°´¸aÐ0@ÑAÔAÐAØ�Š�A�{ HÑ-Ô-Ð-ÝÔ/°Ð9JÐ0KÑLÔLÐLÐLÐLÐLÐLÐLÐLØRÐR�1”8ÐR�8ˆ|ÐRˆ|ÐRˆ|ÐR ¤ÐR¨tÐR ¨tÐ 3ÐRÐRÐRÐRÐRÀFÈDÀ>ÐBRÐR¸ÐBRÒ8RÐRÐRÐRÐRÑRÐRÐRÕRÔRÑRÔRÐRÐRÕRÔR�1ÑRÔRÐRÕRÔR�1ÑRÔRÐRÐRÕRÔR�8ÑRÔRÐRÐRÑRÐRÐR×RÒRÐRÑRÔRÐRˆ|ÑRÕRÔRÐRÐRÐRÐR ¨tÐ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¨tÑ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¸ÐBRÐRÑRÔRÐRÕRÔRÑRÔRÐRÐRÕRÔR¸ÑRÔRÐRÕRÔR¸ÑRÔRÐRÐRÕRÔRÐBRÑ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Ð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ÐRØ�rŒ{˜7Ô#Ð5 ~Ð5Ð# ~Ò5Ð5Ð5Ð5Õ5Ô5Ð5Ð5Ð5Ð5Ð# ~Ð5Ñ5Ô5Õ5Ô5Ð#Ñ5Ô5Õ5Ô5 ~Ñ5Ô5Ð5Ð5Ñ5Ð5Ð5Ð5Ð5Ð5Ñ5Ð5Õ5Õ5Ô5Ð5Ñ5Ô5Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ø”;Ð'�;Ô%Ð'Ð%Ð%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'�1Ñ'Ô'Ð'Õ'Ô'�1Ñ'Ô'Ð'Ð'Õ'Ô'�;Ñ'Ô'Õ'Ô'Ð%Ñ'Ô'Õ'Ô'Ð'Ñ'Ô'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'r   r  ©r{   r  s   ` r   Ú#test_snapshot_timeout_closes_devicerP  ·   s8   ø€ ð(ð (ð (ð (ð (õ  ��‘”ÑÔÐÐÐr   c                 ó¸  — t          t          d| dd¬¦  «        ¦  «        \  }}d„ |D ¦   «         }d„ |D ¦   «         }d„ |D ¦   «         }t          |¦  «        }d}||k    }|sÇt          j        d	|fd
||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }	dd|	iz  }
t          t          j
        |
¦  «        ¦  «        ‚d x}x}x}}d„ |D ¦   «         }t          |¦  «        }d}||k    }|sÇt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }	dd|	iz  }
t          t          j
        |
¦  «        ¦  «        ‚d x}x}x}}d„ |D ¦   «         }d„ |D ¦   «         }t          |¦  «        }d}||k    }|sÇt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }	dd|	iz  }
t          t          j
        |
¦  «        ¦  «        ‚d x}x}x}}d„ |D ¦   «         }t          |¦  «        }|s•ddt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }t          t          j
        |¦  «        ¦  «        ‚d x}}d S )NrQ   FTr0  c                 óD   — g | ]}|                      d ¦  «        dk    ¯|‘ŒS r�   ré   rˆ   s     r   r‹   zGtest_actual_sequential_system_monitor_also_contends.<locals>.<listcomp>Í   rê   r   c                 óD   — g | ]}|                      d ¦  «        dk    ¯|‘ŒS )rŽ   rh   ré   rˆ   s     r   r‹   zGtest_actual_sequential_system_monitor_also_contends.<locals>.<listcomp>Î   s/   € ÐRÐRÐR�q q§u¢u¨^Ñ'<Ô'<Ð@QÒ'QÐ'Q�Ð'QÐ'QÐ'Qr   c              3   ó&   K  — | ]}|d          V — ŒdS r¸   r7   rˆ   s     r   rœ   zFtest_actual_sequential_system_monitor_also_contends.<locals>.<genexpr>Ï   ó(   è è € Ð8Ð8¨AˆqÐ&Ô'Ð8Ð8Ð8Ð8Ð8Ð8r   rR   r»   r½   r   r¬   r®   r¯   c              3   ó&   K  — | ]}|d          V — ŒdS rì   r7   rˆ   s     r   rœ   zFtest_actual_sequential_system_monitor_also_contends.<locals>.<genexpr>Ð   s(   è è € Ð9Ð9¨!ˆqÐ$Ô%Ð9Ð9Ð9Ð9Ð9Ð9r   r‘   rª   c                 óD   — g | ]}|                      d ¦  «        dk    ¯|‘ŒS )rŽ   ri   ré   rˆ   s     r   r‹   zGtest_actual_sequential_system_monitor_also_contends.<locals>.<listcomp>Ñ   s.   € ÐKÐKÐK�A A§E¢E¨.Ñ$9Ô$9¸]Ò$JÐ$JˆaÐ$JÐ$JÐ$Jr   c              3   ó&   K  — | ]}|d          V — ŒdS r¸   r7   rˆ   s     r   rœ   zFtest_actual_sequential_system_monitor_also_contends.<locals>.<genexpr>Ò   rU  r   c              3   ó*   K  — | ]\  }}}|d k    V — ŒdS r¦   r7   r¨   s      r   rœ   zFtest_actual_sequential_system_monitor_also_contends.<locals>.<genexpr>Ó   r©   r   r�   ÚanyrŸ   )r(   r‚   r   rÇ   rÈ   rÊ   rË   rÌ   rÉ   rÍ   rÎ   rZ  )r{   r|   r[   r   Ú	snapshotsrÚ   rÛ   rÝ   rÔ   rÞ   rß   ÚagentsrÜ   s                r   Ú3test_actual_sequential_system_monitor_also_contendsr]  Ë   sH  € Ý#¥J¨t°[ÈeÐfjÐ$kÑ$kÔ$kÑlÔlÑ€GˆXØLÐL˜ÐLÑLÔL€FØRÐR˜GÐRÑRÔR€IØ8Ð8°Ð8Ñ8Ô8Ð?�3Ð8Ñ8Ô8Ð?¸4Ð?Ð8¸4Ò?Ð?Ð?Ð?Õ?Ô?Ð?Ð?Ð?Ð?Ð8¸4Ð?Ñ?Ô?Ð?Õ?Ô?Ñ?Ô?Ð?Ð?Õ?Ô?�3Ñ?Ô?Ð?Õ?Ô?�3Ñ?Ô?Ð?Ð?Õ?Ô?Ð8Ñ?Ô?Õ?Ô?Ð8Ñ?Ô?Õ?Ô?¸4Ñ?Ô?Ð?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Õ?Õ?Ô?Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ø9Ð9¨yÐ9Ñ9Ô9ÐA�3Ð9Ñ9Ô9ÐA¸TÐAÐ9¸TÒAÐAÐAÐAÕAÔAÐAÐAÐAÐAÐ9¸TÐAÑAÔAÐAÕAÔAÑAÔAÐAÐAÕAÔA�3ÑAÔAÐAÕAÔA�3ÑAÔAÐAÐAÕAÔAÐ9ÑAÔAÕAÔAÐ9ÑAÔAÕAÔA¸TÑAÔAÐAÐAÑAÐAÐAÐAÐAÐAÑAÐAÕAÕAÔAÐAÑAÔAÑAÔAÐAÐAÐAÐAÐAÐAÐAÐAÐAØKÐK˜ÐKÑKÔK€FØ8Ð8°Ð8Ñ8Ô8Ð@�3Ð8Ñ8Ô8Ð@¸DÐ@Ð8¸DÒ@Ð@Ð@Ð@Õ@Ô@Ð@Ð@Ð@Ð@Ð8¸DÐ@Ñ@Ô@Ð@Õ@Ô@Ñ@Ô@Ð@Ð@Õ@Ô@�3Ñ@Ô@Ð@Õ@Ô@�3Ñ@Ô@Ð@Ð@Õ@Ô@Ð8Ñ@Ô@Õ@Ô@Ð8Ñ@Ô@Õ@Ô@¸DÑ@Ô@Ð@Ð@Ñ@Ð@Ð@Ð@Ð@Ð@Ñ@Ð@Õ@Õ@Ô@Ð@Ñ@Ô@Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ø9Ð9°Ð9Ñ9Ô9Ð9�3Ð9Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Õ9Ô9Ñ9Ô9Ð9Ð9Õ9Ô9�3Ñ9Ô9Ð9Õ9Ô9�3Ñ9Ô9Ð9Ð9Õ9Ô9Ð9Ñ9Ô9Õ9Ô9Ð9Ñ9Ô9Ð9Ð9Ñ9Ð9Õ9Õ9Ô9Ð9Ñ9Ô9Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9r   c                 ó@   ‡ — ˆ fd„}t           |¦   «         ¦  «         d S )Nc               “   óø  •‡K  — g Šˆfd„} t          j        dddt          | ¬¦  «        ¦  «        }t          dd„ ¬¦  «        }|                     |d	d
¦  «         d„ }‰                     d|¦  «         dddœ}|                     ||¦  «        ƒ d {V —† g }‰d         }||u }|}|r|j        }	|	 }
|
}|�s9t          j	        d|fd||f¦  «        t          j
        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j
        |¦  «        nddœz  }dd|iz  }|                     |¦  «         |rlddt          j        ¦   «         v st          j        |¦  «        rt          j
        |¦  «        ndt          j
        |	¦  «        dœz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}	}
d S )Nc              “   ó6   •K  — ‰                      | ¦  «         d S r   r8  )rX   Úobserveds    €r   r‡   zMtest_disabled_trace_does_not_serialize_or_mutate.<locals>.check.<locals>.sendÙ   s   øè è €  §¢°Ñ!9Ô!9Ð!9Ð!9Ð!9r   rû   r¶   rü   rý   Fc                 ó*   — t          j        d¦  «        S )Nzdisabled trace emitted©r  ÚfailrK   s    r   rL   zQtest_disabled_trace_does_not_serialize_or_mutate.<locals>.check.<locals>.<lambda>Û   s   € µ&´+Ð>VÑ2WÔ2W€ r   )r1   r¤   rk   c                  ó.   — t          j        d¦  «         d S )Nzdisabled trace serializedrc  )rG   Ú__s     r   Ú	forbiddenzRtest_disabled_trace_does_not_serialize_or_mutate.<locals>.check.<locals>.forbiddenÝ   s   € ¥¤Ð-HÑ!IÔ!IÐ!IÐ!IÐ!Ir   z&device_gateway.speech_trace.json.dumpsr�   Ú	unchanged)r6   r  r   r
  )z%(py3)s is %(py5)srX   )r”   rÄ   z%(py7)sr­   z*not %(py11)s
{%(py11)s = %(py9)s.streams
}r}   )r¯   Úpy11zassert %(py15)sÚpy15)r`   rs   r   r
   r  ro   r‡   ÚstreamsrÇ   rÈ   rÉ   rÊ   rË   rÌ   rT   rÐ   rÍ   rÎ   )r‡   rû   r}   rg  rX   rÚ   r×   rà   rÓ   rG  rá   rJ  rÞ   rÙ   rã   Ú@py_format16ra  r{   s                   @€r   r  z?test_disabled_trace_does_not_serialize_or_mutate.<locals>.check×   sy  øøè è € ØˆØ9Ð9Ð9Ð9Ð9ÝŒN˜3  S­/ÀDÐ*IÑ*IÔ*IÑJÔJˆÝ˜EÐ(WÐ(WÐXÑXÔXˆØ�Š�A�s˜HÑ%Ô%Ð%ØIÐIÐIØ×ÒÐDÀiÑPÔPÐPØ)°KÐ@Ð@ˆØ�jŠj˜˜GÑ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ø;Ð;ˆx˜Œ{Ð;ˆ{˜gÐ%Ð;Ð;Ð;Ð;Ð;¨e¬mÐ;¨mÐ*;Ð;Ð*;Ð;Ð;Ñ;Õ;Ô;Ð;Ð;Ð;Ð;ˆ{˜gÐ;Ñ;Ô;Õ;Ô;ˆ{Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;˜gÑ;Ô;Ð;Õ;Ô;˜gÑ;Ô;Ð;Ð;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Ð;×;Ò;Ð;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;¨eÑ;Ô;Ð;Õ;Ô;¨eÑ;Ô;Ð;Ð;Õ;Ô;¨mÑ;Ô;Ð;Ð;Ñ;Ð;Ð;×;Ò;Ð;Ñ;Ô;Ð;Õ;Ô;Ð;Ð;Ñ;Ô;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;r   r  rO  s   ` r   Ú0test_disabled_trace_does_not_serialize_or_mutaterm  Ö   s8   ø€ ð
<ð 
<ð 
<ð 
<ð 
<õ ��‘”ÑÔÐÐÐr   )4Ú__doc__ÚbuiltinsrÊ   Ú_pytest.assertion.rewriteÚ	assertionÚrewriterÇ   rU   r<   Úpathlibr   Útypesr   r  Ústarlette.websocketsr   Údevice_gatewayr   r`   r   rp   Údevice_gateway.speechr   r	   Údevice_gateway.speech_tracer
   ÚSelectorEventLoopr   r(   r‚   ÚmarkÚparametrizeræ   rô   r  r-  r   ÚsysÚresultsrY   ÚMonkeyPatchÚcontextÚpatchr|   r[   ÚstrÚargvÚ
write_textr  rP  r]  rm  r7   r   r   ú<module>r„     sª  ððð ð € € € € € € € € € € € € €€€€Ø €€€Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !à €€€Ø *Ð *Ð *Ð *Ð *Ð *à )Ð )Ð )Ð )Ð )Ð )Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3ðð ð ð ð �'Ô+ñ ô ð ð ð ð ð 79ÀdÐRWÐjoð 0ð 0ð 0ð 0ð 0ðf „×Ò˜Ð";Ð";Ð";Ñ<Ô<ðCð Cñ =Ô<ðCð(ið ið iðð ð ð8ð ð ð$ ˆzÒÐØ€J€J€JØ€GØ*ð Fð FˆØÔ×'Ò'Ñ)Ô)ð 	F¨UØ + ¨J¨J°u¸eÑ,DÔ,DÑ EÔ EÑˆG�Xð	Fð 	Fð 	Fñ 	Fô 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Føøøð 	Fð 	Fð 	Fð 	Fà(^Ø(/¸HðFð Fˆ���E‘
”
ÑÐà	Ô	×	#Ò	#Ñ	%Ô	%ð k¨Ø'˜K¨
¨
°4¸ÈEÐdhÐ(iÑ(iÔ(iÑjÔjÑˆ�ðkð kð kñ kô kð kð kð kð kð kð køøøð kð kð kð kà1eØ07ÀHð(Nð (N€GÐ#Ñ$à€DˆŒ�!ŒÑÔ× Ò   ¤¨G¸AÐ!>Ñ!>Ô!>ÀÑ!EÑFÔFÐFðð ð ð(:ð :ð :ðð ð ð ð s$   Â?C$Ã$C(	Ã+C(	ÄEÅEÅ
E