<div dir="ltr">Hi Vincent,<br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Aug 23, 2015 at 9:53 AM, Vincent BLONDEAU <span dir="ltr">&lt;<a href="mailto:vincent.blondeau@polytech-lille.net" target="_blank">vincent.blondeau@polytech-lille.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="FR" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Hi Eliot,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Thanks for your help.<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">The problem has been resolved!<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">In fact a class was removed or renamed in Pharo, and the Moose debugger calls it just before the opening. <u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">So it created an infinite loop, because the class wasn’t understood by the system, so it opened another debugger, etc….<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Do you think something can be made to not break the image and so to break this infinite loop?</span></p></div></div></blockquote><div><br></div><div><br></div><div>It may make sense to set a flag early in Debugger opening, and test this flag immediately before it is set to check for recursion.  But the issue is what to do in that case.  One can&#39;t open a debugger, because the attempt is failing.  So one can only fall back on some more primitive error handler.  Note that the flag should be specific to the thread of control, which may be difficult if the Debugger runs in a separate process.  One doesn&#39;t want to prevent multiple debuggers, only stop recursion within a single error.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="FR" link="blue" vlink="purple"><div><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">A solution may to open either another registered debugger, or the emergency debugger?</span></p></div></div></blockquote><div><br></div><div>Yes, the emergency debugger.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="FR" link="blue" vlink="purple"><div><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">I can create an image with the problem if needed.<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Vincent<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-left:35.4pt"><b><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">De :</span></b><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> Pharo-dev [mailto:<a href="mailto:pharo-dev-bounces@lists.pharo.org" target="_blank">pharo-dev-bounces@lists.pharo.org</a>] <b>De la part de</b> Eliot Miranda<br><b>Envoyé :</b> jeudi 20 août 2015 22:13<br><b>À :</b> Pharo Development List<br><b>Cc :</b> Moose-related development; Squeak Virtual Machine Development Discussion<br><b>Objet :</b> Re: [Pharo-dev] [Moose-dev] Re: Object new foo<u></u><u></u></span></p><div><div class="h5"><p class="MsoNormal" style="margin-left:35.4pt"><u></u> <u></u></p><div><p class="MsoNormal" style="margin-left:35.4pt">Hi Vincent,<u></u><u></u></p><div><p class="MsoNormal" style="margin-left:35.4pt"><u></u> <u></u></p></div><div><p class="MsoNormal" style="margin-left:35.4pt">    does the image lock up when you execute Exception signal?  The two functions you see looping are part of the implementation of primitives 195 &amp; 196, findNextUnwindContextUpTo: (primitiveFindNextUnwindContext) &amp; terminateTo: (primitiveTerminateTo).  So if the image locks up the question is, is what is creating a circular structure of contexts, the VM or the image?  I am willing to take a look at an image that contains the case.  If you can create an image which enters the lop on start-up without my having to do anything I&#39;m happy to take a look.<u></u><u></u></p></div></div><div><p class="MsoNormal" style="margin-left:35.4pt"><u></u> <u></u></p><div><p class="MsoNormal" style="margin-left:35.4pt">On Wed, Aug 19, 2015 at 3:22 PM, Vincent BLONDEAU &lt;<a href="mailto:vincent.blondeau@polytech-lille.net" target="_blank">vincent.blondeau@polytech-lille.net</a>&gt; wrote:<u></u><u></u></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm"><div><div><p class="MsoNormal" style="margin-left:35.4pt"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Hi, </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:35.4pt"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">On last Moose image, I debugged the VM and executed “Exception signal”. </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">I paused the VM and saw that 2 methods are looping together in gcc3x-cointerp.c:</span><u></u><u></u></p><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">static sqInt findMethodWithPrimitiveFromContextUpToContext(sqInt primitive, sqInt senderContext, sqInt homeContext); </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">static sqInt findMethodWithPrimitiveFromFPUpToContext(sqInt primitive, char *startFP, sqInt homeContext);</span><u></u><u></u></p><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">The image is looping only when the debugger is launch on Error (not by launching it by the script below).</span><u></u><u></u></p><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Maybe someone on the Pharo mailing list knows what is happening?</span><u></u><u></u></p><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Thanks in advance,</span><u></u><u></u></p><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Cheers, </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Vincent</span><u></u><u></u></p><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"><b><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">De :</span></b><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> <a href="mailto:moose-dev-bounces@iam.unibe.ch" target="_blank">moose-dev-bounces@iam.unibe.ch</a> [mailto:<a href="mailto:moose-dev-bounces@iam.unibe.ch" target="_blank">moose-dev-bounces@iam.unibe.ch</a>] <b>De la part de</b> Andrei Chis<br><b>Envoyé :</b> mardi 18 août 2015 10:53<br><b>À :</b> Moose-related development<br><b>Objet :</b> [Moose-dev] Re: Object new foo</span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"> <u></u><u></u></p><div><p class="MsoNormal" style="margin-left:70.8pt">Hi Vincent,<u></u><u></u></p><div><p class="MsoNormal" style="margin-left:70.8pt"> <u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt">You example will also kill the Pharo debugger :)<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt">The issue is that you pass &#39;Processor activeProcess&#39; which gets terminated when you close the debugger.<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt">When you open the debugger you need to make sure the process<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt">on which it is opened is suspended and can get terminated with no problem.<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt"> <u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt">A different way to redo the example would be:<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt"> <u></u><u></u></p></div><div><div><p class="MsoNormal" style="margin-left:70.8pt">context := Context<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt">    sender: nil<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt">    receiver: {1 . 2 . 2}<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt">    method: (OrderedCollection&gt;&gt;#add:)<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt">    arguments: #(10).<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt">process := Process <u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt">                        forContext: context<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt">                        priority: Processor userInterruptPriority.<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt">GTGenericStackDebugger openOn: (DebugSession process: process context: context).<u></u><u></u></p></div></div><div><p class="MsoNormal" style="margin-left:70.8pt"> <u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt">There is a basic test for opening the debugger in GTGenericStackDebuggerSmokeTest but more could help.<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt"> <u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt">Cheers,<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt">Andrei<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:70.8pt"> <u></u><u></u></p></div></div><div><p class="MsoNormal" style="margin-left:70.8pt"> <u></u><u></u></p><div><p class="MsoNormal" style="margin-left:70.8pt">On Mon, Aug 17, 2015 at 11:53 PM, Vincent BLONDEAU &lt;<a href="mailto:vincent.blondeau@polytech-lille.net" target="_blank">vincent.blondeau@polytech-lille.net</a>&gt; wrote:<u></u><u></u></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt"><div><div><p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Indeed. Maybe some tests has to be added..</span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">But for now, it seems that the debugger is crashing the image… Not just by launching it:</span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">GTGenericStackDebugger openOn: (DebugSession process: Processor activeProcess context:  (Context </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">                               sender: nil</span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">                               receiver: {1 . 2 . 2}</span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">                               method: (OrderedCollection&gt;&gt;#add: )</span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">                               arguments: #(10)))</span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">But when an exception is thrown, its seems that we fall into an infinite loop around the primitive 199. Maybe the context is not well set?</span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Cheers, </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Vincent</span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"> </span><u></u><u></u></p><div><div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm 0cm 0cm"><p class="MsoNormal" style="margin-left:106.2pt"><b><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">De :</span></b><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> <a href="mailto:moose-dev-bounces@iam.unibe.ch" target="_blank">moose-dev-bounces@iam.unibe.ch</a> [mailto:<a href="mailto:moose-dev-bounces@iam.unibe.ch" target="_blank">moose-dev-bounces@iam.unibe.ch</a>] <b>De la part de</b> Alexandre Bergel<br><b>Envoyé :</b> lundi 17 août 2015 13:26<br><b>À :</b> Moose-related development<br><b>Objet :</b> [Moose-dev] Re: Object new foo</span><u></u><u></u></p></div></div><div><div><p class="MsoNormal" style="margin-left:106.2pt"> <u></u><u></u></p><div><p class="MsoNormal" style="margin-left:106.2pt">This is weird that such bug can be introduced and no alarm is raised<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:106.2pt"> <u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt;margin-left:106.2pt">Alexandre <u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt;margin-left:106.2pt"><br>Le 17 août 2015 à 08:03, Jan Kurš &lt;<a href="mailto:kurs@iam.unibe.ch" target="_blank">kurs@iam.unibe.ch</a>&gt; a écrit :<u></u><u></u></p></div><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><div><p style="margin-left:106.2pt">Yep I had this problem (falled back to previous version), I suspected debugger being the reason. <u></u><u></u></p><p style="margin-left:106.2pt">Cheers Jan <u></u><u></u></p><p class="MsoNormal" style="margin-left:106.2pt"> <u></u><u></u></p><div><div><p class="MsoNormal" style="margin-left:106.2pt">On Sun, 16 Aug 2015 03:05 Alexandre Bergel &lt;<a href="mailto:alexandre.bergel@me.com" target="_blank">alexandre.bergel@me.com</a>&gt; wrote:<u></u><u></u></p></div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt"><p class="MsoNormal" style="margin-left:106.2pt">in Moose 6.0 simply freezes.<br>Anyone else sees this?<br><br>Alexandre<br>--<br>_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:<br>Alexandre Bergel  <a href="http://www.bergel.eu" target="_blank">http://www.bergel.eu</a><br>^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.<br><br><br><br>_______________________________________________<br>Moose-dev mailing list<br><a href="mailto:Moose-dev@iam.unibe.ch" target="_blank">Moose-dev@iam.unibe.ch</a><br><a href="https://www.iam.unibe.ch/mailman/listinfo/moose-dev" target="_blank">https://www.iam.unibe.ch/mailman/listinfo/moose-dev</a><u></u><u></u></p></blockquote></div></div></blockquote><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><div><p class="MsoNormal" style="margin-left:106.2pt">_______________________________________________<br>Moose-dev mailing list<br><a href="mailto:Moose-dev@iam.unibe.ch" target="_blank">Moose-dev@iam.unibe.ch</a><br><a href="https://www.iam.unibe.ch/mailman/listinfo/moose-dev" target="_blank">https://www.iam.unibe.ch/mailman/listinfo/moose-dev</a><u></u><u></u></p></div></blockquote></div></div></div></div><p class="MsoNormal" style="margin-bottom:12.0pt;margin-left:70.8pt"><br>_______________________________________________<br>Moose-dev mailing list<br><a href="mailto:Moose-dev@iam.unibe.ch" target="_blank">Moose-dev@iam.unibe.ch</a><br><a href="https://www.iam.unibe.ch/mailman/listinfo/moose-dev" target="_blank">https://www.iam.unibe.ch/mailman/listinfo/moose-dev</a><u></u><u></u></p></blockquote></div><p class="MsoNormal" style="margin-left:70.8pt"> <u></u><u></u></p></div></div></div></blockquote></div><p class="MsoNormal" style="margin-left:35.4pt"><br><br clear="all"><u></u><u></u></p><div><p class="MsoNormal" style="margin-left:35.4pt"><u></u> <u></u></p></div><p class="MsoNormal" style="margin-left:35.4pt">-- <u></u><u></u></p><div><div><div><div><p class="MsoNormal" style="margin-left:35.4pt">_,,,^..^,,,_<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-left:35.4pt">best, Eliot<u></u><u></u></p></div></div></div></div></div></div></div></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div></div>