§
    „¹Áj$  ã                   ó´   — d Z ddlZddlZddlZddlZddlZddlmZ  ej        d¦  «        Z	 ej        d¦  «        Z
d„ Zd„ Zd„ Zed	k    r e¦   «          dS dS )
zæCorrelate content-free Gateway/ESP32 markers, never speech or Agent text.
Clock alignment is relative to the first common sequence, NOT one-way latency.
Normal omitted serial samples are unknown, never inferred as missing chunks.
é    N)ÚPathz\x1b\[[0-?]*[ -/]*[@-~]z\b([a-z_]+)=([^\s]+)c                 óÀ   — i }t                                | ¦  «        D ]@\  }}	 d|v rt          |¦  «        nt          |¦  «        ||<   Œ,# t          $ r |||<   Y Œ=w xY w|S )Nú.)ÚKVÚfindallÚfloatÚintÚ
ValueError)ÚlineÚresultÚkeyÚvalues       úe/home/lighthouse/esp32-dev/.cache/speech-downlink-diagnostics-0.5.1/scripts/correlate-speech-trace.pyÚfieldsr      s{   € Ø€FÝ—j’j Ñ&Ô&ð  ð  ‰
ˆˆUð	 Ø*-°¨,¨,�% ™,œ,˜,½CÀ¹J¼JˆF�3‰KˆKøÝð 	 ð 	 ð 	 ØˆF�3‰KˆKˆKð	 øøøà€Ms   £%A	Á	AÁAc                 ó’  ‡‡+‡,‡-‡.‡/— g }d}|                       ¦   «         D ]�Š-d‰-vrŒ	 t          j        ‰-                     dd¦  «        d         ¦  «        }n# t          t
          f$ r |dz  }Y ŒOw xY w|                     d¦  «        ‰k    r|                     |¦  «         Œ‚d„ |D ¦   «         Š/t          d„ t          |¦  «        D ¦   «         i ¦  «        Š,d„ ‰/D ¦   «         Š+t          d„ t          ‰/¦  «        D ¦   «         i ¦  «        }|                     d	‰,                     d
¦  «        r‰,                     d¦  «        nd ¦  «        }‰,                     d¦  «        }d„ |                      ¦   «         D ¦   «         Š.t          ˆfd„t          ‰.¦  «        D ¦   «         d ¦  «        }	t          ‰.¦  «        }
|	�Gt          ˆ.fd„t          |	dz   t          ‰.¦  «        ¦  «        D ¦   «         t          ‰.¦  «        ¦  «        }
|	�
‰.|	|
…         ng }i g g }}}d }d}|D ]èŠ-t          ˆ-fd„dD ¦   «         ¦  «        sŒt          ‰-¦  «        }|                     d¦  «        ‰k    rŒGd‰-v r|                     |d         |¦  «         d‰-v r|                     |¦  «         d‰-v r|                     |¦  «         d‰-v r|                     d¦  «        }d‰-v r2|                     d¦  «        dk    o|                     d¦  «        dk    }Œé|r|d         ni }|�|n|                     d¦  «        }i i }}|D ]BŠ-d‰-vrd‰-vrŒt          ‰-¦  «        }|�|                     d¦  «        |k    rŒ6d‰-v r|}d‰-v r|}ŒCt!          t#          ‰+¦  «        t#          |¦  «        z  ¦  «        }ˆ+fd „|D ¦   «         }|r|d         nd }g }t!          t#          ‰+¦  «        t#          |¦  «        z  t%          |t&          ¦  «        r,d|cxk    rd!k    rn nt#          t          |¦  «        ¦  «        nt#          ¦   «         z  ¦  «        }|D �]=}‰+                     |i ¦  «        |                     |i ¦  «        }}d }|�F|                     d"¦  «        �1|r/|d#         ||         d#         z
  |d"         ‰+|         d"         z
  z
  }|                     t)          ||                     d$¦  «        |                     d"¦  «        |                     d%¦  «        |                     d&¦  «        |                     d#¦  «        ||                     d'¦  «        |                     d(¦  «        |                     d)¦  «        ¬*¦
  «
        ¦  «         �Œ?ˆ,ˆ/fd+„} |d%d,¦  «        } |d&d-¦  «        } |d.d/¦  «        } |                     d0¦  «        }!|!dk    red }!t%          |t&          ¦  «        rN|                     d1¦  «        |                     d2¦  «        k    r"|                     d2|¦  «        |k     r|d2         }!|                     d1¦  «        }"t          d3„ |D ¦   «         ¦  «        p|                     d4¦  «        dk    }#t+          ‰,                     d
¦  «        ¦  «        o|d uo‰,                     d¦  «        |k    }$|$o|d uo|d uo|d5k    o|d6k    o| pdd5k    }%|                     d7d¦  «        d8k    p|                     d9d¦  «        d8k    }&t+          |¦  «        o'|& o$|o"|"|k    o|                     d2¦  «        |k    o|!d u }'d:\  }(})|pdd5k    s|pdd6k    rd;\  }(})n~|%r
|&s|!�d<\  }(})nr|%rp|'rn|                     d=¦  «        dk    rU|                     d>d¦  «        dk    s6|�|                     d?|¦  «        |k     s|                     d@d¦  «        dAk    rdB\  }(})t)          dai dC|(“dD|)“dEdF“dG|“dH|“dI| “dJ|                     d7¦  «        “dK|                     d9¦  «        “dL|“dM|"“dN|                     d2¦  «        “dOt          |¦  «        “dP|!“dQ|                     dR¦  «        “dS|“d(|                     d?¦  «        “dT|                     d=¦  «        “dU|r|#nd “dV|r|nd “dW|rt          dX„ |D ¦   «         ¦  «        nd “dY|“dZd[“d\d]“d^d_“Ž}*t)          ‰|*|¬`¦  «        S )bNr   z[SPEECH_TRACE] é   Ú	speech_idc                 óD   — g | ]}|                      d ¦  «        dk    ¯|‘ŒS )ÚeventÚsend©Úget©Ú.0Úrs     r   ú
<listcomp>zcorrelate.<locals>.<listcomp>(   s,   € Ð<Ð<Ð<�1 1§5¢5¨¡>¤>°VÒ#;Ð#;ˆQÐ#;Ð#;Ð#;ó    c              3   óL   K  — | ]}|                      d ¦  «        dk    ¯|V — Œ dS )r   ÚsummaryNr   r   s     r   ú	<genexpr>zcorrelate.<locals>.<genexpr>)   s6   è è € ÐKÐK�Q¨q¯uªu°W©~¬~ÀÒ/JÐ/JˆqÐ/JÐ/JÐ/JÐ/JÐKÐKr   c                 óR   — i | ]$}|                      d ¦  «        dk    ¯|d         |“Œ%S )Úmessage_typeÚspeech_chunkÚsequencer   r   s     r   ú
<dictcomp>zcorrelate.<locals>.<dictcomp>*   s4   € ÐYÐYÐY 1°·²°~Ñ1FÔ1FÈ.Ò1XÐ1Xˆa�
Œm˜QÐ1XÐ1XÐ1Xr   c              3   óL   K  — | ]}|                      d ¦  «        dk    ¯|V — Œ dS )r"   Ú
speech_endNr   r   s     r   r    zcorrelate.<locals>.<genexpr>+   s8   è è € ÐUÐU�q¨q¯uªu°^Ñ/DÔ/DÈÒ/TÐ/T�Ð/TÐ/TÐ/TÐ/TÐUÐUr   ÚchunksÚspeech_end_sentÚcompleted_chunksÚraw_pcm_bytesc                 óD   — g | ]}t                                d |¦  «        ‘ŒS )Ú )ÚANSIÚsub)r   r   s     r   r   zcorrelate.<locals>.<listcomp>.   s&   € ÐEÐEÐE D�T�XŠX�b˜$ÑÔÐEÐEÐEr   c              3   óÂ   •K  — | ]Y\  }}d |v rPt          |¦  «                             d¦  «        dk    ¯/t          |¦  «                             d¦  «        ‰k    ¯U|V — ŒZdS )ú[SPEECH_RX_EVENT]r   ÚstartÚidN©r   r   )r   ÚiÚlr   s      €r   r    zcorrelate.<locals>.<genexpr>0   s{   øè è € ð ^ð ^™˜˜1Ð4GÈ1Ð4LÐ4LÝ˜Q‘i”i—m’m GÑ,Ô,°Ò7Ð7½FÀ1¹I¼I¿MºMÈ$Ñ<OÔ<OÐS\Ò<\Ð<\ð Ø<\Ð<\Ð<\Ð<\ð^ð ^r   c              3   óˆ   •K  — | ]<}d ‰|         v r0t          ‰|         ¦  «                             d¦  «        dk    ¯8|V — Œ=dS )r1   r   r2   Nr4   )r   r5   Úliness     €r   r    zcorrelate.<locals>.<genexpr>4   si   øè è € ð Cð C˜1Ð>QÐUZÐ[\ÔU]Ð>]Ð>]Ý  a¤Ñ)Ô)×-Ò-¨gÑ6Ô6¸'ÒAÐAð ØAÐAÐAÐAðCð Cr   Fc              3   ó    •K  — | ]}|‰v V — Œ	d S )N© )r   Úmarkerr   s     €r   r    zcorrelate.<locals>.<genexpr>;   s?   øè è € ð  Oð  O f�6˜T�>ð  Oð  Oð  Oð  Oð  Oð  Or   )ú[SPEECH_RX]ú[SPEECH_RX_SUMMARY]r1   ú[SPEECH] startú[SPEECH] endr3   r<   Úseqr=   r1   r>   Ú
generationr?   ÚvalidÚqueuedéÿÿÿÿz[SPEECH_PLAY]z[SPEECH_QUEUE]c                 óJ   •— g | ]}‰|                               d ¦  «        ®|‘Œ S )Úsend_complete_msr   )r   Úsr(   s     €r   r   zcorrelate.<locals>.<listcomp>Y   s/   ø€ ÐQÐQÐQ�A 6¨!¤9§=¢=Ð1CÑ#DÔ#DÐ#PˆaÐ#PÐ#PÐ#Pr   iÊ  rF   Úcomplete_msÚsend_attempt_msÚwebsocket_send_msÚdevice_lock_wait_msÚqueue_depth_afterÚplayed_bytesÚpush)
r@   Úgateway_send_startÚgateway_send_completeÚgateway_send_msÚgateway_lock_wait_msÚdevice_frame_completeÚnetwork_gapÚqueue_depthrM   rN   c                 óÜ   •‡ — ˆ fd„‰D ¦   «         }t          ‰                     |¦  «        t          t          f¦  «        r|                     ‰|         ¦  «         |rt          |¦  «        nd S )Nc                 ó~   •— g | ]9}t          |                     ‰¦  «        t          t          f¦  «        ¯1|‰         ‘Œ:S r:   )Ú
isinstancer   r   r	   )r   r   r   s     €r   r   z.correlate.<locals>.maximum.<locals>.<listcomp>i   s:   ø€ ÐPÐPÐP˜Q­:°a·e²e¸C±j´jÅ5Í#À,Ñ+OÔ+OÐP�!�C”&ÐPÐPÐPr   )rX   r   r   r	   ÚappendÚmax)r   ÚfallbackÚvaluesÚgsÚsendss   `  €€r   Úmaximumzcorrelate.<locals>.maximumh   sj   øø€ ØPÐPÐPÐP %ÐPÑPÔPˆÝ�b—f’f˜XÑ&Ô&­µ¨Ñ5Ô5ð 	(Ø�MŠM˜"˜Xœ,Ñ'Ô'Ð'Ø$Ð.�s�6‰{Œ{ˆ{¨$Ð.r   Úmax_websocket_send_msÚmax_device_lock_wait_msÚdrift_from_nominal_msÚmax_drift_msÚfirst_missingÚreceivedÚacceptedc              3   óH   K  — | ]}|                      d ¦  «        dk    V — ŒdS )r   ÚendNr   )r   Úes     r   r    zcorrelate.<locals>.<genexpr>w   s1   è è € Ð;Ð;¨q�1—5’5˜‘>”> UÒ*Ð;Ð;Ð;Ð;Ð;Ð;r   Úend_seené–   éd   Ú
max_gap_mséú   Úmax_frame_ms)ÚDz6Insufficient evidence for A/B/C, or no measured stall.)ÚAz/Gateway send >150ms or device lock wait >100ms.)ÚBzLGateway summary normal; device frame/gap >250ms or proven incomplete prefix.ÚfinalÚwrite_errorsÚbytes_writtenÚmax_write_usi�Ð )ÚCzWGateway/receive normal; settled playback has write error, byte deficit or write >250ms.ÚclassificationÚreasonÚ
root_causeznot determinedÚgateway_max_send_msÚgateway_max_lock_wait_msÚgateway_max_drift_msÚdevice_max_receive_gap_msÚdevice_max_frame_msÚexpected_countÚreceived_countÚaccepted_countÚsampled_sequencesÚfirst_missing_sequenceÚplayed_countÚplayedÚexpected_bytesÚplayback_finalÚspeech_end_seenÚspeech_end_validÚ
disconnectc              3   ó   K  — | ]}d |v V — Œ	dS )z[CLOUD] disconnectedNr:   )r   r6   s     r   r    zcorrelate.<locals>.<genexpr>�   s(   è è € Ð!NÐ!NÀ!Ð"8¸AÐ"=Ð!NÐ!NÐ!NÐ!NÐ!NÐ!Nr   Úmalformed_gateway_recordsÚnetwork_gap_definitionzZRelative receive-minus-send progression anchored at first common seq; NOT one-way latency.Úmissing_samplesz3Blank rows are unobserved samples, not packet loss.Úplayback_definitionzDSuccessful codec API bytes, not proof of DMA drain or audible sound.)r   r   Úrowsr:   )Ú
splitlinesÚjsonÚloadsÚsplitr
   Ú	TypeErrorr   rY   ÚnextÚreversedÚ	enumerateÚlenÚrangeÚanyr   Ú
setdefaultÚsortedÚsetrX   r	   ÚdictÚbool)0Úgateway_textÚserial_textr   ÚgatewayÚ	malformedÚrecordÚgendÚexpectedr‡   r2   ÚstopÚscopedÚrxÚ	summariesÚeventsrA   Ú	valid_endÚfÚdsÚplayÚqueueÚcommonÚanchorr‘   Ú	sequencesr@   ÚgÚdÚgapr_   Úmax_sendÚmax_lockÚ	max_driftrd   re   rj   Úupstream_completeÚgateway_normalÚrx_slowÚreceive_normalrx   ry   r   r(   r]   r   r8   r^   s0     `                                        @@@@@r   Ú	correlaterÀ      sm  øøøøøø€ Ø€GØ€IØ×'Ò'Ñ)Ô)ð 	#ð 	#ˆØ DÐ(Ð(Øð	Ý”Z §
¢
Ð+<¸aÑ @Ô @ÀÔ CÑDÔDˆFˆFøÝ�IÐ&ð 	ð 	ð 	Ø˜‰NˆIØˆHð	øøøð �:Š:�kÑ"Ô" iÒ/Ð/Ø�NŠN˜6Ñ"Ô"Ð"øØ<Ð<˜Ð<Ñ<Ô<€EÝ	ÐKÐK�( 7Ñ+Ô+ÐKÑKÔKÈRÑ	PÔ	P€BØYÐY¨ÐYÑYÔY€FÝÐUÐU�H U™OœOÐUÑUÔUÐWYÑZÔZ€DØ�xŠx˜ÀÇÂÐGXÑ@YÔ@YÐ"c "§&¢&Ð);Ñ"<Ô"<Ð"<Ð_cÑdÔd€HØ—V’V˜OÑ,Ô,€NØEÐE¨K×,BÒ,BÑ,DÔ,DÐEÑEÔE€Eåð ^ð ^ð ^ð ^¥	¨%Ñ 0Ô 0ð ^ñ ^ô ^Ø_cñeô e€Eåˆu‰:Œ:€DØÐÝð Cð Cð Cð C¥ e¨A¡g­s°5©z¬zÑ :Ô :ð Cñ Cô CÝDGÈÁJÄJñPô Pˆà"'Ð"3ˆU�5˜�:ÔÐ¸€FØ  B�6ˆ	€BØ€JØ€IØð Eð EˆÝð  Oð  Oð  Oð  Oð  1Nð  Oñ  Oô  Oñ  Oô  Oð 	ØÝ�4‰LŒLˆØ�5Š5�‰;Œ;˜)Ò#Ð#ØØ˜DÐ Ð à�MŠM˜!˜Eœ( AÑ&Ô&Ð&Ø  DÐ(Ð(Ø×Ò˜QÑÔÐØ $Ð&Ð&Ø�MŠM˜!ÑÔÐØ˜tÐ#Ð#ØŸš˜|Ñ,Ô,ˆJØ˜TÐ!Ð!ØŸš˜g™œ¨!Ò+ÐD°·²°h±´À1Ò0DˆIøØ#Ð	+ˆ�2Œˆ¨€BØ)Ð5��¸2¿6º6À,Ñ;OÔ;O€JØ�bˆ%€DØð 	ð 	ˆØ $Ð&Ð&Ð+;À4Ð+GÐ+GØÝ�4‰LŒLˆØÐ §¢ |Ñ!4Ô!4¸
Ò!BÐ!BØØ˜dÐ"Ð"ØˆDØ˜tÐ#Ð#ØˆEøÝ•C˜‘K”K¥# b¡'¤'Ñ)Ñ*Ô*€FØQÐQÐQÐQ˜ÐQÑQÔQ€FØ Ð*ˆV�AŒYˆY d€FØ€DÝ•s˜6‘{”{¥S¨¡W¤WÑ,Í
ÐS[Õ]`ÑHaÔHað  1GÐfgÐksÐf{Ðf{Òf{Ðf{Ðw{Òf{Ðf{Ðf{Ðf{Ðf{µµE¸(±O´OÑ0DÔ0DÐ0Dõ  BEñ  BGô  BGñ  Hñ  Iô  I€IØð 
.ñ 
.ˆØ�zŠz˜#˜rÑ"Ô" B§F¢F¨3°¡O¤Oˆ1ˆØˆØÐ !§%¢%Ð(:Ñ";Ô";Ð"GÈAÐ"GØ�mÔ$ R¨¤Z°Ô%>Ñ>ØÐ(Ô)¨&°¬.Ð9KÔ*LÑLñNˆCà�Š•D˜S°Q·U²UÐ;LÑ5MÔ5MØ/0¯uªuÐ5GÑ/HÔ/HÐZ[×Z_ÒZ_Ð`sÑZtÔZtØ./¯eªeÐ4IÑ.JÔ.JÐbc×bgÒbgÐhuÑbvÔbvØ%(°a·e²eÐ<OÑ6PÔ6PÐ_`×_dÒ_dÐesÑ_tÔ_tØŸeše F™mœmð	-ñ -ô -ñ 	.ô 	.ð 	.ñ 	.ð
/ð /ð /ð /ð /ð /ð
 ˆwÐ*Ð,CÑDÔD€HØˆwÐ,Ð.GÑHÔH€HØ�Ð/°Ñ@Ô@€IØ—F’F˜?Ñ+Ô+€MØ˜ÒÐØˆå�h¥Ñ$Ô$ð 	+¨¯ª°
Ñ);Ô);¸r¿vºvÀjÑ?QÔ?QÒ)QÐ)QÐVX×V\ÒV\Ð]gÐiqÑVrÔVrÐu}ÒV}ÐV}Ø˜zœNˆMØ�vŠv�jÑ!Ô!€HÝÐ;Ð;°FÐ;Ñ;Ô;Ñ;Ô;ÐV¸r¿vºvÀjÑ?QÔ?QÐUVÒ?V€HÝ˜RŸVšVÐ$5Ñ6Ô6Ñ7Ô7Ð{¸HÈDÐ<PÐ{ÐUW×U[ÒU[Ð\nÑUoÔUoÐs{ÒU{ÐØ'ð Z¨H¸DÐ,@ð ZÀXÐUYÐEYð ZØ" cš/ðZØ.6¸#ªoðZØCLÀ>ÐPQÐVYÒBYð à�fŠf�\ 1Ñ%Ô%¨Ò+ÐN¨r¯vªv°nÀaÑ/HÔ/HÈ3Ò/N€GÝ˜2‘h”hð S w ;ð S°9ð SÀÈXÒAUð SØŸ&š& Ñ,Ô,°Ò8ðSØ=JÈdÐ=Rð àZÑ€N�FØˆ�A˜ÒÐ  ¨Q°#Ò 5Ð 5Ø!WÑˆ˜˜Ø	ð @˜Wð @¨Ð(AØ!tÑˆ˜˜Ø	ð @˜Nð @¨t¯xªx¸Ñ/@Ô/@ÀAÒ/EÐ/EØ�HŠH�^ QÑ'Ô'¨!Ò+Ð+°Ð0JÈtÏxÊxÐXgÐiwÑOxÔOxð  |Jò  PJð  PJØ�xŠx˜¨Ñ*Ô*¨VÒ3Ð3Ø!Ñˆ˜Ýð oð oð o . .ð o¸¸ð oÐL\ÐL\ð oØ'/ xðoØJRÈ(ðoØirÐirðoà-/¯VªV°LÑ-AÔ-AÐ-AðoàWY×W]ÒW]Ð^lÑWmÔWmÐWmðoð #+ (ðoð <D¸8ðoð UW×TZÒTZÐ[eÑTfÔTfÐTfðoõ &)¨¡W¤W Wð	oð FSÀ]ð	oð bg×ajÒajÐksÑatÔatÐatð	oð
 #1 .ðoð
 @D¿xºxÈÑ?XÔ?XÐ?Xðoð #'§(¢(¨7Ñ"3Ô"3Ð"3ðoð RXÐEaÀXÀXÐ]aøðoð 28Ð$A I I¸Tøðoð SYÐb�cÐ!NÐ!NÀvÐ!NÑ!NÔ!NÑNÔNÐNÐ^bøðoð .7¨Yðoð +Gð  +Gðoð $YÐ#Xðoð (nÐ'mðo€Gõ ˜)¨W¸4Ð@Ñ@Ô@Ð@s   §.AÁA/Á.A/c                  óÎ  — t          j        t          ¬¦  «        } |                      dt          d¬¦  «         |                      dt          d¬¦  «         |                      dd¬¦  «         |                      dt          ¬	¦  «         |                      ¦   «         }t          |j                             d
¬¦  «        |j	                             d
¬¦  «        |j
        ¦  «        }t          t          j        |d         dd¬¦  «        ¦  «         |d         r”t          j        ¦   «         }t!          j        |t%          |d         d         ¦  «        ¬¦  «        }|                     ¦   «          |                     |d         ¦  «         t          |                     ¦   «         d¬¦  «         |j        r4|j                             t          j        |dd¬¦  «        dz   ¦  «         d S d S )N)Údescriptionz	--gatewayT)ÚtypeÚrequiredz--serialz--speech-id)rÄ   z--json)rÃ   Úreplace)Úerrorsr   é   F)ÚindentÚensure_asciir‘   r   )Ú
fieldnamesr-   )rh   ú
)ÚargparseÚArgumentParserÚ__doc__Úadd_argumentr   Ú
parse_argsrÀ   r¤   Ú	read_textÚserialr   Úprintr“   ÚdumpsÚioÚStringIOÚcsvÚ
DictWriterÚlistÚwriteheaderÚ	writerowsÚgetvalueÚ
write_text)ÚparserÚargsr   ÚstreamÚwriters        r   Úmainrâ   —   s¹  € ÝÔ$µÐ9Ñ9Ô9€FØ
×Ò˜­$¸ÐÑ>Ô>Ð>Ø
×Ò˜
­¸ÐÑ=Ô=Ð=Ø
×Ò˜°ÐÑ5Ô5Ð5Ø
×Ò˜¥tÐÑ,Ô,Ð,Ø×ÒÑÔ€DÝ�t”|×-Ò-°YÐ-Ñ?Ô?ÀÄ×AVÒAVÐ^gÐAVÑAhÔAhÐjnÔjxÑyÔy€FÝ	�$Œ*�V˜IÔ&¨q¸uÐ
EÑ
EÔ
EÑFÔFÐFØˆf„~ð )Ý”‘”ˆÝ” µ4¸¸v¼ÀqÔ8IÑ3JÔ3JÐKÑKÔKˆØ×ÒÑÔÐ˜f×.Ò.¨v°f¬~Ñ>Ô>Ð>Ýˆf�oŠoÑÔ RÐ(Ñ(Ô(Ð(Ø„yð TØŒ	×Ò�TœZ¨°qÀuÐMÑMÔMÈdÑRÑSÔSÐSÐSÐSðTð Tr   Ú__main__)rÎ   rÌ   r×   rÕ   r“   ÚreÚpathlibr   Úcompiler.   r   r   rÀ   râ   Ú__name__r:   r   r   ú<module>rè      sÏ   ððð ð €€€Ø 
€
€
€
Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð à€r„zÐ,Ñ-Ô-€Ø€R„ZÐ'Ñ(Ô(€ðð ð ðyAð yAð yAðxTð Tð Tð$ ˆzÒÐØ€D�F„F€F€F€Fð Ðr   